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 autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 28479 invoked from network); 3 Mar 2021 15:49:05 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 3 Mar 2021 15:49:05 -0000 Content-Type: multipart/mixed; boundary="===============1169678047103109806==" MIME-Version: 1.0 Subject: =?utf8?b?UmU6IFtQUiBQQVRDSF0gW1VwZGF0ZWRdIFtXSVBdIGNocm9taXVtOiB1cGRhdGUgdG8gODkuMC40Mzg5Ljcy?= To: ml@inbox.vuxu.org From: pullmoll Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Wed, 03 Mar 2021 16:49:05 +0100 List-Id: Message-ID: <20210303154905.AwyA6i8q57LbgejxHKSBHnDJGMFUTV5HB_mAW2YIRuQ@z> GitHub notification mails are now in MIME to allow UTF8. --===============1169678047103109806== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcHVsbG1vbGwgYWdhaW5zdCBtYXN0 ZXIgb24gdGhlIHZvaWQtcGFja2FnZXMgcmVwb3NpdG9yeQoKaHR0cHM6Ly9naXRodWIuY29tL3B1 bGxtb2xsL3ZvaWQtcGFja2FnZXMgY2hyb21pdW0KaHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGlu dXgvdm9pZC1wYWNrYWdlcy9wdWxsLzI5MjA1CgpbV0lQXSBjaHJvbWl1bTogdXBkYXRlIHRvIDg5 LjAuNDM4OS43MgorIHg4Nl82NCBwYXRjaCBzZXQgdXBkYXRlZCwgYnVpbHQsIHRlc3RlZCB2ZXJ5 IGN1cnNvcnkgYW5kIHNlZW1zIHRvIHdvcmsNCisgaTY4NiBwYXRjaCBhcHBsaWVzIHcvbyBjaGFu Z2UsIGJ1aWx0LCBub3QgeWV0IHRlc3RlZA0KKyB4ODZfNjQtbXVzbCBwYXRjaCBzZXQgdXBkYXRl ZCwgY3VycmVudGx5IGJ1bGRpbmcsIG5vdCB5ZXQgdGVzdGVkDQorIHBwYzY0bGUgcGF0Y2ggcmVt b3ZlZCBmb3Igbm93IGFzIG5vdGhpbmcgYXBwbGllcyAoYWxyZWFkeSB1cHN0cmVhbWVkPyBuZWVk IHRvIGNoZWNrIGFnYWluKQ0KKyBvcHVzIGRpc2FibGVkIGJlY2F1c2UgdGhlIGdlbmVyYXRlZCBz aGltIGhlYWRlciBvcHVzLmggdHJpZXMgdG8gaW5jbHVkZSA8b3B1cy5oPiBhbmQgZmFpbHMNCisg bm90IHN1cmUgaWYgbGliY19tYWxsb2MucGF0Y2ggaXMgb2ssIGkuZS4gc2ltcGx5IHVzZSBtYWxs b2MoKSBpbnN0ZWFkIG9mIF9fbGliY19tYWxsb2MoKS4NCisgbW9yZSB0byBkbw0KDQpbY2kgc2tp cF0NCg0KSWYgeW91IGRvbid0IHdhbnQgdG8gYnVpbGQgeW91cnNlbGY6DQpodHRwczovL3JlcG8u dm9pZGxpbnV4LmRlL3g4Nl82NC9jaHJvbWl1bS04OS4wLjQzODkuNzJfMS54ODZfNjQueGJwcw0K aHR0cHM6Ly9yZXBvLnZvaWRsaW51eC5kZS9pNjg2L2Nocm9taXVtLTg5LjAuNDM4OS43Ml8xLmk2 ODYueGJwcw0KCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51 eC92b2lkLXBhY2thZ2VzL3B1bGwvMjkyMDUucGF0Y2ggaXMgYXR0YWNoZWQ= --===============1169678047103109806== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-29205.patch" RnJvbSAwNzBkMTZlMWE2MGIyMWU4ZGI5NDk3MTU5ZTVlYzcwNGE1MWU5MDIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/Sj1DMz1CQ3JnZW49MjBCdWNobT1DMz1CQ2xs ZXI/PSA8cHVsbG1vbGxAdC1vbmxpbmUuZGU+CkRhdGU6IFdlZCwgMyBNYXIgMjAyMSAxNTowNjoz OCArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGNocm9taXVtOiB1cGRhdGUgdG8gODkuMC40Mzg5Ljcy CgorIHg4Nl82NCBwYXRjaCBzZXQgdXBkYXRlZCwgYnVpbHQsIHRlc3RlZCB2ZXJ5IGN1cnNvcnkg YW5kIHNlZW1zIHRvIHdvcmsKKyBpNjg2IHBhdGNoIGFwcGxpZXMgdy9vIGNoYW5nZSwgYnVpbHQs IGN1cnNvcnkgdGVzdCBpbiBhIFZNCisgeDg2XzY0LW11c2wgcGF0Y2ggc2V0IHVwZGF0ZWQsIGN1 cnJlbnRseSBidWxkaW5nLCBub3QgeWV0IHRlc3RlZAorIHBwYzY0bGUgcGF0Y2ggcmVtb3ZlZCBm b3Igbm93IGFzIG5vdGhpbmcgYXBwbGllcyAoYWxyZWFkeSB1cHN0cmVhbWVkPykKKyBzeXN0ZW0g b3B1cyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBnZW5lcmF0ZWQgc2hpbSBoZWFkZXIgb3B1cy5oIHRy aWVzIHRvIGluY2x1ZGUgPG9wdXMuaD4gYW5kIGZhaWxzCisgbm90IHN1cmUgaWYgbGliY19tYWxs b2MucGF0Y2ggaXMgb2ssIGkuZS4gc2ltcGx5IHVzZSBtYWxsb2MoKSBpbnN0ZWFkIG9mIF9fbGli Y19tYWxsb2MoKS4KKyBtb3JlIHRvIGRvCgpbY2kgc2tpcF0KLS0tCiAuLi4vZGVmYXVsdC1wdGhy ZWFkLXN0YWNrc2l6ZS5wYXRjaCAgICAgICAgICAgfCAgICA0ICstCiAuLi4vZmlsZXMvbXVzbC1w YXRjaGVzL211c2wtZml4ZXMucGF0Y2ggICAgICAgfCAgIDQwICstCiAuLi4vZmlsZXMvbXVzbC1w YXRjaGVzL211c2wtaGFja3MucGF0Y2ggICAgICAgfCAgICA0ICstCiAuLi4vZmlsZXMvbXVzbC1w YXRjaGVzL211c2wtbGliYysrLnBhdGNoICAgICAgfCAgICA2ICstCiAuLi4vZmlsZXMvbXVzbC1w YXRjaGVzL211c2wtc2FuZGJveC5wYXRjaCAgICAgfCAgIDEyICstCiAuLi4vZmlsZXMvbXVzbC1w YXRjaGVzL25vLW1hbGxpbmZvLnBhdGNoICAgICAgfCAgICA2ICstCiAuLi4vZmlsZXMvbXVzbC1w YXRjaGVzL3Jlc29sdmVyLnBhdGNoICAgICAgICAgfCAgICAyICstCiAuLi4vbXVzbC1wYXRjaGVz L3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2ggICAgfCAgMTEwICstCiBzcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvYnJvd3Nlci1zaXplX3QucGF0Y2ggfCAgIDEwIC0KIC4uLi9jaHJvbWl1bS04OC1B WFRyZWVGb3JtYXR0ZXItaW5jbHVkZS5wYXRjaCB8ICAgMjcgLQogLi4uaXVtLTg4LUJvb2ttYXJr TW9kZWxPYnNlcnZlci1pbmNsdWRlLnBhdGNoIHwgICAyMSAtCiAuLi51bS04OC1Db21wb3NpdG9y RnJhbWVSZXBvcnRlci1kY2hlY2sucGF0Y2ggfCAgIDM2IC0KIC4uLi9jaHJvbWl1bS04OC1TdHJp bmdQb29sLWluY2x1ZGUucGF0Y2ggICAgICB8ICAgMjAgLQogLi4ucm9taXVtLTg4LWZlZGVyYXRl ZF9sZWFybmluZy1pbmNsdWRlLnBhdGNoIHwgICAyMSAtCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS04 OC1nbGliYy0yLjMzLnBhdGNoICAgICAgfCAgMTQ0IC0KIC4uLmhyb21pdW0tODgtaWRlb2dyYXBo aWNTcGFjZUNoYXJhY3Rlci5wYXRjaCB8ICAgMjcgLQogLi4uL3BhdGNoZXMvY2hyb21pdW0tODgt aXR5cC1pbmNsdWRlLnBhdGNoICAgIHwgICAyNSAtCiAuLi4vcGF0Y2hlcy9jaHJvbWl1bS04OC12 YWFwaS1hdHRyaWJ1dGUucGF0Y2ggfCAgIDM5IC0KIC4uLnVtLTg5LUNvbXBvc2l0b3JGcmFtZVJl cG9ydGVyLWRjaGVjay5wYXRjaCB8ICAgMTEgKwogc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xp YmNfbWFsbG9jLnBhdGNoICAgIHwgICAyMyArLQogLi4ucmVtb3ZlLXVuc3VwcG9ydGVkLWNvbXBp bGVyLXdhcm5pbmdzLnBhdGNoIHwgICAyNiAtCiAuLi4tdjgtbW9ub3RvbmljLXB0aHJlYWQtY29u dF90aW1lZHdhaXQucGF0Y2ggfCAgIDI0IC0KIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1l eGVjaW5mby5wYXRjaCAgICB8ICAgMTYgKy0KIHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1n ZXRjb250ZXh0LnBhdGNoICB8ICAgMjcgLQogc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLXN0 ZC10aW1lLnBhdGNoICAgIHwgICAxMSArCiAuLi4vY2hyb21pdW0vcGF0Y2hlcy9zYW5kYm94LW1l bWJhcnJpZXIucGF0Y2ggfCAgIDYwIC0KIC4uLi9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQu cGF0Y2ggICAgICAgICB8IDM2NTYgLS0tLS0tLS0tLS0tLS0tLS0KIHNyY3BrZ3MvY2hyb21pdW0v dGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICAgIDggKy0KIDI4IGZpbGVzIGNoYW5nZWQs IDY3IGluc2VydGlvbnMoKyksIDQzNDkgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA2NDQg c3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Jyb3dzZXItc2l6ZV90LnBhdGNoCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUFYVHJlZUZvcm1h dHRlci1pbmNsdWRlLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2Nocm9taXVtLTg4LUJvb2ttYXJrTW9kZWxPYnNlcnZlci1pbmNsdWRlLnBhdGNoCiBk ZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUNv bXBvc2l0b3JGcmFtZVJlcG9ydGVyLWRjaGVjay5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1TdHJpbmdQb29sLWluY2x1ZGUucGF0 Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0t ODgtZmVkZXJhdGVkX2xlYXJuaW5nLWluY2x1ZGUucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBz cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtZ2xpYmMtMi4zMy5wYXRjaAogZGVs ZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1pZGVv Z3JhcGhpY1NwYWNlQ2hhcmFjdGVyLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWl0eXAtaW5jbHVkZS5wYXRjaAogZGVsZXRlIG1v ZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC12YWFwaS1hdHRy aWJ1dGUucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv Y2hyb21pdW0tODktQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNrLnBhdGNoCiBkZWxldGUg bW9kZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xsdm0tcmVtb3ZlLXVuc3VwcG9y dGVkLWNvbXBpbGVyLXdhcm5pbmdzLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL211c2wtdjgtbW9ub3RvbmljLXB0aHJlYWQtY29udF90aW1lZHdhaXQu cGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tZ2V0 Y29udGV4dC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9uby1zdGQtdGltZS5wYXRjaAogZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9zYW5kYm94LW1lbWJhcnJpZXIucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRjaAoKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL2RlZmF1bHQtcHRocmVhZC1z dGFja3NpemUucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9kZWZh dWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoCmluZGV4IDE2ZTRkMjFlNmVkLi44YmY5YTNkZmIz NCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvZGVmYXVs dC1wdGhyZWFkLXN0YWNrc2l6ZS5wYXRjaAorKysgYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211 c2wtcGF0Y2hlcy9kZWZhdWx0LXB0aHJlYWQtc3RhY2tzaXplLnBhdGNoCkBAIC0xLDEyICsxLDEy IEBACiAtLS0gYmFzZS90aHJlYWRpbmcvcGxhdGZvcm1fdGhyZWFkX2xpbnV4LmNjLm9yaWcKICsr KyBiYXNlL3RocmVhZGluZy9wbGF0Zm9ybV90aHJlYWRfbGludXguY2MKLUBAIC05OSArOTksMiBA QCBzaXplX3QgR2V0RGVmYXVsdFRocmVhZFN0YWNrU2l6ZShjb25zdCBwCitAQCAtNDQwICs0NDAs MiBAQCBzaXplX3QgR2V0RGVmYXVsdFRocmVhZFN0YWNrU2l6ZShjb25zdCBwCiAtICByZXR1cm4g MDsKICsgIC8vIHVzZSA4bWIgbGlrZSBnbGliYyB0byBhdm9pZCBydW5uaW5nIG91dCBvZiBzcGFj ZQogKyAgcmV0dXJuICgxIDw8IDIzKTsKIC0tLSBjaHJvbWUvYXBwL3NodXRkb3duX3NpZ25hbF9o YW5kbGVyc19wb3NpeC5jYy5vcmlnCiArKysgY2hyb21lL2FwcC9zaHV0ZG93bl9zaWduYWxfaGFu ZGxlcnNfcG9zaXguY2MKLUBAIC0xODQsMTEgKzE4NCwxOSBAQAorQEAgLTE4NywxMSArMTg3LDE5 IEBACiAgICBnX3NodXRkb3duX3BpcGVfcmVhZF9mZCA9IHBpcGVmZFswXTsKICAgIGdfc2h1dGRv d25fcGlwZV93cml0ZV9mZCA9IHBpcGVmZFsxXTsKICAjaWYgIWRlZmluZWQoQUREUkVTU19TQU5J VElaRVIpCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9t dXNsLWZpeGVzLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVz bC1maXhlcy5wYXRjaAppbmRleCBhNzgzMmZmMzJlOC4uMWYxMmZmOGIwOGQgMTAwNjQ0Ci0tLSBh L3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtZml4ZXMucGF0Y2gKKysr IGIvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1maXhlcy5wYXRjaApA QCAtMSw2ICsxLDYgQEAKIC0tLSAuL3RoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBv cnQuaC5vcmlnCiArKysgLi90aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgK LUBAIC0xMTI3LDYgKzExMjcsMTIgQEAKK0BAIC0xMjU4LDYgKzEyNTgsMTIgQEAKICAjaWZuZGVm IF9fTlJfZmFsbG9jYXRlCiAgI2RlZmluZSBfX05SX2ZhbGxvY2F0ZSAgICAgICAgICAyODUKICAj ZW5kaWYKQEAgLTE1LDcgKzE1LDcgQEAKICAjaWYgX01JUFNfU0lNID09IF9NSVBTX1NJTV9BQkkz MgogLS0tIC4vdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgub3JpZwogKysrIC4vdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24v dWNvbnRleHRfcmVhZGVyLmgKLUBAIC0zNyw2ICszNywxMCBAQAorQEAgLTM4LDYgKzM4LDEwIEBA CiAgI2luY2x1ZGUgImNvbW1vbi9tZW1vcnkuaCIKICAjaW5jbHVkZSAiZ29vZ2xlX2JyZWFrcGFk L2NvbW1vbi9taW5pZHVtcF9mb3JtYXQuaCIKICAKQEAgLTI4LDcgKzI4LDcgQEAKICAvLyBXcmFw cyBwbGF0Zm9ybS1kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zIG9mIGFjY2Vzc29ycyB0byB1Y29u dGV4dF90IHN0cnVjdHMuCiAtLS0gLi90aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaC5vcmlnCiArKysgLi90aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaAotQEAgLTM2LDYg KzM2LDcgQEAKK0BAIC0zNyw2ICszNyw3IEBACiAgI2luY2x1ZGUgPGVsZi5oPgogICNpbmNsdWRl IDxsaW5rLmg+CiAgI2luY2x1ZGUgPHN0ZGRlZi5oPgpAQCAtMzgsNyArMzgsNyBAQAogIAogLS0t IC4vc2FuZGJveC9saW51eC9zdWlkL3Byb2Nlc3NfdXRpbC5oLm9yaWcKICsrKyAuL3NhbmRib3gv bGludXgvc3VpZC9wcm9jZXNzX3V0aWwuaAotQEAgLTExLDYgKzExLDE0IEBACitAQCAtMTIsNiAr MTIsMTQgQEAKICAjaW5jbHVkZSA8c3RkYm9vbC5oPgogICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K ICAKQEAgLTY2LDcgKzY2LDcgQEAKICAjaWYgZGVmaW5lZChfX21pcHNfXykKIC0tLSAuL3RoaXJk X3BhcnR5L2ZmbXBlZy9saWJhdnV0aWwvY3B1LmMub3JpZwogKysrIC4vdGhpcmRfcGFydHkvZmZt cGVnL2xpYmF2dXRpbC9jcHUuYwotQEAgLTM4LDcgKzM4LDYgQEAKK0BAIC00MSw3ICs0MSw2IEBA CiAgI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgogICNlbmRpZgogICNpbmNsdWRlIDxzeXMvdHlwZXMu aD4KQEAgLTc0LDI4ICs3NCw2IEBACiAgI2VuZGlmCiAgI2lmIEhBVkVfVU5JU1REX0gKICAjaW5j bHVkZSA8dW5pc3RkLmg+Ci1kaWZmIC0tZ2l0IGEvY2hyb21lL2Jyb3dzZXIvbWV0cmljcy9jaHJv bWVfYnJvd3Nlcl9tYWluX2V4dHJhX3BhcnRzX21ldHJpY3MuY2MgYi9jaHJvbWUvYnJvd3Nlci9t ZXRyaWNzL2Nocm9tZV9icm93c2VyX21haW5fZXh0cmFfcGFydHNfbWV0cmljcy5jYwotLS0tIGNo cm9tZS9icm93c2VyL21ldHJpY3MvY2hyb21lX2Jyb3dzZXJfbWFpbl9leHRyYV9wYXJ0c19tZXRy aWNzLmNjCi0rKysgY2hyb21lL2Jyb3dzZXIvbWV0cmljcy9jaHJvbWVfYnJvd3Nlcl9tYWluX2V4 dHJhX3BhcnRzX21ldHJpY3MuY2MKLUBAIC0zOSw3ICszOSw5IEBACi0gI2VuZGlmICAvLyBkZWZp bmVkKE9TX0FORFJPSUQpICYmIGRlZmluZWQoX19hcm1fXykKLSAKLSAjaWYgZGVmaW5lZChPU19M SU5VWCkgJiYgIWRlZmluZWQoT1NfQ0hST01FT1MpCi0rI2lmIGRlZmluZWQoX19HTElCQ19fKQot ICNpbmNsdWRlIDxnbnUvbGliYy12ZXJzaW9uLmg+Ci0rI2VuZGlmCi0gCi0gI2luY2x1ZGUgImJh c2UvbGludXhfdXRpbC5oIgotICNpbmNsdWRlICJiYXNlL3N0cmluZ3Mvc3RyaW5nX3NwbGl0Lmgi Ci1AQCAtMjk1LDcgKzI5Nyw3IEBAIHZvaWQgUmVjb3JkTGludXhEaXN0cm8oKSB7Ci0gI2VuZGlm ICAvLyBkZWZpbmVkKE9TX0xJTlVYKSAmJiAhZGVmaW5lZChPU19DSFJPTUVPUykKLSAKLSB2b2lk IFJlY29yZExpbnV4R2xpYmNWZXJzaW9uKCkgewotLSNpZiBkZWZpbmVkKE9TX0xJTlVYKSAmJiAh ZGVmaW5lZChPU19DSFJPTUVPUykKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVk KE9TX0NIUk9NRU9TKQotICAgYmFzZTo6VmVyc2lvbiB2ZXJzaW9uKGdudV9nZXRfbGliY192ZXJz aW9uKCkpOwotIAotICAgVU1BTGludXhHbGliY1ZlcnNpb24gZ2xpYmNfdmVyc2lvbl9yZXN1bHQg PSBVTUFfTElOVVhfR0xJQkNfTk9UX1BBUlNFQUJMRTsKIC0tLSBzZXJ2aWNlcy9kZXZpY2Uvc2Vy aWFsL3NlcmlhbF9pb19oYW5kbGVyX3Bvc2l4LmNjLm9yaWcJMjAxOS0wNy0wMyAxMDo1NzozMi41 NjgxNzE4MzUgLTA0MDAKICsrKyBzZXJ2aWNlcy9kZXZpY2Uvc2VyaWFsL3NlcmlhbF9pb19oYW5k bGVyX3Bvc2l4LmNjCTIwMTktMDctMDMgMTA6NTc6MTYuODY3OTgzMDMxIC0wNDAwCiBAQCAtNiw2 ICs2LDcgQEAKQEAgLTEzMSw3ICsxMDksNyBAQCBkaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvb3Rz L2luY2x1ZGUvb3BlbnR5cGUtc2FuaXRpc2VyLmggYi90aGlyZF9wYXJ0eS9vdHMvaW5jbAogICAg ICBiYXNlOjpkZWJ1Zzo6U3RhY2tUcmFjZSBzdGFja190cmFjZTsKIC0tLSAuL3RoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjLm9yaWcKICsrKyAuL3Ro aXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi9zdGFja191dGlsLmNjCi1AQCAt MjgsNyArMjgsNyBAQAorQEAgLTI5LDcgKzI5LDcgQEAKICAvLyBGSVhNRTogT24gTWFjIE9TWCBh bmQgTGludXgsIHRoaXMgbWV0aG9kIGNhbm5vdCBlc3RpbWF0ZSBzdGFjayBzaXplCiAgLy8gY29y cmVjdGx5IGZvciB0aGUgbWFpbiB0aHJlYWQuCiAgCkBAIC0xNDAsNyArMTE4LDcgQEAgZGlmZiAt LWdpdCBhL3RoaXJkX3BhcnR5L290cy9pbmNsdWRlL29wZW50eXBlLXNhbml0aXNlci5oIGIvdGhp cmRfcGFydHkvb3RzL2luY2wKICAgICAgZGVmaW5lZChPU19GVUNIU0lBKQogICAgLy8gcHRocmVh ZF9nZXRhdHRyX25wKCkgY2FuIGZhaWwgaWYgdGhlIHRocmVhZCBpcyBub3QgaW52b2tlZCBieQog ICAgLy8gcHRocmVhZF9jcmVhdGUoKSAoZS5nLiwgdGhlIG1haW4gdGhyZWFkIG9mIGJsaW5rX3Vu aXR0ZXN0cykuCi1AQCAtOTYsNyArOTYsNyBAQAorQEAgLTk3LDcgKzk3LDcgQEAKICB9CiAgCiAg dm9pZCogR2V0U3RhY2tTdGFydCgpIHsKQEAgLTE1MSw3ICsxMjksNyBAQCBkaWZmIC0tZ2l0IGEv dGhpcmRfcGFydHkvb3RzL2luY2x1ZGUvb3BlbnR5cGUtc2FuaXRpc2VyLmggYi90aGlyZF9wYXJ0 eS9vdHMvaW5jbAogICAgaW50IGVycm9yOwogLS0tIC4vbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZp Y2VfcG9zaXguY2Mub3JpZwogKysrIC4vbmV0L2Rucy9kbnNfY29uZmlnX3NlcnZpY2VfcG9zaXgu Y2MKLUBAIC0xMjIsNyArMTIyLDcgQEAKK0BAIC0xNTAsNyArMTUwLDcgQEAKICAgIENvbmZpZ1Bh cnNlUG9zaXhSZXN1bHQgcmVzdWx0OwogICAgY29uZmlnLT51bmhhbmRsZWRfb3B0aW9ucyA9IGZh bHNlOwogIC8vIFRPRE8oZnVjaHNpYSk6IFVzZSByZXNfbmluaXQoKSB3aGVuIGl0J3MgaW1wbGVt ZW50ZWQgb24gRnVjaHNpYS4KQEAgLTE4MSw3ICsxNTksNyBAQCBkaWZmIC0tZ2l0IGEvdGhpcmRf cGFydHkvb3RzL2luY2x1ZGUvb3BlbnR5cGUtc2FuaXRpc2VyLmggYi90aGlyZF9wYXJ0eS9vdHMv aW5jbAogIAogLS0tIHRoaXJkX3BhcnR5L25hc20vbmFzbWxpYi9yZWFscGF0aC5jLm9yaWcJMjAx OS0wNy0wMyAxMjoyMzowNS4wMjE5NDk4OTUgLTA0MDAKICsrKyB0aGlyZF9wYXJ0eS9uYXNtL25h c21saWIvcmVhbHBhdGguYwkyMDE5LTA3LTAzIDEyOjI0OjI0LjI0Njg2MjY2NSAtMDQwMAotQEAg LTQ5LDcgKzQ5LDcgQEAKK0BAIC00Nyw3ICs0Nyw3IEBACiAgCiAgI2luY2x1ZGUgIm5hc21saWIu aCIKICAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211 c2wtaGFja3MucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNs LWhhY2tzLnBhdGNoCmluZGV4IGVkYzFiMDYwZGZiLi45Mjc2ZTQ4YWI4ZSAxMDA2NDQKLS0tIGEv c3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1oYWNrcy5wYXRjaAorKysg Yi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLWhhY2tzLnBhdGNoCkBA IC0xLDYgKzEsNiBAQAogLS0tIGJhc2UvZGVidWcvc3RhY2tfdHJhY2UuY2Mub3JpZwkyMDE4LTEy LTA4IDE0OjExOjI1LjMwMzQ3NTExNiArMDEwMAogKysrIGJhc2UvZGVidWcvc3RhY2tfdHJhY2Uu Y2MJMjAxOC0xMi0wOCAxODowMDo0My44NzQ5NDY5OTkgKzAxMDAKLUBAIC0yMjksNyArMjI5LDcg QEAKK0BAIC0yMjUsNyArMjI1LDcgQEAKICB9CiAgc3RkOjpzdHJpbmcgU3RhY2tUcmFjZTo6VG9T dHJpbmdXaXRoUHJlZml4KGNvbnN0IGNoYXIqIHByZWZpeF9zdHJpbmcpIGNvbnN0IHsKICAgIHN0 ZDo6c3RyaW5nc3RyZWFtIHN0cmVhbTsKQEAgLTExLDcgKzExLDcgQEAKICAgIHJldHVybiBzdHJl YW0uc3RyKCk7CiAtLS0gbmV0L3NvY2tldC91ZHBfc29ja2V0X3Bvc2l4LmNjLm9yaWcJMjAxOS0w Ny0wMyAxMzoxMzo0Ni4wMzQzNDI2NDkgLTA0MDAKICsrKyBuZXQvc29ja2V0L3VkcF9zb2NrZXRf cG9zaXguY2MJMjAxOS0wNy0wMyAxMzoyMzo1My4xMTcwODE5MDkgLTA0MDAKLUBAIC0xMTk0LDcg KzExOTQsNyBAQAorQEAgLTExNTMsNyArMTE1Myw3IEBACiAgICAgIG1zZ19pb3YtPnB1c2hfYmFj ayh7Y29uc3RfY2FzdDxjaGFyKj4oYnVmZmVyLT5kYXRhKCkpLCBidWZmZXItPmxlbmd0aCgpfSk7 CiAgICBtc2d2ZWMtPnJlc2VydmUoYnVmZmVycy5zaXplKCkpOwogICAgZm9yIChzaXplX3QgaiA9 IDA7IGogPCBidWZmZXJzLnNpemUoKTsgaisrKQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1 bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1saWJjKysucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVt L2ZpbGVzL211c2wtcGF0Y2hlcy9tdXNsLWxpYmMrKy5wYXRjaAppbmRleCAwODhkODBmYWQ1Mi4u ZTA3NzY4MjM0MDIgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRj aGVzL211c2wtbGliYysrLnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1w YXRjaGVzL211c2wtbGliYysrLnBhdGNoCkBAIC0yLDcgKzIsNyBAQCBkaWZmIC0tZ2l0IGEvYnVp bGR0b29scy90aGlyZF9wYXJ0eS9saWJjKysvdHJ1bmsvaW5jbHVkZS9sb2NhbGUgYi9idWlsZHRv b2xzL3RoaQogaW5kZXggZDI5YTJkYy4uNTM5OThiYyAxMDA2NDQKIC0tLSBidWlsZHRvb2xzL3Ro aXJkX3BhcnR5L2xpYmMrKy90cnVuay9pbmNsdWRlL2xvY2FsZQogKysrIGJ1aWxkdG9vbHMvdGhp cmRfcGFydHkvbGliYysrL3RydW5rL2luY2x1ZGUvbG9jYWxlCi1AQCAtMTEsNiArMTEsMTUgQEAK K0BAIC0xMCw2ICsxMCwxNSBAQAogICNpZm5kZWYgX0xJQkNQUF9MT0NBTEUKICAjZGVmaW5lIF9M SUJDUFBfTE9DQUxFCiAgCkBAIC0yMiw3ICsyMiw3IEBAIGRpZmYgLS1naXQgYS9idWlsZHRvb2xz L3RoaXJkX3BhcnR5L2xpYmMrKy90cnVuay9zcmMvbG9jYWxlLmNwcCBiL2J1aWxkdG9vbHMvdGhp CiBpbmRleCA0MTYzYzJjLi4zZDE5MDJhIDEwMDY0NAogLS0tIGEvYnVpbGR0b29scy90aGlyZF9w YXJ0eS9saWJjKysvdHJ1bmsvc3JjL2xvY2FsZS5jcHAKICsrKyBidWlsZHRvb2xzL3RoaXJkX3Bh cnR5L2xpYmMrKy90cnVuay9zcmMvbG9jYWxlLmNwcAotQEAgLTEwMjgsMTEgKzEwMjgsMTEgQEAg Y3R5cGU8Y2hhcj46OmRvX25hcnJvdyhjb25zdCBjaGFyX3R5cGUqIGxvdywgY29uc3QgY2hhcl90 eXBlKiBoaWdoLCBjaGFyIGRmYXVsdCwKK0BAIC0xMDE5LDExICsxMDE5LDExIEBAIGN0eXBlPGNo YXI+Ojpkb19uYXJyb3coY29uc3QgY2hhcl90eXBlKiBsb3csIGNvbnN0IGNoYXJfdHlwZSogaGln aCwgY2hhciBkZmF1bHQsCiAgICAgIHJldHVybiBsb3c7CiAgfQogIApAQCAtMzYsNyArMzYsNyBA QCBpbmRleCA0MTYzYzJjLi4zZDE5MDJhIDEwMDY0NAogIAogICNpZmRlZiBfTElCQ1BQX1BST1ZJ REVTX0RFRkFVTFRfUlVORV9UQUJMRQogIGNvbnN0IGN0eXBlPGNoYXI+OjptYXNrKgotQEAgLTEx MzYsMTIgKzExMzYsMTAgQEAgY3R5cGU8Y2hhcj46OmNsYXNzaWNfdGFibGUoKSAgX05PRVhDRVBU CitAQCAtMTEyNywxMiArMTEyNywxMCBAQCBjdHlwZTxjaGFyPjo6Y2xhc3NpY190YWJsZSgpICBf Tk9FWENFUFQKICAjZWxpZiBkZWZpbmVkKF9BSVgpCiAgICAgIHJldHVybiAoY29uc3QgdW5zaWdu ZWQgaW50ICopX19sY19jdHlwZV9wdHItPm9iai0+bWFzazsKICAjZWxzZQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1zYW5kYm94LnBhdGNoIGIv c3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1zYW5kYm94LnBhdGNoCmlu ZGV4IDIzMGJiN2JiZDI5Li4wYjk4MjUzZjRkNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1 bS9maWxlcy9tdXNsLXBhdGNoZXMvbXVzbC1zYW5kYm94LnBhdGNoCisrKyBiL3NyY3BrZ3MvY2hy b21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL211c2wtc2FuZGJveC5wYXRjaApAQCAtMSw2ICsxLDYg QEAKIC0tLSAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFt ZXRlcnNfcmVzdHJpY3Rpb25zLmNjLm9yaWcJMjAxOS0wNy0wMyAxMTo1MzoyMS4yMTM0Nzk3MzYg LTA0MDAKICsrKyAuL3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3Bh cmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjCTIwMTktMDctMDMgMTE6NTc6MDEuMzA0OTk4MjUzIC0w NDAwCi1AQCAtMTQwLDMxICsxNDAsMTQgQEAKK0BAIC0xMzEsMzEgKzEzMSwxNCBAQAogIFJlc3Vs dEV4cHIgUmVzdHJpY3RDbG9uZVRvVGhyZWFkc0FuZEVQRVJNRm9yaygpIHsKICAgIGNvbnN0IEFy Zzx1bnNpZ25lZCBsb25nPiBmbGFncygwKTsKICAKQEAgLTQxLDcgKzQxLDcgQEAKICAKIC0tLSAu L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2Mub3JpZwog KysrIC4vc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5jYwot QEAgLTQ5NCw2ICs0OTQsNyBAQAorQEAgLTUyMSw2ICs1MjEsNyBAQAogICAgICBjYXNlIF9fTlJf bWxvY2s6CiAgICAgIGNhc2UgX19OUl9tdW5sb2NrOgogICAgICBjYXNlIF9fTlJfbXVubWFwOgpA QCAtNDksNyArNDksNyBAQAogICAgICAgIHJldHVybiB0cnVlOwogICAgICBjYXNlIF9fTlJfbWFk dmlzZToKICAgICAgY2FzZSBfX05SX21pbmNvcmU6Ci1AQCAtNTA5LDcgKzUxMCw2IEBACitAQCAt NTQwLDcgKzU0MCw2IEBACiAgICAgIGNhc2UgX19OUl9tb2RpZnlfbGR0OgogICNlbmRpZgogICAg ICBjYXNlIF9fTlJfbXByb3RlY3Q6CkBAIC02MSw3ICs2MSw3IEBAIGRpZmYgLS1naXQgYS9zYW5k Ym94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjIGIvc2FuZGJveC9s aW51eC9zCiBpbmRleCA4MGYwMmMwLi4yMWZiZTIxIDEwMDY0NAogLS0tIHNhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKICsrKyBzYW5kYm94L2xpbnV4L3Nl Y2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi1AQCAtMzczLDYgKzM3Myw3IEBAIGJv b2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7 CitAQCAtNDAwLDYgKzQwMCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NT dGFydE9yRGVhdGgoaW50IHN5c25vKSB7CiAgI2lmIGRlZmluZWQoX19pMzg2X18pCiAgICAgIGNh c2UgX19OUl93YWl0cGlkOgogICNlbmRpZgpAQCAtNjksNyArNjksNyBAQCBpbmRleCA4MGYwMmMw Li4yMWZiZTIxIDEwMDY0NAogICAgICAgIHJldHVybiB0cnVlOwogICAgICBjYXNlIF9fTlJfY2xv bmU6ICAvLyBTaG91bGQgYmUgcGFyYW1ldGVyLXJlc3RyaWN0ZWQuCiAgICAgIGNhc2UgX19OUl9z ZXRuczogIC8vIFByaXZpbGVnZWQuCi1AQCAtMzg1LDcgKzM4Niw2IEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgoaW50IHN5c25vKSB7CitAQCAtNDEzLDcg KzQxMyw2IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZFByb2Nlc3NTdGFydE9yRGVhdGgo aW50IHN5c25vKSB7CiAgI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRf XykgfHwgZGVmaW5lZChfX21pcHNfXykKICAgICAgY2FzZSBfX05SX3NldF90aHJlYWRfYXJlYToK ICAjZW5kaWYKQEAgLTc5LDcgKzc5LDcgQEAgaW5kZXggODBmMDJjMC4uMjFmYmUyMSAxMDA2NDQK ICAgICAgY2FzZSBfX05SX3Zmb3JrOgogLS0tIHNhbmRib3gvcG9saWN5L2xpbnV4L2JwZl9yZW5k ZXJlcl9wb2xpY3lfbGludXguY2MKICsrKyBzYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVy ZXJfcG9saWN5X2xpbnV4LmNjCi1AQCAtMTAwLDkgKzEwMCw5IEBACitAQCAtOTUsOSArOTUsOSBA QAogICAgICBjYXNlIF9fTlJfdW5hbWU6CiAgICAgIGNhc2UgX19OUl9zY2hlZF9nZXRwYXJhbToK ICAgICAgY2FzZSBfX05SX3NjaGVkX2dldHNjaGVkdWxlcjoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv Y2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL25vLW1hbGxpbmZvLnBhdGNoIGIvc3JjcGtncy9j aHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvbm8tbWFsbGluZm8ucGF0Y2gKaW5kZXggMjU0YTFm NjMyZGEuLjE2ZTdlMzY4MTc1IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211 c2wtcGF0Y2hlcy9uby1tYWxsaW5mby5wYXRjaAorKysgYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVz L211c2wtcGF0Y2hlcy9uby1tYWxsaW5mby5wYXRjaApAQCAtMSw2ICsxLDYgQEAKIC0tLSBiYXNl L3RyYWNlX2V2ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjLm9yaWcKICsrKyBiYXNlL3RyYWNl X2V2ZW50L21hbGxvY19kdW1wX3Byb3ZpZGVyLmNjCi1AQCAtMjQzLDcgKzI0Myw3IEBACitAQCAt MTg0LDcgKzE4NCw3IEBACiAgICBhbGxvY2F0ZWRfb2JqZWN0c19jb3VudCA9IG1haW5faGVhcF9p bmZvLmJsb2NrX2NvdW50OwogICNlbGlmIGRlZmluZWQoT1NfRlVDSFNJQSkKICAvLyBUT0RPKGZ1 Y2hzaWEpOiBQb3J0LCBzZWUgaHR0cHM6Ly9jcmJ1Zy5jb20vNzA2NTkyLgpAQCAtMzAsNyArMzAs NyBAQAogICNlbmRpZgogLS0tIHRoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xs dm0tc3ViemVyby9saWIvU3VwcG9ydC9Vbml4L1Byb2Nlc3MuaW5jCiArKysgdGhpcmRfcGFydHkv c3dpZnRzaGFkZXIvdGhpcmRfcGFydHkvbGx2bS1zdWJ6ZXJvL2xpYi9TdXBwb3J0L1VuaXgvUHJv Y2Vzcy5pbmMub3JpZwotQEAgLTg0LDcgKzg0LDcgQEAKK0BAIC04Niw3ICs4Niw3IEBACiAgfQog IAogIHNpemVfdCBQcm9jZXNzOjpHZXRNYWxsb2NVc2FnZSgpIHsKQEAgLTQyLDcgKzQyLDcgQEAK IAogLS0tIHRoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJkX3BhcnR5L2xsdm0tMTAuMC9jb25m aWdzL2xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmlnLmgub3JpZwkyMDE5LTA5LTMwIDEz OjAzOjQyLjU1Njg4MDUzNyAtMDQwMAogKysrIHRoaXJkX3BhcnR5L3N3aWZ0c2hhZGVyL3RoaXJk X3BhcnR5L2xsdm0tMTAuMC9jb25maWdzL2xpbnV4L2luY2x1ZGUvbGx2bS9Db25maWcvY29uZmln LmgJMjAxOS0wOS0zMCAxMzowNzoyNy45ODk4MjEyMjcgLTA0MDAKLUBAIC0xMjIsNyArMTIyLDkg QEAKK0BAIC0xMjUsNyArMTI1LDkgQEAKICAvKiAjdW5kZWYgSEFWRV9NQUxMQ1RMICovCiAgCiAg LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIGBtYWxsaW5mbycgZnVuY3Rpb24uICovCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0Y2hlcy9yZXNvbHZlci5w YXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3Jlc29sdmVyLnBhdGNo CmluZGV4IDI5ZmUyZDJmMWYzLi4wY2U3N2M5NmE2MCAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJv bWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvcmVzb2x2ZXIucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJv bWl1bS9maWxlcy9tdXNsLXBhdGNoZXMvcmVzb2x2ZXIucGF0Y2gKQEAgLTEsNiArMSw2IEBACiAt LS0gbmV0L2Rucy9ob3N0X3Jlc29sdmVyX21hbmFnZXIuY2Mub3JpZwkyMDIwLTEwLTA5IDE2OjM5 OjEyLjA2NDA2OTgzNSAtMDQwMAogKysrIG5ldC9kbnMvaG9zdF9yZXNvbHZlcl9tYW5hZ2VyLmNj CTIwMjAtMTAtMDkgMTY6NDI6NDkuNzM4MzAyNzcyIC0wNDAwCi1AQCAtMjc3OSw4ICsyNzc5LDcg QEAKK0BAIC0yNTYyLDggKzI1NjIsNyBAQAogICAgTmV0d29ya0NoYW5nZU5vdGlmaWVyOjpBZGRD b25uZWN0aW9uVHlwZU9ic2VydmVyKHRoaXMpOwogICAgaWYgKHN5c3RlbV9kbnNfY29uZmlnX25v dGlmaWVyXykKICAgICAgc3lzdGVtX2Ruc19jb25maWdfbm90aWZpZXJfLT5BZGRPYnNlcnZlcih0 aGlzKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vZmlsZXMvbXVzbC1wYXRjaGVzL3h4 eC1wcGM2NGxlLXN1cHBvcnQucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wtcGF0 Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCmluZGV4IDkwMDFhMmE4NTRkLi4xYmU5MzIz MTJlZiAxMDA2NDQKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9maWxlcy9tdXNsLXBhdGNoZXMveHh4 LXBwYzY0bGUtc3VwcG9ydC5wYXRjaAorKysgYi9zcmNwa2dzL2Nocm9taXVtL2ZpbGVzL211c2wt cGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0LnBhdGNoCkBAIC0xLDQ2ICsxLDMgQEAKLWRpZmYg LS1naXQgc2FuZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmggc2FuZGJveC9saW51 eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLWluZGV4IGE2YWVjNTQ0ZS4uMmE0YTdmMWJjIDEw MDY0NAotLS0tIHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi0rKysgc2Fu ZGJveC9saW51eC9icGZfZHNsL3NlY2NvbXBfbWFjcm9zLmgKLUBAIC0xNiw3ICsxNiw3IEBACi0g I2lmIGRlZmluZWQoX19taXBzX18pCi0gLy8gc3lzL3VzZXIuaCBpbiBlZ2xpYmMgbWlzc2VzIHNp emVfdCBkZWZpbml0aW9uCi0gI2luY2x1ZGUgPHN0ZGRlZi5oPgotLSNlbGlmIGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIGRlZmluZWQoX19H TElCQ19fKQotIC8vIE1hbnVhbGx5IGRlZmluZSBncmVnX3Qgb24gcHBjNjQKLSB0eXBlZGVmIHVu c2lnbmVkIGxvbmcgbG9uZyBncmVnX3Q7Ci0gI2VuZGlmCi1AQCAtMzYxLDExICszNjEsMTEgQEAg dHlwZWRlZiBzdHJ1Y3QgcHRfcmVncyByZWdzX3N0cnVjdDsKLSAjZGVmaW5lIFNFQ0NPTVBfQVJD SCBBVURJVF9BUkNIX1BQQzY0Ci0gI2VuZGlmCi0gCi0tI2RlZmluZSBTRUNDT01QX1JFRyhfY3R4 LCBfcmVnKSAoKF9jdHgpLT51Y19tY29udGV4dC5yZWdzLT5ncHJbX3JlZ10pCi0rI2RlZmluZSBT RUNDT01QX1JFRyhfY3R4LCBfcmVnKSAoKChzdHJ1Y3QgcHRfcmVncyAqKShfY3R4KS0+dWNfbWNv bnRleHQucmVncyktPmdwcltfcmVnXSkKLSAKLSAjZGVmaW5lIFNFQ0NPTVBfUkVTVUxUKF9jdHgp IFNFQ0NPTVBfUkVHKF9jdHgsIDMpCi0gI2RlZmluZSBTRUNDT01QX1NZU0NBTEwoX2N0eCkgU0VD Q09NUF9SRUcoX2N0eCwgMCkKLS0jZGVmaW5lIFNFQ0NPTVBfSVAoX2N0eCkgKF9jdHgpLT51Y19t Y29udGV4dC5yZWdzLT5uaXAKLSsjZGVmaW5lIFNFQ0NPTVBfSVAoX2N0eCkgKChzdHJ1Y3QgcHRf cmVncyAqKShfY3R4KS0+dWNfbWNvbnRleHQucmVncyktPm5pcAotICNkZWZpbmUgU0VDQ09NUF9Q QVJNMShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQotICNkZWZpbmUgU0VDQ09NUF9QQVJNMihf Y3R4KSBTRUNDT01QX1JFRyhfY3R4LCA0KQotICNkZWZpbmUgU0VDQ09NUF9QQVJNMyhfY3R4KSBT RUNDT01QX1JFRyhfY3R4LCA1KQotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm L3N5c2NhbGwuY2Mgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi1pbmRleCBk NTNhN2ZmNTYuLmMyOTBmMGU5MiAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm L3N5c2NhbGwuY2MKLSsrKyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmL3N5c2NhbGwuY2MKLUBA IC00OTksOSArNDk5LDkgQEAgdm9pZCBTeXNjYWxsOjpQdXRWYWx1ZUluVWNvbnRleHQoaW50cHRy X3QgcmV0X3ZhbCwgdWNvbnRleHRfdCogY3R4KSB7Ci0gICAvLyBTYW1lIGFzIE1JUFMsIG5lZWQg dG8gaW52ZXJ0IHJldCBhbmQgc2V0IGVycm9yIHJlZ2lzdGVyIChjcjAuU08pCi0gICBpZiAocmV0 X3ZhbCA8PSAtMSAmJiByZXRfdmFsID49IC00MDk1KSB7Ci0gICAgIHJldF92YWwgPSAtcmV0X3Zh bDsKLS0gICAgY3R4LT51Y19tY29udGV4dC5yZWdzLT5jY3IgfD0gKDEgPDwgMjgpOwotKyAgICAo KHN0cnVjdCBwdF9yZWdzICopY3R4LT51Y19tY29udGV4dC5yZWdzKS0+Y2NyIHw9ICgxIDw8IDI4 KTsKLSAgIH0gZWxzZSB7Ci0tICAgIGN0eC0+dWNfbWNvbnRleHQucmVncy0+Y2NyICY9IH4oMSA8 PCAyOCk7Ci0rICAgICgoc3RydWN0IHB0X3JlZ3MgKiljdHgtPnVjX21jb250ZXh0LnJlZ3MpLT5j Y3IgJj0gfigxIDw8IDI4KTsKLSAgIH0KLSAjZW5kaWYKLSAgIFNFQ0NPTVBfUkVTVUxUKGN0eCkg PSBzdGF0aWNfY2FzdDxncmVnX3Q+KHJldF92YWwpOwogZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9h YnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaCB0aGlyZF9w YXJ0eS9hYnNlaWwtY3BwL2Fic2wvYmFzZS9pbnRlcm5hbC91bnNjYWxlZGN5Y2xlY2xvY2suaAog aW5kZXggY2RjZTliZjguLjczZDc3ZGRhIDEwMDY0NAogLS0tIHRoaXJkX3BhcnR5L2Fic2VpbC1j cHAvYWJzbC9iYXNlL2ludGVybmFsL3Vuc2NhbGVkY3ljbGVjbG9jay5oCkBAIC01Niw3ICsxMyw3 IEBAIGluZGV4IGNkY2U5YmY4Li43M2Q3N2RkYSAxMDA2NDQKICAjZWxzZQogLS0tIHRoaXJkX3Bh cnR5L2Fic2VpbC1jcHAvYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3RhY2t0cmFjZV9jb25maWcu aAogKysrIHRoaXJkX3BhcnR5L2Fic2VpbC1jcHAvYWJzbC9kZWJ1Z2dpbmcvaW50ZXJuYWwvc3Rh Y2t0cmFjZV9jb25maWcuaAotQEAgLTY0LDcgKzY0LDcgQEAKK0BAIC01OSw3ICs1OSw3IEBACiAg I2VsaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKQogICNkZWZpbmUg QUJTTF9TVEFDS1RSQUNFX0lOTF9IRUFERVIgXAogICAgImFic2wvZGVidWdnaW5nL2ludGVybmFs L3N0YWNrdHJhY2VfeDg2LWlubC5pbmMiCkBAIC02NSwyMyArMjIsMTEgQEAgaW5kZXggY2RjZTli ZjguLjczZDc3ZGRhIDEwMDY0NAogICNkZWZpbmUgQUJTTF9TVEFDS1RSQUNFX0lOTF9IRUFERVIg XAogICAgImFic2wvZGVidWdnaW5nL2ludGVybmFsL3N0YWNrdHJhY2VfcG93ZXJwYy1pbmwuaW5j IgogICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL0JVSUxELmduIHRoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi1pbmRleCBmOWE2 MGUzNy4uMjVmM2EwYjcgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24K LSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgotQEAgLTYzNyw2ICs2MzcsNyBAQCBp ZiAoaXNfbGludXggfHwgaXNfYW5kcm9pZCkgewotIAotICAgICBpZiAoY3VycmVudF9jcHUgPT0g InBwYzY0IikgewotICAgICAgICAgZGVmaW5lcyA9IFsgIkhBVkVfR0VUQ09OVEVYVCIgXQotKyAg ICAgICAgbGlicyArPSBbICJ1Y29udGV4dCIgXQotICAgICB9IGVsc2UgewotICAgICAgICAgc291 cmNlcyArPSBbCi0gICAgICAgICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtw YWRfZ2V0Y29udGV4dC5TIgogZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYyB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2Nv bW1vbi90aHJlYWRfaW5mby5jYwogaW5kZXggMDNhZmVjN2EuLjAyNjRlY2YxIDEwMDY0NAogLS0t IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjCiArKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uY2MKLUBA IC0yNzMsNiArMjczLDkgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250 ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKK0BAIC0yMTAsNiArMjEwLDkgQEAgdm9pZCBUaHJlYWRJbmZv OjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVKiBvdXQpIGNvbnN0IHsKICAKICAjZWxpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCiAgCkBAIC05MSwyMyArMzYsMTEgQEAgaW5kZXggMDNhZmVj N2EuLjAyNjRlY2YxIDEwMDY0NAogIHVpbnRwdHJfdCBUaHJlYWRJbmZvOjpHZXRJbnN0cnVjdGlv blBvaW50ZXIoKSBjb25zdCB7CiAgICAgIHJldHVybiBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07 CiAgfQotQEAgLTI5MCw5ICsyOTMsOSBAQCB2b2lkIFRocmVhZEluZm86OkZpbGxDUFVDb250ZXh0 KFJhd0NvbnRleHRDUFUqIG91dCkgY29uc3QgewotICAgICBvdXQtPmN0ciA9IG1jb250ZXh0Lmdw X3JlZ3NbUFRfQ1RSXTsKLSAgICAgCi0gICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJ TkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0tICAgICAgICBvdXQtPmZsb2F0X3NhdmUu ZnByZWdzW2ldID0gbWNvbnRleHQuZnBfcmVnc1tpXTsKLSsgICAgICAgIG91dC0+ZmxvYXRfc2F2 ZS5mcHJlZ3NbaV0gPSAoKHVpbnQ2NF90ICopJm1jb250ZXh0LmZwX3JlZ3MpW2ldOwotIAotLSAg ICBvdXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKLSsg ICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAqKSZtY29udGV4dC5mcF9yZWdz KVtFTEZfTkZQUkVHLTFdOwotIAotICAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNB VkVBUkVBX1BQQ19WUl9DT1VOVDsgaSsrKQotICAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZl X3ZyW2ldID0gXAogZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIuY2MgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21t b24vdWNvbnRleHRfcmVhZGVyLmNjCiBpbmRleCAxMDkwNDcwZi4uZTU4MDIzM2QgMTAwNjQ0CiAt LS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCiArKysgdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVh ZGVyLmNjCi1AQCAtMjU3LDYgKzI1Nyw5IEBAIHZvaWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVD b250ZXh0KFJhd0NvbnRleHRDUFUgKm91dCwgY29uc3QgdWNvbnRleHRfdCAqdWMpIHsKK0BAIC0y MTAsNiArMjEwLDkgQEAgdm9pZCBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29u dGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YykgewogIAogICNlbGlmIGRlZmluZWQo X19wb3dlcnBjNjRfXykKICAKQEAgLTExNywxOCArNTAsNiBAQCBpbmRleCAxMDkwNDcwZi4uZTU4 MDIzM2QgMTAwNjQ0CiAgdWludHB0cl90IFVDb250ZXh0UmVhZGVyOjpHZXRTdGFja1BvaW50ZXIo Y29uc3QgdWNvbnRleHRfdCogdWMpIHsKICAgICAgcmV0dXJuIHVjLT51Y19tY29udGV4dC5ncF9y ZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXTsKICB9Ci1AQCAtMjgwLDkgKzI4Myw5IEBAIHZv aWQgVUNvbnRleHRSZWFkZXI6OkZpbGxDUFVDb250ZXh0KFJhd0NvbnRleHRDUFUqIG91dCwgY29u c3QgdWNvbnRleHRfdCogdWMsCi0gICAgIG91dC0+Y3RyID0gdWMtPnVjX21jb250ZXh0LmdwX3Jl Z3NbUFRfQ1RSXTsKLSAgICAgCi0gICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdT QVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0tICAgICAgICBvdXQtPmZsb2F0X3NhdmUuZnBy ZWdzW2ldID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbaV07Ci0rICAgICAgICBvdXQtPmZsb2F0 X3NhdmUuZnByZWdzW2ldID0gKCh1aW50NjRfdCAqKSZ1Yy0+dWNfbWNvbnRleHQuZnBfcmVncylb aV07Ci0gCi0tICAgIG91dC0+ZmxvYXRfc2F2ZS5mcHNjciA9IHVjLT51Y19tY29udGV4dC5mcF9y ZWdzW05GUFJFRy0xXTsKLSsgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gKCh1aW50NjRfdCAq KSZ1Yy0+dWNfbWNvbnRleHQuZnBfcmVncylbRUxGX05GUFJFRy0xXTsKLSAKLSAgICAgZm9yIChp bnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkrKykKLSAgICAg ICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9CiBkaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFu ZGxlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hh bmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKIGluZGV4IDVhN2FiNTBjLi5lZThiODU4YyAxMDA2 NDQKIC0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hh bmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2MKQEAgLTE0NSwzMSArNjYsNiBAQCBpbmRleCA1YTdh YjUwYy4uZWU4Yjg1OGMgMTAwNjQ0CiAgbmFtZXNwYWNlIGdvb2dsZV9icmVha3BhZCB7CiAgCiAg bmFtZXNwYWNlIHsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvc2lnbmFsX2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9saW51eC9zaWduYWxfY29udGV4dC5oCi1pbmRleCA4ZTMzNWEwOS4uYjJhMGYx NTUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGlu dXgvc2lnbmFsX2NvbnRleHQuaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3Nu YXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgKLUBAIC00NjksNyArNDY5LDcgQEAgc3RydWN0 IE1Db250ZXh0NjQgewotICAgU2lnbmFsVGhyZWFkQ29udGV4dDY0IGdwX3JlZ3M7Ci0gICBTaWdu YWxGbG9hdENvbnRleHQ2NCAgZnBfcmVnczsKLSAgIFNpZ25hbFZlY3RvckNvbnRleHQ2NCAqdl9y ZWdzOwotLSAgaW50NjRfdCB2bXhfcmVzZXJ2ZVs2OV07Ci0rICBpbnQ2NF90IHZteF9yZXNlcnZl WzEwMV07Ci0gfTsKLSAKLSBzdHJ1Y3QgQ29udGV4dFRyYWl0czY0IDogcHVibGljIFRyYWl0czY0 IHsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90 aHJlYWRfaW5mby5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhy ZWFkX2luZm8uaAotaW5kZXggZGVhMGQxZjMuLmIyMDNlNWIyIDEwMDY0NAotLS0tIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotKysrIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvdGhyZWFkX2luZm8uaAotQEAgLTMw LDYgKzMwLDcgQEAKLSAKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gI2lu Y2x1ZGUgPHN5cy91Y29udGV4dC5oPgotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0gI2VuZGlm Ci0gCi0gbmFtZXNwYWNlIGNyYXNocGFkIHsKIGRpZmYgLS1naXQgdGhpcmRfcGFydHkvbHNzL2xp bnV4X3N5c2NhbGxfc3VwcG9ydC5oIHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxsX3N1cHBv cnQuaAogaW5kZXggOTk1NWNlNDQuLjRjMWNjNDg4IDEwMDY0NAogLS0tIHRoaXJkX3BhcnR5L2xz cy9saW51eF9zeXNjYWxsX3N1cHBvcnQuaApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2Jyb3dzZXItc2l6ZV90LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Jy b3dzZXItc2l6ZV90LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYTIxNGQ5 ODdkNi4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Jyb3dzZXIt c2l6ZV90LnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsMTAgKzAsMCBAQAotLS0tIGNocm9tZS9i cm93c2VyL3NlYXJjaC9iYWNrZ3JvdW5kL250cF9iYWNrZ3JvdW5kcy5oCTIwMjAtMDgtMTAgMjA6 Mzk6MjAuMDAwMDAwMDAwICswMjAwCi0rKysgY2hyb21lL2Jyb3dzZXIvc2VhcmNoL2JhY2tncm91 bmQvbnRwX2JhY2tncm91bmRzLmgJMjAyMC0wOS0wNCAxMzo0ODoyMi42NDAwMjMyNTYgKzAyMDAK LUBAIC02LDYgKzYsNyBAQAotICNkZWZpbmUgQ0hST01FX0JST1dTRVJfU0VBUkNIX0JBQ0tHUk9V TkRfTlRQX0JBQ0tHUk9VTkRTX0hfCi0gCi0gI2luY2x1ZGUgPGFycmF5PgotKyNpbmNsdWRlIDxj c3RkZGVmPgotIAotIGNsYXNzIEdVUkw7Ci0gCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVt L3BhdGNoZXMvY2hyb21pdW0tODgtQVhUcmVlRm9ybWF0dGVyLWluY2x1ZGUucGF0Y2ggYi9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtQVhUcmVlRm9ybWF0dGVyLWluY2x1ZGUu cGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU0NzgxMDk4OTIwLi4wMDAwMDAw MDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtQVhUcmVlRm9y bWF0dGVyLWluY2x1ZGUucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi1Gcm9t IDZlNDAyZDk3YzJkZWM1NzI2ZjM3ZTk1Zjk3YjdmN2UxMmIxZDNiMWQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxCi1Gcm9tOiBKb3NlIERhcGVuYSBQYXogPGpkYXBlbmFAaWdhbGlhLmNvbT4KLURh dGU6IFdlZCwgMTEgTm92IDIwMjAgMTE6MDI6MTMgKzAxMDAKLVN1YmplY3Q6IFtQQVRDSF0gSVdZ VTogaW5jbHVkZSBoZWFkZXJzIGZvciBzdGQ6OnZlY3RvciBhbmQgc3RkOjp1bmlxdWVfcHRyIGlu IEFYVHJlZUZvcm1hdHRlcgotCi1GaXggdGhlc2UgYnVpbGQgZXJyb3JzIHdpdGggbGlic3RkYysr OgotLi4vLi4vdWkvYWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS9pbnNwZWN0L3RyZWVfZm9ybWF0dGVy Lmg6MzU6MTI6IGVycm9yOiDigJhzdGQ6OnZlY3RvcuKAmSBoYXMgbm90IGJlZW4gZGVjbGFyZWQK LS4uLy4uL3VpL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC90cmVlX2Zvcm1hdHRlci5o OjYxOjE2OiBlcnJvcjog4oCYdW5pcXVlX3B0cuKAmSBpbiBuYW1lc3BhY2Ug4oCYc3Rk4oCZIGRv ZXMgbm90IG5hbWUgYSB0ZW1wbGF0ZSB0eXBlCi0KLUJ1ZzogOTU3NTE5Ci1DaGFuZ2UtSWQ6IEk0 MDJhYzA2NDQyNTViM2NkNDkzMmZmMmZlNzJkOTk5YjEyNWE3ODk1Ci0tLS0KLQotZGlmZiAtLWdp dCBhL3VpL2FjY2Vzc2liaWxpdHkvcGxhdGZvcm0vaW5zcGVjdC90cmVlX2Zvcm1hdHRlci5oIGIv dWkvYWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS9pbnNwZWN0L3RyZWVfZm9ybWF0dGVyLmgKLWluZGV4 IDRhNzBhNGQuLmJiMjM3NjggMTAwNjQ0Ci0tLS0gdWkvYWNjZXNzaWJpbGl0eS9wbGF0Zm9ybS9p bnNwZWN0L3RyZWVfZm9ybWF0dGVyLmgKLSsrKyB1aS9hY2Nlc3NpYmlsaXR5L3BsYXRmb3JtL2lu c3BlY3QvdHJlZV9mb3JtYXR0ZXIuaAotQEAgLTUsNiArNSw5IEBACi0gI2lmbmRlZiBVSV9BQ0NF U1NJQklMSVRZX1BMQVRGT1JNX0lOU1BFQ1RfVFJFRV9GT1JNQVRURVJfSF8KLSAjZGVmaW5lIFVJ X0FDQ0VTU0lCSUxJVFlfUExBVEZPUk1fSU5TUEVDVF9UUkVFX0ZPUk1BVFRFUl9IXwotIAotKyNp bmNsdWRlIDxtZW1vcnk+Ci0rI2luY2x1ZGUgPHZlY3Rvcj4KLSsKLSAjaW5jbHVkZSAidWkvYWNj ZXNzaWJpbGl0eS9wbGF0Zm9ybS9pbnNwZWN0L2luc3BlY3QuaCIKLSAKLSAjaW5jbHVkZSAidWkv Z2Z4L25hdGl2ZV93aWRnZXRfdHlwZXMuaCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy9jaHJvbWl1bS04OC1Cb29rbWFya01vZGVsT2JzZXJ2ZXItaW5jbHVkZS5wYXRjaCBi L3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1Cb29rbWFya01vZGVsT2JzZXJ2 ZXItaW5jbHVkZS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGIyNmE2MGEz NmUuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04 OC1Cb29rbWFya01vZGVsT2JzZXJ2ZXItaW5jbHVkZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDIxICswLDAgQEAKLUZyb20gMTI3ZWMzYjFiZjI2YWIzN2YyYWU4MzMzZjI4NDAwODg2ODc1NjI3 NCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEw OUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IFNhdCwgMjEgTm92IDIwMjAgMTU6NTk6MjMgKzAwMDAK LVN1YmplY3Q6IFtQQVRDSF0gSVdZVTogc2l6ZV90IGlzIGRlZmluZWQgc3RkZGVmLmgKLQotQ2hh bmdlLUlkOiBJNDQwMGFjN2M2MDA0YjQ5ZWM2ZTcyYzQ0ZjI3NTRlMjE2NjY0MmY4OAotLS0tCi0K LWRpZmYgLS1naXQgYS9jb21wb25lbnRzL2Jvb2ttYXJrcy9icm93c2VyL2Jvb2ttYXJrX21vZGVs X29ic2VydmVyLmggYi9jb21wb25lbnRzL2Jvb2ttYXJrcy9icm93c2VyL2Jvb2ttYXJrX21vZGVs X29ic2VydmVyLmgKLWluZGV4IDY5YzQwZTcuLjBlNWViOTYgMTAwNjQ0Ci0tLS0gY29tcG9uZW50 cy9ib29rbWFya3MvYnJvd3Nlci9ib29rbWFya19tb2RlbF9vYnNlcnZlci5oCi0rKysgY29tcG9u ZW50cy9ib29rbWFya3MvYnJvd3Nlci9ib29rbWFya19tb2RlbF9vYnNlcnZlci5oCi1AQCAtNyw2 ICs3LDggQEAKLSAKLSAjaW5jbHVkZSA8c2V0PgotIAotKyNpbmNsdWRlIDxzdGRkZWYuaD4KLSsK LSBjbGFzcyBHVVJMOwotIAotIG5hbWVzcGFjZSBib29rbWFya3MgewpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LUNvbXBvc2l0b3JGcmFtZVJlcG9ydGVy LWRjaGVjay5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1Db21w b3NpdG9yRnJhbWVSZXBvcnRlci1kY2hlY2sucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IGFhMWM1MmUwYjdlLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvY2hyb21pdW0tODgtQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNrLnBhdGNoCisr KyAvZGV2L251bGwKQEAgLTEsMzYgKzAsMCBAQAotRnJvbSA1NmM2NTRhOTE2MDBlM2JmMjU0YWE5 ZjY2YzExNTFiMDg1MGI2ZWU0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogSm9zZSBE YXBlbmEgUGF6IDxqZGFwZW5hQGlnYWxpYS5jb20+Ci1EYXRlOiBXZWQsIDExIE5vdiAyMDIwIDEw OjI0OjQ3ICswMTAwCi1TdWJqZWN0OiBbUEFUQ0hdIEdDQzogZG8gbm90IHBhc3MgdW5pcXVlX3B0 ciB0byBEQ0hFQ0tfTkUsIGJ1dCB0aGUgYWN0dWFsIHBvaW50ZXIsIGluIENvbXBvc2l0b3JGcmFt ZVJlcG9ydGVyCi0KLURDSEVDS19ORSBjb21wYXJpc29uIHJlcXVpcmVzIENoZWNrT3BWYWx1ZVN0 ciB0byBiZSBkZWZpbmVkIGZvciB0aGUKLXR5cGUsIG9yIHByb3ZpZGluZyBhbiBvdXRwdXQgc3Ry ZWFtIG9wZXJhdG9yLiBBIHVuaXF1ZV9wdHIgZG9lcyBub3QKLXByb3ZpZGUgYW55LgotCi1Db21w aWxhdGlvbiBpbiBHQ0MgaXMgZmFpbGluZyBpbiBDb21wb3NpdG9yRnJhbWVSZXBvcnRlciBiZWNh dXNlIG9mCi10aGlzOgotLi4vLi4vY2MvbWV0cmljcy9jb21wb3NpdG9yX2ZyYW1lX3JlcG9ydGVy LmNjOiBJbiBtZW1iZXIgZnVuY3Rpb24g4oCYdm9pZCBjYzo6Q29tcG9zaXRvckZyYW1lUmVwb3J0 ZXI6OlJlcG9ydEV2ZW50TGF0ZW5jeUhpc3RvZ3JhbXMoKSBjb25zdOKAmToKLS4uLy4uL2Jhc2Uv Y2hlY2tfb3AuaDoyMjQ6NTk6IGVycm9yOiBubyBtYXRjaGluZyBmdW5jdGlvbiBmb3IgY2FsbCB0 byDigJhDaGVja09wVmFsdWVTdHIoY29uc3Qgc3RkOjp1bmlxdWVfcHRyPGNjOjpFdmVudE1ldHJp Y3M+JinigJkKLQotRml4ZWQgY29tcGFyaW5nIHRoZSByZXN1bHQgb2YgZ2V0KCkgbWV0aG9kIGZv ciB1bmlxdWVfcHRyIGluc3RlYWQgb2YKLXRoZSB1bmlxdWVfcHRyLgotCi1CdWc6IDgxOTI5NAot Q2hhbmdlLUlkOiBJMTExMDNkMTg2N2M3MTk2YzFkZTkyZTcyZjlmMTJkY2ZkMzFjMjlmMQotCi0o dXBkYXRlZCB0byB1c2UgRENIRUNLIGFzIHN1Z2dlc3RlZCBpbiBjb21tZW50cykKLS0tLQotCi1k aWZmIC0tZ2l0IGEvY2MvbWV0cmljcy9jb21wb3NpdG9yX2ZyYW1lX3JlcG9ydGVyLmNjIGIvY2Mv bWV0cmljcy9jb21wb3NpdG9yX2ZyYW1lX3JlcG9ydGVyLmNjCi1pbmRleCA3MjViZWIwLi5mYWZk MGYzIDEwMDY0NAotLS0tIGNjL21ldHJpY3MvY29tcG9zaXRvcl9mcmFtZV9yZXBvcnRlci5jYwot KysrIGNjL21ldHJpY3MvY29tcG9zaXRvcl9mcmFtZV9yZXBvcnRlci5jYwotQEAgLTY4Niw3ICs2 ODYsNyBAQAotIAotIHZvaWQgQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXI6OlJlcG9ydEV2ZW50TGF0 ZW5jeUhpc3RvZ3JhbXMoKSBjb25zdCB7Ci0gICBmb3IgKGNvbnN0IGF1dG8mIGV2ZW50X21ldHJp Y3MgOiBldmVudHNfbWV0cmljc18pIHsKLS0gICAgRENIRUNLX05FKGV2ZW50X21ldHJpY3MsIG51 bGxwdHIpOwotKyAgICBEQ0hFQ0soZXZlbnRfbWV0cmljcyk7Ci0gICAgIGNvbnN0IHN0ZDo6c3Ry aW5nIGhpc3RvZ3JhbV9iYXNlX25hbWUgPQotICAgICAgICAgR2V0RXZlbnRMYXRlbmN5SGlzdG9n cmFtQmFzZU5hbWUoKmV2ZW50X21ldHJpY3MpOwotICAgICBjb25zdCBpbnQgZXZlbnRfdHlwZV9p bmRleCA9IHN0YXRpY19jYXN0PGludD4oZXZlbnRfbWV0cmljcy0+dHlwZSgpKTsKZGlmZiAtLWdp dCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1TdHJpbmdQb29sLWluY2x1 ZGUucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtU3RyaW5nUG9v bC1pbmNsdWRlLnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNTViYmFlMmVj ZS4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4 LVN0cmluZ1Bvb2wtaW5jbHVkZS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIwICswLDAgQEAK LUZyb20gMzcyMzY2YjQxODA1MzNmMjdkMzI1MGE1MDgxMDgyODM3MGQ2OTdiMCBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKLUZyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWls LmNvbT4KLURhdGU6IFNhdCwgMjEgTm92IDIwMjAgMTY6MTI6MTggKzAwMDAKLVN1YmplY3Q6IFtQ QVRDSF0gSVdZVTogaW5jbHVkZSBsaW1pdHMgZm9yIHN0ZDo6bnVtZXJpY19saW1pdHMKLQotQ2hh bmdlLUlkOiBJYTUyMjZlMTQzMmE2MjJmNGY0YWJjOGYxYjE4YmNhYjg2MzhhNzNjNgotLS0tCi0K LWRpZmYgLS1naXQgYS9zcmMvdHJhY2VfcHJvY2Vzc29yL2NvbnRhaW5lcnMvc3RyaW5nX3Bvb2wu aCBiL3NyYy90cmFjZV9wcm9jZXNzb3IvY29udGFpbmVycy9zdHJpbmdfcG9vbC5oCi1pbmRleCAx MWFlOTFjLi41OGM2ZGIyIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3BlcmZldHRvL3NyYy90cmFj ZV9wcm9jZXNzb3IvY29udGFpbmVycy9zdHJpbmdfcG9vbC5oCi0rKysgdGhpcmRfcGFydHkvcGVy ZmV0dG8vc3JjL3RyYWNlX3Byb2Nlc3Nvci9jb250YWluZXJzL3N0cmluZ19wb29sLmgKLUBAIC0y Miw2ICsyMiw3IEBACi0gCi0gI2luY2x1ZGUgPHVub3JkZXJlZF9tYXA+Ci0gI2luY2x1ZGUgPHZl Y3Rvcj4KLSsjaW5jbHVkZSA8bGltaXRzPgotIAotICNpbmNsdWRlICJwZXJmZXR0by9leHQvYmFz ZS9vcHRpb25hbC5oIgotICNpbmNsdWRlICJwZXJmZXR0by9leHQvYmFzZS9wYWdlZF9tZW1vcnku aCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1mZWRl cmF0ZWRfbGVhcm5pbmctaW5jbHVkZS5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9j aHJvbWl1bS04OC1mZWRlcmF0ZWRfbGVhcm5pbmctaW5jbHVkZS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggM2ViMTUzN2Q4MDEuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1mZWRlcmF0ZWRfbGVhcm5pbmctaW5jbHVkZS5w YXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDIxICswLDAgQEAKLUZyb20gYmNiMjBiYWJlZTYwMmI1 NWZlNGJkMDI2ZTEzYTQxZDEwYjg5NjMyZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKLUZyb206 IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWlsLmNvbT4KLURhdGU6IFNhdCwgMjEg Tm92IDIwMjAgMTU6NTU6MDIgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gSVdZVTogaW5jbHVkZSBs aW1pdHMgZm9yIHN0ZDo6bnVtZXJpY19saW1pdHMKLQotQ2hhbmdlLUlkOiBJMWI2YjA3ZWJiMzk3 YTI5Yzg0ZDNlZDUxYWU0MTUyM2UzZWNhYjQ5NwotLS0tCi0KLWRpZmYgLS1naXQgYS9jb21wb25l bnRzL2ZlZGVyYXRlZF9sZWFybmluZy9mbG9jX2NvbnN0YW50cy5jYyBiL2NvbXBvbmVudHMvZmVk ZXJhdGVkX2xlYXJuaW5nL2Zsb2NfY29uc3RhbnRzLmNjCi1pbmRleCBkZjY2ZTVkLi4yZWI1MGYx IDEwMDY0NAotLS0tIGNvbXBvbmVudHMvZmVkZXJhdGVkX2xlYXJuaW5nL2Zsb2NfY29uc3RhbnRz LmNjCi0rKysgY29tcG9uZW50cy9mZWRlcmF0ZWRfbGVhcm5pbmcvZmxvY19jb25zdGFudHMuY2MK LUBAIC00LDYgKzQsOCBAQAotIAotICNpbmNsdWRlICJjb21wb25lbnRzL2ZlZGVyYXRlZF9sZWFy bmluZy9mbG9jX2NvbnN0YW50cy5oIgotIAotKyNpbmNsdWRlIDxsaW1pdHM+Ci0rCi0gbmFtZXNw YWNlIGZlZGVyYXRlZF9sZWFybmluZyB7Ci0gCi0gLy8gVGhpcyBpcyBvbmx5IGZvciBleHBlcmlt ZW50YXRpb24gYW5kIHdvbid0IGJlIHNlcnZlZCB0byB3ZWJzaXRlcy4KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1nbGliYy0yLjMzLnBhdGNoIGIvc3Jj cGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWdsaWJjLTIuMzMucGF0Y2gKZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY0MzA2ZDVlNDI5Li4wMDAwMDAwMDAwMAotLS0gYS9z cmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtZ2xpYmMtMi4zMy5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDE0NCArMCwwIEBACi0jIFBhdGNoIG1hZGUgYnkgS2V2aW4gS29mbGVy IDxLZXZpbkB0aWdjYy50aWNhbGMub3JnPgotIyBodHRwczovL2J1Z3ppbGxhLnJlZGhhdC5jb20v c2hvd19idWcuY2dpP2lkPTE5MDQ2NTIKLQotZGlmZiAtdXAgY2hyb21pdW0tODguMC40MzI0Ljk2 L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9iYXNlbGluZV9wb2xpY3kuY2MuZnN0 YXRmaXggY2hyb21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9iYXNlbGluZV9wb2xpY3kuY2MKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjLmZzdGF0Zml4CTIwMjEtMDEtMjUgMTA6MTE6NDUuNDI3 NDM2Mzk4IC0wNTAwCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2Vs aW5lX3BvbGljeS5jYwkyMDIxLTAxLTI1IDEwOjEyOjUxLjMzNzY5OTAwMyAtMDUwMAotQEAgLTI1 Nyw2ICsyNTcsMTggQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2NhbGxJbXBsKGludCBmc19kZQot ICAgICByZXR1cm4gUmVzdHJpY3RLaWxsVGFyZ2V0KGN1cnJlbnRfcGlkLCBzeXNubyk7Ci0gICB9 Ci0gCi0rI2lmIGRlZmluZWQoX19OUl9uZXdmc3RhdGF0KQotKyAgaWYgKHN5c25vID09IF9fTlJf bmV3ZnN0YXRhdCkgewotKyAgICByZXR1cm4gUmV3cml0ZUZzdGF0YXRTSUdTWVMoKTsKLSsgIH0K LSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZChfX05SX2ZzdGF0YXQ2NCkKLSsgIGlmIChzeXNubyA9 PSBfX05SX2ZzdGF0YXQ2NCkgewotKyAgICByZXR1cm4gUmV3cml0ZUZzdGF0YXRTSUdTWVMoKTsK LSsgIH0KLSsjZW5kaWYKLSsKLSAgIGlmIChTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKHN5c25v KSB8fAotICAgICAgIFN5c2NhbGxTZXRzOjpJc0N1cnJlbnREaXJlY3Rvcnkoc3lzbm8pKSB7Ci0g ICAgIHJldHVybiBFcnJvcihmc19kZW5pZWRfZXJybm8pOwotZGlmZiAtdXAgY2hyb21pdW0tODgu MC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zaWdzeXNfaGFuZGxl cnMuY2MuZnN0YXRmaXggY2hyb21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2VjY29t cC1icGYtaGVscGVycy9zaWdzeXNfaGFuZGxlcnMuY2MKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmNjLmZzdGF0Zml4CTIwMjEtMDEtMjUgMTA6 MTM6MTAuMTc5Nzc0MDgxIC0wNTAwCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL3NpZ3N5c19oYW5kbGVycy5jYwkyMDIxLTAxLTI1IDEwOjE2OjE4Ljc5MDUyNTc0NiAtMDUw MAotQEAgLTYsNiArNiw4IEBACi0gCi0gI2luY2x1ZGUgInNhbmRib3gvbGludXgvc2VjY29tcC1i cGYtaGVscGVycy9zaWdzeXNfaGFuZGxlcnMuaCIKLSAKLSsjaW5jbHVkZSA8ZXJybm8uaD4KLSsj aW5jbHVkZSA8ZmNudGwuaD4KLSAjaW5jbHVkZSA8c3RkZGVmLmg+Ci0gI2luY2x1ZGUgPHN0ZGlu dC5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLUBAIC0zNTUsNiArMzU3LDM1IEBAIGludHB0cl90 IFNJR1NZU1NjaGVkSGFuZGxlcihjb25zdCBzdHJ1Y3QKLSAgIHJldHVybiAtRU5PU1lTOwotIH0K LSAKLStpbnRwdHJfdCBTSUdTWVNGc3RhdGF0SGFuZGxlcihjb25zdCBzdHJ1Y3QgYXJjaF9zZWNj b21wX2RhdGEmIGFyZ3MsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9pZCogYXV4 KSB7Ci0rICBzd2l0Y2ggKGFyZ3MubnIpIHsKLSsjaWYgZGVmaW5lZChfX05SX25ld2ZzdGF0YXQp Ci0rICAgIGNhc2UgX19OUl9uZXdmc3RhdGF0OgotKyNlbmRpZgotKyNpZiBkZWZpbmVkKF9fTlJf ZnN0YXRhdDY0KQotKyAgICBjYXNlIF9fTlJfZnN0YXRhdDY0OgotKyNlbmRpZgotKyNpZiBkZWZp bmVkKF9fTlJfbmV3ZnN0YXRhdCkgfHwgZGVmaW5lZChfX05SX2ZzdGF0YXQ2NCkKLSsgICAgICBp ZiAoKnJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhciAqPihhcmdzLmFyZ3NbMV0pID09ICdcMCcK LSsgICAgICAgICAgJiYgYXJncy5hcmdzWzNdID09IHN0YXRpY19jYXN0PHVpbnQ2NF90PihBVF9F TVBUWV9QQVRIKSkgewotKyAgICAgICAgcmV0dXJuIHNhbmRib3g6OnN5c19mc3RhdDY0KHN0YXRp Y19jYXN0PGludD4oYXJncy5hcmdzWzBdKSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICByZWludGVycHJldF9jYXN0PHN0cnVjdCBzdGF0NjQgKj4oYXJncy5hcmdzWzJdKSk7 Ci0rICAgICAgfSBlbHNlIHsKLSsgICAgICAgIGVycm5vID0gRUFDQ0VTOwotKyAgICAgICAgcmV0 dXJuIC0xOwotKyAgICAgIH0KLSsgICAgICBicmVhazsKLSsjZW5kaWYKLSsgIH0KLSsKLSsgIENy YXNoU0lHU1lTX0hhbmRsZXIoYXJncywgYXV4KTsKLSsKLSsgIC8vIFNob3VsZCBuZXZlciBiZSBy ZWFjaGVkLgotKyAgUkFXX0NIRUNLKGZhbHNlKTsKLSsgIHJldHVybiAtRU5PU1lTOwotK30KLSsK LSBicGZfZHNsOjpSZXN1bHRFeHByIENyYXNoU0lHU1lTKCkgewotICAgcmV0dXJuIGJwZl9kc2w6 OlRyYXAoQ3Jhc2hTSUdTWVNfSGFuZGxlciwgTlVMTCk7Ci0gfQotQEAgLTM4Nyw2ICs0MTgsMTAg QEAgYnBmX2RzbDo6UmVzdWx0RXhwciBSZXdyaXRlU2NoZWRTSUdTWVMoKQotICAgcmV0dXJuIGJw Zl9kc2w6OlRyYXAoU0lHU1lTU2NoZWRIYW5kbGVyLCBOVUxMKTsKLSB9Ci0gCi0rYnBmX2RzbDo6 UmVzdWx0RXhwciBSZXdyaXRlRnN0YXRhdFNJR1NZUygpIHsKLSsgIHJldHVybiBicGZfZHNsOjpU cmFwKFNJR1NZU0ZzdGF0YXRIYW5kbGVyLCBOVUxMKTsKLSt9Ci0rCi0gdm9pZCBBbGxvY2F0ZUNy YXNoS2V5cygpIHsKLSAjaWYgIWRlZmluZWQoT1NfTkFDTF9OT05TRkkpCi0gICBpZiAoc2VjY29t cF9jcmFzaF9rZXkpCi1kaWZmIC11cCBjaHJvbWl1bS04OC4wLjQzMjQuOTYvc2FuZGJveC9saW51 eC9zZWNjb21wLWJwZi1oZWxwZXJzL3NpZ3N5c19oYW5kbGVycy5oLmZzdGF0Zml4IGNocm9taXVt LTg4LjAuNDMyNC45Ni9zYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hh bmRsZXJzLmgKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hh bmRsZXJzLmguZnN0YXRmaXgJMjAyMS0wMS0yNSAxMDoxNjozNi45ODI1OTgyMzYgLTA1MDAKLSsr KyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc2lnc3lzX2hhbmRsZXJzLmgJMjAy MS0wMS0yNSAxMDoxODo0NS43MDUxMTEwMjcgLTA1MDAKLUBAIC02Miw2ICs2MiwxMCBAQCBTQU5E Qk9YX0VYUE9SVCBpbnRwdHJfdCBTSUdTWVNQdHJhY2VGYWlsCi0gLy8gc2NoZWRfc2V0cGFyYW0o KSwgc2NoZWRfc2V0c2NoZWR1bGVyKCkKLSBTQU5EQk9YX0VYUE9SVCBpbnRwdHJfdCBTSUdTWVNT Y2hlZEhhbmRsZXIoY29uc3QgYXJjaF9zZWNjb21wX2RhdGEmIGFyZ3MsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQqIGF1eCk7Ci0rLy8gSWYgdGhlIGZz dGF0YXQgc3lzY2FsbCBpcyBhY3R1YWxseSBhIGRpc2d1aXNlZCBmc3RhdCwgY2FsbHMgdGhlIHJl Z3VsYXIgZnN0YXQKLSsvLyBzeXNjYWxsLCBvdGhlcndpc2UsIGNyYXNoZXMgaW4gdGhlIHNhbWUg d2F5IGFzIENyYXNoU0lHU1lTX0hhbmRsZXIuCi0rU0FOREJPWF9FWFBPUlQgaW50cHRyX3QgU0lH U1lTRnN0YXRhdEhhbmRsZXIoY29uc3Qgc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhJiBhcmdzLCAK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b2lkKiBhdXgp OwotIAotIC8vIFZhcmlhbnRzIG9mIHRoZSBhYm92ZSBmdW5jdGlvbnMgZm9yIHVzZSB3aXRoIGJw Zl9kc2wuCi0gU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBDcmFzaFNJR1NZUygp OwotQEAgLTcyLDYgKzc2LDcgQEAgU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBD cmFzaAotIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgQ3Jhc2hTSUdTWVNGdXRl eCgpOwotIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgQ3Jhc2hTSUdTWVNQdHJh Y2UoKTsKLSBTQU5EQk9YX0VYUE9SVCBicGZfZHNsOjpSZXN1bHRFeHByIFJld3JpdGVTY2hlZFNJ R1NZUygpOwotK1NBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmV3cml0ZUZzdGF0 YXRTSUdTWVMoKTsKLSAKLSAvLyBBbGxvY2F0ZXMgYSBjcmFzaCBrZXkgc28gdGhhdCBTZWNjb21w IGluZm9ybWF0aW9uIGNhbiBiZSByZWNvcmRlZC4KLSB2b2lkIEFsbG9jYXRlQ3Jhc2hLZXlzKCk7 Ci1kaWZmIC11cCBjaHJvbWl1bS04OC4wLjQzMjQuOTYvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9z eXNjYWxsX3dyYXBwZXJzLmNjLmZzdGF0Zml4IGNocm9taXVtLTg4LjAuNDMyNC45Ni9zYW5kYm94 L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLS0tLSBzYW5kYm94L2xpbnV4L3Nl cnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MuZnN0YXRmaXgJMjAyMS0wMS0yNSAxMDoxODo1My4z MDcxNDEzMTEgLTA1MDAKLSsrKyBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBl cnMuY2MJMjAyMS0wMS0yNSAxMDoxOTo0Ni45ODIzNTUyOTMgLTA1MDAKLUBAIC0yNjEsNCArMjYx LDEzIEBAIGludCBzeXNfc2lnYWN0aW9uKGludCBzaWdudW0sCi0gCi0gI2VuZGlmICAvLyBkZWZp bmVkKE1FTU9SWV9TQU5JVElaRVIpCi0gCi0rU0FOREJPWF9FWFBPUlQgaW50IHN5c19mc3RhdDY0 KGludCBmZCwgc3RydWN0IHN0YXQ2NCAqYnVmKQotK3sKLSsjaWYgZGVmaW5lZChfX05SX2ZzdGF0 NjQpCi0rICAgIHJldHVybiBzeXNjYWxsKF9fTlJfZnN0YXQ2NCwgZmQsIGJ1Zik7Ci0rI2Vsc2UK LSsgICAgcmV0dXJuIHN5c2NhbGwoX19OUl9mc3RhdCwgZmQsIGJ1Zik7Ci0rI2VuZGlmCi0rfQot KwotIH0gIC8vIG5hbWVzcGFjZSBzYW5kYm94Ci1kaWZmIC11cCBjaHJvbWl1bS04OC4wLjQzMjQu OTYvc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmguZnN0YXRmaXggY2hy b21pdW0tODguMC40MzI0Ljk2L3NhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFwcGVy cy5oCi0tLS0gc2FuZGJveC9saW51eC9zZXJ2aWNlcy9zeXNjYWxsX3dyYXBwZXJzLmguZnN0YXRm aXgJMjAyMS0wMS0yNSAxMDoxOTo1My4xMTUzNzk3NDEgLTA1MDAKLSsrKyBzYW5kYm94L2xpbnV4 L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuaAkyMDIxLTAxLTI1IDEwOjIwOjQ1LjQ4NTU4ODQy MSAtMDUwMAotQEAgLTE3LDYgKzE3LDcgQEAgc3RydWN0IHNvY2tfZnByb2c7Ci0gc3RydWN0IHJs aW1pdDY0OwotIHN0cnVjdCBjYXBfaGRyOwotIHN0cnVjdCBjYXBfZGF0YTsKLStzdHJ1Y3Qgc3Rh dDY0OwotIAotIG5hbWVzcGFjZSBzYW5kYm94IHsKLSAKLUBAIC04NCw2ICs4NSw5IEBAIFNBTkRC T1hfRVhQT1JUIGludCBzeXNfc2lnYWN0aW9uKGludCBzaWcKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBjb25zdCBzdHJ1Y3Qgc2lnYWN0aW9uKiBhY3QsCi0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNpZ2FjdGlvbiogb2xkYWN0KTsKLSAKLSsvLyBS ZWNlbnQgZ2xpYmMgcmV3cml0ZXMgZnN0YXQgdG8gZnN0YXRhdC4KLStTQU5EQk9YX0VYUE9SVCBp bnQgc3lzX2ZzdGF0NjQoaW50IGZkLCBzdHJ1Y3Qgc3RhdDY0ICpidWYpOwotKwotIH0gIC8vIG5h bWVzcGFjZSBzYW5kYm94Ci0gCi0gI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NFUlZJQ0VTX1NZ U0NBTExfV1JBUFBFUlNfSF8KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9j aHJvbWl1bS04OC1pZGVvZ3JhcGhpY1NwYWNlQ2hhcmFjdGVyLnBhdGNoIGIvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWlkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIucGF0Y2gK ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM4YTExNDIzYjJkLi4wMDAwMDAwMDAwMAot LS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtaWRlb2dyYXBoaWNTcGFj ZUNoYXJhY3Rlci5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLUZyb20gNzVm Zjg4MmJiNWYyZmNkMTQ0MzFlNjVmYTYzOGFlNzJiZGI0NzA4NiBNb24gU2VwIDE3IDAwOjAwOjAw IDIwMDEKLUZyb206IFN0ZXBoYW4gSGFydG1hbm4gPHN0aGEwOUBnb29nbGVtYWlsLmNvbT4KLURh dGU6IFN1biwgMTUgTm92IDIwMjAgMTQ6MzE6MjMgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gZml4 IGlkZW9ncmFwaGljU3BhY2VDaGFyYWN0ZXIgY29uc3RhbnQgZm9yIHN5c3RlbSBpY3UKLQotaHR0 cHM6Ly9jaHJvbWl1bS1yZXZpZXcuZ29vZ2xlc291cmNlLmNvbS9jL2Nocm9taXVtL3NyYy8rLzE2 ODc0MTEKLXJlbmFtZWQgaWRlb2dyYXBoaWNTcGFjZUNoYXJhY3RlciB0byBrSWRlb2dyYXBoaWNT cGFjZUNoYXJhY3Rlci4KLS0tLQotIHRoaXJkX3BhcnR5L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3Jt L3d0Zi90ZXh0L3RleHRfY29kZWNfaWN1LmNjIHwgMiArLQotIDEgZmlsZSBjaGFuZ2VkLCAxIGlu c2VydGlvbigrKSwgMSBkZWxldGlvbigtKQotCi1kaWZmIC0tZ2l0IGEvdGhpcmRfcGFydHkvYmxp bmsvcmVuZGVyZXIvcGxhdGZvcm0vd3RmL3RleHQvdGV4dF9jb2RlY19pY3UuY2MgYi90aGlyZF9w YXJ0eS9ibGluay9yZW5kZXJlci9wbGF0Zm9ybS93dGYvdGV4dC90ZXh0X2NvZGVjX2ljdS5jYwot aW5kZXggZmI4YWIwNS4uNWQ0ZWExMyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9ibGluay9yZW5k ZXJlci9wbGF0Zm9ybS93dGYvdGV4dC90ZXh0X2NvZGVjX2ljdS5jYwotKysrIHRoaXJkX3BhcnR5 L2JsaW5rL3JlbmRlcmVyL3BsYXRmb3JtL3d0Zi90ZXh0L3RleHRfY29kZWNfaWN1LmNjCi1AQCAt NDMyLDcgKzQzMiw3IEBAIFN0cmluZyBUZXh0Q29kZWNJQ1U6OkRlY29kZShjb25zdCBjaGFyKiBi eXRlcywKLSAgIC8vIElDVSBkZWNvZGVzIGl0IGFzIFUrRTVFNS4KLSAgIGlmICghc3RyY21wKGVu Y29kaW5nXy5HZXROYW1lKCksICJHQksiKSkgewotICAgICBpZiAoRXF1YWxJZ25vcmluZ0FTQ0lJ Q2FzZShlbmNvZGluZ18uR2V0TmFtZSgpLCAiZ2IxODAzMCIpKQotLSAgICAgIHJlc3VsdFN0cmlu Zy5SZXBsYWNlKDB4RTVFNSwgaWRlb2dyYXBoaWNTcGFjZUNoYXJhY3Rlcik7Ci0rICAgICAgcmVz dWx0U3RyaW5nLlJlcGxhY2UoMHhFNUU1LCBrSWRlb2dyYXBoaWNTcGFjZUNoYXJhY3Rlcik7Ci0g ICAgIC8vIE1ha2UgR0JLIGNvbXBsaWFudCB0byB0aGUgZW5jb2Rpbmcgc3BlYyBhbmQgYWxpZ24g d2l0aCBHQjE4MDMwCi0gICAgIHJlc3VsdFN0cmluZy5SZXBsYWNlKDB4MDFGOSwgMHhFN0M4KTsK LSAgICAgLy8gRklYTUU6IE9uY2UgaHR0cHM6Ly93d3cudzMub3JnL0J1Z3MvUHVibGljL3Nob3df YnVnLmNnaT9pZD0yODc0MCNjMwotLS0gCi0yLjI2LjIKLQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg4LWl0eXAtaW5jbHVkZS5wYXRjaCBiL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC1pdHlwLWluY2x1ZGUucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM1NGI2ZmZmZDU0Li4wMDAwMDAwMDAwMAotLS0gYS9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21pdW0tODgtaXR5cC1pbmNsdWRlLnBhdGNoCisrKyAv ZGV2L251bGwKQEAgLTEsMjUgKzAsMCBAQAotRnJvbSBiYzM4M2E1ZGQ3ZmE4ZjJiNTM1ZjI4ODE1 ZmQ2OTMyZmJjMGQyYTQ1IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQotRnJvbTogU3RlcGhhbiBI YXJ0bWFubiA8c3RoYTA5QGdvb2dsZW1haWwuY29tPgotRGF0ZTogV2VkLCAyOCBPY3QgMjAyMCAx NjowMDozNSArMDAwMAotU3ViamVjdDogW1BBVENIXSBJV1lVOiBpbmNsdWRlIHN0ZGRlZi5oIGZv ciBzaXplX3QKLQotLS0tCi0gdGhpcmRfcGFydHkvZGF3bi9zcmMvY29tbW9uL2l0eXBfYXJyYXku aCB8IDIgKysKLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNlcnRpb25zKCspCi0KLWRpZmYgLS1naXQg YS90aGlyZF9wYXJ0eS9kYXduL3NyYy9jb21tb24vaXR5cF9hcnJheS5oIGIvdGhpcmRfcGFydHkv ZGF3bi9zcmMvY29tbW9uL2l0eXBfYXJyYXkuaAotaW5kZXggNDhlMDgwZi4uYzc4NDE5OCAxMDA2 NDQKLS0tLSB0aGlyZF9wYXJ0eS9kYXduL3NyYy9jb21tb24vaXR5cF9hcnJheS5oCi0rKysgdGhp cmRfcGFydHkvZGF3bi9zcmMvY29tbW9uL2l0eXBfYXJyYXkuaAotQEAgLTIxLDYgKzIxLDggQEAK LSAjaW5jbHVkZSA8YXJyYXk+Ci0gI2luY2x1ZGUgPHR5cGVfdHJhaXRzPgotIAotKyNpbmNsdWRl IDxzdGRkZWYuaD4KLSsKLSBuYW1lc3BhY2UgaXR5cCB7Ci0gCi0gICAgIC8vIGl0eXA6OmFycmF5 IGlzIGEgaGVscGVyIGNsYXNzIHRoYXQgd3JhcHMgc3RkOjphcnJheSB3aXRoIHRoZSByZXN0cmlj dGlvbiB0aGF0Ci0tLSAKLTIuMjYuMgotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvY2hyb21pdW0tODgtdmFhcGktYXR0cmlidXRlLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL2Nocm9taXVtLTg4LXZhYXBpLWF0dHJpYnV0ZS5wYXRjaApkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggZTQxNjFhZjQ1YzcuLjAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mv Y2hyb21pdW0vcGF0Y2hlcy9jaHJvbWl1bS04OC12YWFwaS1hdHRyaWJ1dGUucGF0Y2gKKysrIC9k ZXYvbnVsbApAQCAtMSwzOSArMCwwIEBACi1Gcm9tIDRmNDYwNDg3N2YzYjY2NmFjN2EzNzNhZTQ0 M2UzYzM3OTU0MjQ1NjkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCi1Gcm9tOiBTdGVwaGFuIEhh cnRtYW5uIDxzdGhhMDlAZ29vZ2xlbWFpbC5jb20+Ci1EYXRlOiBGcmksIDYgTm92IDIwMjAgMTE6 MTg6NDIgKzAwMDAKLVN1YmplY3Q6IFtQQVRDSF0gR0NDOiBmaXggYXR0cmlidXRlIG9uIGZ1bmN0 aW9uIGRlZmluaXRpb24KLQotR0NDIGRvZXMgbm90IGFjY2VwdCBhdHRyaWJ1dGVzIGF0IHRoZSBl bmQgZm9yIGZ1bmN0aW9uIGRlZmluaXRpb25zLgotU29sdXRpb24gaXMgdG8gbW92ZSBpdCBiZWZv cmUgZnVuY3Rpb24gbmFtZS4gT3RoZXJ3aXNlIEdDQyBmYWlscyBsaWtlCi10aGlzOgotCi0uLi8u Li9iYXNlL2NvbXBpbGVyX3NwZWNpZmljLmg6OTc6Mjg6IGVycm9yOiBhdHRyaWJ1dGVzIGFyZSBu b3QgYWxsb3dlZAotb24gYSBmdW5jdGlvbi1kZWZpbml0aW9uCi0gICA5NyB8ICNkZWZpbmUgV0FS Tl9VTlVTRURfUkVTVUxUIF9fYXR0cmlidXRlX18oKHdhcm5fdW51c2VkX3Jlc3VsdCkpCi0gICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KLQkgLi4vLi4v bWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuaDozMjI6MzY6IG5vdGU6IGluCi0JIGV4cGFu c2lvbiBvZiBtYWNybyAnV0FSTl9VTlVTRURfUkVTVUxUJwotCSAgIDMyMiB8ICAgICAgICAgICAg ICAgICAgICAgY29uc3QgVCogZGF0YSkgV0FSTl9VTlVTRURfUkVTVUxUIHsKLQkgICAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fgotLS0t Ci0gbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuaCB8IDQgKystLQotIDEgZmlsZSBjaGFu Z2VkLCAyIGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCi0KLWRpZmYgLS1naXQgYS9tZWRp YS9ncHUvdmFhcGkvdmFhcGlfd3JhcHBlci5oIGIvbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBw ZXIuaAotaW5kZXggZmQxZmQ4Mi4uZGVlZGExZiAxMDA2NDQKLS0tLSBtZWRpYS9ncHUvdmFhcGkv dmFhcGlfd3JhcHBlci5oCi0rKysgbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3dyYXBwZXIuaAotQEAg LTMxOCw4ICszMTgsOCBAQCBjbGFzcyBNRURJQV9HUFVfRVhQT1JUIFZhYXBpV3JhcHBlcgotICAg Ly8gQ29udmVuaWVudCB0ZW1wbGF0aXplZCB2ZXJzaW9uIG9mIFN1Ym1pdEJ1ZmZlcigpIHdoZXJl IHxzaXplfCBpcyBkZWR1Y2VkIHRvCi0gICAvLyBiZSB0aGUgc2l6ZSBvZiB0aGUgdHlwZSBvZiB8 KmRhdGF8LgotICAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+Ci0tICBib29sIFN1Ym1pdEJ1ZmZlcihW QUJ1ZmZlclR5cGUgdmFfYnVmZmVyX3R5cGUsCi0tICAgICAgICAgICAgICAgICAgICBjb25zdCBU KiBkYXRhKSBXQVJOX1VOVVNFRF9SRVNVTFQgewotKyAgYm9vbCBXQVJOX1VOVVNFRF9SRVNVTFQg U3VibWl0QnVmZmVyKFZBQnVmZmVyVHlwZSB2YV9idWZmZXJfdHlwZSwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBUKiBkYXRhKSB7Ci0gICAgIHJldHVybiBT dWJtaXRCdWZmZXIodmFfYnVmZmVyX3R5cGUsIHNpemVvZihUKSwgZGF0YSk7Ci0gICB9Ci0gICAv LyBCYXRjaC12ZXJzaW9uIG9mIFN1Ym1pdEJ1ZmZlcigpLCB3aGVyZSB0aGUgbG9jayBmb3IgYWNj ZXNzaW5nIGxpYnZhIGlzCi0tLSAKLTIuMjYuMgotCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvY2hyb21pdW0tODktQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNrLnBh dGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg5LUNvbXBvc2l0b3JGcmFt ZVJlcG9ydGVyLWRjaGVjay5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMC4uZDMxYWQ3ZmVjNDgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3Bh dGNoZXMvY2hyb21pdW0tODktQ29tcG9zaXRvckZyYW1lUmVwb3J0ZXItZGNoZWNrLnBhdGNoCkBA IC0wLDAgKzEsMTEgQEAKKy0tLSBuZXQvdGhpcmRfcGFydHkvcXVpY2hlL3NyYy9xdWljL2NvcmUv cXVpY19wYXRoX3ZhbGlkYXRvci5jYy5vcmlnCTIwMjEtMDMtMDIgMTg6NDg6MDYuMDAwMDAwMDAw ICswMTAwCisrKysgbmV0L3RoaXJkX3BhcnR5L3F1aWNoZS9zcmMvcXVpYy9jb3JlL3F1aWNfcGF0 aF92YWxpZGF0b3IuY2MJMjAyMS0wMy0wMyAxMzoxNzo1Ni42MjQyODE0NzUgKzAxMDAKK0BAIC02 OCw3ICs2OCw3IEBACisgdm9pZCBRdWljUGF0aFZhbGlkYXRvcjo6U3RhcnRQYXRoVmFsaWRhdGlv bigKKyAgICAgc3RkOjp1bmlxdWVfcHRyPFF1aWNQYXRoVmFsaWRhdGlvbkNvbnRleHQ+IGNvbnRl eHQsCisgICAgIHN0ZDo6dW5pcXVlX3B0cjxSZXN1bHREZWxlZ2F0ZT4gcmVzdWx0X2RlbGVnYXRl KSB7CistICBEQ0hFQ0tfTkUobnVsbHB0ciwgY29udGV4dCk7CisrICBEQ0hFQ0soY29udGV4dCk7 CisgICBRVUlDX0RMT0coSU5GTykgPDwgIlN0YXJ0IHZhbGlkYXRpbmcgcGF0aCAiIDw8ICpjb250 ZXh0CisgICAgICAgICAgICAgICAgICAgPDwgIiB2aWEgd3JpdGVyOiAiIDw8IGNvbnRleHQtPldy aXRlclRvVXNlKCk7CisgICBpZiAocGF0aF9jb250ZXh0XyAhPSBudWxscHRyKSB7CmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbGliY19tYWxsb2MucGF0Y2ggYi9zcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvbGliY19tYWxsb2MucGF0Y2gKaW5kZXggZWRhMTFlYzg2NjMuLmY4 ZDhkNjZkYTE4IDEwMDY0NAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbGliY19tYWxs b2MucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2xpYmNfbWFsbG9jLnBhdGNo CkBAIC0xLDI2ICsxLDExIEBACi0tLS0gYmFzZS9wcm9jZXNzL21lbW9yeV9saW51eC5jYy5vcmln CTIwMTctMDktMTUgMDg6NDE6NDMuMDAwMDAwMDAwICswMDAwCi0rKysgYmFzZS9wcm9jZXNzL21l bW9yeV9saW51eC5jYwkyMDE3LTA5LTE1IDA4OjQ0OjM5LjgwNDk5NTQ2OSArMDAwMAotQEAgLTIx LDYgKzIxLDEyIEBACi0gI2luY2x1ZGUgInRoaXJkX3BhcnR5L3RjbWFsbG9jL2Nocm9taXVtL3Ny Yy9ncGVyZnRvb2xzL3RjbWFsbG9jLmgiCi0gI2VuZGlmCi0gCi0rI2lmIGRlZmluZWQoTElCQ19H TElCQykKLStleHRlcm4gIkMiIHsKLStleHRlcm4gdm9pZCAqX19saWJjX21hbGxvYyhzaXplX3Qg c2l6ZSk7Ci0rfQotKyNlbmRpZgotKwotIG5hbWVzcGFjZSBiYXNlIHsKLSAKLSBzaXplX3QgZ19v b21fc2l6ZSA9IDBVOwotLS0tIGJhc2UvcHJvY2Vzcy9tZW1vcnlfbGludXguY2Mub3JpZwkyMDIw LTA4LTMwIDE0OjE4OjM1LjQwMTEzMjU5MyAtMDQwMAotKysrIGJhc2UvcHJvY2Vzcy9tZW1vcnlf bGludXguY2MJMjAyMC0wOC0zMCAxNDoxOTowOC4wMzAxOTkxODkgLTA0MDAKLUBAIC0xNDEsNyAr MTQxLDcgQEAKKy0tLSBiYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4LmNjLm9yaWcJMjAyMS0wMy0w MiAxODo0NDo1OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBiYXNlL3Byb2Nlc3MvbWVtb3J5X2xpbnV4 LmNjCTIwMjEtMDMtMDMgMTI6MDU6NTcuOTUyMjk2OTg0ICswMTAwCitAQCAtMTUxLDcgKzE1MSw3 IEBACiAgICAgICghZGVmaW5lZChMSUJDX0dMSUJDKSAmJiAhQlVJTERGTEFHKFVTRV9UQ01BTExP QykpCiAgICAqcmVzdWx0ID0gbWFsbG9jKHNpemUpOwogICNlbGlmIGRlZmluZWQoTElCQ19HTElC QykgJiYgIUJVSUxERkxBRyhVU0VfVENNQUxMT0MpCiAtICAqcmVzdWx0ID0gX19saWJjX21hbGxv YyhzaXplKTsKLSsgICpyZXN1bHQgPSA6Ol9fbGliY19tYWxsb2Moc2l6ZSk7CisrICAqcmVzdWx0 ID0gbWFsbG9jKHNpemUpOwogICNlbGlmIEJVSUxERkxBRyhVU0VfVENNQUxMT0MpCiAgICAqcmVz dWx0ID0gdGNfbWFsbG9jX3NraXBfbmV3X2hhbmRsZXIoc2l6ZSk7CiAgI2VuZGlmCmRpZmYgLS1n aXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbGx2bS1yZW1vdmUtdW5zdXBwb3J0ZWQtY29t cGlsZXItd2FybmluZ3MucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbGx2bS1yZW1v dmUtdW5zdXBwb3J0ZWQtY29tcGlsZXItd2FybmluZ3MucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDMwMTZiMDY1MjEyLi4wMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvbGx2bS1yZW1vdmUtdW5zdXBwb3J0ZWQtY29tcGlsZXItd2FybmluZ3MucGF0 Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwyNiArMCwwIEBACi0tLS0gYnVpbGQvY29uZmlnL2NvbXBp bGVyL0JVSUxELmduLm9yaWcJMjAyMS0wMS0yMCAwOTowMTo0NC4zNjIxMTQzMTEgLTA1MDAKLSsr KyBidWlsZC9jb25maWcvY29tcGlsZXIvQlVJTEQuZ24JMjAyMS0wMS0yMCAwOTowMzo0MS44ODAy MzIyNDggLTA1MDAKLUBAIC0xNTM0LDkgKzE1MzQsNiBAQAotIAotICAgICAgICAgICAjIFRPRE8o aHR0cHM6Ly9jcmJ1Zy5jb20vMTAyODExMCk6IEV2YWx1YXRlIGFuZCBwb3NzaWJsZSBlbmFibGUu Ci0gICAgICAgICAgICItV25vLWRlcHJlY2F0ZWQtY29weSIsCi0tCi0tICAgICAgICAgICMgVE9E TyhodHRwczovL2NyYnVnLmNvbS8xMDUwMjgxKTogQ2xlYW4gdXAsIGVuYWJsZS4KLS0gICAgICAg ICAgIi1Xbm8tbm9uLWMtdHlwZWRlZi1mb3ItbGlua2FnZSIsCi0gICAgICAgICBdCi0gCi0gICAg ICAgICBjZmxhZ3NfYyArPSBbCi1AQCAtMTU0OCwxMyArMTU0NSw2IEBACi0gICAgICAgICAgICMg VE9ETyhodHRwczovL2NyYnVnLmNvbS8xMTQzNzAwKTogQ2xlYW4gdXAgYW5kIHJlLWVuYWJsZS4K LSAgICAgICAgICAgY2ZsYWdzX29iamMgPSBbICItV25vLWdudS1mb2xkaW5nLWNvbnN0YW50IiBd Ci0gICAgICAgICB9Ci0tCi0tICAgICAgICBpZiAoZW5hYmxlX3dtYXhfdG9rZW5zKSB7Ci0tICAg ICAgICAgIGNmbGFncyArPSBbICItV21heC10b2tlbnMiIF0KLS0gICAgICAgIH0gZWxzZSB7Ci0t ICAgICAgICAgICMgVE9ETyhodHRwczovL2NyYnVnLmNvbS8xMDQ5NTY5KTogUmVtb3ZlIGFmdGVy IENsYW5nIDg3YjIzNWRiLgotLSAgICAgICAgICBjZmxhZ3MgKz0gWyAiLVduby1tYXgtdG9rZW5z IiBdCi0tICAgICAgICB9Ci0gICAgICAgfQotICAgICB9Ci0gICB9CmRpZmYgLS1naXQgYS9zcmNw a2dzL2Nocm9taXVtL3BhdGNoZXMvbXVzbC12OC1tb25vdG9uaWMtcHRocmVhZC1jb250X3RpbWVk d2FpdC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9tdXNsLXY4LW1vbm90b25pYy1w dGhyZWFkLWNvbnRfdGltZWR3YWl0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAzM2E4ZWEzMmM5Yy4uMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L211c2wtdjgtbW9ub3RvbmljLXB0aHJlYWQtY29udF90aW1lZHdhaXQucGF0Y2gKKysrIC9kZXYv bnVsbApAQCAtMSwyNCArMCwwIEBACi1Vc2UgbW9ub3RvbmljIGNsb2NrIGZvciBwdGhyZWFkX2Nv bmRfdGltZWR3YWl0IHdpdGggbXVzbCB0b28uCi0KLWRpZmYgLS1naXQgYS92OC9zcmMvYmFzZS9w bGF0Zm9ybS9jb25kaXRpb24tdmFyaWFibGUuY2MgYi92OC9zcmMvYmFzZS9wbGF0Zm9ybS9jb25k aXRpb24tdmFyaWFibGUuY2MKLWluZGV4IDVlYTcwODMuLmMxMzAyN2UgMTAwNjQ0Ci0tLS0gLi92 OC9zcmMvYmFzZS9wbGF0Zm9ybS9jb25kaXRpb24tdmFyaWFibGUuY2MKLSsrKyAuL3Y4L3NyYy9i YXNlL3BsYXRmb3JtL2NvbmRpdGlvbi12YXJpYWJsZS5jYwotQEAgLTE2LDcgKzE2LDcgQEAgbmFt ZXNwYWNlIGJhc2UgewotIAotIENvbmRpdGlvblZhcmlhYmxlOjpDb25kaXRpb25WYXJpYWJsZSgp IHsKLSAjaWYgKFY4X09TX0ZSRUVCU0QgfHwgVjhfT1NfTkVUQlNEIHx8IFY4X09TX09QRU5CU0Qg fHwgXAotLSAgICAgKFY4X09TX0xJTlVYICYmIFY4X0xJQkNfR0xJQkMpKQotKyAgICAgVjhfT1Nf TElOVVgpCi0gICAvLyBPbiBGcmVlL05ldC9PcGVuQlNEIGFuZCBMaW51eCB3aXRoIGdsaWJjIHdl IGNhbiBjaGFuZ2UgdGhlIHRpbWUKLSAgIC8vIHNvdXJjZSBmb3IgcHRocmVhZF9jb25kX3RpbWVk d2FpdCgpIHRvIHVzZSB0aGUgbW9ub3RvbmljIGNsb2NrLgotICAgcHRocmVhZF9jb25kYXR0cl90 IGF0dHI7Ci1AQCAtOTIsNyArOTIsNyBAQCBib29sIENvbmRpdGlvblZhcmlhYmxlOjpXYWl0Rm9y KE11dGV4KiBtdXRleCwgY29uc3QgVGltZURlbHRhJiByZWxfdGltZSkgewotICAgICAgICZuYXRp dmVfaGFuZGxlXywgJm11dGV4LT5uYXRpdmVfaGFuZGxlKCksICZ0cyk7Ci0gI2Vsc2UKLSAjaWYg KFY4X09TX0ZSRUVCU0QgfHwgVjhfT1NfTkVUQlNEIHx8IFY4X09TX09QRU5CU0QgfHwgXAotLSAg ICAgKFY4X09TX0xJTlVYICYmIFY4X0xJQkNfR0xJQkMpKQotKyAgICAgVjhfT1NfTElOVVgpCi0g ICAvLyBPbiBGcmVlL05ldC9PcGVuQlNEIGFuZCBMaW51eCB3aXRoIGdsaWJjIHdlIGNhbiBjaGFu Z2UgdGhlIHRpbWUKLSAgIC8vIHNvdXJjZSBmb3IgcHRocmVhZF9jb25kX3RpbWVkd2FpdCgpIHRv IHVzZSB0aGUgbW9ub3RvbmljIGNsb2NrLgotICAgcmVzdWx0ID0gY2xvY2tfZ2V0dGltZShDTE9D S19NT05PVE9OSUMsICZ0cyk7CmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv bm8tZXhlY2luZm8ucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tZXhlY2luZm8u cGF0Y2gKaW5kZXggMzg2OTk3ZThlZDEuLjM1NmE3NjE5YWM5IDEwMDY0NAotLS0gYS9zcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvbm8tZXhlY2luZm8ucGF0Y2gKKysrIGIvc3JjcGtncy9jaHJvbWl1 bS9wYXRjaGVzL25vLWV4ZWNpbmZvLnBhdGNoCkBAIC0xLDUgKzEsNSBAQAotLS0tIGJhc2UvZGVi dWcvc3RhY2tfdHJhY2VfcG9zaXguY2Mub3JpZwkyMDE5LTA1LTE0IDE0OjQ5OjQ0LjAwMDAwMDAw MCAtMDQwMAotKysrIGJhc2UvZGVidWcvc3RhY2tfdHJhY2VfcG9zaXguY2MJMjAxOS0wNy0wMiAx MDo0Mzo0My40OTAwNDUwMTMgLTA0MDAKKy0tLSBiYXNlL2RlYnVnL3N0YWNrX3RyYWNlX3Bvc2l4 LmNjLm9yaWcJMjAyMS0wMy0wMiAxODo0NDo1OC4wMDAwMDAwMDAgKzAxMDAKKysrKyBiYXNlL2Rl YnVnL3N0YWNrX3RyYWNlX3Bvc2l4LmNjCTIwMjEtMDMtMDMgMTY6NDY6MzcuODI4ODgzOTczICsw MTAwCiBAQCAtMjcsNyArMjcsNyBAQAogICNpZiAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQogICNp bmNsdWRlIDxjeHhhYmkuaD4KQEAgLTksNyArOSw3IEBACiAgI2luY2x1ZGUgPGV4ZWNpbmZvLmg+ CiAgI2VuZGlmCiAgCi1AQCAtODYsNyArODYsNyBAQAorQEAgLTg4LDcgKzg4LDcgQEAKICAgIC8v IE5vdGU6IGNvZGUgaW4gdGhpcyBmdW5jdGlvbiBpcyBOT1QgYXN5bmMtc2lnbmFsIHNhZmUgKHN0 ZDo6c3RyaW5nIHVzZXMKICAgIC8vIG1hbGxvYyBpbnRlcm5hbGx5KS4KICAKQEAgLTE4LDcgKzE4 LDcgQEAKICAgIHN0ZDo6c3RyaW5nOjpzaXplX3R5cGUgc2VhcmNoX2Zyb20gPSAwOwogICAgd2hp bGUgKHNlYXJjaF9mcm9tIDwgdGV4dC0+c2l6ZSgpKSB7CiAgICAgIC8vIExvb2sgZm9yIHRoZSBz dGFydCBvZiBhIG1hbmdsZWQgc3ltYm9sLCBmcm9tIHNlYXJjaF9mcm9tLgotQEAgLTEyMSw3ICsx MjEsNyBAQAorQEAgLTEyMyw3ICsxMjMsNyBAQAogICAgICAgIHNlYXJjaF9mcm9tID0gbWFuZ2xl ZF9zdGFydCArIDI7CiAgICAgIH0KICAgIH0KQEAgLTI3LDcgKzI3LDcgQEAKICB9CiAgI2VuZGlm ICAvLyAhZGVmaW5lZChVU0VfU1lNQk9MSVpFKQogIAotQEAgLTEzMyw3ICsxMzMsNyBAQAorQEAg LTEzNSw3ICsxMzUsNyBAQAogICAgdmlydHVhbCB+QmFja3RyYWNlT3V0cHV0SGFuZGxlcigpID0g ZGVmYXVsdDsKICB9OwogIApAQCAtMzYsNyArMzYsNyBAQAogIHZvaWQgT3V0cHV0UG9pbnRlcih2 b2lkKiBwb2ludGVyLCBCYWNrdHJhY2VPdXRwdXRIYW5kbGVyKiBoYW5kbGVyKSB7CiAgICAvLyBU aGlzIHNob3VsZCBiZSBtb3JlIHRoYW4gZW5vdWdoIHRvIHN0b3JlIGEgNjQtYml0IG51bWJlciBp biBoZXg6CiAgICAvLyAxNiBoZXggZGlnaXRzICsgMSBmb3IgbnVsbC10ZXJtaW5hdG9yLgotQEAg LTIxNiw3ICsyMTYsNyBAQAorQEAgLTIxOCw3ICsyMTgsNyBAQAogICAgfQogICNlbmRpZiAgLy8g ZGVmaW5lZChVU0VfU1lNQk9MSVpFKQogIH0KQEAgLTQ1LDcgKzQ1LDcgQEAKICAKICB2b2lkIFBy aW50VG9TdGRlcnIoY29uc3QgY2hhciogb3V0cHV0KSB7CiAgICAvLyBOT1RFOiBUaGlzIGNvZGUg TVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKLUBAIC04 MTIsNyArODEyLDcgQEAKK0BAIC04MjcsNyArODI3LDcgQEAKICAgIC8vIE5PVEU6IFRoaXMgY29k ZSBNVVNUIGJlIGFzeW5jLXNpZ25hbCBzYWZlIChpdCdzIHVzZWQgYnkgaW4tcHJvY2VzcwogICAg Ly8gc3RhY2sgZHVtcGluZyBzaWduYWwgaGFuZGxlcikuIE5PIG1hbGxvYyBvciBzdGRpbyBpcyBh bGxvd2VkIGhlcmUuCiAgCkBAIC01NCw3ICs1NCw3IEBACiAgICAvLyBUaG91Z2ggdGhlIGJhY2t0 cmFjZSBBUEkgbWFuIHBhZ2UgZG9lcyBub3QgbGlzdCBhbnkgcG9zc2libGUgbmVnYXRpdmUKICAg IC8vIHJldHVybiB2YWx1ZXMsIHdlIHRha2Ugbm8gY2hhbmNlLgogICAgcmV0dXJuIGJhc2U6OnNh dHVyYXRlZF9jYXN0PHNpemVfdD4oYmFja3RyYWNlKHRyYWNlLCBjb3VudCkpOwotQEAgLTgyNSwx MyArODI1LDEzIEBACitAQCAtODQwLDEzICs4NDAsMTMgQEAKICAvLyBOT1RFOiBUaGlzIGNvZGUg TVVTVCBiZSBhc3luYy1zaWduYWwgc2FmZSAoaXQncyB1c2VkIGJ5IGluLXByb2Nlc3MKICAvLyBz dGFjayBkdW1waW5nIHNpZ25hbCBoYW5kbGVyKS4gTk8gbWFsbG9jIG9yIHN0ZGlvIGlzIGFsbG93 ZWQgaGVyZS4KICAKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9uby1nZXRj b250ZXh0LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL25vLWdldGNvbnRleHQucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyYTQ5ODczNGM5Li4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvbm8tZ2V0Y29udGV4dC5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuY2Mub3JpZwky MDE1LTEyLTA2IDA5OjU5OjU1LjU1NDUzNjY0NiArMDEwMAotKysrIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5j YwkyMDE1LTEyLTA2IDEwOjAxOjE2LjgxODIzODAzNSArMDEwMAotQEAgLTQ3Nyw3ICs0NzcsOSBA QCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OlNpbXVsYXRlU2lnbmFsRGVsCi0gICBzaWdpbmZvLnNp X2NvZGUgPSBTSV9VU0VSOwotICAgc2lnaW5mby5zaV9waWQgPSBnZXRwaWQoKTsKLSAgIHVjb250 ZXh0X3QgY29udGV4dDsKLSsjaWYgZGVmaW5lZChfX0dMSUJDX18pCi0gICBnZXRjb250ZXh0KCZj b250ZXh0KTsKLSsjZW5kaWYKLSAgIHJldHVybiBIYW5kbGVTaWduYWwoc2lnLCAmc2lnaW5mbywg JmNvbnRleHQpOwotIH0KLSAKLUBAIC02NDcsOSArNjQ5LDE0IEBAIGJvb2wgRXhjZXB0aW9uSGFu ZGxlcjo6V3JpdGVNaW5pZHVtcCgpIHsKLSAgIHN5c19wcmN0bChQUl9TRVRfRFVNUEFCTEUsIDEs IDAsIDAsIDApOwotIAotICAgQ3Jhc2hDb250ZXh0IGNvbnRleHQ7Ci0rCi0rI2lmIGRlZmluZWQo X19HTElCQ19fKQotICAgaW50IGdldGNvbnRleHRfcmVzdWx0ID0gZ2V0Y29udGV4dCgmY29udGV4 dC5jb250ZXh0KTsKLSAgIGlmIChnZXRjb250ZXh0X3Jlc3VsdCkKLSAgICAgcmV0dXJuIGZhbHNl OwotKyNlbHNlCi0rICByZXR1cm4gZmFsc2U7Ci0rI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX19p Mzg2X18pCi0gICAvLyBJbiBDUFVGaWxsRnJvbVVDb250ZXh0IGluIG1pbmlkdW1wd3JpdGVyLmNj IHRoZSBzdGFjayBwb2ludGVyIGlzIHJldHJpZXZlZApkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJv bWl1bS9wYXRjaGVzL25vLXN0ZC10aW1lLnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L25vLXN0ZC10aW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw Li43ZjM1YzIyZjA4MQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hl cy9uby1zdGQtdGltZS5wYXRjaApAQCAtMCwwICsxLDExIEBACistLS0gdWkvYWNjZXNzaWJpbGl0 eS9heF90cmVlX3NlcmlhbGl6ZXIuaC5vcmlnCTIwMjEtMDMtMDIgMTg6NDY6MDAuMDAwMDAwMDAw ICswMTAwCisrKysgdWkvYWNjZXNzaWJpbGl0eS9heF90cmVlX3NlcmlhbGl6ZXIuaAkyMDIxLTAz LTAzIDE0OjAzOjQzLjkyNjE2MDMzMyArMDEwMAorQEAgLTc0Niw3ICs3NDYsNyBAQAorICNlbmRp ZiAgLy8gZGVmaW5lZChBWF9GQUlMX0ZBU1RfQlVJTEQpCisgICAgICAgICBzdGF0aWMgYm9vbCBo YXNfc2VudF9kdXBlX2lkX2VyciA9IGZhbHNlOworICAgICAgICAgaWYgKCFoYXNfc2VudF9kdXBl X2lkX2VycikgeworLSAgICAgICAgICBzdGQ6OnNyYW5kKHN0ZDo6dGltZShudWxscHRyKSk7ICAv LyB1c2UgY3VycmVudCB0aW1lIGFzIHNlZWQuCisrICAgICAgICAgIHN0ZDo6c3JhbmQodGltZShu dWxscHRyKSk7ICAvLyB1c2UgY3VycmVudCB0aW1lIGFzIHNlZWQuCisgICAgICAgICAgIGlmIChz dGQ6OnJhbmQoKSAlIDUwID09IDApIHsgICAgIC8vIFJvdWdobHkgMiUgb2YgdGhlIHRpbWUuCisg ICAgICAgICAgICAgYmFzZTo6ZGVidWc6OkR1bXBXaXRob3V0Q3Jhc2hpbmcoKTsKKyAgICAgICAg ICAgICBoYXNfc2VudF9kdXBlX2lkX2VyciA9IHRydWU7ICAvLyBPbmx5IHNlbmQgb25jZS4KZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9zYW5kYm94LW1lbWJhcnJpZXIucGF0 Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvc2FuZGJveC1tZW1iYXJyaWVyLnBhdGNoCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMzFhOWY2YTVlOS4uMDAwMDAwMDAwMDAKLS0t IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3NhbmRib3gtbWVtYmFycmllci5wYXRjaAorKysg L2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS0tLSBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgKLUBAIC0xMDYzLDQgKzEwNjMsOCBAQAotICNkZWZp bmUgX19OUl9tZW1mZF9jcmVhdGUgMjc5Ci0gI2VuZGlmCi0gCi0rI2lmICFkZWZpbmVkKF9fTlJf bWVtYmFycmllcikKLSsjZGVmaW5lIF9fTlJfbWVtYmFycmllciAyODMKLSsjZW5kaWYKLSsKLSAj ZW5kaWYgIC8vIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfQVJNNjRfTElOVVhfU1lTQ0FM TFNfSF8KLQotLS0tIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2Nh bGxzLmgKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2FybV9saW51eF9zeXNjYWxs cy5oCi1AQCAtMTM4NSw2ICsxMzg1LDEwIEBACi0gI2RlZmluZSBfX05SX21lbWZkX2NyZWF0ZSAo X19OUl9TWVNDQUxMX0JBU0UrMzg1KQotICNlbmRpZgotIAotKyNpZiAhZGVmaW5lZChfX05SX21l bWJhcnJpZXIpCi0rI2RlZmluZSBfX05SX21lbWJhcnJpZXIgKF9fTlJfU1lTQ0FMTF9CQVNFKzM4 OSkKLSsjZW5kaWYKLSsKLSAvLyBBUk0gcHJpdmF0ZSBzeXNjYWxscy4KLSAjaWYgIWRlZmluZWQo X19BUk1fTlJfQkFTRSkKLSAjZGVmaW5lIF9fQVJNX05SX0JBU0UgKF9fTlJfU1lTQ0FMTF9CQVNF ICsgMHhGMDAwMCkKLQotLS0tIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzMyX2xp bnV4X3N5c2NhbGxzLmgKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl8zMl9s aW51eF9zeXNjYWxscy5oCi1AQCAtMTQyMiw1ICsxNDIyLDkgQEAKLSAjZGVmaW5lIF9fTlJfbWVt ZmRfY3JlYXRlIDM1NgotICNlbmRpZgotIAotKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIp Ci0rI2RlZmluZSBfX05SX21lbWJhcnJpZXIgMzc1Ci0rI2VuZGlmCi0rCi0gI2VuZGlmICAvLyBT QU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1g4Nl8zMl9MSU5VWF9TWVNDQUxMU19IXwotIAot LS0tIHNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMveDg2XzY0X2xpbnV4X3N5c2NhbGxzLmgK LSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3g4Nl82NF9saW51eF9zeXNjYWxscy5o Ci1AQCAtMTI5MCw1ICsxMjkwLDkgQEAKLSAjZGVmaW5lIF9fTlJfbWVtZmRfY3JlYXRlIDMxOQot ICNlbmRpZgotIAotKyNpZiAhZGVmaW5lZChfX05SX21lbWJhcnJpZXIpCi0rI2RlZmluZSBfX05S X21lbWJhcnJpZXIgMzI0Ci0rI2VuZGlmCi0rCi0gI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZ U1RFTV9IRUFERVJTX1g4Nl82NF9MSU5VWF9TWVNDQUxMU19IXwotIAotLS0tIHNhbmRib3gvbGlu dXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLSsrKyBzYW5kYm94L2xpbnV4 L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi1AQCAtMzcwLDYgKzM3MCw3IEBA Ci0gICBzd2l0Y2ggKHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9leGl0OgotICAgICBjYXNlIF9f TlJfZXhpdF9ncm91cDoKLSsgICAgY2FzZSBfX05SX21lbWJhcnJpZXI6Ci0gICAgIGNhc2UgX19O Ul93YWl0NDoKLSAgICAgY2FzZSBfX05SX3dhaXRpZDoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykK ZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy94eHgtcHBjNjRsZS1zdXBwb3J0 LnBhdGNoIGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3h4eC1wcGM2NGxlLXN1cHBvcnQucGF0 Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgwNTc1NWMyMTI1Li4wMDAwMDAwMDAw MAotLS0gYS9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMveHh4LXBwYzY0bGUtc3VwcG9ydC5wYXRj aAorKysgL2Rldi9udWxsCkBAIC0xLDM2NTYgKzAsMCBAQAotY29tbWl0IGU3OTQ0YzE2MmNhMTNi MmMzMGIxODBjMDZmOTE3ZjQ1NjQzYjhjY2EKLUF1dGhvcjogcTY2IDxkYW5pZWxAb2N0YWZvcmdl Lm9yZz4KLURhdGU6ICAgVHVlIEF1ZyA0IDE5OjU3OjQ4IDIwMjAgKzAyMDAKLQotICAgIHBwYzY0 bGUgc3VwcG9ydAotCi1kaWZmIC0tZ2l0IGJ1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5w eSBidWlsZC9kb3dubG9hZF9uYWNsX3Rvb2xjaGFpbnMucHkKLWluZGV4IDI4NmE5MmEyNy4uZWMz NmE4NWQzIDEwMDc1NQotLS0tIGJ1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weQotKysr IGJ1aWxkL2Rvd25sb2FkX25hY2xfdG9vbGNoYWlucy5weQotQEAgLTEzLDYgKzEzLDEwIEBAIGlt cG9ydCBzeXMKLSAKLSAKLSBkZWYgTWFpbihhcmdzKToKLSsgICMgSWYgYGRpc2FibGVfbmFjbD0x YCBpcyBpbiBHWVBfREVGSU5FUywgZXhpdAotKyAgaWYgJ2Rpc2FibGVfbmFjbD0xJyBpbiBvcy5l bnZpcm9uLmdldCgnR1lQX0RFRklORVMnLCAnJyk6Ci0rICAgIHJldHVybiAwCi0rCi0gICBzY3Jp cHRfZGlyID0gb3MucGF0aC5kaXJuYW1lKG9zLnBhdGguYWJzcGF0aChfX2ZpbGVfXykpCi0gICBz cmNfZGlyID0gb3MucGF0aC5kaXJuYW1lKHNjcmlwdF9kaXIpCi0gICBuYWNsX2RpciA9IG9zLnBh dGguam9pbihzcmNfZGlyLCAnbmF0aXZlX2NsaWVudCcpCi1kaWZmIC0tZ2l0IGNocm9tZS9pbnN0 YWxsZXIvbGludXgvQlVJTEQuZ24gY2hyb21lL2luc3RhbGxlci9saW51eC9CVUlMRC5nbgotaW5k ZXggYjEwMWIwY2IyLi45ZmQ1YTc2MTcgMTAwNjQ0Ci0tLS0gY2hyb21lL2luc3RhbGxlci9saW51 eC9CVUlMRC5nbgotKysrIGNocm9tZS9pbnN0YWxsZXIvbGludXgvQlVJTEQuZ24KLUBAIC05Miw4 ICs5Miw2IEBAIHBhY2thZ2luZ19maWxlcyA9IHBhY2thZ2luZ19maWxlc19iaW5hcmllcyArIFsK LSAgICAgICAgICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL3hkZy1taW1lIiwKLSAgICAgICAg ICAgICAgICAgICAgICIkcm9vdF9vdXRfZGlyL3hkZy1zZXR0aW5ncyIsCi0gICAgICAgICAgICAg ICAgICAgICAiJHJvb3Rfb3V0X2Rpci9sb2NhbGVzL2VuLVVTLnBhayIsCi0tICAgICAgICAgICAg ICAgICAgICAiJHJvb3Rfb3V0X2Rpci9NRUlQcmVsb2FkL21hbmlmZXN0Lmpzb24iLAotLSAgICAg ICAgICAgICAgICAgICAgIiRyb290X291dF9kaXIvTUVJUHJlbG9hZC9wcmVsb2FkZWRfZGF0YS5w YiIsCi0gICAgICAgICAgICAgICAgICAgXQotIAotIGFjdGlvbl9mb3JlYWNoKCJjYWxjdWxhdGVf ZGViX2RlcGVuZGVuY2llcyIpIHsKLUBAIC0zMjksNyArMzI3LDYgQEAgZ3JvdXAoImluc3RhbGxl cl9kZXBzIikgewotICAgICAiOnRoZW1lX2ZpbGVzIiwKLSAgICAgIi8vY2hyb21lIiwKLSAgICAg Ii8vY2hyb21lOnBhY2tlZF9yZXNvdXJjZXMiLAotLSAgICAiLy9jaHJvbWUvYnJvd3Nlci9yZXNv dXJjZXMvbWVkaWEvbWVpX3ByZWxvYWQ6Y29tcG9uZW50IiwKLSAgICAgIi8vc2FuZGJveC9saW51 eDpjaHJvbWVfc2FuZGJveCIsCi0gICAgICIvL3RoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L2hhbmRsZXI6Y3Jhc2hwYWRfaGFuZGxlciIsCi0gICBdCi1kaWZmIC0tZ2l0IHNhbmRib3gvZmVh dHVyZXMuZ25pIHNhbmRib3gvZmVhdHVyZXMuZ25pCi1pbmRleCAwOTI4MGQzNWYuLjQyNTE0MTU3 ZiAxMDA2NDQKLS0tLSBzYW5kYm94L2ZlYXR1cmVzLmduaQotKysrIHNhbmRib3gvZmVhdHVyZXMu Z25pCi1AQCAtMTEsNiArMTEsNyBAQCBpbXBvcnQoIi8vYnVpbGQvY29uZmlnL25hY2wvY29uZmln LmduaSIpCi0gdXNlX3NlY2NvbXBfYnBmID0gKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpICYmCi0g ICAgICAgICAgICAgICAgICAgKGN1cnJlbnRfY3B1ID09ICJ4ODYiIHx8IGN1cnJlbnRfY3B1ID09 ICJ4NjQiIHx8Ci0gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRfY3B1ID09ICJhcm0iIHx8IGN1 cnJlbnRfY3B1ID09ICJhcm02NCIgfHwKLS0gICAgICAgICAgICAgICAgICAgY3VycmVudF9jcHUg PT0gIm1pcHNlbCIgfHwgY3VycmVudF9jcHUgPT0gIm1pcHM2NGVsIikKLSsgICAgICAgICAgICAg ICAgICAgY3VycmVudF9jcHUgPT0gIm1pcHNlbCIgfHwgY3VycmVudF9jcHUgPT0gIm1pcHM2NGVs IiB8fAotKyAgICAgICAgICAgICAgICAgICBjdXJyZW50X2NwdSA9PSAicHBjNjQiKQotIAotIHVz ZV9zZWNjb21wX2JwZiA9IHVzZV9zZWNjb21wX2JwZiB8fCBpc19uYWNsX25vbnNmaQotZGlmZiAt LWdpdCBzYW5kYm94L2xpbnV4L0JVSUxELmduIHNhbmRib3gvbGludXgvQlVJTEQuZ24KLWluZGV4 IGMyNzM1MWY5YS4uOTE0MWUxMjM5IDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvQlVJTEQuZ24K LSsrKyBzYW5kYm94L2xpbnV4L0JVSUxELmduCi1AQCAtNDA3LDYgKzQwNyw4IEBAIGNvbXBvbmVu dCgic2FuZGJveF9zZXJ2aWNlcyIpIHsKLSAKLSBzb3VyY2Vfc2V0KCJzYW5kYm94X3NlcnZpY2Vz X2hlYWRlcnMiKSB7Ci0gICBzb3VyY2VzID0gWwotKyAgICAic3lzdGVtX2hlYWRlcnMvcHBjNjRf bGludXhfc3lzY2FsbHMuaCIsCi0rICAgICJzeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF91Y29u dGV4dC5oIiwKLSAgICAgInN5c3RlbV9oZWFkZXJzL2FybTY0X2xpbnV4X3N5c2NhbGxzLmgiLAot ICAgICAic3lzdGVtX2hlYWRlcnMvYXJtX2xpbnV4X3N5c2NhbGxzLmgiLAotICAgICAic3lzdGVt X2hlYWRlcnMvYXJtX2xpbnV4X3Vjb250ZXh0LmgiLAotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4 L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaCBzYW5kYm94L2xpbnV4L2JwZl9kc2wvbGlu dXhfc3lzY2FsbF9yYW5nZXMuaAotaW5kZXggMzEzNTExZjIyLi4wY2EzYTMyNmYgMTAwNjQ0Ci0t LS0gc2FuZGJveC9saW51eC9icGZfZHNsL2xpbnV4X3N5c2NhbGxfcmFuZ2VzLmgKLSsrKyBzYW5k Ym94L2xpbnV4L2JwZl9kc2wvbGludXhfc3lzY2FsbF9yYW5nZXMuaAotQEAgLTU2LDYgKzU2LDEz IEBACi0gI2RlZmluZSBNQVhfUFVCTElDX1NZU0NBTEwgX19OUl9zeXNjYWxscwotICNkZWZpbmUg TUFYX1NZU0NBTEwgTUFYX1BVQkxJQ19TWVNDQUxMCi0gCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKwotKyNpbmNsdWRlIDxhc20vdW5pc3RkLmg+Ci0rI2RlZmluZSBNSU5fU1lTQ0FM TCAwdQotKyNkZWZpbmUgTUFYX1BVQkxJQ19TWVNDQUxMIDM4NnUKLSsjZGVmaW5lIE1BWF9TWVND QUxMIE1BWF9QVUJMSUNfU1lTQ0FMTAotKwotICNlbHNlCi0gI2Vycm9yICJVbnN1cHBvcnRlZCBh cmNoaXRlY3R1cmUiCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvYnBmX2RzbC9z ZWNjb21wX21hY3Jvcy5oIHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21hY3Jvcy5oCi1p bmRleCAxYTQwN2I5NTIuLmE2YWVjNTQ0ZSAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L2JwZl9k c2wvc2VjY29tcF9tYWNyb3MuaAotKysrIHNhbmRib3gvbGludXgvYnBmX2RzbC9zZWNjb21wX21h Y3Jvcy5oCi1AQCAtMTYsNiArMTYsOSBAQAotICNpZiBkZWZpbmVkKF9fbWlwc19fKQotIC8vIHN5 cy91c2VyLmggaW4gZWdsaWJjIG1pc3NlcyBzaXplX3QgZGVmaW5pdGlvbgotICNpbmNsdWRlIDxz dGRkZWYuaD4KLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rLy8gTWFudWFsbHkgZGVm aW5lIGdyZWdfdCBvbiBwcGM2NAotK3R5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGdyZWdfdDsK LSAjZW5kaWYKLSAjZW5kaWYKLSAKLUBAIC0zNDYsNiArMzQ5LDUxIEBAIHN0cnVjdCByZWdzX3N0 cnVjdCB7Ci0gI2RlZmluZSBTRUNDT01QX1BUX1BBUk00KF9yZWdzKSAoX3JlZ3MpLnJlZ3NbM10K LSAjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTUoX3JlZ3MpIChfcmVncykucmVnc1s0XQotICNkZWZp bmUgU0VDQ09NUF9QVF9QQVJNNihfcmVncykgKF9yZWdzKS5yZWdzWzVdCi0rCi0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0rCi0rdHlwZWRl ZiBzdHJ1Y3QgcHRfcmVncyByZWdzX3N0cnVjdDsKLSsKLSsjaWZkZWYgQVJDSF9DUFVfTElUVExF X0VORElBTgotKyNkZWZpbmUgU0VDQ09NUF9BUkNIIEFVRElUX0FSQ0hfUFBDNjRMRQotKyNlbHNl Ci0rI2RlZmluZSBTRUNDT01QX0FSQ0ggQVVESVRfQVJDSF9QUEM2NAotKyNlbmRpZgotKwotKyNk ZWZpbmUgU0VDQ09NUF9SRUcoX2N0eCwgX3JlZykgKChfY3R4KS0+dWNfbWNvbnRleHQucmVncy0+ Z3ByW19yZWddKQotKwotKyNkZWZpbmUgU0VDQ09NUF9SRVNVTFQoX2N0eCkgU0VDQ09NUF9SRUco X2N0eCwgMykKLSsjZGVmaW5lIFNFQ0NPTVBfU1lTQ0FMTChfY3R4KSBTRUNDT01QX1JFRyhfY3R4 LCAwKQotKyNkZWZpbmUgU0VDQ09NUF9JUChfY3R4KSAoX2N0eCktPnVjX21jb250ZXh0LnJlZ3Mt Pm5pcAotKyNkZWZpbmUgU0VDQ09NUF9QQVJNMShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCAzKQot KyNkZWZpbmUgU0VDQ09NUF9QQVJNMihfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA0KQotKyNkZWZp bmUgU0VDQ09NUF9QQVJNMyhfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA1KQotKyNkZWZpbmUgU0VD Q09NUF9QQVJNNChfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA2KQotKyNkZWZpbmUgU0VDQ09NUF9Q QVJNNShfY3R4KSBTRUNDT01QX1JFRyhfY3R4LCA3KQotKyNkZWZpbmUgU0VDQ09NUF9QQVJNNihf Y3R4KSBTRUNDT01QX1JFRyhfY3R4LCA4KQotKwotKyNkZWZpbmUgU0VDQ09NUF9OUl9JRFggKG9m ZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgbnIpKQotKyNkZWZpbmUgU0VDQ09NUF9B UkNIX0lEWCAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29tcF9kYXRhLCBhcmNoKSkKLSsjZGVm aW5lIFNFQ0NPTVBfSVBfTVNCX0lEWCBcCi0rICAob2Zmc2V0b2Yoc3RydWN0IGFyY2hfc2VjY29t cF9kYXRhLCBpbnN0cnVjdGlvbl9wb2ludGVyKSArIDQpCi0rI2RlZmluZSBTRUNDT01QX0lQX0xT Ql9JRFggXAotKyAgKG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgaW5zdHJ1Y3Rp b25fcG9pbnRlcikgKyAwKQotKyNkZWZpbmUgU0VDQ09NUF9BUkdfTVNCX0lEWChucikgXAotKyAg KG9mZnNldG9mKHN0cnVjdCBhcmNoX3NlY2NvbXBfZGF0YSwgYXJncykgKyA4ICogKG5yKSArIDQp Ci0rI2RlZmluZSBTRUNDT01QX0FSR19MU0JfSURYKG5yKSBcCi0rICAob2Zmc2V0b2Yoc3RydWN0 IGFyY2hfc2VjY29tcF9kYXRhLCBhcmdzKSArIDggKiAobnIpICsgMCkKLSsKLSsjZGVmaW5lIFNF Q0NPTVBfUFRfUkVTVUxUKF9yZWdzKSAoX3JlZ3MpLmdwclszXQotKyNkZWZpbmUgU0VDQ09NUF9Q VF9TWVNDQUxMKF9yZWdzKSAoX3JlZ3MpLmdwclswXQotKyNkZWZpbmUgU0VDQ09NUF9QVF9JUChf cmVncykgKF9yZWdzKS5uaXAKLSsjZGVmaW5lIFNFQ0NPTVBfUFRfUEFSTTEoX3JlZ3MpIChfcmVn cykuZ3ByWzNdCi0rI2RlZmluZSBTRUNDT01QX1BUX1BBUk0yKF9yZWdzKSAoX3JlZ3MpLmdwcls0 XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9QQVJNMyhfcmVncykgKF9yZWdzKS5ncHJbNV0KLSsjZGVm aW5lIFNFQ0NPTVBfUFRfUEFSTTQoX3JlZ3MpIChfcmVncykuZ3ByWzZdCi0rI2RlZmluZSBTRUND T01QX1BUX1BBUk01KF9yZWdzKSAoX3JlZ3MpLmdwcls3XQotKyNkZWZpbmUgU0VDQ09NUF9QVF9Q QVJNNihfcmVncykgKF9yZWdzKS5ncHJbOF0KLSsKLSAjZWxzZQotICNlcnJvciBVbnN1cHBvcnRl ZCB0YXJnZXQgcGxhdGZvcm0KLSAKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJw Zi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeS5jYyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhl bHBlcnMvYmFzZWxpbmVfcG9saWN5LmNjCi1pbmRleCBhNmQyYzBkZmIuLjM3ZmRjMTc5YSAxMDA2 NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5 LmNjCi0rKysgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGlj eS5jYwotQEAgLTg4LDcgKzg4LDggQEAgYm9vbCBJc0Jhc2VsaW5lUG9saWN5V2F0Y2hlZChpbnQg c3lzbm8pIHsKLSAgICAgICAgICBTeXNjYWxsU2V0czo6SXNQcmN0bChzeXNubykgfHwKLSAgICAg ICAgICBTeXNjYWxsU2V0czo6SXNQcm9jZXNzR3JvdXBPclNlc3Npb24oc3lzbm8pIHx8Ci0gI2lm IGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1J TFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRl ZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgICAgICBTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxs KHN5c25vKSB8fAotICNlbmRpZgotICNpZiBkZWZpbmVkKF9fYXJtX18pCi1AQCAtMjEwLDcgKzIx MSw3IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1wbChpbnQgZnNfZGVuaWVkX2Vycm5v LAotICAgfQotIAotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18p IHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRfXykKLSsg ICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgaWYg KHN5c25vID09IF9fTlJfbW1hcCkKLSAgICAgcmV0dXJuIFJlc3RyaWN0TW1hcEZsYWdzKCk7Ci0g I2VuZGlmCi1AQCAtMjI4LDcgKzIyOSw3IEBAIFJlc3VsdEV4cHIgRXZhbHVhdGVTeXNjYWxsSW1w bChpbnQgZnNfZGVuaWVkX2Vycm5vLAotICAgICByZXR1cm4gUmVzdHJpY3RQcmN0bCgpOwotIAot ICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChf X21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBpZiAoc3lzbm8gPT0gX19O Ul9zb2NrZXRwYWlyKSB7Ci0gICAgIC8vIE9ubHkgYWxsb3cgQUZfVU5JWCwgUEZfVU5JWC4gQ3Jh c2ggaWYgYW55dGhpbmcgZWxzZSBpcyBzZWVuLgotICAgICBzdGF0aWNfYXNzZXJ0KEFGX1VOSVgg PT0gUEZfVU5JWCwKLUBAIC0yNjgsNyArMjY5LDggQEAgUmVzdWx0RXhwciBFdmFsdWF0ZVN5c2Nh bGxJbXBsKGludCBmc19kZW5pZWRfZXJybm8sCi0gICB9Ci0gCi0gI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSAgIGlmIChTeXNjYWxsU2V0czo6SXNTb2NrZXRDYWxsKHN5c25vKSkKLSAgICAgcmV0 dXJuIFJlc3RyaWN0U29ja2V0Y2FsbENvbW1hbmQoKTsKLSAjZW5kaWYKLWRpZmYgLS1naXQgc2Fu ZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91bml0dGVzdC5j YyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0 ZXN0LmNjCi1pbmRleCBmYzM2MTg3YzkuLjFhZmZjOTE4OSAxMDA2NDQKLS0tLSBzYW5kYm94L2xp bnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvYmFzZWxpbmVfcG9saWN5X3VuaXR0ZXN0LmNjCi0rKysg c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL2Jhc2VsaW5lX3BvbGljeV91bml0dGVz dC5jYwotQEAgLTI5MSw4ICsyOTEsMTAgQEAgVEVTVF9CQVNFTElORV9TSUdTWVMoX19OUl90aW1l cl9jcmVhdGUpCi0gI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKQotIFRFU1RfQkFTRUxJTkVfU0lH U1lTKF9fTlJfZXZlbnRmZCkKLSBURVNUX0JBU0VMSU5FX1NJR1NZUyhfX05SX2lub3RpZnlfaW5p dCkKLSsjaWYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykKLSBURVNUX0JBU0VMSU5FX1NJR1NZUyhf X05SX3ZzZXJ2ZXIpCi0gI2VuZGlmCi0rI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoTElCQ19HTElC QykgJiYgIWRlZmluZWQoT1NfQ0hST01FT1MpCi0gQlBGX1RFU1RfQyhCYXNlbGluZVBvbGljeSwg RnV0ZXhFSU5WQUwsIEJhc2VsaW5lUG9saWN5KSB7Ci1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgv c2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJpY3Rpb25zLmNjIHNh bmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFtZXRlcnNfcmVzdHJp Y3Rpb25zLmNjCi1pbmRleCBmNTE5MTVlZGMuLmNhMmY0ZjEwNiAxMDA2NDQKLS0tLSBzYW5kYm94 L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9u cy5jYwotKysrIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3BhcmFt ZXRlcnNfcmVzdHJpY3Rpb25zLmNjCi1AQCAtNDAsNyArNDAsOCBAQAotICNpbmNsdWRlIDxzeXMv cHRyYWNlLmg+Ci0gI2lmIChkZWZpbmVkKE9TX0xJTlVYKSB8fCBCVUlMREZMQUcoSVNfQ0hST01F T1NfTEFDUk9TKSkgJiYgXAotICAgICAhZGVmaW5lZChfX2FybV9fKSAmJiAhZGVmaW5lZChfX2Fh cmNoNjRfXykgJiYgICAgICAgICAgIFwKLS0gICAgIWRlZmluZWQoUFRSQUNFX0dFVF9USFJFQURf QVJFQSkKLSsgICAgIWRlZmluZWQoUFRSQUNFX0dFVF9USFJFQURfQVJFQSkgJiYJCQkgICAgXAot KyAgICAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8vIEFsc28gaW5jbHVkZSBhc20vcHRyYWNl LWFiaS5oIHNpbmNlIHB0cmFjZS5oIGluIG9sZGVyIGxpYmMgKGZvciBpbnN0YW5jZQotIC8vIHRo ZSBvbmUgaW4gVWJ1bnR1IDE2LjA0IExUUykgaXMgbWlzc2luZyBQVFJBQ0VfR0VUX1RIUkVBRF9B UkVBLgotIC8vIGFzbS9wdHJhY2UtYWJpLmggZG9lc24ndCBleGlzdCBvbiBhcm0zMiBhbmQgUFRS QUNFX0dFVF9USFJFQURfQVJFQSBpc24ndAotQEAgLTQ5LDYgKzUwLDExIEBACi0gI2VuZGlmCi0g I2VuZGlmICAvLyAhT1NfTkFDTF9OT05TRkkKLSAKLSsvLyBPbiBQUEM2NCwgVENHRVRTIGlzIGRl ZmluZWQgaW4gdGVybXMgb2Ygc3RydWN0IHRlcm1pb3MsIHNvIHdlIG11c3QgaW5jbHVkZSB0ZXJt aW9zLmgKLSsjaWZkZWYgX19wb3dlcnBjNjRfXwotKyNpbmNsdWRlIDx0ZXJtaW9zLmg+Ci0rI2Vu ZGlmCi0rCi0gI2lmIGRlZmluZWQoT1NfQU5EUk9JRCkKLSAKLSAjaWYgIWRlZmluZWQoRl9EVVBG RF9DTE9FWEVDKQotQEAgLTk4LDYgKzEwNCwxNSBAQAotICNlbmRpZgotIH0KLSAKLStpbmxpbmUg Ym9vbCBJc0FyY2hpdGVjdHVyZVBQQzY0KCkgewotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rICByZXR1cm4gdHJ1ZTsKLSsjZWxzZQotKyAgcmV0dXJuIGZhbHNlOwotKyNlbmRpZgotK30K LSsKLSsKLSAvLyBVYnVudHUncyB2ZXJzaW9uIG9mIGdsaWJjIGhhcyBhIHJhY2UgY29uZGl0aW9u IGluIHNlbV9wb3N0IHRoYXQgY2FuIGNhdXNlCi0gLy8gaXQgdG8gY2FsbCBmdXRleCgyKSB3aXRo IGJvZ3VzIG9wIGFyZ3VtZW50cy4gVG8gd29ya2Fyb3VuZCB0aGlzLCB3ZSBuZWVkCi0gLy8gdG8g YWxsb3cgdGhvc2UgZnV0ZXgoMikgY2FsbHMgdG8gZmFpbCB3aXRoIEVJTlZBTCwgaW5zdGVhZCBv ZiBjcmFzaGluZyB0aGUKLUBAIC0yMzksNiArMjU0LDggQEAKLSAgIHVpbnQ2NF90IGtPTGFyZ2VG aWxlRmxhZyA9IE9fTEFSR0VGSUxFOwotICAgaWYgKElzQXJjaGl0ZWN0dXJlWDg2XzY0KCkgfHwg SXNBcmNoaXRlY3R1cmVJMzg2KCkgfHwgSXNBcmNoaXRlY3R1cmVNaXBzKCkpCi0gICAgIGtPTGFy Z2VGaWxlRmxhZyA9IDAxMDAwMDA7Ci0rICBlbHNlIGlmIChJc0FyY2hpdGVjdHVyZVBQQzY0KCkp Ci0rICAgIGtPTGFyZ2VGaWxlRmxhZyA9IDAyMDAwMDA7Ci0gCi0gICBjb25zdCBBcmc8aW50PiBj bWQoMSk7Ci0gICBjb25zdCBBcmc8bG9uZz4gbG9uZ19hcmcoMik7Ci1AQCAtMjUzLDE0ICsyNzAs MjMgQEAKLSAgICAgICAgICAgICAgIEZfU0VUTEtXLAotICAgICAgICAgICAgICAgRl9HRVRMSywK LSAgICAgICAgICAgICAgIEZfRFVQRkQsCi0tICAgICAgICAgICAgICBGX0RVUEZEX0NMT0VYRUMp LAotLSAgICAgICAgICAgICBBbGxvdygpKQotKyAgICAgICAgICAgICAgRl9EVVBGRF9DTE9FWEVD Ci0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsvLyBPbiBQUEM2NCwgRl9TRVRMSywgRl9H RVRMSywgRl9TRVRMS1cgYXJlIGRlZmluZWQgYXMgdGhlIDY0LWJpdCB2YXJpYW50cwotKy8vIGJ1 dCBnbGliYyB3aWxsIHNvbWV0aW1lcyBzdGlsbCB1c2UgdGhlIDMyLWJpdCB2ZXJzaW9ucy4gQWxs b3cgYm90aC4KLSsgICAgICAgICAgICAgICwKLSsgICAgICAgICAgICAgIDUsIC8qIEZfR0VUTEsg KDMyKSAqLwotKyAgICAgICAgICAgICAgNiwgLyogRl9TRVRMSyAoMzIpICovCi0rICAgICAgICAg ICAgICA3ICAvKiBGX1NFVExLVyAoMzIpICovCi0rI2VuZGlmCi0rICAgICAgICAgICAgICApLAot KyAgICAgICAgICAgIEFsbG93KCkpCi0gICAgICAgLkNhc2UoRl9TRVRGTCwKLSAgICAgICAgICAg ICBJZigobG9uZ19hcmcgJiB+a0FsbG93ZWRNYXNrKSA9PSAwLCBBbGxvdygpKS5FbHNlKENyYXNo U0lHU1lTKCkpKQotICAgICAgIC5EZWZhdWx0KENyYXNoU0lHU1lTKCkpOwotIH0KLSAKLS0jaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIFJl c3VsdEV4cHIgUmVzdHJpY3RTb2NrZXRjYWxsQ29tbWFuZCgpIHsKLSAgIC8vIFVuZm9ydHVuYXRl bHksIHdlIGFyZSB1bmFibGUgdG8gcmVzdHJpY3QgdGhlIGZpcnN0IHBhcmFtZXRlciB0bwotICAg Ly8gc29ja2V0cGFpcigyKS4gV2hpbHN0IGluaXRpYWxseSBzb3VuZGluZyBiYWQsIGl0J3Mgbm90 ZXdvcnRoeSB0aGF0IHZlcnkKLUBAIC00MTMsNyArNDM5LDcgQEAKLSAjZW5kaWYKLSAgIHJldHVy biBTd2l0Y2gocmVxdWVzdCkKLSAgICAgICAuQ0FTRVMoKAotLSNpZiAhZGVmaW5lZChfX2FhcmNo NjRfXykKLSsjaWYgIWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0gICAgICAgICAgICAgICAgICBQVFJBQ0VfR0VUUkVHUywgUFRSQUNFX0dFVEZQUkVHUywg UFRSQUNFX0dFVF9USFJFQURfQVJFQSwKLSAgICAgICAgICAgICAgICAgIFBUUkFDRV9HRVRSRUdT RVQsCi0gI2VuZGlmCi0KLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxw ZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMuaCBzYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5oCi1pbmRleCBi YTQyODlmMDUuLjlhNGQ1YWIyZCAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBm LWhlbHBlcnMvc3lzY2FsbF9wYXJhbWV0ZXJzX3Jlc3RyaWN0aW9ucy5oCi0rKysgc2FuZGJveC9s aW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfcGFyYW1ldGVyc19yZXN0cmljdGlvbnMu aAotQEAgLTQ4LDcgKzQ4LDcgQEAgU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6UmVzdWx0RXhwciBS ZXN0cmljdE1wcm90ZWN0RmxhZ3MoKTsKLSAvLyBPX05PTkJMT0NLIHwgT19TWU5DIHwgT19MQVJH RUZJTEUgfCBPX0NMT0VYRUMgfCBPX05PQVRJTUUuCi0gU0FOREJPWF9FWFBPUlQgYnBmX2RzbDo6 UmVzdWx0RXhwciBSZXN0cmljdEZjbnRsQ29tbWFuZHMoKTsKLSAKLS0jaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotIC8vIFJlc3RyaWN0IHNv Y2tldGNhbGwoMikgdG8gb25seSBhbGxvdyBzb2NrZXRwYWlyKDIpLCBzZW5kKDIpLCByZWN2KDIp LAotIC8vIHNlbmR0bygyKSwgcmVjdmZyb20oMiksIHNodXRkb3duKDIpLCBzZW5kbXNnKDIpIGFu ZCByZWN2bXNnKDIpLgotIFNBTkRCT1hfRVhQT1JUIGJwZl9kc2w6OlJlc3VsdEV4cHIgUmVzdHJp Y3RTb2NrZXRjYWxsQ29tbWFuZCgpOwotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3NlY2NvbXAt YnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVs cGVycy9zeXNjYWxsX3NldHMuY2MKLWluZGV4IGQzNjkzZmQ3OC4uZDQ5MmNmOTRiIDEwMDY0NAot LS0tIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMuY2MKLSsr KyBzYW5kYm94L2xpbnV4L3NlY2NvbXAtYnBmLWhlbHBlcnMvc3lzY2FsbF9zZXRzLmNjCi1AQCAt MjksNyArMjksOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXR0aW1lKGludCBzeXNu bykgewotICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfZ2V0dGltZW9mZGF5Ogot ICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IFwKLS0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3RpbWU6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAtNDEsMTIgKzQy LDE0IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxsb3dlZEdldHRpbWUoaW50IHN5c25vKSB7Ci0g ICAgIGNhc2UgX19OUl9jbG9ja19uYW5vc2xlZXA6ICAvLyBQYXJhbWV0ZXJzIGZpbHRlcmVkIGJ5 IFJlc3RyaWN0Q2xvY2tJRCgpLgotICAgICBjYXNlIF9fTlJfY2xvY2tfc2V0dGltZTogICAgLy8g UHJpdmlsZWdlZC4KLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfZnRp bWU6ICAvLyBPYnNvbGV0ZS4KLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3NldHRpbWVvZmRheTog IC8vIFByaXZpbGVnZWQuCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmlu ZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0r ICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMy X0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05S X3N0aW1lOgotICNlbmRpZgotICAgICBkZWZhdWx0OgotQEAgLTExMiw3ICsxMTUsNyBAQCBib29s IFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9m YWNjZXNzYXQ6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAgICAgY2FzZSBfX05SX2Zj aG1vZGF0OgotICAgICBjYXNlIF9fTlJfZmNob3duYXQ6ICAvLyBTaG91bGQgYmUgY2FsbGVkIGNo b3duYXQgPwotLSNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18p Ci0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfbmV3ZnN0YXRhdDogIC8vIGZzdGF0 YXQoKS4gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2VsaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0gICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFN SUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotQEAgLTEzMSw3ICsxMzQsNyBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7Ci0gICAgIGNhc2UgX19O Ul9tZW1mZF9jcmVhdGU6Ci0gICAgIGNhc2UgX19OUl9ta2RpcmF0OgotICAgICBjYXNlIF9fTlJf bWtub2RhdDoKLS0jaWYgZGVmaW5lZChfX2kzODZfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykg fHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfb2xkbHN0YXQ6Ci0gICAg IGNhc2UgX19OUl9vbGRzdGF0OgotICNlbmRpZgotQEAgLTE0NSw3ICsxNDgsOCBAQCBib29sIFN5 c2NhbGxTZXRzOjpJc0ZpbGVTeXN0ZW0oaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2Ug X19OUl9zdGF0ZnM6ICAvLyBFUEVSTSBub3QgYSB2YWxpZCBlcnJuby4KLSAjaWYgZGVmaW5lZChf X2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BV X01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwg XAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zdGF0ZnM2NDoK LSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3N5bWxpbmthdDoKLUBAIC0xNTUsNyArMTU5LDggQEAg Ym9vbCBTeXNjYWxsU2V0czo6SXNGaWxlU3lzdGVtKGludCBzeXNubykgewotICAgICBjYXNlIF9f TlJfdHJ1bmNhdGU2NDoKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3VubGlua2F0OgotLSNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBz X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNh c2UgX19OUl91dGltZToKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3V0aW1lbnNhdDogIC8vIE5l dy4KLUBAIC0xNzQsNyArMTc5LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkRmlsZVN5 c3RlbUFjY2Vzc1ZpYUZkKGludCBzeXNubykgewotICNlbmRpZgotICAgICAgIHJldHVybiB0cnVl OwotIC8vIFRPRE8oamxuKTogdGhlc2Ugc2hvdWxkIGJlIGRlbmllZCBncmFjZWZ1bGx5IGFzIHdl bGwgKG1vdmVkIGJlbG93KS4KLS0jaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLSsgICAgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfZmFkdmlzZTY0OiAgLy8gRVBFUk0gbm90 IGEgdmFsaWQgZXJybm8uCi0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pCi1AQCAtMTg3 LDExICsxOTMsMTIgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkRmlsZVN5c3RlbUFjY2Vz c1ZpYUZkKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfZmxvY2s6ICAgICAgLy8gRVBFUk0g bm90IGEgdmFsaWQgZXJybm8uCi0gICAgIGNhc2UgX19OUl9mc3RhdGZzOiAgICAvLyBHaXZlIGlu Zm9ybWF0aW9uIGFib3V0IHRoZSB3aG9sZSBmaWxlc3lzdGVtLgotICNpZiBkZWZpbmVkKF9faTM4 Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0r ICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX2ZzdGF0ZnM2NDoKLSAj ZW5kaWYKLSAgICAgY2FzZSBfX05SX2ZzeW5jOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8u Ci0tI2lmIGRlZmluZWQoX19pMzg2X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX29sZGZzdGF0OgotICNlbmRpZgotICNp ZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19t aXBzX18pIHx8IFwKLUBAIC0xOTksNiArMjA2LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxv d2VkRmlsZVN5c3RlbUFjY2Vzc1ZpYUZkKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfc3lu Y19maWxlX3JhbmdlOiAgLy8gRVBFUk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2VsaWYgZGVmaW5l ZChfX2FybV9fKQotICAgICBjYXNlIF9fTlJfYXJtX3N5bmNfZmlsZV9yYW5nZTogIC8vIEVQRVJN IG5vdCBhIHZhbGlkIGVycm5vLgotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAg Y2FzZSBfX05SX3N5bmNfZmlsZV9yYW5nZTI6IC8vIEVQRVJNIG5vdCBhIHZhbGlkIGVycm5vLgot ICNlbmRpZgotICAgICBkZWZhdWx0OgotICAgICAgIHJldHVybiBmYWxzZTsKLUBAIC0yMjQsNyAr MjMzLDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNEZW5pZWRGaWxlU3lzdGVtQWNjZXNzVmlhRmQo aW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9nZXRkZW50czY0OiAgLy8gRVBF Uk0gbm90IGEgdmFsaWQgZXJybm8uCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3JlYWRkaXI6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuIHRydWU7Ci1AQCAtMjY1LDcg KzI3NSw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzR2V0U2ltcGxlSWQoaW50IHN5c25vKSB7Ci0g Ym9vbCBTeXNjYWxsU2V0czo6SXNQcm9jZXNzUHJpdmlsZWdlQ2hhbmdlKGludCBzeXNubykgewot ICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9fTlJfY2Fwc2V0OgotLSNpZiBkZWZpbmVk KF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18p IHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBj YXNlIF9fTlJfaW9wZXJtOiAgLy8gSW50ZWwgcHJpdmlsZWdlLgotICAgICBjYXNlIF9fTlJfaW9w bDogICAgLy8gSW50ZWwgcHJpdmlsZWdlLgotICNlbmRpZgotQEAgLTMxNiw3ICszMjYsOCBAQCBi b29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRTaWduYWxIYW5kbGluZyhpbnQgc3lzbm8pIHsKLSAg ICAgY2FzZSBfX05SX3J0X3NpZ3JldHVybjoKLSAgICAgY2FzZSBfX05SX3J0X3NpZ3RpbWVkd2Fp dDoKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAg IChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJ VFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNI X0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNh c2UgX19OUl9zaWdhY3Rpb246Ci0gICAgIGNhc2UgX19OUl9zaWdwcm9jbWFzazoKLSAgICAgY2Fz ZSBfX05SX3NpZ3JldHVybjoKLUBAIC0zMzIsNyArMzQzLDggQEAgYm9vbCBTeXNjYWxsU2V0czo6 SXNBbGxvd2VkU2lnbmFsSGFuZGxpbmcoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2Ug X19OUl9zaWduYWxmZDQ6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1f XykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfc2lncGVuZGluZzoKLSAgICAgY2FzZSBfX05SX3NpZ3N1c3Bl bmQ6Ci0gI2VuZGlmCi1AQCAtMzU2LDcgKzM2OCw3IEBAIGJvb2wgU3lzY2FsbFNldHM6OklzQWxs b3dlZE9wZXJhdGlvbk9uRmQoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9k dXAzOgotICNpZiBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9zaHV0ZG93bjoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLUBAIC0zOTAsNyArNDAy LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0T3JEZWF0aChpbnQg c3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX21lbWJhcnJpZXI6Ci0gICAgIGNhc2UgX19OUl93YWl0 NDoKLSAgICAgY2FzZSBfX05SX3dhaXRpZDoKLS0jaWYgZGVmaW5lZChfX2kzODZfXykKLSsjaWYg ZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9f TlJfd2FpdHBpZDoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4gdHJ1ZTsKLUBAIC00MDcsNyArNDE5 LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkUHJvY2Vzc1N0YXJ0T3JEZWF0aChpbnQg c3lzbm8pIHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3NldF90aWRfYWRkcmVzczoKLSAgICAg Y2FzZSBfX05SX3Vuc2hhcmU6Ci0tI2lmICFkZWZpbmVkKF9fbWlwc19fKSAmJiAhZGVmaW5lZChf X2FhcmNoNjRfXykKLSsjaWYgIWRlZmluZWQoX19taXBzX18pICYmICFkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl92Zm9yazoKLSAj ZW5kaWYKLSAgICAgZGVmYXVsdDoKLUBAIC00NTYsNyArNDY4LDcgQEAgYm9vbCBTeXNjYWxsU2V0 czo6SXNBbGxvd2VkR2V0T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKSB7Ci0gICAgICAgcmV0dXJu IHRydWU7Ci0gICAgIGRlZmF1bHQ6Ci0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5l ZChfX2FybV9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJj aDY0X18pCi0rICAgIGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX3NvY2tldHBhaXI6ICAvLyBXZSB3aWxsIHdhbnQgdG8gaW5zcGVj dCBpdHMgYXJndW1lbnQuCi0gI2VuZGlmCi0gICAgICAgcmV0dXJuIGZhbHNlOwotQEAgLTQ2Niw3 ICs0NzgsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRHZXRPck1vZGlmeVNvY2tldChp bnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxTZXRzOjpJc0RlbmllZEdldE9yTW9kaWZ5U29ja2V0 KGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICNpZiBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotLSAgICBk ZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9hY2NlcHQ6Ci0gICAgIGNhc2UgX19OUl9h Y2NlcHQ0OgotICAgICBjYXNlIF9fTlJfYmluZDoKLUBAIC00ODEsNyArNDkzLDggQEAgYm9vbCBT eXNjYWxsU2V0czo6SXNEZW5pZWRHZXRPck1vZGlmeVNvY2tldChpbnQgc3lzbm8pIHsKLSB9Ci0g Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQ U19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0r ICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAvLyBCaWcgbXVsdGlwbGV4aW5nIHN5c3RlbSBj YWxsIGZvciBzb2NrZXRzLgotIGJvb2wgU3lzY2FsbFNldHM6OklzU29ja2V0Q2FsbChpbnQgc3lz bm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLUBAIC00OTUsNyArNTA4LDggQEAgYm9vbCBTeXNj YWxsU2V0czo6SXNTb2NrZXRDYWxsKGludCBzeXNubykgewotIH0KLSAjZW5kaWYKLSAKLS0jaWYg ZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBz X18pCi0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8fCBkZWZp bmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSBib29sIFN5 c2NhbGxTZXRzOjpJc05ldHdvcmtTb2NrZXRJbmZvcm1hdGlvbihpbnQgc3lzbm8pIHsKLSAgIHN3 aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2dldHBlZXJuYW1lOgotQEAgLTUyMCw3ICs1 MzQsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRBZGRyZXNzU3BhY2VBY2Nlc3MoaW50 IHN5c25vKSB7Ci0gICAgIGNhc2UgX19OUl9taW5jb3JlOgotICAgICBjYXNlIF9fTlJfbWxvY2th bGw6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19O Ul9tbWFwOgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJt X18pIHx8IFwKLUBAIC01NTAsNyArNTY0LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2Vk R2VuZXJhbElvKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNlIF9f TlJfbHNlZWs6Ci0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwg XAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfX2xsc2VlazoKLSAjZW5kaWYKLSAjaWYgIWRlZmluZWQoX19hYXJjaDY0 X18pCi1AQCAtNTYyLDI2ICs1NzcsMjggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkR2Vu ZXJhbElvKGludCBzeXNubykgewotICAgICBjYXNlIF9fTlJfcmVhZHY6Ci0gICAgIGNhc2UgX19O Ul9wcmVhZDY0OgotICNpZiBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJD SF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMp KSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX3JlY3Y6 Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX2FybV9fKSB8 fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAg IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX3JlY3Zmcm9tOiAgLy8gQ291bGQgc3BlY2lmeSBzb3VyY2UuCi0gICAgIGNhc2UgX19O Ul9yZWN2bXNnOiAgIC8vIENvdWxkIHNwZWNpZnkgc291cmNlLgotICNlbmRpZgotLSNpZiBkZWZp bmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pCi0rI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAg ICBjYXNlIF9fTlJfc2VsZWN0OgotICNlbmRpZgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfX25ld3NlbGVjdDoKLSAjZW5kaWYKLSAjaWYg ZGVmaW5lZChfX2FybV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9N SVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZp bmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zZW5kOgotICNlbmRpZgotICNpZiBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNf XykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2 NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zZW5kbXNnOiAg Ly8gQ291bGQgc3BlY2lmeSBkZXN0aW5hdGlvbi4KLSAgICAgY2FzZSBfX05SX3NlbmR0bzogICAv LyBDb3VsZCBzcGVjaWZ5IGRlc3RpbmF0aW9uLgotICNlbmRpZgotQEAgLTYzOCw3ICs2NTUsOCBA QCBib29sIFN5c2NhbGxTZXRzOjpJc0FsbG93ZWRCYXNpY1NjaGVkdWxlcihpbnQgc3lzbm8pIHsK LSAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgY2FzZSBfX05SX2dldHByaW9yaXR5OgotICNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgKGRlZmluZWQo QVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAg IChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJ VFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBfX05SX25p Y2U6Ci0gI2VuZGlmCi0gICAgIGNhc2UgX19OUl9zZXRwcmlvcml0eToKLUBAIC02NTAsNyArNjY4 LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbGxvd2VkQmFzaWNTY2hlZHVsZXIoaW50IHN5c25v KSB7Ci0gYm9vbCBTeXNjYWxsU2V0czo6SXNBZG1pbk9wZXJhdGlvbihpbnQgc3lzbm8pIHsKLSAg IHN3aXRjaCAoc3lzbm8pIHsKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX2Fy bV9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVk KEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg JiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl9iZGZsdXNoOgotICNlbmRpZgotICAgICBjYXNlIF9fTlJf a2V4ZWNfbG9hZDoKLUBAIC02NjYsNyArNjg1LDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBZG1p bk9wZXJhdGlvbihpbnQgc3lzbm8pIHsKLSAKLSBib29sIFN5c2NhbGxTZXRzOjpJc0tlcm5lbE1v ZHVsZShpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLS0jaWYgZGVmaW5lZChfX2kz ODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBk ZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBz X18pIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfY3Jl YXRlX21vZHVsZToKLSAgICAgY2FzZSBfX05SX2dldF9rZXJuZWxfc3ltczogIC8vIFNob3VsZCBF Tk9TWVMuCi0gICAgIGNhc2UgX19OUl9xdWVyeV9tb2R1bGU6Ci1AQCAtNjk5LDcgKzcxOSw4IEBA IGJvb2wgU3lzY2FsbFNldHM6OklzRnNDb250cm9sKGludCBzeXNubykgewotICAgICBjYXNlIF9f TlJfc3dhcG9mZjoKLSAgICAgY2FzZSBfX05SX3N3YXBvbjoKLSAjaWYgZGVmaW5lZChfX2kzODZf XykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChB UkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfdW1vdW50OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfdW1v dW50MjoKLUBAIC03MTUsNyArNzM2LDcgQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNOdW1hKGludCBz eXNubykgewotICAgICBjYXNlIF9fTlJfZ2V0Y3B1OgotICAgICBjYXNlIF9fTlJfbWJpbmQ6Ci0g I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X21pcHNfXykgfHwgXAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9f YWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9taWdy YXRlX3BhZ2VzOgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfbW92ZV9wYWdlczoKLUBAIC03NDQs MTQgKzc2NSwxNSBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0dsb2JhbFByb2Nlc3NFbnZpcm9ubWVu dChpbnQgc3lzbm8pIHsKLSAgIHN3aXRjaCAoc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX2FjY3Q6 ICAvLyBQcml2aWxlZ2VkLgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRf XykKLSsgICAgZGVmaW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgICBjYXNlIF9fTlJfZ2V0cmxpbWl0OgotICNlbmRpZgotLSNpZiBkZWZpbmVkKF9faTM4Nl9f KSB8fCBkZWZpbmVkKF9fYXJtX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQo X19hcm1fXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfdWdldHJs aW1pdDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsg ICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJf QklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJf dWxpbWl0OgotICNlbmRpZgotICAgICBjYXNlIF9fTlJfZ2V0cnVzYWdlOgotQEAgLTc4NSw3ICs4 MDcsNyBAQCBib29sIFN5c2NhbGxTZXRzOjpJc0dsb2JhbFN5c3RlbVN0YXR1cyhpbnQgc3lzbm8p IHsKLSAjZW5kaWYKLSAgICAgY2FzZSBfX05SX3N5c2luZm86Ci0gICAgIGNhc2UgX19OUl91bmFt ZToKLS0jaWYgZGVmaW5lZChfX2kzODZfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfb2xkdW5hbWU6Ci0gICAgIGNhc2Ug X19OUl9vbGRvbGR1bmFtZToKLSAjZW5kaWYKLUBAIC04NDcsOCArODY5LDE2IEBAIGJvb2wgU3lz Y2FsbFNldHM6OklzU3lzdGVtVlNlbWFwaG9yZXMoaW50IHN5c25vKSB7Ci0gfQotICNlbmRpZgot IAotKy8qIHNoaXR0eSBoYWNrIGFyb3VuZCBWb2lkJ3MgNC4xOSBrZXJuZWwgaGVhZGVycyBtaXNz aW5nIHRob3NlIG51bWJlcnMgKi8KLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAhZGVm aW5lZChfX05SX3NobWdldCkKLSsjZGVmaW5lIF9fTlJfc2htZ2V0IDM5NQotKyNkZWZpbmUgX19O Ul9zaG1jdGwgMzk2Ci0rI2RlZmluZSBfX05SX3NobWF0IDM5NwotKyNkZWZpbmUgX19OUl9zaG1k dCAzOTgKLSsjZW5kaWYKLSsKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4 Nl82NF9fKSB8fCBkZWZpbmVkKF9fYXJtX18pIHx8IFwKLS0gICAgZGVmaW5lZChfX2FhcmNoNjRf XykgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKLSsgICAgZGVm aW5lZChfX2FhcmNoNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSB8fCBcCi0gICAgIChk ZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzY0X0JJVFMp KQotIC8vIFRoZXNlIGdpdmUgYSBsb3Qgb2YgYW1iaWVudCBhdXRob3JpdHkgYW5kIGJ5cGFzcyB0 aGUgc2V0dWlkIHNhbmRib3guCi0gYm9vbCBTeXNjYWxsU2V0czo6SXNTeXN0ZW1WU2hhcmVkTWVt b3J5KGludCBzeXNubykgewotQEAgLTg4MCw3ICs5MTAsOCBAQCBib29sIFN5c2NhbGxTZXRzOjpJ c1N5c3RlbVZNZXNzYWdlUXVldWUoaW50IHN5c25vKSB7Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYm IGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNf RkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQo X19wb3dlcnBjNjRfXykKLSAvLyBCaWcgc3lzdGVtIFYgbXVsdGlwbGV4aW5nIHN5c3RlbSBjYWxs LgotIGJvb2wgU3lzY2FsbFNldHM6OklzU3lzdGVtVklwYyhpbnQgc3lzbm8pIHsKLSAgIHN3aXRj aCAoc3lzbm8pIHsKLUBAIC05MDAsNyArOTMxLDggQEAgYm9vbCBTeXNjYWxsU2V0czo6SXNBbnlT eXN0ZW1WKGludCBzeXNubykgewotICAgcmV0dXJuIElzU3lzdGVtVk1lc3NhZ2VRdWV1ZShzeXNu bykgfHwgSXNTeXN0ZW1WU2VtYXBob3JlcyhzeXNubykgfHwKLSAgICAgICAgICBJc1N5c3RlbVZT aGFyZWRNZW1vcnkoc3lzbm8pOwotICNlbGlmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIHJldHVy biBJc1N5c3RlbVZJcGMoc3lzbm8pOwotICNlbmRpZgotIH0KLUBAIC05NTMsNyArOTg1LDggQEAg Ym9vbCBTeXNjYWxsU2V0czo6SXNGYU5vdGlmeShpbnQgc3lzbm8pIHsKLSBib29sIFN5c2NhbGxT ZXRzOjpJc1RpbWVyKGludCBzeXNubykgewotICAgc3dpdGNoIChzeXNubykgewotICAgICBjYXNl IF9fTlJfZ2V0aXRpbWVyOgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2 XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRl ZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9hbGFybToKLSAjZW5kaWYKLSAgICAgY2Fz ZSBfX05SX3NldGl0aW1lcjoKLUBAIC0xMDEyLDE4ICsxMDQ1LDIyIEBAIGJvb2wgU3lzY2FsbFNl dHM6OklzTWlzYyhpbnQgc3lzbm8pIHsKLSAgICAgY2FzZSBfX05SX3N5bmNmczoKLSAgICAgY2Fz ZSBfX05SX3ZoYW5ndXA6Ci0gLy8gVGhlIHN5c3RlbSBjYWxscyBiZWxvdyBhcmUgbm90IGltcGxl bWVudGVkLgotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8 IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194 ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0gICAgIGNhc2UgX19OUl9hZnNfc3lzY2FsbDoKLSAjZW5kaWYKLSAjaWYgZGVmaW5l ZChfX2kzODZfXykgfHwgXAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYg ZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChf X3Bvd2VycGM2NF9fKQotICAgICBjYXNlIF9fTlJfYnJlYWs6Ci0gI2VuZGlmCi0tI2lmIGRlZmlu ZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykK LSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBkZWZpbmVk KF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2FzZSBf X05SX2dldHBtc2c6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IFwKLS0gICAg KGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJDSF9DUFVfMzJfQklU UykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZpbmVkKEFSQ0hf Q1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgICAgY2Fz ZSBfX05SX2d0dHk6Ci0gICAgIGNhc2UgX19OUl9pZGxlOgotICAgICBjYXNlIF9fTlJfbG9jazoK LUBAIC0xMDMxLDIwICsxMDY4LDIyIEBAIGJvb2wgU3lzY2FsbFNldHM6OklzTWlzYyhpbnQgc3lz bm8pIHsKLSAgICAgY2FzZSBfX05SX3Byb2Y6Ci0gICAgIGNhc2UgX19OUl9wcm9maWw6Ci0gI2Vu ZGlmCi0tI2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVm aW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX2kzODZfXykgfHwgZGVmaW5lZChfX3g4Nl82 NF9fKSB8fCBkZWZpbmVkKF9fbWlwc19fKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSAgICAgY2FzZSBfX05SX3B1dHBtc2c6Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX194ODZf NjRfXykKLSAgICAgY2FzZSBfX05SX3NlY3VyaXR5OgotICNlbmRpZgotICNpZiBkZWZpbmVkKF9f aTM4Nl9fKSB8fCBcCi0tICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAmJiBkZWZp bmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKQotKyAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlM WSkgJiYgZGVmaW5lZChBUkNIX0NQVV8zMl9CSVRTKSkgfHwgXAotKyAgICBkZWZpbmVkKF9fcG93 ZXJwYzY0X18pCi0gICAgIGNhc2UgX19OUl9zdHR5OgotICNlbmRpZgotLSNpZiBkZWZpbmVkKF9f eDg2XzY0X18pCi0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotICAgICBjYXNlIF9fTlJfdHV4Y2FsbDoKLSAjZW5kaWYKLS0jaWYgIWRlZmluZWQoX19h YXJjaDY0X18pCi0rI2lmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotICAgICBjYXNlIF9fTlJfdnNlcnZlcjoKLSAjZW5kaWYKLSAgICAgICByZXR1cm4g dHJ1ZTsKLWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zZWNjb21wLWJwZi1oZWxwZXJzL3N5c2Nh bGxfc2V0cy5oIHNhbmRib3gvbGludXgvc2VjY29tcC1icGYtaGVscGVycy9zeXNjYWxsX3NldHMu aAotaW5kZXggOTIzNTMzZWM5Li40MTFmNzJhY2QgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCi0rKysgc2FuZGJveC9saW51eC9zZWNj b21wLWJwZi1oZWxwZXJzL3N5c2NhbGxfc2V0cy5oCi1AQCAtNDMsMTMgKzQzLDE0IEBAIGNsYXNz IFNBTkRCT1hfRVhQT1JUIFN5c2NhbGxTZXRzIHsKLSAgIHN0YXRpYyBib29sIElzRGVuaWVkR2V0 T3JNb2RpZnlTb2NrZXQoaW50IHN5c25vKTsKLSAKLSAjaWYgZGVmaW5lZChfX2kzODZfXykgfHwg XAotLSAgICAoZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgZGVmaW5lZChBUkNIX0NQ VV8zMl9CSVRTKSkKLSsgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmlu ZWQoQVJDSF9DUFVfMzJfQklUUykpIHx8IFwKLSsgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot ICAgLy8gQmlnIG11bHRpcGxleGluZyBzeXN0ZW0gY2FsbCBmb3Igc29ja2V0cy4KLSAgIHN0YXRp YyBib29sIElzU29ja2V0Q2FsbChpbnQgc3lzbm8pOwotICNlbmRpZgotIAotICNpZiBkZWZpbmVk KF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwg XAotLSAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8 fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0gICBzdGF0aWMgYm9vbCBJc05ldHdvcmtTb2NrZXRJ bmZvcm1hdGlvbihpbnQgc3lzbm8pOwotICNlbmRpZgotIAotQEAgLTc2LDcgKzc3LDcgQEAgY2xh c3MgU0FOREJPWF9FWFBPUlQgU3lzY2FsbFNldHMgewotICAgc3RhdGljIGJvb2wgSXNTeXN0ZW1W U2VtYXBob3JlcyhpbnQgc3lzbm8pOwotICNlbmRpZgotICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8 fCBkZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19hcm1fXykgfHwgXAotLSAgICBkZWZp bmVkKF9fYWFyY2g2NF9fKSB8fCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAotKyAgICBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBkZWZpbmVkKF9fcG93ZXJwYzY0X18p IHx8IFwKLSAgICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQoQVJD SF9DUFVfNjRfQklUUykpCi0gICAvLyBUaGVzZSBnaXZlIGEgbG90IG9mIGFtYmllbnQgYXV0aG9y aXR5IGFuZCBieXBhc3MgdGhlIHNldHVpZCBzYW5kYm94LgotICAgc3RhdGljIGJvb2wgSXNTeXN0 ZW1WU2hhcmVkTWVtb3J5KGludCBzeXNubyk7Ci1AQCAtODgsNyArODksOCBAQCBjbGFzcyBTQU5E Qk9YX0VYUE9SVCBTeXNjYWxsU2V0cyB7Ci0gI2VuZGlmCi0gCi0gI2lmIGRlZmluZWQoX19pMzg2 X18pIHx8IFwKLS0gICAgKGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpICYmIGRlZmluZWQo QVJDSF9DUFVfMzJfQklUUykpCi0rICAgIChkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKSAm JiBkZWZpbmVkKEFSQ0hfQ1BVXzMyX0JJVFMpKSB8fCBcCi0rICAgIGRlZmluZWQoX19wb3dlcnBj NjRfXykKLSAgIC8vIEJpZyBzeXN0ZW0gViBtdWx0aXBsZXhpbmcgc3lzdGVtIGNhbGwuCi0gICBz dGF0aWMgYm9vbCBJc1N5c3RlbVZJcGMoaW50IHN5c25vKTsKLSAjZW5kaWYKLWRpZmYgLS1naXQg c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjIHNhbmRib3gvbGludXgvc2VjY29t cC1icGYvc3lzY2FsbC5jYwotaW5kZXggZTQ3ZTk4YmY1Li5kNTNhN2ZmNTYgMTAwNjQ0Ci0tLS0g c2FuZGJveC9saW51eC9zZWNjb21wLWJwZi9zeXNjYWxsLmNjCi0rKysgc2FuZGJveC9saW51eC9z ZWNjb21wLWJwZi9zeXNjYWxsLmNjCi1AQCAtMTgsNyArMTgsNyBAQCBuYW1lc3BhY2Ugc2FuZGJv eCB7Ci0gbmFtZXNwYWNlIHsKLSAKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8 fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKLS0gICAgZGVmaW5lZChBUkNIX0NQ VV9NSVBTX0ZBTUlMWSkKLSsgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgfHwgZGVm aW5lZCAoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotIC8vIE51bWJlciB0aGF0J3Mgbm90IGN1cnJl bnRseSB1c2VkIGJ5IGFueSBMaW51eCBrZXJuZWwgQUJJcy4KLSBjb25zdCBpbnQga0ludmFsaWRT eXNjYWxsTnVtYmVyID0gMHgzNTFkMzsKLSAjZWxzZQotQEAgLTMxMCwxMiArMzEwLDU2IEBAIGFz bSgvLyBXZSBuZWVkIHRvIGJlIGFibGUgdG8gdGVsbCB0aGUga2VybmVsIGV4YWN0bHkgd2hlcmUg d2UgbWFkZSBhCi0gICAgIC8vIEVudGVyIHRoZSBrZXJuZWwKLSAgICAgInN2YyAwXG4iCi0gICAg ICIyOnJldFxuIgotKyAgICAiLmNmaV9lbmRwcm9jXG4iCi0rICAgICIuc2l6ZSBTeXNjYWxsQXNt LCAuLVN5c2NhbGxBc21cbiIKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICIu dGV4dFxuIgotKyAgICAiLmFsaWduIDRcbiIKLSsgICAgIi50eXBlIFN5c2NhbGxBc20gQGZ1bmN0 aW9uXG4iCi0rICAgICJTeXNjYWxsQXNtOlxuIgotKyAgICAiLmNmaV9zdGFydHByb2NcbiIKLSsK LSsgICAgLy8gQ2hlY2sgaWYgcjMgaXMgbmVnYXRpdmUKLSsgICAgImNtcGRpIDMsIDBcbiIKLSsg ICAgImJndCAyZlxuIgotKwotKyAgICAvLyBMb2FkIGFkZHJlc3Mgb2YgM2YgaW50byByMyBhbmQg cmV0dXJuCi0rICAgICJtZmxyIDEwXG4iCi0rICAgICJibCAxZlxuIgotKyAgICAiMTogbWZsciAz XG4iCi0rICAgICJtdGxyIDEwXG4iCi0rICAgICJhZGRpIDMsIDMsIDQqMTNcbiIKLSsgICAgImJs clxuIgotKwotKyAgICAvLyBMb2FkIGFyZ3VtZW50cyBmcm9tIGFycmF5IGludG8gcjMtOAotKyAg ICAvLyBzYXZlIHBhcmFtIDMgaW4gcjEwCi0rICAgICIyOlxuIgotKyAgICAibXIgMCwgM1xuIgot KyAgICAibGQgMywgMCg0KVxuIgotKyAgICAibGQgNSwgMTYoNClcbiIKLSsgICAgImxkIDYsIDI0 KDQpXG4iCi0rICAgICJsZCA3LCAzMig0KVxuIgotKyAgICAibGQgOCwgNDAoNClcbiIKLSsgICAg ImxkIDQsIDgoNClcbiIKLSsgICAgImxpIDksIDBcbiIKLSsKLSsgICAgLy8gRW50ZXIga2VybmVs Ci0rICAgICJzY1xuIgotKwotKyAgICAvLyBNYWdpYyByZXR1cm4gYWRkcmVzcwotKyAgICAiMzpc biIKLSsgICAgLy8gTGlrZSBNSVBTLCBwcGM2NCByZXR1cm4gdmFsdWVzIGFyZSBhbHdheXMgcG9z aXRpdmUuCi0rICAgIC8vIENoZWNrIGZvciBlcnJvciBpbiBjcjAuU08gYW5kIG5lZ2F0ZSB1cG9u IGVycm9yCi0rICAgICJiYyA0LCAzLCA0ZlxuIgotKyAgICAibmVnIDMsIDNcbiIKLSsgICAgIjQ6 IGJsclxuIgotKwotICAgICAiLmNmaV9lbmRwcm9jXG4iCi0gICAgICIuc2l6ZSBTeXNjYWxsQXNt LCAuLVN5c2NhbGxBc21cbiIKLSAjZW5kaWYKLSAgICAgKTsgIC8vIGFzbQotIAotLSNpZiBkZWZp bmVkKF9feDg2XzY0X18pCi0rI2lmIGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX3Bv d2VycGM2NF9fKQotIGV4dGVybiAiQyIgewotIGludHB0cl90IFN5c2NhbGxBc20oaW50cHRyX3Qg bnIsIGNvbnN0IGludHB0cl90IGFyZ3NbNl0pOwotIH0KLUBAIC00MjksNiArNDczLDggQEAgaW50 cHRyX3QgU3lzY2FsbDo6Q2FsbChpbnQgbnIsCi0gICAgIHJldCA9IGlub3V0OwotICAgfQotIAot KyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGludHB0cl90IHJldCA9IFN5c2NhbGxB c20obnIsIGFyZ3MpOwotICNlbHNlCi0gI2Vycm9yICJVbmltcGxlbWVudGVkIGFyY2hpdGVjdHVy ZSIKLSAjZW5kaWYKLUBAIC00NDUsOCArNDkxLDE4IEBAIHZvaWQgU3lzY2FsbDo6UHV0VmFsdWVJ blVjb250ZXh0KGludHB0cl90IHJldF92YWwsIHVjb250ZXh0X3QqIGN0eCkgewotICAgICAvLyBu ZWVkcyB0byBiZSBjaGFuZ2VkIGJhY2suCi0gICAgIHJldF92YWwgPSAtcmV0X3ZhbDsKLSAgICAg U0VDQ09NUF9QQVJNNChjdHgpID0gMTsKLS0gIH0gZWxzZQotKyAgfSBlbHNlIHsKLSAgICAgU0VD Q09NUF9QQVJNNChjdHgpID0gMDsKLSsgIH0KLSsjZW5kaWYKLSsjaWYgZGVmaW5lZChfX3Bvd2Vy cGM2NF9fKQotKyAgLy8gU2FtZSBhcyBNSVBTLCBuZWVkIHRvIGludmVydCByZXQgYW5kIHNldCBl cnJvciByZWdpc3RlciAoY3IwLlNPKQotKyAgaWYgKHJldF92YWwgPD0gLTEgJiYgcmV0X3ZhbCA+ PSAtNDA5NSkgewotKyAgICByZXRfdmFsID0gLXJldF92YWw7Ci0rICAgIGN0eC0+dWNfbWNvbnRl eHQucmVncy0+Y2NyIHw9ICgxIDw8IDI4KTsKLSsgIH0gZWxzZSB7Ci0rICAgIGN0eC0+dWNfbWNv bnRleHQucmVncy0+Y2NyICY9IH4oMSA8PCAyOCk7Ci0rICB9Ci0gI2VuZGlmCi0gICBTRUNDT01Q X1JFU1VMVChjdHgpID0gc3RhdGljX2Nhc3Q8Z3JlZ190PihyZXRfdmFsKTsKLSB9Ci1kaWZmIC0t Z2l0IHNhbmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYyBzYW5kYm94L2xpbnV4L3NlY2Nv bXAtYnBmL3RyYXAuY2MKLWluZGV4IDk4ODRiZThiYi4uOThlNDM3MWFhIDEwMDY0NAotLS0tIHNh bmRib3gvbGludXgvc2VjY29tcC1icGYvdHJhcC5jYwotKysrIHNhbmRib3gvbGludXgvc2VjY29t cC1icGYvdHJhcC5jYwotQEAgLTIzMiw2ICsyMzIsMjAgQEAgdm9pZCBUcmFwOjpTaWdTeXMoaW50 IG5yLCBMaW51eFNpZ0luZm8qIGluZm8sIHVjb250ZXh0X3QqIGN0eCkgewotICAgICAgIFNldElz SW5TaWdIYW5kbGVyKCk7Ci0gICAgIH0KLSAKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyAgICAvLyBPbiBwcGM2NCtnbGliYywgc29tZSBzeXNjYWxscyBzZWVtIHRvIGFjY2lkZW50YWxs eSBuZWdhdGUgdGhlIGZpcnN0Ci0rICAgIC8vIHBhcmFtZXRlciB3aGljaCBjYXVzZXMgY2hlY2tz IGFnYWluc3QgaXQgdG8gZmFpbC4gRm9yIG5vdywgbWFudWFsbHkKLSsgICAgLy8gbmVnYXRlIHRo ZW0gYmFjay4KLSsgICAgLy8gVE9ETyhzaGF3bkBhbmFzdGFzLmlvKTogaW52ZXN0aWdhdGUgdGhp cyBpc3N1ZSBmdXJ0aGVyCi0rICAgIGF1dG8gbnIgPSBTRUNDT01QX1NZU0NBTEwoY3R4KTsKLSsg ICAgaWYgKG5yID09IF9fTlJfb3BlbmF0IHx8IG5yID09IF9fTlJfbWtkaXJhdCB8fCBuciA9PSBf X05SX2ZhY2Nlc3NhdCB8fCBuciA9PSBfX05SX3JlYWRsaW5rYXQgfHwKLSsgICAgICAgIG5yID09 IF9fTlJfcmVuYW1lYXQgfHwgbnIgPT0gX19OUl9yZW5hbWVhdDIgfHwgbnIgPT0gX19OUl9uZXdm c3RhdGF0IHx8IG5yID09IF9fTlJfdW5saW5rYXQpIHsKLSsgICAgICAgIGlmIChzdGF0aWNfY2Fz dDxpbnQ+KFNFQ0NPTVBfUEFSTTEoY3R4KSkgPiAwKSB7Ci0rICAgICAgICAgICAgU0VDQ09NUF9Q QVJNMShjdHgpID0gLVNFQ0NPTVBfUEFSTTEoY3R4KTsKLSsgICAgICAgIH0KLSsgICAgfQotKyNl bmRpZgotKwotICAgICAvLyBDb3B5IHRoZSBzZWNjb21wLXNwZWNpZmljIGRhdGEgaW50byBhIGFy Y2hfc2VjY29tcF9kYXRhIHN0cnVjdHVyZS4gVGhpcwotICAgICAvLyBpcyB3aGF0IHdlIGFyZSBz aG93aW5nIHRvIFRyYXBGbmMgY2FsbGJhY2tzIHRoYXQgdGhlIHN5c3RlbSBjYWxsCi0gICAgIC8v IGV2YWx1YXRvciByZWdpc3RlcmVkIHdpdGggdGhlIHNhbmRib3guCi1kaWZmIC0tZ2l0IHNhbmRi b3gvbGludXgvc2VydmljZXMvY3JlZGVudGlhbHMuY2Mgc2FuZGJveC9saW51eC9zZXJ2aWNlcy9j cmVkZW50aWFscy5jYwotaW5kZXggZDdiNWQ4YzQ0Li40YWRjNmQwZDQgMTAwNjQ0Ci0tLS0gc2Fu ZGJveC9saW51eC9zZXJ2aWNlcy9jcmVkZW50aWFscy5jYwotKysrIHNhbmRib3gvbGludXgvc2Vy dmljZXMvY3JlZGVudGlhbHMuY2MKLUBAIC04MSw3ICs4MSw3IEBAIGJvb2wgQ2hyb290VG9TYWZl RW1wdHlEaXIoKSB7Ci0gICBwaWRfdCBwaWQgPSAtMTsKLSAgIGFsaWduYXMoMTYpIGNoYXIgc3Rh Y2tfYnVmW1BUSFJFQURfU1RBQ0tfTUlOXTsKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFN SUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTV9GQU1JTFkpIHx8IFwKLS0gICAgZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSsgICAgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkg fHwgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0gICAvLyBUaGUgc3RhY2sgZ3Jvd3Mg ZG93bndhcmQuCi0gICB2b2lkKiBzdGFjayA9IHN0YWNrX2J1ZiArIHNpemVvZihzdGFja19idWYp OwotICNlbHNlCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93cmFw cGVycy5jYyBzYW5kYm94L2xpbnV4L3NlcnZpY2VzL3N5c2NhbGxfd3JhcHBlcnMuY2MKLWluZGV4 IGZjZmQyYWExMi4uZjZlYjMyZmI3IDEwMDY0NAotLS0tIHNhbmRib3gvbGludXgvc2VydmljZXMv c3lzY2FsbF93cmFwcGVycy5jYwotKysrIHNhbmRib3gvbGludXgvc2VydmljZXMvc3lzY2FsbF93 cmFwcGVycy5jYwotQEAgLTU4LDcgKzU4LDcgQEAgbG9uZyBzeXNfY2xvbmUodW5zaWduZWQgbG9u ZyBmbGFncywKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfNjQpCi0gICByZXR1cm4gc3lzY2Fs bChfX05SX2Nsb25lLCBmbGFncywgY2hpbGRfc3RhY2ssIHB0aWQsIGN0aWQsIHRscyk7Ci0gI2Vs aWYgZGVmaW5lZChBUkNIX0NQVV9YODYpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNX0ZBTUlMWSkg fHwgXAotLSAgICBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotKyAgICBkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSAg IC8vIENPTkZJR19DTE9ORV9CQUNLV0FSRFMgZGVmaW5lZC4KLSAgIHJldHVybiBzeXNjYWxsKF9f TlJfY2xvbmUsIGZsYWdzLCBjaGlsZF9zdGFjaywgcHRpZCwgdGxzLCBjdGlkKTsKLSAjZW5kaWYK LWRpZmYgLS1naXQgc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9icm9rZXJfcHJvY2Vzcy5j YyBzYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJva2VyL2Jyb2tlcl9wcm9jZXNzLmNjCi1pbmRleCA4 MzIxZDIzNzkuLjdlNWFkMWRlMyAxMDA2NDQKLS0tLSBzYW5kYm94L2xpbnV4L3N5c2NhbGxfYnJv a2VyL2Jyb2tlcl9wcm9jZXNzLmNjCi0rKysgc2FuZGJveC9saW51eC9zeXNjYWxsX2Jyb2tlci9i cm9rZXJfcHJvY2Vzcy5jYwotQEAgLTE1Nyw3ICsxNTcsNyBAQCBib29sIEJyb2tlclByb2Nlc3M6 OklzU3lzY2FsbEFsbG93ZWQoaW50IHN5c25vKSBjb25zdCB7Ci0gI2lmIGRlZmluZWQoX19OUl9m c3RhdGF0KQotICAgICBjYXNlIF9fTlJfZnN0YXRhdDoKLSAjZW5kaWYKLS0jaWYgZGVmaW5lZChf X3g4Nl82NF9fKSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKQotKyNpZiBkZWZpbmVkKF9feDg2XzY0 X18pIHx8IGRlZmluZWQoX19hYXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAg ICAgY2FzZSBfX05SX25ld2ZzdGF0YXQ6Ci0gI2VuZGlmCi0gICAgICAgcmV0dXJuICFmYXN0X2No ZWNrX2luX2NsaWVudF8gfHwgYWxsb3dlZF9jb21tYW5kX3NldF8udGVzdChDT01NQU5EX1NUQVQp OwotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAu aCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NlY2NvbXAuaAotaW5kZXggYTYw ZmUyYWQzLi45ZGNjZGI1MWQgMTAwNjQ0Ci0tLS0gc2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVy cy9saW51eF9zZWNjb21wLmgKLSsrKyBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4 X3NlY2NvbXAuaAotQEAgLTI5LDYgKzI5LDkgQEAKLSAjaWZuZGVmIEVNX0FBUkNINjQKLSAjZGVm aW5lIEVNX0FBUkNINjQgMTgzCi0gI2VuZGlmCi0rI2lmbmRlZiBFTV9QUEM2NAotKyNkZWZpbmUg RU1fUFBDNjQgMjEKLSsjZW5kaWYKLSAKLSAjaWZuZGVmIF9fQVVESVRfQVJDSF82NEJJVAotICNk ZWZpbmUgX19BVURJVF9BUkNIXzY0QklUIDB4ODAwMDAwMDAKLUBAIC01NCw2ICs1NywxMiBAQAot ICNpZm5kZWYgQVVESVRfQVJDSF9BQVJDSDY0Ci0gI2RlZmluZSBBVURJVF9BUkNIX0FBUkNINjQg KEVNX0FBUkNINjQgfCBfX0FVRElUX0FSQ0hfNjRCSVQgfCBfX0FVRElUX0FSQ0hfTEUpCi0gI2Vu ZGlmCi0rI2lmbmRlZiBBVURJVF9BUkNIX1BQQzY0Ci0rI2RlZmluZSBBVURJVF9BUkNIX1BQQzY0 IChFTV9QUEM2NCB8IF9fQVVESVRfQVJDSF82NEJJVCkKLSsjZW5kaWYKLSsjaWZuZGVmIEFVRElU X0FSQ0hfUFBDNjRMRQotKyNkZWZpbmUgQVVESVRfQVJDSF9QUEM2NExFIChFTV9QUEM2NCB8IF9f QVVESVRfQVJDSF82NEJJVCB8IF9fQVVESVRfQVJDSF9MRSkKLSsjZW5kaWYKLSAKLSAvLyBGb3Ig cHJjdGwuaAotICNpZm5kZWYgUFJfU0VUX1NFQ0NPTVAKLWRpZmYgLS1naXQgc2FuZGJveC9saW51 eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFk ZXJzL2xpbnV4X3NpZ25hbC5oCi1pbmRleCBmNWE3MzY3NjEuLjUxNWIyMWE1ZiAxMDA2NDQKLS0t LSBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3NpZ25hbC5oCi0rKysgc2FuZGJv eC9saW51eC9zeXN0ZW1faGVhZGVycy9saW51eF9zaWduYWwuaAotQEAgLTEzLDcgKzEzLDcgQEAK LSAvLyAobm90IHVuZGVmaW5lZCwgYnV0IGRlZmluZWQgZGlmZmVyZW50IHZhbHVlcyBhbmQgaW4g ZGlmZmVyZW50IG1lbW9yeQotIC8vIGxheW91dHMpLiBTbywgZmlsbCB0aGUgZ2FwIGhlcmUuCi0g I2lmIGRlZmluZWQoX19pMzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChf X2FybV9fKSB8fCBcCi0tICAgIGRlZmluZWQoX19hYXJjaDY0X18pCi0rICAgIGRlZmluZWQoX19h YXJjaDY0X18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAKLSAjZGVmaW5lIExJTlVYX1NJ R0hVUCAxCi0gI2RlZmluZSBMSU5VWF9TSUdJTlQgMgotZGlmZiAtLWdpdCBzYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmggc2FuZGJveC9saW51eC9zeXN0ZW1faGVh ZGVycy9saW51eF9zeXNjYWxscy5oCi1pbmRleCAyYjc4YTBjYzMuLjBhNzBmNWVhNSAxMDA2NDQK LS0tLSBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgKLSsrKyBz YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xpbnV4X3N5c2NhbGxzLmgKLUBAIC0zNSw1ICsz NSw5IEBACi0gI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvYXJtNjRfbGlu dXhfc3lzY2FsbHMuaCIKLSAjZW5kaWYKLSAKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQot KyNpbmNsdWRlICJzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2Nh bGxzLmgiCi0rI2VuZGlmCi0rCi0gI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFE RVJTX0xJTlVYX1NZU0NBTExTX0hfCi0gCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvbGludXhfdWNvbnRleHQuaCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL2xp bnV4X3Vjb250ZXh0LmgKLWluZGV4IDIyY2U3ODAyNy4uYTY5YjAyNGMyIDEwMDY0NAotLS0tIHNh bmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAotKysrIHNhbmRib3gv bGludXgvc3lzdGVtX2hlYWRlcnMvbGludXhfdWNvbnRleHQuaAotQEAgLTExLDYgKzExLDggQEAK LSAjaW5jbHVkZSAic2FuZGJveC9saW51eC9zeXN0ZW1faGVhZGVycy9hcm1fbGludXhfdWNvbnRl eHQuaCIKLSAjZWxpZiBkZWZpbmVkKF9faTM4Nl9fKQotICNpbmNsdWRlICJzYW5kYm94L2xpbnV4 L3N5c3RlbV9oZWFkZXJzL2kzODZfbGludXhfdWNvbnRleHQuaCIKLSsjZWxpZiBkZWZpbmVkKF9f cG93ZXJwYzY0X18pCi0rI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVtX2hlYWRlcnMvcHBj NjRfbGludXhfdWNvbnRleHQuaCIKLSAjZWxzZQotICNlcnJvciAiTm8gc3VwcG9ydCBmb3IgeW91 ciBhcmNoaXRlY3R1cmUgaW4gUE5hQ2wgaGVhZGVyIgotICNlbmRpZgotZGlmZiAtLWdpdCBzYW5k Ym94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmggc2FuZGJveC9s aW51eC9zeXN0ZW1faGVhZGVycy9wcGM2NF9saW51eF9zeXNjYWxscy5oCi1uZXcgZmlsZSBtb2Rl IDEwMDY0NAotaW5kZXggMDAwMDAwMDAwLi5jY2FjZmZlMjIKLS0tLSAvZGV2L251bGwKLSsrKyBz YW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJzL3BwYzY0X2xpbnV4X3N5c2NhbGxzLmgKLUBAIC0w LDAgKzEsMTIgQEAKLSsvLyBDb3B5cmlnaHQgMjAxNCBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxs IHJpZ2h0cyByZXNlcnZlZC4KLSsvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5l ZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0rLy8gZm91bmQgaW4gdGhlIExJ Q0VOU0UgZmlsZS4KLSsKLSsjaWZuZGVmIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBD NjRfTElOVVhfU1lTQ0FMTFNfSF8KLSsjZGVmaW5lIFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURF UlNfUFBDNjRfTElOVVhfU1lTQ0FMTFNfSF8KLSsKLSsjaW5jbHVkZSA8YXNtL3VuaXN0ZC5oPgot KwotKy8vVE9ETzogaXMgaXQgbmVjZXNzYXJ5IHRvIHJlZGVmaW5lIHN5c2NhbGwgbnVtYmVycyBm b3IgUFBDNjQ/Ci0rCi0rI2VuZGlmICAvLyBTQU5EQk9YX0xJTlVYX1NZU1RFTV9IRUFERVJTX1BQ QzY0X0xJTlVYX1NZU0NBTExTX0hfCi1kaWZmIC0tZ2l0IHNhbmRib3gvbGludXgvc3lzdGVtX2hl YWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaCBzYW5kYm94L2xpbnV4L3N5c3RlbV9oZWFkZXJz L3BwYzY0X2xpbnV4X3Vjb250ZXh0LmgKLW5ldyBmaWxlIG1vZGUgMTAwNjQ0Ci1pbmRleCAwMDAw MDAwMDAuLjA3NzI4ZTA4NwotLS0tIC9kZXYvbnVsbAotKysrIHNhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvcHBjNjRfbGludXhfdWNvbnRleHQuaAotQEAgLTAsMCArMSwxMiBAQAotKy8vIENv cHlyaWdodCAyMDE0IFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot Ky8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxp Y2Vuc2UgdGhhdCBjYW4gYmUKLSsvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotKwotKyNp Zm5kZWYgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09OVEVYVF9I XwotKyNkZWZpbmUgU0FOREJPWF9MSU5VWF9TWVNURU1fSEVBREVSU19QUEM2NF9MSU5VWF9VQ09O VEVYVF9IXwotKwotKyNpbmNsdWRlIDxzeXMvdWNvbnRleHQuaD4KLSsKLSsvL1RPRE86IGlzIGl0 IG5lY2Vzc2FyeSB0byByZWRlZmluZSB1Y29udGV4dCBvbiBQUEM2ND8KLSsKLSsjZW5kaWYgIC8v IFNBTkRCT1hfTElOVVhfU1lTVEVNX0hFQURFUlNfUFBDNjRfTElOVVhfVUNPTlRFWFRfSF8KLWRp ZmYgLS1naXQgc2VydmljZXMvc2VydmljZV9tYW5hZ2VyL3NhbmRib3gvbGludXgvYnBmX3JlbmRl cmVyX3BvbGljeV9saW51eC5jYyBzZXJ2aWNlcy9zZXJ2aWNlX21hbmFnZXIvc2FuZGJveC9saW51 eC9icGZfcmVuZGVyZXJfcG9saWN5X2xpbnV4LmNjCi1pbmRleCBmYjg5YjMzNTYuLjFlOTg0NzMx ZSAxMDA2NDQKLS0tLSBzYW5kYm94L3BvbGljeS9saW51eC9icGZfcmVuZGVyZXJfcG9saWN5X2xp bnV4LmNjCi0rKysgc2FuZGJveC9wb2xpY3kvbGludXgvYnBmX3JlbmRlcmVyX3BvbGljeV9saW51 eC5jYwotQEAgLTE1LDYgKzE1LDExIEBACi0gI2luY2x1ZGUgInNhbmRib3gvbGludXgvc3lzdGVt X2hlYWRlcnMvbGludXhfc3lzY2FsbHMuaCIKLSAjaW5jbHVkZSAic2VydmljZXMvc2VydmljZV9t YW5hZ2VyL3NhbmRib3gvbGludXgvc2FuZGJveF9saW51eC5oIgotIAotKy8vIE9uIFBQQzY0LCBU Q0dFVFMgaXMgZGVmaW5lZCBpbiB0ZXJtcyBvZiBzdHJ1Y3QgdGVybWlvcywgc28gd2UgbXVzdCBp bmNsdWRlIHRlcm1pb3MuaAotKyNpZmRlZiBfX3Bvd2VycGM2NF9fCi0rI2luY2x1ZGUgPHRlcm1p b3MuaD4KLSsjZW5kaWYKLSsKLSAvLyBUT0RPKHZpZ25hdHRpKTogcmVwbGFjZSB0aGUgbG9jYWwg ZGVmaW5pdGlvbnMgYmVsb3cgd2l0aCAjaW5jbHVkZQotIC8vIDxsaW51eC9kbWEtYnVmLmg+IG9u Y2Uga2VybmVsIHZlcnNpb24gNC42IGJlY29tZXMgd2lkZWx5IHVzZWQuCi0gI2luY2x1ZGUgPGxp bnV4L3R5cGVzLmg+Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90 cmFuc2xhdG9yL0luZm9TaW5rLmggdGhpcmRfcGFydHkvYW5nbGUvc3JjL2NvbXBpbGVyL3RyYW5z bGF0b3IvSW5mb1NpbmsuaAotaW5kZXggM2E4MDdlMWUuLjUyNTg2MTdhIDEwMDY0NAotLS0tIHRo aXJkX3BhcnR5L2FuZ2xlL3NyYy9jb21waWxlci90cmFuc2xhdG9yL0luZm9TaW5rLmgKLSsrKyB0 aGlyZF9wYXJ0eS9hbmdsZS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9JbmZvU2luay5oCi1AQCAt OTIsNyArOTIsMTYgQEAgY2xhc3MgVEluZm9TaW5rQmFzZQotICAgICAgICAgICAgIHN0cmVhbS5w cmVjaXNpb24oOCk7Ci0gICAgICAgICAgICAgc3RyZWFtIDw8IGY7Ci0gICAgICAgICB9Ci0tICAg ICAgICBzaW5rLmFwcGVuZChzdHJlYW0uc3RyKCkpOwotKwotKyAgICAgICAgLy8gSGFjayB0byB3 b3JrIGFyb3VuZCBhIGJ1ZyB3aGVyZSBuZWdhdGl2ZSBmbG9hdGluZyBwb2ludCB2YWx1ZXMKLSsg ICAgICAgIC8vIGFyZSByZW5kZXJlZCBsaWtlICcuMC41JyBpbnN0ZWFkIG9mICctMC41JwotKyAg ICAgICAgc3RkOjpzdHJpbmcgcmVzKHN0cmVhbS5zdHIoKSk7Ci0rCi0rICAgICAgICBpZiAoc2ln bmJpdChmKSkgeyAvLyB0ZXN0IGlmIGYgaXMgbmVnYXRpdmUKLSsgICAgICAgICAgICByZXNbMF0g PSAnLSc7Ci0rICAgICAgICB9Ci0rCi0rICAgICAgICBzaW5rLmFwcGVuZChyZXMpOwotICAgICAg ICAgcmV0dXJuICp0aGlzOwotICAgICB9Ci0gICAgIC8vIFdyaXRlIGJvb2xlYW4gdmFsdWVzIGFz IHRoZWlyIG5hbWVzIGluc3RlYWQgb2YgaW50ZWdyYWwgdmFsdWUuCi1kaWZmIC0tZ2l0IHRoaXJk X3BhcnR5L2FuZ2xlL3NyYy9saWJBTkdMRS9Db25zdGFudHMuaCB0aGlyZF9wYXJ0eS9hbmdsZS9z cmMvbGliQU5HTEUvQ29uc3RhbnRzLmgKLWluZGV4IDQyOTY0Y2MxLi42NjA3ZGVlYiAxMDA2NDQK LS0tLSB0aGlyZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmgKLSsrKyB0aGly ZF9wYXJ0eS9hbmdsZS9zcmMvbGliQU5HTEUvQ29uc3RhbnRzLmgKLUBAIC05LDYgKzksNyBAQAot ICNpZm5kZWYgTElCQU5HTEVfQ09OU1RBTlRTX0hfCi0gI2RlZmluZSBMSUJBTkdMRV9DT05TVEFO VFNfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0ZGRlZj4KLSAjaW5jbHVkZSAiY29tbW9uL3BsYXRmb3Jt LmgiCi0gCi0gI2luY2x1ZGUgPHN0ZGludC5oPgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9ib3Jp bmdzc2wvQlVJTEQuZ24gdGhpcmRfcGFydHkvYm9yaW5nc3NsL0JVSUxELmduCi1pbmRleCBiNDM1 NDk5ZjQuLmFjOGE4NGI2ZCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQu Z24KLSsrKyB0aGlyZF9wYXJ0eS9ib3Jpbmdzc2wvQlVJTEQuZ24KLUBAIC0xMDEsNiArMTAxLDEz IEBAIGlmIChpc193aW4gJiYgIWlzX21zYW4gJiYgY3VycmVudF9jcHUgIT0gImFybTY0Iikgewot ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICBwdWJsaWNfY29uZmlncyA9IFsgIjpub19hc21fY29u ZmlnIiBdCi0gICAgICAgfQotKyAgICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09ICJwcGM2NCIp IHsKLSsgICAgICBpZiAoaXNfbGludXgpIHsKLSsgICAgICAgICMgVE9ETzogcHBjNjQgKGJlKSBj aGVjawotKyAgICAgICAgc291cmNlcyArPSBjcnlwdG9fc291cmNlc19saW51eF9wcGM2NGxlCi0r ICAgICAgfSBlbHNlIHsKLSsgICAgICAgIHB1YmxpY19jb25maWdzID0gWyAiOm5vX2FzbV9jb25m aWciIF0KLSsgICAgICB9Ci0gICAgIH0gZWxzZSB7Ci0gICAgICAgcHVibGljX2NvbmZpZ3MgPSBb ICI6bm9fYXNtX2NvbmZpZyIgXQotICAgICB9Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFr cGFkL0JVSUxELmduIHRoaXJkX3BhcnR5L2JyZWFrcGFkL0JVSUxELmduCi1pbmRleCA1NjE3ZGU4 OC4uZGM4YmMxNzYgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvQlVJTEQuZ24KLSsr KyB0aGlyZF9wYXJ0eS9icmVha3BhZC9CVUlMRC5nbgotQEAgLTU5OCw3ICs1OTgsNiBAQCBpZiAo aXNfbGludXggfHwgaXNfYW5kcm9pZCkgewotICAgICAgICJicmVha3BhZC9zcmMvY2xpZW50L21p bmlkdW1wX2ZpbGVfd3JpdGVyLmgiLAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2NvbnZl cnRfVVRGLmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9jb252ZXJ0X1VURi5oIiwK LS0gICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVha3BhZF9nZXRjb250ZXh0LlMi LAotICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuY2MiLAot ICAgICAgICJicmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L2VsZl9jb3JlX2R1bXAuaCIsCi0gICAg ICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxmdXRpbHMuY2MiLAotQEAgLTYzNiw2ICs2 MzUsMTQgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAKLSAgICAgbGlicyA9IFsg ImRsIiBdCi0gCi0rICAgIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0rICAgICAgICBk ZWZpbmVzID0gWyAiSEFWRV9HRVRDT05URVhUIiBdCi0rICAgIH0gZWxzZSB7Ci0rICAgICAgICBz b3VyY2VzICs9IFsKLSsgICAgICAgICAgICAiYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9icmVh a3BhZF9nZXRjb250ZXh0LlMiCi0rICAgICAgICBdCi0rICAgIH0KLSsKLSAgICAgaW5jbHVkZV9k aXJzID0gWwotICAgICAgICIuIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjIiwKLUBAIC02ODYsNyAr NjkzLDYgQEAgaWYgKGlzX2xpbnV4IHx8IGlzX2FuZHJvaWQpIHsKLSAgICAgICAiYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0 LmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0X3V0aWxzLmNjIiwKLSAgICAgICAiYnJlYWtwYWQvc3Jj L2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvcHJvY19jcHVpbmZvX3JlYWRlcl91bml0dGVz dC5jYyIsCi0tICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvYnJlYWtwYWRfZ2V0Y29u dGV4dF91bml0dGVzdC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGludXgvZWxm X2NvcmVfZHVtcF91bml0dGVzdC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGlu dXgvZmlsZV9pZF91bml0dGVzdC5jYyIsCi0gICAgICAgImJyZWFrcGFkL3NyYy9jb21tb24vbGlu dXgvbGludXhfbGliY19zdXBwb3J0X3VuaXR0ZXN0LmNjIiwKLWRpZmYgLS1naXQgdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24v cmF3X2NvbnRleHRfY3B1LmggdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vcmF3X2NvbnRleHRfY3B1LmgKLWluZGV4IDA3ZDkx NzFhLi45YWVkNGNiMyAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi9yYXdfY29udGV4dF9jcHUuaAotKysr IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3Jhd19jb250ZXh0X2NwdS5oCi1AQCAtNDQsNiArNDQsOCBAQCB0eXBlZGVmIE1E UmF3Q29udGV4dEFSTSBSYXdDb250ZXh0Q1BVOwotIHR5cGVkZWYgTURSYXdDb250ZXh0QVJNNjRf T2xkIFJhd0NvbnRleHRDUFU7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSB0eXBlZGVmIE1E UmF3Q29udGV4dE1JUFMgUmF3Q29udGV4dENQVTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rdHlwZWRlZiBNRFJhd0NvbnRleHRQUEM2NCBSYXdDb250ZXh0Q1BVOwotICNlbHNlCi0g I2Vycm9yICJUaGlzIGNvZGUgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB5b3VyIHBsYXRmb3JtIHll dC4iCi0gI2VuZGlmCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3RocmVhZF9pbmZvLmNjIHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9u L3RocmVhZF9pbmZvLmNjCi1pbmRleCBhYWUxZGMxMy4uMDNhZmVjN2EgMTAwNjQ0Ci0tLS0gdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9j b21tb24vdGhyZWFkX2luZm8uY2MKLSsrKyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5jYwotQEAgLTI3 MCw3ICsyNzAsNDIgQEAgdm9pZCBUaHJlYWRJbmZvOjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0 Q1BVKiBvdXQpIGNvbnN0IHsKLSAgIG91dC0+ZmxvYXRfc2F2ZS5maXIgPSBtY29udGV4dC5mcGNf ZWlyOwotICNlbmRpZgotIH0KLS0jZW5kaWYgIC8vIF9fbWlwc19fCi0rCi0rI2VsaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKwotK3VpbnRwdHJfdCBUaHJlYWRJbmZvOjpHZXRJbnN0cnVjdGlv blBvaW50ZXIoKSBjb25zdCB7Ci0rICAgIHJldHVybiBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07 Ci0rfQotKwotK3ZvaWQgVGhyZWFkSW5mbzo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSog b3V0KSBjb25zdCB7Ci0rICAgIG91dC0+Y29udGV4dF9mbGFncyA9IE1EX0NPTlRFWFRfUFBDNjRf RlVMTDsKLSsgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9DT05URVhUX1BQQzY0X0dQUl9DT1VO VDsgaSsrKQotKyAgICAgICAgb3V0LT5ncHJbaV0gPSBtY29udGV4dC5ncF9yZWdzW2ldOwotKwot KyAgICBvdXQtPmxyID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktdOwotKyAgICBvdXQtPnNycjAg PSBtY29udGV4dC5ncF9yZWdzW1BUX05JUF07Ci0rICAgIG91dC0+c3JyMSA9IG1jb250ZXh0Lmdw X3JlZ3NbUFRfTVNSXTsKLSsgICAgb3V0LT5jciA9IG1jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXTsK LSsgICAgb3V0LT54ZXIgPSBtY29udGV4dC5ncF9yZWdzW1BUX1hFUl07Ci0rICAgIG91dC0+Y3Ry ID0gbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdOwotKyAgICAKLSsgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91 dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSBtY29udGV4dC5mcF9yZWdzW2ldOwotKwotKyAgICBv dXQtPmZsb2F0X3NhdmUuZnBzY3IgPSBtY29udGV4dC5mcF9yZWdzW05GUFJFRy0xXTsKLSsKLSsg ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBNRF9WRUNUT1JTQVZFQVJFQV9QUENfVlJfQ09VTlQ7IGkr KykKLSsgICAgICAgIG91dC0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXSA9IFwKLSsgICAgICAgICAg ICB7KCgodWludDY0X3QpdnJlZ3MudnJyZWdzW2ldWzBdKSA8PCAzMikgCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICB8IHZyZWdzLnZycmVnc1tpXVsxXSwgCi0rICAgICAgICAgICAgKCgodWlu dDY0X3QpdnJlZ3MudnJyZWdzW2ldWzJdKSA8PCAzMikKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgfCB2cmVncy52cnJlZ3NbaV1bM119OwotKwotKyAgICBvdXQtPnZyc2F2ZSA9IHZyZWdzLnZy c2F2ZTsKLSsgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZzY3IgPSB7MCwgdnJlZ3MudnNjci52 c2NyX3dvcmR9OwotKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnJ2YWxpZCA9IDB4RkZGRkZG RkY7IAotK30KLSsjZW5kaWYgIC8vIF9fcG93ZXJwYzY0X18KLSAKLSB2b2lkIFRocmVhZEluZm86 OkdldEdlbmVyYWxQdXJwb3NlUmVnaXN0ZXJzKHZvaWQqKiBncF9yZWdzLCBzaXplX3QqIHNpemUp IHsKLSAgIGFzc2VydChncF9yZWdzIHx8IHNpemUpOwotQEAgLTI3OSw2ICszMTQsMTEgQEAgdm9p ZCBUaHJlYWRJbmZvOjpHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycyh2b2lkKiogZ3BfcmVncywg c2l6ZV90KiBzaXplKSB7Ci0gICAgICpncF9yZWdzID0gbWNvbnRleHQuZ3JlZ3M7Ci0gICBpZiAo c2l6ZSkKLSAgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZ3JlZ3MpOwotKyNlbGlmIGRlZmlu ZWQoX19wb3dlcnBjNjRfXykKLSsgIGlmIChncF9yZWdzKQotKyAgICAqZ3BfcmVncyA9IG1jb250 ZXh0LmdwX3JlZ3M7Ci0rICBpZiAoc2l6ZSkKLSsgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQu Z3BfcmVncyk7Ci0gI2Vsc2UKLSAgIGlmIChncF9yZWdzKQotICAgICAqZ3BfcmVncyA9ICZyZWdz OwotQEAgLTI5NCw2ICszMzQsMTEgQEAgdm9pZCBUaHJlYWRJbmZvOjpHZXRGbG9hdGluZ1BvaW50 UmVnaXN0ZXJzKHZvaWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUpIHsKLSAgICAgKmZwX3JlZ3Mg PSAmbWNvbnRleHQuZnByZWdzOwotICAgaWYgKHNpemUpCi0gICAgICpzaXplID0gc2l6ZW9mKG1j b250ZXh0LmZwcmVncyk7Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgaWYgKGZw X3JlZ3MpCi0rICAgICpmcF9yZWdzID0gJm1jb250ZXh0LmZwX3JlZ3M7Ci0rICBpZiAoc2l6ZSkK LSsgICAgKnNpemUgPSBzaXplb2YobWNvbnRleHQuZnBfcmVncyk7Ci0gI2Vsc2UKLSAgIGlmIChm cF9yZWdzKQotICAgICAqZnBfcmVncyA9ICZmcHJlZ3M7Ci1AQCAtMzAyLDQgKzM0NywxMyBAQCB2 b2lkIFRocmVhZEluZm86OkdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnModm9pZCoqIGZwX3JlZ3Ms IHNpemVfdCogc2l6ZSkgewotICNlbmRpZgotIH0KLSAKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotK3ZvaWQgVGhyZWFkSW5mbzo6R2V0VmVjdG9yUmVnaXN0ZXJzKHZvaWQqKiB2X3JlZ3Ms IHNpemVfdCogc2l6ZSkgewotKyAgICBpZiAodl9yZWdzKQotKyAgICAgICAgKnZfcmVncyA9ICZ2 cmVnczsKLSsgICAgaWYgKHNpemUpCi0rICAgICAgICAqc2l6ZSA9IHNpemVvZih2cmVncyk7Ci0r fQotKyNlbmRpZgotKwotIH0gIC8vIG5hbWVzcGFjZSBnb29nbGVfYnJlYWtwYWQKLWRpZmYgLS1n aXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdGhyZWFkX2luZm8uaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi90aHJlYWRfaW5mby5oCi1pbmRleCBm YjIxNmZhNi4uNTkzYWFjODIgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdGhyZWFkX2luZm8uaAotKysr IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3RocmVhZF9pbmZvLmgKLUBAIC02OCw2ICs2OCwxMCBAQCBzdHJ1Y3QgVGhyZWFk SW5mbyB7Ci0gICAvLyBVc2UgdGhlIHN0cnVjdHVyZXMgZGVmaW5lZCBpbiA8c3lzL3VzZXIuaD4K LSAgIHN0cnVjdCB1c2VyX3JlZ3Nfc3RydWN0IHJlZ3M7Ci0gICBzdHJ1Y3QgdXNlcl9mcHNpbWRf c3RydWN0IGZwcmVnczsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBVc2Ug dGhlIHN0cnVjdHVyZXMgZGVmaW5lZCBpbiA8c3lzL3Vjb250ZXh0Lmg+LgotKyAgbWNvbnRleHRf dCBtY29udGV4dDsKLSsgIHZycmVnc2V0X3QgdnJlZ3M7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNf XykKLSAgIC8vIFVzZSB0aGUgc3RydWN0dXJlIGRlZmluZWQgaW4gPHN5cy91Y29udGV4dC5oPi4K LSAgIG1jb250ZXh0X3QgbWNvbnRleHQ7Ci1AQCAtODQsNiArODgsMTEgQEAgc3RydWN0IFRocmVh ZEluZm8gewotIAotICAgLy8gUmV0dXJucyB0aGUgcG9pbnRlciBhbmQgc2l6ZSBvZiBmbG9hdCBw b2ludCByZWdpc3RlciBhcmVhLgotICAgdm9pZCBHZXRGbG9hdGluZ1BvaW50UmVnaXN0ZXJzKHZv aWQqKiBmcF9yZWdzLCBzaXplX3QqIHNpemUpOwotKwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rICAvLyBSZXR1cm5zIHRoZSBwb2ludGVyIGFuZCBzaXplIG9mIHRoZSB2ZWN0b3IgcmVn aXN0ZXIgYXJlYS4gKFBQQzY0IG9ubHkpCi0rICB2b2lkIEdldFZlY3RvclJlZ2lzdGVycyh2b2lk Kiogdl9yZWdzLCBzaXplX3QqIHNpemUpOwotKyNlbmRpZgotIH07Ci0gCi0gfSAgLy8gbmFtZXNw YWNlIGdvb2dsZV9icmVha3BhZAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVh a3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4dF9yZWFkZXIu Y2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dy aXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCi1pbmRleCBlZTUxNWM0MS4uMTA5MDQ3MGYg MTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51 eC9kdW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmNjCi0rKysgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9kdW1wX3dyaXRlcl9jb21tb24vdWNv bnRleHRfcmVhZGVyLmNjCi1AQCAtMjU0LDYgKzI1NCw0OCBAQCB2b2lkIFVDb250ZXh0UmVhZGVy OjpGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVj KSB7Ci0gICBvdXQtPmZsb2F0X3NhdmUuZmlyID0gdWMtPnVjX21jb250ZXh0LmZwY19laXI7ICAv LyBVbnVzZWQuCi0gI2VuZGlmCi0gfQotKwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSsKLSt1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6OkdldFN0YWNrUG9pbnRlcihjb25zdCB1Y29u dGV4dF90KiB1YykgewotKyAgICByZXR1cm4gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbTURfQ09O VEVYVF9QUEM2NF9SRUdfU1BdOwotK30KLSsKLSt1aW50cHRyX3QgVUNvbnRleHRSZWFkZXI6Okdl dEluc3RydWN0aW9uUG9pbnRlcihjb25zdCB1Y29udGV4dF90KiB1YykgewotKyAgICByZXR1cm4g dWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsKLSt9Ci0rCi0rdm9pZCBVQ29udGV4dFJl YWRlcjo6RmlsbENQVUNvbnRleHQoUmF3Q29udGV4dENQVSogb3V0LCBjb25zdCB1Y29udGV4dF90 KiB1YywKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2cnJlZ3Nl dF90KiB2cmVncykgewotKyAgICBvdXQtPmNvbnRleHRfZmxhZ3MgPSBNRF9DT05URVhUX1BQQzY0 X0ZVTEw7Ci0rCi0rICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJf Q09VTlQ7IGkrKykKLSsgICAgICAgIG91dC0+Z3ByW2ldID0gdWMtPnVjX21jb250ZXh0LmdwX3Jl Z3NbaV07Ci0rCi0rICAgIG91dC0+bHIgPSB1Yy0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9MTktd OyAgICAKLSsgICAgb3V0LT5zcnIwID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXTsK LSsgICAgb3V0LT5zcnIxID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTVNSXTsKLSsgICAg b3V0LT5jciA9IHVjLT51Y19tY29udGV4dC5ncF9yZWdzW1BUX0NDUl07Ci0rICAgIG91dC0+eGVy ID0gdWMtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXTsKLSsgICAgb3V0LT5jdHIgPSB1Yy0+ dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdOwotKyAgICAKLSsgICAgZm9yIChpbnQgaSA9IDA7 IGkgPCBNRF9GTE9BVElOR1NBVkVBUkVBX1BQQ19GUFJfQ09VTlQ7IGkrKykKLSsgICAgICAgIG91 dC0+ZmxvYXRfc2F2ZS5mcHJlZ3NbaV0gPSB1Yy0+dWNfbWNvbnRleHQuZnBfcmVnc1tpXTsKLSsK LSsgICAgb3V0LT5mbG9hdF9zYXZlLmZwc2NyID0gdWMtPnVjX21jb250ZXh0LmZwX3JlZ3NbTkZQ UkVHLTFdOwotKwotKyAgICBmb3IgKGludCBpID0gMDsgaSA8IE1EX1ZFQ1RPUlNBVkVBUkVBX1BQ Q19WUl9DT1VOVDsgaSsrKQotKyAgICAgICAgb3V0LT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldID0K LSsgICAgICAgICAgICB7KCgodWludDY0X3QpdnJlZ3MtPnZycmVnc1tpXVswXSkgPDwgMzIpIAot KyAgICAgICAgICAgICAgICAgICAgICAgICB8IHZyZWdzLT52cnJlZ3NbaV1bMV0sIAotKyAgICAg ICAgICAgICAoKCh1aW50NjRfdCl2cmVncy0+dnJyZWdzW2ldWzJdKSA8PCAzMikKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgfCB2cmVncy0+dnJyZWdzW2ldWzNdfTsKLSsKLSsgICAgb3V0LT52 cnNhdmUgPSB2cmVncy0+dnJzYXZlOwotKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVfdnNjciA9 IHswLCB2cmVncy0+dnNjci52c2NyX3dvcmR9OwotKyAgICBvdXQtPnZlY3Rvcl9zYXZlLnNhdmVf dnJ2YWxpZCA9IDB4RkZGRkZGRkY7IAotK30KLSsKLSAjZW5kaWYKLSAKLSB9ICAvLyBuYW1lc3Bh Y2UgZ29vZ2xlX2JyZWFrcGFkCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5o IHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvZHVtcF93cml0 ZXJfY29tbW9uL3Vjb250ZXh0X3JlYWRlci5oCi1pbmRleCA4ZTc0YThhNS4uN2NiNjY3YTcgMTAw NjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9k dW1wX3dyaXRlcl9jb21tb24vdWNvbnRleHRfcmVhZGVyLmgKLSsrKyB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2R1bXBfd3JpdGVyX2NvbW1vbi91Y29udGV4 dF9yZWFkZXIuaAotQEAgLTU1LDYgKzU1LDkgQEAgc3RydWN0IFVDb250ZXh0UmVhZGVyIHsKLSAj ZWxpZiBkZWZpbmVkKF9fYWFyY2g2NF9fKQotICAgc3RhdGljIHZvaWQgRmlsbENQVUNvbnRleHQo UmF3Q29udGV4dENQVSAqb3V0LCBjb25zdCB1Y29udGV4dF90ICp1YywKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCBmcHNpbWRfY29udGV4dCogZnByZWdzKTsKLSsj ZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICBzdGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4 dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250ZXh0X3QgKnVjLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3QgdnJyZWdzZXRfdCogdnJlZ3MpOwotICNlbHNlCi0gICBz dGF0aWMgdm9pZCBGaWxsQ1BVQ29udGV4dChSYXdDb250ZXh0Q1BVICpvdXQsIGNvbnN0IHVjb250 ZXh0X3QgKnVjKTsKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJl YWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmNjIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRp b25faGFuZGxlci5jYwotaW5kZXggYzY1ZmVhYTEuLjVhN2FiNTBjIDEwMDY0NAotLS0tIHRoaXJk X3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRp b25faGFuZGxlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5jYwotQEAgLTQ2MSw5ICs0NjEsMTYg QEAgYm9vbCBFeGNlcHRpb25IYW5kbGVyOjpIYW5kbGVTaWduYWwoaW50IC8qc2lnKi8sIHNpZ2lu Zm9fdCogaW5mbywgdm9pZCogdWMpIHsKLSAgICAgbWVtY3B5KCZnX2NyYXNoX2NvbnRleHRfLmZs b2F0X3N0YXRlLCBmcF9wdHIsCi0gICAgICAgICAgICBzaXplb2YoZ19jcmFzaF9jb250ZXh0Xy5m bG9hdF9zdGF0ZSkpOwotICAgfQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8v IE9uIFBQQzY0LCB3ZSBtdXN0IGNvcHkgVlIgc3RhdGUKLSsgIHVjb250ZXh0X3QqIHVjX3B0ciA9 ICh1Y29udGV4dF90Kil1YzsKLSsgIGlmICh1Y19wdHItPnVjX21jb250ZXh0LnZfcmVncykgewot KyAgICBtZW1jcHkoJmdfY3Jhc2hfY29udGV4dF8udmVjdG9yX3N0YXRlLCB1Y19wdHItPnVjX21j b250ZXh0LnZfcmVncywKLSsgICAgICAgICAgIHNpemVvZihnX2NyYXNoX2NvbnRleHRfLnZlY3Rv cl9zdGF0ZSkpOwotKyAgfQotICNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmlu ZWQoX19taXBzX18pCi0gICAvLyBGUCBzdGF0ZSBpcyBub3QgcGFydCBvZiB1c2VyIEFCSSBvbiBB Uk0gTGludXguCi0tICAvLyBJbiBjYXNlIG9mIE1JUFMgTGludXggRlAgc3RhdGUgaXMgYWxyZWFk eSBwYXJ0IG9mIHVjb250ZXh0X3QKLSsgIC8vIEluIGNhc2Ugb2YgTUlQUywgTGludXggRlAgc3Rh dGUgaXMgYWxyZWFkeSBwYXJ0IG9mIHVjb250ZXh0X3QKLSAgIC8vIGFuZCAnZmxvYXRfc3RhdGUn IGlzIG5vdCBhIG1lbWJlciBvZiBDcmFzaENvbnRleHQuCi0gICB1Y29udGV4dF90KiB1Y19wdHIg PSAodWNvbnRleHRfdCopdWM7Ci0gICBpZiAodWNfcHRyLT51Y19tY29udGV4dC5mcHJlZ3MpIHsK LUBAIC03MDEsMTEgKzcwOCwxOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRlTWluaWR1 bXAoKSB7Ci0gICB9Ci0gI2VuZGlmCi0gCi0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYg IWRlZmluZWQoX19hYXJjaDY0X18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiAhZGVmaW5l ZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fYWFyY2g2NF9fKSAmJiAhZGVmaW5lZChfX21p cHNfXykgXAotKyAgICAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotICAgLy8gRlBVIHN0YXRl IGlzIG5vdCBwYXJ0IG9mIEFSTSBFQUJJIHVjb250ZXh0X3QuCi0gICBtZW1jcHkoJmNvbnRleHQu ZmxvYXRfc3RhdGUsIGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5mcHJlZ3MsCi0gICAgICAg ICAgc2l6ZW9mKGNvbnRleHQuZmxvYXRfc3RhdGUpKTsKLSAjZW5kaWYKLSsKLSsjaWYgZGVmaW5l ZChfX3Bvd2VycGM2NF9fKQotKyAgLy8gVmVjdG9yIHJlZ2lzdGVycyBtdXN0IGJlIGNvcGllZCBv biBQUEM2NAotKyAgbWVtY3B5KCZjb250ZXh0LnZlY3Rvcl9zdGF0ZSwgY29udGV4dC5jb250ZXh0 LnVjX21jb250ZXh0LnZfcmVncywKLSsgICAgICAgICBzaXplb2YoY29udGV4dC52ZWN0b3Jfc3Rh dGUpKTsKLSsjZW5kaWYKLSsKLSAgIGNvbnRleHQudGlkID0gc3lzX2dldHRpZCgpOwotIAotICAg Ly8gQWRkIGFuIGV4Y2VwdGlvbiBzdHJlYW0gdG8gdGhlIG1pbmlkdW1wIGZvciBiZXR0ZXIgcmVw b3J0aW5nLgotQEAgLTcyNiw2ICs3NDEsOSBAQCBib29sIEV4Y2VwdGlvbkhhbmRsZXI6OldyaXRl TWluaWR1bXAoKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIGNvbnRleHQuc2lnaW5m by5zaV9hZGRyID0KLSAgICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihjb250ZXh0LmNvbnRl eHQudWNfbWNvbnRleHQucGMpOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIGNv bnRleHQuc2lnaW5mby5zaV9hZGRyID0KLSsgICAgICByZWludGVycHJldF9jYXN0PHZvaWQqPihj b250ZXh0LmNvbnRleHQudWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdKTsKLSAjZWxzZQotICNl cnJvciAiVGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQu IgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIuaCB0aGlyZF9wYXJ0eS9icmVh a3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXIu aAotaW5kZXggZjQ0NDgzZmYuLjM2Y2U2ZDZjIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFr cGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvaGFuZGxlci9leGNlcHRpb25faGFuZGxlci5o Ci0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5k bGVyL2V4Y2VwdGlvbl9oYW5kbGVyLmgKLUBAIC0xOTIsNyArMTkyLDExIEBAIGNsYXNzIEV4Y2Vw dGlvbkhhbmRsZXIgewotICAgICBzaWdpbmZvX3Qgc2lnaW5mbzsKLSAgICAgcGlkX3QgdGlkOyAg Ly8gdGhlIGNyYXNoaW5nIHRocmVhZC4KLSAgICAgdWNvbnRleHRfdCBjb250ZXh0OwotLSNpZiAh ZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVk KF9fcG93ZXJwYzY0X18pCi0rICAgIC8vIFBQQzY0J3MgRlAgc3RhdGUgaXMgYSBwYXJ0IG9mIHVj b250ZXh0X3QgbGlrZSBNSVBTIGJ1dCB0aGUgdmVjdG9yCi0rICAgIC8vIHN0YXRlIGlzIG5vdCwg c28gYSBzdHJ1Y3QgaXMgbmVlZGVkLgotKyAgICB2c3RhdGVfdCB2ZWN0b3Jfc3RhdGU7Ci0rI2Vs aWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSAgICAgLy8g I2lmZGVmIHRoaXMgb3V0IGJlY2F1c2UgRlAgc3RhdGUgaXMgbm90IHBhcnQgb2YgdXNlciBBQkkg Zm9yIExpbnV4IEFSTS4KLSAgICAgLy8gSW4gY2FzZSBvZiBNSVBTIExpbnV4IEZQIHN0YXRlIGlz IGFscmVhZHkgcGFydCBvZiB1Y29udGV4dF90IHNvCi0gICAgIC8vICdmbG9hdF9zdGF0ZScgaXMg bm90IHJlcXVpcmVkLgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L2hhbmRsZXIvZXhjZXB0aW9uX2hhbmRsZXJfdW5pdHRlc3QuY2MgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2Vw dGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjCi1pbmRleCA4ZDg4MDlmYS4uZTJlYjAzMWUgMTAwNjQ0 Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5k bGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3VuaXR0ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9oYW5kbGVyL2V4Y2VwdGlvbl9oYW5kbGVyX3Vu aXR0ZXN0LmNjCi1AQCAtMzA3LDcgKzMwNyw3IEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxlclRlc3Qs IFBhcmFsbGVsQ2hpbGRDcmFzaGVzRG9udEhhbmcpIHsKLSAgIH0KLSAKLSAgIC8vIFdhaXQgYSB3 aGlsZSB1bnRpbCB0aGUgY2hpbGQgc2hvdWxkIGhhdmUgY3Jhc2hlZC4KLS0gIHVzbGVlcCgxMDAw MDAwKTsKLSsgIHVzbGVlcCgyMDAwMDAwKTsKLSAgIC8vIEtpbGwgdGhlIGNoaWxkIGlmIGl0IGlz IHN0aWxsIHJ1bm5pbmcuCi0gICBraWxsKGNoaWxkLCBTSUdLSUxMKTsKLSAKLUBAIC01NTksNiAr NTU5LDggQEAgY29uc3QgdW5zaWduZWQgY2hhciBrSWxsZWdhbEluc3RydWN0aW9uW10gPSB7Ci0g I2lmIGRlZmluZWQoX19taXBzX18pCi0gICAvLyBtZmMyIHplcm8sSW1wbCAtIHVzdWFsbHkgaWxs ZWdhbCBpbiB1c2Vyc3BhY2UuCi0gICAweDQ4LCAweDAwLCAweDAwLCAweDQ4Ci0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgMHgwMSwgMHgwMSwgMHgwMSwgMHgwMSAvLyBDcmFzaGVz IG9uIGEgdGVzdGVkIFBPV0VSOSBjcHUKLSAjZWxzZQotICAgLy8gVGhpcyBjcmFzaGVzIHdpdGgg U0lHSUxMIG9uIHg4Ni94ODYtNjQvYXJtLgotICAgMHhmZiwgMHhmZiwgMHhmZiwgMHhmZgotQEAg LTc1NCwxMCArNzU2LDEwIEBAIFRFU1QoRXhjZXB0aW9uSGFuZGxlclRlc3QsIEluc3RydWN0aW9u UG9pbnRlck1lbW9yeU1heEJvdW5kKSB7Ci0gCi0gICAvLyBUaGVzZSBhcmUgZGVmaW5lZCBoZXJl IHNvIHRoZSBwYXJlbnQgY2FuIHVzZSB0aGVtIHRvIGNoZWNrIHRoZQotICAgLy8gZGF0YSBmcm9t IHRoZSBtaW5pZHVtcCBhZnRlcndhcmRzLgotLSAgLy8gVXNlIDRrIGhlcmUgYmVjYXVzZSB0aGUg T1Mgd2lsbCBoYW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2ZW4KLSsgIC8vIFVzZSB0aGUgcGFnZSBz aXplIGhlcmUgYmVjYXVzZSB0aGUgT1Mgd2lsbCBoYW5kIG91dCBhIHNpbmdsZSBwYWdlIGV2ZW4K LSAgIC8vIGlmIGEgc21hbGxlciBzaXplIGlzIHJlcXVlc3RlZCwgYW5kIHRoaXMgdGVzdCB3YW50 cyB0bwotICAgLy8gdGVzdCB0aGUgdXBwZXIgYm91bmQgb2YgdGhlIG1lbW9yeSByYW5nZS4KLS0g IGNvbnN0IHVpbnQzMl90IGtNZW1vcnlTaXplID0gNDA5NjsgIC8vIGJ5dGVzCi0rICBjb25zdCB1 aW50MzJfdCBrTWVtb3J5U2l6ZSA9IGdldHBhZ2VzaXplKCk7ICAvLyBieXRlcwotICAgY29uc3Qg aW50IGtPZmZzZXQgPSBrTWVtb3J5U2l6ZSAtIHNpemVvZihrSWxsZWdhbEluc3RydWN0aW9uKTsK LSAKLSAgIGNvbnN0IHBpZF90IGNoaWxkID0gZm9yaygpOwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0 eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWlj cm9kdW1wX3dyaXRlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlci5jYwotaW5kZXggZmEzYzE3 MTMuLjZjZTcwOWUyIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVyLmNjCi0rKysg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taWNyb2R1bXBf d3JpdGVyL21pY3JvZHVtcF93cml0ZXIuY2MKLUBAIC0xMzgsNyArMTM4LDkgQEAgY2xhc3MgTWlj cm9kdW1wV3JpdGVyIHsKLSAgICAgICAgICAgICAgICAgICBjb25zdCBNaWNyb2R1bXBFeHRyYUlu Zm8mIG1pY3JvZHVtcF9leHRyYV9pbmZvLAotICAgICAgICAgICAgICAgICAgIExpbnV4RHVtcGVy KiBkdW1wZXIpCi0gICAgICAgOiB1Y29udGV4dF8oY29udGV4dCA/ICZjb250ZXh0LT5jb250ZXh0 IDogTlVMTCksCi0tI2lmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBz X18pCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIHZlY3Rvcl9zdGF0ZV8o Y29udGV4dCA/ICZjb250ZXh0LT52ZWN0b3Jfc3RhdGUgOiBOVUxMKSwKLSsjZWxpZiAhZGVmaW5l ZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgICAgICAgZmxvYXRfc3Rh dGVfKGNvbnRleHQgPyAmY29udGV4dC0+ZmxvYXRfc3RhdGUgOiBOVUxMKSwKLSAjZW5kaWYKLSAg ICAgICAgIGR1bXBlcl8oZHVtcGVyKSwKLUBAIC0zMzcsNiArMzM5LDggQEAgY2xhc3MgTWljcm9k dW1wV3JpdGVyIHsKLSAjIGVsc2UKLSAjICBlcnJvciAiVGhpcyBtaXBzIEFCSSBpcyBjdXJyZW50 bHkgbm90IHN1cHBvcnRlZCAobjMyKSIKLSAjZW5kaWYKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJw YzY0X18pCi0rICAgIGNvbnN0IGNoYXIga0FyY2hbXSA9ICJwcGM2NCI7Ci0gI2Vsc2UKLSAjZXJy b3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0geWV0Igot ICNlbmRpZgotQEAgLTQwOSw3ICs0MTMsOSBAQCBjbGFzcyBNaWNyb2R1bXBXcml0ZXIgewotICAg dm9pZCBEdW1wQ1BVU3RhdGUoKSB7Ci0gICAgIFJhd0NvbnRleHRDUFUgY3B1OwotICAgICBteV9t ZW1zZXQoJmNwdSwgMCwgc2l6ZW9mKFJhd0NvbnRleHRDUFUpKTsKLS0jaWYgIWRlZmluZWQoX19B Uk1fRUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2 NF9fKQotKyAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwgdWNvbnRleHRf LCB2ZWN0b3Jfc3RhdGVfKTsKLSsjZWxpZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZp bmVkKF9fbWlwc19fKQotICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoJmNwdSwg dWNvbnRleHRfLCBmbG9hdF9zdGF0ZV8pOwotICNlbHNlCi0gICAgIFVDb250ZXh0UmVhZGVyOjpG aWxsQ1BVQ29udGV4dCgmY3B1LCB1Y29udGV4dF8pOwotQEAgLTYwNSw3ICs2MTEsOSBAQCBjbGFz cyBNaWNyb2R1bXBXcml0ZXIgewotICAgdm9pZCogQWxsb2ModW5zaWduZWQgYnl0ZXMpIHsgcmV0 dXJuIGR1bXBlcl8tPmFsbG9jYXRvcigpLT5BbGxvYyhieXRlcyk7IH0KLSAKLSAgIGNvbnN0IHVj b250ZXh0X3QqIGNvbnN0IHVjb250ZXh0XzsKLS0jaWYgIWRlZmluZWQoX19BUk1fRUFCSV9fKSAm JiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgY29u c3QgZ29vZ2xlX2JyZWFrcGFkOjp2c3RhdGVfdCogY29uc3QgdmVjdG9yX3N0YXRlXzsKLSsjZWxp ZiAhZGVmaW5lZChfX0FSTV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotICAgY29uc3Qg Z29vZ2xlX2JyZWFrcGFkOjpmcHN0YXRlX3QqIGNvbnN0IGZsb2F0X3N0YXRlXzsKLSAjZW5kaWYK LSAgIExpbnV4RHVtcGVyKiBkdW1wZXJfOwotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3Bh ZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dy aXRlcl91bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pY3JvZHVtcF93cml0ZXIvbWljcm9kdW1wX3dyaXRlcl91bml0dGVzdC5jYwotaW5k ZXggNjMzOWFjMGMuLjI5MWFmMTA2IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2Jy ZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWljcm9kdW1wX3dyaXRlci9taWNyb2R1bXBfd3JpdGVy X3VuaXR0ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVu dC9saW51eC9taWNyb2R1bXBfd3JpdGVyL21pY3JvZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MKLUBA IC0yNzksMTAgKzI3OSwxOSBAQCBURVNUKE1pY3JvZHVtcFdyaXRlclRlc3QsIEJhc2ljV2l0aE1h cHBpbmdzKSB7Ci0gICBDcmFzaEFuZEdldE1pY3JvZHVtcChtYXBwaW5ncywgTWljcm9kdW1wRXh0 cmFJbmZvKCksICZidWYpOwotICAgQVNTRVJUX1RSVUUoQ29udGFpbnNNaWNyb2R1bXAoYnVmKSk7 Ci0gCi0rICBpbnQgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKLSAjaWZkZWYgX19MUDY0X18K LS0gIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLS0gICAgICAgICAgICBidWYuZmluZCgi TSAwMDAwMDAwMDAwMDAxMDAwIDAwMDAwMDAwMDAwMDAwMkEgMDAwMDAwMDAwMDAwMTAwMCAiCi0t ICAgICAgICAgICAgICAgICAgICAgIjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBs aWJmb28uc28iKSk7Ci0rICAvLyBUaGlzIHRlc3QgaXMgb25seSBhdmFpbGFibGUgZm9yIHRoZSBm b2xsb3dpbmcgcGFnZSBzaXplcwotKyAgQVNTRVJUX1RSVUUoKHBhZ2Vfc2l6ZSA9PSA0MDk2KSB8 fCAocGFnZV9zaXplID09IDY1NTM2KSk7Ci0rICBpZiAocGFnZV9zaXplID09IDQwOTYpIHsgCi0r ICAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLSsgICAgICAgICAgICAgIGJ1Zi5maW5k KCJNIDAwMDAwMDAwMDAwMDEwMDAgMDAwMDAwMDAwMDAwMDAyQSAwMDAwMDAwMDAwMDAxMDAwICIK LSsgICAgICAgICAgICAgICAgICAgICAgICIzMzIyMTEwMDU1NDQ3NzY2ODg5OUFBQkJDQ0RERUVG RjAgbGliZm9vLnNvIikpOwotKyAgfSBlbHNlIHsKLSsgICAgQVNTRVJUX05FKHN0ZDo6c3RyaW5n OjpucG9zLAotKyAgICAgICAgICAgICAgYnVmLmZpbmQoIk0gMDAwMDAwMDAwMDAxMDAwMCAwMDAw MDAwMDAwMDAwMDJBIDAwMDAwMDAwMDAwMTAwMDAgIgotKyAgICAgICAgICAgICAgICAgICAgICAg IjMzMjIxMTAwNTU0NDc3NjY4ODk5QUFCQkNDRERFRUZGMCBsaWJmb28uc28iKSk7Ci0rICB9Ci0g I2Vsc2UKLSAgIEFTU0VSVF9ORShzdGQ6OnN0cmluZzo6bnBvcywKLSAgICAgICAgICAgICBidWYu ZmluZCgiTSAwMDAwMTAwMCAwMDAwMDAyQSAwMDAwMTAwMCAiCi1kaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xp bnV4X2NvcmVfZHVtcGVyLmNjIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGll bnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2NvcmVfZHVtcGVyLmNjCi1pbmRleCA0MTUw Njg5OC4uYjkzZTRhZmMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfY29yZV9kdW1wZXIuY2MKLSsr KyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9saW51eF9jb3JlX2R1bXBlci5jYwotQEAgLTExMiw2ICsxMTIsOSBAQCBib29sIExp bnV4Q29yZUR1bXBlcjo6R2V0VGhyZWFkSW5mb0J5SW5kZXgoc2l6ZV90IGluZGV4LCBUaHJlYWRJ bmZvKiBpbmZvKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIHN0YWNrX3BvaW50ZXIg PQotICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KGluZm8tPm1jb250ZXh0LmdyZWdz W01EX0NPTlRFWFRfTUlQU19SRUdfU1BdKTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18p Ci0rICBzdGFja19wb2ludGVyID0KLSsgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihp bmZvLT5tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVHX1NQXSk7Ci0gI2Vsc2UK LSAjZXJyb3IgIlRoaXMgY29kZSBoYXNuJ3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5 ZXQuIgotICNlbmRpZgotQEAgLTE5Nyw3ICsyMDAsMTAgQEAgYm9vbCBMaW51eENvcmVEdW1wZXI6 OkVudW1lcmF0ZVRocmVhZHMoKSB7Ci0gICAgICAgICBtZW1zZXQoJmluZm8sIDAsIHNpemVvZihU aHJlYWRJbmZvKSk7Ci0gICAgICAgICBpbmZvLnRnaWQgPSBzdGF0dXMtPnByX3BncnA7Ci0gICAg ICAgICBpbmZvLnBwaWQgPSBzdGF0dXMtPnByX3BwaWQ7Ci0tI2lmIGRlZmluZWQoX19taXBzX18p Ci0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgICAgIGZvciAoaW50IGkgPSAwOyBp IDwgMzE7IGkrKykKLSsgICAgICAgICAgICBpbmZvLm1jb250ZXh0LmdwX3JlZ3NbaV0gPSBzdGF0 dXMtPnByX3JlZ1tpXTsKLSsjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICNpZiBkZWZpbmVkKF9f QU5EUk9JRF9fKQotICAgICAgICAgZm9yIChpbnQgaSA9IEVGX1IwOyBpIDw9IEVGX1IzMTsgaSsr KQotICAgICAgICAgICBpbmZvLm1jb250ZXh0LmdyZWdzW2kgLSBFRl9SMF0gPSBzdGF0dXMtPnBy X3JlZ1tpXTsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhfZHVtcGVyLmNjIHRoaXJkX3BhcnR5L2Jy ZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1 bXBlci5jYwotaW5kZXggMTExMjAzNWIuLjg1MjNkYWQ2IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X2R1bXBlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQv bGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5jYwotQEAgLTc2NSw3ICs3NjUsOSBA QCBib29sIExpbnV4RHVtcGVyOjpHZXRTdGFja0luZm8oY29uc3Qgdm9pZCoqIHN0YWNrLCBzaXpl X3QqIHN0YWNrX2xlbiwKLSAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihpbnRfc3Rh Y2tfcG9pbnRlciAmIH4ocGFnZV9zaXplIC0gMSkpOwotIAotICAgLy8gVGhlIG51bWJlciBvZiBi eXRlcyBvZiBzdGFjayB3aGljaCB3ZSB0cnkgdG8gY2FwdHVyZS4KLS0gIHN0YXRpYyBjb25zdCBw dHJkaWZmX3Qga1N0YWNrVG9DYXB0dXJlID0gMzIgKiAxMDI0OwotKyAgLy8gVGhpcyBub3cgZGVw ZW5kcyBvbiBwYWdlX3NpemUgdG8gYXZvaWQgbWlzc2luZyBkYXRhCi0rICAvLyBvbiBzeXN0ZW1z IHdpdGggbGFyZ2VyIHBhZ2Ugc2l6ZXMuCi0rICBzdGF0aWMgY29uc3QgcHRyZGlmZl90IGtTdGFj a1RvQ2FwdHVyZSA9IDggKiBwYWdlX3NpemU7Ci0gCi0gICBjb25zdCBNYXBwaW5nSW5mbyogbWFw cGluZyA9IEZpbmRNYXBwaW5nKHN0YWNrX3BvaW50ZXIpOwotICAgaWYgKCFtYXBwaW5nKQotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXIuaAotaW5kZXgg ZjRhNzVkOTAuLjAyMDk4MWY1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X2R1bXBlci5oCi0rKysg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93 cml0ZXIvbGludXhfZHVtcGVyLmgKLUBAIC02Myw3ICs2Myw4IEBAIG5hbWVzcGFjZSBnb29nbGVf YnJlYWtwYWQgewotICAoZGVmaW5lZChfX21pcHNfXykgJiYgX01JUFNfU0lNID09IF9BQklPMzIp Ci0gdHlwZWRlZiBFbGYzMl9hdXh2X3QgZWxmX2F1eF9lbnRyeTsKLSAjZWxpZiBkZWZpbmVkKF9f eDg2XzY0KSB8fCBkZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCi0tICAgICAoZGVmaW5lZChfX21p cHNfXykgJiYgX01JUFNfU0lNICE9IF9BQklPMzIpCi0rICAgICAoZGVmaW5lZChfX21pcHNfXykg JiYgX01JUFNfU0lNICE9IF9BQklPMzIpIHx8IFwKLSsgICAgIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSB0eXBlZGVmIEVsZjY0X2F1eHZfdCBlbGZfYXV4X2VudHJ5OwotICNlbmRpZgotIAotZGlm ZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4 X2R1bXBlcl91bml0dGVzdF9oZWxwZXIuY2MKLWluZGV4IDNhZDQ4ZTUwLi4xNjg4YzM2NSAxMDA2 NDQKLS0tLSB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21p bmlkdW1wX3dyaXRlci9saW51eF9kdW1wZXJfdW5pdHRlc3RfaGVscGVyLmNjCi0rKysgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIv bGludXhfZHVtcGVyX3VuaXR0ZXN0X2hlbHBlci5jYwotQEAgLTUxLDYgKzUxLDggQEAKLSAjZGVm aW5lIFRJRF9QVFJfUkVHSVNURVIgInJjeCIKLSAjZWxpZiBkZWZpbmVkKF9fbWlwc19fKQotICNk ZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAiJDEiCi0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotKyNkZWZpbmUgVElEX1BUUl9SRUdJU1RFUiAicjgiCi0gI2Vsc2UKLSAjZXJyb3IgVGhpcyB0 ZXN0IGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8gdGhpcyBwbGF0Zm9ybS4KLSAjZW5kaWYKLWRpZmYg LS1naXQgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5p ZHVtcF93cml0ZXIvbGludXhfcHRyYWNlX2R1bXBlci5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVt cGVyLmNjCi1pbmRleCBlM2RkYjgxYS4uZmEyODU3NWUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf cHRyYWNlX2R1bXBlci5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j bGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXIuY2MKLUBAIC0x NDksMTkgKzE0OSwyNyBAQCBib29sIExpbnV4UHRyYWNlRHVtcGVyOjpDb3B5RnJvbVByb2Nlc3Mo dm9pZCogZGVzdCwgcGlkX3QgY2hpbGQsCi0gICByZXR1cm4gdHJ1ZTsKLSB9Ci0gCi0tYm9vbCBM aW51eFB0cmFjZUR1bXBlcjo6UmVhZFJlZ2lzdGVyU2V0KFRocmVhZEluZm8qIGluZm8sIHBpZF90 IHRpZCkKLS17Ci0rYm9vbCBMaW51eFB0cmFjZUR1bXBlcjo6UmVhZFJlZ2lzdGVyU2V0KFRocmVh ZEluZm8qIGluZm8sIHBpZF90IHRpZCkgewotICNpZmRlZiBQVFJBQ0VfR0VUUkVHU0VUCi0gICBz dHJ1Y3QgaW92ZWMgaW87Ci0gICBpbmZvLT5HZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVycygmaW8u aW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKLS0gIGlmIChzeXNfcHRyYWNlKFBUUkFDRV9HRVRSRUdT RVQsIHRpZCwgKHZvaWQqKU5UX1BSU1RBVFVTLCAodm9pZCopJmlvKSA9PSAtMSkgewotKyAgaWYg KHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQsICh2b2lkKilOVF9QUlNUQVRVUywgKHZvaWQq KSZpbykgPT0gLTEpIHsKLSAgICAgcmV0dXJuIGZhbHNlOwotICAgfQotIAotICAgaW5mby0+R2V0 RmxvYXRpbmdQb2ludFJlZ2lzdGVycygmaW8uaW92X2Jhc2UsICZpby5pb3ZfbGVuKTsKLS0gIGlm IChzeXNfcHRyYWNlKFBUUkFDRV9HRVRSRUdTRVQsIHRpZCwgKHZvaWQqKU5UX0ZQUkVHU0VULCAo dm9pZCopJmlvKSA9PSAtMSkgewotKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VUUkVHU0VULCB0aWQs ICh2b2lkKilOVF9GUFJFR1NFVCwgKHZvaWQqKSZpbykgPT0gLTEpIHsKLSAgICAgcmV0dXJuIGZh bHNlOwotICAgfQotKwotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAvLyBHcmFiIHRo ZSB2ZWN0b3IgcmVnaXN0ZXJzIG9uIFBQQzY0IHRvbwotKyAgaW5mby0+R2V0VmVjdG9yUmVnaXN0 ZXJzKCZpby5pb3ZfYmFzZSwgJmlvLmlvdl9sZW4pOwotKyAgaWYgKHB0cmFjZShQVFJBQ0VfR0VU UkVHU0VULCB0aWQsICh2b2lkKilOVF9QUENfVk1YLCAodm9pZCopJmlvKSA9PSAtMSkgewotKyAg ICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rI2VuZGlmIC8vIGRlZmluZWQoX19wb3dlcnBjNjRfXykK LSsKLSAgIHJldHVybiB0cnVlOwotICNlbHNlCi0gICByZXR1cm4gZmFsc2U7Ci1AQCAtMjk4LDYg KzMwNiw5IEBAIGJvb2wgTGludXhQdHJhY2VEdW1wZXI6OkdldFRocmVhZEluZm9CeUluZGV4KHNp emVfdCBpbmRleCwgVGhyZWFkSW5mbyogaW5mbykgewotICNlbGlmIGRlZmluZWQoX19taXBzX18p Ci0gICBzdGFja19wb2ludGVyID0KLSAgICAgICByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihp bmZvLT5tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSk7Ci0rI2VsaWYgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotKyAgc3RhY2tfcG9pbnRlciA9Ci0rICAgICAgcmVpbnRlcnBy ZXRfY2FzdDx1aW50OF90Kj4oaW5mby0+bWNvbnRleHQuZ3BfcmVnc1tNRF9DT05URVhUX1BQQzY0 X1JFR19TUF0pOwotICNlbHNlCi0gI2Vycm9yICJUaGlzIGNvZGUgaGFzbid0IGJlZW4gcG9ydGVk IHRvIHlvdXIgcGxhdGZvcm0geWV0LiIKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf cHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9saW51eF9wdHJhY2VfZHVtcGVyX3VuaXR0 ZXN0LmNjCi1pbmRleCBlYTZiOWExMi4uOWIzMThmZTAgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbGludXhf cHRyYWNlX2R1bXBlcl91bml0dGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL2xpbnV4X3B0cmFjZV9kdW1wZXJf dW5pdHRlc3QuY2MKLUBAIC00NjIsNiArNDYyLDkgQEAgVEVTVChMaW51eFB0cmFjZUR1bXBlclRl c3QsIFZlcmlmeVN0YWNrUmVhZFdpdGhNdWx0aXBsZVRocmVhZHMpIHsKLSAjZWxpZiBkZWZpbmVk KF9fbWlwc19fKQotICAgICBwaWRfdCogcHJvY2Vzc190aWRfbG9jYXRpb24gPQotICAgICAgICAg cmVpbnRlcnByZXRfY2FzdDxwaWRfdCo+KG9uZV90aHJlYWQubWNvbnRleHQuZ3JlZ3NbMV0pOwot KyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAgcGlkX3QqIHByb2Nlc3NfdGlkX2xv Y2F0aW9uID0KLSsgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8cGlkX3QqPihvbmVfdGhyZWFkLm1j b250ZXh0LmdwX3JlZ3NbOF0pOwotICNlbHNlCi0gI2Vycm9yIFRoaXMgdGVzdCBoYXMgbm90IGJl ZW4gcG9ydGVkIHRvIHRoaXMgcGxhdGZvcm0uCi0gI2VuZGlmCi1AQCAtNTU5LDYgKzU2Miw4IEBA IFRFU1RfRihMaW51eFB0cmFjZUR1bXBlclRlc3QsIFNhbml0aXplU3RhY2tDb3B5KSB7Ci0gICB1 aW50cHRyX3QgaGVhcF9hZGRyID0gdGhyZWFkX2luZm8ucmVncy5yY3g7Ci0gI2VsaWYgZGVmaW5l ZChfX21pcHNfXykKLSAgIHVpbnRwdHJfdCBoZWFwX2FkZHIgPSB0aHJlYWRfaW5mby5tY29udGV4 dC5ncmVnc1sxXTsKLSsjZWxpZiBkZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICB1aW50cHRyX3Qg aGVhcF9hZGRyID0gdGhyZWFkX2luZm8ubWNvbnRleHQuZ3BfcmVnc1s4XTsKLSAjZWxzZQotICNl cnJvciBUaGlzIHRlc3QgaGFzIG5vdCBiZWVuIHBvcnRlZCB0byB0aGlzIHBsYXRmb3JtLgotICNl bmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50 L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuY2MgdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBf d3JpdGVyLmNjCi1pbmRleCBmOGNkZjJhMS4uY2I4MDhjMTUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWlu aWR1bXBfd3JpdGVyLmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2Ns aWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmNjCi1AQCAtMTM2LDcg KzEzNiw5IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgICAgICA6IGZkXyhtaW5pZHVtcF9m ZCksCi0gICAgICAgICBwYXRoXyhtaW5pZHVtcF9wYXRoKSwKLSAgICAgICAgIHVjb250ZXh0Xyhj b250ZXh0ID8gJmNvbnRleHQtPmNvbnRleHQgOiBOVUxMKSwKLS0jaWYgIWRlZmluZWQoX19BUk1f RUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSsjaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9f KQotKyAgICAgICAgdmVjdG9yX3N0YXRlXyhjb250ZXh0ID8gJmNvbnRleHQtPnZlY3Rvcl9zdGF0 ZSA6IE5VTEwpLAotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19t aXBzX18pCi0gICAgICAgICBmbG9hdF9zdGF0ZV8oY29udGV4dCA/ICZjb250ZXh0LT5mbG9hdF9z dGF0ZSA6IE5VTEwpLAotICNlbmRpZgotICAgICAgICAgZHVtcGVyXyhkdW1wZXIpLAotQEAgLTQ2 OCw3ICs0NzAsOSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gICAgICAgICBpZiAoIWNwdS5B bGxvY2F0ZSgpKQotICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICBteV9tZW1zZXQo Y3B1LmdldCgpLCAwLCBzaXplb2YoUmF3Q29udGV4dENQVSkpOwotLSNpZiAhZGVmaW5lZChfX0FS TV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNvbnRleHQoY3B1LmdldCgpLCB1 Y29udGV4dF8sIHZlY3Rvcl9zdGF0ZV8pOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykg JiYgIWRlZmluZWQoX19taXBzX18pCi0gICAgICAgICBVQ29udGV4dFJlYWRlcjo6RmlsbENQVUNv bnRleHQoY3B1LmdldCgpLCB1Y29udGV4dF8sIGZsb2F0X3N0YXRlXyk7Ci0gI2Vsc2UKLSAgICAg ICAgIFVDb250ZXh0UmVhZGVyOjpGaWxsQ1BVQ29udGV4dChjcHUuZ2V0KCksIHVjb250ZXh0Xyk7 Ci1AQCAtODk3LDcgKzkwMSw3IEBAIGNsYXNzIE1pbmlkdW1wV3JpdGVyIHsKLSAgICAgZGlyZW50 LT5sb2NhdGlvbi5ydmEgPSAwOwotICAgfQotIAotLSNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCBk ZWZpbmVkKF9feDg2XzY0X18pIHx8IGRlZmluZWQoX19taXBzX18pCi0rI2lmIGRlZmluZWQoX19p Mzg2X18pIHx8IGRlZmluZWQoX194ODZfNjRfXykgfHwgZGVmaW5lZChfX21pcHNfXykgfHwgZGVm aW5lZChfX3Bvd2VycGM2NF9fKQotICAgYm9vbCBXcml0ZUNQVUluZm9ybWF0aW9uKE1EUmF3U3lz dGVtSW5mbyogc3lzX2luZm8pIHsKLSAgICAgY2hhciB2ZW5kb3JfaWRbc2l6ZW9mKHN5c19pbmZv LT5jcHUueDg2X2NwdV9pbmZvLnZlbmRvcl9pZCkgKyAxXSA9IHswfTsKLSAgICAgc3RhdGljIGNv bnN0IGNoYXIgdmVuZG9yX2lkX25hbWVbXSA9ICJ2ZW5kb3JfaWQiOwotQEAgLTkxNyw3ICs5MjEs OSBAQCBjbGFzcyBNaW5pZHVtcFdyaXRlciB7Ci0gCi0gICAgIC8vIHByb2Nlc3Nvcl9hcmNoaXRl Y3R1cmUgc2hvdWxkIGFsd2F5cyBiZSBzZXQsIGRvIHRoaXMgZmlyc3QKLSAgICAgc3lzX2luZm8t PnByb2Nlc3Nvcl9hcmNoaXRlY3R1cmUgPQotLSNpZiBkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBk ZWZpbmVkKF9fcG93ZXJwYzY0X18pCi0rICAgICAgICBNRF9DUFVfQVJDSElURUNUVVJFX1BQQzY0 OwotKyNlbGlmIGRlZmluZWQoX19taXBzX18pCi0gIyBpZiBfTUlQU19TSU0gPT0gX0FCSU8zMgot ICAgICAgICAgTURfQ1BVX0FSQ0hJVEVDVFVSRV9NSVBTOwotICMgZWxpZiBfTUlQU19TSU0gPT0g X0FCSTY0Ci1AQCAtMTMzMyw3ICsxMzM5LDkgQEAgY2xhc3MgTWluaWR1bXBXcml0ZXIgewotICAg Y29uc3QgY2hhciogcGF0aF87ICAvLyBQYXRoIHRvIHRoZSBmaWxlIHdoZXJlIHRoZSBtaW5pZHVt IHNob3VsZCBiZSB3cml0dGVuLgotIAotICAgY29uc3QgdWNvbnRleHRfdCogY29uc3QgdWNvbnRl eHRfOyAgLy8gYWxzbyBmcm9tIHRoZSBzaWduYWwgaGFuZGxlcgotLSNpZiAhZGVmaW5lZChfX0FS TV9FQUJJX18pICYmICFkZWZpbmVkKF9fbWlwc19fKQotKyNpZiBkZWZpbmVkKF9fcG93ZXJwYzY0 X18pCi0rICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OnZzdGF0ZV90KiBjb25zdCB2ZWN0b3Jfc3Rh dGVfOwotKyNlbGlmICFkZWZpbmVkKF9fQVJNX0VBQklfXykgJiYgIWRlZmluZWQoX19taXBzX18p Ci0gICBjb25zdCBnb29nbGVfYnJlYWtwYWQ6OmZwc3RhdGVfdCogY29uc3QgZmxvYXRfc3RhdGVf OyAgLy8gZGl0dG8KLSAjZW5kaWYKLSAgIExpbnV4RHVtcGVyKiBkdW1wZXJfOwotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1w X3dyaXRlci9taW5pZHVtcF93cml0ZXIuaCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9z cmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRlci9taW5pZHVtcF93cml0ZXIuaAotaW5kZXgg ZTNiMGIxNmQuLmNjZDhhYTBhIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFr cGFkL3NyYy9jbGllbnQvbGludXgvbWluaWR1bXBfd3JpdGVyL21pbmlkdW1wX3dyaXRlci5oCi0r KysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVt cF93cml0ZXIvbWluaWR1bXBfd3JpdGVyLmgKLUBAIC00OCw2ICs0OCw4IEBAIGNsYXNzIEV4Y2Vw dGlvbkhhbmRsZXI7Ci0gCi0gI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gdHlwZWRlZiBzdHJ1 Y3QgZnBzaW1kX2NvbnRleHQgZnBzdGF0ZV90OwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRf XykKLSt0eXBlZGVmIHZycmVnc2V0X3QgdnN0YXRlX3Q7Ci0gI2VsaWYgIWRlZmluZWQoX19BUk1f RUFCSV9fKSAmJiAhZGVmaW5lZChfX21pcHNfXykKLSB0eXBlZGVmIHN0ZDo6cmVtb3ZlX3BvaW50 ZXI8ZnByZWdzZXRfdD46OnR5cGUgZnBzdGF0ZV90OwotICNlbmRpZgotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY2xpZW50L2xpbnV4L21pbmlkdW1wX3dyaXRl ci9taW5pZHVtcF93cml0ZXJfdW5pdHRlc3QuY2MgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtw YWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0 ZXN0LmNjCi1pbmRleCAzMDE3YTQ5YS4uMzY0ZWZkNzkgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkv YnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1 bXBfd3JpdGVyX3VuaXR0ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQv c3JjL2NsaWVudC9saW51eC9taW5pZHVtcF93cml0ZXIvbWluaWR1bXBfd3JpdGVyX3VuaXR0ZXN0 LmNjCi1AQCAtNzE1LDYgKzcxNSw5IEBAIFRFU1QoTWluaWR1bXBXcml0ZXJUZXN0LCBJbnZhbGlk U3RhY2tQb2ludGVyKSB7Ci0gI2VsaWYgZGVmaW5lZChfX21pcHNfXykKLSAgIGNvbnRleHQuY29u dGV4dC51Y19tY29udGV4dC5ncmVnc1tNRF9DT05URVhUX01JUFNfUkVHX1NQXSA9Ci0gICAgICAg aW52YWxpZF9zdGFja19wb2ludGVyOwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsg IGNvbnRleHQuY29udGV4dC51Y19tY29udGV4dC5ncF9yZWdzW01EX0NPTlRFWFRfUFBDNjRfUkVH X1NQXSA9Ci0rICAgICAgaW52YWxpZF9zdGFja19wb2ludGVyOwotICNlbHNlCi0gIyBlcnJvciAi VGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQuIgotICNl bmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9u L2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3Bh ZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZS5jYwotaW5kZXggNGU5MzgyNjku LmYwZmYxNWQ5IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9j b21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlLmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9saW51eC9tZW1vcnlfbWFwcGVkX2ZpbGUuY2MKLUBAIC02 NSw4ICs2NSw3IEBAIGJvb2wgTWVtb3J5TWFwcGVkRmlsZTo6TWFwKGNvbnN0IGNoYXIqIHBhdGgs IHNpemVfdCBvZmZzZXQpIHsKLSAgIH0KLSAKLSAjaWYgZGVmaW5lZChfX3g4Nl82NF9fKSB8fCBk ZWZpbmVkKF9fYWFyY2g2NF9fKSB8fCBcCi0tICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBT X1NJTSA9PSBfQUJJNjQpCi0tCi0rICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9 PSBfQUJJNjQpIHx8IGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSAgIHN0cnVjdCBrZXJuZWxfc3Rh dCBzdDsKLSAgIGlmIChzeXNfZnN0YXQoZmQsICZzdCkgPT0gLTEgfHwgc3Quc3Rfc2l6ZSA8IDAp IHsKLSAjZWxzZQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv Y29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9i cmVha3BhZC9icmVha3BhZC9zcmMvY29tbW9uL2xpbnV4L21lbW9yeV9tYXBwZWRfZmlsZV91bml0 dGVzdC5jYwotaW5kZXggZmFkNTlmNDAuLjYxNjQ5NmQ2IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5 L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9jb21tb24vbGludXgvbWVtb3J5X21hcHBlZF9maWxlX3Vu aXR0ZXN0LmNjCi0rKysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9s aW51eC9tZW1vcnlfbWFwcGVkX2ZpbGVfdW5pdHRlc3QuY2MKLUBAIC0xNzYsOSArMTc2LDEwIEBA IFRFU1RfRihNZW1vcnlNYXBwZWRGaWxlVGVzdCwgUmVtYXBBZnRlck1hcCkgewotIFRFU1RfRihN ZW1vcnlNYXBwZWRGaWxlVGVzdCwgTWFwV2l0aE9mZnNldCkgewotICAgLy8gUHV0IG1vcmUgZGF0 YSBpbiB0aGUgdGVzdCBmaWxlIHRoaXMgdGltZS4gT2Zmc2V0cyBjYW4gb25seSBiZQotICAgLy8g ZG9uZSBvbiBwYWdlIGJvdW5kYXJpZXMsIHNvIHdlIG5lZWQgYSB0d28gcGFnZSBmaWxlIHRvIHRl c3QgdGhpcy4KLS0gIGNvbnN0IGludCBwYWdlX3NpemUgPSA0MDk2OwotLSAgY2hhciBkYXRhMVsy ICogcGFnZV9zaXplXTsKLS0gIHNpemVfdCBkYXRhMV9zaXplID0gc2l6ZW9mKGRhdGExKTsKLSsg IGNvbnN0IGludCBwYWdlX3NpemUgPSBnZXRwYWdlc2l6ZSgpOwotKyAgY2hhciAqZGF0YTEgPSBz dGF0aWNfY2FzdDxjaGFyKj4obWFsbG9jKDIgKiBwYWdlX3NpemUpKTsKLSsgIEVYUEVDVF9UUlVF KGRhdGExICE9IE5VTEwpOwotKyAgc2l6ZV90IGRhdGExX3NpemUgPSAoMiAqIHBhZ2Vfc2l6ZSk7 Ci0gICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGRhdGExX3NpemU7ICsraSkgewotICAgICBkYXRh MVtpXSA9IGkgJiAweDdmOwotICAgfQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9i cmVha3BhZC9zcmMvY29tbW9uL21lbW9yeV9hbGxvY2F0b3JfdW5pdHRlc3QuY2MgdGhpcmRfcGFy dHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0 LmNjCi1pbmRleCA0M2M4NjMxNC4uMjczMjViODEgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJl YWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2NhdG9yX3VuaXR0ZXN0LmNjCi0r KysgdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL2NvbW1vbi9tZW1vcnlfYWxsb2Nh dG9yX3VuaXR0ZXN0LmNjCi1AQCAtNTcsOCArNTcsOSBAQAotIAotICAgRVhQRUNUX0VRKDBVLCBh bGxvY2F0b3IucGFnZXNfYWxsb2NhdGVkKCkpOwotICAgdWludDhfdCogcCA9IHJlaW50ZXJwcmV0 X2Nhc3Q8dWludDhfdCo+KGFsbG9jYXRvci5BbGxvYygxMDAwMCkpOwotKyAgdWludDY0X3QgZXhw ZWN0ZWRfcGFnZXMgPSAxICsgKCgxMDAwMCAtIDEpIC8gZ2V0cGFnZXNpemUoKSk7Ci0gICBBU1NF UlRfRkFMU0UocCA9PSBOVUxMKTsKLS0gIEVYUEVDVF9FUSgzVSwgYWxsb2NhdG9yLnBhZ2VzX2Fs bG9jYXRlZCgpKTsKLSsgIEVYUEVDVF9FUShleHBlY3RlZF9wYWdlcywgYWxsb2NhdG9yLnBhZ2Vz X2FsbG9jYXRlZCgpKTsKLSAgIGZvciAodW5zaWduZWQgaSA9IDE7IGkgPCAxMDsgKytpKSB7Ci0g ICAgIHVpbnQ4X3QqIHAgPSByZWludGVycHJldF9jYXN0PHVpbnQ4X3QqPihhbGxvY2F0b3IuQWxs b2MoaSkpOwotICAgICBBU1NFUlRfRkFMU0UocCA9PSBOVUxMKTsKLWRpZmYgLS1naXQgdGhpcmRf cGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9saW51 eC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4cGxvaXRh YmlsaXR5X2xpbnV4LmNjCi1pbmRleCBjY2M5ZjE0NS4uZGViYWVkNGQgMTAwNjQ0Ci0tLS0gdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV9s aW51eC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3NyYy9wcm9jZXNzb3Iv ZXhwbG9pdGFiaWxpdHlfbGludXguY2MKLUBAIC0yMDIsMTIgKzIwMiwxNCBAQCBib29sIEV4cGxv aXRhYmlsaXR5TGludXg6OkVuZGVkT25JbGxlZ2FsV3JpdGUodWludDY0X3QgaW5zdHJ1Y3Rpb25f cHRyKSB7Ci0gICAvLyBDaGVjayBhcmNoaXRlY3R1cmUgYW5kIHNldCBhcmNoaXRlY3R1cmUgdmFy aWFibGUgdG8gY29ycmVzcG9uZGluZyBmbGFnCi0gICAvLyBpbiBvYmpkdW1wLgotICAgc3dpdGNo IChjb250ZXh0LT5HZXRDb250ZXh0Q1BVKCkpIHsKLSsjaWYgZGVmaW5lZChfX2kzODYpIHx8IGRl ZmluZWQoX194ODZfNjQpCi0gICAgIGNhc2UgTURfQ09OVEVYVF9YODY6Ci0gICAgICAgYXJjaGl0 ZWN0dXJlID0gImkzODYiOwotICAgICAgIGJyZWFrOwotICAgICBjYXNlIE1EX0NPTlRFWFRfQU1E NjQ6Ci0gICAgICAgYXJjaGl0ZWN0dXJlID0gImkzODY6eDg2LTY0IjsKLSAgICAgICBicmVhazsK LSsjZW5kaWYKLSAgICAgZGVmYXVsdDoKLSAgICAgICAvLyBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1 cmUuIE5vdGUgdGhhdCBBUk0gYXJjaGl0ZWN0dXJlcyBhcmUgbm90Ci0gICAgICAgLy8gc3VwcG9y dGVkIGJlY2F1c2Ugb2JqZHVtcCBkb2VzIG5vdCBzdXBwb3J0IEFSTS4KLWRpZmYgLS1naXQgdGhp cmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0YWJpbGl0eV91 bml0dGVzdC5jYyB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMvcHJvY2Vzc29yL2V4 cGxvaXRhYmlsaXR5X3VuaXR0ZXN0LmNjCi1pbmRleCA1MjhlZTVmMi4uNzI3NjRkNmMgMTAwNjQ0 Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Byb2Nlc3Nvci9leHBsb2l0 YWJpbGl0eV91bml0dGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2JyZWFrcGFkL2JyZWFrcGFkL3Ny Yy9wcm9jZXNzb3IvZXhwbG9pdGFiaWxpdHlfdW5pdHRlc3QuY2MKLUBAIC0xMDQsNiArMTA0LDgg QEAgRXhwbG9pdGFiaWxpdHlGb3IoY29uc3Qgc3RyaW5nJiBmaWxlbmFtZSkgewotIH0KLSAKLSBU RVNUKEV4cGxvaXRhYmlsaXR5VGVzdCwgVGVzdFdpbmRvd3NFbmdpbmUpIHsKLSsvLyBUaGUgZm9s bG93aW5nIHRlc3RzIGFyZSBvbmx5IGV4ZWN1dGFibGUgb24gYW4geDg2LWNsYXNzIGxpbnV4IG1h Y2hpbmUuCi0rI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmluZWQoX19pMzg2KSB8fCBkZWZp bmVkKF9feDg2XzY0KSkKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklM SVRZX0hJR0gsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImFzY2lpX3JlYWRfYXYu ZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFCSUxJVFlfSElH SCwKLUBAIC0xMzYsOSArMTM4LDEyIEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0V2lu ZG93c0VuZ2luZSkgewotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2Ns b2JiZXJfd3JpdGUuZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9J VEFCSUxJVFlfTE9XLAotICAgICAgICAgICAgIEV4cGxvaXRhYmlsaXR5Rm9yKCJyZWFkX2F2X2Nv bmRpdGlvbmFsLmRtcCIpKTsKLSsjZW5kaWYKLSB9Ci0gCi0gVEVTVChFeHBsb2l0YWJpbGl0eVRl c3QsIFRlc3RMaW51eEVuZ2luZSkgewotKy8vIFRoZSBmb2xsb3dpbmcgdGVzdHMgYXJlIG9ubHkg ZXhlY3V0YWJsZSBvbiBhbiB4ODYtY2xhc3MgbGludXggbWFjaGluZS4KLSsjaWYgZGVmaW5lZChf X2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpCi0gICBBU1NFUlRfRVEoZ29vZ2xlX2JyZWFrcGFk OjpFWFBMT0lUQUJJTElUWV9JTlRFUkVTVElORywKLSAgICAgICAgICAgICBFeHBsb2l0YWJpbGl0 eUZvcigibGludXhfbnVsbF9yZWFkX2F2LmRtcCIpKTsKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJl YWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi1AQCAtMTcxLDcgKzE3Niw4IEBAIFRFU1QoRXhw bG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUpIHsKLSAgICAgICAgICAgICBFeHBsb2l0 YWJpbGl0eUZvcigibGludXhfZXhlY3V0YWJsZV9oZWFwLmRtcCIpKTsKLSAgIEFTU0VSVF9FUShn b29nbGVfYnJlYWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi0gICAgICAgICAgICAgRXhwbG9p dGFiaWxpdHlGb3IoImxpbnV4X2ptcF90b19tb2R1bGVfbm90X2V4ZV9yZWdpb24uZG1wIikpOwot LSNpZm5kZWYgX1dJTjMyCi0rI2VuZGlmCi0rI2lmICFkZWZpbmVkKF9XSU4zMikgJiYgKGRlZmlu ZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKLSAgIEFTU0VSVF9FUShnb29nbGVfYnJl YWtwYWQ6OkVYUExPSVRBQklMSVRZX0hJR0gsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlG b3IoImxpbnV4X3dyaXRlX3RvX25vbndyaXRhYmxlX21vZHVsZS5kbXAiKSk7Ci0gICBBU1NFUlRf RVEoZ29vZ2xlX2JyZWFrcGFkOjpFWFBMT0lUQUJJTElUWV9ISUdILAotQEAgLTE4MiwxMCArMTg4 LDEwIEBAIFRFU1QoRXhwbG9pdGFiaWxpdHlUZXN0LCBUZXN0TGludXhFbmdpbmUpIHsKLSAgICAg ICAgICAgICBFeHBsb2l0YWJpbGl0eUZvcigibGludXhfd3JpdGVfdG9fb3V0c2lkZV9tb2R1bGVf dmlhX21hdGguZG1wIikpOwotICAgQVNTRVJUX0VRKGdvb2dsZV9icmVha3BhZDo6RVhQTE9JVEFC SUxJVFlfSU5URVJFU1RJTkcsCi0gICAgICAgICAgICAgRXhwbG9pdGFiaWxpdHlGb3IoImxpbnV4 X3dyaXRlX3RvX3VuZGVyXzRrLmRtcCIpKTsKLS0jZW5kaWYgIC8vIF9XSU4zMgotKyNlbmRpZiAg Ly8gIWRlZmluZWQoX1dJTjMyKSAmJiAoIWRlZmluZWQoX19pMzg2KSAmJiAhZGVmaW5lZChfX3g4 Nl82NCkpCi0gfQotIAotLSNpZm5kZWYgX1dJTjMyCi0rI2lmICFkZWZpbmVkKF9XSU4zMikgJiYg KGRlZmluZWQoX19pMzg2KSB8fCBkZWZpbmVkKF9feDg2XzY0KSkKLSBURVNUKEV4cGxvaXRhYmls aXR5TGludXhVdGlsc1Rlc3QsIERpc2Fzc2VtYmxlQnl0ZXNUZXN0KSB7Ci0gICBBU1NFUlRfRkFM U0UoRXhwbG9pdGFiaWxpdHlMaW51eFRlc3Q6OkRpc2Fzc2VtYmxlQnl0ZXMoIiIsIE5VTEwsIDUs IE5VTEwpKTsKLSAgIHVpbnQ4X3QgYnl0ZXNbNl0gPSB7MHhjNywgMHgwLCAweDUsIDB4MCwgMHgw LCAweDB9OwotQEAgLTMwMSw2ICszMDcsNyBAQCBURVNUKEV4cGxvaXRhYmlsaXR5TGludXhVdGls c1Rlc3QsIENhbGN1bGF0ZUFkZHJlc3NUZXN0KSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dCwKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmd3JpdGVfYWRkcmVz cykpOwotIH0KLS0jZW5kaWYgIC8vIF9XSU4zMgotKyNlbmRpZiAgLy8gIWRlZmluZWQoX1dJTjMy KSAmJiAoZGVmaW5lZChfX2kzODYpIHx8IGRlZmluZWQoX194ODZfNjQpKQotKwotIAotIH0gIC8v IG5hbWVzcGFjZQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9icmVha3BhZC9icmVha3BhZC9zcmMv dG9vbHMvbGludXgvbWQyY29yZS9taW5pZHVtcC0yLWNvcmUuY2MgdGhpcmRfcGFydHkvYnJlYWtw YWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCi1p bmRleCBhNjBiZTMyMy4uMzViMTFiNmQgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvYnJlYWtwYWQv YnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWluaWR1bXAtMi1jb3JlLmNjCi0rKysg dGhpcmRfcGFydHkvYnJlYWtwYWQvYnJlYWtwYWQvc3JjL3Rvb2xzL2xpbnV4L21kMmNvcmUvbWlu aWR1bXAtMi1jb3JlLmNjCi1AQCAtNzcsNiArNzcsOCBAQAotICAgI2RlZmluZSBFTEZfQVJDSCAg RU1fTUlQUwotICNlbGlmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gICAjZGVmaW5lIEVMRl9BUkNI ICBFTV9BQVJDSDY0Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgI2RlZmluZSBF TEZfQVJDSCAgRU1fUFBDNjQKLSAjZW5kaWYKLSAKLSAjaWYgZGVmaW5lZChfX2FybV9fKQotQEAg LTg3LDYgKzg5LDggQEAgdHlwZWRlZiB1c2VyX3JlZ3MgdXNlcl9yZWdzX3N0cnVjdDsKLSAjZWxp ZiBkZWZpbmVkIChfX21pcHNfXykKLSAvLyBUaGlzIGZpbGUtbG9jYWwgdHlwZWRlZiBzaW1wbGlm aWVzIHRoZSBzb3VyY2UgY29kZS4KLSB0eXBlZGVmIGdyZWdzZXRfdCB1c2VyX3JlZ3Nfc3RydWN0 OwotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSt0eXBlZGVmIHN0cnVjdCBwdF9yZWdz IHVzZXJfcmVnc19zdHJ1Y3Q7Ci0gI2VuZGlmCi0gCi0gdXNpbmcgZ29vZ2xlX2JyZWFrcGFkOjpN RFR5cGVIZWxwZXI7Ci1AQCAtMzIxLDYgKzMyNSw5IEBAIHN0cnVjdCBDcmFzaGVkUHJvY2VzcyB7 Ci0gI2VuZGlmCi0gI2lmIGRlZmluZWQoX19hYXJjaDY0X18pCi0gICAgIHVzZXJfZnBzaW1kX3N0 cnVjdCBmcHJlZ3M7Ci0rI2VuZGlmCi0rI2lmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgICAg bWNvbnRleHRfdCBtY29udGV4dDsKLSAjZW5kaWYKLSAgICAgdWludHB0cl90IHN0YWNrX2FkZHI7 Ci0gICAgIGNvbnN0IHVpbnQ4X3QqIHN0YWNrOwotQEAgLTUzNSw2ICs1NDIsMzggQEAgUGFyc2VU aHJlYWRSZWdpc3RlcnMoQ3Jhc2hlZFByb2Nlc3M6OlRocmVhZCogdGhyZWFkLAotICAgdGhyZWFk LT5tY29udGV4dC5mcGNfZWlyID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5maXI7Ci0gI2VuZGlmCi0g fQotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLStzdGF0aWMgdm9pZAotK1BhcnNlVGhy ZWFkUmVnaXN0ZXJzKENyYXNoZWRQcm9jZXNzOjpUaHJlYWQqIHRocmVhZCwKLSsgICAgICAgICAg ICAgICAgICAgICBjb25zdCBNaW5pZHVtcE1lbW9yeVJhbmdlJiByYW5nZSkgewotKyAgY29uc3Qg TURSYXdDb250ZXh0UFBDNjQqIHJhd3JlZ3MgPSByYW5nZS5HZXREYXRhPE1EUmF3Q29udGV4dFBQ QzY0PigwKTsKLSsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfQ09OVEVYVF9QUEM2NF9HUFJf Q09VTlQ7IGkrKykKLSsgICAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW2ldID0gcmF3cmVncy0+ Z3ByW2ldOwotKwotKyAgdGhyZWFkLT5tY29udGV4dC5ncF9yZWdzW1BUX0xOS10gPSByYXdyZWdz LT5scjsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9OSVBdID0gcmF3cmVncy0+c3Jy MDsKLSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9NU1JdID0gcmF3cmVncy0+c3JyMTsK LSsgIHRocmVhZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9DQ1JdID0gcmF3cmVncy0+Y3I7Ci0rICB0 aHJlYWQtPm1jb250ZXh0LmdwX3JlZ3NbUFRfWEVSXSA9IHJhd3JlZ3MtPnhlcjsKLSsgIHRocmVh ZC0+bWNvbnRleHQuZ3BfcmVnc1tQVF9DVFJdID0gcmF3cmVncy0+Y3RyOwotKyAgdGhyZWFkLT5t Y29udGV4dC52X3JlZ3MtPnZyc2F2ZSA9IHJhd3JlZ3MtPnZyc2F2ZTsKLSsKLSsgIGZvciAoaW50 IGkgPSAwOyBpIDwgTURfRkxPQVRJTkdTQVZFQVJFQV9QUENfRlBSX0NPVU5UOyBpKyspCi0rICAg ICAgdGhyZWFkLT5tY29udGV4dC5mcF9yZWdzW2ldID0gcmF3cmVncy0+ZmxvYXRfc2F2ZS5mcHJl Z3NbaV07Ci0rCi0rICB0aHJlYWQtPm1jb250ZXh0LmZwX3JlZ3NbTkZQUkVHLTFdID0gcmF3cmVn cy0+ZmxvYXRfc2F2ZS5mcHNjcjsKLSsKLSsgIGZvciAoaW50IGkgPSAwOyBpIDwgTURfVkVDVE9S U0FWRUFSRUFfUFBDX1ZSX0NPVU5UOyBpKyspIHsKLSsgICAgICB0aHJlYWQtPm1jb250ZXh0LnZf cmVncy0+dnJyZWdzW2ldWzBdID0gcmF3cmVncy0+dmVjdG9yX3NhdmUuc2F2ZV92cltpXS5oaWdo ID4+IDMyOwotKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1bMV0gPSBy YXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmhpZ2g7Ci0rICAgICAgdGhyZWFkLT5tY29u dGV4dC52X3JlZ3MtPnZycmVnc1tpXVsyXSA9IHJhd3JlZ3MtPnZlY3Rvcl9zYXZlLnNhdmVfdnJb aV0ubG93ID4+IDMyOwotKyAgICAgIHRocmVhZC0+bWNvbnRleHQudl9yZWdzLT52cnJlZ3NbaV1b M10gPSByYXdyZWdzLT52ZWN0b3Jfc2F2ZS5zYXZlX3ZyW2ldLmxvdzsKLSsgIH0KLSsKLSsgIHRo cmVhZC0+bWNvbnRleHQudl9yZWdzLT52c2NyLnZzY3Jfd29yZCA9IHJhd3JlZ3MtPnZlY3Rvcl9z YXZlLnNhdmVfdnNjci5sb3cgJiAweEZGRkZGRkZGOwotK30KLSsKLSAjZWxzZQotICNlcnJvciAi VGhpcyBjb2RlIGhhcyBub3QgYmVlbiBwb3J0ZWQgdG8geW91ciBwbGF0Zm9ybSB5ZXQiCi0gI2Vu ZGlmCi1AQCAtNjIzLDYgKzY2MiwxMiBAQCBQYXJzZVN5c3RlbUluZm8oY29uc3QgT3B0aW9ucyYg b3B0aW9ucywgQ3Jhc2hlZFByb2Nlc3MqIGNyYXNoaW5mbywKLSAjIGVsc2UKLSAjICBlcnJvciAi VGhpcyBtaXBzIEFCSSBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCAobjMyKSIKLSAjIGVuZGlm Ci0rI2VsaWYgZGVmaW5lZChfX3Bvd2VycGM2NF9fKQotKyAgaWYgKHN5c2luZm8tPnByb2Nlc3Nv cl9hcmNoaXRlY3R1cmUgIT0gTURfQ1BVX0FSQ0hJVEVDVFVSRV9QUEM2NCkgewotKyAgICBmcHJp bnRmKHN0ZGVyciwKLSsgICAgICAgICAgICAiVGhpcyB2ZXJzaW9uIG9mIG1pbmlkdW1wLTItY29y ZSBvbmx5IHN1cHBvcnRzIFBQQzY0LlxuIik7Ci0rICAgIGV4aXQoMSk7Ci0rICB9Ci0gI2Vsc2UK LSAjZXJyb3IgIlRoaXMgY29kZSBoYXMgbm90IGJlZW4gcG9ydGVkIHRvIHlvdXIgcGxhdGZvcm0g eWV0IgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9D T05UUklCVVRPUlMgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvQ09OVFJJQlVUT1JTCi1p bmRleCA4NzI0YjdmMy4uOGUyOTQyNGUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvQ09OVFJJQlVUT1JTCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQv Q09OVFJJQlVUT1JTCi1AQCAtMTMsMyArMTMsNCBAQCBNYXJrIE1lbnRvdmFpIDxtYXJrQGNocm9t aXVtLm9yZz4KLSBSb2JlcnQgU2VzZWsgPHJzZXNla0BjaHJvbWl1bS5vcmc+Ci0gU2NvdHQgR3Jh aGFtIDxzY290dG1nQGNocm9taXVtLm9yZz4KLSBKb3NodWEgUGVyYXphIDxqcGVyYXphQGNocm9t aXVtLm9yZz4KLStTaGF3biBBbmFzdGFzaW8gPHNoYXduQGFuYXN0YXMuaW8+Ci1kaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oIHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL2NvbXBhdC9saW51eC9zeXMvdXNlci5oCi1pbmRl eCA2ZWQ3N2E5OC4uMWZkODM0NjkgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvY29tcGF0L2xpbnV4L3N5cy91c2VyLmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC9jb21wYXQvbGludXgvc3lzL3VzZXIuaAotQEAgLTE1LDYgKzE1LDcgQEAKLSAjaWZu ZGVmIENSQVNIUEFEX0NPTVBBVF9MSU5VWF9TWVNfVVNFUl9IXwotICNkZWZpbmUgQ1JBU0hQQURf Q09NUEFUX0xJTlVYX1NZU19VU0VSX0hfCi0gCi0rI2luY2x1ZGUgPGNzdGRkZWY+Ci0gI2luY2x1 ZGVfbmV4dCA8c3lzL3VzZXIuaD4KLSAKLSAjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KLWRpZmYgLS1n aXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4 dC5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRl eHQuaAotaW5kZXggM2EzZTYwM2MuLjMxMThkOWU5IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAotKysrIHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHQuaAotQEAgLTU5 Miw2ICs1OTIsNzAgQEAgc3RydWN0IE1pbmlkdW1wQ29udGV4dE1JUFM2NCB7Ci0gICB1aW50NjRf dCBmaXI7Ci0gfTsKLSAKLSsvLyEgXGJyaWVmIHBwYzY0LXNwZWNpZmljIGZsYWdzIGZvciBNaW5p ZHVtcFBQQzY0Ojpjb250ZXh0X2ZsYWdzCi0rLy8hIEJhc2VkIG9uIG1pbmlkdW1wX2NwdV9wcGM2 NC5oIGZyb20gYnJlYWtwYWQKLStlbnVtIE1pbmlkdW1wQ29udGV4dFBQQzY0RmxhZ3MgOiB1aW50 MzJfdCB7Ci0rICAvLyEgXGJyaWVmIElkZW50aWZpZXMgdGhlIGNvbnRleHQgYXMgUFBDNjQuCi0r ICBrTWluaWR1bXBDb250ZXh0UFBDNjQgPSAweDAxMDAwMDAwLAotKwotKyAgLy8hIFxicmllZiBJ bmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIGdlbmVyYWwgcHVycG9zZSByZWdpc3RlcnMuCi0rICAv LyEKLSsgIC8vISBSZWdpc3RlcnMgYHIwYC1gcjMxYCwgYG5pcGAsIGBtc3JgLCBgbHJgLCBldGMu IGFyZSB2YWxpZC4KLSsgIGtNaW5pZHVtcENvbnRleHRQUEM2NEJhc2UgPSBrTWluaWR1bXBDb250 ZXh0UFBDNjQgfCAweDAwMDAwMDAxLAotKwotKyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZh bGlkaXR5IG9mIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycy4KLSsgIC8vIQotKyAgLy8hIFJlZ2lz dGVycyBgZnAwYC1gZnAzMWAsIGBmcHNjcmAgYXJlIHZhbGlkLgotKyAga01pbmlkdW1wQ29udGV4 dFBQQzY0RmxvYXRpbmcgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQgfCAweDAwMDAwMDA4LAotKwot KyAgLy8hIFxicmllZiBJbmRpY2F0ZXMgdGhlIHZhbGlkaXR5IG9mIEFsdGl2ZWMvVk1YIHJlZ2lz dGVycy4KLSsgIC8vIQotKyAgLy8hIFJlZ2lzdGVycyBgdjBgLWB2MzFgLCBgdnNjcmAsIGB2cnNh dmVgLgotKyAga01pbmlkdW1wQ29udGV4dFBQQzY0VmVjdG9yID0ga01pbmlkdW1wQ29udGV4dFBQ QzY0IHwgMHgwMDAwMDAyMCwKLSsKLSsgIC8vISBcYnJpZWYgSW5kaWNhdGVzIHRoZSB2YWxpZGl0 eSBvZiBhbGwgcmVnaXN0ZXJzCi0rICBrTWluaWR1bXBDb250ZXh0UFBDNjRBbGwgPSBrTWluaWR1 bXBDb250ZXh0UFBDNjRCYXNlICAgICB8Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr TWluaWR1bXBDb250ZXh0UFBDNjRGbG9hdGluZyB8Ci0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBrTWluaWR1bXBDb250ZXh0UFBDNjRWZWN0b3IKLSt9OwotKwotKy8vISBcYnJpZWYgQSBQ UEM2NCBDUFUgY29udGV4dCBjYXJyaWVkIGluIGEgbWluaWR1bXAgZmlsZS4KLSsvLyEgQmFzZWQg b24gbWluaWR1bXBfY3B1X3BwYzY0LmggZnJvbSBicmVha3BhZC4KLStzdHJ1Y3QgTWluaWR1bXBD b250ZXh0UFBDNjQgewotKyAgdWludDY0X3QgY29udGV4dF9mbGFnczsKLSsKLSsgIC8vISBcYnJp ZWYgR2VuZXJhbCBwdXJwb3NlIHJlZ2lzdGVycy4KLSsgIHVpbnQ2NF90IG5pcDsKLSsgIHVpbnQ2 NF90IG1zcjsKLSsgIHVpbnQ2NF90IHJlZ3NbMzJdOwotKyAgdWludDY0X3QgY2NyOwotKyAgdWlu dDY0X3QgeGVyOwotKyAgdWludDY0X3QgbG5rOwotKyAgdWludDY0X3QgY3RyOwotKwotKyAgLy8h IFxicmllZiBGbG9hdGluZyBwb2ludCByZWdpc3RlcnMuCi0rICBkb3VibGUgZnByZWdzWzMyXTsK LSsKLSsgIC8vISBcYnJpZWYgRlBVIHN0YXR1cyByZWdpc3Rlci4KLSsgIGRvdWJsZSBmcHNjcjsK LSsKLSsgIC8vISBcYnJpZWYgQWx0aXZlYy9WTVggdmVjdG9yIHJlZ2lzdGVycy4KLSsgIHN0cnVj dCB7Ci0rICAgICAgLy8hIFxicmllZiBWZWN0b3IgcmVnaXN0ZXJzIGFyZSAxMjhiaXRzLgotKyAg ICAgIHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOwotKyAgICAgIHVpbnQxMjhfc3RydWN0IHNh dmVfdnNjcjsKLSsKLSsgICAgICAvLyEgXGJyaWVmIFBhZGRpbmcgaW5jbHVkZWQgZm9yIGJyZWFr cGFkIGNvbXBhdGliaWx0aXkuCi0rICAgICAgdWludDMyX3Qgc2F2ZV9wYWQ1WzRdOwotKwotKyAg ICAgIC8vISBcYnJpZWYgVlJTQVZFIHJlZ2lzdGVyLgotKyAgICAgIHVpbnQzMl90IHNhdmVfdnJz YXZlOwotKwotKyAgICAgIC8vISBcYnJpZWYgUGFkZGluZyBpbmNsdWRlZCBmb3IgYnJlYWtwYWQg Y29tcGF0aWJpbHRpeS4KLSsgICAgICB1aW50MzJfdCBzYXZlX3BhZDZbN107Ci0rICB9IHZyZWdz OwotK307Ci0rCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi0gCi0gI2VuZGlmICAvLyBDUkFT SFBBRF9NSU5JRFVNUF9NSU5JRFVNUF9DT05URVhUX0hfCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyLmNjIHRo aXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3Jp dGVyLmNjCi1pbmRleCBkN2U1M2E0OS4uZDg5ZWI5ZTAgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29udGV4dF93cml0ZXIuY2MKLSsr KyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0 X3dyaXRlci5jYwotQEAgLTEwMSw2ICsxMDEsMTMgQEAgTWluaWR1bXBDb250ZXh0V3JpdGVyOjpD cmVhdGVGcm9tU25hcHNob3QoY29uc3QgQ1BVQ29udGV4dCogY29udGV4dF9zbmFwc2hvdCkgewot ICAgICAgIGJyZWFrOwotICAgICB9Ci0gCi0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0 OiB7Ci0rICAgICAgY29udGV4dCA9IHN0ZDo6bWFrZV91bmlxdWU8TWluaWR1bXBDb250ZXh0UFBD NjRXcml0ZXI+KCk7Ci0rICAgICAgcmVpbnRlcnByZXRfY2FzdDxNaW5pZHVtcENvbnRleHRQUEM2 NFdyaXRlcio+KGNvbnRleHQuZ2V0KCkpCi0rICAgICAgICAgIC0+SW5pdGFsaXplRnJvbVNuYXBz aG90KGNvbnRleHRfc25hcHNob3QtPnBwYzY0KTsKLSsgICAgICBicmVhazsKLSsgICAgfQotKwot ICAgICBkZWZhdWx0OiB7Ci0gICAgICAgTE9HKEVSUk9SKSA8PCAidW5rbm93biBjb250ZXh0IGFy Y2hpdGVjdHVyZSAiCi0gICAgICAgICAgICAgICAgICA8PCBjb250ZXh0X3NuYXBzaG90LT5hcmNo aXRlY3R1cmU7Ci1AQCAtNDUzLDQgKzQ2MCw0NyBAQCBzaXplX3QgTWluaWR1bXBDb250ZXh0TUlQ UzY0V3JpdGVyOjpDb250ZXh0U2l6ZSgpIGNvbnN0IHsKLSAgIHJldHVybiBzaXplb2YoY29udGV4 dF8pOwotIH0KLSAKLStNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6TWluaWR1bXBDb250ZXh0 UFBDNjRXcml0ZXIoKQotKyAgOiBNaW5pZHVtcENvbnRleHRXcml0ZXIoKSwgY29udGV4dF8oKSB7 Ci0rICAgIGNvbnRleHRfLmNvbnRleHRfZmxhZ3MgPSBrTWluaWR1bXBDb250ZXh0UFBDNjQ7Ci0r fQotKwotK01pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjp+TWluaWR1bXBDb250ZXh0UFBDNjRX cml0ZXIoKSA9IGRlZmF1bHQ7Ci0rCi0rdm9pZCBNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcjo6 SW5pdGFsaXplRnJvbVNuYXBzaG90KAotKyAgICBjb25zdCBDUFVDb250ZXh0UFBDNjQqIGNvbnRl eHRfc25hcHNob3QpIHsKLSsgIERDSEVDS19FUShzdGF0ZSgpLCBrU3RhdGVNdXRhYmxlKTsKLSsg IERDSEVDS19FUShjb250ZXh0Xy5jb250ZXh0X2ZsYWdzLCBrTWluaWR1bXBDb250ZXh0UFBDNjQp OwotKwotKyAgY29udGV4dF8uY29udGV4dF9mbGFncyA9IGtNaW5pZHVtcENvbnRleHRQUEM2NEFs bDsKLSsKLSsgIG1lbWNweShjb250ZXh0Xy5yZWdzLCBjb250ZXh0X3NuYXBzaG90LT5yZWdzLCBz aXplb2YoY29udGV4dF8ucmVncykpOwotKyAgY29udGV4dF8ubmlwID0gY29udGV4dF9zbmFwc2hv dC0+bmlwOwotKyAgY29udGV4dF8ubXNyID0gY29udGV4dF9zbmFwc2hvdC0+bXNyOwotKyAgY29u dGV4dF8uY2NyID0gY29udGV4dF9zbmFwc2hvdC0+Y2NyOwotKyAgY29udGV4dF8ueGVyID0gY29u dGV4dF9zbmFwc2hvdC0+eGVyOwotKyAgY29udGV4dF8ubG5rID0gY29udGV4dF9zbmFwc2hvdC0+ bG5rOwotKyAgY29udGV4dF8uY3RyID0gY29udGV4dF9zbmFwc2hvdC0+Y3RyOwotKwotKyAgbWVt Y3B5KGNvbnRleHRfLmZwcmVncywgY29udGV4dF9zbmFwc2hvdC0+ZnByZWdzLCBzaXplb2YoY29u dGV4dF8uZnByZWdzKSk7Ci0rICBjb250ZXh0Xy5mcHNjciA9IGNvbnRleHRfc25hcHNob3QtPmZw c2NyOwotKwotKyAgbWVtY3B5KGNvbnRleHRfLnZyZWdzLnNhdmVfdnIsIGNvbnRleHRfc25hcHNo b3QtPnZyZWdzLnNhdmVfdnIsCi0rICAgICAgICAgc2l6ZW9mKGNvbnRleHRfLnZyZWdzLnNhdmVf dnIpKTsKLSsgIG1lbWNweSgmY29udGV4dF8udnJlZ3Muc2F2ZV92c2NyLCAmY29udGV4dF9zbmFw c2hvdC0+dnJlZ3Muc2F2ZV92c2NyLAotKyAgICAgICAgIHNpemVvZihjb250ZXh0Xy52cmVncy5z YXZlX3ZzY3IpKTsKLSsgIGNvbnRleHRfLnZyZWdzLnNhdmVfdnJzYXZlID0gY29udGV4dF9zbmFw c2hvdC0+dnJlZ3Muc2F2ZV92cnNhdmU7Ci0rfQotKwotK2Jvb2wgTWluaWR1bXBDb250ZXh0UFBD NjRXcml0ZXI6OldyaXRlT2JqZWN0KAotKyAgICBGaWxlV3JpdGVySW50ZXJmYWNlKiBmaWxlX3dy aXRlcikgewotKyAgRENIRUNLX0VRKHN0YXRlKCksIGtTdGF0ZVdyaXRhYmxlKTsKLSsgIHJldHVy biBmaWxlX3dyaXRlci0+V3JpdGUoJmNvbnRleHRfLCBzaXplb2YoY29udGV4dF8pKTsKLSt9Ci0r Ci0rc2l6ZV90IE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyOjpDb250ZXh0U2l6ZSgpIGNvbnN0 IHsKLSsgIERDSEVDS19HRShzdGF0ZSgpLCBrU3RhdGVGcm96ZW4pOwotKyAgcmV0dXJuIHNpemVv Zihjb250ZXh0Xyk7Ci0rfQotKwotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0 X3dyaXRlci5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1w X2NvbnRleHRfd3JpdGVyLmgKLWluZGV4IGQ0YWI5MzZlLi4xZDIyZmM1OSAxMDA2NDQKLS0tLSB0 aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9jb250ZXh0X3dy aXRlci5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1 bXBfY29udGV4dF93cml0ZXIuaAotQEAgLTMxNSw2ICszMTUsNDUgQEAgY2xhc3MgTWluaWR1bXBD b250ZXh0TUlQUzY0V3JpdGVyIGZpbmFsIDogcHVibGljIE1pbmlkdW1wQ29udGV4dFdyaXRlciB7 Ci0gICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oTWluaWR1bXBDb250ZXh0TUlQUzY0V3JpdGVy KTsKLSB9OwotIAotK2NsYXNzIE1pbmlkdW1wQ29udGV4dFBQQzY0V3JpdGVyIGZpbmFsIDogcHVi bGljIE1pbmlkdW1wQ29udGV4dFdyaXRlciB7Ci0rIHB1YmxpYzoKLSsgIE1pbmlkdW1wQ29udGV4 dFBQQzY0V3JpdGVyKCk7Ci0rICB+TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIoKSBvdmVycmlk ZTsKLSsKLSsgIC8vISBcYnJpZWYgSW5pdGFsaXplcyB0aGUgTWluaWR1bXBDb250ZXh0UFBDNjQg YmFzZWQgb24gXGEgY29udGV4dF9zbmFwc2hvdC4KLSsgIC8vIQotKyAgLy8hIFxwYXJhbVtpbl0g Y29udGV4dF9zbmFwc2hvdCBUaGUgY29udGV4dCBzbmFwc2hvdCB0byB1c2UgYXMgc291cmNlIGRh dGEuCi0rICAvLyEKLSsgIC8vISBcbm90ZSBWYWxpZCBpbiAja1N0YXRlTXV0YWJsZS4gTm8gbXV0 YXRpb24gb2YgY29udGV4dCgpIG1heSBiZSBkb25lIGJlZm9yZQotKyAgLy8hICAgICBjYWxsaW5n IHRoaXMgbWV0aG9kLCBhbmQgaXQgaXMgbm90IG5vcm1hbGx5IG5lY2Vzc2FyeSB0byBhbHRlcgot KyAgLy8hICAgICBjb250ZXh0KCkgYWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZC4KLSsgIHZvaWQg SW5pdGFsaXplRnJvbVNuYXBzaG90KGNvbnN0IENQVUNvbnRleHRQUEM2NCogY29udGV4dF9zbmFw c2hvdCk7Ci0rCi0rICAvLyEgXGJyaWVmIFJldHVybnMgYSBwb2ludGVyIHRvIHRoZSBjb250ZXh0 IHN0cnVjdHVyZSB0aGF0IHRoaXMgb2JqZWN0IHdpbGwKLSsgIC8vISAgICAgd3JpdGUuCi0rICAv LyEKLSsgIC8vISBcYXR0ZW50aW9uIFRoaXMgcmV0dXJucyBhIG5vbi1gY29uc3RgIHBvaW50ZXIg dG8gdGhpcyBvYmplY3TigJlzIHByaXZhdGUKLSsgIC8vISAgICAgZGF0YSBzbyB0aGF0IGEgY2Fs bGVyIGNhbiBwb3B1bGF0ZSB0aGUgY29udGV4dCBzdHJ1Y3R1cmUgZGlyZWN0bHkuCi0rICAvLyEg ICAgIFRoaXMgaXMgZG9uZSBiZWNhdXNlIHByb3ZpZGluZyBzZXR0ZXIgaW50ZXJmYWNlcyB0byBl YWNoIGZpZWxkIGluIHRoZQotKyAgLy8hICAgICBjb250ZXh0IHN0cnVjdHVyZSB3b3VsZCBiZSB1 bndpZWxkeSBhbmQgY3VtYmVyc29tZS4gQ2FyZSBtdXN0IGJlIHRha2VuCi0rICAvLyEgICAgIHRv IHBvcHVsYXRlIHRoZSBjb250ZXh0IHN0cnVjdHVyZSBjb3JyZWN0bHkuIFRoZSBjb250ZXh0IHN0 cnVjdHVyZQotKyAgLy8hICAgICBtdXN0IG9ubHkgYmUgbW9kaWZpZWQgd2hpbGUgdGhpcyBvYmpl Y3QgaXMgaW4gdGhlICNrU3RhdGVNdXRhYmxlCi0rICAvLyEgICAgIHN0YXRlLgotKyAgTWluaWR1 bXBDb250ZXh0UFBDNjQqIGNvbnRleHQoKSB7IHJldHVybiAmY29udGV4dF87IH0KLSsKLSsgcHJv dGVjdGVkOgotKyAgLy8gTWluaWR1bXBXcml0YWJsZToKLSsgIGJvb2wgV3JpdGVPYmplY3QoRmls ZVdyaXRlckludGVyZmFjZSogZmlsZV93cml0ZXIpIG92ZXJyaWRlOwotKwotKyAgLy8gTWluaWR1 bXBDb250ZXh0V3JpdGVyOgotKyAgc2l6ZV90IENvbnRleHRTaXplKCkgY29uc3Qgb3ZlcnJpZGU7 Ci0rCi0rIHByaXZhdGU6Ci0rICBNaW5pZHVtcENvbnRleHRQUEM2NCBjb250ZXh0XzsKLSsKLSsg IERJU0FMTE9XX0NPUFlfQU5EX0FTU0lHTihNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlcik7Ci0r fTsKLSsKLSB9ICAvLyBuYW1lc3BhY2UgY3Jhc2hwYWQKLSAKLSAjZW5kaWYgIC8vIENSQVNIUEFE X01JTklEVU1QX01JTklEVU1QX0NPTlRFWFRfV1JJVEVSX0hfCi1kaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRfd3JpdGVyX3Rl c3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfY29u dGV4dF93cml0ZXJfdGVzdC5jYwotaW5kZXggMzIxNmE5MDYuLmE5ZmNiZTlkIDEwMDY0NAotLS0t IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL21pbmlkdW1wL21pbmlkdW1wX2NvbnRleHRf d3JpdGVyX3Rlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVt cC9taW5pZHVtcF9jb250ZXh0X3dyaXRlcl90ZXN0LmNjCi1AQCAtMjEzLDYgKzIxMywyMSBAQCBU RVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgTUlQUzY0X0Zyb21TbmFwc2hvdCkgewotICAgICAg IGNvbnRleHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dE1JUFM2NCwga1NlZWQpOwotIH0KLSAKLStU RVNUKE1pbmlkdW1wQ29udGV4dFdyaXRlciwgUFBDNjRfWmVyb3MpIHsKLSsgIEVtcHR5Q29udGV4 dFRlc3Q8TWluaWR1bXBDb250ZXh0UFBDNjRXcml0ZXIsIE1pbmlkdW1wQ29udGV4dFBQQzY0PigK LSsgICAgRXhwZWN0TWluaWR1bXBDb250ZXh0UFBDNjQpOwotK30KLSsKLStURVNUKE1pbmlkdW1w Q29udGV4dFdyaXRlciwgUFBDNjRfRnJvbVNuYXBzaG90KSB7Ci0rICBjb25zdGV4cHIgdWludDMy X3Qga1NlZWQgPSA2NDsKLSsgIENQVUNvbnRleHRQUEM2NCBjb250ZXh0X3BwYzY0OwotKyAgQ1BV Q29udGV4dCBjb250ZXh0OwotKyAgY29udGV4dC5wcGM2NCA9ICZjb250ZXh0X3BwYzY0OwotKyAg SW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgmY29udGV4dCwga1NlZWQpOwotKyAgRnJvbVNuYXBz aG90VGVzdDxNaW5pZHVtcENvbnRleHRQUEM2NFdyaXRlciwgTWluaWR1bXBDb250ZXh0UFBDNjQ+ KAotKyAgICAgIGNvbnRleHQsIEV4cGVjdE1pbmlkdW1wQ29udGV4dFBQQzY0LCBrU2VlZCk7Ci0r fQotKwotIH0gIC8vIG5hbWVzcGFjZQotIH0gIC8vIG5hbWVzcGFjZSB0ZXN0Ci0gfSAgLy8gbmFt ZXNwYWNlIGNyYXNocGFkCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFk L21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvbWluaWR1bXAvbWluaWR1bXBfbWlzY19pbmZvX3dyaXRlci5jYwotaW5kZXgg YTEzNDA3NjAuLjk1ZGM5MjUyIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL21pbmlkdW1wL21pbmlkdW1wX21pc2NfaW5mb193cml0ZXIuY2MKLSsrKyB0aGlyZF9wYXJ0 eS9jcmFzaHBhZC9jcmFzaHBhZC9taW5pZHVtcC9taW5pZHVtcF9taXNjX2luZm9fd3JpdGVyLmNj Ci1AQCAtMTI2LDYgKzEyNiw4IEBAIHN0ZDo6c3RyaW5nIE1pbmlkdW1wTWlzY0luZm9EZWJ1Z0J1 aWxkU3RyaW5nKCkgewotICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtDUFVbXSA9ICJtaXBzIjsK LSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFM2NEVMKQotICAgc3RhdGljIGNvbnN0ZXhwciBj aGFyIGtDUFVbXSA9ICJtaXBzNjQiOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjQpCi0r ICBzdGF0aWMgY29uc3RleHByIGNoYXIga0NQVVtdID0gInBwYzY0IjsKLSAjZWxzZQotICNlcnJv ciBkZWZpbmUga0NQVSBmb3IgdGhpcyBDUFUKLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MgdGhpcmRfcGFy dHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY2FwdHVyZV9tZW1vcnkuY2MKLWluZGV4IGE1 MTYyNmNjLi42MWUwYjIwYSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC9zbmFwc2hvdC9jYXB0dXJlX21lbW9yeS5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2NhcHR1cmVfbWVtb3J5LmNjCi1AQCAtMTExLDYgKzExMSwxMSBAQCB2 b2lkIENhcHR1cmVNZW1vcnk6OlBvaW50ZWRUb0J5Q29udGV4dChjb25zdCBDUFVDb250ZXh0JiBj b250ZXh0LAotICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBiYXNlOjpzaXplKGNvbnRleHQubWlw c2VsLT5yZWdzKTsgKytpKSB7Ci0gICAgIE1heWJlQ2FwdHVyZU1lbW9yeUFyb3VuZChkZWxlZ2F0 ZSwgY29udGV4dC5taXBzZWwtPnJlZ3NbaV0pOwotICAgfQotKyNlbGlmIGRlZmluZWQoQVJDSF9D UFVfUFBDNjRfRkFNSUxZKQotKyAgTWF5YmVDYXB0dXJlTWVtb3J5QXJvdW5kKGRlbGVnYXRlLCBj b250ZXh0LnBwYzY0LT5uaXApOwotKyAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBiYXNlOjpzaXpl KGNvbnRleHQucHBjNjQtPnJlZ3MpOyArK2kpIHsKLSsgICAgTWF5YmVDYXB0dXJlTWVtb3J5QXJv dW5kKGRlbGVnYXRlLCBjb250ZXh0LnBwYzY0LT5yZWdzW2ldKTsKLSsgIH0KLSAjZWxzZQotICNl cnJvciBQb3J0LgotICNlbmRpZgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC9zbmFwc2hvdC9jcHVfYXJjaGl0ZWN0dXJlLmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvY3B1X2FyY2hpdGVjdHVyZS5oCi1pbmRleCA4MTFhNzIwOS4uZjRmODM5 ODEgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1 X2FyY2hpdGVjdHVyZS5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNo b3QvY3B1X2FyY2hpdGVjdHVyZS5oCi1AQCAtNDMsNyArNDMsMTAgQEAgZW51bSBDUFVBcmNoaXRl Y3R1cmUgewotICAga0NQVUFyY2hpdGVjdHVyZU1JUFNFTCwKLSAKLSAgIC8vISBcYnJpZWYgNjQt Yml0IE1JUFNFTC4KLS0gIGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTAotKyAga0NQVUFyY2hpdGVj dHVyZU1JUFM2NEVMLAotKwotKyAgLy8hIFxicmllZiA2NC1iaXQgUFBDNjQuCi0rICBrQ1BVQXJj aGl0ZWN0dXJlUFBDNjQKLSB9OwotIAotIH0gIC8vIG5hbWVzcGFjZSBjcmFzaHBhZAotZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5j YyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5jYwot aW5kZXggNmZiOGQ3ZTcuLmIwMWY3Y2FkIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvY3B1X2NvbnRleHQuY2MKLUBAIC0xNjksNiArMTY5LDggQEAg dWludDY0X3QgQ1BVQ29udGV4dDo6SW5zdHJ1Y3Rpb25Qb2ludGVyKCkgY29uc3QgewotICAgICAg IHJldHVybiBhcm0tPnBjOwotICAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVBUk02NDoKLSAgICAg ICByZXR1cm4gYXJtNjQtPnBjOwotKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDoKLSsg ICAgICByZXR1cm4gcHBjNjQtPm5pcDsKLSAgICAgZGVmYXVsdDoKLSAgICAgICBOT1RSRUFDSEVE KCk7Ci0gICAgICAgcmV0dXJuIH4wdWxsOwotQEAgLTE4NSw2ICsxODcsOCBAQCB1aW50NjRfdCBD UFVDb250ZXh0OjpTdGFja1BvaW50ZXIoKSBjb25zdCB7Ci0gICAgICAgcmV0dXJuIGFybS0+c3A7 Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZUFSTTY0OgotICAgICAgIHJldHVybiBhcm02NC0+ c3A7Ci0rICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVBQQzY0OgotKyAgICAgIHJldHVybiBwcGM2 NC0+cmVnc1sxXTsKLSAgICAgZGVmYXVsdDoKLSAgICAgICBOT1RSRUFDSEVEKCk7Ci0gICAgICAg cmV0dXJuIH4wdWxsOwotQEAgLTE5Niw2ICsyMDAsNyBAQCBib29sIENQVUNvbnRleHQ6OklzNjRC aXQoKSBjb25zdCB7Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZVg4Nl82NDoKLSAgICAgY2Fz ZSBrQ1BVQXJjaGl0ZWN0dXJlQVJNNjQ6Ci0gICAgIGNhc2Uga0NQVUFyY2hpdGVjdHVyZU1JUFM2 NEVMOgotKyAgICBjYXNlIGtDUFVBcmNoaXRlY3R1cmVQUEM2NDoKLSAgICAgICByZXR1cm4gdHJ1 ZTsKLSAgICAgY2FzZSBrQ1BVQXJjaGl0ZWN0dXJlWDg2OgotICAgICBjYXNlIGtDUFVBcmNoaXRl Y3R1cmVBUk06Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBz aG90L2NwdV9jb250ZXh0LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv Y3B1X2NvbnRleHQuaAotaW5kZXggZmIyM2M0NjcuLmVlYmVkZTYzIDEwMDY0NAotLS0tIHRoaXJk X3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2NwdV9jb250ZXh0LmgKLSsrKyB0aGly ZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9jcHVfY29udGV4dC5oCi1AQCAtMzUy LDYgKzM1MiwyNCBAQCBzdHJ1Y3QgQ1BVQ29udGV4dE1JUFM2NCB7Ci0gICB1aW50NjRfdCBmaXI7 Ci0gfTsKLSAKLSsvLyEgXGJyaWVmIEEgY29udGV4dCBzdHJ1Y3R1cmUgY2FycnlpbmcgUFBDNjQg Q1BVIHN0YXRlLgotK3N0cnVjdCBDUFVDb250ZXh0UFBDNjQgewotKyAgdWludDY0X3QgbmlwOwot KyAgdWludDY0X3QgbXNyOwotKyAgdWludDY0X3QgcmVnc1szMl07Ci0rICB1aW50NjRfdCBjY3I7 Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1aW50NjRfdCBsbms7Ci0rICB1aW50NjRfdCBjdHI7Ci0r ICBkb3VibGUgZnByZWdzWzMyXTsKLSsgIGRvdWJsZSBmcHNjcjsKLSsgIHN0cnVjdCB7Ci0rICAg IHVpbnQxMjhfc3RydWN0IHNhdmVfdnJbMzJdOwotKyAgICB1aW50MTI4X3N0cnVjdCBzYXZlX3Zz Y3I7Ci0rICAgIHVpbnQzMl90IHNhdmVfdnJzYXZlOwotKyAgfSB2cmVnczsKLSt9OwotKwotIC8v ISBcYnJpZWYgQSBjb250ZXh0IHN0cnVjdHVyZSBjYXBhYmxlIG9mIGNhcnJ5aW5nIHRoZSBjb250 ZXh0IG9mIGFueSBzdXBwb3J0ZWQKLSAvLyEgICAgIENQVSBhcmNoaXRlY3R1cmUuCi0gc3RydWN0 IENQVUNvbnRleHQgewotQEAgLTM4Miw2ICs0MDAsNyBAQCBzdHJ1Y3QgQ1BVQ29udGV4dCB7Ci0g ICAgIENQVUNvbnRleHRBUk02NCogYXJtNjQ7Ci0gICAgIENQVUNvbnRleHRNSVBTKiBtaXBzZWw7 Ci0gICAgIENQVUNvbnRleHRNSVBTNjQqIG1pcHM2NDsKLSsgICAgQ1BVQ29udGV4dFBQQzY0KiBw cGM2NDsKLSAgIH07Ci0gfTsKLSAKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaCB0aGlyZF9wYXJ0eS9jcmFz aHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9jcHVfY29udGV4dF9saW51eC5oCi1pbmRleCA5 ZjQ2YTQ4OS4uYWE2NzdjNGUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvc25hcHNob3QvbGludXgvY3B1X2NvbnRleHRfbGludXguaAotKysrIHRoaXJkX3BhcnR5L2Ny YXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2NwdV9jb250ZXh0X2xpbnV4LmgKLUBAIC0x NSw2ICsxNSw3IEBACi0gI2lmbmRlZiBDUkFTSFBBRF9TTkFQU0hPVF9MSU5VWF9DUFVfQ09OVEVY VF9MSU5VWF9IXwotICNkZWZpbmUgQ1JBU0hQQURfU05BUFNIT1RfTElOVVhfQ1BVX0NPTlRFWFRf TElOVVhfSF8KLSAKLSsjaW5jbHVkZSA8Y3N0cmluZz4KLSAjaW5jbHVkZSAiYnVpbGQvYnVpbGRf Y29uZmlnLmgiCi0gI2luY2x1ZGUgInNuYXBzaG90L2NwdV9jb250ZXh0LmgiCi0gI2luY2x1ZGUg InNuYXBzaG90L2xpbnV4L3NpZ25hbF9jb250ZXh0LmgiCi1AQCAtMTc0LDYgKzE3NSw3OCBAQCB2 b2lkIEluaXRpYWxpemVDUFVDb250ZXh0TUlQUygKLSAKLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX01J UFNfRkFNSUxZIHx8IERPWFlHRU4KLSAKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpIHx8IERPWFlHRU4KLSsKLSsvLyEgXGJyaWVmIEluaXRhbGl6ZXMgYSBDUFVDb250ZXh0UFBD NjQgc3RydWN0dXJlIGZyb20gbmF0aXZlIGNvbnRleHQKLSsvLyEgICAgIHN0cnVjdHVyZXMgb24g TGludXguCi0rLy8hCi0rLy8hIFxwYXJhbVtpbl0gdGhyZWFkX2NvbnRleHQgVGhlIG5hdGl2ZSB0 aHJlYWQgY29udGV4dC4KLSsvLyEgXHBhcmFtW2luXSBmbG9hdF9jb250ZXh0IFRoZSBuYXRpdmUg ZmxvYXQgY29udGV4dC4KLSsvLyEgXHBhcmFtW2luXSB2ZWN0b3JfY29udGV4dCBUaGUgbmF0aXZl IHZlY3RvciBjb250ZXh0LgotKy8vISBccGFyYW1bb3V0XSBjb250ZXh0IFRoZSBDUFVDb250ZXh0 UFBDNjQgc3RydWN0dXJlIHRvIGluaXRhbGl6ZS4KLSt0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJhaXRz PgotK3ZvaWQgSW5pdGlhbGl6ZUNQVUNvbnRleHRQUEM2NCgKLSsgICAgY29uc3QgVGhyZWFkQ29u dGV4dDo6dDY0X3QmIHRocmVhZF9jb250ZXh0LAotKyAgICBjb25zdCBGbG9hdENvbnRleHQ6OmY2 NF90JiBmbG9hdF9jb250ZXh0LAotKyAgICBjb25zdCBWZWN0b3JDb250ZXh0Ojp2NjRfdCYgdmVj dG9yX2NvbnRleHQsCi0rICAgIHR5cGVuYW1lIFRyYWl0czo6Q1BVQ29udGV4dCogY29udGV4dCkg ewotKwotKyAgbWVtY3B5KGNvbnRleHQtPnJlZ3MsIHRocmVhZF9jb250ZXh0Lmdwciwgc2l6ZW9m KGNvbnRleHQtPnJlZ3MpKTsKLSsgIGNvbnRleHQtPm5pcCA9IHRocmVhZF9jb250ZXh0Lm5pcDsK LSsgIGNvbnRleHQtPm1zciA9IHRocmVhZF9jb250ZXh0Lm1zcjsKLSsgIGNvbnRleHQtPmNjciA9 IHRocmVhZF9jb250ZXh0LmNjcjsKLSsgIGNvbnRleHQtPnhlciA9IHRocmVhZF9jb250ZXh0Lnhl cjsKLSsgIGNvbnRleHQtPmxuayA9IHRocmVhZF9jb250ZXh0LmxuazsKLSsgIGNvbnRleHQtPmN0 ciA9IHRocmVhZF9jb250ZXh0LmN0cjsKLSsKLSsgIG1lbWNweShjb250ZXh0LT5mcHJlZ3MsIGZs b2F0X2NvbnRleHQuZnByZWdzLCBzaXplb2YoY29udGV4dC0+ZnByZWdzKSk7Ci0rICBjb250ZXh0 LT5mcHNjciA9IGZsb2F0X2NvbnRleHQuZnBzY3I7Ci0rCi0rICBmb3IgKHVpbnQ4X3QgaSA9IDA7 IGkgPCAzMjsgaSsrKSB7Ci0rICAgIGNvbnRleHQtPnZyZWdzLnNhdmVfdnJbaV0gPSB7Ci0rICAg ICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzBdKSA8PCAzMikgfAotKyAg ICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdzW2ldWzFdLAotKyAgICAgICgoKHVpbnQ2NF90KXZl Y3Rvcl9jb250ZXh0LnZycmVnc1tpXVsyXSkgPDwgMzIpIHwKLSsgICAgICAgIHZlY3Rvcl9jb250 ZXh0LnZycmVnc1tpXVszXQotKyAgICB9OwotKyAgfQotKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92 cnNhdmUgPSB2ZWN0b3JfY29udGV4dC52cnNhdmU7Ci0rICBjb250ZXh0LT52cmVncy5zYXZlX3Zz Y3IgPSB7MCwgKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZzY3IudnNjcl93b3JkfTsKLSt9Ci0r Ci0rdGVtcGxhdGUgPHR5cGVuYW1lIFRyYWl0cz4KLSt2b2lkIEluaXRpYWxpemVDUFVDb250ZXh0 UFBDNjQoCi0rICAgIGNvbnN0IFNpZ25hbFRocmVhZENvbnRleHQ2NCAmdGhyZWFkX2NvbnRleHQs Ci0rICAgIGNvbnN0IFNpZ25hbEZsb2F0Q29udGV4dDY0ICZmbG9hdF9jb250ZXh0LAotKyAgICBj b25zdCBTaWduYWxWZWN0b3JDb250ZXh0NjQgJnZlY3Rvcl9jb250ZXh0LAotKyAgICB0eXBlbmFt ZSBUcmFpdHM6OkNQVUNvbnRleHQqIGNvbnRleHQpIHsKLSsKLSsgIG1lbWNweShjb250ZXh0LT5y ZWdzLCB0aHJlYWRfY29udGV4dC5yZWdzLCBzaXplb2YoY29udGV4dC0+cmVncykpOwotKyAgY29u dGV4dC0+bmlwID0gdGhyZWFkX2NvbnRleHQubmlwOwotKyAgY29udGV4dC0+bXNyID0gdGhyZWFk X2NvbnRleHQubXNyOwotKyAgY29udGV4dC0+Y2NyID0gdGhyZWFkX2NvbnRleHQuY2NyOwotKyAg Y29udGV4dC0+eGVyID0gdGhyZWFkX2NvbnRleHQueGVyOwotKyAgY29udGV4dC0+bG5rID0gdGhy ZWFkX2NvbnRleHQubG5rOwotKyAgY29udGV4dC0+Y3RyID0gdGhyZWFkX2NvbnRleHQuY3RyOwot KwotKyAgbWVtY3B5KGNvbnRleHQtPmZwcmVncywgZmxvYXRfY29udGV4dC5yZWdzLCBzaXplb2Yo Y29udGV4dC0+ZnByZWdzKSk7Ci0rICBjb250ZXh0LT5mcHNjciA9IGZsb2F0X2NvbnRleHQuZnBz Y3I7Ci0rCi0rICBmb3IgKHVpbnQ4X3QgaSA9IDA7IGkgPCAzMjsgaSsrKSB7Ci0rICAgIGNvbnRl eHQtPnZyZWdzLnNhdmVfdnJbaV0gPSB7Ci0rICAgICAgKCgodWludDY0X3QpdmVjdG9yX2NvbnRl eHQudnJyZWdzW2ldWzBdKSA8PCAzMikgfAotKyAgICAgICAgdmVjdG9yX2NvbnRleHQudnJyZWdz W2ldWzFdLAotKyAgICAgICgoKHVpbnQ2NF90KXZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVsyXSkg PDwgMzIpIHwKLSsgICAgICAgIHZlY3Rvcl9jb250ZXh0LnZycmVnc1tpXVszXQotKyAgICB9Owot KyAgfQotKyAgY29udGV4dC0+dnJlZ3Muc2F2ZV92cnNhdmUgPSB2ZWN0b3JfY29udGV4dC52cnNh dmU7Ci0rICBjb250ZXh0LT52cmVncy5zYXZlX3ZzY3IgPSB7MCwgKHVpbnQ2NF90KXZlY3Rvcl9j b250ZXh0LnZzY3IudnNjcl93b3JkfTsKLSt9Ci0rCi0rCi0rI2VuZGlmCi0rCi0gfSAgLy8gbmFt ZXNwYWNlIGludGVybmFsCi0gfSAgLy8gbmFtZXNwYWNlIGNyYXNocGFkCi0gCi1kaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2RlYnVnX3JlbmRl enZvdXNfdGVzdC5jYyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MKLWluZGV4IGJlMjJjOTAzLi5jNWRmMjNkMSAxMDA2 NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9kZWJ1 Z19yZW5kZXp2b3VzX3Rlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9z bmFwc2hvdC9saW51eC9kZWJ1Z19yZW5kZXp2b3VzX3Rlc3QuY2MKLUBAIC0xNTksOSArMTU5LDEx IEBAIHZvaWQgVGVzdEFnYWluc3RUYXJnZXQoUHRyYWNlQ29ubmVjdGlvbiogY29ubmVjdGlvbikg ewotICAgICAgICAgICBjb25zdCBib29sIGlzX3Zkc29fbWFwcGluZyA9Ci0gICAgICAgICAgICAg ICBkZXZpY2UgPT0gMCAmJiBpbm9kZSA9PSAwICYmIG1hcHBpbmdfbmFtZSA9PSAiW3Zkc29dIjsK LSAgICAgICAgICAgc3RhdGljIGNvbnN0ZXhwciBjaGFyIGtQcmVmaXhbXSA9ICJsaW51eC12ZHNv LnNvLiI7Ci0rICAgICAgICAgIHN0YXRpYyBjb25zdGV4cHIgY2hhciBrUHJlZml4NjRbXSA9ICJs aW51eC12ZHNvNjQuc28uIjsKLSAgICAgICAgICAgcmV0dXJuIGlzX3Zkc29fbWFwcGluZyA9PQot ICAgICAgICAgICAgICAgICAgKG1vZHVsZV9uYW1lLmVtcHR5KCkgfHwKLS0gICAgICAgICAgICAg ICAgICBtb2R1bGVfbmFtZS5jb21wYXJlKDAsIHN0cmxlbihrUHJlZml4KSwga1ByZWZpeCkgPT0g MCk7Ci0rICAgICAgICAgICAgICAgICAgbW9kdWxlX25hbWUuY29tcGFyZSgwLCBzdHJsZW4oa1By ZWZpeCksIGtQcmVmaXgpID09IDAgfHwKLSsgICAgICAgICAgICAgICAgICBtb2R1bGVfbmFtZS5j b21wYXJlKDAsIHN0cmxlbihrUHJlZml4NjQpLCBrUHJlZml4NjQpID09IDApOwotICAgICAgICAg fSwKLSAgICAgICAgIG1vZHVsZV9tYXBwaW5nLT5uYW1lLAotICAgICAgICAgbW9kdWxlX21hcHBp bmctPmRldmljZSwKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4LmNjIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5jYwot aW5kZXggY2Q0MGIzYjEuLjZiY2YyM2I2IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFk L2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eC5jYwotKysr IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9z bmFwc2hvdF9saW51eC5jYwotQEAgLTMyMyw2ICszMjMsNjkgQEAgYm9vbCBFeGNlcHRpb25TbmFw c2hvdExpbnV4OjpSZWFkQ29udGV4dDxDb250ZXh0VHJhaXRzNjQ+KAotICAgICAgIHJlYWRlciwg Y29udGV4dF9hZGRyZXNzLCBjb250ZXh0Xy5taXBzNjQpOwotIH0KLSAKLSsjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsKLSt0ZW1wbGF0ZSA8dHlwZW5hbWUgVHJhaXRzPgot K3N0YXRpYyBib29sIFJlYWRDb250ZXh0KFByb2Nlc3NSZWFkZXJMaW51eCogcmVhZGVyLAotKyAg ICAgICAgICAgICAgICAgICAgICAgIExpbnV4Vk1BZGRyZXNzIGNvbnRleHRfYWRkcmVzcywKLSsg ICAgICAgICAgICAgICAgICAgICAgICB0eXBlbmFtZSBUcmFpdHM6OkNQVUNvbnRleHQqIGRlc3Rf Y29udGV4dCkgewotKyAgY29uc3QgUHJvY2Vzc01lbW9yeSogbWVtb3J5ID0gcmVhZGVyLT5NZW1v cnkoKTsKLSsKLSsgIExpbnV4Vk1BZGRyZXNzIGdwX3JlZ3NfYWRkcmVzcyA9IGNvbnRleHRfYWRk cmVzcyArCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihVQ29u dGV4dCwgbWNvbnRleHQpICsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9m ZnNldG9mKHR5cGVuYW1lIFRyYWl0czo6TUNvbnRleHQsIGdwX3JlZ3MpOwotKwotKyAgdHlwZW5h bWUgVHJhaXRzOjpTaWduYWxUaHJlYWRDb250ZXh0IHRocmVhZF9jb250ZXh0OwotKyAgaWYgKCFt ZW1vcnktPlJlYWQoZ3BfcmVnc19hZGRyZXNzLCBzaXplb2YodGhyZWFkX2NvbnRleHQpLCAmdGhy ZWFkX2NvbnRleHQpKSB7Ci0rICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHJlYWQgZ3BfcmVn cyEiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rCi0rICBMaW51eFZNQWRkcmVzcyBmcF9y ZWdzX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgb2Zmc2V0b2YoVUNvbnRleHQsIG1jb250ZXh0KSArCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZih0eXBlbmFtZSBUcmFpdHM6Ok1Db250ZXh0 LCBmcF9yZWdzKTsKLSsKLSsgIHR5cGVuYW1lIFRyYWl0czo6U2lnbmFsRmxvYXRDb250ZXh0IGZw X2NvbnRleHQ7Ci0rICBpZiAoIW1lbW9yeS0+UmVhZChmcF9yZWdzX2FkZHJlc3MsIHNpemVvZihm cF9jb250ZXh0KSwgJmZwX2NvbnRleHQpKSB7Ci0rICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0 IHJlYWQgZnBfcmVncyEiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rCi0rICBMaW51eFZN QWRkcmVzcyB2X3JlZ3NfcHRyX2FkZHJlc3MgPSBjb250ZXh0X2FkZHJlc3MgKwotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRvZihVQ29udGV4dCwgbWNvbnRleHQpICsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0b2YodHlwZW5hbWUgVHJh aXRzOjpNQ29udGV4dCwgdm14X3Jlc2VydmUpICsgODsKLSsKLSsgIHR5cGVuYW1lIFRyYWl0czo6 U2lnbmFsVmVjdG9yQ29udGV4dCB2X2NvbnRleHQ7Ci0rICBpZiAoIW1lbW9yeS0+UmVhZCh2X3Jl Z3NfcHRyX2FkZHJlc3MsIHNpemVvZih2X2NvbnRleHQpLCAmdl9jb250ZXh0KSkgewotKyAgICBM T0coRVJST1IpIDw8ICJDb3VsZG4ndCByZWFkIHZfcmVncyEiOwotKyAgICByZXR1cm4gZmFsc2U7 Ci0rICB9Ci0rCi0rICBJbml0aWFsaXplQ1BVQ29udGV4dFBQQzY0PENvbnRleHRUcmFpdHM2ND4o dGhyZWFkX2NvbnRleHQsIGZwX2NvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZfY29udGV4dCwgZGVzdF9jb250ZXh0KTsKLSsKLSsgIHJldHVybiB0cnVlOwotK30KLSsKLSt0 ZW1wbGF0ZTw+Ci0rYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpSZWFkQ29udGV4dDxDb250 ZXh0VHJhaXRzNjQ+KAotKyAgICBQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlciwKLSsgICAgTGlu dXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzKSB7Ci0rICBjb250ZXh0Xy5hcmNoaXRlY3R1cmUg PSBrQ1BVQXJjaGl0ZWN0dXJlUFBDNjQ7Ci0rICBjb250ZXh0Xy5wcGM2NCA9ICZjb250ZXh0X3Vu aW9uXy5wcGM2NDsKLSsKLSsgIHJldHVybiBpbnRlcm5hbDo6UmVhZENvbnRleHQ8Q29udGV4dFRy YWl0czY0PigKLSsgICAgICByZWFkZXIsIGNvbnRleHRfYWRkcmVzcywgY29udGV4dF8ucHBjNjQp OwotK30KLSsKLSt0ZW1wbGF0ZTw+Ci0rYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpSZWFk Q29udGV4dDxDb250ZXh0VHJhaXRzMzI+KAotKyAgICBQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRl ciwKLSsgICAgTGludXhWTUFkZHJlc3MgY29udGV4dF9hZGRyZXNzKSB7Ci0rICAvLyBQUEM2NCBp cyA2NC1iaXQKLSsgIHJldHVybiBmYWxzZTsKLSt9Ci0rCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9Y ODZfRkFNSUxZCi0gCi0gYm9vbCBFeGNlcHRpb25TbmFwc2hvdExpbnV4OjpJbml0aWFsaXplKFBy b2Nlc3NSZWFkZXJMaW51eCogcHJvY2Vzc19yZWFkZXIsCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51 eC5oIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlv bl9zbmFwc2hvdF9saW51eC5oCi1pbmRleCBlYTBjZDIxMC4uZTQyZGY1MjAgMTAwNjQ0Ci0tLS0g dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3Nu YXBzaG90X2xpbnV4LmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hv dC9saW51eC9leGNlcHRpb25fc25hcHNob3RfbGludXguaAotQEAgLTg0LDYgKzg0LDggQEAgY2xh c3MgRXhjZXB0aW9uU25hcHNob3RMaW51eCBmaW5hbCA6IHB1YmxpYyBFeGNlcHRpb25TbmFwc2hv dCB7Ci0gI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgICAgQ1BVQ29udGV4 dE1JUFMgbWlwc2VsOwotICAgICBDUFVDb250ZXh0TUlQUzY0IG1pcHM2NDsKLSsjZWxpZiBkZWZp bmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgQ1BVQ29udGV4dFBQQzY0IHBwYzY0Owot ICNlbmRpZgotICAgfSBjb250ZXh0X3VuaW9uXzsKLSAgIENQVUNvbnRleHQgY29udGV4dF87Ci1k aWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L2V4 Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNo cGFkL3NuYXBzaG90L2xpbnV4L2V4Y2VwdGlvbl9zbmFwc2hvdF9saW51eF90ZXN0LmNjCi1pbmRl eCBlNGZmMWFiNy4uMjU1MzRkZDAgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvZXhjZXB0aW9uX3NuYXBzaG90X2xpbnV4X3Rlc3QuY2MKLSsr KyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9leGNlcHRpb25f c25hcHNob3RfbGludXhfdGVzdC5jYwotQEAgLTI5Niw3ICsyOTYsMjggQEAgdm9pZCBFeHBlY3RD b250ZXh0KGNvbnN0IENQVUNvbnRleHQmIGFjdHVhbCwgY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYg ZXhwZWN0ZWQpIHsKLSAgICAgICAgICAgICAwKTsKLSAjdW5kZWYgQ1BVX0FSQ0hfTkFNRQotIH0K LSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSt1c2luZyBOYXRpdmVDUFVD b250ZXh0ID0gdWNvbnRleHRfdDsKLSsKLSt2b2lkIEluaXRpYWxpemVDb250ZXh0KE5hdGl2ZUNQ VUNvbnRleHQqIGNvbnRleHQpIHsKLSsgIGZvciAoc2l6ZV90IHJlZyA9IDA7IHJlZyA8IDMyOyAr K3JlZykgewotKyAgICBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW3JlZ10gPSByZWc7Ci0r ICB9Ci0rCi0rICBtZW1zZXQoJmNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3MsIDQ0LAotKyAg ICAgIHNpemVvZihjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzKSk7Ci0rfQotIAotK3ZvaWQg RXhwZWN0Q29udGV4dChjb25zdCBDUFVDb250ZXh0JiBhY3R1YWwsIGNvbnN0IE5hdGl2ZUNQVUNv bnRleHQmIGV4cGVjdGVkKSB7Ci0rICBFWFBFQ1RfRVEoYWN0dWFsLmFyY2hpdGVjdHVyZSwga0NQ VUFyY2hpdGVjdHVyZVBQQzY0KTsKLSsKLSsgIGZvciAoc2l6ZV90IHJlZyA9IDA7IHJlZyA8IDMy OyArK3JlZykgewotKyAgICBFWFBFQ1RfRVEoYWN0dWFsLnBwYzY0LT5yZWdzW3JlZ10sIGV4cGVj dGVkLnVjX21jb250ZXh0LmdwX3JlZ3NbcmVnXSk7Ci0rICB9Ci0rCi0rICBFWFBFQ1RfRVEobWVt Y21wKGFjdHVhbC5wcGM2NC0+ZnByZWdzLCBleHBlY3RlZC51Y19tY29udGV4dC5mcF9yZWdzLAot KyAgICAgICAgICAgIHNpemVvZihhY3R1YWwucHBjNjQtPmZwcmVncykpLCAwKTsKLSt9Ci0gI2Vs c2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hw YWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGludXguY2MgdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvcHJvY2Vzc19yZWFkZXJfbGlu dXguY2MKLWluZGV4IGI5NmFiZmU3Li5kZjEyY2E1NiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eC5jYwot KysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3Nf cmVhZGVyX2xpbnV4LmNjCi1AQCAtMTA4LDYgKzEwOCw4IEBAIHZvaWQgUHJvY2Vzc1JlYWRlckxp bnV4OjpUaHJlYWQ6OkluaXRpYWxpemVTdGFjayhQcm9jZXNzUmVhZGVyTGludXgqIHJlYWRlcikg ewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICBzdGFja19wb2ludGVy ID0gcmVhZGVyLT5JczY0Qml0KCkgPyB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4dC50NjQucmVn c1syOV0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHRocmVhZF9pbmZv LnRocmVhZF9jb250ZXh0LnQzMi5yZWdzWzI5XTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0X0ZBTUlMWSkKLSsgIHN0YWNrX3BvaW50ZXIgPSB0aHJlYWRfaW5mby50aHJlYWRfY29udGV4 dC50NjQuZ3ByWzFdOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmCi1kaWZmIC0tZ2l0 IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Byb2Nlc3NfcmVh ZGVyX2xpbnV4X3Rlc3QuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3Qv bGludXgvcHJvY2Vzc19yZWFkZXJfbGludXhfdGVzdC5jYwotaW5kZXggNWI1NzIzNjEuLjA0OWMz Mjg1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xp bnV4L3Byb2Nlc3NfcmVhZGVyX2xpbnV4X3Rlc3QuY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9wcm9jZXNzX3JlYWRlcl9saW51eF90ZXN0LmNjCi1A QCAtNjEyLDYgKzYxMiw4IEBAIGJvb2wgV3JpdGVUZXN0TW9kdWxlKGNvbnN0IGJhc2U6OkZpbGVQ YXRoJiBtb2R1bGVfcGF0aCkgewotICAgbW9kdWxlLmVoZHIuZV9tYWNoaW5lID0gRU1fQUFSQ0g2 NDsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNFTCkgfHwgZGVmaW5lZChBUkNIX0NQVV9N SVBTNjRFTCkKLSAgIG1vZHVsZS5laGRyLmVfbWFjaGluZSA9IEVNX01JUFM7Ci0rI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NCkKLSsgIG1vZHVsZS5laGRyLmVfbWFjaGluZSA9IEVNX1BQQzY0 OwotICNlbmRpZgotIAotICAgbW9kdWxlLmVoZHIuZV92ZXJzaW9uID0gRVZfQ1VSUkVOVDsKLWRp ZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2ln bmFsX2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51 eC9zaWduYWxfY29udGV4dC5oCi1pbmRleCAxMTAwMjQ2OC4uOGUzMzVhMDkgMTAwNjQ0Ci0tLS0g dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc2lnbmFsX2NvbnRl eHQuaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3Np Z25hbF9jb250ZXh0LmgKLUBAIC00MjIsNiArNDIyLDg5IEBAIHN0YXRpY19hc3NlcnQob2Zmc2V0 b2YoVUNvbnRleHQ8Q29udGV4dFRyYWl0czY0PiwgbWNvbnRleHQuZnByZWdzKSA9PQotICAgICAg ICAgICAgICAgImNvbnRleHQgb2Zmc2V0IG1pc21hdGNoIik7Ci0gI2VuZGlmCi0gCi0rI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rCi0rc3RydWN0IFNpZ25hbFRocmVhZENv bnRleHQ2NCB7Ci0rICB1aW50NjRfdCByZWdzWzMyXTsKLSsgIHVpbnQ2NF90IG5pcDsKLSsgIHVp bnQ2NF90IG1zcjsKLSsgIHVpbnQ2NF90IG9yaWdfcjM7Ci0rICB1aW50NjRfdCBjdHI7Ci0rICB1 aW50NjRfdCBsbms7Ci0rICB1aW50NjRfdCB4ZXI7Ci0rICB1aW50NjRfdCBjY3I7Ci0rICB1aW50 NjRfdCBzb2Z0ZTsKLSsgIHVpbnQ2NF90IHRyYXA7Ci0rICB1aW50NjRfdCBkYXI7Ci0rICB1aW50 NjRfdCBkc2lzcjsKLSsgIHVpbnQ2NF90IHJlc3VsdDsKLSsgIHVpbnQ2NF90IGRzY3I7Ci0rICB1 aW50NjRfdCBmcHIwWzNdOwotK307Ci0rCi0rc3RydWN0IFNpZ25hbEZsb2F0Q29udGV4dDY0IHsK LSsgIGRvdWJsZSByZWdzWzMyXTsKLSsgIGRvdWJsZSBmcHNjcjsKLSt9OwotKwotK3N0cnVjdCBT aWduYWxWZWN0b3JDb250ZXh0NjQgewotKyAgaW50MzJfdCB2cnJlZ3NbMzJdWzRdOwotKyAgc3Ry dWN0IHsKLSsgICAgaW50MzJfdCBfX3BhZFszXTsKLSsgICAgaW50MzJfdCB2c2NyX3dvcmQ7Ci0r ICB9IHZzY3I7Ci0rICBpbnQzMl90IHZyc2F2ZTsKLSsgIGludDMyX3QgX19wYWRbM107Ci0rfSBf X2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikpKTsKLSsKLSsKLSsjcHJhZ21hIHBhY2socG9w KQotK3N0cnVjdCBNQ29udGV4dDY0IHsKLSsgIHVpbnQ2NF90IHJlc2VydmVkWzRdOwotKyAgaW50 MzJfdCBzaWduYWw7Ci0rICBpbnQzMl90IF9fcGFkMDsKLSsgIHVpbnQ2NF90IGhhbmRsZXI7Ci0r ICB1aW50NjRfdCBvbGRtYXNrOwotKyAgdWludDY0X3QgcHRfcmVnc19wdHI7Ci0rICBTaWduYWxU aHJlYWRDb250ZXh0NjQgZ3BfcmVnczsKLSsgIFNpZ25hbEZsb2F0Q29udGV4dDY0ICBmcF9yZWdz OwotKyAgU2lnbmFsVmVjdG9yQ29udGV4dDY0ICp2X3JlZ3M7Ci0rICBpbnQ2NF90IHZteF9yZXNl cnZlWzY5XTsKLSt9OwotKwotK3N0cnVjdCBDb250ZXh0VHJhaXRzNjQgOiBwdWJsaWMgVHJhaXRz NjQgewotKyAgdXNpbmcgTUNvbnRleHQgPSBNQ29udGV4dDY0OwotKyAgdXNpbmcgU2lnbmFsVGhy ZWFkQ29udGV4dCA9IFNpZ25hbFRocmVhZENvbnRleHQ2NDsKLSsgIHVzaW5nIFNpZ25hbEZsb2F0 Q29udGV4dCA9IFNpZ25hbEZsb2F0Q29udGV4dDY0OwotKyAgdXNpbmcgU2lnbmFsVmVjdG9yQ29u dGV4dCA9IFNpZ25hbFZlY3RvckNvbnRleHQ2NDsKLSsgIHVzaW5nIENQVUNvbnRleHQgPSBDUFVD b250ZXh0UFBDNjQ7Ci0rfTsKLSsKLStzdHJ1Y3QgQ29udGV4dFRyYWl0czMyIDogcHVibGljIFRy YWl0czMyIHt9OwotKwotK3N0cnVjdCBVQ29udGV4dCB7Ci0rICB1aW50NjRfdCBmbGFnczsKLSsg IHVpbnQ2NF90IGxpbms7Ci0rICBTaWduYWxTdGFjazxDb250ZXh0VHJhaXRzNjQ+IHN0YWNrOwot KyAgU2lnc2V0PENvbnRleHRUcmFpdHM2ND4gc2lnbWFzazsKLSsgIE1Db250ZXh0NjQgbWNvbnRl eHQ7Ci0rfTsKLSsjcHJhZ21hIHBhY2socHVzaCwgMSkKLSsKLStzdGF0aWNfYXNzZXJ0KHNpemVv ZihVQ29udGV4dCkgPT0gc2l6ZW9mKHVjb250ZXh0X3QpLAotKyAgICAgICAgICAgICAgInVjb250 ZXh0X3Qgc2l6ZSBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQoc2l6ZW9mKE1Db250ZXh0NjQp ID09IHNpemVvZihtY29udGV4dF90KSwKLSsgICAgICAgICAgICAgICJtY29udGV4dF90IHNpemUg bWlzbWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxUaHJlYWRDb250ZXh0NjQp ID09IHNpemVvZihncmVnc2V0X3QpLAotKyAgICAgICAgICAgICAgImdyZWdzZXRfdCBzaXplIG1p c21hdGNoIik7Ci0rc3RhdGljX2Fzc2VydChzaXplb2YoU2lnbmFsRmxvYXRDb250ZXh0NjQpID09 IHNpemVvZihmcHJlZ3NldF90KSwKLSsgICAgICAgICAgICAgICJmcHJlZ3NldF90IHNpemUgbWlz bWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KHNpemVvZihTaWduYWxWZWN0b3JDb250ZXh0NjQpID09 IHNpemVvZih2cnJlZ3NldF90KSwKLSsgICAgICAgICAgICAgICJ2cnJlZ3NldF90IHNpemUgbWlz bWF0Y2giKTsKLStzdGF0aWNfYXNzZXJ0KG9mZnNldG9mKFVDb250ZXh0LCBtY29udGV4dCkgPT0K LSsgICAgICAgICAgICAgIG9mZnNldG9mKHVjb250ZXh0X3QsIHVjX21jb250ZXh0KSwgIm1jb250 ZXh0IG9mZnNldCBtaXNtYXRjaCIpOwotK3N0YXRpY19hc3NlcnQob2Zmc2V0b2YoTUNvbnRleHQ2 NCwgZ3BfcmVncykgPT0KLSsgICAgICAgICAgICAgIG9mZnNldG9mKG1jb250ZXh0X3QsIGdwX3Jl Z3MpLCAiZ3BfcmVncyBvZmZzZXQgbWlzbWF0Y2giKTsKLSAjZWxzZQotICNlcnJvciBQb3J0Lgot ICNlbmRpZiAgLy8gQVJDSF9DUFVfWDg2X0ZBTUlMWQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9j cmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9saW51eC9zeXN0ZW1fc25hcHNob3RfbGludXguY2Mg dGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc3lzdGVtX3NuYXBz aG90X2xpbnV4LmNjCi1pbmRleCA4NTY0ZDNkNC4uYjY5MGVjZDQgMTAwNjQ0Ci0tLS0gdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgvc3lzdGVtX3NuYXBzaG90X2xp bnV4LmNjCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv c3lzdGVtX3NuYXBzaG90X2xpbnV4LmNjCi1AQCAtMjAzLDYgKzIwMyw4IEBAIENQVUFyY2hpdGVj dHVyZSBTeXN0ZW1TbmFwc2hvdExpbnV4OjpHZXRDUFVBcmNoaXRlY3R1cmUoKSBjb25zdCB7Ci0g I2VsaWYgZGVmaW5lZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIHJldHVybiBwcm9jZXNzX3Jl YWRlcl8tPklzNjRCaXQoKSA/IGtDUFVBcmNoaXRlY3R1cmVNSVBTNjRFTAotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIDoga0NQVUFyY2hpdGVjdHVyZU1JUFNFTDsKLSsjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHJldHVybiBrQ1BVQXJjaGl0ZWN0 dXJlUFBDNjQ7Ci0gI2Vsc2UKLSAjZXJyb3IgcG9ydCB0byB5b3VyIGFyY2hpdGVjdHVyZQotICNl bmRpZgotQEAgLTIxOCw2ICsyMjAsOSBAQCB1aW50MzJfdCBTeXN0ZW1TbmFwc2hvdExpbnV4OjpD UFVSZXZpc2lvbigpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZ KQotICAgLy8gTm90IGltcGxlbWVudGFibGUgb24gTUlQUwotICAgcmV0dXJuIDA7Ci0rI2VsaWYg ZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAvLyBOb3QgeWV0IGltcGxlbWVudGVk IG9uIFBQQzY0Ci0rICByZXR1cm4gMDsKLSAjZWxzZQotICNlcnJvciBwb3J0IHRvIHlvdXIgYXJj aGl0ZWN0dXJlCi0gI2VuZGlmCi1AQCAtMjM4LDYgKzI0Myw5IEBAIHN0ZDo6c3RyaW5nIFN5c3Rl bVNuYXBzaG90TGludXg6OkNQVVZlbmRvcigpIGNvbnN0IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hf Q1BVX01JUFNfRkFNSUxZKQotICAgLy8gTm90IGltcGxlbWVudGFibGUgb24gTUlQUwotICAgcmV0 dXJuIHN0ZDo6c3RyaW5nKCk7Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkp Ci0rICAvLyBOb3QgeWV0IGltcGxlbWVudGVkIG9uIFBQQzY0Ci0rICByZXR1cm4gc3RkOjpzdHJp bmcoKTsKLSAjZWxzZQotICNlcnJvciBwb3J0IHRvIHlvdXIgYXJjaGl0ZWN0dXJlCi0gI2VuZGlm Ci1AQCAtMzcxLDYgKzM3OSw5IEBAIGJvb2wgU3lzdGVtU25hcHNob3RMaW51eDo6TlhFbmFibGVk KCkgY29uc3QgewotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkpCi0gICAvLyBO b3QgaW1wbGVtZW50YWJsZSBvbiBNSVBTCi0gICByZXR1cm4gZmFsc2U7Ci0rI2VsaWYgZGVmaW5l ZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAvLyBOb3QgeWV0IGltcGxlbWVudGVkIG9uIFBQ QzY0Ci0rICByZXR1cm4gZmFsc2U7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8v IEFSQ0hfQ1BVX1g4Nl9GQU1JTFkKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jh c2hwYWQvc25hcHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmNjIHRoaXJkX3BhcnR5 L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5j YwotaW5kZXggZTNlMmJlYmQuLjhlZjQzNzUyIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5jYwotKysr IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFw c2hvdF9saW51eC5jYwotQEAgLTE4Niw2ICsxODYsMTQgQEAgYm9vbCBUaHJlYWRTbmFwc2hvdExp bnV4OjpJbml0aWFsaXplKFByb2Nlc3NSZWFkZXJMaW51eCogcHJvY2Vzc19yZWFkZXIsCi0gICAg ICAgICB0aHJlYWQudGhyZWFkX2luZm8uZmxvYXRfY29udGV4dC5mMzIsCi0gICAgICAgICBjb250 ZXh0Xy5taXBzZWwpOwotICAgfQotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZ KQotKyAgY29udGV4dF8uYXJjaGl0ZWN0dXJlID0ga0NQVUFyY2hpdGVjdHVyZVBQQzY0OwotKyAg Y29udGV4dF8ucHBjNjQgPSAmY29udGV4dF91bmlvbl8ucHBjNjQ7Ci0rICBJbml0aWFsaXplQ1BV Q29udGV4dFBQQzY0PENvbnRleHRUcmFpdHM2ND4oCi0rICAgICAgdGhyZWFkLnRocmVhZF9pbmZv LnRocmVhZF9jb250ZXh0LnQ2NCwKLSsgICAgICB0aHJlYWQudGhyZWFkX2luZm8uZmxvYXRfY29u dGV4dC5mNjQsCi0rICAgICAgdGhyZWFkLnRocmVhZF9pbmZvLnZlY3Rvcl9jb250ZXh0LnY2NCwK LSsgICAgICBjb250ZXh0Xy5wcGM2NCk7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYK LWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25hcHNob3QvbGludXgv dGhyZWFkX3NuYXBzaG90X2xpbnV4LmggdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvc25h cHNob3QvbGludXgvdGhyZWFkX3NuYXBzaG90X2xpbnV4LmgKLWluZGV4IDQ0Y2M2ZjZkLi5kNDEz NjQ2MSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC9zbmFwc2hvdC9s aW51eC90aHJlYWRfc25hcHNob3RfbGludXguaAotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3NuYXBzaG90L2xpbnV4L3RocmVhZF9zbmFwc2hvdF9saW51eC5oCi1AQCAtNjgsNiAr NjgsOCBAQCBjbGFzcyBUaHJlYWRTbmFwc2hvdExpbnV4IGZpbmFsIDogcHVibGljIFRocmVhZFNu YXBzaG90IHsKLSAjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotICAgICBDUFVD b250ZXh0TUlQUyBtaXBzZWw7Ci0gICAgIENQVUNvbnRleHRNSVBTNjQgbWlwczY0OwotKyNlbGlm IGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQotKyAgICBDUFVDb250ZXh0UFBDNjQgcHBj NjQ7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hfQ1BVX1g4Nl9GQU1J TFkKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9h dXhpbGlhcnlfdmVjdG9yLmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGlu dXgvYXV4aWxpYXJ5X3ZlY3Rvci5jYwotaW5kZXggZDNkNWViZGYuLjNmZDczMGNiIDEwMDY0NAot LS0tIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4aWxpYXJ5X3Zl Y3Rvci5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvYXV4 aWxpYXJ5X3ZlY3Rvci5jYwotQEAgLTU2LDYgKzU2LDExIEBAIGJvb2wgQXV4aWxpYXJ5VmVjdG9y OjpSZWFkKFB0cmFjZUNvbm5lY3Rpb24qIGNvbm5lY3Rpb24pIHsKLSAgICAgaWYgKHR5cGUgPT0g QVRfSUdOT1JFKSB7Ci0gICAgICAgY29udGludWU7Ci0gICAgIH0KLSsjaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIGlmICh0eXBlID09IEFUX0lHTk9SRVBQQykgewotKyAg ICAgIGNvbnRpbnVlOwotKyAgICB9Ci0rI2VuZGlmCi0gICAgIGlmICghTWFwSW5zZXJ0T3JSZXBs YWNlKCZ2YWx1ZXNfLCB0eXBlLCB2YWx1ZSwgbnVsbHB0cikpIHsKLSAgICAgICBMT0coRVJST1Ip IDw8ICJkdXBsaWNhdGUgYXV4diBlbnRyeSI7Ci0gICAgICAgcmV0dXJuIGZhbHNlOwotZGlmZiAt LWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZV9icm9r ZXIuY2MgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VfYnJv a2VyLmNjCi1pbmRleCAxNTVhMWUwYy4uNWU1MGNlYjUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkv Y3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VfYnJva2VyLmNjCi0rKysgdGhpcmRf cGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC9wdHJhY2VfYnJva2VyLmNjCi1AQCAt OTQsOCArOTQsOCBAQCBpbnQgUHRyYWNlQnJva2VyOjpSdW4oKSB7Ci0gfQotIAotIGJvb2wgUHRy YWNlQnJva2VyOjpBbGxvY2F0ZUF0dGFjaG1lbnRzKCkgewotLSAgY29uc3RleHByIHNpemVfdCBw YWdlX3NpemUgPSA0MDk2OwotLSAgY29uc3RleHByIHNpemVfdCBhbGxvY19zaXplID0KLSsgIHN0 YXRpYyBzaXplX3QgcGFnZV9zaXplID0gZ2V0cGFnZXNpemUoKTsKLSsgIHNpemVfdCBhbGxvY19z aXplID0KLSAgICAgICAoc2l6ZW9mKFNjb3BlZFB0cmFjZUF0dGFjaCkgKyBwYWdlX3NpemUgLSAx KSAmIH4ocGFnZV9zaXplIC0gMSk7Ci0gICB2b2lkKiBhbGxvYyA9IHNicmsoYWxsb2Nfc2l6ZSk7 Ci0gICBpZiAocmVpbnRlcnByZXRfY2FzdDxpbnRwdHJfdD4oYWxsb2MpID09IC0xKSB7Ci1kaWZm IC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbGludXgvcHRyYWNlci5j YyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKLWlu ZGV4IDU1N2UwZDM2Li4wOGFlNDM0YiAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL2xpbnV4L3B0cmFjZXIuY2MKLUBAIC0zOTgsNiArMzk4LDY0IEBAIGJvb2wg R2V0VGhyZWFkQXJlYTY0KHBpZF90IHRpZCwKLSAgIHJldHVybiB0cnVlOwotIH0KLSAKLSsjZWxp ZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsvLyBQUEM2NCBoYXMgaGFkIEhBVkVf QVJDSF9UUkFDRUhPT0sgc2V0IHNpbmNlIDIuNi4yNyAoZXZlbiBiZWZvcmUgeDg2IGhhZCBpdCku Ci0rLy8gVGhhdCBtZWFucyB3ZSBjYW4gc2ltcGx5IHVzZSBQVFJBQ0VfR0VUUkVHRVNFVC4KLSsK LSt0ZW1wbGF0ZSA8dHlwZW5hbWUgRGVzdGluYXRpb24+Ci0rYm9vbCBHZXRSZWdpc3RlclNldChw aWRfdCB0aWQsIGludCBzZXQsIERlc3RpbmF0aW9uKiBkZXN0LCBib29sIGNhbl9sb2cpIHsKLSsg IGlvdmVjIGlvdjsKLSsgIGlvdi5pb3ZfYmFzZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KGRl c3QpOwotKyAgaW92Lmlvdl9sZW4gPSBzaXplb2YoKmRlc3QpOwotKyAgaWYgKHB0cmFjZShQVFJB Q0VfR0VUUkVHU0VULCB0aWQsIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHNldCksICZpb3YpICE9 IDApIHsKLSsgICAgUExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgInB0cmFjZSI7Ci0rICAgIHJl dHVybiBmYWxzZTsKLSsgIH0KLSsgIGlmIChpb3YuaW92X2xlbiAhPSBzaXplb2YoKmRlc3QpKSB7 Ci0rICAgIExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgIlVuZXhwZWN0ZWQgcmVnaXN0ZXJzIHNp emUiOwotKyAgICByZXR1cm4gZmFsc2U7Ci0rICB9Ci0rICByZXR1cm4gdHJ1ZTsKLSt9Ci0rCi0r Ym9vbCBHZXRWZWN0b3JSZWdpc3RlcnM2NChwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICBWZWN0b3JDb250ZXh0KiBjb250ZXh0LAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgYm9vbCBjYW5fbG9nKSB7Ci0rICByZXR1cm4gR2V0UmVnaXN0ZXJTZXQodGlkLCBOVF9QUENf Vk1YLCAmY29udGV4dC0+djY0LCBjYW5fbG9nKTsKLSt9Ci0rCi0rYm9vbCBHZXRGbG9hdGluZ1Bv aW50UmVnaXN0ZXJzNjQocGlkX3QgdGlkLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZsb2F0Q29udGV4dCogY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBib29sIGNhbl9sb2cpIHsKLSsgIHJldHVybiBHZXRSZWdpc3RlclNldCh0aWQsIE5UX1BS RlBSRUcsICZjb250ZXh0LT5mNjQsIGNhbl9sb2cpOwotK30KLSsKLStib29sIEdldFRocmVhZEFy ZWE2NChwaWRfdCB0aWQsCi0rICAgICAgICAgICAgICAgICAgICAgY29uc3QgVGhyZWFkQ29udGV4 dCYgY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICBMaW51eFZNQWRkcmVzcyogYWRkcmVz cywKLSsgICAgICAgICAgICAgICAgICAgICBib29sIGNhbl9sb2cpIHsKLSsgIC8vIFBQQzY0IGRv ZXNuJ3QgaGF2ZSBQVFJBQ0VfR0VUX1RIUkVBRF9BUkVBIHNpbmNlIHRoZSB0aHJlYWQgcG9pbnRl cgotKyAgLy8gaXMgc3RvcmVkIGluIEdQUiAxMy4KLSsgIFRocmVhZENvbnRleHQ6OnQ2NF90IHRj OwotKyAgaWYgKCFHZXRSZWdpc3RlclNldCh0aWQsIE5UX1BSU1RBVFVTLCAmdGMsIGNhbl9sb2cp KSB7Ci0rICAgIExPR19JRihFUlJPUiwgY2FuX2xvZykgPDwgIlVuYWJsZSB0byBnZXQgdGhyZWFk IHBvaW50ZXIhIjsKLSsgICAgcmV0dXJuIGZhbHNlOwotKyAgfQotKwotKyAgKmFkZHJlc3MgPSB0 Yy5ncHJbMTNdOwotKwotKyAgcmV0dXJuIHRydWU7Ci0rfQotKwotKy8vIFN0dWJzIGZvciAzMi1i aXQgZnVuY3Rpb25zIG5vdCBhcHBsaWNhYmxlIG9uIFBQQzY0Ci0rYm9vbCBHZXRGbG9hdGluZ1Bv aW50UmVnaXN0ZXJzMzIocGlkX3QgdGlkLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZsb2F0Q29udGV4dCogY29udGV4dCwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBib29sIGNhbl9sb2cpIHsgcmV0dXJuIGZhbHNlOyB9Ci0rYm9vbCBHZXRUaHJlYWRBcmVh MzIocGlkX3QgdGlkLAotKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFRocmVhZENvbnRleHQg JmNvbnRleHQsCi0rICAgICAgICAgICAgICAgICAgICAgTGludXhWTUFkZHJlc3MgKmFkZHJlc3Ms Ci0rICAgICAgICAgICAgICAgICAgICAgYm9vbCBjYW5fbG9nKSB7IHJldHVybiBmYWxzZTsgfQot KwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZ Ci1AQCAtNDk0LDYgKzU1Miw5IEBAIGJvb2wgUHRyYWNlcjo6R2V0VGhyZWFkSW5mbyhwaWRfdCB0 aWQsIFRocmVhZEluZm8qIGluZm8pIHsKLSAgIGlmIChpc182NF9iaXRfKSB7Ci0gICAgIHJldHVy biBHZXRHZW5lcmFsUHVycG9zZVJlZ2lzdGVyczY0KHRpZCwgJmluZm8tPnRocmVhZF9jb250ZXh0 LCBjYW5fbG9nXykgJiYKLSAgICAgICAgICAgIEdldEZsb2F0aW5nUG9pbnRSZWdpc3RlcnM2NCh0 aWQsICZpbmZvLT5mbG9hdF9jb250ZXh0LCBjYW5fbG9nXykgJiYKLSsjaWYgZGVmaW5lZChBUkNI X0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgICAgICAgICBHZXRWZWN0b3JSZWdpc3RlcnM2NCh0aWQs ICZpbmZvLT52ZWN0b3JfY29udGV4dCwgY2FuX2xvZ18pICYmCi0rI2VuZGlmCi0gICAgICAgICAg ICBHZXRUaHJlYWRBcmVhNjQodGlkLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm8t PnRocmVhZF9jb250ZXh0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICZpbmZvLT50aHJl YWRfc3BlY2lmaWNfZGF0YV9hZGRyZXNzLAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBh ZC9jcmFzaHBhZC91dGlsL2xpbnV4L3RocmVhZF9pbmZvLmggdGhpcmRfcGFydHkvY3Jhc2hwYWQv Y3Jhc2hwYWQvdXRpbC9saW51eC90aHJlYWRfaW5mby5oCi1pbmRleCA1YjU1YzI0YS4uZGVhMGQx ZjMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51eC90 aHJlYWRfaW5mby5oCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9saW51 eC90aHJlYWRfaW5mby5oCi1AQCAtMjgsNiArMjgsMTAgQEAKLSAjaW5jbHVkZSA8YW5kcm9pZC9h cGktbGV2ZWwuaD4KLSAjZW5kaWYKLSAKLSsjaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1J TFkpCi0rI2luY2x1ZGUgPHN5cy91Y29udGV4dC5oPgotKyNlbmRpZgotKwotIG5hbWVzcGFjZSBj cmFzaHBhZCB7Ci0gCi0gLy8hIFxicmllZiBUaGUgc2V0IG9mIGdlbmVyYWwgcHVycG9zZSByZWdp c3RlcnMgZm9yIGFuIGFyY2hpdGVjdHVyZSBmYW1pbHkuCi1AQCAtNzksNiArODMsOCBAQCB1bmlv biBUaHJlYWRDb250ZXh0IHsKLSAgICAgdWludDMyX3QgY3AwX3N0YXR1czsKLSAgICAgdWludDMy X3QgY3AwX2NhdXNlOwotICAgICB1aW50MzJfdCBwYWRkaW5nMV87Ci0rI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIFBQQzY0IGlzIDY0LWJpdAotICNlbHNlCi0g I2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMTMyLDYg KzEzOCwyMSBAQCB1bmlvbiBUaHJlYWRDb250ZXh0IHsKLSAgICAgdWludDY0X3QgY3AwX2JhZHZh ZGRyOwotICAgICB1aW50NjRfdCBjcDBfc3RhdHVzOwotICAgICB1aW50NjRfdCBjcDBfY2F1c2U7 Ci0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICAgIC8vIFJlZmxlY3Rz IHN0cnVjdCBwdF9yZWdzIGluIGFzbS9wdHJhY2UuaC4KLSsgICAgdWludDY0X3QgZ3ByWzMyXTsK LSsgICAgdWludDY0X3QgbmlwOwotKyAgICB1aW50NjRfdCBtc3I7Ci0rICAgIHVpbnQ2NF90IG9y aWdfZ3ByMzsKLSsgICAgdWludDY0X3QgY3RyOwotKyAgICB1aW50NjRfdCBsbms7Ci0rICAgIHVp bnQ2NF90IHhlcjsKLSsgICAgdWludDY0X3QgY2NyOwotKyAgICB1aW50NjRfdCBzb2Z0ZTsKLSsg ICAgdWludDY0X3QgdHJhcDsKLSsgICAgdWludDY0X3QgZGFyOwotKyAgICB1aW50NjRfdCBkc2lz cjsKLSsgICAgdWludDY0X3QgcmVzdWx0OwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlm ICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1AQCAtMTQzLDYgKzE2NCw4IEBAIHVuaW9uIFRocmVh ZENvbnRleHQgewotICAgdXNpbmcgTmF0aXZlVGhyZWFkQ29udGV4dCA9IHVzZXJfcmVnczsKLSAj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX01JUFNfRkFNSUxZKQotIC8vIE5vIGFwcHJvcHJpYXRlIE5h dGl2ZVRocmVhZHNDb250ZXh0IHR5cGUgYXZhaWxhYmxlIGZvciBNSVBTCi0rI2VsaWYgZGVmaW5l ZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICB1c2luZyBOYXRpdmVUaHJlYWRDb250ZXh0ID0g c3RydWN0IHB0X3JlZ3M7Ci0gI2Vsc2UKLSAjZXJyb3IgUG9ydC4KLSAjZW5kaWYgIC8vIEFSQ0hf Q1BVX1g4Nl9GQU1JTFkgfHwgQVJDSF9DUFVfQVJNNjQKLUBAIC0yMTgsNiArMjQxLDkgQEAgdW5p b24gRmxvYXRDb250ZXh0IHsKLSAgICAgfSBmcHJlZ3NbMzJdOwotICAgICB1aW50MzJfdCBmcGNz cjsKLSAgICAgdWludDMyX3QgZnB1X2lkOwotKyNlbGlmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRf RkFNSUxZKQotKyAgICAvLyBDcmFzaHBhZCdzIFBQQyBzdXBwb3J0IGlzIDY0LWJpdCBvbmx5LCBz byB0aGlzCi0rICAgIC8vIDMyYml0LW9ubHkgc3RydWN0IGlzIGRlY2xhcmVkIGFzIGVtcHR5Lgot ICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQVV9YODZfRkFNSUxZCi1A QCAtMjUyLDYgKzI3OCwxMCBAQCB1bmlvbiBGbG9hdENvbnRleHQgewotICAgICBkb3VibGUgZnBy ZWdzWzMyXTsKLSAgICAgdWludDMyX3QgZnBjc3I7Ci0gICAgIHVpbnQzMl90IGZwdV9pZDsKLSsj ZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgICAgLy8gUmVmbGVjdHMgZnBy ZWdzZXRfdCBpbiBzeXMvdWNvbnRleHQuaAotKyAgICBkb3VibGUgZnByZWdzWzMyXTsKLSsgICAg ZG91YmxlIGZwc2NyOwotICNlbHNlCi0gI2Vycm9yIFBvcnQuCi0gI2VuZGlmICAvLyBBUkNIX0NQ VV9YODZfRkFNSUxZCi1AQCAtMjgwLDYgKzMxMCw4IEBAIHVuaW9uIEZsb2F0Q29udGV4dCB7Ci0g ICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQpID09IHNpemVvZih1c2VyX2Zwc2ltZF9zdHJ1Y3Qp LCAiU2l6ZSBtaXNtYXRjaCIpOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19GQU1JTFkp Ci0gLy8gTm8gYXBwcm9wcmlhdGUgZmxvYXRpbmcgcG9pbnQgY29udGV4dCBuYXRpdmUgdHlwZSBm b3IgYXZhaWxhYmxlIE1JUFMuCi0rI2VsaWYgZGVmaW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkp Ci0rICBzdGF0aWNfYXNzZXJ0KHNpemVvZihmNjQpID09IHNpemVvZihmcHJlZ3NldF90KSwgIlNp emUgbWlzbWF0Y2giKTsKLSAjZWxzZQotICNlcnJvciBQb3J0LgotICNlbmRpZiAgLy8gQVJDSF9D UFVfWDg2Ci1AQCAtMjg3LDYgKzMxOSwyNiBAQCB1bmlvbiBGbG9hdENvbnRleHQgewotIHN0YXRp Y19hc3NlcnQoc3RkOjppc19zdGFuZGFyZF9sYXlvdXQ8RmxvYXRDb250ZXh0Pjo6dmFsdWUsCi0g ICAgICAgICAgICAgICAiTm90IHN0YW5kYXJkIGxheW91dCIpOwotIAotKy8vISBcYnJpZWYgVGhl IHZlY3RvciByZWdpc3RlcnMgdXNlZCBmb3IgYW4gYXJjaGl0ZWN0dXJlIGZhbWlseQotK3VuaW9u IFZlY3RvckNvbnRleHQgewotKyAgc3RydWN0IHYzMl90IHt9IHYzMjsKLSsjaWYgZGVmaW5lZChB UkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBfX2F0dHJpYnV0ZV9fKChfX2FsaWduZWRfXygxNikp KSAvLyBWZWN0b3IgY29udGV4dCBtdXN0IGJlIGRvdWJsZXdvcmQgYWxpZ25lZC4KLSsjZW5kaWYK LSsgIHN0cnVjdCB2NjRfdCB7Ci0rI2lmIGRlZmluZWQoQVJDSF9DUFVfUFBDNjRfRkFNSUxZKQot KyAgICAvLyBSZWZsZWN0cyB2cnJlZ3NldF90IGluIHN5cy91Y29udGV4dC5oCi0rICAgIHVpbnQz Ml90IHZycmVnc1szMl1bNF07Ci0rICAgIHN0cnVjdCB7Ci0rICAgICAgdWludDMyX3QgX19wYWRb M107Ci0rICAgICAgdWludDMyX3QgdnNjcl93b3JkOwotKyAgICB9IHZzY3I7Ci0rICAgIHVpbnQz Ml90IHZyc2F2ZTsKLSsgICAgdWludDMyX3QgX19wYWRbM107Ci0rI2VuZGlmCi0rICB9IHY2NDsK LSt9OwotKwotIC8vISBcYnJpZWYgQSBjb2xsZWN0aW9uIG9mIGBwdHJhY2VgLWFibGUgaW5mb3Jt YXRpb24gYWJvdXQgYSB0aHJlYWQuCi0gc3RydWN0IFRocmVhZEluZm8gewotICAgVGhyZWFkSW5m bygpOwotQEAgLTI5OCw2ICszNTAsOSBAQCBzdHJ1Y3QgVGhyZWFkSW5mbyB7Ci0gICAvLyEgXGJy aWVmIFRoZSBmbG9hdGluZyBwb2ludCByZWdpc3RlcnMgZm9yIHRoZSB0aHJlYWQuCi0gICBGbG9h dENvbnRleHQgZmxvYXRfY29udGV4dDsKLSAKLSsgIC8vISBcYnJpZWYgKE9wdGlvbmFsKSBUaGUg dmVjdG9yIHJlZ2lzdGVycyB1c2VkIGZvciB0aGUgdGhyZWFkLgotKyAgVmVjdG9yQ29udGV4dCB2 ZWN0b3JfY29udGV4dDsKLSsKLSAgIC8vISBcYnJpZWYgVGhlIHRocmVhZC1sb2NhbCBzdG9yYWdl IGFkZHJlc3MgZm9yIHRoZSB0aHJlYWQuCi0gICBMaW51eFZNQWRkcmVzcyB0aHJlYWRfc3BlY2lm aWNfZGF0YV9hZGRyZXNzOwotIH07Ci1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2NyYXNocGFkL2Ny YXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHQuaCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9j cmFzaHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0LmgKLWluZGV4IDNmZjcxMTg0Li4zZTgy ZjRiOSAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL21pc2Mv Y2FwdHVyZV9jb250ZXh0LmgKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGls L21pc2MvY2FwdHVyZV9jb250ZXh0LmgKLUBAIC02OCw2ICs2OCw3IEBAIHVzaW5nIE5hdGl2ZUNQ VUNvbnRleHQgPSB1Y29udGV4dF90OwotIC8vISAgICAgbWFjT1MvTGludXgvRnVjaHNpYSB8IHg4 Nl82NCAgICAgICB8IGAlJXJkaWAKLSAvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAgfCBBUk0v QVJNNjQgICAgfCBgcjBgL2B4MGAKLSAvLyEgICAgIExpbnV4ICAgICAgICAgICAgICAgfCBNSVBT L01JUFM2NCAgfCBgJGEwYAotKy8vISAgICAgTGludXggICAgICAgICAgICAgICB8IFBQQzY0ICAg ICAgICB8IGByM2AKLSAvLyEKLSAvLyEgICAgIEFkZGl0aW9uYWxseSwgdGhlIHZhbHVlIGBMUmAg b24gQVJNL0FSTTY0IHdpbGwgYmUgdGhlIHJldHVybiBhZGRyZXNzIG9mCi0gLy8hICAgICB0aGlz IGZ1bmN0aW9uLgotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGls L21pc2MvY2FwdHVyZV9jb250ZXh0X2xpbnV4LlMgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TCi1pbmRleCA1MjIxNWVlNS4uYjNl NGEzZWMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNj L2NhcHR1cmVfY29udGV4dF9saW51eC5TCi0rKysgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hw YWQvdXRpbC9taXNjL2NhcHR1cmVfY29udGV4dF9saW51eC5TCi1AQCAtMzIsNyArMzIsNyBAQAot ICAgLmJhbGlnbiA0LCAweDAKLSAgIC50eXBlIENBUFRVUkVDT05URVhUX1NZTUJPTCwgJWZ1bmN0 aW9uCi0gICAudHlwZSBDQVBUVVJFQ09OVEVYVF9TWU1CT0wyLCAlZnVuY3Rpb24KLS0jZWxpZiBk ZWZpbmVkKF9fbWlwc19fKQotKyNlbGlmIGRlZmluZWQoX19taXBzX18pIHx8IGRlZmluZWQoX19w b3dlcnBjNjRfXykKLSAgIC5iYWxpZ24gNCwgMHgwCi0gI2VuZGlmCi0gCi1AQCAtNDIzLDQgKzQy MywyMTQgQEAgQ0FQVFVSRUNPTlRFWFRfU1lNQk9MMjoKLSAgIGpyICRyYQotIAotICAgLnNldCBh dAotKyNlbGlmIGRlZmluZWQoX19wb3dlcnBjNjRfXykKLSsgIC8vIFN0b3JlIHIwLXIzMQotKyAg c3RkIDAsIDB4ZTgoMykgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzBdCi0rICBz dGQgMSwgMHhmMCgzKSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbMV0KLSsgIHN0 ZCAyLCAweGY4KDMpICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1syXQotKyAgLy8g bm90ZSB0aGF0IHIzJ3Mgb3JpZ2luYWwgdmFsdWUgd2FzIGxvc3QKLSsgIHN0ZCAzLCAweDEwMCgz KSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1szXQotKyAgc3RkIDQsIDB4MTA4KDMp ICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzRdCi0rICBzdGQgNSwgMHgxMTAoMykg IC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbNV0KLSsgIHN0ZCA2LCAweDExOCgzKSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s2XQotKyAgc3RkIDcsIDB4MTIwKDMpICAv LyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzddCi0rICBzdGQgOCwgMHgxMjgoMykgIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbOF0KLSsgIHN0ZCA5LCAweDEzMCgzKSAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1s5XQotKyAgc3RkIDEwLCAweDEzOCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEwXQotKyAgc3RkIDExLCAweDE0MCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzExXQotKyAgc3RkIDEyLCAweDE0OCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEyXQotKyAgc3RkIDEzLCAweDE1MCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzEzXQotKyAgc3RkIDE0LCAweDE1OCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE0XQotKyAgc3RkIDE1LCAweDE2MCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE1XQotKyAgc3RkIDE2LCAweDE2OCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE2XQotKyAgc3RkIDE3LCAweDE3MCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE3XQotKyAgc3RkIDE4LCAweDE3OCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE4XQotKyAgc3RkIDE5LCAweDE4MCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzE5XQotKyAgc3RkIDIwLCAweDE4OCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIwXQotKyAgc3RkIDIxLCAweDE5MCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIxXQotKyAgc3RkIDIyLCAweDE5OCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIyXQotKyAgc3RkIDIzLCAweDFhMCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzIzXQotKyAgc3RkIDI0LCAweDFhOCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI0XQotKyAgc3RkIDI1LCAweDFiMCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI1XQotKyAgc3RkIDI2LCAweDFiOCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI2XQotKyAgc3RkIDI3LCAweDFjMCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI3XQotKyAgc3RkIDI4LCAweDFjOCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI4XQotKyAgc3RkIDI5LCAweDFkMCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzI5XQotKyAgc3RkIDMwLCAweDFkOCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzMwXQotKyAgc3RkIDMxLCAweDFlMCgzKSAvLyBj b250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzWzMxXQotKwotKyAgLy8gRm9yIE5JUCwgd2UgY2Fu IHVzZSB0aGUgdmFsdWUgaW4gdGhlIGxpbmsgcmVnaXN0ZXIKLSsgIG1mbHIgMAotKyAgc3RkIDAs IDB4MWU4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTklQXQotKwotKyAg Ly8gQ1RSCi0rICBtZmN0ciAwCi0rICBzdGQgMCwgMHgyMDAoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZ3BfcmVnc1tQVF9DVFJdCi0rCi0rICAvLyBGb3IgTE5LLCB3ZSdsbCB1c2UgdGhlIGNh bGxlcidzIExSIHNhdmUgYXJlYSAoMiBzdGFjayBmcmFtZXMgdXApLgotKyAgLy8gcjQgY2FuIGJl IHVzZWQgYXMgYSBzY3JhdGNoIHJlZ2lzdGVyIHNpbmNlIGl0IGhhcyBhbHJlYWR5IGJlZW4gc2F2 ZWQuCi0rICBsZCA0LCAwKDEpCi0rICBsZCA0LCAxNig0KQotKyAgc3RkIDQsIDB4MjA4KDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfTE5LXQotKwotKyAgLy8gWEVSCi0rICBt ZnhlciAwCi0rICBzdGQgMCwgMHgyMTAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVn c1tQVF9YRVJdCi0rCi0rICAvLyBDQ1IKLSsgIG1mY3IgMAotKyAgc3RkIDAsIDB4MjE4KDMpIC8v IGNvbnRleHQtPnVjX21jb250ZXh0LmdwX3JlZ3NbUFRfQ0NSXQotKwotKyAgLy8gTVNSLCBvcmln X3IzLCBNUSwgVFJBUCwgREFSLCBEU0lTUiwgUkVTVUxULCBEU0NSLAotKyAgLy8gbm90IHVzZWQg b3Igbm90IHJlbGV2YW50LCAgemVybyB0aGVtIG91dC4KLSsgIGxpIDQsIDAKLSsgIHN0ZCA0LCAw eDFmMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX01TUl0KLSsgIHN0ZCA0 LCAweDFmOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX09SSUdfUjNdCi0r ICBzdGQgNCwgMHgyMjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQVF9NUV0K LSsgIHN0ZCA0LCAweDIyOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5ncF9yZWdzW1BUX1RS QVBdCi0rICBzdGQgNCwgMHgyMzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVnc1tQ VF9EQVJdCi0rICBzdGQgNCwgMHgyMzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZ3BfcmVn c1tQVF9EU0lTUl0KLSsgIHN0ZCA0LCAweDI0MCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5n cF9yZWdzW1BUX1JFU1VMVF0KLSsgIHN0ZCA0LCAweDI0OCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5ncF9yZWdzW1BUX0RTQ1JdCi0rCi0rICAvLyBVcGRhdGUgY29udGV4dC0+dWNfbWNvbnRl eHQucmVncyB0byBwb2ludCB0byBncF9yZWdzCi0rICBhZGRpIDAsIDMsIDB4ZTgKLSsgIHN0ZCAw LCAweGUwKDMpCi0rCi0rICAvLyBTYXZlIGZsb2F0aW5nIHBvaW50IHJlZ2lzdGVycyAwLTMxCi0r ICBzdGZkIDAsIDB4MjY4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzBdCi0r ICBzdGZkIDEsIDB4MjcwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzFdCi0r ICBzdGZkIDIsIDB4Mjc4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzJdCi0r ICBzdGZkIDMsIDB4MjgwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzNdCi0r ICBzdGZkIDQsIDB4Mjg4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzRdCi0r ICBzdGZkIDUsIDB4MjkwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzVdCi0r ICBzdGZkIDYsIDB4Mjk4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzZdCi0r ICBzdGZkIDcsIDB4MmEwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzddCi0r ICBzdGZkIDgsIDB4MmE4KDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzhdCi0r ICBzdGZkIDksIDB4MmIwKDMpICAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzldCi0r ICBzdGZkIDEwLCAweDJiOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzEwXQot KyAgc3RmZCAxMSwgMHgyYzAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sxMV0K LSsgIHN0ZmQgMTIsIDB4MmM4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3NbMTJd Ci0rICBzdGZkIDEzLCAweDJkMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzEz XQotKyAgc3RmZCAxNCwgMHgyZDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVnc1sx NF0KLSsgIHN0ZmQgMTUsIDB4MmUwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3JlZ3Nb MTVdCi0rICBzdGZkIDE2LCAweDJlOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdz WzE2XQotKyAgc3RmZCAxNywgMHgyZjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBfcmVn c1sxN10KLSsgIHN0ZmQgMTgsIDB4MmY4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZwX3Jl Z3NbMThdCi0rICBzdGZkIDE5LCAweDMwMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9y ZWdzWzE5XQotKyAgc3RmZCAyMCwgMHgzMDgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQuZnBf cmVnc1syMF0KLSsgIHN0ZmQgMjEsIDB4MzEwKDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LmZw X3JlZ3NbMjFdCi0rICBzdGZkIDIyLCAweDMxOCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5m cF9yZWdzWzIyXQotKyAgc3RmZCAyMywgMHgzMjAoMykgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu ZnBfcmVnc1syM10KLSsgIHN0ZmQgMjQsIDB4MzI4KDMpIC8vIGNvbnRleHQtPnVjX21jb250ZXh0 LmZwX3JlZ3NbMjRdCi0rICBzdGZkIDI1LCAweDMzMCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4 dC5mcF9yZWdzWzI1XQotKyAgc3RmZCAyNiwgMHgzMzgoMykgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQuZnBfcmVnc1syNl0KLSsgIHN0ZmQgMjcsIDB4MzQwKDMpIC8vIGNvbnRleHQtPnVjX21jb250 ZXh0LmZwX3JlZ3NbMjddCi0rICBzdGZkIDI4LCAweDM0OCgzKSAvLyBjb250ZXh0LT51Y19tY29u dGV4dC5mcF9yZWdzWzI4XQotKyAgc3RmZCAyOSwgMHgzNTAoMykgLy8gY29udGV4dC0+dWNfbWNv bnRleHQuZnBfcmVnc1syOV0KLSsgIHN0ZmQgMzAsIDB4MzU4KDMpIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LmZwX3JlZ3NbMzBdCi0rICBzdGZkIDMxLCAweDM2MCgzKSAvLyBjb250ZXh0LT51Y19t Y29udGV4dC5mcF9yZWdzWzMxXQotKwotKyAgLy8gRlBTQ1IKLSsgIG1mZnMgMAotKyAgc3RmZCAw LCAweDM2OCgzKSAvLyBjb250ZXh0LT51Y19tY29udGV4dC5mcF9yZWdzWzMyXQotKwotKyAgLy8g U2F2ZSBWTVggVmVjdG9yIHJlZ2lzdGVycwotKyAgLy8gVXBkYXRlIHI0IHRvIGNvbnRhaW4gdGhl IGJhc2UgYWRkcmVzcyBvZiB2bXhfcmVzZXJ2ZQotKyAgYWRkaSA0LCAzLCAweDM3OAotKyAgLy8g RW5zdXJlIHRoYXQgaXQgaXMgcXVhZHdvcmQgYWxpZ25lZAotKyAgYW5kaS4gNSwgNCwgMHhGCi0r ICBiZXEgMWYgLy8gTm8gYWxpZ25tZW50IGlzIG5lY2Vzc2FyeQotKyAgLy8gQWRkcmVzcyBpcyBk b3VibGV3b3JkIGFsaWduZWQgYW5kIG5vdCBxdWFkd29yZCBhbGlnbmVkLCBhZGQgOAotKyAgYWRk aSA0LCA0LCA4Ci0rCi0rMToKLSsgIC8vIFN0b3JlIFZNWCByZWdpc3RlcnMgMC0zMQotKyAgLy8g cjQgd2lsbCBjb250YWluIHRoZSBiYXNlIGFkZHJlc3MKLSsgIC8vIHI1IHdpbGwgY29udGFpbiB0 aGUgaW5kZXgKLSsgIGxpIDUsIDAKLSsgIHN0dnggMCwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21j b250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyAwXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2 eCAxLCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSAr IDFdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDIsIDQsIDUgICAvLyBjb250ZXh0LT51Y19t Y29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgMl0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0 dnggMywgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikg KyAzXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCA0LCA0LCA1ICAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDRdCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBz dHZ4IDUsIDQsIDUgICAvLyBjb250ZXh0LT51Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24p ICsgNV0KLSsgIGFkZGkgNSwgNSwgMTYKLSsgIHN0dnggNiwgNCwgNSAgIC8vIGNvbnRleHQtPnVj X21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGlnbikgKyA2XQotKyAgYWRkaSA1LCA1LCAxNgotKyAg c3R2eCA3LCA0LCA1ICAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWdu KSArIDddCi0rICBhZGRpIDUsIDUsIDE2Ci0rICBzdHZ4IDgsIDQsIDUgICAvLyBjb250ZXh0LT51 Y19tY29udGV4dC52bXhfcmVzZXJ2ZVsoYWxpZ24pICsgOF0KLSsgIGFkZGkgNSwgNSwgMTYKLSsg IHN0dnggOSwgNCwgNSAgIC8vIGNvbnRleHQtPnVjX21jb250ZXh0LnZteF9yZXNlcnZlWyhhbGln bikgKyA5XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxMCwgNCwgNSAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDEwXQotKyAgYWRkaSA1LCA1LCAxNgot KyAgc3R2eCAxMSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDExXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxMiwgNCwgNSAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDEyXQotKyAgYWRkaSA1LCA1LCAx NgotKyAgc3R2eCAxMywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVb KGFsaWduKSArIDEzXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxNCwgNCwgNSAgLy8gY29u dGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE0XQotKyAgYWRkaSA1LCA1 LCAxNgotKyAgc3R2eCAxNSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2Vy dmVbKGFsaWduKSArIDE1XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxNiwgNCwgNSAgLy8g Y29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE2XQotKyAgYWRkaSA1 LCA1LCAxNgotKyAgc3R2eCAxNywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jl c2VydmVbKGFsaWduKSArIDE3XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAxOCwgNCwgNSAg Ly8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDE4XQotKyAgYWRk aSA1LCA1LCAxNgotKyAgc3R2eCAxOSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14 X3Jlc2VydmVbKGFsaWduKSArIDE5XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyMCwgNCwg NSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIwXQotKyAg YWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyMSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQu dm14X3Jlc2VydmVbKGFsaWduKSArIDIxXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyMiwg NCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIyXQot KyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyMywgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRl eHQudm14X3Jlc2VydmVbKGFsaWduKSArIDIzXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAy NCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI0 XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyNSwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNv bnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI1XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2 eCAyNiwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSAr IDI2XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyNywgNCwgNSAgLy8gY29udGV4dC0+dWNf bWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI3XQotKyAgYWRkaSA1LCA1LCAxNgotKyAg c3R2eCAyOCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWdu KSArIDI4XQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAyOSwgNCwgNSAgLy8gY29udGV4dC0+ dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDI5XQotKyAgYWRkaSA1LCA1LCAxNgot KyAgc3R2eCAzMCwgNCwgNSAgLy8gY29udGV4dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFs aWduKSArIDMwXQotKyAgYWRkaSA1LCA1LCAxNgotKyAgc3R2eCAzMSwgNCwgNSAgLy8gY29udGV4 dC0+dWNfbWNvbnRleHQudm14X3Jlc2VydmVbKGFsaWduKSArIDMxXQotKyAgYWRkaSA1LCA1LCAx NgotKwotKyAgLy8gVlNDUgotKyAgbWZ2c2NyIDAKLSsgIHN0dnggMCwgNCwgNQotKyAgYWRkaSA1 LCA1LCAxNgotKwotKyAgLy8gVlJTQVZFCi0rICBtZnZyc2F2ZSAwCi0rICBzdHd4IDAsIDQsIDUK LSsKLSsgIC8vIFVwZGF0ZSBjb250ZXh0LT51Y19tY29udGV4dC52X3JlZ3MgdG8gcG9pbnQgdG8g dm14X3Jlc2VydmUgKyBhbGlnbm1lbnQuCi0rICBzdGQgNCwgMHgzNzAoMykKLSsKLSsgIC8vIFpl cm8gb3V0IGFsbCB1bnVzZWQgZmllbGRzCi0rICBsaSA0LCAwCi0rICBzdGQgNCwgMHhjOCgzKSAv LyBjb250ZXh0LT51Y19tY29udGV4dC5zaWduYWwKLSsgIHN0ZCA0LCAweGQwKDMpIC8vIGNvbnRl eHQtPnVjX21jb250ZXh0LmhhbmRsZXIKLSsgIHN0ZCA0LCAweGQ4KDMpIC8vIGNvbnRleHQtPnVj X21jb250ZXh0Lm9sZG1hc2sKLSsKLSsgIGJscgotICNlbmRpZiAgLy8gX19pMzg2X18KLWRpZmYg LS1naXQgdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVfY29u dGV4dF90ZXN0LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0 dXJlX2NvbnRleHRfdGVzdC5jYwotaW5kZXggY2YyM2MyZGUuLjVmMjY0YmM5IDEwMDY0NAotLS0t IHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRf dGVzdC5jYwotKysrIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0 dXJlX2NvbnRleHRfdGVzdC5jYwotQEAgLTU3LDcgKzU3LDcgQEAgdm9pZCBUZXN0Q2FwdHVyZUNv bnRleHQoKSB7Ci0gICB1aW50cHRyX3QgcGMgPSBQcm9ncmFtQ291bnRlckZyb21Db250ZXh0KGNv bnRleHRfMSk7Ci0gCi0gI2lmICFkZWZpbmVkKEFERFJFU1NfU0FOSVRJWkVSKSAmJiAhZGVmaW5l ZChBUkNIX0NQVV9NSVBTX0ZBTUlMWSkgJiYgXAotLSAgICAhZGVmaW5lZChNRU1PUllfU0FOSVRJ WkVSKQotKyAgICAhZGVmaW5lZChNRU1PUllfU0FOSVRJWkVSKSAmJiAhZGVmaW5lZChBUkNIX0NQ VV9QUEM2NF9GQU1JTFkpCi0gICAvLyBTYW5pdGl6ZXJzIGNhbiBjYXVzZSBlbm91Z2ggY29kZSBi bG9hdCB0aGF0IHRoZSDigJxuZWFyYnnigJ0gY2hlY2sgd291bGQKLSAgIC8vIGxpa2VseSBmYWls LgotICAgY29uc3QgdWludHB0cl90IGtSZWZlcmVuY2VQQyA9Ci1kaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJlX2NvbnRleHRfdGVzdF91dGls X2xpbnV4LmNjIHRoaXJkX3BhcnR5L2NyYXNocGFkL2NyYXNocGFkL3V0aWwvbWlzYy9jYXB0dXJl X2NvbnRleHRfdGVzdF91dGlsX2xpbnV4LmNjCi1pbmRleCA5ZmM1ZGIyOC4uNWY2OWY4ZGMgMTAw NjQ0Ci0tLS0gdGhpcmRfcGFydHkvY3Jhc2hwYWQvY3Jhc2hwYWQvdXRpbC9taXNjL2NhcHR1cmVf Y29udGV4dF90ZXN0X3V0aWxfbGludXguY2MKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFz aHBhZC91dGlsL21pc2MvY2FwdHVyZV9jb250ZXh0X3Rlc3RfdXRpbF9saW51eC5jYwotQEAgLTM2 LDYgKzM2LDggQEAgdm9pZCBTYW5pdHlDaGVja0NvbnRleHQoY29uc3QgTmF0aXZlQ1BVQ29udGV4 dCYgY29udGV4dCkgewotICAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRleHQucmVnc1swXSwg RnJvbVBvaW50ZXJDYXN0PHVpbnRwdHJfdD4oJmNvbnRleHQpKTsKLSAjZWxpZiBkZWZpbmVkKEFS Q0hfQ1BVX01JUFNfRkFNSUxZKQotICAgRVhQRUNUX0VRKGNvbnRleHQudWNfbWNvbnRleHQuZ3Jl Z3NbNF0sIEZyb21Qb2ludGVyQ2FzdDx1aW50cHRyX3Q+KCZjb250ZXh0KSk7Ci0rI2VsaWYgZGVm aW5lZChBUkNIX0NQVV9QUEM2NF9GQU1JTFkpCi0rICBFWFBFQ1RfRVEoY29udGV4dC51Y19tY29u dGV4dC5ncF9yZWdzWzNdLCBGcm9tUG9pbnRlckNhc3Q8dWludHB0cl90PigmY29udGV4dCkpOwot ICNlbmRpZgotIH0KLSAKLUBAIC01MCw2ICs1Miw4IEBAIHVpbnRwdHJfdCBQcm9ncmFtQ291bnRl ckZyb21Db250ZXh0KGNvbnN0IE5hdGl2ZUNQVUNvbnRleHQmIGNvbnRleHQpIHsKLSAgIHJldHVy biBjb250ZXh0LnVjX21jb250ZXh0LnBjOwotICNlbGlmIGRlZmluZWQoQVJDSF9DUFVfTUlQU19G QU1JTFkpCi0gICByZXR1cm4gY29udGV4dC51Y19tY29udGV4dC5wYzsKLSsjZWxpZiBkZWZpbmVk KEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0Lmdw X3JlZ3NbUFRfTklQXTsKLSAjZW5kaWYKLSB9Ci0gCi1AQCAtNjQsNiArNjgsOCBAQCB1aW50cHRy X3QgU3RhY2tQb2ludGVyRnJvbUNvbnRleHQoY29uc3QgTmF0aXZlQ1BVQ29udGV4dCYgY29udGV4 dCkgewotICAgcmV0dXJuIGNvbnRleHQudWNfbWNvbnRleHQuc3A7Ci0gI2VsaWYgZGVmaW5lZChB UkNIX0NQVV9NSVBTX0ZBTUlMWSkKLSAgIHJldHVybiBjb250ZXh0LnVjX21jb250ZXh0LmdyZWdz WzI5XTsKLSsjZWxpZiBkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0X0ZBTUlMWSkKLSsgIHJldHVybiBj b250ZXh0LnVjX21jb250ZXh0LmdwX3JlZ3NbMV07Ci0gI2VuZGlmCi0gfQotIAotZGlmZiAtLWdp dCB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5j YyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBhZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5j YwotaW5kZXggNThiZmE4ZjguLjhmYzM3YzQ2IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2NyYXNo cGFkL2NyYXNocGFkL3V0aWwvcG9zaXgvc2lnbmFsc190ZXN0LmNjLm9yaWcJMjAyMC0xMS0xNyAx MzozOTo0Ny4wMDAwMDAwMDAgLTA1MDAKLSsrKyB0aGlyZF9wYXJ0eS9jcmFzaHBhZC9jcmFzaHBh ZC91dGlsL3Bvc2l4L3NpZ25hbHNfdGVzdC5jYwkyMDIwLTExLTE4IDIxOjA2OjMzLjQzMzQwODYy MyAtMDUwMAotQEAgLTQ2LDkgKzQ2LDkgQEAKLSAgIHJldHVybiBzaWcgPT0gU0lHQUJSVCB8fAot ICAgICAgICAgIHNpZyA9PSBTSUdBTFJNIHx8Ci0gICAgICAgICAgc2lnID09IFNJR0JVUyB8fAot LSNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02NCkKLSsjaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJN NjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotICAgICAgICAgIHNpZyA9PSBTSUdGUEUg fHwKLS0jZW5kaWYgIC8vICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KQotKyNlbmRpZiAgLy8gIWRl ZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQQzY0KQotICNpZiBk ZWZpbmVkKEFSQ0hfQ1BVX1g4Nl9GQU1JTFkpIHx8IGRlZmluZWQoQVJDSF9DUFVfQVJNRUwpCi0g ICAgICAgICAgc2lnID09IFNJR0lMTCB8fAotICNlbmRpZiAgLy8gZGVmaW5lZChBUkNIX0NQVV9Y ODZfRkFNSUxZKSB8fCBkZWZpbmVkKEFSQ0hfQ1BVX0FSTUVMKQotQEAgLTExNyw5ICsxMTcsMTEg QEAKLSAgICAgICBicmVhazsKLSAgICAgfQotIAotLSNpZiAhZGVmaW5lZChBUkNIX0NQVV9BUk02 NCkKLSsjaWYgIWRlZmluZWQoQVJDSF9DUFVfQVJNNjQpICYmICFkZWZpbmVkKEFSQ0hfQ1BVX1BQ QzY0KQotICAgICAvLyBBUk02NCBoYXMgaGFyZHdhcmUgaW50ZWdlciBkaXZpc2lvbiBpbnN0cnVj dGlvbnMgdGhhdCBkb27igJl0IGdlbmVyYXRlIGEKLSAgICAgLy8gdHJhcCBmb3IgZGl2aWRlLWJ5 LXplcm8sIHNvIHRoaXMgZG9lc27igJl0IHByb2R1Y2UgU0lHRlBFLgotKyAgICAvLwotKyAgICAv LyBQUEM2NCBmaXhlZC1wb2ludCBkaXZpc2lvbiBieSB6ZXJvIGFsc28gZG9lc24ndCBwcm9kdWNl IGEgU0lHRlBFLgotICAgICBjYXNlIFNJR0ZQRTogewotICAgICAgIC8vIE9wdGltaXphdGlvbiBt YWtlcyB0aGlzIHRyaWNreSwgc28gZ2V0IHplcm8gZnJvbSBhIHN5c3RlbSBjYWxsIGxpa2VseQot ICAgICAgIC8vIHRvIHN1Y2NlZWQsIGFuZCB0cnkgdG8gZG8gc29tZXRoaW5nIHdpdGggdGhlIHJl c3VsdC4KLUBAIC0xMzcsNyArMTM5LDcgQEAKLSAgICAgICBmc3RhdChxdW90aWVudCwgJnN0YXRf YnVmKTsKLSAgICAgICBicmVhazsKLSAgICAgfQotLSNlbmRpZiAgLy8gQVJDSF9DUFVfQVJNNjQK LSsjZW5kaWYgIC8vICFkZWZpbmVkKEFSQ0hfQ1BVX0FSTTY0KSAmJiAhZGVmaW5lZChBUkNIX0NQ VV9QUEM2NCkKLSAKLSAjaWYgZGVmaW5lZChBUkNIX0NQVV9YODZfRkFNSUxZKSB8fCBkZWZpbmVk KEFSQ0hfQ1BVX0FSTUVMKQotICAgICBjYXNlIFNJR0lMTDogewotZGlmZiAtLWdpdCB0aGlyZF9w YXJ0eS9kYXYxZC9CVUlMRC5nbiB0aGlyZF9wYXJ0eS9kYXYxZC9CVUlMRC5nbgotaW5kZXggNzg4 ZGM2Y2YuLjVmZDdlOGZkIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L2RhdjFkL0JVSUxELmduCi0r KysgdGhpcmRfcGFydHkvZGF2MWQvQlVJTEQuZ24KLUBAIC0xODIsNiArMTgyLDggQEAgc3RhdGlj X2xpYnJhcnkoImRhdjFkXzhiaXQiKSB7Ci0gICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRlX3Nv dXJjZXMKLSAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybTY0IikgewotICAgICBzb3Vy Y2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCi0rICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09 ICJwcGM2NCIpIHsKLSsgICAgc291cmNlcyArPSBwcGM2NF90ZW1wbGF0ZV9zb3VyY2VzCi0gICB9 Ci0gCi0gICBjZmxhZ3MgPSBkYXYxZF9jb3B0cwotQEAgLTIxMCw2ICsyMTIsOCBAQCBzdGF0aWNf bGlicmFyeSgiZGF2MWRfMTBiaXQiKSB7Ci0gICAgIHNvdXJjZXMgKz0gYXJtX3RlbXBsYXRlX3Nv dXJjZXMKLSAgIH0gZWxzZSBpZiAoY3VycmVudF9jcHUgPT0gImFybTY0IikgewotICAgICBzb3Vy Y2VzICs9IGFybV90ZW1wbGF0ZV9zb3VyY2VzCi0rICB9IGVsc2UgaWYgKGN1cnJlbnRfY3B1ID09 ICJwcGM2NCIpIHsKLSsgICAgc291cmNlcyArPSBwcGM2NF90ZW1wbGF0ZV9zb3VyY2VzCi0gICB9 Ci0gCi0gICBjZmxhZ3MgPSBkYXYxZF9jb3B0cwotQEAgLTI1Niw2ICsyNjAsMjEgQEAgaWYgKGN1 cnJlbnRfY3B1ID09ICJ4ODYiIHx8IGN1cnJlbnRfY3B1ID09ICJ4NjQiKSB7Ci0gICAgICAgIjpk YXYxZF9jb25maWciLAotICAgICBdCi0gCi0rICAgIGNmbGFncyA9IGRhdjFkX2NvcHRzCi0rICB9 Ci0rfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0rICBzdGF0aWNfbGlicmFy eSgiZGF2MWRfcHBjIikgewotKyAgICBzb3VyY2VzID0gWwotKyAgICAgICJsaWJkYXYxZC9zcmMv cHBjL2NwdS5jIiwKLSsgICAgICAibGliZGF2MWQvc3JjL3BwYy9jcHUuaCIsCi0rICAgIF0KLSsK LSsgICAgY29uZmlncyAtPSBbICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpjaHJvbWl1bV9jb2Rl IiBdCi0rICAgIGNvbmZpZ3MgKz0gWwotKyAgICAgICIvL2J1aWxkL2NvbmZpZy9jb21waWxlcjpu b19jaHJvbWl1bV9jb2RlIiwKLSsgICAgICAiOmRhdjFkX2NvbmZpZyIsCi0rICAgIF0KLSsKLSAg ICAgY2ZsYWdzID0gZGF2MWRfY29wdHMKLSAgIH0KLSB9Ci1AQCAtMjg1LDUgKzMwNCw3IEBAIHN0 YXRpY19saWJyYXJ5KCJkYXYxZCIpIHsKLSAgICAgfQotICAgfSBlbHNlIGlmIChjdXJyZW50X2Nw dSA9PSAiYXJtIiB8fCBjdXJyZW50X2NwdSA9PSAiYXJtNjQiKSB7Ci0gICAgIGRlcHMgKz0gWyAi OmRhdjFkX2FybSIgXQotKyAgfSBlbHNlIGlmIChjdXJyZW50X2NwdSA9PSAicHBjNjQiKSB7Ci0r ICAgIGRlcHMgKz0gWyAiOmRhdjFkX3BwYyIgXQotICAgfQotIH0KLWRpZmYgLS1naXQgdGhpcmRf cGFydHkvZGF2MWQvY29uZmlnL2xpbnV4L3BwYzY0L2NvbmZpZy5oIHRoaXJkX3BhcnR5L2RhdjFk L2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaAotbmV3IGZpbGUgbW9kZSAxMDA2NDQKLWluZGV4 IDAwMDAwMDAwLi5mNmNhNTdmNwotLS0tIC9kZXYvbnVsbAotKysrIHRoaXJkX3BhcnR5L2RhdjFk L2NvbmZpZy9saW51eC9wcGM2NC9jb25maWcuaAotQEAgLTAsMCArMSwzOSBAQAotKy8qCi0rICog QXV0b2dlbmVyYXRlZCBieSB0aGUgTWVzb24gYnVpbGQgc3lzdGVtLgotKyAqIERvIG5vdCBlZGl0 LCB5b3VyIGNoYW5nZXMgd2lsbCBiZSBsb3N0LgotKyAqLwotKwotKyNwcmFnbWEgb25jZQotKwot KyNkZWZpbmUgQVJDSF9BQVJDSDY0IDAKLSsKLSsjZGVmaW5lIEFSQ0hfQVJNIDAKLSsKLSsjZGVm aW5lIEFSQ0hfUFBDNjRMRSAxCi0rCi0rI2RlZmluZSBBUkNIX1g4NiAwCi0rCi0rI2RlZmluZSBB UkNIX1g4Nl8zMiAwCi0rCi0rI2RlZmluZSBBUkNIX1g4Nl82NCAwCi0rCi0rI2RlZmluZSBDT05G SUdfMTZCUEMgMQotKwotKyNkZWZpbmUgQ09ORklHXzhCUEMgMQotKwotKy8vICNkZWZpbmUgQ09O RklHX0xPRyAxIC0tIExvZ2dpbmcgaXMgY29udHJvbGxlZCBieSBDaHJvbWl1bQotKwotKyNkZWZp bmUgRU5ESUFOTkVTU19CSUcgMAotKwotKyNkZWZpbmUgSEFWRV9BU00gMQotKwotKyNkZWZpbmUg SEFWRV9DTE9DS19HRVRUSU1FIDEKLSsKLSsjZGVmaW5lIEhBVkVfRExTWU0gMQotKwotKyNkZWZp bmUgSEFWRV9HRVRBVVhWQUwgMQotKwotKyNkZWZpbmUgSEFWRV9QT1NJWF9NRU1BTElHTiAxCi0r Ci0rI2RlZmluZSBIQVZFX1VOSVNURF9IIDEKLSsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvZGF2 MWQvZGF2MWRfZ2VuZXJhdGVkLmduaSB0aGlyZF9wYXJ0eS9kYXYxZC9kYXYxZF9nZW5lcmF0ZWQu Z25pCi1pbmRleCA4YmVjYWMwMi4uZDVmNGZjYWMgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvZGF2 MWQvZGF2MWRfZ2VuZXJhdGVkLmduaQotKysrIHRoaXJkX3BhcnR5L2RhdjFkL2RhdjFkX2dlbmVy YXRlZC5nbmkKLUBAIC03MSw2ICs3MSwxMSBAQCBhcm1fdGVtcGxhdGVfc291cmNlcyA9IFsKLSAg ICJsaWJkYXYxZC9zcmMvYXJtL21jX2luaXRfdG1wbC5jIiwKLSBdCi0gCi0rcHBjNjRfdGVtcGxh dGVfc291cmNlcyA9IFsKLSsgICJsaWJkYXYxZC9zcmMvcHBjL2NkZWZfaW5pdF90bXBsLmMiLAot KyAgImxpYmRhdjFkL3NyYy9wcGMvbG9vcHJlc3RvcmF0aW9uX2luaXRfdG1wbC5jIiwKLStdCi0r Ci0gdGVtcGxhdGVfc291cmNlcyA9IFsKLSAgICJsaWJkYXYxZC9zcmMvY2RlZl9hcHBseV90bXBs LmMiLAotICAgImxpYmRhdjFkL3NyYy9jZGVmX3RtcGwuYyIsCi1kaWZmIC0tZ2l0IHRoaXJkX3Bh cnR5L2RhdjFkL2dlbmVyYXRlX3NvdXJjZS5weSB0aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0ZV9z b3VyY2UucHkKLWluZGV4IDlhYjVlMDBiLi5hZDNmZWZmZSAxMDA3NTUKLS0tLSB0aGlyZF9wYXJ0 eS9kYXYxZC9nZW5lcmF0ZV9zb3VyY2UucHkKLSsrKyB0aGlyZF9wYXJ0eS9kYXYxZC9nZW5lcmF0 ZV9zb3VyY2UucHkKLUBAIC01MCw3ICs1MCw4IEBAIGRlZiBXcml0ZUduKGZkKToKLSAgIFdyaXRl QXJyYXkoZmQsICJhcm0zMl9hc21fc291cmNlcyIsIGdsb2IuZ2xvYigibGliZGF2MWQvc3JjL2Fy bS8zMi8qLlMiKSkKLSAgIFdyaXRlQXJyYXkoZmQsICJhcm02NF9hc21fc291cmNlcyIsIGdsb2Iu Z2xvYigibGliZGF2MWQvc3JjL2FybS82NC8qLlMiKSkKLSAgIFdyaXRlQXJyYXkoZmQsICJhcm1f dGVtcGxhdGVfc291cmNlcyIsIGdsb2IuZ2xvYigibGliZGF2MWQvc3JjL2FybS8qX3RtcGwuYyIp KQotLQotKyAgV3JpdGVBcnJheShmZCwgInBwYzY0X3RlbXBsYXRlX3NvdXJjZXMiLCBnbG9iLmds b2IoImxpYmRhdjFkL3NyYy9wcGMvKl90bXBsLmMiKSkKLSsgCi0gICB0ZW1wbGF0ZV9zb3VyY2Vz ID0gZ2xvYi5nbG9iKCJsaWJkYXYxZC9zcmMvKl90bXBsLmMiKQotICAgV3JpdGVBcnJheShmZCwg InRlbXBsYXRlX3NvdXJjZXMiLCB0ZW1wbGF0ZV9zb3VyY2VzKQotIAotZGlmZiAtLWdpdCB0aGly ZF9wYXJ0eS9kYXYxZC9saWJkYXYxZC9zcmMvcHBjL3R5cGVzLmggdGhpcmRfcGFydHkvZGF2MWQv bGliZGF2MWQvc3JjL3BwYy90eXBlcy5oCi1pbmRleCAwYjRiZDcyZi4uYTBjYWE1ZTcgMTAwNjQ0 Ci0tLS0gdGhpcmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3JjL3BwYy90eXBlcy5oCi0rKysgdGhp cmRfcGFydHkvZGF2MWQvbGliZGF2MWQvc3JjL3BwYy90eXBlcy5oCi1AQCAtNTEsNCArNTEsMTkg QEAKLSAjZGVmaW5lIHUxNmxfdG9faTMyKHYpICgoaTMyeDQpIHZlY19tZXJnZWwoKHUxNng4KSB2 LCB2ZWNfc3BsYXRfdTE2KDApKSkKLSAjZGVmaW5lIGkxNmxfdG9faTMyKHYpICgoaTMyeDQpIHZl Y191bnBhY2tsKChpMTZ4OCl2KSkKLSAKLSsjaWYgZGVmaW5lZChfX2NsYW5nX18pCi0rI3VuZGVm IHZlY19zcGxhdHMKLSsjZGVmaW5lIHZlY19zcGxhdHMoTikgICAgICAgICAgICAgICAgICAgICBc Ci0rICAgIF9HZW5lcmljKChOKSwgICAgICAgICAgICAgICAgICAgICAgICAgXAotKyAgICAgICAg dW5zaWduZWQgY2hhcjogICAgICAoKHU4eDE2KShOKSksIFwKLSsgICAgICAgIHNpZ25lZCBjaGFy OiAgICAgICAgKChpOHgxNikoTikpLCBcCi0rICAgICAgICB1bnNpZ25lZCBzaG9ydDogICAgICgo dTE2eDgpKE4pKSwgXAotKyAgICAgICAgc2lnbmVkIHNob3J0OiAgICAgICAoKGkxNng4KShOKSks IFwKLSsgICAgICAgIHVuc2lnbmVkIGludDogICAgICAgKCh1MzJ4NCkoTikpLCBcCi0rICAgICAg ICBzaWduZWQgaW50OiAgICAgICAgICgoaTMyeDQpKE4pKSwgXAotKyAgICAgICAgdW5zaWduZWQg bG9uZyBsb25nOiAoKHU2NHgyKShOKSksIFwKLSsgICAgICAgIHNpZ25lZCBsb25nIGxvbmc6ICAg KChpNjR4MikoTikpICBcCi0rICAgICkKLSsjZW5kaWYKLSsKLSAjZW5kaWYgLyogREFWMURfU1JD X1BQQ19UWVBFU19IICovCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L2xzcy9saW51eF9zeXNjYWxs X3N1cHBvcnQuaCB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0LmgKLWluZGV4 IGQyYmFlZTlkLi45OTU1Y2U0NCAxMDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lz Y2FsbF9zdXBwb3J0LmgKLSsrKyB0aGlyZF9wYXJ0eS9sc3MvbGludXhfc3lzY2FsbF9zdXBwb3J0 LmgKLUBAIC0zOTIyLDcgKzM5MjIsNyBAQCBzdHJ1Y3Qga2VybmVsX3N0YXRmcyB7Ci0gICAgICAg TFNTX1JFRygyLCBidWYpOwotICAgICAgIExTU19CT0RZKHZvaWQqLCBtbWFwMiwgIjAiKF9fcjIp KTsKLSAgICAgfQotLSNlbHNlCi0rI2VsaWYgIWRlZmluZWQoX19wb3dlcnBjNjRfXykgLyogcHBj NjQgZG9lc24ndCBoYXZlIG1tYXAyICovCi0gICAgICNkZWZpbmUgX19OUl9fbW1hcDIgX19OUl9t bWFwMgotICAgICBMU1NfSU5MSU5FIF9zeXNjYWxsNih2b2lkKiwgX21tYXAyLCAgICAgICAgICAg IHZvaWQqLCBzLAotICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplX3QsICAgICAgICAgICAg ICAgICAgIGwsIGludCwgICAgICAgICAgICAgICBwLAotQEAgLTQwMzMsNyArNDAzMyw3IEBAIHN0 cnVjdCBrZXJuZWxfc3RhdGZzIHsKLSAgICNpZiBkZWZpbmVkKF9faTM4Nl9fKSB8fCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICAgZGVm aW5lZChfX0FSTV9BUkNIXzNfXykgfHwgZGVmaW5lZChfX0FSTV9FQUJJX18pIHx8ICAgICAgICAg ICAgICAgICAgICAgXAotICAgICAgKGRlZmluZWQoX19taXBzX18pICYmIF9NSVBTX1NJTSA9PSBf TUlQU19TSU1fQUJJMzIpIHx8ICAgICAgICAgICAgICAgICAgIFwKLS0gICAgICBkZWZpbmVkKF9f UFBDX18pIHx8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBcCi0rICAgICAoZGVmaW5lZChfX1BQQ19fKSAmJiAhZGVmaW5lZChfX3Bvd2VycGM2NF9f KSkgfHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKLSAgICAgIChkZWZpbmVkKF9fczM5MF9fKSAmJiAhZGVmaW5lZChfX3MzOTB4X18pKQotICAg ICAvKiBPbiB0aGVzZSBhcmNoaXRlY3R1cmVzLCBpbXBsZW1lbnQgbW1hcCgpIHdpdGggbW1hcDIo KS4gKi8KLSAgICAgTFNTX0lOTElORSB2b2lkKiBMU1NfTkFNRShtbWFwKSh2b2lkICpzLCBzaXpl X3QgbCwgaW50IHAsIGludCBmLCBpbnQgZCwKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvcGZmZnQv c3JjL3BmZmZ0LmMgdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMKLWluZGV4IGJkYWM0ZDc4 NC4uNTFlMGYyY2FjIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3BmZmZ0L3NyYy9wZmZmdC5jCi0r KysgdGhpcmRfcGFydHkvcGZmZnQvc3JjL3BmZmZ0LmMKLUBAIC0xMDAsNiArMTAwLDcgQEAKLSAg ICBBbHRpdmVjIHN1cHBvcnQgbWFjcm9zIAotICovCi0gI2lmICFkZWZpbmVkKFBGRkZUX1NJTURf RElTQUJMRSkgJiYgKGRlZmluZWQoX19wcGNfXykgfHwgZGVmaW5lZChfX3BwYzY0X18pKQotKyNp bmNsdWRlIDxhbHRpdmVjLmg+Ci0gdHlwZWRlZiB2ZWN0b3IgZmxvYXQgdjRzZjsKLSAjICBkZWZp bmUgU0lNRF9TWiA0Ci0gIyAgZGVmaW5lIFZaRVJPKCkgKCh2ZWN0b3IgZmxvYXQpIHZlY19zcGxh dF91OCgwKSkKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NMU3RyaW5n LmNwcCB0aGlyZF9wYXJ0eS9za2lhL3NyYy9za3NsL1NrU0xTdHJpbmcuY3BwCi1pbmRleCA4OGVi MWM3ZC4uNGJlMzNmYTUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvc2tpYS9zcmMvc2tzbC9Ta1NM U3RyaW5nLmNwcAotKysrIHRoaXJkX3BhcnR5L3NraWEvc3JjL3Nrc2wvU2tTTFN0cmluZy5jcHAK LUBAIC0yNDAsNyArMjQwLDEyIEBAIFN0cmluZyB0b19zdHJpbmcoZG91YmxlIHZhbHVlKSB7Ci0g ICAgIGlmIChuZWVkc0RvdFplcm8pIHsKLSAgICAgICAgIGJ1ZmZlciA8PCAiLjAiOwotICAgICB9 Ci0tICAgIHJldHVybiBTdHJpbmcoYnVmZmVyLnN0cigpLmNfc3RyKCkpOwotKwotKyAgICBzdGQ6 OnN0cmluZyByZXQoYnVmZmVyLnN0cigpKTsKLSsgICAgaWYgKHNpZ25iaXQodmFsdWUpICYmIHJl dFswXSA9PSAnLicpIHsKLSsgICAgICAgIHJldFswXSA9ICctJzsKLSsgICAgfQotKyAgICByZXR1 cm4gU3RyaW5nKHJldC5jX3N0cigpKTsKLSB9Ci0gCi0gU0tTTF9JTlQgc3RvaShjb25zdCBTdHJp bmcmIHMpIHsKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb24v c3FsaXRlMy5jIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYwot aW5kZXggMWIyYzJlYzcuLjc1OTNkYmExIDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3NxbGl0ZS9z cmMvYW1hbGdhbWF0aW9uL3NxbGl0ZTMuYwotKysrIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvYW1h bGdhbWF0aW9uL3NxbGl0ZTMuYwotQEAgLTE0NDAwLDcgKzE0NDAwLDggQEAgdHlwZWRlZiBJTlQx Nl9UWVBFIExvZ0VzdDsKLSAjIGlmIGRlZmluZWQoaTM4NikgICAgICB8fCBkZWZpbmVkKF9faTM4 Nl9fKSAgICAgIHx8IGRlZmluZWQoX01fSVg4NikgfHwgICAgXAotICAgICAgZGVmaW5lZChfX3g4 Nl82NCkgIHx8IGRlZmluZWQoX194ODZfNjRfXykgICAgfHwgZGVmaW5lZChfTV9YNjQpICB8fCAg ICBcCi0gICAgICBkZWZpbmVkKF9NX0FNRDY0KSAgfHwgZGVmaW5lZChfTV9BUk0pICAgICAgICB8 fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKLS0gICAgIGRlZmluZWQoX19BUk1FTF9fKSB8fCBk ZWZpbmVkKF9fQUFSQ0g2NEVMX18pIHx8IGRlZmluZWQoX01fQVJNNjQpCi0rICAgICBkZWZpbmVk KF9fQVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0 KSB8fCAgIFwKLSsgICAgIGRlZmluZWQoX19wb3dlcnBjNjRfXykgJiYgKF9fQllURV9PUkRFUl9f ID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQotICMgICBkZWZpbmUgU1FMSVRFX0JZVEVPUkRF UiAgICAxMjM0Ci0gIyBlbGlmIGRlZmluZWQoc3BhcmMpICAgICB8fCBkZWZpbmVkKF9fcHBjX18p IHx8IFwKLSAgICAgICAgZGVmaW5lZChfX0FSTUVCX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUJf XykKLWRpZmYgLS1naXQgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9hbWFsZ2FtYXRpb25fZGV2L3Nx bGl0ZTMuYyB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2FtYWxnYW1hdGlvbl9kZXYvc3FsaXRlMy5j Ci1pbmRleCAxOWM4NzY4OS4uYzdhYjAzOWUgMTAwNjQ0Ci0tLS0gdGhpcmRfcGFydHkvc3FsaXRl L3NyYy9hbWFsZ2FtYXRpb25fZGV2L3NxbGl0ZTMuYwotKysrIHRoaXJkX3BhcnR5L3NxbGl0ZS9z cmMvYW1hbGdhbWF0aW9uX2Rldi9zcWxpdGUzLmMKLUBAIC0xNDQxMyw3ICsxNDQxMyw4IEBAIHR5 cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7Ci0gIyBpZiBkZWZpbmVkKGkzODYpICAgICAgfHwgZGVm aW5lZChfX2kzODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKLSAgICAgIGRl ZmluZWQoX194ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmluZWQoX01f WDY0KSAgfHwgICAgXAotICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQoX01fQVJN KSAgICAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgICBkZWZpbmVkKF9fQVJN RUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KQotKyAg ICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVmaW5l ZChfTV9BUk02NCkgfHwgICBcCi0rICAgICBkZWZpbmVkKF9fcG93ZXJwYzY0X18pICYmIChfX0JZ VEVfT1JERVJfXyA9PSBfX09SREVSX0xJVFRMRV9FTkRJQU5fXykKLSAjICAgZGVmaW5lIFNRTElU RV9CWVRFT1JERVIgICAgMTIzNAotICMgZWxpZiBkZWZpbmVkKHNwYXJjKSAgICAgfHwgZGVmaW5l ZChfX3BwY19fKSB8fCBcCi0gICAgICAgIGRlZmluZWQoX19BUk1FQl9fKSB8fCBkZWZpbmVkKF9f QUFSQ0g2NEVCX18pCi1kaWZmIC0tZ2l0IHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0L3J0cmVl L3J0cmVlLmMgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9leHQvcnRyZWUvcnRyZWUuYwotaW5kZXgg ZWZhZWY4MTMuLjRjZDU3ZDU1IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3NxbGl0ZS9zcmMvZXh0 L3J0cmVlL3J0cmVlLmMKLSsrKyB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL2V4dC9ydHJlZS9ydHJl ZS5jCi1AQCAtNDMyLDcgKzQzMiw3IEBAIHN0cnVjdCBSdHJlZU1hdGNoQXJnIHsKLSAjaWYgZGVm aW5lZChpMzg2KSAgICAgfHwgZGVmaW5lZChfX2kzODZfXykgICB8fCBkZWZpbmVkKF9NX0lYODYp IHx8ICAgIFwKLSAgICAgZGVmaW5lZChfX3g4Nl82NCkgfHwgZGVmaW5lZChfX3g4Nl82NF9fKSB8 fCBkZWZpbmVkKF9NX1g2NCkgIHx8ICAgIFwKLSAgICAgZGVmaW5lZChfTV9BTUQ2NCkgfHwgZGVm aW5lZChfTV9BUk0pICAgICB8fCBkZWZpbmVkKF9feDg2KSAgIHx8ICAgIFwKLS0gICAgZGVmaW5l ZChfX2FybV9fKQotKyAgICBkZWZpbmVkKF9fYXJtX18pIHx8IGRlZmluZWQoX19wb3dlcnBjNjRf XykgJiYgKF9fQllURV9PUkRFUl9fID09IF9fT1JERVJfTElUVExFX0VORElBTl9fKQotICMgZGVm aW5lIFNRTElURV9CWVRFT1JERVIgICAgMTIzNAotICNlbGlmIGRlZmluZWQoc3BhcmMpICAgIHx8 IGRlZmluZWQoX19wcGNfXykKLSAjIGRlZmluZSBTUUxJVEVfQllURU9SREVSICAgIDQzMjEKLWRp ZmYgLS1naXQgdGhpcmRfcGFydHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmggdGhpcmRfcGFy dHkvc3FsaXRlL3NyYy9zcmMvc3FsaXRlSW50LmgKLWluZGV4IDEyMmUyNmFkLi5lYzIxZGNiNSAx MDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS9zcWxpdGUvc3JjL3NyYy9zcWxpdGVJbnQuaAotKysrIHRo aXJkX3BhcnR5L3NxbGl0ZS9zcmMvc3JjL3NxbGl0ZUludC5oCi1AQCAtODY4LDcgKzg2OCw4IEBA IHR5cGVkZWYgSU5UMTZfVFlQRSBMb2dFc3Q7Ci0gIyBpZiBkZWZpbmVkKGkzODYpICAgICAgfHwg ZGVmaW5lZChfX2kzODZfXykgICAgICB8fCBkZWZpbmVkKF9NX0lYODYpIHx8ICAgIFwKLSAgICAg IGRlZmluZWQoX194ODZfNjQpICB8fCBkZWZpbmVkKF9feDg2XzY0X18pICAgIHx8IGRlZmluZWQo X01fWDY0KSAgfHwgICAgXAotICAgICAgZGVmaW5lZChfTV9BTUQ2NCkgIHx8IGRlZmluZWQoX01f QVJNKSAgICAgICAgfHwgZGVmaW5lZChfX3g4NikgICB8fCAgICBcCi0tICAgICBkZWZpbmVkKF9f QVJNRUxfXykgfHwgZGVmaW5lZChfX0FBUkNINjRFTF9fKSB8fCBkZWZpbmVkKF9NX0FSTTY0KQot KyAgICAgZGVmaW5lZChfX0FSTUVMX18pIHx8IGRlZmluZWQoX19BQVJDSDY0RUxfXykgfHwgZGVm aW5lZChfTV9BUk02NCkgfHwgXAotKyAgICAgZGVmaW5lZChfX3Bvd2VycGM2NF9fKSAmJiAoX19C WVRFX09SREVSX18gPT0gX19PUkRFUl9MSVRUTEVfRU5ESUFOX18pCi0gIyAgIGRlZmluZSBTUUxJ VEVfQllURU9SREVSICAgIDEyMzQKLSAjIGVsaWYgZGVmaW5lZChzcGFyYykgICAgIHx8IGRlZmlu ZWQoX19wcGNfXykgfHwgXAotICAgICAgICBkZWZpbmVkKF9fQVJNRUJfXykgfHwgZGVmaW5lZChf X0FBUkNINjRFQl9fKQotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNr dG9wX2NhcHR1cmUvZGlmZmVyX2Jsb2NrLmNjIHRoaXJkX3BhcnR5L3dlYnJ0Yy9tb2R1bGVzL2Rl c2t0b3BfY2FwdHVyZS9kaWZmZXJfYmxvY2suY2MKLWluZGV4IGRkOWFiNDU3Li5jMDA1ZDk1OSAx MDA2NDQKLS0tLSB0aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvZGlm ZmVyX2Jsb2NrLmNjLm9yaWcJMjAyMC0xMS0xNyAxMzo0MjowMi4wMDAwMDAwMDAgLTA1MDAKLSsr KyB0aGlyZF9wYXJ0eS93ZWJydGMvbW9kdWxlcy9kZXNrdG9wX2NhcHR1cmUvZGlmZmVyX2Jsb2Nr LmNjCTIwMjAtMTEtMTggMjE6MTE6MDMuMDM5OTA1MzYwIC0wNTAwCi1AQCAtMzAsMTEgKzMwLDcg QEAKLSAgIHN0YXRpYyBib29sICgqZGlmZl9wcm9jKShjb25zdCB1aW50OF90KiwgY29uc3QgdWlu dDhfdCopID0gbnVsbHB0cjsKLSAKLSAgIGlmICghZGlmZl9wcm9jKSB7Ci0tI2lmIGRlZmluZWQo V0VCUlRDX0FSQ0hfQVJNX0ZBTUlMWSkgfHwgZGVmaW5lZChXRUJSVENfQVJDSF9NSVBTX0ZBTUlM WSkKLS0gICAgLy8gRm9yIEFSTSBhbmQgTUlQUyBwcm9jZXNzb3JzLCBhbHdheXMgdXNlIEMgdmVy c2lvbi4KLS0gICAgLy8gVE9ETyhoY2xhbSk6IEltcGxlbWVudCBhIE5FT04gdmVyc2lvbi4KLS0g ICAgZGlmZl9wcm9jID0gJlZlY3RvckRpZmZlcmVuY2VfQzsKLS0jZWxzZQotKyNpZiBkZWZpbmVk KFdFQlJUQ19BUkNIX1g4Nl9GQU1JTFkpCi0gICAgIGJvb2wgaGF2ZV9zc2UyID0gR2V0Q1BVSW5m byhrU1NFMikgIT0gMDsKLSAgICAgLy8gRm9yIHg4NiBwcm9jZXNzb3JzLCBjaGVjayBpZiBTU0Uy IGlzIHN1cHBvcnRlZC4KLSAgICAgaWYgKGhhdmVfc3NlMiAmJiBrQmxvY2tTaXplID09IDMyKSB7 Ci1AQCAtNDQsNiArNDAsMTAgQEAKLSAgICAgfSBlbHNlIHsKLSAgICAgICBkaWZmX3Byb2MgPSAm VmVjdG9yRGlmZmVyZW5jZV9DOwotICAgICB9Ci0rI2Vsc2UKLSsgICAgLy8gRm9yIG90aGVyIHBy b2Nlc3NvcnMsIGFsd2F5cyB1c2UgQyB2ZXJzaW9uLgotKyAgICAvLyBUT0RPKGhjbGFtKTogSW1w bGVtZW50IGEgTkVPTiB2ZXJzaW9uLgotKyAgICBkaWZmX3Byb2MgPSAmVmVjdG9yRGlmZmVyZW5j ZV9DOwotICNlbmRpZgotICAgfQotIAotZGlmZiAtLWdpdCB0aGlyZF9wYXJ0eS93ZWJydGMvcnRj X2Jhc2Uvc3lzdGVtL2FyY2guaCB0aGlyZF9wYXJ0eS93ZWJydGMvcnRjX2Jhc2Uvc3lzdGVtL2Fy Y2guaAotaW5kZXggZWQyMTZlNjYuLjI1ZDM2YzA3IDEwMDY0NAotLS0tIHRoaXJkX3BhcnR5L3dl YnJ0Yy9ydGNfYmFzZS9zeXN0ZW0vYXJjaC5oCi0rKysgdGhpcmRfcGFydHkvd2VicnRjL3J0Y19i YXNlL3N5c3RlbS9hcmNoLmgKLUBAIC01MCw2ICs1MCwxOCBAQAotICNlbGlmIGRlZmluZWQoX19F TVNDUklQVEVOX18pCi0gI2RlZmluZSBXRUJSVENfQVJDSF8zMl9CSVRTCi0gI2RlZmluZSBXRUJS VENfQVJDSF9MSVRUTEVfRU5ESUFOCi0rI2VsaWYgZGVmaW5lZChfX1BQQ19fKQotKyNkZWZpbmUg V0VCUlRDX0FSQ0hfUFBDX0ZBTUlMWQotKyNpZiBfX0JZVEVfT1JERVJfXyA9PSBfX09SREVSX0xJ VFRMRV9FTkRJQU5fXwotKyNkZWZpbmUgV0VCUlRDX0FSQ0hfTElUVExFX0VORElBTgotKyNlbHNl Ci0rI2RlZmluZSBXRUJSVENfQVJDSF9CSUdfRU5ESUFOCi0rI2VuZGlmCi0rI2lmIGRlZmluZWQo X19MUDY0X18pCi0rI2RlZmluZSBXRUJSVENfQVJDSF82NF9CSVRTCi0rI2Vsc2UKLSsjZGVmaW5l IFdFQlJUQ19BUkNIXzMyX0JJVFMKLSsjZW5kaWYKLSAjZWxzZQotICNlcnJvciBQbGVhc2UgYWRk IHN1cHBvcnQgZm9yIHlvdXIgYXJjaGl0ZWN0dXJlIGluIHJ0Y19iYXNlL3N5c3RlbS9hcmNoLmgK LSAjZW5kaWYKLSBkaWZmIC0tZ2l0IHY4L0JVSUxELmduIHY4L0JVSUxELmduCi1pbmRleCAxNjdl NjM1MDMuLjEyNWM0NDVlYSAxMDA2NDQKLS0tLSB2OC9CVUlMRC5nbgotKysrIHY4L0JVSUxELmdu Ci1AQCAtNjk2LDYgKzY5NiwxMiBAQCBjb25maWcoInRvb2xjaGFpbiIpIHsKLSAgICAgfQotICAg ICBpZiAoaG9zdF9ieXRlb3JkZXIgPT0gImxpdHRsZSIpIHsKLSAgICAgICBkZWZpbmVzICs9IFsg IlY4X1RBUkdFVF9BUkNIX1BQQ19MRSIgXQotKyAgICAgICAgY2ZsYWdzICs9IFsKLSsgICAgICAg ICMgRW5hYmxlIHVzYWdlIG9mIEFsdGlWZWMsIFZTWCwgYW5kIG90aGVyIFBPV0VSOCBhbmQgaGln aGVyIGZlYXR1cmVzCi0rICAgICAgICAiLW1jcHU9cG93ZXI4IiwKLSsgICAgICAgICItbWFsdGl2 ZWMiLAotKyAgICAgICAgIi1tdnN4IiwKLSsgICAgICBdCi0gICAgIH0gZWxzZSBpZiAoaG9zdF9i eXRlb3JkZXIgPT0gImJpZyIpIHsKLSAgICAgICBkZWZpbmVzICs9IFsgIlY4X1RBUkdFVF9BUkNI X1BQQ19CRSIgXQotICAgICAgIGlmIChjdXJyZW50X29zID09ICJhaXgiKSB7Ci1kaWZmIC0tZ2l0 IHVpL2dsL2ZlYXR1cmVzLmduaSB1aS9nbC9mZWF0dXJlcy5nbmkKLWluZGV4IGNiMmM5ODY0OS4u NWUwOWJjMWY3IDEwMDY0NAotLS0tIHVpL2dsL2ZlYXR1cmVzLmduaQotKysrIHVpL2dsL2ZlYXR1 cmVzLmduaQotQEAgLTI1LDUgKzI1LDYgQEAgZGVjbGFyZV9hcmdzKCkgewotICAgICAgICAgICAg ICAgICAgICAgICAgIGlzX2Nocm9tZW9zIHx8IGlzX2Z1Y2hzaWEpICYmCi0gICAgICAgICAgICAg ICAgICAgICAgICAodGFyZ2V0X2NwdSA9PSAieDg2IiB8fCB0YXJnZXRfY3B1ID09ICJ4NjQiIHx8 Ci0gICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0X2NwdSA9PSAiYXJtIiB8fCB0YXJnZXRf Y3B1ID09ICJhcm02NCIgfHwKLS0gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXRfY3B1ID09 ICJtaXBzZWwiIHx8IHRhcmdldF9jcHUgPT0gIm1pcHM2NGVsIikKLSsgICAgICAgICAgICAgICAg ICAgICAgICB0YXJnZXRfY3B1ID09ICJtaXBzZWwiIHx8IHRhcmdldF9jcHUgPT0gIm1pcHM2NGVs IiB8fAotKyAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldF9jcHUgPT0gInBwYzY0IikKLSB9 Ci1kaWZmIC0tZ2l0IHY4L3Rlc3QvQlVJTEQuZ24gdjgvdGVzdC9CVUlMRC5nbgotaW5kZXggZjZk MzA1MzdhLi4yODdiMjcwODAgMTAwNjQ0Ci0tLS0gdjgvdGVzdC9CVUlMRC5nbgotKysrIHY4L3Rl c3QvQlVJTEQuZ24KLUBAIC0zMSw3ICszMSw3IEBAIGdyb3VwKCJnbl9hbGwiKSB7Ci0gICAgIGRl cHMgKz0gWwotICAgICAgICJjY3Rlc3Q6Y2N0ZXN0IiwKLSAgICAgICAiY2N0ZXN0OmdlbmVyYXRl LWJ5dGVjb2RlLWV4cGVjdGF0aW9ucyIsCi0tICAgICAgInVuaXR0ZXN0czp1bml0dGVzdHMiLAot KyAgICAgICMidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCi0gICAgIF0KLSAgIH0KLSB9Ci1AQCAtNzMs NyArNzMsNyBAQCBncm91cCgidjhfYm90X2RlZmF1bHQiKSB7Ci0gICAgICJtZXNzYWdlOnY4X21l c3NhZ2UiLAotICAgICAibWpzdW5pdDp2OF9tanN1bml0IiwKLSAgICAgIm1rZ3Jva2R1bXA6bWtn cm9rZHVtcCIsCi0tICAgICJ1bml0dGVzdHM6dW5pdHRlc3RzIiwKLSsgICAgIyJ1bml0dGVzdHM6 dW5pdHRlc3RzIiwKLSAgICAgIndhc20tYXBpLXRlc3RzOndhc21fYXBpX3Rlc3RzIiwKLSAgICAg Indhc20tanM6djhfd2FzbV9qcyIsCi0gICAgICJ3YXNtLXNwZWMtdGVzdHM6djhfd2FzbV9zcGVj X3Rlc3RzIiwKLUBAIC05Myw3ICs5Myw3IEBAIGdyb3VwKCJ2OF9kZWZhdWx0IikgewotICAgICAi bWVzc2FnZTp2OF9tZXNzYWdlIiwKLSAgICAgIm1qc3VuaXQ6djhfbWpzdW5pdCIsCi0gICAgICJt a2dyb2tkdW1wOm1rZ3Jva2R1bXAiLAotLSAgICAidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCi0rICAg ICMidW5pdHRlc3RzOnVuaXR0ZXN0cyIsCi0gICAgICJ3YXNtLWFwaS10ZXN0czp3YXNtX2FwaV90 ZXN0cyIsCi0gICAgICJ3YXNtLWpzOnY4X3dhc21fanMiLAotICAgICAid2FzbS1zcGVjLXRlc3Rz OnY4X3dhc21fc3BlY190ZXN0cyIsCmRpZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBs YXRlIGIvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQppbmRleCAwOThjYjkwNGRhOS4uYzA4Yzlh NjAwNGQgMTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUKKysrIGIvc3JjcGtn cy9jaHJvbWl1bS90ZW1wbGF0ZQpAQCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3Ig J2Nocm9taXVtJwogcGtnbmFtZT1jaHJvbWl1bQogIyBTZWUgaHR0cDovL3d3dy5jaHJvbWl1bS5v cmcvZGV2ZWxvcGVycy9jYWxlbmRhciBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uCi12ZXJzaW9uPTg4 LjAuNDMyNC4xODIKK3ZlcnNpb249ODkuMC40Mzg5LjcyCiByZXZpc2lvbj0xCiBhcmNocz0iaTY4 NiogeDg2XzY0KiBhYXJjaDY0KiBhcm12N2wqIHBwYzY0bGUqIgogc2hvcnRfZGVzYz0iR29vZ2xl J3MgYXR0ZW1wdCBhdCBjcmVhdGluZyBhIHNhZmVyLCBmYXN0ZXIsIGFuZCBtb3JlIHN0YWJsZSBi cm93c2VyIgpAQCAtOSw3ICs5LDcgQEAgbWFpbnRhaW5lcj0iRW5ubyBCb2xhbmQgPGdvdHRveEB2 b2lkbGludXgub3JnPiIKIGxpY2Vuc2U9IkJTRC0zLUNsYXVzZSIKIGhvbWVwYWdlPSJodHRwczov L3d3dy5jaHJvbWl1bS5vcmcvIgogZGlzdGZpbGVzPSJodHRwczovL2NvbW1vbmRhdGFzdG9yYWdl Lmdvb2dsZWFwaXMuY29tL2Nocm9taXVtLWJyb3dzZXItb2ZmaWNpYWwvJHtwa2duYW1lfS0ke3Zl cnNpb259LnRhci54eiIKLWNoZWNrc3VtPTMwNDExZmMzZWMyZDMzZGY0YzVjYWQ0MWYyMWFmZmEz ODIzYzgwZjdkYmQzOTRmNmQ2OGY5YTFlODEwMTViODEKK2NoZWNrc3VtPTk0NmEwYjY1YWFkMTBl MGY3N2E1MzkxMDM4OTIwOTliNzIzODMxMGM3MzNmMjViNDFkNThiNzZmNmFjMGJjNGYKIG5vY3Jv c3M9eWVzCiAKIGxpYjMyZGlzYWJsZWQ9eWVzCkBAIC0zNCw3ICszNCw3IEBAIG1ha2VkZXBlbmRz PSJsaWJwbmctZGV2ZWwgZ3RrKy1kZXZlbCBndGsrMy1kZXZlbCBuc3MtZGV2ZWwgcGNpdXRpbHMt ZGV2ZWwKICBsaWJYY3Vyc29yLWRldmVsIGxpYmZsYWMtZGV2ZWwgc3BlZXgtZGV2ZWwgbGlibXRw LWRldmVsIGxpYndlYnAtZGV2ZWwKICBsaWJqcGVnLXR1cmJvLWRldmVsIGxpYmV2ZW50LWRldmVs IGpzb24tYy1kZXZlbCBoYXJmYnV6ei1kZXZlbAogIG1pbml6aXAtZGV2ZWwganNvbmNwcC1kZXZl bCB6bGliLWRldmVsIGxpYmNhcC1kZXZlbCBsaWJYZGFtYWdlLWRldmVsCi0gcmUyLWRldmVsIGZv bnRjb25maWctZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgb3B1cy1kZXZlbAorIHJlMi1kZXZlbCBmb250 Y29uZmlnLWRldmVsIGZyZWV0eXBlLWRldmVsCiAgZmZtcGVnLWRldmVsIGxpYnZhLWRldmVsIHB5 dGhvbi1zZXR1cHRvb2xzIHhjYi1wcm90bwogICQodm9wdF9pZiBwaXBld2lyZSBsaWJwaXBld2ly ZTAuMi1kZXZlbCkgJCh2b3B0X2lmIHNuZGlvIHNuZGlvLWRldmVsKSIKIGRlcGVuZHM9ImxpYmV4 aWYgaHdpZHMgZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3ItaWNvbi10aGVtZSB4ZGctdXRpbHMi CkBAIC0xMTksNiArMTE5LDcgQEAgZG9fY29uZmlndXJlKCkgewogCSMgdXNlX3N5c3RlbV92OD0x CiAJIyB1c2Vfc3lzdGVtX3psaWI9MQogCSMgYnppcDIganNvbmNwcCBtaW5pemlwIHhkZ191dGls cyBzcGVleAorCSMgb3B1cyBmYWlscyBiZWNhdXNlIHRoZSBnZW5lcmF0ZWQgc2hpbSBoZWFkZXIg b3B1cy5oIHRyaWVzIHRvIGluY2x1ZGUgPG9wdXMuaD4KIAlzeXN0ZW09IgogCQlmZm1wZWcKIAkJ ZmxhYwpAQCAtMTMyLDcgKzEzMyw2IEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkJbGlid2VicAogCQls aWJ4bWwKIAkJbGlieHNsdAotCQlvcHVzCiAJCXJlMgogCQlzbmFwcHkKIAkiCg== --===============1169678047103109806==--