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 3210 invoked from network); 10 Jul 2020 23:21:46 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 10 Jul 2020 23:21:46 -0000 Content-Type: multipart/mixed; boundary="===============7881415435978324841==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_chromium=3A_update_to_83=2E0=2E4103=2E116=2E?= To: ml@inbox.vuxu.org From: pbui Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 11 Jul 2020 01:21:45 +0200 List-Id: Message-ID: <20200710232145.sHBxUr2qioySTmkUd5EKtQK5DnugdbsYjtj15arNs5E@z> GitHub notification mails are now in MIME to allow UTF8. --===============7881415435978324841== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgcGJ1aSBhZ2FpbnN0IG1hc3RlciBv biB0aGUgdm9pZC1wYWNrYWdlcyByZXBvc2l0b3J5CgpodHRwczovL2dpdGh1Yi5jb20vcGJ1aS92 b2lkLXBhY2thZ2VzIGNocm9taXVtCmh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQt cGFja2FnZXMvcHVsbC8yMzUxMQoKY2hyb21pdW06IHVwZGF0ZSB0byA4My4wLjQxMDMuMTE2Lgot IEJ1aWx0IGZvciB4ODZfNjQgYW5kIHg4Nl82NC1tdXNsLg0KLSBUZXN0ZWQgb24geDg2XzY0Lg0K DQotIEFkZCBzbmRpbyBidWlsZCBvcHRpb24gZnJvbSAjMjI4ODggDQoNCi0gVHVybiBvbiB2YWFw aSBidWlsZCBvcHRpb24gYnkgZGVmYXVsdC4gIFdpdGggdGhpcyBidWlsZCBvcHRpb24sIHRoZQ0K ICBjaHJvbWl1bSBwYWNrYWdlIG5vdyBzdXBwb3J0cyBWQS1BUEkgZm9yIEludGVsIGFuZCBBTUQg R1BVcy4NCg0KICBIb3dldmVyLCB1c2VycyBtdXN0IG9wdC1pbiB0byBlbmFibGluZyB0aGlzIGZl YXR1cmUgYXQgcnVuLXRpbWUgYnkNCiAgZW5hYmxpbmcgIk92ZXJyaWRlIHNvZnR3YXJlIHJlbmRl cmluZyBsaXN0IiBpbiBjaHJvbWU6Ly9mbGFncyBvciBieQ0KICBwYXNzaW5nIHRoZSAtLWlnbm9y ZS1ncHUtYmxhY2tsaXN0IHRvIGNocm9taXVtLiAgT3RoZXJ3aXNlIHRoaXMNCiAgZmVhdHVyZSBp cyBkaXNhYmxlZCBhbmQgbm90IHVzZWQuDQoNCiAgVGhpcyBoYXMgYmVlbiB0ZXN0ZWQgd2l0aCBZ b3VUdWJlIG9uIG11bHRpcGxlIG1hY2hpbmVzIHdpdGggSW50ZWwgR1BVcy4NCg0KLSBBbHNvIHVw ZGF0ZSBjaHJvbWl1bS13aWRldmluZS4KCkEgcGF0Y2ggZmlsZSBmcm9tIGh0dHBzOi8vZ2l0aHVi LmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvcHVsbC8yMzUxMS5wYXRjaCBpcyBhdHRhY2hl ZA== --===============7881415435978324841== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-chromium-23511.patch" RnJvbSA0ZDc5MzlmNGNlMDFjN2ZkNjA0MWQzOWNkOWU1OGZhOWNhNzM4YTBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBUYWkgQ2hpIE1pbmggUmFscGggRWFzdHdvb2QgPHRjbXJlYXN0 d29vZEBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTMgSnVuIDIwMjAgMTg6NDg6MjkgKzAyMDAKU3Vi amVjdDogW1BBVENIIDEvM10gY2hyb21pdW06IGFkZCBzbmRpbyBwYXRjaAoKW2NpIHNraXBdCi0t LQogc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL3NuZGlvLnBhdGNoIHwgODg3ICsrKysrKysrKysr KysrKysrKysrKysrKysrKwogc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZSAgICAgICAgICAgIHwg IDIxICstCiAyIGZpbGVzIGNoYW5nZWQsIDkwMiBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygt KQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9zbmRpby5wYXRj aAoKZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9zbmRpby5wYXRjaCBiL3Ny Y3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy9zbmRpby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMC4uNGZlYTkyNmMyMzkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L2Nocm9taXVtL3BhdGNoZXMvc25kaW8ucGF0Y2gKQEAgLTAsMCArMSw4ODcgQEAKK2RpZmYgLU5h dXIgY2hyb21pdW0tODMuMC40MTAzLjk3Lm9yaWcvbWVkaWEvQlVJTEQuZ24gY2hyb21pdW0tODMu MC40MTAzLjk3L21lZGlhL0JVSUxELmduCistLS0gbWVkaWEvQlVJTEQuZ24ub3JpZwkyMDIwLTA2 LTAzIDIwOjQwOjI2LjAwMDAwMDAwMCArMDIwMAorKysrIG1lZGlhL0JVSUxELmduCTIwMjAtMDYt MTMgMTc6MzI6MjguNTEwMzk1OTc1ICswMjAwCitAQCAtNjUsNiArNjUsOSBAQAorICAgICAgIGRl ZmluZXMgKz0gWyAiRExPUEVOX1BVTFNFQVVESU8iIF0KKyAgICAgfQorICAgfQorKyAgaWYgKHVz ZV9zbmRpbykgeworKyAgICBkZWZpbmVzICs9IFsgIlVTRV9TTkRJTyIgXQorKyAgfQorICAgaWYg KHVzZV9jcmFzKSB7CisgICAgIGRlZmluZXMgKz0gWyAiVVNFX0NSQVMiIF0KKyAgIH0KK2RpZmYg LU5hdXIgY2hyb21pdW0tODMuMC40MTAzLjk3Lm9yaWcvbWVkaWEvYXVkaW8vQlVJTEQuZ24gY2hy b21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1ZGlvL0JVSUxELmduCistLS0gbWVkaWEvYXVkaW8v QlVJTEQuZ24ub3JpZwkyMDIwLTA2LTAzIDIwOjM5OjM3LjAwMDAwMDAwMCArMDIwMAorKysrIG1l ZGlhL2F1ZGlvL0JVSUxELmduCTIwMjAtMDYtMTMgMTc6MzI6MjguNTExMzk1OTY5ICswMjAwCitA QCAtMjM2LDYgKzIzNiwxNyBAQAorICAgICBzb3VyY2VzICs9IFsgImxpbnV4L2F1ZGlvX21hbmFn ZXJfbGludXguY2MiIF0KKyAgIH0KKyAKKysgIGlmICh1c2Vfc25kaW8pIHsKKysgICAgbGlicyAr PSBbICJzbmRpbyIgXQorKyAgICBzb3VyY2VzICs9IFsKKysgICAgICAic25kaW8vYXVkaW9fbWFu YWdlcl9zbmRpby5jYyIsCisrICAgICAgInNuZGlvL3NuZGlvX2lucHV0LmNjIiwKKysgICAgICAi c25kaW8vc25kaW9faW5wdXQuaCIsCisrICAgICAgInNuZGlvL3NuZGlvX291dHB1dC5jYyIsCisr ICAgICAgInNuZGlvL3NuZGlvX291dHB1dC5oIgorKyAgICBdCisrICB9CisrCisgICBpZiAodXNl X2Fsc2EpIHsKKyAgICAgbGlicyArPSBbICJhc291bmQiIF0KKyAgICAgc291cmNlcyArPSBbCitk aWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1ZGlvL2xpbnV4L2F1 ZGlvX21hbmFnZXJfbGludXguY2MgY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1ZGlvL2xp bnV4L2F1ZGlvX21hbmFnZXJfbGludXguY2MKKy0tLSBtZWRpYS9hdWRpby9saW51eC9hdWRpb19t YW5hZ2VyX2xpbnV4LmNjLm9yaWcJMjAyMC0wNi0wMyAyMDozOTozNy4wMDAwMDAwMDAgKzAyMDAK KysrKyBtZWRpYS9hdWRpby9saW51eC9hdWRpb19tYW5hZ2VyX2xpbnV4LmNjCTIwMjAtMDYtMTMg MTg6MDk6NDMuNjIzMzMzMTY3ICswMjAwCitAQCAtMTksNiArMTksMTEgQEAKKyAjaW5jbHVkZSAi bWVkaWEvYXVkaW8vcHVsc2UvYXVkaW9fbWFuYWdlcl9wdWxzZS5oIgorICNpbmNsdWRlICJtZWRp YS9hdWRpby9wdWxzZS9wdWxzZV91dGlsLmgiCisgI2VuZGlmCisrI2lmIGRlZmluZWQoVVNFX1NO RElPKQorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgi CisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmgiCisrI2luY2x1ZGUg Im1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oIgorKyNlbmRpZgorIAorIG5hbWVzcGFj ZSBtZWRpYSB7CisgCitAQCAtMjYsNyArMzEsOCBAQAorICAga1B1bHNlLAorICAga0Fsc2EsCisg ICBrQ3JhcywKKy0gIGtBdWRpb0lPTWF4ID0ga0NyYXMgIC8vIE11c3QgYWx3YXlzIGJlIGVxdWFs IHRvIGxhcmdlc3QgbG9nZ2VkIGVudHJ5LgorKyAga1NuZGlvLAorKyAga0F1ZGlvSU9NYXggPSBr U25kaW8gLy8gTXVzdCBhbHdheXMgYmUgZXF1YWwgdG8gbGFyZ2VzdCBsb2dnZWQgZW50cnkuCisg fTsKKyAKKyBzdGQ6OnVuaXF1ZV9wdHI8bWVkaWE6OkF1ZGlvTWFuYWdlcj4gQ3JlYXRlQXVkaW9N YW5hZ2VyKAorQEAgLTM5LDYgKzQ1LDE2IEBACisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0b3J5KTsKKyAgIH0KKyAKKysjaWYgZGVm aW5lZChVU0VfU05ESU8pCisrICBzdHJ1Y3Qgc2lvX2hkbCAqaGRsID0gc2lvX29wZW4oU0lPX0RF VkFOWSwgU0lPX1BMQVksIDApOworKyAgaWYgKGhkbCAhPSBOVUxMKSB7CisrICAgIHNpb19jbG9z ZShoZGwpOworKyAgICBVTUFfSElTVE9HUkFNX0VOVU1FUkFUSU9OKCJNZWRpYS5MaW51eEF1ZGlv SU8iLCBrU25kaW8sIGtBdWRpb0lPTWF4ICsgMSk7CisrICAgIHJldHVybiBzdGQ6Om1ha2VfdW5p cXVlPEF1ZGlvTWFuYWdlclNuZGlvPihzdGQ6Om1vdmUoYXVkaW9fdGhyZWFkKSwKKysgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1ZGlvX2xvZ19mYWN0 b3J5KTsKKysgIH0KKysjZW5kaWYKKysKKyAjaWYgZGVmaW5lZChVU0VfQ1JBUykKKyAgIGlmIChi YXNlOjpDb21tYW5kTGluZTo6Rm9yQ3VycmVudFByb2Nlc3MoKS0+SGFzU3dpdGNoKHN3aXRjaGVz OjprVXNlQ3JhcykpIHsKKyAgICAgVU1BX0hJU1RPR1JBTV9FTlVNRVJBVElPTigiTWVkaWEuTGlu dXhBdWRpb0lPIiwga0NyYXMsIGtBdWRpb0lPTWF4ICsgMSk7CitkaWZmIC1OYXVyIGNocm9taXVt LTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8u Y2MgY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJf c25kaW8uY2MKKy0tLSBtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmNjLm9y aWcJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKKysrKyBtZWRpYS9hdWRpby9z bmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmNjCTIwMjAtMDYtMTMgMTc6MzI6MjguNTExMzk1OTY5 ICswMjAwCitAQCAtMCwwICsxLDE0OCBAQAorKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hy b21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3Vy Y2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisr Ly8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8v c25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oIgorKworKyNpbmNsdWRlICJiYXNlL21ldHJpY3Mv aGlzdG9ncmFtX21hY3Jvcy5oIgorKyNpbmNsdWRlICJiYXNlL21lbW9yeS9wdHJfdXRpbC5oIgor KyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19kZXZpY2VfZGVzY3JpcHRpb24uaCIKKysjaW5j bHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fb3V0cHV0X2Rpc3BhdGNoZXIuaCIKKysjaW5jbHVkZSAi bWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8v c25kaW8vc25kaW9fb3V0cHV0LmgiCisrI2luY2x1ZGUgIm1lZGlhL2Jhc2UvbGltaXRzLmgiCisr I2luY2x1ZGUgIm1lZGlhL2Jhc2UvbWVkaWFfc3dpdGNoZXMuaCIKKysKKytuYW1lc3BhY2UgbWVk aWEgeworKworKworKy8vIE1heGltdW0gbnVtYmVyIG9mIG91dHB1dCBzdHJlYW1zIHRoYXQgY2Fu IGJlIG9wZW4gc2ltdWx0YW5lb3VzbHkuCisrc3RhdGljIGNvbnN0IGludCBrTWF4T3V0cHV0U3Ry ZWFtcyA9IDQ7CisrCisrLy8gRGVmYXVsdCBzYW1wbGUgcmF0ZSBmb3IgaW5wdXQgYW5kIG91dHB1 dCBzdHJlYW1zLgorK3N0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRTYW1wbGVSYXRlID0gNDgwMDA7 CisrCisrdm9pZCBBZGREZWZhdWx0RGV2aWNlKEF1ZGlvRGV2aWNlTmFtZXMqIGRldmljZV9uYW1l cykgeworKyAgRENIRUNLKGRldmljZV9uYW1lcy0+ZW1wdHkoKSk7CisrICBkZXZpY2VfbmFtZXMt PnB1c2hfZnJvbnQoQXVkaW9EZXZpY2VOYW1lOjpDcmVhdGVEZWZhdWx0KCkpOworK30KKysKKyti b29sIEF1ZGlvTWFuYWdlclNuZGlvOjpIYXNBdWRpb091dHB1dERldmljZXMoKSB7CisrICByZXR1 cm4gdHJ1ZTsKKyt9CisrCisrYm9vbCBBdWRpb01hbmFnZXJTbmRpbzo6SGFzQXVkaW9JbnB1dERl dmljZXMoKSB7CisrICByZXR1cm4gdHJ1ZTsKKyt9CisrCisrdm9pZCBBdWRpb01hbmFnZXJTbmRp bzo6R2V0QXVkaW9JbnB1dERldmljZU5hbWVzKAorKyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZp Y2VfbmFtZXMpIHsKKysgIERDSEVDSyhkZXZpY2VfbmFtZXMtPmVtcHR5KCkpOworKyAgQWRkRGVm YXVsdERldmljZShkZXZpY2VfbmFtZXMpOworK30KKysKKyt2b2lkIEF1ZGlvTWFuYWdlclNuZGlv OjpHZXRBdWRpb091dHB1dERldmljZU5hbWVzKAorKyAgICBBdWRpb0RldmljZU5hbWVzKiBkZXZp Y2VfbmFtZXMpIHsKKysgIEFkZERlZmF1bHREZXZpY2UoZGV2aWNlX25hbWVzKTsKKyt9CisrCisr Y29uc3QgY2hhciogQXVkaW9NYW5hZ2VyU25kaW86OkdldE5hbWUoKSB7CisrICByZXR1cm4gIlNO RElPIjsKKyt9CisrCisrQXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdlclNuZGlvOjpHZXRJbnB1 dFN0cmVhbVBhcmFtZXRlcnMoCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQpIHsK KysgIHN0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRJbnB1dEJ1ZmZlclNpemUgPSAxMDI0OworKwor KyAgaW50IHVzZXJfYnVmZmVyX3NpemUgPSBHZXRVc2VyQnVmZmVyU2l6ZSgpOworKyAgaW50IGJ1 ZmZlcl9zaXplID0gdXNlcl9idWZmZXJfc2l6ZSA/CisrICAgICAgdXNlcl9idWZmZXJfc2l6ZSA6 IGtEZWZhdWx0SW5wdXRCdWZmZXJTaXplOworKworKyAgcmV0dXJuIEF1ZGlvUGFyYW1ldGVycygK KysgICAgICBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgQ0hBTk5FTF9M QVlPVVRfU1RFUkVPLAorKyAgICAgIGtEZWZhdWx0U2FtcGxlUmF0ZSwgYnVmZmVyX3NpemUpOwor K30KKysKKytBdWRpb01hbmFnZXJTbmRpbzo6QXVkaW9NYW5hZ2VyU25kaW8oc3RkOjp1bmlxdWVf cHRyPEF1ZGlvVGhyZWFkPiBhdWRpb190aHJlYWQsCisrICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBBdWRpb0xvZ0ZhY3RvcnkqIGF1ZGlvX2xvZ19mYWN0b3J5KQorKyAg ICA6IEF1ZGlvTWFuYWdlckJhc2Uoc3RkOjptb3ZlKGF1ZGlvX3RocmVhZCksCisrICAgICAgICAg ICAgICAgICAgICAgICBhdWRpb19sb2dfZmFjdG9yeSkgeworKyAgRExPRyhXQVJOSU5HKSA8PCAi QXVkaW9NYW5hZ2VyU25kaW8iOworKyAgU2V0TWF4T3V0cHV0U3RyZWFtc0FsbG93ZWQoa01heE91 dHB1dFN0cmVhbXMpOworK30KKysKKytBdWRpb01hbmFnZXJTbmRpbzo6fkF1ZGlvTWFuYWdlclNu ZGlvKCkgeworKyAgU2h1dGRvd24oKTsKKyt9CisrCisrQXVkaW9PdXRwdXRTdHJlYW0qIEF1ZGlv TWFuYWdlclNuZGlvOjpNYWtlTGluZWFyT3V0cHV0U3RyZWFtKAorKyAgICBjb25zdCBBdWRpb1Bh cmFtZXRlcnMmIHBhcmFtcywKKysgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykg eworKyAgRENIRUNLX0VRKEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiwgcGFyYW1z LmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlT3V0cHV0U3RyZWFtKHBhcmFtcyk7CisrfQorKwor K0F1ZGlvT3V0cHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6TWFrZUxvd0xhdGVuY3lPdXRw dXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICBjb25z dCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2Nh bGxiYWNrKSB7CisrICBETE9HX0lGKEVSUk9SLCAhZGV2aWNlX2lkLmVtcHR5KCkpIDw8ICJOb3Qg aW1wbGVtZW50ZWQhIjsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9M T1dfTEFURU5DWSwgcGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtlT3V0cHV0U3RyZWFt KHBhcmFtcyk7CisrfQorKworK0F1ZGlvSW5wdXRTdHJlYW0qIEF1ZGlvTWFuYWdlclNuZGlvOjpN YWtlTGluZWFySW5wdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1z LAorKyAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkLAorKyAgICBjb25zdCBMb2dDYWxs YmFjayYgbG9nX2NhbGxiYWNrKSB7CisrICBEQ0hFQ0tfRVEoQXVkaW9QYXJhbWV0ZXJzOjpBVURJ T19QQ01fTElORUFSLCBwYXJhbXMuZm9ybWF0KCkpOworKyAgcmV0dXJuIE1ha2VJbnB1dFN0cmVh bShwYXJhbXMpOworK30KKysKKytBdWRpb0lucHV0U3RyZWFtKiBBdWRpb01hbmFnZXJTbmRpbzo6 TWFrZUxvd0xhdGVuY3lJbnB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBw YXJhbXMsCisrICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZpY2VfaWQsCisrICAgIGNvbnN0IExv Z0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIHsKKysgIERDSEVDS19FUShBdWRpb1BhcmFtZXRlcnM6 OkFVRElPX1BDTV9MT1dfTEFURU5DWSwgcGFyYW1zLmZvcm1hdCgpKTsKKysgIHJldHVybiBNYWtl SW5wdXRTdHJlYW0ocGFyYW1zKTsKKyt9CisrCisrQXVkaW9QYXJhbWV0ZXJzIEF1ZGlvTWFuYWdl clNuZGlvOjpHZXRQcmVmZXJyZWRPdXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICBjb25zdCBz dGQ6OnN0cmluZyYgb3V0cHV0X2RldmljZV9pZCwKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJz JiBpbnB1dF9wYXJhbXMpIHsKKysgIC8vIFRPRE8odG9tbWkpOiBTdXBwb3J0IHxvdXRwdXRfZGV2 aWNlX2lkfC4KKysgIERMT0dfSUYoRVJST1IsICFvdXRwdXRfZGV2aWNlX2lkLmVtcHR5KCkpIDw8 ICJOb3QgaW1wbGVtZW50ZWQhIjsKKysgIHN0YXRpYyBjb25zdCBpbnQga0RlZmF1bHRPdXRwdXRC dWZmZXJTaXplID0gMjA0ODsKKysKKysgIENoYW5uZWxMYXlvdXQgY2hhbm5lbF9sYXlvdXQgPSBD SEFOTkVMX0xBWU9VVF9TVEVSRU87CisrICBpbnQgc2FtcGxlX3JhdGUgPSBrRGVmYXVsdFNhbXBs ZVJhdGU7CisrICBpbnQgYnVmZmVyX3NpemUgPSBrRGVmYXVsdE91dHB1dEJ1ZmZlclNpemU7Cisr ICBpZiAoaW5wdXRfcGFyYW1zLklzVmFsaWQoKSkgeworKyAgICBzYW1wbGVfcmF0ZSA9IGlucHV0 X3BhcmFtcy5zYW1wbGVfcmF0ZSgpOworKyAgICBjaGFubmVsX2xheW91dCA9IGlucHV0X3BhcmFt cy5jaGFubmVsX2xheW91dCgpOworKyAgICBidWZmZXJfc2l6ZSA9IHN0ZDo6bWluKGJ1ZmZlcl9z aXplLCBpbnB1dF9wYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKSk7CisrICB9CisrCisrICBpbnQg dXNlcl9idWZmZXJfc2l6ZSA9IEdldFVzZXJCdWZmZXJTaXplKCk7CisrICBpZiAodXNlcl9idWZm ZXJfc2l6ZSkKKysgICAgYnVmZmVyX3NpemUgPSB1c2VyX2J1ZmZlcl9zaXplOworKworKyAgcmV0 dXJuIEF1ZGlvUGFyYW1ldGVycygKKysgICAgICBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9M T1dfTEFURU5DWSwgY2hhbm5lbF9sYXlvdXQsCisrICAgICAgc2FtcGxlX3JhdGUsIGJ1ZmZlcl9z aXplKTsKKyt9CisrCisrQXVkaW9JbnB1dFN0cmVhbSogQXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VJ bnB1dFN0cmVhbSgKKysgICAgY29uc3QgQXVkaW9QYXJhbWV0ZXJzJiBwYXJhbXMpIHsKKysgIERM T0coV0FSTklORykgPDwgIk1ha2VJbnB1dFN0cmVhbSI7CisrICByZXR1cm4gbmV3IFNuZGlvQXVk aW9JbnB1dFN0cmVhbSh0aGlzLAorKyAgICAgICAgICAgICBBdWRpb0RldmljZURlc2NyaXB0aW9u OjprRGVmYXVsdERldmljZUlkLCBwYXJhbXMpOworK30KKysKKytBdWRpb091dHB1dFN0cmVhbSog QXVkaW9NYW5hZ2VyU25kaW86Ok1ha2VPdXRwdXRTdHJlYW0oCisrICAgIGNvbnN0IEF1ZGlvUGFy YW1ldGVycyYgcGFyYW1zKSB7CisrICBETE9HKFdBUk5JTkcpIDw8ICJNYWtlT3V0cHV0U3RyZWFt IjsKKysgIHJldHVybiBuZXcgU25kaW9BdWRpb091dHB1dFN0cmVhbShwYXJhbXMsIHRoaXMpOwor K30KKysKKyt9ICAvLyBuYW1lc3BhY2UgbWVkaWEKK2RpZmYgLU5hdXIgY2hyb21pdW0tODMuMC40 MTAzLjk3Lm9yaWcvbWVkaWEvYXVkaW8vc25kaW8vYXVkaW9fbWFuYWdlcl9zbmRpby5oIGNocm9t aXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgK Ky0tLSBtZWRpYS9hdWRpby9zbmRpby9hdWRpb19tYW5hZ2VyX3NuZGlvLmgub3JpZwkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIG1lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlv X21hbmFnZXJfc25kaW8uaAkyMDIwLTA2LTEzIDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAg LTAsMCArMSw2NSBAQAorKy8vIENvcHlyaWdodCAoYykgMjAxMiBUaGUgQ2hyb21pdW0gQXV0aG9y cy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBn b3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4g dGhlIExJQ0VOU0UgZmlsZS4KKysKKysjaWZuZGVmIE1FRElBX0FVRElPX1NORElPX0FVRElPX01B TkFHRVJfU05ESU9fSF8KKysjZGVmaW5lIE1FRElBX0FVRElPX1NORElPX0FVRElPX01BTkFHRVJf U05ESU9fSF8KKysKKysjaW5jbHVkZSA8c2V0PgorKworKyNpbmNsdWRlICJiYXNlL2NvbXBpbGVy X3NwZWNpZmljLmgiCisrI2luY2x1ZGUgImJhc2UvbWFjcm9zLmgiCisrI2luY2x1ZGUgImJhc2Uv bWVtb3J5L3JlZl9jb3VudGVkLmgiCisrI2luY2x1ZGUgImJhc2UvdGhyZWFkaW5nL3RocmVhZC5o IgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19tYW5hZ2VyX2Jhc2UuaCIKKysKKytuYW1l c3BhY2UgbWVkaWEgeworKworK2NsYXNzIE1FRElBX0VYUE9SVCBBdWRpb01hbmFnZXJTbmRpbyA6 IHB1YmxpYyBBdWRpb01hbmFnZXJCYXNlIHsKKysgcHVibGljOgorKyAgQXVkaW9NYW5hZ2VyU25k aW8oc3RkOjp1bmlxdWVfcHRyPEF1ZGlvVGhyZWFkPiBhdWRpb190aHJlYWQsCisrICAgICAgICAg ICAgICAgICAgIEF1ZGlvTG9nRmFjdG9yeSogYXVkaW9fbG9nX2ZhY3RvcnkpOworKyAgfkF1ZGlv TWFuYWdlclNuZGlvKCkgb3ZlcnJpZGU7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRp b01hbmFnZXIuCisrICBib29sIEhhc0F1ZGlvT3V0cHV0RGV2aWNlcygpIG92ZXJyaWRlOworKyAg Ym9vbCBIYXNBdWRpb0lucHV0RGV2aWNlcygpIG92ZXJyaWRlOworKyAgdm9pZCBHZXRBdWRpb0lu cHV0RGV2aWNlTmFtZXMoQXVkaW9EZXZpY2VOYW1lcyogZGV2aWNlX25hbWVzKSBvdmVycmlkZTsK KysgIHZvaWQgR2V0QXVkaW9PdXRwdXREZXZpY2VOYW1lcyhBdWRpb0RldmljZU5hbWVzKiBkZXZp Y2VfbmFtZXMpIG92ZXJyaWRlOworKyAgQXVkaW9QYXJhbWV0ZXJzIEdldElucHV0U3RyZWFtUGFy YW1ldGVycygKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNlX2lkKSBvdmVycmlkZTsK KysgIGNvbnN0IGNoYXIqIEdldE5hbWUoKSBvdmVycmlkZTsKKysKKysgIC8vIEltcGxlbWVudGF0 aW9uIG9mIEF1ZGlvTWFuYWdlckJhc2UuCisrICBBdWRpb091dHB1dFN0cmVhbSogTWFrZUxpbmVh ck91dHB1dFN0cmVhbSgKKysgICAgICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysg ICAgICBjb25zdCBMb2dDYWxsYmFjayYgbG9nX2NhbGxiYWNrKSBvdmVycmlkZTsKKysgIEF1ZGlv T3V0cHV0U3RyZWFtKiBNYWtlTG93TGF0ZW5jeU91dHB1dFN0cmVhbSgKKysgICAgICBjb25zdCBB dWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICBjb25zdCBzdGQ6OnN0cmluZyYgZGV2aWNl X2lkLAorKyAgICAgIGNvbnN0IExvZ0NhbGxiYWNrJiBsb2dfY2FsbGJhY2spIG92ZXJyaWRlOwor KyAgQXVkaW9JbnB1dFN0cmVhbSogTWFrZUxpbmVhcklucHV0U3RyZWFtKAorKyAgICAgIGNvbnN0 IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBkZXZp Y2VfaWQsCisrICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3ZlcnJpZGU7 CisrICBBdWRpb0lucHV0U3RyZWFtKiBNYWtlTG93TGF0ZW5jeUlucHV0U3RyZWFtKAorKyAgICAg IGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zLAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5n JiBkZXZpY2VfaWQsCisrICAgICAgY29uc3QgTG9nQ2FsbGJhY2smIGxvZ19jYWxsYmFjaykgb3Zl cnJpZGU7CisrCisrIHByb3RlY3RlZDoKKysgIEF1ZGlvUGFyYW1ldGVycyBHZXRQcmVmZXJyZWRP dXRwdXRTdHJlYW1QYXJhbWV0ZXJzKAorKyAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBvdXRwdXRf ZGV2aWNlX2lkLAorKyAgICAgIGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgaW5wdXRfcGFyYW1zKSBv dmVycmlkZTsKKysKKysgcHJpdmF0ZToKKysgIC8vIENhbGxlZCBieSBNYWtlTGluZWFyT3V0cHV0 U3RyZWFtIGFuZCBNYWtlTG93TGF0ZW5jeU91dHB1dFN0cmVhbS4KKysgIEF1ZGlvT3V0cHV0U3Ry ZWFtKiBNYWtlT3V0cHV0U3RyZWFtKGNvbnN0IEF1ZGlvUGFyYW1ldGVycyYgcGFyYW1zKTsKKysg IEF1ZGlvSW5wdXRTdHJlYW0qIE1ha2VJbnB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMm IHBhcmFtcyk7CisrCisrICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oQXVkaW9NYW5hZ2VyU25k aW8pOworK307CisrCisrfSAgLy8gbmFtZXNwYWNlIG1lZGlhCisrCisrI2VuZGlmICAvLyBNRURJ QV9BVURJT19TTkRJT19BVURJT19NQU5BR0VSX1NORElPX0hfCitkaWZmIC1OYXVyIGNocm9taXVt LTgzLjAuNDEwMy45Ny5vcmlnL21lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmNjIGNocm9t aXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5jYworLS0tIG1l ZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX2lucHV0LmNjLm9yaWcJMTk3MC0wMS0wMSAwMTowMDowMC4w MDAwMDAwMDAgKzAxMDAKKysrKyBtZWRpYS9hdWRpby9zbmRpby9zbmRpb19pbnB1dC5jYwkyMDIw LTA2LTEzIDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAgLTAsMCArMSwyMDEgQEAKKysvLyBD b3B5cmlnaHQgMjAxMyBUaGUgQ2hyb21pdW0gQXV0aG9ycy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K KysvLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBs aWNlbnNlIHRoYXQgY2FuIGJlCisrLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KKysKKysj aW5jbHVkZSAiYmFzZS9iaW5kLmgiCisrI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorKyNpbmNs dWRlICJiYXNlL21hY3Jvcy5oIgorKyNpbmNsdWRlICJiYXNlL21lc3NhZ2VfbG9vcC9tZXNzYWdl X2xvb3AuaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb190aW1lc3RhbXBfaGVscGVyLmgi CisrI2luY2x1ZGUgIm1lZGlhL2F1ZGlvL3NuZGlvL2F1ZGlvX21hbmFnZXJfc25kaW8uaCIKKysj aW5jbHVkZSAibWVkaWEvYXVkaW8vYXVkaW9fbWFuYWdlci5oIgorKyNpbmNsdWRlICJtZWRpYS9h dWRpby9zbmRpby9zbmRpb19pbnB1dC5oIgorKworK25hbWVzcGFjZSBtZWRpYSB7CisrCisrc3Rh dGljIGNvbnN0IFNhbXBsZUZvcm1hdCBrU2FtcGxlRm9ybWF0ID0ga1NhbXBsZUZvcm1hdFMxNjsK KysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJn LCBpbnQgZGVsdGEpCisreworKyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKiBzZWxmID0gc3RhdGlj X2Nhc3Q8U25kaW9BdWRpb0lucHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPmh3X2RlbGF5 ICs9IGRlbHRhOworK30KKysKKyt2b2lkICpTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlRocmVhZEVu dHJ5KHZvaWQgKmFyZykgeworKyAgU25kaW9BdWRpb0lucHV0U3RyZWFtKiBzZWxmID0gc3RhdGlj X2Nhc3Q8U25kaW9BdWRpb0lucHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPlRocmVhZExv b3AoKTsKKysgIHJldHVybiBOVUxMOworK30KKysKKytTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OlNu ZGlvQXVkaW9JbnB1dFN0cmVhbShBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyLAorKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6c3RyaW5nJiBk ZXZpY2VfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcykKKysgICAgOiBtYW5hZ2VyKG1hbmFnZXIp LAorKyAgICAgIHBhcmFtcyhwYXJhbXMpLAorKyAgICAgIGF1ZGlvX2J1cyhBdWRpb0J1czo6Q3Jl YXRlKHBhcmFtcykpLAorKyAgICAgIHN0YXRlKGtDbG9zZWQpIHsKKyt9CisrCisrU25kaW9BdWRp b0lucHV0U3RyZWFtOjp+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkgeworKyAgaWYgKHN0YXRlICE9 IGtDbG9zZWQpCisrICAgIENsb3NlKCk7CisrfQorKworK2Jvb2wgU25kaW9BdWRpb0lucHV0U3Ry ZWFtOjpPcGVuKCkgeworKyAgc3RydWN0IHNpb19wYXIgcGFyOworKyAgaW50IHNpZzsKKysKKysg IGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorKyAgICByZXR1cm4gZmFsc2U7CisrCisrICBpZiAocGFy YW1zLmZvcm1hdCgpICE9IEF1ZGlvUGFyYW1ldGVyczo6QVVESU9fUENNX0xJTkVBUiAmJgorKyAg ICAgIHBhcmFtcy5mb3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MT1dfTEFU RU5DWSkgeworKyAgICBMT0coV0FSTklORykgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIGZvcm1hdC4i OworKyAgICByZXR1cm4gZmFsc2U7CisrICB9CisrCisrICBzaW9faW5pdHBhcigmcGFyKTsKKysg IHBhci5yYXRlID0gcGFyYW1zLnNhbXBsZV9yYXRlKCk7CisrICBwYXIucmNoYW4gPSBwYXJhbXMu Y2hhbm5lbHMoKTsKKysgIHBhci5iaXRzID0gU2FtcGxlRm9ybWF0VG9CaXRzUGVyQ2hhbm5lbChr U2FtcGxlRm9ybWF0KTsKKysgIHBhci5icHMgPSBwYXIuYml0cyAvIDg7CisrICBwYXIuc2lnID0g c2lnID0gcGFyLmJpdHMgIT0gOCA/IDEgOiAwOworKyAgcGFyLmxlID0gU0lPX0xFX05BVElWRTsK KysgIHBhci5hcHBidWZzeiA9IHBhcmFtcy5mcmFtZXNfcGVyX2J1ZmZlcigpOworKworKyAgaGRs ID0gc2lvX29wZW4oU0lPX0RFVkFOWSwgU0lPX1JFQywgMCk7CisrCisrICBpZiAoaGRsID09IE5V TEwpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiQ291bGRuJ3Qgb3BlbiBhdWRpbyBkZXZpY2UuIjsK KysgICAgcmV0dXJuIGZhbHNlOworKyAgfQorKworKyAgaWYgKCFzaW9fc2V0cGFyKGhkbCwgJnBh cikgfHwgIXNpb19nZXRwYXIoaGRsLCAmcGFyKSkgeworKyAgICBMT0coRVJST1IpIDw8ICJDb3Vs ZG4ndCBzZXQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0K KysKKysgIGlmIChwYXIucmF0ZSAgIT0gKHVuc2lnbmVkIGludClwYXJhbXMuc2FtcGxlX3JhdGUo KSB8fAorKyAgICAgIHBhci5yY2hhbiAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5jaGFubmVscygp IHx8CisrICAgICAgcGFyLmJpdHMgICE9ICh1bnNpZ25lZCBpbnQpU2FtcGxlRm9ybWF0VG9CaXRz UGVyQ2hhbm5lbChrU2FtcGxlRm9ybWF0KSB8fAorKyAgICAgIHBhci5zaWcgICAhPSAodW5zaWdu ZWQgaW50KXNpZyB8fAorKyAgICAgIChwYXIuYnBzID4gMSAmJiBwYXIubGUgIT0gU0lPX0xFX05B VElWRSkgfHwKKysgICAgICAocGFyLmJpdHMgIT0gcGFyLmJwcyAqIDgpKSB7CisrICAgIExPRyhF UlJPUikgPDwgIlVuc3VwcG9ydGVkIGF1ZGlvIHBhcmFtZXRlcnMuIjsKKysgICAgZ290byBiYWRf Y2xvc2U7CisrICB9CisrICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgYnVmZmVyID0gbmV3IGNoYXJb YXVkaW9fYnVzLT5mcmFtZXMoKSAqIHBhcmFtcy5HZXRCeXRlc1BlckZyYW1lKGtTYW1wbGVGb3Jt YXQpXTsKKysgIHNpb19vbm1vdmUoaGRsLCAmT25Nb3ZlQ2FsbGJhY2ssIHRoaXMpOworKyAgcmV0 dXJuIHRydWU7CisrYmFkX2Nsb3NlOgorKyAgc2lvX2Nsb3NlKGhkbCk7CisrICByZXR1cm4gZmFs c2U7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpTdGFydChBdWRpb0lucHV0 Q2FsbGJhY2sqIGNiKSB7CisrCisrICBTdGFydEFnYygpOworKworKyAgc3RhdGUgPSBrUnVubmlu ZzsKKysgIGh3X2RlbGF5ID0gMDsKKysgIGNhbGxiYWNrID0gY2I7CisrICBzaW9fc3RhcnQoaGRs KTsKKysgIGlmIChwdGhyZWFkX2NyZWF0ZSgmdGhyZWFkLCBOVUxMLCAmVGhyZWFkRW50cnksIHRo aXMpICE9IDApIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiRmFpbGVkIHRvIGNyZWF0ZSByZWFsLXRp bWUgdGhyZWFkIGZvciByZWNvcmRpbmcuIjsKKysgICAgc2lvX3N0b3AoaGRsKTsKKysgICAgc3Rh dGUgPSBrU3RvcHBlZDsKKysgIH0KKyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06 OlN0b3AoKSB7CisrCisrICBpZiAoc3RhdGUgPT0ga1N0b3BwZWQpCisrICAgIHJldHVybjsKKysK KysgIHN0YXRlID0ga1N0b3BXYWl0OworKyAgcHRocmVhZF9qb2luKHRocmVhZCwgTlVMTCk7Cisr ICBzaW9fc3RvcChoZGwpOworKyAgc3RhdGUgPSBrU3RvcHBlZDsKKysKKysgIFN0b3BBZ2MoKTsK Kyt9CisrCisrdm9pZCBTbmRpb0F1ZGlvSW5wdXRTdHJlYW06OkNsb3NlKCkgeworKworKyAgaWYg KHN0YXRlID09IGtDbG9zZWQpCisrICAgIHJldHVybjsKKysKKysgIGlmIChzdGF0ZSA9PSBrUnVu bmluZykKKysgICAgU3RvcCgpOworKworKyAgc3RhdGUgPSBrQ2xvc2VkOworKyAgZGVsZXRlIFtd IGJ1ZmZlcjsKKysgIHNpb19jbG9zZShoZGwpOworKworKyAgbWFuYWdlci0+UmVsZWFzZUlucHV0 U3RyZWFtKHRoaXMpOworK30KKysKKytkb3VibGUgU25kaW9BdWRpb0lucHV0U3RyZWFtOjpHZXRN YXhWb2x1bWUoKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkCisrICByZXR1cm4gMC4wOworK30KKysK Kyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6U2V0Vm9sdW1lKGRvdWJsZSB2b2x1bWUpIHsK KysgIC8vIE5vdCBzdXBwb3J0ZWQuIERvIG5vdGhpbmcuCisrfQorKworK2RvdWJsZSBTbmRpb0F1 ZGlvSW5wdXRTdHJlYW06OkdldFZvbHVtZSgpIHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuCisrICBy ZXR1cm4gMC4wOworK30KKysKKytib29sIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6SXNNdXRlZCgp IHsKKysgIC8vIE5vdCBzdXBwb3J0ZWQuCisrICByZXR1cm4gZmFsc2U7CisrfQorKworK3ZvaWQg U25kaW9BdWRpb0lucHV0U3RyZWFtOjpTZXRPdXRwdXREZXZpY2VGb3JBZWMoCisrICAgIGNvbnN0 IHN0ZDo6c3RyaW5nJiBvdXRwdXRfZGV2aWNlX2lkKSB7CisrICAvLyBOb3Qgc3VwcG9ydGVkLgor K30KKysKKyt2b2lkIFNuZGlvQXVkaW9JbnB1dFN0cmVhbTo6VGhyZWFkTG9vcCh2b2lkKSB7Cisr ICBzaXplX3QgdG9kbywgbjsKKysgIGNoYXIgKmRhdGE7CisrICB1bnNpZ25lZCBpbnQgbmZyYW1l czsKKysgIGRvdWJsZSBub3JtYWxpemVkX3ZvbHVtZSA9IDAuMDsKKysKKysgIG5mcmFtZXMgPSBh dWRpb19idXMtPmZyYW1lcygpOworKworKyAgd2hpbGUgKHN0YXRlID09IGtSdW5uaW5nICYmICFz aW9fZW9mKGhkbCkpIHsKKysKKysgICAgR2V0QWdjVm9sdW1lKCZub3JtYWxpemVkX3ZvbHVtZSk7 CisrCisrICAgIC8vIHJlYWQgb25lIGJsb2NrCisrICAgIHRvZG8gPSBuZnJhbWVzICogcGFyYW1z LkdldEJ5dGVzUGVyRnJhbWUoa1NhbXBsZUZvcm1hdCk7CisrICAgIGRhdGEgPSBidWZmZXI7Cisr ICAgIHdoaWxlICh0b2RvID4gMCkgeworKyAgICAgIG4gPSBzaW9fcmVhZChoZGwsIGRhdGEsIHRv ZG8pOworKyAgICAgIGlmIChuID09IDApCisrICAgICAgICByZXR1cm47CS8vIHVucmVjb3ZlcmFi bGUgSS9PIGVycm9yCisrICAgICAgdG9kbyAtPSBuOworKyAgICAgIGRhdGEgKz0gbjsKKysgICAg fQorKyAgICBod19kZWxheSAtPSBuZnJhbWVzOworKworKyAgICAvLyBjb252ZXJ0IGZyYW1lcyBj b3VudCB0byBUaW1lRGVsdGEKKysgICAgY29uc3QgYmFzZTo6VGltZURlbHRhIGRlbGF5ID0gQXVk aW9UaW1lc3RhbXBIZWxwZXI6OkZyYW1lc1RvVGltZShod19kZWxheSwKKysgICAgICBwYXJhbXMu c2FtcGxlX3JhdGUoKSk7CisrCisrICAgIC8vIHB1c2ggaW50byBidXMKKysgICAgYXVkaW9fYnVz LT5Gcm9tSW50ZXJsZWF2ZWQoYnVmZmVyLCBuZnJhbWVzLCBTYW1wbGVGb3JtYXRUb0J5dGVzUGVy Q2hhbm5lbChrU2FtcGxlRm9ybWF0KSk7CisrCisrICAgIC8vIGludm9rZSBjYWxsYmFjaworKyAg ICBjYWxsYmFjay0+T25EYXRhKGF1ZGlvX2J1cy5nZXQoKSwgYmFzZTo6VGltZVRpY2tzOjpOb3co KSAtIGRlbGF5LCAxLik7CisrICB9CisrfQorKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorZGlm ZiAtTmF1ciBjaHJvbWl1bS04My4wLjQxMDMuOTcub3JpZy9tZWRpYS9hdWRpby9zbmRpby9zbmRp b19pbnB1dC5oIGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19p bnB1dC5oCistLS0gbWVkaWEvYXVkaW8vc25kaW8vc25kaW9faW5wdXQuaC5vcmlnCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCisrKysgbWVkaWEvYXVkaW8vc25kaW8vc25kaW9f aW5wdXQuaAkyMDIwLTA2LTEzIDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAgLTAsMCArMSw5 MSBAQAorKy8vIENvcHlyaWdodCAyMDEzIFRoZSBDaHJvbWl1bSBBdXRob3JzLiBBbGwgcmlnaHRz IHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEg QlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBm aWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KKysjZGVm aW5lIE1FRElBX0FVRElPX1NORElPX1NORElPX0lOUFVUX0hfCisrCisrI2luY2x1ZGUgPHN0ZGlu dC5oPgorKyNpbmNsdWRlIDxzdHJpbmc+CisrI2luY2x1ZGUgPHNuZGlvLmg+CisrCisrI2luY2x1 ZGUgImJhc2UvY29tcGlsZXJfc3BlY2lmaWMuaCIKKysjaW5jbHVkZSAiYmFzZS9tYWNyb3MuaCIK KysjaW5jbHVkZSAiYmFzZS9tZW1vcnkvd2Vha19wdHIuaCIKKysjaW5jbHVkZSAiYmFzZS90aW1l L3RpbWUuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVkaW8vYWdjX2F1ZGlvX3N0cmVhbS5oIgorKyNp bmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19pby5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9h dWRpb19kZXZpY2VfZGVzY3JpcHRpb24uaCIKKysjaW5jbHVkZSAibWVkaWEvYmFzZS9hdWRpb19w YXJhbWV0ZXJzLmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytjbGFzcyBBdWRpb01hbmFn ZXJCYXNlOworKworKy8vIEltcGxlbWVudGF0aW9uIG9mIEF1ZGlvT3V0cHV0U3RyZWFtIHVzaW5n IHNuZGlvKDcpCisrY2xhc3MgU25kaW9BdWRpb0lucHV0U3RyZWFtIDogcHVibGljIEFnY0F1ZGlv U3RyZWFtPEF1ZGlvSW5wdXRTdHJlYW0+IHsKKysgcHVibGljOgorKyAgLy8gUGFzcyB0aGlzIHRv IHRoZSBjb25zdHJ1Y3RvciBpZiB5b3Ugd2FudCB0byBhdHRlbXB0IGF1dG8tc2VsZWN0aW9uCisr ICAvLyBvZiB0aGUgYXVkaW8gcmVjb3JkaW5nIGRldmljZS4KKysgIHN0YXRpYyBjb25zdCBjaGFy IGtBdXRvU2VsZWN0RGV2aWNlW107CisrCisrICAvLyBDcmVhdGUgYSBQQ00gT3V0cHV0IHN0cmVh bSBmb3IgdGhlIFNORElPIGRldmljZSBpZGVudGlmaWVkIGJ5CisrICAvLyB8ZGV2aWNlX25hbWV8 LiBJZiB1bnN1cmUgb2Ygd2hhdCB0byB1c2UgZm9yIHxkZXZpY2VfbmFtZXwsIHVzZQorKyAgLy8g fGtBdXRvU2VsZWN0RGV2aWNlfC4KKysgIFNuZGlvQXVkaW9JbnB1dFN0cmVhbShBdWRpb01hbmFn ZXJCYXNlKiBhdWRpb19tYW5hZ2VyLAorKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0ZDo6 c3RyaW5nJiBkZXZpY2VfbmFtZSwKKysgICAgICAgICAgICAgICAgICAgICBjb25zdCBBdWRpb1Bh cmFtZXRlcnMmIHBhcmFtcyk7CisrCisrICB+U25kaW9BdWRpb0lucHV0U3RyZWFtKCkgb3ZlcnJp ZGU7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb0lucHV0U3RyZWFtLgorKyAgYm9v bCBPcGVuKCkgb3ZlcnJpZGU7CisrICB2b2lkIFN0YXJ0KEF1ZGlvSW5wdXRDYWxsYmFjayogY2Fs bGJhY2spIG92ZXJyaWRlOworKyAgdm9pZCBTdG9wKCkgb3ZlcnJpZGU7CisrICB2b2lkIENsb3Nl KCkgb3ZlcnJpZGU7CisrICBkb3VibGUgR2V0TWF4Vm9sdW1lKCkgb3ZlcnJpZGU7CisrICB2b2lk IFNldFZvbHVtZShkb3VibGUgdm9sdW1lKSBvdmVycmlkZTsKKysgIGRvdWJsZSBHZXRWb2x1bWUo KSBvdmVycmlkZTsKKysgIGJvb2wgSXNNdXRlZCgpIG92ZXJyaWRlOworKyAgdm9pZCBTZXRPdXRw dXREZXZpY2VGb3JBZWMoY29uc3Qgc3RkOjpzdHJpbmcmIG91dHB1dF9kZXZpY2VfaWQpIG92ZXJy aWRlOworKworKyBwcml2YXRlOgorKworKyAgZW51bSBTdHJlYW1TdGF0ZSB7CisrICAgIGtDbG9z ZWQsICAgICAgICAgICAgLy8gTm90IG9wZW5lZCB5ZXQKKysgICAga1N0b3BwZWQsICAgICAgICAg ICAvLyBEZXZpY2Ugb3BlbmVkLCBidXQgbm90IHN0YXJ0ZWQgeWV0CisrICAgIGtSdW5uaW5nLCAg ICAgICAgICAgLy8gU3RhcnRlZCwgZGV2aWNlIHBsYXlpbmcKKysgICAga1N0b3BXYWl0ICAgICAg ICAgICAvLyBTdG9wcGluZywgd2FpdGluZyBmb3IgdGhlIHJlYWwtdGltZSB0aHJlYWQgdG8gZXhp dAorKyAgfTsKKysKKysgIC8vIEMtc3R5bGUgY2FsbC1iYWNrcworKyAgc3RhdGljIHZvaWQgT25N b3ZlQ2FsbGJhY2sodm9pZCAqYXJnLCBpbnQgZGVsdGEpOworKyAgc3RhdGljIHZvaWQqIFRocmVh ZEVudHJ5KHZvaWQgKmFyZyk7CisrCisrICAvLyBDb250aW51b3VzbHkgbW92ZXMgZGF0YSBmcm9t IHRoZSBkZXZpY2UgdG8gdGhlIGNvbnN1bWVyCisrICB2b2lkIFRocmVhZExvb3AoKTsKKysgIC8v IE91ciBjcmVhdG9yLCB0aGUgYXVkaW8gbWFuYWdlciBuZWVkcyB0byBiZSBub3RpZmllZCB3aGVu IHdlIGNsb3NlLgorKyAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcjsKKysgIC8vIFBhcmFtZXRl cnMgb2YgdGhlIHNvdXJjZQorKyAgQXVkaW9QYXJhbWV0ZXJzIHBhcmFtczsKKysgIC8vIFdlIHN0 b3JlIGRhdGEgaGVyZSBmb3IgY29uc3VtZXIKKysgIHN0ZDo6dW5pcXVlX3B0cjxBdWRpb0J1cz4g YXVkaW9fYnVzOworKyAgLy8gQ2FsbC1iYWNrIHRoYXQgY29uc3VtZXMgcmVjb3JkZWQgZGF0YQor KyAgQXVkaW9JbnB1dENhbGxiYWNrKiBjYWxsYmFjazsgIC8vIFZhbGlkIGR1cmluZyBhIHJlY29y ZGluZyBzZXNzaW9uLgorKyAgLy8gSGFuZGxlIG9mIHRoZSBhdWRpbyBkZXZpY2UKKysgIHN0cnVj dCBzaW9faGRsKiBoZGw7CisrICAvLyBDdXJyZW50IHN0YXRlIG9mIHRoZSBzdHJlYW0KKysgIGVu dW0gU3RyZWFtU3RhdGUgc3RhdGU7CisrICAvLyBIaWdoIHByaW9yaXR5IHRocmVhZCBydW5uaW5n IFRocmVhZExvb3AoKQorKyAgcHRocmVhZF90IHRocmVhZDsKKysgIC8vIE51bWJlciBvZiBmcmFt ZXMgYnVmZmVyZWQgaW4gdGhlIGhhcmR3YXJlCisrICBpbnQgaHdfZGVsYXk7CisrICAvLyBUZW1w b3JhcnkgYnVmZmVyIHdoZXJlIGRhdGEgaXMgc3RvcmVkIHNuZGlvLWNvbXBhdGlibGUgZm9ybWF0 CisrICBjaGFyKiBidWZmZXI7CisrCisrICBESVNBTExPV19DT1BZX0FORF9BU1NJR04oU25kaW9B dWRpb0lucHV0U3RyZWFtKTsKKyt9OworKworK30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNl bmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9fU05ESU9fSU5QVVRfSF8KK2RpZmYgLU5hdXIgY2hy b21pdW0tODMuMC40MTAzLjk3Lm9yaWcvbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmNj IGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuY2MK Ky0tLSBtZWRpYS9hdWRpby9zbmRpby9zbmRpb19vdXRwdXQuY2Mub3JpZwkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIG1lZGlhL2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1 dC5jYwkyMDIwLTA2LTEzIDE3OjMyOjI4LjUxMTM5NTk2OSArMDIwMAorQEAgLTAsMCArMSwxODMg QEAKKysvLyBDb3B5cmlnaHQgKGMpIDIwMTIgVGhlIENocm9taXVtIEF1dGhvcnMuIEFsbCByaWdo dHMgcmVzZXJ2ZWQuCisrLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkg YSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorKy8vIGZvdW5kIGluIHRoZSBMSUNFTlNF IGZpbGUuCisrCisrI2luY2x1ZGUgImJhc2UvbG9nZ2luZy5oIgorKyNpbmNsdWRlICJiYXNlL3Rp bWUvdGltZS5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUvZGVmYXVsdF90aWNrX2Nsb2NrLmgiCisr I2luY2x1ZGUgIm1lZGlhL2F1ZGlvL2F1ZGlvX21hbmFnZXJfYmFzZS5oIgorKyNpbmNsdWRlICJt ZWRpYS9iYXNlL2F1ZGlvX3RpbWVzdGFtcF9oZWxwZXIuaCIKKysjaW5jbHVkZSAibWVkaWEvYXVk aW8vc25kaW8vc25kaW9fb3V0cHV0LmgiCisrCisrbmFtZXNwYWNlIG1lZGlhIHsKKysKKytzdGF0 aWMgY29uc3QgU2FtcGxlRm9ybWF0IGtTYW1wbGVGb3JtYXQgPSBrU2FtcGxlRm9ybWF0UzE2Owor KworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6T25Nb3ZlQ2FsbGJhY2sodm9pZCAqYXJn LCBpbnQgZGVsdGEpIHsKKysgIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qIHNlbGYgPSBzdGF0aWNf Y2FzdDxTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKj4oYXJnKTsKKysKKysgIHNlbGYtPmh3X2RlbGF5 IC09IGRlbHRhOworK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9uVm9sQ2Fs bGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKSB7CisrICBTbmRpb0F1ZGlvT3V0cHV0 U3RyZWFtKiBzZWxmID0gc3RhdGljX2Nhc3Q8U25kaW9BdWRpb091dHB1dFN0cmVhbSo+KGFyZyk7 CisrCisrICBzZWxmLT52b2wgPSB2b2w7CisrfQorKworK3ZvaWQgKlNuZGlvQXVkaW9PdXRwdXRT dHJlYW06OlRocmVhZEVudHJ5KHZvaWQgKmFyZykgeworKyAgU25kaW9BdWRpb091dHB1dFN0cmVh bSogc2VsZiA9IHN0YXRpY19jYXN0PFNuZGlvQXVkaW9PdXRwdXRTdHJlYW0qPihhcmcpOworKwor KyAgc2VsZi0+VGhyZWFkTG9vcCgpOworKyAgcmV0dXJuIE5VTEw7CisrfQorKworK1NuZGlvQXVk aW9PdXRwdXRTdHJlYW06OlNuZGlvQXVkaW9PdXRwdXRTdHJlYW0oY29uc3QgQXVkaW9QYXJhbWV0 ZXJzJiBwYXJhbXMsCisrICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBBdWRpb01hbmFnZXJCYXNlKiBtYW5hZ2VyKQorKyAgICA6IG1hbmFnZXIobWFuYWdlciks CisrICAgICAgcGFyYW1zKHBhcmFtcyksCisrICAgICAgYXVkaW9fYnVzKEF1ZGlvQnVzOjpDcmVh dGUocGFyYW1zKSksCisrICAgICAgc3RhdGUoa0Nsb3NlZCksCisrICAgICAgbXV0ZXgoUFRIUkVB RF9NVVRFWF9JTklUSUFMSVpFUikgeworK30KKysKKytTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjp+ U25kaW9BdWRpb091dHB1dFN0cmVhbSgpIHsKKysgIGlmIChzdGF0ZSAhPSBrQ2xvc2VkKQorKyAg ICBDbG9zZSgpOworK30KKysKKytib29sIFNuZGlvQXVkaW9PdXRwdXRTdHJlYW06Ok9wZW4oKSB7 CisrICBzdHJ1Y3Qgc2lvX3BhciBwYXI7CisrICBpbnQgc2lnOworKworKyAgaWYgKHBhcmFtcy5m b3JtYXQoKSAhPSBBdWRpb1BhcmFtZXRlcnM6OkFVRElPX1BDTV9MSU5FQVIgJiYKKysgICAgICBw YXJhbXMuZm9ybWF0KCkgIT0gQXVkaW9QYXJhbWV0ZXJzOjpBVURJT19QQ01fTE9XX0xBVEVOQ1kp IHsKKysgICAgTE9HKFdBUk5JTkcpIDw8ICJVbnN1cHBvcnRlZCBhdWRpbyBmb3JtYXQuIjsKKysg ICAgcmV0dXJuIGZhbHNlOworKyAgfQorKyAgc2lvX2luaXRwYXIoJnBhcik7CisrICBwYXIucmF0 ZSA9IHBhcmFtcy5zYW1wbGVfcmF0ZSgpOworKyAgcGFyLnBjaGFuID0gcGFyYW1zLmNoYW5uZWxz KCk7CisrICBwYXIuYml0cyA9IFNhbXBsZUZvcm1hdFRvQml0c1BlckNoYW5uZWwoa1NhbXBsZUZv cm1hdCk7CisrICBwYXIuYnBzID0gcGFyLmJpdHMgLyA4OworKyAgcGFyLnNpZyA9IHNpZyA9IHBh ci5iaXRzICE9IDggPyAxIDogMDsKKysgIHBhci5sZSA9IFNJT19MRV9OQVRJVkU7CisrICBwYXIu YXBwYnVmc3ogPSBwYXJhbXMuZnJhbWVzX3Blcl9idWZmZXIoKTsKKysKKysgIGhkbCA9IHNpb19v cGVuKFNJT19ERVZBTlksIFNJT19QTEFZLCAwKTsKKysgIGlmIChoZGwgPT0gTlVMTCkgeworKyAg ICBMT0coRVJST1IpIDw8ICJDb3VsZG4ndCBvcGVuIGF1ZGlvIGRldmljZS4iOworKyAgICByZXR1 cm4gZmFsc2U7CisrICB9CisrICBpZiAoIXNpb19zZXRwYXIoaGRsLCAmcGFyKSB8fCAhc2lvX2dl dHBhcihoZGwsICZwYXIpKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkNvdWxkbid0IHNldCBhdWRp byBwYXJhbWV0ZXJzLiI7CisrICAgIGdvdG8gYmFkX2Nsb3NlOworKyAgfQorKyAgaWYgKHBhci5y YXRlICAhPSAodW5zaWduZWQgaW50KXBhcmFtcy5zYW1wbGVfcmF0ZSgpIHx8CisrICAgICAgcGFy LnBjaGFuICE9ICh1bnNpZ25lZCBpbnQpcGFyYW1zLmNoYW5uZWxzKCkgfHwKKysgICAgICBwYXIu Yml0cyAgIT0gKHVuc2lnbmVkIGludClTYW1wbGVGb3JtYXRUb0JpdHNQZXJDaGFubmVsKGtTYW1w bGVGb3JtYXQpIHx8CisrICAgICAgcGFyLnNpZyAgICE9ICh1bnNpZ25lZCBpbnQpc2lnIHx8Cisr ICAgICAgKHBhci5icHMgPiAxICYmIHBhci5sZSAhPSBTSU9fTEVfTkFUSVZFKSB8fAorKyAgICAg IChwYXIuYml0cyAhPSBwYXIuYnBzICogOCkpIHsKKysgICAgTE9HKEVSUk9SKSA8PCAiVW5zdXBw b3J0ZWQgYXVkaW8gcGFyYW1ldGVycy4iOworKyAgICBnb3RvIGJhZF9jbG9zZTsKKysgIH0KKysg IHN0YXRlID0ga1N0b3BwZWQ7CisrICB2b2xwZW5kaW5nID0gMDsKKysgIHZvbCA9IDA7CisrICBi dWZmZXIgPSBuZXcgY2hhclthdWRpb19idXMtPmZyYW1lcygpICogcGFyYW1zLkdldEJ5dGVzUGVy RnJhbWUoa1NhbXBsZUZvcm1hdCldOworKyAgc2lvX29ubW92ZShoZGwsICZPbk1vdmVDYWxsYmFj aywgdGhpcyk7CisrICBzaW9fb252b2woaGRsLCAmT25Wb2xDYWxsYmFjaywgdGhpcyk7CisrICBy ZXR1cm4gdHJ1ZTsKKysgYmFkX2Nsb3NlOgorKyAgc2lvX2Nsb3NlKGhkbCk7CisrICByZXR1cm4g ZmFsc2U7CisrfQorKworK3ZvaWQgU25kaW9BdWRpb091dHB1dFN0cmVhbTo6Q2xvc2UoKSB7Cisr ICBpZiAoc3RhdGUgPT0ga0Nsb3NlZCkKKysgICAgcmV0dXJuOworKyAgaWYgKHN0YXRlID09IGtS dW5uaW5nKQorKyAgICBTdG9wKCk7CisrICBzdGF0ZSA9IGtDbG9zZWQ7CisrICBkZWxldGUgW10g YnVmZmVyOworKyAgc2lvX2Nsb3NlKGhkbCk7CisrICBtYW5hZ2VyLT5SZWxlYXNlT3V0cHV0U3Ry ZWFtKHRoaXMpOyAgLy8gQ2FsbHMgdGhlIGRlc3RydWN0b3IKKyt9CisrCisrdm9pZCBTbmRpb0F1 ZGlvT3V0cHV0U3RyZWFtOjpTdGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFjaykgewor KyAgc3RhdGUgPSBrUnVubmluZzsKKysgIGh3X2RlbGF5ID0gMDsKKysgIHNvdXJjZSA9IGNhbGxi YWNrOworKyAgc2lvX3N0YXJ0KGhkbCk7CisrICBpZiAocHRocmVhZF9jcmVhdGUoJnRocmVhZCwg TlVMTCwgJlRocmVhZEVudHJ5LCB0aGlzKSAhPSAwKSB7CisrICAgIExPRyhFUlJPUikgPDwgIkZh aWxlZCB0byBjcmVhdGUgcmVhbC10aW1lIHRocmVhZC4iOworKyAgICBzaW9fc3RvcChoZGwpOwor KyAgICBzdGF0ZSA9IGtTdG9wcGVkOworKyAgfQorK30KKysKKyt2b2lkIFNuZGlvQXVkaW9PdXRw dXRTdHJlYW06OlN0b3AoKSB7CisrICBpZiAoc3RhdGUgPT0ga1N0b3BwZWQpCisrICAgIHJldHVy bjsKKysgIHN0YXRlID0ga1N0b3BXYWl0OworKyAgcHRocmVhZF9qb2luKHRocmVhZCwgTlVMTCk7 CisrICBzaW9fc3RvcChoZGwpOworKyAgc3RhdGUgPSBrU3RvcHBlZDsKKyt9CisrCisrdm9pZCBT bmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpTZXRWb2x1bWUoZG91YmxlIHYpIHsKKysgIHB0aHJlYWRf bXV0ZXhfbG9jaygmbXV0ZXgpOworKyAgdm9sID0gdiAqIFNJT19NQVhWT0w7CisrICB2b2xwZW5k aW5nID0gMTsKKysgIHB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZtdXRleCk7CisrfQorKworK3ZvaWQg U25kaW9BdWRpb091dHB1dFN0cmVhbTo6R2V0Vm9sdW1lKGRvdWJsZSogdikgeworKyAgcHRocmVh ZF9tdXRleF9sb2NrKCZtdXRleCk7CisrICAqdiA9IHZvbCAqICgxLiAvIFNJT19NQVhWT0wpOwor KyAgcHRocmVhZF9tdXRleF91bmxvY2soJm11dGV4KTsKKyt9CisrCisrLy8gVGhpcyBzdHJlYW0g aXMgYWx3YXlzIHVzZWQgd2l0aCBzdWIgc2Vjb25kIGJ1ZmZlciBzaXplcywgd2hlcmUgaXQncwor Ky8vIHN1ZmZpY2llbnQgdG8gc2ltcGx5IGFsd2F5cyBmbHVzaCB1cG9uIFN0YXJ0KCkuCisrdm9p ZCBTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtOjpGbHVzaCgpIHt9CisrCisrdm9pZCBTbmRpb0F1ZGlv T3V0cHV0U3RyZWFtOjpUaHJlYWRMb29wKHZvaWQpIHsKKysgIGludCBhdmFpbCwgY291bnQsIHJl c3VsdDsKKysKKysgIHdoaWxlIChzdGF0ZSA9PSBrUnVubmluZykgeworKyAgICAvLyBVcGRhdGUg dm9sdW1lIGlmIG5lZWRlZAorKyAgICBwdGhyZWFkX211dGV4X2xvY2soJm11dGV4KTsKKysgICAg aWYgKHZvbHBlbmRpbmcpIHsKKysgICAgICB2b2xwZW5kaW5nID0gMDsKKysgICAgICBzaW9fc2V0 dm9sKGhkbCwgdm9sKTsKKysgICAgfQorKyAgICBwdGhyZWFkX211dGV4X3VubG9jaygmbXV0ZXgp OworKworKyAgICAvLyBHZXQgZGF0YSB0byBwbGF5CisrICAgIGNvbnN0IGJhc2U6OlRpbWVEZWx0 YSBkZWxheSA9IEF1ZGlvVGltZXN0YW1wSGVscGVyOjpGcmFtZXNUb1RpbWUoaHdfZGVsYXksCisr CXBhcmFtcy5zYW1wbGVfcmF0ZSgpKTsKKysgICAgY291bnQgPSBzb3VyY2UtPk9uTW9yZURhdGEo ZGVsYXksIGJhc2U6OlRpbWVUaWNrczo6Tm93KCksIDAsIGF1ZGlvX2J1cy5nZXQoKSk7CisrICAg IGF1ZGlvX2J1cy0+VG9JbnRlcmxlYXZlZChjb3VudCwgU2FtcGxlRm9ybWF0VG9CeXRlc1BlckNo YW5uZWwoa1NhbXBsZUZvcm1hdCksIGJ1ZmZlcik7CisrICAgIGlmIChjb3VudCA9PSAwKSB7Cisr ICAgICAgLy8gV2UgaGF2ZSB0byBzdWJtaXQgc29tZXRoaW5nIHRvIHRoZSBkZXZpY2UKKysgICAg ICBjb3VudCA9IGF1ZGlvX2J1cy0+ZnJhbWVzKCk7CisrICAgICAgbWVtc2V0KGJ1ZmZlciwgMCwg Y291bnQgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KSk7CisrICAgICAg TE9HKFdBUk5JTkcpIDw8ICJObyBkYXRhIHRvIHBsYXksIHJ1bm5pbmcgZW1wdHkgY3ljbGUuIjsK KysgICAgfQorKworKyAgICAvLyBTdWJtaXQgZGF0YSB0byB0aGUgZGV2aWNlCisrICAgIGF2YWls ID0gY291bnQgKiBwYXJhbXMuR2V0Qnl0ZXNQZXJGcmFtZShrU2FtcGxlRm9ybWF0KTsKKysgICAg cmVzdWx0ID0gc2lvX3dyaXRlKGhkbCwgYnVmZmVyLCBhdmFpbCk7CisrICAgIGlmIChyZXN1bHQg PT0gMCkgeworKyAgICAgIExPRyhXQVJOSU5HKSA8PCAiQXVkaW8gZGV2aWNlIGRpc2Nvbm5lY3Rl ZC4iOworKyAgICAgIGJyZWFrOworKyAgICB9CisrCisrICAgIC8vIFVwZGF0ZSBoYXJkd2FyZSBw b2ludGVyCisrICAgIGh3X2RlbGF5ICs9IGNvdW50OworKyAgfQorK30KKysKKyt9ICAvLyBuYW1l c3BhY2UgbWVkaWEKK2RpZmYgLU5hdXIgY2hyb21pdW0tODMuMC40MTAzLjk3Lm9yaWcvbWVkaWEv YXVkaW8vc25kaW8vc25kaW9fb3V0cHV0LmggY2hyb21pdW0tODMuMC40MTAzLjk3L21lZGlhL2F1 ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oCistLS0gbWVkaWEvYXVkaW8vc25kaW8vc25kaW9fb3V0 cHV0Lmgub3JpZwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAorKysrIG1lZGlh L2F1ZGlvL3NuZGlvL3NuZGlvX291dHB1dC5oCTIwMjAtMDYtMTMgMTc6MzI6MjguNTExMzk1OTY5 ICswMjAwCitAQCAtMCwwICsxLDg2IEBACisrLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBDaHJv bWl1bSBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKy8vIFVzZSBvZiB0aGlzIHNvdXJj ZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGEgQlNELXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmUKKysv LyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorKworKyNpZm5kZWYgTUVESUFfQVVESU9fU05E SU9fU05ESU9fT1VUUFVUX0hfCisrI2RlZmluZSBNRURJQV9BVURJT19TTkRJT19TTkRJT19PVVRQ VVRfSF8KKysKKysjaW5jbHVkZSA8cHRocmVhZC5oPgorKyNpbmNsdWRlIDxzbmRpby5oPgorKwor KyNpbmNsdWRlICJiYXNlL3RpbWUvdGlja19jbG9jay5oIgorKyNpbmNsdWRlICJiYXNlL3RpbWUv dGltZS5oIgorKyNpbmNsdWRlICJtZWRpYS9hdWRpby9hdWRpb19pby5oIgorKworK25hbWVzcGFj ZSBtZWRpYSB7CisrCisrY2xhc3MgQXVkaW9NYW5hZ2VyQmFzZTsKKysKKysvLyBJbXBsZW1lbnRh dGlvbiBvZiBBdWRpb091dHB1dFN0cmVhbSB1c2luZyBzbmRpbyg3KQorK2NsYXNzIFNuZGlvQXVk aW9PdXRwdXRTdHJlYW0gOiBwdWJsaWMgQXVkaW9PdXRwdXRTdHJlYW0geworKyBwdWJsaWM6Cisr ICAvLyBUaGUgbWFuYWdlciBpcyBjcmVhdGluZyB0aGlzIG9iamVjdAorKyAgU25kaW9BdWRpb091 dHB1dFN0cmVhbShjb25zdCBBdWRpb1BhcmFtZXRlcnMmIHBhcmFtcywKKysgICAgICAgICAgICAg ICAgICAgICAgICAgQXVkaW9NYW5hZ2VyQmFzZSogbWFuYWdlcik7CisrICB2aXJ0dWFsIH5TbmRp b0F1ZGlvT3V0cHV0U3RyZWFtKCk7CisrCisrICAvLyBJbXBsZW1lbnRhdGlvbiBvZiBBdWRpb091 dHB1dFN0cmVhbS4KKysgIGJvb2wgT3BlbigpIG92ZXJyaWRlOworKyAgdm9pZCBDbG9zZSgpIG92 ZXJyaWRlOworKyAgdm9pZCBTdGFydChBdWRpb1NvdXJjZUNhbGxiYWNrKiBjYWxsYmFjaykgb3Zl cnJpZGU7CisrICB2b2lkIFN0b3AoKSBvdmVycmlkZTsKKysgIHZvaWQgU2V0Vm9sdW1lKGRvdWJs ZSB2b2x1bWUpIG92ZXJyaWRlOworKyAgdm9pZCBHZXRWb2x1bWUoZG91YmxlKiB2b2x1bWUpIG92 ZXJyaWRlOworKyAgdm9pZCBGbHVzaCgpIG92ZXJyaWRlOworKworKyAgZnJpZW5kIHZvaWQgc25k aW9fb25tb3ZlKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysgIGZyaWVuZCB2b2lkIHNuZGlvX29u dm9sKHZvaWQgKmFyZywgdW5zaWduZWQgaW50IHZvbCk7CisrICBmcmllbmQgdm9pZCAqc25kaW9f dGhyZWFkc3RhcnQodm9pZCAqYXJnKTsKKysKKysgcHJpdmF0ZToKKysgIGVudW0gU3RyZWFtU3Rh dGUgeworKyAgICBrQ2xvc2VkLCAgICAgICAgICAgIC8vIE5vdCBvcGVuZWQgeWV0CisrICAgIGtT dG9wcGVkLCAgICAgICAgICAgLy8gRGV2aWNlIG9wZW5lZCwgYnV0IG5vdCBzdGFydGVkIHlldAor KyAgICBrUnVubmluZywgICAgICAgICAgIC8vIFN0YXJ0ZWQsIGRldmljZSBwbGF5aW5nCisrICAg IGtTdG9wV2FpdCAgICAgICAgICAgLy8gU3RvcHBpbmcsIHdhaXRpbmcgZm9yIHRoZSByZWFsLXRp bWUgdGhyZWFkIHRvIGV4aXQKKysgIH07CisrCisrICAvLyBDLXN0eWxlIGNhbGwtYmFja3MKKysg IHN0YXRpYyB2b2lkIE9uTW92ZUNhbGxiYWNrKHZvaWQgKmFyZywgaW50IGRlbHRhKTsKKysgIHN0 YXRpYyB2b2lkIE9uVm9sQ2FsbGJhY2sodm9pZCAqYXJnLCB1bnNpZ25lZCBpbnQgdm9sKTsKKysg IHN0YXRpYyB2b2lkKiBUaHJlYWRFbnRyeSh2b2lkICphcmcpOworKworKyAgLy8gQ29udGludW91 c2x5IG1vdmVzIGRhdGEgZnJvbSB0aGUgcHJvZHVjZXIgdG8gdGhlIGRldmljZQorKyAgdm9pZCBU aHJlYWRMb29wKHZvaWQpOworKworKyAgLy8gT3VyIGNyZWF0b3IsIHRoZSBhdWRpbyBtYW5hZ2Vy IG5lZWRzIHRvIGJlIG5vdGlmaWVkIHdoZW4gd2UgY2xvc2UuCisrICBBdWRpb01hbmFnZXJCYXNl KiBtYW5hZ2VyOworKyAgLy8gUGFyYW1ldGVycyBvZiB0aGUgc291cmNlCisrICBBdWRpb1BhcmFt ZXRlcnMgcGFyYW1zOworKyAgLy8gU291cmNlIHN0b3JlcyBkYXRhIGhlcmUKKysgIHN0ZDo6dW5p cXVlX3B0cjxBdWRpb0J1cz4gYXVkaW9fYnVzOworKyAgLy8gQ2FsbC1iYWNrIHRoYXQgcHJvZHVj ZXMgZGF0YSB0byBwbGF5CisrICBBdWRpb1NvdXJjZUNhbGxiYWNrKiBzb3VyY2U7CisrICAvLyBI YW5kbGUgb2YgdGhlIGF1ZGlvIGRldmljZQorKyAgc3RydWN0IHNpb19oZGwqIGhkbDsKKysgIC8v IEN1cnJlbnQgc3RhdGUgb2YgdGhlIHN0cmVhbQorKyAgZW51bSBTdHJlYW1TdGF0ZSBzdGF0ZTsK KysgIC8vIEhpZ2ggcHJpb3JpdHkgdGhyZWFkIHJ1bm5pbmcgVGhyZWFkTG9vcCgpCisrICBwdGhy ZWFkX3QgdGhyZWFkOworKyAgLy8gUHJvdGVjdHMgdm9sLCB2b2xwZW5kaW5nIGFuZCBod19kZWxh eQorKyAgcHRocmVhZF9tdXRleF90IG11dGV4OworKyAgLy8gQ3VycmVudCB2b2x1bWUgaW4gdGhl IDAuLlNJT19NQVhWT0wgcmFuZ2UKKysgIGludCB2b2w7CisrICAvLyBTZXQgdG8gMSBpZiB2b2x1 bWVzIG11c3QgYmUgcmVmcmVzaGVkIGluIHRoZSByZWFsdGltZSB0aHJlYWQKKysgIGludCB2b2xw ZW5kaW5nOworKyAgLy8gTnVtYmVyIG9mIGZyYW1lcyBidWZmZXJlZCBpbiB0aGUgaGFyZHdhcmUK KysgIGludCBod19kZWxheTsKKysgIC8vIFRlbXBvcmFyeSBidWZmZXIgd2hlcmUgZGF0YSBpcyBz dG9yZWQgc25kaW8tY29tcGF0aWJsZSBmb3JtYXQKKysgIGNoYXIqIGJ1ZmZlcjsKKysKKysgIERJ U0FMTE9XX0NPUFlfQU5EX0FTU0lHTihTbmRpb0F1ZGlvT3V0cHV0U3RyZWFtKTsKKyt9OworKwor K30gIC8vIG5hbWVzcGFjZSBtZWRpYQorKworKyNlbmRpZiAgLy8gTUVESUFfQVVESU9fU05ESU9f U05ESU9fT1VUUFVUX0hfCitkaWZmIC1OYXVyIGNocm9taXVtLTgzLjAuNDEwMy45Ny5vcmlnL21l ZGlhL21lZGlhX29wdGlvbnMuZ25pIGNocm9taXVtLTgzLjAuNDEwMy45Ny9tZWRpYS9tZWRpYV9v cHRpb25zLmduaQorLS0tIG1lZGlhL21lZGlhX29wdGlvbnMuZ25pLm9yaWcJMjAyMC0wNi0wMyAy MDo0MDoyNi4wMDAwMDAwMDAgKzAyMDAKKysrKyBtZWRpYS9tZWRpYV9vcHRpb25zLmduaQkyMDIw LTA2LTEzIDE3OjMyOjI4LjUxMjM5NTk2MyArMDIwMAorQEAgLTExOSw2ICsxMTksOSBAQAorICAg IyBFbmFibGVzIHJ1bnRpbWUgc2VsZWN0aW9uIG9mIEFMU0EgbGlicmFyeSBmb3IgYXVkaW8uCisg ICB1c2VfYWxzYSA9IGZhbHNlCisgCisrICAjIEVuYWJsZSBydW50aW1lIHNlbGVjdGlvbiBvZiBz bmRpbyg3KQorKyAgdXNlX3NuZGlvID0gZmFsc2UKKysKKyAgICMgQWxzYSBzaG91bGQgYmUgdXNl ZCBvbiBub24tQW5kcm9pZCwgbm9uLU1hYyBQT1NJWCBzeXN0ZW1zLgorICAgIyBBbHNhIHNob3Vs ZCBiZSB1c2VkIG9uIGRlc2t0b3AgQ2hyb21lY2FzdCBhbmQgYXVkaW8tb25seSBDaHJvbWVjYXN0 IGJ1aWxkcy4KKyAgIGlmIChpc19wb3NpeCAmJiAhaXNfYW5kcm9pZCAmJiAhaXNfbWFjICYmCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtL3RlbXBsYXRlIGIvc3JjcGtncy9jaHJvbWl1bS90 ZW1wbGF0ZQppbmRleCBhYzgwZjZiNzhmYS4uYTdmZWQ5NDFlZTEgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3MvY2hyb21pdW0vdGVtcGxhdGUKKysrIGIvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQpAQCAt MTUsMTAgKzE1LDEyIEBAIGxpYjMyZGlzYWJsZWQ9eWVzCiBub2RlYnVnPXllcwogbm9waWU9eWVz ICAjIGNvbnRhaW5zIHRvb2xzIHRoYXQgYXJlIG5vdCBQSUUsIGVuYWJsZXMgUElFIGl0c2VsZgog Ci1idWlsZF9vcHRpb25zPSJjbGFuZyBqc19vcHRpbWl6ZSB2YWFwaSIKK2J1aWxkX29wdGlvbnM9 ImNsYW5nIGpzX29wdGltaXplIHZhYXBpIHB1bHNlYXVkaW8gc25kaW8iCiBkZXNjX29wdGlvbl9j bGFuZz0iVXNlIGNsYW5nIHRvIGJ1aWxkIgogZGVzY19vcHRpb25fanNfb3B0aW1pemU9Ik9wdGlt aXplIHRoZSBKUyB1c2VkIGZvciBDaHJvbWl1bSdzIFVJIgogZGVzY19vcHRpb25fdmFhcGk9IkVu YWJsZSBzdXBwb3J0IGZvciBWQS1BUEkiCitkZXNjX29wdGlvbl9wdWxzZWF1ZGlvPSJFbmFibGUg c3VwcG9ydCBmb3IgUHVsc2VBdWRpbyIKK2Rlc2Nfb3B0aW9uX3NuZGlvPSJFbmFibGUgc3VwcG9y dCBmb3Igc25kaW8iCiAKIGhvc3RtYWtlZGVwZW5kcz0iJCh2b3B0X2lmIGNsYW5nIGNsYW5nKSB5 YXNtIHB5dGhvbiBwa2djb25mIHBlcmwgZ3BlcmYgYmlzb24gbmluamEgbm9kZWpzIGh3aWRzCiAg bGliYXRvbWljLWRldmVsIGxpYmV2ZW50LWRldmVsIGxpYmdsaWItZGV2ZWwgJCh2b3B0X2lmIGpz X29wdGltaXplIG9wZW5qZGspIgpAQCAtMjYsMTUgKzI4LDE1IEBAIG1ha2VkZXBlbmRzPSJsaWJw bmctZGV2ZWwgZ3RrKy1kZXZlbCBndGsrMy1kZXZlbCBuc3MtZGV2ZWwgcGNpdXRpbHMtZGV2ZWwK ICBsaWJYaS1kZXZlbCBsaWJnY3J5cHQtZGV2ZWwgbGliZ25vbWUta2V5cmluZy1kZXZlbCBjdXBz LWRldmVsIGVsZnV0aWxzLWRldmVsCiAgbGliWGNvbXBvc2l0ZS1kZXZlbCBzcGVlY2gtZGlzcGF0 Y2hlci1kZXZlbCBsaWJYcmFuZHItZGV2ZWwgbWl0LWtyYjUtZGV2ZWwKICBsaWJYU2NyblNhdmVy LWRldmVsIGFsc2EtbGliLWRldmVsIHNuYXBweS1kZXZlbCBsaWJkcm0tZGV2ZWwKLSBsaWJ4bWwy LWRldmVsIGxpYnhzbHQtZGV2ZWwgcHVsc2VhdWRpby1kZXZlbCBsaWJleGlmLWRldmVsCisgbGli eG1sMi1kZXZlbCBsaWJ4c2x0LWRldmVsICQodm9wdF9pZiBwdWxzZWF1ZGlvIHB1bHNlYXVkaW8t ZGV2ZWwpIGxpYmV4aWYtZGV2ZWwKICBsaWJYY3Vyc29yLWRldmVsIGxpYmZsYWMtZGV2ZWwgc3Bl ZXgtZGV2ZWwgbGlibXRwLWRldmVsIGxpYndlYnAtZGV2ZWwKICBsaWJqcGVnLXR1cmJvLWRldmVs IGxpYmV2ZW50LWRldmVsIGpzb24tYy1kZXZlbCBoYXJmYnV6ei1kZXZlbAogIG1pbml6aXAtZGV2 ZWwganNvbmNwcC1kZXZlbCB6bGliLWRldmVsIGxpYmNhcC1kZXZlbCBsaWJYZGFtYWdlLWRldmVs CiAgcmUyLWRldmVsIGZvbnRjb25maWctZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgb3B1cy1kZXZlbAot IGZmbXBlZy1kZXZlbCBsaWJ2YS1kZXZlbCBweXRob24tc2V0dXB0b29scyIKKyBmZm1wZWctZGV2 ZWwgbGlidmEtZGV2ZWwgcHl0aG9uLXNldHVwdG9vbHMgJCh2b3B0X2lmIHNuZGlvIHNuZGlvLWRl dmVsKSIKIGRlcGVuZHM9ImxpYmV4aWYgaHdpZHMgZGVza3RvcC1maWxlLXV0aWxzIGhpY29sb3It aWNvbi10aGVtZSB4ZGctdXRpbHMiCiAKLWJ1aWxkX29wdGlvbnNfZGVmYXVsdD0iY2xhbmciCiti dWlsZF9vcHRpb25zX2RlZmF1bHQ9ImNsYW5nIHB1bHNlYXVkaW8iCiAKIGNhc2UgIiR7WEJQU19U QVJHRVRfTUFDSElORX0iIGluCiAJeDg2XzY0fGk2ODYpIGJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9 IiBqc19vcHRpbWl6ZSIgOzsKQEAgLTE1NCw3ICsxNTYsNiBAQCBkb19jb25maWd1cmUoKSB7CiAJ CSd1c2VfYWxsb2NhdG9yPSJub25lIicKIAkJJ3VzZV9hbGxvY2F0b3Jfc2hpbT1mYWxzZScKIAkJ J3VzZV9jdXBzPXRydWUnCi0JCSd1c2VfcHVsc2VhdWRpbz10cnVlJwogCQkndXNlX3N5c3Jvb3Q9 ZmFsc2UnCiAJCSd1c2Vfc3lzdGVtX2hhcmZidXp6PXRydWUnCiAJCSdlbmFibGVfd2lkZXZpbmU9 dHJ1ZScKQEAgLTE3MCw2ICsxNzEsMTAgQEAgZG9fY29uZmlndXJlKCkgewogCQkiY2xvc3VyZV9j b21waWxlPSQodm9wdF9pZiBqc19vcHRpbWl6ZSB0cnVlIGZhbHNlKSIKIAkpCiAKKwljb25mKz0o CisJCSJ1c2VfcHVsc2VhdWRpbz0kKHZvcHRfaWYgcHVsc2VhdWRpbyB0cnVlIGZhbHNlKSIKKwkp CisKIAkjIFVzZSBleHBsaWNpdCBsaWJyYXJ5IGRlcGVuZGVuY2llcyBpbnN0ZWFkIG9mIGRsb3Bl bi4KIAkjIEdOIG9ubHkgaGFzICJsaW5rX3B1bHNlYXVkaW8iLCB0aGUgb3RoZXIgb3B0aW9ucyB1 c2VkIGJlZm9yZSBhcmUgbm90IGF2YWlsYWJsZSBhdG0KIAkjIGxpbnV4X2xpbmtfY3Vwcz10cnVl CkBAIC0xNzcsNyArMTgyLDExIEBAIGRvX2NvbmZpZ3VyZSgpIHsKIAkjIGxpbnV4X2xpbmtfbGli cGNpPXRydWUKIAkjIGxpbnV4X2xpbmtfbGlic3BlZWNoZD10cnVlCiAJIyBsaWJzcGVlY2hkX2hf cHJlZml4PVwic3BlZWNoLWRpc3BhdGNoZXIvXCIiCi0JY29uZis9KCAnbGlua19wdWxzZWF1ZGlv PXRydWUnICkKKwljb25mKz0oICJsaW5rX3B1bHNlYXVkaW89JCh2b3B0X2lmIHB1bHNlYXVkaW8g dHJ1ZSBmYWxzZSkiICkKKworCWNvbmYrPSgKKwkJInVzZV9zbmRpbz0kKHZvcHRfaWYgc25kaW8g dHJ1ZSBmYWxzZSkiCisJKQogCiAJIyBOZXZlciB1c2UgYnVuZGxlZCBiaW51dGlscy9nb2xkIGJp bmFyeS4KIAljb25mKz0oCgpGcm9tIDdkM2UyNWM1NjExNTAxN2JlZWQ5ZDc5NGUxODNhMGQ1YTVj ZGM3MjQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBldGVyIEJ1aSA8cGJ1aUBnaXRo dWIuYng2MTIuc3BhY2U+CkRhdGU6IEZyaSwgMTAgSnVsIDIwMjAgMTE6MzQ6MzAgLTA0MDAKU3Vi amVjdDogW1BBVENIIDIvM10gY2hyb21pdW06IHVwZGF0ZSB0byA4My4wLjQxMDMuMTE2LgoKW2Np IHNraXBdCgotIEJ1aWx0IGZvciB4ODZfNjQgYW5kIHg4Nl82NC1tdXNsLgotIFRlc3RlZCBvbiB4 ODZfNjQuCgotIFR1cm4gb24gdmFhcGkgYnVpbGQgb3B0aW9uIGJ5IGRlZmF1bHQuICBXaXRoIHRo aXMgYnVpbGQgb3B0aW9uLCB0aGUKICBjaHJvbWl1bSBwYWNrYWdlIG5vdyBzdXBwb3J0cyBWQS1B UEkgZm9yIEludGVsIGFuZCBBTUQgR1BVcy4KCiAgSG93ZXZlciwgdXNlcnMgbXVzdCBvcHQtaW4g dG8gZW5hYmxpbmcgdGhpcyBmZWF0dXJlIGF0IHJ1bi10aW1lIGJ5CiAgZW5hYmxpbmcgIk92ZXJy aWRlIHNvZnR3YXJlIHJlbmRlcmluZyBsaXN0IiBpbiBjaHJvbWU6Ly9mbGFncyBvciBieQogIHBh c3NpbmcgdGhlIC0taWdub3JlLWdwdS1ibGFja2xpc3QgdG8gY2hyb21pdW0uICBPdGhlcndpc2Ug dGhpcwogIGZlYXR1cmUgaXMgZGlzYWJsZWQgYW5kIG5vdCB1c2VkLgoKICBUaGlzIGhhcyBiZWVu IHRlc3RlZCB3aXRoIFlvdVR1YmUgd2l0aCBtdWx0aXBsZSBJbnRlbCBHUFVzLgoKLSBBZGQgZmZt cGVnIHBhdGNoIHRvIHdvcmthcm91bmQgc29tZSBwcm9ibGVtcyB3aXRoIGZmbXBlZyA0LjM6CiAg aHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTA5 NTk2MgotLS0KIC4uLi9wYXRjaGVzL2Nocm9taXVtLTg0LW1lZGlhYWxsb2MucGF0Y2ggICAgICB8 IDQxICsrKysrKysrKysrKysrKysrKysKIC4uLi9wYXRjaGVzL2Nocm9taXVtLWZpeC12YWFwaS1v bi1pbnRlbC5wYXRjaCB8IDQwICsrKysrKysrKysrKysrKysrKwogLi4uMy1maWxlcy10by1oYXZl LWEtc3RhcnQtdGltZS1vZi16ZXJvLnBhdGNoIHwgMzggKysrKysrKysrKysrKysrKysKIHNyY3Br Z3MvY2hyb21pdW0vdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrLS0KIDQgZmls ZXMgY2hhbmdlZCwgMTIzIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLTg0LW1lZGlhYWxsb2Mu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvY2hyb21p dW0tZml4LXZhYXBpLW9uLWludGVsLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9j aHJvbWl1bS9wYXRjaGVzL3Vwc3RyZWFtLWZvcmNlLW1wMy1maWxlcy10by1oYXZlLWEtc3RhcnQt dGltZS1vZi16ZXJvLnBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVz L2Nocm9taXVtLTg0LW1lZGlhYWxsb2MucGF0Y2ggYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMv Y2hyb21pdW0tODQtbWVkaWFhbGxvYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMC4uMDliNTIxOTFmNGEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9t aXVtL3BhdGNoZXMvY2hyb21pdW0tODQtbWVkaWFhbGxvYy5wYXRjaApAQCAtMCwwICsxLDQxIEBA CitodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD0x MDk1OTYyCisKKy0tLSBtZWRpYS9iYXNlL21lZGlhLmNjCisrKysgbWVkaWEvYmFzZS9tZWRpYS5j YworQEAgLTIsNiArMiw4IEBACisgLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJu ZWQgYnkgYSBCU0Qtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZQorIC8vIGZvdW5kIGluIHRoZSBM SUNFTlNFIGZpbGUuCisgCisrI2luY2x1ZGUgPGxpbWl0cz4KKysKKyAjaW5jbHVkZSAibWVkaWEv YmFzZS9tZWRpYS5oIgorIAorICNpbmNsdWRlICJiYXNlL2FsbG9jYXRvci9idWlsZGZsYWdzLmgi CitAQCAtNDEsNyArNDMsNyBAQAorIAorICNpZiBCVUlMREZMQUcoVVNFX0FMTE9DQVRPUl9TSElN KQorICAgICAvLyBSZW1vdmUgYWxsb2NhdGlvbiBsaW1pdCBmcm9tIGZmbXBlZywgc28gY2FsbHMg Z28gZG93biB0byBzaGltIGxheWVyLgorLSAgICBhdl9tYXhfYWxsb2MoMCk7CisrICAgIGF2X21h eF9hbGxvYyhzdGQ6Om51bWVyaWNfbGltaXRzPHNpemVfdD46Om1heCgpKTsKKyAjZW5kaWYgIC8v IEJVSUxERkxBRyhVU0VfQUxMT0NBVE9SX1NISU0pCisgCisgI2VuZGlmICAvLyBCVUlMREZMQUco RU5BQkxFX0ZGTVBFRykKKy0tLSB0aGlyZF9wYXJ0eS9mZm1wZWcvY2hyb21pdW0vZGxsbWFpbi5j YworKysrIHRoaXJkX3BhcnR5L2ZmbXBlZy9jaHJvbWl1bS9kbGxtYWluLmNjCitAQCAtMyw2ICsz LDcgQEAKKyAvLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgorIAorICNpbmNsdWRlIDxpbnRy aW4uaD4KKysjaW5jbHVkZSA8bGltaXRzPgorICNpbmNsdWRlIDxuZXcuaD4KKyAjaW5jbHVkZSA8 c3RkbGliLmg+CisgI2luY2x1ZGUgPHdpbmRvd3MuaD4KK0BAIC0yOCw3ICsyOSw3IEBACisgICBp ZiAocmVhc29uID09IERMTF9QUk9DRVNTX0FUVEFDSCkgeworICAgICBEaXNhYmxlVGhyZWFkTGli cmFyeUNhbGxzKGluc3RhbmNlKTsKKyAgICAgLy8gUmVtb3ZlIGFsbG9jYXRpb24gbGltaXQgZnJv bSBmZm1wZWcsIHNvIGNhbGxzIGdvIGRvd24gdG8gc2hpbSBsYXllci4KKy0gICAgYXZfbWF4X2Fs bG9jKDApOworKyAgICBhdl9tYXhfYWxsb2Moc3RkOjpudW1lcmljX2xpbWl0czxzaXplX3Q+Ojpt YXgoKSk7CisgICAgIC8vIEVuYWJsZSBPT00gY3Jhc2hlcyBpbiB0aGUgc2hpbSBmb3IgYWxsIG1h bGxvYyBjYWxscyB0aGF0IGZhaWwuCisgICAgIF9zZXRfbmV3X21vZGUoMSk7CisgICAgIF9zZXRf bmV3X2hhbmRsZXIoJk9uTm9NZW1vcnkpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9jaHJvbWl1bS9w YXRjaGVzL2Nocm9taXVtLWZpeC12YWFwaS1vbi1pbnRlbC5wYXRjaCBiL3NyY3BrZ3MvY2hyb21p dW0vcGF0Y2hlcy9jaHJvbWl1bS1maXgtdmFhcGktb24taW50ZWwucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUwMWE2YTk3ZWYwCi0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9jaHJvbWl1bS9wYXRjaGVzL2Nocm9taXVtLWZpeC12YWFwaS1vbi1pbnRlbC5w YXRjaApAQCAtMCwwICsxLDQwIEBACitGcm9tIDlmZjA2NTM2Y2FmN2VhNTFhYWQ5ZmQyYmI2NDlj ODU4ZWFmN2VlODQgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBa2Fyc2hhbiBCaXN3 YXMgPGFrYXJzaGFuYmlzd2FzQGZlZG9yYXByb2plY3Qub3JnPgorRGF0ZTogU2F0LCAyNiBPY3Qg MjAxOSAxMDowNjozMCArMDUzMAorU3ViamVjdDogW1BBVENIXSBNb3ZlIG9mZmVuZGluZyBmdW5j dGlvbiB0byBjaHJvbWVvcyBvbmx5CisKKy0tLSBtZWRpYS9ncHUvdmFhcGkvdmFhcGlfdmlkZW9f ZGVjb2RlX2FjY2VsZXJhdG9yLmNjCisrKysgbWVkaWEvZ3B1L3ZhYXBpL3ZhYXBpX3ZpZGVvX2Rl Y29kZV9hY2NlbGVyYXRvci5jYworQEAgLTY2LDYgKzY2LDcgQEAgdm9pZCBSZXBvcnRUb1VNQShW QVZEQURlY29kZXJGYWlsdXJlIGZhaQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBWQVZE QV9ERUNPREVSX0ZBSUxVUkVTX01BWCArIDEpOworIH0KKyAKKysjaWYgZGVmaW5lZChPU19BTkRS T0lEKSB8fCBkZWZpbmVkKE9TX0NIUk9NRU9TKQorIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgQ1BV IGlzIGFuIEludGVsIEdlbWluaSBMYWtlIG9yIGxhdGVyIChpbmNsdWRpbmcgS2FieQorIC8vIExh a2UpIENwdSBwbGF0Zm9ybSBpZCdzIGFyZSByZWZlcmVuY2VkIGZyb20gdGhlIGZvbGxvd2luZyBm aWxlIGluIGtlcm5lbAorIC8vIHNvdXJjZSBhcmNoL3g4Ni9pbmNsdWRlL2FzbS9pbnRlbC1mYW1p bHkuaAorQEAgLTc4LDYgKzc5LDcgQEAgYm9vbCBJc0dlbWluaUxha2VPckxhdGVyKCkgeworICAg ICAgIGNwdWlkLm1vZGVsKCkgPj0ga0dlbWluaUxha2VNb2RlbElkOworICAgcmV0dXJuIGlzX2dl bWluaWxha2Vfb3JfbGF0ZXI7CisgfQorKyNlbmRpZiAKKyAKKyB9ICAvLyBuYW1lc3BhY2UKKyAK K0BAIC0xMTU1LDYgKzExNTcsOCBAQCBWYWFwaVZpZGVvRGVjb2RlQWNjZWxlcmF0b3I6OkRlY2lk ZUJ1ZmZlCisgICBpZiAob3V0cHV0X21vZGVfID09IFZpZGVvRGVjb2RlQWNjZWxlcmF0b3I6OkNv bmZpZzo6T3V0cHV0TW9kZTo6SU1QT1JUKQorICAgICByZXR1cm4gQnVmZmVyQWxsb2NhdGlvbk1v ZGU6OmtOb3JtYWw7CisgCisrI2lmIGRlZmluZWQoT1NfQU5EUk9JRCkgfHwgZGVmaW5lZChPU19D SFJPTUVPUykKKysgIC8vIE1vdmUgdGhpcyB0byBjaHJvbWVPcyBvbmx5IGFzIGl0IGlzIGNhdXNp bmcgcHJvYmxlbSBpbiBzb21lIGludGVsIGxpbnV4IGRyaXZlcnMKKyAgIC8vIE9uIEdlbWluaSBM YWtlLCBLYWJ5IExha2UgYW5kIGxhdGVyIHdlIGNhbiBwYXNzIHRvIGxpYnZhIHRoZSBjbGllbnQn cworICAgLy8gUGljdHVyZUJ1ZmZlcnMgdG8gZGVjb2RlIG9udG8sIHdoaWNoIHNraXBzIHRoZSB1 c2Ugb2YgdGhlIFZwcCB1bml0IGFuZCBpdHMKKyAgIC8vIGFzc29jaWF0ZWQgZm9ybWF0IHJlY29u Y2lsaWF0aW9uIGNvcHksIGF2b2lkaW5nIGFsbCBpbnRlcm5hbCBidWZmZXIKK0BAIC0xMTcxLDYg KzExNzUsNyBAQCBWYWFwaVZpZGVvRGVjb2RlQWNjZWxlcmF0b3I6OkRlY2lkZUJ1ZmZlCisgICAg ICAgbnVtX2V4dHJhX3BpY3NfID0gMzsKKyAgICAgcmV0dXJuIEJ1ZmZlckFsbG9jYXRpb25Nb2Rl OjprTm9uZTsKKyAgIH0KKysjZW5kaWYgCisgCisgICAvLyBJZiB3ZSdyZSBoZXJlLCB3ZSBoYXZl IHRvIHVzZSB0aGUgVnBwIHVuaXQgYW5kIGFsbG9jYXRlIGJ1ZmZlcnMgZm9yCisgICAvLyB8ZGVj b2Rlcl98OyB1c3VhbGx5IHdlJ2QgaGF2ZSB0byBhbGxvY2F0ZSB0aGUgfGRlY29kZXJffHMKZGlm ZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vcGF0Y2hlcy91cHN0cmVhbS1mb3JjZS1tcDMtZmls ZXMtdG8taGF2ZS1hLXN0YXJ0LXRpbWUtb2YtemVyby5wYXRjaCBiL3NyY3BrZ3MvY2hyb21pdW0v cGF0Y2hlcy91cHN0cmVhbS1mb3JjZS1tcDMtZmlsZXMtdG8taGF2ZS1hLXN0YXJ0LXRpbWUtb2Yt emVyby5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2ZjNDMz ZmFiOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL2Nocm9taXVtL3BhdGNoZXMvdXBzdHJl YW0tZm9yY2UtbXAzLWZpbGVzLXRvLWhhdmUtYS1zdGFydC10aW1lLW9mLXplcm8ucGF0Y2gKQEAg LTAsMCArMSwzOCBAQAorRnJvbSAxOTJmYzM4OTlmNzZlOTQ4N2Q3Nzg5NWYzMWRmOGQyZDEzYmY5 NjE5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogRGFsZSBDdXJ0aXMgPGRhbGVjdXJ0 aXNAY2hyb21pdW0ub3JnPgorRGF0ZTogRnJpLCAyNiBKdW4gMjAyMCAwMToxMDo1NSArMDAwMAor U3ViamVjdDogW1BBVENIXSBGb3JjZSBtcDMgZmlsZXMgdG8gaGF2ZSBhIHN0YXJ0IHRpbWUgb2Yg emVyby4KKworVGhpcyB3aWxsIGFsbG93IHVzIHRvIHJlbW92ZSBvdXIgY3VzdG9tIHBhdGNoIHdo aWNoIGJyZWFrcyB1cHN0cmVhbQorZmZtcGVnIGZ1bmN0aW9uYWxpdHkgZm9yIHVua25vd24gcmVh c29ucy4KKworUj1zYW5kZXJzZAorCitGaXhlZDogMTA2MjAzNworQ2hhbmdlLUlkOiBJMjUzMDEx ODQzZGVlNGRkNmE4Yzk1OGIxNDk5MGFkODM2YTlmMWRjYQorUmV2aWV3ZWQtb246IGh0dHBzOi8v Y2hyb21pdW0tcmV2aWV3Lmdvb2dsZXNvdXJjZS5jb20vYy9jaHJvbWl1bS9zcmMvKy8yMjY4MjIx CitBdXRvLVN1Ym1pdDogRGFsZSBDdXJ0aXMgPGRhbGVjdXJ0aXNAY2hyb21pdW0ub3JnPgorUmV2 aWV3ZWQtYnk6IERhbiBTYW5kZXJzIDxzYW5kZXJzZEBjaHJvbWl1bS5vcmc+CitDb21taXQtUXVl dWU6IERhbGUgQ3VydGlzIDxkYWxlY3VydGlzQGNocm9taXVtLm9yZz4KK0NyLUNvbW1pdC1Qb3Np dGlvbjogcmVmcy9oZWFkcy9tYXN0ZXJAeyM3ODI3OTJ9CistLS0KKyBtZWRpYS9maWx0ZXJzL2Zm bXBlZ19kZW11eGVyLmNjIHwgNiArKysrKysKKyAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25z KCspCisKK2RpZmYgLS1naXQgYS9tZWRpYS9maWx0ZXJzL2ZmbXBlZ19kZW11eGVyLmNjIGIvbWVk aWEvZmlsdGVycy9mZm1wZWdfZGVtdXhlci5jYworaW5kZXggMDEyNjZlMWEwNzIuLmE3ZWQ1NDJi NWZjIDEwMDY0NAorLS0tIG1lZGlhL2ZpbHRlcnMvZmZtcGVnX2RlbXV4ZXIuY2MKKysrKyBtZWRp YS9maWx0ZXJzL2ZmbXBlZ19kZW11eGVyLmNjCitAQCAtMTUyMiw2ICsxNTIyLDEyIEBAIHZvaWQg RkZtcGVnRGVtdXhlcjo6T25GaW5kU3RyZWFtSW5mb0RvbmUoaW50IHJlc3VsdCkgeworICAgaWYg KGdsdWVfLT5jb250YWluZXIoKSA9PSBjb250YWluZXJfbmFtZXM6OkNPTlRBSU5FUl9BVkkpCisg ICAgIGZvcm1hdF9jb250ZXh0LT5mbGFncyB8PSBBVkZNVF9GTEFHX0dFTlBUUzsKKyAKKysgIC8v IEZGbXBlZyB3aWxsIGluY29ycmVjdGx5IGFkanVzdCB0aGUgc3RhcnQgdGltZSBvZiBNUDMgZmls ZXMgaW50byB0aGUgZnV0dXJlCisrICAvLyBiYXNlZCBvbiBkaXNjYXJkIHNhbXBsZXMuIFdlIHdl cmUgdW5hYmxlIHRvIGZpeCB0aGlzIHVwc3RyZWFtIHdpdGhvdXQKKysgIC8vIGJyZWFraW5nIGZm bXBlZyBmdW5jdGlvbmFsaXR5LiBodHRwczovL2NyYnVnLmNvbS8xMDYyMDM3CisrICBpZiAoZ2x1 ZV8tPmNvbnRhaW5lcigpID09IGNvbnRhaW5lcl9uYW1lczo6Q09OVEFJTkVSX01QMykKKysgICAg c3RhcnRfdGltZV8gPSBiYXNlOjpUaW1lRGVsdGEoKTsKKysKKyAgIC8vIEZvciB0ZXN0aW5nIHB1 cnBvc2VzLCBkb24ndCBvdmVyd3JpdGUgdGhlIHRpbWVsaW5lIG9mZnNldCBpZiBzZXQgYWxyZWFk eS4KKyAgIGlmICh0aW1lbGluZV9vZmZzZXRfLmlzX251bGwoKSkgeworICAgICB0aW1lbGluZV9v ZmZzZXRfID0KZGlmZiAtLWdpdCBhL3NyY3BrZ3MvY2hyb21pdW0vdGVtcGxhdGUgYi9zcmNwa2dz L2Nocm9taXVtL3RlbXBsYXRlCmluZGV4IGE3ZmVkOTQxZWUxLi41Mjk1MjI0ZGE4MyAxMDA2NDQK LS0tIGEvc3JjcGtncy9jaHJvbWl1bS90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL2Nocm9taXVtL3Rl bXBsYXRlCkBAIC0xLDE1ICsxLDE1IEBACiAjIFRlbXBsYXRlIGZpbGUgZm9yICdjaHJvbWl1bScK IHBrZ25hbWU9Y2hyb21pdW0KICMgU2VlIGh0dHA6Ly93d3cuY2hyb21pdW0ub3JnL2RldmVsb3Bl cnMvY2FsZW5kYXIgZm9yIHRoZSBsYXRlc3QgdmVyc2lvbgotdmVyc2lvbj04My4wLjQxMDMuMTA2 Ci1yZXZpc2lvbj0yCit2ZXJzaW9uPTgzLjAuNDEwMy4xMTYKK3JldmlzaW9uPTEKIGFyY2hzPSJp Njg2IHg4Nl82NCoiCiBzaG9ydF9kZXNjPSJHb29nbGUncyBhdHRlbXB0IGF0IGNyZWF0aW5nIGEg c2FmZXIsIGZhc3RlciwgYW5kIG1vcmUgc3RhYmxlIGJyb3dzZXIiCiBtYWludGFpbmVyPSJFbm5v IEJvbGFuZCA8Z290dG94QHZvaWRsaW51eC5vcmc+IgogbGljZW5zZT0iQlNELTMtQ2xhdXNlIgog aG9tZXBhZ2U9Imh0dHBzOi8vd3d3LmNocm9taXVtLm9yZy8iCiBkaXN0ZmlsZXM9Imh0dHBzOi8v Y29tbW9uZGF0YXN0b3JhZ2UuZ29vZ2xlYXBpcy5jb20vY2hyb21pdW0tYnJvd3Nlci1vZmZpY2lh bC8ke3BrZ25hbWV9LSR7dmVyc2lvbn0udGFyLnh6IgotY2hlY2tzdW09Y2ZkMTUzYTJlMTBiMGJi MGZiM2I3ZTZiZTU0M2FlZjA5MTUxODFmNWZiZGJlYTg5M2QwODQ2NWFmZDA5N2UyZgorY2hlY2tz dW09YmIwYzdlOGRmZWU5ZjNhNWUzMGVjYTdmMzRmYzlmMjFjYWVmYTgyYTg2YzA1OGM1NTJmNTJi MWFlMmRhMmFjMwogCiBsaWIzMmRpc2FibGVkPXllcwogbm9kZWJ1Zz15ZXMKQEAgLTM2LDcgKzM2 LDcgQEAgbWFrZWRlcGVuZHM9ImxpYnBuZy1kZXZlbCBndGsrLWRldmVsIGd0ayszLWRldmVsIG5z cy1kZXZlbCBwY2l1dGlscy1kZXZlbAogIGZmbXBlZy1kZXZlbCBsaWJ2YS1kZXZlbCBweXRob24t c2V0dXB0b29scyAkKHZvcHRfaWYgc25kaW8gc25kaW8tZGV2ZWwpIgogZGVwZW5kcz0ibGliZXhp ZiBod2lkcyBkZXNrdG9wLWZpbGUtdXRpbHMgaGljb2xvci1pY29uLXRoZW1lIHhkZy11dGlscyIK IAotYnVpbGRfb3B0aW9uc19kZWZhdWx0PSJjbGFuZyBwdWxzZWF1ZGlvIgorYnVpbGRfb3B0aW9u c19kZWZhdWx0PSJjbGFuZyBwdWxzZWF1ZGlvIHZhYXBpIgogCiBjYXNlICIke1hCUFNfVEFSR0VU X01BQ0hJTkV9IiBpbgogCXg4Nl82NHxpNjg2KSBidWlsZF9vcHRpb25zX2RlZmF1bHQrPSIganNf b3B0aW1pemUiIDs7CgpGcm9tIDAzMWVlZDM3MjhiYWUzMTg5ZTZjNDBmYTE4MDY1Mzc1ZTM5Y2Iw OTAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IFBldGVyIEJ1aSA8cGJ1aUBnaXRodWIu Yng2MTIuc3BhY2U+CkRhdGU6IEZyaSwgMTAgSnVsIDIwMjAgMTI6NDQ6MjMgLTA0MDAKU3ViamVj dDogW1BBVENIIDMvM10gY2hyb21pdW0td2lkZXZpbmU6IHVwZGF0ZSB0byA4My4wLjQxMDMuMTE2 LgoKW2NpIHNraXBdCi0tLQogc3JjcGtncy9jaHJvbWl1bS13aWRldmluZS90ZW1wbGF0ZSB8IDQg KystLQogMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL2Nocm9taXVtLXdpZGV2aW5lL3RlbXBsYXRlIGIvc3JjcGtncy9j aHJvbWl1bS13aWRldmluZS90ZW1wbGF0ZQppbmRleCA5YjExOWQ5MDU0OC4uOGEwZTViNzBlYzQg MTAwNjQ0Ci0tLSBhL3NyY3BrZ3MvY2hyb21pdW0td2lkZXZpbmUvdGVtcGxhdGUKKysrIGIvc3Jj cGtncy9jaHJvbWl1bS13aWRldmluZS90ZW1wbGF0ZQpAQCAtNiw3ICs2LDcgQEAgX2Nocm9tZVZl cnNpb249ImN1cnJlbnQiCiBfY2hhbm5lbD0ic3RhYmxlIgogCiBwa2duYW1lPWNocm9taXVtLXdp ZGV2aW5lCi12ZXJzaW9uPTgzLjAuNDEwMy4xMDYKK3ZlcnNpb249ODMuMC40MTAzLjExNgogcmV2 aXNpb249MQogYXJjaHM9Ing4Nl82NCIKIGNyZWF0ZV93cmtzcmM9eWVzCkBAIC0xNyw3ICsxNyw3 IEBAIGRlcGVuZHM9ImNocm9taXVtIGJpbnV0aWxzIHh6IgogaG9tZXBhZ2U9Imh0dHBzOi8vd3d3 Lmdvb2dsZS5jb20vY2hyb21lIgogcmVwb3NpdG9yeT1ub25mcmVlCiBkaXN0ZmlsZXM9Imh0dHBz Oi8vZGwuZ29vZ2xlLmNvbS9saW51eC9kaXJlY3QvZ29vZ2xlLWNocm9tZS0ke19jaGFubmVsfV8k e19jaHJvbWVWZXJzaW9ufV9hbWQ2NC5kZWIiCi1jaGVja3N1bT1jNmRlM2U0YmQ2YmVmNDkzZWJj MTYyNmM0NDkyMjk4NDg4MWQ2NWJkMmZlNjdlMDUzNGZhMzMwNjdjYzkxMjAyCitjaGVja3N1bT04 NjFjYzljMGNhODQ3MWY4NzVlMzQxM2E4MjU1YzI3N2MwNzRkMWEyODA2NDAwMmZiNjk0Njk1MDk2 ZDhmZWJkCiAKIGRvX2V4dHJhY3QoKSB7CiAJOgo= --===============7881415435978324841==--