From fridolyn.somers@gmail.com Tue Dec 21 16:05:21 2010 From: Fridolyn SOMERS To: koha-devel@lists.koha-community.org Subject: [Koha-devel] JSCalendar translation - bug 2307 Date: Tue, 21 Dec 2010 16:04:58 +0100 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1968641671062240187==" --===============1968641671062240187== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Hie Koha users, I'm opening a mail on the translation of JavaScript Calendar used in both OPAC and Intranet. (JSCalendar, unknown version but < 1.0). The bug 2307 refers to this : http://bugs.koha-community.org/bugzilla3/show_bug.cgi?id=2307 I think it's can be a great improvement for users. (We French use a wery different date format). How can we propose translation ? 1. In PO files like proposed in bug patch 2. With the language files found in JSCalendar project and put them all in lib/calendar folder. In my opinion, PO files is not necessary. Because : - language files (calendar-[language].js) are very small (4 Ko). - they manage not only translation but also country-specific preferences (such as first day of week). So using PO files will miss the comments that explains those preferences. In second case : In Templates, use : In this case, we just have to rename lang files : calendar-fr.js -> calendar-fr-FR.js, calendar-fr-CA.js ... You'll find a test patch I used for French lang. *PS :* I add to correct a bug on "first day of week" (Calendar._FD) preference to have it work. Regards, Happy Christmas. -- Fridolyn SOMERS ICT engineer PROGILONE - Lyon - France fridolyn.somers@gmail.com --===============1968641671062240187== Content-Type: text/html Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.html" MIME-Version: 1.0 SGllIEtvaGEgdXNlcnMsPGJyPjxicj5JJiMzOTttIG9wZW5pbmcgYSBtYWlsIG9uIHRoZSB0cmFu c2xhdGlvbiBvZiBKYXZhU2NyaXB0IENhbGVuZGFyIHVzZWQgaW4gYm90aCBPUEFDIGFuZCBJbnRy YW5ldC48YnI+KEpTQ2FsZW5kYXIsIHVua25vd24gdmVyc2lvbiBidXQgJmx0OyAxLjApLjxicj48 YnI+VGhlIGJ1ZyAyMzA3IHJlZmVycyB0byB0aGlzoCA6PGJyPjxhIGhyZWY9Imh0dHA6Ly9idWdz LmtvaGEtY29tbXVuaXR5Lm9yZy9idWd6aWxsYTMvc2hvd19idWcuY2dpP2lkPTIzMDciPmh0dHA6 Ly9idWdzLmtvaGEtY29tbXVuaXR5Lm9yZy9idWd6aWxsYTMvc2hvd19idWcuY2dpP2lkPTIzMDc8 L2E+PGJyPgoKPGJyPkkgdGhpbmsgaXQmIzM5O3MgY2FuIGJlIGEgZ3JlYXQgaW1wcm92ZW1lbnQg Zm9yIHVzZXJzLjxicj4oV2UgRnJlbmNoIHVzZSBhIHdlcnkgZGlmZmVyZW50IGRhdGUgZm9ybWF0 KS48YnI+PGJyPkhvdyBjYW4gd2UgcHJvcG9zZSB0cmFuc2xhdGlvbiA/PGJyPjxvbD48bGk+SW4g UE8gZmlsZXMgbGlrZSBwcm9wb3NlZCBpbiBidWcgcGF0Y2ggPC9saT48bGk+V2l0aCB0aGUgbGFu Z3VhZ2UgZmlsZXMgZm91bmQgaW4gSlNDYWxlbmRhciBwcm9qZWN0IGFuZCBwdXQgdGhlbSBhbGwg aW4gbGliL2NhbGVuZGFyIGZvbGRlci48L2xpPgoKPC9vbD48YnI+SW4gbXkgb3BpbmlvbiwgUE8g ZmlsZXMgaXMgbm90IG5lY2Vzc2FyeS48YnI+QmVjYXVzZSA6IDxicj48dWw+PGxpPmxhbmd1YWdl IGZpbGVzIChjYWxlbmRhci1bbGFuZ3VhZ2VdLmpzKSBhcmUgdmVyeSBzbWFsbCAoNCBLbykuPC9s aT48bGk+dGhleSBtYW5hZ2Ugbm90IG9ubHkgdHJhbnNsYXRpb24gYnV0IGFsc28gY291bnRyeS1z cGVjaWZpYyBwcmVmZXJlbmNlcyAoc3VjaCBhcyBmaXJzdCBkYXkgb2Ygd2VlaykuIFNvIHVzaW5n IFBPIGZpbGVzIHdpbGwgbWlzcyB0aGUgY29tbWVudHMgdGhhdCBleHBsYWlucyB0aG9zZSBwcmVm ZXJlbmNlcy48YnI+Cgo8L2xpPjwvdWw+SW4gc2Vjb25kIGNhc2UgOjxicj5JbiBUZW1wbGF0ZXMs IHVzZSA6IDxicj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6IGNvdXJpZXIgbmV3LG1vbm9zcGFj ZTsiPiZsdDtzY3JpcHQgdHlwZT0mcXVvdDt0ZXh0L2phdmFzY3JpcHQmcXVvdDsgc3JjPSZxdW90 OyZsdDshLS0gVE1QTF9WQVIgbmFtZT0mcXVvdDt0aGVtZWxhbmcmcXVvdDsgLS0mZ3Q7L2xpYi9j YWxlbmRhci9jYWxlbmRhci0mbHQ7IS0tIFRNUExfVkFSIG5hbWU9JnF1b3Q7bGFuZyZxdW90OyAt LSZndDsuanMmcXVvdDsmZ3Q7Jmx0Oy9zY3JpcHQmZ3Q7PC9zcGFuPjxicj4KCjxicj5JbiB0aGlz IGNhc2UsIHdlIGp1c3QgaGF2ZSB0byByZW5hbWUgbGFuZyBmaWxlcyA6IGNhbGVuZGFyLWZyLmpz IC0mZ3Q7IGNhbGVuZGFyLWZyLUZSLmpzLCBjYWxlbmRhci1mci1DQS5qcyAuLi48YnI+PGJyPllv dSYjMzk7bGwgZmluZCBhIHRlc3QgcGF0Y2ggSSB1c2VkIGZvciBGcmVuY2ggbGFuZy48YnI+PGJy Pjx1PlBTIDo8L3U+PGJyPkkgYWRkIHRvIGNvcnJlY3QgYSBidWcgb24gJnF1b3Q7Zmlyc3QgZGF5 IG9mIHdlZWsmcXVvdDsgKENhbGVuZGFyLl9GRCkgcHJlZmVyZW5jZSB0byBoYXZlIGl0IHdvcmsu PGJyPgoKPGJyPlJlZ2FyZHMsPGJyPjxicj5IYXBweSBDaHJpc3RtYXMuPGJyPjxicj4tLSA8YnI+ RnJpZG9seW4gU09NRVJTPGJyPklDVCBlbmdpbmVlcjxicj5QUk9HSUxPTkUgLSBMeW9uIC0gRnJh bmNlPGJyPjxhIGhyZWY9Im1haWx0bzpmcmlkb2x5bi5zb21lcnNAZ21haWwuY29tIiB0YXJnZXQ9 Il9ibGFuayI+ZnJpZG9seW4uc29tZXJzQGdtYWlsLmNvbTwvYT48YnI+Cg== --===============1968641671062240187== Content-Type: text/x-patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="calendar_fr.patch" MIME-Version: 1.0 SW5kZXg6IGtvaGEtdG1wbC9pbnRyYW5ldC10bXBsL3Byb2cvZW4vbGliL2NhbGVuZGFyL2NhbGVu ZGFyLWZyLUZSLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtvaGEtdG1wbC9pbnRyYW5ldC10bXBsL3Byb2cv ZW4vbGliL2NhbGVuZGFyL2NhbGVuZGFyLWZyLUZSLmpzCisrKyBrb2hhLXRtcGwvaW50cmFuZXQt dG1wbC9wcm9nL2VuL2xpYi9jYWxlbmRhci9jYWxlbmRhci1mci1GUi5qcwpAQCAtMCwwICsxLDEy OSBAQAorLy8gKiogSTE4TgorCisvLyBDYWxlbmRhciBFTiBsYW5ndWFnZQorLy8gQXV0aG9yOiBN aWhhaSBCYXpvbiwgPG1paGFpX2Jhem9uQHlhaG9vLmNvbT4KKy8vIEVuY29kaW5nOiBVVEYtOAor Ly8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgdGVybXMgYXMgdGhlIGNhbGVuZGFyIGl0c2Vs Zi4KKworLy8gRm9yIHRyYW5zbGF0b3JzOiBwbGVhc2UgdXNlIFVURi04IGlmIHBvc3NpYmxlLiAg V2Ugc3Ryb25nbHkgYmVsaWV2ZSB0aGF0CisvLyBVbmljb2RlIGlzIHRoZSBhbnN3ZXIgdG8gYSBy ZWFsIGludGVybmF0aW9uYWxpemVkIHdvcmxkLiAgQWxzbyBwbGVhc2UKKy8vIGluY2x1ZGUgeW91 ciBjb250YWN0IGluZm9ybWF0aW9uIGluIHRoZSBoZWFkZXIsIGFzIGNhbiBiZSBzZWVuIGFib3Zl LgorCisvLyBUcmFuc2xhdG9yOiBBbmRyw6kgTGllY2h0aSwgPGRldmVsb3BlckBzeXNjby5jaD4g KDIwMDYtMDEtMDQpIGZyb20gc2NyYXRjaCBmb3IgdmVyc2lvbiAxLngKKworLy8gZnVsbCBkYXkg bmFtZXMKK0NhbGVuZGFyLl9ETiA9IG5ldyBBcnJheQorKCJEaW1hbmNoZSIsCisgIkx1bmRpIiwK KyAiTWFyZGkiLAorICJNZXJjcmVkaSIsCisgIkpldWRpIiwKKyAiVmVuZHJlZGkiLAorICJTYW1l ZGkiLAorICJEaW1hbmNoZSIpOworCisvLyBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBmb2xsb3dpbmcg YXJyYXkgb2Ygc2hvcnQgZGF5IG5hbWVzIChhbmQgdGhlIHNhbWUgZ29lcworLy8gZm9yIHNob3J0 IG1vbnRoIG5hbWVzLCBfU01OKSBpc24ndCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4gIFdlIGdpdmUg aXQgaGVyZQorLy8gZm9yIGV4ZW1wbGlmaWNhdGlvbiBvbiBob3cgb25lIGNhbiBjdXN0b21pemUg dGhlIHNob3J0IGRheSBuYW1lcywgYnV0IGlmCisvLyB0aGV5IGFyZSBzaW1wbHkgdGhlIGZpcnN0 IE4gbGV0dGVycyBvZiB0aGUgZnVsbCBuYW1lIHlvdSBjYW4gc2ltcGx5IHNheToKKy8vCisvLyAg IENhbGVuZGFyLl9TRE5fbGVuID0gTjsgLy8gc2hvcnQgZGF5IG5hbWUgbGVuZ3RoCisvLyAgIENh bGVuZGFyLl9TTU5fbGVuID0gTjsgLy8gc2hvcnQgbW9udGggbmFtZSBsZW5ndGgKKy8vCisvLyBJ ZiBOID0gMyB0aGVuIHRoaXMgaXMgbm90IG5lZWRlZCBlaXRoZXIgc2luY2Ugd2UgYXNzdW1lIGEg dmFsdWUgb2YgMyBpZiBub3QKKy8vIHByZXNlbnQsIHRvIGJlIGNvbXBhdGlibGUgd2l0aCB0cmFu c2xhdGlvbiBmaWxlcyB0aGF0IHdlcmUgd3JpdHRlbiBiZWZvcmUKKy8vIHRoaXMgZmVhdHVyZS4K KworLy8gc2hvcnQgZGF5IG5hbWVzCitDYWxlbmRhci5fU0ROID0gbmV3IEFycmF5CisoIkRpbSIs CisgIkx1biIsCisgIk1hciIsCisgIk1lciIsCisgIkpldSIsCisgIlZlbiIsCisgIlNhbSIsCisg IkRpbSIpOworCisvLyBGaXJzdCBkYXkgb2YgdGhlIHdlZWsuICIwIiBtZWFucyBkaXNwbGF5IFN1 bmRheSBmaXJzdCwgIjEiIG1lYW5zIGRpc3BsYXkKKy8vIE1vbmRheSBmaXJzdCwgZXRjLgorQ2Fs ZW5kYXIuX0ZEID0gMTsKKworLy8gZnVsbCBtb250aCBuYW1lcworQ2FsZW5kYXIuX01OID0gbmV3 IEFycmF5CisoIkphbnZpZXIiLAorICJGw6l2cmllciIsCisgIk1hcnMiLAorICJBdnJpbCIsCisg Ik1haSIsCisgIkp1aW4iLAorICJKdWlsbGV0IiwKKyAiQW/Du3QiLAorICJTZXB0ZW1icmUiLAor ICJPY3RvYnJlIiwKKyAiTm92ZW1icmUiLAorICJEw6ljZW1icmUiKTsKKworLy8gc2hvcnQgbW9u dGggbmFtZXMKK0NhbGVuZGFyLl9TTU4gPSBuZXcgQXJyYXkKKygiSmFuIiwKKyAiRsOpdiIsCisg Ik1hciIsCisgIkF2ciIsCisgIk1haSIsCisgIkp1aW4iLAorICJKdWlsIiwKKyAiQW91IiwKKyAi U2VwIiwKKyAiT2N0IiwKKyAiTm92IiwKKyAiRMOpYyIpOworCisvLyB0b29sdGlwcworQ2FsZW5k YXIuX1RUID0ge307CitDYWxlbmRhci5fVFRbIklORk8iXSA9ICLDgCBwcm9wb3MgZHUgY2FsZW5k cmllciI7CisKK0NhbGVuZGFyLl9UVFsiQUJPVVQiXSA9CisiU8OpbGVjdGV1ciBESFRNTCBkZSBk YXRlL2hldXJlXG4iICsKKyIoYykgZHluYXJjaC5jb20gMjAwMi0yMDA1IC8gQXV0aG9yOiBNaWhh aSBCYXpvblxuIiArIC8vIGRvbid0IHRyYW5zbGF0ZSB0aGlzIHRoaXMgOy0pCisiUG91ciBsYSB2 ZXJzaW9uIGFjdHVlbGxlLCB2aXNpdGV6OiBodHRwOi8vd3d3LmR5bmFyY2guY29tL3Byb2plY3Rz L2NhbGVuZGFyL1xuIiArCisiRGlzdHJpYnXDqSBzb3VzIGxpY2VuY2UgR05VIExHUEwuICBWb2ly IGh0dHA6Ly9nbnUub3JnL2xpY2Vuc2VzL2xncGwuaHRtbCBwb3VyIGxlcyBkw6l0YWlscy4iICsg IlxuKGxpY2VuY2UgdHJhZHVpdGUgZW4gZnJhbsOnYWlzOiBodHRwOi8vd3d3LnJvZGFnZS5vcmcv bGdwbC5mci5odG1sKSIgKworIlxuXG4iICsKKyJTw6lsZWN0aW9uIGRlIGxhIGRhdGU6XG4iICsK KyItIFV0aWxpc2VyIGxlcyBib3V0b25zIFx4YWIsIFx4YmIgcG91ciBzw6lsZWN0aW9ubmVyIGwn YW5uw6llXG4iICsKKyItIFV0aWxpc2VyIGxlcyBib3V0b25zICIgKyBTdHJpbmcuZnJvbUNoYXJD b2RlKDB4MjAzOSkgKyAiLCAiICsgU3RyaW5nLmZyb21DaGFyQ29kZSgweDIwM2EpICsgIiBwb3Vy IHPDqWxlY3Rpb25uZXIgbGUgbW9pc1xuIiArCisiLSBFbiBjb25zZXJ2YW50IHByZXNzw6kgbGUg Ym91dG9uIGRlIGxhIHNvdXJpcyBzdXIgbCd1biBkZSBjZXMgYm91dG9ucywgbGEgc8OpbGVjdGlv biBkZXZpZW50IHBsdXMgcmFwaWRlLiI7CitDYWxlbmRhci5fVFRbIkFCT1VUX1RJTUUiXSA9ICJc blxuIiArCisiU8OpbGVjdGlvbiBkZSBsXCdoZXVyZTpcbiIgKworIi0gQ2xpcXVlciBzdXIgbCd1 bmUgZGVzIHBhcnRpZXMgZHUgdGVtcHMgcG91ciBsJ2F1Z21lbnRlclxuIiArCisiLSBvdSBNYWot Y2xpYyBwb3VyIGxlIGRpbWludWVyXG4iICsKKyItIG91IGZhaXJlIHVuIGNsaXF1ZXItZMOpcGxh Y2VyIGhvcml6b250YWwgcG91ciB1bmUgbW9kaWZpY2F0aW9uIHBsdXMgcmFwaWRlLiI7CisKK0Nh bGVuZGFyLl9UVFsiUFJFVl9ZRUFSIl0gPSAiQW5uw6llIHByw6ljLiAobWFpbnRlbmlyIHBvdXIg YWZmaWNoZXIgbWVudSkiOworQ2FsZW5kYXIuX1RUWyJQUkVWX01PTlRIIl0gPSAiTW9pcyBwcsOp Yy4gKG1haW50ZW5pciBwb3VyIGFmZmljaGVyIG1lbnUpIjsKK0NhbGVuZGFyLl9UVFsiR09fVE9E QVkiXSA9ICJBdHRlaW5kcmUgbGEgZGF0ZSBkdSBqb3VyIjsKK0NhbGVuZGFyLl9UVFsiTkVYVF9N T05USCJdID0gIk1vaXMgc3Vpdi4gKG1haW50ZW5pciBwb3VyIGFmZmljaGVyIG1lbnUpIjsKK0Nh bGVuZGFyLl9UVFsiTkVYVF9ZRUFSIl0gPSAiQW5uw6llIHN1aXYuIChtYWludGVuaXIgcG91ciBh ZmZpY2hlciBtZW51KSI7CitDYWxlbmRhci5fVFRbIlNFTF9EQVRFIl0gPSAiU8OpbGVjdGlvbm5l ciB1bmUgZGF0ZSI7CitDYWxlbmRhci5fVFRbIkRSQUdfVE9fTU9WRSJdID0gIkdsaXNzZXIgcG91 ciBkw6lwbGFjZXIiOworQ2FsZW5kYXIuX1RUWyJQQVJUX1RPREFZIl0gPSAiIChhdWpvdXJkJ2h1 aSkiOworCisvLyB0aGUgZm9sbG93aW5nIGlzIHRvIGluZm9ybSB0aGF0ICIlcyIgaXMgdG8gYmUg dGhlIGZpcnN0IGRheSBvZiB3ZWVrCisvLyAlcyB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIGRh eSBuYW1lLgorQ2FsZW5kYXIuX1RUWyJEQVlfRklSU1QiXSA9ICJBZmZpY2hlciAlcyBlbiBwcmVt aWVyIjsKKworLy8gVGhpcyBtYXkgYmUgbG9jYWxlLWRlcGVuZGVudC4gIEl0IHNwZWNpZmllcyB0 aGUgd2Vlay1lbmQgZGF5cywgYXMgYW4gYXJyYXkKKy8vIG9mIGNvbW1hLXNlcGFyYXRlZCBudW1i ZXJzLiAgVGhlIG51bWJlcnMgYXJlIGZyb20gMCB0byA2OiAwIG1lYW5zIFN1bmRheSwgMQorLy8g bWVhbnMgTW9uZGF5LCBldGMuCitDYWxlbmRhci5fVFRbIldFRUtFTkQiXSA9ICIwLDYiOworCitD YWxlbmRhci5fVFRbIkNMT1NFIl0gPSAiRmVybWVyIjsKK0NhbGVuZGFyLl9UVFsiVE9EQVkiXSA9 ICJBdWpvdXJkJ2h1aSI7CitDYWxlbmRhci5fVFRbIlRJTUVfUEFSVCJdID0gIihNYWotKUNsaWMg b3UgZ2xpc3NlciBwb3VyIGNoYW5nZXIgbGEgdmFsZXVyIjsKKworLy8gZGF0ZSBmb3JtYXRzCitD YWxlbmRhci5fVFRbIkRFRl9EQVRFX0ZPUk1BVCJdID0gIiVkLiVtLiVZIjsKK0NhbGVuZGFyLl9U VFsiVFRfREFURV9GT1JNQVQiXSA9ICIlQSwgJWUgJUIiOworCitDYWxlbmRhci5fVFRbIldLIl0g PSAic2VtLiI7CitDYWxlbmRhci5fVFRbIlRJTUUiXSA9ICJIZXVyZToiOwpcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKSW5kZXg6IGtvaGEtdG1wbC9pbnRyYW5ldC10bXBsL3Byb2cvZW4vbGli L2NhbGVuZGFyL2NhbGVuZGFyLWZyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtvaGEtdG1wbC9pbnRyYW5l dC10bXBsL3Byb2cvZW4vbGliL2NhbGVuZGFyL2NhbGVuZGFyLWZyLmpzCisrKyBrb2hhLXRtcGwv aW50cmFuZXQtdG1wbC9wcm9nL2VuL2xpYi9jYWxlbmRhci9jYWxlbmRhci1mci5qcwpAQCAtMCww ICsxLDEyOSBAQAorLy8gKiogSTE4TgorCisvLyBDYWxlbmRhciBFTiBsYW5ndWFnZQorLy8gQXV0 aG9yOiBNaWhhaSBCYXpvbiwgPG1paGFpX2Jhem9uQHlhaG9vLmNvbT4KKy8vIEVuY29kaW5nOiBV VEYtOAorLy8gRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgdGVybXMgYXMgdGhlIGNhbGVuZGFy IGl0c2VsZi4KKworLy8gRm9yIHRyYW5zbGF0b3JzOiBwbGVhc2UgdXNlIFVURi04IGlmIHBvc3Np YmxlLiAgV2Ugc3Ryb25nbHkgYmVsaWV2ZSB0aGF0CisvLyBVbmljb2RlIGlzIHRoZSBhbnN3ZXIg dG8gYSByZWFsIGludGVybmF0aW9uYWxpemVkIHdvcmxkLiAgQWxzbyBwbGVhc2UKKy8vIGluY2x1 ZGUgeW91ciBjb250YWN0IGluZm9ybWF0aW9uIGluIHRoZSBoZWFkZXIsIGFzIGNhbiBiZSBzZWVu IGFib3ZlLgorCisvLyBUcmFuc2xhdG9yOiBBbmRyw6kgTGllY2h0aSwgPGRldmVsb3BlckBzeXNj by5jaD4gKDIwMDYtMDEtMDQpIGZyb20gc2NyYXRjaCBmb3IgdmVyc2lvbiAxLngKKworLy8gZnVs bCBkYXkgbmFtZXMKK0NhbGVuZGFyLl9ETiA9IG5ldyBBcnJheQorKCJEaW1hbmNoZSIsCisgIkx1 bmRpIiwKKyAiTWFyZGkiLAorICJNZXJjcmVkaSIsCisgIkpldWRpIiwKKyAiVmVuZHJlZGkiLAor ICJTYW1lZGkiLAorICJEaW1hbmNoZSIpOworCisvLyBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBmb2xs b3dpbmcgYXJyYXkgb2Ygc2hvcnQgZGF5IG5hbWVzIChhbmQgdGhlIHNhbWUgZ29lcworLy8gZm9y IHNob3J0IG1vbnRoIG5hbWVzLCBfU01OKSBpc24ndCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4gIFdl IGdpdmUgaXQgaGVyZQorLy8gZm9yIGV4ZW1wbGlmaWNhdGlvbiBvbiBob3cgb25lIGNhbiBjdXN0 b21pemUgdGhlIHNob3J0IGRheSBuYW1lcywgYnV0IGlmCisvLyB0aGV5IGFyZSBzaW1wbHkgdGhl IGZpcnN0IE4gbGV0dGVycyBvZiB0aGUgZnVsbCBuYW1lIHlvdSBjYW4gc2ltcGx5IHNheToKKy8v CisvLyAgIENhbGVuZGFyLl9TRE5fbGVuID0gTjsgLy8gc2hvcnQgZGF5IG5hbWUgbGVuZ3RoCisv LyAgIENhbGVuZGFyLl9TTU5fbGVuID0gTjsgLy8gc2hvcnQgbW9udGggbmFtZSBsZW5ndGgKKy8v CisvLyBJZiBOID0gMyB0aGVuIHRoaXMgaXMgbm90IG5lZWRlZCBlaXRoZXIgc2luY2Ugd2UgYXNz dW1lIGEgdmFsdWUgb2YgMyBpZiBub3QKKy8vIHByZXNlbnQsIHRvIGJlIGNvbXBhdGlibGUgd2l0 aCB0cmFuc2xhdGlvbiBmaWxlcyB0aGF0IHdlcmUgd3JpdHRlbiBiZWZvcmUKKy8vIHRoaXMgZmVh dHVyZS4KKworLy8gc2hvcnQgZGF5IG5hbWVzCitDYWxlbmRhci5fU0ROID0gbmV3IEFycmF5Ciso IkRpbSIsCisgIkx1biIsCisgIk1hciIsCisgIk1lciIsCisgIkpldSIsCisgIlZlbiIsCisgIlNh bSIsCisgIkRpbSIpOworCisvLyBGaXJzdCBkYXkgb2YgdGhlIHdlZWsuICIwIiBtZWFucyBkaXNw bGF5IFN1bmRheSBmaXJzdCwgIjEiIG1lYW5zIGRpc3BsYXkKKy8vIE1vbmRheSBmaXJzdCwgZXRj LgorQ2FsZW5kYXIuX0ZEID0gMTsKKworLy8gZnVsbCBtb250aCBuYW1lcworQ2FsZW5kYXIuX01O ID0gbmV3IEFycmF5CisoIkphbnZpZXIiLAorICJGw6l2cmllciIsCisgIk1hcnMiLAorICJBdnJp bCIsCisgIk1haSIsCisgIkp1aW4iLAorICJKdWlsbGV0IiwKKyAiQW/Du3QiLAorICJTZXB0ZW1i cmUiLAorICJPY3RvYnJlIiwKKyAiTm92ZW1icmUiLAorICJEw6ljZW1icmUiKTsKKworLy8gc2hv cnQgbW9udGggbmFtZXMKK0NhbGVuZGFyLl9TTU4gPSBuZXcgQXJyYXkKKygiSmFuIiwKKyAiRsOp diIsCisgIk1hciIsCisgIkF2ciIsCisgIk1haSIsCisgIkp1aW4iLAorICJKdWlsIiwKKyAiQW91 IiwKKyAiU2VwIiwKKyAiT2N0IiwKKyAiTm92IiwKKyAiRMOpYyIpOworCisvLyB0b29sdGlwcwor Q2FsZW5kYXIuX1RUID0ge307CitDYWxlbmRhci5fVFRbIklORk8iXSA9ICLDgCBwcm9wb3MgZHUg Y2FsZW5kcmllciI7CisKK0NhbGVuZGFyLl9UVFsiQUJPVVQiXSA9CisiU8OpbGVjdGV1ciBESFRN TCBkZSBkYXRlL2hldXJlXG4iICsKKyIoYykgZHluYXJjaC5jb20gMjAwMi0yMDA1IC8gQXV0aG9y OiBNaWhhaSBCYXpvblxuIiArIC8vIGRvbid0IHRyYW5zbGF0ZSB0aGlzIHRoaXMgOy0pCisiUG91 ciBsYSB2ZXJzaW9uIGFjdHVlbGxlLCB2aXNpdGV6OiBodHRwOi8vd3d3LmR5bmFyY2guY29tL3By b2plY3RzL2NhbGVuZGFyL1xuIiArCisiRGlzdHJpYnXDqSBzb3VzIGxpY2VuY2UgR05VIExHUEwu ICBWb2lyIGh0dHA6Ly9nbnUub3JnL2xpY2Vuc2VzL2xncGwuaHRtbCBwb3VyIGxlcyBkw6l0YWls cy4iICsgIlxuKGxpY2VuY2UgdHJhZHVpdGUgZW4gZnJhbsOnYWlzOiBodHRwOi8vd3d3LnJvZGFn ZS5vcmcvbGdwbC5mci5odG1sKSIgKworIlxuXG4iICsKKyJTw6lsZWN0aW9uIGRlIGxhIGRhdGU6 XG4iICsKKyItIFV0aWxpc2VyIGxlcyBib3V0b25zIFx4YWIsIFx4YmIgcG91ciBzw6lsZWN0aW9u bmVyIGwnYW5uw6llXG4iICsKKyItIFV0aWxpc2VyIGxlcyBib3V0b25zICIgKyBTdHJpbmcuZnJv bUNoYXJDb2RlKDB4MjAzOSkgKyAiLCAiICsgU3RyaW5nLmZyb21DaGFyQ29kZSgweDIwM2EpICsg IiBwb3VyIHPDqWxlY3Rpb25uZXIgbGUgbW9pc1xuIiArCisiLSBFbiBjb25zZXJ2YW50IHByZXNz w6kgbGUgYm91dG9uIGRlIGxhIHNvdXJpcyBzdXIgbCd1biBkZSBjZXMgYm91dG9ucywgbGEgc8Op bGVjdGlvbiBkZXZpZW50IHBsdXMgcmFwaWRlLiI7CitDYWxlbmRhci5fVFRbIkFCT1VUX1RJTUUi XSA9ICJcblxuIiArCisiU8OpbGVjdGlvbiBkZSBsXCdoZXVyZTpcbiIgKworIi0gQ2xpcXVlciBz dXIgbCd1bmUgZGVzIHBhcnRpZXMgZHUgdGVtcHMgcG91ciBsJ2F1Z21lbnRlclxuIiArCisiLSBv dSBNYWotY2xpYyBwb3VyIGxlIGRpbWludWVyXG4iICsKKyItIG91IGZhaXJlIHVuIGNsaXF1ZXIt ZMOpcGxhY2VyIGhvcml6b250YWwgcG91ciB1bmUgbW9kaWZpY2F0aW9uIHBsdXMgcmFwaWRlLiI7 CisKK0NhbGVuZGFyLl9UVFsiUFJFVl9ZRUFSIl0gPSAiQW5uw6llIHByw6ljLiAobWFpbnRlbmly IHBvdXIgYWZmaWNoZXIgbWVudSkiOworQ2FsZW5kYXIuX1RUWyJQUkVWX01PTlRIIl0gPSAiTW9p cyBwcsOpYy4gKG1haW50ZW5pciBwb3VyIGFmZmljaGVyIG1lbnUpIjsKK0NhbGVuZGFyLl9UVFsi R09fVE9EQVkiXSA9ICJBdHRlaW5kcmUgbGEgZGF0ZSBkdSBqb3VyIjsKK0NhbGVuZGFyLl9UVFsi TkVYVF9NT05USCJdID0gIk1vaXMgc3Vpdi4gKG1haW50ZW5pciBwb3VyIGFmZmljaGVyIG1lbnUp IjsKK0NhbGVuZGFyLl9UVFsiTkVYVF9ZRUFSIl0gPSAiQW5uw6llIHN1aXYuIChtYWludGVuaXIg cG91ciBhZmZpY2hlciBtZW51KSI7CitDYWxlbmRhci5fVFRbIlNFTF9EQVRFIl0gPSAiU8OpbGVj dGlvbm5lciB1bmUgZGF0ZSI7CitDYWxlbmRhci5fVFRbIkRSQUdfVE9fTU9WRSJdID0gIkdsaXNz ZXIgcG91ciBkw6lwbGFjZXIiOworQ2FsZW5kYXIuX1RUWyJQQVJUX1RPREFZIl0gPSAiIChhdWpv dXJkJ2h1aSkiOworCisvLyB0aGUgZm9sbG93aW5nIGlzIHRvIGluZm9ybSB0aGF0ICIlcyIgaXMg dG8gYmUgdGhlIGZpcnN0IGRheSBvZiB3ZWVrCisvLyAlcyB3aWxsIGJlIHJlcGxhY2VkIHdpdGgg dGhlIGRheSBuYW1lLgorQ2FsZW5kYXIuX1RUWyJEQVlfRklSU1QiXSA9ICJBZmZpY2hlciAlcyBl biBwcmVtaWVyIjsKKworLy8gVGhpcyBtYXkgYmUgbG9jYWxlLWRlcGVuZGVudC4gIEl0IHNwZWNp ZmllcyB0aGUgd2Vlay1lbmQgZGF5cywgYXMgYW4gYXJyYXkKKy8vIG9mIGNvbW1hLXNlcGFyYXRl ZCBudW1iZXJzLiAgVGhlIG51bWJlcnMgYXJlIGZyb20gMCB0byA2OiAwIG1lYW5zIFN1bmRheSwg MQorLy8gbWVhbnMgTW9uZGF5LCBldGMuCitDYWxlbmRhci5fVFRbIldFRUtFTkQiXSA9ICIwLDYi OworCitDYWxlbmRhci5fVFRbIkNMT1NFIl0gPSAiRmVybWVyIjsKK0NhbGVuZGFyLl9UVFsiVE9E QVkiXSA9ICJBdWpvdXJkJ2h1aSI7CitDYWxlbmRhci5fVFRbIlRJTUVfUEFSVCJdID0gIihNYWot KUNsaWMgb3UgZ2xpc3NlciBwb3VyIGNoYW5nZXIgbGEgdmFsZXVyIjsKKworLy8gZGF0ZSBmb3Jt YXRzCitDYWxlbmRhci5fVFRbIkRFRl9EQVRFX0ZPUk1BVCJdID0gIiVkLiVtLiVZIjsKK0NhbGVu ZGFyLl9UVFsiVFRfREFURV9GT1JNQVQiXSA9ICIlQSwgJWUgJUIiOworCitDYWxlbmRhci5fVFRb IldLIl0gPSAic2VtLiI7CitDYWxlbmRhci5fVFRbIlRJTUUiXSA9ICJIZXVyZToiOwpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IGtvaGEtdG1wbC9pbnRyYW5ldC10bXBsL3Byb2cv ZW4vbGliL2NhbGVuZGFyL2NhbGVuZGFyLXNldHVwLmpzCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtvaGEtdG1w bC9pbnRyYW5ldC10bXBsL3Byb2cvZW4vbGliL2NhbGVuZGFyL2NhbGVuZGFyLXNldHVwLmpzCisr KyBrb2hhLXRtcGwvaW50cmFuZXQtdG1wbC9wcm9nL2VuL2xpYi9jYWxlbmRhci9jYWxlbmRhci1z ZXR1cC5qcwpAQCAtNjksNyArNjksNyBAQAogCXBhcmFtX2RlZmF1bHQoInNpbmdsZUNsaWNrIiwg ICAgdHJ1ZSk7CiAJcGFyYW1fZGVmYXVsdCgiZGlzYWJsZUZ1bmMiLCAgICAnZGF0ZVN0YXR1c0hh bmRsZXInKTsKIAlwYXJhbV9kZWZhdWx0KCJkYXRlU3RhdHVzRnVuYyIsIHBhcmFtc1siZGlzYWJs ZUZ1bmMiXSk7CS8vIHRha2VzIHByZWNlZGVuY2UgaWYgYm90aCBhcmUgZGVmaW5lZAotCXBhcmFt X2RlZmF1bHQoImZpcnN0RGF5IiwgICAgICAgMCk7IC8vIGRlZmF1bHRzIHRvICJTdW5kYXkiIGZp cnN0CisJcGFyYW1fZGVmYXVsdCgiZmlyc3REYXkiLCAgICAgICBudWxsKTsKIAlwYXJhbV9kZWZh dWx0KCJhbGlnbiIsICAgICAgICAgICJCciIpOwogCXBhcmFtX2RlZmF1bHQoInJhbmdlIiwgICAg ICAgICAgWzE5MDAsIDI5OTldKTsKIAlwYXJhbV9kZWZhdWx0KCJ3ZWVrTnVtYmVycyIsICAgIHRy dWUpOwpJbmRleDoga29oYS10bXBsL2ludHJhbmV0LXRtcGwvcHJvZy9lbi9saWIvY2FsZW5kYXIv Y2FsZW5kYXIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0ga29oYS10bXBsL2ludHJhbmV0LXRtcGwvcHJvZy9l bi9saWIvY2FsZW5kYXIvY2FsZW5kYXIuanMKKysrIGtvaGEtdG1wbC9pbnRyYW5ldC10bXBsL3By b2cvZW4vbGliL2NhbGVuZGFyL2NhbGVuZGFyLmpzCkBAIC0yOCw3ICsyOCw3IEBACiAJdGhpcy50 dERhdGVGb3JtYXQgPSBDYWxlbmRhci5fVFRbIlRUX0RBVEVfRk9STUFUIl07CiAJdGhpcy5pc1Bv cHVwID0gdHJ1ZTsKIAl0aGlzLndlZWtOdW1iZXJzID0gdHJ1ZTsKLQl0aGlzLmZpcnN0RGF5T2ZX ZWVrID0gZmlyc3REYXlPZldlZWs7IC8vIDAgZm9yIFN1bmRheSwgMSBmb3IgTW9uZGF5LCBldGMu CisJdGhpcy5maXJzdERheU9mV2VlayA9IHR5cGVvZiBmaXJzdERheU9mV2VlayA9PSAibnVtYmVy IiA/IGZpcnN0RGF5T2ZXZWVrIDogQ2FsZW5kYXIuX0ZEOyAvLyAwIGZvciBTdW5kYXksIDEgZm9y IE1vbmRheSwgZXRjLgogCXRoaXMuc2hvd3NPdGhlck1vbnRocyA9IGZhbHNlOwogCXRoaXMuZGF0 ZVN0ciA9IGRhdGVTdHI7CiAJdGhpcy5hcl9kYXlzID0gbnVsbDsKSW5kZXg6IGtvaGEtdG1wbC9v cGFjLXRtcGwvcHJvZy9lbi9pbmNsdWRlcy9jYWxlbmRhci5pbmMKPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga29o YS10bXBsL29wYWMtdG1wbC9wcm9nL2VuL2luY2x1ZGVzL2NhbGVuZGFyLmluYwkocmV2aXNpb24g MzUzKQorKysga29oYS10bXBsL29wYWMtdG1wbC9wcm9nL2VuL2luY2x1ZGVzL2NhbGVuZGFyLmlu Ywkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIg dHlwZT0idGV4dC9jc3MiIGhyZWY9IjwhLS0gVE1QTF9WQVIgbmFtZT0idGhlbWVsYW5nIiAtLT4v bGliL2NhbGVuZGFyL2NhbGVuZGFyLXN5c3RlbS5jc3MiLz4KIDxzY3JpcHQgdHlwZT0idGV4dC9q YXZhc2NyaXB0IiBzcmM9IjwhLS0gVE1QTF9WQVIgbmFtZT0idGhlbWVsYW5nIiAtLT4vbGliL2Nh bGVuZGFyL2NhbGVuZGFyLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny aXB0IiBzcmM9IjwhLS0gVE1QTF9WQVIgbmFtZT0idGhlbWVsYW5nIiAtLT4vbGliL2NhbGVuZGFy L2NhbGVuZGFyLWVuLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0 IiBzcmM9IjwhLS0gVE1QTF9WQVIgbmFtZT0idGhlbWVsYW5nIiAtLT4vbGliL2NhbGVuZGFyL2Nh bGVuZGFyLTwhLS0gVE1QTF9WQVIgbmFtZT0ibGFuZyIgLS0+LmpzIj48L3NjcmlwdD4KIDxzY3Jp cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IjwhLS0gVE1QTF9WQVIgbmFtZT0idGhlbWVs YW5nIiAtLT4vbGliL2NhbGVuZGFyL2NhbGVuZGFyLXNldHVwLmpzIj48L3NjcmlwdD4KIDxzY3Jp cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KIC8vPCFbQ0RBVEFbCkluZGV4OiBrb2hhLXRtcGwv b3BhYy10bXBsL3Byb2cvZW4vbGliL2NhbGVuZGFyL2NhbGVuZGFyLWZyLUZSLmpzCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KLS0tIGtvaGEtdG1wbC9vcGFjLXRtcGwvcHJvZy9lbi9saWIvY2FsZW5kYXIvY2FsZW5kYXIt ZnItRlIuanMJKHJldmlzaW9uIDApCisrKyBrb2hhLXRtcGwvb3BhYy10bXBsL3Byb2cvZW4vbGli L2NhbGVuZGFyL2NhbGVuZGFyLWZyLUZSLmpzCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyOSBA QAorLy8gKiogSTE4TgorCisvLyBDYWxlbmRhciBFTiBsYW5ndWFnZQorLy8gQXV0aG9yOiBNaWhh aSBCYXpvbiwgPG1paGFpX2Jhem9uQHlhaG9vLmNvbT4KKy8vIEVuY29kaW5nOiBVVEYtOAorLy8g RGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgdGVybXMgYXMgdGhlIGNhbGVuZGFyIGl0c2VsZi4K KworLy8gRm9yIHRyYW5zbGF0b3JzOiBwbGVhc2UgdXNlIFVURi04IGlmIHBvc3NpYmxlLiAgV2Ug c3Ryb25nbHkgYmVsaWV2ZSB0aGF0CisvLyBVbmljb2RlIGlzIHRoZSBhbnN3ZXIgdG8gYSByZWFs IGludGVybmF0aW9uYWxpemVkIHdvcmxkLiAgQWxzbyBwbGVhc2UKKy8vIGluY2x1ZGUgeW91ciBj b250YWN0IGluZm9ybWF0aW9uIGluIHRoZSBoZWFkZXIsIGFzIGNhbiBiZSBzZWVuIGFib3ZlLgor CisvLyBUcmFuc2xhdG9yOiBBbmRyw6kgTGllY2h0aSwgPGRldmVsb3BlckBzeXNjby5jaD4gKDIw MDYtMDEtMDQpIGZyb20gc2NyYXRjaCBmb3IgdmVyc2lvbiAxLngKKworLy8gZnVsbCBkYXkgbmFt ZXMKK0NhbGVuZGFyLl9ETiA9IG5ldyBBcnJheQorKCJEaW1hbmNoZSIsCisgIkx1bmRpIiwKKyAi TWFyZGkiLAorICJNZXJjcmVkaSIsCisgIkpldWRpIiwKKyAiVmVuZHJlZGkiLAorICJTYW1lZGki LAorICJEaW1hbmNoZSIpOworCisvLyBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBmb2xsb3dpbmcgYXJy YXkgb2Ygc2hvcnQgZGF5IG5hbWVzIChhbmQgdGhlIHNhbWUgZ29lcworLy8gZm9yIHNob3J0IG1v bnRoIG5hbWVzLCBfU01OKSBpc24ndCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4gIFdlIGdpdmUgaXQg aGVyZQorLy8gZm9yIGV4ZW1wbGlmaWNhdGlvbiBvbiBob3cgb25lIGNhbiBjdXN0b21pemUgdGhl IHNob3J0IGRheSBuYW1lcywgYnV0IGlmCisvLyB0aGV5IGFyZSBzaW1wbHkgdGhlIGZpcnN0IE4g bGV0dGVycyBvZiB0aGUgZnVsbCBuYW1lIHlvdSBjYW4gc2ltcGx5IHNheToKKy8vCisvLyAgIENh bGVuZGFyLl9TRE5fbGVuID0gTjsgLy8gc2hvcnQgZGF5IG5hbWUgbGVuZ3RoCisvLyAgIENhbGVu ZGFyLl9TTU5fbGVuID0gTjsgLy8gc2hvcnQgbW9udGggbmFtZSBsZW5ndGgKKy8vCisvLyBJZiBO ID0gMyB0aGVuIHRoaXMgaXMgbm90IG5lZWRlZCBlaXRoZXIgc2luY2Ugd2UgYXNzdW1lIGEgdmFs dWUgb2YgMyBpZiBub3QKKy8vIHByZXNlbnQsIHRvIGJlIGNvbXBhdGlibGUgd2l0aCB0cmFuc2xh dGlvbiBmaWxlcyB0aGF0IHdlcmUgd3JpdHRlbiBiZWZvcmUKKy8vIHRoaXMgZmVhdHVyZS4KKwor Ly8gc2hvcnQgZGF5IG5hbWVzCitDYWxlbmRhci5fU0ROID0gbmV3IEFycmF5CisoIkRpbSIsCisg Ikx1biIsCisgIk1hciIsCisgIk1lciIsCisgIkpldSIsCisgIlZlbiIsCisgIlNhbSIsCisgIkRp bSIpOworCisvLyBGaXJzdCBkYXkgb2YgdGhlIHdlZWsuICIwIiBtZWFucyBkaXNwbGF5IFN1bmRh eSBmaXJzdCwgIjEiIG1lYW5zIGRpc3BsYXkKKy8vIE1vbmRheSBmaXJzdCwgZXRjLgorQ2FsZW5k YXIuX0ZEID0gMTsKKworLy8gZnVsbCBtb250aCBuYW1lcworQ2FsZW5kYXIuX01OID0gbmV3IEFy cmF5CisoIkphbnZpZXIiLAorICJGw6l2cmllciIsCisgIk1hcnMiLAorICJBdnJpbCIsCisgIk1h aSIsCisgIkp1aW4iLAorICJKdWlsbGV0IiwKKyAiQW/Du3QiLAorICJTZXB0ZW1icmUiLAorICJP Y3RvYnJlIiwKKyAiTm92ZW1icmUiLAorICJEw6ljZW1icmUiKTsKKworLy8gc2hvcnQgbW9udGgg bmFtZXMKK0NhbGVuZGFyLl9TTU4gPSBuZXcgQXJyYXkKKygiSmFuIiwKKyAiRsOpdiIsCisgIk1h ciIsCisgIkF2ciIsCisgIk1haSIsCisgIkp1aW4iLAorICJKdWlsIiwKKyAiQW91IiwKKyAiU2Vw IiwKKyAiT2N0IiwKKyAiTm92IiwKKyAiRMOpYyIpOworCisvLyB0b29sdGlwcworQ2FsZW5kYXIu X1RUID0ge307CitDYWxlbmRhci5fVFRbIklORk8iXSA9ICLDgCBwcm9wb3MgZHUgY2FsZW5kcmll ciI7CisKK0NhbGVuZGFyLl9UVFsiQUJPVVQiXSA9CisiU8OpbGVjdGV1ciBESFRNTCBkZSBkYXRl L2hldXJlXG4iICsKKyIoYykgZHluYXJjaC5jb20gMjAwMi0yMDA1IC8gQXV0aG9yOiBNaWhhaSBC YXpvblxuIiArIC8vIGRvbid0IHRyYW5zbGF0ZSB0aGlzIHRoaXMgOy0pCisiUG91ciBsYSB2ZXJz aW9uIGFjdHVlbGxlLCB2aXNpdGV6OiBodHRwOi8vd3d3LmR5bmFyY2guY29tL3Byb2plY3RzL2Nh bGVuZGFyL1xuIiArCisiRGlzdHJpYnXDqSBzb3VzIGxpY2VuY2UgR05VIExHUEwuICBWb2lyIGh0 dHA6Ly9nbnUub3JnL2xpY2Vuc2VzL2xncGwuaHRtbCBwb3VyIGxlcyBkw6l0YWlscy4iICsgIlxu KGxpY2VuY2UgdHJhZHVpdGUgZW4gZnJhbsOnYWlzOiBodHRwOi8vd3d3LnJvZGFnZS5vcmcvbGdw bC5mci5odG1sKSIgKworIlxuXG4iICsKKyJTw6lsZWN0aW9uIGRlIGxhIGRhdGU6XG4iICsKKyIt IFV0aWxpc2VyIGxlcyBib3V0b25zIFx4YWIsIFx4YmIgcG91ciBzw6lsZWN0aW9ubmVyIGwnYW5u w6llXG4iICsKKyItIFV0aWxpc2VyIGxlcyBib3V0b25zICIgKyBTdHJpbmcuZnJvbUNoYXJDb2Rl KDB4MjAzOSkgKyAiLCAiICsgU3RyaW5nLmZyb21DaGFyQ29kZSgweDIwM2EpICsgIiBwb3VyIHPD qWxlY3Rpb25uZXIgbGUgbW9pc1xuIiArCisiLSBFbiBjb25zZXJ2YW50IHByZXNzw6kgbGUgYm91 dG9uIGRlIGxhIHNvdXJpcyBzdXIgbCd1biBkZSBjZXMgYm91dG9ucywgbGEgc8OpbGVjdGlvbiBk ZXZpZW50IHBsdXMgcmFwaWRlLiI7CitDYWxlbmRhci5fVFRbIkFCT1VUX1RJTUUiXSA9ICJcblxu IiArCisiU8OpbGVjdGlvbiBkZSBsXCdoZXVyZTpcbiIgKworIi0gQ2xpcXVlciBzdXIgbCd1bmUg ZGVzIHBhcnRpZXMgZHUgdGVtcHMgcG91ciBsJ2F1Z21lbnRlclxuIiArCisiLSBvdSBNYWotY2xp YyBwb3VyIGxlIGRpbWludWVyXG4iICsKKyItIG91IGZhaXJlIHVuIGNsaXF1ZXItZMOpcGxhY2Vy IGhvcml6b250YWwgcG91ciB1bmUgbW9kaWZpY2F0aW9uIHBsdXMgcmFwaWRlLiI7CisKK0NhbGVu ZGFyLl9UVFsiUFJFVl9ZRUFSIl0gPSAiQW5uw6llIHByw6ljLiAobWFpbnRlbmlyIHBvdXIgYWZm aWNoZXIgbWVudSkiOworQ2FsZW5kYXIuX1RUWyJQUkVWX01PTlRIIl0gPSAiTW9pcyBwcsOpYy4g KG1haW50ZW5pciBwb3VyIGFmZmljaGVyIG1lbnUpIjsKK0NhbGVuZGFyLl9UVFsiR09fVE9EQVki XSA9ICJBdHRlaW5kcmUgbGEgZGF0ZSBkdSBqb3VyIjsKK0NhbGVuZGFyLl9UVFsiTkVYVF9NT05U SCJdID0gIk1vaXMgc3Vpdi4gKG1haW50ZW5pciBwb3VyIGFmZmljaGVyIG1lbnUpIjsKK0NhbGVu ZGFyLl9UVFsiTkVYVF9ZRUFSIl0gPSAiQW5uw6llIHN1aXYuIChtYWludGVuaXIgcG91ciBhZmZp Y2hlciBtZW51KSI7CitDYWxlbmRhci5fVFRbIlNFTF9EQVRFIl0gPSAiU8OpbGVjdGlvbm5lciB1 bmUgZGF0ZSI7CitDYWxlbmRhci5fVFRbIkRSQUdfVE9fTU9WRSJdID0gIkdsaXNzZXIgcG91ciBk w6lwbGFjZXIiOworQ2FsZW5kYXIuX1RUWyJQQVJUX1RPREFZIl0gPSAiIChhdWpvdXJkJ2h1aSki OworCisvLyB0aGUgZm9sbG93aW5nIGlzIHRvIGluZm9ybSB0aGF0ICIlcyIgaXMgdG8gYmUgdGhl IGZpcnN0IGRheSBvZiB3ZWVrCisvLyAlcyB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIGRheSBu YW1lLgorQ2FsZW5kYXIuX1RUWyJEQVlfRklSU1QiXSA9ICJBZmZpY2hlciAlcyBlbiBwcmVtaWVy IjsKKworLy8gVGhpcyBtYXkgYmUgbG9jYWxlLWRlcGVuZGVudC4gIEl0IHNwZWNpZmllcyB0aGUg d2Vlay1lbmQgZGF5cywgYXMgYW4gYXJyYXkKKy8vIG9mIGNvbW1hLXNlcGFyYXRlZCBudW1iZXJz LiAgVGhlIG51bWJlcnMgYXJlIGZyb20gMCB0byA2OiAwIG1lYW5zIFN1bmRheSwgMQorLy8gbWVh bnMgTW9uZGF5LCBldGMuCitDYWxlbmRhci5fVFRbIldFRUtFTkQiXSA9ICIwLDYiOworCitDYWxl bmRhci5fVFRbIkNMT1NFIl0gPSAiRmVybWVyIjsKK0NhbGVuZGFyLl9UVFsiVE9EQVkiXSA9ICJB dWpvdXJkJ2h1aSI7CitDYWxlbmRhci5fVFRbIlRJTUVfUEFSVCJdID0gIihNYWotKUNsaWMgb3Ug Z2xpc3NlciBwb3VyIGNoYW5nZXIgbGEgdmFsZXVyIjsKKworLy8gZGF0ZSBmb3JtYXRzCitDYWxl bmRhci5fVFRbIkRFRl9EQVRFX0ZPUk1BVCJdID0gIiVkLiVtLiVZIjsKK0NhbGVuZGFyLl9UVFsi VFRfREFURV9GT1JNQVQiXSA9ICIlQSwgJWUgJUIiOworCitDYWxlbmRhci5fVFRbIldLIl0gPSAi c2VtLiI7CitDYWxlbmRhci5fVFRbIlRJTUUiXSA9ICJIZXVyZToiOwpcIE5vIG5ld2xpbmUgYXQg ZW5kIG9mIGZpbGUKSW5kZXg6IGtvaGEtdG1wbC9vcGFjLXRtcGwvcHJvZy9lbi9saWIvY2FsZW5k YXIvY2FsZW5kYXItZnIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga29oYS10bXBsL29wYWMtdG1wbC9wcm9n L2VuL2xpYi9jYWxlbmRhci9jYWxlbmRhci1mci5qcworKysga29oYS10bXBsL29wYWMtdG1wbC9w cm9nL2VuL2xpYi9jYWxlbmRhci9jYWxlbmRhci1mci5qcwpAQCAtMCwwICsxLDEyOSBAQAorLy8g KiogSTE4TgorCisvLyBDYWxlbmRhciBFTiBsYW5ndWFnZQorLy8gQXV0aG9yOiBNaWhhaSBCYXpv biwgPG1paGFpX2Jhem9uQHlhaG9vLmNvbT4KKy8vIEVuY29kaW5nOiBVVEYtOAorLy8gRGlzdHJp YnV0ZWQgdW5kZXIgdGhlIHNhbWUgdGVybXMgYXMgdGhlIGNhbGVuZGFyIGl0c2VsZi4KKworLy8g Rm9yIHRyYW5zbGF0b3JzOiBwbGVhc2UgdXNlIFVURi04IGlmIHBvc3NpYmxlLiAgV2Ugc3Ryb25n bHkgYmVsaWV2ZSB0aGF0CisvLyBVbmljb2RlIGlzIHRoZSBhbnN3ZXIgdG8gYSByZWFsIGludGVy bmF0aW9uYWxpemVkIHdvcmxkLiAgQWxzbyBwbGVhc2UKKy8vIGluY2x1ZGUgeW91ciBjb250YWN0 IGluZm9ybWF0aW9uIGluIHRoZSBoZWFkZXIsIGFzIGNhbiBiZSBzZWVuIGFib3ZlLgorCisvLyBU cmFuc2xhdG9yOiBBbmRyw6kgTGllY2h0aSwgPGRldmVsb3BlckBzeXNjby5jaD4gKDIwMDYtMDEt MDQpIGZyb20gc2NyYXRjaCBmb3IgdmVyc2lvbiAxLngKKworLy8gZnVsbCBkYXkgbmFtZXMKK0Nh bGVuZGFyLl9ETiA9IG5ldyBBcnJheQorKCJEaW1hbmNoZSIsCisgIkx1bmRpIiwKKyAiTWFyZGki LAorICJNZXJjcmVkaSIsCisgIkpldWRpIiwKKyAiVmVuZHJlZGkiLAorICJTYW1lZGkiLAorICJE aW1hbmNoZSIpOworCisvLyBQbGVhc2Ugbm90ZSB0aGF0IHRoZSBmb2xsb3dpbmcgYXJyYXkgb2Yg c2hvcnQgZGF5IG5hbWVzIChhbmQgdGhlIHNhbWUgZ29lcworLy8gZm9yIHNob3J0IG1vbnRoIG5h bWVzLCBfU01OKSBpc24ndCBhYnNvbHV0ZWx5IG5lY2Vzc2FyeS4gIFdlIGdpdmUgaXQgaGVyZQor Ly8gZm9yIGV4ZW1wbGlmaWNhdGlvbiBvbiBob3cgb25lIGNhbiBjdXN0b21pemUgdGhlIHNob3J0 IGRheSBuYW1lcywgYnV0IGlmCisvLyB0aGV5IGFyZSBzaW1wbHkgdGhlIGZpcnN0IE4gbGV0dGVy cyBvZiB0aGUgZnVsbCBuYW1lIHlvdSBjYW4gc2ltcGx5IHNheToKKy8vCisvLyAgIENhbGVuZGFy Ll9TRE5fbGVuID0gTjsgLy8gc2hvcnQgZGF5IG5hbWUgbGVuZ3RoCisvLyAgIENhbGVuZGFyLl9T TU5fbGVuID0gTjsgLy8gc2hvcnQgbW9udGggbmFtZSBsZW5ndGgKKy8vCisvLyBJZiBOID0gMyB0 aGVuIHRoaXMgaXMgbm90IG5lZWRlZCBlaXRoZXIgc2luY2Ugd2UgYXNzdW1lIGEgdmFsdWUgb2Yg MyBpZiBub3QKKy8vIHByZXNlbnQsIHRvIGJlIGNvbXBhdGlibGUgd2l0aCB0cmFuc2xhdGlvbiBm aWxlcyB0aGF0IHdlcmUgd3JpdHRlbiBiZWZvcmUKKy8vIHRoaXMgZmVhdHVyZS4KKworLy8gc2hv cnQgZGF5IG5hbWVzCitDYWxlbmRhci5fU0ROID0gbmV3IEFycmF5CisoIkRpbSIsCisgIkx1biIs CisgIk1hciIsCisgIk1lciIsCisgIkpldSIsCisgIlZlbiIsCisgIlNhbSIsCisgIkRpbSIpOwor CisvLyBGaXJzdCBkYXkgb2YgdGhlIHdlZWsuICIwIiBtZWFucyBkaXNwbGF5IFN1bmRheSBmaXJz dCwgIjEiIG1lYW5zIGRpc3BsYXkKKy8vIE1vbmRheSBmaXJzdCwgZXRjLgorQ2FsZW5kYXIuX0ZE ID0gMTsKKworLy8gZnVsbCBtb250aCBuYW1lcworQ2FsZW5kYXIuX01OID0gbmV3IEFycmF5Ciso IkphbnZpZXIiLAorICJGw6l2cmllciIsCisgIk1hcnMiLAorICJBdnJpbCIsCisgIk1haSIsCisg Ikp1aW4iLAorICJKdWlsbGV0IiwKKyAiQW/Du3QiLAorICJTZXB0ZW1icmUiLAorICJPY3RvYnJl IiwKKyAiTm92ZW1icmUiLAorICJEw6ljZW1icmUiKTsKKworLy8gc2hvcnQgbW9udGggbmFtZXMK K0NhbGVuZGFyLl9TTU4gPSBuZXcgQXJyYXkKKygiSmFuIiwKKyAiRsOpdiIsCisgIk1hciIsCisg IkF2ciIsCisgIk1haSIsCisgIkp1aW4iLAorICJKdWlsIiwKKyAiQW91IiwKKyAiU2VwIiwKKyAi T2N0IiwKKyAiTm92IiwKKyAiRMOpYyIpOworCisvLyB0b29sdGlwcworQ2FsZW5kYXIuX1RUID0g e307CitDYWxlbmRhci5fVFRbIklORk8iXSA9ICLDgCBwcm9wb3MgZHUgY2FsZW5kcmllciI7CisK K0NhbGVuZGFyLl9UVFsiQUJPVVQiXSA9CisiU8OpbGVjdGV1ciBESFRNTCBkZSBkYXRlL2hldXJl XG4iICsKKyIoYykgZHluYXJjaC5jb20gMjAwMi0yMDA1IC8gQXV0aG9yOiBNaWhhaSBCYXpvblxu IiArIC8vIGRvbid0IHRyYW5zbGF0ZSB0aGlzIHRoaXMgOy0pCisiUG91ciBsYSB2ZXJzaW9uIGFj dHVlbGxlLCB2aXNpdGV6OiBodHRwOi8vd3d3LmR5bmFyY2guY29tL3Byb2plY3RzL2NhbGVuZGFy L1xuIiArCisiRGlzdHJpYnXDqSBzb3VzIGxpY2VuY2UgR05VIExHUEwuICBWb2lyIGh0dHA6Ly9n bnUub3JnL2xpY2Vuc2VzL2xncGwuaHRtbCBwb3VyIGxlcyBkw6l0YWlscy4iICsgIlxuKGxpY2Vu Y2UgdHJhZHVpdGUgZW4gZnJhbsOnYWlzOiBodHRwOi8vd3d3LnJvZGFnZS5vcmcvbGdwbC5mci5o dG1sKSIgKworIlxuXG4iICsKKyJTw6lsZWN0aW9uIGRlIGxhIGRhdGU6XG4iICsKKyItIFV0aWxp c2VyIGxlcyBib3V0b25zIFx4YWIsIFx4YmIgcG91ciBzw6lsZWN0aW9ubmVyIGwnYW5uw6llXG4i ICsKKyItIFV0aWxpc2VyIGxlcyBib3V0b25zICIgKyBTdHJpbmcuZnJvbUNoYXJDb2RlKDB4MjAz OSkgKyAiLCAiICsgU3RyaW5nLmZyb21DaGFyQ29kZSgweDIwM2EpICsgIiBwb3VyIHPDqWxlY3Rp b25uZXIgbGUgbW9pc1xuIiArCisiLSBFbiBjb25zZXJ2YW50IHByZXNzw6kgbGUgYm91dG9uIGRl IGxhIHNvdXJpcyBzdXIgbCd1biBkZSBjZXMgYm91dG9ucywgbGEgc8OpbGVjdGlvbiBkZXZpZW50 IHBsdXMgcmFwaWRlLiI7CitDYWxlbmRhci5fVFRbIkFCT1VUX1RJTUUiXSA9ICJcblxuIiArCisi U8OpbGVjdGlvbiBkZSBsXCdoZXVyZTpcbiIgKworIi0gQ2xpcXVlciBzdXIgbCd1bmUgZGVzIHBh cnRpZXMgZHUgdGVtcHMgcG91ciBsJ2F1Z21lbnRlclxuIiArCisiLSBvdSBNYWotY2xpYyBwb3Vy IGxlIGRpbWludWVyXG4iICsKKyItIG91IGZhaXJlIHVuIGNsaXF1ZXItZMOpcGxhY2VyIGhvcml6 b250YWwgcG91ciB1bmUgbW9kaWZpY2F0aW9uIHBsdXMgcmFwaWRlLiI7CisKK0NhbGVuZGFyLl9U VFsiUFJFVl9ZRUFSIl0gPSAiQW5uw6llIHByw6ljLiAobWFpbnRlbmlyIHBvdXIgYWZmaWNoZXIg bWVudSkiOworQ2FsZW5kYXIuX1RUWyJQUkVWX01PTlRIIl0gPSAiTW9pcyBwcsOpYy4gKG1haW50 ZW5pciBwb3VyIGFmZmljaGVyIG1lbnUpIjsKK0NhbGVuZGFyLl9UVFsiR09fVE9EQVkiXSA9ICJB dHRlaW5kcmUgbGEgZGF0ZSBkdSBqb3VyIjsKK0NhbGVuZGFyLl9UVFsiTkVYVF9NT05USCJdID0g Ik1vaXMgc3Vpdi4gKG1haW50ZW5pciBwb3VyIGFmZmljaGVyIG1lbnUpIjsKK0NhbGVuZGFyLl9U VFsiTkVYVF9ZRUFSIl0gPSAiQW5uw6llIHN1aXYuIChtYWludGVuaXIgcG91ciBhZmZpY2hlciBt ZW51KSI7CitDYWxlbmRhci5fVFRbIlNFTF9EQVRFIl0gPSAiU8OpbGVjdGlvbm5lciB1bmUgZGF0 ZSI7CitDYWxlbmRhci5fVFRbIkRSQUdfVE9fTU9WRSJdID0gIkdsaXNzZXIgcG91ciBkw6lwbGFj ZXIiOworQ2FsZW5kYXIuX1RUWyJQQVJUX1RPREFZIl0gPSAiIChhdWpvdXJkJ2h1aSkiOworCisv LyB0aGUgZm9sbG93aW5nIGlzIHRvIGluZm9ybSB0aGF0ICIlcyIgaXMgdG8gYmUgdGhlIGZpcnN0 IGRheSBvZiB3ZWVrCisvLyAlcyB3aWxsIGJlIHJlcGxhY2VkIHdpdGggdGhlIGRheSBuYW1lLgor Q2FsZW5kYXIuX1RUWyJEQVlfRklSU1QiXSA9ICJBZmZpY2hlciAlcyBlbiBwcmVtaWVyIjsKKwor Ly8gVGhpcyBtYXkgYmUgbG9jYWxlLWRlcGVuZGVudC4gIEl0IHNwZWNpZmllcyB0aGUgd2Vlay1l bmQgZGF5cywgYXMgYW4gYXJyYXkKKy8vIG9mIGNvbW1hLXNlcGFyYXRlZCBudW1iZXJzLiAgVGhl IG51bWJlcnMgYXJlIGZyb20gMCB0byA2OiAwIG1lYW5zIFN1bmRheSwgMQorLy8gbWVhbnMgTW9u ZGF5LCBldGMuCitDYWxlbmRhci5fVFRbIldFRUtFTkQiXSA9ICIwLDYiOworCitDYWxlbmRhci5f VFRbIkNMT1NFIl0gPSAiRmVybWVyIjsKK0NhbGVuZGFyLl9UVFsiVE9EQVkiXSA9ICJBdWpvdXJk J2h1aSI7CitDYWxlbmRhci5fVFRbIlRJTUVfUEFSVCJdID0gIihNYWotKUNsaWMgb3UgZ2xpc3Nl ciBwb3VyIGNoYW5nZXIgbGEgdmFsZXVyIjsKKworLy8gZGF0ZSBmb3JtYXRzCitDYWxlbmRhci5f VFRbIkRFRl9EQVRFX0ZPUk1BVCJdID0gIiVkLiVtLiVZIjsKK0NhbGVuZGFyLl9UVFsiVFRfREFU RV9GT1JNQVQiXSA9ICIlQSwgJWUgJUIiOworCitDYWxlbmRhci5fVFRbIldLIl0gPSAic2VtLiI7 CitDYWxlbmRhci5fVFRbIlRJTUUiXSA9ICJIZXVyZToiOwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKSW5kZXg6IGtvaGEtdG1wbC9vcGFjLXRtcGwvcHJvZy9lbi9saWIvY2FsZW5kYXIvY2Fs ZW5kYXItc2V0dXAuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga29oYS10bXBsL29wYWMtdG1wbC9wcm9nL2Vu L2xpYi9jYWxlbmRhci9jYWxlbmRhci1zZXR1cC5qcworKysga29oYS10bXBsL29wYWMtdG1wbC9w cm9nL2VuL2xpYi9jYWxlbmRhci9jYWxlbmRhci1zZXR1cC5qcwpAQCAtNjksNyArNjksNyBAQAog CXBhcmFtX2RlZmF1bHQoInNpbmdsZUNsaWNrIiwgICAgdHJ1ZSk7CiAJcGFyYW1fZGVmYXVsdCgi ZGlzYWJsZUZ1bmMiLCAgICAnZGF0ZVN0YXR1c0hhbmRsZXInKTsKIAlwYXJhbV9kZWZhdWx0KCJk YXRlU3RhdHVzRnVuYyIsIHBhcmFtc1siZGlzYWJsZUZ1bmMiXSk7CS8vIHRha2VzIHByZWNlZGVu Y2UgaWYgYm90aCBhcmUgZGVmaW5lZAotCXBhcmFtX2RlZmF1bHQoImZpcnN0RGF5IiwgICAgICAg MCk7IC8vIGRlZmF1bHRzIHRvICJTdW5kYXkiIGZpcnN0CisJcGFyYW1fZGVmYXVsdCgiZmlyc3RE YXkiLCAgICAgICBudWxsKTsKIAlwYXJhbV9kZWZhdWx0KCJhbGlnbiIsICAgICAgICAgICJCciIp OwogCXBhcmFtX2RlZmF1bHQoInJhbmdlIiwgICAgICAgICAgWzE5MDAsIDI5OTldKTsKIAlwYXJh bV9kZWZhdWx0KCJ3ZWVrTnVtYmVycyIsICAgIHRydWUpOwpJbmRleDoga29oYS10bXBsL29wYWMt dG1wbC9wcm9nL2VuL2xpYi9jYWxlbmRhci9jYWxlbmRhci5qcwo9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrb2hh LXRtcGwvb3BhYy10bXBsL3Byb2cvZW4vbGliL2NhbGVuZGFyL2NhbGVuZGFyLmpzCisrKyBrb2hh LXRtcGwvb3BhYy10bXBsL3Byb2cvZW4vbGliL2NhbGVuZGFyL2NhbGVuZGFyLmpzCkBAIC0yOCw3 ICsyOCw3IEBACiAJdGhpcy50dERhdGVGb3JtYXQgPSBDYWxlbmRhci5fVFRbIlRUX0RBVEVfRk9S TUFUIl07CiAJdGhpcy5pc1BvcHVwID0gdHJ1ZTsKIAl0aGlzLndlZWtOdW1iZXJzID0gdHJ1ZTsK LQl0aGlzLmZpcnN0RGF5T2ZXZWVrID0gZmlyc3REYXlPZldlZWs7IC8vIDAgZm9yIFN1bmRheSwg MSBmb3IgTW9uZGF5LCBldGMuCisJdGhpcy5maXJzdERheU9mV2VlayA9IHR5cGVvZiBmaXJzdERh eU9mV2VlayA9PSAibnVtYmVyIiA/IGZpcnN0RGF5T2ZXZWVrIDogQ2FsZW5kYXIuX0ZEOyAvLyAw IGZvciBTdW5kYXksIDEgZm9yIE1vbmRheSwgZXRjLgogCXRoaXMuc2hvd3NPdGhlck1vbnRocyA9 IGZhbHNlOwogCXRoaXMuZGF0ZVN0ciA9IGRhdGVTdHI7CiAJdGhpcy5hcl9kYXlzID0gbnVsbDsK --===============1968641671062240187==--