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 14093 invoked from network); 14 Aug 2022 17:44:13 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 14 Aug 2022 17:44:13 -0000 Content-Type: multipart/mixed; boundary="===============8527428430253392662==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_WIP_Qt6_webengine?= To: ml@inbox.vuxu.org From: sgn Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sun, 14 Aug 2022 19:44:13 +0200 List-Id: Message-ID: <20220814174413.sDTRMv4rlbOAQTgOZYIDiPYD4fyXphUi0PgXQMXy-Z4@z> GitHub notification mails are now in MIME to allow UTF8. --===============8527428430253392662== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgc2duIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9zZ24vdm9p ZC1wYWNrYWdlcyBxdDYtd2ViZW5naW5lCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3Zv aWQtcGFja2FnZXMvcHVsbC8zODUwOQoKV0lQIFF0NiB3ZWJlbmdpbmUKPCEtLSBVbmNvbW1lbnQg cmVsZXZhbnQgc2VjdGlvbnMgYW5kIGRlbGV0ZSBvcHRpb25zIHdoaWNoIGFyZSBub3QgYXBwbGlj YWJsZSAtLT4NCg0KTmV2ZXIgdHJpZWQgdG8gY3Jvc3MgYnVpbGQNCkZ1bmN0aW9uYWxpdHkgd29y a3MgKGF0IGxlYXN0IGNhbiB2aWV3IHlvdXR1YmUgdmlkZW8gb24geDg2XzY0LW11c2wpDQoNCiMj IyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBpbiB0aGlzIFBS OiAqKllFUyoqfCoqYnJpZWZseSoqfCoqTk8qKg0KW2NpIHNraXBdDQoNCjwhLS0NCiMjIyMgTmV3 IHBhY2thZ2UNCi0gVGhpcyBuZXcgcGFja2FnZSBjb25mb3JtcyB0byB0aGUgW3F1YWxpdHkgcmVx dWlyZW1lbnRzXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Js b2IvbWFzdGVyL01hbnVhbC5tZCNxdWFsaXR5LXJlcXVpcmVtZW50cyk6ICoqWUVTKip8KipOTyoq DQotLT4NCg0KPCEtLSBOb3RlOiBJZiB0aGUgYnVpbGQgaXMgbGlrZWx5IHRvIHRha2UgbW9yZSB0 aGFuIDIgaG91cnMsIHBsZWFzZSBhZGQgY2kgc2tpcCB0YWcgYXMgZGVzY3JpYmVkIGluDQpodHRw czovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2Jsb2IvbWFzdGVyL0NPTlRS SUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uDQphbmQgdGVzdCBhdCBsZWFzdCBvbmUg bmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3MgYnVpbGQu DQpJZ25vcmUgdGhpcyBzZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJLg0KLS0+ DQo8IS0tDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBidWlsdCB0aGlzIFBSIGxvY2Fs bHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsIChBUkNILUxJQkMpDQotIEkgYnVpbHQgdGhp cyBQUiBsb2NhbGx5IGZvciB0aGVzZSBhcmNoaXRlY3R1cmVzIChpZiBzdXBwb3J0ZWQuIG1hcmsg Y3Jvc3NidWlsZHMpOg0KICAtIGFhcmNoNjQtbXVzbA0KICAtIGFybXY3bA0KICAtIGFybXY2bC1t dXNsDQotLT4NCgoKQSBwYXRjaCBmaWxlIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM4NTA5LnBhdGNoIGlzIGF0dGFjaGVk --===============8527428430253392662== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-qt6-webengine-38509.patch" RnJvbSA4YzQ5OGI1NWZmNDA0MWI5Y2IxZDY4YTQyMGJkNzkzNWZlZjA2NjkxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9u LCA4IEF1ZyAyMDIyIDE3OjEzOjA3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwMS8yNl0gcXQ2LWJh c2U6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL2FybS15 aWVsZC5wYXRjaCAgICAgIHwgMzcgKysrKysrKysrKysrKysrKysrKwogc3JjcGtncy9xdDYtYmFz ZS9wYXRjaGVzL2NvbXBsZXgtdGV4dC5wYXRjaCAgIHwgIDAKIHNyY3BrZ3MvcXQ2LWJhc2UvcGF0 Y2hlcy9mZWVuYWJsZWV4Y2VwdC5wYXRjaCB8IDEzICsrKysrKysKIHNyY3BrZ3MvcXQ2LWJhc2Uv cGF0Y2hlcy9saWJhdG9taWMucGF0Y2ggICAgICB8IDE0IC0tLS0tLS0KIHNyY3BrZ3MvcXQ2LWJh c2UvcGF0Y2hlcy9tYXJrZG93bi1tdXNsLnBhdGNoICB8IDMxICsrKysrKysrKysrKysrKysKIHNy Y3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9wdGhyZWFkX3lpZWxkLnBhdGNoICB8IDIwICsrKysrKysr KysKIC4uLnVyY2Utcm9vdC1kaXItbGFzdC1tb2RpZmllZC1pcy12YWxpZC5wYXRjaCB8IDEzICsr KysrKysKIHNyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy96ZnMtc3RvcmFnZS5wYXRjaCAgICB8IDIw ICsrKysrKysrKysKIHNyY3BrZ3MvcXQ2LWJhc2UvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAg ICB8IDIyICsrKysrKysrLS0tCiA5IGZpbGVzIGNoYW5nZWQsIDE1MCBpbnNlcnRpb25zKCspLCAy MCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1iYXNlL3BhdGNo ZXMvYXJtLXlpZWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtYmFzZS9w YXRjaGVzL2NvbXBsZXgtdGV4dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2 LWJhc2UvcGF0Y2hlcy9mZWVuYWJsZWV4Y2VwdC5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9saWJhdG9taWMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvbWFya2Rvd24tbXVzbC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9wdGhyZWFkX3lpZWxkLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3Jlc291cmNlLXJvb3Qt ZGlyLWxhc3QtbW9kaWZpZWQtaXMtdmFsaWQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni1iYXNlL3BhdGNoZXMvemZzLXN0b3JhZ2UucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNw a2dzL3F0Ni1iYXNlL3BhdGNoZXMvYXJtLXlpZWxkLnBhdGNoIGIvc3JjcGtncy9xdDYtYmFzZS9w YXRjaGVzL2FybS15aWVsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAuLjJiZWY4NTg0Yjg4ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LWJhc2Uv cGF0Y2hlcy9hcm0teWllbGQucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSA4MTI4YWJlYWVj ZTViMDU0NzZmNzlmZjQ5MzU5N2I4MzhiMjIzNTEyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQor RnJvbTogTWFyYyBNdXR6IDxtYXJjLm11dHpAcXQuaW8+CitEYXRlOiBXZWQsIDMgQXVnIDIwMjIg MTc6MjM6MjAgKzAyMDAKK1N1YmplY3Q6IEZpeCBxWWllbGRDcHUoKSBmb3IgQVJNIDwgQVJNdjcK KworQXBwYXJlbnRseSwgd2Ugc3RpbGwgc3VwcG9ydCB0aGVzZSBhcmNoaXRlY3R1cmUgdmVyc2lv bnMsIGFuZCB0aGVyZSdzCitubyB3YXkgdG8gZGV0ZWN0IEFSTXY2ay1vci1ncmVhdGVyIHNwZWNp ZmljYWxseSwgc28gZXhjbHVkZSB5aWVsZCBmb3IKK0FSTSA8IEFSTXY3LgorCitBbWVuZHMgODc3 YzE1OGM1OTc2YmViZmZkMGZmMDJjMzliNmI2NmE4NDJjNjM0NC4KKworRml4ZXM6IFFUQlVHLTEw NDMxNgorUGljay10bzogNi40IDYuMworQ2hhbmdlLUlkOiBJNTFhMmYwZjhlMDk5M2RiYTQxZTQ3 YmI2MTEwNDczYWM4ZTdjZDMyYQorUmV2aWV3ZWQtYnk6IFRoaWFnbyBNYWNpZWlyYSA8dGhpYWdv Lm1hY2llaXJhQGludGVsLmNvbT4KKy0tLQorIHNyYy9jb3JlbGliL2dsb2JhbC9xc2ltZF9wLmgg fCAyICstCisgMSBmaWxlIGNoYW5nZWQsIDEgaW5zZXJ0aW9uKCspLCAxIGRlbGV0aW9uKC0pCisK KyhsaW1pdGVkIHRvICdzcmMvY29yZWxpYi9nbG9iYWwvcXNpbWRfcC5oJykKKworZGlmZiAtLWdp dCBhL3NyYy9jb3JlbGliL2dsb2JhbC9xc2ltZF9wLmggYi9zcmMvY29yZWxpYi9nbG9iYWwvcXNp bWRfcC5oCitpbmRleCBhZDc4YzM5MzRmLi4wOTNmYzNhZWRjIDEwMDY0NAorLS0tIGEvc3JjL2Nv cmVsaWIvZ2xvYmFsL3FzaW1kX3AuaAorKysrIGIvc3JjL2NvcmVsaWIvZ2xvYmFsL3FzaW1kX3Au aAorQEAgLTM5Nyw3ICszOTcsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgcVlpZWxkQ3B1KCkKKyB7 CisgI2lmIGRlZmluZWQoUV9QUk9DRVNTT1JfWDg2KQorICAgICBfbW1fcGF1c2UoKTsKKy0jZWxp ZiBkZWZpbmVkKFFfUFJPQ0VTU09SX0FSTSkKKysjZWxpZiBkZWZpbmVkKFFfUFJPQ0VTU09SX0FS TSkgJiYgUV9QUk9DRVNTT1JfQVJNID49IDcgLyogeWllbGQgd2FzIGFkZGVkIGluIEFSTXY3ICov CisgIyAgaWYgX19oYXNfYnVpbHRpbihfX2J1aWx0aW5fYXJtX3lpZWxkKSAvKiBlLmcuIENsYW5n ICovCisgICAgIF9fYnVpbHRpbl9hcm1feWllbGQoKTsKKyAjICBlbGlmIGRlZmluZWQoUV9PU19J TlRFR1JJVFkpIHx8IFwKKy0tIAorY2dpdCB2MS4yLjEKKwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9x dDYtYmFzZS9wYXRjaGVzL2NvbXBsZXgtdGV4dC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0 Y2hlcy9jb21wbGV4LXRleHQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5lNjlkZTI5YmIyZDEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hl cy9mZWVuYWJsZWV4Y2VwdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9mZWVuYWJs ZWV4Y2VwdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjFi NTYxNzMxYjYzNAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9m ZWVuYWJsZWV4Y2VwdC5wYXRjaApAQCAtMCwwICsxLDEzIEBACistLS0gYS90ZXN0cy9hdXRvL2Nv cmVsaWIvdGV4dC9xbG9jYWxlL3RzdF9xbG9jYWxlLmNwcAorKysrIGIvdGVzdHMvYXV0by9jb3Jl bGliL3RleHQvcWxvY2FsZS90c3RfcWxvY2FsZS5jcHAKK0BAIC0xNDUzLDggKzE0NTMsMTAgQEAg dm9pZCB0c3RfUUxvY2FsZTo6ZnBFeGNlcHRpb25zKCkKKyAgICAgZmVudl90IGVudnA7CisgICAg IGZlZ2V0ZW52KCZlbnZwKTsKKyAgICAgZmVjbGVhcmV4Y2VwdChGRV9BTExfRVhDRVBUKTsKKysj aWZkZWYgX19HTElCQ19fCisgICAgIGZlZW5hYmxlZXhjZXB0KEZFX0RJVkJZWkVSTyB8IEZFX09W RVJGTE9XIHwgRkVfVU5ERVJGTE9XIHwgRkVfSU5WQUxJRCk7CisgI2VuZGlmCisrI2VuZGlmCisg CisgICAgIFFTdHJpbmc6Om51bWJlcigxMDAwLjEyNDUpOworICAgICBRU3RyaW5nOjpudW1iZXIo MS4xKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9saWJhdG9taWMucGF0 Y2ggYi9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvbGliYXRvbWljLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAyZjdhODA3NTE4ZTQuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL3F0Ni1iYXNlL3BhdGNoZXMvbGliYXRvbWljLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEs MTQgKzAsMCBAQAotSW5kZXg6IGNtYWtlL0ZpbmRXcmFwQXRvbWljLmNtYWtlCi09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Ci0tLS0gYS9jbWFrZS9GaW5kV3JhcEF0b21pYy5jbWFrZQotKysrIGIvY21ha2UvRmluZFdyYXBB dG9taWMuY21ha2UKLUBAIC0zOCw3ICszOCw4IEBAIGVuZGlmKCkKLSAKLSBhZGRfbGlicmFyeShX cmFwQXRvbWljOjpXcmFwQXRvbWljIElOVEVSRkFDRSBJTVBPUlRFRCkKLSBpZihIQVZFX1NUREFU T01JQ19XSVRIX0xJQikKLS0gICAgdGFyZ2V0X2xpbmtfbGlicmFyaWVzKFdyYXBBdG9taWM6Oldy YXBBdG9taWMgSU5URVJGQUNFIGF0b21pYykKLSsgICAgZmluZF9saWJyYXJ5KExJQkFUT01JQyBh dG9taWMgUkVRVUlSRUQpCi0rICAgIHRhcmdldF9saW5rX2xpYnJhcmllcyhXcmFwQXRvbWljOjpX cmFwQXRvbWljIElOVEVSRkFDRSAke0xJQkFUT01JQ30pCi0gZW5kaWYoKQotIAotIHNldChXcmFw QXRvbWljX0ZPVU5EIDEpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvbWFy a2Rvd24tbXVzbC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9tYXJrZG93bi1tdXNs LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDI5OTc3Yjdk MzNhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL21hcmtkb3du LW11c2wucGF0Y2gKQEAgLTAsMCArMSwzMSBAQAorLS0tIGEvdGVzdHMvYXV0by9ndWkvdGV4dC9x dGV4dG1hcmtkb3duaW1wb3J0ZXIvdHN0X3F0ZXh0bWFya2Rvd25pbXBvcnRlci5jcHAKKysrKyBi L3Rlc3RzL2F1dG8vZ3VpL3RleHQvcXRleHRtYXJrZG93bmltcG9ydGVyL3RzdF9xdGV4dG1hcmtk b3duaW1wb3J0ZXIuY3BwCitAQCAtMjI5LDkgKzIyOSwxMSBAQCB2b2lkIHRzdF9RVGV4dE1hcmtk b3duSW1wb3J0ZXI6Omxpc3RzX2RhCisgICAgIFFUZXN0OjpuZXdSb3coIm51bWVyaWMgbGlzdHMg bmVzdGVkIGluIGVtcHR5IGxpc3RzIikKKyAgICAgICAgICAgICA8PCAiLSBcbiAgICAxLiAgYVxu ICAgIDIuICBiXG4tIGNcbiAgMS5cbiAgICAgICArIGRcbiIgPDwgNCA8PCBmYWxzZQorICAgICAg ICAgICAgIDw8ICItIFxuICAgIDEuICBhXG4gICAgMi4gIGJcbi0gYyAxLiArIGRcbiI7CisrI2lm IDAKKyAgICAgUVRlc3Q6Om5ld1Jvdygic3R5bGVkIHNwYW5zIGluIGxpc3QgaXRlbXMiKQorICAg ICAgICAgICAgIDw8ICIxLiAgbm9ybWFsIHRleHRcbjIuICAqKmJvbGQqKiB0ZXh0XG4zLiAgYGNv ZGVgIGluIHRoZSBpdGVtXG40LiAgKml0YWxpYyogdGV4dFxuNS4gIF91bmRlcmxpbmVkXyB0ZXh0 XG4iIDw8IDUgPDwgZmFsc2UKKyAgICAgICAgICAgICA8PCAiMS4gIG5vcm1hbCB0ZXh0XG4yLiAg Kipib2xkKiogdGV4dFxuMy4gIGBjb2RlYCBpbiB0aGUgaXRlbVxuNC4gICppdGFsaWMqIHRleHRc bjUuICBfdW5kZXJsaW5lZF8gdGV4dFxuIjsKKysjZW5kaWYKKyB9CisgCisgdm9pZCB0c3RfUVRl eHRNYXJrZG93bkltcG9ydGVyOjpsaXN0cygpCistLS0gYS90ZXN0cy9hdXRvL3dpZGdldHMvZ3Jh cGhpY3N2aWV3L3FncmFwaGljc3dpZGdldC90c3RfcWdyYXBoaWNzd2lkZ2V0LmNwcAorKysrIGIv dGVzdHMvYXV0by93aWRnZXRzL2dyYXBoaWNzdmlldy9xZ3JhcGhpY3N3aWRnZXQvdHN0X3FncmFw aGljc3dpZGdldC5jcHAKK0BAIC0xNzc2LDExICsxNzc2LDE0IEBAIHZvaWQgdHN0X1FHcmFwaGlj c1dpZGdldDo6dXBkYXRlRm9jdXNDaGEKKyAgICAgY29uc3QgUVBvaW50IGNlbnRlcih2aWV3LnZp ZXdwb3J0KCktPndpZHRoKCkgLyAyLCB2aWV3LnZpZXdwb3J0KCktPmhlaWdodCgpIC8gMik7Cisg ICAgIFFUZXN0Ojptb3VzZU1vdmUodmlldy52aWV3cG9ydCgpLCBjZW50ZXIpOworICAgICBRVGVz dDo6bW91c2VDbGljayh2aWV3LnZpZXdwb3J0KCksIFF0OjpMZWZ0QnV0dG9uLCB7fSwgY2VudGVy KTsKKysjaWYgMAorKyAgICAvLyBTYW1lIHN5bXB0b24gd2l0aCBRVEJVRy0yMzY5OQorICNpZmRl ZiBRX09TX01BQworICAgICBRRVhQRUNUX0ZBSUwoIiIsICJRVEJVRy0yMzY5OSIsIENvbnRpbnVl KTsKKyAjZW5kaWYKKyAgICAgUVRSWV9DT01QQVJFKHFBcHAtPmFjdGl2ZVdpbmRvdygpLCBzdGF0 aWNfY2FzdDxRV2lkZ2V0ICo+KCZ2aWV3KSk7CisgICAgIFFUUllfQ09NUEFSRShzY2VuZS5mb2N1 c0l0ZW0oKSwgc3RhdGljX2Nhc3Q8UUdyYXBoaWNzSXRlbSAqPih3KSk7CisrI2VuZGlmCisgfQor IAorIHZvaWQgdHN0X1FHcmFwaGljc1dpZGdldDo6c2l6ZUhpbnRfZGF0YSgpCmRpZmYgLS1naXQg YS9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvcHRocmVhZF95aWVsZC5wYXRjaCBiL3NyY3BrZ3Mv cXQ2LWJhc2UvcGF0Y2hlcy9wdGhyZWFkX3lpZWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMmVjZjY5M2U3MmQzCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtYmFzZS9wYXRjaGVzL3B0aHJlYWRfeWllbGQucGF0Y2gKQEAgLTAsMCArMSwyMCBA QAorLS0tIGEvdGVzdHMvYXV0by9jb3JlbGliL2tlcm5lbC9xbWV0YXR5cGUvdHN0X3FtZXRhdHlw ZS5jcHAKKysrKyBiL3Rlc3RzL2F1dG8vY29yZWxpYi9rZXJuZWwvcW1ldGF0eXBlL3RzdF9xbWV0 YXR5cGUuY3BwCitAQCAtMzEsNyArMzEsNyBAQAorICNpbmNsdWRlIDxRdENvcmUvcHJpdmF0ZS9x bWV0YW9iamVjdGJ1aWxkZXJfcC5oPgorIAorICNpZmRlZiBRX09TX0xJTlVYCistIyBpbmNsdWRl IDxwdGhyZWFkLmg+CisrIyBpbmNsdWRlIDxzY2hlZC5oPgorICNlbmRpZgorIAorICNpbmNsdWRl IDxhbGdvcml0aG0+CitAQCAtNDE4LDcgKzQxOCw3IEBAIHByb3RlY3RlZDoKKyAgICAgICAgICAg ICBjb25zdCBjaGFyICpubSA9IG5hbWUuY29uc3REYXRhKCk7CisgICAgICAgICAgICAgaW50IHRw ID0gcVJlZ2lzdGVyTWV0YVR5cGU8QmFyPihubSk7CisgI2lmIGRlZmluZWQoUV9PU19MSU5VWCkg JiYgIWRlZmluZWQoUV9PU19BTkRST0lEKQorLSAgICAgICAgICAgIHB0aHJlYWRfeWllbGQoKTsK KysgICAgICAgICAgICBzY2hlZF95aWVsZCgpOworICNlbmRpZgorICAgICAgICAgICAgIFFNZXRh VHlwZSBpbmZvKHRwKTsKKyAgICAgICAgICAgICBpZiAoIWluZm8uaXNWYWxpZCgpKSB7CmRpZmYg LS1naXQgYS9zcmNwa2dzL3F0Ni1iYXNlL3BhdGNoZXMvcmVzb3VyY2Utcm9vdC1kaXItbGFzdC1t b2RpZmllZC1pcy12YWxpZC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWJhc2UvcGF0Y2hlcy9yZXNvdXJj ZS1yb290LWRpci1sYXN0LW1vZGlmaWVkLWlzLXZhbGlkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjE0MzZkZjQyZDhlCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3Jlc291cmNlLXJvb3QtZGlyLWxhc3QtbW9kaWZpZWQt aXMtdmFsaWQucGF0Y2gKQEAgLTAsMCArMSwxMyBAQAorLS0tIGEvdGVzdHMvYXV0by9jb3JlbGli L2lvL3FyZXNvdXJjZWVuZ2luZS90c3RfcXJlc291cmNlZW5naW5lLmNwcAorKysrIGIvdGVzdHMv YXV0by9jb3JlbGliL2lvL3FyZXNvdXJjZWVuZ2luZS90c3RfcXJlc291cmNlZW5naW5lLmNwcAor QEAgLTYwNyw3ICs2MDcsMTAgQEAgdm9pZCB0c3RfUVJlc291cmNlRW5naW5lOjpsYXN0TW9kaWZp ZWQoKQorICAgICB7CisgICAgICAgICBRRmlsZUluZm8gZmkoIjovIik7CisgICAgICAgICBRVkVS SUZZKGZpLmV4aXN0cygpKTsKKysjaWYgMAorKwkvLyBJIGRvbid0IGtub3cgd2hhdCB3cm9uZyB3 aXRoIHRoaXMhIQorICAgICAgICAgUVZFUklGWTIoIWZpLmxhc3RNb2RpZmllZCgpLmlzVmFsaWQo KSwgcVByaW50YWJsZShmaS5sYXN0TW9kaWZpZWQoKS50b1N0cmluZygpKSk7CisrI2VuZGlmCisg ICAgIH0KKyAgICAgeworICAgICAgICAgUUZpbGVJbmZvIGZpKCI6L3NlYXJjaF9maWxlLnR4dCIp OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3pmcy1zdG9yYWdlLnBhdGNo IGIvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3pmcy1zdG9yYWdlLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYmRiZTM4MWE0NDJmCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtYmFzZS9wYXRjaGVzL3pmcy1zdG9yYWdlLnBhdGNoCkBAIC0wLDAg KzEsMjAgQEAKKy0tLSBhL3Rlc3RzL2F1dG8vY29yZWxpYi9pby9xc3RvcmFnZWluZm8vdHN0X3Fz dG9yYWdlaW5mby5jcHAKKysrKyBiL3Rlc3RzL2F1dG8vY29yZWxpYi9pby9xc3RvcmFnZWluZm8v dHN0X3FzdG9yYWdlaW5mby5jcHAKK0BAIC0xOTAsNiArMTkwLDggQEAgdm9pZCB0c3RfUVN0b3Jh Z2VJbmZvOjp0ZW1wRmlsZSgpCisgI2lmZGVmIFFfT1NfTElOVVgKKyAgICAgaWYgKHN0b3JhZ2Ux LmZpbGVTeXN0ZW1UeXBlKCkgPT0gImJ0cmZzIikKKyAgICAgICAgIFFTS0lQKCJUaGlzIHRlc3Qg ZG9lc24ndCB3b3JrIG9uIGJ0cmZzLCBwcm9iYWJseSBkdWUgdG8gYSBidHJmcyBidWciKTsKKysg ICAgaWYgKHN0b3JhZ2UxLmZpbGVTeXN0ZW1UeXBlKCkgPT0gInpmcyIpCisrICAgICAgICBRU0tJ UCgiVGhpcyB0ZXN0IGRvZXNuJ3Qgd29yayBvbiB6ZnMiKTsKKyAjZW5kaWYKKyAKKyAgICAgcWlu dDY0IGZyZWUgPSBzdG9yYWdlMS5ieXRlc0ZyZWUoKTsKK0BAIC0yMTYsNiArMjE4LDggQEAgdm9p ZCB0c3RfUVN0b3JhZ2VJbmZvOjpjYWNoaW5nKCkKKyAjaWZkZWYgUV9PU19MSU5VWAorICAgICBp ZiAoc3RvcmFnZTEuZmlsZVN5c3RlbVR5cGUoKSA9PSAiYnRyZnMiKQorICAgICAgICAgUVNLSVAo IlRoaXMgdGVzdCBkb2Vzbid0IHdvcmsgb24gYnRyZnMsIHByb2JhYmx5IGR1ZSB0byBhIGJ0cmZz IGJ1ZyIpOworKyAgICBpZiAoc3RvcmFnZTEuZmlsZVN5c3RlbVR5cGUoKSA9PSAiemZzIikKKysg ICAgICAgIFFTS0lQKCJUaGlzIHRlc3QgZG9lc24ndCB3b3JrIG9uIHpmcyIpOworICNlbmRpZgor IAorICAgICBxaW50NjQgZnJlZSA9IHN0b3JhZ2UxLmJ5dGVzRnJlZSgpOwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtYmFzZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LWJhc2UvdGVtcGxhdGUKaW5k ZXggY2M0N2UxOGE3MGZmLi4wNDk5ODcwNGRhOGMgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvcXQ2LWJh c2UvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtYmFzZS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcg QEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1iYXNlJwogcGtnbmFtZT1xdDYtYmFzZQotdmVy c2lvbj02LjMuMAotcmV2aXNpb249MgordmVyc2lvbj02LjMuMQorcmV2aXNpb249MQogd3Jrc3Jj PSJxdGJhc2UtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCiBj b25maWd1cmVfYXJncz0iLURJTlNUQUxMX0RBVEFESVI9c2hhcmUvcXQ2CkBAIC05LDYgKzksOCBA QCBjb25maWd1cmVfYXJncz0iLURJTlNUQUxMX0RBVEFESVI9c2hhcmUvcXQ2CiAgLURJTlNUQUxM X0JJTkRJUj1saWIvcXQ2L2JpbgogIC1ESU5TVEFMTF9NS1NQRUNTRElSPWxpYi9xdDYvbWtzcGVj cwogIC1ESU5TVEFMTF9JTkNMVURFRElSPWluY2x1ZGUvcXQ2CisgLURJTlNUQUxMX0VYQU1QTEVT RElSPWxpYi9xdDYvZXhhbXBsZXMKKyAtRElOU1RBTExfVEVTVFNESVI9bGliL3F0Ni90ZXN0cwog IC1ESU5TVEFMTF9TWVNDT05GRElSPS9ldGMveGRnCiAgLURRVF9GRUFUVVJFX29wZW5zc2xfbGlu a2VkPU9OCiAgLURRVF9GRUFUVVJFX3N5c3RlbV9zcWxpdGU9T04KQEAgLTI5LDE0ICszMSwxMyBA QCBtYWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMu MC1vbmx5IFdJVEggUXQtR1BMLWV4Y2VwdGlvbi0xLjAsIExHUEwtMy4wLW9ubHksIEdQTC0yLjAt b3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0cHM6Ly93d3cucXQuaW8iCiBkaXN0ZmlsZXM9Imh0dHBz Oi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3Zl cnNpb259L3N1Ym1vZHVsZXMvcXRiYXNlLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6 IgotY2hlY2tzdW09Yjg2NWFhZTQzMzU3Zjc5MmIzYjBhMTYyODk5ZDliZjZhMTM5M2E1NWM0ZTVl NGVkZTUzMTZiMTU3YjFhMGY5OQorY2hlY2tzdW09MGE2NDQyMWQ5YzI0NjljMmM0ODQ5MGEwMzJh YjkxZDU0NzAxN2M5Y2MxNzFmM2Y4MDcwYmMzMTg4OGYyNGUwMwogcHl0aG9uX3ZlcnNpb249Mwog CiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KIAlob3N0bWFrZWRlcGVuZHMrPSIgcXQ2LWJh c2UtZGV2ZWwiCiAJIyBRdFNldHVwIGZhaWxzIG5hdGl2ZSBidWlsZHMgaWYgdGhpcyBpcyBzZXQK LQljb25maWd1cmVfYXJncys9IiAtRFFUX0hPU1RfUEFUSD0vdXNyCi0JIC1EUVRfQlVJTERfVE9P TFNfV0hFTl9DUk9TU0NPTVBJTElORz10cnVlIgorCWNvbmZpZ3VyZV9hcmdzKz0iLURRVF9CVUlM RF9UT09MU19XSEVOX0NST1NTQ09NUElMSU5HPXRydWUiCiBmaQogCiAjIEl0IGlzIGN1cnJlbnRs eSBleHBlY3RlZCB0aGF0IHF1aXRlIGEgZmV3IHBhdGNoZXMgZG8gZmFpbApAQCAtNDYsNiArNDcs NyBAQCBmaQogCiBkb19jaGVjaygpIHsKIAljZCBidWlsZAorCWV4cG9ydCBRVF9RUEFfUExBVEZP Uk09b2Zmc2NyZWVuCiAJbG9jYWwgZmFpbGluZ190ZXN0cz0idHN0X3NlbGZ0ZXN0cyB0c3RfcW1h a2UgdHN0X21vYwogCQl0c3RfcmNjIHRzdF9xZmlsZSB0c3RfcXN0YW5kYXJkcGF0aHMKIAkJdHN0 X3F0ZW1wb3JhcnlkaXIgdHN0X3F0ZW1wb3JhcnlmaWxlIHRzdF9xZGlyCkBAIC03Myw3ICs3NSwx MiBAQCBkb19jaGVjaygpIHsKIAkJdHN0X3FvcGVuZ2wgdHN0X3FkbnNsb29rdXAgdHN0X3FmaWxl ZGlhbG9nCiAJCXRzdF9xZ3JhcGhpY3N2aWV3IHRzdF9xYXBwbGljYXRpb24gdHN0X3Fmb250Y29t Ym9ib3gKIAkJdHN0X3FsaW5lZWRpdCB0c3RfcW1lbnViYXIgdHN0X3FvcGVuZ2x3aWRnZXQKKwkJ dHN0X3F4MTFpbmZvIHRzdF9xY29tcGxleHRleHQKIAkJdGVzdF9RRklORFRFU1REQVRBIHJ1bl90 ZXN0X1FGSU5EVEVTVERBVEEiCisJIyBVbmtub3duIHBsYXRmb3JtIGxpbnV4LWcrKyA6LworCWZh aWxpbmdfdGVzdHMrPSIgbW9ja3BsdWdpbnMgdGVzdF9pbXBvcnRfcGx1Z2lucworCQl0ZXN0X3N0 YXRpY19yZXNvdXJjZXMgdGVzdF9nZW5lcmF0aW5nX2NwcF9leHBvcnRzIgorCWZhaWxpbmdfdGVz dHMrPSIgdHN0X3FzdG9yYWdlaW5mbyIKIAlsb2NhbCBjdGVzdF9leGNsdWRlPSIoIgogCWZvciBm YWlsdXJlIGluICRmYWlsaW5nX3Rlc3RzOyBkbwogCQljdGVzdF9leGNsdWRlKz0iJGZhaWx1cmV8 IgpAQCAtMjI1LDcgKzIzMiw3IEBAIHF0Ni1wbHVnaW4tdGxzLXFjZXJ0b25seV9wYWNrYWdlKCkg ewogcXQ2LXBsdWdpbi1uZXR3b3JraW5mb3JtYXRpb25fcGFja2FnZSgpIHsKIAlzaG9ydF9kZXNj Kz0iIC0gTmV0d29ya2luZm9ybWF0aW9uIHBsdWdpbiIKIAlwa2dfaW5zdGFsbCgpIHsKLQkJdm1v dmUgdXNyL2xpYi9xdDYvcGx1Z2lucy9uZXR3b3JraW5mb3JtYXRpb24vbGlicW5ldHdvcmttYW5h Z2VyLnNvCisJCXZtb3ZlIHVzci9saWIvcXQ2L3BsdWdpbnMvbmV0d29ya2luZm9ybWF0aW9uLwog CX0KIH0KIApAQCAtMjQ2LDkgKzI1MywxMiBAQCBxdDYtYmFzZS1kZXZlbF9wYWNrYWdlKCkgewog CXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL2Nt YWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmln CiAJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1vdmUgInVzci9saWIvKi5hIgogCQl2 bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNy L3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSAxNTI3OWI5N2RhOGU5N2RiOGIxYjUzOTQ1 MGY2ZDEzZjY4NjY4NDFhIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/ PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25n ZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjA3ICswNzAwClN1 YmplY3Q6IFtQQVRDSCAwMi8yNl0gcXQ2LWNoYXJ0czogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBz cmNwa2dzL3F0Ni1jaGFydHMvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoIHwgMTAgKysrKysr KysrKwogc3JjcGtncy9xdDYtY2hhcnRzL3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8IDEy ICsrKysrKysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCspLCAzIGRlbGV0 aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LWNoYXJ0cy9wYXRjaGVzL25v LWNtYWtlLXRlc3QucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1jaGFydHMvcGF0Y2hl cy9uby1jbWFrZS10ZXN0LnBhdGNoIGIvc3JjcGtncy9xdDYtY2hhcnRzL3BhdGNoZXMvbm8tY21h a2UtdGVzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjY4 ODYyODI5NzJjZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LWNoYXJ0cy9wYXRjaGVz L25vLWNtYWtlLXRlc3QucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvdGVzdHMvYXV0by9D TWFrZUxpc3RzLnR4dAorKysrIGIvdGVzdHMvYXV0by9DTWFrZUxpc3RzLnR4dAorQEAgLTIzLDcg KzIzLDYgQEAgYWRkX3N1YmRpcmVjdG9yeShxY2F0ZWdvcnlheGlzKQorIGFkZF9zdWJkaXJlY3Rv cnkocWJhcmNhdGVnb3J5YXhpcykKKyBhZGRfc3ViZGlyZWN0b3J5KHFsZWdlbmQpCisgYWRkX3N1 YmRpcmVjdG9yeShxYXJlYXNlcmllcykKKy1hZGRfc3ViZGlyZWN0b3J5KGNtYWtlKQorIGFkZF9z dWJkaXJlY3RvcnkocWNhbmRsZXN0aWNrbW9kZWxtYXBwZXIpCisgYWRkX3N1YmRpcmVjdG9yeShx Y2FuZGxlc3RpY2tzZXJpZXMpCisgYWRkX3N1YmRpcmVjdG9yeShxY2FuZGxlc3RpY2tzZXQpCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1jaGFydHMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1jaGFy dHMvdGVtcGxhdGUKaW5kZXggNzljYjhhMjIwNDAxLi5lZDBhNzE0YTVkZmIgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvcXQ2LWNoYXJ0cy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1jaGFydHMvdGVt cGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LWNoYXJ0cycK IHBrZ25hbWU9cXQ2LWNoYXJ0cwotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNp b249MQogd3Jrc3JjPSJxdGNoYXJ0cy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRf c3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgogaG9zdG1h a2VkZXBlbmRzPSJwZXJsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKIG1ha2VkZXBlbmRzPSJxdDYt ZGVjbGFyYXRpdmUtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlv biBhbmQgVUkgZnJhbWV3b3JrIC0gY2hhcnRzIgpAQCAtMTIsNyArMTEsMTEgQEAgbWFpbnRhaW5l cj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSIKIGhv bWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0Lmlv L29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVz L3F0Y2hhcnRzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Njcy NzYyYzVmNjQxY2NjODhhMzBhZWVkZWZiNjNmMDNjMGY4Mzc2NDliMzM0ZjQ2ZWVhNTc1OTJlODdl MzZjZAorY2hlY2tzdW09ZjMzMGNjMjMyODcyOTEwNGQ3OWIyMDg4OTkwY2UwODQwZjJkYTg5ZDlk OTg5MzYwZDRjMzUyZTc5N2QyN2NmNworCitwcmVfY2hlY2soKSB7CisJZXhwb3J0IFFNTDJfSU1Q T1JUX1BBVEg9IiR3cmtzcmMvYnVpbGQvbGliL3F0Ni9xbWwiCit9CiAKIHF0Ni1jaGFydHMtZGV2 ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0iCkBAIC0yMCw4ICsyMywxMSBAQCBxdDYtY2hhcnRzLWRldmVsX3BhY2thZ2UoKSB7CiAJ cGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21h a2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcK IAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcwogCQl2bW92ZSAidXNyL2xpYi8qLnNvIgogCQl2 bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCiAJfQog fQoKRnJvbSBkYWI5YTMzOGY4NjA3MWVmOTdhN2IwMjc0M2NkZWU3NmNmNDliOTFhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1C QT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTog TW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjA3ICswNzAwClN1YmplY3Q6IFtQQVRDSCAwMy8yNl0gcXQ2 LWRlY2xhcmF0aXZlOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIC4uLi9wYXRjaGVzL2Jpbi1xbWwt bG9jYXRpb24ucGF0Y2ggICAgICAgICAgICB8IDE5MyArKysrKysrKysrKysrKysrKysKIC4uLi9w YXRjaGVzL3FtbC1ibGFja2xpc3QtbW9yZS5wYXRjaCAgICAgICAgICB8ICA0OCArKysrKwogLi4u L3BhdGNoZXMvcW1sLWJyb2tlbi10ZXN0LnBhdGNoICAgICAgICAgICAgIHwgIDY0ICsrKysrKwog c3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvdGVtcGxhdGUgICAgICAgICAgICAgIHwgIDMyICsrLQog NCBmaWxlcyBjaGFuZ2VkLCAzMzEgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1kZWNsYXJhdGl2ZS9wYXRjaGVzL2Jpbi1xbWwtbG9j YXRpb24ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1kZWNsYXJhdGl2ZS9w YXRjaGVzL3FtbC1ibGFja2xpc3QtbW9yZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3MvcXQ2LWRlY2xhcmF0aXZlL3BhdGNoZXMvcW1sLWJyb2tlbi10ZXN0LnBhdGNoCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvcGF0Y2hlcy9iaW4tcW1sLWxvY2F0aW9uLnBh dGNoIGIvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvcGF0Y2hlcy9iaW4tcW1sLWxvY2F0aW9uLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjkyZTM0NjMyNTAy Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvcGF0Y2hlcy9iaW4t cW1sLWxvY2F0aW9uLnBhdGNoCkBAIC0wLDAgKzEsMTkzIEBACistLS0gYS90ZXN0cy9hdXRvL3Ft bC9kZWJ1Z2dlci9xcW1sZGVidWd0cmFuc2xhdGlvbmNsaWVudC90c3RfcXFtbGRlYnVndHJhbnNs YXRpb25jbGllbnQuY3BwCisrKysgYi90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1sZGVidWd0 cmFuc2xhdGlvbmNsaWVudC90c3RfcXFtbGRlYnVndHJhbnNsYXRpb25jbGllbnQuY3BwCitAQCAt OTQsNyArOTQsMTEgQEAgcHJpdmF0ZToKKyAgICAgeworICAgICAgICAgbV9jdXJyZW50T3V0cHV0 TGluZSA9IDA7CisgCisrI2lmZGVmIFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRICisrICAgICAgICBh dXRvIGV4ZWN1dGFibGUgPSBRVF9ERUNMQVJBVElWRV9CSU5fUEFUSCAiL3FtbCI7CisrI2Vsc2UK KyAgICAgICAgIGF1dG8gZXhlY3V0YWJsZSA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUlu Zm86OkJpbmFyaWVzUGF0aCkgKyAiL3FtbCI7CisrI2VuZGlmCisgICAgICAgICBhdXRvIHNlcnZp Y2VzID0gUVFtbERlYnVnVHJhbnNsYXRpb25TZXJ2aWNlSW1wbDo6c19rZXk7CisgICAgICAgICBh dXRvIGV4dHJhQXJncyA9IHRlc3RGaWxlKFFNTEZJTEUpOworICAgICAgICAgYXV0byBibG9jayA9 IHRydWU7CistLS0gYS90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1saW5zcGVjdG9yL3RzdF9x cW1saW5zcGVjdG9yLmNwcAorKysrIGIvdGVzdHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbGluc3Bl Y3Rvci90c3RfcXFtbGluc3BlY3Rvci5jcHAKK0BAIC03Miw3ICs3MiwxMiBAQCB0c3RfUVFtbElu c3BlY3Rvcjo6dHN0X1FRbWxJbnNwZWN0b3IoKQorIFFRbWxEZWJ1Z1Rlc3Q6OkNvbm5lY3RSZXN1 bHQgdHN0X1FRbWxJbnNwZWN0b3I6OnN0YXJ0UW1sUHJvY2Vzcyhjb25zdCBRU3RyaW5nICZxbWxG aWxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBib29sIHJlc3RyaWN0U2VydmljZXMpCisgeworLSAgICByZXR1cm4gUVFt bERlYnVnVGVzdDo6Y29ubmVjdFRvKFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJp bmFyaWVzUGF0aCkgKyAiL3FtbCIsCisrI2lmZGVmIFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRICisr ICAgIGF1dG8gZXhlY3V0YWJsZSA9IFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRIICIvcW1sIjsKKysj ZWxzZQorKyAgICBhdXRvIGV4ZWN1dGFibGUgPSBRTGlicmFyeUluZm86OnBhdGgoUUxpYnJhcnlJ bmZvOjpCaW5hcmllc1BhdGgpICsgIi9xbWwiOworKyNlbmRpZgorKyAgICByZXR1cm4gUVFtbERl YnVnVGVzdDo6Y29ubmVjdFRvKGV4ZWN1dGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJlc3RyaWN0U2VydmljZXMgPyBRU3RyaW5nTGl0ZXJhbCgiUW1sSW5zcGVjdG9y IikgOiBRU3RyaW5nKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3RG aWxlKHFtbEZpbGUpLCB0cnVlKTsKKyB9CistLS0gYS90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9x cW1scHJvZmlsZXJzZXJ2aWNlL3RzdF9xcW1scHJvZmlsZXJzZXJ2aWNlLmNwcAorKysrIGIvdGVz dHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbHByb2ZpbGVyc2VydmljZS90c3RfcXFtbHByb2ZpbGVy c2VydmljZS5jcHAKK0BAIC0yMDQsMTAgKzIwNCwxNiBAQCBwcml2YXRlOgorICAgICAgICAgQ2hl Y2tUeXBlID0gQ2hlY2tNZXNzYWdlVHlwZSB8IENoZWNrRGV0YWlsVHlwZSB8IENoZWNrTGluZSB8 IENoZWNrQ29sdW1uIHwgQ2hlY2tGaWxlRW5kc1dpdGgKKyAgICAgfTsKKyAKKysjaWZkZWYgUVRf REVDTEFSQVRJVkVfQklOX1BBVEgKKysjZGVmaW5lIFFNTFNDRU5FX1BBVEggUVRfREVDTEFSQVRJ VkVfQklOX1BBVEggIi9xbWwiCisrI2Vsc2UKKysjZGVmaW5lIFFNTFNDRU5FX1BBVEggUUxpYnJh cnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKSArICIvcW1sc2NlbmUiCisr I2VuZGlmCisrCisgICAgIENvbm5lY3RSZXN1bHQgY29ubmVjdFRvKGJvb2wgYmxvY2ssIGNvbnN0 IFFTdHJpbmcgJmZpbGUsIGJvb2wgcmVjb3JkRnJvbVN0YXJ0ID0gdHJ1ZSwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIHVpbnQgZmx1c2hJbnRlcnZhbCA9IDAsIGJvb2wgcmVzdHJpY3RTZXJ2 aWNlcyA9IHRydWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBRU3RyaW5nICZl eGVjdXRhYmxlCistICAgICAgICAgICAgPSBRTGlicmFyeUluZm86OnBhdGgoUUxpYnJhcnlJbmZv OjpCaW5hcmllc1BhdGgpICsgIi9xbWxzY2VuZSIpOworKyAgICAgICAgICAgID0gUU1MU0NFTkVf UEFUSCk7CisgICAgIHZvaWQgY2hlY2tQcm9jZXNzVGVybWluYXRlZCgpOworICAgICB2b2lkIGNo ZWNrVHJhY2VSZWNlaXZlZCgpOworICAgICB2b2lkIGNoZWNrSnNIZWFwKCk7CistLS0gYS90ZXN0 cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1sZGVidWdnaW5nZW5hYmxlci9xcW1sZGVidWdnaW5nZW5h Ymxlci90c3RfcXFtbGRlYnVnZ2luZ2VuYWJsZXIuY3BwCisrKysgYi90ZXN0cy9hdXRvL3FtbC9k ZWJ1Z2dlci9xcW1sZGVidWdnaW5nZW5hYmxlci9xcW1sZGVidWdnaW5nZW5hYmxlci90c3RfcXFt bGRlYnVnZ2luZ2VuYWJsZXIuY3BwCitAQCAtMTEwLDggKzExMCwxMyBAQCB2b2lkIHRzdF9RUW1s RGVidWdnaW5nRW5hYmxlcjo6cW1sc2NlbmUoCisgICAgIFFGRVRDSChib29sLCBibG9ja01vZGUp OworICAgICBRRkVUQ0goUVN0cmluZ0xpc3QsIHNlcnZpY2VzKTsKKyAKKy0gICAgbV9wcm9jZXNz ID0gbmV3IFFRbWxEZWJ1Z1Byb2Nlc3MoCistICAgICAgICAgICAgICAgIFFMaWJyYXJ5SW5mbzo6 cGF0aChRTGlicmFyeUluZm86OkJpbmFyaWVzUGF0aCkgKyAiL3FtbHNjZW5lIiwgdGhpcyk7Cisr I2lmZGVmIFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRICisrICAgIGF1dG8gZXhlY3V0YWJsZSA9IFFU X0RFQ0xBUkFUSVZFX0JJTl9QQVRIICIvcW1sc2NlbmUiOworKyNlbHNlCisrICAgIGF1dG8gZXhl Y3V0YWJsZSA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGlicmFyeUluZm86OkJpbmFyaWVzUGF0aCkg KyAiL3FtbHNjZW5lIjsKKysjZW5kaWYKKysKKysgICAgbV9wcm9jZXNzID0gbmV3IFFRbWxEZWJ1 Z1Byb2Nlc3MoZXhlY3V0YWJsZSwgdGhpcyk7CisgICAgIG1fcHJvY2Vzcy0+c2V0TWF4aW11bUJp bmRFcnJvcnMoMSk7CisgICAgIG1fcHJvY2Vzcy0+c3RhcnQoUVN0cmluZ0xpc3QoKQorICAgICAg ICAgICAgICAgICAgICAgIDw8IFFTdHJpbmc6OmZyb21MYXRpbjEoIi1xbWxqc2RlYnVnZ2VyPWNv bm5lY3RvcjolMSUyJTMlNCIpCistLS0gYS90ZXN0cy9hdXRvL3FtbC9kZWJ1Z2dlci9xcW1sZW5n aW5lY29udHJvbC90c3RfcXFtbGVuZ2luZWNvbnRyb2wuY3BwCisrKysgYi90ZXN0cy9hdXRvL3Ft bC9kZWJ1Z2dlci9xcW1sZW5naW5lY29udHJvbC90c3RfcXFtbGVuZ2luZWNvbnRyb2wuY3BwCitA QCAtOTEsNyArOTEsMTIgQEAgdHN0X1FRbWxFbmdpbmVDb250cm9sOjp0c3RfUVFtbEVuZ2luZUNv bgorIFFRbWxEZWJ1Z1Rlc3Q6OkNvbm5lY3RSZXN1bHQgdHN0X1FRbWxFbmdpbmVDb250cm9sOjpj b25uZWN0VG8oY29uc3QgUVN0cmluZyAmZmlsZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHJlc3RyaWN0U2VydmljZXMp CisgeworLSAgICByZXR1cm4gUVFtbERlYnVnVGVzdDo6Y29ubmVjdFRvKFFMaWJyYXJ5SW5mbzo6 cGF0aChRTGlicmFyeUluZm86OkJpbmFyaWVzUGF0aCkgKyAiL3FtbHNjZW5lIiwKKysjaWZkZWYg UVRfREVDTEFSQVRJVkVfQklOX1BBVEgKKysgICAgYXV0byBleGVjdXRhYmxlID0gUVRfREVDTEFS QVRJVkVfQklOX1BBVEggIi9xbWxzY2VuZSI7CisrI2Vsc2UKKysgICAgYXV0byBleGVjdXRhYmxl ID0gUUxpYnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKSArICIvcW1s c2NlbmUiOworKyNlbmRpZgorKyAgICByZXR1cm4gUVFtbERlYnVnVGVzdDo6Y29ubmVjdFRvKGV4 ZWN1dGFibGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3RyaWN0U2Vy dmljZXMgPyBRU3RyaW5nTGl0ZXJhbCgiRW5naW5lQ29udHJvbCIpIDogUVN0cmluZygpLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXN0RmlsZShmaWxlKSwgdHJ1ZSk7Cisg fQorLS0tIGEvdGVzdHMvYXV0by9xbWwvZGVidWdnZXIvcXFtbGVuZ2luZWRlYnVnaW5zcGVjdG9y aW50ZWdyYXRpb250ZXN0L3RzdF9xcW1sZW5naW5lZGVidWdpbnNwZWN0b3JpbnRlZ3JhdGlvbi5j cHAKKysrKyBiL3Rlc3RzL2F1dG8vcW1sL2RlYnVnZ2VyL3FxbWxlbmdpbmVkZWJ1Z2luc3BlY3Rv cmludGVncmF0aW9udGVzdC90c3RfcXFtbGVuZ2luZWRlYnVnaW5zcGVjdG9yaW50ZWdyYXRpb24u Y3BwCitAQCAtOTYsNyArOTYsMTEgQEAgdHN0X1FRbWxFbmdpbmVEZWJ1Z0luc3BlY3RvckludGVn cmF0aW9uOgorIFFRbWxEZWJ1Z1Rlc3Q6OkNvbm5lY3RSZXN1bHQgdHN0X1FRbWxFbmdpbmVEZWJ1 Z0luc3BlY3RvckludGVncmF0aW9uOjppbml0KGJvb2wgcmVzdHJpY3RTZXJ2aWNlcykKKyB7Cisg ICAgIHJldHVybiBRUW1sRGVidWdUZXN0Ojpjb25uZWN0VG8oCisrI2lmZGVmIFFUX0RFQ0xBUkFU SVZFX0JJTl9QQVRICisrICAgICAgICAgICAgICAgIFFUX0RFQ0xBUkFUSVZFX0JJTl9QQVRIICIv cW1sIiwKKysjZWxzZQorICAgICAgICAgICAgICAgICBRTGlicmFyeUluZm86OnBhdGgoUUxpYnJh cnlJbmZvOjpCaW5hcmllc1BhdGgpICsgIi9xbWwiLAorKyNlbmRpZgorICAgICAgICAgICAgICAg ICByZXN0cmljdFNlcnZpY2VzID8gUVN0cmluZ0xpdGVyYWwoIlFtbERlYnVnZ2VyLFFtbEluc3Bl Y3RvciIpIDogUVN0cmluZygpLAorICAgICAgICAgICAgICAgICB0ZXN0RmlsZSgicXRxdWljazIu cW1sIiksIHRydWUpOworIH0KKy0tLSBhL3Rlc3RzL2F1dG8vcW1sL2RlYnVnZ2VyL3FxbWxwcmV2 aWV3L3RzdF9xcW1scHJldmlldy5jcHAKKysrKyBiL3Rlc3RzL2F1dG8vcW1sL2RlYnVnZ2VyL3Fx bWxwcmV2aWV3L3RzdF9xcW1scHJldmlldy5jcHAKK0BAIC04MSw3ICs4MSwxMiBAQCB0c3RfUVFt bFByZXZpZXc6OnRzdF9RUW1sUHJldmlldygpCisgCisgUVFtbERlYnVnVGVzdDo6Q29ubmVjdFJl c3VsdCB0c3RfUVFtbFByZXZpZXc6OnN0YXJ0UW1sUHJvY2Vzcyhjb25zdCBRU3RyaW5nICZxbWxG aWxlKQorIHsKKy0gICAgcmV0dXJuIFFRbWxEZWJ1Z1Rlc3Q6OmNvbm5lY3RUbyhRTGlicmFyeUlu Zm86OnBhdGgoUUxpYnJhcnlJbmZvOjpCaW5hcmllc1BhdGgpICsgIi9xbWwiLAorKyNpZmRlZiBR VF9ERUNMQVJBVElWRV9CSU5fUEFUSAorKyAgICBhdXRvIGV4ZWN1dGFibGUgPSBRVF9ERUNMQVJB VElWRV9CSU5fUEFUSCAiL3FtbCI7CisrI2Vsc2UKKysgICAgYXV0byBleGVjdXRhYmxlID0gUUxp YnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKSArICIvcW1sIjsKKysj ZW5kaWYKKysgICAgcmV0dXJuIFFRbWxEZWJ1Z1Rlc3Q6OmNvbm5lY3RUbyhleGVjdXRhYmxlLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBRU3RyaW5nTGl0ZXJhbCgiUW1sUHJl dmlldyIpLCB0ZXN0RmlsZShxbWxGaWxlKSwgdHJ1ZSk7CisgfQorIAorLS0tIGEvdGVzdHMvYXV0 by9xbWwvcW1sZm9ybWF0L3RzdF9xbWxmb3JtYXQuY3BwCisrKysgYi90ZXN0cy9hdXRvL3FtbC9x bWxmb3JtYXQvdHN0X3FtbGZvcm1hdC5jcHAKK0BAIC04OCw3ICs4OCwxMSBAQCBUZXN0UW1sZm9y bWF0OjpUZXN0UW1sZm9ybWF0KCkKKyB2b2lkIFRlc3RRbWxmb3JtYXQ6OmluaXRUZXN0Q2FzZSgp CisgeworICAgICBRUW1sRGF0YVRlc3Q6OmluaXRUZXN0Q2FzZSgpOworKyNpZmRlZiBRVF9ERUNM QVJBVElWRV9CSU5fUEFUSAorKyAgICBtX3FtbGZvcm1hdFBhdGggPSBRTGF0aW4xU3RyaW5nKFFU X0RFQ0xBUkFUSVZFX0JJTl9QQVRIICIvcW1sZm9ybWF0Iik7CisrI2Vsc2UKKyAgICAgbV9xbWxm b3JtYXRQYXRoID0gUUxpYnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRo KSArIFFMYXRpbjFTdHJpbmcoIi9xbWxmb3JtYXQiKTsKKysjZW5kaWYKKyAjaWZkZWYgUV9PU19X SU4KKyAgICAgbV9xbWxmb3JtYXRQYXRoICs9IFFMYXRpbjFTdHJpbmcoIi5leGUiKTsKKyAjZW5k aWYKKy0tLSBhL3Rlc3RzL2F1dG8vcW1sL3FtbGltcG9ydHNjYW5uZXIvdHN0X3FtbGltcG9ydHNj YW5uZXIuY3BwCisrKysgYi90ZXN0cy9hdXRvL3FtbC9xbWxpbXBvcnRzY2FubmVyL3RzdF9xbWxp bXBvcnRzY2FubmVyLmNwcAorQEAgLTYzLDggKzYzLDEyIEBAIFRlc3RRbWxpbXBvcnRzY2FubmVy OjpUZXN0UW1saW1wb3J0c2Nhbm4KKyB2b2lkIFRlc3RRbWxpbXBvcnRzY2FubmVyOjppbml0VGVz dENhc2UoKQorIHsKKyAgICAgUVFtbERhdGFUZXN0Ojppbml0VGVzdENhc2UoKTsKKysjaWZkZWYg UVRfREVDTEFSQVRJVkVfTElCRVhFQ19QQVRICisrICAgIG1fcW1saW1wb3J0c2Nhbm5lclBhdGgg PSBRTGF0aW4xU3RyaW5nKFFUX0RFQ0xBUkFUSVZFX0xJQkVYRUNfUEFUSCAiL3FtbGltcG9ydHNj YW5uZXIiKTsKKysjZWxzZQorICAgICBtX3FtbGltcG9ydHNjYW5uZXJQYXRoID0gUUxpYnJhcnlJ bmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6TGlicmFyeUV4ZWN1dGFibGVzUGF0aCkKKyAgICAgICAg ICAgICArIFFMYXRpbjFTdHJpbmcoIi9xbWxpbXBvcnRzY2FubmVyIik7CisrI2VuZGlmCisgI2lm ZGVmIFFfT1NfV0lOCisgICAgIG1fcW1saW1wb3J0c2Nhbm5lclBhdGggKz0gUUxhdGluMVN0cmlu ZygiLmV4ZSIpOworICNlbmRpZgorLS0tIGEvdGVzdHMvYXV0by9xbWwvcW1sbGludC90c3RfcW1s bGludC5jcHAKKysrKyBiL3Rlc3RzL2F1dG8vcW1sL3FtbGxpbnQvdHN0X3FtbGxpbnQuY3BwCitA QCAtMTM2LDExICsxMzYsMTcgQEAgVGVzdFFtbGxpbnQ6OlRlc3RRbWxsaW50KCkKKyB2b2lkIFRl c3RRbWxsaW50Ojppbml0VGVzdENhc2UoKQorIHsKKyAgICAgUVFtbERhdGFUZXN0Ojppbml0VGVz dENhc2UoKTsKKysjaWZkZWYgUVRfREVDTEFSQVRJVkVfQklOX1BBVEgKKysgICAgbV9xbWxsaW50 UGF0aCA9IFFMYXRpbjFTdHJpbmcoUVRfREVDTEFSQVRJVkVfQklOX1BBVEggIi9xbWxsaW50Iik7 CisrICAgIG1fcW1sanNyb290Z2VuUGF0aCA9IFFMYXRpbjFTdHJpbmcoUVRfREVDTEFSQVRJVkVf QklOX1BBVEggIi9xbWxqc3Jvb3RnZW4iKTsKKysgICAgbV9xbWx0eXBlcmVnaXN0cmFyUGF0aCA9 IFFMYXRpbjFTdHJpbmcoUVRfREVDTEFSQVRJVkVfQklOX1BBVEggIi9xbWx0eXBlcmVnaXN0cmFy Iik7CisrI2Vsc2UKKyAgICAgbV9xbWxsaW50UGF0aCA9IFFMaWJyYXJ5SW5mbzo6cGF0aChRTGli cmFyeUluZm86OkJpbmFyaWVzUGF0aCkgKyBRTGF0aW4xU3RyaW5nKCIvcW1sbGludCIpOworICAg ICBtX3FtbGpzcm9vdGdlblBhdGggPSBRTGlicmFyeUluZm86OnBhdGgoUUxpYnJhcnlJbmZvOjpM aWJyYXJ5RXhlY3V0YWJsZXNQYXRoKQorICAgICAgICAgICAgICsgUUxhdGluMVN0cmluZygiL3Ft bGpzcm9vdGdlbiIpOworICAgICBtX3FtbHR5cGVyZWdpc3RyYXJQYXRoID0gUUxpYnJhcnlJbmZv OjpwYXRoKFFMaWJyYXJ5SW5mbzo6TGlicmFyeUV4ZWN1dGFibGVzUGF0aCkKKyAgICAgICAgICAg ICArIFFMYXRpbjFTdHJpbmcoIi9xbWx0eXBlcmVnaXN0cmFyIik7CisrI2VuZGlmCisgI2lmZGVm IFFfT1NfV0lOCisgICAgIG1fcW1sbGludFBhdGggKz0gUUxhdGluMVN0cmluZygiLmV4ZSIpOwor ICAgICBtX3FtbGpzcm9vdGdlblBhdGggKz0gUUxhdGluMVN0cmluZygiLmV4ZSIpOworLS0tIGEv dGVzdHMvYXV0by9xbWwvZGVidWdnZXIvcWRlYnVnbWVzc2FnZXNlcnZpY2UvdHN0X3FkZWJ1Z21l c3NhZ2VzZXJ2aWNlLmNwcAorKysrIGIvdGVzdHMvYXV0by9xbWwvZGVidWdnZXIvcWRlYnVnbWVz c2FnZXNlcnZpY2UvdHN0X3FkZWJ1Z21lc3NhZ2VzZXJ2aWNlLmNwcAorQEAgLTE0Myw3ICsxNDMs MTIgQEAgdHN0X1FEZWJ1Z01lc3NhZ2VTZXJ2aWNlOjp0c3RfUURlYnVnTWVzcworIAorIHZvaWQg dHN0X1FEZWJ1Z01lc3NhZ2VTZXJ2aWNlOjpyZXRyaWV2ZURlYnVnT3V0cHV0KCkKKyB7CistICAg IFFDT01QQVJFKFFRbWxEZWJ1Z1Rlc3Q6OmNvbm5lY3RUbyhRTGlicmFyeUluZm86OnBhdGgoUUxp YnJhcnlJbmZvOjpCaW5hcmllc1BhdGgpICsgIi9xbWwiLAorKyNpZmRlZiBRVF9ERUNMQVJBVElW RV9CSU5fUEFUSAorKyAgICBhdXRvIGV4ZWN1dGFibGUgPSBRVF9ERUNMQVJBVElWRV9CSU5fUEFU SCAiL3FtbCI7CisrI2Vsc2UKKysgICAgYXV0byBleGVjdXRhYmxlID0gUUxpYnJhcnlJbmZvOjpw YXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKSArICIvcW1sIjsKKysjZW5kaWYKKysgICAg UUNPTVBBUkUoUVFtbERlYnVnVGVzdDo6Y29ubmVjdFRvKGV4ZWN1dGFibGUsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgUVN0cmluZygpLCB0ZXN0RmlsZShRTUxGSUxFKSwg dHJ1ZSksIENvbm5lY3RTdWNjZXNzKTsKKyAKKyAgICAgUVRSWV9WRVJJRlkobV9jbGllbnQtPmxv Z0J1ZmZlci5zaXplKCkgPj0gMik7CistLS0gYS90ZXN0cy9hdXRvL3FtbC9xbWxwbHVnaW5kdW1w L3RzdF9xbWxwbHVnaW5kdW1wLmNwcAorKysrIGIvdGVzdHMvYXV0by9xbWwvcW1scGx1Z2luZHVt cC90c3RfcW1scGx1Z2luZHVtcC5jcHAKK0BAIC02Miw3ICs2MiwxMSBAQCB0c3RfcW1scGx1Z2lu ZHVtcDo6dHN0X3FtbHBsdWdpbmR1bXAoKQorIHZvaWQgdHN0X3FtbHBsdWdpbmR1bXA6OmluaXRU ZXN0Q2FzZSgpCisgeworICAgICBRUW1sRGF0YVRlc3Q6OmluaXRUZXN0Q2FzZSgpOworKyNpZmRl ZiBRVF9ERUNMQVJBVElWRV9CSU5fUEFUSAorKyAgICBxbWxwbHVnaW5kdW1wUGF0aCA9IFFUX0RF Q0xBUkFUSVZFX0JJTl9QQVRIOworKyNlbHNlCisgICAgIHFtbHBsdWdpbmR1bXBQYXRoID0gUUxp YnJhcnlJbmZvOjpwYXRoKFFMaWJyYXJ5SW5mbzo6QmluYXJpZXNQYXRoKTsKKysjZW5kaWYKKyAK KyAjaWYgZGVmaW5lZChRX09TX1dJTikKKyAgICAgcW1scGx1Z2luZHVtcFBhdGggKz0gUUxhdGlu MVN0cmluZygiL3FtbHBsdWdpbmR1bXAuZXhlIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1k ZWNsYXJhdGl2ZS9wYXRjaGVzL3FtbC1ibGFja2xpc3QtbW9yZS5wYXRjaCBiL3NyY3BrZ3MvcXQ2 LWRlY2xhcmF0aXZlL3BhdGNoZXMvcW1sLWJsYWNrbGlzdC1tb3JlLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmQyNjI5YmY5ZGY5Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtZGVjbGFyYXRpdmUvcGF0Y2hlcy9xbWwtYmxhY2tsaXN0LW1vcmUu cGF0Y2gKQEAgLTAsMCArMSw0OCBAQAorLS0tIGEvdGVzdHMvYXV0by9xdWlja2NvbnRyb2xzMi9j b250cm9scy91bml2ZXJzYWwvQkxBQ0tMSVNUCisrKysgYi90ZXN0cy9hdXRvL3F1aWNrY29udHJv bHMyL2NvbnRyb2xzL3VuaXZlcnNhbC9CTEFDS0xJU1QKK0BAIC02LDUgKzYsNiBAQAorIAorICMg UVRCVUctOTU3NTAKKyBbUmFuZ2VTbGlkZXI6OnRlc3Rfb3ZlcmxhcHBpbmdIYW5kbGVzXQorIGIy cXQKKyBxbngKKytsaW51eAorLS0tIGEvdGVzdHMvYXV0by9xdWlja2NvbnRyb2xzMi9jb250cm9s cy9iYXNpYy9CTEFDS0xJU1QKKysrKyBiL3Rlc3RzL2F1dG8vcXVpY2tjb250cm9sczIvY29udHJv bHMvYmFzaWMvQkxBQ0tMSVNUCitAQCAtNiw1ICs2LDYgQEAKKyAKKyAjIFFUQlVHLTk1NzUwCisg W1JhbmdlU2xpZGVyOjp0ZXN0X292ZXJsYXBwaW5nSGFuZGxlc10KKyBiMnF0CisgcW54CisrbGlu dXgKKy0tLSBhL3Rlc3RzL2F1dG8vcXVpY2tjb250cm9sczIvY29udHJvbHMvZnVzaW9uL0JMQUNL TElTVAorKysrIGIvdGVzdHMvYXV0by9xdWlja2NvbnRyb2xzMi9jb250cm9scy9mdXNpb24vQkxB Q0tMSVNUCitAQCAtNiw1ICs2LDYgQEAKKyAKKyAjIFFUQlVHLTk1NzUwCisgW1JhbmdlU2xpZGVy Ojp0ZXN0X292ZXJsYXBwaW5nSGFuZGxlc10KKyBiMnF0CisgcW54CisrbGludXgKKy0tLSBhL3Rl c3RzL2F1dG8vcXVpY2tjb250cm9sczIvY29udHJvbHMvaW1hZ2luZS9CTEFDS0xJU1QKKysrKyBi L3Rlc3RzL2F1dG8vcXVpY2tjb250cm9sczIvY29udHJvbHMvaW1hZ2luZS9CTEFDS0xJU1QKK0BA IC02LDggKzYsOSBAQAorIAorICMgUVRCVUctOTU3NTAKKyBbUmFuZ2VTbGlkZXI6OnRlc3Rfb3Zl cmxhcHBpbmdIYW5kbGVzXQorIGIycXQKKyBxbngKKytsaW51eAorIAorICMgUVRCVUctMTAxNzA0 CisgW1Rvb2xUaXA6OnRlc3RfYXR0YWNoZWRTaXplQnVnXQorLS0tIGEvdGVzdHMvYXV0by9xdWlj a2NvbnRyb2xzMi9jb250cm9scy9tYXRlcmlhbC9CTEFDS0xJU1QKKysrKyBiL3Rlc3RzL2F1dG8v cXVpY2tjb250cm9sczIvY29udHJvbHMvbWF0ZXJpYWwvQkxBQ0tMSVNUCitAQCAtNiw1ICs2LDYg QEAKKyAKKyAjIFFUQlVHLTk1NzUwCisgW1JhbmdlU2xpZGVyOjp0ZXN0X292ZXJsYXBwaW5nSGFu ZGxlc10KKyBiMnF0CisgcW54CisrbGludXgKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWRlY2xh cmF0aXZlL3BhdGNoZXMvcW1sLWJyb2tlbi10ZXN0LnBhdGNoIGIvc3JjcGtncy9xdDYtZGVjbGFy YXRpdmUvcGF0Y2hlcy9xbWwtYnJva2VuLXRlc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi40ZDQ0ZTkwYjY3OGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL3F0Ni1kZWNsYXJhdGl2ZS9wYXRjaGVzL3FtbC1icm9rZW4tdGVzdC5wYXRjaApAQCAtMCww ICsxLDY0IEBACistLS0gYS90ZXN0cy9hdXRvL3F1aWNrY29udHJvbHMyL2NvbnRyb2xzL2RhdGEv dHN0X3Jhbmdlc2xpZGVyLnFtbAorKysrIGIvdGVzdHMvYXV0by9xdWlja2NvbnRyb2xzMi9jb250 cm9scy9kYXRhL3RzdF9yYW5nZXNsaWRlci5xbWwKK0BAIC02NDksNjEgKzY0OSw2IEBAIFRlc3RD YXNlIHsKKyAgICAgfQorIAorICAgICBmdW5jdGlvbiB0ZXN0X292ZXJsYXBwaW5nSGFuZGxlcygp IHsKKy0gICAgICAgIHZhciBjb250cm9sID0gY3JlYXRlVGVtcG9yYXJ5T2JqZWN0KHNsaWRlckNv bXBvbmVudCwgdGVzdENhc2UpCistICAgICAgICB2ZXJpZnkoY29udHJvbCkKKy0KKy0gICAgICAg IC8vIEJ5IGRlZmF1bHQsIHdlIGZvcmNlIHRoZSBzZWNvbmQgaGFuZGxlIHRvIGJlIGFmdGVyIHRo ZSBmaXJzdCBpbgorLSAgICAgICAgLy8gdGVybXMgb2Ygc3RhY2tpbmcgb3JkZXIgKmFuZCogeiB2 YWx1ZS4KKy0gICAgICAgIGNvbXBhcmUoY29udHJvbC5zZWNvbmQuaGFuZGxlLnosIDEpCistICAg ICAgICBjb21wYXJlKGNvbnRyb2wuZmlyc3QuaGFuZGxlLnosIDApCistICAgICAgICBjb250cm9s LmZpcnN0LnZhbHVlID0gMAorLSAgICAgICAgY29udHJvbC5zZWNvbmQudmFsdWUgPSAwCistCist ICAgICAgICAvLyBXaGVuIGJvdGggaGFuZGxlcyBvdmVybGFwLCBvbmx5IHRoZSBoYW5kbGUgd2l0 aCB0aGUgaGlnaGVyIFogdmFsdWUKKy0gICAgICAgIC8vIHNob3VsZCBiZSBob3ZlcmVkLgorLSAg ICAgICAgbW91c2VNb3ZlKGNvbnRyb2wsIGNvbnRyb2wuc2Vjb25kLmhhbmRsZS54LCBjb250cm9s LnNlY29uZC5oYW5kbGUueSkKKy0gICAgICAgIGNvbXBhcmUoY29udHJvbC5zZWNvbmQuaG92ZXJl ZCwgdHJ1ZSkKKy0gICAgICAgIGNvbXBhcmUoY29udHJvbC5maXJzdC5ob3ZlcmVkLCBmYWxzZSkK Ky0KKy0gICAgICAgIC8vIEJvdGggYXJlIGF0IHRoZSBzYW1lIHBvc2l0aW9uLCBzbyBpdCBkb2Vz bid0IG1hdHRlciB3aG9zZSBjb29yZGluYXRlcyB3ZSB1c2UuCistICAgICAgICBtb3VzZVByZXNz KGNvbnRyb2wsIGNvbnRyb2wuZmlyc3QuaGFuZGxlLngsIGNvbnRyb2wuZmlyc3QuaGFuZGxlLnks IFF0LkxlZnRCdXR0b24pCistICAgICAgICB2ZXJpZnkoY29udHJvbC5zZWNvbmQucHJlc3NlZCkK Ky0gICAgICAgIGNvbXBhcmUoY29udHJvbC5zZWNvbmQuaGFuZGxlLnosIDEpCistICAgICAgICBj b21wYXJlKGNvbnRyb2wuZmlyc3QuaGFuZGxlLnosIDApCistCistICAgICAgICAvLyBNb3ZlIHRo ZSBzZWNvbmQgaGFuZGxlIG91dCBvZiB0aGUgd2F5LgorLSAgICAgICAgbW91c2VNb3ZlKGNvbnRy b2wsIGNvbnRyb2wud2lkdGgsIGNvbnRyb2wuZmlyc3QuaGFuZGxlLnkpCistICAgICAgICBtb3Vz ZVJlbGVhc2UoY29udHJvbCwgY29udHJvbC53aWR0aCwgY29udHJvbC5maXJzdC5oYW5kbGUueSwg UXQuTGVmdEJ1dHRvbikKKy0gICAgICAgIHZlcmlmeSghY29udHJvbC5zZWNvbmQucHJlc3NlZCkK Ky0gICAgICAgIGNvbXBhcmUoY29udHJvbC5zZWNvbmQudmFsdWUsIDEuMCkKKy0gICAgICAgIGNv bXBhcmUoY29udHJvbC5zZWNvbmQuaGFuZGxlLnosIDEpCistICAgICAgICBjb21wYXJlKGNvbnRy b2wuZmlyc3QuaGFuZGxlLnosIDApCistCistICAgICAgICAvLyBUaGUgZmlyc3QgaGFuZGxlIHNo b3VsZCBub3QgYmUgaG92ZXJlZC4KKy0gICAgICAgIGNvbXBhcmUoY29udHJvbC5maXJzdC5ob3Zl cmVkLCBmYWxzZSkKKy0KKy0gICAgICAgIC8vIE1vdmUgdGhlIGZpcnN0IGhhbmRsZSBvbiB0b3Ag b2YgdGhlIHNlY29uZC4KKy0gICAgICAgIG1vdXNlUHJlc3MoY29udHJvbCwgY29udHJvbC5maXJz dC5oYW5kbGUueCwgY29udHJvbC5maXJzdC5oYW5kbGUueSwgUXQuTGVmdEJ1dHRvbikKKy0gICAg ICAgIHZlcmlmeShjb250cm9sLmZpcnN0LnByZXNzZWQpCistICAgICAgICBjb21wYXJlKGNvbnRy b2wuZmlyc3QuaGFuZGxlLnosIDEpCistICAgICAgICBjb21wYXJlKGNvbnRyb2wuc2Vjb25kLmhh bmRsZS56LCAwKQorLQorLSAgICAgICAgbW91c2VNb3ZlKGNvbnRyb2wsIGNvbnRyb2wud2lkdGgs IGNvbnRyb2wuZmlyc3QuaGFuZGxlLnkpCistICAgICAgICBtb3VzZVJlbGVhc2UoY29udHJvbCwg Y29udHJvbC53aWR0aCwgY29udHJvbC5maXJzdC5oYW5kbGUueSwgUXQuTGVmdEJ1dHRvbikKKy0g ICAgICAgIHZlcmlmeSghY29udHJvbC5maXJzdC5wcmVzc2VkKQorLSAgICAgICAgY29tcGFyZShj b250cm9sLmZpcnN0LmhhbmRsZS56LCAxKQorLSAgICAgICAgY29tcGFyZShjb250cm9sLnNlY29u ZC5oYW5kbGUueiwgMCkKKy0KKy0gICAgICAgIC8vIFRoZSBtb3N0IHJlY2VudGx5IHByZXNzZWQg aGFuZGxlICh0aGUgZmlyc3QpIHNob3VsZCBoYXZlIHRoZSBoaWdoZXIgeiB2YWx1ZS4KKy0gICAg ICAgIG1vdXNlUHJlc3MoY29udHJvbCwgY29udHJvbC5maXJzdC5oYW5kbGUueCwgY29udHJvbC5m aXJzdC5oYW5kbGUueSwgUXQuTGVmdEJ1dHRvbikKKy0gICAgICAgIHZlcmlmeShjb250cm9sLmZp cnN0LnByZXNzZWQpCistICAgICAgICBjb21wYXJlKGNvbnRyb2wuZmlyc3QuaGFuZGxlLnosIDEp CistICAgICAgICBjb21wYXJlKGNvbnRyb2wuc2Vjb25kLmhhbmRsZS56LCAwKQorLQorLSAgICAg ICAgbW91c2VSZWxlYXNlKGNvbnRyb2wsIGNvbnRyb2wuZmlyc3QuaGFuZGxlLngsIGNvbnRyb2wu Zmlyc3QuaGFuZGxlLnksIFF0LkxlZnRCdXR0b24pCistICAgICAgICB2ZXJpZnkoIWNvbnRyb2wu Zmlyc3QucHJlc3NlZCkKKy0gICAgICAgIGNvbXBhcmUoY29udHJvbC5maXJzdC5oYW5kbGUueiwg MSkKKy0gICAgICAgIGNvbXBhcmUoY29udHJvbC5zZWNvbmQuaGFuZGxlLnosIDApCisgICAgIH0K KyAKKyAgICAgZnVuY3Rpb24gdGVzdF9rZXlzX2RhdGEoKSB7CmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni1kZWNsYXJhdGl2ZS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LWRlY2xhcmF0aXZlL3RlbXBs YXRlCmluZGV4IGUwYmQyOGQ5ZTM4My4uOGExOTBkZmMzNWJjIDEwMDY0NAotLS0gYS9zcmNwa2dz L3F0Ni1kZWNsYXJhdGl2ZS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1kZWNsYXJhdGl2ZS90 ZW1wbGF0ZQpAQCAtMSwyMyArMSwyMiBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LWRlY2xh cmF0aXZlJwogcGtnbmFtZT1xdDYtZGVjbGFyYXRpdmUKLXZlcnNpb249Ni4zLjAKK3ZlcnNpb249 Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXRkZWNsYXJhdGl2ZS1ldmVyeXdoZXJlLXNyYy0k e3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSIgLURRVF9IT1NU X1BBVEg9L3VzciIKIGhvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwgcGVybCBwa2ctY29u ZmlnIHdheWxhbmQtZGV2ZWwKICBxdDYtc2hhZGVydG9vbHMtZGV2ZWwiCi1tYWtlZGVwZW5kcz0i cXQ2LWJhc2UtZGV2ZWwgVnVsa2FuLUhlYWRlcnMiCittYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2 ZWwgVnVsa2FuLUhlYWRlcnMgcXQ2LXNoYWRlcnRvb2xzLWRldmVsIgogc2hvcnRfZGVzYz0iQ3Jv c3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIERlY2xhcmF0aXZlIgog bWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAt b25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wLCBMR1BMLTMuMC1vbmx5LCBHUEwtMi4wLW9y LWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3LnF0LmlvIgogZGlzdGZpbGVzPSJodHRwczov L2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJz aW9ufS9zdWJtb2R1bGVzL3F0ZGVjbGFyYXRpdmUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50 YXIueHoiCi1jaGVja3N1bT1kMjk0YjAyOWRjMmIyZDRmNjVkYTUxNmZkYzNiODA4OGQzMjY0M2Vi N2ZmNzdkYjEzNWE4YjljZTkwNGNhYTM3CitjaGVja3N1bT0wM2U3Njk0MTIzODIwZmNjYTM5N2Y5 NWNlMzEyZTBiN2YzMDM5NDkzYzg3NTRjODM2ZGEwOThhMWEwNDM0NmU4CiByZXBsYWNlcz0icXQ2 LXF1aWNrY29udHJvbHMyPj0wIgogCiBpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KLQljb25m aWd1cmVfYXJncys9IiAtRFFUX0JVSUxEX1RPT0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9dHJ1ZSIK Kwljb25maWd1cmVfYXJncz0iLURRVF9CVUlMRF9UT09MU19XSEVOX0NST1NTQ09NUElMSU5HPXRy dWUiCiAJaG9zdG1ha2VkZXBlbmRzKz0iIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKIGZpCiAKQEAg LTI5LDEzICsyOCwzMSBAQCBpZiBbICIkWEJQU19UQVJHRVRfRU5ESUFOIiA9ICJiZSIgXTsgdGhl bgogCWJyb2tlbj0ic2hhZGVyIGNvbXBpbGF0aW9uIGZhaWxzIgogZmkKIAorcHJlX2NvbmZpZ3Vy ZSgpIHsKKwlDWFhGTEFHUys9IiAnLURRVF9ERUNMQVJBVElWRV9CSU5fUEFUSD1cIiR7d3Jrc3Jj fS9idWlsZC9saWIvcXQ2L2JpblwiJyIKKwlDWFhGTEFHUys9IiAnLURRVF9ERUNMQVJBVElWRV9M SUJFWEVDX1BBVEg9XCIke3dya3NyY30vYnVpbGQvbGliL3F0Ni9saWJleGVjXCInIgorfQorCiBw cmVfY2hlY2soKSB7CiAJZXhwb3J0IFFNTDJfSU1QT1JUX1BBVEg9IiR3cmtzcmMvYnVpbGQvbGli L3F0Ni9xbWwiCiB9CiAKIGRvX2NoZWNrKCkgewogCWNkIGJ1aWxkCi0JY3Rlc3QgLUUgJyh0c3Rf cXFtbGxvY2FsZXx0ZXh0fHRzdF9xcXVpY2t3aWRnZXQpJworCWxvY2FsIGJyb2tlbj0idHN0X3Fx bWxsb2NhbGV8dGV4dHx0c3RfcXF1aWNrd2lkZ2V0IgorCSMgcmVxdWlyZXMgcXQ2LWRlY2xhcmF0 aXZlIGluc3RhbGxlZAorCWJyb2tlbis9Inxtb2R1bGVfaW5jbHVkZXN8Y21ha2VfdG9vbGluZ19p bXBvcnRzfGVtcHR5X3FtbGRpciIKKwlicm9rZW4rPSJ8cXRxdWlja2NvbXBpbGVyfHFtbHF1ZXJ5 IgorCSMgQ291bGQgd29yayBpZiBRdDZRdWljay5zby42IGNvdWxkIGJlIGZvdW5kIGJ5IHFtbAor CWJyb2tlbis9Inx0c3RfcXFtbGRlYnVnanN8dHN0X3FxbWxpbnNwZWN0b3IiCisJYnJva2VuKz0i fHRzdF9xcW1scHJvZmlsZXJzZXJ2aWNlfHRzdF9xcW1sanNzY29wZSIKKwlicm9rZW4rPSJ8dHN0 X3FxbWxwcmV2aWV3fHRzdF9xbWxsaW50fHRzdF9xbWxmb3JtYXQiCisJIyBjYW4ndCBmaW5kIHRo ZSBzb3VyY2UKKwlicm9rZW4rPSJ8dHN0X3FtbHRjX3Fwcm9jZXNzIgorCWJyb2tlbis9Inx0c3Rf cXF1aWNrZmlsZWRpYWxvZ2ltcGwiCisJYnJva2VuKz0ifHRzdF9xcXVpY2tmb2xkZXJkaWFsb2dp bXBsIgorCWJyb2tlbis9Inx0c3RfcW1saW1wb3J0c2Nhbm5lcnx0c3RfcXFtbGV4dGVuc2lvbnBs dWdpbiIKKwljdGVzdCAtRSAiKCRicm9rZW4pIgogfQogCiBxdDYtZGVjbGFyYXRpdmUtdG9vbHNf cGFja2FnZSgpIHsKQEAgLTYwLDExICs3NywxNCBAQCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWxfcGFj a2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUg dXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGli L3BrZ2NvbmZpZwogCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3IvbGli L2xpYlF0NlF1aWNrVGVzdC5zby4qIgogCQl2bW92ZSB1c3IvbGliL3F0Ni9xbWwvUXRUZXN0CiAJ CXZtb3ZlIHVzci9saWIvcXQ2L2Jpbi9xbWx0ZXN0cnVubmVyCiAJCXZtb3ZlICJ1c3IvbGliLyou c28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2L21vZHVs ZXMKIAl9CiB9CgpGcm9tIDkzMjMxMWUzNTEwYTk3NTM5OWQxNTJkM2ZkNjQ2MTgwZjg3ZTYzNGEg TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0y MFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29t PgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MDcgKzA3MDAKU3ViamVjdDogW1BBVENIIDA0 LzI2XSBxdDYtaW1hZ2Vmb3JtYXRzOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2 LWltYWdlZm9ybWF0cy90ZW1wbGF0ZSB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2Vy dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtaW1hZ2Vm b3JtYXRzL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtaW1hZ2Vmb3JtYXRzL3RlbXBsYXRlCmluZGV4 IGVhY2E5NTI0M2M0OC4uOWY2ZDJmYjY2Nzc2IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1pbWFn ZWZvcm1hdHMvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtaW1hZ2Vmb3JtYXRzL3RlbXBsYXRl CkBAIC0xLDEwICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1pbWFnZWZvcm1hdHMn CiBwa2duYW1lPXF0Ni1pbWFnZWZvcm1hdHMKLXZlcnNpb249Ni4zLjAKK3ZlcnNpb249Ni4zLjEK IHJldmlzaW9uPTEKIHdya3NyYz0icXRpbWFnZWZvcm1hdHMtZXZlcnl3aGVyZS1zcmMtJHt2ZXJz aW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9 L3VzciIKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtYmFzZS1kZXZlbCIKIG1ha2VkZXBlbmRz PSJxdDYtYmFzZS1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9u IGFuZCBVSSBmcmFtZXdvcmsgLSBpbWFnZWZvcm1hdHMiCkBAIC0xMiw0ICsxMSw0IEBAIG1haW50 YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJMR1BMLTMuMC1vbmx5 IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5p by8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9x dC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdGltYWdlZm9ybWF0cy1ldmVy eXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3VtPTAyNWQwZDE3ZWQ3NWI0MmE3 ZWI2YjUyMzczMWFiOGYxNzAyNTQyMWE4ODEwY2FkZTI1Y2FmZmUwNWQ5M2FiZWYKK2NoZWNrc3Vt PWFkMDMxMmI4ZGZiYmI2N2Y3MjliZmFkYmZjZDQ3MjQ2ZWU0YTEyOGI3MTc3MzFiYTE1OGM0MWQw MWZkZTIxMmYKCkZyb20gZDRhMjJiMzc5MDg0NmM4MmJkZGVmMTYyNTIyMTc4M2E2MmE5NDA1OCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIw VHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzowNyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDUv MjZdIHF0Ni1sb2NhdGlvbjogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1sb2Nh dGlvbi9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2ggfCAxMCArKysrKysrKysrCiBzcmNwa2dz L3F0Ni1sb2NhdGlvbi90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAxMiArKysrKysrKyst LS0KIDIgZmlsZXMgY2hhbmdlZCwgMTkgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1sb2NhdGlvbi9wYXRjaGVzL25vLWNtYWtlLXRl c3QucGF0Y2gKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1sb2NhdGlvbi9wYXRjaGVzL25vLWNt YWtlLXRlc3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni1sb2NhdGlvbi9wYXRjaGVzL25vLWNtYWtlLXRl c3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jNjc3MGZi MTRkM2EKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni1sb2NhdGlvbi9wYXRjaGVzL25v LWNtYWtlLXRlc3QucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvdGVzdHMvYXV0by9DTWFr ZUxpc3RzLnR4dAorKysrIGIvdGVzdHMvYXV0by9DTWFrZUxpc3RzLnR4dAorQEAgLTE5LDcgKzE5 LDYgQEAgYWRkX3N1YmRpcmVjdG9yeShxZ2VvcG9zaXRpb25pbmZvc291cmNlKQorIGFkZF9zdWJk aXJlY3RvcnkocWdlb3NhdGVsbGl0ZWluZm9zb3VyY2UpCisgYWRkX3N1YmRpcmVjdG9yeShxbm1l YXBvc2l0aW9uaW5mb3NvdXJjZSkKKyBhZGRfc3ViZGlyZWN0b3J5KHFubWVhc2F0ZWxsaXRlaW5m b3NvdXJjZSkKKy1hZGRfc3ViZGlyZWN0b3J5KGNtYWtlKQorIGlmKFRBUkdFVCBRdDo6UXVpY2sp CisgICAgIGFkZF9zdWJkaXJlY3RvcnkoZHVtbXlwb3NpdGlvbnBsdWdpbikKKyAgICAgYWRkX3N1 YmRpcmVjdG9yeShkZWNsYXJhdGl2ZV9wb3NpdGlvbmluZ19jb3JlKQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9xdDYtbG9jYXRpb24vdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1sb2NhdGlvbi90ZW1wbGF0 ZQppbmRleCBiNzM5N2Y1Zjg5NDIuLmYwZmQzODViN2FjNyAxMDA2NDQKLS0tIGEvc3JjcGtncy9x dDYtbG9jYXRpb24vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtbG9jYXRpb24vdGVtcGxhdGUK QEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LWxvY2F0aW9uJwogcGtn bmFtZT1xdDYtbG9jYXRpb24KLXZlcnNpb249Ni4zLjAKK3ZlcnNpb249Ni4zLjEKIHJldmlzaW9u PTEKIHdya3NyYz0icXRwb3NpdGlvbmluZy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVp bGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgogaG9z dG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIK IG1ha2VkZXBlbmRzPSJxdDYtc2VyaWFscG9ydC1kZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwg R0NvbmYtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQg VUkgZnJhbWV3b3JrIC0gbG9jYXRpb24iCkBAIC0xMiw3ICsxMSwxMSBAQCBtYWludGFpbmVyPSJK b2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iKExHUEwtMy4wLW9ubHkgT1IgR1BM LTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQTC0zLjAtb25seSB3aXRoIFF0LUdQTC1l eGNlcHRpb24tMS4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRw Oi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3Zl cnNpb259L3N1Ym1vZHVsZXMvcXRwb3NpdGlvbmluZy1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259 LnRhci54eiIKLWNoZWNrc3VtPWU5ZWQ1MGY2YjI0NWEzNDZkYjM0ZDYyNWQwMDEyNzc0ZWYwZWM4 ZTdmZDY1MDM3MTI3ZWMyNjc1ODcwODIzNmUKK2NoZWNrc3VtPTA2Nzg4ZTRlY2FlMTkyMDA5NGIz MGU0MDQ2ZjBhYmQyM2M4MTg5ZDhhNTFlOWM5MzliMDJmMGI2YWJlMmU4NmMKKworcHJlX2NoZWNr KCkgeworCWV4cG9ydCBRTUwyX0lNUE9SVF9QQVRIPSIkd3Jrc3JjL2J1aWxkL2xpYi9xdDYvcW1s IgorfQogCiBxdDYtbG9jYXRpb24tZGV2ZWxfcGFja2FnZSgpIHsKIAlkZXBlbmRzPSIke3NvdXJj ZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVyc2lvbn1f MSIKQEAgLTIwLDggKzIzLDExIEBAIHF0Ni1sb2NhdGlvbi1kZXZlbF9wYWNrYWdlKCkgewogCXBr Z19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL2NtYWtl CisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJ CXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1v dmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcwogCX0KIH0K CkZyb20gOTM4ZDdjYjViYWI4OTc3M2ViOTlmZmIwMjgyOWQ0MWY3NDVjZDJmYiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9 QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1v biwgOCBBdWcgMjAyMiAxNzoxMzowOCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMDYvMjZdIHF0Ni1s b3R0aWU6IHVwZGF0ZSB0byA2LjMuMS4KCi0tLQogc3JjcGtncy9xdDYtbG90dGllL3RlbXBsYXRl IHwgOSArKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtbG90dGllL3RlbXBsYXRlIGIvc3JjcGtn cy9xdDYtbG90dGllL3RlbXBsYXRlCmluZGV4IDFjOTdjZDVmNGYzMi4uYTdiZWI2MmVjMzY4IDEw MDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1sb3R0aWUvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYt bG90dGllL3RlbXBsYXRlCkBAIC0xLDEwICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0 Ni1sb3R0aWUnCiBwa2duYW1lPXF0Ni1sb3R0aWUKLXZlcnNpb249Ni4zLjAKK3ZlcnNpb249Ni4z LjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXRsb3R0aWUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9u fSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9L3Vz ciIKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBxdDYtYmFzZS1kZXZlbCIKIG1ha2VkZXBlbmRzPSJx dDYtZGVjbGFyYXRpdmUtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNh dGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gbG90dGllIgpAQCAtMTIsMTAgKzExLDEwIEBAIG1haW50 YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9ubHki CiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5x dC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9k dWxlcy9xdGxvdHRpZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKLWNoZWNrc3Vt PTM5ZGI1NzBiYmJhNWI1MjdhMWViNmE1Nzc0YmVkNDczOThhY2UyZjcyMTdiYmY0NWIxMTk0YWRh NmNmOTdkZWIKK2NoZWNrc3VtPTc0MGJhNzY5OTkxMjRkNWUxYTg1ZWYzZDAxYzY5OTc2YmI4NTU3 ODYyYjZiMjZiZjQ4YjM1N2ZlMGNhYjFjZjUKIAogaWYgWyAiJFhCUFNfQ0hFQ0tfUEtHUyIgXTsg dGhlbgotCWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERfVEVTVFM9T04iCisJY29uZmlndXJl X2FyZ3M9Ii1EUVRfQlVJTERfVEVTVFM9T04iCiBmaQogCiBwcmVfY2hlY2soKSB7CkBAIC0yOCw4 ICsyNywxMCBAQCBxdDYtbG90dGllLWRldmVsX3BhY2thZ2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7 CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNy L2xpYi9tZXRhdHlwZXMKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcwogCQl2bW92ZSAidXNy L2xpYi8qLnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0 Ni9tb2R1bGVzCiAJfQogfQoKRnJvbSAyNmE4ODIzMjU4MGUxNjQ5ZDMzYmI5ZWMxMzM3ZjMzNzgz NjYxZTgzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1D Mz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdt YWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjA4ICswNzAwClN1YmplY3Q6IFtQ QVRDSCAwNy8yNl0gcXQ2LW5ldHdvcmthdXRoOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3Br Z3MvcXQ2LW5ldHdvcmthdXRoL3RlbXBsYXRlIHwgMTAgKysrKysrLS0tLQogMSBmaWxlIGNoYW5n ZWQsIDYgaW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dz L3F0Ni1uZXR3b3JrYXV0aC90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LW5ldHdvcmthdXRoL3RlbXBs YXRlCmluZGV4IGU5MzRiZWFkYTliMC4uMTQ1NGNlYjRhNTI1IDEwMDY0NAotLS0gYS9zcmNwa2dz L3F0Ni1uZXR3b3JrYXV0aC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1uZXR3b3JrYXV0aC90 ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtbmV0d29y a2F1dGgnCiBwa2duYW1lPXF0Ni1uZXR3b3JrYXV0aAotdmVyc2lvbj02LjMuMAordmVyc2lvbj02 LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdG5ldHdvcmthdXRoLWV2ZXJ5d2hlcmUtc3JjLSR7 dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUVRfSE9TVF9Q QVRIPS91c3IiCiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJhc2UtZGV2ZWwiCiBtYWtlZGVw ZW5kcz0icXQ2LWJhc2UtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNh dGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gbmV0d29ya2F1dGgiCkBAIC0xMiwxMCArMTEsMTAgQEAg bWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAt b25seSIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25s b2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9z dWJtb2R1bGVzL3F0bmV0d29ya2F1dGgtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoi Ci1jaGVja3N1bT0yMDNhOTg5NDI5MTkwMjg1MjAwMzhmOTBhMjBjZDdlZTMyYjUzNzIzMzU0NWQx MWU0MjljM2UyYzFhZDkwNjlmCitjaGVja3N1bT1kNjBmNTRiOWQ0NTA5ZmE4YmRiZjE5OTBiYzkx ZjZlMjYwZTM4Y2RiNTdhN2I4MTE5ZmEzODYxYmM1ZDJmYjJhCiAKIGlmIFsgIiRYQlBTX0NIRUNL X1BLR1MiIF07IHRoZW4KLQljb25maWd1cmVfYXJncys9IiAtRFFUX0JVSUxEX1RFU1RTPU9OIgor CWNvbmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxEX1RFU1RTPU9OIgogZmkKIAogcXQ2LW5ldHdvcmth dXRoLWRldmVsX3BhY2thZ2UoKSB7CkBAIC0yNCw4ICsyMywxMSBAQCBxdDYtbmV0d29ya2F1dGgt ZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUK IAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92 ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3Zl ICJ1c3IvbGliLyouc28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hh cmUvcXQ2L21vZHVsZXMKIAl9CiB9CgpGcm9tIGRhOTlmOWZmZTZlY2Y3OTkzOTUzMGYxZWIzYjQw ZTdhOGZkNmYxMTIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9 OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5o cXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MDggKzA3MDAKU3ViamVj dDogW1BBVENIIDA4LzI2XSBxdDYtcXQ1Y29tcGF0OiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNy Y3BrZ3MvcXQ2LXF0NWNvbXBhdC90ZW1wbGF0ZSB8IDEyICsrKysrKystLS0tLQogMSBmaWxlIGNo YW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNw a2dzL3F0Ni1xdDVjb21wYXQvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1xdDVjb21wYXQvdGVtcGxh dGUKaW5kZXggN2ZjZDVhZDUwODBlLi5hNjI1NzNjZmFiZmEgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3Mv cXQ2LXF0NWNvbXBhdC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1xdDVjb21wYXQvdGVtcGxh dGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXF0NWNvbXBhdCcK IHBrZ25hbWU9cXQ2LXF0NWNvbXBhdAotdmVyc2lvbj02LjMuMAotcmV2aXNpb249MgordmVyc2lv bj02LjMuMQorcmV2aXNpb249MQogd3Jrc3JjPSJxdDVjb21wYXQtZXZlcnl3aGVyZS1zcmMtJHt2 ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BB VEg9L3VzciIKIGhvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZl LWRldmVsIHBlcmwgcGtnLWNvbmZpZyIKIG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBxdDYt ZGVjbGFyYXRpdmUtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlv biBhbmQgVUkgZnJhbWV3b3JrIC0gUXQ1IENvbXBhdGliaWx0eSBDb21wb25lbnQiCkBAIC0xMiwx MCArMTEsMTAgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vu c2U9IkdQTC0zLjAtb25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wLCBMR1BMLTMuMC1vbmx5 LCBHUEwtMi4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVz PSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4q fS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXQ1Y29tcGF0LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lv bn0udGFyLnh6IgotY2hlY2tzdW09MmIxOTliZTc4MGM1MGQ5MjE0NTEyYjkyMmQ5NGNiMjQwYjA0 MTJmZDYzZjQ1OWUzNTZiNzYxMDJjYWQxNzEzZQorY2hlY2tzdW09YTQzZWM2MmJkNzc4ZWFlY2Y4 OGFkNzg0NzExOGQxYzJhNDcxYjBmY2I4MjBmOTNiZWIzMTFkN2FiOTU2NmNmZAogCiBpZiBbICIk WEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCi0JY29uZmlndXJlX2FyZ3MrPSIgLURRVF9CVUlMRF9U RVNUUz1PTiIKKwljb25maWd1cmVfYXJncz0iLURRVF9CVUlMRF9URVNUUz1PTiIKIGZpCiAKIHF0 Ni1xdDVjb21wYXQtZGV2ZWxfcGFja2FnZSgpIHsKQEAgLTI0LDggKzIzLDExIEBAIHF0Ni1xdDVj b21wYXQtZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2lu Y2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcwor CQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJ CXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1 c3Ivc2hhcmUvcXQ2L21vZHVsZXMKIAl9CiB9CgpGcm9tIGMwZDAxOTY5NDlkZGZlYjk0ZTk4Yzhk YTExNzFlNzA5YTU3YzNjMmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/ cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNv bmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MDggKzA3MDAK U3ViamVjdDogW1BBVENIIDA5LzI2XSBxdDYtcXVpY2szZDogdXBkYXRlIHRvIDYuMy4xLgoKLS0t CiBzcmNwa2dzL3F0Ni1xdWljazNkL3RlbXBsYXRlIHwgMTcgKysrKysrKysrKysrLS0tLS0KIDEg ZmlsZSBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXF1aWNrM2QvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni1xdWljazNkL3Rl bXBsYXRlCmluZGV4IDBmN2VmMzM2YTNmZi4uNjg1Y2U5YmMwZTkwIDEwMDY0NAotLS0gYS9zcmNw a2dzL3F0Ni1xdWljazNkL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXF1aWNrM2QvdGVtcGxh dGUKQEAgLTEsMTkgKzEsMjMgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1xdWljazNkJwog cGtnbmFtZT1xdDYtcXVpY2szZAotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNp b249MQogd3Jrc3JjPSJxdHF1aWNrM2QtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxk X3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9L3VzciAiCiBob3N0 bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIHF0 Ni1zaGFkZXJ0b29scy1kZXZlbCIKIG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBxdDYtZGVj bGFyYXRpdmUtZGV2ZWwgcXQ2LXNoYWRlcnRvb2xzLWRldmVsCi0gbGliYXNzaW1wLWRldmVsIgor IHF0Ni1xdWlja3RpbWVsaW5lIGxpYmFzc2ltcC1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBs YXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBRdWljazNkIgogbWFpbnRhaW5l cj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIi CiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5x dC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9k dWxlcy9xdHF1aWNrM2QtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1 bT0wYWQwNWJkMWVlMWY3ODRiMTgyMjBhMmQyNjI1ZWU4ZGU5MTY2MmM4OGZkYzdiNzk4NjYyOTUz ZDg2ZWIzMjdlCitjaGVja3N1bT0yZmE3NjZlZTQ3YjhjMDc0MTJiM2I3NTUyMDZhZGEwNzE1ZmIw NzgxM2I2NGVkMDY5ZTcyMDUwNDRjMDYxMjU2CisKK2lmIFsgIiRDUk9TU19CVUlMRCIgXTsgdGhl bgorCWhvc3RtYWtlZGVwZW5kcys9IiBxdDYtcXVpY2szZC1kZXZlbCIKKwljb25maWd1cmVfYXJn cz0iLURRVF9CVUlMRF9UT09MU19XSEVOX0NST1NTQ09NUElMSU5HPXRydWUiCitmaQogCiBpZiBb ICIkWEJQU19UQVJHRVRfRU5ESUFOIiA9ICJiZSIgXTsgdGhlbgogCSMgcG9zc2libHkgYSBxdDYt c2hhZGVydG9vbHMgYnVnLCBhY3R1YWxseQpAQCAtMjYsOSArMzAsMTIgQEAgcXQ2LXF1aWNrM2Qt ZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUK IAkJdm1vdmUgdXNyL2xpYi9jbWFrZQotCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCisJCXZt b3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3Zl IHVzci9saWIvcXQ2L2JpbgorCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1 c3IvbGliLyouc28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUv cXQ2L21vZHVsZXMKIAl9CiB9CgpGcm9tIDExNjk4NmM5NzlkYjkxNTUyYTUxYjVjMGVmNzg1ZDY4 ODBjZTcwNzMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBv PUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhA Z21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MDkgKzA3MDAKU3ViamVjdDog W1BBVENIIDEwLzI2XSBxdDYtcXVpY2t0aW1lbGluZTogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBj b21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgIHwgMSArCiBzcmNwa2dzL3F0Ni1xdWlj a3RpbWVsaW5lL3RlbXBsYXRlIHwgNyArKystLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0 aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29t bW9uL3NobGlicwppbmRleCA2MTkyNDYxMGNjNTIuLjI2ZjEwZDYwNGJlOSAxMDA2NDQKLS0tIGEv Y29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yMDQ1LDYgKzIwNDUsNyBAQCBs aWJRdDZRdWljazNESWJsQmFrZXIuc28uNiBxdDYtcXVpY2szZC02LjAuM18xCiBsaWJRdDZRdWlj azNEUGFydGljbGVzLnNvLjYgcXQ2LXF1aWNrM2QtNi4xLjBfMQogbGliUXQ2UXVpY2szREdsc2xQ YXJzZXIuc28uNiBxdDYtcXVpY2szZC02LjMuMF8xCiBsaWJRdDZRdWljazNEQXNzZXRVdGlscy5z by42IHF0Ni1xdWljazNkLTYuMS4wXzEKK2xpYlF0NlF1aWNrVGltZWxpbmUuc28uNiBxdDYtcXVp Y2t0aW1lbGluZS02LjMuMF8xCiBsaWJRdDZRdWlja0NvbnRyb2xzMkltcGwuc28uNiBxdDYtZGVj bGFyYXRpdmUtNi4wLjBfMQogbGliUXQ2UXVpY2tDb250cm9sczIuc28uNiBxdDYtZGVjbGFyYXRp dmUtNi4wLjBfMQogbGliUXQ2UXVpY2tUZW1wbGF0ZXMyLnNvLjYgcXQ2LWRlY2xhcmF0aXZlLTYu MC4wXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXF1aWNrdGltZWxpbmUvdGVtcGxhdGUgYi9z cmNwa2dzL3F0Ni1xdWlja3RpbWVsaW5lL3RlbXBsYXRlCmluZGV4IDE1YWE3YThlNTgxOS4uYmYw MmUwNDNjNGE1IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1xdWlja3RpbWVsaW5lL3RlbXBsYXRl CisrKyBiL3NyY3BrZ3MvcXQ2LXF1aWNrdGltZWxpbmUvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBA QAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXF1aWNrdGltZWxpbmUnCiBwa2duYW1lPXF0Ni1x dWlja3RpbWVsaW5lCi12ZXJzaW9uPTYuMy4wCit2ZXJzaW9uPTYuMy4xCiByZXZpc2lvbj0xCiB3 cmtzcmM9InF0cXVpY2t0aW1lbGluZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb24vcmMvLXJjfSIK IGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9L3VzciAi CiBob3N0bWFrZWRlcGVuZHM9InBlcmwgcXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRl dmVsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIK IHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRmb3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsg LSBxdWlja3RpbWVsaW5lIgpAQCAtMTIsMTAgKzExLDEwIEBAIG1haW50YWluZXI9IkpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSJHUEwtMy4wLW9yLWxhdGVyIgogaG9tZXBhZ2U9 Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNp YWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb24vcmMvLXJjfS9zdWJtb2R1bGVz L3F0cXVpY2t0aW1lbGluZS1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb24vcmMvLXJjfS50YXIueHoi Ci1jaGVja3N1bT05ZmYwYTkzMTE1OWVmYzZiZTViZDlmOGExZTRhMTZhNzBlMmRhYjM3Y2YyMmFk ODVjNmQzMzBjY2ZkZjMxYzFhCitjaGVja3N1bT01OGExM2NmMGNlOGU3NzU1NjM5ZjIwNjg0MDc4 NzMzYWYyNGY1YTMxN2Y2ZGRiNDBkNjA3OWM4YzVhMjhlYmJlCiAKIGlmIFsgIiRYQlBTX0NIRUNL X1BLR1MiIF07IHRoZW4KLQljb25maWd1cmVfYXJncys9IiAtRFFUX0JVSUxEX1RFU1RTPU9OIgor CWNvbmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxEX1RFU1RTPU9OIgogZmkKIAogcHJlX2NoZWNrKCkg ewoKRnJvbSA0MDhhZTNhZmY4NTc5NDBlZjAzYmUwZDE2M2QyZDkyODYwNTY5OTNlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1C QT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTog TW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjA5ICswNzAwClN1YmplY3Q6IFtQQVRDSCAxMS8yNl0gcXQ2 LXNjeG1sOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXNjeG1sL3BhdGNoZXMv bm8tY21ha2UtdGVzdC5wYXRjaCB8IDEwICsrKysrKysrKysKIHNyY3BrZ3MvcXQ2LXNjeG1sL3Rl bXBsYXRlICAgICAgICAgICAgICAgICAgICB8IDE3ICsrKysrKysrKysrKy0tLS0tCiAyIGZpbGVz IGNoYW5nZWQsIDIyIGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9xdDYtc2N4bWwvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtc2N4bWwvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoIGIv c3JjcGtncy9xdDYtc2N4bWwvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDY2YzQ1OTMyZjU4Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtc2N4bWwvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCkBAIC0w LDAgKzEsMTAgQEAKKy0tLSBhL3Rlc3RzL2F1dG8vQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3Rz L2F1dG8vQ01ha2VMaXN0cy50eHQKK0BAIC04LDcgKzgsNiBAQCBpZihUQVJHRVQgUXQ6Okd1aSBB TkQgVEFSR0VUIFF0OjpRbWwpCisgICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KHNjaW9uKQorICAg ICAgICAgYWRkX3N1YmRpcmVjdG9yeShzdGF0ZW1hY2hpbmUpCisgICAgICAgICBhZGRfc3ViZGly ZWN0b3J5KHN0YXRlbWFjaGluZWluZm8pCistICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KGNtYWtl KQorICAgICBlbmRpZigpCisgICAgICMgTW9yZSBjaGVja3MgaW5zaWRlCisgICAgIGFkZF9zdWJk aXJlY3RvcnkocW1sKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtc2N4bWwvdGVtcGxhdGUgYi9z cmNwa2dzL3F0Ni1zY3htbC90ZW1wbGF0ZQppbmRleCAxMTJiYWNhMGFiODMuLjUyODZjNDIxYmEy MSAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtc2N4bWwvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9x dDYtc2N4bWwvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn cXQ2LXNjeG1sJwogcGtnbmFtZT1xdDYtc2N4bWwKLXZlcnNpb249Ni4zLjAKK3ZlcnNpb249Ni4z LjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXRzY3htbC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259 IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNy IgogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKIG1ha2VkZXBl bmRzPSJxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBh cHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gc2N4bWwiCkBAIC0xMiwyMCArMTEsMjggQEAg bWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkxHUEwtMy4w LW9ubHkgT1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSIKIGhvbWVwYWdlPSJodHRwczov L3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVh c2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0c2N4bWwtZXZlcnl3 aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0wOWIwZGJkNmFjMzY3OTIwZmIx YmE5NmEzOWRjZDRjOWQzM2ViMDgyMGRjYzc5NTM4OTkyODI1ZDU4OGE3MGYwCitjaGVja3N1bT0w MWJjMTU0ZDYxNjNkMWYwNDlmNGUxZTc2NjU4YTA0NDczMGFjZTdiMGE1YmUzNWM5YTQ2ZmNkMTM5 NmY4NjE5CiAKLWlmIFsgIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KLQljb25maWd1cmVfYXJn cys9IiAtRFFUX0JVSUxEX1RFU1RTPU9OIgoraWYgWyAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJ Y29uZmlndXJlX2FyZ3M9Ii1EUVRfQlVJTERfVE9PTFNfV0hFTl9DUk9TU0NPTVBJTElORz10cnVl IgorCWhvc3RtYWtlZGVwZW5kcys9IiBxdDYtcmVtb3Rlb2JqZWN0cyIKIGZpCiAKK3ByZV9jaGVj aygpIHsKKwlleHBvcnQgUU1MMl9JTVBPUlRfUEFUSD0iJHdya3NyYy9idWlsZC9saWIvcXQ2L3Ft bCIKK30KKwogcXQ2LXNjeG1sLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vw a2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IgogCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVu dCBmaWxlcyIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUg dXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGli L3BrZ2NvbmZpZwogCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3IvbGli Lyouc28iCiAJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2L21v ZHVsZXMKIAl9CiB9CgpGcm9tIDI2YThhOWI2ZjczMTllNDg2NGIzMjNkY2M4ZGM0ZjljN2VkNGQ1 MTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEw bj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwu Y29tPgpEYXRlOiBNb24sIDggQXVnIDIwMjIgMTc6MTM6MDkgKzA3MDAKU3ViamVjdDogW1BBVENI IDEyLzI2XSBxdDYtc2VyaWFscG9ydDogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0 Ni1zZXJpYWxwb3J0L3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaCB8IDkgKysrKysrKysrCiBz cmNwa2dzL3F0Ni1zZXJpYWxwb3J0L3RlbXBsYXRlICAgICAgICAgICAgICAgICAgICB8IDggKysr KystLS0KIDIgZmlsZXMgY2hhbmdlZCwgMTQgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1zZXJpYWxwb3J0L3BhdGNoZXMvbm8tY21h a2UtdGVzdC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXNlcmlhbHBvcnQvcGF0Y2hl cy9uby1jbWFrZS10ZXN0LnBhdGNoIGIvc3JjcGtncy9xdDYtc2VyaWFscG9ydC9wYXRjaGVzL25v LWNtYWtlLXRlc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li40MzQ0NzFjNGE0ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni1zZXJpYWxwb3J0 L3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaApAQCAtMCwwICsxLDkgQEAKKy0tLSBhL3Rlc3Rz L2F1dG8vQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3RzL2F1dG8vQ01ha2VMaXN0cy50eHQKK0BA IC0xLDYgKzEsNSBAQAorIGFkZF9zdWJkaXJlY3RvcnkocXNlcmlhbHBvcnQpCisgYWRkX3N1YmRp cmVjdG9yeShxc2VyaWFscG9ydGluZm8pCistYWRkX3N1YmRpcmVjdG9yeShjbWFrZSkKKyBpZihR VF9GRUFUVVJFX3ByaXZhdGVfdGVzdHMpCisgICAgIGFkZF9zdWJkaXJlY3RvcnkocXNlcmlhbHBv cnRpbmZvcHJpdmF0ZSkKKyBlbmRpZigpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1zZXJpYWxw b3J0L3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtc2VyaWFscG9ydC90ZW1wbGF0ZQppbmRleCAwODA0 NjcxY2E1N2IuLjJkZTlkNjM2NGE1YyAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtc2VyaWFscG9y dC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni1zZXJpYWxwb3J0L3RlbXBsYXRlCkBAIC0xLDEw ICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1zZXJpYWxwb3J0JwogcGtnbmFtZT1x dDYtc2VyaWFscG9ydAotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQog d3Jrc3JjPSJxdHNlcmlhbHBvcnQtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0 eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9L3VzciIKIGhvc3RtYWtl ZGVwZW5kcz0icGVybCBxdDYtYmFzZS1kZXZlbCBwa2ctY29uZmlnIgogbWFrZWRlcGVuZHM9InF0 Ni1iYXNlLWRldmVsIgogc2hvcnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5k IFVJIGZyYW1ld29yayAtIHNlcmlhbHBvcnQiCkBAIC0xMiw3ICsxMSw3IEBAIG1haW50YWluZXI9 IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBsaWNlbnNlPSIoTEdQTC0zLjAtb25seSBPUiBH UEwtMi4wLW9ubHkgT1IgR1BMLTMuMC1vbmx5KSBBTkQgR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BM LWV4Y2VwdGlvbi0xLjAiCiBob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0 dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7 dmVyc2lvbn0vc3VibW9kdWxlcy9xdHNlcmlhbHBvcnQtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9u fS50YXIueHoiCi1jaGVja3N1bT1lZWJkNjkzNGQ0OGNjMDQ0YjhjODc3OTVhNGZkOTFiYjgxZjcx OTVkNGI1YTJkZGIxMjgwMmYzNDNkNWRiNjRmCitjaGVja3N1bT00ZWI2ZDgwZTY1Nzk5ZGQyZTAz MThkZjRkZmJhMTQxNzNjMTkyOWU4NjE3MThjZGE5YmVkY2EyNDI1M2I2MTZlCiAKIHF0Ni1zZXJp YWxwb3J0LWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNp b259XyR7cmV2aXNpb259IHF0Ni1iYXNlLWRldmVsPj0ke3ZlcnNpb259XzEiCkBAIC0yMCw4ICsx OSwxMSBAQCBxdDYtc2VyaWFscG9ydC1kZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxsKCkg ewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVz ci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9s aWIvcXQ2L21rc3BlY3MKIAkJdm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIv Ki5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gYjYyNTI1 Y2JiZjFjOGQxOWEwNDUyNzY2ZTljMzlkYWZmMzQxNzYxMyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1C NG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAy MiAxNzoxMzowOSArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTMvMjZdIHF0Ni1zaGFkZXJ0b29sczog dXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni1zaGFkZXJ0b29scy90ZW1wbGF0ZSB8 IDE0ICsrKysrKysrKysrLS0tCiAxIGZpbGUgY2hhbmdlZCwgMTEgaW5zZXJ0aW9ucygrKSwgMyBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1zaGFkZXJ0b29scy90ZW1wbGF0 ZSBiL3NyY3BrZ3MvcXQ2LXNoYWRlcnRvb2xzL3RlbXBsYXRlCmluZGV4IDljMWVjMjEwYTk2YS4u MzcxNjMzM2M0NTliIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni1zaGFkZXJ0b29scy90ZW1wbGF0 ZQorKysgYi9zcmNwa2dzL3F0Ni1zaGFkZXJ0b29scy90ZW1wbGF0ZQpAQCAtMSwxMCArMSw5IEBA CiAjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtc2hhZGVydG9vbHMnCiBwa2duYW1lPXF0Ni1zaGFk ZXJ0b29scwotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3Jj PSJxdHNoYWRlcnRvb2xzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1j bWFrZQotY29uZmlndXJlX2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IgIgogaG9zdG1ha2VkZXBl bmRzPSJwZXJsIHF0Ni1iYXNlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIgog c2hvcnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAt IHNoYWRlcnRvb2xzIgpAQCAtMTIsNyArMTEsMTMgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9o bm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb3ItbGF0ZXIiCiBob21lcGFnZT0iaHR0 cHM6Ly9xdC5pby8iCiBkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9y ZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdHNoYWRlcnRv b2xzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09NTQ5ODk1OWI5 ZDM3YzI1NGJkMTI2YWIxMzIwY2Y4NmFlYjhhMzFiM2VhN2U1MWRiNjY2YThmOTY5OGFmYmQ2Ywor Y2hlY2tzdW09NTliNzcxNzY5NjE1MjhjYzdiMGM5MzI1MTM0NjU1ZTI3M2FhODdiNGNiMzg2YzBm NDY4M2Q4ZjI4NTJlNDM1YQorCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwljb25maWd1 cmVfYXJncz0iLURRVF9CVUlMRF9UT09MU19XSEVOX0NST1NTQ09NUElMSU5HPXRydWUiCisJaG9z dG1ha2VkZXBlbmRzKz0iIHF0Ni1zaGFkZXJ0b29scy1kZXZlbCIKK2ZpCisKIAogcXQ2LXNoYWRl cnRvb2xzLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNp b259XyR7cmV2aXNpb259IHF0Ni1iYXNlLWRldmVsPj0ke3ZlcnNpb259XzEiCkBAIC0yMCw4ICsy NSwxMSBAQCBxdDYtc2hhZGVydG9vbHMtZGV2ZWxfcGFja2FnZSgpIHsKIAlwa2dfaW5zdGFsbCgp IHsKIAkJdm1vdmUgdXNyL2luY2x1ZGUKIAkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1 c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwogCQl2bW92ZSB1c3Iv bGliL3F0Ni9ta3NwZWNzCiAJCXZtb3ZlICJ1c3IvbGliLyouc28iCiAJCXZtb3ZlICJ1c3IvbGli LyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2L21vZHVsZXMKIAl9CiB9CgpGcm9tIDNmOWI1 NDljZTBhNTI4ZjUxOGNhMDkyYjVhYTcwMWJkOGE4Yjc3ZDEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9 QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDggQXVnIDIw MjIgMTc6MTM6MDkgKzA3MDAKU3ViamVjdDogW1BBVENIIDE0LzI2XSBxdDYtc3ZnOiB1cGRhdGUg dG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXN2Zy90ZW1wbGF0ZSB8IDEwICsrKysrKy0tLS0K IDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtc3ZnL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtc3ZnL3RlbXBsYXRl CmluZGV4IGFhOGU2Yjc0NTEwOS4uMzA5YjA5ODhlNDM1IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0 Ni1zdmcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtc3ZnL3RlbXBsYXRlCkBAIC0xLDEwICsx LDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni1zdmcnCiBwa2duYW1lPXF0Ni1zdmcKLXZl cnNpb249Ni4zLjAKK3ZlcnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXRzdmctZXZl cnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJn cz0iLURRVF9IT1NUX1BBVEg9L3VzciAiCiBob3N0bWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVs IHBlcmwiCiBtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwiCiBzaG9ydF9kZXNjPSJDcm9zcy1w bGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIChRVDYpIC0gcXQ2LXN2ZyBjb21w b25lbnQiCkBAIC0xMiwxMCArMTEsMTAgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0 b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4w LCBHUEwtMi4wLW9yLWxhdGVyLCBMR1BMLTMuMC1vbmx5IgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQu aW8vIgogZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMv cXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRzdmctZXZlcnl3aGVyZS1z cmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT0zMTY0NTA0ZDdlM2Y2NDA0MzkzMDgyMzU3 MzliMTEyNjA1YWI1ZmM5Y2M1MTdjYTBiMjhmOWZiOTNhOGRiMGUzCitjaGVja3N1bT03YjE5ZjQx OGU2ZjdiOGUyMzM0NDA4MmRkMDQ0NDBhYWNmNWRhMjNjNWE3Mzk4MGJhMjJhZTRlYmE0Zjg3ZGY3 CiAKIGlmIFsgIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KLQljb25maWd1cmVfYXJncys9IiAt RFFUX0JVSUxEX1RFU1RTPU9OIgorCWNvbmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxEX1RFU1RTPU9O IgogZmkKIAogZG9fY2hlY2soKSB7CkBAIC0yOSw4ICsyOCwxMSBAQCBxdDYtc3ZnLWRldmVsX3Bh Y2thZ2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJCXZtb3Zl IHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xp Yi9wa2djb25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcwogCQl2bW92ZSAidXNyL2xp Yi8qLnNvIgogCQl2bW92ZSAidXNyL2xpYi8qLnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9t b2R1bGVzCiAJfQogfQoKRnJvbSAyZmE5YmMyNWJiNWU0YTAyMTZkMWZmYmRjNDkzOWNkMTBmMzI3 NjY5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1B MG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWls LmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE3OjEzOjEwICswNzAwClN1YmplY3Q6IFtQQVRD SCAxNS8yNl0gcXQ2LXRvb2xzOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXRv b2xzL3BhdGNoZXMvcWxpdGVodG1sLnBhdGNoIHwgNjggKysrKysrKysrKysrKysrKysrKysrKysK IHNyY3BrZ3MvcXQ2LXRvb2xzL3RlbXBsYXRlICAgICAgICAgICAgICAgIHwgMjUgKysrKysrKy0t CiAyIGZpbGVzIGNoYW5nZWQsIDg4IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtdG9vbHMvcGF0Y2hlcy9xbGl0ZWh0bWwucGF0Y2gK CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni10b29scy9wYXRjaGVzL3FsaXRlaHRtbC5wYXRjaCBi L3NyY3BrZ3MvcXQ2LXRvb2xzL3BhdGNoZXMvcWxpdGVodG1sLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNmJlYzI3OWJjYTY5Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtdG9vbHMvcGF0Y2hlcy9xbGl0ZWh0bWwucGF0Y2gKQEAgLTAsMCArMSw2 OCBAQAorLS0tIGEvc3JjL2Fzc2lzdGFudC9DTWFrZUxpc3RzLnR4dAorKysrIGIvc3JjL2Fzc2lz dGFudC9DTWFrZUxpc3RzLnR4dAorQEAgLTM0LDcgKzM0LDkgQEAgaWYoVEFSR0VUIHFsaXRlaHRt bCkKKyAgICAgcXRfaW50ZXJuYWxfc2V0X2V4Y2VwdGlvbnNfZmxhZ3MobGl0ZWh0bWwgT0ZGKQor ICAgICBxdF9kaXNhYmxlX3dhcm5pbmdzKGxpdGVodG1sKQorICAgICBxdF9kaXNhYmxlX3dhcm5p bmdzKHFsaXRlaHRtbCkKKy0gICAgcXRfZGlzYWJsZV93YXJuaW5ncyhndW1ibykKKysgICAgaWYg KFRBUkdFVCBndW1ibykKKysgICAgICAgIHF0X2Rpc2FibGVfd2FybmluZ3MoZ3VtYm8pCisrICAg IGVuZGlmKCkKKyAgICAgcXRfaGFuZGxlX211bHRpX2NvbmZpZ19vdXRwdXRfZGlycyhxbGl0ZWh0 bWwpCisgICAgIHNldF90YXJnZXRfcHJvcGVydGllcyhxbGl0ZWh0bWwgUFJPUEVSVElFUworICAg ICAgICAgUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICIke1FUX0JVSUxEX0RJUn0vJHtJTlNUQUxM X0JJTkRJUn0iCistLS0gYS9zcmMvYXNzaXN0YW50L3FsaXRlaHRtbC9zcmMvM3JkcGFydHkvbGl0 ZWh0bWwvQ01ha2VMaXN0cy50eHQKKysrKyBiL3NyYy9hc3Npc3RhbnQvcWxpdGVodG1sL3NyYy8z cmRwYXJ0eS9saXRlaHRtbC9DTWFrZUxpc3RzLnR4dAorQEAgLTE5Niw1MiArMTk2LDYgQEAgZW5k aWYoKQorIHNldF9zb3VyY2VfZmlsZXNfcHJvcGVydGllcygke0NNQUtFX0NVUlJFTlRfU09VUkNF X0RJUn0vc3JjL21hc3Rlci5jc3MuaW5jIFBST1BFUlRJRVMgR0VORVJBVEVEIFRSVUUpCisgCisg IyBUZXN0cworLQorLWlmIChCVUlMRF9URVNUSU5HKQorLSAgICBpbmNsdWRlKEZldGNoQ29udGVu dCkKKy0gICAgRmV0Y2hDb250ZW50X0RlY2xhcmUoCistICAgICAgZ29vZ2xldGVzdAorLSAgICAg IFVSTCBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYXJjaGl2ZS82MDkyODEw ODhjZmVmYzc2ZjlkMGNlODJlMWZmNmMzMGNjMzU5MWU1LnppcAorLSAgICApCistICAgICMgRm9y IFdpbmRvd3M6IFByZXZlbnQgb3ZlcnJpZGluZyB0aGUgcGFyZW50IHByb2plY3QncyBjb21waWxl ci9saW5rZXIgc2V0dGluZ3MKKy0gICAgc2V0KGd0ZXN0X2ZvcmNlX3NoYXJlZF9jcnQgT04gQ0FD SEUgQk9PTCAiIiBGT1JDRSkKKy0gICAgRmV0Y2hDb250ZW50X0dldFByb3BlcnRpZXMoZ29vZ2xl dGVzdCkKKy0gICAgaWYoTk9UIGdvb2dsZXRlc3RfUE9QVUxBVEVEKQorLSAgICAgIEZldGNoQ29u dGVudF9Qb3B1bGF0ZShnb29nbGV0ZXN0KQorLSAgICAgIGFkZF9zdWJkaXJlY3RvcnkoJHtnb29n bGV0ZXN0X1NPVVJDRV9ESVJ9ICR7Z29vZ2xldGVzdF9CSU5BUllfRElSfSkKKy0gICAgZW5kaWYo KQorLQorLSAgICBlbmFibGVfdGVzdGluZygpCistCistICAgIHNldChURVNUX05BTUUgJHtQUk9K RUNUX05BTUV9X3Rlc3RzKQorLQorLSAgICBhZGRfZXhlY3V0YWJsZSgKKy0gICAgICAgICR7VEVT VF9OQU1FfQorLSAgICAgICAgJHtURVNUX0xJVEVIVE1MfQorLSAgICAgICAgJHtDTUFLRV9DVVJS RU5UX1NPVVJDRV9ESVJ9L3NyYy9tYXN0ZXIuY3NzLmluYworLSAgICApCistCistICAgIHNldF90 YXJnZXRfcHJvcGVydGllcygke1RFU1RfTkFNRX0gUFJPUEVSVElFUworLSAgICAgICAgQ1hYX1NU QU5EQVJEIDExCistICAgICAgICBDX1NUQU5EQVJEIDk5CistICAgICAgICBQVUJMSUNfSEVBREVS ICIke0hFQURFUl9MSVRFSFRNTH0iCistICAgICkKKy0KKy0gICAgdGFyZ2V0X2luY2x1ZGVfZGly ZWN0b3JpZXMoCistICAgICAgICAke1RFU1RfTkFNRX0KKy0gICAgICAgIFBVQkxJQyAke0NNQUtF X0NVUlJFTlRfU09VUkNFX0RJUn0vY29udGFpbmVycworLSAgICApCistCistICAgIHRhcmdldF9s aW5rX2xpYnJhcmllcygKKy0gICAgICAgICR7VEVTVF9OQU1FfQorLSAgICAgICAgJHtQUk9KRUNU X05BTUV9CistICAgICAgICBndGVzdF9tYWluCistICAgICkKKy0KKy0gICAgaW5jbHVkZShHb29n bGVUZXN0KQorLSAgICBndGVzdF9kaXNjb3Zlcl90ZXN0cygke1RFU1RfTkFNRX0pCistZW5kaWYo KQorLQorICMgICAgIHNldChURVNUX05BTUUgJHtQUk9KRUNUX05BTUV9X3Rlc3RzKQorICMgICAg IGFkZF9leGVjdXRhYmxlKCR7VEVTVF9OQU1FfSAke1RFU1RfTElURUhUTUx9ICR7Q01BS0VfQ1VS UkVOVF9TT1VSQ0VfRElSfS9zcmMvbWFzdGVyLmNzcy5pbmMpCisgIyAgICAgc2V0X3RhcmdldF9w cm9wZXJ0aWVzKCR7VEVTVF9OQU1FfSBQUk9QRVJUSUVTCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni10b29scy90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LXRvb2xzL3RlbXBsYXRlCmluZGV4IGY4NzVk ZmY1YzA0Ni4uYTg0NGI2N2RlZTllIDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni10b29scy90ZW1w bGF0ZQorKysgYi9zcmNwa2dzL3F0Ni10b29scy90ZW1wbGF0ZQpAQCAtMSwyMyArMSwzNSBAQAog IyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LXRvb2xzJwogcGtnbmFtZT1xdDYtdG9vbHMKLXZlcnNp b249Ni4zLjAKK3ZlcnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXR0b29scy1ldmVy eXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdz PSItRFFUX0hPU1RfUEFUSD0vdXNyICIKLWhvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwg cGVybCIKLW1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBsaWJhdG9taWMtZGV2ZWwiCitjb25m aWd1cmVfYXJncz0iLURFWFRFUk5BTF9HVU1CTz1PTiAtRExJVEVIVE1MX1VURjg9T04gLURVU0Vf SUNVPU9OCisgLURRVF9CVUlMRF9TSEFSRURfTElCUz1PTiAtRFFUX0ZFQVRVUkVfYXNzaXN0YW50 PU9OIgoraG9zdG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBwZXJsIHF0Ni1wbHVnaW4tc3Fs aXRlIgorbWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIGxpYmF0b21pYy1kZXZlbCBxdDYtcGx1 Z2luLXNxbGl0ZQorIGd1bWJvLXBhcnNlci1kZXZlbCBpY3UtZGV2ZWwiCiBzaG9ydF9kZXNjPSJD cm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIChRVDYpIC0gcXQ2LXRv b2xzIGNvbXBvbmVudCIKIG1haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRldj4iCiBs aWNlbnNlPSJHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCwgTEdQTC0zLjAt b25seSwgR1BMLTIuMC1vci1sYXRlciIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3Rm aWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lv biUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0dG9vbHMtZXZlcnl3aGVyZS1zcmMtJHt2ZXJz aW9ufS50YXIueHoiCi1jaGVja3N1bT1mY2U5NDY4OGVhOTI1NzgyYTI4NzkzNDc1ODQ5OTFmODU0 NjMwZGFhZGJhNmM1MmFlZDZkOTNlMzNjZDBiMTljCitjaGVja3N1bT1jNDEyNzUwZjJhYTNiZWI5 M2ZjZTVmMzA1MTdjNjA3ZjU1ZGFhZWI3ZDA0MDdhZjIwNmE4YWRmOTE3ZTEyNmMxCisKK2lmIFsg IiRDUk9TU19CVUlMRCIgXTsgdGhlbgorCWNvbmZpZ3VyZV9hcmdzKz0iIC1EUVRfQlVJTERfVE9P TFNfV0hFTl9DUk9TU0NPTVBJTElORz1UUlVFIgorCWhvc3RtYWtlZGVwZW5kcys9IiBxdDYtdG9v bHMtZGV2ZWwiCitmaQorCiAKIGlmIFsgIiRYQlBTX0NIRUNLX1BLR1MiIF07IHRoZW4KIAljb25m aWd1cmVfYXJncys9IiAtRFFUX0JVSUxEX1RFU1RTPU9OIgogZmkKIAorcG9zdF9idWlsZCgpIHsK KwluaW5qYSAtQyBidWlsZCAke21ha2Vqb2JzfSBsaWIvcXQ2L2xpYmV4ZWMvcWhlbHBnZW5lcmF0 b3IKK30KKwogZG9fY2hlY2soKSB7CiAJY2QgYnVpbGQKIAkjIFNvbWUgb2YgdGhlc2UgdGVzdHMg ZXhwZWN0IHRoYXQgcXQ2LXRvb2xzIGlzIGFscmVhZHkKQEAgLTMxLDggKzQzLDExIEBAIHF0Ni10 b29scy1kZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5j bHVkZQogCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJ CXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJ dm1vdmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVz ci9zaGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gNTgzZGFlYjUwNjhhMzAyM2EyYjQzMmU3 Mjc2ZThkNTRhZGI1ZDAwYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x Pz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29u Z2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzoxMCArMDcwMApT dWJqZWN0OiBbUEFUQ0ggMTYvMjZdIHF0Ni10cmFuc2xhdGlvbnM6IHVwZGF0ZSB0byA2LjMuMS4K Ci0tLQogc3JjcGtncy9xdDYtdHJhbnNsYXRpb25zL3RlbXBsYXRlIHwgNSArKy0tLQogMSBmaWxl IGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni10cmFuc2xhdGlvbnMvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni10cmFuc2xhdGlv bnMvdGVtcGxhdGUKaW5kZXggYmUwYTc0Y2E3NGUyLi4xYjkxN2NjYjM2MjAgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvcXQ2LXRyYW5zbGF0aW9ucy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL3F0Ni10cmFu c2xhdGlvbnMvdGVtcGxhdGUKQEAgLTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAn cXQ2LXRyYW5zbGF0aW9ucycKIHBrZ25hbWU9cXQ2LXRyYW5zbGF0aW9ucwotdmVyc2lvbj02LjMu MAordmVyc2lvbj02LjMuMQogcmV2aXNpb249MQogd3Jrc3JjPSJxdHRyYW5zbGF0aW9ucy1ldmVy eXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3VyZV9hcmdz PSItRFFUX0hPU1RfUEFUSD0vdXNyICIKIGhvc3RtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwg cXQ2LXRvb2xzLWRldmVsIHBlcmwiCiBtYWtlZGVwZW5kcz0icXQ2LWJhc2UtZGV2ZWwgcXQ2LXRv b2xzLWRldmVsIgogc2hvcnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJ IGZyYW1ld29yayAtIHRyYW5zbGF0aW9ucyIKQEAgLTEyLDQgKzExLDQgQEAgbWFpbnRhaW5lcj0i Sm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxpY2Vuc2U9IkdQTC0zLjAtb25seSB3aXRoIFF0 LUdQTC1leGNlcHRpb24tMS4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVz PSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4q fS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXR0cmFuc2xhdGlvbnMtZXZlcnl3aGVyZS1zcmMtJHt2 ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT1lNGRkNGVmODkyYTM0YTk1MTRhMTkyMzhmMTg5YTMz ZWQ4NWM3NmYzMWRjYWQ2NTk5Y2VkOTNiMWUzMzQ0MGIzCitjaGVja3N1bT1kN2JkZDU1ZTI5MDhk ZWQ5MDFkY2MyNjIxNTcxMDBhZjJhNDkwYmYwNGQzMWUzMjk5NWY2ZDkxZDc4ZGZkYjk3CgpGcm9t IGZlNDY5YWJkZWNlYmViYTViZjA2Mzg1NmU2ZGU2MjRjZmQwNGM1OTQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0y MEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBNb24sIDgg QXVnIDIwMjIgMTc6MTM6MTAgKzA3MDAKU3ViamVjdDogW1BBVENIIDE3LzI2XSBxdDYtdmlydHVh bGtleWJvYXJkOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXZpcnR1YWxrZXli b2FyZC90ZW1wbGF0ZSB8IDEwICsrKysrKy0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlv bnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtdmlydHVhbGtl eWJvYXJkL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtdmlydHVhbGtleWJvYXJkL3RlbXBsYXRlCmlu ZGV4IDY3ZWNlZjE0NWVhMS4uNzdhMjQ3NDAwYjk3IDEwMDY0NAotLS0gYS9zcmNwa2dzL3F0Ni12 aXJ0dWFsa2V5Ym9hcmQvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtdmlydHVhbGtleWJvYXJk L3RlbXBsYXRlCkBAIC0xLDEwICsxLDkgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni12aXJ0 dWFsa2V5Ym9hcmQnCiBwa2duYW1lPXF0Ni12aXJ0dWFsa2V5Ym9hcmQKLXZlcnNpb249Ni4zLjAK K3ZlcnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXR2aXJ0dWFsa2V5Ym9hcmQtZXZl cnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0eWxlPWNtYWtlCi1jb25maWd1cmVfYXJn cz0iLURRVF9IT1NUX1BBVEg9L3VzciIKIGhvc3RtYWtlZGVwZW5kcz0icGVybCBwa2ctY29uZmln IHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKIG1ha2VkZXBlbmRzPSJxdDYtZGVjbGFyYXRpdmUtZGV2 ZWwgcXQ2LXN2Zy1kZXZlbCBodW5zcGVsbC1kZXZlbCIKIHNob3J0X2Rlc2M9IkNyb3NzLXBsYXRm b3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSB2aXJ0dWFsa2V5Ym9hcmQiCkBAIC0x MiwxMCArMTEsMTAgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxp Y2Vuc2U9IkdQTC0zLjAtb25seSIKIGhvbWVwYWdlPSJodHRwczovL3F0LmlvLyIKIGRpc3RmaWxl cz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3JlbGVhc2VzL3F0LyR7dmVyc2lvbiUu Kn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0dmlydHVhbGtleWJvYXJkLWV2ZXJ5d2hlcmUtc3Jj LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09ODlhYWYxNWFjZjU0MzJhZjhmNWNmNGVjNDVj YjMyZDg3YTMzNDg5MDYyMTVkZDU2ZTgxY2IyOTRlYjI3NjU3MworY2hlY2tzdW09NWZlMDg5YjIw NGQ4NTlhYjBkZDAxNjlmODExZjJlMzBjYWU3YzVjYjM2ZjhhYjk1Y2EzNjg4M2YxZmMwYzJiOAog CiBpZiBbICIkWEJQU19DSEVDS19QS0dTIiBdOyB0aGVuCi0JY29uZmlndXJlX2FyZ3MrPSIgLURR VF9CVUlMRF9URVNUUz1PTiIKKwljb25maWd1cmVfYXJncz0iLURRVF9CVUlMRF9URVNUUz1PTiIK IGZpCiAKIGRvX2NoZWNrKCkgewpAQCAtMzIsOCArMzEsMTEgQEAgcXQ2LXZpcnR1YWxrZXlib2Fy ZC1kZXZlbF9wYWNrYWdlKCkgewogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVk ZQogCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZt b3ZlIHVzci9saWIvcGtnY29uZmlnCiAJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1v dmUgInVzci9saWIvKi5zbyIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9z aGFyZS9xdDYvbW9kdWxlcwogCX0KIH0KCkZyb20gYWVkMDA4MDE2NTgxNmNjMDFkYjcwOWNkM2M2 MGQ5YmI2OWU2ODExNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1D ND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2Rh bmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzoxMCArMDcwMApTdWJq ZWN0OiBbUEFUQ0ggMTgvMjZdIHF0Ni13YXlsYW5kOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNy Y3BrZ3MvcXQ2LXdheWxhbmQvdGVtcGxhdGUgfCAxOCArKysrKysrKysrKy0tLS0tLS0KIDEgZmls ZSBjaGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh L3NyY3BrZ3MvcXQ2LXdheWxhbmQvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni13YXlsYW5kL3RlbXBs YXRlCmluZGV4IGI3MWEyNzMwMDliOS4uMjQ5MjcxYmQzYTdkIDEwMDY0NAotLS0gYS9zcmNwa2dz L3F0Ni13YXlsYW5kL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3MvcXQ2LXdheWxhbmQvdGVtcGxhdGUK QEAgLTEsMTMgKzEsMTQgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni13YXlsYW5kJwogcGtn bmFtZT1xdDYtd2F5bGFuZAotdmVyc2lvbj02LjMuMAordmVyc2lvbj02LjMuMQogcmV2aXNpb249 MQogd3Jrc3JjPSJxdHdheWxhbmQtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKIGJ1aWxkX3N0 eWxlPWNtYWtlCi1jb25maWd1cmVfYXJncz0iLURRVF9IT1NUX1BBVEg9L3VzciAtRFFUX0JVSUxE X1RPT0xTX1dIRU5fQ1JPU1NDT01QSUxJTkc9dHJ1ZSIKLWhvc3RtYWtlZGVwZW5kcz0icXQ2LWJh c2UtZGV2ZWwgcGVybCBwa2ctY29uZmlnIHdheWxhbmQtZGV2ZWwgcXQ2LXdheWxhbmQtZGV2ZWwi Citob3N0bWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHBlcmwgcGtnLWNvbmZpZyB3YXlsYW5k LWRldmVsCisgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgogIyBYWFg6IFFtbCBhcyBvcHRpb25hbCBk ZXAKIG1ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCB3YXlsYW5kLWRldmVsIGxpYnhrYmNvbW1v bi1kZXZlbAorIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbAogIGxpYlhjb21wb3NpdGUtZGV2ZWwgTWVz YUxpYi1kZXZlbCBWdWxrYW4tSGVhZGVycyBsaWJkcm0tZGV2ZWwiCiBjaGVja2RlcGVuZHM9ImRi dXMgbWVzYS1kcmkiCiBzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQg VUkgZnJhbWV3b3JrIC0gV2F5bGFuZCIKQEAgLTE1LDEwICsxNiwxMSBAQCBtYWludGFpbmVyPSJK b2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iR1BMLTMuMC1vbmx5IHdpdGggUXQt R1BMLWV4Y2VwdGlvbi0xLjAsIExHUEwtMy4wLW9ubHksIEdQTC0yLjAtb3ItbGF0ZXIiCiBob21l cGFnZT0iaHR0cHM6Ly93d3cucXQuaW8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8vZG93bmxvYWQucXQu aW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVs ZXMvcXR3YXlsYW5kLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09 ZTdiNTY3ZjZlNDNmZmM1OTE4ZDRhYTgyNWNlMWVjZWQ2NmEwMGNiMGE4NzEzM2IyOTEyYmE1YzFi MmEwMjE5MAorY2hlY2tzdW09NmYxNGZlYTJkMTcyYTViNDE3MGJlM2VmY2IwZTU4NTM1ZjY2MDVi NjFiY2Q4MjNmNmQ1YzlkMTY1YmI4YzBmMAogCi1pZiBbICIkWEJQU19DSEVDS19QS0dTIiBdOyB0 aGVuCi0JY29uZmlndXJlX2FyZ3MrPSIgLURRVF9CVUlMRF9URVNUUz1PTiIKK2lmIFsgIiRDUk9T U19CVUlMRCIgXTsgdGhlbgorCWNvbmZpZ3VyZV9hcmdzPSItRFFUX0JVSUxEX1RPT0xTX1dIRU5f Q1JPU1NDT01QSUxJTkc9dHJ1ZSIKKwlob3N0bWFrZWRlcGVuZHMrPSIgcXQ2LXdheWxhbmQtZGV2 ZWwiCiBmaQogCiBkb19jaGVjaygpIHsKQEAgLTMyLDkgKzM0LDExIEBAIHF0Ni13YXlsYW5kLWRl dmVsX3BhY2thZ2UoKSB7CiAJcGtnX2luc3RhbGwoKSB7CiAJCXZtb3ZlIHVzci9pbmNsdWRlCiAJ CXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlwZXMKKwkJdm1vdmUg dXNyL2xpYi9wa2djb25maWcKIAkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVjcwotCQl2bW92ZSB1 c3IvbGliL3F0Ni9saWJleGVjL3F0d2F5bGFuZHNjYW5uZXIKIAkJdm1vdmUgInVzci9saWIvKi5z byIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxl cwogCX0KIH0KCkZyb20gOGI4ZjkwY2FiZGU4MDJiNzUwNGRmNmMwMTkwZWU3NTIyM2YyYjgwZSBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIw VHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+ CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzoxMCArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMTkv MjZdIHF0Ni13ZWJzb2NrZXRzOiB1cGRhdGUgdG8gNi4zLjEuCgotLS0KIHNyY3BrZ3MvcXQ2LXdl YnNvY2tldHMvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoIHwgIDcgKysrKysrKwogc3JjcGtn cy9xdDYtd2Vic29ja2V0cy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAxNCArKysrKysr KysrKy0tLQogMiBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYnNvY2tldHMvcGF0Y2hlcy9uby1j bWFrZS10ZXN0LnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2Vic29ja2V0cy9wYXRj aGVzL25vLWNtYWtlLXRlc3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJzb2NrZXRzL3BhdGNoZXMv bm8tY21ha2UtdGVzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjg4MjlmOWZhYjFkZgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYnNvY2tl dHMvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCkBAIC0wLDAgKzEsNyBAQAorLS0tIGEvdGVz dHMvYXV0by9DTWFrZUxpc3RzLnR4dAorKysrIGIvdGVzdHMvYXV0by9DTWFrZUxpc3RzLnR4dAor QEAgLTEsNCArMSwzIEBACistYWRkX3N1YmRpcmVjdG9yeShjbWFrZSkKKyBhZGRfc3ViZGlyZWN0 b3J5KHdlYnNvY2tldHMpCisgaWYoVEFSR0VUIFF0OjpRdWljaykKKyAgICAgYWRkX3N1YmRpcmVj dG9yeShxbWwpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJzb2NrZXRzL3RlbXBsYXRlIGIv c3JjcGtncy9xdDYtd2Vic29ja2V0cy90ZW1wbGF0ZQppbmRleCBjMmU2NzRhYWNiMzEuLmU1NzUz Y2E4OGQwMiAxMDA2NDQKLS0tIGEvc3JjcGtncy9xdDYtd2Vic29ja2V0cy90ZW1wbGF0ZQorKysg Yi9zcmNwa2dzL3F0Ni13ZWJzb2NrZXRzL3RlbXBsYXRlCkBAIC0xLDE4ICsxLDIzIEBACiAjIFRl bXBsYXRlIGZpbGUgZm9yICdxdDYtd2Vic29ja2V0cycKIHBrZ25hbWU9cXQ2LXdlYnNvY2tldHMK LXZlcnNpb249Ni4zLjAKK3ZlcnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXR3ZWJz b2NrZXRzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCiBidWlsZF9zdHlsZT1jbWFrZQotY29u ZmlndXJlX2FyZ3M9Ii1EUVRfSE9TVF9QQVRIPS91c3IiCiBob3N0bWFrZWRlcGVuZHM9InBlcmwg cXQ2LWJhc2UtZGV2ZWwgcXQ2LWRlY2xhcmF0aXZlLWRldmVsIgogbWFrZWRlcGVuZHM9InF0Ni1i YXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKK2RlcGVuZHM9InF0Ni1wbHVnaW4tdGxz LW9wZW5zc2wiCitjaGVja2RlcGVuZHM9IiRkZXBlbmRzIgogc2hvcnRfZGVzYz0iQ3Jvc3MtcGxh dGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIHdlYnNvY2tldHMiCiBtYWludGFp bmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgogbGljZW5zZT0iKExHUEwtMy4wLW9ubHkg T1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQTC0zLjAtb25seSB3aXRoIFF0 LUdQTC1leGNlcHRpb24tMS4wIgogaG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgogZGlzdGZpbGVz PSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4q fS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXR3ZWJzb2NrZXRzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVy c2lvbn0udGFyLnh6IgotY2hlY2tzdW09ZTAxOGEwOWZlOTYwYjdkOTU2MGQ2YmJjOWQzY2EwMjJm ZWQ2NTY2ZTZiYTZmYzZkODY5YTk3NDgyZDRlNjM2MQorY2hlY2tzdW09OWY5ODBkOTBjOTdmY2Jk ZTFiNTBjNzczZjZkYzU4MGNmZGY4YzM2Y2UxNGExYmUzYWEyY2NhZGZlNjA1MTIxYQorCitwcmVf Y2hlY2soKSB7CisJZXhwb3J0IFFNTDJfSU1QT1JUX1BBVEg9IiR3cmtzcmMvYnVpbGQvbGliL3F0 Ni9xbWwiCit9CiAKIHF0Ni13ZWJzb2NrZXRzLWRldmVsX3BhY2thZ2UoKSB7CiAJZGVwZW5kcz0i JHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IHF0Ni1iYXNlLWRldmVsPj0ke3Zl cnNpb259XzEiCkBAIC0yMCw4ICsyNSwxMSBAQCBxdDYtd2Vic29ja2V0cy1kZXZlbF9wYWNrYWdl KCkgewogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSB1c3IvaW5jbHVkZQogCQl2bW92ZSB1c3Iv bGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtn Y29uZmlnCiAJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKIAkJdm1vdmUgInVzci9saWIvKi5z byIKIAkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJCXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxl cwogCX0KIH0KCkZyb20gMjJiMzMxNzdlNDYzYTg3MTk1MWQzNTJhYWNiZjNkNGRlM2NmYzgzOCBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIw VHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+ CkRhdGU6IFR1ZSwgOSBBdWcgMjAyMiAyMDoxNjo0NyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjAv MjZdIHF0Ni0zZDogdXBkYXRlIHRvIDYuMy4xLgoKLS0tCiBzcmNwa2dzL3F0Ni0zZC90ZW1wbGF0 ZSB8IDUgKystLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25z KC0pCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtM2QvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni0z ZC90ZW1wbGF0ZQppbmRleCA2NjZmNTc1NTk1MzIuLmMwOGMzYmQ0YTQxYiAxMDA2NDQKLS0tIGEv c3JjcGtncy9xdDYtM2QvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9xdDYtM2QvdGVtcGxhdGUKQEAg LTEsMTAgKzEsOSBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LTNkJwogcGtnbmFtZT1xdDYt M2QKLXZlcnNpb249Ni4zLjAKK3ZlcnNpb249Ni4zLjEKIHJldmlzaW9uPTEKIHdya3NyYz0icXQz ZC1ldmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgogYnVpbGRfc3R5bGU9Y21ha2UKLWNvbmZpZ3Vy ZV9hcmdzPSItRFFUX0hPU1RfUEFUSD0vdXNyIgogaG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1k ZWNsYXJhdGl2ZS1kZXZlbCIKIG1ha2VkZXBlbmRzPSJxdDYtZGVjbGFyYXRpdmUtZGV2ZWwgcXQ2 LXNoYWRlcnRvb2xzLWRldmVsIGxpYmFzc2ltcC1kZXZlbAogIGxpYmF0b21pYy1kZXZlbCIKQEAg LTEzLDcgKzEyLDcgQEAgbWFpbnRhaW5lcj0iSm9obiA8bWVAam9obm55bmF0b3IuZGV2PiIKIGxp Y2Vuc2U9IihMR1BMLTMuMC1vbmx5IE9SIEdQTC0yLjAtb25seSBPUiBHUEwtMy4wLW9ubHkpIEFO RCBHUEwtMy4wLW9ubHkgd2l0aCBRdC1HUEwtZXhjZXB0aW9uLTEuMCIKIGhvbWVwYWdlPSJodHRw czovL3F0LmlvLyIKIGRpc3RmaWxlcz0iaHR0cDovL2Rvd25sb2FkLnF0LmlvL29mZmljaWFsX3Jl bGVhc2VzL3F0LyR7dmVyc2lvbiUuKn0vJHt2ZXJzaW9ufS9zdWJtb2R1bGVzL3F0M2QtZXZlcnl3 aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoiCi1jaGVja3N1bT03NGU3NjIzODBkYWQzNDg4Nzg3 OGI5MTI0ZGJmYjk4MWQ1Y2Y0YjhiODA3MjgxZmY4YmZmMzExMTQ1YjU0ZGUxCitjaGVja3N1bT05 OTE5YjY2ZGZiMjUzZmEyNmRiMWE3ZDY2NDM1OGNiYzA3ZjQ2Yzg4MTAwODJlZTMxMjBkMGE1NGIx NTNlZGZlCiAKIHF0Ni0zZC1kZXZlbF9wYWNrYWdlKCkgewogCWRlcGVuZHM9IiR7c291cmNlcGtn fT49JHt2ZXJzaW9ufV8ke3JldmlzaW9ufSIKCkZyb20gMTAwZjU4NjIyYjU0YTBkYzg3Yzk0YThk YzE4MzZjMTZiZDMyYmYyYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYtOD9x Pz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8Y29u Z2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxNzoxMzoxMSArMDcwMApT dWJqZWN0OiBbUEFUQ0ggMjEvMjZdIE5ldyBwYWNrYWdlOiBxdDYtd2ViY2hhbm5lbC02LjMuMQoK LS0tCiBzcmNwa2dzL3F0Ni13ZWJjaGFubmVsLWRldmVsICAgICAgICAgICAgICAgICAgfCAgMSAr CiAuLi4vcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoICAgICAgICAgICAgICAgfCAgNyArKysr CiBzcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3RlbXBsYXRlICAgICAgICAgICAgICAgfCAzNiArKysr KysrKysrKysrKysrKysrCiBzcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3VwZGF0ZSAgICAgICAgICAg ICAgICAgfCAgMSArCiA0IGZpbGVzIGNoYW5nZWQsIDQ1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBt b2RlIDEyMDAwMCBzcmNwa2dzL3F0Ni13ZWJjaGFubmVsLWRldmVsCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9xdDYtd2ViY2hhbm5lbC9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3RlbXBsYXRlCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViY2hhbm5lbC91cGRhdGUKCmRpZmYgLS1naXQgYS9z cmNwa2dzL3F0Ni13ZWJjaGFubmVsLWRldmVsIGIvc3JjcGtncy9xdDYtd2ViY2hhbm5lbC1kZXZl bApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjAzZThiMjNkNzg1ZAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwtZGV2ZWwKQEAgLTAsMCAr MSBAQAorcXQ2LXdlYmNoYW5uZWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaCBi L3NyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYzAyMDI4NzcyYTJkCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViY2hhbm5lbC9wYXRjaGVzL25vLWNtYWtlLXRlc3Qu cGF0Y2gKQEAgLTAsMCArMSw3IEBACistLS0gYS90ZXN0cy9hdXRvL0NNYWtlTGlzdHMudHh0Cisr KysgYi90ZXN0cy9hdXRvL0NNYWtlTGlzdHMudHh0CitAQCAtMSw0ICsxLDMgQEAKKy1hZGRfc3Vi ZGlyZWN0b3J5KGNtYWtlKQorIGFkZF9zdWJkaXJlY3Rvcnkod2ViY2hhbm5lbCkKKyBpZihUQVJH RVQgUXQ6OlF1aWNrKQorICAgICBhZGRfc3ViZGlyZWN0b3J5KHFtbCkKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmNoYW5uZWwvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3Rl bXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYjgzZTgwMWVm ZmQ0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViY2hhbm5lbC90ZW1wbGF0ZQpA QCAtMCwwICsxLDM2IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtd2ViY2hhbm5lbCcKK3Br Z25hbWU9cXQ2LXdlYmNoYW5uZWwKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKK3dya3NyYz0i cXR3ZWJjaGFubmVsLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0iCitidWlsZF9zdHlsZT1jbWFr ZQoraG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1k ZXZlbCIKK21ha2VkZXBlbmRzPSJxdDYtYmFzZS1kZXZlbCBxdDYtZGVjbGFyYXRpdmUtZGV2ZWwg cXQ2LXdlYnNvY2tldHMtZGV2ZWwiCitzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNh dGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gd2ViY2hhbm5lbCIKK21haW50YWluZXI9IkpvaG4gPG1l QGpvaG5ueW5hdG9yLmRldj4iCitsaWNlbnNlPSIoTEdQTC0zLjAtb25seSBPUiBHUEwtMi4wLW9u bHkgT1IgR1BMLTMuMC1vbmx5KSBBTkQgR1BMLTMuMC1vbmx5IHdpdGggUXQtR1BMLWV4Y2VwdGlv bi0xLjAiCitob21lcGFnZT0iaHR0cHM6Ly9xdC5pby8iCitkaXN0ZmlsZXM9Imh0dHA6Ly9kb3du bG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9xdC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0v c3VibW9kdWxlcy9xdHdlYmNoYW5uZWwtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufS50YXIueHoi CitjaGVja3N1bT1hYWEyMGFjMjNmODY5OTI3MjFiN2VlNDg3YzM3OWEzZmQ2OGNhYThjZGNlYTBh NzdhMzdlMGQ4YjQ3ZmYyNjY4CisKK3ByZV9jaGVjaygpIHsKKwlleHBvcnQgUU1MMl9JTVBPUlRf UEFUSD0iJHdya3NyYy9idWlsZC9saWIvcXQ2L3FtbCIKK30KKworcXQ2LXdlYmNoYW5uZWwtZGV2 ZWxfcGFja2FnZSgpIHsKKwlkZXBlbmRzPSIke3NvdXJjZXBrZ30+PSR7dmVyc2lvbn1fJHtyZXZp c2lvbn0gcXQ2LWJhc2UtZGV2ZWw+PSR7dmVyc2lvbn1fMQorCSBxdDYtd2Vic29ja2V0cy1kZXZl bD49JHt2ZXJzaW9ufV8xIgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlw a2dfaW5zdGFsbCgpIHsKKwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9jbWFr ZQorCQl2bW92ZSB1c3IvbGliL21ldGF0eXBlcworCQl2bW92ZSB1c3IvbGliL3BrZ2NvbmZpZwor CQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCisJCXZtb3ZlIHVzci9saWIvcXQ2L3FtbC9RdFdl YkNoYW5uZWwvcGx1Z2lucy5xbWx0eXBlcworCQl2bW92ZSB1c3IvbGliL3F0Ni9xbWwvUXRXZWJD aGFubmVsL3FtbGRpcgorCQl2bW92ZSAidXNyL2xpYi8qLnNvIgorCQl2bW92ZSAidXNyL2xpYi8q LnBybCIKKwkJdm1vdmUgdXNyL3NoYXJlL3F0Ni9tb2R1bGVzCisJfQorfQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtd2ViY2hhbm5lbC91cGRhdGUgYi9zcmNwa2dzL3F0Ni13ZWJjaGFubmVsL3Vw ZGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg0NDU1MjQ2NTIy MgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmNoYW5uZWwvdXBkYXRlCkBAIC0w LDAgKzEgQEAKK3BrZ25hbWU9IiR7cGtnbmFtZS82LS99LWV2ZXJ5d2hlcmUtc3JjIgoKRnJvbSA5 ZjgwZDM0M2ViNWRmZjZlNzNmMDY0YTk4Y2RkZTc4MjFkNjlkNWU5IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBD PUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1 ZyAyMDIyIDE3OjEzOjExICswNzAwClN1YmplY3Q6IFtQQVRDSCAyMi8yNl0gTmV3IHBhY2thZ2U6 IHF0Ni1tdWx0aW1lZGlhLTYuMy4xCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAg ICAgfCAgMyArKysKIHNyY3BrZ3MvcXQ2LW11bHRpbWVkaWEtZGV2ZWwgICAgfCAgMSArCiBzcmNw a2dzL3F0Ni1tdWx0aW1lZGlhL3RlbXBsYXRlIHwgNDMgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrCiBzcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3VwZGF0ZSAgIHwgIDEgKwogNCBmaWxl cyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMjAwMDAgc3JjcGtncy9x dDYtbXVsdGltZWRpYS1kZXZlbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LW11bHRp bWVkaWEvdGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1tdWx0aW1lZGlh L3VwZGF0ZQoKZGlmZiAtLWdpdCBhL2NvbW1vbi9zaGxpYnMgYi9jb21tb24vc2hsaWJzCmluZGV4 IDI2ZjEwZDYwNGJlOS4uY2UwNGNjMWFkMmNmIDEwMDY0NAotLS0gYS9jb21tb24vc2hsaWJzCisr KyBiL2NvbW1vbi9zaGxpYnMKQEAgLTIwNzgsNiArMjA3OCw5IEBAIGxpYlF0NlNlcmlhbFBvcnQu c28uNiBxdDYtc2VyaWFscG9ydC02LjIuMGFscGhhXzEKIGxpYlF0NldlYlNvY2tldHMuc28uNiBx dDYtd2Vic29ja2V0cy02LjIuMGFscGhhXzEKIGxpYlF0NldlYkNoYW5uZWwuc28uNiBxdDYtd2Vi Y2hhbm5lbC02LjIuMGFscGhhXzEKIGxpYlF0NlBvc2l0aW9uaW5nLnNvLjYgcXQ2LWxvY2F0aW9u LTYuMi4wYWxwaGFfMQorbGliUXQ2TXVsdGltZWRpYVdpZGdldHMuc28uNiBxdDYtbXVsdGltZWRp YS02LjMuMV8xCitsaWJRdDZNdWx0aW1lZGlhUXVpY2suc28uNiBxdDYtbXVsdGltZWRpYS02LjMu MV8xCitsaWJRdDZNdWx0aW1lZGlhLnNvLjYgcXQ2LW11bHRpbWVkaWEtNi4zLjFfMQogbGlibnB0 aC5zby4wIG5wdGgtMS4xXzEKIGxpYm5wdXBucC5zby40IGxpYm5wdXBucC00LjAuMl8xCiBsaWJn bGZ3LnNvLjMgZ2xmdy0zLjAuNF8xCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlh LWRldmVsIGIvc3JjcGtncy9xdDYtbXVsdGltZWRpYS1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAw MAppbmRleCAwMDAwMDAwMDAwMDAuLjkzNDM0NDY1MDJkMAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvcXQ2LW11bHRpbWVkaWEtZGV2ZWwKQEAgLTAsMCArMSBAQAorcXQ2LW11bHRpbWVkaWEK XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni1tdWx0 aW1lZGlhL3RlbXBsYXRlIGIvc3JjcGtncy9xdDYtbXVsdGltZWRpYS90ZW1wbGF0ZQpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg0ZmYzMzE0OTg3NQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3MvcXQ2LW11bHRpbWVkaWEvdGVtcGxhdGUKQEAgLTAsMCArMSw0MyBA QAorIyBUZW1wbGF0ZSBmaWxlIGZvciAncXQ2LW11bHRpbWVkaWEnCitwa2duYW1lPXF0Ni1tdWx0 aW1lZGlhCit2ZXJzaW9uPTYuMy4xCityZXZpc2lvbj0xCit3cmtzcmM9InF0bXVsdGltZWRpYS1l dmVyeXdoZXJlLXNyYy0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9Y21ha2UKK2NvbmZpZ3VyZV9h cmdzPSItRFFUX0ZFQVRVUkVfZ3N0cmVhbWVyPU9OIgoraG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0 Ni1kZWNsYXJhdGl2ZS1kZXZlbCBwa2ctY29uZmlnCisgcXQ2LXNoYWRlcnRvb2xzLWRldmVsIgor bWFrZWRlcGVuZHM9InF0Ni1kZWNsYXJhdGl2ZS1kZXZlbAorIHF0Ni1zaGFkZXJ0b29scy1kZXZl bCBsaWJnbGliLWRldmVsIGdzdC1wbHVnaW5zLWJhc2UxLWRldmVsIgorc2hvcnRfZGVzYz0iQ3Jv c3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZyYW1ld29yayAtIG11bHRpbWVkaWEiCitt YWludGFpbmVyPSJKb2huIDxtZUBqb2hubnluYXRvci5kZXY+IgorbGljZW5zZT0iKExHUEwtMy4w LW9ubHkgT1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQTC0zLjAtb25seSB3 aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8vIgorZGlz dGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJz aW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRtdWx0aW1lZGlhLWV2ZXJ5d2hlcmUtc3Jj LSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09N2UwMzI0MmFhZGQ2MzRmZjJkOWZjZjA4OTQ4 MjkwZjAzZGEzZDlhNTAxMjM2OWQ5MDhkYTg5ZjgyYjFkNzMzNgorCitkb19jaGVjaygpIHsKKwlj ZCBidWlsZAorCWxvY2FsIGJyb2tlbj0idHN0X3FtZWRpYWZvcm1hdHx0c3RfcWF1ZGlvZGVjb2Rl cmJhY2tlbmQiCisJYnJva2VuKz0ifHRzdF9xYXVkaW9kZXZpY2V8dHN0X3FhdWRpb3NvdXJjZXx0 c3RfcWF1ZGlvc2luayIKKwlicm9rZW4rPSJ8dHN0X3FtZWRpYXBsYXllcmJhY2tlbmR8dHN0X3Ft ZWRpYWNhcHR1cmVzZXNzaW9uIgorCWJyb2tlbis9Inx0c3RfcWNhbWVyYWJhY2tlbmR8dHN0X3Fx dWlja3ZpZGVvb3V0cHV0IgorCWJyb2tlbis9Inx0c3RfcXF1aWNrdmlkZW9vdXRwdXRfd2luZG93 IgorCWN0ZXN0IC1FICIoJGJyb2tlbikiCit9CisKK3F0Ni1tdWx0aW1lZGlhLWRldmVsX3BhY2th Z2UoKSB7CisJZGVwZW5kcz0iJHtzb3VyY2Vwa2d9Pj0ke3ZlcnNpb259XyR7cmV2aXNpb259IHF0 Ni1iYXNlLWRldmVsPj0ke3ZlcnNpb259XzEiCisJc2hvcnRfZGVzYys9IiAtIGRldmVsb3BtZW50 IGZpbGVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSB1c3IvaW5jbHVkZQorCQl2bW92ZSB1 c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0YXR5cGVzCisJCXZtb3ZlIHVzci9saWIv cGtnY29uZmlnCisJCXZtb3ZlIHVzci9saWIvcXQ2L21rc3BlY3MKKwkJdm1vdmUgdXNyL2xpYi9x dDYvcW1sL1F0TXVsdGltZWRpYS9wbHVnaW5zLnFtbHR5cGVzCisJCXZtb3ZlIHVzci9saWIvcXQ2 L3FtbC9RdE11bHRpbWVkaWEvcW1sZGlyCisJCXZtb3ZlICJ1c3IvbGliLyouc28iCisJCXZtb3Zl ICJ1c3IvbGliLyoucHJsIgorCX0KK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LW11bHRpbWVk aWEvdXBkYXRlIGIvc3JjcGtncy9xdDYtbXVsdGltZWRpYS91cGRhdGUKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44NDQ1NTI0NjUyMjIKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL3F0Ni1tdWx0aW1lZGlhL3VwZGF0ZQpAQCAtMCwwICsxIEBACitwa2duYW1lPSIk e3BrZ25hbWUvNi0vfS1ldmVyeXdoZXJlLXNyYyIKCkZyb20gMzVlNzIzMzM0YjZhZmM2YWE5ZGEw YjljZGZhNzY0ZDU0ZmRmNjU2OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogPT9VVEYt OD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFuaD89CiA8 Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxODoyMjo0OCArMDcw MApTdWJqZWN0OiBbUEFUQ0ggMjMvMjZdIE5ldyBwYWNrYWdlOiBxdDYtY29ubmVjdGl2aXR5LTYu My4xCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 ICAyICsrCiBzcmNwa2dzL3F0Ni1jb25uZWN0aXZpdHktZGV2ZWwgICAgICAgICAgICAgICAgfCAg MSArCiAuLi4vcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoICAgICAgICAgICAgICAgfCAgOSAr KysrKysKIHNyY3BrZ3MvcXQ2LWNvbm5lY3Rpdml0eS90ZW1wbGF0ZSAgICAgICAgICAgICB8IDMw ICsrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvcXQ2LWNvbm5lY3Rpdml0eS1kZXZlbAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LWNvbm5lY3Rpdml0eS9wYXRjaGVzL25vLWNtYWtlLXRl c3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1jb25uZWN0aXZpdHkvdGVt cGxhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBj ZTA0Y2MxYWQyY2YuLjJlOTVhMjIxMTlhYiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysg Yi9jb21tb24vc2hsaWJzCkBAIC0yMDcyLDYgKzIwNzIsOCBAQCBsaWJRdDZEZXNpZ25lci5zby42 IHF0Ni10b29scy02LjEuMF8xCiBsaWJRdDZEZXNpZ25lckNvbXBvbmVudHMuc28uNiBxdDYtdG9v bHMtNi4xLjBfMQogbGliUXQ2SGVscC5zby42IHF0Ni10b29scy02LjEuMF8xCiBsaWJRdDZVaVRv b2xzLnNvLjYgcXQ2LXRvb2xzLTYuMS4wXzEKK2xpYlF0Nk5mYy5zby42IHF0Ni1jb25uZWN0aXZp dHktNi4zLjFfMQorbGliUXQ2Qmx1ZXRvb3RoLnNvLjYgcXQ2LWNvbm5lY3Rpdml0eS02LjMuMV8x CiBsaWJRdDZIdW5zcGVsbElucHV0TWV0aG9kLnNvLjYgcXQ2LXZpcnR1YWxrZXlib2FyZC02LjEu MF8xCiBsaWJRdDZWaXJ0dWFsS2V5Ym9hcmQuc28uNiBxdDYtdmlydHVhbGtleWJvYXJkLTYuMS4w XzEKIGxpYlF0NlNlcmlhbFBvcnQuc28uNiBxdDYtc2VyaWFscG9ydC02LjIuMGFscGhhXzEKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LWNvbm5lY3Rpdml0eS1kZXZlbCBiL3NyY3BrZ3MvcXQ2LWNv bm5lY3Rpdml0eS1kZXZlbApuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAu LjQ3OGNjOWQ4YWEzOQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LWNvbm5lY3Rpdml0 eS1kZXZlbApAQCAtMCwwICsxIEBACitxdDYtY29ubmVjdGl2aXR5ClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtY29ubmVjdGl2aXR5L3BhdGNoZXMv bm8tY21ha2UtdGVzdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LWNvbm5lY3Rpdml0eS9wYXRjaGVzL25v LWNtYWtlLXRlc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5kZWI4MDA2MmFjNzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni1jb25uZWN0aXZp dHkvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoCkBAIC0wLDAgKzEsOSBAQAorLS0tIGEvdGVz dHMvYXV0by9DTWFrZUxpc3RzLnR4dAorKysrIGIvdGVzdHMvYXV0by9DTWFrZUxpc3RzLnR4dAor QEAgLTI0LDYgKzI0LDMgQEAgaWYoVEFSR0VUIFF0OjpOZmMpCisgICAgIGFkZF9zdWJkaXJlY3Rv cnkocW5kZWZuZmNzbWFydHBvc3RlcnJlY29yZCkKKyAgICAgYWRkX3N1YmRpcmVjdG9yeShxbmRl ZmZpbHRlcikKKyBlbmRpZigpCistaWYoVEFSR0VUIFF0OjpCbHVldG9vdGggQU5EIFRBUkdFVCBR dDo6TmZjKQorLSAgICBhZGRfc3ViZGlyZWN0b3J5KGNtYWtlKQorLWVuZGlmKCkKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LWNvbm5lY3Rpdml0eS90ZW1wbGF0ZSBiL3NyY3BrZ3MvcXQ2LWNvbm5l Y3Rpdml0eS90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAu LjZjYjYxNzQ0ZDBjYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LWNvbm5lY3Rpdml0 eS90ZW1wbGF0ZQpAQCAtMCwwICsxLDMwIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdxdDYtY29u bmVjdGl2aXR5JworcGtnbmFtZT1xdDYtY29ubmVjdGl2aXR5Cit2ZXJzaW9uPTYuMy4xCityZXZp c2lvbj0xCit3cmtzcmM9InF0Y29ubmVjdGl2aXR5LWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0i CitidWlsZF9zdHlsZT1jbWFrZQoraG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1kZWNsYXJhdGl2 ZS1kZXZlbCIKK21ha2VkZXBlbmRzPSJxdDYtZGVjbGFyYXRpdmUtZGV2ZWwiCitzaG9ydF9kZXNj PSJDcm9zcy1wbGF0Zm9ybSBhcHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gQ29ubmVjdGl2 aXR5IgorbWFpbnRhaW5lcj0ixJBvw6BuIFRy4bqnbiBDw7RuZyBEYW5oIDxjb25nZGFuaHF4QGdt YWlsLmNvbT4iCitsaWNlbnNlPSJHUEwtMy4wLW9ubHkiCitob21lcGFnZT0iaHR0cHM6Ly9xdC5p by8iCitkaXN0ZmlsZXM9Imh0dHA6Ly9kb3dubG9hZC5xdC5pby9vZmZpY2lhbF9yZWxlYXNlcy9x dC8ke3ZlcnNpb24lLip9LyR7dmVyc2lvbn0vc3VibW9kdWxlcy9xdGNvbm5lY3Rpdml0eS1ldmVy eXdoZXJlLXNyYy0ke3ZlcnNpb259LnRhci54eiIKK2NoZWNrc3VtPWIyNWNlNDcxMGE5YzYxYmM2 YTVkYmFlZWIzZTJlZDkwN2E4YmM4NTQ3OGZkYjJhYjQzMTIyOTc3NjhiNjk1YjAKKworcXQ2LWNv bm5lY3Rpdml0eS1kZXZlbF9wYWNrYWdlKCkgeworCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2 ZXJzaW9ufV8ke3JldmlzaW9ufQorCSBxdDYtZGVjbGFyYXRpdmU+PSR7dmVyc2lvbn0iCisJc2hv cnRfZGVzYys9IiAtIGRldmVsb3BtZW50IGZpbGVzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92 ZSB1c3IvaW5jbHVkZQorCQl2bW92ZSB1c3IvbGliL2NtYWtlCisJCXZtb3ZlIHVzci9saWIvbWV0 YXR5cGVzCisJCXZtb3ZlIHVzci9saWIvcGtnY29uZmlnCisJCXZtb3ZlIHVzci9saWIvcXQ2L21r c3BlY3MKKwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJ CXZtb3ZlIHVzci9zaGFyZS9xdDYvbW9kdWxlcworCX0KK30KCkZyb20gNGRhNzgyMzQ5OTVmMTUz NzhiYjU2MTAwNWJhZDEzNDYyYTE0MThmOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTog PT9VVEYtOD9xPz1DND05MG89QzM9QTBuPTIwVHI9RTE9QkE9QTduPTIwQz1DMz1CNG5nPTIwRGFu aD89CiA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+CkRhdGU6IE1vbiwgOCBBdWcgMjAyMiAxODoyMjo1 NyArMDcwMApTdWJqZWN0OiBbUEFUQ0ggMjQvMjZdIE5ldyBwYWNrYWdlOiBxdDYtc2Vuc29ycy02 LjMuMQoKLS0tCiBjb21tb24vc2hsaWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMiArKwogc3JjcGtncy9xdDYtc2Vuc29ycy1kZXZlbCAgICAgICAgICAgICAgICAgICAgIHwg IDEgKwogLi4uL3F0Ni1zZW5zb3JzL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaCAgIHwgIDgg KysrKysKIHNyY3BrZ3MvcXQ2LXNlbnNvcnMvdGVtcGxhdGUgICAgICAgICAgICAgICAgICB8IDMx ICsrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNDIgaW5zZXJ0aW9ucygrKQog Y3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvcXQ2LXNlbnNvcnMtZGV2ZWwKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni1zZW5zb3JzL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXNlbnNvcnMvdGVtcGxhdGUKCmRpZmYgLS1n aXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCAyZTk1YTIyMTE5YWIuLjE1 N2I1MWYzZjk4MSAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJz CkBAIC0yMDc0LDYgKzIwNzQsOCBAQCBsaWJRdDZIZWxwLnNvLjYgcXQ2LXRvb2xzLTYuMS4wXzEK IGxpYlF0NlVpVG9vbHMuc28uNiBxdDYtdG9vbHMtNi4xLjBfMQogbGliUXQ2TmZjLnNvLjYgcXQ2 LWNvbm5lY3Rpdml0eS02LjMuMV8xCiBsaWJRdDZCbHVldG9vdGguc28uNiBxdDYtY29ubmVjdGl2 aXR5LTYuMy4xXzEKK2xpYlF0NlNlbnNvcnMuc28uNiBxdDYtc2Vuc29ycy02LjMuMV8xCitsaWJR dDZTZW5zb3JzUXVpY2suc28uNiBxdDYtc2Vuc29ycy02LjMuMV8xCiBsaWJRdDZIdW5zcGVsbElu cHV0TWV0aG9kLnNvLjYgcXQ2LXZpcnR1YWxrZXlib2FyZC02LjEuMF8xCiBsaWJRdDZWaXJ0dWFs S2V5Ym9hcmQuc28uNiBxdDYtdmlydHVhbGtleWJvYXJkLTYuMS4wXzEKIGxpYlF0NlNlcmlhbFBv cnQuc28uNiBxdDYtc2VyaWFscG9ydC02LjIuMGFscGhhXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv cXQ2LXNlbnNvcnMtZGV2ZWwgYi9zcmNwa2dzL3F0Ni1zZW5zb3JzLWRldmVsCm5ldyBmaWxlIG1v ZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uZWI5NDU3ZjA0MDU1Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtc2Vuc29ycy1kZXZlbApAQCAtMCwwICsxIEBACitxdDYtc2Vuc29y cwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXNl bnNvcnMvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoIGIvc3JjcGtncy9xdDYtc2Vuc29ycy9w YXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi42NGY4MTU2M2NiMTMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni1z ZW5zb3JzL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaApAQCAtMCwwICsxLDggQEAKKy0tLSBh L3Rlc3RzL2F1dG8vQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3RzL2F1dG8vQ01ha2VMaXN0cy50 eHQKK0BAIC0xLDUgKzEsNCBAQAorIGFkZF9zdWJkaXJlY3RvcnkocXNlbnNvcikKKy1hZGRfc3Vi ZGlyZWN0b3J5KGNtYWtlKQorIGlmKFRBUkdFVCBRdDo6UXVpY2spCisgICAgIGFkZF9zdWJkaXJl Y3RvcnkocW1sKQorIGVuZGlmKCkKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXNlbnNvcnMvdGVt cGxhdGUgYi9zcmNwa2dzL3F0Ni1zZW5zb3JzL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uNWE4MWY0M2I2MGViCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtc2Vuc29ycy90ZW1wbGF0ZQpAQCAtMCwwICsxLDMxIEBACisjIFRlbXBsYXRlIGZp bGUgZm9yICdxdDYtc2Vuc29ycycKK3BrZ25hbWU9cXQ2LXNlbnNvcnMKK3ZlcnNpb249Ni4zLjEK K3JldmlzaW9uPTEKK3dya3NyYz0icXRzZW5zb3JzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0i CitidWlsZF9zdHlsZT1jbWFrZQoraG9zdG1ha2VkZXBlbmRzPSJwZXJsIHF0Ni1kZWNsYXJhdGl2 ZS1kZXZlbCBxdDYtc3ZnLWRldmVsIHBrZy1jb25maWciCittYWtlZGVwZW5kcz0icXQ2LWRlY2xh cmF0aXZlLWRldmVsIHF0Ni1zdmctZGV2ZWwiCitzaG9ydF9kZXNjPSJDcm9zcy1wbGF0Zm9ybSBh cHBsaWNhdGlvbiBhbmQgVUkgZnJhbWV3b3JrIC0gU2Vuc29ycyIKK21haW50YWluZXI9IsSQb8Og biBUcuG6p24gQ8O0bmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+IgorbGljZW5zZT0iKExH UEwtMy4wLW9ubHkgT1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkgQU5EIEdQTC0zLjAt b25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vcXQuaW8v IgorZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQv JHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRzZW5zb3JzLWV2ZXJ5d2hlcmUt c3JjLSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09NGIyNDBiNTllZGJhOWE0MmI0NzM1NzU4 YTI1ZjI3OWEyNjg0MWI5ODI4NjRlN2IzOGY2ZWYwYjgxZTBkNjBjYworCitxdDYtc2Vuc29ycy1k ZXZlbF9wYWNrYWdlKCkgeworCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufQorCSBxdDYtZGVjbGFyYXRpdmUtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKKwlzaG9ydF9k ZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZtb3ZlIHVz ci9pbmNsdWRlCisJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9tZXRhdHlw ZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xpYi9xdDYvbWtzcGVj cworCQl2bW92ZSB1c3IvbGliL3F0Ni9xbWwvUXRTZW5zb3JzL3BsdWdpbnMucW1sdHlwZXMKKwkJ dm1vdmUgdXNyL2xpYi9xdDYvcW1sL1F0U2Vuc29ycy9xbWxkaXIKKwkJdm1vdmUgInVzci9saWIv Ki5zbyIKKwkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJfQorfQoKRnJvbSA3ZGE3NDdhNWM2MzQz OWQ1NjI1MDRmYjRmYTcyZjJjYTA3YmY1ZDI0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9t OiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBE YW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9uLCA4IEF1ZyAyMDIyIDE4OjIz OjA4ICswNzAwClN1YmplY3Q6IFtQQVRDSCAyNS8yNl0gTmV3IHBhY2thZ2U6IHF0Ni1yZW1vdGVv YmplY3RzLTYuMy4xCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAyICsKIHNyY3BrZ3MvcXQ2LXJlbW90ZW9iamVjdHMtZGV2ZWwgICAgICAgICAg ICAgICB8ICAxICsKIC4uLi9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2ggICAgICAgICAgICAg ICB8ICA5ICsrKysKIHNyY3BrZ3MvcXQ2LXJlbW90ZW9iamVjdHMvdGVtcGxhdGUgICAgICAgICAg ICB8IDQzICsrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNTUgaW5zZXJ0aW9u cygrKQogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3MvcXQ2LXJlbW90ZW9iamVjdHMtZGV2ZWwK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni1yZW1vdGVvYmplY3RzL3BhdGNoZXMvbm8t Y21ha2UtdGVzdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXJlbW90ZW9i amVjdHMvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGli cwppbmRleCAxNTdiNTFmM2Y5ODEuLjkxZjE5N2U1NGM5MyAxMDA2NDQKLS0tIGEvY29tbW9uL3No bGlicworKysgYi9jb21tb24vc2hsaWJzCkBAIC0yMDc0LDYgKzIwNzQsOCBAQCBsaWJRdDZIZWxw LnNvLjYgcXQ2LXRvb2xzLTYuMS4wXzEKIGxpYlF0NlVpVG9vbHMuc28uNiBxdDYtdG9vbHMtNi4x LjBfMQogbGliUXQ2TmZjLnNvLjYgcXQ2LWNvbm5lY3Rpdml0eS02LjMuMV8xCiBsaWJRdDZCbHVl dG9vdGguc28uNiBxdDYtY29ubmVjdGl2aXR5LTYuMy4xXzEKK2xpYlF0NlJlbW90ZU9iamVjdHMu c28uNiBxdDYtcmVtb3Rlb2JqZWN0cy02LjMuMV8xCitsaWJRdDZSZW1vdGVPYmplY3RzUW1sLnNv LjYgcXQ2LXJlbW90ZW9iamVjdHMtNi4zLjFfMQogbGliUXQ2U2Vuc29ycy5zby42IHF0Ni1zZW5z b3JzLTYuMy4xXzEKIGxpYlF0NlNlbnNvcnNRdWljay5zby42IHF0Ni1zZW5zb3JzLTYuMy4xXzEK IGxpYlF0Nkh1bnNwZWxsSW5wdXRNZXRob2Quc28uNiBxdDYtdmlydHVhbGtleWJvYXJkLTYuMS4w XzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXJlbW90ZW9iamVjdHMtZGV2ZWwgYi9zcmNwa2dz L3F0Ni1yZW1vdGVvYmplY3RzLWRldmVsCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAw MDAwMDAwMC4uMmEwMjdmOTUyNjZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtcmVt b3Rlb2JqZWN0cy1kZXZlbApAQCAtMCwwICsxIEBACitxdDYtcmVtb3Rlb2JqZWN0cwpcIE5vIG5l d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXJlbW90ZW9iamVj dHMvcGF0Y2hlcy9uby1jbWFrZS10ZXN0LnBhdGNoIGIvc3JjcGtncy9xdDYtcmVtb3Rlb2JqZWN0 cy9wYXRjaGVzL25vLWNtYWtlLXRlc3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi4yZDliYTk0NjNlYmYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0 Ni1yZW1vdGVvYmplY3RzL3BhdGNoZXMvbm8tY21ha2UtdGVzdC5wYXRjaApAQCAtMCwwICsxLDkg QEAKKy0tLSBhL3Rlc3RzL2F1dG8vQ01ha2VMaXN0cy50eHQKKysrKyBiL3Rlc3RzL2F1dG8vQ01h a2VMaXN0cy50eHQKK0BAIC0xLDYgKzEsNSBAQAorIAorIGFkZF9zdWJkaXJlY3RvcnkoYmVuY2ht YXJrcykKKy1hZGRfc3ViZGlyZWN0b3J5KGNtYWtlKQorIGFkZF9zdWJkaXJlY3RvcnkobW9kZWxy ZXBsaWNhKQorIGFkZF9zdWJkaXJlY3RvcnkobW9kZWx2aWV3KQorIGFkZF9zdWJkaXJlY3Rvcnko cG9kcykKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXJlbW90ZW9iamVjdHMvdGVtcGxhdGUgYi9z cmNwa2dzL3F0Ni1yZW1vdGVvYmplY3RzL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uY2RjM2IyM2Y1MmRlCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9xdDYtcmVtb3Rlb2JqZWN0cy90ZW1wbGF0ZQpAQCAtMCwwICsxLDQzIEBACisjIFRlbXBsYXRl IGZpbGUgZm9yICdxdDYtcmVtb3Rlb2JqZWN0cycKK3BrZ25hbWU9cXQ2LXJlbW90ZW9iamVjdHMK K3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKK3dya3NyYz0icXRyZW1vdGVvYmplY3RzLWV2ZXJ5 d2hlcmUtc3JjLSR7dmVyc2lvbn0iCitidWlsZF9zdHlsZT1jbWFrZQoraG9zdG1ha2VkZXBlbmRz PSJwZXJsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCBwa2ctY29uZmlnIgorbWFrZWRlcGVuZHM9InF0 Ni1kZWNsYXJhdGl2ZS1kZXZlbCIKKyMgTm90IGEgc3RyaWN0IGRlcGVuZGVuY3ksIGJ1dCBpdCdz IDIwMjIsIGV2ZXJ5b25lIHNob3VsZCB1c2UgVExTCitkZXBlbmRzPSJxdDYtcGx1Z2luLXRscy1v cGVuc3NsIgorY2hlY2tkZXBlbmRzPSIkZGVwZW5kcyIKK3Nob3J0X2Rlc2M9IkNyb3NzLXBsYXRm b3JtIGFwcGxpY2F0aW9uIGFuZCBVSSBmcmFtZXdvcmsgLSBSZW1vdGUgT2JqZWN0cyIKK21haW50 YWluZXI9IsSQb8OgbiBUcuG6p24gQ8O0bmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+Igor bGljZW5zZT0iKExHUEwtMy4wLW9ubHkgT1IgR1BMLTIuMC1vbmx5IE9SIEdQTC0zLjAtb25seSkg QU5EIEdQTC0zLjAtb25seSB3aXRoIFF0LUdQTC1leGNlcHRpb24tMS4wIgoraG9tZXBhZ2U9Imh0 dHBzOi8vcXQuaW8vIgorZGlzdGZpbGVzPSJodHRwOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxf cmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8ke3ZlcnNpb259L3N1Ym1vZHVsZXMvcXRyZW1vdGVv YmplY3RzLWV2ZXJ5d2hlcmUtc3JjLSR7dmVyc2lvbn0udGFyLnh6IgorY2hlY2tzdW09ZWE2ZDAz OGIxMWM2MDk4MWRlMGJkMzlhNjA5MWE1OWFiZjdkMDMxZTM3YmZjNTkyYjMxYmUxMjE3YmVmNGNh NgorCitpZiBbICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIgcXQ2 LXJlbW90ZW9iamVjdHMiCisJY29uZmlndXJlX2FyZ3M9Ii1EUVRfQlVJTERfVE9PTFNfV0hFTl9D Uk9TU0NPTVBJTElORz10cnVlIgorZmkKKworcHJlX2NoZWNrKCkgeworCWV4cG9ydCBRTUwyX0lN UE9SVF9QQVRIPSIkd3Jrc3JjL2J1aWxkL2xpYi9xdDYvcW1sIgorfQorCitxdDYtcmVtb3Rlb2Jq ZWN0cy1kZXZlbF9wYWNrYWdlKCkgeworCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9u fV8ke3JldmlzaW9ufQorCSBxdDYtZGVjbGFyYXRpdmUtZGV2ZWw+PSR7dmVyc2lvbn1fMSIKKwlz aG9ydF9kZXNjKz0iIC0gZGV2ZWxvcG1lbnQgZmlsZXMiCisJcGtnX2luc3RhbGwoKSB7CisJCXZt b3ZlIHVzci9pbmNsdWRlCisJCXZtb3ZlIHVzci9saWIvY21ha2UKKwkJdm1vdmUgdXNyL2xpYi9t ZXRhdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9wa2djb25maWcKKwkJdm1vdmUgdXNyL2xpYi9xdDYv bWtzcGVjcworCQl2bW92ZSB1c3IvbGliL3F0Ni9xbWwvUXRSZW1vdGVPYmplY3RzL3BsdWdpbnMu cW1sdHlwZXMKKwkJdm1vdmUgdXNyL2xpYi9xdDYvcW1sL1F0UmVtb3RlT2JqZWN0cy9xbWxkaXIK KwkJdm1vdmUgInVzci9saWIvKi5zbyIKKwkJdm1vdmUgInVzci9saWIvKi5wcmwiCisJfQorfQoK RnJvbSAyMGNhZTBkYzIxYzBmNThlMzQyYWEyNjI0MjA4MzA0Y2I3ZDIzOGY3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogTW9u LCA4IEF1ZyAyMDIyIDE3OjEzOjExICswNzAwClN1YmplY3Q6IFtQQVRDSCAyNi8yNl0gTmV3IHBh Y2thZ2U6IHF0Ni13ZWJlbmdpbmUtNi4zLjEuCgotLS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDcgKwogc3JjcGtncy9xdDYtd2ViZW5naW5lLWRl dmVsICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZXhh bXBsZXMgICAgICAgICAgICAgICAgfCAgICAxICsKIC4uLi9wYXRjaGVzLzAwMDEtTm9uZS1uby1k ZWJ1Zy5wYXRjaCAgICAgICAgICB8ICAgMTEgKwogLi4uL3BhdGNoZXMvMDAwMi1lbmFibGUtcHBj NjQucGF0Y2ggICAgICAgICAgIHwgICAyMCArCiAuLi4vcGF0Y2hlcy8wMDAzLWNyb3NzLWhhY2su cGF0Y2ggICAgICAgICAgICAgfCAgIDEwICsKIC4uLi8wMDA0LXBwYy1kaXNhYmxlLWp4bC1kZWNv ZGVyLnBhdGNoICAgICAgICB8ICAgMTMgKwogLi4uL3BhdGNoZXMvMDA1MC1uby1nbGliYy1jbWFr ZS1jaGVjay5wYXRjaCAgIHwgICAxNCArCiAuLi4vMDEwMC1jaHJvbWl1bS1zYW5kYm94LW1lbWJh cnJpZXIucGF0Y2ggICAgfCAgIDU4ICsKIC4uLi9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1z aXplX3QucGF0Y2ggICB8ICAgMTYgKwogLi4uLzAxMDItY2hyb21pdW0tOTAtcnV5LWluY2x1ZGUu cGF0Y2ggICAgICAgIHwgICAxOSArCiAuLi4tdjgtbW9ub3RvbmljLXB0aHJlYWQtY29udF90aW1l ZHdhaXQucGF0Y2ggfCAgIDIyICsKIC4uLi8wMTA0LWNocm9taXVtLXJldmVydC05ZDA4MGMwLnBh dGNoICAgICAgICB8ICAxNjIgKwogLi4uLWNocm9taXVtLXJldmVydC1kcm9wLW9mLXN5c3RlbS1q YXZhLnBhdGNoIHwgICAxNSArCiAuLi4vcGF0Y2hlcy8wMTA2LWNocm9taXVtLXN5c3RlbS1ub2Rl anMucGF0Y2ggfCAgIDIwICsKIC4uLi8wMTA3LWNocm9taXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUu cGF0Y2ggICB8ICAgMTggKwogLi4uLzAxMDgtY2hyb21pdW0tZml4LW5hcnJvd2luZy1jYXN0LnBh dGNoICAgIHwgICA1MyArCiAuLi4vMDEwOS1jaHJvbWl1bS1yZW1vdmUtc3RyaXBfYmluYXJ5LnBh dGNoICAgfCAgIDMyICsKIC4uLml1bS1yZXZlcnQtdXNlLWZmaWxlLWNvbXBpbGF0aW9uLWRpci5w YXRjaCB8ICAgNTcgKwogLi4uMTEtY2hyb21pdW0tbm8tV25vLXN0cmluZ29wLW92ZXJyZWFkLnBh dGNoIHwgICAxMCArCiAuLi4vMDE1MC1jaHJvbWl1bS1nbGliYy1saWJjX21hbGxvYy5wYXRjaCAg ICAgfCAgIDI0ICsKIC4uLi1pbmNsdWRlLXN5cy1yZWcuaC10by1nZXQtX19XT1JEU0laRS5wYXRj aCB8ICAgMjEgKwogLi4uLzAyMDEtY2hyb21pdW0tbXVzbC1kaXNwYXRjaC10by1tdXNsLnBhdGNo IHwgIDEwMyArCiAuLi4vMDIwMi1jaHJvbWl1bS1tdXNsLW5vLW1hbGxpbmZvLnBhdGNoICAgICAg fCAgIDYyICsKIC4uLi8wMjAzLWNocm9taXVtLW11c2wtc2lnaW5mb190LnBhdGNoICAgICAgICB8 ICAgMTggKwogLi4uLzAyMDQtY2hyb21pdW0tbXVzbC1zdGFja3N0YXJ0LnBhdGNoICAgICAgIHwg ICAyMCArCiAuLi4vcGF0Y2hlcy8wMjA1LWNocm9taXVtLW11c2wtc2FuZGJveC5wYXRjaCAgfCAg IDkyICsKIC4uLjAyMDYtY2hyb21pdW0tbXVzbC1kZWZhdWx0LXN0YWNrc2l6ZS5wYXRjaCB8ICAg MTUgKwogLi4uL3BhdGNoZXMvMDIwOC1jaHJvbWl1bS1tdXNsLWV4ZWNpbmZvLnBhdGNoIHwgIDEy NSArCiAuLi4vMDIwOS1jaHJvbWl1bS1tdXNsLXRocmVhZC1zdGFja3NpemUucGF0Y2ggfCAgIDIy ICsKIC4uLi8wMjEwLWNocm9taXVtLW11c2wtbXNndmVjLXB1c2hfYmFjay5wYXRjaCB8ICAgMTQg KwogLi4uaXVtLW11c2wtY2Fub25pY2FsaXplLWZpbGUtbmFtZS1tdXNsLnBhdGNoIHwgICAxMSAr CiAuLi4vMDIxMi1jaHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2ggICAgfCAgIDI5ICsK IC4uLi9wYXRjaGVzLzAyMTMtY2hyb21pdW0tbXVzbC1jcmFzaHBhZC5wYXRjaCB8ICAgMjQgKwog Li4uL3BhdGNoZXMvMDIxNC1jaHJvbWl1bS1tdXNsLWZpeGVzLnBhdGNoICAgIHwgIDEwOCArCiAu Li4vcGF0Y2hlcy8wMjE1LWNocm9taXVtLW11c2wtY2RlZnMucGF0Y2ggICAgfCAgIDI5ICsKIC4u Li9wYXRjaGVzLzAyMTYtY2hyb21pdW0tbXVzbC1zdGF0LnBhdGNoICAgICB8ICAgMTIgKwogLi4u L3BhdGNoZXMvMDIxNy1jaHJvbWl1bS1tdXNsLXJlc29sdmVyLnBhdGNoIHwgICA3NyArCiAuLi4v cGF0Y2hlcy8wNjAwLWNocm9taXVtLXNuZGlvLnBhdGNoICAgICAgICAgfCAgODc2ICsrKysKIC4u Li9wYXRjaGVzLzA3MDAtYXJtdjdsLW5lb24ucGF0Y2ggICAgICAgICAgICB8ICAgMTAgKwogLi4u LWNocm9taXVtLW11c2wtY3Jvc3Mtbm8tYXNtX3B0cmFjZV9oLnBhdGNoIHwgICAzMCArCiAuLi4v MDc1MS1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5wYXRjaCAgICAgfCAgIDIwICsKIC4uLi8w NzUyLWNocm9taXVtLW11c2wtYXJtLWVsZl9hdXh2X3QucGF0Y2ggICB8ICAgMTggKwogLi4uMDgw MS1jaHJvbWl1bS1pNjg2LXZhYXBpLWZwZXJtaXNzaXZlLnBhdGNoIHwgICAyNCArCiAuLi4vcGF0 Y2hlcy8wOTAwLXh4eC1wcGM2NGxlLWxpYnZweC5wYXRjaCAgICAgfCAgIDY1ICsKIC4uLi8wOTAx LXh4eC1wcGM2NGxlLXNhbmRib3gtbGludXgtc3RhdC5wYXRjaCB8ICAgMzEgKwogLi4uL3BhdGNo ZXMvMDkwMi14eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoICAgIHwgMzU1NiArKysrKysrKysrKysr KysrKwogLi4uLzA5MDMteHh4LXBwYzY0bGUtc3dpZnRzaGFkZXIucGF0Y2ggICAgICAgIHwgICAx OCArCiAuLi4vcGF0Y2hlcy9jcm9zcy1idWlsZC1leGFtcGxlcy5wYXRjaCAgICAgICAgfCAgIDE2 ICsKIHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS90ZW1wbGF0ZSAgICAgICAgICAgICAgICB8ICAxNzgg Kwogc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0ZSAgICAgICAgICAgICAgICAgIHwgICAgMSAr CiA1MSBmaWxlcyBjaGFuZ2VkLCA2MjA4IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAw MCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUtZGV2ZWwKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUtZXhhbXBsZXMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVidWcucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAyLWVuYWJsZS1wcGM2NC5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMt Y3Jvc3MtaGFjay5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAwMDQtcHBjLWRpc2FibGUtanhsLWRlY29kZXIucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtl LWNoZWNrLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEwMC1jaHJvbWl1bS1zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLXNpemVfdC5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDItY2hy b21pdW0tOTAtcnV5LWluY2x1ZGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAzLWNocm9taXVtLXY4LW1vbm90b25pYy1wdGhyZWFkLWNv bnRfdGltZWR3YWl0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDEwNC1jaHJvbWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDUtY2hyb21pdW0tcmV2 ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA2LWNocm9taXVtLXN5c3RlbS1ub2RlanMucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA3LWNo cm9taXVtLWN1cnNlZF5Vc2NvcGVkX2ZpbGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA4LWNocm9taXVtLWZpeC1uYXJyb3dpbmctY2Fz dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAxMDktY2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTAtY2hyb21pdW0tcmV2ZXJ0LXVz ZS1mZmlsZS1jb21waWxhdGlvbi1kaXIucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTExLWNocm9taXVtLW5vLVduby1zdHJpbmdvcC1vdmVy cmVhZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAxNTAtY2hyb21pdW0tZ2xpYmMtbGliY19tYWxsb2MucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAwLWNocm9taXVtLW11c2wtaW5j bHVkZS1zeXMtcmVnLmgtdG8tZ2V0LV9fV09SRFNJWkUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAxLWNocm9taXVtLW11c2wtZGlzcGF0 Y2gtdG8tbXVzbC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAyMDItY2hyb21pdW0tbXVzbC1uby1tYWxsaW5mby5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDMtY2hyb21pdW0tbXVz bC1zaWdpbmZvX3QucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMjA0LWNocm9taXVtLW11c2wtc3RhY2tzdGFydC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDUtY2hyb21pdW0tbXVz bC1zYW5kYm94LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIwNi1jaHJvbWl1bS1tdXNsLWRlZmF1bHQtc3RhY2tzaXplLnBhdGNoCiBjcmVh dGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwOC1jaHJvbWl1 bS1tdXNsLWV4ZWNpbmZvLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDIwOS1jaHJvbWl1bS1tdXNsLXRocmVhZC1zdGFja3NpemUucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEwLWNo cm9taXVtLW11c2wtbXNndmVjLXB1c2hfYmFjay5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTEtY2hyb21pdW0tbXVzbC1jYW5vbmljYWxp emUtZmlsZS1uYW1lLW11c2wucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjEyLWNocm9taXVtLW11c2wtbm8tZ2V0Y29udGV4dC5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTMtY2hy b21pdW0tbXVzbC1jcmFzaHBhZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTQtY2hyb21pdW0tbXVzbC1maXhlcy5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTUtY2hyb21pdW0t bXVzbC1jZGVmcy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAyMTYtY2hyb21pdW0tbXVzbC1zdGF0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNy1jaHJvbWl1bS1tdXNsLXJlc29s dmVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDYwMC1jaHJvbWl1bS1zbmRpby5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3MDAtYXJtdjdsLW5lb24ucGF0Y2gKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUwLWNocm9taXVtLW11c2wt Y3Jvc3Mtbm8tYXNtX3B0cmFjZV9oLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MS1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5wYXRj aAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTIt Y2hyb21pdW0tbXVzbC1hcm0tZWxmX2F1eHZfdC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA4MDEtY2hyb21pdW0taTY4Ni12YWFwaS1mcGVy bWlzc2l2ZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzA5MDAteHh4LXBwYzY0bGUtbGlidnB4LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMS14eHgtcHBjNjRsZS1zYW5kYm94LWxp bnV4LXN0YXQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wOTAyLXh4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAzLXh4eC1wcGM2NGxlLXN3aWZ0c2hh ZGVyLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvY3Jvc3MtYnVpbGQtZXhhbXBsZXMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvdXBkYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxp YnMKaW5kZXggOTFmMTk3ZTU0YzkzLi4xZjhhY2M0M2MzNmUgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9z aGxpYnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtMjA4Nyw2ICsyMDg3LDEzIEBAIGxpYlF0NlBv c2l0aW9uaW5nLnNvLjYgcXQ2LWxvY2F0aW9uLTYuMi4wYWxwaGFfMQogbGliUXQ2TXVsdGltZWRp YVdpZGdldHMuc28uNiBxdDYtbXVsdGltZWRpYS02LjMuMV8xCiBsaWJRdDZNdWx0aW1lZGlhUXVp Y2suc28uNiBxdDYtbXVsdGltZWRpYS02LjMuMV8xCiBsaWJRdDZNdWx0aW1lZGlhLnNvLjYgcXQ2 LW11bHRpbWVkaWEtNi4zLjFfMQorbGliUXQ2V2ViRW5naW5lUXVpY2suc28uNiBxdDYtd2ViZW5n aW5lLTYuMy4xXzEKK2xpYlF0NlBkZldpZGdldHMuc28uNiBxdDYtd2ViZW5naW5lLTYuMy4xXzEK K2xpYlF0NlBkZlF1aWNrLnNvLjYgcXQ2LXdlYmVuZ2luZS02LjMuMV8xCitsaWJRdDZXZWJFbmdp bmVDb3JlLnNvLjYgcXQ2LXdlYmVuZ2luZS02LjMuMV8xCitsaWJRdDZQZGYuc28uNiBxdDYtd2Vi ZW5naW5lLTYuMy4xXzEKK2xpYlF0NldlYkVuZ2luZVF1aWNrRGVsZWdhdGVzUW1sLnNvLjYgcXQ2 LXdlYmVuZ2luZS02LjMuMV8xCitsaWJRdDZXZWJFbmdpbmVXaWRnZXRzLnNvLjYgcXQ2LXdlYmVu Z2luZS02LjMuMV8xCiBsaWJucHRoLnNvLjAgbnB0aC0xLjFfMQogbGlibnB1cG5wLnNvLjQgbGli bnB1cG5wLTQuMC4yXzEKIGxpYmdsZncuc28uMyBnbGZ3LTMuMC40XzEKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbApu ZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjhlNGQxYjk5YzU4NwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS1kZXZlbApAQCAtMCwwICsxIEBA CitxdDYtd2ViZW5naW5lClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9xdDYtd2ViZW5naW5lLWV4YW1wbGVzIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lLWV4 YW1wbGVzCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAwMDAwMDAwMDAwMC4uOGU0ZDFiOTlj NTg3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lLWV4YW1wbGVzCkBA IC0wLDAgKzEgQEAKK3F0Ni13ZWJlbmdpbmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp ZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVi dWcucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAxLU5vbmUtbm8tZGVi dWcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xYmEzM2Y4 ZTZmZDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MDAxLU5vbmUtbm8tZGVidWcucGF0Y2gKQEAgLTAsMCArMSwxMSBAQAorLS0tIGEvY21ha2UvRnVu Y3Rpb25zLmNtYWtlCisrKysgYi9jbWFrZS9GdW5jdGlvbnMuY21ha2UKK0BAIC04MTMsNiArODEz LDggQEAgbWFjcm8oYXBwZW5kX2J1aWxkX3R5cGVfc2V0dXApCisgICAgICAgICBlbmRpZigpCisg ICAgIGVsc2VpZigke2NvbmZpZ30gU1RSRVFVQUwgIk1pblNpemVSZWwiKQorICAgICAgICAgbGlz dChBUFBFTkQgZ25BcmdBcmcgaXNfZGVidWc9ZmFsc2Ugc3ltYm9sX2xldmVsPTAgb3B0aW1pemVf Zm9yX3NpemU9dHJ1ZSkKKysgICAgZWxzZWlmKCR7Y29uZmlnfSBTVFJFUVVBTCAiTm9uZSIpCisr ICAgICAgICBsaXN0KEFQUEVORCBnbkFyZ0FyZyBpc19kZWJ1Zz1mYWxzZSBzeW1ib2xfbGV2ZWw9 MCkKKyAgICAgZW5kaWYoKQorICAgICBpZihGRUFUVVJFX2RldmVsb3Blcl9idWlsZCBPUiAoJHtj b25maWd9IFNUUkVRVUFMICJEZWJ1ZyIpIE9SIFFUX0ZFQVRVUkVfd2ViZW5naW5lX3Nhbml0aXpl cikKKyAgICAgICAgIGxpc3QoQVBQRU5EIGduQXJnQXJnCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDAyLWVuYWJsZS1wcGM2NC5wYXRjaCBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDItZW5hYmxlLXBwYzY0LnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDcyZWYxYWQxYTEwCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwMi1lbmFibGUtcHBjNjQucGF0Y2gK QEAgLTAsMCArMSwyMCBAQAorLS0tIGEvY21ha2UvRnVuY3Rpb25zLmNtYWtlCisrKysgYi9jbWFr ZS9GdW5jdGlvbnMuY21ha2UKK0BAIC02MjIsNiArNjIyLDggQEAgZnVuY3Rpb24oZ2V0X2duX2Fy Y2ggcmVzdWx0IGFyY2gpCisgICAgICAgICBzZXQoJHtyZXN1bHR9ICJtaXBzZWwiIFBBUkVOVF9T Q09QRSkKKyAgICAgZWxzZWlmKGFyY2ggU1RSRVFVQUwgIm1pcHNlbDY0IikKKyAgICAgICAgIHNl dCgke3Jlc3VsdH0gIm1pcHM2NGVsIiBQQVJFTlRfU0NPUEUpCisrICAgIGVsc2VpZihhcmNoIFNU UkVRVUFMICJwb3dlcjY0IikKKysgICAgICAgIHNldCgke3Jlc3VsdH0gInBvd2VyNjQiIFBBUkVO VF9TQ09QRSkKKyAgICAgZWxzZSgpCisgICAgICAgICBtZXNzYWdlKERFQlVHICJVbnN1cHBvcnRl ZCBhcmNoaXRlY3R1cmU6ICR7YXJjaH0iKQorICAgICBlbmRpZigpCitAQCAtNjQxLDYgKzY0Myw4 IEBAIGZ1bmN0aW9uKGdldF92OF9hcmNoIHJlc3VsdCB0YXJnZXRBcmNoIGgKKyAgICAgICAgICAg ICBzZXQoJHtyZXN1bHR9ICJtaXBzZWwiIFBBUkVOVF9TQ09QRSkKKyAgICAgICAgIGVsc2VpZiho b3N0QXJjaCBTVFJFUVVBTCAibWlwc2VsNjQiKQorICAgICAgICAgICAgIHNldCgke3Jlc3VsdH0g Im1pcHNlbCIgUEFSRU5UX1NDT1BFKQorKyAgICAgICAgZWxzZWlmKGhvc3RBcmNoIFNUUkVRVUFM ICJwb3dlcjY0IikKKysgICAgICAgICAgICBzZXQoJHtyZXN1bHR9ICJwb3dlcjY0IiBQQVJFTlRf U0NPUEUpCisgICAgICAgICBlbHNlKCkKKyAgICAgICAgICAgICBtZXNzYWdlKERFQlVHICJVbnN1 cHBvcnRlZCBhcmNoaXRlY3R1cmU6ICR7aG9zdEFyY2h9IikKKyAgICAgICAgIGVuZGlmKCkKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMtY3Jvc3MtaGFjay5w YXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMtY3Jvc3MtaGFjay5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmVhOWY5MDA5NGE2Mwot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDMtY3Jv c3MtaGFjay5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvY29yZS9hcGkvQ01ha2VM aXN0cy50eHQKKysrKyBiL3NyYy9jb3JlL2FwaS9DTWFrZUxpc3RzLnR4dAorQEAgLTUwLDYgKzUw LDcgQEAgcXRfaW50ZXJuYWxfYWRkX21vZHVsZShXZWJFbmdpbmVDb3JlCisgICAgICAgICBRdDo6 R3VpCisgICAgICAgICBRdDo6TmV0d29yaworICAgICAgICAgUXQ6OlF1aWNrCisrICAgICAgICBY MTEKKyApCisgCisgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKFdlYkVuZ2luZUNvcmUgUFJPUEVSVElF UyBRVFdFQkVOR0lORVBST0NFU1NfTkFNRSAke3F0V2ViRW5naW5lUHJvY2Vzc05hbWV9KQpkaWZm IC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDAwNC1wcGMtZGlzYWJsZS1q eGwtZGVjb2Rlci5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAwMDQtcHBj LWRpc2FibGUtanhsLWRlY29kZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi43M2MxMTUxOTY4ZjQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMDA0LXBwYy1kaXNhYmxlLWp4bC1kZWNvZGVyLnBhdGNoCkBAIC0w LDAgKzEsMTMgQEAKKy0tLSBhL3NyYy9jb3JlL0NNYWtlTGlzdHMudHh0CisrKysgYi9zcmMvY29y ZS9DTWFrZUxpc3RzLnR4dAorQEAgLTQxNCw2ICs0MTQsMTAgQEAgZm9yZWFjaChhcmNoICR7YXJj aHN9KQorICAgICAgICAgICAgICAgICBDT05ESVRJT04gUVRfRkVBVFVSRV93ZWJlbmdpbmVfb3pv bmVfeDExIEFORCBYU0NSTlNBVkVSX0ZPVU5ECisgICAgICAgICAgICAgKQorIAorKyAgICAgICAg ICAgIGlmIChjcHUgU1RSRVFVQUwgInBwYzY0IikKKysgICAgICAgICAgICAgICAgbGlzdChBUFBF TkQgZ25BcmdBcmcgZW5hYmxlX2p4bF9kZWNvZGVyPWZhbHNlKQorKyAgICAgICAgICAgIGVuZGlm KCkKKysKKyAgICAgICAgICAgICBpZihRVF9GRUFUVVJFX3dlYmVuZ2luZV9rZXJiZXJvcykKKyAg ICAgICAgICAgICAgICAgbGlzdChBUFBFTkQgZ25BcmdBcmcKKyAgICAgICAgICAgICAgICAgICAg ICBleHRlcm5hbF9nc3NhcGlfaW5jbHVkZV9kaXI9IiR7R1NTQVBJX0lOQ0xVREVfRElSU30vZ3Nz YXBpIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDA1MC1uby1n bGliYy1jbWFrZS1jaGVjay5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAw NTAtbm8tZ2xpYmMtY21ha2UtY2hlY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi5mNzU2YmYwMjg2YmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMDUwLW5vLWdsaWJjLWNtYWtlLWNoZWNrLnBhdGNoCkBAIC0w LDAgKzEsMTQgQEAKKy0tLSBhL2NvbmZpZ3VyZS5jbWFrZQorKysrIGIvY29uZmlndXJlLmNtYWtl CitAQCAtNDk5LDExICs0OTksNiBAQCBhZGRfY2hlY2tfZm9yX3N1cHBvcnQoCisgKQorIGFkZF9j aGVja19mb3Jfc3VwcG9ydCgKKyAgICBNT0RVTEVTIFF0V2ViRW5naW5lIFF0UGRmCistICAgQ09O RElUSU9OIE5PVCBMSU5VWCBPUiBURVNUX2dsaWJjCistICAgTUVTU0FHRSAiQSBzdWl0YWJsZSB2 ZXJzaW9uID49IDIuMTcgb2YgZ2xpYmMgaXMgcmVxdWlyZWQuIgorLSkKKy1hZGRfY2hlY2tfZm9y X3N1cHBvcnQoCistICAgTU9EVUxFUyBRdFdlYkVuZ2luZSBRdFBkZgorICAgIENPTkRJVElPTiBO T1QgTElOVVggT1IgVEVTVF9raHIKKyAgICBNRVNTQUdFICJCdWlsZCByZXF1aXJlcyBLaHJvbm9z IGRldmVsb3BtZW50IGhlYWRlcnMgZm9yIGJ1aWxkIC0gc2VlIG1lc2EvbGliZWdsMS1tZXNhLWRl diIKKyApCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAwLWNo cm9taXVtLXNhbmRib3gtbWVtYmFycmllci5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAxMDAtY2hyb21pdW0tc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMmRkN2I0YWE5NDhmCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMC1jaHJvbWl1bS1zYW5kYm94 LW1lbWJhcnJpZXIucGF0Y2gKQEAgLTAsMCArMSw1OCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvc3lzY2FsbF9zZXRzLmNjCitAQCAtNDEzLDYgKzQxMyw3IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE8KKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAgY2Fz ZSBfX05SX2V4aXQ6CisgICAgIGNhc2UgX19OUl9leGl0X2dyb3VwOgorKyAgICBjYXNlIF9fTlJf bWVtYmFycmllcjoKKyAgICAgY2FzZSBfX05SX3dhaXQ0OgorICAgICBjYXNlIF9fTlJfd2FpdGlk OgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Nh bmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaAorKysrIGIv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRf bGludXhfc3lzY2FsbHMuaAorQEAgLTEyMTUsNCArMTIxNSw4IEBACisgI2RlZmluZSBfX05SX2xh bmRsb2NrX3Jlc3RyaWN0X3NlbGYgNDQ2CisgI2VuZGlmCisgCisrI2lmICFkZWZpbmVkKF9fTlJf bWVtYmFycmllcikKKysjZGVmaW5lIF9fTlJfbWVtYmFycmllciAyODMKKysjZW5kaWYKKysKKyAj ZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfQVJNNjRfTElOVVhfU1lTQ0FM TFNfSF8KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9o ZWFkZXJzL2FybV9saW51eF9zeXNjYWxscy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v c2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfc3lzY2FsbHMuaAorQEAgLTE2 MTcsNiArMTYxNywxMCBAQAorICNkZWZpbmUgX19OUl9sYW5kbG9ja19yZXN0cmljdF9zZWxmIChf X05SX1NZU0NBTExfQkFTRSArIDQ0NikKKyAjZW5kaWYKKyAKKysjaWYgIWRlZmluZWQoX19OUl9t ZW1iYXJyaWVyKQorKyNkZWZpbmUgX19OUl9tZW1iYXJyaWVyIChfX05SX1NZU0NBTExfQkFTRSsz ODkpCisrI2VuZGlmCisrCisgLy8gQVJNIHByaXZhdGUgc3lzY2FsbHMuCisgI2lmICFkZWZpbmVk KF9fQVJNX05SX0JBU0UpCisgI2RlZmluZSBfX0FSTV9OUl9CQVNFIChfX05SX1NZU0NBTExfQkFT RSArIDB4RjAwMDApCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9z eXN0ZW1faGVhZGVycy94ODZfMzJfbGludXhfc3lzY2FsbHMuaAorKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzMyX2xpbnV4X3N5c2Nh bGxzLmgKK0BAIC0xNzUwLDUgKzE3NTAsOSBAQAorICNkZWZpbmUgX19OUl9sYW5kbG9ja19yZXN0 cmljdF9zZWxmIDQ0NgorICNlbmRpZgorIAorKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIp CisrI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMzc1CisrI2VuZGlmCisrCisgI2VuZGlmICAvLyBT QU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1g4Nl8zMl9MSU5VWF9TWVNDQUxMU19IXworIAor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMv eDg2XzY0X2xpbnV4X3N5c2NhbGxzLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5oCitAQCAtMTQz OCw1ICsxNDM4LDkgQEAKKyAjZGVmaW5lIF9fTlJfbGFuZGxvY2tfcmVzdHJpY3Rfc2VsZiA0NDYK KyAjZW5kaWYKKyAKKysjaWYgIWRlZmluZWQoX19OUl9tZW1iYXJyaWVyKQorKyNkZWZpbmUgX19O Ul9tZW1iYXJyaWVyIDMyNAorKyNlbmRpZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9T WVNURU1fSEVBREVSU19YODZfNjRfTElOVVhfU1lTQ0FMTFNfSF8KKyAKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDEtc2l6ZV90LnBhdGNoIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMS1zaXplX3QucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5mY2NjMDg1ZGEzMTEKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTAxLXNpemVfdC5wYXRjaApAQCAtMCwwICsx LDE2IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvaW5j bHVkZS9wbGF0Zm9ybS9QbGF0Zm9ybU1ldGhvZHMuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2FuZ2xlL2luY2x1ZGUvcGxhdGZvcm0vUGxhdGZvcm1NZXRob2RzLmgK K0BAIC0yMzksMTEgKzIzOSwxMSBAQCBpbmxpbmUgdm9pZCBEZWZhdWx0T3ZlcnJpZGVGZWF0dXJl c010bChQCisgdXNpbmcgUHJvZ3JhbUtleVR5cGUgICA9IHN0ZDo6YXJyYXk8dWludDhfdCwgMjA+ OworIHVzaW5nIENhY2hlUHJvZ3JhbUZ1bmMgPSB2b2lkICgqKShQbGF0Zm9ybU1ldGhvZHMgKnBs YXRmb3JtLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBQcm9ncmFt S2V5VHlwZSAma2V5LAorLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3Qg cHJvZ3JhbVNpemUsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0ZDo6c2l6 ZV90IHByb2dyYW1TaXplLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z dCB1aW50OF90ICpwcm9ncmFtQnl0ZXMpOworIGlubGluZSB2b2lkIERlZmF1bHRDYWNoZVByb2dy YW0oUGxhdGZvcm1NZXRob2RzICpwbGF0Zm9ybSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGNvbnN0IFByb2dyYW1LZXlUeXBlICZrZXksCistICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzaXplX3QgcHJvZ3JhbVNpemUsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzdGQ6OnNpemVfdCBwcm9ncmFtU2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IHVpbnQ4X3QgKnByb2dyYW1CeXRlcykKKyB7fQorIApkaWZmIC0tZ2l0 IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwMi1jaHJvbWl1bS05MC1ydXktaW5j bHVkZS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDItY2hyb21pdW0t OTAtcnV5LWluY2x1ZGUucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi5iYmJhNTc5MDc2ZDYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdp bmUvcGF0Y2hlcy8wMTAyLWNocm9taXVtLTkwLXJ1eS1pbmNsdWRlLnBhdGNoCkBAIC0wLDAgKzEs MTkgQEAKK0Zyb20gNzE0MDkyZjMzNmJiMTRkMmZjYzI3Mzk2ZWMzMjNiM2Q4NDNiYjk2MiBNb24g U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29n bGVtYWlsLmNvbT4KK0RhdGU6IFRodSwgNCBNYXIgMjAyMSAxNTowNTo0NiArMDAwMAorU3ViamVj dDogW1BBVENIXSBJV1lVOiBpbmNsdWRlIGxpbWl0cyBmb3Igc3RkOjpudW1lcmljX2xpbWl0cwor CistLS0KKyB0aGlyZF9wYXJ0eS9ydXkvc3JjL3J1eS9ibG9ja19tYXAuY2MgfCAxICsKKyAxIGZp bGUgY2hhbmdlZCwgMSBpbnNlcnRpb24oKykKKworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L3J1eS9zcmMvcnV5L2Jsb2NrX21hcC5jYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L3J1eS9zcmMvcnV5L2Jsb2NrX21hcC5jYworQEAgLTE3LDYg KzE3LDcgQEAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgCisgI2luY2x1ZGUgPGFs Z29yaXRobT4KKyAjaW5jbHVkZSA8Y3N0ZGludD4KKysjaW5jbHVkZSA8bGltaXRzPgorIAorICNp ZmRlZiBSVVlfTUFLRUJMT0NLTUFQX0RFQlVHCisgI2luY2x1ZGUgPGNzdGRpbz4KZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDMtY2hyb21pdW0tdjgtbW9ub3Rv bmljLXB0aHJlYWQtY29udF90aW1lZHdhaXQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wMTAzLWNocm9taXVtLXY4LW1vbm90b25pYy1wdGhyZWFkLWNvbnRfdGltZWR3YWl0 LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWRjOGJjNGQz ZDE3Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEw My1jaHJvbWl1bS12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVkd2FpdC5wYXRjaApAQCAt MCwwICsxLDIyIEBACitVc2UgbW9ub3RvbmljIGNsb2NrIGZvciBwdGhyZWFkX2NvbmRfdGltZWR3 YWl0IHdpdGggbXVzbCB0b28uCisKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMv YmFzZS9wbGF0Zm9ybS9jb25kaXRpb24tdmFyaWFibGUuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS92OC9zcmMvYmFzZS9wbGF0Zm9ybS9jb25kaXRpb24tdmFyaWFibGUuY2MKK0BAIC0y MCw3ICsyMCw3IEBAIG5hbWVzcGFjZSBiYXNlIHsKKyAKKyBDb25kaXRpb25WYXJpYWJsZTo6Q29u ZGl0aW9uVmFyaWFibGUoKSB7CisgI2lmIChWOF9PU19GUkVFQlNEIHx8IFY4X09TX05FVEJTRCB8 fCBWOF9PU19PUEVOQlNEIHx8IFwKKy0gICAgIChWOF9PU19MSU5VWCAmJiBWOF9MSUJDX0dMSUJD KSkKKysgICAgIFY4X09TX0xJTlVYKQorICAgLy8gT24gRnJlZS9OZXQvT3BlbkJTRCBhbmQgTGlu dXggd2l0aCBnbGliYyB3ZSBjYW4gY2hhbmdlIHRoZSB0aW1lCisgICAvLyBzb3VyY2UgZm9yIHB0 aHJlYWRfY29uZF90aW1lZHdhaXQoKSB0byB1c2UgdGhlIG1vbm90b25pYyBjbG9jay4KKyAgIHB0 aHJlYWRfY29uZGF0dHJfdCBhdHRyOworQEAgLTk2LDcgKzk2LDcgQEAgYm9vbCBDb25kaXRpb25W YXJpYWJsZTo6V2FpdEZvcihNdXRleCogbQorICAgICAgICZuYXRpdmVfaGFuZGxlXywgJm11dGV4 LT5uYXRpdmVfaGFuZGxlKCksICZ0cyk7CisgI2Vsc2UKKyAjaWYgKFY4X09TX0ZSRUVCU0QgfHwg VjhfT1NfTkVUQlNEIHx8IFY4X09TX09QRU5CU0QgfHwgXAorLSAgICAgKFY4X09TX0xJTlVYICYm IFY4X0xJQkNfR0xJQkMpKQorKyAgICAgVjhfT1NfTElOVVgpCisgICAvLyBPbiBGcmVlL05ldC9P cGVuQlNEIGFuZCBMaW51eCB3aXRoIGdsaWJjIHdlIGNhbiBjaGFuZ2UgdGhlIHRpbWUKKyAgIC8v IHNvdXJjZSBmb3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCgpIHRvIHVzZSB0aGUgbW9ub3Rvbmlj IGNsb2NrLgorICAgcmVzdWx0ID0gY2xvY2tfZ2V0dGltZShDTE9DS19NT05PVE9OSUMsICZ0cyk7 CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA0LWNocm9taXVt LXJldmVydC05ZDA4MGMwLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEw NC1jaHJvbWl1bS1yZXZlcnQtOWQwODBjMC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjQyYjFlZTllYzA2MwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDQtY2hyb21pdW0tcmV2ZXJ0LTlkMDgwYzAucGF0Y2gK QEAgLTAsMCArMSwxNjIgQEAKKyBPcmlnaW5hbCBjaGFuZ2UncyBkZXNjcmlwdGlvbjoKKyA+IFJl cGxhY2UgJ2JsYWNrbGlzdCcgd2l0aCAnaWdub3JlbGlzdCcgaW4gLi90b29scy9tc2FuLy4KKyA+ CisgPiBCdWc6IDEwOTcyNzIsIDEwOTcyNjgKKyA+IENoYW5nZS1JZDogSWQ1YzgyMjdhNWJmYjFm ZmFlYzgyZDMxNjhiNjA5MDg1YjEwYzgyOTcKKyA+IFJldmlld2VkLW9uOiBodHRwczovL2Nocm9t aXVtLXJldmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjg2NzczMAorID4g Q29tbWl0LVF1ZXVlOiBEeWxhbiBDdXRsZXIgPGR5bGFuY3V0bGVyQGdvb2dsZS5jb20+CisgPiBS ZXZpZXdlZC1ieTogTmljbyBXZWJlciA8dGhha2lzQGNocm9taXVtLm9yZz4KKyA+IFJldmlld2Vk LWJ5OiBKb25hdGhhbiBNZXR6bWFuIDxtZXR6bWFuQGNocm9taXVtLm9yZz4KKyA+IENyLUNvbW1p dC1Qb3NpdGlvbjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM4ODMwMzV9CistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL3Nhbml0aXplcnMvQlVJTEQuZ24KKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvc2FuaXRpemVycy9CVUlMRC5nbgorQEAgLTI3 MiwxMSArMjcyLDExIEBAIGNvbmZpZygiYXNhbl9mbGFncyIpIHsKKyAgIGlmIChpc19hc2FuKSB7 CisgICAgIGNmbGFncyArPSBbICItZnNhbml0aXplPWFkZHJlc3MiIF0KKyAgICAgaWYgKGlzX3dp bikgeworLSAgICAgIGlmICghZGVmaW5lZChhc2FuX3dpbl9ibG9ja2xpc3RfcGF0aCkpIHsKKy0g ICAgICAgIGFzYW5fd2luX2Jsb2NrbGlzdF9wYXRoID0KKysgICAgICBpZiAoIWRlZmluZWQoYXNh bl93aW5fYmxhY2tsaXN0X3BhdGgpKSB7CisrICAgICAgICBhc2FuX3dpbl9ibGFja2xpc3RfcGF0 aCA9CisgICAgICAgICAgICAgcmViYXNlX3BhdGgoIi8vdG9vbHMvbWVtb3J5L2FzYW4vYmxvY2ts aXN0X3dpbi50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgICB9CistICAgICAgY2ZsYWdzICs9 IFsgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0kYXNhbl93aW5fYmxvY2tsaXN0X3BhdGgiIF0KKysg ICAgICBjZmxhZ3MgKz0gWyAiLWZzYW5pdGl6ZS1ibGFja2xpc3Q9JGFzYW5fd2luX2JsYWNrbGlz dF9wYXRoIiBdCisgICAgIH0KKyAgIH0KKyB9CitAQCAtMzA2LDEzICszMDYsMTMgQEAgY29uZmln KCJsaW5rX3NoYXJlZF9saWJyYXJ5IikgeworIGNvbmZpZygiY2ZpX2ZsYWdzIikgeworICAgY2Zs YWdzID0gW10KKyAgIGlmIChpc19jZmkgJiYgY3VycmVudF90b29sY2hhaW4gPT0gZGVmYXVsdF90 b29sY2hhaW4pIHsKKy0gICAgaWYgKCFkZWZpbmVkKGNmaV9pZ25vcmVsaXN0X3BhdGgpKSB7Cist ICAgICAgY2ZpX2lnbm9yZWxpc3RfcGF0aCA9CisrICAgIGlmICghZGVmaW5lZChjZmlfYmxhY2ts aXN0X3BhdGgpKSB7CisrICAgICAgY2ZpX2JsYWNrbGlzdF9wYXRoID0KKyAgICAgICAgICAgcmVi YXNlX3BhdGgoIi8vdG9vbHMvY2ZpL2lnbm9yZXMudHh0Iiwgcm9vdF9idWlsZF9kaXIpCisgICAg IH0KKyAgICAgY2ZsYWdzICs9IFsKKyAgICAgICAiLWZzYW5pdGl6ZT1jZmktdmNhbGwiLAorLSAg ICAgICItZnNhbml0aXplLWlnbm9yZWxpc3Q9JGNmaV9pZ25vcmVsaXN0X3BhdGgiLAorKyAgICAg ICItZnNhbml0aXplLWJsYWNrbGlzdD0kY2ZpX2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQorIAor ICAgICBpZiAodXNlX2NmaV9jYXN0KSB7CitAQCAtNDA5LDE0ICs0MDksMTQgQEAgY29uZmlnKCJt c2FuX2ZsYWdzIikgeworICAgaWYgKGlzX21zYW4pIHsKKyAgICAgYXNzZXJ0KGlzX2xpbnV4IHx8 IGlzX2Nocm9tZW9zLAorICAgICAgICAgICAgIm1zYW4gb25seSBzdXBwb3J0ZWQgb24gbGludXgg eDg2XzY0L0Nocm9tZU9TIikKKy0gICAgaWYgKCFkZWZpbmVkKG1zYW5faWdub3JlbGlzdF9wYXRo KSkgeworLSAgICAgIG1zYW5faWdub3JlbGlzdF9wYXRoID0KKy0gICAgICAgICAgcmViYXNlX3Bh dGgoIi8vdG9vbHMvbXNhbi9pZ25vcmVsaXN0LnR4dCIsIHJvb3RfYnVpbGRfZGlyKQorKyAgICBp ZiAoIWRlZmluZWQobXNhbl9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICBtc2FuX2JsYWNrbGlz dF9wYXRoID0KKysgICAgICAgICAgcmViYXNlX3BhdGgoIi8vdG9vbHMvbXNhbi9ibGFja2xpc3Qu dHh0Iiwgcm9vdF9idWlsZF9kaXIpCisgICAgIH0KKyAgICAgY2ZsYWdzID0gWworICAgICAgICIt ZnNhbml0aXplPW1lbW9yeSIsCisgICAgICAgIi1mc2FuaXRpemUtbWVtb3J5LXRyYWNrLW9yaWdp bnM9JG1zYW5fdHJhY2tfb3JpZ2lucyIsCistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlzdD0k bXNhbl9pZ25vcmVsaXN0X3BhdGgiLAorKyAgICAgICItZnNhbml0aXplLWJsYWNrbGlzdD0kbXNh bl9ibGFja2xpc3RfcGF0aCIsCisgICAgIF0KKyAgIH0KKyB9CitAQCAtNDI0LDEzICs0MjQsMTMg QEAgY29uZmlnKCJtc2FuX2ZsYWdzIikgeworIGNvbmZpZygidHNhbl9mbGFncyIpIHsKKyAgIGlm IChpc190c2FuKSB7CisgICAgIGFzc2VydChpc19saW51eCB8fCBpc19jaHJvbWVvcywgInRzYW4g b25seSBzdXBwb3J0ZWQgb24gbGludXggeDg2XzY0IikKKy0gICAgaWYgKCFkZWZpbmVkKHRzYW5f aWdub3JlbGlzdF9wYXRoKSkgeworLSAgICAgIHRzYW5faWdub3JlbGlzdF9wYXRoID0KKysgICAg aWYgKCFkZWZpbmVkKHRzYW5fYmxhY2tsaXN0X3BhdGgpKSB7CisrICAgICAgdHNhbl9ibGFja2xp c3RfcGF0aCA9CisgICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL21lbW9yeS90c2FuX3Yy L2lnbm9yZXMudHh0Iiwgcm9vdF9idWlsZF9kaXIpCisgICAgIH0KKyAgICAgY2ZsYWdzID0gWwor ICAgICAgICItZnNhbml0aXplPXRocmVhZCIsCistICAgICAgIi1mc2FuaXRpemUtaWdub3JlbGlz dD0kdHNhbl9pZ25vcmVsaXN0X3BhdGgiLAorKyAgICAgICItZnNhbml0aXplLWJsYWNrbGlzdD0k dHNhbl9ibGFja2xpc3RfcGF0aCIsCisgICAgIF0KKyAgIH0KKyB9CitAQCAtNDM4LDggKzQzOCw4 IEBAIGNvbmZpZygidHNhbl9mbGFncyIpIHsKKyBjb25maWcoInVic2FuX2ZsYWdzIikgeworICAg Y2ZsYWdzID0gW10KKyAgIGlmIChpc191YnNhbikgeworLSAgICBpZiAoIWRlZmluZWQodWJzYW5f aWdub3JlbGlzdF9wYXRoKSkgeworLSAgICAgIHVic2FuX2lnbm9yZWxpc3RfcGF0aCA9CisrICAg IGlmICghZGVmaW5lZCh1YnNhbl9ibGFja2xpc3RfcGF0aCkpIHsKKysgICAgICB1YnNhbl9ibGFj a2xpc3RfcGF0aCA9CisgICAgICAgICAgIHJlYmFzZV9wYXRoKCIvL3Rvb2xzL3Vic2FuL2lnbm9y ZWxpc3QudHh0Iiwgcm9vdF9idWlsZF9kaXIpCisgICAgIH0KKyAgICAgY2ZsYWdzICs9IFsKK0BA IC00NTYsNyArNDU2LDcgQEAgY29uZmlnKCJ1YnNhbl9mbGFncyIpIHsKKyAgICAgICAiLWZzYW5p dGl6ZT1zaWduZWQtaW50ZWdlci1vdmVyZmxvdyIsCisgICAgICAgIi1mc2FuaXRpemU9dW5yZWFj aGFibGUiLAorICAgICAgICItZnNhbml0aXplPXZsYS1ib3VuZCIsCistICAgICAgIi1mc2FuaXRp emUtaWdub3JlbGlzdD0kdWJzYW5faWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZzYW5pdGl6 ZS1ibGFja2xpc3Q9JHVic2FuX2JsYWNrbGlzdF9wYXRoIiwKKyAgICAgXQorICAgICBpZiAoIWlz X2NsYW5nKSB7CisgICAgICAgIyBUaGVzZSBleHBvc2VzIHRvbyBtdWNoIGlsbGVnYWwgQysrMTQg Y29kZSB0byBjb21waWxlIG9uIGFueXRoaW5nIHN0cmljdGVyIHRoYW4gY2xhbmc6CitAQCAtNDk3 LDggKzQ5Nyw4IEBAIGNvbmZpZygidWJzYW5fbm9fcmVjb3ZlciIpIHsKKyAKKyBjb25maWcoInVi c2FuX3NlY3VyaXR5X2ZsYWdzIikgeworICAgaWYgKGlzX3Vic2FuX3NlY3VyaXR5KSB7CistICAg IGlmICghZGVmaW5lZCh1YnNhbl9zZWN1cml0eV9pZ25vcmVsaXN0X3BhdGgpKSB7CistICAgICAg dWJzYW5fc2VjdXJpdHlfaWdub3JlbGlzdF9wYXRoID0KKysgICAgaWYgKCFkZWZpbmVkKHVic2Fu X3NlY3VyaXR5X2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgIHVic2FuX3NlY3VyaXR5X2JsYWNr bGlzdF9wYXRoID0KKyAgICAgICAgICAgcmViYXNlX3BhdGgoIi8vdG9vbHMvdWJzYW4vc2VjdXJp dHlfaWdub3JlbGlzdC50eHQiLCByb290X2J1aWxkX2RpcikKKyAgICAgfQorICAgICBjZmxhZ3Mg PSBbCitAQCAtNTA2LDcgKzUwNiw3IEBAIGNvbmZpZygidWJzYW5fc2VjdXJpdHlfZmxhZ3MiKSB7 CisgICAgICAgIi1mc2FuaXRpemU9c2hpZnQiLAorICAgICAgICItZnNhbml0aXplPXNpZ25lZC1p bnRlZ2VyLW92ZXJmbG93IiwKKyAgICAgICAiLWZzYW5pdGl6ZT12bGEtYm91bmQiLAorLSAgICAg ICItZnNhbml0aXplLWlnbm9yZWxpc3Q9JHVic2FuX3NlY3VyaXR5X2lnbm9yZWxpc3RfcGF0aCIs CisrICAgICAgIi1mc2FuaXRpemUtYmxhY2tsaXN0PSR1YnNhbl9zZWN1cml0eV9ibGFja2xpc3Rf cGF0aCIsCisgICAgIF0KKyAgIH0KKyB9CitAQCAtNTE5LDEzICs1MTksMTMgQEAgY29uZmlnKCJ1 YnNhbl9udWxsX2ZsYWdzIikgeworIAorIGNvbmZpZygidWJzYW5fdnB0cl9mbGFncyIpIHsKKyAg IGlmIChpc191YnNhbl92cHRyKSB7CistICAgIGlmICghZGVmaW5lZCh1YnNhbl92cHRyX2lnbm9y ZWxpc3RfcGF0aCkpIHsKKy0gICAgICB1YnNhbl92cHRyX2lnbm9yZWxpc3RfcGF0aCA9CisrICAg IGlmICghZGVmaW5lZCh1YnNhbl92cHRyX2JsYWNrbGlzdF9wYXRoKSkgeworKyAgICAgIHVic2Fu X3ZwdHJfYmxhY2tsaXN0X3BhdGggPQorICAgICAgICAgICByZWJhc2VfcGF0aCgiLy90b29scy91 YnNhbi92cHRyX2lnbm9yZWxpc3QudHh0Iiwgcm9vdF9idWlsZF9kaXIpCisgICAgIH0KKyAgICAg Y2ZsYWdzID0gWworICAgICAgICItZnNhbml0aXplPXZwdHIiLAorLSAgICAgICItZnNhbml0aXpl LWlnbm9yZWxpc3Q9JHVic2FuX3ZwdHJfaWdub3JlbGlzdF9wYXRoIiwKKysgICAgICAiLWZzYW5p dGl6ZS1ibGFja2xpc3Q9JHVic2FuX3ZwdHJfYmxhY2tsaXN0X3BhdGgiLAorICAgICBdCisgICAg IGlmICghaXNfY2xhbmcpIHsKKyAgICAgICAjIENsYW5nIHNwZWNpZmljIGZsYWc6CistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGRfb3ZlcnJpZGVzL2J1aWxkLmduaQorKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkX292ZXJyaWRlcy9idWlsZC5nbmkKK0BAIC00MywxNSAr NDMsMTUgQEAgZGVjbGFyZV9hcmdzKCkgeworICMgQWxsb3dzIGRpZmZlcmVudCBwcm9qZWN0cyB0 byBzcGVjaWZ5IHRoZWlyIG93biBzdXBwcmVzc2lvbi9pZ25vcmUgbGlzdHMgZm9yCisgIyBzYW5p dGl6ZXIgdG9vbHMuCisgIyBhc2FuX3N1cHByZXNzaW9uc19maWxlID0gInBhdGgvdG8vYXNhbl9z dXBwcmVzc2lvbnMuY2MiCistIyBhc2FuX3dpbl9pZ25vcmVsaXN0X3BhdGggPSAicGF0aC90by9h c2FuL2Jsb2NrbGlzdF93aW4udHh0IgorKyMgYXNhbl93aW5fYmxhY2tsaXN0X3BhdGggPSAicGF0 aC90by9hc2FuL2Jsb2NrbGlzdF93aW4udHh0IgorICMgbHNhbl9zdXBwcmVzc2lvbnNfZmlsZSA9 ICJwYXRoL3RvL2xzYW5fc3VwcHJlc3Npb25zLmNjIgorICMgdHNhbl9zdXBwcmVzc2lvbnNfZmls ZSA9ICJwYXRoL3RvL3RzYW5fc3VwcHJlc3Npb25zLmNjIgorLSMgdHNhbl9pZ25vcmVsaXN0X3Bh dGggPSAicGF0aC90by90c2FuL2lnbm9yZXMudHh0IgorLSMgbXNhbl9pZ25vcmVsaXN0X3BhdGgg PSAicGF0aC90by9tc2FuL2lnbm9yZWxpc3QudHh0IgorLSMgdWJzYW5faWdub3JlbGlzdF9wYXRo ID0gInBhdGgvdG8vdWJzYW4vaWdub3JlbGlzdC50eHQiCistIyB1YnNhbl92cHRyX2lnbm9yZWxp c3RfcGF0aCA9ICJwYXRoL3RvL3Vic2FuL3ZwdHJfaWdub3JlbGlzdC50eHQiCistIyB1YnNhbl9z ZWN1cml0eV9pZ25vcmVsaXN0X3BhdGggPSAicGF0aC90by91YnNhbi9zZWN1cml0eV9pZ25vcmVs aXN0LnR4dCIKKy0jIGNmaV9pZ25vcmVsaXN0X3BhdGggPSAicGF0aC90by9jZmkvaWdub3Jlcy50 eHQiCisrIyB0c2FuX2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8vdHNhbi9pZ25vcmVzLnR4dCIK KysjIG1zYW5fYmxhY2tsaXN0X3BhdGggPSAicGF0aC90by9tc2FuL2JsYWNrbGlzdC50eHQiCisr IyB1YnNhbl9ibGFja2xpc3RfcGF0aCA9ICJwYXRoL3RvL3Vic2FuL2JsYWNrbGlzdC50eHQiCisr IyB1YnNhbl92cHRyX2JsYWNrbGlzdF9wYXRoID0gInBhdGgvdG8vdWJzYW4vdnB0cl9ibGFja2xp c3QudHh0IgorKyMgdWJzYW5fc2VjdXJpdHlfYmxhY2tsaXN0X3BhdGggPSAicGF0aC90by91YnNh bi9zZWN1cml0eV9ibGFja2xpc3QudHh0IgorKyMgY2ZpX2JsYWNrbGlzdF9wYXRoID0gInBhdGgv dG8vY2ZpL2lnbm9yZXMudHh0IgorIAorIGRlY2xhcmVfYXJncygpIHsKKyAgICMgQW5kcm9pZCAz Mi1iaXQgbm9uLWNvbXBvbmVudCwgbm9uLWNsYW5nIGJ1aWxkcyBjYW5ub3QgaGF2ZSBzeW1ib2xf bGV2ZWw9MgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNS1j aHJvbWl1bS1yZXZlcnQtZHJvcC1vZi1zeXN0ZW0tamF2YS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAxMDUtY2hyb21pdW0tcmV2ZXJ0LWRyb3Atb2Ytc3lzdGVtLWphdmEu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi40NGYzYWE4ZmFl NWUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA1 LWNocm9taXVtLXJldmVydC1kcm9wLW9mLXN5c3RlbS1qYXZhLnBhdGNoCkBAIC0wLDAgKzEsMTUg QEAKK1RoaXMgd2FzIGRyb3BwZWQgZm9yIHNvbWUgcmVhc29uIGluIDY5NTFjMzdjZWNkMDU5Nzli MjMyYTM5ZTVjMTBlNjM0NmEwZjc0ZWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jbG9zdXJlX2NvbXBpbGVyL2NvbXBpbGVyLnB5CisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvY2xvc3VyZV9jb21waWxlci9jb21waWxlci5weQorQEAgLTEz LDggKzEzLDkgQEAgaW1wb3J0IHN1YnByb2Nlc3MKKyAKKyAKKyBfQ1VSUkVOVF9ESVIgPSBvcy5w YXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKF9fZmlsZV9fKSkKKy1fSkFWQV9QQVRIID0gb3MucGF0 aC5qb2luKF9DVVJSRU5UX0RJUiwgIi4uIiwgImpkayIsICJjdXJyZW50IiwgImJpbiIsICJqYXZh IikKKy1hc3NlcnQgb3MucGF0aC5pc2ZpbGUoX0pBVkFfUEFUSCksICJqYXZhIG9ubHkgYWxsb3dl ZCBpbiBhbmRyb2lkIGJ1aWxkcyIKKytfSkFWQV9CSU4gPSAiamF2YSIKKytfSkRLX1BBVEggPSBv cy5wYXRoLmpvaW4oX0NVUlJFTlRfRElSLCAiLi4iLCAiamRrIiwgImN1cnJlbnQiLCAiYmluIiwg ImphdmEiKQorK19KQVZBX1BBVEggPSBfSkRLX1BBVEggaWYgb3MucGF0aC5pc2ZpbGUoX0pES19Q QVRIKSBlbHNlIF9KQVZBX0JJTgorIAorIGNsYXNzIENvbXBpbGVyKG9iamVjdCk6CisgICAiIiJS dW5zIHRoZSBDbG9zdXJlIGNvbXBpbGVyIG9uIGdpdmVuIHNvdXJjZSBmaWxlcyB0byB0eXBlY2hl Y2sgdGhlbQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNi1j aHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNo ZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMWUwNjdjYzZlZGEwCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNi1jaHJvbWl1bS1zeXN0ZW0tbm9kZWpzLnBh dGNoCkBAIC0wLDAgKzEsMjAgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9ub2RlL25vZGUucHkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9ub2RlL25vZGUucHkKK0BAIC0zNiwxMSArMzYsMTIgQEAgZGVmIEdldEJpbmFyeVBhdGgoKToK KyAgIGlmIHBsYXRmb3JtLnN5c3RlbSgpID09ICdEYXJ3aW4nIGFuZCBwbGF0Zm9ybS5tYWNoaW5l KCkgPT0gJ2FybTY0JzoKKyAgICAgICByZXR1cm4gb3MucGF0aC5qb2luKG9zX3BhdGguam9pbihv c19wYXRoLmRpcm5hbWUoX19maWxlX18pLCAnbWFjJywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICdub2RlLWRhcndpbi1hcm02NCcsICdiaW4nLCAnbm9kZScpKQorLSAgcmV0dXJuIG9zX3Bh dGguam9pbihvc19wYXRoLmRpcm5hbWUoX19maWxlX18pLCAqeworLSAgICAnRGFyd2luJzogKCdt YWMnLCAnbm9kZS1kYXJ3aW4teDY0JywgJ2JpbicsICdub2RlJyksCistICAgICdMaW51eCc6ICgn bGludXgnLCAnbm9kZS1saW51eC14NjQnLCAnYmluJywgJ25vZGUnKSwKKy0gICAgJ1dpbmRvd3Mn OiAoJ3dpbicsICdub2RlLmV4ZScpLAorLSAgfVtwbGF0Zm9ybS5zeXN0ZW0oKV0pCisrICByZXR1 cm4gIi91c3IvYmluL25vZGUiCisrICAjcmV0dXJuIG9zX3BhdGguam9pbihvc19wYXRoLmRpcm5h bWUoX19maWxlX18pLCAqeworKyAgIyAgJ0Rhcndpbic6ICgnbWFjJywgJ25vZGUtZGFyd2luLXg2 NCcsICdiaW4nLCAnbm9kZScpLAorKyAgIyAgJ0xpbnV4JzogKCdsaW51eCcsICdub2RlLWxpbnV4 LXg2NCcsICdiaW4nLCAnbm9kZScpLAorKyAgIyAgJ1dpbmRvd3MnOiAoJ3dpbicsICdub2RlLmV4 ZScpLAorKyAgI31bcGxhdGZvcm0uc3lzdGVtKCldKQorIAorIAorIGRlZiBSdW5Ob2RlKGNtZF9w YXJ0cywgc3Rkb3V0PU5vbmUpOgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDEwNy1jaHJvbWl1bS1jdXJzZWReVXNjb3BlZF9maWxlLnBhdGNoIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNy1jaHJvbWl1bS1jdXJzZWReVXNjb3BlZF9maWxlLnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYThmNWQ5NzE4ODNk Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwNy1j aHJvbWl1bS1jdXJzZWReVXNjb3BlZF9maWxlLnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2ZpbGVzL3Njb3BlZF9maWxlX2xpbnV4LmNjCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxlcy9zY29wZWRfZmlsZV9saW51eC5j YworQEAgLTc3LDE1ICs3NywzIEBAIGJvb2wgSXNGRE93bmVkKGludCBmZCkgeworIH0KKyAKKyB9 ICAvLyBuYW1lc3BhY2UgYmFzZQorLQorLWV4dGVybiAiQyIgeworLQorLWludCBfX2Nsb3NlKGlu dCk7CistCistX19hdHRyaWJ1dGVfXygodmlzaWJpbGl0eSgiZGVmYXVsdCIpLCBub2lubGluZSkp IGludCBjbG9zZShpbnQgZmQpIHsKKy0gIGlmIChiYXNlOjpJc0ZET3duZWQoZmQpICYmIGdfaXNf b3duZXJzaGlwX2VuZm9yY2VkKQorLSAgICBDcmFzaE9uRmRPd25lcnNoaXBWaW9sYXRpb24oKTsK Ky0gIHJldHVybiBfX2Nsb3NlKGZkKTsKKy19CistCistfSAgLy8gZXh0ZXJuICJDIgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDEwOC1jaHJvbWl1bS1maXgtbmFy cm93aW5nLWNhc3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTA4LWNo cm9taXVtLWZpeC1uYXJyb3dpbmctY2FzdC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLmVkMzJjZDliNzQxNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDgtY2hyb21pdW0tZml4LW5hcnJvd2luZy1jYXN0LnBh dGNoCkBAIC0wLDAgKzEsNTMgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2Zp bGVzL2ZpbGVfdXRpbF9saW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uv ZmlsZXMvZmlsZV91dGlsX2xpbnV4LmNjCitAQCAtMjMsMTQgKzIzLDE0IEBAIGJvb2wgR2V0Rmls ZVN5c3RlbVR5cGUoY29uc3QgRmlsZVBhdGgmIHAKKyAKKyAgIC8vIE5vdCBhbGwgcG9zc2libGUg fHN0YXRmc19idWYuZl90eXBlfCB2YWx1ZXMgYXJlIGluIGxpbnV4L21hZ2ljLmguCisgICAvLyBN aXNzaW5nIHZhbHVlcyBhcmUgY29waWVkIGZyb20gdGhlIHN0YXRmcyBtYW4gcGFnZS4KKy0gIHN3 aXRjaCAoc3RhdGZzX2J1Zi5mX3R5cGUpIHsKKysgIHN3aXRjaCAoc3RhdGljX2Nhc3Q8dWludG1h eF90PihzdGF0ZnNfYnVmLmZfdHlwZSkpIHsKKyAgICAgY2FzZSAwOgorICAgICAgICp0eXBlID0g RklMRV9TWVNURU1fMDsKKyAgICAgICBicmVhazsKKyAgICAgY2FzZSBFWFQyX1NVUEVSX01BR0lD OiAgLy8gQWxzbyBleHQzIGFuZCBleHQ0CisgICAgIGNhc2UgTVNET1NfU1VQRVJfTUFHSUM6Cisg ICAgIGNhc2UgUkVJU0VSRlNfU1VQRVJfTUFHSUM6CistICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50 PihCVFJGU19TVVBFUl9NQUdJQyk6CisrICAgIGNhc2UgQlRSRlNfU1VQRVJfTUFHSUM6CisgICAg IGNhc2UgMHg1MzQ2NTQ0RTogIC8vIE5URlMKKyAgICAgY2FzZSAweDU4NDY1MzQyOiAgLy8gWEZT CisgICAgIGNhc2UgMHgzMTUzNDY0QTogIC8vIEpGUworQEAgLTQwLDE0ICs0MCwxNCBAQCBib29s IEdldEZpbGVTeXN0ZW1UeXBlKGNvbnN0IEZpbGVQYXRoJiBwCisgICAgICAgKnR5cGUgPSBGSUxF X1NZU1RFTV9ORlM7CisgICAgICAgYnJlYWs7CisgICAgIGNhc2UgU01CX1NVUEVSX01BR0lDOgor LSAgICBjYXNlIHN0YXRpY19jYXN0PGludD4oMHhGRjUzNEQ0Mik6ICAvLyBDSUZTCisrICAgIGNh c2UgMHhGRjUzNEQ0MjogIC8vIENJRlMKKyAgICAgICAqdHlwZSA9IEZJTEVfU1lTVEVNX1NNQjsK KyAgICAgICBicmVhazsKKyAgICAgY2FzZSBDT0RBX1NVUEVSX01BR0lDOgorICAgICAgICp0eXBl ID0gRklMRV9TWVNURU1fQ09EQTsKKyAgICAgICBicmVhazsKKy0gICAgY2FzZSBzdGF0aWNfY2Fz dDxpbnQ+KEhVR0VUTEJGU19NQUdJQyk6CistICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihSQU1G U19NQUdJQyk6CisrICAgIGNhc2UgSFVHRVRMQkZTX01BR0lDOgorKyAgICBjYXNlIFJBTUZTX01B R0lDOgorICAgICBjYXNlIFRNUEZTX01BR0lDOgorICAgICAgICp0eXBlID0gRklMRV9TWVNURU1f TUVNT1JZOworICAgICAgIGJyZWFrOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2Uv c3lzdGVtL3N5c19pbmZvX3Bvc2l4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFz ZS9zeXN0ZW0vc3lzX2luZm9fcG9zaXguY2MKK0BAIC0xMDAsMTAgKzEwMCwxMCBAQCBib29sIElz U3RhdHNaZXJvSWZVbmxpbWl0ZWQoY29uc3QgYmFzZTo6CisgICBpZiAoSEFORExFX0VJTlRSKHN0 YXRmcyhwYXRoLnZhbHVlKCkuY19zdHIoKSwgJnN0YXRzKSkgIT0gMCkKKyAgICAgcmV0dXJuIGZh bHNlOworIAorLSAgc3dpdGNoIChzdGF0cy5mX3R5cGUpIHsKKysgIHN3aXRjaCAoc3RhdGljX2Nh c3Q8dWludG1heF90PihzdGF0cy5mX3R5cGUpKSB7CisgICAgIGNhc2UgVE1QRlNfTUFHSUM6Cist ICAgIGNhc2Ugc3RhdGljX2Nhc3Q8aW50PihIVUdFVExCRlNfTUFHSUMpOgorLSAgICBjYXNlIHN0 YXRpY19jYXN0PGludD4oUkFNRlNfTUFHSUMpOgorKyAgICBjYXNlIEhVR0VUTEJGU19NQUdJQzoK KysgICAgY2FzZSBSQU1GU19NQUdJQzoKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAgIH0KKyAgIHJl dHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAx MDktY2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzAxMDktY2hyb21pdW0tcmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaApuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjVlYmQxNmU2NTlhZgotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMDktY2hyb21pdW0t cmVtb3ZlLXN0cmlwX2JpbmFyeS5wYXRjaApAQCAtMCwwICsxLDMyIEBACistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL0JVSUxELmduCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vY2hyb21lL3Rlc3QvY2hyb21lZHJpdmVyL0JVSUxELmduCitA QCAtMzA4LDExICszMDgsNyBAQCBzb3VyY2Vfc2V0KCJsaWIiKSB7CisgICB9CisgfQorIAorLWlm IChpc19saW51eCkgeworLSAgY2hyb21lZHJpdmVyX291dHB1dCA9ICJjaHJvbWVkcml2ZXIudW5z dHJpcHBlZCIKKy19IGVsc2UgeworLSAgY2hyb21lZHJpdmVyX291dHB1dCA9ICJjaHJvbWVkcml2 ZXIiCistfQorK2Nocm9tZWRyaXZlcl9vdXRwdXQgPSAiY2hyb21lZHJpdmVyIgorIAorIGV4ZWN1 dGFibGUoIiRjaHJvbWVkcml2ZXJfb3V0cHV0IikgeworICAgdGVzdG9ubHkgPSB0cnVlCitAQCAt MzM2LDE2ICszMzIsNiBAQCBleGVjdXRhYmxlKCIkY2hyb21lZHJpdmVyX291dHB1dCIpIHsKKyAg IH0KKyB9CisgCistaWYgKGlzX2xpbnV4KSB7CistICBzdHJpcF9iaW5hcnkoImNocm9tZWRyaXZl ciIpIHsKKy0gICAgdGVzdG9ubHkgPSB0cnVlCistICAgIGJpbmFyeV9pbnB1dCA9ICIkcm9vdF9v dXRfZGlyLyRjaHJvbWVkcml2ZXJfb3V0cHV0IgorLSAgICBzeW1ib2xfb3V0cHV0ID0gIiRyb290 X291dF9kaXIvY2hyb21lZHJpdmVyLmRlYnVnIgorLSAgICBzdHJpcHBlZF9iaW5hcnlfb3V0cHV0 ID0gIiRyb290X291dF9kaXIvY2hyb21lZHJpdmVyIgorLSAgICBkZXBzID0gWyAiOiRjaHJvbWVk cml2ZXJfb3V0cHV0IiBdCistICB9CistfQorLQorIHB5dGhvbl9saWJyYXJ5KCJjaHJvbWVkcml2 ZXJfcHlfdGVzdHMiKSB7CisgICB0ZXN0b25seSA9IHRydWUKKyAgIGRlcHMgPSBbCmRpZmYgLS1n aXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTEwLWNocm9taXVtLXJldmVydC11 c2UtZmZpbGUtY29tcGlsYXRpb24tZGlyLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvMDExMC1jaHJvbWl1bS1yZXZlcnQtdXNlLWZmaWxlLWNvbXBpbGF0aW9uLWRpci5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmEwMGY3ZWE4MGY3YQot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxMTAtY2hy b21pdW0tcmV2ZXJ0LXVzZS1mZmlsZS1jb21waWxhdGlvbi1kaXIucGF0Y2gKQEAgLTAsMCArMSw1 NyBAQAorRnJvbSAzNGE5NTU4MjM2MzAwOTZmNWIwMWMyYjAxZDUxYzFlYTU5ZDIyNzYzIE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogWmVxdWFuIFd1IDx6ZXF1YW53dUBnb29nbGUuY29t PgorRGF0ZTogVHVlLCAyMCBKdWwgMjAyMSAxNDoxMzo1MCArMDAwMAorU3ViamVjdDogW1BBVENI XSBVc2UgLWZmaWxlLWNvbXBpbGF0aW9uLWRpcj0gaW5zdGVhZCBvZgorIC1mZGVidWctY29tcGls YXRpb24tZGlyPQorCitCdWc6IDEwMTAyNjcKK0NoYW5nZS1JZDogSWYyYjRlYWQ4NTM1YTc2NDkw ZWI0NjZhMzhlM2Q4ZmVkNmVhOTEwNzkKK1Jldmlld2VkLW9uOiBodHRwczovL2Nocm9taXVtLXJl dmlldy5nb29nbGVzb3VyY2UuY29tL2MvY2hyb21pdW0vc3JjLysvMjc3MDczOAorQXV0by1TdWJt aXQ6IFplcXVhbiBXdSA8emVxdWFud3VAZ29vZ2xlLmNvbT4KK0NvbW1pdC1RdWV1ZTogTmljbyBX ZWJlciA8dGhha2lzQGNocm9taXVtLm9yZz4KK1Jldmlld2VkLWJ5OiBOaWNvIFdlYmVyIDx0aGFr aXNAY2hyb21pdW0ub3JnPgorQ3ItQ29tbWl0LVBvc2l0aW9uOiByZWZzL2hlYWRzL21hc3RlckB7 IzkwMzQ1Nn0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvY29tcGls ZXIvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvY29t cGlsZXIvQlVJTEQuZ24KK0BAIC0xMjY5LDE5ICsxMjY5LDEyIEBAIGNvbmZpZygiY29tcGlsZXJf ZGV0ZXJtaW5pc3RpYyIpIHsKKyAgICAgIyBkaWZmZXJlbnQgYnVpbGQgZGlyZWN0b3J5IGxpa2Ug Im91dC9mZWF0dXJlX2EiIGFuZCAib3V0L2ZlYXR1cmVfYiIgaWYKKyAgICAgIyB3ZSBidWlsZCBz YW1lIGZpbGVzIHdpdGggc2FtZSBjb21waWxlIGZsYWcuCisgICAgICMgT3RoZXIgcGF0aHMgYXJl IGFscmVhZHkgZ2l2ZW4gaW4gcmVsYXRpdmUsIG5vIG5lZWQgdG8gbm9ybWFsaXplIHRoZW0uCist ICAgIGlmIChpc19uYWNsKSB7CistICAgICAgIyBUT0RPKGh0dHBzOi8vY3JidWcuY29tLzEyMzEy MzYpOiBVc2UgLWZmaWxlLWNvbXBpbGF0aW9uLWRpcj0gaGVyZS4KKy0gICAgICBjZmxhZ3MgKz0g WworLSAgICAgICAgIi1YY2xhbmciLAorLSAgICAgICAgIi1mZGVidWctY29tcGlsYXRpb24tZGly IiwKKy0gICAgICAgICItWGNsYW5nIiwKKy0gICAgICAgICIuIiwKKy0gICAgICBdCistICAgIH0g ZWxzZSB7CistICAgICAgIyAtZmZpbGUtY29tcGlsYXRpb24tZGlyIGlzIGFuIGFsaWFzIGZvciBi b3RoIC1mZGVidWctY29tcGlsYXRpb24tZGlyPQorLSAgICAgICMgYW5kIC1mY292ZXJhZ2UtY29t cGlsYXRpb24tZGlyPS4KKy0gICAgICBjZmxhZ3MgKz0gWyAiLWZmaWxlLWNvbXBpbGF0aW9uLWRp cj0uIiBdCistICAgIH0KKysgICAgY2ZsYWdzICs9IFsKKysgICAgICAiLVhjbGFuZyIsCisrICAg ICAgIi1mZGVidWctY29tcGlsYXRpb24tZGlyIiwKKysgICAgICAiLVhjbGFuZyIsCisrICAgICAg Ii4iLAorKyAgICBdCisgICAgIGlmICghaXNfd2luKSB7CisgICAgICAgIyBXZSBkb24ndCB1c2Ug Y2xhbmcgLWNjMWFzIG9uIFdpbmRvd3MgKHlldD8gaHR0cHM6Ly9jcmJ1Zy5jb20vNzYyMTY3KQor ICAgICAgIGFzbWZsYWdzID0gWyAiLVdhLC1mZGVidWctY29tcGlsYXRpb24tZGlyLC4iIF0KKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9jb25maWcvY29tcGlsZXIvY29tcGlsZXIu Z25pCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYnVpbGQvY29uZmlnL2NvbXBpbGVyL2Nv bXBpbGVyLmduaQorQEAgLTIyOCw4ICsyMjgsMTEgQEAgZGVjbGFyZV9hcmdzKCkgeworICMgZGV0 ZXJtaW5pc3RpYyBidWlsZHMgdG8gcmVkdWNlIGNvbXBpbGUgdGltZXMsIHNvIHRoaXMgaXMgbGVz cyByZWxldmFudCBmb3IKKyAjIG9mZmljaWFsIGJ1aWxkZXJzLgorIHN0cmlwX2Fic29sdXRlX3Bh dGhzX2Zyb21fZGVidWdfc3ltYm9sc19kZWZhdWx0ID0KKy0gICAgaXNfYW5kcm9pZCB8fCBpc19m dWNoc2lhIHx8IGlzX25hY2wgfHwgKGlzX3dpbiAmJiB1c2VfbGxkKSB8fCBpc19saW51eCB8fAor LSAgICBpc19jaHJvbWVvcyB8fCAoaXNfYXBwbGUgJiYgIWVuYWJsZV9kc3ltcykKKysgICAgIyBU T0RPKGNyYnVnLmNvbS8xMDEwMjY3KTogcmVtb3ZlICchdXNlX2NsYW5nX2NvdmVyYWdlJywgY292 ZXJhZ2UgYnVpbGQgaGFzCisrICAgICMgZGVwZW5kZW5jeSB0byBhYnNvbHV0ZSBwYXRoIG9mIHNv dXJjZSBmaWxlcy4KKysgICAgIXVzZV9jbGFuZ19jb3ZlcmFnZSAmJgorKyAgICAoaXNfYW5kcm9p ZCB8fCBpc19mdWNoc2lhIHx8IGlzX25hY2wgfHwgKGlzX3dpbiAmJiB1c2VfbGxkKSB8fCBpc19s aW51eCB8fAorKyAgICAgaXNfY2hyb21lb3MgfHwgKGlzX2FwcGxlICYmICFlbmFibGVfZHN5bXMp KQorIAorIGRlY2xhcmVfYXJncygpIHsKKyAgIHN0cmlwX2Fic29sdXRlX3BhdGhzX2Zyb21fZGVi dWdfc3ltYm9scyA9IHN0cmlwX2Fic29sdXRlX3BhdGhzX2Zyb21fZGVidWdfc3ltYm9sc19kZWZh dWx0CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTExLWNocm9t aXVtLW5vLVduby1zdHJpbmdvcC1vdmVycmVhZC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzAxMTEtY2hyb21pdW0tbm8tV25vLXN0cmluZ29wLW92ZXJyZWFkLnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMDNlYWMzZjhlMDY3Ci0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDExMS1jaHJvbWl1 bS1uby1Xbm8tc3RyaW5nb3Atb3ZlcnJlYWQucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgorKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2J1aWxkL2NvbmZpZy9jb21waWxlci9CVUlMRC5nbgor QEAgLTM5NCw3ICszOTQsNiBAQCBjb25maWcoImNvbXBpbGVyIikgeworICAgICAgICAgIi1Xbm8t cGFyZW50aGVzZXMiLAorICAgICAgICAgIi1Xbm8tc2lnbi1jb21wYXJlIiwgIyBmaWRvCisgICAg ICAgICAiLVduby1zdHJpbmdvcC1vdmVyZmxvdyIsICMgc2tpYSwgbGliYW9tLCBwcm90b2J1Ziwg aWN1CistICAgICAgICAiLVduby1zdHJpbmdvcC1vdmVycmVhZCIsICMgbGliYW9tCisgICAgICAg ICAiLVduby1wc2FiaSIsICMgc2tpYQorICAgICAgICAgIi1Xbm8tbXVsdGljaGFyIiwgIyBjcmFz aHBhZAorICAgICAgICAgIi1Xbm8tZm9ybWF0LXplcm8tbGVuZ3RoIiwgIyB1c2VyX2FnZW50LmNj CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMTUwLWNocm9taXVt LWdsaWJjLWxpYmNfbWFsbG9jLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDE1MC1jaHJvbWl1bS1nbGliYy1saWJjX21hbGxvYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjdlMWI2NmU1YzczZAotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAxNTAtY2hyb21pdW0tZ2xpYmMtbGliY19tYWxs b2MucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jh c2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9i YXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjCitAQCAtMjMsNiArMjMsMTIgQEAKKyAjaW5jbHVk ZSAidGhpcmRfcGFydHkvdGNtYWxsb2MvY2hyb21pdW0vc3JjL2dwZXJmdG9vbHMvdGNtYWxsb2Mu aCIKKyAjZW5kaWYKKyAKKysjaWYgZGVmaW5lZChMSUJDX0dMSUJDKQorK2V4dGVybiAiQyIgewor K2V4dGVybiB2b2lkICpfX2xpYmNfbWFsbG9jKHNpemVfdCBzaXplKTsKKyt9CisrI2VuZGlmCisr CisgbmFtZXNwYWNlIGJhc2UgeworIAorIG5hbWVzcGFjZSB7CitAQCAtMTIwLDcgKzEyNiw3IEBA IGJvb2wgVW5jaGVja2VkTWFsbG9jKHNpemVfdCBzaXplLCB2b2lkKioKKyAgICAgKCFkZWZpbmVk KExJQkNfR0xJQkMpICYmICFCVUlMREZMQUcoVVNFX1RDTUFMTE9DKSkKKyAgICpyZXN1bHQgPSBt YWxsb2Moc2l6ZSk7CisgI2VsaWYgZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhQlVJTERGTEFHKFVT RV9UQ01BTExPQykKKy0gICpyZXN1bHQgPSBfX2xpYmNfbWFsbG9jKHNpemUpOworKyAgKnJlc3Vs dCA9IDo6X19saWJjX21hbGxvYyhzaXplKTsKKyAjZWxpZiBCVUlMREZMQUcoVVNFX1RDTUFMTE9D KQorICAgKnJlc3VsdCA9IHRjX21hbGxvY19za2lwX25ld19oYW5kbGVyKHNpemUpOworICNlbmRp ZgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMC1jaHJvbWl1 bS1tdXNsLWluY2x1ZGUtc3lzLXJlZy5oLXRvLWdldC1fX1dPUkRTSVpFLnBhdGNoIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIwMC1jaHJvbWl1bS1tdXNsLWluY2x1ZGUtc3lzLXJl Zy5oLXRvLWdldC1fX1dPUkRTSVpFLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNDFiOTAwNzFiNWU0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDIwMC1jaHJvbWl1bS1tdXNsLWluY2x1ZGUtc3lzLXJlZy5oLXRv LWdldC1fX1dPUkRTSVpFLnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAKK0Zyb20gOTAwMWM1NGQ2Yjk3 NDQ0OTE3NGE4Y2VlOGYzZjVkNzhhOWJkNmM5ZSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy b206IEZlbGl4IEphbmRhIDxmZWxpeC5qYW5kYUBwb3N0ZW8uZGU+CitEYXRlOiBTdW4sIDEgRmVi IDIwMTUgMTQ6MjY6NTIgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSCAzLzZdIGluY2x1ZGUgPHN5cy9y ZWcuaD4gdG8gZ2V0IF9fV09SRFNJWkUgb24gbXVzbCBsaWJjCisKKy0tLQorIHF0d2ViZW5naW5l L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaCB8IDEgKworIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKQorCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZfY29yZV9kdW1wLmgKKysrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29t bW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaAorQEAgLTM3LDYgKzM3LDkgQEAKKyAjaW5jbHVkZSA8 bGltaXRzLmg+CisgI2luY2x1ZGUgPGxpbmsuaD4KKyAjaW5jbHVkZSA8c3RkZGVmLmg+CisrI2lm bmRlZiBfX0dMSUJDX18KKysjaW5jbHVkZSA8c3lzL3JlZy5oPgorKyNlbmRpZgorIAorICNpbmNs dWRlICJjb21tb24vbWVtb3J5X3JhbmdlLmgiCisgCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wMjAxLWNocm9taXVtLW11c2wtZGlzcGF0Y2gtdG8tbXVzbC5wYXRj aCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDEtY2hyb21pdW0tbXVzbC1kaXNw YXRjaC10by1tdXNsLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uYTU4YTY4OGE0YjU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIwMS1jaHJvbWl1bS1tdXNsLWRpc3BhdGNoLXRvLW11c2wucGF0Y2gKQEAgLTAs MCArMSwxMDMgQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2FsbG9jYXRvci9h bGxvY2F0b3Jfc2hpbV9kZWZhdWx0X2Rpc3BhdGNoX3RvX2dsaWJjLmNjCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vYmFzZS9hbGxvY2F0b3IvYWxsb2NhdG9yX3NoaW1fZGVmYXVsdF9kaXNw YXRjaF90b19nbGliYy5jYworQEAgLTgsNiArOCw3IEBACisgI2luY2x1ZGUgPGRsZmNuLmg+Cisg I2luY2x1ZGUgPG1hbGxvYy5oPgorIAorKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAvLyBUaGlz IHRyYW5zbGF0aW9uIHVuaXQgZGVmaW5lcyBhIGRlZmF1bHQgZGlzcGF0Y2ggZm9yIHRoZSBhbGxv Y2F0b3Igc2hpbSB3aGljaAorIC8vIHJvdXRlcyBhbGxvY2F0aW9ucyB0byBsaWJjIGZ1bmN0aW9u cy4KKyAvLyBUaGUgY29kZSBoZXJlIGlzIHN0cm9uZ2x5IGluc3BpcmVkIGZyb20gdGNtYWxsb2Mn cyBsaWJjX292ZXJyaWRlX2dsaWJjLmguCitAQCAtODcsMyArODgsOTIgQEAgY29uc3QgQWxsb2Nh dG9yRGlzcGF0Y2ggQWxsb2NhdG9yRGlzcGF0YworICAgICBudWxscHRyLCAgICAgICAgICAgICAg IC8qIGFsaWduZWRfZnJlZV9mdW5jdGlvbiAqLworICAgICBudWxscHRyLCAgICAgICAgICAgICAg IC8qIG5leHQgKi8KKyB9OworKworKyNlbHNlIC8vIGRlZmluZWQoX19HTElCQ19fKQorKworKyNp bmNsdWRlIDxkbGZjbi5oPgorKworK2V4dGVybiAiQyIgeworKy8vIERlY2xhcmUgZnVuY3Rpb24g cG9pbnRlcnMgdG8gdGhlIG1lbW9yeSBmdW5jdGlvbnMKKyt0eXBlZGVmIHZvaWQqICgqdF9saWJj X21hbGxvYykoc2l6ZV90IHNpemUpOworK3R5cGVkZWYgdm9pZCogKCp0X2xpYmNfY2FsbG9jKShz aXplX3Qgbiwgc2l6ZV90IHNpemUpOworK3R5cGVkZWYgdm9pZCogKCp0X2xpYmNfcmVhbGxvYyko dm9pZCogYWRkcmVzcywgc2l6ZV90IHNpemUpOworK3R5cGVkZWYgdm9pZCogKCp0X2xpYmNfbWVt YWxpZ24pKHNpemVfdCBhbGlnbm1lbnQsIHNpemVfdCBzaXplKTsKKyt0eXBlZGVmIHZvaWQgKCp0 X2xpYmNfZnJlZSkodm9pZCogcHRyKTsKKyt0eXBlZGVmIHNpemVfdCAoKnRfbGliY19tYWxsb2Nf dXNhYmxlX3NpemUpKHZvaWQqIHB0cik7CisrCisrLy8gU3RhdGljIGluc3RhbmNlcyBvZiBwb2lu dGVycyB0byBsaWJjLnNvIGRsIHN5bWJvbHMKKytzdGF0aWMgdF9saWJjX21hbGxvYyBsaWJjX21h bGxvYyA9IE5VTEw7Cisrc3RhdGljIHRfbGliY19jYWxsb2MgbGliY19jYWxsb2MgPSBOVUxMOwor K3N0YXRpYyB0X2xpYmNfcmVhbGxvYyBsaWJjX3JlYWxsb2MgPSBOVUxMOworK3N0YXRpYyB0X2xp YmNfbWVtYWxpZ24gbGliY19tZW1hbGlnbiA9IE5VTEw7Cisrc3RhdGljIHRfbGliY19mcmVlIGxp YmNfZnJlZSA9IE5VTEw7Cisrc3RhdGljIHRfbGliY19tYWxsb2NfdXNhYmxlX3NpemUgbGliY19t YWxsb2NfdXNhYmxlX3NpemUgPSBOVUxMOworKworKy8vIHJlc29sdmUgdGhlIHN5bWJvbHMgaW4g bGliYy5zbworK3ZvaWQgbXVzbF9saWJjX21lbW9yeV9pbml0KHZvaWQpCisreworKyAgbGliY19t YWxsb2MgPSAodF9saWJjX21hbGxvYykgZGxzeW0oUlRMRF9ORVhULCAibWFsbG9jIik7CisrICBs aWJjX2NhbGxvYyA9ICh0X2xpYmNfY2FsbG9jKSBkbHN5bShSVExEX05FWFQsICJjYWxsb2MiKTsK KysgIGxpYmNfcmVhbGxvYyA9ICh0X2xpYmNfcmVhbGxvYykgZGxzeW0oUlRMRF9ORVhULCAicmVh bGxvYyIpOworKyAgbGliY19tZW1hbGlnbiA9ICh0X2xpYmNfbWVtYWxpZ24pIGRsc3ltKFJUTERf TkVYVCwgIm1lbWFsaWduIik7CisrICBsaWJjX2ZyZWUgPSAodF9saWJjX2ZyZWUpIGRsc3ltKFJU TERfTkVYVCwgImZyZWUiKTsKKysgIGxpYmNfbWFsbG9jX3VzYWJsZV9zaXplID0gKHRfbGliY19t YWxsb2NfdXNhYmxlX3NpemUpIGRsc3ltKFJUTERfTkVYVCwgIm1hbGxvY191c2FibGVfc2l6ZSIp OworK30KKyt9ICAvLyBleHRlcm4gIkMiCisrCisrbmFtZXNwYWNlIHsKKysKKyt1c2luZyBiYXNl OjphbGxvY2F0b3I6OkFsbG9jYXRvckRpc3BhdGNoOworKworK3ZvaWQqIE11c2xNYWxsb2MoY29u c3QgQWxsb2NhdG9yRGlzcGF0Y2gqLCBzaXplX3Qgc2l6ZSwgdm9pZCogY29udGV4dCkgeworKyAg aWYgKCFsaWJjX21hbGxvYykKKysgICAgbXVzbF9saWJjX21lbW9yeV9pbml0KCk7CisrICByZXR1 cm4gKCpsaWJjX21hbGxvYykoc2l6ZSk7CisrfQorKworK3ZvaWQqIE11c2xDYWxsb2MoY29uc3Qg QWxsb2NhdG9yRGlzcGF0Y2gqLCBzaXplX3Qgbiwgc2l6ZV90IHNpemUsIHZvaWQqIGNvbnRleHQp IHsKKysgIGlmICghbGliY19jYWxsb2MpCisrICAgIG11c2xfbGliY19tZW1vcnlfaW5pdCgpOwor KyAgcmV0dXJuICgqbGliY19jYWxsb2MpKG4sIHNpemUpOworK30KKysKKyt2b2lkKiBNdXNsUmVh bGxvYyhjb25zdCBBbGxvY2F0b3JEaXNwYXRjaCosIHZvaWQqIGFkZHJlc3MsIHNpemVfdCBzaXpl LCB2b2lkKiBjb250ZXh0KSB7CisrICBpZiAoIWxpYmNfcmVhbGxvYykKKysgICAgbXVzbF9saWJj X21lbW9yeV9pbml0KCk7CisrICByZXR1cm4gKCpsaWJjX3JlYWxsb2MpKGFkZHJlc3MsIHNpemUp OworK30KKysKKyt2b2lkKiBNdXNsTWVtYWxpZ24oY29uc3QgQWxsb2NhdG9yRGlzcGF0Y2gqLCBz aXplX3QgYWxpZ25tZW50LCBzaXplX3Qgc2l6ZSwgdm9pZCogY29udGV4dCkgeworKyAgaWYgKCFs aWJjX21lbWFsaWduKQorKyAgICBtdXNsX2xpYmNfbWVtb3J5X2luaXQoKTsKKysgIHJldHVybiAo KmxpYmNfbWVtYWxpZ24pKGFsaWdubWVudCwgc2l6ZSk7CisrfQorKworK3ZvaWQgTXVzbEZyZWUo Y29uc3QgQWxsb2NhdG9yRGlzcGF0Y2gqLCB2b2lkKiBhZGRyZXNzLCB2b2lkKiBjb250ZXh0KSB7 CisrICBpZiAoIWxpYmNfZnJlZSkKKysgICAgbXVzbF9saWJjX21lbW9yeV9pbml0KCk7CisrICAo KmxpYmNfZnJlZSkoYWRkcmVzcyk7CisrfQorKworK3NpemVfdCBNdXNsR2V0U2l6ZUVzdGltYXRl KGNvbnN0IEFsbG9jYXRvckRpc3BhdGNoKiwgdm9pZCogYWRkcmVzcywgdm9pZCogY29udGV4dCkg eworKyAgLy8gVE9ETyhzaWdnaSwgcHJpbWlhbm8pOiBtYWxsb2NfdXNhYmxlX3NpemUgbWF5IG5l ZWQgcmVkaXJlY3Rpb24gaW4gdGhlCisrICAvLyAgICAgcHJlc2VuY2Ugb2YgaW50ZXJwb3Npbmcg c2hpbXMgdGhhdCBkaXZlcnQgYWxsb2NhdGlvbnMuCisrICBpZiAoIWxpYmNfbWFsbG9jX3VzYWJs ZV9zaXplKQorKyAgICBtdXNsX2xpYmNfbWVtb3J5X2luaXQoKTsKKysgIHJldHVybiAoKmxpYmNf bWFsbG9jX3VzYWJsZV9zaXplKShhZGRyZXNzKTsKKyt9CisrCisrfSAgLy8gbmFtZXNwYWNlCisr CisrY29uc3QgQWxsb2NhdG9yRGlzcGF0Y2ggQWxsb2NhdG9yRGlzcGF0Y2g6OmRlZmF1bHRfZGlz cGF0Y2ggPSB7CisrICAgICZNdXNsTWFsbG9jLCAgICAgICAgICAgLyogYWxsb2NfZnVuY3Rpb24g Ki8KKysgICAgJk11c2xDYWxsb2MsICAgICAgICAgICAvKiBhbGxvY196ZXJvX2luaXRpYWxpemVk X2Z1bmN0aW9uICovCisrICAgICZNdXNsTWVtYWxpZ24sICAgICAgICAgLyogYWxsb2NfYWxpZ25l ZF9mdW5jdGlvbiAqLworKyAgICAmTXVzbFJlYWxsb2MsICAgICAgICAgIC8qIHJlYWxsb2NfZnVu Y3Rpb24gKi8KKysgICAgJk11c2xGcmVlLCAgICAgICAgICAgICAvKiBmcmVlX2Z1bmN0aW9uICov CisrICAgICZNdXNsR2V0U2l6ZUVzdGltYXRlLCAgLyogZ2V0X3NpemVfZXN0aW1hdGVfZnVuY3Rp b24gKi8KKysgICAgbnVsbHB0ciwgICAgICAgICAgICAgICAvKiBuZXh0ICovCisrfTsKKysKKysj ZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDItY2hy b21pdW0tbXVzbC1uby1tYWxsaW5mby5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzAyMDItY2hyb21pdW0tbXVzbC1uby1tYWxsaW5mby5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmE1YmRiNWE0M2E1ZgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDItY2hyb21pdW0tbXVzbC1uby1tYWxs aW5mby5wYXRjaApAQCAtMCwwICsxLDYyIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0v YmFzZS9wcm9jZXNzL3Byb2Nlc3NfbWV0cmljc19wb3NpeC5jYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2Jhc2UvcHJvY2Vzcy9wcm9jZXNzX21ldHJpY3NfcG9zaXguY2MKK0BAIC0xMDUs NyArMTA1LDcgQEAgdm9pZCBJbmNyZWFzZUZkTGltaXRUbyh1bnNpZ25lZCBpbnQgbWF4XworIAor ICNlbmRpZiAgLy8gIWRlZmluZWQoT1NfRlVDSFNJQSkKKyAKKy0jaWYgZGVmaW5lZChPU19MSU5V WCkgfHwgZGVmaW5lZChPU19DSFJPTUVPUykgfHwgZGVmaW5lZChPU19BTkRST0lEKQorKyNpZiAo ZGVmaW5lZChPU19MSU5VWCkgJiYgZGVmaW5lZChfX0dMSUJDX18pKSB8fCBkZWZpbmVkKE9TX0NI Uk9NRU9TKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpCisgbmFtZXNwYWNlIHsKKyAKKyBzaXplX3Qg R2V0TWFsbG9jVXNhZ2VNYWxsaW5mbygpIHsKK0BAIC0xMjcsMTYgKzEyNywxNiBAQCBzaXplX3Qg R2V0TWFsbG9jVXNhZ2VNYWxsaW5mbygpIHsKKyB9CisgCisgfSAgLy8gbmFtZXNwYWNlCistI2Vu ZGlmICAvLyBkZWZpbmVkKE9TX0xJTlVYKSB8fCBkZWZpbmVkKE9TX0NIUk9NRU9TKSB8fCBkZWZp bmVkKE9TX0FORFJPSUQpCisrI2VuZGlmICAvLyAoZGVmaW5lZChPU19MSU5VWCkgJiYgZGVmaW5l ZChfX0dMSUJDX18pKSB8fCBkZWZpbmVkKE9TX0NIUk9NRU9TKSB8fCBkZWZpbmVkKE9TX0FORFJP SUQpCisgCisgc2l6ZV90IFByb2Nlc3NNZXRyaWNzOjpHZXRNYWxsb2NVc2FnZSgpIHsKKyAjaWYg ZGVmaW5lZChPU19BUFBMRSkKKyAgIG1hbGxvY19zdGF0aXN0aWNzX3Qgc3RhdHMgPSB7MH07Cisg ICBtYWxsb2Nfem9uZV9zdGF0aXN0aWNzKG51bGxwdHIsICZzdGF0cyk7CisgICByZXR1cm4gc3Rh dHMuc2l6ZV9pbl91c2U7CistI2VsaWYgZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5lZChPU19D SFJPTUVPUykgfHwgZGVmaW5lZChPU19BTkRST0lEKQorKyNlbGlmIChkZWZpbmVkKE9TX0xJTlVY KSAmJiBkZWZpbmVkKF9fR0xJQkNfXykpIHx8IGRlZmluZWQoT1NfQ0hST01FT1MpIHx8IGRlZmlu ZWQoT1NfQU5EUk9JRCkKKyAgIHJldHVybiBHZXRNYWxsb2NVc2FnZU1hbGxpbmZvKCk7CistI2Vs aWYgZGVmaW5lZChPU19GVUNIU0lBKQorKyNlbHNlCisgICAvLyBUT0RPKGZ1Y2hzaWEpOiBOb3Qg Y3VycmVudGx5IGV4cG9zZWQuIGh0dHBzOi8vY3JidWcuY29tLzczNTA4Ny4KKyAgIHJldHVybiAw OworICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3RmbGl0 ZS9zcmMvdGVuc29yZmxvdy9saXRlL3Byb2ZpbGluZy9tZW1vcnlfaW5mby5jYworKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3RmbGl0ZS9zcmMvdGVuc29yZmxvdy9saXRl L3Byb2ZpbGluZy9tZW1vcnlfaW5mby5jYworQEAgLTI3LDcgKzI3LDcgQEAgbmFtZXNwYWNlIG1l bW9yeSB7CisgY29uc3QgaW50IE1lbW9yeVVzYWdlOjprVmFsdWVOb3RTZXQgPSAwOworIAorIGJv b2wgTWVtb3J5VXNhZ2U6OklzU3VwcG9ydGVkKCkgeworLSNpZmRlZiBfX2xpbnV4X18KKysjaWZk ZWYgX19HTElCQ19fCisgICByZXR1cm4gdHJ1ZTsKKyAjZW5kaWYKKyAgIHJldHVybiBmYWxzZTsK K0BAIC0zNSw3ICszNSw3IEBAIGJvb2wgTWVtb3J5VXNhZ2U6OklzU3VwcG9ydGVkKCkgeworIAor IE1lbW9yeVVzYWdlIEdldE1lbW9yeVVzYWdlKCkgeworICAgTWVtb3J5VXNhZ2UgcmVzdWx0Owor LSNpZmRlZiBfX2xpbnV4X18KKysjaWZkZWYgX19HTElCQ19fCisgICBydXNhZ2UgcmVzOworICAg aWYgKGdldHJ1c2FnZShSVVNBR0VfU0VMRiwgJnJlcykgPT0gMCkgeworICAgICByZXN1bHQubWF4 X3Jzc19rYiA9IHJlcy5ydV9tYXhyc3M7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFz ZS90cmFjZV9ldmVudC9tYWxsb2NfZHVtcF9wcm92aWRlci5jYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL2Jhc2UvdHJhY2VfZXZlbnQvbWFsbG9jX2R1bXBfcHJvdmlkZXIuY2MKK0BAIC0y MTMsNyArMjEzLDcgQEAgYm9vbCBNYWxsb2NEdW1wUHJvdmlkZXI6Ok9uTWVtb3J5RHVtcChjbwor ICAgICAgICAgICAgICAgICAgICAgICZhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCk7CisgI2VsaWYg ZGVmaW5lZChPU19GVUNIU0lBKQorIC8vIFRPRE8oZnVjaHNpYSk6IFBvcnQsIHNlZSBodHRwczov L2NyYnVnLmNvbS83MDY1OTIuCistI2Vsc2UKKysjZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAj aWYgZGVmaW5lZChfX0dMSUJDX18pICYmIGRlZmluZWQoX19HTElCQ19QUkVSRVEpCisgI2lmIF9f R0xJQkNfUFJFUkVRKDIsIDMzKQorICNkZWZpbmUgTUFMTElORk8yX0ZPVU5EX0lOX0xJQkMKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDMtY2hyb21pdW0tbXVz bC1zaWdpbmZvX3QucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjAzLWNo cm9taXVtLW11c2wtc2lnaW5mb190LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uNDNlZjdmZDdjNWQyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDIwMy1jaHJvbWl1bS1tdXNsLXNpZ2luZm9fdC5wYXRjaApAQCAt MCwwICsxLDE4IEBACitUaGVyZSdzIGEgc3VidGxlIGRpZmZlcmVuY2UgaW4gdGhlIGludGVybmFs IG5hbWUgb2Ygc2lnaW5mb190IGZpZWxkcworYmV0d2VlbiBnbGliYyBhbmQgbXVzbC4gVGhlIHN0 cnVjdHVyZSBpdHNlbGYgaXMgZXF1aXZhbGVudCwgc28gaXQKK3Nob3VsZCBzdWZmaWNlIHRvIGFk ZCBhIG1hY3JvIHRvIHJlbmFtZSB0aGUgZmllbGQuCisKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKKysrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3RyYXAuY2MKK0BAIC0xNzQsNyAr MTc0LDExIEBAIHZvaWQgVHJhcDo6U2lnU3lzKGludCBuciwgTGludXhTaWdJbmZvKgorICAgLy8g SWYgdGhlIHZlcnNpb24gb2YgZ2xpYmMgZG9lc24ndCBpbmNsdWRlIHRoaXMgaW5mb3JtYXRpb24g aW4KKyAgIC8vIHNpZ2luZm9fdCAob2xkZXIgdGhhbiAyLjE3KSwgd2UgbmVlZCB0byBleHBsaWNp dGx5IGNvcHkgaXQKKyAgIC8vIGludG8gYW4gYXJjaF9zaWdzeXMgc3RydWN0dXJlLgorKyNpZiBk ZWZpbmVkKF9fR0xJQkNfXykKKyAgIG1lbWNweSgmc2lnc3lzLCAmaW5mby0+X3NpZmllbGRzLCBz aXplb2Yoc2lnc3lzKSk7CisrI2Vsc2UKKysgIG1lbWNweSgmc2lnc3lzLCAmaW5mby0+X19zaV9m aWVsZHMsIHNpemVvZihzaWdzeXMpKTsKKysjZW5kaWYKKyAjZW5kaWYKKyAKKyAjaWYgZGVmaW5l ZChfX21pcHNfXykKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAy MDQtY2hyb21pdW0tbXVzbC1zdGFja3N0YXJ0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIwNC1jaHJvbWl1bS1tdXNsLXN0YWNrc3RhcnQucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iMDNjZjQzYjg2ZGIKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA0LWNocm9taXVtLW11c2wtc3Rh Y2tzdGFydC5wYXRjaApAQCAtMCwwICsxLDIwIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYmxpbmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3N0YWNrX3V0aWwuY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9ibGluay9yZW5kZXJlci9w bGF0Zm9ybS93dGYvc3RhY2tfdXRpbC5jYworQEAgLTI5LDcgKzI5LDcgQEAgc2l6ZV90IEdldFVu ZGVyZXN0aW1hdGVkU3RhY2tTaXplKCkgeworIC8vIEZJWE1FOiBPbiBNYWMgT1NYIGFuZCBMaW51 eCwgdGhpcyBtZXRob2QgY2Fubm90IGVzdGltYXRlIHN0YWNrIHNpemUKKyAvLyBjb3JyZWN0bHkg Zm9yIHRoZSBtYWluIHRocmVhZC4KKyAKKy0jZWxpZiBkZWZpbmVkKF9fR0xJQkNfXykgfHwgZGVm aW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKysjZWxpZiBkZWZp bmVkKE9TX0xJTlVYKSB8fCBkZWZpbmVkKE9TX0FORFJPSUQpIHx8IGRlZmluZWQoT1NfRlJFRUJT RCkgfHwgXAorICAgICBkZWZpbmVkKE9TX0ZVQ0hTSUEpCisgICAvLyBwdGhyZWFkX2dldGF0dHJf bnAoKSBjYW4gZmFpbCBpZiB0aGUgdGhyZWFkIGlzIG5vdCBpbnZva2VkIGJ5CisgICAvLyBwdGhy ZWFkX2NyZWF0ZSgpIChlLmcuLCB0aGUgbWFpbiB0aHJlYWQgb2YgYmxpbmtfdW5pdHRlc3RzKS4K K0BAIC05Nyw3ICs5Nyw3IEBAIHJldHVybiBUaHJlYWRpbmc6OlRocmVhZFN0YWNrU2l6ZSgpOwor IH0KKyAKKyB2b2lkKiBHZXRTdGFja1N0YXJ0KCkgeworLSNpZiBkZWZpbmVkKF9fR0xJQkNfXykg fHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZSRUVCU0QpIHx8IFwKKysjaWYg ZGVmaW5lZChPU19MSU5VWCkgfHwgZGVmaW5lZChPU19BTkRST0lEKSB8fCBkZWZpbmVkKE9TX0ZS RUVCU0QpIHx8IFwKKyAgICAgZGVmaW5lZChPU19GVUNIU0lBKQorICAgcHRocmVhZF9hdHRyX3Qg YXR0cjsKKyAgIGludCBlcnJvcjsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9w YXRjaGVzLzAyMDUtY2hyb21pdW0tbXVzbC1zYW5kYm94LnBhdGNoIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDIwNS1jaHJvbWl1bS1tdXNsLXNhbmRib3gucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi43NzJhNTc4ZmQ4MjMKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA1LWNocm9taXVtLW11c2wt c2FuZGJveC5wYXRjaApAQCAtMCwwICsxLDkyIEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19y ZXN0cmljdGlvbnMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5jYwor QEAgLTEzOCw3ICsxMzgsNyBAQCBuYW1lc3BhY2Ugc2FuZGJveCB7CisgLy8gcHJlc2VudCAoYXMg aW4gbmV3ZXIgdmVyc2lvbnMgb2YgcG9zaXhfc3Bhd24pLgorIFJlc3VsdEV4cHIgUmVzdHJpY3RD bG9uZVRvVGhyZWFkc0FuZEVQRVJNRm9yaygpIHsKKyAgIGNvbnN0IEFyZzx1bnNpZ25lZCBsb25n PiBmbGFncygwKTsKKy0KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAvLyBUT0RPKG1kZW1w c2t5KTogRXh0ZW5kIERTTCB0byBzdXBwb3J0IChmbGFncyAmIH5tYXNrMSkgPT0gbWFzazIuCisg ICBjb25zdCB1aW50NjRfdCBrQW5kcm9pZENsb25lTWFzayA9IENMT05FX1ZNIHwgQ0xPTkVfRlMg fCBDTE9ORV9GSUxFUyB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENM T05FX1NJR0hBTkQgfCBDTE9ORV9USFJFQUQgfAorQEAgLTE2NSw2ICsxNjUsMTcgQEAgUmVzdWx0 RXhwciBSZXN0cmljdENsb25lVG9UaHJlYWRzQW5kRVBFUgorICAgcmV0dXJuIElmKElzQW5kcm9p ZCgpID8gYW5kcm9pZF90ZXN0IDogZ2xpYmNfdGVzdCwgQWxsb3coKSkKKyAgICAgICAuRWxzZUlm KGlzX2Zvcmtfb3JfY2xvbmVfdmZvcmssIEVycm9yKEVQRVJNKSkKKyAgICAgICAuRWxzZShDcmFz aFNJR1NZU0Nsb25lKCkpOworKyNlbHNlCisrICBjb25zdCBpbnQgcmVxdWlyZWQgPSBDTE9ORV9W TSB8IENMT05FX0ZTIHwgQ0xPTkVfRklMRVMgfCBDTE9ORV9TSUdIQU5EIHwKKysgICAgICAgICAg ICAgICAgICAgICAgIENMT05FX1RIUkVBRCB8IENMT05FX1NZU1ZTRU07CisrICBjb25zdCBpbnQg c2FmZSA9IENMT05FX1NFVFRMUyB8IENMT05FX1BBUkVOVF9TRVRUSUQgfCBDTE9ORV9DSElMRF9D TEVBUlRJRCB8CisrICAgICAgICAgICAgICAgICAgIENMT05FX0RFVEFDSEVEOworKyAgY29uc3Qg Qm9vbEV4cHIgdGhyZWFkX2Nsb25lX29rID0gKGZsYWdzJn5zYWZlKT09cmVxdWlyZWQ7CisrCisr ICByZXR1cm4gSWYodGhyZWFkX2Nsb25lX29rLCBBbGxvdygpKQorKyAgICAgIC5FbHNlSWYoKGZs YWdzICYgKENMT05FX1ZNIHwgQ0xPTkVfVEhSRUFEKSkgPT0gMCwgRXJyb3IoRVBFUk0pKQorKyAg ICAgIC5FbHNlKENyYXNoU0lHU1lTQ2xvbmUoKSk7CisrI2VuZGlmCisgfQorIAorICNpZm5kZWYg UFJfUEFDX1JFU0VUX0tFWVMKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0 cy5jYworQEAgLTQxOSw2ICs0MTksOSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRQcm9j ZXNzU3RhcnRPCisgI2lmIGRlZmluZWQoX19pMzg2X18pCisgICAgIGNhc2UgX19OUl93YWl0cGlk OgorICNlbmRpZgorKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisrICAgIGNhc2UgX19OUl9zZXRf dGlkX2FkZHJlc3M6CisrI2VuZGlmCisgICAgICAgcmV0dXJuIHRydWU7CisgICAgIGNhc2UgX19O Ul9jbG9uZTogIC8vIFNob3VsZCBiZSBwYXJhbWV0ZXItcmVzdHJpY3RlZC4KKyAgICAgY2FzZSBf X05SX3NldG5zOiAgLy8gUHJpdmlsZWdlZC4KK0BAIC00MzEsNyArNDM0LDkgQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0TworICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisgICAgIGNhc2UgX19O Ul9zZXRfdGhyZWFkX2FyZWE6CisgI2VuZGlmCisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAg ICBjYXNlIF9fTlJfc2V0X3RpZF9hZGRyZXNzOgorKyNlbmRpZgorICAgICBjYXNlIF9fTlJfdW5z aGFyZToKKyAjaWYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQor ICAgICBjYXNlIF9fTlJfdmZvcms6CitAQCAtNTQ1LDYgKzU1MCw5IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZEFkZHJlc3NTcGFjZUEKKyAgICAgY2FzZSBfX05SX21sb2NrOgorICAgICBj YXNlIF9fTlJfbXVubG9jazoKKyAgICAgY2FzZSBfX05SX211bm1hcDoKKysjaWYgIWRlZmluZWQo X19HTElCQ19fKQorKyAgICBjYXNlIF9fTlJfbXJlbWFwOgorKyNlbmRpZgorICAgICAgIHJldHVy biB0cnVlOworICAgICBjYXNlIF9fTlJfbWFkdmlzZToKKyAgICAgY2FzZSBfX05SX21pbmNvcmU6 CitAQCAtNTYyLDcgKzU3MCw5IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEFkZHJlc3NT cGFjZUEKKyAgICAgY2FzZSBfX05SX21vZGlmeV9sZHQ6CisgI2VuZGlmCisgICAgIGNhc2UgX19O Ul9tcHJvdGVjdDoKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICAgIGNhc2UgX19OUl9tcmVt YXA6CisrI2VuZGlmCisgICAgIGNhc2UgX19OUl9tc3luYzoKKyAgICAgY2FzZSBfX05SX211bmxv Y2thbGw6CisgICAgIGNhc2UgX19OUl9yZWFkYWhlYWQ6CistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51eC5jYwor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5k ZXJlcl9wb2xpY3lfbGludXguY2MKK0BAIC05NywxMSArOTcsMTggQEAgUmVzdWx0RXhwciBSZW5k ZXJlclByb2Nlc3NQb2xpY3k6OkV2YWx1YQorICAgICBjYXNlIF9fTlJfc3lzaW5mbzoKKyAgICAg Y2FzZSBfX05SX3RpbWVzOgorICAgICBjYXNlIF9fTlJfdW5hbWU6CisrI2lmICFkZWZpbmVkKF9f R0xJQkNfXykKKysgICAgY2FzZSBfX05SX3NjaGVkX2dldHBhcmFtOgorKyAgICBjYXNlIF9fTlJf c2NoZWRfZ2V0c2NoZWR1bGVyOgorKyAgICBjYXNlIF9fTlJfc2NoZWRfc2V0c2NoZWR1bGVyOgor KyNlbmRpZgorICAgICAgIHJldHVybiBBbGxvdygpOworICAgICBjYXNlIF9fTlJfc2NoZWRfZ2V0 YWZmaW5pdHk6CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgICBjYXNlIF9fTlJfc2NoZWRf Z2V0cGFyYW06CisgICAgIGNhc2UgX19OUl9zY2hlZF9nZXRzY2hlZHVsZXI6CisgICAgIGNhc2Ug X19OUl9zY2hlZF9zZXRzY2hlZHVsZXI6CisrI2VuZGlmCisgICAgICAgcmV0dXJuIFJlc3RyaWN0 U2NoZWRUYXJnZXQoR2V0UG9saWN5UGlkKCksIHN5c25vKTsKKyAgICAgY2FzZSBfX05SX3BybGlt aXQ2NDoKKyAgICAgICAvLyBTZWUgY3JidWcuY29tLzY2MjQ1MCBhbmQgc2V0cmxpbWl0IGNvbW1l bnQgYWJvdmUuCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA2 LWNocm9taXVtLW11c2wtZGVmYXVsdC1zdGFja3NpemUucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMjA2LWNocm9taXVtLW11c2wtZGVmYXVsdC1zdGFja3NpemUucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5iYzA3NDk1YjgxNDQKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA2LWNocm9t aXVtLW11c2wtZGVmYXVsdC1zdGFja3NpemUucGF0Y2gKQEAgLTAsMCArMSwxNSBAQAorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvdGhyZWFkaW5nL3BsYXRmb3JtX3RocmVhZF9saW51 eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvdGhyZWFkaW5nL3BsYXRmb3Jt X3RocmVhZF9saW51eC5jYworQEAgLTQzOSw3ICs0MzksMTIgQEAgdm9pZCBUZXJtaW5hdGVPblRo cmVhZCgpIHt9CisgCisgc2l6ZV90IEdldERlZmF1bHRUaHJlYWRTdGFja1NpemUoY29uc3QgcHRo cmVhZF9hdHRyX3QmIGF0dHJpYnV0ZXMpIHsKKyAjaWYgIWRlZmluZWQoVEhSRUFEX1NBTklUSVpF UikKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgICByZXR1cm4gMDsKKysjZWxzZSAvLyBkZWZp bmVkKF9fR0xJQkNfXykKKysgIC8vIEZvciBNdXNsIGxpYmMgdHJ5IHdpdGggYSBkZWZhdWx0IHN0 YWNrIHNpemUgb2YgMiBNaUIKKysgIHJldHVybiAyICogMTAyNCAqIDEwMjQ7CisrI2VuZGlmIC8v ICFkZWZpbmVkKF9fR0xJQkNfXykKKyAjZWxzZQorICAgLy8gVGhyZWFkU2FuaXRpemVyIGJsb2F0 cyB0aGUgc3RhY2sgaGVhdmlseS4gRXZpZGVuY2UgaGFzIGJlZW4gdGhhdCB0aGUKKyAgIC8vIGRl ZmF1bHQgc3RhY2sgc2l6ZSBpc24ndCBlbm91Z2ggZm9yIHNvbWUgYnJvd3NlciB0ZXN0cy4KZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDgtY2hyb21pdW0tbXVz bC1leGVjaW5mby5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDgtY2hy b21pdW0tbXVzbC1leGVjaW5mby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjlmM2I5NjQ2NzZiMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS9wYXRjaGVzLzAyMDgtY2hyb21pdW0tbXVzbC1leGVjaW5mby5wYXRjaApAQCAtMCww ICsxLDEyNSBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Jhc2UvZGVidWcvc3RhY2tf dHJhY2UuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2RlYnVnL3N0YWNrX3Ry YWNlLmNjCitAQCAtMjUyLDcgKzI1Miw5IEBAIHZvaWQgU3RhY2tUcmFjZTo6UHJpbnQoKSBjb25z dCB7CisgfQorIAorIHZvaWQgU3RhY2tUcmFjZTo6T3V0cHV0VG9TdHJlYW0oc3RkOjpvc3RyZWFt KiBvcykgY29uc3QgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkK KyAgIE91dHB1dFRvU3RyZWFtV2l0aFByZWZpeChvcywgbnVsbHB0cik7CisrI2VuZGlmCisgfQor IAorIHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6OlRvU3RyaW5nKCkgY29uc3QgeworQEAgLTI2MCw3 ICsyNjIsNyBAQCBzdGQ6OnN0cmluZyBTdGFja1RyYWNlOjpUb1N0cmluZygpIGNvbnN0CisgfQor IHN0ZDo6c3RyaW5nIFN0YWNrVHJhY2U6OlRvU3RyaW5nV2l0aFByZWZpeChjb25zdCBjaGFyKiBw cmVmaXhfc3RyaW5nKSBjb25zdCB7CisgICBzdGQ6OnN0cmluZ3N0cmVhbSBzdHJlYW07CistI2lm ICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19H TElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorICAgT3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KCZz dHJlYW0sIHByZWZpeF9zdHJpbmcpOworICNlbmRpZgorICAgcmV0dXJuIHN0cmVhbS5zdHIoKTsK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4 LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9kZWJ1Zy9zdGFja190cmFjZV9w b3NpeC5jYworQEAgLTI3LDcgKzI3LDcgQEAKKyAjaWYgIWRlZmluZWQoVVNFX1NZTUJPTElaRSkK KyAjaW5jbHVkZSA8Y3h4YWJpLmg+CisgI2VuZGlmCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18p ICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChf QUlYKQorICNpbmNsdWRlIDxleGVjaW5mby5oPgorICNlbmRpZgorIAorQEAgLTg5LDcgKzg5LDcg QEAgdm9pZCBEZW1hbmdsZVN5bWJvbHMoc3RkOjpzdHJpbmcqIHRleHQpCisgICAvLyBOb3RlOiBj b2RlIGluIHRoaXMgZnVuY3Rpb24gaXMgTk9UIGFzeW5jLXNpZ25hbCBzYWZlIChzdGQ6OnN0cmlu ZyB1c2VzCisgICAvLyBtYWxsb2MgaW50ZXJuYWxseSkuCisgCistI2lmICFkZWZpbmVkKF9fVUNM SUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVm aW5lZChfQUlYKQorICAgc3RkOjpzdHJpbmc6OnNpemVfdHlwZSBzZWFyY2hfZnJvbSA9IDA7Cisg ICB3aGlsZSAoc2VhcmNoX2Zyb20gPCB0ZXh0LT5zaXplKCkpIHsKKyAgICAgLy8gTG9vayBmb3Ig dGhlIHN0YXJ0IG9mIGEgbWFuZ2xlZCBzeW1ib2wsIGZyb20gc2VhcmNoX2Zyb20uCitAQCAtMTI0 LDcgKzEyNCw3IEBAIHZvaWQgRGVtYW5nbGVTeW1ib2xzKHN0ZDo6c3RyaW5nKiB0ZXh0KQorICAg ICAgIHNlYXJjaF9mcm9tID0gbWFuZ2xlZF9zdGFydCArIDI7CisgICAgIH0KKyAgIH0KKy0jZW5k aWYgIC8vICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2VuZGlmICAv LyAhZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgfQorICNlbmRpZiAgLy8g IWRlZmluZWQoVVNFX1NZTUJPTElaRSkKKyAKK0BAIC0xMzYsNyArMTM2LDcgQEAgY2xhc3MgQmFj a3RyYWNlT3V0cHV0SGFuZGxlciB7CisgICB2aXJ0dWFsIH5CYWNrdHJhY2VPdXRwdXRIYW5kbGVy KCkgPSBkZWZhdWx0OworIH07CisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZp bmVkKF9BSVgpCisrI2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorIHZv aWQgT3V0cHV0UG9pbnRlcih2b2lkKiBwb2ludGVyLCBCYWNrdHJhY2VPdXRwdXRIYW5kbGVyKiBo YW5kbGVyKSB7CisgICAvLyBUaGlzIHNob3VsZCBiZSBtb3JlIHRoYW4gZW5vdWdoIHRvIHN0b3Jl IGEgNjQtYml0IG51bWJlciBpbiBoZXg6CisgICAvLyAxNiBoZXggZGlnaXRzICsgMSBmb3IgbnVs bC10ZXJtaW5hdG9yLgorQEAgLTIxOSw3ICsyMTksNyBAQCB2b2lkIFByb2Nlc3NCYWNrdHJhY2Uo dm9pZCogY29uc3QqIHRyYWNlCisgICB9CisgI2VuZGlmICAvLyBkZWZpbmVkKFVTRV9TWU1CT0xJ WkUpCisgfQorLSNlbmRpZiAgLy8gIWRlZmluZWQoX19VQ0xJQkNfXykgJiYgIWRlZmluZWQoX0FJ WCkKKysjZW5kaWYgIC8vICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX0FJWCkKKyAK KyB2b2lkIFByaW50VG9TdGRlcnIoY29uc3QgY2hhciogb3V0cHV0KSB7CisgICAvLyBOT1RFOiBU aGlzIGNvZGUgTVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nl c3MKK0BAIC04MzksNyArODM5LDcgQEAgc2l6ZV90IENvbGxlY3RTdGFja1RyYWNlKHZvaWQqKiB0 cmFjZSwgcworICAgLy8gSWYgd2UgZG8gbm90IGhhdmUgdW53aW5kIHRhYmxlcywgdGhlbiB0cnkg dHJhY2luZyB1c2luZyBmcmFtZSBwb2ludGVycy4KKyAgIHJldHVybiBiYXNlOjpkZWJ1Zzo6VHJh Y2VTdGFja0ZyYW1lUG9pbnRlcnMoY29uc3RfY2FzdDxjb25zdCB2b2lkKio+KHRyYWNlKSwKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnQsIDApOwor LSNlbGlmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisrI2VsaWYgZGVm aW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisgICAvLyBUaG91Z2ggdGhlIGJhY2t0 cmFjZSBBUEkgbWFuIHBhZ2UgZG9lcyBub3QgbGlzdCBhbnkgcG9zc2libGUgbmVnYXRpdmUKKyAg IC8vIHJldHVybiB2YWx1ZXMsIHdlIHRha2Ugbm8gY2hhbmNlLgorICAgcmV0dXJuIGJhc2U6OnNh dHVyYXRlZF9jYXN0PHNpemVfdD4oYmFja3RyYWNlKHRyYWNlLCBjb3VudCkpOworQEAgLTg1Miwx MyArODUyLDEzIEBAIHZvaWQgU3RhY2tUcmFjZTo6UHJpbnRXaXRoUHJlZml4KGNvbnN0IGMKKyAv LyBOT1RFOiBUaGlzIGNvZGUgTVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5 IGluLXByb2Nlc3MKKyAvLyBzdGFjayBkdW1waW5nIHNpZ25hbCBoYW5kbGVyKS4gTk8gbWFsbG9j IG9yIHN0ZGlvIGlzIGFsbG93ZWQgaGVyZS4KKyAKKy0jaWYgIWRlZmluZWQoX19VQ0xJQkNfXykg JiYgIWRlZmluZWQoX0FJWCkKKysjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9B SVgpCisgICBQcmludEJhY2t0cmFjZU91dHB1dEhhbmRsZXIgaGFuZGxlcjsKKyAgIFByb2Nlc3NC YWNrdHJhY2UodHJhY2VfLCBjb3VudF8sIHByZWZpeF9zdHJpbmcsICZoYW5kbGVyKTsKKyAjZW5k aWYKKyB9CisgCistI2lmICFkZWZpbmVkKF9fVUNMSUJDX18pICYmICFkZWZpbmVkKF9BSVgpCisr I2lmIGRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfQUlYKQorIHZvaWQgU3RhY2tUcmFj ZTo6T3V0cHV0VG9TdHJlYW1XaXRoUHJlZml4KHN0ZDo6b3N0cmVhbSogb3MsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciogcHJlZml4X3N0cmlu ZykgY29uc3QgeworICAgU3RyZWFtQmFja3RyYWNlT3V0cHV0SGFuZGxlciBoYW5kbGVyKG9zKTsK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2xvZ2dpbmcuY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9iYXNlL2xvZ2dpbmcuY2MKK0BAIC01ODIsNyArNTgyLDcgQEAgTG9n TWVzc2FnZTo6TG9nTWVzc2FnZShjb25zdCBjaGFyKiBmaWxlLAorIAorIExvZ01lc3NhZ2U6On5M b2dNZXNzYWdlKCkgeworICAgc2l6ZV90IHN0YWNrX3N0YXJ0ID0gc3RyZWFtXy50ZWxscCgpOwor LSNpZiAhZGVmaW5lZChPRkZJQ0lBTF9CVUlMRCkgJiYgIWRlZmluZWQoT1NfTkFDTCkgJiYgIWRl ZmluZWQoX19VQ0xJQkNfXykgJiYgXAorKyNpZiAhZGVmaW5lZChPRkZJQ0lBTF9CVUlMRCkgJiYg IWRlZmluZWQoT1NfTkFDTCkgJiYgZGVmaW5lZChfX0dMSUJDX18pICYmIFwKKyAgICAgIWRlZmlu ZWQoT1NfQUlYKQorICAgaWYgKHNldmVyaXR5XyA9PSBMT0dHSU5HX0ZBVEFMICYmICFiYXNlOjpk ZWJ1Zzo6QmVpbmdEZWJ1Z2dlZCgpKSB7CisgICAgIC8vIEluY2x1ZGUgYSBzdGFjayB0cmFjZSBv biBhIGZhdGFsLCB1bmxlc3MgYSBkZWJ1Z2dlciBpcyBhdHRhY2hlZC4KKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9leHRlcm5hbC1yZWZlcmVuY2UtdGFibGUuY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvY29kZWdlbi9leHRlcm5hbC1yZWZl cmVuY2UtdGFibGUuY2MKK0BAIC0xMiw3ICsxMiw5IEBACisgCisgI2lmIGRlZmluZWQoREVCVUcp ICYmIGRlZmluZWQoVjhfT1NfTElOVVgpICYmICFkZWZpbmVkKFY4X09TX0FORFJPSUQpCisgI2Rl ZmluZSBTWU1CT0xJWkVfRlVOQ1RJT04KKysjaWYgZGVmaW5lZChfX0dMSUJDX18pCisgI2luY2x1 ZGUgPGV4ZWNpbmZvLmg+CisrI2VuZGlmCisgCisgI2luY2x1ZGUgPHZlY3Rvcj4KKyAKK0BAIC0x MDMsNyArMTA1LDcgQEAgdm9pZCBFeHRlcm5hbFJlZmVyZW5jZVRhYmxlOjpJbml0KElzb2xhdAor IH0KKyAKKyBjb25zdCBjaGFyKiBFeHRlcm5hbFJlZmVyZW5jZVRhYmxlOjpSZXNvbHZlU3ltYm9s KHZvaWQqIGFkZHJlc3MpIHsKKy0jaWZkZWYgU1lNQk9MSVpFX0ZVTkNUSU9OCisrI2lmIGRlZmlu ZWQoU1lNQk9MSVpFX0ZVTkNUSU9OKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIGNoYXIqKiBu YW1lcyA9IGJhY2t0cmFjZV9zeW1ib2xzKCZhZGRyZXNzLCAxKTsKKyAgIGNvbnN0IGNoYXIqIG5h bWUgPSBuYW1lc1swXTsKKyAgIC8vIFRoZSBhcnJheSBvZiBuYW1lcyBpcyBtYWxsb2MnZWQuIEhv d2V2ZXIsIGVhY2ggbmFtZSBzdHJpbmcgaXMgc3RhdGljCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjA5LWNocm9taXVtLW11c2wtdGhyZWFkLXN0YWNrc2l6ZS5w YXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMDktY2hyb21pdW0tbXVzbC10 aHJlYWQtc3RhY2tzaXplLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uNGI3NjBhNDI4YjI1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDIwOS1jaHJvbWl1bS1tdXNsLXRocmVhZC1zdGFja3NpemUucGF0Y2gKQEAg LTAsMCArMSwyMiBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3BwYXBpL3V0aWxpdHkv dGhyZWFkaW5nL3NpbXBsZV90aHJlYWQuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9w cGFwaS91dGlsaXR5L3RocmVhZGluZy9zaW1wbGVfdGhyZWFkLmNjCitAQCAtMTMsNyArMTMsNyBA QCBuYW1lc3BhY2UgcHAgeworIG5hbWVzcGFjZSB7CisgCisgLy8gVXNlIDJNQiBkZWZhdWx0IHN0 YWNrIHNpemUgZm9yIE5hdGl2ZSBDbGllbnQsIG90aGVyd2lzZSB1c2Ugc3lzdGVtIGRlZmF1bHQu CistI2lmIGRlZmluZWQoX19uYXRpdmVfY2xpZW50X18pCisrI2lmIGRlZmluZWQoX19uYXRpdmVf Y2xpZW50X18pIHx8ICFkZWZpbmVkKF9fR0xJQkNfXykKKyBjb25zdCBzaXplX3Qga0RlZmF1bHRT dGFja1NpemUgPSAyICogMTAyNCAqIDEwMjQ7CisgI2Vsc2UKKyBjb25zdCBzaXplX3Qga0RlZmF1 bHRTdGFja1NpemUgPSAwOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3NyYy9iYXNl L3BsYXRmb3JtL3BsYXRmb3JtLXBvc2l4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v djgvc3JjL2Jhc2UvcGxhdGZvcm0vcGxhdGZvcm0tcG9zaXguY2MKK0BAIC04ODMsNyArODgzLDcg QEAgYm9vbCBUaHJlYWQ6OlN0YXJ0KCkgeworICNpZiBWOF9PU19NQUNPU1gKKyAgICAgLy8gRGVm YXVsdCBvbiBNYWMgT1MgWCBpcyA1MTJrQiAtLSBidW1wIHVwIHRvIDFNQgorICAgICBzdGFja19z aXplID0gMSAqIDEwMjQgKiAxMDI0OworLSNlbGlmIFY4X09TX0FJWAorKyNlbGlmIFY4X09TX0FJ WCB8fCAhZGVmaW5lZChfX0dMSUJDX18pCisgICAgIC8vIERlZmF1bHQgb24gQUlYIGlzIDk2a0Ig LS0gYnVtcCB1cCB0byAyTUIKKyAgICAgc3RhY2tfc2l6ZSA9IDIgKiAxMDI0ICogMTAyNDsKKyAj ZW5kaWYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTAtY2hy b21pdW0tbXVzbC1tc2d2ZWMtcHVzaF9iYWNrLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDIxMC1jaHJvbWl1bS1tdXNsLW1zZ3ZlYy1wdXNoX2JhY2sucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45MDVkYWEyMjM3MDAKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEwLWNocm9taXVtLW11 c2wtbXNndmVjLXB1c2hfYmFjay5wYXRjaApAQCAtMCwwICsxLDE0IEBACistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjCitAQCAtMTE2 Miw3ICsxMTYyLDExIEBAIFNlbmRSZXN1bHQgVURQU29ja2V0UG9zaXhTZW5kZXI6OkludGVybmEK KyAgICAgbXNnX2lvdi0+cHVzaF9iYWNrKHtjb25zdF9jYXN0PGNoYXIqPihidWZmZXItPmRhdGEo KSksIGJ1ZmZlci0+bGVuZ3RoKCl9KTsKKyAgIG1zZ3ZlYy0+cmVzZXJ2ZShidWZmZXJzLnNpemUo KSk7CisgICBmb3IgKHNpemVfdCBqID0gMDsgaiA8IGJ1ZmZlcnMuc2l6ZSgpOyBqKyspCisrI2lm IGRlZmluZWQoX19HTElCQ19fKQorICAgICBtc2d2ZWMtPnB1c2hfYmFjayh7e251bGxwdHIsIDAs ICZtc2dfaW92W2pdLCAxLCBudWxscHRyLCAwLCAwfSwgMH0pOworKyNlbHNlCisrICAgIG1zZ3Zl Yy0+cHVzaF9iYWNrKHt7bnVsbHB0ciwgMCwgJm1zZ19pb3Zbal0sIDEsIDAsIDAsIDB9LCAwfSk7 CisrI2VuZGlmCisgICBpbnQgcmVzdWx0ID0gSEFORExFX0VJTlRSKFNlbmRtbXNnKGZkLCAmbXNn dmVjWzBdLCBidWZmZXJzLnNpemUoKSwgMCkpOworICAgU2VuZFJlc3VsdCBzZW5kX3Jlc3VsdCgw LCAwLCBzdGQ6Om1vdmUoYnVmZmVycykpOworICAgaWYgKHJlc3VsdCA8IDApIHsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTEtY2hyb21pdW0tbXVzbC1jYW5v bmljYWxpemUtZmlsZS1uYW1lLW11c2wucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMjExLWNocm9taXVtLW11c2wtY2Fub25pY2FsaXplLWZpbGUtbmFtZS1tdXNsLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDQzZTZiZDQ4OGJjCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxMS1jaHJv bWl1bS1tdXNsLWNhbm9uaWNhbGl6ZS1maWxlLW5hbWUtbXVzbC5wYXRjaApAQCAtMCwwICsxLDEx IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbmFzbS9uYXNtbGli L3JlYWxwYXRoLmMKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9uYXNt L25hc21saWIvcmVhbHBhdGguYworQEAgLTU1LDcgKzU1LDcgQEAKKyAgKi8KKyBjaGFyICpuYXNt X3JlYWxwYXRoKGNvbnN0IGNoYXIgKnJlbF9wYXRoKQorIHsKKy0gICAgY2hhciAqcnAgPSBjYW5v bmljYWxpemVfZmlsZV9uYW1lKHJlbF9wYXRoKTsKKysgICAgY2hhciAqcnAgPSByZWFscGF0aChy ZWxfcGF0aCwgTlVMTCk7CisgICAgIHJldHVybiBycCA/IHJwIDogbmFzbV9zdHJkdXAocmVsX3Bh dGgpOworIH0KKyAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAy MTItY2hyb21pdW0tbXVzbC1uby1nZXRjb250ZXh0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDIxMi1jaHJvbWl1bS1tdXNsLW5vLWdldGNvbnRleHQucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NzU1ZjFiNDVhN2QKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjEyLWNocm9taXVtLW11 c2wtbm8tZ2V0Y29udGV4dC5wYXRjaApAQCAtMCwwICsxLDI5IEBACistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVy L2V4Y2VwdGlvbl9oYW5kbGVyLmNjCitAQCAtNDg5LDggKzQ4OSwxMCBAQCBib29sIEV4Y2VwdGlv bkhhbmRsZXI6OlNpbXVsYXRlU2lnbmFsRGVsCisgICAvLyBFeGNlcHRpb25IYW5kbGVyOjpIYW5k bGVTaWduYWwoKS4KKyAgIHNpZ2luZm8uc2lfY29kZSA9IFNJX1VTRVI7CisgICBzaWdpbmZvLnNp X3BpZCA9IGdldHBpZCgpOworLSAgdWNvbnRleHRfdCBjb250ZXh0OworKyAgdWNvbnRleHRfdCBj b250ZXh0ID0geyAwIH07CisrI2lmIGRlZmluZWQoX19HTElCQ19fKQorICAgZ2V0Y29udGV4dCgm Y29udGV4dCk7CisrI2VuZGlmCisgICByZXR1cm4gSGFuZGxlU2lnbmFsKHNpZywgJnNpZ2luZm8s ICZjb250ZXh0KTsKKyB9CisgCitAQCAtNjc1LDkgKzY3NywxNCBAQCBib29sIEV4Y2VwdGlvbkhh bmRsZXI6OldyaXRlTWluaWR1bXAoKSB7CisgICBzeXNfcHJjdGwoUFJfU0VUX0RVTVBBQkxFLCAx LCAwLCAwLCAwKTsKKyAKKyAgIENyYXNoQ29udGV4dCBjb250ZXh0OworKworKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykKKyAgIGludCBnZXRjb250ZXh0X3Jlc3VsdCA9IGdldGNvbnRleHQoJmNvbnRl eHQuY29udGV4dCk7CisgICBpZiAoZ2V0Y29udGV4dF9yZXN1bHQpCisgICAgIHJldHVybiBmYWxz ZTsKKysjZWxzZQorKyAgcmV0dXJuIGZhbHNlOworKyNlbmRpZgorIAorICNpZiBkZWZpbmVkKF9f aTM4Nl9fKQorICAgLy8gSW4gQ1BVRmlsbEZyb21VQ29udGV4dCBpbiBtaW5pZHVtcHdyaXRlci5j YyB0aGUgc3RhY2sgcG9pbnRlciBpcyByZXRyaWV2ZWQKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTMtY2hyb21pdW0tbXVzbC1jcmFzaHBhZC5wYXRjaCBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTMtY2hyb21pdW0tbXVzbC1jcmFzaHBhZC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjcxYmJhZDJhZjE3 ZQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTMt Y2hyb21pdW0tbXVzbC1jcmFzaHBhZC5wYXRjaApAQCAtMCwwICsxLDI0IEBACistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xp bnV4L3N5cy9wdHJhY2UuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvcHRyYWNlLmgKK0BAIC0xNyw3ICsx Nyw5IEBACisgCisgI2luY2x1ZGVfbmV4dCA8c3lzL3B0cmFjZS5oPgorIAorKyNpZmRlZiBfX0dM SUJDX18KKyAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CisrI2VuZGlmCisgCisgLy8gaHR0cHM6Ly9z b3VyY2V3YXJlLm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MjI0MzMKKyAjaWYgIWRlZmlu ZWQoUFRSQUNFX0dFVF9USFJFQURfQVJFQSkgJiYgIWRlZmluZWQoUFRfR0VUX1RIUkVBRF9BUkVB KSAmJiBcCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCitA QCAtMjYsNiArMjYsOSBAQAorIAorICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpCisg I2luY2x1ZGUgPGFzbS9sZHQuaD4KKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyNpbmNsdWRl IDxhc20vcHRyYWNlLWFiaS5oPgorKyNlbmRpZgorICNlbmRpZgorIAorIG5hbWVzcGFjZSBjcmFz aHBhZCB7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE0LWNo cm9taXVtLW11c2wtZml4ZXMucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w MjE0LWNocm9taXVtLW11c2wtZml4ZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi41NWIyNjdlZDE3MTQKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE0LWNocm9taXVtLW11c2wtZml4ZXMucGF0Y2gKQEAgLTAs MCArMSwxMDggQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N1 aWQvcHJvY2Vzc191dGlsLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xp bnV4L3N1aWQvcHJvY2Vzc191dGlsLmgKK0BAIC0xMiw2ICsxMiwxNSBAQAorICNpbmNsdWRlIDxz dGRpbnQuaD4KKyAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisgCisrI2lmICFkZWZpbmVkKF9fR0xJ QkNfXykgJiYgIWRlZmluZWQoVEVNUF9GQUlMVVJFX1JFVFJZKQorKyMgZGVmaW5lIFRFTVBfRkFJ TFVSRV9SRVRSWShleHByZXNzaW9uKSBcCisrCShfX2V4dGVuc2lvbl9fCQkJXAorKwkgKHsgbG9u ZyBpbnQgX19yZXN1bHQ7CQlcCisrCSAgZG8gX19yZXN1bHQgPSAobG9uZyBpbnQpIChleHByZXNz aW9uKTsgXAorKwkgIHdoaWxlIChfX3Jlc3VsdCA9PSAtMUwgJiYgZXJybm8gPT0gRUlOVFIpOyBc CisrCSAgX19yZXN1bHQ7IH0pKQorKyNlbmRpZgorKworIC8vIFRoaXMgYWRqdXN0cyAvcHJvYy9w cm9jZXNzL29vbV9zY29yZV9hZGogc28gdGhlIExpbnV4IE9PTSBraWxsZXIKKyAvLyB3aWxsIHBy ZWZlciBjZXJ0YWluIHByb2Nlc3MgdHlwZXMgb3ZlciBvdGhlcnMuIFRoZSByYW5nZSBmb3IgdGhl CisgLy8gYWRqdXN0bWVudCBpcyBbLTEwMDAsIDEwMDBdLCB3aXRoIFswLCAxMDAwXSBiZWluZyB1 c2VyIGFjY2Vzc2libGUuCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2VydmljZXMvZGV2 aWNlL3NlcmlhbC9zZXJpYWxfaW9faGFuZGxlcl9wb3NpeC5jYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NlcnZpY2VzL2RldmljZS9zZXJpYWwvc2VyaWFsX2lvX2hhbmRsZXJfcG9zaXgu Y2MKK0BAIC02LDYgKzYsNyBAQAorIAorICNpbmNsdWRlIDxzeXMvaW9jdGwuaD4KKyAjaW5jbHVk ZSA8dGVybWlvcy5oPgorKyNpbmNsdWRlIDxhc20tZ2VuZXJpYy9pb2N0bHMuaD4KKyAKKyAjaW5j bHVkZSA8YWxnb3JpdGhtPgorICNpbmNsdWRlIDx1dGlsaXR5PgorLS0tIGEvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv ZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKK0BAIC0zOCw2ICszOCwxMCBAQAor ICNpbmNsdWRlICJjb21tb24vbWVtb3J5X2FsbG9jYXRvci5oIgorICNpbmNsdWRlICJnb29nbGVf YnJlYWtwYWQvY29tbW9uL21pbmlkdW1wX2Zvcm1hdC5oIgorIAorKyNpZm5kZWYgX19HTElCQ19f CisrI2RlZmluZSBfbGliY19mcHN0YXRlIF9mcHN0YXRlCisrI2VuZGlmCisrCisgbmFtZXNwYWNl IGdvb2dsZV9icmVha3BhZCB7CisgCisgLy8gV3JhcHMgcGxhdGZvcm0tZGVwZW5kZW50IGltcGxl bWVudGF0aW9ucyBvZiBhY2Nlc3NvcnMgdG8gdWNvbnRleHRfdCBzdHJ1Y3RzLgorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2ZmbXBlZy9saWJhdnV0aWwvY3B1LmMKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9mZm1wZWcvbGliYXZ1dGlsL2Nw dS5jCitAQCAtNDEsOCArNDEsMTAgQEAKKyAjaW5jbHVkZSA8c3lzL3BhcmFtLmg+CisgI2VuZGlm CisgI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorKyNpZmRlZiBfX0dMSUJDX18KKyAjaW5jbHVkZSA8 c3lzL3N5c2N0bC5oPgorICNlbmRpZgorKyNlbmRpZgorICNpZiBIQVZFX1VOSVNURF9ICisgI2lu Y2x1ZGUgPHVuaXN0ZC5oPgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L3BlcmZldHRvL2luY2x1ZGUvcGVyZmV0dG8vZXh0L2Jhc2UvdGhyZWFkX3V0aWxz LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZXJmZXR0by9pbmNs dWRlL3BlcmZldHRvL2V4dC9iYXNlL3RocmVhZF91dGlscy5oCitAQCAtMjksOSArMjksNyBAQAor ICNpbmNsdWRlIDxhbGdvcml0aG0+CisgI2VuZGlmCisgCistI2lmIFBFUkZFVFRPX0JVSUxERkxB RyhQRVJGRVRUT19PU19BTkRST0lEKQorICNpbmNsdWRlIDxzeXMvcHJjdGwuaD4KKy0jZW5kaWYK KyAKKyAvLyBJbnRlcm5hbCBpbXBsZW1lbnRhdGlvbiB1dGlscyB0aGF0IGFyZW4ndCBhcyB3aWRl bHkgdXNlZnVsL3N1cHBvcnRlZCBhcworIC8vIGJhc2UvdGhyZWFkX3V0aWxzLmguCitAQCAtNTgs NyArNTYsNyBAQCBpbmxpbmUgYm9vbCBNYXliZVNldFRocmVhZE5hbWUoY29uc3Qgc3RkCisgCisg aW5saW5lIGJvb2wgR2V0VGhyZWFkTmFtZShzdGQ6OnN0cmluZyYgb3V0X3Jlc3VsdCkgeworICAg Y2hhciBidWZbMTZdID0ge307CistI2lmIFBFUkZFVFRPX0JVSUxERkxBRyhQRVJGRVRUT19PU19B TkRST0lEKQorKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisgICBpZiAocHJjdGwoUFJfR0VUX05B TUUsIGJ1ZikgIT0gMCkKKyAgICAgcmV0dXJuIGZhbHNlOworICNlbHNlCistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxf c3VwcG9ydC5oCitAQCAtMTMwMCw2ICsxMzAwLDE4IEBAIHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsK KyAjaWZuZGVmIF9fTlJfZmFsbG9jYXRlCisgI2RlZmluZSBfX05SX2ZhbGxvY2F0ZSAgICAgICAg ICAyODUKKyAjZW5kaWYKKysKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKQorKyNpZmRlZiBfX05S X3ByZWFkCisrI3VuZGVmIF9fTlJfcHJlYWQKKysjZW5kaWYKKysjaWZkZWYgX19OUl9wd3JpdGUK KysjdW5kZWYgX19OUl9wd3JpdGUKKysjZW5kaWYKKysjZGVmaW5lIF9fTlJfcHJlYWQgX19OUl9w cmVhZDY0CisrI2RlZmluZSBfX05SX3B3cml0ZSBfX05SX3B3cml0ZTY0CisrI2VuZGlmIC8qICFk ZWZpbmVkKF9fR0xJQkNfXykgKi8KKysKKyAjaWZuZGVmIF9fTlJfZ2V0cmFuZG9tCisgI2RlZmlu ZSBfX05SX2dldHJhbmRvbSAgICAgICAgICAzMTgKKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS9uZXQvZG5zL2Ruc19jb25maWdfc2VydmljZV9wb3NpeC5jYworKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvZG5zX2NvbmZpZ19zZXJ2aWNlX3Bvc2l4LmNjCitA QCAtOTMsNyArOTMsOCBAQCBhYnNsOjpvcHRpb25hbDxEbnNDb25maWc+IFJlYWREbnNDb25maWco CisgCisgICBhYnNsOjpvcHRpb25hbDxEbnNDb25maWc+IGRuc19jb25maWc7CisgLy8gVE9ETyhm dWNoc2lhKTogVXNlIHJlc19uaW5pdCgpIHdoZW4gaXQncyBpbXBsZW1lbnRlZCBvbiBGdWNoc2lh LgorLSNpZiBkZWZpbmVkKE9TX09QRU5CU0QpIHx8IGRlZmluZWQoT1NfRlVDSFNJQSkKKysjaWYg ZGVmaW5lZChPU19PUEVOQlNEKSB8fCBkZWZpbmVkKE9TX0ZVQ0hTSUEpIHx8IFwKKysgIChkZWZp bmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5lZChfX0dMSUJDX18pKQorICAgLy8gTm90ZTogcmVzX25p bml0IGluIGdsaWJjIGFsd2F5cyByZXR1cm5zIDAgYW5kIHNldHMgUkVTX0lOSVQuCisgICAvLyBy ZXNfaW5pdCBiZWhhdmVzIHRoZSBzYW1lIHdheS4KKyAgIG1lbXNldCgmX3JlcywgMCwgc2l6ZW9m KF9yZXMpKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTUt Y2hyb21pdW0tbXVzbC1jZGVmcy5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzAyMTUtY2hyb21pdW0tbXVzbC1jZGVmcy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjlkMWRhZWMyOTExOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv cXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTUtY2hyb21pdW0tbXVzbC1jZGVmcy5wYXRjaApAQCAt MCwwICsxLDI5IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGli c3luYy9zcmMvaW5jbHVkZS9zeW5jL3N5bmMuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2xpYnN5bmMvc3JjL2luY2x1ZGUvc3luYy9zeW5jLmgKK0BAIC0xOSwxMiAr MTksMTMgQEAKKyAjaWZuZGVmIF9fU1lTX0NPUkVfU1lOQ19ICisgI2RlZmluZSBfX1NZU19DT1JF X1NZTkNfSAorIAorLSNpbmNsdWRlIDxzeXMvY2RlZnMuaD4KKyAjaW5jbHVkZSA8c3RkaW50Lmg+ CisgCisgI2luY2x1ZGUgPGxpbnV4L3R5cGVzLmg+CisgCistX19CRUdJTl9ERUNMUworKyNpZmRl ZiBfX2NwbHVzcGx1cworK2V4dGVybiAiQyIgeworKyNlbmRpZgorIAorIHN0cnVjdCBzeW5jX2xl Z2FjeV9tZXJnZV9kYXRhIHsKKyAgaW50MzJfdCBmZDI7CitAQCAtMTU4LDYgKzE1OSw5IEBAIHN0 cnVjdCBzeW5jX3B0X2luZm8gKnN5bmNfcHRfaW5mbyhzdHJ1Y3QKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IHN5bmNfcHRfaW5mbyAqaXRyKTsKKyB2b2lkIHN5bmNf ZmVuY2VfaW5mb19mcmVlKHN0cnVjdCBzeW5jX2ZlbmNlX2luZm9fZGF0YSAqaW5mbyk7CisgCist X19FTkRfREVDTFMKKysjaWZkZWYgX19jcGx1c3BsdXMKKyt9CisrI2VuZGlmCisrCisgCisgI2Vu ZGlmIC8qIF9fU1lTX0NPUkVfU1lOQ19IICovCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJl bmdpbmUvcGF0Y2hlcy8wMjE2LWNocm9taXVtLW11c2wtc3RhdC5wYXRjaCBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzAyMTYtY2hyb21pdW0tbXVzbC1zdGF0LnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDUwOWE2OTU3Y2Q3Ci0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDIxNi1jaHJvbWl1bS1tdXNs LXN0YXQucGF0Y2gKQEAgLTAsMCArMSwxMiBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L2Jhc2UvZmlsZXMvZmlsZS5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9maWxl cy9maWxlLmgKK0BAIC0xOSw3ICsxOSw4IEBACisgI2luY2x1ZGUgImJ1aWxkL2J1aWxkX2NvbmZp Zy5oIgorIAorICNpZiBkZWZpbmVkKE9TX0JTRCkgfHwgZGVmaW5lZChPU19BUFBMRSkgfHwgZGVm aW5lZChPU19OQUNMKSB8fCBcCistICAgIGRlZmluZWQoT1NfRlVDSFNJQSkgfHwgKGRlZmluZWQo T1NfQU5EUk9JRCkgJiYgX19BTkRST0lEX0FQSV9fIDwgMjEpCisrICAgIGRlZmluZWQoT1NfRlVD SFNJQSkgfHwgKGRlZmluZWQoT1NfQU5EUk9JRCkgJiYgX19BTkRST0lEX0FQSV9fIDwgMjEpIHx8 IFwKKysgICAgKGRlZmluZWQoT1NfTElOVVgpICYmICFkZWZpbmVkKF9fR0xJQkNfXykpCisgc3Ry dWN0IHN0YXQ7CisgbmFtZXNwYWNlIGJhc2UgeworIHR5cGVkZWYgc3RydWN0IHN0YXQgc3RhdF93 cmFwcGVyX3Q7CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE3 LWNocm9taXVtLW11c2wtcmVzb2x2ZXIucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0 Y2hlcy8wMjE3LWNocm9taXVtLW11c2wtcmVzb2x2ZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5jM2Q3YWZhZDliMTkKLS0tIC9kZXYvbnVsbAorKysgYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wMjE3LWNocm9taXVtLW11c2wtcmVzb2x2ZXIu cGF0Y2gKQEAgLTAsMCArMSw3NyBAQAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9k bnMvZG5zX2NvbmZpZ19zZXJ2aWNlX2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2VfbGludXguY2MKK0BAIC00MzIsMTEgKzQzMiwx MyBAQCBjbGFzcyBEbnNDb25maWdTZXJ2aWNlTGludXg6OkNvbmZpZ1JlYWRlCisgICAgIGJhc2U6 OlNjb3BlZEJsb2NraW5nQ2FsbCBzY29wZWRfYmxvY2tpbmdfY2FsbCgKKyAgICAgICAgIEZST01f SEVSRSwgYmFzZTo6QmxvY2tpbmdUeXBlOjpNQVlfQkxPQ0spOworIAorKyNpZiBkZWZpbmVkKF9f R0xJQkNfXykKKyAgICAgc3RkOjp1bmlxdWVfcHRyPHN0cnVjdCBfX3Jlc19zdGF0ZT4gcmVzID0g cmVzb2x2X3JlYWRlcl8tPkdldFJlc1N0YXRlKCk7CisgICAgIGlmIChyZXMpIHsKKyAgICAgICBk bnNfY29uZmlnXyA9IENvbnZlcnRSZXNTdGF0ZVRvRG5zQ29uZmlnKCpyZXMuZ2V0KCkpOworICAg ICAgIHJlc29sdl9yZWFkZXJfLT5DbG9zZVJlc1N0YXRlKHJlcy5nZXQoKSk7CisgICAgIH0KKysj ZW5kaWYKKyAKKyAgICAgVU1BX0hJU1RPR1JBTV9CT09MRUFOKCJOZXQuRE5TLkRuc0NvbmZpZy5S ZXNvbHYuUmVhZCIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBkbnNfY29uZmlnXy5oYXNf dmFsdWUoKSk7CitAQCAtNDg2LDYgKzQ4OCw3IEBAIGNsYXNzIERuc0NvbmZpZ1NlcnZpY2VMaW51 eDo6Q29uZmlnUmVhZGUKKyAKKyBzdGQ6OnVuaXF1ZV9wdHI8c3RydWN0IF9fcmVzX3N0YXRlPgor IERuc0NvbmZpZ1NlcnZpY2VMaW51eDo6UmVzb2x2UmVhZGVyOjpHZXRSZXNTdGF0ZSgpIHsKKysj aWYgZGVmaW5lZChfX0dMSUJDX18pCisgICBhdXRvIHJlcyA9IHN0ZDo6bWFrZV91bmlxdWU8c3Ry dWN0IF9fcmVzX3N0YXRlPigpOworICAgbWVtc2V0KHJlcy5nZXQoKSwgMCwgc2l6ZW9mKHN0cnVj dCBfX3Jlc19zdGF0ZSkpOworIAorQEAgLTQ5NSwxMSArNDk4LDE2IEBAIERuc0NvbmZpZ1NlcnZp Y2VMaW51eDo6UmVzb2x2UmVhZGVyOjpHZXQKKyAgIH0KKyAKKyAgIHJldHVybiByZXM7CisrI2Vs c2UKKysgIHJldHVybiBudWxscHRyOworKyNlbmRpZgorIH0KKyAKKyB2b2lkIERuc0NvbmZpZ1Nl cnZpY2VMaW51eDo6UmVzb2x2UmVhZGVyOjpDbG9zZVJlc1N0YXRlKAorICAgICBzdHJ1Y3QgX19y ZXNfc3RhdGUqIHJlcykgeworKyNpZiBkZWZpbmVkKF9fR0xJQkNfXykKKyAgIHJlc19uY2xvc2Uo cmVzKTsKKysjZW5kaWYKKyB9CisgCisgRG5zQ29uZmlnU2VydmljZUxpbnV4OjpEbnNDb25maWdT ZXJ2aWNlTGludXgoKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL25ldC9kbnMvZG5zX3Jl bG9hZGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9kbnNfcmVsb2Fk ZXIuY2MKK0BAIC00LDggKzQsNyBAQAorIAorICNpbmNsdWRlICJuZXQvZG5zL2Ruc19yZWxvYWRl ci5oIgorIAorLSNpZiBkZWZpbmVkKE9TX1BPU0lYKSAmJiAhZGVmaW5lZChPU19BUFBMRSkgJiYg IWRlZmluZWQoT1NfT1BFTkJTRCkgJiYgXAorLSAgICAhZGVmaW5lZChPU19BTkRST0lEKSAmJiAh ZGVmaW5lZChPU19GVUNIU0lBKQorKyNpZmRlZiBfX0dMSUJDX18KKyAKKyAjaW5jbHVkZSA8cmVz b2x2Lmg+CisgCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9ob3N0X3Jlc29s dmVyX21hbmFnZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2hvc3Rf cmVzb2x2ZXJfbWFuYWdlci5jYworQEAgLTI3MjAsOCArMjcyMCw3IEBAIEhvc3RSZXNvbHZlck1h bmFnZXI6Okhvc3RSZXNvbHZlck1hbmFnZXIKKyAgIE5ldHdvcmtDaGFuZ2VOb3RpZmllcjo6QWRk Q29ubmVjdGlvblR5cGVPYnNlcnZlcih0aGlzKTsKKyAgIGlmIChzeXN0ZW1fZG5zX2NvbmZpZ19u b3RpZmllcl8pCisgICAgIHN5c3RlbV9kbnNfY29uZmlnX25vdGlmaWVyXy0+QWRkT2JzZXJ2ZXIo dGhpcyk7CistI2lmIGRlZmluZWQoT1NfUE9TSVgpICYmICFkZWZpbmVkKE9TX0FQUExFKSAmJiAh ZGVmaW5lZChPU19PUEVOQlNEKSAmJiBcCistICAgICFkZWZpbmVkKE9TX0FORFJPSUQpCisrI2lm ZGVmIF9fR0xJQkNfXworICAgRW5zdXJlRG5zUmVsb2FkZXJJbml0KCk7CisgI2VuZGlmCisgCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbmV0L2Rucy9ob3N0X3Jlc29sdmVyX3Byb2MuY2MK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9uZXQvZG5zL2hvc3RfcmVzb2x2ZXJfcHJvYy5j YworQEAgLTE3Niw4ICsxNzYsNyBAQCBpbnQgU3lzdGVtSG9zdFJlc29sdmVyQ2FsbChjb25zdCBz dGQ6OnN0CisgICBiYXNlOjpTY29wZWRCbG9ja2luZ0NhbGwgc2NvcGVkX2Jsb2NraW5nX2NhbGwo RlJPTV9IRVJFLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJhc2U6OkJsb2NraW5nVHlwZTo6V0lMTF9CTE9DSyk7CisgCistI2lmIGRlZmluZWQoT1Nf UE9TSVgpICYmICFkZWZpbmVkKE9TX0FQUExFKSAmJiAhZGVmaW5lZChPU19PUEVOQlNEKSAmJiBc CistICAgICFkZWZpbmVkKE9TX0FORFJPSUQpICYmICFkZWZpbmVkKE9TX0ZVQ0hTSUEpCisrI2lm ZGVmIF9fR0xJQkNfXworICAgRG5zUmVsb2FkZXJNYXliZVJlbG9hZCgpOworICNlbmRpZgorICAg YWJzbDo6b3B0aW9uYWw8QWRkcmVzc0luZm8+IGFpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYt d2ViZW5naW5lL3BhdGNoZXMvMDYwMC1jaHJvbWl1bS1zbmRpby5wYXRjaCBiL3NyY3BrZ3MvcXQ2 LXdlYmVuZ2luZS9wYXRjaGVzLzA2MDAtY2hyb21pdW0tc25kaW8ucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wMzAyODc0ZmZiYTQKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNjAwLWNocm9taXVtLXNuZGlvLnBh dGNoCkBAIC0wLDAgKzEsODc2IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEv QlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9CVUlMRC5nbgorQEAg LTcyLDYgKzcyLDkgQEAgY29uZmlnKCJtZWRpYV9jb25maWciKSB7CisgICAgICAgZGVmaW5lcyAr PSBbICJETE9QRU5fUFVMU0VBVURJTyIgXQorICAgICB9CisgICB9CisrICBpZiAodXNlX3NuZGlv KSB7CisrICAgIGRlZmluZXMgKz0gWyAiVVNFX1NORElPIiBdCisrICB9CisgICBpZiAodXNlX2Ny YXMpIHsKKyAgICAgZGVmaW5lcyArPSBbICJVU0VfQ1JBUyIgXQorICAgfQorLS0tIGEvc3JjLzNy ZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vbWVkaWEvYXVkaW8vQlVJTEQuZ24KK0BAIC0yNDAsNiArMjQwLDE3IEBAIHNvdXJj ZV9zZXQoImF1ZGlvIikgeworICAgICBzb3VyY2VzICs9IFsgImxpbnV4L2F1ZGlvX21hbmFnZXJf bGludXguY2MiIF0KKyAgIH0KKyAKKysgIGlmICh1c2Vfc25kaW8pIHsKKysgICAgbGlicyArPSBb ICJzbmRpbyIgXQorKyAgICBzb3VyY2VzICs9IFsKKysgICAgICAic25kaW8vYXVkaW9fbWFuYWdl cl9zbmRpby5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX2lucHV0LmNjIiwKKysgICAgICAic25k aW8vc25kaW9faW5wdXQuaCIsCisrICAgICAgInNuZGlvL3NuZGlvX291dHB1dC5jYyIsCisrICAg ICAgInNuZGlvL3NuZGlvX291dHB1dC5oIgorKyAgICBdCisrICB9CisrCisgICBpZiAodXNlX2Fs c2EpIHsKKyAgICAgbGlicyArPSBbICJhc291bmQiIF0KKyAgICAgc291cmNlcyArPSBbCistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vbGludXgvYXVkaW9fbWFuYWdlcl9s aW51eC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlhL2F1ZGlvL2xpbnV4L2F1 ZGlvX21hbmFnZXJfbGludXguY2MKK0BAIC0yNSw2ICsyNSwxMSBAQAorICNpbmNsdWRlICJtZWRp YS9hdWRpby9wdWxzZS9hdWRpb19tYW5hZ2VyX3B1bHNlLmgiCisgI2luY2x1ZGUgIm1lZGlhL2F1 ZGlvL3B1bHNlL3B1bHNlX3V0aWwuaCIKKyAjZW5kaWYKKysjaWYgZGVmaW5lZChVU0VfU05ESU8p CisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uaCIKKysj aW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCIKKysjaW5jbHVkZSAibWVk aWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmgiCisrI2VuZGlmCisgCisgbmFtZXNwYWNlIG1l ZGlhIHsKKyAKK0BAIC0zMiw3ICszNyw4IEBAIGVudW0gTGludXhBdWRpb0lPIHsKKyAgIGtQdWxz ZSwKKyAgIGtBbHNhLAorICAga0NyYXMsCistICBrQXVkaW9JT01heCA9IGtDcmFzICAvLyBNdXN0 IGFsd2F5cyBiZSBlcXVhbCB0byBsYXJnZXN0IGxvZ2dlZCBlbnRyeS4KKysgIGtTbmRpbywKKysg IGtBdWRpb0lPTWF4ID0ga1NuZGlvIC8vIE11c3QgYWx3YXlzIGJlIGVxdWFsIHRvIGxhcmdlc3Qg bG9nZ2VkIGVudHJ5LgorIH07CisgCisgc3RkOjp1bmlxdWVfcHRyPG1lZGlhOjpBdWRpb01hbmFn ZXI+IENyZWF0ZUF1ZGlvTWFuYWdlcigKK0BAIC00NSw2ICs1MSwxNiBAQCBzdGQ6OnVuaXF1ZV9w dHI8bWVkaWE6OkF1ZGlvTWFuYWdlcj4gQ3JlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0b3J5KTsKKyAgIH0KKyAKKysjaWYgZGVm aW5lZChVU0VfU05ESU8pCisrICBzdHJ1Y3Qgc2lvX2hkbCAqaGRsID0gc2lvX29wZW4oU0lPX0RF VkFOWSwgU0lPX1BMQVksIDApOworKyAgaWYgKGhkbCAhPSBOVUxMKSB7CisrICAgIHNpb19jbG9z ZShoZGwpOworKyAgICBVTUFfSElTVE9HUkFNX0VOVU1FUkFUSU9OKCJNZWRpYS5MaW51eEF1ZGlv SU8iLCBrU25kaW8sIGtBdWRpb0lPTWF4ICsgMSk7CisrICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p cXVlPEF1ZGlvTWFuYWdlclNuZGlvPihzdGQ6Om1vdmUoYXVkaW9fdGhyZWFkKSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0 b3J5KTsKKysgIH0KKysjZW5kaWYKKysKKyAjaWYgZGVmaW5lZChVU0VfQ1JBUykKKyAgIGlmIChi YXNlOjpDb21tYW5kTGluZTo6Rm9yQ3VycmVudFByb2Nlc3MoKS0+SGFzU3dpdGNoKHN3aXRjaGVz OjprVXNlQ3JhcykpIHsKKyAgICAgVU1BX0hJU1RPR1JBTV9FTlVNRVJBVElPTigiTWVkaWEuTGlu dXhBdWRpb0lPIiwga0NyYXMsIGtBdWRpb0lPTWF4ICsgMSk7CistLS0gL2Rldi9udWxsCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9z bmRpby5jYworQEAgLTAsMCArMSwxNDggQEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENo cm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291 cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQor Ky8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlv L3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uaCIKKysKKysjaW5jbHVkZSAiYmFzZS9tZXRyaWNz L2hpc3RvZ3JhbV9tYWNyb3MuaCIKKysjaW5jbHVkZSAiYmFzZS9tZW1vcnkvcHRyX3V0aWwuaCIK KysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fZGV2aWNlX2Rlc2NyaXB0aW9uLmgiCisrI2lu Y2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX291dHB1dF9kaXNwYXRjaGVyLmgiCisrI2luY2x1ZGUg Im1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlv L3NuZGlvL3NuZGlvX291dHB1dC5oIgorKyNpbmNsdWRlICJtZWRpYS9iYXNlL2xpbWl0cy5oIgor KyNpbmNsdWRlICJtZWRpYS9iYXNlL21lZGlhX3N3aXRjaGVzLmgiCisrCisrbmFtZXNwYWNlIG1l ZGlhIHsKKysKKysKKysvLyBNYXhpbXVtIG51bWJlciBvZiBvdXRwdXQgc3RyZWFtcyB0aGF0IGNh biBiZSBvcGVuIHNpbXVsdGFuZW91c2x5LgorK3N0YXRpYyBjb25zdCBpbnQga01heE91dHB1dFN0 cmVhbXMgPSA0OworKworKy8vIERlZmF1bHQgc2FtcGxlIHJhdGUgZm9yIGlucHV0IGFuZCBvdXRw dXQgc3RyZWFtcy4KKytzdGF0aWMgY29uc3QgaW50IGtEZWZhdWx0U2FtcGxlUmF0ZSA9IDQ4MDAw OworKworK3ZvaWQgQWRkRGVmYXVsdERldmljZShBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFt ZXMpIHsKKysgIERDSEVDSyhkZXZpY2VfbmFtZXMtPmVtcHR5KCkpOworKyAgZGV2aWNlX25hbWVz LT5wdXNoX2Zyb250KEF1ZGlvRGV2aWNlTmFtZTo6Q3JlYXRlRGVmYXVsdCgpKTsKKyt9CisrCisr Ym9vbCBBdWRpb01hbmFnZXJTbmRpbzo6SGFzQXVkaW9PdXRwdXREZXZpY2VzKCkgeworKyAgcmV0 dXJuIHRydWU7CisrfQorKworK2Jvb2wgQXVkaW9NYW5hZ2VyU25kaW86Okhhc0F1ZGlvSW5wdXRE ZXZpY2VzKCkgeworKyAgcmV0dXJuIHRydWU7CisrfQorKworK3ZvaWQgQXVkaW9NYW5hZ2VyU25k aW86OkdldEF1ZGlvSW5wdXREZXZpY2VOYW1lcygKKysgICAgQXVkaW9EZXZpY2VOYW1lcyogZGV2 aWNlX25hbWVzKSB7CisrICBEQ0hFQ0soZGV2aWNlX25hbWVzLT5lbXB0eSgpKTsKKysgIEFkZERl ZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKKyt9CisrCisrdm9pZCBBdWRpb01hbmFnZXJTbmRp bzo6R2V0QXVkaW9PdXRwdXREZXZpY2VOYW1lcygKKysgICAgQXVkaW9EZXZpY2VOYW1lcyogZGV2 aWNlX25hbWVzKSB7CisrICBBZGREZWZhdWx0RGV2aWNlKGRldmljZV9uYW1lcyk7CisrfQorKwor K2NvbnN0IGNoYXIqIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXROYW1lKCkgeworKyAgcmV0dXJuICJT TkRJTyI7CisrfQorKworK0F1ZGlvUGFyYW1ldGVycyBBdWRpb01hbmFnZXJTbmRpbzo6R2V0SW5w dXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkKSB7 CisrICBzdGF0aWMgY29uc3QgaW50IGtEZWZhdWx0SW5wdXRCdWZmZXJTaXplID0gMTAyNDsKKysK KysgIGludCB1c2VyX2J1ZmZlcl9zaXplID0gR2V0VXNlckJ1ZmZlclNpemUoKTsKKysgIGludCBi dWZmZXJfc2l6ZSA9IHVzZXJfYnVmZmVyX3NpemUgPworKyAgICAgIHVzZXJfYnVmZmVyX3NpemUg OiBrRGVmYXVsdElucHV0QnVmZmVyU2l6ZTsKKysKKysgIHJldHVybiBBdWRpb1BhcmFtZXRlcnMo CisrICAgICAgQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1ksIENIQU5ORUxf TEFZT1VUX1NURVJFTywKKysgICAgICBrRGVmYXVsdFNhbXBsZVJhdGUsIGJ1ZmZlcl9zaXplKTsK Kyt9CisrCisrQXVkaW9NYW5hZ2VyU25kaW86OkF1ZGlvTWFuYWdlclNuZGlvKHN0ZDo6dW5pcXVl X3B0cjxBdWRpb1RocmVhZD4gYXVkaW9fdGhyZWFkLAorKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgQXVkaW9Mb2dGYWN0b3J5KiBhdWRpb19sb2dfZmFjdG9yeSkKKysg ICAgOiBBdWRpb01hbmFnZXJCYXNlKHN0ZDo6bW92ZShhdWRpb190aHJlYWQpLAorKyAgICAgICAg ICAgICAgICAgICAgICAgYXVkaW9fbG9nX2ZhY3RvcnkpIHsKKysgIERMT0coV0FSTklORykgPDwg IkF1ZGlvTWFuYWdlclNuZGlvIjsKKysgIFNldE1heE91dHB1dFN0cmVhbXNBbGxvd2VkKGtNYXhP dXRwdXRTdHJlYW1zKTsKKyt9CisrCisrQXVkaW9NYW5hZ2VyU25kaW86On5BdWRpb01hbmFnZXJT bmRpbygpIHsKKysgIFNodXRkb3duKCk7CisrfQorKworK0F1ZGlvT3V0cHV0U3RyZWFtKiBBdWRp b01hbmFnZXJTbmRpbzo6TWFrZUxpbmVhck91dHB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9Q YXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2sp IHsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIsIHBhcmFt cy5mb3JtYXQoKSk7CisrICByZXR1cm4gTWFrZU91dHB1dFN0cmVhbShwYXJhbXMpOworK30KKysK KytBdWRpb091dHB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VMb3dMYXRlbmN5T3V0 cHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgY29u c3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19j YWxsYmFjaykgeworKyAgRExPR19JRihFUlJPUiwgIWRldmljZV9pZC5lbXB0eSgpKSA8PCAiTm90 IGltcGxlbWVudGVkISI7CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01f TE9XX0xBVEVOQ1ksIHBhcmFtcy5mb3JtYXQoKSk7CisrICByZXR1cm4gTWFrZU91dHB1dFN0cmVh bShwYXJhbXMpOworK30KKysKKytBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6 TWFrZUxpbmVhcklucHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFt cywKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9pZCwKKysgICAgY29uc3QgTG9nQ2Fs bGJhY2smIGxvZ19jYWxsYmFjaykgeworKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVE SU9fUENNX0xJTkVBUiwgcGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlSW5wdXRTdHJl YW0ocGFyYW1zKTsKKyt9CisrCisrQXVkaW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86 Ok1ha2VMb3dMYXRlbmN5SW5wdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYg cGFyYW1zLAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICBjb25zdCBM b2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSB7CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJz OjpBVURJT19QQ01fTE9XX0xBVEVOQ1ksIHBhcmFtcy5mb3JtYXQoKSk7CisrICByZXR1cm4gTWFr ZUlucHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKworK0F1ZGlvUGFyYW1ldGVycyBBdWRpb01hbmFn ZXJTbmRpbzo6R2V0UHJlZmVycmVkT3V0cHV0U3RyZWFtUGFyYW1ldGVycygKKysgICAgY29uc3Qg c3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQsCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVy cyYgaW5wdXRfcGFyYW1zKSB7CisrICAvLyBUT0RPKHRvbW1pKTogU3VwcG9ydCB8b3V0cHV0X2Rl dmljZV9pZHwuCisrICBETE9HX0lGKEVSUk9SLCAhb3V0cHV0X2RldmljZV9pZC5lbXB0eSgpKSA8 PCAiTm90IGltcGxlbWVudGVkISI7CisrICBzdGF0aWMgY29uc3QgaW50IGtEZWZhdWx0T3V0cHV0 QnVmZmVyU2l6ZSA9IDIwNDg7CisrCisrICBDaGFubmVsTGF5b3V0IGNoYW5uZWxfbGF5b3V0ID0g Q0hBTk5FTF9MQVlPVVRfU1RFUkVPOworKyAgaW50IHNhbXBsZV9yYXRlID0ga0RlZmF1bHRTYW1w bGVSYXRlOworKyAgaW50IGJ1ZmZlcl9zaXplID0ga0RlZmF1bHRPdXRwdXRCdWZmZXJTaXplOwor KyAgaWYgKGlucHV0X3BhcmFtcy5Jc1ZhbGlkKCkpIHsKKysgICAgc2FtcGxlX3JhdGUgPSBpbnB1 dF9wYXJhbXMuc2FtcGxlX3JhdGUoKTsKKysgICAgY2hhbm5lbF9sYXlvdXQgPSBpbnB1dF9wYXJh bXMuY2hhbm5lbF9sYXlvdXQoKTsKKysgICAgYnVmZmVyX3NpemUgPSBzdGQ6Om1pbihidWZmZXJf c2l6ZSwgaW5wdXRfcGFyYW1zLmZyYW1lc19wZXJfYnVmZmVyKCkpOworKyAgfQorKworKyAgaW50 IHVzZXJfYnVmZmVyX3NpemUgPSBHZXRVc2VyQnVmZmVyU2l6ZSgpOworKyAgaWYgKHVzZXJfYnVm ZmVyX3NpemUpCisrICAgIGJ1ZmZlcl9zaXplID0gdXNlcl9idWZmZXJfc2l6ZTsKKysKKysgIHJl dHVybiBBdWRpb1BhcmFtZXRlcnMoCisrICAgICAgQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01f TE9XX0xBVEVOQ1ksIGNoYW5uZWxfbGF5b3V0LAorKyAgICAgIHNhbXBsZV9yYXRlLCBidWZmZXJf c2l6ZSk7CisrfQorKworK0F1ZGlvSW5wdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtl SW5wdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKSB7CisrICBE TE9HKFdBUk5JTkcpIDw8ICJNYWtlSW5wdXRTdHJlYW0iOworKyAgcmV0dXJuIG5ldyBTbmRpb0F1 ZGlvSW5wdXRTdHJlYW0odGhpcywKKysgICAgICAgICAgICAgQXVkaW9EZXZpY2VEZXNjcmlwdGlv bjo6a0RlZmF1bHREZXZpY2VJZCwgcGFyYW1zKTsKKyt9CisrCisrQXVkaW9PdXRwdXRTdHJlYW0q IEF1ZGlvTWFuYWdlclNuZGlvOjpNYWtlT3V0cHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1Bh cmFtZXRlcnMmIHBhcmFtcykgeworKyAgRExPRyhXQVJOSU5HKSA8PCAiTWFrZU91dHB1dFN0cmVh bSI7CisrICByZXR1cm4gbmV3IFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0ocGFyYW1zLCB0aGlzKTsK Kyt9CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vbWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5o CitAQCAtMCwwICsxLDY1IEBACisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBB dXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2Rl IGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3Vu ZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fQVVE SU9fTUFOQUdFUl9TTkRJT19IXworKyNkZWZpbmUgTUVESUFfQVVESU9fU05ESU9fQVVESU9fTUFO QUdFUl9TTkRJT19IXworKworKyNpbmNsdWRlIDxzZXQ+CisrCisrI2luY2x1ZGUgImJhc2UvY29t cGlsZXJfc3BlY2lmaWMuaCIKKysjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIKKysjaW5jbHVkZSAi YmFzZS9tZW1vcnkvcmVmX2NvdW50ZWQuaCIKKysjaW5jbHVkZSAiYmFzZS90aHJlYWRpbmcvdGhy ZWFkLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXJfYmFzZS5oIgorKwor K25hbWVzcGFjZSBtZWRpYSB7CisrCisrY2xhc3MgTUVESUFfRVhQT1JUIEF1ZGlvTWFuYWdlclNu ZGlvIDogcHVibGljIEF1ZGlvTWFuYWdlckJhc2UgeworKyBwdWJsaWM6CisrICBBdWRpb01hbmFn ZXJTbmRpbyhzdGQ6OnVuaXF1ZV9wdHI8QXVkaW9UaHJlYWQ+IGF1ZGlvX3RocmVhZCwKKysgICAg ICAgICAgICAgICAgICAgQXVkaW9Mb2dGYWN0b3J5KiBhdWRpb19sb2dfZmFjdG9yeSk7CisrICB+ QXVkaW9NYW5hZ2VyU25kaW8oKSBvdmVycmlkZTsKKysKKysgIC8vIEltcGxlbWVudGF0aW9uIG9m IEF1ZGlvTWFuYWdlci4KKysgIGJvb2wgSGFzQXVkaW9PdXRwdXREZXZpY2VzKCkgb3ZlcnJpZGU7 CisrICBib29sIEhhc0F1ZGlvSW5wdXREZXZpY2VzKCkgb3ZlcnJpZGU7CisrICB2b2lkIEdldEF1 ZGlvSW5wdXREZXZpY2VOYW1lcyhBdWRpb0RldmljZU5hbWVzKiBkZXZpY2VfbmFtZXMpIG92ZXJy aWRlOworKyAgdm9pZCBHZXRBdWRpb091dHB1dERldmljZU5hbWVzKEF1ZGlvRGV2aWNlTmFtZXMq IGRldmljZV9uYW1lcykgb3ZlcnJpZGU7CisrICBBdWRpb1BhcmFtZXRlcnMgR2V0SW5wdXRTdHJl YW1QYXJhbWV0ZXJzKAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQpIG92ZXJy aWRlOworKyAgY29uc3QgY2hhciogR2V0TmFtZSgpIG92ZXJyaWRlOworKworKyAgLy8gSW1wbGVt ZW50YXRpb24gb2YgQXVkaW9NYW5hZ2VyQmFzZS4KKysgIEF1ZGlvT3V0cHV0U3RyZWFtKiBNYWtl TGluZWFyT3V0cHV0U3RyZWFtKAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1z LAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOworKyAg QXVkaW9PdXRwdXRTdHJlYW0qIE1ha2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtKAorKyAgICAgIGNv bnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBk ZXZpY2VfaWQsCisrICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJp ZGU7CisrICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlTGluZWFySW5wdXRTdHJlYW0oCisrICAgICAg Y29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcm IGRldmljZV9pZCwKKysgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVy cmlkZTsKKysgIEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VMb3dMYXRlbmN5SW5wdXRTdHJlYW0oCisr ICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMsCisrICAgICAgY29uc3Qgc3RkOjpz dHJpbmcmIGRldmljZV9pZCwKKysgICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNr KSBvdmVycmlkZTsKKysKKysgcHJvdGVjdGVkOgorKyAgQXVkaW9QYXJhbWV0ZXJzIEdldFByZWZl cnJlZE91dHB1dFN0cmVhbVBhcmFtZXRlcnMoCisrICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91 dHB1dF9kZXZpY2VfaWQsCisrICAgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBpbnB1dF9wYXJh bXMpIG92ZXJyaWRlOworKworKyBwcml2YXRlOgorKyAgLy8gQ2FsbGVkIGJ5IE1ha2VMaW5lYXJP dXRwdXRTdHJlYW0gYW5kIE1ha2VMb3dMYXRlbmN5T3V0cHV0U3RyZWFtLgorKyAgQXVkaW9PdXRw dXRTdHJlYW0qIE1ha2VPdXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMp OworKyAgQXVkaW9JbnB1dFN0cmVhbSogTWFrZUlucHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1l dGVycyYgcGFyYW1zKTsKKysKKysgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihBdWRpb01hbmFn ZXJTbmRpbyk7CisrfTsKKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKysKKysjZW5kaWYgIC8v IE1FRElBX0FVRElPX1NORElPX0FVRElPX01BTkFHRVJfU05ESU9fSF8KKy0tLSAvZGV2L251bGwK KysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1 dC5jYworQEAgLTAsMCArMSwyMDAgQEAKKysvLyBDb3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0g QXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91 bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaW5jbHVkZSAiYmFzZS9iaW5kLmgiCisrI2lu Y2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorKyNpbmNsdWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNs dWRlICJtZWRpYS9iYXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIuaCIKKysjaW5jbHVkZSAibWVk aWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oIgorKyNpbmNsdWRlICJtZWRpYS9h dWRpby9hdWRpb19tYW5hZ2VyLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlv X2lucHV0LmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytzdGF0aWMgY29uc3QgU2FtcGxl Rm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxlRm9ybWF0UzE2OworKworK3ZvaWQgU25kaW9B dWRpb0lucHV0U3RyZWFtOjpPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSkKKyt7 CisrICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlv SW5wdXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+aHdfZGVsYXkgKz0gZGVsdGE7CisrfQor KworK3ZvaWQgKlNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6VGhyZWFkRW50cnkodm9pZCAqYXJnKSB7 CisrICBTbmRpb0F1ZGlvSW5wdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1ZGlv SW5wdXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+VGhyZWFkTG9vcCgpOworKyAgcmV0dXJu IE5VTEw7CisrfQorKworK1NuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U25kaW9BdWRpb0lucHV0U3Ry ZWFtKEF1ZGlvTWFuYWdlckJhc2UqIG1hbmFnZXIsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9uYW1lLAorKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IEF1ZGlvUGFy YW1ldGVycyYgcGFyYW1zKQorKyAgICA6IG1hbmFnZXIobWFuYWdlciksCisrICAgICAgcGFyYW1z KHBhcmFtcyksCisrICAgICAgYXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVhdGUocGFyYW1zKSksCisr ICAgICAgc3RhdGUoa0Nsb3NlZCkgeworK30KKysKKytTbmRpb0F1ZGlvSW5wdXRTdHJlYW06On5T bmRpb0F1ZGlvSW5wdXRTdHJlYW0oKSB7CisrICBpZiAoc3RhdGUgIT0ga0Nsb3NlZCkKKysgICAg Q2xvc2UoKTsKKyt9CisrCisrYm9vbCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06Ok9wZW4oKSB7Cisr ICBzdHJ1Y3Qgc2lvX3BhciBwYXI7CisrICBpbnQgc2lnOworKworKyAgaWYgKHN0YXRlICE9IGtD bG9zZWQpCisrICAgIHJldHVybiBmYWxzZTsKKysKKysgIGlmIChwYXJhbXMuZm9ybWF0KCkgIT0g QXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTElORUFSICYmCisrICAgICAgcGFyYW1zLmZvcm1h dCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xPV19MQVRFTkNZKSB7CisrICAgIExP RyhXQVJOSU5HKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8gZm9ybWF0LiI7CisrICAgIHJldHVybiBm YWxzZTsKKysgIH0KKysKKysgIHNpb19pbml0cGFyKCZwYXIpOworKyAgcGFyLnJhdGUgPSBwYXJh bXMuc2FtcGxlX3JhdGUoKTsKKysgIHBhci5yY2hhbiA9IHBhcmFtcy5jaGFubmVscygpOworKyAg cGFyLmJpdHMgPSBTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpOwor KyAgcGFyLmJwcyA9IHBhci5iaXRzIC8gODsKKysgIHBhci5zaWcgPSBzaWcgPSBwYXIuYml0cyAh PSA4ID8gMSA6IDA7CisrICBwYXIubGUgPSBTSU9fTEVfTkFUSVZFOworKyAgcGFyLmFwcGJ1ZnN6 ID0gcGFyYW1zLmZyYW1lc19wZXJfYnVmZmVyKCk7CisrCisrICBoZGwgPSBzaW9fb3BlbihTSU9f REVWQU5ZLCBTSU9fUkVDLCAwKTsKKysKKysgIGlmIChoZGwgPT0gTlVMTCkgeworKyAgICBMT0co RVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1ZGlvIGRldmljZS4iOworKyAgICByZXR1cm4gZmFs c2U7CisrICB9CisrCisrICBpZiAoIXNpb19zZXRwYXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dldHBh cihoZGwsICZwYXIpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHNldCBhdWRpbyBw YXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKworKyAgaWYgKHBhci5y YXRlICAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5zYW1wbGVfcmF0ZSgpIHx8CisrICAgICAgcGFy LnJjaGFuICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKKysgICAgICBwYXIu Yml0cyAgIT0gKHVuc2lnbmVkIGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1w bGVGb3JtYXQpIHx8CisrICAgICAgcGFyLnNpZyAgICE9ICh1bnNpZ25lZCBpbnQpc2lnIHx8Cisr ICAgICAgKHBhci5icHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAorKyAgICAg IChwYXIuYml0cyAhPSBwYXIuYnBzICogOCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBw b3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysg IHN0YXRlID0ga1N0b3BwZWQ7CisrICBidWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1l cygpICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCldOworKyAgc2lvX29u bW92ZShoZGwsICZPbk1vdmVDYWxsYmFjaywgdGhpcyk7CisrICByZXR1cm4gdHJ1ZTsKKytiYWRf Y2xvc2U6CisrICBzaW9fY2xvc2UoaGRsKTsKKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9p ZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2IpIHsK KysKKysgIFN0YXJ0QWdjKCk7CisrCisrICBzdGF0ZSA9IGtSdW5uaW5nOworKyAgaHdfZGVsYXkg PSAwOworKyAgY2FsbGJhY2sgPSBjYjsKKysgIHNpb19zdGFydChoZGwpOworKyAgaWYgKHB0aHJl YWRfY3JlYXRlKCZ0aHJlYWQsIE5VTEwsICZUaHJlYWRFbnRyeSwgdGhpcykgIT0gMCkgeworKyAg ICBMT0coRVJST1IpIDw8ICJGYWlsZWQgdG8gY3JlYXRlIHJlYWwtdGltZSB0aHJlYWQgZm9yIHJl Y29yZGluZy4iOworKyAgICBzaW9fc3RvcChoZGwpOworKyAgICBzdGF0ZSA9IGtTdG9wcGVkOwor KyAgfQorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U3RvcCgpIHsKKysKKysg IGlmIChzdGF0ZSA9PSBrU3RvcHBlZCkKKysgICAgcmV0dXJuOworKworKyAgc3RhdGUgPSBrU3Rv cFdhaXQ7CisrICBwdGhyZWFkX2pvaW4odGhyZWFkLCBOVUxMKTsKKysgIHNpb19zdG9wKGhkbCk7 CisrICBzdGF0ZSA9IGtTdG9wcGVkOworKworKyAgU3RvcEFnYygpOworK30KKysKKyt2b2lkIFNu ZGlvQXVkaW9JbnB1dFN0cmVhbTo6Q2xvc2UoKSB7CisrCisrICBpZiAoc3RhdGUgPT0ga0Nsb3Nl ZCkKKysgICAgcmV0dXJuOworKworKyAgaWYgKHN0YXRlID09IGtSdW5uaW5nKQorKyAgICBTdG9w KCk7CisrCisrICBzdGF0ZSA9IGtDbG9zZWQ7CisrICBkZWxldGUgW10gYnVmZmVyOworKyAgc2lv X2Nsb3NlKGhkbCk7CisrCisrICBtYW5hZ2VyLT5SZWxlYXNlSW5wdXRTdHJlYW0odGhpcyk7Cisr fQorKworK2RvdWJsZSBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkdldE1heFZvbHVtZSgpIHsKKysg IC8vIE5vdCBzdXBwb3J0ZWQKKysgIHJldHVybiAwLjA7CisrfQorKworK3ZvaWQgU25kaW9BdWRp b0lucHV0U3RyZWFtOjpTZXRWb2x1bWUoZG91YmxlIHZvbHVtZSkgeworKyAgLy8gTm90IHN1cHBv cnRlZC4gRG8gbm90aGluZy4KKyt9CisrCisrZG91YmxlIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6 R2V0Vm9sdW1lKCkgeworKyAgLy8gTm90IHN1cHBvcnRlZC4KKysgIHJldHVybiAwLjA7CisrfQor KworK2Jvb2wgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpJc011dGVkKCkgeworKyAgLy8gTm90IHN1 cHBvcnRlZC4KKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRT dHJlYW06OlNldE91dHB1dERldmljZUZvckFlYygKKysgICAgY29uc3Qgc3RkOjpzdHJpbmcmIG91 dHB1dF9kZXZpY2VfaWQpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuCisrfQorKworK3ZvaWQgU25k aW9BdWRpb0lucHV0U3RyZWFtOjpUaHJlYWRMb29wKHZvaWQpIHsKKysgIHNpemVfdCB0b2RvLCBu OworKyAgY2hhciAqZGF0YTsKKysgIHVuc2lnbmVkIGludCBuZnJhbWVzOworKyAgZG91YmxlIG5v cm1hbGl6ZWRfdm9sdW1lID0gMC4wOworKworKyAgbmZyYW1lcyA9IGF1ZGlvX2J1cy0+ZnJhbWVz KCk7CisrCisrICB3aGlsZSAoc3RhdGUgPT0ga1J1bm5pbmcgJiYgIXNpb19lb2YoaGRsKSkgewor KworKyAgICBHZXRBZ2NWb2x1bWUoJm5vcm1hbGl6ZWRfdm9sdW1lKTsKKysKKysgICAgLy8gcmVh ZCBvbmUgYmxvY2sKKysgICAgdG9kbyA9IG5mcmFtZXMgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFt ZShrU2FtcGxlRm9ybWF0KTsKKysgICAgZGF0YSA9IGJ1ZmZlcjsKKysgICAgd2hpbGUgKHRvZG8g PiAwKSB7CisrICAgICAgbiA9IHNpb19yZWFkKGhkbCwgZGF0YSwgdG9kbyk7CisrICAgICAgaWYg KG4gPT0gMCkKKysgICAgICAgIHJldHVybjsJLy8gdW5yZWNvdmVyYWJsZSBJL08gZXJyb3IKKysg ICAgICB0b2RvIC09IG47CisrICAgICAgZGF0YSArPSBuOworKyAgICB9CisrICAgIGh3X2RlbGF5 IC09IG5mcmFtZXM7CisrCisrICAgIC8vIGNvbnZlcnQgZnJhbWVzIGNvdW50IHRvIFRpbWVEZWx0 YQorKyAgICBjb25zdCBiYXNlOjpUaW1lRGVsdGEgZGVsYXkgPSBBdWRpb1RpbWVzdGFtcEhlbHBl cjo6RnJhbWVzVG9UaW1lKGh3X2RlbGF5LAorKyAgICAgIHBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsK KysKKysgICAgLy8gcHVzaCBpbnRvIGJ1cworKyAgICBhdWRpb19idXMtPkZyb21JbnRlcmxlYXZl ZDxTaWduZWRJbnQxNlNhbXBsZVR5cGVUcmFpdHM+KHJlaW50ZXJwcmV0X2Nhc3Q8aW50MTZfdCo+ KGJ1ZmZlciksIG5mcmFtZXMpOworKworKyAgICAvLyBpbnZva2UgY2FsbGJhY2sKKysgICAgY2Fs bGJhY2stPk9uRGF0YShhdWRpb19idXMuZ2V0KCksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCkgLSBk ZWxheSwgMS4pOworKyAgfQorK30KKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKKy0tLSAvZGV2 L251bGwKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9tZWRpYS9hdWRpby9zbmRpby9zbmRp b19pbnB1dC5oCitAQCAtMCwwICsxLDkxIEBACisrLy8gQ29weXJpZ2h0IDIwMTMgVGhlIENocm9t aXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNl IGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8v IGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisrI2lmbmRlZiBNRURJQV9BVURJT19TTkRJ T19TTkRJT19JTlBVVF9IXworKyNkZWZpbmUgTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRf SF8KKysKKysjaW5jbHVkZSA8c3RkaW50Lmg+CisrI2luY2x1ZGUgPHN0cmluZz4KKysjaW5jbHVk ZSA8c25kaW8uaD4KKysKKysjaW5jbHVkZSAiYmFzZS9jb21waWxlcl9zcGVjaWZpYy5oIgorKyNp bmNsdWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNsdWRlICJiYXNlL21lbW9yeS93ZWFrX3B0ci5o IgorKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9h Z2NfYXVkaW9fc3RyZWFtLmgiCisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2lvLmgiCisr I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX2RldmljZV9kZXNjcmlwdGlvbi5oIgorKyNpbmNs dWRlICJtZWRpYS9iYXNlL2F1ZGlvX3BhcmFtZXRlcnMuaCIKKysKKytuYW1lc3BhY2UgbWVkaWEg eworKworK2NsYXNzIEF1ZGlvTWFuYWdlckJhc2U7CisrCisrLy8gSW1wbGVtZW50YXRpb24gb2Yg QXVkaW9PdXRwdXRTdHJlYW0gdXNpbmcgc25kaW8oNykKKytjbGFzcyBTbmRpb0F1ZGlvSW5wdXRT dHJlYW0gOiBwdWJsaWMgQWdjQXVkaW9TdHJlYW08QXVkaW9JbnB1dFN0cmVhbT4geworKyBwdWJs aWM6CisrICAvLyBQYXNzIHRoaXMgdG8gdGhlIGNvbnN0cnVjdG9yIGlmIHlvdSB3YW50IHRvIGF0 dGVtcHQgYXV0by1zZWxlY3Rpb24KKysgIC8vIG9mIHRoZSBhdWRpbyByZWNvcmRpbmcgZGV2aWNl LgorKyAgc3RhdGljIGNvbnN0IGNoYXIga0F1dG9TZWxlY3REZXZpY2VbXTsKKysKKysgIC8vIENy ZWF0ZSBhIFBDTSBPdXRwdXQgc3RyZWFtIGZvciB0aGUgU05ESU8gZGV2aWNlIGlkZW50aWZpZWQg YnkKKysgIC8vIHxkZXZpY2VfbmFtZXwuIElmIHVuc3VyZSBvZiB3aGF0IHRvIHVzZSBmb3IgfGRl dmljZV9uYW1lfCwgdXNlCisrICAvLyB8a0F1dG9TZWxlY3REZXZpY2V8LgorKyAgU25kaW9BdWRp b0lucHV0U3RyZWFtKEF1ZGlvTWFuYWdlckJhc2UqIGF1ZGlvX21hbmFnZXIsCisrICAgICAgICAg ICAgICAgICAgICAgY29uc3Qgc3RkOjpzdHJpbmcmIGRldmljZV9uYW1lLAorKyAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKysKKysgIH5TbmRpb0F1 ZGlvSW5wdXRTdHJlYW0oKSBvdmVycmlkZTsKKysKKysgIC8vIEltcGxlbWVudGF0aW9uIG9mIEF1 ZGlvSW5wdXRTdHJlYW0uCisrICBib29sIE9wZW4oKSBvdmVycmlkZTsKKysgIHZvaWQgU3RhcnQo QXVkaW9JbnB1dENhbGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7CisrICB2b2lkIFN0b3AoKSBv dmVycmlkZTsKKysgIHZvaWQgQ2xvc2UoKSBvdmVycmlkZTsKKysgIGRvdWJsZSBHZXRNYXhWb2x1 bWUoKSBvdmVycmlkZTsKKysgIHZvaWQgU2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIG92ZXJyaWRl OworKyAgZG91YmxlIEdldFZvbHVtZSgpIG92ZXJyaWRlOworKyAgYm9vbCBJc011dGVkKCkgb3Zl cnJpZGU7CisrICB2b2lkIFNldE91dHB1dERldmljZUZvckFlYyhjb25zdCBzdGQ6OnN0cmluZyYg b3V0cHV0X2RldmljZV9pZCkgb3ZlcnJpZGU7CisrCisrIHByaXZhdGU6CisrCisrICBlbnVtIFN0 cmVhbVN0YXRlIHsKKysgICAga0Nsb3NlZCwgICAgICAgICAgICAvLyBOb3Qgb3BlbmVkIHlldAor KyAgICBrU3RvcHBlZCwgICAgICAgICAgIC8vIERldmljZSBvcGVuZWQsIGJ1dCBub3Qgc3RhcnRl ZCB5ZXQKKysgICAga1J1bm5pbmcsICAgICAgICAgICAvLyBTdGFydGVkLCBkZXZpY2UgcGxheWlu ZworKyAgICBrU3RvcFdhaXQgICAgICAgICAgIC8vIFN0b3BwaW5nLCB3YWl0aW5nIGZvciB0aGUg cmVhbC10aW1lIHRocmVhZCB0byBleGl0CisrICB9OworKworKyAgLy8gQy1zdHlsZSBjYWxsLWJh Y2tzCisrICBzdGF0aWMgdm9pZCBPbk1vdmVDYWxsYmFjayh2b2lkICphcmcsIGludCBkZWx0YSk7 CisrICBzdGF0aWMgdm9pZCogVGhyZWFkRW50cnkodm9pZCAqYXJnKTsKKysKKysgIC8vIENvbnRp bnVvdXNseSBtb3ZlcyBkYXRhIGZyb20gdGhlIGRldmljZSB0byB0aGUgY29uc3VtZXIKKysgIHZv aWQgVGhyZWFkTG9vcCgpOworKyAgLy8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5l ZWRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gd2UgY2xvc2UuCisrICBBdWRpb01hbmFnZXJCYXNlKiBt YW5hZ2VyOworKyAgLy8gUGFyYW1ldGVycyBvZiB0aGUgc291cmNlCisrICBBdWRpb1BhcmFtZXRl cnMgcGFyYW1zOworKyAgLy8gV2Ugc3RvcmUgZGF0YSBoZXJlIGZvciBjb25zdW1lcgorKyAgc3Rk Ojp1bmlxdWVfcHRyPEF1ZGlvQnVzPiBhdWRpb19idXM7CisrICAvLyBDYWxsLWJhY2sgdGhhdCBj b25zdW1lcyByZWNvcmRlZCBkYXRhCisrICBBdWRpb0lucHV0Q2FsbGJhY2sqIGNhbGxiYWNrOyAg Ly8gVmFsaWQgZHVyaW5nIGEgcmVjb3JkaW5nIHNlc3Npb24uCisrICAvLyBIYW5kbGUgb2YgdGhl IGF1ZGlvIGRldmljZQorKyAgc3RydWN0IHNpb19oZGwqIGhkbDsKKysgIC8vIEN1cnJlbnQgc3Rh dGUgb2YgdGhlIHN0cmVhbQorKyAgZW51bSBTdHJlYW1TdGF0ZSBzdGF0ZTsKKysgIC8vIEhpZ2gg cHJpb3JpdHkgdGhyZWFkIHJ1bm5pbmcgVGhyZWFkTG9vcCgpCisrICBwdGhyZWFkX3QgdGhyZWFk OworKyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBidWZmZXJlZCBpbiB0aGUgaGFyZHdhcmUKKysgIGlu dCBod19kZWxheTsKKysgIC8vIFRlbXBvcmFyeSBidWZmZXIgd2hlcmUgZGF0YSBpcyBzdG9yZWQg c25kaW8tY29tcGF0aWJsZSBmb3JtYXQKKysgIGNoYXIqIGJ1ZmZlcjsKKysKKysgIERJU0FMTE9X X0NPUFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlvSW5wdXRTdHJlYW0pOworK307CisrCisrfSAgLy8g bmFtZXNwYWNlIG1lZGlhCisrCisrI2VuZGlmICAvLyBNRURJQV9BVURJT19TTkRJT19TTkRJT19J TlBVVF9IXworLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21lZGlh L2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5jYworQEAgLTAsMCArMSwxODMgQEAKKysvLyBDb3B5 cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu CisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg bGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUuCisrCisr I2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgor KyNpbmNsdWRlICJiYXNlL3RpbWUvZGVmYXVsdF90aWNrX2Nsb2NrLmgiCisrI2luY2x1ZGUgIm1l ZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXJfYmFzZS5oIgorKyNpbmNsdWRlICJtZWRpYS9iYXNlL2F1 ZGlvX3RpbWVzdGFtcF9oZWxwZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vc25kaW8vc25k aW9fb3V0cHV0LmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytzdGF0aWMgY29uc3QgU2Ft cGxlRm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxlRm9ybWF0UzE2OworKworK3ZvaWQgU25k aW9BdWRpb091dHB1dFN0cmVhbTo6T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEp IHsKKysgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNfY2FzdDxTbmRpb0F1 ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPmh3X2RlbGF5IC09IGRlbHRhOwor K30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9uVm9sQ2FsbGJhY2sodm9pZCAq YXJnLCB1bnNpZ25lZCBpbnQgdm9sKSB7CisrICBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKiBzZWxm ID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7CisrCisrICBzZWxm LT52b2wgPSB2b2w7CisrfQorKworK3ZvaWQgKlNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlRocmVh ZEVudHJ5KHZvaWQgKmFyZykgeworKyAgU25kaW9BdWRpb091dHB1dFN0cmVhbSogc2VsZiA9IHN0 YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qPihhcmcpOworKworKyAgc2VsZi0+VGhy ZWFkTG9vcCgpOworKyAgcmV0dXJuIE5VTEw7CisrfQorKworK1NuZGlvQXVkaW9PdXRwdXRTdHJl YW06OlNuZGlvQXVkaW9PdXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMs CisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBdWRpb01h bmFnZXJCYXNlKiBtYW5hZ2VyKQorKyAgICA6IG1hbmFnZXIobWFuYWdlciksCisrICAgICAgcGFy YW1zKHBhcmFtcyksCisrICAgICAgYXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVhdGUocGFyYW1zKSks CisrICAgICAgc3RhdGUoa0Nsb3NlZCksCisrICAgICAgbXV0ZXgoUFRIUkVBRF9NVVRFWF9JTklU SUFMSVpFUikgeworK30KKysKKytTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjp+U25kaW9BdWRpb091 dHB1dFN0cmVhbSgpIHsKKysgIGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorKyAgICBDbG9zZSgpOwor K30KKysKKytib29sIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9wZW4oKSB7CisrICBzdHJ1Y3Qg c2lvX3BhciBwYXI7CisrICBpbnQgc2lnOworKworKyAgaWYgKHBhcmFtcy5mb3JtYXQoKSAhPSBB dWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIgJiYKKysgICAgICBwYXJhbXMuZm9ybWF0 KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1kpIHsKKysgICAgTE9H KFdBUk5JTkcpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBmb3JtYXQuIjsKKysgICAgcmV0dXJuIGZh bHNlOworKyAgfQorKyAgc2lvX2luaXRwYXIoJnBhcik7CisrICBwYXIucmF0ZSA9IHBhcmFtcy5z YW1wbGVfcmF0ZSgpOworKyAgcGFyLnBjaGFuID0gcGFyYW1zLmNoYW5uZWxzKCk7CisrICBwYXIu Yml0cyA9IFNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZvcm1hdCk7CisrICBw YXIuYnBzID0gcGFyLmJpdHMgLyA4OworKyAgcGFyLnNpZyA9IHNpZyA9IHBhci5iaXRzICE9IDgg PyAxIDogMDsKKysgIHBhci5sZSA9IFNJT19MRV9OQVRJVkU7CisrICBwYXIuYXBwYnVmc3ogPSBw YXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKTsKKysKKysgIGhkbCA9IHNpb19vcGVuKFNJT19ERVZB TlksIFNJT19QTEFZLCAwKTsKKysgIGlmIChoZGwgPT0gTlVMTCkgeworKyAgICBMT0coRVJST1Ip IDw8ICJDb3VsZG4ndCBvcGVuIGF1ZGlvIGRldmljZS4iOworKyAgICByZXR1cm4gZmFsc2U7Cisr ICB9CisrICBpZiAoIXNpb19zZXRwYXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dldHBhcihoZGwsICZw YXIpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHNldCBhdWRpbyBwYXJhbWV0ZXJz LiI7CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKyAgaWYgKHBhci5yYXRlICAhPSAodW5z aWduZWQgaW50KXBhcmFtcy5zYW1wbGVfcmF0ZSgpIHx8CisrICAgICAgcGFyLnBjaGFuICE9ICh1 bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKKysgICAgICBwYXIuYml0cyAgIT0gKHVu c2lnbmVkIGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1wbGVGb3JtYXQpIHx8 CisrICAgICAgcGFyLnNpZyAgICE9ICh1bnNpZ25lZCBpbnQpc2lnIHx8CisrICAgICAgKHBhci5i cHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAorKyAgICAgIChwYXIuYml0cyAh PSBwYXIuYnBzICogOCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBwb3J0ZWQgYXVkaW8g cGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysgIHN0YXRlID0ga1N0 b3BwZWQ7CisrICB2b2xwZW5kaW5nID0gMDsKKysgIHZvbCA9IDA7CisrICBidWZmZXIgPSBuZXcg Y2hhclthdWRpb19idXMtPmZyYW1lcygpICogcGFyYW1zLkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBs ZUZvcm1hdCldOworKyAgc2lvX29ubW92ZShoZGwsICZPbk1vdmVDYWxsYmFjaywgdGhpcyk7Cisr ICBzaW9fb252b2woaGRsLCAmT25Wb2xDYWxsYmFjaywgdGhpcyk7CisrICByZXR1cm4gdHJ1ZTsK KysgYmFkX2Nsb3NlOgorKyAgc2lvX2Nsb3NlKGhkbCk7CisrICByZXR1cm4gZmFsc2U7CisrfQor KworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6Q2xvc2UoKSB7CisrICBpZiAoc3RhdGUg PT0ga0Nsb3NlZCkKKysgICAgcmV0dXJuOworKyAgaWYgKHN0YXRlID09IGtSdW5uaW5nKQorKyAg ICBTdG9wKCk7CisrICBzdGF0ZSA9IGtDbG9zZWQ7CisrICBkZWxldGUgW10gYnVmZmVyOworKyAg c2lvX2Nsb3NlKGhkbCk7CisrICBtYW5hZ2VyLT5SZWxlYXNlT3V0cHV0U3RyZWFtKHRoaXMpOyAg Ly8gQ2FsbHMgdGhlIGRlc3RydWN0b3IKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3Ry ZWFtOjpTdGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFjaykgeworKyAgc3RhdGUgPSBr UnVubmluZzsKKysgIGh3X2RlbGF5ID0gMDsKKysgIHNvdXJjZSA9IGNhbGxiYWNrOworKyAgc2lv X3N0YXJ0KGhkbCk7CisrICBpZiAocHRocmVhZF9jcmVhdGUoJnRocmVhZCwgTlVMTCwgJlRocmVh ZEVudHJ5LCB0aGlzKSAhPSAwKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkZhaWxlZCB0byBjcmVh dGUgcmVhbC10aW1lIHRocmVhZC4iOworKyAgICBzaW9fc3RvcChoZGwpOworKyAgICBzdGF0ZSA9 IGtTdG9wcGVkOworKyAgfQorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06OlN0 b3AoKSB7CisrICBpZiAoc3RhdGUgPT0ga1N0b3BwZWQpCisrICAgIHJldHVybjsKKysgIHN0YXRl ID0ga1N0b3BXYWl0OworKyAgcHRocmVhZF9qb2luKHRocmVhZCwgTlVMTCk7CisrICBzaW9fc3Rv cChoZGwpOworKyAgc3RhdGUgPSBrU3RvcHBlZDsKKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0 cHV0U3RyZWFtOjpTZXRWb2x1bWUoZG91YmxlIHYpIHsKKysgIHB0aHJlYWRfbXV0ZXhfbG9jaygm bXV0ZXgpOworKyAgdm9sID0gdiAqIFNJT19NQVhWT0w7CisrICB2b2xwZW5kaW5nID0gMTsKKysg IHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091 dHB1dFN0cmVhbTo6R2V0Vm9sdW1lKGRvdWJsZSogdikgeworKyAgcHRocmVhZF9tdXRleF9sb2Nr KCZtdXRleCk7CisrICAqdiA9IHZvbCAqICgxLiAvIFNJT19NQVhWT0wpOworKyAgcHRocmVhZF9t dXRleF91bmxvY2soJm11dGV4KTsKKyt9CisrCisrLy8gVGhpcyBzdHJlYW0gaXMgYWx3YXlzIHVz ZWQgd2l0aCBzdWIgc2Vjb25kIGJ1ZmZlciBzaXplcywgd2hlcmUgaXQncworKy8vIHN1ZmZpY2ll bnQgdG8gc2ltcGx5IGFsd2F5cyBmbHVzaCB1cG9uIFN0YXJ0KCkuCisrdm9pZCBTbmRpb0F1ZGlv T3V0cHV0U3RyZWFtOjpGbHVzaCgpIHt9CisrCisrdm9pZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFt OjpUaHJlYWRMb29wKHZvaWQpIHsKKysgIGludCBhdmFpbCwgY291bnQsIHJlc3VsdDsKKysKKysg IHdoaWxlIChzdGF0ZSA9PSBrUnVubmluZykgeworKyAgICAvLyBVcGRhdGUgdm9sdW1lIGlmIG5l ZWRlZAorKyAgICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKysgICAgaWYgKHZvbHBlbmRp bmcpIHsKKysgICAgICB2b2xwZW5kaW5nID0gMDsKKysgICAgICBzaW9fc2V0dm9sKGhkbCwgdm9s KTsKKysgICAgfQorKyAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXgpOworKworKyAgICAv LyBHZXQgZGF0YSB0byBwbGF5CisrICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0YSBkZWxheSA9IEF1 ZGlvVGltZXN0YW1wSGVscGVyOjpGcmFtZXNUb1RpbWUoaHdfZGVsYXksCisrCXBhcmFtcy5zYW1w bGVfcmF0ZSgpKTsKKysgICAgY291bnQgPSBzb3VyY2UtPk9uTW9yZURhdGEoZGVsYXksIGJhc2U6 OlRpbWVUaWNrczo6Tm93KCksIDAsIGF1ZGlvX2J1cy5nZXQoKSk7CisrICAgIGF1ZGlvX2J1cy0+ VG9JbnRlcmxlYXZlZDxTaWduZWRJbnQxNlNhbXBsZVR5cGVUcmFpdHM+KGNvdW50LCByZWludGVy cHJldF9jYXN0PGludDE2X3QqPihidWZmZXIpKTsKKysgICAgaWYgKGNvdW50ID09IDApIHsKKysg ICAgICAvLyBXZSBoYXZlIHRvIHN1Ym1pdCBzb21ldGhpbmcgdG8gdGhlIGRldmljZQorKyAgICAg IGNvdW50ID0gYXVkaW9fYnVzLT5mcmFtZXMoKTsKKysgICAgICBtZW1zZXQoYnVmZmVyLCAwLCBj b3VudCAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpKTsKKysgICAgICBM T0coV0FSTklORykgPDwgIk5vIGRhdGEgdG8gcGxheSwgcnVubmluZyBlbXB0eSBjeWNsZS4iOwor KyAgICB9CisrCisrICAgIC8vIFN1Ym1pdCBkYXRhIHRvIHRoZSBkZXZpY2UKKysgICAgYXZhaWwg PSBjb3VudCAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3JtYXQpOworKyAgICBy ZXN1bHQgPSBzaW9fd3JpdGUoaGRsLCBidWZmZXIsIGF2YWlsKTsKKysgICAgaWYgKHJlc3VsdCA9 PSAwKSB7CisrICAgICAgTE9HKFdBUk5JTkcpIDw8ICJBdWRpbyBkZXZpY2UgZGlzY29ubmVjdGVk LiI7CisrICAgICAgYnJlYWs7CisrICAgIH0KKysKKysgICAgLy8gVXBkYXRlIGhhcmR3YXJlIHBv aW50ZXIKKysgICAgaHdfZGVsYXkgKz0gY291bnQ7CisrICB9CisrfQorKworK30gIC8vIG5hbWVz cGFjZSBtZWRpYQorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL21l ZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oCitAQCAtMCwwICsxLDg2IEBACisrLy8gQ29w eXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVk LgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxl IGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKwor KyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hfCisrI2RlZmluZSBNRURJ QV9BVURJT19TTkRJT19TTkRJT19PVVRQVVRfSF8KKysKKysjaW5jbHVkZSA8cHRocmVhZC5oPgor KyNpbmNsdWRlIDxzbmRpby5oPgorKworKyNpbmNsdWRlICJiYXNlL3RpbWUvdGlja19jbG9jay5o IgorKyNpbmNsdWRlICJiYXNlL3RpbWUvdGltZS5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9h dWRpb19pby5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrY2xhc3MgQXVkaW9NYW5hZ2Vy QmFzZTsKKysKKysvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVhbSB1c2luZyBz bmRpbyg3KQorK2NsYXNzIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0gOiBwdWJsaWMgQXVkaW9PdXRw dXRTdHJlYW0geworKyBwdWJsaWM6CisrICAvLyBUaGUgbWFuYWdlciBpcyBjcmVhdGluZyB0aGlz IG9iamVjdAorKyAgU25kaW9BdWRpb091dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMm IHBhcmFtcywKKysgICAgICAgICAgICAgICAgICAgICAgICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFu YWdlcik7CisrICB2aXJ0dWFsIH5TbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKCk7CisrCisrICAvLyBJ bXBsZW1lbnRhdGlvbiBvZiBBdWRpb091dHB1dFN0cmVhbS4KKysgIGJvb2wgT3BlbigpIG92ZXJy aWRlOworKyAgdm9pZCBDbG9zZSgpIG92ZXJyaWRlOworKyAgdm9pZCBTdGFydChBdWRpb1NvdXJj ZUNhbGxiYWNrKiBjYWxsYmFjaykgb3ZlcnJpZGU7CisrICB2b2lkIFN0b3AoKSBvdmVycmlkZTsK KysgIHZvaWQgU2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIG92ZXJyaWRlOworKyAgdm9pZCBHZXRW b2x1bWUoZG91YmxlKiB2b2x1bWUpIG92ZXJyaWRlOworKyAgdm9pZCBGbHVzaCgpIG92ZXJyaWRl OworKworKyAgZnJpZW5kIHZvaWQgc25kaW9fb25tb3ZlKHZvaWQgKmFyZywgaW50IGRlbHRhKTsK KysgIGZyaWVuZCB2b2lkIHNuZGlvX29udm9sKHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCk7 CisrICBmcmllbmQgdm9pZCAqc25kaW9fdGhyZWFkc3RhcnQodm9pZCAqYXJnKTsKKysKKysgcHJp dmF0ZToKKysgIGVudW0gU3RyZWFtU3RhdGUgeworKyAgICBrQ2xvc2VkLCAgICAgICAgICAgIC8v IE5vdCBvcGVuZWQgeWV0CisrICAgIGtTdG9wcGVkLCAgICAgICAgICAgLy8gRGV2aWNlIG9wZW5l ZCwgYnV0IG5vdCBzdGFydGVkIHlldAorKyAgICBrUnVubmluZywgICAgICAgICAgIC8vIFN0YXJ0 ZWQsIGRldmljZSBwbGF5aW5nCisrICAgIGtTdG9wV2FpdCAgICAgICAgICAgLy8gU3RvcHBpbmcs IHdhaXRpbmcgZm9yIHRoZSByZWFsLXRpbWUgdGhyZWFkIHRvIGV4aXQKKysgIH07CisrCisrICAv LyBDLXN0eWxlIGNhbGwtYmFja3MKKysgIHN0YXRpYyB2b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQg KmFyZywgaW50IGRlbHRhKTsKKysgIHN0YXRpYyB2b2lkIE9uVm9sQ2FsbGJhY2sodm9pZCAqYXJn LCB1bnNpZ25lZCBpbnQgdm9sKTsKKysgIHN0YXRpYyB2b2lkKiBUaHJlYWRFbnRyeSh2b2lkICph cmcpOworKworKyAgLy8gQ29udGludW91c2x5IG1vdmVzIGRhdGEgZnJvbSB0aGUgcHJvZHVjZXIg dG8gdGhlIGRldmljZQorKyAgdm9pZCBUaHJlYWRMb29wKHZvaWQpOworKworKyAgLy8gT3VyIGNy ZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2VyIG5lZWRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gd2UgY2xv c2UuCisrICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyOworKyAgLy8gUGFyYW1ldGVycyBvZiB0 aGUgc291cmNlCisrICBBdWRpb1BhcmFtZXRlcnMgcGFyYW1zOworKyAgLy8gU291cmNlIHN0b3Jl cyBkYXRhIGhlcmUKKysgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4gYXVkaW9fYnVzOworKyAg Ly8gQ2FsbC1iYWNrIHRoYXQgcHJvZHVjZXMgZGF0YSB0byBwbGF5CisrICBBdWRpb1NvdXJjZUNh bGxiYWNrKiBzb3VyY2U7CisrICAvLyBIYW5kbGUgb2YgdGhlIGF1ZGlvIGRldmljZQorKyAgc3Ry dWN0IHNpb19oZGwqIGhkbDsKKysgIC8vIEN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0cmVhbQorKyAg ZW51bSBTdHJlYW1TdGF0ZSBzdGF0ZTsKKysgIC8vIEhpZ2ggcHJpb3JpdHkgdGhyZWFkIHJ1bm5p bmcgVGhyZWFkTG9vcCgpCisrICBwdGhyZWFkX3QgdGhyZWFkOworKyAgLy8gUHJvdGVjdHMgdm9s LCB2b2xwZW5kaW5nIGFuZCBod19kZWxheQorKyAgcHRocmVhZF9tdXRleF90IG11dGV4OworKyAg Ly8gQ3VycmVudCB2b2x1bWUgaW4gdGhlIDAuLlNJT19NQVhWT0wgcmFuZ2UKKysgIGludCB2b2w7 CisrICAvLyBTZXQgdG8gMSBpZiB2b2x1bWVzIG11c3QgYmUgcmVmcmVzaGVkIGluIHRoZSByZWFs dGltZSB0aHJlYWQKKysgIGludCB2b2xwZW5kaW5nOworKyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBi dWZmZXJlZCBpbiB0aGUgaGFyZHdhcmUKKysgIGludCBod19kZWxheTsKKysgIC8vIFRlbXBvcmFy eSBidWZmZXIgd2hlcmUgZGF0YSBpcyBzdG9yZWQgc25kaW8tY29tcGF0aWJsZSBmb3JtYXQKKysg IGNoYXIqIGJ1ZmZlcjsKKysKKysgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlv T3V0cHV0U3RyZWFtKTsKKyt9OworKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNlbmRp ZiAgLy8gTUVESUFfQVVESU9fU05ESU9fU05ESU9fT1VUUFVUX0hfCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vbWVkaWEvbWVkaWFfb3B0aW9ucy5nbmkKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9tZWRpYS9tZWRpYV9vcHRpb25zLmduaQorQEAgLTEyMSw2ICsxMjEsOSBAQCBkZWNs YXJlX2FyZ3MoKSB7CisgICAjIEVuYWJsZXMgcnVudGltZSBzZWxlY3Rpb24gb2YgQUxTQSBsaWJy YXJ5IGZvciBhdWRpby4KKyAgIHVzZV9hbHNhID0gZmFsc2UKKyAKKysgICMgRW5hYmxlIHJ1bnRp bWUgc2VsZWN0aW9uIG9mIHNuZGlvKDcpCisrICB1c2Vfc25kaW8gPSBmYWxzZQorKworICAgIyBB bHNhIHNob3VsZCBiZSB1c2VkIG9uIG5vbi1BbmRyb2lkLCBub24tTWFjIFBPU0lYIHN5c3RlbXMu CisgICAjIEFsc2Egc2hvdWxkIGJlIHVzZWQgb24gZGVza3RvcCBDaHJvbWVjYXN0IGFuZCBhdWRp by1vbmx5IENocm9tZWNhc3QgYnVpbGRzLgorICAgaWYgKGlzX3Bvc2l4ICYmICFpc19hbmRyb2lk ICYmICFpc19tYWMgJiYKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVz LzA3MDAtYXJtdjdsLW5lb24ucGF0Y2ggYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8w NzAwLWFybXY3bC1uZW9uLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uZDQyZmExOWEwN2ExCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9xdDYtd2ViZW5n aW5lL3BhdGNoZXMvMDcwMC1hcm12N2wtbmVvbi5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2tpYS9CVUlMRC5nbgorKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3NraWEvQlVJTEQuZ24KK0BAIC04MDAsNyArODAwLDYgQEAgc2tpYV9zb3VyY2Vf c2V0KCJza2lhX29wdHMiKSB7CisgICAgICAgICAjIFJvb3QgYnVpbGQgY29uZmlnIHNldHMgLW1m cHU9JGFybV9mcHUsIHdoaWNoIHdlIGV4cGVjdCB0byBiZSBuZW9uCisgICAgICAgICAjIHdoZW4g cnVubmluZyB0aGlzLgorICAgICAgICAgaWYgKCFhcm1fdXNlX25lb24pIHsKKy0gICAgICAgICAg Y29uZmlncyAtPSBbICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjb21waWxlcl9hcm1fZnB1IiBd CisgICAgICAgICAgIGNmbGFncyArPSBbICItbWZwdT1uZW9uIiBdCisgICAgICAgICB9CisgICAg ICAgfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MC1jaHJv bWl1bS1tdXNsLWNyb3NzLW5vLWFzbV9wdHJhY2VfaC5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVu Z2luZS9wYXRjaGVzLzA3NTAtY2hyb21pdW0tbXVzbC1jcm9zcy1uby1hc21fcHRyYWNlX2gucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zY2YxMzI5MDhhZjQK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wNzUwLWNo cm9taXVtLW11c2wtY3Jvc3Mtbm8tYXNtX3B0cmFjZV9oLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyLmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5j YworQEAgLTM4LDcgKzM4LDEyIEBACisgCisgI2luY2x1ZGUgImNsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5oIgorIAorKyNpZiBkZWZpbmVkKF9fR0xJQkNf XykKKyAjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKyNlbHNlCisrLyogRm9yIGFybSotbXVzbCB0 aGlzIGRlZmluaXRpb24gaXMgbWlzc2luZyAqLworKyNkZWZpbmUgQVJNX3NwIHVyZWdzWzEzXQor KyNlbmRpZgorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8ZXJybm8uaD4KKyAjaW5j bHVkZSA8ZmNudGwuaD4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9j b3JlX2R1bXBlci5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2Nv cmVfZHVtcGVyLmNjCitAQCAtMzIsNyArMzIsMTIgQEAKKyAKKyAjaW5jbHVkZSAiY2xpZW50L2xp bnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5oIgorIAorKyNpZiBkZWZpbmVk KF9fR0xJQkNfXykKKyAjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKyNlbHNlCisrLyogRm9yIGFy bSotbXVzbCB0aGlzIGRlZmluaXRpb24gaXMgbWlzc2luZyAqLworKyNkZWZpbmUgQVJNX3NwIHVy ZWdzWzEzXQorKyNlbmRpZgorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8ZWxmLmg+ CisgI2luY2x1ZGUgPHN0ZGlvLmg+CmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUv cGF0Y2hlcy8wNzUxLWNocm9taXVtLW11c2wtYXJtLXVzZXJfdmZwLnBhdGNoIGIvc3JjcGtncy9x dDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1MS1jaHJvbWl1bS1tdXNsLWFybS11c2VyX3ZmcC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjZlMmQ2MmYzNWVlNgot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA3NTEtY2hy b21pdW0tbXVzbC1hcm0tdXNlcl92ZnAucGF0Y2gKQEAgLTAsMCArMSwyMCBAQAorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGlu dXgvdGhyZWFkX2luZm8uaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAorQEAgLTE3LDYgKzE3 LDE3IEBACisgCisgI2luY2x1ZGUgPHN0ZGludC5oPgorICNpbmNsdWRlIDxzeXMvdXNlci5oPgor KyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisrc3RydWN0IHVzZXJfdmZwIHsKKysJdW5zaWduZWQg bG9uZyBsb25nIGZwcmVnc1szMl07CisrCXVuc2lnbmVkIGxvbmcgZnBzY3I7CisrfTsKKytzdHJ1 Y3QgdXNlcl92ZnBfZXhjIHsKKysJdW5zaWduZWQgbG9uZyBmcGV4YzsKKysJdW5zaWduZWQgbG9u ZyBmcGluc3Q7CisrCXVuc2lnbmVkIGxvbmcgZnBpbnN0MjsKKyt9OworKyNlbmRpZiAvKiAhZGVm aW5lZChfX0dMSUJDX18pICovCisgCisgI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgorIApkaWZmIC0t Z2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1Mi1jaHJvbWl1bS1tdXNsLWFy bS1lbGZfYXV4dl90LnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1Mi1j aHJvbWl1bS1tdXNsLWFybS1lbGZfYXV4dl90LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uNzExMmM4Y2ZkM2ZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDc1Mi1jaHJvbWl1bS1tdXNsLWFybS1lbGZfYXV4dl90 LnBhdGNoCkBAIC0wLDAgKzEsMTggQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9z cmMvYmFzZS9jcHUuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC9zcmMvYmFzZS9j cHUuY2MKK0BAIC0xNjMsNiArMTYzLDE1IEBAIHN0YXRpYyBWOF9JTkxJTkUgdm9pZCBfX2NwdWlk KGludCBjcHVfaW4KKyAKKyAjaWYgVjhfSE9TVF9BUkNIX0FSTSB8fCBWOF9IT1NUX0FSQ0hfQVJN NjQKKyAKKysjaWZuZGVmIF9fR0xJQkNfXworKyNpbmNsdWRlIDxlbGYuaD4KKysjaWZkZWYgX19M UDY0X18KKyt0eXBlZGVmIEVsZjY0X2F1eHZfdCBlbGZfYXV4dl90OworKyNlbHNlCisrdHlwZWRl ZiBFbGYzMl9hdXh2X3QgZWxmX2F1eHZfdDsKKysjZW5kaWYKKysjZW5kaWYKKysKKyBzdGF0aWMg dWludDMyX3QgUmVhZEVMRkhXQ2FwcygpIHsKKyAgIHVpbnQzMl90IHJlc3VsdCA9IDA7CisgI2lm IFY4X0dMSUJDX1BSRVJFUSgyLCAxNikKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2lu ZS9wYXRjaGVzLzA4MDEtY2hyb21pdW0taTY4Ni12YWFwaS1mcGVybWlzc2l2ZS5wYXRjaCBiL3Ny Y3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA4MDEtY2hyb21pdW0taTY4Ni12YWFwaS1mcGVy bWlzc2l2ZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjNk NDA0M2UwM2I4OQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzLzA4MDEtY2hyb21pdW0taTY4Ni12YWFwaS1mcGVybWlzc2l2ZS5wYXRjaApAQCAtMCwwICsx LDI0IEBACistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvZ3B1L3ZhYXBpL0JVSUxE LmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vbWVkaWEvZ3B1L3ZhYXBpL0JVSUxELmdu CitAQCAtMTQsNiArMTQsMTAgQEAgaW1wb3J0KCIvL3VpL2dsL2ZlYXR1cmVzLmduaSIpCisgYXNz ZXJ0KGlzX2xpbnV4IHx8IGlzX2Nocm9tZW9zKQorIGFzc2VydCh1c2VfdmFhcGkpCisgCisrY29u ZmlnKCJ2YWFwaV9wZXJtaXNzaXZlIikgeworKyAgY2ZsYWdzID0gWyAiLWZwZXJtaXNzaXZlIiBd CisrfQorKworIGdlbmVyYXRlX3N0dWJzKCJsaWJ2YV9zdHVicyIpIHsKKyAgIGV4dHJhX2hlYWRl ciA9ICJ2YV9zdHViX2hlYWRlci5mcmFnbWVudCIKKyAgIHNpZ3MgPSBbICJ2YS5zaWdzIiBdCitA QCAtMTM2LDYgKzE0MCwxMCBAQCBzb3VyY2Vfc2V0KCJ2YWFwaSIpIHsKKyAgICAgXQorICAgfQor IAorKyAgaWYgKHRhcmdldF9jcHUgPT0gIng4NiIpIHsKKysgICAgY29uZmlncyArPSBbICI6dmFh cGlfcGVybWlzc2l2ZSIgXQorKyAgfQorKworICAgaWYgKHVzZV94MTEpIHsKKyAgICAgZGVwcyAr PSBbICIvL3VpL2dmeC94IiBdCisgICAgIHNvdXJjZXMgKz0gWwpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMC14eHgtcHBjNjRsZS1saWJ2cHgucGF0Y2ggYi9z cmNwa2dzL3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAwLXh4eC1wcGM2NGxlLWxpYnZweC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjVjOTU2NmI1NmJkNAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDAteHh4 LXBwYzY0bGUtbGlidnB4LnBhdGNoCkBAIC0wLDAgKzEsNjUgQEAKK1VzZXMgZ2VuZXJpYyB0YXJn ZXQgZm9yIG5vdy4gVG8gdXNlIHBwYzY0bGUsIGNoYW5nZSAtLXRhcmdldCB0byBwcGM2NGxlLWdu dQorYW5kIGFkZCAtLWVuYWJsZS12c3gsIGFuZCBjaGFuZ2UgZ2VuZXJpYyB0byBwcGMgZm9yIHRo ZSBydGNkIGhlYWRlci4KKworRnJvbSAxOGU2YzVjNTVjZmFlMGNmYjQ1OGQ4MjEwZDdiYzcwOTM2 MGEwZTkwIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogcTY2IDxkYW5pZWxAb2N0YWZv cmdlLm9yZz4KK0RhdGU6IFdlZCwgOSBTZXAgMjAyMCAxOTowODoyNSArMDIwMAorU3ViamVjdDog W1BBVENIXSBlbmFibGUgZ2VuZXJhdGlvbiBvZiBwcGM2NCBsaWJ2cHggYml0cworCit0aGlzIGRv ZXNuJ3QgdXBkYXRlIHRoZSBnbmkgZmlsZSwgdGhhdCdzIGRvbmUgZnJvbQordGhlIHRlbXBsYXRl IGJ5IHJ1bm5pbmcgdGhlIGFwcHJvcHJpYXRlIHNjcmlwdHMKKy0tLQorIHRoaXJkX3BhcnR5L2xp YnZweC9CVUlMRC5nbiAgICAgICAgfCA0ICsrKysKKyB0aGlyZF9wYXJ0eS9saWJ2cHgvZ2VuZXJh dGVfZ25pLnNoIHwgOSArKysrKysrKysKKyAyIGZpbGVzIGNoYW5nZWQsIDEzIGluc2VydGlvbnMo KykKKworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYnZweC9CVUlM RC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xpYnZweC9CVUlM RC5nbgorQEAgLTQyNCw2ICs0MjQsOCBAQCBzdGF0aWNfbGlicmFyeSgiYnVuZGxlZF9saWJ2cHgi KSB7CisgICAgICAgc291cmNlcyA9IGxpYnZweF9zcmNzX2FybTY0CisgICAgICAgcHVibGljX2Rl cHMgPSBbICI6bGlidnB4X2FybTY0X2hlYWRlcnMiIF0KKyAgICAgfQorKyAgfSBlbHNlIGlmIChj dXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICAgIHNvdXJjZXMgPSBsaWJ2cHhfc3Jjc19wcGM2 NAorICAgfQorIAorICAgY29uZmlncyAtPSBbICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJv bWl1bV9jb2RlIiBdCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGli dnB4L2dlbmVyYXRlX2duaS5zaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2xpYnZweC9nZW5lcmF0ZV9nbmkuc2gKK0BAIC0zNzQsNiArMzc0LDcgQEAgZ2VuX2NvbmZp Z19maWxlcyBsaW51eC9hcm0tbmVvbi1oaWdoYmQgIgorIGdlbl9jb25maWdfZmlsZXMgbGludXgv YXJtNjQtaGlnaGJkICItLXRhcmdldD1hcm12OC1saW51eC1nY2MgJHthbGxfcGxhdGZvcm1zfSAk e0hJR0hCRH0iCisgZ2VuX2NvbmZpZ19maWxlcyBsaW51eC9taXBzZWwgIi0tdGFyZ2V0PW1pcHMz Mi1saW51eC1nY2MgJHthbGxfcGxhdGZvcm1zfSIKKyBnZW5fY29uZmlnX2ZpbGVzIGxpbnV4L21p cHM2NGVsICItLXRhcmdldD1taXBzNjQtbGludXgtZ2NjICR7YWxsX3BsYXRmb3Jtc30iCisrZ2Vu X2NvbmZpZ19maWxlcyBsaW51eC9wcGM2NCAiLS10YXJnZXQ9Z2VuZXJpYy1nbnUgJEhJR0hCRCAk e2FsbF9wbGF0Zm9ybXN9IgorIGdlbl9jb25maWdfZmlsZXMgbGludXgvZ2VuZXJpYyAiLS10YXJn ZXQ9Z2VuZXJpYy1nbnUgJEhJR0hCRCAke2FsbF9wbGF0Zm9ybXN9IgorIGdlbl9jb25maWdfZmls ZXMgd2luL2FybTY0ICItLXRhcmdldD1hcm02NC13aW42NC12czE1ICR7YWxsX3BsYXRmb3Jtc30g JHtISUdIQkR9IgorIGdlbl9jb25maWdfZmlsZXMgd2luL2lhMzIgIi0tdGFyZ2V0PXg4Ni13aW4z Mi12czE0ICR7YWxsX3BsYXRmb3Jtc30gJHt4ODZfcGxhdGZvcm1zfSIKK0BAIC0zOTksNiArNDAw LDcgQEAgbGludF9jb25maWcgbGludXgvYXJtLW5lb24taGlnaGJkCisgbGludF9jb25maWcgbGlu dXgvYXJtNjQtaGlnaGJkCisgbGludF9jb25maWcgbGludXgvbWlwc2VsCisgbGludF9jb25maWcg bGludXgvbWlwczY0ZWwKKytsaW50X2NvbmZpZyBsaW51eC9wcGM2NAorIGxpbnRfY29uZmlnIGxp bnV4L2dlbmVyaWMKKyBsaW50X2NvbmZpZyB3aW4vYXJtNjQKKyBsaW50X2NvbmZpZyB3aW4vaWEz MgorQEAgLTQyOCw2ICs0MzAsNyBAQCBnZW5fcnRjZF9oZWFkZXIgbGludXgvYXJtLW5lb24taGln aGJkIGFyCisgZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L2FybTY0LWhpZ2hiZCBhcm12OAorIGdlbl9y dGNkX2hlYWRlciBsaW51eC9taXBzZWwgbWlwc2VsCisgZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L21p cHM2NGVsIG1pcHM2NGVsCisrZ2VuX3J0Y2RfaGVhZGVyIGxpbnV4L3BwYzY0IGdlbmVyaWMKKyBn ZW5fcnRjZF9oZWFkZXIgbGludXgvZ2VuZXJpYyBnZW5lcmljCisgZ2VuX3J0Y2RfaGVhZGVyIHdp bi9hcm02NCBhcm12OAorIGdlbl9ydGNkX2hlYWRlciB3aW4vaWEzMiB4ODYgIiR7cmVxdWlyZV9z c2UyfSIKK0BAIC01MTMsNiArNTE2LDEyIEBAIGlmIFsgLXogJE9OTFlfQ09ORklHUyBdOyB0aGVu CisgCisgICBlY2hvICJNSVBTNjQgc291cmNlIGxpc3QgaXMgaWRlbnRpY2FsIHRvIE1JUFMgc291 cmNlIGxpc3QuIE5vIG5lZWQgdG8gZ2VuZXJhdGUgaXQuIgorIAorKyAgZWNobyAiR2VuZXJhdGUg cHBjNjQgc291cmNlIGxpc3QuIgorKyAgY29uZmlnPSQocHJpbnRfY29uZmlnX2Jhc2ljIGxpbnV4 L3BwYzY0KQorKyAgbWFrZV9jbGVhbgorKyAgbWFrZSBsaWJ2cHhfc3Jjcy50eHQgdGFyZ2V0PWxp YnMgJGNvbmZpZyA+IC9kZXYvbnVsbAorKyAgY29udmVydF9zcmNzX3RvX3Byb2plY3RfZmlsZXMg bGlidnB4X3NyY3MudHh0IGxpYnZweF9zcmNzX3BwYzY0CisrCisgICBlY2hvICJHZW5lcmF0ZSBO YUNsIHNvdXJjZSBsaXN0LiIKKyAgIGNvbmZpZz0kKHByaW50X2NvbmZpZ19iYXNpYyBuYWNsKQor ICAgbWFrZV9jbGVhbgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMv MDkwMS14eHgtcHBjNjRsZS1zYW5kYm94LWxpbnV4LXN0YXQucGF0Y2ggYi9zcmNwa2dzL3F0Ni13 ZWJlbmdpbmUvcGF0Y2hlcy8wOTAxLXh4eC1wcGM2NGxlLXNhbmRib3gtbGludXgtc3RhdC5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjRiOGU2MzIwNjAxYwot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDEteHh4 LXBwYzY0bGUtc2FuZGJveC1saW51eC1zdGF0LnBhdGNoCkBAIC0wLDAgKzEsMzEgQEAKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4 X3N0YXQuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvbGludXhfc3RhdC5oCitAQCAtMTU1LDYgKzE1NSwyOCBAQCBzdHJ1Y3Qga2VybmVs X3N0YXQgeworICAgdW5zaWduZWQgaW50IF9fdW51c2VkNDsKKyAgIHVuc2lnbmVkIGludCBfX3Vu dXNlZDU7CisgfTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrc3RydWN0IGtlcm5l bF9zdGF0IHsKKysgIHVuc2lnbmVkIGxvbmcJc3RfZGV2OworKyAgdW5zaWduZWQgbG9uZwlzdF9p bm87CisrICB1bnNpZ25lZCBsb25nCXN0X25saW5rOworKyAgdW5zaWduZWQgaW50CXN0X21vZGU7 CisrICB1bnNpZ25lZCBpbnQJc3RfdWlkOworKyAgdW5zaWduZWQgaW50CXN0X2dpZDsKKysgIHVu c2lnbmVkIGxvbmcJc3RfcmRldjsKKysgIGxvbmcJCXN0X3NpemU7CisrICB1bnNpZ25lZCBsb25n CXN0X2Jsa3NpemU7CisrICB1bnNpZ25lZCBsb25nCXN0X2Jsb2NrczsKKysgIHVuc2lnbmVkIGxv bmcJc3RfYXRpbWVfOworKyAgdW5zaWduZWQgbG9uZwlzdF9hdGltZV9uc2VjXzsKKysgIHVuc2ln bmVkIGxvbmcJc3RfbXRpbWVfOworKyAgdW5zaWduZWQgbG9uZwlzdF9tdGltZV9uc2VjXzsKKysg IHVuc2lnbmVkIGxvbmcJc3RfY3RpbWVfOworKyAgdW5zaWduZWQgbG9uZwlzdF9jdGltZV9uc2Vj XzsKKysgIHVuc2lnbmVkIGxvbmcJX191bnVzZWQ0OworKyAgdW5zaWduZWQgbG9uZwlfX3VudXNl ZDU7CisrICB1bnNpZ25lZCBsb25nCV9fdW51c2VkNjsKKyt9OworICNlbmRpZgorIAorICNpZiAh ZGVmaW5lZChBVF9FTVBUWV9QQVRIKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5l L3BhdGNoZXMvMDkwMi14eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoIGIvc3JjcGtncy9xdDYtd2Vi ZW5naW5lL3BhdGNoZXMvMDkwMi14eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzNkNDE1ZTU1ZjY5Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMi14eHgtcHBjNjRsZS1zdXBw b3J0LnBhdGNoCkBAIC0wLDAgKzEsMzU1NiBAQAorY29tbWl0IDJjMDEzYTMxN2IxMTE0ZWY2N2Nk YmJjMzA4MjRiMjg5MDdiOWVhOTQKK0F1dGhvcjogRGFuaWVsIEtvbGVzYSA8ZGFuaWVsQG9jdGFm b3JnZS5vcmc+CitEYXRlOiAgIFdlZCBNYXIgMyAxOTowODoyOSAyMDIxICswMTAwCisKKyAgICBw cGM2NGxlIHN1cHBvcnQKKworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvZmVh dHVyZXMuZ25pCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9mZWF0dXJlcy5n bmkKK0BAIC0xMSw3ICsxMSw4IEBAIGltcG9ydCgiLy9idWlsZC9jb25maWcvbmFjbC9jb25maWcu Z25pIikKKyB1c2Vfc2VjY29tcF9icGYgPSAoaXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNf YW5kcm9pZCkgJiYKKyAgICAgICAgICAgICAgICAgICAoY3VycmVudF9jcHUgPT0gIng4NiIgfHwg Y3VycmVudF9jcHUgPT0gIng2NCIgfHwKKyAgICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUg PT0gImFybSIgfHwgY3VycmVudF9jcHUgPT0gImFybTY0IiB8fAorLSAgICAgICAgICAgICAgICAg ICBjdXJyZW50X2NwdSA9PSAibWlwc2VsIiB8fCBjdXJyZW50X2NwdSA9PSAibWlwczY0ZWwiKQor KyAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAibWlwc2VsIiB8fCBjdXJyZW50X2Nw dSA9PSAibWlwczY0ZWwiIHx8CisrICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJw cGM2NCIpCisgCisgdXNlX3NlY2NvbXBfYnBmID0gdXNlX3NlY2NvbXBfYnBmIHx8IGlzX25hY2xf bm9uc2ZpCisgCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9CVUlM RC5nbgorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvQlVJTEQuZ24K K0BAIC00MzMsNiArNDMzLDggQEAgY29tcG9uZW50KCJzYW5kYm94X3NlcnZpY2VzIikgeworIAor IHNvdXJjZV9zZXQoInNhbmRib3hfc2VydmljZXNfaGVhZGVycyIpIHsKKyAgIHNvdXJjZXMgPSBb CisrICAgICJzeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oIiwKKysgICAgInN5 c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgiLAorICAgICAic3lzdGVtX2hlYWRl cnMvYXJtNjRfbGludXhfc3lzY2FsbHMuaCIsCisgICAgICJzeXN0ZW1faGVhZGVycy9hcm1fbGlu dXhfc3lzY2FsbHMuaCIsCisgICAgICJzeXN0ZW1faGVhZGVycy9hcm1fbGludXhfdWNvbnRleHQu aCIsCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9icGZfZHNsL2xp bnV4X3N5c2NhbGxfcmFuZ2VzLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaAorQEAgLTU2LDYgKzU2LDEzIEBA CisgI2RlZmluZSBNQVhfUFVCTElDX1NZU0NBTEwgX19OUl9zeXNjYWxscworICNkZWZpbmUgTUFY X1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxMCisgCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorKworKyNpbmNsdWRlIDxhc20vdW5pc3RkLmg+CisrI2RlZmluZSBNSU5fU1lTQ0FMTCAw dQorKyNkZWZpbmUgTUFYX1BVQkxJQ19TWVNDQUxMIDM4NnUKKysjZGVmaW5lIE1BWF9TWVNDQUxM IE1BWF9QVUJMSUNfU1lTQ0FMTAorKworICNlbHNlCisgI2Vycm9yICJVbnN1cHBvcnRlZCBhcmNo aXRlY3R1cmUiCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L2JwZl9kc2wvc2VjY29tcF9tYWNyb3MuaAorQEAgLTE2LDYgKzE2LDkg QEAKKyAjaWYgZGVmaW5lZChfX21pcHNfXykKKyAvLyBzeXMvdXNlci5oIGluIGVnbGliYyBtaXNz ZXMgc2l6ZV90IGRlZmluaXRpb24KKyAjaW5jbHVkZSA8c3RkZGVmLmg+CisrI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykKKysvLyBNYW51YWxseSBkZWZp bmUgZ3JlZ190IG9uIHBwYzY0CisrdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgZ3JlZ190Owor ICNlbmRpZgorICNlbmRpZgorIAorQEAgLTM0Niw2ICszNDksNTkgQEAgc3RydWN0IHJlZ3Nfc3Ry dWN0IHsKKyAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3JlZ3MpIChfcmVncykucmVnc1szXQor ICNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNNShfcmVncykgKF9yZWdzKS5yZWdzWzRdCisgI2RlZmlu ZSBTRUNDT01QX1BUX1BBUk02KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbNV0KKysKKysjZWxpZiBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyt0eXBlZGVm IHN0cnVjdCBwdF9yZWdzIHJlZ3Nfc3RydWN0OworKworKyNpZmRlZiBBUkNIX0NQVV9MSVRUTEVf RU5ESUFOCisrI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJDSF9QUEM2NExFCisrI2Vsc2UK KysjZGVmaW5lIFNFQ0NPTVBfQVJDSCBBVURJVF9BUkNIX1BQQzY0CisrI2VuZGlmCisrCisrI2lm ZGVmIF9fR0xJQkNfXworKyNkZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3JlZykgKChfY3R4KS0+ dWNfbWNvbnRleHQucmVncy0+Z3ByW19yZWddKQorKyNlbHNlCisrI2RlZmluZSBTRUNDT01QX1JF RyhfY3R4LCBfcmVnKSAoKChzdHJ1Y3QgcHRfcmVncyAqKShfY3R4KS0+dWNfbWNvbnRleHQucmVn cyktPmdwcltfcmVnXSkKKysjZW5kaWYKKysKKysjZGVmaW5lIFNFQ0NPTVBfUkVTVUxUKF9jdHgp IFNFQ0NPTVBfUkVHKF9jdHgsIDMpCisrI2RlZmluZSBTRUNDT01QX1NZU0NBTEwoX2N0eCkgU0VD Q09NUF9SRUcoX2N0eCwgMCkKKysjaWZkZWYgX19HTElCQ19fCisrI2RlZmluZSBTRUNDT01QX0lQ KF9jdHgpIChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+bmlwCisrI2Vsc2UKKysjZGVmaW5lIFNF Q0NPTVBfSVAoX2N0eCkgKChzdHJ1Y3QgcHRfcmVncyAqKShfY3R4KS0+dWNfbWNvbnRleHQucmVn cyktPm5pcAorKyNlbmRpZgorKyNkZWZpbmUgU0VDQ09NUF9QQVJNMShfY3R4KSBTRUNDT01QX1JF RyhfY3R4LCAzKQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNMihfY3R4KSBTRUNDT01QX1JFRyhfY3R4 LCA0KQorKyNkZWZpbmUgU0VDQ09NUF9QQVJNMyhfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA1KQor KyNkZWZpbmUgU0VDQ09NUF9QQVJNNChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA2KQorKyNkZWZp bmUgU0VDQ09NUF9QQVJNNShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA3KQorKyNkZWZpbmUgU0VD Q09NUF9QQVJNNihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA4KQorKworKyNkZWZpbmUgU0VDQ09N UF9OUl9JRFggKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgbnIpKQorKyNkZWZp bmUgU0VDQ09NUF9BUkNIX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBh cmNoKSkKKysjZGVmaW5lIFNFQ0NPTVBfSVBfTVNCX0lEWCBcCisrICAob2Zmc2V0b2Yoc3RydWN0 IGFyY2hfc2VjY29tcF9kYXRhLCBpbnN0cnVjdGlvbl9wb2ludGVyKSArIDQpCisrI2RlZmluZSBT RUNDT01QX0lQX0xTQl9JRFggXAorKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0 YSwgaW5zdHJ1Y3Rpb25fcG9pbnRlcikgKyAwKQorKyNkZWZpbmUgU0VDQ09NUF9BUkdfTVNCX0lE WChucikgXAorKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJncykgKyA4 ICogKG5yKSArIDQpCisrI2RlZmluZSBTRUNDT01QX0FSR19MU0JfSURYKG5yKSBcCisrICAob2Zm c2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdzKSArIDggKiAobnIpICsgMCkKKysK KysjZGVmaW5lIFNFQ0NPTVBfUFRfUkVTVUxUKF9yZWdzKSAoX3JlZ3MpLmdwclszXQorKyNkZWZp bmUgU0VDQ09NUF9QVF9TWVNDQUxMKF9yZWdzKSAoX3JlZ3MpLmdwclswXQorKyNkZWZpbmUgU0VD Q09NUF9QVF9JUChfcmVncykgKF9yZWdzKS5uaXAKKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTEo X3JlZ3MpIChfcmVncykuZ3ByWzNdCisrI2RlZmluZSBTRUNDT01QX1BUX1BBUk0yKF9yZWdzKSAo X3JlZ3MpLmdwcls0XQorKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMyhfcmVncykgKF9yZWdzKS5n cHJbNV0KKysjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3JlZ3MpIChfcmVncykuZ3ByWzZdCisr I2RlZmluZSBTRUNDT01QX1BUX1BBUk01KF9yZWdzKSAoX3JlZ3MpLmdwcls3XQorKyNkZWZpbmUg U0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5ncHJbOF0KKysKKyAjZWxzZQorICNlcnJv ciBVbnN1cHBvcnRlZCB0YXJnZXQgcGxhdGZvcm0KKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5LmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1o ZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYworQEAgLTkwLDcgKzkwLDcgQEAgYm9vbCBJc0Jhc2Vs aW5lUG9saWN5V2F0Y2hlZChpbnQgc3lzbm8pCisgICAgICAgICAgU3lzY2FsbFNldHM6OklzTnVt YShzeXNubykgfHwKKyAgICAgICAgICBTeXNjYWxsU2V0czo6SXNQcmN0bChzeXNubykgfHwKKyAg ICAgICAgICBTeXNjYWxsU2V0czo6SXNQcm9jZXNzR3JvdXBPclNlc3Npb24oc3lzbm8pIHx8Cist I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICAgICAgIFN5c2NhbGxTZXRz OjpJc1NvY2tldENhbGwoc3lzbm8pIHx8CisgI2VuZGlmCitAQCAtMjU4LDcgKzI1OCw3IEBAIFJl c3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGUKKyAgIH0KKyAKKyAjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19f KSB8fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0 X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIGlmIChzeXNubyA9PSBfX05SX21tYXAp CisgICAgIHJldHVybiBSZXN0cmljdE1tYXBGbGFncygpOworICNlbmRpZgorQEAgLTI3OSw3ICsy NzksNyBAQCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlCisgICAgIHJl dHVybiBSZXN0cmljdFByY3RsKCk7CisgCisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQoX19h YXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykKKyAgIGlmIChzeXNubyA9PSBfX05SX3NvY2tldHBhaXIpIHsKKyAgICAgLy8gT25seSBh bGxvdyBBRl9VTklYLCBQRl9VTklYLiBDcmFzaCBpZiBhbnl0aGluZyBlbHNlIGlzIHNlZW4uCisg ICAgIHN0YXRpY19hc3NlcnQoQUZfVU5JWCA9PSBQRl9VTklYLAorQEAgLTM0Myw3ICszNDMsOCBA QCBSZXN1bHRFeHByIEV2YWx1YXRlU3lzY2FsbEltcGwoaW50IGZzX2RlCisgICB9CisgCisgI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IFwKKy0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisrICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCisrICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIGlmIChTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKHN5 c25vKSkKKyAgICAgcmV0dXJuIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKTsKKyAjZW5kaWYK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91 bml0dGVzdC5jYworQEAgLTMxNyw3ICszMTcsNyBAQCBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05S X3N5c2luZm8pCisgVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl9zeXNsb2cpCisgVEVTVF9CQVNF TElORV9TSUdTWVMoX19OUl90aW1lcl9jcmVhdGUpCisgCistI2lmICFkZWZpbmVkKF9fYWFyY2g2 NF9fKQorKyNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykgJiYgIWRlZmluZWQoX19wb3dlcnBjNjRf XykKKyBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX2lub3RpZnlfaW5pdCkKKyBURVNUX0JBU0VM SU5FX1NJR1NZUyhfX05SX3ZzZXJ2ZXIpCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVy c19yZXN0cmljdGlvbnMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5j YworQEAgLTQwLDYgKzQwLDcgQEAKKyAjaW5jbHVkZSA8c3lzL3B0cmFjZS5oPgorICNpZiAoZGVm aW5lZChPU19MSU5VWCkgfHwgQlVJTERGTEFHKElTX0NIUk9NRU9TX0xBQ1JPUykpICYmIFwKKyAg ICAgIWRlZmluZWQoX19hcm1fXykgJiYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICAgICAgICAg ICBcCisrICAgICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICAgICAhZGVmaW5lZChQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBKQorIC8vIEFs c28gaW5jbHVkZSBhc20vcHRyYWNlLWFiaS5oIHNpbmNlIHB0cmFjZS5oIGluIG9sZGVyIGxpYmMg KGZvciBpbnN0YW5jZQorIC8vIHRoZSBvbmUgaW4gVWJ1bnR1IDE2LjA0IExUUykgaXMgbWlzc2lu ZyBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBLgorQEAgLTQ5LDYgKzUwLDExIEBACisgI2VuZGlmCisg I2VuZGlmICAvLyAhT1NfTkFDTF9OT05TRkkKKyAKKysvLyBPbiBQUEM2NCwgVENHRVRTIGlzIGRl ZmluZWQgaW4gdGVybXMgb2Ygc3RydWN0IHRlcm1pb3MsIHNvIHdlIG11c3QgaW5jbHVkZSB0ZXJt aW9zLmgKKysjaWZkZWYgX19wb3dlcnBjNjRfXworKyNpbmNsdWRlIDx0ZXJtaW9zLmg+CisrI2Vu ZGlmCisrCisgI2lmIGRlZmluZWQoT1NfQU5EUk9JRCkKKyAKKyAjaWYgIWRlZmluZWQoRl9EVVBG RF9DTE9FWEVDKQorQEAgLTEwNiw2ICsxMTIsMTQgQEAgaW5saW5lIGJvb2wgSXNBcmNoaXRlY3R1 cmVNaXBzKCkgeworICNlbmRpZgorIH0KKyAKKytpbmxpbmUgYm9vbCBJc0FyY2hpdGVjdHVyZVBQ QzY0KCkgeworKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICByZXR1cm4gdHJ1ZTsKKysj ZWxzZQorKyAgcmV0dXJuIGZhbHNlOworKyNlbmRpZgorK30KKysKKyAvLyBVYnVudHUncyB2ZXJz aW9uIG9mIGdsaWJjIGhhcyBhIHJhY2UgY29uZGl0aW9uIGluIHNlbV9wb3N0IHRoYXQgY2FuIGNh dXNlCisgLy8gaXQgdG8gY2FsbCBmdXRleCgyKSB3aXRoIGJvZ3VzIG9wIGFyZ3VtZW50cy4gVG8g d29ya2Fyb3VuZCB0aGlzLCB3ZSBuZWVkCisgLy8gdG8gYWxsb3cgdGhvc2UgZnV0ZXgoMikgY2Fs bHMgdG8gZmFpbCB3aXRoIEVJTlZBTCwgaW5zdGVhZCBvZiBjcmFzaGluZyB0aGUKK0BAIC0yNzAs NiArMjg0LDggQEAgUmVzdWx0RXhwciBSZXN0cmljdEZjbnRsQ29tbWFuZHMoKSB7CisgICB1aW50 NjRfdCBrT0xhcmdlRmlsZUZsYWcgPSBPX0xBUkdFRklMRTsKKyAgIGlmIChJc0FyY2hpdGVjdHVy ZVg4Nl82NCgpIHx8IElzQXJjaGl0ZWN0dXJlSTM4NigpIHx8IElzQXJjaGl0ZWN0dXJlTWlwcygp KQorICAgICBrT0xhcmdlRmlsZUZsYWcgPSAwMTAwMDAwOworKyAgZWxzZSBpZiAoSXNBcmNoaXRl Y3R1cmVQUEM2NCgpKQorKyAgICBrT0xhcmdlRmlsZUZsYWcgPSAwMjAwMDAwOworIAorICAgY29u c3QgQXJnPGludD4gY21kKDEpOworICAgY29uc3QgQXJnPGxvbmc+IGxvbmdfYXJnKDIpOworQEAg LTI4Nyw3ICszMDMsMTYgQEAgUmVzdWx0RXhwciBSZXN0cmljdEZjbnRsQ29tbWFuZHMoKSB7Cisg ICAgICAgICAgICAgICBGX1NFVExLVywKKyAgICAgICAgICAgICAgIEZfR0VUTEssCisgICAgICAg ICAgICAgICBGX0RVUEZELAorLSAgICAgICAgICAgICAgRl9EVVBGRF9DTE9FWEVDKSwKKysgICAg ICAgICAgICAgIEZfRFVQRkRfQ0xPRVhFQworKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisr Ly8gT24gUFBDNjQsIEZfU0VUTEssIEZfR0VUTEssIEZfU0VUTEtXIGFyZSBkZWZpbmVkIGFzIHRo ZSA2NC1iaXQgdmFyaWFudHMKKysvLyBidXQgZ2xpYmMgd2lsbCBzb21ldGltZXMgc3RpbGwgdXNl IHRoZSAzMi1iaXQgdmVyc2lvbnMuIEFsbG93IGJvdGguCisrICAgICAgICAgICAgICAsCisrICAg ICAgICAgICAgICA1LCAvKiBGX0dFVExLICgzMikgKi8KKysgICAgICAgICAgICAgIDYsIC8qIEZf U0VUTEsgKDMyKSAqLworKyAgICAgICAgICAgICAgNyAgLyogRl9TRVRMS1cgKDMyKSAqLworKyNl bmRpZgorKwkgICAgICksCisgICAgICAgICAgICAgIEFsbG93KCkpCisgICAgICAgLkNhc2UoRl9T RVRGTCwKKyAgICAgICAgICAgICBJZigobG9uZ19hcmcgJiB+a0FsbG93ZWRNYXNrKSA9PSAwLCBB bGxvdygpKS5FbHNlKENyYXNoU0lHU1lTKCkpKQorQEAgLTI5Nyw3ICszMjIsNyBAQCBSZXN1bHRF eHByIFJlc3RyaWN0RmNudGxDb21tYW5kcygpIHsKKyAgIC8vIGNsYW5nLWZvcm1hdCBvbgorIH0K KyAKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVm aW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorIFJlc3VsdEV4cHIgUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpIHsKKyAgIC8vIFVu Zm9ydHVuYXRlbHksIHdlIGFyZSB1bmFibGUgdG8gcmVzdHJpY3QgdGhlIGZpcnN0IHBhcmFtZXRl ciB0bworICAgLy8gc29ja2V0cGFpcigyKS4gV2hpbHN0IGluaXRpYWxseSBzb3VuZGluZyBiYWQs IGl0J3Mgbm90ZXdvcnRoeSB0aGF0IHZlcnkKK0BAIC00NTQsNyArNDc5LDcgQEAgUmVzdWx0RXhw ciBSZXN0cmljdFB0cmFjZSgpIHsKKyAjZW5kaWYKKyAgIHJldHVybiBTd2l0Y2gocmVxdWVzdCkK KyAgICAgICAuQ0FTRVMoKAorLSNpZiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgIWRlZmlu ZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgICAgICAgICAg ICAgICBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX0dFVEZQUkVHUywKKyAjaWYgZGVmaW5lZChUUkFD RV9HRVRfVEhSRUFEX0FSRUEpCisgICAgICAgICAgICAgICAgICBQVFJBQ0VfR0VUX1RIUkVBRF9B UkVBLAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmgKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2Fs bF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5oCitAQCAtNDksNyArNDksNyBAQCBTQU5EQk9YX0VY UE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJlc3RyCisgLy8gT19OT05CTE9DSyB8IE9fU1lOQyB8 IE9fTEFSR0VGSUxFIHwgT19DTE9FWEVDIHwgT19OT0FUSU1FLgorIFNBTkRCT1hfRVhQT1JUIGJw Zl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJpY3RGY250bENvbW1hbmRzKCk7CisgCistI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAvLyBSZXN0 cmljdCBzb2NrZXRjYWxsKDIpIHRvIG9ubHkgYWxsb3cgc29ja2V0cGFpcigyKSwgc2VuZCgyKSwg cmVjdigyKSwKKyAvLyBzZW5kdG8oMiksIHJlY3Zmcm9tKDIpLCBzaHV0ZG93bigyKSwgc2VuZG1z ZygyKSBhbmQgcmVjdm1zZygyKS4KKyBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHBy IFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKTsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJz L3N5c2NhbGxfc2V0cy5jYworQEAgLTI4LDcgKzI4LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNL aWxsKGludCBzeXNubykgeworIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldHRpbWUoaW50 IHN5c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9nZXR0aW1lb2Zk YXk6CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgXAor KyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3RpbWU6CisgI2Vu ZGlmCitAQCAtNTEsMTIgKzUxLDEyIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldHRp bWUoaW50IHMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBmaWx0ZXJl ZCBieSBSZXN0cmljdENsb2NrSUQoKS4KKyAgICAgY2FzZSBfX05SX2Nsb2NrX25hbm9zbGVlcF90 aW1lNjQ6ICAvLyBQYXJhbWV0ZXJzIGZpbHRlcmVkIGJ5IFJlc3RyaWN0Q2xvY2tJRCgpLgorICNl bmRpZgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05S X2Z0aW1lOiAgLy8gT2Jzb2xldGUuCisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9zZXR0aW1lb2Zk YXk6ICAvLyBQcml2aWxlZ2VkLgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBcCisrI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK KyAgICAgY2FzZSBfX05SX3N0aW1lOgorICNlbmRpZgorQEAgLTEzNSw3ICsxMzUsNyBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vCisgICAgIGNhc2UgX19OUl9mYWNj ZXNzYXQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAgICAgY2FzZSBfX05SX2ZjaG1v ZGF0OgorICAgICBjYXNlIF9fTlJfZmNob3duYXQ6ICAvLyBTaG91bGQgYmUgY2FsbGVkIGNob3du YXQgPworLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pCisr I2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfbmV3ZnN0YXRhdDogIC8vIGZzdGF0YXQo KS4gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisgI2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ZGVmaW5lZChfX2FybV9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorQEAgLTE1NCw3ICsxNTQsNyBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vCisgICAgIGNhc2UgX19OUl9tZW1m ZF9jcmVhdGU6CisgICAgIGNhc2UgX19OUl9ta2RpcmF0OgorICAgICBjYXNlIF9fTlJfbWtub2Rh dDoKKy0jaWYgZGVmaW5lZChfX2kzODZfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfb2xkbHN0YXQ6CisgICAgIGNhc2Ug X19OUl9vbGRzdGF0OgorICNlbmRpZgorQEAgLTE2Nyw3ICsxNjcsNyBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vCisgICAgIGNhc2UgX19OUl9zdGF0NjQ6CisgI2Vu ZGlmCisgICAgIGNhc2UgX19OUl9zdGF0ZnM6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4K Ky0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRl ZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfc3RhdGZzNjQ6CisgI2VuZGlmCitA QCAtMTc5LDcgKzE3OSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzRmlsZVN5c3RlbShpbnQgc3lz bm8KKyAgICAgY2FzZSBfX05SX3RydW5jYXRlNjQ6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl91 bmxpbmthdDoKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorICAgICBjYXNlIF9fTlJfdXRpbWU6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl91 dGltZW5zYXQ6ICAvLyBOZXcuCitAQCAtMjA0LDcgKzIwNSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6 OklzQWxsb3dlZEZpbGVTeXN0ZW1BY2MKKyAjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKKyAv LyBUT0RPKGpsbik6IHRoZXNlIHNob3VsZCBiZSBkZW5pZWQgZ3JhY2VmdWxseSBhcyB3ZWxsICht b3ZlZCBiZWxvdykuCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2ZhZHZpc2U2NDogIC8vIEVQRVJNIG5vdCBhIHZh bGlkIGVycm5vLgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKQorQEAgLTIxNiwxMiAr MjE4LDEyIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEZpbGVTeXN0ZW1BY2MKKyAgICAg Y2FzZSBfX05SX2ZkYXRhc3luYzogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICAgICBj YXNlIF9fTlJfZmxvY2s6ICAgICAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCisgICAgIGNh c2UgX19OUl9mc3RhdGZzOiAgICAvLyBHaXZlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB3aG9sZSBm aWxlc3lzdGVtLgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8 IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9mc3RhdGZzNjQ6 CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9mc3luYzogIC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVy cm5vLgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9vbGRmc3RhdDoKKyAjZW5kaWYK KyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCitAQCAtMjI5LDYgKzIzMSw4IEBAIGJvb2wgU3lzY2FsbFNldHM6Oklz QWxsb3dlZEZpbGVTeXN0ZW1BY2MKKyAgICAgY2FzZSBfX05SX3N5bmNfZmlsZV9yYW5nZTogIC8v IEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgorICNlbGlmIGRlZmluZWQoX19hcm1fXykKKyAgICAg Y2FzZSBfX05SX2FybV9zeW5jX2ZpbGVfcmFuZ2U6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJu by4KKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgIGNhc2UgX19OUl9zeW5jX2Zp bGVfcmFuZ2UyOiAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZW5kaWYKKyAgICAgZGVm YXVsdDoKKyAgICAgICByZXR1cm4gZmFsc2U7CitAQCAtMjQ4LDcgKzI1Miw3IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzRGVuaWVkRmlsZVN5c3RlbUFjY2UKKyAgICAgY2FzZSBfX05SX2dldGRlbnRz OiAgICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKyAjZW5kaWYKKyAgICAgY2FzZSBfX05S X2dldGRlbnRzNjQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KKy0jaWYgZGVmaW5lZChf X2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJw YzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9yZWFkZGlyOgorICNlbmRpZgor QEAgLTI5MCw3ICsyOTQsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0dldFNpbXBsZUlkKGludCBz eXNuCisgYm9vbCBTeXNjYWxsU2V0czo6SXNQcm9jZXNzUHJpdmlsZWdlQ2hhbmdlKGludCBzeXNu bykgeworICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJfY2Fwc2V0OgorLSNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCisrI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor ICAgICBjYXNlIF9fTlJfaW9wZXJtOiAgLy8gSW50ZWwgcHJpdmlsZWdlLgorICAgICBjYXNlIF9f TlJfaW9wbDogICAgLy8gSW50ZWwgcHJpdmlsZWdlLgorICNlbmRpZgorQEAgLTM0MCw3ICszNDQs NyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5kbGluCisgICAgIGNhc2Ug X19OUl9ydF9zaWdwcm9jbWFzazoKKyAgICAgY2FzZSBfX05SX3J0X3NpZ3JldHVybjoKKyAgICAg Y2FzZSBfX05SX3J0X3NpZ3RpbWVkd2FpdDoKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19h cm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNl IF9fTlJfcnRfc2lndGltZWR3YWl0X3RpbWU2NDoKKyAgICAgY2FzZSBfX05SX3NpZ2FjdGlvbjoK K0BAIC0zNTcsNyArMzYxLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkU2lnbmFsSGFu ZGxpbgorICAgICBjYXNlIF9fTlJfc2lnbmFsZmQ6CisgI2VuZGlmCisgICAgIGNhc2UgX19OUl9z aWduYWxmZDQ6CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg XAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQo X19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAgICAgY2FzZSBfX05SX3NpZ3BlbmRpbmc6 CisgICAgIGNhc2UgX19OUl9zaWdzdXNwZW5kOgorQEAgLTM4Miw3ICszODYsNyBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc0FsbG93ZWRPcGVyYXRpb25PbkZkCisgI2VuZGlmCisgICAgIGNhc2UgX19O Ul9kdXAzOgorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg ZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQorKyAgICBk ZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2Ug X19OUl9zaHV0ZG93bjoKKyAjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKK0BAIC00MTYsNyAr NDIwLDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0TworICAgICBj YXNlIF9fTlJfbWVtYmFycmllcjoKKyAgICAgY2FzZSBfX05SX3dhaXQ0OgorICAgICBjYXNlIF9f TlJfd2FpdGlkOgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKQorKyNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl93YWl0cGlkOgorICNl bmRpZgorICNpZiAhZGVmaW5lZChfX0dMSUJDX18pCitAQCAtNDM4LDcgKzQ0Miw3IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE8KKyAgICAgY2FzZSBfX05SX3NldF90 aWRfYWRkcmVzczoKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3Vuc2hhcmU6CistI2lmICFkZWZp bmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChfX2FhcmNoNjRfXykKKysjaWYgIWRlZmluZWQoX19t aXBzX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICAgIGNhc2UgX19OUl92Zm9yazoKKyAjZW5kaWYKKyAgICAgZGVmYXVsdDoKK0BAIC00OTEs NyArNDk1LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0T3JNb2RpZnlTbworICAg ICAgIHJldHVybiB0cnVlOworICAgICBkZWZhdWx0OgorICNpZiBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKQorKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9zb2NrZXRwYWlyOiAgLy8gV2Ugd2lsbCB3YW50 IHRvIGluc3BlY3QgaXRzIGFyZ3VtZW50LgorICNlbmRpZgorICAgICAgIHJldHVybiBmYWxzZTsK K0BAIC01MDEsNyArNTA1LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2V0T3JNb2Rp ZnlTbworIGJvb2wgU3lzY2FsbFNldHM6OklzRGVuaWVkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5 c25vKSB7CisgICBzd2l0Y2ggKHN5c25vKSB7CisgI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwg ZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmluZWQo X19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dl cnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2FjY2VwdDoKKyAgICAgY2FzZSBfX05SX2FjY2VwdDQ6 CisgICAgIGNhc2UgX19OUl9iaW5kOgorQEAgLTUxNSw3ICs1MTksNyBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0RlbmllZEdldE9yTW9kaWZ5U29jCisgICB9CisgfQorIAorLSNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBcCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19wb3dlcnBj NjRfXykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKKyAvLyBCaWcgbXVsdGlwbGV4aW5nIHN5c3RlbSBjYWxsIGZv ciBzb2NrZXRzLgorIGJvb2wgU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChpbnQgc3lzbm8pIHsK K0BAIC01MzAsNyArNTM0LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKGludCBz eXNubworIH0KKyAjZW5kaWYKKyAKKy0jaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKKyBib29sIFN5c2NhbGxTZXRzOjpJc05ldHdvcmtTb2NrZXRJbmZv cm1hdGlvbihpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAgY2FzZSBfX05S X2dldHBlZXJuYW1lOgorQEAgLTU1OCw3ICs1NjMsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0Fs bG93ZWRBZGRyZXNzU3BhY2VBCisgICAgIGNhc2UgX19OUl9taW5jb3JlOgorICAgICBjYXNlIF9f TlJfbWxvY2thbGw6CisgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQor KyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAg IGNhc2UgX19OUl9tbWFwOgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IFwKK0BAIC01ODksNyArNTk0LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNBbGxvd2VkQWRkcmVzc1NwYWNlQQorIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdlbmVy YWxJbyhpbnQgc3lzbm8pIHsKKyAgIHN3aXRjaCAoc3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX2xz ZWVrOgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKysj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRl ZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9fbGxzZWVrOgorICNlbmRp ZgorQEAgLTYwOSwyNyArNjE0LDI3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdlbmVy YWxJbyhpbnQKKyAgICAgY2FzZSBfX05SX3JlYWQ6CisgICAgIGNhc2UgX19OUl9yZWFkdjoKKyAg ICAgY2FzZSBfX05SX3ByZWFkNjQ6CistI2lmIGRlZmluZWQoX19hcm1fXykgfHwgXAorKyNpZiBk ZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK KyAgICAgY2FzZSBfX05SX3JlY3Y6CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX194ODZfNjRfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCistICAgIGRlZmlu ZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX3JlY3Zmcm9tOiAgLy8gQ291bGQgc3BlY2lmeSBz b3VyY2UuCisgICAgIGNhc2UgX19OUl9yZWN2bXNnOiAgIC8vIENvdWxkIHNwZWNpZnkgc291cmNl LgorICNlbmRpZgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p CisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfc2VsZWN0OgorICNlbmRpZgorLSNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18p CisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChf X21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfX25ld3Nl bGVjdDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2FybV9fKSB8fCBcCisrI2lmIGRlZmluZWQo X19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBj YXNlIF9fTlJfc2VuZDoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZp bmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2Fh cmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorICAgICBjYXNlIF9fTlJfc2VuZG1zZzogIC8vIENvdWxkIHNwZWNpZnkgZGVzdGluYXRp b24uCisgICAgIGNhc2UgX19OUl9zZW5kdG86ICAgLy8gQ291bGQgc3BlY2lmeSBkZXN0aW5hdGlv bi4KKyAjZW5kaWYKK0BAIC02ODQsNyArNjg5LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxv d2VkQmFzaWNTY2hlZHVsZQorICAgICBjYXNlIF9fTlJfbmFub3NsZWVwOgorICAgICAgIHJldHVy biB0cnVlOworICAgICBjYXNlIF9fTlJfZ2V0cHJpb3JpdHk6CistI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykgfHwgXAorICAgICAoZGVm aW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkK KyAgICAgY2FzZSBfX05SX25pY2U6CisgI2VuZGlmCitAQCAtNjk2LDcgKzcwMSw3IEBAIGJvb2wg U3lzY2FsbFNldHM6OklzQWxsb3dlZEJhc2ljU2NoZWR1bGUKKyAKKyBib29sIFN5c2NhbGxTZXRz OjpJc0FkbWluT3BlcmF0aW9uKGludCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworLSNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKysjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p IHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl9iZGZsdXNoOgorICNlbmRpZgorQEAgLTcx Myw3ICs3MTgsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FkbWluT3BlcmF0aW9uKGludCBzCisg CisgYm9vbCBTeXNjYWxsU2V0czo6SXNLZXJuZWxNb2R1bGUoaW50IHN5c25vKSB7CisgICBzd2l0 Y2ggKHN5c25vKSB7CistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCisrICAgIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2NyZWF0ZV9tb2R1bGU6CisgICAgIGNhc2UgX19O Ul9nZXRfa2VybmVsX3N5bXM6ICAvLyBTaG91bGQgRU5PU1lTLgorICAgICBjYXNlIF9fTlJfcXVl cnlfbW9kdWxlOgorQEAgLTc0NSw3ICs3NTEsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0ZzQ29u dHJvbChpbnQgc3lzbm8pCisgICAgIGNhc2UgX19OUl9xdW90YWN0bDoKKyAgICAgY2FzZSBfX05S X3N3YXBvZmY6CisgICAgIGNhc2UgX19OUl9zd2Fwb246CistI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8 fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9fTlJfdW1vdW50OgorICNlbmRpZgorQEAgLTc2Miw3 ICs3NjgsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc051bWEoaW50IHN5c25vKSB7CisgICAgIGNh c2UgX19OUl9nZXRjcHU6CisgICAgIGNhc2UgX19OUl9tYmluZDoKKyAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCist ICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX21pZ3JhdGVfcGFnZXM6CisgI2Vu ZGlmCisgICAgIGNhc2UgX19OUl9tb3ZlX3BhZ2VzOgorQEAgLTc5NywxMyArODAzLDEzIEBAIGJv b2wgU3lzY2FsbFNldHM6OklzR2xvYmFsUHJvY2Vzc0Vudmlyb24KKyAgIHN3aXRjaCAoc3lzbm8p IHsKKyAgICAgY2FzZSBfX05SX2FjY3Q6ICAvLyBQcml2aWxlZ2VkLgorICNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwK Ky0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwg ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfZ2V0cmxpbWl0OgorICNlbmRp ZgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pCisrI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQorICAgICBjYXNlIF9fTlJfdWdldHJsaW1pdDoKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgXAorKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpCisgICAgIGNhc2UgX19OUl91bGltaXQ6CisgI2VuZGlmCitAQCAt ODM4LDcgKzg0NCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2xvYmFsU3lzdGVtU3RhdHVzKGkK KyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3N5c2luZm86CisgICAgIGNhc2UgX19OUl91bmFtZToK Ky0jaWYgZGVmaW5lZChfX2kzODZfXykKKysjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfb2xkdW5hbWU6CisgICAgIGNhc2UgX19O Ul9vbGRvbGR1bmFtZToKKyAjZW5kaWYKK0BAIC05MDQsOCArOTEwLDE2IEBAIGJvb2wgU3lzY2Fs bFNldHM6OklzU3lzdGVtVlNlbWFwaG9yZXMoaW4KKyB9CisgI2VuZGlmCisgCisrLyogc2hpdHR5 IGhhY2sgYXJvdW5kIFZvaWQncyA0LjE5IGtlcm5lbCBoZWFkZXJzIG1pc3NpbmcgdGhvc2UgbnVt YmVycyAqLworKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmICFkZWZpbmVkKF9fTlJfc2ht Z2V0KQorKyNkZWZpbmUgX19OUl9zaG1nZXQgMzk1CisrI2RlZmluZSBfX05SX3NobWN0bCAzOTYK KysjZGVmaW5lIF9fTlJfc2htYXQgMzk3CisrI2RlZmluZSBfX05SX3NobWR0IDM5OAorKyNlbmRp ZgorKworICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRl ZmluZWQoX19hcm1fXykgfHwgXAorLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorKyAgICBkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9D UFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfNjRfQklUUykpCisgLy8gVGhlc2Ug Z2l2ZSBhIGxvdCBvZiBhbWJpZW50IGF1dGhvcml0eSBhbmQgYnlwYXNzIHRoZSBzZXR1aWQgc2Fu ZGJveC4KKyBib29sIFN5c2NhbGxTZXRzOjpJc1N5c3RlbVZTaGFyZWRNZW1vcnkoaW50IHN5c25v KSB7CitAQCAtOTM2LDcgKzk1MCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVk1lc3Nh Z2VRdWV1ZSgKKyB9CisgI2VuZGlmCisgCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKysj aWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAg IChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJ VFMpKQorIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwuCisgYm9vbCBT eXNjYWxsU2V0czo6SXNTeXN0ZW1WSXBjKGludCBzeXNubykgeworQEAgLTk1Niw3ICs5NzAsNyBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FueVN5c3RlbVYoaW50IHN5c25vCisgICAgIChkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzY0X0JJVFMpKQorICAg cmV0dXJuIElzU3lzdGVtVk1lc3NhZ2VRdWV1ZShzeXNubykgfHwgSXNTeXN0ZW1WU2VtYXBob3Jl cyhzeXNubykgfHwKKyAgICAgICAgICBJc1N5c3RlbVZTaGFyZWRNZW1vcnkoc3lzbm8pOworLSNl bGlmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKysjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICByZXR1cm4gSXNTeXN0ZW1W SXBjKHN5c25vKTsKKyAjZW5kaWYKK0BAIC0xMDE0LDcgKzEwMjgsOCBAQCBib29sIFN5c2NhbGxT ZXRzOjpJc0ZhTm90aWZ5KGludCBzeXNubykKKyBib29sIFN5c2NhbGxTZXRzOjpJc1RpbWVyKGlu dCBzeXNubykgeworICAgc3dpdGNoIChzeXNubykgeworICAgICBjYXNlIF9fTlJfZ2V0aXRpbWVy OgorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmlu ZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICAgIGNhc2UgX19OUl9hbGFybToKKyAjZW5kaWYKKyAgICAgY2FzZSBfX05SX3NldGl0aW1l cjoKK0BAIC0xMDk2LDE3ICsxMTExLDIwIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTWlzYyhpbnQg c3lzbm8pIHsKKyAgICAgY2FzZSBfX05SX3N5bmNmczoKKyAgICAgY2FzZSBfX05SX3ZoYW5ndXA6 CisgLy8gVGhlIHN5c3RlbSBjYWxscyBiZWxvdyBhcmUgbm90IGltcGxlbWVudGVkLgorLSNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBz X18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNh c2UgX19OUl9hZnNfc3lzY2FsbDoKKyAjZW5kaWYKKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg XAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor ICAgICBjYXNlIF9fTlJfYnJlYWs6CisgI2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8 IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykKKysjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBc CisrICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgICAgY2FzZSBfX05SX2dldHBtc2c6Cisg I2VuZGlmCistI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKKysjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCisgICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQorICAgICBjYXNlIF9f TlJfZ3R0eToKKyAgICAgY2FzZSBfX05SX2lkbGU6CitAQCAtMTExNSwyMCArMTEzMywyMSBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc01pc2MoaW50IHN5c25vKSB7CisgICAgIGNhc2UgX19OUl9wcm9m OgorICAgICBjYXNlIF9fTlJfcHJvZmlsOgorICNlbmRpZgorLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykg fHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICAgIGNhc2UgX19OUl9wdXRwbXNn OgorICNlbmRpZgorICNpZiBkZWZpbmVkKF9feDg2XzY0X18pCisgICAgIGNhc2UgX19OUl9zZWN1 cml0eToKKyAjZW5kaWYKKy0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAorKyNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pIHx8IFwKKyAgICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCisgICAg IGNhc2UgX19OUl9zdHR5OgorICNlbmRpZgorLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pCisrI2lm IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNl IF9fTlJfdHV4Y2FsbDoKKyAjZW5kaWYKKy0jaWYgIWRlZmluZWQoX19hYXJjaDY0X18pCisrI2lm ICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBj YXNlIF9fTlJfdnNlcnZlcjoKKyAjZW5kaWYKKyAgICAgICByZXR1cm4gdHJ1ZTsKKy0tLSBhL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lz Y2FsbF9zZXRzLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmgKK0BAIC00MywxMyArNDMsMTQgQEAgY2xh c3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgeworICAgc3RhdGljIGJvb2wgSXNEZW5pZWRH ZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pOworIAorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBcCistICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKQorKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVm aW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAorKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisgICAvLyBCaWcgbXVsdGlwbGV4aW5nIHN5c3RlbSBjYWxsIGZvciBzb2NrZXRzLgorICAgc3Rh dGljIGJvb2wgSXNTb2NrZXRDYWxsKGludCBzeXNubyk7CisgI2VuZGlmCisgCisgI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8 fCBcCistICAgIGRlZmluZWQoX19hYXJjaDY0X18pCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18p IHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyAgIHN0YXRpYyBib29sIElzTmV0d29ya1NvY2tl dEluZm9ybWF0aW9uKGludCBzeXNubyk7CisgI2VuZGlmCisgCitAQCAtNzcsNyArNzgsNyBAQCBj bGFzcyBTQU5EQk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7CisgICBzdGF0aWMgYm9vbCBJc1N5c3Rl bVZTZW1hcGhvcmVzKGludCBzeXNubyk7CisgI2VuZGlmCisgI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCistICAgIGRl ZmluZWQoX19hYXJjaDY0X18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCisrICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykgfHwgXAorICAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV82NF9CSVRTKSkKKyAgIC8vIFRoZXNlIGdpdmUgYSBsb3Qgb2YgYW1iaWVudCBhdXRo b3JpdHkgYW5kIGJ5cGFzcyB0aGUgc2V0dWlkIHNhbmRib3guCisgICBzdGF0aWMgYm9vbCBJc1N5 c3RlbVZTaGFyZWRNZW1vcnkoaW50IHN5c25vKTsKK0BAIC04OSw3ICs5MCw4IEBAIGNsYXNzIFNB TkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKKyAjZW5kaWYKKyAKKyAjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgXAorLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5l ZChBUkNIX0NQVV8zMl9CSVRTKSkKKysgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp ICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKKysgICAgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQorICAgLy8gQmlnIHN5c3RlbSBWIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbC4KKyAg IHN0YXRpYyBib29sIElzU3lzdGVtVklwYyhpbnQgc3lzbm8pOworICNlbmRpZgorLS0tIGEvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lzY2FsbC5jYwor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvc3lz Y2FsbC5jYworQEAgLTE4LDcgKzE4LDcgQEAgbmFtZXNwYWNlIHNhbmRib3ggeworIG5hbWVzcGFj ZSB7CisgCisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNI X0NQVV9BUk1fRkFNSUxZKSB8fCBcCistICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp CisrICAgIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpIHx8IGRlZmluZWQgKEFSQ0hfQ1BV X1BQQzY0X0ZBTUlMWSkKKyAvLyBOdW1iZXIgdGhhdCdzIG5vdCBjdXJyZW50bHkgdXNlZCBieSBh bnkgTGludXgga2VybmVsIEFCSXMuCisgY29uc3QgaW50IGtJbnZhbGlkU3lzY2FsbE51bWJlciA9 IDB4MzUxZDM7CisgI2Vsc2UKK0BAIC0zMTIsMTAgKzMxMiw1NCBAQCBhc20oLy8gV2UgbmVlZCB0 byBiZSBhYmxlIHRvIHRlbGwgdGhlIGtlCisgICAgICIyOnJldFxuIgorICAgICAiLmNmaV9lbmRw cm9jXG4iCisgICAgICIuc2l6ZSBTeXNjYWxsQXNtLCAuLVN5c2NhbGxBc21cbiIKKysjZWxpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgICIudGV4dFxuIgorKyAgICAiLmFsaWduIDRcbiIK KysgICAgIi50eXBlIFN5c2NhbGxBc20gQGZ1bmN0aW9uXG4iCisrICAgICJTeXNjYWxsQXNtOlxu IgorKyAgICAiLmNmaV9zdGFydHByb2NcbiIKKysKKysgICAgLy8gQ2hlY2sgaWYgcjMgaXMgbmVn YXRpdmUKKysgICAgImNtcGRpIDMsIDBcbiIKKysgICAgImJndCAyZlxuIgorKworKyAgICAvLyBM b2FkIGFkZHJlc3Mgb2YgM2YgaW50byByMyBhbmQgcmV0dXJuCisrICAgICJtZmxyIDEwXG4iCisr ICAgICJibCAxZlxuIgorKyAgICAiMTogbWZsciAzXG4iCisrICAgICJtdGxyIDEwXG4iCisrICAg ICJhZGRpIDMsIDMsIDQqMTNcbiIKKysgICAgImJsclxuIgorKworKyAgICAvLyBMb2FkIGFyZ3Vt ZW50cyBmcm9tIGFycmF5IGludG8gcjMtOAorKyAgICAvLyBzYXZlIHBhcmFtIDMgaW4gcjEwCisr ICAgICIyOlxuIgorKyAgICAibXIgMCwgM1xuIgorKyAgICAibGQgMywgMCg0KVxuIgorKyAgICAi bGQgNSwgMTYoNClcbiIKKysgICAgImxkIDYsIDI0KDQpXG4iCisrICAgICJsZCA3LCAzMig0KVxu IgorKyAgICAibGQgOCwgNDAoNClcbiIKKysgICAgImxkIDQsIDgoNClcbiIKKysgICAgImxpIDks IDBcbiIKKysKKysgICAgLy8gRW50ZXIga2VybmVsCisrICAgICJzY1xuIgorKworKyAgICAvLyBN YWdpYyByZXR1cm4gYWRkcmVzcworKyAgICAiMzpcbiIKKysgICAgLy8gTGlrZSBNSVBTLCBwcGM2 NCByZXR1cm4gdmFsdWVzIGFyZSBhbHdheXMgcG9zaXRpdmUuCisrICAgIC8vIENoZWNrIGZvciBl cnJvciBpbiBjcjAuU08gYW5kIG5lZ2F0ZSB1cG9uIGVycm9yCisrICAgICJiYyA0LCAzLCA0Zlxu IgorKyAgICAibmVnIDMsIDNcbiIKKysgICAgIjQ6IGJsclxuIgorKworKyAgICAiLmNmaV9lbmRw cm9jXG4iCisrICAgICIuc2l6ZSBTeXNjYWxsQXNtLCAuLVN5c2NhbGxBc21cbiIKKyAjZW5kaWYK KyAgICAgKTsgIC8vIGFzbQorIAorLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pCisrI2lmIGRlZmlu ZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorIGV4dGVybiAiQyIgewor IGludHB0cl90IFN5c2NhbGxBc20oaW50cHRyX3QgbnIsIGNvbnN0IGludHB0cl90IGFyZ3NbNl0p OworIH0KK0BAIC00MjksNiArNDczLDggQEAgaW50cHRyX3QgU3lzY2FsbDo6Q2FsbChpbnQgbnIs CisgICAgIHJldCA9IGlub3V0OworICAgfQorIAorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKysgIGludHB0cl90IHJldCA9IFN5c2NhbGxBc20obnIsIGFyZ3MpOworICNlbHNlCisgI2Vy cm9yICJVbmltcGxlbWVudGVkIGFyY2hpdGVjdHVyZSIKKyAjZW5kaWYKK0BAIC00NDUsOCArNDkx LDI2IEBAIHZvaWQgU3lzY2FsbDo6UHV0VmFsdWVJblVjb250ZXh0KGludHB0cl8KKyAgICAgLy8g bmVlZHMgdG8gYmUgY2hhbmdlZCBiYWNrLgorICAgICByZXRfdmFsID0gLXJldF92YWw7CisgICAg IFNFQ0NPTVBfUEFSTTQoY3R4KSA9IDE7CistICB9IGVsc2UKKysgIH0gZWxzZSB7CisgICAgIFNF Q0NPTVBfUEFSTTQoY3R4KSA9IDA7CisrICB9CisrI2VuZGlmCisrI2lmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysgIC8vIFNhbWUgYXMgTUlQUywgbmVlZCB0byBpbnZlcnQgcmV0IGFuZCBzZXQg ZXJyb3IgcmVnaXN0ZXIgKGNyMC5TTykKKysgIGlmIChyZXRfdmFsIDw9IC0xICYmIHJldF92YWwg Pj0gLTQwOTUpIHsKKysgICAgcmV0X3ZhbCA9IC1yZXRfdmFsOworKyNpZmRlZiBfX0dMSUJDX18K KysgICAgY3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3IgfD0gKDEgPDwgMjgpOworKyNlbHNlCisr ICAgICgoc3RydWN0IHB0X3JlZ3MgKiljdHgtPnVjX21jb250ZXh0LnJlZ3MpLT5jY3IgfD0gKDEg PDwgMjgpOworKyNlbmRpZgorKyAgfSBlbHNlIHsKKysjaWZkZWYgX19HTElCQ19fCisrICAgIGN0 eC0+dWNfbWNvbnRleHQucmVncy0+Y2NyICY9IH4oMSA8PCAyOCk7CisrI2Vsc2UKKysgICAgKChz dHJ1Y3QgcHRfcmVncyAqKWN0eC0+dWNfbWNvbnRleHQucmVncyktPmNjciAmPSB+KDEgPDwgMjgp OworKyNlbmRpZgorKyAgfQorICNlbmRpZgorICAgU0VDQ09NUF9SRVNVTFQoY3R4KSA9IHN0YXRp Y19jYXN0PGdyZWdfdD4ocmV0X3ZhbCk7CisgfQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYworQEAgLTIzNiw2ICsyMzYs MjAgQEAgdm9pZCBUcmFwOjpTaWdTeXMoaW50IG5yLCBMaW51eFNpZ0luZm8qCisgICAgICAgU2V0 SXNJblNpZ0hhbmRsZXIoKTsKKyAgICAgfQorIAorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICAgIC8vIE9uIHBwYzY0K2dsaWJjLCBzb21lIHN5c2NhbGxzIHNlZW0gdG8gYWNjaWRlbnRh bGx5IG5lZ2F0ZSB0aGUgZmlyc3QKKysgICAgLy8gcGFyYW1ldGVyIHdoaWNoIGNhdXNlcyBjaGVj a3MgYWdhaW5zdCBpdCB0byBmYWlsLiBGb3Igbm93LCBtYW51YWxseQorKyAgICAvLyBuZWdhdGUg dGhlbSBiYWNrLgorKyAgICAvLyBUT0RPKHNoYXduQGFuYXN0YXMuaW8pOiBpbnZlc3RpZ2F0ZSB0 aGlzIGlzc3VlIGZ1cnRoZXIKKysgICAgYXV0byBuciA9IFNFQ0NPTVBfU1lTQ0FMTChjdHgpOwor KyAgICBpZiAobnIgPT0gX19OUl9vcGVuYXQgfHwgbnIgPT0gX19OUl9ta2RpcmF0IHx8IG5yID09 IF9fTlJfZmFjY2Vzc2F0IHx8IG5yID09IF9fTlJfcmVhZGxpbmthdCB8fAorKyAgICAgICAgbnIg PT0gX19OUl9yZW5hbWVhdCB8fCBuciA9PSBfX05SX3JlbmFtZWF0MiB8fCBuciA9PSBfX05SX25l d2ZzdGF0YXQgfHwgbnIgPT0gX19OUl91bmxpbmthdCkgeworKyAgICAgICAgaWYgKHN0YXRpY19j YXN0PGludD4oU0VDQ09NUF9QQVJNMShjdHgpKSA+IDApIHsKKysgICAgICAgICAgICBTRUNDT01Q X1BBUk0xKGN0eCkgPSAtU0VDQ09NUF9QQVJNMShjdHgpOworKyAgICAgICAgfQorKyAgICB9Cisr I2VuZGlmCisrCisgICAgIC8vIENvcHkgdGhlIHNlY2NvbXAtc3BlY2lmaWMgZGF0YSBpbnRvIGEg YXJjaF9zZWNjb21wX2RhdGEgc3RydWN0dXJlLiBUaGlzCisgICAgIC8vIGlzIHdoYXQgd2UgYXJl IHNob3dpbmcgdG8gVHJhcEZuYyBjYWxsYmFja3MgdGhhdCB0aGUgc3lzdGVtIGNhbGwKKyAgICAg Ly8gZXZhbHVhdG9yIHJlZ2lzdGVyZWQgd2l0aCB0aGUgc2FuZGJveC4KKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL2NyZWRlbnRpYWxzLmNjCisrKysg Yi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFs cy5jYworQEAgLTgxLDcgKzgxLDcgQEAgYm9vbCBDaHJvb3RUb1NhZmVFbXB0eURpcigpIHsKKyAg IHBpZF90IHBpZCA9IC0xOworICAgYWxpZ25hcygxNikgY2hhciBzdGFja19idWZbUFRIUkVBRF9T VEFDS19NSU5dOworICNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQo QVJDSF9DUFVfQVJNX0ZBTUlMWSkgfHwgXAorLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKQorKyAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0X0ZBTUlMWSkKKyAgIC8vIFRoZSBzdGFjayBncm93cyBkb3dud2FyZC4KKyAgIHZv aWQqIHN0YWNrID0gc3RhY2tfYnVmICsgc2l6ZW9mKHN0YWNrX2J1Zik7CisgI2Vsc2UKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3Jh cHBlcnMuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3NlcnZp Y2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKK0BAIC02MSw3ICs2MSw3IEBAIGxvbmcgc3lzX2Nsb25l KHVuc2lnbmVkIGxvbmcgZmxhZ3MsCisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2XzY0KQorICAg cmV0dXJuIHN5c2NhbGwoX19OUl9jbG9uZSwgZmxhZ3MsIGNoaWxkX3N0YWNrLCBwdGlkLCBjdGlk LCB0bHMpOworICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfWDg2KSB8fCBkZWZpbmVkKEFSQ0hfQ1BV X0FSTV9GQU1JTFkpIHx8IFwKKy0gICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKysg ICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2 NF9GQU1JTFkpCisgICAvLyBDT05GSUdfQ0xPTkVfQkFDS1dBUkRTIGRlZmluZWQuCisgICByZXR1 cm4gc3lzY2FsbChfX05SX2Nsb25lLCBmbGFncywgY2hpbGRfc3RhY2ssIHB0aWQsIHRscywgY3Rp ZCk7CisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9z eXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvc3lzY2FsbF9icm9rZXIvYnJva2VyX3Byb2Nlc3MuY2MKK0BAIC0x NjUsNyArMTY1LDcgQEAgYm9vbCBCcm9rZXJQcm9jZXNzOjpJc1N5c2NhbGxCcm9rZXJhYmxlKAor ICNpZiBkZWZpbmVkKF9fTlJfZnN0YXRhdDY0KQorICAgICBjYXNlIF9fTlJfZnN0YXRhdDY0Ogor ICNlbmRpZgorLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18p CisrI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorICAgICBjYXNlIF9fTlJfbmV3ZnN0YXRhdDoKKyAjZW5kaWYK KyAgICAgICByZXR1cm4gIWZhc3RfY2hlY2sgfHwgYWxsb3dlZF9jb21tYW5kX3NldF8udGVzdChD T01NQU5EX1NUQVQpOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGludXgv c3lzdGVtX2hlYWRlcnMvbGludXhfc2VjY29tcC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zZWNjb21wLmgKK0BAIC00MSw2 ICs0MSw5IEBACisgI2lmbmRlZiBFTV9BQVJDSDY0CisgI2RlZmluZSBFTV9BQVJDSDY0IDE4Mwor ICNlbmRpZgorKyNpZm5kZWYgRU1fUFBDNjQKKysjZGVmaW5lIEVNX1BQQzY0IDIxCisrI2VuZGlm CisgCisgI2lmbmRlZiBfX0FVRElUX0FSQ0hfNjRCSVQKKyAjZGVmaW5lIF9fQVVESVRfQVJDSF82 NEJJVCAweDgwMDAwMDAwCitAQCAtNzQsNiArNzcsMTQgQEAKKyAjZGVmaW5lIEFVRElUX0FSQ0hf QUFSQ0g2NCAoRU1fQUFSQ0g2NCB8IF9fQVVESVRfQVJDSF82NEJJVCB8IF9fQVVESVRfQVJDSF9M RSkKKyAjZW5kaWYKKyAKKysjaWZuZGVmIEFVRElUX0FSQ0hfUFBDNjQKKysjZGVmaW5lIEFVRElU X0FSQ0hfUFBDNjQgKEVNX1BQQzY0IHwgX19BVURJVF9BUkNIXzY0QklUKQorKyNlbmRpZgorKwor KyNpZm5kZWYgQVVESVRfQVJDSF9QUEM2NExFCisrI2RlZmluZSBBVURJVF9BUkNIX1BQQzY0TEUg KEVNX1BQQzY0IHwgX19BVURJVF9BUkNIXzY0QklUIHwgX19BVURJVF9BUkNIX0xFKQorKyNlbmRp ZgorKworIC8vIEZvciBwcmN0bC5oCisgI2lmbmRlZiBQUl9TRVRfU0VDQ09NUAorICNkZWZpbmUg UFJfU0VUX1NFQ0NPTVAgICAgICAgICAgICAgICAyMgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfc2lnbmFsLmgKKysrKyBiL3Ny Yy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3Np Z25hbC5oCitAQCAtMTMsNyArMTMsNyBAQAorIC8vIChub3QgdW5kZWZpbmVkLCBidXQgZGVmaW5l ZCBkaWZmZXJlbnQgdmFsdWVzIGFuZCBpbiBkaWZmZXJlbnQgbWVtb3J5CisgLy8gbGF5b3V0cyku IFNvLCBmaWxsIHRoZSBnYXAgaGVyZS4KKyAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5l ZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKKy0gICAgZGVmaW5lZChfX2Fh cmNoNjRfXykKKysgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorIAorICNkZWZpbmUgTElOVVhfU0lHSFVQIDEKKyAjZGVmaW5lIExJTlVYX1NJR0lOVCAy CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9saW51eF9zeXNjYWxscy5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNjYWxscy5oCitAQCAtMzUsNSArMzUsOSBAQAor ICNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2Nh bGxzLmgiCisgI2VuZGlmCisgCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysjaW5jbHVk ZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oIgor KyNlbmRpZgorKworICNlbmRpZiAgLy8gU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19MSU5V WF9TWVNDQUxMU19IXworIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvbGlu dXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAorKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3NhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAorQEAg LTExLDYgKzExLDggQEAKKyAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9h cm1fbGludXhfdWNvbnRleHQuaCIKKyAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKQorICNpbmNsdWRl ICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2kzODZfbGludXhfdWNvbnRleHQuaCIKKysj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lz dGVtX2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaCIKKyAjZWxzZQorICNlcnJvciAiTm8g c3VwcG9ydCBmb3IgeW91ciBhcmNoaXRlY3R1cmUgaW4gUE5hQ2wgaGVhZGVyIgorICNlbmRpZgor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5k ZXJlcl9wb2xpY3lfbGludXguY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9zYW5kYm94 L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCitAQCAtMTUsNiArMTUs MTEgQEAKKyAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zeXNj YWxscy5oIgorICNpbmNsdWRlICJzYW5kYm94L3BvbGljeS9saW51eC9zYW5kYm94X2xpbnV4Lmgi CisgCisrLy8gT24gUFBDNjQsIFRDR0VUUyBpcyBkZWZpbmVkIGluIHRlcm1zIG9mIHN0cnVjdCB0 ZXJtaW9zLCBzbyB3ZSBtdXN0IGluY2x1ZGUgdGVybWlvcy5oCisrI2lmZGVmIF9fcG93ZXJwYzY0 X18KKysjaW5jbHVkZSA8dGVybWlvcy5oPgorKyNlbmRpZgorKworIC8vIFRPRE8odmlnbmF0dGkp OiByZXBsYWNlIHRoZSBsb2NhbCBkZWZpbml0aW9ucyBiZWxvdyB3aXRoICNpbmNsdWRlCisgLy8g PGxpbnV4L2RtYS1idWYuaD4gb25jZSBrZXJuZWwgdmVyc2lvbiA0LjYgYmVjb21lcyB3aWRlbHkg dXNlZC4KKyAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2luay5o CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBp bGVyL3RyYW5zbGF0b3IvSW5mb1NpbmsuaAorQEAgLTkzLDcgKzkzLDE2IEBAIGNsYXNzIFRJbmZv U2lua0Jhc2UKKyAgICAgICAgICAgICBzdHJlYW0ucHJlY2lzaW9uKDgpOworICAgICAgICAgICAg IHN0cmVhbSA8PCBmOworICAgICAgICAgfQorLSAgICAgICAgc2luay5hcHBlbmQoc3RyZWFtLnN0 cigpKTsKKysKKysgICAgICAgIC8vIEhhY2sgdG8gd29yayBhcm91bmQgYSBidWcgd2hlcmUgbmVn YXRpdmUgZmxvYXRpbmcgcG9pbnQgdmFsdWVzCisrICAgICAgICAvLyBhcmUgcmVuZGVyZWQgbGlr ZSAnLjAuNScgaW5zdGVhZCBvZiAnLTAuNScKKysgICAgICAgIHN0ZDo6c3RyaW5nIHJlcyhzdHJl YW0uc3RyKCkpOworKworKyAgICAgICAgaWYgKHNpZ25iaXQoZikpIHsgLy8gdGVzdCBpZiBmIGlz IG5lZ2F0aXZlCisrICAgICAgICAgICAgcmVzWzBdID0gJy0nOworKyAgICAgICAgfQorKworKyAg ICAgICAgc2luay5hcHBlbmQocmVzKTsKKyAgICAgICAgIHJldHVybiAqdGhpczsKKyAgICAgfQor ICAgICAvLyBXcml0ZSBib29sZWFuIHZhbHVlcyBhcyB0aGVpciBuYW1lcyBpbnN0ZWFkIG9mIGlu dGVncmFsIHZhbHVlLgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fu Z2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaAorQEAgLTksNiArOSw3 IEBACisgI2lmbmRlZiBMSUJBTkdMRV9DT05TVEFOVFNfSF8KKyAjZGVmaW5lIExJQkFOR0xFX0NP TlNUQU5UU19IXworIAorKyNpbmNsdWRlIDxjc3RkZGVmPgorICNpbmNsdWRlICJjb21tb24vcGxh dGZvcm0uaCIKKyAKKyAjaW5jbHVkZSA8c3RkaW50Lmg+CistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCitAQCAtOTksNiArOTksMTMg QEAgaWYgKGlzX3dpbiAmJiAhaXNfbXNhbiAmJiBjdXJyZW50X2NwdSAhPQorICAgICAgIH0gZWxz ZSB7CisgICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29uZmlnIiBdCisgICAg ICAgfQorKyAgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgICBp ZiAoaXNfbGludXgpIHsKKysgICAgICAgICMgVE9ETzogcHBjNjQgKGJlKSBjaGVjaworKyAgICAg ICAgc291cmNlcyArPSBjcnlwdG9fc291cmNlc19saW51eF9wcGM2NGxlCisrICAgICAgfSBlbHNl IHsKKysgICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9jb25maWciIF0KKysgICAg ICB9CisgICAgIH0gZWxzZSB7CisgICAgICAgcHVibGljX2NvbmZpZ3MgPSBbICI6bm9fYXNtX2Nv bmZpZyIgXQorICAgICB9CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9CVUlMRC5nbgorQEAgLTYyMyw3ICs2MjMsNiBAQCBpZiAoaXNfbGludXggfHwg aXNfY2hyb21lb3MgfHwgaXNfYW5kcm9pCisgICAgICAgImJyZWFrcGFkL3NyYy9jbGllbnQvbWlu aWR1bXBfZmlsZV93cml0ZXIuaCIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vY29udmVy dF9VVEYuY2MiLAorICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2NvbnZlcnRfVVRGLmgiLAor LSAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2JyZWFrcGFkX2dldGNvbnRleHQuUyIs CisgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5jYyIsCisg ICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2NvcmVfZHVtcC5oIiwKKyAgICAg ICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9lbGZ1dGlscy5jYyIsCitAQCAtNjYzLDYgKzY2 MiwxNSBAQCBpZiAoaXNfbGludXggfHwgaXNfY2hyb21lb3MgfHwgaXNfYW5kcm9pCisgCisgICAg IGxpYnMgPSBbICJkbCIgXQorIAorKyAgICBpZiAoY3VycmVudF9jcHUgPT0gInBwYzY0Iikgewor KyAgICAgICAgZGVmaW5lcyA9IFsgIkhBVkVfR0VUQ09OVEVYVCIgXQorKyAgICAgICAgbGlicyAr PSBbICJ1Y29udGV4dCIgXQorKyAgICB9IGVsc2UgeworKyAgICAgICAgc291cmNlcyArPSBbCisr ICAgICAgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4 dC5TIgorKyAgICAgICAgXQorKyAgICB9CisrCisgICAgIGluY2x1ZGVfZGlycyA9IFsKKyAgICAg ICAiLiIsCisgICAgICAgImJyZWFrcGFkL3NyYyIsCitAQCAtNzEyLDcgKzcyMCw2IEBAIGlmIChp c19saW51eCB8fCBpc19jaHJvbWVvcyB8fCBpc19hbmRyb2kKKyAgICAgICAiYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0LmNj IiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWlu aWR1bXBfd3JpdGVyX3VuaXR0ZXN0X3V0aWxzLmNjIiwKKyAgICAgICAiYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvcHJvY19jcHVpbmZvX3JlYWRlcl91bml0dGVzdC5j YyIsCistICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29udGV4 dF91bml0dGVzdC5jYyIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmX2Nv cmVfZHVtcF91bml0dGVzdC5jYyIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgv ZmlsZV9pZF91bml0dGVzdC5jYyIsCisgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgv bGludXhfbGliY19zdXBwb3J0X3VuaXR0ZXN0LmNjIiwKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBf d3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93 cml0ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oCitAQCAtNDQsNiArNDQsOCBAQCB0eXBlZGVm IE1EUmF3Q29udGV4dEFSTSBSYXdDb250ZXh0Q1BVOworIHR5cGVkZWYgTURSYXdDb250ZXh0QVJN NjRfT2xkIFJhd0NvbnRleHRDUFU7CisgI2VsaWYgZGVmaW5lZChfX21pcHNfXykKKyB0eXBlZGVm IE1EUmF3Q29udGV4dE1JUFMgUmF3Q29udGV4dENQVTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisrdHlwZWRlZiBNRFJhd0NvbnRleHRQUEM2NCBSYXdDb250ZXh0Q1BVOworICNlbHNl CisgI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3Jt IHlldC4iCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhy ZWFkX2luZm8uY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRf aW5mby5jYworQEAgLTI3MCw3ICsyNzAsNTQgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29u dGV4dChSYXdDb250ZQorICAgb3V0LT5mbG9hdF9zYXZlLmZpciA9IG1jb250ZXh0LmZwY19laXI7 CisgI2VuZGlmCisgfQorLSNlbmRpZiAgLy8gX19taXBzX18KKysKKysjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCisrCisrI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKysjaW5jbHVkZSA8YXNt L2VsZi5oPgorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrI2VuZGlmCisrCisrdWludHB0cl90 IFRocmVhZEluZm86OkdldEluc3RydWN0aW9uUG9pbnRlcigpIGNvbnN0IHsKKysgICAgcmV0dXJu IG1jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKKyt9CisrCisrdm9pZCBUaHJlYWRJbmZvOjpGaWxs Q1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKKysgICAgb3V0LT5jb250ZXh0 X2ZsYWdzID0gTURfQ09OVEVYVF9QUEM2NF9GVUxMOworKyAgICBmb3IgKGludCBpID0gMDsgaSA8 IE1EX0NPTlRFWFRfUFBDNjRfR1BSX0NPVU5UOyBpKyspCisrICAgICAgICBvdXQtPmdwcltpXSA9 IG1jb250ZXh0LmdwX3JlZ3NbaV07CisrCisrICAgIG91dC0+bHIgPSBtY29udGV4dC5ncF9yZWdz W1BUX0xOS107CisrICAgIG91dC0+c3JyMCA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKKysg ICAgb3V0LT5zcnIxID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdOworKyAgICBvdXQtPmNyID0g bWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdOworKyAgICBvdXQtPnhlciA9IG1jb250ZXh0LmdwX3Jl Z3NbUFRfWEVSXTsKKysgICAgb3V0LT5jdHIgPSBtY29udGV4dC5ncF9yZWdzW1BUX0NUUl07Cisr CisrI2lmZGVmIF9fR0xJQkNfXworKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX0ZMT0FUSU5H U0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT5mbG9hdF9zYXZlLmZw cmVnc1tpXSA9IG1jb250ZXh0LmZwX3JlZ3NbaV07CisrCisrICAgIG91dC0+ZmxvYXRfc2F2ZS5m cHNjciA9IG1jb250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdOworKyNlbHNlCisrICAgIGZvciAoaW50 IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCisrICAg ICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5m cF9yZWdzKVtpXTsKKysKKysgICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9ICgodWludDY0X3Qg KikmbWNvbnRleHQuZnBfcmVncylbRUxGX05GUFJFRy0xXTsKKysjZW5kaWYKKysKKysgICAgZm9y IChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKKysg ICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9IFwKKysgICAgICAgICAgICB7KCgo dWludDY0X3QpdnJlZ3MudnJyZWdzW2ldWzBdKSA8PCAzMikKKysgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgdnJlZ3MudnJyZWdzW2ldWzFdLAorKyAgICAgICAgICAgICgoKHVpbnQ2NF90KXZy ZWdzLnZycmVnc1tpXVsyXSkgPDwgMzIpCisrICAgICAgICAgICAgICAgICAgICAgICAgIHwgdnJl Z3MudnJyZWdzW2ldWzNdfTsKKysKKysgICAgb3V0LT52cnNhdmUgPSB2cmVncy52cnNhdmU7Cisr ICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92c2NyID0gezAsIHZyZWdzLnZzY3IudnNjcl93b3Jk fTsKKysgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZydmFsaWQgPSAweEZGRkZGRkZGOworK30K KysjZW5kaWYgIC8vIF9fcG93ZXJwYzY0X18KKyAKKyB2b2lkIFRocmVhZEluZm86OkdldEdlbmVy YWxQdXJwb3NlUmVnaXN0ZXJzKHZvaWQqKiBncF9yZWdzLCBzaXplX3QqIHNpemUpIHsKKyAgIGFz c2VydChncF9yZWdzIHx8IHNpemUpOworQEAgLTI3OSw2ICszMjYsMTEgQEAgdm9pZCBUaHJlYWRJ bmZvOjpHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdAorICAgICAqZ3BfcmVncyA9IG1jb250ZXh0Lmdy ZWdzOworICAgaWYgKHNpemUpCisgICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmdyZWdzKTsK KysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBpZiAoZ3BfcmVncykKKysgICAgKmdw X3JlZ3MgPSBtY29udGV4dC5ncF9yZWdzOworKyAgaWYgKHNpemUpCisrICAgICpzaXplID0gc2l6 ZW9mKG1jb250ZXh0LmdwX3JlZ3MpOworICNlbHNlCisgICBpZiAoZ3BfcmVncykKKyAgICAgKmdw X3JlZ3MgPSAmcmVnczsKK0BAIC0yOTQsNiArMzQ2LDExIEBAIHZvaWQgVGhyZWFkSW5mbzo6R2V0 RmxvYXRpbmdQb2ludFJlZ2lzdGUKKyAgICAgKmZwX3JlZ3MgPSAmbWNvbnRleHQuZnByZWdzOwor ICAgaWYgKHNpemUpCisgICAgICpzaXplID0gc2l6ZW9mKG1jb250ZXh0LmZwcmVncyk7CisrI2Vs aWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgaWYgKGZwX3JlZ3MpCisrICAgICpmcF9yZWdz ID0gJm1jb250ZXh0LmZwX3JlZ3M7CisrICBpZiAoc2l6ZSkKKysgICAgKnNpemUgPSBzaXplb2Yo bWNvbnRleHQuZnBfcmVncyk7CisgI2Vsc2UKKyAgIGlmIChmcF9yZWdzKQorICAgICAqZnBfcmVn cyA9ICZmcHJlZ3M7CitAQCAtMzAyLDQgKzM1OSwxMyBAQCB2b2lkIFRocmVhZEluZm86OkdldEZs b2F0aW5nUG9pbnRSZWdpc3RlCisgI2VuZGlmCisgfQorIAorKyNpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisrdm9pZCBUaHJlYWRJbmZvOjpHZXRWZWN0b3JSZWdpc3RlcnModm9pZCoqIHZfcmVn cywgc2l6ZV90KiBzaXplKSB7CisrICAgIGlmICh2X3JlZ3MpCisrICAgICAgICAqdl9yZWdzID0g JnZyZWdzOworKyAgICBpZiAoc2l6ZSkKKysgICAgICAgICpzaXplID0gc2l6ZW9mKHZyZWdzKTsK Kyt9CisrI2VuZGlmCisrCisgfSAgLy8gbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZAorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmgKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oCitAQCAtNjgsNiArNjgsMTAg QEAgc3RydWN0IFRocmVhZEluZm8geworICAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmVzIGRlZmluZWQg aW4gPHN5cy91c2VyLmg+CisgICBzdHJ1Y3QgdXNlcl9yZWdzX3N0cnVjdCByZWdzOworICAgc3Ry dWN0IHVzZXJfZnBzaW1kX3N0cnVjdCBmcHJlZ3M7CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQorKyAgLy8gVXNlIHRoZSBzdHJ1Y3R1cmVzIGRlZmluZWQgaW4gPHN5cy91Y29udGV4dC5o Pi4KKysgIG1jb250ZXh0X3QgbWNvbnRleHQ7CisrICB2cnJlZ3NldF90IHZyZWdzOworICNlbGlm IGRlZmluZWQoX19taXBzX18pCisgICAvLyBVc2UgdGhlIHN0cnVjdHVyZSBkZWZpbmVkIGluIDxz eXMvdWNvbnRleHQuaD4uCisgICBtY29udGV4dF90IG1jb250ZXh0OworQEAgLTg0LDYgKzg4LDEx IEBAIHN0cnVjdCBUaHJlYWRJbmZvIHsKKyAKKyAgIC8vIFJldHVybnMgdGhlIHBvaW50ZXIgYW5k IHNpemUgb2YgZmxvYXQgcG9pbnQgcmVnaXN0ZXIgYXJlYS4KKyAgIHZvaWQgR2V0RmxvYXRpbmdQ b2ludFJlZ2lzdGVycyh2b2lkKiogZnBfcmVncywgc2l6ZV90KiBzaXplKTsKKysKKysjaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQorKyAgLy8gUmV0dXJucyB0aGUgcG9pbnRlciBhbmQgc2l6ZSBv ZiB0aGUgdmVjdG9yIHJlZ2lzdGVyIGFyZWEuIChQUEM2NCBvbmx5KQorKyAgdm9pZCBHZXRWZWN0 b3JSZWdpc3RlcnModm9pZCoqIHZfcmVncywgc2l6ZV90KiBzaXplKTsKKysjZW5kaWYKKyB9Owor IAorIH0gIC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1 bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MKK0BAIC0yNTQsNiArMjU0LDYwIEBA IHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0MKKyAgIG91dC0+ZmxvYXRf c2F2ZS5maXIgPSB1Yy0+dWNfbWNvbnRleHQuZnBjX2VpcjsgIC8vIFVudXNlZC4KKyAjZW5kaWYK KyB9CisrCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKworKyNpZm5kZWYgX19HTElC Q19fCisrI2luY2x1ZGUgPGFzbS9lbGYuaD4KKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKyNl bmRpZgorKworK3VpbnRwdHJfdCBVQ29udGV4dFJlYWRlcjo6R2V0U3RhY2tQb2ludGVyKGNvbnN0 IHVjb250ZXh0X3QqIHVjKSB7CisrICAgIHJldHVybiB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tN RF9DT05URVhUX1BQQzY0X1JFR19TUF07CisrfQorKworK3VpbnRwdHJfdCBVQ29udGV4dFJlYWRl cjo6R2V0SW5zdHJ1Y3Rpb25Qb2ludGVyKGNvbnN0IHVjb250ZXh0X3QqIHVjKSB7CisrICAgIHJl dHVybiB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdOworK30KKysKKyt2b2lkIFVDb250 ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQsIGNvbnN0IHVjb250 ZXh0X3QqIHVjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHZy cmVnc2V0X3QqIHZyZWdzKSB7CisrICAgIG91dC0+Y29udGV4dF9mbGFncyA9IE1EX0NPTlRFWFRf UFBDNjRfRlVMTDsKKysKKysgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0 X0dQUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT5ncHJbaV0gPSB1Yy0+dWNfbWNvbnRleHQu Z3BfcmVnc1tpXTsKKysKKysgICAgb3V0LT5sciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BU X0xOS107CisrICAgIG91dC0+c3JyMCA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF07 CisrICAgIG91dC0+c3JyMSA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01TUl07CisrICAg IG91dC0+Y3IgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdOworKyAgICBvdXQtPnhl ciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1hFUl07CisrICAgIG91dC0+Y3RyID0gdWMt PnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ1RSXTsKKysKKysjaWZkZWYgX19HTElCQ19fCisrICAg IGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBp KyspCisrICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnByZWdzW2ldID0gdWMtPnVjX21jb250ZXh0 LmZwX3JlZ3NbaV07CisrCisrICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9IHVjLT51Y19tY29u dGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKKysjZWxzZQorKyAgICBmb3IgKGludCBpID0gMDsgaSA8 IE1EX0ZMT0FUSU5HU0FWRUFSRUFfUFBDX0ZQUl9DT1VOVDsgaSsrKQorKyAgICAgICAgb3V0LT5m bG9hdF9zYXZlLmZwcmVnc1tpXSA9ICgodWludDY0X3QgKikmdWMtPnVjX21jb250ZXh0LmZwX3Jl Z3MpW2ldOworKworKyAgICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSAoKHVpbnQ2NF90ICopJnVj LT51Y19tY29udGV4dC5mcF9yZWdzKVtFTEZfTkZQUkVHLTFdOworKyNlbmRpZgorKworKyAgICBm b3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKQor KyAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0KKysgICAgICAgICAgICB7KCgo dWludDY0X3QpdnJlZ3MtPnZycmVnc1tpXVswXSkgPDwgMzIpCisrICAgICAgICAgICAgICAgICAg ICAgICAgIHwgdnJlZ3MtPnZycmVnc1tpXVsxXSwKKysgICAgICAgICAgICAgKCgodWludDY0X3Qp dnJlZ3MtPnZycmVnc1tpXVsyXSkgPDwgMzIpCisrICAgICAgICAgICAgICAgICAgICAgICAgIHwg dnJlZ3MtPnZycmVnc1tpXVszXX07CisrCisrICAgIG91dC0+dnJzYXZlID0gdnJlZ3MtPnZyc2F2 ZTsKKysgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3IgPSB7MCwgdnJlZ3MtPnZzY3IudnNj cl93b3JkfTsKKysgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZydmFsaWQgPSAweEZGRkZGRkZG OworK30KKysKKyAjZW5kaWYKKyAKKyB9ICAvLyBuYW1lc3BhY2UgZ29vZ2xlX2JyZWFrcGFkCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuaAorQEAg LTU5LDYgKzU5LDkgQEAgc3RydWN0IFVDb250ZXh0UmVhZGVyIHsKKyAjZWxpZiBkZWZpbmVkKF9f YWFyY2g2NF9fKQorICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSog b3V0LCBjb25zdCB1Y29udGV4dF90KiB1YywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGNvbnN0IHN0cnVjdCBmcHNpbWRfY29udGV4dCogZnByZWdzKTsKKysjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCisrICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BV ICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgY29uc3QgdnJyZWdzZXRfdCogdnJlZ3MpOworICNlbHNlCisgICBzdGF0aWMgdm9pZCBGaWxs Q1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQsIGNvbnN0IHVjb250ZXh0X3QqIHVjKTsKKyAj ZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKKysr KyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKK0BAIC0xMDUsNiAr MTA1LDEzIEBACisgI2RlZmluZSBQUl9TRVRfUFRSQUNFUiAweDU5NjE2ZDYxCisgI2VuZGlmCisg CisrLyogbXVzbCBoYWNrLCBjYW4ndCBpbmNsdWRlIGFzbS9wdHJhY2UuaCBhcyB0aGF0IGNhdXNl cyBjb25mbGljdHMgKi8KKysjaWZuZGVmIF9fR0xJQkNfXworKyNpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pICYmICFkZWZpbmVkKFBUX05JUCkKKysjZGVmaW5lIFBUX05JUCAzMgorKyNlbmRpZgor KyNlbmRpZgorKworIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQgeworIAorIG5hbWVzcGFjZSB7 CitAQCAtNDYxLDkgKzQ2OCwxNiBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OkhhbmRsZVNpZ25h bChpbnQKKyAgICAgbWVtY3B5KCZnX2NyYXNoX2NvbnRleHRfLmZsb2F0X3N0YXRlLCBmcF9wdHIs CisgICAgICAgICAgICBzaXplb2YoZ19jcmFzaF9jb250ZXh0Xy5mbG9hdF9zdGF0ZSkpOworICAg fQorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIE9uIFBQQzY0LCB3ZSBtdXN0 IGNvcHkgVlIgc3RhdGUKKysgIHVjb250ZXh0X3QqIHVjX3B0ciA9ICh1Y29udGV4dF90Kil1YzsK KysgIGlmICh1Y19wdHItPnVjX21jb250ZXh0LnZfcmVncykgeworKyAgICBtZW1jcHkoJmdfY3Jh c2hfY29udGV4dF8udmVjdG9yX3N0YXRlLCB1Y19wdHItPnVjX21jb250ZXh0LnZfcmVncywKKysg ICAgICAgICAgIHNpemVvZihnX2NyYXNoX2NvbnRleHRfLnZlY3Rvcl9zdGF0ZSkpOworKyAgfQor ICNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgICAv LyBGUCBzdGF0ZSBpcyBub3QgcGFydCBvZiB1c2VyIEFCSSBvbiBBUk0gTGludXguCistICAvLyBJ biBjYXNlIG9mIE1JUFMgTGludXggRlAgc3RhdGUgaXMgYWxyZWFkeSBwYXJ0IG9mIHVjb250ZXh0 X3QKKysgIC8vIEluIGNhc2Ugb2YgTUlQUywgTGludXggRlAgc3RhdGUgaXMgYWxyZWFkeSBwYXJ0 IG9mIHVjb250ZXh0X3QKKyAgIC8vIGFuZCAnZmxvYXRfc3RhdGUnIGlzIG5vdCBhIG1lbWJlciBv ZiBDcmFzaENvbnRleHQuCisgICB1Y29udGV4dF90KiB1Y19wdHIgPSAodWNvbnRleHRfdCopdWM7 CisgICBpZiAodWNfcHRyLT51Y19tY29udGV4dC5mcHJlZ3MpIHsKK0BAIC03MDgsMTEgKzcyMiwx OSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1bXAoKSB7CisgICB9CisgI2Vu ZGlmCisgCistI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19hYXJjaDY0 X18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYm ICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykgXAorKyAgICAmJiAh ZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorICAgLy8gRlBVIHN0YXRlIGlzIG5vdCBwYXJ0IG9mIEFS TSBFQUJJIHVjb250ZXh0X3QuCisgICBtZW1jcHkoJmNvbnRleHQuZmxvYXRfc3RhdGUsIGNvbnRl eHQuY29udGV4dC51Y19tY29udGV4dC5mcHJlZ3MsCisgICAgICAgICAgc2l6ZW9mKGNvbnRleHQu ZmxvYXRfc3RhdGUpKTsKKyAjZW5kaWYKKysKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor KyAgLy8gVmVjdG9yIHJlZ2lzdGVycyBtdXN0IGJlIGNvcGllZCBvbiBQUEM2NAorKyAgbWVtY3B5 KCZjb250ZXh0LnZlY3Rvcl9zdGF0ZSwgY29udGV4dC5jb250ZXh0LnVjX21jb250ZXh0LnZfcmVn cywKKysgICAgICAgICBzaXplb2YoY29udGV4dC52ZWN0b3Jfc3RhdGUpKTsKKysjZW5kaWYKKysK KyAgIGNvbnRleHQudGlkID0gc3lzX2dldHRpZCgpOworIAorICAgLy8gQWRkIGFuIGV4Y2VwdGlv biBzdHJlYW0gdG8gdGhlIG1pbmlkdW1wIGZvciBiZXR0ZXIgcmVwb3J0aW5nLgorQEAgLTczMyw2 ICs3NTUsOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1bXAoKSB7CisgI2Vs aWYgZGVmaW5lZChfX21pcHNfXykKKyAgIGNvbnRleHQuc2lnaW5mby5zaV9hZGRyID0KKyAgICAg ICByZWludGVycHJldF9jYXN0PHZvaWQqPihjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQucGMp OworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIGNvbnRleHQuc2lnaW5mby5zaV9h ZGRyID0KKysgICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihjb250ZXh0LmNvbnRleHQudWNf bWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdKTsKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhh cyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgorICNlbmRpZgorLS0tIGEv c3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5oCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmgKK0BAIC0xOTIsNyArMTkyLDExIEBAIGNsYXNz IEV4Y2VwdGlvbkhhbmRsZXIgeworICAgICBzaWdpbmZvX3Qgc2lnaW5mbzsKKyAgICAgcGlkX3Qg dGlkOyAgLy8gdGhlIGNyYXNoaW5nIHRocmVhZC4KKyAgICAgdWNvbnRleHRfdCBjb250ZXh0Owor LSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgIC8vIFBQQzY0J3MgRlAgc3RhdGUgaXMgYSBwYXJ0 IG9mIHVjb250ZXh0X3QgbGlrZSBNSVBTIGJ1dCB0aGUgdmVjdG9yCisrICAgIC8vIHN0YXRlIGlz IG5vdCwgc28gYSBzdHJ1Y3QgaXMgbmVlZGVkLgorKyAgICB2c3RhdGVfdCB2ZWN0b3Jfc3RhdGU7 CisrI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKyAg ICAgLy8gI2lmZGVmIHRoaXMgb3V0IGJlY2F1c2UgRlAgc3RhdGUgaXMgbm90IHBhcnQgb2YgdXNl ciBBQkkgZm9yIExpbnV4IEFSTS4KKyAgICAgLy8gSW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQIHN0 YXRlIGlzIGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90IHNvCisgICAgIC8vICdmbG9hdF9zdGF0 ZScgaXMgbm90IHJlcXVpcmVkLgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25f aGFuZGxlcl91bml0dGVzdC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25f aGFuZGxlcl91bml0dGVzdC5jYworQEAgLTMwNyw3ICszMDcsNyBAQCBURVNUKEV4Y2VwdGlvbkhh bmRsZXJUZXN0LCBQYXJhbGxlbENoaWxkCisgICB9CisgCisgICAvLyBXYWl0IGEgd2hpbGUgdW50 aWwgdGhlIGNoaWxkIHNob3VsZCBoYXZlIGNyYXNoZWQuCistICB1c2xlZXAoMTAwMDAwMCk7Cisr ICB1c2xlZXAoMjAwMDAwMCk7CisgICAvLyBLaWxsIHRoZSBjaGlsZCBpZiBpdCBpcyBzdGlsbCBy dW5uaW5nLgorICAga2lsbChjaGlsZCwgU0lHS0lMTCk7CisgCitAQCAtNTU5LDYgKzU1OSw4IEBA IGNvbnN0IHVuc2lnbmVkIGNoYXIga0lsbGVnYWxJbnN0cnVjdGlvblsKKyAjaWYgZGVmaW5lZChf X21pcHNfXykKKyAgIC8vIG1mYzIgemVybyxJbXBsIC0gdXN1YWxseSBpbGxlZ2FsIGluIHVzZXJz cGFjZS4KKyAgIDB4NDgsIDB4MDAsIDB4MDAsIDB4NDgKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisrICAweDAxLCAweDAxLCAweDAxLCAweDAxIC8vIENyYXNoZXMgb24gYSB0ZXN0ZWQg UE9XRVI5IGNwdQorICNlbHNlCisgICAvLyBUaGlzIGNyYXNoZXMgd2l0aCBTSUdJTEwgb24geDg2 L3g4Ni02NC9hcm0uCisgICAweGZmLCAweGZmLCAweGZmLCAweGZmCitAQCAtNzU0LDEwICs3NTYs MTAgQEAgVEVTVChFeGNlcHRpb25IYW5kbGVyVGVzdCwgSW5zdHJ1Y3Rpb25QbworIAorICAgLy8g VGhlc2UgYXJlIGRlZmluZWQgaGVyZSBzbyB0aGUgcGFyZW50IGNhbiB1c2UgdGhlbSB0byBjaGVj ayB0aGUKKyAgIC8vIGRhdGEgZnJvbSB0aGUgbWluaWR1bXAgYWZ0ZXJ3YXJkcy4KKy0gIC8vIFVz ZSA0ayBoZXJlIGJlY2F1c2UgdGhlIE9TIHdpbGwgaGFuZCBvdXQgYSBzaW5nbGUgcGFnZSBldmVu CisrICAvLyBVc2UgdGhlIHBhZ2Ugc2l6ZSBoZXJlIGJlY2F1c2UgdGhlIE9TIHdpbGwgaGFuZCBv dXQgYSBzaW5nbGUgcGFnZSBldmVuCisgICAvLyBpZiBhIHNtYWxsZXIgc2l6ZSBpcyByZXF1ZXN0 ZWQsIGFuZCB0aGlzIHRlc3Qgd2FudHMgdG8KKyAgIC8vIHRlc3QgdGhlIHVwcGVyIGJvdW5kIG9m IHRoZSBtZW1vcnkgcmFuZ2UuCistICBjb25zdCB1aW50MzJfdCBrTWVtb3J5U2l6ZSA9IDQwOTY7 ICAvLyBieXRlcworKyAgY29uc3QgdWludDMyX3Qga01lbW9yeVNpemUgPSBnZXRwYWdlc2l6ZSgp OyAgLy8gYnl0ZXMKKyAgIGNvbnN0IGludCBrT2Zmc2V0ID0ga01lbW9yeVNpemUgLSBzaXplb2Yo a0lsbGVnYWxJbnN0cnVjdGlvbik7CisgCisgICBjb25zdCBwaWRfdCBjaGlsZCA9IGZvcmsoKTsK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYwor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFk L3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNjCitA QCAtMTM4LDcgKzEzOCw5IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7CisgICAgICAgICAgICAg ICAgICAgY29uc3QgTWljcm9kdW1wRXh0cmFJbmZvJiBtaWNyb2R1bXBfZXh0cmFfaW5mbywKKyAg ICAgICAgICAgICAgICAgICBMaW51eER1bXBlciogZHVtcGVyKQorICAgICAgIDogdWNvbnRleHRf KGNvbnRleHQgPyAmY29udGV4dC0+Y29udGV4dCA6IE5VTEwpLAorLSNpZiAhZGVmaW5lZChfX0FS TV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCisrICAgICAgICB2ZWN0b3Jfc3RhdGVfKGNvbnRleHQgPyAmY29udGV4dC0+dmVjdG9yX3N0 YXRlIDogTlVMTCksCisrI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChf X21pcHNfXykKKyAgICAgICAgIGZsb2F0X3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPmZsb2F0 X3N0YXRlIDogTlVMTCksCisgI2VuZGlmCisgICAgICAgICBkdW1wZXJfKGR1bXBlciksCitAQCAt MzM3LDYgKzMzOSw4IEBAIGNsYXNzIE1pY3JvZHVtcFdyaXRlciB7CisgIyBlbHNlCisgIyAgZXJy b3IgIlRoaXMgbWlwcyBBQkkgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgKG4zMikiCisgI2Vu ZGlmCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICBjb25zdCBjaGFyIGtBcmNo W10gPSAicHBjNjQiOworICNlbHNlCisgI2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBv cnRlZCB0byB5b3VyIHBsYXRmb3JtIHlldCIKKyAjZW5kaWYKK0BAIC00MDksNyArNDEzLDkgQEAg Y2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKKyAgIHZvaWQgRHVtcENQVVN0YXRlKCkgeworICAgICBS YXdDb250ZXh0Q1BVIGNwdTsKKyAgICAgbXlfbWVtc2V0KCZjcHUsIDAsIHNpemVvZihSYXdDb250 ZXh0Q1BVKSk7CistI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBz X18pCisrI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgICAgVUNvbnRleHRSZWFkZXI6OkZp bGxDUFVDb250ZXh0KCZjcHUsIHVjb250ZXh0XywgdmVjdG9yX3N0YXRlXyk7CisrI2VsaWYgIWRl ZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKKyAgICAgVUNvbnRleHRS ZWFkZXI6OkZpbGxDUFVDb250ZXh0KCZjcHUsIHVjb250ZXh0XywgZmxvYXRfc3RhdGVfKTsKKyAj ZWxzZQorICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwgdWNvbnRleHRf KTsKK0BAIC02MDUsNyArNjExLDkgQEAgY2xhc3MgTWljcm9kdW1wV3JpdGVyIHsKKyAgIHZvaWQq IEFsbG9jKHVuc2lnbmVkIGJ5dGVzKSB7IHJldHVybiBkdW1wZXJfLT5hbGxvY2F0b3IoKS0+QWxs b2MoYnl0ZXMpOyB9CisgCisgICBjb25zdCB1Y29udGV4dF90KiBjb25zdCB1Y29udGV4dF87Cist I2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisrI2lmIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKKysgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6dnN0YXRlX3Qq IGNvbnN0IHZlY3Rvcl9zdGF0ZV87CisrI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAh ZGVmaW5lZChfX21pcHNfXykKKyAgIGNvbnN0IGdvb2dsZV9icmVha3BhZDo6ZnBzdGF0ZV90KiBj b25zdCBmbG9hdF9zdGF0ZV87CisgI2VuZGlmCisgICBMaW51eER1bXBlciogZHVtcGVyXzsKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVz dC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVy X3VuaXR0ZXN0LmNjCitAQCAtMjc5LDEwICsyNzksMTkgQEAgVEVTVChNaWNyb2R1bXBXcml0ZXJU ZXN0LCBCYXNpY1dpdGhNYXBwaQorICAgQ3Jhc2hBbmRHZXRNaWNyb2R1bXAobWFwcGluZ3MsIE1p Y3JvZHVtcEV4dHJhSW5mbygpLCAmYnVmKTsKKyAgIEFTU0VSVF9UUlVFKENvbnRhaW5zTWljcm9k dW1wKGJ1ZikpOworIAorKyAgaW50IHBhZ2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7CisgI2lmZGVm IF9fTFA2NF9fCistICBBU1NFUlRfTkUoc3RkOjpzdHJpbmc6Om5wb3MsCistICAgICAgICAgICAg YnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAwMTAwMCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAw MDEwMDAgIgorLSAgICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJD Q0RERUVGRjAgbGliZm9vLnNvIikpOworKyAgLy8gVGhpcyB0ZXN0IGlzIG9ubHkgYXZhaWxhYmxl IGZvciB0aGUgZm9sbG93aW5nIHBhZ2Ugc2l6ZXMKKysgIEFTU0VSVF9UUlVFKChwYWdlX3NpemUg PT0gNDA5NikgfHwgKHBhZ2Vfc2l6ZSA9PSA2NTUzNikpOworKyAgaWYgKHBhZ2Vfc2l6ZSA9PSA0 MDk2KSB7CisrICAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKKysgICAgICAgICAgICAg IGJ1Zi5maW5kKCJNIDAwMDAwMDAwMDAwMDEwMDAgMDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAw MDAxMDAwICIKKysgICAgICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFB QkJDQ0RERUVGRjAgbGliZm9vLnNvIikpOworKyAgfSBlbHNlIHsKKysgICAgQVNTRVJUX05FKHN0 ZDo6c3RyaW5nOjpucG9zLAorKyAgICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAx MDAwMCAwMDAwMDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAwMTAwMDAgIgorKyAgICAgICAgICAgICAg ICAgICAgICAgIjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7 CisrICB9CisgI2Vsc2UKKyAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKKyAgICAgICAg ICAgICBidWYuZmluZCgiTSAwMDAwMTAwMCAwMDAwMDAyQSAwMDAwMTAwMCAiCistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYworQEAgLTExNyw2ICsx MTcsOSBAQCBib29sIExpbnV4Q29yZUR1bXBlcjo6R2V0VGhyZWFkSW5mb0J5SW5kCisgI2VsaWYg ZGVmaW5lZChfX21pcHNfXykKKyAgIHN0YWNrX3BvaW50ZXIgPQorICAgICAgIHJlaW50ZXJwcmV0 X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19SRUdf U1BdKTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBzdGFja19wb2ludGVyID0K KysgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncF9yZWdz W01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7CisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29kZSBo YXNuJ3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgorICNlbmRpZgorQEAgLTIx Miw3ICsyMTUsMTAgQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6OkVudW1lcmF0ZVRocmVhZHMoKQor ICAgICAgICAgbWVtc2V0KCZpbmZvLCAwLCBzaXplb2YoVGhyZWFkSW5mbykpOworICAgICAgICAg aW5mby50Z2lkID0gc3RhdHVzLT5wcl9wZ3JwOworICAgICAgICAgaW5mby5wcGlkID0gc3RhdHVz LT5wcl9wcGlkOworLSNpZiBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCisrICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IDMxOyBpKyspCisrICAgICAgICAg ICAgaW5mby5tY29udGV4dC5ncF9yZWdzW2ldID0gc3RhdHVzLT5wcl9yZWdbaV07CisrI2VsaWYg ZGVmaW5lZChfX21pcHNfXykKKyAjaWYgZGVmaW5lZChfX0FORFJPSURfXykKKyAgICAgICAgIGZv ciAoaW50IGkgPSBFRl9SMDsgaSA8PSBFRl9SMzE7IGkrKykKKyAgICAgICAgICAgaW5mby5tY29u dGV4dC5ncmVnc1tpIC0gRUZfUjBdID0gc3RhdHVzLT5wcl9yZWdbaV07CistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9s aW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9t aW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjCitAQCAtNzY1LDcgKzc2NSw5IEBAIGJvb2wg TGludXhEdW1wZXI6OkdldFN0YWNrSW5mbyhjb25zdCB2b2kKKyAgICAgICByZWludGVycHJldF9j YXN0PHVpbnQ4X3QqPihpbnRfc3RhY2tfcG9pbnRlciAmIH4ocGFnZV9zaXplIC0gMSkpOworIAor ICAgLy8gVGhlIG51bWJlciBvZiBieXRlcyBvZiBzdGFjayB3aGljaCB3ZSB0cnkgdG8gY2FwdHVy ZS4KKy0gIHN0YXRpYyBjb25zdCBwdHJkaWZmX3Qga1N0YWNrVG9DYXB0dXJlID0gMzIgKiAxMDI0 OworKyAgLy8gVGhpcyBub3cgZGVwZW5kcyBvbiBwYWdlX3NpemUgdG8gYXZvaWQgbWlzc2luZyBk YXRhCisrICAvLyBvbiBzeXN0ZW1zIHdpdGggbGFyZ2VyIHBhZ2Ugc2l6ZXMuCisrICBzdGF0aWMg Y29uc3QgcHRyZGlmZl90IGtTdGFja1RvQ2FwdHVyZSA9IDggKiBwYWdlX3NpemU7CisgCisgICBj b25zdCBNYXBwaW5nSW5mbyogbWFwcGluZyA9IEZpbmRNYXBwaW5nKHN0YWNrX3BvaW50ZXIpOwor ICAgaWYgKCFtYXBwaW5nKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X2R1bXBlci5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVy LmgKK0BAIC02Myw3ICs2Myw4IEBAIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQgeworICAoZGVm aW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQklPMzIpCisgdHlwZWRlZiBFbGYzMl9h dXh2X3QgZWxmX2F1eF9lbnRyeTsKKyAjZWxpZiBkZWZpbmVkKF9feDg2XzY0KSB8fCBkZWZpbmVk KF9fYWFyY2g2NF9fKSB8fCBcCistICAgICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lN ICE9IF9BQklPMzIpCisrICAgICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNICE9IF9B QklPMzIpIHx8IFwKKysgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyB0eXBlZGVmIEVsZjY0 X2F1eHZfdCBlbGZfYXV4X2VudHJ5OworICNlbmRpZgorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWlu aWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKKysrKyBiL3NyYy8z cmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCitA QCAtNTEsNiArNTEsOCBAQAorICNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAicmN4IgorICNlbGlm IGRlZmluZWQoX19taXBzX18pCisgI2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICIkMSIKKysjZWxp ZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrI2RlZmluZSBUSURfUFRSX1JFR0lTVEVSICJyOCIK KyAjZWxzZQorICNlcnJvciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBs YXRmb3JtLgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X3B0cmFjZV9kdW1wZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51 eF9wdHJhY2VfZHVtcGVyLmNjCitAQCAtMTU0LDE5ICsxNTQsMjcgQEAgYm9vbCBMaW51eFB0cmFj ZUR1bXBlcjo6Q29weUZyb21Qcm9jZXNzKAorICAgcmV0dXJuIHRydWU7CisgfQorIAorLWJvb2wg TGludXhQdHJhY2VEdW1wZXI6OlJlYWRSZWdpc3RlclNldChUaHJlYWRJbmZvKiBpbmZvLCBwaWRf dCB0aWQpCisteworK2Jvb2wgTGludXhQdHJhY2VEdW1wZXI6OlJlYWRSZWdpc3RlclNldChUaHJl YWRJbmZvKiBpbmZvLCBwaWRfdCB0aWQpIHsKKyAjaWZkZWYgUFRSQUNFX0dFVFJFR1NFVAorICAg c3RydWN0IGlvdmVjIGlvOworICAgaW5mby0+R2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnMoJmlv Lmlvdl9iYXNlLCAmaW8uaW92X2xlbik7CistICBpZiAoc3lzX3B0cmFjZShQVFJBQ0VfR0VUUkVH U0VULCB0aWQsICh2b2lkKilOVF9QUlNUQVRVUywgKHZvaWQqKSZpbykgPT0gLTEpIHsKKysgIGlm IChwdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlkLCAodm9pZCopTlRfUFJTVEFUVVMsICh2b2lk KikmaW8pID09IC0xKSB7CisgICAgIHJldHVybiBmYWxzZTsKKyAgIH0KKyAKKyAgIGluZm8tPkdl dEZsb2F0aW5nUG9pbnRSZWdpc3RlcnMoJmlvLmlvdl9iYXNlLCAmaW8uaW92X2xlbik7CistICBp ZiAoc3lzX3B0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9GUFJFR1NFVCwg KHZvaWQqKSZpbykgPT0gLTEpIHsKKysgIGlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwgdGlk LCAodm9pZCopTlRfRlBSRUdTRVQsICh2b2lkKikmaW8pID09IC0xKSB7CisgICAgIHJldHVybiBm YWxzZTsKKyAgIH0KKysKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgLy8gR3JhYiB0 aGUgdmVjdG9yIHJlZ2lzdGVycyBvbiBQUEM2NCB0b28KKysgIGluZm8tPkdldFZlY3RvclJlZ2lz dGVycygmaW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKKysgIGlmIChwdHJhY2UoUFRSQUNFX0dF VFJFR1NFVCwgdGlkLCAodm9pZCopTlRfUFBDX1ZNWCwgKHZvaWQqKSZpbykgPT0gLTEpIHsKKysg ICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyNlbmRpZiAvLyBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrCisgICByZXR1cm4gdHJ1ZTsKKyAjZWxzZQorICAgcmV0dXJuIGZhbHNlOworQEAgLTMwMyw2 ICszMTEsOSBAQCBib29sIExpbnV4UHRyYWNlRHVtcGVyOjpHZXRUaHJlYWRJbmZvQnlJCisgI2Vs aWYgZGVmaW5lZChfX21pcHNfXykKKyAgIHN0YWNrX3BvaW50ZXIgPQorICAgICAgIHJlaW50ZXJw cmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdzW01EX0NPTlRFWFRfTUlQU19S RUdfU1BdKTsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBzdGFja19wb2ludGVy ID0KKysgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbmZvLT5tY29udGV4dC5ncF9y ZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7CisgI2Vsc2UKKyAjZXJyb3IgIlRoaXMgY29k ZSBoYXNuJ3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgorICNlbmRpZgorLS0t IGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJfdW5pdHRl c3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVt cGVyX3VuaXR0ZXN0LmNjCitAQCAtNDYyLDYgKzQ2Miw5IEBAIFRFU1QoTGludXhQdHJhY2VEdW1w ZXJUZXN0LCBWZXJpZnlTdGFja1IKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgICBwaWRf dCogcHJvY2Vzc190aWRfbG9jYXRpb24gPQorICAgICAgICAgcmVpbnRlcnByZXRfY2FzdDxwaWRf dCo+KG9uZV90aHJlYWQubWNvbnRleHQuZ3JlZ3NbMV0pOworKyNlbGlmIGRlZmluZWQoX19wb3dl cnBjNjRfXykKKysgICAgcGlkX3QqIHByb2Nlc3NfdGlkX2xvY2F0aW9uID0KKysgICAgICAgIHJl aW50ZXJwcmV0X2Nhc3Q8cGlkX3QqPihvbmVfdGhyZWFkLm1jb250ZXh0LmdwX3JlZ3NbOF0pOwor ICNlbHNlCisgI2Vycm9yIFRoaXMgdGVzdCBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHRoaXMgcGxh dGZvcm0uCisgI2VuZGlmCitAQCAtNTU5LDYgKzU2Miw4IEBAIFRFU1RfRihMaW51eFB0cmFjZUR1 bXBlclRlc3QsIFNhbml0aXplU3QKKyAgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5m by5yZWdzLnJjeDsKKyAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQorICAgdWludHB0cl90IGhlYXBf YWRkciA9IHRocmVhZF9pbmZvLm1jb250ZXh0LmdyZWdzWzFdOworKyNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKKysgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5mby5tY29udGV4 dC5ncF9yZWdzWzhdOworICNlbHNlCisgI2Vycm9yIFRoaXMgdGVzdCBoYXMgbm90IGJlZW4gcG9y dGVkIHRvIHRoaXMgcGxhdGZvcm0uCisgI2VuZGlmCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjCitAQCAtMTM2LDcgKzEzNiw5IEBAIGNsYXNzIE1pbmlk dW1wV3JpdGVyIHsKKyAgICAgICA6IGZkXyhtaW5pZHVtcF9mZCksCisgICAgICAgICBwYXRoXyht aW5pZHVtcF9wYXRoKSwKKyAgICAgICAgIHVjb250ZXh0Xyhjb250ZXh0ID8gJmNvbnRleHQtPmNv bnRleHQgOiBOVUxMKSwKKy0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChf X21pcHNfXykKKysjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgICAgICAgdmVjdG9yX3N0 YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPnZlY3Rvcl9zdGF0ZSA6IE5VTEwpLAorKyNlbGlmICFk ZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgICAgICAgICBmbG9h dF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5mbG9hdF9zdGF0ZSA6IE5VTEwpLAorICNlbmRp ZgorICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAorQEAgLTQ2OCw3ICs0NzAsOSBAQCBjbGFzcyBN aW5pZHVtcFdyaXRlciB7CisgICAgICAgICBpZiAoIWNwdS5BbGxvY2F0ZSgpKQorICAgICAgICAg ICByZXR1cm4gZmFsc2U7CisgICAgICAgICBteV9tZW1zZXQoY3B1LmdldCgpLCAwLCBzaXplb2Yo UmF3Q29udGV4dENQVSkpOworLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVk KF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICAgICAgICBVQ29udGV4 dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8sIHZlY3Rvcl9zdGF0 ZV8pOworKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18p CisgICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1Y29u dGV4dF8sIGZsb2F0X3N0YXRlXyk7CisgI2Vsc2UKKyAgICAgICAgIFVDb250ZXh0UmVhZGVyOjpG aWxsQ1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250ZXh0Xyk7CitAQCAtODk3LDcgKzkwMSw3IEBA IGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKKyAgICAgZGlyZW50LT5sb2NhdGlvbi5ydmEgPSAwOwor ICAgfQorIAorLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19taXBzX18pCisrI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor ICAgYm9vbCBXcml0ZUNQVUluZm9ybWF0aW9uKE1EUmF3U3lzdGVtSW5mbyogc3lzX2luZm8pIHsK KyAgICAgY2hhciB2ZW5kb3JfaWRbc2l6ZW9mKHN5c19pbmZvLT5jcHUueDg2X2NwdV9pbmZvLnZl bmRvcl9pZCkgKyAxXSA9IHswfTsKKyAgICAgc3RhdGljIGNvbnN0IGNoYXIgdmVuZG9yX2lkX25h bWVbXSA9ICJ2ZW5kb3JfaWQiOworQEAgLTkxNyw3ICs5MjEsOSBAQCBjbGFzcyBNaW5pZHVtcFdy aXRlciB7CisgCisgICAgIC8vIHByb2Nlc3Nvcl9hcmNoaXRlY3R1cmUgc2hvdWxkIGFsd2F5cyBi ZSBzZXQsIGRvIHRoaXMgZmlyc3QKKyAgICAgc3lzX2luZm8tPnByb2Nlc3Nvcl9hcmNoaXRlY3R1 cmUgPQorLSNpZiBkZWZpbmVkKF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p CisrICAgICAgICBNRF9DUFVfQVJDSElURUNUVVJFX1BQQzY0OworKyNlbGlmIGRlZmluZWQoX19t aXBzX18pCisgIyBpZiBfTUlQU19TSU0gPT0gX0FCSU8zMgorICAgICAgICAgTURfQ1BVX0FSQ0hJ VEVDVFVSRV9NSVBTOworICMgZWxpZiBfTUlQU19TSU0gPT0gX0FCSTY0CitAQCAtMTMzMyw3ICsx MzM5LDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgeworICAgY29uc3QgY2hhciogcGF0aF87ICAv LyBQYXRoIHRvIHRoZSBmaWxlIHdoZXJlIHRoZSBtaW5pZHVtIHNob3VsZCBiZSB3cml0dGVuLgor IAorICAgY29uc3QgdWNvbnRleHRfdCogY29uc3QgdWNvbnRleHRfOyAgLy8gYWxzbyBmcm9tIHRo ZSBzaWduYWwgaGFuZGxlcgorLSNpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVk KF9fbWlwc19fKQorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBjb25zdCBnb29nbGVf YnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2ZWN0b3Jfc3RhdGVfOworKyNlbGlmICFkZWZpbmVk KF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18pCisgICBjb25zdCBnb29nbGVfYnJl YWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxvYXRfc3RhdGVfOyAgLy8gZGl0dG8KKyAjZW5kaWYK KyAgIExpbnV4RHVtcGVyKiBkdW1wZXJfOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3Jp dGVyL21pbmlkdW1wX3dyaXRlci5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bWluaWR1bXBfd3JpdGVyLmgKK0BAIC00OCw2ICs0OCw4IEBAIGNsYXNzIEV4Y2VwdGlvbkhhbmRs ZXI7CisgCisgI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCisgdHlwZWRlZiBzdHJ1Y3QgZnBzaW1k X2NvbnRleHQgZnBzdGF0ZV90OworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyt0eXBl ZGVmIHZycmVnc2V0X3QgdnN0YXRlX3Q7CisgI2VsaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAm JiAhZGVmaW5lZChfX21pcHNfXykKKyB0eXBlZGVmIHN0ZDo6cmVtb3ZlX3BvaW50ZXI8ZnByZWdz ZXRfdD46OnR5cGUgZnBzdGF0ZV90OworICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9t aXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1 bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgv bWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlcl91bml0dGVzdC5jYworQEAgLTcxNSw2ICs3 MTUsMTIgQEAgVEVTVChNaW5pZHVtcFdyaXRlclRlc3QsIEludmFsaWRTdGFja1BvaQorICNlbGlm IGRlZmluZWQoX19taXBzX18pCisgICBjb250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3Nb TURfQ09OVEVYVF9NSVBTX1JFR19TUF0gPQorICAgICAgIGludmFsaWRfc3RhY2tfcG9pbnRlcjsK KysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBjb250ZXh0LmNvbnRleHQudWNfbWNv bnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF0gPQorKyAgICAgIGludmFsaWRf c3RhY2tfcG9pbnRlcjsKKysjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisrICBjb250ZXh0 LmNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0X1JFR19TUF0gPQor KyAgICAgIGludmFsaWRfc3RhY2tfcG9pbnRlcjsKKyAjZWxzZQorICMgZXJyb3IgIlRoaXMgY29k ZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKKyAjZW5kaWYKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgv bWVtb3J5X21hcHBlZF9maWxlLmNjCitAQCAtNjUsOCArNjUsNyBAQCBib29sIE1lbW9yeU1hcHBl ZEZpbGU6Ok1hcChjb25zdCBjaGFyKiBwCisgICB9CisgCisgI2lmIGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgXAorLSAgIChkZWZpbmVkKF9fbWlwc19fKSAm JiBfTUlQU19TSU0gPT0gX0FCSTY0KQorLQorKyAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQ U19TSU0gPT0gX0FCSTY0KSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisgICBzdHJ1Y3Qga2Vy bmVsX3N0YXQgc3Q7CisgICBpZiAoc3lzX2ZzdGF0KGZkLCAmc3QpID09IC0xIHx8IHN0LnN0X3Np emUgPCAwKSB7CisgI2Vsc2UKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91 bml0dGVzdC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3VuaXR0ZXN0 LmNjCitAQCAtMTc2LDkgKzE3NiwxMCBAQCBURVNUX0YoTWVtb3J5TWFwcGVkRmlsZVRlc3QsIFJl bWFwQWZ0ZXJNCisgVEVTVF9GKE1lbW9yeU1hcHBlZEZpbGVUZXN0LCBNYXBXaXRoT2Zmc2V0KSB7 CisgICAvLyBQdXQgbW9yZSBkYXRhIGluIHRoZSB0ZXN0IGZpbGUgdGhpcyB0aW1lLiBPZmZzZXRz IGNhbiBvbmx5IGJlCisgICAvLyBkb25lIG9uIHBhZ2UgYm91bmRhcmllcywgc28gd2UgbmVlZCBh IHR3byBwYWdlIGZpbGUgdG8gdGVzdCB0aGlzLgorLSAgY29uc3QgaW50IHBhZ2Vfc2l6ZSA9IDQw OTY7CistICBjaGFyIGRhdGExWzIgKiBwYWdlX3NpemVdOworLSAgc2l6ZV90IGRhdGExX3NpemUg PSBzaXplb2YoZGF0YTEpOworKyAgY29uc3QgaW50IHBhZ2Vfc2l6ZSA9IGdldHBhZ2VzaXplKCk7 CisrICBjaGFyICpkYXRhMSA9IHN0YXRpY19jYXN0PGNoYXIqPihtYWxsb2MoMiAqIHBhZ2Vfc2l6 ZSkpOworKyAgRVhQRUNUX1RSVUUoZGF0YTEgIT0gTlVMTCk7CisrICBzaXplX3QgZGF0YTFfc2l6 ZSA9ICgyICogcGFnZV9zaXplKTsKKyAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZGF0YTFfc2l6 ZTsgKytpKSB7CisgICAgIGRhdGExW2ldID0gaSAmIDB4N2Y7CisgICB9CistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9t ZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0v dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9y X3VuaXR0ZXN0LmNjCitAQCAtNTcsOCArNTcsOSBAQCBURVNUKFBhZ2VBbGxvY2F0b3JUZXN0LCBM YXJnZU9iamVjdCkgeworIAorICAgRVhQRUNUX0VRKDBVLCBhbGxvY2F0b3IucGFnZXNfYWxsb2Nh dGVkKCkpOworICAgdWludDhfdCogcCA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGFsbG9j YXRvci5BbGxvYygxMDAwMCkpOworKyAgdWludDY0X3QgZXhwZWN0ZWRfcGFnZXMgPSAxICsgKCgx MDAwMCAtIDEpIC8gZ2V0cGFnZXNpemUoKSk7CisgICBBU1NFUlRfRkFMU0UocCA9PSBOVUxMKTsK Ky0gIEVYUEVDVF9FUSgzVSwgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKKysgIEVYUEVD VF9FUShleHBlY3RlZF9wYWdlcywgYWxsb2NhdG9yLnBhZ2VzX2FsbG9jYXRlZCgpKTsKKyAgIGZv ciAodW5zaWduZWQgaSA9IDE7IGkgPCAxMDsgKytpKSB7CisgICAgIHVpbnQ4X3QqIHAgPSByZWlu dGVycHJldF9jYXN0PHVpbnQ4X3QqPihhbGxvY2F0b3IuQWxsb2MoaSkpOworICAgICBBU1NFUlRf RkFMU0UocCA9PSBOVUxMKTsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X2xpbnV4LmNj CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51eC5jYworQEAgLTIwMiwxMiArMjAy LDE0IEBAIGJvb2wgRXhwbG9pdGFiaWxpdHlMaW51eDo6RW5kZWRPbklsbGVnYWwKKyAgIC8vIENo ZWNrIGFyY2hpdGVjdHVyZSBhbmQgc2V0IGFyY2hpdGVjdHVyZSB2YXJpYWJsZSB0byBjb3JyZXNw b25kaW5nIGZsYWcKKyAgIC8vIGluIG9iamR1bXAuCisgICBzd2l0Y2ggKGNvbnRleHQtPkdldENv bnRleHRDUFUoKSkgeworKyNpZiBkZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkK KyAgICAgY2FzZSBNRF9DT05URVhUX1g4NjoKKyAgICAgICBhcmNoaXRlY3R1cmUgPSAiaTM4NiI7 CisgICAgICAgYnJlYWs7CisgICAgIGNhc2UgTURfQ09OVEVYVF9BTUQ2NDoKKyAgICAgICBhcmNo aXRlY3R1cmUgPSAiaTM4Njp4ODYtNjQiOworICAgICAgIGJyZWFrOworKyNlbmRpZgorICAgICBk ZWZhdWx0OgorICAgICAgIC8vIFVuc3VwcG9ydGVkIGFyY2hpdGVjdHVyZS4gTm90ZSB0aGF0IEFS TSBhcmNoaXRlY3R1cmVzIGFyZSBub3QKKyAgICAgICAvLyBzdXBwb3J0ZWQgYmVjYXVzZSBvYmpk dW1wIGRvZXMgbm90IHN1cHBvcnQgQVJNLgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlf dW5pdHRlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjCitA QCAtMTA0LDYgKzEwNCw4IEBAIEV4cGxvaXRhYmlsaXR5Rm9yKGNvbnN0IHN0cmluZyYgZmlsZW5h bWUKKyB9CisgCisgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RXaW5kb3dzRW5naW5lKSB7 CisrLy8gVGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgb25seSBleGVjdXRhYmxlIG9uIGFuIHg4Ni1j bGFzcyBsaW51eCBtYWNoaW5lLgorKyNpZiAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9f aTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFk OjpFWFBMT0lUQUJJTElUWV9ISUdILAorICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJh c2NpaV9yZWFkX2F2LmRtcCIpKTsKKyAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExP SVRBQklMSVRZX0hJR0gsCitAQCAtMTM2LDkgKzEzOCwxMiBAQCBURVNUKEV4cGxvaXRhYmlsaXR5 VGVzdCwgVGVzdFdpbmRvd3NFbmdpCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoInJl YWRfYXZfY2xvYmJlcl93cml0ZS5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFk OjpFWFBMT0lUQUJJTElUWV9MT1csCisgICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoInJl YWRfYXZfY29uZGl0aW9uYWwuZG1wIikpOworKyNlbmRpZgorIH0KKyAKKyBURVNUKEV4cGxvaXRh YmlsaXR5VGVzdCwgVGVzdExpbnV4RW5naW5lKSB7CisrLy8gVGhlIGZvbGxvd2luZyB0ZXN0cyBh cmUgb25seSBleGVjdXRhYmxlIG9uIGFuIHg4Ni1jbGFzcyBsaW51eCBtYWNoaW5lLgorKyNpZiBk ZWZpbmVkKF9faTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkKKyAgIEFTU0VSVF9FUShnb29nbGVf YnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0lOVEVSRVNUSU5HLAorICAgICAgICAgICAgIEV4cGxv aXRhYmlsaXR5Rm9yKCJsaW51eF9udWxsX3JlYWRfYXYuZG1wIikpOworICAgQVNTRVJUX0VRKGdv b2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKK0BAIC0xNzEsNyArMTc2LDggQEAg VEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVuZ2luZQorICAgICAgICAgICAgIEV4 cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF9leGVjdXRhYmxlX2hlYXAuZG1wIikpOworICAgQVNTRVJU X0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKKyAgICAgICAgICAgICBF eHBsb2l0YWJpbGl0eUZvcigibGludXhfam1wX3RvX21vZHVsZV9ub3RfZXhlX3JlZ2lvbi5kbXAi KSk7CistI2lmbmRlZiBfV0lOMzIKKysjZW5kaWYKKysjaWYgIWRlZmluZWQoX1dJTjMyKSAmJiAo ZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQorICAgQVNTRVJUX0VRKGdvb2ds ZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElHSCwKKyAgICAgICAgICAgICBFeHBsb2l0YWJp bGl0eUZvcigibGludXhfd3JpdGVfdG9fbm9ud3JpdGFibGVfbW9kdWxlLmRtcCIpKTsKKyAgIEFT U0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCitAQCAtMTgyLDEw ICsxODgsMTAgQEAgVEVTVChFeHBsb2l0YWJpbGl0eVRlc3QsIFRlc3RMaW51eEVuZ2luZQorICAg ICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJsaW51eF93cml0ZV90b19vdXRzaWRlX21vZHVs ZV92aWFfbWF0aC5kbXAiKSk7CisgICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lU QUJJTElUWV9JTlRFUkVTVElORywKKyAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGlu dXhfd3JpdGVfdG9fdW5kZXJfNGsuZG1wIikpOworLSNlbmRpZiAgLy8gX1dJTjMyCisrI2VuZGlm ICAvLyAhZGVmaW5lZChfV0lOMzIpICYmICghZGVmaW5lZChfX2kzODYpICYmICFkZWZpbmVkKF9f eDg2XzY0KSkKKyB9CisgCistI2lmbmRlZiBfV0lOMzIKKysjaWYgIWRlZmluZWQoX1dJTjMyKSAm JiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQorIFRFU1QoRXhwbG9pdGFi aWxpdHlMaW51eFV0aWxzVGVzdCwgRGlzYXNzZW1ibGVCeXRlc1Rlc3QpIHsKKyAgIEFTU0VSVF9G QUxTRShFeHBsb2l0YWJpbGl0eUxpbnV4VGVzdDo6RGlzYXNzZW1ibGVCeXRlcygiIiwgTlVMTCwg NSwgTlVMTCkpOworICAgdWludDhfdCBieXRlc1s2XSA9IHsweGM3LCAweDAsIDB4NSwgMHgwLCAw eDAsIDB4MH07CitAQCAtMzAxLDYgKzMwNyw3IEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlMaW51eFV0 aWxzVGVzdCwgQ2FsY3UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjb250ZXh0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ3cml0ZV9hZGRyZXNzKSk7CisgfQorLSNlbmRp ZiAgLy8gX1dJTjMyCisrI2VuZGlmICAvLyAhZGVmaW5lZChfV0lOMzIpICYmIChkZWZpbmVkKF9f aTM4NikgfHwgZGVmaW5lZChfX3g4Nl82NCkpCisrCisgCisgfSAgLy8gbmFtZXNwYWNlCistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3Jj L3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4 L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCitAQCAtNzcsNiArNzcsOCBAQAorICAgI2RlZmlu ZSBFTEZfQVJDSCAgRU1fTUlQUworICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCisgICAjZGVm aW5lIEVMRl9BUkNIICBFTV9BQVJDSDY0CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQor KyAgI2RlZmluZSBFTEZfQVJDSCAgRU1fUFBDNjQKKyAjZW5kaWYKKyAKKyAjaWYgZGVmaW5lZChf X2FybV9fKQorQEAgLTg3LDYgKzg5LDggQEAgdHlwZWRlZiB1c2VyX3JlZ3MgdXNlcl9yZWdzX3N0 cnVjdDsKKyAjZWxpZiBkZWZpbmVkIChfX21pcHNfXykKKyAvLyBUaGlzIGZpbGUtbG9jYWwgdHlw ZWRlZiBzaW1wbGlmaWVzIHRoZSBzb3VyY2UgY29kZS4KKyB0eXBlZGVmIGdyZWdzZXRfdCB1c2Vy X3JlZ3Nfc3RydWN0OworKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKKyt0eXBlZGVmIHN0 cnVjdCBwdF9yZWdzIHVzZXJfcmVnc19zdHJ1Y3Q7CisgI2VuZGlmCisgCisgdXNpbmcgZ29vZ2xl X2JyZWFrcGFkOjpNRFR5cGVIZWxwZXI7CitAQCAtMzIyLDYgKzMyNiwxMiBAQCBzdHJ1Y3QgQ3Jh c2hlZFByb2Nlc3MgeworICNpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQorICAgICB1c2VyX2Zwc2lt ZF9zdHJ1Y3QgZnByZWdzOworICNlbmRpZgorKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCisr ICAgIG1jb250ZXh0X3QgbWNvbnRleHQ7CisrI2VuZGlmCisrI2lmIGRlZmluZWQoX19wb3dlcnBj NjRfXykKKysgICAgbWNvbnRleHRfdCBtY29udGV4dDsKKysjZW5kaWYKKyAgICAgdWludHB0cl90 IHN0YWNrX2FkZHI7CisgICAgIGNvbnN0IHVpbnQ4X3QqIHN0YWNrOworICAgICBzaXplX3Qgc3Rh Y2tfbGVuZ3RoOworQEAgLTUzNSw2ICs1NDUsMzggQEAgUGFyc2VUaHJlYWRSZWdpc3RlcnMoQ3Jh c2hlZFByb2Nlc3M6OlRocgorICAgdGhyZWFkLT5tY29udGV4dC5mcGNfZWlyID0gcmF3cmVncy0+ ZmxvYXRfc2F2ZS5maXI7CisgI2VuZGlmCisgfQorKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKKytzdGF0aWMgdm9pZAorK1BhcnNlVGhyZWFkUmVnaXN0ZXJzKENyYXNoZWRQcm9jZXNzOjpU aHJlYWQqIHRocmVhZCwKKysgICAgICAgICAgICAgICAgICAgICBjb25zdCBNaW5pZHVtcE1lbW9y eVJhbmdlJiByYW5nZSkgeworKyAgY29uc3QgTURSYXdDb250ZXh0UFBDNjQqIHJhd3JlZ3MgPSBy YW5nZS5HZXREYXRhPE1EUmF3Q29udGV4dFBQQzY0PigwKTsKKysKKysgIGZvciAoaW50IGkgPSAw OyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJfQ09VTlQ7IGkrKykKKysgICAgdGhyZWFkLT5tY29u dGV4dC5ncF9yZWdzW2ldID0gcmF3cmVncy0+Z3ByW2ldOworKworKyAgdGhyZWFkLT5tY29udGV4 dC5ncF9yZWdzW1BUX0xOS10gPSByYXdyZWdzLT5scjsKKysgIHRocmVhZC0+bWNvbnRleHQuZ3Bf cmVnc1tQVF9OSVBdID0gcmF3cmVncy0+c3JyMDsKKysgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVn c1tQVF9NU1JdID0gcmF3cmVncy0+c3JyMTsKKysgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQ VF9DQ1JdID0gcmF3cmVncy0+Y3I7CisrICB0aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfWEVS XSA9IHJhd3JlZ3MtPnhlcjsKKysgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdID0g cmF3cmVncy0+Y3RyOworKyAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZyc2F2ZSA9IHJhd3Jl Z3MtPnZyc2F2ZTsKKysKKysgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJF QV9QUENfRlBSX0NPVU5UOyBpKyspCisrICAgICAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW2ld ID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV07CisrCisrICB0aHJlYWQtPm1jb250ZXh0 LmZwX3JlZ3NbTkZQUkVHLTFdID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5mcHNjcjsKKysKKysgIGZv ciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9SU0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspIHsK KysgICAgICB0aHJlYWQtPm1jb250ZXh0LnZfcmVncy0+dnJyZWdzW2ldWzBdID0gcmF3cmVncy0+ dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5oaWdoID4+IDMyOworKyAgICAgIHRocmVhZC0+bWNvbnRl eHQudl9yZWdzLT52cnJlZ3NbaV1bMV0gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ld LmhpZ2g7CisrICAgICAgdGhyZWFkLT5tY29udGV4dC52X3JlZ3MtPnZycmVnc1tpXVsyXSA9IHJh d3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJbaV0ubG93ID4+IDMyOworKyAgICAgIHRocmVhZC0+ bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bM10gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZl X3ZyW2ldLmxvdzsKKysgIH0KKysKKysgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52c2NyLnZz Y3Jfd29yZCA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjci5sb3cgJiAweEZGRkZGRkZG OworK30KKysKKyAjZWxzZQorICNlcnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQg dG8geW91ciBwbGF0Zm9ybSB5ZXQiCisgI2VuZGlmCitAQCAtNjIzLDYgKzY2NSwxMiBAQCBQYXJz ZVN5c3RlbUluZm8oY29uc3QgT3B0aW9ucyYgb3B0aW9ucywKKyAjIGVsc2UKKyAjICBlcnJvciAi VGhpcyBtaXBzIEFCSSBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCAobjMyKSIKKyAjIGVuZGlm CisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyAgaWYgKHN5c2luZm8tPnByb2Nlc3Nv cl9hcmNoaXRlY3R1cmUgIT0gTURfQ1BVX0FSQ0hJVEVDVFVSRV9QUEM2NCkgeworKyAgICBmcHJp bnRmKHN0ZGVyciwKKysgICAgICAgICAgICAiVGhpcyB2ZXJzaW9uIG9mIG1pbmlkdW1wLTItY29y ZSBvbmx5IHN1cHBvcnRzIFBQQzY0LlxuIik7CisrICAgIGV4aXQoMSk7CisrICB9CisgI2Vsc2UK KyAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0g eWV0IgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL0NPTlRSSUJVVE9SUworQEAgLTEzLDMgKzEz LDQgQEAgTWFyayBNZW50b3ZhaSA8bWFya0BjaHJvbWl1bS5vcmc+CisgUm9iZXJ0IFNlc2VrIDxy c2VzZWtAY2hyb21pdW0ub3JnPgorIFNjb3R0IEdyYWhhbSA8c2NvdHRtZ0BjaHJvbWl1bS5vcmc+ CisgSm9zaHVhIFBlcmF6YSA8anBlcmF6YUBjaHJvbWl1bS5vcmc+CisrU2hhd24gQW5hc3Rhc2lv IDxzaGF3bkBhbmFzdGFzLmlvPgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvY29tcGF0L2xp bnV4L3N5cy91c2VyLmgKK0BAIC0xNSw2ICsxNSw3IEBACisgI2lmbmRlZiBDUkFTSFBBRF9DT01Q QVRfTElOVVhfU1lTX1VTRVJfSF8KKyAjZGVmaW5lIENSQVNIUEFEX0NPTVBBVF9MSU5VWF9TWVNf VVNFUl9IXworIAorKyNpbmNsdWRlIDxjc3RkZGVmPgorICNpbmNsdWRlX25leHQgPHN5cy91c2Vy Lmg+CisgCisgI2luY2x1ZGUgPGZlYXR1cmVzLmg+CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4 dC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dC5oCitAQCAtNTkyLDYgKzU5Miw3MCBAQCBz dHJ1Y3QgTWluaWR1bXBDb250ZXh0TUlQUzY0IHsKKyAgIHVpbnQ2NF90IGZpcjsKKyB9OworIAor Ky8vISBcYnJpZWYgcHBjNjQtc3BlY2lmaWMgZmxhZ3MgZm9yIE1pbmlkdW1wUFBDNjQ6OmNvbnRl eHRfZmxhZ3MKKysvLyEgQmFzZWQgb24gbWluaWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3Bh ZAorK2VudW0gTWluaWR1bXBDb250ZXh0UFBDNjRGbGFncyA6IHVpbnQzMl90IHsKKysgIC8vISBc YnJpZWYgSWRlbnRpZmllcyB0aGUgY29udGV4dCBhcyBQUEM2NC4KKysgIGtNaW5pZHVtcENvbnRl eHRQUEM2NCA9IDB4MDEwMDAwMDAsCisrCisrICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFs aWRpdHkgb2YgZ2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KKysgIC8vIQorKyAgLy8hIFJlZ2lz dGVycyBgcjBgLWByMzFgLCBgbmlwYCwgYG1zcmAsIGBscmAsIGV0Yy4gYXJlIHZhbGlkLgorKyAg a01pbmlkdW1wQ29udGV4dFBQQzY0QmFzZSA9IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8IDB4MDAw MDAwMDEsCisrCisrICAvLyEgXGJyaWVmIEluZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgZmxvYXRp bmcgcG9pbnQgcmVnaXN0ZXJzLgorKyAgLy8hCisrICAvLyEgUmVnaXN0ZXJzIGBmcDBgLWBmcDMx YCwgYGZwc2NyYCBhcmUgdmFsaWQuCisrICBrTWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyA9 IGtNaW5pZHVtcENvbnRleHRQUEM2NCB8IDB4MDAwMDAwMDgsCisrCisrICAvLyEgXGJyaWVmIElu ZGljYXRlcyB0aGUgdmFsaWRpdHkgb2YgQWx0aXZlYy9WTVggcmVnaXN0ZXJzLgorKyAgLy8hCisr ICAvLyEgUmVnaXN0ZXJzIGB2MGAtYHYzMWAsIGB2c2NyYCwgYHZyc2F2ZWAuCisrICBrTWluaWR1 bXBDb250ZXh0UFBDNjRWZWN0b3IgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDIw LAorKworKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGFsbCByZWdpc3Rl cnMKKysgIGtNaW5pZHVtcENvbnRleHRQUEM2NEFsbCA9IGtNaW5pZHVtcENvbnRleHRQUEM2NEJh c2UgICAgIHwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNaW5pZHVtcENvbnRleHRQ UEM2NEZsb2F0aW5nIHwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtNaW5pZHVtcENv bnRleHRQUEM2NFZlY3RvcgorK307CisrCisrLy8hIFxicmllZiBBIFBQQzY0IENQVSBjb250ZXh0 IGNhcnJpZWQgaW4gYSBtaW5pZHVtcCBmaWxlLgorKy8vISBCYXNlZCBvbiBtaW5pZHVtcF9jcHVf cHBjNjQuaCBmcm9tIGJyZWFrcGFkLgorK3N0cnVjdCBNaW5pZHVtcENvbnRleHRQUEM2NCB7Cisr ICB1aW50NjRfdCBjb250ZXh0X2ZsYWdzOworKworKyAgLy8hIFxicmllZiBHZW5lcmFsIHB1cnBv c2UgcmVnaXN0ZXJzLgorKyAgdWludDY0X3QgbmlwOworKyAgdWludDY0X3QgbXNyOworKyAgdWlu dDY0X3QgcmVnc1szMl07CisrICB1aW50NjRfdCBjY3I7CisrICB1aW50NjRfdCB4ZXI7CisrICB1 aW50NjRfdCBsbms7CisrICB1aW50NjRfdCBjdHI7CisrCisrICAvLyEgXGJyaWVmIEZsb2F0aW5n IHBvaW50IHJlZ2lzdGVycy4KKysgIGRvdWJsZSBmcHJlZ3NbMzJdOworKworKyAgLy8hIFxicmll ZiBGUFUgc3RhdHVzIHJlZ2lzdGVyLgorKyAgZG91YmxlIGZwc2NyOworKworKyAgLy8hIFxicmll ZiBBbHRpdmVjL1ZNWCB2ZWN0b3IgcmVnaXN0ZXJzLgorKyAgc3RydWN0IHsKKysgICAgICAvLyEg XGJyaWVmIFZlY3RvciByZWdpc3RlcnMgYXJlIDEyOGJpdHMuCisrICAgICAgdWludDEyOF9zdHJ1 Y3Qgc2F2ZV92clszMl07CisrICAgICAgdWludDEyOF9zdHJ1Y3Qgc2F2ZV92c2NyOworKworKyAg ICAgIC8vISBcYnJpZWYgUGFkZGluZyBpbmNsdWRlZCBmb3IgYnJlYWtwYWQgY29tcGF0aWJpbHRp eS4KKysgICAgICB1aW50MzJfdCBzYXZlX3BhZDVbNF07CisrCisrICAgICAgLy8hIFxicmllZiBW UlNBVkUgcmVnaXN0ZXIuCisrICAgICAgdWludDMyX3Qgc2F2ZV92cnNhdmU7CisrCisrICAgICAg Ly8hIFxicmllZiBQYWRkaW5nIGluY2x1ZGVkIGZvciBicmVha3BhZCBjb21wYXRpYmlsdGl5Lgor KyAgICAgIHVpbnQzMl90IHNhdmVfcGFkNls3XTsKKysgIH0gdnJlZ3M7CisrfTsKKysKKyB9ICAv LyBuYW1lc3BhY2UgY3Jhc2hwYWQKKyAKKyAjZW5kaWYgIC8vIENSQVNIUEFEX01JTklEVU1QX01J TklEVU1QX0NPTlRFWFRfSF8KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5jYwor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjCitAQCAtMTAxLDYgKzEwMSwxMyBA QCBNaW5pZHVtcENvbnRleHRXcml0ZXI6OkNyZWF0ZUZyb21TbmFwc2hvCisgICAgICAgYnJlYWs7 CisgICAgIH0KKyAKKysgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6IHsKKysgICAgICBj b250ZXh0ID0gc3RkOjptYWtlX3VuaXF1ZTxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcj4oKTsK KysgICAgICByZWludGVycHJldF9jYXN0PE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKj4oY29u dGV4dC5nZXQoKSkKKysgICAgICAgICAgLT5Jbml0YWxpemVGcm9tU25hcHNob3QoY29udGV4dF9z bmFwc2hvdC0+cHBjNjQpOworKyAgICAgIGJyZWFrOworKyAgICB9CisrCisgICAgIGRlZmF1bHQ6 IHsKKyAgICAgICBMT0coRVJST1IpIDw8ICJ1bmtub3duIGNvbnRleHQgYXJjaGl0ZWN0dXJlICIK KyAgICAgICAgICAgICAgICAgIDw8IGNvbnRleHRfc25hcHNob3QtPmFyY2hpdGVjdHVyZTsKKy0t LSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9t aW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dyaXRlci5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29u dGV4dF93cml0ZXIuaAorQEAgLTMxNSw2ICszMTUsNDUgQEAgY2xhc3MgTWluaWR1bXBDb250ZXh0 TUlQUzY0V3JpdGVyIGZpbmFsCisgICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oTWluaWR1bXBD b250ZXh0TUlQUzY0V3JpdGVyKTsKKyB9OworIAorK2NsYXNzIE1pbmlkdW1wQ29udGV4dFBQQzY0 V3JpdGVyIGZpbmFsIDogcHVibGljIE1pbmlkdW1wQ29udGV4dFdyaXRlciB7CisrIHB1YmxpYzoK KysgIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyKCk7CisrICB+TWluaWR1bXBDb250ZXh0UFBD NjRXcml0ZXIoKSBvdmVycmlkZTsKKysKKysgIC8vISBcYnJpZWYgSW5pdGFsaXplcyB0aGUgTWlu aWR1bXBDb250ZXh0UFBDNjQgYmFzZWQgb24gXGEgY29udGV4dF9zbmFwc2hvdC4KKysgIC8vIQor KyAgLy8hIFxwYXJhbVtpbl0gY29udGV4dF9zbmFwc2hvdCBUaGUgY29udGV4dCBzbmFwc2hvdCB0 byB1c2UgYXMgc291cmNlIGRhdGEuCisrICAvLyEKKysgIC8vISBcbm90ZSBWYWxpZCBpbiAja1N0 YXRlTXV0YWJsZS4gTm8gbXV0YXRpb24gb2YgY29udGV4dCgpIG1heSBiZSBkb25lIGJlZm9yZQor KyAgLy8hICAgICBjYWxsaW5nIHRoaXMgbWV0aG9kLCBhbmQgaXQgaXMgbm90IG5vcm1hbGx5IG5l Y2Vzc2FyeSB0byBhbHRlcgorKyAgLy8hICAgICBjb250ZXh0KCkgYWZ0ZXIgY2FsbGluZyB0aGlz IG1ldGhvZC4KKysgIHZvaWQgSW5pdGFsaXplRnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRleHRQ UEM2NCogY29udGV4dF9zbmFwc2hvdCk7CisrCisrICAvLyEgXGJyaWVmIFJldHVybnMgYSBwb2lu dGVyIHRvIHRoZSBjb250ZXh0IHN0cnVjdHVyZSB0aGF0IHRoaXMgb2JqZWN0IHdpbGwKKysgIC8v ISAgICAgd3JpdGUuCisrICAvLyEKKysgIC8vISBcYXR0ZW50aW9uIFRoaXMgcmV0dXJucyBhIG5v bi1gY29uc3RgIHBvaW50ZXIgdG8gdGhpcyBvYmplY3TigJlzIHByaXZhdGUKKysgIC8vISAgICAg ZGF0YSBzbyB0aGF0IGEgY2FsbGVyIGNhbiBwb3B1bGF0ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUg ZGlyZWN0bHkuCisrICAvLyEgICAgIFRoaXMgaXMgZG9uZSBiZWNhdXNlIHByb3ZpZGluZyBzZXR0 ZXIgaW50ZXJmYWNlcyB0byBlYWNoIGZpZWxkIGluIHRoZQorKyAgLy8hICAgICBjb250ZXh0IHN0 cnVjdHVyZSB3b3VsZCBiZSB1bndpZWxkeSBhbmQgY3VtYmVyc29tZS4gQ2FyZSBtdXN0IGJlIHRh a2VuCisrICAvLyEgICAgIHRvIHBvcHVsYXRlIHRoZSBjb250ZXh0IHN0cnVjdHVyZSBjb3JyZWN0 bHkuIFRoZSBjb250ZXh0IHN0cnVjdHVyZQorKyAgLy8hICAgICBtdXN0IG9ubHkgYmUgbW9kaWZp ZWQgd2hpbGUgdGhpcyBvYmplY3QgaXMgaW4gdGhlICNrU3RhdGVNdXRhYmxlCisrICAvLyEgICAg IHN0YXRlLgorKyAgTWluaWR1bXBDb250ZXh0UFBDNjQqIGNvbnRleHQoKSB7IHJldHVybiAmY29u dGV4dF87IH0KKysKKysgcHJvdGVjdGVkOgorKyAgLy8gTWluaWR1bXBXcml0YWJsZToKKysgIGJv b2wgV3JpdGVPYmplY3QoRmlsZVdyaXRlckludGVyZmFjZSogZmlsZV93cml0ZXIpIG92ZXJyaWRl OworKworKyAgLy8gTWluaWR1bXBDb250ZXh0V3JpdGVyOgorKyAgc2l6ZV90IENvbnRleHRTaXpl KCkgY29uc3Qgb3ZlcnJpZGU7CisrCisrIHByaXZhdGU6CisrICBNaW5pZHVtcENvbnRleHRQUEM2 NCBjb250ZXh0XzsKKysKKysgIERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihNaW5pZHVtcENvbnRl eHRQUEM2NFdyaXRlcik7CisrfTsKKysKKyB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKKyAKKyAj ZW5kaWYgIC8vIENSQVNIUEFEX01JTklEVU1QX01JTklEVU1QX0NPTlRFWFRfV1JJVEVSX0hfCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv bWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXJfdGVzdC5jYworKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlk dW1wX2NvbnRleHRfd3JpdGVyX3Rlc3QuY2MKK0BAIC0yMTMsNiArMjEzLDIxIEBAIFRFU1QoTWlu aWR1bXBDb250ZXh0V3JpdGVyLCBNSVBTNjRfRnJvbVMKKyAgICAgICBjb250ZXh0LCBFeHBlY3RN aW5pZHVtcENvbnRleHRNSVBTNjQsIGtTZWVkKTsKKyB9CisgCisrVEVTVChNaW5pZHVtcENvbnRl eHRXcml0ZXIsIFBQQzY0X1plcm9zKSB7CisrICBFbXB0eUNvbnRleHRUZXN0PE1pbmlkdW1wQ29u dGV4dFBQQzY0V3JpdGVyLCBNaW5pZHVtcENvbnRleHRQUEM2ND4oCisrICAgIEV4cGVjdE1pbmlk dW1wQ29udGV4dFBQQzY0KTsKKyt9CisrCisrVEVTVChNaW5pZHVtcENvbnRleHRXcml0ZXIsIFBQ QzY0X0Zyb21TbmFwc2hvdCkgeworKyAgY29uc3RleHByIHVpbnQzMl90IGtTZWVkID0gNjQ7Cisr ICBDUFVDb250ZXh0UFBDNjQgY29udGV4dF9wcGM2NDsKKysgIENQVUNvbnRleHQgY29udGV4dDsK KysgIGNvbnRleHQucHBjNjQgPSAmY29udGV4dF9wcGM2NDsKKysgIEluaXRpYWxpemVDUFVDb250 ZXh0UFBDNjQoJmNvbnRleHQsIGtTZWVkKTsKKysgIEZyb21TbmFwc2hvdFRlc3Q8TWluaWR1bXBD b250ZXh0UFBDNjRXcml0ZXIsIE1pbmlkdW1wQ29udGV4dFBQQzY0PigKKysgICAgICBjb250ZXh0 LCBFeHBlY3RNaW5pZHVtcENvbnRleHRQUEM2NCwga1NlZWQpOworK30KKysKKyB9ICAvLyBuYW1l c3BhY2UKKyB9ICAvLyBuYW1lc3BhY2UgdGVzdAorIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MKKysrKyBiL3NyYy8zcmRwYXJ0 eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVt cF9taXNjX2luZm9fd3JpdGVyLmNjCitAQCAtMTM1LDYgKzEzNSw4IEBAIHN0ZDo6c3RyaW5nIE1p bmlkdW1wTWlzY0luZm9EZWJ1Z0J1aWxkU3QKKyAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrQ1BV W10gPSAibWlwcyI7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTNjRFTCkKKyAgIHN0YXRp YyBjb25zdGV4cHIgY2hhciBrQ1BVW10gPSAibWlwczY0IjsKKysjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX1BQQzY0KQorKyAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9ICJwcGM2NCI7Cisg I2Vsc2UKKyAjZXJyb3IgZGVmaW5lIGtDUFUgZm9yIHRoaXMgQ1BVCisgI2VuZGlmCistLS0gYS9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvY2FwdHVyZV9tZW1vcnkuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYworQEAgLTEx Miw2ICsxMTIsMTEgQEAgdm9pZCBDYXB0dXJlTWVtb3J5OjpQb2ludGVkVG9CeUNvbnRleHQoYwor ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBiYXNlOjpzaXplKGNvbnRleHQubWlwc2VsLT5yZWdz KTsgKytpKSB7CisgICAgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0ZSwgY29udGV4 dC5taXBzZWwtPnJlZ3NbaV0pOworICAgfQorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQorKyAgTWF5YmVDYXB0dXJlTWVtb3J5QXJvdW5kKGRlbGVnYXRlLCBjb250ZXh0LnBw YzY0LT5uaXApOworKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBiYXNlOjpzaXplKGNvbnRleHQu cHBjNjQtPnJlZ3MpOyArK2kpIHsKKysgICAgTWF5YmVDYXB0dXJlTWVtb3J5QXJvdW5kKGRlbGVn YXRlLCBjb250ZXh0LnBwYzY0LT5yZWdzW2ldKTsKKysgIH0KKyAjZWxzZQorICNlcnJvciBQb3J0 LgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9hcmNoaXRlY3R1cmUuaAorKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9h cmNoaXRlY3R1cmUuaAorQEAgLTQzLDcgKzQzLDEwIEBAIGVudW0gQ1BVQXJjaGl0ZWN0dXJlIHsK KyAgIGtDUFVBcmNoaXRlY3R1cmVNSVBTRUwsCisgCisgICAvLyEgXGJyaWVmIDY0LWJpdCBNSVBT RUwuCistICBrQ1BVQXJjaGl0ZWN0dXJlTUlQUzY0RUwKKysgIGtDUFVBcmNoaXRlY3R1cmVNSVBT NjRFTCwKKysKKysgIC8vISBcYnJpZWYgNjQtYml0IFBQQzY0LgorKyAga0NQVUFyY2hpdGVjdHVy ZVBQQzY0CisgfTsKKyAKKyB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVf Y29udGV4dC5jYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCitAQCAtMTY5LDYgKzE2OSw4IEBA IHVpbnQ2NF90IENQVUNvbnRleHQ6Okluc3RydWN0aW9uUG9pbnRlcigKKyAgICAgICByZXR1cm4g YXJtLT5wYzsKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6CisgICAgICAgcmV0dXJu IGFybTY0LT5wYzsKKysgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6CisrICAgICAgcmV0 dXJuIHBwYzY0LT5uaXA7CisgICAgIGRlZmF1bHQ6CisgICAgICAgTk9UUkVBQ0hFRCgpOworICAg ICAgIHJldHVybiB+MHVsbDsKK0BAIC0xODUsNiArMTg3LDggQEAgdWludDY0X3QgQ1BVQ29udGV4 dDo6U3RhY2tQb2ludGVyKCkgY29ucworICAgICAgIHJldHVybiBhcm0tPnNwOworICAgICBjYXNl IGtDUFVBcmNoaXRlY3R1cmVBUk02NDoKKyAgICAgICByZXR1cm4gYXJtNjQtPnNwOworKyAgICBj YXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDoKKysgICAgICByZXR1cm4gcHBjNjQtPnJlZ3NbMV07 CisgICAgIGRlZmF1bHQ6CisgICAgICAgTk9UUkVBQ0hFRCgpOworICAgICAgIHJldHVybiB+MHVs bDsKK0BAIC0xOTYsNiArMjAwLDcgQEAgYm9vbCBDUFVDb250ZXh0OjpJczY0Qml0KCkgY29uc3Qg eworICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVYODZfNjQ6CisgICAgIGNhc2Uga0NQVUFyY2hp dGVjdHVyZUFSTTY0OgorICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTDoKKysgICAg Y2FzZSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ6CisgICAgICAgcmV0dXJuIHRydWU7CisgICAgIGNh c2Uga0NQVUFyY2hpdGVjdHVyZVg4NjoKKyAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNOgor LS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3NuYXBzaG90L2NwdV9jb250ZXh0LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCitAQCAtMzUy LDYgKzM1MiwyNCBAQCBzdHJ1Y3QgQ1BVQ29udGV4dE1JUFM2NCB7CisgICB1aW50NjRfdCBmaXI7 CisgfTsKKyAKKysvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2FycnlpbmcgUFBDNjQg Q1BVIHN0YXRlLgorK3N0cnVjdCBDUFVDb250ZXh0UFBDNjQgeworKyAgdWludDY0X3QgbmlwOwor KyAgdWludDY0X3QgbXNyOworKyAgdWludDY0X3QgcmVnc1szMl07CisrICB1aW50NjRfdCBjY3I7 CisrICB1aW50NjRfdCB4ZXI7CisrICB1aW50NjRfdCBsbms7CisrICB1aW50NjRfdCBjdHI7Cisr ICBkb3VibGUgZnByZWdzWzMyXTsKKysgIGRvdWJsZSBmcHNjcjsKKysgIHN0cnVjdCB7CisrICAg IHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOworKyAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3Zz Y3I7CisrICAgIHVpbnQzMl90IHNhdmVfdnJzYXZlOworKyAgfSB2cmVnczsKKyt9OworKworIC8v ISBcYnJpZWYgQSBjb250ZXh0IHN0cnVjdHVyZSBjYXBhYmxlIG9mIGNhcnJ5aW5nIHRoZSBjb250 ZXh0IG9mIGFueSBzdXBwb3J0ZWQKKyAvLyEgICAgIENQVSBhcmNoaXRlY3R1cmUuCisgc3RydWN0 IENQVUNvbnRleHQgeworQEAgLTM4Miw2ICs0MDAsNyBAQCBzdHJ1Y3QgQ1BVQ29udGV4dCB7Cisg ICAgIENQVUNvbnRleHRBUk02NCogYXJtNjQ7CisgICAgIENQVUNvbnRleHRNSVBTKiBtaXBzZWw7 CisgICAgIENQVUNvbnRleHRNSVBTNjQqIG1pcHM2NDsKKysgICAgQ1BVQ29udGV4dFBQQzY0KiBw cGM2NDsKKyAgIH07CisgfTsKKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51eC5o CisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaAorQEAgLTE1LDYgKzE1LDcgQEAK KyAjaWZuZGVmIENSQVNIUEFEX1NOQVBTSE9UX0xJTlVYX0NQVV9DT05URVhUX0xJTlVYX0hfCisg I2RlZmluZSBDUkFTSFBBRF9TTkFQU0hPVF9MSU5VWF9DUFVfQ09OVEVYVF9MSU5VWF9IXworIAor KyNpbmNsdWRlIDxjc3RyaW5nPgorICNpbmNsdWRlICJidWlsZC9idWlsZF9jb25maWcuaCIKKyAj aW5jbHVkZSAic25hcHNob3QvY3B1X2NvbnRleHQuaCIKKyAjaW5jbHVkZSAic25hcHNob3QvbGlu dXgvc2lnbmFsX2NvbnRleHQuaCIKK0BAIC0xNzQsNiArMTc1LDc2IEBAIHZvaWQgSW5pdGlhbGl6 ZUNQVUNvbnRleHRNSVBTKAorIAorICNlbmRpZiAgLy8gQVJDSF9DUFVfTUlQU19GQU1JTFkgfHwg RE9YWUdFTgorIAorKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkgfHwgRE9YWUdF TgorKworKy8vISBcYnJpZWYgSW5pdGFsaXplcyBhIENQVUNvbnRleHRQUEM2NCBzdHJ1Y3R1cmUg ZnJvbSBuYXRpdmUgY29udGV4dAorKy8vISAgICAgc3RydWN0dXJlcyBvbiBMaW51eC4KKysvLyEK KysvLyEgXHBhcmFtW2luXSB0aHJlYWRfY29udGV4dCBUaGUgbmF0aXZlIHRocmVhZCBjb250ZXh0 LgorKy8vISBccGFyYW1baW5dIGZsb2F0X2NvbnRleHQgVGhlIG5hdGl2ZSBmbG9hdCBjb250ZXh0 LgorKy8vISBccGFyYW1baW5dIHZlY3Rvcl9jb250ZXh0IFRoZSBuYXRpdmUgdmVjdG9yIGNvbnRl eHQuCisrLy8hIFxwYXJhbVtvdXRdIGNvbnRleHQgVGhlIENQVUNvbnRleHRQUEM2NCBzdHJ1Y3R1 cmUgdG8gaW5pdGFsaXplLgorK3RlbXBsYXRlIDx0eXBlbmFtZSBUcmFpdHM+Cisrdm9pZCBJbml0 aWFsaXplQ1BVQ29udGV4dFBQQzY0KAorKyAgICBjb25zdCBUaHJlYWRDb250ZXh0Ojp0NjRfdCYg dGhyZWFkX2NvbnRleHQsCisrICAgIGNvbnN0IEZsb2F0Q29udGV4dDo6ZjY0X3QmIGZsb2F0X2Nv bnRleHQsCisrICAgIGNvbnN0IFZlY3RvckNvbnRleHQ6OnY2NF90JiB2ZWN0b3JfY29udGV4dCwK KysgICAgdHlwZW5hbWUgVHJhaXRzOjpDUFVDb250ZXh0KiBjb250ZXh0KSB7CisrCisrICBtZW1j cHkoY29udGV4dC0+cmVncywgdGhyZWFkX2NvbnRleHQuZ3ByLCBzaXplb2YoY29udGV4dC0+cmVn cykpOworKyAgY29udGV4dC0+bmlwID0gdGhyZWFkX2NvbnRleHQubmlwOworKyAgY29udGV4dC0+ bXNyID0gdGhyZWFkX2NvbnRleHQubXNyOworKyAgY29udGV4dC0+Y2NyID0gdGhyZWFkX2NvbnRl eHQuY2NyOworKyAgY29udGV4dC0+eGVyID0gdGhyZWFkX2NvbnRleHQueGVyOworKyAgY29udGV4 dC0+bG5rID0gdGhyZWFkX2NvbnRleHQubG5rOworKyAgY29udGV4dC0+Y3RyID0gdGhyZWFkX2Nv bnRleHQuY3RyOworKworKyAgbWVtY3B5KGNvbnRleHQtPmZwcmVncywgZmxvYXRfY29udGV4dC5m cHJlZ3MsIHNpemVvZihjb250ZXh0LT5mcHJlZ3MpKTsKKysgIGNvbnRleHQtPmZwc2NyID0gZmxv YXRfY29udGV4dC5mcHNjcjsKKysKKysgIGZvciAodWludDhfdCBpID0gMDsgaSA8IDMyOyBpKysp IHsKKysgICAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cltpXSA9IHsKKysgICAgICAoKCh1aW50NjRf dCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMF0pIDw8IDMyKSB8CisrICAgICAgICB2ZWN0b3Jf Y29udGV4dC52cnJlZ3NbaV1bMV0sCisrICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQu dnJyZWdzW2ldWzJdKSA8PCAzMikgfAorKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ld WzNdCisrICAgIH07CisrICB9CisrICBjb250ZXh0LT52cmVncy5zYXZlX3Zyc2F2ZSA9IHZlY3Rv cl9jb250ZXh0LnZyc2F2ZTsKKysgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnNjciA9IHswLCAodWlu dDY0X3QpdmVjdG9yX2NvbnRleHQudnNjci52c2NyX3dvcmR9OworK30KKysKKyt0ZW1wbGF0ZSA8 dHlwZW5hbWUgVHJhaXRzPgorK3ZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgKKysgICAg Y29uc3QgU2lnbmFsVGhyZWFkQ29udGV4dDY0ICZ0aHJlYWRfY29udGV4dCwKKysgICAgY29uc3Qg U2lnbmFsRmxvYXRDb250ZXh0NjQgJmZsb2F0X2NvbnRleHQsCisrICAgIGNvbnN0IFNpZ25hbFZl Y3RvckNvbnRleHQ2NCAmdmVjdG9yX2NvbnRleHQsCisrICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BV Q29udGV4dCogY29udGV4dCkgeworKworKyAgbWVtY3B5KGNvbnRleHQtPnJlZ3MsIHRocmVhZF9j b250ZXh0LnJlZ3MsIHNpemVvZihjb250ZXh0LT5yZWdzKSk7CisrICBjb250ZXh0LT5uaXAgPSB0 aHJlYWRfY29udGV4dC5uaXA7CisrICBjb250ZXh0LT5tc3IgPSB0aHJlYWRfY29udGV4dC5tc3I7 CisrICBjb250ZXh0LT5jY3IgPSB0aHJlYWRfY29udGV4dC5jY3I7CisrICBjb250ZXh0LT54ZXIg PSB0aHJlYWRfY29udGV4dC54ZXI7CisrICBjb250ZXh0LT5sbmsgPSB0aHJlYWRfY29udGV4dC5s bms7CisrICBjb250ZXh0LT5jdHIgPSB0aHJlYWRfY29udGV4dC5jdHI7CisrCisrICBtZW1jcHko Y29udGV4dC0+ZnByZWdzLCBmbG9hdF9jb250ZXh0LnJlZ3MsIHNpemVvZihjb250ZXh0LT5mcHJl Z3MpKTsKKysgIGNvbnRleHQtPmZwc2NyID0gZmxvYXRfY29udGV4dC5mcHNjcjsKKysKKysgIGZv ciAodWludDhfdCBpID0gMDsgaSA8IDMyOyBpKyspIHsKKysgICAgY29udGV4dC0+dnJlZ3Muc2F2 ZV92cltpXSA9IHsKKysgICAgICAoKCh1aW50NjRfdCl2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1b MF0pIDw8IDMyKSB8CisrICAgICAgICB2ZWN0b3JfY29udGV4dC52cnJlZ3NbaV1bMV0sCisrICAg ICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzJdKSA8PCAzMikgfAorKyAg ICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzNdCisrICAgIH07CisrICB9CisrICBjb250 ZXh0LT52cmVncy5zYXZlX3Zyc2F2ZSA9IHZlY3Rvcl9jb250ZXh0LnZyc2F2ZTsKKysgIGNvbnRl eHQtPnZyZWdzLnNhdmVfdnNjciA9IHswLCAodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnNjci52 c2NyX3dvcmR9OworK30KKysKKysjZW5kaWYKKyB9ICAvLyBuYW1lc3BhY2UgaW50ZXJuYWwKKyB9 ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2 b3VzX3Rlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MKK0BA IC0xOTIsNiArMTkyLDggQEAgdm9pZCBUZXN0QWdhaW5zdFRhcmdldChQdHJhY2VDb25uZWN0aW9u KgorICAgICAgICAgICAgICAgZGV2aWNlID09IDAgJiYgaW5vZGUgPT0gMCAmJiBtYXBwaW5nX25h bWUgPT0gIlt2ZHNvXSI7CisgI2lmIGRlZmluZWQoQVJDSF9DUFVfWDg2KQorICAgICAgICAgICBz dGF0aWMgY29uc3RleHByIGNoYXIga1ByZWZpeFtdID0gImxpbnV4LWdhdGUuc28uIjsKKysjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQorKyAgICAgICAgICBzdGF0aWMgY29uc3RleHByIGNo YXIga1ByZWZpeFtdID0gImxpbnV4LXZkc282NC5zby4iOworICNlbHNlCisgICAgICAgICAgIHN0 YXRpYyBjb25zdGV4cHIgY2hhciBrUHJlZml4W10gPSAibGludXgtdmRzby5zby4iOworICNlbmRp ZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5jYworKysrIGIvc3Jj LzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90 L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5jYworQEAgLTMyMyw2ICszMjMsNjkgQEAg Ym9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpSZWFkQ29udGV4dAorICAgICAgIHJlYWRlciwg Y29udGV4dF9hZGRyZXNzLCBjb250ZXh0Xy5taXBzNjQpOworIH0KKyAKKysjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysKKyt0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJhaXRzPgor K3N0YXRpYyBib29sIFJlYWRDb250ZXh0KFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAorKyAg ICAgICAgICAgICAgICAgICAgICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcywKKysg ICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGRlc3Rf Y29udGV4dCkgeworKyAgY29uc3QgUHJvY2Vzc01lbW9yeSogbWVtb3J5ID0gcmVhZGVyLT5NZW1v cnkoKTsKKysKKysgIExpbnV4Vk1BZGRyZXNzIGdwX3JlZ3NfYWRkcmVzcyA9IGNvbnRleHRfYWRk cmVzcyArCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihVQ29u dGV4dCwgbWNvbnRleHQpICsKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9m ZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIGdwX3JlZ3MpOworKworKyAgdHlwZW5h bWUgVHJhaXRzOjpTaWduYWxUaHJlYWRDb250ZXh0IHRocmVhZF9jb250ZXh0OworKyAgaWYgKCFt ZW1vcnktPlJlYWQoZ3BfcmVnc19hZGRyZXNzLCBzaXplb2YodGhyZWFkX2NvbnRleHQpLCAmdGhy ZWFkX2NvbnRleHQpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHJlYWQgZ3BfcmVn cyEiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICBMaW51eFZNQWRkcmVzcyBmcF9y ZWdzX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKworKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCisrICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0 LCBmcF9yZWdzKTsKKysKKysgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsRmxvYXRDb250ZXh0IGZw X2NvbnRleHQ7CisrICBpZiAoIW1lbW9yeS0+UmVhZChmcF9yZWdzX2FkZHJlc3MsIHNpemVvZihm cF9jb250ZXh0KSwgJmZwX2NvbnRleHQpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0 IHJlYWQgZnBfcmVncyEiOworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICBMaW51eFZN QWRkcmVzcyB2X3JlZ3NfcHRyX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKworKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihVQ29udGV4dCwgbWNvbnRleHQpICsK KysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJh aXRzOjpNQ29udGV4dCwgdm14X3Jlc2VydmUpICsgODsKKysKKysgIHR5cGVuYW1lIFRyYWl0czo6 U2lnbmFsVmVjdG9yQ29udGV4dCB2X2NvbnRleHQ7CisrICBpZiAoIW1lbW9yeS0+UmVhZCh2X3Jl Z3NfcHRyX2FkZHJlc3MsIHNpemVvZih2X2NvbnRleHQpLCAmdl9jb250ZXh0KSkgeworKyAgICBM T0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIHZfcmVncyEiOworKyAgICByZXR1cm4gZmFsc2U7 CisrICB9CisrCisrICBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0PENvbnRleHRUcmFpdHM2ND4o dGhyZWFkX2NvbnRleHQsIGZwX2NvbnRleHQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZfY29udGV4dCwgZGVzdF9jb250ZXh0KTsKKysKKysgIHJldHVybiB0cnVlOworK30KKysKKyt0 ZW1wbGF0ZTw+CisrYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpSZWFkQ29udGV4dDxDb250 ZXh0VHJhaXRzNjQ+KAorKyAgICBQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKKysgICAgTGlu dXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzKSB7CisrICBjb250ZXh0Xy5hcmNoaXRlY3R1cmUg PSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7CisrICBjb250ZXh0Xy5wcGM2NCA9ICZjb250ZXh0X3Vu aW9uXy5wcGM2NDsKKysKKysgIHJldHVybiBpbnRlcm5hbDo6UmVhZENvbnRleHQ8Q29udGV4dFRy YWl0czY0PigKKysgICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29udGV4dF8ucHBjNjQp OworK30KKysKKyt0ZW1wbGF0ZTw+CisrYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpSZWFk Q29udGV4dDxDb250ZXh0VHJhaXRzMzI+KAorKyAgICBQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRl ciwKKysgICAgTGludXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzKSB7CisrICAvLyBQUEM2NCBp cyA2NC1iaXQKKysgIHJldHVybiBmYWxzZTsKKyt9CisrCisgI2VuZGlmICAvLyBBUkNIX0NQVV9Y ODZfRkFNSUxZCisgCisgYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpJbml0aWFsaXplKFBy b2Nlc3NSZWFkZXJMaW51eCogcHJvY2Vzc19yZWFkZXIsCistLS0gYS9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0 aW9uX3NuYXBzaG90X2xpbnV4LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25fc25hcHNob3Rf bGludXguaAorQEAgLTg0LDYgKzg0LDggQEAgY2xhc3MgRXhjZXB0aW9uU25hcHNob3RMaW51eCBm aW5hbCA6IHB1YgorICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCisgICAgIENQ VUNvbnRleHRNSVBTIG1pcHNlbDsKKyAgICAgQ1BVQ29udGV4dE1JUFM2NCBtaXBzNjQ7CisrI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIENQVUNvbnRleHRQUEM2NCBw cGM2NDsKKyAjZW5kaWYKKyAgIH0gY29udGV4dF91bmlvbl87CisgICBDUFVDb250ZXh0IGNvbnRl eHRfOworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MKK0BAIC0yOTYs NyArMjk2LDI4IEBAIHZvaWQgRXhwZWN0Q29udGV4dChjb25zdCBDUFVDb250ZXh0JiBhY3QKKyAg ICAgICAgICAgICAwKTsKKyAjdW5kZWYgQ1BVX0FSQ0hfTkFNRQorIH0KKysjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKyt1c2luZyBOYXRpdmVDUFVDb250ZXh0ID0gdWNvbnRl eHRfdDsKKyAKKyt2b2lkIEluaXRpYWxpemVDb250ZXh0KE5hdGl2ZUNQVUNvbnRleHQqIGNvbnRl eHQpIHsKKysgIGZvciAoc2l6ZV90IHJlZyA9IDA7IHJlZyA8IDMyOyArK3JlZykgeworKyAgICBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW3JlZ10gPSByZWc7CisrICB9CisrCisrICBtZW1z ZXQoJmNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3MsIDQ0LAorKyAgICAgIHNpemVvZihjb250 ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzKSk7CisrfQorKworK3ZvaWQgRXhwZWN0Q29udGV4dChj b25zdCBDUFVDb250ZXh0JiBhY3R1YWwsIGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGV4cGVjdGVk KSB7CisrICBFWFBFQ1RfRVEoYWN0dWFsLmFyY2hpdGVjdHVyZSwga0NQVUFyY2hpdGVjdHVyZVBQ QzY0KTsKKysKKysgIGZvciAoc2l6ZV90IHJlZyA9IDA7IHJlZyA8IDMyOyArK3JlZykgeworKyAg ICBFWFBFQ1RfRVEoYWN0dWFsLnBwYzY0LT5yZWdzW3JlZ10sIGV4cGVjdGVkLnVjX21jb250ZXh0 LmdwX3JlZ3NbcmVnXSk7CisrICB9CisrCisrICBFWFBFQ1RfRVEobWVtY21wKGFjdHVhbC5wcGM2 NC0+ZnByZWdzLCBleHBlY3RlZC51Y19tY29udGV4dC5mcF9yZWdzLAorKyAgICAgICAgICAgIHNp emVvZihhY3R1YWwucHBjNjQtPmZwcmVncykpLCAwKTsKKyt9CisgI2Vsc2UKKyAjZXJyb3IgUG9y dC4KKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYworKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4LmNjCitAQCAtMTA4LDYgKzEwOCw4IEBA IHZvaWQgUHJvY2Vzc1JlYWRlckxpbnV4OjpUaHJlYWQ6OkluaXRpYWwKKyAjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgc3RhY2tfcG9pbnRlciA9IHJlYWRlci0+SXM2NEJp dCgpID8gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LnJlZ3NbMjldCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50 MzIucmVnc1syOV07CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICBz dGFja19wb2ludGVyID0gdGhyZWFkX2luZm8udGhyZWFkX2NvbnRleHQudDY0LmdwclsxXTsKKyAj ZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZgorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVt L3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250 ZXh0LmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCitAQCAtNDIyLDYgKzQyMiw5 MyBAQCBzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKFVDb250ZXh0PENvbnRleHRUCisgICAgICAgICAg ICAgICAiY29udGV4dCBvZmZzZXQgbWlzbWF0Y2giKTsKKyAjZW5kaWYKKyAKKysjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysKKytzdHJ1Y3QgU2lnbmFsVGhyZWFkQ29udGV4 dDY0IHsKKysgIHVpbnQ2NF90IHJlZ3NbMzJdOworKyAgdWludDY0X3QgbmlwOworKyAgdWludDY0 X3QgbXNyOworKyAgdWludDY0X3Qgb3JpZ19yMzsKKysgIHVpbnQ2NF90IGN0cjsKKysgIHVpbnQ2 NF90IGxuazsKKysgIHVpbnQ2NF90IHhlcjsKKysgIHVpbnQ2NF90IGNjcjsKKysgIHVpbnQ2NF90 IHNvZnRlOworKyAgdWludDY0X3QgdHJhcDsKKysgIHVpbnQ2NF90IGRhcjsKKysgIHVpbnQ2NF90 IGRzaXNyOworKyAgdWludDY0X3QgcmVzdWx0OworKyAgdWludDY0X3QgZHNjcjsKKysgIHVpbnQ2 NF90IGZwcjBbM107CisrfTsKKysKKytzdHJ1Y3QgU2lnbmFsRmxvYXRDb250ZXh0NjQgeworKyAg ZG91YmxlIHJlZ3NbMzJdOworKyAgZG91YmxlIGZwc2NyOworK307CisrCisrc3RydWN0IFNpZ25h bFZlY3RvckNvbnRleHQ2NCB7CisrICBpbnQzMl90IHZycmVnc1szMl1bNF07CisrICBzdHJ1Y3Qg eworKyAgICBpbnQzMl90IF9fcGFkWzNdOworKyAgICBpbnQzMl90IHZzY3Jfd29yZDsKKysgIH0g dnNjcjsKKysgIGludDMyX3QgdnJzYXZlOworKyAgaW50MzJfdCBfX3BhZFszXTsKKyt9IF9fYXR0 cmlidXRlX18oKF9fYWxpZ25lZF9fKDE2KSkpOworKworKworKyNwcmFnbWEgcGFjayhwb3ApCisr c3RydWN0IE1Db250ZXh0NjQgeworKyAgdWludDY0X3QgcmVzZXJ2ZWRbNF07CisrICBpbnQzMl90 IHNpZ25hbDsKKysgIGludDMyX3QgX19wYWQwOworKyAgdWludDY0X3QgaGFuZGxlcjsKKysgIHVp bnQ2NF90IG9sZG1hc2s7CisrICB1aW50NjRfdCBwdF9yZWdzX3B0cjsKKysgIFNpZ25hbFRocmVh ZENvbnRleHQ2NCBncF9yZWdzOworKyAgU2lnbmFsRmxvYXRDb250ZXh0NjQgIGZwX3JlZ3M7Cisr ICBTaWduYWxWZWN0b3JDb250ZXh0NjQgKnZfcmVnczsKKysjaWZkZWYgX19HTElCQ19fCisrICBp bnQ2NF90IHZteF9yZXNlcnZlWzY5XTsKKysjZWxzZQorKyAgaW50NjRfdCB2bXhfcmVzZXJ2ZVsx MDFdOworKyNlbmRpZgorK307CisrCisrc3RydWN0IENvbnRleHRUcmFpdHM2NCA6IHB1YmxpYyBU cmFpdHM2NCB7CisrICB1c2luZyBNQ29udGV4dCA9IE1Db250ZXh0NjQ7CisrICB1c2luZyBTaWdu YWxUaHJlYWRDb250ZXh0ID0gU2lnbmFsVGhyZWFkQ29udGV4dDY0OworKyAgdXNpbmcgU2lnbmFs RmxvYXRDb250ZXh0ID0gU2lnbmFsRmxvYXRDb250ZXh0NjQ7CisrICB1c2luZyBTaWduYWxWZWN0 b3JDb250ZXh0ID0gU2lnbmFsVmVjdG9yQ29udGV4dDY0OworKyAgdXNpbmcgQ1BVQ29udGV4dCA9 IENQVUNvbnRleHRQUEM2NDsKKyt9OworKworK3N0cnVjdCBDb250ZXh0VHJhaXRzMzIgOiBwdWJs aWMgVHJhaXRzMzIge307CisrCisrc3RydWN0IFVDb250ZXh0IHsKKysgIHVpbnQ2NF90IGZsYWdz OworKyAgdWludDY0X3QgbGluazsKKysgIFNpZ25hbFN0YWNrPENvbnRleHRUcmFpdHM2ND4gc3Rh Y2s7CisrICBTaWdzZXQ8Q29udGV4dFRyYWl0czY0PiBzaWdtYXNrOworKyAgTUNvbnRleHQ2NCBt Y29udGV4dDsKKyt9OworKyNwcmFnbWEgcGFjayhwdXNoLCAxKQorKworK3N0YXRpY19hc3NlcnQo c2l6ZW9mKFVDb250ZXh0KSA9PSBzaXplb2YodWNvbnRleHRfdCksCisrICAgICAgICAgICAgICAi dWNvbnRleHRfdCBzaXplIG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2VydChzaXplb2YoTUNvbnRl eHQ2NCkgPT0gc2l6ZW9mKG1jb250ZXh0X3QpLAorKyAgICAgICAgICAgICAgIm1jb250ZXh0X3Qg c2l6ZSBtaXNtYXRjaCIpOworK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbFRocmVhZENvbnRl eHQ2NCkgPT0gc2l6ZW9mKGdyZWdzZXRfdCksCisrICAgICAgICAgICAgICAiZ3JlZ3NldF90IHNp emUgbWlzbWF0Y2giKTsKKytzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxGbG9hdENvbnRleHQ2 NCkgPT0gc2l6ZW9mKGZwcmVnc2V0X3QpLAorKyAgICAgICAgICAgICAgImZwcmVnc2V0X3Qgc2l6 ZSBtaXNtYXRjaCIpOworK3N0YXRpY19hc3NlcnQoc2l6ZW9mKFNpZ25hbFZlY3RvckNvbnRleHQ2 NCkgPT0gc2l6ZW9mKHZycmVnc2V0X3QpLAorKyAgICAgICAgICAgICAgInZycmVnc2V0X3Qgc2l6 ZSBtaXNtYXRjaCIpOworK3N0YXRpY19hc3NlcnQob2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0 KSA9PQorKyAgICAgICAgICAgICAgb2Zmc2V0b2YodWNvbnRleHRfdCwgdWNfbWNvbnRleHQpLCAi bWNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7Cisrc3RhdGljX2Fzc2VydChvZmZzZXRvZihNQ29u dGV4dDY0LCBncF9yZWdzKSA9PQorKyAgICAgICAgICAgICAgb2Zmc2V0b2YobWNvbnRleHRfdCwg Z3BfcmVncyksICJncF9yZWdzIG9mZnNldCBtaXNtYXRjaCIpOworICNlbHNlCisgI2Vycm9yIFBv cnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCistLS0gYS9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc3lz dGVtX3NuYXBzaG90X2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc3lzdGVtX3NuYXBzaG90X2xp bnV4LmNjCitAQCAtMjA0LDYgKzIwNCw4IEBAIENQVUFyY2hpdGVjdHVyZSBTeXN0ZW1TbmFwc2hv dExpbnV4OjpHZXQKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgcmV0 dXJuIHByb2Nlc3NfcmVhZGVyXy0+SXM2NEJpdCgpID8ga0NQVUFyY2hpdGVjdHVyZU1JUFM2NEVM CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBrQ1BVQXJjaGl0ZWN0dXJl TUlQU0VMOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgcmV0dXJu IGtDUFVBcmNoaXRlY3R1cmVQUEM2NDsKKyAjZWxzZQorICNlcnJvciBwb3J0IHRvIHlvdXIgYXJj aGl0ZWN0dXJlCisgI2VuZGlmCitAQCAtMjE5LDYgKzIyMSw5IEBAIHVpbnQzMl90IFN5c3RlbVNu YXBzaG90TGludXg6OkNQVVJldmlzaW8KKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKQorICAgLy8gTm90IGltcGxlbWVudGFibGUgb24gTUlQUworICAgcmV0dXJuIDA7CisrI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAvLyBOb3QgeWV0IGltcGxlbWVu dGVkIG9uIFBQQzY0CisrICByZXR1cm4gMDsKKyAjZWxzZQorICNlcnJvciBwb3J0IHRvIHlvdXIg YXJjaGl0ZWN0dXJlCisgI2VuZGlmCitAQCAtMjM5LDYgKzI0NCw5IEBAIHN0ZDo6c3RyaW5nIFN5 c3RlbVNuYXBzaG90TGludXg6OkNQVVZlbmQKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKQorICAgLy8gTm90IGltcGxlbWVudGFibGUgb24gTUlQUworICAgcmV0dXJuIHN0ZDo6 c3RyaW5nKCk7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAvLyBO b3QgeWV0IGltcGxlbWVudGVkIG9uIFBQQzY0CisrICByZXR1cm4gc3RkOjpzdHJpbmcoKTsKKyAj ZWxzZQorICNlcnJvciBwb3J0IHRvIHlvdXIgYXJjaGl0ZWN0dXJlCisgI2VuZGlmCitAQCAtMzcy LDYgKzM4MCw5IEBAIGJvb2wgU3lzdGVtU25hcHNob3RMaW51eDo6TlhFbmFibGVkKCkgY28KKyAj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQorICAgLy8gTm90IGltcGxlbWVudGFi bGUgb24gTUlQUworICAgcmV0dXJuIGZhbHNlOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBD NjRfRkFNSUxZKQorKyAgLy8gTm90IHlldCBpbXBsZW1lbnRlZCBvbiBQUEM2NAorKyAgcmV0dXJu IGZhbHNlOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZf RkFNSUxZCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvc25hcHNob3QvbGludXgvdGVzdF9tb2R1bGVzLmNjCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv dGVzdF9tb2R1bGVzLmNjCitAQCAtMTEwLDYgKzExMCw4IEBAIGJvb2wgV3JpdGVUZXN0TW9kdWxl KGNvbnN0IGJhc2U6OkZpbGVQYXQKKyAgIG1vZHVsZS5laGRyLmVfbWFjaGluZSA9IEVNX0FBUkNI NjQ7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTRUwpIHx8IGRlZmluZWQoQVJDSF9DUFVf TUlQUzY0RUwpCisgICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9NSVBTOworKyNlbGlmIGRl ZmluZWQoQVJDSF9DUFVfUFBDNjQpCisrICBtb2R1bGUuZWhkci5lX21hY2hpbmUgPSBFTV9QUEM2 NDsKKyAjZW5kaWYKKyAKKyAgIG1vZHVsZS5laGRyLmVfdmVyc2lvbiA9IEVWX0NVUlJFTlQ7Cist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv c25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCisrKysgYi9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv dGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjCitAQCAtMTg2LDYgKzE4NiwxNCBAQCBib29sIFRocmVh ZFNuYXBzaG90TGludXg6OkluaXRpYWxpemUoUHJvCisgICAgICAgICB0aHJlYWQudGhyZWFkX2lu Zm8uZmxvYXRfY29udGV4dC5mMzIsCisgICAgICAgICBjb250ZXh0Xy5taXBzZWwpOworICAgfQor KyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgY29udGV4dF8uYXJjaGl0 ZWN0dXJlID0ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OworKyAgY29udGV4dF8ucHBjNjQgPSAmY29u dGV4dF91bmlvbl8ucHBjNjQ7CisrICBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0PENvbnRleHRU cmFpdHM2ND4oCisrICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLnRocmVhZF9jb250ZXh0LnQ2NCwK KysgICAgICB0aHJlYWQudGhyZWFkX2luZm8uZmxvYXRfY29udGV4dC5mNjQsCisrICAgICAgdGhy ZWFkLnRocmVhZF9pbmZvLnZlY3Rvcl9jb250ZXh0LnY2NCwKKysgICAgICBjb250ZXh0Xy5wcGM2 NCk7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC90aHJl YWRfc25hcHNob3RfbGludXguaAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51 eC5oCitAQCAtNjgsNiArNjgsOCBAQCBjbGFzcyBUaHJlYWRTbmFwc2hvdExpbnV4IGZpbmFsIDog cHVibGljCisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAgICAgQ1BVQ29u dGV4dE1JUFMgbWlwc2VsOworICAgICBDUFVDb250ZXh0TUlQUzY0IG1pcHM2NDsKKysjZWxpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAgQ1BVQ29udGV4dFBQQzY0IHBwYzY0 OworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZ CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9saW51eC9hdXhpbGlhcnlfdmVjdG9yLmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9hdXhpbGlhcnlf dmVjdG9yLmNjCitAQCAtNTYsNiArNTYsMTEgQEAgYm9vbCBBdXhpbGlhcnlWZWN0b3I6OlJlYWQo UHRyYWNlQ29ubmVjdAorICAgICBpZiAodHlwZSA9PSBBVF9JR05PUkUpIHsKKyAgICAgICBjb250 aW51ZTsKKyAgICAgfQorKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKKysgICAg aWYgKHR5cGUgPT0gQVRfSUdOT1JFUFBDKSB7CisrICAgICAgY29udGludWU7CisrICAgIH0KKysj ZW5kaWYKKyAgICAgaWYgKCFNYXBJbnNlcnRPclJlcGxhY2UoJnZhbHVlc18sIHR5cGUsIHZhbHVl LCBudWxscHRyKSkgeworICAgICAgIExPRyhFUlJPUikgPDwgImR1cGxpY2F0ZSBhdXh2IGVudHJ5 IjsKKyAgICAgICByZXR1cm4gZmFsc2U7CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhp cmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VyLmNjCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9s aW51eC9wdHJhY2VyLmNjCitAQCAtNDAxLDYgKzQwMSw2NCBAQCBib29sIEdldFRocmVhZEFyZWE2 NChwaWRfdCB0aWQsCisgICByZXR1cm4gdHJ1ZTsKKyB9CisgCisrI2VsaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCisrLy8gUFBDNjQgaGFzIGhhZCBIQVZFX0FSQ0hfVFJBQ0VIT09L IHNldCBzaW5jZSAyLjYuMjcgKGV2ZW4gYmVmb3JlIHg4NiBoYWQgaXQpLgorKy8vIFRoYXQgbWVh bnMgd2UgY2FuIHNpbXBseSB1c2UgUFRSQUNFX0dFVFJFR0VTRVQuCisrCisrdGVtcGxhdGUgPHR5 cGVuYW1lIERlc3RpbmF0aW9uPgorK2Jvb2wgR2V0UmVnaXN0ZXJTZXQocGlkX3QgdGlkLCBpbnQg c2V0LCBEZXN0aW5hdGlvbiogZGVzdCwgYm9vbCBjYW5fbG9nKSB7CisrICBpb3ZlYyBpb3Y7Cisr ICBpb3YuaW92X2Jhc2UgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihkZXN0KTsKKysgIGlvdi5p b3ZfbGVuID0gc2l6ZW9mKCpkZXN0KTsKKysgIGlmIChwdHJhY2UoUFRSQUNFX0dFVFJFR1NFVCwg dGlkLCByZWludGVycHJldF9jYXN0PHZvaWQqPihzZXQpLCAmaW92KSAhPSAwKSB7CisrICAgIFBM T0dfSUYoRVJST1IsIGNhbl9sb2cpIDw8ICJwdHJhY2UiOworKyAgICByZXR1cm4gZmFsc2U7Cisr ICB9CisrICBpZiAoaW92Lmlvdl9sZW4gIT0gc2l6ZW9mKCpkZXN0KSkgeworKyAgICBMT0dfSUYo RVJST1IsIGNhbl9sb2cpIDw8ICJVbmV4cGVjdGVkIHJlZ2lzdGVycyBzaXplIjsKKysgICAgcmV0 dXJuIGZhbHNlOworKyAgfQorKyAgcmV0dXJuIHRydWU7CisrfQorKworK2Jvb2wgR2V0VmVjdG9y UmVnaXN0ZXJzNjQocGlkX3QgdGlkLAorKyAgICAgICAgICAgICAgICAgICAgICAgICAgVmVjdG9y Q29udGV4dCogY29udGV4dCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgY2FuX2xv ZykgeworKyAgcmV0dXJuIEdldFJlZ2lzdGVyU2V0KHRpZCwgTlRfUFBDX1ZNWCwgJmNvbnRleHQt PnY2NCwgY2FuX2xvZyk7CisrfQorKworK2Jvb2wgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczY0 KHBpZF90IHRpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9hdENvbnRl eHQqIGNvbnRleHQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5f bG9nKSB7CisrICByZXR1cm4gR2V0UmVnaXN0ZXJTZXQodGlkLCBOVF9QUkZQUkVHLCAmY29udGV4 dC0+ZjY0LCBjYW5fbG9nKTsKKyt9CisrCisrYm9vbCBHZXRUaHJlYWRBcmVhNjQocGlkX3QgdGlk LAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRocmVhZENvbnRleHQmIGNvbnRleHQsCisr ICAgICAgICAgICAgICAgICAgICAgTGludXhWTUFkZHJlc3MqIGFkZHJlc3MsCisrICAgICAgICAg ICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7CisrICAvLyBQUEM2NCBkb2Vzbid0IGhhdmUgUFRS QUNFX0dFVF9USFJFQURfQVJFQSBzaW5jZSB0aGUgdGhyZWFkIHBvaW50ZXIKKysgIC8vIGlzIHN0 b3JlZCBpbiBHUFIgMTMuCisrICBUaHJlYWRDb250ZXh0Ojp0NjRfdCB0YzsKKysgIGlmICghR2V0 UmVnaXN0ZXJTZXQodGlkLCBOVF9QUlNUQVRVUywgJnRjLCBjYW5fbG9nKSkgeworKyAgICBMT0df SUYoRVJST1IsIGNhbl9sb2cpIDw8ICJVbmFibGUgdG8gZ2V0IHRocmVhZCBwb2ludGVyISI7Cisr ICAgIHJldHVybiBmYWxzZTsKKysgIH0KKysKKysgICphZGRyZXNzID0gdGMuZ3ByWzEzXTsKKysK KysgIHJldHVybiB0cnVlOworK30KKysKKysvLyBTdHVicyBmb3IgMzItYml0IGZ1bmN0aW9ucyBu b3QgYXBwbGljYWJsZSBvbiBQUEM2NAorK2Jvb2wgR2V0RmxvYXRpbmdQb2ludFJlZ2lzdGVyczMy KHBpZF90IHRpZCwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGbG9hdENvbnRl eHQqIGNvbnRleHQsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5f bG9nKSB7IHJldHVybiBmYWxzZTsgfQorK2Jvb2wgR2V0VGhyZWFkQXJlYTMyKHBpZF90IHRpZCwK KysgICAgICAgICAgICAgICAgICAgICBjb25zdCBUaHJlYWRDb250ZXh0ICZjb250ZXh0LAorKyAg ICAgICAgICAgICAgICAgICAgIExpbnV4Vk1BZGRyZXNzICphZGRyZXNzLAorKyAgICAgICAgICAg ICAgICAgICAgIGJvb2wgY2FuX2xvZykgeyByZXR1cm4gZmFsc2U7IH0KKysKKyAjZWxzZQorICNl cnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorQEAgLTQ5Nyw2ICs1 NTUsOSBAQCBib29sIFB0cmFjZXI6OkdldFRocmVhZEluZm8ocGlkX3QgdGlkLCBUCisgICBpZiAo aXNfNjRfYml0XykgeworICAgICByZXR1cm4gR2V0R2VuZXJhbFB1cnBvc2VSZWdpc3RlcnM2NCh0 aWQsICZpbmZvLT50aHJlYWRfY29udGV4dCwgY2FuX2xvZ18pICYmCisgICAgICAgICAgICBHZXRG bG9hdGluZ1BvaW50UmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+ZmxvYXRfY29udGV4dCwgY2FuX2xv Z18pICYmCisrI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICAgICAgICAg R2V0VmVjdG9yUmVnaXN0ZXJzNjQodGlkLCAmaW5mby0+dmVjdG9yX2NvbnRleHQsIGNhbl9sb2df KSAmJgorKyNlbmRpZgorICAgICAgICAgICAgR2V0VGhyZWFkQXJlYTY0KHRpZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBpbmZvLT50aHJlYWRfY29udGV4dCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAmaW5mby0+dGhyZWFkX3NwZWNpZmljX2RhdGFfYWRkcmVzcywKKy0tLSBh L3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGls L2xpbnV4L3RocmVhZF9pbmZvLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmgKK0BAIC0zOSw2 ICszOSwxMyBAQCBzdHJ1Y3QgdXNlcl92ZnBfZXhjIHsKKyAjaW5jbHVkZSA8YW5kcm9pZC9hcGkt bGV2ZWwuaD4KKyAjZW5kaWYKKyAKKysjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkp CisrI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgorKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pCisr I2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysjZW5kaWYKKysjZW5kaWYKKysKKyBuYW1lc3BhY2Ug Y3Jhc2hwYWQgeworIAorIC8vISBcYnJpZWYgVGhlIHNldCBvZiBnZW5lcmFsIHB1cnBvc2UgcmVn aXN0ZXJzIGZvciBhbiBhcmNoaXRlY3R1cmUgZmFtaWx5LgorQEAgLTkwLDYgKzk3LDggQEAgdW5p b24gVGhyZWFkQ29udGV4dCB7CisgICAgIHVpbnQzMl90IGNwMF9zdGF0dXM7CisgICAgIHVpbnQz Ml90IGNwMF9jYXVzZTsKKyAgICAgdWludDMyX3QgcGFkZGluZzFfOworKyNlbGlmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICAvLyBQUEM2NCBpcyA2NC1iaXQKKyAjZWxzZQor ICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorQEAgLTE0Myw2 ICsxNTIsMjEgQEAgdW5pb24gVGhyZWFkQ29udGV4dCB7CisgICAgIHVpbnQ2NF90IGNwMF9iYWR2 YWRkcjsKKyAgICAgdWludDY0X3QgY3AwX3N0YXR1czsKKyAgICAgdWludDY0X3QgY3AwX2NhdXNl OworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgICAvLyBSZWZsZWN0 cyBzdHJ1Y3QgcHRfcmVncyBpbiBhc20vcHRyYWNlLmguCisrICAgIHVpbnQ2NF90IGdwclszMl07 CisrICAgIHVpbnQ2NF90IG5pcDsKKysgICAgdWludDY0X3QgbXNyOworKyAgICB1aW50NjRfdCBv cmlnX2dwcjM7CisrICAgIHVpbnQ2NF90IGN0cjsKKysgICAgdWludDY0X3QgbG5rOworKyAgICB1 aW50NjRfdCB4ZXI7CisrICAgIHVpbnQ2NF90IGNjcjsKKysgICAgdWludDY0X3Qgc29mdGU7Cisr ICAgIHVpbnQ2NF90IHRyYXA7CisrICAgIHVpbnQ2NF90IGRhcjsKKysgICAgdWludDY0X3QgZHNp c3I7CisrICAgIHVpbnQ2NF90IHJlc3VsdDsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRp ZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQorQEAgLTE1NCw2ICsxNzgsOCBAQCB1bmlvbiBUaHJl YWRDb250ZXh0IHsKKyAgIHVzaW5nIE5hdGl2ZVRocmVhZENvbnRleHQgPSB1c2VyX3JlZ3M7Cisg I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKKyAvLyBObyBhcHByb3ByaWF0ZSBO YXRpdmVUaHJlYWRzQ29udGV4dCB0eXBlIGF2YWlsYWJsZSBmb3IgTUlQUworKyNlbGlmIGRlZmlu ZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgdXNpbmcgTmF0aXZlVGhyZWFkQ29udGV4dCA9 IHN0cnVjdCBwdF9yZWdzOworICNlbHNlCisgI2Vycm9yIFBvcnQuCisgI2VuZGlmICAvLyBBUkNI X0NQVV9YODZfRkFNSUxZIHx8IEFSQ0hfQ1BVX0FSTTY0CitAQCAtMjI5LDYgKzI1NSw5IEBAIHVu aW9uIEZsb2F0Q29udGV4dCB7CisgICAgIH0gZnByZWdzWzMyXTsKKyAgICAgdWludDMyX3QgZnBj c3I7CisgICAgIHVpbnQzMl90IGZwdV9pZDsKKysjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0 X0ZBTUlMWSkKKysgICAgLy8gQ3Jhc2hwYWQncyBQUEMgc3VwcG9ydCBpcyA2NC1iaXQgb25seSwg c28gdGhpcworKyAgICAvLyAzMmJpdC1vbmx5IHN0cnVjdCBpcyBkZWNsYXJlZCBhcyBlbXB0eS4K KyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQor QEAgLTI2Myw2ICsyOTIsMTAgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKKyAgICAgZG91YmxlIGZw cmVnc1szMl07CisgICAgIHVpbnQzMl90IGZwY3NyOworICAgICB1aW50MzJfdCBmcHVfaWQ7Cisr I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICAgIC8vIFJlZmxlY3RzIGZw cmVnc2V0X3QgaW4gc3lzL3Vjb250ZXh0LmgKKysgICAgZG91YmxlIGZwcmVnc1szMl07CisrICAg IGRvdWJsZSBmcHNjcjsKKyAjZWxzZQorICNlcnJvciBQb3J0LgorICNlbmRpZiAgLy8gQVJDSF9D UFVfWDg2X0ZBTUlMWQorQEAgLTI5MSw2ICszMjQsOCBAQCB1bmlvbiBGbG9hdENvbnRleHQgewor ICAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXplb2YodXNlcl9mcHNpbWRfc3RydWN0 KSwgIlNpemUgbWlzbWF0Y2giKTsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KQorIC8vIE5vIGFwcHJvcHJpYXRlIGZsb2F0aW5nIHBvaW50IGNvbnRleHQgbmF0aXZlIHR5cGUg Zm9yIGF2YWlsYWJsZSBNSVBTLgorKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZ KQorKyAgc3RhdGljX2Fzc2VydChzaXplb2YoZjY0KSA9PSBzaXplb2YoZnByZWdzZXRfdCksICJT aXplIG1pc21hdGNoIik7CisgI2Vsc2UKKyAjZXJyb3IgUG9ydC4KKyAjZW5kaWYgIC8vIEFSQ0hf Q1BVX1g4NgorQEAgLTI5OCw2ICszMzMsMjYgQEAgdW5pb24gRmxvYXRDb250ZXh0IHsKKyBzdGF0 aWNfYXNzZXJ0KHN0ZDo6aXNfc3RhbmRhcmRfbGF5b3V0PEZsb2F0Q29udGV4dD46OnZhbHVlLAor ICAgICAgICAgICAgICAgIk5vdCBzdGFuZGFyZCBsYXlvdXQiKTsKKyAKKysvLyEgXGJyaWVmIFRo ZSB2ZWN0b3IgcmVnaXN0ZXJzIHVzZWQgZm9yIGFuIGFyY2hpdGVjdHVyZSBmYW1pbHkKKyt1bmlv biBWZWN0b3JDb250ZXh0IHsKKysgIHN0cnVjdCB2MzJfdCB7fSB2MzI7CisrI2lmIGRlZmluZWQo QVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgX19hdHRyaWJ1dGVfXygoX19hbGlnbmVkX18oMTYp KSkgLy8gVmVjdG9yIGNvbnRleHQgbXVzdCBiZSBkb3VibGV3b3JkIGFsaWduZWQuCisrI2VuZGlm CisrICBzdHJ1Y3QgdjY0X3QgeworKyNpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkK KysgICAgLy8gUmVmbGVjdHMgdnJyZWdzZXRfdCBpbiBzeXMvdWNvbnRleHQuaAorKyAgICB1aW50 MzJfdCB2cnJlZ3NbMzJdWzRdOworKyAgICBzdHJ1Y3QgeworKyAgICAgIHVpbnQzMl90IF9fcGFk WzNdOworKyAgICAgIHVpbnQzMl90IHZzY3Jfd29yZDsKKysgICAgfSB2c2NyOworKyAgICB1aW50 MzJfdCB2cnNhdmU7CisrICAgIHVpbnQzMl90IF9fcGFkWzNdOworKyNlbmRpZgorKyAgfSB2NjQ7 CisrfTsKKysKKyAvLyEgXGJyaWVmIEEgY29sbGVjdGlvbiBvZiBgcHRyYWNlYC1hYmxlIGluZm9y bWF0aW9uIGFib3V0IGEgdGhyZWFkLgorIHN0cnVjdCBUaHJlYWRJbmZvIHsKKyAgIFRocmVhZElu Zm8oKTsKK0BAIC0zMDksNiArMzY0LDkgQEAgc3RydWN0IFRocmVhZEluZm8geworICAgLy8hIFxi cmllZiBUaGUgZmxvYXRpbmcgcG9pbnQgcmVnaXN0ZXJzIGZvciB0aGUgdGhyZWFkLgorICAgRmxv YXRDb250ZXh0IGZsb2F0X2NvbnRleHQ7CisgCisrICAvLyEgXGJyaWVmIChPcHRpb25hbCkgVGhl IHZlY3RvciByZWdpc3RlcnMgdXNlZCBmb3IgdGhlIHRocmVhZC4KKysgIFZlY3RvckNvbnRleHQg dmVjdG9yX2NvbnRleHQ7CisrCisgICAvLyEgXGJyaWVmIFRoZSB0aHJlYWQtbG9jYWwgc3RvcmFn ZSBhZGRyZXNzIGZvciB0aGUgdGhyZWFkLgorICAgTGludXhWTUFkZHJlc3MgdGhyZWFkX3NwZWNp ZmljX2RhdGFfYWRkcmVzczsKKyB9OworLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAorKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0 aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaAorQEAgLTY5LDYgKzY5LDcgQEAgdXNpbmcgTmF0aXZl Q1BVQ29udGV4dCA9IHVjb250ZXh0X3Q7CisgLy8hICAgICBtYWNPUy9MaW51eC9GdWNoc2lhIHwg eDg2XzY0ICAgICAgIHwgYCUlcmRpYAorIC8vISAgICAgTGludXggICAgICAgICAgICAgICB8IEFS TS9BUk02NCAgICB8IGByMGAvYHgwYAorIC8vISAgICAgTGludXggICAgICAgICAgICAgICB8IE1J UFMvTUlQUzY0ICB8IGAkYTBgCisrLy8hICAgICBMaW51eCAgICAgICAgICAgICAgIHwgUFBDNjQg ICAgICAgIHwgYHIzYAorIC8vIQorIC8vISAgICAgQWRkaXRpb25hbGx5LCB0aGUgdmFsdWUgYExS YCBvbiBBUk0vQVJNNjQgd2lsbCBiZSB0aGUgcmV0dXJuIGFkZHJlc3Mgb2YKKyAvLyEgICAgIHRo aXMgZnVuY3Rpb24uCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jh c2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TCisrKysgYi9z cmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9t aXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TCitAQCAtMzIsNyArMzIsNyBAQAorICAgLmJhbGln biA0LCAweDAKKyAgIC50eXBlIENBUFRVUkVDT05URVhUX1NZTUJPTCwgJWZ1bmN0aW9uCisgICAu dHlwZSBDQVBUVVJFQ09OVEVYVF9TWU1CT0wyLCAlZnVuY3Rpb24KKy0jZWxpZiBkZWZpbmVkKF9f bWlwc19fKQorKyNlbGlmIGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKKyAgIC5iYWxpZ24gNCwgMHgwCisgI2VuZGlmCisgCitAQCAtNDIzLDQgKzQyMywyMTQgQEAg Q0FQVFVSRUNPTlRFWFRfU1lNQk9MMjoKKyAgIGpyICRyYQorIAorICAgLnNldCBhdAorKyNlbGlm IGRlZmluZWQoX19wb3dlcnBjNjRfXykKKysgIC8vIFN0b3JlIHIwLXIzMQorKyAgc3RkIDAsIDB4 ZTgoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzBdCisrICBzdGQgMSwgMHhm MCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMV0KKysgIHN0ZCAyLCAweGY4 KDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syXQorKyAgLy8gbm90ZSB0aGF0 IHIzJ3Mgb3JpZ2luYWwgdmFsdWUgd2FzIGxvc3QKKysgIHN0ZCAzLCAweDEwMCgzKSAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szXQorKyAgc3RkIDQsIDB4MTA4KDMpICAvLyBjb250 ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzRdCisrICBzdGQgNSwgMHgxMTAoMykgIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNV0KKysgIHN0ZCA2LCAweDExOCgzKSAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s2XQorKyAgc3RkIDcsIDB4MTIwKDMpICAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5ncF9yZWdzWzddCisrICBzdGQgOCwgMHgxMjgoMykgIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmdwX3JlZ3NbOF0KKysgIHN0ZCA5LCAweDEzMCgzKSAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQuZ3BfcmVnc1s5XQorKyAgc3RkIDEwLCAweDEzOCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzEwXQorKyAgc3RkIDExLCAweDE0MCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzExXQorKyAgc3RkIDEyLCAweDE0OCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzEyXQorKyAgc3RkIDEzLCAweDE1MCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzEzXQorKyAgc3RkIDE0LCAweDE1OCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzE0XQorKyAgc3RkIDE1LCAweDE2MCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzE1XQorKyAgc3RkIDE2LCAweDE2OCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzE2XQorKyAgc3RkIDE3LCAweDE3MCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzE3XQorKyAgc3RkIDE4LCAweDE3OCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzE4XQorKyAgc3RkIDE5LCAweDE4MCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzE5XQorKyAgc3RkIDIwLCAweDE4OCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzIwXQorKyAgc3RkIDIxLCAweDE5MCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzIxXQorKyAgc3RkIDIyLCAweDE5OCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzIyXQorKyAgc3RkIDIzLCAweDFhMCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzIzXQorKyAgc3RkIDI0LCAweDFhOCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzI0XQorKyAgc3RkIDI1LCAweDFiMCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzI1XQorKyAgc3RkIDI2LCAweDFiOCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzI2XQorKyAgc3RkIDI3LCAweDFjMCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzI3XQorKyAgc3RkIDI4LCAweDFjOCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzI4XQorKyAgc3RkIDI5LCAweDFkMCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzI5XQorKyAgc3RkIDMwLCAweDFkOCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzMwXQorKyAgc3RkIDMxLCAweDFlMCgzKSAvLyBjb250ZXh0LT51 Y19tY29udGV4dC5ncF9yZWdzWzMxXQorKworKyAgLy8gRm9yIE5JUCwgd2UgY2FuIHVzZSB0aGUg dmFsdWUgaW4gdGhlIGxpbmsgcmVnaXN0ZXIKKysgIG1mbHIgMAorKyAgc3RkIDAsIDB4MWU4KDMp IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXQorKworKyAgLy8gQ1RSCisr ICBtZmN0ciAwCisrICBzdGQgMCwgMHgyMDAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3Bf cmVnc1tQVF9DVFJdCisrCisrICAvLyBGb3IgTE5LLCB3ZSdsbCB1c2UgdGhlIGNhbGxlcidzIExS IHNhdmUgYXJlYSAoMiBzdGFjayBmcmFtZXMgdXApLgorKyAgLy8gcjQgY2FuIGJlIHVzZWQgYXMg YSBzY3JhdGNoIHJlZ2lzdGVyIHNpbmNlIGl0IGhhcyBhbHJlYWR5IGJlZW4gc2F2ZWQuCisrICBs ZCA0LCAwKDEpCisrICBsZCA0LCAxNig0KQorKyAgc3RkIDQsIDB4MjA4KDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXQorKworKyAgLy8gWEVSCisrICBtZnhlciAwCisr ICBzdGQgMCwgMHgyMTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9YRVJd CisrCisrICAvLyBDQ1IKKysgIG1mY3IgMAorKyAgc3RkIDAsIDB4MjE4KDMpIC8vIGNvbnRleHQt PnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXQorKworKyAgLy8gTVNSLCBvcmlnX3IzLCBNUSwg VFJBUCwgREFSLCBEU0lTUiwgUkVTVUxULCBEU0NSLAorKyAgLy8gbm90IHVzZWQgb3Igbm90IHJl bGV2YW50LCAgemVybyB0aGVtIG91dC4KKysgIGxpIDQsIDAKKysgIHN0ZCA0LCAweDFmMCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01TUl0KKysgIHN0ZCA0LCAweDFmOCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX09SSUdfUjNdCisrICBzdGQgNCwg MHgyMjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9NUV0KKysgIHN0ZCA0 LCAweDIyOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1RSQVBdCisrICBz dGQgNCwgMHgyMzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9EQVJdCisr ICBzdGQgNCwgMHgyMzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9EU0lT Ul0KKysgIHN0ZCA0LCAweDI0MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BU X1JFU1VMVF0KKysgIHN0ZCA0LCAweDI0OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9y ZWdzW1BUX0RTQ1JdCisrCisrICAvLyBVcGRhdGUgY29udGV4dC0+dWNfbWNvbnRleHQucmVncyB0 byBwb2ludCB0byBncF9yZWdzCisrICBhZGRpIDAsIDMsIDB4ZTgKKysgIHN0ZCAwLCAweGUwKDMp CisrCisrICAvLyBTYXZlIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycyAwLTMxCisrICBzdGZkIDAs IDB4MjY4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzBdCisrICBzdGZkIDEs IDB4MjcwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzFdCisrICBzdGZkIDIs IDB4Mjc4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzJdCisrICBzdGZkIDMs IDB4MjgwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzNdCisrICBzdGZkIDQs IDB4Mjg4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzRdCisrICBzdGZkIDUs IDB4MjkwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzVdCisrICBzdGZkIDYs IDB4Mjk4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzZdCisrICBzdGZkIDcs IDB4MmEwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzddCisrICBzdGZkIDgs IDB4MmE4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzhdCisrICBzdGZkIDks IDB4MmIwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzldCisrICBzdGZkIDEw LCAweDJiOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzEwXQorKyAgc3RmZCAx MSwgMHgyYzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMV0KKysgIHN0ZmQg MTIsIDB4MmM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTJdCisrICBzdGZk IDEzLCAweDJkMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzEzXQorKyAgc3Rm ZCAxNCwgMHgyZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxNF0KKysgIHN0 ZmQgMTUsIDB4MmUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTVdCisrICBz dGZkIDE2LCAweDJlOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE2XQorKyAg c3RmZCAxNywgMHgyZjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxN10KKysg IHN0ZmQgMTgsIDB4MmY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMThdCisr ICBzdGZkIDE5LCAweDMwMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzE5XQor KyAgc3RmZCAyMCwgMHgzMDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1syMF0K KysgIHN0ZmQgMjEsIDB4MzEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMjFd CisrICBzdGZkIDIyLCAweDMxOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzIy XQorKyAgc3RmZCAyMywgMHgzMjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sy M10KKysgIHN0ZmQgMjQsIDB4MzI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb MjRdCisrICBzdGZkIDI1LCAweDMzMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzI1XQorKyAgc3RmZCAyNiwgMHgzMzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn c1syNl0KKysgIHN0ZmQgMjcsIDB4MzQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3Jl Z3NbMjddCisrICBzdGZkIDI4LCAweDM0OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9y ZWdzWzI4XQorKyAgc3RmZCAyOSwgMHgzNTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBf cmVnc1syOV0KKysgIHN0ZmQgMzAsIDB4MzU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZw X3JlZ3NbMzBdCisrICBzdGZkIDMxLCAweDM2MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5m cF9yZWdzWzMxXQorKworKyAgLy8gRlBTQ1IKKysgIG1mZnMgMAorKyAgc3RmZCAwLCAweDM2OCgz KSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzMyXQorKworKyAgLy8gU2F2ZSBWTVgg VmVjdG9yIHJlZ2lzdGVycworKyAgLy8gVXBkYXRlIHI0IHRvIGNvbnRhaW4gdGhlIGJhc2UgYWRk cmVzcyBvZiB2bXhfcmVzZXJ2ZQorKyAgYWRkaSA0LCAzLCAweDM3OAorKyAgLy8gRW5zdXJlIHRo YXQgaXQgaXMgcXVhZHdvcmQgYWxpZ25lZAorKyAgYW5kaS4gNSwgNCwgMHhGCisrICBiZXEgMWYg Ly8gTm8gYWxpZ25tZW50IGlzIG5lY2Vzc2FyeQorKyAgLy8gQWRkcmVzcyBpcyBkb3VibGV3b3Jk IGFsaWduZWQgYW5kIG5vdCBxdWFkd29yZCBhbGlnbmVkLCBhZGQgOAorKyAgYWRkaSA0LCA0LCA4 CisrCisrMToKKysgIC8vIFN0b3JlIFZNWCByZWdpc3RlcnMgMC0zMQorKyAgLy8gcjQgd2lsbCBj b250YWluIHRoZSBiYXNlIGFkZHJlc3MKKysgIC8vIHI1IHdpbGwgY29udGFpbiB0aGUgaW5kZXgK KysgIGxpIDUsIDAKKysgIHN0dnggMCwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZt eF9yZXNlcnZlWyhhbGlnbikgKyAwXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxLCA0LCA1 ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDFdCisrICBh ZGRpIDUsIDUsIDE2CisrICBzdHZ4IDIsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52 bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMl0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggMywgNCwg NSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAzXQorKyAg YWRkaSA1LCA1LCAxNgorKyAgc3R2eCA0LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu dm14X3Jlc2VydmVbKGFsaWduKSArIDRdCisrICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDUsIDQs IDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgNV0KKysg IGFkZGkgNSwgNSwgMTYKKysgIHN0dnggNiwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LnZteF9yZXNlcnZlWyhhbGlnbikgKyA2XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCA3LCA0 LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDddCisr ICBhZGRpIDUsIDUsIDE2CisrICBzdHZ4IDgsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4 dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgOF0KKysgIGFkZGkgNSwgNSwgMTYKKysgIHN0dnggOSwg NCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA5XQor KyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxMCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQudm14X3Jlc2VydmVbKGFsaWduKSArIDEwXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAx MSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDEx XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxMiwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDEyXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2 eCAxMywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSAr IDEzXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxNCwgNCwgNSAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE0XQorKyAgYWRkaSA1LCA1LCAxNgorKyAg c3R2eCAxNSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWdu KSArIDE1XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxNiwgNCwgNSAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE2XQorKyAgYWRkaSA1LCA1LCAxNgor KyAgc3R2eCAxNywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDE3XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAxOCwgNCwgNSAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE4XQorKyAgYWRkaSA1LCA1LCAx NgorKyAgc3R2eCAxOSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVb KGFsaWduKSArIDE5XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyMCwgNCwgNSAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIwXQorKyAgYWRkaSA1LCA1 LCAxNgorKyAgc3R2eCAyMSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2Vy dmVbKGFsaWduKSArIDIxXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyMiwgNCwgNSAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIyXQorKyAgYWRkaSA1 LCA1LCAxNgorKyAgc3R2eCAyMywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jl c2VydmVbKGFsaWduKSArIDIzXQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyNCwgNCwgNSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI0XQorKyAgYWRk aSA1LCA1LCAxNgorKyAgc3R2eCAyNSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14 X3Jlc2VydmVbKGFsaWduKSArIDI1XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyNiwgNCwg NSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI2XQorKyAg YWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyNywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu dm14X3Jlc2VydmVbKGFsaWduKSArIDI3XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyOCwg NCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI4XQor KyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAyOSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI5XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAz MCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDMw XQorKyAgYWRkaSA1LCA1LCAxNgorKyAgc3R2eCAzMSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDMxXQorKyAgYWRkaSA1LCA1LCAxNgorKworKyAg Ly8gVlNDUgorKyAgbWZ2c2NyIDAKKysgIHN0dnggMCwgNCwgNQorKyAgYWRkaSA1LCA1LCAxNgor KworKyAgLy8gVlJTQVZFCisrICBtZnZyc2F2ZSAwCisrICBzdHd4IDAsIDQsIDUKKysKKysgIC8v IFVwZGF0ZSBjb250ZXh0LT51Y19tY29udGV4dC52X3JlZ3MgdG8gcG9pbnQgdG8gdm14X3Jlc2Vy dmUgKyBhbGlnbm1lbnQuCisrICBzdGQgNCwgMHgzNzAoMykKKysKKysgIC8vIFplcm8gb3V0IGFs bCB1bnVzZWQgZmllbGRzCisrICBsaSA0LCAwCisrICBzdGQgNCwgMHhjOCgzKSAvLyBjb250ZXh0 LT51Y19tY29udGV4dC5zaWduYWwKKysgIHN0ZCA0LCAweGQwKDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmhhbmRsZXIKKysgIHN0ZCA0LCAweGQ4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 Lm9sZG1hc2sKKysKKysgIGJscgorICNlbmRpZiAgLy8gX19pMzg2X18KKy0tLSBhL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2Fw dHVyZV9jb250ZXh0X3Rlc3QuY2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9w YXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3QuY2MK K0BAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgVGVzdENhcHR1cmVDb250ZXh0KCkgeworICAgdWludHB0 cl90IHBjID0gUHJvZ3JhbUNvdW50ZXJGcm9tQ29udGV4dChjb250ZXh0XzEpOworIAorICNpZiAh ZGVmaW5lZChBRERSRVNTX1NBTklUSVpFUikgJiYgIWRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIFwKKy0gICAgIWRlZmluZWQoTUVNT1JZX1NBTklUSVpFUikKKysgICAgIWRlZmluZWQo TUVNT1JZX1NBTklUSVpFUikgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorICAg Ly8gU2FuaXRpemVycyBjYW4gY2F1c2UgZW5vdWdoIGNvZGUgYmxvYXQgdGhhdCB0aGUg4oCcbmVh cmJ54oCdIGNoZWNrIHdvdWxkCisgICAvLyBsaWtlbHkgZmFpbC4KKyAgIGNvbnN0IHVpbnRwdHJf dCBrUmVmZXJlbmNlUEMgPQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdF91dGlsX2xp bnV4LmNjCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKK0BA IC0zNSw2ICszNSw4IEBAIHZvaWQgU2FuaXR5Q2hlY2tDb250ZXh0KGNvbnN0IE5hdGl2ZUNQVUMK KyAgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LnJlZ3NbMF0sIEZyb21Qb2ludGVyQ2Fz dDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7CisgI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZB TUlMWSkKKyAgIEVYUEVDVF9FUShjb250ZXh0LnVjX21jb250ZXh0LmdyZWdzWzRdLCBGcm9tUG9p bnRlckNhc3Q8dWludHB0cl90PigmY29udGV4dCkpOworKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVf UFBDNjRfRkFNSUxZKQorKyAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1sz XSwgRnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKKyAjZW5kaWYKKyB9Cisg CitAQCAtNDksNiArNTEsOCBAQCB1aW50cHRyX3QgUHJvZ3JhbUNvdW50ZXJGcm9tQ29udGV4dChj b25zCisgICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5wYzsKKyAjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKQorICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQucGM7Cisr I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCisrICByZXR1cm4gY29udGV4dC51 Y19tY29udGV4dC5ncF9yZWdzW1BUX05JUF07CisgI2VuZGlmCisgfQorIAorQEAgLTYzLDYgKzY3 LDggQEAgdWludHB0cl90IFN0YWNrUG9pbnRlckZyb21Db250ZXh0KGNvbnN0CisgICByZXR1cm4g Y29udGV4dC51Y19tY29udGV4dC5zcDsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKQorICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuZ3JlZ3NbMjldOworKyNlbGlmIGRl ZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQorKyAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRl eHQuZ3BfcmVnc1sxXTsKKyAjZW5kaWYKKyB9CisgCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9wb3NpeC9zaWduYWxzX3Rlc3Qu Y2MKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYworQEAgLTQ2LDkgKzQ2LDkgQEAgYm9vbCBD YW5DYXVzZVNpZ25hbChpbnQgc2lnKSB7CisgICByZXR1cm4gc2lnID09IFNJR0FCUlQgfHwKKyAg ICAgICAgICBzaWcgPT0gU0lHQUxSTSB8fAorICAgICAgICAgIHNpZyA9PSBTSUdCVVMgfHwKKy0j aWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpCisrI2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0 KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKKyAgICAgICAgICBzaWcgPT0gU0lHRlBFIHx8 CistI2VuZGlmICAvLyAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkKKysjZW5kaWYgIC8vICFkZWZp bmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9QUEM2NCkKKyAjaWYgZGVm aW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTUVMKQorICAg ICAgICAgIHNpZyA9PSBTSUdJTEwgfHwKKyAjZW5kaWYgIC8vIGRlZmluZWQoQVJDSF9DUFVfWDg2 X0ZBTUlMWSkgfHwgZGVmaW5lZChBUkNIX0NQVV9BUk1FTCkKK0BAIC0xMTcsOSArMTE3LDExIEBA IHZvaWQgQ2F1c2VTaWduYWwoaW50IHNpZykgeworICAgICAgIGJyZWFrOworICAgICB9CisgCist I2lmICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KQorKyNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02 NCkgJiYgIWRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCisgICAgIC8vIEFSTTY0IGhhcyBoYXJkd2Fy ZSBpbnRlZ2VyIGRpdmlzaW9uIGluc3RydWN0aW9ucyB0aGF0IGRvbuKAmXQgZ2VuZXJhdGUgYQor ICAgICAvLyB0cmFwIGZvciBkaXZpZGUtYnktemVybywgc28gdGhpcyBkb2VzbuKAmXQgcHJvZHVj ZSBTSUdGUEUuCisrICAgIC8vCisrICAgIC8vIFBQQzY0IGZpeGVkLXBvaW50IGRpdmlzaW9uIGJ5 IHplcm8gYWxzbyBkb2Vzbid0IHByb2R1Y2UgYSBTSUdGUEUuCisgICAgIGNhc2UgU0lHRlBFOiB7 CisgICAgICAgLy8gT3B0aW1pemF0aW9uIG1ha2VzIHRoaXMgdHJpY2t5LCBzbyBnZXQgemVybyBm cm9tIGEgc3lzdGVtIGNhbGwgbGlrZWx5CisgICAgICAgLy8gdG8gc3VjY2VlZCwgYW5kIHRyeSB0 byBkbyBzb21ldGhpbmcgd2l0aCB0aGUgcmVzdWx0LgorQEAgLTEzNyw3ICsxMzksNyBAQCB2b2lk IENhdXNlU2lnbmFsKGludCBzaWcpIHsKKyAgICAgICBmc3RhdChxdW90aWVudCwgJnN0YXRfYnVm KTsKKyAgICAgICBicmVhazsKKyAgICAgfQorLSNlbmRpZiAgLy8gQVJDSF9DUFVfQVJNNjQKKysj ZW5kaWYgIC8vICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQVV9Q UEM2NCkKKyAKKyAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFS Q0hfQ1BVX0FSTUVMKQorICAgICBjYXNlIFNJR0lMTDogeworLS0tIGEvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hy b21pdW0vdGhpcmRfcGFydHkvZGF2MWQvQlVJTEQuZ24KK0BAIC0xOTYsNiArMTk2LDggQEAgc3Rh dGljX2xpYnJhcnkoImRhdjFkXzhiaXQiKSB7CisgICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRl X3NvdXJjZXMKKyAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybTY0IikgeworICAgICBz b3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCisrICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1 ID09ICJwcGM2NCIpIHsKKysgICAgc291cmNlcyArPSBwcGM2NF90ZW1wbGF0ZV9zb3VyY2VzCisg ICB9CisgCisgICBjZmxhZ3MgPSBkYXYxZF9jb3B0cworQEAgLTIyNiw2ICsyMjgsOCBAQCBzdGF0 aWNfbGlicmFyeSgiZGF2MWRfMTBiaXQiKSB7CisgICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRl X3NvdXJjZXMKKyAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybTY0IikgeworICAgICBz b3VyY2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCisrICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1 ID09ICJwcGM2NCIpIHsKKysgICAgc291cmNlcyArPSBwcGM2NF90ZW1wbGF0ZV9zb3VyY2VzCisg ICB9CisgCisgICBjZmxhZ3MgPSBkYXYxZF9jb3B0cworQEAgLTI4Myw2ICsyODcsMjEgQEAgaWYg KGN1cnJlbnRfY3B1ID09ICJ4ODYiIHx8IGN1cnJlbnRfY3B1CisgICAgIH0KKyAKKyAgICAgY2Zs YWdzID0gZGF2MWRfY29wdHMKKysgIH0KKyt9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2 NCIpIHsKKysgIHN0YXRpY19saWJyYXJ5KCJkYXYxZF9wcGMiKSB7CisrICAgIHNvdXJjZXMgPSBb CisrICAgICAgImxpYmRhdjFkL3NyYy9wcGMvY3B1LmMiLAorKyAgICAgICJsaWJkYXYxZC9zcmMv cHBjL2NwdS5oIiwKKysgICAgXQorKworKyAgICBjb25maWdzIC09IFsgIi8vYnVpbGQvY29uZmln L2NvbXBpbGVyOmNocm9taXVtX2NvZGUiIF0KKysgICAgY29uZmlncyArPSBbCisrICAgICAgIi8v YnVpbGQvY29uZmlnL2NvbXBpbGVyOm5vX2Nocm9taXVtX2NvZGUiLAorKyAgICAgICI6ZGF2MWRf Y29uZmlnIiwKKysgICAgXQorKworKyAgICBjZmxhZ3MgPSBkYXYxZF9jb3B0cworIAorICAgICBk ZXBzID0gWyAiOmRhdjFkX2hlYWRlcnMiIF0KKyAgICAgYWxsb3dfY2lyY3VsYXJfaW5jbHVkZXNf ZnJvbSA9IFsgIjpkYXYxZF9oZWFkZXJzIiBdCitAQCAtMzE1LDUgKzMzNCw3IEBAIHN0YXRpY19s aWJyYXJ5KCJkYXYxZCIpIHsKKyAgICAgfQorICAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAi YXJtIiB8fCBjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7CisgICAgIGRlcHMgKz0gWyAiOmRhdjFk X2FybSIgXQorKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7CisrICAgIGRl cHMgKz0gWyAiOmRhdjFkX3BwYyIgXQorICAgfQorIH0KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS90aGlyZF9wYXJ0eS9kYXYxZC9kYXYxZF9nZW5lcmF0ZWQuZ25pCisrKysgYi9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvZGF2MWRfZ2VuZXJhdGVkLmduaQorQEAg LTEwMyw2ICsxMDMsMTEgQEAgYXJtX3RlbXBsYXRlX3NvdXJjZXMgPSBbCisgICAibGliZGF2MWQv c3JjL2FybS9tY19pbml0X3RtcGwuYyIsCisgXQorIAorK3BwYzY0X3RlbXBsYXRlX3NvdXJjZXMg PSBbCisrICAibGliZGF2MWQvc3JjL3BwYy9jZGVmX2luaXRfdG1wbC5jIiwKKysgICJsaWJkYXYx ZC9zcmMvcHBjL2xvb3ByZXN0b3JhdGlvbl9pbml0X3RtcGwuYyIsCisrXQorKworIHRlbXBsYXRl X3NvdXJjZXMgPSBbCisgICAibGliZGF2MWQvc3JjL2NkZWZfYXBwbHlfdG1wbC5jIiwKKyAgICJs aWJkYXYxZC9zcmMvY2RlZl90bXBsLmMiLAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Ro aXJkX3BhcnR5L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weQorKysrIGIvc3JjLzNyZHBhcnR5L2No cm9taXVtL3RoaXJkX3BhcnR5L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weQorQEAgLTU3LDYgKzU3 LDggQEAgZGVmIF9Xcml0ZUduKGZkKToKKyAgIF9Xcml0ZUFycmF5KGZkLCAiYXJtNjRfYXNtX3Nv dXJjZXMiLCBfR2xvYigibGliZGF2MWQvc3JjL2FybS82NC8qLlMiKSkKKyAgIF9Xcml0ZUFycmF5 KGZkLCAiYXJtX3RlbXBsYXRlX3NvdXJjZXMiLCBfR2xvYigibGliZGF2MWQvc3JjL2FybS8qX3Rt cGwuYyIpKQorIAorKyAgX1dyaXRlQXJyYXkoZmQsICJwcGM2NF90ZW1wbGF0ZV9zb3VyY2VzIiwg X0dsb2IoImxpYmRhdjFkL3NyYy9wcGMvKl90bXBsLmMiKSkKKysKKyAgIHRlbXBsYXRlX3NvdXJj ZXMgPSBfR2xvYigibGliZGF2MWQvc3JjLypfdG1wbC5jIikKKyAgIF9Xcml0ZUFycmF5KGZkLCAi dGVtcGxhdGVfc291cmNlcyIsIHRlbXBsYXRlX3NvdXJjZXMpCisgCistLS0gYS9zcmMvM3JkcGFy dHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3JjL3BwYy90eXBlcy5oCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3Jj L3BwYy90eXBlcy5oCitAQCAtNTEsNCArNTEsMTkgQEAKKyAjZGVmaW5lIHUxNmxfdG9faTMyKHYp ICgoaTMyeDQpIHZlY19tZXJnZWwoKHUxNng4KSB2LCB2ZWNfc3BsYXRfdTE2KDApKSkKKyAjZGVm aW5lIGkxNmxfdG9faTMyKHYpICgoaTMyeDQpIHZlY191bnBhY2tsKChpMTZ4OCl2KSkKKyAKKysj aWYgZGVmaW5lZChfX2NsYW5nX18pCisrI3VuZGVmIHZlY19zcGxhdHMKKysjZGVmaW5lIHZlY19z cGxhdHMoTikgICAgICAgICAgICAgICAgICAgICBcCisrICAgIF9HZW5lcmljKChOKSwgICAgICAg ICAgICAgICAgICAgICAgICAgXAorKyAgICAgICAgdW5zaWduZWQgY2hhcjogICAgICAoKHU4eDE2 KShOKSksIFwKKysgICAgICAgIHNpZ25lZCBjaGFyOiAgICAgICAgKChpOHgxNikoTikpLCBcCisr ICAgICAgICB1bnNpZ25lZCBzaG9ydDogICAgICgodTE2eDgpKE4pKSwgXAorKyAgICAgICAgc2ln bmVkIHNob3J0OiAgICAgICAoKGkxNng4KShOKSksIFwKKysgICAgICAgIHVuc2lnbmVkIGludDog ICAgICAgKCh1MzJ4NCkoTikpLCBcCisrICAgICAgICBzaWduZWQgaW50OiAgICAgICAgICgoaTMy eDQpKE4pKSwgXAorKyAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nOiAoKHU2NHgyKShOKSksIFwK KysgICAgICAgIHNpZ25lZCBsb25nIGxvbmc6ICAgKChpNjR4MikoTikpICBcCisrICAgICkKKysj ZW5kaWYKKysKKyAjZW5kaWYgLyogREFWMURfU1JDX1BQQ19UWVBFU19IICovCistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZWlnZW4zL0JVSUxELmduCisrKysgYi9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvZWlnZW4zL0JVSUxELmduCitAQCAtMjIsNCAr MjIsOCBAQCBjb25maWcoImVpZ2VuX2luY2x1ZGVzIikgeworICAgICAjIGZvciB0aGlzIGNvbXBv bmVudCBvbiBXaW5kb3dzIG9uIEFybSBkdWUgdG8gY29tcGlsYXRpb24gZXJyb3JzLgorICAgICBk ZWZpbmVzICs9IFsgIkVJR0VOX0RPTlRfVkVDVE9SSVpFIiBdCisgICB9CisrCisrICBpZiAodGFy Z2V0X2NwdSA9PSAicHBjNjQiKSB7CisrICAgIGRlZmluZXMgKz0gWyAiRUlHRU5fRE9OVF9WRUNU T1JJWkUiIF0KKysgIH0KKyB9CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvbGliYW9tL0JVSUxELmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvbGliYW9tL0JVSUxELmduCitAQCAtMzcsNiArMzcsOCBAQCBpZiAoZW5hYmxlX2xpYmFvbSkg eworICAgICB9IGVsc2UgeworICAgICAgIGNwdV9hcmNoX2Z1bGwgPSAiYXJtIgorICAgICB9Cisr ICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIpIHsKKysgICAgY3B1X2FyY2hfZnVs bCA9ICJnZW5lcmljIgorICAgfSBlbHNlIHsKKyAgICAgY3B1X2FyY2hfZnVsbCA9IGN1cnJlbnRf Y3B1CisgICB9CistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbGliZ2F2 MS9vcHRpb25zLmduaQorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2xp YmdhdjEvb3B0aW9ucy5nbmkKK0BAIC0xMiw1ICsxMiw1IEBAIGRlY2xhcmVfYXJncygpIHsKKyAg ICAgICBpc19jaHJvbWVvc19hc2ggJiYgKHRhcmdldF9jcHUgPT0gImFybSIgfHwgdGFyZ2V0X2Nw dSA9PSAiYXJtNjQiKQorICAgdXNlX2xpYmdhdjFfcGFyc2VyID0KKyAgICAgICAoaXNfY2hyb21l b3MgfHwgaXNfbGludXggfHwgaXNfd2luKSAmJgorLSAgICAgICh0YXJnZXRfY3B1ID09ICJ4ODYi IHx8IHRhcmdldF9jcHUgPT0gIng2NCIgfHwgdGFyZ2V0X2NwdSA9PSAiYXJtNjQiKQorKyAgICAg ICh0YXJnZXRfY3B1ID09ICJ4ODYiIHx8IHRhcmdldF9jcHUgPT0gIng2NCIgfHwgdGFyZ2V0X2Nw dSA9PSAiYXJtNjQiIHx8IHRhcmdldF9jcHUgPT0gInBwYzY0IikKKyB9CistLS0gYS9zcmMvM3Jk cGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxfc3VwcG9ydC5oCisr KysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvbHNzL2xpbnV4X3N5c2NhbGxf c3VwcG9ydC5oCitAQCAtNDI2Miw3ICs0MjYyLDcgQEAgc3RydWN0IGtlcm5lbF9zdGF0ZnMgewor ICAgICAgIExTU19SRUcoMiwgYnVmKTsKKyAgICAgICBMU1NfQk9EWSh2b2lkKiwgbW1hcDIsICIw IihfX3IyKSk7CisgICAgIH0KKy0jZWxzZQorKyNlbGlmICFkZWZpbmVkKF9fcG93ZXJwYzY0X18p IC8qIHBwYzY0IGRvZXNuJ3QgaGF2ZSBtbWFwMiAqLworICAgICAjZGVmaW5lIF9fTlJfX21tYXAy IF9fTlJfbW1hcDIKKyAgICAgTFNTX0lOTElORSBfc3lzY2FsbDYodm9pZCosIF9tbWFwMiwgICAg ICAgICAgICB2b2lkKiwgcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90LCAgICAg ICAgICAgICAgICAgICBsLCBpbnQsICAgICAgICAgICAgICAgcCwKK0BAIC00MzczLDcgKzQzNzMs NyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7CisgICAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAorICAg ICAgIGRlZmluZWQoX19BUk1fQVJDSF8zX18pIHx8IGRlZmluZWQoX19BUk1fRUFCSV9fKSB8fCAg ICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIChkZWZpbmVkKF9fbWlwc19fKSAmJiBfTUlQU19T SU0gPT0gX01JUFNfU0lNX0FCSTMyKSB8fCAgICAgICAgICAgICAgICAgICBcCistICAgICAgZGVm aW5lZChfX1BQQ19fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXAorKyAgICAgKGRlZmluZWQoX19QUENfXykgJiYgIWRlZmluZWQoX19wb3dl cnBjNjRfXykpIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcCisgICAgICAoZGVmaW5lZChfX3MzOTBfXykgJiYgIWRlZmluZWQoX19zMzkweF9f KSkKKyAgICAgLyogT24gdGhlc2UgYXJjaGl0ZWN0dXJlcywgaW1wbGVtZW50IG1tYXAoKSB3aXRo IG1tYXAyKCkuICovCisgICAgIExTU19JTkxJTkUgdm9pZCogTFNTX05BTUUobW1hcCkodm9pZCAq cywgc2l6ZV90IGwsIGludCBwLCBpbnQgZiwgaW50IGQsCitAQCAtNDU1Niw5ICs0NTU2LDE3IEBA IHN0cnVjdCBrZXJuZWxfc3RhdGZzIHsKKyAgICAgfQorICAgI2VuZGlmCisgICAjaWYgZGVmaW5l ZChfX05SX2ZzdGF0YXQ2NCkKKysgICAgI2lmICFkZWZpbmVkKF9fR0xJQkNfXykKKysgICAgICAg IC8vIG11c2wgZG9lc24ndCBkZWZpbmUgZnN0YXRhdDY0IGZzdGF0YXQKKysgICAgICAgICN1bmRl ZiBmc3RhdGF0NjQKKysgICAgI2VuZGlmCisgICAgIExTU19JTkxJTkUgX3N5c2NhbGw0KGludCwg ICBmc3RhdGF0NjQsICAgICAgICBpbnQsICAgZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg Y29uc3QgY2hhciAqLCAgICAgIHAsCisgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBr ZXJuZWxfc3RhdDY0ICosICAgYiwgICAgaW50LCAgIGYpCisrICAgICNpZiAhZGVmaW5lZChfX0dM SUJDX18pCisrICAgIAkvLyB0aGVuIHJlc3RvcmUgaXQKKysgICAgICAgICNkZWZpbmUgZnN0YXRh dDY0IGZzdGF0YXQKKysgICAgI2VuZGlmCisgICAjZW5kaWYKKyAgICNpZiBkZWZpbmVkKF9fTlJf d2FpdHBpZCkKKyAgICAgLy8gd2FpdHBpZCBpcyBwb2x5ZmlsbGVkIGJlbG93IHdoZW4gbm90IGF2 YWlsYWJsZS4KKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9wZGZpdW0v dGhpcmRfcGFydHkvbGlicG5nMTYvcG5ncHJpdi5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21p dW0vdGhpcmRfcGFydHkvcGRmaXVtL3RoaXJkX3BhcnR5L2xpYnBuZzE2L3BuZ3ByaXYuaAorQEAg LTE5NiwxMSArMTk2LDcgQEAKKyAjZW5kaWYKKyAKKyAjaWZuZGVmIFBOR19QT1dFUlBDX1ZTWF9P UFQKKy0jICBpZiBkZWZpbmVkKF9fUFBDNjRfXykgJiYgZGVmaW5lZChfX0FMVElWRUNfXykgJiYg ZGVmaW5lZChfX1ZTWF9fKQorLSMgICAgIGRlZmluZSBQTkdfUE9XRVJQQ19WU1hfT1BUIDIKKy0j ICBlbHNlCistIyAgICAgZGVmaW5lIFBOR19QT1dFUlBDX1ZTWF9PUFQgMAorLSMgIGVuZGlmCisr IyAgZGVmaW5lIFBOR19QT1dFUlBDX1ZTWF9PUFQgMAorICNlbmRpZgorIAorICNpZm5kZWYgUE5H X0lOVEVMX1NTRV9PUFQKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9w ZmZmdC9zcmMvcGZmZnQuYworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5 L3BmZmZ0L3NyYy9wZmZmdC5jCitAQCAtMTAwLDYgKzEwMCw3IEBACisgICAgQWx0aXZlYyBzdXBw b3J0IG1hY3JvcyAKKyAqLworICNpZiAhZGVmaW5lZChQRkZGVF9TSU1EX0RJU0FCTEUpICYmIChk ZWZpbmVkKF9fcHBjX18pIHx8IGRlZmluZWQoX19wcGM2NF9fKSkKKysjaW5jbHVkZSA8YWx0aXZl Yy5oPgorIHR5cGVkZWYgdmVjdG9yIGZsb2F0IHY0c2Y7CisgIyAgZGVmaW5lIFNJTURfU1ogNAor ICMgIGRlZmluZSBWWkVSTygpICgodmVjdG9yIGZsb2F0KSB2ZWNfc3BsYXRfdTgoMCkpCistLS0g YS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NMU3Ry aW5nLmNwcAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NraWEvc3Jj L3Nrc2wvU2tTTFN0cmluZy5jcHAKK0BAIC0xNDIsNyArMTQyLDEyIEBAIFN0cmluZyB0b19zdHJp bmcoZG91YmxlIHZhbHVlKSB7CisgICAgIGlmIChuZWVkc0RvdFplcm8pIHsKKyAgICAgICAgIGJ1 ZmZlciA8PCAiLjAiOworICAgICB9CistICAgIHJldHVybiBTdHJpbmcoYnVmZmVyLnN0cigpLmNf c3RyKCkpOworKworKyAgICBzdGQ6OnN0cmluZyByZXQoYnVmZmVyLnN0cigpKTsKKysgICAgaWYg KHNpZ25iaXQodmFsdWUpICYmIHJldFswXSA9PSAnLicpIHsKKysgICAgICAgIHJldFswXSA9ICct JzsKKysgICAgfQorKyAgICByZXR1cm4gU3RyaW5nKHJldC5jX3N0cigpKTsKKyB9CisgCisgYm9v bCBzdG9kKGNvbnN0IHNrc3RkOjpzdHJpbmdfdmlldyYgcywgU0tTTF9GTE9BVCogdmFsdWUpIHsK Ky0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxn YW1hdGlvbi9zcWxpdGUzLmMKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbi9zcWxpdGUzLmMKK0BAIC0xNDYyOCw3ICsxNDYyOCw4 IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7CisgIyBpZiBkZWZpbmVkKGkzODYpICAgICAg fHwgZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKKyAg ICAgIGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmlu ZWQoX01fWDY0KSAgfHwgICAgXAorICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQo X01fQVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCistICAgICBkZWZpbmVk KF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0 KQorKyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwg ZGVmaW5lZChfTV9BUk02NCkgfHwgICBcCisrICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYm IChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKKyAjICAgZGVmaW5l IFNRTElURV9CWVRFT1JERVIgICAgMTIzNAorICMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwg ZGVmaW5lZChfX3BwY19fKSB8fCBcCisgICAgICAgIGRlZmluZWQoX19BUk1FQl9fKSB8fCBkZWZp bmVkKF9fQUFSQ0g2NEVCX18pCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYworKysrIGIvc3JjLzNyZHBh cnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uX2Rldi9zcWxp dGUzLmMKK0BAIC0xNDY0MSw3ICsxNDY0MSw4IEBAIHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7 CisgIyBpZiBkZWZpbmVkKGkzODYpICAgICAgfHwgZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBk ZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKKyAgICAgIGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZp bmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAorICAgICAgZGVm aW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQoX01fQVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4 NikgICB8fCAgICBcCistICAgICBkZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNI NjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KQorKyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8 IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5lZChfTV9BUk02NCkgfHwgICBcCisrICAg ICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJ VFRMRV9FTkRJQU5fXykKKyAjICAgZGVmaW5lIFNRTElURV9CWVRFT1JERVIgICAgMTIzNAorICMg ZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwgZGVmaW5lZChfX3BwY19fKSB8fCBcCisgICAgICAg IGRlZmluZWQoX19BUk1FQl9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVCX18pCistLS0gYS9zcmMv M3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUvcnRyZWUu YworKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0 L3J0cmVlL3J0cmVlLmMKK0BAIC00NTAsNyArNDUwLDcgQEAgc3RydWN0IFJ0cmVlTWF0Y2hBcmcg eworICNpZiBkZWZpbmVkKGkzODYpICAgICB8fCBkZWZpbmVkKF9faTM4Nl9fKSAgIHx8IGRlZmlu ZWQoX01fSVg4NikgfHwgICAgXAorICAgICBkZWZpbmVkKF9feDg2XzY0KSB8fCBkZWZpbmVkKF9f eDg2XzY0X18pIHx8IGRlZmluZWQoX01fWDY0KSAgfHwgICAgXAorICAgICBkZWZpbmVkKF9NX0FN RDY0KSB8fCBkZWZpbmVkKF9NX0FSTSkgICAgIHx8IGRlZmluZWQoX194ODYpICAgfHwgICAgXAor LSAgICBkZWZpbmVkKF9fYXJtX18pCisrICAgIGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChf X3Bvd2VycGM2NF9fKSAmJiAoX19CWVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFO X18pCisgIyBkZWZpbmUgU1FMSVRFX0JZVEVPUkRFUiAgICAxMjM0CisgI2VsaWYgZGVmaW5lZChz cGFyYykgICAgfHwgZGVmaW5lZChfX3BwY19fKQorICMgZGVmaW5lIFNRTElURV9CWVRFT1JERVIg ICAgNDMyMQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L3NxbGl0ZS9z cmMvc3JjL3NxbGl0ZUludC5oCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKK0BAIC04OTAsNyArODkwLDggQEAgdHlwZWRl ZiBJTlQxNl9UWVBFIExvZ0VzdDsKKyAjIGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVk KF9faTM4Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAorICAgICAgZGVmaW5l ZChfX3g4Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQp ICB8fCAgICBcCisgICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAg ICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKKy0gICAgIGRlZmluZWQoX19BUk1FTF9f KSB8fCBkZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpCisrICAgICBk ZWZpbmVkKF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9N X0FSTTY0KSB8fCBcCisrICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZVEVfT1JE RVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKKyAjICAgZGVmaW5lIFNRTElURV9CWVRF T1JERVIgICAgMTIzNAorICMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwgZGVmaW5lZChfX3Bw Y19fKSB8fCBcCisgICAgICAgIGRlZmluZWQoX19BUk1FQl9fKSB8fCBkZWZpbmVkKF9fQUFSQ0g2 NEVCX18pCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFydHkvd2VicnRjL21v ZHVsZXMvZGVza3RvcF9jYXB0dXJlL2RpZmZlcl9ibG9jay5jYworKysrIGIvc3JjLzNyZHBhcnR5 L2Nocm9taXVtL3RoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rlc2t0b3BfY2FwdHVyZS9kaWZm ZXJfYmxvY2suY2MKK0BAIC0zMCwxMSArMzAsNyBAQCBib29sIFZlY3RvckRpZmZlcmVuY2UoY29u c3QgdWludDhfdCogaW1hCisgICBzdGF0aWMgYm9vbCAoKmRpZmZfcHJvYykoY29uc3QgdWludDhf dCosIGNvbnN0IHVpbnQ4X3QqKSA9IG51bGxwdHI7CisgCisgICBpZiAoIWRpZmZfcHJvYykgewor LSNpZiBkZWZpbmVkKFdFQlJUQ19BUkNIX0FSTV9GQU1JTFkpIHx8IGRlZmluZWQoV0VCUlRDX0FS Q0hfTUlQU19GQU1JTFkpCistICAgIC8vIEZvciBBUk0gYW5kIE1JUFMgcHJvY2Vzc29ycywgYWx3 YXlzIHVzZSBDIHZlcnNpb24uCistICAgIC8vIFRPRE8oaGNsYW0pOiBJbXBsZW1lbnQgYSBORU9O IHZlcnNpb24uCistICAgIGRpZmZfcHJvYyA9ICZWZWN0b3JEaWZmZXJlbmNlX0M7CistI2Vsc2UK KysjaWYgZGVmaW5lZChXRUJSVENfQVJDSF9YODZfRkFNSUxZKQorICAgICBib29sIGhhdmVfc3Nl MiA9IEdldENQVUluZm8oa1NTRTIpICE9IDA7CisgICAgIC8vIEZvciB4ODYgcHJvY2Vzc29ycywg Y2hlY2sgaWYgU1NFMiBpcyBzdXBwb3J0ZWQuCisgICAgIGlmIChoYXZlX3NzZTIgJiYga0Jsb2Nr U2l6ZSA9PSAzMikgeworQEAgLTQ0LDYgKzQwLDEwIEBAIGJvb2wgVmVjdG9yRGlmZmVyZW5jZShj b25zdCB1aW50OF90KiBpbWEKKyAgICAgfSBlbHNlIHsKKyAgICAgICBkaWZmX3Byb2MgPSAmVmVj dG9yRGlmZmVyZW5jZV9DOworICAgICB9CisrI2Vsc2UKKysgICAgLy8gRm9yIG90aGVyIHByb2Nl c3NvcnMsIGFsd2F5cyB1c2UgQyB2ZXJzaW9uLgorKyAgICAvLyBUT0RPKGhjbGFtKTogSW1wbGVt ZW50IGEgTkVPTiB2ZXJzaW9uLgorKyAgICBkaWZmX3Byb2MgPSAmVmVjdG9yRGlmZmVyZW5jZV9D OworICNlbmRpZgorICAgfQorIAorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L0JVSUxE LmduCisrKysgYi9zcmMvM3JkcGFydHkvY2hyb21pdW0vdjgvQlVJTEQuZ24KK0BAIC0xMDgzLDYg KzEwODMsMTIgQEAgY29uZmlnKCJ0b29sY2hhaW4iKSB7CisgICAgIH0KKyAgICAgaWYgKGhvc3Rf Ynl0ZW9yZGVyID09ICJsaXR0bGUiKSB7CisgICAgICAgZGVmaW5lcyArPSBbICJWOF9UQVJHRVRf QVJDSF9QUENfTEUiIF0KKysgICAgICBjZmxhZ3MgKz0gWworKyAgICAgICAgIyBFbmFibGUgdXNh Z2Ugb2YgQWx0aVZlYywgVlNYLCBhbmQgb3RoZXIgUE9XRVI4IGFuZCBoaWdoZXIgZmVhdHVyZXMK KysgICAgICAgICItbWNwdT1wb3dlcjgiLAorKyAgICAgICAgIi1tYWx0aXZlYyIsCisrICAgICAg ICAiLW12c3giLAorKyAgICAgIF0KKyAgICAgfSBlbHNlIGlmIChob3N0X2J5dGVvcmRlciA9PSAi YmlnIikgeworICAgICAgIGRlZmluZXMgKz0gWyAiVjhfVEFSR0VUX0FSQ0hfUFBDX0JFIiBdCisg ICAgICAgaWYgKGN1cnJlbnRfb3MgPT0gImFpeCIpIHsKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJv bWl1bS91aS9nbC9mZWF0dXJlcy5nbmkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS91aS9n bC9mZWF0dXJlcy5nbmkKK0BAIC0zNSw3ICszNSw4IEBAIGRlY2xhcmVfYXJncygpIHsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAoaXNfbWFjICYmIHVzZV9lZ2wpIHx8IGlzX2Nocm9tZW9zX2Fz aCB8fCBpc19mdWNoc2lhKSAmJgorICAgICAgICAgICAgICAgICAgICAgICAgKHRhcmdldF9jcHUg PT0gIng4NiIgfHwgdGFyZ2V0X2NwdSA9PSAieDY0IiB8fAorICAgICAgICAgICAgICAgICAgICAg ICAgIHRhcmdldF9jcHUgPT0gImFybSIgfHwgdGFyZ2V0X2NwdSA9PSAiYXJtNjQiIHx8CistICAg ICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAibWlwc2VsIiB8fCB0YXJnZXRfY3B1 ID09ICJtaXBzNjRlbCIpCisrICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAi bWlwc2VsIiB8fCB0YXJnZXRfY3B1ID09ICJtaXBzNjRlbCIgfHwKKysgICAgICAgICAgICAgICAg ICAgICAgICB0YXJnZXRfY3B1ID09ICJwcGM2NCIpCisgfQorIAorIHVzZV9nbHggPSB1c2VfeDEx IHx8IG96b25lX3BsYXRmb3JtX3gxMQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3Y4L3Rl c3QvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS92OC90ZXN0L0JVSUxELmdu CitAQCAtNDIsNyArNDIsNiBAQCBncm91cCgiZ25fYWxsIikgeworICAgICAgICJiZW5jaG1hcmtz L2NwcDpnbl9hbGwiLAorICAgICAgICJjY3Rlc3Q6Y2N0ZXN0IiwKKyAgICAgICAiY2N0ZXN0Omdl bmVyYXRlLWJ5dGVjb2RlLWV4cGVjdGF0aW9ucyIsCistICAgICAgInVuaXR0ZXN0czp1bml0dGVz dHMiLAorICAgICBdCisgICB9CisgfQorQEAgLTg0LDcgKzgzLDYgQEAgZ3JvdXAoInY4X2JvdF9k ZWZhdWx0IikgeworICAgICAibWVzc2FnZTp2OF9tZXNzYWdlIiwKKyAgICAgIm1qc3VuaXQ6djhf bWpzdW5pdCIsCisgICAgICJta2dyb2tkdW1wOm1rZ3Jva2R1bXAiLAorLSAgICAidW5pdHRlc3Rz OnVuaXR0ZXN0cyIsCisgICAgICJ3ZWJraXQ6djhfd2Via2l0IiwKKyAgIF0KKyAKK0BAIC0xMDks NyArMTA3LDYgQEAgZ3JvdXAoInY4X2RlZmF1bHQiKSB7CisgICAgICJtZXNzYWdlOnY4X21lc3Nh Z2UiLAorICAgICAibWpzdW5pdDp2OF9tanN1bml0IiwKKyAgICAgIm1rZ3Jva2R1bXA6bWtncm9r ZHVtcCIsCistICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKKyAgIF0KKyAKKyAgIGlmICh2OF9l bmFibGVfd2ViYXNzZW1ibHkpIHsKKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS9kZXYvbnVsbAorQEAgLTAsMCArMSwzOSBAQAorKy8qCisrICogQXV0b2dlbmVyYXRl ZCBieSB0aGUgTWVzb24gYnVpbGQgc3lzdGVtLgorKyAqIERvIG5vdCBlZGl0LCB5b3VyIGNoYW5n ZXMgd2lsbCBiZSBsb3N0LgorKyAqLworKworKyNwcmFnbWEgb25jZQorKworKyNkZWZpbmUgQVJD SF9BQVJDSDY0IDAKKysKKysjZGVmaW5lIEFSQ0hfQVJNIDAKKysKKysjZGVmaW5lIEFSQ0hfUFBD NjRMRSAxCisrCisrI2RlZmluZSBBUkNIX1g4NiAwCisrCisrI2RlZmluZSBBUkNIX1g4Nl8zMiAw CisrCisrI2RlZmluZSBBUkNIX1g4Nl82NCAwCisrCisrI2RlZmluZSBDT05GSUdfMTZCUEMgMQor KworKyNkZWZpbmUgQ09ORklHXzhCUEMgMQorKworKy8vICNkZWZpbmUgQ09ORklHX0xPRyAxIC0t IExvZ2dpbmcgaXMgY29udHJvbGxlZCBieSBDaHJvbWl1bQorKworKyNkZWZpbmUgRU5ESUFOTkVT U19CSUcgMAorKworKyNkZWZpbmUgSEFWRV9BU00gMQorKworKyNkZWZpbmUgSEFWRV9DTE9DS19H RVRUSU1FIDEKKysKKysjZGVmaW5lIEhBVkVfRExTWU0gMQorKworKyNkZWZpbmUgSEFWRV9HRVRB VVhWQUwgMQorKworKyNkZWZpbmUgSEFWRV9QT1NJWF9NRU1BTElHTiAxCisrCisrI2RlZmluZSBI QVZFX1VOSVNURF9IIDEKKysKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaAorKysr IGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9iYXNl L2ludGVybmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5oCitAQCAtNDYsNyArNDYsNyBAQAorIAorIC8v IFRoZSBmb2xsb3dpbmcgcGxhdGZvcm1zIGhhdmUgYW4gaW1wbGVtZW50YXRpb24gb2YgYSBoYXJk d2FyZSBjb3VudGVyLgorICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IFwKKy0gIGRlZmluZWQoX19wb3dlcnBjX18p IHx8IGRlZmluZWQoX19wcGNfXykgfHwgXAorKyAgKChkZWZpbmVkKF9fcG93ZXJwY19fKSB8fCBk ZWZpbmVkKF9fcHBjX18pKSAmJiBkZWZpbmVkKF9fR0xJQkNfXykpIHx8IFwKKyAgIGRlZmluZWQo X01fSVg4NikgfHwgZGVmaW5lZChfTV9YNjQpCisgI2RlZmluZSBBQlNMX0hBVkVfVU5TQ0FMRURf Q1lDTEVDTE9DS19JTVBMRU1FTlRBVElPTiAxCisgI2Vsc2UKKy0tLSBhL3NyYy8zcmRwYXJ0eS9j aHJvbWl1bS90aGlyZF9wYXJ0eS9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFsL3N0 YWNrdHJhY2VfY29uZmlnLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0 eS9hYnNlaWwtY3BwL2Fic2wvZGVidWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2VfY29uZmlnLmgK K0BAIC01OSw3ICs1OSw3IEBACisgI2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChf X3g4Nl82NF9fKQorICNkZWZpbmUgQUJTTF9TVEFDS1RSQUNFX0lOTF9IRUFERVIgXAorICAgImFi c2wvZGVidWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2VfeDg2LWlubC5pbmMiCistI2VsaWYgZGVm aW5lZChfX3BwY19fKSB8fCBkZWZpbmVkKF9fUFBDX18pCisrI2VsaWYgZGVmaW5lZChfX3BwY19f KSB8fCBkZWZpbmVkKF9fUFBDX18pICYmIGRlZmluZWQoX19HTElCQ19fKQorICNkZWZpbmUgQUJT TF9TVEFDS1RSQUNFX0lOTF9IRUFERVIgXAorICAgImFic2wvZGVidWdnaW5nL2ludGVybmFsL3N0 YWNrdHJhY2VfcG93ZXJwYy1pbmwuaW5jIgorICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCist LS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vYmFzZS9hbGxvY2F0b3IvcGFydGl0aW9uX2FsbG9j YXRvci9wYXJ0aXRpb25fYWxsb2NfY29uZmlnLmgKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9iYXNlL2FsbG9jYXRvci9wYXJ0aXRpb25fYWxsb2NhdG9yL3BhcnRpdGlvbl9hbGxvY19jb25m aWcuaAorQEAgLTEwMCw3ICsxMDAsOCBAQCBzdGF0aWNfYXNzZXJ0KHNpemVvZih2b2lkKikgIT0g OCwgIiIpOworIC8vIFBVVF9SRUZfQ09VTlRfSU5fUFJFVklPVVNfU0xPVCBkb2VzLiBJbiB0aGlz IGNhc2UgdGhlIHJlZmNvdW50IG92ZXJsYXBzIHdpdGgKKyAvLyB0aGUgbmV4dCBwb2ludGVyIHNo YWRvdyBmb3IgdGhlIHNtYWxsZXN0IGJ1Y2tldC4KKyAjaWYgIShkZWZpbmVkKE9TX01BQykgJiYg ZGVmaW5lZChBUkNIX0NQVV9BUk02NCkpICYmIFwKKy0gICAgIUJVSUxERkxBRyhQVVRfUkVGX0NP VU5UX0lOX1BSRVZJT1VTX1NMT1QpCisrICAgICFCVUlMREZMQUcoUFVUX1JFRl9DT1VOVF9JTl9Q UkVWSU9VU19TTE9UKSAmJiBcCisrICAgICghZGVmaW5lZChfX0dMSUJDKSAmJiAhZGVmaW5lZChf X3Bvd2VycGM2NF9fKSkKKyAjZGVmaW5lIFBBX0hBU19GUkVFTElTVF9IQVJERU5JTkcKKyAjZW5k aWYKKyAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9kb3dubG9hZF9uYWNsX3Rv b2xjaGFpbnMucHkKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9idWlsZC9kb3dubG9hZF9u YWNsX3Rvb2xjaGFpbnMucHkKK0BAIC0xMyw2ICsxMyw4IEBAIGltcG9ydCBzeXMKKyAKKyAKKyBk ZWYgTWFpbihhcmdzKToKKysgIGlmICdkaXNhYmxlX25hY2w9MScgaW4gb3MuZW52aXJvbi5nZXQo J0dZUF9ERUZJTkVTJywgJycpOgorKyAgICByZXR1cm4gMAorICAgc2NyaXB0X2RpciA9IG9zLnBh dGguZGlybmFtZShvcy5wYXRoLmFic3BhdGgoX19maWxlX18pKQorICAgc3JjX2RpciA9IG9zLnBh dGguZGlybmFtZShzY3JpcHRfZGlyKQorICAgbmFjbF9kaXIgPSBvcy5wYXRoLmpvaW4oc3JjX2Rp ciwgJ25hdGl2ZV9jbGllbnQnKQorLS0tIGEvc3JjLzNyZHBhcnR5L2Nocm9taXVtL2Nocm9tZS9p bnN0YWxsZXIvbGludXgvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS9jaHJv bWUvaW5zdGFsbGVyL2xpbnV4L0JVSUxELmduCitAQCAtMTAwLDggKzEwMCw2IEBAIHBhY2thZ2lu Z19maWxlcyA9IHBhY2thZ2luZ19maWxlc19iaW5hcmkKKyAgICAgICAgICAgICAgICAgICAgICIk cm9vdF9vdXRfZGlyL3hkZy1taW1lIiwKKyAgICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRf ZGlyL3hkZy1zZXR0aW5ncyIsCisgICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9s b2NhbGVzL2VuLVVTLnBhayIsCistICAgICAgICAgICAgICAgICAgICAiJHJvb3Rfb3V0X2Rpci9N RUlQcmVsb2FkL21hbmlmZXN0Lmpzb24iLAorLSAgICAgICAgICAgICAgICAgICAgIiRyb290X291 dF9kaXIvTUVJUHJlbG9hZC9wcmVsb2FkZWRfZGF0YS5wYiIsCisgICAgICAgICAgICAgICAgICAg XQorIAorIGFjdGlvbl9mb3JlYWNoKCJjYWxjdWxhdGVfZGViX2RlcGVuZGVuY2llcyIpIHsKK0BA IC0zMjEsNyArMzE5LDYgQEAgZ3JvdXAoImluc3RhbGxlcl9kZXBzIikgeworICAgICAiOnRoZW1l X2ZpbGVzIiwKKyAgICAgIi8vY2hyb21lIiwKKyAgICAgIi8vY2hyb21lOnBhY2tlZF9yZXNvdXJj ZXMiLAorLSAgICAiLy9jaHJvbWUvYnJvd3Nlci9yZXNvdXJjZXMvbWVkaWEvbWVpX3ByZWxvYWQ6 Y29tcG9uZW50IiwKKyAgICAgIi8vY29tcG9uZW50cy9jcmFzaC9jb3JlL2FwcDpjaHJvbWVfY3Jh c2hwYWRfaGFuZGxlciIsCisgICAgICIvL3NhbmRib3gvbGludXg6Y2hyb21lX3NhbmRib3giLAor ICAgXQorLS0tIC9kZXYvbnVsbAorKysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3NhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvcHBjNjRfbGludXhfc3lzY2FsbHMuaAorQEAgLTAsMCArMSwx MiBAQAorKy8vIENvcHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRz IHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg QlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm aWxlLgorKworKyNpZm5kZWYgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5V WF9TWVNDQUxMU19IXworKyNkZWZpbmUgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2 NF9MSU5VWF9TWVNDQUxMU19IXworKworKyNpbmNsdWRlIDxhc20vdW5pc3RkLmg+CisrCisrLy9U T0RPOiBpcyBpdCBuZWNlc3NhcnkgdG8gcmVkZWZpbmUgc3lzY2FsbCBudW1iZXJzIGZvciBQUEM2 ND8KKysKKysjZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElO VVhfU1lTQ0FMTFNfSF8KKy0tLSAvZGV2L251bGwKKysrKyBiL3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bS9zYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgKK0BA IC0wLDAgKzEsMTIgQEAKKysvLyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4g QWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zl cm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhl IExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNf UFBDNjRfTElOVVhfVUNPTlRFWFRfSF8KKysjZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hF QURFUlNfUFBDNjRfTElOVVhfVUNPTlRFWFRfSF8KKysKKysjaW5jbHVkZSA8c3lzL3Vjb250ZXh0 Lmg+CisrCisrLy9UT0RPOiBpcyBpdCBuZWNlc3NhcnkgdG8gcmVkZWZpbmUgdWNvbnRleHQgb24g UFBDNjQ/CisrCisrI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQQzY0 X0xJTlVYX1VDT05URVhUX0hfCistLS0gYS9zcmMvM3JkcGFydHkvY2hyb21pdW0vdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9uZXQvaHR0cF90cmFuc3BvcnRfbGliY3VybC5jYwor KysrIGIvc3JjLzNyZHBhcnR5L2Nocm9taXVtL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L3V0aWwvbmV0L2h0dHBfdHJhbnNwb3J0X2xpYmN1cmwuY2MKK0BAIC0yMzYsNiArMjM2LDEyIEBA IHN0ZDo6c3RyaW5nIFVzZXJBZ2VudCgpIHsKKyAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX0JJR19F TkRJQU4pCisgICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBhcmNoW10gPSAiYWFyY2g2NF9iZSI7 CisgI2VuZGlmCisrI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQorKyNpZiBkZWZpbmVkKEFS Q0hfQ1BVX0xJVFRMRV9FTkRJQU4pCisrICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBhcmNoW10g PSAicHBjNjRsZSI7CisrI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9CSUdfRU5ESUFOKQorKyAgICBz dGF0aWMgY29uc3RleHByIGNoYXIgYXJjaFtdID0gInBwYzY0IjsKKysjZW5kaWYKKyAjZWxzZQor ICNlcnJvciBQb3J0CisgI2VuZGlmCistLS0gL2Rldi9udWxsCisrKysgYi9zcmMvM3JkcGFydHkv Y2hyb21pdW0vdGhpcmRfcGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0L2NvbmZpZy5oCitA QCAtMCwwICsxLDM5IEBACisrLyoKKysgKiBBdXRvZ2VuZXJhdGVkIGJ5IHRoZSBNZXNvbiBidWls ZCBzeXN0ZW0uCisrICogRG8gbm90IGVkaXQsIHlvdXIgY2hhbmdlcyB3aWxsIGJlIGxvc3QuCisr ICovCisrCisrI3ByYWdtYSBvbmNlCisrCisrI2RlZmluZSBBUkNIX0FBUkNINjQgMAorKworKyNk ZWZpbmUgQVJDSF9BUk0gMAorKworKyNkZWZpbmUgQVJDSF9QUEM2NExFIDEKKysKKysjZGVmaW5l IEFSQ0hfWDg2IDAKKysKKysjZGVmaW5lIEFSQ0hfWDg2XzMyIDAKKysKKysjZGVmaW5lIEFSQ0hf WDg2XzY0IDAKKysKKysjZGVmaW5lIENPTkZJR18xNkJQQyAxCisrCisrI2RlZmluZSBDT05GSUdf OEJQQyAxCisrCisrLy8gI2RlZmluZSBDT05GSUdfTE9HIDEgLS0gTG9nZ2luZyBpcyBjb250cm9s bGVkIGJ5IENocm9taXVtCisrCisrI2RlZmluZSBFTkRJQU5ORVNTX0JJRyAwCisrCisrI2RlZmlu ZSBIQVZFX0FTTSAxCisrCisrI2RlZmluZSBIQVZFX0NMT0NLX0dFVFRJTUUgMQorKworKyNkZWZp bmUgSEFWRV9ETFNZTSAxCisrCisrI2RlZmluZSBIQVZFX0dFVEFVWFZBTCAxCisrCisrI2RlZmlu ZSBIQVZFX1BPU0lYX01FTUFMSUdOIDEKKysKKysjZGVmaW5lIEhBVkVfVU5JU1REX0ggMQorKwpk aWZmIC0tZ2l0IGEvc3JjcGtncy9xdDYtd2ViZW5naW5lL3BhdGNoZXMvMDkwMy14eHgtcHBjNjRs ZS1zd2lmdHNoYWRlci5wYXRjaCBiL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRjaGVzLzA5MDMt eHh4LXBwYzY0bGUtc3dpZnRzaGFkZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi4xYThjZDgzNjhkYTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvcGF0Y2hlcy8wOTAzLXh4eC1wcGM2NGxlLXN3aWZ0c2hhZGVyLnBhdGNoCkBA IC0wLDAgKzEsMTggQEAKKy0tLSBhL3NyYy8zcmRwYXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9z d2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEwLjAvQlVJTEQuZ24KKysrKyBiL3NyYy8zcmRw YXJ0eS9jaHJvbWl1bS90aGlyZF9wYXJ0eS9zd2lmdHNoYWRlci90aGlyZF9wYXJ0eS9sbHZtLTEw LjAvQlVJTEQuZ24KK0BAIC01NzYsNiArNTc2LDcgQEAgc3dpZnRzaGFkZXJfbGx2bV9zb3VyY2Vf c2V0KCJzd2lmdHNoYWRlcgorICAgICAibGx2bS9saWIvTUMvTUNBc21JbmZvQ09GRi5jcHAiLAor ICAgICAibGx2bS9saWIvTUMvTUNBc21JbmZvRGFyd2luLmNwcCIsCisgICAgICJsbHZtL2xpYi9N Qy9NQ0FzbUluZm9FTEYuY3BwIiwKKysgICAgImxsdm0vbGliL01DL01DQXNtSW5mb1hDT0ZGLmNw cCIsCisgICAgICJsbHZtL2xpYi9NQy9NQ0FzbU1hY3JvLmNwcCIsCisgICAgICJsbHZtL2xpYi9N Qy9NQ0FzbVN0cmVhbWVyLmNwcCIsCisgICAgICJsbHZtL2xpYi9NQy9NQ0Fzc2VtYmxlci5jcHAi LAorQEAgLTYzMSw2ICs2MzIsNyBAQCBzd2lmdHNoYWRlcl9sbHZtX3NvdXJjZV9zZXQoInN3aWZ0 c2hhZGVyCisgICAgICJsbHZtL2xpYi9NQy9NQ1dpbkNPRkZTdHJlYW1lci5jcHAiLAorICAgICAi bGx2bS9saWIvTUMvTUNXaW5FSC5jcHAiLAorICAgICAibGx2bS9saWIvTUMvTUNYQ09GRlN0cmVh bWVyLmNwcCIsCisrICAgICJsbHZtL2xpYi9NQy9NQ1hDT0ZGT2JqZWN0VGFyZ2V0V3JpdGVyLmNw cCIsCisgICAgICJsbHZtL2xpYi9NQy9NYWNoT2JqZWN0V3JpdGVyLmNwcCIsCisgICAgICJsbHZt L2xpYi9NQy9TdHJpbmdUYWJsZUJ1aWxkZXIuY3BwIiwKKyAgICAgImxsdm0vbGliL01DL1N1YnRh cmdldEZlYXR1cmUuY3BwIiwKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdlYmVuZ2luZS9wYXRj aGVzL2Nyb3NzLWJ1aWxkLWV4YW1wbGVzLnBhdGNoIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3Bh dGNoZXMvY3Jvc3MtYnVpbGQtZXhhbXBsZXMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi40NTk4NjQzY2MwZGMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L3F0Ni13ZWJlbmdpbmUvcGF0Y2hlcy9jcm9zcy1idWlsZC1leGFtcGxlcy5wYXRjaApAQCAtMCww ICsxLDE2IEBACistLS0gYS9leGFtcGxlcy9DTWFrZUxpc3RzLnR4dAorKysrIGIvZXhhbXBsZXMv Q01ha2VMaXN0cy50eHQKK0BAIC0xLDcgKzEsNiBAQAorIGNtYWtlX21pbmltdW1fcmVxdWlyZWQo VkVSU0lPTiAzLjE2KQorIAorIHF0X2V4YW1wbGVzX2J1aWxkX2JlZ2luKEVYVEVSTkFMX0JVSUxE KQorLWlmKE5PVCBDTUFLRV9DUk9TU0NPTVBJTElORykgI1FUQlVHLTg2NTMzCisgICAgIGlmKFRB UkdFVCBRdDo6V2ViRW5naW5lQ29yZSkKKyAgICAgICAgIGFkZF9zdWJkaXJlY3Rvcnkod2ViZW5n aW5lcXVpY2spCisgICAgIGVuZGlmKCkKK0BAIC0xNCw1ICsxMyw0IEBAIGlmKE5PVCBDTUFLRV9D Uk9TU0NPTVBJTElORykgI1FUQlVHLTg2NTMKKyAgICAgaWYoVEFSR0VUIFF0OjpQZGZXaWRnZXRz KQorICAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShwZGZ3aWRnZXRzKQorICAgICBlbmRpZigpCist ZW5kaWYoKQorIHF0X2V4YW1wbGVzX2J1aWxkX2VuZCgpCmRpZmYgLS1naXQgYS9zcmNwa2dzL3F0 Ni13ZWJlbmdpbmUvdGVtcGxhdGUgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4yZjBkZTJjN2FkZjYKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdGVtcGxhdGUKQEAgLTAsMCArMSwx NzggQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ3F0Ni13ZWJlbmdpbmUnCitwa2duYW1lPXF0Ni13 ZWJlbmdpbmUKK3ZlcnNpb249Ni4zLjEKK3JldmlzaW9uPTEKK3dya3NyYz0icXR3ZWJlbmdpbmUt ZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWNtYWtlCitjb25maWd1cmVf YXJncz0iLURRVF9CVUlMRF9UT09MU19XSEVOX0NST1NTQ09NUElMSU5HPXRydWUKKyAtRFFUX0ZF QVRVUkVfd2ViZW5naW5lX3N5c3RlbV9mZm1wZWc9T04KKyAtRFFUX0ZFQVRVUkVfd2ViZW5naW5l X3N5c3RlbV9saWJldmVudD1PTgorIC1EUVRfRkVBVFVSRV93ZWJlbmdpbmVfc3lzdGVtX2duPU9O CisgLURRVF9GRUFUVVJFX3dlYmVuZ2luZV9zeXN0ZW1faWN1PU9OCisgLURRVF9GRUFUVVJFX3dl YmVuZ2luZV93ZWJydGNfcGlwZXdpcmU9T04KKyAtRE5pbmphX0VYRUNVVEFCTEU9JFhCUFNfV1JB UFBFUkRJUi9uaW5qYQorICQodm9wdF9ib29sIGV4YW1wbGVzIFFUX0JVSUxEX0VYQU1QTEVTKQor IC1EUEtHX0NPTkZJR19IT1NUX0VYRUNVVEFCTEU9JHtQS0dfQ09ORklHX0ZPUl9CVUlMRH0iCito b3N0bWFrZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHBlcmwgcGtnLWNvbmZpZyBub2RlanMgcHl0 aG9uMy1odG1sNWxpYgorIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCBwcm90b2J1ZiBncGVyZiBmbGV4 IG5zcy1kZXZlbCBsaWJ3ZWJwLWRldmVsCisgaWN1LWRldmVsIGxpYmV2ZW50LWRldmVsIgorbWFr ZWRlcGVuZHM9InF0Ni1iYXNlLWRldmVsIHF0Ni1kZWNsYXJhdGl2ZS1kZXZlbCBwdWxzZWF1ZGlv LWRldmVsCisgcXQ2LXRvb2xzLWRldmVsIHF0Ni13ZWJzb2NrZXRzLWRldmVsIGxpYmZsYWMtZGV2 ZWwKKyBhbHNhLWxpYi1kZXZlbCBsaWJ2cHgtZGV2ZWwgcGNpdXRpbHMtZGV2ZWwgb3B1cy1kZXZl bCBsaWJ4c2x0LWRldmVsCisgbGlieG1sMi1kZXZlbCBmcmVldHlwZS1kZXZlbCBsY21zMi1kZXZl bCBsaWJ3ZWJwLWRldmVsIGljdS1kZXZlbAorIHJlMi1kZXZlbCB6bGliLWRldmVsIGxpYnBuZy1k ZXZlbCBtaW5pemlwLWRldmVsIGhhcmZidXp6LWRldmVsCisgbnNzLWRldmVsIGxpYlhjdXJzb3It ZGV2ZWwgbGliWGNvbXBvc2l0ZS1kZXZlbCBsaWJYU2NyblNhdmVyLWRldmVsCisgcHJvdG9idWYt ZGV2ZWwgZmZtcGVnLWRldmVsIHNuYXBweS1kZXZlbCBsaWJldmVudC1kZXZlbCBwaXBld2lyZS1k ZXZlbAorIGxpYnhrYmZpbGUtZGV2ZWwgcXQ2LWxvY2F0aW9uLWRldmVsIHF0Ni13ZWJjaGFubmVs LWRldmVsIGxpYnhzaG1mZW5jZS1kZXZlbCIKKyMgTm90IHdvcmtpbmcgcHJvcGVybHkgd2l0aCBI VFRQUyB3aXRob3V0IHRob3NlIHBhY2thZ2VzCisjIE5vdCBzdHJpY3QgZGVwZW5kZW5jaWVzLCB0 aG91Z2gKK2RlcGVuZHM9InF0Ni1wbHVnaW4tdGxzLW9wZW5zc2wgcXQ2LXBsdWdpbi10bHMtcWNl cnRvbmx5Igorc2hvcnRfZGVzYz0iQ3Jvc3MtcGxhdGZvcm0gYXBwbGljYXRpb24gYW5kIFVJIGZy YW1ld29yayAtIFdlYmVuZ2luZSIKK21haW50YWluZXI9IkpvaG4gPG1lQGpvaG5ueW5hdG9yLmRl dj4iCitsaWNlbnNlPSJHUEwtMy4wLW9ubHksIEdQTC0yLjAtb25seSwgTEdQTC0zLjAtb25seSBC U0QtMy1DbGF1c2UiCitob21lcGFnZT0iaHR0cHM6Ly93d3cucXQuaW8iCitkaXN0ZmlsZXM9Imh0 dHBzOi8vZG93bmxvYWQucXQuaW8vb2ZmaWNpYWxfcmVsZWFzZXMvcXQvJHt2ZXJzaW9uJS4qfS8k e3ZlcnNpb259L3N1Ym1vZHVsZXMvcXR3ZWJlbmdpbmUtZXZlcnl3aGVyZS1zcmMtJHt2ZXJzaW9u fS50YXIueHoiCitjaGVja3N1bT1hZDdhMzNiMjFhOTU2ZGVkYTM3YzU4N2Q1MGY4MjFjYTM4MTY0 MDNhZTMxYmE5YjVkNTlkMDE1NjFhZDY2ZTQ3CisKK2lmIFsgLXogIiRDUk9TU19CVUlMRCIgXTt0 aGVuCisJY29uZmlndXJlX2FyZ3MrPSIgLURDTUFLRV9UT09MQ0hBSU5fRklMRT0vdXNyL2xpYi9j bWFrZS9RdDYvcXQudG9vbGNoYWluLmNtYWtlIgorZmkKKworaWYgWyAiJFhCUFNfTElCQyIgPSAi bXVzbCIgXTsgdGhlbgorCWhvc3RtYWtlZGVwZW5kcys9IiBtdXNsLWxlZ2FjeS1jb21wYXQiCitm aQorCitpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCW1ha2VkZXBl bmRzKz0iIG11c2wtbGVnYWN5LWNvbXBhdCIKK2ZpCisKK2lmIFsgISAiJFhCUFNfV09SRFNJWkUi ID0gIiRYQlBTX1RBUkdFVF9XT1JEU0laRSIgXTsgdGhlbgorCWJyb2tlbj0id2ViZW5naW5lIGNh biBiZSBidWlsdCBvbmx5IGlmIHdvcmQgc2l6ZSBtYXRjaGVzIgorZmkKKworaWYgWyAiJFhCUFNf V09SRFNJWkUiIC1lcSAzMiBdOyB0aGVuCisJbm9kZWJ1Zz15ZXMKKwlMREZMQUdTPSItV2wsLS1u by1rZWVwLW1lbW9yeSIKK2ZpCisKK2lmIFsgIiRYQlBTX1RBUkdFVF9FTkRJQU4iICE9ICJsZSIg XTsgdGhlbgorCWJyb2tlbj0id2ViZW5naW5lIG9ubHkgc3VwcG9ydHMgbGl0dGxlIGVuZGlhbiIK K2ZpCisKK2J1aWxkX29wdGlvbnM9InNuZGlvIGV4YW1wbGVzIgorYnVpbGRfb3B0aW9uc19kZWZh dWx0PSIiCitkZXNjX29wdGlvbl9leGFtcGxlcz0iQnVpbGQgZXhhbXBsZXMiCitkZXNjX29wdGlv bl9zbmRpbz0iRW5hYmxlIHN1cHBvcnQgZm9yIHNuZGlvIgorCitzdWJwYWNrYWdlcz0icXQ2LXdl YmVuZ2luZS1kZXZlbCIKKworaWYgWyAiJGJ1aWxkX29wdGlvbl9leGFtcGxlcyIgXTsgdGhlbgor CXN1YnBhY2thZ2VzKz0iIHF0Ni13ZWJlbmdpbmUtZXhhbXBsZXMiCitmaQorCitfYm9vdHN0cmFw X2duKCkgeworCSMgQm9vdHN0cmFwIGduIChnZW5lcmF0ZSBuaW5qYSkKKwllY2hvICJCb290c3Ry YXBwaW5nICdnbiciCisJY2QgJHt3cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbgorCUNGTEFHUz0iJENG TEFHU19ob3N0IiBDWFhGTEFHUz0iJENYWEZMQUdTX2hvc3QiIExERkxBR1M9IiRMREZMQUdTX2hv c3QiIFwKKwlQS0dDT05GSUc9L3Vzci9iaW4vcGtnY29uZmlnIFBLR19DT05GSUdfUEFUSD0iL3Vz ci9saWIvcGtnY29uZmlnOi91c3Ivc2hhcmUvcGtnY29uZmlnIiBcCisJCXB5dGhvbjMgYnVpbGQv Z2VuLnB5IC0tbm8tbGFzdC1jb21taXQtcG9zaXRpb24gLS1vdXQtcGF0aCBcCisJCQkke3dya3Ny Y30vc3JjLzNyZHBhcnR5L2duL291dC9SZWxlYXNlIC0tY2MgIiR7Q0NfaG9zdDotJENDfSIgXAor CQkJLS1jeHggIiR7Q1hYX2hvc3Q6LSRDWFh9IiAtLWxkICIke0NYWF9ob3N0Oi0kQ1hYfSIgLS1h ciAiJHtBUl9ob3N0Oi0kQVJ9IiBcCisJCQktLXF0LXZlcnNpb24gIiR7dmVyc2lvbn0ucXR3ZWJl bmdpbmUucXQuaW8iCisJbmluamEgLUMgb3V0L1JlbGVhc2UgZ24KKwljZCAke3dya3NyY30KK30K KworX3VuYnVuZGxlX2xpYnMoKSB7CisJY2QgJHt3cmtzcmN9L3NyYy8zcmRwYXJ0eS9jaHJvbWl1 bQorCWVjaG8gRHJvcHBpbmcgYnVuZGxlZCBsaWJzIGZyb20gY2hyb21pdW0KKwkjIFVzZSBzeXN0 ZW0tcHJvdmlkZWQgbGlicmFyaWVzLgorCSMgVE9ETzogdXNlX3N5c3RlbV9odW5zcGVsbCAodXBz dHJlYW0gY2hhbmdlcyBuZWVkZWQpLgorCSMgVE9ETzogdXNlX3N5c3RlbV9saWJzcnRwLgorCSMg VE9ETzogdXNlX3N5c3RlbV9saWJ1c2IgKGh0dHA6Ly9jcmJ1Zy5jb20vMjY2MTQ5KS4KKwkjIFRP RE86IHVzZV9zeXN0ZW1fc3NsIChodHRwOi8vY3JidWcuY29tLzU4MDg3KS4KKwkjIFRPRE86IHVz ZV9zeXN0ZW1fc3FsaXRlIChodHRwOi8vY3JidWcuY29tLzIyMjA4KS4KKwkjIFRPRE86IHVzZV9z eXN0ZW1faWN1IChzZWdmYXVsdHMpCisJIyB1c2Vfc3lzdGVtX3Byb3RvYnVmCisJIyB1c2Vfc3lz dGVtX3Y4PTEKKwkjIHVzZV9zeXN0ZW1femxpYj0xCisJIyBiemlwMiBqc29uY3BwIG1pbml6aXAg eGRnX3V0aWxzIHNwZWV4CisJc3lzdGVtPSIKKwkJZmZtcGVnCisJCWZsYWMKKwkJZm9udGNvbmZp ZworCQlmcmVldHlwZQorCQloYXJmYnV6ei1uZworCQlpY3UKKwkJbGliZHJtCisJCWxpYmV2ZW50 CisJCWxpYmpwZWcKKwkJbGlicG5nCisJCWxpYndlYnAKKwkJbGlieG1sCisJCWxpYnhzbHQKKwkJ b3B1cworCQlyZTIKKwkJc25hcHB5CisJIgorCWJ1aWxkL2xpbnV4L3VuYnVuZGxlL3JlcGxhY2Vf Z25fZmlsZXMucHkgLS1zeXN0ZW0tbGlicmFyaWVzICR7c3lzdGVtfQorfQorCisjIFByb3ZpZGUg YSB3cmFwcGVyIHRvIHJ1biAuL3hicHMtc3JjIC1qIDEgYnVpbGQgbGF0ZXIKK193cmFwX25pbmph KCkgeworCWNhdCA8PC0nX0VPRicgPiIkWEJQU19XUkFQUEVSRElSIi9uaW5qYQorCSMhL2Jpbi9z aAorCisJZXhlYyAvdXNyL2Jpbi9uaW5qYSAkTklOSkFGTEFHUyAiJEAiCisJX0VPRgorCWNobW9k ICt4ICIkWEJQU19XUkFQUEVSRElSIi9uaW5qYQorfQorCitwcmVfY29uZmlndXJlKCkgeworCV9i b290c3RyYXBfZ24KKwkjIF91bmJ1bmRsZV9saWJzCisJX3dyYXBfbmluamEKKwlleHBvcnQgUEFU SD0iJFBBVEg6JHt3cmtzcmN9L3NyYy8zcmRwYXJ0eS9nbi9vdXQvUmVsZWFzZSIKK30KKworcHJl X2J1aWxkKCkgeworCWV4cG9ydCBQQVRIPSIkUEFUSDoke3dya3NyY30vc3JjLzNyZHBhcnR5L2du L291dC9SZWxlYXNlIgorCWV4cG9ydCBOSU5KQUZMQUdTPSIkbWFrZWpvYnMiCisKK30KKworcHJl X2luc3RhbGwoKSB7CisJZXhwb3J0IFBBVEg9IiRQQVRIOiR7d3Jrc3JjfS9zcmMvM3JkcGFydHkv Z24vb3V0L1JlbGVhc2UiCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwlsb2NhbCBfZmlsZQorCWZp bmQgIiR7REVTVERJUn0iL3Vzci9saWIvcXQ2L2V4YW1wbGVzIFwKKwkJLXBhdGggJyovbGliL3F0 Ni8qKi9saWIvcXQ2LyonIC10eXBlIGYgfAorCXdoaWxlIHJlYWQgX2ZpbGU7IGRvCisJCW12ICIk X2ZpbGUiICIke19maWxlJS9saWIvcXQ2Lyp9IgorCWRvbmUKK30KKworcXQ2LXdlYmVuZ2luZS1k ZXZlbF9wYWNrYWdlKCkgeworCWRlcGVuZHM9IiR7c291cmNlcGtnfT49JHt2ZXJzaW9ufV8ke3Jl dmlzaW9ufSBxdDYtd2ViY2hhbm5lbC1kZXZlbD49JHt2ZXJzaW9ufV8xCisJIHF0Ni1kZWNsYXJh dGl2ZS1kZXZlbD49JHt2ZXJzaW9ufV8xIHF0Ni1sb2NhdGlvbi1kZXZlbD49JHt2ZXJzaW9ufV8x IgorCXNob3J0X2Rlc2MrPSIgLSBkZXZlbG9wbWVudCBmaWxlcyIKKwlwa2dfaW5zdGFsbCgpIHsK KwkJdm1vdmUgdXNyL2luY2x1ZGUKKwkJdm1vdmUgdXNyL2xpYi9jbWFrZQorCQl2bW92ZSB1c3Iv bGliL3BrZ2NvbmZpZworCQl2bW92ZSB1c3IvbGliL3F0Ni9ta3NwZWNzCisJCXZtb3ZlICJ1c3Iv bGliLyouc28iCisJCXZtb3ZlICJ1c3IvbGliLyoucHJsIgorCQl2bW92ZSB1c3Ivc2hhcmUvcXQ2 L21vZHVsZXMKKwl9Cit9CisKK3F0Ni13ZWJlbmdpbmUtZXhhbXBsZXNfcGFja2FnZSgpIHsKKwlz aG9ydF9kZXNjKz0iIC0gc2FtcGxlIGJyb3dzZXJzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92 ZSB1c3IvbGliL3F0Ni9leGFtcGxlcworCX0KK30KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvcXQ2LXdl YmVuZ2luZS91cGRhdGUgYi9zcmNwa2dzL3F0Ni13ZWJlbmdpbmUvdXBkYXRlCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uODQ0NTUyNDY1MjIyCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9xdDYtd2ViZW5naW5lL3VwZGF0ZQpAQCAtMCwwICsxIEBACitwa2duYW1l PSIke3BrZ25hbWUvNi0vfS1ldmVyeXdoZXJlLXNyYyIK --===============8527428430253392662==--