From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,T_PDS_PRO_TLD autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 1615 invoked from network); 2 Feb 2023 06:55:50 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 2 Feb 2023 06:55:50 -0000 Content-Type: multipart/mixed; boundary="===============0675874206486772005==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_package=3A_phantomjs-2=2E1=2E1?= To: ml@inbox.vuxu.org From: ezag Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Thu, 02 Feb 2023 07:55:49 +0100 List-Id: Message-ID: <20230202065549.sIs2pcfLIvGg4DPVyAkooBmTiXW8Gly-0upjLo14s-Y@z> GitHub notification mails are now in MIME to allow UTF8. --===============0675874206486772005== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgZXphZyBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vZXphZy92 b2lkLXBhY2thZ2VzIHBoYW50b21qcwpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lk LXBhY2thZ2VzL3B1bGwvNDIwMjQKCk5ldyBwYWNrYWdlOiBwaGFudG9tanMtMi4xLjEKVGhpcyBw YWNrYWdlIFtoYXMgYmVlbiByZW1vdmVkIGR1ZSB0byBkZWFkIHVwc3RyZWFtXShodHRwczovL2dp dGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2NvbW1pdC83MDJkNmNiN2YzYTg4MWYz MmU2OWQwMWJhYWJhNTQyMTdhOGMzOGE4KS4NCg0KSG93ZXZlciwgd2l0aCBmZXcgcGF0Y2hlcyBj aGVycnktcGlja2VkIGZyb20gdXBzdHJlYW0gZGV2ZWxvcG1lbnQgdmVyc2lvbiwgaXQgZG9lcyBi dWlsZCBhZ2FpbnN0IGN1cnJlbnQgUXQ1IHZlcnNpb24uDQoNClNpbmNlIHlvdXR1YmUtZGwveXQt ZGxwIHN0aWxsIFtvcHRpb25hbGx5IGRlcGVuZHMgb24gaXRdKGh0dHBzOi8vZ2l0aHViLmNvbS92 b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8xMjI0NCkgYXMgZmFsbGJhY2sgdG8gYXZvaWQg dGhyb3R0bGluZywgaXQgd291bGQgYmUgbmljZSB0byBoYXZlIHRoaXMgcGFja2FnZSBhdmFpbGFi bGUsIGRlc3BpdGUgaXRzIFtzdXNwZW5kZWQgZGV2ZWxvcG1lbnRdKGh0dHBzOi8vZ2l0aHViLmNv bS9hcml5YS9waGFudG9tanMvaXNzdWVzLzE1MzQ0KS4NCg0KPCEtLSBVbmNvbW1lbnQgcmVsZXZh bnQgc2VjdGlvbnMgYW5kIGRlbGV0ZSBvcHRpb25zIHdoaWNoIGFyZSBub3QgYXBwbGljYWJsZSAt LT4NCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBjaGFuZ2VzIGlu IHRoaXMgUFI6ICoqWUVTKioNCg0KPCEtLQ0KIyMjIyBOZXcgcGFja2FnZQ0KLSBUaGlzIG5ldyBw YWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcGFja2FnZSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5H Lm1kI3BhY2thZ2UtcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioNCi0tPg0KDQo8IS0tIE5v dGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3VycywgcGxl YXNlIGFkZCBjaSBza2lwIHRhZyBhcyBkZXNjcmliZWQgaW4NCmh0dHBzOi8vZ2l0aHViLmNvbS92 b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5HLm1kI2NvbnRp bnVvdXMtaW50ZWdyYXRpb24NCmFuZCB0ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUgYnVpbGQgYW5k LCBpZiBzdXBwb3J0ZWQsIGF0IGxlYXN0IG9uZSBjcm9zcyBidWlsZC4NCklnbm9yZSB0aGlzIHNl Y3Rpb24gaWYgdGhpcyBQUiBpcyBub3Qgc2tpcHBpbmcgQ0kuDQotLT4NCg0KIyMjIyBMb2NhbCBi dWlsZCB0ZXN0aW5nDQotIEkgYnVpbHQgdGhpcyBQUiBsb2NhbGx5IGZvciBteSBuYXRpdmUgYXJj aGl0ZWN0dXJlLCB4ODZfNjQNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIHRoZXNlIGFy Y2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1aWxkcyk6DQogIC0gYWFyY2g2 NC1tdXNsIChjcm9zc2J1aWxkKQ0KICAtIGFybXY3bCAoY3Jvc3NidWlsZCkNCiAgLSBhcm12Nmwt bXVzbCAoY3Jvc3NidWlsZCkNCg0KCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvNDIwMjQucGF0Y2ggaXMgYXR0YWNoZWQ= --===============0675874206486772005== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-phantomjs-42024.patch" RnJvbSBkZjhlMTM0MzBkMTJmYWJkZDkyMTc5MzQyZjNiMDBhZWI2ZWNmOTA3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFdWdlbiBaYWdvcm9kbml5IDx6YWdAZGlzcm9vdC5vcmc+CkRh dGU6IFRodSwgMiBGZWIgMjAyMyAwNzo0MTo1OCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIE5ldyBw YWNrYWdlOiBwaGFudG9tanMtMi4xLjEKCi0tLQogLi4ubG93LXVzZXItdG8tY2hhbmdlLURQSS1v Zi1hLXdlYi1wYWdlLnBhdGNoIHwgIDI2MCArKysrKwogLi4uLUFkZC1zdXBwb3J0LXRvLXJlbmRl ci1wZGYtdG8tYmFzZTY0LnBhdGNoIHwgIDI3OSArKysrKwogLi4ubWUtQVBJLWZvci10aGUtbGF0 ZXN0LVF0V2ViS2l0LTE1MzQxLnBhdGNoIHwgIDE5NSArKysrCiAuLi4vMDAwNC1Vc2UtQ01ha2Ut YnVpbGQtc3lzdGVtLTE1Mzk3LnBhdGNoICAgfCAxMDA4ICsrKysrKysrKysrKysrKysrCiBzcmNw a2dzL3BoYW50b21qcy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDIyICsKIDUgZmls ZXMgY2hhbmdlZCwgMTc2NCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9waGFudG9tanMvcGF0Y2hlcy8wMDAxLUFsbG93LXVzZXItdG8tY2hhbmdlLURQSS1vZi1hLXdl Yi1wYWdlLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9waGFudG9tanMvcGF0Y2hl cy8wMDAyLUFkZC1zdXBwb3J0LXRvLXJlbmRlci1wZGYtdG8tYmFzZTY0LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9waGFudG9tanMvcGF0Y2hlcy8wMDAzLUFkanVzdC1zb21lLUFQ SS1mb3ItdGhlLWxhdGVzdC1RdFdlYktpdC0xNTM0MS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3MvcGhhbnRvbWpzL3BhdGNoZXMvMDAwNC1Vc2UtQ01ha2UtYnVpbGQtc3lzdGVtLTE1 Mzk3LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9waGFudG9tanMvdGVtcGxhdGUK CmRpZmYgLS1naXQgYS9zcmNwa2dzL3BoYW50b21qcy9wYXRjaGVzLzAwMDEtQWxsb3ctdXNlci10 by1jaGFuZ2UtRFBJLW9mLWEtd2ViLXBhZ2UucGF0Y2ggYi9zcmNwa2dzL3BoYW50b21qcy9wYXRj aGVzLzAwMDEtQWxsb3ctdXNlci10by1jaGFuZ2UtRFBJLW9mLWEtd2ViLXBhZ2UucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43NjE4Y2I0NzM2ZTMKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3BoYW50b21qcy9wYXRjaGVzLzAwMDEtQWxsb3ctdXNlci10 by1jaGFuZ2UtRFBJLW9mLWEtd2ViLXBhZ2UucGF0Y2gKQEAgLTAsMCArMSwyNjAgQEAKK0Zyb20g NDZiZmNhODQzZWUyZWY0NjYyNjJiMDJiZmNkMTY3NTQwN2UxM2RiNiBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDEKK0Zyb206IFZpdGFseSBTbG9ib2RpbiA8dml0YWxpeS5zbG9ib2RpbkBnbWFpbC5j b20+CitEYXRlOiBGcmksIDExIE1hciAyMDE2IDE5OjA4OjM1ICswMzAwCitTdWJqZWN0OiBbUEFU Q0ggMS80XSBBbGxvdyB1c2VyIHRvIGNoYW5nZSBEUEkgb2YgYSB3ZWIgcGFnZQorCitJc3N1ZTog IzEyMDg1CistLS0KKyBzcmMvY29uc3RzLmggICAgfCAgMSArCisgc3JjL3BoYW50b20uY3BwIHwg MjEgKysrKysrKysrKystLS0tLS0tCisgc3JjL3BoYW50b20uaCAgIHwgIDEgKworIHNyYy93ZWJw YWdlLmNwcCB8IDU3ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KKyBzcmMvd2VicGFnZS5oICAgfCAgNSArKysrKworIDUgZmlsZXMgY2hhbmdlZCwgNTAg aW5zZXJ0aW9ucygrKSwgMzUgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY29uc3Rz LmggYi9zcmMvY29uc3RzLmgKK2luZGV4IDI4YjIzNzIyMS4uNTQyMjZkMDEyIDEwMDY0NAorLS0t IGEvc3JjL2NvbnN0cy5oCisrKysgYi9zcmMvY29uc3RzLmgKK0BAIC02Nyw2ICs2Nyw3IEBACisg I2RlZmluZSBQQUdFX1NFVFRJTkdTX1dFQl9TRUNVUklUWV9FTkFCTEVEICAid2ViU2VjdXJpdHlF bmFibGVkIgorICNkZWZpbmUgUEFHRV9TRVRUSU5HU19KU19DQU5fT1BFTl9XSU5ET1dTICAgImph dmFzY3JpcHRDYW5PcGVuV2luZG93cyIKKyAjZGVmaW5lIFBBR0VfU0VUVElOR1NfSlNfQ0FOX0NM T1NFX1dJTkRPV1MgICJqYXZhc2NyaXB0Q2FuQ2xvc2VXaW5kb3dzIgorKyNkZWZpbmUgUEFHRV9T RVRUSU5HU19EUEkgICAgICAgICAgICAgICAgICAgImRwaSIKKyAKKyAjZGVmaW5lIERFRkFVTFRf V0VCRFJJVkVSX0NPTkZJRyAgICAgICAgICAgICIxMjcuMC4wLjE6ODkxMCIKKyAKK2RpZmYgLS1n aXQgYS9zcmMvcGhhbnRvbS5jcHAgYi9zcmMvcGhhbnRvbS5jcHAKK2luZGV4IGFmYWJhYWRkYS4u NTQxN2I5YmViIDEwMDY0NAorLS0tIGEvc3JjL3BoYW50b20uY3BwCisrKysgYi9zcmMvcGhhbnRv bS5jcHAKK0BAIC0zMSwyNSArMzEsMjYgQEAKKyAjaW5jbHVkZSAicGhhbnRvbS5oIgorIAorICNp bmNsdWRlIDxRQXBwbGljYXRpb24+CisrI2luY2x1ZGUgPFFEZWJ1Zz4KKyAjaW5jbHVkZSA8UURp cj4KKy0jaW5jbHVkZSA8UUZpbGVJbmZvPgorICNpbmNsdWRlIDxRRmlsZT4KKy0jaW5jbHVkZSA8 UXRXZWJLaXRXaWRnZXRzL1FXZWJQYWdlPgorLSNpbmNsdWRlIDxRRGVidWc+CisrI2luY2x1ZGUg PFFGaWxlSW5mbz4KKyAjaW5jbHVkZSA8UU1ldGFPYmplY3Q+CisgI2luY2x1ZGUgPFFNZXRhUHJv cGVydHk+CisrI2luY2x1ZGUgPFFTY3JlZW4+CisgI2luY2x1ZGUgPFFTdGFuZGFyZFBhdGhzPgor KyNpbmNsdWRlIDxRdFdlYktpdFdpZGdldHMvUVdlYlBhZ2U+CisgCisrI2luY2x1ZGUgImNhbGxi YWNrLmgiCisrI2luY2x1ZGUgImNoaWxkcHJvY2Vzcy5oIgorICNpbmNsdWRlICJjb25zdHMuaCIK KysjaW5jbHVkZSAiY29va2llamFyLmgiCisrI2luY2x1ZGUgInJlcGwuaCIKKysjaW5jbHVkZSAi c3lzdGVtLmgiCisgI2luY2x1ZGUgInRlcm1pbmFsLmgiCisgI2luY2x1ZGUgInV0aWxzLmgiCisg I2luY2x1ZGUgIndlYnBhZ2UuaCIKKyAjaW5jbHVkZSAid2Vic2VydmVyLmgiCistI2luY2x1ZGUg InJlcGwuaCIKKy0jaW5jbHVkZSAic3lzdGVtLmgiCistI2luY2x1ZGUgImNhbGxiYWNrLmgiCist I2luY2x1ZGUgImNvb2tpZWphci5oIgorLSNpbmNsdWRlICJjaGlsZHByb2Nlc3MuaCIKKyAKKyBz dGF0aWMgUGhhbnRvbSogcGhhbnRvbUluc3RhbmNlID0gTlVMTDsKKyAKK0BAIC0xMDAsNiArMTAx LDkgQEAgdm9pZCBQaGFudG9tOjppbml0KCkKKyAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgQ29va2ll SmFyCisgICAgIG1fZGVmYXVsdENvb2tpZUphciA9IG5ldyBDb29raWVKYXIobV9jb25maWcuY29v a2llc0ZpbGUoKSk7CisgCisrICAgIC8vIHNldCB0aGUgZGVmYXVsdCBEUEkKKysgICAgbV9kZWZh dWx0RHBpID0gcVJvdW5kKFFBcHBsaWNhdGlvbjo6cHJpbWFyeVNjcmVlbigpLT5sb2dpY2FsRG90 c1BlckluY2goKSk7CisrCisgICAgIFFXZWJTZXR0aW5nczo6c2V0T2ZmbGluZVdlYkFwcGxpY2F0 aW9uQ2FjaGVQYXRoKFFTdGFuZGFyZFBhdGhzOjp3cml0YWJsZUxvY2F0aW9uKFFTdGFuZGFyZFBh dGhzOjpEYXRhTG9jYXRpb24pKTsKKyAgICAgaWYgKG1fY29uZmlnLm9mZmxpbmVTdG9yYWdlUGF0 aCgpLmlzRW1wdHkoKSkgeworICAgICAgICAgUVdlYlNldHRpbmdzOjpzZXRPZmZsaW5lU3RvcmFn ZVBhdGgoUVN0YW5kYXJkUGF0aHM6OndyaXRhYmxlTG9jYXRpb24oUVN0YW5kYXJkUGF0aHM6OkRh dGFMb2NhdGlvbikpOworQEAgLTEzOSw2ICsxNDMsNyBAQCB2b2lkIFBoYW50b206OmluaXQoKQor ICAgICBtX2RlZmF1bHRQYWdlU2V0dGluZ3NbUEFHRV9TRVRUSU5HU19XRUJfU0VDVVJJVFlfRU5B QkxFRF0gPSBRVmFyaWFudDo6ZnJvbVZhbHVlKG1fY29uZmlnLndlYlNlY3VyaXR5RW5hYmxlZCgp KTsKKyAgICAgbV9kZWZhdWx0UGFnZVNldHRpbmdzW1BBR0VfU0VUVElOR1NfSlNfQ0FOX09QRU5f V0lORE9XU10gPSBRVmFyaWFudDo6ZnJvbVZhbHVlKG1fY29uZmlnLmphdmFzY3JpcHRDYW5PcGVu V2luZG93cygpKTsKKyAgICAgbV9kZWZhdWx0UGFnZVNldHRpbmdzW1BBR0VfU0VUVElOR1NfSlNf Q0FOX0NMT1NFX1dJTkRPV1NdID0gUVZhcmlhbnQ6OmZyb21WYWx1ZShtX2NvbmZpZy5qYXZhc2Ny aXB0Q2FuQ2xvc2VXaW5kb3dzKCkpOworKyAgICBtX2RlZmF1bHRQYWdlU2V0dGluZ3NbUEFHRV9T RVRUSU5HU19EUEldID0gUVZhcmlhbnQ6OmZyb21WYWx1ZShtX2RlZmF1bHREcGkpOworICAgICBt X3BhZ2UtPmFwcGx5U2V0dGluZ3MobV9kZWZhdWx0UGFnZVNldHRpbmdzKTsKKyAKKyAgICAgc2V0 TGlicmFyeVBhdGgoUUZpbGVJbmZvKG1fY29uZmlnLnNjcmlwdEZpbGUoKSkuZGlyKCkuYWJzb2x1 dGVQYXRoKCkpOworZGlmZiAtLWdpdCBhL3NyYy9waGFudG9tLmggYi9zcmMvcGhhbnRvbS5oCitp bmRleCA3YzMyZWIxNDEuLmM3ZTViNzg3ZiAxMDA2NDQKKy0tLSBhL3NyYy9waGFudG9tLmgKKysr KyBiL3NyYy9waGFudG9tLmgKK0BAIC0yMzcsNiArMjM3LDcgQEAgcHJpdmF0ZToKKyAgICAgUUxp c3Q8UVBvaW50ZXI8V2ViU2VydmVyPiA+IG1fc2VydmVyczsKKyAgICAgQ29uZmlnIG1fY29uZmln OworICAgICBDb29raWVKYXIqIG1fZGVmYXVsdENvb2tpZUphcjsKKysgICAgcXJlYWwgbV9kZWZh dWx0RHBpOworIAorICAgICBmcmllbmQgY2xhc3MgQ3VzdG9tUGFnZTsKKyB9OworZGlmZiAtLWdp dCBhL3NyYy93ZWJwYWdlLmNwcCBiL3NyYy93ZWJwYWdlLmNwcAoraW5kZXggZmMyMzViYzU2Li40 MTU4MDY0ZDQgMTAwNjQ0CistLS0gYS9zcmMvd2VicGFnZS5jcHAKKysrKyBiL3NyYy93ZWJwYWdl LmNwcAorQEAgLTMwLDQ3ICszMCw0NyBAQAorIAorICNpbmNsdWRlICJ3ZWJwYWdlLmgiCisgCist I2luY2x1ZGUgPG1hdGguaD4KKy0KKyAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgorKyNpbmNsdWRl IDxRQnVmZmVyPgorICNpbmNsdWRlIDxRQ29udGV4dE1lbnVFdmVudD4KKy0jaW5jbHVkZSA8UURl c2t0b3BTZXJ2aWNlcz4KKyAjaW5jbHVkZSA8UURhdGVUaW1lPgorKyNpbmNsdWRlIDxRRGVidWc+ CisrI2luY2x1ZGUgPFFEZXNrdG9wU2VydmljZXM+CisgI2luY2x1ZGUgPFFEaXI+CisgI2luY2x1 ZGUgPFFGaWxlSW5mbz4KKysjaW5jbHVkZSA8UUltYWdlV3JpdGVyPgorICNpbmNsdWRlIDxRS2V5 RXZlbnQ+CisrI2luY2x1ZGUgPFFNYXBJdGVyYXRvcj4KKyAjaW5jbHVkZSA8UU1vdXNlRXZlbnQ+ CisgI2luY2x1ZGUgPFFOZXR3b3JrQWNjZXNzTWFuYWdlcj4KKyAjaW5jbHVkZSA8UU5ldHdvcmtD b29raWU+CisrI2luY2x1ZGUgPFFOZXR3b3JrUHJveHk+CisgI2luY2x1ZGUgPFFOZXR3b3JrUmVx dWVzdD4KKyAjaW5jbHVkZSA8UVBhaW50ZXI+CistI2luY2x1ZGUgPFF0UHJpbnRTdXBwb3J0L1FQ cmludGVyPgorLSNpbmNsdWRlIDxRV2ViSGlzdG9yeT4KKy0jaW5jbHVkZSA8UVdlYkhpc3RvcnlJ dGVtPgorKyNpbmNsdWRlIDxRU2NyZWVuPgorKyNpbmNsdWRlIDxRVXJsPgorKyNpbmNsdWRlIDxR VXVpZD4KKyAjaW5jbHVkZSA8UVdlYkVsZW1lbnQ+CisgI2luY2x1ZGUgPFFXZWJGcmFtZT4KKy0j aW5jbHVkZSA8UVdlYlBhZ2U+CisrI2luY2x1ZGUgPFFXZWJIaXN0b3J5PgorKyNpbmNsdWRlIDxR V2ViSGlzdG9yeUl0ZW0+CisgI2luY2x1ZGUgPFFXZWJJbnNwZWN0b3I+CistI2luY2x1ZGUgPFFN YXBJdGVyYXRvcj4KKy0jaW5jbHVkZSA8UUJ1ZmZlcj4KKy0jaW5jbHVkZSA8UURlYnVnPgorLSNp bmNsdWRlIDxRSW1hZ2VXcml0ZXI+CistI2luY2x1ZGUgPFFVdWlkPgorLSNpbmNsdWRlIDxRVXJs PgorLSNpbmNsdWRlIDxRTmV0d29ya1Byb3h5PgorKyNpbmNsdWRlIDxRV2ViUGFnZT4KKysjaW5j bHVkZSA8UXRQcmludFN1cHBvcnQvUVByaW50ZXI+CisrI2luY2x1ZGUgPG1hdGguaD4KKyAKKy0j aW5jbHVkZSAicGhhbnRvbS5oIgorLSNpbmNsdWRlICJuZXR3b3JrYWNjZXNzbWFuYWdlci5oIgor LSNpbmNsdWRlICJ1dGlscy5oIgorKyNpbmNsdWRlICJjYWxsYmFjay5oIgorICNpbmNsdWRlICJj b25maWcuaCIKKyAjaW5jbHVkZSAiY29uc3RzLmgiCistI2luY2x1ZGUgImNhbGxiYWNrLmgiCisg I2luY2x1ZGUgImNvb2tpZWphci5oIgorKyNpbmNsdWRlICJuZXR3b3JrYWNjZXNzbWFuYWdlci5o IgorKyNpbmNsdWRlICJwaGFudG9tLmgiCisgI2luY2x1ZGUgInN5c3RlbS5oIgorKyNpbmNsdWRl ICJ1dGlscy5oIgorIAorICNpZmRlZiBRX09TX1dJTgorLSNpbmNsdWRlIDxpby5oPgorICNpbmNs dWRlIDxmY250bC5oPgorKyNpbmNsdWRlIDxpby5oPgorICNlbmRpZgorIAorIC8vIEVuc3VyZSB3 ZSBoYXZlIGF0IGxlYXN0IGhlYWQgYW5kIGJvZHkuCitAQCAtNDM1LDYgKzQzNSw3IEBAIFdlYlBh Z2U6OldlYlBhZ2UoUU9iamVjdCogcGFyZW50LCBjb25zdCBRVXJsJiBiYXNlVXJsKQorICAgICBj b25uZWN0KG1fbmV0d29ya0FjY2Vzc01hbmFnZXIsIFNJR05BTChyZXNvdXJjZVRpbWVvdXQoUVZh cmlhbnQpKSwKKyAgICAgICAgICAgICBTSUdOQUwocmVzb3VyY2VUaW1lb3V0KFFWYXJpYW50KSkp OworIAorKyAgICBtX2RwaSA9IHFSb3VuZChRQXBwbGljYXRpb246OnByaW1hcnlTY3JlZW4oKS0+ bG9naWNhbERvdHNQZXJJbmNoKCkpOworICAgICBtX2N1c3RvbVdlYlBhZ2UtPnNldFZpZXdwb3J0 U2l6ZShRU2l6ZSg0MDAsIDMwMCkpOworIH0KKyAKK0BAIC02NDksNiArNjUwLDEwIEBAIHZvaWQg V2ViUGFnZTo6YXBwbHlTZXR0aW5ncyhjb25zdCBRVmFyaWFudE1hcCYgZGVmKQorICAgICBpZiAo ZGVmLmNvbnRhaW5zKFBBR0VfU0VUVElOR1NfUFJPWFkpKSB7CisgICAgICAgICBzZXRQcm94eShk ZWZbUEFHRV9TRVRUSU5HU19QUk9YWV0udG9TdHJpbmcoKSk7CisgICAgIH0KKysKKysgICAgaWYg KGRlZi5jb250YWlucyhQQUdFX1NFVFRJTkdTX0RQSSkpIHsKKysgICAgICAgIG1fZHBpID0gZGVm W1BBR0VfU0VUVElOR1NfRFBJXS50b1JlYWwoKTsKKysgICAgfQorIH0KKyAKKyB2b2lkIFdlYlBh Z2U6OnNldFByb3h5KGNvbnN0IFFTdHJpbmcmIHByb3h5VXJsKQorQEAgLTExMjQsOSArMTEyOSw3 IEBAIFFJbWFnZSBXZWJQYWdlOjpyZW5kZXJJbWFnZSgpCisgICAgIHJldHVybiBidWZmZXI7Cisg fQorIAorLSNkZWZpbmUgUEhBTlRPTUpTX1BERl9EUEkgNzIgICAgICAgICAgICAvLyBEaWZmZXJl bnQgZGVmYXVsdHMuIE9TWDogNzIsIFgxMTogNzUoPyksIFdpbmRvd3M6IDk2CistCistcXJlYWwg c3RyaW5nVG9Qb2ludFNpemUoY29uc3QgUVN0cmluZyYgc3RyaW5nKQorK3FyZWFsIFdlYlBhZ2U6 OnN0cmluZ1RvUG9pbnRTaXplKGNvbnN0IFFTdHJpbmcmIHN0cmluZykgY29uc3QKKyB7CisgICAg IHN0YXRpYyBjb25zdCBzdHJ1Y3QgeworICAgICAgICAgUVN0cmluZyB1bml0OworQEAgLTExMzUs OCArMTEzOCw4IEBAIHFyZWFsIHN0cmluZ1RvUG9pbnRTaXplKGNvbnN0IFFTdHJpbmcmIHN0cmlu ZykKKyAgICAgICAgIHsgIm1tIiwgNzIgLyAyNS40IH0sCisgICAgICAgICB7ICJjbSIsIDcyIC8g Mi41NCB9LAorICAgICAgICAgeyAiaW4iLCA3MiB9LAorLSAgICAgICAgeyAicHgiLCA3Mi4wIC8g UEhBTlRPTUpTX1BERl9EUEkgfSwKKy0gICAgICAgIHsgIiIsIDcyLjAgLyBQSEFOVE9NSlNfUERG X0RQSSB9CisrICAgICAgICB7ICJweCIsIDcyLjAgLyBtX2RwaSB9LAorKyAgICAgICAgeyAiIiwg NzIuMCAvIG1fZHBpIH0KKyAgICAgfTsKKyAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgc2l6ZW9m KHVuaXRzKSAvIHNpemVvZih1bml0c1swXSk7ICsraSkgeworICAgICAgICAgaWYgKHN0cmluZy5l bmRzV2l0aCh1bml0c1tpXS51bml0KSkgeworQEAgLTExNDgsNyArMTE1MSw3IEBAIHFyZWFsIHN0 cmluZ1RvUG9pbnRTaXplKGNvbnN0IFFTdHJpbmcmIHN0cmluZykKKyAgICAgcmV0dXJuIDA7Cisg fQorIAorLXFyZWFsIHByaW50TWFyZ2luKGNvbnN0IFFWYXJpYW50TWFwJiBtYXAsIGNvbnN0IFFT dHJpbmcmIGtleSkKKytxcmVhbCBXZWJQYWdlOjpwcmludE1hcmdpbihjb25zdCBRVmFyaWFudE1h cCYgbWFwLCBjb25zdCBRU3RyaW5nJiBrZXkpCisgeworICAgICBjb25zdCBRVmFyaWFudCBtYXJn aW4gPSBtYXAudmFsdWUoa2V5KTsKKyAgICAgaWYgKG1hcmdpbi5pc1ZhbGlkKCkgJiYgbWFyZ2lu LmNhbkNvbnZlcnQoUVZhcmlhbnQ6OlN0cmluZykpIHsKK0BAIC0xMTYzLDcgKzExNjYsNyBAQCBi b29sIFdlYlBhZ2U6OnJlbmRlclBkZihjb25zdCBRU3RyaW5nJiBmaWxlTmFtZSkKKyAgICAgUVBy aW50ZXIgcHJpbnRlcjsKKyAgICAgcHJpbnRlci5zZXRPdXRwdXRGb3JtYXQoUVByaW50ZXI6OlBk ZkZvcm1hdCk7CisgICAgIHByaW50ZXIuc2V0T3V0cHV0RmlsZU5hbWUoZmlsZU5hbWUpOworLSAg ICBwcmludGVyLnNldFJlc29sdXRpb24oUEhBTlRPTUpTX1BERl9EUEkpOworKyAgICBwcmludGVy LnNldFJlc29sdXRpb24obV9kcGkpOworICAgICBRVmFyaWFudE1hcCBwYXBlclNpemUgPSBtX3Bh cGVyU2l6ZTsKKyAKKyAgICAgaWYgKHBhcGVyU2l6ZS5pc0VtcHR5KCkpIHsKK0BAIC0xMjc2LDcg KzEyNzksNyBAQCBRU3RyaW5nIFdlYlBhZ2U6OndpbmRvd05hbWUoKSBjb25zdAorICAgICByZXR1 cm4gbV9tYWluRnJhbWUtPmV2YWx1YXRlSmF2YVNjcmlwdCgid2luZG93Lm5hbWU7IikudG9TdHJp bmcoKTsKKyB9CisgCistcXJlYWwgZ2V0SGVpZ2h0KGNvbnN0IFFWYXJpYW50TWFwJiBtYXAsIGNv bnN0IFFTdHJpbmcmIGtleSkKKytxcmVhbCBXZWJQYWdlOjpnZXRIZWlnaHQoY29uc3QgUVZhcmlh bnRNYXAmIG1hcCwgY29uc3QgUVN0cmluZyYga2V5KSBjb25zdAorIHsKKyAgICAgUVZhcmlhbnQg Zm9vdGVyID0gbWFwLnZhbHVlKGtleSk7CisgICAgIGlmICghZm9vdGVyLmNhbkNvbnZlcnQoUVZh cmlhbnQ6Ok1hcCkpIHsKK2RpZmYgLS1naXQgYS9zcmMvd2VicGFnZS5oIGIvc3JjL3dlYnBhZ2Uu aAoraW5kZXggNGU0MWVjMjQ2Li41OTI3OWRiODUgMTAwNjQ0CistLS0gYS9zcmMvd2VicGFnZS5o CisrKysgYi9zcmMvd2VicGFnZS5oCitAQCAtNDgzLDYgKzQ4MywxMCBAQCBwdWJsaWMgc2xvdHM6 CisgCisgICAgIHZvaWQgc2V0UHJveHkoY29uc3QgUVN0cmluZyYgcHJveHlVcmwpOworIAorKyAg ICBxcmVhbCBzdHJpbmdUb1BvaW50U2l6ZShjb25zdCBRU3RyaW5nJikgY29uc3Q7CisrICAgIHFy ZWFsIHByaW50TWFyZ2luKGNvbnN0IFFWYXJpYW50TWFwJiwgY29uc3QgUVN0cmluZyYpOworKyAg ICBxcmVhbCBnZXRIZWlnaHQoY29uc3QgUVZhcmlhbnRNYXAmLCBjb25zdCBRU3RyaW5nJikgY29u c3Q7CisrCisgc2lnbmFsczoKKyAgICAgdm9pZCBpbml0aWFsaXplZCgpOworICAgICB2b2lkIGxv YWRTdGFydGVkKCk7CitAQCAtNTQ0LDYgKzU0OCw3IEBAIHByaXZhdGU6CisgICAgIGludCBtX2xv YWRpbmdQcm9ncmVzczsKKyAgICAgYm9vbCBtX3Nob3VsZEludGVycnVwdEpzOworICAgICBDb29r aWVKYXIqIG1fY29va2llSmFyOworKyAgICBxcmVhbCBtX2RwaTsKKyAKKyAgICAgZnJpZW5kIGNs YXNzIFBoYW50b207CisgICAgIGZyaWVuZCBjbGFzcyBDdXN0b21QYWdlOworLS0gCisyLjM5LjAK KwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9waGFudG9tanMvcGF0Y2hlcy8wMDAyLUFkZC1zdXBwb3J0 LXRvLXJlbmRlci1wZGYtdG8tYmFzZTY0LnBhdGNoIGIvc3JjcGtncy9waGFudG9tanMvcGF0Y2hl cy8wMDAyLUFkZC1zdXBwb3J0LXRvLXJlbmRlci1wZGYtdG8tYmFzZTY0LnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTJmYmU2ZDYyODQ1Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9waGFudG9tanMvcGF0Y2hlcy8wMDAyLUFkZC1zdXBwb3J0LXRvLXJl bmRlci1wZGYtdG8tYmFzZTY0LnBhdGNoCkBAIC0wLDAgKzEsMjc5IEBACitGcm9tIDQzYjllYzQ4 YmRmNGFhZWFlZWJlNmY1OTI2YjExOWQ4NzZiMzlmYTkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx CitGcm9tOiBDb25ub3IgRHVubiA8Y29ubm9yaGRAc3F1YXJldXAuY29tPgorRGF0ZTogVGh1LCAy OCBBcHIgMjAxNiAyMzowNjoxNSAtMDcwMAorU3ViamVjdDogW1BBVENIIDIvNF0gQWRkIHN1cHBv cnQgdG8gcmVuZGVyIHBkZiB0byBiYXNlNjQuCisKK2h0dHBzOi8vZ2l0aHViLmNvbS9hcml5YS9w aGFudG9tanMvaXNzdWVzLzExMTkyCitodHRwczovL2dpdGh1Yi5jb20vYXJpeWEvcGhhbnRvbWpz L2lzc3Vlcy8xMjM5MgorLS0tCisgc3JjL3dlYnBhZ2UuY3BwICAgICAgICAgICAgICAgICAgICAg fCAxMjIgKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQorIHNyYy93ZWJwYWdlLmggICAgICAg ICAgICAgICAgICAgICAgIHwgICAzICstCisgdGVzdC9tb2R1bGUvd2VicGFnZS9yZW5kZXJCYXNl NjQuanMgfCAgNTEgKysrKysrKysrKysrCisgMyBmaWxlcyBjaGFuZ2VkLCAxMTggaW5zZXJ0aW9u cygrKSwgNTggZGVsZXRpb25zKC0pCisgY3JlYXRlIG1vZGUgMTAwNjQ0IHRlc3QvbW9kdWxlL3dl YnBhZ2UvcmVuZGVyQmFzZTY0LmpzCisKK2RpZmYgLS1naXQgYS9zcmMvd2VicGFnZS5jcHAgYi9z cmMvd2VicGFnZS5jcHAKK2luZGV4IDQxNTgwNjRkNC4uMzA1MDg1ZDg3IDEwMDY0NAorLS0tIGEv c3JjL3dlYnBhZ2UuY3BwCisrKysgYi9zcmMvd2VicGFnZS5jcHAKK0BAIC01Niw3ICs1Niw2IEBA CisgI2luY2x1ZGUgPFFXZWJIaXN0b3J5SXRlbT4KKyAjaW5jbHVkZSA8UVdlYkluc3BlY3Rvcj4K KyAjaW5jbHVkZSA8UVdlYlBhZ2U+CistI2luY2x1ZGUgPFF0UHJpbnRTdXBwb3J0L1FQcmludGVy PgorICNpbmNsdWRlIDxtYXRoLmg+CisgCisgI2luY2x1ZGUgImNhbGxiYWNrLmgiCitAQCAtOTk5 LDcgKzk5OCw4IEBAIGJvb2wgV2ViUGFnZTo6cmVuZGVyKGNvbnN0IFFTdHJpbmcmIGZpbGVOYW1l LCBjb25zdCBRVmFyaWFudE1hcCYgb3B0aW9uKQorIAorICAgICBib29sIHJldHZhbCA9IHRydWU7 CisgICAgIGlmIChmb3JtYXQgPT0gInBkZiIpIHsKKy0gICAgICAgIHJldHZhbCA9IHJlbmRlclBk ZihvdXRGaWxlTmFtZSk7CisrICAgICAgICBRUGRmV3JpdGVyIHBkZldyaXRlcihmaWxlTmFtZSk7 CisrICAgICAgICByZXR2YWwgPSByZW5kZXJQZGYocGRmV3JpdGVyKTsKKyAgICAgfSBlbHNlIHsK KyAgICAgICAgIFFJbWFnZSByYXdQYWdlUmVuZGVyaW5nID0gcmVuZGVySW1hZ2UoKTsKKyAKK0BA IC0xMDUzLDIzICsxMDUzLDMxIEBAIFFTdHJpbmcgV2ViUGFnZTo6cmVuZGVyQmFzZTY0KGNvbnN0 IFFCeXRlQXJyYXkmIGZvcm1hdCkKKyB7CisgICAgIFFCeXRlQXJyYXkgbmZvcm1hdCA9IGZvcm1h dC50b0xvd2VyKCk7CisgCistICAgIC8vIENoZWNrIGlmIHRoZSBnaXZlbiBmb3JtYXQgaXMgc3Vw cG9ydGVkCistICAgIGlmIChRSW1hZ2VXcml0ZXI6OnN1cHBvcnRlZEltYWdlRm9ybWF0cygpLmNv bnRhaW5zKG5mb3JtYXQpKSB7CistICAgICAgICBRSW1hZ2UgcmF3UGFnZVJlbmRlcmluZyA9IHJl bmRlckltYWdlKCk7CisrICAgIGlmIChmb3JtYXQgIT0gInBkZiIgJiYgIVFJbWFnZVdyaXRlcjo6 c3VwcG9ydGVkSW1hZ2VGb3JtYXRzKCkuY29udGFpbnMobmZvcm1hdCkpIHsKKysgICAgICAgIC8v IFJldHVybiBhbiBlbXB0eSBzdHJpbmcgaW4gY2FzZSBhbiB1bnN1cHBvcnRlZCBmb3JtYXQgd2Fz IHByb3ZpZGVkCisrICAgICAgICByZXR1cm4gIiI7CisrICAgIH0KKysKKysgICAgLy8gUHJlcGFy ZSBidWZmZXIgZm9yIHdyaXRpbmcKKysgICAgUUJ5dGVBcnJheSBieXRlczsKKysgICAgUUJ1ZmZl ciBidWZmZXIoJmJ5dGVzKTsKKysgICAgYnVmZmVyLm9wZW4oUUlPRGV2aWNlOjpXcml0ZU9ubHkp OworKworKyAgICBpZiAoZm9ybWF0ID09ICJwZGYiKSB7CisrICAgICAgICBRUGRmV3JpdGVyIHBk ZldyaXRlcigmYnVmZmVyKTsKKyAKKy0gICAgICAgIC8vIFByZXBhcmUgYnVmZmVyIGZvciB3cml0 aW5nCistICAgICAgICBRQnl0ZUFycmF5IGJ5dGVzOworLSAgICAgICAgUUJ1ZmZlciBidWZmZXIo JmJ5dGVzKTsKKy0gICAgICAgIGJ1ZmZlci5vcGVuKFFJT0RldmljZTo6V3JpdGVPbmx5KTsKKysg ICAgICAgIGlmICghcmVuZGVyUGRmKHBkZldyaXRlcikpIHsKKysgICAgICAgICAgICAvLyBSZXR1 cm4gYW4gZW1wdHkgc3RyaW5nIGlmIHBkZiByZW5kZXIgZmFpbHMKKysgICAgICAgICAgICByZXR1 cm4gIiI7CisrICAgICAgICB9CisrICAgIH0gZWxzZSB7CisrICAgICAgICBRSW1hZ2UgcmF3UGFn ZVJlbmRlcmluZyA9IHJlbmRlckltYWdlKCk7CisgCisgICAgICAgICAvLyBXcml0aW5nIGltYWdl IHRvIHRoZSBidWZmZXIsIHVzaW5nIFBORyBlbmNvZGluZworICAgICAgICAgcmF3UGFnZVJlbmRl cmluZy5zYXZlKCZidWZmZXIsIG5mb3JtYXQpOworLQorLSAgICAgICAgcmV0dXJuIGJ5dGVzLnRv QmFzZTY0KCk7CisgICAgIH0KKyAKKy0gICAgLy8gUmV0dXJuIGFuIGVtcHR5IHN0cmluZyBpbiBj YXNlIGFuIHVuc3VwcG9ydGVkIGZvcm1hdCB3YXMgcHJvdmlkZWQKKy0gICAgcmV0dXJuICIiOwor KyAgICByZXR1cm4gYnl0ZXMudG9CYXNlNjQoKTsKKyB9CisgCisgUUltYWdlIFdlYlBhZ2U6OnJl bmRlckltYWdlKCkKK0BAIC0xMTYxLDEyICsxMTY5LDkgQEAgcXJlYWwgV2ViUGFnZTo6cHJpbnRN YXJnaW4oY29uc3QgUVZhcmlhbnRNYXAmIG1hcCwgY29uc3QgUVN0cmluZyYga2V5KQorICAgICB9 CisgfQorIAorLWJvb2wgV2ViUGFnZTo6cmVuZGVyUGRmKGNvbnN0IFFTdHJpbmcmIGZpbGVOYW1l KQorK2Jvb2wgV2ViUGFnZTo6cmVuZGVyUGRmKFFQZGZXcml0ZXImIHBkZldyaXRlcikKKyB7Cist ICAgIFFQcmludGVyIHByaW50ZXI7CistICAgIHByaW50ZXIuc2V0T3V0cHV0Rm9ybWF0KFFQcmlu dGVyOjpQZGZGb3JtYXQpOworLSAgICBwcmludGVyLnNldE91dHB1dEZpbGVOYW1lKGZpbGVOYW1l KTsKKy0gICAgcHJpbnRlci5zZXRSZXNvbHV0aW9uKG1fZHBpKTsKKysgICAgcGRmV3JpdGVyLnNl dFJlc29sdXRpb24obV9kcGkpOworICAgICBRVmFyaWFudE1hcCBwYXBlclNpemUgPSBtX3BhcGVy U2l6ZTsKKyAKKyAgICAgaWYgKHBhcGVyU2l6ZS5pc0VtcHR5KCkpIHsKK0BAIC0xMTc5LDUxICsx MTg0LDUxIEBAIGJvb2wgV2ViUGFnZTo6cmVuZGVyUGRmKGNvbnN0IFFTdHJpbmcmIGZpbGVOYW1l KQorICAgICBpZiAocGFwZXJTaXplLmNvbnRhaW5zKCJ3aWR0aCIpICYmIHBhcGVyU2l6ZS5jb250 YWlucygiaGVpZ2h0IikpIHsKKyAgICAgICAgIGNvbnN0IFFTaXplRiBzaXplUHQoY2VpbChzdHJp bmdUb1BvaW50U2l6ZShwYXBlclNpemUudmFsdWUoIndpZHRoIikudG9TdHJpbmcoKSkpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjZWlsKHN0cmluZ1RvUG9pbnRTaXplKHBhcGVyU2l6 ZS52YWx1ZSgiaGVpZ2h0IikudG9TdHJpbmcoKSkpKTsKKy0gICAgICAgIHByaW50ZXIuc2V0UGFw ZXJTaXplKHNpemVQdCwgUVByaW50ZXI6OlBvaW50KTsKKysgICAgICAgIHBkZldyaXRlci5zZXRQ YWdlU2l6ZShRUGFnZVNpemUoc2l6ZVB0LCBRUGFnZVNpemU6OlBvaW50KSk7CisgICAgIH0gZWxz ZSBpZiAocGFwZXJTaXplLmNvbnRhaW5zKCJmb3JtYXQiKSkgeworLSAgICAgICAgY29uc3QgUVBy aW50ZXI6Ok9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gcGFwZXJTaXplLmNvbnRhaW5zKCJvcmll bnRhdGlvbiIpCisrICAgICAgICBjb25zdCBRUGFnZUxheW91dDo6T3JpZW50YXRpb24gb3JpZW50 YXRpb24gPSBwYXBlclNpemUuY29udGFpbnMoIm9yaWVudGF0aW9uIikKKyAgICAgICAgICAgICAg ICAgJiYgcGFwZXJTaXplLnZhbHVlKCJvcmllbnRhdGlvbiIpLnRvU3RyaW5nKCkuY29tcGFyZSgi bGFuZHNjYXBlIiwgUXQ6OkNhc2VJbnNlbnNpdGl2ZSkgPT0gMCA/CistICAgICAgICAgICAgICAg IFFQcmludGVyOjpMYW5kc2NhcGUgOiBRUHJpbnRlcjo6UG9ydHJhaXQ7CistICAgICAgICBwcmlu dGVyLnNldE9yaWVudGF0aW9uKG9yaWVudGF0aW9uKTsKKysgICAgICAgICAgICAgICAgUVBhZ2VM YXlvdXQ6OlBvcnRyYWl0IDogUVBhZ2VMYXlvdXQ6OkxhbmRzY2FwZTsKKysgICAgICAgIHBkZldy aXRlci5zZXRQYWdlT3JpZW50YXRpb24ob3JpZW50YXRpb24pOworICAgICAgICAgc3RhdGljIGNv bnN0IHN0cnVjdCB7CisgICAgICAgICAgICAgUVN0cmluZyBmb3JtYXQ7CistICAgICAgICAgICAg UVByaW50ZXI6OlBhcGVyU2l6ZSBwYXBlclNpemU7CisrICAgICAgICAgICAgUVBhZ2VTaXplOjpQ YWdlU2l6ZUlkIHBhcGVyU2l6ZTsKKyAgICAgICAgIH0gZm9ybWF0c1tdID0geworLSAgICAgICAg ICAgIHsgIkEwIiwgUVByaW50ZXI6OkEwIH0sCistICAgICAgICAgICAgeyAiQTEiLCBRUHJpbnRl cjo6QTEgfSwKKy0gICAgICAgICAgICB7ICJBMiIsIFFQcmludGVyOjpBMiB9LAorLSAgICAgICAg ICAgIHsgIkEzIiwgUVByaW50ZXI6OkEzIH0sCistICAgICAgICAgICAgeyAiQTQiLCBRUHJpbnRl cjo6QTQgfSwKKy0gICAgICAgICAgICB7ICJBNSIsIFFQcmludGVyOjpBNSB9LAorLSAgICAgICAg ICAgIHsgIkE2IiwgUVByaW50ZXI6OkE2IH0sCistICAgICAgICAgICAgeyAiQTciLCBRUHJpbnRl cjo6QTcgfSwKKy0gICAgICAgICAgICB7ICJBOCIsIFFQcmludGVyOjpBOCB9LAorLSAgICAgICAg ICAgIHsgIkE5IiwgUVByaW50ZXI6OkE5IH0sCistICAgICAgICAgICAgeyAiQjAiLCBRUHJpbnRl cjo6QjAgfSwKKy0gICAgICAgICAgICB7ICJCMSIsIFFQcmludGVyOjpCMSB9LAorLSAgICAgICAg ICAgIHsgIkIyIiwgUVByaW50ZXI6OkIyIH0sCistICAgICAgICAgICAgeyAiQjMiLCBRUHJpbnRl cjo6QjMgfSwKKy0gICAgICAgICAgICB7ICJCNCIsIFFQcmludGVyOjpCNCB9LAorLSAgICAgICAg ICAgIHsgIkI1IiwgUVByaW50ZXI6OkI1IH0sCistICAgICAgICAgICAgeyAiQjYiLCBRUHJpbnRl cjo6QjYgfSwKKy0gICAgICAgICAgICB7ICJCNyIsIFFQcmludGVyOjpCNyB9LAorLSAgICAgICAg ICAgIHsgIkI4IiwgUVByaW50ZXI6OkI4IH0sCistICAgICAgICAgICAgeyAiQjkiLCBRUHJpbnRl cjo6QjkgfSwKKy0gICAgICAgICAgICB7ICJCMTAiLCBRUHJpbnRlcjo6QjEwIH0sCistICAgICAg ICAgICAgeyAiQzVFIiwgUVByaW50ZXI6OkM1RSB9LAorLSAgICAgICAgICAgIHsgIkNvbW0xMEUi LCBRUHJpbnRlcjo6Q29tbTEwRSB9LAorLSAgICAgICAgICAgIHsgIkRMRSIsIFFQcmludGVyOjpE TEUgfSwKKy0gICAgICAgICAgICB7ICJFeGVjdXRpdmUiLCBRUHJpbnRlcjo6RXhlY3V0aXZlIH0s CistICAgICAgICAgICAgeyAiRm9saW8iLCBRUHJpbnRlcjo6Rm9saW8gfSwKKy0gICAgICAgICAg ICB7ICJMZWRnZXIiLCBRUHJpbnRlcjo6TGVkZ2VyIH0sCistICAgICAgICAgICAgeyAiTGVnYWwi LCBRUHJpbnRlcjo6TGVnYWwgfSwKKy0gICAgICAgICAgICB7ICJMZXR0ZXIiLCBRUHJpbnRlcjo6 TGV0dGVyIH0sCistICAgICAgICAgICAgeyAiVGFibG9pZCIsIFFQcmludGVyOjpUYWJsb2lkIH0K KysgICAgICAgICAgICB7ICJBMCIsIFFQYWdlU2l6ZTo6QTAgfSwKKysgICAgICAgICAgICB7ICJB MSIsIFFQYWdlU2l6ZTo6QTEgfSwKKysgICAgICAgICAgICB7ICJBMiIsIFFQYWdlU2l6ZTo6QTIg fSwKKysgICAgICAgICAgICB7ICJBMyIsIFFQYWdlU2l6ZTo6QTMgfSwKKysgICAgICAgICAgICB7 ICJBNCIsIFFQYWdlU2l6ZTo6QTQgfSwKKysgICAgICAgICAgICB7ICJBNSIsIFFQYWdlU2l6ZTo6 QTUgfSwKKysgICAgICAgICAgICB7ICJBNiIsIFFQYWdlU2l6ZTo6QTYgfSwKKysgICAgICAgICAg ICB7ICJBNyIsIFFQYWdlU2l6ZTo6QTcgfSwKKysgICAgICAgICAgICB7ICJBOCIsIFFQYWdlU2l6 ZTo6QTggfSwKKysgICAgICAgICAgICB7ICJBOSIsIFFQYWdlU2l6ZTo6QTkgfSwKKysgICAgICAg ICAgICB7ICJCMCIsIFFQYWdlU2l6ZTo6QjAgfSwKKysgICAgICAgICAgICB7ICJCMSIsIFFQYWdl U2l6ZTo6QjEgfSwKKysgICAgICAgICAgICB7ICJCMiIsIFFQYWdlU2l6ZTo6QjIgfSwKKysgICAg ICAgICAgICB7ICJCMyIsIFFQYWdlU2l6ZTo6QjMgfSwKKysgICAgICAgICAgICB7ICJCNCIsIFFQ YWdlU2l6ZTo6QjQgfSwKKysgICAgICAgICAgICB7ICJCNSIsIFFQYWdlU2l6ZTo6QjUgfSwKKysg ICAgICAgICAgICB7ICJCNiIsIFFQYWdlU2l6ZTo6QjYgfSwKKysgICAgICAgICAgICB7ICJCNyIs IFFQYWdlU2l6ZTo6QjcgfSwKKysgICAgICAgICAgICB7ICJCOCIsIFFQYWdlU2l6ZTo6QjggfSwK KysgICAgICAgICAgICB7ICJCOSIsIFFQYWdlU2l6ZTo6QjkgfSwKKysgICAgICAgICAgICB7ICJC MTAiLCBRUGFnZVNpemU6OkIxMCB9LAorKyAgICAgICAgICAgIHsgIkM1RSIsIFFQYWdlU2l6ZTo6 QzVFIH0sCisrICAgICAgICAgICAgeyAiQ29tbTEwRSIsIFFQYWdlU2l6ZTo6Q29tbTEwRSB9LAor KyAgICAgICAgICAgIHsgIkRMRSIsIFFQYWdlU2l6ZTo6RExFIH0sCisrICAgICAgICAgICAgeyAi RXhlY3V0aXZlIiwgUVBhZ2VTaXplOjpFeGVjdXRpdmUgfSwKKysgICAgICAgICAgICB7ICJGb2xp byIsIFFQYWdlU2l6ZTo6Rm9saW8gfSwKKysgICAgICAgICAgICB7ICJMZWRnZXIiLCBRUGFnZVNp emU6OkxlZGdlciB9LAorKyAgICAgICAgICAgIHsgIkxlZ2FsIiwgUVBhZ2VTaXplOjpMZWdhbCB9 LAorKyAgICAgICAgICAgIHsgIkxldHRlciIsIFFQYWdlU2l6ZTo6TGV0dGVyIH0sCisrICAgICAg ICAgICAgeyAiVGFibG9pZCIsIFFQYWdlU2l6ZTo6VGFibG9pZCB9CisgICAgICAgICB9OworLSAg ICAgICAgcHJpbnRlci5zZXRQYXBlclNpemUoUVByaW50ZXI6OkE0KTsgLy8gRmFsbGJhY2sKKysg ICAgICAgIHBkZldyaXRlci5zZXRQYWdlU2l6ZShRUGFnZVNpemUoUVBhZ2VTaXplOjpBNCkpOyAv LyBGYWxsYmFjaworICAgICAgICAgZm9yICh1aW50IGkgPSAwOyBpIDwgc2l6ZW9mKGZvcm1hdHMp IC8gc2l6ZW9mKGZvcm1hdHNbMF0pOyArK2kpIHsKKyAgICAgICAgICAgICBpZiAocGFwZXJTaXpl LnZhbHVlKCJmb3JtYXQiKS50b1N0cmluZygpLmNvbXBhcmUoZm9ybWF0c1tpXS5mb3JtYXQsIFF0 OjpDYXNlSW5zZW5zaXRpdmUpID09IDApIHsKKy0gICAgICAgICAgICAgICAgcHJpbnRlci5zZXRQ YXBlclNpemUoZm9ybWF0c1tpXS5wYXBlclNpemUpOworKyAgICAgICAgICAgICAgICBwZGZXcml0 ZXIuc2V0UGFnZVNpemUoUVBhZ2VTaXplKGZvcm1hdHNbaV0ucGFwZXJTaXplKSk7CisgICAgICAg ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgIH0KKyAgICAgICAgIH0KK0BAIC0xMjU4LDkg KzEyNjMsMTIgQEAgYm9vbCBXZWJQYWdlOjpyZW5kZXJQZGYoY29uc3QgUVN0cmluZyYgZmlsZU5h bWUpCisgICAgICAgICB9CisgICAgIH0KKyAKKy0gICAgcHJpbnRlci5zZXRQYWdlTWFyZ2lucyht YXJnaW5MZWZ0LCBtYXJnaW5Ub3AsIG1hcmdpblJpZ2h0LCBtYXJnaW5Cb3R0b20sIFFQcmludGVy OjpQb2ludCk7CisrICAgIHBkZldyaXRlci5zZXRQYWdlTWFyZ2lucyhRTWFyZ2luc0YobWFyZ2lu TGVmdCwgbWFyZ2luVG9wLCBtYXJnaW5SaWdodCwgbWFyZ2luQm90dG9tKSwgUVBhZ2VMYXlvdXQ6 OlBvaW50KTsKKysKKysgICAgUVBhaW50ZXIgcGFpbnRlcigmcGRmV3JpdGVyKTsKKysgICAgbV9t YWluRnJhbWUtPnJlbmRlcigmcGFpbnRlcik7CisrICAgIHBhaW50ZXIuZW5kKCk7CisgCistICAg IG1fbWFpbkZyYW1lLT5wcmludCgmcHJpbnRlciwgdGhpcyk7CisgICAgIHJldHVybiB0cnVlOwor IH0KKyAKK2RpZmYgLS1naXQgYS9zcmMvd2VicGFnZS5oIGIvc3JjL3dlYnBhZ2UuaAoraW5kZXgg NTkyNzlkYjg1Li4wNjIxNzlkMjcgMTAwNjQ0CistLS0gYS9zcmMvd2VicGFnZS5oCisrKysgYi9z cmMvd2VicGFnZS5oCitAQCAtMzUsNiArMzUsNyBAQAorICNpbmNsdWRlIDxRVmFyaWFudE1hcD4K KyAjaW5jbHVkZSA8UXRXZWJLaXRXaWRnZXRzL1FXZWJQYWdlPgorICNpbmNsdWRlIDxRdFdlYktp dFdpZGdldHMvUVdlYkZyYW1lPgorKyNpbmNsdWRlIDxRUGRmV3JpdGVyPgorIAorICNpbmNsdWRl ICJjb29raWVqYXIuaCIKKyAKK0BAIC01MTQsNyArNTE1LDcgQEAgcHJpdmF0ZSBzbG90czoKKyAK KyBwcml2YXRlOgorICAgICBRSW1hZ2UgcmVuZGVySW1hZ2UoKTsKKy0gICAgYm9vbCByZW5kZXJQ ZGYoY29uc3QgUVN0cmluZyYgZmlsZU5hbWUpOworKyAgICBib29sIHJlbmRlclBkZihRUGRmV3Jp dGVyJiBwZGZXcml0ZXIpOworICAgICB2b2lkIGFwcGx5U2V0dGluZ3MoY29uc3QgUVZhcmlhbnRN YXAmIGRlZmF1bHRTZXR0aW5ncyk7CisgICAgIFFTdHJpbmcgdXNlckFnZW50KCkgY29uc3Q7Cisg CitkaWZmIC0tZ2l0IGEvdGVzdC9tb2R1bGUvd2VicGFnZS9yZW5kZXJCYXNlNjQuanMgYi90ZXN0 L21vZHVsZS93ZWJwYWdlL3JlbmRlckJhc2U2NC5qcworbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2lu ZGV4IDAwMDAwMDAwMC4uMTc3OTdkNTc2CistLS0gL2Rldi9udWxsCisrKysgYi90ZXN0L21vZHVs ZS93ZWJwYWdlL3JlbmRlckJhc2U2NC5qcworQEAgLTAsMCArMSw1MSBAQAorK3ZhciBmcyAgICAg ID0gcmVxdWlyZSgiZnMiKTsKKyt2YXIgc3lzdGVtICA9IHJlcXVpcmUoInN5c3RlbSIpOworK3Zh ciB3ZWJwYWdlID0gcmVxdWlyZSgid2VicGFnZSIpOworK3ZhciByZW5kZXJzID0gcmVxdWlyZSgi Li9yZW5kZXJzIik7CisrCisrZnVuY3Rpb24gY2xlYW5fcGRmKGRhdGEpIHsKKysgICAgLy8gRklY TUU6IFRoaXMgaXMgbm90IG5lYXJseSBlbm91Z2ggbm9ybWFsaXphdGlvbi4KKysgICAgZGF0YSA9 IGRhdGEucmVwbGFjZSgvXC8oVGl0bGV8Q3JlYXRvcnxQcm9kdWNlcnxDcmVhdGlvbkRhdGUpIFwo W15cbl0qXCkvZywgIi8kMSAoKSIpOworKyAgICBkYXRhID0gZGF0YS5yZXBsYWNlKC9cbnhyZWZc blswLTkgbmZcbl0rdHJhaWxlclxiLywgIlxudHJhaWxlciIpOworKyAgICBkYXRhID0gZGF0YS5y ZXBsYWNlKC9cbnN0YXJ0eHJlZlxuWzAtOV0rXG4lJUVPRlxuLywgIlxuIik7CisrICAgIHJldHVy biBkYXRhOworK30KKysKKytmdW5jdGlvbiByZW5kZXJfdGVzdChmb3JtYXQpIHsKKysgICAgdmFy IGV4cGVjdF9jb250ZW50ID0gYnRvYShyZW5kZXJzLmdldChmb3JtYXQsICIiKSk7CisrICAgIHZh ciBwID0gd2VicGFnZS5jcmVhdGUoKTsKKysKKysgICAgcC5wYXBlclNpemUgPSB7IHdpZHRoOiAn MzAwcHgnLCBoZWlnaHQ6ICczMDBweCcsIGJvcmRlcjogJzBweCcgfTsKKysgICAgcC5jbGlwUmVj dCA9IHsgdG9wOiAwLCBsZWZ0OiAwLCB3aWR0aDogMzAwLCBoZWlnaHQ6IDMwMH07CisrICAgIHAu dmlld3BvcnRTaXplID0geyB3aWR0aDogMzAwLCBoZWlnaHQ6IDMwMH07CisrCisrICAgIHAub3Bl bihURVNUX0hUVFBfQkFTRSArICJyZW5kZXIvIiwgdGhpcy5zdGVwX2Z1bmNfZG9uZShmdW5jdGlv biAoc3RhdHVzKSB7CisrICAgICAgICB2YXIgY29udGVudCA9IHAucmVuZGVyQmFzZTY0KGZvcm1h dCk7CisrCisrICAgICAgICAvLyBleHBlY3RlZCB2YXJpYXRpb24gaW4gUERGIG91dHB1dAorKyAg ICAgICAgaWYgKGZvcm1hdCA9PT0gInBkZiIpIHsKKysgICAgICAgICAgICBjb250ZW50ID0gY2xl YW5fcGRmKGNvbnRlbnQpOworKyAgICAgICAgICAgIGV4cGVjdF9jb250ZW50ID0gY2xlYW5fcGRm KGV4cGVjdF9jb250ZW50KTsKKysgICAgICAgIH0KKysKKysgICAgICAgIC8vIERvbid0IGR1bXAg ZW50aXJlIGltYWdlcyB0byB0aGUgbG9nIG9uIGZhaWx1cmUuCisrICAgICAgICBhc3NlcnRfaXNf dHJ1ZShjb250ZW50ID09PSBleHBlY3RfY29udGVudCk7CisrICAgIH0pKTsKKyt9CisrCisrWwor KyAgICAicGRmIiwKKysgICAgInBuZyIsCisrICAgICJqcGciLAorK10KKysuZm9yRWFjaChmdW5j dGlvbiAoZm9ybWF0KSB7CisrICAgIHZhciBwcm9wcyAgPSB7fTsKKysKKysgICAgLy8gQWxsIHRl c3RzIGZhaWwgb24gTGludXguICBBbGwgdGVzdHMgZXhjZXB0IEpQRyBmYWlsIG9uIE1hYy4KKysg ICAgLy8gQ3VycmVudGx5IHVua25vd24gd2hpY2ggdGVzdHMgZmFpbCBvbiBXaW5kb3dzLgorKyAg ICBpZiAoZm9ybWF0ICE9PSAianBnIiB8fCBzeXN0ZW0ub3MubmFtZSAhPT0gIm1hYyIpCisrICAg ICAgICBwcm9wcy5leHBlY3RlZF9mYWlsID0gdHJ1ZTsKKysKKysgICAgYXN5bmNfdGVzdChmdW5j dGlvbiAoKSB7IHJlbmRlcl90ZXN0LmNhbGwodGhpcywgZm9ybWF0KTsgfSwKKysgICAgICAgICAg ICAgICBmb3JtYXQsIHByb3BzKTsKKyt9KTsKKy0tIAorMi4zOS4wCisKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcGhhbnRvbWpzL3BhdGNoZXMvMDAwMy1BZGp1c3Qtc29tZS1BUEktZm9yLXRoZS1sYXRl c3QtUXRXZWJLaXQtMTUzNDEucGF0Y2ggYi9zcmNwa2dzL3BoYW50b21qcy9wYXRjaGVzLzAwMDMt QWRqdXN0LXNvbWUtQVBJLWZvci10aGUtbGF0ZXN0LVF0V2ViS2l0LTE1MzQxLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWFmYjg2Yjg4MjEyCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9waGFudG9tanMvcGF0Y2hlcy8wMDAzLUFkanVzdC1zb21lLUFQ SS1mb3ItdGhlLWxhdGVzdC1RdFdlYktpdC0xNTM0MS5wYXRjaApAQCAtMCwwICsxLDE5NSBAQAor RnJvbSA0ODc1MmJmZWFhZjZkMTZiMWNmYjUxZmJjZDMwMGQxZjI1ZTE3YTZhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQorRnJvbTogQXJpeWEgSGlkYXlhdCA8YXJpeWEuaGlkYXlhdEBnbWFpbC5j b20+CitEYXRlOiBGcmksIDI5IE5vdiAyMDE5IDIyOjM5OjA5IC0wODAwCitTdWJqZWN0OiBbUEFU Q0ggMy80XSBBZGp1c3Qgc29tZSBBUEkgZm9yIHRoZSBsYXRlc3QgUXRXZWJLaXQgKCMxNTM0MSkK KworLS0tCisgc3JjL2Jvb3RzdHJhcC5qcyAgICAgICB8IDMgKystCisgc3JjL2NvbmZpZy5jcHAg ICAgICAgICB8IDIgKy0KKyBzcmMvbW9kdWxlcy93ZWJwYWdlLmpzIHwgMyArKy0KKyBzcmMvcGhh bnRvbS5jcHAgICAgICAgIHwgNSArKy0tLQorIHNyYy9yZXBsLmNwcCAgICAgICAgICAgfCA3ICsr Ky0tLS0KKyBzcmMvdXRpbHMuY3BwICAgICAgICAgIHwgNiArKystLS0KKyBzcmMvd2VicGFnZS5j cHAgICAgICAgIHwgOSArKysrLS0tLS0KKyBzcmMvd2VicGFnZS5oICAgICAgICAgIHwgMiArLQor IDggZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMTkgZGVsZXRpb25zKC0pCisKK2Rp ZmYgLS1naXQgYS9zcmMvYm9vdHN0cmFwLmpzIGIvc3JjL2Jvb3RzdHJhcC5qcworaW5kZXggNzg4 ZDQ1MjAyLi4xMDQyY2ViNmEgMTAwNjQ0CistLS0gYS9zcmMvYm9vdHN0cmFwLmpzCisrKysgYi9z cmMvYm9vdHN0cmFwLmpzCitAQCAtNzMsNyArNzMsOCBAQCBwaGFudG9tLl9fZGVmaW5lRXJyb3JT aWduYWxIYW5kbGVyX18gPSBmdW5jdGlvbihvYmosIHBhZ2UsIGhhbmRsZXJzKSB7CisgICAgICAg ICAgICAgcmV0dXJuICghIWhhbmRsZXJPYmogJiYgdHlwZW9mIGhhbmRsZXJPYmouY2FsbGJhY2sg PT09ICJmdW5jdGlvbiIgJiYgdHlwZW9mIGhhbmRsZXJPYmouY29ubmVjdG9yID09PSAiZnVuY3Rp b24iKSA/CisgICAgICAgICAgICAgICAgIGhhbmRsZXJzW2hhbmRsZXJOYW1lXS5jYWxsYmFjayA6 CisgICAgICAgICAgICAgICAgIHVuZGVmaW5lZDsKKy0gICAgICAgIH0KKysgICAgICAgIH0sCisr ICAgICAgICBjb25maWd1cmFibGU6IHRydWUKKyAgICAgfSk7CisgfTsKKyAKK2RpZmYgLS1naXQg YS9zcmMvY29uZmlnLmNwcCBiL3NyYy9jb25maWcuY3BwCitpbmRleCBhODFiZTJmMzYuLjY2MWQ2 YzhjOSAxMDA2NDQKKy0tLSBhL3NyYy9jb25maWcuY3BwCisrKysgYi9zcmMvY29uZmlnLmNwcAor QEAgLTE3Nyw3ICsxNzcsNyBAQCB2b2lkIENvbmZpZzo6bG9hZEpzb25GaWxlKGNvbnN0IFFTdHJp bmcmIGZpbGVQYXRoKQorICAgICAvLyBBZGQgdGhpcyBvYmplY3QgdG8gdGhlIGdsb2JhbCBzY29w ZQorICAgICB3ZWJQYWdlLm1haW5GcmFtZSgpLT5hZGRUb0phdmFTY3JpcHRXaW5kb3dPYmplY3Qo ImNvbmZpZyIsIHRoaXMpOworICAgICAvLyBBcHBseSB0aGUgSlNPTiBjb25maWcgc2V0dGluZ3Mg dG8gdGhpcyB2ZXJ5IG9iamVjdAorLSAgICB3ZWJQYWdlLm1haW5GcmFtZSgpLT5ldmFsdWF0ZUph dmFTY3JpcHQoY29uZmlndXJhdG9yLmFyZyhqc29uQ29uZmlnKSwgUVN0cmluZygpKTsKKysgICAg d2ViUGFnZS5tYWluRnJhbWUoKS0+ZXZhbHVhdGVKYXZhU2NyaXB0KGNvbmZpZ3VyYXRvci5hcmco anNvbkNvbmZpZykpOworIH0KKyAKKyBRU3RyaW5nIENvbmZpZzo6aGVscFRleHQoKSBjb25zdAor ZGlmZiAtLWdpdCBhL3NyYy9tb2R1bGVzL3dlYnBhZ2UuanMgYi9zcmMvbW9kdWxlcy93ZWJwYWdl LmpzCitpbmRleCAyMGVhZTlhODUuLjA3NjBhNzRiNCAxMDA2NDQKKy0tLSBhL3NyYy9tb2R1bGVz L3dlYnBhZ2UuanMKKysrKyBiL3NyYy9tb2R1bGVzL3dlYnBhZ2UuanMKK0BAIC0xMTUsNyArMTE1 LDggQEAgZnVuY3Rpb24gZGVmaW5lUGFnZVNpZ25hbEhhbmRsZXIocGFnZSwgaGFuZGxlcnMsIGhh bmRsZXJOYW1lLCBzaWduYWxOYW1lKSB7CisgICAgICAgICAgICAgcmV0dXJuICEhaGFuZGxlcnNb aGFuZGxlck5hbWVdICYmIHR5cGVvZiBoYW5kbGVyc1toYW5kbGVyTmFtZV0uY2FsbGJhY2sgPT09 ICJmdW5jdGlvbiIgPworICAgICAgICAgICAgICAgICBoYW5kbGVyc1toYW5kbGVyTmFtZV0uY2Fs bGJhY2sgOgorICAgICAgICAgICAgICAgICB1bmRlZmluZWQ7CistICAgICAgICB9CisrICAgICAg ICB9LAorKyAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlCisgICAgIH0pOworIH0KKyAKK2RpZmYg LS1naXQgYS9zcmMvcGhhbnRvbS5jcHAgYi9zcmMvcGhhbnRvbS5jcHAKK2luZGV4IDU0MTdiOWJl Yi4uOTU2NWE4OWVhIDEwMDY0NAorLS0tIGEvc3JjL3BoYW50b20uY3BwCisrKysgYi9zcmMvcGhh bnRvbS5jcHAKK0BAIC0zODYsNyArMzg2LDcgQEAgdm9pZCBQaGFudG9tOjpsb2FkTW9kdWxlKGNv bnN0IFFTdHJpbmcmIG1vZHVsZVNvdXJjZSwgY29uc3QgUVN0cmluZyYgZmlsZW5hbWUpCisgICAg ICAgICAicmVxdWlyZS5jYWNoZVsnIiArIGZpbGVuYW1lICsgIiddLmV4cG9ydHMsIiArCisgICAg ICAgICAicmVxdWlyZS5jYWNoZVsnIiArIGZpbGVuYW1lICsgIiddIiArCisgICAgICAgICAiKSk7 IjsKKy0gICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+ZXZhbHVhdGVKYXZhU2NyaXB0KHNjcmlwdFNv dXJjZSwgUVN0cmluZyhKQVZBU0NSSVBUX1NPVVJDRV9QTEFURk9STV9VUkwpLmFyZyhRRmlsZUlu Zm8oZmlsZW5hbWUpLmZpbGVOYW1lKCkpKTsKKysgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+ZXZh bHVhdGVKYXZhU2NyaXB0KHNjcmlwdFNvdXJjZSk7CisgfQorIAorIGJvb2wgUGhhbnRvbTo6aW5q ZWN0SnMoY29uc3QgUVN0cmluZyYganNGaWxlUGF0aCkKK0BAIC00ODMsOCArNDgzLDcgQEAgdm9p ZCBQaGFudG9tOjpvbkluaXRpYWxpemVkKCkKKyAKKyAgICAgLy8gQm9vdHN0cmFwIHRoZSBQaGFu dG9tSlMgc2NvcGUKKyAgICAgbV9wYWdlLT5tYWluRnJhbWUoKS0+ZXZhbHVhdGVKYXZhU2NyaXB0 KAorLSAgICAgICAgVXRpbHM6OnJlYWRSZXNvdXJjZUZpbGVVdGY4KCI6L2Jvb3RzdHJhcC5qcyIp LAorLSAgICAgICAgUVN0cmluZyhKQVZBU0NSSVBUX1NPVVJDRV9QTEFURk9STV9VUkwpLmFyZygi Ym9vdHN0cmFwLmpzIikKKysgICAgICAgIFV0aWxzOjpyZWFkUmVzb3VyY2VGaWxlVXRmOCgiOi9i b290c3RyYXAuanMiKQorICAgICApOworIH0KKyAKK2RpZmYgLS1naXQgYS9zcmMvcmVwbC5jcHAg Yi9zcmMvcmVwbC5jcHAKK2luZGV4IDQ1YTQ3NWJjMS4uN2YyNWEyMmIwIDEwMDY0NAorLS0tIGEv c3JjL3JlcGwuY3BwCisrKysgYi9zcmMvcmVwbC5jcHAKK0BAIC0xNDcsNyArMTQ3LDcgQEAgUkVQ TDo6UkVQTChRV2ViRnJhbWUqIHdlYmZyYW1lLCBQaGFudG9tKiBwYXJlbnQpCisgICAgIGxpbmVu b2lzZVNldENvbXBsZXRpb25DYWxsYmFjayhSRVBMOjpvZmZlckNvbXBsZXRpb24pOworIAorICAg ICAvLyBJbmplY3QgUkVQTCB1dGlsaXR5IGZ1bmN0aW9ucworLSAgICBtX3dlYmZyYW1lLT5ldmFs dWF0ZUphdmFTY3JpcHQoVXRpbHM6OnJlYWRSZXNvdXJjZUZpbGVVdGY4KCI6L3JlcGwuanMiKSwg UVN0cmluZyhKQVZBU0NSSVBUX1NPVVJDRV9QTEFURk9STV9VUkwpLmFyZygicmVwbC5qcyIpKTsK KysgICAgbV93ZWJmcmFtZS0+ZXZhbHVhdGVKYXZhU2NyaXB0KFV0aWxzOjpyZWFkUmVzb3VyY2VG aWxlVXRmOCgiOi9yZXBsLmpzIikpOworIAorICAgICAvLyBBZGQgc2VsZiB0byBKYXZhU2NyaXB0 IHdvcmxkCisgICAgIG1fd2ViZnJhbWUtPmFkZFRvSmF2YVNjcmlwdFdpbmRvd09iamVjdCgiX3Jl cGwiLCB0aGlzKTsKK0BAIC0xODQsOCArMTg0LDcgQEAgdm9pZCBSRVBMOjpvZmZlckNvbXBsZXRp b24oY29uc3QgY2hhciogYnVmLCBsaW5lbm9pc2VDb21wbGV0aW9ucyogbGMpCisgICAgIFFTdHJp bmdMaXN0IGNvbXBsZXRpb25zID0gUkVQTDo6Z2V0SW5zdGFuY2UoKS0+bV93ZWJmcmFtZS0+ZXZh bHVhdGVKYXZhU2NyaXB0KAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRU3Ry aW5nKEpTX1JFVFVSTl9QT1NTSUJMRV9DT01QTEVUSU9OUykuYXJnKAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgdG9JbnNwZWN0LAorLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgdG9Db21wbGV0ZSksCistICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFFTdHJpbmcoKQorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdG9Db21wbGV0ZSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApLnRvU3RyaW5n TGlzdCgpOworIAorICAgICBmb3JlYWNoKFFTdHJpbmcgYywgY29tcGxldGlvbnMpIHsKK0BAIC0y MTAsNyArMjA5LDcgQEAgdm9pZCBSRVBMOjpzdGFydExvb3AoKQorICAgICAgICAgICAgIC8vIFNl bmQgdGhlIHVzZXIgaW5wdXQgdG8gdGhlIG1haW4gUGhhbnRvbSBmcmFtZSBmb3IgZXZhbHVhdGlv bgorICAgICAgICAgICAgIG1fd2ViZnJhbWUtPmV2YWx1YXRlSmF2YVNjcmlwdCgKKyAgICAgICAg ICAgICAgICAgUVN0cmluZyhKU19FVkFMX1VTRVJfSU5QVVQpLmFyZygKKy0gICAgICAgICAgICAg ICAgICAgIFFTdHJpbmcodXNlcklucHV0KS5yZXBsYWNlKCciJywgIlxcXCIiKSksIFFTdHJpbmco InBoYW50b21qczovL3JlcGwtaW5wdXQiKSk7CisrICAgICAgICAgICAgICAgICAgICBRU3RyaW5n KHVzZXJJbnB1dCkucmVwbGFjZSgnIicsICJcXFwiIikpKTsKKyAKKyAgICAgICAgICAgICAvLyBT YXZlIGNvbW1hbmQgaW4gdGhlIFJFUEwgaGlzdG9yeQorICAgICAgICAgICAgIGxpbmVub2lzZUhp c3RvcnlBZGQodXNlcklucHV0KTsKK2RpZmYgLS1naXQgYS9zcmMvdXRpbHMuY3BwIGIvc3JjL3V0 aWxzLmNwcAoraW5kZXggMTZkOTMzZWY5Li45OTcwZTFjYzAgMTAwNjQ0CistLS0gYS9zcmMvdXRp bHMuY3BwCisrKysgYi9zcmMvdXRpbHMuY3BwCitAQCAtMTMyLDcgKzEzMiw3IEBAIGJvb2wgaW5q ZWN0SnNJbkZyYW1lKGNvbnN0IFFTdHJpbmcmIGpzRmlsZVBhdGgsIGNvbnN0IFFTdHJpbmcmIGpz RmlsZUxhbmd1YWdlLCBjCisgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgIH0KKyAgICAgLy8g RXhlY3V0ZSBKUyBjb2RlIGluIHRoZSBjb250ZXh0IG9mIHRoZSBkb2N1bWVudAorLSAgICB0YXJn ZXRGcmFtZS0+ZXZhbHVhdGVKYXZhU2NyaXB0KHNjcmlwdEJvZHksIFFTdHJpbmcoSkFWQVNDUklQ VF9TT1VSQ0VfQ09ERV9VUkwpLmFyZyhRRmlsZUluZm8oc2NyaXB0UGF0aCkuZmlsZU5hbWUoKSkp OworKyAgICB0YXJnZXRGcmFtZS0+ZXZhbHVhdGVKYXZhU2NyaXB0KHNjcmlwdEJvZHkpOworICAg ICByZXR1cm4gdHJ1ZTsKKyB9CisgCitAQCAtMTQ3LDEwICsxNDcsMTAgQEAgYm9vbCBsb2FkSlNG b3JEZWJ1Zyhjb25zdCBRU3RyaW5nJiBqc0ZpbGVQYXRoLCBjb25zdCBRU3RyaW5nJiBqc0ZpbGVM YW5ndWFnZSwgY28KKyAgICAgUVN0cmluZyBzY3JpcHRCb2R5ID0ganNGcm9tU2NyaXB0RmlsZShz Y3JpcHRQYXRoLCBqc0ZpbGVMYW5ndWFnZSwganNGaWxlRW5jKTsKKyAKKyAgICAgc2NyaXB0Qm9k eSA9IFFTdHJpbmcoImZ1bmN0aW9uIF9fcnVuKCkge1xuJTFcbn0iKS5hcmcoc2NyaXB0Qm9keSk7 CistICAgIHRhcmdldEZyYW1lLT5ldmFsdWF0ZUphdmFTY3JpcHQoc2NyaXB0Qm9keSwgUVN0cmlu ZyhKQVZBU0NSSVBUX1NPVVJDRV9DT0RFX1VSTCkuYXJnKFFGaWxlSW5mbyhzY3JpcHRQYXRoKS5m aWxlTmFtZSgpKSk7CisrICAgIHRhcmdldEZyYW1lLT5ldmFsdWF0ZUphdmFTY3JpcHQoc2NyaXB0 Qm9keSk7CisgCisgICAgIGlmIChhdXRvcnVuKSB7CistICAgICAgICB0YXJnZXRGcmFtZS0+ZXZh bHVhdGVKYXZhU2NyaXB0KCJfX3J1bigpIiwgUVN0cmluZygpKTsKKysgICAgICAgIHRhcmdldEZy YW1lLT5ldmFsdWF0ZUphdmFTY3JpcHQoIl9fcnVuKCkiKTsKKyAgICAgfQorIAorICAgICByZXR1 cm4gdHJ1ZTsKK2RpZmYgLS1naXQgYS9zcmMvd2VicGFnZS5jcHAgYi9zcmMvd2VicGFnZS5jcHAK K2luZGV4IDMwNTA4NWQ4Ny4uZGY5NTA0OWE2IDEwMDY0NAorLS0tIGEvc3JjL3dlYnBhZ2UuY3Bw CisrKysgYi9zcmMvd2VicGFnZS5jcHAKK0BAIC03NTcsOCArNzU3LDcgQEAgUVZhcmlhbnQgV2Vi UGFnZTo6ZXZhbHVhdGVKYXZhU2NyaXB0KGNvbnN0IFFTdHJpbmcmIGNvZGUpCisgICAgIHFEZWJ1 ZygpIDw8ICJXZWJQYWdlIC0gZXZhbHVhdGVKYXZhU2NyaXB0IiA8PCBmdW5jdGlvbjsKKyAKKyAg ICAgZXZhbFJlc3VsdCA9IG1fY3VycmVudEZyYW1lLT5ldmFsdWF0ZUphdmFTY3JpcHQoCistICAg ICAgICAgICAgICAgICAgICAgZnVuY3Rpb24sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvLzwgZnVuY3Rpb24gZXZhbHVhdGVkCistICAgICAgICAgICAgICAgICAgICAgUVN0cmlu ZygicGhhbnRvbWpzOi8vd2VicGFnZS5ldmFsdWF0ZSgpIikpOyAvLzwgcmVmZXJlbmNlIHNvdXJj ZSBmaWxlCisrICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24pOworIAorICAgICBxRGVidWco KSA8PCAiV2ViUGFnZSAtIGV2YWx1YXRlSmF2YVNjcmlwdCByZXN1bHQiIDw8IGV2YWxSZXN1bHQ7 CisgCitAQCAtOTMwLDcgKzkyOSw3IEBAIHZvaWQgV2ViUGFnZTo6b3BlblVybChjb25zdCBRU3Ry aW5nJiBhZGRyZXNzLCBjb25zdCBRVmFyaWFudCYgb3AsIGNvbnN0IFFWYXJpYW50CisgICAgIH0K KyAKKyAgICAgaWYgKG5ldHdvcmtPcCA9PSBRTmV0d29ya0FjY2Vzc01hbmFnZXI6OlVua25vd25P cGVyYXRpb24pIHsKKy0gICAgICAgIG1fbWFpbkZyYW1lLT5ldmFsdWF0ZUphdmFTY3JpcHQoImNv bnNvbGUuZXJyb3IoJ1Vua25vd24gbmV0d29yayBvcGVyYXRpb246ICIgKyBvcGVyYXRpb24gKyAi Jyk7IiwgUVN0cmluZygpKTsKKysgICAgICAgIG1fbWFpbkZyYW1lLT5ldmFsdWF0ZUphdmFTY3Jp cHQoImNvbnNvbGUuZXJyb3IoJ1Vua25vd24gbmV0d29yayBvcGVyYXRpb246ICIgKyBvcGVyYXRp b24gKyAiJyk7Iik7CisgICAgICAgICByZXR1cm47CisgICAgIH0KKyAKK0BAIC0xMzI2LDcgKzEz MjUsNyBAQCBRU3RyaW5nIGdldEhlYWRlckZvb3Rlcihjb25zdCBRVmFyaWFudE1hcCYgbWFwLCBj b25zdCBRU3RyaW5nJiBrZXksIFFXZWJGcmFtZSogZgorICAgICAgICAgICAgIH0KKyAgICAgICAg IH0KKyAgICAgfQorLSAgICBmcmFtZS0+ZXZhbHVhdGVKYXZhU2NyaXB0KCJjb25zb2xlLmVycm9y KCdCYWQgaGVhZGVyIGNhbGxiYWNrIGdpdmVuLCB1c2UgcGhhbnRvbS5jYWxsYmFjayk7IiwgUVN0 cmluZygpKTsKKysgICAgZnJhbWUtPmV2YWx1YXRlSmF2YVNjcmlwdCgiY29uc29sZS5lcnJvcign QmFkIGhlYWRlciBjYWxsYmFjayBnaXZlbiwgdXNlIHBoYW50b20uY2FsbGJhY2spOyIpOworICAg ICByZXR1cm4gUVN0cmluZygpOworIH0KKyAKK0BAIC0xMzY1LDcgKzEzNjQsNyBAQCBib29sIFdl YlBhZ2U6OmluamVjdEpzKGNvbnN0IFFTdHJpbmcmIGpzRmlsZVBhdGgpCisgCisgdm9pZCBXZWJQ YWdlOjpfYXBwZW5kU2NyaXB0RWxlbWVudChjb25zdCBRU3RyaW5nJiBzY3JpcHRVcmwpCisgewor LSAgICBtX2N1cnJlbnRGcmFtZS0+ZXZhbHVhdGVKYXZhU2NyaXB0KFFTdHJpbmcoSlNfQVBQRU5E X1NDUklQVF9FTEVNRU5UKS5hcmcoc2NyaXB0VXJsKSwgc2NyaXB0VXJsKTsKKysgICAgbV9jdXJy ZW50RnJhbWUtPmV2YWx1YXRlSmF2YVNjcmlwdChRU3RyaW5nKEpTX0FQUEVORF9TQ1JJUFRfRUxF TUVOVCkuYXJnKHNjcmlwdFVybCkpOworIH0KKyAKKyBRT2JqZWN0KiBXZWJQYWdlOjpfZ2V0R2Vu ZXJpY0NhbGxiYWNrKCkKK2RpZmYgLS1naXQgYS9zcmMvd2VicGFnZS5oIGIvc3JjL3dlYnBhZ2Uu aAoraW5kZXggMDYyMTc5ZDI3Li4wZDVlMDZiN2YgMTAwNjQ0CistLS0gYS9zcmMvd2VicGFnZS5o CisrKysgYi9zcmMvd2VicGFnZS5oCitAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBOZXR3b3JrQWNj ZXNzTWFuYWdlcjsKKyBjbGFzcyBRV2ViSW5zcGVjdG9yOworIGNsYXNzIFBoYW50b207CisgCist Y2xhc3MgV2ViUGFnZSA6IHB1YmxpYyBRT2JqZWN0LCBwdWJsaWMgUVdlYkZyYW1lOjpQcmludENh bGxiYWNrCisrY2xhc3MgV2ViUGFnZSA6IHB1YmxpYyBRT2JqZWN0CisgeworICAgICBRX09CSkVD VAorICAgICBRX1BST1BFUlRZKFFTdHJpbmcgdGl0bGUgUkVBRCB0aXRsZSkKKy0tIAorMi4zOS4w CisKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcGhhbnRvbWpzL3BhdGNoZXMvMDAwNC1Vc2UtQ01ha2Ut YnVpbGQtc3lzdGVtLTE1Mzk3LnBhdGNoIGIvc3JjcGtncy9waGFudG9tanMvcGF0Y2hlcy8wMDA0 LVVzZS1DTWFrZS1idWlsZC1zeXN0ZW0tMTUzOTcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi5hNWQwZmExYmJjMDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3BoYW50b21qcy9wYXRjaGVzLzAwMDQtVXNlLUNNYWtlLWJ1aWxkLXN5c3RlbS0xNTM5Ny5w YXRjaApAQCAtMCwwICsxLDEwMDggQEAKK0Zyb20gNTM4ZDA1ZWQyNmY4MzA1MjI1OTdjMjYyMzg5 NGEyMTkzNzg1YWJhZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFyaXlhIEhpZGF5 YXQgPGFyaXlhLmhpZGF5YXRAZ21haWwuY29tPgorRGF0ZTogRnJpLCAyOSBOb3YgMjAxOSAyMjoy OToxNSAtMDgwMAorU3ViamVjdDogW1BBVENIIDQvNF0gVXNlIENNYWtlIGJ1aWxkIHN5c3RlbSAo IzE1Mzk3KQorCistLS0KKyAuZ2l0aWdub3JlICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTUg KysKKyBDTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgfCAgMzQgKysrKworIElOU1RB TEwgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0NiArKysrKworIGNvbmZpZ3VyZSAgICAg ICAgICAgICAgICAgICAgICAgICB8IDMxNyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysK KyBkZXBsb3kvLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAgfCAgIDIgLQorIGRlcGxveS9SRUFE TUUubWQgICAgICAgICAgICAgICAgICB8ICA0NCAtLS0tLQorIGRlcGxveS9icmFuZGVsZi5jICAg ICAgICAgICAgICAgICB8IDIxMiAtLS0tLS0tLS0tLS0tLS0tLS0tLQorIGRlcGxveS9idWlsZC1h bmQtcGFja2FnZS5zaCAgICAgICB8ICAgNiAtCisgZGVwbG95L2RvY2tlci1idWlsZC5zaCAgICAg ICAgICAgIHwgIDYyIC0tLS0tLQorIGRlcGxveS9wYWNrYWdlLnNoICAgICAgICAgICAgICAgICB8 IDEyMCAtLS0tLS0tLS0tLQorIHBoYW50b21qcy5wcm8gICAgICAgICAgICAgICAgICAgICB8ICAg MyAtCisgc3JjL2xpbmVub2lzZS9saW5lbm9pc2UucHJpICAgICAgIHwgICA5IC0KKyBzcmMvbW9u Z29vc2UvbW9uZ29vc2UucHJpICAgICAgICAgfCAgIDcgLQorIHNyYy9xY29tbWFuZGxpbmUvcWNv bW1hbmRsaW5lLnByaSB8ICAgNyAtCisgMTQgZmlsZXMgY2hhbmdlZCwgNDEyIGluc2VydGlvbnMo KyksIDQ3MiBkZWxldGlvbnMoLSkKKyBjcmVhdGUgbW9kZSAxMDA2NDQgQ01ha2VMaXN0cy50eHQK KyBjcmVhdGUgbW9kZSAxMDA2NDQgSU5TVEFMTAorIGNyZWF0ZSBtb2RlIDEwMDc1NSBjb25maWd1 cmUKKyBkZWxldGUgbW9kZSAxMDA2NDQgZGVwbG95Ly5naXRpZ25vcmUKKyBkZWxldGUgbW9kZSAx MDA2NDQgZGVwbG95L1JFQURNRS5tZAorIGRlbGV0ZSBtb2RlIDEwMDY0NCBkZXBsb3kvYnJhbmRl bGYuYworIGRlbGV0ZSBtb2RlIDEwMDc1NSBkZXBsb3kvYnVpbGQtYW5kLXBhY2thZ2Uuc2gKKyBk ZWxldGUgbW9kZSAxMDA3NTUgZGVwbG95L2RvY2tlci1idWlsZC5zaAorIGRlbGV0ZSBtb2RlIDEw MDc1NSBkZXBsb3kvcGFja2FnZS5zaAorIGRlbGV0ZSBtb2RlIDEwMDY0NCBwaGFudG9tanMucHJv CisgZGVsZXRlIG1vZGUgMTAwNjQ0IHNyYy9saW5lbm9pc2UvbGluZW5vaXNlLnByaQorIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmMvbW9uZ29vc2UvbW9uZ29vc2UucHJpCisgZGVsZXRlIG1vZGUgMTAw NjQ0IHNyYy9xY29tbWFuZGxpbmUvcWNvbW1hbmRsaW5lLnByaQorCitkaWZmIC0tZ2l0IGEvLmdp dGlnbm9yZSBiLy5naXRpZ25vcmUKK2luZGV4IDdjOGE5YzA4YS4uNTNlZjIwNTVkIDEwMDY0NAor LS0tIGEvLmdpdGlnbm9yZQorKysrIGIvLmdpdGlnbm9yZQorQEAgLTYwLDMgKzYwLDE4IEBAIGJp bi8KKyAqLmNsYXNzCisgYnVpbGQvCisgLmdyYWRsZS8KKysKKysjIENNYWtlCisrQ01ha2VMaXN0 cy50eHQudXNlcgorK0NNYWtlQ2FjaGUudHh0CisrQ01ha2VGaWxlcworK0NNYWtlU2NyaXB0cwor K1Rlc3RpbmcKKytNYWtlZmlsZQorK2NtYWtlX2luc3RhbGwuY21ha2UKKytpbnN0YWxsX21hbmlm ZXN0LnR4dAorK2NvbXBpbGVfY29tbWFuZHMuanNvbgorK0NUZXN0VGVzdGZpbGUuY21ha2UKKytf ZGVwcworKypfYXV0b2dlbgorKworZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VM aXN0cy50eHQKK25ldyBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCAwMDAwMDAwMDAuLmMyM2UxMWY0 OQorLS0tIC9kZXYvbnVsbAorKysrIGIvQ01ha2VMaXN0cy50eHQKK0BAIC0wLDAgKzEsMzQgQEAK KytjbWFrZV9taW5pbXVtX3JlcXVpcmVkKFZFUlNJT04gMy41LjApCisrcHJvamVjdChwaGFudG9t anMpCisrCisrc2V0IChDTUFLRV9DWFhfU1RBTkRBUkQgMTEpCisrCisrZmluZF9wYWNrYWdlKFF0 NSBDT01QT05FTlRTIENvcmUgTmV0d29yayBXZWJLaXRXaWRnZXRzIFJFUVVJUkVEKQorK2ZpbmRf cGFja2FnZShUaHJlYWRzIFJFUVVJUkVEKQorKworK21lc3NhZ2UoIlVzaW5nIFF0IHZlcnNpb24g JHtRdDVDb3JlX1ZFUlNJT059IikKKytpZiAoUXQ1Q29yZV9WRVJTSU9OIFZFUlNJT05fTEVTUyA1 LjUuMCkKKysgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIlRoaXMgdmVyc2lvbiBvZiBRdCBpcyBub3Qg c3VwcG9ydGVkLiBQbGVhc2UgdXNlIFF0IDUuNSBvciBsYXRlciIpCisrZW5kaWYoKQorKworK3Nl dChDTUFLRV9BVVRPTU9DIE9OKQorK3NldChDTUFLRV9BVVRPUkNDIE9OKQorKworK3NldChDTUFL RV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtDTUFLRV9CSU5BUllfRElSfS9iaW4pCisrCisr ZmlsZShHTE9CX1JFQ1VSU0UgUEhBTlRPTUpTX1NPVVJDRVMgc3JjLyouY3BwKQorK2luY2x1ZGVf ZGlyZWN0b3JpZXMoc3JjKQorK3NldChDTUFLRV9JTkNMVURFX0NVUlJFTlRfRElSIE9OKQorKwor K3NldChUSElSRFBBUlRZX1NPVVJDRVMgc3JjL21vbmdvb3NlL21vbmdvb3NlLmMgc3JjL3Fjb21t YW5kbGluZS9xY29tbWFuZGxpbmUuY3BwIHNyYy9saW5lbm9pc2Uvc3JjL2xpbmVub2lzZS5jKQor K2luY2x1ZGVfZGlyZWN0b3JpZXMoc3JjL2xpbmVub2lzZS9zcmMpCisraW5jbHVkZV9kaXJlY3Rv cmllcyhzcmMvbW9uZ29vc2UpCisraW5jbHVkZV9kaXJlY3RvcmllcyhzcmMvcWNvbW1hbmRsaW5l KQorKworK3NldChFWFRSQV9MSUJTIGRsKQorKworK2FkZF9leGVjdXRhYmxlKCR7UFJPSkVDVF9O QU1FfSBzcmMvcGhhbnRvbWpzLnFyYyBzcmMvZ2hvc3Rkcml2ZXIvZ2hvc3Rkcml2ZXIucXJjICR7 UEhBTlRPTUpTX1NPVVJDRVN9ICR7VEhJUkRQQVJUWV9TT1VSQ0VTfSkKKyt0YXJnZXRfbGlua19s aWJyYXJpZXMoJHtQUk9KRUNUX05BTUV9ICR7RVhUUkFfTElCU30gUXQ1OjpDb3JlIFF0NTo6TmV0 d29yayBRdDU6OldlYktpdFdpZGdldHMgVGhyZWFkczo6VGhyZWFkcykKKytpbnN0YWxsKFRBUkdF VFMgJHtQUk9KRUNUX05BTUV9IERFU1RJTkFUSU9OIGJpbikKKysKKythZGRfY3VzdG9tX3Rhcmdl dChjaGVjayBDT01NQU5EIHB5dGhvbiB0ZXN0L3J1bi10ZXN0cy5weSAtdikKK2RpZmYgLS1naXQg YS9JTlNUQUxMIGIvSU5TVEFMTAorbmV3IGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IDAwMDAwMDAw MC4uNmM4YjVlYTY1CistLS0gL2Rldi9udWxsCisrKysgYi9JTlNUQUxMCitAQCAtMCwwICsxLDQ2 IEBACisrSW5zdGFsbGF0aW9uIEluc3RydWN0aW9ucworKyoqKioqKioqKioqKioqKioqKioqKioq KioKKysKKytTeXN0ZW0gcmVxdWlyZW1lbnRzOgorKworKyAgKiBDKysgdG9vbGNoYWluIHN1Y2gg YXMgZysrIDcgb3IgbGF0ZXIKKysgICogQ01ha2UgdmVyc2lvbiAzLjUgb3IgbGF0ZXIKKysgICog UXQgNSB0b29sa2l0CisrICAqIFB5dGhvbiAyLjcgKHRvIHJ1biB0aGUgdGVzdHMpCisrCisrCisr SW5zdGFsbGF0aW9uIG9uIExpbnV4CisrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrT24gRGVi aWFuL1VidW50dSwgdGhlIHJlcXVpcmVtZW50cyBjYW4gYmUgZnVsZmlsbGVkIGJ5IGluc3RhbGxp bmcgdGhlc2UgcGFja2FnZXM6CisrCisrICBzdWRvIGFwdCBpbnN0YWxsIGcrKyBjbWFrZSBxdDUt ZGVmYXVsdCBsaWJxdDV3ZWJraXQ1LWRldiBweXRob24KKysKKytBZnRlciB1bnBhY2tpbmcgdGhl IHNvdXJjZSB0YXJiYWxsIG9yIGNsb25pbmcgdGhlIHJlcG9zaXRvcnk6CisrCisrICAuL2NvbmZp Z3VyZSAmJiBtYWtlCisrCisrRG8gYSBxdWljayBzYW5pdHkgY2hlY2s6CisrCisrICAuL2Jpbi9w aGFudG9tanMgLS12ZXJzaW9uCisrCisrUnVuIHRoZSB0ZXN0IHN1aXRlOgorKworKyAgbWFrZSBj aGVjaworKworK0luc3RhbGwgaXQgKG1heSByZXF1aXJlIHN1ZG8pOgorKworKyAgbWFrZSBpbnN0 YWxsCisrCisrCisrSW5zdGFsbGF0aW9uIG9uIFdpbmRvd3MKKystLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorKworK1RvIGJlIHdyaXR0ZW4uCisrCisrCisrSW5zdGFsbGF0aW9uIG9uIG1hY09TCisr LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisrCisrVG8gYmUgd3JpdHRlbi4KKysKK2RpZmYgLS1naXQg YS9jb25maWd1cmUgYi9jb25maWd1cmUKK25ldyBmaWxlIG1vZGUgMTAwNzU1CitpbmRleCAwMDAw MDAwMDAuLmE4YTc1ZDU2NgorLS0tIC9kZXYvbnVsbAorKysrIGIvY29uZmlndXJlCitAQCAtMCww ICsxLDMxNyBAQAorKyMhL2Jpbi9zaAorKworKyMgQXV0b3Rvb2xzLXN0eWxlICguL2NvbmZpZ3Vy ZSkgd3JhcHBlciBmb3IgQ01ha2UKKysjIDxodHRwczovL2dpdGh1Yi5jb20vbmVtZXF1L2NvbmZp Z3VyZS1jbWFrZT4KKysjCisrIyAgICoqKiBJTVBPUlRBTlQgKioqCisrIworKyMgICBZb3UgbXVz dCBpbmNsdWRlIHRoZSBHTlVJbnN0YWxsRGlycyBtb2R1bGUgKHdoaWNoIGNvbWVzIHdpdGgKKysj ICAgQ01ha2UpIGluIHlvdXIgcHJvamVjdC4gIEp1c3QgcHV0ICJpbmNsdWRlIChHTlVJbnN0YWxs RGlycykiIGluCisrIyAgIHlvdSBDTWFrZUxpc3RzLnR4dCBhbmQgeW91IHNob3VsZCBiZSBnb29k LgorKyMKKysjIFRoaXMgc2NyaXB0IHdhcyBvcmlnaW5hbGx5IHdyaXR0ZW4gZm9yIFNxdWFzaAor KyMgPGh0dHBzOi8vcXVpeGRiLmdpdGh1Yi5pby9zcXVhc2gvPiBieSBFdmFuIE5lbWVyc29uCisr IyA8ZXZhbkBuZW1lcnNvbi5jb20+LCBidXQgaGFzIGJlZW4gc3B1biBvZmYgaW50byBhIHNlcGFy YXRlCisrIyByZXBvc2l0b3J5LiAgUGxlYXNlIGZlZWwgZnJlZSB0byBjb3B5IGl0IGludG8geW91 ciBvd24gcmVwb3NpdG9yeSwKKysjIHRob3VnaCBJIHdvdWxkIGFwcHJlY2lhdGUgaXQgaWYgeW91 IHdvdWxkIHBvc3QgaW1wcm92ZW1lbnRzLCBidWdzLAorKyMgZmVhdHVyZSByZXF1ZXN0cywgZXRj LiB0byB0aGUgaXNzdWUgdHJhY2tlciBhdAorKyMgPGh0dHBzOi8vZ2l0aHViLmNvbS9uZW1lcXUv Y29uZmlndXJlLWNtYWtlL2lzc3Vlcz4uCisrIworKyMgVG8gdGhlIGV4dGVudCBwb3NzaWJsZSB1 bmRlciBsYXcsIHRoZSBhdXRob3IocykgaGVyZWJ5IHdhaXZlIGFsbAorKyMgY29weXJpZ2h0IGFu ZCByZWxhdGVkIG9yIG5laWdoYm9yaW5nIHJpZ2h0cyB0byB0aGlzIHdvcmsuICBGb3IKKysjIGRl dGFpbHMsIHNlZSA8aHR0cHM6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL3B1YmxpY2RvbWFpbi96ZXJv LzEuMC8+CisrCisrVE9QX1NSQ0RJUj0iJChkaXJuYW1lICQwKSIKKysKKytpZiBbICIke0NNQUtF X0NNRH0iID0gIiIgXTsgdGhlbgorKyAgICBDTUFLRV9DTUQ9ImNtYWtlIgorK2ZpCisrCisrQlVJ TERfVFlQRT0iRGVidWciCisrUFJFRklYPS91c3IvbG9jYWwKKytMSUJESVI9CisrQ01BS0VfQVJH Uz0KKysKKytpZiBbIC1lICIke1RPUF9TUkNESVJ9Ly5jb25maWd1cmUtY3VzdG9tLnNoIiBdOyB0 aGVuCisrICAgIC4gIiR7VE9QX1NSQ0RJUn0vLmNvbmZpZ3VyZS1jdXN0b20uc2giCisrZmkKKysK KytxdW90ZSgpIHsKKysgICAgZWNobyAiJDEiIHwgc2VkIC1lICJzfCd8J1xcXFwnJ3xnOyAxcy9e LycvOyBcJHMvXCQvJy8iCisrfQorKworK2V4dHJhY3RfdmFyX3N0cmluZygpIHsKKysgICAgVkFS X05BTUU9JDEKKysgICAgVkFSX05BTUU9JChlY2hvICQxIHwgc2VkIC1lICdzL1sgXHRdKiQvLycp CisrICAgIGlmIFsgIngkMiIgIT0gIngiIF07IHRoZW4KKysgICAgICAgIFZBUl9WQUxVRT0kMgor KyAgICBlbHNlCisrICAgICAgICBWQVJfVkFMVUU9eWVzCisrICAgIGZpCisrCisrICAgIGlmIFsg IngkMyIgIT0gIngiIF07IHRoZW4KKysgICAgICAgIFZBUl9VQ19OQU1FPSQzCisrICAgIGVsc2UK KysgICAgICAgIFZBUl9VQ19OQU1FPSQoZWNobyAiJDEiIHwgdHIgJ1s6bG93ZXI6XScgJ1s6dXBw ZXI6XScgfCB0ciAtYyAnWzphbG51bTpdJyAnXycgfCBzZWQgJ3MvXyQvL2cnKQorKyAgICBmaQor K30KKysKKytzZXRfY29uZmlnX3ZhcigpIHsKKysgICAgaXNfd2l0aD1uCisrICAgIGNhc2UgIiQx IiBpbgorKyAgICAgICAgIi0tZW5hYmxlLSIqKQorKyAgICAgICAgICAgIG5hbWU9IiR7MSMtLWVu YWJsZS19IgorKyAgICAgICAgICAgIGNmZz0iJHtFTkFCTEVfVkFSU30iCisrICAgICAgICAgICAg OzsKKysgICAgICAgICItLWRpc2FibGUtIiopCisrICAgICAgICAgICAgbmFtZT0iJHsxIy0tZGlz YWJsZS19IjsKKysgICAgICAgICAgICBjZmc9IiR7RElTQUJMRV9WQVJTfSI7CisrICAgICAgICAg ICAgOzsKKysgICAgICAgICItLXdpdGgtIiopCisrICAgICAgICAgICAgIyBJRlM9Ij0iIHJlYWQg LXJhIFdJVEhBUkdTIDw8PCAiJHsxfSIKKysgICAgICAgICAgICBuYW1lPSIkezEjLS13aXRoLX0i CisrICAgICAgICAgICAgY2ZnPSIke1dJVEhfVkFSU30iCisrICAgICAgICAgICAgaXNfd2l0aD15 CisrICAgICAgICAgICAgOzsKKysgICAgZXNhYworKworKyAgICBmb3VuZD1uCisrICAgIGZvciB2 YXJzdHJpbmcgaW4gJGNmZzsgZG8KKysgICAgICAgIGV4dHJhY3RfdmFyX3N0cmluZyAkKGVjaG8g IiR7dmFyc3RyaW5nfSIgfCB0ciAnfCcgJyAnKQorKyAgICAgICAgaWYgWyAieCRWQVJfTkFNRSIg PSAieCRuYW1lIiBdOyB0aGVuCisrICAgICAgICAgICAgZm91bmQ9eQorKyAgICAgICAgICAgIGJy ZWFrOworKyAgICAgICAgZmkKKysgICAgZG9uZQorKworKyAgICBpZiBbICIkZm91bmQiID0gInki IF07IHRoZW4KKysgICAgICAgIGlmIFsgIngkaXNfd2l0aCIgPSAieHkiIF07IHRoZW4KKysgICAg ICAgICAgICBDTUFLRV9BUkdTPSIkQ01BS0VfQVJHUyAtRCR7VkFSX1VDX05BTUV9PSQocXVvdGUg IiQyIikiCisrICAgICAgICBlbHNlCisrICAgICAgICAgICAgQ01BS0VfQVJHUz0iJENNQUtFX0FS R1MgLUQke1ZBUl9VQ19OQU1FfT0kKHF1b3RlICIke1ZBUl9WQUxVRX0iKSIKKysgICAgICAgIGZp CisrICAgIGVsc2UKKysgICAgICAgIGVjaG8gIlVua25vd24gcGFyYW1ldGVyOiAkezF9IgorKyAg ICAgICAgZXhpdCAxCisrICAgIGZpCisrfQorKworK3ByZWZpeF90b19vZmZzZXQoKSB7CisrICAg IGV4cHIgJChlY2hvICIkezF9IiB8IGF3ayAneyBwcmludCBsZW5ndGggfScpICsgMQorK30KKysK KytwcmludF9oZWxwKCkgeworKyAgICBjYXQgPDxFT0YgPiYyCisrICAtaCwgLS1oZWxwICAgICAg ICAgICAgICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAorKyAgLS1kaXNhYmxlLWRlYnVnICAg ICAgICAgZGlzYWJsZSBkZWJ1Z2dpbmcgbW9kZQorKyAgLS1wYXNzLXRocnUgICAgICAgICAgICAg cGFzcyByZW1haW5pbmcgYXJndW1lbnRzIHRocm91Z2ggdG8gQ01ha2UKKysKKysgIC0tcHJlZml4 PVBSRUZJWCAgICAgICAgIGluc3RhbGwgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGZpbGVzIGlu IFBSRUZJWAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgWyRQUkVGSVhdCisrICAtLWJpbmRp cj1ESVIgICAgICAgICAgICB1c2VyIGV4ZWN1dGFibGVzIFtQUkVGSVgvYmluXQorKyAgLS1zYmlu ZGlyPURJUiAgICAgICAgICAgc3lzdGVtIGFkbWluIGV4ZWN1dGFibGVzIFtQUkVGSVgvc2Jpbl0K KysgIC0tbGliZXhlY2Rpcj1ESVIgICAgICAgIHByb2dyYW0gZXhlY3V0YWJsZXMgW1BSRUZJWC9s aWJleGVjXQorKyAgLS1zeXNjb25mZGlyPURJUiAgICAgICAgcmVhZC1vbmx5IHNpbmdsZS1tYWNo aW5lIGRhdGEgW1BSRUZJWC9ldGNdCisrICAtLXNoYXJlZHN0YXRlZGlyPURJUiAgICBtb2RpZmlh YmxlIGFyY2hpdGVjdHVyZS1pbmRlcGVuZGVudCBkYXRhIFtQUkVGSVgvY29tXQorKyAgLS1sb2Nh bHN0YXRlZGlyPURJUiAgICAgbW9kaWZpYWJsZSBzaW5nbGUtbWFjaGluZSBkYXRhIFtQUkVGSVgv dmFyXQorKyAgLS1saWJkaXI9RElSICAgICAgICAgICAgb2JqZWN0IGNvZGUgbGlicmFyaWVzIFtQ UkVGSVgvbGliXQorKyAgLS1pbmNsdWRlZGlyPURJUiAgICAgICAgQyBoZWFkZXIgZmlsZXMgW1BS RUZJWC9pbmNsdWRlXQorKyAgLS1vbGRpbmNsdWRlZGlyPURJUiAgICAgQyBoZWFkZXIgZmlsZXMg Zm9yIG5vbi1nY2MgWy91c3IvaW5jbHVkZV0KKysgIC0tZGF0YXJvb3RkaXI9RElSICAgICAgIHJl YWQtb25seSBhcmNoLi1pbmRlcGVuZGVudCBkYXRhIHJvb3QgW1BSRUZJWC9zaGFyZV0KKysgIC0t ZGF0YWRpcj1ESVIgICAgICAgICAgIHJlYWQtb25seSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQg ZGF0YSBbREFUQVJPT1RESVJdCisrICAtLWluZm9kaXI9RElSICAgICAgICAgICBpbmZvIGRvY3Vt ZW50YXRpb24gW0RBVEFST09URElSL2luZm9dCisrICAtLWxvY2FsZWRpcj1ESVIgICAgICAgICBs b2NhbGUtZGVwZW5kZW50IGRhdGEgW0RBVEFST09URElSL2xvY2FsZV0KKysgIC0tbWFuZGlyPURJ UiAgICAgICAgICAgIG1hbiBkb2N1bWVudGF0aW9uIFtEQVRBUk9PVERJUi9tYW5dCisrICAtLWRv Y2Rpcj1ESVIgICAgICAgICAgICBkb2N1bWVudGF0aW9uIHJvb3QgW0RBVEFST09URElSL2RvYy9Q Uk9KRUNUX05BTUVdCisrRU9GCisrCisrICAgIGZpcnN0PXkKKysgICAgZm9yIHZhcnN0cmluZyBp biAke0VOQUJMRV9WQVJTfTsgZG8KKysgICAgICAgIGlmIFsgJGZpcnN0ID0gJ3knIF07IHRoZW4K KysgICAgICAgICAgICBlY2hvICIiCisrICAgICAgICAgICAgZmlyc3Q9bgorKyAgICAgICAgZmkK KysgICAgICAgIGV4dHJhY3RfdmFyX3N0cmluZyAkKGVjaG8gIiR7dmFyc3RyaW5nfSIgfCB0ciAn fCcgJyAnKQorKyAgICAgICAgdmFyX2RvY19uYW1lPSJFTkFCTEVfJHtWQVJfVUNfTkFNRX1fRE9D IgorKyAgICAgICAgZXZhbCAiZG9jc3RyaW5nPVwkJHZhcl9kb2NfbmFtZSIKKysgICAgICAgIGlm IFsgIngke2RvY3N0cmluZ30iID0gIngiIF07IHRoZW4KKysgICAgICAgICAgICBwcmludGYgIiAg LS1lbmFibGUtJS0xNHMgZW5hYmxlICVzIHN1cHBvcnRcbiIgIiR7VkFSX05BTUV9IiAiJChlY2hv IC1uICIke1ZBUl9OQU1FfSIgfCB0ciAnLScgJyAnKSIKKysgICAgICAgIGVsc2UKKysgICAgICAg ICAgICBwcmludGYgIiAgLS1lbmFibGUtJS0xNHMgJXNcbiIgIiR7VkFSX05BTUV9IiAiJGRvY3N0 cmluZyIKKysgICAgICAgIGZpCisrICAgIGRvbmUKKysKKysgICAgZmlyc3Q9eQorKyAgICBmb3Ig dmFyc3RyaW5nIGluICR7RElTQUJMRV9WQVJTfTsgZG8KKysgICAgICAgIGlmIFsgJGZpcnN0ID0g J3knIF07IHRoZW4KKysgICAgICAgICAgICBlY2hvICIiCisrICAgICAgICAgICAgZmlyc3Q9bgor KyAgICAgICAgZmkKKysgICAgICAgIGV4dHJhY3RfdmFyX3N0cmluZyAkKGVjaG8gIiR7dmFyc3Ry aW5nfSIgfCB0ciAnfCcgJyAnKQorKyAgICAgICAgdmFyX2RvY19uYW1lPSJESVNBQkxFXyR7VkFS X1VDX05BTUV9X0RPQyIKKysgICAgICAgIGV2YWwgImRvY3N0cmluZz1cJCR2YXJfZG9jX25hbWUi CisrICAgICAgICBpZiBbICJ4JHtkb2NzdHJpbmd9IiA9ICJ4IiBdOyB0aGVuCisrICAgICAgICAg ICAgcHJpbnRmICIgIC0tZGlzYWJsZS0lLTEzcyBkaXNhYmxlICVzIHN1cHBvcnRcbiIgIiR7VkFS X05BTUV9IiAiJChlY2hvIC1uICIke1ZBUl9OQU1FfSIgfCB0ciAnLScgJyAnKSIKKysgICAgICAg IGVsc2UKKysgICAgICAgICAgICBwcmludGYgIiAgLS1kaXNhYmxlLSUtMTNzICVzXG4iICIke1ZB Ul9OQU1FfSIgIiRkb2NzdHJpbmciCisrICAgICAgICBmaQorKyAgICBkb25lCisrCisrICAgIGZp cnN0PXkKKysgICAgZm9yIHZhcnN0cmluZyBpbiAke1dJVEhfVkFSU307IGRvCisrICAgICAgICBp ZiBbICRmaXJzdCA9ICd5JyBdOyB0aGVuCisrICAgICAgICAgICAgZWNobyAiIgorKyAgICAgICAg ICAgIGZpcnN0PW4KKysgICAgICAgIGZpCisrICAgICAgICBleHRyYWN0X3Zhcl9zdHJpbmcgJChl Y2hvICIke3ZhcnN0cmluZ30iIHwgdHIgJ3wnICcgJykKKysgICAgICAgIHZhcl9kb2NfbmFtZT0i V0lUSF8ke1ZBUl9VQ19OQU1FfV9ET0MiCisrICAgICAgICBldmFsICJkb2NzdHJpbmc9XCQkdmFy X2RvY19uYW1lIgorKyAgICAgICAgcGFyYW1pbmZvPSIke1ZBUl9OQU1FfT0ke1ZBUl9WQUxVRX0i CisrICAgICAgICBpZiBbICJ4JHtkb2NzdHJpbmd9IiA9ICJ4IiBdOyB0aGVuCisrICAgICAgICAg ICAgcHJpbnRmICIgIC0td2l0aC0lLTE2cyBlbmFibGUgJXMgc3VwcG9ydFxuIiAiJHBhcmFtaW5m byIgIiQoZWNobyAtbiAiJHtWQVJfTkFNRX0iIHwgdHIgJy0nICcgJykiCisrICAgICAgICBlbHNl CisrICAgICAgICAgICAgcHJpbnRmICIgIC0td2l0aC0lLTE2cyAlc1xuIiAiJHBhcmFtaW5mbyIg IiRkb2NzdHJpbmciCisrICAgICAgICBmaQorKyAgICBkb25lCisrCisrICAgIGV4aXQgMAorK30K KysKKyt3aGlsZSBbICQjICE9IDAgXTsgZG8KKysgICAgY2FzZSAiJDEiIGluCisrICAgICAgICAi LS1wcmVmaXg9IiopCisrICAgICAgICAgICAgUFJFRklYPSIkezEjKj19Ijs7CisrICAgICAgICAi LS1wcmVmaXgiKQorKyAgICAgICAgICAgIFBSRUZJWD0iJHsyfSI7IHNoaWZ0OzsKKysgICAgICAg ICItLWJpbmRpcj0iKikKKysgICAgICAgICAgICBDTUFLRV9BUkdTPSIkQ01BS0VfQVJHUyAtRENN QUtFX0lOU1RBTExfQklORElSPSQocXVvdGUgIiR7MSMqPX0iKSI7OworKyAgICAgICAgIi0tYmlu ZGlyIikKKysgICAgICAgICAgICBDTUFLRV9BUkdTPSIkQ01BS0VfQVJHUyAtRENNQUtFX0lOU1RB TExfQklORElSPSQocXVvdGUgIiQyIikiOyBzaGlmdDs7CisrICAgICAgICAiLS1zYmluZGlyPSIq KQorKyAgICAgICAgICAgIENNQUtFX0FSR1M9IiRDTUFLRV9BUkdTIC1EQ01BS0VfSU5TVEFMTF9T QklORElSPSQocXVvdGUgIiR7MSMqPX0iKSI7OworKyAgICAgICAgIi0tc2JpbmRpciIpCisrICAg ICAgICAgICAgQ01BS0VfQVJHUz0iJENNQUtFX0FSR1MgLURDTUFLRV9JTlNUQUxMX1NCSU5ESVI9 JChxdW90ZSAiJDIiKSI7IHNoaWZ0OzsKKysgICAgICAgICItLWxpYmV4ZWNkaXI9IiopCisrICAg ICAgICAgICAgQ01BS0VfQVJHUz0iJENNQUtFX0FSR1MgLURDTUFLRV9JTlNUQUxMX0xJQkVYRUNE SVI9JChxdW90ZSAiJHsxIyo9fSIpIjs7CisrICAgICAgICAiLS1saWJleGVjZGlyIikKKysgICAg ICAgICAgICBDTUFLRV9BUkdTPSIkQ01BS0VfQVJHUyAtRENNQUtFX0lOU1RBTExfTElCRVhFQ0RJ Uj0kKHF1b3RlICIkMiIpIjsgc2hpZnQ7OworKyAgICAgICAgIi0tc3lzY29uZmRpcj0iKikKKysg ICAgICAgICAgICBDTUFLRV9BUkdTPSIkQ01BS0VfQVJHUyAtRENNQUtFX0lOU1RBTExfU1lTQ09O RkRJUj0kKHF1b3RlICIkezEjKj19IikiOzsKKysgICAgICAgICItLXN5c2NvbmZkaXIiKQorKyAg ICAgICAgICAgIENNQUtFX0FSR1M9IiRDTUFLRV9BUkdTIC1EQ01BS0VfSU5TVEFMTF9TWVNDT05G RElSPSQocXVvdGUgIiQyIikiOyBzaGlmdDs7CisrICAgICAgICAiLS1zaGFyZWRzdGF0ZWRpcj0i KikKKysgICAgICAgICAgICBDTUFLRV9BUkdTPSIkQ01BS0VfQVJHUyAtRENNQUtFX0lOU1RBTExf U0hBUkVEU1RBVEVESVI9JChxdW90ZSAiJHsxIyo9fSIpIjs7CisrICAgICAgICAiLS1zaGFyZWRz dGF0ZWRpciIpCisrICAgICAgICAgICAgQ01BS0VfQVJHUz0iJENNQUtFX0FSR1MgLURDTUFLRV9J TlNUQUxMX1NIQVJFRFNUQVRFRElSPSQocXVvdGUgIiQyIikiOyBzaGlmdDs7CisrICAgICAgICAi LS1sb2NhbHN0YXRlZGlyPSIqKQorKyAgICAgICAgICAgIENNQUtFX0FSR1M9IiRDTUFLRV9BUkdT IC1EQ01BS0VfSU5TVEFMTF9MT0NBTFNUQVRFRElSPSQocXVvdGUgIiR7MSMqPX0iKSI7OworKyAg ICAgICAgIi0tbG9jYWxzdGF0ZWRpciIpCisrICAgICAgICAgICAgQ01BS0VfQVJHUz0iJENNQUtF X0FSR1MgLURDTUFLRV9JTlNUQUxMX0xPQ0FMU1RBVEVESVI9JChxdW90ZSAiJDIiKSI7IHNoaWZ0 OzsKKysgICAgICAgICItLWxpYmRpcj0iKikKKysgICAgICAgICAgICBMSUJESVI9IiR7MSMqPX0i OzsKKysgICAgICAgICItLWxpYmRpciIpCisrICAgICAgICAgICAgTElCRElSPSIkezJ9Ijsgc2hp ZnQ7OworKyAgICAgICAgIi0taW5jbHVkZWRpcj0iKikKKysgICAgICAgICAgICBDTUFLRV9BUkdT PSIkQ01BS0VfQVJHUyAtRENNQUtFX0lOU1RBTExfSU5DTFVERURJUj0kKHF1b3RlICIkezEjKj19 IikiOzsKKysgICAgICAgICItLWluY2x1ZGVkaXIiKQorKyAgICAgICAgICAgIENNQUtFX0FSR1M9 IiRDTUFLRV9BUkdTIC1EQ01BS0VfSU5TVEFMTF9JTkNMVURFRElSPSQocXVvdGUgIiQyIikiOyBz aGlmdDs7CisrICAgICAgICAiLS1vbGRpbmNsdWRlZGlyPSIqKQorKyAgICAgICAgICAgIENNQUtF X0FSR1M9IiRDTUFLRV9BUkdTIC1EQ01BS0VfSU5TVEFMTF9PTERJTkNMVURFRElSPSQocXVvdGUg IiR7MSMqPX0iKSI7OworKyAgICAgICAgIi0tb2xkaW5jbHVkZWRpciIpCisrICAgICAgICAgICAg Q01BS0VfQVJHUz0iJENNQUtFX0FSR1MgLURDTUFLRV9JTlNUQUxMX09MRElOQ0xVREVESVI9JChx dW90ZSAiJDIiKSI7IHNoaWZ0OzsKKysgICAgICAgICItLWRhdGFyb290ZGlyPSIqKQorKyAgICAg ICAgICAgIENNQUtFX0FSR1M9IiRDTUFLRV9BUkdTIC1EQ01BS0VfSU5TVEFMTF9EQVRBUk9PVERJ Uj0kKHF1b3RlICIkezEjKj19IikiOzsKKysgICAgICAgICItLWRhdGFyb290ZGlyIikKKysgICAg ICAgICAgICBDTUFLRV9BUkdTPSIkQ01BS0VfQVJHUyAtRENNQUtFX0lOU1RBTExfREFUQVJPT1RE SVI9JChxdW90ZSAiJDIiKSI7IHNoaWZ0OzsKKysgICAgICAgICItLWRhdGFkaXI9IiopCisrICAg ICAgICAgICAgQ01BS0VfQVJHUz0iJENNQUtFX0FSR1MgLURDTUFLRV9JTlNUQUxMX0RBVEFESVI9 JChxdW90ZSAiJHsxIyo9fSIpIjs7CisrICAgICAgICAiLS1kYXRhZGlyIikKKysgICAgICAgICAg ICBDTUFLRV9BUkdTPSIkQ01BS0VfQVJHUyAtRENNQUtFX0lOU1RBTExfREFUQURJUj0kKHF1b3Rl ICIkMiIpIjsgc2hpZnQ7OworKyAgICAgICAgIi0taW5mb2Rpcj0iKikKKysgICAgICAgICAgICBD TUFLRV9BUkdTPSIkQ01BS0VfQVJHUyAtRENNQUtFX0lOU1RBTExfSU5GT0RJUj0kKHF1b3RlICIk ezEjKj19IikiOzsKKysgICAgICAgICItLWluZm9kaXIiKQorKyAgICAgICAgICAgIENNQUtFX0FS R1M9IiRDTUFLRV9BUkdTIC1EQ01BS0VfSU5TVEFMTF9JTkZPRElSPSQocXVvdGUgIiQyIikiOyBz aGlmdDs7CisrICAgICAgICAiLS1sb2NhbGVkaXI9IiopCisrICAgICAgICAgICAgQ01BS0VfQVJH Uz0iJENNQUtFX0FSR1MgLURDTUFLRV9JTlNUQUxMX0xPQ0FMRURJUj0kKHF1b3RlICIkezEjKj19 IikiOzsKKysgICAgICAgICItLWxvY2FsZWRpciIpCisrICAgICAgICAgICAgQ01BS0VfQVJHUz0i JENNQUtFX0FSR1MgLURDTUFLRV9JTlNUQUxMX0xPQ0FMRURJUj0kKHF1b3RlICIkMiIpIjsgc2hp ZnQ7OworKyAgICAgICAgIi0tbWFuZGlyPSIqKQorKyAgICAgICAgICAgIENNQUtFX0FSR1M9IiRD TUFLRV9BUkdTIC1EQ01BS0VfSU5TVEFMTF9NQU5ESVI9JChxdW90ZSAiJHsxIyo9fSIpIjs7Cisr ICAgICAgICAiLS1tYW5kaXIiKQorKyAgICAgICAgICAgIENNQUtFX0FSR1M9IiRDTUFLRV9BUkdT IC1EQ01BS0VfSU5TVEFMTF9NQU5ESVI9JChxdW90ZSAiJDIiKSI7IHNoaWZ0OzsKKysgICAgICAg ICItLWRvY2Rpcj0iKikKKysgICAgICAgICAgICBDTUFLRV9BUkdTPSIkQ01BS0VfQVJHUyAtRENN QUtFX0lOU1RBTExfRE9DRElSPSQocXVvdGUgIiR7MSMqPX0iKSI7OworKyAgICAgICAgIi0tZG9j ZGlyIikKKysgICAgICAgICAgICBDTUFLRV9BUkdTPSIkQ01BS0VfQVJHUyAtRENNQUtFX0lOU1RB TExfRE9DRElSPSQocXVvdGUgIiQyIikiOyBzaGlmdDs7CisrCisrICAgICAgICAiQ0M9IiopCisr ICAgICAgICAgICAgQ01BS0VfQVJHUz0iJENNQUtFX0FSR1MgLURDTUFLRV9DX0NPTVBJTEVSPSQo cXVvdGUgIiR7MSMqPX0iKSI7OworKyAgICAgICAgIkNYWD0iKikKKysgICAgICAgICAgICBDTUFL RV9BUkdTPSIkQ01BS0VfQVJHUyAtRENNQUtFX0NYWF9DT01QSUxFUj0kKHF1b3RlICIkezEjKj19 IikiOzsKKysgICAgICAgICJDRkxBR1M9IiopCisrICAgICAgICAgICAgQ01BS0VfQVJHUz0iJENN QUtFX0FSR1MgLURDTUFLRV9DX0ZMQUdTPSQocXVvdGUgIiR7MSMqPX0iKSI7OworKyAgICAgICAg IkNYWEZMQUdTPSIqKQorKyAgICAgICAgICAgIENNQUtFX0FSR1M9IiRDTUFLRV9BUkdTIC1EQ01B S0VfQ1hYX0ZMQUdTPSQocXVvdGUgIiR7MSMqPX0iKSI7OworKyAgICAgICAgIkxERkxBR1M9Iiop CisrICAgICAgICAgICAgTERGTEFHUz0iJExERkxBR1MgJHsxIyo9fSI7OworKworKyAgICAgICAg Ii0taGVscCIpCisrICAgICAgICAgICAgcHJpbnRfaGVscDs7CisrICAgICAgICAiLWgiKQorKyAg ICAgICAgICAgIHByaW50X2hlbHA7OworKworKyAgICAgICAgIyBUaGlzIGZsYWcgaXMgdGhlIG9u bHkgb25lIHdoaWNoIG1heSBiZSBhIGJpdCBzdXJwcmlzaW5nIHRvCisrICAgICAgICAjIHBlb3Bs ZS4gIEF1dG90b29scyBhbHdheXMgYnVpbGRzIHdpdGggZGVidWdnaW5nIHN5bWJvbHMgZW5hYmxl ZAorKyAgICAgICAgIyAoQUZBSUspLCBidXQgZm9yIGNtYWtlIHlvdSBoYXZlIHRvIGRvIC1EQ01B S0VfQlVJTERfVFlQRT1EZWJ1Zy4KKysgICAgICAgICMgVW5mb3J0dW5hdGVseSB0aGlzIGNhbiBj aGFuZ2Ugb3RoZXIgdGhpbmdzIGFzIHdlbGwsIHNvIGFsdGhvdWdoCisrICAgICAgICAjIEkgcmVh bGl6ZSB0aGVyZSBpcyBubyAtLWRpc2FibGUtZGVidWcgZmxhZyBJIHRob3VnaHQgaXQgd291bGQg YmUKKysgICAgICAgICMgcHJ1ZGVudCB0byBzdXBwb3J0IG9uZSBoZXJlLgorKyAgICAgICAgIi0t ZGlzYWJsZS1kZWJ1ZyIpCisrICAgICAgICAgICAgQlVJTERfVFlQRT0iUmVsZWFzZSI7OworKwor KyAgICAgICAgIi0tcGFzcy10aHJ1IikKKysgICAgICAgICAgICB3aGlsZSBbICQjICE9IDEgXTsg ZG8KKysgICAgICAgICAgICAgICAgc2hpZnQ7CisrICAgICAgICAgICAgICAgIENNQUtFX0FSR1M9 IiRDTUFLRV9BUkdTICQocXVvdGUgIiR7MX0iKSI7CisrICAgICAgICAgICAgZG9uZTs7CisrCisr ICAgICAgICAiLS1lbmFibGUtIiopCisrICAgICAgICAgICAgc2V0X2NvbmZpZ192YXIgIiQxIgor KyAgICAgICAgICAgIDs7CisrCisrICAgICAgICAiLS1kaXNhYmxlLSIqKQorKyAgICAgICAgICAg IHNldF9jb25maWdfdmFyICIkMSIKKysgICAgICAgICAgICA7OworKworKyAgICAgICAgIi0td2l0 aC0iKikKKysgICAgICAgICAgICBuYW1lPSQoZWNobyAiJHsxIy0td2l0aC19IiB8IGF3ayAne3Nw bGl0KCQxLHYsIj0iKTsgcHJpbnQgdlsxXX0nKQorKyAgICAgICAgICAgIGNhc2UgIiR7MX0iIGlu CisrICAgICAgICAgICAgICAgICItLXdpdGgtJHtuYW1lfT0iKikKKysgICAgICAgICAgICAgICAg ICAgIHNldF9jb25maWdfdmFyICItLXdpdGgtJHtuYW1lfSIgIiR7MSMtLXdpdGgtJHtuYW1lfT19 Ijs7CisrICAgICAgICAgICAgICAgICItLXdpdGgtJHtuYW1lfSIpCisrICAgICAgICAgICAgICAg ICAgICBzZXRfY29uZmlnX3ZhciAiJDEiICIkMiI7CisrICAgICAgICAgICAgICAgICAgICBzaGlm dDs7CisrICAgICAgICAgICAgZXNhYworKyAgICAgICAgICAgIDs7CisrCisrICAgICAgICAqKQor KyAgICAgICAgICAgIGVjaG8gIiQwOiBlcnJvcjogdW5yZWNvZ25pemVkIG9wdGlvbjogXGAkMSci ID4mMgorKyAgICAgICAgICAgIGVjaG8gIlRyeSBcYCQwIC0taGVscCcgZm9yIG1vcmUgaW5mb3Jt YXRpb24iID4mMgorKyAgICAgICAgICAgIGV4aXQgLTEKKysgICAgZXNhYzsKKysgICAgc2hpZnQK Kytkb25lCisrCisraWYgWyAieCR7TElCRElSfSIgPSAieCIgXTsgdGhlbgorKyAgICBMSUJESVI9 IiR7UFJFRklYfS9saWIiCisrZmkKKysKKysjIFVubGlrZSBDRkxBR1MvQ1hYRkxBR1MvQ0MvQ1hY LCBMREZMQUdTIGlzbid0IGhhbmRsZWQgYnkgQ01ha2UsIHNvIHdlCisrIyBuZWVkIHRvIHBhcnNl IGl0IGhlcmUuCisraWYgWyAieCR7TERGTEFHU30iICE9ICJ4IiBdOyB0aGVuCisrICAgIGZvciB2 YXJuYW1lIGluIEVYRSBNT0RVTEUgU0hBUkVEIFNUQVRJQzsgZG8KKysgICAgICAgIENNQUtFX0FS R1M9IiRDTUFLRV9BUkdTIC1EQ01BS0VfJHt2YXJuYW1lfV9MSU5LRVJfRkxBR1M9JChxdW90ZSAi JExERkxBR1MiKSIKKysgICAgZG9uZQorK2ZpCisrCisrZXZhbCAiJHtDTUFLRV9DTUR9IiAiJHtU T1BfU1JDRElSfSIgLURDTUFLRV9CVUlMRF9UWVBFPSIke0JVSUxEX1RZUEV9IiAtRENNQUtFX0lO U1RBTExfUFJFRklYPSIke1BSRUZJWH0iIC1EQ01BS0VfSU5TVEFMTF9MSUJESVI9IiR7TElCRElS fSIgJHtDTUFLRV9BUkdTfQorZGlmZiAtLWdpdCBhL2RlcGxveS8uZ2l0aWdub3JlIGIvZGVwbG95 Ly5naXRpZ25vcmUKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXggM2MyMTk2NTg0Li4w MDAwMDAwMDAKKy0tLSBhL2RlcGxveS8uZ2l0aWdub3JlCisrKysgL2Rldi9udWxsCitAQCAtMSwy ICswLDAgQEAKKy0udmFncmFudAorLS9icmFuZGVsZgorZGlmZiAtLWdpdCBhL2RlcGxveS9SRUFE TUUubWQgYi9kZXBsb3kvUkVBRE1FLm1kCitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4 IDdmMjNiN2Q3Zi4uMDAwMDAwMDAwCistLS0gYS9kZXBsb3kvUkVBRE1FLm1kCisrKysgL2Rldi9u dWxsCitAQCAtMSw0NCArMCwwIEBACistUGFja2FnaW5nIFBoYW50b21KUworLT09PT09PT09PT09 PT09PT09PT0KKy0KKy1UaGlzIGRpcmVjdG9yeSBjb250YWlucyB2YXJpb3VzIHNjcmlwdHMgdG8g YXNzaXN0IHdpdGggbWFraW5nIFBoYW50b21KUworLXBhY2thZ2VzLgorLQorLVBhY2thZ2luZyBm b3IgTGludXgKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCistCistTGludXggYnVpbGRpbmcvcGFja2Fn aW5nIGlzIGJlc3QgZG9uZSBpbiBhIGNvbnRhaW5lciB0byBlbnN1cmUKKy1pc29sYXRpb24uICBX ZSB1c2UgW0RvY2tlcl0oaHR0cHM6Ly93d3cuZG9ja2VyLmNvbS8pIHRvIGF1dG9tYXRlIHRoZQor LXByb2Nlc3MuIFBsZWFzZSBzZWUgdGhlIFtEb2NrZXIgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9k b2NzLmRvY2tlci5jb20vKQorLWZvciBpbnN0cnVjdGlvbnMgb24gaW5zdGFsbGluZyBEb2NrZXIu IEZvciBPUyBYIG9yIFdpbmRvd3MgaG9zdCwKKy1wbGVhc2UgdXNlIFtEb2NrZXIgVG9vbGJveF0o aHR0cHM6Ly93d3cuZG9ja2VyLmNvbS9kb2NrZXItdG9vbGJveCkuCistCistT25jZSB5b3UgaGF2 ZSBEb2NrZXIgaW5zdGFsbGVkLCBydW4gdGhlc2UgY29tbWFuZHMgZnJvbSB0aGUgdG9wIGxldmVs Cistb2YgdGhlIFBoYW50b21KUyBzb3VyY2UgcmVwb3NpdG9yeToKKy0KKy1gYGBiYXNoCistICQg Z2l0IGNsZWFuIC14ZmQgLgorLSAkIGRvY2tlciBydW4gLXYgJFBXRDovc3JjIGRlYmlhbjp3aGVl enkgL3NyYy9kZXBsb3kvZG9ja2VyLWJ1aWxkLnNoCistYGBgCistCistRm9yIHRoZSAzMi1iaXQg dmVyc2lvbjoKKy0KKy1gYGBiYXNoCistICQgZ2l0IGNsZWFuIC14ZmQgLgorLSAkIGRvY2tlciBy dW4gLXYgJFBXRDovc3JjIHR1YmlhL2RlYmlhbjp3aGVlenkgL3NyYy9kZXBsb3kvZG9ja2VyLWJ1 aWxkLnNoCistYGBgCistCistVGhlIGJ1aWx0IGJpbmFyeSB3aWxsIGJlIGV4dHJhY3RlZCBvdXQg b2YgdGhlIGNvbnRhaW5lciBhbmQgY29waWVkIHRvCistdGhlIGN1cnJlbnQgZGlyZWN0b3J5Lgor LQorLQorLVBhY2thZ2luZyBmb3IgT1MgWAorLS0tLS0tLS0tLS0tLS0tLS0tLQorLQorLVJ1biBg ZGVwbG95L2J1aWxkLWFuZC1wYWNrYWdlLnNoYC4gVGhhdCdzIGl0LgorLQorLUhvd2V2ZXIsIGlm IHlvdSBoYXZlIHByZXZpb3VzbHkgYnVpbHQgdGhlIHNvdXJjZXMgaW4gcmVsZWFzZSBtb2RlLCB5 b3UKKy1zaG91bGQgY2xlYW4geW91ciB0cmVlIHRvIG1ha2Ugc3VyZSBhbGwgdGhlIGRlYnVnZ2lu ZyBzeW1ib2xzIGdldHMKKy1jb21waWxlZDoKKy0KKy0gICQgbWFrZSBjbGVhbiAmJiBjZCBzcmMv cXQgJiYgbWFrZSBjbGVhbiAmJiBjZCAuLi8uLgorZGlmZiAtLWdpdCBhL2RlcGxveS9icmFuZGVs Zi5jIGIvZGVwbG95L2JyYW5kZWxmLmMKK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAoraW5kZXgg NTMwMjk3YmJmLi4wMDAwMDAwMDAKKy0tLSBhL2RlcGxveS9icmFuZGVsZi5jCisrKysgL2Rldi9u dWxsCitAQCAtMSwyMTIgKzAsMCBAQAorLS8qLQorLSAqIENvcHlyaWdodCAoYykgMjAwMCwgMjAw MSBEYXZpZCBPJ0JyaWVuCistICogQ29weXJpZ2h0IChjKSAxOTk2IFPDuHJlbiBTY2htaWR0Cist ICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKy0gKgorLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorLSAqIG1vZGlmaWNh dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u cworLSAqIGFyZSBtZXQ6CistICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11 c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKy0gKiAgICBpbiB0aGlz IHBvc2l0aW9uIGFuZCB1bmNoYW5nZWQuCistICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKy0gKiAgICBub3RpY2Us IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g dGhlCistICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKy0gKiAzLiBUaGUgbmFtZSBvZiB0aGUgYXV0aG9yIG1h eSBub3QgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMKKy0gKiAgICBkZXJp dmVkIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy bWlzc2lvbgorLSAqCistICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQVVUSE9S IGBgQVMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IKKy0gKiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTCistICog T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB UkUgRElTQ0xBSU1FRC4KKy0gKiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQVVUSE9SIEJFIExJQUJM RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsCistICogSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUCistICogTk9U IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7 IExPU1MgT0YgVVNFLAorLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorLSAqIFRIRU9SWSBPRiBMSUFCSUxJVFks IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKy0gKiAoSU5D TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G IFRIRSBVU0UgT0YKKy0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorLSAqLworLQorLSNpbmNsdWRlIDxzeXMvY2RlZnMu aD4KKy0vL05PVEU6IGNvbW1lbnRlZCBvdXQgdG8gbWFrZSBpdCBjb21waWxlIG9uIGxpbnV4Cist Ly8gX19GQlNESUQoIiRGcmVlQlNEOiBzcmMvdXNyLmJpbi9icmFuZGVsZi9icmFuZGVsZi5jLHYg MS4yNS4yMi4yIDIwMTIvMDMvMTYgMDM6MjI6MzcgZWFkbGVyIEV4cCAkIik7CistCistI2luY2x1 ZGUgPHN5cy90eXBlcy5oPgorLS8vTk9URTogY2hhbmdlZCBwYXRoIHRvIG1ha2UgaXQgY29tcGls ZSBvbiBsaW51eAorLSNpbmNsdWRlIDxlbGYuaD4KKy0jaW5jbHVkZSA8c3lzL2Vycm5vLmg+Cist I2luY2x1ZGUgPGVyci5oPgorLSNpbmNsdWRlIDxmY250bC5oPgorLSNpbmNsdWRlIDxzdGRpby5o PgorLSNpbmNsdWRlIDxzdGRsaWIuaD4KKy0jaW5jbHVkZSA8c3RyaW5nLmg+CistI2luY2x1ZGUg PHVuaXN0ZC5oPgorLQorLXN0YXRpYyBpbnQgZWxmdHlwZShjb25zdCBjaGFyICopOworLXN0YXRp YyBjb25zdCBjaGFyICppc2VsZnR5cGUoaW50KTsKKy1zdGF0aWMgdm9pZCBwcmludGVsZnR5cGVz KHZvaWQpOworLXN0YXRpYyB2b2lkIHVzYWdlKHZvaWQpOworLQorLXN0cnVjdCBFTEZ0eXBlcyB7 CistCWNvbnN0IGNoYXIgKnN0cjsKKy0JaW50IHZhbHVlOworLX07CistLyogWFhYIC0gYW55IG1v cmUgdHlwZXM/ICovCistc3RhdGljIHN0cnVjdCBFTEZ0eXBlcyBlbGZ0eXBlc1tdID0geworLQl7 ICJGcmVlQlNEIiwJRUxGT1NBQklfRlJFRUJTRCB9LAorLQl7ICJMaW51eCIsCUVMRk9TQUJJX0xJ TlVYIH0sCistCXsgIlNvbGFyaXMiLAlFTEZPU0FCSV9TT0xBUklTIH0sCistCXsgIlNWUjQiLAlF TEZPU0FCSV9TWVNWIH0KKy19OworLQorLWludAorLW1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQorLXsKKy0KKy0JY29uc3QgY2hhciAqc3RydHlwZSA9ICJGcmVlQlNEIjsKKy0JaW50IHR5cGUg PSBFTEZPU0FCSV9GUkVFQlNEOworLQlpbnQgcmV0dmFsID0gMDsKKy0JaW50IGNoLCBjaGFuZ2Ug PSAwLCBmb3JjZSA9IDAsIGxpc3RlZCA9IDA7CistCistCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJn YywgYXJndiwgImY6bHQ6diIpKSAhPSAtMSkKKy0JCXN3aXRjaCAoY2gpIHsKKy0JCWNhc2UgJ2Yn OgorLQkJCWlmIChjaGFuZ2UpCistCQkJCWVycngoMSwgImYgb3B0aW9uIGluY29tcGF0aWJsZSB3 aXRoIHQgb3B0aW9uIik7CistCQkJZm9yY2UgPSAxOworLQkJCXR5cGUgPSBhdG9pKG9wdGFyZyk7 CistCQkJaWYgKGVycm5vID09IEVSQU5HRSB8fCB0eXBlIDwgMCB8fCB0eXBlID4gMjU1KSB7Cist CQkJCXdhcm54KCJpbnZhbGlkIGFyZ3VtZW50IHRvIG9wdGlvbiBmOiAlcyIsCistCQkJCSAgICBv cHRhcmcpOworLQkJCQl1c2FnZSgpOworLQkJCX0KKy0JCQlicmVhazsKKy0JCWNhc2UgJ2wnOgor LQkJCXByaW50ZWxmdHlwZXMoKTsKKy0JCQlsaXN0ZWQgPSAxOworLQkJCWJyZWFrOworLQkJY2Fz ZSAndic6CistCQkJLyogZG9lcyBub3RoaW5nICovCistCQkJYnJlYWs7CistCQljYXNlICd0JzoK Ky0JCQlpZiAoZm9yY2UpCistCQkJCWVycngoMSwgInQgb3B0aW9uIGluY29tcGF0aWJsZSB3aXRo IGYgb3B0aW9uIik7CistCQkJY2hhbmdlID0gMTsKKy0JCQlzdHJ0eXBlID0gb3B0YXJnOworLQkJ CWJyZWFrOworLQkJZGVmYXVsdDoKKy0JCQl1c2FnZSgpOworLQl9CistCWFyZ2MgLT0gb3B0aW5k OworLQlhcmd2ICs9IG9wdGluZDsKKy0JaWYgKCFhcmdjKSB7CistCQlpZiAobGlzdGVkKQorLQkJ CWV4aXQoMCk7CistCQllbHNlIHsKKy0JCQl3YXJueCgibm8gZmlsZShzKSBzcGVjaWZpZWQiKTsK Ky0JCQl1c2FnZSgpOworLQkJfQorLQl9CistCistCWlmICghZm9yY2UgJiYgKHR5cGUgPSBlbGZ0 eXBlKHN0cnR5cGUpKSA9PSAtMSkgeworLQkJd2FybngoImludmFsaWQgRUxGIHR5cGUgJyVzJyIs IHN0cnR5cGUpOworLQkJcHJpbnRlbGZ0eXBlcygpOworLQkJdXNhZ2UoKTsKKy0JfQorLQorLQl3 aGlsZSAoYXJnYykgeworLQkJaW50IGZkOworLQkJY2hhciBidWZmZXJbRUlfTklERU5UXTsKKy0K Ky0JCWlmICgoZmQgPSBvcGVuKGFyZ3ZbMF0sIGNoYW5nZSB8fCBmb3JjZSA/IE9fUkRXUiA6IE9f UkRPTkxZLCAwKSkgPCAwKSB7CistCQkJd2FybigiZXJyb3Igb3BlbmluZyBmaWxlICVzIiwgYXJn dlswXSk7CistCQkJcmV0dmFsID0gMTsKKy0JCQlnb3RvIGZhaWw7CistCQl9CistCQlpZiAocmVh ZChmZCwgYnVmZmVyLCBFSV9OSURFTlQpIDwgRUlfTklERU5UKSB7CistCQkJd2FybngoImZpbGUg JyVzJyB0b28gc2hvcnQiLCBhcmd2WzBdKTsKKy0JCQlyZXR2YWwgPSAxOworLQkJCWdvdG8gZmFp bDsKKy0JCX0KKy0JCWlmIChidWZmZXJbMF0gIT0gRUxGTUFHMCB8fCBidWZmZXJbMV0gIT0gRUxG TUFHMSB8fAorLQkJICAgIGJ1ZmZlclsyXSAhPSBFTEZNQUcyIHx8IGJ1ZmZlclszXSAhPSBFTEZN QUczKSB7CistCQkJd2FybngoImZpbGUgJyVzJyBpcyBub3QgRUxGIGZvcm1hdCIsIGFyZ3ZbMF0p OworLQkJCXJldHZhbCA9IDE7CistCQkJZ290byBmYWlsOworLQkJfQorLQkJaWYgKCFjaGFuZ2Ug JiYgIWZvcmNlKSB7CistCQkJZnByaW50ZihzdGRvdXQsCistCQkJCSJGaWxlICclcycgaXMgb2Yg YnJhbmQgJyVzJyAoJXUpLlxuIiwKKy0JCQkJYXJndlswXSwgaXNlbGZ0eXBlKGJ1ZmZlcltFSV9P U0FCSV0pLAorLQkJCQlidWZmZXJbRUlfT1NBQkldKTsKKy0JCQlpZiAoIWlzZWxmdHlwZSh0eXBl KSkgeworLQkJCQl3YXJueCgiRUxGIEFCSSBCcmFuZCAnJXUnIGlzIHVua25vd24iLAorLQkJCQkg ICAgICB0eXBlKTsKKy0JCQkJcHJpbnRlbGZ0eXBlcygpOworLQkJCX0KKy0JCX0KKy0JCWVsc2Ug eworLQkJCWJ1ZmZlcltFSV9PU0FCSV0gPSB0eXBlOworLQkJCWxzZWVrKGZkLCAwLCBTRUVLX1NF VCk7CistCQkJaWYgKHdyaXRlKGZkLCBidWZmZXIsIEVJX05JREVOVCkgIT0gRUlfTklERU5UKSB7 CistCQkJCXdhcm4oImVycm9yIHdyaXRpbmcgJXMgJWQiLCBhcmd2WzBdLCBmZCk7CistCQkJCXJl dHZhbCA9IDE7CistCQkJCWdvdG8gZmFpbDsKKy0JCQl9CistCQl9CistZmFpbDoKKy0JCWNsb3Nl KGZkKTsKKy0JCWFyZ2MtLTsKKy0JCWFyZ3YrKzsKKy0JfQorLQorLQlyZXR1cm4gcmV0dmFsOwor LX0KKy0KKy1zdGF0aWMgdm9pZAorLXVzYWdlKHZvaWQpCisteworLQkodm9pZClmcHJpbnRmKHN0 ZGVyciwKKy0JICAgICJ1c2FnZTogYnJhbmRlbGYgWy1sdl0gWy1mIEVMRl9BQklfbnVtYmVyXSBb LXQgc3RyaW5nXSBmaWxlIC4uLlxuIik7CistCWV4aXQoMSk7CistfQorLQorLXN0YXRpYyBjb25z dCBjaGFyICoKKy1pc2VsZnR5cGUoaW50IGV0eXBlKQorLXsKKy0Jc2l6ZV90IGVsZndhbGs7Cist CistCWZvciAoZWxmd2FsayA9IDA7CistCSAgICAgZWxmd2FsayA8IHNpemVvZihlbGZ0eXBlcykv c2l6ZW9mKGVsZnR5cGVzWzBdKTsKKy0JICAgICBlbGZ3YWxrKyspCistCQlpZiAoZXR5cGUgPT0g ZWxmdHlwZXNbZWxmd2Fsa10udmFsdWUpCistCQkJcmV0dXJuIGVsZnR5cGVzW2VsZndhbGtdLnN0 cjsKKy0JcmV0dXJuIDA7CistfQorLQorLXN0YXRpYyBpbnQKKy1lbGZ0eXBlKGNvbnN0IGNoYXIg KmVsZnN0cnR5cGUpCisteworLQlzaXplX3QgZWxmd2FsazsKKy0KKy0JZm9yIChlbGZ3YWxrID0g MDsKKy0JICAgICBlbGZ3YWxrIDwgc2l6ZW9mKGVsZnR5cGVzKS9zaXplb2YoZWxmdHlwZXNbMF0p OworLQkgICAgIGVsZndhbGsrKykKKy0JCWlmIChzdHJjYXNlY21wKGVsZnN0cnR5cGUsIGVsZnR5 cGVzW2VsZndhbGtdLnN0cikgPT0gMCkKKy0JCQlyZXR1cm4gZWxmdHlwZXNbZWxmd2Fsa10udmFs dWU7CistCXJldHVybiAtMTsKKy19CistCistc3RhdGljIHZvaWQKKy1wcmludGVsZnR5cGVzKHZv aWQpCisteworLQlzaXplX3QgZWxmd2FsazsKKy0KKy0JZnByaW50ZihzdGRlcnIsICJrbm93biBF TEYgdHlwZXMgYXJlOiAiKTsKKy0JZm9yIChlbGZ3YWxrID0gMDsKKy0JICAgICBlbGZ3YWxrIDwg c2l6ZW9mKGVsZnR5cGVzKS9zaXplb2YoZWxmdHlwZXNbMF0pOworLQkgICAgIGVsZndhbGsrKykK Ky0JCWZwcmludGYoc3RkZXJyLCAiJXMoJXUpICIsIGVsZnR5cGVzW2VsZndhbGtdLnN0ciwKKy0J CQllbGZ0eXBlc1tlbGZ3YWxrXS52YWx1ZSk7CistCWZwcmludGYoc3RkZXJyLCAiXG4iKTsKKy19 CitkaWZmIC0tZ2l0IGEvZGVwbG95L2J1aWxkLWFuZC1wYWNrYWdlLnNoIGIvZGVwbG95L2J1aWxk LWFuZC1wYWNrYWdlLnNoCitkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKK2luZGV4IGQxMTUwMWZh OS4uMDAwMDAwMDAwCistLS0gYS9kZXBsb3kvYnVpbGQtYW5kLXBhY2thZ2Uuc2gKKysrKyAvZGV2 L251bGwKK0BAIC0xLDYgKzAsMCBAQAorLSMhL3Vzci9iaW4vZW52IGJhc2gKKy0KKy1jZCBgZGly bmFtZSAkMGAvLi4KKy0KKy0uL2J1aWxkLnB5IC0tY29uZmlybSAtLXJlbGVhc2UgLS1naXQtY2xl YW4tcXRiYXNlIC0tZ2l0LWNsZWFuLXF0d2Via2l0ICIkQCIgfHwgZXhpdCAxCistCitkaWZmIC0t Z2l0IGEvZGVwbG95L2RvY2tlci1idWlsZC5zaCBiL2RlcGxveS9kb2NrZXItYnVpbGQuc2gKK2Rl bGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQoraW5kZXggNWNlYjA4OTMxLi4wMDAwMDAwMDAKKy0tLSBh L2RlcGxveS9kb2NrZXItYnVpbGQuc2gKKysrKyAvZGV2L251bGwKK0BAIC0xLDYyICswLDAgQEAK Ky0jIS91c3IvYmluL2VudiBiYXNoCistCistc2V0IC1lCistCistU09VUkNFX1BBVEg9L3NyYwor LUJVSUxEX1BBVEg9JEhPTUUvYnVpbGQKKy0KKy0jIEluIGNhc2UgdGhlIG9sZCBwYWNrYWdlIFVS TCBpcyBzdGlsbCBiZWluZyB1c2VkCistc2VkIC1pICdzL2h0dHBcLmRlYmlhblwubmV0L2h0dHBy ZWRpclwuZGViaWFuXC5vcmcvZycgL2V0Yy9hcHQvc291cmNlcy5saXN0CistCistZWNobyAiSW5z dGFsbGluZyBwYWNrYWdlcyBmb3IgZGV2ZWxvcG1lbnQgdG9vbHMuLi4iICYmIHNsZWVwIDEKKy1h cHQtZ2V0IC15IHVwZGF0ZQorLWFwdC1nZXQgaW5zdGFsbCAteSBidWlsZC1lc3NlbnRpYWwgZ2l0 IGZsZXggYmlzb24gZ3BlcmYgcHl0aG9uIHJ1YnkgZ2l0IGxpYmZvbnRjb25maWcxLWRldgorLWVj aG8KKy0KKy1lY2hvICJQcmVwYXJpbmcgdG8gZG93bmxvYWQgRGViaWFuIHNvdXJjZSBwYWNrYWdl Li4uIgorLWVjaG8gImRlYi1zcmMgaHR0cDovL2h0dHByZWRpci5kZWJpYW4ub3JnL2RlYmlhbiB3 aGVlenkgbWFpbiIgPj4gL2V0Yy9hcHQvc291cmNlcy5saXN0CistYXB0LWdldCAteSB1cGRhdGUK Ky1lY2hvCistCistT1BFTlNTTF9UQVJHRVQ9J2xpbnV4LXg4Nl82NCcKKy1pZiBbIGBnZXRjb25m IExPTkdfQklUYCAtZXEgMzIgXTsgdGhlbgorLSAgICBPUEVOU1NMX1RBUkdFVD0nbGludXgtZ2Vu ZXJpYzMyJworLWZpCistZWNobyAiUmVjb21waWxpbmcgT3BlblNTTCBmb3IgJHtPUEVOU1NMX1RB UkdFVH0uLi4iICYmIHNsZWVwIDEKKy1hcHQtZ2V0IHNvdXJjZSBvcGVuc3NsCistY2Qgb3BlbnNz bC0xLjAuMWUKKy1PUEVOU1NMX0ZMQUdTPSduby1pZGVhIG5vLW1kYzIgbm8tcmM1IG5vLXpsaWIg ZW5hYmxlLXRsc2V4dCBuby1zc2wyIG5vLXNzbDMgbm8tc3NsMy1tZXRob2QgZW5hYmxlLXJmYzM3 NzkgZW5hYmxlLWNtcycKKy0uL0NvbmZpZ3VyZSAtLXByZWZpeD0vdXNyIC0tb3BlbnNzbGRpcj0v ZXRjL3NzbCAtLWxpYmRpcj1saWIgJHtPUEVOU1NMX0ZMQUdTfSAke09QRU5TU0xfVEFSR0VUfQor LW1ha2UgZGVwZW5kICYmIG1ha2UgJiYgbWFrZSBpbnN0YWxsCistY2QgLi4KKy1lY2hvCistCist ZWNobyAiQnVpbGRpbmcgdGhlIHN0YXRpYyB2ZXJzaW9uIG9mIElDVSBsaWJyYXJ5Li4uIiAmJiBz bGVlcCAxCistYXB0LWdldCBzb3VyY2UgaWN1CistY2QgaWN1LTQuOC4xLjEvc291cmNlCistLi9j b25maWd1cmUgLS1wcmVmaXg9L3VzciAtLWVuYWJsZS1zdGF0aWMgLS1kaXNhYmxlLXNoYXJlZAor LW1ha2UgJiYgbWFrZSBpbnN0YWxsCistY2QgLi4KKy1lY2hvCistCistZWNobyAiUmVjcmVhdGlu ZyB0aGUgYnVpbGQgZGlyZWN0b3J5ICRCVUlMRF9QQVRILi4uIgorLXJtIC1yZiAkQlVJTERfUEFU SCAmJiBta2RpciAtcCAkQlVJTERfUEFUSAorLWVjaG8KKy0KKy1lY2hvICJUcmFuc2ZlcnJpbmcg dGhlIHNvdXJjZTogJFNPVVJDRV9QQVRIIC0+ICRCVUlMRF9QQVRILiBQbGVhc2Ugd2FpdC4uLiIK Ky1jZCAkQlVJTERfUEFUSCAmJiBjcCAtcnAgJFNPVVJDRV9QQVRIIC4gJiYgY2Qgc3JjCistZWNo bworLQorLWVjaG8gIkNvbXBpbGluZyBQaGFudG9tSlMuLi4iICYmIHNsZWVwIDEKKy1weXRob24g YnVpbGQucHkgLS1jb25maXJtIC0tcmVsZWFzZSAtLXF0LWNvbmZpZz0iLW5vLXBrZy1jb25maWci IC0tZ2l0LWNsZWFuLXF0YmFzZSAtLWdpdC1jbGVhbi1xdHdlYmtpdAorLWVjaG8KKy0KKy1lY2hv ICJTdHJpcHBpbmcgdGhlIGV4ZWN1dGFibGUuLi4iICYmIHNsZWVwIDEKKy1scyAtbCBiaW4vcGhh bnRvbWpzCistc3RyaXAgYmluL3BoYW50b21qcworLWVjaG8gIkNvcHlpbmcgdGhlIGV4ZWN1dGFi bGUuLi4iICYmIHNsZWVwIDEKKy1scyAtbCBiaW4vcGhhbnRvbWpzCistY3AgYmluL3BoYW50b21q cyAkU09VUkNFX1BBVEgKKy1lY2hvCistCistZWNobyAiRmluaXNoZWQuIgorZGlmZiAtLWdpdCBh L2RlcGxveS9wYWNrYWdlLnNoIGIvZGVwbG95L3BhY2thZ2Uuc2gKK2RlbGV0ZWQgZmlsZSBtb2Rl IDEwMDc1NQoraW5kZXggMTZkNjUyNWJjLi4wMDAwMDAwMDAKKy0tLSBhL2RlcGxveS9wYWNrYWdl LnNoCisrKysgL2Rldi9udWxsCitAQCAtMSwxMjAgKzAsMCBAQAorLSMhL3Vzci9iaW4vZW52IGJh c2gKKy0KKy0jCistIyB1c2FnZToganVzdCBydW4gdGhpcyBzY3JpcHQgKGFmdGVyIGhhdmluZyBy dW4gYnVpbGQuc2gpCistIyAgICAgICAgYW5kIGRlcGxveSB0aGUgY3JlYXRlZCB0YXJiYWxsIHRv IHlvdXIgdGFyZ2V0IG1hY2hpbmUuCistIworLSMgSXQgY3JlYXRlcyBhIHBoYW50b21qcy0kdmVy c2lvbiBmb2xkZXIgYW5kIGNvcGllcyB0aGUgYmluYXJ5LAorLSMgZXhhbXBsZSwgbGljZW5zZSBl dGMuIHRvZ2V0aGVyIHdpdGggYWxsIHNoYXJlZCBsaWJyYXJ5IGRlcGVuZGVuY2llcworLSMgdG8g dGhhdCBmb2xkZXIuIEZ1cnRoZXJtb3JlIGJyYW5kZWxmIGlzIHVzZWQgdG8gbWFrZSB0aGUgbGli CistIyBhbmQgYmluYXJ5IGNvbXBhdGlibGUgd2l0aCBvbGRlciB1bml4L2xpbnV4IG1hY2hpbmVz IHRoYXQgZG9uJ3QKKy0jIGtub3cgdGhlIG5ldyBMaW51eCBFTEYgQUJJLgorLSMKKy0KKy1jZCAk KGRpcm5hbWUgJDApCistCistaWYgW1sgISAtZiAuLi9iaW4vcGhhbnRvbWpzIF1dOyB0aGVuCist ICAgIGVjaG8gInBoYW50b21qcyB3YXMgbm90IGJ1aWx0IHlldCwgcGxlYXNlIHJ1biBidWlsZC5z aCBmaXJzdCIKKy0gICAgZXhpdCAxCistZmkKKy0KKy1pZiBbWyAiJDEiID0gIi0tYnVuZGxlLWxp YnMiIF1dOyB0aGVuCistICAgIGJ1bmRsZV9saWJzPTEKKy1lbHNlCistICAgIGJ1bmRsZV9saWJz PTAKKy1maQorLQorLXZlcnNpb249JCguLi9iaW4vcGhhbnRvbWpzIC0tdmVyc2lvbiB8IHNlZCAn cy8gLy0vJyB8IHNlZCAncy9bKCldLy9nJykKKy1zcmM9Li4KKy0KKy1lY2hvICJwYWNrYWdpbmcg cGhhbnRvbWpzICR2ZXJzaW9uIgorLQorLWlmIFtbICRPU1RZUEUgPSBkYXJ3aW4qIF1dOyB0aGVu CistICAgIGRlc3Q9InBoYW50b21qcy0kdmVyc2lvbi1tYWNvc3giCistZWxzZQorLSAgICBkZXN0 PSJwaGFudG9tanMtJHZlcnNpb24tbGludXgtJCh1bmFtZSAtbSkiCistZmkKKy0KKy1ybSAtUmYg JGRlc3R7LnRhci5iejIsfSAmPiAvZGV2L251bGwKKy1ta2RpciAtcCAkZGVzdC9iaW4KKy0KKy1l Y2hvCistCistZWNobyAtbiAiY29weWluZyBmaWxlcy4uLiIKKy1jcCAkc3JjL2Jpbi9waGFudG9t anMgJGRlc3QvYmluCistY3AgLXIgJHNyYy97Q2hhbmdlTG9nLGV4YW1wbGVzLExJQ0VOU0UuQlNE LHRoaXJkLXBhcnR5LnR4dCxSRUFETUUubWR9ICRkZXN0LworLWVjaG8gImRvbmUiCistZWNobwor LQorLXBoYW50b21qcz0kZGVzdC9iaW4vcGhhbnRvbWpzCistCistaWYgW1sgIiRidW5kbGVfbGli cyIgPSAiMSIgXV07IHRoZW4KKy0gICAgbWtkaXIgLXAgJGRlc3QvbGliCistCistICAgIGlmIFtb ICEgLWYgYnJhbmRlbGYgXV07IHRoZW4KKy0gICAgICAgIGVjaG8KKy0gICAgICAgIGVjaG8gImJy YW5kZWxmIGV4ZWN1dGFibGUgbm90IGZvdW5kIGluIGN1cnJlbnQgZGlyIgorLSAgICAgICAgZWNo byAtbiAiY29tcGlsaW5nIGl0IG5vdy4uLiIKKy0gICAgICAgIGcrKyBicmFuZGVsZi5jIC1vIGJy YW5kZWxmIHx8IGV4aXQgMQorLSAgICAgICAgZWNobyAiZG9uZSIKKy0gICAgZmkKKy0KKy0gICAg bGlicz0kKGxkZCAkcGhhbnRvbWpzIHwgZWdyZXAgLW8gIi9bXiBdKyAiKQorLQorLSAgICBlY2hv IC1uICJjb3B5aW5nIHNoYXJlZCBsaWJzLi4uIgorLSAgICBsaWJsZD0KKy0gICAgZm9yIGwgaW4g JGxpYnM7IGRvCistICAgICAgICBsbD0kKGJhc2VuYW1lICRsKQorLSAgICAgICAgY3AgJGwgJGRl c3QvbGliLyRsbAorLQorLSAgICAgICAgaWYgW1sgIiRidW5kbGVfbGlicyIgPSAiMSIgXV07IHRo ZW4KKy0gICAgICAgICAgICAjIGVuc3VyZSBPUyBBQkkgY29tcGF0aWJpbGl0eQorLSAgICAgICAg ICAgIC4vYnJhbmRlbGYgLXQgU1ZSNCAkZGVzdC9saWIvJGxsCistICAgICAgICAgICAgaWYgW1sg IiRsIiA9PSAqImxkLWxpbnV4IiogXV07IHRoZW4KKy0gICAgICAgICAgICAgICAgbGlibGQ9JGxs CistICAgICAgICAgICAgZmkKKy0gICAgICAgIGZpCistICAgIGRvbmUKKy0gICAgZWNobyAiZG9u ZSIKKy0gICAgZWNobworLQorLSAgICBlY2hvIC1uICJ3cml0aW5nIHJ1biBzY3JpcHQuLi4iCist ICAgIG12ICRwaGFudG9tanMgJHBoYW50b21qcy5iaW4KKy0gICAgcGhhbnRvbWpzPSRwaGFudG9t anMuYmluCistICAgIHJ1bj0kZGVzdC9iaW4vcGhhbnRvbWpzCistICAgIGVjaG8gJyMhL2Jpbi9z aCcgPj4gJHJ1bgorLSAgICBlY2hvICdwYXRoPSQoZGlybmFtZSAkKGRpcm5hbWUgJChyZWFkbGlu ayAtZiAkMCkpKScgPj4gJHJ1bgorLSAgICBlY2hvICdleHBvcnQgTERfTElCUkFSWV9QQVRIPSRw YXRoL2xpYicgPj4gJHJ1bgorLSAgICBlY2hvICdleGVjICRwYXRoL2xpYi8nJGxpYmxkJyAkcGhh bnRvbWpzICRAJyA+PiAkcnVuCistICAgIGNobW9kICt4ICRydW4KKy0gICAgZWNobyAiZG9uZSIK Ky0gICAgZWNobworLWZpCistCistZWNobyAtbiAic3RyaXBwaW5nIGJpbmFyeSBhbmQgbGlicy4u LiIKKy1pZiBbWyAkT1NUWVBFID0gZGFyd2luKiBdXTsgdGhlbgorLSAgICBzdHJpcCAteCAkcGhh bnRvbWpzCistZWxzZQorLSAgICBzdHJpcCAtcyAkcGhhbnRvbWpzCistICAgIFtbIC1kICRkZXN0 L2xpYiBdXSAmJiBzdHJpcCAtcyAkZGVzdC9saWIvKgorLWZpCistZWNobyAiZG9uZSIKKy1lY2hv CistCistZWNobyAtbiAiY29tcHJlc3NpbmcgYmluYXJ5Li4uIgorLWlmIHR5cGUgdXB4ID4vZGV2 L251bGwgMj4mMTsgdGhlbgorLSAgICB1cHggLXFxcSAtOSAkcGhhbnRvbWpzCistICAgIGVjaG8g ImRvbmUiCistZWxzZQorLSAgICBlY2hvICJ1cHggbm90IGZvdW5kIgorLWZpCistZWNobworLQor LWVjaG8gLW4gImNyZWF0aW5nIGFyY2hpdmUuLi4iCistaWYgW1sgJE9TVFlQRSA9IGRhcndpbiog XV07IHRoZW4KKy0gICAgemlwIC1yICRkZXN0LnppcCAkZGVzdAorLWVsc2UKKy0gICAgdGFyIC1j amYgJGRlc3R7LnRhci5iejIsfQorLWZpCistZWNobyAiZG9uZSIKKy1lY2hvCitkaWZmIC0tZ2l0 IGEvcGhhbnRvbWpzLnBybyBiL3BoYW50b21qcy5wcm8KK2RlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NAoraW5kZXggMjQ2NjNkZjMyLi4wMDAwMDAwMDAKKy0tLSBhL3BoYW50b21qcy5wcm8KKysrKyAv ZGV2L251bGwKK0BAIC0xLDMgKzAsMCBAQAorLVRFTVBMQVRFID0gc3ViZGlycworLUNPTkZJRyAr PSBvcmRlcmVkCistU1VCRElSUyArPSBzcmMvcGhhbnRvbWpzLnBybworZGlmZiAtLWdpdCBhL3Ny Yy9saW5lbm9pc2UvbGluZW5vaXNlLnByaSBiL3NyYy9saW5lbm9pc2UvbGluZW5vaXNlLnByaQor ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCA5MDk1YmFlOWMuLjAwMDAwMDAwMAorLS0t IGEvc3JjL2xpbmVub2lzZS9saW5lbm9pc2UucHJpCisrKysgL2Rldi9udWxsCitAQCAtMSw5ICsw LDAgQEAKKy1WUEFUSCArPSAkJFBXRC9zcmMKKy1JTkNMVURFUEFUSCArPSAkJFBXRC9zcmMKKy0K Ky1ERUZJTkVTICs9IFVTRV9VVEY4CistCistU09VUkNFUyArPSBsaW5lbm9pc2UuYyBcCistICAg IHV0ZjguYworLUhFQURFUlMgKz0gbGluZW5vaXNlLmggXAorLSAgICB1dGY4LmgKK2RpZmYgLS1n aXQgYS9zcmMvbW9uZ29vc2UvbW9uZ29vc2UucHJpIGIvc3JjL21vbmdvb3NlL21vbmdvb3NlLnBy aQorZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CitpbmRleCA1ZmIxNmY5OTYuLjAwMDAwMDAwMAor LS0tIGEvc3JjL21vbmdvb3NlL21vbmdvb3NlLnByaQorKysrIC9kZXYvbnVsbAorQEAgLTEsNyAr MCwwIEBACistVlBBVEggKz0gJCRQV0QKKy1JTkNMVURFUEFUSCArPSAkJFBXRAorLQorLVNPVVJD RVMgKz0gbW9uZ29vc2UuYworLUhFQURFUlMgKz0gbW9uZ29vc2UuaAorLWxpbnV4KjpMSUJTICs9 IC1sZGwKKy13aW4zMjpMSUJTICs9IC1sV3MyXzMyCitkaWZmIC0tZ2l0IGEvc3JjL3Fjb21tYW5k bGluZS9xY29tbWFuZGxpbmUucHJpIGIvc3JjL3Fjb21tYW5kbGluZS9xY29tbWFuZGxpbmUucHJp CitkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKK2luZGV4IGU5OTRmMTliMi4uMDAwMDAwMDAwCist LS0gYS9zcmMvcWNvbW1hbmRsaW5lL3Fjb21tYW5kbGluZS5wcmkKKysrKyAvZGV2L251bGwKK0BA IC0xLDcgKzAsMCBAQAorLVZQQVRIICs9ICQkUFdECistSU5DTFVERVBBVEggKz0gJCRQV0QKKy0K Ky1ERUZJTkVTICs9IFNUQVRJQ19CVUlMRCBRQ09NTUFORExJTkVfU1RBVElDCistCistU09VUkNF UyArPSBxY29tbWFuZGxpbmUuY3BwCistSEVBREVSUyArPSBxY29tbWFuZGxpbmUuaAorLS0gCisy LjM5LjAKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9waGFudG9tanMvdGVtcGxhdGUgYi9zcmNwa2dz L3BoYW50b21qcy90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjVmNWRlYTdiYjBjMAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcGhhbnRvbWpzL3Rl bXBsYXRlCkBAIC0wLDAgKzEsMjIgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ3BoYW50b21qcycK K3BrZ25hbWU9cGhhbnRvbWpzCit2ZXJzaW9uPTIuMS4xCityZXZpc2lvbj0xCitidWlsZF9zdHls ZT1jb25maWd1cmUKK2NvbmZpZ3VyZV9hcmdzPSItLXByZWZpeD0vdXNyIgoraG9zdG1ha2VkZXBl bmRzPSJjbWFrZSBxdDUtaG9zdC10b29scyBxdDUtcW1ha2UiCittYWtlZGVwZW5kcz0icXQ1LWRl dmVsIHF0NS13ZWJraXQtZGV2ZWwiCitzaG9ydF9kZXNjPSJIZWFkbGVzcyB3ZWIgYnJvd3NlciBz Y3JpcHRhYmxlIHdpdGggSmF2YVNjcmlwdCIKK21haW50YWluZXI9IkV1Z2VuIFphZ29yb2RuaXkg PHphZ0BkaXNyb290Lm9yZz4iCitsaWNlbnNlPUJTRC0zLUNsYXVzZQoraG9tZXBhZ2U9Imh0dHBz Oi8vcGhhbnRvbWpzLm9yZy8iCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9hcml5YS9w aGFudG9tanMvYXJjaGl2ZS9yZWZzL3RhZ3MvJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT1i ZDFlNjNlOWNkNDhkNWE5YzhmZjFhZmZjMjU0ZWVhZTE0NzA0MzA0NDM3NzEwNzI5ZjEzM2NiODBj Zjk4Y2YxCisKK3Bvc3RfaW5zdGFsbCgpIHsKKwl2bGljZW5zZSBMSUNFTlNFLkJTRAorfQorCitk b19jaGVjayAoKSB7CisJOiAjIHRvbyBtYW55IHRlc3RzIGFyZSBicm9rZW4KK30K --===============0675874206486772005==--