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=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 9319 invoked from network); 5 Apr 2021 10:19:10 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 5 Apr 2021 10:19:10 -0000 Content-Type: multipart/mixed; boundary="===============4998119003620379603==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BOn_hold=5D_p7zip=3A_update_to_17=2E03?= To: ml@inbox.vuxu.org From: biopsin Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Mon, 05 Apr 2021 12:19:08 +0200 List-Id: Message-ID: <20210405101908.-iJ43cjGwyYLgNXbDvkqFfPXYALqIj6yjPec5D_qQzs@z> GitHub notification mails are now in MIME to allow UTF8. --===============4998119003620379603== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgYmlvcHNpbiBhZ2FpbnN0IG1hc3Rl ciBvbiB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vYmlv cHNpbi92b2lkLXBhY2thZ2VzIHBhdGNoLTIKaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgv dm9pZC1wYWNrYWdlcy9wdWxsLzI3OTUzCgpbT24gaG9sZF0gcDd6aXA6IHVwZGF0ZSB0byAxNy4w MwpTd2l0Y2ggZGlzdGZpbGVzIHRvIGZvcmsgQCBodHRwczovL2dpdGh1Yi5jb20vamluZmVpaGFu NTcvcDd6aXANCkJlY29tZSBtYWludGFpbmVyDQpDaGFuZ2UgYnVpbGQgb3B0aW9uIHRvICJhbGwy IiBzaW5jZSAiYWxsMyIgaW5jbHVkZXMgIjd6ciIgd2hpY2ggaXMgYSBsaWdodCB2ZXJzaW9uIG9m IGluY2x1ZGVkICI3emEiDQoNCnJlbW92ZSBwYXRjaGVzDQphZGQgY2hhbmdlbG9nDQoNCnRlc3Rl ZCBpbnN0YWxsIDogeDg2XzY0Ly1tdXNsCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1 Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMjc5NTMucGF0Y2ggaXMgYXR0YWNo ZWQ= --===============4998119003620379603== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-patch-2-27953.patch" RnJvbSA1NTI2YzlkOTFiNzgxNjAxMGQwNGE0OGY4YmIxYzcwMzFlMTA2MTc0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBiaW9wc2luIDw2MDAyOTk4OStiaW9wc2luQHVzZXJzLm5vcmVw bHkuZ2l0aHViLmNvbT4KRGF0ZTogRnJpLCAxNSBKYW4gMjAyMSAxMjo0Mjo0NyArMDEwMApTdWJq ZWN0OiBbUEFUQ0hdIHA3emlwOiB1cGRhdGUgdG8gMTcuMDQKCi0tLQogc3JjcGtncy9wN3ppcC9w YXRjaGVzLzIwLUNWRS0yMDE4LTU5OTYucGF0Y2ggIHwgMjIxIC0tLS0tLS0tLS0tLS0KIHNyY3Br Z3MvcDd6aXAvcGF0Y2hlcy8zMC1DVkUtMjAxOC0xMDExNS5wYXRjaCB8IDMxMSAtLS0tLS0tLS0t LS0tLS0tLS0KIHNyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNi05Mjk2LnBhdGNoICAgICB8 ICAxMiAtCiBzcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTctMTc5NjkucGF0Y2ggICAgfCAg MjYgLS0KIHNyY3BrZ3MvcDd6aXAvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICAgICB8ICAx NCArLQogNSBmaWxlcyBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKyksIDU3NyBkZWxldGlvbnMoLSkK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3A3emlwL3BhdGNoZXMvMjAtQ1ZFLTIwMTgtNTk5 Ni5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcDd6aXAvcGF0Y2hlcy8zMC1DVkUt MjAxOC0xMDExNS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcDd6aXAvcGF0Y2hl cy9DVkUtMjAxNi05Mjk2LnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9wN3ppcC9w YXRjaGVzL0NWRS0yMDE3LTE3OTY5LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC9w YXRjaGVzLzIwLUNWRS0yMDE4LTU5OTYucGF0Y2ggYi9zcmNwa2dzL3A3emlwL3BhdGNoZXMvMjAt Q1ZFLTIwMTgtNTk5Ni5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMjkzNWVj MzY1N2I0Li4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9wN3ppcC9wYXRjaGVzLzIwLUNWRS0y MDE4LTU5OTYucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyMjEgKzAsMCBAQAotRnJvbTogUm9i ZXJ0IEx1YmVyZGEgPHJvYmVydEBkZWJpYW4ub3JnPgotRGF0ZTogU3VuLCAyOCBKYW4gMjAxOCAy Mzo0Nzo0MCArMDEwMAotU3ViamVjdDogQ1ZFLTIwMTgtNTk5NgotCi1Ib3BlZnVsbHkgZml4IE1l bW9yeSBDb3JydXB0aW9ucyB2aWEgUkFSIFBQTWQgKENWRS0yMDE4LTU5OTYpIGJ5Ci1hcHBseWlu ZyBhIGZldyBjaGFuZ2VzIGZyb20gN1ppcCAxOC4wMC1iZXRhLgotCi1CdWctRGViaWFuOiBodHRw czovL2J1Z3MuZGViaWFuLm9yZy8jODg4MzE0Ci0tLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIx RGVjb2Rlci5jcHAgfCAxMyArKysrKysrKystLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURl Y29kZXIuaCAgIHwgIDEgKwotIENQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNwcCB8IDEw ICsrKysrKysrKy0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5oICAgfCAgMSArCi0g Q1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwIHwgMjMgKysrKysrKysrKysrKysrKysr KystLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oICAgfCAgMiArKwotIDYgZmls ZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp dCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcCBiL0NQUC83emlwL0NvbXByZXNz L1JhcjFEZWNvZGVyLmNwcAotaW5kZXggMWFhZWRjYy4uNjgwMzBjNyAxMDA2NDQKLS0tLSBDUFAv N3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAKLSsrKyBDUFAvN3ppcC9Db21wcmVzcy9SYXIx RGVjb2Rlci5jcHAKLUBAIC0yOSw3ICsyOSw3IEBAIHB1YmxpYzoKLSB9OwotICovCi0gCi0tQ0Rl Y29kZXI6OkNEZWNvZGVyKCk6IG1fSXNTb2xpZChmYWxzZSkgeyB9Ci0rQ0RlY29kZXI6OkNEZWNv ZGVyKCk6IG1fSXNTb2xpZChmYWxzZSksIF9lcnJvck1vZGUoZmFsc2UpIHsgfQotIAotIHZvaWQg Q0RlY29kZXI6OkluaXRTdHJ1Y3R1cmVzKCkKLSB7Ci1AQCAtNDA2LDkgKzQwNiwxNCBAQCBIUkVT VUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNl cXVlbnRpYWxPdXRTdHJlYW0gKgotICAgSW5pdERhdGEoKTsKLSAgIGlmICghbV9Jc1NvbGlkKQot ICAgewotKyAgICBfZXJyb3JNb2RlID0gZmFsc2U7Ci0gICAgIEluaXRTdHJ1Y3R1cmVzKCk7Ci0g ICAgIEluaXRIdWZmKCk7Ci0gICB9Ci0rCi0rICBpZiAoX2Vycm9yTW9kZSkKLSsgICAgcmV0dXJu IFNfRkFMU0U7Ci0rCi0gICBpZiAobV9VbnBhY2tTaXplID4gMCkKLSAgIHsKLSAgICAgR2V0Rmxh Z3NCdWYoKTsKLUBAIC00NzcsOSArNDgyLDkgQEAgU1RETUVUSE9ESU1QIENEZWNvZGVyOjpDb2Rl KElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbQotICAg ICBjb25zdCBVSW50NjQgKmluU2l6ZSwgY29uc3QgVUludDY0ICpvdXRTaXplLCBJQ29tcHJlc3NQ cm9ncmVzc0luZm8gKnByb2dyZXNzKQotIHsKLSAgIHRyeSB7IHJldHVybiBDb2RlUmVhbChpblN0 cmVhbSwgb3V0U3RyZWFtLCBpblNpemUsIG91dFNpemUsIHByb2dyZXNzKTsgfQotLSAgY2F0Y2go Y29uc3QgQ0luQnVmZmVyRXhjZXB0aW9uICZlKSB7IHJldHVybiBlLkVycm9yQ29kZTsgfQotLSAg Y2F0Y2goY29uc3QgQ0x6T3V0V2luZG93RXhjZXB0aW9uICZlKSB7IHJldHVybiBlLkVycm9yQ29k ZTsgfQotLSAgY2F0Y2goLi4uKSB7IHJldHVybiBTX0ZBTFNFOyB9Ci0rICBjYXRjaChjb25zdCBD SW5CdWZmZXJFeGNlcHRpb24gJmUpIHsgX2Vycm9yTW9kZSA9IHRydWU7IHJldHVybiBlLkVycm9y Q29kZTsgfQotKyAgY2F0Y2goY29uc3QgQ0x6T3V0V2luZG93RXhjZXB0aW9uICZlKSB7IF9lcnJv ck1vZGUgPSB0cnVlOyByZXR1cm4gZS5FcnJvckNvZGU7IH0KLSsgIGNhdGNoKC4uLikgeyBfZXJy b3JNb2RlID0gdHJ1ZTsgcmV0dXJuIFNfRkFMU0U7IH0KLSB9Ci0gCi0gU1RETUVUSE9ESU1QIENE ZWNvZGVyOjpTZXREZWNvZGVyUHJvcGVydGllczIoY29uc3QgQnl0ZSAqZGF0YSwgVUludDMyIHNp emUpCi1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaCBiL0NQUC83 emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmgKLWluZGV4IDYzMGYwODkuLjAxYjYwNmIgMTAwNjQ0 Ci0tLS0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaAotKysrIENQUC83emlwL0NvbXBy ZXNzL1JhcjFEZWNvZGVyLmgKLUBAIC0zOSw2ICszOSw3IEBAIHB1YmxpYzoKLSAKLSAgIEludDY0 IG1fVW5wYWNrU2l6ZTsKLSAgIGJvb2wgbV9Jc1NvbGlkOwotKyAgYm9vbCBfZXJyb3JNb2RlOwot IAotICAgVUludDMyIFJlYWRCaXRzKGludCBudW1CaXRzKTsKLSAgIEhSRVNVTFQgQ29weUJsb2Nr KFVJbnQzMiBkaXN0YW5jZSwgVUludDMyIGxlbik7Ci1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29t cHJlc3MvUmFyMkRlY29kZXIuY3BwIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuY3Bw Ci1pbmRleCBiM2YyYjRiLi4wNTgwYzhkIDEwMDY0NAotLS0tIENQUC83emlwL0NvbXByZXNzL1Jh cjJEZWNvZGVyLmNwcAotKysrIENQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNwcAotQEAg LTgwLDcgKzgwLDggQEAgc3RhdGljIGNvbnN0IFVJbnQzMiBrSGlzdG9yeVNpemUgPSAxIDw8IDIw OwotIHN0YXRpYyBjb25zdCBVSW50MzIga1dpbmRvd1Jlc2VydlNpemUgPSAoMSA8PCAyMikgKyAy NTY7Ci0gCi0gQ0RlY29kZXI6OkNEZWNvZGVyKCk6Ci0tICBtX0lzU29saWQoZmFsc2UpCi0rICBt X0lzU29saWQoZmFsc2UpLAotKyAgbV9UYWJsZXNPSyhmYWxzZSkKLSB7Ci0gfQotIAotQEAgLTEw MCw2ICsxMDEsOCBAQCBVSW50MzIgQ0RlY29kZXI6OlJlYWRCaXRzKHVuc2lnbmVkIG51bUJpdHMp IHsgcmV0dXJuIG1fSW5CaXRTdHJlYW0uUmVhZEJpdHMobnVtQgotIAotIGJvb2wgQ0RlY29kZXI6 OlJlYWRUYWJsZXModm9pZCkKLSB7Ci0rICBtX1RhYmxlc09LID0gZmFsc2U7Ci0rCi0gICBCeXRl IGxldmVsTGV2ZWxzW2tMZXZlbFRhYmxlU2l6ZV07Ci0gICBCeXRlIG5ld0xldmVsc1trTWF4VGFi bGVTaXplXTsKLSAgIG1fQXVkaW9Nb2RlID0gKFJlYWRCaXRzKDEpID09IDEpOwotQEAgLTE3MCw2 ICsxNzMsOCBAQCBib29sIENEZWNvZGVyOjpSZWFkVGFibGVzKHZvaWQpCi0gICB9Ci0gICAKLSAg IG1lbWNweShtX0xhc3RMZXZlbHMsIG5ld0xldmVscywga01heFRhYmxlU2l6ZSk7Ci0rICBtX1Rh Ymxlc09LID0gdHJ1ZTsKLSsKLSAgIHJldHVybiB0cnVlOwotIH0KLSAKLUBAIC0zNDQsNiArMzQ5 LDkgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVlbnRpYWxJblN0cmVhbSAqaW5T dHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgICAgICByZXR1cm4gU19GQUxTRTsKLSAg IH0KLSAKLSsgIGlmICghbV9UYWJsZXNPSykKLSsgICAgcmV0dXJuIFNfRkFMU0U7Ci0rCi0gICBV SW50NjQgc3RhcnRQb3MgPSBtX091dFdpbmRvd1N0cmVhbS5HZXRQcm9jZXNzZWRTaXplKCk7Ci0g ICB3aGlsZSAocG9zIDwgdW5QYWNrU2l6ZSkKLSAgIHsKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9D b21wcmVzcy9SYXIyRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuaAot aW5kZXggM2EwNTM1Yy4uMGU5MDA1ZiAxMDA2NDQKLS0tLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIy RGVjb2Rlci5oCi0rKysgQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIuaAotQEAgLTEzOSw2 ICsxMzksNyBAQCBjbGFzcyBDRGVjb2RlciA6Ci0gCi0gICBVSW50NjQgbV9QYWNrU2l6ZTsKLSAg IGJvb2wgbV9Jc1NvbGlkOwotKyAgYm9vbCBtX1RhYmxlc09LOwotIAotICAgdm9pZCBJbml0U3Ry dWN0dXJlcygpOwotICAgVUludDMyIFJlYWRCaXRzKHVuc2lnbmVkIG51bUJpdHMpOwotZGlmZiAt LWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjNEZWNvZGVyLmNwcCBiL0NQUC83emlwL0NvbXBy ZXNzL1JhcjNEZWNvZGVyLmNwcAotaW5kZXggM2JmMjUxMy4uNmNiOGE2YSAxMDA2NDQKLS0tLSBD UFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAKLSsrKyBDUFAvN3ppcC9Db21wcmVzcy9S YXIzRGVjb2Rlci5jcHAKLUBAIC05Miw3ICs5Miw4IEBAIENEZWNvZGVyOjpDRGVjb2RlcigpOgot ICAgX3dyaXR0ZW5GaWxlU2l6ZSgwKSwKLSAgIF92bURhdGEoMCksCi0gICBfdm1Db2RlKDApLAot LSAgbV9Jc1NvbGlkKGZhbHNlKQotKyAgbV9Jc1NvbGlkKGZhbHNlKSwKLSsgIF9lcnJvck1vZGUo ZmFsc2UpCi0gewotICAgUHBtZDdfQ29uc3RydWN0KCZfcHBtZCk7Ci0gfQotQEAgLTU0NSw2ICs1 NDYsOSBAQCBIUkVTVUxUIENEZWNvZGVyOjpSZWFkVGFibGVzKGJvb2wgJmtlZXBEZWNvbXByZXNz aW5nKQotICAgICByZXR1cm4gSW5pdFBQTSgpOwotICAgfQotIAotKyAgVGFibGVzUmVhZCA9IGZh bHNlOwotKyAgVGFibGVzT0sgPSBmYWxzZTsKLSsKLSAgIF9sek1vZGUgPSB0cnVlOwotICAgUHJl dkFsaWduQml0cyA9IDA7Ci0gICBQcmV2QWxpZ25Db3VudCA9IDA7Ci1AQCAtNjA2LDYgKzYxMCw5 IEBAIEhSRVNVTFQgQ0RlY29kZXI6OlJlYWRUYWJsZXMoYm9vbCAma2VlcERlY29tcHJlc3Npbmcp Ci0gICAgICAgfQotICAgICB9Ci0gICB9Ci0rICBpZiAoSW5wdXRFb2ZFcnJvcigpKQotKyAgICBy ZXR1cm4gU19GQUxTRTsKLSsKLSAgIFRhYmxlc1JlYWQgPSB0cnVlOwotIAotICAgLy8gb3JpZ2lu YWwgY29kZSBoYXMgY2hlY2sgaGVyZToKLUBAIC02MjMsNiArNjMwLDkgQEAgSFJFU1VMVCBDRGVj b2Rlcjo6UmVhZFRhYmxlcyhib29sICZrZWVwRGVjb21wcmVzc2luZykKLSAgIFJJRihtX0xlbkRl Y29kZXIuQnVpbGQoJm5ld0xldmVsc1trTWFpblRhYmxlU2l6ZSArIGtEaXN0VGFibGVTaXplICsg a0FsaWduVGFibGVTaXplXSkpOwotIAotICAgbWVtY3B5KG1fTGFzdExldmVscywgbmV3TGV2ZWxz LCBrVGFibGVzU2l6ZXNTdW0pOwotKwotKyAgVGFibGVzT0sgPSB0cnVlOwotKwotICAgcmV0dXJu IFNfT0s7Ci0gfQotIAotQEAgLTgyNCw3ICs4MzQsMTIgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29k ZVJlYWwoSUNvbXByZXNzUHJvZ3Jlc3NJbmZvICpwcm9ncmVzcykKLSAgICAgUHBtRXNjQ2hhciA9 IDI7Ci0gICAgIFBwbUVycm9yID0gdHJ1ZTsKLSAgICAgSW5pdEZpbHRlcnMoKTsKLSsgICAgX2Vy cm9yTW9kZSA9IGZhbHNlOwotICAgfQotKwotKyAgaWYgKF9lcnJvck1vZGUpCi0rICAgIHJldHVy biBTX0ZBTFNFOwotKwotICAgaWYgKCFtX0lzU29saWQgfHwgIVRhYmxlc1JlYWQpCi0gICB7Ci0g ICAgIGJvb2wga2VlcERlY29tcHJlc3Npbmc7Ci1AQCAtODM4LDYgKzg1Myw4IEBAIEhSRVNVTFQg Q0RlY29kZXI6OkNvZGVSZWFsKElDb21wcmVzc1Byb2dyZXNzSW5mbyAqcHJvZ3Jlc3MpCi0gICAg IGJvb2wga2VlcERlY29tcHJlc3Npbmc7Ci0gICAgIGlmIChfbHpNb2RlKQotICAgICB7Ci0rICAg ICAgaWYgKCFUYWJsZXNPSykKLSsgICAgICAgIHJldHVybiBTX0ZBTFNFOwotICAgICAgIFJJTk9L KERlY29kZUxaKGtlZXBEZWNvbXByZXNzaW5nKSkKLSAgICAgfQotICAgICBlbHNlCi1AQCAtOTAx LDggKzkxOCw4IEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6Q29kZShJU2VxdWVudGlhbEluU3Ry ZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0KLSAgICAgX3VucGFja1NpemUgPSBv dXRTaXplID8gKm91dFNpemUgOiAoVUludDY0KShJbnQ2NCktMTsKLSAgICAgcmV0dXJuIENvZGVS ZWFsKHByb2dyZXNzKTsKLSAgIH0KLS0gIGNhdGNoKGNvbnN0IENJbkJ1ZmZlckV4Y2VwdGlvbiAm ZSkgIHsgcmV0dXJuIGUuRXJyb3JDb2RlOyB9Ci0tICBjYXRjaCguLi4pIHsgcmV0dXJuIFNfRkFM U0U7IH0KLSsgIGNhdGNoKGNvbnN0IENJbkJ1ZmZlckV4Y2VwdGlvbiAmZSkgIHsgX2Vycm9yTW9k ZSA9IHRydWU7IHJldHVybiBlLkVycm9yQ29kZTsgfQotKyAgY2F0Y2goLi4uKSB7IF9lcnJvck1v ZGUgPSB0cnVlOyByZXR1cm4gU19GQUxTRTsgfQotICAgLy8gQ05ld0V4Y2VwdGlvbiBpcyBwb3Nz aWJsZSBoZXJlLiBCdXQgcHJvYmFibHkgQ05ld0V4Y2VwdGlvbiBpcyBjYXVzZWQKLSAgIC8vIGJ5 IGVycm9yIGluIGRhdGEgc3RyZWFtLgotIH0KLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVz cy9SYXIzRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaAotaW5kZXgg YzEzMGNlYy4uMmY3MmQ3ZCAxMDA2NDQKLS0tLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rl ci5oCi0rKysgQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaAotQEAgLTE5Miw2ICsxOTIs NyBAQCBjbGFzcyBDRGVjb2RlcjoKLSAgIFVJbnQzMiBfbGFzdEZpbHRlcjsKLSAKLSAgIGJvb2wg bV9Jc1NvbGlkOwotKyAgYm9vbCBfZXJyb3JNb2RlOwotIAotICAgYm9vbCBfbHpNb2RlOwotICAg Ym9vbCBfdW5zdXBwb3J0ZWRGaWx0ZXI7Ci1AQCAtMjAwLDYgKzIwMSw3IEBAIGNsYXNzIENEZWNv ZGVyOgotICAgVUludDMyIFByZXZBbGlnbkNvdW50OwotIAotICAgYm9vbCBUYWJsZXNSZWFkOwot KyAgYm9vbCBUYWJsZXNPSzsKLSAKLSAgIENQcG1kNyBfcHBtZDsKLSAgIGludCBQcG1Fc2NDaGFy OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC9wYXRjaGVzLzMwLUNWRS0yMDE4LTEwMTE1LnBh dGNoIGIvc3JjcGtncy9wN3ppcC9wYXRjaGVzLzMwLUNWRS0yMDE4LTEwMTE1LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxOTQxYWI0NjlmYWIuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL3A3emlwL3BhdGNoZXMvMzAtQ1ZFLTIwMTgtMTAxMTUucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwzMTEgKzAsMCBAQAotRnJvbTogUm9iZXJ0IEx1YmVyZGEgPHJvYmVydEBkZWJp YW4ub3JnPgotRGF0ZTogVHVlLCAyOSBNYXkgMjAxOCAyMzo1OTowOSArMDIwMAotU3ViamVjdDog Rml4IENWRS0yMDE4LTEwMTE1Ci0KLUFwcGx5ICJwYXRjaCIgdGFrZW4gZnJvbSBodHRwczovL2xh bmRhdmUuaW8vZmlsZXMvcGF0Y2hfN3ppcF9DVkUtMjAxOC0xMDExNS50eHQKLQotCi1CdWdzLURl YmlhbjogaHR0cHM6Ly9idWdzLmRlYmlhbi5vcmcvODk3Njc0Ci0tLS0KLSBDUFAvN3ppcC9Db21w cmVzcy9SYXIxRGVjb2Rlci5jcHAgfCAxNiArKysrKysrKysrKy0tLS0tCi0gQ1BQLzd6aXAvQ29t cHJlc3MvUmFyMURlY29kZXIuaCAgIHwgIDMgKystCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRl Y29kZXIuY3BwIHwgMTcgKysrKysrKysrKysrKy0tLS0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIy RGVjb2Rlci5oICAgfCAgMyArKy0KLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAg fCAxOSArKysrKysrKysrKysrKystLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIu aCAgIHwgIDMgKystCi0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuY3BwIHwgIDggKysr KysrKysKLSBDUFAvN3ppcC9Db21wcmVzcy9SYXI1RGVjb2Rlci5oICAgfCAgMSArCi0gOCBmaWxl cyBjaGFuZ2VkLCA1NCBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKLQotZGlmZiAtLWdp dCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjFEZWNvZGVyLmNwcCBiL0NQUC83emlwL0NvbXByZXNz L1JhcjFEZWNvZGVyLmNwcAotaW5kZXggNjgwMzBjNy4uOGM4OTBjOCAxMDA2NDQKLS0tLSBDUFAv N3ppcC9Db21wcmVzcy9SYXIxRGVjb2Rlci5jcHAKLSsrKyBDUFAvN3ppcC9Db21wcmVzcy9SYXIx RGVjb2Rlci5jcHAKLUBAIC0yOSw3ICsyOSw3IEBAIHB1YmxpYzoKLSB9OwotICovCi0gCi0tQ0Rl Y29kZXI6OkNEZWNvZGVyKCk6IG1fSXNTb2xpZChmYWxzZSksIF9lcnJvck1vZGUoZmFsc2UpIHsg fQotK0NEZWNvZGVyOjpDRGVjb2RlcigpOiBfaXNTb2xpZChmYWxzZSksIF9zb2xpZEFsbG93ZWQo ZmFsc2UpLCBfZXJyb3JNb2RlKGZhbHNlKSB7IH0KLSAKLSB2b2lkIENEZWNvZGVyOjpJbml0U3Ry dWN0dXJlcygpCi0gewotQEAgLTM0NSw3ICszNDUsNyBAQCB2b2lkIENEZWNvZGVyOjpHZXRGbGFn c0J1ZigpCi0gCi0gdm9pZCBDRGVjb2Rlcjo6SW5pdERhdGEoKQotIHsKLS0gIGlmICghbV9Jc1Nv bGlkKQotKyAgaWYgKCFfaXNTb2xpZCkKLSAgIHsKLSAgICAgQXZyUGxjQiA9IEF2ckxuMSA9IEF2 ckxuMiA9IEF2ckxuMyA9IE51bUh1ZiA9IEJ1ZjYwID0gMDsKLSAgICAgQXZyUGxjID0gMHgzNTAw OwotQEAgLTM5MSw2ICszOTEsMTEgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVl bnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgIGlmIChp blNpemUgPT0gTlVMTCB8fCBvdXRTaXplID09IE5VTEwpCi0gICAgIHJldHVybiBFX0lOVkFMSURB Ukc7Ci0gCi0rICBpZiAoX2lzU29saWQgJiYgIV9zb2xpZEFsbG93ZWQpCi0rICAgIHJldHVybiBT X0ZBTFNFOwotKwotKyAgX3NvbGlkQWxsb3dlZCA9IGZhbHNlOwotKwotICAgaWYgKCFtX091dFdp bmRvd1N0cmVhbS5DcmVhdGUoa0hpc3RvcnlTaXplKSkKLSAgICAgcmV0dXJuIEVfT1VUT0ZNRU1P Ulk7Ci0gICBpZiAoIW1fSW5CaXRTdHJlYW0uQ3JlYXRlKDEgPDwgMjApKQotQEAgLTM5OCwxMyAr NDAzLDEzIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0g KmluU3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAqCi0gCi0gICBtX1VucGFja1NpemUgPSAo SW50NjQpKm91dFNpemU7Ci0gICBtX091dFdpbmRvd1N0cmVhbS5TZXRTdHJlYW0ob3V0U3RyZWFt KTsKLS0gIG1fT3V0V2luZG93U3RyZWFtLkluaXQobV9Jc1NvbGlkKTsKLSsgIG1fT3V0V2luZG93 U3RyZWFtLkluaXQoX2lzU29saWQpOwotICAgbV9JbkJpdFN0cmVhbS5TZXRTdHJlYW0oaW5TdHJl YW0pOwotICAgbV9JbkJpdFN0cmVhbS5Jbml0KCk7Ci0gCi0gICAvLyBDQ29kZXJSZWxlYXNlciBj b2RlclJlbGVhc2VyKHRoaXMpOwotICAgSW5pdERhdGEoKTsKLS0gIGlmICghbV9Jc1NvbGlkKQot KyAgaWYgKCFfaXNTb2xpZCkKLSAgIHsKLSAgICAgX2Vycm9yTW9kZSA9IGZhbHNlOwotICAgICBJ bml0U3RydWN0dXJlcygpOwotQEAgLTQ3NSw2ICs0ODAsNyBAQCBIUkVTVUxUIENEZWNvZGVyOjpD b2RlUmVhbChJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJl YW0gKgotICAgfQotICAgaWYgKG1fVW5wYWNrU2l6ZSA8IDApCi0gICAgIHJldHVybiBTX0ZBTFNF OwotKyAgX3NvbGlkQWxsb3dlZCA9IHRydWU7Ci0gICByZXR1cm4gbV9PdXRXaW5kb3dTdHJlYW0u Rmx1c2goKTsKLSB9Ci0gCi1AQCAtNDkxLDcgKzQ5Nyw3IEBAIFNURE1FVEhPRElNUCBDRGVjb2Rl cjo6U2V0RGVjb2RlclByb3BlcnRpZXMyKGNvbnN0IEJ5dGUgKmRhdGEsIFVJbnQzMiBzaXplKQot IHsKLSAgIGlmIChzaXplIDwgMSkKLSAgICAgcmV0dXJuIEVfSU5WQUxJREFSRzsKLS0gIG1fSXNT b2xpZCA9ICgoZGF0YVswXSAmIDEpICE9IDApOwotKyAgX2lzU29saWQgPSAoKGRhdGFbMF0gJiAx KSAhPSAwKTsKLSAgIHJldHVybiBTX09LOwotIH0KLSAKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9D b21wcmVzcy9SYXIxRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaAot aW5kZXggMDFiNjA2Yi4uOGFiYjNhMyAxMDA2NDQKLS0tLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIx RGVjb2Rlci5oCi0rKysgQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMURlY29kZXIuaAotQEAgLTM4LDcg KzM4LDggQEAgcHVibGljOgotICAgVUludDMyIExhc3RMZW5ndGg7Ci0gCi0gICBJbnQ2NCBtX1Vu cGFja1NpemU7Ci0tICBib29sIG1fSXNTb2xpZDsKLSsgIGJvb2wgX2lzU29saWQ7Ci0rICBib29s IF9zb2xpZEFsbG93ZWQ7Ci0gICBib29sIF9lcnJvck1vZGU7Ci0gCi0gICBVSW50MzIgUmVhZEJp dHMoaW50IG51bUJpdHMpOwotZGlmZiAtLWdpdCBhL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNv ZGVyLmNwcCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmNwcAotaW5kZXggMDU4MGM4 ZC4uYmU4ZDg0MiAxMDA2NDQKLS0tLSBDUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5jcHAK LSsrKyBDUFAvN3ppcC9Db21wcmVzcy9SYXIyRGVjb2Rlci5jcHAKLUBAIC04MCw3ICs4MCw4IEBA IHN0YXRpYyBjb25zdCBVSW50MzIga0hpc3RvcnlTaXplID0gMSA8PCAyMDsKLSBzdGF0aWMgY29u c3QgVUludDMyIGtXaW5kb3dSZXNlcnZTaXplID0gKDEgPDwgMjIpICsgMjU2OwotIAotIENEZWNv ZGVyOjpDRGVjb2RlcigpOgotLSAgbV9Jc1NvbGlkKGZhbHNlKSwKLSsgIF9pc1NvbGlkKGZhbHNl KSwKLSsgIF9zb2xpZEFsbG93ZWQoZmFsc2UpLAotICAgbV9UYWJsZXNPSyhmYWxzZSkKLSB7Ci0g fQotQEAgLTMyMCw2ICszMjEsMTAgQEAgSFJFU1VMVCBDRGVjb2Rlcjo6Q29kZVJlYWwoSVNlcXVl bnRpYWxJblN0cmVhbSAqaW5TdHJlYW0sIElTZXF1ZW50aWFsT3V0U3RyZWFtICoKLSAgIGlmIChp blNpemUgPT0gTlVMTCB8fCBvdXRTaXplID09IE5VTEwpCi0gICAgIHJldHVybiBFX0lOVkFMSURB Ukc7Ci0gCi0rICBpZiAoX2lzU29saWQgJiYgIV9zb2xpZEFsbG93ZWQpCi0rICAgIHJldHVybiBT X0ZBTFNFOwotKyAgX3NvbGlkQWxsb3dlZCA9IGZhbHNlOwotKwotICAgaWYgKCFtX091dFdpbmRv d1N0cmVhbS5DcmVhdGUoa0hpc3RvcnlTaXplKSkKLSAgICAgcmV0dXJuIEVfT1VUT0ZNRU1PUlk7 Ci0gICBpZiAoIW1fSW5CaXRTdHJlYW0uQ3JlYXRlKDEgPDwgMjApKQotQEAgLTMzMCwxMiArMzM1 LDEyIEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmlu U3RyZWFtLCBJU2VxdWVudGlhbE91dFN0cmVhbSAqCi0gICBVSW50NjQgcG9zID0gMCwgdW5QYWNr U2l6ZSA9ICpvdXRTaXplOwotICAgCi0gICBtX091dFdpbmRvd1N0cmVhbS5TZXRTdHJlYW0ob3V0 U3RyZWFtKTsKLS0gIG1fT3V0V2luZG93U3RyZWFtLkluaXQobV9Jc1NvbGlkKTsKLSsgIG1fT3V0 V2luZG93U3RyZWFtLkluaXQoX2lzU29saWQpOwotICAgbV9JbkJpdFN0cmVhbS5TZXRTdHJlYW0o aW5TdHJlYW0pOwotICAgbV9JbkJpdFN0cmVhbS5Jbml0KCk7Ci0gCi0gICAvLyBDQ29kZXJSZWxl YXNlciBjb2RlclJlbGVhc2VyKHRoaXMpOwotLSAgaWYgKCFtX0lzU29saWQpCi0rICBpZiAoIV9p c1NvbGlkKQotICAgewotICAgICBJbml0U3RydWN0dXJlcygpOwotICAgICBpZiAodW5QYWNrU2l6 ZSA9PSAwKQotQEAgLTM0Myw2ICszNDgsNyBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJ U2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotICAg ICAgIGlmIChtX0luQml0U3RyZWFtLkdldFByb2Nlc3NlZFNpemUoKSArIDIgPD0gbV9QYWNrU2l6 ZSkgLy8gdGVzdCBpdDogcHJvYmFibHkgaW5jb3JyZWN0OwotICAgICAgICAgaWYgKCFSZWFkVGFi bGVzKCkpCi0gICAgICAgICAgIHJldHVybiBTX0ZBTFNFOwotKyAgICAgIF9zb2xpZEFsbG93ZWQg PSB0cnVlOwotICAgICAgIHJldHVybiBTX09LOwotICAgICB9Ci0gICAgIGlmICghUmVhZFRhYmxl cygpKQotQEAgLTM4Niw2ICszOTIsOSBAQCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJU2Vx dWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0gKgotIAotICAg aWYgKCFSZWFkTGFzdFRhYmxlcygpKQotICAgICByZXR1cm4gU19GQUxTRTsKLSsKLSsgIF9zb2xp ZEFsbG93ZWQgPSB0cnVlOwotKwotICAgcmV0dXJuIG1fT3V0V2luZG93U3RyZWFtLkZsdXNoKCk7 Ci0gfQotIAotQEAgLTQwMiw3ICs0MTEsNyBAQCBTVERNRVRIT0RJTVAgQ0RlY29kZXI6OlNldERl Y29kZXJQcm9wZXJ0aWVzMihjb25zdCBCeXRlICpkYXRhLCBVSW50MzIgc2l6ZSkKLSB7Ci0gICBp ZiAoc2l6ZSA8IDEpCi0gICAgIHJldHVybiBFX0lOVkFMSURBUkc7Ci0tICBtX0lzU29saWQgPSAo KGRhdGFbMF0gJiAxKSAhPSAwKTsKLSsgIF9pc1NvbGlkID0gKChkYXRhWzBdICYgMSkgIT0gMCk7 Ci0gICByZXR1cm4gU19PSzsKLSB9Ci0gCi1kaWZmIC0tZ2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3Mv UmFyMkRlY29kZXIuaCBiL0NQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmgKLWluZGV4IDBl OTAwNWYuLjM3MGJjZTIgMTAwNjQ0Ci0tLS0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyMkRlY29kZXIu aAotKysrIENQUC83emlwL0NvbXByZXNzL1JhcjJEZWNvZGVyLmgKLUBAIC0xMzgsNyArMTM4LDgg QEAgY2xhc3MgQ0RlY29kZXIgOgotICAgQnl0ZSBtX0xhc3RMZXZlbHNba01heFRhYmxlU2l6ZV07 Ci0gCi0gICBVSW50NjQgbV9QYWNrU2l6ZTsKLS0gIGJvb2wgbV9Jc1NvbGlkOwotKyAgYm9vbCBf aXNTb2xpZDsKLSsgIGJvb2wgX3NvbGlkQWxsb3dlZDsKLSAgIGJvb2wgbV9UYWJsZXNPSzsKLSAK LSAgIHZvaWQgSW5pdFN0cnVjdHVyZXMoKTsKLWRpZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVz cy9SYXIzRGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXIzRGVjb2Rlci5jcHAKLWlu ZGV4IDZjYjhhNmEuLjdiODU4MzMgMTAwNjQ0Ci0tLS0gQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0Rl Y29kZXIuY3BwCi0rKysgQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuY3BwCi1AQCAtOTIs NyArOTIsOCBAQCBDRGVjb2Rlcjo6Q0RlY29kZXIoKToKLSAgIF93cml0dGVuRmlsZVNpemUoMCks Ci0gICBfdm1EYXRhKDApLAotICAgX3ZtQ29kZSgwKSwKLS0gIG1fSXNTb2xpZChmYWxzZSksCi0r ICBfaXNTb2xpZChmYWxzZSksCi0rICBfc29saWRBbGxvd2VkKGZhbHNlKSwKLSAgIF9lcnJvck1v ZGUoZmFsc2UpCi0gewotICAgUHBtZDdfQ29uc3RydWN0KCZfcHBtZCk7Ci1AQCAtODIxLDcgKzgy Miw3IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElDb21wcmVzc1Byb2dyZXNzSW5mbyAq cHJvZ3Jlc3MpCi0gewotICAgX3dyaXR0ZW5GaWxlU2l6ZSA9IDA7Ci0gICBfdW5zdXBwb3J0ZWRG aWx0ZXIgPSBmYWxzZTsKLS0gIGlmICghbV9Jc1NvbGlkKQotKyAgaWYgKCFfaXNTb2xpZCkKLSAg IHsKLSAgICAgX2x6U2l6ZSA9IDA7Ci0gICAgIF93aW5Qb3MgPSAwOwotQEAgLTg0MCwxMiArODQx LDE1IEBAIEhSRVNVTFQgQ0RlY29kZXI6OkNvZGVSZWFsKElDb21wcmVzc1Byb2dyZXNzSW5mbyAq cHJvZ3Jlc3MpCi0gICBpZiAoX2Vycm9yTW9kZSkKLSAgICAgcmV0dXJuIFNfRkFMU0U7Ci0gCi0t ICBpZiAoIW1fSXNTb2xpZCB8fCAhVGFibGVzUmVhZCkKLSsgIGlmICghX2lzU29saWQgfHwgIVRh Ymxlc1JlYWQpCi0gICB7Ci0gICAgIGJvb2wga2VlcERlY29tcHJlc3Npbmc7Ci0gICAgIFJJTk9L KFJlYWRUYWJsZXMoa2VlcERlY29tcHJlc3NpbmcpKTsKLSAgICAgaWYgKCFrZWVwRGVjb21wcmVz c2luZykKLSsgICAgewotKyAgICAgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwotICAgICAgIHJldHVy biBTX09LOwotKyAgICB9Ci0gICB9Ci0gCi0gICBmb3IgKDs7KQotQEAgLTg3MCw2ICs4NzQsOSBA QCBIUkVTVUxUIENEZWNvZGVyOjpDb2RlUmVhbChJQ29tcHJlc3NQcm9ncmVzc0luZm8gKnByb2dy ZXNzKQotICAgICBpZiAoIWtlZXBEZWNvbXByZXNzaW5nKQotICAgICAgIGJyZWFrOwotICAgfQot KwotKyAgX3NvbGlkQWxsb3dlZCA9IHRydWU7Ci0rCi0gICBSSU5PSyhXcml0ZUJ1ZigpKTsKLSAg IFVJbnQ2NCBwYWNrU2l6ZSA9IG1fSW5CaXRTdHJlYW0uQml0RGVjb2Rlci5HZXRQcm9jZXNzZWRT aXplKCk7Ci0gICBSSU5PSyhwcm9ncmVzcy0+U2V0UmF0aW9JbmZvKCZwYWNrU2l6ZSwgJl93cml0 dGVuRmlsZVNpemUpKTsKLUBAIC04OTAsNiArODk3LDEwIEBAIFNURE1FVEhPRElNUCBDRGVjb2Rl cjo6Q29kZShJU2VxdWVudGlhbEluU3RyZWFtICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJl YW0KLSAgICAgaWYgKCFpblNpemUpCi0gICAgICAgcmV0dXJuIEVfSU5WQUxJREFSRzsKLSAKLSsg ICAgaWYgKF9pc1NvbGlkICYmICFfc29saWRBbGxvd2VkKQotKyAgICAgIHJldHVybiBTX0ZBTFNF OwotKyAgICBfc29saWRBbGxvd2VkID0gZmFsc2U7Ci0rCi0gICAgIGlmICghX3ZtRGF0YSkKLSAg ICAgewotICAgICAgIF92bURhdGEgPSAoQnl0ZSAqKTo6TWlkQWxsb2Moa1ZtRGF0YVNpemVNYXgg KyBrVm1Db2RlU2l6ZU1heCk7Ci1AQCAtOTI4LDcgKzkzOSw3IEBAIFNURE1FVEhPRElNUCBDRGVj b2Rlcjo6U2V0RGVjb2RlclByb3BlcnRpZXMyKGNvbnN0IEJ5dGUgKmRhdGEsIFVJbnQzMiBzaXpl KQotIHsKLSAgIGlmIChzaXplIDwgMSkKLSAgICAgcmV0dXJuIEVfSU5WQUxJREFSRzsKLS0gIG1f SXNTb2xpZCA9ICgoZGF0YVswXSAmIDEpICE9IDApOwotKyAgX2lzU29saWQgPSAoKGRhdGFbMF0g JiAxKSAhPSAwKTsKLSAgIHJldHVybiBTX09LOwotIH0KLSAKLWRpZmYgLS1naXQgYS9DUFAvN3pp cC9Db21wcmVzcy9SYXIzRGVjb2Rlci5oIGIvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIu aAotaW5kZXggMmY3MmQ3ZC4uMzJjODk0MyAxMDA2NDQKLS0tLSBDUFAvN3ppcC9Db21wcmVzcy9S YXIzRGVjb2Rlci5oCi0rKysgQ1BQLzd6aXAvQ29tcHJlc3MvUmFyM0RlY29kZXIuaAotQEAgLTE5 MSw3ICsxOTEsOCBAQCBjbGFzcyBDRGVjb2RlcjoKLSAgIENSZWNvcmRWZWN0b3I8Q1RlbXBGaWx0 ZXIgKj4gIF90ZW1wRmlsdGVyczsKLSAgIFVJbnQzMiBfbGFzdEZpbHRlcjsKLSAKLS0gIGJvb2wg bV9Jc1NvbGlkOwotKyAgYm9vbCBfaXNTb2xpZDsKLSsgIGJvb2wgX3NvbGlkQWxsb3dlZDsKLSAg IGJvb2wgX2Vycm9yTW9kZTsKLSAKLSAgIGJvb2wgX2x6TW9kZTsKLWRpZmYgLS1naXQgYS9DUFAv N3ppcC9Db21wcmVzcy9SYXI1RGVjb2Rlci5jcHAgYi9DUFAvN3ppcC9Db21wcmVzcy9SYXI1RGVj b2Rlci5jcHAKLWluZGV4IGRjODgzMGYuLmE4MjZkNWEgMTAwNjQ0Ci0tLS0gQ1BQLzd6aXAvQ29t cHJlc3MvUmFyNURlY29kZXIuY3BwCi0rKysgQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIu Y3BwCi1AQCAtNzIsNiArNzIsNyBAQCBDRGVjb2Rlcjo6Q0RlY29kZXIoKToKLSAgICAgX3dyaXR0 ZW5GaWxlU2l6ZSgwKSwKLSAgICAgX2RpY3RTaXplTG9nKDApLAotICAgICBfaXNTb2xpZChmYWxz ZSksCi0rICAgIF9zb2xpZEFsbG93ZWQoZmFsc2UpLAotICAgICBfd2FzSW5pdChmYWxzZSksCi0g ICAgIF9pbnB1dEJ1ZihOVUxMKQotIHsKLUBAIC04MDEsNyArODAyLDEwIEBAIEhSRVNVTFQgQ0Rl Y29kZXI6OkNvZGVSZWFsKCkKLSAgICovCi0gCi0gICBpZiAocmVzID09IFNfT0spCi0rICB7Ci0r ICAgIF9zb2xpZEFsbG93ZWQgPSB0cnVlOwotICAgICByZXMgPSByZXMyOwotKyAgfQotICAgICAg Ci0gICBpZiAocmVzID09IFNfT0sgJiYgX3VucGFja1NpemVfRGVmaW5lZCAmJiBfd3JpdHRlbkZp bGVTaXplICE9IF91bnBhY2tTaXplKQotICAgICByZXR1cm4gU19GQUxTRTsKLUBAIC04MjEsNiAr ODI1LDEwIEBAIFNURE1FVEhPRElNUCBDRGVjb2Rlcjo6Q29kZShJU2VxdWVudGlhbEluU3RyZWFt ICppblN0cmVhbSwgSVNlcXVlbnRpYWxPdXRTdHJlYW0KLSB7Ci0gICB0cnkKLSAgIHsKLSsgICAg aWYgKF9pc1NvbGlkICYmICFfc29saWRBbGxvd2VkKQotKyAgICAgIHJldHVybiBTX0ZBTFNFOwot KyAgICBfc29saWRBbGxvd2VkID0gZmFsc2U7Ci0rCi0gICAgIGlmIChfZGljdFNpemVMb2cgPj0g c2l6ZW9mKHNpemVfdCkgKiA4KQotICAgICAgIHJldHVybiBFX05PVElNUEw7Ci0gCi1kaWZmIC0t Z2l0IGEvQ1BQLzd6aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuaCBiL0NQUC83emlwL0NvbXByZXNz L1JhcjVEZWNvZGVyLmgKLWluZGV4IGIwYTRkZDEuLjNkYjUwMTggMTAwNjQ0Ci0tLS0gQ1BQLzd6 aXAvQ29tcHJlc3MvUmFyNURlY29kZXIuaAotKysrIENQUC83emlwL0NvbXByZXNzL1JhcjVEZWNv ZGVyLmgKLUBAIC0yNzEsNiArMjcxLDcgQEAgY2xhc3MgQ0RlY29kZXI6Ci0gICBCeXRlIF9kaWN0 U2l6ZUxvZzsKLSAgIGJvb2wgX3RhYmxlV2FzRmlsbGVkOwotICAgYm9vbCBfaXNTb2xpZDsKLSsg IGJvb2wgX3NvbGlkQWxsb3dlZDsKLSAgIGJvb2wgX3dhc0luaXQ7Ci0gCi0gICBVSW50MzIgX3Jl cHNba051bVJlcHNdOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9wN3ppcC9wYXRjaGVzL0NWRS0yMDE2 LTkyOTYucGF0Y2ggYi9zcmNwa2dzL3A3emlwL3BhdGNoZXMvQ1ZFLTIwMTYtOTI5Ni5wYXRjaApk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzcwOTI5ZDE2MzNiLi4wMDAwMDAwMDAwMDAK LS0tIGEvc3JjcGtncy9wN3ppcC9wYXRjaGVzL0NWRS0yMDE2LTkyOTYucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwxMiArMCwwIEBACi0tLS0gQ1BQLzd6aXAvQXJjaGl2ZS83ei83ekluLmNwcC5v cmlnCVN1biBOb3YgMjAgMDk6Mjk6NDEgMjAxNgotKysrIENQUC83emlwL0FyY2hpdmUvN3ovN3pJ bi5jcHAJU3VuIE5vdiAyMCAwOTozMToyMiAyMDE2Ci1AQCAtMTA5Nyw3ICsxMDk3LDggQEAgSFJF U1VMVCBDSW5BcmNoaXZlOjpSZWFkQW5kRGVjb2RlUGFja2VkU3RyZWFtcygKLSAgICAgICBpZiAo Q3JjQ2FsYyhkYXRhLCB1bnBhY2tTaXplKSAhPSBmb2xkZXJzLkZvbGRlckNSQ3MuVmFsc1tpXSkK LSAgICAgICAgIFRocm93SW5jb3JyZWN0KCk7Ci0gICB9Ci0tICBIZWFkZXJzU2l6ZSArPSBmb2xk ZXJzLlBhY2tQb3NpdGlvbnNbZm9sZGVycy5OdW1QYWNrU3RyZWFtc107Ci0rICBpZiAoZm9sZGVy cy5QYWNrUG9zaXRpb25zKQotKyAgICAgIEhlYWRlcnNTaXplICs9IGZvbGRlcnMuUGFja1Bvc2l0 aW9uc1tmb2xkZXJzLk51bVBhY2tTdHJlYW1zXTsKLSAgIHJldHVybiBTX09LOwotIH0KLSAKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNy0xNzk2OS5wYXRjaCBiL3Ny Y3BrZ3MvcDd6aXAvcGF0Y2hlcy9DVkUtMjAxNy0xNzk2OS5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggYzU0ODczMDRjNDUyLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9w N3ppcC9wYXRjaGVzL0NWRS0yMDE3LTE3OTY5LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMjYg KzAsMCBAQAotRnJvbTogPT91dGYtOD9xP0FudG9pbmVfQmVhdXByPUMzPUE5Pz0gPGFuYXJjYXRA ZGViaWFuLm9yZz4KLURhdGU6IFN1biwgMjggSmFuIDIwMTggMjE6MTk6NTAgKzAxMDAKLVN1Ympl Y3Q6IGJhY2twb3J0IG9mIHRoZSBDVkUtMjAxNy0xNzk2OSBmaXggZnJvbSA3emlwIDE4LjAwLWJl dGEKLQotLS0tCi0gQ1BQLzd6aXAvQ29tcHJlc3MvU2hyaW5rRGVjb2Rlci5jcHAgfCA3ICsrKysr Ky0KLSAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCi0KLWRp ZmYgLS1naXQgYS9DUFAvN3ppcC9Db21wcmVzcy9TaHJpbmtEZWNvZGVyLmNwcCBiL0NQUC83emlw L0NvbXByZXNzL1Nocmlua0RlY29kZXIuY3BwCi1pbmRleCA4MGI3ZTY3Li40YWNkY2U1IDEwMDY0 NAotLS0tIENQUC83emlwL0NvbXByZXNzL1Nocmlua0RlY29kZXIuY3BwCi0rKysgQ1BQLzd6aXAv Q29tcHJlc3MvU2hyaW5rRGVjb2Rlci5jcHAKLUBAIC0xMjEsNyArMTIxLDEyIEBAIEhSRVNVTFQg Q0RlY29kZXI6OkNvZGVSZWFsKElTZXF1ZW50aWFsSW5TdHJlYW0gKmluU3RyZWFtLCBJU2VxdWVu dGlhbE91dFN0cmVhbSAqCi0gICAgIHsKLSAgICAgICBfc3RhY2tbaSsrXSA9IF9zdWZmaXhlc1tj dXJdOwotICAgICAgIGN1ciA9IF9wYXJlbnRzW2N1cl07Ci0tICAgIH0KLSsgICAgICBpZiAoaSA+ PSBrTnVtSXRlbXMpCi0rICAgICAgICBicmVhazsKLSsgICAgIH0KLSsKLSsgICAgaWYgKGkgPj0g a051bUl0ZW1zKQotKyAgICAgIGJyZWFrOwotICAgICAKLSAgICAgX3N0YWNrW2krK10gPSAoQnl0 ZSljdXI7Ci0gICAgIGxhc3RDaGFyMiA9IChCeXRlKWN1cjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cDd6aXAvdGVtcGxhdGUgYi9zcmNwa2dzL3A3emlwL3RlbXBsYXRlCmluZGV4IDU0ZTkwMWY1MTAy OS4uNzIyZmI3ZTE2NzZhIDEwMDY0NAotLS0gYS9zcmNwa2dzL3A3emlwL3RlbXBsYXRlCisrKyBi L3NyY3BrZ3MvcDd6aXAvdGVtcGxhdGUKQEAgLTEsMTUgKzEsMTUgQEAKICMgVGVtcGxhdGUgZmls ZSBmb3IgJ3A3emlwJwogcGtnbmFtZT1wN3ppcAotdmVyc2lvbj0xNi4wMgotcmV2aXNpb249NQot d3Jrc3JjPSIke3BrZ25hbWV9XyR7dmVyc2lvbn0iCit2ZXJzaW9uPTE3LjA0CityZXZpc2lvbj0x CiBob3N0bWFrZWRlcGVuZHM9Inlhc20gbmFzbSIKIHNob3J0X2Rlc2M9IkNvbW1hbmQtbGluZSB2 ZXJzaW9uIG9mIHRoZSA3emlwIGNvbXByZXNzZWQgZmlsZSBhcmNoaXZlIgotbWFpbnRhaW5lcj0i T3JwaGFuZWQgPG9ycGhhbkB2b2lkbGludXgub3JnPiIKK21haW50YWluZXI9ImJpb3BzaW4gPGJp b3BzaW5AdGVrbmlrLmlvPiIKIGxpY2Vuc2U9IkxHUEwtMi4xLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHA6Ly9wN3ppcC5zb3VyY2Vmb3JnZS5uZXQvIgotZGlzdGZpbGVzPSIke1NPVVJDRUZPUkdF X1NJVEV9LyR7cGtnbmFtZX0vJHtwa2duYW1lfV8ke3ZlcnNpb259X3NyY19hbGwudGFyLmJ6MiIK LWNoZWNrc3VtPTVlYjIwYWMwZTI5NDRmNmNiOWMyZDUxZGQ2YzQ1MTg5NDFjMTg1MzQ3ZDQwODll YTg5MDg3ZmZkZDZlMjM0MWYKK2NoYW5nZWxvZz0iaHR0cHM6Ly9naXRodWIuY29tL2ppbmZlaWhh bjU3L3A3emlwL2Jsb2IvbWFzdGVyL0NoYW5nZUxvZyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9naXRo dWIuY29tL2ppbmZlaWhhbjU3L3A3emlwL2FyY2hpdmUvdiR7dmVyc2lvbn0udGFyLmd6IgorY2hl Y2tzdW09ZWEwMjlhMmUyMWQyZDZhZDBhMTU2ZjY2NzliZDY2ODM2MjA0YWE3ODE0OGE0YzVlNDk4 ZmU2ODJlNzcxMjdlZgogCiBkb19jb25maWd1cmUoKSB7CiAJY2FzZSAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiIGluCkBAIC0yMSw3ICsyMSw3IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAlzZWQgLWUgInMs Z2NjLCR7Q0N9LCIgLWkgbWFrZWZpbGUubWFjaGluZQogfQogZG9fYnVpbGQoKSB7Ci0JbWFrZSBh bGwzIE9QVEZMQUdTPSIkQ1hYRkxBR1MiICR7bWFrZWpvYnN9CisJbWFrZSBhbGwyIE9QVEZMQUdT PSIkQ1hYRkxBR1MiICR7bWFrZWpvYnN9CiB9CiBkb19pbnN0YWxsKCkgewogCW1ha2UgaW5zdGFs bCBERVNUX0RJUj0iJHtERVNURElSfSIgREVTVF9IT01FPSIvdXNyIiBcCg== --===============4998119003620379603==--