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 25907 invoked from network); 15 Jan 2022 17:10:13 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 15 Jan 2022 17:10:13 -0000 Content-Type: multipart/mixed; boundary="===============4180376067331351581==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=5D_=5BWIP=5D_New_package=3A_openjdk17-17=2E0=2E1+12?= To: ml@inbox.vuxu.org From: classabbyamp Reply-to: ml@inbox.vuxu.org In-Reply-To: References: Date: Sat, 15 Jan 2022 18:10:13 +0100 List-Id: Message-ID: <20220115171013.SY0bo_MIsRxlFOu9wij1OBZEPdjASHAMjJdXb5_Leto@z> GitHub notification mails are now in MIME to allow UTF8. --===============4180376067331351581== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgY2xhc3NhYmJ5YW1wIGFnYWluc3Qg bWFzdGVyIG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNv bS9jbGFzc2FiYnlhbXAvdm9pZC1wYWNrYWdlcyBvcGVuamRrMTcKaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM0OTg5CgpbV0lQXSBOZXcgcGFja2FnZTog b3BlbmpkazE3LTE3LjAuMSsxMgo8IS0tIFVuY29tbWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQg ZGVsZXRlIG9wdGlvbnMgd2hpY2ggYXJlIG5vdCBhcHBsaWNhYmxlIC0tPg0KDQpCdWlsdCB1cG9u IHRoZSB3b3JrIG9mIEBzZ24gYW5kIEByYWVkd3VsZi4NCg0KQ2xvc2VzICMzMjk0Mg0KU3VwZXJj ZWRlcyAjMzQzOTANCg0KIyMjIyBUZXN0aW5nIHRoZSBjaGFuZ2VzDQotIEkgdGVzdGVkIHRoZSBj aGFuZ2VzIGluIHRoaXMgUFI6ICoqWUVTKioNCg0KPCEtLQ0KIyMjIyBOZXcgcGFja2FnZQ0KLSBU aGlzIG5ldyBwYWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVudHNdKGh0 dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFu dWFsLm1kI3F1YWxpdHktcmVxdWlyZW1lbnRzKTogKipZRVMqKnwqKk5PKioNCi0tPg0KDQo8IS0t IE5vdGU6IElmIHRoZSBidWlsZCBpcyBsaWtlbHkgdG8gdGFrZSBtb3JlIHRoYW4gMiBob3Vycywg cGxlYXNlIFtza2lwIENJXShodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2th Z2VzL2Jsb2IvbWFzdGVyL0NPTlRSSUJVVElORy5tZCNjb250aW51b3VzLWludGVncmF0aW9uKQ0K YW5kIHRlc3QgYXQgbGVhc3Qgb25lIG5hdGl2ZSBidWlsZCBhbmQsIGlmIHN1cHBvcnRlZCwgYXQg bGVhc3Qgb25lIGNyb3NzIGJ1aWxkLg0KSWdub3JlIHRoaXMgc2VjdGlvbiBpZiB0aGlzIFBSIGlz IG5vdCBza2lwcGluZyBDSS4NCi0tPg0KDQojIyMjIExvY2FsIGJ1aWxkIHRlc3RpbmcNCi0gSSBi dWlsdCB0aGlzIFBSIGxvY2FsbHkgZm9yIG15IG5hdGl2ZSBhcmNoaXRlY3R1cmUsICh4ODZfNjQs IHg4Nl82NC1tdXNsKQ0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgdGhlc2UgYXJjaGl0 ZWN0dXJlcyAoaWYgc3VwcG9ydGVkLiBtYXJrIGNyb3NzYnVpbGRzKToNCg0KfCBhcmNoIHwgY3Jv c3MgfCBidWlsdCB8IGBjaGVja2AgcGFzc2VzIHwNCnw6LS0tLS06fDotLS0tLTp8Oi0tLS0tOnw6 LS0tLS06fA0KfCB4ODZfNjQgfHwg4pyUIHwg4pyUIHwNCnwgeDg2XzY0LW11c2wgfHwg4pyUIHwg 4pyUIHwNCnwgaTY4NiB8IOKclCB8IHwgfA0KfCBpNjg2LW11c2wgfCDinJQgfCB8IHwNCnwgYWFy Y2g2NCB8IOKclCB8IHwgfA0KfCBhYXJjaDY0LW11c2wgfCDinJQgfCB8IHwNCnwgYXJtdjdsIHwg 4pyUIHwgfCB8DQp8IGFybXY2bC1tdXNsIHwg4pyUIHwgfCB8CgpBIHBhdGNoIGZpbGUgZnJvbSBo dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzQ5ODkucGF0 Y2ggaXMgYXR0YWNoZWQ= --===============4180376067331351581== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openjdk17-34989.patch" RnJvbSA0NzQyNDJmZWIyNDNjMTAxY2RlZjljNGQ3NTk2ZmJkNWY0NmUwYWQ0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+CkRhdGU6IFR1ZSwg MTEgSmFuIDIwMjIgMDI6NTY6MDQgLTA1MDAKU3ViamVjdDogW1BBVENIIDAxLzExXSBzaHV0aWxz OiBpbnRyb2R1Y2UgWEJQU19PUklHX01BS0VKT0JTIHZhcmlhYmxlCk1JTUUtVmVyc2lvbjogMS4w CkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CgpTb21lIHBhY2thZ2VzIGNvdWxkbid0IHdvcmsgd2VsbCB3aXRoIFhC UFNfTUFLRUpPQlMsCnRodXMgd2UgZGlzYWJsZSBwYXJhbGxlbCBidWlsZCBmb3IgdGhvc2UgcGFj a2FnZXMuCgpPbiB0aGUgb3RoZXIgaGFuZCwgc29tZSBwYWNrYWdlcyBpbmNsdWRpbmcgYnV0IG5v dCBsaW1pdGVkIHRvIG9wZW5qZGsKdXNlIGFuIGludGVybmFsIG1lY2hhbmlzbSB0byBidWlsZCB0 aGVtc2VsdmVzIGluIHBhcmFsbGVsLgoKTGV0J3MgaW52ZW50IGFub3RoZXIgdmFyaWFibGUgZm9y IHRob3NlIHBhY2thZ2VzLgoKKG1lc3NhZ2UgYnkgc2duKQoKQ28tYXV0aG9yZWQtYnk6IMSQb8Og biBUcuG6p24gQ8O0bmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+Ci0tLQogY29tbW9uL3hi cHMtc3JjL3NodXRpbHMvY29tbW9uLnNoIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl cnRpb25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3hicHMtc3JjL3No dXRpbHMvY29tbW9uLnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY29tbW9uLnNoCmluZGV4 IDE3MzkxMjQwNTBmNy4uNDdmZjM2NWU5ZmYyIDEwMDY0NAotLS0gYS9jb21tb24veGJwcy1zcmMv c2h1dGlscy9jb21tb24uc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY29tbW9uLnNo CkBAIC00NjUsNyArNDY1LDkgQEAgc2V0dXBfcGtnKCkgewogICAgIERFU1RESVI9JFhCUFNfREVT VERJUi8kWEJQU19DUk9TU19UUklQTEVULyR7c291cmNlcGtnfS0ke3ZlcnNpb259CiAgICAgUEtH REVTVERJUj0kWEJQU19ERVNURElSLyRYQlBTX0NST1NTX1RSSVBMRVQvJHtwa2d9LSR7dmVyc2lv bn0KIAotICAgIGlmIFsgLW4gIiRkaXNhYmxlX3BhcmFsbGVsX2J1aWxkIiAtbyAteiAiJFhCUFNf TUFLRUpPQlMiIF07IHRoZW4KKyAgICA6ICR7WEJQU19NQUtFSk9CUzo9MX0KKyAgICBleHBvcnQg WEJQU19PUklHX01BS0VKT0JTPSR7WEJQU19PUklHX01BS0VKT0JTOj0kWEJQU19NQUtFSk9CU30K KyAgICBpZiBbIC1uICIkZGlzYWJsZV9wYXJhbGxlbF9idWlsZCIgXTsgdGhlbgogICAgICAgICBY QlBTX01BS0VKT0JTPTEKICAgICBmaQogICAgIG1ha2Vqb2JzPSItaiRYQlBTX01BS0VKT0JTIgoK RnJvbSA0ODY3ZmJlZjgyZTdlNDNmOTFhZjYwOWEzNzM5ZGRjNTU4NmJjMjJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+CkRhdGU6IFR1ZSwg MTEgSmFuIDIwMjIgMDM6MTI6MzQgLTA1MDAKU3ViamVjdDogW1BBVENIIDAyLzExXSBOZXcgcGFj a2FnZTogb3BlbmpkazEyLWJvb3RzdHJhcC0xMi4wLjIrMTAKTUlNRS1WZXJzaW9uOiAxLjAKQ29u dGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5j b2Rpbmc6IDhiaXQKCkNvLWF1dGhvcmVkLWJ5OiDEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNv bmdkYW5ocXhAZ21haWwuY29tPgpDby1hdXRob3JlZC1ieTogVGFpIENoaSBNaW5oIFJhbHBoIEVh c3R3b29kIDx0Y21yZWFzdHdvb2RAZ21haWwuY29tPgotLS0KIC4uLi9maWxlcy9tdXNsX3BhdGNo ZXMvYWFyY2g2NC5wYXRjaCAgICAgICAgICB8ICAxMCArCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVz L2FybS5wYXRjaCAgICAgICAgICAgICAgfCAgMjQgKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMv YnVpbGQucGF0Y2ggICAgICAgICAgICB8IDM4NyArKysrKysrKysrKysrKysrKysKIC4uLi9maWxl cy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoICAgICAgICAgICAgICB8ICA0NSArKwogLi4uL2ZpbGVz L211c2xfcGF0Y2hlcy94ODYucGF0Y2ggICAgICAgICAgICAgIHwgMTMwICsrKysrKwogc3JjcGtn cy9vcGVuamRrMTItYm9vdHN0cmFwL3RlbXBsYXRlICAgICAgICAgIHwgMTE3ICsrKysrKwogNiBm aWxlcyBjaGFuZ2VkLCA3MTMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMvYXJtLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTIt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBh dGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2ZpbGVz L211c2xfcGF0Y2hlcy94ODYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5q ZGsxMi1ib290c3RyYXAvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMi1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggYi9zcmNwa2dzL29wZW5q ZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hYTZjNWQ0ZDJiZTIKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2Fh cmNoNjQucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xp bnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2Nw dS9saW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNoNjQuY3BwCitAQCAtNzQsNyArNzQsNiBAQAor ICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29u dGV4dC5oPgorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKyAKKyAjZGVmaW5lIFJFR19GUCAy OQorICNkZWZpbmUgUkVHX0xSIDMwCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMi1ib290 c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uYWRjNDUyNjYwZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKQEAg LTAsMCArMSwyNCBAQAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51 eF9hcm0uY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2Fy bS5jcHAKK0BAIC03MSw5ICs3MSwyMCBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRl IDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSMgaW5jbHVkZSA8ZnB1X2NvbnRy b2wuaD4KKyAjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKysvLyBTdHVwaWQgaGFjayBhcyB0 aGUgb3JpZ2luIGlmIGJlbG93IGRvZXNudCBjb21waWxlIHdpdGggZ2NjIDguMi4wOgorKy8vCisr Ly8gb3NfbGludXhfYXJtLmNwcDoxMTQ6NTogZXJyb3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJhdG9y IGJlZm9yZSB0b2tlbiAiKCIKKysvLyAgI2lmIE5HUkVHID09IDE2CisrLy8gICAgICAgXn5+fn4K KysvLworKy8vIFRoZSBOR1JFRyBpcyAxOCAoYml0cy9zaWduYWwuaDoxMCksIHNvIGZvcmNlIGl0 IHRvIHRoYXQgdmFsdWUuCisrI2lmZGVmIE5HUkVHCisrIyAgdW5kZWYgTkdSRUcKKysjZW5kaWYK KysjZGVmaW5lIE5HUkVHIDE4CisrCisgI2RlZmluZSBTUEVMTF9SRUdfU1AgICJzcCIKKyAKKyAv LyBEb24ndCAjZGVmaW5lIFNQRUxMX1JFR19GUCBmb3IgdGh1bWIgYmVjYXVzZSBpdCBpcyBub3Qg c2FmZSB0byB1c2UsIHNvIHRoaXMgbWFrZXMgc3VyZSB3ZSBuZXZlciBmZXRjaCBpdC4KZGlmZiAt LWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVp bGQucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGUy MzliZmU3ODYzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFw L2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDM4NyBAQAorZGlmZiAt LWdpdCBhL21ha2UvUmVsZWFzZUZpbGUuZ21rIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKKy0tLSBh L21ha2UvUmVsZWFzZUZpbGUuZ21rCisrKysgYi9tYWtlL1JlbGVhc2VGaWxlLmdtaworQEAgLTUz LDYgKzUzLDcgQEAgZGVmaW5lIGNyZWF0ZS1pbmZvLWZpbGUKKyAgICQoY2FsbCBpbmZvLWZpbGUt aXRlbSwgIkpBVkFfVkVSU0lPTl9EQVRFIiwgIiQoVkVSU0lPTl9EQVRFKSIpCisgICAkKGNhbGwg aW5mby1maWxlLWl0ZW0sICJPU19OQU1FIiwgIiQoUkVMRUFTRV9GSUxFX09TX05BTUUpIikKKyAg ICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIk9TX0FSQ0giLCAiJChSRUxFQVNFX0ZJTEVfT1NfQVJD SCkiKQorKyAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiTElCQyIsICJtdXNsIikKKyBlbmRlZgor IAorICMgUGFyYW0gMSAtIFRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIE1PRFVMRVMgbGlzdAorZGlm ZiAtLWdpdCBhL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsgYi9tYWtlL2hvdHNwb3Qv bGliL0NvbXBpbGVKdm0uZ21rCistLS0gYS9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21r CisrKysgYi9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCitAQCAtNzEsNiArNzEsNyBA QCBDRkxBR1NfVk1fVkVSU0lPTiA6PSBcCisgICAgIC1ESE9UU1BPVF9CVUlMRF9VU0VSPSciJChV U0VSTkFNRSkiJyBcCisgICAgIC1ESE9UU1BPVF9WTV9ESVNUUk89JyIkKEhPVFNQT1RfVk1fRElT VFJPKSInIFwKKyAgICAgLURDUFU9JyIkKE9QRU5KREtfVEFSR0VUX0NQVV9WTV9WRVJTSU9OKSIn IFwKKysgICAgLURMSUJDPScibXVzbCInIFwKKyAgICAgIworIAorICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCitkaWZmIC0tZ2l0IGEvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsgYi9tYWtlL2xp Yi9Db3JlTGlicmFyaWVzLmdtaworLS0tIGEvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKysr KyBiL21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCitAQCAtMTk0LDYgKzE5NCw3IEBAIGlmZXEg KCQoT1BFTkpES19UQVJHRVRfT1MpLCB3aW5kb3dzKQorIGVuZGlmCisgCisgTElCSkxJX0NGTEFH UyArPSAkKExJQlpfQ0ZMQUdTKQorK0xJQkpMSV9DRkxBR1MgKz0gLURMSUJDPVwibXVzbFwiCisg CisgaWZuZXEgKCQoVVNFX0VYVEVSTkFMX0xJQlopLCB0cnVlKQorICAgTElCSkxJX0VYVFJBX0ZJ TEVTICs9IFwKK2RpZmYgLS1naXQgYS9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAg Yi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKKy0tLSBhL3NyYy9ob3RzcG90L29z L2xpbnV4L29zX2xpbnV4LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXgu Y3BwCitAQCAtOTksNyArOTksNiBAQAorICMgaW5jbHVkZSA8c3RyaW5nLmg+CisgIyBpbmNsdWRl IDxzeXNjYWxsLmg+CisgIyBpbmNsdWRlIDxzeXMvc3lzaW5mby5oPgorLSMgaW5jbHVkZSA8Z251 L2xpYmMtdmVyc2lvbi5oPgorICMgaW5jbHVkZSA8c3lzL2lwYy5oPgorICMgaW5jbHVkZSA8c3lz L3NobS5oPgorICMgaW5jbHVkZSA8bGluay5oPgorQEAgLTUxOSw2ICs1MTgsMTEgQEAgdm9pZCBv czo6TGludXg6OmhvdHNwb3Rfc2lnbWFzayhUaHJlYWQqIHRocmVhZCkgeworIC8vIGRldGVjdGlu ZyBwdGhyZWFkIGxpYnJhcnkKKyAKKyB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkg eworKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pCisrICAv LyBIYXJkIGNvZGUgQWxwaW5lIExpbnV4IHN1cHBvcnRlZCBtdXNsIGNvbXBhdGlibGUgc2V0dGlu Z3MKKysgIG9zOjpMaW51eDo6c2V0X2dsaWJjX3ZlcnNpb24oImdsaWJjIDIuOSIpOworKyAgb3M6 OkxpbnV4OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKCJOUFRMIik7CisrI2Vsc2UKKyAgIC8vIFNh dmUgZ2xpYmMgYW5kIHB0aHJlYWQgdmVyc2lvbiBzdHJpbmdzLgorICNpZiAhZGVmaW5lZChfQ1Nf R05VX0xJQkNfVkVSU0lPTikgfHwgXAorICAgICAhZGVmaW5lZChfQ1NfR05VX0xJQlBUSFJFQURf VkVSU0lPTikKK0BAIC01MzYsNiArNTQwLDcgQEAgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRf aW5pdCgpIHsKKyAgIHN0ciA9IChjaGFyICopbWFsbG9jKG4sIG10SW50ZXJuYWwpOworICAgY29u ZnN0cihfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTiwgc3RyLCBuKTsKKyAgIG9zOjpMaW51eDo6 c2V0X2xpYnB0aHJlYWRfdmVyc2lvbihzdHIpOworKyNlbmRpZgorIH0KKyAKKyAvLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLworQEAgLTI4NTUsMjAgKzI4NjAsMzYgQEAgdm9pZCBvczo6TGludXg6OnNjaGVk X2dldGNwdV9pbml0KCkgeworIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV93YXJuKGlu dCBudW1iZXIsIGNoYXIgKndoZXJlLCAuLi4pIHsgfQorIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZv aWQgbnVtYV9lcnJvcihjaGFyICp3aGVyZSkgeyB9CisgCisrc3RhdGljIHZvaWQqIGRsdnN5bV9p Zl9hdmFpbGFibGUodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2 ZXJzaW9uKSB7CisrICB0eXBlZGVmIHZvaWQqICgqZGx2c3ltX2Z1bmNfdHlwZSkodm9pZCogaGFu ZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKTsKKysgIHN0YXRpYyBk bHZzeW1fZnVuY190eXBlIGRsdnN5bV9mdW5jOworKyAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQg PSBmYWxzZTsKKysKKysgIGlmICghaW5pdGlhbGl6ZWQpIHsKKysgICAgZGx2c3ltX2Z1bmMgPSAo ZGx2c3ltX2Z1bmNfdHlwZSlkbHN5bShSVExEX05FWFQsICJkbHZzeW0iKTsKKysgICAgaW5pdGlh bGl6ZWQgPSB0cnVlOworKyAgfQorKworKyAgaWYgKGRsdnN5bV9mdW5jICE9IE5VTEwpIHsKKysg ICAgdm9pZCAqZiA9IGRsdnN5bV9mdW5jKGhhbmRsZSwgbmFtZSwgdmVyc2lvbik7CisrICAgIGlm IChmICE9IE5VTEwpIHsKKysgICAgICByZXR1cm4gZjsKKysgICAgfQorKyAgfQorKworKyAgcmV0 dXJuIGRsc3ltKGhhbmRsZSwgbmFtZSk7CisrfQorKworIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxv YWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjEgKEFQSSB2MSkuIElmIGl0IGZhaWxzCisgLy8g bG9hZCBzeW1ib2wgZnJvbSBiYXNlIHZlcnNpb24gaW5zdGVhZC4KKyB2b2lkKiBvczo6TGludXg6 OmxpYm51bWFfZGxzeW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFyICpuYW1lKSB7CistICB2b2lk ICpmID0gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4xIik7CistICBpZiAoZiA9PSBO VUxMKSB7CistICAgIGYgPSBkbHN5bShoYW5kbGUsIG5hbWUpOworLSAgfQorLSAgcmV0dXJuIGY7 CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEu MSIpOworIH0KKyAKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZl cnNpb24gMS4yIChBUEkgdjIpIG9ubHkuCisgLy8gUmV0dXJuIE5VTEwgaWYgdGhlIHN5bWJvbCBp cyBub3QgZGVmaW5lZCBpbiB0aGlzIHBhcnRpY3VsYXIgdmVyc2lvbi4KKyB2b2lkKiBvczo6TGlu dXg6OmxpYm51bWFfdjJfZGxzeW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lKSB7Cist ICByZXR1cm4gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisrICByZXR1cm4g ZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMiIpOworIH0KKyAK KyBib29sIG9zOjpMaW51eDo6bGlibnVtYV9pbml0KCkgeworZGlmZiAtLWdpdCBhL3NyYy9ob3Rz cG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcCBiL3NyYy9ob3RzcG90L29zX2Nw dS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xp bnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhf eDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC03NSw5ICs3NSw2IEBACisgIyBpbmNsdWRlIDxwd2Qu aD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistI2lmbmRl ZiBBTUQ2NAorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKy0jZW5kaWYKKyAKKyAjaWZkZWYg QU1ENjQKKyAjZGVmaW5lIFJFR19TUCBSRUdfUlNQCitkaWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qv c2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwIGIvc3JjL2hvdHNwb3Qvc2hhcmUv Z2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9n Yy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL2dj L3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorQEAgLTExNDgsNyArMTE0OCw3IEBAIEhlYXBX b3JkKiBHZW5Db2xsZWN0ZWRIZWFwOjphbGxvY2F0ZV9uZXdfdGxhYihzaXplX3QgbWluX3NpemUs Cisgc3RhdGljIFNjcmF0Y2hCbG9jayAqcmVtb3ZlU21hbGxlc3RTY3JhdGNoKFNjcmF0Y2hCbG9j ayAqKnByZXZfcHRyKSB7CisgICBib29sIGZpcnN0ID0gdHJ1ZTsKKyAgIHNpemVfdCBtaW5fc2l6 ZSA9IDA7ICAgLy8gImZpcnN0IiBtYWtlcyB0aGlzIGNvbmNlcHR1YWxseSBpbmZpbml0ZS4KKy0g IFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0ciwgKnNtYWxsZXN0OworKyAgU2NyYXRjaEJsb2Nr ICoqc21hbGxlc3RfcHRyID0gTlVMTCwgKnNtYWxsZXN0OworICAgU2NyYXRjaEJsb2NrICAqY3Vy ID0gKnByZXZfcHRyOworICAgd2hpbGUgKGN1cikgeworICAgICBhc3NlcnQoKnByZXZfcHRyID09 IGN1ciwgImp1c3QgY2hlY2tpbmciKTsKK2RpZmYgLS1naXQgYS9zcmMvaG90c3BvdC9zaGFyZS9y dW50aW1lL3ZtX3ZlcnNpb24uY3BwIGIvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJz aW9uLmNwcAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAor KysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorQEAgLTI3MCw3 ICsyNzAsNyBAQCBjb25zdCBjaGFyKiBBYnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9p bmZvX3N0cmluZygpIHsKKyAgICNlbmRpZgorIAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9O X1NVRkZJWCBWTV9SRUxFQVNFICIpIiBcCistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZM T0FUX0FSQ0hfU1RSIFwKKysgICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9T VFIgTElCQyBcCisgICAgICAgICAgIiBKUkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9u ICIgX19EQVRFX18gIiAiIF9fVElNRV9fIFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9U X0JVSUxEX1VTRVIpICIgd2l0aCAiIEhPVFNQT1RfQlVJTERfQ09NUElMRVIKKyAKK2RpZmYgLS1n aXQgYS9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhw cCBiL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBw CistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2Nj LmhwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25z X2djYy5ocHAKK0BAIC0yMDQsNyArMjA0LDcgQEAgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBm KSB7IHJldHVybiBpc25hbmQoZik7IH0KKyAjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKKyBpbmxp bmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgI2VsaWYgZGVm aW5lZChMSU5VWCkgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKKy1pbmxpbmUgaW50IGdfaXNu YW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFuZihmKTsgfQorK2lubGluZSBpbnQgZ19pc25hbihm bG9hdCAgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91Ymxl IGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgI2Vsc2UKKyAjZXJyb3IgIm1pc3NpbmcgcGxhdGZv cm0tc3BlY2lmaWMgZGVmaW5pdGlvbiBoZXJlIgorZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmJhc2Uv bGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9jbG9zZS5jIGIvc3JjL2phdmEuYmFzZS9saW51eC9u YXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMKKy0tLSBhL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0 aXZlL2xpYm5ldC9saW51eF9jbG9zZS5jCisrKysgYi9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2 ZS9saWJuZXQvbGludXhfY2xvc2UuYworQEAgLTYwLDcgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg eworIC8qCisgICogU2lnbmFsIHRvIHVuYmxvY2sgdGhyZWFkCisgICovCistc3RhdGljIGludCBz aWdXYWtldXAgPSAoX19TSUdSVE1BWCAtIDIpOworK3N0YXRpYyBpbnQgc2lnV2FrZXVwOworIAor IC8qCisgICogZmRUYWJsZSBob2xkcyBvbmUgZW50cnkgcGVyIGZpbGUgZGVzY3JpcHRvciwgdXAg dG8gYSBjZXJ0YWluCitAQCAtMTQ5LDYgKzE0OSw3IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRl KChjb25zdHJ1Y3RvcikpIGluaXQoKSB7CisgICAgIC8qCisgICAgICAqIFNldHVwIHRoZSBzaWdu YWwgaGFuZGxlcgorICAgICAgKi8KKysgICAgc2lnV2FrZXVwID0gU0lHUlRNQVggLSAyOworICAg ICBzYS5zYV9oYW5kbGVyID0gc2lnX3dha2V1cDsKKyAgICAgc2Euc2FfZmxhZ3MgICA9IDA7Cisg ICAgIHNpZ2VtcHR5c2V0KCZzYS5zYV9tYXNrKTsKK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNl L3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0 aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUv bGliamF2YS9jaGlsZHByb2MuYworKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJq YXZhL2NoaWxkcHJvYy5jCitAQCAtMjM0LDcgKzIzNCwxMyBAQCBKREtfZXhlY3ZwZShpbnQgbW9k ZSwgY29uc3QgY2hhciAqZmlsZSwKKyB7CisgICAgIGlmIChlbnZwID09IE5VTEwgfHwgKGNoYXIg KiopIGVudnAgPT0gZW52aXJvbikgeworICAgICAgICAgZXhlY3ZwKGZpbGUsIChjaGFyICoqKSBh cmd2KTsKKy0gICAgICAgIHJldHVybjsKKysgICAgICAgIC8vIEVOT0VYRUMgaW5kaWNhdGVzIHRo YXQgdGhlIGZpbGUgaGVhZGVyIHdhcyBub3QgcmVjb2duaXplZC4gVGhlIG11c2wgQworKyAgICAg ICAgLy8gbGlicmFyeSBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGZhbGxiYWNrIHRvIC9iaW4vc2gg Zm9yIHRoYXQgY2FzZSwgc28gZmFsbAorKyAgICAgICAgLy8gdGhyb3VnaCB0byB0aGUgY29kZSBi ZWxvdyB3aGljaCBpbXBsZW1lbnRzIHRoYXQgZmFsbGJhY2sgdXNpbmcKKysgICAgICAgIC8vIGV4 ZWN2ZV93aXRoX3NoZWxsX2ZhbGxiYWNrLgorKyAgICAgICAgaWYgKGVycm5vICE9IEVOT0VYRUMp IHsKKysgICAgICAgICAgICByZXR1cm47CisrICAgICAgICB9CisgICAgIH0KKyAKKyAgICAgaWYg KCpmaWxlID09ICdcMCcpIHsKK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZl L2xpYmphdmEvamRrX3V0aWxfbWQuaCBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2 YS9qZGtfdXRpbF9tZC5oCistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEv amRrX3V0aWxfbWQuaAorKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pk a191dGlsX21kLmgKK0BAIC0zNyw3ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4o ZCkKKyAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkK KyAjaW5jbHVkZSA8bWF0aC5oPgorLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZp bmUgSVNOQU5GKGYpIGlzbmFuKGYpCisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxp ZiBkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPG1hdGguaD4KK2RpZmYgLS1naXQgYS9zcmMvamF2 YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYyBiL3NyYy9qYXZhLmJh c2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCistLS0gYS9zcmMvamF2YS5i YXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworKysrIGIvc3JjL2phdmEu YmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKK0BAIC0yMzUsNiArMjM1 LDM5IEBAIFJlcXVpcmVzU2V0ZW52KGNvbnN0IGNoYXIgKmp2bXBhdGgpIHsKKyAgICAgY2hhciAq ZG1sbHAgPSBOVUxMOworICAgICBjaGFyICpwOyAvKiBhIHV0aWxpdHkgcG9pbnRlciAqLworIAor KyNpZmRlZiBfX2xpbnV4CisrI2lmbmRlZiBMSUJDCisrI2Vycm9yICJMSUJDIG5vdCBzZXQiCisr I2VuZGlmCisrCisrICAgIGlmIChzdHJjbXAoTElCQywgIm11c2wiKSA9PSAwKSB7CisrICAgICAg LyoKKysgICAgICAgKiBUaGUgbXVzbCBsaWJyYXJ5IGxvYWRlciByZXF1aXJlcyBMRF9MSUJSQVJZ X1BBVEggdG8gYmUgc2V0IGluCisrICAgICAgICogb3JkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUg dGhlIGRlcGVuZGVuY3kgbGliamF2YS5zbyBoYXMgb24gbGlianZtLnNvLgorKyAgICAgICAqCisr ICAgICAgICogU3BlY2lmaWNhbGx5LCBpdCBkaWZmZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNl IHRoYXQgZXZlbiBpZgorKyAgICAgICAqIGxpYmp2bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxvYWRl ZCBpdCB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIGEKKysgICAgICAgKiBjYW5kaWRhdGUgZm9yIHJl c29sdmluZyB0aGUgZGVwZW5kZW5jeSB1bmxlc3MgdGhlICpmdWxsKiBwYXRoCisrICAgICAgICog b2YgdGhlIGFscmVhZHkgbG9hZGVkIGxpYnJhcnkgbWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWlu ZyBsb2FkZWQuCisrICAgICAgICoKKysgICAgICAgKiBsaWJqdm0uc28gaXMgYmVpbmcgbG9hZGVk IGJ5IHRoZSBsYXVuY2hlciB1c2luZyBhIGxvbmcgcGF0aCB0bworKyAgICAgICAqIGRsb3Blbiwg bm90IGp1c3QgdGhlIGJhc2VuYW1lIG9mIHRoZSBsaWJyYXJ5LiBUeXBpY2FsbHkgdGhpcworKyAg ICAgICAqIGlzIHNvbWV0aGluZyBsaWtlICIuLi9saWIvc2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2 ZXIsIGlmL3doZW4KKysgICAgICAgKiBsaWJqdm0uc28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxp YmphdmEuc28gKHdoaWNoIGl0IGRvZXMgaW4KKysgICAgICAgKiBvcmRlciB0byBnZXQgYWNjZXNz IHRvIGEgZmV3IGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCBpbgorKyAgICAgICAqIGxpYmphdmEuc28p IHRoZSBtdXNsIGxvYWRlciB3aWxsLCBhcyBwYXJ0IG9mIGxvYWRpbmcKKysgICAgICAgKiBkZXBl bmRlbnQgbGlicmFyaWVzLCB0cnkgdG8gbG9hZCBsaWJqdm0uc28gdXNpbmcgb25seSBpdHMKKysg ICAgICAgKiBiYXNlbmFtZSAibGlianZtLnNvIi4gU2luY2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0 aGUgbG9uZ2VyCisrICAgICAgICogcGF0aCBwYXRoIGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwg dGhlIGFscmVhZHkgbG9hZGVkCisrICAgICAgICogbGlicmFyeSBpcyBub3QgY29uc2lkZXJlZCBh IGNhbmRpZGF0ZSwgYW5kIHRoZSBsb2FkZXIgd2lsbAorKyAgICAgICAqIGluc3RlYWQgbG9vayBm b3IgbGlianZtLnNvIGVsc2V3aGVyZS4gSWYgaXQncyBub3QgaW4KKysgICAgICAgKiBMRF9MSUJS QVJZX1BBVEggdGhlIGRlcGVuZGVuY3kgbG9hZCB3aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNvCisr ICAgICAgICogd2lsbCB0aGVyZWZvcmUgZmFpbCBhcyB3ZWxsLgorKyAgICAgICAqLworKyAgICAg IHJldHVybiBKTklfVFJVRTsKKysgICAgfQorKyNlbmRpZgorKworICNpZmRlZiBBSVgKKyAgICAg LyogV2UgYWx3YXlzIGhhdmUgdG8gc2V0IHRoZSBMSUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRv ZXNuJ3Qgc3VwcG9ydCAkT1JJR0lOLiAqLworICAgICByZXR1cm4gSk5JX1RSVUU7CitkaWZmIC0t Z2l0IGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMg Yi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworLS0t IGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKKysr KyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCitA QCAtMzYsNyArMzYsNyBAQAorICNpZmRlZiBfX2xpbnV4X18KKyAgICNpbmNsdWRlIDxwdGhyZWFk Lmg+CisgICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2xpbnV4X2Nsb3NlLmMgKi8KKy0gICNkZWZp bmUgSU5URVJSVVBUX1NJR05BTCAoX19TSUdSVE1BWCAtIDIpCisrICAjZGVmaW5lIElOVEVSUlVQ VF9TSUdOQUwgKFNJR1JUTUFYIC0gMikKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgICAjaW5jbHVk ZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9haXhfY2xvc2UuYyAqLwor ZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3 dC9YVG9vbGtpdC5jIGIvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94 YXd0L1hUb29sa2l0LmMKKy0tLSBhL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0 X3hhd3QveGF3dC9YVG9vbGtpdC5jCisrKysgYi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZl L2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworQEAgLTI3LDkgKzI3LDYgQEAKKyAjaW5jbHVk ZSA8WDExL1h1dGlsLmg+CisgI2luY2x1ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8WDExL1hh dG9tLmg+CistI2lmZGVmIF9fbGludXhfXworLSNpbmNsdWRlIDxleGVjaW5mby5oPgorLSNlbmRp ZgorIAorICNpbmNsdWRlIDxqdm0uaD4KKyAjaW5jbHVkZSA8am5pLmg+CitAQCAtNzkxLDI2ICs3 ODgsNiBAQCBKTklFWFBPUlQganN0cmluZyBKTklDQUxMIEphdmFfc3VuX2F3dF9YMTFfWFRvb2xr aXRfZ2V0RW52CisgICAgIHJldHVybiByZXQ7CisgfQorIAorLSNpZmRlZiBfX2xpbnV4X18KKy12 b2lkIHByaW50X3N0YWNrKHZvaWQpCisteworLSAgdm9pZCAqYXJyYXlbMTBdOworLSAgc2l6ZV90 IHNpemU7CistICBjaGFyICoqc3RyaW5nczsKKy0gIHNpemVfdCBpOworLQorLSAgc2l6ZSA9IGJh Y2t0cmFjZSAoYXJyYXksIDEwKTsKKy0gIHN0cmluZ3MgPSBiYWNrdHJhY2Vfc3ltYm9scyAoYXJy YXksIHNpemUpOworLQorLSAgZnByaW50ZiAoc3RkZXJyLCAiT2J0YWluZWQgJXpkIHN0YWNrIGZy YW1lcy5cbiIsIHNpemUpOworLQorLSAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykKKy0gICAg IGZwcmludGYgKHN0ZGVyciwgIiVzXG4iLCBzdHJpbmdzW2ldKTsKKy0KKy0gIGZyZWUgKHN0cmlu Z3MpOworLX0KKy0jZW5kaWYKKy0KKyBXaW5kb3cgZ2V0X3hhd3Rfcm9vdF9zaGVsbChKTklFbnYg KmVudikgeworICAgc3RhdGljIGpjbGFzcyBjbGFzc1hSb290V2luZG93ID0gTlVMTDsKKyAgIHN0 YXRpYyBqbWV0aG9kSUQgbWV0aG9kR2V0WFJvb3RXaW5kb3cgPSBOVUxMOworZGlmZiAtLWdpdCBh L3NyYy9qZGsuamR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmggYi9zcmMvamRr Lmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCistLS0gYS9zcmMvamRrLmpk d3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCisrKysgYi9zcmMvamRrLmpkd3Au YWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCitAQCAtMzUsMTUgKzM1LDE1IEBACisg I2lmZGVmIERFQlVHCisgICAgIC8qIEp1c3QgdG8gbWFrZSBzdXJlIHRoZXNlIGludGVyZmFjZXMg YXJlIG5vdCB1c2VkIGhlcmUuICovCisgICAgICN1bmRlZiBmcmVlCistICAgICNkZWZpbmUgZnJl ZShwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGZyZWUgZG9fbm90 X3VzZV90aGlzX2ludGVyZmFjZV9mcmVlCisgICAgICN1bmRlZiBtYWxsb2MKKy0gICAgI2RlZmlu ZSBtYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBtYWxs b2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9tYWxsb2MKKyAgICAgI3VuZGVmIGNhbGxvYwor LSAgICAjZGVmaW5lIGNhbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAj ZGVmaW5lIGNhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX2NhbGxvYworICAgICAjdW5k ZWYgcmVhbGxvYworLSAgICAjZGVmaW5lIHJlYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVy ZmFjZS4KKysgICAgI2RlZmluZSByZWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfcmVh bGxvYworICAgICAjdW5kZWYgc3RyZHVwCistICAgICNkZWZpbmUgc3RyZHVwKHApIERvIG5vdCB1 c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgc3RyZHVwIGRvX25vdF91c2VfdGhpc19p bnRlcmZhY2Vfc3RyZHVwCisgI2VuZGlmCisgCisgI2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgor ZGlmZiAtLWdpdCBhL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9l eGVpbnZva2UuYyBiL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9l eGVpbnZva2UuYworLS0tIGEvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBh Z2VzL2V4ZWludm9rZS5jCisrKysgYi90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1 YXJkUGFnZXMvZXhlaW52b2tlLmMKK0BAIC0zMyw2ICszMyw3IEBACisgCisgI2luY2x1ZGUgPGFz c2VydC5oPgorICNpbmNsdWRlIDxqbmkuaD4KKysjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUg PGFsbG9jYS5oPgorICNpbmNsdWRlIDxzaWduYWwuaD4KKyAjaW5jbHVkZSA8c3RyaW5nLmg+CitA QCAtOTEsNiArOTIsMjAgQEAgdm9pZCBzZXRfc2lnbmFsX2hhbmRsZXIoKSB7CisgICB9CisgfQor IAorK2ludCBnZXRfamF2YV9zdGFja3NpemUgKCkgeworKyAgc2l6ZV90IHN0YWNrc2l6ZTsKKysg IHB0aHJlYWRfYXR0cl90IGF0dHI7CisrICBKREsxXzFJbml0QXJncyBqZGtfYXJnczsKKysKKysg IGpka19hcmdzLnZlcnNpb24gPSBKTklfVkVSU0lPTl8xXzE7CisrICBKTklfR2V0RGVmYXVsdEph dmFWTUluaXRBcmdzKCZqZGtfYXJncyk7CisrICBpZiAoamRrX2FyZ3MuamF2YVN0YWNrU2l6ZSA8 PSAwKSB7CisrICAgIGZwcmludGYoc3RkZXJyLCAiVGVzdCBFUlJPUi4gQ2FuJ3QgZ2V0IGEgdmFs aWQgdmFsdWUgZm9yIHRoZSBkZWZhdWx0IHN0YWNrc2l6ZS5cbiIpOworKyAgICBleGl0KDcpOwor KyAgfQorKyAgcmV0dXJuIGpka19hcmdzLmphdmFTdGFja1NpemU7CisrfQorKworIHZvaWQgKnJ1 bl9qYXZhX292ZXJmbG93ICh2b2lkICpwKSB7CisgICBKTklFbnYgKmVudjsKKyAgIGpjbGFzcyBj bGFzc19pZDsKK0BAIC0yNTQsMTMgKzI2OSwxOSBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0 IGNoYXIqKiBhcmd2KSB7CisgICAgIGV4aXQoNyk7CisgICB9CisgCisrICBpbnQgc3RhY2tfc2l6 ZSA9IGdldF9qYXZhX3N0YWNrc2l6ZSgpOworICAgcHRocmVhZF90IHRocjsKKysgIHB0aHJlYWRf YXR0cl90IHRocmVhZF9hdHRyOworKworKyAgcHRocmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRy KTsKKysgIHB0aHJlYWRfYXR0cl9zZXRzdGFja3NpemUoJnRocmVhZF9hdHRyLCBzdGFja19zaXpl KTsKKyAKKyAgIGlmIChhcmdjID4gMSAmJiBzdHJjbXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVy ZmxvdyIpID09IDApIHsKKyAgICAgcHJpbnRmKCJcblRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7 CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Ig b3RoZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9q YXZhX292ZXJmbG93LCBOVUxMKTsKKysKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJl YWRfYXR0ciwgcnVuX2phdmFfb3ZlcmZsb3csIE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRo ciwgTlVMTCk7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2 aW91ciBmb3IgaW5pdGlhbCB0aHJlYWRcbiIpOworQEAgLTI3Myw3ICsyOTQsNyBAQCBpbnQgbWFp biAoaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5n IE5BVElWRV9PVkVSRkxPV1xuIik7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFy ZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVh dGUgKCZ0aHIsIE5VTEwsIHJ1bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwpOworKyAgICBwdGhyZWFk X2NyZWF0ZSAoJnRociwgJnRocmVhZF9hdHRyLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsK KyAgICAgcHRocmVhZF9qb2luICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcg c3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKZGlmZiAt LWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBj LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9w cGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMzA2ZDUw MWU0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvZmls ZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitQYXRjaGVzIGZvciBt dXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcv YXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4 MAorLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKKysr KyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCitAQCAtNDcs NiArNDcsOCBAQAorICNpbmNsdWRlICJvcHRvL2ludHJpbnNpY25vZGUuaHBwIgorICNlbmRpZgor IAorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrCisgI2lmZGVmIFBST0RVQ1QKKyAjZGVmaW5l IEJMT0NLX0NPTU1FTlQoc3RyKSAvLyBub3RoaW5nCisgI2Vsc2UKKy0tLSBvbGQvc3JjL2hvdHNw b3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3Bw Yy92bV92ZXJzaW9uX3BwYy5jcHAKK0BAIC04NDUsNyArODQ1LDcgQEAgdm9pZCBWTV9WZXJzaW9u OjpkZXRlcm1pbmVfZmVhdHVyZXMoKSB7CisgICB1bnNpZ25lZCBsb25nIGF1eHYgPSBnZXRhdXh2 YWwoQVRfSFdDQVAyKTsKKyAKKyAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTV9OT1NDKSB7 CistICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hBU19IVE0pIHsKKysgICAgaWYgKGF1eHYg JiBQUENfRkVBVFVSRTJfSFRNKSB7CisgICAgICAgLy8gVE0gb24gUE9XRVI4IGFuZCBQT1dFUjkg aW4gY29tcGF0IG1vZGUgKFZNKSBpcyBzdXBwb3J0ZWQgYnkgdGhlIEpWTS4KKyAgICAgICAvLyBU TSBvbiBQT1dFUjkgREQyLjEgTlYgKGJhcmVtZXRhbCkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUg SlZNIChUTSBvbgorICAgICAgIC8vIFBPV0VSOSBERDIuMSBOViBoYXMgYSBmZXcgaXNzdWVzIHRo YXQgbmVlZCBhIGNvdXBsZSBvZiBmaXJtd2FyZQorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUv bGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xp bnV4X3BwYy9vc19saW51eF9wcGMuY3BwCitAQCAtNzUsNyArNzUsNyBAQAorICMgaW5jbHVkZSA8 cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLQor KyMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorIGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tf cG9pbnRlcigpIHsKKyAgIGludHB0cl90KiBjc3A7CistLS0gb2xkL3NyYy9ob3RzcG90L29zX2Nw dS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3Nf Y3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAorQEAgLTIzLDYgKzIzLDggQEAKKyAg KgorICAqLworIAorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrCisgI2luY2x1ZGUgInByZWNv bXBpbGVkLmhwcCIKKyAjaW5jbHVkZSAicnVudGltZS9mcmFtZS5pbmxpbmUuaHBwIgorICNpbmNs dWRlICJydW50aW1lL3RocmVhZC5ocHAiCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMi1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEy LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOWM2NGMxODkwMzZhCi0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9vcGVuamRrMTItYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gK QEAgLTAsMCArMSwxMzAgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGlu dXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3 ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L29z X2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19j cHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC05MCw2ICs5MCwxMjYgQEAKKyAjZGVm aW5lIFNQRUxMX1JFR19GUCAiZWJwIgorICNlbmRpZiAvLyBBTUQ2NAorCisrLy8gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisrLy8gVGFrZW4gZnJvbSBnbGliYyAyLjI4CisrLy8gc291cmNlOiBodHRw czovL3NvdXJjZXdhcmUub3JnL2dpdC8/cD1nbGliYy5naXQ7YT1ibG9iO2Y9c3lzZGVwcy94ODYv ZnB1X2NvbnRyb2wuaDtoPTRjYjk4YzU2NzliMjg5N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4OWUyNGQ7 aGI9M2MwM2JhY2EzN2ZkY2I1MmMzODgxZTY1M2NhMzkyYmJhN2E5OWMyYgorKy8vID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorKyNpZm5kZWYgQU1ENjQKKysvKiBGUFUgY29udHJvbCB3b3JkIGJpdHMu ICB4ODYgdmVyc2lvbi4KKysgICBDb3B5cmlnaHQgKEMpIDE5OTMtMjAxOCBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGli cmFyeS4KKysgICBDb250cmlidXRlZCBieSBPbGFmIEZsZWJiZS4KKysKKysgICBUaGUgR05VIEMg TGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK KysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg UHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5 b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBi dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50 eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS UE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRo ZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGlj ZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBfRlBVX0NPTlRST0xfSAorKyNkZWZpbmUgX0ZQVV9D T05UUk9MX0gJMQorKworKy8qIE5vdGUgdGhhdCB0aGlzIGZpbGUgc2V0cyBvbiB4ODYtNjQgb25s eSB0aGUgeDg3IEZQVSwgaXQgZG9lcyBub3QKKysgICB0b3VjaCB0aGUgU1NFIHVuaXQuICAqLwor KworKy8qIEhlcmUgaXMgdGhlIGRpcnR5IHBhcnQuIFNldCB1cCB5b3VyIDM4NyB0aHJvdWdoIHRo ZSBjb250cm9sIHdvcmQKKysgKiAoY3cpIHJlZ2lzdGVyLgorKyAqCisrICogICAgIDE1LTEzICAg IDEyICAxMS0xMCAgOS04ICAgICA3LTYgICAgIDUgICAgNCAgICAzICAgIDIgICAgMSAgICAwCisr ICogfCByZXNlcnZlZCB8IElDIHwgUkMgIHwgUEMgfCByZXNlcnZlZCB8IFBNIHwgVU0gfCBPTSB8 IFpNIHwgRE0gfCBJTQorKyAqCisrICogSU06IEludmFsaWQgb3BlcmF0aW9uIG1hc2sKKysgKiBE TTogRGVub3JtYWxpemVkIG9wZXJhbmQgbWFzaworKyAqIFpNOiBaZXJvLWRpdmlkZSBtYXNrCisr ICogT006IE92ZXJmbG93IG1hc2sKKysgKiBVTTogVW5kZXJmbG93IG1hc2sKKysgKiBQTTogUHJl Y2lzaW9uIChpbmV4YWN0IHJlc3VsdCkgbWFzaworKyAqCisrICogTWFzayBiaXQgaXMgMSBtZWFu cyBubyBpbnRlcnJ1cHQuCisrICoKKysgKiBQQzogUHJlY2lzaW9uIGNvbnRyb2wKKysgKiAxMSAt IHJvdW5kIHRvIGV4dGVuZGVkIHByZWNpc2lvbgorKyAqIDEwIC0gcm91bmQgdG8gZG91YmxlIHBy ZWNpc2lvbgorKyAqIDAwIC0gcm91bmQgdG8gc2luZ2xlIHByZWNpc2lvbgorKyAqCisrICogUkM6 IFJvdW5kaW5nIGNvbnRyb2wKKysgKiAwMCAtIHJvdW5kaW5nIHRvIG5lYXJlc3QKKysgKiAwMSAt IHJvdW5kaW5nIGRvd24gKHRvd2FyZCAtIGluZmluaXR5KQorKyAqIDEwIC0gcm91bmRpbmcgdXAg KHRvd2FyZCArIGluZmluaXR5KQorKyAqIDExIC0gcm91bmRpbmcgdG93YXJkIHplcm8KKysgKgor KyAqIElDOiBJbmZpbml0eSBjb250cm9sCisrICogVGhhdCBpcyBmb3IgODA4NyBhbmQgODAyODcg b25seS4KKysgKgorKyAqIFRoZSBoYXJkd2FyZSBkZWZhdWx0IGlzIDB4MDM3ZiB3aGljaCB3ZSB1 c2UuCisrICovCisrCisrI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisrCisrLyogbWFza2luZyBvZiBp bnRlcnJ1cHRzICovCisrI2RlZmluZSBfRlBVX01BU0tfSU0gIDB4MDEKKysjZGVmaW5lIF9GUFVf TUFTS19ETSAgMHgwMgorKyNkZWZpbmUgX0ZQVV9NQVNLX1pNICAweDA0CisrI2RlZmluZSBfRlBV X01BU0tfT00gIDB4MDgKKysjZGVmaW5lIF9GUFVfTUFTS19VTSAgMHgxMAorKyNkZWZpbmUgX0ZQ VV9NQVNLX1BNICAweDIwCisrCisrLyogcHJlY2lzaW9uIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9G UFVfRVhURU5ERUQgMHgzMDAJLyogbGlibSByZXF1aXJlcyBkb3VibGUgZXh0ZW5kZWQgcHJlY2lz aW9uLiAgKi8KKysjZGVmaW5lIF9GUFVfRE9VQkxFICAgMHgyMDAKKysjZGVmaW5lIF9GUFVfU0lO R0xFICAgMHgwCisrCisrLyogcm91bmRpbmcgY29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9SQ19O RUFSRVNUIDB4MCAgICAvKiBSRUNPTU1FTkRFRCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ET1dOICAg IDB4NDAwCisrI2RlZmluZSBfRlBVX1JDX1VQICAgICAgMHg4MDAKKysjZGVmaW5lIF9GUFVfUkNf WkVSTyAgICAweEMwMAorKworKyNkZWZpbmUgX0ZQVV9SRVNFUlZFRCAweEYwQzAgIC8qIFJlc2Vy dmVkIGJpdHMgaW4gY3cgKi8KKysKKysKKysvKiBUaGUgZmRsaWJtIGNvZGUgcmVxdWlyZXMgc3Ry aWN0IElFRUUgZG91YmxlIHByZWNpc2lvbiBhcml0aG1ldGljLAorKyAgIGFuZCBubyBpbnRlcnJ1 cHRzIGZvciBleGNlcHRpb25zLCByb3VuZGluZyB0byBuZWFyZXN0LiAgKi8KKysKKysjZGVmaW5l IF9GUFVfREVGQVVMVCAgMHgwMzdmCisrCisrLyogSUVFRTogIHNhbWUgYXMgYWJvdmUuICAqLwor KyNkZWZpbmUgX0ZQVV9JRUVFICAgICAweDAzN2YKKysKKysvKiBUeXBlIG9mIHRoZSBjb250cm9s IHdvcmQuICAqLworK3R5cGVkZWYgdW5zaWduZWQgaW50IGZwdV9jb250cm9sX3QgX19hdHRyaWJ1 dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CisrCisrLyogTWFjcm9zIGZvciBhY2Nlc3Npbmcg dGhlIGhhcmR3YXJlIGNvbnRyb2wgd29yZC4gICIqJiIgaXMgdXNlZCB0bworKyAgIHdvcmsgYXJv dW5kIGEgYnVnIGluIG9sZGVyIHZlcnNpb25zIG9mIEdDQy4gIF9fdm9sYXRpbGVfXyBpcyB1c2Vk CisrICAgdG8gc3VwcG9ydCBjb21iaW5hdGlvbiBvZiB3cml0aW5nIHRoZSBjb250cm9sIHJlZ2lz dGVyIGFuZCByZWFkaW5nCisrICAgaXQgYmFjay4gIFdpdGhvdXQgX192b2xhdGlsZV9fLCB0aGUg b2xkIHZhbHVlIG1heSBiZSB1c2VkIGZvciByZWFkaW5nCisrICAgYmFjayB1bmRlciBjb21waWxl ciBvcHRpbWl6YXRpb24uCisrCisrICAgTm90ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlc2UgbWFjcm9z IGlzIG5vdCBzdWZmaWNpZW50IGFueW1vcmUgd2l0aAorKyAgIHJlY2VudCBoYXJkd2FyZSBub3Ig b24geDg2LTY0LiAgU29tZSBmbG9hdGluZyBwb2ludCBvcGVyYXRpb25zIGFyZQorKyAgIGV4ZWN1 dGVkIGluIHRoZSBTU0UvU1NFMiBlbmdpbmVzIHdoaWNoIGhhdmUgdGhlaXIgb3duIGNvbnRyb2wg YW5kCisrICAgc3RhdHVzIHJlZ2lzdGVyLiAgKi8KKysjZGVmaW5lIF9GUFVfR0VUQ1coY3cpIF9f YXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3ICUwIiA6ICI9bSIgKComY3cpKQorKyNkZWZpbmUg X0ZQVV9TRVRDVyhjdykgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJtIiAo KiZjdykpCisrCisrLyogRGVmYXVsdCBjb250cm9sIHdvcmQgc2V0IGF0IHN0YXJ0dXAuICAqLwor K2V4dGVybiBmcHVfY29udHJvbF90IF9fZnB1X2NvbnRyb2w7CisrCisrI2VuZGlmCS8qIGZwdV9j b250cm9sLmggKi8KKysKKysjZW5kaWYgLy8gQU1ENjQKKysvLyA9PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K KysKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgI2lmZGVmIFNQQVJD X1dPUktTCisgICByZWdpc3RlciB2b2lkICplc3A7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5q ZGsxMi1ib290c3RyYXAvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvdGVt cGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4zMWFlODQxNWIx NTEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvdGVtcGxh dGUKQEAgLTAsMCArMSwxMTcgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGsxMi1ib290 c3RyYXAnCitfamF2YV92ZXI9MTIKK19qYXZhX21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj0yCitf amRrX3VwZGF0ZT0xMAorX2pka19ob21lPSJ1c3IvbGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9 IgorX2Jhc2VfdmVyc2lvbj0iJHtfamF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9z ZWNfdmVyfSIKKworcGtnbmFtZT1vcGVuamRrMTItYm9vdHN0cmFwCit2ZXJzaW9uPSIke19iYXNl X3ZlcnNpb259KyR7X2pka191cGRhdGV9IgorcmV2aXNpb249MQord3Jrc3JjPSJqZGske19qYXZh X3Zlcn11LWpkay0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQorY29uZmln dXJlX2FyZ3M9Ii0tZGlzYWJsZS13YXJuaW5ncy1hcy1lcnJvcnMKKyAtLXByZWZpeD0ke1hCUFNf REVTVERJUn0vJHtwa2duYW1lfS0ke3ZlcnNpb259L3Vzci9saWIKKyAtLWVuYWJsZS11bmxpbWl0 ZWQtY3J5cHRvCisgLS13aXRoLXpsaWI9c3lzdGVtCisgLS13aXRoLWxpYmpwZWc9c3lzdGVtCisg LS13aXRoLWdpZmxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlicG5nPXN5c3RlbQorIC0td2l0aC1sY21z PXN5c3RlbQorIC0td2l0aC1qdHJlZz1ubworIC0td2l0aC12ZXJzaW9uLWJ1aWxkPSR7X2phdmFf dmVyfQorIC0td2l0aC1qb2JzPSR7WEJQU19PUklHX01BS0VKT0JTfQorIC0td2l0aC12ZW5kb3It bmFtZT1Wb2lkCisgLS13aXRoLXZlbmRvci11cmw9aHR0cHM6Ly92b2lkbGludXgub3JnLworIC0t d2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL2lzc3VlcworIC0td2l0aC12ZW5kb3Itdm0tYnVnLXVybD1odHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC1ib290LWpkaz0vdXNy L2xpYi9qdm0vb3BlbmpkazExIgorbWFrZV9idWlsZF9hcmdzPSJpbWFnZXMiCittYWtlX2NoZWNr X3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmln IGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFyIHVuemlwIHppcCBjYS1jZXJ0aWZpY2F0ZXMKKyBs aWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1ha2UtY2Egb3BlbmpkazExIgorbWFrZWRlcGVuZHM9 ImxpYlhyZW5kZXItZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFuZHItZGV2 ZWwKKyBnaWZsaWItZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBjdXBzLWRldmVsIGZyZWV0eXBl LWRldmVsIGFsc2EtbGliLWRldmVsCisgZm9udGNvbmZpZy1kZXZlbCB6bGliLWRldmVsIGxjbXMy LWRldmVsIgorcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEtcnVu dGltZS0ke3ZlcnNpb259XzEiCitzaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQg S2l0IChib290c3RyYXAgdmVyc2lvbiAxMikiCittYWludGFpbmVyPSJjbGFzc2FiYnlhbXAgPGRl dkBrYjYuZWU+IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5IFdJVEggQ2xhc3NwYXRoLWV4Y2VwdGlv bi0yLjAiCitob21lcGFnZT0iaHR0cHM6Ly9vcGVuamRrLmphdmEubmV0IgorZGlzdGZpbGVzPSJo dHRwczovL2hnLm9wZW5qZGsuamF2YS5uZXQvamRrLXVwZGF0ZXMvamRrJHtfamF2YV92ZXJ9dS9h cmNoaXZlL2pkay0ke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPWIyYmNhZDM1NjU2YjAwOTI4 NjgzNDE2ZjM0ODBhZDAwMzYzYjAwOTkzZWI3MTFjM2UxODg2ZTRmZTc3ZWVmZWIKK2xpYjMyZGlz YWJsZWQ9eWVzCitub2Nyb3NzPXllcworCisjIEJ1aWxkIGlzIHN0aWxsIHBhcmFsbGVsLCBidXQg ZG9uJ3QgdXNlIC1qTi4KK2Rpc2FibGVfcGFyYWxsZWxfYnVpbGQ9eWVzCisKKyMgbm8gaG90c3Bv dCBKSVQgZm9yIHBwYzMyCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGM2NCop IDs7CisJcHBjKikgX3VzZV96ZXJvPXllcyA7OworZXNhYworCitpZiBbIC1uICIkX3VzZV96ZXJv IiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliZmZpLWRldmVsIgorCWNvbmZpZ3VyZV9hcmdz Kz0iIC0td2l0aC1qdm0tdmFyaWFudHM9emVybyIKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElO RSIgaW4KKwkJcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrLWp2bWFyZ3M9 LVhYOlRocmVhZFN0YWNrU2l6ZT0yNTYwIjs7CisJZXNhYworZmkKKworcG9zdF9leHRyYWN0KCkg eworCWNobW9kICt4IGNvbmZpZ3VyZQorCisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11 c2wiIF07IHRoZW4KKwkJcm0gLXIgc3JjL2pkay5ob3RzcG90LmFnZW50CisJZmkKK30KKworcG9z dF9wYXRjaCgpIHsKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgor CQlmb3IgZiBpbiAiJHtGSUxFU0RJUn0iL211c2xfcGF0Y2hlcy8qLnBhdGNoOyBkbworCQkJbXNn X25vcm1hbCAiQXBwbHlpbmcgJHtmIyRGSUxFU0RJUi99XG4iCisJCQlwYXRjaCAtTnAxIC1pICIk ZiIKKwkJZG9uZQorCWZpCit9CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlDRkxBR1M9JHtDRkxBR1Mv LURfRk9SVElGWV9TT1VSQ0U9Mi99CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8tRF9GT1JUSUZZX1NP VVJDRT0yL30KKworCSMgZm9yY2UgRUxGdjIgZm9yIHBwYzY0IGp1c3QgaW4gY2FzZQorCWNhc2Ug IiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopCisJCQlDRkxBR1MrPSIgLURBQklf RUxGdjIiCisJCQlDWFhGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCTs7CisJZXNhYworCisJIyBj b21wYXRpYmlsaXR5IHdpdGggR0NDIDEwLngKKwlDRkxBR1MrPSIgLWZjb21tb24gLWZuby1saWZl dGltZS1kc2UiCisJQ1hYRkxBR1MrPSIgLWZjb21tb24gLWZuby1saWZldGltZS1kc2UiCisKKwlj b25maWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9XC91 c3JcL1thLXowLTldKi1saW51eC1bYS16XSovfQorCWlmIFsgIiRYQlBTX0NDQUNIRSIgXTsgdGhl bgorCQljb25maWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2FjaGUiCisJZmkKKwlDQz0iL3Vzci9i aW4vY2MiCisJQ1hYPSIvdXNyL2Jpbi9jKysiCisJLi9jb25maWd1cmUgJHtjb25maWd1cmVfYXJn c30gXAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1j eHhmbGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1sZGZsYWdzPSIkTERGTEFHUyIg XAorCQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAgTk09JE5NIFwKKwkJT0JK RFVNUD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwlt diAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJzaW9ufS1pbnRlcm5h bCAke0RFU1RESVJ9LyRfamRrX2hvbWUKKwlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2Jpbgor CXJtIC1mICRERVNURElSLyRfamRrX2hvbWUvbGliL3NyYy56aXAKKwl2bGljZW5zZSBBU1NFTUJM WV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CgpGcm9tIGMwYjE4YzM2MWIxNmYzMTkx ODdiNGZhMTg0ZjdkODg2MTUzNzUwZjMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNs YXNzYWJieWFtcCA8ZGV2QGtiNi5lZT4KRGF0ZTogVHVlLCAxMSBKYW4gMjAyMiAwMzoxMzoyMyAt MDUwMApTdWJqZWN0OiBbUEFUQ0ggMDMvMTFdIE5ldyBwYWNrYWdlOiBvcGVuamRrMTMtYm9vdHN0 cmFwLTEzLjAuNS4xKzEKTUlNRS1WZXJzaW9uOiAxLjAKQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PVVURi04CkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQKCkNvLWF1dGhv cmVkLWJ5OiDEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgpD by1hdXRob3JlZC1ieTogVGFpIENoaSBNaW5oIFJhbHBoIEVhc3R3b29kIDx0Y21yZWFzdHdvb2RA Z21haWwuY29tPgotLS0KIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCAgICAg ICAgICB8ICAxMCArCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgICAgICAgICAg ICAgfCAgMjQgKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggICAgICAgICAg ICB8IDM4NyArKysrKysrKysrKysrKysrKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBh dGNoICAgICAgICAgICAgICB8ICA0NSArKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0 Y2ggICAgICAgICAgICAgIHwgMTMwICsrKysrKwogc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFw L3RlbXBsYXRlICAgICAgICAgIHwgMTE3ICsrKysrKwogNiBmaWxlcyBjaGFuZ2VkLCA3MTMgaW5z ZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJh cC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xf cGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEz LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxh dGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL2FhcmNoNjQucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMv bXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi5hYTZjNWQ0ZDJiZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5q ZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKQEAgLTAsMCAr MSwxMCBAQAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhf YWFyY2g2NC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0L29zX2xp bnV4X2FhcmNoNjQuY3BwCitAQCAtNzQsNyArNzQsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+Cisg IyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSMgaW5jbHVkZSA8 ZnB1X2NvbnRyb2wuaD4KKyAKKyAjZGVmaW5lIFJFR19GUCAyOQorICNkZWZpbmUgUkVHX0xSIDMw CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRj aGVzL2FybS5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3Bh dGNoZXMvYXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u YWRjNDUyNjYwZGY1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0 cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKQEAgLTAsMCArMSwyNCBAQAorLS0tIGEv c3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9hcm0uY3BwCisrKysgYi9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKK0BAIC03MSw5ICs3MSwy MCBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRl IDx1Y29udGV4dC5oPgorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKyAjIGluY2x1ZGUgPGFz bS9wdHJhY2UuaD4KKyAKKysvLyBTdHVwaWQgaGFjayBhcyB0aGUgb3JpZ2luIGlmIGJlbG93IGRv ZXNudCBjb21waWxlIHdpdGggZ2NjIDguMi4wOgorKy8vCisrLy8gb3NfbGludXhfYXJtLmNwcDox MTQ6NTogZXJyb3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJhdG9yIGJlZm9yZSB0b2tlbiAiKCIKKysv LyAgI2lmIE5HUkVHID09IDE2CisrLy8gICAgICAgXn5+fn4KKysvLworKy8vIFRoZSBOR1JFRyBp cyAxOCAoYml0cy9zaWduYWwuaDoxMCksIHNvIGZvcmNlIGl0IHRvIHRoYXQgdmFsdWUuCisrI2lm ZGVmIE5HUkVHCisrIyAgdW5kZWYgTkdSRUcKKysjZW5kaWYKKysjZGVmaW5lIE5HUkVHIDE4Cisr CisgI2RlZmluZSBTUEVMTF9SRUdfU1AgICJzcCIKKyAKKyAvLyBEb24ndCAjZGVmaW5lIFNQRUxM X1JFR19GUCBmb3IgdGh1bWIgYmVjYXVzZSBpdCBpcyBub3Qgc2FmZSB0byB1c2UsIHNvIHRoaXMg bWFrZXMgc3VyZSB3ZSBuZXZlciBmZXRjaCBpdC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpk azEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL29w ZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxl IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOGUyMzliZmU3ODYzCi0tLSAvZGV2L251 bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9i dWlsZC5wYXRjaApAQCAtMCwwICsxLDM4NyBAQAorZGlmZiAtLWdpdCBhL21ha2UvUmVsZWFzZUZp bGUuZ21rIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKKy0tLSBhL21ha2UvUmVsZWFzZUZpbGUuZ21r CisrKysgYi9tYWtlL1JlbGVhc2VGaWxlLmdtaworQEAgLTUzLDYgKzUzLDcgQEAgZGVmaW5lIGNy ZWF0ZS1pbmZvLWZpbGUKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkpBVkFfVkVSU0lPTl9E QVRFIiwgIiQoVkVSU0lPTl9EQVRFKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19O QU1FIiwgIiQoUkVMRUFTRV9GSUxFX09TX05BTUUpIikKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRl bSwgIk9TX0FSQ0giLCAiJChSRUxFQVNFX0ZJTEVfT1NfQVJDSCkiKQorKyAgJChjYWxsIGluZm8t ZmlsZS1pdGVtLCAiTElCQyIsICJtdXNsIikKKyBlbmRlZgorIAorICMgUGFyYW0gMSAtIFRoZSBm aWxlIGNvbnRhaW5pbmcgdGhlIE1PRFVMRVMgbGlzdAorZGlmZiAtLWdpdCBhL21ha2UvaG90c3Bv dC9saWIvQ29tcGlsZUp2bS5nbWsgYi9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCist LS0gYS9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCisrKysgYi9tYWtlL2hvdHNwb3Qv bGliL0NvbXBpbGVKdm0uZ21rCitAQCAtNzEsNiArNzEsNyBAQCBDRkxBR1NfVk1fVkVSU0lPTiA6 PSBcCisgICAgIC1ESE9UU1BPVF9CVUlMRF9VU0VSPSciJChVU0VSTkFNRSkiJyBcCisgICAgIC1E SE9UU1BPVF9WTV9ESVNUUk89JyIkKEhPVFNQT1RfVk1fRElTVFJPKSInIFwKKyAgICAgLURDUFU9 JyIkKE9QRU5KREtfVEFSR0VUX0NQVV9WTV9WRVJTSU9OKSInIFwKKysgICAgLURMSUJDPScibXVz bCInIFwKKyAgICAgIworIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCitkaWZmIC0tZ2l0IGEv bWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtawor LS0tIGEvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKysrKyBiL21ha2UvbGliL0NvcmVMaWJy YXJpZXMuZ21rCitAQCAtMTk0LDYgKzE5NCw3IEBAIGlmZXEgKCQoT1BFTkpES19UQVJHRVRfT1Mp LCB3aW5kb3dzKQorIGVuZGlmCisgCisgTElCSkxJX0NGTEFHUyArPSAkKExJQlpfQ0ZMQUdTKQor K0xJQkpMSV9DRkxBR1MgKz0gLURMSUJDPVwibXVzbFwiCisgCisgaWZuZXEgKCQoVVNFX0VYVEVS TkFMX0xJQlopLCB0cnVlKQorICAgTElCSkxJX0VYVFJBX0ZJTEVTICs9IFwKK2RpZmYgLS1naXQg YS9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAgYi9zcmMvaG90c3BvdC9vcy9saW51 eC9vc19saW51eC5jcHAKKy0tLSBhL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAor KysrIGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCitAQCAtOTksNyArOTksNiBA QAorICMgaW5jbHVkZSA8c3RyaW5nLmg+CisgIyBpbmNsdWRlIDxzeXNjYWxsLmg+CisgIyBpbmNs dWRlIDxzeXMvc3lzaW5mby5oPgorLSMgaW5jbHVkZSA8Z251L2xpYmMtdmVyc2lvbi5oPgorICMg aW5jbHVkZSA8c3lzL2lwYy5oPgorICMgaW5jbHVkZSA8c3lzL3NobS5oPgorICMgaW5jbHVkZSA8 bGluay5oPgorQEAgLTUxOSw2ICs1MTgsMTEgQEAgdm9pZCBvczo6TGludXg6OmhvdHNwb3Rfc2ln bWFzayhUaHJlYWQqIHRocmVhZCkgeworIC8vIGRldGVjdGluZyBwdGhyZWFkIGxpYnJhcnkKKyAK KyB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkgeworKyNpZiAhZGVmaW5lZChfX0dM SUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pCisrICAvLyBIYXJkIGNvZGUgQWxwaW5lIExp bnV4IHN1cHBvcnRlZCBtdXNsIGNvbXBhdGlibGUgc2V0dGluZ3MKKysgIG9zOjpMaW51eDo6c2V0 X2dsaWJjX3ZlcnNpb24oImdsaWJjIDIuOSIpOworKyAgb3M6OkxpbnV4OjpzZXRfbGlicHRocmVh ZF92ZXJzaW9uKCJOUFRMIik7CisrI2Vsc2UKKyAgIC8vIFNhdmUgZ2xpYmMgYW5kIHB0aHJlYWQg dmVyc2lvbiBzdHJpbmdzLgorICNpZiAhZGVmaW5lZChfQ1NfR05VX0xJQkNfVkVSU0lPTikgfHwg XAorICAgICAhZGVmaW5lZChfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTikKK0BAIC01MzYsNiAr NTQwLDcgQEAgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKyAgIHN0ciA9IChj aGFyICopbWFsbG9jKG4sIG10SW50ZXJuYWwpOworICAgY29uZnN0cihfQ1NfR05VX0xJQlBUSFJF QURfVkVSU0lPTiwgc3RyLCBuKTsKKyAgIG9zOjpMaW51eDo6c2V0X2xpYnB0aHJlYWRfdmVyc2lv bihzdHIpOworKyNlbmRpZgorIH0KKyAKKyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLworQEAgLTI4NTUs MjAgKzI4NjAsMzYgQEAgdm9pZCBvczo6TGludXg6OnNjaGVkX2dldGNwdV9pbml0KCkgeworIGV4 dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV93YXJuKGludCBudW1iZXIsIGNoYXIgKndoZXJl LCAuLi4pIHsgfQorIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV9lcnJvcihjaGFyICp3 aGVyZSkgeyB9CisgCisrc3RhdGljIHZvaWQqIGRsdnN5bV9pZl9hdmFpbGFibGUodm9pZCogaGFu ZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKSB7CisrICB0eXBlZGVm IHZvaWQqICgqZGx2c3ltX2Z1bmNfdHlwZSkodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1l LCBjb25zdCBjaGFyKiB2ZXJzaW9uKTsKKysgIHN0YXRpYyBkbHZzeW1fZnVuY190eXBlIGRsdnN5 bV9mdW5jOworKyAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKysKKysgIGlmICgh aW5pdGlhbGl6ZWQpIHsKKysgICAgZGx2c3ltX2Z1bmMgPSAoZGx2c3ltX2Z1bmNfdHlwZSlkbHN5 bShSVExEX05FWFQsICJkbHZzeW0iKTsKKysgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworKyAgfQor KworKyAgaWYgKGRsdnN5bV9mdW5jICE9IE5VTEwpIHsKKysgICAgdm9pZCAqZiA9IGRsdnN5bV9m dW5jKGhhbmRsZSwgbmFtZSwgdmVyc2lvbik7CisrICAgIGlmIChmICE9IE5VTEwpIHsKKysgICAg ICByZXR1cm4gZjsKKysgICAgfQorKyAgfQorKworKyAgcmV0dXJuIGRsc3ltKGhhbmRsZSwgbmFt ZSk7CisrfQorKworIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVy c2lvbiAxLjEgKEFQSSB2MSkuIElmIGl0IGZhaWxzCisgLy8gbG9hZCBzeW1ib2wgZnJvbSBiYXNl IHZlcnNpb24gaW5zdGVhZC4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfZGxzeW0odm9pZCog aGFuZGxlLCBjb25zdCBjaGFyICpuYW1lKSB7CistICB2b2lkICpmID0gZGx2c3ltKGhhbmRsZSwg bmFtZSwgImxpYm51bWFfMS4xIik7CistICBpZiAoZiA9PSBOVUxMKSB7CistICAgIGYgPSBkbHN5 bShoYW5kbGUsIG5hbWUpOworLSAgfQorLSAgcmV0dXJuIGY7CisrICByZXR1cm4gZGx2c3ltX2lm X2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworIH0KKyAKKyAvLyBIYW5k bGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4yIChBUEkgdjIpIG9u bHkuCisgLy8gUmV0dXJuIE5VTEwgaWYgdGhlIHN5bWJvbCBpcyBub3QgZGVmaW5lZCBpbiB0aGlz IHBhcnRpY3VsYXIgdmVyc2lvbi4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfdjJfZGxzeW0o dm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lKSB7CistICByZXR1cm4gZGx2c3ltKGhhbmRs ZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZSho YW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMiIpOworIH0KKyAKKyBib29sIG9zOjpMaW51eDo6bGli bnVtYV9pbml0KCkgeworZGlmZiAtLWdpdCBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYv b3NfbGludXhfeDg2LmNwcCBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhf eDg2LmNwcAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYu Y3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAK K0BAIC03NSw5ICs3NSw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwu aD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistI2lmbmRlZiBBTUQ2NAorLSMgaW5jbHVkZSA8 ZnB1X2NvbnRyb2wuaD4KKy0jZW5kaWYKKyAKKyAjaWZkZWYgQU1ENjQKKyAjZGVmaW5lIFJFR19T UCBSRUdfUlNQCitkaWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNv bGxlY3RlZEhlYXAuY3BwIGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3Rl ZEhlYXAuY3BwCistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVk SGVhcC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRI ZWFwLmNwcAorQEAgLTExNDgsNyArMTE0OCw3IEBAIEhlYXBXb3JkKiBHZW5Db2xsZWN0ZWRIZWFw OjphbGxvY2F0ZV9uZXdfdGxhYihzaXplX3QgbWluX3NpemUsCisgc3RhdGljIFNjcmF0Y2hCbG9j ayAqcmVtb3ZlU21hbGxlc3RTY3JhdGNoKFNjcmF0Y2hCbG9jayAqKnByZXZfcHRyKSB7CisgICBi b29sIGZpcnN0ID0gdHJ1ZTsKKyAgIHNpemVfdCBtaW5fc2l6ZSA9IDA7ICAgLy8gImZpcnN0IiBt YWtlcyB0aGlzIGNvbmNlcHR1YWxseSBpbmZpbml0ZS4KKy0gIFNjcmF0Y2hCbG9jayAqKnNtYWxs ZXN0X3B0ciwgKnNtYWxsZXN0OworKyAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyID0gTlVM TCwgKnNtYWxsZXN0OworICAgU2NyYXRjaEJsb2NrICAqY3VyID0gKnByZXZfcHRyOworICAgd2hp bGUgKGN1cikgeworICAgICBhc3NlcnQoKnByZXZfcHRyID09IGN1ciwgImp1c3QgY2hlY2tpbmci KTsKK2RpZmYgLS1naXQgYS9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24uY3Bw IGIvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorLS0tIGEvc3JjL2hv dHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hh cmUvcnVudGltZS92bV92ZXJzaW9uLmNwcAorQEAgLTI3MCw3ICsyNzAsNyBAQCBjb25zdCBjaGFy KiBBYnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9pbmZvX3N0cmluZygpIHsKKyAgICNl bmRpZgorIAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9OX1NVRkZJWCBWTV9SRUxFQVNFICIp IiBcCistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIFwKKysgICAg ICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgTElCQyBcCisgICAgICAgICAg IiBKUkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9uICIgX19EQVRFX18gIiAiIF9fVElN RV9fIFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9UX0JVSUxEX1VTRVIpICIgd2l0aCAi IEhPVFNQT1RfQlVJTERfQ09NUElMRVIKKyAKK2RpZmYgLS1naXQgYS9zcmMvaG90c3BvdC9zaGFy ZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcCBiL3NyYy9ob3RzcG90L3NoYXJl L3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCistLS0gYS9zcmMvaG90c3BvdC9z aGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorKysrIGIvc3JjL2hvdHNw b3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKK0BAIC0yMDQsNyAr MjA0LDcgQEAgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbmQoZik7 IH0KKyAjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91Ymxl IGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgI2VsaWYgZGVmaW5lZChMSU5VWCkgfHwgZGVmaW5l ZChfQUxMQlNEX1NPVVJDRSkKKy1pbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJu IGlzbmFuZihmKTsgfQorK2lubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4gaXNu YW4oZik7IH0KKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuKGYp OyB9CisgI2Vsc2UKKyAjZXJyb3IgIm1pc3NpbmcgcGxhdGZvcm0tc3BlY2lmaWMgZGVmaW5pdGlv biBoZXJlIgorZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9s aW51eF9jbG9zZS5jIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Ns b3NlLmMKKy0tLSBhL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9jbG9z ZS5jCisrKysgYi9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2Uu YworQEAgLTYwLDcgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeworIC8qCisgICogU2lnbmFsIHRv IHVuYmxvY2sgdGhyZWFkCisgICovCistc3RhdGljIGludCBzaWdXYWtldXAgPSAoX19TSUdSVE1B WCAtIDIpOworK3N0YXRpYyBpbnQgc2lnV2FrZXVwOworIAorIC8qCisgICogZmRUYWJsZSBob2xk cyBvbmUgZW50cnkgcGVyIGZpbGUgZGVzY3JpcHRvciwgdXAgdG8gYSBjZXJ0YWluCitAQCAtMTQ5 LDYgKzE0OSw3IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlKChjb25zdHJ1Y3RvcikpIGluaXQo KSB7CisgICAgIC8qCisgICAgICAqIFNldHVwIHRoZSBzaWduYWwgaGFuZGxlcgorICAgICAgKi8K KysgICAgc2lnV2FrZXVwID0gU0lHUlRNQVggLSAyOworICAgICBzYS5zYV9oYW5kbGVyID0gc2ln X3dha2V1cDsKKyAgICAgc2Euc2FfZmxhZ3MgICA9IDA7CisgICAgIHNpZ2VtcHR5c2V0KCZzYS5z YV9tYXNrKTsKK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEv Y2hpbGRwcm9jLmMgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9j LmMKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYwor KysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCitAQCAt MjM0LDcgKzIzNCwxMyBAQCBKREtfZXhlY3ZwZShpbnQgbW9kZSwgY29uc3QgY2hhciAqZmlsZSwK KyB7CisgICAgIGlmIChlbnZwID09IE5VTEwgfHwgKGNoYXIgKiopIGVudnAgPT0gZW52aXJvbikg eworICAgICAgICAgZXhlY3ZwKGZpbGUsIChjaGFyICoqKSBhcmd2KTsKKy0gICAgICAgIHJldHVy bjsKKysgICAgICAgIC8vIEVOT0VYRUMgaW5kaWNhdGVzIHRoYXQgdGhlIGZpbGUgaGVhZGVyIHdh cyBub3QgcmVjb2duaXplZC4gVGhlIG11c2wgQworKyAgICAgICAgLy8gbGlicmFyeSBkb2VzIG5v dCBpbXBsZW1lbnQgdGhlIGZhbGxiYWNrIHRvIC9iaW4vc2ggZm9yIHRoYXQgY2FzZSwgc28gZmFs bAorKyAgICAgICAgLy8gdGhyb3VnaCB0byB0aGUgY29kZSBiZWxvdyB3aGljaCBpbXBsZW1lbnRz IHRoYXQgZmFsbGJhY2sgdXNpbmcKKysgICAgICAgIC8vIGV4ZWN2ZV93aXRoX3NoZWxsX2ZhbGxi YWNrLgorKyAgICAgICAgaWYgKGVycm5vICE9IEVOT0VYRUMpIHsKKysgICAgICAgICAgICByZXR1 cm47CisrICAgICAgICB9CisgICAgIH0KKyAKKyAgICAgaWYgKCpmaWxlID09ICdcMCcpIHsKK2Rp ZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQu aCBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRpbF9tZC5oCistLS0g YS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAorKysrIGIv c3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKK0BAIC0zNyw3 ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9f bGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKKyAjaW5jbHVkZSA8bWF0aC5oPgor LSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuKGYp CisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgI2lu Y2x1ZGUgPG1hdGguaD4KK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xp YmpsaS9qYXZhX21kX3NvbGludXguYyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxp L2phdmFfbWRfc29saW51eC5jCistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmps aS9qYXZhX21kX3NvbGludXguYworKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJq bGkvamF2YV9tZF9zb2xpbnV4LmMKK0BAIC0yMzUsNiArMjM1LDM5IEBAIFJlcXVpcmVzU2V0ZW52 KGNvbnN0IGNoYXIgKmp2bXBhdGgpIHsKKyAgICAgY2hhciAqZG1sbHAgPSBOVUxMOworICAgICBj aGFyICpwOyAvKiBhIHV0aWxpdHkgcG9pbnRlciAqLworIAorKyNpZmRlZiBfX2xpbnV4CisrI2lm bmRlZiBMSUJDCisrI2Vycm9yICJMSUJDIG5vdCBzZXQiCisrI2VuZGlmCisrCisrICAgIGlmIChz dHJjbXAoTElCQywgIm11c2wiKSA9PSAwKSB7CisrICAgICAgLyoKKysgICAgICAgKiBUaGUgbXVz bCBsaWJyYXJ5IGxvYWRlciByZXF1aXJlcyBMRF9MSUJSQVJZX1BBVEggdG8gYmUgc2V0IGluCisr ICAgICAgICogb3JkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUgdGhlIGRlcGVuZGVuY3kgbGliamF2 YS5zbyBoYXMgb24gbGlianZtLnNvLgorKyAgICAgICAqCisrICAgICAgICogU3BlY2lmaWNhbGx5 LCBpdCBkaWZmZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNlIHRoYXQgZXZlbiBpZgorKyAgICAg ICAqIGxpYmp2bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBpdCB3aWxsIG5vdCBiZSBjb25z aWRlcmVkIGEKKysgICAgICAgKiBjYW5kaWRhdGUgZm9yIHJlc29sdmluZyB0aGUgZGVwZW5kZW5j eSB1bmxlc3MgdGhlICpmdWxsKiBwYXRoCisrICAgICAgICogb2YgdGhlIGFscmVhZHkgbG9hZGVk IGxpYnJhcnkgbWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWluZyBsb2FkZWQuCisrICAgICAgICoK KysgICAgICAgKiBsaWJqdm0uc28gaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBsYXVuY2hlciB1c2lu ZyBhIGxvbmcgcGF0aCB0bworKyAgICAgICAqIGRsb3Blbiwgbm90IGp1c3QgdGhlIGJhc2VuYW1l IG9mIHRoZSBsaWJyYXJ5LiBUeXBpY2FsbHkgdGhpcworKyAgICAgICAqIGlzIHNvbWV0aGluZyBs aWtlICIuLi9saWIvc2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2ZXIsIGlmL3doZW4KKysgICAgICAg KiBsaWJqdm0uc28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxpYmphdmEuc28gKHdoaWNoIGl0IGRv ZXMgaW4KKysgICAgICAgKiBvcmRlciB0byBnZXQgYWNjZXNzIHRvIGEgZmV3IGZ1bmN0aW9ucyBp bXBsZW1lbnRlZCBpbgorKyAgICAgICAqIGxpYmphdmEuc28pIHRoZSBtdXNsIGxvYWRlciB3aWxs LCBhcyBwYXJ0IG9mIGxvYWRpbmcKKysgICAgICAgKiBkZXBlbmRlbnQgbGlicmFyaWVzLCB0cnkg dG8gbG9hZCBsaWJqdm0uc28gdXNpbmcgb25seSBpdHMKKysgICAgICAgKiBiYXNlbmFtZSAibGli anZtLnNvIi4gU2luY2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0aGUgbG9uZ2VyCisrICAgICAgICog cGF0aCBwYXRoIGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwgdGhlIGFscmVhZHkgbG9hZGVkCisr ICAgICAgICogbGlicmFyeSBpcyBub3QgY29uc2lkZXJlZCBhIGNhbmRpZGF0ZSwgYW5kIHRoZSBs b2FkZXIgd2lsbAorKyAgICAgICAqIGluc3RlYWQgbG9vayBmb3IgbGlianZtLnNvIGVsc2V3aGVy ZS4gSWYgaXQncyBub3QgaW4KKysgICAgICAgKiBMRF9MSUJSQVJZX1BBVEggdGhlIGRlcGVuZGVu Y3kgbG9hZCB3aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNvCisrICAgICAgICogd2lsbCB0aGVyZWZv cmUgZmFpbCBhcyB3ZWxsLgorKyAgICAgICAqLworKyAgICAgIHJldHVybiBKTklfVFJVRTsKKysg ICAgfQorKyNlbmRpZgorKworICNpZmRlZiBBSVgKKyAgICAgLyogV2UgYWx3YXlzIGhhdmUgdG8g c2V0IHRoZSBMSUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3VwcG9ydCAkT1JJR0lO LiAqLworICAgICByZXR1cm4gSk5JX1RSVUU7CitkaWZmIC0tZ2l0IGEvc3JjL2phdmEuYmFzZS91 bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMgYi9zcmMvamF2YS5iYXNlL3VuaXgv bmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4 L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5p eC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCitAQCAtMzYsNyArMzYsNyBAQAorICNp ZmRlZiBfX2xpbnV4X18KKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgICAvKiBBbHNvIGRlZmlu ZWQgaW4gbmV0L2xpbnV4X2Nsb3NlLmMgKi8KKy0gICNkZWZpbmUgSU5URVJSVVBUX1NJR05BTCAo X19TSUdSVE1BWCAtIDIpCisrICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKFNJR1JUTUFYIC0g MikKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyog QWxzbyBkZWZpbmVkIGluIG5ldC9haXhfY2xvc2UuYyAqLworZGlmZiAtLWdpdCBhL3NyYy9qYXZh LmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jIGIvc3JjL2ph dmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMKKy0tLSBh L3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5j CisrKysgYi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRv b2xraXQuYworQEAgLTI3LDkgKzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2lu Y2x1ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGlu dXhfXworLSNpbmNsdWRlIDxleGVjaW5mby5oPgorLSNlbmRpZgorIAorICNpbmNsdWRlIDxqdm0u aD4KKyAjaW5jbHVkZSA8am5pLmg+CitAQCAtNzkxLDI2ICs3ODgsNiBAQCBKTklFWFBPUlQganN0 cmluZyBKTklDQUxMIEphdmFfc3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52CisgICAgIHJldHVy biByZXQ7CisgfQorIAorLSNpZmRlZiBfX2xpbnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZvaWQp CisteworLSAgdm9pZCAqYXJyYXlbMTBdOworLSAgc2l6ZV90IHNpemU7CistICBjaGFyICoqc3Ry aW5nczsKKy0gIHNpemVfdCBpOworLQorLSAgc2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEwKTsK Ky0gIHN0cmluZ3MgPSBiYWNrdHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUpOworLQorLSAgZnBy aW50ZiAoc3RkZXJyLCAiT2J0YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOworLQor LSAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwgIiVz XG4iLCBzdHJpbmdzW2ldKTsKKy0KKy0gIGZyZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYKKy0K KyBXaW5kb3cgZ2V0X3hhd3Rfcm9vdF9zaGVsbChKTklFbnYgKmVudikgeworICAgc3RhdGljIGpj bGFzcyBjbGFzc1hSb290V2luZG93ID0gTlVMTDsKKyAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0aG9k R2V0WFJvb3RXaW5kb3cgPSBOVUxMOworZGlmZiAtLWdpdCBhL3NyYy9qZGsuamR3cC5hZ2VudC9z aGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmggYi9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0 aXZlL2xpYmpkd3AvdXRpbC5oCistLS0gYS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZl L2xpYmpkd3AvdXRpbC5oCisrKysgYi9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xp Ympkd3AvdXRpbC5oCitAQCAtMzUsMTUgKzM1LDE1IEBACisgI2lmZGVmIERFQlVHCisgICAgIC8q IEp1c3QgdG8gbWFrZSBzdXJlIHRoZXNlIGludGVyZmFjZXMgYXJlIG5vdCB1c2VkIGhlcmUuICov CisgICAgICN1bmRlZiBmcmVlCistICAgICNkZWZpbmUgZnJlZShwKSBEbyBub3QgdXNlIHRoaXMg aW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGZyZWUgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9m cmVlCisgICAgICN1bmRlZiBtYWxsb2MKKy0gICAgI2RlZmluZSBtYWxsb2MocCkgRG8gbm90IHVz ZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBtYWxsb2MgZG9fbm90X3VzZV90aGlzX2lu dGVyZmFjZV9tYWxsb2MKKyAgICAgI3VuZGVmIGNhbGxvYworLSAgICAjZGVmaW5lIGNhbGxvYyhw KSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGNhbGxvYyBkb19ub3Rf dXNlX3RoaXNfaW50ZXJmYWNlX2NhbGxvYworICAgICAjdW5kZWYgcmVhbGxvYworLSAgICAjZGVm aW5lIHJlYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBy ZWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfcmVhbGxvYworICAgICAjdW5kZWYgc3Ry ZHVwCistICAgICNkZWZpbmUgc3RyZHVwKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisr ICAgICNkZWZpbmUgc3RyZHVwIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2Vfc3RyZHVwCisgI2Vu ZGlmCisgCisgI2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgorZGlmZiAtLWdpdCBhL3Rlc3QvaG90 c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYyBiL3Rlc3QvaG90 c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworLS0tIGEvdGVz dC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCisrKysg Yi90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMK K0BAIC0zMyw2ICszMyw3IEBACisgCisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRlIDxq bmkuaD4KKysjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUgPGFsbG9jYS5oPgorICNpbmNsdWRl IDxzaWduYWwuaD4KKyAjaW5jbHVkZSA8c3RyaW5nLmg+CitAQCAtOTEsNiArOTIsMjAgQEAgdm9p ZCBzZXRfc2lnbmFsX2hhbmRsZXIoKSB7CisgICB9CisgfQorIAorK2ludCBnZXRfamF2YV9zdGFj a3NpemUgKCkgeworKyAgc2l6ZV90IHN0YWNrc2l6ZTsKKysgIHB0aHJlYWRfYXR0cl90IGF0dHI7 CisrICBKREsxXzFJbml0QXJncyBqZGtfYXJnczsKKysKKysgIGpka19hcmdzLnZlcnNpb24gPSBK TklfVkVSU0lPTl8xXzE7CisrICBKTklfR2V0RGVmYXVsdEphdmFWTUluaXRBcmdzKCZqZGtfYXJn cyk7CisrICBpZiAoamRrX2FyZ3MuamF2YVN0YWNrU2l6ZSA8PSAwKSB7CisrICAgIGZwcmludGYo c3RkZXJyLCAiVGVzdCBFUlJPUi4gQ2FuJ3QgZ2V0IGEgdmFsaWQgdmFsdWUgZm9yIHRoZSBkZWZh dWx0IHN0YWNrc2l6ZS5cbiIpOworKyAgICBleGl0KDcpOworKyAgfQorKyAgcmV0dXJuIGpka19h cmdzLmphdmFTdGFja1NpemU7CisrfQorKworIHZvaWQgKnJ1bl9qYXZhX292ZXJmbG93ICh2b2lk ICpwKSB7CisgICBKTklFbnYgKmVudjsKKyAgIGpjbGFzcyBjbGFzc19pZDsKK0BAIC0yNTQsMTMg KzI2OSwxOSBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSB7CisgICAg IGV4aXQoNyk7CisgICB9CisgCisrICBpbnQgc3RhY2tfc2l6ZSA9IGdldF9qYXZhX3N0YWNrc2l6 ZSgpOworICAgcHRocmVhZF90IHRocjsKKysgIHB0aHJlYWRfYXR0cl90IHRocmVhZF9hdHRyOwor KworKyAgcHRocmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRyKTsKKysgIHB0aHJlYWRfYXR0cl9z ZXRzdGFja3NpemUoJnRocmVhZF9hdHRyLCBzdGFja19zaXplKTsKKyAKKyAgIGlmIChhcmdjID4g MSAmJiBzdHJjbXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVyZmxvdyIpID09IDApIHsKKyAgICAg cHJpbnRmKCJcblRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7CisgCisgICAgIHByaW50ZigiVGVz dGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsKKy0g ICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxMKTsK KysKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX2phdmFfb3Zl cmZsb3csIE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisgCisgICAgIHBy aW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0aHJl YWRcbiIpOworQEAgLTI3Myw3ICsyOTQsNyBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNo YXIqKiBhcmd2KSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIE5BVElWRV9PVkVSRkxPV1xuIik7 CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Ig b3RoZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9u YXRpdmVfb3ZlcmZsb3csIE5VTEwpOworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRocmVh ZF9hdHRyLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0 aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhh dmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpk azEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoIGIvc3JjcGtncy9vcGVu amRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMzA2ZDUwMWU0YjgKLS0tIC9kZXYvbnVsbAor KysgYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5w YXRjaApAQCAtMCwwICsxLDQ1IEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5l IGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGEx YWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3Bv dC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1 L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCitAQCAtNDcsNiArNDcsOCBAQAorICNpbmNsdWRl ICJvcHRvL2ludHJpbnNpY25vZGUuaHBwIgorICNlbmRpZgorIAorKyNpbmNsdWRlIDxhc20vcHRy YWNlLmg+CisrCisgI2lmZGVmIFBST0RVQ1QKKyAjZGVmaW5lIEJMT0NLX0NPTU1FTlQoc3RyKSAv LyBub3RoaW5nCisgI2Vsc2UKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9u X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAK K0BAIC04NDUsNyArODQ1LDcgQEAgdm9pZCBWTV9WZXJzaW9uOjpkZXRlcm1pbmVfZmVhdHVyZXMo KSB7CisgICB1bnNpZ25lZCBsb25nIGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsKKyAKKyAg IGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTV9OT1NDKSB7CistICAgIGlmIChhdXh2ICYgUFBD X0ZFQVRVUkUyX0hBU19IVE0pIHsKKysgICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNKSB7 CisgICAgICAgLy8gVE0gb24gUE9XRVI4IGFuZCBQT1dFUjkgaW4gY29tcGF0IG1vZGUgKFZNKSBp cyBzdXBwb3J0ZWQgYnkgdGhlIEpWTS4KKyAgICAgICAvLyBUTSBvbiBQT1dFUjkgREQyLjEgTlYg KGJhcmVtZXRhbCkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgSlZNIChUTSBvbgorICAgICAgIC8v IFBPV0VSOSBERDIuMSBOViBoYXMgYSBmZXcgaXNzdWVzIHRoYXQgbmVlZCBhIGNvdXBsZSBvZiBm aXJtd2FyZQorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3Bw Yy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMu Y3BwCitAQCAtNzUsNyArNzUsNyBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxw b2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLQorKyMgaW5jbHVkZSA8YXNtL3B0cmFj ZS5oPgorIAorIGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAgIGludHB0 cl90KiBjc3A7CistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xp bnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRf bGludXhfcHBjLmNwcAorQEAgLTIzLDYgKzIzLDggQEAKKyAgKgorICAqLworIAorKyNpbmNsdWRl IDxhc20vcHRyYWNlLmg+CisrCisgI2luY2x1ZGUgInByZWNvbXBpbGVkLmhwcCIKKyAjaW5jbHVk ZSAicnVudGltZS9mcmFtZS5pbmxpbmUuaHBwIgorICNpbmNsdWRlICJydW50aW1lL3RocmVhZC5o cHAiCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL3g4Ni5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMveDg2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uOWM2NGMxODkwMzZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTMtYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAKK1Bh dGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGlu ZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2 MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGlu dXhfeDg2LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4 X3g4Ni5jcHAKK0BAIC05MCw2ICs5MCwxMjYgQEAKKyAjZGVmaW5lIFNQRUxMX1JFR19GUCAiZWJw IgorICNlbmRpZiAvLyBBTUQ2NAorCisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gVGFr ZW4gZnJvbSBnbGliYyAyLjI4CisrLy8gc291cmNlOiBodHRwczovL3NvdXJjZXdhcmUub3JnL2dp dC8/cD1nbGliYy5naXQ7YT1ibG9iO2Y9c3lzZGVwcy94ODYvZnB1X2NvbnRyb2wuaDtoPTRjYjk4 YzU2NzliMjg5N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4OWUyNGQ7aGI9M2MwM2JhY2EzN2ZkY2I1MmMz ODgxZTY1M2NhMzkyYmJhN2E5OWMyYgorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyNpZm5k ZWYgQU1ENjQKKysvKiBGUFUgY29udHJvbCB3b3JkIGJpdHMuICB4ODYgdmVyc2lvbi4KKysgICBD b3B5cmlnaHQgKEMpIDE5OTMtMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysg ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysgICBDb250cmlidXRl ZCBieSBPbGFmIEZsZWJiZS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3 YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIg dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBh cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAg dmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy IHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFO VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisr ICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysg ICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBu b3QsIHNlZQorKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lm bmRlZiBfRlBVX0NPTlRST0xfSAorKyNkZWZpbmUgX0ZQVV9DT05UUk9MX0gJMQorKworKy8qIE5v dGUgdGhhdCB0aGlzIGZpbGUgc2V0cyBvbiB4ODYtNjQgb25seSB0aGUgeDg3IEZQVSwgaXQgZG9l cyBub3QKKysgICB0b3VjaCB0aGUgU1NFIHVuaXQuICAqLworKworKy8qIEhlcmUgaXMgdGhlIGRp cnR5IHBhcnQuIFNldCB1cCB5b3VyIDM4NyB0aHJvdWdoIHRoZSBjb250cm9sIHdvcmQKKysgKiAo Y3cpIHJlZ2lzdGVyLgorKyAqCisrICogICAgIDE1LTEzICAgIDEyICAxMS0xMCAgOS04ICAgICA3 LTYgICAgIDUgICAgNCAgICAzICAgIDIgICAgMSAgICAwCisrICogfCByZXNlcnZlZCB8IElDIHwg UkMgIHwgUEMgfCByZXNlcnZlZCB8IFBNIHwgVU0gfCBPTSB8IFpNIHwgRE0gfCBJTQorKyAqCisr ICogSU06IEludmFsaWQgb3BlcmF0aW9uIG1hc2sKKysgKiBETTogRGVub3JtYWxpemVkIG9wZXJh bmQgbWFzaworKyAqIFpNOiBaZXJvLWRpdmlkZSBtYXNrCisrICogT006IE92ZXJmbG93IG1hc2sK KysgKiBVTTogVW5kZXJmbG93IG1hc2sKKysgKiBQTTogUHJlY2lzaW9uIChpbmV4YWN0IHJlc3Vs dCkgbWFzaworKyAqCisrICogTWFzayBiaXQgaXMgMSBtZWFucyBubyBpbnRlcnJ1cHQuCisrICoK KysgKiBQQzogUHJlY2lzaW9uIGNvbnRyb2wKKysgKiAxMSAtIHJvdW5kIHRvIGV4dGVuZGVkIHBy ZWNpc2lvbgorKyAqIDEwIC0gcm91bmQgdG8gZG91YmxlIHByZWNpc2lvbgorKyAqIDAwIC0gcm91 bmQgdG8gc2luZ2xlIHByZWNpc2lvbgorKyAqCisrICogUkM6IFJvdW5kaW5nIGNvbnRyb2wKKysg KiAwMCAtIHJvdW5kaW5nIHRvIG5lYXJlc3QKKysgKiAwMSAtIHJvdW5kaW5nIGRvd24gKHRvd2Fy ZCAtIGluZmluaXR5KQorKyAqIDEwIC0gcm91bmRpbmcgdXAgKHRvd2FyZCArIGluZmluaXR5KQor KyAqIDExIC0gcm91bmRpbmcgdG93YXJkIHplcm8KKysgKgorKyAqIElDOiBJbmZpbml0eSBjb250 cm9sCisrICogVGhhdCBpcyBmb3IgODA4NyBhbmQgODAyODcgb25seS4KKysgKgorKyAqIFRoZSBo YXJkd2FyZSBkZWZhdWx0IGlzIDB4MDM3ZiB3aGljaCB3ZSB1c2UuCisrICovCisrCisrI2luY2x1 ZGUgPGZlYXR1cmVzLmg+CisrCisrLyogbWFza2luZyBvZiBpbnRlcnJ1cHRzICovCisrI2RlZmlu ZSBfRlBVX01BU0tfSU0gIDB4MDEKKysjZGVmaW5lIF9GUFVfTUFTS19ETSAgMHgwMgorKyNkZWZp bmUgX0ZQVV9NQVNLX1pNICAweDA0CisrI2RlZmluZSBfRlBVX01BU0tfT00gIDB4MDgKKysjZGVm aW5lIF9GUFVfTUFTS19VTSAgMHgxMAorKyNkZWZpbmUgX0ZQVV9NQVNLX1BNICAweDIwCisrCisr LyogcHJlY2lzaW9uIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfRVhURU5ERUQgMHgzMDAJLyog bGlibSByZXF1aXJlcyBkb3VibGUgZXh0ZW5kZWQgcHJlY2lzaW9uLiAgKi8KKysjZGVmaW5lIF9G UFVfRE9VQkxFICAgMHgyMDAKKysjZGVmaW5lIF9GUFVfU0lOR0xFICAgMHgwCisrCisrLyogcm91 bmRpbmcgY29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ORUFSRVNUIDB4MCAgICAvKiBSRUNP TU1FTkRFRCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ET1dOICAgIDB4NDAwCisrI2RlZmluZSBfRlBV X1JDX1VQICAgICAgMHg4MDAKKysjZGVmaW5lIF9GUFVfUkNfWkVSTyAgICAweEMwMAorKworKyNk ZWZpbmUgX0ZQVV9SRVNFUlZFRCAweEYwQzAgIC8qIFJlc2VydmVkIGJpdHMgaW4gY3cgKi8KKysK KysKKysvKiBUaGUgZmRsaWJtIGNvZGUgcmVxdWlyZXMgc3RyaWN0IElFRUUgZG91YmxlIHByZWNp c2lvbiBhcml0aG1ldGljLAorKyAgIGFuZCBubyBpbnRlcnJ1cHRzIGZvciBleGNlcHRpb25zLCBy b3VuZGluZyB0byBuZWFyZXN0LiAgKi8KKysKKysjZGVmaW5lIF9GUFVfREVGQVVMVCAgMHgwMzdm CisrCisrLyogSUVFRTogIHNhbWUgYXMgYWJvdmUuICAqLworKyNkZWZpbmUgX0ZQVV9JRUVFICAg ICAweDAzN2YKKysKKysvKiBUeXBlIG9mIHRoZSBjb250cm9sIHdvcmQuICAqLworK3R5cGVkZWYg dW5zaWduZWQgaW50IGZwdV9jb250cm9sX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJ X18pKSk7CisrCisrLyogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGhhcmR3YXJlIGNvbnRyb2wg d29yZC4gICIqJiIgaXMgdXNlZCB0bworKyAgIHdvcmsgYXJvdW5kIGEgYnVnIGluIG9sZGVyIHZl cnNpb25zIG9mIEdDQy4gIF9fdm9sYXRpbGVfXyBpcyB1c2VkCisrICAgdG8gc3VwcG9ydCBjb21i aW5hdGlvbiBvZiB3cml0aW5nIHRoZSBjb250cm9sIHJlZ2lzdGVyIGFuZCByZWFkaW5nCisrICAg aXQgYmFjay4gIFdpdGhvdXQgX192b2xhdGlsZV9fLCB0aGUgb2xkIHZhbHVlIG1heSBiZSB1c2Vk IGZvciByZWFkaW5nCisrICAgYmFjayB1bmRlciBjb21waWxlciBvcHRpbWl6YXRpb24uCisrCisr ICAgTm90ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlc2UgbWFjcm9zIGlzIG5vdCBzdWZmaWNpZW50IGFu eW1vcmUgd2l0aAorKyAgIHJlY2VudCBoYXJkd2FyZSBub3Igb24geDg2LTY0LiAgU29tZSBmbG9h dGluZyBwb2ludCBvcGVyYXRpb25zIGFyZQorKyAgIGV4ZWN1dGVkIGluIHRoZSBTU0UvU1NFMiBl bmdpbmVzIHdoaWNoIGhhdmUgdGhlaXIgb3duIGNvbnRyb2wgYW5kCisrICAgc3RhdHVzIHJlZ2lz dGVyLiAgKi8KKysjZGVmaW5lIF9GUFVfR0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgi Zm5zdGN3ICUwIiA6ICI9bSIgKComY3cpKQorKyNkZWZpbmUgX0ZQVV9TRVRDVyhjdykgX19hc21f XyBfX3ZvbGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJtIiAoKiZjdykpCisrCisrLyogRGVmYXVs dCBjb250cm9sIHdvcmQgc2V0IGF0IHN0YXJ0dXAuICAqLworK2V4dGVybiBmcHVfY29udHJvbF90 IF9fZnB1X2NvbnRyb2w7CisrCisrI2VuZGlmCS8qIGZwdV9jb250cm9sLmggKi8KKysKKysjZW5k aWYgLy8gQU1ENjQKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKyBhZGRyZXNzIG9zOjpjdXJy ZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgI2lmZGVmIFNQQVJDX1dPUktTCisgICByZWdpc3RlciB2 b2lkICplc3A7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxh dGUgYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wZWNhODY4NDI4NDIKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVtcGxhdGUKQEAgLTAsMCArMSwxMTcgQEAK KyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGsxMy1ib290c3RyYXAnCitfamF2YV92ZXI9MTMK K19qYXZhX21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj01CitfamF2YV9wYXRjaF92ZXI9MQorX2pk a191cGRhdGU9MQorX2pka19ob21lPSJ1c3IvbGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9Igor X2Jhc2VfdmVyc2lvbj0iJHtfamF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9zZWNf dmVyfS4ke19qYXZhX3BhdGNoX3Zlcn0iCisKK3BrZ25hbWU9b3BlbmpkazEzLWJvb3RzdHJhcAor dmVyc2lvbj0iJHtfYmFzZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3JldmlzaW9uPTEKK3dy a3NyYz0iamRrJHtfamF2YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWdudS1j b25maWd1cmUKK2NvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCisg LS1wcmVmaXg9JHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91c3IvbGliCisg LS1lbmFibGUtdW5saW1pdGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQorIC0td2l0aC1s aWJqcGVnPXN5c3RlbQorIC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxpYnBuZz1zeXN0 ZW0KKyAtLXdpdGgtbGNtcz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdpdGgtdmVyc2lv bi1idWlsZD0kX2phdmFfdmVyCisgLS13aXRoLWpvYnM9JFhCUFNfT1JJR19NQUtFSk9CUworIC0t d2l0aC12ZW5kb3ItbmFtZT1Wb2lkCisgLS13aXRoLXZlbmRvci11cmw9aHR0cHM6Ly92b2lkbGlu dXgub3JnLworIC0td2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dpdGh1Yi5jb20vdm9pZC1s aW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC12ZW5kb3Itdm0tYnVnLXVybD1odHRw czovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC1i b290LWpkaz0vdXNyL2xpYi9qdm0vb3BlbmpkazEyIgorbWFrZV9idWlsZF9hcmdzPSJpbWFnZXMi CittYWtlX2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0IgoraG9zdG1ha2VkZXBlbmRz PSJwa2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFyIHVuemlwIHppcCBjYS1jZXJ0 aWZpY2F0ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1ha2UtY2Egb3BlbmpkazEyLWJv b3RzdHJhcCIKK21ha2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGli WHQtZGV2ZWwgbGliWHJhbmRyLWRldmVsCisgZ2lmbGliLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2 ZWwgY3Vwcy1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1kZXZlbAorIGZvbnRjb25maWct ZGV2ZWwgemxpYi1kZXZlbCBsY21zMi1kZXZlbCIKK3Byb3ZpZGVzPSJqYXZhLWVudmlyb25tZW50 LSR7dmVyc2lvbn1fMSBqYXZhLXJ1bnRpbWUtJHt2ZXJzaW9ufV8xIgorc2hvcnRfZGVzYz0iT3Bl bkpESyBKYXZhIERldmVsb3BtZW50IEtpdCAoYm9vdHN0cmFwIHZlcnNpb24gMTMpIgorbWFpbnRh aW5lcj0iY2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb25seSBX SVRIIENsYXNzcGF0aC1leGNlcHRpb24tMi4wIgoraG9tZXBhZ2U9Imh0dHBzOi8vb3Blbmpkay5q YXZhLm5ldC8iCitkaXN0ZmlsZXM9Imh0dHBzOi8vaGcub3Blbmpkay5qYXZhLm5ldC9qZGstdXBk YXRlcy9qZGske19qYXZhX3Zlcn11L2FyY2hpdmUvamRrLSR7dmVyc2lvbn0udGFyLmd6IgorY2hl Y2tzdW09YzhmZjZjZWRhNzFlYzc1YWVlZGE2ZDAzNzIwNWY2MmZiNWE1ZjRjNTlhNTcyNDA4MjAx YjRiZTlmMDBiZGEwMworbGliMzJkaXNhYmxlZD15ZXMKK25vY3Jvc3M9eWVzCisKKyMgQnVpbGQg aXMgc3RpbGwgcGFyYWxsZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgorZGlzYWJsZV9wYXJhbGxlbF9i dWlsZD15ZXMKKworIyBubyBob3RzcG90IEpJVCBmb3IgcHBjMzIKK2Nhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgorCXBwYzY0KikgOzsKKwlwcGMqKSBfdXNlX3plcm89eWVzIDs7Citlc2Fj CisKK2lmIFsgLW4gIiRfdXNlX3plcm8iIF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJmZmkt ZGV2ZWwiCisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWp2bS12YXJpYW50cz16ZXJvIgorCWNh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGMqKSBjb25maWd1cmVfYXJncys9IiAt LXdpdGgtYm9vdC1qZGstanZtYXJncz0tWFg6VGhyZWFkU3RhY2tTaXplPTI1NjAiOzsKKwllc2Fj CitmaQorCitwb3N0X2V4dHJhY3QoKSB7CisJY2htb2QgK3ggY29uZmlndXJlCisJaWYgWyAiJFhC UFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJcm0gLXIgc3JjL2pkay5ob3RzcG90 LmFnZW50CisJZmkKK30KKworcG9zdF9wYXRjaCgpIHsKKwlpZiBbICIkWEJQU19UQVJHRVRfTElC QyIgPSAibXVzbCIgXTsgdGhlbgorCQlmb3IgZiBpbiAiJHtGSUxFU0RJUn0iL211c2xfcGF0Y2hl cy8qLnBhdGNoOyBkbworCQkJbXNnX25vcm1hbCAiQXBwbHlpbmcgJHtmIyRGSUxFU0RJUi99XG4i CisJCQlwYXRjaCAtTnAxIC1pICIkZiIKKwkJZG9uZQorCWZpCit9CisKK2RvX2NvbmZpZ3VyZSgp IHsKKwlDRkxBR1M9JHtDRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99CisJQ1hYRkxBR1M9JHtD WFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKworCSMgZm9yY2UgRUxGdjIgZm9yIHBwYzY0 IGp1c3QgaW4gY2FzZQorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCop CisJCQlDRkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQlDWFhGTEFHUys9IiAtREFCSV9FTEZ2MiIK KwkJCTs7CisJZXNhYworCisJIyBjb21wYXRpYmlsaXR5IHdpdGggR0NDIDEwLngKKwlDRkxBR1Mr PSIgLWZjb21tb24gLWZuby1saWZldGltZS1kc2UiCisJQ1hYRkxBR1MrPSIgLWZjb21tb24gLWZu by1saWZldGltZS1kc2UiCisKKwljb25maWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0 aC1saWJ0b29sLXN5c3Jvb3Q9XC91c3JcL1thLXowLTldKi1saW51eC1bYS16XSovfQorCWlmIFsg IiRYQlBTX0NDQUNIRSIgXTsgdGhlbgorCQljb25maWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2Fj aGUiCisJZmkKKwlDQz0iL3Vzci9iaW4vY2MiCisJQ1hYPSIvdXNyL2Jpbi9jKysiCisJLi9jb25m aWd1cmUgJHtjb25maWd1cmVfYXJnc30gXAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdT IiBcCisJCS0td2l0aC1leHRyYS1jeHhmbGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRy YS1sZGZsYWdzPSIkTERGTEFHUyIgXAorCQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0k U1RSSVAgTk09JE5NIFwKKwkJT0JKRFVNUD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisK K3Bvc3RfaW5zdGFsbCgpIHsKKwltdiAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtf YmFzZV92ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RESVJ9LyRfamRrX2hvbWUKKwlybSAtcmYgJHtE RVNURElSfS91c3IvbGliL2JpbgorCXJtIC1mICRERVNURElSLyRfamRrX2hvbWUvbGliL3NyYy56 aXAKKwl2bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CgpG cm9tIGYwMjgyYWI3YWM2MmUyYjdmMzA4ZTkwYzhlZWUzYzViZDQ4NzQ3YmQgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxCkZyb206IGNsYXNzYWJieWFtcCA8ZGV2QGtiNi5lZT4KRGF0ZTogVHVlLCAx MSBKYW4gMjAyMiAwMzoxMzo0NCAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDQvMTFdIE5ldyBwYWNr YWdlOiBvcGVuamRrMTQtYm9vdHN0cmFwLTE0LjAuMisxMgpNSU1FLVZlcnNpb246IDEuMApDb250 ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1FbmNv ZGluZzogOGJpdAoKQ28tYXV0aG9yZWQtYnk6IMSQb8OgbiBUcuG6p24gQ8O0bmcgRGFuaCA8Y29u Z2RhbmhxeEBnbWFpbC5jb20+CkNvLWF1dGhvcmVkLWJ5OiBUYWkgQ2hpIE1pbmggUmFscGggRWFz dHdvb2QgPHRjbXJlYXN0d29vZEBnbWFpbC5jb20+Ci0tLQogLi4uL2ZpbGVzL211c2xfcGF0Y2hl cy9hYXJjaDY0LnBhdGNoICAgICAgICAgIHwgIDEwICsKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMv YXJtLnBhdGNoICAgICAgICAgICAgICB8ICAyMSArCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2J1 aWxkLnBhdGNoICAgICAgICAgICAgfCAzNzIgKysrKysrKysrKysrKysrKysrCiAuLi4vZmlsZXMv bXVzbF9wYXRjaGVzL3BwYy5wYXRjaCAgICAgICAgICAgICAgfCAgNDUgKysrCiAuLi4vZmlsZXMv bXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCAgICAgICAgICAgICAgfCAxMzAgKysrKysrCiBzcmNwa2dz L29wZW5qZGsxNC1ib290c3RyYXAvdGVtcGxhdGUgICAgICAgICAgfCAxMTUgKysrKysrCiA2IGZp bGVzIGNoYW5nZWQsIDY5MyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtn cy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xf cGF0Y2hlcy9hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2 NDQgc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMv bXVzbF9wYXRjaGVzL3g4Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpk azE0LWJvb3RzdHJhcC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE0LWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCBiL3NyY3BrZ3Mvb3Blbmpk azE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNmM1ZDRkMmJlMgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFy Y2g2NC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGlu dXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1 L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BAIC03NCw3ICs3NCw2IEBACisg IyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250 ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorIAorICNkZWZpbmUgUkVHX0ZQIDI5 CisgI2RlZmluZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3Rz dHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTQtYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAwLi4xMDI0MjhmMTBmMzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNw a2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApAQCAt MCwwICsxLDIxIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4 X2FybS5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJt LmNwcAorQEAgLTczLDYgKzczLDE4IEBACisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorICMgaW5j bHVkZSA8YXNtL3B0cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNrIGFzIHRoZSBvcmlnaW4gaWYg YmVsb3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8KKysvLyBvc19saW51eF9h cm0uY3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0b3IgYmVmb3JlIHRva2Vu ICIoIgorKy8vICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+fgorKy8vCisrLy8gVGhl IE5HUkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2UgaXQgdG8gdGhhdCB2YWx1 ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRpZgorKyNkZWZpbmUgTkdS RUcgMTgKKysKKyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgorIAorIC8vIERvbid0ICNkZWZp bmUgU1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5vdCBzYWZlIHRvIHVzZSwg c28gdGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZmIC0tZ2l0IGEvc3JjcGtn cy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCBiL3Ny Y3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42MGRmZGVjMzBhYmMKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzcyIEBACistLS0gYS9tYWtlL1JlbGVhc2VG aWxlLmdtaworKysrIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01Myw2ICs1Myw3IEBAIGRl ZmluZSBjcmVhdGUtaW5mby1maWxlCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJKQVZBX1ZF UlNJT05fREFURSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVt LCAiT1NfTkFNRSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisgICAkKGNhbGwgaW5mby1m aWxlLWl0ZW0sICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FSQ0gpIikKKysgICQoY2Fs bCBpbmZvLWZpbGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYKKyAKKyAjIFBhcmFtIDEg LSBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBNT0RVTEVTIGxpc3QKKy0tLSBhL21ha2UvaG90c3Bv dC9saWIvQ29tcGlsZUp2bS5nbWsKKysrKyBiL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5n bWsKK0BAIC03Myw2ICs3Myw3IEBAIENGTEFHU19WTV9WRVJTSU9OIDo9IFwKKyAgICAgLURIT1RT UE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJOQU1FKSInIFwKKyAgICAgLURIT1RTUE9UX1ZNX0RJU1RS Tz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8pIicgXAorICAgICAtRENQVT0nIiQoT1BFTkpES19UQVJH RVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAorKyAgICAtRExJQkM9JyJtdXNsIicgXAorICAgICAjCisg CisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0tLSBhL21ha2UvbGliL0NvcmVMaWJyYXJpZXMu Z21rCisrKysgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworQEAgLTE5MCw2ICsxOTAsNyBA QCBpZmVxICgkKGNhbGwgaXNUYXJnZXRPcywgd2luZG93cyksIHRydWUpCisgZW5kaWYKKyAKKyBM SUJKTElfQ0ZMQUdTICs9ICQoTElCWl9DRkxBR1MpCisrTElCSkxJX0NGTEFHUyArPSAtRExJQkM9 XCJtdXNsXCIKKyAKKyBpZm5lcSAoJChVU0VfRVhURVJOQUxfTElCWiksIHRydWUpCisgICBMSUJK TElfRVhUUkFfRklMRVMgKz0gXAorLS0tIGEvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXgu Y3BwCisrKysgYi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKK0BAIC0xMDIsNyAr MTAyLDYgQEAKKyAjIGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVkZSA8c3lzY2FsbC5oPgor ICMgaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdudS9saWJjLXZlcnNpb24u aD4KKyAjIGluY2x1ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5cy9zaG0uaD4KKyAjIGlu Y2x1ZGUgPGxpbmsuaD4KK0BAIC01OTcsNiArNTk2LDEyIEBAIHZvaWQgb3M6OkxpbnV4Ojpob3Rz cG90X3NpZ21hc2soVGhyZWFkKiB0aHJlYWQpIHsKKyAvLyBkZXRlY3RpbmcgcHRocmVhZCBsaWJy YXJ5CisgCisgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKysjaWYgIWRlZmlu ZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAgLy8gSGFyZCBjb2RlIEFs cGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRpbmdzCisrICAvLyBzZ246 IE5QVEwgaXMgY29ycmVjdCwgZG9uJ3Qga25vdyBhYm91dCBnbGliYyAyLjksIGFscGluZSdzIHRo aW5nPworKyAgb3M6OkxpbnV4OjpzZXRfZ2xpYmNfdmVyc2lvbigiZ2xpYmMgMi45Iik7CisrICBv czo6TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oIk5QVEwiKTsKKysjZWxzZQorICAgLy8g U2F2ZSBnbGliYyBhbmQgcHRocmVhZCB2ZXJzaW9uIHN0cmluZ3MuCisgI2lmICFkZWZpbmVkKF9D U19HTlVfTElCQ19WRVJTSU9OKSB8fCBcCisgICAgICFkZWZpbmVkKF9DU19HTlVfTElCUFRIUkVB RF9WRVJTSU9OKQorQEAgLTYxNCw2ICs2MTksNyBAQCB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVh ZF9pbml0KCkgeworICAgc3RyID0gKGNoYXIgKiltYWxsb2MobiwgbXRJbnRlcm5hbCk7CisgICBj b25mc3RyKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBzdHIsIG4pOworICAgb3M6OkxpbnV4 OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKHN0cik7CisrI2VuZGlmCisgfQorIAorIC8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCitAQCAtMzExNywyMCArMzEyMywzNiBAQCB2b2lkIG9zOjpMaW51eDo6c2No ZWRfZ2V0Y3B1X2luaXQoKSB7CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX3dhcm4o aW50IG51bWJlciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CisgZXh0ZXJuICJDIiBKTklFWFBPUlQg dm9pZCBudW1hX2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KKyAKKytzdGF0aWMgdm9pZCogZGx2c3lt X2lmX2F2YWlsYWJsZSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIq IHZlcnNpb24pIHsKKysgIHR5cGVkZWYgdm9pZCogKCpkbHZzeW1fZnVuY190eXBlKSh2b2lkKiBo YW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pOworKyAgc3RhdGlj IGRsdnN5bV9mdW5jX3R5cGUgZGx2c3ltX2Z1bmM7CisrICBzdGF0aWMgYm9vbCBpbml0aWFsaXpl ZCA9IGZhbHNlOworKworKyAgaWYgKCFpbml0aWFsaXplZCkgeworKyAgICBkbHZzeW1fZnVuYyA9 IChkbHZzeW1fZnVuY190eXBlKWRsc3ltKFJUTERfTkVYVCwgImRsdnN5bSIpOworKyAgICBpbml0 aWFsaXplZCA9IHRydWU7CisrICB9CisrCisrICBpZiAoZGx2c3ltX2Z1bmMgIT0gTlVMTCkgewor KyAgICB2b2lkICpmID0gZGx2c3ltX2Z1bmMoaGFuZGxlLCBuYW1lLCB2ZXJzaW9uKTsKKysgICAg aWYgKGYgIT0gTlVMTCkgeworKyAgICAgIHJldHVybiBmOworKyAgICB9CisrICB9CisrCisrICBy ZXR1cm4gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKyt9CisrCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8g bG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMSAoQVBJIHYxKS4gSWYgaXQgZmFpbHMKKyAv LyBsb2FkIHN5bWJvbCBmcm9tIGJhc2UgdmVyc2lvbiBpbnN0ZWFkLgorIHZvaWQqIG9zOjpMaW51 eDo6bGlibnVtYV9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKKy0gIHZv aWQgKmYgPSBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKy0gIGlmIChmID09 IE5VTEwpIHsKKy0gICAgZiA9IGRsc3ltKGhhbmRsZSwgbmFtZSk7CistICB9CistICByZXR1cm4g ZjsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFf MS4xIik7CisgfQorIAorIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wg dmVyc2lvbiAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVMTCBpZiB0aGUgc3ltYm9s IGlzIG5vdCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9uLgorIHZvaWQqIG9zOjpM aW51eDo6bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUpIHsK Ky0gIHJldHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKysgIHJldHVy biBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisgfQor IAorIGJvb2wgb3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7CistLS0gYS9zcmMvaG90c3BvdC9v c19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2Nw dS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1LDYgQEAKKyAjIGluY2x1 ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4K Ky0jaWZuZGVmIEFNRDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorLSNlbmRpZgorIAor ICNpZmRlZiBBTUQ2NAorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKKy0tLSBhL3NyYy9ob3RzcG90 L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qv c2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitAQCAtMTExNiw3ICsxMTE2LDcg QEAgSGVhcFdvcmQqIEdlbkNvbGxlY3RlZEhlYXA6OmFsbG9jYXRlX25ld190bGFiKHNpemVfdCBt aW5fc2l6ZSwKKyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFsbGVzdFNjcmF0Y2goU2Ny YXRjaEJsb2NrICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0cnVlOworICAgc2l6ZV90 IG1pbl9zaXplID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29uY2VwdHVhbGx5IGluZmlu aXRlLgorLSAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21hbGxlc3Q7CisrICBTY3Jh dGNoQmxvY2sgKipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7CisgICBTY3JhdGNoQmxv Y2sgICpjdXIgPSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7CisgICAgIGFzc2VydCgqcHJl dl9wdHIgPT0gY3VyLCAianVzdCBjaGVja2luZyIpOworLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUv cnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUv cnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorQEAgLTI3NCw3ICsyNzQsNyBAQCBjb25z dCBjaGFyKiBBYnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9pbmZvX3N0cmluZygpIHsK KyAgICNlbmRpZgorIAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9OX1NVRkZJWCBWTV9SRUxF QVNFICIpIiBcCistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIFwK KysgICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgTElCQyBcCisgICAg ICAgICAgIiBKUkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9uICIgX19EQVRFX18gIiAi IF9fVElNRV9fIFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9UX0JVSUxEX1VTRVIpICIg d2l0aCAiIEhPVFNQT1RfQlVJTERfQ09NUElMRVIKKyAKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJl L3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCisrKysgYi9zcmMvaG90c3BvdC9z aGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorQEAgLTIwNCw3ICsyMDQs NyBAQCBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuZChmKTsgfQor ICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikg eyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxpZiBkZWZpbmVkKExJTlVYKSB8fCBkZWZpbmVkKF9B TExCU0RfU09VUkNFKQorLWlubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4gaXNu YW5mKGYpOyB9CisraW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25hbihm KTsgfQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0K KyAjZWxzZQorICNlcnJvciAibWlzc2luZyBwbGF0Zm9ybS1zcGVjaWZpYyBkZWZpbml0aW9uIGhl cmUiCistLS0gYS9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2Uu YworKysrIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMK K0BAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKKyAvKgorICAqIFNpZ25hbCB0byB1 bmJsb2NrIHRocmVhZAorICAqLworLXN0YXRpYyBpbnQgc2lnV2FrZXVwID0gKF9fU0lHUlRNQVgg LSAyKTsKKytzdGF0aWMgaW50IHNpZ1dha2V1cDsKKyAKKyAvKgorICAqIGZkVGFibGUgaG9sZHMg b25lIGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEgY2VydGFpbgorQEAgLTE0OSw2 ICsxNDksNyBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZSgoY29uc3RydWN0b3IpKSBpbml0KCkg eworICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2lnbmFsIGhhbmRsZXIKKyAgICAgICovCisr ICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAgICAgc2Euc2FfaGFuZGxlciA9IHNpZ193 YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOworICAgICBzaWdlbXB0eXNldCgmc2Euc2Ff bWFzayk7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9j LmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYwor QEAgLTIzNSw3ICsyMzUsMTMgQEAgSkRLX2V4ZWN2cGUoaW50IG1vZGUsIGNvbnN0IGNoYXIgKmZp bGUsCisgeworICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFyICoqKSBlbnZwID09IGVudmly b24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikgYXJndik7CistICAgICAgICBy ZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0aGF0IHRoZSBmaWxlIGhlYWRl ciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAgICAgIC8vIGxpYnJhcnkgZG9l cyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3NoIGZvciB0aGF0IGNhc2UsIHNv IGZhbGwKKysgICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUgYmVsb3cgd2hpY2ggaW1wbGVt ZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBleGVjdmVfd2l0aF9zaGVsbF9m YWxsYmFjay4KKysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVDKSB7CisrICAgICAgICAgICAg cmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisgCisgICAgIGlmICgqZmlsZSA9PSAnXDAnKSB7 CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAor KysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKK0BA IC0zNyw3ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZp bmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKKyAjaW5jbHVkZSA8bWF0 aC5oPgorLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZpbmUgSVNOQU5GKGYpIGlz bmFuKGYpCisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9BSVgp CisgI2luY2x1ZGUgPG1hdGguaD4KKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli amxpL2phdmFfbWRfc29saW51eC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xp YmpsaS9qYXZhX21kX3NvbGludXguYworQEAgLTIzNiw2ICsyMzYsMzkgQEAgUmVxdWlyZXNTZXRl bnYoY29uc3QgY2hhciAqanZtcGF0aCkgeworICAgICBjaGFyICpkbWxscCA9IE5VTEw7CisgICAg IGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBwb2ludGVyICovCisgCisrI2lmZGVmIF9fbGludXgKKysj aWZuZGVmIExJQkMKKysjZXJyb3IgIkxJQkMgbm90IHNldCIKKysjZW5kaWYKKysKKysgICAgaWYg KHN0cmNtcChMSUJDLCAibXVzbCIpID09IDApIHsKKysgICAgICAvKgorKyAgICAgICAqIFRoZSBt dXNsIGxpYnJhcnkgbG9hZGVyIHJlcXVpcmVzIExEX0xJQlJBUllfUEFUSCB0byBiZSBzZXQgaW4K KysgICAgICAgKiBvcmRlciB0byBjb3JyZWN0bHkgcmVzb2x2ZSB0aGUgZGVwZW5kZW5jeSBsaWJq YXZhLnNvIGhhcyBvbiBsaWJqdm0uc28uCisrICAgICAgICoKKysgICAgICAgKiBTcGVjaWZpY2Fs bHksIGl0IGRpZmZlcnMgZnJvbSBnbGliYyBpbiB0aGUgc2Vuc2UgdGhhdCBldmVuIGlmCisrICAg ICAgICogbGlianZtLnNvIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkIGl0IHdpbGwgbm90IGJlIGNv bnNpZGVyZWQgYQorKyAgICAgICAqIGNhbmRpZGF0ZSBmb3IgcmVzb2x2aW5nIHRoZSBkZXBlbmRl bmN5IHVubGVzcyB0aGUgKmZ1bGwqIHBhdGgKKysgICAgICAgKiBvZiB0aGUgYWxyZWFkeSBsb2Fk ZWQgbGlicmFyeSBtYXRjaGVzIHRoZSBkZXBlbmRlbmN5IGJlaW5nIGxvYWRlZC4KKysgICAgICAg KgorKyAgICAgICAqIGxpYmp2bS5zbyBpcyBiZWluZyBsb2FkZWQgYnkgdGhlIGxhdW5jaGVyIHVz aW5nIGEgbG9uZyBwYXRoIHRvCisrICAgICAgICogZGxvcGVuLCBub3QganVzdCB0aGUgYmFzZW5h bWUgb2YgdGhlIGxpYnJhcnkuIFR5cGljYWxseSB0aGlzCisrICAgICAgICogaXMgc29tZXRoaW5n IGxpa2UgIi4uL2xpYi9zZXJ2ZXIvbGlianZtLnNvIi4gSG93ZXZlciwgaWYvd2hlbgorKyAgICAg ICAqIGxpYmp2bS5zbyBsYXRlciB0cmllcyB0byBkbG9wZW4gbGliamF2YS5zbyAod2hpY2ggaXQg ZG9lcyBpbgorKyAgICAgICAqIG9yZGVyIHRvIGdldCBhY2Nlc3MgdG8gYSBmZXcgZnVuY3Rpb25z IGltcGxlbWVudGVkIGluCisrICAgICAgICogbGliamF2YS5zbykgdGhlIG11c2wgbG9hZGVyIHdp bGwsIGFzIHBhcnQgb2YgbG9hZGluZworKyAgICAgICAqIGRlcGVuZGVudCBsaWJyYXJpZXMsIHRy eSB0byBsb2FkIGxpYmp2bS5zbyB1c2luZyBvbmx5IGl0cworKyAgICAgICAqIGJhc2VuYW1lICJs aWJqdm0uc28iLiBTaW5jZSB0aGlzIGRvZXMgbm90IG1hdGNoIHRoZSBsb25nZXIKKysgICAgICAg KiBwYXRoIHBhdGggaXQgd2FzIGZpcnN0IGxvYWRlZCB3aXRoLCB0aGUgYWxyZWFkeSBsb2FkZWQK KysgICAgICAgKiBsaWJyYXJ5IGlzIG5vdCBjb25zaWRlcmVkIGEgY2FuZGlkYXRlLCBhbmQgdGhl IGxvYWRlciB3aWxsCisrICAgICAgICogaW5zdGVhZCBsb29rIGZvciBsaWJqdm0uc28gZWxzZXdo ZXJlLiBJZiBpdCdzIG5vdCBpbgorKyAgICAgICAqIExEX0xJQlJBUllfUEFUSCB0aGUgZGVwZW5k ZW5jeSBsb2FkIHdpbGwgZmFpbCwgYW5kIGxpYmphdmEuc28KKysgICAgICAgKiB3aWxsIHRoZXJl Zm9yZSBmYWlsIGFzIHdlbGwuCisrICAgICAgICovCisrICAgICAgcmV0dXJuIEpOSV9UUlVFOwor KyAgICB9CisrI2VuZGlmCisrCisgI2lmZGVmIEFJWAorICAgICAvKiBXZSBhbHdheXMgaGF2ZSB0 byBzZXQgdGhlIExJQlBBVEggb24gQUlYIGJlY2F1c2UgbGQgZG9lc24ndCBzdXBwb3J0ICRPUklH SU4uICovCisgICAgIHJldHVybiBKTklfVFJVRTsKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9u YXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgv bmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworQEAgLTM2LDcgKzM2LDcgQEAKKyAjaWZk ZWYgX19saW51eF9fCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVk IGluIG5ldC9saW51eF9jbG9zZS5jICovCistICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKF9f U0lHUlRNQVggLSAyKQorKyAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFMIChTSUdSVE1BWCAtIDIp CisgI2VsaWYgZGVmaW5lZChfQUlYKQorICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAgIC8qIEFs c28gZGVmaW5lZCBpbiBuZXQvYWl4X2Nsb3NlLmMgKi8KKy0tLSBhL3NyYy9qYXZhLmRlc2t0b3Av dW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCisrKysgYi9zcmMvamF2YS5k ZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworQEAgLTI3LDkg KzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2luY2x1ZGUgPFgxMS9Yb3MuaD4K KyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGludXhfXworLSNpbmNsdWRlIDxl eGVjaW5mby5oPgorLSNlbmRpZgorIAorICNpbmNsdWRlIDxqdm0uaD4KKyAjaW5jbHVkZSA8am5p Lmg+CitAQCAtNzgwLDI2ICs3NzcsNiBAQCBKTklFWFBPUlQganN0cmluZyBKTklDQUxMIEphdmFf c3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52CisgICAgIHJldHVybiByZXQ7CisgfQorIAorLSNp ZmRlZiBfX2xpbnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZvaWQpCisteworLSAgdm9pZCAqYXJy YXlbMTBdOworLSAgc2l6ZV90IHNpemU7CistICBjaGFyICoqc3RyaW5nczsKKy0gIHNpemVfdCBp OworLQorLSAgc2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEwKTsKKy0gIHN0cmluZ3MgPSBiYWNr dHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUpOworLQorLSAgZnByaW50ZiAoc3RkZXJyLCAiT2J0 YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOworLQorLSAgZm9yIChpID0gMDsgaSA8 IHNpemU7IGkrKykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXG4iLCBzdHJpbmdzW2ldKTsK Ky0KKy0gIGZyZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYKKy0KKyBXaW5kb3cgZ2V0X3hhd3Rf cm9vdF9zaGVsbChKTklFbnYgKmVudikgeworICAgc3RhdGljIGpjbGFzcyBjbGFzc1hSb290V2lu ZG93ID0gTlVMTDsKKyAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0aG9kR2V0WFJvb3RXaW5kb3cgPSBO VUxMOworLS0tIGEvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwu aAorKysrIGIvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAor QEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1ha2Ug c3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5kZWYg ZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysg ICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAjdW5k ZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZh Y2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFsbG9j CisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVzZSB0 aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVy ZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9jKHAp IERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19ub3Rf dXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAjZGVm aW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHN0 cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAorICNlbmRpZgorIAorICNpbmNs dWRlICJsb2dfbWVzc2FnZXMuaCIKKy0tLSBhL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0 YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworKysrIGIvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRp bWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiArMzMsNyBAQAorIAorICNp bmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+CisrI2luY2x1ZGUgPGp2bS5oPgor ICNpbmNsdWRlIDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CisgI2luY2x1ZGUgPHN0 cmluZy5oPgorQEAgLTkxLDYgKzkyLDIwIEBAIHZvaWQgc2V0X3NpZ25hbF9oYW5kbGVyKCkgewor ICAgfQorIH0KKyAKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXplICgpIHsKKysgIHNpemVfdCBzdGFj a3NpemU7CisrICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAgSkRLMV8xSW5pdEFyZ3MgamRrX2Fy Z3M7CisrCisrICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZFUlNJT05fMV8xOworKyAgSk5JX0dl dERlZmF1bHRKYXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOworKyAgaWYgKGpka19hcmdzLmphdmFT dGFja1NpemUgPD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwgIlRlc3QgRVJST1IuIENhbid0 IGdldCBhIHZhbGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBzdGFja3NpemUuXG4iKTsKKysgICAg ZXhpdCg3KTsKKysgIH0KKysgIHJldHVybiBqZGtfYXJncy5qYXZhU3RhY2tTaXplOworK30KKysK KyB2b2lkICpydW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkgeworICAgSk5JRW52ICplbnY7Cisg ICBqY2xhc3MgY2xhc3NfaWQ7CitAQCAtMjU4LDEzICsyNzMsMTkgQEAgaW50IG1haW4gKGludCBh cmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBleGl0KDcpOworICAgfQorIAorKyAgaW50 IHN0YWNrX3NpemUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0aHJlYWRfdCB0aHI7Cisr ICBwdGhyZWFkX2F0dHJfdCB0aHJlYWRfYXR0cjsKKysKKysgIHB0aHJlYWRfYXR0cl9pbml0KCZ0 aHJlYWRfYXR0cik7CisrICBwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplKCZ0aHJlYWRfYXR0ciwg c3RhY2tfc2l6ZSk7CisgCisgICBpZiAoYXJnYyA+IDEgJiYgc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0 X2phdmFfb3ZlcmZsb3ciKSA9PSAwKSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIEpBVkFfT1ZF UkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhh dmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBO VUxMLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisrICAgIHB0aHJlYWRfY3JlYXRlICgm dGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVh ZF9qb2luICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQg cGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BAIC0yNzcsNyArMjk4LDcg QEAgaW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBwcmludGYo IlxuVGVzdGluZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcg c3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0 aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKysg ICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX25hdGl2ZV9vdmVyZmxv dywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKyAKKyAgICAgcHJpbnRm KCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBpbml0aWFsIHRocmVhZFxu Iik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL3BwYy5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMvcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw MC4uZDMwNmQ1MDFlNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTQtYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorUGF0 Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5l bGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYy MGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9w cGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNw cAorQEAgLTQ3LDYgKzQ3LDggQEAKKyAjaW5jbHVkZSAib3B0by9pbnRyaW5zaWNub2RlLmhwcCIK KyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpZmRlZiBQUk9EVUNU CisgI2RlZmluZSBCTE9DS19DT01NRU5UKHN0cikgLy8gbm90aGluZworICNlbHNlCistLS0gb2xk L3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3Rz cG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtODQ1LDcgKzg0NSw3IEBAIHZvaWQg Vk1fVmVyc2lvbjo6ZGV0ZXJtaW5lX2ZlYXR1cmVzKCkgeworICAgdW5zaWduZWQgbG9uZyBhdXh2 ID0gZ2V0YXV4dmFsKEFUX0hXQ0FQMik7CisgCisgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9I VE1fTk9TQykgeworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IQVNfSFRNKSB7CisrICAg IGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAgICAgIC8vIFRNIG9uIFBPV0VSOCBh bmQgUE9XRVI5IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3VwcG9ydGVkIGJ5IHRoZSBKVk0uCisg ICAgICAgLy8gVE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJlbWV0YWwpIGlzIG5vdCBzdXBwb3J0 ZWQgYnkgdGhlIEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dFUjkgREQyLjEgTlYgaGFzIGEgZmV3 IGlzc3VlcyB0aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUKKy0tLSBvbGQvc3JjL2hvdHNw b3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90 L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorQEAgLTc1LDcgKzc1LDcgQEAKKyAj IGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRl eHQuaD4KKy0KKysjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKyBhZGRyZXNzIG9zOjpjdXJy ZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgICBpbnRwdHJfdCogY3NwOworLS0tIG9sZC9zcmMvaG90 c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9o b3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKK0BAIC0yMyw2ICsy Myw4IEBACisgICoKKyAgKi8KKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpbmNs dWRlICJwcmVjb21waWxlZC5ocHAiCisgI2luY2x1ZGUgInJ1bnRpbWUvZnJhbWUuaW5saW5lLmhw cCIKKyAjaW5jbHVkZSAicnVudGltZS90aHJlYWQuaHBwIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9v cGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggYi9zcmNwa2dz L29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNjRjMTg5MDM2YQotLS0gL2Rldi9u dWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMv eDg2LnBhdGNoCkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20g QWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/ aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBuZXcvc3JjL2hv dHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtOTAsNiArOTAsMTI2 IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5kaWYgLy8gQU1ENjQKKworKy8v ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20gZ2xpYmMgMi4yOAorKy8vIHNv dXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5 c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4OTdmZjRlNTgyNmQyMjhjYmE2 YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNjYTM5MmJiYTdhOTljMmIKKysv LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0CisrLyogRlBVIGNvbnRyb2wg d29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAxOTkzLTIwMTggRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xhZiBGbGViYmUuCisrCisrICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQVV9DT05UUk9MX0gKKysjZGVm aW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQgdGhpcyBmaWxlIHNldHMgb24g eDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90CisrICAgdG91Y2ggdGhlIFNTRSB1 bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0LiBTZXQgdXAgeW91ciAzODcg dGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdpc3Rlci4KKysgKgorKyAqICAg ICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1ICAgIDQgICAgMyAgICAyICAg IDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8 IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJbnZhbGlkIG9wZXJhdGlvbiBt YXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sKKysgKiBaTTogWmVyby1kaXZp ZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06IFVuZGVyZmxvdyBtYXNrCisr ICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sKKysgKgorKyAqIE1hc2sgYml0 IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6IFByZWNpc2lvbiBjb250cm9s CisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24KKysgKiAxMCAtIHJvdW5kIHRv IGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNpbmdsZSBwcmVjaXNpb24KKysg KgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSByb3VuZGluZyB0byBuZWFyZXN0 CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZpbml0eSkKKysgKiAxMCAtIHJv dW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAtIHJvdW5kaW5nIHRvd2FyZCB6 ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAqIFRoYXQgaXMgZm9yIDgwODcg YW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUgZGVmYXVsdCBpcyAweDAzN2Yg d2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgorKworKy8qIG1h c2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9NQVNLX0lNICAweDAxCisrI2Rl ZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVfTUFTS19aTSAgMHgwNAorKyNk ZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBVX01BU0tfVU0gIDB4MTAKKysj ZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNpc2lvbiBjb250cm9sICovCisr I2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVxdWlyZXMgZG91YmxlIGV4dGVu ZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJMRSAgIDB4MjAwCisrI2RlZmlu ZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNvbnRyb2wgKi8KKysjZGVmaW5l IF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQgKi8KKysjZGVmaW5lIF9GUFVf UkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAgICAgIDB4ODAwCisrI2RlZmlu ZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9GUFVfUkVTRVJWRUQgMHhGMEMw ICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyogVGhlIGZkbGlibSBjb2RlIHJl cXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJpdGhtZXRpYywKKysgICBhbmQg bm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcgdG8gbmVhcmVzdC4gICovCisr CisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8qIElFRUU6ICBzYW1lIGFzIGFi b3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdmCisrCisrLyogVHlwZSBvZiB0 aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVkIGludCBmcHVfY29udHJvbF90 IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOworKworKy8qIE1hY3JvcyBmb3Ig YWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAiKiYiIGlzIHVzZWQgdG8KKysg ICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBHQ0MuICBfX3ZvbGF0aWxl X18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24gb2Ygd3JpdGluZyB0aGUgY29u dHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2suICBXaXRob3V0IF9fdm9sYXRp bGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVhZGluZworKyAgIGJhY2sgdW5k ZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIHRo ZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdpdGgKKysgICByZWNlbnQgaGFy ZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUK KysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3aGljaCBoYXZlIHRoZWlyIG93 biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICovCisrI2RlZmluZSBfRlBVX0dF VENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIgOiAiPW0iICgqJmN3KSkK KysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZmxkY3cgJTAi IDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJvbCB3b3JkIHNldCBhdCBzdGFy dHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9jb250cm9sOworKworKyNlbmRp ZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFNRDY0CisrLy8gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2ludGVyKCkgeworICNp ZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNwOwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrMTQtYm9v dHN0cmFwL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u MjZkNTBmODc4MjBmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0 cmFwL3RlbXBsYXRlCkBAIC0wLDAgKzEsMTE1IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVu amRrMTQtYm9vdHN0cmFwJworX2phdmFfdmVyPTE0CitfamF2YV9taW5fdmVyPTAKK19qYXZhX3Nl Y192ZXI9MgorX2pka191cGRhdGU9MTIKK19qZGtfaG9tZT0idXNyL2xpYi9qdm0vb3BlbmpkayR7 X2phdmFfdmVyfSIKK19iYXNlX3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9 LiR7X2phdmFfc2VjX3Zlcn0iCisKK3BrZ25hbWU9b3BlbmpkazE0LWJvb3RzdHJhcAordmVyc2lv bj0iJHtfYmFzZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3JldmlzaW9uPTEKK3dya3NyYz0i amRrJHtfamF2YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1 cmUKK2NvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCisgLS1wcmVm aXg9JHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91c3IvbGliCisgLS1lbmFi bGUtdW5saW1pdGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQorIC0td2l0aC1saWJqcGVn PXN5c3RlbQorIC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxpYnBuZz1zeXN0ZW0KKyAt LXdpdGgtbGNtcz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdpdGgtdmVyc2lvbi1idWls ZD0kX2phdmFfdmVyCisgLS13aXRoLWpvYnM9JFhCUFNfT1JJR19NQUtFSk9CUworIC0td2l0aC12 ZW5kb3ItbmFtZT1Wb2lkCisgLS13aXRoLXZlbmRvci11cmw9aHR0cHM6Ly92b2lkbGludXgub3Jn LworIC0td2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC12ZW5kb3Itdm0tYnVnLXVybD1odHRwczovL2dp dGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC1ib290LWpk az0vdXNyL2xpYi9qdm0vb3BlbmpkazEzIgorbWFrZV9idWlsZF9hcmdzPSJpbWFnZXMiCittYWtl X2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFyIHVuemlwIHppcCBjYS1jZXJ0aWZpY2F0 ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1ha2UtY2Egb3BlbmpkazEzLWJvb3RzdHJh cCIKK21ha2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliWHQtZGV2 ZWwgbGliWHJhbmRyLWRldmVsCisgZ2lmbGliLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwgY3Vw cy1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1kZXZlbAorIGZvbnRjb25maWctZGV2ZWwg emxpYi1kZXZlbCBsY21zMi1kZXZlbCBvcGVuamRrMTMtYm9vdHN0cmFwIgorcHJvdmlkZXM9Imph dmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEtcnVudGltZS0ke3ZlcnNpb259XzEiCitz aG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0IChib290c3RyYXAgdmVyc2lv biAxNCkiCittYWludGFpbmVyPSJjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+IgorbGljZW5zZT0i R1BMLTIuMC1vbmx5IFdJVEggQ2xhc3NwYXRoLWV4Y2VwdGlvbi0yLjAiCitob21lcGFnZT0iaHR0 cDovL29wZW5qZGsuamF2YS5uZXQvIgorZGlzdGZpbGVzPSJodHRwczovL2hnLm9wZW5qZGsuamF2 YS5uZXQvamRrLXVwZGF0ZXMvamRrJHtfamF2YV92ZXJ9dS9hcmNoaXZlL2pkay0ke3ZlcnNpb259 LnRhci5neiIKK2NoZWNrc3VtPWRmYjM2MDdmMWI2NzU0NThmMjlhMTg1YTQwZjFkYmJmODk2NDM5 Y2YzM2IzYWEwZjNkODlkZjI5N2U2MDQ5MzUKK25vY3Jvc3M9eWVzCisKKyMgQnVpbGQgaXMgc3Rp bGwgcGFyYWxsZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgorZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15 ZXMKKworIyBubyBob3RzcG90IEpJVCBmb3IgcHBjMzIKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgorCXBwYzY0KikgOzsKKwlwcGMqKSBfdXNlX3plcm89eWVzIDs7Citlc2FjCisKK2lm IFsgLW4gIiRfdXNlX3plcm8iIF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJmZmktZGV2ZWwi CisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWp2bS12YXJpYW50cz16ZXJvIgorCWNhc2UgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGMqKSBjb25maWd1cmVfYXJncys9IiAtLXdpdGgt Ym9vdC1qZGstanZtYXJncz0tWFg6VGhyZWFkU3RhY2tTaXplPTI1NjAiOzsKKwllc2FjCitmaQor Citwb3N0X2V4dHJhY3QoKSB7CisJY2htb2QgK3ggY29uZmlndXJlCisJaWYgWyAiJFhCUFNfVEFS R0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJcm0gLXIgc3JjL2pkay5ob3RzcG90LmFnZW50 CisJZmkKK30KKworcG9zdF9wYXRjaCgpIHsKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAi bXVzbCIgXTsgdGhlbgorCQlmb3IgZiBpbiAiJHtGSUxFU0RJUn0iL211c2xfcGF0Y2hlcy8qLnBh dGNoOyBkbworCQkJbXNnX25vcm1hbCAiQXBwbHlpbmcgJHtmIyRGSUxFU0RJUi99XG4iCisJCQlw YXRjaCAtTnAxIC1pICIkZiIKKwkJZG9uZQorCWZpCit9CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlD RkxBR1M9JHtDRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99CisJQ1hYRkxBR1M9JHtDWFhGTEFH Uy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKworCSMgZm9yY2UgRUxGdjIgZm9yIHBwYzY0IGp1c3Qg aW4gY2FzZQorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopCisJCQlD RkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQlDWFhGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCTs7 CisJZXNhYworCisJIyBjb21wYXRpYmlsaXR5IHdpdGggR0NDIDEwLngKKwlDRkxBR1MrPSIgLWZj b21tb24gLWZuby1saWZldGltZS1kc2UiCisJQ1hYRkxBR1MrPSIgLWZjb21tb24gLWZuby1saWZl dGltZS1kc2UiCisKKwljb25maWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0 b29sLXN5c3Jvb3Q9XC91c3JcL1thLXowLTldKi1saW51eC1bYS16XSovfQorCWlmIFsgIiRYQlBT X0NDQUNIRSIgXTsgdGhlbgorCQljb25maWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2FjaGUiCisJ ZmkKKwlDQz0iL3Vzci9iaW4vY2MiCisJQ1hYPSIvdXNyL2Jpbi9jKysiCisJLi9jb25maWd1cmUg JHtjb25maWd1cmVfYXJnc30gXAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJ CS0td2l0aC1leHRyYS1jeHhmbGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1sZGZs YWdzPSIkTERGTEFHUyIgXAorCQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAg Tk09JE5NIFwKKwkJT0JKRFVNUD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisKK3Bvc3Rf aW5zdGFsbCgpIHsKKwltdiAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92 ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RESVJ9LyRfamRrX2hvbWUKKwlybSAtcmYgJHtERVNURElS fS91c3IvbGliL2JpbgorCXJtIC1mICRERVNURElSLyRfamRrX2hvbWUvbGliL3NyYy56aXAKKwl2 bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CgpGcm9tIDJk MDAxNTBmZGY5ODA2MjNjMWM3YzRiNzE2N2RlMDM2NTAzOTJmOTggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxCkZyb206IGNsYXNzYWJieWFtcCA8ZGV2QGtiNi5lZT4KRGF0ZTogVHVlLCAxMSBKYW4g MjAyMiAwMzoxNDoyMSAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDUvMTFdIE5ldyBwYWNrYWdlOiBv cGVuamRrMTUtYm9vdHN0cmFwLTE1LjAuMyszCgpDby1hdXRob3JlZC1ieTogVGFpIENoaSBNaW5o IFJhbHBoIEVhc3R3b29kIDx0Y21yZWFzdHdvb2RAZ21haWwuY29tPgotLS0KIC4uLi9maWxlcy9t dXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCAgICAgICAgICB8ICAxMCArCiAuLi4vZmlsZXMvbXVz bF9wYXRjaGVzL2FybS5wYXRjaCAgICAgICAgICAgICAgfCAgMjEgKwogLi4uL2ZpbGVzL211c2xf cGF0Y2hlcy9idWlsZC5wYXRjaCAgICAgICAgICAgIHwgMzcyICsrKysrKysrKysrKysrKysrKwog Li4uL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2ggICAgICAgICAgICAgIHwgIDQ1ICsrKwog Li4uL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggICAgICAgICAgICAgIHwgMTMwICsrKysr Kwogc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL3RlbXBsYXRlICAgICAgICAgIHwgMTExICsr KysrKwogNiBmaWxlcyBjaGFuZ2VkLCA2ODkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2 NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9m aWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9v cGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNo ZXMvcHBjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0 cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL29wZW5qZGsxNS1ib290c3RyYXAvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9zcmNwa2dzL29w ZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggYi9zcmNw a2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gK bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hYTZjNWQ0ZDJiZTIKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL2FhcmNoNjQucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvc3JjL2hvdHNwb3Qv b3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKKysrKyBiL3NyYy9ob3Rz cG90L29zX2NwdS9saW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNoNjQuY3BwCitAQCAtNzQsNyAr NzQsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNs dWRlIDx1Y29udGV4dC5oPgorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKyAKKyAjZGVmaW5l IFJFR19GUCAyOQorICNkZWZpbmUgUkVHX0xSIDMwCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5q ZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCBiL3NyY3BrZ3Mvb3Bl bmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTAyNDI4ZjEwZjMzCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0u cGF0Y2gKQEAgLTAsMCArMSwyMSBAQAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2Fy bS9vc19saW51eF9hcm0uY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29z X2xpbnV4X2FybS5jcHAKK0BAIC03Myw2ICs3MywxOCBAQAorICMgaW5jbHVkZSA8dWNvbnRleHQu aD4KKyAjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKysvLyBTdHVwaWQgaGFjayBhcyB0aGUg b3JpZ2luIGlmIGJlbG93IGRvZXNudCBjb21waWxlIHdpdGggZ2NjIDguMi4wOgorKy8vCisrLy8g b3NfbGludXhfYXJtLmNwcDoxMTQ6NTogZXJyb3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJhdG9yIGJl Zm9yZSB0b2tlbiAiKCIKKysvLyAgI2lmIE5HUkVHID09IDE2CisrLy8gICAgICAgXn5+fn4KKysv LworKy8vIFRoZSBOR1JFRyBpcyAxOCAoYml0cy9zaWduYWwuaDoxMCksIHNvIGZvcmNlIGl0IHRv IHRoYXQgdmFsdWUuCisrI2lmZGVmIE5HUkVHCisrIyAgdW5kZWYgTkdSRUcKKysjZW5kaWYKKysj ZGVmaW5lIE5HUkVHIDE4CisrCisgI2RlZmluZSBTUEVMTF9SRUdfU1AgICJzcCIKKyAKKyAvLyBE b24ndCAjZGVmaW5lIFNQRUxMX1JFR19GUCBmb3IgdGh1bWIgYmVjYXVzZSBpdCBpcyBub3Qgc2Fm ZSB0byB1c2UsIHNvIHRoaXMgbWFrZXMgc3VyZSB3ZSBuZXZlciBmZXRjaCBpdC4KZGlmZiAtLWdp dCBhL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQu cGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1 aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjBkZmRl YzMwYWJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2Zp bGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDM3MiBAQAorLS0tIGEvbWFr ZS9SZWxlYXNlRmlsZS5nbWsKKysrKyBiL21ha2UvUmVsZWFzZUZpbGUuZ21rCitAQCAtNTMsNiAr NTMsNyBAQCBkZWZpbmUgY3JlYXRlLWluZm8tZmlsZQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVt LCAiSkFWQV9WRVJTSU9OX0RBVEUiLCAiJChWRVJTSU9OX0RBVEUpIikKKyAgICQoY2FsbCBpbmZv LWZpbGUtaXRlbSwgIk9TX05BTUUiLCAiJChSRUxFQVNFX0ZJTEVfT1NfTkFNRSkiKQorICAgJChj YWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfQVJDSCIsICIkKFJFTEVBU0VfRklMRV9PU19BUkNIKSIp CisrICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJMSUJDIiwgIm11c2wiKQorIGVuZGVmCisgCisg IyBQYXJhbSAxIC0gVGhlIGZpbGUgY29udGFpbmluZyB0aGUgTU9EVUxFUyBsaXN0CistLS0gYS9t YWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCisrKysgYi9tYWtlL2hvdHNwb3QvbGliL0Nv bXBpbGVKdm0uZ21rCitAQCAtNzMsNiArNzMsNyBAQCBDRkxBR1NfVk1fVkVSU0lPTiA6PSBcCisg ICAgIC1ESE9UU1BPVF9CVUlMRF9VU0VSPSciJChVU0VSTkFNRSkiJyBcCisgICAgIC1ESE9UU1BP VF9WTV9ESVNUUk89JyIkKEhPVFNQT1RfVk1fRElTVFJPKSInIFwKKyAgICAgLURDUFU9JyIkKE9Q RU5KREtfVEFSR0VUX0NQVV9WTV9WRVJTSU9OKSInIFwKKysgICAgLURMSUJDPScibXVzbCInIFwK KyAgICAgIworIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCistLS0gYS9tYWtlL2xpYi9Db3Jl TGlicmFyaWVzLmdtaworKysrIGIvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKK0BAIC0xOTAs NiArMTkwLDcgQEAgaWZlcSAoJChjYWxsIGlzVGFyZ2V0T3MsIHdpbmRvd3MpLCB0cnVlKQorIGVu ZGlmCisgCisgTElCSkxJX0NGTEFHUyArPSAkKExJQlpfQ0ZMQUdTKQorK0xJQkpMSV9DRkxBR1Mg Kz0gLURMSUJDPVwibXVzbFwiCisgCisgaWZuZXEgKCQoVVNFX0VYVEVSTkFMX0xJQlopLCB0cnVl KQorICAgTElCSkxJX0VYVFJBX0ZJTEVTICs9IFwKKy0tLSBhL3NyYy9ob3RzcG90L29zL2xpbnV4 L29zX2xpbnV4LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCitA QCAtMTAyLDcgKzEwMiw2IEBACisgIyBpbmNsdWRlIDxzdHJpbmcuaD4KKyAjIGluY2x1ZGUgPHN5 c2NhbGwuaD4KKyAjIGluY2x1ZGUgPHN5cy9zeXNpbmZvLmg+CistIyBpbmNsdWRlIDxnbnUvbGli Yy12ZXJzaW9uLmg+CisgIyBpbmNsdWRlIDxzeXMvaXBjLmg+CisgIyBpbmNsdWRlIDxzeXMvc2ht Lmg+CisgIyBpbmNsdWRlIDxsaW5rLmg+CitAQCAtNTk3LDYgKzU5NiwxMiBAQCB2b2lkIG9zOjpM aW51eDo6aG90c3BvdF9zaWdtYXNrKFRocmVhZCogdGhyZWFkKSB7CisgLy8gZGV0ZWN0aW5nIHB0 aHJlYWQgbGlicmFyeQorIAorIHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7Cisr I2lmICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykKKysgIC8vIEhh cmQgY29kZSBBbHBpbmUgTGludXggc3VwcG9ydGVkIG11c2wgY29tcGF0aWJsZSBzZXR0aW5ncwor KyAgLy8gc2duOiBOUFRMIGlzIGNvcnJlY3QsIGRvbid0IGtub3cgYWJvdXQgZ2xpYmMgMi45LCBh bHBpbmUncyB0aGluZz8KKysgIG9zOjpMaW51eDo6c2V0X2dsaWJjX3ZlcnNpb24oImdsaWJjIDIu OSIpOworKyAgb3M6OkxpbnV4OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKCJOUFRMIik7CisrI2Vs c2UKKyAgIC8vIFNhdmUgZ2xpYmMgYW5kIHB0aHJlYWQgdmVyc2lvbiBzdHJpbmdzLgorICNpZiAh ZGVmaW5lZChfQ1NfR05VX0xJQkNfVkVSU0lPTikgfHwgXAorICAgICAhZGVmaW5lZChfQ1NfR05V X0xJQlBUSFJFQURfVkVSU0lPTikKK0BAIC02MTQsNiArNjE5LDcgQEAgdm9pZCBvczo6TGludXg6 OmxpYnB0aHJlYWRfaW5pdCgpIHsKKyAgIHN0ciA9IChjaGFyICopbWFsbG9jKG4sIG10SW50ZXJu YWwpOworICAgY29uZnN0cihfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTiwgc3RyLCBuKTsKKyAg IG9zOjpMaW51eDo6c2V0X2xpYnB0aHJlYWRfdmVyc2lvbihzdHIpOworKyNlbmRpZgorIH0KKyAK KyAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLworQEAgLTMxMTcsMjAgKzMxMjMsMzYgQEAgdm9pZCBvczo6 TGludXg6OnNjaGVkX2dldGNwdV9pbml0KCkgeworIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQg bnVtYV93YXJuKGludCBudW1iZXIsIGNoYXIgKndoZXJlLCAuLi4pIHsgfQorIGV4dGVybiAiQyIg Sk5JRVhQT1JUIHZvaWQgbnVtYV9lcnJvcihjaGFyICp3aGVyZSkgeyB9CisgCisrc3RhdGljIHZv aWQqIGRsdnN5bV9pZl9hdmFpbGFibGUodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBj b25zdCBjaGFyKiB2ZXJzaW9uKSB7CisrICB0eXBlZGVmIHZvaWQqICgqZGx2c3ltX2Z1bmNfdHlw ZSkodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKTsK KysgIHN0YXRpYyBkbHZzeW1fZnVuY190eXBlIGRsdnN5bV9mdW5jOworKyAgc3RhdGljIGJvb2wg aW5pdGlhbGl6ZWQgPSBmYWxzZTsKKysKKysgIGlmICghaW5pdGlhbGl6ZWQpIHsKKysgICAgZGx2 c3ltX2Z1bmMgPSAoZGx2c3ltX2Z1bmNfdHlwZSlkbHN5bShSVExEX05FWFQsICJkbHZzeW0iKTsK KysgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworKyAgfQorKworKyAgaWYgKGRsdnN5bV9mdW5jICE9 IE5VTEwpIHsKKysgICAgdm9pZCAqZiA9IGRsdnN5bV9mdW5jKGhhbmRsZSwgbmFtZSwgdmVyc2lv bik7CisrICAgIGlmIChmICE9IE5VTEwpIHsKKysgICAgICByZXR1cm4gZjsKKysgICAgfQorKyAg fQorKworKyAgcmV0dXJuIGRsc3ltKGhhbmRsZSwgbmFtZSk7CisrfQorKworIC8vIEhhbmRsZSBy ZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjEgKEFQSSB2MSkuIElmIGl0 IGZhaWxzCisgLy8gbG9hZCBzeW1ib2wgZnJvbSBiYXNlIHZlcnNpb24gaW5zdGVhZC4KKyB2b2lk KiBvczo6TGludXg6OmxpYm51bWFfZGxzeW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFyICpuYW1l KSB7CistICB2b2lkICpmID0gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4xIik7Cist ICBpZiAoZiA9PSBOVUxMKSB7CistICAgIGYgPSBkbHN5bShoYW5kbGUsIG5hbWUpOworLSAgfQor LSAgcmV0dXJuIGY7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUs ICJsaWJudW1hXzEuMSIpOworIH0KKyAKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51 bWEgc3ltYm9sIHZlcnNpb24gMS4yIChBUEkgdjIpIG9ubHkuCisgLy8gUmV0dXJuIE5VTEwgaWYg dGhlIHN5bWJvbCBpcyBub3QgZGVmaW5lZCBpbiB0aGlzIHBhcnRpY3VsYXIgdmVyc2lvbi4KKyB2 b2lkKiBvczo6TGludXg6OmxpYm51bWFfdjJfZGxzeW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFy KiBuYW1lKSB7CistICByZXR1cm4gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7 CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEu MiIpOworIH0KKyAKKyBib29sIG9zOjpMaW51eDo6bGlibnVtYV9pbml0KCkgeworLS0tIGEvc3Jj L2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysgYi9zcmMvaG90 c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC03NSw5ICs3NSw2IEBA CisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVj b250ZXh0Lmg+CistI2lmbmRlZiBBTUQ2NAorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKy0j ZW5kaWYKKyAKKyAjaWZkZWYgQU1ENjQKKyAjZGVmaW5lIFJFR19TUCBSRUdfUlNQCistLS0gYS9z cmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAKKysrKyBiL3Ny Yy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorQEAgLTExMTYs NyArMTExNiw3IEBAIEhlYXBXb3JkKiBHZW5Db2xsZWN0ZWRIZWFwOjphbGxvY2F0ZV9uZXdfdGxh YihzaXplX3QgbWluX3NpemUsCisgc3RhdGljIFNjcmF0Y2hCbG9jayAqcmVtb3ZlU21hbGxlc3RT Y3JhdGNoKFNjcmF0Y2hCbG9jayAqKnByZXZfcHRyKSB7CisgICBib29sIGZpcnN0ID0gdHJ1ZTsK KyAgIHNpemVfdCBtaW5fc2l6ZSA9IDA7ICAgLy8gImZpcnN0IiBtYWtlcyB0aGlzIGNvbmNlcHR1 YWxseSBpbmZpbml0ZS4KKy0gIFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0ciwgKnNtYWxsZXN0 OworKyAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyID0gTlVMTCwgKnNtYWxsZXN0OworICAg U2NyYXRjaEJsb2NrICAqY3VyID0gKnByZXZfcHRyOworICAgd2hpbGUgKGN1cikgeworICAgICBh c3NlcnQoKnByZXZfcHRyID09IGN1ciwgImp1c3QgY2hlY2tpbmciKTsKKy0tLSBhL3NyYy9ob3Rz cG90L3NoYXJlL3J1bnRpbWUvYWJzdHJhY3Rfdm1fdmVyc2lvbi5jcHAKKysrKyBiL3NyYy9ob3Rz cG90L3NoYXJlL3J1bnRpbWUvYWJzdHJhY3Rfdm1fdmVyc2lvbi5jcHAKK0BAIC0yNzQsNyArMjc0 LDcgQEAgY29uc3QgY2hhciogQWJzdHJhY3RfVk1fVmVyc2lvbjo6aW50ZXJuYWxfdm1faW5mb19z dHJpbmcoKSB7CisgICAjZW5kaWYKKyAKKyAgICNkZWZpbmUgSU5URVJOQUxfVkVSU0lPTl9TVUZG SVggVk1fUkVMRUFTRSAiKSIgXAorLSAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9B UkNIX1NUUiBcCisrICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIExJ QkMgXAorICAgICAgICAgICIgSlJFICgiIFZFUlNJT05fU1RSSU5HICIpLCBidWlsdCBvbiAiIF9f REFURV9fICIgIiBfX1RJTUVfXyBcCisgICAgICAgICAgIiBieSAiIFhTVFIoSE9UU1BPVF9CVUlM RF9VU0VSKSAiIHdpdGggIiBIT1RTUE9UX0JVSUxEX0NPTVBJTEVSCisgCistLS0gYS9zcmMvaG90 c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorKysrIGIvc3Jj L2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKK0BAIC0y MDQsNyArMjA0LDcgQEAgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25h bmQoZik7IH0KKyAjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKKyBpbmxpbmUgaW50IGdfaXNuYW4o ZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgI2VsaWYgZGVmaW5lZChMSU5VWCkgfHwg ZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKKy1pbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsg cmV0dXJuIGlzbmFuZihmKTsgfQorK2lubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1 cm4gaXNuYW4oZik7IH0KKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlz bmFuKGYpOyB9CisgI2Vsc2UKKyAjZXJyb3IgIm1pc3NpbmcgcGxhdGZvcm0tc3BlY2lmaWMgZGVm aW5pdGlvbiBoZXJlIgorLS0tIGEvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xp bnV4X2Nsb3NlLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51 eF9jbG9zZS5jCitAQCAtNjAsNyArNjAsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CisgLyoKKyAgKiBT aWduYWwgdG8gdW5ibG9jayB0aHJlYWQKKyAgKi8KKy1zdGF0aWMgaW50IHNpZ1dha2V1cCA9IChf X1NJR1JUTUFYIC0gMik7Cisrc3RhdGljIGludCBzaWdXYWtldXA7CisgCisgLyoKKyAgKiBmZFRh YmxlIGhvbGRzIG9uZSBlbnRyeSBwZXIgZmlsZSBkZXNjcmlwdG9yLCB1cCB0byBhIGNlcnRhaW4K K0BAIC0xNDksNiArMTQ5LDcgQEAgc3RhdGljIHZvaWQgX19hdHRyaWJ1dGUoKGNvbnN0cnVjdG9y KSkgaW5pdCgpIHsKKyAgICAgLyoKKyAgICAgICogU2V0dXAgdGhlIHNpZ25hbCBoYW5kbGVyCisg ICAgICAqLworKyAgICBzaWdXYWtldXAgPSBTSUdSVE1BWCAtIDI7CisgICAgIHNhLnNhX2hhbmRs ZXIgPSBzaWdfd2FrZXVwOworICAgICBzYS5zYV9mbGFncyAgID0gMDsKKyAgICAgc2lnZW1wdHlz ZXQoJnNhLnNhX21hc2spOworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZh L2NoaWxkcHJvYy5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hp bGRwcm9jLmMKK0BAIC0yMzUsNyArMjM1LDEzIEBAIEpES19leGVjdnBlKGludCBtb2RlLCBjb25z dCBjaGFyICpmaWxlLAorIHsKKyAgICAgaWYgKGVudnAgPT0gTlVMTCB8fCAoY2hhciAqKikgZW52 cCA9PSBlbnZpcm9uKSB7CisgICAgICAgICBleGVjdnAoZmlsZSwgKGNoYXIgKiopIGFyZ3YpOwor LSAgICAgICAgcmV0dXJuOworKyAgICAgICAgLy8gRU5PRVhFQyBpbmRpY2F0ZXMgdGhhdCB0aGUg ZmlsZSBoZWFkZXIgd2FzIG5vdCByZWNvZ25pemVkLiBUaGUgbXVzbCBDCisrICAgICAgICAvLyBs aWJyYXJ5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZmFsbGJhY2sgdG8gL2Jpbi9zaCBmb3IgdGhh dCBjYXNlLCBzbyBmYWxsCisrICAgICAgICAvLyB0aHJvdWdoIHRvIHRoZSBjb2RlIGJlbG93IHdo aWNoIGltcGxlbWVudHMgdGhhdCBmYWxsYmFjayB1c2luZworKyAgICAgICAgLy8gZXhlY3ZlX3dp dGhfc2hlbGxfZmFsbGJhY2suCisrICAgICAgICBpZiAoZXJybm8gIT0gRU5PRVhFQykgeworKyAg ICAgICAgICAgIHJldHVybjsKKysgICAgICAgIH0KKyAgICAgfQorIAorICAgICBpZiAoKmZpbGUg PT0gJ1wwJykgeworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191 dGlsX21kLmgKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRp bF9tZC5oCitAQCAtMzcsNyArMzcsNyBAQAorICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCisg I2VsaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0UpCisgI2lu Y2x1ZGUgPG1hdGguaD4KKy0jZGVmaW5lIElTTkFORihmKSBpc25hbmYoZikKKysjZGVmaW5lIElT TkFORihmKSBpc25hbihmKQorICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCisgI2VsaWYgZGVm aW5lZChfQUlYKQorICNpbmNsdWRlIDxtYXRoLmg+CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgv bmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworKysrIGIvc3JjL2phdmEuYmFzZS91bml4 L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKK0BAIC0yMzYsNiArMjM2LDM5IEBAIFJl cXVpcmVzU2V0ZW52KGNvbnN0IGNoYXIgKmp2bXBhdGgpIHsKKyAgICAgY2hhciAqZG1sbHAgPSBO VUxMOworICAgICBjaGFyICpwOyAvKiBhIHV0aWxpdHkgcG9pbnRlciAqLworIAorKyNpZmRlZiBf X2xpbnV4CisrI2lmbmRlZiBMSUJDCisrI2Vycm9yICJMSUJDIG5vdCBzZXQiCisrI2VuZGlmCisr CisrICAgIGlmIChzdHJjbXAoTElCQywgIm11c2wiKSA9PSAwKSB7CisrICAgICAgLyoKKysgICAg ICAgKiBUaGUgbXVzbCBsaWJyYXJ5IGxvYWRlciByZXF1aXJlcyBMRF9MSUJSQVJZX1BBVEggdG8g YmUgc2V0IGluCisrICAgICAgICogb3JkZXIgdG8gY29ycmVjdGx5IHJlc29sdmUgdGhlIGRlcGVu ZGVuY3kgbGliamF2YS5zbyBoYXMgb24gbGlianZtLnNvLgorKyAgICAgICAqCisrICAgICAgICog U3BlY2lmaWNhbGx5LCBpdCBkaWZmZXJzIGZyb20gZ2xpYmMgaW4gdGhlIHNlbnNlIHRoYXQgZXZl biBpZgorKyAgICAgICAqIGxpYmp2bS5zbyBoYXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBpdCB3aWxs IG5vdCBiZSBjb25zaWRlcmVkIGEKKysgICAgICAgKiBjYW5kaWRhdGUgZm9yIHJlc29sdmluZyB0 aGUgZGVwZW5kZW5jeSB1bmxlc3MgdGhlICpmdWxsKiBwYXRoCisrICAgICAgICogb2YgdGhlIGFs cmVhZHkgbG9hZGVkIGxpYnJhcnkgbWF0Y2hlcyB0aGUgZGVwZW5kZW5jeSBiZWluZyBsb2FkZWQu CisrICAgICAgICoKKysgICAgICAgKiBsaWJqdm0uc28gaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBs YXVuY2hlciB1c2luZyBhIGxvbmcgcGF0aCB0bworKyAgICAgICAqIGRsb3Blbiwgbm90IGp1c3Qg dGhlIGJhc2VuYW1lIG9mIHRoZSBsaWJyYXJ5LiBUeXBpY2FsbHkgdGhpcworKyAgICAgICAqIGlz IHNvbWV0aGluZyBsaWtlICIuLi9saWIvc2VydmVyL2xpYmp2bS5zbyIuIEhvd2V2ZXIsIGlmL3do ZW4KKysgICAgICAgKiBsaWJqdm0uc28gbGF0ZXIgdHJpZXMgdG8gZGxvcGVuIGxpYmphdmEuc28g KHdoaWNoIGl0IGRvZXMgaW4KKysgICAgICAgKiBvcmRlciB0byBnZXQgYWNjZXNzIHRvIGEgZmV3 IGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCBpbgorKyAgICAgICAqIGxpYmphdmEuc28pIHRoZSBtdXNs IGxvYWRlciB3aWxsLCBhcyBwYXJ0IG9mIGxvYWRpbmcKKysgICAgICAgKiBkZXBlbmRlbnQgbGli cmFyaWVzLCB0cnkgdG8gbG9hZCBsaWJqdm0uc28gdXNpbmcgb25seSBpdHMKKysgICAgICAgKiBi YXNlbmFtZSAibGlianZtLnNvIi4gU2luY2UgdGhpcyBkb2VzIG5vdCBtYXRjaCB0aGUgbG9uZ2Vy CisrICAgICAgICogcGF0aCBwYXRoIGl0IHdhcyBmaXJzdCBsb2FkZWQgd2l0aCwgdGhlIGFscmVh ZHkgbG9hZGVkCisrICAgICAgICogbGlicmFyeSBpcyBub3QgY29uc2lkZXJlZCBhIGNhbmRpZGF0 ZSwgYW5kIHRoZSBsb2FkZXIgd2lsbAorKyAgICAgICAqIGluc3RlYWQgbG9vayBmb3IgbGlianZt LnNvIGVsc2V3aGVyZS4gSWYgaXQncyBub3QgaW4KKysgICAgICAgKiBMRF9MSUJSQVJZX1BBVEgg dGhlIGRlcGVuZGVuY3kgbG9hZCB3aWxsIGZhaWwsIGFuZCBsaWJqYXZhLnNvCisrICAgICAgICog d2lsbCB0aGVyZWZvcmUgZmFpbCBhcyB3ZWxsLgorKyAgICAgICAqLworKyAgICAgIHJldHVybiBK TklfVFJVRTsKKysgICAgfQorKyNlbmRpZgorKworICNpZmRlZiBBSVgKKyAgICAgLyogV2UgYWx3 YXlzIGhhdmUgdG8gc2V0IHRoZSBMSUJQQVRIIG9uIEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3Vw cG9ydCAkT1JJR0lOLiAqLworICAgICByZXR1cm4gSk5JX1RSVUU7CistLS0gYS9zcmMvamF2YS5i YXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworKysrIGIvc3JjL2phdmEu YmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKK0BAIC0zNiw3ICszNiw3 IEBACisgI2lmZGVmIF9fbGludXhfXworICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAgIC8qIEFs c28gZGVmaW5lZCBpbiBuZXQvbGludXhfY2xvc2UuYyAqLworLSAgI2RlZmluZSBJTlRFUlJVUFRf U0lHTkFMIChfX1NJR1JUTUFYIC0gMikKKysgICNkZWZpbmUgSU5URVJSVVBUX1NJR05BTCAoU0lH UlRNQVggLSAyKQorICNlbGlmIGRlZmluZWQoX0FJWCkKKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+ CisgICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2FpeF9jbG9zZS5jICovCistLS0gYS9zcmMvamF2 YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworKysrIGIv c3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMK K0BAIC0yNyw5ICsyNyw2IEBACisgI2luY2x1ZGUgPFgxMS9YdXRpbC5oPgorICNpbmNsdWRlIDxY MTEvWG9zLmg+CisgI2luY2x1ZGUgPFgxMS9YYXRvbS5oPgorLSNpZmRlZiBfX2xpbnV4X18KKy0j aW5jbHVkZSA8ZXhlY2luZm8uaD4KKy0jZW5kaWYKKyAKKyAjaW5jbHVkZSA8anZtLmg+CisgI2lu Y2x1ZGUgPGpuaS5oPgorQEAgLTc4MCwyNiArNzc3LDYgQEAgSk5JRVhQT1JUIGpzdHJpbmcgSk5J Q0FMTCBKYXZhX3N1bl9hd3RfWDExX1hUb29sa2l0X2dldEVudgorICAgICByZXR1cm4gcmV0Owor IH0KKyAKKy0jaWZkZWYgX19saW51eF9fCistdm9pZCBwcmludF9zdGFjayh2b2lkKQorLXsKKy0g IHZvaWQgKmFycmF5WzEwXTsKKy0gIHNpemVfdCBzaXplOworLSAgY2hhciAqKnN0cmluZ3M7Cist ICBzaXplX3QgaTsKKy0KKy0gIHNpemUgPSBiYWNrdHJhY2UgKGFycmF5LCAxMCk7CistICBzdHJp bmdzID0gYmFja3RyYWNlX3N5bWJvbHMgKGFycmF5LCBzaXplKTsKKy0KKy0gIGZwcmludGYgKHN0 ZGVyciwgIk9idGFpbmVkICV6ZCBzdGFjayBmcmFtZXMuXG4iLCBzaXplKTsKKy0KKy0gIGZvciAo aSA9IDA7IGkgPCBzaXplOyBpKyspCistICAgICBmcHJpbnRmIChzdGRlcnIsICIlc1xuIiwgc3Ry aW5nc1tpXSk7CistCistICBmcmVlIChzdHJpbmdzKTsKKy19CistI2VuZGlmCistCisgV2luZG93 IGdldF94YXd0X3Jvb3Rfc2hlbGwoSk5JRW52ICplbnYpIHsKKyAgIHN0YXRpYyBqY2xhc3MgY2xh c3NYUm9vdFdpbmRvdyA9IE5VTEw7CisgICBzdGF0aWMgam1ldGhvZElEIG1ldGhvZEdldFhSb290 V2luZG93ID0gTlVMTDsKKy0tLSBhL3NyYy9qZGsuamR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGli amR3cC91dGlsLmgKKysrKyBiL3NyYy9qZGsuamR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3 cC91dGlsLmgKK0BAIC0zNSwxNSArMzUsMTUgQEAKKyAjaWZkZWYgREVCVUcKKyAgICAgLyogSnVz dCB0byBtYWtlIHN1cmUgdGhlc2UgaW50ZXJmYWNlcyBhcmUgbm90IHVzZWQgaGVyZS4gKi8KKyAg ICAgI3VuZGVmIGZyZWUKKy0gICAgI2RlZmluZSBmcmVlKHApIERvIG5vdCB1c2UgdGhpcyBpbnRl cmZhY2UuCisrICAgICNkZWZpbmUgZnJlZSBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX2ZyZWUK KyAgICAgI3VuZGVmIG1hbGxvYworLSAgICAjZGVmaW5lIG1hbGxvYyhwKSBEbyBub3QgdXNlIHRo aXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIG1hbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJm YWNlX21hbGxvYworICAgICAjdW5kZWYgY2FsbG9jCistICAgICNkZWZpbmUgY2FsbG9jKHApIERv IG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgY2FsbG9jIGRvX25vdF91c2Vf dGhpc19pbnRlcmZhY2VfY2FsbG9jCisgICAgICN1bmRlZiByZWFsbG9jCistICAgICNkZWZpbmUg cmVhbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHJlYWxs b2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9yZWFsbG9jCisgICAgICN1bmRlZiBzdHJkdXAK Ky0gICAgI2RlZmluZSBzdHJkdXAocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAg I2RlZmluZSBzdHJkdXAgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9zdHJkdXAKKyAjZW5kaWYK KyAKKyAjaW5jbHVkZSAibG9nX21lc3NhZ2VzLmgiCistLS0gYS90ZXN0L2hvdHNwb3QvanRyZWcv cnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMKKysrKyBiL3Rlc3QvaG90c3BvdC9q dHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworQEAgLTMzLDYgKzMzLDcg QEAKKyAKKyAjaW5jbHVkZSA8YXNzZXJ0Lmg+CisgI2luY2x1ZGUgPGpuaS5oPgorKyNpbmNsdWRl IDxqdm0uaD4KKyAjaW5jbHVkZSA8YWxsb2NhLmg+CisgI2luY2x1ZGUgPHNpZ25hbC5oPgorICNp bmNsdWRlIDxzdHJpbmcuaD4KK0BAIC05MSw2ICs5MiwyMCBAQCB2b2lkIHNldF9zaWduYWxfaGFu ZGxlcigpIHsKKyAgIH0KKyB9CisgCisraW50IGdldF9qYXZhX3N0YWNrc2l6ZSAoKSB7CisrICBz aXplX3Qgc3RhY2tzaXplOworKyAgcHRocmVhZF9hdHRyX3QgYXR0cjsKKysgIEpESzFfMUluaXRB cmdzIGpka19hcmdzOworKworKyAgamRrX2FyZ3MudmVyc2lvbiA9IEpOSV9WRVJTSU9OXzFfMTsK KysgIEpOSV9HZXREZWZhdWx0SmF2YVZNSW5pdEFyZ3MoJmpka19hcmdzKTsKKysgIGlmIChqZGtf YXJncy5qYXZhU3RhY2tTaXplIDw9IDApIHsKKysgICAgZnByaW50ZihzdGRlcnIsICJUZXN0IEVS Uk9SLiBDYW4ndCBnZXQgYSB2YWxpZCB2YWx1ZSBmb3IgdGhlIGRlZmF1bHQgc3RhY2tzaXplLlxu Iik7CisrICAgIGV4aXQoNyk7CisrICB9CisrICByZXR1cm4gamRrX2FyZ3MuamF2YVN0YWNrU2l6 ZTsKKyt9CisrCisgdm9pZCAqcnVuX2phdmFfb3ZlcmZsb3cgKHZvaWQgKnApIHsKKyAgIEpOSUVu diAqZW52OworICAgamNsYXNzIGNsYXNzX2lkOworQEAgLTI1OCwxMyArMjczLDE5IEBAIGludCBt YWluIChpbnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpIHsKKyAgICAgZXhpdCg3KTsKKyAgIH0K KyAKKysgIGludCBzdGFja19zaXplID0gZ2V0X2phdmFfc3RhY2tzaXplKCk7CisgICBwdGhyZWFk X3QgdGhyOworKyAgcHRocmVhZF9hdHRyX3QgdGhyZWFkX2F0dHI7CisrCisrICBwdGhyZWFkX2F0 dHJfaW5pdCgmdGhyZWFkX2F0dHIpOworKyAgcHRocmVhZF9hdHRyX3NldHN0YWNrc2l6ZSgmdGhy ZWFkX2F0dHIsIHN0YWNrX3NpemUpOworIAorICAgaWYgKGFyZ2MgPiAxICYmIHN0cmNtcChhcmd2 WzFdLCAidGVzdF9qYXZhX292ZXJmbG93IikgPT0gMCkgeworICAgICBwcmludGYoIlxuVGVzdGlu ZyBKQVZBX09WRVJGTE9XXG4iKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJk IHBhZ2UgYmVoYXZpb3VyIGZvciBvdGhlciB0aHJlYWRcbiIpOworLSAgICBwdGhyZWFkX2NyZWF0 ZSAoJnRociwgTlVMTCwgcnVuX2phdmFfb3ZlcmZsb3csIE5VTEwpOworKworKyAgICBwdGhyZWFk X2NyZWF0ZSAoJnRociwgJnRocmVhZF9hdHRyLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7Cisg ICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0 YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBpbml0aWFsIHRocmVhZFxuIik7CitAQCAtMjc3 LDcgKzI5OCw3IEBAIGludCBtYWluIChpbnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpIHsKKyAg ICAgcHJpbnRmKCJcblRlc3RpbmcgTkFUSVZFX09WRVJGTE9XXG4iKTsKKyAKKyAgICAgcHJpbnRm KCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBvdGhlciB0aHJlYWRcbiIp OworLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwgcnVuX25hdGl2ZV9vdmVyZmxvdywg TlVMTCk7CisrICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9uYXRp dmVfb3ZlcmZsb3csIE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisgCisg ICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlh bCB0aHJlYWRcbiIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2Zp bGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAv ZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw MDAwMDAwMDAwMDAuLmQzMDZkNTAxZTRiOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Bl bmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCkBAIC0wLDAgKzEs NDUgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8v Z2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVj Nzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9B c3NlbWJsZXJfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1i bGVyX3BwYy5jcHAKK0BAIC00Nyw2ICs0Nyw4IEBACisgI2luY2x1ZGUgIm9wdG8vaW50cmluc2lj bm9kZS5ocHAiCisgI2VuZGlmCisgCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyAjaWZk ZWYgUFJPRFVDVAorICNkZWZpbmUgQkxPQ0tfQ09NTUVOVChzdHIpIC8vIG5vdGhpbmcKKyAjZWxz ZQorLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUvcHBjL3ZtX3ZlcnNpb25fcHBjLmNwcAorKysrIG5l dy9zcmMvaG90c3BvdC9jcHUvcHBjL3ZtX3ZlcnNpb25fcHBjLmNwcAorQEAgLTg0NSw3ICs4NDUs NyBAQCB2b2lkIFZNX1ZlcnNpb246OmRldGVybWluZV9mZWF0dXJlcygpIHsKKyAgIHVuc2lnbmVk IGxvbmcgYXV4diA9IGdldGF1eHZhbChBVF9IV0NBUDIpOworIAorICAgaWYgKGF1eHYgJiBQUENf RkVBVFVSRTJfSFRNX05PU0MpIHsKKy0gICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSEFTX0hU TSkgeworKyAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IVE0pIHsKKyAgICAgICAvLyBUTSBv biBQT1dFUjggYW5kIFBPV0VSOSBpbiBjb21wYXQgbW9kZSAoVk0pIGlzIHN1cHBvcnRlZCBieSB0 aGUgSlZNLgorICAgICAgIC8vIFRNIG9uIFBPV0VSOSBERDIuMSBOViAoYmFyZW1ldGFsKSBpcyBu b3Qgc3VwcG9ydGVkIGJ5IHRoZSBKVk0gKFRNIG9uCisgICAgICAgLy8gUE9XRVI5IEREMi4xIE5W IGhhcyBhIGZldyBpc3N1ZXMgdGhhdCBuZWVkIGEgY291cGxlIG9mIGZpcm13YXJlCistLS0gb2xk L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorKysrIG5ldy9z cmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAKK0BAIC03NSw3ICs3 NSw3IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1 ZGUgPHVjb250ZXh0Lmg+CistCisrIyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCisgYWRkcmVz cyBvczo6Y3VycmVudF9zdGFja19wb2ludGVyKCkgeworICAgaW50cHRyX3QqIGNzcDsKKy0tLSBv bGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAorKysr IG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCitA QCAtMjMsNiArMjMsOCBAQAorICAqCisgICovCisgCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4K KysKKyAjaW5jbHVkZSAicHJlY29tcGlsZWQuaHBwIgorICNpbmNsdWRlICJydW50aW1lL2ZyYW1l LmlubGluZS5ocHAiCisgI2luY2x1ZGUgInJ1bnRpbWUvdGhyZWFkLmhwcCIKZGlmZiAtLWdpdCBh L3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNo IGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45YzY0YzE4OTAzNmEK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL3g4Ni5wYXRjaApAQCAtMCwwICsxLDEzMCBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0 YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0 cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0t LSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysg bmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTkw LDYgKzkwLDEyNiBAQAorICNkZWZpbmUgU1BFTExfUkVHX0ZQICJlYnAiCisgI2VuZGlmIC8vIEFN RDY0CisKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyBUYWtlbiBmcm9tIGdsaWJjIDIu MjgKKysvLyBzb3VyY2U6IGh0dHBzOi8vc291cmNld2FyZS5vcmcvZ2l0Lz9wPWdsaWJjLmdpdDth PWJsb2I7Zj1zeXNkZXBzL3g4Ni9mcHVfY29udHJvbC5oO2g9NGNiOThjNTY3OWIyODk3ZmY0ZTU4 MjZkMjI4Y2JhNmJlNTg5ZTI0ZDtoYj0zYzAzYmFjYTM3ZmRjYjUyYzM4ODFlNjUzY2EzOTJiYmE3 YTk5YzJiCisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrI2lmbmRlZiBBTUQ2NAorKy8qIEZQ VSBjb250cm9sIHdvcmQgYml0cy4gIHg4NiB2ZXJzaW9uLgorKyAgIENvcHlyaWdodCAoQykgMTk5 My0yMDE4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBw YXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5LgorKyAgIENvbnRyaWJ1dGVkIGJ5IE9sYWYgRmxlYmJl LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk aXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0 aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysg ICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp bGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisrICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJh bCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2 ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBM aWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0 dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LiAgKi8KKysKKysjaWZuZGVmIF9GUFVfQ09OVFJP TF9ICisrI2RlZmluZSBfRlBVX0NPTlRST0xfSAkxCisrCisrLyogTm90ZSB0aGF0IHRoaXMgZmls ZSBzZXRzIG9uIHg4Ni02NCBvbmx5IHRoZSB4ODcgRlBVLCBpdCBkb2VzIG5vdAorKyAgIHRvdWNo IHRoZSBTU0UgdW5pdC4gICovCisrCisrLyogSGVyZSBpcyB0aGUgZGlydHkgcGFydC4gU2V0IHVw IHlvdXIgMzg3IHRocm91Z2ggdGhlIGNvbnRyb2wgd29yZAorKyAqIChjdykgcmVnaXN0ZXIuCisr ICoKKysgKiAgICAgMTUtMTMgICAgMTIgIDExLTEwICA5LTggICAgIDctNiAgICAgNSAgICA0ICAg IDMgICAgMiAgICAxICAgIDAKKysgKiB8IHJlc2VydmVkIHwgSUMgfCBSQyAgfCBQQyB8IHJlc2Vy dmVkIHwgUE0gfCBVTSB8IE9NIHwgWk0gfCBETSB8IElNCisrICoKKysgKiBJTTogSW52YWxpZCBv cGVyYXRpb24gbWFzaworKyAqIERNOiBEZW5vcm1hbGl6ZWQgb3BlcmFuZCBtYXNrCisrICogWk06 IFplcm8tZGl2aWRlIG1hc2sKKysgKiBPTTogT3ZlcmZsb3cgbWFzaworKyAqIFVNOiBVbmRlcmZs b3cgbWFzaworKyAqIFBNOiBQcmVjaXNpb24gKGluZXhhY3QgcmVzdWx0KSBtYXNrCisrICoKKysg KiBNYXNrIGJpdCBpcyAxIG1lYW5zIG5vIGludGVycnVwdC4KKysgKgorKyAqIFBDOiBQcmVjaXNp b24gY29udHJvbAorKyAqIDExIC0gcm91bmQgdG8gZXh0ZW5kZWQgcHJlY2lzaW9uCisrICogMTAg LSByb3VuZCB0byBkb3VibGUgcHJlY2lzaW9uCisrICogMDAgLSByb3VuZCB0byBzaW5nbGUgcHJl Y2lzaW9uCisrICoKKysgKiBSQzogUm91bmRpbmcgY29udHJvbAorKyAqIDAwIC0gcm91bmRpbmcg dG8gbmVhcmVzdAorKyAqIDAxIC0gcm91bmRpbmcgZG93biAodG93YXJkIC0gaW5maW5pdHkpCisr ICogMTAgLSByb3VuZGluZyB1cCAodG93YXJkICsgaW5maW5pdHkpCisrICogMTEgLSByb3VuZGlu ZyB0b3dhcmQgemVybworKyAqCisrICogSUM6IEluZmluaXR5IGNvbnRyb2wKKysgKiBUaGF0IGlz IGZvciA4MDg3IGFuZCA4MDI4NyBvbmx5LgorKyAqCisrICogVGhlIGhhcmR3YXJlIGRlZmF1bHQg aXMgMHgwMzdmIHdoaWNoIHdlIHVzZS4KKysgKi8KKysKKysjaW5jbHVkZSA8ZmVhdHVyZXMuaD4K KysKKysvKiBtYXNraW5nIG9mIGludGVycnVwdHMgKi8KKysjZGVmaW5lIF9GUFVfTUFTS19JTSAg MHgwMQorKyNkZWZpbmUgX0ZQVV9NQVNLX0RNICAweDAyCisrI2RlZmluZSBfRlBVX01BU0tfWk0g IDB4MDQKKysjZGVmaW5lIF9GUFVfTUFTS19PTSAgMHgwOAorKyNkZWZpbmUgX0ZQVV9NQVNLX1VN ICAweDEwCisrI2RlZmluZSBfRlBVX01BU0tfUE0gIDB4MjAKKysKKysvKiBwcmVjaXNpb24gY29u dHJvbCAqLworKyNkZWZpbmUgX0ZQVV9FWFRFTkRFRCAweDMwMAkvKiBsaWJtIHJlcXVpcmVzIGRv dWJsZSBleHRlbmRlZCBwcmVjaXNpb24uICAqLworKyNkZWZpbmUgX0ZQVV9ET1VCTEUgICAweDIw MAorKyNkZWZpbmUgX0ZQVV9TSU5HTEUgICAweDAKKysKKysvKiByb3VuZGluZyBjb250cm9sICov CisrI2RlZmluZSBfRlBVX1JDX05FQVJFU1QgMHgwICAgIC8qIFJFQ09NTUVOREVEICovCisrI2Rl ZmluZSBfRlBVX1JDX0RPV04gICAgMHg0MDAKKysjZGVmaW5lIF9GUFVfUkNfVVAgICAgICAweDgw MAorKyNkZWZpbmUgX0ZQVV9SQ19aRVJPICAgIDB4QzAwCisrCisrI2RlZmluZSBfRlBVX1JFU0VS VkVEIDB4RjBDMCAgLyogUmVzZXJ2ZWQgYml0cyBpbiBjdyAqLworKworKworKy8qIFRoZSBmZGxp Ym0gY29kZSByZXF1aXJlcyBzdHJpY3QgSUVFRSBkb3VibGUgcHJlY2lzaW9uIGFyaXRobWV0aWMs CisrICAgYW5kIG5vIGludGVycnVwdHMgZm9yIGV4Y2VwdGlvbnMsIHJvdW5kaW5nIHRvIG5lYXJl c3QuICAqLworKworKyNkZWZpbmUgX0ZQVV9ERUZBVUxUICAweDAzN2YKKysKKysvKiBJRUVFOiAg c2FtZSBhcyBhYm92ZS4gICovCisrI2RlZmluZSBfRlBVX0lFRUUgICAgIDB4MDM3ZgorKworKy8q IFR5cGUgb2YgdGhlIGNvbnRyb2wgd29yZC4gICovCisrdHlwZWRlZiB1bnNpZ25lZCBpbnQgZnB1 X2NvbnRyb2xfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKKysKKysvKiBN YWNyb3MgZm9yIGFjY2Vzc2luZyB0aGUgaGFyZHdhcmUgY29udHJvbCB3b3JkLiAgIiomIiBpcyB1 c2VkIHRvCisrICAgd29yayBhcm91bmQgYSBidWcgaW4gb2xkZXIgdmVyc2lvbnMgb2YgR0NDLiAg X192b2xhdGlsZV9fIGlzIHVzZWQKKysgICB0byBzdXBwb3J0IGNvbWJpbmF0aW9uIG9mIHdyaXRp bmcgdGhlIGNvbnRyb2wgcmVnaXN0ZXIgYW5kIHJlYWRpbmcKKysgICBpdCBiYWNrLiAgV2l0aG91 dCBfX3ZvbGF0aWxlX18sIHRoZSBvbGQgdmFsdWUgbWF5IGJlIHVzZWQgZm9yIHJlYWRpbmcKKysg ICBiYWNrIHVuZGVyIGNvbXBpbGVyIG9wdGltaXphdGlvbi4KKysKKysgICBOb3RlIHRoYXQgdGhl IHVzZSBvZiB0aGVzZSBtYWNyb3MgaXMgbm90IHN1ZmZpY2llbnQgYW55bW9yZSB3aXRoCisrICAg cmVjZW50IGhhcmR3YXJlIG5vciBvbiB4ODYtNjQuICBTb21lIGZsb2F0aW5nIHBvaW50IG9wZXJh dGlvbnMgYXJlCisrICAgZXhlY3V0ZWQgaW4gdGhlIFNTRS9TU0UyIGVuZ2luZXMgd2hpY2ggaGF2 ZSB0aGVpciBvd24gY29udHJvbCBhbmQKKysgICBzdGF0dXMgcmVnaXN0ZXIuICAqLworKyNkZWZp bmUgX0ZQVV9HRVRDVyhjdykgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbnN0Y3cgJTAiIDogIj1t IiAoKiZjdykpCisrI2RlZmluZSBfRlBVX1NFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAo ImZsZGN3ICUwIiA6IDogIm0iICgqJmN3KSkKKysKKysvKiBEZWZhdWx0IGNvbnRyb2wgd29yZCBz ZXQgYXQgc3RhcnR1cC4gICovCisrZXh0ZXJuIGZwdV9jb250cm9sX3QgX19mcHVfY29udHJvbDsK KysKKysjZW5kaWYJLyogZnB1X2NvbnRyb2wuaCAqLworKworKyNlbmRpZiAvLyBBTUQ2NAorKy8v ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorKworIGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRl cigpIHsKKyAjaWZkZWYgU1BBUkNfV09SS1MKKyAgIHJlZ2lzdGVyIHZvaWQgKmVzcDsKZGlmZiAt LWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3Bl bmpkazE1LWJvb3RzdHJhcC90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw MDAwMDAwMDAuLjhlYTE5YWY5OTJmZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Blbmpk azE1LWJvb3RzdHJhcC90ZW1wbGF0ZQpAQCAtMCwwICsxLDExMSBAQAorIyBUZW1wbGF0ZSBmaWxl IGZvciAnb3BlbmpkazE1LWJvb3RzdHJhcCcKK19qYXZhX3Zlcj0xNQorX2phdmFfbWluX3Zlcj0w CitfamF2YV9zZWNfdmVyPTMKK19qZGtfdXBkYXRlPTMKK19qZGtfaG9tZT0idXNyL2xpYi9qdm0v b3BlbmpkayR7X2phdmFfdmVyfSIKK19iYXNlX3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZh X21pbl92ZXJ9LiR7X2phdmFfc2VjX3Zlcn0iCisKK3BrZ25hbWU9b3BlbmpkazE1LWJvb3RzdHJh cAordmVyc2lvbj0iJHtfYmFzZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3JldmlzaW9uPTEK K3dya3NyYz0iamRrJHtfamF2YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWdu dS1jb25maWd1cmUKK2NvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3Jz CisgLS1wcmVmaXg9JHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91c3IvbGli CisgLS1lbmFibGUtdW5saW1pdGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQorIC0td2l0 aC1saWJqcGVnPXN5c3RlbQorIC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxpYnBuZz1z eXN0ZW0KKyAtLXdpdGgtbGNtcz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdpdGgtdmVy c2lvbi1idWlsZD0kX2phdmFfdmVyCisgLS13aXRoLWpvYnM9JFhCUFNfT1JJR19NQUtFSk9CUwor IC0td2l0aC12ZW5kb3ItbmFtZT1Wb2lkCisgLS13aXRoLXZlbmRvci11cmw9aHR0cHM6Ly92b2lk bGludXgub3JnLworIC0td2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC12ZW5kb3Itdm0tYnVnLXVybD1o dHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0 aC1ib290LWpkaz0vdXNyL2xpYi9qdm0vb3BlbmpkazE0IgorbWFrZV9idWlsZF9hcmdzPSJpbWFn ZXMiCittYWtlX2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0IgoraG9zdG1ha2VkZXBl bmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFyIHVuemlwIHppcCBjYS1j ZXJ0aWZpY2F0ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1ha2UtY2Egb3BlbmpkazE0 LWJvb3RzdHJhcCIKK21ha2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRldmVsIGxpYlh0c3QtZGV2ZWwg bGliWHQtZGV2ZWwgbGliWHJhbmRyLWRldmVsCisgZ2lmbGliLWRldmVsIGxpYmpwZWctdHVyYm8t ZGV2ZWwgY3Vwcy1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1kZXZlbAorIGZvbnRjb25m aWctZGV2ZWwgemxpYi1kZXZlbCBsY21zMi1kZXZlbCBoYXJmYnV6ei1kZXZlbCBvcGVuamRrMTQt Ym9vdHN0cmFwIgorcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEt cnVudGltZS0ke3ZlcnNpb259XzEiCitzaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1l bnQgS2l0IChib290c3RyYXAgdmVyc2lvbiAxNSkiCittYWludGFpbmVyPSJjbGFzc2FiYnlhbXAg PGRldkBrYjYuZWU+IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5IFdJVEggQ2xhc3NwYXRoLWV4Y2Vw dGlvbi0yLjAiCitob21lcGFnZT0iaHR0cDovL29wZW5qZGsuamF2YS5uZXQvIgorZGlzdGZpbGVz PSJodHRwczovL2hnLm9wZW5qZGsuamF2YS5uZXQvamRrLXVwZGF0ZXMvamRrJHtfamF2YV92ZXJ9 dS9hcmNoaXZlL2pkay0ke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPTRiYmQ3YTczMzU0YTJk MjQ0YzdhMDc1NDA2MzM5YWEwY2U0YzVmYzZiZTkxYTc5NWFmOTMxZjZkYzk1ZDA2N2MKK25vY3Jv c3M9eWVzCisKKyMgQnVpbGQgaXMgc3RpbGwgcGFyYWxsZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgor ZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15ZXMKKworIyBubyBob3RzcG90IEpJVCBmb3IgcHBjMzIK K2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0KikgOzsKKwlwcGMqKSBfdXNl X3plcm89eWVzIDs7Citlc2FjCisKK2lmIFsgLW4gIiRfdXNlX3plcm8iIF07IHRoZW4KKwltYWtl ZGVwZW5kcys9IiBsaWJmZmktZGV2ZWwiCisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWp2bS12 YXJpYW50cz16ZXJvIgorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGMqKSBj b25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGstanZtYXJncz0tWFg6VGhyZWFkU3RhY2tT aXplPTI1NjAiOzsKKwllc2FjCitmaQorCitwb3N0X2V4dHJhY3QoKSB7CisJY2htb2QgK3ggY29u ZmlndXJlCisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJcm0g LXIgc3JjL2pkay5ob3RzcG90LmFnZW50CisJZmkKK30KKworcG9zdF9wYXRjaCgpIHsKKwlpZiBb ICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCQlmb3IgZiBpbiAiJHtGSUxF U0RJUn0iL211c2xfcGF0Y2hlcy8qLnBhdGNoOyBkbworCQkJbXNnX25vcm1hbCAiQXBwbHlpbmcg JHtmIyRGSUxFU0RJUi99XG4iCisJCQlwYXRjaCAtTnAxIC1pICIkZiIKKwkJZG9uZQorCWZpCit9 CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlDRkxBR1M9JHtDRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9 Mi99CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKworCSMgZm9y Y2UgRUxGdjIgZm9yIHBwYzY0IGp1c3QgaW4gY2FzZQorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNI SU5FIiBpbgorCQlwcGM2NCopCisJCQlDRkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQlDWFhGTEFH Uys9IiAtREFCSV9FTEZ2MiIKKwkJCTs7CisJZXNhYworCisJY29uZmlndXJlX2FyZ3M9JHtjb25m aWd1cmVfYXJncy8tLXdpdGgtbGlidG9vbC1zeXNyb290PVwvdXNyXC9bYS16MC05XSotbGludXgt W2Etel0qL30KKwlpZiBbICIkWEJQU19DQ0FDSEUiIF07IHRoZW4KKwkJY29uZmlndXJlX2FyZ3Mr PSIgLS1lbmFibGUtY2NhY2hlIgorCWZpCisJQ0M9Ii91c3IvYmluL2NjIgorCUNYWD0iL3Vzci9i aW4vYysrIgorCS4vY29uZmlndXJlICR7Y29uZmlndXJlX2FyZ3N9IFwKKwkJLS13aXRoLWV4dHJh LWNmbGFncz0iJENGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEtY3h4ZmxhZ3M9IiRDWFhGTEFHUyIg XAorCQktLXdpdGgtZXh0cmEtbGRmbGFncz0iJExERkxBR1MiIFwKKwkJUkVBREVMRj0kUkVBREVM RiBBUj0kQVIgU1RSSVA9JFNUUklQIE5NPSROTSBcCisJCU9CSkRVTVA9JE9CSkRVTVAgT0JKQ09Q WT0kT0JKQ09QWQorfQorCitwb3N0X2luc3RhbGwoKSB7CisJbXYgJHtERVNURElSfS91c3IvbGli L2p2bS9vcGVuamRrLSR7X2Jhc2VfdmVyc2lvbn0taW50ZXJuYWwgJHtERVNURElSfS8kX2pka19o b21lCisJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KKwlybSAtZiAkREVTVERJUi8kX2pk a19ob21lL2xpYi9zcmMuemlwCisJdmxpY2Vuc2UgQVNTRU1CTFlfRVhDRVBUSU9OCisJdmxpY2Vu c2UgTElDRU5TRQorfQoKRnJvbSBjZmU3NGRjNzQ4MjNkNDVhOGVhNWJiNWM4MzE1NmM3ODhmYzU0 YTMxIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBjbGFzc2FiYnlhbXAgPGRldkBrYjYu ZWU+CkRhdGU6IFR1ZSwgMTEgSmFuIDIwMjIgMDM6MTQ6NTYgLTA1MDAKU3ViamVjdDogW1BBVENI IDA2LzExXSBOZXcgcGFja2FnZTogb3BlbmpkazE2LWJvb3RzdHJhcC0xNi4wLjIrNwoKQ28tYXV0 aG9yZWQtYnk6IFRhaSBDaGkgTWluaCBSYWxwaCBFYXN0d29vZCA8dGNtcmVhc3R3b29kQGdtYWls LmNvbT4KLS0tCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAg fCAgMTAgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggICAgICAgICAgICAgIHwg IDIxICsKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggICAgICAgICAgICB8IDM3 MiArKysrKysrKysrKysrKysrKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoICAg ICAgICAgICAgICB8ICA0NSArKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAg ICAgICAgICAgICB8IDEzMCArKysrKysKIHNyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90ZW1w bGF0ZSAgICAgICAgICB8IDExMSArKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNjg5IGluc2VydGlv bnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmls ZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNo ZXMvYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNi1ib290 c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL3RlbXBsYXRlCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9hYXJjaDY0LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xf cGF0Y2hlcy9hYXJjaDY0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uYWE2YzVkNGQyYmUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTYt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCkBAIC0wLDAgKzEsMTAg QEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNo NjQuY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9h YXJjaDY0LmNwcAorQEAgLTc0LDcgKzc0LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5j bHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jIGluY2x1ZGUgPGZwdV9j b250cm9sLmg+CisgCisgI2RlZmluZSBSRUdfRlAgMjkKKyAjZGVmaW5lIFJFR19MUiAzMApkaWZm IC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9h cm0ucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L2FybS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjEwMjQy OGYxMGYzMwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9m aWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAKKy0tLSBhL3NyYy9o b3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAorKysrIGIvc3JjL2hvdHNw b3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9hcm0uY3BwCitAQCAtNzMsNiArNzMsMTggQEAK KyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CisgIyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCisr Ly8gU3R1cGlkIGhhY2sgYXMgdGhlIG9yaWdpbiBpZiBiZWxvdyBkb2VzbnQgY29tcGlsZSB3aXRo IGdjYyA4LjIuMDoKKysvLworKy8vIG9zX2xpbnV4X2FybS5jcHA6MTE0OjU6IGVycm9yOiBtaXNz aW5nIGJpbmFyeSBvcGVyYXRvciBiZWZvcmUgdG9rZW4gIigiCisrLy8gICNpZiBOR1JFRyA9PSAx NgorKy8vICAgICAgIF5+fn5+CisrLy8KKysvLyBUaGUgTkdSRUcgaXMgMTggKGJpdHMvc2lnbmFs Lmg6MTApLCBzbyBmb3JjZSBpdCB0byB0aGF0IHZhbHVlLgorKyNpZmRlZiBOR1JFRworKyMgIHVu ZGVmIE5HUkVHCisrI2VuZGlmCisrI2RlZmluZSBOR1JFRyAxOAorKworICNkZWZpbmUgU1BFTExf UkVHX1NQICAic3AiCisgCisgLy8gRG9uJ3QgI2RlZmluZSBTUEVMTF9SRUdfRlAgZm9yIHRodW1i IGJlY2F1c2UgaXQgaXMgbm90IHNhZmUgdG8gdXNlLCBzbyB0aGlzIG1ha2VzIHN1cmUgd2UgbmV2 ZXIgZmV0Y2ggaXQuCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmls ZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFw L2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCAwMDAwMDAwMDAwMDAuLjYwZGZkZWMzMGFiYwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mv b3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAs MCArMSwzNzIgQEAKKy0tLSBhL21ha2UvUmVsZWFzZUZpbGUuZ21rCisrKysgYi9tYWtlL1JlbGVh c2VGaWxlLmdtaworQEAgLTUzLDYgKzUzLDcgQEAgZGVmaW5lIGNyZWF0ZS1pbmZvLWZpbGUKKyAg ICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkpBVkFfVkVSU0lPTl9EQVRFIiwgIiQoVkVSU0lPTl9E QVRFKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19OQU1FIiwgIiQoUkVMRUFTRV9G SUxFX09TX05BTUUpIikKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIk9TX0FSQ0giLCAiJChS RUxFQVNFX0ZJTEVfT1NfQVJDSCkiKQorKyAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiTElCQyIs ICJtdXNsIikKKyBlbmRlZgorIAorICMgUGFyYW0gMSAtIFRoZSBmaWxlIGNvbnRhaW5pbmcgdGhl IE1PRFVMRVMgbGlzdAorLS0tIGEvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworKysr IGIvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworQEAgLTczLDYgKzczLDcgQEAgQ0ZM QUdTX1ZNX1ZFUlNJT04gOj0gXAorICAgICAtREhPVFNQT1RfQlVJTERfVVNFUj0nIiQoVVNFUk5B TUUpIicgXAorICAgICAtREhPVFNQT1RfVk1fRElTVFJPPSciJChIT1RTUE9UX1ZNX0RJU1RSTyki JyBcCisgICAgIC1EQ1BVPSciJChPUEVOSkRLX1RBUkdFVF9DUFVfVk1fVkVSU0lPTikiJyBcCisr ICAgIC1ETElCQz0nIm11c2wiJyBcCisgICAgICMKKyAKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworLS0tIGEvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKysrKyBiL21ha2UvbGliL0NvcmVM aWJyYXJpZXMuZ21rCitAQCAtMTkwLDYgKzE5MCw3IEBAIGlmZXEgKCQoY2FsbCBpc1RhcmdldE9z LCB3aW5kb3dzKSwgdHJ1ZSkKKyBlbmRpZgorIAorIExJQkpMSV9DRkxBR1MgKz0gJChMSUJaX0NG TEFHUykKKytMSUJKTElfQ0ZMQUdTICs9IC1ETElCQz1cIm11c2xcIgorIAorIGlmbmVxICgkKFVT RV9FWFRFUk5BTF9MSUJaKSwgdHJ1ZSkKKyAgIExJQkpMSV9FWFRSQV9GSUxFUyArPSBcCistLS0g YS9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29z L2xpbnV4L29zX2xpbnV4LmNwcAorQEAgLTEwMiw3ICsxMDIsNiBAQAorICMgaW5jbHVkZSA8c3Ry aW5nLmg+CisgIyBpbmNsdWRlIDxzeXNjYWxsLmg+CisgIyBpbmNsdWRlIDxzeXMvc3lzaW5mby5o PgorLSMgaW5jbHVkZSA8Z251L2xpYmMtdmVyc2lvbi5oPgorICMgaW5jbHVkZSA8c3lzL2lwYy5o PgorICMgaW5jbHVkZSA8c3lzL3NobS5oPgorICMgaW5jbHVkZSA8bGluay5oPgorQEAgLTU5Nyw2 ICs1OTYsMTIgQEAgdm9pZCBvczo6TGludXg6OmhvdHNwb3Rfc2lnbWFzayhUaHJlYWQqIHRocmVh ZCkgeworIC8vIGRldGVjdGluZyBwdGhyZWFkIGxpYnJhcnkKKyAKKyB2b2lkIG9zOjpMaW51eDo6 bGlicHRocmVhZF9pbml0KCkgeworKyNpZiAhZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVk KF9fVUNMSUJDX18pCisrICAvLyBIYXJkIGNvZGUgQWxwaW5lIExpbnV4IHN1cHBvcnRlZCBtdXNs IGNvbXBhdGlibGUgc2V0dGluZ3MKKysgIC8vIHNnbjogTlBUTCBpcyBjb3JyZWN0LCBkb24ndCBr bm93IGFib3V0IGdsaWJjIDIuOSwgYWxwaW5lJ3MgdGhpbmc/CisrICBvczo6TGludXg6OnNldF9n bGliY192ZXJzaW9uKCJnbGliYyAyLjkiKTsKKysgIG9zOjpMaW51eDo6c2V0X2xpYnB0aHJlYWRf dmVyc2lvbigiTlBUTCIpOworKyNlbHNlCisgICAvLyBTYXZlIGdsaWJjIGFuZCBwdGhyZWFkIHZl cnNpb24gc3RyaW5ncy4KKyAjaWYgIWRlZmluZWQoX0NTX0dOVV9MSUJDX1ZFUlNJT04pIHx8IFwK KyAgICAgIWRlZmluZWQoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04pCitAQCAtNjE0LDYgKzYx OSw3IEBAIHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7CisgICBzdHIgPSAoY2hh ciAqKW1hbGxvYyhuLCBtdEludGVybmFsKTsKKyAgIGNvbmZzdHIoX0NTX0dOVV9MSUJQVEhSRUFE X1ZFUlNJT04sIHN0ciwgbik7CisgICBvczo6TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24o c3RyKTsKKysjZW5kaWYKKyB9CisgCisgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK0BAIC0zMTE3LDIw ICszMTIzLDM2IEBAIHZvaWQgb3M6OkxpbnV4OjpzY2hlZF9nZXRjcHVfaW5pdCgpIHsKKyBleHRl cm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfd2FybihpbnQgbnVtYmVyLCBjaGFyICp3aGVyZSwg Li4uKSB7IH0KKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfZXJyb3IoY2hhciAqd2hl cmUpIHsgfQorIAorK3N0YXRpYyB2b2lkKiBkbHZzeW1faWZfYXZhaWxhYmxlKHZvaWQqIGhhbmRs ZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmVyc2lvbikgeworKyAgdHlwZWRlZiB2 b2lkKiAoKmRsdnN5bV9mdW5jX3R5cGUpKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSwg Y29uc3QgY2hhciogdmVyc2lvbik7CisrICBzdGF0aWMgZGx2c3ltX2Z1bmNfdHlwZSBkbHZzeW1f ZnVuYzsKKysgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CisrCisrICBpZiAoIWlu aXRpYWxpemVkKSB7CisrICAgIGRsdnN5bV9mdW5jID0gKGRsdnN5bV9mdW5jX3R5cGUpZGxzeW0o UlRMRF9ORVhULCAiZGx2c3ltIik7CisrICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKysgIH0KKysK KysgIGlmIChkbHZzeW1fZnVuYyAhPSBOVUxMKSB7CisrICAgIHZvaWQgKmYgPSBkbHZzeW1fZnVu YyhoYW5kbGUsIG5hbWUsIHZlcnNpb24pOworKyAgICBpZiAoZiAhPSBOVUxMKSB7CisrICAgICAg cmV0dXJuIGY7CisrICAgIH0KKysgIH0KKysKKysgIHJldHVybiBkbHN5bShoYW5kbGUsIG5hbWUp OworK30KKysKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNp b24gMS4xIChBUEkgdjEpLiBJZiBpdCBmYWlscworIC8vIGxvYWQgc3ltYm9sIGZyb20gYmFzZSB2 ZXJzaW9uIGluc3RlYWQuCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX2Rsc3ltKHZvaWQqIGhh bmRsZSwgY29uc3QgY2hhciAqbmFtZSkgeworLSAgdm9pZCAqZiA9IGRsdnN5bShoYW5kbGUsIG5h bWUsICJsaWJudW1hXzEuMSIpOworLSAgaWYgKGYgPT0gTlVMTCkgeworLSAgICBmID0gZGxzeW0o aGFuZGxlLCBuYW1lKTsKKy0gIH0KKy0gIHJldHVybiBmOworKyAgcmV0dXJuIGRsdnN5bV9pZl9h dmFpbGFibGUoaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKyB9CisgCisgLy8gSGFuZGxl IHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMiAoQVBJIHYyKSBvbmx5 LgorIC8vIFJldHVybiBOVUxMIGlmIHRoZSBzeW1ib2wgaXMgbm90IGRlZmluZWQgaW4gdGhpcyBw YXJ0aWN1bGFyIHZlcnNpb24uCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX3YyX2Rsc3ltKHZv aWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSkgeworLSAgcmV0dXJuIGRsdnN5bShoYW5kbGUs IG5hbWUsICJsaWJudW1hXzEuMiIpOworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFibGUoaGFu ZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKyB9CisgCisgYm9vbCBvczo6TGludXg6OmxpYm51 bWFfaW5pdCgpIHsKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhf eDg2LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYu Y3BwCitAQCAtNzUsOSArNzUsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxw b2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSNpZm5kZWYgQU1ENjQKKy0jIGluY2x1 ZGUgPGZwdV9jb250cm9sLmg+CistI2VuZGlmCisgCisgI2lmZGVmIEFNRDY0CisgI2RlZmluZSBS RUdfU1AgUkVHX1JTUAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxl Y3RlZEhlYXAuY3BwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVj dGVkSGVhcC5jcHAKK0BAIC0xMTE2LDcgKzExMTYsNyBAQCBIZWFwV29yZCogR2VuQ29sbGVjdGVk SGVhcDo6YWxsb2NhdGVfbmV3X3RsYWIoc2l6ZV90IG1pbl9zaXplLAorIHN0YXRpYyBTY3JhdGNo QmxvY2sgKnJlbW92ZVNtYWxsZXN0U2NyYXRjaChTY3JhdGNoQmxvY2sgKipwcmV2X3B0cikgewor ICAgYm9vbCBmaXJzdCA9IHRydWU7CisgICBzaXplX3QgbWluX3NpemUgPSAwOyAgIC8vICJmaXJz dCIgbWFrZXMgdGhpcyBjb25jZXB0dWFsbHkgaW5maW5pdGUuCistICBTY3JhdGNoQmxvY2sgKipz bWFsbGVzdF9wdHIsICpzbWFsbGVzdDsKKysgIFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0ciA9 IE5VTEwsICpzbWFsbGVzdDsKKyAgIFNjcmF0Y2hCbG9jayAgKmN1ciA9ICpwcmV2X3B0cjsKKyAg IHdoaWxlIChjdXIpIHsKKyAgICAgYXNzZXJ0KCpwcmV2X3B0ciA9PSBjdXIsICJqdXN0IGNoZWNr aW5nIik7CistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL2Fic3RyYWN0X3ZtX3ZlcnNp b24uY3BwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL2Fic3RyYWN0X3ZtX3ZlcnNp b24uY3BwCitAQCAtMjc0LDcgKzI3NCw3IEBAIGNvbnN0IGNoYXIqIEFic3RyYWN0X1ZNX1ZlcnNp b246OmludGVybmFsX3ZtX2luZm9fc3RyaW5nKCkgeworICAgI2VuZGlmCisgCisgICAjZGVmaW5l IElOVEVSTkFMX1ZFUlNJT05fU1VGRklYIFZNX1JFTEVBU0UgIikiIFwKKy0gICAgICAgICAiIGZv ciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgXAorKyAgICAgICAgICIgZm9yICIgT1MgIi0i IENQVSBGTE9BVF9BUkNIX1NUUiBMSUJDIFwKKyAgICAgICAgICAiIEpSRSAoIiBWRVJTSU9OX1NU UklORyAiKSwgYnVpbHQgb24gIiBfX0RBVEVfXyAiICIgX19USU1FX18gXAorICAgICAgICAgICIg YnkgIiBYU1RSKEhPVFNQT1RfQlVJTERfVVNFUikgIiB3aXRoICIgSE9UU1BPVF9CVUlMRF9DT01Q SUxFUgorIAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRp b25zX2djYy5ocHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZp bml0aW9uc19nY2MuaHBwCitAQCAtMjA0LDcgKzIwNCw3IEBAIGlubGluZSBpbnQgZ19pc25hbihk b3VibGUgZikgeyByZXR1cm4gaXNuYW5kKGYpOyB9CisgI2VsaWYgZGVmaW5lZChfX0FQUExFX18p CisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNl bGlmIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0UpCistaW5saW5lIGlu dCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25hbmYoZik7IH0KKytpbmxpbmUgaW50IGdf aXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgaW5saW5lIGludCBnX2lzbmFu KGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbHNlCisgI2Vycm9yICJtaXNzaW5n IHBsYXRmb3JtLXNwZWNpZmljIGRlZmluaXRpb24gaGVyZSIKKy0tLSBhL3NyYy9qYXZhLmJhc2Uv bGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9jbG9zZS5jCisrKysgYi9zcmMvamF2YS5iYXNlL2xp bnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2UuYworQEAgLTYwLDcgKzYwLDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgeworIC8qCisgICogU2lnbmFsIHRvIHVuYmxvY2sgdGhyZWFkCisgICovCistc3Rh dGljIGludCBzaWdXYWtldXAgPSAoX19TSUdSVE1BWCAtIDIpOworK3N0YXRpYyBpbnQgc2lnV2Fr ZXVwOworIAorIC8qCisgICogZmRUYWJsZSBob2xkcyBvbmUgZW50cnkgcGVyIGZpbGUgZGVzY3Jp cHRvciwgdXAgdG8gYSBjZXJ0YWluCitAQCAtMTQ5LDYgKzE0OSw3IEBAIHN0YXRpYyB2b2lkIF9f YXR0cmlidXRlKChjb25zdHJ1Y3RvcikpIGluaXQoKSB7CisgICAgIC8qCisgICAgICAqIFNldHVw IHRoZSBzaWduYWwgaGFuZGxlcgorICAgICAgKi8KKysgICAgc2lnV2FrZXVwID0gU0lHUlRNQVgg LSAyOworICAgICBzYS5zYV9oYW5kbGVyID0gc2lnX3dha2V1cDsKKyAgICAgc2Euc2FfZmxhZ3Mg ICA9IDA7CisgICAgIHNpZ2VtcHR5c2V0KCZzYS5zYV9tYXNrKTsKKy0tLSBhL3NyYy9qYXZhLmJh c2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYworKysrIGIvc3JjL2phdmEuYmFzZS91 bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCitAQCAtMjM1LDcgKzIzNSwxMyBAQCBKREtf ZXhlY3ZwZShpbnQgbW9kZSwgY29uc3QgY2hhciAqZmlsZSwKKyB7CisgICAgIGlmIChlbnZwID09 IE5VTEwgfHwgKGNoYXIgKiopIGVudnAgPT0gZW52aXJvbikgeworICAgICAgICAgZXhlY3ZwKGZp bGUsIChjaGFyICoqKSBhcmd2KTsKKy0gICAgICAgIHJldHVybjsKKysgICAgICAgIC8vIEVOT0VY RUMgaW5kaWNhdGVzIHRoYXQgdGhlIGZpbGUgaGVhZGVyIHdhcyBub3QgcmVjb2duaXplZC4gVGhl IG11c2wgQworKyAgICAgICAgLy8gbGlicmFyeSBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGZhbGxi YWNrIHRvIC9iaW4vc2ggZm9yIHRoYXQgY2FzZSwgc28gZmFsbAorKyAgICAgICAgLy8gdGhyb3Vn aCB0byB0aGUgY29kZSBiZWxvdyB3aGljaCBpbXBsZW1lbnRzIHRoYXQgZmFsbGJhY2sgdXNpbmcK KysgICAgICAgIC8vIGV4ZWN2ZV93aXRoX3NoZWxsX2ZhbGxiYWNrLgorKyAgICAgICAgaWYgKGVy cm5vICE9IEVOT0VYRUMpIHsKKysgICAgICAgICAgICByZXR1cm47CisrICAgICAgICB9CisgICAg IH0KKyAKKyAgICAgaWYgKCpmaWxlID09ICdcMCcpIHsKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5p eC9uYXRpdmUvbGliamF2YS9qZGtfdXRpbF9tZC5oCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgv bmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAorQEAgLTM3LDcgKzM3LDcgQEAKKyAjZGVmaW5l IElTTkFORChkKSBpc25hbihkKQorICNlbGlmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVk KF9BTExCU0RfU09VUkNFKQorICNpbmNsdWRlIDxtYXRoLmg+CistI2RlZmluZSBJU05BTkYoZikg aXNuYW5mKGYpCisrI2RlZmluZSBJU05BTkYoZikgaXNuYW4oZikKKyAjZGVmaW5lIElTTkFORChk KSBpc25hbihkKQorICNlbGlmIGRlZmluZWQoX0FJWCkKKyAjaW5jbHVkZSA8bWF0aC5oPgorLS0t IGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKKysr KyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCitA QCAtMjM2LDYgKzIzNiwzOSBAQCBSZXF1aXJlc1NldGVudihjb25zdCBjaGFyICpqdm1wYXRoKSB7 CisgICAgIGNoYXIgKmRtbGxwID0gTlVMTDsKKyAgICAgY2hhciAqcDsgLyogYSB1dGlsaXR5IHBv aW50ZXIgKi8KKyAKKysjaWZkZWYgX19saW51eAorKyNpZm5kZWYgTElCQworKyNlcnJvciAiTElC QyBub3Qgc2V0IgorKyNlbmRpZgorKworKyAgICBpZiAoc3RyY21wKExJQkMsICJtdXNsIikgPT0g MCkgeworKyAgICAgIC8qCisrICAgICAgICogVGhlIG11c2wgbGlicmFyeSBsb2FkZXIgcmVxdWly ZXMgTERfTElCUkFSWV9QQVRIIHRvIGJlIHNldCBpbgorKyAgICAgICAqIG9yZGVyIHRvIGNvcnJl Y3RseSByZXNvbHZlIHRoZSBkZXBlbmRlbmN5IGxpYmphdmEuc28gaGFzIG9uIGxpYmp2bS5zby4K KysgICAgICAgKgorKyAgICAgICAqIFNwZWNpZmljYWxseSwgaXQgZGlmZmVycyBmcm9tIGdsaWJj IGluIHRoZSBzZW5zZSB0aGF0IGV2ZW4gaWYKKysgICAgICAgKiBsaWJqdm0uc28gaGFzIGFscmVh ZHkgYmVlbiBsb2FkZWQgaXQgd2lsbCBub3QgYmUgY29uc2lkZXJlZCBhCisrICAgICAgICogY2Fu ZGlkYXRlIGZvciByZXNvbHZpbmcgdGhlIGRlcGVuZGVuY3kgdW5sZXNzIHRoZSAqZnVsbCogcGF0 aAorKyAgICAgICAqIG9mIHRoZSBhbHJlYWR5IGxvYWRlZCBsaWJyYXJ5IG1hdGNoZXMgdGhlIGRl cGVuZGVuY3kgYmVpbmcgbG9hZGVkLgorKyAgICAgICAqCisrICAgICAgICogbGlianZtLnNvIGlz IGJlaW5nIGxvYWRlZCBieSB0aGUgbGF1bmNoZXIgdXNpbmcgYSBsb25nIHBhdGggdG8KKysgICAg ICAgKiBkbG9wZW4sIG5vdCBqdXN0IHRoZSBiYXNlbmFtZSBvZiB0aGUgbGlicmFyeS4gVHlwaWNh bGx5IHRoaXMKKysgICAgICAgKiBpcyBzb21ldGhpbmcgbGlrZSAiLi4vbGliL3NlcnZlci9saWJq dm0uc28iLiBIb3dldmVyLCBpZi93aGVuCisrICAgICAgICogbGlianZtLnNvIGxhdGVyIHRyaWVz IHRvIGRsb3BlbiBsaWJqYXZhLnNvICh3aGljaCBpdCBkb2VzIGluCisrICAgICAgICogb3JkZXIg dG8gZ2V0IGFjY2VzcyB0byBhIGZldyBmdW5jdGlvbnMgaW1wbGVtZW50ZWQgaW4KKysgICAgICAg KiBsaWJqYXZhLnNvKSB0aGUgbXVzbCBsb2FkZXIgd2lsbCwgYXMgcGFydCBvZiBsb2FkaW5nCisr ICAgICAgICogZGVwZW5kZW50IGxpYnJhcmllcywgdHJ5IHRvIGxvYWQgbGlianZtLnNvIHVzaW5n IG9ubHkgaXRzCisrICAgICAgICogYmFzZW5hbWUgImxpYmp2bS5zbyIuIFNpbmNlIHRoaXMgZG9l cyBub3QgbWF0Y2ggdGhlIGxvbmdlcgorKyAgICAgICAqIHBhdGggcGF0aCBpdCB3YXMgZmlyc3Qg bG9hZGVkIHdpdGgsIHRoZSBhbHJlYWR5IGxvYWRlZAorKyAgICAgICAqIGxpYnJhcnkgaXMgbm90 IGNvbnNpZGVyZWQgYSBjYW5kaWRhdGUsIGFuZCB0aGUgbG9hZGVyIHdpbGwKKysgICAgICAgKiBp bnN0ZWFkIGxvb2sgZm9yIGxpYmp2bS5zbyBlbHNld2hlcmUuIElmIGl0J3Mgbm90IGluCisrICAg ICAgICogTERfTElCUkFSWV9QQVRIIHRoZSBkZXBlbmRlbmN5IGxvYWQgd2lsbCBmYWlsLCBhbmQg bGliamF2YS5zbworKyAgICAgICAqIHdpbGwgdGhlcmVmb3JlIGZhaWwgYXMgd2VsbC4KKysgICAg ICAgKi8KKysgICAgICByZXR1cm4gSk5JX1RSVUU7CisrICAgIH0KKysjZW5kaWYKKysKKyAjaWZk ZWYgQUlYCisgICAgIC8qIFdlIGFsd2F5cyBoYXZlIHRvIHNldCB0aGUgTElCUEFUSCBvbiBBSVgg YmVjYXVzZSBsZCBkb2Vzbid0IHN1cHBvcnQgJE9SSUdJTi4gKi8KKyAgICAgcmV0dXJuIEpOSV9U UlVFOworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhy ZWFkLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRo cmVhZC5jCitAQCAtMzYsNyArMzYsNyBAQAorICNpZmRlZiBfX2xpbnV4X18KKyAgICNpbmNsdWRl IDxwdGhyZWFkLmg+CisgICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2xpbnV4X2Nsb3NlLmMgKi8K Ky0gICNkZWZpbmUgSU5URVJSVVBUX1NJR05BTCAoX19TSUdSVE1BWCAtIDIpCisrICAjZGVmaW5l IElOVEVSUlVQVF9TSUdOQUwgKFNJR1JUTUFYIC0gMikKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisg ICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9haXhfY2xv c2UuYyAqLworLS0tIGEvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94 YXd0L1hUb29sa2l0LmMKKysrKyBiL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0 X3hhd3QveGF3dC9YVG9vbGtpdC5jCitAQCAtMjcsOSArMjcsNiBAQAorICNpbmNsdWRlIDxYMTEv WHV0aWwuaD4KKyAjaW5jbHVkZSA8WDExL1hvcy5oPgorICNpbmNsdWRlIDxYMTEvWGF0b20uaD4K Ky0jaWZkZWYgX19saW51eF9fCistI2luY2x1ZGUgPGV4ZWNpbmZvLmg+CistI2VuZGlmCisgCisg I2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxqbmkuaD4KK0BAIC03ODAsMjYgKzc3Nyw2IEBA IEpOSUVYUE9SVCBqc3RyaW5nIEpOSUNBTEwgSmF2YV9zdW5fYXd0X1gxMV9YVG9vbGtpdF9nZXRF bnYKKyAgICAgcmV0dXJuIHJldDsKKyB9CisgCistI2lmZGVmIF9fbGludXhfXworLXZvaWQgcHJp bnRfc3RhY2sodm9pZCkKKy17CistICB2b2lkICphcnJheVsxMF07CistICBzaXplX3Qgc2l6ZTsK Ky0gIGNoYXIgKipzdHJpbmdzOworLSAgc2l6ZV90IGk7CistCistICBzaXplID0gYmFja3RyYWNl IChhcnJheSwgMTApOworLSAgc3RyaW5ncyA9IGJhY2t0cmFjZV9zeW1ib2xzIChhcnJheSwgc2l6 ZSk7CistCistICBmcHJpbnRmIChzdGRlcnIsICJPYnRhaW5lZCAlemQgc3RhY2sgZnJhbWVzLlxu Iiwgc2l6ZSk7CistCistICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQorLSAgICAgZnByaW50 ZiAoc3RkZXJyLCAiJXNcbiIsIHN0cmluZ3NbaV0pOworLQorLSAgZnJlZSAoc3RyaW5ncyk7Cist fQorLSNlbmRpZgorLQorIFdpbmRvdyBnZXRfeGF3dF9yb290X3NoZWxsKEpOSUVudiAqZW52KSB7 CisgICBzdGF0aWMgamNsYXNzIGNsYXNzWFJvb3RXaW5kb3cgPSBOVUxMOworICAgc3RhdGljIGpt ZXRob2RJRCBtZXRob2RHZXRYUm9vdFdpbmRvdyA9IE5VTEw7CistLS0gYS9zcmMvamRrLmpkd3Au YWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCisrKysgYi9zcmMvamRrLmpkd3AuYWdl bnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCitAQCAtMzUsMTUgKzM1LDE1IEBACisgI2lm ZGVmIERFQlVHCisgICAgIC8qIEp1c3QgdG8gbWFrZSBzdXJlIHRoZXNlIGludGVyZmFjZXMgYXJl IG5vdCB1c2VkIGhlcmUuICovCisgICAgICN1bmRlZiBmcmVlCistICAgICNkZWZpbmUgZnJlZShw KSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGZyZWUgZG9fbm90X3Vz ZV90aGlzX2ludGVyZmFjZV9mcmVlCisgICAgICN1bmRlZiBtYWxsb2MKKy0gICAgI2RlZmluZSBt YWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBtYWxsb2Mg ZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9tYWxsb2MKKyAgICAgI3VuZGVmIGNhbGxvYworLSAg ICAjZGVmaW5lIGNhbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVm aW5lIGNhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX2NhbGxvYworICAgICAjdW5kZWYg cmVhbGxvYworLSAgICAjZGVmaW5lIHJlYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFj ZS4KKysgICAgI2RlZmluZSByZWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfcmVhbGxv YworICAgICAjdW5kZWYgc3RyZHVwCistICAgICNkZWZpbmUgc3RyZHVwKHApIERvIG5vdCB1c2Ug dGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgc3RyZHVwIGRvX25vdF91c2VfdGhpc19pbnRl cmZhY2Vfc3RyZHVwCisgI2VuZGlmCisgCisgI2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgorLS0t IGEvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5j CisrKysgYi90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52 b2tlLmMKK0BAIC0zMyw2ICszMyw3IEBACisgCisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNs dWRlIDxqbmkuaD4KKysjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUgPGFsbG9jYS5oPgorICNp bmNsdWRlIDxzaWduYWwuaD4KKyAjaW5jbHVkZSA8c3RyaW5nLmg+CitAQCAtOTEsNiArOTIsMjAg QEAgdm9pZCBzZXRfc2lnbmFsX2hhbmRsZXIoKSB7CisgICB9CisgfQorIAorK2ludCBnZXRfamF2 YV9zdGFja3NpemUgKCkgeworKyAgc2l6ZV90IHN0YWNrc2l6ZTsKKysgIHB0aHJlYWRfYXR0cl90 IGF0dHI7CisrICBKREsxXzFJbml0QXJncyBqZGtfYXJnczsKKysKKysgIGpka19hcmdzLnZlcnNp b24gPSBKTklfVkVSU0lPTl8xXzE7CisrICBKTklfR2V0RGVmYXVsdEphdmFWTUluaXRBcmdzKCZq ZGtfYXJncyk7CisrICBpZiAoamRrX2FyZ3MuamF2YVN0YWNrU2l6ZSA8PSAwKSB7CisrICAgIGZw cmludGYoc3RkZXJyLCAiVGVzdCBFUlJPUi4gQ2FuJ3QgZ2V0IGEgdmFsaWQgdmFsdWUgZm9yIHRo ZSBkZWZhdWx0IHN0YWNrc2l6ZS5cbiIpOworKyAgICBleGl0KDcpOworKyAgfQorKyAgcmV0dXJu IGpka19hcmdzLmphdmFTdGFja1NpemU7CisrfQorKworIHZvaWQgKnJ1bl9qYXZhX292ZXJmbG93 ICh2b2lkICpwKSB7CisgICBKTklFbnYgKmVudjsKKyAgIGpjbGFzcyBjbGFzc19pZDsKK0BAIC0y NTgsMTMgKzI3MywxOSBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSB7 CisgICAgIGV4aXQoNyk7CisgICB9CisgCisrICBpbnQgc3RhY2tfc2l6ZSA9IGdldF9qYXZhX3N0 YWNrc2l6ZSgpOworICAgcHRocmVhZF90IHRocjsKKysgIHB0aHJlYWRfYXR0cl90IHRocmVhZF9h dHRyOworKworKyAgcHRocmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRyKTsKKysgIHB0aHJlYWRf YXR0cl9zZXRzdGFja3NpemUoJnRocmVhZF9hdHRyLCBzdGFja19zaXplKTsKKyAKKyAgIGlmIChh cmdjID4gMSAmJiBzdHJjbXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVyZmxvdyIpID09IDApIHsK KyAgICAgcHJpbnRmKCJcblRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7CisgCisgICAgIHByaW50 ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4i KTsKKy0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9qYXZhX292ZXJmbG93LCBO VUxMKTsKKysKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX2ph dmFfb3ZlcmZsb3csIE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisgCisg ICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlh bCB0aHJlYWRcbiIpOworQEAgLTI3Nyw3ICsyOTgsNyBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNv bnN0IGNoYXIqKiBhcmd2KSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIE5BVElWRV9PVkVSRkxP V1xuIik7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91 ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEws IHJ1bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwpOworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwg JnRocmVhZF9hdHRyLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9q b2luICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFn ZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv b3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoIGIvc3JjcGtn cy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kMzA2ZDUwMWU0YjgKLS0tIC9kZXYv bnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L3BwYy5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20g QWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/ aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMv aG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNw b3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCitAQCAtNDcsNiArNDcsOCBAQAorICNp bmNsdWRlICJvcHRvL2ludHJpbnNpY25vZGUuaHBwIgorICNlbmRpZgorIAorKyNpbmNsdWRlIDxh c20vcHRyYWNlLmg+CisrCisgI2lmZGVmIFBST0RVQ1QKKyAjZGVmaW5lIEJMT0NLX0NPTU1FTlQo c3RyKSAvLyBub3RoaW5nCisgI2Vsc2UKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92 ZXJzaW9uX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3Bw Yy5jcHAKK0BAIC04NDUsNyArODQ1LDcgQEAgdm9pZCBWTV9WZXJzaW9uOjpkZXRlcm1pbmVfZmVh dHVyZXMoKSB7CisgICB1bnNpZ25lZCBsb25nIGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsK KyAKKyAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTV9OT1NDKSB7CistICAgIGlmIChhdXh2 ICYgUFBDX0ZFQVRVUkUyX0hBU19IVE0pIHsKKysgICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJf SFRNKSB7CisgICAgICAgLy8gVE0gb24gUE9XRVI4IGFuZCBQT1dFUjkgaW4gY29tcGF0IG1vZGUg KFZNKSBpcyBzdXBwb3J0ZWQgYnkgdGhlIEpWTS4KKyAgICAgICAvLyBUTSBvbiBQT1dFUjkgREQy LjEgTlYgKGJhcmVtZXRhbCkgaXMgbm90IHN1cHBvcnRlZCBieSB0aGUgSlZNIChUTSBvbgorICAg ICAgIC8vIFBPV0VSOSBERDIuMSBOViBoYXMgYSBmZXcgaXNzdWVzIHRoYXQgbmVlZCBhIGNvdXBs ZSBvZiBmaXJtd2FyZQorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xp bnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51 eF9wcGMuY3BwCitAQCAtNzUsNyArNzUsNyBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNs dWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLQorKyMgaW5jbHVkZSA8YXNt L3B0cmFjZS5oPgorIAorIGFkZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAg IGludHB0cl90KiBjc3A7CistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhy ZWFkX2xpbnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90 aHJlYWRfbGludXhfcHBjLmNwcAorQEAgLTIzLDYgKzIzLDggQEAKKyAgKgorICAqLworIAorKyNp bmNsdWRlIDxhc20vcHRyYWNlLmg+CisrCisgI2luY2x1ZGUgInByZWNvbXBpbGVkLmhwcCIKKyAj aW5jbHVkZSAicnVudGltZS9mcmFtZS5pbmxpbmUuaHBwIgorICNpbmNsdWRlICJydW50aW1lL3Ro cmVhZC5ocHAiCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMv bXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxl cy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uOWM2NGMxODkwMzZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRr MTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKQEAgLTAsMCArMSwxMzAg QEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0 LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5 MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYv b3NfbGludXhfeDg2LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29z X2xpbnV4X3g4Ni5jcHAKK0BAIC05MCw2ICs5MCwxMjYgQEAKKyAjZGVmaW5lIFNQRUxMX1JFR19G UCAiZWJwIgorICNlbmRpZiAvLyBBTUQ2NAorCisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Cisr Ly8gVGFrZW4gZnJvbSBnbGliYyAyLjI4CisrLy8gc291cmNlOiBodHRwczovL3NvdXJjZXdhcmUu b3JnL2dpdC8/cD1nbGliYy5naXQ7YT1ibG9iO2Y9c3lzZGVwcy94ODYvZnB1X2NvbnRyb2wuaDto PTRjYjk4YzU2NzliMjg5N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4OWUyNGQ7aGI9M2MwM2JhY2EzN2Zk Y2I1MmMzODgxZTY1M2NhMzkyYmJhN2E5OWMyYgorKy8vID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQor KyNpZm5kZWYgQU1ENjQKKysvKiBGUFUgY29udHJvbCB3b3JkIGJpdHMuICB4ODYgdmVyc2lvbi4K KysgICBDb3B5cmlnaHQgKEMpIDE5OTMtMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu Yy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysgICBDb250 cmlidXRlZCBieSBPbGFmIEZsZWJiZS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVl IHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQg dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGlj ZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy CisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55 IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUg R05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K KysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy IEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5 OyBpZiBub3QsIHNlZQorKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisr CisrI2lmbmRlZiBfRlBVX0NPTlRST0xfSAorKyNkZWZpbmUgX0ZQVV9DT05UUk9MX0gJMQorKwor Ky8qIE5vdGUgdGhhdCB0aGlzIGZpbGUgc2V0cyBvbiB4ODYtNjQgb25seSB0aGUgeDg3IEZQVSwg aXQgZG9lcyBub3QKKysgICB0b3VjaCB0aGUgU1NFIHVuaXQuICAqLworKworKy8qIEhlcmUgaXMg dGhlIGRpcnR5IHBhcnQuIFNldCB1cCB5b3VyIDM4NyB0aHJvdWdoIHRoZSBjb250cm9sIHdvcmQK KysgKiAoY3cpIHJlZ2lzdGVyLgorKyAqCisrICogICAgIDE1LTEzICAgIDEyICAxMS0xMCAgOS04 ICAgICA3LTYgICAgIDUgICAgNCAgICAzICAgIDIgICAgMSAgICAwCisrICogfCByZXNlcnZlZCB8 IElDIHwgUkMgIHwgUEMgfCByZXNlcnZlZCB8IFBNIHwgVU0gfCBPTSB8IFpNIHwgRE0gfCBJTQor KyAqCisrICogSU06IEludmFsaWQgb3BlcmF0aW9uIG1hc2sKKysgKiBETTogRGVub3JtYWxpemVk IG9wZXJhbmQgbWFzaworKyAqIFpNOiBaZXJvLWRpdmlkZSBtYXNrCisrICogT006IE92ZXJmbG93 IG1hc2sKKysgKiBVTTogVW5kZXJmbG93IG1hc2sKKysgKiBQTTogUHJlY2lzaW9uIChpbmV4YWN0 IHJlc3VsdCkgbWFzaworKyAqCisrICogTWFzayBiaXQgaXMgMSBtZWFucyBubyBpbnRlcnJ1cHQu CisrICoKKysgKiBQQzogUHJlY2lzaW9uIGNvbnRyb2wKKysgKiAxMSAtIHJvdW5kIHRvIGV4dGVu ZGVkIHByZWNpc2lvbgorKyAqIDEwIC0gcm91bmQgdG8gZG91YmxlIHByZWNpc2lvbgorKyAqIDAw IC0gcm91bmQgdG8gc2luZ2xlIHByZWNpc2lvbgorKyAqCisrICogUkM6IFJvdW5kaW5nIGNvbnRy b2wKKysgKiAwMCAtIHJvdW5kaW5nIHRvIG5lYXJlc3QKKysgKiAwMSAtIHJvdW5kaW5nIGRvd24g KHRvd2FyZCAtIGluZmluaXR5KQorKyAqIDEwIC0gcm91bmRpbmcgdXAgKHRvd2FyZCArIGluZmlu aXR5KQorKyAqIDExIC0gcm91bmRpbmcgdG93YXJkIHplcm8KKysgKgorKyAqIElDOiBJbmZpbml0 eSBjb250cm9sCisrICogVGhhdCBpcyBmb3IgODA4NyBhbmQgODAyODcgb25seS4KKysgKgorKyAq IFRoZSBoYXJkd2FyZSBkZWZhdWx0IGlzIDB4MDM3ZiB3aGljaCB3ZSB1c2UuCisrICovCisrCisr I2luY2x1ZGUgPGZlYXR1cmVzLmg+CisrCisrLyogbWFza2luZyBvZiBpbnRlcnJ1cHRzICovCisr I2RlZmluZSBfRlBVX01BU0tfSU0gIDB4MDEKKysjZGVmaW5lIF9GUFVfTUFTS19ETSAgMHgwMgor KyNkZWZpbmUgX0ZQVV9NQVNLX1pNICAweDA0CisrI2RlZmluZSBfRlBVX01BU0tfT00gIDB4MDgK KysjZGVmaW5lIF9GUFVfTUFTS19VTSAgMHgxMAorKyNkZWZpbmUgX0ZQVV9NQVNLX1BNICAweDIw CisrCisrLyogcHJlY2lzaW9uIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfRVhURU5ERUQgMHgz MDAJLyogbGlibSByZXF1aXJlcyBkb3VibGUgZXh0ZW5kZWQgcHJlY2lzaW9uLiAgKi8KKysjZGVm aW5lIF9GUFVfRE9VQkxFICAgMHgyMDAKKysjZGVmaW5lIF9GUFVfU0lOR0xFICAgMHgwCisrCisr Lyogcm91bmRpbmcgY29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ORUFSRVNUIDB4MCAgICAv KiBSRUNPTU1FTkRFRCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ET1dOICAgIDB4NDAwCisrI2RlZmlu ZSBfRlBVX1JDX1VQICAgICAgMHg4MDAKKysjZGVmaW5lIF9GUFVfUkNfWkVSTyAgICAweEMwMAor KworKyNkZWZpbmUgX0ZQVV9SRVNFUlZFRCAweEYwQzAgIC8qIFJlc2VydmVkIGJpdHMgaW4gY3cg Ki8KKysKKysKKysvKiBUaGUgZmRsaWJtIGNvZGUgcmVxdWlyZXMgc3RyaWN0IElFRUUgZG91Ymxl IHByZWNpc2lvbiBhcml0aG1ldGljLAorKyAgIGFuZCBubyBpbnRlcnJ1cHRzIGZvciBleGNlcHRp b25zLCByb3VuZGluZyB0byBuZWFyZXN0LiAgKi8KKysKKysjZGVmaW5lIF9GUFVfREVGQVVMVCAg MHgwMzdmCisrCisrLyogSUVFRTogIHNhbWUgYXMgYWJvdmUuICAqLworKyNkZWZpbmUgX0ZQVV9J RUVFICAgICAweDAzN2YKKysKKysvKiBUeXBlIG9mIHRoZSBjb250cm9sIHdvcmQuICAqLworK3R5 cGVkZWYgdW5zaWduZWQgaW50IGZwdV9jb250cm9sX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9f IChfX0hJX18pKSk7CisrCisrLyogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGhhcmR3YXJlIGNv bnRyb2wgd29yZC4gICIqJiIgaXMgdXNlZCB0bworKyAgIHdvcmsgYXJvdW5kIGEgYnVnIGluIG9s ZGVyIHZlcnNpb25zIG9mIEdDQy4gIF9fdm9sYXRpbGVfXyBpcyB1c2VkCisrICAgdG8gc3VwcG9y dCBjb21iaW5hdGlvbiBvZiB3cml0aW5nIHRoZSBjb250cm9sIHJlZ2lzdGVyIGFuZCByZWFkaW5n CisrICAgaXQgYmFjay4gIFdpdGhvdXQgX192b2xhdGlsZV9fLCB0aGUgb2xkIHZhbHVlIG1heSBi ZSB1c2VkIGZvciByZWFkaW5nCisrICAgYmFjayB1bmRlciBjb21waWxlciBvcHRpbWl6YXRpb24u CisrCisrICAgTm90ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlc2UgbWFjcm9zIGlzIG5vdCBzdWZmaWNp ZW50IGFueW1vcmUgd2l0aAorKyAgIHJlY2VudCBoYXJkd2FyZSBub3Igb24geDg2LTY0LiAgU29t ZSBmbG9hdGluZyBwb2ludCBvcGVyYXRpb25zIGFyZQorKyAgIGV4ZWN1dGVkIGluIHRoZSBTU0Uv U1NFMiBlbmdpbmVzIHdoaWNoIGhhdmUgdGhlaXIgb3duIGNvbnRyb2wgYW5kCisrICAgc3RhdHVz IHJlZ2lzdGVyLiAgKi8KKysjZGVmaW5lIF9GUFVfR0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGls ZV9fICgiZm5zdGN3ICUwIiA6ICI9bSIgKComY3cpKQorKyNkZWZpbmUgX0ZQVV9TRVRDVyhjdykg X19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJtIiAoKiZjdykpCisrCisrLyog RGVmYXVsdCBjb250cm9sIHdvcmQgc2V0IGF0IHN0YXJ0dXAuICAqLworK2V4dGVybiBmcHVfY29u dHJvbF90IF9fZnB1X2NvbnRyb2w7CisrCisrI2VuZGlmCS8qIGZwdV9jb250cm9sLmggKi8KKysK KysjZW5kaWYgLy8gQU1ENjQKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKyBhZGRyZXNzIG9z OjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgI2lmZGVmIFNQQVJDX1dPUktTCisgICByZWdp c3RlciB2b2lkICplc3A7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAv dGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvdGVtcGxhdGUKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42YmRlZjZmOTYxMGIKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvdGVtcGxhdGUKQEAgLTAsMCArMSwx MTEgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGsxNi1ib290c3RyYXAnCitfamF2YV92 ZXI9MTYKK19qYXZhX21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj0yCitfamRrX3VwZGF0ZT03Citf amRrX2hvbWU9InVzci9saWIvanZtL29wZW5qZGske19qYXZhX3Zlcn0iCitfYmFzZV92ZXJzaW9u PSIke19qYXZhX3Zlcn0uJHtfamF2YV9taW5fdmVyfS4ke19qYXZhX3NlY192ZXJ9IgorCitwa2du YW1lPW9wZW5qZGsxNi1ib290c3RyYXAKK3ZlcnNpb249IiR7X2Jhc2VfdmVyc2lvbn0rJHtfamRr X3VwZGF0ZX0iCityZXZpc2lvbj0xCit3cmtzcmM9ImpkayR7X2phdmFfdmVyfXUtamRrLSR7X2Jh c2VfdmVyc2lvbn0tJHtfamRrX3VwZGF0ZX0iCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitj b25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycworIC0tZW5hYmxlLXVu bGltaXRlZC1jcnlwdG8KKyAtLXdpdGgtemxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1zeXN0 ZW0KKyAtLXdpdGgtZ2lmbGliPXN5c3RlbQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13aXRo LWxjbXM9c3lzdGVtCisgLS13aXRoLWp0cmVnPW5vCisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JF9q YXZhX3ZlcgorIC0td2l0aC1qb2JzPSRYQlBTX09SSUdfTUFLRUpPQlMKKyAtLXdpdGgtdmVuZG9y LW5hbWU9Vm9pZAorIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAt LXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIu Y29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtYm9vdC1qZGs9L3Vz ci9saWIvanZtL29wZW5qZGsxNSIKK21ha2VfYnVpbGRfYXJncz0iaW1hZ2VzIgorbWFrZV9pbnN0 YWxsX2FyZ3M9IklOU1RBTExfUFJFRklYPVwiJHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2 ZXJzaW9ufS91c3IvbGliXCIiCittYWtlX2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0 IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFy IHVuemlwIHppcCBjYS1jZXJ0aWZpY2F0ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1h a2UtY2Egb3BlbmpkazE1LWJvb3RzdHJhcCIKK21ha2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRldmVs IGxpYlh0c3QtZGV2ZWwgbGliWHQtZGV2ZWwgbGliWHJhbmRyLWRldmVsCisgZ2lmbGliLWRldmVs IGxpYmpwZWctdHVyYm8tZGV2ZWwgY3Vwcy1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1k ZXZlbAorIGZvbnRjb25maWctZGV2ZWwgemxpYi1kZXZlbCBsY21zMi1kZXZlbCBoYXJmYnV6ei1k ZXZlbCBvcGVuamRrMTUtYm9vdHN0cmFwIgorcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2 ZXJzaW9ufV8xIGphdmEtcnVudGltZS0ke3ZlcnNpb259XzEiCitzaG9ydF9kZXNjPSJPcGVuSkRL IEphdmEgRGV2ZWxvcG1lbnQgS2l0IChib290c3RyYXAgdmVyc2lvbiAxNikiCittYWludGFpbmVy PSJjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5IFdJVEgg Q2xhc3NwYXRoLWV4Y2VwdGlvbi0yLjAiCitob21lcGFnZT0iaHR0cDovL29wZW5qZGsuamF2YS5u ZXQvIgorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vb3Blbmpkay9qZGske19qYXZhX3Zl cn11L2FyY2hpdmUvamRrLSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09YjRhMGU3MWU0MWEx MTE3NWU4YTdjMWRiYTg2ZWQ1YjBhYTg3ODQxMzE1OGM4ZDQ4ODEzZGIxYjY0YWM5NTM2Yworbm9j cm9zcz15ZXMKKworIyBCdWlsZCBpcyBzdGlsbCBwYXJhbGxlbCwgYnV0IGRvbid0IHVzZSAtak4u CitkaXNhYmxlX3BhcmFsbGVsX2J1aWxkPXllcworCisjIG5vIGhvdHNwb3QgSklUIGZvciBwcGMz MgorY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJcHBjNjQqKSA7OworCXBwYyopIF91 c2VfemVybz15ZXMgOzsKK2VzYWMKKworaWYgWyAtbiAiJF91c2VfemVybyIgXTsgdGhlbgorCW1h a2VkZXBlbmRzKz0iIGxpYmZmaS1kZXZlbCIKKwljb25maWd1cmVfYXJncys9IiAtLXdpdGgtanZt LXZhcmlhbnRzPXplcm8iCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYyop IGNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290LWpkay1qdm1hcmdzPS1YWDpUaHJlYWRTdGFj a1NpemU9MjU2MCI7OworCWVzYWMKK2ZpCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwljaG1vZCAreCBj b25maWd1cmUKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCQly bSAtciBzcmMvamRrLmhvdHNwb3QuYWdlbnQKKwlmaQorfQorCitwb3N0X3BhdGNoKCkgeworCWlm IFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWZvciBmIGluICIke0ZJ TEVTRElSfSIvbXVzbF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQltc2dfbm9ybWFsICJBcHBseWlu ZyAke2YjJEZJTEVTRElSL31cbiIKKwkJCXBhdGNoIC1OcDEgLWkgIiRmIgorCQlkb25lCisJZmkK K30KKworZG9fY29uZmlndXJlKCkgeworCUNGTEFHUz0ke0NGTEFHUy8tRF9GT1JUSUZZX1NPVVJD RT0yL30KKwlDWFhGTEFHUz0ke0NYWEZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCisJIyBm b3JjZSBFTEZ2MiBmb3IgcHBjNjQganVzdCBpbiBjYXNlCisJY2FzZSAiJFhCUFNfVEFSR0VUX01B Q0hJTkUiIGluCisJCXBwYzY0KikKKwkJCUNGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCUNYWEZM QUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJOzsKKwllc2FjCisKKwljb25maWd1cmVfYXJncz0ke2Nv bmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9XC91c3JcL1thLXowLTldKi1saW51 eC1bYS16XSovfQorCWlmIFsgIiRYQlBTX0NDQUNIRSIgXTsgdGhlbgorCQljb25maWd1cmVfYXJn cys9IiAtLWVuYWJsZS1jY2FjaGUiCisJZmkKKwlDQz0iL3Vzci9iaW4vY2MiCisJQ1hYPSIvdXNy L2Jpbi9jKysiCisJLi9jb25maWd1cmUgJHtjb25maWd1cmVfYXJnc30gXAorCQktLXdpdGgtZXh0 cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1jeHhmbGFncz0iJENYWEZMQUdT IiBcCisJCS0td2l0aC1leHRyYS1sZGZsYWdzPSIkTERGTEFHUyIgXAorCQlSRUFERUxGPSRSRUFE RUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAgTk09JE5NIFwKKwkJT0JKRFVNUD0kT0JKRFVNUCBPQkpD T1BZPSRPQkpDT1BZCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwltdiAke0RFU1RESVJ9L3Vzci9s aWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJzaW9ufS1pbnRlcm5hbCAke0RFU1RESVJ9LyRfamRr X2hvbWUKKwlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2JpbgorCXJtIC1mICRERVNURElSLyRf amRrX2hvbWUvbGliL3NyYy56aXAKKwl2bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJT04KKwl2bGlj ZW5zZSBMSUNFTlNFCit9CgpGcm9tIGU5ZWFjYzhjNzExODM4MzljOTJjMjgwNjE4Yjc3ZTdhOWU2 NDZmNWUgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNsYXNzYWJieWFtcCA8ZGV2QGti Ni5lZT4KRGF0ZTogVHVlLCAxMSBKYW4gMjAyMiAwMzoxNzoxOSAtMDUwMApTdWJqZWN0OiBbUEFU Q0ggMDcvMTFdIE5ldyBwYWNrYWdlOiBvcGVuamRrMTctMTcuMC4xKzEyCgpDby1hdXRob3JlZC1i eTogVGFpIENoaSBNaW5oIFJhbHBoIEVhc3R3b29kIDx0Y21yZWFzdHdvb2RAZ21haWwuY29tPgot LS0KIGNvbW1vbi9zaGxpYnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNiAr CiBzcmNwa2dzL29wZW5qZGsxNy1kb2MgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjcGtncy9vcGVuamRrMTctc3JjICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIC4u Li9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCAgICAgICAgICB8ICAxMCArCiAuLi4v b3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggICAgfCAgMjEgKwogLi4uL29w ZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggIHwgMzcyICsrKysrKysrKysr KysrKysrKwogLi4uL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoICAgIHwg IDQ1ICsrKwogLi4uL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgIHwg MTMwICsrKysrKwogc3JjcGtncy9vcGVuamRrMTcvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAg IHwgMjAxICsrKysrKysrKysKIDkgZmlsZXMgY2hhbmdlZCwgNzg3IGluc2VydGlvbnMoKykKIGNy ZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL29wZW5qZGsxNy1kb2MKIGNyZWF0ZSBtb2RlIDEyMDAw MCBzcmNwa2dzL29wZW5qZGsxNy1zcmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5q ZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0 Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNo ZXMvcHBjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTcvZmlsZXMv bXVzbF9wYXRjaGVzL3g4Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Blbmpk azE3L3RlbXBsYXRlCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3NobGlicyBiL2NvbW1vbi9zaGxpYnMK aW5kZXggZWJiZDQ4YTNkODRjLi5hNzMwMDAzODNjOGYgMTAwNjQ0Ci0tLSBhL2NvbW1vbi9zaGxp YnMKKysrIGIvY29tbW9uL3NobGlicwpAQCAtNDA5NywzICs0MDk3LDkgQEAgbGlia21haWxjb25m aXJtYmVmb3JlZGVsZXRpbmcuc28uNSBrZGVwaW0tYWRkb25zLTIxLjA4LjNfMQogbGlia2FkZHJl c3Nib29rcHJpdmF0ZS5zby41IGthZGRyZXNzYm9vay0yMS4wOC4zXzEKIGxpYmNvZGVjMi5zby4x LjAgY29kZWMyLTEuMC4xXzEKIGxpYng4NmVtdS5zby4zIGxpYng4NmVtdS0zLjRfMQorbGliamF3 dC5zbyBvcGVuamRrMTctMTcuMC4xKzEyXzEKK2xpYmF3dC5zbyBvcGVuamRrMTctMTcuMC4xKzEy XzEKK2xpYmF3dF94YXd0LnNvIG9wZW5qZGsxNy0xNy4wLjErMTJfMQorbGliamF2YS5zbyBvcGVu amRrMTctMTcuMC4xKzEyXzEKK2xpYmpsaS5zbyBvcGVuamRrMTctMTcuMC4xKzEyXzEKK2xpYmp2 bS5zbyBvcGVuamRrMTctMTcuMC4xKzEyXzEKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE3 LWRvYyBiL3NyY3BrZ3Mvb3BlbmpkazE3LWRvYwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAw MDAwMDAwMDAwMDAuLjk5YWIxY2IxYjBkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3Bl bmpkazE3LWRvYwpAQCAtMCwwICsxIEBACitvcGVuamRrMTcKXCBObyBuZXdsaW5lIGF0IGVuZCBv ZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNy1zcmMgYi9zcmNwa2dzL29wZW5q ZGsxNy1zcmMKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi45OWFiMWNi MWIwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNy1zcmMKQEAgLTAsMCAr MSBAQAorb3BlbmpkazE3ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv c3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggYi9zcmNw a2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApuZXcgZmlsZSBt b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNmM1ZDRkMmJlMgotLS0gL2Rldi9udWxs CisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNo CkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0 L29zX2xpbnV4X2FhcmNoNjQuY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFy Y2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorQEAgLTc0LDcgKzc0LDYgQEAKKyAjIGluY2x1ZGUg PHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0j IGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CisgCisgI2RlZmluZSBSRUdfRlAgMjkKKyAjZGVmaW5l IFJFR19MUiAzMApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRj aGVzL2FybS5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0u cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMDI0MjhmMTBm MzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNo ZXMvYXJtLnBhdGNoCkBAIC0wLDAgKzEsMjEgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4 X2FybS9vc19saW51eF9hcm0uY3BwCitAQCAtNzMsNiArNzMsMTggQEAKKyAjIGluY2x1ZGUgPHVj b250ZXh0Lmg+CisgIyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCisrLy8gU3R1cGlkIGhhY2sg YXMgdGhlIG9yaWdpbiBpZiBiZWxvdyBkb2VzbnQgY29tcGlsZSB3aXRoIGdjYyA4LjIuMDoKKysv LworKy8vIG9zX2xpbnV4X2FybS5jcHA6MTE0OjU6IGVycm9yOiBtaXNzaW5nIGJpbmFyeSBvcGVy YXRvciBiZWZvcmUgdG9rZW4gIigiCisrLy8gICNpZiBOR1JFRyA9PSAxNgorKy8vICAgICAgIF5+ fn5+CisrLy8KKysvLyBUaGUgTkdSRUcgaXMgMTggKGJpdHMvc2lnbmFsLmg6MTApLCBzbyBmb3Jj ZSBpdCB0byB0aGF0IHZhbHVlLgorKyNpZmRlZiBOR1JFRworKyMgIHVuZGVmIE5HUkVHCisrI2Vu ZGlmCisrI2RlZmluZSBOR1JFRyAxOAorKworICNkZWZpbmUgU1BFTExfUkVHX1NQICAic3AiCisg CisgLy8gRG9uJ3QgI2RlZmluZSBTUEVMTF9SRUdfRlAgZm9yIHRodW1iIGJlY2F1c2UgaXQgaXMg bm90IHNhZmUgdG8gdXNlLCBzbyB0aGlzIG1ha2VzIHN1cmUgd2UgbmV2ZXIgZmV0Y2ggaXQuCmRp ZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0 Y2ggYi9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42MGRmZGVjMzBhYmMKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQu cGF0Y2gKQEAgLTAsMCArMSwzNzIgQEAKKy0tLSBhL21ha2UvUmVsZWFzZUZpbGUuZ21rCisrKysg Yi9tYWtlL1JlbGVhc2VGaWxlLmdtaworQEAgLTUzLDYgKzUzLDcgQEAgZGVmaW5lIGNyZWF0ZS1p bmZvLWZpbGUKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkpBVkFfVkVSU0lPTl9EQVRFIiwg IiQoVkVSU0lPTl9EQVRFKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19OQU1FIiwg IiQoUkVMRUFTRV9GSUxFX09TX05BTUUpIikKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIk9T X0FSQ0giLCAiJChSRUxFQVNFX0ZJTEVfT1NfQVJDSCkiKQorKyAgJChjYWxsIGluZm8tZmlsZS1p dGVtLCAiTElCQyIsICJtdXNsIikKKyBlbmRlZgorIAorICMgUGFyYW0gMSAtIFRoZSBmaWxlIGNv bnRhaW5pbmcgdGhlIE1PRFVMRVMgbGlzdAorLS0tIGEvbWFrZS9ob3RzcG90L2xpYi9Db21waWxl SnZtLmdtaworKysrIGIvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworQEAgLTczLDYg KzczLDcgQEAgQ0ZMQUdTX1ZNX1ZFUlNJT04gOj0gXAorICAgICAtREhPVFNQT1RfQlVJTERfVVNF Uj0nIiQoVVNFUk5BTUUpIicgXAorICAgICAtREhPVFNQT1RfVk1fRElTVFJPPSciJChIT1RTUE9U X1ZNX0RJU1RSTykiJyBcCisgICAgIC1EQ1BVPSciJChPUEVOSkRLX1RBUkdFVF9DUFVfVk1fVkVS U0lPTikiJyBcCisrICAgIC1ETElCQz0nIm11c2wiJyBcCisgICAgICMKKyAKKyAjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIworLS0tIGEvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKysrKyBiL21h a2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCitAQCAtMTkwLDYgKzE5MCw3IEBAIGlmZXEgKCQoY2Fs bCBpc1RhcmdldE9zLCB3aW5kb3dzKSwgdHJ1ZSkKKyBlbmRpZgorIAorIExJQkpMSV9DRkxBR1Mg Kz0gJChMSUJaX0NGTEFHUykKKytMSUJKTElfQ0ZMQUdTICs9IC1ETElCQz1cIm11c2xcIgorIAor IGlmbmVxICgkKFVTRV9FWFRFUk5BTF9MSUJaKSwgdHJ1ZSkKKyAgIExJQkpMSV9FWFRSQV9GSUxF UyArPSBcCistLS0gYS9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKKysrKyBiL3Ny Yy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorQEAgLTEwMiw3ICsxMDIsNiBAQAorICMg aW5jbHVkZSA8c3RyaW5nLmg+CisgIyBpbmNsdWRlIDxzeXNjYWxsLmg+CisgIyBpbmNsdWRlIDxz eXMvc3lzaW5mby5oPgorLSMgaW5jbHVkZSA8Z251L2xpYmMtdmVyc2lvbi5oPgorICMgaW5jbHVk ZSA8c3lzL2lwYy5oPgorICMgaW5jbHVkZSA8c3lzL3NobS5oPgorICMgaW5jbHVkZSA8bGluay5o PgorQEAgLTU5Nyw2ICs1OTYsMTIgQEAgdm9pZCBvczo6TGludXg6OmhvdHNwb3Rfc2lnbWFzayhU aHJlYWQqIHRocmVhZCkgeworIC8vIGRldGVjdGluZyBwdGhyZWFkIGxpYnJhcnkKKyAKKyB2b2lk IG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkgeworKyNpZiAhZGVmaW5lZChfX0dMSUJDX18p ICYmICFkZWZpbmVkKF9fVUNMSUJDX18pCisrICAvLyBIYXJkIGNvZGUgQWxwaW5lIExpbnV4IHN1 cHBvcnRlZCBtdXNsIGNvbXBhdGlibGUgc2V0dGluZ3MKKysgIC8vIHNnbjogTlBUTCBpcyBjb3Jy ZWN0LCBkb24ndCBrbm93IGFib3V0IGdsaWJjIDIuOSwgYWxwaW5lJ3MgdGhpbmc/CisrICBvczo6 TGludXg6OnNldF9nbGliY192ZXJzaW9uKCJnbGliYyAyLjkiKTsKKysgIG9zOjpMaW51eDo6c2V0 X2xpYnB0aHJlYWRfdmVyc2lvbigiTlBUTCIpOworKyNlbHNlCisgICAvLyBTYXZlIGdsaWJjIGFu ZCBwdGhyZWFkIHZlcnNpb24gc3RyaW5ncy4KKyAjaWYgIWRlZmluZWQoX0NTX0dOVV9MSUJDX1ZF UlNJT04pIHx8IFwKKyAgICAgIWRlZmluZWQoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04pCitA QCAtNjE0LDYgKzYxOSw3IEBAIHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7Cisg ICBzdHIgPSAoY2hhciAqKW1hbGxvYyhuLCBtdEludGVybmFsKTsKKyAgIGNvbmZzdHIoX0NTX0dO VV9MSUJQVEhSRUFEX1ZFUlNJT04sIHN0ciwgbik7CisgICBvczo6TGludXg6OnNldF9saWJwdGhy ZWFkX3ZlcnNpb24oc3RyKTsKKysjZW5kaWYKKyB9CisgCisgLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K K0BAIC0zMTE3LDIwICszMTIzLDM2IEBAIHZvaWQgb3M6OkxpbnV4OjpzY2hlZF9nZXRjcHVfaW5p dCgpIHsKKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfd2FybihpbnQgbnVtYmVyLCBj aGFyICp3aGVyZSwgLi4uKSB7IH0KKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfZXJy b3IoY2hhciAqd2hlcmUpIHsgfQorIAorK3N0YXRpYyB2b2lkKiBkbHZzeW1faWZfYXZhaWxhYmxl KHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmVyc2lvbikgewor KyAgdHlwZWRlZiB2b2lkKiAoKmRsdnN5bV9mdW5jX3R5cGUpKHZvaWQqIGhhbmRsZSwgY29uc3Qg Y2hhciogbmFtZSwgY29uc3QgY2hhciogdmVyc2lvbik7CisrICBzdGF0aWMgZGx2c3ltX2Z1bmNf dHlwZSBkbHZzeW1fZnVuYzsKKysgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7Cisr CisrICBpZiAoIWluaXRpYWxpemVkKSB7CisrICAgIGRsdnN5bV9mdW5jID0gKGRsdnN5bV9mdW5j X3R5cGUpZGxzeW0oUlRMRF9ORVhULCAiZGx2c3ltIik7CisrICAgIGluaXRpYWxpemVkID0gdHJ1 ZTsKKysgIH0KKysKKysgIGlmIChkbHZzeW1fZnVuYyAhPSBOVUxMKSB7CisrICAgIHZvaWQgKmYg PSBkbHZzeW1fZnVuYyhoYW5kbGUsIG5hbWUsIHZlcnNpb24pOworKyAgICBpZiAoZiAhPSBOVUxM KSB7CisrICAgICAgcmV0dXJuIGY7CisrICAgIH0KKysgIH0KKysKKysgIHJldHVybiBkbHN5bSho YW5kbGUsIG5hbWUpOworK30KKysKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEg c3ltYm9sIHZlcnNpb24gMS4xIChBUEkgdjEpLiBJZiBpdCBmYWlscworIC8vIGxvYWQgc3ltYm9s IGZyb20gYmFzZSB2ZXJzaW9uIGluc3RlYWQuCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX2Rs c3ltKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciAqbmFtZSkgeworLSAgdm9pZCAqZiA9IGRsdnN5 bShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworLSAgaWYgKGYgPT0gTlVMTCkgeworLSAg ICBmID0gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKy0gIH0KKy0gIHJldHVybiBmOworKyAgcmV0dXJu IGRsdnN5bV9pZl9hdmFpbGFibGUoaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKyB9Cisg CisgLy8gSGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMiAo QVBJIHYyKSBvbmx5LgorIC8vIFJldHVybiBOVUxMIGlmIHRoZSBzeW1ib2wgaXMgbm90IGRlZmlu ZWQgaW4gdGhpcyBwYXJ0aWN1bGFyIHZlcnNpb24uCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1h X3YyX2Rsc3ltKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSkgeworLSAgcmV0dXJuIGRs dnN5bShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMiIpOworKyAgcmV0dXJuIGRsdnN5bV9pZl9h dmFpbGFibGUoaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKyB9CisgCisgYm9vbCBvczo6 TGludXg6OmxpYm51bWFfaW5pdCgpIHsKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94 ODYvb3NfbGludXhfeDg2LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9v c19saW51eF94ODYuY3BwCitAQCAtNzUsOSArNzUsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+Cisg IyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSNpZm5kZWYgQU1E NjQKKy0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CistI2VuZGlmCisgCisgI2lmZGVmIEFNRDY0 CisgI2RlZmluZSBSRUdfU1AgUkVHX1JTUAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hh cmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFy ZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAKK0BAIC0xMTE2LDcgKzExMTYsNyBAQCBIZWFwV29yZCog R2VuQ29sbGVjdGVkSGVhcDo6YWxsb2NhdGVfbmV3X3RsYWIoc2l6ZV90IG1pbl9zaXplLAorIHN0 YXRpYyBTY3JhdGNoQmxvY2sgKnJlbW92ZVNtYWxsZXN0U2NyYXRjaChTY3JhdGNoQmxvY2sgKipw cmV2X3B0cikgeworICAgYm9vbCBmaXJzdCA9IHRydWU7CisgICBzaXplX3QgbWluX3NpemUgPSAw OyAgIC8vICJmaXJzdCIgbWFrZXMgdGhpcyBjb25jZXB0dWFsbHkgaW5maW5pdGUuCistICBTY3Jh dGNoQmxvY2sgKipzbWFsbGVzdF9wdHIsICpzbWFsbGVzdDsKKysgIFNjcmF0Y2hCbG9jayAqKnNt YWxsZXN0X3B0ciA9IE5VTEwsICpzbWFsbGVzdDsKKyAgIFNjcmF0Y2hCbG9jayAgKmN1ciA9ICpw cmV2X3B0cjsKKyAgIHdoaWxlIChjdXIpIHsKKyAgICAgYXNzZXJ0KCpwcmV2X3B0ciA9PSBjdXIs ICJqdXN0IGNoZWNraW5nIik7CistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL2Fic3Ry YWN0X3ZtX3ZlcnNpb24uY3BwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL2Fic3Ry YWN0X3ZtX3ZlcnNpb24uY3BwCitAQCAtMjc0LDcgKzI3NCw3IEBAIGNvbnN0IGNoYXIqIEFic3Ry YWN0X1ZNX1ZlcnNpb246OmludGVybmFsX3ZtX2luZm9fc3RyaW5nKCkgeworICAgI2VuZGlmCisg CisgICAjZGVmaW5lIElOVEVSTkFMX1ZFUlNJT05fU1VGRklYIFZNX1JFTEVBU0UgIikiIFwKKy0g ICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgXAorKyAgICAgICAgICIg Zm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBMSUJDIFwKKyAgICAgICAgICAiIEpSRSAo IiBWRVJTSU9OX1NUUklORyAiKSwgYnVpbHQgb24gIiBfX0RBVEVfXyAiICIgX19USU1FX18gXAor ICAgICAgICAgICIgYnkgIiBYU1RSKEhPVFNQT1RfQlVJTERfVVNFUikgIiB3aXRoICIgSE9UU1BP VF9CVUlMRF9DT01QSUxFUgorIAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2ds b2JhbERlZmluaXRpb25zX2djYy5ocHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGll cy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCitAQCAtMjA0LDcgKzIwNCw3IEBAIGlubGluZSBp bnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW5kKGYpOyB9CisgI2VsaWYgZGVmaW5l ZChfX0FQUExFX18pCisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25h bihmKTsgfQorICNlbGlmIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0Up CistaW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25hbmYoZik7IH0KKytp bmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgaW5saW5l IGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbHNlCisgI2Vy cm9yICJtaXNzaW5nIHBsYXRmb3JtLXNwZWNpZmljIGRlZmluaXRpb24gaGVyZSIKKy0tLSBhL3Ny Yy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9jbG9zZS5jCisrKysgYi9zcmMv amF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2UuYworQEAgLTYwLDcgKzYw LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeworIC8qCisgICogU2lnbmFsIHRvIHVuYmxvY2sgdGhyZWFk CisgICovCistc3RhdGljIGludCBzaWdXYWtldXAgPSAoX19TSUdSVE1BWCAtIDIpOworK3N0YXRp YyBpbnQgc2lnV2FrZXVwOworIAorIC8qCisgICogZmRUYWJsZSBob2xkcyBvbmUgZW50cnkgcGVy IGZpbGUgZGVzY3JpcHRvciwgdXAgdG8gYSBjZXJ0YWluCitAQCAtMTQ5LDYgKzE0OSw3IEBAIHN0 YXRpYyB2b2lkIF9fYXR0cmlidXRlKChjb25zdHJ1Y3RvcikpIGluaXQoKSB7CisgICAgIC8qCisg ICAgICAqIFNldHVwIHRoZSBzaWduYWwgaGFuZGxlcgorICAgICAgKi8KKysgICAgc2lnV2FrZXVw ID0gU0lHUlRNQVggLSAyOworICAgICBzYS5zYV9oYW5kbGVyID0gc2lnX3dha2V1cDsKKyAgICAg c2Euc2FfZmxhZ3MgICA9IDA7CisgICAgIHNpZ2VtcHR5c2V0KCZzYS5zYV9tYXNrKTsKKy0tLSBh L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYworKysrIGIvc3Jj L2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCitAQCAtMjM1LDcgKzIz NSwxMyBAQCBKREtfZXhlY3ZwZShpbnQgbW9kZSwgY29uc3QgY2hhciAqZmlsZSwKKyB7CisgICAg IGlmIChlbnZwID09IE5VTEwgfHwgKGNoYXIgKiopIGVudnAgPT0gZW52aXJvbikgeworICAgICAg ICAgZXhlY3ZwKGZpbGUsIChjaGFyICoqKSBhcmd2KTsKKy0gICAgICAgIHJldHVybjsKKysgICAg ICAgIC8vIEVOT0VYRUMgaW5kaWNhdGVzIHRoYXQgdGhlIGZpbGUgaGVhZGVyIHdhcyBub3QgcmVj b2duaXplZC4gVGhlIG11c2wgQworKyAgICAgICAgLy8gbGlicmFyeSBkb2VzIG5vdCBpbXBsZW1l bnQgdGhlIGZhbGxiYWNrIHRvIC9iaW4vc2ggZm9yIHRoYXQgY2FzZSwgc28gZmFsbAorKyAgICAg ICAgLy8gdGhyb3VnaCB0byB0aGUgY29kZSBiZWxvdyB3aGljaCBpbXBsZW1lbnRzIHRoYXQgZmFs bGJhY2sgdXNpbmcKKysgICAgICAgIC8vIGV4ZWN2ZV93aXRoX3NoZWxsX2ZhbGxiYWNrLgorKyAg ICAgICAgaWYgKGVycm5vICE9IEVOT0VYRUMpIHsKKysgICAgICAgICAgICByZXR1cm47CisrICAg ICAgICB9CisgICAgIH0KKyAKKyAgICAgaWYgKCpmaWxlID09ICdcMCcpIHsKKy0tLSBhL3NyYy9q YXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRpbF9tZC5oCisrKysgYi9zcmMvamF2 YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAorQEAgLTM3LDcgKzM3LDcg QEAKKyAjZGVmaW5lIElTTkFORChkKSBpc25hbihkKQorICNlbGlmIGRlZmluZWQoX19saW51eF9f KSB8fCBkZWZpbmVkKF9BTExCU0RfU09VUkNFKQorICNpbmNsdWRlIDxtYXRoLmg+CistI2RlZmlu ZSBJU05BTkYoZikgaXNuYW5mKGYpCisrI2RlZmluZSBJU05BTkYoZikgaXNuYW4oZikKKyAjZGVm aW5lIElTTkFORChkKSBpc25hbihkKQorICNlbGlmIGRlZmluZWQoX0FJWCkKKyAjaW5jbHVkZSA8 bWF0aC5oPgorLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9z b2xpbnV4LmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRf c29saW51eC5jCitAQCAtMjM2LDYgKzIzNiwzOSBAQCBSZXF1aXJlc1NldGVudihjb25zdCBjaGFy ICpqdm1wYXRoKSB7CisgICAgIGNoYXIgKmRtbGxwID0gTlVMTDsKKyAgICAgY2hhciAqcDsgLyog YSB1dGlsaXR5IHBvaW50ZXIgKi8KKyAKKysjaWZkZWYgX19saW51eAorKyNpZm5kZWYgTElCQwor KyNlcnJvciAiTElCQyBub3Qgc2V0IgorKyNlbmRpZgorKworKyAgICBpZiAoc3RyY21wKExJQkMs ICJtdXNsIikgPT0gMCkgeworKyAgICAgIC8qCisrICAgICAgICogVGhlIG11c2wgbGlicmFyeSBs b2FkZXIgcmVxdWlyZXMgTERfTElCUkFSWV9QQVRIIHRvIGJlIHNldCBpbgorKyAgICAgICAqIG9y ZGVyIHRvIGNvcnJlY3RseSByZXNvbHZlIHRoZSBkZXBlbmRlbmN5IGxpYmphdmEuc28gaGFzIG9u IGxpYmp2bS5zby4KKysgICAgICAgKgorKyAgICAgICAqIFNwZWNpZmljYWxseSwgaXQgZGlmZmVy cyBmcm9tIGdsaWJjIGluIHRoZSBzZW5zZSB0aGF0IGV2ZW4gaWYKKysgICAgICAgKiBsaWJqdm0u c28gaGFzIGFscmVhZHkgYmVlbiBsb2FkZWQgaXQgd2lsbCBub3QgYmUgY29uc2lkZXJlZCBhCisr ICAgICAgICogY2FuZGlkYXRlIGZvciByZXNvbHZpbmcgdGhlIGRlcGVuZGVuY3kgdW5sZXNzIHRo ZSAqZnVsbCogcGF0aAorKyAgICAgICAqIG9mIHRoZSBhbHJlYWR5IGxvYWRlZCBsaWJyYXJ5IG1h dGNoZXMgdGhlIGRlcGVuZGVuY3kgYmVpbmcgbG9hZGVkLgorKyAgICAgICAqCisrICAgICAgICog bGlianZtLnNvIGlzIGJlaW5nIGxvYWRlZCBieSB0aGUgbGF1bmNoZXIgdXNpbmcgYSBsb25nIHBh dGggdG8KKysgICAgICAgKiBkbG9wZW4sIG5vdCBqdXN0IHRoZSBiYXNlbmFtZSBvZiB0aGUgbGli cmFyeS4gVHlwaWNhbGx5IHRoaXMKKysgICAgICAgKiBpcyBzb21ldGhpbmcgbGlrZSAiLi4vbGli L3NlcnZlci9saWJqdm0uc28iLiBIb3dldmVyLCBpZi93aGVuCisrICAgICAgICogbGlianZtLnNv IGxhdGVyIHRyaWVzIHRvIGRsb3BlbiBsaWJqYXZhLnNvICh3aGljaCBpdCBkb2VzIGluCisrICAg ICAgICogb3JkZXIgdG8gZ2V0IGFjY2VzcyB0byBhIGZldyBmdW5jdGlvbnMgaW1wbGVtZW50ZWQg aW4KKysgICAgICAgKiBsaWJqYXZhLnNvKSB0aGUgbXVzbCBsb2FkZXIgd2lsbCwgYXMgcGFydCBv ZiBsb2FkaW5nCisrICAgICAgICogZGVwZW5kZW50IGxpYnJhcmllcywgdHJ5IHRvIGxvYWQgbGli anZtLnNvIHVzaW5nIG9ubHkgaXRzCisrICAgICAgICogYmFzZW5hbWUgImxpYmp2bS5zbyIuIFNp bmNlIHRoaXMgZG9lcyBub3QgbWF0Y2ggdGhlIGxvbmdlcgorKyAgICAgICAqIHBhdGggcGF0aCBp dCB3YXMgZmlyc3QgbG9hZGVkIHdpdGgsIHRoZSBhbHJlYWR5IGxvYWRlZAorKyAgICAgICAqIGxp YnJhcnkgaXMgbm90IGNvbnNpZGVyZWQgYSBjYW5kaWRhdGUsIGFuZCB0aGUgbG9hZGVyIHdpbGwK KysgICAgICAgKiBpbnN0ZWFkIGxvb2sgZm9yIGxpYmp2bS5zbyBlbHNld2hlcmUuIElmIGl0J3Mg bm90IGluCisrICAgICAgICogTERfTElCUkFSWV9QQVRIIHRoZSBkZXBlbmRlbmN5IGxvYWQgd2ls bCBmYWlsLCBhbmQgbGliamF2YS5zbworKyAgICAgICAqIHdpbGwgdGhlcmVmb3JlIGZhaWwgYXMg d2VsbC4KKysgICAgICAgKi8KKysgICAgICByZXR1cm4gSk5JX1RSVUU7CisrICAgIH0KKysjZW5k aWYKKysKKyAjaWZkZWYgQUlYCisgICAgIC8qIFdlIGFsd2F5cyBoYXZlIHRvIHNldCB0aGUgTElC UEFUSCBvbiBBSVggYmVjYXVzZSBsZCBkb2Vzbid0IHN1cHBvcnQgJE9SSUdJTi4gKi8KKyAgICAg cmV0dXJuIEpOSV9UUlVFOworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8v Y2gvTmF0aXZlVGhyZWFkLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlv L2NoL05hdGl2ZVRocmVhZC5jCitAQCAtMzYsNyArMzYsNyBAQAorICNpZmRlZiBfX2xpbnV4X18K KyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2xpbnV4 X2Nsb3NlLmMgKi8KKy0gICNkZWZpbmUgSU5URVJSVVBUX1NJR05BTCAoX19TSUdSVE1BWCAtIDIp CisrICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKFNJR1JUTUFYIC0gMikKKyAjZWxpZiBkZWZp bmVkKF9BSVgpCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGlu IG5ldC9haXhfY2xvc2UuYyAqLworLS0tIGEvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9s aWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMKKysrKyBiL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9u YXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCitAQCAtMjcsOSArMjcsNiBAQAorICNp bmNsdWRlIDxYMTEvWHV0aWwuaD4KKyAjaW5jbHVkZSA8WDExL1hvcy5oPgorICNpbmNsdWRlIDxY MTEvWGF0b20uaD4KKy0jaWZkZWYgX19saW51eF9fCistI2luY2x1ZGUgPGV4ZWNpbmZvLmg+Cist I2VuZGlmCisgCisgI2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxqbmkuaD4KK0BAIC03ODAs MjYgKzc3Nyw2IEBAIEpOSUVYUE9SVCBqc3RyaW5nIEpOSUNBTEwgSmF2YV9zdW5fYXd0X1gxMV9Y VG9vbGtpdF9nZXRFbnYKKyAgICAgcmV0dXJuIHJldDsKKyB9CisgCistI2lmZGVmIF9fbGludXhf XworLXZvaWQgcHJpbnRfc3RhY2sodm9pZCkKKy17CistICB2b2lkICphcnJheVsxMF07CistICBz aXplX3Qgc2l6ZTsKKy0gIGNoYXIgKipzdHJpbmdzOworLSAgc2l6ZV90IGk7CistCistICBzaXpl ID0gYmFja3RyYWNlIChhcnJheSwgMTApOworLSAgc3RyaW5ncyA9IGJhY2t0cmFjZV9zeW1ib2xz IChhcnJheSwgc2l6ZSk7CistCistICBmcHJpbnRmIChzdGRlcnIsICJPYnRhaW5lZCAlemQgc3Rh Y2sgZnJhbWVzLlxuIiwgc2l6ZSk7CistCistICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQor LSAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXNcbiIsIHN0cmluZ3NbaV0pOworLQorLSAgZnJlZSAo c3RyaW5ncyk7CistfQorLSNlbmRpZgorLQorIFdpbmRvdyBnZXRfeGF3dF9yb290X3NoZWxsKEpO SUVudiAqZW52KSB7CisgICBzdGF0aWMgamNsYXNzIGNsYXNzWFJvb3RXaW5kb3cgPSBOVUxMOwor ICAgc3RhdGljIGptZXRob2RJRCBtZXRob2RHZXRYUm9vdFdpbmRvdyA9IE5VTEw7CistLS0gYS9z cmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCisrKysgYi9zcmMv amRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCitAQCAtMzUsMTUgKzM1 LDE1IEBACisgI2lmZGVmIERFQlVHCisgICAgIC8qIEp1c3QgdG8gbWFrZSBzdXJlIHRoZXNlIGlu dGVyZmFjZXMgYXJlIG5vdCB1c2VkIGhlcmUuICovCisgICAgICN1bmRlZiBmcmVlCistICAgICNk ZWZpbmUgZnJlZShwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGZy ZWUgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9mcmVlCisgICAgICN1bmRlZiBtYWxsb2MKKy0g ICAgI2RlZmluZSBtYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2Rl ZmluZSBtYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9tYWxsb2MKKyAgICAgI3VuZGVm IGNhbGxvYworLSAgICAjZGVmaW5lIGNhbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNl LgorKyAgICAjZGVmaW5lIGNhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX2NhbGxvYwor ICAgICAjdW5kZWYgcmVhbGxvYworLSAgICAjZGVmaW5lIHJlYWxsb2MocCkgRG8gbm90IHVzZSB0 aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSByZWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRl cmZhY2VfcmVhbGxvYworICAgICAjdW5kZWYgc3RyZHVwCistICAgICNkZWZpbmUgc3RyZHVwKHAp IERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgc3RyZHVwIGRvX25vdF91 c2VfdGhpc19pbnRlcmZhY2Vfc3RyZHVwCisgI2VuZGlmCisgCisgI2luY2x1ZGUgImxvZ19tZXNz YWdlcy5oIgorLS0tIGEvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2Vz L2V4ZWludm9rZS5jCisrKysgYi90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJk UGFnZXMvZXhlaW52b2tlLmMKK0BAIC0zMyw2ICszMyw3IEBACisgCisgI2luY2x1ZGUgPGFzc2Vy dC5oPgorICNpbmNsdWRlIDxqbmkuaD4KKysjaW5jbHVkZSA8anZtLmg+CisgI2luY2x1ZGUgPGFs bG9jYS5oPgorICNpbmNsdWRlIDxzaWduYWwuaD4KKyAjaW5jbHVkZSA8c3RyaW5nLmg+CitAQCAt OTEsNiArOTIsMjAgQEAgdm9pZCBzZXRfc2lnbmFsX2hhbmRsZXIoKSB7CisgICB9CisgfQorIAor K2ludCBnZXRfamF2YV9zdGFja3NpemUgKCkgeworKyAgc2l6ZV90IHN0YWNrc2l6ZTsKKysgIHB0 aHJlYWRfYXR0cl90IGF0dHI7CisrICBKREsxXzFJbml0QXJncyBqZGtfYXJnczsKKysKKysgIGpk a19hcmdzLnZlcnNpb24gPSBKTklfVkVSU0lPTl8xXzE7CisrICBKTklfR2V0RGVmYXVsdEphdmFW TUluaXRBcmdzKCZqZGtfYXJncyk7CisrICBpZiAoamRrX2FyZ3MuamF2YVN0YWNrU2l6ZSA8PSAw KSB7CisrICAgIGZwcmludGYoc3RkZXJyLCAiVGVzdCBFUlJPUi4gQ2FuJ3QgZ2V0IGEgdmFsaWQg dmFsdWUgZm9yIHRoZSBkZWZhdWx0IHN0YWNrc2l6ZS5cbiIpOworKyAgICBleGl0KDcpOworKyAg fQorKyAgcmV0dXJuIGpka19hcmdzLmphdmFTdGFja1NpemU7CisrfQorKworIHZvaWQgKnJ1bl9q YXZhX292ZXJmbG93ICh2b2lkICpwKSB7CisgICBKTklFbnYgKmVudjsKKyAgIGpjbGFzcyBjbGFz c19pZDsKK0BAIC0yNTgsMTMgKzI3MywxOSBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNo YXIqKiBhcmd2KSB7CisgICAgIGV4aXQoNyk7CisgICB9CisgCisrICBpbnQgc3RhY2tfc2l6ZSA9 IGdldF9qYXZhX3N0YWNrc2l6ZSgpOworICAgcHRocmVhZF90IHRocjsKKysgIHB0aHJlYWRfYXR0 cl90IHRocmVhZF9hdHRyOworKworKyAgcHRocmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRyKTsK KysgIHB0aHJlYWRfYXR0cl9zZXRzdGFja3NpemUoJnRocmVhZF9hdHRyLCBzdGFja19zaXplKTsK KyAKKyAgIGlmIChhcmdjID4gMSAmJiBzdHJjbXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVyZmxv dyIpID09IDApIHsKKyAgICAgcHJpbnRmKCJcblRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7Cisg CisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3Ro ZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9qYXZh X292ZXJmbG93LCBOVUxMKTsKKysKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRf YXR0ciwgcnVuX2phdmFfb3ZlcmZsb3csIE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRociwg TlVMTCk7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91 ciBmb3IgaW5pdGlhbCB0aHJlYWRcbiIpOworQEAgLTI3Nyw3ICsyOTgsNyBAQCBpbnQgbWFpbiAo aW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIE5B VElWRV9PVkVSRkxPV1xuIik7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBw YWdlIGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVhdGUg KCZ0aHIsIE5VTEwsIHJ1bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwpOworKyAgICBwdGhyZWFkX2Ny ZWF0ZSAoJnRociwgJnRocmVhZF9hdHRyLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKyAg ICAgcHRocmVhZF9qb2luICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3Rh Y2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKZGlmZiAtLWdp dCBhL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2ggYi9zcmNw a2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDMwNmQ1MDFlNGI4Ci0tLSAvZGV2L251bGwKKysr IGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaApAQCAtMCww ICsxLDQ1IEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRw czovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0 Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUvcHBjL21h Y3JvQXNzZW1ibGVyX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fz c2VtYmxlcl9wcGMuY3BwCitAQCAtNDcsNiArNDcsOCBAQAorICNpbmNsdWRlICJvcHRvL2ludHJp bnNpY25vZGUuaHBwIgorICNlbmRpZgorIAorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrCisg I2lmZGVmIFBST0RVQ1QKKyAjZGVmaW5lIEJMT0NLX0NPTU1FTlQoc3RyKSAvLyBub3RoaW5nCisg I2Vsc2UKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKKysr KyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKK0BAIC04NDUsNyAr ODQ1LDcgQEAgdm9pZCBWTV9WZXJzaW9uOjpkZXRlcm1pbmVfZmVhdHVyZXMoKSB7CisgICB1bnNp Z25lZCBsb25nIGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsKKyAKKyAgIGlmIChhdXh2ICYg UFBDX0ZFQVRVUkUyX0hUTV9OT1NDKSB7CistICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hB U19IVE0pIHsKKysgICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNKSB7CisgICAgICAgLy8g VE0gb24gUE9XRVI4IGFuZCBQT1dFUjkgaW4gY29tcGF0IG1vZGUgKFZNKSBpcyBzdXBwb3J0ZWQg YnkgdGhlIEpWTS4KKyAgICAgICAvLyBUTSBvbiBQT1dFUjkgREQyLjEgTlYgKGJhcmVtZXRhbCkg aXMgbm90IHN1cHBvcnRlZCBieSB0aGUgSlZNIChUTSBvbgorICAgICAgIC8vIFBPV0VSOSBERDIu MSBOViBoYXMgYSBmZXcgaXNzdWVzIHRoYXQgbmVlZCBhIGNvdXBsZSBvZiBmaXJtd2FyZQorLS0t IG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAKKysrKyBu ZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCitAQCAtNzUs NyArNzUsNyBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBp bmNsdWRlIDx1Y29udGV4dC5oPgorLQorKyMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorIGFk ZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAgIGludHB0cl90KiBjc3A7Cist LS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAK KysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNw cAorQEAgLTIzLDYgKzIzLDggQEAKKyAgKgorICAqLworIAorKyNpbmNsdWRlIDxhc20vcHRyYWNl Lmg+CisrCisgI2luY2x1ZGUgInByZWNvbXBpbGVkLmhwcCIKKyAjaW5jbHVkZSAicnVudGltZS9m cmFtZS5pbmxpbmUuaHBwIgorICNpbmNsdWRlICJydW50aW1lL3RocmVhZC5ocHAiCmRpZmYgLS1n aXQgYS9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoIGIvc3Jj cGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNjRjMTg5MDM2YQotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKQEAgLTAs MCArMSwxMzAgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0 dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFm NTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGlu dXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC05MCw2ICs5MCwxMjYgQEAKKyAjZGVmaW5lIFNQ RUxMX1JFR19GUCAiZWJwIgorICNlbmRpZiAvLyBBTUQ2NAorCisrLy8gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CisrLy8gVGFrZW4gZnJvbSBnbGliYyAyLjI4CisrLy8gc291cmNlOiBodHRwczovL3Nv dXJjZXdhcmUub3JnL2dpdC8/cD1nbGliYy5naXQ7YT1ibG9iO2Y9c3lzZGVwcy94ODYvZnB1X2Nv bnRyb2wuaDtoPTRjYjk4YzU2NzliMjg5N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4OWUyNGQ7aGI9M2Mw M2JhY2EzN2ZkY2I1MmMzODgxZTY1M2NhMzkyYmJhN2E5OWMyYgorKy8vID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQorKyNpZm5kZWYgQU1ENjQKKysvKiBGUFUgY29udHJvbCB3b3JkIGJpdHMuICB4ODYg dmVyc2lvbi4KKysgICBDb3B5cmlnaHQgKEMpIDE5OTMtMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4K KysgICBDb250cmlidXRlZCBieSBPbGFmIEZsZWJiZS4KKysKKysgICBUaGUgR05VIEMgTGlicmFy eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj CisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor KyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g IFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg ZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUg QyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMv Pi4gICovCisrCisrI2lmbmRlZiBfRlBVX0NPTlRST0xfSAorKyNkZWZpbmUgX0ZQVV9DT05UUk9M X0gJMQorKworKy8qIE5vdGUgdGhhdCB0aGlzIGZpbGUgc2V0cyBvbiB4ODYtNjQgb25seSB0aGUg eDg3IEZQVSwgaXQgZG9lcyBub3QKKysgICB0b3VjaCB0aGUgU1NFIHVuaXQuICAqLworKworKy8q IEhlcmUgaXMgdGhlIGRpcnR5IHBhcnQuIFNldCB1cCB5b3VyIDM4NyB0aHJvdWdoIHRoZSBjb250 cm9sIHdvcmQKKysgKiAoY3cpIHJlZ2lzdGVyLgorKyAqCisrICogICAgIDE1LTEzICAgIDEyICAx MS0xMCAgOS04ICAgICA3LTYgICAgIDUgICAgNCAgICAzICAgIDIgICAgMSAgICAwCisrICogfCBy ZXNlcnZlZCB8IElDIHwgUkMgIHwgUEMgfCByZXNlcnZlZCB8IFBNIHwgVU0gfCBPTSB8IFpNIHwg RE0gfCBJTQorKyAqCisrICogSU06IEludmFsaWQgb3BlcmF0aW9uIG1hc2sKKysgKiBETTogRGVu b3JtYWxpemVkIG9wZXJhbmQgbWFzaworKyAqIFpNOiBaZXJvLWRpdmlkZSBtYXNrCisrICogT006 IE92ZXJmbG93IG1hc2sKKysgKiBVTTogVW5kZXJmbG93IG1hc2sKKysgKiBQTTogUHJlY2lzaW9u IChpbmV4YWN0IHJlc3VsdCkgbWFzaworKyAqCisrICogTWFzayBiaXQgaXMgMSBtZWFucyBubyBp bnRlcnJ1cHQuCisrICoKKysgKiBQQzogUHJlY2lzaW9uIGNvbnRyb2wKKysgKiAxMSAtIHJvdW5k IHRvIGV4dGVuZGVkIHByZWNpc2lvbgorKyAqIDEwIC0gcm91bmQgdG8gZG91YmxlIHByZWNpc2lv bgorKyAqIDAwIC0gcm91bmQgdG8gc2luZ2xlIHByZWNpc2lvbgorKyAqCisrICogUkM6IFJvdW5k aW5nIGNvbnRyb2wKKysgKiAwMCAtIHJvdW5kaW5nIHRvIG5lYXJlc3QKKysgKiAwMSAtIHJvdW5k aW5nIGRvd24gKHRvd2FyZCAtIGluZmluaXR5KQorKyAqIDEwIC0gcm91bmRpbmcgdXAgKHRvd2Fy ZCArIGluZmluaXR5KQorKyAqIDExIC0gcm91bmRpbmcgdG93YXJkIHplcm8KKysgKgorKyAqIElD OiBJbmZpbml0eSBjb250cm9sCisrICogVGhhdCBpcyBmb3IgODA4NyBhbmQgODAyODcgb25seS4K KysgKgorKyAqIFRoZSBoYXJkd2FyZSBkZWZhdWx0IGlzIDB4MDM3ZiB3aGljaCB3ZSB1c2UuCisr ICovCisrCisrI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisrCisrLyogbWFza2luZyBvZiBpbnRlcnJ1 cHRzICovCisrI2RlZmluZSBfRlBVX01BU0tfSU0gIDB4MDEKKysjZGVmaW5lIF9GUFVfTUFTS19E TSAgMHgwMgorKyNkZWZpbmUgX0ZQVV9NQVNLX1pNICAweDA0CisrI2RlZmluZSBfRlBVX01BU0tf T00gIDB4MDgKKysjZGVmaW5lIF9GUFVfTUFTS19VTSAgMHgxMAorKyNkZWZpbmUgX0ZQVV9NQVNL X1BNICAweDIwCisrCisrLyogcHJlY2lzaW9uIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfRVhU RU5ERUQgMHgzMDAJLyogbGlibSByZXF1aXJlcyBkb3VibGUgZXh0ZW5kZWQgcHJlY2lzaW9uLiAg Ki8KKysjZGVmaW5lIF9GUFVfRE9VQkxFICAgMHgyMDAKKysjZGVmaW5lIF9GUFVfU0lOR0xFICAg MHgwCisrCisrLyogcm91bmRpbmcgY29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ORUFSRVNU IDB4MCAgICAvKiBSRUNPTU1FTkRFRCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ET1dOICAgIDB4NDAw CisrI2RlZmluZSBfRlBVX1JDX1VQICAgICAgMHg4MDAKKysjZGVmaW5lIF9GUFVfUkNfWkVSTyAg ICAweEMwMAorKworKyNkZWZpbmUgX0ZQVV9SRVNFUlZFRCAweEYwQzAgIC8qIFJlc2VydmVkIGJp dHMgaW4gY3cgKi8KKysKKysKKysvKiBUaGUgZmRsaWJtIGNvZGUgcmVxdWlyZXMgc3RyaWN0IElF RUUgZG91YmxlIHByZWNpc2lvbiBhcml0aG1ldGljLAorKyAgIGFuZCBubyBpbnRlcnJ1cHRzIGZv ciBleGNlcHRpb25zLCByb3VuZGluZyB0byBuZWFyZXN0LiAgKi8KKysKKysjZGVmaW5lIF9GUFVf REVGQVVMVCAgMHgwMzdmCisrCisrLyogSUVFRTogIHNhbWUgYXMgYWJvdmUuICAqLworKyNkZWZp bmUgX0ZQVV9JRUVFICAgICAweDAzN2YKKysKKysvKiBUeXBlIG9mIHRoZSBjb250cm9sIHdvcmQu ICAqLworK3R5cGVkZWYgdW5zaWduZWQgaW50IGZwdV9jb250cm9sX3QgX19hdHRyaWJ1dGVfXyAo KF9fbW9kZV9fIChfX0hJX18pKSk7CisrCisrLyogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGhh cmR3YXJlIGNvbnRyb2wgd29yZC4gICIqJiIgaXMgdXNlZCB0bworKyAgIHdvcmsgYXJvdW5kIGEg YnVnIGluIG9sZGVyIHZlcnNpb25zIG9mIEdDQy4gIF9fdm9sYXRpbGVfXyBpcyB1c2VkCisrICAg dG8gc3VwcG9ydCBjb21iaW5hdGlvbiBvZiB3cml0aW5nIHRoZSBjb250cm9sIHJlZ2lzdGVyIGFu ZCByZWFkaW5nCisrICAgaXQgYmFjay4gIFdpdGhvdXQgX192b2xhdGlsZV9fLCB0aGUgb2xkIHZh bHVlIG1heSBiZSB1c2VkIGZvciByZWFkaW5nCisrICAgYmFjayB1bmRlciBjb21waWxlciBvcHRp bWl6YXRpb24uCisrCisrICAgTm90ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlc2UgbWFjcm9zIGlzIG5v dCBzdWZmaWNpZW50IGFueW1vcmUgd2l0aAorKyAgIHJlY2VudCBoYXJkd2FyZSBub3Igb24geDg2 LTY0LiAgU29tZSBmbG9hdGluZyBwb2ludCBvcGVyYXRpb25zIGFyZQorKyAgIGV4ZWN1dGVkIGlu IHRoZSBTU0UvU1NFMiBlbmdpbmVzIHdoaWNoIGhhdmUgdGhlaXIgb3duIGNvbnRyb2wgYW5kCisr ICAgc3RhdHVzIHJlZ2lzdGVyLiAgKi8KKysjZGVmaW5lIF9GUFVfR0VUQ1coY3cpIF9fYXNtX18g X192b2xhdGlsZV9fICgiZm5zdGN3ICUwIiA6ICI9bSIgKComY3cpKQorKyNkZWZpbmUgX0ZQVV9T RVRDVyhjdykgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6ICJtIiAoKiZjdykp CisrCisrLyogRGVmYXVsdCBjb250cm9sIHdvcmQgc2V0IGF0IHN0YXJ0dXAuICAqLworK2V4dGVy biBmcHVfY29udHJvbF90IF9fZnB1X2NvbnRyb2w7CisrCisrI2VuZGlmCS8qIGZwdV9jb250cm9s LmggKi8KKysKKysjZW5kaWYgLy8gQU1ENjQKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysv LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysKKyBh ZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgI2lmZGVmIFNQQVJDX1dPUktT CisgICByZWdpc3RlciB2b2lkICplc3A7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNy90 ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazE3L3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uMWQ1YmNhNTI5ODMyCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9vcGVuamRrMTcvdGVtcGxhdGUKQEAgLTAsMCArMSwyMDEgQEAKKyMgVGVtcGxhdGUgZmls ZSBmb3IgJ29wZW5qZGsxNycKK19qYXZhX3Zlcj0xNworX2phdmFfbWluX3Zlcj0wCitfamF2YV9z ZWNfdmVyPTEKK19qZGtfdXBkYXRlPTEyCitfamRrX2hvbWU9InVzci9saWIvanZtL29wZW5qZGsk e19qYXZhX3Zlcn0iCitfYmFzZV92ZXJzaW9uPSIke19qYXZhX3Zlcn0uJHtfamF2YV9taW5fdmVy fS4ke19qYXZhX3NlY192ZXJ9IgorCitwa2duYW1lPW9wZW5qZGsxNwordmVyc2lvbj0iJHtfYmFz ZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3JldmlzaW9uPTEKK3dya3NyYz0iamRrJHtfamF2 YV92ZXJ9dS1qZGstJHtfYmFzZV92ZXJzaW9ufS0ke19qZGtfdXBkYXRlfSIKK2J1aWxkX3N0eWxl PWdudS1jb25maWd1cmUKK2NvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3MtYXMtZXJy b3JzCisgLS1lbmFibGUtdW5saW1pdGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQorIC0t d2l0aC1saWJqcGVnPXN5c3RlbQorIC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxpYnBu Zz1zeXN0ZW0KKyAtLXdpdGgtbGNtcz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdpdGgt dmVyc2lvbi1idWlsZD0kX2phdmFfdmVyCisgLS13aXRoLWpvYnM9JFhCUFNfT1JJR19NQUtFSk9C UworIC0td2l0aC12ZW5kb3ItbmFtZT1Wb2lkCisgLS13aXRoLXZlbmRvci11cmw9aHR0cHM6Ly92 b2lkbGludXgub3JnLworIC0td2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC12ZW5kb3Itdm0tYnVnLXVy bD1odHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcyIKK21h a2VfYnVpbGRfYXJncz0iaW1hZ2VzICQodm9wdF9pZiBkb2NzIGRvY3MpIgorbWFrZV9pbnN0YWxs X2FyZ3M9IklOU1RBTExfUFJFRklYPVwiJHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS91c3IvbGliXCIiCittYWtlX2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0Igor aG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFyIHVu emlwIHppcCBjYS1jZXJ0aWZpY2F0ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1ha2Ut Y2EiCittYWtlZGVwZW5kcz0ibGliWHJlbmRlci1kZXZlbCBsaWJYdHN0LWRldmVsIGxpYlh0LWRl dmVsIGxpYlhyYW5kci1kZXZlbAorIGdpZmxpYi1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsIGN1 cHMtZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgYWxzYS1saWItZGV2ZWwKKyBmb250Y29uZmlnLWRldmVs IHpsaWItZGV2ZWwgbGNtczItZGV2ZWwiCitwcm92aWRlcz0iamF2YS1lbnZpcm9ubWVudC0ke3Zl cnNpb259XzEgamF2YS1ydW50aW1lLSR7dmVyc2lvbn1fMSIKK3Nob3J0X2Rlc2M9Ik9wZW5KREsg SmF2YSBEZXZlbG9wbWVudCBLaXQiCittYWludGFpbmVyPSJjbGFzc2FiYnlhbXAgPGRldkBrYjYu ZWU+IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5IFdJVEggQ2xhc3NwYXRoLWV4Y2VwdGlvbi0yLjAi Citob21lcGFnZT0iaHR0cDovL29wZW5qZGsuamF2YS5uZXQvIgorZGlzdGZpbGVzPSJodHRwczov L2dpdGh1Yi5jb20vb3Blbmpkay9qZGske19qYXZhX3Zlcn11L2FyY2hpdmUvamRrLSR7dmVyc2lv bn0udGFyLmd6IgorY2hlY2tzdW09OGMwNzYyMDNhNmY4NWFiOTE2YjNlNTRkZTE5OTJiY2JjYzVm ZmU1ODBjNTJiMWFjOGQ1MmNhN2FmYjlmMDJkMQorc2hsaWJfcHJvdmlkZXM9ImxpYmF3dC5zbyBs aWJhd3RfeGF3dC5zbyBsaWJqYXZhLnNvIGxpYmpsaS5zbyBsaWJqdm0uc28gbGliamF3dC5zbyIK KworIyBCdWlsZCBpcyBzdGlsbCBwYXJhbGxlbCwgYnV0IGRvbid0IHVzZSAtak4uCitkaXNhYmxl X3BhcmFsbGVsX2J1aWxkPXllcworYnVpbGRfb3B0aW9ucz0iZG9jcyIKKworIyBubyBob3RzcG90 IEpJVCBmb3IgcHBjMzIKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0Kikg OzsKKwlwcGMqKSBfdXNlX3plcm89eWVzIDs7Citlc2FjCisKK2lmIFsgLW4gIiRfdXNlX3plcm8i IF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJmZmktZGV2ZWwiCisJY29uZmlndXJlX2FyZ3Mr PSIgLS13aXRoLWp2bS12YXJpYW50cz16ZXJvIgorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgorCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290LWpkay1qdm1hcmdzPS1Y WDpUaHJlYWRTdGFja1NpemU9MjU2MCI7OworCWVzYWMKK2ZpCitjb25maWd1cmVfYXJncys9IiAt LXdpdGgtYm9vdC1qZGstanZtYXJncz0tWGxvZzpkaXNhYmxlIgorCitjYXNlICIkWEJQU19UQVJH RVRfTElCQyIgaW4KKwlnbGliYykgYnVpbGRfb3B0aW9uc19kZWZhdWx0Kz0iIGRvY3MiOzsKK2Vz YWMKKworaWYgWyAhICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlob3N0bWFrZWRlcGVuZHMrPSIg b3BlbmpkazE2LWJvb3RzdHJhcCIKKwljb25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGs9 L3Vzci9saWIvanZtL29wZW5qZGsxNiIKK2Vsc2UKKwlob3N0bWFrZWRlcGVuZHMrPSIgb3Blbmpk azE3IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290LWpkaz0vdXNyL2xpYi9qdm0vb3Bl bmpkazE3IgorZmkKKworYWx0ZXJuYXRpdmVzPSIKKyBqYXZhOi91c3IvYmluL2phdmE6L3Vzci9s aWIvanZtL29wZW5qZGsxNy9iaW4vamF2YQorIGphdmE6L3Vzci9iaW4vampzOi91c3IvbGliL2p2 bS9vcGVuamRrMTcvYmluL2pqcworIGphdmE6L3Vzci9iaW4va2V5dG9vbDovdXNyL2xpYi9qdm0v b3BlbmpkazE3L2Jpbi9rZXl0b29sCisgamF2YTovdXNyL2Jpbi9wYWNrMjAwOi91c3IvbGliL2p2 bS9vcGVuamRrMTcvYmluL3BhY2syMDAKKyBqYXZhOi91c3IvYmluL3JtaWQ6L3Vzci9saWIvanZt L29wZW5qZGsxNy9iaW4vcm1pZAorIGphdmE6L3Vzci9iaW4vcm1pcmVnaXN0cnk6L3Vzci9saWIv anZtL29wZW5qZGsxNy9iaW4vcm1pcmVnaXN0cnkKKyBqYXZhOi91c3IvYmluL3VucGFjazIwMDov dXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi91bnBhY2syMDAKKworIGpkazovdXNyL2Jpbi9qYW90 YzovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qYW90YworIGpkazovdXNyL2Jpbi9qYXI6L3Vz ci9saWIvanZtL29wZW5qZGsxNy9iaW4vamFyCisgamRrOi91c3IvYmluL2phcnNpZ25lcjovdXNy L2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qYXJzaWduZXIKKyBqZGs6L3Vzci9iaW4vamF2YTovdXNy L2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qYXZhCisgamRrOi91c3IvYmluL2phdmFjOi91c3IvbGli L2p2bS9vcGVuamRrMTcvYmluL2phdmFjCisgamRrOi91c3IvYmluL2phdmFkb2M6L3Vzci9saWIv anZtL29wZW5qZGsxNy9iaW4vamF2YWRvYworIGpkazovdXNyL2Jpbi9qYXZhcDovdXNyL2xpYi9q dm0vb3BlbmpkazE3L2Jpbi9qYXZhcAorIGpkazovdXNyL2Jpbi9qY21kOi91c3IvbGliL2p2bS9v cGVuamRrMTcvYmluL2pjbWQKKyBqZGs6L3Vzci9iaW4vamNvbnNvbGU6L3Vzci9saWIvanZtL29w ZW5qZGsxNy9iaW4vamNvbnNvbGUKKyBqZGs6L3Vzci9iaW4vamRiOi91c3IvbGliL2p2bS9vcGVu amRrMTcvYmluL2pkYgorIGpkazovdXNyL2Jpbi9qZGVwcnNjYW46L3Vzci9saWIvanZtL29wZW5q ZGsxNy9iaW4vamRlcHJzY2FuCisgamRrOi91c3IvYmluL2pkZXBzOi91c3IvbGliL2p2bS9vcGVu amRrMTcvYmluL2pkZXBzCisgamRrOi91c3IvYmluL2poc2RiOi91c3IvbGliL2p2bS9vcGVuamRr MTcvYmluL2poc2RiCisgamRrOi91c3IvYmluL2ppbWFnZTovdXNyL2xpYi9qdm0vb3BlbmpkazE3 L2Jpbi9qaW1hZ2UKKyBqZGs6L3Vzci9iaW4vamluZm86L3Vzci9saWIvanZtL29wZW5qZGsxNy9i aW4vamluZm8KKyBqZGs6L3Vzci9iaW4vampzOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2pq cworIGpkazovdXNyL2Jpbi9qbGluazovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qbGluawor IGpkazovdXNyL2Jpbi9qbWFwOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2ptYXAKKyBqZGs6 L3Vzci9iaW4vam1vZDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qbW9kCisgamRrOi91c3Iv YmluL2pwczovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qcHMKKyBqZGs6L3Vzci9iaW4vanJ1 bnNjcmlwdDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qcnVuc2NyaXB0CisgamRrOi91c3Iv YmluL2pzaGVsbDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qc2hlbGwKKyBqZGs6L3Vzci9i aW4vanN0YWNrOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2pzdGFjaworIGpkazovdXNyL2Jp bi9qc3RhdDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qc3RhdAorIGpkazovdXNyL2Jpbi9q c3RhdGQ6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vanN0YXRkCisgamRrOi91c3IvYmluL2tl eXRvb2w6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4va2V5dG9vbAorIGpkazovdXNyL2Jpbi9w YWNrMjAwOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL3BhY2syMDAKKyBqZGs6L3Vzci9iaW4v cm1pYzovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9ybWljCisgamRrOi91c3IvYmluL3JtaWQ6 L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vcm1pZAorIGpkazovdXNyL2Jpbi9ybWlyZWdpc3Ry eTovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9ybWlyZWdpc3RyeQorIGpkazovdXNyL2Jpbi9z ZXJpYWx2ZXI6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vc2VyaWFsdmVyCisgamRrOi91c3Iv YmluL3VucGFjazIwMDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi91bnBhY2syMDAKKyIKKwor cG9zdF9leHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZpZ3VyZQorCWlmIFsgIiRYQlBTX1RBUkdF VF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCXJtIC1yIHNyYy9qZGsuaG90c3BvdC5hZ2VudAor CWZpCit9CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11 c2wiIF07IHRoZW4KKwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9tdXNsX3BhdGNoZXMvKi5wYXRj aDsgZG8KKwkJCW1zZ19ub3JtYWwgIkFwcGx5aW5nICR7ZiMkRklMRVNESVIvfVxuIgorCQkJcGF0 Y2ggLU5wMSAtaSAiJGYiCisJCWRvbmUKKwlmaQorfQorCitkb19jb25maWd1cmUoKSB7CisJQ0ZM QUdTPSR7Q0ZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCUNYWEZMQUdTPSR7Q1hYRkxBR1Mv LURfRk9SVElGWV9TT1VSQ0U9Mi99CisKKwkjIGZvcmNlIEVMRnYyIGZvciBwcGM2NCBqdXN0IGlu IGNhc2UKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjNjQqKQorCQkJQ0ZM QUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJQ1hYRkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQk7Owor CWVzYWMKKworCWNvbmZpZ3VyZV9hcmdzPSR7Y29uZmlndXJlX2FyZ3MvLS13aXRoLWxpYnRvb2wt c3lzcm9vdD0kWEJQU19DUk9TU19CQVNFfQorCWlmIFsgIiRYQlBTX0NDQUNIRSIgXSAmJiBbIC16 ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJY29uZmlndXJlX2FyZ3MrPSIgLS1lbmFibGUtY2Nh Y2hlIgorCQlDQz0iL3Vzci9iaW4vY2MiCisJCUNYWD0iL3Vzci9iaW4vYysrIgorCWZpCisJLi9j b25maWd1cmUgJHtjb25maWd1cmVfYXJnc30gXAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZM QUdTIiBcCisJCS0td2l0aC1leHRyYS1jeHhmbGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0aC1l eHRyYS1sZGZsYWdzPSIkTERGTEFHUyIgXAorCQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJ UD0kU1RSSVAgTk09JE5NIFwKKwkJT0JKRFVNUD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9 CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2JpbgorCW12 ICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19iYXNlX3ZlcnNpb259LWludGVybmFs ICR7REVTVERJUn0vJF9qZGtfaG9tZQorCXZta2RpciAkX2pka19ob21lL2xpYi9zZWN1cml0eQor CW1ha2UtY2EgLWcgLWYgLS1kZXN0ZGlyICIke1BXRH0vY2EiIC1rICIke0RFU1RESVJ9LyRfamRr X2hvbWUvYmluL2tleXRvb2wiCisJbXYgLi9jYS9ldGMvcGtpL3Rscy9qYXZhL2NhY2VydHMgJHtE RVNURElSfS8kX2pka19ob21lL2xpYi9zZWN1cml0eS8KKwljaG1vZCAtUiB1Z28rcncgLi9jYQor CXJtIC1yZiAuL2NhCisJdm1rZGlyIGV0Yy9wcm9maWxlLmQKKwljYXQgPj4ke0RFU1RESVJ9L2V0 Yy9wcm9maWxlLmQvMTBfb3BlbmpkazE3LnNoIDw8LUVPRgorCWV4cG9ydCBKQVZBX0hPTUU9XCR7 SkFWQV9IT01FPS8kX2pka19ob21lfQorCUVPRgorCXZsaWNlbnNlIEFTU0VNQkxZX0VYQ0VQVElP TgorCXZsaWNlbnNlIExJQ0VOU0UKK30KKworb3BlbmpkazE3LWRvY19wYWNrYWdlKCkgeworCW5v c3RyaXA9eWVzCisJbm92ZXJpZnlyZGVwcz15ZXMKKwlub3NobGlicHJvdmlkZXM9eWVzCisJc2hv cnRfZGVzYys9IiAtLSBkb2N1bWVudGF0aW9uIgorCXBrZ19pbnN0YWxsKCkgeworCQljZCAke3dy a3NyY30KKwkJaWYgWyAiJGJ1aWxkX29wdGlvbl9kb2NzIiBdOyB0aGVuCisJCQlsb2NhbCBfZG9j ZGlyPXVzci9zaGFyZS9kb2Mvb3BlbmpkayRfamF2YV92ZXIKKwkJCXZta2RpciAkX2RvY2Rpcgor CQkJY3AgLWEgYnVpbGQvbGludXgtKi9pbWFnZXMvZG9jcy8qICR7UEtHREVTVERJUn0vJF9kb2Nk aXIKKwkJZmkKKwkJdm1vdmUgJF9qZGtfaG9tZS9tYW4vbWFuMQorCX0KK30KKworb3BlbmpkazE3 LXNyY19wYWNrYWdlKCkgeworCW5vc3RyaXA9eWVzCisJbm92ZXJpZnlyZGVwcz15ZXMKKwlub3No bGlicHJvdmlkZXM9eWVzCisJc2hvcnRfZGVzYys9IiAtLSBzb3VyY2VzIgorCXBrZ19pbnN0YWxs KCkgeworCQl2bW92ZSAiJF9qZGtfaG9tZS9saWIvc3JjLnppcCIKKwl9Cit9CgpGcm9tIDRjNmQ0 MjczZWE1OWY3ZmRiMTAyNjk5NzFmN2ExOGY5ODE2NDIzMTQgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IGNsYXNzYWJieWFtcCA8ZGV2QGtiNi5lZT4KRGF0ZTogV2VkLCAxMiBKYW4gMjAy MiAxNjo1NjozNiAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMDgvMTFdIG9wZW5qZGsxNzogVEVNUCBm aXggbXVzbCBwYXRjaCBmbGFncwoKLS0tCiBzcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvdGVt cGxhdGUgfCAgMiArLQogc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL3RlbXBsYXRlIHwgMTEg KysrKystLS0tLS0KIHNyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC90ZW1wbGF0ZSB8ICAyICst CiBzcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvdGVtcGxhdGUgfCAgMiArLQogc3JjcGtncy9v cGVuamRrMTYtYm9vdHN0cmFwL3RlbXBsYXRlIHwgIDIgKy0KIHNyY3BrZ3Mvb3BlbmpkazE3L3Rl bXBsYXRlICAgICAgICAgICB8ICAyICstCiA2IGZpbGVzIGNoYW5nZWQsIDEwIGluc2VydGlvbnMo KyksIDExIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3Rz dHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC90ZW1wbGF0ZQppbmRl eCAzMWFlODQxNWIxNTEuLjgxM2E2N2FjNTBhMyAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuamRr MTItYm9vdHN0cmFwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC90 ZW1wbGF0ZQpAQCAtNzMsNyArNzMsNyBAQCBwb3N0X3BhdGNoKCkgewogCWlmIFsgIiRYQlBTX1RB UkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCiAJCWZvciBmIGluICIke0ZJTEVTRElSfSIvbXVz bF9wYXRjaGVzLyoucGF0Y2g7IGRvCiAJCQltc2dfbm9ybWFsICJBcHBseWluZyAke2YjJEZJTEVT RElSL31cbiIKLQkJCXBhdGNoIC1OcDEgLWkgIiRmIgorCQkJcGF0Y2ggLWxOcDEgLWkgIiRmIgog CQlkb25lCiAJZmkKIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90 ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90ZW1wbGF0ZQppbmRleCAwZWNh ODY4NDI4NDIuLjhjNmFjN2Q5Zjk0YSAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuamRrMTMtYm9v dHN0cmFwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90ZW1wbGF0 ZQpAQCAtMSwxMSArMSwxMCBAQAogIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3BlbmpkazEzLWJvb3Rz dHJhcCcKIF9qYXZhX3Zlcj0xMwogX2phdmFfbWluX3Zlcj0wCi1famF2YV9zZWNfdmVyPTUKLV9q YXZhX3BhdGNoX3Zlcj0xCi1famRrX3VwZGF0ZT0xCitfamF2YV9zZWNfdmVyPTQKK19qZGtfdXBk YXRlPTgKIF9qZGtfaG9tZT0idXNyL2xpYi9qdm0vb3BlbmpkayR7X2phdmFfdmVyfSIKLV9iYXNl X3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9LiR7X2phdmFfc2VjX3Zlcn0u JHtfamF2YV9wYXRjaF92ZXJ9IgorX2Jhc2VfdmVyc2lvbj0iJHtfamF2YV92ZXJ9LiR7X2phdmFf bWluX3Zlcn0uJHtfamF2YV9zZWNfdmVyfSIKIAogcGtnbmFtZT1vcGVuamRrMTMtYm9vdHN0cmFw CiB2ZXJzaW9uPSIke19iYXNlX3ZlcnNpb259KyR7X2pka191cGRhdGV9IgpAQCAtNDEsNyArNDAs NyBAQCBtYWludGFpbmVyPSJjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+IgogbGljZW5zZT0iR1BM LTIuMC1vbmx5IFdJVEggQ2xhc3NwYXRoLWV4Y2VwdGlvbi0yLjAiCiBob21lcGFnZT0iaHR0cHM6 Ly9vcGVuamRrLmphdmEubmV0LyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9oZy5vcGVuamRrLmphdmEu bmV0L2pkay11cGRhdGVzL2pkayR7X2phdmFfdmVyfXUvYXJjaGl2ZS9qZGstJHt2ZXJzaW9ufS50 YXIuZ3oiCi1jaGVja3N1bT1jOGZmNmNlZGE3MWVjNzVhZWVkYTZkMDM3MjA1ZjYyZmI1YTVmNGM1 OWE1NzI0MDgyMDFiNGJlOWYwMGJkYTAzCitjaGVja3N1bT01NjgzNjM4ZDU1NzFhZTFkOGQzMTM5 Y2U3ZmRjM2RiMjY4MTFmNTkyZDRmNWEwMjlmMWU2NmNlY2Q4NjY2MjQ1CiBsaWIzMmRpc2FibGVk PXllcwogbm9jcm9zcz15ZXMKIApAQCAtNzMsNyArNzIsNyBAQCBwb3N0X3BhdGNoKCkgewogCWlm IFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCiAJCWZvciBmIGluICIke0ZJ TEVTRElSfSIvbXVzbF9wYXRjaGVzLyoucGF0Y2g7IGRvCiAJCQltc2dfbm9ybWFsICJBcHBseWlu ZyAke2YjJEZJTEVTRElSL31cbiIKLQkJCXBhdGNoIC1OcDEgLWkgIiRmIgorCQkJcGF0Y2ggLWxO cDEgLWkgIiRmIgogCQlkb25lCiAJZmkKIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE0 LWJvb3RzdHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC90ZW1wbGF0 ZQppbmRleCAyNmQ1MGY4NzgyMGYuLjAxM2ZiN2YxOWEwNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9v cGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3Rz dHJhcC90ZW1wbGF0ZQpAQCAtNzEsNyArNzEsNyBAQCBwb3N0X3BhdGNoKCkgewogCWlmIFsgIiRY QlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCiAJCWZvciBmIGluICIke0ZJTEVTRElS fSIvbXVzbF9wYXRjaGVzLyoucGF0Y2g7IGRvCiAJCQltc2dfbm9ybWFsICJBcHBseWluZyAke2Yj JEZJTEVTRElSL31cbiIKLQkJCXBhdGNoIC1OcDEgLWkgIiRmIgorCQkJcGF0Y2ggLWxOcDEgLWkg IiRmIgogCQlkb25lCiAJZmkKIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3Rz dHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC90ZW1wbGF0ZQppbmRl eCA4ZWExOWFmOTkyZmQuLjVjZTBkMzQ5ZjM1ZSAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuamRr MTUtYm9vdHN0cmFwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC90 ZW1wbGF0ZQpAQCAtNzEsNyArNzEsNyBAQCBwb3N0X3BhdGNoKCkgewogCWlmIFsgIiRYQlBTX1RB UkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCiAJCWZvciBmIGluICIke0ZJTEVTRElSfSIvbXVz bF9wYXRjaGVzLyoucGF0Y2g7IGRvCiAJCQltc2dfbm9ybWFsICJBcHBseWluZyAke2YjJEZJTEVT RElSL31cbiIKLQkJCXBhdGNoIC1OcDEgLWkgIiRmIgorCQkJcGF0Y2ggLWxOcDEgLWkgIiRmIgog CQlkb25lCiAJZmkKIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90 ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90ZW1wbGF0ZQppbmRleCA2YmRl ZjZmOTYxMGIuLmUyODA4YTU0ZDFkNCAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuamRrMTYtYm9v dHN0cmFwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90ZW1wbGF0 ZQpAQCAtNzEsNyArNzEsNyBAQCBwb3N0X3BhdGNoKCkgewogCWlmIFsgIiRYQlBTX1RBUkdFVF9M SUJDIiA9ICJtdXNsIiBdOyB0aGVuCiAJCWZvciBmIGluICIke0ZJTEVTRElSfSIvbXVzbF9wYXRj aGVzLyoucGF0Y2g7IGRvCiAJCQltc2dfbm9ybWFsICJBcHBseWluZyAke2YjJEZJTEVTRElSL31c biIKLQkJCXBhdGNoIC1OcDEgLWkgIiRmIgorCQkJcGF0Y2ggLWxOcDEgLWkgIiRmIgogCQlkb25l CiAJZmkKIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE3L3RlbXBsYXRlIGIvc3JjcGtn cy9vcGVuamRrMTcvdGVtcGxhdGUKaW5kZXggMWQ1YmNhNTI5ODMyLi4zMDkzZjcxYWVkNTYgMTAw NjQ0Ci0tLSBhL3NyY3BrZ3Mvb3BlbmpkazE3L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3Blbmpk azE3L3RlbXBsYXRlCkBAIC0xMjcsNyArMTI3LDcgQEAgcG9zdF9wYXRjaCgpIHsKIAlpZiBbICIk WEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgogCQlmb3IgZiBpbiAiJHtGSUxFU0RJ Un0iL211c2xfcGF0Y2hlcy8qLnBhdGNoOyBkbwogCQkJbXNnX25vcm1hbCAiQXBwbHlpbmcgJHtm IyRGSUxFU0RJUi99XG4iCi0JCQlwYXRjaCAtTnAxIC1pICIkZiIKKwkJCXBhdGNoIC1sTnAxIC1p ICIkZiIKIAkJZG9uZQogCWZpCiB9CgpGcm9tIDkyZWFjZTFiMDJiMGNiN2UzZDU0ZTE2MDg5M2Zi ZjU3NTFmN2Y3M2UgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNsYXNzYWJieWFtcCA8 ZGV2QGtiNi5lZT4KRGF0ZTogVGh1LCAxMyBKYW4gMjAyMiAyMTo1OToyMSAtMDUwMApTdWJqZWN0 OiBbUEFUQ0ggMDkvMTFdIG9wZW5qZGsxNzogVEVNUAoKLS0tCiBzcmNwa2dzL29wZW5qZGsxMy1i b290c3RyYXAvdGVtcGxhdGUgICAgICAgICAgfCAgIDQgKy0KIHNyY3BrZ3Mvb3BlbmpkazE0LWJv b3RzdHJhcC90ZW1wbGF0ZSAgICAgICAgICB8ICAgNCArLQogLi4uL2ZpbGVzL211c2xfcGF0Y2hl cy9idWlsZC5wYXRjaCAgICAgICAgICAgIHwgIDUzICstLS0tCiBzcmNwa2dzL29wZW5qZGsxNS1i b290c3RyYXAvdGVtcGxhdGUgICAgICAgICAgfCAgIDQgKy0KIC4uLi9maWxlcy9tdXNsX3BhdGNo ZXMvYWFyY2g2NC5wYXRjaCAgICAgICAgICB8ICAxMCAtCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVz L2J1aWxkLnBhdGNoICAgICAgICAgICAgfCAyMTIgKy0tLS0tLS0tLS0tLS0tLS0tCiBzcmNwa2dz L29wZW5qZGsxNi1ib290c3RyYXAvdGVtcGxhdGUgICAgICAgICAgfCAgIDQgKy0KIC4uLi9maWxl cy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCAgICAgICAgICB8ICAxMCAtCiAuLi4vb3Blbmpk azE3L2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCAgfCAyMTIgKy0tLS0tLS0tLS0tLS0t LS0tCiBzcmNwa2dzL29wZW5qZGsxNy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAgIDYg Ky0KIDEwIGZpbGVzIGNoYW5nZWQsIDI4IGluc2VydGlvbnMoKyksIDQ5MSBkZWxldGlvbnMoLSkK IGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5q ZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAoKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3Rz dHJhcC90ZW1wbGF0ZQppbmRleCA4YzZhYzdkOWY5NGEuLjMyYWNkMzJiYTJlMSAxMDA2NDQKLS0t IGEvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3Bl bmpkazEzLWJvb3RzdHJhcC90ZW1wbGF0ZQpAQCAtMjAsOCArMjAsOCBAQCBjb25maWd1cmVfYXJn cz0iLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycwogIC0td2l0aC1saWJwbmc9c3lzdGVtCiAg LS13aXRoLWxjbXM9c3lzdGVtCiAgLS13aXRoLWp0cmVnPW5vCi0gLS13aXRoLXZlcnNpb24tYnVp bGQ9JF9qYXZhX3ZlcgotIC0td2l0aC1qb2JzPSRYQlBTX09SSUdfTUFLRUpPQlMKKyAtLXdpdGgt dmVyc2lvbi1idWlsZD0ke19qYXZhX3Zlcn0KKyAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19NQUtF Sk9CU30KICAtLXdpdGgtdmVuZG9yLW5hbWU9Vm9pZAogIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBz Oi8vdm9pZGxpbnV4Lm9yZy8KICAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIu Y29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mv b3BlbmpkazE0LWJvb3RzdHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJh cC90ZW1wbGF0ZQppbmRleCAwMTNmYjdmMTlhMDQuLjI0ZTQzMTVjN2VhZSAxMDA2NDQKLS0tIGEv c3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3Blbmpk azE0LWJvb3RzdHJhcC90ZW1wbGF0ZQpAQCAtMjAsOCArMjAsOCBAQCBjb25maWd1cmVfYXJncz0i LS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycwogIC0td2l0aC1saWJwbmc9c3lzdGVtCiAgLS13 aXRoLWxjbXM9c3lzdGVtCiAgLS13aXRoLWp0cmVnPW5vCi0gLS13aXRoLXZlcnNpb24tYnVpbGQ9 JF9qYXZhX3ZlcgotIC0td2l0aC1qb2JzPSRYQlBTX09SSUdfTUFLRUpPQlMKKyAtLXdpdGgtdmVy c2lvbi1idWlsZD0ke19qYXZhX3Zlcn0KKyAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19NQUtFSk9C U30KICAtLXdpdGgtdmVuZG9yLW5hbWU9Vm9pZAogIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8v dm9pZGxpbnV4Lm9yZy8KICAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Bl bmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dz L29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCmluZGV4 IDYwZGZkZWMzMGFiYy4uNTAzZGY0NjliNTg0IDEwMDY0NAotLS0gYS9zcmNwa2dzL29wZW5qZGsx NS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCisrKyBiL3NyY3BrZ3Mv b3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTE4 LDggKzE4LDggQEAKICAgICAgIwogIAogICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0tLS0gYS9t YWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtawotKysrIGIvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5n bWsKKy0tLSBhL21ha2UvbW9kdWxlcy9qYXZhLmJhc2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCisr KysgYi9tYWtlL21vZHVsZXMvamF2YS5iYXNlL2xpYi9Db3JlTGlicmFyaWVzLmdtawogQEAgLTE5 MCw2ICsxOTAsNyBAQCBpZmVxICgkKGNhbGwgaXNUYXJnZXRPcywgd2luZG93cyksIHRydWUpCiAg ZW5kaWYKICAKQEAgLTEyNywxMyArMTI3LDEzIEBACiAgICAgIGFzc2VydCgqcHJldl9wdHIgPT0g Y3VyLCAianVzdCBjaGVja2luZyIpOwogLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS9h YnN0cmFjdF92bV92ZXJzaW9uLmNwcAogKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS9h YnN0cmFjdF92bV92ZXJzaW9uLmNwcAotQEAgLTI3NCw3ICsyNzQsNyBAQCBjb25zdCBjaGFyKiBB YnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9pbmZvX3N0cmluZygpIHsKK0BAIC0yNjIs NyArMjYyLDcgQEAgY29uc3QgY2hhciogQWJzdHJhY3RfVk1fVmVyc2lvbjo6aW50ZXJuYWxfdm1f aW5mb19zdHJpbmcoKSB7CiAgICAjZW5kaWYKICAKICAgICNkZWZpbmUgSU5URVJOQUxfVkVSU0lP Tl9TVUZGSVggVk1fUkVMRUFTRSAiKSIgXAogLSAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBG TE9BVF9BUkNIX1NUUiBcCiArICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hf U1RSIExJQkMgXAotICAgICAgICAgICIgSlJFICgiIFZFUlNJT05fU1RSSU5HICIpLCBidWlsdCBv biAiIF9fREFURV9fICIgIiBfX1RJTUVfXyBcCisgICAgICAgICAgIiBKUkUgKCIgVkVSU0lPTl9T VFJJTkcgIiksIGJ1aWx0IG9uICIgSE9UU1BPVF9CVUlMRF9USU1FIFwKICAgICAgICAgICAiIGJ5 ICIgWFNUUihIT1RTUE9UX0JVSUxEX1VTRVIpICIgd2l0aCAiIEhPVFNQT1RfQlVJTERfQ09NUElM RVIKICAKIC0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9u c19nY2MuaHBwCkBAIC0xOTQsOSArMTk0LDkgQEAKICAjZGVmaW5lIElTTkFORChkKSBpc25hbihk KQogICNlbGlmIGRlZmluZWQoX0FJWCkKICAjaW5jbHVkZSA8bWF0aC5oPgotLS0tIGEvc3JjL2ph dmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKLSsrKyBiL3NyYy9q YXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCi1AQCAtMjM2LDYg KzIzNiwzOSBAQCBSZXF1aXJlc1NldGVudihjb25zdCBjaGFyICpqdm1wYXRoKSB7CistLS0gYS9z cmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kLmMKKysrKyBiL3NyYy9qYXZh LmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWQuYworQEAgLTIzMCw2ICsyMzAsMzkgQEAg UmVxdWlyZXNTZXRlbnYoY29uc3QgY2hhciAqanZtcGF0aCkgewogICAgICBjaGFyICpkbWxscCA9 IE5VTEw7CiAgICAgIGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBwb2ludGVyICovCiAgCkBAIC0yNDcs NDUgKzI0Nyw2IEBACiAgI2VsaWYgZGVmaW5lZChfQUlYKQogICAgI2luY2x1ZGUgPHB0aHJlYWQu aD4KICAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvYWl4X2Nsb3NlLmMgKi8KLS0tLSBhL3NyYy9q YXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCi0rKysg Yi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQu YwotQEAgLTI3LDkgKzI3LDYgQEAKLSAjaW5jbHVkZSA8WDExL1h1dGlsLmg+Ci0gI2luY2x1ZGUg PFgxMS9Yb3MuaD4KLSAjaW5jbHVkZSA8WDExL1hhdG9tLmg+Ci0tI2lmZGVmIF9fbGludXhfXwot LSNpbmNsdWRlIDxleGVjaW5mby5oPgotLSNlbmRpZgotIAotICNpbmNsdWRlIDxqdm0uaD4KLSAj aW5jbHVkZSA8am5pLmg+Ci1AQCAtNzgwLDI2ICs3NzcsNiBAQCBKTklFWFBPUlQganN0cmluZyBK TklDQUxMIEphdmFfc3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52Ci0gICAgIHJldHVybiByZXQ7 Ci0gfQotIAotLSNpZmRlZiBfX2xpbnV4X18KLS12b2lkIHByaW50X3N0YWNrKHZvaWQpCi0tewot LSAgdm9pZCAqYXJyYXlbMTBdOwotLSAgc2l6ZV90IHNpemU7Ci0tICBjaGFyICoqc3RyaW5nczsK LS0gIHNpemVfdCBpOwotLQotLSAgc2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEwKTsKLS0gIHN0 cmluZ3MgPSBiYWNrdHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUpOwotLQotLSAgZnByaW50ZiAo c3RkZXJyLCAiT2J0YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOwotLQotLSAgZm9y IChpID0gMDsgaSA8IHNpemU7IGkrKykKLS0gICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXG4iLCBz dHJpbmdzW2ldKTsKLS0KLS0gIGZyZWUgKHN0cmluZ3MpOwotLX0KLS0jZW5kaWYKLS0KLSBXaW5k b3cgZ2V0X3hhd3Rfcm9vdF9zaGVsbChKTklFbnYgKmVudikgewotICAgc3RhdGljIGpjbGFzcyBj bGFzc1hSb290V2luZG93ID0gTlVMTDsKLSAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0aG9kR2V0WFJv b3RXaW5kb3cgPSBOVUxMOwogLS0tIGEvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9s aWJqZHdwL3V0aWwuaAogKysrIGIvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJq ZHdwL3V0aWwuaAogQEAgLTM1LDE1ICszNSwxNSBAQApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVu amRrMTUtYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL3Rl bXBsYXRlCmluZGV4IDVjZTBkMzQ5ZjM1ZS4uNDk1ZGVkNzBiN2M2IDEwMDY0NAotLS0gYS9zcmNw a2dzL29wZW5qZGsxNS1ib290c3RyYXAvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vcGVuamRrMTUt Ym9vdHN0cmFwL3RlbXBsYXRlCkBAIC0yMCw4ICsyMCw4IEBAIGNvbmZpZ3VyZV9hcmdzPSItLWRp c2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCiAgLS13aXRoLWxpYnBuZz1zeXN0ZW0KICAtLXdpdGgt bGNtcz1zeXN0ZW0KICAtLXdpdGgtanRyZWc9bm8KLSAtLXdpdGgtdmVyc2lvbi1idWlsZD0kX2ph dmFfdmVyCi0gLS13aXRoLWpvYnM9JFhCUFNfT1JJR19NQUtFSk9CUworIC0td2l0aC12ZXJzaW9u LWJ1aWxkPSR7X2phdmFfdmVyfQorIC0td2l0aC1qb2JzPSR7WEJQU19PUklHX01BS0VKT0JTfQog IC0td2l0aC12ZW5kb3ItbmFtZT1Wb2lkCiAgLS13aXRoLXZlbmRvci11cmw9aHR0cHM6Ly92b2lk bGludXgub3JnLwogIC0td2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dpdGh1Yi5jb20vdm9p ZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRr MTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoIGIvc3JjcGtncy9v cGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYTZjNWQ0ZDJiZTIuLjAwMDAwMDAwMDAwMAotLS0g YS9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQu cGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSwxMCArMCwwIEBACi0tLS0gYS9zcmMvaG90c3BvdC9v c19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAotKysrIGIvc3JjL2hvdHNw b3Qvb3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKLUBAIC03NCw3ICs3 NCw2IEBACi0gIyBpbmNsdWRlIDxwd2QuaD4KLSAjIGluY2x1ZGUgPHBvbGwuaD4KLSAjIGluY2x1 ZGUgPHVjb250ZXh0Lmg+Ci0tIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgotIAotICNkZWZpbmUg UkVHX0ZQIDI5Ci0gI2RlZmluZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3Blbmpk azE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggYi9zcmNwa2dzL29w ZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCmluZGV4IDYw ZGZkZWMzMGFiYy4uMTE1OGJhYmNkOTZkIDEwMDY0NAotLS0gYS9zcmNwa2dzL29wZW5qZGsxNi1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCisrKyBiL3NyY3BrZ3Mvb3Bl bmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTEsMTMg KzEsMyBAQAotLS0tIGEvbWFrZS9SZWxlYXNlRmlsZS5nbWsKLSsrKyBiL21ha2UvUmVsZWFzZUZp bGUuZ21rCi1AQCAtNTMsNiArNTMsNyBAQCBkZWZpbmUgY3JlYXRlLWluZm8tZmlsZQotICAgJChj YWxsIGluZm8tZmlsZS1pdGVtLCAiSkFWQV9WRVJTSU9OX0RBVEUiLCAiJChWRVJTSU9OX0RBVEUp IikKLSAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIk9TX05BTUUiLCAiJChSRUxFQVNFX0ZJTEVf T1NfTkFNRSkiKQotICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfQVJDSCIsICIkKFJFTEVB U0VfRklMRV9PU19BUkNIKSIpCi0rICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJMSUJDIiwgIm11 c2wiKQotIGVuZGVmCi0gCi0gIyBQYXJhbSAxIC0gVGhlIGZpbGUgY29udGFpbmluZyB0aGUgTU9E VUxFUyBsaXN0CiAtLS0gYS9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCiArKysgYi9t YWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCiBAQCAtNzMsNiArNzMsNyBAQCBDRkxBR1Nf Vk1fVkVSU0lPTiA6PSBcCkBAIC0xOCw4ICs4LDggQEAKICAgICAgIwogIAogICMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCi0tLS0gYS9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtawotKysrIGIvbWFr ZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKy0tLSBhL21ha2UvbW9kdWxlcy9qYXZhLmJhc2UvbGli L0NvcmVMaWJyYXJpZXMuZ21rCisrKysgYi9tYWtlL21vZHVsZXMvamF2YS5iYXNlL2xpYi9Db3Jl TGlicmFyaWVzLmdtawogQEAgLTE5MCw2ICsxOTAsNyBAQCBpZmVxICgkKGNhbGwgaXNUYXJnZXRP cywgd2luZG93cyksIHRydWUpCiAgZW5kaWYKICAKQEAgLTMwLDM1ICsyMCw2IEBACiAgICBMSUJK TElfRVhUUkFfRklMRVMgKz0gXAogLS0tIGEvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXgu Y3BwCiArKysgYi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKLUBAIC0xMDIsNyAr MTAyLDYgQEAKLSAjIGluY2x1ZGUgPHN0cmluZy5oPgotICMgaW5jbHVkZSA8c3lzY2FsbC5oPgot ICMgaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KLS0jIGluY2x1ZGUgPGdudS9saWJjLXZlcnNpb24u aD4KLSAjIGluY2x1ZGUgPHN5cy9pcGMuaD4KLSAjIGluY2x1ZGUgPHN5cy9zaG0uaD4KLSAjIGlu Y2x1ZGUgPGxpbmsuaD4KLUBAIC01OTcsNiArNTk2LDEyIEBAIHZvaWQgb3M6OkxpbnV4Ojpob3Rz cG90X3NpZ21hc2soVGhyZWFkKiB0aHJlYWQpIHsKLSAvLyBkZXRlY3RpbmcgcHRocmVhZCBsaWJy YXJ5Ci0gCi0gdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKLSsjaWYgIWRlZmlu ZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQotKyAgLy8gSGFyZCBjb2RlIEFs cGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRpbmdzCi0rICAvLyBzZ246 IE5QVEwgaXMgY29ycmVjdCwgZG9uJ3Qga25vdyBhYm91dCBnbGliYyAyLjksIGFscGluZSdzIHRo aW5nPwotKyAgb3M6OkxpbnV4OjpzZXRfZ2xpYmNfdmVyc2lvbigiZ2xpYmMgMi45Iik7Ci0rICBv czo6TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oIk5QVEwiKTsKLSsjZWxzZQotICAgLy8g U2F2ZSBnbGliYyBhbmQgcHRocmVhZCB2ZXJzaW9uIHN0cmluZ3MuCi0gI2lmICFkZWZpbmVkKF9D U19HTlVfTElCQ19WRVJTSU9OKSB8fCBcCi0gICAgICFkZWZpbmVkKF9DU19HTlVfTElCUFRIUkVB RF9WRVJTSU9OKQotQEAgLTYxNCw2ICs2MTksNyBAQCB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVh ZF9pbml0KCkgewotICAgc3RyID0gKGNoYXIgKiltYWxsb2MobiwgbXRJbnRlcm5hbCk7Ci0gICBj b25mc3RyKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBzdHIsIG4pOwotICAgb3M6OkxpbnV4 OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKHN0cik7Ci0rI2VuZGlmCi0gfQotIAotIC8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vCiBAQCAtMzExNywyMCArMzEyMywzNiBAQCB2b2lkIG9zOjpMaW51eDo6c2No ZWRfZ2V0Y3B1X2luaXQoKSB7CiAgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX3dhcm4o aW50IG51bWJlciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CiAgZXh0ZXJuICJDIiBKTklFWFBPUlQg dm9pZCBudW1hX2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KQEAgLTEyNSw0NyArODYsNiBAQAogICAg U2NyYXRjaEJsb2NrICAqY3VyID0gKnByZXZfcHRyOwogICAgd2hpbGUgKGN1cikgewogICAgICBh c3NlcnQoKnByZXZfcHRyID09IGN1ciwgImp1c3QgY2hlY2tpbmciKTsKLS0tLSBhL3NyYy9ob3Rz cG90L3NoYXJlL3J1bnRpbWUvYWJzdHJhY3Rfdm1fdmVyc2lvbi5jcHAKLSsrKyBiL3NyYy9ob3Rz cG90L3NoYXJlL3J1bnRpbWUvYWJzdHJhY3Rfdm1fdmVyc2lvbi5jcHAKLUBAIC0yNzQsNyArMjc0 LDcgQEAgY29uc3QgY2hhciogQWJzdHJhY3RfVk1fVmVyc2lvbjo6aW50ZXJuYWxfdm1faW5mb19z dHJpbmcoKSB7Ci0gICAjZW5kaWYKLSAKLSAgICNkZWZpbmUgSU5URVJOQUxfVkVSU0lPTl9TVUZG SVggVk1fUkVMRUFTRSAiKSIgXAotLSAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9B UkNIX1NUUiBcCi0rICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIExJ QkMgXAotICAgICAgICAgICIgSlJFICgiIFZFUlNJT05fU1RSSU5HICIpLCBidWlsdCBvbiAiIF9f REFURV9fICIgIiBfX1RJTUVfXyBcCi0gICAgICAgICAgIiBieSAiIFhTVFIoSE9UU1BPVF9CVUlM RF9VU0VSKSAiIHdpdGggIiBIT1RTUE9UX0JVSUxEX0NPTVBJTEVSCi0gCi0tLS0gYS9zcmMvaG90 c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAotKysrIGIvc3Jj L2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKLUBAIC0y MDQsNyArMjA0LDcgQEAgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25h bmQoZik7IH0KLSAjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKLSBpbmxpbmUgaW50IGdfaXNuYW4o ZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9Ci0gI2VsaWYgZGVmaW5lZChMSU5VWCkgfHwg ZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKLS1pbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsg cmV0dXJuIGlzbmFuZihmKTsgfQotK2lubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1 cm4gaXNuYW4oZik7IH0KLSBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlz bmFuKGYpOyB9Ci0gI2Vsc2UKLSAjZXJyb3IgIm1pc3NpbmcgcGxhdGZvcm0tc3BlY2lmaWMgZGVm aW5pdGlvbiBoZXJlIgotLS0tIGEvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xp bnV4X2Nsb3NlLmMKLSsrKyBiL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51 eF9jbG9zZS5jCi1AQCAtNjAsNyArNjAsNyBAQCB0eXBlZGVmIHN0cnVjdCB7Ci0gLyoKLSAgKiBT aWduYWwgdG8gdW5ibG9jayB0aHJlYWQKLSAgKi8KLS1zdGF0aWMgaW50IHNpZ1dha2V1cCA9IChf X1NJR1JUTUFYIC0gMik7Ci0rc3RhdGljIGludCBzaWdXYWtldXA7Ci0gCi0gLyoKLSAgKiBmZFRh YmxlIGhvbGRzIG9uZSBlbnRyeSBwZXIgZmlsZSBkZXNjcmlwdG9yLCB1cCB0byBhIGNlcnRhaW4K LUBAIC0xNDksNiArMTQ5LDcgQEAgc3RhdGljIHZvaWQgX19hdHRyaWJ1dGUoKGNvbnN0cnVjdG9y KSkgaW5pdCgpIHsKLSAgICAgLyoKLSAgICAgICogU2V0dXAgdGhlIHNpZ25hbCBoYW5kbGVyCi0g ICAgICAqLwotKyAgICBzaWdXYWtldXAgPSBTSUdSVE1BWCAtIDI7Ci0gICAgIHNhLnNhX2hhbmRs ZXIgPSBzaWdfd2FrZXVwOwotICAgICBzYS5zYV9mbGFncyAgID0gMDsKLSAgICAgc2lnZW1wdHlz ZXQoJnNhLnNhX21hc2spOwogLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZh L2NoaWxkcHJvYy5jCiArKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hp bGRwcm9jLmMKIEBAIC0yMzUsNyArMjM1LDEzIEBAIEpES19leGVjdnBlKGludCBtb2RlLCBjb25z dCBjaGFyICpmaWxlLApAQCAtMTgzLDE5ICsxMDMsOCBAQAogICAgICB9CiAgCiAgICAgIGlmICgq ZmlsZSA9PSAnXDAnKSB7Ci0tLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEv amRrX3V0aWxfbWQuaAotKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pk a191dGlsX21kLmgKLUBAIC0zNyw3ICszNyw3IEBACi0gI2RlZmluZSBJU05BTkQoZCkgaXNuYW4o ZCkKLSAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkK LSAjaW5jbHVkZSA8bWF0aC5oPgotLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQotKyNkZWZp bmUgSVNOQU5GKGYpIGlzbmFuKGYpCi0gI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKLSAjZWxp ZiBkZWZpbmVkKF9BSVgpCi0gI2luY2x1ZGUgPG1hdGguaD4KLS0tLSBhL3NyYy9qYXZhLmJhc2Uv dW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCi0rKysgYi9zcmMvamF2YS5iYXNl L3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworLS0tIGEvc3JjL2phdmEuYmFz ZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgv bmF0aXZlL2xpYmpsaS9qYXZhX21kLmMKIEBAIC0yMzYsNiArMjM2LDM5IEBAIFJlcXVpcmVzU2V0 ZW52KGNvbnN0IGNoYXIgKmp2bXBhdGgpIHsKICAgICAgY2hhciAqZG1sbHAgPSBOVUxMOwogICAg ICBjaGFyICpwOyAvKiBhIHV0aWxpdHkgcG9pbnRlciAqLwpAQCAtMjM2LDU2ICsxNDUsNiBAQAog ICNpZmRlZiBBSVgKICAgICAgLyogV2UgYWx3YXlzIGhhdmUgdG8gc2V0IHRoZSBMSUJQQVRIIG9u IEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3VwcG9ydCAkT1JJR0lOLiAqLwogICAgICByZXR1cm4g Sk5JX1RSVUU7Ci0tLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRp dmVUaHJlYWQuYwotKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0 aXZlVGhyZWFkLmMKLUBAIC0zNiw3ICszNiw3IEBACi0gI2lmZGVmIF9fbGludXhfXwotICAgI2lu Y2x1ZGUgPHB0aHJlYWQuaD4KLSAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvbGludXhfY2xvc2Uu YyAqLwotLSAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFMIChfX1NJR1JUTUFYIC0gMikKLSsgICNk ZWZpbmUgSU5URVJSVVBUX1NJR05BTCAoU0lHUlRNQVggLSAyKQotICNlbGlmIGRlZmluZWQoX0FJ WCkKLSAgICNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0gICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2Fp eF9jbG9zZS5jICovCi0tLS0gYS9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94 YXd0L3hhd3QvWFRvb2xraXQuYwotKysrIGIvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9s aWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMKLUBAIC0yNyw5ICsyNyw2IEBACi0gI2luY2x1ZGUg PFgxMS9YdXRpbC5oPgotICNpbmNsdWRlIDxYMTEvWG9zLmg+Ci0gI2luY2x1ZGUgPFgxMS9YYXRv bS5oPgotLSNpZmRlZiBfX2xpbnV4X18KLS0jaW5jbHVkZSA8ZXhlY2luZm8uaD4KLS0jZW5kaWYK LSAKLSAjaW5jbHVkZSA8anZtLmg+Ci0gI2luY2x1ZGUgPGpuaS5oPgotQEAgLTc4MCwyNiArNzc3 LDYgQEAgSk5JRVhQT1JUIGpzdHJpbmcgSk5JQ0FMTCBKYXZhX3N1bl9hd3RfWDExX1hUb29sa2l0 X2dldEVudgotICAgICByZXR1cm4gcmV0OwotIH0KLSAKLS0jaWZkZWYgX19saW51eF9fCi0tdm9p ZCBwcmludF9zdGFjayh2b2lkKQotLXsKLS0gIHZvaWQgKmFycmF5WzEwXTsKLS0gIHNpemVfdCBz aXplOwotLSAgY2hhciAqKnN0cmluZ3M7Ci0tICBzaXplX3QgaTsKLS0KLS0gIHNpemUgPSBiYWNr dHJhY2UgKGFycmF5LCAxMCk7Ci0tICBzdHJpbmdzID0gYmFja3RyYWNlX3N5bWJvbHMgKGFycmF5 LCBzaXplKTsKLS0KLS0gIGZwcmludGYgKHN0ZGVyciwgIk9idGFpbmVkICV6ZCBzdGFjayBmcmFt ZXMuXG4iLCBzaXplKTsKLS0KLS0gIGZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspCi0tICAgICBm cHJpbnRmIChzdGRlcnIsICIlc1xuIiwgc3RyaW5nc1tpXSk7Ci0tCi0tICBmcmVlIChzdHJpbmdz KTsKLS19Ci0tI2VuZGlmCi0tCi0gV2luZG93IGdldF94YXd0X3Jvb3Rfc2hlbGwoSk5JRW52ICpl bnYpIHsKLSAgIHN0YXRpYyBqY2xhc3MgY2xhc3NYUm9vdFdpbmRvdyA9IE5VTEw7Ci0gICBzdGF0 aWMgam1ldGhvZElEIG1ldGhvZEdldFhSb290V2luZG93ID0gTlVMTDsKIC0tLSBhL3NyYy9qZGsu amR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKICsrKyBiL3NyYy9qZGsuamR3 cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKIEBAIC0zNSwxNSArMzUsMTUgQEAK QEAgLTMwOCw2NSArMTY3LDQgQEAKICsgICAgI2RlZmluZSBzdHJkdXAgZG9fbm90X3VzZV90aGlz X2ludGVyZmFjZV9zdHJkdXAKICAjZW5kaWYKICAKLSAjaW5jbHVkZSAibG9nX21lc3NhZ2VzLmgi Ci0tLS0gYS90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52 b2tlLmMKLSsrKyBiL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9l eGVpbnZva2UuYwotQEAgLTMzLDYgKzMzLDcgQEAKLSAKLSAjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0g I2luY2x1ZGUgPGpuaS5oPgotKyNpbmNsdWRlIDxqdm0uaD4KLSAjaW5jbHVkZSA8YWxsb2NhLmg+ Ci0gI2luY2x1ZGUgPHNpZ25hbC5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLUBAIC05MSw2ICs5 MiwyMCBAQCB2b2lkIHNldF9zaWduYWxfaGFuZGxlcigpIHsKLSAgIH0KLSB9Ci0gCi0raW50IGdl dF9qYXZhX3N0YWNrc2l6ZSAoKSB7Ci0rICBzaXplX3Qgc3RhY2tzaXplOwotKyAgcHRocmVhZF9h dHRyX3QgYXR0cjsKLSsgIEpESzFfMUluaXRBcmdzIGpka19hcmdzOwotKwotKyAgamRrX2FyZ3Mu dmVyc2lvbiA9IEpOSV9WRVJTSU9OXzFfMTsKLSsgIEpOSV9HZXREZWZhdWx0SmF2YVZNSW5pdEFy Z3MoJmpka19hcmdzKTsKLSsgIGlmIChqZGtfYXJncy5qYXZhU3RhY2tTaXplIDw9IDApIHsKLSsg ICAgZnByaW50ZihzdGRlcnIsICJUZXN0IEVSUk9SLiBDYW4ndCBnZXQgYSB2YWxpZCB2YWx1ZSBm b3IgdGhlIGRlZmF1bHQgc3RhY2tzaXplLlxuIik7Ci0rICAgIGV4aXQoNyk7Ci0rICB9Ci0rICBy ZXR1cm4gamRrX2FyZ3MuamF2YVN0YWNrU2l6ZTsKLSt9Ci0rCi0gdm9pZCAqcnVuX2phdmFfb3Zl cmZsb3cgKHZvaWQgKnApIHsKLSAgIEpOSUVudiAqZW52OwotICAgamNsYXNzIGNsYXNzX2lkOwot QEAgLTI1OCwxMyArMjczLDE5IEBAIGludCBtYWluIChpbnQgYXJnYywgY29uc3QgY2hhcioqIGFy Z3YpIHsKLSAgICAgZXhpdCg3KTsKLSAgIH0KLSAKLSsgIGludCBzdGFja19zaXplID0gZ2V0X2ph dmFfc3RhY2tzaXplKCk7Ci0gICBwdGhyZWFkX3QgdGhyOwotKyAgcHRocmVhZF9hdHRyX3QgdGhy ZWFkX2F0dHI7Ci0rCi0rICBwdGhyZWFkX2F0dHJfaW5pdCgmdGhyZWFkX2F0dHIpOwotKyAgcHRo cmVhZF9hdHRyX3NldHN0YWNrc2l6ZSgmdGhyZWFkX2F0dHIsIHN0YWNrX3NpemUpOwotIAotICAg aWYgKGFyZ2MgPiAxICYmIHN0cmNtcChhcmd2WzFdLCAidGVzdF9qYXZhX292ZXJmbG93IikgPT0g MCkgewotICAgICBwcmludGYoIlxuVGVzdGluZyBKQVZBX09WRVJGTE9XXG4iKTsKLSAKLSAgICAg cHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBvdGhlciB0aHJl YWRcbiIpOwotLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwgcnVuX2phdmFfb3ZlcmZs b3csIE5VTEwpOwotKwotKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRocmVhZF9hdHRyLCBy dW5famF2YV9vdmVyZmxvdywgTlVMTCk7Ci0gICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsK LSAKLSAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBp bml0aWFsIHRocmVhZFxuIik7Ci1AQCAtMjc3LDcgKzI5OCw3IEBAIGludCBtYWluIChpbnQgYXJn YywgY29uc3QgY2hhcioqIGFyZ3YpIHsKLSAgICAgcHJpbnRmKCJcblRlc3RpbmcgTkFUSVZFX09W RVJGTE9XXG4iKTsKLSAKLSAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVo YXZpb3VyIGZvciBvdGhlciB0aHJlYWRcbiIpOwotLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwg TlVMTCwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7Ci0rICAgIHB0aHJlYWRfY3JlYXRlICgm dGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwpOwotICAgICBwdGhy ZWFkX2pvaW4gKHRociwgTlVMTCk7Ci0gCi0gICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFy ZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0aHJlYWRcbiIpOworICNpbmNsdWRlICJsb2df bWVzc2FnZXMuaCIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNw a2dzL29wZW5qZGsxNi1ib290c3RyYXAvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxNi1ib290 c3RyYXAvdGVtcGxhdGUKaW5kZXggZTI4MDhhNTRkMWQ0Li5kMWJhMThkNTY4ODEgMTAwNjQ0Ci0t LSBhL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29w ZW5qZGsxNi1ib290c3RyYXAvdGVtcGxhdGUKQEAgLTE5LDggKzE5LDggQEAgY29uZmlndXJlX2Fy Z3M9Ii0tZGlzYWJsZS13YXJuaW5ncy1hcy1lcnJvcnMKICAtLXdpdGgtbGlicG5nPXN5c3RlbQog IC0td2l0aC1sY21zPXN5c3RlbQogIC0td2l0aC1qdHJlZz1ubwotIC0td2l0aC12ZXJzaW9uLWJ1 aWxkPSRfamF2YV92ZXIKLSAtLXdpdGgtam9icz0kWEJQU19PUklHX01BS0VKT0JTCisgLS13aXRo LXZlcnNpb24tYnVpbGQ9JHtfamF2YV92ZXJ9CisgLS13aXRoLWpvYnM9JHtYQlBTX09SSUdfTUFL RUpPQlN9CiAgLS13aXRoLXZlbmRvci1uYW1lPVZvaWQKICAtLXdpdGgtdmVuZG9yLXVybD1odHRw czovL3ZvaWRsaW51eC5vcmcvCiAgLS13aXRoLXZlbmRvci1idWctdXJsPWh0dHBzOi8vZ2l0aHVi LmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzCmRpZmYgLS1naXQgYS9zcmNwa2dz L29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCBiL3NyY3BrZ3Mvb3Bl bmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCBhYTZjNWQ0ZDJiZTIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL29w ZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAorKysgL2Rldi9udWxsCkBA IC0xLDEwICswLDAgQEAKLS0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0L29z X2xpbnV4X2FhcmNoNjQuY3BwCi0rKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2 NC9vc19saW51eF9hYXJjaDY0LmNwcAotQEAgLTc0LDcgKzc0LDYgQEAKLSAjIGluY2x1ZGUgPHB3 ZC5oPgotICMgaW5jbHVkZSA8cG9sbC5oPgotICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KLS0jIGlu Y2x1ZGUgPGZwdV9jb250cm9sLmg+Ci0gCi0gI2RlZmluZSBSRUdfRlAgMjkKLSAjZGVmaW5lIFJF R19MUiAzMApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVz L2J1aWxkLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxk LnBhdGNoCmluZGV4IDYwZGZkZWMzMGFiYy4uMTE1OGJhYmNkOTZkIDEwMDY0NAotLS0gYS9zcmNw a2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKKysrIGIvc3JjcGtn cy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0xLDEzICsxLDMg QEAKLS0tLSBhL21ha2UvUmVsZWFzZUZpbGUuZ21rCi0rKysgYi9tYWtlL1JlbGVhc2VGaWxlLmdt awotQEAgLTUzLDYgKzUzLDcgQEAgZGVmaW5lIGNyZWF0ZS1pbmZvLWZpbGUKLSAgICQoY2FsbCBp bmZvLWZpbGUtaXRlbSwgIkpBVkFfVkVSU0lPTl9EQVRFIiwgIiQoVkVSU0lPTl9EQVRFKSIpCi0g ICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19OQU1FIiwgIiQoUkVMRUFTRV9GSUxFX09TX05B TUUpIikKLSAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIk9TX0FSQ0giLCAiJChSRUxFQVNFX0ZJ TEVfT1NfQVJDSCkiKQotKyAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiTElCQyIsICJtdXNsIikK LSBlbmRlZgotIAotICMgUGFyYW0gMSAtIFRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIE1PRFVMRVMg bGlzdAogLS0tIGEvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtawogKysrIGIvbWFrZS9o b3RzcG90L2xpYi9Db21waWxlSnZtLmdtawogQEAgLTczLDYgKzczLDcgQEAgQ0ZMQUdTX1ZNX1ZF UlNJT04gOj0gXApAQCAtMTgsOCArOCw4IEBACiAgICAgICMKICAKICAjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwotLS0tIGEvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKLSsrKyBiL21ha2UvbGli L0NvcmVMaWJyYXJpZXMuZ21rCistLS0gYS9tYWtlL21vZHVsZXMvamF2YS5iYXNlL2xpYi9Db3Jl TGlicmFyaWVzLmdtaworKysrIGIvbWFrZS9tb2R1bGVzL2phdmEuYmFzZS9saWIvQ29yZUxpYnJh cmllcy5nbWsKIEBAIC0xOTAsNiArMTkwLDcgQEAgaWZlcSAoJChjYWxsIGlzVGFyZ2V0T3MsIHdp bmRvd3MpLCB0cnVlKQogIGVuZGlmCiAgCkBAIC0zMCwzNSArMjAsNiBAQAogICAgTElCSkxJX0VY VFJBX0ZJTEVTICs9IFwKIC0tLSBhL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAog KysrIGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCi1AQCAtMTAyLDcgKzEwMiw2 IEBACi0gIyBpbmNsdWRlIDxzdHJpbmcuaD4KLSAjIGluY2x1ZGUgPHN5c2NhbGwuaD4KLSAjIGlu Y2x1ZGUgPHN5cy9zeXNpbmZvLmg+Ci0tIyBpbmNsdWRlIDxnbnUvbGliYy12ZXJzaW9uLmg+Ci0g IyBpbmNsdWRlIDxzeXMvaXBjLmg+Ci0gIyBpbmNsdWRlIDxzeXMvc2htLmg+Ci0gIyBpbmNsdWRl IDxsaW5rLmg+Ci1AQCAtNTk3LDYgKzU5NiwxMiBAQCB2b2lkIG9zOjpMaW51eDo6aG90c3BvdF9z aWdtYXNrKFRocmVhZCogdGhyZWFkKSB7Ci0gLy8gZGV0ZWN0aW5nIHB0aHJlYWQgbGlicmFyeQot IAotIHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7Ci0rI2lmICFkZWZpbmVkKF9f R0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykKLSsgIC8vIEhhcmQgY29kZSBBbHBpbmUg TGludXggc3VwcG9ydGVkIG11c2wgY29tcGF0aWJsZSBzZXR0aW5ncwotKyAgLy8gc2duOiBOUFRM IGlzIGNvcnJlY3QsIGRvbid0IGtub3cgYWJvdXQgZ2xpYmMgMi45LCBhbHBpbmUncyB0aGluZz8K LSsgIG9zOjpMaW51eDo6c2V0X2dsaWJjX3ZlcnNpb24oImdsaWJjIDIuOSIpOwotKyAgb3M6Okxp bnV4OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKCJOUFRMIik7Ci0rI2Vsc2UKLSAgIC8vIFNhdmUg Z2xpYmMgYW5kIHB0aHJlYWQgdmVyc2lvbiBzdHJpbmdzLgotICNpZiAhZGVmaW5lZChfQ1NfR05V X0xJQkNfVkVSU0lPTikgfHwgXAotICAgICAhZGVmaW5lZChfQ1NfR05VX0xJQlBUSFJFQURfVkVS U0lPTikKLUBAIC02MTQsNiArNjE5LDcgQEAgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5p dCgpIHsKLSAgIHN0ciA9IChjaGFyICopbWFsbG9jKG4sIG10SW50ZXJuYWwpOwotICAgY29uZnN0 cihfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTiwgc3RyLCBuKTsKLSAgIG9zOjpMaW51eDo6c2V0 X2xpYnB0aHJlYWRfdmVyc2lvbihzdHIpOwotKyNlbmRpZgotIH0KLSAKLSAvLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLwogQEAgLTMxMTcsMjAgKzMxMjMsMzYgQEAgdm9pZCBvczo6TGludXg6OnNjaGVkX2dl dGNwdV9pbml0KCkgewogIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV93YXJuKGludCBu dW1iZXIsIGNoYXIgKndoZXJlLCAuLi4pIHsgfQogIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQg bnVtYV9lcnJvcihjaGFyICp3aGVyZSkgeyB9CkBAIC0xMjUsNDcgKzg2LDYgQEAKICAgIFNjcmF0 Y2hCbG9jayAgKmN1ciA9ICpwcmV2X3B0cjsKICAgIHdoaWxlIChjdXIpIHsKICAgICAgYXNzZXJ0 KCpwcmV2X3B0ciA9PSBjdXIsICJqdXN0IGNoZWNraW5nIik7Ci0tLS0gYS9zcmMvaG90c3BvdC9z aGFyZS9ydW50aW1lL2Fic3RyYWN0X3ZtX3ZlcnNpb24uY3BwCi0rKysgYi9zcmMvaG90c3BvdC9z aGFyZS9ydW50aW1lL2Fic3RyYWN0X3ZtX3ZlcnNpb24uY3BwCi1AQCAtMjc0LDcgKzI3NCw3IEBA IGNvbnN0IGNoYXIqIEFic3RyYWN0X1ZNX1ZlcnNpb246OmludGVybmFsX3ZtX2luZm9fc3RyaW5n KCkgewotICAgI2VuZGlmCi0gCi0gICAjZGVmaW5lIElOVEVSTkFMX1ZFUlNJT05fU1VGRklYIFZN X1JFTEVBU0UgIikiIFwKLS0gICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9T VFIgXAotKyAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBMSUJDIFwK LSAgICAgICAgICAiIEpSRSAoIiBWRVJTSU9OX1NUUklORyAiKSwgYnVpbHQgb24gIiBfX0RBVEVf XyAiICIgX19USU1FX18gXAotICAgICAgICAgICIgYnkgIiBYU1RSKEhPVFNQT1RfQlVJTERfVVNF UikgIiB3aXRoICIgSE9UU1BPVF9CVUlMRF9DT01QSUxFUgotIAotLS0tIGEvc3JjL2hvdHNwb3Qv c2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKLSsrKyBiL3NyYy9ob3Rz cG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCi1AQCAtMjA0LDcg KzIwNCw3IEBAIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW5kKGYp OyB9Ci0gI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCi0gaW5saW5lIGludCBnX2lzbmFuKGRvdWJs ZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQotICNlbGlmIGRlZmluZWQoTElOVVgpIHx8IGRlZmlu ZWQoX0FMTEJTRF9TT1VSQ0UpCi0taW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVy biBpc25hbmYoZik7IH0KLStpbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlz bmFuKGYpOyB9Ci0gaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihm KTsgfQotICNlbHNlCi0gI2Vycm9yICJtaXNzaW5nIHBsYXRmb3JtLXNwZWNpZmljIGRlZmluaXRp b24gaGVyZSIKLS0tLSBhL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9j bG9zZS5jCi0rKysgYi9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xv c2UuYwotQEAgLTYwLDcgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgewotIC8qCi0gICogU2lnbmFs IHRvIHVuYmxvY2sgdGhyZWFkCi0gICovCi0tc3RhdGljIGludCBzaWdXYWtldXAgPSAoX19TSUdS VE1BWCAtIDIpOwotK3N0YXRpYyBpbnQgc2lnV2FrZXVwOwotIAotIC8qCi0gICogZmRUYWJsZSBo b2xkcyBvbmUgZW50cnkgcGVyIGZpbGUgZGVzY3JpcHRvciwgdXAgdG8gYSBjZXJ0YWluCi1AQCAt MTQ5LDYgKzE0OSw3IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlKChjb25zdHJ1Y3RvcikpIGlu aXQoKSB7Ci0gICAgIC8qCi0gICAgICAqIFNldHVwIHRoZSBzaWduYWwgaGFuZGxlcgotICAgICAg Ki8KLSsgICAgc2lnV2FrZXVwID0gU0lHUlRNQVggLSAyOwotICAgICBzYS5zYV9oYW5kbGVyID0g c2lnX3dha2V1cDsKLSAgICAgc2Euc2FfZmxhZ3MgICA9IDA7Ci0gICAgIHNpZ2VtcHR5c2V0KCZz YS5zYV9tYXNrKTsKIC0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGls ZHByb2MuYwogKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJv Yy5jCiBAQCAtMjM1LDcgKzIzNSwxMyBAQCBKREtfZXhlY3ZwZShpbnQgbW9kZSwgY29uc3QgY2hh ciAqZmlsZSwKQEAgLTE4MywxOSArMTAzLDggQEAKICAgICAgfQogIAogICAgICBpZiAoKmZpbGUg PT0gJ1wwJykgewotLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191 dGlsX21kLmgKLSsrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRp bF9tZC5oCi1AQCAtMzcsNyArMzcsNyBAQAotICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCi0g I2VsaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0UpCi0gI2lu Y2x1ZGUgPG1hdGguaD4KLS0jZGVmaW5lIElTTkFORihmKSBpc25hbmYoZikKLSsjZGVmaW5lIElT TkFORihmKSBpc25hbihmKQotICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCi0gI2VsaWYgZGVm aW5lZChfQUlYKQotICNpbmNsdWRlIDxtYXRoLmg+Ci0tLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgv bmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYwotKysrIGIvc3JjL2phdmEuYmFzZS91bml4 L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5p eC9uYXRpdmUvbGliamxpL2phdmFfbWQuYworKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2 ZS9saWJqbGkvamF2YV9tZC5jCiBAQCAtMjM2LDYgKzIzNiwzOSBAQCBSZXF1aXJlc1NldGVudihj b25zdCBjaGFyICpqdm1wYXRoKSB7CiAgICAgIGNoYXIgKmRtbGxwID0gTlVMTDsKICAgICAgY2hh ciAqcDsgLyogYSB1dGlsaXR5IHBvaW50ZXIgKi8KQEAgLTIzNiw1NiArMTQ1LDYgQEAKICAjaWZk ZWYgQUlYCiAgICAgIC8qIFdlIGFsd2F5cyBoYXZlIHRvIHNldCB0aGUgTElCUEFUSCBvbiBBSVgg YmVjYXVzZSBsZCBkb2Vzbid0IHN1cHBvcnQgJE9SSUdJTi4gKi8KICAgICAgcmV0dXJuIEpOSV9U UlVFOwotLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhy ZWFkLmMKLSsrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRo cmVhZC5jCi1AQCAtMzYsNyArMzYsNyBAQAotICNpZmRlZiBfX2xpbnV4X18KLSAgICNpbmNsdWRl IDxwdGhyZWFkLmg+Ci0gICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2xpbnV4X2Nsb3NlLmMgKi8K LS0gICNkZWZpbmUgSU5URVJSVVBUX1NJR05BTCAoX19TSUdSVE1BWCAtIDIpCi0rICAjZGVmaW5l IElOVEVSUlVQVF9TSUdOQUwgKFNJR1JUTUFYIC0gMikKLSAjZWxpZiBkZWZpbmVkKF9BSVgpCi0g ICAjaW5jbHVkZSA8cHRocmVhZC5oPgotICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9haXhfY2xv c2UuYyAqLwotLS0tIGEvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94 YXd0L1hUb29sa2l0LmMKLSsrKyBiL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0 X3hhd3QveGF3dC9YVG9vbGtpdC5jCi1AQCAtMjcsOSArMjcsNiBAQAotICNpbmNsdWRlIDxYMTEv WHV0aWwuaD4KLSAjaW5jbHVkZSA8WDExL1hvcy5oPgotICNpbmNsdWRlIDxYMTEvWGF0b20uaD4K LS0jaWZkZWYgX19saW51eF9fCi0tI2luY2x1ZGUgPGV4ZWNpbmZvLmg+Ci0tI2VuZGlmCi0gCi0g I2luY2x1ZGUgPGp2bS5oPgotICNpbmNsdWRlIDxqbmkuaD4KLUBAIC03ODAsMjYgKzc3Nyw2IEBA IEpOSUVYUE9SVCBqc3RyaW5nIEpOSUNBTEwgSmF2YV9zdW5fYXd0X1gxMV9YVG9vbGtpdF9nZXRF bnYKLSAgICAgcmV0dXJuIHJldDsKLSB9Ci0gCi0tI2lmZGVmIF9fbGludXhfXwotLXZvaWQgcHJp bnRfc3RhY2sodm9pZCkKLS17Ci0tICB2b2lkICphcnJheVsxMF07Ci0tICBzaXplX3Qgc2l6ZTsK LS0gIGNoYXIgKipzdHJpbmdzOwotLSAgc2l6ZV90IGk7Ci0tCi0tICBzaXplID0gYmFja3RyYWNl IChhcnJheSwgMTApOwotLSAgc3RyaW5ncyA9IGJhY2t0cmFjZV9zeW1ib2xzIChhcnJheSwgc2l6 ZSk7Ci0tCi0tICBmcHJpbnRmIChzdGRlcnIsICJPYnRhaW5lZCAlemQgc3RhY2sgZnJhbWVzLlxu Iiwgc2l6ZSk7Ci0tCi0tICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQotLSAgICAgZnByaW50 ZiAoc3RkZXJyLCAiJXNcbiIsIHN0cmluZ3NbaV0pOwotLQotLSAgZnJlZSAoc3RyaW5ncyk7Ci0t fQotLSNlbmRpZgotLQotIFdpbmRvdyBnZXRfeGF3dF9yb290X3NoZWxsKEpOSUVudiAqZW52KSB7 Ci0gICBzdGF0aWMgamNsYXNzIGNsYXNzWFJvb3RXaW5kb3cgPSBOVUxMOwotICAgc3RhdGljIGpt ZXRob2RJRCBtZXRob2RHZXRYUm9vdFdpbmRvdyA9IE5VTEw7CiAtLS0gYS9zcmMvamRrLmpkd3Au YWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCiArKysgYi9zcmMvamRrLmpkd3AuYWdl bnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRpbC5oCiBAQCAtMzUsMTUgKzM1LDE1IEBACkBAIC0z MDgsNjUgKzE2Nyw0IEBACiArICAgICNkZWZpbmUgc3RyZHVwIGRvX25vdF91c2VfdGhpc19pbnRl cmZhY2Vfc3RyZHVwCiAgI2VuZGlmCiAgCi0gI2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgotLS0t IGEvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5j Ci0rKysgYi90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52 b2tlLmMKLUBAIC0zMyw2ICszMyw3IEBACi0gCi0gI2luY2x1ZGUgPGFzc2VydC5oPgotICNpbmNs dWRlIDxqbmkuaD4KLSsjaW5jbHVkZSA8anZtLmg+Ci0gI2luY2x1ZGUgPGFsbG9jYS5oPgotICNp bmNsdWRlIDxzaWduYWwuaD4KLSAjaW5jbHVkZSA8c3RyaW5nLmg+Ci1AQCAtOTEsNiArOTIsMjAg QEAgdm9pZCBzZXRfc2lnbmFsX2hhbmRsZXIoKSB7Ci0gICB9Ci0gfQotIAotK2ludCBnZXRfamF2 YV9zdGFja3NpemUgKCkgewotKyAgc2l6ZV90IHN0YWNrc2l6ZTsKLSsgIHB0aHJlYWRfYXR0cl90 IGF0dHI7Ci0rICBKREsxXzFJbml0QXJncyBqZGtfYXJnczsKLSsKLSsgIGpka19hcmdzLnZlcnNp b24gPSBKTklfVkVSU0lPTl8xXzE7Ci0rICBKTklfR2V0RGVmYXVsdEphdmFWTUluaXRBcmdzKCZq ZGtfYXJncyk7Ci0rICBpZiAoamRrX2FyZ3MuamF2YVN0YWNrU2l6ZSA8PSAwKSB7Ci0rICAgIGZw cmludGYoc3RkZXJyLCAiVGVzdCBFUlJPUi4gQ2FuJ3QgZ2V0IGEgdmFsaWQgdmFsdWUgZm9yIHRo ZSBkZWZhdWx0IHN0YWNrc2l6ZS5cbiIpOwotKyAgICBleGl0KDcpOwotKyAgfQotKyAgcmV0dXJu IGpka19hcmdzLmphdmFTdGFja1NpemU7Ci0rfQotKwotIHZvaWQgKnJ1bl9qYXZhX292ZXJmbG93 ICh2b2lkICpwKSB7Ci0gICBKTklFbnYgKmVudjsKLSAgIGpjbGFzcyBjbGFzc19pZDsKLUBAIC0y NTgsMTMgKzI3MywxOSBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSB7 Ci0gICAgIGV4aXQoNyk7Ci0gICB9Ci0gCi0rICBpbnQgc3RhY2tfc2l6ZSA9IGdldF9qYXZhX3N0 YWNrc2l6ZSgpOwotICAgcHRocmVhZF90IHRocjsKLSsgIHB0aHJlYWRfYXR0cl90IHRocmVhZF9h dHRyOwotKwotKyAgcHRocmVhZF9hdHRyX2luaXQoJnRocmVhZF9hdHRyKTsKLSsgIHB0aHJlYWRf YXR0cl9zZXRzdGFja3NpemUoJnRocmVhZF9hdHRyLCBzdGFja19zaXplKTsKLSAKLSAgIGlmIChh cmdjID4gMSAmJiBzdHJjbXAoYXJndlsxXSwgInRlc3RfamF2YV9vdmVyZmxvdyIpID09IDApIHsK LSAgICAgcHJpbnRmKCJcblRlc3RpbmcgSkFWQV9PVkVSRkxPV1xuIik7Ci0gCi0gICAgIHByaW50 ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4i KTsKLS0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9qYXZhX292ZXJmbG93LCBO VUxMKTsKLSsKLSsgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX2ph dmFfb3ZlcmZsb3csIE5VTEwpOwotICAgICBwdGhyZWFkX2pvaW4gKHRociwgTlVMTCk7Ci0gCi0g ICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlh bCB0aHJlYWRcbiIpOwotQEAgLTI3Nyw3ICsyOTgsNyBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNv bnN0IGNoYXIqKiBhcmd2KSB7Ci0gICAgIHByaW50ZigiXG5UZXN0aW5nIE5BVElWRV9PVkVSRkxP V1xuIik7Ci0gCi0gICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91 ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsKLS0gICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEws IHJ1bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwpOwotKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwg JnRocmVhZF9hdHRyLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKLSAgICAgcHRocmVhZF9q b2luICh0aHIsIE5VTEwpOwotIAotICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFn ZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKKyAjaW5jbHVkZSAibG9nX21lc3Nh Z2VzLmgiClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9v cGVuamRrMTcvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxNy90ZW1wbGF0ZQppbmRleCAzMDkz ZjcxYWVkNTYuLmQ0MzU3ODI3MDNhNiAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuamRrMTcvdGVt cGxhdGUKKysrIGIvc3JjcGtncy9vcGVuamRrMTcvdGVtcGxhdGUKQEAgLTE5LDE0ICsxOSwxNCBA QCBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycwogIC0td2l0aC1s aWJwbmc9c3lzdGVtCiAgLS13aXRoLWxjbXM9c3lzdGVtCiAgLS13aXRoLWp0cmVnPW5vCi0gLS13 aXRoLXZlcnNpb24tYnVpbGQ9JF9qYXZhX3ZlcgotIC0td2l0aC1qb2JzPSRYQlBTX09SSUdfTUFL RUpPQlMKKyAtLXdpdGgtdmVyc2lvbi1idWlsZD0ke19qYXZhX3Zlcn0KKyAtLXdpdGgtam9icz0k e1hCUFNfT1JJR19NQUtFSk9CU30KICAtLXdpdGgtdmVuZG9yLW5hbWU9Vm9pZAogIC0td2l0aC12 ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KICAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9 aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKICAtLXdp dGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9pc3N1ZXMiCiBtYWtlX2J1aWxkX2FyZ3M9ImltYWdlcyAkKHZvcHRfaWYgZG9jcyBk b2NzKSIKLW1ha2VfaW5zdGFsbF9hcmdzPSJJTlNUQUxMX1BSRUZJWD1cIiR7WEJQU19ERVNURElS fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0vdXNyL2xpYlwiIgorbWFrZV9pbnN0YWxsX2FyZ3M9IklO U1RBTExfUFJFRklYPVwiJHtERVNURElSfS91c3IvbGliXCIiCiBtYWtlX2NoZWNrX3RhcmdldD0i dGVzdC1ob3RzcG90LWd0ZXN0IgogaG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtl IGF1dG9jb25mIGNwaW8gdGFyIHVuemlwIHppcCBjYS1jZXJ0aWZpY2F0ZXMKICBsaWJyZXNzbCB6 bGliLWRldmVsIHdoaWNoIG1ha2UtY2EiCgpGcm9tIGU3MDc1MjFhYjRhN2E3MGI5ZjVkYjUwNzEx YTU5MDgyMDdmMzk4MDIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IGNsYXNzYWJieWFt cCA8ZGV2QGtiNi5lZT4KRGF0ZTogRnJpLCAxNCBKYW4gMjAyMiAxNjo1OToxMyAtMDUwMApTdWJq ZWN0OiBbUEFUQ0ggMTAvMTFdIG9wZW5qZGsxNzogVEVNUAoKLS0tCiBzcmNwa2dzL29wZW5qZGsx My1ib290c3RyYXAvdGVtcGxhdGUgfCA0ICsrLS0KIHNyY3BrZ3Mvb3BlbmpkazE3L3RlbXBsYXRl ICAgICAgICAgICB8IDIgKy0KIDIgZmlsZXMgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRl bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90ZW1w bGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90ZW1wbGF0ZQppbmRleCAzMmFjZDMy YmEyZTEuLjAxYzVjNDU4ODNlOCAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0 cmFwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90ZW1wbGF0ZQpA QCAtMSw3ICsxLDcgQEAKICMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGsxMy1ib290c3RyYXAn CiBfamF2YV92ZXI9MTMKIF9qYXZhX21pbl92ZXI9MAotX2phdmFfc2VjX3Zlcj00CitfamF2YV9z ZWNfdmVyPTIKIF9qZGtfdXBkYXRlPTgKIF9qZGtfaG9tZT0idXNyL2xpYi9qdm0vb3BlbmpkayR7 X2phdmFfdmVyfSIKIF9iYXNlX3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9 LiR7X2phdmFfc2VjX3Zlcn0iCkBAIC00MCw3ICs0MCw3IEBAIG1haW50YWluZXI9ImNsYXNzYWJi eWFtcCA8ZGV2QGtiNi5lZT4iCiBsaWNlbnNlPSJHUEwtMi4wLW9ubHkgV0lUSCBDbGFzc3BhdGgt ZXhjZXB0aW9uLTIuMCIKIGhvbWVwYWdlPSJodHRwczovL29wZW5qZGsuamF2YS5uZXQvIgogZGlz dGZpbGVzPSJodHRwczovL2hnLm9wZW5qZGsuamF2YS5uZXQvamRrLXVwZGF0ZXMvamRrJHtfamF2 YV92ZXJ9dS9hcmNoaXZlL2pkay0ke3ZlcnNpb259LnRhci5neiIKLWNoZWNrc3VtPTU2ODM2Mzhk NTU3MWFlMWQ4ZDMxMzljZTdmZGMzZGIyNjgxMWY1OTJkNGY1YTAyOWYxZTY2Y2VjZDg2NjYyNDUK K2NoZWNrc3VtPWQzOGZiMTc3OTU3ODJkZmZlODRlOThmMjFmMWQ2MjkzYjBhNDVlYThmMWU5Yzgx ZTk5Y2Q3MWFjYWMwM2E0ZTAKIGxpYjMyZGlzYWJsZWQ9eWVzCiBub2Nyb3NzPXllcwogCmRpZmYg LS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNy90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazE3L3Rl bXBsYXRlCmluZGV4IGQ0MzU3ODI3MDNhNi4uZTNmZTlhNzY3OWMxIDEwMDY0NAotLS0gYS9zcmNw a2dzL29wZW5qZGsxNy90ZW1wbGF0ZQorKysgYi9zcmNwa2dzL29wZW5qZGsxNy90ZW1wbGF0ZQpA QCAtOCw3ICs4LDcgQEAgX2Jhc2VfdmVyc2lvbj0iJHtfamF2YV92ZXJ9LiR7X2phdmFfbWluX3Zl cn0uJHtfamF2YV9zZWNfdmVyfSIKIAogcGtnbmFtZT1vcGVuamRrMTcKIHZlcnNpb249IiR7X2Jh c2VfdmVyc2lvbn0rJHtfamRrX3VwZGF0ZX0iCi1yZXZpc2lvbj0xCityZXZpc2lvbj0wCiB3cmtz cmM9ImpkayR7X2phdmFfdmVyfXUtamRrLSR7X2Jhc2VfdmVyc2lvbn0tJHtfamRrX3VwZGF0ZX0i CiBidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCiBjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXdh cm5pbmdzLWFzLWVycm9ycwoKRnJvbSA5Zjg5NDljMGUxMDlkYjJkNTJiN2YxZGE3M2MwNWE3ZGU1 NWZjYWNlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBjbGFzc2FiYnlhbXAgPGRldkBr YjYuZWU+CkRhdGU6IFNhdCwgMTUgSmFuIDIwMjIgMTI6MDg6NDkgLTA1MDAKU3ViamVjdDogW1BB VENIIDExLzExXSBvcGVuamRrMTc6IFRFTVAKCmNpLXNraXAKLS0tCiBzcmNwa2dzL29wZW5qZGsx Ny90ZW1wbGF0ZSB8IDExNiArKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tCiAx IGZpbGUgY2hhbmdlZCwgNjcgaW5zZXJ0aW9ucygrKSwgNDkgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvc3JjcGtncy9vcGVuamRrMTcvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxNy90ZW1w bGF0ZQppbmRleCBlM2ZlOWE3Njc5YzEuLjYwMjczMGVlMDUxOSAxMDA2NDQKLS0tIGEvc3JjcGtn cy9vcGVuamRrMTcvdGVtcGxhdGUKKysrIGIvc3JjcGtncy9vcGVuamRrMTcvdGVtcGxhdGUKQEAg LTgsNyArOCw3IEBAIF9iYXNlX3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9 LiR7X2phdmFfc2VjX3Zlcn0iCiAKIHBrZ25hbWU9b3BlbmpkazE3CiB2ZXJzaW9uPSIke19iYXNl X3ZlcnNpb259KyR7X2pka191cGRhdGV9IgotcmV2aXNpb249MAorcmV2aXNpb249MQogd3Jrc3Jj PSJqZGske19qYXZhX3Zlcn11LWpkay0ke19iYXNlX3ZlcnNpb259LSR7X2pka191cGRhdGV9Igog YnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQogY29uZmlndXJlX2FyZ3M9Ii0tZGlzYWJsZS13YXJu aW5ncy1hcy1lcnJvcnMKQEAgLTMzLDE0ICszMywxNCBAQCBob3N0bWFrZWRlcGVuZHM9InBrZy1j b25maWcgYXV0b21ha2UgYXV0b2NvbmYgY3BpbyB0YXIgdW56aXAgemlwIGNhLWNlcnRpZmljYXRl cwogbWFrZWRlcGVuZHM9ImxpYlhyZW5kZXItZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJYdC1kZXZl bCBsaWJYcmFuZHItZGV2ZWwKICBnaWZsaWItZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBjdXBz LWRldmVsIGZyZWV0eXBlLWRldmVsIGFsc2EtbGliLWRldmVsCiAgZm9udGNvbmZpZy1kZXZlbCB6 bGliLWRldmVsIGxjbXMyLWRldmVsIgotcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJz aW9ufV8xIGphdmEtcnVudGltZS0ke3ZlcnNpb259XzEiCitkZXBlbmRzPSJvcGVuamRrMTctanJl LSR7dmVyc2lvbn1fJHtyZXZpc2lvbn0iCitwcm92aWRlcz0iamF2YS1lbnZpcm9ubWVudC0ke3Zl cnNpb259XzEiCiBzaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0IgogbWFp bnRhaW5lcj0iY2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPiIKIGxpY2Vuc2U9IkdQTC0yLjAtb25s eSBXSVRIIENsYXNzcGF0aC1leGNlcHRpb24tMi4wIgogaG9tZXBhZ2U9Imh0dHA6Ly9vcGVuamRr LmphdmEubmV0LyIKIGRpc3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5qZGsvamRrJHtf amF2YV92ZXJ9dS9hcmNoaXZlL2pkay0ke3ZlcnNpb259LnRhci5neiIKIGNoZWNrc3VtPThjMDc2 MjAzYTZmODVhYjkxNmIzZTU0ZGUxOTkyYmNiY2M1ZmZlNTgwYzUyYjFhYzhkNTJjYTdhZmI5ZjAy ZDEKLXNobGliX3Byb3ZpZGVzPSJsaWJhd3Quc28gbGliYXd0X3hhd3Quc28gbGliamF2YS5zbyBs aWJqbGkuc28gbGlianZtLnNvIGxpYmphd3Quc28iCiAKICMgQnVpbGQgaXMgc3RpbGwgcGFyYWxs ZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgogZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15ZXMKQEAgLTc0 LDQ2ICs3NCw0NiBAQCBlbHNlCiBmaQogCiBhbHRlcm5hdGl2ZXM9IgotIGphdmE6L3Vzci9iaW4v amF2YTovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qYXZhCi0gamF2YTovdXNyL2Jpbi9qanM6 L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vampzCi0gamF2YTovdXNyL2Jpbi9rZXl0b29sOi91 c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2tleXRvb2wKLSBqYXZhOi91c3IvYmluL3BhY2syMDA6 L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vcGFjazIwMAotIGphdmE6L3Vzci9iaW4vcm1pZDov dXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9ybWlkCi0gamF2YTovdXNyL2Jpbi9ybWlyZWdpc3Ry eTovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9ybWlyZWdpc3RyeQotIGphdmE6L3Vzci9iaW4v dW5wYWNrMjAwOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL3VucGFjazIwMAotCi0gamRrOi91 c3IvYmluL2phb3RjOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2phb3RjCi0gamRrOi91c3Iv YmluL2phcjovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qYXIKLSBqZGs6L3Vzci9iaW4vamFy c2lnbmVyOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2phcnNpZ25lcgotIGpkazovdXNyL2Jp bi9qYXZhOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2phdmEKLSBqZGs6L3Vzci9iaW4vamF2 YWM6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vamF2YWMKLSBqZGs6L3Vzci9iaW4vamF2YWRv YzovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qYXZhZG9jCi0gamRrOi91c3IvYmluL2phdmFw Oi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2phdmFwCi0gamRrOi91c3IvYmluL2pjbWQ6L3Vz ci9saWIvanZtL29wZW5qZGsxNy9iaW4vamNtZAotIGpkazovdXNyL2Jpbi9qY29uc29sZTovdXNy L2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qY29uc29sZQotIGpkazovdXNyL2Jpbi9qZGI6L3Vzci9s aWIvanZtL29wZW5qZGsxNy9iaW4vamRiCi0gamRrOi91c3IvYmluL2pkZXByc2NhbjovdXNyL2xp Yi9qdm0vb3BlbmpkazE3L2Jpbi9qZGVwcnNjYW4KLSBqZGs6L3Vzci9iaW4vamRlcHM6L3Vzci9s aWIvanZtL29wZW5qZGsxNy9iaW4vamRlcHMKLSBqZGs6L3Vzci9iaW4vamhzZGI6L3Vzci9saWIv anZtL29wZW5qZGsxNy9iaW4vamhzZGIKLSBqZGs6L3Vzci9iaW4vamltYWdlOi91c3IvbGliL2p2 bS9vcGVuamRrMTcvYmluL2ppbWFnZQotIGpkazovdXNyL2Jpbi9qaW5mbzovdXNyL2xpYi9qdm0v b3BlbmpkazE3L2Jpbi9qaW5mbwotIGpkazovdXNyL2Jpbi9qanM6L3Vzci9saWIvanZtL29wZW5q ZGsxNy9iaW4vampzCi0gamRrOi91c3IvYmluL2psaW5rOi91c3IvbGliL2p2bS9vcGVuamRrMTcv YmluL2psaW5rCi0gamRrOi91c3IvYmluL2ptYXA6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4v am1hcAotIGpkazovdXNyL2Jpbi9qbW9kOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2ptb2QK LSBqZGs6L3Vzci9iaW4vanBzOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2pwcwotIGpkazov dXNyL2Jpbi9qcnVuc2NyaXB0Oi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2pydW5zY3JpcHQK LSBqZGs6L3Vzci9iaW4vanNoZWxsOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2pzaGVsbAot IGpkazovdXNyL2Jpbi9qc3RhY2s6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vanN0YWNrCi0g amRrOi91c3IvYmluL2pzdGF0Oi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2pzdGF0Ci0gamRr Oi91c3IvYmluL2pzdGF0ZDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qc3RhdGQKLSBqZGs6 L3Vzci9iaW4va2V5dG9vbDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9rZXl0b29sCi0gamRr Oi91c3IvYmluL3BhY2syMDA6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vcGFjazIwMAotIGpk azovdXNyL2Jpbi9ybWljOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL3JtaWMKLSBqZGs6L3Vz ci9iaW4vcm1pZDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9ybWlkCi0gamRrOi91c3IvYmlu L3JtaXJlZ2lzdHJ5Oi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL3JtaXJlZ2lzdHJ5Ci0gamRr Oi91c3IvYmluL3NlcmlhbHZlcjovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9zZXJpYWx2ZXIK LSBqZGs6L3Vzci9iaW4vdW5wYWNrMjAwOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL3VucGFj azIwMAorIGphdmE6L3Vzci9iaW4vamF2YTovJHtfamRrX2hvbWV9L2Jpbi9qYXZhCisgamF2YTov dXNyL2Jpbi9qanM6LyR7X2pka19ob21lfS9iaW4vampzCisgamF2YTovdXNyL2Jpbi9rZXl0b29s Oi8ke19qZGtfaG9tZX0vYmluL2tleXRvb2wKKyBqYXZhOi91c3IvYmluL3BhY2syMDA6LyR7X2pk a19ob21lfS9iaW4vcGFjazIwMAorIGphdmE6L3Vzci9iaW4vcm1pZDovJHtfamRrX2hvbWV9L2Jp bi9ybWlkCisgamF2YTovdXNyL2Jpbi9ybWlyZWdpc3RyeTovJHtfamRrX2hvbWV9L2Jpbi9ybWly ZWdpc3RyeQorIGphdmE6L3Vzci9iaW4vdW5wYWNrMjAwOi8ke19qZGtfaG9tZX0vYmluL3VucGFj azIwMAorCisgamRrOi91c3IvYmluL2phb3RjOi8ke19qZGtfaG9tZX0vYmluL2phb3RjCisgamRr Oi91c3IvYmluL2phcjovJHtfamRrX2hvbWV9L2Jpbi9qYXIKKyBqZGs6L3Vzci9iaW4vamFyc2ln bmVyOi8ke19qZGtfaG9tZX0vYmluL2phcnNpZ25lcgorIGpkazovdXNyL2Jpbi9qYXZhOi8ke19q ZGtfaG9tZX0vYmluL2phdmEKKyBqZGs6L3Vzci9iaW4vamF2YWM6LyR7X2pka19ob21lfS9iaW4v amF2YWMKKyBqZGs6L3Vzci9iaW4vamF2YWRvYzovJHtfamRrX2hvbWV9L2Jpbi9qYXZhZG9jCisg amRrOi91c3IvYmluL2phdmFwOi8ke19qZGtfaG9tZX0vYmluL2phdmFwCisgamRrOi91c3IvYmlu L2pjbWQ6LyR7X2pka19ob21lfS9iaW4vamNtZAorIGpkazovdXNyL2Jpbi9qY29uc29sZTovJHtf amRrX2hvbWV9L2Jpbi9qY29uc29sZQorIGpkazovdXNyL2Jpbi9qZGI6LyR7X2pka19ob21lfS9i aW4vamRiCisgamRrOi91c3IvYmluL2pkZXByc2NhbjovJHtfamRrX2hvbWV9L2Jpbi9qZGVwcnNj YW4KKyBqZGs6L3Vzci9iaW4vamRlcHM6LyR7X2pka19ob21lfS9iaW4vamRlcHMKKyBqZGs6L3Vz ci9iaW4vamhzZGI6LyR7X2pka19ob21lfS9iaW4vamhzZGIKKyBqZGs6L3Vzci9iaW4vamltYWdl Oi8ke19qZGtfaG9tZX0vYmluL2ppbWFnZQorIGpkazovdXNyL2Jpbi9qaW5mbzovJHtfamRrX2hv bWV9L2Jpbi9qaW5mbworIGpkazovdXNyL2Jpbi9qanM6LyR7X2pka19ob21lfS9iaW4vampzCisg amRrOi91c3IvYmluL2psaW5rOi8ke19qZGtfaG9tZX0vYmluL2psaW5rCisgamRrOi91c3IvYmlu L2ptYXA6LyR7X2pka19ob21lfS9iaW4vam1hcAorIGpkazovdXNyL2Jpbi9qbW9kOi8ke19qZGtf aG9tZX0vYmluL2ptb2QKKyBqZGs6L3Vzci9iaW4vanBzOi8ke19qZGtfaG9tZX0vYmluL2pwcwor IGpkazovdXNyL2Jpbi9qcnVuc2NyaXB0Oi8ke19qZGtfaG9tZX0vYmluL2pydW5zY3JpcHQKKyBq ZGs6L3Vzci9iaW4vanNoZWxsOi8ke19qZGtfaG9tZX0vYmluL2pzaGVsbAorIGpkazovdXNyL2Jp bi9qc3RhY2s6LyR7X2pka19ob21lfS9iaW4vanN0YWNrCisgamRrOi91c3IvYmluL2pzdGF0Oi8k e19qZGtfaG9tZX0vYmluL2pzdGF0CisgamRrOi91c3IvYmluL2pzdGF0ZDovJHtfamRrX2hvbWV9 L2Jpbi9qc3RhdGQKKyBqZGs6L3Vzci9iaW4va2V5dG9vbDovJHtfamRrX2hvbWV9L2Jpbi9rZXl0 b29sCisgamRrOi91c3IvYmluL3BhY2syMDA6LyR7X2pka19ob21lfS9iaW4vcGFjazIwMAorIGpk azovdXNyL2Jpbi9ybWljOi8ke19qZGtfaG9tZX0vYmluL3JtaWMKKyBqZGs6L3Vzci9iaW4vcm1p ZDovJHtfamRrX2hvbWV9L2Jpbi9ybWlkCisgamRrOi91c3IvYmluL3JtaXJlZ2lzdHJ5Oi8ke19q ZGtfaG9tZX0vYmluL3JtaXJlZ2lzdHJ5CisgamRrOi91c3IvYmluL3NlcmlhbHZlcjovJHtfamRr X2hvbWV9L2Jpbi9zZXJpYWx2ZXIKKyBqZGs6L3Vzci9iaW4vdW5wYWNrMjAwOi8ke19qZGtfaG9t ZX0vYmluL3VucGFjazIwMAogIgogCiBwb3N0X2V4dHJhY3QoKSB7CkBAIC0xNjYsMTAgKzE2Niw2 IEBAIHBvc3RfaW5zdGFsbCgpIHsKIAltdiAuL2NhL2V0Yy9wa2kvdGxzL2phdmEvY2FjZXJ0cyAk e0RFU1RESVJ9LyRfamRrX2hvbWUvbGliL3NlY3VyaXR5LwogCWNobW9kIC1SIHVnbytydyAuL2Nh CiAJcm0gLXJmIC4vY2EKLQl2bWtkaXIgZXRjL3Byb2ZpbGUuZAotCWNhdCA+PiR7REVTVERJUn0v ZXRjL3Byb2ZpbGUuZC8xMF9vcGVuamRrMTcuc2ggPDwtRU9GCi0JZXhwb3J0IEpBVkFfSE9NRT1c JHtKQVZBX0hPTUU9LyRfamRrX2hvbWV9Ci0JRU9GCiAJdmxpY2Vuc2UgQVNTRU1CTFlfRVhDRVBU SU9OCiAJdmxpY2Vuc2UgTElDRU5TRQogfQpAQCAtMTc4LDcgKzE3NCw3IEBAIG9wZW5qZGsxNy1k b2NfcGFja2FnZSgpIHsKIAlub3N0cmlwPXllcwogCW5vdmVyaWZ5cmRlcHM9eWVzCiAJbm9zaGxp YnByb3ZpZGVzPXllcwotCXNob3J0X2Rlc2MrPSIgLS0gZG9jdW1lbnRhdGlvbiIKKwlzaG9ydF9k ZXNjKz0iIC0gZG9jdW1lbnRhdGlvbiIKIAlwa2dfaW5zdGFsbCgpIHsKIAkJY2QgJHt3cmtzcmN9 CiAJCWlmIFsgIiRidWlsZF9vcHRpb25fZG9jcyIgXTsgdGhlbgpAQCAtMTk0LDggKzE5MCwzMCBA QCBvcGVuamRrMTctc3JjX3BhY2thZ2UoKSB7CiAJbm9zdHJpcD15ZXMKIAlub3ZlcmlmeXJkZXBz PXllcwogCW5vc2hsaWJwcm92aWRlcz15ZXMKLQlzaG9ydF9kZXNjKz0iIC0tIHNvdXJjZXMiCisJ c2hvcnRfZGVzYys9IiAtIHNvdXJjZSBjb2RlIgogCXBrZ19pbnN0YWxsKCkgewogCQl2bW92ZSAi JF9qZGtfaG9tZS9saWIvc3JjLnppcCIKIAl9CiB9CisKK29wZW5qZGsxNy1qcmVfcGFja2FnZSgp IHsKKwlzaGxpYl9wcm92aWRlcz0ibGliYXd0LnNvIGxpYmF3dF94YXd0LnNvIGxpYmphdmEuc28g bGliamxpLnNvIGxpYmp2bS5zbyBsaWJqYXd0LnNvIgorCXByb3ZpZGVzPSJqYXZhLXJ1bnRpbWUt JHt2ZXJzaW9ufV8xIgorCXNob3J0X2Rlc2MrPSIgLSBydW50aW1lIGNvbXBvbmVudHMiCisJYWx0 ZXJuYXRpdmVzPSIKKwkgamF2YTovdXNyL2Jpbi9qYXZhOi8ke19qZGtfaG9tZX0vanJlL2Jpbi9q YXZhCisJIGphdmE6L3Vzci9iaW4vampzOi8ke19qZGtfaG9tZX0vanJlL2Jpbi9qanMKKwkgamF2 YTovdXNyL2Jpbi9rZXl0b29sOi8ke19qZGtfaG9tZX0vanJlL2Jpbi9rZXl0b29sCisJIGphdmE6 L3Vzci9iaW4vcGFjazIwMDovJHtfamRrX2hvbWV9L2pyZS9iaW4vcGFjazIwMAorCSBqYXZhOi91 c3IvYmluL3JtaWQ6LyR7X2pka19ob21lfS9qcmUvYmluL3JtaWQKKwkgamF2YTovdXNyL2Jpbi9y bWlyZWdpc3RyeTovJHtfamRrX2hvbWV9L2pyZS9iaW4vcm1pcmVnaXN0cnkKKwkgamF2YTovdXNy L2Jpbi91bnBhY2syMDA6LyR7X2pka19ob21lfS9qcmUvYmluL3VucGFjazIwMAorCSIKKwlwa2df aW5zdGFsbCgpIHsKKwkJI3Ztb3ZlIHBhdGggVE9ETworCQl2bWtkaXIgZXRjL3Byb2ZpbGUuZAor CQljYXQgPj4ke0RFU1RESVJ9L2V0Yy9wcm9maWxlLmQvMTBfb3BlbmpkazE3LnNoIDw8LUVPRgor CQlleHBvcnQgSkFWQV9IT01FPVwke0pBVkFfSE9NRT0vJF9qZGtfaG9tZS9qcmV9CisJCUVPRgor CX0KK30K --===============4180376067331351581==--