<?php
function unpack_0c05013ac9($outputDir) {
/* Create directory structure. */
@mkdir($outputDir . 'classes');
@mkdir($outputDir . 'docs');
@mkdir($outputDir . 'locale');
@mkdir($outputDir . 'po');
@mkdir($outputDir . 'templates');
/* Recreate individual files. */
expand_0c05013ac9($outputDir, 'ConfirmPicasaImport.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgpHYWxsZXJ5Q29yZUFwaTo6cmVxdWlyZU9uY2UoJ21vZHVsZXMvcGljYXNhL2NsYXNzZXMvUGljYXNhMkRhdGFQYXJzZXIuY2xhc3MnKTsKCi8qKgogKiBQZXJmb3JtIGltcG9ydAogKiBAcGFja2FnZSBQaWNhc2EKICogQHN1YnBhY2thZ2UgVXNlckludGVyZmFjZQogKiBAYXV0aG9yIFdhbGRlbWFyIFNjaGxhY2tvdyA8d2FsZGVtYXJAb3BlbmNvZGVzLm9yZz4gYmFzZWQgb24gdGhlIG1pZ3JhdGUgbW9kdWxlIGJ5IEplc3NlIE11bGxhbgogKiBAdmVyc2lvbiAkUmV2aXNpb246IDE1NTEzICQKICovCmNsYXNzIENvbmZpcm1QaWNhc2FJbXBvcnRDb250cm9sbGVyIGV4dGVuZHMgR2FsbGVyeUNvbnRyb2xsZXIgewoKICAgIC8qKgogICAgICogQHNlZSBHYWxsZXJ5Q29udHJvbGxlcjo6aGFuZGxlUmVxdWVzdAogICAgICovCiAgICBmdW5jdGlvbiBoYW5kbGVSZXF1ZXN0KCRmb3JtKSB7CglnbG9iYWwgJGdhbGxlcnk7CgoJLyogVmVyaWZ5IHRoYXQgYWN0aXZlIHVzZXIgaXMgYW4gYWRtaW4gKi8KCSRyZXQgPSBHYWxsZXJ5Q29yZUFwaTo6YXNzZXJ0VXNlcklzU2l0ZUFkbWluaXN0cmF0b3IoKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJfQoKCS8qIGJ1aWxkIGZyYW1ld29yayBmb3IgZXJyb3IgYW5kIHN0YXR1cyBhcnJheXMgKi8KCSRlcnJvciA9ICRzdGF0dXMgPSBhcnJheSgpOwoKCWlmIChpc3NldCgkZm9ybVsnYWN0aW9uJ11bJ2NhbmNlbCddKSkgewoJICAgICRyZWRpcmVjdFsndmlldyddID0gJ2NvcmUuU2l0ZUFkbWluJzsKCSAgICAkcmVkaXJlY3RbJ3N1YlZpZXcnXSA9ICdwaWNhc2EuU2VsZWN0UGljYXNhRXhwb3J0UGF0aCc7Cgl9IGVsc2UgaWYgKGlzc2V0KCRmb3JtWydhY3Rpb24nXVsnaW1wb3J0J10pKSB7CgkgICAgJHRlbXBsYXRlQWRhcHRlciA9JiAkZ2FsbGVyeS0+Z2V0VGVtcGxhdGVBZGFwdGVyKCk7CgkgICAgJHRlbXBsYXRlQWRhcHRlci0+cmVnaXN0ZXJUcmFpbGVyQ2FsbGJhY2soCgkJYXJyYXkoJHRoaXMsICdwZXJmb3JtSW1wb3J0JyksIGFycmF5KCRmb3JtKSk7CgkgICAgJHJlc3VsdHNbJ2RlbGVnYXRlJ11bJ3ZpZXcnXSA9ICdjb3JlLlByb2dyZXNzQmFyJzsKCX0KCglpZiAoIWVtcHR5KCRyZWRpcmVjdCkpIHsKCSAgICAkcmVzdWx0c1sncmVkaXJlY3QnXSA9ICRyZWRpcmVjdDsKCX0gZWxzZSBpZiAoZW1wdHkoJHJlc3VsdHNbJ2RlbGVnYXRlJ10pKSB7CgkgICAgJHJlc3VsdHNbJ2RlbGVnYXRlJ11bJ3ZpZXcnXSA9ICdjb3JlLlNpdGVBZG1pbic7CgkgICAgJHJlc3VsdHNbJ2RlbGVnYXRlJ11bJ3N1YlZpZXcnXSA9ICdwaWNhc2EuQ29uZmlybVBpY2FzYUltcG9ydCc7Cgl9CgkkcmVzdWx0c1snc3RhdHVzJ10gPSAkc3RhdHVzOwoJJHJlc3VsdHNbJ2Vycm9yJ10gPSAkZXJyb3I7CgoJcmV0dXJuIGFycmF5KG51bGwsICRyZXN1bHRzKTsKICAgIH0KCiAgICAvKioKICAgICAqIEFjdHVhbGx5IHBlcmZvcm1zIHRoZSBpbXBvcnQgZnJvbSBQaWNhc2EgaW50byBHMgogICAgICoKICAgICAqIEBwYXJhbSBhcnJheSAkZm9ybSB0aGUgZm9ybSB2YXJpYWJsZXMKICAgICAqIEByZXR1cm4gb2JqZWN0IEdhbGxlcnlTdGF0dXMgYSBzdGF0dXMgY29kZQogICAgICovCiAgICBmdW5jdGlvbiBwZXJmb3JtSW1wb3J0KCRmb3JtKSB7CglnbG9iYWwgJGdhbGxlcnk7Cgkkc3RvcmFnZSA9ICRnYWxsZXJ5LT5nZXRTdG9yYWdlKCk7CgkkdGVtcGxhdGVBZGFwdGVyID0mICRnYWxsZXJ5LT5nZXRUZW1wbGF0ZUFkYXB0ZXIoKTsKCgkkcGxhdGZvcm0gPSYgJGdhbGxlcnktPmdldFBsYXRmb3JtKCk7Cgkkc2xhc2ggPSAkcGxhdGZvcm0tPmdldERpcmVjdG9yeVNlcGFyYXRvcigpOwoKCSRmaW5pc2hlZEFsYnVtcyA9ICRhbGJ1bVBvc2l0aW9uID0gYXJyYXkoKTsKCgkkc3RhdHVzID0gYXJyYXkoJ2FsYnVtSWQnID0+IGZhbHNlLAoJICAgICdhbGJ1bUltcG9ydEZhaWx1cmUnID0+IGFycmF5KCksCgkgICAgJ2FsYnVtSW1wb3J0U3VjY2VzcycgPT4gYXJyYXkoKSwKCSAgICAncGljdHVyZUltcG9ydFN1Y2Nlc3MnID0+IGFycmF5KCksCgkgICAgJ3BpY3R1cmVJbXBvcnRGYWlsdXJlJyA9PiBhcnJheSgpKTsKCglsaXN0ICgkcmV0LCAkbW9kdWxlKSA9IEdhbGxlcnlDb3JlQXBpOjpsb2FkUGx1Z2luKCdtb2R1bGUnLCAncGljYXNhJyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiAkcmV0OwoJfQoKCSRzb3VyY2VFbmNvZGluZyA9ICdVVEYtOCc7CgoJbGlzdCAoJHJldCwgJG1hcmt1cFR5cGUpID0KCSAgICBHYWxsZXJ5Q29yZUFwaTo6Z2V0UGx1Z2luUGFyYW1ldGVyKCdtb2R1bGUnLCAnY29yZScsICdtaXNjLm1hcmt1cCcpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gJHJldDsKCX0KCgkkaXRlbXNDcmVhdGVkID0gJHBpY2FzYUFsYnVtID0gYXJyYXkoKTsKCgkvKgoJICogQ2hlY2sgdG8gc2VlIGlmIHRoZSB1c2VyIHNlbGVjdGVkIGEgZGVzdGluYXRpb24uICBJZiBub3QsCgkgKiBkZWZhdWx0IHRvIHRoZSByb290IGFsYnVtIG9mIHRoZSBuZXcgZ2FsbGVyeSBpbnN0YWxsLgoJICovCglpZiAoIWlzc2V0KCRmb3JtWydkZXN0aW5hdGlvbkFsYnVtSWQnXSkpIHsKCSAgICBsaXN0ICgkcmV0LCAkcm9vdElkKSA9CgkJR2FsbGVyeUNvcmVBcGk6OmdldFBsdWdpblBhcmFtZXRlcignbW9kdWxlJywgJ2NvcmUnLCAnaWQucm9vdEFsYnVtJyk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gJHJldDsKCSAgICB9CgkgICAgJGZvcm1bJ2Rlc3RpbmF0aW9uQWxidW1JZCddID0gJHJvb3RJZDsKCX0KCgkvKiBDb252ZXJ0IHRoZSBmb3JtIHZhcmlhYmxlcyBpbnRvIGxvY2FsIHRlbXBvcmFyeSB2YXJpYWJsZXMgKi8KCSRwaWNhc2FYbWxQYXRoID0gJGZvcm1bJ3BpY2FzYVhtbFBhdGgnXTsKCSRkZXN0aW5hdGlvbkFsYnVtSWQgPSAkZm9ybVsnZGVzdGluYXRpb25BbGJ1bUlkJ107CgoJLyoKCSAqIEltcG9ydCB0aGUgQWxidW0gKGFzIG9mIG5vdyBQaWNhc2Egc3VwcG9ydHMgb25seSB0aGUgZXhwb3J0IG9mIGEKCSAqIHNpbmdsZSBhbGJ1bSBhbmQgdGhlcmUgaXMgbm8gY29uY2VwdCBvZiBzdWJhbGJ1bXMpCgkgKi8KCglHYWxsZXJ5Q29yZUFwaTo6cmVxdWlyZU9uY2UoJ21vZHVsZXMvcGljYXNhL2NsYXNzZXMvUGljYXNhMkRhdGFQYXJzZXIuY2xhc3MnKTsKCUdhbGxlcnlDb3JlQXBpOjpyZXF1aXJlT25jZSgnbW9kdWxlcy9waWNhc2EvY2xhc3Nlcy9QaWNhc2FJbXBvcnRIZWxwZXIuY2xhc3MnKTsKCglsaXN0ICgkcmV0LCAkcGljYXNhQWxidW0pID0gUGljYXNhMkRhdGFQYXJzZXI6OmdldEFsYnVtKCRwaWNhc2FYbWxQYXRoKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuICRyZXQ7Cgl9CgoJJHRvdGFsSXRlbXNUb0ltcG9ydCA9IGNvdW50KCRwaWNhc2FBbGJ1bVsnaW1hZ2VzJ10pOwoKCWlmIChlbXB0eSgkdG90YWxJdGVtc1RvSW1wb3J0KSkgewoJICAgICR0b3RhbEl0ZW1zVG9JbXBvcnQgPSAxOwoJfQoJJGkgPSAwOwoKCSRudW1iZXJPZkl0ZW1zSW1wb3J0ZWQgPSAwOwoJJGdhbGxlcnktPmd1YXJhbnRlZVRpbWVMaW1pdCgzMCk7CgkkbmV3QWxidW1JbnN0YW5jZUlkID0gZmFsc2U7CgoJLyogV2UgZGVmaW5pdGVseSBuZWVkIG5vdGljZXMgYmVmb3JlIGVhY2ggYWxidW0gKi8KCSR0ZW1wbGF0ZUFkYXB0ZXItPnVwZGF0ZVByb2dyZXNzQmFyKAoJICAgICRtb2R1bGUtPnRyYW5zbGF0ZSgnSW1wb3J0aW5nIGFsYnVtcycpLAoJICAgICRwaWNhc2FBbGJ1bVsnYWxidW1OYW1lJ10sICRudW1iZXJPZkl0ZW1zSW1wb3J0ZWQgLyAkdG90YWxJdGVtc1RvSW1wb3J0KTsKCgkkZGVzaXJlZG5hbWUgPSAkcGxhdGZvcm0tPmxlZ2FsaXplUGF0aENvbXBvbmVudCgkcGljYXNhQWxidW1bJ2FsYnVtTmFtZSddKTsKCSRrID0gMDsKCSRpbnZhbGlkTmFtZSA9IHRydWU7Cgl3aGlsZSAoJGludmFsaWROYW1lKSB7CgkgICAgbGlzdCAoJHJldCwgJGV4aXN0aW5nQWxidW1JZCkgPQoJCUdhbGxlcnlDb3JlQXBpOjpmZXRjaENoaWxkSWRCeVBhdGhDb21wb25lbnQoJGRlc3RpbmF0aW9uQWxidW1JZCwgJGRlc2lyZWRuYW1lKTsKCSAgICBpZiAoJHJldCkgewoJCWlmICghJHJldC0+Z2V0RXJyb3JDb2RlKCkgJiBFUlJPUl9NSVNTSU5HX09CSkVDVCkgewoJCSAgICByZXR1cm4gJHJldDsKCQl9IGVsc2UgewoJCSAgICAkaW52YWxpZE5hbWUgPSBmYWxzZTsKCQl9CgkgICAgfSBlbHNlIHsKCQkkZGVzaXJlZG5hbWUgPSAkcGljYXNhQWxidW1bJ2FsYnVtTmFtZSddIC4gJ18nIC4gJGsrKzsKCSAgICB9Cgl9CgoJLyogTWFrZSBzdXJlIHdlIGhhdmUgcGVybWlzc2lvbiB0byBlZGl0IHRoZSB0YXJnZXQgaXRlbSAqLwoJJHJldCA9IEdhbGxlcnlDb3JlQXBpOjphc3NlcnRIYXNJdGVtUGVybWlzc2lvbigkZGVzdGluYXRpb25BbGJ1bUlkLCAnY29yZS5hZGRBbGJ1bUl0ZW0nKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuICRyZXQ7Cgl9CgoJLyogVHJ5IHRvIGxvYWQgdGFyZ2V0ZWQgcGFyZW50ICovCglsaXN0ICgkcmV0LCAkdGFyZ2V0QWxidW1PYmplY3QpID0gR2FsbGVyeUNvcmVBcGk6OmxvYWRFbnRpdGllc0J5SWQoJGRlc3RpbmF0aW9uQWxidW1JZCk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiAkcmV0OwoJfQoKCS8qIEdldCBhIGxvY2sgb24gc2FpZCBwYXJlbnQgKi8KCWxpc3QgKCRyZXQsICRpbXBvcnRMb2NrSWRzW10pID0gR2FsbGVyeUNvcmVBcGk6OmFjcXVpcmVSZWFkTG9jaygkZGVzdGluYXRpb25BbGJ1bUlkKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuICRyZXQ7Cgl9CgoJLyoKCSAqIElmIGV2ZXJ5dGhpbmcgaXMgZ29vZCBzbyBmYXIsIHdlIGNyZWF0ZSBhIG5ldyBpbnN0YW5jZSB0byBiZSBvdXIgbmV3CgkgKiBhbGJ1bQoJICovCglpZiAoIWVtcHR5KCRkZXNpcmVkbmFtZSkgJiYgJHBsYXRmb3JtLT5pc0xlZ2FsUGF0aENvbXBvbmVudCgkZGVzaXJlZG5hbWUpKSB7CgkgICAgbGlzdCAoJHJldCwgJG5ld0FsYnVtSW5zdGFuY2UpID0KCQlHYWxsZXJ5Q29yZUFwaTo6bmV3RmFjdG9yeUluc3RhbmNlKCdHYWxsZXJ5RW50aXR5JywgJ0dhbGxlcnlBbGJ1bUl0ZW0nKTsKCSAgICBpZiAoJHJldCkgewoJCXJldHVybiAkcmV0OwoJICAgIH0KCSAgICBpZiAoIWlzc2V0KCRuZXdBbGJ1bUluc3RhbmNlKSkgewoJCXJldHVybiBHYWxsZXJ5Q29yZUFwaTo6ZXJyb3IoRVJST1JfTUlTU0lOR19PQkpFQ1QpOwoJICAgIH0KCgkgICAgLyogdGhpcyBpcyB3aGVyZSB0aGUgYWxidW0gaXMgYWN0dWFsbHkgY3JlYXRlZCAqLwoJICAgICRyZXQgPSAkbmV3QWxidW1JbnN0YW5jZS0+Y3JlYXRlKCRkZXN0aW5hdGlvbkFsYnVtSWQsICRkZXNpcmVkbmFtZSk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gJHJldDsKCSAgICB9CgoJICAgICRuZXdBbGJ1bUluc3RhbmNlSWQgPSAkbmV3QWxidW1JbnN0YW5jZS0+Z2V0SWQoKTsKCgkgICAgLyogbG9hZCB1cCB0aGUgYWxidW0gd2l0aCBtZXRhZGF0YSBmcm9tIHRoZSBvbGQgYWxidW0gKi8KCSAgICBpZiAoaXNzZXQoJHBpY2FzYUFsYnVtWydhbGJ1bU5hbWUnXSkpIHsKCQkkbmV3QWxidW1JbnN0YW5jZS0+c2V0VGl0bGUoCgkJICAgIFBpY2FzYUltcG9ydEhlbHBlcjo6Y29udmVydEh0bWwoJG1hcmt1cFR5cGUsICRwaWNhc2FBbGJ1bVsnYWxidW1OYW1lJ10sCgkJCQkJCSAgICAkc291cmNlRW5jb2RpbmcpKTsKCSAgICB9CgkgICAgaWYgKGlzc2V0KCRwaWNhc2FBbGJ1bVsnYWxidW1DYXB0aW9uJ10pKSB7CgkJJG5ld0FsYnVtSW5zdGFuY2UtPnNldERlc2NyaXB0aW9uKAoJCSAgICBQaWNhc2FJbXBvcnRIZWxwZXI6OmNvbnZlcnRIdG1sKCRtYXJrdXBUeXBlLCAkcGljYXNhQWxidW1bJ2FsYnVtQ2FwdGlvbiddLAoJCQkJCQkgICAgJHNvdXJjZUVuY29kaW5nKSk7CgkJJG5ld0FsYnVtSW5zdGFuY2UtPnNldFN1bW1hcnkoCgkJICAgIFBpY2FzYUltcG9ydEhlbHBlcjo6Y29udmVydEh0bWwoJG1hcmt1cFR5cGUsICRwaWNhc2FBbGJ1bVsnYWxidW1DYXB0aW9uJ10sCgkJCQkJCSAgICAkc291cmNlRW5jb2RpbmcpKTsKCSAgICB9CgkgICAgJG5ld0FsYnVtSW5zdGFuY2UtPnNldEtleXdvcmRzKCcnKTsKCgkgICAgJHJldCA9ICRuZXdBbGJ1bUluc3RhbmNlLT5zYXZlKCk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gJHJldDsKCSAgICB9CgoJICAgICRpdGVtc0NyZWF0ZWRbXSA9ICRuZXdBbGJ1bUluc3RhbmNlLT5nZXRJZCgpOwoKCSAgICAkZmluaXNoZWRBbGJ1bXNbJHBpY2FzYUFsYnVtWydhbGJ1bU5hbWUnXV0gPSAkbmV3QWxidW1JbnN0YW5jZUlkOwoJICAgICRzdGF0dXNbJ2FsYnVtSW1wb3J0U3VjY2VzcyddWyRwaWNhc2FBbGJ1bVsnYWxidW1OYW1lJ11dID0gJG5ld0FsYnVtSW5zdGFuY2VJZDsKCSAgICAkc3RhdHVzWydhbGJ1bUlkJ10gPSAkbmV3QWxidW1JbnN0YW5jZUlkOwoJfQoJLyoKCSAqIHdlIGNhbiBsZXQgdGhlIHBhcmVudCBhbGJ1bSAoYW5kIGFueXRoaW5nIGVsc2UgdGhhdCB3ZSBtaWdodAoJICogaGF2ZSB0aWVkIHVwKSBiZSBlZGl0ZWQgYnkgb3RoZXJzIG5vdwoJICovCgoJJHJldCA9IEdhbGxlcnlDb3JlQXBpOjpyZWxlYXNlTG9ja3MoJGltcG9ydExvY2tJZHMpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gJHJldDsKCX0gZWxzZSB7CgkgICAgJGltcG9ydExvY2tJZHMgPSBhcnJheSgpOwoJfQoKCWxpc3QgKCRyZXQsICRpbXBvcnRMb2NrSWRzW10pID0KCSAgICBHYWxsZXJ5Q29yZUFwaTo6YWNxdWlyZVJlYWRMb2NrKCRuZXdBbGJ1bUluc3RhbmNlSWQpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gJHJldDsKCX0KCgkkcGhvdG9zID0gJHBpY2FzYUFsYnVtWydpbWFnZXMnXTsKCSRudW1iZXJPZkl0ZW1zSW1wb3J0ZWQgPSAxOwoJZm9yZWFjaCAoJHBob3RvcyBhcyAkaiA9PiAkaW1wb3J0QWxidW1JdGVtKSB7CgkgICAgJGdhbGxlcnktPmd1YXJhbnRlZVRpbWVMaW1pdCgzMCk7CgkgICAgJGZpbGVwYXRoID0gJHBpY2FzYVhtbFBhdGggLiBzdHJfcmVwbGFjZSgnLycsICRzbGFzaCwgJGltcG9ydEFsYnVtSXRlbVsncGF0aCddKTsKCSAgICAkZmlsZW5hbWUgPSAkaW1wb3J0QWxidW1JdGVtWyduYW1lJ107CgkgICAgJGZpbGVjYXB0aW9uID0gUGljYXNhSW1wb3J0SGVscGVyOjpjb252ZXJ0SHRtbCgkbWFya3VwVHlwZSwgJGltcG9ydEFsYnVtSXRlbVsnY2FwdGlvbiddLAoJCSRzb3VyY2VFbmNvZGluZyk7CgkgICAgJHRlbXBsYXRlQWRhcHRlci0+dXBkYXRlUHJvZ3Jlc3NCYXIoCgkJJG1vZHVsZS0+dHJhbnNsYXRlKCdJbXBvcnRpbmcgcGhvdG9zJyksCgkJJHBpY2FzYUFsYnVtWydhbGJ1bU5hbWUnXSAuICcgJyAuICRmaWxlbmFtZSwKCQkkbnVtYmVyT2ZJdGVtc0ltcG9ydGVkIC8gJHRvdGFsSXRlbXNUb0ltcG9ydCk7CgkgICAgbGlzdCAoJGJhc2UsICRleHRlbnNpb24pID0KCQlHYWxsZXJ5VXRpbGl0aWVzOjpnZXRGaWxlTmFtZUNvbXBvbmVudHMoJGZpbGVuYW1lKTsKCSAgICBsaXN0ICgkcmV0LCAkbWltZVR5cGUpID0KCQlHYWxsZXJ5Q29yZUFwaTo6Y29udmVydEV4dGVuc2lvblRvTWltZSgkZXh0ZW5zaW9uKTsKCSAgICBpZiAoJHJldCkgewoJCXJldHVybiAkcmV0OwoJICAgIH0KCSAgICBsaXN0ICgkcmV0LCAkbmV3SXRlbSkgPSBHYWxsZXJ5Q29yZUFwaTo6YWRkSXRlbVRvQWxidW0oCgkJJGZpbGVwYXRoLCAkZmlsZW5hbWUsICRiYXNlLCAkZmlsZWNhcHRpb24sCgkJJGZpbGVjYXB0aW9uLCAkbWltZVR5cGUsICRuZXdBbGJ1bUluc3RhbmNlSWQpOwoJICAgIGlmICgkcmV0KSB7CgkJcmV0dXJuICRyZXQ7CgkgICAgfQoJICAgICRpdGVtc0NyZWF0ZWRbXSA9ICRuZXdJdGVtLT5nZXRJZCgpOwoJICAgICRudW1iZXJPZkl0ZW1zSW1wb3J0ZWQrKzsKCSAgICBpZiAoJHJldCkgewoJCXJldHVybiAkcmV0OwoJICAgIH0KCSAgICAkc3RhdHVzWydwaWN0dXJlSW1wb3J0U3VjY2VzcyddWyRmaWxlbmFtZV0gPSAkbmV3SXRlbS0+Z2V0SWQoKTsKCgl9CgoJJHNlc3Npb24gPSYgJGdhbGxlcnktPmdldFNlc3Npb24oKTsKCgkkcmVkaXJlY3RbJ3ZpZXcnXSA9ICdjb3JlLlNpdGVBZG1pbic7CgkkcmVkaXJlY3RbJ3N1YlZpZXcnXSA9ICdwaWNhc2EuSW1wb3J0UmVzdWx0cyc7CgkkcmVkaXJlY3RbJ3N0YXR1c0lkJ10gPSAkc2Vzc2lvbi0+cHV0U3RhdHVzKCRzdGF0dXMpOwoKCSR1cmxHZW5lcmF0b3IgPSYgJGdhbGxlcnktPmdldFVybEdlbmVyYXRvcigpOwoJJHRlbXBsYXRlQWRhcHRlci0+Y29tcGxldGVQcm9ncmVzc0JhcigkdXJsR2VuZXJhdG9yLT5nZW5lcmF0ZVVybCgkcmVkaXJlY3QpKTsKCgkkcmV0ID0gR2FsbGVyeUNvcmVBcGk6OnJlbGVhc2VMb2NrcygkaW1wb3J0TG9ja0lkcyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiAkcmV0OwoJfQoJcmV0dXJuIG51bGw7CiAgICB9Cn0KCi8qKgogKiBDb25maXJtIHNlbGVjdGlvbnMgYmVmb3JlIHBlcmZvcm1pbmcgaW1wb3J0CiAqLwpjbGFzcyBDb25maXJtUGljYXNhSW1wb3J0VmlldyBleHRlbmRzIEdhbGxlcnlWaWV3IHsKCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeVZpZXc6OmxvYWRUZW1wbGF0ZQogICAgICovCiAgICBmdW5jdGlvbiBsb2FkVGVtcGxhdGUoJiR0ZW1wbGF0ZSwgJiRmb3JtKSB7CglnbG9iYWwgJGdhbGxlcnk7CgoJLyogVmVyaWZ5IHRoYXQgYWN0aXZlIHVzZXIgaXMgYW4gYWRtaW4gKi8KCSRyZXQgPSBHYWxsZXJ5Q29yZUFwaTo6YXNzZXJ0VXNlcklzU2l0ZUFkbWluaXN0cmF0b3IoKTsKCWlmICgkcmV0KSB7CgkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJfQoKCSRwbGF0Zm9ybSA9JiAkZ2FsbGVyeS0+Z2V0UGxhdGZvcm0oKTsKCSRpbGxlZ2FsQWxidW1OYW1lcyA9ICRleGlzdGluZ0FsYnVtcyA9ICR0aXRsZXMgPSBhcnJheSgpOwoKCSRwaWNhc2FYbWxQYXRoID0gR2FsbGVyeVV0aWxpdGllczo6Z2V0UmVxdWVzdFZhcmlhYmxlcygncGljYXNhWG1sUGF0aCcpOwoJJGRlc3RpbmF0aW9uQWxidW1JZCA9IEdhbGxlcnlVdGlsaXRpZXM6OmdldFJlcXVlc3RWYXJpYWJsZXMoJ2Rlc3RpbmF0aW9uQWxidW1JZCcpOwoKCWxpc3QgKCRyZXQsICRhbGJ1bSkgPSBQaWNhc2EyRGF0YVBhcnNlcjo6Z2V0QWxidW0oJHBpY2FzYVhtbFBhdGgpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CglsaXN0ICgkcmV0LCAkdGFyZ2V0QWxidW0pID0gR2FsbGVyeUNvcmVBcGk6OmxvYWRFbnRpdGllc0J5SWQoJGRlc3RpbmF0aW9uQWxidW1JZCk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCgkkYWxidW1OYW1lID0gJGFsYnVtWydhbGJ1bU5hbWUnXTsKCWxpc3QgKCRyZXQsICRleGlzdGluZ0FsYnVtSWQpID0KCSAgICBHYWxsZXJ5Q29yZUFwaTo6ZmV0Y2hDaGlsZElkQnlQYXRoQ29tcG9uZW50KCRkZXN0aW5hdGlvbkFsYnVtSWQsCgkgICAgJHBsYXRmb3JtLT5sZWdhbGl6ZVBhdGhDb21wb25lbnQoJGFsYnVtTmFtZSkpOwoJaWYgKCRyZXQpIHsKCSAgICBpZiAoISRyZXQtPmdldEVycm9yQ29kZSgpICYgRVJST1JfTUlTU0lOR19PQkpFQ1QpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoJfSBlbHNlIHsKCSAgICAkZXhpc3RpbmdBbGJ1bXNbJGFsYnVtTmFtZV0gPSAkZXhpc3RpbmdBbGJ1bUlkOwoJfQoJaWYgKCEkcGxhdGZvcm0tPmlzTGVnYWxQYXRoQ29tcG9uZW50KCRhbGJ1bU5hbWUpKSB7CgkgICAgJGlsbGVnYWxBbGJ1bU5hbWVzWyRhbGJ1bU5hbWVdID0gJHBsYXRmb3JtLT5sZWdhbGl6ZVBhdGhDb21wb25lbnQoJGFsYnVtTmFtZSk7Cgl9CgoJJENvbmZpcm1QaWNhc2FJbXBvcnQgPSBhcnJheSgpOwoJJENvbmZpcm1QaWNhc2FJbXBvcnRbJ2FsYnVtJ10gPSAkYWxidW07CgkkQ29uZmlybVBpY2FzYUltcG9ydFsncGljYXNhWG1sUGF0aCddID0gJHBpY2FzYVhtbFBhdGg7CgkkQ29uZmlybVBpY2FzYUltcG9ydFsnZXhpc3RpbmdBbGJ1bXMnXSA9ICRleGlzdGluZ0FsYnVtczsKCSRDb25maXJtUGljYXNhSW1wb3J0WydpbGxlZ2FsQWxidW1OYW1lcyddID0gJGlsbGVnYWxBbGJ1bU5hbWVzOwoJJENvbmZpcm1QaWNhc2FJbXBvcnRbJ2Rlc3RpbmF0aW9uQWxidW1JZCddID0gJGRlc3RpbmF0aW9uQWxidW1JZDsKCSRDb25maXJtUGljYXNhSW1wb3J0Wyd0YXJnZXRBbGJ1bSddID0gKGFycmF5KSR0YXJnZXRBbGJ1bTsKCgkkdGVtcGxhdGUtPnNldFZhcmlhYmxlKCdDb25maXJtUGljYXNhSW1wb3J0JywgJENvbmZpcm1QaWNhc2FJbXBvcnQpOwoJJHRlbXBsYXRlLT5zZXRWYXJpYWJsZSgnY29udHJvbGxlcicsICdwaWNhc2EuQ29uZmlybVBpY2FzYUltcG9ydCcpOwoJcmV0dXJuIGFycmF5KG51bGwsIGFycmF5KCdib2R5JyA9PiAnbW9kdWxlcy9waWNhc2EvdGVtcGxhdGVzL0NvbmZpcm1QaWNhc2FJbXBvcnQudHBsJykpOwogICAgfQp9Cj8+Cg==');
expand_0c05013ac9($outputDir, 'ImportResults.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogSW1wb3J0IHJlc3VsdHMKICogQHBhY2thZ2UgUGljYXNhCiAqIEBzdWJwYWNrYWdlIFVzZXJJbnRlcmZhY2UKICogQGF1dGhvciBXYWxkZW1hciBTY2hsYWNrb3cgPGdhbGxlcnlAc2NobGFja293LmRlPiBiYXNlZCBvbiBjb2RlIGJ5CiAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMTU1MTMgJAogKi8KY2xhc3MgSW1wb3J0UmVzdWx0c1ZpZXcgZXh0ZW5kcyBHYWxsZXJ5VmlldyB7CgogICAgLyoqCiAgICAgKiBAc2VlIEdhbGxlcnlWaWV3Ojpsb2FkVGVtcGxhdGUKICAgICAqLwogICAgZnVuY3Rpb24gbG9hZFRlbXBsYXRlKCYkdGVtcGxhdGUsICYkZm9ybSkgewoJZ2xvYmFsICRnYWxsZXJ5OwoKCWlmICgkZm9ybVsnZm9ybU5hbWUnXSAhPSAnSW1wb3J0UmVzdWx0cycpIHsKCSAgICAkZm9ybVsnZm9ybU5hbWUnXSA9ICdJbXBvcnRSZXN1bHRzJzsKCX0KCSRzdGF0dXMgPSAkdGVtcGxhdGUtPmdldFZhcmlhYmxlKCdzdGF0dXMnKTsKCSRjb3VudHMgPSBhcnJheSgpOwoJZm9yZWFjaCAoYXJyYXkoJ2FsYnVtSW1wb3J0RmFpbHVyZScsICdhbGJ1bUltcG9ydFN1Y2Nlc3MnLAoJCSAgICAgICAncGljdHVyZUltcG9ydEZhaWx1cmUnLCAncGljdHVyZUltcG9ydFN1Y2Nlc3MnKSBhcyAka2V5KSB7CgkgICAgaWYgKGlzc2V0KCRzdGF0dXNbJGtleV0pKSB7CgkJJGNvdW50c1ska2V5XSA9IHNpemVvZigkc3RhdHVzWyRrZXldKTsKCSAgICB9IGVsc2UgewoJCSRjb3VudHNbJGtleV0gPSAwOwoJICAgIH0KCX0KCgkkSW1wb3J0UmVzdWx0cyA9IGFycmF5KCk7CgkkSW1wb3J0UmVzdWx0c1snY291bnRzJ10gPSAkY291bnRzOwoJJEltcG9ydFJlc3VsdHNbJ3N0YXR1cyddID0gJHN0YXR1czsKCSR0ZW1wbGF0ZS0+c2V0VmFyaWFibGUoJ0ltcG9ydFJlc3VsdHMnLCAkSW1wb3J0UmVzdWx0cyk7CgkkdGVtcGxhdGUtPnNldFZhcmlhYmxlKCdjb250cm9sbGVyJywgJ3BpY2FzYS5JbXBvcnRSZXN1bHRzJyk7CglyZXR1cm4gYXJyYXkobnVsbCwgYXJyYXkoJ2JvZHknID0+ICdtb2R1bGVzL3BpY2FzYS90ZW1wbGF0ZXMvSW1wb3J0UmVzdWx0cy50cGwnKSk7CiAgICB9Cn0KPz4K');
expand_0c05013ac9($outputDir, 'ItemAddFromPicasa.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogVGhpcyBwbHVnaW4gZW5hYmxlcyB0aGUgdXBsb2FkIG9mIFpJUCAob3Igc2ltaWxhcikgUGljYXNhIGV4cG9ydCBhcmNoaXZlcyB0byBpbXBvcnQgdGhlbSBpbnRvIEcyCiAqIEBwYWNrYWdlIFBpY2FzYQogKiBAc3VicGFja2FnZSBVc2VySW50ZXJmYWNlCiAqIEBhdXRob3IgV2FsZGVtYXIgU2NobGFja293IDx3YWxkZW1hckBvcGVuY29kZXMub3JnPgogKiBAdmVyc2lvbiAkUmV2aXNpb246IDE1NTEzICQKICovCmNsYXNzIEl0ZW1BZGRGcm9tUGljYXNhIGV4dGVuZHMgSXRlbUFkZFBsdWdpbiB7CgogICAgLyoqCiAgICAgKiBAc2VlIEl0ZW1BZGRQbHVnaW46OmhhbmRsZVJlcXVlc3QKICAgICAqLwogICAgZnVuY3Rpb24gaGFuZGxlUmVxdWVzdCgkZm9ybSwgJiRpdGVtKSB7CglnbG9iYWwgJGdhbGxlcnk7CglHYWxsZXJ5Q29yZUFwaTo6cmVxdWlyZU9uY2UoJ21vZHVsZXMvcGljYXNhL2NsYXNzZXMvUGljYXNhMkRhdGFQYXJzZXIuY2xhc3MnKTsKCUdhbGxlcnlDb3JlQXBpOjpyZXF1aXJlT25jZSgnbW9kdWxlcy9waWNhc2EvY2xhc3Nlcy9QaWNhc2FJbXBvcnRIZWxwZXIuY2xhc3MnKTsKCSRwbGF0Zm9ybSA9JiAkZ2FsbGVyeS0+Z2V0UGxhdGZvcm0oKTsKCSRzdGF0dXMgPSAkZXJyb3IgPSBhcnJheSgpOwoJaWYgKGVtcHR5KCRmb3JtWyduYW1lJ11bJ3BpY2FzYVppcFBhdGgnXSkpIHsKCSAgICAvKiBObyBmaWxlbmFtZSB3YXMgZW50ZXJlZCAqLwoJICAgICRlcnJvcltdID0gJ2Zvcm1bZXJyb3JdW3BpY2FzYVppcFBhdGhdW21pc3NpbmddJzsKCX0gZWxzZSBpZiAoaXNzZXQoJGZvcm1bJ2FjdGlvbiddWydhZGRGcm9tUGljYXNhJ10pKSB7CgoJICAgIC8qIFVwbG9hZCBhbnkgbmV3IGZpbGVzICovCgkgICAgJG5ld0l0ZW0gPSBudWxsOwoKCSAgICAvKiBQbGFjZWhvbGRlciBmb3IgbGF0ZXIgKi8KCSAgICBpZiAoZW1wdHkoJGZvcm1bJ3RtcF9uYW1lJ11bJ3BpY2FzYVppcFBhdGgnXSkgfHwKCQkgICAgZW1wdHkoJGZvcm1bJ3NpemUnXVsncGljYXNhWmlwUGF0aCddKSkgewoJCS8qIFNvbWV0aGluZyB3ZW50IHdyb25nIHdpdGggdGhlIHVwbG9hZCAqLwoJCSRlcnJvcltdID0gJ2Zvcm1bZXJyb3JdW3BpY2FzYVppcFBhdGhdW3VwbG9hZGVycm9yXSc7CgkgICAgfSBlbHNlIHsKCQkkZmlsZSA9IGFycmF5KCduYW1lJyA9PiAkZm9ybVsnbmFtZSddWydwaWNhc2FaaXBQYXRoJ10sCgkJICAgICAgJ3R5cGUnID0+ICRmb3JtWyd0eXBlJ11bJ3BpY2FzYVppcFBhdGgnXSwKCQkgICAgICAndG1wX25hbWUnID0+ICRmb3JtWyd0bXBfbmFtZSddWydwaWNhc2FaaXBQYXRoJ10sCgkJICAgICAgJ3NpemUnID0+ICRmb3JtWydzaXplJ11bJ3BpY2FzYVppcFBhdGgnXSk7CgoJCS8qIEdldCB0aGUgbWltZSB0eXBlIGZyb20gdGhlIHVwbG9hZCBpbmZvLiAqLwoJCSRtaW1lVHlwZSA9ICRmaWxlWyd0eXBlJ107CgoJCS8qCgkJICogSWYgd2UgZG9uJ3QgZ2V0IHVzZWZ1bCBkYXRhIGZyb20gdGhhdCBvciBpdHMgYSB0eXBlIHdlIGRvbid0CgkJICogcmVjb2duaXplLCB0YWtlIGEgc3dpbmcgYXQgaXQgdXNpbmcgdGhlIGZpbGUgbmFtZS4KCQkgKi8KCQlsaXN0ICgkcmV0LCAkbWltZUV4dGVuc2lvbnMpID0KCQkgICAgR2FsbGVyeUNvcmVBcGk6OmNvbnZlcnRNaW1lVG9FeHRlbnNpb25zKCRtaW1lVHlwZSk7CgkJaWYgKCRtaW1lVHlwZSA9PSAnYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtJyB8fAoJCQkkbWltZVR5cGUgPT0gJ2FwcGxpY2F0aW9uL3Vua25vd24nIHx8IGVtcHR5KCRtaW1lRXh0ZW5zaW9ucykpIHsKCQkgICAgJGV4dGVuc2lvbiA9IEdhbGxlcnlVdGlsaXRpZXM6OmdldEZpbGVFeHRlbnNpb24oJGZpbGVbJ25hbWUnXSk7CgkJICAgIGxpc3QgKCRyZXQsICRtaW1lVHlwZSkgPSBHYWxsZXJ5Q29yZUFwaTo6Y29udmVydEV4dGVuc2lvblRvTWltZSgkZXh0ZW5zaW9uKTsKCQkgICAgaWYgKCRyZXQpIHsKCQkJJG1pbWVUeXBlID0gJ2FwcGxpY2F0aW9uL3Vua25vd24nOwoJCSAgICB9CgkJfQoJCWxpc3QgKCRyZXQsICR0b29sa2l0KSA9IEdhbGxlcnlDb3JlQXBpOjpnZXRUb29sa2l0QnlPcGVyYXRpb24oJG1pbWVUeXBlLCAnZXh0cmFjdCcpOwoJCWlmICgkcmV0KSB7CgkJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsLCBudWxsKTsKCQl9CgkJaWYgKCFpc3NldCgkdG9vbGtpdCkpIHsKCQkgICAgLyogTm8gVG9vbGtpdCBmb3IgdGhhdCBtaW1ldHlwZSAqLwoJCSAgICAkZXJyb3JbXSA9ICdmb3JtW2Vycm9yXVtwaWNhc2FaaXBQYXRoXVtub3RzdXBwb3J0ZWRdJzsKCQl9IGVsc2UgewoJCSAgICAkYmFzZSA9ICRwbGF0Zm9ybS0+dGVtcG5hbSgkZ2FsbGVyeS0+Z2V0Q29uZmlnKCdkYXRhLmdhbGxlcnkudG1wJyksICd0bXBfJyk7CgkJICAgICR0bXBEaXIgPSAkYmFzZSAuICcuZGlyJzsKCQkgICAgaWYgKCEkcGxhdGZvcm0tPm1rZGlyKCR0bXBEaXIpKSB7CgkJCXJldHVybiBhcnJheShHYWxsZXJ5Q29yZUFwaTo6ZXJyb3IoRVJST1JfUExBVEZPUk1fRkFJTFVSRSksIG51bGwsIG51bGwpOwoJCSAgICB9CgkJICAgIGxpc3QgKCRyZXQsICRhZGRlZEZpbGVzKSA9ICR0b29sa2l0LT5wZXJmb3JtT3BlcmF0aW9uKCRtaW1lVHlwZSwgJ2V4dHJhY3QnLAoJCQkkZmlsZVsndG1wX25hbWUnXSwgJHRtcERpciwgYXJyYXkoKSk7CgkJICAgIGlmICgkcmV0KSB7CgkJCUAkcGxhdGZvcm0tPnJlY3Vyc2l2ZVJtZGlyKCR0bXBEaXIpOwoJCQlAJHBsYXRmb3JtLT51bmxpbmsoJGJhc2UpOwoJCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCwgbnVsbCk7CgkJICAgIH0KCgkJICAgICRzbGFzaCA9ICRwbGF0Zm9ybS0+Z2V0RGlyZWN0b3J5U2VwYXJhdG9yKCk7CgkJICAgICRwaWNhc2FYbWxQYXRoID0gdHJpbSgkdG1wRGlyKSAuICRzbGFzaDsKCQkgICAgaWYgKCFQaWNhc2EyRGF0YVBhcnNlcjo6aXNWYWxpZFBpY2FzYVhtbFBhdGgoJHBpY2FzYVhtbFBhdGgpKSB7CgkJCS8qIFRoZSBhcmNoaXZlIGRvZXMgbm90IGNvbnRhaW4gdmFsaWQgUGljYXNhIGRhdGEgKi8KCQkJQCRwbGF0Zm9ybS0+cmVjdXJzaXZlUm1kaXIoJHRtcERpcik7CgkJCUAkcGxhdGZvcm0tPnVubGluaygkYmFzZSk7CgkJCSRlcnJvcltdID0gJ2Zvcm1bZXJyb3JdW3BpY2FzYVppcFBhdGhdW2ludmFsaWRdJzsKCgkJICAgIH0gZWxzZSB7CgkJCWxpc3QgKCRyZXQsICRpbXBvcnRTdGF0dXMpID0KCQkJICAgICR0aGlzLT5wZXJmb3JtSW1wb3J0KCRwaWNhc2FYbWxQYXRoLCAkaXRlbS0+Z2V0SWQoKSwgJGZvcm0pOwoJCQlpZiAoJHJldCkgewoJCQkgICAgQCRwbGF0Zm9ybS0+cmVjdXJzaXZlUm1kaXIoJHRtcERpcik7CgkJCSAgICBAJHBsYXRmb3JtLT51bmxpbmsoJGJhc2UpOwoJCQkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwsIG51bGwpOwoJCQl9CgkJCWZvcmVhY2ggKCRpbXBvcnRTdGF0dXNbJ3BpY3R1cmVJbXBvcnRTdWNjZXNzJ10KCQkJCWFzICRwaWN0dXJlTmFtZSA9PiAkcGljdHVyZUlkKSB7CgkJCSAgICAkc3RhdHVzWydhZGRlZEZpbGVzJ11bXSA9IGFycmF5KCdmaWxlTmFtZScgPT4gJHBpY3R1cmVOYW1lLAoJCQkJICAgICdpZCcgPT4gJHBpY3R1cmVJZCwKCQkJCSAgICAnd2FybmluZ3MnID0+IGFycmF5KCkpOwoJCQl9CgkJICAgIH0KCQkgICAgJHBsYXRmb3JtLT5yZWN1cnNpdmVSbWRpcigkdG1wRGlyKTsKCQkgICAgJHBsYXRmb3JtLT51bmxpbmsoJGJhc2UpOwoJCX0KCSAgICB9Cgl9CglyZXR1cm4gYXJyYXkobnVsbCwgJGVycm9yLCAkc3RhdHVzKTsKICAgIH0KCiAgICAvKioKICAgICAqIEFjdHVhbGx5IHBlcmZvcm1zIHRoZSBpbXBvcnQgZnJvbSBQaWNhc2EgaW50byBHMi4gKEkgcmVhbGlzZSB0aGF0IHRoaXMgdmVyeSBtdWNoIHJlc2VtYmxlcwogICAgICogQ29uZmlybVBpY2FzYUltcG9ydDo6cGVyZm9ybUltcG9ydCwgYW5kIHdpbGwgdW5pZnkgdGhlc2UgYXQgYSBsYXRlciB0aW1lLCBhcyB0aGlzIGlzCiAgICAgKiBub3QgdG9vIGVhc3kgKG1haW5seSBiZWNhdXNlIG9mIHRoZSBwcm9ncmVzc0JhciBpbiBDb25maXJtUGljYXNhSW1wb3J0LikKICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwaWNhc2FYbWxQYXRoIHRoZSBleHBvcnQgcGF0aCwgaW50ZWdlciB0aGUgSUQgb2YgdGhlIGRlc3RpbmF0aW9uIGFsYnVtLAogICAgICogICAgICAgIGFycmF5IHRoZSBmb3JtIHZhcmlhYmxlcwogICAgICogQHJldHVybiBvYmplY3QgR2FsbGVyeVN0YXR1cyBhIHN0YXR1cyBjb2RlCiAgICAgKi8KICAgIGZ1bmN0aW9uIHBlcmZvcm1JbXBvcnQoJHBpY2FzYVhtbFBhdGgsICRkZXN0aW5hdGlvbkFsYnVtSWQsICRmb3JtKSB7CglnbG9iYWwgJGdhbGxlcnk7Cgkkc3RvcmFnZSA9ICRnYWxsZXJ5LT5nZXRTdG9yYWdlKCk7CgoJJHBsYXRmb3JtID0mICRnYWxsZXJ5LT5nZXRQbGF0Zm9ybSgpOwoJJHNsYXNoID0gJHBsYXRmb3JtLT5nZXREaXJlY3RvcnlTZXBhcmF0b3IoKTsKCSRmaW5pc2hlZEFsYnVtcyA9ICRhbGJ1bVBvc2l0aW9uID0gYXJyYXkoKTsKCgkkc3RhdHVzID0gYXJyYXkoJ2FsYnVtSWQnID0+IGZhbHNlLAoJCQknYWxidW1JbXBvcnRGYWlsdXJlJyA9PiBhcnJheSgpLAoJCQknYWxidW1JbXBvcnRTdWNjZXNzJyA9PiBhcnJheSgpLAoJCQkncGljdHVyZUltcG9ydFN1Y2Nlc3MnID0+IGFycmF5KCksCgkJCSdwaWN0dXJlSW1wb3J0RmFpbHVyZScgPT4gYXJyYXkoKSk7CgoJbGlzdCAoJHJldCwgJG1vZHVsZSkgPSBHYWxsZXJ5Q29yZUFwaTo6bG9hZFBsdWdpbignbW9kdWxlJywgJ3BpY2FzYScpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJJHNvdXJjZUVuY29kaW5nID0gJ1VURi04JzsKCglsaXN0ICgkcmV0LCAkbWFya3VwVHlwZSkgPQoJICAgIEdhbGxlcnlDb3JlQXBpOjpnZXRQbHVnaW5QYXJhbWV0ZXIoJ21vZHVsZScsICdjb3JlJywgJ21pc2MubWFya3VwJyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCgkkaXRlbXNDcmVhdGVkID0gJHBpY2FzYUFsYnVtID0gYXJyYXkoKTsKCgkvKgoJICogQ2hlY2sgdG8gc2VlIGlmIHRoZSB1c2VyIHNlbGVjdGVkIGEgZGVzdGluYXRpb24uICBJZiBub3QsCgkgKiBkZWZhdWx0IHRvIHRoZSByb290IGFsYnVtIG9mIHRoZSBuZXcgZ2FsbGVyeSBpbnN0YWxsLgoJICovCglpZiAoIWlzc2V0KCRkZXN0aW5hdGlvbkFsYnVtSWQpKSB7CgkgICAgbGlzdCAoJHJldCwgJHJvb3RJZCkgPQoJCUdhbGxlcnlDb3JlQXBpOjpnZXRQbHVnaW5QYXJhbWV0ZXIoJ21vZHVsZScsICdjb3JlJywgJ2lkLnJvb3RBbGJ1bScpOwoJICAgIGlmICgkcmV0KSB7CgkJcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJICAgIH0KCSAgICAkZGVzdGluYXRpb25BbGJ1bUlkID0gJHJvb3RJZDsKCX0KCgkvKgoJICogSW1wb3J0IHRoZSBBbGJ1bSAoYXMgb2Ygbm93IFBpY2FzYSBzdXBwb3J0cyBvbmx5IHRoZSBleHBvcnQgb2YgYQoJICogc2luZ2xlIGFsYnVtIGFuZCB0aGVyZSBpcyBubyBjb25jZXB0IG9mIHN1YmFsYnVtcykKCSAqLwoKCWxpc3QgKCRyZXQsICRwaWNhc2FBbGJ1bSkgPSBQaWNhc2EyRGF0YVBhcnNlcjo6Z2V0QWxidW0oJHBpY2FzYVhtbFBhdGgpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJJHRvdGFsSXRlbXNUb0ltcG9ydCA9IGNvdW50KCRwaWNhc2FBbGJ1bVsnaW1hZ2VzJ10pOwoKCWlmIChlbXB0eSgkdG90YWxJdGVtc1RvSW1wb3J0KSkgewoJICAgICR0b3RhbEl0ZW1zVG9JbXBvcnQgPSAxOwoJfQoJJGkgPSAwOwoKCSRudW1iZXJPZkl0ZW1zSW1wb3J0ZWQgPSAwOwoJJGdhbGxlcnktPmd1YXJhbnRlZVRpbWVMaW1pdCgzMCk7CgkkbmV3QWxidW1JbnN0YW5jZUlkID0gZmFsc2U7CgoJJGRlc2lyZWRuYW1lID0gJHBsYXRmb3JtLT5sZWdhbGl6ZVBhdGhDb21wb25lbnQoJHBpY2FzYUFsYnVtWydhbGJ1bU5hbWUnXSk7CgkkayA9IDA7CgkkaW52YWxpZE5hbWUgPSB0cnVlOwoJd2hpbGUgKCRpbnZhbGlkTmFtZSkgewoJICAgIGxpc3QgKCRyZXQsICRleGlzdGluZ0FsYnVtSWQpID0KCQlHYWxsZXJ5Q29yZUFwaTo6ZmV0Y2hDaGlsZElkQnlQYXRoQ29tcG9uZW50KCRkZXN0aW5hdGlvbkFsYnVtSWQsICRkZXNpcmVkbmFtZSk7CgkgICAgaWYgKCRyZXQpIHsKCQlpZiAoISRyZXQtPmdldEVycm9yQ29kZSgpICYgRVJST1JfTUlTU0lOR19PQkpFQ1QpIHsKCQkgICAgcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJCX0gZWxzZSB7CgkJICAgICRpbnZhbGlkTmFtZSA9IGZhbHNlOwoJCX0KCSAgICB9IGVsc2UgewoJCSRkZXNpcmVkbmFtZSA9ICRwaWNhc2FBbGJ1bVsnYWxidW1OYW1lJ10gLiAnXycgLiAkaysrOwoJICAgIH0KCX0KCgkvKiBNYWtlIHN1cmUgd2UgaGF2ZSBwZXJtaXNzaW9uIHRvIGVkaXQgdGhlIHRhcmdldCBpdGVtICovCgkkcmV0ID0gR2FsbGVyeUNvcmVBcGk6OmFzc2VydEhhc0l0ZW1QZXJtaXNzaW9uKCRkZXN0aW5hdGlvbkFsYnVtSWQsICdjb3JlLmFkZEFsYnVtSXRlbScpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJLyogVHJ5IHRvIGxvYWQgdGFyZ2V0ZWQgcGFyZW50ICovCglsaXN0ICgkcmV0LCAkdGFyZ2V0QWxidW1PYmplY3QpID0gR2FsbGVyeUNvcmVBcGk6OmxvYWRFbnRpdGllc0J5SWQoJGRlc3RpbmF0aW9uQWxidW1JZCk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCgkvKiBHZXQgYSBsb2NrIG9uIHNhaWQgcGFyZW50ICovCglsaXN0ICgkcmV0LCAkaW1wb3J0TG9ja0lkc1tdKSA9IEdhbGxlcnlDb3JlQXBpOjphY3F1aXJlUmVhZExvY2soJGRlc3RpbmF0aW9uQWxidW1JZCk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCgkvKiBJZiBldmVyeXRoaW5nIGlzIGdvb2Qgc28gZmFyLCB3ZSBjcmVhdGUgYSBuZXcgaW5zdGFuY2UgdG8gYmUgb3VyIG5ldyBhbGJ1bSAqLwoJaWYgKCFlbXB0eSgkZGVzaXJlZG5hbWUpICYmICRwbGF0Zm9ybS0+aXNMZWdhbFBhdGhDb21wb25lbnQoJGRlc2lyZWRuYW1lKSkgewoJICAgIGxpc3QgKCRyZXQsICRuZXdBbGJ1bUluc3RhbmNlKSA9CgkJR2FsbGVyeUNvcmVBcGk6Om5ld0ZhY3RvcnlJbnN0YW5jZSgnR2FsbGVyeUVudGl0eScsICdHYWxsZXJ5QWxidW1JdGVtJyk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoJICAgIGlmICghaXNzZXQoJG5ld0FsYnVtSW5zdGFuY2UpKSB7CgkJcmV0dXJuIGFycmF5KEdhbGxlcnlDb3JlQXBpOjplcnJvcihFUlJPUl9NSVNTSU5HX09CSkVDVCksIG51bGwpOwoJICAgIH0KCgkgICAgLyogdGhpcyBpcyB3aGVyZSB0aGUgYWxidW0gaXMgYWN0dWFsbHkgY3JlYXRlZCAqLwoJICAgICRyZXQgPSAkbmV3QWxidW1JbnN0YW5jZS0+Y3JlYXRlKCRkZXN0aW5hdGlvbkFsYnVtSWQsICRkZXNpcmVkbmFtZSk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoKCSAgICAkbmV3QWxidW1JbnN0YW5jZUlkID0gJG5ld0FsYnVtSW5zdGFuY2UtPmdldElkKCk7CgoJICAgIC8qIGxvYWQgdXAgdGhlIGFsYnVtIHdpdGggbWV0YWRhdGEgZnJvbSB0aGUgb2xkIGFsYnVtICovCgkgICAgaWYgKGlzc2V0KCRwaWNhc2FBbGJ1bVsnYWxidW1OYW1lJ10pKSB7CgkJJG5ld0FsYnVtSW5zdGFuY2UtPnNldFRpdGxlKAoJCQlQaWNhc2FJbXBvcnRIZWxwZXI6OmNvbnZlcnRIdG1sKCRtYXJrdXBUeXBlLAoJCQkgICAgJHBpY2FzYUFsYnVtWydhbGJ1bU5hbWUnXSwgJHNvdXJjZUVuY29kaW5nKSk7CgkgICAgfQoJICAgIGlmIChpc3NldCgkcGljYXNhQWxidW1bJ2FsYnVtQ2FwdGlvbiddKSkgewoJCSRuZXdBbGJ1bUluc3RhbmNlLT5zZXREZXNjcmlwdGlvbigKCQkJUGljYXNhSW1wb3J0SGVscGVyOjpjb252ZXJ0SHRtbCgkbWFya3VwVHlwZSwKCQkJICAgICRwaWNhc2FBbGJ1bVsnYWxidW1DYXB0aW9uJ10sICRzb3VyY2VFbmNvZGluZykpOwoJCSRuZXdBbGJ1bUluc3RhbmNlLT5zZXRTdW1tYXJ5KAoJCQlQaWNhc2FJbXBvcnRIZWxwZXI6OmNvbnZlcnRIdG1sKCRtYXJrdXBUeXBlLAoJCQkgICAgJHBpY2FzYUFsYnVtWydhbGJ1bUNhcHRpb24nXSwgJHNvdXJjZUVuY29kaW5nKSk7CgkgICAgfQoJICAgICRuZXdBbGJ1bUluc3RhbmNlLT5zZXRLZXl3b3JkcygnJyk7CgoJICAgICRyZXQgPSAkbmV3QWxidW1JbnN0YW5jZS0+c2F2ZSgpOwoJICAgIGlmICgkcmV0KSB7CgkJcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJICAgIH0KCgkgICAgJGl0ZW1zQ3JlYXRlZFtdID0gJG5ld0FsYnVtSW5zdGFuY2UtPmdldElkKCk7CgoJICAgICRmaW5pc2hlZEFsYnVtc1skcGljYXNhQWxidW1bJ2FsYnVtTmFtZSddXSA9ICRuZXdBbGJ1bUluc3RhbmNlSWQ7CgkgICAgJHN0YXR1c1snYWxidW1JbXBvcnRTdWNjZXNzJ11bJHBpY2FzYUFsYnVtWydhbGJ1bU5hbWUnXV0gPSAkbmV3QWxidW1JbnN0YW5jZUlkOwoJICAgICRzdGF0dXNbJ2FsYnVtSWQnXSA9ICRuZXdBbGJ1bUluc3RhbmNlSWQ7Cgl9CgoJLyoKCSAqIHdlIGNhbiBsZXQgdGhlIHBhcmVudCBhbGJ1bSAoYW5kIGFueXRoaW5nIGVsc2UgdGhhdCB3ZSBtaWdodAoJICogaGF2ZSB0aWVkIHVwKSBiZSBlZGl0ZWQgYnkgb3RoZXJzIG5vdwoJICovCgkkcmV0ID0gR2FsbGVyeUNvcmVBcGk6OnJlbGVhc2VMb2NrcygkaW1wb3J0TG9ja0lkcyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0gZWxzZSB7CgkgICAgJGltcG9ydExvY2tJZHMgPSBhcnJheSgpOwoJfQoKCWxpc3QgKCRyZXQsICRpbXBvcnRMb2NrSWRzW10pID0KCSAgICBHYWxsZXJ5Q29yZUFwaTo6YWNxdWlyZVJlYWRMb2NrKCRuZXdBbGJ1bUluc3RhbmNlSWQpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJJHBob3RvcyA9ICRwaWNhc2FBbGJ1bVsnaW1hZ2VzJ107CgkkbnVtYmVyT2ZJdGVtc0ltcG9ydGVkID0gMTsKCWZvcmVhY2ggKCRwaG90b3MgYXMgJGogPT4gJGltcG9ydEFsYnVtSXRlbSkgewoJICAgICRnYWxsZXJ5LT5ndWFyYW50ZWVUaW1lTGltaXQoMzApOwoJICAgICRmaWxlcGF0aCA9ICRwaWNhc2FYbWxQYXRoIC4gc3RyX3JlcGxhY2UoJy8nLCAkc2xhc2gsICRpbXBvcnRBbGJ1bUl0ZW1bJ3BhdGgnXSk7CgkgICAgJGZpbGVuYW1lID0gJGltcG9ydEFsYnVtSXRlbVsnbmFtZSddOwoJICAgIGxpc3QgKCRiYXNlLCAkZXh0ZW5zaW9uKSA9IEdhbGxlcnlVdGlsaXRpZXM6OmdldEZpbGVOYW1lQ29tcG9uZW50cygkZmlsZW5hbWUpOwoJICAgICRmaWxlY2FwdGlvbiA9IFBpY2FzYUltcG9ydEhlbHBlcjo6Y29udmVydEh0bWwoJG1hcmt1cFR5cGUsICRpbXBvcnRBbGJ1bUl0ZW1bJ2NhcHRpb24nXSwKCQkgICAgJHNvdXJjZUVuY29kaW5nKTsKCSAgICAkZmlsZXRpdGxlID0gKCRmb3JtWydzZXQnXVsndGl0bGUnXSA9PSAnZmlsZW5hbWUnKSA/ICRiYXNlCgkJOiAoKCRmb3JtWydzZXQnXVsndGl0bGUnXSA9PSAnY2FwdGlvbicpID8gJGZpbGVjYXB0aW9uIDogJycpOwoJICAgICRmaWxlc3VtbWFyeSA9IGVtcHR5KCRmb3JtWydzZXQnXVsnc3VtbWFyeSddKSA/ICcnIDogJGZpbGVjYXB0aW9uOwoJICAgICRmaWxlZGVzY3JpcHRpb24gPSBlbXB0eSgkZm9ybVsnc2V0J11bJ2Rlc2NyaXB0aW9uJ10pID8gJycgOiAkZmlsZWNhcHRpb247CgkgICAgbGlzdCAoJHJldCwgJG1pbWVUeXBlKSA9IEdhbGxlcnlDb3JlQXBpOjpjb252ZXJ0RXh0ZW5zaW9uVG9NaW1lKCRleHRlbnNpb24pOwoJICAgIGlmICgkcmV0KSB7CgkJcmV0dXJuIGFycmF5KCRyZXQsIG51bGwpOwoJICAgIH0KCSAgICBsaXN0ICgkcmV0LCAkbmV3SXRlbSkgPSBHYWxsZXJ5Q29yZUFwaTo6YWRkSXRlbVRvQWxidW0oCgkJICAgICRmaWxlcGF0aCwgJGZpbGVuYW1lLCAkZmlsZXRpdGxlLCAkZmlsZXN1bW1hcnksCgkJICAgICRmaWxlZGVzY3JpcHRpb24sICRtaW1lVHlwZSwgJG5ld0FsYnVtSW5zdGFuY2VJZCk7CgkgICAgaWYgKCRyZXQpIHsKCQlyZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7CgkgICAgfQoJICAgICRpdGVtc0NyZWF0ZWRbXSA9ICRuZXdJdGVtLT5nZXRJZCgpOwoJICAgICRudW1iZXJPZkl0ZW1zSW1wb3J0ZWQrKzsKCSAgICBpZiAoJHJldCkgewoJCXJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCSAgICB9CgkgICAgJHN0YXR1c1sncGljdHVyZUltcG9ydFN1Y2Nlc3MnXVskZmlsZW5hbWVdID0gJG5ld0l0ZW0tPmdldElkKCk7Cgl9CgoJJHJldCA9IEdhbGxlcnlDb3JlQXBpOjpyZWxlYXNlTG9ja3MoJGltcG9ydExvY2tJZHMpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CglyZXR1cm4gYXJyYXkobnVsbCwgJHN0YXR1cyk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAc2VlIEl0ZW1BZGQ6bG9hZFRlbXBsYXRlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGxvYWRUZW1wbGF0ZSgmJHRlbXBsYXRlLCAmJGZvcm0sICRpdGVtKSB7CgkkbWF0Y2hlcyA9IGFycmF5KCk7CgkkZmlsZVVwbG9hZHNCb29sID0gR2FsbGVyeVV0aWxpdGllczo6Z2V0UGhwSW5pQm9vbCgnZmlsZV91cGxvYWRzJyk7CgkkdG90YWxVcGxvYWRTaXplID0gaW5pX2dldCgncG9zdF9tYXhfc2l6ZScpOwoJaWYgKHByZWdfbWF0Y2goIi8oXGQrKU0vIiwgJHRvdGFsVXBsb2FkU2l6ZSwgJG1hdGNoZXMpKSB7CgkgICAgJHRvdGFsVXBsb2FkU2l6ZSA9ICRtYXRjaGVzWzFdICogMTAyNCAqIDEwMjQ7Cgl9CgoJJG1heEZpbGVTaXplID0gaW5pX2dldCgndXBsb2FkX21heF9maWxlc2l6ZScpOwoJaWYgKHByZWdfbWF0Y2goIi8oXGQrKU0vIiwgJG1heEZpbGVTaXplLCAkbWF0Y2hlcykpIHsKCSAgICAkbWF4RmlsZVNpemUgPSAkbWF0Y2hlc1sxXSAqIDEwMjQgKiAxMDI0OwoJfQoKCWxpc3QgKCRyZXQsICRtb2R1bGUpID0gR2FsbGVyeUNvcmVBcGk6OmxvYWRQbHVnaW4oJ21vZHVsZScsICdjb3JlJyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsLCBudWxsKTsKCX0KCglmb3JlYWNoIChhcnJheSgndG90YWxVcGxvYWRTaXplJywgJ21heEZpbGVTaXplJykgYXMgJGtleSkgewoJICAgIGlmICgkJGtleSA+PSAxMDI0ICogMTAyNCkgewoJCSQka2V5ID0gJG1vZHVsZS0+dHJhbnNsYXRlKGFycmF5KCdvbmUnID0+ICclZCBtZWdhYnl0ZScsCgkJCSAgICAnbWFueScgPT4gJyVkIG1lZ2FieXRlcycsCgkJCSAgICAnY291bnQnID0+IChpbnQpKCQka2V5IC8gKDEwMjQgKiAxMDI0KSksCgkJCSAgICAnYXJnMScgPT4gKGludCkoJCRrZXkgLyAoMTAyNCAqIDEwMjQpKSkpOwoJICAgIH0gZWxzZSBpZiAoJCRrZXkgPj0gMTAyNCkgewoJCSQka2V5ID0gJG1vZHVsZS0+dHJhbnNsYXRlKGFycmF5KCdvbmUnID0+ICclZCBraWxvYnl0ZXMnLAoJCQkgICAgJ21hbnknID0+ICclZCBraWxvYnl0ZXMnLAoJCQkgICAgJ2NvdW50JyA9PiAoaW50KSgkJGtleSAvICgxMDI0KSksCgkJCSAgICAnYXJnMScgPT4gKGludCkoJCRrZXkgLyAoMTAyNCkpKSk7CgkgICAgfQoJfQoKCWlmICgkZm9ybVsnZm9ybU5hbWUnXSAhPSAnSXRlbUFkZEZyb21QaWNhc2EnKSB7CgkgICAgLyogRmlyc3QgdGltZSBhcm91bmQsIGxvYWQgdGhlIGZvcm0gd2l0aCBpdGVtIGRhdGEgKi8KCSAgICAkZm9ybVsnc2V0J10gPSBhcnJheSgndGl0bGUnID0+ICdmaWxlbmFtZScsICdzdW1tYXJ5JyA9PiAxLCAnZGVzY3JpcHRpb24nID0+IDEpOwoJICAgICRmb3JtWydmb3JtTmFtZSddID0gJ0l0ZW1BZGRGcm9tUGljYXNhJzsKCX0KCgkkdGl0bGVMaXN0ID0gYXJyYXkoJ2ZpbGVuYW1lJyA9PiAkbW9kdWxlLT50cmFuc2xhdGUoJ0Jhc2UgZmlsZW5hbWUnKSwKCQkJICAgJ2NhcHRpb24nID0+ICRtb2R1bGUtPnRyYW5zbGF0ZSgnUGljYXNhIENhcHRpb24nKSwKCQkJICAgJycgPT4gJG1vZHVsZS0+dHJhbnNsYXRlKCdCbGFuaycpKTsKCgkkdGVtcGxhdGUtPnNldFZhcmlhYmxlKCdJdGVtQWRkRnJvbVBpY2FzYScsCgkJYXJyYXkoJ3RvdGFsVXBsb2FkU2l6ZScgPT4gJHRvdGFsVXBsb2FkU2l6ZSwKCQkgICAgICAnbWF4RmlsZVNpemUnID0+ICRtYXhGaWxlU2l6ZSwKCQkgICAgICAndXBsb2Fkc1Blcm1pdHRlZCcgPT4gJGZpbGVVcGxvYWRzQm9vbCwKCQkgICAgICAndGl0bGVMaXN0JyA9PiAkdGl0bGVMaXN0KSk7CgoJLyogU2V0IHRoZSBJdGVtQWRtaW4gZm9ybSdzIGVuY29kaW5nIHR5cGUgc3BlY2lhbGx5IHNpbmNlIHdlJ3JlIHVwbG9hZGluZyBiaW5hcnkgZmlsZXMgKi8KCWlmICgkdGVtcGxhdGUtPmhhc1ZhcmlhYmxlKCdJdGVtQWRtaW4nKSkgewoJICAgICRJdGVtQWRtaW4gPSYgJHRlbXBsYXRlLT5nZXRWYXJpYWJsZUJ5UmVmZXJlbmNlKCdJdGVtQWRtaW4nKTsKCSAgICAkSXRlbUFkbWluWydlbmN0eXBlJ10gPSAnbXVsdGlwYXJ0L2Zvcm0tZGF0YSc7Cgl9IGVsc2UgewoJICAgICRJdGVtQWRtaW5bJ2VuY3R5cGUnXSA9ICdtdWx0aXBhcnQvZm9ybS1kYXRhJzsKCSAgICAkdGVtcGxhdGUtPnNldFZhcmlhYmxlKCdJdGVtQWRtaW4nLCAkSXRlbUFkbWluKTsKCX0KCglyZXR1cm4gYXJyYXkobnVsbCwgJ21vZHVsZXMvcGljYXNhL3RlbXBsYXRlcy9JdGVtQWRkRnJvbVBpY2FzYS50cGwnLCAnbW9kdWxlc19waWNhc2EnKTsKICAgIH0KCiAgICAvKioKICAgICAqIEBzZWUgSXRlbUFkZFBsdWdpbjo6Z2V0VGl0bGUKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0VGl0bGUoKSB7CglsaXN0ICgkcmV0LCAkbW9kdWxlKSA9IEdhbGxlcnlDb3JlQXBpOjpsb2FkUGx1Z2luKCdtb2R1bGUnLCAncGljYXNhJyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCglyZXR1cm4gYXJyYXkobnVsbCwgJG1vZHVsZS0+dHJhbnNsYXRlKCdGcm9tIFBpY2FzYSAyJykpOwogICAgfQp9Cj8+Cg==');
expand_0c05013ac9($outputDir, 'MANIFEST', 'IyAkUmV2aXNpb246IDE2MDQxICQKIyBGaWxlIGNyYzMyIGNyYzMyKGNybGYpIHNpemUgc2l6ZShjcmxmKSAgb3IgIFIgRmlsZQptb2R1bGVzL3BpY2FzYS9Db25maXJtUGljYXNhSW1wb3J0LmluYwk0MTY2ODk5MTU0CTI4NzMzODAwOTkJMTExNDkJMTE1MTQKbW9kdWxlcy9waWNhc2EvSW1wb3J0UmVzdWx0cy5pbmMJMjAzMzkwOTMzNQkzNTY1NDU3OTMyCTE4OTkJMTk1Nwptb2R1bGVzL3BpY2FzYS9JdGVtQWRkRnJvbVBpY2FzYS5pbmMJNzg3MTM0NzMzCTM3MTg3NzU2NTAJMTM2OTMJMTQxMDQKbW9kdWxlcy9waWNhc2EvU2VsZWN0UGljYXNhRXhwb3J0UGF0aC5pbmMJMzY0NDY1OTU3MQkxNDg5NDU5MDI2CTQ4ODAJNTAzNAptb2R1bGVzL3BpY2FzYS9jbGFzc2VzL1BpY2FzYTJEYXRhUGFyc2VyLmNsYXNzCTIxNjUyMjMyNTQJNDEyNTMyMzc2MQk4MjQxCTg0ODUKbW9kdWxlcy9waWNhc2EvY2xhc3Nlcy9QaWNhc2FJbXBvcnRIZWxwZXIuY2xhc3MJMzMxODQ5MjQ0MQkzODQ0MTcyNTk1CTI1NTgJMjY0MQptb2R1bGVzL3BpY2FzYS9kb2NzL1JFQURNRS5UWFQJMTY3MjA0MjM4NQkzNjQ0MjExNTAxCTE5MTEJMTk2Mwptb2R1bGVzL3BpY2FzYS9tb2R1bGUuaW5jCTE1NTI5NjU1NDAJMjAxMDgyMjU1NwkyMDI1CTIwODgKbW9kdWxlcy9waWNhc2EvdGVtcGxhdGVzL0NvbmZpcm1QaWNhc2FJbXBvcnQudHBsCTEyMDA5MDYxODQJMTAxNDE2MDA1OQkyNDU2CTI1MjIKbW9kdWxlcy9waWNhc2EvdGVtcGxhdGVzL0ltcG9ydFJlc3VsdHMudHBsCTMyMDM5Mjg2ODAJNDc5OTIzMTQwCTMxODQJMzI3OQptb2R1bGVzL3BpY2FzYS90ZW1wbGF0ZXMvSXRlbUFkZEZyb21QaWNhc2EudHBsCTM3NzY3NDA3NzYJMzY4MjA1NTc1NgkzNDMxCTM1MTEKbW9kdWxlcy9waWNhc2EvdGVtcGxhdGVzL1NlbGVjdFBpY2FzYUV4cG9ydFBhdGgudHBsCTYxODczMzIyMQkxODA1MzM0NjEJMzY4MQkzNzc2Cg==');
expand_0c05013ac9($outputDir, 'SelectPicasaExportPath.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgpHYWxsZXJ5Q29yZUFwaTo6cmVxdWlyZU9uY2UoJ21vZHVsZXMvcGljYXNhL2NsYXNzZXMvUGljYXNhMkRhdGFQYXJzZXIuY2xhc3MnKTsKCi8qKgogKiBGaXJzdCBzdGVwIG9mIGltcG9ydCBwcm9jZXNzCiAqIEB2ZXJzaW9uICRSZXZpc2lvbjogMTU1MTMgJAogKiBAcGFja2FnZSBQaWNhc2EKICogQHN1YnBhY2thZ2UgVXNlckludGVyZmFjZQogKiBAYXV0aG9yIFdhbGRlbWFyIFNjaGxhY2tvdyA8Z2FsbGVyeUBzY2hsYWNrb3cuZGU+IGJhc2VkIG9uIHRoZSBtaWdyYXRlIG1vZHVsZSBieSBKZXNzZSBNdWxsYW4KICogQHZlcnNpb24gJFJldmlzaW9uOiAxNTUxMyAkCiAqLwpjbGFzcyBTZWxlY3RQaWNhc2FFeHBvcnRQYXRoQ29udHJvbGxlciBleHRlbmRzIEdhbGxlcnlDb250cm9sbGVyIHsKCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeUNvbnRyb2xsZXI6OmhhbmRsZVJlcXVlc3QKICAgICAqLwogICAgZnVuY3Rpb24gaGFuZGxlUmVxdWVzdCgkZm9ybSkgewoJZ2xvYmFsICRnYWxsZXJ5OwoKCS8qIFZlcmlmeSB0aGF0IGFjdGl2ZSB1c2VyIGlzIGFuIGFkbWluICovCgkkcmV0ID0gR2FsbGVyeUNvcmVBcGk6OmFzc2VydFVzZXJJc1NpdGVBZG1pbmlzdHJhdG9yKCk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCgkkZXJyb3IgPSAkc3RhdHVzID0gYXJyYXkoKTsKCglpZiAoaXNzZXQoJGZvcm1bJ2FjdGlvbiddWydzZWxlY3QnXSkpIHsKCSAgICBpZiAoZW1wdHkoJGZvcm1bJ3BpY2FzYVhtbFBhdGgnXSkpIHsKCQkkZXJyb3JbXSA9ICdmb3JtW2Vycm9yXVtwaWNhc2FYbWxQYXRoXVttaXNzaW5nXSc7CgkgICAgfSBlbHNlIHsKCQkkcGxhdGZvcm0gPSYgJGdhbGxlcnktPmdldFBsYXRmb3JtKCk7CgkJJHNsYXNoID0gJHBsYXRmb3JtLT5nZXREaXJlY3RvcnlTZXBhcmF0b3IoKTsKCQkkdG1wID0gdHJpbSgkZm9ybVsncGljYXNhWG1sUGF0aCddKTsKCQlpZiAoJHRtcFtzdHJsZW4oJHRtcCktMV0gIT0gJHNsYXNoKSB7CgkJICAgICR0bXAgLj0gJHNsYXNoOwoJCX0KCQlHYWxsZXJ5VXRpbGl0aWVzOjp1bnNhbml0aXplSW5wdXRWYWx1ZXMoJHRtcCwgZmFsc2UpOwoJCSRmb3JtWydwaWNhc2FYbWxQYXRoJ10gPSB0cmltKCR0bXApOwoJCWlmICghUGljYXNhMkRhdGFQYXJzZXI6OmlzVmFsaWRQaWNhc2FYbWxQYXRoKCRmb3JtWydwaWNhc2FYbWxQYXRoJ10pKSB7CgkJICAgICRlcnJvcltdID0gJ2Zvcm1bZXJyb3JdW3BpY2FzYVhtbFBhdGhdW2ludmFsaWRdJzsKCQl9CgkgICAgfQoJICAgIGlmIChlbXB0eSgkZXJyb3IpKSB7CgkJJHNlc3Npb24gPSYgJGdhbGxlcnktPmdldFNlc3Npb24oKTsKCQkkcmVjZW50UGF0aHMgPSAkc2Vzc2lvbi0+Z2V0KCdwaWNhc2Eudmlldy5TZWxlY3RQaWNhc2FFeHBvcnRQYXRoLnJlY2VudFBhdGhzJyk7CgkJaWYgKGVtcHR5KCRyZWNlbnRQYXRocykpIHsKCQkgICAgJHJlY2VudFBhdGhzID0gYXJyYXkoKTsKCQl9CgkJaWYgKGlzc2V0KCRyZWNlbnRQYXRoc1skZm9ybVsncGljYXNhWG1sUGF0aCddXSkpIHsKCQkgICAgJHJlY2VudFBhdGhzWyRmb3JtWydwaWNhc2FYbWxQYXRoJ11dKys7CgkJfSBlbHNlIHsKCQkgICAgJHJlY2VudFBhdGhzWyRmb3JtWydwaWNhc2FYbWxQYXRoJ11dID0gMTsKCQl9CgkJJHNlc3Npb24tPnB1dCgncGljYXNhLnZpZXcuU2VsZWN0UGljYXNhRXhwb3J0UGF0aC5yZWNlbnRQYXRocycsICRyZWNlbnRQYXRocyk7CgkJJHJlZGlyZWN0Wyd2aWV3J10gPSAnY29yZS5TaXRlQWRtaW4nOwoJCSRyZWRpcmVjdFsnc3ViVmlldyddID0gJ3BpY2FzYS5Db25maXJtUGljYXNhSW1wb3J0JzsKCQkkcmVkaXJlY3RbJ3BpY2FzYVhtbFBhdGgnXSA9ICRmb3JtWydwaWNhc2FYbWxQYXRoJ107CgkJJHJlZGlyZWN0WydkZXN0aW5hdGlvbkFsYnVtSWQnXSA9ICRmb3JtWydkZXN0aW5hdGlvbkFsYnVtSWQnXTsKCSAgICB9Cgl9CglpZiAoIWVtcHR5KCRyZWRpcmVjdCkpIHsKCSAgICAkcmVzdWx0c1sncmVkaXJlY3QnXSA9ICRyZWRpcmVjdDsKCX0gZWxzZSB7CgkgICAgJHJlc3VsdHNbJ2RlbGVnYXRlJ11bJ3ZpZXcnXSA9ICdjb3JlLlNpdGVBZG1pbic7CgkgICAgJHJlc3VsdHNbJ2RlbGVnYXRlJ11bJ3N1YlZpZXcnXSA9ICdwaWNhc2EuU2VsZWN0UGljYXNhRXhwb3J0UGF0aCc7Cgl9CgkkcmVzdWx0c1snc3RhdHVzJ10gPSAkc3RhdHVzOwoJJHJlc3VsdHNbJ2Vycm9yJ10gPSAkZXJyb3I7CgoJcmV0dXJuIGFycmF5KG51bGwsICRyZXN1bHRzKTsKICAgIH0KfQoKLyoqCiAqIEZpcnN0IHN0ZXAgb2YgaW1wb3J0IHByb2Nlc3MKICovCmNsYXNzIFNlbGVjdFBpY2FzYUV4cG9ydFBhdGhWaWV3IGV4dGVuZHMgR2FsbGVyeVZpZXcgewoKICAgIC8qKgogICAgICogQHNlZSBHYWxsZXJ5Vmlldzo6bG9hZFRlbXBsYXRlCiAgICAgKi8KICAgIGZ1bmN0aW9uIGxvYWRUZW1wbGF0ZSgmJHRlbXBsYXRlLCAmJGZvcm0pIHsKCWdsb2JhbCAkZ2FsbGVyeTsKCWlmICgkZm9ybVsnZm9ybU5hbWUnXSAhPSAnU2VsZWN0UGljYXNhRXhwb3J0UGF0aCcpIHsKCSAgICAkZm9ybVsnZm9ybU5hbWUnXSA9ICdTZWxlY3RQaWNhc2FFeHBvcnRQYXRoJzsKCSAgICAkZm9ybVsncGljYXNhWG1sUGF0aCddID0gJyc7CgkgICAgJGZvcm1bJ2Rlc3RpbmF0aW9uQWxidW1JZCddID0gJyc7Cgl9CgoJLyogTG9hZCBvdXIgcmVjZW50IHBhdGhzIGZyb20gdGhlIHNlc3Npb24gKi8KCSRzZXNzaW9uID0mICRnYWxsZXJ5LT5nZXRTZXNzaW9uKCk7CgkkcmVjZW50UGF0aHMgPSAkc2Vzc2lvbi0+Z2V0KCdwaWNhc2Eudmlldy5TZWxlY3RQaWNhc2FFeHBvcnRQYXRoLnJlY2VudFBhdGhzJyk7CgoJaWYgKGVtcHR5KCRyZWNlbnRQYXRocykpIHsKCSAgICAkcmVjZW50UGF0aHMgPSBhcnJheSgpOwoJfQoKCWxpc3QgKCRyZXQsICRvcGVyYXRpb25zKSA9IEdhbGxlcnlDb3JlQXBpOjpnZXRUb29sa2l0T3BlcmF0aW9ucygnaW1hZ2UvanBlZycpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJJGhhc1Rvb2xraXQgPSBmYWxzZTsKCWZvciAoJGkgPSAwOyAkaSA8IHNpemVvZigkb3BlcmF0aW9ucyk7ICRpKyspIHsKCSAgICBpZiAoJG9wZXJhdGlvbnNbJGldWyduYW1lJ10gPT0gJ3RodW1ibmFpbCcpIHsKCQkkaGFzVG9vbGtpdCA9IHRydWU7CgkJYnJlYWs7CgkgICAgfQoJfQoJLyogR2V0IGlkcyBvZiBhbGwgYWxsIGFsYnVtcyB3aGVyZSB3ZSBjYW4gYWRkIG5ldyBhbGJ1bSBpdGVtcyAqLwoJbGlzdCAoJHJldCwgJGFsYnVtSWRzKSA9CgkgICAgR2FsbGVyeUNvcmVBcGk6OmZldGNoQWxsSXRlbUlkcygnR2FsbGVyeUFsYnVtSXRlbScsICdjb3JlLmFkZEFsYnVtSXRlbScpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJLyogTG9hZCBhbGwgdGhlIGFsYnVtIGVudGl0aWVzICovCglsaXN0ICgkcmV0LCAkYWxidW1zKSA9IEdhbGxlcnlDb3JlQXBpOjpsb2FkRW50aXRpZXNCeUlkKCRhbGJ1bUlkcyk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCSRhbGJ1bVRyZWUgPSBHYWxsZXJ5VXRpbGl0aWVzOjpjcmVhdGVBbGJ1bVRyZWUoJGFsYnVtcyk7CgoJJFNlbGVjdFBpY2FzYUV4cG9ydFBhdGggPSBhcnJheSgpOwoJJFNlbGVjdFBpY2FzYUV4cG9ydFBhdGhbJ3JlY2VudFBhdGhzJ10gPSAkcmVjZW50UGF0aHM7CgkkU2VsZWN0UGljYXNhRXhwb3J0UGF0aFsnaGFzVG9vbGtpdCddID0gJGhhc1Rvb2xraXQ7CgkkU2VsZWN0UGljYXNhRXhwb3J0UGF0aFsnZzJBbGJ1bVRyZWUnXSA9ICRhbGJ1bVRyZWU7CgoJJHRlbXBsYXRlLT5zZXRWYXJpYWJsZSgnY29udHJvbGxlcicsICdwaWNhc2EuU2VsZWN0UGljYXNhRXhwb3J0UGF0aCcpOwoJJHRlbXBsYXRlLT5zZXRWYXJpYWJsZSgnU2VsZWN0UGljYXNhRXhwb3J0UGF0aCcsICRTZWxlY3RQaWNhc2FFeHBvcnRQYXRoKTsKCXJldHVybiBhcnJheShudWxsLCBhcnJheSgnYm9keScgPT4gJ21vZHVsZXMvcGljYXNhL3RlbXBsYXRlcy9TZWxlY3RQaWNhc2FFeHBvcnRQYXRoLnRwbCcpKTsKICAgIH0KfQo/Pgo=');
expand_0c05013ac9($outputDir, 'classes/Picasa2DataParser.class', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogVGhpcyBjbGFzcyBwcm92aWRlcyBhbiBBUEkgZm9yIHBhcnNpbmcgUGljYXNhIDIgZGF0YSBmaWxlcwogKiBAcGFja2FnZSBQaWNhc2EKICogQHN1YnBhY2thZ2UgUGljYXNhMkRhdGFQYXJzZXIKICogQGF1dGhvciBXYWxkZW1hciBTY2hsYWNrb3cgPGdhbGxlcnlAc2NobGFja293LmRlPgogKiBAdmVyc2lvbiAkUmV2aXNpb246IDE1NTEzICQKICogQHN0YXRpYwogKi8KY2xhc3MgUGljYXNhMkRhdGFQYXJzZXIgewoKICAgIC8qKgogICAgICogQ2hlY2sgd2hldGhlciB0aGUgZ2l2ZW4gZGlyZWN0b3J5IGNvbnRhaW5zIGFuIGluZGV4LnhtbCBmaWxlCiAgICAgKiAodG8gYmUgZXh0ZW5kZWQgbGF0ZXIpCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkcGF0aCB0aGUgcGljYXNhIGV4cG9ydCBwYXRoCiAgICAgKiBAcmV0dXJuIGJvb2xlYW4gdHJ1ZSBpZiB0aGUgcGljYXNhIHBhdGggaXMgdmFsaWQsIGZhbHNlIG90aGVyd2lzZQogICAgICovCiAgICBmdW5jdGlvbiBpc1ZhbGlkUGljYXNhWG1sUGF0aCgkcGF0aCkgewoJZ2xvYmFsICRnYWxsZXJ5OwoJJHBsYXRmb3JtID0mICRnYWxsZXJ5LT5nZXRQbGF0Zm9ybSgpOwoJaWYgKCgkcGxhdGZvcm0tPmZpbGVfZXhpc3RzKCRwYXRoIC4gJ2luZGV4LnhtbCcpKQoJCSYmICgkcGxhdGZvcm0tPmlzX3JlYWRhYmxlKCRwYXRoIC4gJ2luZGV4LnhtbCcpKSkgewoJICAgIHJldHVybiB0cnVlOwoJfQoJcmV0dXJuIGZhbHNlOwogICAgfQoKICAgIC8qKgogICAgICogR2V0IHRoZSByYXcgWE1MIGRhdGEgZnJvbSBhIGdpdmVuIFBpY2FzYSBleHBvcnQgUGF0aC4KICAgICAqCiAgICAgKiBAcGFyYW0gc3RyaW5nICRwaWNhc2FYbWxQYXRoIHRoZSBwaWNhc2EgZXhwb3J0IHBhdGgKICAgICAqIEByZXR1cm4gYXJyYXkgYSBzdGF0dXMgY29kZSBhbmQgYW4gYWxidW0vaW1hZ2UgYXJyYXkKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0UmF3WG1sRnJvbVBpY2FzYVBhdGgoJHBpY2FzYVhtbFBhdGgpIHsKCWdsb2JhbCAkZ2FsbGVyeTsKCgkkcGljYXNhWG1sRmlsZSA9ICRwaWNhc2FYbWxQYXRoIC4gJ2luZGV4LnhtbCc7CgkvKiBjaGVjayBmb3IgZmlsZSAqLwoJJHBsYXRmb3JtID0mICRnYWxsZXJ5LT5nZXRQbGF0Zm9ybSgpOwoJaWYgKCEkcGxhdGZvcm0tPmZpbGVfZXhpc3RzKCRwaWNhc2FYbWxGaWxlKSB8fCAhJHBsYXRmb3JtLT5pc19yZWFkYWJsZSgkcGljYXNhWG1sRmlsZSkpIHsKCSAgICByZXR1cm4gYXJyYXkoR2FsbGVyeUNvcmVBcGk6OmVycm9yKEVSUk9SX0JBRF9QQVJBTUVURVIsIF9fRklMRV9fLCBfX0xJTkVfXywKCQkJICdNaXNzaW5nIG9yIG5vdCByZWFkYWJsZSBmaWxlOiAnIC4gJHBpY2FzYVhtbEZpbGUpLCBudWxsKTsKCX0KCSRyYXdYbWwgPSBpbXBsb2RlKCcnLCAkcGxhdGZvcm0tPmZpbGUoJHBpY2FzYVhtbEZpbGUpKTsKCWlmICghaXNfc3RyaW5nKCRyYXdYbWwpKSB7CgkgICAgcmV0dXJuIGFycmF5KEdhbGxlcnlDb3JlQXBpOjplcnJvcihFUlJPUl9CQURfUEFSQU1FVEVSLCBfX0ZJTEVfXywgX19MSU5FX18sCgkJCSAnRXJyb3IgcmVhZGluZyBYTUwgRmlsZTogJyAuICRwaWNhc2FYbWxGaWxlKSwgbnVsbCk7Cgl9CgoJcmV0dXJuIGFycmF5KG51bGwsICRyYXdYbWwpOwogICAgfQoKICAgIC8qKgogICAgICogIGdldFhtbEFycmF5IC0gYW4gYWJzdHJhY3Rpb24gbGF5ZXIgb24geG1sX3BhcnNlX2ludG9fc3RydWN0IHRoYXQgcmV0dXJucyBhCiAgICAgKiAgbmljZSBuZXN0ZWQgYXJyYXkuIGJhc2VkIG9uIGR1ZHVzIGF0IG9uZXQgZG90IHBsJ3M6CiAgICAgKiAgaHR0cDovL3d3dy5waHAubmV0L21hbnVhbC9lbi9mdW5jdGlvbi54bWwtcGFyc2UtaW50by1zdHJ1Y3QucGhwIzQ5MTU0CiAgICAgKgogICAgICogIEBwYXJhbSBzdHJpbmcgJHJhd1htbCAtIHhtbCB3aGljaCB3aWxsIGJlIGZlZCBpbnRvIHhtbF9wYXJzZV9pbnRvX3N0cnVjdCgpCiAgICAgKiAgQHJldHVybiBhcnJheSBvYmplY3QgR2FsbGVyeVN0YXR1cyBhIHN0YXR1cyBjb2RlCiAgICAgKiAgICAgICAgICAgICAgICBhcnJheSBhIG5lc3RlZCBwaHAgYXJyYXkgY29udGFpbmluZyB4bWwgZGF0YS4KICAgICAqLwogICAgZnVuY3Rpb24gZ2V0WG1sQXJyYXkoJHJhd1htbCkgewoJaWYgKCFmdW5jdGlvbl9leGlzdHMoJ3htbF9wYXJzZXJfY3JlYXRlJykpIHsKCSAgICByZXR1cm4gYXJyYXkoR2FsbGVyeUNvcmVBcGk6OmVycm9yKEVSUk9SX0NPTkZJR1VSQVRJT05fUkVRVUlSRUQsIF9fRklMRV9fLCBfX0xJTkVfXywKCQkJCQkgICAgICAgJ05lZWQgeG1sIHN1cHBvcnQgaW4gUEhQJyksIG51bGwpOwoJfQoKCS8qIFdvcmthcm91bmQgZWFybGllciBQaWNhc2EgdmVyc2lvbnMgKi8KCWlmIChzdWJzdHIodHJpbSgkcmF3WG1sKSwwLDUpICE9ICc8P3htbCcpIHsKCSAgICAkcmF3WG1sID0gJzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9Imlzby04ODU5LTEiPz4nIC4gJHJhd1htbDsKCX0KCSR4bWxQYXJzZXIgPSB4bWxfcGFyc2VyX2NyZWF0ZSgpOwoJeG1sX3BhcnNlcl9zZXRfb3B0aW9uKCR4bWxQYXJzZXIsIFhNTF9PUFRJT05fQ0FTRV9GT0xESU5HLCAwKTsKCXhtbF9wYXJzZXJfc2V0X29wdGlvbigkeG1sUGFyc2VyLCBYTUxfT1BUSU9OX1NLSVBfV0hJVEUsIDEpOwoJJHZhbHMgPSBhcnJheSgpOwoJeG1sX3BhcnNlX2ludG9fc3RydWN0KCR4bWxQYXJzZXIsICRyYXdYbWwsICR2YWxzKTsKCXhtbF9wYXJzZXJfZnJlZSgkeG1sUGFyc2VyKTsKCSRfdG1wID0gJyc7Cglmb3JlYWNoICgkdmFscyBhcyAkeG1sRWxlbSkgewoJICAgICR4VGFnID0gJHhtbEVsZW1bJ3RhZyddOwoJICAgICR4TGV2ZWwgPSAkeG1sRWxlbVsnbGV2ZWwnXTsKCSAgICAkeFR5cGUgPSAkeG1sRWxlbVsndHlwZSddOwoJICAgIGlmICgoJHhMZXZlbCAhPSAxKSAmJiAoJHhUeXBlID09ICdjbG9zZScpKSB7CgkJaWYgKGlzc2V0KCRtdWx0aUtleVskeFRhZ11bJHhMZXZlbF0pKSB7CgkJICAgICRtdWx0aUtleVskeFRhZ11bJHhMZXZlbF0gPSAxOwoJCX0gZWxzZSB7CgkJICAgICRtdWx0aUtleVskeFRhZ11bJHhMZXZlbF0gPSAwOwoJCX0KCSAgICB9CgkgICAgaWYgKCgkeExldmVsICE9IDEpICYmICgkeFR5cGUgPT0gJ2NvbXBsZXRlJykpIHsKCQlpZiAoJF90bXAgPT0gJHhUYWcpIHsKCQkgICAgJG11bHRpS2V5WyR4VGFnXVskeExldmVsXSA9IDE7CgkJfQoJCSRfdG1wID0gJHhUYWc7CgkgICAgfQoJfQoKCWZvcmVhY2ggKCR2YWxzIGFzICR4bWxFbGVtKSB7CgkgICAgJHhUYWcgPSAkeG1sRWxlbVsndGFnJ107CgkgICAgJHhMZXZlbCA9ICR4bWxFbGVtWydsZXZlbCddOwoJICAgICR4VHlwZSA9ICR4bWxFbGVtWyd0eXBlJ107CgkgICAgaWYgKCR4VHlwZSA9PSAnb3BlbicpIHsKCQkkbGV2ZWxbJHhMZXZlbF0gPSAkeFRhZzsKCSAgICB9CgkgICAgJHN0YXJ0TGV2ZWwgPSAxOwoJICAgICRwaHBTdG10ID0gJyR4bWxBcnJheSc7CgkgICAgaWYgKCR4VHlwZSA9PSAnY2xvc2UnICYmICR4TGV2ZWwgIT0gMSkgewoJCSRtdWx0aUtleVskeFRhZ11bJHhMZXZlbF0rKzsKCSAgICB9CgkgICAgd2hpbGUgKCRzdGFydExldmVsIDwgJHhMZXZlbCkgewoJCSRwaHBTdG10IC49ICdbJGxldmVsWycgLiAkc3RhcnRMZXZlbCAuICddXSc7CgkJaWYgKChpc3NldCgkbXVsdGlLZXlbJGxldmVsWyRzdGFydExldmVsXV1bJHN0YXJ0TGV2ZWxdKSkgJiYKCQkJKCRtdWx0aUtleVskbGV2ZWxbJHN0YXJ0TGV2ZWxdXVskc3RhcnRMZXZlbF0pKSB7CgkJICAgICRwaHBTdG10IC49ICdbJyAuICgkbXVsdGlLZXlbJGxldmVsWyRzdGFydExldmVsXV1bJHN0YXJ0TGV2ZWxdLTEpIC4gJ10nOwoJCX0KCQkkc3RhcnRMZXZlbCsrOwoJICAgIH0KCSAgICAkYWRkID0gJyc7CgkgICAgaWYgKChpc3NldCgkbXVsdGlLZXlbJHhUYWddWyR4TGV2ZWxdKSkgJiYgKCRtdWx0aUtleVskeFRhZ11bJHhMZXZlbF0pICYmCgkJICAgICgoJHhUeXBlID09ICdvcGVuJykgfHwgKCR4VHlwZSA9PSAnY29tcGxldGUnKSkpIHsKCQlpZiAoIWlzc2V0KCRtdWx0aUtleTJbJHhUYWddWyR4TGV2ZWxdKSkgewoJCSAgICAkbXVsdGlLZXkyWyR4VGFnXVskeExldmVsXSA9IDA7CgkJfSBlbHNlIHsKCQkgICAgJG11bHRpS2V5MlskeFRhZ11bJHhMZXZlbF0rKzsKCQl9CgkJJGFkZCA9ICdbJyAuICRtdWx0aUtleTJbJHhUYWddWyR4TGV2ZWxdIC4gJ10nOwoJICAgIH0KCSAgICBpZiAoKGlzc2V0KCR4bWxFbGVtWyd2YWx1ZSddKSkgJiYgKHRyaW0oJHhtbEVsZW1bJ3ZhbHVlJ10pICE9ICcnKSAmJgoJCSAgICAoIWFycmF5X2tleV9leGlzdHMoJ2F0dHJpYnV0ZXMnLCAkeG1sRWxlbSkpKSB7CgkJaWYgKCR4VHlwZSA9PSAnb3BlbicpIHsKCQkgICAgJHBocFN0bXRNYWluID0gJHBocFN0bXQgLiAnWyR4VHlwZV0nIC4gJGFkZCAuCgkJCSdbXCdjb250ZW50XCddID0gJHhtbEVsZW1bXCd2YWx1ZVwnXTsnOwoJCX0gZWxzZSB7CgkJICAgICRwaHBTdG10TWFpbiA9ICRwaHBTdG10IC4gJ1skeFRhZ10nIC4gJGFkZCAuICcgPSB0cmltKCR4bWxFbGVtW1wndmFsdWVcJ10pOyc7CgkJfQoJCWV2YWwoJHBocFN0bXRNYWluKTsKCSAgICB9CgkgICAgaWYgKGFycmF5X2tleV9leGlzdHMoJ2F0dHJpYnV0ZXMnLCAkeG1sRWxlbSkpIHsKCQlpZiAoaXNzZXQoJHhtbEVsZW1bJ3ZhbHVlJ10pKSB7CgkJICAgICRwaHBTdG10TWFpbiA9ICRwaHBTdG10IC4gJ1skeFRhZ10nIC4gJGFkZCAuCgkJCSdbXCdjb250ZW50XCddID0gJHhtbEVsZW1bXCd2YWx1ZVwnXTsnOwoJCSAgICBldmFsKCRwaHBTdG10TWFpbik7CgkJfQoJCWZvcmVhY2ggKCR4bWxFbGVtWydhdHRyaWJ1dGVzJ10gYXMgJGtleSA9PiAkdmFsdWUpIHsKCQkgICAgJHBocFN0bXRBdHQgPSAkcGhwU3RtdCAuICdbJHhUYWddJyAuICRhZGQgLgoJCQknW1wnYXR0cmlidXRlc1wnXVska2V5XSA9ICR2YWx1ZTsnOwoJCSAgICBldmFsKCRwaHBTdG10QXR0KTsKCQl9CgkgICAgfQoJfQoJaWYgKCFpc3NldCgkeG1sQXJyYXkpKSB7CgkgICAgcmV0dXJuIGFycmF5KEdhbGxlcnlDb3JlQXBpOjplcnJvcihFUlJPUl9CQURfUEFSQU1FVEVSLCBfX0ZJTEVfXywgX19MSU5FX18sCgkJCSAnRXJyb3IgcGFyc2luZyBYTUwuJyksIG51bGwpOwoJfQoJcmV0dXJuIGFycmF5KG51bGwsICR4bWxBcnJheSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG5lc3RlZCBhbGJ1bSBhbmQgcGljdHVyZSBhcnJheSBmcm9tIHRoZSBQaWNhc2EgZXhwb3J0IHBhdGguCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkcGljYXNhWG1sQXJyYXkgdGhlIHBpY2FzYSBleHBvcnQgcGF0aAogICAgICogQHJldHVybiBhcnJheSBhIHN0YXR1cyBjb2RlIGFuZCBhbiBhbGJ1bS9pbWFnZSBhcnJheQogICAgICovCiAgICBmdW5jdGlvbiBnZXRBbGJ1bUZyb21BcnJheSgkcGljYXNhWG1sQXJyYXkpIHsKCgkkaW1hZ2VBcnJheSA9ICRwaWNhc2FYbWxBcnJheTsKCglpZiAoaXNzZXQoJGltYWdlQXJyYXlbJ2FsYnVtJ11bJ2FsYnVtTmFtZSddKSkgewoJICAgICRhbGJ1bUFycmF5WydhbGJ1bU5hbWUnXSA9IHRyaW0oJGltYWdlQXJyYXlbJ2FsYnVtJ11bJ2FsYnVtTmFtZSddKTsKCX0gZWxzZSB7CgkgICAgIHJldHVybiBhcnJheShHYWxsZXJ5Q29yZUFwaTo6ZXJyb3IoRVJST1JfQkFEX1BBUkFNRVRFUiwgX19GSUxFX18sIF9fTElORV9fLAoJCQkgICdObyBhbGJ1bU5hbWUgaW4gUGljYXNhIGV4cG9ydC4nKSwgbnVsbCk7Cgl9CgoJaWYgKGlzc2V0KCRpbWFnZUFycmF5WydhbGJ1bSddWydhbGJ1bUNhcHRpb24nXSkpIHsKCSAgICAkYWxidW1BcnJheVsnYWxidW1DYXB0aW9uJ10gPSB0cmltKCRpbWFnZUFycmF5WydhbGJ1bSddWydhbGJ1bUNhcHRpb24nXSk7Cgl9IGVsc2UgewoJICAgICRhbGJ1bUFycmF5WydhbGJ1bUNhcHRpb24nXSA9ICcnOwoJfQoKCSRpbWFnZUFycmF5ID0gJGltYWdlQXJyYXlbJ2FsYnVtJ11bJ2ltYWdlcyddWydpbWFnZSddOwoJLyogUHJvYmxlbSBpZiB0aGVyZSBpcyBubyBhcnJheSAqLwoJaWYgKCFpc3NldCgkaW1hZ2VBcnJheVswXSkpIHsKCSAgICAkdGVtcEFycmF5ID0gYXJyYXkoKTsKCSAgICAkdGVtcEFycmF5WzBdID0gJGltYWdlQXJyYXk7CgkgICAgJGltYWdlQXJyYXkgPSAkdGVtcEFycmF5OwoJfQoJZm9yICgkaSA9IDA7ICRpIDwgY291bnQoJGltYWdlQXJyYXkpOyAkaSsrKSB7CgkgICAgJGFsYnVtQXJyYXlbJ2ltYWdlcyddWyRpXVsncGF0aCddID0gJGltYWdlQXJyYXlbJGldWydpdGVtTGFyZ2VJbWFnZSddOwoJICAgICRhbGJ1bUFycmF5WydpbWFnZXMnXVskaV1bJ25hbWUnXSA9ICRpbWFnZUFycmF5WyRpXVsnaXRlbU5hbWUnXTsKCSAgICAkYWxidW1BcnJheVsnaW1hZ2VzJ11bJGldWydjYXB0aW9uJ10gPSAkaW1hZ2VBcnJheVskaV1bJ2l0ZW1DYXB0aW9uJ107CgkgICAgJGFsYnVtQXJyYXlbJ2ltYWdlcyddWyRpXVsnd2lkdGgnXSA9ICRpbWFnZUFycmF5WyRpXVsnaXRlbVdpZHRoJ107CgkgICAgJGFsYnVtQXJyYXlbJ2ltYWdlcyddWyRpXVsnaGVpZ2h0J10gPSAkaW1hZ2VBcnJheVskaV1bJ2l0ZW1IZWlnaHQnXTsKCSAgICAkYWxidW1BcnJheVsnaW1hZ2VzJ11bJGldWyd0aHVtYndpZHRoJ10gPSAkaW1hZ2VBcnJheVskaV1bJ2l0ZW1UaHVtYm5haWxXaWR0aCddOwoJICAgICRhbGJ1bUFycmF5WydpbWFnZXMnXVskaV1bJ3RodW1iaGVpZ2h0J10gPSAkaW1hZ2VBcnJheVskaV1bJ2l0ZW1UaHVtYm5haWxIZWlnaHQnXTsKCX0KCXJldHVybiBhcnJheShudWxsLCAkYWxidW1BcnJheSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBHZXQgdGhlIG5lc3RlZCBhbGJ1bSBhbmQgcGljdHVyZSBhcnJheSBmcm9tIHRoZSBQaWNhc2EgZXhwb3J0IHBhdGguCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkcGljYXNhWG1sUGF0aCB0aGUgcGljYXNhIGV4cG9ydCBwYXRoCiAgICAgKiBAcmV0dXJuIGFycmF5IGEgc3RhdHVzIGNvZGUgYW5kIGFuIGFsYnVtL2ltYWdlIGFycmF5CiAgICAgKi8KICAgIGZ1bmN0aW9uIGdldEFsYnVtKCRwaWNhc2FYbWxQYXRoKSB7CglsaXN0ICgkcmV0LCAkcmF3WG1sKSA9IFBpY2FzYTJEYXRhUGFyc2VyOjpnZXRSYXdYbWxGcm9tUGljYXNhUGF0aCgkcGljYXNhWG1sUGF0aCk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCglsaXN0ICgkcmV0LCAkcGljYXNhWG1sQXJyYXkpID0gUGljYXNhMkRhdGFQYXJzZXI6OmdldFhtbEFycmF5KCRyYXdYbWwpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gYXJyYXkoJHJldCwgbnVsbCk7Cgl9CgoJbGlzdCAoJHJldCwgJGFsYnVtQXJyYXkpID0gUGljYXNhMkRhdGFQYXJzZXI6OmdldEFsYnVtRnJvbUFycmF5KCRwaWNhc2FYbWxBcnJheSk7CglpZiAoJHJldCkgewoJICAgIHJldHVybiBhcnJheSgkcmV0LCBudWxsKTsKCX0KCXJldHVybiBhcnJheShudWxsLCAkYWxidW1BcnJheSk7CiAgICB9Cn0KPz4K');
expand_0c05013ac9($outputDir, 'classes/PicasaImportHelper.class', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogVGhpcyBjbGFzcyBwcm92aWRlcyBzb21lIGZ1bmN0aW9ucyB1c2VkIGJ5IHRoZSBQaWNhc2EgbW9kdWxlCiAqIEBwYWNrYWdlIFBpY2FzYQogKiBAc3VicGFja2FnZSBQaWNhc2FJbXBvcnRIZWxwZXIKICogQGF1dGhvciBXYWxkZW1hciBTY2hsYWNrb3cgPGdhbGxlcnlAc2NobGFja293LmRlPgogKiBAdmVyc2lvbiAkUmV2aXNpb246IDE1NTEzICQKICogQHN0YXRpYwogKi8KY2xhc3MgUGljYXNhSW1wb3J0SGVscGVyIHsKICAgIC8qKgogICAgICogQ29udmVydCBodG1sIGFjY29yZGluZyB0byBnaXZlbiBtYXJrdXAgdHlwZQogICAgICogQHBhcmFtIHN0cmluZyAkbWFya3VwVHlwZSBtYXJrdXAgdHlwZSAobm9uZSwgYmJjb2RlLCBodG1sKQogICAgICogQHBhcmFtIHN0cmluZyAkaXRlbSBpbnB1dCBzdHJpbmcKICAgICAqIEBwYXJhbSBzdHJpbmcgJHNvdXJjZUVuY29kaW5nIChvcHRpb25hbDsgZGVmYXVsdD0nVVRGLTgnKQogICAgICogQHJldHVybiBzdHJpbmcKICAgICAqLwogICAgZnVuY3Rpb24gY29udmVydEh0bWwoJG1hcmt1cFR5cGUsICRpdGVtLCAkc291cmNlRW5jb2Rpbmc9J1VURi04JykgewoJJGl0ZW0gPSBHYWxsZXJ5Q29yZUFwaTo6Y29udmVydFRvVXRmOCgkaXRlbSwgJHNvdXJjZUVuY29kaW5nKTsKCXN3aXRjaCAoJG1hcmt1cFR5cGUpIHsKCSAgICBjYXNlICdiYmNvZGUnOgoJCSRpdGVtID0gUGljYXNhSW1wb3J0SGVscGVyOjpjb252ZXJ0SHRtbFRvQmJjb2RlKCRpdGVtKTsKCQlicmVhazsKCgkgICAgY2FzZSAnaHRtbCc6CgkJYnJlYWs7CgoJICAgIGNhc2UgJ25vbmUnOgoJICAgIGRlZmF1bHQ6CgkJJGl0ZW0gPSBzdHJpcF90YWdzKCRpdGVtKTsKCX0KCUdhbGxlcnlVdGlsaXRpZXM6OnNhbml0aXplSW5wdXRWYWx1ZXMoJGl0ZW0sIGZhbHNlKTsKCXJldHVybiAkaXRlbTsKICAgIH0KCiAgICAvKioKICAgICAqIENvbnZlcnRzIEhUTUwgdG8gQkJDb2RlCiAgICAgKgogICAgICogQHBhcmFtIHN0cmluZyAkaXRlbSBpdGVtIHRvIGNvbnZlcnQKICAgICAqIEByZXR1cm4gc3RyaW5nCiAgICAgKi8KICAgIGZ1bmN0aW9uIGNvbnZlcnRIdG1sVG9CYmNvZGUoJGl0ZW0pIHsKCXN0YXRpYyAkcGF0dGVybnMsICRtYXRjaCwgJHJlcGxhY2U7CglpZiAoIWlzc2V0KCRwYXR0ZXJucykpIHsKCSAgICAkcGF0dGVybnMgPSBhcnJheSgKCQknIzxiclxzKigvPyk+I2knID0+ICdcbicsCgkJJyM8KC8/KShifHN0cm9uZyk+I2knID0+ICdbJDFiXScsCgkJJyM8KC8/KShpfGVtKT4jaScgPT4gJ1skMWldJywKCQknIzwoLz8pdWw+I2knID0+ICdbJDFsaXN0XScsCgkJJyM8bGk+I2knID0+ICdbKl0nLAoJCScjPC9saT4jaScgPT4gJycsCgkJJyM8aW1nW14+XSpccytzcmNccyo9XHMqWyJcJ117MCwxfShbXlxzIlwnPl0rKVsiXCddezAsMX1bXj5dKj4jaXMnID0+CgkJICAgICdbaW1nXSQxWy9pbWddJywKCQknIzxhW14+XSpccytocmVmXHMqPVxzKlsiXCddezAsMX0oW15ccyJcJz5dKylbIlwnXXswLDF9W14+XSo+XHMqKC4qPylccyo8L2E+I2lzJyA9PgoJCSAgICAnW3VybD0kMV0kMlsvdXJsXScsCgkgICAgKTsKCSAgICAkbWF0Y2ggPSBhcnJheV9rZXlzKCRwYXR0ZXJucyk7CgkgICAgJHJlcGxhY2UgPSBhcnJheV92YWx1ZXMoJHBhdHRlcm5zKTsKCX0KCSRpdGVtID0gcHJlZ19yZXBsYWNlKCRtYXRjaCwgJHJlcGxhY2UsICRpdGVtKTsKCXJldHVybiBzdHJpcF90YWdzKCRpdGVtKTsKICAgIH0KfQo/Pgo=');
expand_0c05013ac9($outputDir, 'docs/README.TXT', 'CQkJRG9jdW1lbnRhdGlvbiBmb3IgdGhlIFBpY2FzYSBNb2R1bGUgZm9yIEdhbGxlcnkyCgkJCQowLiBBQk9VVAoKVGhpcyBtb2R1bGUgbGV0cyB5b3UgaW1wb3J0IGFsYnVtcyBmcm9tIFBpY2FzYSBpbnRvIEdhbGxlcnkyLgpJdCB3aWxsIGtlZXAgdGhlIG9yZGVyLCB0aGUgY2FwdGlvbnMgYW5kIHRoZSBuYW1lcy4KCQkJCQkJCQkKQWN0dWFsbHkgdGhlIG1vZHVsZSBpcyBwcmV0dHkgc2VsZi1leHBsYW5hdG9yeSwgYnV0IEkgd2lsbCBqdXN0IApzYXkgYSBmZXcgd29yZHMgb24gaG93IHRvIHVzZSBpdC4KCjEuIElOU1RBTExBVElPTgoKQ29weSB0aGUgcGljYXNhIGZvbGRlciBpbnRvIHlvdXIgL21vZHVsZXMgZGlyZWN0b3J5IG9mIApHYWxsZXJ5MiBhbmQgbG9nIGluIGFzIGFkbWluaXN0cmF0b3IgdG8gaW5zdGFsbCBhbmQgYWN0aXZhdGUgCml0LiAKCjIuIEVYUE9SVElORyBGUk9NIFBJQ0FTQQoKVG8gZXhwb3J0IGZyb20gUGljYXNhIHlvdSBjYW4gcmlnaHRjbGljayBhbiBhbGJ1bSBhbmQgY2xpY2sKb24gIk1ha2UgYSBXZWJwYWdlIiAob3IgeW91IGNob29zZSAiRm9sZGVyL0V4cG9ydCBhcyBXZWJwYWdlLi4uIiAKZnJvbSB0aGUgbWVudSksIGZyb20gdGhlcmUgeW91IHNlbGVjdCB0aGUgc2l6ZXMsIGFuZCB0aGUgZXhwb3J0IApmb2xkZXIgbG9jYXRpb24uIEluIHRoZSBuZXh0IHdpbmRvdyB5b3UgbmVlZCB0byBjaG9vc2UgIlhNTCBDb2RlIiwKYW5kIG9mZiBpdCBnb2VzLiBUaGVuIHlvdSBuYXZpZ2F0ZSB0byB0aGUgZm9sZGVyIHlvdSBqdXN0IGNob3NlCmFuZCBiZWFtIHRoYXQgdXAgb24geW91ciBHYWxsZXJ5IFNlcnZlci4KCjMuMSBJTVBPUlRJTkcgSU5UTyBHQUxMRVJZMiAoRlJPTSBBREQgSVRFTSkKClRoZSBuZXcgZmVhdHVyZSB0byB0aGlzIG1vZHVsZSBpcyB0aGF0IGFueSB1c2VyIGNhbiBpbXBvcnQgZmlsZXMKZnJvbSBQaWNhc2EgYnkgc2ltcGx5IGNsaWNraW5nIG9uICJBZGQgSXRlbSIuIEEgUGljYXNhIDItVGFiIHdpbGwKYXBwZWFyIHdoZXJlIGEgbG9jYWwgWklQIGZpbGUgY2FuIGJlIHNlbGVjdGVkLiBUaGF0IFpJUCBmaWxlIGhhcwp0byBjb250YWluIGEgcGljYXNhIGV4cG9ydCAoaW5kZXgueG1sIGJlaW5nIGluIHRoZSByb290IG9mIHRoZSBhcmNoaXZlKS4KVGhlIHVzZXIgYWxzbyBjYW4gc2VsZWN0IGhvdyBwaWN0dXJlIHRpdGxlcywgc3VtbWFyaWVzIGFuZCBkZXNjcmlwdGlvbnMKYXJlIGFzc2lnbmVkLgoKMy4yIElNUE9SVElORyBJTlRPIEdBTExFUlkyIChGUk9NIFNJVEUgQURNSU4pCgpPbmNlIHlvdSBoYXZlIGFjdGl2YXRlZCB0aGUgbW9kdWxlIHlvdSBnZXQgYSBuZXcgZW50cnkgIlBpY2FzYSAyIgppbiB0aGUgSW1wb3J0IHNlY3Rpb24gb2YgeW91ciBBZG1pbmlzdHJhdGlvbiBtZW51LiBJZiB5b3UgY2xpY2sgb24gCnRoYXQgaXQgd2lsbCBsZXQgeW91IHNlbGVjdCB0aGUgbG9jYWwgcGF0aCB0byB0aGUgUGljYXNhIGV4cG9ydCAKZGlyZWN0b3J5IHdoaWNoIHNob3VsZCBiZSBzdG9yZWQgbG9jYWxseSAodGhlcmUgd2lsbCBiZSB1cGxvYWQgCnN1cHBvcnQgaW4gdGhlIGZ1dHVyZSkuIFlvdSBhbHNvIHNlbGVjdCB0aGUgYWxidW0geW91IHdhbnQgdG8gaW1wb3J0CnlvdXIgYWxidW0gaW50by4KClRoZXJlYWZ0ZXIgaXQgc2hvdWxkIGRvIGV2ZXJ5dGhpbmcgYnkgaXRzZWxmIGFuZCByZXBvcnQgYmFjayB0byB5b3UuCgo0LiBUUk9VQkxFU0hPT1RJTkcKCklmIHlvdSBoYXZlIGFueSBxdWVyaWVzLCB0aGVyZSBpcyBhIGdyZWF0IHN1cHBvcnQgZm9ydW0gYXQKaHR0cDovL2dhbGxlcnkubWVuYWx0by5jb20gd2hlcmUgd2UgbWlnaHQgYmUgYWJsZSB0byBoZWxwLgoKSWYgeW91IHNwb3QgYW55IGJ1Z3Mgb3IgaGF2ZSBmZWF0dXJlIHJlcXVlc3RzIHBsZWFzZSBtYWlsIHRvIApnYWxsZXJ5QG9wZW5jb2Rlcy5vcmcK');
expand_0c05013ac9($outputDir, 'module.inc', 'PD9waHAKLyoKICogR2FsbGVyeSAtIGEgd2ViIGJhc2VkIHBob3RvIGFsYnVtIHZpZXdlciBhbmQgZWRpdG9yCiAqIENvcHlyaWdodCAoQykgMjAwMC0yMDA3IEJoYXJhdCBNZWRpcmF0dGEKICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0CiAqIHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAogKiBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KICoKICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0gRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KICovCgovKioKICogSW1wb3J0IGZvciBQaWNhc2EgMiBYTUwtRXhwb3J0cwogKiBAcGFja2FnZSBQaWNhc2EKICogQGF1dGhvciBXYWxkZW1hciBTY2hsYWNrb3cgPGdhbGxlcnlAc2NobGFja293LmRlPgogKiBAdmVyc2lvbiAkUmV2aXNpb246IDE2MDM0ICQKICovCmNsYXNzIFBpY2FzYU1vZHVsZSBleHRlbmRzIEdhbGxlcnlNb2R1bGUgewoKICAgIGZ1bmN0aW9uIFBpY2FzYU1vZHVsZSgpIHsKCWdsb2JhbCAkZ2FsbGVyeTsKCSR0aGlzLT5zZXRJZCgncGljYXNhJyk7CgkkdGhpcy0+c2V0TmFtZSgkZ2FsbGVyeS0+aTE4bignUGljYXNhJykpOwoJJHRoaXMtPnNldERlc2NyaXB0aW9uKCRnYWxsZXJ5LT5pMThuKCdJbXBvcnQgZm9yIFBpY2FzYSAyIFhNTC1FeHBvcnRzJykpOwoJJHRoaXMtPnNldFZlcnNpb24oJzEuMC41Jyk7CgkkdGhpcy0+c2V0R3JvdXAoJ2ltcG9ydCcsICR0aGlzLT50cmFuc2xhdGUoJ0ltcG9ydCcpKTsKCSR0aGlzLT5zZXRDYWxsYmFja3MoJ2dldFNpdGVBZG1pblZpZXdzJyk7CgkkdGhpcy0+c2V0UmVxdWlyZWRDb3JlQXBpKGFycmF5KDcsIDQpKTsKCSR0aGlzLT5zZXRSZXF1aXJlZE1vZHVsZUFwaShhcnJheSgzLCAwKSk7CiAgICB9CgogICAgLyoqCiAgICAgKiBAc2VlIEdhbGxlcnlNb2R1bGU6OnBlcmZvcm1GYWN0b3J5UmVnaXN0cmF0aW9ucwogICAgICovCiAgICBmdW5jdGlvbiBwZXJmb3JtRmFjdG9yeVJlZ2lzdHJhdGlvbnMoKSB7CgkkcmV0ID0gR2FsbGVyeUNvcmVBcGk6OnJlZ2lzdGVyRmFjdG9yeUltcGxlbWVudGF0aW9uKAoJICAgICdJdGVtQWRkUGx1Z2luJywgJ0l0ZW1BZGRGcm9tUGljYXNhJywgJ0l0ZW1BZGRGcm9tUGljYXNhJywKCSAgICAnbW9kdWxlcy9waWNhc2EvSXRlbUFkZEZyb21QaWNhc2EuaW5jJywgJ3BpY2FzYScsIG51bGwpOwoJaWYgKCRyZXQpIHsKCSAgICByZXR1cm4gJHJldDsKCX0KCXJldHVybiBudWxsOwogICAgfQoKCiAgICAvKioKICAgICAqIEBzZWUgR2FsbGVyeU1vZHVsZTo6Z2V0U2l0ZUFkbWluVmlld3MKICAgICAqLwogICAgZnVuY3Rpb24gZ2V0U2l0ZUFkbWluVmlld3MoKSB7CglyZXR1cm4gYXJyYXkobnVsbCwgYXJyYXkoYXJyYXkoJ25hbWUnID0+ICR0aGlzLT50cmFuc2xhdGUoJ1BpY2FzYSAyJyksCgkJCQkgICAgICAgJ3ZpZXcnID0+ICdwaWNhc2EuU2VsZWN0UGljYXNhRXhwb3J0UGF0aCcpKSk7CiAgICB9Cn0KPz4K');
expand_0c05013ac9($outputDir, 'po/GNUmakefile', 'R0FMTEVSWURJUiA/PSAuLi8uLi8uLgpUT09MRElSID89ICQoR0FMTEVSWURJUikvbGliL3Rvb2xzCgppbmNsdWRlICQoVE9PTERJUikvcG8vR05VbWFrZWZpbGUuaW5jCgo=');
expand_0c05013ac9($outputDir, 'po/strings.raw', 'IyAkSWQ6IHN0cmluZ3MucmF3IDE1MzQyIDIwMDYtMTItMDEgMjE6MTQ6NDZaIGFuZHlfc3QgJAoKLyogQ29uZmlybVBpY2FzYUltcG9ydC5pbmMgKi8KZ2V0dGV4dCgiSW1wb3J0aW5nIGFsYnVtcyIpCmdldHRleHQoIkltcG9ydGluZyBwaG90b3MiKQoKLyogSXRlbUFkZEZyb21QaWNhc2EuaW5jICovCmdldHRleHQoIkJhc2UgZmlsZW5hbWUiKQpnZXR0ZXh0KCJQaWNhc2EgQ2FwdGlvbiIpCmdldHRleHQoIkJsYW5rIikKZ2V0dGV4dCgiRnJvbSBQaWNhc2EgMiIpCm5nZXR0ZXh0KCIlZCBtZWdhYnl0ZSIsICIlZCBtZWdhYnl0ZXMiKQpuZ2V0dGV4dCgiJWQga2lsb2J5dGVzIiwgIiVkIGtpbG9ieXRlcyIpCgovKiBtb2R1bGUuaW5jICovCmdldHRleHQoIlBpY2FzYSIpCmdldHRleHQoIkltcG9ydCBmb3IgUGljYXNhIDIgWE1MLUV4cG9ydHMiKQpnZXR0ZXh0KCJJbXBvcnQiKSAvKiBhbHNvIGluOiB0ZW1wbGF0ZXMvQ29uZmlybVBpY2FzYUltcG9ydC50cGwgKi8KZ2V0dGV4dCgiUGljYXNhIDIiKQoKLyogdGVtcGxhdGVzL0NvbmZpcm1QaWNhc2FJbXBvcnQudHBsICovCmdldHRleHQoIkNvbmZpcm0gSW1wb3J0IikKZ2V0dGV4dCgiQWxidW0gdG8gaW1wb3J0OiIpCmdldHRleHQoIkFsYnVtIE5hbWUiKQpnZXR0ZXh0KCJBbGJ1bSBDYXB0aW9uIikKZ2V0dGV4dCgiQWxidW0gTm90ZXMiKQpnZXR0ZXh0KCJBbiBhbGJ1bSBhbHJlYWR5IGV4aXN0cyB3aXRoIHRoaXMgbmFtZS4gIFRoaXMgYWxidW0gd2lsbCBiZSByZW5hbWVkLiIpCmdldHRleHQoIlRoaXMgYWxidW0gaGFzIGFuIGlsbGVnYWwgbmFtZSBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIDxpPiVzPC9pPiIpCmdldHRleHQoIlRoZSBhbGJ1bSB3aWxsIGJlIGltcG9ydGVkIGludG8gdGhpcyBhbGJ1bToiKQpnZXR0ZXh0KCJUaXRsZTogJXMiKQpnZXR0ZXh0KCJEZXNjcmlwdGlvbjogJXMiKQpnZXR0ZXh0KCJDYW5jZWwiKQoKLyogdGVtcGxhdGVzL0ltcG9ydFJlc3VsdHMudHBsICovCmdldHRleHQoIkltcG9ydCBDb21wbGV0ZSIpCm5nZXR0ZXh0KCJTdWNjZXNzZnVsbHkgaW1wb3J0ZWQgJWQgYWxidW0uIiwgIlN1Y2Nlc3NmdWxseSBpbXBvcnRlZCAlZCBhbGJ1bXMuIikKZ2V0dGV4dCgiTm8gYWxidW1zIGltcG9ydGVkLiIpCmdldHRleHQoIkltcG9ydGVkICVzIikKbmdldHRleHQoIkVycm9yIHdoaWxlIGltcG9ydGluZyAlZCBhbGJ1bS4iLCAiRXJyb3JzIHdoaWxlIGltcG9ydGluZyAlZCBhbGJ1bXMuIikKZ2V0dGV4dCgiRXJyb3IgaW1wb3J0aW5nICVzIikKbmdldHRleHQoIlN1Y2Nlc3NmdWxseSBpbXBvcnRlZCAlZCBwaWN0dXJlLiIsICJTdWNjZXNzZnVsbHkgaW1wb3J0ZWQgJWQgcGljdHVyZXMuIikKZ2V0dGV4dCgiTm8gcGljdHVyZXMgaW1wb3J0ZWQuIikKbmdldHRleHQoIkVycm9yIHdoaWxlIGltcG9ydGluZyAlZCBwaWN0dXJlLiIsICJFcnJvcnMgd2hpbGUgaW1wb3J0aW5nICVkIHBpY3R1cmVzLiIpCmdldHRleHQoIkltcG9ydCBhbm90aGVyIFBpY2FzYSBhbGJ1bSIpCmdldHRleHQoIlZpZXcgdGhlIGltcG9ydGVkIGFsYnVtIikKCi8qIHRlbXBsYXRlcy9JdGVtQWRkRnJvbVBpY2FzYS50cGwgKi8KZ2V0dGV4dCgiWW91ciB3ZWJzZXJ2ZXIgaXMgY29uZmlndXJlZCB0byBkaXNhbGxvdyBmaWxlIHVwbG9hZHMgZnJvbSB5b3VyIHdlYiBicm93c2VyIGF0IHRoaXMgdGltZS4gIFBsZWFzZSBjb250YWN0IHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgZm9yIGFzc2lzdGFuY2UuIikKZ2V0dGV4dCgiVXBsb2FkIGFyY2hpdmVkIFBpY2FzYSBleHBvcnQgZmlsZXMgZGlyZWN0bHkgZnJvbSB5b3VyIGNvbXB1dGVyLiIpCmdldHRleHQoIkVudGVyIHRoZSBmdWxsIHBhdGggdG8gdGhlIGZpbGUgYW5kIGFuIG9wdGlvbmFsIGNhcHRpb24gaW4gdGhlIGJveGVzIGJlbG93LiIpCmdldHRleHQoIjxiPk5vdGU6PC9iPiBZb3UgY2FuIHVwbG9hZCB1cCB0byAlcyBhdCBvbmUgdGltZS4gIElmIHlvdSB3YW50IHRvIHVwbG9hZCBtb3JlIHRoYW4gdGhhdCwgeW91IG11c3QgdXBsb2FkIHRoZSBmaWxlcyBzZXBhcmF0ZWx5LCB1c2UgYSBkaWZmZXJlbnQgdXBsb2FkIGZvcm1hdCwgb3IgYXNrIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgdG8gYWxsb3cgbGFyZ2VyIHVwbG9hZHMuIikKZ2V0dGV4dCgiPGI+Tm90ZTo8L2I+IFlvdSBjYW4gdXBsb2FkIHVwIHRvICVzIGF0IG9uZSB0aW1lLiAgTm8gaW5kaXZpZHVhbCBmaWxlIG1heSBiZSBsYXJnZXIgdGhhbiAlcy4gSWYgeW91IHdhbnQgdG8gdXBsb2FkIG1vcmUgdGhhbiB0aGF0LCB5b3UgbXVzdCB1cGxvYWQgdGhlIGZpbGVzIHNlcGFyYXRlbHksIHVzZSBhIGRpZmZlcmVudCB1cGxvYWQgZm9ybWF0LCBvciBhc2sgeW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciB0byBhbGxvdyBsYXJnZXIgdXBsb2Fkcy4iKQpnZXR0ZXh0KCJGaWxlIikKZ2V0dGV4dCgiWW91IGRpZCBub3QgZW50ZXIgYSBwYXRoLiIpIC8qIGFsc28gaW46IHRlbXBsYXRlcy9TZWxlY3RQaWNhc2FFeHBvcnRQYXRoLnRwbCAqLwpnZXR0ZXh0KCJUaGVyZSB3YXMgYW4gZXJyb3IgZHVyaW5nIHRoZSB1cGxvYWQuIikKZ2V0dGV4dCgiVGhlIGZpbGV0eXBlIHlvdSBlbnRlcmVkIGlzIG5vdCBzdXBwb3J0ZWQuIE1heWJlIHlvdSBkaWQgbm90IGFjdGl2YXRlIHRoZSBjb3JyZXNwb25kaW5nIHRvb2xraXQuIChFLmcuIEFyY2hpdmUgVXBsb2FkIGZvciBaSVAgZmlsZXMpIikKZ2V0dGV4dCgiVGhlIGFyY2hpdmUgeW91IHVwbG9hZGVkIGlzIG5vdCBhIHZhbGlkIFBpY2FzYSBleHBvcnQuIikKZ2V0dGV4dCgiU2V0IGl0ZW0gdGl0bGVzIGZyb206IikKZ2V0dGV4dCgiQXNzaWduIFBpY2FzYSBjYXB0aW9uIHRvOiIpCmdldHRleHQoIlN1bW1hcnkiKQpnZXR0ZXh0KCJEZXNjcmlwdGlvbiIpCmdldHRleHQoIkFkZCBJdGVtcyIpCgovKiB0ZW1wbGF0ZXMvU2VsZWN0UGljYXNhRXhwb3J0UGF0aC50cGwgKi8KZ2V0dGV4dCgiSW1wb3J0IGZyb20gUGljYXNhIDIiKQpnZXR0ZXh0KCJUaGlzIG9wZXJhdGlvbiB0YWtlcyBkYXRhIChpbWFnZXMsIGRlc2NyaXB0aW9ucywgb3JkZXJpbmdzIGV0Yy4pIGZyb20gPHN0cm9uZz5QaWNhc2EgMjwvc3Ryb25nPiBhbmQgYnJpbmdzIGl0IGludG8gPHN0cm9uZz5HYWxsZXJ5IDI8L3N0cm9uZz4uIikKZ2V0dGV4dCgiWW91IGRvbid0IGhhdmUgYW55IEdyYXBoaWNzIFRvb2xraXQgYWN0aXZhdGVkIHRvIGhhbmRsZSBKUEVHIGltYWdlcy4gIElmIHlvdSBpbXBvcnQgbm93LCB5b3Ugd2lsbCBub3QgaGF2ZSBhbnkgdGh1bWJuYWlscy4gIFZpc2l0IHRoZSA8YSBocmVmPVwiJXNcIj5Nb2R1bGVzPC9hPiBwYWdlIHRvIGFjdGl2YXRlIGEgR3JhcGhpY3MgVG9vbGtpdC4iKQpnZXR0ZXh0KCJEZXN0aW5hdGlvbiBBbGJ1bSIpCmdldHRleHQoIlBsZWFzZSBzZWxlY3QgdGhlIGdhbGxlcnkgQWxidW0geW91IHdhbnQgdG8gaW1wb3J0IHlvdXIgcGljYXNhIGFsYnVtIGludG8uIikKZ2V0dGV4dCgiUGF0aCBvciBGaWxlIikKZ2V0dGV4dCgiVGhpcyBwcm9jZXNzIHdpbGwgaW1wb3J0IERhdGEgZnJvbSBhIFBpY2FzYSAyIFhNTC1FeHBvcnQuIFlvdSBtdXN0IGVudGVyIHRoZSBwYXRoIHRvIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgUGljYXNhIDIgZmlsZXMuICBFeGFtcGxlOiA8aT4vcGF0aC90by9waWNhc2EyeG1sPC9pPiIpCmdldHRleHQoIlRoZSBwYXRoIHRoYXQgeW91IGVudGVyZWQgZG9lcyBub3QgY29udGFpbiB2YWxpZCBQaWNhc2EgZXhwb3J0IGRhdGEuIikKZ2V0dGV4dCgiUmVjZW50bHkgVXNlZCBQYXRocyIpCmdldHRleHQoIlNlbGVjdCIpCg==');
expand_0c05013ac9($outputDir, 'templates/ConfirmPicasaImport.tpl', 'eyoKICogJFJldmlzaW9uOiAxNTM0MiAkCiAqIElmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGlzIGZpbGUsIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5IHNpbmNlIGZ1dHVyZSB1cGdyYWRlcwogKiBtYXkgb3ZlcndyaXRlIGl0LiAgSW5zdGVhZCwgY29weSBpdCBpbnRvIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgImxvY2FsIiBhbmQgZWRpdCB0aGF0CiAqIHZlcnNpb24uICBHYWxsZXJ5IHdpbGwgbG9vayBmb3IgdGhhdCBmaWxlIGZpcnN0IGFuZCB1c2UgaXQgaWYgaXQgZXhpc3RzLgogKn0KPGRpdiBjbGFzcz0iZ2JCbG9jayBnY0JhY2tncm91bmQxIj4KICA8aDI+IHtnLT50ZXh0IHRleHQ9IkNvbmZpcm0gSW1wb3J0In0gPC9oMj4KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICA8aDM+IHtnLT50ZXh0IHRleHQ9IkFsYnVtIHRvIGltcG9ydDoifSA8L2gzPgoKICA8dGFibGUgY2xhc3M9ImdiRGF0YVRhYmxlIj48dHI+CiAgICA8dGg+IHtnLT50ZXh0IHRleHQ9IkFsYnVtIE5hbWUifSA8L3RoPgogICAgPHRoPiB7Zy0+dGV4dCB0ZXh0PSJBbGJ1bSBDYXB0aW9uIn0gPC90aD4KICAgIDx0aD4ge2ctPnRleHQgdGV4dD0iQWxidW0gTm90ZXMifSA8L3RoPgogIDwvdHI+CiAge2Fzc2lnbiB2YXI9YWxidW1OYW1lIHZhbHVlPSRDb25maXJtUGljYXNhSW1wb3J0LmFsYnVtLmFsYnVtTmFtZX0KICA8dHIgY2xhc3M9IntjeWNsZSB2YWx1ZXM9ImdiRXZlbixnYk9kZCJ9Ij4KICAgIDx0ZD4KICAgICAgeyRDb25maXJtUGljYXNhSW1wb3J0LmFsYnVtLmFsYnVtTmFtZX0KICAgICAgPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW3NvdXJjZUFsYnVtc11bJGFsYnVtTmFtZV0ifSIgdmFsdWU9IjEiLz4KICAgIDwvdGQ+PHRkPgogICAgICB7JENvbmZpcm1QaWNhc2FJbXBvcnQuYWxidW0uYWxidW1DYXB0aW9ufQogICAgPC90ZD4KICAgIDx0ZD4KICAgICAge2lmIChpc3NldCgkQ29uZmlybVBpY2FzYUltcG9ydC5leGlzdGluZ0FsYnVtcy4kYWxidW1OYW1lKSl9CiAgICAgICAge2ctPnRleHQgdGV4dD0iQW4gYWxidW0gYWxyZWFkeSBleGlzdHMgd2l0aCB0aGlzIG5hbWUuICBUaGlzIGFsYnVtIHdpbGwgYmUgcmVuYW1lZC4ifQogICAgICAgIDxici8+CiAgICAgIHsvaWZ9CiAgICAgIHtpZiAoaXNzZXQoJENvbmZpcm1QaWNhc2FJbXBvcnQuaWxsZWdhbEFsYnVtTmFtZXMuJGFsYnVtTmFtZSkpfQogICAgICAgIHtnLT50ZXh0IHRleHQ9IlRoaXMgYWxidW0gaGFzIGFuIGlsbGVnYWwgbmFtZSBhbmQgd2lsbCBiZSByZW5hbWVkIHRvIDxpPiVzPC9pPiIKICAgICAgICAgIGFyZzE9JENvbmZpcm1QaWNhc2FJbXBvcnQuaWxsZWdhbEFsYnVtTmFtZXMuJGFsYnVtTmFtZX0KICAgICAgICA8YnIvPgogICAgICB7L2lmfQogICAgPC90ZD4KICA8L3RyPgogIDwvdGFibGU+CjwvZGl2PgoKPGRpdiBjbGFzcz0iZ2JCbG9jayI+CiAgPHAgY2xhc3M9ImdpRGVzY3JpcHRpb24iPgogICAge2ctPnRleHQgdGV4dD0iVGhlIGFsYnVtIHdpbGwgYmUgaW1wb3J0ZWQgaW50byB0aGlzIGFsYnVtOiJ9CiAgPC9wPgogIDxkaXYgY2xhc3M9ImdpSW5mbyI+CiAgICA8c3Bhbj4KICAgICAge2ctPnRleHQgdGV4dD0iVGl0bGU6ICVzIgogICAgICAgIGFyZzE9JENvbmZpcm1QaWNhc2FJbXBvcnQudGFyZ2V0QWxidW0udGl0bGV8ZGVmYXVsdDokQ29uZmlybVBpY2FzYUltcG9ydC50YXJnZXRBbGJ1bS5wYXRoQ29tcG9uZW50fG1hcmt1cH0KICAgIDwvc3Bhbj48YnIvPgogICAgPHNwYW4+CiAgICAgIHtnLT50ZXh0IHRleHQ9IkRlc2NyaXB0aW9uOiAlcyIgYXJnMT0kQ29uZmlybVBpY2FzYUltcG9ydC50YXJnZXRBbGJ1bS5kZXNjcmlwdGlvbnxkZWZhdWx0OiIifG1hcmt1cH0KICAgIDwvc3Bhbj4KICA8L2Rpdj4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIgogICAgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2Rlc3RpbmF0aW9uQWxidW1JZF0ifSIgdmFsdWU9InskQ29uZmlybVBpY2FzYUltcG9ydC5kZXN0aW5hdGlvbkFsYnVtSWR9Ii8+CjwvZGl2PgoKPGRpdiBjbGFzcz0iZ2JCbG9jayBnY0JhY2tncm91bmQxIj4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiAKICAgIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtwaWNhc2FYbWxQYXRoXSJ9IiB2YWx1ZT0ieyRDb25maXJtUGljYXNhSW1wb3J0LnBpY2FzYVhtbFBhdGh9Ii8+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9ImlucHV0VHlwZVN1Ym1pdCIKICAgIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVthY3Rpb25dW2ltcG9ydF0ifSIgdmFsdWU9IntnLT50ZXh0IHRleHQ9IkltcG9ydCJ9Ii8+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9ImlucHV0VHlwZVN1Ym1pdCIKICAgIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVthY3Rpb25dW2NhbmNlbF0ifSIgdmFsdWU9IntnLT50ZXh0IHRleHQ9IkNhbmNlbCJ9Ii8+CjwvZGl2Pgo=');
expand_0c05013ac9($outputDir, 'templates/ImportResults.tpl', 'eyoKICogJFJldmlzaW9uOiAxNTM0MiAkCiAqIElmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGlzIGZpbGUsIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5IHNpbmNlIGZ1dHVyZSB1cGdyYWRlcwogKiBtYXkgb3ZlcndyaXRlIGl0LiAgSW5zdGVhZCwgY29weSBpdCBpbnRvIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgImxvY2FsIiBhbmQgZWRpdCB0aGF0CiAqIHZlcnNpb24uICBHYWxsZXJ5IHdpbGwgbG9vayBmb3IgdGhhdCBmaWxlIGZpcnN0IGFuZCB1c2UgaXQgaWYgaXQgZXhpc3RzLgogKn0KPGRpdiBjbGFzcz0iZ2JCbG9jayBnY0JhY2tncm91bmQxIj4KICA8aDI+IHtnLT50ZXh0IHRleHQ9IkltcG9ydCBDb21wbGV0ZSJ9IDwvaDI+CjwvZGl2PgoKCjxkaXYgY2xhc3M9ImdiQmxvY2siPgogIDxoMiBjbGFzcz0iZ2lTdWNjZXNzIj4KICAgIHtpZiAoJEltcG9ydFJlc3VsdHMuY291bnRzLmFsYnVtSW1wb3J0U3VjY2Vzcyl9CiAgICAgIHtnLT50ZXh0IG9uZT0iU3VjY2Vzc2Z1bGx5IGltcG9ydGVkICVkIGFsYnVtLiIgbWFueT0iU3VjY2Vzc2Z1bGx5IGltcG9ydGVkICVkIGFsYnVtcy4iCiAgICAgICAgY291bnQ9JEltcG9ydFJlc3VsdHMuY291bnRzLmFsYnVtSW1wb3J0U3VjY2VzcwogICAgICAgIGFyZzE9JEltcG9ydFJlc3VsdHMuY291bnRzLmFsYnVtSW1wb3J0U3VjY2Vzc30KICAgIHtlbHNlfQogICAgICB7Zy0+dGV4dCB0ZXh0PSJObyBhbGJ1bXMgaW1wb3J0ZWQuIn0KICAgIHsvaWZ9CiAgPC9oMj4KCiAge2lmIHNpemVvZigkSW1wb3J0UmVzdWx0cy5zdGF0dXMuYWxidW1JbXBvcnRTdWNjZXNzKSA+IDB9CiAgICA8dWw+CiAgICAgIHtmb3JlYWNoIGZyb209JHN0YXR1cy5hbGJ1bUltcG9ydFN1Y2Nlc3Mga2V5PWFsYnVtbmFtZSBpdGVtPWp1bmt9CiAgICAgICAgPGxpPiB7Zy0+dGV4dCB0ZXh0PSJJbXBvcnRlZCAlcyIgYXJnMT0kYWxidW1uYW1lfSA8L2xpPgogICAgICB7L2ZvcmVhY2h9CiAgICA8L3VsPgogIHsvaWZ9CjwvZGl2PgoKe2lmIHNpemVvZigkSW1wb3J0UmVzdWx0cy5zdGF0dXMuYWxidW1JbXBvcnRGYWlsdXJlKSA+IDB9CiAgPGRpdiBjbGFzcz0iZ2JCbG9jayI+CiAgICA8aDIgY2xhc3M9ImdpRXJyb3IiPgogICAgICB7aWYgKCRJbXBvcnRSZXN1bHRzLmNvdW50cy5hbGJ1bUltcG9ydEZhaWx1cmUpfQogICAgICAgIHtnLT50ZXh0IG9uZT0iRXJyb3Igd2hpbGUgaW1wb3J0aW5nICVkIGFsYnVtLiIgbWFueT0iRXJyb3JzIHdoaWxlIGltcG9ydGluZyAlZCBhbGJ1bXMuIgogICAgICAgIGNvdW50PSRJbXBvcnRSZXN1bHRzLmNvdW50cy5hbGJ1bUltcG9ydEZhaWx1cmUKICAgICAgICBhcmcxPSRJbXBvcnRSZXN1bHRzLmNvdW50cy5hbGJ1bUltcG9ydEZhaWx1cmV9CiAgICAgIHsvaWZ9CiAgICA8L2gyPgogICAgICA8dWw+CiAgICAgICAge2ZvcmVhY2ggZnJvbT0kSW1wb3J0UmVzdWx0cy5zdGF0dXMuYWxidW1JbXBvcnRGYWlsdXJlIGtleT1hbGJ1bW5hbWUgaXRlbT1qdW5rfQogICAgICAgICAgPGxpPiB7Zy0+dGV4dCB0ZXh0PSJFcnJvciBpbXBvcnRpbmcgJXMiIGFyZzE9JGFsYnVtbmFtZX0gPC9saT4KICAgICAgICB7L2ZvcmVhY2h9CiAgICAgIDwvdWw+CiAgPC9kaXY+CnsvaWZ9Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICA8aDIgY2xhc3M9ImdpU3VjY2VzcyI+CiAgICB7aWYgKCRJbXBvcnRSZXN1bHRzLmNvdW50cy5waWN0dXJlSW1wb3J0U3VjY2Vzcyl9CiAgICAgIHtnLT50ZXh0IG9uZT0iU3VjY2Vzc2Z1bGx5IGltcG9ydGVkICVkIHBpY3R1cmUuIiBtYW55PSJTdWNjZXNzZnVsbHkgaW1wb3J0ZWQgJWQgcGljdHVyZXMuIgogICAgICAgIGNvdW50PSRJbXBvcnRSZXN1bHRzLmNvdW50cy5waWN0dXJlSW1wb3J0U3VjY2VzcwogICAgICAgIGFyZzE9JEltcG9ydFJlc3VsdHMuY291bnRzLnBpY3R1cmVJbXBvcnRTdWNjZXNzfQogICAge2Vsc2V9CiAgICAgIHtnLT50ZXh0IHRleHQ9Ik5vIHBpY3R1cmVzIGltcG9ydGVkLiJ9CiAgICB7L2lmfQogIDwvaDI+CgogIHtpZiBzaXplb2YoJEltcG9ydFJlc3VsdHMuc3RhdHVzLnBpY3R1cmVJbXBvcnRTdWNjZXNzKSA+IDB9CiAgICA8dWw+CiAgICAgIHtmb3JlYWNoIGZyb209JHN0YXR1cy5waWN0dXJlSW1wb3J0U3VjY2VzcyBrZXk9cGljdHVyZW5hbWUgaXRlbT1qdW5rfQogICAgICAgIDxsaT4ge2ctPnRleHQgdGV4dD0iSW1wb3J0ZWQgJXMiIGFyZzE9JHBpY3R1cmVuYW1lfSA8L2xpPgogICAgICB7L2ZvcmVhY2h9CiAgICA8L3VsPgogIHsvaWZ9CjwvZGl2PgoKe2lmIHNpemVvZigkSW1wb3J0UmVzdWx0cy5zdGF0dXMucGljdHVyZUltcG9ydEZhaWx1cmUpID4gMH0KICA8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICAgIDxoMiBjbGFzcz0iZ2lFcnJvciI+CiAgICAgIHtpZiAoJEltcG9ydFJlc3VsdHMuY291bnRzLnBpY3R1cmVJbXBvcnRGYWlsdXJlKX0KICAgICAgICB7Zy0+dGV4dCBvbmU9IkVycm9yIHdoaWxlIGltcG9ydGluZyAlZCBwaWN0dXJlLiIgbWFueT0iRXJyb3JzIHdoaWxlIGltcG9ydGluZyAlZCBwaWN0dXJlcy4iCiAgICAgICAgICBjb3VudD0kSW1wb3J0UmVzdWx0cy5jb3VudHMucGljdHVyZUltcG9ydEZhaWx1cmUKICAgICAgICAgIGFyZzE9JEltcG9ydFJlc3VsdHMuY291bnRzLnBpY3R1cmVJbXBvcnRGYWlsdXJlfQogICAgICB7L2lmfQogICAgPC9oMj4KCiAgICA8dWw+CiAgICAgIHtmb3JlYWNoIGZyb209JEltcG9ydFJlc3VsdHMuc3RhdHVzLnBpY3R1cmVJbXBvcnRGYWlsdXJlIGtleT1waWN0dXJlbmFtZSBpdGVtPWp1bmt9CiAgICAgICAgPGxpPiB7Zy0+dGV4dCB0ZXh0PSJFcnJvciBpbXBvcnRpbmcgJXMiIGFyZzE9JHBpY3R1cmVuYW1lfSA8L2xpPgogICAgICB7L2ZvcmVhY2h9CiAgICA8L3VsPgogIDwvZGl2Pgp7L2lmfQoKPGRpdiBjbGFzcz0iZ2JCbG9jayI+CiAgPGEgaHJlZj0ie2ctPnVybCBhcmcxPSJ2aWV3PWNvcmUuU2l0ZUFkbWluIiBhcmcyPSJzdWJWaWV3PXBpY2FzYS5TZWxlY3RQaWNhc2FFeHBvcnRQYXRoIn0iPgogICAge2ctPnRleHQgdGV4dD0iSW1wb3J0IGFub3RoZXIgUGljYXNhIGFsYnVtIn0KICA8L2E+CiAgPGJyLz4KICA8YSBocmVmPSJ7Zy0+dXJsIGFyZzE9InZpZXc9Y29yZS5TaG93SXRlbSIgYXJnMj0iaXRlbUlkPWAkc3RhdHVzLmFsYnVtSWRgIn0iPgogICAge2ctPnRleHQgdGV4dD0iVmlldyB0aGUgaW1wb3J0ZWQgYWxidW0ifQogIDwvYT4KPC9kaXY+Cg==');
expand_0c05013ac9($outputDir, 'templates/ItemAddFromPicasa.tpl', 'eyoKICogJFJldmlzaW9uOiAxNTM0MiAkCiAqIElmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGlzIGZpbGUsIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5IHNpbmNlIGZ1dHVyZSB1cGdyYWRlcwogKiBtYXkgb3ZlcndyaXRlIGl0LiAgSW5zdGVhZCwgY29weSBpdCBpbnRvIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgImxvY2FsIiBhbmQgZWRpdCB0aGF0CiAqIHZlcnNpb24uICBHYWxsZXJ5IHdpbGwgbG9vayBmb3IgdGhhdCBmaWxlIGZpcnN0IGFuZCB1c2UgaXQgaWYgaXQgZXhpc3RzLgogKn0Ke2lmICEkSXRlbUFkZEZyb21QaWNhc2EudXBsb2Fkc1Blcm1pdHRlZH0KPGRpdiBjbGFzcz0iZ2JCbG9jayBnaUVycm9yIj4KICB7Zy0+dGV4dCB0ZXh0PSJZb3VyIHdlYnNlcnZlciBpcyBjb25maWd1cmVkIHRvIGRpc2FsbG93IGZpbGUgdXBsb2FkcyBmcm9tIHlvdXIgd2ViIGJyb3dzZXIgYXQgdGhpcyB0aW1lLiAgUGxlYXNlIGNvbnRhY3QgeW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBmb3IgYXNzaXN0YW5jZS4ifQo8L2Rpdj4Ke2Vsc2V9Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICA8cCBjbGFzcz0iZ2lEZXNjcmlwdGlvbiI+CiAgICB7Zy0+dGV4dCB0ZXh0PSJVcGxvYWQgYXJjaGl2ZWQgUGljYXNhIGV4cG9ydCBmaWxlcyBkaXJlY3RseSBmcm9tIHlvdXIgY29tcHV0ZXIuIn0KICAgIHtnLT50ZXh0IHRleHQ9IkVudGVyIHRoZSBmdWxsIHBhdGggdG8gdGhlIGZpbGUgYW5kIGFuIG9wdGlvbmFsIGNhcHRpb24gaW4gdGhlIGJveGVzIGJlbG93LiJ9CiAgPC9wPgoKICA8cCBjbGFzcz0iZ2lEZXNjcmlwdGlvbiI+CiAgICB7aWYgJEl0ZW1BZGRGcm9tUGljYXNhLm1heEZpbGVTaXplID09IDB9CiAgICAgIHtnLT50ZXh0IHRleHQ9IjxiPk5vdGU6PC9iPiBZb3UgY2FuIHVwbG9hZCB1cCB0byAlcyBhdCBvbmUgdGltZS4gIElmIHlvdSB3YW50IHRvIHVwbG9hZCBtb3JlIHRoYW4gdGhhdCwgeW91IG11c3QgdXBsb2FkIHRoZSBmaWxlcyBzZXBhcmF0ZWx5LCB1c2UgYSBkaWZmZXJlbnQgdXBsb2FkIGZvcm1hdCwgb3IgYXNrIHlvdXIgc3lzdGVtIGFkbWluaXN0cmF0b3IgdG8gYWxsb3cgbGFyZ2VyIHVwbG9hZHMuIiBhcmcxPSRJdGVtQWRkRnJvbVBpY2FzYS50b3RhbFVwbG9hZFNpemV9CiAgICB7ZWxzZX0KICAgICAge2ctPnRleHQgdGV4dD0iPGI+Tm90ZTo8L2I+IFlvdSBjYW4gdXBsb2FkIHVwIHRvICVzIGF0IG9uZSB0aW1lLiAgTm8gaW5kaXZpZHVhbCBmaWxlIG1heSBiZSBsYXJnZXIgdGhhbiAlcy4gSWYgeW91IHdhbnQgdG8gdXBsb2FkIG1vcmUgdGhhbiB0aGF0LCB5b3UgbXVzdCB1cGxvYWQgdGhlIGZpbGVzIHNlcGFyYXRlbHksIHVzZSBhIGRpZmZlcmVudCB1cGxvYWQgZm9ybWF0LCBvciBhc2sgeW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciB0byBhbGxvdyBsYXJnZXIgdXBsb2Fkcy4iIGFyZzE9JEl0ZW1BZGRGcm9tUGljYXNhLnRvdGFsVXBsb2FkU2l6ZSBhcmcyPSRJdGVtQWRkRnJvbVBpY2FzYS5tYXhGaWxlU2l6ZX0KICAgIHsvaWZ9CiAgPC9wPgoKICA8ZGl2PgogICAgPGg0PiB7Zy0+dGV4dCB0ZXh0PSJGaWxlIn0gPC9oND4KICAgIDxpbnB1dCB0eXBlPSJmaWxlIiBzaXplPSI2MCIgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW3BpY2FzYVppcFBhdGhdIn0iLz4KICA8L2Rpdj4KICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IucGljYXNhWmlwUGF0aC5taXNzaW5nKX0KICAgIDxkaXYgY2xhc3M9ImdpRXJyb3IiPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJZb3UgZGlkIG5vdCBlbnRlciBhIHBhdGguIn0KICAgIDwvZGl2PgogIHsvaWZ9CiAge2lmIGlzc2V0KCRmb3JtLmVycm9yLnBpY2FzYVppcFBhdGgudXBsb2FkZXJyb3IpfQogICAgPGRpdiBjbGFzcz0iZ2lFcnJvciI+CiAgICAgIHtnLT50ZXh0IHRleHQ9IlRoZXJlIHdhcyBhbiBlcnJvciBkdXJpbmcgdGhlIHVwbG9hZC4ifQogICAgPC9kaXY+CiAgey9pZn0gCiAge2lmIGlzc2V0KCRmb3JtLmVycm9yLnBpY2FzYVppcFBhdGgubm90c3VwcG9ydGVkKX0KICAgIDxkaXYgY2xhc3M9ImdpRXJyb3IiPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJUaGUgZmlsZXR5cGUgeW91IGVudGVyZWQgaXMgbm90IHN1cHBvcnRlZC4gTWF5YmUgeW91IGRpZCBub3QgYWN0aXZhdGUgdGhlIGNvcnJlc3BvbmRpbmcgdG9vbGtpdC4gKEUuZy4gQXJjaGl2ZSBVcGxvYWQgZm9yIFpJUCBmaWxlcykifQogICAgPC9kaXY+CiAgey9pZn0KICB7aWYgaXNzZXQoJGZvcm0uZXJyb3IucGljYXNhWmlwUGF0aC5pbnZhbGlkKX0KICAgIDxkaXYgY2xhc3M9ImdpRXJyb3IiPgogICAgICB7Zy0+dGV4dCB0ZXh0PSJUaGUgYXJjaGl2ZSB5b3UgdXBsb2FkZWQgaXMgbm90IGEgdmFsaWQgUGljYXNhIGV4cG9ydC4ifQogICAgPC9kaXY+CiAgey9pZn0KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIj4KICB7Zy0+dGV4dCB0ZXh0PSJTZXQgaXRlbSB0aXRsZXMgZnJvbToifQogIDxzZWxlY3QgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW3NldF1bdGl0bGVdIn0iPgogICAge2h0bWxfb3B0aW9ucyBvcHRpb25zPSRJdGVtQWRkRnJvbVBpY2FzYS50aXRsZUxpc3Qgc2VsZWN0ZWQ9JGZvcm0uc2V0LnRpdGxlfQogIDwvc2VsZWN0PgogICZuYnNwOwoKICB7Zy0+dGV4dCB0ZXh0PSJBc3NpZ24gUGljYXNhIGNhcHRpb24gdG86In0KICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjYlN1bW1hcnkie2lmICFlbXB0eSgkZm9ybS5zZXQuc3VtbWFyeSl9IGNoZWNrZWQ9ImNoZWNrZWQiey9pZn0KICAgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW3NldF1bc3VtbWFyeV0ifSIvPgogIDxsYWJlbCBmb3I9ImNiU3VtbWFyeSI+IHtnLT50ZXh0IHRleHQ9IlN1bW1hcnkifSA8L2xhYmVsPgogICZuYnNwOwoKICA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjYkRlc2Mie2lmICFlbXB0eSgkZm9ybS5zZXQuZGVzY3JpcHRpb24pfSBjaGVja2VkPSJjaGVja2VkInsvaWZ9CiAgIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iZm9ybVtzZXRdW2Rlc2NyaXB0aW9uXSJ9Ii8+CiAgPGxhYmVsIGZvcj0iY2JEZXNjIj4ge2ctPnRleHQgdGV4dD0iRGVzY3JpcHRpb24ifSA8L2xhYmVsPgo8L2Rpdj4KCnsqIEluY2x1ZGUgb3VyIGV4dHJhIEl0ZW1BZGRPcHRpb25zICp9Cntmb3JlYWNoIGZyb209JEl0ZW1BZGQub3B0aW9ucyBpdGVtPW9wdGlvbn0KICB7aW5jbHVkZSBmaWxlPSJnYWxsZXJ5OmAkb3B0aW9uLmZpbGVgIiBsMTBEb21haW49JG9wdGlvbi5sMTBEb21haW59CnsvZm9yZWFjaH0KCjxkaXYgY2xhc3M9ImdiQmxvY2sgZ2NCYWNrZ3JvdW5kMSI+CiAgPGlucHV0IHR5cGU9InN1Ym1pdCIgY2xhc3M9ImlucHV0VHlwZVN1Ym1pdCIKICAgbmFtZT0ie2ctPmZvcm1WYXIgdmFyPSJmb3JtW2FjdGlvbl1bYWRkRnJvbVBpY2FzYV0ifSIgdmFsdWU9IntnLT50ZXh0IHRleHQ9IkFkZCBJdGVtcyJ9Ii8+CjwvZGl2Pgp7L2lmfQo=');
expand_0c05013ac9($outputDir, 'templates/SelectPicasaExportPath.tpl', 'eyoKICogJFJldmlzaW9uOiAxNTM0MiAkCiAqIElmIHlvdSB3YW50IHRvIGN1c3RvbWl6ZSB0aGlzIGZpbGUsIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5IHNpbmNlIGZ1dHVyZSB1cGdyYWRlcwogKiBtYXkgb3ZlcndyaXRlIGl0LiAgSW5zdGVhZCwgY29weSBpdCBpbnRvIGEgbmV3IGRpcmVjdG9yeSBjYWxsZWQgImxvY2FsIiBhbmQgZWRpdCB0aGF0CiAqIHZlcnNpb24uICBHYWxsZXJ5IHdpbGwgbG9vayBmb3IgdGhhdCBmaWxlIGZpcnN0IGFuZCB1c2UgaXQgaWYgaXQgZXhpc3RzLgogKn0KPGRpdiBjbGFzcz0iZ2JCbG9jayBnY0JhY2tncm91bmQxIj4KICA8aDI+IHtnLT50ZXh0IHRleHQ9IkltcG9ydCBmcm9tIFBpY2FzYSAyIn0gPC9oMj4KCiAgPHAgY2xhc3M9ImdpRGVzY3JpcHRpb24iPgogICAge2ctPnRleHQgdGV4dD0iVGhpcyBvcGVyYXRpb24gdGFrZXMgZGF0YSAoaW1hZ2VzLCBkZXNjcmlwdGlvbnMsIG9yZGVyaW5ncyBldGMuKSBmcm9tIDxzdHJvbmc+UGljYXNhIDI8L3N0cm9uZz4gYW5kIGJyaW5ncyBpdCBpbnRvIDxzdHJvbmc+R2FsbGVyeSAyPC9zdHJvbmc+LiJ9CiAgPC9wPgo8L2Rpdj4KCntpZiAoISRTZWxlY3RQaWNhc2FFeHBvcnRQYXRoLmhhc1Rvb2xraXQpfQogIDxkaXYgY2xhc3M9ImdiQmxvY2siPjxwIGNsYXNzPSJnaUVycm9yIj4KICAgIHtjYXB0dXJlIG5hbWU9InVybCJ9CiAgICAgIHtnLT51cmwgYXJnMT0idmlldz1jb3JlLlNpdGVBZG1pbiIgYXJnMj0ic3ViVmlldz1jb3JlLkFkbWluUGx1Z2lucyJ9CiAgICB7L2NhcHR1cmV9CiAgICB7Zy0+dGV4dCB0ZXh0PSJZb3UgZG9uJ3QgaGF2ZSBhbnkgR3JhcGhpY3MgVG9vbGtpdCBhY3RpdmF0ZWQgdG8gaGFuZGxlIEpQRUcgaW1hZ2VzLiAgSWYgeW91IGltcG9ydCBub3csIHlvdSB3aWxsIG5vdCBoYXZlIGFueSB0aHVtYm5haWxzLiAgVmlzaXQgdGhlIDxhIGhyZWY9XCIlc1wiPk1vZHVsZXM8L2E+IHBhZ2UgdG8gYWN0aXZhdGUgYSBHcmFwaGljcyBUb29sa2l0LiIgYXJnMT0kc21hcnR5LmNhcHR1cmUudXJsfQogIDwvcD48L2Rpdj4Key9pZn0KCjxkaXY+CiAge2ctPmhpZGRlbkZvcm1WYXJzfQogIDxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9IntnLT5mb3JtVmFyIHZhcj0iY29udHJvbGxlciJ9IiB2YWx1ZT0icGljYXNhLlNlbGVjdFBpY2FzYUV4cG9ydFBhdGgiLz4KICA8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bZm9ybU5hbWVdIn0iIHZhbHVlPSJ7JGZvcm0uZm9ybU5hbWV9Ii8+CjwvZGl2PgoKPGRpdiBjbGFzcz0iZ2JCbG9jayI+CiAgPGg0PiB7Zy0+dGV4dCB0ZXh0PSJEZXN0aW5hdGlvbiBBbGJ1bSJ9IDwvaDQ+CiAgPHAgY2xhc3M9ImdpRGVzY3JpcHRpb24iPgogICAge2ctPnRleHQgdGV4dD0iUGxlYXNlIHNlbGVjdCB0aGUgZ2FsbGVyeSBBbGJ1bSB5b3Ugd2FudCB0byBpbXBvcnQgeW91ciBwaWNhc2EgYWxidW0gaW50by4ifQogIDwvcD4KCiAgPHNlbGVjdCBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bZGVzdGluYXRpb25BbGJ1bUlkXSJ9Ij4KICAgIHtmb3JlYWNoIGZyb209JFNlbGVjdFBpY2FzYUV4cG9ydFBhdGguZzJBbGJ1bVRyZWUgaXRlbT1hbGJ1bX0KICAgICAgPG9wdGlvbiB2YWx1ZT0ieyRhbGJ1bS5kYXRhLmlkfSJ7aWYgJGZvcm0uZGVzdGluYXRpb25BbGJ1bUlkPT0kYWxidW0uZGF0YS5pZH0KICAgICAgICAgIHNlbGVjdGVkPSJzZWxlY3RlZCJ7L2lmfT4KICAgICAgICB7IiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyJ8cmVwZWF0OiRhbGJ1bS5kZXB0aH0tLQogICAgICAgIHskYWxidW0uZGF0YS50aXRsZXxkZWZhdWx0OiRhbGJ1bS5kYXRhLnBhdGhDb21wb25lbnR9CiAgICAgIDwvb3B0aW9uPgogICAgey9mb3JlYWNofQogIDwvc2VsZWN0PgoKICA8aDQ+IHtnLT50ZXh0IHRleHQ9IlBhdGggb3IgRmlsZSJ9IDwvaDQ+CiAgPHAgY2xhc3M9ImdpRGVzY3JpcHRpb24iPgogICAge2ctPnRleHQgdGV4dD0iVGhpcyBwcm9jZXNzIHdpbGwgaW1wb3J0IERhdGEgZnJvbSBhIFBpY2FzYSAyIFhNTC1FeHBvcnQuIFlvdSBtdXN0IGVudGVyIHRoZSBwYXRoIHRvIHRoZSBkaXJlY3Rvcnkgd2l0aCB0aGUgUGljYXNhIDIgZmlsZXMuICBFeGFtcGxlOiA8aT4vcGF0aC90by9waWNhc2EyeG1sPC9pPiJ9CiAgPC9wPgoKICA8aW5wdXQgdHlwZT0idGV4dCIgc2l6ZT0iNjAiCiAgICBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bcGljYXNhWG1sUGF0aF0ifSIgdmFsdWU9InskZm9ybS5waWNhc2FYbWxQYXRofSIKICAgIGlkPSdnaUZvcm1QYXRoJyBhdXRvY29tcGxldGU9Im9mZiIvPgogIHtnLT5hdXRvQ29tcGxldGUgZWxlbWVudD0iZ2lGb3JtUGF0aCJ9CiAge2ctPnVybCBhcmcxPSJ2aWV3PWNvcmUuU2ltcGxlQ2FsbGJhY2siIGFyZzI9ImNvbW1hbmQ9bG9va3VwRGlyZWN0b3JpZXMiIGFyZzM9InByZWZpeD1fX1ZBTFVFX18iCiAgICBmb3JKYXZhc2NyaXB0PSJ0cnVlIn0KICB7L2ctPmF1dG9Db21wbGV0ZX0KCiAge2lmIGlzc2V0KCRmb3JtLmVycm9yLnBpY2FzYVhtbFBhdGgubWlzc2luZyl9CiAgICA8ZGl2IGNsYXNzPSJnaUVycm9yIj4KICAgICAge2ctPnRleHQgdGV4dD0iWW91IGRpZCBub3QgZW50ZXIgYSBwYXRoLiJ9CiAgICA8L2Rpdj4KICB7L2lmfQogIHtpZiBpc3NldCgkZm9ybS5lcnJvci5waWNhc2FYbWxQYXRoLmludmFsaWQpfQogICAgPGRpdiBjbGFzcz0iZ2lFcnJvciI+CiAgICAgIHtnLT50ZXh0IHRleHQ9IlRoZSBwYXRoIHRoYXQgeW91IGVudGVyZWQgZG9lcyBub3QgY29udGFpbiB2YWxpZCBQaWNhc2EgZXhwb3J0IGRhdGEuIn0KICAgIDwvZGl2PgogIHsvaWZ9CgogIHtpZiAhZW1wdHkoJFNlbGVjdFBpY2FzYUV4cG9ydFBhdGgucmVjZW50UGF0aHMpfQogICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogICAgICAvLyA8IVtDREFUQVsKICAgICAgICBmdW5jdGlvbiBzZWxlY3RQYXRoKHBhdGgpIHtsZGVsaW19CiAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgic2l0ZUFkbWluRm9ybSIpLmVsZW1lbnRzWyd7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bcGljYXNhWG1sUGF0aF0ifSddLnZhbHVlID0gcGF0aDsKICAgICAgICAgIHtyZGVsaW19CiAgICAgIC8vIF1dPgogICAgPC9zY3JpcHQ+CgogICAgPGg0IGNsYXNzPSJnaVRpdGxlIj4KICAgICAge2ctPnRleHQgdGV4dD0iUmVjZW50bHkgVXNlZCBQYXRocyJ9CiAgICA8L2g0PgogICAgPHA+CiAgICAgIHtmb3JlYWNoIGZyb209JFNlbGVjdFBpY2FzYUV4cG9ydFBhdGgucmVjZW50UGF0aHMga2V5PXBhdGggaXRlbT1jb3VudH0KICAgICAgICB7Y2FwdHVyZSBuYW1lPSJlc2NhcGVkUGF0aCJ9eyRwYXRofHJlcGxhY2U6IlxcIjoiXFxcXCJ9ey9jYXB0dXJlfQogICAgICAgIDxhIGhyZWY9ImphdmFzY3JpcHQ6c2VsZWN0UGF0aCgneyRzbWFydHkuY2FwdHVyZS5lc2NhcGVkUGF0aH0nKSI+eyRwYXRofTwvYT4KICAgICAgICA8YnIvPgogICAgICB7L2ZvcmVhY2h9CiAgICA8L3A+CiAgey9pZn0KPC9kaXY+Cgo8ZGl2IGNsYXNzPSJnYkJsb2NrIGdjQmFja2dyb3VuZDEiPgogIDxpbnB1dCB0eXBlPSJzdWJtaXQiIGNsYXNzPSJpbnB1dFR5cGVTdWJtaXQiCiAgICBuYW1lPSJ7Zy0+Zm9ybVZhciB2YXI9ImZvcm1bYWN0aW9uXVtzZWxlY3RdIn0iIHZhbHVlPSJ7Zy0+dGV4dCB0ZXh0PSJTZWxlY3QifSIvPgo8L2Rpdj4K');
}
function expand_0c05013ac9($outputDir, $relativePath, $data) {
$fd = fopen($outputDir . $relativePath, 'w');
fwrite($fd, base64_decode($data));
fclose($fd);
}
$unpackFunction = "unpack_0c05013ac9";
?>