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 3246 invoked from network); 10 Jul 2022 18:15:41 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 10 Jul 2022 18:15:41 -0000 Content-Type: multipart/mixed; boundary="===============3257063445197778078==" 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 20:15:40 +0200 List-Id: Message-ID: <20220710181540.-vJHHasG2IF3UeSsbcLm6x2JssJna5EqTMatph1oUAw@z> GitHub notification mails are now in MIME to allow UTF8. --===============3257063445197778078== 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= --===============3257063445197778078== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-7zip-37940.patch" RnJvbSBlZmIxZjU0NWZiZjE4NGMxOGM0Zjg2MWFmYTA5ZTIyZDUzZWFiZjZmIE1vbiBTZXAgMTcg 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 IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDdhOTFkZjMyNGZhCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy83emlwL3BhdGNoZXMvYnVpbGRfZmxhZ3MucGF0Y2gKQEAgLTAsMCAr MSwzMCBAQAorYXBwZW5kIChkb24ndCBwcmVmaXgpIHhicHMgYnVpbGQgZmxhZ3MKKy0tLSBhL0NQ UC83emlwLzd6aXBfZ2NjLm1haworKysrIGIvQ1BQLzd6aXAvN3ppcF9nY2MubWFrCitAQCAtMTI2 LDcgKzEyNiw3IEBAIGVuZGlmCisgDQorIA0KKyANCistQ0ZMQUdTID0gJChNWV9BUkNIXzIpICQo TE9DQUxfRkxBR1MpICQoQ0ZMQUdTX0JBU0UyKSAkKENGTEFHU19CQVNFKSAkKENDX1NIQVJFRCkg LW8gJEANCisrQ0ZMQUdTID0gJChNWV9BUkNIXzIpICQoTE9DQUxfRkxBR1MpICQoQ0ZMQUdTX0JB U0UyKSAkKENGTEFHU19CQVNFKSAkKENDX1NIQVJFRCkgJChYQlBTX0NGTEFHUykgLW8gJEANCisg DQorIA0KKyBpZmRlZiBJU19NSU5HVw0KK0BAIC0xNTQsNyArMTU0LDcgQEAgQ1hYX1dBUk5fRkxB R1MgPQorICMtV25vLWludmFsaWQtb2Zmc2V0b2YNCisgIy1Xbm8tcmVvcmRlcg0KKyANCistQ1hY RkxBR1MgPSAkKE1ZX0FSQ0hfMikgJChMT0NBTF9GTEFHUykgJChDWFhGTEFHU19CQVNFMikgJChD RkxBR1NfQkFTRSkgJChDWFhGTEFHU19FWFRSQSkgJChDQ19TSEFSRUQpIC1vICRAICQoQ1hYX1dB Uk5fRkxBR1MpDQorK0NYWEZMQUdTID0gJChNWV9BUkNIXzIpICQoTE9DQUxfRkxBR1MpICQoQ1hY RkxBR1NfQkFTRTIpICQoQ0ZMQUdTX0JBU0UpICQoQ1hYRkxBR1NfRVhUUkEpICQoQ0NfU0hBUkVE KSAtbyAkQCAkKENYWF9XQVJOX0ZMQUdTKSAkKFhCUFNfQ1hYRkxBR1MpDQorIA0KKyBTVEFUSUNf VEFSR0VUPQ0KKyBpZmRlZiBDT01QTF9TVEFUSUMNCitAQCAtMTY3LDcgKzE2Nyw3IEBAIGFsbDog JChPKSAkKFBST0dQQVRIKSAkKFNUQVRJQ19UQVJHRVQpCisgJChPKToNCisgCSQoTVlfTUtESVIp ICQoTykNCisgDQorLUxGTEFHU19BTEwgPSAtcyAkKE1ZX0FSQ0hfMikgJChMREZMQUdTKSAkKExE X2FyY2gpICQoT0JKUykgJChNWV9MSUJTKSAkKExJQjIpDQorK0xGTEFHU19BTEwgPSAtcyAkKE1Z X0FSQ0hfMikgJChMREZMQUdTKSAkKExEX2FyY2gpICQoT0JKUykgJChNWV9MSUJTKSAkKExJQjIp ICQoWEJQU19MREZMQUdTKQ0KKyAkKFBST0dQQVRIKTogJChPQkpTKQ0KKyAJJChDWFgpIC1vICQo UFJPR1BBVEgpICQoTEZMQUdTX0FMTCkNCisgDQpkaWZmIC0tZ2l0IGEvc3JjcGtncy83emlwL3Rl bXBsYXRlIGIvc3JjcGtncy83emlwL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4 IDAwMDAwMDAwMDAwMC4uODE0YTU1NDU1ODdlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy83 emlwL3RlbXBsYXRlCkBAIC0wLDAgKzEsNTAgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJzd6aXAn Citwa2duYW1lPTd6aXAKK3ZlcnNpb249MjIuMDAKK3JldmlzaW9uPTEKK2NyZWF0ZV93cmtzcmM9 eWVzCitzaG9ydF9kZXNjPSJGaWxlIGFyY2hpdmVyIHdpdGggYSBoaWdoIGNvbXByZXNzaW9uIHJh dGlvIgorbWFpbnRhaW5lcj0iUm9iZXJ0byBSaWNjaSA8cmljY2lAZGlzcm9vdC5vcmc+IgorbGlj ZW5zZT0iTEdQTC0yLjEtb3ItbGF0ZXIsIEJTRC0zLUNsYXVzZSIKK2hvbWVwYWdlPSJodHRwczov L3d3dy43LXppcC5vcmciCitjaGFuZ2Vsb2c9Imh0dHBzOi8vd3d3LjctemlwLm9yZy9oaXN0b3J5 LnR4dCIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly93d3cuNy16aXAub3JnL2EvN3oke3ZlcnNpb24vLy4v fS1zcmMudGFyLnh6IgorY2hlY2tzdW09NDA5NjlmNjAxZTg2YWZmNDlhYWEwYmEwZGY1Y2U2ZmQz OTdjZjdlMjY4M2E4NGI1OTFiMDA4MWU0NjFlZjY3NQorCitkb19idWlsZCgpIHsKKwljZCBDUFAv N3ppcC9CdW5kbGVzL0Fsb25lMgorCW1ha2UgIiRtYWtlam9icyIgLWYgLi4vLi4vY21wbF9nY2Mu bWFrIFwKKwkJQ0M9IiRDQyIgQ1hYPSIkQ1hYIiBYQlBTX0NGTEFHUz0iJENGTEFHUyIgXAorCQlY QlBTX0NYWEZMQUdTPSIkQ1hYRkxBR1MiIFhCUFNfTERGTEFHUz0iJExERkxBR1MiIFwKKwkJRElT QUJMRV9SQVJfQ09NUFJFU1M9MQorfQorCitkb19pbnN0YWxsKCkgeworCXZiaW4gQ1BQLzd6aXAv QnVuZGxlcy9BbG9uZTIvYi9nLzd6egorCWZvciBpIGluIDd6IDd6YSA3enI7IGRvCisJCWxuIC1z ZiA3enogJHtERVNURElSfS91c3IvYmluLyR7aX0KKwlkb25lCisKKwl2bGljZW5zZSBET0MvTGlj ZW5zZS50eHQKKworCSMgaHR0cHM6Ly9jZ2l0LmZyZWVic2Qub3JnL3BvcnRzL3BsYWluL2FyY2hp dmVycy83LXppcC9maWxlcy83enouMQorCXZtYW4gJHtGSUxFU0RJUn0vN3p6LjEKK30KKworIzd6 aXAtcmFyX3BhY2thZ2UoKSB7CisJI3JlcG9zaXRvcnk9bm9uZnJlZQorCSNjb25mbGljdHM9N3pp cAorCSNzaG9ydF9kZXNjKz0iIHdpdGggUkFSIHN1cHBvcnQiCisjfQorCitwN3ppcF9wYWNrYWdl KCkgeworCWJ1aWxkX3N0eWxlPW1ldGEKKwlkZXBlbmRzPTd6aXAKKwlzaG9ydF9kZXNjPSJDb21t YW5kLWxpbmUgdmVyc2lvbiBvZiB0aGUgN3ppcCBjb21wcmVzc2VkIGZpbGUgYXJjaGl2ZSAodHJh bnNpdGlvbmFsIGR1bW15IHBhY2thZ2UpIgorfQorCisjcDd6aXAtdW5yYXJfcGFja2FnZSB7CisJ I2J1aWxkX3N0eWxlPW1ldGEKKwkjZGVwZW5kcz03emlwLXJhcgorCSNzaG9ydF9kZXNjPSJDb21t YW5kLWxpbmUgdmVyc2lvbiBvZiB0aGUgN3ppcCBjb21wcmVzc2VkIGZpbGUgYXJjaGl2ZSAtIFJB UiBzdXBwb3J0ICh0cmFuc2l0aW9uYWwgZHVtbXkgcGFja2FnZSkiCisjfQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9wN3ppcCBiL3NyY3BrZ3MvcDd6aXAKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXgg MDAwMDAwMDAwMDAwLi4yODQzMTI1OTVhNGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3A3 emlwCkBAIC0wLDAgKzEgQEAKKzd6aXAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg LS1naXQgYS9zcmNwa2dzL3A3emlwLXVucmFyIGIvc3JjcGtncy9wN3ppcC11bnJhcgpkZWxldGVk IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggYmY1MzQ5ZWU2NjY2Li4wMDAwMDAwMDAwMDAKLS0tIGEv c3JjcGtncy9wN3ppcC11bnJhcgorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLXA3emlwClwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC9wYXRj aGVzLzIwLUNWRS0yMDE4LTU5OTYucGF0Y2ggYi9zcmNwa2dzL3A3emlwL3BhdGNoZXMvMjAtQ1ZF LTIwMTgtNTk5Ni5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjczM2JmZjkx ODk1Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9wN3ppcC9wYXRjaGVzLzIwLUNWRS0yMDE4 LTU5OTYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMjEgKzAsMCBAQAotRnJvbTogUm9iZXJ0 IEx1YmVyZGEgPHJvYmVydEBkZWJpYW4ub3JnPgotRGF0ZTogU3VuLCAyOCBKYW4gMjAxOCAyMzo0 Nzo0MCArMDEwMAotU3ViamVjdDogQ1ZFLTIwMTgtNTk5NgotCi1Ib3BlZnVsbHkgZml4IE1lbW9y eSBDb3JydXB0aW9ucyB2aWEgUkFSIFBQTWQgKENWRS0yMDE4LTU5OTYpIGJ5Ci1hcHBseWluZyBh IGZldyBjaGFuZ2VzIGZyb20gN1ppcCAxOC4wMC1iZXRhLgotCi1CdWctRGViaWFuOiBodHRwczov L2J1Z3MuZGViaWFuLm9yZy8jODg4MzE0Ci0tLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVj b2Rlci5jcHAgfCAxMyArKysrKysrKystLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29k ZXIuaCAgIHwgIDEgKwotIENQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNwcCB8IDEwICsr KysrKysrKy0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oICAgfCAgMSArCi0gQ1BQ Lzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwIHwgMjMgKysrKysrKysrKysrKysrKysrKyst LS0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oICAgfCAgMiArKwotIDYgZmlsZXMg Y2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdpdCBh L0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcCBiL0NQUC83emlwL0NvbXByZXNzL1Jh cjFEZWNvZGVyLmNwcAotaW5kZXggMWFhZWRjYy4uNjgwMzBjNyAxMDA2NDQKLS0tLSBhL0NQUC83 emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFy MURlY29kZXIuY3BwCi1AQCAtMjksNyArMjksNyBAQCBwdWJsaWM6Ci0gfTsKLSAqLwotIAotLUNE ZWNvZGVyOjpDRGVjb2RlcigpOiBtX0lzU29saWQoZmFsc2UpIHsgfQotK0NEZWNvZGVyOjpDRGVj b2RlcigpOiBtX0lzU29saWQoZmFsc2UpLCBfZXJyb3JNb2RlKGZhbHNlKSB7IH0KLSAKLSB2b2lk IENEZWNvZGVyOjpJbml0U3RydWN0dXJlcygpCi0gewotQEAgLTQwNiw5ICs0MDYsMTQgQEAgSFJF U1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElT ZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgIEluaXREYXRhKCk7Ci0gICBpZiAoIW1fSXNTb2xpZCkK LSAgIHsKLSsgICAgX2Vycm9yTW9kZSA9IGZhbHNlOwotICAgICBJbml0U3RydWN0dXJlcygpOwot ICAgICBJbml0SHVmZigpOwotICAgfQotKwotKyAgaWYgKF9lcnJvck1vZGUpCi0rICAgIHJldHVy biBTX0ZBTFNFOwotKwotICAgaWYgKG1fVW5wYWNrU2l6ZSA+IDApCi0gICB7Ci0gICAgIEdldEZs YWdzQnVmKCk7Ci1AQCAtNDc3LDkgKzQ4Miw5IEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6Q29k ZShJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0KLSAg ICAgY29uc3QgVUludDY0ICppblNpemUsIGNvbnN0IFVJbnQ2NCAqb3V0U2l6ZSwgSUNvbXByZXNz UHJvZ3Jlc3NJbmZvICpwcm9ncmVzcykKLSB7Ci0gICB0cnkgeyByZXR1cm4gQ29kZVJlYWwoaW5T dHJlYW0sIG91dFN0cmVhbSwgaW5TaXplLCBvdXRTaXplLCBwcm9ncmVzcyk7IH0KLS0gIGNhdGNo KGNvbnN0IENJbkJ1ZmZlckV4Y2VwdGlvbiAmZSkgeyByZXR1cm4gZS5FcnJvckNvZGU7IH0KLS0g IGNhdGNoKGNvbnN0IENMek91dFdpbmRvd0V4Y2VwdGlvbiAmZSkgeyByZXR1cm4gZS5FcnJvckNv ZGU7IH0KLS0gIGNhdGNoKC4uLikgeyByZXR1cm4gU19GQUxTRTsgfQotKyAgY2F0Y2goY29uc3Qg Q0luQnVmZmVyRXhjZXB0aW9uICZlKSB7IF9lcnJvck1vZGUgPSB0cnVlOyByZXR1cm4gZS5FcnJv ckNvZGU7IH0KLSsgIGNhdGNoKGNvbnN0IENMek91dFdpbmRvd0V4Y2VwdGlvbiAmZSkgeyBfZXJy b3JNb2RlID0gdHJ1ZTsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0rICBjYXRjaCguLi4pIHsgX2Vy cm9yTW9kZSA9IHRydWU7IHJldHVybiBTX0ZBTFNFOyB9Ci0gfQotIAotIFNURE1FVEhPRElNUCBD RGVjb2Rlcjo6U2V0RGVjb2RlclByb3BlcnRpZXMyKGNvbnN0IEJ5dGUgKmRhdGEsIFVJbnQzMiBz aXplKQotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmggYi9DUFAv N3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5oCi1pbmRleCA2MzBmMDg5Li4wMWI2MDZiIDEwMDY0 NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaAotKysrIGIvQ1BQLzd6aXAv Q29tcHJlc3MvUmFyMURlY29kZXIuaAotQEAgLTM5LDYgKzM5LDcgQEAgcHVibGljOgotIAotICAg SW50NjQgbV9VbnBhY2tTaXplOwotICAgYm9vbCBtX0lzU29saWQ7Ci0rICBib29sIF9lcnJvck1v ZGU7Ci0gCi0gICBVSW50MzIgUmVhZEJpdHMoaW50IG51bUJpdHMpOwotICAgSFJFU1VMVCBDb3B5 QmxvY2soVUludDMyIGRpc3RhbmNlLCBVSW50MzIgbGVuKTsKLWRpZmYgLS1naXQgYS9DUFAvN3pp cC9Db21wcmVzcy9SYXIyRGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rl ci5jcHAKLWluZGV4IGIzZjJiNGIuLjA1ODBjOGQgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21w cmVzcy9SYXIyRGVjb2Rlci5jcHAKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVy LmNwcAotQEAgLTgwLDcgKzgwLDggQEAgc3RhdGljIGNvbnN0IFVJbnQzMiBrSGlzdG9yeVNpemUg PSAxIDw8IDIwOwotIHN0YXRpYyBjb25zdCBVSW50MzIga1dpbmRvd1Jlc2VydlNpemUgPSAoMSA8 PCAyMikgKyAyNTY7Ci0gCi0gQ0RlY29kZXI6OkNEZWNvZGVyKCk6Ci0tICBtX0lzU29saWQoZmFs c2UpCi0rICBtX0lzU29saWQoZmFsc2UpLAotKyAgbV9UYWJsZXNPSyhmYWxzZSkKLSB7Ci0gfQot IAotQEAgLTEwMCw2ICsxMDEsOCBAQCBVSW50MzIgQ0RlY29kZXI6OlJlYWRCaXRzKHVuc2lnbmVk IG51bUJpdHMpIHsgcmV0dXJuIG1fSW5CaXRTdHJlYW0uUmVhZEJpdHMobnVtQgotIAotIGJvb2wg Q0RlY29kZXI6OlJlYWRUYWJsZXModm9pZCkKLSB7Ci0rICBtX1RhYmxlc09LID0gZmFsc2U7Ci0r Ci0gICBCeXRlIGxldmVsTGV2ZWxzW2tMZXZlbFRhYmxlU2l6ZV07Ci0gICBCeXRlIG5ld0xldmVs c1trTWF4VGFibGVTaXplXTsKLSAgIG1fQXVkaW9Nb2RlID0gKFJlYWRCaXRzKDEpID09IDEpOwot QEAgLTE3MCw2ICsxNzMsOCBAQCBib29sIENEZWNvZGVyOjpSZWFkVGFibGVzKHZvaWQpCi0gICB9 Ci0gICAKLSAgIG1lbWNweShtX0xhc3RMZXZlbHMsIG5ld0xldmVscywga01heFRhYmxlU2l6ZSk7 Ci0rICBtX1RhYmxlc09LID0gdHJ1ZTsKLSsKLSAgIHJldHVybiB0cnVlOwotIH0KLSAKLUBAIC0z NDQsNiArMzQ5LDkgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0 cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgICAgICByZXR1cm4gU19G QUxTRTsKLSAgIH0KLSAKLSsgIGlmICghbV9UYWJsZXNPSykKLSsgICAgcmV0dXJuIFNfRkFMU0U7 Ci0rCi0gICBVSW50NjQgc3RhcnRQb3MgPSBtX091dFdpbmRvd1N0cmVhbS5HZXRQcm9jZXNzZWRT aXplKCk7Ci0gICB3aGlsZSAocG9zIDwgdW5QYWNrU2l6ZSkKLSAgIHsKLWRpZmYgLS1naXQgYS9D UFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRl Y29kZXIuaAotaW5kZXggM2EwNTM1Yy4uMGU5MDA1ZiAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0Nv bXByZXNzL1JhcjJEZWNvZGVyLmgKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVy LmgKLUBAIC0xMzksNiArMTM5LDcgQEAgY2xhc3MgQ0RlY29kZXIgOgotIAotICAgVUludDY0IG1f UGFja1NpemU7Ci0gICBib29sIG1fSXNTb2xpZDsKLSsgIGJvb2wgbV9UYWJsZXNPSzsKLSAKLSAg IHZvaWQgSW5pdFN0cnVjdHVyZXMoKTsKLSAgIFVJbnQzMiBSZWFkQml0cyh1bnNpZ25lZCBudW1C aXRzKTsKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAgYi9D UFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAKLWluZGV4IDNiZjI1MTMuLjZjYjhhNmEg MTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAKLSsrKyBiL0NQ UC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmNwcAotQEAgLTkyLDcgKzkyLDggQEAgQ0RlY29k ZXI6OkNEZWNvZGVyKCk6Ci0gICBfd3JpdHRlbkZpbGVTaXplKDApLAotICAgX3ZtRGF0YSgwKSwK LSAgIF92bUNvZGUoMCksCi0tICBtX0lzU29saWQoZmFsc2UpCi0rICBtX0lzU29saWQoZmFsc2Up LAotKyAgX2Vycm9yTW9kZShmYWxzZSkKLSB7Ci0gICBQcG1kN19Db25zdHJ1Y3QoJl9wcG1kKTsK LSB9Ci1AQCAtNTQ1LDYgKzU0Niw5IEBAIEhSRVNVTFQgQ0RlY29kZXI6OlJlYWRUYWJsZXMoYm9v bCAma2VlcERlY29tcHJlc3NpbmcpCi0gICAgIHJldHVybiBJbml0UFBNKCk7Ci0gICB9Ci0gCi0r ICBUYWJsZXNSZWFkID0gZmFsc2U7Ci0rICBUYWJsZXNPSyA9IGZhbHNlOwotKwotICAgX2x6TW9k ZSA9IHRydWU7Ci0gICBQcmV2QWxpZ25CaXRzID0gMDsKLSAgIFByZXZBbGlnbkNvdW50ID0gMDsK LUBAIC02MDYsNiArNjEwLDkgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6UmVhZFRhYmxlcyhib29sICZr ZWVwRGVjb21wcmVzc2luZykKLSAgICAgICB9Ci0gICAgIH0KLSAgIH0KLSsgIGlmIChJbnB1dEVv ZkVycm9yKCkpCi0rICAgIHJldHVybiBTX0ZBTFNFOwotKwotICAgVGFibGVzUmVhZCA9IHRydWU7 Ci0gCi0gICAvLyBvcmlnaW5hbCBjb2RlIGhhcyBjaGVjayBoZXJlOgotQEAgLTYyMyw2ICs2MzAs OSBAQCBIUkVTVUxUIENEZWNvZGVyOjpSZWFkVGFibGVzKGJvb2wgJmtlZXBEZWNvbXByZXNzaW5n KQotICAgUklGKG1fTGVuRGVjb2Rlci5CdWlsZCgmbmV3TGV2ZWxzW2tNYWluVGFibGVTaXplICsg a0Rpc3RUYWJsZVNpemUgKyBrQWxpZ25UYWJsZVNpemVdKSk7Ci0gCi0gICBtZW1jcHkobV9MYXN0 TGV2ZWxzLCBuZXdMZXZlbHMsIGtUYWJsZXNTaXplc1N1bSk7Ci0rCi0rICBUYWJsZXNPSyA9IHRy dWU7Ci0rCi0gICByZXR1cm4gU19PSzsKLSB9Ci0gCi1AQCAtODI0LDcgKzgzNCwxMiBAQCBIUkVT VUxUIENEZWNvZGVyOjpDb2RlUmVhbChJQ29tcHJlc3NQcm9ncmVzc0luZm8gKnByb2dyZXNzKQot ICAgICBQcG1Fc2NDaGFyID0gMjsKLSAgICAgUHBtRXJyb3IgPSB0cnVlOwotICAgICBJbml0Rmls dGVycygpOwotKyAgICBfZXJyb3JNb2RlID0gZmFsc2U7Ci0gICB9Ci0rCi0rICBpZiAoX2Vycm9y TW9kZSkKLSsgICAgcmV0dXJuIFNfRkFMU0U7Ci0rCi0gICBpZiAoIW1fSXNTb2xpZCB8fCAhVGFi bGVzUmVhZCkKLSAgIHsKLSAgICAgYm9vbCBrZWVwRGVjb21wcmVzc2luZzsKLUBAIC04MzgsNiAr ODUzLDggQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSUNvbXByZXNzUHJvZ3Jlc3NJbmZv ICpwcm9ncmVzcykKLSAgICAgYm9vbCBrZWVwRGVjb21wcmVzc2luZzsKLSAgICAgaWYgKF9sek1v ZGUpCi0gICAgIHsKLSsgICAgICBpZiAoIVRhYmxlc09LKQotKyAgICAgICAgcmV0dXJuIFNfRkFM U0U7Ci0gICAgICAgUklOT0soRGVjb2RlTFooa2VlcERlY29tcHJlc3NpbmcpKQotICAgICB9Ci0g ICAgIGVsc2UKLUBAIC05MDEsOCArOTE4LDggQEAgU1RETUVUSE9ESU1QIENEZWNvZGVyOjpDb2Rl KElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbQotICAg ICBfdW5wYWNrU2l6ZSA9IG91dFNpemUgPyAqb3V0U2l6ZSA6IChVSW50NjQpKEludDY0KS0xOwot ICAgICByZXR1cm4gQ29kZVJlYWwocHJvZ3Jlc3MpOwotICAgfQotLSAgY2F0Y2goY29uc3QgQ0lu QnVmZmVyRXhjZXB0aW9uICZlKSAgeyByZXR1cm4gZS5FcnJvckNvZGU7IH0KLS0gIGNhdGNoKC4u LikgeyByZXR1cm4gU19GQUxTRTsgfQotKyAgY2F0Y2goY29uc3QgQ0luQnVmZmVyRXhjZXB0aW9u ICZlKSAgeyBfZXJyb3JNb2RlID0gdHJ1ZTsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0rICBjYXRj aCguLi4pIHsgX2Vycm9yTW9kZSA9IHRydWU7IHJldHVybiBTX0ZBTFNFOyB9Ci0gICAvLyBDTmV3 RXhjZXB0aW9uIGlzIHBvc3NpYmxlIGhlcmUuIEJ1dCBwcm9iYWJseSBDTmV3RXhjZXB0aW9uIGlz IGNhdXNlZAotICAgLy8gYnkgZXJyb3IgaW4gZGF0YSBzdHJlYW0uCi0gfQotZGlmZiAtLWdpdCBh L0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmggYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIz RGVjb2Rlci5oCi1pbmRleCBjMTMwY2VjLi4yZjcyZDdkIDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAv Q29tcHJlc3MvUmFyM0RlY29kZXIuaAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29k ZXIuaAotQEAgLTE5Miw2ICsxOTIsNyBAQCBjbGFzcyBDRGVjb2RlcjoKLSAgIFVJbnQzMiBfbGFz dEZpbHRlcjsKLSAKLSAgIGJvb2wgbV9Jc1NvbGlkOwotKyAgYm9vbCBfZXJyb3JNb2RlOwotIAot ICAgYm9vbCBfbHpNb2RlOwotICAgYm9vbCBfdW5zdXBwb3J0ZWRGaWx0ZXI7Ci1AQCAtMjAwLDYg KzIwMSw3IEBAIGNsYXNzIENEZWNvZGVyOgotICAgVUludDMyIFByZXZBbGlnbkNvdW50OwotIAot ICAgYm9vbCBUYWJsZXNSZWFkOwotKyAgYm9vbCBUYWJsZXNPSzsKLSAKLSAgIENQcG1kNyBfcHBt ZDsKLSAgIGludCBQcG1Fc2NDaGFyOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC9wYXRjaGVz LzMwLUNWRS0yMDE4LTEwMTE1LnBhdGNoIGIvc3JjcGtncy9wN3ppcC9wYXRjaGVzLzMwLUNWRS0y MDE4LTEwMTE1LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3ZDljNGJmODFm MDAuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvMzAtQ1ZFLTIwMTgt MTAxMTUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwzMTEgKzAsMCBAQAotRnJvbTogUm9iZXJ0 IEx1YmVyZGEgPHJvYmVydEBkZWJpYW4ub3JnPgotRGF0ZTogVHVlLCAyOSBNYXkgMjAxOCAyMzo1 OTowOSArMDIwMAotU3ViamVjdDogRml4IENWRS0yMDE4LTEwMTE1Ci0KLUFwcGx5ICJwYXRjaCIg dGFrZW4gZnJvbSBodHRwczovL2xhbmRhdmUuaW8vZmlsZXMvcGF0Y2hfN3ppcF9DVkUtMjAxOC0x MDExNS50eHQKLQotCi1CdWdzLURlYmlhbjogaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvODk3Njc0 Ci0tLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAgfCAxNiArKysrKysrKysr Ky0tLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaCAgIHwgIDMgKystCi0gQ1BQ Lzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwIHwgMTcgKysrKysrKysrKysrKy0tLS0KLSBD UFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oICAgfCAgMyArKy0KLSBDUFAvN3ppcC9Db21w cmVzcy9SYXIzRGVjb2Rlci5jcHAgfCAxOSArKysrKysrKysrKysrKystLS0tCi0gQ1BQLzd6aXAv Q29tcHJlc3MvUmFyM0RlY29kZXIuaCAgIHwgIDMgKystCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFy NURlY29kZXIuY3BwIHwgIDggKysrKysrKysKLSBDUFAvN3ppcC9Db21wcmVzcy9SYXI1RGVjb2Rl ci5oICAgfCAgMSArCi0gOCBmaWxlcyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAxNiBkZWxl dGlvbnMoLSkKLQotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNw cCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcAotaW5kZXggNjgwMzBjNy4uOGM4 OTBjOCAxMDA2NDQKLS0tLSBhL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcAotKysr IGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuY3BwCi1AQCAtMjksNyArMjksNyBAQCBw dWJsaWM6Ci0gfTsKLSAqLwotIAotLUNEZWNvZGVyOjpDRGVjb2RlcigpOiBtX0lzU29saWQoZmFs c2UpLCBfZXJyb3JNb2RlKGZhbHNlKSB7IH0KLStDRGVjb2Rlcjo6Q0RlY29kZXIoKTogX2lzU29s aWQoZmFsc2UpLCBfc29saWRBbGxvd2VkKGZhbHNlKSwgX2Vycm9yTW9kZShmYWxzZSkgeyB9Ci0g Ci0gdm9pZCBDRGVjb2Rlcjo6SW5pdFN0cnVjdHVyZXMoKQotIHsKLUBAIC0zNDUsNyArMzQ1LDcg QEAgdm9pZCBDRGVjb2Rlcjo6R2V0RmxhZ3NCdWYoKQotIAotIHZvaWQgQ0RlY29kZXI6OkluaXRE YXRhKCkKLSB7Ci0tICBpZiAoIW1fSXNTb2xpZCkKLSsgIGlmICghX2lzU29saWQpCi0gICB7Ci0g ICAgIEF2clBsY0IgPSBBdnJMbjEgPSBBdnJMbjIgPSBBdnJMbjMgPSBOdW1IdWYgPSBCdWY2MCA9 IDA7Ci0gICAgIEF2clBsYyA9IDB4MzUwMDsKLUBAIC0zOTEsNiArMzkxLDExIEBAIEhSRVNVTFQg Q0RlY29kZXI6OkNvZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVu dGlhbE91dFN0cmVhbSAqCi0gICBpZiAoaW5TaXplID09IE5VTEwgfHwgb3V0U2l6ZSA9PSBOVUxM KQotICAgICByZXR1cm4gRV9JTlZBTElEQVJHOwotIAotKyAgaWYgKF9pc1NvbGlkICYmICFfc29s aWRBbGxvd2VkKQotKyAgICByZXR1cm4gU19GQUxTRTsKLSsKLSsgIF9zb2xpZEFsbG93ZWQgPSBm YWxzZTsKLSsKLSAgIGlmICghbV9PdXRXaW5kb3dTdHJlYW0uQ3JlYXRlKGtIaXN0b3J5U2l6ZSkp Ci0gICAgIHJldHVybiBFX09VVE9GTUVNT1JZOwotICAgaWYgKCFtX0luQml0U3RyZWFtLkNyZWF0 ZSgxIDw8IDIwKSkKLUBAIC0zOTgsMTMgKzQwMywxMyBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2Rl UmVhbChJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0g KgotIAotICAgbV9VbnBhY2tTaXplID0gKEludDY0KSpvdXRTaXplOwotICAgbV9PdXRXaW5kb3dT dHJlYW0uU2V0U3RyZWFtKG91dFN0cmVhbSk7Ci0tICBtX091dFdpbmRvd1N0cmVhbS5Jbml0KG1f SXNTb2xpZCk7Ci0rICBtX091dFdpbmRvd1N0cmVhbS5Jbml0KF9pc1NvbGlkKTsKLSAgIG1fSW5C aXRTdHJlYW0uU2V0U3RyZWFtKGluU3RyZWFtKTsKLSAgIG1fSW5CaXRTdHJlYW0uSW5pdCgpOwot IAotICAgLy8gQ0NvZGVyUmVsZWFzZXIgY29kZXJSZWxlYXNlcih0aGlzKTsKLSAgIEluaXREYXRh KCk7Ci0tICBpZiAoIW1fSXNTb2xpZCkKLSsgIGlmICghX2lzU29saWQpCi0gICB7Ci0gICAgIF9l cnJvck1vZGUgPSBmYWxzZTsKLSAgICAgSW5pdFN0cnVjdHVyZXMoKTsKLUBAIC00NzUsNiArNDgw LDcgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5T dHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgIH0KLSAgIGlmIChtX1VucGFja1NpemUg PCAwKQotICAgICByZXR1cm4gU19GQUxTRTsKLSsgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwotICAg cmV0dXJuIG1fT3V0V2luZG93U3RyZWFtLkZsdXNoKCk7Ci0gfQotIAotQEAgLTQ5MSw3ICs0OTcs NyBAQCBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OlNldERlY29kZXJQcm9wZXJ0aWVzMihjb25zdCBC eXRlICpkYXRhLCBVSW50MzIgc2l6ZSkKLSB7Ci0gICBpZiAoc2l6ZSA8IDEpCi0gICAgIHJldHVy biBFX0lOVkFMSURBUkc7Ci0tICBtX0lzU29saWQgPSAoKGRhdGFbMF0gJiAxKSAhPSAwKTsKLSsg IF9pc1NvbGlkID0gKChkYXRhWzBdICYgMSkgIT0gMCk7Ci0gICByZXR1cm4gU19PSzsKLSB9Ci0g Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaCBiL0NQUC83emlw L0NvbXByZXNzL1JhcjFEZWNvZGVyLmgKLWluZGV4IDAxYjYwNmIuLjhhYmIzYTMgMTAwNjQ0Ci0t LS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5oCi0rKysgYi9DUFAvN3ppcC9Db21w cmVzcy9SYXIxRGVjb2Rlci5oCi1AQCAtMzgsNyArMzgsOCBAQCBwdWJsaWM6Ci0gICBVSW50MzIg TGFzdExlbmd0aDsKLSAKLSAgIEludDY0IG1fVW5wYWNrU2l6ZTsKLS0gIGJvb2wgbV9Jc1NvbGlk OwotKyAgYm9vbCBfaXNTb2xpZDsKLSsgIGJvb2wgX3NvbGlkQWxsb3dlZDsKLSAgIGJvb2wgX2Vy cm9yTW9kZTsKLSAKLSAgIFVJbnQzMiBSZWFkQml0cyhpbnQgbnVtQml0cyk7Ci1kaWZmIC0tZ2l0 IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJlc3Mv UmFyMkRlY29kZXIuY3BwCi1pbmRleCAwNTgwYzhkLi5iZThkODQyIDEwMDY0NAotLS0tIGEvQ1BQ Lzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3BwCi0rKysgYi9DUFAvN3ppcC9Db21wcmVzcy9S YXIyRGVjb2Rlci5jcHAKLUBAIC04MCw3ICs4MCw4IEBAIHN0YXRpYyBjb25zdCBVSW50MzIga0hp c3RvcnlTaXplID0gMSA8PCAyMDsKLSBzdGF0aWMgY29uc3QgVUludDMyIGtXaW5kb3dSZXNlcnZT aXplID0gKDEgPDwgMjIpICsgMjU2OwotIAotIENEZWNvZGVyOjpDRGVjb2RlcigpOgotLSAgbV9J c1NvbGlkKGZhbHNlKSwKLSsgIF9pc1NvbGlkKGZhbHNlKSwKLSsgIF9zb2xpZEFsbG93ZWQoZmFs c2UpLAotICAgbV9UYWJsZXNPSyhmYWxzZSkKLSB7Ci0gfQotQEAgLTMyMCw2ICszMjEsMTAgQEAg SFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0s IElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgIGlmIChpblNpemUgPT0gTlVMTCB8fCBvdXRTaXpl ID09IE5VTEwpCi0gICAgIHJldHVybiBFX0lOVkFMSURBUkc7Ci0gCi0rICBpZiAoX2lzU29saWQg JiYgIV9zb2xpZEFsbG93ZWQpCi0rICAgIHJldHVybiBTX0ZBTFNFOwotKyAgX3NvbGlkQWxsb3dl ZCA9IGZhbHNlOwotKwotICAgaWYgKCFtX091dFdpbmRvd1N0cmVhbS5DcmVhdGUoa0hpc3RvcnlT aXplKSkKLSAgICAgcmV0dXJuIEVfT1VUT0ZNRU1PUlk7Ci0gICBpZiAoIW1fSW5CaXRTdHJlYW0u Q3JlYXRlKDEgPDwgMjApKQotQEAgLTMzMCwxMiArMzM1LDEyIEBAIEhSRVNVTFQgQ0RlY29kZXI6 OkNvZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0 cmVhbSAqCi0gICBVSW50NjQgcG9zID0gMCwgdW5QYWNrU2l6ZSA9ICpvdXRTaXplOwotICAgCi0g ICBtX091dFdpbmRvd1N0cmVhbS5TZXRTdHJlYW0ob3V0U3RyZWFtKTsKLS0gIG1fT3V0V2luZG93 U3RyZWFtLkluaXQobV9Jc1NvbGlkKTsKLSsgIG1fT3V0V2luZG93U3RyZWFtLkluaXQoX2lzU29s aWQpOwotICAgbV9JbkJpdFN0cmVhbS5TZXRTdHJlYW0oaW5TdHJlYW0pOwotICAgbV9JbkJpdFN0 cmVhbS5Jbml0KCk7Ci0gCi0gICAvLyBDQ29kZXJSZWxlYXNlciBjb2RlclJlbGVhc2VyKHRoaXMp OwotLSAgaWYgKCFtX0lzU29saWQpCi0rICBpZiAoIV9pc1NvbGlkKQotICAgewotICAgICBJbml0 U3RydWN0dXJlcygpOwotICAgICBpZiAodW5QYWNrU2l6ZSA9PSAwKQotQEAgLTM0Myw2ICszNDgs NyBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2VxdWVudGlhbEluU3RyZWFtICppblN0 cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotICAgICAgIGlmIChtX0luQml0U3RyZWFtLkdl dFByb2Nlc3NlZFNpemUoKSArIDIgPD0gbV9QYWNrU2l6ZSkgLy8gdGVzdCBpdDogcHJvYmFibHkg aW5jb3JyZWN0OwotICAgICAgICAgaWYgKCFSZWFkVGFibGVzKCkpCi0gICAgICAgICAgIHJldHVy biBTX0ZBTFNFOwotKyAgICAgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwotICAgICAgIHJldHVybiBT X09LOwotICAgICB9Ci0gICAgIGlmICghUmVhZFRhYmxlcygpKQotQEAgLTM4Niw2ICszOTIsOSBA QCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVh bSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotIAotICAgaWYgKCFSZWFkTGFzdFRhYmxlcygpKQot ICAgICByZXR1cm4gU19GQUxTRTsKLSsKLSsgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwotKwotICAg cmV0dXJuIG1fT3V0V2luZG93U3RyZWFtLkZsdXNoKCk7Ci0gfQotIAotQEAgLTQwMiw3ICs0MTEs NyBAQCBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OlNldERlY29kZXJQcm9wZXJ0aWVzMihjb25zdCBC eXRlICpkYXRhLCBVSW50MzIgc2l6ZSkKLSB7Ci0gICBpZiAoc2l6ZSA8IDEpCi0gICAgIHJldHVy biBFX0lOVkFMSURBUkc7Ci0tICBtX0lzU29saWQgPSAoKGRhdGFbMF0gJiAxKSAhPSAwKTsKLSsg IF9pc1NvbGlkID0gKChkYXRhWzBdICYgMSkgIT0gMCk7Ci0gICByZXR1cm4gU19PSzsKLSB9Ci0g Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuaCBiL0NQUC83emlw L0NvbXByZXNzL1JhcjJEZWNvZGVyLmgKLWluZGV4IDBlOTAwNWYuLjM3MGJjZTIgMTAwNjQ0Ci0t LS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oCi0rKysgYi9DUFAvN3ppcC9Db21w cmVzcy9SYXIyRGVjb2Rlci5oCi1AQCAtMTM4LDcgKzEzOCw4IEBAIGNsYXNzIENEZWNvZGVyIDoK LSAgIEJ5dGUgbV9MYXN0TGV2ZWxzW2tNYXhUYWJsZVNpemVdOwotIAotICAgVUludDY0IG1fUGFj a1NpemU7Ci0tICBib29sIG1fSXNTb2xpZDsKLSsgIGJvb2wgX2lzU29saWQ7Ci0rICBib29sIF9z b2xpZEFsbG93ZWQ7Ci0gICBib29sIG1fVGFibGVzT0s7Ci0gCi0gICB2b2lkIEluaXRTdHJ1Y3R1 cmVzKCk7Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwIGIv Q1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwCi1pbmRleCA2Y2I4YTZhLi43Yjg1ODMz IDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwCi0rKysgYi9D UFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAKLUBAIC05Miw3ICs5Miw4IEBAIENEZWNv ZGVyOjpDRGVjb2RlcigpOgotICAgX3dyaXR0ZW5GaWxlU2l6ZSgwKSwKLSAgIF92bURhdGEoMCks Ci0gICBfdm1Db2RlKDApLAotLSAgbV9Jc1NvbGlkKGZhbHNlKSwKLSsgIF9pc1NvbGlkKGZhbHNl KSwKLSsgIF9zb2xpZEFsbG93ZWQoZmFsc2UpLAotICAgX2Vycm9yTW9kZShmYWxzZSkKLSB7Ci0g ICBQcG1kN19Db25zdHJ1Y3QoJl9wcG1kKTsKLUBAIC04MjEsNyArODIyLDcgQEAgSFJFU1VMVCBD RGVjb2Rlcjo6Q29kZVJlYWwoSUNvbXByZXNzUHJvZ3Jlc3NJbmZvICpwcm9ncmVzcykKLSB7Ci0g ICBfd3JpdHRlbkZpbGVTaXplID0gMDsKLSAgIF91bnN1cHBvcnRlZEZpbHRlciA9IGZhbHNlOwot LSAgaWYgKCFtX0lzU29saWQpCi0rICBpZiAoIV9pc1NvbGlkKQotICAgewotICAgICBfbHpTaXpl ID0gMDsKLSAgICAgX3dpblBvcyA9IDA7Ci1AQCAtODQwLDEyICs4NDEsMTUgQEAgSFJFU1VMVCBD RGVjb2Rlcjo6Q29kZVJlYWwoSUNvbXByZXNzUHJvZ3Jlc3NJbmZvICpwcm9ncmVzcykKLSAgIGlm IChfZXJyb3JNb2RlKQotICAgICByZXR1cm4gU19GQUxTRTsKLSAKLS0gIGlmICghbV9Jc1NvbGlk IHx8ICFUYWJsZXNSZWFkKQotKyAgaWYgKCFfaXNTb2xpZCB8fCAhVGFibGVzUmVhZCkKLSAgIHsK LSAgICAgYm9vbCBrZWVwRGVjb21wcmVzc2luZzsKLSAgICAgUklOT0soUmVhZFRhYmxlcyhrZWVw RGVjb21wcmVzc2luZykpOwotICAgICBpZiAoIWtlZXBEZWNvbXByZXNzaW5nKQotKyAgICB7Ci0r ICAgICAgX3NvbGlkQWxsb3dlZCA9IHRydWU7Ci0gICAgICAgcmV0dXJuIFNfT0s7Ci0rICAgIH0K LSAgIH0KLSAKLSAgIGZvciAoOzspCi1AQCAtODcwLDYgKzg3NCw5IEBAIEhSRVNVTFQgQ0RlY29k ZXI6OkNvZGVSZWFsKElDb21wcmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gICAgIGlmICgh a2VlcERlY29tcHJlc3NpbmcpCi0gICAgICAgYnJlYWs7Ci0gICB9Ci0rCi0rICBfc29saWRBbGxv d2VkID0gdHJ1ZTsKLSsKLSAgIFJJTk9LKFdyaXRlQnVmKCkpOwotICAgVUludDY0IHBhY2tTaXpl ID0gbV9JbkJpdFN0cmVhbS5CaXREZWNvZGVyLkdldFByb2Nlc3NlZFNpemUoKTsKLSAgIFJJTk9L KHByb2dyZXNzLT5TZXRSYXRpb0luZm8oJnBhY2tTaXplLCAmX3dyaXR0ZW5GaWxlU2l6ZSkpOwot QEAgLTg5MCw2ICs4OTcsMTAgQEAgU1RETUVUSE9ESU1QIENEZWNvZGVyOjpDb2RlKElTZXF1ZW50 aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbQotICAgICBpZiAoIWlu U2l6ZSkKLSAgICAgICByZXR1cm4gRV9JTlZBTElEQVJHOwotIAotKyAgICBpZiAoX2lzU29saWQg JiYgIV9zb2xpZEFsbG93ZWQpCi0rICAgICAgcmV0dXJuIFNfRkFMU0U7Ci0rICAgIF9zb2xpZEFs bG93ZWQgPSBmYWxzZTsKLSsKLSAgICAgaWYgKCFfdm1EYXRhKQotICAgICB7Ci0gICAgICAgX3Zt RGF0YSA9IChCeXRlICopOjpNaWRBbGxvYyhrVm1EYXRhU2l6ZU1heCArIGtWbUNvZGVTaXplTWF4 KTsKLUBAIC05MjgsNyArOTM5LDcgQEAgU1RETUVUSE9ESU1QIENEZWNvZGVyOjpTZXREZWNvZGVy UHJvcGVydGllczIoY29uc3QgQnl0ZSAqZGF0YSwgVUludDMyIHNpemUpCi0gewotICAgaWYgKHNp emUgPCAxKQotICAgICByZXR1cm4gRV9JTlZBTElEQVJHOwotLSAgbV9Jc1NvbGlkID0gKChkYXRh WzBdICYgMSkgIT0gMCk7Ci0rICBfaXNTb2xpZCA9ICgoZGF0YVswXSAmIDEpICE9IDApOwotICAg cmV0dXJuIFNfT0s7Ci0gfQotIAotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjNE ZWNvZGVyLmggYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oCi1pbmRleCAyZjcyZDdk Li4zMmM4OTQzIDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaAot KysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaAotQEAgLTE5MSw3ICsxOTEsOCBA QCBjbGFzcyBDRGVjb2RlcjoKLSAgIENSZWNvcmRWZWN0b3I8Q1RlbXBGaWx0ZXIgKj4gIF90ZW1w RmlsdGVyczsKLSAgIFVJbnQzMiBfbGFzdEZpbHRlcjsKLSAKLS0gIGJvb2wgbV9Jc1NvbGlkOwot KyAgYm9vbCBfaXNTb2xpZDsKLSsgIGJvb2wgX3NvbGlkQWxsb3dlZDsKLSAgIGJvb2wgX2Vycm9y TW9kZTsKLSAKLSAgIGJvb2wgX2x6TW9kZTsKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVz cy9SYXI1RGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXI1RGVjb2Rlci5jcHAKLWlu ZGV4IGRjODgzMGYuLmE4MjZkNWEgMTAwNjQ0Ci0tLS0gYS9DUFAvN3ppcC9Db21wcmVzcy9SYXI1 RGVjb2Rlci5jcHAKLSsrKyBiL0NQUC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmNwcAotQEAg LTcyLDYgKzcyLDcgQEAgQ0RlY29kZXI6OkNEZWNvZGVyKCk6Ci0gICAgIF93cml0dGVuRmlsZVNp emUoMCksCi0gICAgIF9kaWN0U2l6ZUxvZygwKSwKLSAgICAgX2lzU29saWQoZmFsc2UpLAotKyAg ICBfc29saWRBbGxvd2VkKGZhbHNlKSwKLSAgICAgX3dhc0luaXQoZmFsc2UpLAotICAgICBfaW5w dXRCdWYoTlVMTCkKLSB7Ci1AQCAtODAxLDcgKzgwMiwxMCBAQCBIUkVTVUxUIENEZWNvZGVyOjpD b2RlUmVhbCgpCi0gICAqLwotIAotICAgaWYgKHJlcyA9PSBTX09LKQotKyAgewotKyAgICBfc29s aWRBbGxvd2VkID0gdHJ1ZTsKLSAgICAgcmVzID0gcmVzMjsKLSsgIH0KLSAgICAgIAotICAgaWYg KHJlcyA9PSBTX09LICYmIF91bnBhY2tTaXplX0RlZmluZWQgJiYgX3dyaXR0ZW5GaWxlU2l6ZSAh PSBfdW5wYWNrU2l6ZSkKLSAgICAgcmV0dXJuIFNfRkFMU0U7Ci1AQCAtODIxLDYgKzgyNSwxMCBA QCBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OkNvZGUoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJl YW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtCi0gewotICAgdHJ5Ci0gICB7Ci0rICAgIGlmIChfaXNT b2xpZCAmJiAhX3NvbGlkQWxsb3dlZCkKLSsgICAgICByZXR1cm4gU19GQUxTRTsKLSsgICAgX3Nv bGlkQWxsb3dlZCA9IGZhbHNlOwotKwotICAgICBpZiAoX2RpY3RTaXplTG9nID49IHNpemVvZihz aXplX3QpICogOCkKLSAgICAgICByZXR1cm4gRV9OT1RJTVBMOwotIAotZGlmZiAtLWdpdCBhL0NQ UC83emlwL0NvbXByZXNzL1JhcjVEZWNvZGVyLmggYi9DUFAvN3ppcC9Db21wcmVzcy9SYXI1RGVj b2Rlci5oCi1pbmRleCBiMGE0ZGQxLi4zZGI1MDE4IDEwMDY0NAotLS0tIGEvQ1BQLzd6aXAvQ29t cHJlc3MvUmFyNURlY29kZXIuaAotKysrIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIu aAotQEAgLTI3MSw2ICsyNzEsNyBAQCBjbGFzcyBDRGVjb2RlcjoKLSAgIEJ5dGUgX2RpY3RTaXpl TG9nOwotICAgYm9vbCBfdGFibGVXYXNGaWxsZWQ7Ci0gICBib29sIF9pc1NvbGlkOwotKyAgYm9v bCBfc29saWRBbGxvd2VkOwotICAgYm9vbCBfd2FzSW5pdDsKLSAKLSAgIFVJbnQzMiBfcmVwc1tr TnVtUmVwc107CmRpZmYgLS1naXQgYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTYtOTI5 Ni5wYXRjaCBiL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNi05Mjk2LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYmJiMzM3NzM3ZTUuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTYtOTI5Ni5wYXRjaAorKysgL2Rldi9udWxs CkBAIC0xLDEyICswLDAgQEAKLS0tLSBhL0NQUC83emlwL0FyY2hpdmUvN3ovN3pJbi5jcHAJU3Vu IE5vdiAyMCAwOToyOTo0MSAyMDE2Ci0rKysgYi9DUFAvN3ppcC9BcmNoaXZlLzd6Lzd6SW4uY3Bw CVN1biBOb3YgMjAgMDk6MzE6MjIgMjAxNgotQEAgLTEwOTcsNyArMTA5Nyw4IEBAIEhSRVNVTFQg Q0luQXJjaGl2ZTo6UmVhZEFuZERlY29kZVBhY2tlZFN0cmVhbXMoCi0gICAgICAgaWYgKENyY0Nh bGMoZGF0YSwgdW5wYWNrU2l6ZSkgIT0gZm9sZGVycy5Gb2xkZXJDUkNzLlZhbHNbaV0pCi0gICAg ICAgICBUaHJvd0luY29ycmVjdCgpOwotICAgfQotLSAgSGVhZGVyc1NpemUgKz0gZm9sZGVycy5Q YWNrUG9zaXRpb25zW2ZvbGRlcnMuTnVtUGFja1N0cmVhbXNdOwotKyAgaWYgKGZvbGRlcnMuUGFj a1Bvc2l0aW9ucykKLSsgICAgICBIZWFkZXJzU2l6ZSArPSBmb2xkZXJzLlBhY2tQb3NpdGlvbnNb Zm9sZGVycy5OdW1QYWNrU3RyZWFtc107Ci0gICByZXR1cm4gU19PSzsKLSB9Ci0gCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTctMTc5NjkucGF0Y2ggYi9zcmNwa2dz L3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTctMTc5NjkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDlhODIwYWY3MzA2Ny4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcDd6aXAv cGF0Y2hlcy9DVkUtMjAxNy0xNzk2OS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI2ICswLDAg QEAKLUZyb206ID0/dXRmLTg/cT9BbnRvaW5lX0JlYXVwcj1DMz1BOT89IDxhbmFyY2F0QGRlYmlh bi5vcmc+Ci1EYXRlOiBTdW4sIDI4IEphbiAyMDE4IDIxOjE5OjUwICswMTAwCi1TdWJqZWN0OiBi YWNrcG9ydCBvZiB0aGUgQ1ZFLTIwMTctMTc5NjkgZml4IGZyb20gN3ppcCAxOC4wMC1iZXRhCi0K LS0tLQotIENQUC83emlwL0NvbXByZXNzL1Nocmlua0RlY29kZXIuY3BwIHwgNyArKysrKystCi0g MSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0t Z2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvU2hyaW5rRGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9Db21w cmVzcy9TaHJpbmtEZWNvZGVyLmNwcAotaW5kZXggODBiN2U2Ny4uNGFjZGNlNSAxMDA2NDQKLS0t LSBhL0NQUC83emlwL0NvbXByZXNzL1Nocmlua0RlY29kZXIuY3BwCi0rKysgYi9DUFAvN3ppcC9D b21wcmVzcy9TaHJpbmtEZWNvZGVyLmNwcAotQEAgLTEyMSw3ICsxMjEsMTIgQEAgSFJFU1VMVCBD RGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50 aWFsT3V0U3RyZWFtICoKLSAgICAgewotICAgICAgIF9zdGFja1tpKytdID0gX3N1ZmZpeGVzW2N1 cl07Ci0gICAgICAgY3VyID0gX3BhcmVudHNbY3VyXTsKLS0gICAgfQotKyAgICAgIGlmIChpID49 IGtOdW1JdGVtcykKLSsgICAgICAgIGJyZWFrOwotKyAgICAgfQotKwotKyAgICBpZiAoaSA+PSBr TnVtSXRlbXMpCi0rICAgICAgYnJlYWs7Ci0gICAgIAotICAgICBfc3RhY2tbaSsrXSA9IChCeXRl KWN1cjsKLSAgICAgbGFzdENoYXIyID0gKEJ5dGUpY3VyOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9w N3ppcC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcDd6aXAvdGVtcGxhdGUKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDY0MmUyNGFkYWY1Mi4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvcDd6 aXAvdGVtcGxhdGUKKysrIC9kZXYvbnVsbApAQCAtMSw0NyArMCwwIEBACi0jIFRlbXBsYXRlIGZp bGUgZm9yICdwN3ppcCcKLXBrZ25hbWU9cDd6aXAKLXZlcnNpb249MTYuMDIKLXJldmlzaW9uPTUK LXdya3NyYz0iJHtwa2duYW1lfV8ke3ZlcnNpb259IgotaG9zdG1ha2VkZXBlbmRzPSJ5YXNtIG5h c20iCi1zaG9ydF9kZXNjPSJDb21tYW5kLWxpbmUgdmVyc2lvbiBvZiB0aGUgN3ppcCBjb21wcmVz c2VkIGZpbGUgYXJjaGl2ZSIKLW1haW50YWluZXI9Ik9ycGhhbmVkIDxvcnBoYW5Adm9pZGxpbnV4 Lm9yZz4iCi1saWNlbnNlPSJMR1BMLTIuMS1vci1sYXRlciIKLWhvbWVwYWdlPSJodHRwOi8vcDd6 aXAuc291cmNlZm9yZ2UubmV0LyIKLWRpc3RmaWxlcz0iJHtTT1VSQ0VGT1JHRV9TSVRFfS8ke3Br Z25hbWV9LyR7cGtnbmFtZX1fJHt2ZXJzaW9ufV9zcmNfYWxsLnRhci5iejIiCi1jaGVja3N1bT01 ZWIyMGFjMGUyOTQ0ZjZjYjljMmQ1MWRkNmM0NTE4OTQxYzE4NTM0N2Q0MDg5ZWE4OTA4N2ZmZGQ2 ZTIzNDFmCi0KLUNYWEZMQUdTPSItV25vLW5hcnJvd2luZyIKLQotZG9fY29uZmlndXJlKCkgewot CWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgotCQlpNjg2KikgY3AgbWFrZWZpbGUubGlu dXhfeDg2X2FzbV9nY2NfNC5YIG1ha2VmaWxlLm1hY2hpbmU7OwotCQl4ODZfNjQqKSBjcCBtYWtl ZmlsZS5saW51eF9hbWQ2NF9hc20gbWFrZWZpbGUubWFjaGluZTs7Ci0JCSopIGNwIG1ha2VmaWxl LmxpbnV4X2FueV9jcHVfZ2NjXzQuWCBtYWtlZmlsZS5tYWNoaW5lOzsKLQllc2FjCi0Jc2VkIC1l ICJzLGcrKywke0NYWH0sIiAtaSBtYWtlZmlsZS5tYWNoaW5lCi0Jc2VkIC1lICJzLGdjYywke0ND fSwiIC1pIG1ha2VmaWxlLm1hY2hpbmUKLX0KLWRvX2J1aWxkKCkgewotCW1ha2UgYWxsMyBPUFRG TEFHUz0iJENYWEZMQUdTIiAke21ha2Vqb2JzfQotfQotZG9faW5zdGFsbCgpIHsKLQltYWtlIGlu c3RhbGwgREVTVF9ESVI9IiR7REVTVERJUn0iIERFU1RfSE9NRT0iL3VzciIgXAotCQlERVNUX01B Tj0iL3Vzci9zaGFyZS9tYW4iIFwKLQkJREVTVF9TSEFSRV9ET0M9Ii91c3Ivc2hhcmUvZG9jLyR7 cGtnbmFtZX0iCi0JZmluZCAke0RFU1RESVJ9L3Vzci9zaGFyZS9kb2MvJHBrZ25hbWUgLXR5cGUg ZCAtZXhlYyBjaG1vZCA3NTUge30gXDsKLQlta2RpciAtcCAke0RFU1RESVJ9L3Vzci9zaGFyZS9s aWNlbnNlcy9wN3ppcC8KLQltdiAke0RFU1RESVJ9L3Vzci9zaGFyZS9kb2MvcDd6aXAvRE9DL2Nv cHlpbmcudHh0IFwKLQkgICAke0RFU1RESVJ9L3Vzci9zaGFyZS9saWNlbnNlcy9wN3ppcC9MSUNF TlNFCi19Ci0KLXA3emlwLXVucmFyX3BhY2thZ2UoKSB7Ci0Jc2hvcnRfZGVzYys9IiAtIFJBUiBz dXBwb3J0IgotCWxpY2Vuc2U9ImN1c3RvbTpmcmVld2FyZSIKLQlkZXBlbmRzPSIke3NvdXJjZXBr Z30tJHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKLQlyZXBvc2l0b3J5PW5vbmZyZWUKLQlwa2dfaW5z dGFsbCgpIHsKLQkJdm1vdmUgdXNyL2xpYi9wN3ppcC9Db2RlY3MvUmFyLnNvCi0JCXZsaWNlbnNl IERPQy91blJhckxpY2Vuc2UudHh0IExJQ0VOU0UKLQl9Ci19CmRpZmYgLS1naXQgYS9zcmNwa2dz L3A3emlwL3VwZGF0ZSBiL3NyY3BrZ3MvcDd6aXAvdXBkYXRlCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NAppbmRleCA4NGVkNDZkNzRhMWEuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL3A3emlw L3VwZGF0ZQorKysgL2Rldi9udWxsCkBAIC0xICswLDAgQEAKLXBhdHRlcm49J3A3emlwX1xLWy5c ZF0rJwo= --===============3257063445197778078==--