From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED autolearn=ham autolearn_force=no version=3.4.2 Received: (qmail 12280 invoked from network); 9 Apr 2020 15:50:36 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with UTF8ESMTPZ; 9 Apr 2020 15:50:36 -0000 Content-Type: multipart/mixed; boundary="===============7501285285044721249==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BWIP=5D_calibre?= To: ml@inbox.vuxu.org From: bra1nwave Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 09 Apr 2020 17:50:36 +0200 List-Id: Message-ID: <20200409155036.Gmjtp44zP7GswvHhGHtNNCq5Djtt1VQWFz7cUMGjUWo@z> GitHub notification mails are now in MIME to allow UTF8. --===============7501285285044721249== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgYnJhMW53YXZlIGFnYWluc3QgbWFz dGVyIG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9i cmExbndhdmUvdm9pZC1wYWNrYWdlcyBjYWxpYnJlCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxp bnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8yMDc5MwoKW1dJUF0gY2FsaWJyZQoKCkEgcGF0Y2ggZmls ZSBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8y MDc5My5wYXRjaCBpcyBhdHRhY2hlZA== --===============7501285285044721249== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-calibre-20793.patch" RnJvbSA4YWJhODRjMWYxMjJmOTUwZTI1NjgxNzFmZGYzYjFkMjU3NWJhM2I3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBicmExbndhdmUgPGJyYTFud2F2ZUBwcm90b25tYWlsLmNvbT4K RGF0ZTogVGh1LCA5IEFwciAyMDIwIDE2OjU3OjUzICswMjAwClN1YmplY3Q6IFtQQVRDSF0gV0lQ CgotLS0KIC4uLmliLXBvcnRlZC10by1weXRob24tMy1mb3ItZmVlZHBhcnNlci5wYXRjaCB8IDU5 MCArKysrKysrKysrKysrKysrKysKIC4uLi9jYWxpYnJlL3BhdGNoZXMvZGlzYWJsZS11bnJhci10 ZXN0LnBhdGNoICB8ICAyNyAtCiBzcmNwa2dzL2NhbGlicmUvdGVtcGxhdGUgICAgICAgICAgICAg ICAgICAgICAgfCAgMzkgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNjEwIGluc2VydGlvbnMoKyksIDQ2 IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2FsaWJyZS9wYXRjaGVz L2FkZC1zZ21sbGliLXBvcnRlZC10by1weXRob24tMy1mb3ItZmVlZHBhcnNlci5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2FsaWJyZS9wYXRjaGVzL2Rpc2FibGUtdW5yYXItdGVz dC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2FsaWJyZS9wYXRjaGVzL2FkZC1zZ21sbGli LXBvcnRlZC10by1weXRob24tMy1mb3ItZmVlZHBhcnNlci5wYXRjaCBiL3NyY3BrZ3MvY2FsaWJy ZS9wYXRjaGVzL2FkZC1zZ21sbGliLXBvcnRlZC10by1weXRob24tMy1mb3ItZmVlZHBhcnNlci5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTIyYTU4MTY5MjIK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2NhbGlicmUvcGF0Y2hlcy9hZGQtc2dtbGxpYi1w b3J0ZWQtdG8tcHl0aG9uLTMtZm9yLWZlZWRwYXJzZXIucGF0Y2gKQEAgLTAsMCArMSw1OTAgQEAK K0Zyb20gMmEwOWE4MzllYjNjMGI4NGQ0ZjVmMGUxOTRiZDNjYjAxY2I1MDA1NyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKK0Zyb206IEtvdmlkIEdveWFsIDxrb3ZpZEBrb3ZpZGdveWFsLm5ldD4K K0RhdGU6IE1vbiwgMTggTm92IDIwMTkgMTg6Mzg6MDYgKzA1MzAKK1N1YmplY3Q6IFtQQVRDSF0g QWRkIHNnbWxsaWIgcG9ydGVkIHRvIHB5dGhvbiAzIGZvciBmZWVkcGFyc2VyCisKKy0tLQorIHNy Yy9zZ21sbGliLnB5IHwgNTc0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgNTc0IGluc2VydGlvbnMoKykKKyBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3NnbWxsaWIucHkKKworZGlmZiAtLWdpdCBhL3NyYy9zZ21sbGliLnB5 IGIvc3JjL3NnbWxsaWIucHkKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAw Li42NDIyYjc2MDNjCistLS0gL2Rldi9udWxsCisrKysgc3JjL3NnbWxsaWIucHkKK0BAIC0wLDAg KzEsNTc0IEBACisrIiIiQSBwYXJzZXIgZm9yIFNHTUwsIHVzaW5nIHRoZSBkZXJpdmVkIGNsYXNz IGFzIGEgc3RhdGljIERURC4iIiIKKysjIE5lZWRlZCBmb3IgZmVlZHBhcnNlciB1bmRlciBweXRo b24gMyB3aGVyZSB0aGlzIG1vZHVsZSBoYXMgYmVlbiByZW1vdmVkCisrCisrIyBYWFggVGhpcyBv bmx5IHN1cHBvcnRzIHRob3NlIFNHTUwgZmVhdHVyZXMgdXNlZCBieSBIVE1MLgorKworKyMgWFhY IFRoZXJlIHNob3VsZCBiZSBhIHdheSB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIFBDREFUQSAocGFy c2VkCisrIyBjaGFyYWN0ZXIgZGF0YSAtLSB0aGUgbm9ybWFsIGNhc2UpLCBSQ0RBVEEgKHJlcGxh Y2VhYmxlIGNoYXJhY3RlcgorKyMgZGF0YSAtLSBvbmx5IGNoYXIgYW5kIGVudGl0eSByZWZlcmVu Y2VzIGFuZCBlbmQgdGFncyBhcmUgc3BlY2lhbCkKKysjIGFuZCBDREFUQSAoY2hhcmFjdGVyIGRh dGEgLS0gb25seSBlbmQgdGFncyBhcmUgc3BlY2lhbCkuICBSQ0RBVEEgaXMKKysjIG5vdCBzdXBw b3J0ZWQgYXQgYWxsLgorKworK2ltcG9ydCBfbWFya3VwYmFzZQorK2ltcG9ydCByZQorKworK19f YWxsX18gPSBbIlNHTUxQYXJzZXIiLCAiU0dNTFBhcnNlRXJyb3IiXQorKworKyMgUmVndWxhciBl eHByZXNzaW9ucyB1c2VkIGZvciBwYXJzaW5nCisrCisraW50ZXJlc3RpbmcgPSByZS5jb21waWxl KCdbJjxdJykKKytpbmNvbXBsZXRlID0gcmUuY29tcGlsZSgKKysgICAgJyYoW2EtekEtWl1bYS16 QS1aMC05XSp8I1swLTldKik/fCcKKysgICAgJzwoW2EtekEtWl1bXjw+XSp8JworKyAgICAnLyhb YS16QS1aXVtePD5dKik/fCcKKysgICAgJyFbXjw+XSopPycKKyspCisrCisrZW50aXR5cmVmID0g cmUuY29tcGlsZSgnJihbYS16QS1aXVstLmEtekEtWjAtOV0qKVteYS16QS1aMC05XScpCisrY2hh cnJlZiA9IHJlLmNvbXBpbGUoJyYjKFswLTldKylbXjAtOV0nKQorKworK3N0YXJ0dGFnb3BlbiA9 IHJlLmNvbXBpbGUoJzxbPmEtekEtWl0nKQorK3Nob3J0dGFnb3BlbiA9IHJlLmNvbXBpbGUoJzxb YS16QS1aXVstLmEtekEtWjAtOV0qLycpCisrc2hvcnR0YWcgPSByZS5jb21waWxlKCc8KFthLXpB LVpdWy0uYS16QS1aMC05XSopLyhbXi9dKikvJykKKytwaWNsb3NlID0gcmUuY29tcGlsZSgnPicp CisrZW5kYnJhY2tldCA9IHJlLmNvbXBpbGUoJ1s8Pl0nKQorK3RhZ2ZpbmQgPSByZS5jb21waWxl KCdbYS16QS1aXVstXy5hLXpBLVowLTldKicpCisrYXR0cmZpbmQgPSByZS5jb21waWxlKAorKyAg ICByJ1xzKihbYS16QS1aX11bLTouYS16QS1aXzAtOV0qKShccyo9XHMqJworKyAgICByJyhcJ1te XCddKlwnfCJbXiJdKiJ8W11bXC1hLXpBLVowLTkuLyw6OysqJT8hJiRcKFwpXyM9flwnIkBdKikp PycKKyspCisrCisrCisrY2xhc3MgU0dNTFBhcnNlRXJyb3IoUnVudGltZUVycm9yKToKKysgICAg IiIiRXhjZXB0aW9uIHJhaXNlZCBmb3IgYWxsIHBhcnNlIGVycm9ycy4iIiIKKysgICAgcGFzcwor KworKworKyMgU0dNTCBwYXJzZXIgYmFzZSBjbGFzcyAtLSBmaW5kIHRhZ3MgYW5kIGNhbGwgaGFu ZGxlciBmdW5jdGlvbnMuCisrIyBVc2FnZTogcCA9IFNHTUxQYXJzZXIoKTsgcC5mZWVkKGRhdGEp OyAuLi47IHAuY2xvc2UoKS4KKysjIFRoZSBkdGQgaXMgZGVmaW5lZCBieSBkZXJpdmluZyBhIGNs YXNzIHdoaWNoIGRlZmluZXMgbWV0aG9kcworKyMgd2l0aCBzcGVjaWFsIG5hbWVzIHRvIGhhbmRs ZSB0YWdzOiBzdGFydF9mb28gYW5kIGVuZF9mb28gdG8gaGFuZGxlCisrIyA8Zm9vPiBhbmQgPC9m b28+LCByZXNwZWN0aXZlbHksIG9yIGRvX2ZvbyB0byBoYW5kbGUgPGZvbz4gYnkgaXRzZWxmLgor KyMgKFRhZ3MgYXJlIGNvbnZlcnRlZCB0byBsb3dlciBjYXNlIGZvciB0aGlzIHB1cnBvc2UuKSAg VGhlIGRhdGEKKysjIGJldHdlZW4gdGFncyBpcyBwYXNzZWQgdG8gdGhlIHBhcnNlciBieSBjYWxs aW5nIHNlbGYuaGFuZGxlX2RhdGEoKQorKyMgd2l0aCBzb21lIGRhdGEgYXMgYXJndW1lbnQgKHRo ZSBkYXRhIG1heSBiZSBzcGxpdCB1cCBpbiBhcmJpdHJhcnkKKysjIGNodW5rcykuICBFbnRpdHkg cmVmZXJlbmNlcyBhcmUgcGFzc2VkIGJ5IGNhbGxpbmcKKysjIHNlbGYuaGFuZGxlX2VudGl0eXJl ZigpIHdpdGggdGhlIGVudGl0eSByZWZlcmVuY2UgYXMgYXJndW1lbnQuCisrCisrCisrY2xhc3Mg U0dNTFBhcnNlcihfbWFya3VwYmFzZS5QYXJzZXJCYXNlKToKKysgICAgIyBEZWZpbml0aW9uIG9m IGVudGl0aWVzIC0tIGRlcml2ZWQgY2xhc3NlcyBtYXkgb3ZlcnJpZGUKKysgICAgZW50aXR5X29y X2NoYXJyZWYgPSByZS5jb21waWxlKAorKyAgICAgICAgJyYoPzonCisrICAgICAgICAnKFthLXpB LVpdWy0uYS16QS1aMC05XSopfCMoWzAtOV0rKScKKysgICAgICAgICcpKDs/KScKKysgICAgKQor KworKyAgICBkZWYgX19pbml0X18oc2VsZiwgdmVyYm9zZT0wKToKKysgICAgICAgICIiIkluaXRp YWxpemUgYW5kIHJlc2V0IHRoaXMgaW5zdGFuY2UuIiIiCisrICAgICAgICBzZWxmLnZlcmJvc2Ug PSB2ZXJib3NlCisrICAgICAgICBzZWxmLnJlc2V0KCkKKysKKysgICAgZGVmIHJlc2V0KHNlbGYp OgorKyAgICAgICAgIiIiUmVzZXQgdGhpcyBpbnN0YW5jZS4gTG9zZXMgYWxsIHVucHJvY2Vzc2Vk IGRhdGEuIiIiCisrICAgICAgICBzZWxmLl9fc3RhcnR0YWdfdGV4dCA9IE5vbmUKKysgICAgICAg IHNlbGYucmF3ZGF0YSA9ICcnCisrICAgICAgICBzZWxmLnN0YWNrID0gW10KKysgICAgICAgIHNl bGYubGFzdHRhZyA9ICc/Pz8nCisrICAgICAgICBzZWxmLm5vbW9yZXRhZ3MgPSAwCisrICAgICAg ICBzZWxmLmxpdGVyYWwgPSAwCisrICAgICAgICBfbWFya3VwYmFzZS5QYXJzZXJCYXNlLnJlc2V0 KHNlbGYpCisrCisrICAgIGRlZiBzZXRub21vcmV0YWdzKHNlbGYpOgorKyAgICAgICAgIiIiRW50 ZXIgbGl0ZXJhbCBtb2RlIChDREFUQSkgdGlsbCBFT0YuCisrCisrICAgICAgICBJbnRlbmRlZCBm b3IgZGVyaXZlZCBjbGFzc2VzIG9ubHkuCisrICAgICAgICAiIiIKKysgICAgICAgIHNlbGYubm9t b3JldGFncyA9IHNlbGYubGl0ZXJhbCA9IDEKKysKKysgICAgZGVmIHNldGxpdGVyYWwoc2VsZiwg KmFyZ3MpOgorKyAgICAgICAgIiIiRW50ZXIgbGl0ZXJhbCBtb2RlIChDREFUQSkuCisrCisrICAg ICAgICBJbnRlbmRlZCBmb3IgZGVyaXZlZCBjbGFzc2VzIG9ubHkuCisrICAgICAgICAiIiIKKysg ICAgICAgIHNlbGYubGl0ZXJhbCA9IDEKKysKKysgICAgZGVmIGZlZWQoc2VsZiwgZGF0YSk6Cisr ICAgICAgICAiIiJGZWVkIHNvbWUgZGF0YSB0byB0aGUgcGFyc2VyLgorKworKyAgICAgICAgQ2Fs bCB0aGlzIGFzIG9mdGVuIGFzIHlvdSB3YW50LCB3aXRoIGFzIGxpdHRsZSBvciBhcyBtdWNoIHRl eHQKKysgICAgICAgIGFzIHlvdSB3YW50IChtYXkgaW5jbHVkZSAnXG4nKS4gIChUaGlzIGp1c3Qg c2F2ZXMgdGhlIHRleHQsCisrICAgICAgICBhbGwgdGhlIHByb2Nlc3NpbmcgaXMgZG9uZSBieSBn b2FoZWFkKCkuKQorKyAgICAgICAgIiIiCisrCisrICAgICAgICBzZWxmLnJhd2RhdGEgPSBzZWxm LnJhd2RhdGEgKyBkYXRhCisrICAgICAgICBzZWxmLmdvYWhlYWQoMCkKKysKKysgICAgZGVmIGNs b3NlKHNlbGYpOgorKyAgICAgICAgIiIiSGFuZGxlIHRoZSByZW1haW5pbmcgZGF0YS4iIiIKKysg ICAgICAgIHNlbGYuZ29haGVhZCgxKQorKworKyAgICBkZWYgZXJyb3Ioc2VsZiwgbWVzc2FnZSk6 CisrICAgICAgICByYWlzZSBTR01MUGFyc2VFcnJvcihtZXNzYWdlKQorKworKyAgICAjIEludGVy bmFsIC0tIGhhbmRsZSBkYXRhIGFzIGZhciBhcyByZWFzb25hYmxlLiAgTWF5IGxlYXZlIHN0YXRl CisrICAgICMgYW5kIGRhdGEgdG8gYmUgcHJvY2Vzc2VkIGJ5IGEgc3Vic2VxdWVudCBjYWxsLiAg SWYgJ2VuZCcgaXMKKysgICAgIyB0cnVlLCBmb3JjZSBoYW5kbGluZyBhbGwgZGF0YSBhcyBpZiBm b2xsb3dlZCBieSBFT0YgbWFya2VyLgorKyAgICBkZWYgZ29haGVhZChzZWxmLCBlbmQpOgorKyAg ICAgICAgcmF3ZGF0YSA9IHNlbGYucmF3ZGF0YQorKyAgICAgICAgaSA9IDAKKysgICAgICAgIG4g PSBsZW4ocmF3ZGF0YSkKKysgICAgICAgIHdoaWxlIGkgPCBuOgorKyAgICAgICAgICAgIGlmIHNl bGYubm9tb3JldGFnczoKKysgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVfZGF0YShyYXdkYXRh W2k6bl0pCisrICAgICAgICAgICAgICAgIGkgPSBuCisrICAgICAgICAgICAgICAgIGJyZWFrCisr ICAgICAgICAgICAgbWF0Y2ggPSBpbnRlcmVzdGluZy5zZWFyY2gocmF3ZGF0YSwgaSkKKysgICAg ICAgICAgICBpZiBtYXRjaDoKKysgICAgICAgICAgICAgICAgaiA9IG1hdGNoLnN0YXJ0KCkKKysg ICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICBqID0gbgorKyAgICAgICAgICAgIGlm IGkgPCBqOgorKyAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV9kYXRhKHJhd2RhdGFbaTpqXSkK KysgICAgICAgICAgICBpID0gagorKyAgICAgICAgICAgIGlmIGkgPT0gbjoKKysgICAgICAgICAg ICAgICAgYnJlYWsKKysgICAgICAgICAgICBpZiByYXdkYXRhW2ldID09ICc8JzoKKysgICAgICAg ICAgICAgICAgaWYgc3RhcnR0YWdvcGVuLm1hdGNoKHJhd2RhdGEsIGkpOgorKyAgICAgICAgICAg ICAgICAgICAgaWYgc2VsZi5saXRlcmFsOgorKyAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYu aGFuZGxlX2RhdGEocmF3ZGF0YVtpXSkKKysgICAgICAgICAgICAgICAgICAgICAgICBpID0gaSAr IDEKKysgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZQorKyAgICAgICAgICAgICAgICAg ICAgayA9IHNlbGYucGFyc2Vfc3RhcnR0YWcoaSkKKysgICAgICAgICAgICAgICAgICAgIGlmIGsg PCAwOgorKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrCisrICAgICAgICAgICAgICAgICAg ICBpID0gaworKyAgICAgICAgICAgICAgICAgICAgY29udGludWUKKysgICAgICAgICAgICAgICAg aWYgcmF3ZGF0YS5zdGFydHN3aXRoKCI8LyIsIGkpOgorKyAgICAgICAgICAgICAgICAgICAgayA9 IHNlbGYucGFyc2VfZW5kdGFnKGkpCisrICAgICAgICAgICAgICAgICAgICBpZiBrIDwgMDoKKysg ICAgICAgICAgICAgICAgICAgICAgICBicmVhaworKyAgICAgICAgICAgICAgICAgICAgaSA9IGsK KysgICAgICAgICAgICAgICAgICAgIHNlbGYubGl0ZXJhbCA9IDAKKysgICAgICAgICAgICAgICAg ICAgIGNvbnRpbnVlCisrICAgICAgICAgICAgICAgIGlmIHNlbGYubGl0ZXJhbDoKKysgICAgICAg ICAgICAgICAgICAgIGlmIG4gPiAoaSArIDEpOgorKyAgICAgICAgICAgICAgICAgICAgICAgIHNl bGYuaGFuZGxlX2RhdGEoIjwiKQorKyAgICAgICAgICAgICAgICAgICAgICAgIGkgPSBpICsgMQor KyAgICAgICAgICAgICAgICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAgICAgICAgICAjIGlu Y29tcGxldGUKKysgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworKyAgICAgICAgICAgICAg ICAgICAgY29udGludWUKKysgICAgICAgICAgICAgICAgaWYgcmF3ZGF0YS5zdGFydHN3aXRoKCI8 IS0tIiwgaSk6CisrICAgICAgICAgICAgICAgICAgICAjIFN0cmljdGx5IHNwZWFraW5nLCBhIGNv bW1lbnQgaXMgLS0uKi0tCisrICAgICAgICAgICAgICAgICAgICAjIHdpdGhpbiBhIGRlY2xhcmF0 aW9uIHRhZyA8IS4uLj4uCisrICAgICAgICAgICAgICAgICAgICAjIFRoaXMgc2hvdWxkIGJlIHJl bW92ZWQsCisrICAgICAgICAgICAgICAgICAgICAjIGFuZCBjb21tZW50cyBoYW5kbGVkIG9ubHkg aW4gcGFyc2VfZGVjbGFyYXRpb24uCisrICAgICAgICAgICAgICAgICAgICBrID0gc2VsZi5wYXJz ZV9jb21tZW50KGkpCisrICAgICAgICAgICAgICAgICAgICBpZiBrIDwgMDoKKysgICAgICAgICAg ICAgICAgICAgICAgICBicmVhaworKyAgICAgICAgICAgICAgICAgICAgaSA9IGsKKysgICAgICAg ICAgICAgICAgICAgIGNvbnRpbnVlCisrICAgICAgICAgICAgICAgIGlmIHJhd2RhdGEuc3RhcnRz d2l0aCgiPD8iLCBpKToKKysgICAgICAgICAgICAgICAgICAgIGsgPSBzZWxmLnBhcnNlX3BpKGkp CisrICAgICAgICAgICAgICAgICAgICBpZiBrIDwgMDoKKysgICAgICAgICAgICAgICAgICAgICAg ICBicmVhaworKyAgICAgICAgICAgICAgICAgICAgaSA9IGkgKyBrCisrICAgICAgICAgICAgICAg ICAgICBjb250aW51ZQorKyAgICAgICAgICAgICAgICBpZiByYXdkYXRhLnN0YXJ0c3dpdGgoIjwh IiwgaSk6CisrICAgICAgICAgICAgICAgICAgICAjIFRoaXMgaXMgc29tZSBzb3J0IG9mIGRlY2xh cmF0aW9uOyBpbiAiSFRNTCBhcworKyAgICAgICAgICAgICAgICAgICAgIyBkZXBsb3llZCwiIHRo aXMgc2hvdWxkIG9ubHkgYmUgdGhlIGRvY3VtZW50IHR5cGUKKysgICAgICAgICAgICAgICAgICAg ICMgZGVjbGFyYXRpb24gKCI8IURPQ1RZUEUgaHRtbC4uLj4iKS4KKysgICAgICAgICAgICAgICAg ICAgIGsgPSBzZWxmLnBhcnNlX2RlY2xhcmF0aW9uKGkpCisrICAgICAgICAgICAgICAgICAgICBp ZiBrIDwgMDoKKysgICAgICAgICAgICAgICAgICAgICAgICBicmVhaworKyAgICAgICAgICAgICAg ICAgICAgaSA9IGsKKysgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisrICAgICAgICAgICAg ZWxpZiByYXdkYXRhW2ldID09ICcmJzoKKysgICAgICAgICAgICAgICAgaWYgc2VsZi5saXRlcmFs OgorKyAgICAgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVfZGF0YShyYXdkYXRhW2ldKQorKyAg ICAgICAgICAgICAgICAgICAgaSA9IGkgKyAxCisrICAgICAgICAgICAgICAgICAgICBjb250aW51 ZQorKyAgICAgICAgICAgICAgICBtYXRjaCA9IGNoYXJyZWYubWF0Y2gocmF3ZGF0YSwgaSkKKysg ICAgICAgICAgICAgICAgaWYgbWF0Y2g6CisrICAgICAgICAgICAgICAgICAgICBuYW1lID0gbWF0 Y2guZ3JvdXAoMSkKKysgICAgICAgICAgICAgICAgICAgIHNlbGYuaGFuZGxlX2NoYXJyZWYobmFt ZSkKKysgICAgICAgICAgICAgICAgICAgIGkgPSBtYXRjaC5lbmQoMCkKKysgICAgICAgICAgICAg ICAgICAgIGlmIHJhd2RhdGFbaSAtIDFdICE9ICc7JzoKKysgICAgICAgICAgICAgICAgICAgICAg ICBpID0gaSAtIDEKKysgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisrICAgICAgICAgICAg ICAgIG1hdGNoID0gZW50aXR5cmVmLm1hdGNoKHJhd2RhdGEsIGkpCisrICAgICAgICAgICAgICAg IGlmIG1hdGNoOgorKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG1hdGNoLmdyb3VwKDEpCisr ICAgICAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV9lbnRpdHlyZWYobmFtZSkKKysgICAgICAg ICAgICAgICAgICAgIGkgPSBtYXRjaC5lbmQoMCkKKysgICAgICAgICAgICAgICAgICAgIGlmIHJh d2RhdGFbaSAtIDFdICE9ICc7JzoKKysgICAgICAgICAgICAgICAgICAgICAgICBpID0gaSAtIDEK KysgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlCisrICAgICAgICAgICAgZWxzZToKKysgICAg ICAgICAgICAgICAgc2VsZi5lcnJvcignbmVpdGhlciA8IG5vciAmID8/JykKKysgICAgICAgICAg ICAjIFdlIGdldCBoZXJlIG9ubHkgaWYgaW5jb21wbGV0ZSBtYXRjaGVzIGJ1dAorKyAgICAgICAg ICAgICMgbm90aGluZyBlbHNlCisrICAgICAgICAgICAgbWF0Y2ggPSBpbmNvbXBsZXRlLm1hdGNo KHJhd2RhdGEsIGkpCisrICAgICAgICAgICAgaWYgbm90IG1hdGNoOgorKyAgICAgICAgICAgICAg ICBzZWxmLmhhbmRsZV9kYXRhKHJhd2RhdGFbaV0pCisrICAgICAgICAgICAgICAgIGkgPSBpICsg MQorKyAgICAgICAgICAgICAgICBjb250aW51ZQorKyAgICAgICAgICAgIGogPSBtYXRjaC5lbmQo MCkKKysgICAgICAgICAgICBpZiBqID09IG46CisrICAgICAgICAgICAgICAgIGJyZWFrICAjIFJl YWxseSBpbmNvbXBsZXRlCisrICAgICAgICAgICAgc2VsZi5oYW5kbGVfZGF0YShyYXdkYXRhW2k6 al0pCisrICAgICAgICAgICAgaSA9IGoKKysgICAgICAgICMgZW5kIHdoaWxlCisrICAgICAgICBp ZiBlbmQgYW5kIGkgPCBuOgorKyAgICAgICAgICAgIHNlbGYuaGFuZGxlX2RhdGEocmF3ZGF0YVtp Om5dKQorKyAgICAgICAgICAgIGkgPSBuCisrICAgICAgICBzZWxmLnJhd2RhdGEgPSByYXdkYXRh W2k6XQorKyAgICAgICAgIyBYWFggaWYgZW5kOiBjaGVjayBmb3IgZW1wdHkgc3RhY2sKKysKKysg ICAgIyBFeHRlbnNpb25zIGZvciB0aGUgRE9DVFlQRSBzY2FubmVyOgorKyAgICBfZGVjbF9vdGhl cmNoYXJzID0gJz0nCisrCisrICAgICMgSW50ZXJuYWwgLS0gcGFyc2UgcHJvY2Vzc2luZyBpbnN0 ciwgcmV0dXJuIGxlbmd0aCBvciAtMSBpZiBub3QgdGVybWluYXRlZAorKyAgICBkZWYgcGFyc2Vf cGkoc2VsZiwgaSk6CisrICAgICAgICByYXdkYXRhID0gc2VsZi5yYXdkYXRhCisrICAgICAgICBp ZiByYXdkYXRhW2k6aSArIDJdICE9ICc8Pyc6CisrICAgICAgICAgICAgc2VsZi5lcnJvcigndW5l eHBlY3RlZCBjYWxsIHRvIHBhcnNlX3BpKCknKQorKyAgICAgICAgbWF0Y2ggPSBwaWNsb3NlLnNl YXJjaChyYXdkYXRhLCBpICsgMikKKysgICAgICAgIGlmIG5vdCBtYXRjaDoKKysgICAgICAgICAg ICByZXR1cm4gLTEKKysgICAgICAgIGogPSBtYXRjaC5zdGFydCgwKQorKyAgICAgICAgc2VsZi5o YW5kbGVfcGkocmF3ZGF0YVtpICsgMjpqXSkKKysgICAgICAgIGogPSBtYXRjaC5lbmQoMCkKKysg ICAgICAgIHJldHVybiBqIC0gaQorKworKyAgICBkZWYgZ2V0X3N0YXJ0dGFnX3RleHQoc2VsZik6 CisrICAgICAgICByZXR1cm4gc2VsZi5fX3N0YXJ0dGFnX3RleHQKKysKKysgICAgIyBJbnRlcm5h bCAtLSBoYW5kbGUgc3RhcnR0YWcsIHJldHVybiBsZW5ndGggb3IgLTEgaWYgbm90IHRlcm1pbmF0 ZWQKKysgICAgZGVmIHBhcnNlX3N0YXJ0dGFnKHNlbGYsIGkpOgorKyAgICAgICAgc2VsZi5fX3N0 YXJ0dGFnX3RleHQgPSBOb25lCisrICAgICAgICBzdGFydF9wb3MgPSBpCisrICAgICAgICByYXdk YXRhID0gc2VsZi5yYXdkYXRhCisrICAgICAgICBpZiBzaG9ydHRhZ29wZW4ubWF0Y2gocmF3ZGF0 YSwgaSk6CisrICAgICAgICAgICAgIyBTR01MIHNob3J0aGFuZDogPHRhZy9kYXRhLyA9PSA8dGFn PmRhdGE8L3RhZz4KKysgICAgICAgICAgICAjIFhYWCBDYW4gZGF0YSBjb250YWluICYuLi4gKGVu dGl0eSBvciBjaGFyIHJlZnMpPworKyAgICAgICAgICAgICMgWFhYIENhbiBkYXRhIGNvbnRhaW4g PCBvciA+ICh0YWcgY2hhcmFjdGVycyk/CisrICAgICAgICAgICAgIyBYWFggQ2FuIHRoZXJlIGJl IHdoaXRlc3BhY2UgYmVmb3JlIHRoZSBmaXJzdCAvPworKyAgICAgICAgICAgIG1hdGNoID0gc2hv cnR0YWcubWF0Y2gocmF3ZGF0YSwgaSkKKysgICAgICAgICAgICBpZiBub3QgbWF0Y2g6CisrICAg ICAgICAgICAgICAgIHJldHVybiAtMQorKyAgICAgICAgICAgIHRhZywgZGF0YSA9IG1hdGNoLmdy b3VwKDEsIDIpCisrICAgICAgICAgICAgc2VsZi5fX3N0YXJ0dGFnX3RleHQgPSAnPCVzLycgJSB0 YWcKKysgICAgICAgICAgICB0YWcgPSB0YWcubG93ZXIoKQorKyAgICAgICAgICAgIGsgPSBtYXRj aC5lbmQoMCkKKysgICAgICAgICAgICBzZWxmLmZpbmlzaF9zaG9ydHRhZyh0YWcsIGRhdGEpCisr ICAgICAgICAgICAgc2VsZi5fX3N0YXJ0dGFnX3RleHQgPSByYXdkYXRhW3N0YXJ0X3BvczptYXRj aC5lbmQoMSkgKyAxXQorKyAgICAgICAgICAgIHJldHVybiBrCisrICAgICAgICAjIFhYWCBUaGUg Zm9sbG93aW5nIHNob3VsZCBza2lwIG1hdGNoaW5nIHF1b3RlcyAoJyBvciAiKQorKyAgICAgICAg IyBBcyBhIHNob3J0Y3V0IHdheSB0byBleGl0LCB0aGlzIGlzbid0IHNvIGJhZCwgYnV0IHNob3Vs ZG4ndAorKyAgICAgICAgIyBiZSB1c2VkIHRvIGxvY2F0ZSB0aGUgYWN0dWFsIGVuZCBvZiB0aGUg c3RhcnQgdGFnIHNpbmNlIHRoZQorKyAgICAgICAgIyA8IG9yID4gY2hhcmFjdGVycyBtYXkgYmUg ZW1iZWRkZWQgaW4gYW4gYXR0cmlidXRlIHZhbHVlLgorKyAgICAgICAgbWF0Y2ggPSBlbmRicmFj a2V0LnNlYXJjaChyYXdkYXRhLCBpICsgMSkKKysgICAgICAgIGlmIG5vdCBtYXRjaDoKKysgICAg ICAgICAgICByZXR1cm4gLTEKKysgICAgICAgIGogPSBtYXRjaC5zdGFydCgwKQorKyAgICAgICAg IyBOb3cgcGFyc2UgdGhlIGRhdGEgYmV0d2VlbiBpKzEgYW5kIGogaW50byBhIHRhZyBhbmQgYXR0 cnMKKysgICAgICAgIGF0dHJzID0gW10KKysgICAgICAgIGlmIHJhd2RhdGFbaTppICsgMl0gPT0g Jzw+JzoKKysgICAgICAgICAgICAjIFNHTUwgc2hvcnRoYW5kOiA8PiA9PSA8bGFzdCBvcGVuIHRh ZyBzZWVuPgorKyAgICAgICAgICAgIGsgPSBqCisrICAgICAgICAgICAgdGFnID0gc2VsZi5sYXN0 dGFnCisrICAgICAgICBlbHNlOgorKyAgICAgICAgICAgIG1hdGNoID0gdGFnZmluZC5tYXRjaChy YXdkYXRhLCBpICsgMSkKKysgICAgICAgICAgICBpZiBub3QgbWF0Y2g6CisrICAgICAgICAgICAg ICAgIHNlbGYuZXJyb3IoJ3VuZXhwZWN0ZWQgY2FsbCB0byBwYXJzZV9zdGFydHRhZycpCisrICAg ICAgICAgICAgayA9IG1hdGNoLmVuZCgwKQorKyAgICAgICAgICAgIHRhZyA9IHJhd2RhdGFbaSAr IDE6a10ubG93ZXIoKQorKyAgICAgICAgICAgIHNlbGYubGFzdHRhZyA9IHRhZworKyAgICAgICAg d2hpbGUgayA8IGo6CisrICAgICAgICAgICAgbWF0Y2ggPSBhdHRyZmluZC5tYXRjaChyYXdkYXRh LCBrKQorKyAgICAgICAgICAgIGlmIG5vdCBtYXRjaDoKKysgICAgICAgICAgICAgICAgYnJlYWsK KysgICAgICAgICAgICBhdHRybmFtZSwgcmVzdCwgYXR0cnZhbHVlID0gbWF0Y2guZ3JvdXAoMSwg MiwgMykKKysgICAgICAgICAgICBpZiBub3QgcmVzdDoKKysgICAgICAgICAgICAgICAgYXR0cnZh bHVlID0gYXR0cm5hbWUKKysgICAgICAgICAgICBlbHNlOgorKyAgICAgICAgICAgICAgICBpZiAo CisrICAgICAgICAgICAgICAgICAgICBhdHRydmFsdWVbOjFdID09ICInIiA9PSBhdHRydmFsdWVb LTE6XSBvcgorKyAgICAgICAgICAgICAgICAgICAgYXR0cnZhbHVlWzoxXSA9PSAnIicgPT0gYXR0 cnZhbHVlWy0xOl0KKysgICAgICAgICAgICAgICAgKToKKysgICAgICAgICAgICAgICAgICAgICMg c3RyaXAgcXVvdGVzCisrICAgICAgICAgICAgICAgICAgICBhdHRydmFsdWUgPSBhdHRydmFsdWVb MTotMV0KKysgICAgICAgICAgICAgICAgYXR0cnZhbHVlID0gc2VsZi5lbnRpdHlfb3JfY2hhcnJl Zi5zdWIoc2VsZi5fY29udmVydF9yZWYsIGF0dHJ2YWx1ZSkKKysgICAgICAgICAgICBhdHRycy5h cHBlbmQoKGF0dHJuYW1lLmxvd2VyKCksIGF0dHJ2YWx1ZSkpCisrICAgICAgICAgICAgayA9IG1h dGNoLmVuZCgwKQorKyAgICAgICAgaWYgcmF3ZGF0YVtqXSA9PSAnPic6CisrICAgICAgICAgICAg aiA9IGogKyAxCisrICAgICAgICBzZWxmLl9fc3RhcnR0YWdfdGV4dCA9IHJhd2RhdGFbc3RhcnRf cG9zOmpdCisrICAgICAgICBzZWxmLmZpbmlzaF9zdGFydHRhZyh0YWcsIGF0dHJzKQorKyAgICAg ICAgcmV0dXJuIGoKKysKKysgICAgIyBJbnRlcm5hbCAtLSBjb252ZXJ0IGVudGl0eSBvciBjaGFy YWN0ZXIgcmVmZXJlbmNlCisrICAgIGRlZiBfY29udmVydF9yZWYoc2VsZiwgbWF0Y2gpOgorKyAg ICAgICAgaWYgbWF0Y2guZ3JvdXAoMik6CisrICAgICAgICAgICAgcmV0dXJuIHNlbGYuY29udmVy dF9jaGFycmVmKG1hdGNoLmdyb3VwKDIpKSBvciBcCisrICAgICAgICAgICAgICAgICcmIyVzJXMn ICUgbWF0Y2guZ3JvdXBzKClbMTpdCisrICAgICAgICBlbGlmIG1hdGNoLmdyb3VwKDMpOgorKyAg ICAgICAgICAgIHJldHVybiBzZWxmLmNvbnZlcnRfZW50aXR5cmVmKG1hdGNoLmdyb3VwKDEpKSBv ciBcCisrICAgICAgICAgICAgICAgICcmJXM7JyAlIG1hdGNoLmdyb3VwKDEpCisrICAgICAgICBl bHNlOgorKyAgICAgICAgICAgIHJldHVybiAnJiVzJyAlIG1hdGNoLmdyb3VwKDEpCisrCisrICAg ICMgSW50ZXJuYWwgLS0gcGFyc2UgZW5kdGFnCisrICAgIGRlZiBwYXJzZV9lbmR0YWcoc2VsZiwg aSk6CisrICAgICAgICByYXdkYXRhID0gc2VsZi5yYXdkYXRhCisrICAgICAgICBtYXRjaCA9IGVu ZGJyYWNrZXQuc2VhcmNoKHJhd2RhdGEsIGkgKyAxKQorKyAgICAgICAgaWYgbm90IG1hdGNoOgor KyAgICAgICAgICAgIHJldHVybiAtMQorKyAgICAgICAgaiA9IG1hdGNoLnN0YXJ0KDApCisrICAg ICAgICB0YWcgPSByYXdkYXRhW2kgKyAyOmpdLnN0cmlwKCkubG93ZXIoKQorKyAgICAgICAgaWYg cmF3ZGF0YVtqXSA9PSAnPic6CisrICAgICAgICAgICAgaiA9IGogKyAxCisrICAgICAgICBzZWxm LmZpbmlzaF9lbmR0YWcodGFnKQorKyAgICAgICAgcmV0dXJuIGoKKysKKysgICAgIyBJbnRlcm5h bCAtLSBmaW5pc2ggcGFyc2luZyBvZiA8dGFnL2RhdGEvIChzYW1lIGFzIDx0YWc+ZGF0YTwvdGFn PikKKysgICAgZGVmIGZpbmlzaF9zaG9ydHRhZyhzZWxmLCB0YWcsIGRhdGEpOgorKyAgICAgICAg c2VsZi5maW5pc2hfc3RhcnR0YWcodGFnLCBbXSkKKysgICAgICAgIHNlbGYuaGFuZGxlX2RhdGEo ZGF0YSkKKysgICAgICAgIHNlbGYuZmluaXNoX2VuZHRhZyh0YWcpCisrCisrICAgICMgSW50ZXJu YWwgLS0gZmluaXNoIHByb2Nlc3Npbmcgb2Ygc3RhcnQgdGFnCisrICAgICMgUmV0dXJuIC0xIGZv ciB1bmtub3duIHRhZywgMCBmb3Igb3Blbi1vbmx5IHRhZywgMSBmb3IgYmFsYW5jZWQgdGFnCisr ICAgIGRlZiBmaW5pc2hfc3RhcnR0YWcoc2VsZiwgdGFnLCBhdHRycyk6CisrICAgICAgICB0cnk6 CisrICAgICAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihzZWxmLCAnc3RhcnRfJyArIHRhZykKKysg ICAgICAgIGV4Y2VwdCBBdHRyaWJ1dGVFcnJvcjoKKysgICAgICAgICAgICB0cnk6CisrICAgICAg ICAgICAgICAgIG1ldGhvZCA9IGdldGF0dHIoc2VsZiwgJ2RvXycgKyB0YWcpCisrICAgICAgICAg ICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorKyAgICAgICAgICAgICAgICBzZWxmLnVua25vd25f c3RhcnR0YWcodGFnLCBhdHRycykKKysgICAgICAgICAgICAgICAgcmV0dXJuIC0xCisrICAgICAg ICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAgc2VsZi5oYW5kbGVfc3RhcnR0YWcodGFnLCBt ZXRob2QsIGF0dHJzKQorKyAgICAgICAgICAgICAgICByZXR1cm4gMAorKyAgICAgICAgZWxzZToK KysgICAgICAgICAgICBzZWxmLnN0YWNrLmFwcGVuZCh0YWcpCisrICAgICAgICAgICAgc2VsZi5o YW5kbGVfc3RhcnR0YWcodGFnLCBtZXRob2QsIGF0dHJzKQorKyAgICAgICAgICAgIHJldHVybiAx CisrCisrICAgICMgSW50ZXJuYWwgLS0gZmluaXNoIHByb2Nlc3Npbmcgb2YgZW5kIHRhZworKyAg ICBkZWYgZmluaXNoX2VuZHRhZyhzZWxmLCB0YWcpOgorKyAgICAgICAgaWYgbm90IHRhZzoKKysg ICAgICAgICAgICBmb3VuZCA9IGxlbihzZWxmLnN0YWNrKSAtIDEKKysgICAgICAgICAgICBpZiBm b3VuZCA8IDA6CisrICAgICAgICAgICAgICAgIHNlbGYudW5rbm93bl9lbmR0YWcodGFnKQorKyAg ICAgICAgICAgICAgICByZXR1cm4KKysgICAgICAgIGVsc2U6CisrICAgICAgICAgICAgaWYgdGFn IG5vdCBpbiBzZWxmLnN0YWNrOgorKyAgICAgICAgICAgICAgICB0cnk6CisrICAgICAgICAgICAg ICAgICAgICBtZXRob2QgPSBnZXRhdHRyKHNlbGYsICdlbmRfJyArIHRhZykKKysgICAgICAgICAg ICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgorKyAgICAgICAgICAgICAgICAgICAgc2VsZi51 bmtub3duX2VuZHRhZyh0YWcpCisrICAgICAgICAgICAgICAgIGVsc2U6CisrICAgICAgICAgICAg ICAgICAgICBzZWxmLnJlcG9ydF91bmJhbGFuY2VkKHRhZykKKysgICAgICAgICAgICAgICAgcmV0 dXJuCisrICAgICAgICAgICAgZm91bmQgPSBsZW4oc2VsZi5zdGFjaykKKysgICAgICAgICAgICBm b3IgaSBpbiByYW5nZShmb3VuZCk6CisrICAgICAgICAgICAgICAgIGlmIHNlbGYuc3RhY2tbaV0g PT0gdGFnOgorKyAgICAgICAgICAgICAgICAgICAgZm91bmQgPSBpCisrICAgICAgICB3aGlsZSBs ZW4oc2VsZi5zdGFjaykgPiBmb3VuZDoKKysgICAgICAgICAgICB0YWcgPSBzZWxmLnN0YWNrWy0x XQorKyAgICAgICAgICAgIHRyeToKKysgICAgICAgICAgICAgICAgbWV0aG9kID0gZ2V0YXR0cihz ZWxmLCAnZW5kXycgKyB0YWcpCisrICAgICAgICAgICAgZXhjZXB0IEF0dHJpYnV0ZUVycm9yOgor KyAgICAgICAgICAgICAgICBtZXRob2QgPSBOb25lCisrICAgICAgICAgICAgaWYgbWV0aG9kOgor KyAgICAgICAgICAgICAgICBzZWxmLmhhbmRsZV9lbmR0YWcodGFnLCBtZXRob2QpCisrICAgICAg ICAgICAgZWxzZToKKysgICAgICAgICAgICAgICAgc2VsZi51bmtub3duX2VuZHRhZyh0YWcpCisr ICAgICAgICAgICAgZGVsIHNlbGYuc3RhY2tbLTFdCisrCisrICAgICMgT3ZlcnJpZGFibGUgLS0g aGFuZGxlIHN0YXJ0IHRhZworKyAgICBkZWYgaGFuZGxlX3N0YXJ0dGFnKHNlbGYsIHRhZywgbWV0 aG9kLCBhdHRycyk6CisrICAgICAgICBtZXRob2QoYXR0cnMpCisrCisrICAgICMgT3ZlcnJpZGFi bGUgLS0gaGFuZGxlIGVuZCB0YWcKKysgICAgZGVmIGhhbmRsZV9lbmR0YWcoc2VsZiwgdGFnLCBt ZXRob2QpOgorKyAgICAgICAgbWV0aG9kKCkKKysKKysgICAgIyBFeGFtcGxlIC0tIHJlcG9ydCBh biB1bmJhbGFuY2VkIDwvLi4uPiB0YWcuCisrICAgIGRlZiByZXBvcnRfdW5iYWxhbmNlZChzZWxm LCB0YWcpOgorKyAgICAgICAgaWYgc2VsZi52ZXJib3NlOgorKyAgICAgICAgICAgIHByaW50KCcq KiogVW5iYWxhbmNlZCA8LycgKyB0YWcgKyAnPicpCisrICAgICAgICAgICAgcHJpbnQoJyoqKiBT dGFjazonLCBzZWxmLnN0YWNrKQorKworKyAgICBkZWYgY29udmVydF9jaGFycmVmKHNlbGYsIG5h bWUpOgorKyAgICAgICAgIiIiQ29udmVydCBjaGFyYWN0ZXIgcmVmZXJlbmNlLCBtYXkgYmUgb3Zl cnJpZGRlbi4iIiIKKysgICAgICAgIHRyeToKKysgICAgICAgICAgICBuID0gaW50KG5hbWUpCisr ICAgICAgICBleGNlcHQgVmFsdWVFcnJvcjoKKysgICAgICAgICAgICByZXR1cm4KKysgICAgICAg IGlmIG5vdCAwIDw9IG4gPD0gMTI3OgorKyAgICAgICAgICAgIHJldHVybgorKyAgICAgICAgcmV0 dXJuIHNlbGYuY29udmVydF9jb2RlcG9pbnQobikKKysKKysgICAgZGVmIGNvbnZlcnRfY29kZXBv aW50KHNlbGYsIGNvZGVwb2ludCk6CisrICAgICAgICByZXR1cm4gY2hyKGNvZGVwb2ludCkKKysK KysgICAgZGVmIGhhbmRsZV9jaGFycmVmKHNlbGYsIG5hbWUpOgorKyAgICAgICAgIiIiSGFuZGxl IGNoYXJhY3RlciByZWZlcmVuY2UsIG5vIG5lZWQgdG8gb3ZlcnJpZGUuIiIiCisrICAgICAgICBy ZXBsYWNlbWVudCA9IHNlbGYuY29udmVydF9jaGFycmVmKG5hbWUpCisrICAgICAgICBpZiByZXBs YWNlbWVudCBpcyBOb25lOgorKyAgICAgICAgICAgIHNlbGYudW5rbm93bl9jaGFycmVmKG5hbWUp CisrICAgICAgICBlbHNlOgorKyAgICAgICAgICAgIHNlbGYuaGFuZGxlX2RhdGEocmVwbGFjZW1l bnQpCisrCisrICAgICMgRGVmaW5pdGlvbiBvZiBlbnRpdGllcyAtLSBkZXJpdmVkIGNsYXNzZXMg bWF5IG92ZXJyaWRlCisrICAgIGVudGl0eWRlZnMgPSBcCisrICAgICAgICAgICAgeydsdCc6ICc8 JywgJ2d0JzogJz4nLCAnYW1wJzogJyYnLCAncXVvdCc6ICciJywgJ2Fwb3MnOiAnXCcnfQorKwor KyAgICBkZWYgY29udmVydF9lbnRpdHlyZWYoc2VsZiwgbmFtZSk6CisrICAgICAgICAiIiJDb252 ZXJ0IGVudGl0eSByZWZlcmVuY2VzLgorKworKyAgICAgICAgQXMgYW4gYWx0ZXJuYXRpdmUgdG8g b3ZlcnJpZGluZyB0aGlzIG1ldGhvZDsgb25lIGNhbiB0YWlsb3IgdGhlCisrICAgICAgICByZXN1 bHRzIGJ5IHNldHRpbmcgdXAgdGhlIHNlbGYuZW50aXR5ZGVmcyBtYXBwaW5nIGFwcHJvcHJpYXRl bHkuCisrICAgICAgICAiIiIKKysgICAgICAgIHRhYmxlID0gc2VsZi5lbnRpdHlkZWZzCisrICAg ICAgICBpZiBuYW1lIGluIHRhYmxlOgorKyAgICAgICAgICAgIHJldHVybiB0YWJsZVtuYW1lXQor KyAgICAgICAgZWxzZToKKysgICAgICAgICAgICByZXR1cm4KKysKKysgICAgZGVmIGhhbmRsZV9l bnRpdHlyZWYoc2VsZiwgbmFtZSk6CisrICAgICAgICAiIiJIYW5kbGUgZW50aXR5IHJlZmVyZW5j ZXMsIG5vIG5lZWQgdG8gb3ZlcnJpZGUuIiIiCisrICAgICAgICByZXBsYWNlbWVudCA9IHNlbGYu Y29udmVydF9lbnRpdHlyZWYobmFtZSkKKysgICAgICAgIGlmIHJlcGxhY2VtZW50IGlzIE5vbmU6 CisrICAgICAgICAgICAgc2VsZi51bmtub3duX2VudGl0eXJlZihuYW1lKQorKyAgICAgICAgZWxz ZToKKysgICAgICAgICAgICBzZWxmLmhhbmRsZV9kYXRhKHJlcGxhY2VtZW50KQorKworKyAgICAj IEV4YW1wbGUgLS0gaGFuZGxlIGRhdGEsIHNob3VsZCBiZSBvdmVycmlkZGVuCisrICAgIGRlZiBo YW5kbGVfZGF0YShzZWxmLCBkYXRhKToKKysgICAgICAgIHBhc3MKKysKKysgICAgIyBFeGFtcGxl IC0tIGhhbmRsZSBjb21tZW50LCBjb3VsZCBiZSBvdmVycmlkZGVuCisrICAgIGRlZiBoYW5kbGVf Y29tbWVudChzZWxmLCBkYXRhKToKKysgICAgICAgIHBhc3MKKysKKysgICAgIyBFeGFtcGxlIC0t IGhhbmRsZSBkZWNsYXJhdGlvbiwgY291bGQgYmUgb3ZlcnJpZGRlbgorKyAgICBkZWYgaGFuZGxl X2RlY2woc2VsZiwgZGVjbCk6CisrICAgICAgICBwYXNzCisrCisrICAgICMgRXhhbXBsZSAtLSBo YW5kbGUgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiwgY291bGQgYmUgb3ZlcnJpZGRlbgorKyAgICBk ZWYgaGFuZGxlX3BpKHNlbGYsIGRhdGEpOgorKyAgICAgICAgcGFzcworKworKyAgICAjIFRvIGJl IG92ZXJyaWRkZW4gLS0gaGFuZGxlcnMgZm9yIHVua25vd24gb2JqZWN0cworKyAgICBkZWYgdW5r bm93bl9zdGFydHRhZyhzZWxmLCB0YWcsIGF0dHJzKToKKysgICAgICAgIHBhc3MKKysKKysgICAg ZGVmIHVua25vd25fZW5kdGFnKHNlbGYsIHRhZyk6CisrICAgICAgICBwYXNzCisrCisrICAgIGRl ZiB1bmtub3duX2NoYXJyZWYoc2VsZiwgcmVmKToKKysgICAgICAgIHBhc3MKKysKKysgICAgZGVm IHVua25vd25fZW50aXR5cmVmKHNlbGYsIHJlZik6CisrICAgICAgICBwYXNzCisrCisrCisrY2xh c3MgVGVzdFNHTUxQYXJzZXIoU0dNTFBhcnNlcik6CisrCisrICAgIGRlZiBfX2luaXRfXyhzZWxm LCB2ZXJib3NlPTApOgorKyAgICAgICAgc2VsZi50ZXN0ZGF0YSA9ICIiCisrICAgICAgICBTR01M UGFyc2VyLl9faW5pdF9fKHNlbGYsIHZlcmJvc2UpCisrCisrICAgIGRlZiBoYW5kbGVfZGF0YShz ZWxmLCBkYXRhKToKKysgICAgICAgIHNlbGYudGVzdGRhdGEgPSBzZWxmLnRlc3RkYXRhICsgZGF0 YQorKyAgICAgICAgaWYgbGVuKHJlcHIoc2VsZi50ZXN0ZGF0YSkpID49IDcwOgorKyAgICAgICAg ICAgIHNlbGYuZmx1c2goKQorKworKyAgICBkZWYgZmx1c2goc2VsZik6CisrICAgICAgICBkYXRh ID0gc2VsZi50ZXN0ZGF0YQorKyAgICAgICAgaWYgZGF0YToKKysgICAgICAgICAgICBzZWxmLnRl c3RkYXRhID0gIiIKKysgICAgICAgICAgICBwcmludCgnZGF0YTonLCByZXByKGRhdGEpKQorKwor KyAgICBkZWYgaGFuZGxlX2NvbW1lbnQoc2VsZiwgZGF0YSk6CisrICAgICAgICBzZWxmLmZsdXNo KCkKKysgICAgICAgIHIgPSByZXByKGRhdGEpCisrICAgICAgICBpZiBsZW4ocikgPiA2ODoKKysg ICAgICAgICAgICByID0gcls6MzJdICsgJy4uLicgKyByWy0zMjpdCisrICAgICAgICBwcmludCgn Y29tbWVudDonLCByKQorKworKyAgICBkZWYgdW5rbm93bl9zdGFydHRhZyhzZWxmLCB0YWcsIGF0 dHJzKToKKysgICAgICAgIHNlbGYuZmx1c2goKQorKyAgICAgICAgaWYgbm90IGF0dHJzOgorKyAg ICAgICAgICAgIHByaW50KCdzdGFydCB0YWc6IDwnICsgdGFnICsgJz4nKQorKyAgICAgICAgZWxz ZToKKysgICAgICAgICAgICBwcmludCgnc3RhcnQgdGFnOiA8JyArIHRhZywgZW5kPScgJykKKysg ICAgICAgICAgICBmb3IgbmFtZSwgdmFsdWUgaW4gYXR0cnM6CisrICAgICAgICAgICAgICAgIHBy aW50KG5hbWUgKyAnPScgKyAnIicgKyB2YWx1ZSArICciJywgZW5kPScgJykKKysgICAgICAgICAg ICBwcmludCgnPicpCisrCisrICAgIGRlZiB1bmtub3duX2VuZHRhZyhzZWxmLCB0YWcpOgorKyAg ICAgICAgc2VsZi5mbHVzaCgpCisrICAgICAgICBwcmludCgnZW5kIHRhZzogPC8nICsgdGFnICsg Jz4nKQorKworKyAgICBkZWYgdW5rbm93bl9lbnRpdHlyZWYoc2VsZiwgcmVmKToKKysgICAgICAg IHNlbGYuZmx1c2goKQorKyAgICAgICAgcHJpbnQoJyoqKiB1bmtub3duIGVudGl0eSByZWY6ICYn ICsgcmVmICsgJzsnKQorKworKyAgICBkZWYgdW5rbm93bl9jaGFycmVmKHNlbGYsIHJlZik6Cisr ICAgICAgICBzZWxmLmZsdXNoKCkKKysgICAgICAgIHByaW50KCcqKiogdW5rbm93biBjaGFyIHJl ZjogJiMnICsgcmVmICsgJzsnKQorKworKyAgICBkZWYgdW5rbm93bl9kZWNsKHNlbGYsIGRhdGEp OgorKyAgICAgICAgc2VsZi5mbHVzaCgpCisrICAgICAgICBwcmludCgnKioqIHVua25vd24gZGVj bDogWycgKyBkYXRhICsgJ10nKQorKworKyAgICBkZWYgY2xvc2Uoc2VsZik6CisrICAgICAgICBT R01MUGFyc2VyLmNsb3NlKHNlbGYpCisrICAgICAgICBzZWxmLmZsdXNoKCkKKysKKysKKytkZWYg dGVzdChhcmdzPU5vbmUpOgorKyAgICBpbXBvcnQgc3lzCisrCisrICAgIGlmIGFyZ3MgaXMgTm9u ZToKKysgICAgICAgIGFyZ3MgPSBzeXMuYXJndlsxOl0KKysKKysgICAgaWYgYXJncyBhbmQgYXJn c1swXSA9PSAnLXMnOgorKyAgICAgICAgYXJncyA9IGFyZ3NbMTpdCisrICAgICAgICBrbGFzcyA9 IFNHTUxQYXJzZXIKKysgICAgZWxzZToKKysgICAgICAgIGtsYXNzID0gVGVzdFNHTUxQYXJzZXIK KysKKysgICAgaWYgYXJnczoKKysgICAgICAgIGZpbGUgPSBhcmdzWzBdCisrICAgIGVsc2U6Cisr ICAgICAgICBmaWxlID0gJ3Rlc3QuaHRtbCcKKysKKysgICAgaWYgZmlsZSA9PSAnLSc6CisrICAg ICAgICBmID0gc3lzLnN0ZGluCisrICAgIGVsc2U6CisrICAgICAgICB0cnk6CisrICAgICAgICAg ICAgZiA9IG9wZW4oZmlsZSwgJ3InKQorKyAgICAgICAgZXhjZXB0IElPRXJyb3IgYXMgbXNnOgor KyAgICAgICAgICAgIHByaW50KGZpbGUsICI6IiwgbXNnKQorKyAgICAgICAgICAgIHN5cy5leGl0 KDEpCisrCisrICAgIGRhdGEgPSBmLnJlYWQoKQorKyAgICBpZiBmIGlzIG5vdCBzeXMuc3RkaW46 CisrICAgICAgICBmLmNsb3NlKCkKKysKKysgICAgeCA9IGtsYXNzKCkKKysgICAgZm9yIGMgaW4g ZGF0YToKKysgICAgICAgIHguZmVlZChjKQorKyAgICB4LmNsb3NlKCkKKysKKysKKytpZiBfX25h bWVfXyA9PSAnX19tYWluX18nOgorKyAgICB0ZXN0KCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2Fs aWJyZS9wYXRjaGVzL2Rpc2FibGUtdW5yYXItdGVzdC5wYXRjaCBiL3NyY3BrZ3MvY2FsaWJyZS9w YXRjaGVzL2Rpc2FibGUtdW5yYXItdGVzdC5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggYmNiZTI1MzM1YTMuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2FsaWJyZS9wYXRj aGVzL2Rpc2FibGUtdW5yYXItdGVzdC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAg QEAKLVNvdXJjZTogRGViaWFuCi0KLS0tLQotIHNyYy9jYWxpYnJlL3Rlc3RfYnVpbGQucHkgfCAg ICA1ICsrKysrCi0gMSBmaWxlIGNoYW5nZWQsIDUgaW5zZXJ0aW9ucygrKQotCi0tLS0gc3JjL2Nh bGlicmUvdGVzdF9idWlsZC5weQotKysrIHNyYy9jYWxpYnJlL3Rlc3RfYnVpbGQucHkKLUBAIC0x Nyw2ICsxNywxMCBAQCBmcm9tIHBvbHlnbG90LmJ1aWx0aW5zIGltcG9ydCBpdGVyaXRlbXMsCi0g Ci0gaXNfY2kgPSBvcy5lbnZpcm9uLmdldCgnQ0knLCAnJykubG93ZXIoKSA9PSAndHJ1ZScKLSAK LSt0cnk6Ci0rICAgIGltcG9ydCB1bnJhcmRsbAotK2V4Y2VwdDoKLSsgICAgdW5yYXJkbGwgPSBO b25lCi0gCi0gY2xhc3MgQnVpbGRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAKLUBAIC0yNjUs NiArMjY5LDcgQEAgY2xhc3MgQnVpbGRUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKLSAgICAgICAg IGZyb20gY2FsaWJyZS5ndWkyLndpbl9maWxlX2RpYWxvZ3MgaW1wb3J0IHRlc3QKLSAgICAgICAg IHRlc3QoKQotIAotKyAgICBAdW5pdHRlc3Quc2tpcFVubGVzcyh1bnJhcmRsbCwgJ01vZHVsZSB1 bnJhcmRsbCBpcyBtaXNzaW5nJykKLSAgICAgZGVmIHRlc3RfdW5yYXIoc2VsZik6Ci0gICAgICAg ICBmcm9tIGNhbGlicmUudXRpbHMudW5yYXIgaW1wb3J0IHRlc3RfYmFzaWMKLSAgICAgICAgIHRl c3RfYmFzaWMoKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jYWxpYnJlL3RlbXBsYXRlIGIvc3JjcGtn cy9jYWxpYnJlL3RlbXBsYXRlCmluZGV4IGY5YWUwYTU5MjNiLi5iMDJmYWM3ZGY3NSAxMDA2NDQK LS0tIGEvc3JjcGtncy9jYWxpYnJlL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvY2FsaWJyZS90ZW1w bGF0ZQpAQCAtMSwyNSArMSwyNiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnY2FsaWJyZScKIHBr Z25hbWU9Y2FsaWJyZQogdmVyc2lvbj00LjEzLjAKLXJldmlzaW9uPTMKLWJ1aWxkX3N0eWxlPXB5 dGhvbjItbW9kdWxlCityZXZpc2lvbj00CitidWlsZF9zdHlsZT1weXRob24zLW1vZHVsZQogcHlj b21waWxlX2RpcnM9Ii91c3IvbGliL2NhbGlicmUvIgotaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29u ZmlnIHB5dGhvbi1CZWF1dGlmdWxTb3VwNCBweXRob24tUGlsbG93IHB5dGhvbi1QeVF0NS1zdmcK LSBweXRob24tUHlRdDUtd2ViZW5naW5lIHB5dGhvbi1hcHN3IHB5dGhvbi1jc3MtcGFyc2VyIHB5 dGhvbi1kYXRldXRpbAotIHB5dGhvbi1kZXZlbCBweXRob24taHRtbDUtcGFyc2VyIHB5dGhvbi1t c2dwYWNrIHB5dGhvbi1yZWdleCBxdDUtcW1ha2UKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBweXRob24zLUJlYXV0aWZ1bFNvdXA0IHB5dGhvbjMtUGlsbG93IHB5dGhvbjMtUHlRdDUtc3Zn CisgcHl0aG9uMy1QeVF0NS13ZWJlbmdpbmUgcHl0aG9uMy1hcHN3IHB5dGhvbjMtY3NzLXBhcnNl ciBweXRob24zLWRhdGV1dGlsCisgcHl0aG9uMy1kZXZlbCBweXRob24zLWh0bWw1LXBhcnNlciBw eXRob24zLW1zZ3BhY2sgcHl0aG9uMy1yZWdleCBxdDUtcW1ha2UKICB4ZGctdXRpbHMgcmFweWRz Y3JpcHQtbmciCiBtYWtlZGVwZW5kcz0iZ2xpYi1kZXZlbCBsaWJjaG1saWItZGV2ZWwgbGliaW5w dXQtZGV2ZWwgbGlibWFnaWNrLWRldmVsIGxpYm10cC1kZXZlbAogIGxpYnBvZG9mby1kZXZlbCBs aWJ3bWYtZGV2ZWwgbGlieGtiY29tbW9uLWRldmVsIHB5dGhvbi1QeVF0NS1kZXZlbAogIHF0NS1k ZXZlbCBzcWxpdGUtZGV2ZWwgdHNsaWItZGV2ZWwgaHVuc3BlbGwtZGV2ZWwgaHlwaGVuLWRldmVs IgotZGVwZW5kcz0iZGVza3RvcC1maWxlLXV0aWxzIG9wdGlwbmcgcG9wcGxlci11dGlscyBweXRo b24tQmVhdXRpZnVsU291cDQKLSBweXRob24tTWFya2Rvd24gcHl0aG9uLVBpbGxvdyBweXRob24t UHlRdDUtc3ZnCi0gcHl0aG9uLVB5UXQ1LXdlYmVuZ2luZSBweXRob24tUHlRdDUtd2ViY2hhbm5l bCBweXRob24tUHlnbWVudHMgcHl0aG9uLWFwc3cKLSBweXRob24tY3NzLXBhcnNlciBweXRob24t Y3Nzc2VsZWN0IHB5dGhvbi1kYXRldXRpbCBweXRob24tZGJ1cwotIHB5dGhvbi1kbnNweXRob24g cHl0aG9uLWZlZWRwYXJzZXIgcHl0aG9uLWh0bWw1LXBhcnNlciBweXRob24tbWVjaGFuaXplCi0g cHl0aG9uLW1zZ3BhY2sgcHl0aG9uLW5ldGlmYWNlcyBweXRob24tcHN1dGlsIHB5dGhvbi1yZWdl eCBweXRob24taHRtbDJ0ZXh0Ci0gcXQ1LXdlYmVuZ2luZSIKK2RlcGVuZHM9ImRlc2t0b3AtZmls ZS11dGlscyBvcHRpcG5nIHBvcHBsZXItdXRpbHMgcHl0aG9uMy1CZWF1dGlmdWxTb3VwNAorIHB5 dGhvbjMtTWFya2Rvd24gcHl0aG9uMy1QaWxsb3cgcHl0aG9uMy1QeVF0NS1zdmcKKyBweXRob24z LVB5UXQ1LXdlYmVuZ2luZSBweXRob24zLVB5UXQ1LXdlYmNoYW5uZWwgcHl0aG9uMy1QeWdtZW50 cyBweXRob24zLWFwc3cKKyBweXRob24zLWNzcy1wYXJzZXIgcHl0aG9uMy1jc3NzZWxlY3QgcHl0 aG9uMy1kYXRldXRpbCBweXRob24zLWRidXMKKyBweXRob24zLWRuc3B5dGhvbiBweXRob24zLWZl ZWRwYXJzZXIgcHl0aG9uMy1odG1sNS1wYXJzZXIgcHl0aG9uMy1tZWNoYW5pemUKKyBweXRob24z LW1zZ3BhY2sgcHl0aG9uMy1uZXRpZmFjZXMgcHl0aG9uMy1wc3V0aWwgcHl0aG9uMy1yZWdleCBw eXRob24zLWh0bWwydGV4dAorIHF0NS13ZWJlbmdpbmUgcHl0aG9uMy16ZXJvY29uZiIKK2NoZWNr ZGVwZW5kcz0iJGRlcGVuZHMgbGlianBlZy10dXJiby10b29scyIKIHNob3J0X2Rlc2M9IkVib29r IG1hbmFnZW1lbnQgYXBwbGljYXRpb24iCi1tYWludGFpbmVyPSJicmExbndhdmUgPGJyYTFud2F2 ZUBwcm90b25tYWlsLmNvbT4iCittYWludGFpbmVyPSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51 eC5vcmc+IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vY2FsaWJy ZS1lYm9vay5jb20iCiBjaGFuZ2Vsb2c9Imh0dHBzOi8vcmF3LmdpdGh1YnVzZXJjb250ZW50LmNv bS9rb3ZpZGdveWFsL2NhbGlicmUvbWFzdGVyL0NoYW5nZWxvZy55YW1sIgpAQCAtMzksMjAgKzQw LDIwIEBAIGRvX2NvbmZpZ3VyZSgpIHsKIH0KIAogZG9fYnVpbGQoKSB7Ci0JcHl0aG9uMiBzZXR1 cC5weSBidWlsZAotCXB5dGhvbjIgc2V0dXAucHkgZ3VpCi0JcHl0aG9uMiBzZXR1cC5weSByYXB5 ZHNjcmlwdAorCUNBTElCUkVfUFkzX1BPUlQ9MSBweXRob24zIHNldHVwLnB5IGJ1aWxkCisJQ0FM SUJSRV9QWTNfUE9SVD0xIHB5dGhvbjMgc2V0dXAucHkgZ3VpCisJQ0FMSUJSRV9QWTNfUE9SVD0x IHB5dGhvbjMgc2V0dXAucHkgcmFweWRzY3JpcHQKIH0KIAotIyByZXF1aXJlcyBhbiBYMTEgZW52 aXJvbm1lbnQuLi4KIGRvX2NoZWNrKCkgewotCToKKwlDQUxJQlJFX1BZM19QT1JUPTEgcHl0aG9u MyBzZXR1cC5weSB0ZXN0IFwKKwkJLS1leGNsdWRlLXRlc3QtbmFtZSB1bnJhcgogfQogCiBkb19p bnN0YWxsKCkgewogCXZta2RpciB1c3Ivc2hhcmUvenNoL3NpdGUtZnVuY3Rpb25zCiAKLQlweXRo b24yIHNldHVwLnB5IFwKKwlDQUxJQlJFX1BZM19QT1JUPTEgcHl0aG9uMyBzZXR1cC5weSBcCiAJ CWluc3RhbGwgLS1wcmVmaXg9L3VzciAtLXN0YWdpbmctcm9vdD0ke0RFU1RESVJ9L3VzcgogCiAJ Zm9yIG0gaW4gbWFuLXBhZ2VzL21hbjEvKi4xOyBkbwo= --===============7501285285044721249==--