From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-0.2 required=5.0 tests=ALL_TRUSTED, DKIM_ADSP_NXDOMAIN,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 17118 invoked from network); 3 Feb 2022 20:06:11 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 3 Feb 2022 20:06:11 -0000 Content-Type: multipart/mixed; boundary="===============1337169083910640727==" MIME-Version: 1.0 Subject: =?utf8?q?Re=3A_=5BPR_PATCH=5D_=5BUpdated=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: Thu, 03 Feb 2022 21:06:11 +0100 List-Id: Message-ID: <20220203200611.BDTo8FV7bgP088JMZBC3bbxxE1t3tocwp5Ss2TcvpZw@z> GitHub notification mails are now in MIME to allow UTF8. --===============1337169083910640727== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYW4gdXBkYXRlZCBwdWxsIHJlcXVlc3QgYnkgY2xhc3NhYmJ5YW1wIGFnYWluc3Qg bWFzdGVyIG9uIHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNv bS9jbGFzc2FiYnlhbXAvdm9pZC1wYWNrYWdlcyBvcGVuamRrMTcKaHR0cHM6Ly9naXRodWIuY29t L3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9wdWxsLzM0OTg5CgpOZXcgcGFja2FnZTogb3Blbmpk azE3LTE3LjAuMSsxMgo8IS0tIFVuY29tbWVudCByZWxldmFudCBzZWN0aW9ucyBhbmQgZGVsZXRl IG9wdGlvbnMgd2hpY2ggYXJlIG5vdCBhcHBsaWNhYmxlIC0tPg0KDQpCdWlsdCB1cG9uIHRoZSB3 b3JrIG9mIEBzZ24gYW5kIEByYWVkd3VsZi4NCg0KQ2xvc2VzICMzMjk0Mg0KU3VwZXJjZWRlcyAj MzQzOTAsICMzNTA3OA0KDQojIyMjIFRlc3RpbmcgdGhlIGNoYW5nZXMNCi0gSSB0ZXN0ZWQgdGhl IGNoYW5nZXMgaW4gdGhpcyBQUjogKipZRVMqKg0KDQojIyMjIE5ldyBwYWNrYWdlDQotIFRoaXMg bmV3IHBhY2thZ2UgY29uZm9ybXMgdG8gdGhlIFtxdWFsaXR5IHJlcXVpcmVtZW50c10oaHR0cHM6 Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9ibG9iL21hc3Rlci9NYW51YWwu bWQjcXVhbGl0eS1yZXF1aXJlbWVudHMpOiAqKllFUyoqDQoNCjwhLS0gTm90ZTogSWYgdGhlIGJ1 aWxkIGlzIGxpa2VseSB0byB0YWtlIG1vcmUgdGhhbiAyIGhvdXJzLCBwbGVhc2UgW3NraXAgQ0ld KGh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIv Q09OVFJJQlVUSU5HLm1kI2NvbnRpbnVvdXMtaW50ZWdyYXRpb24pDQphbmQgdGVzdCBhdCBsZWFz dCBvbmUgbmF0aXZlIGJ1aWxkIGFuZCwgaWYgc3VwcG9ydGVkLCBhdCBsZWFzdCBvbmUgY3Jvc3Mg YnVpbGQuDQpJZ25vcmUgdGhpcyBzZWN0aW9uIGlmIHRoaXMgUFIgaXMgbm90IHNraXBwaW5nIENJ Lg0KLS0+DQoNCiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0KLSBJIGJ1aWx0IHRoaXMgUFIgbG9j YWxseSBmb3IgdGhlc2UgYXJjaGl0ZWN0dXJlczoNCg0KfCBhcmNoIHwgY3Jvc3MgfCBidWlsdCB8 IGBjaGVja2AgcGFzc2VzIHwNCnw6LS0tLS06fDotLS0tLTp8Oi0tLS0tOnw6LS0tLS06fA0KfCB4 ODZfNjQgfHwgMTIg4pyUIDxicj4gMTMg4pyUIDxicj4gMTQg4pyUIDxicj4gMTUg4pyUIDxicj4g MTYg4pyUIDxicj4gMTcg4pyUIHwgMTIg4pyUIDxicj4gMTMg4pyUIDxicj4gMTQg4pyUIDxicj4g MTUg4pyUIDxicj4gMTYg4pyUIDxicj4gMTcg4pyUIHwNCnwgeDg2XzY0LW11c2wgfHwgMTIg4pyU IDxicj4gMTMg4pyUIDxicj4gMTQg4pyUIDxicj4gMTUg4pyUIDxicj4gMTYg4pyUIDxicj4gMTcg 4pyUIHwgMTIg4pyUIDxicj4gMTMg4pyUIDxicj4gMTQg4pyUIDxicj4gMTUg4pyUIDxicj4gMTYg 4pyUIDxicj4gMTcg4pyUIHwNCnwgaTY4NiB8fCAxMiDinJQgPGJyPiAxMyDinJQgPGJyPiAxNCDi nJQgPGJyPiAxNSDinJQgPGJyPiAxNiDinJQgPGJyPiAxNyDinJQgfCAxMiDinJQgPGJyPiAxMyDi nJQgPGJyPiAxNCDinJQgPGJyPiAxNSDinJQgPGJyPiAxNiDinJQgPGJyPiAxNyDinJQgfA0KfCBh YXJjaDY0IHwg4pyUIHwgMTcg4pyUIHx8DQp8IGFhcmNoNjQtbXVzbCB8IOKclCB8IDE3IOKclCB8 fA0KfCBhcm12N2wgfCDinJQgfCAxNyDinJQgfHwNCnwgYXJtdjZsLW11c2wgfCDinJQgfCAxNyDi nJQgfHwNCg0KW2NpIHNraXBdCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5jb20v dm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzQ5ODkucGF0Y2ggaXMgYXR0YWNoZWQ= --===============1337169083910640727== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openjdk17-34989.patch" RnJvbSA1NDFkNzYxMDk4NzcwYWM5ZDA4YjkzNTAzMmIwZWJmMmIxMTkzNWMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+CkRhdGU6IFR1ZSwg MTEgSmFuIDIwMjIgMDI6NTY6MDQgLTA1MDAKU3ViamVjdDogW1BBVENIIDEvN10gc2h1dGlsczog aW50cm9kdWNlIFhCUFNfT1JJR19NQUtFSk9CUyB2YXJpYWJsZQpNSU1FLVZlcnNpb246IDEuMApD b250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgKQ29udGVudC1UcmFuc2Zlci1F bmNvZGluZzogOGJpdAoKU29tZSBwYWNrYWdlcyBjb3VsZG4ndCB3b3JrIHdlbGwgd2l0aCBYQlBT X01BS0VKT0JTLAp0aHVzIHdlIGRpc2FibGUgcGFyYWxsZWwgYnVpbGQgZm9yIHRob3NlIHBhY2th Z2VzLgoKT24gdGhlIG90aGVyIGhhbmQsIHNvbWUgcGFja2FnZXMgaW5jbHVkaW5nIGJ1dCBub3Qg bGltaXRlZCB0byBvcGVuamRrCnVzZSBhbiBpbnRlcm5hbCBtZWNoYW5pc20gdG8gYnVpbGQgdGhl bXNlbHZlcyBpbiBwYXJhbGxlbC4KCkxldCdzIGludmVudCBhbm90aGVyIHZhcmlhYmxlIGZvciB0 aG9zZSBwYWNrYWdlcy4KCihtZXNzYWdlIGJ5IHNnbikKCkNvLWF1dGhvcmVkLWJ5OiDEkG/DoG4g VHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPgotLS0KIGNvbW1vbi94YnBz LXNyYy9zaHV0aWxzL2NvbW1vbi5zaCB8IDQgKysrLQogMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQoKZGlmZiAtLWdpdCBhL2NvbW1vbi94YnBzLXNyYy9zaHV0 aWxzL2NvbW1vbi5zaCBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaAppbmRleCAx NzM5MTI0MDUwZjcuLjQ3ZmYzNjVlOWZmMiAxMDA2NDQKLS0tIGEvY29tbW9uL3hicHMtc3JjL3No dXRpbHMvY29tbW9uLnNoCisrKyBiL2NvbW1vbi94YnBzLXNyYy9zaHV0aWxzL2NvbW1vbi5zaApA QCAtNDY1LDcgKzQ2NSw5IEBAIHNldHVwX3BrZygpIHsKICAgICBERVNURElSPSRYQlBTX0RFU1RE SVIvJFhCUFNfQ1JPU1NfVFJJUExFVC8ke3NvdXJjZXBrZ30tJHt2ZXJzaW9ufQogICAgIFBLR0RF U1RESVI9JFhCUFNfREVTVERJUi8kWEJQU19DUk9TU19UUklQTEVULyR7cGtnfS0ke3ZlcnNpb259 CiAKLSAgICBpZiBbIC1uICIkZGlzYWJsZV9wYXJhbGxlbF9idWlsZCIgLW8gLXogIiRYQlBTX01B S0VKT0JTIiBdOyB0aGVuCisgICAgOiAke1hCUFNfTUFLRUpPQlM6PTF9CisgICAgZXhwb3J0IFhC UFNfT1JJR19NQUtFSk9CUz0ke1hCUFNfT1JJR19NQUtFSk9CUzo9JFhCUFNfTUFLRUpPQlN9Cisg ICAgaWYgWyAtbiAiJGRpc2FibGVfcGFyYWxsZWxfYnVpbGQiIF07IHRoZW4KICAgICAgICAgWEJQ U19NQUtFSk9CUz0xCiAgICAgZmkKICAgICBtYWtlam9icz0iLWokWEJQU19NQUtFSk9CUyIKCkZy b20gNGIyZjI5YTM3ZjMyMzY4YWQ1NmJjMTc3Y2RkZjBmZmU4NzE3MGQ1YiBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDEKRnJvbTogY2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPgpEYXRlOiBUaHUsIDMg RmViIDIwMjIgMTU6MDE6NTMgLTA1MDAKU3ViamVjdDogW1BBVENIIDIvN10gTmV3IHBhY2thZ2U6 IG9wZW5qZGsxMi1ib290c3RyYXAtMTIuMC4yKzEwCgotLS0KIC4uLi9maWxlcy9tdXNsX3BhdGNo ZXMvYWFyY2g2NC5wYXRjaCAgICAgICAgICB8ICAxMCArCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVz L2FybS5wYXRjaCAgICAgICAgICAgICAgfCAgMjQgKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMv YnVpbGQucGF0Y2ggICAgICAgICAgICB8IDM4NyArKysrKysrKysrKysrKysrKysKIC4uLi9maWxl cy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoICAgICAgICAgICAgICB8ICA0NSArKwogLi4uL2ZpbGVz L211c2xfcGF0Y2hlcy94ODYucGF0Y2ggICAgICAgICAgICAgIHwgMTMwICsrKysrKwogc3JjcGtn cy9vcGVuamRrMTItYm9vdHN0cmFwL3RlbXBsYXRlICAgICAgICAgIHwgMTI0ICsrKysrKwogNiBm aWxlcyBjaGFuZ2VkLCA3MjAgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br 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 cGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5lZWI5MjhhZjhh YzEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvdGVtcGxh dGUKQEAgLTAsMCArMSwxMjQgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGsxMi1ib290 c3RyYXAnCitfamF2YV92ZXI9MTIKK19qYXZhX21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj0yCitf amRrX3VwZGF0ZT0xMAorX2pka19ob21lPSJ1c3IvbGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9 IgorX2Jhc2VfdmVyc2lvbj0iJHtfamF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9z ZWNfdmVyfSIKKworcGtnbmFtZT1vcGVuamRrMTItYm9vdHN0cmFwCit2ZXJzaW9uPSIke19iYXNl X3ZlcnNpb259KyR7X2pka191cGRhdGV9IgorcmV2aXNpb249MQord3Jrc3JjPSJqZGske19qYXZh X3Zlcn11LWpkay0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQorY29uZmln dXJlX2FyZ3M9Ii0tZGlzYWJsZS13YXJuaW5ncy1hcy1lcnJvcnMKKyAtLXByZWZpeD0ke1hCUFNf REVTVERJUn0vJHtwa2duYW1lfS0ke3ZlcnNpb259L3Vzci9saWIKKyAtLWVuYWJsZS11bmxpbWl0 ZWQtY3J5cHRvCisgLS13aXRoLXpsaWI9c3lzdGVtCisgLS13aXRoLWxpYmpwZWc9c3lzdGVtCisg LS13aXRoLWdpZmxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlicG5nPXN5c3RlbQorIC0td2l0aC1sY21z PXN5c3RlbQorIC0td2l0aC1qdHJlZz1ubworIC0td2l0aC1kZWJ1Zy1sZXZlbD1yZWxlYXNlCisg LS13aXRoLWpvYnM9JHtYQlBTX09SSUdfTUFLRUpPQlN9CisgLS13aXRoLXZlcnNpb24tcHJlPQor IC0td2l0aC12ZXJzaW9uLWJ1aWxkPSR7X2pka191cGRhdGV9CisgLS13aXRoLXZlcnNpb24tb3B0 PXZvaWQtciR7cmV2aXNpb259CisgLS13aXRoLXZlbmRvci1uYW1lPVZvaWQKKyAtLXdpdGgtdmVu ZG9yLXVybD1odHRwczovL3ZvaWRsaW51eC5vcmcvCisgLS13aXRoLXZlbmRvci1idWctdXJsPWh0 dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzCisgLS13aXRo LXZlbmRvci12bS1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvaXNzdWVzCisgLS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9vcGVuamRrMTEiCitt YWtlX2J1aWxkX2FyZ3M9ImltYWdlcyIKK21ha2VfY2hlY2tfdGFyZ2V0PSJ0ZXN0LWhvdHNwb3Qt Z3Rlc3QiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b21ha2UgYXV0b2NvbmYgY3Bp byB0YXIgdW56aXAgemlwIGNhLWNlcnRpZmljYXRlcworIGxpYnJlc3NsIHpsaWItZGV2ZWwgd2hp Y2ggbWFrZS1jYSBvcGVuamRrMTEiCittYWtlZGVwZW5kcz0ibGliWHJlbmRlci1kZXZlbCBsaWJY dHN0LWRldmVsIGxpYlh0LWRldmVsIGxpYlhyYW5kci1kZXZlbAorIGdpZmxpYi1kZXZlbCBsaWJq cGVnLXR1cmJvLWRldmVsIGN1cHMtZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgYWxzYS1saWItZGV2ZWwK KyBmb250Y29uZmlnLWRldmVsIHpsaWItZGV2ZWwgbGNtczItZGV2ZWwiCitwcm92aWRlcz0iamF2 YS1lbnZpcm9ubWVudC0ke3ZlcnNpb259XzEgamF2YS1ydW50aW1lLSR7dmVyc2lvbn1fMSIKK3No b3J0X2Rlc2M9Ik9wZW5KREsgSmF2YSBEZXZlbG9wbWVudCBLaXQgKGJvb3RzdHJhcCB2ZXJzaW9u IDEyKSIKK21haW50YWluZXI9ImNsYXNzYWJieWFtcCA8ZGV2QGtiNi5lZT4iCitsaWNlbnNlPSJH UEwtMi4wLW9ubHkgV0lUSCBDbGFzc3BhdGgtZXhjZXB0aW9uLTIuMCIKK2hvbWVwYWdlPSJodHRw czovL29wZW5qZGsuamF2YS5uZXQiCitkaXN0ZmlsZXM9Imh0dHBzOi8vaGcub3Blbmpkay5qYXZh Lm5ldC9qZGstdXBkYXRlcy9qZGske19qYXZhX3Zlcn11L2FyY2hpdmUvamRrLSR7dmVyc2lvbn0u dGFyLmd6IgorY2hlY2tzdW09YjJiY2FkMzU2NTZiMDA5Mjg2ODM0MTZmMzQ4MGFkMDAzNjNiMDA5 OTNlYjcxMWMzZTE4ODZlNGZlNzdlZWZlYgorbGliMzJkaXNhYmxlZD15ZXMKK25vY3Jvc3M9eWVz CisKKyMgQnVpbGQgaXMgc3RpbGwgcGFyYWxsZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgorZGlzYWJs ZV9wYXJhbGxlbF9idWlsZD15ZXMKKworIyBubyBob3RzcG90IEpJVCBmb3IgcHBjMzIKK2Nhc2Ug IiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0KikgOzsKKwlwcGMqKSBfdXNlX3plcm89 eWVzIDs7Citlc2FjCisKK2lmIFsgLW4gIiRfdXNlX3plcm8iIF07IHRoZW4KKwltYWtlZGVwZW5k cys9IiBsaWJmZmktZGV2ZWwiCisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWp2bS12YXJpYW50 cz16ZXJvIgorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGMqKSBjb25maWd1 cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGstanZtYXJncz0tWFg6VGhyZWFkU3RhY2tTaXplPTI1 NjAiOzsKKwllc2FjCitmaQorCitpZiBbIC1uICIkWEJQU19ERUJVR19QS0dTIiBdOyB0aGVuCisJ Y29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLW5hdGl2ZS1kZWJ1Zy1zeW1ib2xzPWludGVybmFsIgor ZmkKKworcG9zdF9leHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZpZ3VyZQorCisJaWYgWyAiJFhC UFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJcm0gLXIgc3JjL2pkay5ob3RzcG90 LmFnZW50CisJZmkKK30KKworcG9zdF9wYXRjaCgpIHsKKwlpZiBbICIkWEJQU19UQVJHRVRfTElC QyIgPSAibXVzbCIgXTsgdGhlbgorCQlmb3IgZiBpbiAiJHtGSUxFU0RJUn0iL211c2xfcGF0Y2hl cy8qLnBhdGNoOyBkbworCQkJbXNnX25vcm1hbCAiQXBwbHlpbmcgJHtmIyRGSUxFU0RJUi99XG4i CisJCQlwYXRjaCAtbE5wMSAtaSAiJGYiCisJCWRvbmUKKwlmaQorfQorCitkb19jb25maWd1cmUo KSB7CisJQ0ZMQUdTPSR7Q0ZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCUNYWEZMQUdTPSR7 Q1hYRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99CisKKwkjIGZvcmNlIEVMRnYyIGZvciBwcGM2 NCBqdXN0IGluIGNhc2UKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjNjQq KQorCQkJQ0ZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJQ1hYRkxBR1MrPSIgLURBQklfRUxGdjIi CisJCQk7OworCWVzYWMKKworCSMgY29tcGF0aWJpbGl0eSB3aXRoIEdDQyAxMC54CisJQ0ZMQUdT Kz0iIC1mY29tbW9uIC1mbm8tbGlmZXRpbWUtZHNlIgorCUNYWEZMQUdTKz0iIC1mY29tbW9uIC1m bm8tbGlmZXRpbWUtZHNlIgorCisJY29uZmlndXJlX2FyZ3M9JHtjb25maWd1cmVfYXJncy8tLXdp dGgtbGlidG9vbC1zeXNyb290PVwvdXNyXC9bYS16MC05XSotbGludXgtW2Etel0qL30KKwlpZiBb ICIkWEJQU19DQ0FDSEUiIF07IHRoZW4KKwkJY29uZmlndXJlX2FyZ3MrPSIgLS1lbmFibGUtY2Nh Y2hlIgorCWZpCisJQ0M9Ii91c3IvYmluL2NjIgorCUNYWD0iL3Vzci9iaW4vYysrIgorCS4vY29u ZmlndXJlICR7Y29uZmlndXJlX2FyZ3N9IFwKKwkJLS13aXRoLWV4dHJhLWNmbGFncz0iJENGTEFH UyIgXAorCQktLXdpdGgtZXh0cmEtY3h4ZmxhZ3M9IiRDWFhGTEFHUyIgXAorCQktLXdpdGgtZXh0 cmEtbGRmbGFncz0iJExERkxBR1MiIFwKKwkJUkVBREVMRj0kUkVBREVMRiBBUj0kQVIgU1RSSVA9 JFNUUklQIE5NPSROTSBcCisJCU9CSkRVTVA9JE9CSkRVTVAgT0JKQ09QWT0kT0JKQ09QWQorfQor Citwb3N0X2luc3RhbGwoKSB7CisJbXYgJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrLSR7 X2Jhc2VfdmVyc2lvbn0gJHtERVNURElSfS8kX2pka19ob21lCisJcm0gLXJmICR7REVTVERJUn0v dXNyL2xpYi9iaW4KKwlybSAtZiAkREVTVERJUi8kX2pka19ob21lL2xpYi9zcmMuemlwCisJdmxp Y2Vuc2UgQVNTRU1CTFlfRVhDRVBUSU9OCisJdmxpY2Vuc2UgTElDRU5TRQorfQoKRnJvbSAzYjk5 ZWY2MzU4MTIxZjE2N2VmZDkyZjQ3N2Q0NzVhODQwYTgyZmE4IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+CkRhdGU6IFRodSwgMyBGZWIgMjAy MiAxNTowMjoxMCAtMDUwMApTdWJqZWN0OiBbUEFUQ0ggMy83XSBOZXcgcGFja2FnZTogb3Blbmpk azEzLWJvb3RzdHJhcC0xMy4wLjIrOAoKLS0tCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNo NjQucGF0Y2ggICAgICAgICAgfCAgMTAgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0 Y2ggICAgICAgICAgICAgIHwgIDI0ICsrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBh dGNoICAgICAgICAgICAgfCAzODcgKysrKysrKysrKysrKysrKysrCiAuLi4vZmlsZXMvbXVzbF9w YXRjaGVzL3BwYy5wYXRjaCAgICAgICAgICAgICAgfCAgNDUgKysKIC4uLi9maWxlcy9tdXNsX3Bh dGNoZXMveDg2LnBhdGNoICAgICAgICAgICAgICB8IDEzMCArKysrKysKIHNyY3BrZ3Mvb3Blbmpk azEzLWJvb3RzdHJhcC90ZW1wbGF0ZSAgICAgICAgICB8IDE0NCArKysrKysrCiA2IGZpbGVzIGNo YW5nZWQsIDc0MCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVu amRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxMy1ib290c3Ry YXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL3g4Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEzLWJv b3RzdHJhcC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJh cC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNmM1ZDRkMmJlMgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5w YXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFy Y2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4 X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BAIC03NCw3ICs3NCw2IEBACisgIyBpbmNs dWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+ CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorIAorICNkZWZpbmUgUkVHX0ZQIDI5CisgI2Rl ZmluZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9m aWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFw L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi5hZGM0NTI2NjBkZjUKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29w ZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApAQCAtMCwwICsx LDI0IEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5j cHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAor QEAgLTcxLDkgKzcxLDIwIEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwu aD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgor ICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNrIGFzIHRoZSBvcmln aW4gaWYgYmVsb3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8KKysvLyBvc19s aW51eF9hcm0uY3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0b3IgYmVmb3Jl IHRva2VuICIoIgorKy8vICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+fgorKy8vCisr Ly8gVGhlIE5HUkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2UgaXQgdG8gdGhh dCB2YWx1ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRpZgorKyNkZWZp bmUgTkdSRUcgMTgKKysKKyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgorIAorIC8vIERvbid0 ICNkZWZpbmUgU1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5vdCBzYWZlIHRv IHVzZSwgc28gdGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRj aCBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi44ZTIzOWJmZTc4 NjMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMv bXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzg3IEBACitkaWZmIC0tZ2l0IGEv bWFrZS9SZWxlYXNlRmlsZS5nbWsgYi9tYWtlL1JlbGVhc2VGaWxlLmdtaworLS0tIGEvbWFrZS9S ZWxlYXNlRmlsZS5nbWsKKysrKyBiL21ha2UvUmVsZWFzZUZpbGUuZ21rCitAQCAtNTMsNiArNTMs NyBAQCBkZWZpbmUgY3JlYXRlLWluZm8tZmlsZQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAi SkFWQV9WRVJTSU9OX0RBVEUiLCAiJChWRVJTSU9OX0RBVEUpIikKKyAgICQoY2FsbCBpbmZvLWZp bGUtaXRlbSwgIk9TX05BTUUiLCAiJChSRUxFQVNFX0ZJTEVfT1NfTkFNRSkiKQorICAgJChjYWxs IGluZm8tZmlsZS1pdGVtLCAiT1NfQVJDSCIsICIkKFJFTEVBU0VfRklMRV9PU19BUkNIKSIpCisr ICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJMSUJDIiwgIm11c2wiKQorIGVuZGVmCisgCisgIyBQ YXJhbSAxIC0gVGhlIGZpbGUgY29udGFpbmluZyB0aGUgTU9EVUxFUyBsaXN0CitkaWZmIC0tZ2l0 IGEvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtayBiL21ha2UvaG90c3BvdC9saWIvQ29t cGlsZUp2bS5nbWsKKy0tLSBhL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKKysrKyBi L21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKK0BAIC03MSw2ICs3MSw3IEBAIENGTEFH U19WTV9WRVJTSU9OIDo9IFwKKyAgICAgLURIT1RTUE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJOQU1F KSInIFwKKyAgICAgLURIT1RTUE9UX1ZNX0RJU1RSTz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8pIicg XAorICAgICAtRENQVT0nIiQoT1BFTkpES19UQVJHRVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAorKyAg ICAtRExJQkM9JyJtdXNsIicgXAorICAgICAjCisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK K2RpZmYgLS1naXQgYS9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtayBiL21ha2UvbGliL0NvcmVM aWJyYXJpZXMuZ21rCistLS0gYS9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworKysrIGIvbWFr ZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKK0BAIC0xOTQsNiArMTk0LDcgQEAgaWZlcSAoJChPUEVO SkRLX1RBUkdFVF9PUyksIHdpbmRvd3MpCisgZW5kaWYKKyAKKyBMSUJKTElfQ0ZMQUdTICs9ICQo TElCWl9DRkxBR1MpCisrTElCSkxJX0NGTEFHUyArPSAtRExJQkM9XCJtdXNsXCIKKyAKKyBpZm5l cSAoJChVU0VfRVhURVJOQUxfTElCWiksIHRydWUpCisgICBMSUJKTElfRVhUUkFfRklMRVMgKz0g XAorZGlmZiAtLWdpdCBhL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcCBiL3NyYy9o b3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorLS0tIGEvc3JjL2hvdHNwb3Qvb3MvbGludXgv b3NfbGludXguY3BwCisrKysgYi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKK0BA IC05OSw3ICs5OSw2IEBACisgIyBpbmNsdWRlIDxzdHJpbmcuaD4KKyAjIGluY2x1ZGUgPHN5c2Nh bGwuaD4KKyAjIGluY2x1ZGUgPHN5cy9zeXNpbmZvLmg+CistIyBpbmNsdWRlIDxnbnUvbGliYy12 ZXJzaW9uLmg+CisgIyBpbmNsdWRlIDxzeXMvaXBjLmg+CisgIyBpbmNsdWRlIDxzeXMvc2htLmg+ CisgIyBpbmNsdWRlIDxsaW5rLmg+CitAQCAtNTE5LDYgKzUxOCwxMSBAQCB2b2lkIG9zOjpMaW51 eDo6aG90c3BvdF9zaWdtYXNrKFRocmVhZCogdGhyZWFkKSB7CisgLy8gZGV0ZWN0aW5nIHB0aHJl YWQgbGlicmFyeQorIAorIHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7CisrI2lm ICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykKKysgIC8vIEhhcmQg Y29kZSBBbHBpbmUgTGludXggc3VwcG9ydGVkIG11c2wgY29tcGF0aWJsZSBzZXR0aW5ncworKyAg b3M6OkxpbnV4OjpzZXRfZ2xpYmNfdmVyc2lvbigiZ2xpYmMgMi45Iik7CisrICBvczo6TGludXg6 OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oIk5QVEwiKTsKKysjZWxzZQorICAgLy8gU2F2ZSBnbGli YyBhbmQgcHRocmVhZCB2ZXJzaW9uIHN0cmluZ3MuCisgI2lmICFkZWZpbmVkKF9DU19HTlVfTElC Q19WRVJTSU9OKSB8fCBcCisgICAgICFkZWZpbmVkKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9O KQorQEAgLTUzNiw2ICs1NDAsNyBAQCB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkg eworICAgc3RyID0gKGNoYXIgKiltYWxsb2MobiwgbXRJbnRlcm5hbCk7CisgICBjb25mc3RyKF9D U19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBzdHIsIG4pOworICAgb3M6OkxpbnV4OjpzZXRfbGli cHRocmVhZF92ZXJzaW9uKHN0cik7CisrI2VuZGlmCisgfQorIAorIC8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCitAQCAtMjg1NSwyMCArMjg2MCwzNiBAQCB2b2lkIG9zOjpMaW51eDo6c2NoZWRfZ2V0Y3B1 X2luaXQoKSB7CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX3dhcm4oaW50IG51bWJl ciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1h X2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KKyAKKytzdGF0aWMgdm9pZCogZGx2c3ltX2lmX2F2YWls YWJsZSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24p IHsKKysgIHR5cGVkZWYgdm9pZCogKCpkbHZzeW1fZnVuY190eXBlKSh2b2lkKiBoYW5kbGUsIGNv bnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pOworKyAgc3RhdGljIGRsdnN5bV9m dW5jX3R5cGUgZGx2c3ltX2Z1bmM7CisrICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNl OworKworKyAgaWYgKCFpbml0aWFsaXplZCkgeworKyAgICBkbHZzeW1fZnVuYyA9IChkbHZzeW1f ZnVuY190eXBlKWRsc3ltKFJUTERfTkVYVCwgImRsdnN5bSIpOworKyAgICBpbml0aWFsaXplZCA9 IHRydWU7CisrICB9CisrCisrICBpZiAoZGx2c3ltX2Z1bmMgIT0gTlVMTCkgeworKyAgICB2b2lk ICpmID0gZGx2c3ltX2Z1bmMoaGFuZGxlLCBuYW1lLCB2ZXJzaW9uKTsKKysgICAgaWYgKGYgIT0g TlVMTCkgeworKyAgICAgIHJldHVybiBmOworKyAgICB9CisrICB9CisrCisrICByZXR1cm4gZGxz eW0oaGFuZGxlLCBuYW1lKTsKKyt9CisrCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJu dW1hIHN5bWJvbCB2ZXJzaW9uIDEuMSAoQVBJIHYxKS4gSWYgaXQgZmFpbHMKKyAvLyBsb2FkIHN5 bWJvbCBmcm9tIGJhc2UgdmVyc2lvbiBpbnN0ZWFkLgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVt YV9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKKy0gIHZvaWQgKmYgPSBk bHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKy0gIGlmIChmID09IE5VTEwpIHsK Ky0gICAgZiA9IGRsc3ltKGhhbmRsZSwgbmFtZSk7CistICB9CistICByZXR1cm4gZjsKKysgIHJl dHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4xIik7Cisg fQorIAorIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAx LjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVMTCBpZiB0aGUgc3ltYm9sIGlzIG5vdCBk ZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9uLgorIHZvaWQqIG9zOjpMaW51eDo6bGli bnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUpIHsKKy0gIHJldHVy biBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKysgIHJldHVybiBkbHZzeW1f aWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisgfQorIAorIGJvb2wg b3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7CitkaWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qvb3Nf Y3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4 X3g4Ni9vc19saW51eF94ODYuY3BwCistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2 L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3Nf bGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMg aW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFNRDY0 CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorLSNlbmRpZgorIAorICNpZmRlZiBBTUQ2NAor ICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKK2RpZmYgLS1naXQgYS9zcmMvaG90c3BvdC9zaGFyZS9n Yy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAgYi9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFy ZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJl ZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVk L2dlbkNvbGxlY3RlZEhlYXAuY3BwCitAQCAtMTE0OCw3ICsxMTQ4LDcgQEAgSGVhcFdvcmQqIEdl bkNvbGxlY3RlZEhlYXA6OmFsbG9jYXRlX25ld190bGFiKHNpemVfdCBtaW5fc2l6ZSwKKyBzdGF0 aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFsbGVzdFNjcmF0Y2goU2NyYXRjaEJsb2NrICoqcHJl dl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0cnVlOworICAgc2l6ZV90IG1pbl9zaXplID0gMDsg ICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29uY2VwdHVhbGx5IGluZmluaXRlLgorLSAgU2NyYXRj aEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21hbGxlc3Q7CisrICBTY3JhdGNoQmxvY2sgKipzbWFs bGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7CisgICBTY3JhdGNoQmxvY2sgICpjdXIgPSAqcHJl dl9wdHI7CisgICB3aGlsZSAoY3VyKSB7CisgICAgIGFzc2VydCgqcHJldl9wdHIgPT0gY3VyLCAi anVzdCBjaGVja2luZyIpOworZGlmZiAtLWdpdCBhL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUv dm1fdmVyc2lvbi5jcHAgYi9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24uY3Bw CistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24uY3BwCisrKysgYi9z cmMvaG90c3BvdC9zaGFyZS9ydW50aW1lL3ZtX3ZlcnNpb24uY3BwCitAQCAtMjcwLDcgKzI3MCw3 IEBAIGNvbnN0IGNoYXIqIEFic3RyYWN0X1ZNX1ZlcnNpb246OmludGVybmFsX3ZtX2luZm9fc3Ry aW5nKCkgeworICAgI2VuZGlmCisgCisgICAjZGVmaW5lIElOVEVSTkFMX1ZFUlNJT05fU1VGRklY IFZNX1JFTEVBU0UgIikiIFwKKy0gICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJD SF9TVFIgXAorKyAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBMSUJD IFwKKyAgICAgICAgICAiIEpSRSAoIiBWRVJTSU9OX1NUUklORyAiKSwgYnVpbHQgb24gIiBfX0RB VEVfXyAiICIgX19USU1FX18gXAorICAgICAgICAgICIgYnkgIiBYU1RSKEhPVFNQT1RfQlVJTERf VVNFUikgIiB3aXRoICIgSE9UU1BPVF9CVUlMRF9DT01QSUxFUgorIAorZGlmZiAtLWdpdCBhL3Ny Yy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwIGIvc3Jj L2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKKy0tLSBh L3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCisr KysgYi9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhw cAorQEAgLTIwNCw3ICsyMDQsNyBAQCBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0 dXJuIGlzbmFuZChmKTsgfQorICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQorIGlubGluZSBpbnQg Z19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxpZiBkZWZpbmVkKExJ TlVYKSB8fCBkZWZpbmVkKF9BTExCU0RfU09VUkNFKQorLWlubGluZSBpbnQgZ19pc25hbihmbG9h dCAgZikgeyByZXR1cm4gaXNuYW5mKGYpOyB9CisraW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBm KSB7IHJldHVybiBpc25hbihmKTsgfQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyBy ZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxzZQorICNlcnJvciAibWlzc2luZyBwbGF0Zm9ybS1zcGVj aWZpYyBkZWZpbml0aW9uIGhlcmUiCitkaWZmIC0tZ2l0IGEvc3JjL2phdmEuYmFzZS9saW51eC9u YXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMgYi9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9s aWJuZXQvbGludXhfY2xvc2UuYworLS0tIGEvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGli bmV0L2xpbnV4X2Nsb3NlLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5l dC9saW51eF9jbG9zZS5jCitAQCAtNjAsNyArNjAsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CisgLyoK KyAgKiBTaWduYWwgdG8gdW5ibG9jayB0aHJlYWQKKyAgKi8KKy1zdGF0aWMgaW50IHNpZ1dha2V1 cCA9IChfX1NJR1JUTUFYIC0gMik7Cisrc3RhdGljIGludCBzaWdXYWtldXA7CisgCisgLyoKKyAg KiBmZFRhYmxlIGhvbGRzIG9uZSBlbnRyeSBwZXIgZmlsZSBkZXNjcmlwdG9yLCB1cCB0byBhIGNl cnRhaW4KK0BAIC0xNDksNiArMTQ5LDcgQEAgc3RhdGljIHZvaWQgX19hdHRyaWJ1dGUoKGNvbnN0 cnVjdG9yKSkgaW5pdCgpIHsKKyAgICAgLyoKKyAgICAgICogU2V0dXAgdGhlIHNpZ25hbCBoYW5k bGVyCisgICAgICAqLworKyAgICBzaWdXYWtldXAgPSBTSUdSVE1BWCAtIDI7CisgICAgIHNhLnNh X2hhbmRsZXIgPSBzaWdfd2FrZXVwOworICAgICBzYS5zYV9mbGFncyAgID0gMDsKKyAgICAgc2ln ZW1wdHlzZXQoJnNhLnNhX21hc2spOworZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmJhc2UvdW5peC9u YXRpdmUvbGliamF2YS9jaGlsZHByb2MuYyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli amF2YS9jaGlsZHByb2MuYworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZh L2NoaWxkcHJvYy5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hp bGRwcm9jLmMKK0BAIC0yMzQsNyArMjM0LDEzIEBAIEpES19leGVjdnBlKGludCBtb2RlLCBjb25z dCBjaGFyICpmaWxlLAorIHsKKyAgICAgaWYgKGVudnAgPT0gTlVMTCB8fCAoY2hhciAqKikgZW52 cCA9PSBlbnZpcm9uKSB7CisgICAgICAgICBleGVjdnAoZmlsZSwgKGNoYXIgKiopIGFyZ3YpOwor LSAgICAgICAgcmV0dXJuOworKyAgICAgICAgLy8gRU5PRVhFQyBpbmRpY2F0ZXMgdGhhdCB0aGUg ZmlsZSBoZWFkZXIgd2FzIG5vdCByZWNvZ25pemVkLiBUaGUgbXVzbCBDCisrICAgICAgICAvLyBs aWJyYXJ5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZmFsbGJhY2sgdG8gL2Jpbi9zaCBmb3IgdGhh dCBjYXNlLCBzbyBmYWxsCisrICAgICAgICAvLyB0aHJvdWdoIHRvIHRoZSBjb2RlIGJlbG93IHdo aWNoIGltcGxlbWVudHMgdGhhdCBmYWxsYmFjayB1c2luZworKyAgICAgICAgLy8gZXhlY3ZlX3dp dGhfc2hlbGxfZmFsbGJhY2suCisrICAgICAgICBpZiAoZXJybm8gIT0gRU5PRVhFQykgeworKyAg ICAgICAgICAgIHJldHVybjsKKysgICAgICAgIH0KKyAgICAgfQorIAorICAgICBpZiAoKmZpbGUg PT0gJ1wwJykgeworZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2 YS9qZGtfdXRpbF9tZC5oIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191 dGlsX21kLmgKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRp bF9tZC5oCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxf bWQuaAorQEAgLTM3LDcgKzM3LDcgQEAKKyAjZGVmaW5lIElTTkFORChkKSBpc25hbihkKQorICNl bGlmIGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9BTExCU0RfU09VUkNFKQorICNpbmNs dWRlIDxtYXRoLmg+CistI2RlZmluZSBJU05BTkYoZikgaXNuYW5mKGYpCisrI2RlZmluZSBJU05B TkYoZikgaXNuYW4oZikKKyAjZGVmaW5lIElTTkFORChkKSBpc25hbihkKQorICNlbGlmIGRlZmlu ZWQoX0FJWCkKKyAjaW5jbHVkZSA8bWF0aC5oPgorZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmJhc2Uv dW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jIGIvc3JjL2phdmEuYmFzZS91bml4 L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5p eC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3Vu aXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworQEAgLTIzNSw2ICsyMzUsMzkgQEAg UmVxdWlyZXNTZXRlbnYoY29uc3QgY2hhciAqanZtcGF0aCkgeworICAgICBjaGFyICpkbWxscCA9 IE5VTEw7CisgICAgIGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBwb2ludGVyICovCisgCisrI2lmZGVm IF9fbGludXgKKysjaWZuZGVmIExJQkMKKysjZXJyb3IgIkxJQkMgbm90IHNldCIKKysjZW5kaWYK KysKKysgICAgaWYgKHN0cmNtcChMSUJDLCAibXVzbCIpID09IDApIHsKKysgICAgICAvKgorKyAg ICAgICAqIFRoZSBtdXNsIGxpYnJhcnkgbG9hZGVyIHJlcXVpcmVzIExEX0xJQlJBUllfUEFUSCB0 byBiZSBzZXQgaW4KKysgICAgICAgKiBvcmRlciB0byBjb3JyZWN0bHkgcmVzb2x2ZSB0aGUgZGVw ZW5kZW5jeSBsaWJqYXZhLnNvIGhhcyBvbiBsaWJqdm0uc28uCisrICAgICAgICoKKysgICAgICAg KiBTcGVjaWZpY2FsbHksIGl0IGRpZmZlcnMgZnJvbSBnbGliYyBpbiB0aGUgc2Vuc2UgdGhhdCBl dmVuIGlmCisrICAgICAgICogbGlianZtLnNvIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkIGl0IHdp bGwgbm90IGJlIGNvbnNpZGVyZWQgYQorKyAgICAgICAqIGNhbmRpZGF0ZSBmb3IgcmVzb2x2aW5n IHRoZSBkZXBlbmRlbmN5IHVubGVzcyB0aGUgKmZ1bGwqIHBhdGgKKysgICAgICAgKiBvZiB0aGUg YWxyZWFkeSBsb2FkZWQgbGlicmFyeSBtYXRjaGVzIHRoZSBkZXBlbmRlbmN5IGJlaW5nIGxvYWRl ZC4KKysgICAgICAgKgorKyAgICAgICAqIGxpYmp2bS5zbyBpcyBiZWluZyBsb2FkZWQgYnkgdGhl IGxhdW5jaGVyIHVzaW5nIGEgbG9uZyBwYXRoIHRvCisrICAgICAgICogZGxvcGVuLCBub3QganVz dCB0aGUgYmFzZW5hbWUgb2YgdGhlIGxpYnJhcnkuIFR5cGljYWxseSB0aGlzCisrICAgICAgICog aXMgc29tZXRoaW5nIGxpa2UgIi4uL2xpYi9zZXJ2ZXIvbGlianZtLnNvIi4gSG93ZXZlciwgaWYv d2hlbgorKyAgICAgICAqIGxpYmp2bS5zbyBsYXRlciB0cmllcyB0byBkbG9wZW4gbGliamF2YS5z byAod2hpY2ggaXQgZG9lcyBpbgorKyAgICAgICAqIG9yZGVyIHRvIGdldCBhY2Nlc3MgdG8gYSBm ZXcgZnVuY3Rpb25zIGltcGxlbWVudGVkIGluCisrICAgICAgICogbGliamF2YS5zbykgdGhlIG11 c2wgbG9hZGVyIHdpbGwsIGFzIHBhcnQgb2YgbG9hZGluZworKyAgICAgICAqIGRlcGVuZGVudCBs aWJyYXJpZXMsIHRyeSB0byBsb2FkIGxpYmp2bS5zbyB1c2luZyBvbmx5IGl0cworKyAgICAgICAq IGJhc2VuYW1lICJsaWJqdm0uc28iLiBTaW5jZSB0aGlzIGRvZXMgbm90IG1hdGNoIHRoZSBsb25n ZXIKKysgICAgICAgKiBwYXRoIHBhdGggaXQgd2FzIGZpcnN0IGxvYWRlZCB3aXRoLCB0aGUgYWxy ZWFkeSBsb2FkZWQKKysgICAgICAgKiBsaWJyYXJ5IGlzIG5vdCBjb25zaWRlcmVkIGEgY2FuZGlk YXRlLCBhbmQgdGhlIGxvYWRlciB3aWxsCisrICAgICAgICogaW5zdGVhZCBsb29rIGZvciBsaWJq dm0uc28gZWxzZXdoZXJlLiBJZiBpdCdzIG5vdCBpbgorKyAgICAgICAqIExEX0xJQlJBUllfUEFU SCB0aGUgZGVwZW5kZW5jeSBsb2FkIHdpbGwgZmFpbCwgYW5kIGxpYmphdmEuc28KKysgICAgICAg KiB3aWxsIHRoZXJlZm9yZSBmYWlsIGFzIHdlbGwuCisrICAgICAgICovCisrICAgICAgcmV0dXJu IEpOSV9UUlVFOworKyAgICB9CisrI2VuZGlmCisrCisgI2lmZGVmIEFJWAorICAgICAvKiBXZSBh bHdheXMgaGF2ZSB0byBzZXQgdGhlIExJQlBBVEggb24gQUlYIGJlY2F1c2UgbGQgZG9lc24ndCBz dXBwb3J0ICRPUklHSU4uICovCisgICAgIHJldHVybiBKTklfVFJVRTsKK2RpZmYgLS1naXQgYS9z cmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYyBiL3NyYy9q YXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCistLS0gYS9zcmMv amF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworKysrIGIvc3Jj L2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKK0BAIC0zNiw3 ICszNiw3IEBACisgI2lmZGVmIF9fbGludXhfXworICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAg IC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvbGludXhfY2xvc2UuYyAqLworLSAgI2RlZmluZSBJTlRF UlJVUFRfU0lHTkFMIChfX1NJR1JUTUFYIC0gMikKKysgICNkZWZpbmUgSU5URVJSVVBUX1NJR05B TCAoU0lHUlRNQVggLSAyKQorICNlbGlmIGRlZmluZWQoX0FJWCkKKyAgICNpbmNsdWRlIDxwdGhy ZWFkLmg+CisgICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2FpeF9jbG9zZS5jICovCitkaWZmIC0t Z2l0IGEvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94YXd0L1hUb29s a2l0LmMgYi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRv b2xraXQuYworLS0tIGEvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94 YXd0L1hUb29sa2l0LmMKKysrKyBiL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0 X3hhd3QveGF3dC9YVG9vbGtpdC5jCitAQCAtMjcsOSArMjcsNiBAQAorICNpbmNsdWRlIDxYMTEv WHV0aWwuaD4KKyAjaW5jbHVkZSA8WDExL1hvcy5oPgorICNpbmNsdWRlIDxYMTEvWGF0b20uaD4K Ky0jaWZkZWYgX19saW51eF9fCistI2luY2x1ZGUgPGV4ZWNpbmZvLmg+CistI2VuZGlmCisgCisg I2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxqbmkuaD4KK0BAIC03OTEsMjYgKzc4OCw2IEBA IEpOSUVYUE9SVCBqc3RyaW5nIEpOSUNBTEwgSmF2YV9zdW5fYXd0X1gxMV9YVG9vbGtpdF9nZXRF bnYKKyAgICAgcmV0dXJuIHJldDsKKyB9CisgCistI2lmZGVmIF9fbGludXhfXworLXZvaWQgcHJp bnRfc3RhY2sodm9pZCkKKy17CistICB2b2lkICphcnJheVsxMF07CistICBzaXplX3Qgc2l6ZTsK Ky0gIGNoYXIgKipzdHJpbmdzOworLSAgc2l6ZV90IGk7CistCistICBzaXplID0gYmFja3RyYWNl IChhcnJheSwgMTApOworLSAgc3RyaW5ncyA9IGJhY2t0cmFjZV9zeW1ib2xzIChhcnJheSwgc2l6 ZSk7CistCistICBmcHJpbnRmIChzdGRlcnIsICJPYnRhaW5lZCAlemQgc3RhY2sgZnJhbWVzLlxu Iiwgc2l6ZSk7CistCistICBmb3IgKGkgPSAwOyBpIDwgc2l6ZTsgaSsrKQorLSAgICAgZnByaW50 ZiAoc3RkZXJyLCAiJXNcbiIsIHN0cmluZ3NbaV0pOworLQorLSAgZnJlZSAoc3RyaW5ncyk7Cist fQorLSNlbmRpZgorLQorIFdpbmRvdyBnZXRfeGF3dF9yb290X3NoZWxsKEpOSUVudiAqZW52KSB7 CisgICBzdGF0aWMgamNsYXNzIGNsYXNzWFJvb3RXaW5kb3cgPSBOVUxMOworICAgc3RhdGljIGpt ZXRob2RJRCBtZXRob2RHZXRYUm9vdFdpbmRvdyA9IE5VTEw7CitkaWZmIC0tZ2l0IGEvc3JjL2pk ay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaCBiL3NyYy9qZGsuamR3cC5h Z2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKKy0tLSBhL3NyYy9qZGsuamR3cC5hZ2Vu dC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKKysrKyBiL3NyYy9qZGsuamR3cC5hZ2VudC9z aGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKK0BAIC0zNSwxNSArMzUsMTUgQEAKKyAjaWZkZWYg REVCVUcKKyAgICAgLyogSnVzdCB0byBtYWtlIHN1cmUgdGhlc2UgaW50ZXJmYWNlcyBhcmUgbm90 IHVzZWQgaGVyZS4gKi8KKyAgICAgI3VuZGVmIGZyZWUKKy0gICAgI2RlZmluZSBmcmVlKHApIERv IG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgZnJlZSBkb19ub3RfdXNlX3Ro aXNfaW50ZXJmYWNlX2ZyZWUKKyAgICAgI3VuZGVmIG1hbGxvYworLSAgICAjZGVmaW5lIG1hbGxv YyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIG1hbGxvYyBkb19u b3RfdXNlX3RoaXNfaW50ZXJmYWNlX21hbGxvYworICAgICAjdW5kZWYgY2FsbG9jCistICAgICNk ZWZpbmUgY2FsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUg Y2FsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfY2FsbG9jCisgICAgICN1bmRlZiByZWFs bG9jCistICAgICNkZWZpbmUgcmVhbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgor KyAgICAjZGVmaW5lIHJlYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9yZWFsbG9jCisg ICAgICN1bmRlZiBzdHJkdXAKKy0gICAgI2RlZmluZSBzdHJkdXAocCkgRG8gbm90IHVzZSB0aGlz IGludGVyZmFjZS4KKysgICAgI2RlZmluZSBzdHJkdXAgZG9fbm90X3VzZV90aGlzX2ludGVyZmFj ZV9zdHJkdXAKKyAjZW5kaWYKKyAKKyAjaW5jbHVkZSAibG9nX21lc3NhZ2VzLmgiCitkaWZmIC0t Z2l0IGEvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9r ZS5jIGIvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9r ZS5jCistLS0gYS90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhl aW52b2tlLmMKKysrKyBiL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdl cy9leGVpbnZva2UuYworQEAgLTMzLDYgKzMzLDcgQEAKKyAKKyAjaW5jbHVkZSA8YXNzZXJ0Lmg+ CisgI2luY2x1ZGUgPGpuaS5oPgorKyNpbmNsdWRlIDxqdm0uaD4KKyAjaW5jbHVkZSA8YWxsb2Nh Lmg+CisgI2luY2x1ZGUgPHNpZ25hbC5oPgorICNpbmNsdWRlIDxzdHJpbmcuaD4KK0BAIC05MSw2 ICs5MiwyMCBAQCB2b2lkIHNldF9zaWduYWxfaGFuZGxlcigpIHsKKyAgIH0KKyB9CisgCisraW50 IGdldF9qYXZhX3N0YWNrc2l6ZSAoKSB7CisrICBzaXplX3Qgc3RhY2tzaXplOworKyAgcHRocmVh ZF9hdHRyX3QgYXR0cjsKKysgIEpESzFfMUluaXRBcmdzIGpka19hcmdzOworKworKyAgamRrX2Fy Z3MudmVyc2lvbiA9IEpOSV9WRVJTSU9OXzFfMTsKKysgIEpOSV9HZXREZWZhdWx0SmF2YVZNSW5p dEFyZ3MoJmpka19hcmdzKTsKKysgIGlmIChqZGtfYXJncy5qYXZhU3RhY2tTaXplIDw9IDApIHsK KysgICAgZnByaW50ZihzdGRlcnIsICJUZXN0IEVSUk9SLiBDYW4ndCBnZXQgYSB2YWxpZCB2YWx1 ZSBmb3IgdGhlIGRlZmF1bHQgc3RhY2tzaXplLlxuIik7CisrICAgIGV4aXQoNyk7CisrICB9Cisr ICByZXR1cm4gamRrX2FyZ3MuamF2YVN0YWNrU2l6ZTsKKyt9CisrCisgdm9pZCAqcnVuX2phdmFf b3ZlcmZsb3cgKHZvaWQgKnApIHsKKyAgIEpOSUVudiAqZW52OworICAgamNsYXNzIGNsYXNzX2lk OworQEAgLTI1NCwxMyArMjY5LDE5IEBAIGludCBtYWluIChpbnQgYXJnYywgY29uc3QgY2hhcioq IGFyZ3YpIHsKKyAgICAgZXhpdCg3KTsKKyAgIH0KKyAKKysgIGludCBzdGFja19zaXplID0gZ2V0 X2phdmFfc3RhY2tzaXplKCk7CisgICBwdGhyZWFkX3QgdGhyOworKyAgcHRocmVhZF9hdHRyX3Qg dGhyZWFkX2F0dHI7CisrCisrICBwdGhyZWFkX2F0dHJfaW5pdCgmdGhyZWFkX2F0dHIpOworKyAg cHRocmVhZF9hdHRyX3NldHN0YWNrc2l6ZSgmdGhyZWFkX2F0dHIsIHN0YWNrX3NpemUpOworIAor ICAgaWYgKGFyZ2MgPiAxICYmIHN0cmNtcChhcmd2WzFdLCAidGVzdF9qYXZhX292ZXJmbG93Iikg PT0gMCkgeworICAgICBwcmludGYoIlxuVGVzdGluZyBKQVZBX09WRVJGTE9XXG4iKTsKKyAKKyAg ICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBvdGhlciB0 aHJlYWRcbiIpOworLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwgcnVuX2phdmFfb3Zl cmZsb3csIE5VTEwpOworKworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRocmVhZF9hdHRy LCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxM KTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZv ciBpbml0aWFsIHRocmVhZFxuIik7CitAQCAtMjczLDcgKzI5NCw3IEBAIGludCBtYWluIChpbnQg YXJnYywgY29uc3QgY2hhcioqIGFyZ3YpIHsKKyAgICAgcHJpbnRmKCJcblRlc3RpbmcgTkFUSVZF X09WRVJGTE9XXG4iKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2Ug YmVoYXZpb3VyIGZvciBvdGhlciB0aHJlYWRcbiIpOworLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRo ciwgTlVMTCwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7CisrICAgIHB0aHJlYWRfY3JlYXRl ICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwpOworICAgICBw dGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBn dWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0aHJlYWRcbiIpOwpkaWZmIC0tZ2l0IGEv c3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gg Yi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQzMDZkNTAxZTRiOAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMvcHBjLnBhdGNoCkBAIC0wLDAgKzEsNDUgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFr ZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMv Y29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0g b2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAorKysrIG5ldy9z cmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5jcHAKK0BAIC00Nyw2ICs0Nyw4 IEBACisgI2luY2x1ZGUgIm9wdG8vaW50cmluc2ljbm9kZS5ocHAiCisgI2VuZGlmCisgCisrI2lu Y2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyAjaWZkZWYgUFJPRFVDVAorICNkZWZpbmUgQkxPQ0tf Q09NTUVOVChzdHIpIC8vIG5vdGhpbmcKKyAjZWxzZQorLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUv cHBjL3ZtX3ZlcnNpb25fcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9jcHUvcHBjL3ZtX3Zl cnNpb25fcHBjLmNwcAorQEAgLTg0NSw3ICs4NDUsNyBAQCB2b2lkIFZNX1ZlcnNpb246OmRldGVy bWluZV9mZWF0dXJlcygpIHsKKyAgIHVuc2lnbmVkIGxvbmcgYXV4diA9IGdldGF1eHZhbChBVF9I V0NBUDIpOworIAorICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNX05PU0MpIHsKKy0gICAg aWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSEFTX0hUTSkgeworKyAgICBpZiAoYXV4diAmIFBQQ19G RUFUVVJFMl9IVE0pIHsKKyAgICAgICAvLyBUTSBvbiBQT1dFUjggYW5kIFBPV0VSOSBpbiBjb21w YXQgbW9kZSAoVk0pIGlzIHN1cHBvcnRlZCBieSB0aGUgSlZNLgorICAgICAgIC8vIFRNIG9uIFBP V0VSOSBERDIuMSBOViAoYmFyZW1ldGFsKSBpcyBub3Qgc3VwcG9ydGVkIGJ5IHRoZSBKVk0gKFRN IG9uCisgICAgICAgLy8gUE9XRVI5IEREMi4xIE5WIGhhcyBhIGZldyBpc3N1ZXMgdGhhdCBuZWVk IGEgY291cGxlIG9mIGZpcm13YXJlCistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9w cGMvb3NfbGludXhfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBj L29zX2xpbnV4X3BwYy5jcHAKK0BAIC03NSw3ICs3NSw3IEBACisgIyBpbmNsdWRlIDxwd2QuaD4K KyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistCisrIyBpbmNs dWRlIDxhc20vcHRyYWNlLmg+CisgCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2ludGVy KCkgeworICAgaW50cHRyX3QqIGNzcDsKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4 X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAorKysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGlu dXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCitAQCAtMjMsNiArMjMsOCBAQAorICAqCisgICov CisgCisrI2luY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKysKKyAjaW5jbHVkZSAicHJlY29tcGlsZWQu aHBwIgorICNpbmNsdWRlICJydW50aW1lL2ZyYW1lLmlubGluZS5ocHAiCisgI2luY2x1ZGUgInJ1 bnRpbWUvdGhyZWFkLmhwcCIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJh cC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0 cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi45YzY0YzE4OTAzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApAQCAtMCww ICsxLDEzMCBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0 cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1 NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xp bnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51 eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTkwLDYgKzkwLDEyNiBAQAorICNkZWZpbmUgU1BF TExfUkVHX0ZQICJlYnAiCisgI2VuZGlmIC8vIEFNRDY0CisKKysvLyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKysvLyBUYWtlbiBmcm9tIGdsaWJjIDIuMjgKKysvLyBzb3VyY2U6IGh0dHBzOi8vc291 cmNld2FyZS5vcmcvZ2l0Lz9wPWdsaWJjLmdpdDthPWJsb2I7Zj1zeXNkZXBzL3g4Ni9mcHVfY29u dHJvbC5oO2g9NGNiOThjNTY3OWIyODk3ZmY0ZTU4MjZkMjI4Y2JhNmJlNTg5ZTI0ZDtoYj0zYzAz YmFjYTM3ZmRjYjUyYzM4ODFlNjUzY2EzOTJiYmE3YTk5YzJiCisrLy8gPT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09CisrI2lmbmRlZiBBTUQ2NAorKy8qIEZQVSBjb250cm9sIHdvcmQgYml0cy4gIHg4NiB2 ZXJzaW9uLgorKyAgIENvcHlyaWdodCAoQykgMTk5My0yMDE4IEZyZWUgU29mdHdhcmUgRm91bmRh dGlvbiwgSW5jLgorKyAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBHTlUgQyBMaWJyYXJ5Lgor KyAgIENvbnRyaWJ1dGVkIGJ5IE9sYWYgRmxlYmJlLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5 IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorKyAgIG1v ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK KysgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIKKysgICB2ZXJzaW9uIDIuMSBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0 aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBkaXN0 cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorKyAgIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisr ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg U2VlIHRoZSBHTlUKKysgICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk ZXRhaWxzLgorKworKyAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKysgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBD IExpYnJhcnk7IGlmIG5vdCwgc2VlCisrICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+ LiAgKi8KKysKKysjaWZuZGVmIF9GUFVfQ09OVFJPTF9ICisrI2RlZmluZSBfRlBVX0NPTlRST0xf SAkxCisrCisrLyogTm90ZSB0aGF0IHRoaXMgZmlsZSBzZXRzIG9uIHg4Ni02NCBvbmx5IHRoZSB4 ODcgRlBVLCBpdCBkb2VzIG5vdAorKyAgIHRvdWNoIHRoZSBTU0UgdW5pdC4gICovCisrCisrLyog SGVyZSBpcyB0aGUgZGlydHkgcGFydC4gU2V0IHVwIHlvdXIgMzg3IHRocm91Z2ggdGhlIGNvbnRy b2wgd29yZAorKyAqIChjdykgcmVnaXN0ZXIuCisrICoKKysgKiAgICAgMTUtMTMgICAgMTIgIDEx LTEwICA5LTggICAgIDctNiAgICAgNSAgICA0ICAgIDMgICAgMiAgICAxICAgIDAKKysgKiB8IHJl c2VydmVkIHwgSUMgfCBSQyAgfCBQQyB8IHJlc2VydmVkIHwgUE0gfCBVTSB8IE9NIHwgWk0gfCBE TSB8IElNCisrICoKKysgKiBJTTogSW52YWxpZCBvcGVyYXRpb24gbWFzaworKyAqIERNOiBEZW5v cm1hbGl6ZWQgb3BlcmFuZCBtYXNrCisrICogWk06IFplcm8tZGl2aWRlIG1hc2sKKysgKiBPTTog T3ZlcmZsb3cgbWFzaworKyAqIFVNOiBVbmRlcmZsb3cgbWFzaworKyAqIFBNOiBQcmVjaXNpb24g KGluZXhhY3QgcmVzdWx0KSBtYXNrCisrICoKKysgKiBNYXNrIGJpdCBpcyAxIG1lYW5zIG5vIGlu dGVycnVwdC4KKysgKgorKyAqIFBDOiBQcmVjaXNpb24gY29udHJvbAorKyAqIDExIC0gcm91bmQg dG8gZXh0ZW5kZWQgcHJlY2lzaW9uCisrICogMTAgLSByb3VuZCB0byBkb3VibGUgcHJlY2lzaW9u CisrICogMDAgLSByb3VuZCB0byBzaW5nbGUgcHJlY2lzaW9uCisrICoKKysgKiBSQzogUm91bmRp bmcgY29udHJvbAorKyAqIDAwIC0gcm91bmRpbmcgdG8gbmVhcmVzdAorKyAqIDAxIC0gcm91bmRp bmcgZG93biAodG93YXJkIC0gaW5maW5pdHkpCisrICogMTAgLSByb3VuZGluZyB1cCAodG93YXJk ICsgaW5maW5pdHkpCisrICogMTEgLSByb3VuZGluZyB0b3dhcmQgemVybworKyAqCisrICogSUM6 IEluZmluaXR5IGNvbnRyb2wKKysgKiBUaGF0IGlzIGZvciA4MDg3IGFuZCA4MDI4NyBvbmx5Lgor KyAqCisrICogVGhlIGhhcmR3YXJlIGRlZmF1bHQgaXMgMHgwMzdmIHdoaWNoIHdlIHVzZS4KKysg Ki8KKysKKysjaW5jbHVkZSA8ZmVhdHVyZXMuaD4KKysKKysvKiBtYXNraW5nIG9mIGludGVycnVw dHMgKi8KKysjZGVmaW5lIF9GUFVfTUFTS19JTSAgMHgwMQorKyNkZWZpbmUgX0ZQVV9NQVNLX0RN ICAweDAyCisrI2RlZmluZSBfRlBVX01BU0tfWk0gIDB4MDQKKysjZGVmaW5lIF9GUFVfTUFTS19P TSAgMHgwOAorKyNkZWZpbmUgX0ZQVV9NQVNLX1VNICAweDEwCisrI2RlZmluZSBfRlBVX01BU0tf UE0gIDB4MjAKKysKKysvKiBwcmVjaXNpb24gY29udHJvbCAqLworKyNkZWZpbmUgX0ZQVV9FWFRF TkRFRCAweDMwMAkvKiBsaWJtIHJlcXVpcmVzIGRvdWJsZSBleHRlbmRlZCBwcmVjaXNpb24uICAq LworKyNkZWZpbmUgX0ZQVV9ET1VCTEUgICAweDIwMAorKyNkZWZpbmUgX0ZQVV9TSU5HTEUgICAw eDAKKysKKysvKiByb3VuZGluZyBjb250cm9sICovCisrI2RlZmluZSBfRlBVX1JDX05FQVJFU1Qg MHgwICAgIC8qIFJFQ09NTUVOREVEICovCisrI2RlZmluZSBfRlBVX1JDX0RPV04gICAgMHg0MDAK KysjZGVmaW5lIF9GUFVfUkNfVVAgICAgICAweDgwMAorKyNkZWZpbmUgX0ZQVV9SQ19aRVJPICAg IDB4QzAwCisrCisrI2RlZmluZSBfRlBVX1JFU0VSVkVEIDB4RjBDMCAgLyogUmVzZXJ2ZWQgYml0 cyBpbiBjdyAqLworKworKworKy8qIFRoZSBmZGxpYm0gY29kZSByZXF1aXJlcyBzdHJpY3QgSUVF RSBkb3VibGUgcHJlY2lzaW9uIGFyaXRobWV0aWMsCisrICAgYW5kIG5vIGludGVycnVwdHMgZm9y IGV4Y2VwdGlvbnMsIHJvdW5kaW5nIHRvIG5lYXJlc3QuICAqLworKworKyNkZWZpbmUgX0ZQVV9E RUZBVUxUICAweDAzN2YKKysKKysvKiBJRUVFOiAgc2FtZSBhcyBhYm92ZS4gICovCisrI2RlZmlu ZSBfRlBVX0lFRUUgICAgIDB4MDM3ZgorKworKy8qIFR5cGUgb2YgdGhlIGNvbnRyb2wgd29yZC4g ICovCisrdHlwZWRlZiB1bnNpZ25lZCBpbnQgZnB1X2NvbnRyb2xfdCBfX2F0dHJpYnV0ZV9fICgo X19tb2RlX18gKF9fSElfXykpKTsKKysKKysvKiBNYWNyb3MgZm9yIGFjY2Vzc2luZyB0aGUgaGFy ZHdhcmUgY29udHJvbCB3b3JkLiAgIiomIiBpcyB1c2VkIHRvCisrICAgd29yayBhcm91bmQgYSBi dWcgaW4gb2xkZXIgdmVyc2lvbnMgb2YgR0NDLiAgX192b2xhdGlsZV9fIGlzIHVzZWQKKysgICB0 byBzdXBwb3J0IGNvbWJpbmF0aW9uIG9mIHdyaXRpbmcgdGhlIGNvbnRyb2wgcmVnaXN0ZXIgYW5k IHJlYWRpbmcKKysgICBpdCBiYWNrLiAgV2l0aG91dCBfX3ZvbGF0aWxlX18sIHRoZSBvbGQgdmFs dWUgbWF5IGJlIHVzZWQgZm9yIHJlYWRpbmcKKysgICBiYWNrIHVuZGVyIGNvbXBpbGVyIG9wdGlt aXphdGlvbi4KKysKKysgICBOb3RlIHRoYXQgdGhlIHVzZSBvZiB0aGVzZSBtYWNyb3MgaXMgbm90 IHN1ZmZpY2llbnQgYW55bW9yZSB3aXRoCisrICAgcmVjZW50IGhhcmR3YXJlIG5vciBvbiB4ODYt NjQuICBTb21lIGZsb2F0aW5nIHBvaW50IG9wZXJhdGlvbnMgYXJlCisrICAgZXhlY3V0ZWQgaW4g dGhlIFNTRS9TU0UyIGVuZ2luZXMgd2hpY2ggaGF2ZSB0aGVpciBvd24gY29udHJvbCBhbmQKKysg ICBzdGF0dXMgcmVnaXN0ZXIuICAqLworKyNkZWZpbmUgX0ZQVV9HRVRDVyhjdykgX19hc21fXyBf X3ZvbGF0aWxlX18gKCJmbnN0Y3cgJTAiIDogIj1tIiAoKiZjdykpCisrI2RlZmluZSBfRlBVX1NF VENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZsZGN3ICUwIiA6IDogIm0iICgqJmN3KSkK KysKKysvKiBEZWZhdWx0IGNvbnRyb2wgd29yZCBzZXQgYXQgc3RhcnR1cC4gICovCisrZXh0ZXJu IGZwdV9jb250cm9sX3QgX19mcHVfY29udHJvbDsKKysKKysjZW5kaWYJLyogZnB1X2NvbnRyb2wu aCAqLworKworKyNlbmRpZiAvLyBBTUQ2NAorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8v ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKworIGFk ZHJlc3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAjaWZkZWYgU1BBUkNfV09SS1MK KyAgIHJlZ2lzdGVyIHZvaWQgKmVzcDsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEzLWJv b3RzdHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90ZW1wbGF0ZQpu ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjA3ODIzNDJkNWUyNwotLS0g L2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90ZW1wbGF0ZQpAQCAt MCwwICsxLDE0NCBAQAorIyBUZW1wbGF0ZSBmaWxlIGZvciAnb3BlbmpkazEzLWJvb3RzdHJhcCcK K19qYXZhX3Zlcj0xMworX2phdmFfbWluX3Zlcj0wCitfamF2YV9zZWNfdmVyPTIKK19qZGtfdXBk YXRlPTgKK19qZGtfaG9tZT0idXNyL2xpYi9qdm0vb3BlbmpkayR7X2phdmFfdmVyfSIKK19iYXNl X3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9LiR7X2phdmFfc2VjX3Zlcn0i CisKK3BrZ25hbWU9b3BlbmpkazEzLWJvb3RzdHJhcAordmVyc2lvbj0iJHtfYmFzZV92ZXJzaW9u fSske19qZGtfdXBkYXRlfSIKK3JldmlzaW9uPTEKK3dya3NyYz0iamRrJHtfamF2YV92ZXJ9dS1q ZGstJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2NvbmZpZ3VyZV9hcmdz PSItLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCisgLS1wcmVmaXg9JHtYQlBTX0RFU1RESVJ9 LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91c3IvbGliCisgLS1lbmFibGUtdW5saW1pdGVkLWNyeXB0 bworIC0td2l0aC16bGliPXN5c3RlbQorIC0td2l0aC1saWJqcGVnPXN5c3RlbQorIC0td2l0aC1n aWZsaWI9c3lzdGVtCisgLS13aXRoLWxpYnBuZz1zeXN0ZW0KKyAtLXdpdGgtbGNtcz1zeXN0ZW0K KyAtLXdpdGgtanRyZWc9bm8KKyAtLXdpdGgtZGVidWctbGV2ZWw9cmVsZWFzZQorIC0td2l0aC1q b2JzPSR7WEJQU19PUklHX01BS0VKT0JTfQorIC0td2l0aC12ZXJzaW9uLXByZT0KKyAtLXdpdGgt dmVyc2lvbi1idWlsZD0ke19qZGtfdXBkYXRlfQorIC0td2l0aC12ZXJzaW9uLW9wdD12b2lkLXIk e3JldmlzaW9ufQorIC0td2l0aC12ZW5kb3ItbmFtZT1Wb2lkCisgLS13aXRoLXZlbmRvci11cmw9 aHR0cHM6Ly92b2lkbGludXgub3JnLworIC0td2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dp dGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC12ZW5kb3It dm0tYnVnLXVybD1odHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lz c3VlcworIC0td2l0aC1ib290LWpkaz0vdXNyL2xpYi9qdm0vb3BlbmpkazEyIgorbWFrZV9idWls ZF9hcmdzPSJpbWFnZXMiCittYWtlX2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0Igor aG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFyIHVu emlwIHppcCBjYS1jZXJ0aWZpY2F0ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1ha2Ut Y2Egb3BlbmpkazEyLWJvb3RzdHJhcCIKK21ha2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRldmVsIGxp Ylh0c3QtZGV2ZWwgbGliWHQtZGV2ZWwgbGliWHJhbmRyLWRldmVsCisgZ2lmbGliLWRldmVsIGxp YmpwZWctdHVyYm8tZGV2ZWwgY3Vwcy1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1kZXZl bAorIGZvbnRjb25maWctZGV2ZWwgemxpYi1kZXZlbCBsY21zMi1kZXZlbCIKK3Byb3ZpZGVzPSJq YXZhLWVudmlyb25tZW50LSR7dmVyc2lvbn1fMSBqYXZhLXJ1bnRpbWUtJHt2ZXJzaW9ufV8xIgor c2hvcnRfZGVzYz0iT3BlbkpESyBKYXZhIERldmVsb3BtZW50IEtpdCAoYm9vdHN0cmFwIHZlcnNp b24gMTMpIgorbWFpbnRhaW5lcj0iY2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPiIKK2xpY2Vuc2U9 IkdQTC0yLjAtb25seSBXSVRIIENsYXNzcGF0aC1leGNlcHRpb24tMi4wIgoraG9tZXBhZ2U9Imh0 dHBzOi8vb3Blbmpkay5qYXZhLm5ldC8iCitkaXN0ZmlsZXM9Imh0dHBzOi8vaGcub3Blbmpkay5q YXZhLm5ldC9qZGstdXBkYXRlcy9qZGske19qYXZhX3Zlcn11L2FyY2hpdmUvamRrLSR7dmVyc2lv bn0udGFyLmd6IgorY2hlY2tzdW09ZDM4ZmIxNzc5NTc4MmRmZmU4NGU5OGYyMWYxZDYyOTNiMGE0 NWVhOGYxZTljODFlOTljZDcxYWNhYzAzYTRlMAorbGliMzJkaXNhYmxlZD15ZXMKK25vY3Jvc3M9 eWVzCisKKyMgQnVpbGQgaXMgc3RpbGwgcGFyYWxsZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgorZGlz YWJsZV9wYXJhbGxlbF9idWlsZD15ZXMKKworIyBubyBob3RzcG90IEpJVCBmb3IgcHBjMzIKK2Nh c2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0KikgOzsKKwlwcGMqKSBfdXNlX3pl cm89eWVzIDs7Citlc2FjCisKK2lmIFsgLW4gIiRfdXNlX3plcm8iIF07IHRoZW4KKwltYWtlZGVw ZW5kcys9IiBsaWJmZmktZGV2ZWwiCisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWp2bS12YXJp YW50cz16ZXJvIgorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGMqKSBjb25m aWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGstanZtYXJncz0tWFg6VGhyZWFkU3RhY2tTaXpl PTI1NjAiOzsKKwllc2FjCitmaQorCitpZiBbIC1uICIkWEJQU19ERUJVR19QS0dTIiBdOyB0aGVu CisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLW5hdGl2ZS1kZWJ1Zy1zeW1ib2xzPWludGVybmFs IgorZmkKKworcG9zdF9leHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZpZ3VyZQorCWlmIFsgIiRY QlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCXJtIC1yIHNyYy9qZGsuaG90c3Bv dC5hZ2VudAorCWZpCit9CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJ QkMiID0gIm11c2wiIF07IHRoZW4KKwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9tdXNsX3BhdGNo ZXMvKi5wYXRjaDsgZG8KKwkJCW1zZ19ub3JtYWwgIkFwcGx5aW5nICR7ZiMkRklMRVNESVIvfVxu IgorCQkJcGF0Y2ggLWxOcDEgLWkgIiRmIgorCQlkb25lCisJZmkKK30KKworZG9fY29uZmlndXJl KCkgeworCUNGTEFHUz0ke0NGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFHUz0k e0NYWEZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCisJIyBmb3JjZSBFTEZ2MiBmb3IgcHBj NjQganVzdCBpbiBjYXNlCisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0 KikKKwkJCUNGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJX0VMRnYy IgorCQkJOzsKKwllc2FjCisKKwkjIGNvbXBhdGliaWxpdHkgd2l0aCBHQ0MgMTAueAorCUNGTEFH Uys9IiAtZmNvbW1vbiAtZm5vLWxpZmV0aW1lLWRzZSIKKwlDWFhGTEFHUys9IiAtZmNvbW1vbiAt Zm5vLWxpZmV0aW1lLWRzZSIKKworCWNvbmZpZ3VyZV9hcmdzPSR7Y29uZmlndXJlX2FyZ3MvLS13 aXRoLWxpYnRvb2wtc3lzcm9vdD1cL3VzclwvW2EtejAtOV0qLWxpbnV4LVthLXpdKi99CisJaWYg WyAiJFhCUFNfQ0NBQ0hFIiBdOyB0aGVuCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNj YWNoZSIKKwlmaQorCUNDPSIvdXNyL2Jpbi9jYyIKKwlDWFg9Ii91c3IvYmluL2MrKyIKKwkuL2Nv bmZpZ3VyZSAke2NvbmZpZ3VyZV9hcmdzfSBcCisJCS0td2l0aC1leHRyYS1jZmxhZ3M9IiRDRkxB R1MiIFwKKwkJLS13aXRoLWV4dHJhLWN4eGZsYWdzPSIkQ1hYRkxBR1MiIFwKKwkJLS13aXRoLWV4 dHJhLWxkZmxhZ3M9IiRMREZMQUdTIiBcCisJCVJFQURFTEY9JFJFQURFTEYgQVI9JEFSIFNUUklQ PSRTVFJJUCBOTT0kTk0gXAorCQlPQkpEVU1QPSRPQkpEVU1QIE9CSkNPUFk9JE9CSkNPUFkKK30K KworZG9fYnVpbGQoKSB7CisJIyBkb19idWlsZCBpcyBvdmVycmlkZGVuIGJlY2F1c2Ugb2YgaW50 ZXJtaXR0ZW50IHNlZ2ZhdWx0cyBhbmQgSU9FeGNlcHRpb25zIGR1cmluZyB0aGUgYnVpbGQKKwkj IHRocm91Z2ggbWFueSBhdHRlbXB0cywgaXQgd2FzIGZvdW5kIHRoYXQgMyB0cmllcyBpcyBhIGdv b2QgYW1vdW50IHRvIG1ha2UgaXQgd29yaworCWZvciBfdHJ5IGluIDEgMiAzOyBkbworCQltc2df bm9ybWFsICJBdHRlbXB0ICRfdHJ5IC4uLlxuIgorCisJCSMgYWRhcHRlZCBmcm9tIGJ1aWxkIHN0 eWxlCisJCTogJHttYWtlX2NtZDo9bWFrZX0KKworCQlleHBvcnQgbHRfY3Zfc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliNjQgL3Vzci9saWIzMiAvdXNyL2xpYiAvbGliIC91c3Iv bG9jYWwvbGliIgorCQkke21ha2VfY21kfSAke21ha2Vqb2JzfSAke21ha2VfYnVpbGRfYXJnc30g JHttYWtlX2J1aWxkX3RhcmdldH0gJiYgYnJlYWsKKwkJIyBlbmQgYWRhcHRlZCBmcm9tIGJ1aWxk IHN0eWxlCisKKwkJaWYgWyAkX3RyeSAtbHQgMyBdOyB0aGVuCisJCQltc2dfd2FybiAiQnVpbGQg ZmFpbGVkLCByZXRyeWluZyAuLi5cbiIKKwkJZWxzZQorCQkJbXNnX3dhcm4gIkJ1aWxkIGZhaWxl ZCwgb3V0IG9mIGF0dGVtcHRzXG4iCisJCWZpCisJZG9uZQorfQorCitwb3N0X2luc3RhbGwoKSB7 CisJbXYgJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jhc2VfdmVyc2lvbn0gJHtE RVNURElSfS8kX2pka19ob21lCisJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KKwlybSAt ZiAkREVTVERJUi8kX2pka19ob21lL2xpYi9zcmMuemlwCisJdmxpY2Vuc2UgQVNTRU1CTFlfRVhD RVBUSU9OCisJdmxpY2Vuc2UgTElDRU5TRQorfQoKRnJvbSA2ZWQxOGQ1OWNhOGFiOTc4MzMyMTM3 YjdlOGRkOGI3MWY1YWEyZGUzIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBjbGFzc2Fi YnlhbXAgPGRldkBrYjYuZWU+CkRhdGU6IFRodSwgMyBGZWIgMjAyMiAxNTowMjoyNCAtMDUwMApT dWJqZWN0OiBbUEFUQ0ggNC83XSBOZXcgcGFja2FnZTogb3BlbmpkazE0LWJvb3RzdHJhcC0xNC4w LjIrMTIKCi0tLQogLi4uL2ZpbGVzL2k2ODZfcGF0Y2hlcy9KREstODIzODkwOS5wYXRjaCAgICAg IHwgIDMwICsrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAg fCAgMTAgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggICAgICAgICAgICAgIHwg IDIxICsKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2ggICAgICAgICAgICB8IDM3 MiArKysrKysrKysrKysrKysrKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoICAg ICAgICAgICAgICB8ICA0NSArKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAg ICAgICAgICAgICB8IDEzMCArKysrKysKIHNyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC90ZW1w bGF0ZSAgICAgICAgICB8IDEzMSArKysrKysKIDcgZmlsZXMgY2hhbmdlZCwgNzM5IGluc2VydGlv bnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmls ZXMvaTY4Nl9wYXRjaGVzL0pESy04MjM4OTA5LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211 c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsx NC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMu cGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmls ZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Bl bmpkazE0LWJvb3RzdHJhcC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE0 LWJvb3RzdHJhcC9maWxlcy9pNjg2X3BhdGNoZXMvSkRLLTgyMzg5MDkucGF0Y2ggYi9zcmNwa2dz L29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvaTY4Nl9wYXRjaGVzL0pESy04MjM4OTA5LnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZjE5YjA5MTFjZmFiCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL2k2ODZf cGF0Y2hlcy9KREstODIzODkwOS5wYXRjaApAQCAtMCwwICsxLDMwIEBACisjIGZyb20gaHR0cHM6 Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJvd3NlL0pESy04MjM4OTA5CisKKy0tLSBhL3NyYy9o b3RzcG90L3NoYXJlL3V0aWxpdGllcy9wb3dlck9mVHdvLmhwcAlUaHUgRmViIDEzIDE1OjQzOjU5 IDIwMjAgKzAwMDAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9wb3dlck9mVHdv LmhwcAlUaHUgRmViIDEzIDE3OjA1OjMwIDIwMjAgKzAxMDAKK0BAIC0yOCw2ICsyOCw3IEBACisg I2luY2x1ZGUgIm1ldGFwcm9ncmFtbWluZy9lbmFibGVJZi5ocHAiCisgI2luY2x1ZGUgIm1ldGFw cm9ncmFtbWluZy9pc0ludGVncmFsLmhwcCIKKyAjaW5jbHVkZSAibWV0YXByb2dyYW1taW5nL2lz U2lnbmVkLmhwcCIKKysjaW5jbHVkZSAidXRpbGl0aWVzL2FsaWduLmhwcCIKKyAjaW5jbHVkZSAi dXRpbGl0aWVzL2NvdW50X2xlYWRpbmdfemVyb3MuaHBwIgorICNpbmNsdWRlICJ1dGlsaXRpZXMv ZGVidWcuaHBwIgorICNpbmNsdWRlICJ1dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnMuaHBwIgor QEAgLTY4LDcgKzY5LDcgQEAKKyAgIFNUQVRJQ19BU1NFUlQoSXNJbnRlZ3JhbDxUPjo6dmFsdWUp OworICAgU1RBVElDX0FTU0VSVChJc1NpZ25lZDxUPjo6dmFsdWUpOworICAgYXNzZXJ0KHZhbHVl ID4gMCwgIkludmFsaWQgdmFsdWUiKTsKKy0gIGlmIChpc19wb3dlcl9vZl8yKHZhbHVlKSkgewor KyAgaWYgKGlzX3Bvd2VyX29mXzJfdCh2YWx1ZSkpIHsKKyAgICAgcmV0dXJuIHZhbHVlOworICAg fQorICAgdWludDMyX3QgbHogPSBjb3VudF9sZWFkaW5nX3plcm9zKHZhbHVlKTsKK0BAIC04NCw3 ICs4NSw3IEBACisgICBTVEFUSUNfQVNTRVJUKElzSW50ZWdyYWw8VD46OnZhbHVlKTsKKyAgIFNU QVRJQ19BU1NFUlQoIUlzU2lnbmVkPFQ+Ojp2YWx1ZSk7CisgICBhc3NlcnQodmFsdWUgIT0gMCwg IkludmFsaWQgdmFsdWUiKTsKKy0gIGlmIChpc19wb3dlcl9vZl8yKHZhbHVlKSkgeworKyAgaWYg KGlzX3Bvd2VyX29mXzJfdCh2YWx1ZSkpIHsKKyAgICAgcmV0dXJuIHZhbHVlOworICAgfQorICAg dWludDMyX3QgbHogPSBjb3VudF9sZWFkaW5nX3plcm9zKHZhbHVlKTsKZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRj aCBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2 NC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNmM1ZDRk MmJlMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxl cy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIGIv c3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BA IC03NCw3ICs3NCw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4K KyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorIAor ICNkZWZpbmUgUkVHX0ZQIDI5CisgI2RlZmluZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoIGIvc3Jj cGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMDI0MjhmMTBmMzMKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRj aGVzL2FybS5wYXRjaApAQCAtMCwwICsxLDIxIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUv bGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51 eF9hcm0vb3NfbGludXhfYXJtLmNwcAorQEAgLTczLDYgKzczLDE4IEBACisgIyBpbmNsdWRlIDx1 Y29udGV4dC5oPgorICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNr IGFzIHRoZSBvcmlnaW4gaWYgYmVsb3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6Cisr Ly8KKysvLyBvc19saW51eF9hcm0uY3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3Bl cmF0b3IgYmVmb3JlIHRva2VuICIoIgorKy8vICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBe fn5+fgorKy8vCisrLy8gVGhlIE5HUkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9y Y2UgaXQgdG8gdGhhdCB2YWx1ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNl bmRpZgorKyNkZWZpbmUgTkdSRUcgMTgKKysKKyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgor IAorIC8vIERvbid0ICNkZWZpbmUgU1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlz IG5vdCBzYWZlIHRvIHVzZSwgc28gdGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0Lgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9idWlsZC5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3Bh dGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li42MGRmZGVjMzBhYmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNC1ib290 c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzcyIEBACist LS0gYS9tYWtlL1JlbGVhc2VGaWxlLmdtaworKysrIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BA IC01Myw2ICs1Myw3IEBAIGRlZmluZSBjcmVhdGUtaW5mby1maWxlCisgICAkKGNhbGwgaW5mby1m aWxlLWl0ZW0sICJKQVZBX1ZFUlNJT05fREFURSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChj YWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfTkFNRSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIp CisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09T X0FSQ0gpIikKKysgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5k ZWYKKyAKKyAjIFBhcmFtIDEgLSBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBNT0RVTEVTIGxpc3QK Ky0tLSBhL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKKysrKyBiL21ha2UvaG90c3Bv dC9saWIvQ29tcGlsZUp2bS5nbWsKK0BAIC03Myw2ICs3Myw3IEBAIENGTEFHU19WTV9WRVJTSU9O IDo9IFwKKyAgICAgLURIT1RTUE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJOQU1FKSInIFwKKyAgICAg LURIT1RTUE9UX1ZNX0RJU1RSTz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8pIicgXAorICAgICAtRENQ VT0nIiQoT1BFTkpES19UQVJHRVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAorKyAgICAtRExJQkM9JyJt dXNsIicgXAorICAgICAjCisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0tLSBhL21ha2Uv bGliL0NvcmVMaWJyYXJpZXMuZ21rCisrKysgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtawor QEAgLTE5MCw2ICsxOTAsNyBAQCBpZmVxICgkKGNhbGwgaXNUYXJnZXRPcywgd2luZG93cyksIHRy dWUpCisgZW5kaWYKKyAKKyBMSUJKTElfQ0ZMQUdTICs9ICQoTElCWl9DRkxBR1MpCisrTElCSkxJ X0NGTEFHUyArPSAtRExJQkM9XCJtdXNsXCIKKyAKKyBpZm5lcSAoJChVU0VfRVhURVJOQUxfTElC WiksIHRydWUpCisgICBMSUJKTElfRVhUUkFfRklMRVMgKz0gXAorLS0tIGEvc3JjL2hvdHNwb3Qv b3MvbGludXgvb3NfbGludXguY3BwCisrKysgYi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51 eC5jcHAKK0BAIC0xMDIsNyArMTAyLDYgQEAKKyAjIGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5j bHVkZSA8c3lzY2FsbC5oPgorICMgaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUg PGdudS9saWJjLXZlcnNpb24uaD4KKyAjIGluY2x1ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUg PHN5cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxpbmsuaD4KK0BAIC01OTcsNiArNTk2LDEyIEBAIHZv aWQgb3M6OkxpbnV4Ojpob3RzcG90X3NpZ21hc2soVGhyZWFkKiB0aHJlYWQpIHsKKyAvLyBkZXRl Y3RpbmcgcHRocmVhZCBsaWJyYXJ5CisgCisgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5p dCgpIHsKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQor KyAgLy8gSGFyZCBjb2RlIEFscGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNl dHRpbmdzCisrICAvLyBzZ246IE5QVEwgaXMgY29ycmVjdCwgZG9uJ3Qga25vdyBhYm91dCBnbGli YyAyLjksIGFscGluZSdzIHRoaW5nPworKyAgb3M6OkxpbnV4OjpzZXRfZ2xpYmNfdmVyc2lvbigi Z2xpYmMgMi45Iik7CisrICBvczo6TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oIk5QVEwi KTsKKysjZWxzZQorICAgLy8gU2F2ZSBnbGliYyBhbmQgcHRocmVhZCB2ZXJzaW9uIHN0cmluZ3Mu CisgI2lmICFkZWZpbmVkKF9DU19HTlVfTElCQ19WRVJTSU9OKSB8fCBcCisgICAgICFkZWZpbmVk KF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OKQorQEAgLTYxNCw2ICs2MTksNyBAQCB2b2lkIG9z OjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkgeworICAgc3RyID0gKGNoYXIgKiltYWxsb2Mobiwg bXRJbnRlcm5hbCk7CisgICBjb25mc3RyKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBzdHIs IG4pOworICAgb3M6OkxpbnV4OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKHN0cik7CisrI2VuZGlm CisgfQorIAorIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitAQCAtMzExNywyMCArMzEyMywzNiBAQCB2 b2lkIG9zOjpMaW51eDo6c2NoZWRfZ2V0Y3B1X2luaXQoKSB7CisgZXh0ZXJuICJDIiBKTklFWFBP UlQgdm9pZCBudW1hX3dhcm4oaW50IG51bWJlciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CisgZXh0 ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KKyAKKytz dGF0aWMgdm9pZCogZGx2c3ltX2lmX2F2YWlsYWJsZSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIq IG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pIHsKKysgIHR5cGVkZWYgdm9pZCogKCpkbHZzeW1f ZnVuY190eXBlKSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZl cnNpb24pOworKyAgc3RhdGljIGRsdnN5bV9mdW5jX3R5cGUgZGx2c3ltX2Z1bmM7CisrICBzdGF0 aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworKworKyAgaWYgKCFpbml0aWFsaXplZCkgewor KyAgICBkbHZzeW1fZnVuYyA9IChkbHZzeW1fZnVuY190eXBlKWRsc3ltKFJUTERfTkVYVCwgImRs dnN5bSIpOworKyAgICBpbml0aWFsaXplZCA9IHRydWU7CisrICB9CisrCisrICBpZiAoZGx2c3lt X2Z1bmMgIT0gTlVMTCkgeworKyAgICB2b2lkICpmID0gZGx2c3ltX2Z1bmMoaGFuZGxlLCBuYW1l LCB2ZXJzaW9uKTsKKysgICAgaWYgKGYgIT0gTlVMTCkgeworKyAgICAgIHJldHVybiBmOworKyAg ICB9CisrICB9CisrCisrICByZXR1cm4gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKyt9CisrCisgLy8g SGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMSAoQVBJIHYx KS4gSWYgaXQgZmFpbHMKKyAvLyBsb2FkIHN5bWJvbCBmcm9tIGJhc2UgdmVyc2lvbiBpbnN0ZWFk LgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNo YXIgKm5hbWUpIHsKKy0gIHZvaWQgKmYgPSBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8x LjEiKTsKKy0gIGlmIChmID09IE5VTEwpIHsKKy0gICAgZiA9IGRsc3ltKGhhbmRsZSwgbmFtZSk7 CistICB9CistICByZXR1cm4gZjsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRs ZSwgbmFtZSwgImxpYm51bWFfMS4xIik7CisgfQorIAorIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxv YWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4g TlVMTCBpZiB0aGUgc3ltYm9sIGlzIG5vdCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJz aW9uLgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNv bnN0IGNoYXIqIG5hbWUpIHsKKy0gIHJldHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVt YV8xLjIiKTsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxp Ym51bWFfMS4yIik7CisgfQorIAorIGJvb2wgb3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7Cist LS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBi L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkg Kzc1LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5j bHVkZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFNRDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJv bC5oPgorLSNlbmRpZgorIAorICNpZmRlZiBBTUQ2NAorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AK Ky0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAor KysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitA QCAtMTExNiw3ICsxMTE2LDcgQEAgSGVhcFdvcmQqIEdlbkNvbGxlY3RlZEhlYXA6OmFsbG9jYXRl X25ld190bGFiKHNpemVfdCBtaW5fc2l6ZSwKKyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVT bWFsbGVzdFNjcmF0Y2goU2NyYXRjaEJsb2NrICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3Qg PSB0cnVlOworICAgc2l6ZV90IG1pbl9zaXplID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMg Y29uY2VwdHVhbGx5IGluZmluaXRlLgorLSAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAq c21hbGxlc3Q7CisrICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxl c3Q7CisgICBTY3JhdGNoQmxvY2sgICpjdXIgPSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7 CisgICAgIGFzc2VydCgqcHJldl9wdHIgPT0gY3VyLCAianVzdCBjaGVja2luZyIpOworLS0tIGEv c3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorKysrIGIv c3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorQEAgLTI3 NCw3ICsyNzQsNyBAQCBjb25zdCBjaGFyKiBBYnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92 bV9pbmZvX3N0cmluZygpIHsKKyAgICNlbmRpZgorIAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJT SU9OX1NVRkZJWCBWTV9SRUxFQVNFICIpIiBcCistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BV IEZMT0FUX0FSQ0hfU1RSIFwKKysgICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJD SF9TVFIgTElCQyBcCisgICAgICAgICAgIiBKUkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0 IG9uICIgX19EQVRFX18gIiAiIF9fVElNRV9fIFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RT UE9UX0JVSUxEX1VTRVIpICIgd2l0aCAiIEhPVFNQT1RfQlVJTERfQ09NUElMRVIKKyAKKy0tLSBh L3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCisr KysgYi9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhw cAorQEAgLTIwNCw3ICsyMDQsNyBAQCBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0 dXJuIGlzbmFuZChmKTsgfQorICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQorIGlubGluZSBpbnQg Z19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxpZiBkZWZpbmVkKExJ TlVYKSB8fCBkZWZpbmVkKF9BTExCU0RfU09VUkNFKQorLWlubGluZSBpbnQgZ19pc25hbihmbG9h dCAgZikgeyByZXR1cm4gaXNuYW5mKGYpOyB9CisraW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBm KSB7IHJldHVybiBpc25hbihmKTsgfQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyBy ZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxzZQorICNlcnJvciAibWlzc2luZyBwbGF0Zm9ybS1zcGVj aWZpYyBkZWZpbml0aW9uIGhlcmUiCistLS0gYS9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9s aWJuZXQvbGludXhfY2xvc2UuYworKysrIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGli bmV0L2xpbnV4X2Nsb3NlLmMKK0BAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKKyAv KgorICAqIFNpZ25hbCB0byB1bmJsb2NrIHRocmVhZAorICAqLworLXN0YXRpYyBpbnQgc2lnV2Fr ZXVwID0gKF9fU0lHUlRNQVggLSAyKTsKKytzdGF0aWMgaW50IHNpZ1dha2V1cDsKKyAKKyAvKgor ICAqIGZkVGFibGUgaG9sZHMgb25lIGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEg Y2VydGFpbgorQEAgLTE0OSw2ICsxNDksNyBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZSgoY29u c3RydWN0b3IpKSBpbml0KCkgeworICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2lnbmFsIGhh bmRsZXIKKyAgICAgICovCisrICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAgICAgc2Eu c2FfaGFuZGxlciA9IHNpZ193YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOworICAgICBz aWdlbXB0eXNldCgmc2Euc2FfbWFzayk7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZl L2xpYmphdmEvY2hpbGRwcm9jLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli amF2YS9jaGlsZHByb2MuYworQEAgLTIzNSw3ICsyMzUsMTMgQEAgSkRLX2V4ZWN2cGUoaW50IG1v ZGUsIGNvbnN0IGNoYXIgKmZpbGUsCisgeworICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFy ICoqKSBlbnZwID09IGVudmlyb24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikg YXJndik7CistICAgICAgICByZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0 aGF0IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAg ICAgIC8vIGxpYnJhcnkgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3No IGZvciB0aGF0IGNhc2UsIHNvIGZhbGwKKysgICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUg YmVsb3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBl eGVjdmVfd2l0aF9zaGVsbF9mYWxsYmFjay4KKysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVD KSB7CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisgCisgICAgIGlm ICgqZmlsZSA9PSAnXDAnKSB7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmph dmEvamRrX3V0aWxfbWQuaAorKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZh L2pka191dGlsX21kLmgKK0BAIC0zNyw3ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNu YW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJD RSkKKyAjaW5jbHVkZSA8bWF0aC5oPgorLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNk ZWZpbmUgSVNOQU5GKGYpIGlzbmFuKGYpCisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAj ZWxpZiBkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0tLSBhL3NyYy9qYXZhLmJh c2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCisrKysgYi9zcmMvamF2YS5i YXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworQEAgLTIzNiw2ICsyMzYs MzkgQEAgUmVxdWlyZXNTZXRlbnYoY29uc3QgY2hhciAqanZtcGF0aCkgeworICAgICBjaGFyICpk bWxscCA9IE5VTEw7CisgICAgIGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBwb2ludGVyICovCisgCisr I2lmZGVmIF9fbGludXgKKysjaWZuZGVmIExJQkMKKysjZXJyb3IgIkxJQkMgbm90IHNldCIKKysj ZW5kaWYKKysKKysgICAgaWYgKHN0cmNtcChMSUJDLCAibXVzbCIpID09IDApIHsKKysgICAgICAv KgorKyAgICAgICAqIFRoZSBtdXNsIGxpYnJhcnkgbG9hZGVyIHJlcXVpcmVzIExEX0xJQlJBUllf UEFUSCB0byBiZSBzZXQgaW4KKysgICAgICAgKiBvcmRlciB0byBjb3JyZWN0bHkgcmVzb2x2ZSB0 aGUgZGVwZW5kZW5jeSBsaWJqYXZhLnNvIGhhcyBvbiBsaWJqdm0uc28uCisrICAgICAgICoKKysg ICAgICAgKiBTcGVjaWZpY2FsbHksIGl0IGRpZmZlcnMgZnJvbSBnbGliYyBpbiB0aGUgc2Vuc2Ug dGhhdCBldmVuIGlmCisrICAgICAgICogbGlianZtLnNvIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVk IGl0IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQgYQorKyAgICAgICAqIGNhbmRpZGF0ZSBmb3IgcmVz b2x2aW5nIHRoZSBkZXBlbmRlbmN5IHVubGVzcyB0aGUgKmZ1bGwqIHBhdGgKKysgICAgICAgKiBv ZiB0aGUgYWxyZWFkeSBsb2FkZWQgbGlicmFyeSBtYXRjaGVzIHRoZSBkZXBlbmRlbmN5IGJlaW5n IGxvYWRlZC4KKysgICAgICAgKgorKyAgICAgICAqIGxpYmp2bS5zbyBpcyBiZWluZyBsb2FkZWQg YnkgdGhlIGxhdW5jaGVyIHVzaW5nIGEgbG9uZyBwYXRoIHRvCisrICAgICAgICogZGxvcGVuLCBu b3QganVzdCB0aGUgYmFzZW5hbWUgb2YgdGhlIGxpYnJhcnkuIFR5cGljYWxseSB0aGlzCisrICAg ICAgICogaXMgc29tZXRoaW5nIGxpa2UgIi4uL2xpYi9zZXJ2ZXIvbGlianZtLnNvIi4gSG93ZXZl ciwgaWYvd2hlbgorKyAgICAgICAqIGxpYmp2bS5zbyBsYXRlciB0cmllcyB0byBkbG9wZW4gbGli amF2YS5zbyAod2hpY2ggaXQgZG9lcyBpbgorKyAgICAgICAqIG9yZGVyIHRvIGdldCBhY2Nlc3Mg dG8gYSBmZXcgZnVuY3Rpb25zIGltcGxlbWVudGVkIGluCisrICAgICAgICogbGliamF2YS5zbykg dGhlIG11c2wgbG9hZGVyIHdpbGwsIGFzIHBhcnQgb2YgbG9hZGluZworKyAgICAgICAqIGRlcGVu ZGVudCBsaWJyYXJpZXMsIHRyeSB0byBsb2FkIGxpYmp2bS5zbyB1c2luZyBvbmx5IGl0cworKyAg ICAgICAqIGJhc2VuYW1lICJsaWJqdm0uc28iLiBTaW5jZSB0aGlzIGRvZXMgbm90IG1hdGNoIHRo ZSBsb25nZXIKKysgICAgICAgKiBwYXRoIHBhdGggaXQgd2FzIGZpcnN0IGxvYWRlZCB3aXRoLCB0 aGUgYWxyZWFkeSBsb2FkZWQKKysgICAgICAgKiBsaWJyYXJ5IGlzIG5vdCBjb25zaWRlcmVkIGEg Y2FuZGlkYXRlLCBhbmQgdGhlIGxvYWRlciB3aWxsCisrICAgICAgICogaW5zdGVhZCBsb29rIGZv ciBsaWJqdm0uc28gZWxzZXdoZXJlLiBJZiBpdCdzIG5vdCBpbgorKyAgICAgICAqIExEX0xJQlJB UllfUEFUSCB0aGUgZGVwZW5kZW5jeSBsb2FkIHdpbGwgZmFpbCwgYW5kIGxpYmphdmEuc28KKysg ICAgICAgKiB3aWxsIHRoZXJlZm9yZSBmYWlsIGFzIHdlbGwuCisrICAgICAgICovCisrICAgICAg cmV0dXJuIEpOSV9UUlVFOworKyAgICB9CisrI2VuZGlmCisrCisgI2lmZGVmIEFJWAorICAgICAv KiBXZSBhbHdheXMgaGF2ZSB0byBzZXQgdGhlIExJQlBBVEggb24gQUlYIGJlY2F1c2UgbGQgZG9l c24ndCBzdXBwb3J0ICRPUklHSU4uICovCisgICAgIHJldHVybiBKTklfVFJVRTsKKy0tLSBhL3Ny Yy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCisrKysgYi9z cmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworQEAgLTM2 LDcgKzM2LDcgQEAKKyAjaWZkZWYgX19saW51eF9fCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgor ICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9saW51eF9jbG9zZS5jICovCistICAjZGVmaW5lIElO VEVSUlVQVF9TSUdOQUwgKF9fU0lHUlRNQVggLSAyKQorKyAgI2RlZmluZSBJTlRFUlJVUFRfU0lH TkFMIChTSUdSVE1BWCAtIDIpCisgI2VsaWYgZGVmaW5lZChfQUlYKQorICAgI2luY2x1ZGUgPHB0 aHJlYWQuaD4KKyAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvYWl4X2Nsb3NlLmMgKi8KKy0tLSBh L3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5j CisrKysgYi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRv b2xraXQuYworQEAgLTI3LDkgKzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2lu Y2x1ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGlu dXhfXworLSNpbmNsdWRlIDxleGVjaW5mby5oPgorLSNlbmRpZgorIAorICNpbmNsdWRlIDxqdm0u aD4KKyAjaW5jbHVkZSA8am5pLmg+CitAQCAtNzgwLDI2ICs3NzcsNiBAQCBKTklFWFBPUlQganN0 cmluZyBKTklDQUxMIEphdmFfc3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52CisgICAgIHJldHVy biByZXQ7CisgfQorIAorLSNpZmRlZiBfX2xpbnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZvaWQp CisteworLSAgdm9pZCAqYXJyYXlbMTBdOworLSAgc2l6ZV90IHNpemU7CistICBjaGFyICoqc3Ry aW5nczsKKy0gIHNpemVfdCBpOworLQorLSAgc2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEwKTsK Ky0gIHN0cmluZ3MgPSBiYWNrdHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUpOworLQorLSAgZnBy aW50ZiAoc3RkZXJyLCAiT2J0YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOworLQor LSAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwgIiVz XG4iLCBzdHJpbmdzW2ldKTsKKy0KKy0gIGZyZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYKKy0K KyBXaW5kb3cgZ2V0X3hhd3Rfcm9vdF9zaGVsbChKTklFbnYgKmVudikgeworICAgc3RhdGljIGpj bGFzcyBjbGFzc1hSb290V2luZG93ID0gTlVMTDsKKyAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0aG9k R2V0WFJvb3RXaW5kb3cgPSBOVUxMOworLS0tIGEvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25h dGl2ZS9saWJqZHdwL3V0aWwuaAorKysrIGIvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2 ZS9saWJqZHdwL3V0aWwuaAorQEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAg ICAvKiBKdXN0IHRvIG1ha2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJl LiAqLworICAgICAjdW5kZWYgZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0 aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZh Y2VfZnJlZQorICAgICAjdW5kZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5v dCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhp c19pbnRlcmZhY2VfbWFsbG9jCisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxs b2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9f bm90X3VzZV90aGlzX2ludGVyZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAg I2RlZmluZSByZWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZp bmUgcmVhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVm IHN0cmR1cAorLSAgICAjZGVmaW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNl LgorKyAgICAjZGVmaW5lIHN0cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAor ICNlbmRpZgorIAorICNpbmNsdWRlICJsb2dfbWVzc2FnZXMuaCIKKy0tLSBhL3Rlc3QvaG90c3Bv dC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworKysrIGIvdGVzdC9o b3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMs NiArMzMsNyBAQAorIAorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+Cisr I2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2lnbmFs Lmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgorQEAgLTkxLDYgKzkyLDIwIEBAIHZvaWQgc2V0X3Np Z25hbF9oYW5kbGVyKCkgeworICAgfQorIH0KKyAKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXplICgp IHsKKysgIHNpemVfdCBzdGFja3NpemU7CisrICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAgSkRL MV8xSW5pdEFyZ3MgamRrX2FyZ3M7CisrCisrICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZFUlNJ T05fMV8xOworKyAgSk5JX0dldERlZmF1bHRKYXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOworKyAg aWYgKGpka19hcmdzLmphdmFTdGFja1NpemUgPD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwg IlRlc3QgRVJST1IuIENhbid0IGdldCBhIHZhbGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBzdGFj a3NpemUuXG4iKTsKKysgICAgZXhpdCg3KTsKKysgIH0KKysgIHJldHVybiBqZGtfYXJncy5qYXZh U3RhY2tTaXplOworK30KKysKKyB2b2lkICpydW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkgewor ICAgSk5JRW52ICplbnY7CisgICBqY2xhc3MgY2xhc3NfaWQ7CitAQCAtMjU4LDEzICsyNzMsMTkg QEAgaW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBleGl0KDcp OworICAgfQorIAorKyAgaW50IHN0YWNrX3NpemUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAg IHB0aHJlYWRfdCB0aHI7CisrICBwdGhyZWFkX2F0dHJfdCB0aHJlYWRfYXR0cjsKKysKKysgIHB0 aHJlYWRfYXR0cl9pbml0KCZ0aHJlYWRfYXR0cik7CisrICBwdGhyZWFkX2F0dHJfc2V0c3RhY2tz aXplKCZ0aHJlYWRfYXR0ciwgc3RhY2tfc2l6ZSk7CisgCisgICBpZiAoYXJnYyA+IDEgJiYgc3Ry Y21wKGFyZ3ZbMV0sICJ0ZXN0X2phdmFfb3ZlcmZsb3ciKSA9PSAwKSB7CisgICAgIHByaW50Zigi XG5UZXN0aW5nIEpBVkFfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3Rh Y2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJl YWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisrICAg IHB0aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93LCBO VUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRl c3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsK K0BAIC0yNzcsNyArMjk4LDcgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJn dikgeworICAgICBwcmludGYoIlxuVGVzdGluZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworIAorICAg ICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRo cmVhZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292 ZXJmbG93LCBOVUxMKTsKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwg cnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxM KTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZv ciBpbml0aWFsIHRocmVhZFxuIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNC1ib290 c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uZDMwNmQ1MDFlNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKQEAg LTAsMCArMSw0NSBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDog aHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5 YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3Bw Yy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvbWFj cm9Bc3NlbWJsZXJfcHBjLmNwcAorQEAgLTQ3LDYgKzQ3LDggQEAKKyAjaW5jbHVkZSAib3B0by9p bnRyaW5zaWNub2RlLmhwcCIKKyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgor KworICNpZmRlZiBQUk9EVUNUCisgI2RlZmluZSBCTE9DS19DT01NRU5UKHN0cikgLy8gbm90aGlu ZworICNlbHNlCistLS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3Bw CisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtODQ1 LDcgKzg0NSw3IEBAIHZvaWQgVk1fVmVyc2lvbjo6ZGV0ZXJtaW5lX2ZlYXR1cmVzKCkgeworICAg dW5zaWduZWQgbG9uZyBhdXh2ID0gZ2V0YXV4dmFsKEFUX0hXQ0FQMik7CisgCisgICBpZiAoYXV4 diAmIFBQQ19GRUFUVVJFMl9IVE1fTk9TQykgeworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJF Ml9IQVNfSFRNKSB7CisrICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAgICAg IC8vIFRNIG9uIFBPV0VSOCBhbmQgUE9XRVI5IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3VwcG9y dGVkIGJ5IHRoZSBKVk0uCisgICAgICAgLy8gVE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJlbWV0 YWwpIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dFUjkg REQyLjEgTlYgaGFzIGEgZmV3IGlzc3VlcyB0aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUK Ky0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCisr KysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorQEAg LTc1LDcgKzc1LDcgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgor ICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0KKysjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAK KyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgICBpbnRwdHJfdCogY3Nw OworLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMu Y3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3Bw Yy5jcHAKK0BAIC0yMyw2ICsyMyw4IEBACisgICoKKyAgKi8KKyAKKysjaW5jbHVkZSA8YXNtL3B0 cmFjZS5oPgorKworICNpbmNsdWRlICJwcmVjb21waWxlZC5ocHAiCisgI2luY2x1ZGUgInJ1bnRp bWUvZnJhbWUuaW5saW5lLmhwcCIKKyAjaW5jbHVkZSAicnVudGltZS90aHJlYWQuaHBwIgpkaWZm IC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94 ODYucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L3g4Ni5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNjRj MTg5MDM2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9m aWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZv ciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5v cmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRj NjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5j cHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3Bw CitAQCAtOTAsNiArOTAsMTI2IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5k aWYgLy8gQU1ENjQKKworKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20g Z2xpYmMgMi4yOAorKy8vIHNvdXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xp YmMuZ2l0O2E9YmxvYjtmPXN5c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4 OTdmZjRlNTgyNmQyMjhjYmE2YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNj YTM5MmJiYTdhOTljMmIKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0 CisrLyogRlBVIGNvbnRyb2wgd29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0 IChDKSAxOTkzLTIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xh ZiBGbGViYmUuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24g Mi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUK KysgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQ VV9DT05UUk9MX0gKKysjZGVmaW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQg dGhpcyBmaWxlIHNldHMgb24geDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90Cisr ICAgdG91Y2ggdGhlIFNTRSB1bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0 LiBTZXQgdXAgeW91ciAzODcgdGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdp c3Rlci4KKysgKgorKyAqICAgICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1 ICAgIDQgICAgMyAgICAyICAgIDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBD IHwgcmVzZXJ2ZWQgfCBQTSB8IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJ bnZhbGlkIG9wZXJhdGlvbiBtYXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sK KysgKiBaTTogWmVyby1kaXZpZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06 IFVuZGVyZmxvdyBtYXNrCisrICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sK KysgKgorKyAqIE1hc2sgYml0IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6 IFByZWNpc2lvbiBjb250cm9sCisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24K KysgKiAxMCAtIHJvdW5kIHRvIGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNp bmdsZSBwcmVjaXNpb24KKysgKgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSBy b3VuZGluZyB0byBuZWFyZXN0CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZp bml0eSkKKysgKiAxMCAtIHJvdW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAt IHJvdW5kaW5nIHRvd2FyZCB6ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAq IFRoYXQgaXMgZm9yIDgwODcgYW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUg ZGVmYXVsdCBpcyAweDAzN2Ygd2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0 dXJlcy5oPgorKworKy8qIG1hc2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9N QVNLX0lNICAweDAxCisrI2RlZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVf TUFTS19aTSAgMHgwNAorKyNkZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBV X01BU0tfVU0gIDB4MTAKKysjZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNp c2lvbiBjb250cm9sICovCisrI2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVx dWlyZXMgZG91YmxlIGV4dGVuZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJM RSAgIDB4MjAwCisrI2RlZmluZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNv bnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQg Ki8KKysjZGVmaW5lIF9GUFVfUkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAg ICAgIDB4ODAwCisrI2RlZmluZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9G UFVfUkVTRVJWRUQgMHhGMEMwICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyog VGhlIGZkbGlibSBjb2RlIHJlcXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJp dGhtZXRpYywKKysgICBhbmQgbm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcg dG8gbmVhcmVzdC4gICovCisrCisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8q IElFRUU6ICBzYW1lIGFzIGFib3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdm CisrCisrLyogVHlwZSBvZiB0aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVk IGludCBmcHVfY29udHJvbF90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOwor KworKy8qIE1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAi KiYiIGlzIHVzZWQgdG8KKysgICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBv ZiBHQ0MuICBfX3ZvbGF0aWxlX18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24g b2Ygd3JpdGluZyB0aGUgY29udHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2su ICBXaXRob3V0IF9fdm9sYXRpbGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVh ZGluZworKyAgIGJhY2sgdW5kZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUg dGhhdCB0aGUgdXNlIG9mIHRoZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdp dGgKKysgICByZWNlbnQgaGFyZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9p bnQgb3BlcmF0aW9ucyBhcmUKKysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3 aGljaCBoYXZlIHRoZWlyIG93biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICov CisrI2RlZmluZSBfRlBVX0dFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAl MCIgOiAiPW0iICgqJmN3KSkKKysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xh dGlsZV9fICgiZmxkY3cgJTAiIDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJv bCB3b3JkIHNldCBhdCBzdGFydHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9j b250cm9sOworKworKyNlbmRpZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFN RDY0CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFj a19wb2ludGVyKCkgeworICNpZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNw OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3Jj cGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uZGM2MWFkOWM0NjZmCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlCkBAIC0wLDAgKzEsMTMxIEBACisjIFRlbXBs YXRlIGZpbGUgZm9yICdvcGVuamRrMTQtYm9vdHN0cmFwJworX2phdmFfdmVyPTE0CitfamF2YV9t aW5fdmVyPTAKK19qYXZhX3NlY192ZXI9MgorX2pka191cGRhdGU9MTIKK19qZGtfaG9tZT0idXNy L2xpYi9qdm0vb3BlbmpkayR7X2phdmFfdmVyfSIKK19iYXNlX3ZlcnNpb249IiR7X2phdmFfdmVy fS4ke19qYXZhX21pbl92ZXJ9LiR7X2phdmFfc2VjX3Zlcn0iCisKK3BrZ25hbWU9b3BlbmpkazE0 LWJvb3RzdHJhcAordmVyc2lvbj0iJHtfYmFzZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3Jl dmlzaW9uPTEKK3dya3NyYz0iamRrJHtfamF2YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIKK2J1aWxk X3N0eWxlPWdudS1jb25maWd1cmUKK2NvbmZpZ3VyZV9hcmdzPSItLWRpc2FibGUtd2FybmluZ3Mt YXMtZXJyb3JzCisgLS1wcmVmaXg9JHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9u fS91c3IvbGliCisgLS1lbmFibGUtdW5saW1pdGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3Rl bQorIC0td2l0aC1saWJqcGVnPXN5c3RlbQorIC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRo LWxpYnBuZz1zeXN0ZW0KKyAtLXdpdGgtbGNtcz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAt LXdpdGgtZGVidWctbGV2ZWw9cmVsZWFzZQorIC0td2l0aC1qb2JzPSR7WEJQU19PUklHX01BS0VK T0JTfQorIC0td2l0aC12ZXJzaW9uLXByZT0KKyAtLXdpdGgtdmVyc2lvbi1idWlsZD0ke19qZGtf dXBkYXRlfQorIC0td2l0aC12ZXJzaW9uLW9wdD12b2lkLXIke3JldmlzaW9ufQorIC0td2l0aC12 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 CitpZiBbIC1uICIkWEJQU19ERUJVR19QS0dTIiBdOyB0aGVuCisJY29uZmlndXJlX2FyZ3MrPSIg LS13aXRoLW5hdGl2ZS1kZWJ1Zy1zeW1ib2xzPWludGVybmFsIgorZmkKKworcG9zdF9leHRyYWN0 KCkgeworCWNobW9kICt4IGNvbmZpZ3VyZQorCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJt dXNsIiBdOyB0aGVuCisJCXJtIC1yIHNyYy9qZGsuaG90c3BvdC5hZ2VudAorCWZpCit9CisKK3Bv c3RfcGF0Y2goKSB7CisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCWk2ODYqKQor CQkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9pNjg2X3BhdGNoZXMvKi5wYXRjaDsgZG8KKwkJCQlt c2dfbm9ybWFsICJBcHBseWluZyAke2YjJEZJTEVTRElSL31cbiIKKwkJCQlwYXRjaCAtbE5wMSAt aSAiJGYiCisJCQlkb25lCisJCQk7OworCWVzYWMKKworCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJD IiA9ICJtdXNsIiBdOyB0aGVuCisJCWZvciBmIGluICIke0ZJTEVTRElSfSIvbXVzbF9wYXRjaGVz LyoucGF0Y2g7IGRvCisJCQltc2dfbm9ybWFsICJBcHBseWluZyAke2YjJEZJTEVTRElSL31cbiIK KwkJCXBhdGNoIC1sTnAxIC1pICIkZiIKKwkJZG9uZQorCWZpCit9CisKK2RvX2NvbmZpZ3VyZSgp IHsKKwlDRkxBR1M9JHtDRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99CisJQ1hYRkxBR1M9JHtD WFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKworCSMgZm9yY2UgRUxGdjIgZm9yIHBwYzY0 IGp1c3QgaW4gY2FzZQorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCop CisJCQlDRkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQlDWFhGTEFHUys9IiAtREFCSV9FTEZ2MiIK KwkJCTs7CisJZXNhYworCisJIyBjb21wYXRpYmlsaXR5IHdpdGggR0NDIDEwLngKKwlDRkxBR1Mr PSIgLWZjb21tb24gLWZuby1saWZldGltZS1kc2UiCisJQ1hYRkxBR1MrPSIgLWZjb21tb24gLWZu by1saWZldGltZS1kc2UiCisKKwljb25maWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0 aC1saWJ0b29sLXN5c3Jvb3Q9XC91c3JcL1thLXowLTldKi1saW51eC1bYS16XSovfQorCWlmIFsg IiRYQlBTX0NDQUNIRSIgXTsgdGhlbgorCQljb25maWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2Fj aGUiCisJZmkKKwlDQz0iL3Vzci9iaW4vY2MiCisJQ1hYPSIvdXNyL2Jpbi9jKysiCisJLi9jb25m aWd1cmUgJHtjb25maWd1cmVfYXJnc30gXAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdT IiBcCisJCS0td2l0aC1leHRyYS1jeHhmbGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRy YS1sZGZsYWdzPSIkTERGTEFHUyIgXAorCQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0k U1RSSVAgTk09JE5NIFwKKwkJT0JKRFVNUD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisK K3Bvc3RfaW5zdGFsbCgpIHsKKwltdiAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtf YmFzZV92ZXJzaW9ufSAke0RFU1RESVJ9LyRfamRrX2hvbWUKKwlybSAtcmYgJHtERVNURElSfS91 c3IvbGliL2JpbgorCXJtIC1mICRERVNURElSLyRfamRrX2hvbWUvbGliL3NyYy56aXAKKwl2bGlj ZW5zZSBBU1NFTUJMWV9FWENFUFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CgpGcm9tIGJkNzVm MWE1MzJkZWU2OTBiOWM0YjFjMGYxZjQzMmYxOWNiOTRlZDEgTW9uIFNlcCAxNyAwMDowMDowMCAy MDAxCkZyb206IGNsYXNzYWJieWFtcCA8ZGV2QGtiNi5lZT4KRGF0ZTogVGh1LCAzIEZlYiAyMDIy IDE1OjAyOjM5IC0wNTAwClN1YmplY3Q6IFtQQVRDSCA1LzddIE5ldyBwYWNrYWdlOiBvcGVuamRr MTUtYm9vdHN0cmFwLTE1LjAuMyszCgotLS0KIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2 NC5wYXRjaCAgICAgICAgICB8ICAxMCArCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRj aCAgICAgICAgICAgICAgfCAgMjEgKysKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0 Y2ggICAgICAgICAgICB8IDMzMyArKysrKysrKysrKysrKysrKysKIC4uLi9maWxlcy9tdXNsX3Bh dGNoZXMvY2hlY2sucGF0Y2ggICAgICAgICAgICB8ICAyNCArKwogLi4uL2ZpbGVzL211c2xfcGF0 Y2hlcy9wcGMucGF0Y2ggICAgICAgICAgICAgIHwgIDQ1ICsrKwogLi4uL2ZpbGVzL211c2xfcGF0 Y2hlcy94ODYucGF0Y2ggICAgICAgICAgICAgIHwgMTMwICsrKysrKysKIHNyY3BrZ3Mvb3Blbmpk azE1LWJvb3RzdHJhcC90ZW1wbGF0ZSAgICAgICAgICB8IDEyNiArKysrKysrCiA3IGZpbGVzIGNo YW5nZWQsIDY4OSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVu amRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNS1ib290c3Ry YXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9jaGVjay5wYXRjaAog Y3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMvcHBjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTUt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBzcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvdGVtcGxhdGUKCmRpZmYgLS1naXQgYS9zcmNw a2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gg Yi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hYTZjNWQ0ZDJi ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMv bXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKQEAgLTAsMCArMSwxMCBAQAorLS0tIGEvc3JjL2hv dHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKKysrKyBiL3Ny Yy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNoNjQuY3BwCitAQCAt NzQsNyArNzQsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+Cisg IyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKyAKKyAj ZGVmaW5lIFJFR19GUCAyOQorICNkZWZpbmUgUkVHX0xSIDMwCmRpZmYgLS1naXQgYS9zcmNwa2dz L29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCBiL3NyY3Br Z3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMTAyNDI4ZjEwZjMzCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9hcm0ucGF0Y2gKQEAgLTAsMCArMSwyMSBAQAorLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xp bnV4X2FybS9vc19saW51eF9hcm0uY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhf YXJtL29zX2xpbnV4X2FybS5jcHAKK0BAIC03Myw2ICs3MywxOCBAQAorICMgaW5jbHVkZSA8dWNv bnRleHQuaD4KKyAjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKysvLyBTdHVwaWQgaGFjayBh cyB0aGUgb3JpZ2luIGlmIGJlbG93IGRvZXNudCBjb21waWxlIHdpdGggZ2NjIDguMi4wOgorKy8v CisrLy8gb3NfbGludXhfYXJtLmNwcDoxMTQ6NTogZXJyb3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJh dG9yIGJlZm9yZSB0b2tlbiAiKCIKKysvLyAgI2lmIE5HUkVHID09IDE2CisrLy8gICAgICAgXn5+ fn4KKysvLworKy8vIFRoZSBOR1JFRyBpcyAxOCAoYml0cy9zaWduYWwuaDoxMCksIHNvIGZvcmNl IGl0IHRvIHRoYXQgdmFsdWUuCisrI2lmZGVmIE5HUkVHCisrIyAgdW5kZWYgTkdSRUcKKysjZW5k aWYKKysjZGVmaW5lIE5HUkVHIDE4CisrCisgI2RlZmluZSBTUEVMTF9SRUdfU1AgICJzcCIKKyAK KyAvLyBEb24ndCAjZGVmaW5lIFNQRUxMX1JFR19GUCBmb3IgdGh1bWIgYmVjYXVzZSBpdCBpcyBu b3Qgc2FmZSB0byB1c2UsIHNvIHRoaXMgbWFrZXMgc3VyZSB3ZSBuZXZlciBmZXRjaCBpdC4KZGlm ZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMv YnVpbGQucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRj aGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u NTAzZGY0NjliNTg0Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0 cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDMzMyBAQAorLS0t IGEvbWFrZS9SZWxlYXNlRmlsZS5nbWsKKysrKyBiL21ha2UvUmVsZWFzZUZpbGUuZ21rCitAQCAt NTMsNiArNTMsNyBAQCBkZWZpbmUgY3JlYXRlLWluZm8tZmlsZQorICAgJChjYWxsIGluZm8tZmls ZS1pdGVtLCAiSkFWQV9WRVJTSU9OX0RBVEUiLCAiJChWRVJTSU9OX0RBVEUpIikKKyAgICQoY2Fs bCBpbmZvLWZpbGUtaXRlbSwgIk9TX05BTUUiLCAiJChSRUxFQVNFX0ZJTEVfT1NfTkFNRSkiKQor ICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfQVJDSCIsICIkKFJFTEVBU0VfRklMRV9PU19B UkNIKSIpCisrICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJMSUJDIiwgIm11c2wiKQorIGVuZGVm CisgCisgIyBQYXJhbSAxIC0gVGhlIGZpbGUgY29udGFpbmluZyB0aGUgTU9EVUxFUyBsaXN0Cist LS0gYS9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCisrKysgYi9tYWtlL2hvdHNwb3Qv bGliL0NvbXBpbGVKdm0uZ21rCitAQCAtNzMsNiArNzMsNyBAQCBDRkxBR1NfVk1fVkVSU0lPTiA6 PSBcCisgICAgIC1ESE9UU1BPVF9CVUlMRF9VU0VSPSciJChVU0VSTkFNRSkiJyBcCisgICAgIC1E SE9UU1BPVF9WTV9ESVNUUk89JyIkKEhPVFNQT1RfVk1fRElTVFJPKSInIFwKKyAgICAgLURDUFU9 JyIkKE9QRU5KREtfVEFSR0VUX0NQVV9WTV9WRVJTSU9OKSInIFwKKysgICAgLURMSUJDPScibXVz bCInIFwKKyAgICAgIworIAorICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCistLS0gYS9tYWtlL21v ZHVsZXMvamF2YS5iYXNlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworKysrIGIvbWFrZS9tb2R1bGVz L2phdmEuYmFzZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKK0BAIC0xOTAsNiArMTkwLDcgQEAgaWZl cSAoJChjYWxsIGlzVGFyZ2V0T3MsIHdpbmRvd3MpLCB0cnVlKQorIGVuZGlmCisgCisgTElCSkxJ X0NGTEFHUyArPSAkKExJQlpfQ0ZMQUdTKQorK0xJQkpMSV9DRkxBR1MgKz0gLURMSUJDPVwibXVz bFwiCisgCisgaWZuZXEgKCQoVVNFX0VYVEVSTkFMX0xJQlopLCB0cnVlKQorICAgTElCSkxJX0VY VFJBX0ZJTEVTICs9IFwKKy0tLSBhL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAor KysrIGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCitAQCAtMTAyLDcgKzEwMiw2 IEBACisgIyBpbmNsdWRlIDxzdHJpbmcuaD4KKyAjIGluY2x1ZGUgPHN5c2NhbGwuaD4KKyAjIGlu Y2x1ZGUgPHN5cy9zeXNpbmZvLmg+CistIyBpbmNsdWRlIDxnbnUvbGliYy12ZXJzaW9uLmg+Cisg IyBpbmNsdWRlIDxzeXMvaXBjLmg+CisgIyBpbmNsdWRlIDxzeXMvc2htLmg+CisgIyBpbmNsdWRl IDxsaW5rLmg+CitAQCAtNTk3LDYgKzU5NiwxMiBAQCB2b2lkIG9zOjpMaW51eDo6aG90c3BvdF9z aWdtYXNrKFRocmVhZCogdGhyZWFkKSB7CisgLy8gZGV0ZWN0aW5nIHB0aHJlYWQgbGlicmFyeQor IAorIHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7CisrI2lmICFkZWZpbmVkKF9f R0xJQkNfXykgJiYgIWRlZmluZWQoX19VQ0xJQkNfXykKKysgIC8vIEhhcmQgY29kZSBBbHBpbmUg TGludXggc3VwcG9ydGVkIG11c2wgY29tcGF0aWJsZSBzZXR0aW5ncworKyAgLy8gc2duOiBOUFRM IGlzIGNvcnJlY3QsIGRvbid0IGtub3cgYWJvdXQgZ2xpYmMgMi45LCBhbHBpbmUncyB0aGluZz8K KysgIG9zOjpMaW51eDo6c2V0X2dsaWJjX3ZlcnNpb24oImdsaWJjIDIuOSIpOworKyAgb3M6Okxp bnV4OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKCJOUFRMIik7CisrI2Vsc2UKKyAgIC8vIFNhdmUg Z2xpYmMgYW5kIHB0aHJlYWQgdmVyc2lvbiBzdHJpbmdzLgorICNpZiAhZGVmaW5lZChfQ1NfR05V X0xJQkNfVkVSU0lPTikgfHwgXAorICAgICAhZGVmaW5lZChfQ1NfR05VX0xJQlBUSFJFQURfVkVS U0lPTikKK0BAIC02MTQsNiArNjE5LDcgQEAgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5p dCgpIHsKKyAgIHN0ciA9IChjaGFyICopbWFsbG9jKG4sIG10SW50ZXJuYWwpOworICAgY29uZnN0 cihfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTiwgc3RyLCBuKTsKKyAgIG9zOjpMaW51eDo6c2V0 X2xpYnB0aHJlYWRfdmVyc2lvbihzdHIpOworKyNlbmRpZgorIH0KKyAKKyAvLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLworQEAgLTMxMTcsMjAgKzMxMjMsMzYgQEAgdm9pZCBvczo6TGludXg6OnNjaGVkX2dl dGNwdV9pbml0KCkgeworIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV93YXJuKGludCBu dW1iZXIsIGNoYXIgKndoZXJlLCAuLi4pIHsgfQorIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQg bnVtYV9lcnJvcihjaGFyICp3aGVyZSkgeyB9CisgCisrc3RhdGljIHZvaWQqIGRsdnN5bV9pZl9h dmFpbGFibGUodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJz aW9uKSB7CisrICB0eXBlZGVmIHZvaWQqICgqZGx2c3ltX2Z1bmNfdHlwZSkodm9pZCogaGFuZGxl LCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKTsKKysgIHN0YXRpYyBkbHZz eW1fZnVuY190eXBlIGRsdnN5bV9mdW5jOworKyAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBm YWxzZTsKKysKKysgIGlmICghaW5pdGlhbGl6ZWQpIHsKKysgICAgZGx2c3ltX2Z1bmMgPSAoZGx2 c3ltX2Z1bmNfdHlwZSlkbHN5bShSVExEX05FWFQsICJkbHZzeW0iKTsKKysgICAgaW5pdGlhbGl6 ZWQgPSB0cnVlOworKyAgfQorKworKyAgaWYgKGRsdnN5bV9mdW5jICE9IE5VTEwpIHsKKysgICAg dm9pZCAqZiA9IGRsdnN5bV9mdW5jKGhhbmRsZSwgbmFtZSwgdmVyc2lvbik7CisrICAgIGlmIChm ICE9IE5VTEwpIHsKKysgICAgICByZXR1cm4gZjsKKysgICAgfQorKyAgfQorKworKyAgcmV0dXJu IGRsc3ltKGhhbmRsZSwgbmFtZSk7CisrfQorKworIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQg bGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjEgKEFQSSB2MSkuIElmIGl0IGZhaWxzCisgLy8gbG9h ZCBzeW1ib2wgZnJvbSBiYXNlIHZlcnNpb24gaW5zdGVhZC4KKyB2b2lkKiBvczo6TGludXg6Omxp Ym51bWFfZGxzeW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFyICpuYW1lKSB7CistICB2b2lkICpm ID0gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4xIik7CistICBpZiAoZiA9PSBOVUxM KSB7CistICAgIGYgPSBkbHN5bShoYW5kbGUsIG5hbWUpOworLSAgfQorLSAgcmV0dXJuIGY7Cisr ICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIp OworIH0KKyAKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNp b24gMS4yIChBUEkgdjIpIG9ubHkuCisgLy8gUmV0dXJuIE5VTEwgaWYgdGhlIHN5bWJvbCBpcyBu b3QgZGVmaW5lZCBpbiB0aGlzIHBhcnRpY3VsYXIgdmVyc2lvbi4KKyB2b2lkKiBvczo6TGludXg6 OmxpYm51bWFfdjJfZGxzeW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lKSB7CistICBy ZXR1cm4gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisrICByZXR1cm4gZGx2 c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMiIpOworIH0KKyAKKyBi b29sIG9zOjpMaW51eDo6bGlibnVtYV9pbml0KCkgeworLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1 L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGlu dXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC03NSw5ICs3NSw2IEBACisgIyBpbmNsdWRlIDxw d2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistI2lm bmRlZiBBTUQ2NAorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKy0jZW5kaWYKKyAKKyAjaWZk ZWYgQU1ENjQKKyAjZGVmaW5lIFJFR19TUCBSRUdfUlNQCistLS0gYS9zcmMvaG90c3BvdC9zaGFy ZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJl L2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorQEAgLTExMTYsNyArMTExNiw3IEBAIEhl YXBXb3JkKiBHZW5Db2xsZWN0ZWRIZWFwOjphbGxvY2F0ZV9uZXdfdGxhYihzaXplX3QgbWluX3Np emUsCisgc3RhdGljIFNjcmF0Y2hCbG9jayAqcmVtb3ZlU21hbGxlc3RTY3JhdGNoKFNjcmF0Y2hC bG9jayAqKnByZXZfcHRyKSB7CisgICBib29sIGZpcnN0ID0gdHJ1ZTsKKyAgIHNpemVfdCBtaW5f c2l6ZSA9IDA7ICAgLy8gImZpcnN0IiBtYWtlcyB0aGlzIGNvbmNlcHR1YWxseSBpbmZpbml0ZS4K Ky0gIFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0ciwgKnNtYWxsZXN0OworKyAgU2NyYXRjaEJs b2NrICoqc21hbGxlc3RfcHRyID0gTlVMTCwgKnNtYWxsZXN0OworICAgU2NyYXRjaEJsb2NrICAq Y3VyID0gKnByZXZfcHRyOworICAgd2hpbGUgKGN1cikgeworICAgICBhc3NlcnQoKnByZXZfcHRy ID09IGN1ciwgImp1c3QgY2hlY2tpbmciKTsKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRp bWUvYWJzdHJhY3Rfdm1fdmVyc2lvbi5jcHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRp bWUvYWJzdHJhY3Rfdm1fdmVyc2lvbi5jcHAKK0BAIC0yNjIsNyArMjYyLDcgQEAgY29uc3QgY2hh ciogQWJzdHJhY3RfVk1fVmVyc2lvbjo6aW50ZXJuYWxfdm1faW5mb19zdHJpbmcoKSB7CisgICAj ZW5kaWYKKyAKKyAgICNkZWZpbmUgSU5URVJOQUxfVkVSU0lPTl9TVUZGSVggVk1fUkVMRUFTRSAi KSIgXAorLSAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBcCisrICAg ICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIExJQkMgXAorICAgICAgICAg ICIgSlJFICgiIFZFUlNJT05fU1RSSU5HICIpLCBidWlsdCBvbiAiIEhPVFNQT1RfQlVJTERfVElN RSBcCisgICAgICAgICAgIiBieSAiIFhTVFIoSE9UU1BPVF9CVUlMRF9VU0VSKSAiIHdpdGggIiBI T1RTUE9UX0JVSUxEX0NPTVBJTEVSCisgCistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRp ZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvdXRp bGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKK0BAIC0yMDQsNyArMjA0LDcgQEAgaW5s aW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbmQoZik7IH0KKyAjZWxpZiBk ZWZpbmVkKF9fQVBQTEVfXykKKyBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJu IGlzbmFuKGYpOyB9CisgI2VsaWYgZGVmaW5lZChMSU5VWCkgfHwgZGVmaW5lZChfQUxMQlNEX1NP VVJDRSkKKy1pbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFuZihmKTsg fQorK2lubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyBp bmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9CisgI2Vsc2UK KyAjZXJyb3IgIm1pc3NpbmcgcGxhdGZvcm0tc3BlY2lmaWMgZGVmaW5pdGlvbiBoZXJlIgorLS0t IGEvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMKKysrKyBi L3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9jbG9zZS5jCitAQCAtNjAs NyArNjAsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CisgLyoKKyAgKiBTaWduYWwgdG8gdW5ibG9jayB0 aHJlYWQKKyAgKi8KKy1zdGF0aWMgaW50IHNpZ1dha2V1cCA9IChfX1NJR1JUTUFYIC0gMik7Cisr c3RhdGljIGludCBzaWdXYWtldXA7CisgCisgLyoKKyAgKiBmZFRhYmxlIGhvbGRzIG9uZSBlbnRy eSBwZXIgZmlsZSBkZXNjcmlwdG9yLCB1cCB0byBhIGNlcnRhaW4KK0BAIC0xNDksNiArMTQ5LDcg QEAgc3RhdGljIHZvaWQgX19hdHRyaWJ1dGUoKGNvbnN0cnVjdG9yKSkgaW5pdCgpIHsKKyAgICAg LyoKKyAgICAgICogU2V0dXAgdGhlIHNpZ25hbCBoYW5kbGVyCisgICAgICAqLworKyAgICBzaWdX YWtldXAgPSBTSUdSVE1BWCAtIDI7CisgICAgIHNhLnNhX2hhbmRsZXIgPSBzaWdfd2FrZXVwOwor ICAgICBzYS5zYV9mbGFncyAgID0gMDsKKyAgICAgc2lnZW1wdHlzZXQoJnNhLnNhX21hc2spOwor LS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCisrKysg Yi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMKK0BAIC0yMzUs NyArMjM1LDEzIEBAIEpES19leGVjdnBlKGludCBtb2RlLCBjb25zdCBjaGFyICpmaWxlLAorIHsK KyAgICAgaWYgKGVudnAgPT0gTlVMTCB8fCAoY2hhciAqKikgZW52cCA9PSBlbnZpcm9uKSB7Cisg ICAgICAgICBleGVjdnAoZmlsZSwgKGNoYXIgKiopIGFyZ3YpOworLSAgICAgICAgcmV0dXJuOwor KyAgICAgICAgLy8gRU5PRVhFQyBpbmRpY2F0ZXMgdGhhdCB0aGUgZmlsZSBoZWFkZXIgd2FzIG5v dCByZWNvZ25pemVkLiBUaGUgbXVzbCBDCisrICAgICAgICAvLyBsaWJyYXJ5IGRvZXMgbm90IGlt cGxlbWVudCB0aGUgZmFsbGJhY2sgdG8gL2Jpbi9zaCBmb3IgdGhhdCBjYXNlLCBzbyBmYWxsCisr ICAgICAgICAvLyB0aHJvdWdoIHRvIHRoZSBjb2RlIGJlbG93IHdoaWNoIGltcGxlbWVudHMgdGhh dCBmYWxsYmFjayB1c2luZworKyAgICAgICAgLy8gZXhlY3ZlX3dpdGhfc2hlbGxfZmFsbGJhY2su CisrICAgICAgICBpZiAoZXJybm8gIT0gRU5PRVhFQykgeworKyAgICAgICAgICAgIHJldHVybjsK KysgICAgICAgIH0KKyAgICAgfQorIAorICAgICBpZiAoKmZpbGUgPT0gJ1wwJykgeworLS0tIGEv c3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKKysrKyBiL3Ny Yy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRpbF9tZC5oCitAQCAtMzcsNyAr MzcsNyBAQAorICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCisgI2VsaWYgZGVmaW5lZChfX2xp bnV4X18pIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0UpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0j ZGVmaW5lIElTTkFORihmKSBpc25hbmYoZikKKysjZGVmaW5lIElTTkFORihmKSBpc25hbihmKQor ICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCisgI2VsaWYgZGVmaW5lZChfQUlYKQorICNpbmNs dWRlIDxtYXRoLmg+CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZh X21kLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWQuYwor QEAgLTIzMCw2ICsyMzAsMzkgQEAgUmVxdWlyZXNTZXRlbnYoY29uc3QgY2hhciAqanZtcGF0aCkg eworICAgICBjaGFyICpkbWxscCA9IE5VTEw7CisgICAgIGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBw b2ludGVyICovCisgCisrI2lmZGVmIF9fbGludXgKKysjaWZuZGVmIExJQkMKKysjZXJyb3IgIkxJ QkMgbm90IHNldCIKKysjZW5kaWYKKysKKysgICAgaWYgKHN0cmNtcChMSUJDLCAibXVzbCIpID09 IDApIHsKKysgICAgICAvKgorKyAgICAgICAqIFRoZSBtdXNsIGxpYnJhcnkgbG9hZGVyIHJlcXVp cmVzIExEX0xJQlJBUllfUEFUSCB0byBiZSBzZXQgaW4KKysgICAgICAgKiBvcmRlciB0byBjb3Jy ZWN0bHkgcmVzb2x2ZSB0aGUgZGVwZW5kZW5jeSBsaWJqYXZhLnNvIGhhcyBvbiBsaWJqdm0uc28u CisrICAgICAgICoKKysgICAgICAgKiBTcGVjaWZpY2FsbHksIGl0IGRpZmZlcnMgZnJvbSBnbGli YyBpbiB0aGUgc2Vuc2UgdGhhdCBldmVuIGlmCisrICAgICAgICogbGlianZtLnNvIGhhcyBhbHJl YWR5IGJlZW4gbG9hZGVkIGl0IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQgYQorKyAgICAgICAqIGNh bmRpZGF0ZSBmb3IgcmVzb2x2aW5nIHRoZSBkZXBlbmRlbmN5IHVubGVzcyB0aGUgKmZ1bGwqIHBh dGgKKysgICAgICAgKiBvZiB0aGUgYWxyZWFkeSBsb2FkZWQgbGlicmFyeSBtYXRjaGVzIHRoZSBk ZXBlbmRlbmN5IGJlaW5nIGxvYWRlZC4KKysgICAgICAgKgorKyAgICAgICAqIGxpYmp2bS5zbyBp cyBiZWluZyBsb2FkZWQgYnkgdGhlIGxhdW5jaGVyIHVzaW5nIGEgbG9uZyBwYXRoIHRvCisrICAg ICAgICogZGxvcGVuLCBub3QganVzdCB0aGUgYmFzZW5hbWUgb2YgdGhlIGxpYnJhcnkuIFR5cGlj YWxseSB0aGlzCisrICAgICAgICogaXMgc29tZXRoaW5nIGxpa2UgIi4uL2xpYi9zZXJ2ZXIvbGli anZtLnNvIi4gSG93ZXZlciwgaWYvd2hlbgorKyAgICAgICAqIGxpYmp2bS5zbyBsYXRlciB0cmll cyB0byBkbG9wZW4gbGliamF2YS5zbyAod2hpY2ggaXQgZG9lcyBpbgorKyAgICAgICAqIG9yZGVy IHRvIGdldCBhY2Nlc3MgdG8gYSBmZXcgZnVuY3Rpb25zIGltcGxlbWVudGVkIGluCisrICAgICAg ICogbGliamF2YS5zbykgdGhlIG11c2wgbG9hZGVyIHdpbGwsIGFzIHBhcnQgb2YgbG9hZGluZwor KyAgICAgICAqIGRlcGVuZGVudCBsaWJyYXJpZXMsIHRyeSB0byBsb2FkIGxpYmp2bS5zbyB1c2lu ZyBvbmx5IGl0cworKyAgICAgICAqIGJhc2VuYW1lICJsaWJqdm0uc28iLiBTaW5jZSB0aGlzIGRv ZXMgbm90IG1hdGNoIHRoZSBsb25nZXIKKysgICAgICAgKiBwYXRoIHBhdGggaXQgd2FzIGZpcnN0 IGxvYWRlZCB3aXRoLCB0aGUgYWxyZWFkeSBsb2FkZWQKKysgICAgICAgKiBsaWJyYXJ5IGlzIG5v dCBjb25zaWRlcmVkIGEgY2FuZGlkYXRlLCBhbmQgdGhlIGxvYWRlciB3aWxsCisrICAgICAgICog aW5zdGVhZCBsb29rIGZvciBsaWJqdm0uc28gZWxzZXdoZXJlLiBJZiBpdCdzIG5vdCBpbgorKyAg ICAgICAqIExEX0xJQlJBUllfUEFUSCB0aGUgZGVwZW5kZW5jeSBsb2FkIHdpbGwgZmFpbCwgYW5k IGxpYmphdmEuc28KKysgICAgICAgKiB3aWxsIHRoZXJlZm9yZSBmYWlsIGFzIHdlbGwuCisrICAg ICAgICovCisrICAgICAgcmV0dXJuIEpOSV9UUlVFOworKyAgICB9CisrI2VuZGlmCisrCisgI2lm ZGVmIEFJWAorICAgICAvKiBXZSBhbHdheXMgaGF2ZSB0byBzZXQgdGhlIExJQlBBVEggb24gQUlY IGJlY2F1c2UgbGQgZG9lc24ndCBzdXBwb3J0ICRPUklHSU4uICovCisgICAgIHJldHVybiBKTklf VFJVRTsKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRo cmVhZC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVU aHJlYWQuYworQEAgLTM2LDcgKzM2LDcgQEAKKyAjaWZkZWYgX19saW51eF9fCisgICAjaW5jbHVk ZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9saW51eF9jbG9zZS5jICov CistICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKF9fU0lHUlRNQVggLSAyKQorKyAgI2RlZmlu ZSBJTlRFUlJVUFRfU0lHTkFMIChTSUdSVE1BWCAtIDIpCisgI2VsaWYgZGVmaW5lZChfQUlYKQor ICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvYWl4X2Ns b3NlLmMgKi8KKy0tLSBhL3NyYy9qZGsuamR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91 dGlsLmgKKysrKyBiL3NyYy9qZGsuamR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGls LmgKK0BAIC0zNSwxNSArMzUsMTUgQEAKKyAjaWZkZWYgREVCVUcKKyAgICAgLyogSnVzdCB0byBt YWtlIHN1cmUgdGhlc2UgaW50ZXJmYWNlcyBhcmUgbm90IHVzZWQgaGVyZS4gKi8KKyAgICAgI3Vu ZGVmIGZyZWUKKy0gICAgI2RlZmluZSBmcmVlKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2Uu CisrICAgICNkZWZpbmUgZnJlZSBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX2ZyZWUKKyAgICAg I3VuZGVmIG1hbGxvYworLSAgICAjZGVmaW5lIG1hbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50 ZXJmYWNlLgorKyAgICAjZGVmaW5lIG1hbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX21h bGxvYworICAgICAjdW5kZWYgY2FsbG9jCistICAgICNkZWZpbmUgY2FsbG9jKHApIERvIG5vdCB1 c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgY2FsbG9jIGRvX25vdF91c2VfdGhpc19p bnRlcmZhY2VfY2FsbG9jCisgICAgICN1bmRlZiByZWFsbG9jCistICAgICNkZWZpbmUgcmVhbGxv YyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHJlYWxsb2MgZG9f bm90X3VzZV90aGlzX2ludGVyZmFjZV9yZWFsbG9jCisgICAgICN1bmRlZiBzdHJkdXAKKy0gICAg I2RlZmluZSBzdHJkdXAocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmlu ZSBzdHJkdXAgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9zdHJkdXAKKyAjZW5kaWYKKyAKKyAj aW5jbHVkZSAibG9nX21lc3NhZ2VzLmgiCistLS0gYS90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGlt ZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMKKysrKyBiL3Rlc3QvaG90c3BvdC9qdHJlZy9y dW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworQEAgLTMzLDYgKzMzLDcgQEAKKyAK KyAjaW5jbHVkZSA8YXNzZXJ0Lmg+CisgI2luY2x1ZGUgPGpuaS5oPgorKyNpbmNsdWRlIDxqdm0u aD4KKyAjaW5jbHVkZSA8YWxsb2NhLmg+CisgI2luY2x1ZGUgPHNpZ25hbC5oPgorICNpbmNsdWRl IDxzdHJpbmcuaD4KK0BAIC05MSw2ICs5MiwyMCBAQCB2b2lkIHNldF9zaWduYWxfaGFuZGxlcigp IHsKKyAgIH0KKyB9CisgCisraW50IGdldF9qYXZhX3N0YWNrc2l6ZSAoKSB7CisrICBzaXplX3Qg c3RhY2tzaXplOworKyAgcHRocmVhZF9hdHRyX3QgYXR0cjsKKysgIEpESzFfMUluaXRBcmdzIGpk a19hcmdzOworKworKyAgamRrX2FyZ3MudmVyc2lvbiA9IEpOSV9WRVJTSU9OXzFfMTsKKysgIEpO SV9HZXREZWZhdWx0SmF2YVZNSW5pdEFyZ3MoJmpka19hcmdzKTsKKysgIGlmIChqZGtfYXJncy5q YXZhU3RhY2tTaXplIDw9IDApIHsKKysgICAgZnByaW50ZihzdGRlcnIsICJUZXN0IEVSUk9SLiBD YW4ndCBnZXQgYSB2YWxpZCB2YWx1ZSBmb3IgdGhlIGRlZmF1bHQgc3RhY2tzaXplLlxuIik7Cisr ICAgIGV4aXQoNyk7CisrICB9CisrICByZXR1cm4gamRrX2FyZ3MuamF2YVN0YWNrU2l6ZTsKKyt9 CisrCisgdm9pZCAqcnVuX2phdmFfb3ZlcmZsb3cgKHZvaWQgKnApIHsKKyAgIEpOSUVudiAqZW52 OworICAgamNsYXNzIGNsYXNzX2lkOworQEAgLTI1OCwxMyArMjczLDE5IEBAIGludCBtYWluIChp bnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpIHsKKyAgICAgZXhpdCg3KTsKKyAgIH0KKyAKKysg IGludCBzdGFja19zaXplID0gZ2V0X2phdmFfc3RhY2tzaXplKCk7CisgICBwdGhyZWFkX3QgdGhy OworKyAgcHRocmVhZF9hdHRyX3QgdGhyZWFkX2F0dHI7CisrCisrICBwdGhyZWFkX2F0dHJfaW5p dCgmdGhyZWFkX2F0dHIpOworKyAgcHRocmVhZF9hdHRyX3NldHN0YWNrc2l6ZSgmdGhyZWFkX2F0 dHIsIHN0YWNrX3NpemUpOworIAorICAgaWYgKGFyZ2MgPiAxICYmIHN0cmNtcChhcmd2WzFdLCAi dGVzdF9qYXZhX292ZXJmbG93IikgPT0gMCkgeworICAgICBwcmludGYoIlxuVGVzdGluZyBKQVZB X09WRVJGTE9XXG4iKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2Ug YmVoYXZpb3VyIGZvciBvdGhlciB0aHJlYWRcbiIpOworLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRo ciwgTlVMTCwgcnVuX2phdmFfb3ZlcmZsb3csIE5VTEwpOworKworKyAgICBwdGhyZWFkX2NyZWF0 ZSAoJnRociwgJnRocmVhZF9hdHRyLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0 aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1 YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBpbml0aWFsIHRocmVhZFxuIik7CitAQCAtMjc3LDcgKzI5 OCw3IEBAIGludCBtYWluIChpbnQgYXJnYywgY29uc3QgY2hhcioqIGFyZ3YpIHsKKyAgICAgcHJp bnRmKCJcblRlc3RpbmcgTkFUSVZFX09WRVJGTE9XXG4iKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0 aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBvdGhlciB0aHJlYWRcbiIpOworLSAg ICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7 CisrICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9uYXRpdmVfb3Zl cmZsb3csIE5VTEwpOworICAgICBwdGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisgCisgICAgIHBy aW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0aHJl YWRcbiIpOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211 c2xfcGF0Y2hlcy9jaGVjay5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxl cy9tdXNsX3BhdGNoZXMvY2hlY2sucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi4yNTBjN2VlZGUyMDkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5q ZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2NoZWNrLnBhdGNoCkBAIC0wLDAgKzEs MjQgQEAKKy0tLSBhL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1RMUy9leGVzdGFjay10bHMu YworKysrIGIvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvVExTL2V4ZXN0YWNrLXRscy5jCitA QCAtMjYsNyArMjYsNiBAQAorICNpbmNsdWRlIDxzdGRpby5oPgorICNpbmNsdWRlIDxzdGRsaWIu aD4KKyAjaW5jbHVkZSA8c3RyaW5nLmg+CistI2luY2x1ZGUgPGdudS9saWJjLXZlcnNpb24uaD4K KyAKKyAvLyBEZWNsYXJlIHRoZSB0aHJlYWQgbG9jYWwgdmFyaWFibGUocykgaW4gdGhlIG1haW4g ZXhlY3V0YWJsZS4gVGhpcyBjYW4gYmUKKyAvLyB1c2VkIHRvIGRlbW9uc3RyYXRlIHRoZSBpc3N1 ZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBvbi1zdGFjayBzdGF0aWMgVExTIGJsb2NrcworQEAgLTU2 LDEzICs1NSw2IEBACisgCisgLy8gZ2xpYmMgMi4xNSBpbnRyb2R1Y2VkIF9fcHRocmVhZF9nZXRf bWluc3RhY2sKKyBpbnQgZ2xpYmNfaGFzX3B0aHJlYWRfZ2V0X21pbnN0YWNrKCkgeworLSAgY29u c3QgY2hhciogZ2xpYmNfdmVycyA9IGdudV9nZXRfbGliY192ZXJzaW9uKCk7CistICBjb25zdCBp bnQgZ2xpYmNfdmVyc19tYWpvciA9IGF0b2koZ2xpYmNfdmVycyk7CistICBjb25zdCBpbnQgZ2xp YmNfdmVyc19taW5vciA9IGF0b2koc3RyY2hyKGdsaWJjX3ZlcnMsICcuJykgKyAxKTs7CistICBw cmludGYoIkdOVSBsaWJjIHZlcnNpb246ICVzXG4iLCBnbGliY192ZXJzKTsKKy0gIGlmICgoZ2xp YmNfdmVyc19tYWpvciA+IDIpIHx8ICgoZ2xpYmNfdmVyc19tYWpvciA9PSAyKSAmJiAoZ2xpYmNf dmVyc19taW5vciA+PSAxNSkpKSB7CistICAgIHJldHVybiAxOworLSAgfQorICAgcHJpbnRmKCJU aGlzIHZlcnNpb24gZG9lcyBub3QgcHJvdmlkZSBfX3B0aHJlYWRfZ2V0X21pbnN0YWNrXG4iKTsK KyAgIHJldHVybiAwOworIH0KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJh cC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0 cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k ZXggMDAwMDAwMDAwMDAwLi5kMzA2ZDUwMWU0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dz L29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaApAQCAtMCww 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 aXQgYS9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5w YXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2 LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOWM2NGMxODkw MzZhCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVz L211c2xfcGF0Y2hlcy94ODYucGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAKK1BhdGNoZXMgZm9yIG11 c2wgdGFrZW4gZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9h cG9ydHMvY29tbWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2Mjgw CistLS0gb2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAor KysrIG5ldy9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BA IC05MCw2ICs5MCwxMjYgQEAKKyAjZGVmaW5lIFNQRUxMX1JFR19GUCAiZWJwIgorICNlbmRpZiAv LyBBTUQ2NAorCisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gVGFrZW4gZnJvbSBnbGli YyAyLjI4CisrLy8gc291cmNlOiBodHRwczovL3NvdXJjZXdhcmUub3JnL2dpdC8/cD1nbGliYy5n aXQ7YT1ibG9iO2Y9c3lzZGVwcy94ODYvZnB1X2NvbnRyb2wuaDtoPTRjYjk4YzU2NzliMjg5N2Zm NGU1ODI2ZDIyOGNiYTZiZTU4OWUyNGQ7aGI9M2MwM2JhY2EzN2ZkY2I1MmMzODgxZTY1M2NhMzky YmJhN2E5OWMyYgorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyNpZm5kZWYgQU1ENjQKKysv KiBGUFUgY29udHJvbCB3b3JkIGJpdHMuICB4ODYgdmVyc2lvbi4KKysgICBDb3B5cmlnaHQgKEMp IDE5OTMtMjAxOCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUg aXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKysgICBDb250cmlidXRlZCBieSBPbGFmIEZs ZWJiZS4KKysKKysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEg b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisr CisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBp dCB3aWxsIGJlIHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisr ICAgTGljZW5zZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAg IDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBfRlBVX0NP TlRST0xfSAorKyNkZWZpbmUgX0ZQVV9DT05UUk9MX0gJMQorKworKy8qIE5vdGUgdGhhdCB0aGlz IGZpbGUgc2V0cyBvbiB4ODYtNjQgb25seSB0aGUgeDg3IEZQVSwgaXQgZG9lcyBub3QKKysgICB0 b3VjaCB0aGUgU1NFIHVuaXQuICAqLworKworKy8qIEhlcmUgaXMgdGhlIGRpcnR5IHBhcnQuIFNl dCB1cCB5b3VyIDM4NyB0aHJvdWdoIHRoZSBjb250cm9sIHdvcmQKKysgKiAoY3cpIHJlZ2lzdGVy LgorKyAqCisrICogICAgIDE1LTEzICAgIDEyICAxMS0xMCAgOS04ICAgICA3LTYgICAgIDUgICAg NCAgICAzICAgIDIgICAgMSAgICAwCisrICogfCByZXNlcnZlZCB8IElDIHwgUkMgIHwgUEMgfCBy ZXNlcnZlZCB8IFBNIHwgVU0gfCBPTSB8IFpNIHwgRE0gfCBJTQorKyAqCisrICogSU06IEludmFs aWQgb3BlcmF0aW9uIG1hc2sKKysgKiBETTogRGVub3JtYWxpemVkIG9wZXJhbmQgbWFzaworKyAq IFpNOiBaZXJvLWRpdmlkZSBtYXNrCisrICogT006IE92ZXJmbG93IG1hc2sKKysgKiBVTTogVW5k ZXJmbG93IG1hc2sKKysgKiBQTTogUHJlY2lzaW9uIChpbmV4YWN0IHJlc3VsdCkgbWFzaworKyAq CisrICogTWFzayBiaXQgaXMgMSBtZWFucyBubyBpbnRlcnJ1cHQuCisrICoKKysgKiBQQzogUHJl Y2lzaW9uIGNvbnRyb2wKKysgKiAxMSAtIHJvdW5kIHRvIGV4dGVuZGVkIHByZWNpc2lvbgorKyAq IDEwIC0gcm91bmQgdG8gZG91YmxlIHByZWNpc2lvbgorKyAqIDAwIC0gcm91bmQgdG8gc2luZ2xl IHByZWNpc2lvbgorKyAqCisrICogUkM6IFJvdW5kaW5nIGNvbnRyb2wKKysgKiAwMCAtIHJvdW5k aW5nIHRvIG5lYXJlc3QKKysgKiAwMSAtIHJvdW5kaW5nIGRvd24gKHRvd2FyZCAtIGluZmluaXR5 KQorKyAqIDEwIC0gcm91bmRpbmcgdXAgKHRvd2FyZCArIGluZmluaXR5KQorKyAqIDExIC0gcm91 bmRpbmcgdG93YXJkIHplcm8KKysgKgorKyAqIElDOiBJbmZpbml0eSBjb250cm9sCisrICogVGhh dCBpcyBmb3IgODA4NyBhbmQgODAyODcgb25seS4KKysgKgorKyAqIFRoZSBoYXJkd2FyZSBkZWZh dWx0IGlzIDB4MDM3ZiB3aGljaCB3ZSB1c2UuCisrICovCisrCisrI2luY2x1ZGUgPGZlYXR1cmVz Lmg+CisrCisrLyogbWFza2luZyBvZiBpbnRlcnJ1cHRzICovCisrI2RlZmluZSBfRlBVX01BU0tf SU0gIDB4MDEKKysjZGVmaW5lIF9GUFVfTUFTS19ETSAgMHgwMgorKyNkZWZpbmUgX0ZQVV9NQVNL X1pNICAweDA0CisrI2RlZmluZSBfRlBVX01BU0tfT00gIDB4MDgKKysjZGVmaW5lIF9GUFVfTUFT S19VTSAgMHgxMAorKyNkZWZpbmUgX0ZQVV9NQVNLX1BNICAweDIwCisrCisrLyogcHJlY2lzaW9u IGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfRVhURU5ERUQgMHgzMDAJLyogbGlibSByZXF1aXJl cyBkb3VibGUgZXh0ZW5kZWQgcHJlY2lzaW9uLiAgKi8KKysjZGVmaW5lIF9GUFVfRE9VQkxFICAg MHgyMDAKKysjZGVmaW5lIF9GUFVfU0lOR0xFICAgMHgwCisrCisrLyogcm91bmRpbmcgY29udHJv bCAqLworKyNkZWZpbmUgX0ZQVV9SQ19ORUFSRVNUIDB4MCAgICAvKiBSRUNPTU1FTkRFRCAqLwor KyNkZWZpbmUgX0ZQVV9SQ19ET1dOICAgIDB4NDAwCisrI2RlZmluZSBfRlBVX1JDX1VQICAgICAg MHg4MDAKKysjZGVmaW5lIF9GUFVfUkNfWkVSTyAgICAweEMwMAorKworKyNkZWZpbmUgX0ZQVV9S RVNFUlZFRCAweEYwQzAgIC8qIFJlc2VydmVkIGJpdHMgaW4gY3cgKi8KKysKKysKKysvKiBUaGUg ZmRsaWJtIGNvZGUgcmVxdWlyZXMgc3RyaWN0IElFRUUgZG91YmxlIHByZWNpc2lvbiBhcml0aG1l dGljLAorKyAgIGFuZCBubyBpbnRlcnJ1cHRzIGZvciBleGNlcHRpb25zLCByb3VuZGluZyB0byBu ZWFyZXN0LiAgKi8KKysKKysjZGVmaW5lIF9GUFVfREVGQVVMVCAgMHgwMzdmCisrCisrLyogSUVF RTogIHNhbWUgYXMgYWJvdmUuICAqLworKyNkZWZpbmUgX0ZQVV9JRUVFICAgICAweDAzN2YKKysK KysvKiBUeXBlIG9mIHRoZSBjb250cm9sIHdvcmQuICAqLworK3R5cGVkZWYgdW5zaWduZWQgaW50 IGZwdV9jb250cm9sX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CisrCisr LyogTWFjcm9zIGZvciBhY2Nlc3NpbmcgdGhlIGhhcmR3YXJlIGNvbnRyb2wgd29yZC4gICIqJiIg aXMgdXNlZCB0bworKyAgIHdvcmsgYXJvdW5kIGEgYnVnIGluIG9sZGVyIHZlcnNpb25zIG9mIEdD Qy4gIF9fdm9sYXRpbGVfXyBpcyB1c2VkCisrICAgdG8gc3VwcG9ydCBjb21iaW5hdGlvbiBvZiB3 cml0aW5nIHRoZSBjb250cm9sIHJlZ2lzdGVyIGFuZCByZWFkaW5nCisrICAgaXQgYmFjay4gIFdp dGhvdXQgX192b2xhdGlsZV9fLCB0aGUgb2xkIHZhbHVlIG1heSBiZSB1c2VkIGZvciByZWFkaW5n CisrICAgYmFjayB1bmRlciBjb21waWxlciBvcHRpbWl6YXRpb24uCisrCisrICAgTm90ZSB0aGF0 IHRoZSB1c2Ugb2YgdGhlc2UgbWFjcm9zIGlzIG5vdCBzdWZmaWNpZW50IGFueW1vcmUgd2l0aAor KyAgIHJlY2VudCBoYXJkd2FyZSBub3Igb24geDg2LTY0LiAgU29tZSBmbG9hdGluZyBwb2ludCBv cGVyYXRpb25zIGFyZQorKyAgIGV4ZWN1dGVkIGluIHRoZSBTU0UvU1NFMiBlbmdpbmVzIHdoaWNo IGhhdmUgdGhlaXIgb3duIGNvbnRyb2wgYW5kCisrICAgc3RhdHVzIHJlZ2lzdGVyLiAgKi8KKysj ZGVmaW5lIF9GUFVfR0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3ICUwIiA6 ICI9bSIgKComY3cpKQorKyNkZWZpbmUgX0ZQVV9TRVRDVyhjdykgX19hc21fXyBfX3ZvbGF0aWxl X18gKCJmbGRjdyAlMCIgOiA6ICJtIiAoKiZjdykpCisrCisrLyogRGVmYXVsdCBjb250cm9sIHdv cmQgc2V0IGF0IHN0YXJ0dXAuICAqLworK2V4dGVybiBmcHVfY29udHJvbF90IF9fZnB1X2NvbnRy b2w7CisrCisrI2VuZGlmCS8qIGZwdV9jb250cm9sLmggKi8KKysKKysjZW5kaWYgLy8gQU1ENjQK KysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysv LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKysKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3Bv aW50ZXIoKSB7CisgI2lmZGVmIFNQQVJDX1dPUktTCisgICByZWdpc3RlciB2b2lkICplc3A7CmRp ZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvdGVtcGxhdGUgYi9zcmNwa2dz L29wZW5qZGsxNS1ib290c3RyYXAvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMDAwLi5hNmQ2NWE2YjQzMDAKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29w ZW5qZGsxNS1ib290c3RyYXAvdGVtcGxhdGUKQEAgLTAsMCArMSwxMjYgQEAKKyMgVGVtcGxhdGUg ZmlsZSBmb3IgJ29wZW5qZGsxNS1ib290c3RyYXAnCitfamF2YV92ZXI9MTUKK19qYXZhX21pbl92 ZXI9MAorX2phdmFfc2VjX3Zlcj0zCitfamRrX3VwZGF0ZT0zCitfamRrX2hvbWU9InVzci9saWIv anZtL29wZW5qZGske19qYXZhX3Zlcn0iCitfYmFzZV92ZXJzaW9uPSIke19qYXZhX3Zlcn0uJHtf amF2YV9taW5fdmVyfS4ke19qYXZhX3NlY192ZXJ9IgorCitwa2duYW1lPW9wZW5qZGsxNS1ib290 c3RyYXAKK3ZlcnNpb249IiR7X2Jhc2VfdmVyc2lvbn0rJHtfamRrX3VwZGF0ZX0iCityZXZpc2lv bj0xCit3cmtzcmM9ImpkayR7X2phdmFfdmVyfXUtamRrLSR7dmVyc2lvbn0iCitidWlsZF9zdHls ZT1nbnUtY29uZmlndXJlCitjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVy cm9ycworIC0tcHJlZml4PSR7WEJQU19ERVNURElSfS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0vdXNy L2xpYgorIC0tZW5hYmxlLXVubGltaXRlZC1jcnlwdG8KKyAtLXdpdGgtemxpYj1zeXN0ZW0KKyAt LXdpdGgtbGlianBlZz1zeXN0ZW0KKyAtLXdpdGgtZ2lmbGliPXN5c3RlbQorIC0td2l0aC1saWJw bmc9c3lzdGVtCisgLS13aXRoLWxjbXM9c3lzdGVtCisgLS13aXRoLWp0cmVnPW5vCisgLS13aXRo LWd0ZXN0PSR7WEJQU19CVUlMRERJUn0vZ29vZ2xldGVzdC1yZWxlYXNlLTEuOC4xCisgLS13aXRo LWRlYnVnLWxldmVsPXJlbGVhc2UKKyAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19NQUtFSk9CU30K KyAtLXdpdGgtdmVyc2lvbi1wcmU9CisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JHtfamRrX3VwZGF0 ZX0KKyAtLXdpdGgtdmVyc2lvbi1vcHQ9dm9pZC1yJHtyZXZpc2lvbn0KKyAtLXdpdGgtdmVuZG9y LW5hbWU9Vm9pZAorIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAt LXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIu Y29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtYm9vdC1qZGs9L3Vz ci9saWIvanZtL29wZW5qZGsxNCIKK21ha2VfYnVpbGRfYXJncz0iaW1hZ2VzIgorbWFrZV9jaGVj a190YXJnZXQ9InRlc3QtaG90c3BvdC1ndGVzdCIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZp ZyBhdXRvbWFrZSBhdXRvY29uZiBjcGlvIHRhciB1bnppcCB6aXAgY2EtY2VydGlmaWNhdGVzCisg bGlicmVzc2wgemxpYi1kZXZlbCB3aGljaCBtYWtlLWNhIG9wZW5qZGsxNC1ib290c3RyYXAiCitt YWtlZGVwZW5kcz0ibGliWHJlbmRlci1kZXZlbCBsaWJYdHN0LWRldmVsIGxpYlh0LWRldmVsIGxp YlhyYW5kci1kZXZlbAorIGdpZmxpYi1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsIGN1cHMtZGV2 ZWwgZnJlZXR5cGUtZGV2ZWwgYWxzYS1saWItZGV2ZWwKKyBmb250Y29uZmlnLWRldmVsIHpsaWIt ZGV2ZWwgbGNtczItZGV2ZWwgaGFyZmJ1enotZGV2ZWwgb3BlbmpkazE0LWJvb3RzdHJhcCIKK3By b3ZpZGVzPSJqYXZhLWVudmlyb25tZW50LSR7dmVyc2lvbn1fMSBqYXZhLXJ1bnRpbWUtJHt2ZXJz aW9ufV8xIgorc2hvcnRfZGVzYz0iT3BlbkpESyBKYXZhIERldmVsb3BtZW50IEtpdCAoYm9vdHN0 cmFwIHZlcnNpb24gMTUpIgorbWFpbnRhaW5lcj0iY2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPiIK K2xpY2Vuc2U9IkdQTC0yLjAtb25seSBXSVRIIENsYXNzcGF0aC1leGNlcHRpb24tMi4wIgoraG9t ZXBhZ2U9Imh0dHA6Ly9vcGVuamRrLmphdmEubmV0LyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9oZy5v cGVuamRrLmphdmEubmV0L2pkay11cGRhdGVzL2pkayR7X2phdmFfdmVyfXUvYXJjaGl2ZS9qZGst JHt2ZXJzaW9ufS50YXIuZ3oKKyBodHRwczovL2dpdGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3Qv YXJjaGl2ZS9yZWZzL3RhZ3MvcmVsZWFzZS0xLjguMS50YXIuZ3oiCitjaGVja3N1bT0iNGJiZDdh NzMzNTRhMmQyNDRjN2EwNzU0MDYzMzlhYTBjZTRjNWZjNmJlOTFhNzk1YWY5MzFmNmRjOTVkMDY3 YworIDliZjFmZTUxODJhNjA0YjQxMzVlZGMxYTQyNWFlMzU2YzlhZDE1ZTliMjNmOWYxMmEwMmU4 MDE4NGMzYTI0OWMiCitub2Nyb3NzPXllcworCisjIEJ1aWxkIGlzIHN0aWxsIHBhcmFsbGVsLCBi dXQgZG9uJ3QgdXNlIC1qTi4KK2Rpc2FibGVfcGFyYWxsZWxfYnVpbGQ9eWVzCisKKyMgbm8gaG90 c3BvdCBKSVQgZm9yIHBwYzMyCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGM2 NCopIDs7CisJcHBjKikgX3VzZV96ZXJvPXllcyA7OworZXNhYworCitpZiBbIC1uICIkX3VzZV96 ZXJvIiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliZmZpLWRldmVsIgorCWNvbmZpZ3VyZV9h cmdzKz0iIC0td2l0aC1qdm0tdmFyaWFudHM9emVybyIKKwljYXNlICIkWEJQU19UQVJHRVRfTUFD SElORSIgaW4KKwkJcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrLWp2bWFy Z3M9LVhYOlRocmVhZFN0YWNrU2l6ZT0yNTYwIjs7CisJZXNhYworZmkKKworaWYgWyAtbiAiJFhC UFNfREVCVUdfUEtHUyIgXTsgdGhlbgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1uYXRpdmUt ZGVidWctc3ltYm9scz1pbnRlcm5hbCIKK2ZpCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwljaG1vZCAr eCBjb25maWd1cmUKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgor CQlybSAtciBzcmMvamRrLmhvdHNwb3QuYWdlbnQKKwlmaQorfQorCitwb3N0X3BhdGNoKCkgewor CWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWZvciBmIGluICIk e0ZJTEVTRElSfSIvbXVzbF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQltc2dfbm9ybWFsICJBcHBs eWluZyAke2YjJEZJTEVTRElSL31cbiIKKwkJCXBhdGNoIC1sTnAxIC1pICIkZiIKKwkJZG9uZQor CWZpCit9CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlDRkxBR1M9JHtDRkxBR1MvLURfRk9SVElGWV9T T1VSQ0U9Mi99CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwor CSMgZm9yY2UgRUxGdjIgZm9yIHBwYzY0IGp1c3QgaW4gY2FzZQorCWNhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgorCQlwcGM2NCopCisJCQlDRkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQlD WFhGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCTs7CisJZXNhYworCisJY29uZmlndXJlX2FyZ3M9 JHtjb25maWd1cmVfYXJncy8tLXdpdGgtbGlidG9vbC1zeXNyb290PVwvdXNyXC9bYS16MC05XSot bGludXgtW2Etel0qL30KKwlpZiBbICIkWEJQU19DQ0FDSEUiIF07IHRoZW4KKwkJY29uZmlndXJl X2FyZ3MrPSIgLS1lbmFibGUtY2NhY2hlIgorCWZpCisJQ0M9Ii91c3IvYmluL2NjIgorCUNYWD0i L3Vzci9iaW4vYysrIgorCS4vY29uZmlndXJlICR7Y29uZmlndXJlX2FyZ3N9IFwKKwkJLS13aXRo LWV4dHJhLWNmbGFncz0iJENGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEtY3h4ZmxhZ3M9IiRDWFhG TEFHUyIgXAorCQktLXdpdGgtZXh0cmEtbGRmbGFncz0iJExERkxBR1MiIFwKKwkJUkVBREVMRj0k UkVBREVMRiBBUj0kQVIgU1RSSVA9JFNUUklQIE5NPSROTSBcCisJCU9CSkRVTVA9JE9CSkRVTVAg T0JKQ09QWT0kT0JKQ09QWQorfQorCitwb3N0X2luc3RhbGwoKSB7CisJbXYgJHtERVNURElSfS91 c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jhc2VfdmVyc2lvbn0gJHtERVNURElSfS8kX2pka19ob21l CisJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KKwlybSAtZiAkREVTVERJUi8kX2pka19o b21lL2xpYi9zcmMuemlwCisJdmxpY2Vuc2UgQVNTRU1CTFlfRVhDRVBUSU9OCisJdmxpY2Vuc2Ug TElDRU5TRQorfQorCitkb19jbGVhbigpIHsKKwkjIGNsZWFuIHVwIGd0ZXN0CisJcm0gLXJmICR7 WEJQU19CVUlMRERJUn0vZ29vZ2xldGVzdC1yZWxlYXNlLSoKK30KCkZyb20gZGFhOTllM2UwNGNi MzIyNDQ3YzQ0NmJiMjc2MDRlNDdlMDNhOThkYiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJv bTogY2xhc3NhYmJ5YW1wIDxkZXZAa2I2LmVlPgpEYXRlOiBUaHUsIDMgRmViIDIwMjIgMTU6MDI6 NDkgLTA1MDAKU3ViamVjdDogW1BBVENIIDYvN10gTmV3IHBhY2thZ2U6IG9wZW5qZGsxNi1ib290 c3RyYXAtMTYuMC4yKzcKCi0tLQogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggICAg ICAgICAgICAgIHwgIDIxICsrKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCAg ICAgICAgICAgIHwgMTcwICsrKysrKysrKysrKysrKysrKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hl cy9wcGMucGF0Y2ggICAgICAgICAgICAgIHwgIDQ1ICsrKysrCiAuLi4vZmlsZXMvbXVzbF9wYXRj aGVzL3g4Ni5wYXRjaCAgICAgICAgICAgICAgfCAxMzAgKysrKysrKysrKysrKysKIHNyY3BrZ3Mv b3BlbmpkazE2LWJvb3RzdHJhcC90ZW1wbGF0ZSAgICAgICAgICB8IDEyNiArKysrKysrKysrKysr CiA1IGZpbGVzIGNoYW5nZWQsIDQ5MiBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQg c3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRr MTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90ZW1w bGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNs X3BhdGNoZXMvYXJtLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211 c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi4xMDI0MjhmMTBmMzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNi1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApAQCAtMCwwICsxLDIxIEBACist LS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKKysrKyBi L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAorQEAgLTczLDYg KzczLDE4IEBACisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorICMgaW5jbHVkZSA8YXNtL3B0cmFj ZS5oPgorIAorKy8vIFN0dXBpZCBoYWNrIGFzIHRoZSBvcmlnaW4gaWYgYmVsb3cgZG9lc250IGNv bXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8KKysvLyBvc19saW51eF9hcm0uY3BwOjExNDo1OiBl cnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0b3IgYmVmb3JlIHRva2VuICIoIgorKy8vICAjaWYg TkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+fgorKy8vCisrLy8gVGhlIE5HUkVHIGlzIDE4IChi aXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2UgaXQgdG8gdGhhdCB2YWx1ZS4KKysjaWZkZWYgTkdS RUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRpZgorKyNkZWZpbmUgTkdSRUcgMTgKKysKKyAjZGVm aW5lIFNQRUxMX1JFR19TUCAgInNwIgorIAorIC8vIERvbid0ICNkZWZpbmUgU1BFTExfUkVHX0ZQ IGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5vdCBzYWZlIHRvIHVzZSwgc28gdGhpcyBtYWtlcyBz dXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTYtYm9v dHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE2 LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMTU4YmFiY2Q5NmQKLS0tIC9kZXYvbnVsbAorKysg Yi9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBh dGNoCkBAIC0wLDAgKzEsMTcwIEBACistLS0gYS9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0u Z21rCisrKysgYi9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCitAQCAtNzMsNiArNzMs NyBAQCBDRkxBR1NfVk1fVkVSU0lPTiA6PSBcCisgICAgIC1ESE9UU1BPVF9CVUlMRF9VU0VSPSci JChVU0VSTkFNRSkiJyBcCisgICAgIC1ESE9UU1BPVF9WTV9ESVNUUk89JyIkKEhPVFNQT1RfVk1f RElTVFJPKSInIFwKKyAgICAgLURDUFU9JyIkKE9QRU5KREtfVEFSR0VUX0NQVV9WTV9WRVJTSU9O KSInIFwKKysgICAgLURMSUJDPScibXVzbCInIFwKKyAgICAgIworIAorICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjCistLS0gYS9tYWtlL21vZHVsZXMvamF2YS5iYXNlL2xpYi9Db3JlTGlicmFyaWVz LmdtaworKysrIGIvbWFrZS9tb2R1bGVzL2phdmEuYmFzZS9saWIvQ29yZUxpYnJhcmllcy5nbWsK K0BAIC0xOTAsNiArMTkwLDcgQEAgaWZlcSAoJChjYWxsIGlzVGFyZ2V0T3MsIHdpbmRvd3MpLCB0 cnVlKQorIGVuZGlmCisgCisgTElCSkxJX0NGTEFHUyArPSAkKExJQlpfQ0ZMQUdTKQorK0xJQkpM SV9DRkxBR1MgKz0gLURMSUJDPVwibXVzbFwiCisgCisgaWZuZXEgKCQoVVNFX0VYVEVSTkFMX0xJ QlopLCB0cnVlKQorICAgTElCSkxJX0VYVFJBX0ZJTEVTICs9IFwKKy0tLSBhL3NyYy9ob3RzcG90 L29zL2xpbnV4L29zX2xpbnV4LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGlu dXguY3BwCitAQCAtMzExNywyMCArMzEyMywzNiBAQCB2b2lkIG9zOjpMaW51eDo6c2NoZWRfZ2V0 Y3B1X2luaXQoKSB7CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX3dhcm4oaW50IG51 bWJlciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBu dW1hX2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KKyAKKytzdGF0aWMgdm9pZCogZGx2c3ltX2lmX2F2 YWlsYWJsZSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNp b24pIHsKKysgIHR5cGVkZWYgdm9pZCogKCpkbHZzeW1fZnVuY190eXBlKSh2b2lkKiBoYW5kbGUs IGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pOworKyAgc3RhdGljIGRsdnN5 bV9mdW5jX3R5cGUgZGx2c3ltX2Z1bmM7CisrICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZh bHNlOworKworKyAgaWYgKCFpbml0aWFsaXplZCkgeworKyAgICBkbHZzeW1fZnVuYyA9IChkbHZz eW1fZnVuY190eXBlKWRsc3ltKFJUTERfTkVYVCwgImRsdnN5bSIpOworKyAgICBpbml0aWFsaXpl ZCA9IHRydWU7CisrICB9CisrCisrICBpZiAoZGx2c3ltX2Z1bmMgIT0gTlVMTCkgeworKyAgICB2 b2lkICpmID0gZGx2c3ltX2Z1bmMoaGFuZGxlLCBuYW1lLCB2ZXJzaW9uKTsKKysgICAgaWYgKGYg IT0gTlVMTCkgeworKyAgICAgIHJldHVybiBmOworKyAgICB9CisrICB9CisrCisrICByZXR1cm4g ZGxzeW0oaGFuZGxlLCBuYW1lKTsKKyt9CisrCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBs aWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMSAoQVBJIHYxKS4gSWYgaXQgZmFpbHMKKyAvLyBsb2Fk IHN5bWJvbCBmcm9tIGJhc2UgdmVyc2lvbiBpbnN0ZWFkLgorIHZvaWQqIG9zOjpMaW51eDo6bGli bnVtYV9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKKy0gIHZvaWQgKmYg PSBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKy0gIGlmIChmID09IE5VTEwp IHsKKy0gICAgZiA9IGRsc3ltKGhhbmRsZSwgbmFtZSk7CistICB9CistICByZXR1cm4gZjsKKysg IHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4xIik7 CisgfQorIAorIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lv biAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVMTCBpZiB0aGUgc3ltYm9sIGlzIG5v dCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9uLgorIHZvaWQqIG9zOjpMaW51eDo6 bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUpIHsKKy0gIHJl dHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKysgIHJldHVybiBkbHZz eW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7CisgfQorIAorIGJv b2wgb3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7CistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUv bGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51 eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1LDYgQEAKKyAjIGluY2x1ZGUgPHB3 ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jaWZu ZGVmIEFNRDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorLSNlbmRpZgorIAorICNpZmRl ZiBBTUQ2NAorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJl L2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUv Z2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitAQCAtMTExNiw3ICsxMTE2LDcgQEAgSGVh cFdvcmQqIEdlbkNvbGxlY3RlZEhlYXA6OmFsbG9jYXRlX25ld190bGFiKHNpemVfdCBtaW5fc2l6 ZSwKKyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFsbGVzdFNjcmF0Y2goU2NyYXRjaEJs b2NrICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0cnVlOworICAgc2l6ZV90IG1pbl9z aXplID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29uY2VwdHVhbGx5IGluZmluaXRlLgor LSAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21hbGxlc3Q7CisrICBTY3JhdGNoQmxv Y2sgKipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7CisgICBTY3JhdGNoQmxvY2sgICpj dXIgPSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7CisgICAgIGFzc2VydCgqcHJldl9wdHIg PT0gY3VyLCAianVzdCBjaGVja2luZyIpOworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2 ZS9saWJqYXZhL2NoaWxkcHJvYy5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xp YmphdmEvY2hpbGRwcm9jLmMKK0BAIC0yMzUsNyArMjM1LDEzIEBAIEpES19leGVjdnBlKGludCBt b2RlLCBjb25zdCBjaGFyICpmaWxlLAorIHsKKyAgICAgaWYgKGVudnAgPT0gTlVMTCB8fCAoY2hh ciAqKikgZW52cCA9PSBlbnZpcm9uKSB7CisgICAgICAgICBleGVjdnAoZmlsZSwgKGNoYXIgKiop IGFyZ3YpOworLSAgICAgICAgcmV0dXJuOworKyAgICAgICAgLy8gRU5PRVhFQyBpbmRpY2F0ZXMg dGhhdCB0aGUgZmlsZSBoZWFkZXIgd2FzIG5vdCByZWNvZ25pemVkLiBUaGUgbXVzbCBDCisrICAg ICAgICAvLyBsaWJyYXJ5IGRvZXMgbm90IGltcGxlbWVudCB0aGUgZmFsbGJhY2sgdG8gL2Jpbi9z aCBmb3IgdGhhdCBjYXNlLCBzbyBmYWxsCisrICAgICAgICAvLyB0aHJvdWdoIHRvIHRoZSBjb2Rl IGJlbG93IHdoaWNoIGltcGxlbWVudHMgdGhhdCBmYWxsYmFjayB1c2luZworKyAgICAgICAgLy8g ZXhlY3ZlX3dpdGhfc2hlbGxfZmFsbGJhY2suCisrICAgICAgICBpZiAoZXJybm8gIT0gRU5PRVhF QykgeworKyAgICAgICAgICAgIHJldHVybjsKKysgICAgICAgIH0KKyAgICAgfQorIAorICAgICBp ZiAoKmZpbGUgPT0gJ1wwJykgeworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJq bGkvamF2YV9tZC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZh X21kLmMKK0BAIC0yMzYsNiArMjM2LDM5IEBAIFJlcXVpcmVzU2V0ZW52KGNvbnN0IGNoYXIgKmp2 bXBhdGgpIHsKKyAgICAgY2hhciAqZG1sbHAgPSBOVUxMOworICAgICBjaGFyICpwOyAvKiBhIHV0 aWxpdHkgcG9pbnRlciAqLworIAorKyNpZmRlZiBfX2xpbnV4CisrI2lmbmRlZiBMSUJDCisrI2Vy cm9yICJMSUJDIG5vdCBzZXQiCisrI2VuZGlmCisrCisrICAgIGlmIChzdHJjbXAoTElCQywgIm11 c2wiKSA9PSAwKSB7CisrICAgICAgLyoKKysgICAgICAgKiBUaGUgbXVzbCBsaWJyYXJ5IGxvYWRl ciByZXF1aXJlcyBMRF9MSUJSQVJZX1BBVEggdG8gYmUgc2V0IGluCisrICAgICAgICogb3JkZXIg dG8gY29ycmVjdGx5IHJlc29sdmUgdGhlIGRlcGVuZGVuY3kgbGliamF2YS5zbyBoYXMgb24gbGli anZtLnNvLgorKyAgICAgICAqCisrICAgICAgICogU3BlY2lmaWNhbGx5LCBpdCBkaWZmZXJzIGZy b20gZ2xpYmMgaW4gdGhlIHNlbnNlIHRoYXQgZXZlbiBpZgorKyAgICAgICAqIGxpYmp2bS5zbyBo YXMgYWxyZWFkeSBiZWVuIGxvYWRlZCBpdCB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIGEKKysgICAg ICAgKiBjYW5kaWRhdGUgZm9yIHJlc29sdmluZyB0aGUgZGVwZW5kZW5jeSB1bmxlc3MgdGhlICpm dWxsKiBwYXRoCisrICAgICAgICogb2YgdGhlIGFscmVhZHkgbG9hZGVkIGxpYnJhcnkgbWF0Y2hl cyB0aGUgZGVwZW5kZW5jeSBiZWluZyBsb2FkZWQuCisrICAgICAgICoKKysgICAgICAgKiBsaWJq dm0uc28gaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBsYXVuY2hlciB1c2luZyBhIGxvbmcgcGF0aCB0 bworKyAgICAgICAqIGRsb3Blbiwgbm90IGp1c3QgdGhlIGJhc2VuYW1lIG9mIHRoZSBsaWJyYXJ5 LiBUeXBpY2FsbHkgdGhpcworKyAgICAgICAqIGlzIHNvbWV0aGluZyBsaWtlICIuLi9saWIvc2Vy dmVyL2xpYmp2bS5zbyIuIEhvd2V2ZXIsIGlmL3doZW4KKysgICAgICAgKiBsaWJqdm0uc28gbGF0 ZXIgdHJpZXMgdG8gZGxvcGVuIGxpYmphdmEuc28gKHdoaWNoIGl0IGRvZXMgaW4KKysgICAgICAg KiBvcmRlciB0byBnZXQgYWNjZXNzIHRvIGEgZmV3IGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCBpbgor KyAgICAgICAqIGxpYmphdmEuc28pIHRoZSBtdXNsIGxvYWRlciB3aWxsLCBhcyBwYXJ0IG9mIGxv YWRpbmcKKysgICAgICAgKiBkZXBlbmRlbnQgbGlicmFyaWVzLCB0cnkgdG8gbG9hZCBsaWJqdm0u c28gdXNpbmcgb25seSBpdHMKKysgICAgICAgKiBiYXNlbmFtZSAibGlianZtLnNvIi4gU2luY2Ug dGhpcyBkb2VzIG5vdCBtYXRjaCB0aGUgbG9uZ2VyCisrICAgICAgICogcGF0aCBwYXRoIGl0IHdh cyBmaXJzdCBsb2FkZWQgd2l0aCwgdGhlIGFscmVhZHkgbG9hZGVkCisrICAgICAgICogbGlicmFy eSBpcyBub3QgY29uc2lkZXJlZCBhIGNhbmRpZGF0ZSwgYW5kIHRoZSBsb2FkZXIgd2lsbAorKyAg ICAgICAqIGluc3RlYWQgbG9vayBmb3IgbGlianZtLnNvIGVsc2V3aGVyZS4gSWYgaXQncyBub3Qg aW4KKysgICAgICAgKiBMRF9MSUJSQVJZX1BBVEggdGhlIGRlcGVuZGVuY3kgbG9hZCB3aWxsIGZh aWwsIGFuZCBsaWJqYXZhLnNvCisrICAgICAgICogd2lsbCB0aGVyZWZvcmUgZmFpbCBhcyB3ZWxs LgorKyAgICAgICAqLworKyAgICAgIHJldHVybiBKTklfVFJVRTsKKysgICAgfQorKyNlbmRpZgor KworICNpZmRlZiBBSVgKKyAgICAgLyogV2UgYWx3YXlzIGhhdmUgdG8gc2V0IHRoZSBMSUJQQVRI IG9uIEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3VwcG9ydCAkT1JJR0lOLiAqLworICAgICByZXR1 cm4gSk5JX1RSVUU7CistLS0gYS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpk d3AvdXRpbC5oCisrKysgYi9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3Av dXRpbC5oCitAQCAtMzUsMTUgKzM1LDE1IEBACisgI2lmZGVmIERFQlVHCisgICAgIC8qIEp1c3Qg dG8gbWFrZSBzdXJlIHRoZXNlIGludGVyZmFjZXMgYXJlIG5vdCB1c2VkIGhlcmUuICovCisgICAg ICN1bmRlZiBmcmVlCistICAgICNkZWZpbmUgZnJlZShwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJm YWNlLgorKyAgICAjZGVmaW5lIGZyZWUgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9mcmVlCisg ICAgICN1bmRlZiBtYWxsb2MKKy0gICAgI2RlZmluZSBtYWxsb2MocCkgRG8gbm90IHVzZSB0aGlz IGludGVyZmFjZS4KKysgICAgI2RlZmluZSBtYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFj ZV9tYWxsb2MKKyAgICAgI3VuZGVmIGNhbGxvYworLSAgICAjZGVmaW5lIGNhbGxvYyhwKSBEbyBu b3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGNhbGxvYyBkb19ub3RfdXNlX3Ro aXNfaW50ZXJmYWNlX2NhbGxvYworICAgICAjdW5kZWYgcmVhbGxvYworLSAgICAjZGVmaW5lIHJl YWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSByZWFsbG9j IGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfcmVhbGxvYworICAgICAjdW5kZWYgc3RyZHVwCist ICAgICNkZWZpbmUgc3RyZHVwKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNk ZWZpbmUgc3RyZHVwIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2Vfc3RyZHVwCisgI2VuZGlmCisg CisgI2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK ZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNo ZXMvcHBjLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0 Y2hlcy9wcGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5k MzA2ZDUwMWU0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNi1ib290c3Ry YXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaApAQCAtMCwwICsxLDQ1IEBACitQYXRjaGVz IGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51 eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdl MjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1ibGVyX3BwYy5j cHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCitA QCAtNDcsNiArNDcsOCBAQAorICNpbmNsdWRlICJvcHRvL2ludHJpbnNpY25vZGUuaHBwIgorICNl bmRpZgorIAorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrCisgI2lmZGVmIFBST0RVQ1QKKyAj ZGVmaW5lIEJMT0NLX0NPTU1FTlQoc3RyKSAvLyBub3RoaW5nCisgI2Vsc2UKKy0tLSBvbGQvc3Jj L2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qv Y3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKK0BAIC04NDUsNyArODQ1LDcgQEAgdm9pZCBWTV9W ZXJzaW9uOjpkZXRlcm1pbmVfZmVhdHVyZXMoKSB7CisgICB1bnNpZ25lZCBsb25nIGF1eHYgPSBn ZXRhdXh2YWwoQVRfSFdDQVAyKTsKKyAKKyAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTV9O T1NDKSB7CistICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hBU19IVE0pIHsKKysgICAgaWYg KGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNKSB7CisgICAgICAgLy8gVE0gb24gUE9XRVI4IGFuZCBQ T1dFUjkgaW4gY29tcGF0IG1vZGUgKFZNKSBpcyBzdXBwb3J0ZWQgYnkgdGhlIEpWTS4KKyAgICAg ICAvLyBUTSBvbiBQT1dFUjkgREQyLjEgTlYgKGJhcmVtZXRhbCkgaXMgbm90IHN1cHBvcnRlZCBi eSB0aGUgSlZNIChUTSBvbgorICAgICAgIC8vIFBPV0VSOSBERDIuMSBOViBoYXMgYSBmZXcgaXNz dWVzIHRoYXQgbmVlZCBhIGNvdXBsZSBvZiBmaXJtd2FyZQorLS0tIG9sZC9zcmMvaG90c3BvdC9v c19jcHUvbGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3Nf Y3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCitAQCAtNzUsNyArNzUsNyBAQAorICMgaW5j bHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4dC5o PgorLQorKyMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorIGFkZHJlc3Mgb3M6OmN1cnJlbnRf c3RhY2tfcG9pbnRlcigpIHsKKyAgIGludHB0cl90KiBjc3A7CistLS0gb2xkL3NyYy9ob3RzcG90 L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNw b3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAorQEAgLTIzLDYgKzIzLDgg QEAKKyAgKgorICAqLworIAorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrCisgI2luY2x1ZGUg InByZWNvbXBpbGVkLmhwcCIKKyAjaW5jbHVkZSAicnVudGltZS9mcmFtZS5pbmxpbmUuaHBwIgor ICNpbmNsdWRlICJydW50aW1lL3RocmVhZC5ocHAiCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5q ZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCBiL3NyY3BrZ3Mvb3Bl bmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCm5ldyBmaWxlIG1v ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOWM2NGMxODkwMzZhCi0tLSAvZGV2L251bGwK KysrIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYu cGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4gZnJvbSBBbHBp bmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29tbWl0Lz9pZD04 YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xkL3NyYy9ob3Rz cG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorKysrIG5ldy9zcmMvaG90c3Bv dC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC05MCw2ICs5MCwxMjYgQEAK KyAjZGVmaW5lIFNQRUxMX1JFR19GUCAiZWJwIgorICNlbmRpZiAvLyBBTUQ2NAorCisrLy8gPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09CisrLy8gVGFrZW4gZnJvbSBnbGliYyAyLjI4CisrLy8gc291cmNl OiBodHRwczovL3NvdXJjZXdhcmUub3JnL2dpdC8/cD1nbGliYy5naXQ7YT1ibG9iO2Y9c3lzZGVw cy94ODYvZnB1X2NvbnRyb2wuaDtoPTRjYjk4YzU2NzliMjg5N2ZmNGU1ODI2ZDIyOGNiYTZiZTU4 OWUyNGQ7aGI9M2MwM2JhY2EzN2ZkY2I1MmMzODgxZTY1M2NhMzkyYmJhN2E5OWMyYgorKy8vID09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQorKyNpZm5kZWYgQU1ENjQKKysvKiBGUFUgY29udHJvbCB3b3Jk IGJpdHMuICB4ODYgdmVyc2lvbi4KKysgICBDb3B5cmlnaHQgKEMpIDE5OTMtMjAxOCBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05V IEMgTGlicmFyeS4KKysgICBDb250cmlidXRlZCBieSBPbGFmIEZsZWJiZS4KKysKKysgICBUaGUg R05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh bmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdl bmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExpY2Vuc2UsIG9y IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhlIEdOVSBDIExp YnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwK KysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3 YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM QVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vu c2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBj b3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhbG9uZyB3 aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwOi8vd3d3LmdudS5v cmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBfRlBVX0NPTlRST0xfSAorKyNkZWZpbmUg X0ZQVV9DT05UUk9MX0gJMQorKworKy8qIE5vdGUgdGhhdCB0aGlzIGZpbGUgc2V0cyBvbiB4ODYt NjQgb25seSB0aGUgeDg3IEZQVSwgaXQgZG9lcyBub3QKKysgICB0b3VjaCB0aGUgU1NFIHVuaXQu ICAqLworKworKy8qIEhlcmUgaXMgdGhlIGRpcnR5IHBhcnQuIFNldCB1cCB5b3VyIDM4NyB0aHJv dWdoIHRoZSBjb250cm9sIHdvcmQKKysgKiAoY3cpIHJlZ2lzdGVyLgorKyAqCisrICogICAgIDE1 LTEzICAgIDEyICAxMS0xMCAgOS04ICAgICA3LTYgICAgIDUgICAgNCAgICAzICAgIDIgICAgMSAg ICAwCisrICogfCByZXNlcnZlZCB8IElDIHwgUkMgIHwgUEMgfCByZXNlcnZlZCB8IFBNIHwgVU0g fCBPTSB8IFpNIHwgRE0gfCBJTQorKyAqCisrICogSU06IEludmFsaWQgb3BlcmF0aW9uIG1hc2sK KysgKiBETTogRGVub3JtYWxpemVkIG9wZXJhbmQgbWFzaworKyAqIFpNOiBaZXJvLWRpdmlkZSBt YXNrCisrICogT006IE92ZXJmbG93IG1hc2sKKysgKiBVTTogVW5kZXJmbG93IG1hc2sKKysgKiBQ TTogUHJlY2lzaW9uIChpbmV4YWN0IHJlc3VsdCkgbWFzaworKyAqCisrICogTWFzayBiaXQgaXMg MSBtZWFucyBubyBpbnRlcnJ1cHQuCisrICoKKysgKiBQQzogUHJlY2lzaW9uIGNvbnRyb2wKKysg KiAxMSAtIHJvdW5kIHRvIGV4dGVuZGVkIHByZWNpc2lvbgorKyAqIDEwIC0gcm91bmQgdG8gZG91 YmxlIHByZWNpc2lvbgorKyAqIDAwIC0gcm91bmQgdG8gc2luZ2xlIHByZWNpc2lvbgorKyAqCisr ICogUkM6IFJvdW5kaW5nIGNvbnRyb2wKKysgKiAwMCAtIHJvdW5kaW5nIHRvIG5lYXJlc3QKKysg KiAwMSAtIHJvdW5kaW5nIGRvd24gKHRvd2FyZCAtIGluZmluaXR5KQorKyAqIDEwIC0gcm91bmRp bmcgdXAgKHRvd2FyZCArIGluZmluaXR5KQorKyAqIDExIC0gcm91bmRpbmcgdG93YXJkIHplcm8K KysgKgorKyAqIElDOiBJbmZpbml0eSBjb250cm9sCisrICogVGhhdCBpcyBmb3IgODA4NyBhbmQg ODAyODcgb25seS4KKysgKgorKyAqIFRoZSBoYXJkd2FyZSBkZWZhdWx0IGlzIDB4MDM3ZiB3aGlj aCB3ZSB1c2UuCisrICovCisrCisrI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisrCisrLyogbWFza2lu ZyBvZiBpbnRlcnJ1cHRzICovCisrI2RlZmluZSBfRlBVX01BU0tfSU0gIDB4MDEKKysjZGVmaW5l IF9GUFVfTUFTS19ETSAgMHgwMgorKyNkZWZpbmUgX0ZQVV9NQVNLX1pNICAweDA0CisrI2RlZmlu ZSBfRlBVX01BU0tfT00gIDB4MDgKKysjZGVmaW5lIF9GUFVfTUFTS19VTSAgMHgxMAorKyNkZWZp bmUgX0ZQVV9NQVNLX1BNICAweDIwCisrCisrLyogcHJlY2lzaW9uIGNvbnRyb2wgKi8KKysjZGVm aW5lIF9GUFVfRVhURU5ERUQgMHgzMDAJLyogbGlibSByZXF1aXJlcyBkb3VibGUgZXh0ZW5kZWQg cHJlY2lzaW9uLiAgKi8KKysjZGVmaW5lIF9GUFVfRE9VQkxFICAgMHgyMDAKKysjZGVmaW5lIF9G UFVfU0lOR0xFICAgMHgwCisrCisrLyogcm91bmRpbmcgY29udHJvbCAqLworKyNkZWZpbmUgX0ZQ VV9SQ19ORUFSRVNUIDB4MCAgICAvKiBSRUNPTU1FTkRFRCAqLworKyNkZWZpbmUgX0ZQVV9SQ19E T1dOICAgIDB4NDAwCisrI2RlZmluZSBfRlBVX1JDX1VQICAgICAgMHg4MDAKKysjZGVmaW5lIF9G UFVfUkNfWkVSTyAgICAweEMwMAorKworKyNkZWZpbmUgX0ZQVV9SRVNFUlZFRCAweEYwQzAgIC8q IFJlc2VydmVkIGJpdHMgaW4gY3cgKi8KKysKKysKKysvKiBUaGUgZmRsaWJtIGNvZGUgcmVxdWly ZXMgc3RyaWN0IElFRUUgZG91YmxlIHByZWNpc2lvbiBhcml0aG1ldGljLAorKyAgIGFuZCBubyBp bnRlcnJ1cHRzIGZvciBleGNlcHRpb25zLCByb3VuZGluZyB0byBuZWFyZXN0LiAgKi8KKysKKysj ZGVmaW5lIF9GUFVfREVGQVVMVCAgMHgwMzdmCisrCisrLyogSUVFRTogIHNhbWUgYXMgYWJvdmUu ICAqLworKyNkZWZpbmUgX0ZQVV9JRUVFICAgICAweDAzN2YKKysKKysvKiBUeXBlIG9mIHRoZSBj b250cm9sIHdvcmQuICAqLworK3R5cGVkZWYgdW5zaWduZWQgaW50IGZwdV9jb250cm9sX3QgX19h dHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CisrCisrLyogTWFjcm9zIGZvciBhY2Nl c3NpbmcgdGhlIGhhcmR3YXJlIGNvbnRyb2wgd29yZC4gICIqJiIgaXMgdXNlZCB0bworKyAgIHdv cmsgYXJvdW5kIGEgYnVnIGluIG9sZGVyIHZlcnNpb25zIG9mIEdDQy4gIF9fdm9sYXRpbGVfXyBp cyB1c2VkCisrICAgdG8gc3VwcG9ydCBjb21iaW5hdGlvbiBvZiB3cml0aW5nIHRoZSBjb250cm9s IHJlZ2lzdGVyIGFuZCByZWFkaW5nCisrICAgaXQgYmFjay4gIFdpdGhvdXQgX192b2xhdGlsZV9f LCB0aGUgb2xkIHZhbHVlIG1heSBiZSB1c2VkIGZvciByZWFkaW5nCisrICAgYmFjayB1bmRlciBj b21waWxlciBvcHRpbWl6YXRpb24uCisrCisrICAgTm90ZSB0aGF0IHRoZSB1c2Ugb2YgdGhlc2Ug bWFjcm9zIGlzIG5vdCBzdWZmaWNpZW50IGFueW1vcmUgd2l0aAorKyAgIHJlY2VudCBoYXJkd2Fy ZSBub3Igb24geDg2LTY0LiAgU29tZSBmbG9hdGluZyBwb2ludCBvcGVyYXRpb25zIGFyZQorKyAg IGV4ZWN1dGVkIGluIHRoZSBTU0UvU1NFMiBlbmdpbmVzIHdoaWNoIGhhdmUgdGhlaXIgb3duIGNv bnRyb2wgYW5kCisrICAgc3RhdHVzIHJlZ2lzdGVyLiAgKi8KKysjZGVmaW5lIF9GUFVfR0VUQ1co Y3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3ICUwIiA6ICI9bSIgKComY3cpKQorKyNk ZWZpbmUgX0ZQVV9TRVRDVyhjdykgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbGRjdyAlMCIgOiA6 ICJtIiAoKiZjdykpCisrCisrLyogRGVmYXVsdCBjb250cm9sIHdvcmQgc2V0IGF0IHN0YXJ0dXAu ICAqLworK2V4dGVybiBmcHVfY29udHJvbF90IF9fZnB1X2NvbnRyb2w7CisrCisrI2VuZGlmCS8q IGZwdV9jb250cm9sLmggKi8KKysKKysjZW5kaWYgLy8gQU1ENjQKKysvLyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT0KKysKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgI2lmZGVm IFNQQVJDX1dPUktTCisgICByZWdpc3RlciB2b2lkICplc3A7CmRpZmYgLS1naXQgYS9zcmNwa2dz L29wZW5qZGsxNi1ib290c3RyYXAvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxNi1ib290c3Ry YXAvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4wODVl OTI5MGNmZWIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAv dGVtcGxhdGUKQEAgLTAsMCArMSwxMjYgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGsx Ni1ib290c3RyYXAnCitfamF2YV92ZXI9MTYKK19qYXZhX21pbl92ZXI9MAorX2phdmFfc2VjX3Zl cj0yCitfamRrX3VwZGF0ZT03CitfamRrX2hvbWU9InVzci9saWIvanZtL29wZW5qZGske19qYXZh X3Zlcn0iCitfYmFzZV92ZXJzaW9uPSIke19qYXZhX3Zlcn0uJHtfamF2YV9taW5fdmVyfS4ke19q YXZhX3NlY192ZXJ9IgorCitwa2duYW1lPW9wZW5qZGsxNi1ib290c3RyYXAKK3ZlcnNpb249IiR7 X2Jhc2VfdmVyc2lvbn0rJHtfamRrX3VwZGF0ZX0iCityZXZpc2lvbj0xCit3cmtzcmM9ImpkayR7 X2phdmFfdmVyfXUtamRrLSR7X2Jhc2VfdmVyc2lvbn0tJHtfamRrX3VwZGF0ZX0iCitidWlsZF9z dHlsZT1nbnUtY29uZmlndXJlCitjb25maWd1cmVfYXJncz0iLS1kaXNhYmxlLXdhcm5pbmdzLWFz LWVycm9ycworIC0tZW5hYmxlLXVubGltaXRlZC1jcnlwdG8KKyAtLXdpdGgtemxpYj1zeXN0ZW0K KyAtLXdpdGgtbGlianBlZz1zeXN0ZW0KKyAtLXdpdGgtZ2lmbGliPXN5c3RlbQorIC0td2l0aC1s aWJwbmc9c3lzdGVtCisgLS13aXRoLWxjbXM9c3lzdGVtCisgLS13aXRoLWp0cmVnPW5vCisgLS13 aXRoLWd0ZXN0PSR7WEJQU19CVUlMRERJUn0vZ29vZ2xldGVzdC1yZWxlYXNlLTEuOC4xCisgLS13 aXRoLWRlYnVnLWxldmVsPXJlbGVhc2UKKyAtLXdpdGgtam9icz0ke1hCUFNfT1JJR19NQUtFSk9C U30KKyAtLXdpdGgtdmVyc2lvbi1wcmU9CisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JHtfamRrX3Vw ZGF0ZX0KKyAtLXdpdGgtdmVyc2lvbi1vcHQ9dm9pZC1yJHtyZXZpc2lvbn0KKyAtLXdpdGgtdmVu ZG9yLW5hbWU9Vm9pZAorIC0td2l0aC12ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8K KyAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9p ZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRo dWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgtYm9vdC1qZGs9 L3Vzci9saWIvanZtL29wZW5qZGsxNSIKK21ha2VfYnVpbGRfYXJncz0iaW1hZ2VzIgorbWFrZV9p bnN0YWxsX2FyZ3M9IklOU1RBTExfUFJFRklYPVwiJHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0t JHt2ZXJzaW9ufS91c3IvbGliXCIiCittYWtlX2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0 ZXN0IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8g dGFyIHVuemlwIHppcCBjYS1jZXJ0aWZpY2F0ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNo IG1ha2UtY2Egb3BlbmpkazE1LWJvb3RzdHJhcCIKK21ha2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRl dmVsIGxpYlh0c3QtZGV2ZWwgbGliWHQtZGV2ZWwgbGliWHJhbmRyLWRldmVsCisgZ2lmbGliLWRl dmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwgY3Vwcy1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxp Yi1kZXZlbAorIGZvbnRjb25maWctZGV2ZWwgemxpYi1kZXZlbCBsY21zMi1kZXZlbCBoYXJmYnV6 ei1kZXZlbCBvcGVuamRrMTUtYm9vdHN0cmFwIgorcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQt JHt2ZXJzaW9ufV8xIGphdmEtcnVudGltZS0ke3ZlcnNpb259XzEiCitzaG9ydF9kZXNjPSJPcGVu SkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0IChib290c3RyYXAgdmVyc2lvbiAxNikiCittYWludGFp bmVyPSJjbGFzc2FiYnlhbXAgPGRldkBrYjYuZWU+IgorbGljZW5zZT0iR1BMLTIuMC1vbmx5IFdJ VEggQ2xhc3NwYXRoLWV4Y2VwdGlvbi0yLjAiCitob21lcGFnZT0iaHR0cDovL29wZW5qZGsuamF2 YS5uZXQvIgorZGlzdGZpbGVzPSJodHRwczovL2dpdGh1Yi5jb20vb3Blbmpkay9qZGske19qYXZh X3Zlcn11L2FyY2hpdmUvamRrLSR7dmVyc2lvbn0udGFyLmd6CisgaHR0cHM6Ly9naXRodWIuY29t L2dvb2dsZS9nb29nbGV0ZXN0L2FyY2hpdmUvcmVmcy90YWdzL3JlbGVhc2UtMS44LjEudGFyLmd6 IgorY2hlY2tzdW09ImI0YTBlNzFlNDFhMTExNzVlOGE3YzFkYmE4NmVkNWIwYWE4Nzg0MTMxNThj OGQ0ODgxM2RiMWI2NGFjOTUzNmMKKyA5YmYxZmU1MTgyYTYwNGI0MTM1ZWRjMWE0MjVhZTM1NmM5 YWQxNWU5YjIzZjlmMTJhMDJlODAxODRjM2EyNDljIgorbm9jcm9zcz15ZXMKKworIyBCdWlsZCBp cyBzdGlsbCBwYXJhbGxlbCwgYnV0IGRvbid0IHVzZSAtak4uCitkaXNhYmxlX3BhcmFsbGVsX2J1 aWxkPXllcworCisjIG5vIGhvdHNwb3QgSklUIGZvciBwcGMzMgorY2FzZSAiJFhCUFNfVEFSR0VU X01BQ0hJTkUiIGluCisJcHBjNjQqKSA7OworCXBwYyopIF91c2VfemVybz15ZXMgOzsKK2VzYWMK KworaWYgWyAtbiAiJF91c2VfemVybyIgXTsgdGhlbgorCW1ha2VkZXBlbmRzKz0iIGxpYmZmaS1k ZXZlbCIKKwljb25maWd1cmVfYXJncys9IiAtLXdpdGgtanZtLXZhcmlhbnRzPXplcm8iCisJY2Fz ZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYyopIGNvbmZpZ3VyZV9hcmdzKz0iIC0t d2l0aC1ib290LWpkay1qdm1hcmdzPS1YWDpUaHJlYWRTdGFja1NpemU9MjU2MCI7OworCWVzYWMK K2ZpCisKK2lmIFsgLW4gIiRYQlBTX0RFQlVHX1BLR1MiIF07IHRoZW4KKwljb25maWd1cmVfYXJn cys9IiAtLXdpdGgtbmF0aXZlLWRlYnVnLXN5bWJvbHM9aW50ZXJuYWwiCitmaQorCitwb3N0X2V4 dHJhY3QoKSB7CisJY2htb2QgK3ggY29uZmlndXJlCisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMi ID0gIm11c2wiIF07IHRoZW4KKwkJcm0gLXIgc3JjL2pkay5ob3RzcG90LmFnZW50CisJZmkKK30K KworcG9zdF9wYXRjaCgpIHsKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsg dGhlbgorCQlmb3IgZiBpbiAiJHtGSUxFU0RJUn0iL211c2xfcGF0Y2hlcy8qLnBhdGNoOyBkbwor CQkJbXNnX25vcm1hbCAiQXBwbHlpbmcgJHtmIyRGSUxFU0RJUi99XG4iCisJCQlwYXRjaCAtbE5w MSAtaSAiJGYiCisJCWRvbmUKKwlmaQorfQorCitkb19jb25maWd1cmUoKSB7CisJQ0ZMQUdTPSR7 Q0ZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCUNYWEZMQUdTPSR7Q1hYRkxBR1MvLURfRk9S VElGWV9TT1VSQ0U9Mi99CisKKwkjIGZvcmNlIEVMRnYyIGZvciBwcGM2NCBqdXN0IGluIGNhc2UK KwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjNjQqKQorCQkJQ0ZMQUdTKz0i IC1EQUJJX0VMRnYyIgorCQkJQ1hYRkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQk7OworCWVzYWMK KworCWNvbmZpZ3VyZV9hcmdzPSR7Y29uZmlndXJlX2FyZ3MvLS13aXRoLWxpYnRvb2wtc3lzcm9v dD1cL3VzclwvW2EtejAtOV0qLWxpbnV4LVthLXpdKi99CisJaWYgWyAiJFhCUFNfQ0NBQ0hFIiBd OyB0aGVuCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNjYWNoZSIKKwlmaQorCUNDPSIv dXNyL2Jpbi9jYyIKKwlDWFg9Ii91c3IvYmluL2MrKyIKKwkuL2NvbmZpZ3VyZSAke2NvbmZpZ3Vy ZV9hcmdzfSBcCisJCS0td2l0aC1leHRyYS1jZmxhZ3M9IiRDRkxBR1MiIFwKKwkJLS13aXRoLWV4 dHJhLWN4eGZsYWdzPSIkQ1hYRkxBR1MiIFwKKwkJLS13aXRoLWV4dHJhLWxkZmxhZ3M9IiRMREZM QUdTIiBcCisJCVJFQURFTEY9JFJFQURFTEYgQVI9JEFSIFNUUklQPSRTVFJJUCBOTT0kTk0gXAor CQlPQkpEVU1QPSRPQkpEVU1QIE9CSkNPUFk9JE9CSkNPUFkKK30KKworcG9zdF9pbnN0YWxsKCkg eworCW12ICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19iYXNlX3ZlcnNpb259ICR7 REVTVERJUn0vJF9qZGtfaG9tZQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9saWIvYmluCisJcm0g LWYgJERFU1RESVIvJF9qZGtfaG9tZS9saWIvc3JjLnppcAorCXZsaWNlbnNlIEFTU0VNQkxZX0VY Q0VQVElPTgorCXZsaWNlbnNlIExJQ0VOU0UKK30KKworZG9fY2xlYW4oKSB7CisJIyBjbGVhbiB1 cCBndGVzdAorCXJtIC1yZiAke1hCUFNfQlVJTERESVJ9L2dvb2dsZXRlc3QtcmVsZWFzZS0qCit9 CgpGcm9tIDc2OTc5ZjllZmY0N2VjM2FjYjU0NzgyYzJiMWYxYWE4MDEyNTQzZDggTW9uIFNlcCAx NyAwMDowMDowMCAyMDAxCkZyb206IGNsYXNzYWJieWFtcCA8ZGV2QGtiNi5lZT4KRGF0ZTogVGh1 LCAzIEZlYiAyMDIyIDE1OjAzOjI0IC0wNTAwClN1YmplY3Q6IFtQQVRDSCA3LzddIE5ldyBwYWNr YWdlOiBvcGVuamRrMTctMTcuMC4xKzEyCgotLS0KIHNyY3BrZ3Mvb3BlbmpkazE3LWRvYyAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL29wZW5qZGsxNy1qcmUgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjcGtncy9vcGVuamRrMTctc3JjICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAxICsKIC4uLi9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVz L2FybS5wYXRjaCAgICB8ICAyMiArKwogLi4uL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMv YnVpbGQucGF0Y2ggIHwgMTcwICsrKysrKysrKysrKysKIC4uLi9vcGVuamRrMTcvZmlsZXMvbXVz bF9wYXRjaGVzL3BwYy5wYXRjaCAgICB8ICA0NSArKysrCiAuLi4vb3BlbmpkazE3L2ZpbGVzL211 c2xfcGF0Y2hlcy94ODYucGF0Y2ggICAgfCAxMzAgKysrKysrKysrKwogc3JjcGtncy9vcGVuamRr MTcvdGVtcGxhdGUgICAgICAgICAgICAgICAgICAgIHwgMjM0ICsrKysrKysrKysrKysrKysrKwog c3JjcGtncy9vcGVuamRrMTcvdXBkYXRlICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIDkg ZmlsZXMgY2hhbmdlZCwgNjA1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNw a2dzL29wZW5qZGsxNy1kb2MKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL29wZW5qZGsxNy1q cmUKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL29wZW5qZGsxNy1zcmMKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2J1 aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVz bF9wYXRjaGVzL3BwYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE3 L2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L29wZW5qZGsxNy90ZW1wbGF0ZQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE3 L3VwZGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE3LWRvYyBiL3NyY3BrZ3Mvb3Bl bmpkazE3LWRvYwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjk5YWIx Y2IxYjBkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE3LWRvYwpAQCAtMCww ICsxIEBACitvcGVuamRrMTcKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg YS9zcmNwa2dzL29wZW5qZGsxNy1qcmUgYi9zcmNwa2dzL29wZW5qZGsxNy1qcmUKbmV3IGZpbGUg bW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi45OWFiMWNiMWIwZDIKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL29wZW5qZGsxNy1qcmUKQEAgLTAsMCArMSBAQAorb3BlbmpkazE3Clwg Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTct c3JjIGIvc3JjcGtncy9vcGVuamRrMTctc3JjCm5ldyBmaWxlIG1vZGUgMTIwMDAwCmluZGV4IDAw MDAwMDAwMDAwMC4uOTlhYjFjYjFiMGQyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVu amRrMTctc3JjCkBAIC0wLDAgKzEgQEAKK29wZW5qZGsxNwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m IGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9h cm0ucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNo Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMzJiNGIwMTAyYThlCi0t LSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2Fy bS5wYXRjaApAQCAtMCwwICsxLDIyIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhf YXJtL29zX2xpbnV4X2FybS5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0v b3NfbGludXhfYXJtLmNwcAorQEAgLTczLDcgKzczLDE4IEBACisgIyBpbmNsdWRlIDx1Y29udGV4 dC5oPgorLSMgaW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KKyAjIGluY2x1ZGUgPGFzbS9wdHJhY2Uu aD4KKyAKKysvLyBTdHVwaWQgaGFjayBhcyB0aGUgb3JpZ2luIGlmIGJlbG93IGRvZXNudCBjb21w aWxlIHdpdGggZ2NjIDguMi4wOgorKy8vCisrLy8gb3NfbGludXhfYXJtLmNwcDoxMTQ6NTogZXJy b3I6IG1pc3NpbmcgYmluYXJ5IG9wZXJhdG9yIGJlZm9yZSB0b2tlbiAiKCIKKysvLyAgI2lmIE5H UkVHID09IDE2CisrLy8gICAgICAgXn5+fn4KKysvLworKy8vIFRoZSBOR1JFRyBpcyAxOCAoYml0 cy9zaWduYWwuaDoxMCksIHNvIGZvcmNlIGl0IHRvIHRoYXQgdmFsdWUuCisrI2lmZGVmIE5HUkVH CisrIyAgdW5kZWYgTkdSRUcKKysjZW5kaWYKKysjZGVmaW5lIE5HUkVHIDE4CisrCisgI2RlZmlu ZSBTUEVMTF9SRUdfU1AgICJzcCIKKyAKKyAvLyBEb24ndCAjZGVmaW5lIFNQRUxMX1JFR19GUCBm b3IgdGh1bWIgYmVjYXVzZSBpdCBpcyBub3Qgc2FmZSB0byB1c2UsIHNvIHRoaXMgbWFrZXMgc3Vy ZSB3ZSBuZXZlciBmZXRjaCBpdC4KZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVz L211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xf cGF0Y2hlcy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLjExNThiYWJjZDk2ZAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE3L2Zp bGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaApAQCAtMCwwICsxLDE3MCBAQAorLS0tIGEvbWFr ZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworKysrIGIvbWFrZS9ob3RzcG90L2xpYi9Db21w aWxlSnZtLmdtaworQEAgLTczLDYgKzczLDcgQEAgQ0ZMQUdTX1ZNX1ZFUlNJT04gOj0gXAorICAg ICAtREhPVFNQT1RfQlVJTERfVVNFUj0nIiQoVVNFUk5BTUUpIicgXAorICAgICAtREhPVFNQT1Rf Vk1fRElTVFJPPSciJChIT1RTUE9UX1ZNX0RJU1RSTykiJyBcCisgICAgIC1EQ1BVPSciJChPUEVO SkRLX1RBUkdFVF9DUFVfVk1fVkVSU0lPTikiJyBcCisrICAgIC1ETElCQz0nIm11c2wiJyBcCisg ICAgICMKKyAKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLS0tIGEvbWFrZS9tb2R1bGVzL2ph dmEuYmFzZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKysrKyBiL21ha2UvbW9kdWxlcy9qYXZhLmJh c2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCitAQCAtMTkwLDYgKzE5MCw3IEBAIGlmZXEgKCQoY2Fs bCBpc1RhcmdldE9zLCB3aW5kb3dzKSwgdHJ1ZSkKKyBlbmRpZgorIAorIExJQkpMSV9DRkxBR1Mg Kz0gJChMSUJaX0NGTEFHUykKKytMSUJKTElfQ0ZMQUdTICs9IC1ETElCQz1cIm11c2xcIgorIAor IGlmbmVxICgkKFVTRV9FWFRFUk5BTF9MSUJaKSwgdHJ1ZSkKKyAgIExJQkpMSV9FWFRSQV9GSUxF UyArPSBcCistLS0gYS9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKKysrKyBiL3Ny Yy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorQEAgLTMxMTcsMjAgKzMxMjMsMzYgQEAg dm9pZCBvczo6TGludXg6OnNjaGVkX2dldGNwdV9pbml0KCkgeworIGV4dGVybiAiQyIgSk5JRVhQ T1JUIHZvaWQgbnVtYV93YXJuKGludCBudW1iZXIsIGNoYXIgKndoZXJlLCAuLi4pIHsgfQorIGV4 dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV9lcnJvcihjaGFyICp3aGVyZSkgeyB9CisgCisr c3RhdGljIHZvaWQqIGRsdnN5bV9pZl9hdmFpbGFibGUodm9pZCogaGFuZGxlLCBjb25zdCBjaGFy KiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKSB7CisrICB0eXBlZGVmIHZvaWQqICgqZGx2c3lt X2Z1bmNfdHlwZSkodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2 ZXJzaW9uKTsKKysgIHN0YXRpYyBkbHZzeW1fZnVuY190eXBlIGRsdnN5bV9mdW5jOworKyAgc3Rh dGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKysKKysgIGlmICghaW5pdGlhbGl6ZWQpIHsK KysgICAgZGx2c3ltX2Z1bmMgPSAoZGx2c3ltX2Z1bmNfdHlwZSlkbHN5bShSVExEX05FWFQsICJk bHZzeW0iKTsKKysgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworKyAgfQorKworKyAgaWYgKGRsdnN5 bV9mdW5jICE9IE5VTEwpIHsKKysgICAgdm9pZCAqZiA9IGRsdnN5bV9mdW5jKGhhbmRsZSwgbmFt ZSwgdmVyc2lvbik7CisrICAgIGlmIChmICE9IE5VTEwpIHsKKysgICAgICByZXR1cm4gZjsKKysg ICAgfQorKyAgfQorKworKyAgcmV0dXJuIGRsc3ltKGhhbmRsZSwgbmFtZSk7CisrfQorKworIC8v IEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjEgKEFQSSB2 MSkuIElmIGl0IGZhaWxzCisgLy8gbG9hZCBzeW1ib2wgZnJvbSBiYXNlIHZlcnNpb24gaW5zdGVh ZC4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfZGxzeW0odm9pZCogaGFuZGxlLCBjb25zdCBj aGFyICpuYW1lKSB7CistICB2b2lkICpmID0gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51bWFf MS4xIik7CistICBpZiAoZiA9PSBOVUxMKSB7CistICAgIGYgPSBkbHN5bShoYW5kbGUsIG5hbWUp OworLSAgfQorLSAgcmV0dXJuIGY7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5k bGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworIH0KKyAKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBs b2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4yIChBUEkgdjIpIG9ubHkuCisgLy8gUmV0dXJu IE5VTEwgaWYgdGhlIHN5bWJvbCBpcyBub3QgZGVmaW5lZCBpbiB0aGlzIHBhcnRpY3VsYXIgdmVy c2lvbi4KKyB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfdjJfZGxzeW0odm9pZCogaGFuZGxlLCBj b25zdCBjaGFyKiBuYW1lKSB7CistICByZXR1cm4gZGx2c3ltKGhhbmRsZSwgbmFtZSwgImxpYm51 bWFfMS4yIik7CisrICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJs aWJudW1hXzEuMiIpOworIH0KKyAKKyBib29sIG9zOjpMaW51eDo6bGlibnVtYV9pbml0KCkgewor LS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCisrKysg Yi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC03NSw5 ICs3NSw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGlu Y2x1ZGUgPHVjb250ZXh0Lmg+CistI2lmbmRlZiBBTUQ2NAorLSMgaW5jbHVkZSA8ZnB1X2NvbnRy b2wuaD4KKy0jZW5kaWYKKyAKKyAjaWZkZWYgQU1ENjQKKyAjZGVmaW5lIFJFR19TUCBSRUdfUlNQ CistLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAK KysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAor QEAgLTExMTYsNyArMTExNiw3IEBAIEhlYXBXb3JkKiBHZW5Db2xsZWN0ZWRIZWFwOjphbGxvY2F0 ZV9uZXdfdGxhYihzaXplX3QgbWluX3NpemUsCisgc3RhdGljIFNjcmF0Y2hCbG9jayAqcmVtb3Zl U21hbGxlc3RTY3JhdGNoKFNjcmF0Y2hCbG9jayAqKnByZXZfcHRyKSB7CisgICBib29sIGZpcnN0 ID0gdHJ1ZTsKKyAgIHNpemVfdCBtaW5fc2l6ZSA9IDA7ICAgLy8gImZpcnN0IiBtYWtlcyB0aGlz IGNvbmNlcHR1YWxseSBpbmZpbml0ZS4KKy0gIFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0ciwg KnNtYWxsZXN0OworKyAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyID0gTlVMTCwgKnNtYWxs ZXN0OworICAgU2NyYXRjaEJsb2NrICAqY3VyID0gKnByZXZfcHRyOworICAgd2hpbGUgKGN1cikg eworICAgICBhc3NlcnQoKnByZXZfcHRyID09IGN1ciwgImp1c3QgY2hlY2tpbmciKTsKKy0tLSBh L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYworKysrIGIvc3Jj L2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCitAQCAtMjM1LDcgKzIz NSwxMyBAQCBKREtfZXhlY3ZwZShpbnQgbW9kZSwgY29uc3QgY2hhciAqZmlsZSwKKyB7CisgICAg IGlmIChlbnZwID09IE5VTEwgfHwgKGNoYXIgKiopIGVudnAgPT0gZW52aXJvbikgeworICAgICAg ICAgZXhlY3ZwKGZpbGUsIChjaGFyICoqKSBhcmd2KTsKKy0gICAgICAgIHJldHVybjsKKysgICAg ICAgIC8vIEVOT0VYRUMgaW5kaWNhdGVzIHRoYXQgdGhlIGZpbGUgaGVhZGVyIHdhcyBub3QgcmVj b2duaXplZC4gVGhlIG11c2wgQworKyAgICAgICAgLy8gbGlicmFyeSBkb2VzIG5vdCBpbXBsZW1l bnQgdGhlIGZhbGxiYWNrIHRvIC9iaW4vc2ggZm9yIHRoYXQgY2FzZSwgc28gZmFsbAorKyAgICAg ICAgLy8gdGhyb3VnaCB0byB0aGUgY29kZSBiZWxvdyB3aGljaCBpbXBsZW1lbnRzIHRoYXQgZmFs bGJhY2sgdXNpbmcKKysgICAgICAgIC8vIGV4ZWN2ZV93aXRoX3NoZWxsX2ZhbGxiYWNrLgorKyAg ICAgICAgaWYgKGVycm5vICE9IEVOT0VYRUMpIHsKKysgICAgICAgICAgICByZXR1cm47CisrICAg ICAgICB9CisgICAgIH0KKyAKKyAgICAgaWYgKCpmaWxlID09ICdcMCcpIHsKKy0tLSBhL3NyYy9q YXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFfbWQuYworKysrIGIvc3JjL2phdmEuYmFz ZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZC5jCitAQCAtMjM2LDYgKzIzNiwzOSBAQCBSZXF1 aXJlc1NldGVudihjb25zdCBjaGFyICpqdm1wYXRoKSB7CisgICAgIGNoYXIgKmRtbGxwID0gTlVM TDsKKyAgICAgY2hhciAqcDsgLyogYSB1dGlsaXR5IHBvaW50ZXIgKi8KKyAKKysjaWZkZWYgX19s aW51eAorKyNpZm5kZWYgTElCQworKyNlcnJvciAiTElCQyBub3Qgc2V0IgorKyNlbmRpZgorKwor KyAgICBpZiAoc3RyY21wKExJQkMsICJtdXNsIikgPT0gMCkgeworKyAgICAgIC8qCisrICAgICAg ICogVGhlIG11c2wgbGlicmFyeSBsb2FkZXIgcmVxdWlyZXMgTERfTElCUkFSWV9QQVRIIHRvIGJl IHNldCBpbgorKyAgICAgICAqIG9yZGVyIHRvIGNvcnJlY3RseSByZXNvbHZlIHRoZSBkZXBlbmRl bmN5IGxpYmphdmEuc28gaGFzIG9uIGxpYmp2bS5zby4KKysgICAgICAgKgorKyAgICAgICAqIFNw ZWNpZmljYWxseSwgaXQgZGlmZmVycyBmcm9tIGdsaWJjIGluIHRoZSBzZW5zZSB0aGF0IGV2ZW4g aWYKKysgICAgICAgKiBsaWJqdm0uc28gaGFzIGFscmVhZHkgYmVlbiBsb2FkZWQgaXQgd2lsbCBu b3QgYmUgY29uc2lkZXJlZCBhCisrICAgICAgICogY2FuZGlkYXRlIGZvciByZXNvbHZpbmcgdGhl IGRlcGVuZGVuY3kgdW5sZXNzIHRoZSAqZnVsbCogcGF0aAorKyAgICAgICAqIG9mIHRoZSBhbHJl YWR5IGxvYWRlZCBsaWJyYXJ5IG1hdGNoZXMgdGhlIGRlcGVuZGVuY3kgYmVpbmcgbG9hZGVkLgor KyAgICAgICAqCisrICAgICAgICogbGlianZtLnNvIGlzIGJlaW5nIGxvYWRlZCBieSB0aGUgbGF1 bmNoZXIgdXNpbmcgYSBsb25nIHBhdGggdG8KKysgICAgICAgKiBkbG9wZW4sIG5vdCBqdXN0IHRo ZSBiYXNlbmFtZSBvZiB0aGUgbGlicmFyeS4gVHlwaWNhbGx5IHRoaXMKKysgICAgICAgKiBpcyBz b21ldGhpbmcgbGlrZSAiLi4vbGliL3NlcnZlci9saWJqdm0uc28iLiBIb3dldmVyLCBpZi93aGVu CisrICAgICAgICogbGlianZtLnNvIGxhdGVyIHRyaWVzIHRvIGRsb3BlbiBsaWJqYXZhLnNvICh3 aGljaCBpdCBkb2VzIGluCisrICAgICAgICogb3JkZXIgdG8gZ2V0IGFjY2VzcyB0byBhIGZldyBm dW5jdGlvbnMgaW1wbGVtZW50ZWQgaW4KKysgICAgICAgKiBsaWJqYXZhLnNvKSB0aGUgbXVzbCBs b2FkZXIgd2lsbCwgYXMgcGFydCBvZiBsb2FkaW5nCisrICAgICAgICogZGVwZW5kZW50IGxpYnJh cmllcywgdHJ5IHRvIGxvYWQgbGlianZtLnNvIHVzaW5nIG9ubHkgaXRzCisrICAgICAgICogYmFz ZW5hbWUgImxpYmp2bS5zbyIuIFNpbmNlIHRoaXMgZG9lcyBub3QgbWF0Y2ggdGhlIGxvbmdlcgor KyAgICAgICAqIHBhdGggcGF0aCBpdCB3YXMgZmlyc3QgbG9hZGVkIHdpdGgsIHRoZSBhbHJlYWR5 IGxvYWRlZAorKyAgICAgICAqIGxpYnJhcnkgaXMgbm90IGNvbnNpZGVyZWQgYSBjYW5kaWRhdGUs IGFuZCB0aGUgbG9hZGVyIHdpbGwKKysgICAgICAgKiBpbnN0ZWFkIGxvb2sgZm9yIGxpYmp2bS5z byBlbHNld2hlcmUuIElmIGl0J3Mgbm90IGluCisrICAgICAgICogTERfTElCUkFSWV9QQVRIIHRo ZSBkZXBlbmRlbmN5IGxvYWQgd2lsbCBmYWlsLCBhbmQgbGliamF2YS5zbworKyAgICAgICAqIHdp bGwgdGhlcmVmb3JlIGZhaWwgYXMgd2VsbC4KKysgICAgICAgKi8KKysgICAgICByZXR1cm4gSk5J X1RSVUU7CisrICAgIH0KKysjZW5kaWYKKysKKyAjaWZkZWYgQUlYCisgICAgIC8qIFdlIGFsd2F5 cyBoYXZlIHRvIHNldCB0aGUgTElCUEFUSCBvbiBBSVggYmVjYXVzZSBsZCBkb2Vzbid0IHN1cHBv cnQgJE9SSUdJTi4gKi8KKyAgICAgcmV0dXJuIEpOSV9UUlVFOworLS0tIGEvc3JjL2pkay5qZHdw LmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorKysrIGIvc3JjL2pkay5qZHdwLmFn ZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorQEAgLTM1LDE1ICszNSwxNSBAQAorICNp ZmRlZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1ha2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFy ZSBub3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5kZWYgZnJlZQorLSAgICAjZGVmaW5lIGZyZWUo cCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBmcmVlIGRvX25vdF91 c2VfdGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAjdW5kZWYgbWFsbG9jCistICAgICNkZWZpbmUg bWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgbWFsbG9j IGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFsbG9jCisgICAgICN1bmRlZiBjYWxsb2MKKy0g ICAgI2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2Rl ZmluZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVm IHJlYWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZh Y2UuCisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxs b2MKKyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAjZGVmaW5lIHN0cmR1cChwKSBEbyBub3QgdXNl IHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHN0cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50 ZXJmYWNlX3N0cmR1cAorICNlbmRpZgorIAorICNpbmNsdWRlICJsb2dfbWVzc2FnZXMuaCIKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNy9m aWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVz bF9wYXRjaGVzL3BwYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw MDAuLmQzMDZkNTAxZTRiOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE3L2Zp bGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorUGF0Y2hlcyBmb3Ig bXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3Jn L2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYy ODAKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCisr KysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAorQEAgLTQ3 LDYgKzQ3LDggQEAKKyAjaW5jbHVkZSAib3B0by9pbnRyaW5zaWNub2RlLmhwcCIKKyAjZW5kaWYK KyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpZmRlZiBQUk9EVUNUCisgI2RlZmlu ZSBCTE9DS19DT01NRU5UKHN0cikgLy8gbm90aGluZworICNlbHNlCistLS0gb2xkL3NyYy9ob3Rz cG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9w cGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAtODQ1LDcgKzg0NSw3IEBAIHZvaWQgVk1fVmVyc2lv bjo6ZGV0ZXJtaW5lX2ZlYXR1cmVzKCkgeworICAgdW5zaWduZWQgbG9uZyBhdXh2ID0gZ2V0YXV4 dmFsKEFUX0hXQ0FQMik7CisgCisgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IVE1fTk9TQykg eworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IQVNfSFRNKSB7CisrICAgIGlmIChhdXh2 ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAgICAgIC8vIFRNIG9uIFBPV0VSOCBhbmQgUE9XRVI5 IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3VwcG9ydGVkIGJ5IHRoZSBKVk0uCisgICAgICAgLy8g VE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJlbWV0YWwpIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhl IEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dFUjkgREQyLjEgTlYgaGFzIGEgZmV3IGlzc3VlcyB0 aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1 L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAorQEAgLTc1LDcgKzc1LDcgQEAKKyAjIGluY2x1ZGUg PHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0K KysjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNr X3BvaW50ZXIoKSB7CisgICBpbnRwdHJfdCogY3NwOworLS0tIG9sZC9zcmMvaG90c3BvdC9vc19j cHUvbGludXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29z X2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKK0BAIC0yMyw2ICsyMyw4IEBACisg ICoKKyAgKi8KKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpbmNsdWRlICJwcmVj b21waWxlZC5ocHAiCisgI2luY2x1ZGUgInJ1bnRpbWUvZnJhbWUuaW5saW5lLmhwcCIKKyAjaW5j bHVkZSAicnVudGltZS90aHJlYWQuaHBwIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTcv ZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211 c2xfcGF0Y2hlcy94ODYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi45YzY0YzE4OTAzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNy9m aWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZv ciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5v cmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRj NjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5j cHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3Bw CitAQCAtOTAsNiArOTAsMTI2IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5k aWYgLy8gQU1ENjQKKworKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20g Z2xpYmMgMi4yOAorKy8vIHNvdXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xp YmMuZ2l0O2E9YmxvYjtmPXN5c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4 OTdmZjRlNTgyNmQyMjhjYmE2YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNj YTM5MmJiYTdhOTljMmIKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0 CisrLyogRlBVIGNvbnRyb2wgd29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0 IChDKSAxOTkzLTIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xh ZiBGbGViYmUuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlz aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24g Mi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3Nl ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUK KysgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQ VV9DT05UUk9MX0gKKysjZGVmaW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQg dGhpcyBmaWxlIHNldHMgb24geDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90Cisr ICAgdG91Y2ggdGhlIFNTRSB1bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0 LiBTZXQgdXAgeW91ciAzODcgdGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdp c3Rlci4KKysgKgorKyAqICAgICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1 ICAgIDQgICAgMyAgICAyICAgIDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBD IHwgcmVzZXJ2ZWQgfCBQTSB8IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJ bnZhbGlkIG9wZXJhdGlvbiBtYXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sK KysgKiBaTTogWmVyby1kaXZpZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06 IFVuZGVyZmxvdyBtYXNrCisrICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sK KysgKgorKyAqIE1hc2sgYml0IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6 IFByZWNpc2lvbiBjb250cm9sCisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24K KysgKiAxMCAtIHJvdW5kIHRvIGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNp bmdsZSBwcmVjaXNpb24KKysgKgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSBy b3VuZGluZyB0byBuZWFyZXN0CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZp bml0eSkKKysgKiAxMCAtIHJvdW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAt IHJvdW5kaW5nIHRvd2FyZCB6ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAq IFRoYXQgaXMgZm9yIDgwODcgYW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUg ZGVmYXVsdCBpcyAweDAzN2Ygd2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0 dXJlcy5oPgorKworKy8qIG1hc2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9N QVNLX0lNICAweDAxCisrI2RlZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVf TUFTS19aTSAgMHgwNAorKyNkZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBV X01BU0tfVU0gIDB4MTAKKysjZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNp c2lvbiBjb250cm9sICovCisrI2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVx dWlyZXMgZG91YmxlIGV4dGVuZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJM RSAgIDB4MjAwCisrI2RlZmluZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNv bnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQg Ki8KKysjZGVmaW5lIF9GUFVfUkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAg ICAgIDB4ODAwCisrI2RlZmluZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9G UFVfUkVTRVJWRUQgMHhGMEMwICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyog VGhlIGZkbGlibSBjb2RlIHJlcXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJp dGhtZXRpYywKKysgICBhbmQgbm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcg dG8gbmVhcmVzdC4gICovCisrCisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8q IElFRUU6ICBzYW1lIGFzIGFib3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdm CisrCisrLyogVHlwZSBvZiB0aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVk IGludCBmcHVfY29udHJvbF90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOwor KworKy8qIE1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAi KiYiIGlzIHVzZWQgdG8KKysgICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBv ZiBHQ0MuICBfX3ZvbGF0aWxlX18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24g b2Ygd3JpdGluZyB0aGUgY29udHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2su ICBXaXRob3V0IF9fdm9sYXRpbGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVh ZGluZworKyAgIGJhY2sgdW5kZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUg dGhhdCB0aGUgdXNlIG9mIHRoZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdp dGgKKysgICByZWNlbnQgaGFyZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9p bnQgb3BlcmF0aW9ucyBhcmUKKysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3 aGljaCBoYXZlIHRoZWlyIG93biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICov CisrI2RlZmluZSBfRlBVX0dFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAl MCIgOiAiPW0iICgqJmN3KSkKKysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xh dGlsZV9fICgiZmxkY3cgJTAiIDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJv bCB3b3JkIHNldCBhdCBzdGFydHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9j b250cm9sOworKworKyNlbmRpZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFN RDY0CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFj a19wb2ludGVyKCkgeworICNpZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNw OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTcvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5q ZGsxNy90ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjVi OGI4MDE1MTNjYgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE3L3RlbXBsYXRl CkBAIC0wLDAgKzEsMjM0IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuamRrMTcnCitfamF2 YV92ZXI9MTcKK19qYXZhX21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj0xCitfamRrX3VwZGF0ZT0x MgorX2pka19ob21lPSJ1c3IvbGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9IgorX2Jhc2VfdmVy c2lvbj0iJHtfamF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9zZWNfdmVyfSIKKwor cGtnbmFtZT1vcGVuamRrMTcKK3ZlcnNpb249IiR7X2Jhc2VfdmVyc2lvbn0rJHtfamRrX3VwZGF0 ZX0iCityZXZpc2lvbj0xCit3cmtzcmM9ImpkayR7X2phdmFfdmVyfXUtamRrLSR7X2Jhc2VfdmVy c2lvbn0tJHtfamRrX3VwZGF0ZX0iCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitjb25maWd1 cmVfYXJncz0iLS1kaXNhYmxlLXdhcm5pbmdzLWFzLWVycm9ycworIC0tZW5hYmxlLXVubGltaXRl ZC1jcnlwdG8KKyAtLXdpdGgtemxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1zeXN0ZW0KKyAt LXdpdGgtZ2lmbGliPXN5c3RlbQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13aXRoLWxjbXM9 c3lzdGVtCisgLS13aXRoLWp0cmVnPW5vCisgLS13aXRoLWd0ZXN0PSR7WEJQU19CVUlMRERJUn0v Z29vZ2xldGVzdC1yZWxlYXNlLTEuOC4xCisgLS13aXRoLWRlYnVnLWxldmVsPXJlbGVhc2UKKyAt LXdpdGgtam9icz0ke1hCUFNfT1JJR19NQUtFSk9CU30KKyAtLXdpdGgtdmVyc2lvbi1wcmU9Cisg LS13aXRoLXZlcnNpb24tYnVpbGQ9JHtfamRrX3VwZGF0ZX0KKyAtLXdpdGgtdmVyc2lvbi1vcHQ9 dm9pZC1yJHtyZXZpc2lvbn0KKyAtLXdpdGgtdmVuZG9yLW5hbWU9Vm9pZAorIC0td2l0aC12ZW5k b3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0 cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgt dmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9pc3N1ZXMiCittYWtlX2J1aWxkX2FyZ3M9ImltYWdlcyAkKHZvcHRfaWYgZG9jcyBkb2Nz KSIKK21ha2VfaW5zdGFsbF9hcmdzPSJJTlNUQUxMX1BSRUZJWD1cIiR7REVTVERJUn0vdXNyL2xp YlwiIgorbWFrZV9jaGVja190YXJnZXQ9InRlc3QtaG90c3BvdC1ndGVzdCIKK2hvc3RtYWtlZGVw ZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBhdXRvY29uZiBjcGlvIHRhciB1bnppcCB6aXAgY2Et Y2VydGlmaWNhdGVzCisgbGlicmVzc2wgemxpYi1kZXZlbCB3aGljaCBtYWtlLWNhIgorbWFrZWRl cGVuZHM9ImxpYlhyZW5kZXItZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFu ZHItZGV2ZWwKKyBnaWZsaWItZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBjdXBzLWRldmVsIGZy ZWV0eXBlLWRldmVsIGFsc2EtbGliLWRldmVsCisgZm9udGNvbmZpZy1kZXZlbCB6bGliLWRldmVs IGxjbXMyLWRldmVsIgorZGVwZW5kcz0iJHtwa2duYW1lfS1qcmUtJHt2ZXJzaW9ufV8ke3Jldmlz aW9ufSIKK3Byb3ZpZGVzPSJqYXZhLWVudmlyb25tZW50LSR7dmVyc2lvbn1fMSIKK3Nob3J0X2Rl c2M9Ik9wZW5KREsgSmF2YSBEZXZlbG9wbWVudCBLaXQgKHZlcnNpb24gJHtfamF2YV92ZXJ9KSIK K21haW50YWluZXI9ImNsYXNzYWJieWFtcCA8ZGV2QGtiNi5lZT4iCitsaWNlbnNlPSJHUEwtMi4w LW9ubHkgV0lUSCBDbGFzc3BhdGgtZXhjZXB0aW9uLTIuMCIKK2hvbWVwYWdlPSJodHRwOi8vb3Bl bmpkay5qYXZhLm5ldC8iCitkaXN0ZmlsZXM9Imh0dHBzOi8vZ2l0aHViLmNvbS9vcGVuamRrL2pk ayR7X2phdmFfdmVyfXUvYXJjaGl2ZS9qZGstJHt2ZXJzaW9ufS50YXIuZ3oKKyBodHRwczovL2dp dGh1Yi5jb20vZ29vZ2xlL2dvb2dsZXRlc3QvYXJjaGl2ZS9yZWZzL3RhZ3MvcmVsZWFzZS0xLjgu MS50YXIuZ3oiCitjaGVja3N1bT0iOGMwNzYyMDNhNmY4NWFiOTE2YjNlNTRkZTE5OTJiY2JjYzVm ZmU1ODBjNTJiMWFjOGQ1MmNhN2FmYjlmMDJkMQorIDliZjFmZTUxODJhNjA0YjQxMzVlZGMxYTQy NWFlMzU2YzlhZDE1ZTliMjNmOWYxMmEwMmU4MDE4NGMzYTI0OWMiCisKKyMgQnVpbGQgaXMgc3Rp bGwgcGFyYWxsZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgorZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15 ZXMKK2J1aWxkX29wdGlvbnM9ImRvY3MiCisKKyMgbm8gaG90c3BvdCBKSVQgZm9yIHBwYzMyCitj YXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGM2NCopIDs7CisJcHBjKikgX3VzZV96 ZXJvPXllcyA7OworZXNhYworCitpZiBbIC1uICIkX3VzZV96ZXJvIiBdOyB0aGVuCisJbWFrZWRl cGVuZHMrPSIgbGliZmZpLWRldmVsIgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1qdm0tdmFy aWFudHM9emVybyIKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGMqKSBjb25m aWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGstanZtYXJncz0tWFg6VGhyZWFkU3RhY2tTaXpl PTI1NjAiOzsKKwllc2FjCitmaQorY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrLWp2 bWFyZ3M9LVhsb2c6ZGlzYWJsZSIKKworY2FzZSAiJFhCUFNfVEFSR0VUX0xJQkMiIGluCisJZ2xp YmMpIGJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiBkb2NzIjs7Citlc2FjCisKK2lmIFsgISAiJENS T1NTX0JVSUxEIiBdOyB0aGVuCisJaG9zdG1ha2VkZXBlbmRzKz0iIG9wZW5qZGsxNi1ib290c3Ry YXAiCisJY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9vcGVu amRrMTYiCitlbHNlCisJaG9zdG1ha2VkZXBlbmRzKz0iIG9wZW5qZGsxNyIKKwljb25maWd1cmVf YXJncys9IiAtLXdpdGgtYm9vdC1qZGs9L3Vzci9saWIvanZtL29wZW5qZGsxNyIKK2ZpCisKK2lm IFsgLW4gIiRYQlBTX0RFQlVHX1BLR1MiIF07IHRoZW4KKwljb25maWd1cmVfYXJncys9IiAtLXdp dGgtbmF0aXZlLWRlYnVnLXN5bWJvbHM9aW50ZXJuYWwiCitmaQorCithbHRlcm5hdGl2ZXM9Igor IGphdmE6L3Vzci9iaW4vamF2YTovJHtfamRrX2hvbWV9L2Jpbi9qYXZhCisgamF2YTovdXNyL2Jp bi9qZnI6LyR7X2pka19ob21lfS9iaW4vamZyCisgamF2YTovdXNyL2Jpbi9rZXl0b29sOi8ke19q ZGtfaG9tZX0vYmluL2tleXRvb2wKKyBqYXZhOi91c3IvYmluL3JtaXJlZ2lzdHJ5Oi8ke19qZGtf aG9tZX0vYmluL3JtaXJlZ2lzdHJ5CisKKyBqZGs6L3Vzci9iaW4vamFyOi8ke19qZGtfaG9tZX0v YmluL2phcgorIGpkazovdXNyL2Jpbi9qYXJzaWduZXI6LyR7X2pka19ob21lfS9iaW4vamFyc2ln bmVyCisgamRrOi91c3IvYmluL2phdmE6LyR7X2pka19ob21lfS9iaW4vamF2YQorIGpkazovdXNy L2Jpbi9qYXZhYzovJHtfamRrX2hvbWV9L2Jpbi9qYXZhYworIGpkazovdXNyL2Jpbi9qYXZhZG9j Oi8ke19qZGtfaG9tZX0vYmluL2phdmFkb2MKKyBqZGs6L3Vzci9iaW4vamF2YXA6LyR7X2pka19o b21lfS9iaW4vamF2YXAKKyBqZGs6L3Vzci9iaW4vamNtZDovJHtfamRrX2hvbWV9L2Jpbi9qY21k CisgamRrOi91c3IvYmluL2pjb25zb2xlOi8ke19qZGtfaG9tZX0vYmluL2pjb25zb2xlCisgamRr Oi91c3IvYmluL2pkYjovJHtfamRrX2hvbWV9L2Jpbi9qZGIKKyBqZGs6L3Vzci9iaW4vamRlcHJz Y2FuOi8ke19qZGtfaG9tZX0vYmluL2pkZXByc2NhbgorIGpkazovdXNyL2Jpbi9qZGVwczovJHtf amRrX2hvbWV9L2Jpbi9qZGVwcworIGpkazovdXNyL2Jpbi9qZnI6LyR7X2pka19ob21lfS9iaW4v amZyCisgamRrOi91c3IvYmluL2poc2RiOi8ke19qZGtfaG9tZX0vYmluL2poc2RiCisgamRrOi91 c3IvYmluL2ppbWFnZTovJHtfamRrX2hvbWV9L2Jpbi9qaW1hZ2UKKyBqZGs6L3Vzci9iaW4vamlu Zm86LyR7X2pka19ob21lfS9iaW4vamluZm8KKyBqZGs6L3Vzci9iaW4vamxpbms6LyR7X2pka19o b21lfS9iaW4vamxpbmsKKyBqZGs6L3Vzci9iaW4vam1hcDovJHtfamRrX2hvbWV9L2Jpbi9qbWFw CisgamRrOi91c3IvYmluL2ptb2Q6LyR7X2pka19ob21lfS9iaW4vam1vZAorIGpkazovdXNyL2Jp bi9qcGFja2FnZTovJHtfamRrX2hvbWV9L2Jpbi9qcGFja2FnZQorIGpkazovdXNyL2Jpbi9qcHM6 LyR7X2pka19ob21lfS9iaW4vanBzCisgamRrOi91c3IvYmluL2pydW5zY3JpcHQ6LyR7X2pka19o b21lfS9iaW4vanJ1bnNjcmlwdAorIGpkazovdXNyL2Jpbi9qc2hlbGw6LyR7X2pka19ob21lfS9i aW4vanNoZWxsCisgamRrOi91c3IvYmluL2pzdGFjazovJHtfamRrX2hvbWV9L2Jpbi9qc3RhY2sK KyBqZGs6L3Vzci9iaW4vanN0YXQ6LyR7X2pka19ob21lfS9iaW4vanN0YXQKKyBqZGs6L3Vzci9i aW4vanN0YXRkOi8ke19qZGtfaG9tZX0vYmluL2pzdGF0ZAorIGpkazovdXNyL2Jpbi9rZXl0b29s Oi8ke19qZGtfaG9tZX0vYmluL2tleXRvb2wKKyBqZGs6L3Vzci9iaW4vcm1pcmVnaXN0cnk6LyR7 X2pka19ob21lfS9iaW4vcm1pcmVnaXN0cnkKKyBqZGs6L3Vzci9iaW4vc2VyaWFsdmVyOi8ke19q ZGtfaG9tZX0vYmluL3NlcmlhbHZlcgorIgorCitwb3N0X2V4dHJhY3QoKSB7CisJY2htb2QgK3gg Y29uZmlndXJlCisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJ cm0gLXIgc3JjL2pkay5ob3RzcG90LmFnZW50CisJZmkKK30KKworcG9zdF9wYXRjaCgpIHsKKwlp ZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCQlmb3IgZiBpbiAiJHtG SUxFU0RJUn0iL211c2xfcGF0Y2hlcy8qLnBhdGNoOyBkbworCQkJbXNnX25vcm1hbCAiQXBwbHlp bmcgJHtmIyRGSUxFU0RJUi99XG4iCisJCQlwYXRjaCAtbE5wMSAtaSAiJGYiCisJCWRvbmUKKwlm aQorfQorCitkb19jb25maWd1cmUoKSB7CisJQ0ZMQUdTPSR7Q0ZMQUdTLy1EX0ZPUlRJRllfU09V UkNFPTIvfQorCUNYWEZMQUdTPSR7Q1hYRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99CisKKwkj IGZvcmNlIEVMRnYyIGZvciBwcGM2NCBqdXN0IGluIGNhc2UKKwljYXNlICIkWEJQU19UQVJHRVRf TUFDSElORSIgaW4KKwkJcHBjNjQqKQorCQkJQ0ZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJQ1hY RkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQk7OworCWVzYWMKKworCWNvbmZpZ3VyZV9hcmdzPSR7 Y29uZmlndXJlX2FyZ3MvLS13aXRoLWxpYnRvb2wtc3lzcm9vdD0kWEJQU19DUk9TU19CQVNFfQor CWlmIFsgIiRYQlBTX0NDQUNIRSIgXSAmJiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJ Y29uZmlndXJlX2FyZ3MrPSIgLS1lbmFibGUtY2NhY2hlIgorCQlDQz0iL3Vzci9iaW4vY2MiCisJ CUNYWD0iL3Vzci9iaW4vYysrIgorCWZpCisJLi9jb25maWd1cmUgJHtjb25maWd1cmVfYXJnc30g XAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1jeHhm bGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1sZGZsYWdzPSIkTERGTEFHUyIgXAor CQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAgTk09JE5NIFwKKwkJT0JKRFVN UD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwlybSAt cmYgJHtERVNURElSfS91c3IvbGliL2JpbgorCW12ICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Bl bmpkay0ke19iYXNlX3ZlcnNpb259ICR7REVTVERJUn0vJF9qZGtfaG9tZQorCXZta2RpciAkX2pk a19ob21lL2xpYi9zZWN1cml0eQorCW1ha2UtY2EgLWcgLWYgLS1kZXN0ZGlyICIke1BXRH0vY2Ei IC1rICIke0RFU1RESVJ9LyRfamRrX2hvbWUvYmluL2tleXRvb2wiCisJbXYgLi9jYS9ldGMvcGtp L3Rscy9qYXZhL2NhY2VydHMgJHtERVNURElSfS8kX2pka19ob21lL2xpYi9zZWN1cml0eS8KKwlj aG1vZCAtUiB1Z28rcncgLi9jYQorCXJtIC1yZiAuL2NhCit9CisKK2RvX2NsZWFuKCkgeworCSMg Y2xlYW4gdXAgZ3Rlc3QKKwlybSAtcmYgJHtYQlBTX0JVSUxERElSfS9nb29nbGV0ZXN0LXJlbGVh c2UtKgorfQorCitzdWJwYWNrYWdlcz0ib3BlbmpkazE3LXNyYyBvcGVuamRrMTctanJlIG9wZW5q ZGsxNy1kb2MiCisKK29wZW5qZGsxNy1qcmVfcGFja2FnZSgpIHsKKwlzaGxpYl9wcm92aWRlcz0i bGliYXd0LnNvIGxpYmF3dF94YXd0LnNvIGxpYmphdmEuc28gbGliamxpLnNvIGxpYmp2bS5zbyBs aWJqYXd0LnNvIgorCXNob3J0X2Rlc2MrPSIgLSBydW50aW1lIGNvbXBvbmVudHMiCisJcHJvdmlk ZXM9ImphdmEtcnVudGltZS0ke3ZlcnNpb259XzEiCisJYWx0ZXJuYXRpdmVzPSIKKwkgamF2YTov dXNyL2Jpbi9qYXZhOi8ke19qZGtfaG9tZX0vYmluL2phdmEKKwkgamF2YTovdXNyL2Jpbi9qZnI6 LyR7X2pka19ob21lfS9iaW4vamZyCisJIGphdmE6L3Vzci9iaW4va2V5dG9vbDovJHtfamRrX2hv bWV9L2Jpbi9rZXl0b29sCisJIGphdmE6L3Vzci9iaW4vcm1pcmVnaXN0cnk6LyR7X2pka19ob21l fS9iaW4vcm1pcmVnaXN0cnkKKwkiCisJcGtnX2luc3RhbGwoKSB7CisJCWZvciBiZiBpbiBqYXZh IGpmciBrZXl0b29sIHJtaXJlZ2lzdHJ5OyBkbworCQkJdm1vdmUgJF9qZGtfaG9tZS9iaW4vJGJm CisJCWRvbmUKKworCQlmb3IgZiBpbiBsaWIgbGVnYWwgY29uZiByZWxlYXNlOyBkbworCQkJdm1v dmUgJF9qZGtfaG9tZS8kZgorCQlkb25lCisKKwkJdm1rZGlyIGV0Yy9wcm9maWxlLmQKKwkJY2F0 ID4+JHtQS0dERVNURElSfS9ldGMvcHJvZmlsZS5kLzEwX29wZW5qZGsxNy5zaCA8PC1FT0YKK2V4 cG9ydCBKQVZBX0hPTUU9XCR7SkFWQV9IT01FPS8kX2pka19ob21lfQorRU9GCisKKwkJdmxpY2Vu c2UgQVNTRU1CTFlfRVhDRVBUSU9OCisJCXZsaWNlbnNlIExJQ0VOU0UKKwl9Cit9CisKK29wZW5q ZGsxNy1kb2NfcGFja2FnZSgpIHsKKwlub3N0cmlwPXllcworCW5vdmVyaWZ5cmRlcHM9eWVzCisJ bm9zaGxpYnByb3ZpZGVzPXllcworCXNob3J0X2Rlc2MrPSIgLSBkb2N1bWVudGF0aW9uIgorCXBr Z19pbnN0YWxsKCkgeworCQljZCAke3dya3NyY30KKwkJaWYgWyAiJGJ1aWxkX29wdGlvbl9kb2Nz IiBdOyB0aGVuCisJCQlsb2NhbCBfZG9jZGlyPXVzci9zaGFyZS9kb2Mvb3BlbmpkayRfamF2YV92 ZXIKKwkJCXZta2RpciAkX2RvY2RpcgorCQkJY3AgLWEgYnVpbGQvbGludXgtKi9pbWFnZXMvZG9j cy8qICR7UEtHREVTVERJUn0vJF9kb2NkaXIKKwkJZmkKKwkJdm1vdmUgJF9qZGtfaG9tZS9tYW4v bWFuMQorCX0KK30KKworb3BlbmpkazE3LXNyY19wYWNrYWdlKCkgeworCW5vc3RyaXA9eWVzCisJ bm92ZXJpZnlyZGVwcz15ZXMKKwlub3NobGlicHJvdmlkZXM9eWVzCisJc2hvcnRfZGVzYys9IiAt IHNvdXJjZSBjb2RlIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAiJF9qZGtfaG9tZS9saWIv c3JjLnppcCIKKwl9Cit9CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNy91cGRhdGUgYi9z cmNwa2dzL29wZW5qZGsxNy91cGRhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5iYWExM2EyMmYzNTgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsx Ny91cGRhdGUKQEAgLTAsMCArMSBAQAorcGF0dGVybj0namRrLVxLMTdcLltcZC4rXSsnClwgTm8g bmV3bGluZSBhdCBlbmQgb2YgZmlsZQo= --===============1337169083910640727==--