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_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 15181 invoked from network); 10 Jul 2022 19:50:51 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 10 Jul 2022 19:50:51 -0000 Content-Type: multipart/mixed; boundary="===============8894099376189149209==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_New_package=3A_7zip-22=2E00?= To: ml@inbox.vuxu.org From: r-ricci Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 10 Jul 2022 21:50:51 +0200 List-Id: Message-ID: <20220710195051.vJ6xbT6Iogli2QYq1OOtYbeSQ6r3Zeoi6OIzPYCev_I@z> GitHub notification mails are now in MIME to allow UTF8. --===============8894099376189149209== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgci1yaWNjaSBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vci1y aWNjaS92b2lkLXBhY2thZ2VzIDd6aXAKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9wdWxsLzM3OTQwCgpOZXcgcGFja2FnZTogN3ppcC0yMi4wMAo8IS0tIFVuY29t bWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJlIG5vdCBh cHBsaWNhYmxlIC0tPg0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0ZWQgdGhl IGNoYW5nZXMgaW4gdGhpcyBQUjogKipicmllZmx5KioNCg0KPCEtLQ0KIyMjIyBOZXcgcGFja2Fn ZQ0KLSBUaGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVu dHNdKGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0 ZXIvTWFudWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioNCi0tPg0K DQo8IS0tIE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBo b3VycywgcGxlYXNlIGFkZCBjaSBza2lwIHRhZyBhcyBkZXNjcmliZWQgaW4NCmh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvQ09OVFJJQlVUSU5H Lm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24NCmFuZCB0ZXN0IGF0IGxlYXN0IG9uZSBuYXRpdmUg YnVpbGQgYW5kLCBpZiBzdXBwb3J0ZWQsIGF0IGxlYXN0IG9uZSBjcm9zcyBidWlsZC4NCklnbm9y ZSB0aGlzIHNlY3Rpb24gaWYgdGhpcyBQUiBpcyBub3Qgc2tpcHBpbmcgQ0kuDQotLT4NCjwhLS0N CiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3Ig bXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFSQ0gtTElCQykNCi0gSSBidWlsdCB0aGlzIFBSIGxv Y2FsbHkgZm9yIHRoZXNlIGFyY2hpdGVjdHVyZXMgKGlmIHN1cHBvcnRlZC4gbWFyayBjcm9zc2J1 aWxkcyk6DQogIC0gYWFyY2g2NC1tdXNsDQogIC0gYXJtdjdsDQogIC0gYXJtdjZsLW11c2wNCi0t Pg0KDQpJIGRvbid0IHRoaW5rIHRoZXJlJ3MgYW55IHJlYXNvbiB0byBzaGlwIHRoZSBmdWxsIGFu ZCB0aGUgcmVkdWNlZCB2ZXJzaW9ucyBpbiB0aGUgc2FtZSBwYWNrYWdlLCBzbyBJIGp1c3QgY29t cGlsZSB0aGUgZnVsbCBvbmUgYW5kIGNyZWF0ZSBzeW1saW5rcyBmb3IgY29tcGF0aWJpbGl0eS4N Cg0KVE9ETzoNCg0KLSBmaXggbXVzbDogaXQgdXNlcyBzb21lIGZ1bmN0aW9ucyByZXF1aXJpbmcg YF9HTlVfU09VUkNFYCwgYnV0IG90aGVyIHBhcnRzIG9mIHRoZSBzb3VyY2UgZGVmaW5lIGl0IHdp dGhvdXQgY2hlY2tpbmcgaWYgaXQncyBhbHJlYWR5IGRlZmluZWQsIHNvIEkgZ2V0IGNvbXBpbGF0 aW9uIGVycm9ycyBpZiBJIGp1c3QgZGVmaW5lIGl0IGdsb2JhbGx5Lg0KLSBidWlsZCB3aXRoIGFz c2VtYmx5IHdoZXJlIHBvc3NpYmxlDQotIGJ1aWxkIGEgdmVyc2lvbiB3aXRoIFJBUiBzdXBwb3J0 IChub25mcmVlIHJlcG8pDQotIHVzZSBvdXIgY29tcGlsZSBhbmQgbGluayBmbGFncw0KLSB3aGF0 J3MgdGhlIG1vc3QgYXBwcm9wcmlhdGUgbmFtZSBmb3IgdGhlIHBhY2thZ2U/IDd6aXAsIDctemlw IG9yIDd6Pw0KDQpjbG9zZXMgIzM3ODc1CgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1 Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzc5NDAucGF0Y2ggaXMgYXR0YWNo ZWQ= --===============8894099376189149209== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-7zip-37940.patch" RnJvbSA3OTk5YTQzNzBjMjQ2N2NmYzFlN2I3NDljYzBmZjk0YjU1NmQ0M2VkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2JlcnRvIFJpY2NpIDxyaWNjaUBkaXNyb290Lm9yZz4KRGF0 ZTogU2F0LCA5IEp1bCAyMDIyIDEyOjA1OjIyICswMjAwClN1YmplY3Q6IFtQQVRDSF0gTmV3IHBh Y2thZ2U6IDd6aXAtMjIuMDAKCi0tLQogc3JjcGtncy83emlwL2ZpbGVzLzd6ei4xICAgICAgICAg ICAgICAgICAgICAgIHwgMjE1ICsrKysrKysrKysrKwogc3JjcGtncy83emlwL3BhdGNoZXMvYnVp bGRfZmxhZ3MucGF0Y2ggICAgICAgIHwgIDMwICsrCiBzcmNwa2dzLzd6aXAvdGVtcGxhdGUgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgNTAgKysrCiBzcmNwa2dzL3A3emlwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9wN3ppcC11bnJhciAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAxIC0KIHNyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8yMC1DVkUt MjAxOC01OTk2LnBhdGNoICB8IDIyMSAtLS0tLS0tLS0tLS0tCiBzcmNwa2dzL3A3emlwL3BhdGNo ZXMvMzAtQ1ZFLTIwMTgtMTAxMTUucGF0Y2ggfCAzMTEgLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmNw a2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTYtOTI5Ni5wYXRjaCAgICAgfCAgMTIgLQogc3JjcGtn cy9wN3ppcC9wYXRjaGVzL0NWRS0yMDE3LTE3OTY5LnBhdGNoICAgIHwgIDI2IC0tCiBzcmNwa2dz L3A3emlwL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICAgICAgfCAgNDcgLS0tCiBzcmNwa2dz L3A3emlwL3VwZGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgLQogMTEgZmlsZXMg Y2hhbmdlZCwgMjk2IGluc2VydGlvbnMoKyksIDYxOSBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzLzd6aXAvZmlsZXMvN3p6LjEKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzLzd6aXAvcGF0Y2hlcy9idWlsZF9mbGFncy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvN3ppcC90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvcDd6aXAKIGRl bGV0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL3A3emlwLXVucmFyCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9wN3ppcC9wYXRjaGVzLzIwLUNWRS0yMDE4LTU5OTYucGF0Y2gKIGRlbGV0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3A3emlwL3BhdGNoZXMvMzAtQ1ZFLTIwMTgtMTAxMTUucGF0Y2gKIGRl bGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTYtOTI5Ni5wYXRj aAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNy0xNzk2 OS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcDd6aXAvdGVtcGxhdGUKIGRlbGV0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3A3emlwL3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv N3ppcC9maWxlcy83enouMSBiL3NyY3BrZ3MvN3ppcC9maWxlcy83enouMQpuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjJlMTU5YmQ5NGJiNAotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3MvN3ppcC9maWxlcy83enouMQpAQCAtMCwwICsxLDIxNSBAQAorLlRIIDdaWiAi MSIgIkZlYnJ1YXJ5IDE0LCAyMDIyIgorLlNIIE5BTUUKKzd6eiBcLSBTdGFuZGFsb25lIGNvbnNv bGUgdmVyc2lvbiBvZiB0aGUgNy1aaXAgZmlsZSBhcmNoaXZlcgorLlNIIFNZTk9QU0lTCisuQiA3 enoKKy5cIiBcZklcLDxjb21tYW5kPiBcL1tcZklcLDxzd2l0Y2g+XC8uLi5dIFxmSVwsPGFyY2hp dmVfbmFtZT4gXC9bXGZJXCw8ZmlsZV9uYW1lcz5cLy4uLl0gW1xmSVwsQGxpc3RfZmlsZVwvXQor LkJSIDxjb21tYW5kPgorLkJSIFs8c3dpdGNoPi4uLl0KKy5CUiA8YXJjaGl2ZV9uYW1lPgorLkJS IFs8ZmlsZV9uYW1lcz5dCisuQlIgW0BsaXN0ZmlsZV0KKy5TSCBERVNDUklQVElPTgorN1wtWmlw IGlzIGEgZmlsZSBhcmNoaXZlciB3aXRoIGEgaGlnaCBjb21wcmVzc2lvbiByYXRpby4gU3VwcG9y dGVkIGZvcm1hdHM6CisuSVAKK1BhY2tpbmcgYW5kIHVucGFja2luZzogN3osIFhaLCBCWklQMiwg R1pJUCwgVEFSLCBaSVAgYW5kIFdJTS4KKy5JUAorVW5wYWNraW5nIG9ubHk6IEFSLCBBUkosIENB QiwgQ0hNLCBDUElPLCBDcmFtRlMsIERNRywgRVhULCBGQVQsIEdQVCwgSEZTLCBJSEVYLCBJU08s IExaSCwgTFpNQSwgTUJSLCBNU0ksIE5TSVMsIE5URlMsIFFDT1cyLCBSQVIsIFJQTSwgU3F1YXNo RlMsIFVERiwgVUVGSSwgVkRJLCBWSEQsIFZIRFgsIFZNREssIFdJTSwgWEFSIGFuZCBaLgorLlNI IENvbW1hbmRzCisuVFAKKy5CUiBhCitBZGQgZmlsZXMgdG8gYXJjaGl2ZQorLlRQCisuQlIgYgor QmVuY2htYXJrCisuVFAKKy5CUiBkCitEZWxldGUgZmlsZXMgZnJvbSBhcmNoaXZlCisuVFAKKy5C UiBlCitFeHRyYWN0IGZpbGVzIGZyb20gYXJjaGl2ZSAod2l0aG91dCB1c2luZyBkaXJlY3Rvcnkg bmFtZXMpCisuVFAKKy5CUiBoCitDYWxjdWxhdGUgaGFzaCB2YWx1ZXMgZm9yIGZpbGVzCisuVFAK Ky5CUiBpCitTaG93IGluZm9ybWF0aW9uIGFib3V0IHN1cHBvcnRlZCBmb3JtYXRzCisuVFAKKy5C UiBsCitMaXN0IGNvbnRlbnRzIG9mIGFyY2hpdmUKKy5UUAorLkJSIHJuCitSZW5hbWUgZmlsZXMg aW4gYXJjaGl2ZQorLlRQCisuQlIgdAorVGVzdCBpbnRlZ3JpdHkgb2YgYXJjaGl2ZQorLlRQCisu QlIgdQorVXBkYXRlIGZpbGVzIHRvIGFyY2hpdmUKKy5UUAorLkJSIHgKK0V4dHJhY3QgZmlsZXMg d2l0aCBmdWxsIHBhdGhzCisuU0ggU3dpdGNoZXMKKy5UUAorLkJSIFwtXC0KK1N0b3Agc3dpdGNo ZXMgYW5kIEBsaXN0ZmlsZSBwYXJzaW5nCisuVFAKKy5CUiBcLWFpW3JbXC18MF1de0BsaXN0Zmls ZXwhd2lsZGNhcmR9CitJbmNsdWRlIGFyY2hpdmVzCisuVFAKKy5CUiBcLWF4W3JbXC18MF1de0Bs aXN0ZmlsZXwhd2lsZGNhcmR9CitFeGNsdWRlIGFyY2hpdmVzCisuVFAKKy5CUiBcLWFve2F8c3x0 fHV9CitTZXQgT3ZlcndyaXRlIG1vZGUKKy5UUAorLkJSIFwtYW4KK0Rpc2FibGUgYXJjaGl2ZV9u YW1lIGZpZWxkCisuVFAKKy5CUiBcLWJiWzBcLTNdCitTZXQgb3V0cHV0IGxvZyBsZXZlbAorLlRQ CisuQlIgXC1iZAorRGlzYWJsZSBwcm9ncmVzcyBpbmRpY2F0b3IKKy5UUAorLkJSIFwtYnN7b3xl fHB9ezB8MXwyfQorU2V0IG91dHB1dCBzdHJlYW0gZm9yIG91dHB1dC9lcnJvci9wcm9ncmVzcyBs aW5lCisuVFAKKy5CUiBcLWJ0CitzaG93IGV4ZWN1dGlvbiB0aW1lIHN0YXRpc3RpY3MKKy5UUAor LkJSIFwtaVtyW1wtfDBdXXtAbGlzdGZpbGV8IXdpbGRjYXJkfQorSW5jbHVkZSBmaWxlbmFtZXMK Ky5UUAorLkJSIFwtbXtQYXJhbWV0ZXJzfQorU2V0IGNvbXByZXNzaW9uIE1ldGhvZAorLlRQCisu QlIgXC1tbXRbTl0KK1NldCBudW1iZXIgb2YgQ1BVIHRocmVhZHMKKy5UUAorLkJSIFwtbXhbTl0K K1NldCBjb21wcmVzc2lvbiBsZXZlbDogXC1teDEgKGZhc3Rlc3QpIC4uLiBcLW14OSAodWx0cmEp CisuVFAKKy5CUiBcLW97RGlyZWN0b3J5fQorU2V0IE91dHB1dCBkaXJlY3RvcnkKKy5UUAorLkJS IFwtcHtQYXNzd29yZH0KK1NldCBQYXNzd29yZAorLlRQCisuQlIgXC1yW1wtfDBdCitSZWN1cnNl IHN1YmRpcmVjdG9yaWVzIGZvciBuYW1lIHNlYXJjaAorLlRQCisuQlIgXC1zYXthfGV8c30KK1Nl dCBBcmNoaXZlIG5hbWUgbW9kZQorLlRQCisuQlIgXC1zY2N7VVRGXC04fFdJTnxET1N9CitTZXQg Y2hhcnNldCBmb3IgZm9yIGNvbnNvbGUgaW5wdXQvb3V0cHV0CisuVFAKKy5CUiBcLXNjc3tVVEZc LTh8VVRGXC0xNkxFfFVURlwtMTZCRXxXSU58RE9TfHtpZH19CitTZXQgY2hhcnNldCBmb3IgbGlz dCBmaWxlcworLlRQCisuQlIgXC1zY3JjW0NSQzMyfENSQzY0fFNIQTF8U0hBMjU2fCpdCitTZXQg aGFzaCBmdW5jdGlvbiBmb3IgeCwgZSwgaCBjb21tYW5kcworLlRQCisuQlIgXC1zZGVsCitEZWxl dGUgZmlsZXMgYWZ0ZXIgY29tcHJlc3Npb24KKy5UUAorLkJSIFwtc2VtbFsuXQorU2VuZCBhcmNo aXZlIGJ5IGVtYWlsCisuVFAKKy5CUiBcLXNmeFt7bmFtZX1dCitDcmVhdGUgU0ZYIGFyY2hpdmUK Ky5UUAorLkJSIFwtc2lbe25hbWV9XQorUmVhZCBkYXRhIGZyb20gc3RkaW4KKy5UUAorLkJSIFwt c2xwCitTZXQgTGFyZ2UgUGFnZXMgbW9kZQorLlRQCisuQlIgXC1zbHQKK1Nob3cgdGVjaG5pY2Fs IGluZm9ybWF0aW9uIGZvciBsIChMaXN0KSBjb21tYW5kCisuVFAKKy5CUiBcLXNuaAorU3RvcmUg aGFyZCBsaW5rcyBhcyBsaW5rcworLlRQCisuQlIgXC1zbmwKK1N0b3JlIHN5bWJvbGljIGxpbmtz IGFzIGxpbmtzCisuVFAKKy5CUiBcLXNuaQorU3RvcmUgTlQgc2VjdXJpdHkgaW5mb3JtYXRpb24K Ky5UUAorLkJSIFwtc25zW1wtXQorU3RvcmUgTlRGUyBhbHRlcm5hdGUgc3RyZWFtcworLlRQCisu QlIgXC1zbworV3JpdGUgZGF0YSB0byBzdGRvdXQKKy5UUAorLkJSIFwtc3BkCitEaXNhYmxlIHdp bGRjYXJkIG1hdGNoaW5nIGZvciBmaWxlIG5hbWVzCisuVFAKKy5CUiBcLXNwZQorRWxpbWluYXRl IGR1cGxpY2F0aW9uIG9mIHJvb3QgZm9sZGVyIGZvciBleHRyYWN0IGNvbW1hbmQKKy5UUAorLkJS IFwtc3BmCitVc2UgZnVsbHkgcXVhbGlmaWVkIGZpbGUgcGF0aHMKKy5UUAorLkJSIFwtc3NjW1wt XQorU2V0IHNlbnNpdGl2ZSBjYXNlIG1vZGUKKy5UUAorLkJSIFwtc3NlCitTdG9wIGFyY2hpdmUg Y3JlYXRpbmcsIGlmIGl0IGNhbid0IG9wZW4gc29tZSBpbnB1dCBmaWxlCisuVFAKKy5CUiBcLXNz cAorRG8gbm90IGNoYW5nZSBMYXN0IEFjY2VzcyBUaW1lIG9mIHNvdXJjZSBmaWxlcyB3aGlsZSBh cmNoaXZpbmcKKy5UUAorLkJSIFwtc3N3CitDb21wcmVzcyBzaGFyZWQgZmlsZXMKKy5UUAorLkJS IFwtc3RsCitTZXQgYXJjaGl2ZSB0aW1lc3RhbXAgZnJvbSB0aGUgbW9zdCByZWNlbnRseSBtb2Rp ZmllZCBmaWxlCisuVFAKKy5CUiBcLXN0bXtIZXhNYXNrfQorU2V0IENQVSB0aHJlYWQgYWZmaW5p dHkgbWFzayAoaGV4YWRlY2ltYWwgbnVtYmVyKQorLlRQCisuQlIgXC1zdHh7VHlwZX0KK0V4Y2x1 ZGUgYXJjaGl2ZSB0eXBlCisuVFAKKy5CUiBcLXR7VHlwZX0KK1NldCB0eXBlIG9mIGFyY2hpdmUK Ky5UUAorLkJSIFwtdVtcLV1bcCNdW3EjXVtyI11beCNdW3kjXVt6I11bIW5ld0FyY2hpdmVOYW1l XQorVXBkYXRlIG9wdGlvbnMKKy5UUAorLkJSIFwtdntTaXplfVtifGt8bXxnXQorQ3JlYXRlIHZv bHVtZXMKKy5UUAorLkJSIFwtd1t7cGF0aH1dCitTZXQgd29ya2luZyBkaXJlY3RvcnkuIEVtcHR5 IHBhdGggbWVhbnMgYSB0ZW1wb3JhcnkgZGlyZWN0b3J5CisuVFAKKy5CUiBcLXhbcltcLXwwXV17 QGxpc3RmaWxlfCF3aWxkY2FyZH0KK0V4Y2x1ZGUgZmlsZW5hbWVzCisuVFAKKy5CUiBcLXkKK0Fz c3VtZSBZZXMgb24gYWxsIHF1ZXJpZXMKKy5TSCBMaXN0ZmlsZQorWW91IGNhbiBzdXBwbHkgb25l IG9yIG1vcmUgZmlsZW5hbWVzIG9yIHdpbGRjYXJkcyBmb3Igc3BlY2lhbCBsaXN0IGZpbGVzIChm aWxlcyBjb250YWluaW5nIGxpc3RzIG9mIGZpbGVzKS4gVGhlIGZpbGVuYW1lcyBpbiBzdWNoIGxp c3QgZmlsZSBtdXN0IGJlIHNlcGFyYXRlZCBieSBuZXcgbGluZSBzeW1ib2wocykuIEZvciBsaXN0 IGZpbGVzLCA3XC1aaXAgdXNlcyBVVEZcLTggZW5jb2RpbmcgYnkgZGVmYXVsdC4gWW91IGNhbiBj aGFuZ2UgZW5jb2RpbmcgdXNpbmcKKy5CUiBcLXNjcworc3dpdGNoLiBNdWx0aXBsZSBsaXN0IGZp bGVzIGFyZSBzdXBwb3J0ZWQuCisuUFAKK0ZvciBleGFtcGxlLCBpZiB0aGUgZmlsZSAibGlzdGZp bGUudHh0IiBjb250YWlucyB0aGUgZm9sbG93aW5nOgorLklQCitNeSBwcm9ncmFtc1xcKi5jcHAK Ky5icgorU3JjXFwqLmNwcAorLlBQCit0aGVuIHRoZSBjb21tYW5kCisuSVAKKy5CIDd6IGEgXC10 emlwIGFyY2hpdmUuemlwIEBsaXN0ZmlsZS50eHQKKy5QUAorYWRkcyB0byB0aGUgYXJjaGl2ZSAi YXJjaGl2ZS56aXAiIGFsbCAiKi5jcHAiIGZpbGVzIGZyb20gZGlyZWN0b3JpZXMgIk15IHByb2dy YW1zIiBhbmQgIlNyYyIuCisuU0ggIlNFRSBBTFNPIgorLkJSIHh6ICgxKQorLmJyCitGcmVxdWVu dGx5IEFza2VkIFF1ZXN0aW9uczogPGh0dHBzOi8vd3d3LjctemlwLm9yZy9mYXEuaHRtbD4KKy5i cgorUmVjb3ZlciBjb3JydXB0ZWQgN3ogYXJjaGl2ZTogPGh0dHBzOi8vd3d3LjctemlwLm9yZy9y ZWNvdmVyLmh0bWw+CmRpZmYgLS1naXQgYS9zcmNwa2dzLzd6aXAvcGF0Y2hlcy9idWlsZF9mbGFn cy5wYXRjaCBiL3NyY3BrZ3MvN3ppcC9wYXRjaGVzL2J1aWxkX2ZsYWdzLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNGY3OTFmZjYzZGRmCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy83emlwL3BhdGNoZXMvYnVpbGRfZmxhZ3MucGF0Y2gKQEAgLTAsMCAr MSwzMCBAQAorYXBwZW5kIChkb24ndCBwcmVmaXgpIHhicHMgYnVpbGQgZmxhZ3MgYW5kIGRvbid0 IHN0cmlwIHRoZSBleGVjdXRhYmxlCistLS0gYS9DUFAvN3ppcC83emlwX2djYy5tYWsKKysrKyBi L0NQUC83emlwLzd6aXBfZ2NjLm1haworQEAgLTEyNiw3ICsxMjYsNyBAQCBlbmRpZgorIA0KKyAN CisgDQorLUNGTEFHUyA9ICQoTVlfQVJDSF8yKSAkKExPQ0FMX0ZMQUdTKSAkKENGTEFHU19CQVNF MikgJChDRkxBR1NfQkFTRSkgJChDQ19TSEFSRUQpIC1vICRADQorK0NGTEFHUyA9ICQoTVlfQVJD SF8yKSAkKExPQ0FMX0ZMQUdTKSAkKENGTEFHU19CQVNFMikgJChDRkxBR1NfQkFTRSkgJChDQ19T SEFSRUQpICQoWEJQU19DRkxBR1MpIC1vICRADQorIA0KKyANCisgaWZkZWYgSVNfTUlOR1cNCitA QCAtMTU0LDcgKzE1NCw3IEBAIENYWF9XQVJOX0ZMQUdTID0KKyAjLVduby1pbnZhbGlkLW9mZnNl dG9mDQorICMtV25vLXJlb3JkZXINCisgDQorLUNYWEZMQUdTID0gJChNWV9BUkNIXzIpICQoTE9D QUxfRkxBR1MpICQoQ1hYRkxBR1NfQkFTRTIpICQoQ0ZMQUdTX0JBU0UpICQoQ1hYRkxBR1NfRVhU UkEpICQoQ0NfU0hBUkVEKSAtbyAkQCAkKENYWF9XQVJOX0ZMQUdTKQ0KKytDWFhGTEFHUyA9ICQo TVlfQVJDSF8yKSAkKExPQ0FMX0ZMQUdTKSAkKENYWEZMQUdTX0JBU0UyKSAkKENGTEFHU19CQVNF KSAkKENYWEZMQUdTX0VYVFJBKSAkKENDX1NIQVJFRCkgLW8gJEAgJChDWFhfV0FSTl9GTEFHUykg JChYQlBTX0NYWEZMQUdTKQ0KKyANCisgU1RBVElDX1RBUkdFVD0NCisgaWZkZWYgQ09NUExfU1RB VElDDQorQEAgLTE2Nyw3ICsxNjcsNyBAQCBhbGw6ICQoTykgJChQUk9HUEFUSCkgJChTVEFUSUNf VEFSR0VUKQorICQoTyk6DQorIAkkKE1ZX01LRElSKSAkKE8pDQorIA0KKy1MRkxBR1NfQUxMID0g LXMgJChNWV9BUkNIXzIpICQoTERGTEFHUykgJChMRF9hcmNoKSAkKE9CSlMpICQoTVlfTElCUykg JChMSUIyKQ0KKytMRkxBR1NfQUxMID0gJChNWV9BUkNIXzIpICQoTERGTEFHUykgJChMRF9hcmNo KSAkKE9CSlMpICQoTVlfTElCUykgJChMSUIyKSAkKFhCUFNfTERGTEFHUykNCisgJChQUk9HUEFU SCk6ICQoT0JKUykNCisgCSQoQ1hYKSAtbyAkKFBST0dQQVRIKSAkKExGTEFHU19BTEwpDQorIA0K ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvN3ppcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvN3ppcC90ZW1wbGF0 ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjgxNGE1NTQ1NTg3ZQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvN3ppcC90ZW1wbGF0ZQpAQCAtMCwwICsxLDUwIEBA CisjIFRlbXBsYXRlIGZpbGUgZm9yICc3emlwJworcGtnbmFtZT03emlwCit2ZXJzaW9uPTIyLjAw CityZXZpc2lvbj0xCitjcmVhdGVfd3Jrc3JjPXllcworc2hvcnRfZGVzYz0iRmlsZSBhcmNoaXZl ciB3aXRoIGEgaGlnaCBjb21wcmVzc2lvbiByYXRpbyIKK21haW50YWluZXI9IlJvYmVydG8gUmlj Y2kgPHJpY2NpQGRpc3Jvb3Qub3JnPiIKK2xpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyLCBCU0Qt My1DbGF1c2UiCitob21lcGFnZT0iaHR0cHM6Ly93d3cuNy16aXAub3JnIgorY2hhbmdlbG9nPSJo dHRwczovL3d3dy43LXppcC5vcmcvaGlzdG9yeS50eHQiCitkaXN0ZmlsZXM9Imh0dHBzOi8vd3d3 LjctemlwLm9yZy9hLzd6JHt2ZXJzaW9uLy8uL30tc3JjLnRhci54eiIKK2NoZWNrc3VtPTQwOTY5 ZjYwMWU4NmFmZjQ5YWFhMGJhMGRmNWNlNmZkMzk3Y2Y3ZTI2ODNhODRiNTkxYjAwODFlNDYxZWY2 NzUKKworZG9fYnVpbGQoKSB7CisJY2QgQ1BQLzd6aXAvQnVuZGxlcy9BbG9uZTIKKwltYWtlICIk bWFrZWpvYnMiIC1mIC4uLy4uL2NtcGxfZ2NjLm1hayBcCisJCUNDPSIkQ0MiIENYWD0iJENYWCIg WEJQU19DRkxBR1M9IiRDRkxBR1MiIFwKKwkJWEJQU19DWFhGTEFHUz0iJENYWEZMQUdTIiBYQlBT X0xERkxBR1M9IiRMREZMQUdTIiBcCisJCURJU0FCTEVfUkFSX0NPTVBSRVNTPTEKK30KKworZG9f aW5zdGFsbCgpIHsKKwl2YmluIENQUC83emlwL0J1bmRsZXMvQWxvbmUyL2IvZy83enoKKwlmb3Ig aSBpbiA3eiA3emEgN3pyOyBkbworCQlsbiAtc2YgN3p6ICR7REVTVERJUn0vdXNyL2Jpbi8ke2l9 CisJZG9uZQorCisJdmxpY2Vuc2UgRE9DL0xpY2Vuc2UudHh0CisKKwkjIGh0dHBzOi8vY2dpdC5m cmVlYnNkLm9yZy9wb3J0cy9wbGFpbi9hcmNoaXZlcnMvNy16aXAvZmlsZXMvN3p6LjEKKwl2bWFu ICR7RklMRVNESVJ9Lzd6ei4xCit9CisKKyM3emlwLXJhcl9wYWNrYWdlKCkgeworCSNyZXBvc2l0 b3J5PW5vbmZyZWUKKwkjY29uZmxpY3RzPTd6aXAKKwkjc2hvcnRfZGVzYys9IiB3aXRoIFJBUiBz dXBwb3J0IgorI30KKworcDd6aXBfcGFja2FnZSgpIHsKKwlidWlsZF9zdHlsZT1tZXRhCisJZGVw ZW5kcz03emlwCisJc2hvcnRfZGVzYz0iQ29tbWFuZC1saW5lIHZlcnNpb24gb2YgdGhlIDd6aXAg Y29tcHJlc3NlZCBmaWxlIGFyY2hpdmUgKHRyYW5zaXRpb25hbCBkdW1teSBwYWNrYWdlKSIKK30K KworI3A3emlwLXVucmFyX3BhY2thZ2UgeworCSNidWlsZF9zdHlsZT1tZXRhCisJI2RlcGVuZHM9 N3ppcC1yYXIKKwkjc2hvcnRfZGVzYz0iQ29tbWFuZC1saW5lIHZlcnNpb24gb2YgdGhlIDd6aXAg Y29tcHJlc3NlZCBmaWxlIGFyY2hpdmUgLSBSQVIgc3VwcG9ydCAodHJhbnNpdGlvbmFsIGR1bW15 IHBhY2thZ2UpIgorI30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcDd6aXAgYi9zcmNwa2dzL3A3emlw Cm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uMjg0MzEyNTk1YTRjCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9wN3ppcApAQCAtMCwwICsxIEBACis3emlwClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC11bnJhciBi L3NyY3BrZ3MvcDd6aXAtdW5yYXIKZGVsZXRlZCBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IGJmNTM0 OWVlNjY2Ni4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcDd6aXAtdW5yYXIKKysrIC9kZXYv bnVsbApAQCAtMSArMCwwIEBACi1wN3ppcApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8yMC1DVkUtMjAxOC01OTk2LnBhdGNoIGIv c3JjcGtncy9wN3ppcC9wYXRjaGVzLzIwLUNWRS0yMDE4LTU5OTYucGF0Y2gKZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDY3MzNiZmY5MTg5NS4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3Br Z3MvcDd6aXAvcGF0Y2hlcy8yMC1DVkUtMjAxOC01OTk2LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMjIxICswLDAgQEAKLUZyb206IFJvYmVydCBMdWJlcmRhIDxyb2JlcnRAZGViaWFuLm9yZz4K LURhdGU6IFN1biwgMjggSmFuIDIwMTggMjM6NDc6NDAgKzAxMDAKLVN1YmplY3Q6IENWRS0yMDE4 LTU5OTYKLQotSG9wZWZ1bGx5IGZpeCBNZW1vcnkgQ29ycnVwdGlvbnMgdmlhIFJBUiBQUE1kIChD VkUtMjAxOC01OTk2KSBieQotYXBwbHlpbmcgYSBmZXcgY2hhbmdlcyBmcm9tIDdaaXAgMTguMDAt YmV0YS4KLQotQnVnLURlYmlhbjogaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvIzg4ODMxNAotLS0t Ci0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuY3BwIHwgMTMgKysrKysrKysrLS0tLQot IENQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmggICB8ICAxICsKLSBDUFAvN3ppcC9Db21w cmVzcy9SYXIyRGVjb2Rlci5jcHAgfCAxMCArKysrKysrKystCi0gQ1BQLzd6aXAvQ29tcHJlc3Mv UmFyMkRlY29kZXIuaCAgIHwgIDEgKwotIENQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmNw cCB8IDIzICsrKysrKysrKysrKysrKysrKysrLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0Rl Y29kZXIuaCAgIHwgIDIgKysKLSA2IGZpbGVzIGNoYW5nZWQsIDQyIGluc2VydGlvbnMoKyksIDgg ZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rl ci5jcHAgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAKLWluZGV4IDFhYWVkY2Mu LjY4MDMwYzcgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAK LSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcAotQEAgLTI5LDcgKzI5LDcg QEAgcHVibGljOgotIH07Ci0gKi8KLSAKLS1DRGVjb2Rlcjo6Q0RlY29kZXIoKTogbV9Jc1NvbGlk KGZhbHNlKSB7IH0KLStDRGVjb2Rlcjo6Q0RlY29kZXIoKTogbV9Jc1NvbGlkKGZhbHNlKSwgX2Vy cm9yTW9kZShmYWxzZSkgeyB9Ci0gCi0gdm9pZCBDRGVjb2Rlcjo6SW5pdFN0cnVjdHVyZXMoKQot IHsKLUBAIC00MDYsOSArNDA2LDE0IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElTZXF1 ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAqCi0gICBJbml0 RGF0YSgpOwotICAgaWYgKCFtX0lzU29saWQpCi0gICB7Ci0rICAgIF9lcnJvck1vZGUgPSBmYWxz ZTsKLSAgICAgSW5pdFN0cnVjdHVyZXMoKTsKLSAgICAgSW5pdEh1ZmYoKTsKLSAgIH0KLSsKLSsg IGlmIChfZXJyb3JNb2RlKQotKyAgICByZXR1cm4gU19GQUxTRTsKLSsKLSAgIGlmIChtX1VucGFj a1NpemUgPiAwKQotICAgewotICAgICBHZXRGbGFnc0J1ZigpOwotQEAgLTQ3Nyw5ICs0ODIsOSBA QCBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OkNvZGUoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJl YW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtCi0gICAgIGNvbnN0IFVJbnQ2NCAqaW5TaXplLCBjb25z dCBVSW50NjQgKm91dFNpemUsIElDb21wcmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gewot ICAgdHJ5IHsgcmV0dXJuIENvZGVSZWFsKGluU3RyZWFtLCBvdXRTdHJlYW0sIGluU2l6ZSwgb3V0 U2l6ZSwgcHJvZ3Jlc3MpOyB9Ci0tICBjYXRjaChjb25zdCBDSW5CdWZmZXJFeGNlcHRpb24gJmUp IHsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0tICBjYXRjaChjb25zdCBDTHpPdXRXaW5kb3dFeGNl cHRpb24gJmUpIHsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0tICBjYXRjaCguLi4pIHsgcmV0dXJu IFNfRkFMU0U7IH0KLSsgIGNhdGNoKGNvbnN0IENJbkJ1ZmZlckV4Y2VwdGlvbiAmZSkgeyBfZXJy b3JNb2RlID0gdHJ1ZTsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0rICBjYXRjaChjb25zdCBDTHpP dXRXaW5kb3dFeGNlcHRpb24gJmUpIHsgX2Vycm9yTW9kZSA9IHRydWU7IHJldHVybiBlLkVycm9y Q29kZTsgfQotKyAgY2F0Y2goLi4uKSB7IF9lcnJvck1vZGUgPSB0cnVlOyByZXR1cm4gU19GQUxT RTsgfQotIH0KLSAKLSBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OlNldERlY29kZXJQcm9wZXJ0aWVz Mihjb25zdCBCeXRlICpkYXRhLCBVSW50MzIgc2l6ZSkKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9D b21wcmVzcy9SYXIxRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaAot aW5kZXggNjMwZjA4OS4uMDFiNjA2YiAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1Jh cjFEZWNvZGVyLmgKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmgKLUBAIC0z OSw2ICszOSw3IEBAIHB1YmxpYzoKLSAKLSAgIEludDY0IG1fVW5wYWNrU2l6ZTsKLSAgIGJvb2wg bV9Jc1NvbGlkOwotKyAgYm9vbCBfZXJyb3JNb2RlOwotIAotICAgVUludDMyIFJlYWRCaXRzKGlu dCBudW1CaXRzKTsKLSAgIEhSRVNVTFQgQ29weUJsb2NrKFVJbnQzMiBkaXN0YW5jZSwgVUludDMy IGxlbik7Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwIGIv Q1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwCi1pbmRleCBiM2YyYjRiLi4wNTgwYzhk IDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwCi0rKysgYi9D UFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5jcHAKLUBAIC04MCw3ICs4MCw4IEBAIHN0YXRp YyBjb25zdCBVSW50MzIga0hpc3RvcnlTaXplID0gMSA8PCAyMDsKLSBzdGF0aWMgY29uc3QgVUlu dDMyIGtXaW5kb3dSZXNlcnZTaXplID0gKDEgPDwgMjIpICsgMjU2OwotIAotIENEZWNvZGVyOjpD RGVjb2RlcigpOgotLSAgbV9Jc1NvbGlkKGZhbHNlKQotKyAgbV9Jc1NvbGlkKGZhbHNlKSwKLSsg IG1fVGFibGVzT0soZmFsc2UpCi0gewotIH0KLSAKLUBAIC0xMDAsNiArMTAxLDggQEAgVUludDMy IENEZWNvZGVyOjpSZWFkQml0cyh1bnNpZ25lZCBudW1CaXRzKSB7IHJldHVybiBtX0luQml0U3Ry ZWFtLlJlYWRCaXRzKG51bUIKLSAKLSBib29sIENEZWNvZGVyOjpSZWFkVGFibGVzKHZvaWQpCi0g ewotKyAgbV9UYWJsZXNPSyA9IGZhbHNlOwotKwotICAgQnl0ZSBsZXZlbExldmVsc1trTGV2ZWxU YWJsZVNpemVdOwotICAgQnl0ZSBuZXdMZXZlbHNba01heFRhYmxlU2l6ZV07Ci0gICBtX0F1ZGlv TW9kZSA9IChSZWFkQml0cygxKSA9PSAxKTsKLUBAIC0xNzAsNiArMTczLDggQEAgYm9vbCBDRGVj b2Rlcjo6UmVhZFRhYmxlcyh2b2lkKQotICAgfQotICAgCi0gICBtZW1jcHkobV9MYXN0TGV2ZWxz LCBuZXdMZXZlbHMsIGtNYXhUYWJsZVNpemUpOwotKyAgbV9UYWJsZXNPSyA9IHRydWU7Ci0rCi0g ICByZXR1cm4gdHJ1ZTsKLSB9Ci0gCi1AQCAtMzQ0LDYgKzM0OSw5IEBAIEhSRVNVTFQgQ0RlY29k ZXI6OkNvZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91 dFN0cmVhbSAqCi0gICAgICAgcmV0dXJuIFNfRkFMU0U7Ci0gICB9Ci0gCi0rICBpZiAoIW1fVGFi bGVzT0spCi0rICAgIHJldHVybiBTX0ZBTFNFOwotKwotICAgVUludDY0IHN0YXJ0UG9zID0gbV9P dXRXaW5kb3dTdHJlYW0uR2V0UHJvY2Vzc2VkU2l6ZSgpOwotICAgd2hpbGUgKHBvcyA8IHVuUGFj a1NpemUpCi0gICB7Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIu aCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmgKLWluZGV4IDNhMDUzNWMuLjBlOTAw NWYgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oCi0rKysgYi9D UFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oCi1AQCAtMTM5LDYgKzEzOSw3IEBAIGNsYXNz IENEZWNvZGVyIDoKLSAKLSAgIFVJbnQ2NCBtX1BhY2tTaXplOwotICAgYm9vbCBtX0lzU29saWQ7 Ci0rICBib29sIG1fVGFibGVzT0s7Ci0gCi0gICB2b2lkIEluaXRTdHJ1Y3R1cmVzKCk7Ci0gICBV SW50MzIgUmVhZEJpdHModW5zaWduZWQgbnVtQml0cyk7Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAv Q29tcHJlc3MvUmFyM0RlY29kZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIu Y3BwCi1pbmRleCAzYmYyNTEzLi42Y2I4YTZhIDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJl c3MvUmFyM0RlY29kZXIuY3BwCi0rKysgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5j cHAKLUBAIC05Miw3ICs5Miw4IEBAIENEZWNvZGVyOjpDRGVjb2RlcigpOgotICAgX3dyaXR0ZW5G aWxlU2l6ZSgwKSwKLSAgIF92bURhdGEoMCksCi0gICBfdm1Db2RlKDApLAotLSAgbV9Jc1NvbGlk KGZhbHNlKQotKyAgbV9Jc1NvbGlkKGZhbHNlKSwKLSsgIF9lcnJvck1vZGUoZmFsc2UpCi0gewot ICAgUHBtZDdfQ29uc3RydWN0KCZfcHBtZCk7Ci0gfQotQEAgLTU0NSw2ICs1NDYsOSBAQCBIUkVT VUxUIENEZWNvZGVyOjpSZWFkVGFibGVzKGJvb2wgJmtlZXBEZWNvbXByZXNzaW5nKQotICAgICBy ZXR1cm4gSW5pdFBQTSgpOwotICAgfQotIAotKyAgVGFibGVzUmVhZCA9IGZhbHNlOwotKyAgVGFi bGVzT0sgPSBmYWxzZTsKLSsKLSAgIF9sek1vZGUgPSB0cnVlOwotICAgUHJldkFsaWduQml0cyA9 IDA7Ci0gICBQcmV2QWxpZ25Db3VudCA9IDA7Ci1AQCAtNjA2LDYgKzYxMCw5IEBAIEhSRVNVTFQg Q0RlY29kZXI6OlJlYWRUYWJsZXMoYm9vbCAma2VlcERlY29tcHJlc3NpbmcpCi0gICAgICAgfQot ICAgICB9Ci0gICB9Ci0rICBpZiAoSW5wdXRFb2ZFcnJvcigpKQotKyAgICByZXR1cm4gU19GQUxT RTsKLSsKLSAgIFRhYmxlc1JlYWQgPSB0cnVlOwotIAotICAgLy8gb3JpZ2luYWwgY29kZSBoYXMg Y2hlY2sgaGVyZToKLUBAIC02MjMsNiArNjMwLDkgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6UmVhZFRh Ymxlcyhib29sICZrZWVwRGVjb21wcmVzc2luZykKLSAgIFJJRihtX0xlbkRlY29kZXIuQnVpbGQo Jm5ld0xldmVsc1trTWFpblRhYmxlU2l6ZSArIGtEaXN0VGFibGVTaXplICsga0FsaWduVGFibGVT aXplXSkpOwotIAotICAgbWVtY3B5KG1fTGFzdExldmVscywgbmV3TGV2ZWxzLCBrVGFibGVzU2l6 ZXNTdW0pOwotKwotKyAgVGFibGVzT0sgPSB0cnVlOwotKwotICAgcmV0dXJuIFNfT0s7Ci0gfQot IAotQEAgLTgyNCw3ICs4MzQsMTIgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSUNvbXBy ZXNzUHJvZ3Jlc3NJbmZvICpwcm9ncmVzcykKLSAgICAgUHBtRXNjQ2hhciA9IDI7Ci0gICAgIFBw bUVycm9yID0gdHJ1ZTsKLSAgICAgSW5pdEZpbHRlcnMoKTsKLSsgICAgX2Vycm9yTW9kZSA9IGZh bHNlOwotICAgfQotKwotKyAgaWYgKF9lcnJvck1vZGUpCi0rICAgIHJldHVybiBTX0ZBTFNFOwot KwotICAgaWYgKCFtX0lzU29saWQgfHwgIVRhYmxlc1JlYWQpCi0gICB7Ci0gICAgIGJvb2wga2Vl cERlY29tcHJlc3Npbmc7Ci1AQCAtODM4LDYgKzg1Myw4IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNv ZGVSZWFsKElDb21wcmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gICAgIGJvb2wga2VlcERl Y29tcHJlc3Npbmc7Ci0gICAgIGlmIChfbHpNb2RlKQotICAgICB7Ci0rICAgICAgaWYgKCFUYWJs ZXNPSykKLSsgICAgICAgIHJldHVybiBTX0ZBTFNFOwotICAgICAgIFJJTk9LKERlY29kZUxaKGtl ZXBEZWNvbXByZXNzaW5nKSkKLSAgICAgfQotICAgICBlbHNlCi1AQCAtOTAxLDggKzkxOCw4IEBA IFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6Q29kZShJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVh bSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0KLSAgICAgX3VucGFja1NpemUgPSBvdXRTaXplID8gKm91 dFNpemUgOiAoVUludDY0KShJbnQ2NCktMTsKLSAgICAgcmV0dXJuIENvZGVSZWFsKHByb2dyZXNz KTsKLSAgIH0KLS0gIGNhdGNoKGNvbnN0IENJbkJ1ZmZlckV4Y2VwdGlvbiAmZSkgIHsgcmV0dXJu IGUuRXJyb3JDb2RlOyB9Ci0tICBjYXRjaCguLi4pIHsgcmV0dXJuIFNfRkFMU0U7IH0KLSsgIGNh dGNoKGNvbnN0IENJbkJ1ZmZlckV4Y2VwdGlvbiAmZSkgIHsgX2Vycm9yTW9kZSA9IHRydWU7IHJl dHVybiBlLkVycm9yQ29kZTsgfQotKyAgY2F0Y2goLi4uKSB7IF9lcnJvck1vZGUgPSB0cnVlOyBy ZXR1cm4gU19GQUxTRTsgfQotICAgLy8gQ05ld0V4Y2VwdGlvbiBpcyBwb3NzaWJsZSBoZXJlLiBC dXQgcHJvYmFibHkgQ05ld0V4Y2VwdGlvbiBpcyBjYXVzZWQKLSAgIC8vIGJ5IGVycm9yIGluIGRh dGEgc3RyZWFtLgotIH0KLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rl ci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaAotaW5kZXggYzEzMGNlYy4uMmY3 MmQ3ZCAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmgKLSsrKyBi L0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmgKLUBAIC0xOTIsNiArMTkyLDcgQEAgY2xh c3MgQ0RlY29kZXI6Ci0gICBVSW50MzIgX2xhc3RGaWx0ZXI7Ci0gCi0gICBib29sIG1fSXNTb2xp ZDsKLSsgIGJvb2wgX2Vycm9yTW9kZTsKLSAKLSAgIGJvb2wgX2x6TW9kZTsKLSAgIGJvb2wgX3Vu c3VwcG9ydGVkRmlsdGVyOwotQEAgLTIwMCw2ICsyMDEsNyBAQCBjbGFzcyBDRGVjb2RlcjoKLSAg IFVJbnQzMiBQcmV2QWxpZ25Db3VudDsKLSAKLSAgIGJvb2wgVGFibGVzUmVhZDsKLSsgIGJvb2wg VGFibGVzT0s7Ci0gCi0gICBDUHBtZDcgX3BwbWQ7Ci0gICBpbnQgUHBtRXNjQ2hhcjsKZGlmZiAt LWdpdCBhL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8zMC1DVkUtMjAxOC0xMDExNS5wYXRjaCBiL3Ny Y3BrZ3MvcDd6aXAvcGF0Y2hlcy8zMC1DVkUtMjAxOC0xMDExNS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggN2Q5YzRiZjgxZjAwLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtn cy9wN3ppcC9wYXRjaGVzLzMwLUNWRS0yMDE4LTEwMTE1LnBhdGNoCisrKyAvZGV2L251bGwKQEAg LTEsMzExICswLDAgQEAKLUZyb206IFJvYmVydCBMdWJlcmRhIDxyb2JlcnRAZGViaWFuLm9yZz4K LURhdGU6IFR1ZSwgMjkgTWF5IDIwMTggMjM6NTk6MDkgKzAyMDAKLVN1YmplY3Q6IEZpeCBDVkUt MjAxOC0xMDExNQotCi1BcHBseSAicGF0Y2giIHRha2VuIGZyb20gaHR0cHM6Ly9sYW5kYXZlLmlv L2ZpbGVzL3BhdGNoXzd6aXBfQ1ZFLTIwMTgtMTAxMTUudHh0Ci0KLQotQnVncy1EZWJpYW46IGh0 dHBzOi8vYnVncy5kZWJpYW4ub3JnLzg5NzY3NAotLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFy MURlY29kZXIuY3BwIHwgMTYgKysrKysrKysrKystLS0tLQotIENQUC83emlwL0NvbXByZXNzL1Jh cjFEZWNvZGVyLmggICB8ICAzICsrLQotIENQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNw cCB8IDE3ICsrKysrKysrKysrKystLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIu aCAgIHwgIDMgKystCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwIHwgMTkgKysr KysrKysrKysrKysrLS0tLQotIENQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmggICB8ICAz ICsrLQotIENQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmNwcCB8ICA4ICsrKysrKysrCi0g Q1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuaCAgIHwgIDEgKwotIDggZmlsZXMgY2hhbmdl ZCwgNTQgaW5zZXJ0aW9ucygrKSwgMTYgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9DUFAv N3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVj b2Rlci5jcHAKLWluZGV4IDY4MDMwYzcuLjhjODkwYzggMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9D b21wcmVzcy9SYXIxRGVjb2Rlci5jcHAKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNv ZGVyLmNwcAotQEAgLTI5LDcgKzI5LDcgQEAgcHVibGljOgotIH07Ci0gKi8KLSAKLS1DRGVjb2Rl cjo6Q0RlY29kZXIoKTogbV9Jc1NvbGlkKGZhbHNlKSwgX2Vycm9yTW9kZShmYWxzZSkgeyB9Ci0r Q0RlY29kZXI6OkNEZWNvZGVyKCk6IF9pc1NvbGlkKGZhbHNlKSwgX3NvbGlkQWxsb3dlZChmYWxz ZSksIF9lcnJvck1vZGUoZmFsc2UpIHsgfQotIAotIHZvaWQgQ0RlY29kZXI6OkluaXRTdHJ1Y3R1 cmVzKCkKLSB7Ci1AQCAtMzQ1LDcgKzM0NSw3IEBAIHZvaWQgQ0RlY29kZXI6OkdldEZsYWdzQnVm KCkKLSAKLSB2b2lkIENEZWNvZGVyOjpJbml0RGF0YSgpCi0gewotLSAgaWYgKCFtX0lzU29saWQp Ci0rICBpZiAoIV9pc1NvbGlkKQotICAgewotICAgICBBdnJQbGNCID0gQXZyTG4xID0gQXZyTG4y ID0gQXZyTG4zID0gTnVtSHVmID0gQnVmNjAgPSAwOwotICAgICBBdnJQbGMgPSAweDM1MDA7Ci1A QCAtMzkxLDYgKzM5MSwxMSBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2VxdWVudGlh bEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotICAgaWYgKGluU2l6 ZSA9PSBOVUxMIHx8IG91dFNpemUgPT0gTlVMTCkKLSAgICAgcmV0dXJuIEVfSU5WQUxJREFSRzsK LSAKLSsgIGlmIChfaXNTb2xpZCAmJiAhX3NvbGlkQWxsb3dlZCkKLSsgICAgcmV0dXJuIFNfRkFM U0U7Ci0rCi0rICBfc29saWRBbGxvd2VkID0gZmFsc2U7Ci0rCi0gICBpZiAoIW1fT3V0V2luZG93 U3RyZWFtLkNyZWF0ZShrSGlzdG9yeVNpemUpKQotICAgICByZXR1cm4gRV9PVVRPRk1FTU9SWTsK LSAgIGlmICghbV9JbkJpdFN0cmVhbS5DcmVhdGUoMSA8PCAyMCkpCi1AQCAtMzk4LDEzICs0MDMs MTMgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5T dHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAKLSAgIG1fVW5wYWNrU2l6ZSA9IChJbnQ2 NCkqb3V0U2l6ZTsKLSAgIG1fT3V0V2luZG93U3RyZWFtLlNldFN0cmVhbShvdXRTdHJlYW0pOwot LSAgbV9PdXRXaW5kb3dTdHJlYW0uSW5pdChtX0lzU29saWQpOwotKyAgbV9PdXRXaW5kb3dTdHJl YW0uSW5pdChfaXNTb2xpZCk7Ci0gICBtX0luQml0U3RyZWFtLlNldFN0cmVhbShpblN0cmVhbSk7 Ci0gICBtX0luQml0U3RyZWFtLkluaXQoKTsKLSAKLSAgIC8vIENDb2RlclJlbGVhc2VyIGNvZGVy UmVsZWFzZXIodGhpcyk7Ci0gICBJbml0RGF0YSgpOwotLSAgaWYgKCFtX0lzU29saWQpCi0rICBp ZiAoIV9pc1NvbGlkKQotICAgewotICAgICBfZXJyb3JNb2RlID0gZmFsc2U7Ci0gICAgIEluaXRT dHJ1Y3R1cmVzKCk7Ci1AQCAtNDc1LDYgKzQ4MCw3IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVS ZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAq Ci0gICB9Ci0gICBpZiAobV9VbnBhY2tTaXplIDwgMCkKLSAgICAgcmV0dXJuIFNfRkFMU0U7Ci0r ICBfc29saWRBbGxvd2VkID0gdHJ1ZTsKLSAgIHJldHVybiBtX091dFdpbmRvd1N0cmVhbS5GbHVz aCgpOwotIH0KLSAKLUBAIC00OTEsNyArNDk3LDcgQEAgU1RETUVUSE9ESU1QIENEZWNvZGVyOjpT ZXREZWNvZGVyUHJvcGVydGllczIoY29uc3QgQnl0ZSAqZGF0YSwgVUludDMyIHNpemUpCi0gewot ICAgaWYgKHNpemUgPCAxKQotICAgICByZXR1cm4gRV9JTlZBTElEQVJHOwotLSAgbV9Jc1NvbGlk ID0gKChkYXRhWzBdICYgMSkgIT0gMCk7Ci0rICBfaXNTb2xpZCA9ICgoZGF0YVswXSAmIDEpICE9 IDApOwotICAgcmV0dXJuIFNfT0s7Ci0gfQotIAotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXBy ZXNzL1JhcjFEZWNvZGVyLmggYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5oCi1pbmRl eCAwMWI2MDZiLi44YWJiM2EzIDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURl Y29kZXIuaAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaAotQEAgLTM4LDcg KzM4LDggQEAgcHVibGljOgotICAgVUludDMyIExhc3RMZW5ndGg7Ci0gCi0gICBJbnQ2NCBtX1Vu cGFja1NpemU7Ci0tICBib29sIG1fSXNTb2xpZDsKLSsgIGJvb2wgX2lzU29saWQ7Ci0rICBib29s IF9zb2xpZEFsbG93ZWQ7Ci0gICBib29sIF9lcnJvck1vZGU7Ci0gCi0gICBVSW50MzIgUmVhZEJp dHMoaW50IG51bUJpdHMpOwotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNv ZGVyLmNwcCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNwcAotaW5kZXggMDU4MGM4 ZC4uYmU4ZDg0MiAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNw cAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwCi1AQCAtODAsNyArODAs OCBAQCBzdGF0aWMgY29uc3QgVUludDMyIGtIaXN0b3J5U2l6ZSA9IDEgPDwgMjA7Ci0gc3RhdGlj IGNvbnN0IFVJbnQzMiBrV2luZG93UmVzZXJ2U2l6ZSA9ICgxIDw8IDIyKSArIDI1NjsKLSAKLSBD RGVjb2Rlcjo6Q0RlY29kZXIoKToKLS0gIG1fSXNTb2xpZChmYWxzZSksCi0rICBfaXNTb2xpZChm YWxzZSksCi0rICBfc29saWRBbGxvd2VkKGZhbHNlKSwKLSAgIG1fVGFibGVzT0soZmFsc2UpCi0g ewotIH0KLUBAIC0zMjAsNiArMzIxLDEwIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElT ZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAqCi0gICBp ZiAoaW5TaXplID09IE5VTEwgfHwgb3V0U2l6ZSA9PSBOVUxMKQotICAgICByZXR1cm4gRV9JTlZB TElEQVJHOwotIAotKyAgaWYgKF9pc1NvbGlkICYmICFfc29saWRBbGxvd2VkKQotKyAgICByZXR1 cm4gU19GQUxTRTsKLSsgIF9zb2xpZEFsbG93ZWQgPSBmYWxzZTsKLSsKLSAgIGlmICghbV9PdXRX aW5kb3dTdHJlYW0uQ3JlYXRlKGtIaXN0b3J5U2l6ZSkpCi0gICAgIHJldHVybiBFX09VVE9GTUVN T1JZOwotICAgaWYgKCFtX0luQml0U3RyZWFtLkNyZWF0ZSgxIDw8IDIwKSkKLUBAIC0zMzAsMTIg KzMzNSwxMiBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2VxdWVudGlhbEluU3RyZWFt ICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotICAgVUludDY0IHBvcyA9IDAsIHVu UGFja1NpemUgPSAqb3V0U2l6ZTsKLSAgIAotICAgbV9PdXRXaW5kb3dTdHJlYW0uU2V0U3RyZWFt KG91dFN0cmVhbSk7Ci0tICBtX091dFdpbmRvd1N0cmVhbS5Jbml0KG1fSXNTb2xpZCk7Ci0rICBt X091dFdpbmRvd1N0cmVhbS5Jbml0KF9pc1NvbGlkKTsKLSAgIG1fSW5CaXRTdHJlYW0uU2V0U3Ry ZWFtKGluU3RyZWFtKTsKLSAgIG1fSW5CaXRTdHJlYW0uSW5pdCgpOwotIAotICAgLy8gQ0NvZGVy UmVsZWFzZXIgY29kZXJSZWxlYXNlcih0aGlzKTsKLS0gIGlmICghbV9Jc1NvbGlkKQotKyAgaWYg KCFfaXNTb2xpZCkKLSAgIHsKLSAgICAgSW5pdFN0cnVjdHVyZXMoKTsKLSAgICAgaWYgKHVuUGFj a1NpemUgPT0gMCkKLUBAIC0zNDMsNiArMzQ4LDcgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJl YWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoK LSAgICAgICBpZiAobV9JbkJpdFN0cmVhbS5HZXRQcm9jZXNzZWRTaXplKCkgKyAyIDw9IG1fUGFj a1NpemUpIC8vIHRlc3QgaXQ6IHByb2JhYmx5IGluY29ycmVjdDsKLSAgICAgICAgIGlmICghUmVh ZFRhYmxlcygpKQotICAgICAgICAgICByZXR1cm4gU19GQUxTRTsKLSsgICAgICBfc29saWRBbGxv d2VkID0gdHJ1ZTsKLSAgICAgICByZXR1cm4gU19PSzsKLSAgICAgfQotICAgICBpZiAoIVJlYWRU YWJsZXMoKSkKLUBAIC0zODYsNiArMzkyLDkgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwo SVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAK LSAgIGlmICghUmVhZExhc3RUYWJsZXMoKSkKLSAgICAgcmV0dXJuIFNfRkFMU0U7Ci0rCi0rICBf c29saWRBbGxvd2VkID0gdHJ1ZTsKLSsKLSAgIHJldHVybiBtX091dFdpbmRvd1N0cmVhbS5GbHVz aCgpOwotIH0KLSAKLUBAIC00MDIsNyArNDExLDcgQEAgU1RETUVUSE9ESU1QIENEZWNvZGVyOjpT ZXREZWNvZGVyUHJvcGVydGllczIoY29uc3QgQnl0ZSAqZGF0YSwgVUludDMyIHNpemUpCi0gewot ICAgaWYgKHNpemUgPCAxKQotICAgICByZXR1cm4gRV9JTlZBTElEQVJHOwotLSAgbV9Jc1NvbGlk ID0gKChkYXRhWzBdICYgMSkgIT0gMCk7Ci0rICBfaXNTb2xpZCA9ICgoZGF0YVswXSAmIDEpICE9 IDApOwotICAgcmV0dXJuIFNfT0s7Ci0gfQotIAotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXBy ZXNzL1JhcjJEZWNvZGVyLmggYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oCi1pbmRl eCAwZTkwMDVmLi4zNzBiY2UyIDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRl Y29kZXIuaAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuaAotQEAgLTEzOCw3 ICsxMzgsOCBAQCBjbGFzcyBDRGVjb2RlciA6Ci0gICBCeXRlIG1fTGFzdExldmVsc1trTWF4VGFi bGVTaXplXTsKLSAKLSAgIFVJbnQ2NCBtX1BhY2tTaXplOwotLSAgYm9vbCBtX0lzU29saWQ7Ci0r ICBib29sIF9pc1NvbGlkOwotKyAgYm9vbCBfc29saWRBbGxvd2VkOwotICAgYm9vbCBtX1RhYmxl c09LOwotIAotICAgdm9pZCBJbml0U3RydWN0dXJlcygpOwotZGlmZiAtLWdpdCBhL0NQUC83emlw L0NvbXByZXNzL1JhcjNEZWNvZGVyLmNwcCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVy LmNwcAotaW5kZXggNmNiOGE2YS4uN2I4NTgzMyAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXBy ZXNzL1JhcjNEZWNvZGVyLmNwcAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIu Y3BwCi1AQCAtOTIsNyArOTIsOCBAQCBDRGVjb2Rlcjo6Q0RlY29kZXIoKToKLSAgIF93cml0dGVu RmlsZVNpemUoMCksCi0gICBfdm1EYXRhKDApLAotICAgX3ZtQ29kZSgwKSwKLS0gIG1fSXNTb2xp ZChmYWxzZSksCi0rICBfaXNTb2xpZChmYWxzZSksCi0rICBfc29saWRBbGxvd2VkKGZhbHNlKSwK LSAgIF9lcnJvck1vZGUoZmFsc2UpCi0gewotICAgUHBtZDdfQ29uc3RydWN0KCZfcHBtZCk7Ci1A QCAtODIxLDcgKzgyMiw3IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElDb21wcmVzc1By b2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gewotICAgX3dyaXR0ZW5GaWxlU2l6ZSA9IDA7Ci0gICBf dW5zdXBwb3J0ZWRGaWx0ZXIgPSBmYWxzZTsKLS0gIGlmICghbV9Jc1NvbGlkKQotKyAgaWYgKCFf aXNTb2xpZCkKLSAgIHsKLSAgICAgX2x6U2l6ZSA9IDA7Ci0gICAgIF93aW5Qb3MgPSAwOwotQEAg LTg0MCwxMiArODQxLDE1IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElDb21wcmVzc1By b2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gICBpZiAoX2Vycm9yTW9kZSkKLSAgICAgcmV0dXJuIFNf RkFMU0U7Ci0gCi0tICBpZiAoIW1fSXNTb2xpZCB8fCAhVGFibGVzUmVhZCkKLSsgIGlmICghX2lz U29saWQgfHwgIVRhYmxlc1JlYWQpCi0gICB7Ci0gICAgIGJvb2wga2VlcERlY29tcHJlc3Npbmc7 Ci0gICAgIFJJTk9LKFJlYWRUYWJsZXMoa2VlcERlY29tcHJlc3NpbmcpKTsKLSAgICAgaWYgKCFr ZWVwRGVjb21wcmVzc2luZykKLSsgICAgewotKyAgICAgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwot ICAgICAgIHJldHVybiBTX09LOwotKyAgICB9Ci0gICB9Ci0gCi0gICBmb3IgKDs7KQotQEAgLTg3 MCw2ICs4NzQsOSBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJQ29tcHJlc3NQcm9ncmVz c0luZm8gKnByb2dyZXNzKQotICAgICBpZiAoIWtlZXBEZWNvbXByZXNzaW5nKQotICAgICAgIGJy ZWFrOwotICAgfQotKwotKyAgX3NvbGlkQWxsb3dlZCA9IHRydWU7Ci0rCi0gICBSSU5PSyhXcml0 ZUJ1ZigpKTsKLSAgIFVJbnQ2NCBwYWNrU2l6ZSA9IG1fSW5CaXRTdHJlYW0uQml0RGVjb2Rlci5H ZXRQcm9jZXNzZWRTaXplKCk7Ci0gICBSSU5PSyhwcm9ncmVzcy0+U2V0UmF0aW9JbmZvKCZwYWNr U2l6ZSwgJl93cml0dGVuRmlsZVNpemUpKTsKLUBAIC04OTAsNiArODk3LDEwIEBAIFNURE1FVEhP RElNUCBDRGVjb2Rlcjo6Q29kZShJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVl bnRpYWxPdXRTdHJlYW0KLSAgICAgaWYgKCFpblNpemUpCi0gICAgICAgcmV0dXJuIEVfSU5WQUxJ REFSRzsKLSAKLSsgICAgaWYgKF9pc1NvbGlkICYmICFfc29saWRBbGxvd2VkKQotKyAgICAgIHJl dHVybiBTX0ZBTFNFOwotKyAgICBfc29saWRBbGxvd2VkID0gZmFsc2U7Ci0rCi0gICAgIGlmICgh X3ZtRGF0YSkKLSAgICAgewotICAgICAgIF92bURhdGEgPSAoQnl0ZSAqKTo6TWlkQWxsb2Moa1Zt RGF0YVNpemVNYXggKyBrVm1Db2RlU2l6ZU1heCk7Ci1AQCAtOTI4LDcgKzkzOSw3IEBAIFNURE1F VEhPRElNUCBDRGVjb2Rlcjo6U2V0RGVjb2RlclByb3BlcnRpZXMyKGNvbnN0IEJ5dGUgKmRhdGEs IFVJbnQzMiBzaXplKQotIHsKLSAgIGlmIChzaXplIDwgMSkKLSAgICAgcmV0dXJuIEVfSU5WQUxJ REFSRzsKLS0gIG1fSXNTb2xpZCA9ICgoZGF0YVswXSAmIDEpICE9IDApOwotKyAgX2lzU29saWQg PSAoKGRhdGFbMF0gJiAxKSAhPSAwKTsKLSAgIHJldHVybiBTX09LOwotIH0KLSAKLWRpZmYgLS1n aXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3Mv UmFyM0RlY29kZXIuaAotaW5kZXggMmY3MmQ3ZC4uMzJjODk0MyAxMDA2NDQKLS0tLSBhL0NQUC83 emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmgKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjNE ZWNvZGVyLmgKLUBAIC0xOTEsNyArMTkxLDggQEAgY2xhc3MgQ0RlY29kZXI6Ci0gICBDUmVjb3Jk VmVjdG9yPENUZW1wRmlsdGVyICo+ICBfdGVtcEZpbHRlcnM7Ci0gICBVSW50MzIgX2xhc3RGaWx0 ZXI7Ci0gCi0tICBib29sIG1fSXNTb2xpZDsKLSsgIGJvb2wgX2lzU29saWQ7Ci0rICBib29sIF9z b2xpZEFsbG93ZWQ7Ci0gICBib29sIF9lcnJvck1vZGU7Ci0gCi0gICBib29sIF9sek1vZGU7Ci1k aWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuY3BwIGIvQ1BQLzd6aXAv Q29tcHJlc3MvUmFyNURlY29kZXIuY3BwCi1pbmRleCBkYzg4MzBmLi5hODI2ZDVhIDEwMDY0NAot LS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuY3BwCi0rKysgYi9DUFAvN3ppcC9D b21wcmVzcy9SYXI1RGVjb2Rlci5jcHAKLUBAIC03Miw2ICs3Miw3IEBAIENEZWNvZGVyOjpDRGVj b2RlcigpOgotICAgICBfd3JpdHRlbkZpbGVTaXplKDApLAotICAgICBfZGljdFNpemVMb2coMCks Ci0gICAgIF9pc1NvbGlkKGZhbHNlKSwKLSsgICAgX3NvbGlkQWxsb3dlZChmYWxzZSksCi0gICAg IF93YXNJbml0KGZhbHNlKSwKLSAgICAgX2lucHV0QnVmKE5VTEwpCi0gewotQEAgLTgwMSw3ICs4 MDIsMTAgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoKQotICAgKi8KLSAKLSAgIGlmIChy ZXMgPT0gU19PSykKLSsgIHsKLSsgICAgX3NvbGlkQWxsb3dlZCA9IHRydWU7Ci0gICAgIHJlcyA9 IHJlczI7Ci0rICB9Ci0gICAgICAKLSAgIGlmIChyZXMgPT0gU19PSyAmJiBfdW5wYWNrU2l6ZV9E ZWZpbmVkICYmIF93cml0dGVuRmlsZVNpemUgIT0gX3VucGFja1NpemUpCi0gICAgIHJldHVybiBT X0ZBTFNFOwotQEAgLTgyMSw2ICs4MjUsMTAgQEAgU1RETUVUSE9ESU1QIENEZWNvZGVyOjpDb2Rl KElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbQotIHsK LSAgIHRyeQotICAgewotKyAgICBpZiAoX2lzU29saWQgJiYgIV9zb2xpZEFsbG93ZWQpCi0rICAg ICAgcmV0dXJuIFNfRkFMU0U7Ci0rICAgIF9zb2xpZEFsbG93ZWQgPSBmYWxzZTsKLSsKLSAgICAg aWYgKF9kaWN0U2l6ZUxvZyA+PSBzaXplb2Yoc2l6ZV90KSAqIDgpCi0gICAgICAgcmV0dXJuIEVf Tk9USU1QTDsKLSAKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXI1RGVjb2Rlci5o IGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuaAotaW5kZXggYjBhNGRkMS4uM2RiNTAx OCAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmgKLSsrKyBiL0NQ UC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmgKLUBAIC0yNzEsNiArMjcxLDcgQEAgY2xhc3Mg Q0RlY29kZXI6Ci0gICBCeXRlIF9kaWN0U2l6ZUxvZzsKLSAgIGJvb2wgX3RhYmxlV2FzRmlsbGVk OwotICAgYm9vbCBfaXNTb2xpZDsKLSsgIGJvb2wgX3NvbGlkQWxsb3dlZDsKLSAgIGJvb2wgX3dh c0luaXQ7Ci0gCi0gICBVSW50MzIgX3JlcHNba051bVJlcHNdOwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9wN3ppcC9wYXRjaGVzL0NWRS0yMDE2LTkyOTYucGF0Y2ggYi9zcmNwa2dzL3A3emlwL3BhdGNo ZXMvQ1ZFLTIwMTYtOTI5Ni5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZmJi YjMzNzczN2U1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9wN3ppcC9wYXRjaGVzL0NWRS0y MDE2LTkyOTYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0gYS9DUFAv N3ppcC9BcmNoaXZlLzd6Lzd6SW4uY3BwCVN1biBOb3YgMjAgMDk6Mjk6NDEgMjAxNgotKysrIGIv Q1BQLzd6aXAvQXJjaGl2ZS83ei83ekluLmNwcAlTdW4gTm92IDIwIDA5OjMxOjIyIDIwMTYKLUBA IC0xMDk3LDcgKzEwOTcsOCBAQCBIUkVTVUxUIENJbkFyY2hpdmU6OlJlYWRBbmREZWNvZGVQYWNr ZWRTdHJlYW1zKAotICAgICAgIGlmIChDcmNDYWxjKGRhdGEsIHVucGFja1NpemUpICE9IGZvbGRl cnMuRm9sZGVyQ1JDcy5WYWxzW2ldKQotICAgICAgICAgVGhyb3dJbmNvcnJlY3QoKTsKLSAgIH0K LS0gIEhlYWRlcnNTaXplICs9IGZvbGRlcnMuUGFja1Bvc2l0aW9uc1tmb2xkZXJzLk51bVBhY2tT dHJlYW1zXTsKLSsgIGlmIChmb2xkZXJzLlBhY2tQb3NpdGlvbnMpCi0rICAgICAgSGVhZGVyc1Np emUgKz0gZm9sZGVycy5QYWNrUG9zaXRpb25zW2ZvbGRlcnMuTnVtUGFja1N0cmVhbXNdOwotICAg cmV0dXJuIFNfT0s7Ci0gfQotIApkaWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC9wYXRjaGVzL0NW RS0yMDE3LTE3OTY5LnBhdGNoIGIvc3JjcGtncy9wN3ppcC9wYXRjaGVzL0NWRS0yMDE3LTE3OTY5 LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YTgyMGFmNzMwNjcuLjAwMDAw MDAwMDAwMAotLS0gYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTctMTc5NjkucGF0Y2gK KysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi1Gcm9tOiA9P3V0Zi04P3E/QW50b2luZV9C ZWF1cHI9QzM9QTk/PSA8YW5hcmNhdEBkZWJpYW4ub3JnPgotRGF0ZTogU3VuLCAyOCBKYW4gMjAx OCAyMToxOTo1MCArMDEwMAotU3ViamVjdDogYmFja3BvcnQgb2YgdGhlIENWRS0yMDE3LTE3OTY5 IGZpeCBmcm9tIDd6aXAgMTguMDAtYmV0YQotCi0tLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9TaHJp bmtEZWNvZGVyLmNwcCB8IDcgKysrKysrLQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKLQotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1Nocmlu a0RlY29kZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJlc3MvU2hyaW5rRGVjb2Rlci5jcHAKLWluZGV4 IDgwYjdlNjcuLjRhY2RjZTUgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9TaHJpbmtE ZWNvZGVyLmNwcAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvU2hyaW5rRGVjb2Rlci5jcHAKLUBA IC0xMjEsNyArMTIxLDEyIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElTZXF1ZW50aWFs SW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAqCi0gICAgIHsKLSAgICAg ICBfc3RhY2tbaSsrXSA9IF9zdWZmaXhlc1tjdXJdOwotICAgICAgIGN1ciA9IF9wYXJlbnRzW2N1 cl07Ci0tICAgIH0KLSsgICAgICBpZiAoaSA+PSBrTnVtSXRlbXMpCi0rICAgICAgICBicmVhazsK LSsgICAgIH0KLSsKLSsgICAgaWYgKGkgPj0ga051bUl0ZW1zKQotKyAgICAgIGJyZWFrOwotICAg ICAKLSAgICAgX3N0YWNrW2krK10gPSAoQnl0ZSljdXI7Ci0gICAgIGxhc3RDaGFyMiA9IChCeXRl KWN1cjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcDd6aXAvdGVtcGxhdGUgYi9zcmNwa2dzL3A3emlw L3RlbXBsYXRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2NDJlMjRhZGFmNTIuLjAw MDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3A3emlwL3RlbXBsYXRlCisrKyAvZGV2L251bGwKQEAg LTEsNDcgKzAsMCBAQAotIyBUZW1wbGF0ZSBmaWxlIGZvciAncDd6aXAnCi1wa2duYW1lPXA3emlw Ci12ZXJzaW9uPTE2LjAyCi1yZXZpc2lvbj01Ci13cmtzcmM9IiR7cGtnbmFtZX1fJHt2ZXJzaW9u fSIKLWhvc3RtYWtlZGVwZW5kcz0ieWFzbSBuYXNtIgotc2hvcnRfZGVzYz0iQ29tbWFuZC1saW5l IHZlcnNpb24gb2YgdGhlIDd6aXAgY29tcHJlc3NlZCBmaWxlIGFyY2hpdmUiCi1tYWludGFpbmVy PSJPcnBoYW5lZCA8b3JwaGFuQHZvaWRsaW51eC5vcmc+IgotbGljZW5zZT0iTEdQTC0yLjEtb3It bGF0ZXIiCi1ob21lcGFnZT0iaHR0cDovL3A3emlwLnNvdXJjZWZvcmdlLm5ldC8iCi1kaXN0Zmls ZXM9IiR7U09VUkNFRk9SR0VfU0lURX0vJHtwa2duYW1lfS8ke3BrZ25hbWV9XyR7dmVyc2lvbn1f c3JjX2FsbC50YXIuYnoyIgotY2hlY2tzdW09NWViMjBhYzBlMjk0NGY2Y2I5YzJkNTFkZDZjNDUx ODk0MWMxODUzNDdkNDA4OWVhODkwODdmZmRkNmUyMzQxZgotCi1DWFhGTEFHUz0iLVduby1uYXJy b3dpbmciCi0KLWRvX2NvbmZpZ3VyZSgpIHsKLQljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KLQkJaTY4NiopIGNwIG1ha2VmaWxlLmxpbnV4X3g4Nl9hc21fZ2NjXzQuWCBtYWtlZmlsZS5t YWNoaW5lOzsKLQkJeDg2XzY0KikgY3AgbWFrZWZpbGUubGludXhfYW1kNjRfYXNtIG1ha2VmaWxl Lm1hY2hpbmU7OwotCQkqKSBjcCBtYWtlZmlsZS5saW51eF9hbnlfY3B1X2djY180LlggbWFrZWZp bGUubWFjaGluZTs7Ci0JZXNhYwotCXNlZCAtZSAicyxnKyssJHtDWFh9LCIgLWkgbWFrZWZpbGUu bWFjaGluZQotCXNlZCAtZSAicyxnY2MsJHtDQ30sIiAtaSBtYWtlZmlsZS5tYWNoaW5lCi19Ci1k b19idWlsZCgpIHsKLQltYWtlIGFsbDMgT1BURkxBR1M9IiRDWFhGTEFHUyIgJHttYWtlam9ic30K LX0KLWRvX2luc3RhbGwoKSB7Ci0JbWFrZSBpbnN0YWxsIERFU1RfRElSPSIke0RFU1RESVJ9IiBE RVNUX0hPTUU9Ii91c3IiIFwKLQkJREVTVF9NQU49Ii91c3Ivc2hhcmUvbWFuIiBcCi0JCURFU1Rf U0hBUkVfRE9DPSIvdXNyL3NoYXJlL2RvYy8ke3BrZ25hbWV9IgotCWZpbmQgJHtERVNURElSfS91 c3Ivc2hhcmUvZG9jLyRwa2duYW1lIC10eXBlIGQgLWV4ZWMgY2htb2QgNzU1IHt9IFw7Ci0JbWtk aXIgLXAgJHtERVNURElSfS91c3Ivc2hhcmUvbGljZW5zZXMvcDd6aXAvCi0JbXYgJHtERVNURElS fS91c3Ivc2hhcmUvZG9jL3A3emlwL0RPQy9jb3B5aW5nLnR4dCBcCi0JICAgJHtERVNURElSfS91 c3Ivc2hhcmUvbGljZW5zZXMvcDd6aXAvTElDRU5TRQotfQotCi1wN3ppcC11bnJhcl9wYWNrYWdl KCkgewotCXNob3J0X2Rlc2MrPSIgLSBSQVIgc3VwcG9ydCIKLQlsaWNlbnNlPSJjdXN0b206ZnJl ZXdhcmUiCi0JZGVwZW5kcz0iJHtzb3VyY2Vwa2d9LSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCi0J cmVwb3NpdG9yeT1ub25mcmVlCi0JcGtnX2luc3RhbGwoKSB7Ci0JCXZtb3ZlIHVzci9saWIvcDd6 aXAvQ29kZWNzL1Jhci5zbwotCQl2bGljZW5zZSBET0MvdW5SYXJMaWNlbnNlLnR4dCBMSUNFTlNF Ci0JfQotfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC91cGRhdGUgYi9zcmNwa2dzL3A3emlw L3VwZGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODRlZDQ2ZDc0YTFhLi4wMDAw MDAwMDAwMDAKLS0tIGEvc3JjcGtncy9wN3ppcC91cGRhdGUKKysrIC9kZXYvbnVsbApAQCAtMSAr MCwwIEBACi1wYXR0ZXJuPSdwN3ppcF9cS1suXGRdKycK --===============8894099376189149209==--