From mboxrd@z Thu Jan 1 00:00:00 1970 From: Federico Beffa Subject: [PATCH 1/5] import: Add 'elpa' importer Date: Sun, 21 Jun 2015 10:28:27 +0200 Message-ID: Mime-Version: 1.0 Content-Type: multipart/mixed; boundary=001a113f9aa6fb77c9051902f0bf Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:57213) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z6acB-0006tq-0P for guix-devel@gnu.org; Sun, 21 Jun 2015 04:28:33 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Z6ac8-0008LD-Dg for guix-devel@gnu.org; Sun, 21 Jun 2015 04:28:30 -0400 Received: from mail-ig0-x22a.google.com ([2607:f8b0:4001:c05::22a]:36558) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Z6ac8-0008L0-4n for guix-devel@gnu.org; Sun, 21 Jun 2015 04:28:28 -0400 Received: by igbiq7 with SMTP id iq7so37228072igb.1 for ; Sun, 21 Jun 2015 01:28:27 -0700 (PDT) List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Guix-devel --001a113f9aa6fb77c9051902f0bf Content-Type: text/plain; charset=UTF-8 Hi Guixers, attached a patch to add an ELPA importer. Fede --001a113f9aa6fb77c9051902f0bf Content-Type: text/x-diff; charset=UTF-8; name="0001-import-Add-elpa-importer.patch" Content-Disposition: attachment; filename="0001-import-Add-elpa-importer.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_ib67n5en0 RnJvbSA4Nzk2YjMyYTFmZjhkNTY1YzNlYjk4NzRjZGU2YTRhMTRkMGI0ZjNiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBGZWRlcmljbyBCZWZmYSA8YmVmZmFAZmJlbmdpbmVlcmluZy5j aD4KRGF0ZTogVHVlLCAxNiBKdW4gMjAxNSAxMDo1MDowNiArMDIwMApTdWJqZWN0OiBbUEFUQ0gg MS81XSBpbXBvcnQ6IEFkZCAnZWxwYScgaW1wb3J0ZXIuCgoqIGd1aXgvaW1wb3J0L2VscGEuc2Nt OiBOZXcgZmlsZS4KKiBndWl4L3NjcmlwdHMvaW1wb3J0LnNjbTogQWRkICJlbHBhIiB0byAnaW1w b3J0ZXJzJy4KKiBndWl4L3NjcmlwdHMvaW1wb3J0L2VscGEuc2NtOiBOZXcgZmlsZS4KKiBNYWtl ZmlsZS5hbSAoTU9EVUxFUyk6IEFkZCAnZ3VpeC9pbXBvcnQvZWxwYS5zY20nIGFuZAogICdndWl4 L3NjcmlwdHMvaW1wb3J0L2VscGEuc2NtJy4gKFNDTV9URVNUUyk6IEFkZCAndGVzdHMvZWxwYS5z Y20nLgoqIGRvYy9ndWl4LnRleGkgKEludm9raW5nIGd1aXggaW1wb3J0KTogRG9jdW1lbnQgaXQu CiogdGVzdHMvZWxwYS5zY206IE5ldyBmaWxlLgotLS0KIE1ha2VmaWxlLmFtICAgICAgICAgICAg ICAgICAgfCAgIDMgKwogZG9jL2d1aXgudGV4aSAgICAgICAgICAgICAgICB8ICAyNyArKysrKysK IGd1aXgvaW1wb3J0L2VscGEuc2NtICAgICAgICAgfCAyMTggKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwogZ3VpeC9zY3JpcHRzL2ltcG9ydC5zY20gICAgICB8ICAg MiArLQogZ3VpeC9zY3JpcHRzL2ltcG9ydC9lbHBhLnNjbSB8ICA5NyArKysrKysrKysrKysrKysr KysrCiB0ZXN0cy9lbHBhLnNjbSAgICAgICAgICAgICAgIHwgMTA5ICsrKysrKysrKysrKysrKysr KysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNDU1IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBndWl4L2ltcG9ydC9lbHBhLnNjbQogY3JlYXRlIG1vZGUgMTAw NjQ0IGd1aXgvc2NyaXB0cy9pbXBvcnQvZWxwYS5zY20KIGNyZWF0ZSBtb2RlIDEwMDY0NCB0ZXN0 cy9lbHBhLnNjbQoKZGlmZiAtLWdpdCBhL01ha2VmaWxlLmFtIGIvTWFrZWZpbGUuYW0KaW5kZXgg MmI4NDQ2Ny4uYzAyN2ZiMyAxMDA2NDQKLS0tIGEvTWFrZWZpbGUuYW0KKysrIGIvTWFrZWZpbGUu YW0KQEAgLTk1LDYgKzk1LDcgQEAgTU9EVUxFUyA9CQkJCQlcCiAgIGd1aXgvaW1wb3J0L3NuaXgu c2NtCQkJCVwKICAgZ3VpeC9pbXBvcnQvY2FiYWwuc2NtCQkJCVwKICAgZ3VpeC9pbXBvcnQvaGFj a2FnZS5zY20JCQlcCisgIGd1aXgvaW1wb3J0L2VscGEuc2NtICAgCQkJXAogICBndWl4L3Njcmlw dHMvZG93bmxvYWQuc2NtCQkJXAogICBndWl4L3NjcmlwdHMvYnVpbGQuc2NtCQkJXAogICBndWl4 L3NjcmlwdHMvYXJjaGl2ZS5zY20JCQlcCkBAIC0xMTEsNiArMTEyLDcgQEAgTU9EVUxFUyA9CQkJ CQlcCiAgIGd1aXgvc2NyaXB0cy9pbXBvcnQvZ251LnNjbQkJCVwKICAgZ3VpeC9zY3JpcHRzL2lt cG9ydC9uaXguc2NtCQkJXAogICBndWl4L3NjcmlwdHMvaW1wb3J0L2hhY2thZ2Uuc2NtCQlcCisg IGd1aXgvc2NyaXB0cy9pbXBvcnQvZWxwYS5zY20gIAkJXAogICBndWl4L3NjcmlwdHMvZW52aXJv bm1lbnQuc2NtCQkJXAogICBndWl4L3NjcmlwdHMvcHVibGlzaC5zY20JCQlcCiAgIGd1aXguc2Nt CQkJCQlcCkBAIC0xODIsNiArMTg0LDcgQEAgU0NNX1RFU1RTID0JCQkJCVwKICAgdGVzdHMvcGFj a2FnZXMuc2NtCQkJCVwKICAgdGVzdHMvc25peC5zY20JCQkJXAogICB0ZXN0cy9oYWNrYWdlLnNj bQkJCQlcCisgIHRlc3RzL2VscGEuc2NtCQkJCVwKICAgdGVzdHMvc3RvcmUuc2NtCQkJCVwKICAg dGVzdHMvbW9uYWRzLnNjbQkJCQlcCiAgIHRlc3RzL2dleHAuc2NtCQkJCVwKZGlmZiAtLWdpdCBh L2RvYy9ndWl4LnRleGkgYi9kb2MvZ3VpeC50ZXhpCmluZGV4IDQ2ZGNjYjguLjNjYTEwNWEgMTAw NjQ0Ci0tLSBhL2RvYy9ndWl4LnRleGkKKysrIGIvZG9jL2d1aXgudGV4aQpAQCAtMzc3MCw2ICsz NzcwLDMzIEBAIHBhY2thZ2UgbmFtZSBieSBhIGh5cGhlbiBhbmQgYSB2ZXJzaW9uIG51bWJlciBh cyBpbiB0aGUgZm9sbG93aW5nIGV4YW1wbGU6CiBAZXhhbXBsZQogZ3VpeCBpbXBvcnQgaGFja2Fn ZSBtdGwtMi4xLjMuMQogQGVuZCBleGFtcGxlCisKK0BpdGVtIGVscGEKK0BjaW5kZXggZWxwYQor SW1wb3J0IG1ldGEtZGF0YSBmcm9tIGFuIEVtYWNzIEVMUEEgcGFja2FnZSByZXBvc2l0b3J5Lgor CitTcGVjaWZpYyBjb21tYW5kLWxpbmUgb3B0aW9ucyBhcmU6CisKK0B0YWJsZSBAY29kZQorQGl0 ZW0gLS1hcmNoaXZlPUB2YXJ7cmVwb30KK0BpdGVteCAtYSBAdmFye3JlcG99CitAdmFye3JlcG99 IGlkZW50aWZpZXMgdGhlIGFyY2hpdmUgcmVwb3NpdG9yeSB0byBmcm9tIHdoaWNoIHRvIHJldHJp dmUKK3RoZSBpbmZvcm1hdGlvbi4gIEN1cnJlbnRseSB0aGUgc3VwcG9ydGVkIHJlcG9zaXRvcmll cyBhbmQgdGhlaXIKK2lkZW50aWZpZXJzIGFyZToKK0BpdGVtaXplIC0KK0BpdGVtCitAdXJlZnsi aHR0cDovL2VscGEuZ251Lm9yZy9wYWNrYWdlcyIsIEdOVX0sIHNlbGVjdGVkIGJ5IHRoZSBAY29k ZXtnbnV9CitpZGVudGlmaWVyLiAgVGhpcyBpcyB0aGUgZGVmYXVsdC4KKworQGl0ZW0KK0B1cmVm eyJodHRwOi8vc3RhYmxlLm1lbHBhLm9yZy9wYWNrYWdlcyIsIE1FTFBBLVN0YWJsZX0sIHNlbGVj dGVkIGJ5IHRoZQorQGNvZGV7bWVscGEtc3RhYmxlfSBpZGVudGlmaWVyLgorCitAaXRlbQorQHVy ZWZ7Imh0dHA6Ly9tZWxwYS5vcmcvcGFja2FnZXMiLCBNRUxQQX0sIHNlbGVjdGVkIGJ5IHRoZSBA Y29kZXttZWxwYX0KK2lkZW50aWZpZXIuCitAZW5kIGl0ZW1pemUKK0BlbmQgdGFibGUKIEBlbmQg dGFibGUKIAogVGhlIHN0cnVjdHVyZSBvZiB0aGUgQGNvbW1hbmR7Z3VpeCBpbXBvcnR9IGNvZGUg aXMgbW9kdWxhci4gIEl0IHdvdWxkIGJlCmRpZmYgLS1naXQgYS9ndWl4L2ltcG9ydC9lbHBhLnNj bSBiL2d1aXgvaW1wb3J0L2VscGEuc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAuLjU4OWZmOGEKLS0tIC9kZXYvbnVsbAorKysgYi9ndWl4L2ltcG9ydC9lbHBhLnNjbQpAQCAt MCwwICsxLDIxOCBAQAorOzs7IEdOVSBHdWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdl bWVudCBmb3IgR05VCis7OzsgQ29weXJpZ2h0IMKpIDIwMTUgRmVkZXJpY28gQmVmZmEgPGJlZmZh QGZiZW5naW5lZXJpbmcuY2g+Cis7OzsKKzs7OyBUaGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3Vp eC4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7OyB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzs7IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yIChhdAor Ozs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OworOzs7IEdOVSBHdWl4IGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsIGJ1dAorOzs7 IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkg b2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlCis7OzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KKzs7OworOzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OzsgYWxvbmcgd2l0aCBHTlUgR3VpeC4gIElmIG5v dCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworKGRlZmluZS1tb2R1bGUg KGd1aXggaW1wb3J0IGVscGEpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgbWF0Y2gpCisgICM6dXNl LW1vZHVsZSAoaWNlLTkgcmRlbGltKQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0xKQorICAj OnVzZS1tb2R1bGUgKHNyZmkgc3JmaS05KQorICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS05IGdu dSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMTEpCisgICM6dXNlLW1vZHVsZSAoKGd1aXgg ZG93bmxvYWQpICM6c2VsZWN0IChkb3dubG9hZC10by1zdG9yZSkpCisgICM6dXNlLW1vZHVsZSAo Z3VpeCBpbXBvcnQgdXRpbHMpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBzdG9yZSkKKyAgIzp1c2Ut bW9kdWxlIChndWl4IGhhc2gpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBiYXNlMzIpCisgICM6dXNl LW1vZHVsZSAoKGd1aXggdXRpbHMpICM6c2VsZWN0IChjYWxsLXdpdGgtdGVtcG9yYXJ5LW91dHB1 dC1maWxlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZW1vaXplKSkK KyAgIzpleHBvcnQgKGVscGEtPmd1aXgtcGFja2FnZSkpCisKKyhkZWZpbmUgKGVscGEtZGVwZW5k ZW5jaWVzLT5uYW1lcyBkZXBzKQorICAiQ29udmVydCB0aGUgbGlzdCBvZiBkZXBlbmRlbmNpZXMg ZnJvbSB0aGUgRUxQQSBmb3JtYXQsIHRvIGEgbGlzdCBvZiBzdHJpbmcKK25hbWVzLiIKKyAgKG1h cCAobGFtYmRhIChkKSAoc3ltYm9sLT5zdHJpbmcgKGZpcnN0IGQpKSkgZGVwcykpCisKKyhkZWZp bmUgKGZpbHRlci1kZXBlbmRlbmNpZXMgbmFtZXMpCisgICJSZW1vdmUgdGhlIHBhY2thZ2UgbmFt ZXMgaW5jbHVkZWQgd2l0aCBFbWFjcyBmcm9tIHRoZSBsaXN0IG9mCitOQU1FUyAoc3RyaW5ncyku IgorICAobGV0ICgoZW1hY3Mtc3RhbmRhcmQtbGlicmFyaWVzCisgICAgICAgICAnKCJlbWFjcyIg ImNsLWxpYiIpKSkKKyAgICAoZmlsdGVyIChsYW1iZGEgKGQpIChub3QgKG1lbWJlciBkIGVtYWNz LXN0YW5kYXJkLWxpYnJhcmllcykpKQorICAgICAgICAgICAgbmFtZXMpKSkKKworKGRlZmluZSAo ZWxwYS1uYW1lLT5wYWNrYWdlLW5hbWUgbmFtZSkKKyAgIkdpdmVuIHRoZSBOQU1FIG9mIGFuIEVt YWNzIHBhY2thZ2UsIHJldHVybiB0aGUgY29ycmVzcG9uZGluZyBHdWl4IG5hbWUuIgorICAobGV0 ICgocGFja2FnZS1uYW1lLXByZWZpeCAiZW1hY3MtIikpCisgICAgKGlmIChzdHJpbmctcHJlZml4 PyBwYWNrYWdlLW5hbWUtcHJlZml4IG5hbWUpCisgICAgICAgIChzdHJpbmctZG93bmNhc2UgbmFt ZSkKKyAgICAgICAgKHN0cmluZy1hcHBlbmQgcGFja2FnZS1uYW1lLXByZWZpeCAoc3RyaW5nLWRv d25jYXNlIG5hbWUpKSkpKQorCisoZGVmaW5lKiAoZWxwYS11cmwgIzpvcHRpb25hbCAocmVwbyAi Z251IikpCisgICJSZXRydW4gdGhlIFVSTCBvZiBSRVBPLiIKKyAgKGxldCAoKGVscGEtYXJjaGl2 ZXMKKyAgICAgICAgICcoKCJnbnUiIC4gImh0dHA6Ly9lbHBhLmdudS5vcmcvcGFja2FnZXMiKQor ICAgICAgICAgICAoIm1lbHBhLXN0YWJsZSIgLiAiaHR0cDovL3N0YWJsZS5tZWxwYS5vcmcvcGFj a2FnZXMiKQorICAgICAgICAgICAoIm1lbHBhIiAuICJodHRwOi8vbWVscGEub3JnL3BhY2thZ2Vz IikpKSkKKyAgICAoYXNzb2MtcmVmIGVscGEtYXJjaGl2ZXMgcmVwbykpKQorCisoZGVmaW5lKiAo ZWxwYS1mZXRjaC1hcmNoaXZlICM6b3B0aW9uYWwgKHJlcG8gImdudSIpKQorICAiUmV0cml2ZSB0 aGUgYXJjaGl2ZSB3aXRoIHRoZSBsaXN0IG9mIHBhY2thZ2VzIGF2YWlsYWJsZSBmcm9tIFJFUE8u IgorICAobGV0ICgodXJsIChzdHJpbmctYXBwZW5kIChlbHBhLXVybCByZXBvKSAiL2FyY2hpdmUt Y29udGVudHMiKSkpCisgICAgKGZldGNoLWFuZC1jYWxsLXdpdGgtaW5wdXQtZmlsZSB1cmwgcmVh ZCkpKQorCis7OyBGZXRjaCBVUkwsIHN0b3JlIHRoZSBjb250ZW50IGluIGEgdGVtcG9yYXJ5IGZp bGUgYW5kIGNhbGwgUFJPQyB3aXRoIHRoYXQKKzs7IGZpbGUuCisoZGVmaW5lIGZldGNoLWFuZC1j YWxsLXdpdGgtaW5wdXQtZmlsZQorICAobWVtb2l6ZQorICAgKGxhbWJkYSogKHVybCBwcm9jICM6 b3B0aW9uYWwgKGVyci1tc2cgInVuYXZhaWxhYmxlIikpCisgICAgIChjYWxsLXdpdGgtdGVtcG9y YXJ5LW91dHB1dC1maWxlCisgICAgICAobGFtYmRhICh0ZW1wIHBvcnQpCisgICAgICAgIChvciAo YW5kICh1cmwtZmV0Y2ggdXJsIHRlbXApCisgICAgICAgICAgICAgICAgIChjYWxsLXdpdGgtaW5w dXQtZmlsZSB0ZW1wIHByb2MpKQorICAgICAgICAgICAgZXJyLW1zZykpKSkpKQorCisoZGVmaW5l KiAoZWxwYS1wYWNrYWdlLWluZm8gbmFtZSAjOm9wdGlvbmFsIChyZXBvICJnbnUiKSkKKyAgIkV4 dHJhY3QgdGhlIGluZm9ybWF0aW9uIGFib3V0IHRoZSBwYWNrYWdlIE5BTUUgZnJvbSB0aGUgcGFj a2FnZSBhcmNoaWV2ZSBvZgorUkVQTy4iCisgIChsZXQqICgoYXJjaGl2ZSAoZWxwYS1mZXRjaC1h cmNoaXZlIHJlcG8pKQorICAgICAgICAgKGluZm8gKGZpbHRlciAobGFtYmRhIChwKSAoZXE/IChm aXJzdCBwKSAoc3RyaW5nLT5zeW1ib2wgbmFtZSkpKQorICAgICAgICAgICAgICAgICAgICAgICAo Y2RyIGFyY2hpdmUpKSkpCisgICAgKGlmIChwYWlyPyBpbmZvKSAoZmlyc3QgaW5mbykgI2YpKSkK KworOzsgT2JqZWN0IHRvIHN0b3JlIGluZm9ybWF0aW9uIGFib3V0IGFuIEVMUEEgcGFja2FnZS4K KyhkZWZpbmUtcmVjb3JkLXR5cGUgPGVscGEtcGFja2FnZT4KKyAgKG1ha2UtZWxwYS1wYWNrYWdl IG5hbWUgdmVyc2lvbiBpbnB1dHMgc3lub3BzaXMga2luZCBob21lLXBhZ2UgZGVzY3JpcHRpb24K KyAgICAgICAgICAgICAgICAgICAgIHNvdXJjZS11cmwpCisgIGVscGEtcGFja2FnZT8KKyAgKG5h bWUgZWxwYS1wYWNrYWdlLW5hbWUpCisgICh2ZXJzaW9uIGVscGEtcGFja2FnZS12ZXJzaW9uKQor ICAoaW5wdXRzIGVscGEtcGFja2FnZS1pbnB1dHMpCisgIChzeW5vcHNpcyBlbHBhLXBhY2thZ2Ut c3lub3BzaXMpCisgIChraW5kIGVscGEtcGFja2FnZS1raW5kKQorICAoaG9tZS1wYWdlIGVscGEt cGFja2FnZS1ob21lLXBhZ2UpCisgIChkZXNjcmlwdGlvbiBlbHBhLXBhY2thZ2UtZGVzY3JpcHRp b24pCisgIChzb3VyY2UtdXJsIGVscGEtcGFja2FnZS1zb3VyY2UtdXJsKSkKKworKHNldC1yZWNv cmQtdHlwZS1wcmludGVyISA8ZWxwYS1wYWNrYWdlPgorICAgICAgICAgICAgICAgICAgICAgICAg ICAobGFtYmRhIChwYWNrYWdlIHBvcnQpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZv cm1hdCBwb3J0ICIjPGVscGEtcGFja2FnZSB+YS1+YT4iCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIChlbHBhLXBhY2thZ2UtbmFtZSBwYWNrYWdlKQorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAoZWxwYS1wYWNrYWdlLXZlcnNpb24gcGFja2FnZSkp KSkKKworKGRlZmluZSAoZWxwYS12ZXJzaW9uLT5zdHJpbmcgZWxwYS12ZXJzaW9uKQorICAiQ29u dmVydCB0aGUgcGFja2FnZSB2ZXJzaW9uIGFzIHVzZWQgaW4gRW1hY3MgcGFja2FnZSBmaWxlcyBp bnRvIGEgc3RyaW5nLiIKKyAgKGlmIChwYWlyPyBlbHBhLXZlcnNpb24pCisgICAgICAobGV0LXZh bHVlcyAoKChtcyByZXN0KSAobWF0Y2ggZWxwYS12ZXJzaW9uCisgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICgobXMgLiByZXN0KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgKHZhbHVlcyBtcyByZXN0KSkpKSkKKyAgICAgICAgKGZvbGQgKGxhbWJkYSAobiBzKSAoc3Ry aW5nLWFwcGVuZCBzICIuIiAobnVtYmVyLT5zdHJpbmcgbikpKQorICAgICAgICAgICAgICAobnVt YmVyLT5zdHJpbmcgbXMpIHJlc3QpKQorICAgICAgI2YpKQorCisoZGVmaW5lIChsb29rdXAtZXh0 cmEgYWxpc3Qga2V5KQorICAiTG9va3VwIEtFWSBmcm9tIHRoZSBBTElTVCBleHRyYSBwYWNrYWdl IGluZm9ybWF0aW9uLiIKKyAgKGFzc3EtcmVmIGFsaXN0IGtleSkpCisKKyhkZWZpbmUgKHBhY2th Z2UtaG9tZS1wYWdlIGFsaXN0KQorICAiRXh0cmFjdCB0aGUgcGFja2FnZSBob21lLXBhZ2UgZnJv bSBBTElTVC4iCisgIChvciAobG9va3VwLWV4dHJhIGFsaXN0ICc6dXJsKSAidW5zcGVjaWZpZWQi KSkKKworKGRlZmluZSAobmlsLT5lbXB0eSBhbGlzdCkKKyAgIklmIEFMSVNUIGlzIHRoZSBzeW1i b2wgJ25pbCByZXR1cm4gdGhlIGVtcHR5IGxpc3QuICBPdGhlcndpc2UsIHJldHVybiBBTElTVC4i CisgIChpZiAoZXE/IGFsaXN0ICduaWwpCisgICAgICAnKCkKKyAgICAgIGFsaXN0KSkKKworKGRl ZmluZSAocGFja2FnZS1zb3VyY2UtdXJsIGtpbmQgbmFtZSB2ZXJzaW9uIHJlcG8pCisgICJSZXR1 cm4gdGhlIHNvdXJjZSBVUkwgb2YgdGhlIHBhY2thZ2UgZGVzY3JpYmVkIHRoZSB0aGUgc3RyaW5n cyBOQU1FIGFuZAorVkVSU0lPTiBhdCBSRVBPLiAgS0lORCBpcyBlaXRoZXIgdGhlIHN5bWJvbCAn c2luZ2xlIG9yICd0YXIuIgorICAoY2FzZSBraW5kCisgICAgKChzaW5nbGUpIChmdWxsLXVybCBy ZXBvIG5hbWUgIi5lbCIgdmVyc2lvbikpCisgICAgKCh0YXIpIChmdWxsLXVybCByZXBvIG5hbWUg Ii50YXIiIHZlcnNpb24pKQorICAgIChlbHNlCisgICAgICNmKSkpCisKKyhkZWZpbmUqIChmdWxs LXVybCByZXBvIG5hbWUgc3VmZml4ICM6b3B0aW9uYWwgKHZlcnNpb24gI2YpKQorICAiUmV0dXJu IHRoZSBmdWxsIFVSTCBvZiB0aGUgcGFja2FnZSBOQU1FIGF0IFJFUE8gYW5kIHRoZSBTVUZGSVgu ICBNYXliZQoraW5jbHVkZSBWRVJTSU9OLiIKKyAgKGlmIHZlcnNpb24KKyAgICAgIChzdHJpbmct YXBwZW5kIChlbHBhLXVybCByZXBvKSAiLyIgbmFtZSAiLSIgdmVyc2lvbiBzdWZmaXgpCisgICAg ICAoc3RyaW5nLWFwcGVuZCAoZWxwYS11cmwgcmVwbykgIi8iIG5hbWUgc3VmZml4KSkpCisKKyhk ZWZpbmUgKGZldGNoLXBhY2thZ2UtZGVzY3JpcHRpb24ga2luZCBuYW1lIHJlcG8pCisgICJGZXRj aCB0aGUgZGVzY3JpcHRpb24gb2YgcGFja2FnZSBOQU1FIG9mIHR5cGUgS0lORCBmcm9tIFJFUE8u IgorICAobGV0ICgodXJsIChmdWxsLXVybCByZXBvIG5hbWUgIi1yZWFkbWUudHh0IikpKQorICAg IChmZXRjaC1hbmQtY2FsbC13aXRoLWlucHV0LWZpbGUgdXJsIHJlYWQtc3RyaW5nKSkpCisKKyhk ZWZpbmUqIChmZXRjaC1lbHBhLXBhY2thZ2UgbmFtZSAjOm9wdGlvbmFsIChyZXBvICJnbnUiKSkK KyAgIkZldGNoIHBhY2thZ2UgTkFNRSBmcm9tIFJFUE8uIgorICAobGV0ICgocGtnIChlbHBhLXBh Y2thZ2UtaW5mbyBuYW1lIHJlcG8pKSkKKyAgICAobWF0Y2ggcGtnCisgICAgICAoKG5hbWUgdmVy c2lvbiByZXFzIHN5bm9wc2lzIGtpbmQgLiByZXN0KQorICAgICAgIChsZXQqICgobmFtZSAoc3lt Ym9sLT5zdHJpbmcgbmFtZSkpCisgICAgICAgICAgICAgKHZlciAoZWxwYS12ZXJzaW9uLT5zdHJp bmcgdmVyc2lvbikpCisgICAgICAgICAgICAgKHVybCAocGFja2FnZS1zb3VyY2UtdXJsIGtpbmQg bmFtZSB2ZXIgcmVwbykpKQorICAgICAgICAgKG1ha2UtZWxwYS1wYWNrYWdlIG5hbWUgdmVyCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5pbC0+ZW1wdHkgcmVxcykgc3lub3BzaXMga2lu ZAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIChwYWNrYWdlLWhvbWUtcGFnZSAoZmlyc3Qg cmVzdCkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZldGNoLXBhY2thZ2UtZGVzY3Jp cHRpb24ga2luZCBuYW1lIHJlcG8pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXJsKSkp CisgICAgICAoXyAjZikpKSkKKworKGRlZmluZSogKGVscGEtcGFja2FnZS0+c2V4cCBwa2cpCisg ICJSZXR1cm4gdGhlIGBwYWNrYWdlJyBTLWV4cHJlc3Npb24gZm9yIHRoZSBFbWFjcyBwYWNrYWdl IFBLRywgYSByZWNvcmQgb2YKK3R5cGUgJzxlbHBhLXBhY2thZ2U+Jy4iCisgIAorICAoZGVmaW5l IG5hbWUgKGVscGEtcGFja2FnZS1uYW1lIHBrZykpCisgIAorICAoZGVmaW5lIHZlcnNpb24gKGVs cGEtcGFja2FnZS12ZXJzaW9uIHBrZykpCisgIAorICAoZGVmaW5lIHNvdXJjZS11cmwgKGVscGEt cGFja2FnZS1zb3VyY2UtdXJsIHBrZykpCisgIAorICAoZGVmaW5lIGRlcGVuZGVuY2llcworICAg IChsZXQqICgoZGVwcyAoZWxwYS1wYWNrYWdlLWlucHV0cyBwa2cpKQorICAgICAgICAgICAobmFt ZXMgKGZpbHRlci1kZXBlbmRlbmNpZXMgKGVscGEtZGVwZW5kZW5jaWVzLT5uYW1lcyBkZXBzKSkp KQorICAgICAgKG1hcCAobGFtYmRhIChuKQorICAgICAgICAgICAgIChsZXQgKChuZXctbiAoZWxw YS1uYW1lLT5wYWNrYWdlLW5hbWUgbikpKQorICAgICAgICAgICAgICAgKGxpc3QgbmV3LW4gKGxp c3QgJ3VucXVvdGUgKHN0cmluZy0+c3ltYm9sIG5ldy1uKSkpKSkKKyAgICAgICAgICAgbmFtZXMp KSkKKyAgICAgIAorICAoZGVmaW5lIChtYXliZS1pbnB1dHMgaW5wdXQtdHlwZSBpbnB1dHMpCisg ICAgKG1hdGNoIGlucHV0cworICAgICAgKCgpCisgICAgICAgJygpKQorICAgICAgKChpbnB1dHMg Li4uKQorICAgICAgIChsaXN0IChsaXN0IGlucHV0LXR5cGUKKyAgICAgICAgICAgICAgICAgICAo bGlzdCAncXVhc2lxdW90ZSBpbnB1dHMpKSkpKSkKKyAgCisgIChsZXQgKCh0YXJiYWxsICh3aXRo LXN0b3JlIHN0b3JlCisgICAgICAgICAgICAgICAgICAgKGRvd25sb2FkLXRvLXN0b3JlIHN0b3Jl IHNvdXJjZS11cmwpKSkpCisgICAgYChwYWNrYWdlCisgICAgICAgKG5hbWUgLChlbHBhLW5hbWUt PnBhY2thZ2UtbmFtZSBuYW1lKSkKKyAgICAgICAodmVyc2lvbiAsdmVyc2lvbikKKyAgICAgICAo c291cmNlIChvcmlnaW4KKyAgICAgICAgICAgICAgICAgKG1ldGhvZCB1cmwtZmV0Y2gpCisgICAg ICAgICAgICAgICAgICh1cmkgKHN0cmluZy1hcHBlbmQgLEAoZmFjdG9yaXplLXVyaSBzb3VyY2Ut dXJsIHZlcnNpb24pKSkKKyAgICAgICAgICAgICAgICAgKHNoYTI1NgorICAgICAgICAgICAgICAg ICAgKGJhc2UzMgorICAgICAgICAgICAgICAgICAgICwoaWYgdGFyYmFsbAorICAgICAgICAgICAg ICAgICAgICAgICAgKGJ5dGV2ZWN0b3ItPm5peC1iYXNlMzItc3RyaW5nIChmaWxlLXNoYTI1NiB0 YXJiYWxsKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICJmYWlsZWQgdG8gZG93bmxvYWQgcGFj a2FnZSIpKSkpKQorICAgICAgIChidWlsZC1zeXN0ZW0gZW1hY3MtYnVpbGQtc3lzdGVtKQorICAg ICAgICxAKG1heWJlLWlucHV0cyAnaW5wdXRzIGRlcGVuZGVuY2llcykKKyAgICAgICAoaG9tZS1w YWdlICwoZWxwYS1wYWNrYWdlLWhvbWUtcGFnZSBwa2cpKQorICAgICAgIChzeW5vcHNpcyAsKGVs cGEtcGFja2FnZS1zeW5vcHNpcyBwa2cpKQorICAgICAgIChkZXNjcmlwdGlvbiAsKGVscGEtcGFj a2FnZS1kZXNjcmlwdGlvbiBwa2cpKQorICAgICAgIChsaWNlbnNlIGxpY2Vuc2U6Z3BsMyspKSkp CisKKyhkZWZpbmUqIChlbHBhLT5ndWl4LXBhY2thZ2UgbmFtZSAjOm9wdGlvbmFsIChyZXBvICJn bnUiKSkKKyAgIkZldGNoIHRoZSBwYWNrYWdlIE5BTUUgZnJvbSBSRVBPIGFuZCBwcm9kdWNlIGEg R3VpeCBwYWNrYWdlIFMtZXhwcmVzc2lvbi4iCisgIChsZXQgKChwa2cgKGZldGNoLWVscGEtcGFj a2FnZSBuYW1lIHJlcG8pKSkKKyAgICAoYW5kPT4gcGtnIGVscGEtcGFja2FnZS0+c2V4cCkpKQor Cis7OzsgZWxwYS5zY20gZW5kcyBoZXJlCmRpZmYgLS1naXQgYS9ndWl4L3NjcmlwdHMvaW1wb3J0 LnNjbSBiL2d1aXgvc2NyaXB0cy9pbXBvcnQuc2NtCmluZGV4IDQ1Y2UwOTIuLmQwYmRlYzEgMTAw NjQ0Ci0tLSBhL2d1aXgvc2NyaXB0cy9pbXBvcnQuc2NtCisrKyBiL2d1aXgvc2NyaXB0cy9pbXBv cnQuc2NtCkBAIC03Myw3ICs3Myw3IEBAIHJhdGhlciB0aGFuIFxcbi4iCiA7OzsgRW50cnkgcG9p bnQuCiA7OzsKIAotKGRlZmluZSBpbXBvcnRlcnMgJygiZ251IiAibml4IiAicHlwaSIgImNwYW4i ICJoYWNrYWdlIikpCisoZGVmaW5lIGltcG9ydGVycyAnKCJnbnUiICJuaXgiICJweXBpIiAiY3Bh biIgImhhY2thZ2UiICJlbHBhIikpCiAKIChkZWZpbmUgKHJlc29sdmUtaW1wb3J0ZXIgbmFtZSkK ICAgKGxldCAoKG1vZHVsZSAocmVzb2x2ZS1pbnRlcmZhY2UKZGlmZiAtLWdpdCBhL2d1aXgvc2Ny aXB0cy9pbXBvcnQvZWxwYS5zY20gYi9ndWl4L3NjcmlwdHMvaW1wb3J0L2VscGEuc2NtCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjg3NTRmZTIKLS0tIC9kZXYvbnVsbAorKysg Yi9ndWl4L3NjcmlwdHMvaW1wb3J0L2VscGEuc2NtCkBAIC0wLDAgKzEsOTcgQEAKKzs7OyBHTlUg R3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1lbnQgZm9yIEdOVQorOzs7IENvcHly aWdodCDCqSAyMDE1IEZlZGVyaWNvIEJlZmZhIDxiZWZmYUBmYmVuZ2luZWVyaW5nLmNoPgorOzs7 Cis7OzsgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIEd1aXguCis7OzsKKzs7OyBHTlUgR3VpeCBp cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5IGl0 Cis7OzsgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkKKzs7OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIg dmVyc2lvbiAzIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQKKzs7OyB5b3VyIG9wdGlvbikgYW55IGxh dGVyIHZlcnNpb24uCis7OzsKKzs7OyBHTlUgR3VpeCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9w ZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQKKzs7OyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCis7OzsgTUVSQ0hBTlRBQklMSVRZ IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorOzs7IEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCis7OzsKKzs7OyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQorOzs7IGFsb25nIHdpdGggR05VIEd1aXguICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUu b3JnL2xpY2Vuc2VzLz4uCisKKyhkZWZpbmUtbW9kdWxlIChndWl4IHNjcmlwdHMgaW1wb3J0IGVs cGEpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCB1aSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IHV0aWxz KQorICAjOnVzZS1tb2R1bGUgKGd1aXggaW1wb3J0IGVscGEpCisgICM6dXNlLW1vZHVsZSAoZ3Vp eCBzY3JpcHRzIGltcG9ydCkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKKyAgIzp1c2Ut bW9kdWxlIChzcmZpIHNyZmktMTEpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTM3KQorICAj OnVzZS1tb2R1bGUgKGljZS05IG1hdGNoKQorICAjOnVzZS1tb2R1bGUgKGljZS05IGZvcm1hdCkK KyAgIzpleHBvcnQgKGd1aXgtaW1wb3J0LWVscGEpKQorCisMCis7OzsKKzs7OyBDb21tYW5kLWxp bmUgb3B0aW9ucy4KKzs7OworCisoZGVmaW5lICVkZWZhdWx0LW9wdGlvbnMKKyAgJygocmVwbyAu ICJnbnUiKSkpCisKKyhkZWZpbmUgKHNob3ctaGVscCkKKyAgKGRpc3BsYXkgKF8gIlVzYWdlOiBn dWl4IGltcG9ydCBlbHBhIFBBQ0tBR0UtTkFNRQorSW1wb3J0IHRoZSBsYXRlc3QgcGFja2FnZSBu YW1lZCBQQUNLQUdFLU5BTUUgZnJvbSBhbiBFTFBBIHJlcG9zaXRvcnkuXG4iKSkKKyAgKGRpc3Bs YXkgKF8gIgorICAtYSBBUkNISVZFLCAtLWFyY2hpdmU9QVJDSElWRSAgc3BlY2lmeSB0aGUgYXJj aGl2ZSByZXBvc2l0b3J5IikpCisgIChkaXNwbGF5IChfICIKKyAgLWgsIC0taGVscCAgICAgICAg ICAgICAgICAgICAgIGRpc3BsYXkgdGhpcyBoZWxwIGFuZCBleGl0IikpCisgIChkaXNwbGF5IChf ICIKKyAgLVYsIC0tdmVyc2lvbiAgICAgICAgICAgICAgICAgIGRpc3BsYXkgdmVyc2lvbiBpbmZv cm1hdGlvbiBhbmQgZXhpdCIpKQorICAobmV3bGluZSkKKyAgKHNob3ctYnVnLXJlcG9ydC1pbmZv cm1hdGlvbikpCisKKyhkZWZpbmUgJW9wdGlvbnMKKyAgOzsgU3BlY2lmaWNhdGlvbiBvZiB0aGUg Y29tbWFuZC1saW5lIG9wdGlvbnMuCisgIChjb25zKiAob3B0aW9uICcoI1xoICJoZWxwIikgI2Yg I2YKKyAgICAgICAgICAgICAgICAgKGxhbWJkYSBhcmdzCisgICAgICAgICAgICAgICAgICAgKHNo b3ctaGVscCkKKyAgICAgICAgICAgICAgICAgICAoZXhpdCAwKSkpCisgICAgICAgICAob3B0aW9u ICcoI1xWICJ2ZXJzaW9uIikgI2YgI2YKKyAgICAgICAgICAgICAgICAgKGxhbWJkYSBhcmdzCisg ICAgICAgICAgICAgICAgICAgKHNob3ctdmVyc2lvbi1hbmQtZXhpdCAiZ3VpeCBpbXBvcnQgZWxw YSIpKSkKKyAgICAgICAgIChvcHRpb24gJygjXGEgImFyY2hpdmUiKSAjdCAjZgorICAgICAgICAg ICAgICAgICAobGFtYmRhIChvcHQgbmFtZSBhcmcgcmVzdWx0KQorICAgICAgICAgICAgICAgICAg IChhbGlzdC1jb25zICdyZXBvIGFyZyAoYWxpc3QtZGVsZXRlICdyZXBvIHJlc3VsdCkpKSkKKyAg ICAgICAgICVzdGFuZGFyZC1pbXBvcnQtb3B0aW9ucykpCisKKwwKKzs7OworOzs7IEVudHJ5IHBv aW50LgorOzs7CisKKyhkZWZpbmUgKGd1aXgtaW1wb3J0LWVscGEgLiBhcmdzKQorICAoZGVmaW5l IChwYXJzZS1vcHRpb25zKQorICAgIDs7IFJldHVybiB0aGUgYWxpc3Qgb2Ygb3B0aW9uIHZhbHVl cy4KKyAgICAoYXJncy1mb2xkKiBhcmdzICVvcHRpb25zCisgICAgICAgICAgICAgICAgKGxhbWJk YSAob3B0IG5hbWUgYXJnIHJlc3VsdCkKKyAgICAgICAgICAgICAgICAgIChsZWF2ZSAoXyAifkE6 IHVucmVjb2duaXplZCBvcHRpb25+JSIpIG5hbWUpKQorICAgICAgICAgICAgICAgIChsYW1iZGEg KGFyZyByZXN1bHQpCisgICAgICAgICAgICAgICAgICAoYWxpc3QtY29ucyAnYXJndW1lbnQgYXJn IHJlc3VsdCkpCisgICAgICAgICAgICAgICAgJWRlZmF1bHQtb3B0aW9ucykpCisKKyAgKGxldCog KChvcHRzIChwYXJzZS1vcHRpb25zKSkKKyAgICAgICAgIChhcmdzIChmaWx0ZXItbWFwIChtYXRj aC1sYW1iZGEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKCdhcmd1bWVudCAuIHZhbHVl KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAoXyAjZikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAocmV2ZXJzZSBv cHRzKSkpKQorICAgIChtYXRjaCBhcmdzCisgICAgICAoKHBhY2thZ2UtbmFtZSkKKyAgICAgICAo bGV0ICgoc2V4cCAoZWxwYS0+Z3VpeC1wYWNrYWdlIHBhY2thZ2UtbmFtZSAoYXNzb2MtcmVmIG9w dHMgJ3JlcG8pKSkpCisgICAgICAgICAodW5sZXNzIHNleHAKKyAgICAgICAgICAgKGxlYXZlIChf ICJmYWlsZWQgdG8gZG93bmxvYWQgcGFja2FnZSAnfmEnfiUiKSBwYWNrYWdlLW5hbWUpKQorICAg ICAgICAgc2V4cCkpCisgICAgICAoKCkKKyAgICAgICAobGVhdmUgKF8gInRvbyBmZXcgYXJndW1l bnRzfiUiKSkpCisgICAgICAoKG1hbnkgLi4uKQorICAgICAgIChsZWF2ZSAoXyAidG9vIG1hbnkg YXJndW1lbnRzfiUiKSkpKSkpCisKKzs7OyBlbHBhLnNjbSBlbmRzIGhlcmUKZGlmZiAtLWdpdCBh L3Rlc3RzL2VscGEuc2NtIGIvdGVzdHMvZWxwYS5zY20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMC4uNWQyOTE0YgotLS0gL2Rldi9udWxsCisrKyBiL3Rlc3RzL2VscGEuc2NtCkBA IC0wLDAgKzEsMTA5IEBACis7OzsgR05VIEd1aXggLS0tIEZ1bmN0aW9uYWwgcGFja2FnZSBtYW5h Z2VtZW50IGZvciBHTlUKKzs7OyBDb3B5cmlnaHQgwqkgMjAxNSBGZWRlcmljbyBCZWZmYSA8YmVm ZmFAZmJlbmdpbmVlcmluZy5jaD4KKzs7OworOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBH dWl4LgorOzs7Cis7OzsgR05VIEd1aXggaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorOzs7IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OzsgdGhlIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0 Cis7OzsgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorOzs7Cis7OzsgR05VIEd1aXgg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cis7 OzsgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorOzs7IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUKKzs7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorOzs7Cis7OzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKzs7OyBhbG9uZyB3aXRoIEdOVSBHdWl4LiAgSWYg bm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisoZGVmaW5lLW1vZHVs ZSAodGVzdC1lbHBhKQorICAjOnVzZS1tb2R1bGUgKGd1aXggaW1wb3J0IGVscGEpCisgICM6dXNl LW1vZHVsZSAoZ3VpeCB0ZXN0cykKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKKyAgIzp1 c2UtbW9kdWxlIChzcmZpIHNyZmktNjQpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgbWF0Y2gpKQor CisoZGVmaW5lIGVscGEtbW9jay1hcmNoaXZlCisgICcoMQorICAgIChhY2Utd2luZG93IC4KKyAg ICAgICAgICAgICAgICBbKDAgOSAwKQorICAgICAgICAgICAgICAgICAoKGF2eQorICAgICAgICAg ICAgICAgICAgICgwIDIgMCkpKQorICAgICAgICAgICAgICAgICAiUXVpY2tseSBzd2l0Y2ggd2lu ZG93cy4iIHNpbmdsZQorICAgICAgICAgICAgICAgICAoKDp1cmwgLiAiaHR0cHM6Ly9naXRodWIu Y29tL2Fiby1hYm8vYWNlLXdpbmRvdyIpCisgICAgICAgICAgICAgICAgICAoOmtleXdvcmRzICJ3 aW5kb3ciICJsb2NhdGlvbiIpKV0pCisgICAgKGF1Y3RleCAuCisgICAgICAgICAgICBbKDExIDg4 IDYpCisgICAgICAgICAgICAgbmlsICJJbnRlZ3JhdGVkIGVudmlyb25tZW50IGZvciAqVGVYKiIg dGFyCisgICAgICAgICAgICAgKCg6dXJsIC4gImh0dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9h dWN0ZXgvIikpXSkpKQorCisoZGVmaW5lIGF1Y3RleC1yZWFkbWUtbW9jayAiVGhpcyBpcyB0aGUg QVVDVGVYIGRlc2NyaXB0aW9uLiIpCisKKyhkZWZpbmUqIChlbHBhLXBhY2thZ2UtaW5mby1tb2Nr IG5hbWUgIzpvcHRpb25hbCAocmVwbyAiZ251IikpCisgICJTaW11bGF0ZSByZXRyaWV2YWwgb2Yg J2FyY2hpdmUtY29udGVudHMnIGZpbGUgZnJvbSBSRVBPIGFuZCBleHRyYWN0aW9uIG9mCitpbmZv cm1hdGlvbiBhYm91dCBwYWNrYWdlIE5BTUUuIChGdW5jdGlvbiAnZWxwYS1wYWNrYWdlLWluZm8n LikiCisgIChsZXQqICgoYXJjaGl2ZSBlbHBhLW1vY2stYXJjaGl2ZSkKKyAgICAgICAgIChpbmZv IChmaWx0ZXIgKGxhbWJkYSAocCkgKGVxPyAoZmlyc3QgcCkgKHN0cmluZy0+c3ltYm9sIG5hbWUp KSkKKyAgICAgICAgICAgICAgICAgICAgICAgKGNkciBhcmNoaXZlKSkpKQorICAgIChpZiAocGFp cj8gaW5mbykgKGZpcnN0IGluZm8pICNmKSkpCisKKyhkZWZpbmUgZWxwYS12ZXJzaW9uLT5zdHJp bmcKKyAgKEBAIChndWl4IGltcG9ydCBlbHBhKSBlbHBhLXZlcnNpb24tPnN0cmluZykpCisKKyhk ZWZpbmUgcGFja2FnZS1zb3VyY2UtdXJsCisgIChAQCAoZ3VpeCBpbXBvcnQgZWxwYSkgcGFja2Fn ZS1zb3VyY2UtdXJsKSkKKworKGRlZmluZSBuaWwtPmVtcHR5CisgIChAQCAoZ3VpeCBpbXBvcnQg ZWxwYSkgbmlsLT5lbXB0eSkpCisKKyhkZWZpbmUgcGFja2FnZS1ob21lLXBhZ2UKKyAgKEBAIChn dWl4IGltcG9ydCBlbHBhKSBwYWNrYWdlLWhvbWUtcGFnZSkpCisKKyhkZWZpbmUgbWFrZS1lbHBh LXBhY2thZ2UKKyAgKEBAIChndWl4IGltcG9ydCBlbHBhKSBtYWtlLWVscGEtcGFja2FnZSkpCisK Kyh0ZXN0LWJlZ2luICJlbHBhIikKKworKGRlZmluZSAoZXZhbC10ZXN0LXdpdGgtZWxwYSBwa2cp CisgIChtb2NrCisgICA7OyByZXBsYWNlIHRoZSB0d28gZmV0Y2hpbmcgZnVuY3Rpb25zCisgICAo KGd1aXggaW1wb3J0IGVscGEpIGZldGNoLWVscGEtcGFja2FnZQorICAgIChsYW1iZGEqIChuYW1l ICM6b3B0aW9uYWwgKHJlcG8gImdudSIpKQorICAgICAgKGxldCAoKHBrZyAoZWxwYS1wYWNrYWdl LWluZm8tbW9jayBuYW1lIHJlcG8pKSkKKyAgICAgICAgKG1hdGNoIHBrZworICAgICAgICAgICgo bmFtZSB2ZXJzaW9uIHJlcXMgc3lub3BzaXMga2luZCAuIHJlc3QpCisgICAgICAgICAgIChsZXQq ICgobmFtZSAoc3ltYm9sLT5zdHJpbmcgbmFtZSkpCisgICAgICAgICAgICAgICAgICAodmVyIChl bHBhLXZlcnNpb24tPnN0cmluZyB2ZXJzaW9uKSkKKyAgICAgICAgICAgICAgICAgICh1cmwgKHBh Y2thZ2Utc291cmNlLXVybCBraW5kIG5hbWUgdmVyIHJlcG8pKSkKKyAgICAgICAgICAgICAobWFr ZS1lbHBhLXBhY2thZ2UgbmFtZSB2ZXIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg KG5pbC0+ZW1wdHkgcmVxcykgc3lub3BzaXMga2luZAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAocGFja2FnZS1ob21lLXBhZ2UgKGZpcnN0IHJlc3QpKQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhdWN0ZXgtcmVhZG1lLW1vY2sKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgdXJsKSkpCisgICAgICAgICAgKF8gI2YpKSkpKQorICAgKG1hdGNoIChlbHBh LT5ndWl4LXBhY2thZ2UgcGtnKQorICAgICAoKCdwYWNrYWdlCisgICAgICAgICgnbmFtZSAiZW1h Y3MtYXVjdGV4IikKKyAgICAgICAgKCd2ZXJzaW9uICIxMS44OC42IikKKyAgICAgICAgKCdzb3Vy Y2UKKyAgICAgICAgICgnb3JpZ2luCisgICAgICAgICAgICgnbWV0aG9kICd1cmwtZmV0Y2gpCisg ICAgICAgICAgICgndXJpICgnc3RyaW5nLWFwcGVuZAorICAgICAgICAgICAgICAgICAgImh0dHA6 Ly9lbHBhLmdudS5vcmcvcGFja2FnZXMvYXVjdGV4LSIgJ3ZlcnNpb24gIi50YXIiKSkKKyAgICAg ICAgICAgKCdzaGEyNTYgKCdiYXNlMzIgKD8gc3RyaW5nPyBoYXNoKSkpKSkKKyAgICAgICAgKCdi dWlsZC1zeXN0ZW0gJ2VtYWNzLWJ1aWxkLXN5c3RlbSkKKyAgICAgICAgKCdob21lLXBhZ2UgImh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9hdWN0ZXgvIikKKyAgICAgICAgKCdzeW5vcHNpcyAi SW50ZWdyYXRlZCBlbnZpcm9ubWVudCBmb3IgKlRlWCoiKQorICAgICAgICAoJ2Rlc2NyaXB0aW9u ICg/IHN0cmluZz8pKQorICAgICAgICAoJ2xpY2Vuc2UgJ2xpY2Vuc2U6Z3BsMyspKQorICAgICAg I3QpCisgICAgICh4CisgICAgICAocGsgJ2ZhaWwgeCAjZikpKSkpCisKKyh0ZXN0LWFzc2VydCAi ZWxwYS0+Z3VpeC1wYWNrYWdlIHRlc3QgMSIKKyAgKGV2YWwtdGVzdC13aXRoLWVscGEgImF1Y3Rl eCIpKQorCisodGVzdC1lbmQgImVscGEiKQorCisMCisoZXhpdCAoPSAodGVzdC1ydW5uZXItZmFp bC1jb3VudCAodGVzdC1ydW5uZXItY3VycmVudCkpIDApKQotLSAKMi4yLjEKCg== --001a113f9aa6fb77c9051902f0bf--