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 autolearn=no autolearn_force=no version=3.4.4 Received: (qmail 17425 invoked from network); 5 Dec 2021 12:05:45 -0000 Received: from localhost (HELO inbox.vuxu.org) (::1) by localhost with ESMTPUTF8; 5 Dec 2021 12:05:45 -0000 Content-Type: multipart/mixed; boundary="===============1289622042826499520==" MIME-Version: 1.0 Subject: =?utf8?q?=5BPR_PATCH=5D_=5BWIP=5D_Openjdk17?= To: ml@inbox.vuxu.org From: raedwulf Reply-to: ml@inbox.vuxu.org Message-ID: Date: Sun, 05 Dec 2021 13:05:44 +0100 List-Id: GitHub notification mails are now in MIME to allow UTF8. --===============1289622042826499520== Content-Type: text/plain; charset="utf8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlcmUgaXMgYSBuZXcgcHVsbCByZXF1ZXN0IGJ5IHJhZWR3dWxmIGFnYWluc3QgbWFzdGVyIG9u IHRoZSB2b2lkLXBhY2thZ2VzIHJlcG9zaXRvcnkKCmh0dHBzOi8vZ2l0aHViLmNvbS9yYWVkd3Vs Zi92b2lkLXBhY2thZ2VzIG9wZW5qZGsxNwpodHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92 b2lkLXBhY2thZ2VzL3B1bGwvMzQzOTAKCltXSVBdIE9wZW5qZGsxNwpUaGlzIGlzIG9wZW4gZm9y IGZlZWRiYWNrL290aGVyIGNvbnRyaWJ1dGlvbnMgYmVjYXVzZSBJIGRvbid0IHJlYWxseSBoYXZl IHRoZSB0aW1lIHRvIG1haW50YWluIHRoaXMuDQpJJ3ZlIHRlc3RlZCBpdCBvbmx5IG9uIHg4Ni02 NCBzbyB0aGVyZSdzIGEgaGlnaCBjaGFuY2UgdGhhdCB0aGUgbXVzbCBwYXRjaGVzIGFyZSBicm9r ZW4uDQoNCiMjIyMgVGVzdGluZyB0aGUgY2hhbmdlcw0KLSBJIHRlc3RlZCB0aGUgY2hhbmdlcyBp biB0aGlzIFBSOiB8KipicmllZmx5KioNCg0KIyMjIyBOZXcgcGFja2FnZQ0KLSBUaGlzIG5ldyBw YWNrYWdlIGNvbmZvcm1zIHRvIHRoZSBbcXVhbGl0eSByZXF1aXJlbWVudHNdKGh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvYmxvYi9tYXN0ZXIvTWFudWFsLm1kI3F1 YWxpdHktcmVxdWlyZW1lbnRzKTogKipOTyoqDQoNCiMjIyMgTG9jYWwgYnVpbGQgdGVzdGluZw0K LSBJIGJ1aWx0IHRoaXMgUFIgbG9jYWxseSBmb3IgbXkgbmF0aXZlIGFyY2hpdGVjdHVyZSwgKEFS Q0gtTElCQykNCg0KW2NpIHNraXBdCgpBIHBhdGNoIGZpbGUgZnJvbSBodHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL3B1bGwvMzQzOTAucGF0Y2ggaXMgYXR0YWNoZWQ= --===============1289622042826499520== Content-Type: text/x-diff MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="github-pr-openjdk17-34390.patch" RnJvbSBjNGZhYmZmMzc5YTZlNDExN2U0ODNkMzUyM2JiNTUyODZhOGMwMjFlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1B N249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU2F0 LCAxIEF1ZyAyMDIwIDIyOjM2OjQwICswNzAwClN1YmplY3Q6IFtQQVRDSCAxLzhdIHNodXRpbHM6 IGludHJvZHVjZSBYQlBTX09SSUdfTUFLRUpPQlMgdmFyaWFibGUKClNvbWUgcGFja2FnZXMgY291 bGRuJ3Qgd29yayB3ZWxsIHdpdGggWEJQU19NQUtFSk9CUywKdGh1cyB3ZSBkaXNhYmxlIHBhcmFs bGVsIGJ1aWxkIGZvciB0aG9zZSBwYWNrYWdlcy4KCk9uIHRoZSBvdGhlciBoYW5kLCBzb21lIHBh Y2thZ2VzIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gb3Blbmpkawp1c2UgYW4gaW50ZXJu YWwgbWVjaGFuaXNtIHRvIGJ1aWxkIHRoZW1zZWx2ZXMgaW4gcGFyYWxsZWwuCgpMZXQncyBpbnZl bnQgYW5vdGhlciB2YXJpYWJsZSBmb3IgdGhvc2UgcGFja2FnZXMuCi0tLQogY29tbW9uL3hicHMt c3JjL3NodXRpbHMvY29tbW9uLnNoIHwgNCArKystCiAxIGZpbGUgY2hhbmdlZCwgMyBpbnNlcnRp b25zKCspLCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvY29tbW9uL3hicHMtc3JjL3NodXRp bHMvY29tbW9uLnNoIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY29tbW9uLnNoCmluZGV4IGU4 YmNmNTc3YzZiNy4uYTU2MDVjMjJkOGNjIDEwMDY0NAotLS0gYS9jb21tb24veGJwcy1zcmMvc2h1 dGlscy9jb21tb24uc2gKKysrIGIvY29tbW9uL3hicHMtc3JjL3NodXRpbHMvY29tbW9uLnNoCkBA IC00NTIsNyArNDUyLDkgQEAgc2V0dXBfcGtnKCkgewogICAgIERFU1RESVI9JFhCUFNfREVTVERJ Ui8kWEJQU19DUk9TU19UUklQTEVULyR7c291cmNlcGtnfS0ke3ZlcnNpb259CiAgICAgUEtHREVT VERJUj0kWEJQU19ERVNURElSLyRYQlBTX0NST1NTX1RSSVBMRVQvJHtwa2d9LSR7dmVyc2lvbn0K IAotICAgIGlmIFsgLW4gIiRkaXNhYmxlX3BhcmFsbGVsX2J1aWxkIiAtbyAteiAiJFhCUFNfTUFL RUpPQlMiIF07IHRoZW4KKyAgICA6ICR7WEJQU19NQUtFSk9CUzo9MX0KKyAgICBleHBvcnQgWEJQ U19PUklHX01BS0VKT0JTPSR7WEJQU19PUklHX01BS0VKT0JTOj0kWEJQU19NQUtFSk9CU30KKyAg ICBpZiBbIC1uICIkZGlzYWJsZV9wYXJhbGxlbF9idWlsZCIgXTsgdGhlbgogICAgICAgICBYQlBT X01BS0VKT0JTPTEKICAgICBmaQogICAgIG1ha2Vqb2JzPSItaiRYQlBTX01BS0VKT0JTIgoKRnJv bSBlZWM1ODdiYjM4NmViOGQ2MjEzMDZhNmNiODZjYTgxMWZkMmZjMDI0IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49MjBUcj1FMT1CQT1BN249 MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4KRGF0ZTogU2F0LCAx IEF1ZyAyMDIwIDIxOjM2OjEwICswNzAwClN1YmplY3Q6IFtQQVRDSCAyLzhdIE5ldyBwYWNrYWdl OiBvcGVuamRrMTItYm9vdHN0cmFwLTEyLjAuMisxMAoKLS0tCiAuLi4vZmlsZXMvbXVzbF9wYXRj aGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAgfCAgMTAgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hl cy9hcm0ucGF0Y2ggICAgICAgICAgICAgIHwgIDI0ICsrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVz L2J1aWxkLnBhdGNoICAgICAgICAgICAgfCAzODcgKysrKysrKysrKysrKysrKysrCiAuLi4vZmls ZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCAgICAgICAgICAgICAgfCAgNDUgKysKIC4uLi9maWxl cy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgICAgICAgICAgICB8IDEzMCArKysrKysKIHNyY3Br Z3Mvb3BlbmpkazEyLWJvb3RzdHJhcC90ZW1wbGF0ZSAgICAgICAgICB8IDExMyArKysrKwogNiBm aWxlcyBjaGFuZ2VkLCA3MDkgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br 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 cGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMDQ4MDdmMTUw NmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvdGVtcGxh dGUKQEAgLTAsMCArMSwxMTMgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3IgJ29wZW5qZGsxMi1ib290 c3RyYXAnCitfamF2YV92ZXI9MTIKK19qYXZhX21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj0yCitf amRrX3VwZGF0ZT0xMAorX2pka19ob21lPSJ1c3IvbGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9 IgorX2Jhc2VfdmVyc2lvbj0iJHtfamF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9z ZWNfdmVyfSIKKworcGtnbmFtZT1vcGVuamRrMTItYm9vdHN0cmFwCit2ZXJzaW9uPSIke19iYXNl X3ZlcnNpb259KyR7X2pka191cGRhdGV9IgorcmV2aXNpb249MQord3Jrc3JjPSJqZGske19qYXZh X3Zlcn11LWpkay0ke3ZlcnNpb259IgorYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQorY29uZmln dXJlX2FyZ3M9IgorIC0tZGlzYWJsZS13YXJuaW5ncy1hcy1lcnJvcnMKKyAtLXByZWZpeD0ke1hC UFNfREVTVERJUn0vJHtwa2duYW1lfS0ke3ZlcnNpb259L3Vzci9saWIKKyAtLWVuYWJsZS11bmxp bWl0ZWQtY3J5cHRvCisgLS13aXRoLXpsaWI9c3lzdGVtCisgLS13aXRoLWxpYmpwZWc9c3lzdGVt CisgLS13aXRoLWdpZmxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlicG5nPXN5c3RlbQorIC0td2l0aC1s Y21zPXN5c3RlbQorIC0td2l0aC1qdHJlZz1ubworIC0td2l0aC12ZXJzaW9uLWJ1aWxkPSRfamF2 YV92ZXIKKyAtLXdpdGgtam9icz0kWEJQU19PUklHX01BS0VKT0JTCisgLS13aXRoLXZlbmRvci1u YW1lPVZvaWQKKyAtLXdpdGgtdmVuZG9yLXVybD1odHRwczovL3ZvaWRsaW51eC5vcmcvCisgLS13 aXRoLXZlbmRvci1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFj a2FnZXMvaXNzdWVzCisgLS13aXRoLXZlbmRvci12bS1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNv bS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzCisgLS13aXRoLWJvb3QtamRrPS91c3Iv bGliL2p2bS9vcGVuamRrMTEiCittYWtlX2J1aWxkX2FyZ3M9ImltYWdlcyIKK21ha2VfY2hlY2tf dGFyZ2V0PSJ0ZXN0LWhvdHNwb3QtZ3Rlc3QiCitob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcg YXV0b21ha2UgYXV0b2NvbmYgY3BpbyB0YXIgdW56aXAgemlwIGNhLWNlcnRpZmljYXRlcworIGxp YnJlc3NsIHpsaWItZGV2ZWwgd2hpY2ggbWFrZS1jYSBvcGVuamRrMTEiCittYWtlZGVwZW5kcz0i bGliWHJlbmRlci1kZXZlbCBsaWJYdHN0LWRldmVsIGxpYlh0LWRldmVsIGxpYlhyYW5kci1kZXZl bAorIGdpZmxpYi1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVsIGN1cHMtZGV2ZWwgZnJlZXR5cGUt ZGV2ZWwgYWxzYS1saWItZGV2ZWwKKyBmb250Y29uZmlnLWRldmVsIHpsaWItZGV2ZWwgbGNtczIt ZGV2ZWwiCitwcm92aWRlcz0iamF2YS1lbnZpcm9ubWVudC0ke3ZlcnNpb259XzEgamF2YS1ydW50 aW1lLSR7dmVyc2lvbn1fMSIKK3Nob3J0X2Rlc2M9Ik9wZW5KREsgSmF2YSBEZXZlbG9wbWVudCBL aXQgKGJvb3RzdHJhcCB2ZXJzaW9uIDEyKSIKK21haW50YWluZXI9IsSQb8OgbiBUcuG6p24gQ8O0 bmcgRGFuaCA8Y29uZ2RhbmhxeEBnbWFpbC5jb20+IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKK2hvbWVwYWdlPSJodHRwOi8vb3Blbmpkay5qYXZhLm5ldC8iCitkaXN0ZmlsZXM9Imh0dHBz Oi8vaGcub3Blbmpkay5qYXZhLm5ldC9qZGstdXBkYXRlcy9qZGske19qYXZhX3Zlcn11L2FyY2hp dmUvamRrLSR7dmVyc2lvbn0udGFyLmd6IgorY2hlY2tzdW09YjJiY2FkMzU2NTZiMDA5Mjg2ODM0 MTZmMzQ4MGFkMDAzNjNiMDA5OTNlYjcxMWMzZTE4ODZlNGZlNzdlZWZlYgorbGliMzJkaXNhYmxl ZD15ZXMKK25vY3Jvc3M9eWVzCisKKyMgQnVpbGQgaXMgc3RpbGwgcGFyYWxsZWwsIGJ1dCBkb24n dCB1c2UgLWpOLgorZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15ZXMKKworIyBubyBob3RzcG90IEpJ VCBmb3IgcHBjMzIKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCXBwYzY0KikgOzsK KwlwcGMqKSBfdXNlX3plcm89eWVzIDs7Citlc2FjCisKK2lmIFsgLW4gIiRfdXNlX3plcm8iIF07 IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJmZmktZGV2ZWwiCisJY29uZmlndXJlX2FyZ3MrPSIg LS13aXRoLWp2bS12YXJpYW50cz16ZXJvIgorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBp bgorCQlwcGMqKSBjb25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGstanZtYXJncz0tWFg6 VGhyZWFkU3RhY2tTaXplPTI1NjAiOzsKKwllc2FjCitmaQorCitwb3N0X2V4dHJhY3QoKSB7CisJ Y2htb2QgK3ggY29uZmlndXJlCisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07 IHRoZW4KKwkJcm0gLXIgc3JjL2pkay5ob3RzcG90LmFnZW50CisJZmkKK30KKworcG9zdF9wYXRj aCgpIHsKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCQlmb3Ig ZiBpbiAiJHtGSUxFU0RJUn0iL211c2xfcGF0Y2hlcy8qLnBhdGNoOyBkbworCQkJbXNnX25vcm1h bCAiQXBwbHlpbmcgJHtmIyRGSUxFU0RJUi99XG4iCisJCQlwYXRjaCAtc2xOcDEgLWkgIiRmIgor CQlkb25lCisJZmkKK30KKworZG9fY29uZmlndXJlKCkgeworCUNGTEFHUz0ke0NGTEFHUy8tRF9G T1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFHUz0ke0NYWEZMQUdTLy1EX0ZPUlRJRllfU09VUkNF PTIvfQorCisJIyBmb3JjZSBFTEZ2MiBmb3IgcHBjNjQganVzdCBpbiBjYXNlCisJY2FzZSAiJFhC UFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikKKwkJCUNGTEFHUys9IiAtREFCSV9FTEZ2 MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJOzsKKwllc2FjCisKKwljb25maWd1 cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdzLy0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9XC91c3JcL1th LXowLTldKi1saW51eC1bYS16XSovfQorCWlmIFsgIiRYQlBTX0NDQUNIRSIgXTsgdGhlbgorCQlj b25maWd1cmVfYXJncys9IiAtLWVuYWJsZS1jY2FjaGUiCisJZmkKKwlDQz0iL3Vzci9iaW4vY2Mi CisJQ1hYPSIvdXNyL2Jpbi9jKysiCisJLi9jb25maWd1cmUgJHtjb25maWd1cmVfYXJnc30gXAor CQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1jeHhmbGFn cz0iJENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1sZGZsYWdzPSIkTERGTEFHUyIgXAorCQlS RUFERUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAgTk09JE5NIFwKKwkJT0JKRFVNUD0k T0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwltdiAke0RF U1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJzaW9ufS1pbnRlcm5hbCAke0RF U1RESVJ9LyRfamRrX2hvbWUKKwlybSAtcmYgJHtERVNURElSfS91c3IvbGliL2JpbgorCXJtIC1m ICRERVNURElSLyRfamRrX2hvbWUvbGliL3NyYy56aXAKKwl2bGljZW5zZSBBU1NFTUJMWV9FWENF UFRJT04KKwl2bGljZW5zZSBMSUNFTlNFCit9CgpGcm9tIGJiODdmNTQxMDIwZjQ0YTczZjQyMTg3 OTEzODBkZjQ3MjZmYzViZjAgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/ cT89QzQ9OTBvPUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNv bmdkYW5ocXhAZ21haWwuY29tPgpEYXRlOiBTYXQsIDEgQXVnIDIwMjAgMTU6MzA6MzEgKzA3MDAK U3ViamVjdDogW1BBVENIIDMvOF0gTmV3IHBhY2thZ2U6IG9wZW5qZGsxMy1ib290c3RyYXAtMTMu MC40KzgKCi0tLQogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoICAgICAgICAg IHwgIDEwICsKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoICAgICAgICAgICAgICB8 ICAyNCArKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCAgICAgICAgICAgIHwg Mzg3ICsrKysrKysrKysrKysrKysrKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gg ICAgICAgICAgICAgIHwgIDQ1ICsrCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCAg ICAgICAgICAgICAgfCAxMzAgKysrKysrCiBzcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvdGVt cGxhdGUgICAgICAgICAgfCAxMTMgKysrKysKIDYgZmlsZXMgY2hhbmdlZCwgNzA5IGluc2VydGlv bnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmls ZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dz L29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNo ZXMvYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxMy1ib290 c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Y3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCiBj cmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL3RlbXBsYXRlCgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9hYXJjaDY0LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xf cGF0Y2hlcy9hYXJjaDY0LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uYWE2YzVkNGQyYmUyCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTMt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCkBAIC0wLDAgKzEsMTAg QEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNo NjQuY3BwCisrKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9h YXJjaDY0LmNwcAorQEAgLTc0LDcgKzc0LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5j bHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jIGluY2x1ZGUgPGZwdV9j b250cm9sLmg+CisgCisgI2RlZmluZSBSRUdfRlAgMjkKKyAjZGVmaW5lIFJFR19MUiAzMApkaWZm IC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9h cm0ucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L2FybS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFkYzQ1 MjY2MGRmNQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9m aWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCkBAIC0wLDAgKzEsMjQgQEAKKy0tLSBhL3NyYy9o b3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAorKysrIGIvc3JjL2hvdHNw b3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51eF9hcm0uY3BwCitAQCAtNzEsOSArNzEsMjAgQEAK KyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNv bnRleHQuaD4KKy0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CisgIyBpbmNsdWRlIDxhc20vcHRy YWNlLmg+CisgCisrLy8gU3R1cGlkIGhhY2sgYXMgdGhlIG9yaWdpbiBpZiBiZWxvdyBkb2VzbnQg Y29tcGlsZSB3aXRoIGdjYyA4LjIuMDoKKysvLworKy8vIG9zX2xpbnV4X2FybS5jcHA6MTE0OjU6 IGVycm9yOiBtaXNzaW5nIGJpbmFyeSBvcGVyYXRvciBiZWZvcmUgdG9rZW4gIigiCisrLy8gICNp ZiBOR1JFRyA9PSAxNgorKy8vICAgICAgIF5+fn5+CisrLy8KKysvLyBUaGUgTkdSRUcgaXMgMTgg KGJpdHMvc2lnbmFsLmg6MTApLCBzbyBmb3JjZSBpdCB0byB0aGF0IHZhbHVlLgorKyNpZmRlZiBO R1JFRworKyMgIHVuZGVmIE5HUkVHCisrI2VuZGlmCisrI2RlZmluZSBOR1JFRyAxOAorKworICNk ZWZpbmUgU1BFTExfUkVHX1NQICAic3AiCisgCisgLy8gRG9uJ3QgI2RlZmluZSBTUEVMTF9SRUdf RlAgZm9yIHRodW1iIGJlY2F1c2UgaXQgaXMgbm90IHNhZmUgdG8gdXNlLCBzbyB0aGlzIG1ha2Vz IHN1cmUgd2UgbmV2ZXIgZmV0Y2ggaXQuCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9vcGVuamRr MTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjhlMjM5YmZlNzg2MwotLS0gL2Rldi9udWxsCisr KyBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQu cGF0Y2gKQEAgLTAsMCArMSwzODcgQEAKK2RpZmYgLS1naXQgYS9tYWtlL1JlbGVhc2VGaWxlLmdt ayBiL21ha2UvUmVsZWFzZUZpbGUuZ21rCistLS0gYS9tYWtlL1JlbGVhc2VGaWxlLmdtaworKysr IGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01Myw2ICs1Myw3IEBAIGRlZmluZSBjcmVhdGUt aW5mby1maWxlCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJKQVZBX1ZFUlNJT05fREFURSIs ICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfTkFNRSIs ICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJP U19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FSQ0gpIikKKysgICQoY2FsbCBpbmZvLWZpbGUt aXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYKKyAKKyAjIFBhcmFtIDEgLSBUaGUgZmlsZSBj b250YWluaW5nIHRoZSBNT0RVTEVTIGxpc3QKK2RpZmYgLS1naXQgYS9tYWtlL2hvdHNwb3QvbGli L0NvbXBpbGVKdm0uZ21rIGIvbWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworLS0tIGEv bWFrZS9ob3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworKysrIGIvbWFrZS9ob3RzcG90L2xpYi9D b21waWxlSnZtLmdtaworQEAgLTcxLDYgKzcxLDcgQEAgQ0ZMQUdTX1ZNX1ZFUlNJT04gOj0gXAor ICAgICAtREhPVFNQT1RfQlVJTERfVVNFUj0nIiQoVVNFUk5BTUUpIicgXAorICAgICAtREhPVFNQ T1RfVk1fRElTVFJPPSciJChIT1RTUE9UX1ZNX0RJU1RSTykiJyBcCisgICAgIC1EQ1BVPSciJChP UEVOSkRLX1RBUkdFVF9DUFVfVk1fVkVSU0lPTikiJyBcCisrICAgIC1ETElCQz0nIm11c2wiJyBc CisgICAgICMKKyAKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworZGlmZiAtLWdpdCBhL21ha2Uv bGliL0NvcmVMaWJyYXJpZXMuZ21rIGIvbWFrZS9saWIvQ29yZUxpYnJhcmllcy5nbWsKKy0tLSBh L21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCisrKysgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVz LmdtaworQEAgLTE5NCw2ICsxOTQsNyBAQCBpZmVxICgkKE9QRU5KREtfVEFSR0VUX09TKSwgd2lu ZG93cykKKyBlbmRpZgorIAorIExJQkpMSV9DRkxBR1MgKz0gJChMSUJaX0NGTEFHUykKKytMSUJK TElfQ0ZMQUdTICs9IC1ETElCQz1cIm11c2xcIgorIAorIGlmbmVxICgkKFVTRV9FWFRFUk5BTF9M SUJaKSwgdHJ1ZSkKKyAgIExJQkpMSV9FWFRSQV9GSUxFUyArPSBcCitkaWZmIC0tZ2l0IGEvc3Jj L2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwIGIvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3Nf bGludXguY3BwCistLS0gYS9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKKysrKyBi L3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorQEAgLTk5LDcgKzk5LDYgQEAKKyAj IGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVkZSA8c3lzY2FsbC5oPgorICMgaW5jbHVkZSA8 c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdudS9saWJjLXZlcnNpb24uaD4KKyAjIGluY2x1 ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxpbmsu aD4KK0BAIC01MTksNiArNTE4LDExIEBAIHZvaWQgb3M6OkxpbnV4Ojpob3RzcG90X3NpZ21hc2so VGhyZWFkKiB0aHJlYWQpIHsKKyAvLyBkZXRlY3RpbmcgcHRocmVhZCBsaWJyYXJ5CisgCisgdm9p ZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKysjaWYgIWRlZmluZWQoX19HTElCQ19f KSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAgLy8gSGFyZCBjb2RlIEFscGluZSBMaW51eCBz dXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRpbmdzCisrICBvczo6TGludXg6OnNldF9nbGli Y192ZXJzaW9uKCJnbGliYyAyLjkiKTsKKysgIG9zOjpMaW51eDo6c2V0X2xpYnB0aHJlYWRfdmVy c2lvbigiTlBUTCIpOworKyNlbHNlCisgICAvLyBTYXZlIGdsaWJjIGFuZCBwdGhyZWFkIHZlcnNp b24gc3RyaW5ncy4KKyAjaWYgIWRlZmluZWQoX0NTX0dOVV9MSUJDX1ZFUlNJT04pIHx8IFwKKyAg ICAgIWRlZmluZWQoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04pCitAQCAtNTM2LDYgKzU0MCw3 IEBAIHZvaWQgb3M6OkxpbnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7CisgICBzdHIgPSAoY2hhciAq KW1hbGxvYyhuLCBtdEludGVybmFsKTsKKyAgIGNvbmZzdHIoX0NTX0dOVV9MSUJQVEhSRUFEX1ZF UlNJT04sIHN0ciwgbik7CisgICBvczo6TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oc3Ry KTsKKysjZW5kaWYKKyB9CisgCisgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KK0BAIC0yODU1LDIwICsy ODYwLDM2IEBAIHZvaWQgb3M6OkxpbnV4OjpzY2hlZF9nZXRjcHVfaW5pdCgpIHsKKyBleHRlcm4g IkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfd2FybihpbnQgbnVtYmVyLCBjaGFyICp3aGVyZSwgLi4u KSB7IH0KKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFfZXJyb3IoY2hhciAqd2hlcmUp IHsgfQorIAorK3N0YXRpYyB2b2lkKiBkbHZzeW1faWZfYXZhaWxhYmxlKHZvaWQqIGhhbmRsZSwg Y29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmVyc2lvbikgeworKyAgdHlwZWRlZiB2b2lk KiAoKmRsdnN5bV9mdW5jX3R5cGUpKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSwgY29u c3QgY2hhciogdmVyc2lvbik7CisrICBzdGF0aWMgZGx2c3ltX2Z1bmNfdHlwZSBkbHZzeW1fZnVu YzsKKysgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CisrCisrICBpZiAoIWluaXRp YWxpemVkKSB7CisrICAgIGRsdnN5bV9mdW5jID0gKGRsdnN5bV9mdW5jX3R5cGUpZGxzeW0oUlRM RF9ORVhULCAiZGx2c3ltIik7CisrICAgIGluaXRpYWxpemVkID0gdHJ1ZTsKKysgIH0KKysKKysg IGlmIChkbHZzeW1fZnVuYyAhPSBOVUxMKSB7CisrICAgIHZvaWQgKmYgPSBkbHZzeW1fZnVuYyho YW5kbGUsIG5hbWUsIHZlcnNpb24pOworKyAgICBpZiAoZiAhPSBOVUxMKSB7CisrICAgICAgcmV0 dXJuIGY7CisrICAgIH0KKysgIH0KKysKKysgIHJldHVybiBkbHN5bShoYW5kbGUsIG5hbWUpOwor K30KKysKKyAvLyBIYW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24g MS4xIChBUEkgdjEpLiBJZiBpdCBmYWlscworIC8vIGxvYWQgc3ltYm9sIGZyb20gYmFzZSB2ZXJz aW9uIGluc3RlYWQuCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX2Rsc3ltKHZvaWQqIGhhbmRs ZSwgY29uc3QgY2hhciAqbmFtZSkgeworLSAgdm9pZCAqZiA9IGRsdnN5bShoYW5kbGUsIG5hbWUs ICJsaWJudW1hXzEuMSIpOworLSAgaWYgKGYgPT0gTlVMTCkgeworLSAgICBmID0gZGxzeW0oaGFu ZGxlLCBuYW1lKTsKKy0gIH0KKy0gIHJldHVybiBmOworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFp bGFibGUoaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKyB9CisgCisgLy8gSGFuZGxlIHJl cXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMiAoQVBJIHYyKSBvbmx5Lgor IC8vIFJldHVybiBOVUxMIGlmIHRoZSBzeW1ib2wgaXMgbm90IGRlZmluZWQgaW4gdGhpcyBwYXJ0 aWN1bGFyIHZlcnNpb24uCisgdm9pZCogb3M6OkxpbnV4OjpsaWJudW1hX3YyX2Rsc3ltKHZvaWQq IGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSkgeworLSAgcmV0dXJuIGRsdnN5bShoYW5kbGUsIG5h bWUsICJsaWJudW1hXzEuMiIpOworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFibGUoaGFuZGxl LCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKyB9CisgCisgYm9vbCBvczo6TGludXg6OmxpYm51bWFf aW5pdCgpIHsKK2RpZmYgLS1naXQgYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xp bnV4X3g4Ni5jcHAgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5j cHAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAor KysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAt NzUsOSArNzUsNiBAQAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+Cisg IyBpbmNsdWRlIDx1Y29udGV4dC5oPgorLSNpZm5kZWYgQU1ENjQKKy0jIGluY2x1ZGUgPGZwdV9j b250cm9sLmg+CistI2VuZGlmCisgCisgI2lmZGVmIEFNRDY0CisgI2RlZmluZSBSRUdfU1AgUkVH X1JTUAorZGlmZiAtLWdpdCBhL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0 ZWRIZWFwLmNwcCBiL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFw LmNwcAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAu Y3BwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5j cHAKK0BAIC0xMTQ4LDcgKzExNDgsNyBAQCBIZWFwV29yZCogR2VuQ29sbGVjdGVkSGVhcDo6YWxs b2NhdGVfbmV3X3RsYWIoc2l6ZV90IG1pbl9zaXplLAorIHN0YXRpYyBTY3JhdGNoQmxvY2sgKnJl bW92ZVNtYWxsZXN0U2NyYXRjaChTY3JhdGNoQmxvY2sgKipwcmV2X3B0cikgeworICAgYm9vbCBm aXJzdCA9IHRydWU7CisgICBzaXplX3QgbWluX3NpemUgPSAwOyAgIC8vICJmaXJzdCIgbWFrZXMg dGhpcyBjb25jZXB0dWFsbHkgaW5maW5pdGUuCistICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9w dHIsICpzbWFsbGVzdDsKKysgIFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0ciA9IE5VTEwsICpz bWFsbGVzdDsKKyAgIFNjcmF0Y2hCbG9jayAgKmN1ciA9ICpwcmV2X3B0cjsKKyAgIHdoaWxlIChj dXIpIHsKKyAgICAgYXNzZXJ0KCpwcmV2X3B0ciA9PSBjdXIsICJqdXN0IGNoZWNraW5nIik7Citk aWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS92bV92ZXJzaW9uLmNwcCBiL3Ny Yy9ob3RzcG90L3NoYXJlL3J1bnRpbWUvdm1fdmVyc2lvbi5jcHAKKy0tLSBhL3NyYy9ob3RzcG90 L3NoYXJlL3J1bnRpbWUvdm1fdmVyc2lvbi5jcHAKKysrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3J1 bnRpbWUvdm1fdmVyc2lvbi5jcHAKK0BAIC0yNzAsNyArMjcwLDcgQEAgY29uc3QgY2hhciogQWJz dHJhY3RfVk1fVmVyc2lvbjo6aW50ZXJuYWxfdm1faW5mb19zdHJpbmcoKSB7CisgICAjZW5kaWYK KyAKKyAgICNkZWZpbmUgSU5URVJOQUxfVkVSU0lPTl9TVUZGSVggVk1fUkVMRUFTRSAiKSIgXAor LSAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBcCisrICAgICAgICAg IiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIExJQkMgXAorICAgICAgICAgICIgSlJF ICgiIFZFUlNJT05fU1RSSU5HICIpLCBidWlsdCBvbiAiIF9fREFURV9fICIgIiBfX1RJTUVfXyBc CisgICAgICAgICAgIiBieSAiIFhTVFIoSE9UU1BPVF9CVUlMRF9VU0VSKSAiIHdpdGggIiBIT1RT UE9UX0JVSUxEX0NPTVBJTEVSCisgCitkaWZmIC0tZ2l0IGEvc3JjL2hvdHNwb3Qvc2hhcmUvdXRp bGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAgYi9zcmMvaG90c3BvdC9zaGFyZS91dGls aXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUv dXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKKysrKyBiL3NyYy9ob3RzcG90L3No YXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCitAQCAtMjA0LDcgKzIwNCw3 IEBAIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW5kKGYpOyB9Cisg I2VsaWYgZGVmaW5lZChfX0FQUExFX18pCisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7 IHJldHVybiBpc25hbihmKTsgfQorICNlbGlmIGRlZmluZWQoTElOVVgpIHx8IGRlZmluZWQoX0FM TEJTRF9TT1VSQ0UpCistaW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25h bmYoZik7IH0KKytpbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFuKGYp OyB9CisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQor ICNlbHNlCisgI2Vycm9yICJtaXNzaW5nIHBsYXRmb3JtLXNwZWNpZmljIGRlZmluaXRpb24gaGVy ZSIKK2RpZmYgLS1naXQgYS9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhf Y2xvc2UuYyBiL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9jbG9zZS5j CistLS0gYS9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2UuYwor KysrIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMKK0BA IC02MCw3ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKKyAvKgorICAqIFNpZ25hbCB0byB1bmJs b2NrIHRocmVhZAorICAqLworLXN0YXRpYyBpbnQgc2lnV2FrZXVwID0gKF9fU0lHUlRNQVggLSAy KTsKKytzdGF0aWMgaW50IHNpZ1dha2V1cDsKKyAKKyAvKgorICAqIGZkVGFibGUgaG9sZHMgb25l IGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEgY2VydGFpbgorQEAgLTE0OSw2ICsx NDksNyBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZSgoY29uc3RydWN0b3IpKSBpbml0KCkgewor ICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2lnbmFsIGhhbmRsZXIKKyAgICAgICovCisrICAg IHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAgICAgc2Euc2FfaGFuZGxlciA9IHNpZ193YWtl dXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOworICAgICBzaWdlbXB0eXNldCgmc2Euc2FfbWFz ayk7CitkaWZmIC0tZ2l0IGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxk cHJvYy5jIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCist LS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMKKysrKyBi L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYworQEAgLTIzNCw3 ICsyMzQsMTMgQEAgSkRLX2V4ZWN2cGUoaW50IG1vZGUsIGNvbnN0IGNoYXIgKmZpbGUsCisgewor ICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFyICoqKSBlbnZwID09IGVudmlyb24pIHsKKyAg ICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikgYXJndik7CistICAgICAgICByZXR1cm47Cisr ICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0aGF0IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90 IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAgICAgIC8vIGxpYnJhcnkgZG9lcyBub3QgaW1w bGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3NoIGZvciB0aGF0IGNhc2UsIHNvIGZhbGwKKysg ICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUgYmVsb3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0 IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBleGVjdmVfd2l0aF9zaGVsbF9mYWxsYmFjay4K KysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVDKSB7CisrICAgICAgICAgICAgcmV0dXJuOwor KyAgICAgICAgfQorICAgICB9CisgCisgICAgIGlmICgqZmlsZSA9PSAnXDAnKSB7CitkaWZmIC0t Z2l0IGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmggYi9z cmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAorLS0tIGEvc3Jj L2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKKysrKyBiL3NyYy9q YXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRpbF9tZC5oCitAQCAtMzcsNyArMzcs NyBAQAorICNkZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCisgI2VsaWYgZGVmaW5lZChfX2xpbnV4 X18pIHx8IGRlZmluZWQoX0FMTEJTRF9TT1VSQ0UpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0jZGVm aW5lIElTTkFORihmKSBpc25hbmYoZikKKysjZGVmaW5lIElTTkFORihmKSBpc25hbihmKQorICNk ZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCisgI2VsaWYgZGVmaW5lZChfQUlYKQorICNpbmNsdWRl IDxtYXRoLmg+CitkaWZmIC0tZ2l0IGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkv amF2YV9tZF9zb2xpbnV4LmMgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZh X21kX3NvbGludXguYworLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2 YV9tZF9zb2xpbnV4LmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2ph dmFfbWRfc29saW51eC5jCitAQCAtMjM1LDYgKzIzNSwzOSBAQCBSZXF1aXJlc1NldGVudihjb25z dCBjaGFyICpqdm1wYXRoKSB7CisgICAgIGNoYXIgKmRtbGxwID0gTlVMTDsKKyAgICAgY2hhciAq cDsgLyogYSB1dGlsaXR5IHBvaW50ZXIgKi8KKyAKKysjaWZkZWYgX19saW51eAorKyNpZm5kZWYg TElCQworKyNlcnJvciAiTElCQyBub3Qgc2V0IgorKyNlbmRpZgorKworKyAgICBpZiAoc3RyY21w KExJQkMsICJtdXNsIikgPT0gMCkgeworKyAgICAgIC8qCisrICAgICAgICogVGhlIG11c2wgbGli cmFyeSBsb2FkZXIgcmVxdWlyZXMgTERfTElCUkFSWV9QQVRIIHRvIGJlIHNldCBpbgorKyAgICAg ICAqIG9yZGVyIHRvIGNvcnJlY3RseSByZXNvbHZlIHRoZSBkZXBlbmRlbmN5IGxpYmphdmEuc28g aGFzIG9uIGxpYmp2bS5zby4KKysgICAgICAgKgorKyAgICAgICAqIFNwZWNpZmljYWxseSwgaXQg ZGlmZmVycyBmcm9tIGdsaWJjIGluIHRoZSBzZW5zZSB0aGF0IGV2ZW4gaWYKKysgICAgICAgKiBs aWJqdm0uc28gaGFzIGFscmVhZHkgYmVlbiBsb2FkZWQgaXQgd2lsbCBub3QgYmUgY29uc2lkZXJl ZCBhCisrICAgICAgICogY2FuZGlkYXRlIGZvciByZXNvbHZpbmcgdGhlIGRlcGVuZGVuY3kgdW5s ZXNzIHRoZSAqZnVsbCogcGF0aAorKyAgICAgICAqIG9mIHRoZSBhbHJlYWR5IGxvYWRlZCBsaWJy YXJ5IG1hdGNoZXMgdGhlIGRlcGVuZGVuY3kgYmVpbmcgbG9hZGVkLgorKyAgICAgICAqCisrICAg ICAgICogbGlianZtLnNvIGlzIGJlaW5nIGxvYWRlZCBieSB0aGUgbGF1bmNoZXIgdXNpbmcgYSBs b25nIHBhdGggdG8KKysgICAgICAgKiBkbG9wZW4sIG5vdCBqdXN0IHRoZSBiYXNlbmFtZSBvZiB0 aGUgbGlicmFyeS4gVHlwaWNhbGx5IHRoaXMKKysgICAgICAgKiBpcyBzb21ldGhpbmcgbGlrZSAi Li4vbGliL3NlcnZlci9saWJqdm0uc28iLiBIb3dldmVyLCBpZi93aGVuCisrICAgICAgICogbGli anZtLnNvIGxhdGVyIHRyaWVzIHRvIGRsb3BlbiBsaWJqYXZhLnNvICh3aGljaCBpdCBkb2VzIGlu CisrICAgICAgICogb3JkZXIgdG8gZ2V0IGFjY2VzcyB0byBhIGZldyBmdW5jdGlvbnMgaW1wbGVt ZW50ZWQgaW4KKysgICAgICAgKiBsaWJqYXZhLnNvKSB0aGUgbXVzbCBsb2FkZXIgd2lsbCwgYXMg cGFydCBvZiBsb2FkaW5nCisrICAgICAgICogZGVwZW5kZW50IGxpYnJhcmllcywgdHJ5IHRvIGxv YWQgbGlianZtLnNvIHVzaW5nIG9ubHkgaXRzCisrICAgICAgICogYmFzZW5hbWUgImxpYmp2bS5z byIuIFNpbmNlIHRoaXMgZG9lcyBub3QgbWF0Y2ggdGhlIGxvbmdlcgorKyAgICAgICAqIHBhdGgg cGF0aCBpdCB3YXMgZmlyc3QgbG9hZGVkIHdpdGgsIHRoZSBhbHJlYWR5IGxvYWRlZAorKyAgICAg ICAqIGxpYnJhcnkgaXMgbm90IGNvbnNpZGVyZWQgYSBjYW5kaWRhdGUsIGFuZCB0aGUgbG9hZGVy IHdpbGwKKysgICAgICAgKiBpbnN0ZWFkIGxvb2sgZm9yIGxpYmp2bS5zbyBlbHNld2hlcmUuIElm IGl0J3Mgbm90IGluCisrICAgICAgICogTERfTElCUkFSWV9QQVRIIHRoZSBkZXBlbmRlbmN5IGxv YWQgd2lsbCBmYWlsLCBhbmQgbGliamF2YS5zbworKyAgICAgICAqIHdpbGwgdGhlcmVmb3JlIGZh aWwgYXMgd2VsbC4KKysgICAgICAgKi8KKysgICAgICByZXR1cm4gSk5JX1RSVUU7CisrICAgIH0K KysjZW5kaWYKKysKKyAjaWZkZWYgQUlYCisgICAgIC8qIFdlIGFsd2F5cyBoYXZlIHRvIHNldCB0 aGUgTElCUEFUSCBvbiBBSVggYmVjYXVzZSBsZCBkb2Vzbid0IHN1cHBvcnQgJE9SSUdJTi4gKi8K KyAgICAgcmV0dXJuIEpOSV9UUlVFOworZGlmZiAtLWdpdCBhL3NyYy9qYXZhLmJhc2UvdW5peC9u YXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2 ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRp dmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0 aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworQEAgLTM2LDcgKzM2LDcgQEAKKyAjaWZkZWYg X19saW51eF9fCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGlu IG5ldC9saW51eF9jbG9zZS5jICovCistICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKF9fU0lH UlRNQVggLSAyKQorKyAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFMIChTSUdSVE1BWCAtIDIpCisg I2VsaWYgZGVmaW5lZChfQUlYKQorICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAgIC8qIEFsc28g ZGVmaW5lZCBpbiBuZXQvYWl4X2Nsb3NlLmMgKi8KK2RpZmYgLS1naXQgYS9zcmMvamF2YS5kZXNr dG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYyBiL3NyYy9qYXZhLmRl c2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCistLS0gYS9zcmMv amF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworKysr IGIvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94YXd0L1hUb29sa2l0 LmMKK0BAIC0yNyw5ICsyNyw2IEBACisgI2luY2x1ZGUgPFgxMS9YdXRpbC5oPgorICNpbmNsdWRl IDxYMTEvWG9zLmg+CisgI2luY2x1ZGUgPFgxMS9YYXRvbS5oPgorLSNpZmRlZiBfX2xpbnV4X18K Ky0jaW5jbHVkZSA8ZXhlY2luZm8uaD4KKy0jZW5kaWYKKyAKKyAjaW5jbHVkZSA8anZtLmg+Cisg I2luY2x1ZGUgPGpuaS5oPgorQEAgLTc5MSwyNiArNzg4LDYgQEAgSk5JRVhQT1JUIGpzdHJpbmcg Sk5JQ0FMTCBKYXZhX3N1bl9hd3RfWDExX1hUb29sa2l0X2dldEVudgorICAgICByZXR1cm4gcmV0 OworIH0KKyAKKy0jaWZkZWYgX19saW51eF9fCistdm9pZCBwcmludF9zdGFjayh2b2lkKQorLXsK Ky0gIHZvaWQgKmFycmF5WzEwXTsKKy0gIHNpemVfdCBzaXplOworLSAgY2hhciAqKnN0cmluZ3M7 CistICBzaXplX3QgaTsKKy0KKy0gIHNpemUgPSBiYWNrdHJhY2UgKGFycmF5LCAxMCk7CistICBz dHJpbmdzID0gYmFja3RyYWNlX3N5bWJvbHMgKGFycmF5LCBzaXplKTsKKy0KKy0gIGZwcmludGYg KHN0ZGVyciwgIk9idGFpbmVkICV6ZCBzdGFjayBmcmFtZXMuXG4iLCBzaXplKTsKKy0KKy0gIGZv ciAoaSA9IDA7IGkgPCBzaXplOyBpKyspCistICAgICBmcHJpbnRmIChzdGRlcnIsICIlc1xuIiwg c3RyaW5nc1tpXSk7CistCistICBmcmVlIChzdHJpbmdzKTsKKy19CistI2VuZGlmCistCisgV2lu ZG93IGdldF94YXd0X3Jvb3Rfc2hlbGwoSk5JRW52ICplbnYpIHsKKyAgIHN0YXRpYyBqY2xhc3Mg Y2xhc3NYUm9vdFdpbmRvdyA9IE5VTEw7CisgICBzdGF0aWMgam1ldGhvZElEIG1ldGhvZEdldFhS b290V2luZG93ID0gTlVMTDsKK2RpZmYgLS1naXQgYS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUv bmF0aXZlL2xpYmpkd3AvdXRpbC5oIGIvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9s aWJqZHdwL3V0aWwuaAorLS0tIGEvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJq ZHdwL3V0aWwuaAorKysrIGIvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdw L3V0aWwuaAorQEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAgICAvKiBKdXN0 IHRvIG1ha2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJlLiAqLworICAg ICAjdW5kZWYgZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0aGlzIGludGVy ZmFjZS4KKysgICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfZnJlZQor ICAgICAjdW5kZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1c2UgdGhp cyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZh Y2VfbWFsbG9jCisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxsb2MocCkgRG8g bm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9fbm90X3VzZV90 aGlzX2ludGVyZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAgI2RlZmluZSBy ZWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgcmVhbGxv YyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0cmR1cAor LSAgICAjZGVmaW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAj ZGVmaW5lIHN0cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAorICNlbmRpZgor IAorICNpbmNsdWRlICJsb2dfbWVzc2FnZXMuaCIKK2RpZmYgLS1naXQgYS90ZXN0L2hvdHNwb3Qv anRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMgYi90ZXN0L2hvdHNwb3Qv anRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMKKy0tLSBhL3Rlc3QvaG90 c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworKysrIGIvdGVz dC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAt MzMsNiArMzMsNyBAQAorIAorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+ CisrI2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2ln bmFsLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgorQEAgLTkxLDYgKzkyLDIwIEBAIHZvaWQgc2V0 X3NpZ25hbF9oYW5kbGVyKCkgeworICAgfQorIH0KKyAKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXpl ICgpIHsKKysgIHNpemVfdCBzdGFja3NpemU7CisrICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAg SkRLMV8xSW5pdEFyZ3MgamRrX2FyZ3M7CisrCisrICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZF UlNJT05fMV8xOworKyAgSk5JX0dldERlZmF1bHRKYXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOwor KyAgaWYgKGpka19hcmdzLmphdmFTdGFja1NpemUgPD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVy ciwgIlRlc3QgRVJST1IuIENhbid0IGdldCBhIHZhbGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBz dGFja3NpemUuXG4iKTsKKysgICAgZXhpdCg3KTsKKysgIH0KKysgIHJldHVybiBqZGtfYXJncy5q YXZhU3RhY2tTaXplOworK30KKysKKyB2b2lkICpydW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkg eworICAgSk5JRW52ICplbnY7CisgICBqY2xhc3MgY2xhc3NfaWQ7CitAQCAtMjU0LDEzICsyNjks MTkgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBleGl0 KDcpOworICAgfQorIAorKyAgaW50IHN0YWNrX3NpemUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsK KyAgIHB0aHJlYWRfdCB0aHI7CisrICBwdGhyZWFkX2F0dHJfdCB0aHJlYWRfYXR0cjsKKysKKysg IHB0aHJlYWRfYXR0cl9pbml0KCZ0aHJlYWRfYXR0cik7CisrICBwdGhyZWFkX2F0dHJfc2V0c3Rh Y2tzaXplKCZ0aHJlYWRfYXR0ciwgc3RhY2tfc2l6ZSk7CisgCisgICBpZiAoYXJnYyA+IDEgJiYg c3RyY21wKGFyZ3ZbMV0sICJ0ZXN0X2phdmFfb3ZlcmZsb3ciKSA9PSAwKSB7CisgICAgIHByaW50 ZigiXG5UZXN0aW5nIEpBVkFfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcg c3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0 aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisr ICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93 LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYo IlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4i KTsKK0BAIC0yNzMsNyArMjk0LDcgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiog YXJndikgeworICAgICBwcmludGYoIlxuVGVzdGluZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworIAor ICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVy IHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZl X292ZXJmbG93LCBOVUxMKTsKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0 ciwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBO VUxMKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3Vy IGZvciBpbml0aWFsIHRocmVhZFxuIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxMy1i b290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazEz LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDMwNmQ1MDFlNGI4Ci0tLSAvZGV2L251bGwKKysrIGIv c3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gK QEAgLTAsMCArMSw0NSBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFscGluZSBsaW51 eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lkPThhMWFlMTdk NGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1 L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMv bWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAorQEAgLTQ3LDYgKzQ3LDggQEAKKyAjaW5jbHVkZSAib3B0 by9pbnRyaW5zaWNub2RlLmhwcCIKKyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5o PgorKworICNpZmRlZiBQUk9EVUNUCisgI2RlZmluZSBCTE9DS19DT01NRU5UKHN0cikgLy8gbm90 aGluZworICNlbHNlCistLS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMu Y3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCitAQCAt ODQ1LDcgKzg0NSw3IEBAIHZvaWQgVk1fVmVyc2lvbjo6ZGV0ZXJtaW5lX2ZlYXR1cmVzKCkgewor ICAgdW5zaWduZWQgbG9uZyBhdXh2ID0gZ2V0YXV4dmFsKEFUX0hXQ0FQMik7CisgCisgICBpZiAo YXV4diAmIFBQQ19GRUFUVVJFMl9IVE1fTk9TQykgeworLSAgICBpZiAoYXV4diAmIFBQQ19GRUFU VVJFMl9IQVNfSFRNKSB7CisrICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hUTSkgeworICAg ICAgIC8vIFRNIG9uIFBPV0VSOCBhbmQgUE9XRVI5IGluIGNvbXBhdCBtb2RlIChWTSkgaXMgc3Vw cG9ydGVkIGJ5IHRoZSBKVk0uCisgICAgICAgLy8gVE0gb24gUE9XRVI5IEREMi4xIE5WIChiYXJl bWV0YWwpIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIEpWTSAoVE0gb24KKyAgICAgICAvLyBQT1dF UjkgREQyLjEgTlYgaGFzIGEgZmV3IGlzc3VlcyB0aGF0IG5lZWQgYSBjb3VwbGUgb2YgZmlybXdh cmUKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3Bw CisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhfcHBjLmNwcAor QEAgLTc1LDcgKzc1LDcgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5o PgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0KKysjIGluY2x1ZGUgPGFzbS9wdHJhY2UuaD4K KyAKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgICBpbnRwdHJfdCog Y3NwOworLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVhZF9saW51eF9w cGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4 X3BwYy5jcHAKK0BAIC0yMyw2ICsyMyw4IEBACisgICoKKyAgKi8KKyAKKysjaW5jbHVkZSA8YXNt L3B0cmFjZS5oPgorKworICNpbmNsdWRlICJwcmVjb21waWxlZC5ocHAiCisgI2luY2x1ZGUgInJ1 bnRpbWUvZnJhbWUuaW5saW5lLmhwcCIKKyAjaW5jbHVkZSAicnVudGltZS90aHJlYWQuaHBwIgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy94ODYucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxMy1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRj aGVzL3g4Ni5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjlj NjRjMTg5MDM2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJh cC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVz IGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51 eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdl MjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4 Ni5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYu Y3BwCitAQCAtOTAsNiArOTAsMTI2IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAj ZW5kaWYgLy8gQU1ENjQKKworKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRha2VuIGZy b20gZ2xpYmMgMi4yOAorKy8vIHNvdXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9 Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5 YjI4OTdmZjRlNTgyNmQyMjhjYmE2YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2 NTNjYTM5MmJiYTdhOTljMmIKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFN RDY0CisrLyogRlBVIGNvbnRyb2wgd29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJp Z2h0IChDKSAxOTkzLTIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhp cyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkg T2xhZiBGbGViYmUuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNp b24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz aW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3 aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkg b3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExl c3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91 IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1 YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBz ZWUKKysgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYg X0ZQVV9DT05UUk9MX0gKKysjZGVmaW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRo YXQgdGhpcyBmaWxlIHNldHMgb24geDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90 CisrICAgdG91Y2ggdGhlIFNTRSB1bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBw YXJ0LiBTZXQgdXAgeW91ciAzODcgdGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICogKGN3KSBy ZWdpc3Rlci4KKysgKgorKyAqICAgICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAg ICA1ICAgIDQgICAgMyAgICAyICAgIDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8 IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElN OiBJbnZhbGlkIG9wZXJhdGlvbiBtYXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1h c2sKKysgKiBaTTogWmVyby1kaXZpZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICog VU06IFVuZGVyZmxvdyBtYXNrCisrICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1h c2sKKysgKgorKyAqIE1hc2sgYml0IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAqCisrICog UEM6IFByZWNpc2lvbiBjb250cm9sCisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNp b24KKysgKiAxMCAtIHJvdW5kIHRvIGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRv IHNpbmdsZSBwcmVjaXNpb24KKysgKgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisrICogMDAg LSByb3VuZGluZyB0byBuZWFyZXN0CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBp bmZpbml0eSkKKysgKiAxMCAtIHJvdW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAx MSAtIHJvdW5kaW5nIHRvd2FyZCB6ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29udHJvbAor KyAqIFRoYXQgaXMgZm9yIDgwODcgYW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdh cmUgZGVmYXVsdCBpcyAweDAzN2Ygd2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNsdWRlIDxm ZWF0dXJlcy5oPgorKworKy8qIG1hc2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQ VV9NQVNLX0lNICAweDAxCisrI2RlZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9G UFVfTUFTS19aTSAgMHgwNAorKyNkZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2RlZmluZSBf RlBVX01BU0tfVU0gIDB4MTAKKysjZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKworKy8qIHBy ZWNpc2lvbiBjb250cm9sICovCisrI2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0g cmVxdWlyZXMgZG91YmxlIGV4dGVuZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RP VUJMRSAgIDB4MjAwCisrI2RlZmluZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5n IGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5E RUQgKi8KKysjZGVmaW5lIF9GUFVfUkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19V UCAgICAgIDB4ODAwCisrI2RlZmluZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5l IF9GUFVfUkVTRVJWRUQgMHhGMEMwICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisrCisrCisr LyogVGhlIGZkbGlibSBjb2RlIHJlcXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24g YXJpdGhtZXRpYywKKysgICBhbmQgbm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRp bmcgdG8gbmVhcmVzdC4gICovCisrCisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKwor Ky8qIElFRUU6ICBzYW1lIGFzIGFib3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgw MzdmCisrCisrLyogVHlwZSBvZiB0aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2ln bmVkIGludCBmcHVfY29udHJvbF90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkp OworKworKy8qIE1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQu ICAiKiYiIGlzIHVzZWQgdG8KKysgICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9u cyBvZiBHQ0MuICBfX3ZvbGF0aWxlX18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRp b24gb2Ygd3JpdGluZyB0aGUgY29udHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJh Y2suICBXaXRob3V0IF9fdm9sYXRpbGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3Ig cmVhZGluZworKyAgIGJhY2sgdW5kZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5v dGUgdGhhdCB0aGUgdXNlIG9mIHRoZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3Jl IHdpdGgKKysgICByZWNlbnQgaGFyZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcg cG9pbnQgb3BlcmF0aW9ucyBhcmUKKysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5l cyB3aGljaCBoYXZlIHRoZWlyIG93biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4g ICovCisrI2RlZmluZSBfRlBVX0dFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3Rj dyAlMCIgOiAiPW0iICgqJmN3KSkKKysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192 b2xhdGlsZV9fICgiZmxkY3cgJTAiIDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1bHQgY29u dHJvbCB3b3JkIHNldCBhdCBzdGFydHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2Zw dV9jb250cm9sOworKworKyNlbmRpZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2VuZGlmIC8v IEFNRDY0CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9z dGFja19wb2ludGVyKCkgeworICNpZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAq ZXNwOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL3RlbXBsYXRlIGIv c3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uNDYyMGRhMWRkNGQwCi0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL3RlbXBsYXRlCkBAIC0wLDAgKzEsMTEzIEBACisjIFRl bXBsYXRlIGZpbGUgZm9yICdvcGVuamRrMTMtYm9vdHN0cmFwJworX2phdmFfdmVyPTEzCitfamF2 YV9taW5fdmVyPTAKK19qYXZhX3NlY192ZXI9NAorX2pka191cGRhdGU9OAorX2pka19ob21lPSJ1 c3IvbGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9IgorX2Jhc2VfdmVyc2lvbj0iJHtfamF2YV92 ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9zZWNfdmVyfSIKKworcGtnbmFtZT1vcGVuamRr MTMtYm9vdHN0cmFwCit2ZXJzaW9uPSIke19iYXNlX3ZlcnNpb259KyR7X2pka191cGRhdGV9Igor cmV2aXNpb249MQord3Jrc3JjPSJqZGske19qYXZhX3Zlcn11LWpkay0ke3ZlcnNpb259IgorYnVp bGRfc3R5bGU9Z251LWNvbmZpZ3VyZQorY29uZmlndXJlX2FyZ3M9IgorIC0tZGlzYWJsZS13YXJu aW5ncy1hcy1lcnJvcnMKKyAtLXByZWZpeD0ke1hCUFNfREVTVERJUn0vJHtwa2duYW1lfS0ke3Zl cnNpb259L3Vzci9saWIKKyAtLWVuYWJsZS11bmxpbWl0ZWQtY3J5cHRvCisgLS13aXRoLXpsaWI9 c3lzdGVtCisgLS13aXRoLWxpYmpwZWc9c3lzdGVtCisgLS13aXRoLWdpZmxpYj1zeXN0ZW0KKyAt LXdpdGgtbGlicG5nPXN5c3RlbQorIC0td2l0aC1sY21zPXN5c3RlbQorIC0td2l0aC1qdHJlZz1u bworIC0td2l0aC12ZXJzaW9uLWJ1aWxkPSRfamF2YV92ZXIKKyAtLXdpdGgtam9icz0kWEJQU19P UklHX01BS0VKT0JTCisgLS13aXRoLXZlbmRvci1uYW1lPVZvaWQKKyAtLXdpdGgtdmVuZG9yLXVy bD1odHRwczovL3ZvaWRsaW51eC5vcmcvCisgLS13aXRoLXZlbmRvci1idWctdXJsPWh0dHBzOi8v Z2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzCisgLS13aXRoLXZlbmRv ci12bS1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMv aXNzdWVzCisgLS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9vcGVuamRrMTIiCittYWtlX2J1 aWxkX2FyZ3M9ImltYWdlcyIKK21ha2VfY2hlY2tfdGFyZ2V0PSJ0ZXN0LWhvdHNwb3QtZ3Rlc3Qi Citob3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b21ha2UgYXV0b2NvbmYgY3BpbyB0YXIg dW56aXAgemlwIGNhLWNlcnRpZmljYXRlcworIGxpYnJlc3NsIHpsaWItZGV2ZWwgd2hpY2ggbWFr ZS1jYSBvcGVuamRrMTItYm9vdHN0cmFwIgorbWFrZWRlcGVuZHM9ImxpYlhyZW5kZXItZGV2ZWwg bGliWHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFuZHItZGV2ZWwKKyBnaWZsaWItZGV2ZWwg bGlianBlZy10dXJiby1kZXZlbCBjdXBzLWRldmVsIGZyZWV0eXBlLWRldmVsIGFsc2EtbGliLWRl dmVsCisgZm9udGNvbmZpZy1kZXZlbCB6bGliLWRldmVsIGxjbXMyLWRldmVsIgorcHJvdmlkZXM9 ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEtcnVudGltZS0ke3ZlcnNpb259XzEi CitzaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0IChib290c3RyYXAgdmVy c2lvbiAxMykiCittYWludGFpbmVyPSLEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5o cXhAZ21haWwuY29tPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0 cDovL29wZW5qZGsuamF2YS5uZXQvIgorZGlzdGZpbGVzPSJodHRwczovL2hnLm9wZW5qZGsuamF2 YS5uZXQvamRrLXVwZGF0ZXMvamRrJHtfamF2YV92ZXJ9dS9hcmNoaXZlL2pkay0ke3ZlcnNpb259 LnRhci5neiIKK2NoZWNrc3VtPTU2ODM2MzhkNTU3MWFlMWQ4ZDMxMzljZTdmZGMzZGIyNjgxMWY1 OTJkNGY1YTAyOWYxZTY2Y2VjZDg2NjYyNDUKK2xpYjMyZGlzYWJsZWQ9eWVzCitub2Nyb3NzPXll cworCisjIEJ1aWxkIGlzIHN0aWxsIHBhcmFsbGVsLCBidXQgZG9uJ3QgdXNlIC1qTi4KK2Rpc2Fi bGVfcGFyYWxsZWxfYnVpbGQ9eWVzCisKKyMgbm8gaG90c3BvdCBKSVQgZm9yIHBwYzMyCitjYXNl ICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGM2NCopIDs7CisJcHBjKikgX3VzZV96ZXJv PXllcyA7OworZXNhYworCitpZiBbIC1uICIkX3VzZV96ZXJvIiBdOyB0aGVuCisJbWFrZWRlcGVu ZHMrPSIgbGliZmZpLWRldmVsIgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1qdm0tdmFyaWFu dHM9emVybyIKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjKikgY29uZmln dXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrLWp2bWFyZ3M9LVhYOlRocmVhZFN0YWNrU2l6ZT0y NTYwIjs7CisJZXNhYworZmkKKworcG9zdF9leHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZpZ3Vy ZQorCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCXJtIC1yIHNy Yy9qZGsuaG90c3BvdC5hZ2VudAorCWZpCit9CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJFhC UFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9 Ii9tdXNsX3BhdGNoZXMvKi5wYXRjaDsgZG8KKwkJCW1zZ19ub3JtYWwgIkFwcGx5aW5nICR7ZiMk RklMRVNESVIvfVxuIgorCQkJcGF0Y2ggLXNsTnAxIC1pICIkZiIKKwkJZG9uZQorCWZpCit9CisK K2RvX2NvbmZpZ3VyZSgpIHsKKwlDRkxBR1M9JHtDRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99 CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKworCSMgZm9yY2Ug RUxGdjIgZm9yIHBwYzY0IGp1c3QgaW4gY2FzZQorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5F IiBpbgorCQlwcGM2NCopCisJCQlDRkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQlDWFhGTEFHUys9 IiAtREFCSV9FTEZ2MiIKKwkJCTs7CisJZXNhYworCisJY29uZmlndXJlX2FyZ3M9JHtjb25maWd1 cmVfYXJncy8tLXdpdGgtbGlidG9vbC1zeXNyb290PVwvdXNyXC9bYS16MC05XSotbGludXgtW2Et el0qL30KKwlpZiBbICIkWEJQU19DQ0FDSEUiIF07IHRoZW4KKwkJY29uZmlndXJlX2FyZ3MrPSIg LS1lbmFibGUtY2NhY2hlIgorCWZpCisJQ0M9Ii91c3IvYmluL2NjIgorCUNYWD0iL3Vzci9iaW4v YysrIgorCS4vY29uZmlndXJlICR7Y29uZmlndXJlX2FyZ3N9IFwKKwkJLS13aXRoLWV4dHJhLWNm bGFncz0iJENGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEtY3h4ZmxhZ3M9IiRDWFhGTEFHUyIgXAor CQktLXdpdGgtZXh0cmEtbGRmbGFncz0iJExERkxBR1MiIFwKKwkJUkVBREVMRj0kUkVBREVMRiBB Uj0kQVIgU1RSSVA9JFNUUklQIE5NPSROTSBcCisJCU9CSkRVTVA9JE9CSkRVTVAgT0JKQ09QWT0k T0JKQ09QWQorfQorCitwb3N0X2luc3RhbGwoKSB7CisJbXYgJHtERVNURElSfS91c3IvbGliL2p2 bS9vcGVuamRrLSR7X2Jhc2VfdmVyc2lvbn0taW50ZXJuYWwgJHtERVNURElSfS8kX2pka19ob21l CisJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KKwlybSAtZiAkREVTVERJUi8kX2pka19o b21lL2xpYi9zcmMuemlwCisJdmxpY2Vuc2UgQVNTRU1CTFlfRVhDRVBUSU9OCisJdmxpY2Vuc2Ug TElDRU5TRQorfQoKRnJvbSBjMzZhMWMyNjgyYzQzMTJkMDgzZDNmZmU3MzQxNThiOTk0MTFkNDVk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/PUM0PTkwbz1DMz1BMG49 MjBUcj1FMT1CQT1BN249MjBDPUMzPUI0bmc9MjBEYW5oPz0KIDxjb25nZGFuaHF4QGdtYWlsLmNv bT4KRGF0ZTogU2F0LCAxIEF1ZyAyMDIwIDA3OjUyOjE4ICswNzAwClN1YmplY3Q6IFtQQVRDSCA0 LzhdIE5ldyBwYWNrYWdlOiBvcGVuamRrMTQtMTQuMC4yKzEyCgotLS0KIHNyY3BrZ3Mvb3Blbmpk azE0LWRvYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL29wZW5qZGsx NC1zcmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL2ZpbGVzL211c2xfcGF0 Y2hlcy9hYXJjaDY0LnBhdGNoICAgICAgICAgIHwgIDEwICsKIC4uLi9vcGVuamRrMTQvZmlsZXMv bXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgICB8ICAyMSArCiAuLi4vb3BlbmpkazE0L2ZpbGVzL211 c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCAgfCAzNzIgKysrKysrKysrKysrKysrKysrCiAuLi4vb3Bl bmpkazE0L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2ggICAgfCAgNDUgKysrCiAuLi4vb3Bl bmpkazE0L2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggICAgfCAxMzAgKysrKysrCiBzcmNw a2dzL29wZW5qZGsxNC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAyMDMgKysrKysrKysr KwogOCBmaWxlcyBjaGFuZ2VkLCA3ODMgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTIwMDAw IHNyY3BrZ3Mvb3BlbmpkazE0LWRvYwogY3JlYXRlIG1vZGUgMTIwMDAwIHNyY3BrZ3Mvb3Blbmpk azE0LXNyYwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE0L2ZpbGVzL211c2xf cGF0Y2hlcy9hYXJjaDY0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRr MTQvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3Br Z3Mvb3BlbmpkazE0L2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE0L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC9maWxlcy9tdXNsX3BhdGNoZXMveDg2 LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTQvdGVtcGxhdGUKCmRp ZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNC1kb2MgYi9zcmNwa2dzL29wZW5qZGsxNC1kb2MK bmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAwMDAwLi4xYzZmZGRlMTk2NDYKLS0t IC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNC1kb2MKQEAgLTAsMCArMSBAQAorb3Bl bmpkazE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9v cGVuamRrMTQtc3JjIGIvc3JjcGtncy9vcGVuamRrMTQtc3JjCm5ldyBmaWxlIG1vZGUgMTIwMDAw CmluZGV4IDAwMDAwMDAwMDAwMC4uMWM2ZmRkZTE5NjQ2Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9vcGVuamRrMTQtc3JjCkBAIC0wLDAgKzEgQEAKK29wZW5qZGsxNApcIE5vIG5ld2xpbmUg YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE0L2ZpbGVzL211c2xf cGF0Y2hlcy9hYXJjaDY0LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTQvZmlsZXMvbXVzbF9wYXRj aGVzL2FhcmNoNjQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li5hYTZjNWQ0ZDJiZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNC9maWxl cy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIGIv c3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BA IC03NCw3ICs3NCw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4K KyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorIAor ICNkZWZpbmUgUkVHX0ZQIDI5CisgI2RlZmluZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvb3BlbmpkazE0L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggYi9zcmNwa2dzL29wZW5q ZGsxNC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uMTAyNDI4ZjEwZjMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9vcGVuamRrMTQvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApAQCAtMCwwICsxLDIxIEBA CistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKKysr KyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAorQEAgLTcz LDYgKzczLDE4IEBACisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorICMgaW5jbHVkZSA8YXNtL3B0 cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNrIGFzIHRoZSBvcmlnaW4gaWYgYmVsb3cgZG9lc250 IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8KKysvLyBvc19saW51eF9hcm0uY3BwOjExNDo1 OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0b3IgYmVmb3JlIHRva2VuICIoIgorKy8vICAj aWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+fgorKy8vCisrLy8gVGhlIE5HUkVHIGlzIDE4 IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2UgaXQgdG8gdGhhdCB2YWx1ZS4KKysjaWZkZWYg TkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRpZgorKyNkZWZpbmUgTkdSRUcgMTgKKysKKyAj ZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgorIAorIC8vIERvbid0ICNkZWZpbmUgU1BFTExfUkVH X0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5vdCBzYWZlIHRvIHVzZSwgc28gdGhpcyBtYWtl cyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQv ZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTQvZmlsZXMv bXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw MDAwMDAwMC4uNjBkZmRlYzMwYWJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRr MTQvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzcyIEBACistLS0g YS9tYWtlL1JlbGVhc2VGaWxlLmdtaworKysrIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01 Myw2ICs1Myw3IEBAIGRlZmluZSBjcmVhdGUtaW5mby1maWxlCisgICAkKGNhbGwgaW5mby1maWxl LWl0ZW0sICJKQVZBX1ZFUlNJT05fREFURSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxs IGluZm8tZmlsZS1pdGVtLCAiT1NfTkFNRSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisg ICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FS Q0gpIikKKysgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYK KyAKKyAjIFBhcmFtIDEgLSBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBNT0RVTEVTIGxpc3QKKy0t LSBhL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKKysrKyBiL21ha2UvaG90c3BvdC9s aWIvQ29tcGlsZUp2bS5nbWsKK0BAIC03Myw2ICs3Myw3IEBAIENGTEFHU19WTV9WRVJTSU9OIDo9 IFwKKyAgICAgLURIT1RTUE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJOQU1FKSInIFwKKyAgICAgLURI T1RTUE9UX1ZNX0RJU1RSTz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8pIicgXAorICAgICAtRENQVT0n IiQoT1BFTkpES19UQVJHRVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAorKyAgICAtRExJQkM9JyJtdXNs IicgXAorICAgICAjCisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0tLSBhL21ha2UvbGli L0NvcmVMaWJyYXJpZXMuZ21rCisrKysgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworQEAg LTE5MCw2ICsxOTAsNyBAQCBpZmVxICgkKGNhbGwgaXNUYXJnZXRPcywgd2luZG93cyksIHRydWUp CisgZW5kaWYKKyAKKyBMSUJKTElfQ0ZMQUdTICs9ICQoTElCWl9DRkxBR1MpCisrTElCSkxJX0NG TEFHUyArPSAtRExJQkM9XCJtdXNsXCIKKyAKKyBpZm5lcSAoJChVU0VfRVhURVJOQUxfTElCWiks IHRydWUpCisgICBMSUJKTElfRVhUUkFfRklMRVMgKz0gXAorLS0tIGEvc3JjL2hvdHNwb3Qvb3Mv bGludXgvb3NfbGludXguY3BwCisrKysgYi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5j cHAKK0BAIC0xMDIsNyArMTAyLDYgQEAKKyAjIGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVk ZSA8c3lzY2FsbC5oPgorICMgaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdu dS9saWJjLXZlcnNpb24uaD4KKyAjIGluY2x1ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5 cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxpbmsuaD4KK0BAIC01OTcsNiArNTk2LDEyIEBAIHZvaWQg b3M6OkxpbnV4Ojpob3RzcG90X3NpZ21hc2soVGhyZWFkKiB0aHJlYWQpIHsKKyAvLyBkZXRlY3Rp bmcgcHRocmVhZCBsaWJyYXJ5CisgCisgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgp IHsKKysjaWYgIWRlZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAg Ly8gSGFyZCBjb2RlIEFscGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRp bmdzCisrICAvLyBzZ246IE5QVEwgaXMgY29ycmVjdCwgZG9uJ3Qga25vdyBhYm91dCBnbGliYyAy LjksIGFscGluZSdzIHRoaW5nPworKyAgb3M6OkxpbnV4OjpzZXRfZ2xpYmNfdmVyc2lvbigiZ2xp YmMgMi45Iik7CisrICBvczo6TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oIk5QVEwiKTsK KysjZWxzZQorICAgLy8gU2F2ZSBnbGliYyBhbmQgcHRocmVhZCB2ZXJzaW9uIHN0cmluZ3MuCisg I2lmICFkZWZpbmVkKF9DU19HTlVfTElCQ19WRVJTSU9OKSB8fCBcCisgICAgICFkZWZpbmVkKF9D U19HTlVfTElCUFRIUkVBRF9WRVJTSU9OKQorQEAgLTYxNCw2ICs2MTksNyBAQCB2b2lkIG9zOjpM aW51eDo6bGlicHRocmVhZF9pbml0KCkgeworICAgc3RyID0gKGNoYXIgKiltYWxsb2MobiwgbXRJ bnRlcm5hbCk7CisgICBjb25mc3RyKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBzdHIsIG4p OworICAgb3M6OkxpbnV4OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKHN0cik7CisrI2VuZGlmCisg fQorIAorIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCitAQCAtMzExNywyMCArMzEyMywzNiBAQCB2b2lk IG9zOjpMaW51eDo6c2NoZWRfZ2V0Y3B1X2luaXQoKSB7CisgZXh0ZXJuICJDIiBKTklFWFBPUlQg dm9pZCBudW1hX3dhcm4oaW50IG51bWJlciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CisgZXh0ZXJu ICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KKyAKKytzdGF0 aWMgdm9pZCogZGx2c3ltX2lmX2F2YWlsYWJsZSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5h bWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pIHsKKysgIHR5cGVkZWYgdm9pZCogKCpkbHZzeW1fZnVu Y190eXBlKSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNp b24pOworKyAgc3RhdGljIGRsdnN5bV9mdW5jX3R5cGUgZGx2c3ltX2Z1bmM7CisrICBzdGF0aWMg Ym9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworKworKyAgaWYgKCFpbml0aWFsaXplZCkgeworKyAg ICBkbHZzeW1fZnVuYyA9IChkbHZzeW1fZnVuY190eXBlKWRsc3ltKFJUTERfTkVYVCwgImRsdnN5 bSIpOworKyAgICBpbml0aWFsaXplZCA9IHRydWU7CisrICB9CisrCisrICBpZiAoZGx2c3ltX2Z1 bmMgIT0gTlVMTCkgeworKyAgICB2b2lkICpmID0gZGx2c3ltX2Z1bmMoaGFuZGxlLCBuYW1lLCB2 ZXJzaW9uKTsKKysgICAgaWYgKGYgIT0gTlVMTCkgeworKyAgICAgIHJldHVybiBmOworKyAgICB9 CisrICB9CisrCisrICByZXR1cm4gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKyt9CisrCisgLy8gSGFu ZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMSAoQVBJIHYxKS4g SWYgaXQgZmFpbHMKKyAvLyBsb2FkIHN5bWJvbCBmcm9tIGJhc2UgdmVyc2lvbiBpbnN0ZWFkLgor IHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIg Km5hbWUpIHsKKy0gIHZvaWQgKmYgPSBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEi KTsKKy0gIGlmIChmID09IE5VTEwpIHsKKy0gICAgZiA9IGRsc3ltKGhhbmRsZSwgbmFtZSk7Cist ICB9CistICByZXR1cm4gZjsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwg bmFtZSwgImxpYm51bWFfMS4xIik7CisgfQorIAorIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQg bGlibnVtYSBzeW1ib2wgdmVyc2lvbiAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVM TCBpZiB0aGUgc3ltYm9sIGlzIG5vdCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9u LgorIHZvaWQqIG9zOjpMaW51eDo6bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0 IGNoYXIqIG5hbWUpIHsKKy0gIHJldHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8x LjIiKTsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51 bWFfMS4yIik7CisgfQorIAorIGJvb2wgb3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7CistLS0g YS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBiL3Ny Yy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1 LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVk ZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVmIEFNRDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5o PgorLSNlbmRpZgorIAorICNpZmRlZiBBTUQ2NAorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKKy0t LSBhL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorKysr IGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitAQCAt MTExNiw3ICsxMTE2LDcgQEAgSGVhcFdvcmQqIEdlbkNvbGxlY3RlZEhlYXA6OmFsbG9jYXRlX25l d190bGFiKHNpemVfdCBtaW5fc2l6ZSwKKyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFs bGVzdFNjcmF0Y2goU2NyYXRjaEJsb2NrICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0 cnVlOworICAgc2l6ZV90IG1pbl9zaXplID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29u Y2VwdHVhbGx5IGluZmluaXRlLgorLSAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21h bGxlc3Q7CisrICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7 CisgICBTY3JhdGNoQmxvY2sgICpjdXIgPSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7Cisg ICAgIGFzc2VydCgqcHJldl9wdHIgPT0gY3VyLCAianVzdCBjaGVja2luZyIpOworLS0tIGEvc3Jj L2hvdHNwb3Qvc2hhcmUvcnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorKysrIGIvc3Jj L2hvdHNwb3Qvc2hhcmUvcnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorQEAgLTI3NCw3 ICsyNzQsNyBAQCBjb25zdCBjaGFyKiBBYnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9p bmZvX3N0cmluZygpIHsKKyAgICNlbmRpZgorIAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9O X1NVRkZJWCBWTV9SRUxFQVNFICIpIiBcCistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZM T0FUX0FSQ0hfU1RSIFwKKysgICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9T VFIgTElCQyBcCisgICAgICAgICAgIiBKUkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9u ICIgX19EQVRFX18gIiAiIF9fVElNRV9fIFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9U X0JVSUxEX1VTRVIpICIgd2l0aCAiIEhPVFNQT1RfQlVJTERfQ09NUElMRVIKKyAKKy0tLSBhL3Ny Yy9ob3RzcG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCisrKysg Yi9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAor QEAgLTIwNCw3ICsyMDQsNyBAQCBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJu IGlzbmFuZChmKTsgfQorICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQorIGlubGluZSBpbnQgZ19p c25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxpZiBkZWZpbmVkKExJTlVY KSB8fCBkZWZpbmVkKF9BTExCU0RfU09VUkNFKQorLWlubGluZSBpbnQgZ19pc25hbihmbG9hdCAg ZikgeyByZXR1cm4gaXNuYW5mKGYpOyB9CisraW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7 IHJldHVybiBpc25hbihmKTsgfQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1 cm4gaXNuYW4oZik7IH0KKyAjZWxzZQorICNlcnJvciAibWlzc2luZyBwbGF0Zm9ybS1zcGVjaWZp YyBkZWZpbml0aW9uIGhlcmUiCistLS0gYS9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJu ZXQvbGludXhfY2xvc2UuYworKysrIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0 L2xpbnV4X2Nsb3NlLmMKK0BAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKKyAvKgor ICAqIFNpZ25hbCB0byB1bmJsb2NrIHRocmVhZAorICAqLworLXN0YXRpYyBpbnQgc2lnV2FrZXVw ID0gKF9fU0lHUlRNQVggLSAyKTsKKytzdGF0aWMgaW50IHNpZ1dha2V1cDsKKyAKKyAvKgorICAq IGZkVGFibGUgaG9sZHMgb25lIGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEgY2Vy dGFpbgorQEAgLTE0OSw2ICsxNDksNyBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZSgoY29uc3Ry dWN0b3IpKSBpbml0KCkgeworICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2lnbmFsIGhhbmRs ZXIKKyAgICAgICovCisrICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAgICAgc2Euc2Ff aGFuZGxlciA9IHNpZ193YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOworICAgICBzaWdl bXB0eXNldCgmc2Euc2FfbWFzayk7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xp YmphdmEvY2hpbGRwcm9jLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2 YS9jaGlsZHByb2MuYworQEAgLTIzNSw3ICsyMzUsMTMgQEAgSkRLX2V4ZWN2cGUoaW50IG1vZGUs IGNvbnN0IGNoYXIgKmZpbGUsCisgeworICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFyICoq KSBlbnZwID09IGVudmlyb24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikgYXJn dik7CistICAgICAgICByZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0aGF0 IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAgICAg IC8vIGxpYnJhcnkgZG9lcyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3NoIGZv ciB0aGF0IGNhc2UsIHNvIGZhbGwKKysgICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUgYmVs b3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBleGVj dmVfd2l0aF9zaGVsbF9mYWxsYmFjay4KKysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVDKSB7 CisrICAgICAgICAgICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisgCisgICAgIGlmICgq ZmlsZSA9PSAnXDAnKSB7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEv amRrX3V0aWxfbWQuaAorKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pk a191dGlsX21kLmgKK0BAIC0zNyw3ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4o ZCkKKyAjZWxpZiBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkK KyAjaW5jbHVkZSA8bWF0aC5oPgorLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZp bmUgSVNOQU5GKGYpIGlzbmFuKGYpCisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxp ZiBkZWZpbmVkKF9BSVgpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0tLSBhL3NyYy9qYXZhLmJhc2Uv dW5peC9uYXRpdmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCisrKysgYi9zcmMvamF2YS5iYXNl L3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXguYworQEAgLTIzNiw2ICsyMzYsMzkg QEAgUmVxdWlyZXNTZXRlbnYoY29uc3QgY2hhciAqanZtcGF0aCkgeworICAgICBjaGFyICpkbWxs cCA9IE5VTEw7CisgICAgIGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBwb2ludGVyICovCisgCisrI2lm ZGVmIF9fbGludXgKKysjaWZuZGVmIExJQkMKKysjZXJyb3IgIkxJQkMgbm90IHNldCIKKysjZW5k aWYKKysKKysgICAgaWYgKHN0cmNtcChMSUJDLCAibXVzbCIpID09IDApIHsKKysgICAgICAvKgor KyAgICAgICAqIFRoZSBtdXNsIGxpYnJhcnkgbG9hZGVyIHJlcXVpcmVzIExEX0xJQlJBUllfUEFU SCB0byBiZSBzZXQgaW4KKysgICAgICAgKiBvcmRlciB0byBjb3JyZWN0bHkgcmVzb2x2ZSB0aGUg ZGVwZW5kZW5jeSBsaWJqYXZhLnNvIGhhcyBvbiBsaWJqdm0uc28uCisrICAgICAgICoKKysgICAg ICAgKiBTcGVjaWZpY2FsbHksIGl0IGRpZmZlcnMgZnJvbSBnbGliYyBpbiB0aGUgc2Vuc2UgdGhh dCBldmVuIGlmCisrICAgICAgICogbGlianZtLnNvIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkIGl0 IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQgYQorKyAgICAgICAqIGNhbmRpZGF0ZSBmb3IgcmVzb2x2 aW5nIHRoZSBkZXBlbmRlbmN5IHVubGVzcyB0aGUgKmZ1bGwqIHBhdGgKKysgICAgICAgKiBvZiB0 aGUgYWxyZWFkeSBsb2FkZWQgbGlicmFyeSBtYXRjaGVzIHRoZSBkZXBlbmRlbmN5IGJlaW5nIGxv YWRlZC4KKysgICAgICAgKgorKyAgICAgICAqIGxpYmp2bS5zbyBpcyBiZWluZyBsb2FkZWQgYnkg dGhlIGxhdW5jaGVyIHVzaW5nIGEgbG9uZyBwYXRoIHRvCisrICAgICAgICogZGxvcGVuLCBub3Qg anVzdCB0aGUgYmFzZW5hbWUgb2YgdGhlIGxpYnJhcnkuIFR5cGljYWxseSB0aGlzCisrICAgICAg ICogaXMgc29tZXRoaW5nIGxpa2UgIi4uL2xpYi9zZXJ2ZXIvbGlianZtLnNvIi4gSG93ZXZlciwg aWYvd2hlbgorKyAgICAgICAqIGxpYmp2bS5zbyBsYXRlciB0cmllcyB0byBkbG9wZW4gbGliamF2 YS5zbyAod2hpY2ggaXQgZG9lcyBpbgorKyAgICAgICAqIG9yZGVyIHRvIGdldCBhY2Nlc3MgdG8g YSBmZXcgZnVuY3Rpb25zIGltcGxlbWVudGVkIGluCisrICAgICAgICogbGliamF2YS5zbykgdGhl IG11c2wgbG9hZGVyIHdpbGwsIGFzIHBhcnQgb2YgbG9hZGluZworKyAgICAgICAqIGRlcGVuZGVu dCBsaWJyYXJpZXMsIHRyeSB0byBsb2FkIGxpYmp2bS5zbyB1c2luZyBvbmx5IGl0cworKyAgICAg ICAqIGJhc2VuYW1lICJsaWJqdm0uc28iLiBTaW5jZSB0aGlzIGRvZXMgbm90IG1hdGNoIHRoZSBs b25nZXIKKysgICAgICAgKiBwYXRoIHBhdGggaXQgd2FzIGZpcnN0IGxvYWRlZCB3aXRoLCB0aGUg YWxyZWFkeSBsb2FkZWQKKysgICAgICAgKiBsaWJyYXJ5IGlzIG5vdCBjb25zaWRlcmVkIGEgY2Fu ZGlkYXRlLCBhbmQgdGhlIGxvYWRlciB3aWxsCisrICAgICAgICogaW5zdGVhZCBsb29rIGZvciBs aWJqdm0uc28gZWxzZXdoZXJlLiBJZiBpdCdzIG5vdCBpbgorKyAgICAgICAqIExEX0xJQlJBUllf UEFUSCB0aGUgZGVwZW5kZW5jeSBsb2FkIHdpbGwgZmFpbCwgYW5kIGxpYmphdmEuc28KKysgICAg ICAgKiB3aWxsIHRoZXJlZm9yZSBmYWlsIGFzIHdlbGwuCisrICAgICAgICovCisrICAgICAgcmV0 dXJuIEpOSV9UUlVFOworKyAgICB9CisrI2VuZGlmCisrCisgI2lmZGVmIEFJWAorICAgICAvKiBX ZSBhbHdheXMgaGF2ZSB0byBzZXQgdGhlIExJQlBBVEggb24gQUlYIGJlY2F1c2UgbGQgZG9lc24n dCBzdXBwb3J0ICRPUklHSU4uICovCisgICAgIHJldHVybiBKTklfVFJVRTsKKy0tLSBhL3NyYy9q YXZhLmJhc2UvdW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCisrKysgYi9zcmMv amF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworQEAgLTM2LDcg KzM2LDcgQEAKKyAjaWZkZWYgX19saW51eF9fCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAg LyogQWxzbyBkZWZpbmVkIGluIG5ldC9saW51eF9jbG9zZS5jICovCistICAjZGVmaW5lIElOVEVS UlVQVF9TSUdOQUwgKF9fU0lHUlRNQVggLSAyKQorKyAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFM IChTSUdSVE1BWCAtIDIpCisgI2VsaWYgZGVmaW5lZChfQUlYKQorICAgI2luY2x1ZGUgPHB0aHJl YWQuaD4KKyAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvYWl4X2Nsb3NlLmMgKi8KKy0tLSBhL3Ny Yy9qYXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCisr KysgYi9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xr aXQuYworQEAgLTI3LDkgKzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2luY2x1 ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGludXhf XworLSNpbmNsdWRlIDxleGVjaW5mby5oPgorLSNlbmRpZgorIAorICNpbmNsdWRlIDxqdm0uaD4K KyAjaW5jbHVkZSA8am5pLmg+CitAQCAtNzgwLDI2ICs3NzcsNiBAQCBKTklFWFBPUlQganN0cmlu ZyBKTklDQUxMIEphdmFfc3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52CisgICAgIHJldHVybiBy ZXQ7CisgfQorIAorLSNpZmRlZiBfX2xpbnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZvaWQpCist eworLSAgdm9pZCAqYXJyYXlbMTBdOworLSAgc2l6ZV90IHNpemU7CistICBjaGFyICoqc3RyaW5n czsKKy0gIHNpemVfdCBpOworLQorLSAgc2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEwKTsKKy0g IHN0cmluZ3MgPSBiYWNrdHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUpOworLQorLSAgZnByaW50 ZiAoc3RkZXJyLCAiT2J0YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOworLQorLSAg Zm9yIChpID0gMDsgaSA8IHNpemU7IGkrKykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXG4i LCBzdHJpbmdzW2ldKTsKKy0KKy0gIGZyZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYKKy0KKyBX aW5kb3cgZ2V0X3hhd3Rfcm9vdF9zaGVsbChKTklFbnYgKmVudikgeworICAgc3RhdGljIGpjbGFz cyBjbGFzc1hSb290V2luZG93ID0gTlVMTDsKKyAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0aG9kR2V0 WFJvb3RXaW5kb3cgPSBOVUxMOworLS0tIGEvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2 ZS9saWJqZHdwL3V0aWwuaAorKysrIGIvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9s aWJqZHdwL3V0aWwuaAorQEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAgICAv KiBKdXN0IHRvIG1ha2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJlLiAq LworICAgICAjdW5kZWYgZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0aGlz IGludGVyZmFjZS4KKysgICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2Vf ZnJlZQorICAgICAjdW5kZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1 c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhpc19p bnRlcmZhY2VfbWFsbG9jCisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxsb2Mo cCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9fbm90 X3VzZV90aGlzX2ludGVyZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAgI2Rl ZmluZSByZWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUg cmVhbGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0 cmR1cAorLSAgICAjZGVmaW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgor KyAgICAjZGVmaW5lIHN0cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAorICNl bmRpZgorIAorICNpbmNsdWRlICJsb2dfbWVzc2FnZXMuaCIKKy0tLSBhL3Rlc3QvaG90c3BvdC9q dHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworKysrIGIvdGVzdC9ob3Rz cG90L2p0cmVnL3J1bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiAr MzMsNyBAQAorIAorICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+CisrI2lu Y2x1ZGUgPGp2bS5oPgorICNpbmNsdWRlIDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+ CisgI2luY2x1ZGUgPHN0cmluZy5oPgorQEAgLTkxLDYgKzkyLDIwIEBAIHZvaWQgc2V0X3NpZ25h bF9oYW5kbGVyKCkgeworICAgfQorIH0KKyAKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXplICgpIHsK KysgIHNpemVfdCBzdGFja3NpemU7CisrICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAgSkRLMV8x SW5pdEFyZ3MgamRrX2FyZ3M7CisrCisrICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZFUlNJT05f MV8xOworKyAgSk5JX0dldERlZmF1bHRKYXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOworKyAgaWYg KGpka19hcmdzLmphdmFTdGFja1NpemUgPD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwgIlRl c3QgRVJST1IuIENhbid0IGdldCBhIHZhbGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBzdGFja3Np emUuXG4iKTsKKysgICAgZXhpdCg3KTsKKysgIH0KKysgIHJldHVybiBqZGtfYXJncy5qYXZhU3Rh Y2tTaXplOworK30KKysKKyB2b2lkICpydW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkgeworICAg Sk5JRW52ICplbnY7CisgICBqY2xhc3MgY2xhc3NfaWQ7CitAQCAtMjU4LDEzICsyNzMsMTkgQEAg aW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBleGl0KDcpOwor ICAgfQorIAorKyAgaW50IHN0YWNrX3NpemUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0 aHJlYWRfdCB0aHI7CisrICBwdGhyZWFkX2F0dHJfdCB0aHJlYWRfYXR0cjsKKysKKysgIHB0aHJl YWRfYXR0cl9pbml0KCZ0aHJlYWRfYXR0cik7CisrICBwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXpl KCZ0aHJlYWRfYXR0ciwgc3RhY2tfc2l6ZSk7CisgCisgICBpZiAoYXJnYyA+IDEgJiYgc3RyY21w KGFyZ3ZbMV0sICJ0ZXN0X2phdmFfb3ZlcmZsb3ciKSA9PSAwKSB7CisgICAgIHByaW50ZigiXG5U ZXN0aW5nIEpBVkFfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sg Z3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRf Y3JlYXRlICgmdGhyLCBOVUxMLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisrICAgIHB0 aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxM KTsKKyAgICAgcHRocmVhZF9qb2luICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rp bmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BA IC0yNzcsNyArMjk4LDcgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikg eworICAgICBwcmludGYoIlxuVGVzdGluZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworIAorICAgICBw cmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVh ZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJm bG93LCBOVUxMKTsKKysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVu X25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsK KyAKKyAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBp bml0aWFsIHRocmVhZFxuIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNC9maWxlcy9t dXNsX3BhdGNoZXMvcHBjLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTQvZmlsZXMvbXVzbF9wYXRj aGVzL3BwYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQz MDZkNTAxZTRiOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0L2ZpbGVzL211 c2xfcGF0Y2hlcy9wcGMucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0 YWtlbiBmcm9tIEFscGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0 cy9jb21taXQvP2lkPThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0t LSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCisrKysgbmV3 L3NyYy9ob3RzcG90L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAorQEAgLTQ3LDYgKzQ3 LDggQEAKKyAjaW5jbHVkZSAib3B0by9pbnRyaW5zaWNub2RlLmhwcCIKKyAjZW5kaWYKKyAKKysj aW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpZmRlZiBQUk9EVUNUCisgI2RlZmluZSBCTE9D S19DT01NRU5UKHN0cikgLy8gbm90aGluZworICNlbHNlCistLS0gb2xkL3NyYy9ob3RzcG90L2Nw dS9wcGMvdm1fdmVyc2lvbl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvdm1f dmVyc2lvbl9wcGMuY3BwCitAQCAtODQ1LDcgKzg0NSw3IEBAIHZvaWQgVk1fVmVyc2lvbjo6ZGV0 ZXJtaW5lX2ZlYXR1cmVzKCkgeworICAgdW5zaWduZWQgbG9uZyBhdXh2ID0gZ2V0YXV4dmFsKEFU X0hXQ0FQMik7CisgCisgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IVE1fTk9TQykgeworLSAg ICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IQVNfSFRNKSB7CisrICAgIGlmIChhdXh2ICYgUFBD X0ZFQVRVUkUyX0hUTSkgeworICAgICAgIC8vIFRNIG9uIFBPV0VSOCBhbmQgUE9XRVI5IGluIGNv bXBhdCBtb2RlIChWTSkgaXMgc3VwcG9ydGVkIGJ5IHRoZSBKVk0uCisgICAgICAgLy8gVE0gb24g UE9XRVI5IEREMi4xIE5WIChiYXJlbWV0YWwpIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIEpWTSAo VE0gb24KKyAgICAgICAvLyBQT1dFUjkgREQyLjEgTlYgaGFzIGEgZmV3IGlzc3VlcyB0aGF0IG5l ZWQgYSBjb3VwbGUgb2YgZmlybXdhcmUKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4 X3BwYy9vc19saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9w cGMvb3NfbGludXhfcHBjLmNwcAorQEAgLTc1LDcgKzc1LDcgQEAKKyAjIGluY2x1ZGUgPHB3ZC5o PgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0KKysjIGlu Y2x1ZGUgPGFzbS9wdHJhY2UuaD4KKyAKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50 ZXIoKSB7CisgICBpbnRwdHJfdCogY3NwOworLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGlu dXhfcHBjL3RocmVhZF9saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9s aW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKK0BAIC0yMyw2ICsyMyw4IEBACisgICoKKyAg Ki8KKyAKKysjaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpbmNsdWRlICJwcmVjb21waWxl ZC5ocHAiCisgI2luY2x1ZGUgInJ1bnRpbWUvZnJhbWUuaW5saW5lLmhwcCIKKyAjaW5jbHVkZSAi cnVudGltZS90aHJlYWQuaHBwIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQvZmlsZXMv bXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE0L2ZpbGVzL211c2xfcGF0 Y2hlcy94ODYucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45 YzY0YzE4OTAzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNC9maWxlcy9t dXNsX3BhdGNoZXMveDg2LnBhdGNoCkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZvciBtdXNs IHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBv cnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAor LS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysr KyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAt OTAsNiArOTAsMTI2IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5kaWYgLy8g QU1ENjQKKworKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20gZ2xpYmMg Mi4yOAorKy8vIHNvdXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xpYmMuZ2l0 O2E9YmxvYjtmPXN5c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4OTdmZjRl NTgyNmQyMjhjYmE2YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNjYTM5MmJi YTdhOTljMmIKKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0CisrLyog RlBVIGNvbnRyb2wgd29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAx OTkzLTIwMTggRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlz IHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xhZiBGbGVi YmUuCisrCisrICAgVGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0 aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9m IHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKwor KyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQg d2lsbCBiZSB1c2VmdWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5l cmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAg IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8 aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQVV9DT05U Uk9MX0gKKysjZGVmaW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQgdGhpcyBm aWxlIHNldHMgb24geDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90CisrICAgdG91 Y2ggdGhlIFNTRSB1bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0LiBTZXQg dXAgeW91ciAzODcgdGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdpc3Rlci4K KysgKgorKyAqICAgICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1ICAgIDQg ICAgMyAgICAyICAgIDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBDIHwgcmVz ZXJ2ZWQgfCBQTSB8IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJbnZhbGlk IG9wZXJhdGlvbiBtYXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sKKysgKiBa TTogWmVyby1kaXZpZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06IFVuZGVy ZmxvdyBtYXNrCisrICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sKKysgKgor KyAqIE1hc2sgYml0IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6IFByZWNp c2lvbiBjb250cm9sCisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24KKysgKiAx MCAtIHJvdW5kIHRvIGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNpbmdsZSBw cmVjaXNpb24KKysgKgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSByb3VuZGlu ZyB0byBuZWFyZXN0CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZpbml0eSkK KysgKiAxMCAtIHJvdW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAtIHJvdW5k aW5nIHRvd2FyZCB6ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAqIFRoYXQg aXMgZm9yIDgwODcgYW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUgZGVmYXVs dCBpcyAweDAzN2Ygd2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0dXJlcy5o PgorKworKy8qIG1hc2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9NQVNLX0lN ICAweDAxCisrI2RlZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVfTUFTS19a TSAgMHgwNAorKyNkZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBVX01BU0tf VU0gIDB4MTAKKysjZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNpc2lvbiBj b250cm9sICovCisrI2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVxdWlyZXMg ZG91YmxlIGV4dGVuZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJMRSAgIDB4 MjAwCisrI2RlZmluZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNvbnRyb2wg Ki8KKysjZGVmaW5lIF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQgKi8KKysj ZGVmaW5lIF9GUFVfUkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAgICAgIDB4 ODAwCisrI2RlZmluZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9GUFVfUkVT RVJWRUQgMHhGMEMwICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyogVGhlIGZk bGlibSBjb2RlIHJlcXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJpdGhtZXRp YywKKysgICBhbmQgbm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcgdG8gbmVh cmVzdC4gICovCisrCisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8qIElFRUU6 ICBzYW1lIGFzIGFib3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdmCisrCisr LyogVHlwZSBvZiB0aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVkIGludCBm cHVfY29udHJvbF90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOworKworKy8q IE1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAiKiYiIGlz IHVzZWQgdG8KKysgICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBHQ0Mu ICBfX3ZvbGF0aWxlX18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24gb2Ygd3Jp dGluZyB0aGUgY29udHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2suICBXaXRo b3V0IF9fdm9sYXRpbGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVhZGluZwor KyAgIGJhY2sgdW5kZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUgdGhhdCB0 aGUgdXNlIG9mIHRoZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdpdGgKKysg ICByZWNlbnQgaGFyZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9pbnQgb3Bl cmF0aW9ucyBhcmUKKysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3aGljaCBo YXZlIHRoZWlyIG93biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICovCisrI2Rl ZmluZSBfRlBVX0dFVENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIgOiAi PW0iICgqJmN3KSkKKysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9f ICgiZmxkY3cgJTAiIDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJvbCB3b3Jk IHNldCBhdCBzdGFydHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9jb250cm9s OworKworKyNlbmRpZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFNRDY0Cisr Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8g PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2lu dGVyKCkgeworICNpZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNwOwpkaWZm IC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxNC90 ZW1wbGF0ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQxNDU0N2Q1 NTFkOAotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0L3RlbXBsYXRlCkBAIC0w LDAgKzEsMjAzIEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuamRrMTQnCitfamF2YV92ZXI9 MTQKK19qYXZhX21pbl92ZXI9MAorX2phdmFfc2VjX3Zlcj0yCitfamRrX3VwZGF0ZT0xMgorX2pk a19ob21lPSJ1c3IvbGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9IgorX2Jhc2VfdmVyc2lvbj0i JHtfamF2YV92ZXJ9LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9zZWNfdmVyfSIKKworcGtnbmFt ZT1vcGVuamRrMTQKK3ZlcnNpb249IiR7X2Jhc2VfdmVyc2lvbn0rJHtfamRrX3VwZGF0ZX0iCity ZXZpc2lvbj0xCit3cmtzcmM9ImpkayR7X2phdmFfdmVyfXUtamRrLSR7dmVyc2lvbn0iCitidWls ZF9zdHlsZT1nbnUtY29uZmlndXJlCitjb25maWd1cmVfYXJncz0iCisgLS1kaXNhYmxlLXdhcm5p bmdzLWFzLWVycm9ycworIC0tcHJlZml4PSR7WEJQU19ERVNURElSfS8ke1hCUFNfQ1JPU1NfVFJJ UExFVH0vJHtwa2duYW1lfS0ke3ZlcnNpb259L3Vzci9saWIKKyAtLWVuYWJsZS11bmxpbWl0ZWQt Y3J5cHRvCisgLS13aXRoLXpsaWI9c3lzdGVtCisgLS13aXRoLWxpYmpwZWc9c3lzdGVtCisgLS13 aXRoLWdpZmxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlicG5nPXN5c3RlbQorIC0td2l0aC1sY21zPXN5 c3RlbQorIC0td2l0aC1qdHJlZz1ubworIC0td2l0aC12ZXJzaW9uLWJ1aWxkPSRfamF2YV92ZXIK KyAtLXdpdGgtam9icz0kWEJQU19PUklHX01BS0VKT0JTCisgLS13aXRoLXZlbmRvci1uYW1lPVZv aWQKKyAtLXdpdGgtdmVuZG9yLXVybD1odHRwczovL3ZvaWRsaW51eC5vcmcvCisgLS13aXRoLXZl bmRvci1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMv aXNzdWVzCisgLS13aXRoLXZlbmRvci12bS1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNvbS92b2lk LWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzIgorbWFrZV9idWlsZF9hcmdzPSJpbWFnZXMgJCh2 b3B0X2lmIGRvY3MgZG9jcykiCittYWtlX2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0 IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFy IHVuemlwIHppcCBjYS1jZXJ0aWZpY2F0ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1h a2UtY2EiCittYWtlZGVwZW5kcz0ibGliWHJlbmRlci1kZXZlbCBsaWJYdHN0LWRldmVsIGxpYlh0 LWRldmVsIGxpYlhyYW5kci1kZXZlbAorIGdpZmxpYi1kZXZlbCBsaWJqcGVnLXR1cmJvLWRldmVs IGN1cHMtZGV2ZWwgZnJlZXR5cGUtZGV2ZWwgYWxzYS1saWItZGV2ZWwKKyBmb250Y29uZmlnLWRl dmVsIHpsaWItZGV2ZWwgbGNtczItZGV2ZWwiCitwcm92aWRlcz0iamF2YS1lbnZpcm9ubWVudC0k e3ZlcnNpb259XzEgamF2YS1ydW50aW1lLSR7dmVyc2lvbn1fMSIKK3Nob3J0X2Rlc2M9Ik9wZW5K REsgSmF2YSBEZXZlbG9wbWVudCBLaXQiCittYWludGFpbmVyPSLEkG/DoG4gVHLhuqduIEPDtG5n IERhbmggPGNvbmdkYW5ocXhAZ21haWwuY29tPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIi Citob21lcGFnZT0iaHR0cDovL29wZW5qZGsuamF2YS5uZXQvIgorZGlzdGZpbGVzPSJodHRwczov L2hnLm9wZW5qZGsuamF2YS5uZXQvamRrLXVwZGF0ZXMvamRrJHtfamF2YV92ZXJ9dS9hcmNoaXZl L2pkay0ke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPWRmYjM2MDdmMWI2NzU0NThmMjlhMTg1 YTQwZjFkYmJmODk2NDM5Y2YzM2IzYWEwZjNkODlkZjI5N2U2MDQ5MzUKK3NobGliX3Byb3ZpZGVz PSJsaWJhd3Quc28gbGliYXd0X3hhd3Quc28gbGliamF2YS5zbyBsaWJqbGkuc28gbGlianZtLnNv IGxpYmphd3Quc28iCisKKyMgQnVpbGQgaXMgc3RpbGwgcGFyYWxsZWwsIGJ1dCBkb24ndCB1c2Ug LWpOLgorZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15ZXMKK2J1aWxkX29wdGlvbnM9ImRvY3MiCisK K25vY3Jvc3M9InVudGlsIGhvc3Qgb3BlbmpkazE0IGlzIGF2YWlsYWJsZSBpbiBidWlsZCBzZXJ2 ZXIiCisKKyMgbm8gaG90c3BvdCBKSVQgZm9yIHBwYzMyCitjYXNlICIkWEJQU19UQVJHRVRfTUFD SElORSIgaW4KKwlwcGM2NCopIDs7CisJcHBjKikgX3VzZV96ZXJvPXllcyA7OworZXNhYworCitp ZiBbIC1uICIkX3VzZV96ZXJvIiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliZmZpLWRldmVs IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1qdm0tdmFyaWFudHM9emVybyIKKwljYXNlICIk WEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGMqKSBjb25maWd1cmVfYXJncys9IiAtLXdpdGgt Ym9vdC1qZGstanZtYXJncz0tWFg6VGhyZWFkU3RhY2tTaXplPTI1NjAiOzsKKwllc2FjCitmaQor CitjYXNlICIkWEJQU19UQVJHRVRfTElCQyIgaW4KKwlnbGliYykgYnVpbGRfb3B0aW9uc19kZWZh dWx0Kz0iIGRvY3MiOzsKK2VzYWMKKworaWYgWyAhICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwlo b3N0bWFrZWRlcGVuZHMrPSIgb3BlbmpkazEzLWJvb3RzdHJhcCIKKwljb25maWd1cmVfYXJncys9 IiAtLXdpdGgtYm9vdC1qZGs9L3Vzci9saWIvanZtL29wZW5qZGsxMyIKK2Vsc2UKKwlob3N0bWFr ZWRlcGVuZHMrPSIgb3BlbmpkazE0IgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1ib290LWpk az0vdXNyL2xpYi9qdm0vb3BlbmpkazE0IgorZmkKKworYWx0ZXJuYXRpdmVzPSIKKyBqYXZhOi91 c3IvYmluL2phdmE6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vamF2YQorIGphdmE6L3Vzci9i aW4vampzOi91c3IvbGliL2p2bS9vcGVuamRrMTQvYmluL2pqcworIGphdmE6L3Vzci9iaW4va2V5 dG9vbDovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9rZXl0b29sCisgamF2YTovdXNyL2Jpbi9w YWNrMjAwOi91c3IvbGliL2p2bS9vcGVuamRrMTQvYmluL3BhY2syMDAKKyBqYXZhOi91c3IvYmlu L3JtaWQ6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vcm1pZAorIGphdmE6L3Vzci9iaW4vcm1p cmVnaXN0cnk6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vcm1pcmVnaXN0cnkKKyBqYXZhOi91 c3IvYmluL3VucGFjazIwMDovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi91bnBhY2syMDAKKwor IGpkazovdXNyL2Jpbi9qYW90YzovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9qYW90YworIGpk azovdXNyL2Jpbi9qYXI6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vamFyCisgamRrOi91c3Iv YmluL2phcnNpZ25lcjovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9qYXJzaWduZXIKKyBqZGs6 L3Vzci9iaW4vamF2YTovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9qYXZhCisgamRrOi91c3Iv YmluL2phdmFjOi91c3IvbGliL2p2bS9vcGVuamRrMTQvYmluL2phdmFjCisgamRrOi91c3IvYmlu L2phdmFkb2M6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vamF2YWRvYworIGpkazovdXNyL2Jp bi9qYXZhcDovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9qYXZhcAorIGpkazovdXNyL2Jpbi9q Y21kOi91c3IvbGliL2p2bS9vcGVuamRrMTQvYmluL2pjbWQKKyBqZGs6L3Vzci9iaW4vamNvbnNv bGU6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vamNvbnNvbGUKKyBqZGs6L3Vzci9iaW4vamRi Oi91c3IvbGliL2p2bS9vcGVuamRrMTQvYmluL2pkYgorIGpkazovdXNyL2Jpbi9qZGVwcnNjYW46 L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vamRlcHJzY2FuCisgamRrOi91c3IvYmluL2pkZXBz Oi91c3IvbGliL2p2bS9vcGVuamRrMTQvYmluL2pkZXBzCisgamRrOi91c3IvYmluL2poc2RiOi91 c3IvbGliL2p2bS9vcGVuamRrMTQvYmluL2poc2RiCisgamRrOi91c3IvYmluL2ppbWFnZTovdXNy L2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9qaW1hZ2UKKyBqZGs6L3Vzci9iaW4vamluZm86L3Vzci9s aWIvanZtL29wZW5qZGsxNC9iaW4vamluZm8KKyBqZGs6L3Vzci9iaW4vampzOi91c3IvbGliL2p2 bS9vcGVuamRrMTQvYmluL2pqcworIGpkazovdXNyL2Jpbi9qbGluazovdXNyL2xpYi9qdm0vb3Bl bmpkazE0L2Jpbi9qbGluaworIGpkazovdXNyL2Jpbi9qbWFwOi91c3IvbGliL2p2bS9vcGVuamRr MTQvYmluL2ptYXAKKyBqZGs6L3Vzci9iaW4vam1vZDovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jp bi9qbW9kCisgamRrOi91c3IvYmluL2pwczovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9qcHMK KyBqZGs6L3Vzci9iaW4vanJ1bnNjcmlwdDovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9qcnVu c2NyaXB0CisgamRrOi91c3IvYmluL2pzaGVsbDovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9q c2hlbGwKKyBqZGs6L3Vzci9iaW4vanN0YWNrOi91c3IvbGliL2p2bS9vcGVuamRrMTQvYmluL2pz dGFjaworIGpkazovdXNyL2Jpbi9qc3RhdDovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9qc3Rh dAorIGpkazovdXNyL2Jpbi9qc3RhdGQ6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vanN0YXRk CisgamRrOi91c3IvYmluL2tleXRvb2w6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4va2V5dG9v bAorIGpkazovdXNyL2Jpbi9wYWNrMjAwOi91c3IvbGliL2p2bS9vcGVuamRrMTQvYmluL3BhY2sy MDAKKyBqZGs6L3Vzci9iaW4vcm1pYzovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9ybWljCisg amRrOi91c3IvYmluL3JtaWQ6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vcm1pZAorIGpkazov dXNyL2Jpbi9ybWlyZWdpc3RyeTovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9ybWlyZWdpc3Ry eQorIGpkazovdXNyL2Jpbi9zZXJpYWx2ZXI6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vc2Vy aWFsdmVyCisgamRrOi91c3IvYmluL3VucGFjazIwMDovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jp bi91bnBhY2syMDAKKyIKKworcG9zdF9leHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZpZ3VyZQor CWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCXJtIC1yIHNyYy9q ZGsuaG90c3BvdC5hZ2VudAorCWZpCit9CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJFhCUFNf VEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9t dXNsX3BhdGNoZXMvKi5wYXRjaDsgZG8KKwkJCW1zZ19ub3JtYWwgIkFwcGx5aW5nICR7ZiMkRklM RVNESVIvfVxuIgorCQkJcGF0Y2ggLXNsTnAxIC1pICIkZiIKKwkJZG9uZQorCWZpCit9CisKK2Rv X2NvbmZpZ3VyZSgpIHsKKwlDRkxBR1M9JHtDRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99CisJ Q1hYRkxBR1M9JHtDWFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKworCSMgZm9yY2UgRUxG djIgZm9yIHBwYzY0IGp1c3QgaW4gY2FzZQorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBp bgorCXBwYzY0KikKKwkJQ0ZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQlDWFhGTEFHUys9IiAtREFC SV9FTEZ2MiIKKwkJOzsKKwllc2FjCisKKwljb25maWd1cmVfYXJncz0ke2NvbmZpZ3VyZV9hcmdz Ly0td2l0aC1saWJ0b29sLXN5c3Jvb3Q9XC91c3JcL1thLXowLTldKi1saW51eC1bYS16XSovfQor CWlmIFsgIiRYQlBTX0NDQUNIRSIgXSAmJiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJ Y29uZmlndXJlX2FyZ3MrPSIgLS1lbmFibGUtY2NhY2hlIgorCQlDQz0iL3Vzci9iaW4vY2MiCisJ CUNYWD0iL3Vzci9iaW4vYysrIgorCWZpCisJLi9jb25maWd1cmUgJHtjb25maWd1cmVfYXJnc30g XAorCQktLXdpdGgtZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1jeHhm bGFncz0iJENYWEZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1sZGZsYWdzPSIkTERGTEFHUyIgXAor CQlSRUFERUxGPSRSRUFERUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAgTk09JE5NIFwKKwkJT0JKRFVN UD0kT0JKRFVNUCBPQkpDT1BZPSRPQkpDT1BZCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwlybSAt cmYgJHtERVNURElSfS91c3IvbGliL2JpbgorCW12ICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Bl bmpkay0ke19iYXNlX3ZlcnNpb259LWludGVybmFsICR7REVTVERJUn0vJF9qZGtfaG9tZQorCXZt a2RpciAkX2pka19ob21lL2xpYi9zZWN1cml0eQorCW1ha2UtY2EgLWcgLWYgLS1kZXN0ZGlyICIk e1BXRH0vY2EiIC1rICIke0RFU1RESVJ9LyRfamRrX2hvbWUvYmluL2tleXRvb2wiCisJbXYgLi9j YS9ldGMvcGtpL3Rscy9qYXZhL2NhY2VydHMgJHtERVNURElSfS8kX2pka19ob21lL2xpYi9zZWN1 cml0eS8KKwljaG1vZCAtUiB1Z28rcncgLi9jYQorCXJtIC1yZiAuL2NhCisJdm1rZGlyIGV0Yy9w cm9maWxlLmQKKwljYXQgPj4ke0RFU1RESVJ9L2V0Yy9wcm9maWxlLmQvMTBfb3BlbmpkazE0LnNo IDw8LUVPRgorCWV4cG9ydCBKQVZBX0hPTUU9XCR7SkFWQV9IT01FPS8kX2pka19ob21lfQorCUVP RgorCXZsaWNlbnNlIEFTU0VNQkxZX0VYQ0VQVElPTgorCXZsaWNlbnNlIExJQ0VOU0UKK30KKwor b3BlbmpkazE0LWRvY19wYWNrYWdlKCkgeworCW5vc3RyaXA9eWVzCisJbm92ZXJpZnlyZGVwcz15 ZXMKKwlub3NobGlicHJvdmlkZXM9eWVzCisJc2hvcnRfZGVzYys9IiAtLSBkb2N1bWVudGF0aW9u IgorCXBrZ19pbnN0YWxsKCkgeworCQljZCAke3dya3NyY30KKwkJaWYgWyAiJGJ1aWxkX29wdGlv bl9kb2NzIiBdOyB0aGVuCisJCQlsb2NhbCBfZG9jZGlyPXVzci9zaGFyZS9kb2Mvb3BlbmpkayRf amF2YV92ZXIKKwkJCXZta2RpciAkX2RvY2RpcgorCQkJY3AgLWEgYnVpbGQvbGludXgtKi9pbWFn ZXMvZG9jcy8qICR7UEtHREVTVERJUn0vJF9kb2NkaXIKKwkJZmkKKwkJdm1vdmUgJF9qZGtfaG9t ZS9tYW4vbWFuMQorCX0KK30KKworb3BlbmpkazE0LXNyY19wYWNrYWdlKCkgeworCW5vc3RyaXA9 eWVzCisJbm92ZXJpZnlyZGVwcz15ZXMKKwlub3NobGlicHJvdmlkZXM9eWVzCisJc2hvcnRfZGVz Yys9IiAtLSBzb3VyY2VzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAiJF9qZGtfaG9tZS9s aWIvc3JjLnppcCIKKwl9Cit9CgpGcm9tIGI0NjI5MjE2OGQ5NmY3OTVjNjliM2UwYzU3OTk5MzNi MTZjNGM5MDEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206ID0/VVRGLTg/cT89QzQ9OTBv PUMzPUEwbj0yMFRyPUUxPUJBPUE3bj0yMEM9QzM9QjRuZz0yMERhbmg/PQogPGNvbmdkYW5ocXhA Z21haWwuY29tPgpEYXRlOiBTYXQsIDEgQXVnIDIwMjAgMjM6NDE6NDYgKzA3MDAKU3ViamVjdDog W1BBVENIIDUvOF0gb3BlbmpkazE0OiBlbmFibGUgY3Jvc3MgY29tcGlsZQoKTm93LCBuYXRpdmUg b3BlbmpkazE0IGlzIHJlYWR5LCBjcm9zcyBjb21waWxlIG9wZW5qZGsxNCBmb3Igb3RoZXIKYXJj aGl0ZWN0dXJlLgoKW3NraXAgY2ldCkNsb3NlOiAjMjM5NDAKLS0tCiBzcmNwa2dzL29wZW5qZGsx NC90ZW1wbGF0ZSB8IDIgLS0KIDEgZmlsZSBjaGFuZ2VkLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE0L3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrMTQvdGVt cGxhdGUKaW5kZXggZDE0NTQ3ZDU1MWQ4Li44NjdmYTA3NzY5YzMgMTAwNjQ0Ci0tLSBhL3NyY3Br Z3Mvb3BlbmpkazE0L3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE0L3RlbXBsYXRlCkBA IC00Nyw4ICs0Nyw2IEBAIHNobGliX3Byb3ZpZGVzPSJsaWJhd3Quc28gbGliYXd0X3hhd3Quc28g bGliamF2YS5zbyBsaWJqbGkuc28gbGlianZtLnNvIGxpYmphd3QuCiBkaXNhYmxlX3BhcmFsbGVs X2J1aWxkPXllcwogYnVpbGRfb3B0aW9ucz0iZG9jcyIKIAotbm9jcm9zcz0idW50aWwgaG9zdCBv cGVuamRrMTQgaXMgYXZhaWxhYmxlIGluIGJ1aWxkIHNlcnZlciIKLQogIyBubyBob3RzcG90IEpJ VCBmb3IgcHBjMzIKIGNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgogCXBwYzY0KikgOzsK CkZyb20gZjE0MTU5M2VmMmI5NzI0ZDNiNzAzNmY1ZDQwZjcyMzA3MTU2OWJjMyBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDEKRnJvbTogVGFpIENoaSBNaW5oIFJhbHBoIEVhc3R3b29kIDx0Y21yZWFz dHdvb2RAZ21haWwuY29tPgpEYXRlOiBTdW4sIDUgRGVjIDIwMjEgMTI6NDY6NDIgKzAxMDAKU3Vi amVjdDogW1BBVENIIDYvOF0gTmV3IHBhY2thZ2U6IG9wZW5qZGt7MTIsMTMsMTQsMTUsMTZ9LWJv b3RzdHJhcAoKLS0tCiBzcmNwa2dzL29wZW5qZGsxMi1ib290c3RyYXAvdGVtcGxhdGUgICAgICAg ICAgfCAgIDQgKwogc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL3RlbXBsYXRlICAgICAgICAg IHwgICA0ICsKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCAgICAgICAgICB8 ICAxMCArCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgICAgICAgICAgICAgfCAg MjEgKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCAgICAgICAgICAgIHwgMzcy ICsrKysrKysrKysrKysrKysrKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2ggICAg ICAgICAgICAgIHwgIDQ1ICsrKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggICAg ICAgICAgICAgIHwgMTMwICsrKysrKwogc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBs YXRlICAgICAgICAgIHwgMTE2ICsrKysrKwogLi4uL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0 LnBhdGNoICAgICAgICAgIHwgIDEwICsKIC4uLi9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNo ICAgICAgICAgICAgICB8ICAyMSArCiAuLi4vZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNo ICAgICAgICAgICAgfCAzNzIgKysrKysrKysrKysrKysrKysrCiAuLi4vZmlsZXMvbXVzbF9wYXRj aGVzL3BwYy5wYXRjaCAgICAgICAgICAgICAgfCAgNDUgKysrCiAuLi4vZmlsZXMvbXVzbF9wYXRj aGVzL3g4Ni5wYXRjaCAgICAgICAgICAgICAgfCAxMzAgKysrKysrCiBzcmNwa2dzL29wZW5qZGsx NS1ib290c3RyYXAvdGVtcGxhdGUgICAgICAgICAgfCAxMTIgKysrKysrCiAuLi4vZmlsZXMvbXVz bF9wYXRjaGVzL2FhcmNoNjQucGF0Y2ggICAgICAgICAgfCAgMTAgKwogLi4uL2ZpbGVzL211c2xf cGF0Y2hlcy9hcm0ucGF0Y2ggICAgICAgICAgICAgIHwgIDIxICsKIC4uLi9maWxlcy9tdXNsX3Bh dGNoZXMvYnVpbGQucGF0Y2ggICAgICAgICAgICB8IDM3MiArKysrKysrKysrKysrKysrKysKIC4u Li9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoICAgICAgICAgICAgICB8ICA0NSArKysKIC4u Li9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoICAgICAgICAgICAgICB8IDEzMCArKysrKysK IHNyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC90ZW1wbGF0ZSAgICAgICAgICB8IDExMiArKysr KysKIDIwIGZpbGVzIGNoYW5nZWQsIDIwODIgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2 NC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9m aWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9v cGVuamRrMTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRl IG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNo ZXMvcHBjLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0 cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL29wZW5qZGsxNC1ib290c3RyYXAvdGVtcGxhdGUKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNw a2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gK IGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVz bF9wYXRjaGVzL2FybS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE1 LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5w YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxl cy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVu amRrMTUtYm9vdHN0cmFwL3RlbXBsYXRlCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVu amRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9hcm0ucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNi1ib290c3Ry YXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKIGNy ZWF0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9w YXRjaGVzL3g4Ni5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE2LWJv b3RzdHJhcC90ZW1wbGF0ZQoKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJh cC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC90ZW1wbGF0ZQppbmRleCAx MDQ4MDdmMTUwNmEuLjEyYTUxN2RjZTNlZCAxMDA2NDQKLS0tIGEvc3JjcGtncy9vcGVuamRrMTIt Ym9vdHN0cmFwL3RlbXBsYXRlCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazEyLWJvb3RzdHJhcC90ZW1w bGF0ZQpAQCAtOTAsNiArOTAsMTAgQEAgZG9fY29uZmlndXJlKCkgewogCQkJOzsKIAllc2FjCiAK KwkjIGNvbXBhdGliaWxpdHkgd2l0aCBHQ0MgMTAueAorCUNGTEFHUys9IiAtZmNvbW1vbiAtZm5v LWxpZmV0aW1lLWRzZSIKKwlDWFhGTEFHUys9IiAtZmNvbW1vbiAtZm5vLWxpZmV0aW1lLWRzZSIK KwogCWNvbmZpZ3VyZV9hcmdzPSR7Y29uZmlndXJlX2FyZ3MvLS13aXRoLWxpYnRvb2wtc3lzcm9v dD1cL3VzclwvW2EtejAtOV0qLWxpbnV4LVthLXpdKi99CiAJaWYgWyAiJFhCUFNfQ0NBQ0hFIiBd OyB0aGVuCiAJCWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNjYWNoZSIKZGlmZiAtLWdpdCBh L3NyY3BrZ3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90ZW1wbGF0ZSBiL3NyY3BrZ3Mvb3BlbmpkazEz LWJvb3RzdHJhcC90ZW1wbGF0ZQppbmRleCA0NjIwZGExZGQ0ZDAuLjY2ZDI1MzRlODFmYSAxMDA2 NDQKLS0tIGEvc3JjcGtncy9vcGVuamRrMTMtYm9vdHN0cmFwL3RlbXBsYXRlCisrKyBiL3NyY3Br Z3Mvb3BlbmpkazEzLWJvb3RzdHJhcC90ZW1wbGF0ZQpAQCAtOTAsNiArOTAsMTAgQEAgZG9fY29u ZmlndXJlKCkgewogCQkJOzsKIAllc2FjCiAKKwkjIGNvbXBhdGliaWxpdHkgd2l0aCBHQ0MgMTAu eAorCUNGTEFHUys9IiAtZmNvbW1vbiAtZm5vLWxpZmV0aW1lLWRzZSIKKwlDWFhGTEFHUys9IiAt ZmNvbW1vbiAtZm5vLWxpZmV0aW1lLWRzZSIKKwogCWNvbmZpZ3VyZV9hcmdzPSR7Y29uZmlndXJl X2FyZ3MvLS13aXRoLWxpYnRvb2wtc3lzcm9vdD1cL3VzclwvW2EtejAtOV0qLWxpbnV4LVthLXpd Ki99CiAJaWYgWyAiJFhCUFNfQ0NBQ0hFIiBdOyB0aGVuCiAJCWNvbmZpZ3VyZV9hcmdzKz0iIC0t ZW5hYmxlLWNjYWNoZSIKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9m aWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3Rz dHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNmM1ZDRkMmJlMgotLS0gL2Rldi9udWxsCisrKyBiL3Ny Y3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRj aApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2 NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2Fh cmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BAIC03NCw3ICs3NCw2IEBACisgIyBpbmNsdWRl IDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+Cist IyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorIAorICNkZWZpbmUgUkVHX0ZQIDI5CisgI2RlZmlu ZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxl cy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2Zp bGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi4xMDI0MjhmMTBmMzMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5q ZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApAQCAtMCwwICsxLDIx IEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAK KysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAorQEAg LTczLDYgKzczLDE4IEBACisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorICMgaW5jbHVkZSA8YXNt L3B0cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNrIGFzIHRoZSBvcmlnaW4gaWYgYmVsb3cgZG9l c250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6CisrLy8KKysvLyBvc19saW51eF9hcm0uY3BwOjEx NDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0b3IgYmVmb3JlIHRva2VuICIoIgorKy8v ICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBefn5+fgorKy8vCisrLy8gVGhlIE5HUkVHIGlz IDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2UgaXQgdG8gdGhhdCB2YWx1ZS4KKysjaWZk ZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNlbmRpZgorKyNkZWZpbmUgTkdSRUcgMTgKKysK KyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgorIAorIC8vIERvbid0ICNkZWZpbmUgU1BFTExf UkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5vdCBzYWZlIHRvIHVzZSwgc28gdGhpcyBt YWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRr MTQtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCBiL3NyY3BrZ3Mvb3Bl bmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUg bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi42MGRmZGVjMzBhYmMKLS0tIC9kZXYvbnVs bAorKysgYi9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1 aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzcyIEBACistLS0gYS9tYWtlL1JlbGVhc2VGaWxlLmdtawor KysrIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01Myw2ICs1Myw3IEBAIGRlZmluZSBjcmVh dGUtaW5mby1maWxlCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJKQVZBX1ZFUlNJT05fREFU RSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfTkFN RSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0s ICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FSQ0gpIikKKysgICQoY2FsbCBpbmZvLWZp bGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYKKyAKKyAjIFBhcmFtIDEgLSBUaGUgZmls ZSBjb250YWluaW5nIHRoZSBNT0RVTEVTIGxpc3QKKy0tLSBhL21ha2UvaG90c3BvdC9saWIvQ29t cGlsZUp2bS5nbWsKKysrKyBiL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKK0BAIC03 Myw2ICs3Myw3IEBAIENGTEFHU19WTV9WRVJTSU9OIDo9IFwKKyAgICAgLURIT1RTUE9UX0JVSUxE X1VTRVI9JyIkKFVTRVJOQU1FKSInIFwKKyAgICAgLURIT1RTUE9UX1ZNX0RJU1RSTz0nIiQoSE9U U1BPVF9WTV9ESVNUUk8pIicgXAorICAgICAtRENQVT0nIiQoT1BFTkpES19UQVJHRVRfQ1BVX1ZN X1ZFUlNJT04pIicgXAorKyAgICAtRExJQkM9JyJtdXNsIicgXAorICAgICAjCisgCisgIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKy0tLSBhL21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCisrKysg Yi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworQEAgLTE5MCw2ICsxOTAsNyBAQCBpZmVxICgk KGNhbGwgaXNUYXJnZXRPcywgd2luZG93cyksIHRydWUpCisgZW5kaWYKKyAKKyBMSUJKTElfQ0ZM QUdTICs9ICQoTElCWl9DRkxBR1MpCisrTElCSkxJX0NGTEFHUyArPSAtRExJQkM9XCJtdXNsXCIK KyAKKyBpZm5lcSAoJChVU0VfRVhURVJOQUxfTElCWiksIHRydWUpCisgICBMSUJKTElfRVhUUkFf RklMRVMgKz0gXAorLS0tIGEvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGludXguY3BwCisrKysg Yi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKK0BAIC0xMDIsNyArMTAyLDYgQEAK KyAjIGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVkZSA8c3lzY2FsbC5oPgorICMgaW5jbHVk ZSA8c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdudS9saWJjLXZlcnNpb24uaD4KKyAjIGlu Y2x1ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5cy9zaG0uaD4KKyAjIGluY2x1ZGUgPGxp bmsuaD4KK0BAIC01OTcsNiArNTk2LDEyIEBAIHZvaWQgb3M6OkxpbnV4Ojpob3RzcG90X3NpZ21h c2soVGhyZWFkKiB0aHJlYWQpIHsKKyAvLyBkZXRlY3RpbmcgcHRocmVhZCBsaWJyYXJ5CisgCisg dm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKysjaWYgIWRlZmluZWQoX19HTElC Q19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAgLy8gSGFyZCBjb2RlIEFscGluZSBMaW51 eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRpbmdzCisrICAvLyBzZ246IE5QVEwgaXMg Y29ycmVjdCwgZG9uJ3Qga25vdyBhYm91dCBnbGliYyAyLjksIGFscGluZSdzIHRoaW5nPworKyAg b3M6OkxpbnV4OjpzZXRfZ2xpYmNfdmVyc2lvbigiZ2xpYmMgMi45Iik7CisrICBvczo6TGludXg6 OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oIk5QVEwiKTsKKysjZWxzZQorICAgLy8gU2F2ZSBnbGli YyBhbmQgcHRocmVhZCB2ZXJzaW9uIHN0cmluZ3MuCisgI2lmICFkZWZpbmVkKF9DU19HTlVfTElC Q19WRVJTSU9OKSB8fCBcCisgICAgICFkZWZpbmVkKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9O KQorQEAgLTYxNCw2ICs2MTksNyBAQCB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkg eworICAgc3RyID0gKGNoYXIgKiltYWxsb2MobiwgbXRJbnRlcm5hbCk7CisgICBjb25mc3RyKF9D U19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBzdHIsIG4pOworICAgb3M6OkxpbnV4OjpzZXRfbGli cHRocmVhZF92ZXJzaW9uKHN0cik7CisrI2VuZGlmCisgfQorIAorIC8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vCitAQCAtMzExNywyMCArMzEyMywzNiBAQCB2b2lkIG9zOjpMaW51eDo6c2NoZWRfZ2V0Y3B1 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 b3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7CistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGlu dXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94 ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1LDYgQEAKKyAjIGluY2x1ZGUgPHB3ZC5o PgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0jaWZuZGVm IEFNRDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorLSNlbmRpZgorIAorICNpZmRlZiBB TUQ2NAorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL2dj L3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvZ2Mv c2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitAQCAtMTExNiw3ICsxMTE2LDcgQEAgSGVhcFdv cmQqIEdlbkNvbGxlY3RlZEhlYXA6OmFsbG9jYXRlX25ld190bGFiKHNpemVfdCBtaW5fc2l6ZSwK KyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFsbGVzdFNjcmF0Y2goU2NyYXRjaEJsb2Nr ICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0cnVlOworICAgc2l6ZV90IG1pbl9zaXpl ID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29uY2VwdHVhbGx5IGluZmluaXRlLgorLSAg U2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21hbGxlc3Q7CisrICBTY3JhdGNoQmxvY2sg KipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7CisgICBTY3JhdGNoQmxvY2sgICpjdXIg PSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7CisgICAgIGFzc2VydCgqcHJldl9wdHIgPT0g Y3VyLCAianVzdCBjaGVja2luZyIpOworLS0tIGEvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS9h YnN0cmFjdF92bV92ZXJzaW9uLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvcnVudGltZS9h YnN0cmFjdF92bV92ZXJzaW9uLmNwcAorQEAgLTI3NCw3ICsyNzQsNyBAQCBjb25zdCBjaGFyKiBB YnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9pbmZvX3N0cmluZygpIHsKKyAgICNlbmRp ZgorIAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9OX1NVRkZJWCBWTV9SRUxFQVNFICIpIiBc CistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIFwKKysgICAgICAg ICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgTElCQyBcCisgICAgICAgICAgIiBK UkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9uICIgX19EQVRFX18gIiAiIF9fVElNRV9f IFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9UX0JVSUxEX1VTRVIpICIgd2l0aCAiIEhP VFNQT1RfQlVJTERfQ09NUElMRVIKKyAKKy0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL3V0aWxpdGll cy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCisrKysgYi9zcmMvaG90c3BvdC9zaGFyZS91dGls aXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorQEAgLTIwNCw3ICsyMDQsNyBAQCBpbmxp bmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuZChmKTsgfQorICNlbGlmIGRl ZmluZWQoX19BUFBMRV9fKQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4g aXNuYW4oZik7IH0KKyAjZWxpZiBkZWZpbmVkKExJTlVYKSB8fCBkZWZpbmVkKF9BTExCU0RfU09V UkNFKQorLWlubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4gaXNuYW5mKGYpOyB9 CisraW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25hbihmKTsgfQorIGlu bGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxzZQor ICNlcnJvciAibWlzc2luZyBwbGF0Zm9ybS1zcGVjaWZpYyBkZWZpbml0aW9uIGhlcmUiCistLS0g YS9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xvc2UuYworKysrIGIv c3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMKK0BAIC02MCw3 ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKKyAvKgorICAqIFNpZ25hbCB0byB1bmJsb2NrIHRo cmVhZAorICAqLworLXN0YXRpYyBpbnQgc2lnV2FrZXVwID0gKF9fU0lHUlRNQVggLSAyKTsKKytz dGF0aWMgaW50IHNpZ1dha2V1cDsKKyAKKyAvKgorICAqIGZkVGFibGUgaG9sZHMgb25lIGVudHJ5 IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEgY2VydGFpbgorQEAgLTE0OSw2ICsxNDksNyBA QCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZSgoY29uc3RydWN0b3IpKSBpbml0KCkgeworICAgICAv KgorICAgICAgKiBTZXR1cCB0aGUgc2lnbmFsIGhhbmRsZXIKKyAgICAgICovCisrICAgIHNpZ1dh a2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAgICAgc2Euc2FfaGFuZGxlciA9IHNpZ193YWtldXA7Cisg ICAgIHNhLnNhX2ZsYWdzICAgPSAwOworICAgICBzaWdlbXB0eXNldCgmc2Euc2FfbWFzayk7Cist LS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMKKysrKyBi L3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2MuYworQEAgLTIzNSw3 ICsyMzUsMTMgQEAgSkRLX2V4ZWN2cGUoaW50IG1vZGUsIGNvbnN0IGNoYXIgKmZpbGUsCisgewor ICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFyICoqKSBlbnZwID09IGVudmlyb24pIHsKKyAg ICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikgYXJndik7CistICAgICAgICByZXR1cm47Cisr ICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0aGF0IHRoZSBmaWxlIGhlYWRlciB3YXMgbm90 IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAgICAgIC8vIGxpYnJhcnkgZG9lcyBub3QgaW1w bGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3NoIGZvciB0aGF0IGNhc2UsIHNvIGZhbGwKKysg ICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUgYmVsb3cgd2hpY2ggaW1wbGVtZW50cyB0aGF0 IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBleGVjdmVfd2l0aF9zaGVsbF9mYWxsYmFjay4K KysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVDKSB7CisrICAgICAgICAgICAgcmV0dXJuOwor KyAgICAgICAgfQorICAgICB9CisgCisgICAgIGlmICgqZmlsZSA9PSAnXDAnKSB7CistLS0gYS9z cmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQuaAorKysrIGIvc3Jj L2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKK0BAIC0zNyw3ICsz Nyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9fbGlu dXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKKyAjaW5jbHVkZSA8bWF0aC5oPgorLSNk ZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuKGYpCisg I2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgI2luY2x1 ZGUgPG1hdGguaD4KKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamxpL2phdmFf bWRfc29saW51eC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZh X21kX3NvbGludXguYworQEAgLTIzNiw2ICsyMzYsMzkgQEAgUmVxdWlyZXNTZXRlbnYoY29uc3Qg Y2hhciAqanZtcGF0aCkgeworICAgICBjaGFyICpkbWxscCA9IE5VTEw7CisgICAgIGNoYXIgKnA7 IC8qIGEgdXRpbGl0eSBwb2ludGVyICovCisgCisrI2lmZGVmIF9fbGludXgKKysjaWZuZGVmIExJ QkMKKysjZXJyb3IgIkxJQkMgbm90IHNldCIKKysjZW5kaWYKKysKKysgICAgaWYgKHN0cmNtcChM SUJDLCAibXVzbCIpID09IDApIHsKKysgICAgICAvKgorKyAgICAgICAqIFRoZSBtdXNsIGxpYnJh cnkgbG9hZGVyIHJlcXVpcmVzIExEX0xJQlJBUllfUEFUSCB0byBiZSBzZXQgaW4KKysgICAgICAg KiBvcmRlciB0byBjb3JyZWN0bHkgcmVzb2x2ZSB0aGUgZGVwZW5kZW5jeSBsaWJqYXZhLnNvIGhh cyBvbiBsaWJqdm0uc28uCisrICAgICAgICoKKysgICAgICAgKiBTcGVjaWZpY2FsbHksIGl0IGRp ZmZlcnMgZnJvbSBnbGliYyBpbiB0aGUgc2Vuc2UgdGhhdCBldmVuIGlmCisrICAgICAgICogbGli anZtLnNvIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkIGl0IHdpbGwgbm90IGJlIGNvbnNpZGVyZWQg YQorKyAgICAgICAqIGNhbmRpZGF0ZSBmb3IgcmVzb2x2aW5nIHRoZSBkZXBlbmRlbmN5IHVubGVz cyB0aGUgKmZ1bGwqIHBhdGgKKysgICAgICAgKiBvZiB0aGUgYWxyZWFkeSBsb2FkZWQgbGlicmFy eSBtYXRjaGVzIHRoZSBkZXBlbmRlbmN5IGJlaW5nIGxvYWRlZC4KKysgICAgICAgKgorKyAgICAg ICAqIGxpYmp2bS5zbyBpcyBiZWluZyBsb2FkZWQgYnkgdGhlIGxhdW5jaGVyIHVzaW5nIGEgbG9u ZyBwYXRoIHRvCisrICAgICAgICogZGxvcGVuLCBub3QganVzdCB0aGUgYmFzZW5hbWUgb2YgdGhl IGxpYnJhcnkuIFR5cGljYWxseSB0aGlzCisrICAgICAgICogaXMgc29tZXRoaW5nIGxpa2UgIi4u L2xpYi9zZXJ2ZXIvbGlianZtLnNvIi4gSG93ZXZlciwgaWYvd2hlbgorKyAgICAgICAqIGxpYmp2 bS5zbyBsYXRlciB0cmllcyB0byBkbG9wZW4gbGliamF2YS5zbyAod2hpY2ggaXQgZG9lcyBpbgor KyAgICAgICAqIG9yZGVyIHRvIGdldCBhY2Nlc3MgdG8gYSBmZXcgZnVuY3Rpb25zIGltcGxlbWVu dGVkIGluCisrICAgICAgICogbGliamF2YS5zbykgdGhlIG11c2wgbG9hZGVyIHdpbGwsIGFzIHBh cnQgb2YgbG9hZGluZworKyAgICAgICAqIGRlcGVuZGVudCBsaWJyYXJpZXMsIHRyeSB0byBsb2Fk IGxpYmp2bS5zbyB1c2luZyBvbmx5IGl0cworKyAgICAgICAqIGJhc2VuYW1lICJsaWJqdm0uc28i LiBTaW5jZSB0aGlzIGRvZXMgbm90IG1hdGNoIHRoZSBsb25nZXIKKysgICAgICAgKiBwYXRoIHBh dGggaXQgd2FzIGZpcnN0IGxvYWRlZCB3aXRoLCB0aGUgYWxyZWFkeSBsb2FkZWQKKysgICAgICAg KiBsaWJyYXJ5IGlzIG5vdCBjb25zaWRlcmVkIGEgY2FuZGlkYXRlLCBhbmQgdGhlIGxvYWRlciB3 aWxsCisrICAgICAgICogaW5zdGVhZCBsb29rIGZvciBsaWJqdm0uc28gZWxzZXdoZXJlLiBJZiBp dCdzIG5vdCBpbgorKyAgICAgICAqIExEX0xJQlJBUllfUEFUSCB0aGUgZGVwZW5kZW5jeSBsb2Fk IHdpbGwgZmFpbCwgYW5kIGxpYmphdmEuc28KKysgICAgICAgKiB3aWxsIHRoZXJlZm9yZSBmYWls IGFzIHdlbGwuCisrICAgICAgICovCisrICAgICAgcmV0dXJuIEpOSV9UUlVFOworKyAgICB9Cisr I2VuZGlmCisrCisgI2lmZGVmIEFJWAorICAgICAvKiBXZSBhbHdheXMgaGF2ZSB0byBzZXQgdGhl IExJQlBBVEggb24gQUlYIGJlY2F1c2UgbGQgZG9lc24ndCBzdXBwb3J0ICRPUklHSU4uICovCisg ICAgIHJldHVybiBKTklfVFJVRTsKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGli bmlvL2NoL05hdGl2ZVRocmVhZC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xp Ym5pby9jaC9OYXRpdmVUaHJlYWQuYworQEAgLTM2LDcgKzM2LDcgQEAKKyAjaWZkZWYgX19saW51 eF9fCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZpbmVkIGluIG5ldC9s aW51eF9jbG9zZS5jICovCistICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKF9fU0lHUlRNQVgg LSAyKQorKyAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFMIChTSUdSVE1BWCAtIDIpCisgI2VsaWYg ZGVmaW5lZChfQUlYKQorICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAgIC8qIEFsc28gZGVmaW5l ZCBpbiBuZXQvYWl4X2Nsb3NlLmMgKi8KKy0tLSBhL3NyYy9qYXZhLmRlc2t0b3AvdW5peC9uYXRp dmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCisrKysgYi9zcmMvamF2YS5kZXNrdG9wL3Vu aXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworQEAgLTI3LDkgKzI3LDYgQEAK KyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2luY2x1ZGUgPFgxMS9Yb3MuaD4KKyAjaW5jbHVk ZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGludXhfXworLSNpbmNsdWRlIDxleGVjaW5mby5o PgorLSNlbmRpZgorIAorICNpbmNsdWRlIDxqdm0uaD4KKyAjaW5jbHVkZSA8am5pLmg+CitAQCAt NzgwLDI2ICs3NzcsNiBAQCBKTklFWFBPUlQganN0cmluZyBKTklDQUxMIEphdmFfc3VuX2F3dF9Y MTFfWFRvb2xraXRfZ2V0RW52CisgICAgIHJldHVybiByZXQ7CisgfQorIAorLSNpZmRlZiBfX2xp bnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZvaWQpCisteworLSAgdm9pZCAqYXJyYXlbMTBdOwor LSAgc2l6ZV90IHNpemU7CistICBjaGFyICoqc3RyaW5nczsKKy0gIHNpemVfdCBpOworLQorLSAg c2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEwKTsKKy0gIHN0cmluZ3MgPSBiYWNrdHJhY2Vfc3lt Ym9scyAoYXJyYXksIHNpemUpOworLQorLSAgZnByaW50ZiAoc3RkZXJyLCAiT2J0YWluZWQgJXpk IHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOworLQorLSAgZm9yIChpID0gMDsgaSA8IHNpemU7IGkr KykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXG4iLCBzdHJpbmdzW2ldKTsKKy0KKy0gIGZy ZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYKKy0KKyBXaW5kb3cgZ2V0X3hhd3Rfcm9vdF9zaGVs bChKTklFbnYgKmVudikgeworICAgc3RhdGljIGpjbGFzcyBjbGFzc1hSb290V2luZG93ID0gTlVM TDsKKyAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0aG9kR2V0WFJvb3RXaW5kb3cgPSBOVUxMOworLS0t IGEvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorKysrIGIv c3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwuaAorQEAgLTM1LDE1 ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1ha2Ugc3VyZSB0aGVz ZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5kZWYgZnJlZQorLSAg ICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmlu ZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAjdW5kZWYgbWFsbG9j CistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAg ICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFsbG9jCisgICAgICN1 bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVy ZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9jYWxs b2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9jKHApIERvIG5vdCB1 c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19ub3RfdXNlX3RoaXNf aW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAjZGVmaW5lIHN0cmR1 cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIHN0cmR1cCBkb19u b3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAorICNlbmRpZgorIAorICNpbmNsdWRlICJsb2df bWVzc2FnZXMuaCIKKy0tLSBhL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQ YWdlcy9leGVpbnZva2UuYworKysrIGIvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRpbWUvU3RhY2tH dWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiArMzMsNyBAQAorIAorICNpbmNsdWRlIDxh c3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+CisrI2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRl IDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CisgI2luY2x1ZGUgPHN0cmluZy5oPgor QEAgLTkxLDYgKzkyLDIwIEBAIHZvaWQgc2V0X3NpZ25hbF9oYW5kbGVyKCkgeworICAgfQorIH0K KyAKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXplICgpIHsKKysgIHNpemVfdCBzdGFja3NpemU7Cisr ICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAgSkRLMV8xSW5pdEFyZ3MgamRrX2FyZ3M7CisrCisr ICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZFUlNJT05fMV8xOworKyAgSk5JX0dldERlZmF1bHRK YXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOworKyAgaWYgKGpka19hcmdzLmphdmFTdGFja1NpemUg PD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwgIlRlc3QgRVJST1IuIENhbid0IGdldCBhIHZh bGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBzdGFja3NpemUuXG4iKTsKKysgICAgZXhpdCg3KTsK KysgIH0KKysgIHJldHVybiBqZGtfYXJncy5qYXZhU3RhY2tTaXplOworK30KKysKKyB2b2lkICpy dW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkgeworICAgSk5JRW52ICplbnY7CisgICBqY2xhc3Mg Y2xhc3NfaWQ7CitAQCAtMjU4LDEzICsyNzMsMTkgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25z dCBjaGFyKiogYXJndikgeworICAgICBleGl0KDcpOworICAgfQorIAorKyAgaW50IHN0YWNrX3Np emUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0aHJlYWRfdCB0aHI7CisrICBwdGhyZWFk X2F0dHJfdCB0aHJlYWRfYXR0cjsKKysKKysgIHB0aHJlYWRfYXR0cl9pbml0KCZ0aHJlYWRfYXR0 cik7CisrICBwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplKCZ0aHJlYWRfYXR0ciwgc3RhY2tfc2l6 ZSk7CisgCisgICBpZiAoYXJnYyA+IDEgJiYgc3RyY21wKGFyZ3ZbMV0sICJ0ZXN0X2phdmFfb3Zl cmZsb3ciKSA9PSAwKSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIEpBVkFfT1ZFUkZMT1dcbiIp OworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9y IG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5f amF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisrICAgIHB0aHJlYWRfY3JlYXRlICgmdGhyLCAmdGhy ZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0 aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhh dmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BAIC0yNzcsNyArMjk4LDcgQEAgaW50IG1h aW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBwcmludGYoIlxuVGVzdGlu ZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3Vh cmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3Jl YXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsKKysgICAgcHRocmVh ZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7 CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKyAKKyAgICAgcHJpbnRmKCJUZXN0aW5n IHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBpbml0aWFsIHRocmVhZFxuIik7CmRpZmYg LS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3Bw Yy5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMv cHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZDMwNmQ1 MDFlNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL2Zp 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 bHVkZSAicnVudGltZS90aHJlYWQuaHBwIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsx NC1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNjRjMTg5MDM2YQotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3Mvb3BlbmpkazE0LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNo CkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxp bnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUx N2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9v c19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3Qvb3Nf Y3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtOTAsNiArOTAsMTI2IEBACisgI2Rl ZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5kaWYgLy8gQU1ENjQKKworKy8vID09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20gZ2xpYmMgMi4yOAorKy8vIHNvdXJjZTogaHR0 cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5c2RlcHMveDg2 L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4OTdmZjRlNTgyNmQyMjhjYmE2YmU1ODllMjRk O2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNjYTM5MmJiYTdhOTljMmIKKysvLyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0CisrLyogRlBVIGNvbnRyb2wgd29yZCBiaXRz LiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAxOTkzLTIwMTggRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExp YnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xhZiBGbGViYmUuCisrCisrICAgVGhlIEdOVSBD IExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y CisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs IFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUgQyBMaWJyYXJ5 IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisrICAg YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0 aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cDovL3d3dy5nbnUub3JnL2xp Y2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQVV9DT05UUk9MX0gKKysjZGVmaW5lIF9GUFVf Q09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQgdGhpcyBmaWxlIHNldHMgb24geDg2LTY0IG9u bHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90CisrICAgdG91Y2ggdGhlIFNTRSB1bml0LiAgKi8K KysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0LiBTZXQgdXAgeW91ciAzODcgdGhyb3VnaCB0 aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdpc3Rlci4KKysgKgorKyAqICAgICAxNS0xMyAg ICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1ICAgIDQgICAgMyAgICAyICAgIDEgICAgMAor KyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8IFVNIHwgT00g fCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJbnZhbGlkIG9wZXJhdGlvbiBtYXNrCisrICog RE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sKKysgKiBaTTogWmVyby1kaXZpZGUgbWFzawor KyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06IFVuZGVyZmxvdyBtYXNrCisrICogUE06IFBy ZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sKKysgKgorKyAqIE1hc2sgYml0IGlzIDEgbWVh bnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6IFByZWNpc2lvbiBjb250cm9sCisrICogMTEg LSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24KKysgKiAxMCAtIHJvdW5kIHRvIGRvdWJsZSBw cmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNpbmdsZSBwcmVjaXNpb24KKysgKgorKyAqIFJD OiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSByb3VuZGluZyB0byBuZWFyZXN0CisrICogMDEg LSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZpbml0eSkKKysgKiAxMCAtIHJvdW5kaW5nIHVw ICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAtIHJvdW5kaW5nIHRvd2FyZCB6ZXJvCisrICoK KysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAqIFRoYXQgaXMgZm9yIDgwODcgYW5kIDgwMjg3 IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUgZGVmYXVsdCBpcyAweDAzN2Ygd2hpY2ggd2Ug dXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgorKworKy8qIG1hc2tpbmcgb2Yg aW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9NQVNLX0lNICAweDAxCisrI2RlZmluZSBfRlBV X01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVfTUFTS19aTSAgMHgwNAorKyNkZWZpbmUgX0ZQ VV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBVX01BU0tfVU0gIDB4MTAKKysjZGVmaW5lIF9G UFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNpc2lvbiBjb250cm9sICovCisrI2RlZmluZSBf RlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVxdWlyZXMgZG91YmxlIGV4dGVuZGVkIHByZWNp c2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJMRSAgIDB4MjAwCisrI2RlZmluZSBfRlBVX1NJ TkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNvbnRyb2wgKi8KKysjZGVmaW5lIF9GUFVfUkNf TkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQgKi8KKysjZGVmaW5lIF9GUFVfUkNfRE9XTiAg ICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAgICAgIDB4ODAwCisrI2RlZmluZSBfRlBVX1JD X1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9GUFVfUkVTRVJWRUQgMHhGMEMwICAvKiBSZXNl cnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyogVGhlIGZkbGlibSBjb2RlIHJlcXVpcmVzIHN0 cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJpdGhtZXRpYywKKysgICBhbmQgbm8gaW50ZXJy dXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcgdG8gbmVhcmVzdC4gICovCisrCisrI2RlZmlu ZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8qIElFRUU6ICBzYW1lIGFzIGFib3ZlLiAgKi8K KysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdmCisrCisrLyogVHlwZSBvZiB0aGUgY29udHJv bCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVkIGludCBmcHVfY29udHJvbF90IF9fYXR0cmli dXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOworKworKy8qIE1hY3JvcyBmb3IgYWNjZXNzaW5n IHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAiKiYiIGlzIHVzZWQgdG8KKysgICB3b3JrIGFy b3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBHQ0MuICBfX3ZvbGF0aWxlX18gaXMgdXNl ZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24gb2Ygd3JpdGluZyB0aGUgY29udHJvbCByZWdp c3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2suICBXaXRob3V0IF9fdm9sYXRpbGVfXywgdGhl IG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVhZGluZworKyAgIGJhY2sgdW5kZXIgY29tcGls ZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIHRoZXNlIG1hY3Jv cyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdpdGgKKysgICByZWNlbnQgaGFyZHdhcmUgbm9y IG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUKKysgICBleGVj dXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3aGljaCBoYXZlIHRoZWlyIG93biBjb250cm9s IGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICovCisrI2RlZmluZSBfRlBVX0dFVENXKGN3KSBf X2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIgOiAiPW0iICgqJmN3KSkKKysjZGVmaW5l IF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZmxkY3cgJTAiIDogOiAibSIg KComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJvbCB3b3JkIHNldCBhdCBzdGFydHVwLiAgKi8K KytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9jb250cm9sOworKworKyNlbmRpZgkvKiBmcHVf Y29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFNRDY0CisrLy8gPT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2ludGVyKCkgeworICNpZmRlZiBTUEFS Q19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNwOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVu amRrMTQtYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL3Rl bXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNDRjYWE4YzU4 MjU1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTQtYm9vdHN0cmFwL3RlbXBs YXRlCkBAIC0wLDAgKzEsMTE2IEBACisjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuamRrMTQtYm9v dHN0cmFwJworX2phdmFfdmVyPTE0CitfamF2YV9taW5fdmVyPTAKK19qYXZhX3NlY192ZXI9Mgor X2pka191cGRhdGU9MTIKK19qZGtfaG9tZT0idXNyL2xpYi9qdm0vb3BlbmpkayR7X2phdmFfdmVy fSIKK19iYXNlX3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZhX21pbl92ZXJ9LiR7X2phdmFf c2VjX3Zlcn0iCisKK3BrZ25hbWU9b3BlbmpkazE0LWJvb3RzdHJhcAordmVyc2lvbj0iJHtfYmFz ZV92ZXJzaW9ufSske19qZGtfdXBkYXRlfSIKK3JldmlzaW9uPTEKK3dya3NyYz0iamRrJHtfamF2 YV92ZXJ9dS1qZGstJHt2ZXJzaW9ufSIKK2J1aWxkX3N0eWxlPWdudS1jb25maWd1cmUKK2NvbmZp Z3VyZV9hcmdzPSIKKyAtLWRpc2FibGUtd2FybmluZ3MtYXMtZXJyb3JzCisgLS1wcmVmaXg9JHtY QlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91c3IvbGliCisgLS1lbmFibGUtdW5s aW1pdGVkLWNyeXB0bworIC0td2l0aC16bGliPXN5c3RlbQorIC0td2l0aC1saWJqcGVnPXN5c3Rl bQorIC0td2l0aC1naWZsaWI9c3lzdGVtCisgLS13aXRoLWxpYnBuZz1zeXN0ZW0KKyAtLXdpdGgt bGNtcz1zeXN0ZW0KKyAtLXdpdGgtanRyZWc9bm8KKyAtLXdpdGgtdmVyc2lvbi1idWlsZD0kX2ph dmFfdmVyCisgLS13aXRoLWpvYnM9JFhCUFNfT1JJR19NQUtFSk9CUworIC0td2l0aC12ZW5kb3It bmFtZT1Wb2lkCisgLS13aXRoLXZlbmRvci11cmw9aHR0cHM6Ly92b2lkbGludXgub3JnLworIC0t d2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBh Y2thZ2VzL2lzc3VlcworIC0td2l0aC12ZW5kb3Itdm0tYnVnLXVybD1odHRwczovL2dpdGh1Yi5j b20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcworIC0td2l0aC1ib290LWpkaz0vdXNy L2xpYi9qdm0vb3BlbmpkazEzIgorbWFrZV9idWlsZF9hcmdzPSJpbWFnZXMiCittYWtlX2NoZWNr X3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ctY29uZmln IGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFyIHVuemlwIHppcCBjYS1jZXJ0aWZpY2F0ZXMKKyBs aWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1ha2UtY2Egb3BlbmpkazEzLWJvb3RzdHJhcCIKK21h a2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliWHQtZGV2ZWwgbGli WHJhbmRyLWRldmVsCisgZ2lmbGliLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwgY3Vwcy1kZXZl bCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1kZXZlbAorIGZvbnRjb25maWctZGV2ZWwgemxpYi1k ZXZlbCBsY21zMi1kZXZlbCBvcGVuamRrMTMtYm9vdHN0cmFwIgorcHJvdmlkZXM9ImphdmEtZW52 aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEtcnVudGltZS0ke3ZlcnNpb259XzEiCitzaG9ydF9k ZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0IChib290c3RyYXAgdmVyc2lvbiAxNCki CittYWludGFpbmVyPSLEkG/DoG4gVHLhuqduIEPDtG5nIERhbmggPGNvbmdkYW5ocXhAZ21haWwu Y29tPiIKK2xpY2Vuc2U9IkdQTC0yLjAtb3ItbGF0ZXIiCitob21lcGFnZT0iaHR0cDovL29wZW5q ZGsuamF2YS5uZXQvIgorZGlzdGZpbGVzPSJodHRwczovL2hnLm9wZW5qZGsuamF2YS5uZXQvamRr LXVwZGF0ZXMvamRrJHtfamF2YV92ZXJ9dS9hcmNoaXZlL2pkay0ke3ZlcnNpb259LnRhci5neiIK K2NoZWNrc3VtPWRmYjM2MDdmMWI2NzU0NThmMjlhMTg1YTQwZjFkYmJmODk2NDM5Y2YzM2IzYWEw ZjNkODlkZjI5N2U2MDQ5MzUKK25vY3Jvc3M9eWVzCisKKyMgQnVpbGQgaXMgc3RpbGwgcGFyYWxs ZWwsIGJ1dCBkb24ndCB1c2UgLWpOLgorZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15ZXMKKworIyBu byBob3RzcG90IEpJVCBmb3IgcHBjMzIKK2Nhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgor CXBwYzY0KikgOzsKKwlwcGMqKSBfdXNlX3plcm89eWVzIDs7Citlc2FjCisKK2lmIFsgLW4gIiRf dXNlX3plcm8iIF07IHRoZW4KKwltYWtlZGVwZW5kcys9IiBsaWJmZmktZGV2ZWwiCisJY29uZmln dXJlX2FyZ3MrPSIgLS13aXRoLWp2bS12YXJpYW50cz16ZXJvIgorCWNhc2UgIiRYQlBTX1RBUkdF VF9NQUNISU5FIiBpbgorCQlwcGMqKSBjb25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGst anZtYXJncz0tWFg6VGhyZWFkU3RhY2tTaXplPTI1NjAiOzsKKwllc2FjCitmaQorCitwb3N0X2V4 dHJhY3QoKSB7CisJY2htb2QgK3ggY29uZmlndXJlCisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMi ID0gIm11c2wiIF07IHRoZW4KKwkJcm0gLXIgc3JjL2pkay5ob3RzcG90LmFnZW50CisJZmkKK30K KworcG9zdF9wYXRjaCgpIHsKKwlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsg dGhlbgorCQlmb3IgZiBpbiAiJHtGSUxFU0RJUn0iL211c2xfcGF0Y2hlcy8qLnBhdGNoOyBkbwor CQkJbXNnX25vcm1hbCAiQXBwbHlpbmcgJHtmIyRGSUxFU0RJUi99XG4iCisJCQlwYXRjaCAtc2xO cDEgLWkgIiRmIgorCQlkb25lCisJZmkKK30KKworZG9fY29uZmlndXJlKCkgeworCUNGTEFHUz0k e0NGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKwlDWFhGTEFHUz0ke0NYWEZMQUdTLy1EX0ZP UlRJRllfU09VUkNFPTIvfQorCisJIyBmb3JjZSBFTEZ2MiBmb3IgcHBjNjQganVzdCBpbiBjYXNl CisJY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCisJCXBwYzY0KikKKwkJCUNGTEFHUys9 IiAtREFCSV9FTEZ2MiIKKwkJCUNYWEZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJOzsKKwllc2Fj CisKKwkjIGNvbXBhdGliaWxpdHkgd2l0aCBHQ0MgMTAueAorCUNGTEFHUys9IiAtZmNvbW1vbiAt Zm5vLWxpZmV0aW1lLWRzZSIKKwlDWFhGTEFHUys9IiAtZmNvbW1vbiAtZm5vLWxpZmV0aW1lLWRz ZSIKKworCWNvbmZpZ3VyZV9hcmdzPSR7Y29uZmlndXJlX2FyZ3MvLS13aXRoLWxpYnRvb2wtc3lz cm9vdD1cL3VzclwvW2EtejAtOV0qLWxpbnV4LVthLXpdKi99CisJaWYgWyAiJFhCUFNfQ0NBQ0hF IiBdOyB0aGVuCisJCWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNjYWNoZSIKKwlmaQorCUND PSIvdXNyL2Jpbi9jYyIKKwlDWFg9Ii91c3IvYmluL2MrKyIKKwkuL2NvbmZpZ3VyZSAke2NvbmZp Z3VyZV9hcmdzfSBcCisJCS0td2l0aC1leHRyYS1jZmxhZ3M9IiRDRkxBR1MiIFwKKwkJLS13aXRo LWV4dHJhLWN4eGZsYWdzPSIkQ1hYRkxBR1MiIFwKKwkJLS13aXRoLWV4dHJhLWxkZmxhZ3M9IiRM REZMQUdTIiBcCisJCVJFQURFTEY9JFJFQURFTEYgQVI9JEFSIFNUUklQPSRTVFJJUCBOTT0kTk0g XAorCQlPQkpEVU1QPSRPQkpEVU1QIE9CSkNPUFk9JE9CSkNPUFkKK30KKworcG9zdF9pbnN0YWxs KCkgeworCW12ICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19iYXNlX3ZlcnNpb259 LWludGVybmFsICR7REVTVERJUn0vJF9qZGtfaG9tZQorCXJtIC1yZiAke0RFU1RESVJ9L3Vzci9s aWIvYmluCisJcm0gLWYgJERFU1RESVIvJF9qZGtfaG9tZS9saWIvc3JjLnppcAorCXZsaWNlbnNl IEFTU0VNQkxZX0VYQ0VQVElPTgorCXZsaWNlbnNlIExJQ0VOU0UKK30KZGlmZiAtLWdpdCBhL3Ny Y3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRj aCBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2 NC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmFhNmM1ZDRk MmJlMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxl cy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIGIv c3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BA IC03NCw3ICs3NCw2IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4K KyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorIAor ICNkZWZpbmUgUkVHX0ZQIDI5CisgI2RlZmluZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoIGIvc3Jj cGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi4xMDI0MjhmMTBmMzMKLS0tIC9k ZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRj aGVzL2FybS5wYXRjaApAQCAtMCwwICsxLDIxIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19jcHUv bGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51 eF9hcm0vb3NfbGludXhfYXJtLmNwcAorQEAgLTczLDYgKzczLDE4IEBACisgIyBpbmNsdWRlIDx1 Y29udGV4dC5oPgorICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorKy8vIFN0dXBpZCBoYWNr IGFzIHRoZSBvcmlnaW4gaWYgYmVsb3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6Cisr Ly8KKysvLyBvc19saW51eF9hcm0uY3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3Bl cmF0b3IgYmVmb3JlIHRva2VuICIoIgorKy8vICAjaWYgTkdSRUcgPT0gMTYKKysvLyAgICAgICBe fn5+fgorKy8vCisrLy8gVGhlIE5HUkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9y Y2UgaXQgdG8gdGhhdCB2YWx1ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1bmRlZiBOR1JFRworKyNl bmRpZgorKyNkZWZpbmUgTkdSRUcgMTgKKysKKyAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgor IAorIC8vIERvbid0ICNkZWZpbmUgU1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlz IG5vdCBzYWZlIHRvIHVzZSwgc28gdGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0Lgpk aWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9idWlsZC5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9maWxlcy9tdXNsX3Bh dGNoZXMvYnVpbGQucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw Li42MGRmZGVjMzBhYmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNS1ib290 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 ciBpbml0aWFsIHRocmVhZFxuIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNS1ib290 c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJv b3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvcHBjLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0 CmluZGV4IDAwMDAwMDAwMDAwMC4uZDMwNmQ1MDFlNGI4Ci0tLSAvZGV2L251bGwKKysrIGIvc3Jj cGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKQEAg 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 IC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy94 ODYucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNS1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVz L3g4Ni5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjljNjRj MTg5MDM2YQotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE1LWJvb3RzdHJhcC9m 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 OwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL3RlbXBsYXRlIGIvc3Jj cGtncy9vcGVuamRrMTUtYm9vdHN0cmFwL3RlbXBsYXRlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwMC4uODkzZmJkMTUxM2E1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtn cy9vcGVuamRrMTUtYm9vdHN0cmFwL3RlbXBsYXRlCkBAIC0wLDAgKzEsMTEyIEBACisjIFRlbXBs YXRlIGZpbGUgZm9yICdvcGVuamRrMTUtYm9vdHN0cmFwJworX2phdmFfdmVyPTE1CitfamF2YV9t aW5fdmVyPTAKK19qYXZhX3NlY192ZXI9MworX2pka191cGRhdGU9MworX2pka19ob21lPSJ1c3Iv bGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9IgorX2Jhc2VfdmVyc2lvbj0iJHtfamF2YV92ZXJ9 LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9zZWNfdmVyfSIKKworcGtnbmFtZT1vcGVuamRrMTUt Ym9vdHN0cmFwCit2ZXJzaW9uPSIke19iYXNlX3ZlcnNpb259KyR7X2pka191cGRhdGV9IgorcmV2 aXNpb249MQord3Jrc3JjPSJqZGske19qYXZhX3Zlcn11LWpkay0ke3ZlcnNpb259IgorYnVpbGRf c3R5bGU9Z251LWNvbmZpZ3VyZQorY29uZmlndXJlX2FyZ3M9IgorIC0tZGlzYWJsZS13YXJuaW5n cy1hcy1lcnJvcnMKKyAtLXByZWZpeD0ke1hCUFNfREVTVERJUn0vJHtwa2duYW1lfS0ke3ZlcnNp b259L3Vzci9saWIKKyAtLWVuYWJsZS11bmxpbWl0ZWQtY3J5cHRvCisgLS13aXRoLXpsaWI9c3lz dGVtCisgLS13aXRoLWxpYmpwZWc9c3lzdGVtCisgLS13aXRoLWdpZmxpYj1zeXN0ZW0KKyAtLXdp dGgtbGlicG5nPXN5c3RlbQorIC0td2l0aC1sY21zPXN5c3RlbQorIC0td2l0aC1qdHJlZz1ubwor IC0td2l0aC12ZXJzaW9uLWJ1aWxkPSRfamF2YV92ZXIKKyAtLXdpdGgtam9icz0kWEJQU19PUklH X01BS0VKT0JTCisgLS13aXRoLXZlbmRvci1uYW1lPVZvaWQKKyAtLXdpdGgtdmVuZG9yLXVybD1o dHRwczovL3ZvaWRsaW51eC5vcmcvCisgLS13aXRoLXZlbmRvci1idWctdXJsPWh0dHBzOi8vZ2l0 aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNzdWVzCisgLS13aXRoLXZlbmRvci12 bS1idWctdXJsPWh0dHBzOi8vZ2l0aHViLmNvbS92b2lkLWxpbnV4L3ZvaWQtcGFja2FnZXMvaXNz dWVzCisgLS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9vcGVuamRrMTQiCittYWtlX2J1aWxk X2FyZ3M9ImltYWdlcyIKK21ha2VfY2hlY2tfdGFyZ2V0PSJ0ZXN0LWhvdHNwb3QtZ3Rlc3QiCito b3N0bWFrZWRlcGVuZHM9InBrZy1jb25maWcgYXV0b21ha2UgYXV0b2NvbmYgY3BpbyB0YXIgdW56 aXAgemlwIGNhLWNlcnRpZmljYXRlcworIGxpYnJlc3NsIHpsaWItZGV2ZWwgd2hpY2ggbWFrZS1j YSBvcGVuamRrMTQtYm9vdHN0cmFwIgorbWFrZWRlcGVuZHM9ImxpYlhyZW5kZXItZGV2ZWwgbGli WHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFuZHItZGV2ZWwKKyBnaWZsaWItZGV2ZWwgbGli anBlZy10dXJiby1kZXZlbCBjdXBzLWRldmVsIGZyZWV0eXBlLWRldmVsIGFsc2EtbGliLWRldmVs CisgZm9udGNvbmZpZy1kZXZlbCB6bGliLWRldmVsIGxjbXMyLWRldmVsIGhhcmZidXp6LWRldmVs IG9wZW5qZGsxNC1ib290c3RyYXAiCitwcm92aWRlcz0iamF2YS1lbnZpcm9ubWVudC0ke3ZlcnNp b259XzEgamF2YS1ydW50aW1lLSR7dmVyc2lvbn1fMSIKK3Nob3J0X2Rlc2M9Ik9wZW5KREsgSmF2 YSBEZXZlbG9wbWVudCBLaXQgKGJvb3RzdHJhcCB2ZXJzaW9uIDE1KSIKK21haW50YWluZXI9IlRh aSBDaGkgTWluaCBSYWxwaCBFYXN0d29vZCA8dGNtcmVhc3R3b29kQGdtYWlsLmNvbT4iCitsaWNl bnNlPSJHUEwtMi4wLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHA6Ly9vcGVuamRrLmphdmEubmV0 LyIKK2Rpc3RmaWxlcz0iaHR0cHM6Ly9oZy5vcGVuamRrLmphdmEubmV0L2pkay11cGRhdGVzL2pk ayR7X2phdmFfdmVyfXUvYXJjaGl2ZS9qZGstJHt2ZXJzaW9ufS50YXIuZ3oiCitjaGVja3N1bT00 YmJkN2E3MzM1NGEyZDI0NGM3YTA3NTQwNjMzOWFhMGNlNGM1ZmM2YmU5MWE3OTVhZjkzMWY2ZGM5 NWQwNjdjCitub2Nyb3NzPXllcworCisjIEJ1aWxkIGlzIHN0aWxsIHBhcmFsbGVsLCBidXQgZG9u J3QgdXNlIC1qTi4KK2Rpc2FibGVfcGFyYWxsZWxfYnVpbGQ9eWVzCisKKyMgbm8gaG90c3BvdCBK SVQgZm9yIHBwYzMyCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGM2NCopIDs7 CisJcHBjKikgX3VzZV96ZXJvPXllcyA7OworZXNhYworCitpZiBbIC1uICIkX3VzZV96ZXJvIiBd OyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliZmZpLWRldmVsIgorCWNvbmZpZ3VyZV9hcmdzKz0i IC0td2l0aC1qdm0tdmFyaWFudHM9emVybyIKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIg aW4KKwkJcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrLWp2bWFyZ3M9LVhY OlRocmVhZFN0YWNrU2l6ZT0yNTYwIjs7CisJZXNhYworZmkKKworcG9zdF9leHRyYWN0KCkgewor CWNobW9kICt4IGNvbmZpZ3VyZQorCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBd OyB0aGVuCisJCXJtIC1yIHNyYy9qZGsuaG90c3BvdC5hZ2VudAorCWZpCit9CisKK3Bvc3RfcGF0 Y2goKSB7CisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMiID0gIm11c2wiIF07IHRoZW4KKwkJZm9y IGYgaW4gIiR7RklMRVNESVJ9Ii9tdXNsX3BhdGNoZXMvKi5wYXRjaDsgZG8KKwkJCW1zZ19ub3Jt YWwgIkFwcGx5aW5nICR7ZiMkRklMRVNESVIvfVxuIgorCQkJcGF0Y2ggLXNsTnAxIC1pICIkZiIK KwkJZG9uZQorCWZpCit9CisKK2RvX2NvbmZpZ3VyZSgpIHsKKwlDRkxBR1M9JHtDRkxBR1MvLURf Rk9SVElGWV9TT1VSQ0U9Mi99CisJQ1hYRkxBR1M9JHtDWFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJD RT0yL30KKworCSMgZm9yY2UgRUxGdjIgZm9yIHBwYzY0IGp1c3QgaW4gY2FzZQorCWNhc2UgIiRY QlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCopCisJCQlDRkxBR1MrPSIgLURBQklfRUxG djIiCisJCQlDWFhGTEFHUys9IiAtREFCSV9FTEZ2MiIKKwkJCTs7CisJZXNhYworCisJY29uZmln dXJlX2FyZ3M9JHtjb25maWd1cmVfYXJncy8tLXdpdGgtbGlidG9vbC1zeXNyb290PVwvdXNyXC9b YS16MC05XSotbGludXgtW2Etel0qL30KKwlpZiBbICIkWEJQU19DQ0FDSEUiIF07IHRoZW4KKwkJ Y29uZmlndXJlX2FyZ3MrPSIgLS1lbmFibGUtY2NhY2hlIgorCWZpCisJQ0M9Ii91c3IvYmluL2Nj IgorCUNYWD0iL3Vzci9iaW4vYysrIgorCS4vY29uZmlndXJlICR7Y29uZmlndXJlX2FyZ3N9IFwK KwkJLS13aXRoLWV4dHJhLWNmbGFncz0iJENGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEtY3h4Zmxh Z3M9IiRDWFhGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEtbGRmbGFncz0iJExERkxBR1MiIFwKKwkJ UkVBREVMRj0kUkVBREVMRiBBUj0kQVIgU1RSSVA9JFNUUklQIE5NPSROTSBcCisJCU9CSkRVTVA9 JE9CSkRVTVAgT0JKQ09QWT0kT0JKQ09QWQorfQorCitwb3N0X2luc3RhbGwoKSB7CisJbXYgJHtE RVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jhc2VfdmVyc2lvbn0taW50ZXJuYWwgJHtE RVNURElSfS8kX2pka19ob21lCisJcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KKwlybSAt ZiAkREVTVERJUi8kX2pka19ob21lL2xpYi9zcmMuemlwCisJdmxpY2Vuc2UgQVNTRU1CTFlfRVhD RVBUSU9OCisJdmxpY2Vuc2UgTElDRU5TRQorfQpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRr MTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoIGIvc3JjcGtncy9v cGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uYWE2YzVkNGQyYmUyCi0tLSAvZGV2 L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hl cy9hYXJjaDY0LnBhdGNoCkBAIC0wLDAgKzEsMTAgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2Nw dS9saW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNoNjQuY3BwCisrKysgYi9zcmMvaG90c3BvdC9v c19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorQEAgLTc0LDcgKzc0LDYg QEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8 dWNvbnRleHQuaD4KKy0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CisgCisgI2RlZmluZSBSRUdf RlAgMjkKKyAjZGVmaW5lIFJFR19MUiAzMApkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTYt Ym9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsx Ni1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjEwMjQyOGYxMGYzMwotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNo CkBAIC0wLDAgKzEsMjEgQEAKKy0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3Nf bGludXhfYXJtLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X2FybS9vc19saW51 eF9hcm0uY3BwCitAQCAtNzMsNiArNzMsMTggQEAKKyAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+Cisg IyBpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisgCisrLy8gU3R1cGlkIGhhY2sgYXMgdGhlIG9yaWdp biBpZiBiZWxvdyBkb2VzbnQgY29tcGlsZSB3aXRoIGdjYyA4LjIuMDoKKysvLworKy8vIG9zX2xp bnV4X2FybS5jcHA6MTE0OjU6IGVycm9yOiBtaXNzaW5nIGJpbmFyeSBvcGVyYXRvciBiZWZvcmUg dG9rZW4gIigiCisrLy8gICNpZiBOR1JFRyA9PSAxNgorKy8vICAgICAgIF5+fn5+CisrLy8KKysv LyBUaGUgTkdSRUcgaXMgMTggKGJpdHMvc2lnbmFsLmg6MTApLCBzbyBmb3JjZSBpdCB0byB0aGF0 IHZhbHVlLgorKyNpZmRlZiBOR1JFRworKyMgIHVuZGVmIE5HUkVHCisrI2VuZGlmCisrI2RlZmlu ZSBOR1JFRyAxOAorKworICNkZWZpbmUgU1BFTExfUkVHX1NQICAic3AiCisgCisgLy8gRG9uJ3Qg I2RlZmluZSBTUEVMTF9SRUdfRlAgZm9yIHRodW1iIGJlY2F1c2UgaXQgaXMgbm90IHNhZmUgdG8g dXNlLCBzbyB0aGlzIG1ha2VzIHN1cmUgd2UgbmV2ZXIgZmV0Y2ggaXQuCmRpZmYgLS1naXQgYS9z cmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNo IGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5w YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjYwZGZkZWMzMGFi YwotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9t dXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKQEAgLTAsMCArMSwzNzIgQEAKKy0tLSBhL21ha2UvUmVs ZWFzZUZpbGUuZ21rCisrKysgYi9tYWtlL1JlbGVhc2VGaWxlLmdtaworQEAgLTUzLDYgKzUzLDcg QEAgZGVmaW5lIGNyZWF0ZS1pbmZvLWZpbGUKKyAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIkpB VkFfVkVSU0lPTl9EQVRFIiwgIiQoVkVSU0lPTl9EQVRFKSIpCisgICAkKGNhbGwgaW5mby1maWxl LWl0ZW0sICJPU19OQU1FIiwgIiQoUkVMRUFTRV9GSUxFX09TX05BTUUpIikKKyAgICQoY2FsbCBp bmZvLWZpbGUtaXRlbSwgIk9TX0FSQ0giLCAiJChSRUxFQVNFX0ZJTEVfT1NfQVJDSCkiKQorKyAg JChjYWxsIGluZm8tZmlsZS1pdGVtLCAiTElCQyIsICJtdXNsIikKKyBlbmRlZgorIAorICMgUGFy YW0gMSAtIFRoZSBmaWxlIGNvbnRhaW5pbmcgdGhlIE1PRFVMRVMgbGlzdAorLS0tIGEvbWFrZS9o b3RzcG90L2xpYi9Db21waWxlSnZtLmdtaworKysrIGIvbWFrZS9ob3RzcG90L2xpYi9Db21waWxl SnZtLmdtaworQEAgLTczLDYgKzczLDcgQEAgQ0ZMQUdTX1ZNX1ZFUlNJT04gOj0gXAorICAgICAt REhPVFNQT1RfQlVJTERfVVNFUj0nIiQoVVNFUk5BTUUpIicgXAorICAgICAtREhPVFNQT1RfVk1f RElTVFJPPSciJChIT1RTUE9UX1ZNX0RJU1RSTykiJyBcCisgICAgIC1EQ1BVPSciJChPUEVOSkRL X1RBUkdFVF9DUFVfVk1fVkVSU0lPTikiJyBcCisrICAgIC1ETElCQz0nIm11c2wiJyBcCisgICAg ICMKKyAKKyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworLS0tIGEvbWFrZS9saWIvQ29yZUxpYnJh cmllcy5nbWsKKysrKyBiL21ha2UvbGliL0NvcmVMaWJyYXJpZXMuZ21rCitAQCAtMTkwLDYgKzE5 MCw3IEBAIGlmZXEgKCQoY2FsbCBpc1RhcmdldE9zLCB3aW5kb3dzKSwgdHJ1ZSkKKyBlbmRpZgor IAorIExJQkpMSV9DRkxBR1MgKz0gJChMSUJaX0NGTEFHUykKKytMSUJKTElfQ0ZMQUdTICs9IC1E TElCQz1cIm11c2xcIgorIAorIGlmbmVxICgkKFVTRV9FWFRFUk5BTF9MSUJaKSwgdHJ1ZSkKKyAg IExJQkpMSV9FWFRSQV9GSUxFUyArPSBcCistLS0gYS9zcmMvaG90c3BvdC9vcy9saW51eC9vc19s aW51eC5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAorQEAgLTEw Miw3ICsxMDIsNiBAQAorICMgaW5jbHVkZSA8c3RyaW5nLmg+CisgIyBpbmNsdWRlIDxzeXNjYWxs Lmg+CisgIyBpbmNsdWRlIDxzeXMvc3lzaW5mby5oPgorLSMgaW5jbHVkZSA8Z251L2xpYmMtdmVy c2lvbi5oPgorICMgaW5jbHVkZSA8c3lzL2lwYy5oPgorICMgaW5jbHVkZSA8c3lzL3NobS5oPgor ICMgaW5jbHVkZSA8bGluay5oPgorQEAgLTU5Nyw2ICs1OTYsMTIgQEAgdm9pZCBvczo6TGludXg6 OmhvdHNwb3Rfc2lnbWFzayhUaHJlYWQqIHRocmVhZCkgeworIC8vIGRldGVjdGluZyBwdGhyZWFk IGxpYnJhcnkKKyAKKyB2b2lkIG9zOjpMaW51eDo6bGlicHRocmVhZF9pbml0KCkgeworKyNpZiAh ZGVmaW5lZChfX0dMSUJDX18pICYmICFkZWZpbmVkKF9fVUNMSUJDX18pCisrICAvLyBIYXJkIGNv ZGUgQWxwaW5lIExpbnV4IHN1cHBvcnRlZCBtdXNsIGNvbXBhdGlibGUgc2V0dGluZ3MKKysgIC8v IHNnbjogTlBUTCBpcyBjb3JyZWN0LCBkb24ndCBrbm93IGFib3V0IGdsaWJjIDIuOSwgYWxwaW5l J3MgdGhpbmc/CisrICBvczo6TGludXg6OnNldF9nbGliY192ZXJzaW9uKCJnbGliYyAyLjkiKTsK KysgIG9zOjpMaW51eDo6c2V0X2xpYnB0aHJlYWRfdmVyc2lvbigiTlBUTCIpOworKyNlbHNlCisg ICAvLyBTYXZlIGdsaWJjIGFuZCBwdGhyZWFkIHZlcnNpb24gc3RyaW5ncy4KKyAjaWYgIWRlZmlu ZWQoX0NTX0dOVV9MSUJDX1ZFUlNJT04pIHx8IFwKKyAgICAgIWRlZmluZWQoX0NTX0dOVV9MSUJQ VEhSRUFEX1ZFUlNJT04pCitAQCAtNjE0LDYgKzYxOSw3IEBAIHZvaWQgb3M6OkxpbnV4OjpsaWJw dGhyZWFkX2luaXQoKSB7CisgICBzdHIgPSAoY2hhciAqKW1hbGxvYyhuLCBtdEludGVybmFsKTsK KyAgIGNvbmZzdHIoX0NTX0dOVV9MSUJQVEhSRUFEX1ZFUlNJT04sIHN0ciwgbik7CisgICBvczo6 TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oc3RyKTsKKysjZW5kaWYKKyB9CisgCisgLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8KK0BAIC0zMTE3LDIwICszMTIzLDM2IEBAIHZvaWQgb3M6OkxpbnV4 OjpzY2hlZF9nZXRjcHVfaW5pdCgpIHsKKyBleHRlcm4gIkMiIEpOSUVYUE9SVCB2b2lkIG51bWFf d2FybihpbnQgbnVtYmVyLCBjaGFyICp3aGVyZSwgLi4uKSB7IH0KKyBleHRlcm4gIkMiIEpOSUVY UE9SVCB2b2lkIG51bWFfZXJyb3IoY2hhciAqd2hlcmUpIHsgfQorIAorK3N0YXRpYyB2b2lkKiBk bHZzeW1faWZfYXZhaWxhYmxlKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3Qg Y2hhciogdmVyc2lvbikgeworKyAgdHlwZWRlZiB2b2lkKiAoKmRsdnN5bV9mdW5jX3R5cGUpKHZv aWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFtZSwgY29uc3QgY2hhciogdmVyc2lvbik7CisrICBz dGF0aWMgZGx2c3ltX2Z1bmNfdHlwZSBkbHZzeW1fZnVuYzsKKysgIHN0YXRpYyBib29sIGluaXRp YWxpemVkID0gZmFsc2U7CisrCisrICBpZiAoIWluaXRpYWxpemVkKSB7CisrICAgIGRsdnN5bV9m dW5jID0gKGRsdnN5bV9mdW5jX3R5cGUpZGxzeW0oUlRMRF9ORVhULCAiZGx2c3ltIik7CisrICAg IGluaXRpYWxpemVkID0gdHJ1ZTsKKysgIH0KKysKKysgIGlmIChkbHZzeW1fZnVuYyAhPSBOVUxM KSB7CisrICAgIHZvaWQgKmYgPSBkbHZzeW1fZnVuYyhoYW5kbGUsIG5hbWUsIHZlcnNpb24pOwor KyAgICBpZiAoZiAhPSBOVUxMKSB7CisrICAgICAgcmV0dXJuIGY7CisrICAgIH0KKysgIH0KKysK KysgIHJldHVybiBkbHN5bShoYW5kbGUsIG5hbWUpOworK30KKysKKyAvLyBIYW5kbGUgcmVxdWVz dCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4xIChBUEkgdjEpLiBJZiBpdCBmYWls cworIC8vIGxvYWQgc3ltYm9sIGZyb20gYmFzZSB2ZXJzaW9uIGluc3RlYWQuCisgdm9pZCogb3M6 OkxpbnV4OjpsaWJudW1hX2Rsc3ltKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciAqbmFtZSkgewor LSAgdm9pZCAqZiA9IGRsdnN5bShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOworLSAgaWYg KGYgPT0gTlVMTCkgeworLSAgICBmID0gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKy0gIH0KKy0gIHJl dHVybiBmOworKyAgcmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFibGUoaGFuZGxlLCBuYW1lLCAibGli bnVtYV8xLjEiKTsKKyB9CisgCisgLy8gSGFuZGxlIHJlcXVlc3QgdG8gbG9hZCBsaWJudW1hIHN5 bWJvbCB2ZXJzaW9uIDEuMiAoQVBJIHYyKSBvbmx5LgorIC8vIFJldHVybiBOVUxMIGlmIHRoZSBz eW1ib2wgaXMgbm90IGRlZmluZWQgaW4gdGhpcyBwYXJ0aWN1bGFyIHZlcnNpb24uCisgdm9pZCog b3M6OkxpbnV4OjpsaWJudW1hX3YyX2Rsc3ltKHZvaWQqIGhhbmRsZSwgY29uc3QgY2hhciogbmFt ZSkgeworLSAgcmV0dXJuIGRsdnN5bShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMiIpOworKyAg cmV0dXJuIGRsdnN5bV9pZl9hdmFpbGFibGUoaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsK KyB9CisgCisgYm9vbCBvczo6TGludXg6OmxpYm51bWFfaW5pdCgpIHsKKy0tLSBhL3NyYy9ob3Rz cG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qv b3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtNzUsOSArNzUsNiBAQAorICMg aW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1Y29udGV4 dC5oPgorLSNpZm5kZWYgQU1ENjQKKy0jIGluY2x1ZGUgPGZwdV9jb250cm9sLmg+CistI2VuZGlm CisgCisgI2lmZGVmIEFNRDY0CisgI2RlZmluZSBSRUdfU1AgUkVHX1JTUAorLS0tIGEvc3JjL2hv dHNwb3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCisrKysgYi9zcmMvaG90 c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2VuQ29sbGVjdGVkSGVhcC5jcHAKK0BAIC0xMTE2LDcgKzEx MTYsNyBAQCBIZWFwV29yZCogR2VuQ29sbGVjdGVkSGVhcDo6YWxsb2NhdGVfbmV3X3RsYWIoc2l6 ZV90IG1pbl9zaXplLAorIHN0YXRpYyBTY3JhdGNoQmxvY2sgKnJlbW92ZVNtYWxsZXN0U2NyYXRj aChTY3JhdGNoQmxvY2sgKipwcmV2X3B0cikgeworICAgYm9vbCBmaXJzdCA9IHRydWU7CisgICBz aXplX3QgbWluX3NpemUgPSAwOyAgIC8vICJmaXJzdCIgbWFrZXMgdGhpcyBjb25jZXB0dWFsbHkg aW5maW5pdGUuCistICBTY3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIsICpzbWFsbGVzdDsKKysg IFNjcmF0Y2hCbG9jayAqKnNtYWxsZXN0X3B0ciA9IE5VTEwsICpzbWFsbGVzdDsKKyAgIFNjcmF0 Y2hCbG9jayAgKmN1ciA9ICpwcmV2X3B0cjsKKyAgIHdoaWxlIChjdXIpIHsKKyAgICAgYXNzZXJ0 KCpwcmV2X3B0ciA9PSBjdXIsICJqdXN0IGNoZWNraW5nIik7CistLS0gYS9zcmMvaG90c3BvdC9z aGFyZS9ydW50aW1lL2Fic3RyYWN0X3ZtX3ZlcnNpb24uY3BwCisrKysgYi9zcmMvaG90c3BvdC9z aGFyZS9ydW50aW1lL2Fic3RyYWN0X3ZtX3ZlcnNpb24uY3BwCitAQCAtMjc0LDcgKzI3NCw3IEBA IGNvbnN0IGNoYXIqIEFic3RyYWN0X1ZNX1ZlcnNpb246OmludGVybmFsX3ZtX2luZm9fc3RyaW5n KCkgeworICAgI2VuZGlmCisgCisgICAjZGVmaW5lIElOVEVSTkFMX1ZFUlNJT05fU1VGRklYIFZN X1JFTEVBU0UgIikiIFwKKy0gICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9T VFIgXAorKyAgICAgICAgICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBMSUJDIFwK KyAgICAgICAgICAiIEpSRSAoIiBWRVJTSU9OX1NUUklORyAiKSwgYnVpbHQgb24gIiBfX0RBVEVf XyAiICIgX19USU1FX18gXAorICAgICAgICAgICIgYnkgIiBYU1RSKEhPVFNQT1RfQlVJTERfVVNF UikgIiB3aXRoICIgSE9UU1BPVF9CVUlMRF9DT01QSUxFUgorIAorLS0tIGEvc3JjL2hvdHNwb3Qv c2hhcmUvdXRpbGl0aWVzL2dsb2JhbERlZmluaXRpb25zX2djYy5ocHAKKysrKyBiL3NyYy9ob3Rz cG90L3NoYXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCitAQCAtMjA0LDcg KzIwNCw3IEBAIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW5kKGYp OyB9CisgI2VsaWYgZGVmaW5lZChfX0FQUExFX18pCisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJs ZSBmKSB7IHJldHVybiBpc25hbihmKTsgfQorICNlbGlmIGRlZmluZWQoTElOVVgpIHx8IGRlZmlu ZWQoX0FMTEJTRF9TT1VSQ0UpCistaW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVy biBpc25hbmYoZik7IH0KKytpbmxpbmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlz bmFuKGYpOyB9CisgaW5saW5lIGludCBnX2lzbmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbihm KTsgfQorICNlbHNlCisgI2Vycm9yICJtaXNzaW5nIHBsYXRmb3JtLXNwZWNpZmljIGRlZmluaXRp b24gaGVyZSIKKy0tLSBhL3NyYy9qYXZhLmJhc2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9j bG9zZS5jCisrKysgYi9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xv c2UuYworQEAgLTYwLDcgKzYwLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeworIC8qCisgICogU2lnbmFs IHRvIHVuYmxvY2sgdGhyZWFkCisgICovCistc3RhdGljIGludCBzaWdXYWtldXAgPSAoX19TSUdS VE1BWCAtIDIpOworK3N0YXRpYyBpbnQgc2lnV2FrZXVwOworIAorIC8qCisgICogZmRUYWJsZSBo b2xkcyBvbmUgZW50cnkgcGVyIGZpbGUgZGVzY3JpcHRvciwgdXAgdG8gYSBjZXJ0YWluCitAQCAt MTQ5LDYgKzE0OSw3IEBAIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlKChjb25zdHJ1Y3RvcikpIGlu aXQoKSB7CisgICAgIC8qCisgICAgICAqIFNldHVwIHRoZSBzaWduYWwgaGFuZGxlcgorICAgICAg Ki8KKysgICAgc2lnV2FrZXVwID0gU0lHUlRNQVggLSAyOworICAgICBzYS5zYV9oYW5kbGVyID0g c2lnX3dha2V1cDsKKyAgICAgc2Euc2FfZmxhZ3MgICA9IDA7CisgICAgIHNpZ2VtcHR5c2V0KCZz YS5zYV9tYXNrKTsKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGls ZHByb2MuYworKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJv Yy5jCitAQCAtMjM1LDcgKzIzNSwxMyBAQCBKREtfZXhlY3ZwZShpbnQgbW9kZSwgY29uc3QgY2hh ciAqZmlsZSwKKyB7CisgICAgIGlmIChlbnZwID09IE5VTEwgfHwgKGNoYXIgKiopIGVudnAgPT0g ZW52aXJvbikgeworICAgICAgICAgZXhlY3ZwKGZpbGUsIChjaGFyICoqKSBhcmd2KTsKKy0gICAg ICAgIHJldHVybjsKKysgICAgICAgIC8vIEVOT0VYRUMgaW5kaWNhdGVzIHRoYXQgdGhlIGZpbGUg aGVhZGVyIHdhcyBub3QgcmVjb2duaXplZC4gVGhlIG11c2wgQworKyAgICAgICAgLy8gbGlicmFy eSBkb2VzIG5vdCBpbXBsZW1lbnQgdGhlIGZhbGxiYWNrIHRvIC9iaW4vc2ggZm9yIHRoYXQgY2Fz ZSwgc28gZmFsbAorKyAgICAgICAgLy8gdGhyb3VnaCB0byB0aGUgY29kZSBiZWxvdyB3aGljaCBp bXBsZW1lbnRzIHRoYXQgZmFsbGJhY2sgdXNpbmcKKysgICAgICAgIC8vIGV4ZWN2ZV93aXRoX3No ZWxsX2ZhbGxiYWNrLgorKyAgICAgICAgaWYgKGVycm5vICE9IEVOT0VYRUMpIHsKKysgICAgICAg ICAgICByZXR1cm47CisrICAgICAgICB9CisgICAgIH0KKyAKKyAgICAgaWYgKCpmaWxlID09ICdc MCcpIHsKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRpbF9t ZC5oCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQu aAorQEAgLTM3LDcgKzM3LDcgQEAKKyAjZGVmaW5lIElTTkFORChkKSBpc25hbihkKQorICNlbGlm IGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9BTExCU0RfU09VUkNFKQorICNpbmNsdWRl IDxtYXRoLmg+CistI2RlZmluZSBJU05BTkYoZikgaXNuYW5mKGYpCisrI2RlZmluZSBJU05BTkYo ZikgaXNuYW4oZikKKyAjZGVmaW5lIElTTkFORChkKSBpc25hbihkKQorICNlbGlmIGRlZmluZWQo X0FJWCkKKyAjaW5jbHVkZSA8bWF0aC5oPgorLS0tIGEvc3JjL2phdmEuYmFzZS91bml4L25hdGl2 ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4LmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRp dmUvbGliamxpL2phdmFfbWRfc29saW51eC5jCitAQCAtMjM2LDYgKzIzNiwzOSBAQCBSZXF1aXJl c1NldGVudihjb25zdCBjaGFyICpqdm1wYXRoKSB7CisgICAgIGNoYXIgKmRtbGxwID0gTlVMTDsK KyAgICAgY2hhciAqcDsgLyogYSB1dGlsaXR5IHBvaW50ZXIgKi8KKyAKKysjaWZkZWYgX19saW51 eAorKyNpZm5kZWYgTElCQworKyNlcnJvciAiTElCQyBub3Qgc2V0IgorKyNlbmRpZgorKworKyAg ICBpZiAoc3RyY21wKExJQkMsICJtdXNsIikgPT0gMCkgeworKyAgICAgIC8qCisrICAgICAgICog VGhlIG11c2wgbGlicmFyeSBsb2FkZXIgcmVxdWlyZXMgTERfTElCUkFSWV9QQVRIIHRvIGJlIHNl dCBpbgorKyAgICAgICAqIG9yZGVyIHRvIGNvcnJlY3RseSByZXNvbHZlIHRoZSBkZXBlbmRlbmN5 IGxpYmphdmEuc28gaGFzIG9uIGxpYmp2bS5zby4KKysgICAgICAgKgorKyAgICAgICAqIFNwZWNp ZmljYWxseSwgaXQgZGlmZmVycyBmcm9tIGdsaWJjIGluIHRoZSBzZW5zZSB0aGF0IGV2ZW4gaWYK KysgICAgICAgKiBsaWJqdm0uc28gaGFzIGFscmVhZHkgYmVlbiBsb2FkZWQgaXQgd2lsbCBub3Qg YmUgY29uc2lkZXJlZCBhCisrICAgICAgICogY2FuZGlkYXRlIGZvciByZXNvbHZpbmcgdGhlIGRl cGVuZGVuY3kgdW5sZXNzIHRoZSAqZnVsbCogcGF0aAorKyAgICAgICAqIG9mIHRoZSBhbHJlYWR5 IGxvYWRlZCBsaWJyYXJ5IG1hdGNoZXMgdGhlIGRlcGVuZGVuY3kgYmVpbmcgbG9hZGVkLgorKyAg ICAgICAqCisrICAgICAgICogbGlianZtLnNvIGlzIGJlaW5nIGxvYWRlZCBieSB0aGUgbGF1bmNo ZXIgdXNpbmcgYSBsb25nIHBhdGggdG8KKysgICAgICAgKiBkbG9wZW4sIG5vdCBqdXN0IHRoZSBi YXNlbmFtZSBvZiB0aGUgbGlicmFyeS4gVHlwaWNhbGx5IHRoaXMKKysgICAgICAgKiBpcyBzb21l dGhpbmcgbGlrZSAiLi4vbGliL3NlcnZlci9saWJqdm0uc28iLiBIb3dldmVyLCBpZi93aGVuCisr ICAgICAgICogbGlianZtLnNvIGxhdGVyIHRyaWVzIHRvIGRsb3BlbiBsaWJqYXZhLnNvICh3aGlj aCBpdCBkb2VzIGluCisrICAgICAgICogb3JkZXIgdG8gZ2V0IGFjY2VzcyB0byBhIGZldyBmdW5j dGlvbnMgaW1wbGVtZW50ZWQgaW4KKysgICAgICAgKiBsaWJqYXZhLnNvKSB0aGUgbXVzbCBsb2Fk ZXIgd2lsbCwgYXMgcGFydCBvZiBsb2FkaW5nCisrICAgICAgICogZGVwZW5kZW50IGxpYnJhcmll cywgdHJ5IHRvIGxvYWQgbGlianZtLnNvIHVzaW5nIG9ubHkgaXRzCisrICAgICAgICogYmFzZW5h bWUgImxpYmp2bS5zbyIuIFNpbmNlIHRoaXMgZG9lcyBub3QgbWF0Y2ggdGhlIGxvbmdlcgorKyAg ICAgICAqIHBhdGggcGF0aCBpdCB3YXMgZmlyc3QgbG9hZGVkIHdpdGgsIHRoZSBhbHJlYWR5IGxv YWRlZAorKyAgICAgICAqIGxpYnJhcnkgaXMgbm90IGNvbnNpZGVyZWQgYSBjYW5kaWRhdGUsIGFu ZCB0aGUgbG9hZGVyIHdpbGwKKysgICAgICAgKiBpbnN0ZWFkIGxvb2sgZm9yIGxpYmp2bS5zbyBl bHNld2hlcmUuIElmIGl0J3Mgbm90IGluCisrICAgICAgICogTERfTElCUkFSWV9QQVRIIHRoZSBk ZXBlbmRlbmN5IGxvYWQgd2lsbCBmYWlsLCBhbmQgbGliamF2YS5zbworKyAgICAgICAqIHdpbGwg dGhlcmVmb3JlIGZhaWwgYXMgd2VsbC4KKysgICAgICAgKi8KKysgICAgICByZXR1cm4gSk5JX1RS VUU7CisrICAgIH0KKysjZW5kaWYKKysKKyAjaWZkZWYgQUlYCisgICAgIC8qIFdlIGFsd2F5cyBo YXZlIHRvIHNldCB0aGUgTElCUEFUSCBvbiBBSVggYmVjYXVzZSBsZCBkb2Vzbid0IHN1cHBvcnQg JE9SSUdJTi4gKi8KKyAgICAgcmV0dXJuIEpOSV9UUlVFOworLS0tIGEvc3JjL2phdmEuYmFzZS91 bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0aXZlVGhyZWFkLmMKKysrKyBiL3NyYy9qYXZhLmJhc2Uv dW5peC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCitAQCAtMzYsNyArMzYsNyBAQAor ICNpZmRlZiBfX2xpbnV4X18KKyAgICNpbmNsdWRlIDxwdGhyZWFkLmg+CisgICAvKiBBbHNvIGRl ZmluZWQgaW4gbmV0L2xpbnV4X2Nsb3NlLmMgKi8KKy0gICNkZWZpbmUgSU5URVJSVVBUX1NJR05B TCAoX19TSUdSVE1BWCAtIDIpCisrICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwgKFNJR1JUTUFY IC0gMikKKyAjZWxpZiBkZWZpbmVkKF9BSVgpCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAg LyogQWxzbyBkZWZpbmVkIGluIG5ldC9haXhfY2xvc2UuYyAqLworLS0tIGEvc3JjL2phdmEuZGVz a3RvcC91bml4L25hdGl2ZS9saWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMKKysrKyBiL3NyYy9q YXZhLmRlc2t0b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCitAQCAt MjcsOSArMjcsNiBAQAorICNpbmNsdWRlIDxYMTEvWHV0aWwuaD4KKyAjaW5jbHVkZSA8WDExL1hv cy5oPgorICNpbmNsdWRlIDxYMTEvWGF0b20uaD4KKy0jaWZkZWYgX19saW51eF9fCistI2luY2x1 ZGUgPGV4ZWNpbmZvLmg+CistI2VuZGlmCisgCisgI2luY2x1ZGUgPGp2bS5oPgorICNpbmNsdWRl IDxqbmkuaD4KK0BAIC03ODAsMjYgKzc3Nyw2IEBAIEpOSUVYUE9SVCBqc3RyaW5nIEpOSUNBTEwg SmF2YV9zdW5fYXd0X1gxMV9YVG9vbGtpdF9nZXRFbnYKKyAgICAgcmV0dXJuIHJldDsKKyB9Cisg CistI2lmZGVmIF9fbGludXhfXworLXZvaWQgcHJpbnRfc3RhY2sodm9pZCkKKy17CistICB2b2lk ICphcnJheVsxMF07CistICBzaXplX3Qgc2l6ZTsKKy0gIGNoYXIgKipzdHJpbmdzOworLSAgc2l6 ZV90IGk7CistCistICBzaXplID0gYmFja3RyYWNlIChhcnJheSwgMTApOworLSAgc3RyaW5ncyA9 IGJhY2t0cmFjZV9zeW1ib2xzIChhcnJheSwgc2l6ZSk7CistCistICBmcHJpbnRmIChzdGRlcnIs ICJPYnRhaW5lZCAlemQgc3RhY2sgZnJhbWVzLlxuIiwgc2l6ZSk7CistCistICBmb3IgKGkgPSAw OyBpIDwgc2l6ZTsgaSsrKQorLSAgICAgZnByaW50ZiAoc3RkZXJyLCAiJXNcbiIsIHN0cmluZ3Nb aV0pOworLQorLSAgZnJlZSAoc3RyaW5ncyk7CistfQorLSNlbmRpZgorLQorIFdpbmRvdyBnZXRf eGF3dF9yb290X3NoZWxsKEpOSUVudiAqZW52KSB7CisgICBzdGF0aWMgamNsYXNzIGNsYXNzWFJv b3RXaW5kb3cgPSBOVUxMOworICAgc3RhdGljIGptZXRob2RJRCBtZXRob2RHZXRYUm9vdFdpbmRv dyA9IE5VTEw7CistLS0gYS9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3Av dXRpbC5oCisrKysgYi9zcmMvamRrLmpkd3AuYWdlbnQvc2hhcmUvbmF0aXZlL2xpYmpkd3AvdXRp bC5oCitAQCAtMzUsMTUgKzM1LDE1IEBACisgI2lmZGVmIERFQlVHCisgICAgIC8qIEp1c3QgdG8g bWFrZSBzdXJlIHRoZXNlIGludGVyZmFjZXMgYXJlIG5vdCB1c2VkIGhlcmUuICovCisgICAgICN1 bmRlZiBmcmVlCistICAgICNkZWZpbmUgZnJlZShwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNl LgorKyAgICAjZGVmaW5lIGZyZWUgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9mcmVlCisgICAg ICN1bmRlZiBtYWxsb2MKKy0gICAgI2RlZmluZSBtYWxsb2MocCkgRG8gbm90IHVzZSB0aGlzIGlu dGVyZmFjZS4KKysgICAgI2RlZmluZSBtYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9t YWxsb2MKKyAgICAgI3VuZGVmIGNhbGxvYworLSAgICAjZGVmaW5lIGNhbGxvYyhwKSBEbyBub3Qg dXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5lIGNhbGxvYyBkb19ub3RfdXNlX3RoaXNf aW50ZXJmYWNlX2NhbGxvYworICAgICAjdW5kZWYgcmVhbGxvYworLSAgICAjZGVmaW5lIHJlYWxs b2MocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSByZWFsbG9jIGRv X25vdF91c2VfdGhpc19pbnRlcmZhY2VfcmVhbGxvYworICAgICAjdW5kZWYgc3RyZHVwCistICAg ICNkZWZpbmUgc3RyZHVwKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZp bmUgc3RyZHVwIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2Vfc3RyZHVwCisgI2VuZGlmCisgCisg I2luY2x1ZGUgImxvZ19tZXNzYWdlcy5oIgorLS0tIGEvdGVzdC9ob3RzcG90L2p0cmVnL3J1bnRp bWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCisrKysgYi90ZXN0L2hvdHNwb3QvanRyZWcv cnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52b2tlLmMKK0BAIC0zMyw2ICszMyw3IEBACisg CisgI2luY2x1ZGUgPGFzc2VydC5oPgorICNpbmNsdWRlIDxqbmkuaD4KKysjaW5jbHVkZSA8anZt Lmg+CisgI2luY2x1ZGUgPGFsbG9jYS5oPgorICNpbmNsdWRlIDxzaWduYWwuaD4KKyAjaW5jbHVk ZSA8c3RyaW5nLmg+CitAQCAtOTEsNiArOTIsMjAgQEAgdm9pZCBzZXRfc2lnbmFsX2hhbmRsZXIo KSB7CisgICB9CisgfQorIAorK2ludCBnZXRfamF2YV9zdGFja3NpemUgKCkgeworKyAgc2l6ZV90 IHN0YWNrc2l6ZTsKKysgIHB0aHJlYWRfYXR0cl90IGF0dHI7CisrICBKREsxXzFJbml0QXJncyBq ZGtfYXJnczsKKysKKysgIGpka19hcmdzLnZlcnNpb24gPSBKTklfVkVSU0lPTl8xXzE7CisrICBK TklfR2V0RGVmYXVsdEphdmFWTUluaXRBcmdzKCZqZGtfYXJncyk7CisrICBpZiAoamRrX2FyZ3Mu amF2YVN0YWNrU2l6ZSA8PSAwKSB7CisrICAgIGZwcmludGYoc3RkZXJyLCAiVGVzdCBFUlJPUi4g Q2FuJ3QgZ2V0IGEgdmFsaWQgdmFsdWUgZm9yIHRoZSBkZWZhdWx0IHN0YWNrc2l6ZS5cbiIpOwor KyAgICBleGl0KDcpOworKyAgfQorKyAgcmV0dXJuIGpka19hcmdzLmphdmFTdGFja1NpemU7Cisr fQorKworIHZvaWQgKnJ1bl9qYXZhX292ZXJmbG93ICh2b2lkICpwKSB7CisgICBKTklFbnYgKmVu djsKKyAgIGpjbGFzcyBjbGFzc19pZDsKK0BAIC0yNTgsMTMgKzI3MywxOSBAQCBpbnQgbWFpbiAo aW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSB7CisgICAgIGV4aXQoNyk7CisgICB9CisgCisr ICBpbnQgc3RhY2tfc2l6ZSA9IGdldF9qYXZhX3N0YWNrc2l6ZSgpOworICAgcHRocmVhZF90IHRo cjsKKysgIHB0aHJlYWRfYXR0cl90IHRocmVhZF9hdHRyOworKworKyAgcHRocmVhZF9hdHRyX2lu aXQoJnRocmVhZF9hdHRyKTsKKysgIHB0aHJlYWRfYXR0cl9zZXRzdGFja3NpemUoJnRocmVhZF9h dHRyLCBzdGFja19zaXplKTsKKyAKKyAgIGlmIChhcmdjID4gMSAmJiBzdHJjbXAoYXJndlsxXSwg InRlc3RfamF2YV9vdmVyZmxvdyIpID09IDApIHsKKyAgICAgcHJpbnRmKCJcblRlc3RpbmcgSkFW QV9PVkVSRkxPV1xuIik7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFyZCBwYWdl IGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsKKy0gICAgcHRocmVhZF9jcmVhdGUgKCZ0 aHIsIE5VTEwsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxMKTsKKysKKysgICAgcHRocmVhZF9jcmVh dGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX2phdmFfb3ZlcmZsb3csIE5VTEwpOworICAgICBw dGhyZWFkX2pvaW4gKHRociwgTlVMTCk7CisgCisgICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBn dWFyZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0aHJlYWRcbiIpOworQEAgLTI3Nyw3ICsy OTgsNyBAQCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNvbnN0IGNoYXIqKiBhcmd2KSB7CisgICAgIHBy aW50ZigiXG5UZXN0aW5nIE5BVElWRV9PVkVSRkxPV1xuIik7CisgCisgICAgIHByaW50ZigiVGVz dGluZyBzdGFjayBndWFyZCBwYWdlIGJlaGF2aW91ciBmb3Igb3RoZXIgdGhyZWFkXG4iKTsKKy0g ICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsIE5VTEwsIHJ1bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwp OworKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRocmVhZF9hdHRyLCBydW5fbmF0aXZlX292 ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRocmVhZF9qb2luICh0aHIsIE5VTEwpOworIAorICAgICBw cmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhy ZWFkXG4iKTsKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9t dXNsX3BhdGNoZXMvcHBjLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVz L211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi5kMzA2ZDUwMWU0YjgKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsx Ni1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaApAQCAtMCwwICsxLDQ1IEBA CitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5h bHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFh NjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3JvQXNzZW1i bGVyX3BwYy5jcHAKKysrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9w cGMuY3BwCitAQCAtNDcsNiArNDcsOCBAQAorICNpbmNsdWRlICJvcHRvL2ludHJpbnNpY25vZGUu aHBwIgorICNlbmRpZgorIAorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrCisgI2lmZGVmIFBS T0RVQ1QKKyAjZGVmaW5lIEJMT0NLX0NPTU1FTlQoc3RyKSAvLyBub3RoaW5nCisgI2Vsc2UKKy0t LSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKKysrKyBuZXcvc3Jj L2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKK0BAIC04NDUsNyArODQ1LDcgQEAg dm9pZCBWTV9WZXJzaW9uOjpkZXRlcm1pbmVfZmVhdHVyZXMoKSB7CisgICB1bnNpZ25lZCBsb25n IGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsKKyAKKyAgIGlmIChhdXh2ICYgUFBDX0ZFQVRV UkUyX0hUTV9OT1NDKSB7CistICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hBU19IVE0pIHsK KysgICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNKSB7CisgICAgICAgLy8gVE0gb24gUE9X RVI4IGFuZCBQT1dFUjkgaW4gY29tcGF0IG1vZGUgKFZNKSBpcyBzdXBwb3J0ZWQgYnkgdGhlIEpW TS4KKyAgICAgICAvLyBUTSBvbiBQT1dFUjkgREQyLjEgTlYgKGJhcmVtZXRhbCkgaXMgbm90IHN1 cHBvcnRlZCBieSB0aGUgSlZNIChUTSBvbgorICAgICAgIC8vIFBPV0VSOSBERDIuMSBOViBoYXMg YSBmZXcgaXNzdWVzIHRoYXQgbmVlZCBhIGNvdXBsZSBvZiBmaXJtd2FyZQorLS0tIG9sZC9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAKKysrKyBuZXcvc3JjL2hv dHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCitAQCAtNzUsNyArNzUsNyBA QAorICMgaW5jbHVkZSA8cHdkLmg+CisgIyBpbmNsdWRlIDxwb2xsLmg+CisgIyBpbmNsdWRlIDx1 Y29udGV4dC5oPgorLQorKyMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAorIGFkZHJlc3Mgb3M6 OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKKyAgIGludHB0cl90KiBjc3A7CistLS0gb2xkL3Ny Yy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKKysrKyBuZXcv c3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAorQEAgLTIz LDYgKzIzLDggQEAKKyAgKgorICAqLworIAorKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+CisrCisg I2luY2x1ZGUgInByZWNvbXBpbGVkLmhwcCIKKyAjaW5jbHVkZSAicnVudGltZS9mcmFtZS5pbmxp bmUuaHBwIgorICNpbmNsdWRlICJydW50aW1lL3RocmVhZC5ocHAiCmRpZmYgLS1naXQgYS9zcmNw a2dzL29wZW5qZGsxNi1ib290c3RyYXAvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaCBiL3Ny Y3BrZ3Mvb3BlbmpkazE2LWJvb3RzdHJhcC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoCm5l dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOWM2NGMxODkwMzZhCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTYtYm9vdHN0cmFwL2ZpbGVzL211c2xfcGF0 Y2hlcy94ODYucGF0Y2gKQEAgLTAsMCArMSwxMzAgQEAKK1BhdGNoZXMgZm9yIG11c2wgdGFrZW4g ZnJvbSBBbHBpbmUgbGludXg6IGh0dHBzOi8vZ2l0LmFscGluZWxpbnV4Lm9yZy9hcG9ydHMvY29t bWl0Lz9pZD04YTFhZTE3ZDRhOWFmNTQyODVjNzg5MWE2ODA2MjBlN2UyNGM2MjgwCistLS0gb2xk L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorKysrIG5ldy9z cmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKK0BAIC05MCw2ICs5 MCwxMjYgQEAKKyAjZGVmaW5lIFNQRUxMX1JFR19GUCAiZWJwIgorICNlbmRpZiAvLyBBTUQ2NAor CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gVGFrZW4gZnJvbSBnbGliYyAyLjI4Cisr Ly8gc291cmNlOiBodHRwczovL3NvdXJjZXdhcmUub3JnL2dpdC8/cD1nbGliYy5naXQ7YT1ibG9i O2Y9c3lzZGVwcy94ODYvZnB1X2NvbnRyb2wuaDtoPTRjYjk4YzU2NzliMjg5N2ZmNGU1ODI2ZDIy OGNiYTZiZTU4OWUyNGQ7aGI9M2MwM2JhY2EzN2ZkY2I1MmMzODgxZTY1M2NhMzkyYmJhN2E5OWMy YgorKy8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorKyNpZm5kZWYgQU1ENjQKKysvKiBGUFUgY29u dHJvbCB3b3JkIGJpdHMuICB4ODYgdmVyc2lvbi4KKysgICBDb3B5cmlnaHQgKEMpIDE5OTMtMjAx OCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKysgICBUaGlzIGZpbGUgaXMgcGFydCBv ZiB0aGUgR05VIEMgTGlicmFyeS4KKysgICBDb250cmlidXRlZCBieSBPbGFmIEZsZWJiZS4KKysK KysgICBUaGUgR05VIEMgTGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp YnV0ZSBpdCBhbmQvb3IKKysgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg TGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisrICAgdmVyc2lvbiAyLjEgb2YgdGhlIExp Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisrCisrICAgVGhl IEdOVSBDIExpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl IHVzZWZ1bCwKKysgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg aW1wbGllZCB3YXJyYW50eSBvZgorKyAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB IFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisrICAgTGVzc2VyIEdlbmVyYWwgUHVi bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKysKKysgICBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisrICAgTGljZW5z ZSBhbG9uZyB3aXRoIHRoZSBHTlUgQyBMaWJyYXJ5OyBpZiBub3QsIHNlZQorKyAgIDxodHRwOi8v d3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisrCisrI2lmbmRlZiBfRlBVX0NPTlRST0xfSAor KyNkZWZpbmUgX0ZQVV9DT05UUk9MX0gJMQorKworKy8qIE5vdGUgdGhhdCB0aGlzIGZpbGUgc2V0 cyBvbiB4ODYtNjQgb25seSB0aGUgeDg3IEZQVSwgaXQgZG9lcyBub3QKKysgICB0b3VjaCB0aGUg U1NFIHVuaXQuICAqLworKworKy8qIEhlcmUgaXMgdGhlIGRpcnR5IHBhcnQuIFNldCB1cCB5b3Vy IDM4NyB0aHJvdWdoIHRoZSBjb250cm9sIHdvcmQKKysgKiAoY3cpIHJlZ2lzdGVyLgorKyAqCisr ICogICAgIDE1LTEzICAgIDEyICAxMS0xMCAgOS04ICAgICA3LTYgICAgIDUgICAgNCAgICAzICAg IDIgICAgMSAgICAwCisrICogfCByZXNlcnZlZCB8IElDIHwgUkMgIHwgUEMgfCByZXNlcnZlZCB8 IFBNIHwgVU0gfCBPTSB8IFpNIHwgRE0gfCBJTQorKyAqCisrICogSU06IEludmFsaWQgb3BlcmF0 aW9uIG1hc2sKKysgKiBETTogRGVub3JtYWxpemVkIG9wZXJhbmQgbWFzaworKyAqIFpNOiBaZXJv LWRpdmlkZSBtYXNrCisrICogT006IE92ZXJmbG93IG1hc2sKKysgKiBVTTogVW5kZXJmbG93IG1h c2sKKysgKiBQTTogUHJlY2lzaW9uIChpbmV4YWN0IHJlc3VsdCkgbWFzaworKyAqCisrICogTWFz ayBiaXQgaXMgMSBtZWFucyBubyBpbnRlcnJ1cHQuCisrICoKKysgKiBQQzogUHJlY2lzaW9uIGNv bnRyb2wKKysgKiAxMSAtIHJvdW5kIHRvIGV4dGVuZGVkIHByZWNpc2lvbgorKyAqIDEwIC0gcm91 bmQgdG8gZG91YmxlIHByZWNpc2lvbgorKyAqIDAwIC0gcm91bmQgdG8gc2luZ2xlIHByZWNpc2lv bgorKyAqCisrICogUkM6IFJvdW5kaW5nIGNvbnRyb2wKKysgKiAwMCAtIHJvdW5kaW5nIHRvIG5l YXJlc3QKKysgKiAwMSAtIHJvdW5kaW5nIGRvd24gKHRvd2FyZCAtIGluZmluaXR5KQorKyAqIDEw IC0gcm91bmRpbmcgdXAgKHRvd2FyZCArIGluZmluaXR5KQorKyAqIDExIC0gcm91bmRpbmcgdG93 YXJkIHplcm8KKysgKgorKyAqIElDOiBJbmZpbml0eSBjb250cm9sCisrICogVGhhdCBpcyBmb3Ig ODA4NyBhbmQgODAyODcgb25seS4KKysgKgorKyAqIFRoZSBoYXJkd2FyZSBkZWZhdWx0IGlzIDB4 MDM3ZiB3aGljaCB3ZSB1c2UuCisrICovCisrCisrI2luY2x1ZGUgPGZlYXR1cmVzLmg+CisrCisr LyogbWFza2luZyBvZiBpbnRlcnJ1cHRzICovCisrI2RlZmluZSBfRlBVX01BU0tfSU0gIDB4MDEK KysjZGVmaW5lIF9GUFVfTUFTS19ETSAgMHgwMgorKyNkZWZpbmUgX0ZQVV9NQVNLX1pNICAweDA0 CisrI2RlZmluZSBfRlBVX01BU0tfT00gIDB4MDgKKysjZGVmaW5lIF9GUFVfTUFTS19VTSAgMHgx MAorKyNkZWZpbmUgX0ZQVV9NQVNLX1BNICAweDIwCisrCisrLyogcHJlY2lzaW9uIGNvbnRyb2wg Ki8KKysjZGVmaW5lIF9GUFVfRVhURU5ERUQgMHgzMDAJLyogbGlibSByZXF1aXJlcyBkb3VibGUg ZXh0ZW5kZWQgcHJlY2lzaW9uLiAgKi8KKysjZGVmaW5lIF9GUFVfRE9VQkxFICAgMHgyMDAKKysj ZGVmaW5lIF9GUFVfU0lOR0xFICAgMHgwCisrCisrLyogcm91bmRpbmcgY29udHJvbCAqLworKyNk ZWZpbmUgX0ZQVV9SQ19ORUFSRVNUIDB4MCAgICAvKiBSRUNPTU1FTkRFRCAqLworKyNkZWZpbmUg X0ZQVV9SQ19ET1dOICAgIDB4NDAwCisrI2RlZmluZSBfRlBVX1JDX1VQICAgICAgMHg4MDAKKysj ZGVmaW5lIF9GUFVfUkNfWkVSTyAgICAweEMwMAorKworKyNkZWZpbmUgX0ZQVV9SRVNFUlZFRCAw eEYwQzAgIC8qIFJlc2VydmVkIGJpdHMgaW4gY3cgKi8KKysKKysKKysvKiBUaGUgZmRsaWJtIGNv ZGUgcmVxdWlyZXMgc3RyaWN0IElFRUUgZG91YmxlIHByZWNpc2lvbiBhcml0aG1ldGljLAorKyAg IGFuZCBubyBpbnRlcnJ1cHRzIGZvciBleGNlcHRpb25zLCByb3VuZGluZyB0byBuZWFyZXN0LiAg Ki8KKysKKysjZGVmaW5lIF9GUFVfREVGQVVMVCAgMHgwMzdmCisrCisrLyogSUVFRTogIHNhbWUg YXMgYWJvdmUuICAqLworKyNkZWZpbmUgX0ZQVV9JRUVFICAgICAweDAzN2YKKysKKysvKiBUeXBl IG9mIHRoZSBjb250cm9sIHdvcmQuICAqLworK3R5cGVkZWYgdW5zaWduZWQgaW50IGZwdV9jb250 cm9sX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CisrCisrLyogTWFjcm9z IGZvciBhY2Nlc3NpbmcgdGhlIGhhcmR3YXJlIGNvbnRyb2wgd29yZC4gICIqJiIgaXMgdXNlZCB0 bworKyAgIHdvcmsgYXJvdW5kIGEgYnVnIGluIG9sZGVyIHZlcnNpb25zIG9mIEdDQy4gIF9fdm9s YXRpbGVfXyBpcyB1c2VkCisrICAgdG8gc3VwcG9ydCBjb21iaW5hdGlvbiBvZiB3cml0aW5nIHRo ZSBjb250cm9sIHJlZ2lzdGVyIGFuZCByZWFkaW5nCisrICAgaXQgYmFjay4gIFdpdGhvdXQgX192 b2xhdGlsZV9fLCB0aGUgb2xkIHZhbHVlIG1heSBiZSB1c2VkIGZvciByZWFkaW5nCisrICAgYmFj ayB1bmRlciBjb21waWxlciBvcHRpbWl6YXRpb24uCisrCisrICAgTm90ZSB0aGF0IHRoZSB1c2Ug b2YgdGhlc2UgbWFjcm9zIGlzIG5vdCBzdWZmaWNpZW50IGFueW1vcmUgd2l0aAorKyAgIHJlY2Vu dCBoYXJkd2FyZSBub3Igb24geDg2LTY0LiAgU29tZSBmbG9hdGluZyBwb2ludCBvcGVyYXRpb25z IGFyZQorKyAgIGV4ZWN1dGVkIGluIHRoZSBTU0UvU1NFMiBlbmdpbmVzIHdoaWNoIGhhdmUgdGhl aXIgb3duIGNvbnRyb2wgYW5kCisrICAgc3RhdHVzIHJlZ2lzdGVyLiAgKi8KKysjZGVmaW5lIF9G UFVfR0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZm5zdGN3ICUwIiA6ICI9bSIgKCom Y3cpKQorKyNkZWZpbmUgX0ZQVV9TRVRDVyhjdykgX19hc21fXyBfX3ZvbGF0aWxlX18gKCJmbGRj dyAlMCIgOiA6ICJtIiAoKiZjdykpCisrCisrLyogRGVmYXVsdCBjb250cm9sIHdvcmQgc2V0IGF0 IHN0YXJ0dXAuICAqLworK2V4dGVybiBmcHVfY29udHJvbF90IF9fZnB1X2NvbnRyb2w7CisrCisr I2VuZGlmCS8qIGZwdV9jb250cm9sLmggKi8KKysKKysjZW5kaWYgLy8gQU1ENjQKKysvLyA9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KKysvLyA9PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KKysKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7 CisgI2lmZGVmIFNQQVJDX1dPUktTCisgICByZWdpc3RlciB2b2lkICplc3A7CmRpZmYgLS1naXQg YS9zcmNwa2dzL29wZW5qZGsxNi1ib290c3RyYXAvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsx Ni1ib290c3RyYXAvdGVtcGxhdGUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MDAwLi40YTMwYTNmZDc1NmMKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNi1i b290c3RyYXAvdGVtcGxhdGUKQEAgLTAsMCArMSwxMTIgQEAKKyMgVGVtcGxhdGUgZmlsZSBmb3Ig J29wZW5qZGsxNi1ib290c3RyYXAnCitfamF2YV92ZXI9MTYKK19qYXZhX21pbl92ZXI9MAorX2ph dmFfc2VjX3Zlcj0yCitfamRrX3VwZGF0ZT03CitfamRrX2hvbWU9InVzci9saWIvanZtL29wZW5q ZGske19qYXZhX3Zlcn0iCitfYmFzZV92ZXJzaW9uPSIke19qYXZhX3Zlcn0uJHtfamF2YV9taW5f dmVyfS4ke19qYXZhX3NlY192ZXJ9IgorCitwa2duYW1lPW9wZW5qZGsxNi1ib290c3RyYXAKK3Zl cnNpb249IiR7X2Jhc2VfdmVyc2lvbn0rJHtfamRrX3VwZGF0ZX0iCityZXZpc2lvbj0xCit3cmtz cmM9ImpkayR7X2phdmFfdmVyfXUtamRrLSR7X2Jhc2VfdmVyc2lvbn0tJHtfamRrX3VwZGF0ZX0i CitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitjb25maWd1cmVfYXJncz0iCisgLS1kaXNhYmxl LXdhcm5pbmdzLWFzLWVycm9ycworIC0tZW5hYmxlLXVubGltaXRlZC1jcnlwdG8KKyAtLXdpdGgt emxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1zeXN0ZW0KKyAtLXdpdGgtZ2lmbGliPXN5c3Rl bQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13aXRoLWxjbXM9c3lzdGVtCisgLS13aXRoLWp0 cmVnPW5vCisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JF9qYXZhX3ZlcgorIC0td2l0aC1qb2JzPSRY QlBTX09SSUdfTUFLRUpPQlMKKyAtLXdpdGgtdmVuZG9yLW5hbWU9Vm9pZAorIC0td2l0aC12ZW5k b3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9aHR0 cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdpdGgt dmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNr YWdlcy9pc3N1ZXMKKyAtLXdpdGgtYm9vdC1qZGs9L3Vzci9saWIvanZtL29wZW5qZGsxNSIKK21h a2VfYnVpbGRfYXJncz0iaW1hZ2VzIgorbWFrZV9pbnN0YWxsX2FyZ3M9IklOU1RBTExfUFJFRklY PVwiJHtYQlBTX0RFU1RESVJ9LyR7cGtnbmFtZX0tJHt2ZXJzaW9ufS91c3IvbGliXCIiCittYWtl X2NoZWNrX3RhcmdldD0idGVzdC1ob3RzcG90LWd0ZXN0IgoraG9zdG1ha2VkZXBlbmRzPSJwa2ct Y29uZmlnIGF1dG9tYWtlIGF1dG9jb25mIGNwaW8gdGFyIHVuemlwIHppcCBjYS1jZXJ0aWZpY2F0 ZXMKKyBsaWJyZXNzbCB6bGliLWRldmVsIHdoaWNoIG1ha2UtY2Egb3BlbmpkazE1LWJvb3RzdHJh cCIKK21ha2VkZXBlbmRzPSJsaWJYcmVuZGVyLWRldmVsIGxpYlh0c3QtZGV2ZWwgbGliWHQtZGV2 ZWwgbGliWHJhbmRyLWRldmVsCisgZ2lmbGliLWRldmVsIGxpYmpwZWctdHVyYm8tZGV2ZWwgY3Vw cy1kZXZlbCBmcmVldHlwZS1kZXZlbCBhbHNhLWxpYi1kZXZlbAorIGZvbnRjb25maWctZGV2ZWwg emxpYi1kZXZlbCBsY21zMi1kZXZlbCBoYXJmYnV6ei1kZXZlbCBvcGVuamRrMTUtYm9vdHN0cmFw IgorcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEtcnVudGltZS0k e3ZlcnNpb259XzEiCitzaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0IChi b290c3RyYXAgdmVyc2lvbiAxNikiCittYWludGFpbmVyPSJUYWkgQ2hpIE1pbmggUmFscGggRWFz dHdvb2QgPHRjbXJlYXN0d29vZEBnbWFpbC5jb20+IgorbGljZW5zZT0iR1BMLTIuMC1vci1sYXRl ciIKK2hvbWVwYWdlPSJodHRwOi8vb3Blbmpkay5qYXZhLm5ldC8iCitkaXN0ZmlsZXM9Imh0dHBz Oi8vZ2l0aHViLmNvbS9vcGVuamRrL2pkayR7X2phdmFfdmVyfXUvYXJjaGl2ZS9qZGstJHt2ZXJz aW9ufS50YXIuZ3oiCitjaGVja3N1bT1iNGEwZTcxZTQxYTExMTc1ZThhN2MxZGJhODZlZDViMGFh ODc4NDEzMTU4YzhkNDg4MTNkYjFiNjRhYzk1MzZjCitub2Nyb3NzPXllcworCisjIEJ1aWxkIGlz IHN0aWxsIHBhcmFsbGVsLCBidXQgZG9uJ3QgdXNlIC1qTi4KK2Rpc2FibGVfcGFyYWxsZWxfYnVp bGQ9eWVzCisKKyMgbm8gaG90c3BvdCBKSVQgZm9yIHBwYzMyCitjYXNlICIkWEJQU19UQVJHRVRf TUFDSElORSIgaW4KKwlwcGM2NCopIDs7CisJcHBjKikgX3VzZV96ZXJvPXllcyA7OworZXNhYwor CitpZiBbIC1uICIkX3VzZV96ZXJvIiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliZmZpLWRl dmVsIgorCWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1qdm0tdmFyaWFudHM9emVybyIKKwljYXNl ICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KKwkJcHBjKikgY29uZmlndXJlX2FyZ3MrPSIgLS13 aXRoLWJvb3QtamRrLWp2bWFyZ3M9LVhYOlRocmVhZFN0YWNrU2l6ZT0yNTYwIjs7CisJZXNhYwor ZmkKKworcG9zdF9leHRyYWN0KCkgeworCWNobW9kICt4IGNvbmZpZ3VyZQorCWlmIFsgIiRYQlBT X1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCXJtIC1yIHNyYy9qZGsuaG90c3BvdC5h Z2VudAorCWZpCit9CisKK3Bvc3RfcGF0Y2goKSB7CisJaWYgWyAiJFhCUFNfVEFSR0VUX0xJQkMi ID0gIm11c2wiIF07IHRoZW4KKwkJZm9yIGYgaW4gIiR7RklMRVNESVJ9Ii9tdXNsX3BhdGNoZXMv Ki5wYXRjaDsgZG8KKwkJCW1zZ19ub3JtYWwgIkFwcGx5aW5nICR7ZiMkRklMRVNESVIvfVxuIgor CQkJcGF0Y2ggLXNsTnAxIC1pICIkZiIKKwkJZG9uZQorCWZpCit9CisKK2RvX2NvbmZpZ3VyZSgp IHsKKwlDRkxBR1M9JHtDRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99CisJQ1hYRkxBR1M9JHtD WFhGTEFHUy8tRF9GT1JUSUZZX1NPVVJDRT0yL30KKworCSMgZm9yY2UgRUxGdjIgZm9yIHBwYzY0 IGp1c3QgaW4gY2FzZQorCWNhc2UgIiRYQlBTX1RBUkdFVF9NQUNISU5FIiBpbgorCQlwcGM2NCop CisJCQlDRkxBR1MrPSIgLURBQklfRUxGdjIiCisJCQlDWFhGTEFHUys9IiAtREFCSV9FTEZ2MiIK KwkJCTs7CisJZXNhYworCisJY29uZmlndXJlX2FyZ3M9JHtjb25maWd1cmVfYXJncy8tLXdpdGgt bGlidG9vbC1zeXNyb290PVwvdXNyXC9bYS16MC05XSotbGludXgtW2Etel0qL30KKwlpZiBbICIk WEJQU19DQ0FDSEUiIF07IHRoZW4KKwkJY29uZmlndXJlX2FyZ3MrPSIgLS1lbmFibGUtY2NhY2hl IgorCWZpCisJQ0M9Ii91c3IvYmluL2NjIgorCUNYWD0iL3Vzci9iaW4vYysrIgorCS4vY29uZmln dXJlICR7Y29uZmlndXJlX2FyZ3N9IFwKKwkJLS13aXRoLWV4dHJhLWNmbGFncz0iJENGTEFHUyIg XAorCQktLXdpdGgtZXh0cmEtY3h4ZmxhZ3M9IiRDWFhGTEFHUyIgXAorCQktLXdpdGgtZXh0cmEt bGRmbGFncz0iJExERkxBR1MiIFwKKwkJUkVBREVMRj0kUkVBREVMRiBBUj0kQVIgU1RSSVA9JFNU UklQIE5NPSROTSBcCisJCU9CSkRVTVA9JE9CSkRVTVAgT0JKQ09QWT0kT0JKQ09QWQorfQorCitw b3N0X2luc3RhbGwoKSB7CisJbXYgJHtERVNURElSfS91c3IvbGliL2p2bS9vcGVuamRrLSR7X2Jh c2VfdmVyc2lvbn0taW50ZXJuYWwgJHtERVNURElSfS8kX2pka19ob21lCisJcm0gLXJmICR7REVT VERJUn0vdXNyL2xpYi9iaW4KKwlybSAtZiAkREVTVERJUi8kX2pka19ob21lL2xpYi9zcmMuemlw CisJdmxpY2Vuc2UgQVNTRU1CTFlfRVhDRVBUSU9OCisJdmxpY2Vuc2UgTElDRU5TRQorfQoKRnJv bSAzNWQxYjkyMDllZTA0NDI4Y2Q2MTBkMmY1MGQ5YWUxOGUyN2E2ZGJiIE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQpGcm9tOiBUYWkgQ2hpIE1pbmggUmFscGggRWFzdHdvb2QgPHRjbXJlYXN0d29v ZEBnbWFpbC5jb20+CkRhdGU6IFN1biwgNSBEZWMgMjAyMSAxMjo0Nzo0OSArMDEwMApTdWJqZWN0 OiBbUEFUQ0ggNy84XSBvcGVuamRrMTQ6IHJlbW92ZSBwYWNrYWdlCgotLS0KIHNyY3BrZ3Mvb3Bl bmpkazE0LWRvYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAtCiBzcmNwa2dzL29wZW5q ZGsxNC1zcmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgLQogLi4uL2ZpbGVzL211c2xf cGF0Y2hlcy9hYXJjaDY0LnBhdGNoICAgICAgICAgIHwgIDEwIC0KIC4uLi9vcGVuamRrMTQvZmls ZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgICB8ICAyMSAtCiAuLi4vb3BlbmpkazE0L2ZpbGVz L211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCAgfCAzNzIgLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4v b3BlbmpkazE0L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2ggICAgfCAgNDUgLS0tCiAuLi4v b3BlbmpkazE0L2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggICAgfCAxMzAgLS0tLS0tCiBz cmNwa2dzL29wZW5qZGsxNC90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAyMDEgLS0tLS0t LS0tLQogOCBmaWxlcyBjaGFuZ2VkLCA3ODEgZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMjAw MDAgc3JjcGtncy9vcGVuamRrMTQtZG9jCiBkZWxldGUgbW9kZSAxMjAwMDAgc3JjcGtncy9vcGVu amRrMTQtc3JjCiBkZWxldGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTQvZmlsZXMvbXVz bF9wYXRjaGVzL2FhcmNoNjQucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5q ZGsxNC9maWxlcy9tdXNsX3BhdGNoZXMvYXJtLnBhdGNoCiBkZWxldGUgbW9kZSAxMDA2NDQgc3Jj cGtncy9vcGVuamRrMTQvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCiBkZWxldGUgbW9k ZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTQvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaAog ZGVsZXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE0L2ZpbGVzL211c2xfcGF0Y2hlcy94 ODYucGF0Y2gKIGRlbGV0ZSBtb2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNC90ZW1wbGF0ZQoK ZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE0LWRvYyBiL3NyY3BrZ3Mvb3BlbmpkazE0LWRv YwpkZWxldGVkIGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMWM2ZmRkZTE5NjQ2Li4wMDAwMDAwMDAw MDAKLS0tIGEvc3JjcGtncy9vcGVuamRrMTQtZG9jCisrKyAvZGV2L251bGwKQEAgLTEgKzAsMCBA QAotb3BlbmpkazE0ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9vcGVuamRrMTQtc3JjIGIvc3JjcGtncy9vcGVuamRrMTQtc3JjCmRlbGV0ZWQgZmlsZSBt b2RlIDEyMDAwMAppbmRleCAxYzZmZGRlMTk2NDYuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L29wZW5qZGsxNC1zcmMKKysrIC9kZXYvbnVsbApAQCAtMSArMCwwIEBACi1vcGVuamRrMTQKXCBO byBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNC9m aWxlcy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE0L2ZpbGVz L211c2xfcGF0Y2hlcy9hYXJjaDY0LnBhdGNoCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl eCBhYTZjNWQ0ZDJiZTIuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dzL29wZW5qZGsxNC9maWxl cy9tdXNsX3BhdGNoZXMvYWFyY2g2NC5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDEwICswLDAg QEAKLS0tLSBhL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hYXJjaDY0L29zX2xpbnV4X2FhcmNo NjQuY3BwCi0rKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYWFyY2g2NC9vc19saW51eF9h YXJjaDY0LmNwcAotQEAgLTc0LDcgKzc0LDYgQEAKLSAjIGluY2x1ZGUgPHB3ZC5oPgotICMgaW5j bHVkZSA8cG9sbC5oPgotICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KLS0jIGluY2x1ZGUgPGZwdV9j b250cm9sLmg+Ci0gCi0gI2RlZmluZSBSRUdfRlAgMjkKLSAjZGVmaW5lIFJFR19MUiAzMApkaWZm IC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQvZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaCBi L3NyY3BrZ3Mvb3BlbmpkazE0L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEwMjQyOGYxMGYzMy4uMDAwMDAwMDAwMDAwCi0tLSBhL3Ny Y3BrZ3Mvb3BlbmpkazE0L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2gKKysrIC9kZXYvbnVs bApAQCAtMSwyMSArMCwwIEBACi0tLS0gYS9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfYXJtL29z X2xpbnV4X2FybS5jcHAKLSsrKyBiL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9hcm0vb3NfbGlu dXhfYXJtLmNwcAotQEAgLTczLDYgKzczLDE4IEBACi0gIyBpbmNsdWRlIDx1Y29udGV4dC5oPgot ICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotIAotKy8vIFN0dXBpZCBoYWNrIGFzIHRoZSBvcmln aW4gaWYgYmVsb3cgZG9lc250IGNvbXBpbGUgd2l0aCBnY2MgOC4yLjA6Ci0rLy8KLSsvLyBvc19s aW51eF9hcm0uY3BwOjExNDo1OiBlcnJvcjogbWlzc2luZyBiaW5hcnkgb3BlcmF0b3IgYmVmb3Jl IHRva2VuICIoIgotKy8vICAjaWYgTkdSRUcgPT0gMTYKLSsvLyAgICAgICBefn5+fgotKy8vCi0r Ly8gVGhlIE5HUkVHIGlzIDE4IChiaXRzL3NpZ25hbC5oOjEwKSwgc28gZm9yY2UgaXQgdG8gdGhh dCB2YWx1ZS4KLSsjaWZkZWYgTkdSRUcKLSsjICB1bmRlZiBOR1JFRwotKyNlbmRpZgotKyNkZWZp bmUgTkdSRUcgMTgKLSsKLSAjZGVmaW5lIFNQRUxMX1JFR19TUCAgInNwIgotIAotIC8vIERvbid0 ICNkZWZpbmUgU1BFTExfUkVHX0ZQIGZvciB0aHVtYiBiZWNhdXNlIGl0IGlzIG5vdCBzYWZlIHRv IHVzZSwgc28gdGhpcyBtYWtlcyBzdXJlIHdlIG5ldmVyIGZldGNoIGl0LgpkaWZmIC0tZ2l0IGEv c3JjcGtncy9vcGVuamRrMTQvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtn cy9vcGVuamRrMTQvZmlsZXMvbXVzbF9wYXRjaGVzL2J1aWxkLnBhdGNoCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NAppbmRleCA2MGRmZGVjMzBhYmMuLjAwMDAwMDAwMDAwMAotLS0gYS9zcmNwa2dz L29wZW5qZGsxNC9maWxlcy9tdXNsX3BhdGNoZXMvYnVpbGQucGF0Y2gKKysrIC9kZXYvbnVsbApA QCAtMSwzNzIgKzAsMCBAQAotLS0tIGEvbWFrZS9SZWxlYXNlRmlsZS5nbWsKLSsrKyBiL21ha2Uv UmVsZWFzZUZpbGUuZ21rCi1AQCAtNTMsNiArNTMsNyBAQCBkZWZpbmUgY3JlYXRlLWluZm8tZmls ZQotICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiSkFWQV9WRVJTSU9OX0RBVEUiLCAiJChWRVJT SU9OX0RBVEUpIikKLSAgICQoY2FsbCBpbmZvLWZpbGUtaXRlbSwgIk9TX05BTUUiLCAiJChSRUxF QVNFX0ZJTEVfT1NfTkFNRSkiKQotICAgJChjYWxsIGluZm8tZmlsZS1pdGVtLCAiT1NfQVJDSCIs ICIkKFJFTEVBU0VfRklMRV9PU19BUkNIKSIpCi0rICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJM SUJDIiwgIm11c2wiKQotIGVuZGVmCi0gCi0gIyBQYXJhbSAxIC0gVGhlIGZpbGUgY29udGFpbmlu ZyB0aGUgTU9EVUxFUyBsaXN0Ci0tLS0gYS9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21r Ci0rKysgYi9tYWtlL2hvdHNwb3QvbGliL0NvbXBpbGVKdm0uZ21rCi1AQCAtNzMsNiArNzMsNyBA QCBDRkxBR1NfVk1fVkVSU0lPTiA6PSBcCi0gICAgIC1ESE9UU1BPVF9CVUlMRF9VU0VSPSciJChV U0VSTkFNRSkiJyBcCi0gICAgIC1ESE9UU1BPVF9WTV9ESVNUUk89JyIkKEhPVFNQT1RfVk1fRElT VFJPKSInIFwKLSAgICAgLURDUFU9JyIkKE9QRU5KREtfVEFSR0VUX0NQVV9WTV9WRVJTSU9OKSIn IFwKLSsgICAgLURMSUJDPScibXVzbCInIFwKLSAgICAgIwotIAotICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCi0tLS0gYS9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtawotKysrIGIvbWFrZS9saWIv Q29yZUxpYnJhcmllcy5nbWsKLUBAIC0xOTAsNiArMTkwLDcgQEAgaWZlcSAoJChjYWxsIGlzVGFy Z2V0T3MsIHdpbmRvd3MpLCB0cnVlKQotIGVuZGlmCi0gCi0gTElCSkxJX0NGTEFHUyArPSAkKExJ QlpfQ0ZMQUdTKQotK0xJQkpMSV9DRkxBR1MgKz0gLURMSUJDPVwibXVzbFwiCi0gCi0gaWZuZXEg KCQoVVNFX0VYVEVSTkFMX0xJQlopLCB0cnVlKQotICAgTElCSkxJX0VYVFJBX0ZJTEVTICs9IFwK LS0tLSBhL3NyYy9ob3RzcG90L29zL2xpbnV4L29zX2xpbnV4LmNwcAotKysrIGIvc3JjL2hvdHNw b3Qvb3MvbGludXgvb3NfbGludXguY3BwCi1AQCAtMTAyLDcgKzEwMiw2IEBACi0gIyBpbmNsdWRl IDxzdHJpbmcuaD4KLSAjIGluY2x1ZGUgPHN5c2NhbGwuaD4KLSAjIGluY2x1ZGUgPHN5cy9zeXNp bmZvLmg+Ci0tIyBpbmNsdWRlIDxnbnUvbGliYy12ZXJzaW9uLmg+Ci0gIyBpbmNsdWRlIDxzeXMv aXBjLmg+Ci0gIyBpbmNsdWRlIDxzeXMvc2htLmg+Ci0gIyBpbmNsdWRlIDxsaW5rLmg+Ci1AQCAt NTk3LDYgKzU5NiwxMiBAQCB2b2lkIG9zOjpMaW51eDo6aG90c3BvdF9zaWdtYXNrKFRocmVhZCog dGhyZWFkKSB7Ci0gLy8gZGV0ZWN0aW5nIHB0aHJlYWQgbGlicmFyeQotIAotIHZvaWQgb3M6Okxp bnV4OjpsaWJwdGhyZWFkX2luaXQoKSB7Ci0rI2lmICFkZWZpbmVkKF9fR0xJQkNfXykgJiYgIWRl ZmluZWQoX19VQ0xJQkNfXykKLSsgIC8vIEhhcmQgY29kZSBBbHBpbmUgTGludXggc3VwcG9ydGVk IG11c2wgY29tcGF0aWJsZSBzZXR0aW5ncwotKyAgLy8gc2duOiBOUFRMIGlzIGNvcnJlY3QsIGRv bid0IGtub3cgYWJvdXQgZ2xpYmMgMi45LCBhbHBpbmUncyB0aGluZz8KLSsgIG9zOjpMaW51eDo6 c2V0X2dsaWJjX3ZlcnNpb24oImdsaWJjIDIuOSIpOwotKyAgb3M6OkxpbnV4OjpzZXRfbGlicHRo cmVhZF92ZXJzaW9uKCJOUFRMIik7Ci0rI2Vsc2UKLSAgIC8vIFNhdmUgZ2xpYmMgYW5kIHB0aHJl YWQgdmVyc2lvbiBzdHJpbmdzLgotICNpZiAhZGVmaW5lZChfQ1NfR05VX0xJQkNfVkVSU0lPTikg fHwgXAotICAgICAhZGVmaW5lZChfQ1NfR05VX0xJQlBUSFJFQURfVkVSU0lPTikKLUBAIC02MTQs NiArNjE5LDcgQEAgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKLSAgIHN0ciA9 IChjaGFyICopbWFsbG9jKG4sIG10SW50ZXJuYWwpOwotICAgY29uZnN0cihfQ1NfR05VX0xJQlBU SFJFQURfVkVSU0lPTiwgc3RyLCBuKTsKLSAgIG9zOjpMaW51eDo6c2V0X2xpYnB0aHJlYWRfdmVy c2lvbihzdHIpOwotKyNlbmRpZgotIH0KLSAKLSAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwotQEAgLTMx MTcsMjAgKzMxMjMsMzYgQEAgdm9pZCBvczo6TGludXg6OnNjaGVkX2dldGNwdV9pbml0KCkgewot IGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV93YXJuKGludCBudW1iZXIsIGNoYXIgKndo ZXJlLCAuLi4pIHsgfQotIGV4dGVybiAiQyIgSk5JRVhQT1JUIHZvaWQgbnVtYV9lcnJvcihjaGFy ICp3aGVyZSkgeyB9Ci0gCi0rc3RhdGljIHZvaWQqIGRsdnN5bV9pZl9hdmFpbGFibGUodm9pZCog aGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKSB7Ci0rICB0eXBl ZGVmIHZvaWQqICgqZGx2c3ltX2Z1bmNfdHlwZSkodm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBu YW1lLCBjb25zdCBjaGFyKiB2ZXJzaW9uKTsKLSsgIHN0YXRpYyBkbHZzeW1fZnVuY190eXBlIGRs dnN5bV9mdW5jOwotKyAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKLSsKLSsgIGlm ICghaW5pdGlhbGl6ZWQpIHsKLSsgICAgZGx2c3ltX2Z1bmMgPSAoZGx2c3ltX2Z1bmNfdHlwZSlk bHN5bShSVExEX05FWFQsICJkbHZzeW0iKTsKLSsgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOwotKyAg fQotKwotKyAgaWYgKGRsdnN5bV9mdW5jICE9IE5VTEwpIHsKLSsgICAgdm9pZCAqZiA9IGRsdnN5 bV9mdW5jKGhhbmRsZSwgbmFtZSwgdmVyc2lvbik7Ci0rICAgIGlmIChmICE9IE5VTEwpIHsKLSsg ICAgICByZXR1cm4gZjsKLSsgICAgfQotKyAgfQotKwotKyAgcmV0dXJuIGRsc3ltKGhhbmRsZSwg bmFtZSk7Ci0rfQotKwotIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1ib2wg dmVyc2lvbiAxLjEgKEFQSSB2MSkuIElmIGl0IGZhaWxzCi0gLy8gbG9hZCBzeW1ib2wgZnJvbSBi YXNlIHZlcnNpb24gaW5zdGVhZC4KLSB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfZGxzeW0odm9p ZCogaGFuZGxlLCBjb25zdCBjaGFyICpuYW1lKSB7Ci0tICB2b2lkICpmID0gZGx2c3ltKGhhbmRs ZSwgbmFtZSwgImxpYm51bWFfMS4xIik7Ci0tICBpZiAoZiA9PSBOVUxMKSB7Ci0tICAgIGYgPSBk bHN5bShoYW5kbGUsIG5hbWUpOwotLSAgfQotLSAgcmV0dXJuIGY7Ci0rICByZXR1cm4gZGx2c3lt X2lmX2F2YWlsYWJsZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMSIpOwotIH0KLSAKLSAvLyBI YW5kbGUgcmVxdWVzdCB0byBsb2FkIGxpYm51bWEgc3ltYm9sIHZlcnNpb24gMS4yIChBUEkgdjIp IG9ubHkuCi0gLy8gUmV0dXJuIE5VTEwgaWYgdGhlIHN5bWJvbCBpcyBub3QgZGVmaW5lZCBpbiB0 aGlzIHBhcnRpY3VsYXIgdmVyc2lvbi4KLSB2b2lkKiBvczo6TGludXg6OmxpYm51bWFfdjJfZGxz eW0odm9pZCogaGFuZGxlLCBjb25zdCBjaGFyKiBuYW1lKSB7Ci0tICByZXR1cm4gZGx2c3ltKGhh bmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7Ci0rICByZXR1cm4gZGx2c3ltX2lmX2F2YWlsYWJs ZShoYW5kbGUsIG5hbWUsICJsaWJudW1hXzEuMiIpOwotIH0KLSAKLSBib29sIG9zOjpMaW51eDo6 bGlibnVtYV9pbml0KCkgewotLS0tIGEvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19s aW51eF94ODYuY3BwCi0rKysgYi9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4 X3g4Ni5jcHAKLUBAIC03NSw5ICs3NSw2IEBACi0gIyBpbmNsdWRlIDxwd2QuaD4KLSAjIGluY2x1 ZGUgPHBvbGwuaD4KLSAjIGluY2x1ZGUgPHVjb250ZXh0Lmg+Ci0tI2lmbmRlZiBBTUQ2NAotLSMg aW5jbHVkZSA8ZnB1X2NvbnRyb2wuaD4KLS0jZW5kaWYKLSAKLSAjaWZkZWYgQU1ENjQKLSAjZGVm aW5lIFJFR19TUCBSRUdfUlNQCi0tLS0gYS9zcmMvaG90c3BvdC9zaGFyZS9nYy9zaGFyZWQvZ2Vu Q29sbGVjdGVkSGVhcC5jcHAKLSsrKyBiL3NyYy9ob3RzcG90L3NoYXJlL2djL3NoYXJlZC9nZW5D b2xsZWN0ZWRIZWFwLmNwcAotQEAgLTExMTYsNyArMTExNiw3IEBAIEhlYXBXb3JkKiBHZW5Db2xs ZWN0ZWRIZWFwOjphbGxvY2F0ZV9uZXdfdGxhYihzaXplX3QgbWluX3NpemUsCi0gc3RhdGljIFNj cmF0Y2hCbG9jayAqcmVtb3ZlU21hbGxlc3RTY3JhdGNoKFNjcmF0Y2hCbG9jayAqKnByZXZfcHRy KSB7Ci0gICBib29sIGZpcnN0ID0gdHJ1ZTsKLSAgIHNpemVfdCBtaW5fc2l6ZSA9IDA7ICAgLy8g ImZpcnN0IiBtYWtlcyB0aGlzIGNvbmNlcHR1YWxseSBpbmZpbml0ZS4KLS0gIFNjcmF0Y2hCbG9j ayAqKnNtYWxsZXN0X3B0ciwgKnNtYWxsZXN0OwotKyAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3Rf cHRyID0gTlVMTCwgKnNtYWxsZXN0OwotICAgU2NyYXRjaEJsb2NrICAqY3VyID0gKnByZXZfcHRy OwotICAgd2hpbGUgKGN1cikgewotICAgICBhc3NlcnQoKnByZXZfcHRyID09IGN1ciwgImp1c3Qg Y2hlY2tpbmciKTsKLS0tLSBhL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUvYWJzdHJhY3Rfdm1f dmVyc2lvbi5jcHAKLSsrKyBiL3NyYy9ob3RzcG90L3NoYXJlL3J1bnRpbWUvYWJzdHJhY3Rfdm1f dmVyc2lvbi5jcHAKLUBAIC0yNzQsNyArMjc0LDcgQEAgY29uc3QgY2hhciogQWJzdHJhY3RfVk1f VmVyc2lvbjo6aW50ZXJuYWxfdm1faW5mb19zdHJpbmcoKSB7Ci0gICAjZW5kaWYKLSAKLSAgICNk ZWZpbmUgSU5URVJOQUxfVkVSU0lPTl9TVUZGSVggVk1fUkVMRUFTRSAiKSIgXAotLSAgICAgICAg ICIgZm9yICIgT1MgIi0iIENQVSBGTE9BVF9BUkNIX1NUUiBcCi0rICAgICAgICAgIiBmb3IgIiBP UyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RSIExJQkMgXAotICAgICAgICAgICIgSlJFICgiIFZFUlNJ T05fU1RSSU5HICIpLCBidWlsdCBvbiAiIF9fREFURV9fICIgIiBfX1RJTUVfXyBcCi0gICAgICAg ICAgIiBieSAiIFhTVFIoSE9UU1BPVF9CVUlMRF9VU0VSKSAiIHdpdGggIiBIT1RTUE9UX0JVSUxE X0NPTVBJTEVSCi0gCi0tLS0gYS9zcmMvaG90c3BvdC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVm aW5pdGlvbnNfZ2NjLmhwcAotKysrIGIvc3JjL2hvdHNwb3Qvc2hhcmUvdXRpbGl0aWVzL2dsb2Jh bERlZmluaXRpb25zX2djYy5ocHAKLUBAIC0yMDQsNyArMjA0LDcgQEAgaW5saW5lIGludCBnX2lz bmFuKGRvdWJsZSBmKSB7IHJldHVybiBpc25hbmQoZik7IH0KLSAjZWxpZiBkZWZpbmVkKF9fQVBQ TEVfXykKLSBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9 Ci0gI2VsaWYgZGVmaW5lZChMSU5VWCkgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKLS1pbmxp bmUgaW50IGdfaXNuYW4oZmxvYXQgIGYpIHsgcmV0dXJuIGlzbmFuZihmKTsgfQotK2lubGluZSBp bnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4gaXNuYW4oZik7IH0KLSBpbmxpbmUgaW50IGdf aXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuKGYpOyB9Ci0gI2Vsc2UKLSAjZXJyb3IgIm1p c3NpbmcgcGxhdGZvcm0tc3BlY2lmaWMgZGVmaW5pdGlvbiBoZXJlIgotLS0tIGEvc3JjL2phdmEu YmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3NlLmMKLSsrKyBiL3NyYy9qYXZhLmJh c2UvbGludXgvbmF0aXZlL2xpYm5ldC9saW51eF9jbG9zZS5jCi1AQCAtNjAsNyArNjAsNyBAQCB0 eXBlZGVmIHN0cnVjdCB7Ci0gLyoKLSAgKiBTaWduYWwgdG8gdW5ibG9jayB0aHJlYWQKLSAgKi8K LS1zdGF0aWMgaW50IHNpZ1dha2V1cCA9IChfX1NJR1JUTUFYIC0gMik7Ci0rc3RhdGljIGludCBz aWdXYWtldXA7Ci0gCi0gLyoKLSAgKiBmZFRhYmxlIGhvbGRzIG9uZSBlbnRyeSBwZXIgZmlsZSBk ZXNjcmlwdG9yLCB1cCB0byBhIGNlcnRhaW4KLUBAIC0xNDksNiArMTQ5LDcgQEAgc3RhdGljIHZv aWQgX19hdHRyaWJ1dGUoKGNvbnN0cnVjdG9yKSkgaW5pdCgpIHsKLSAgICAgLyoKLSAgICAgICog U2V0dXAgdGhlIHNpZ25hbCBoYW5kbGVyCi0gICAgICAqLwotKyAgICBzaWdXYWtldXAgPSBTSUdS VE1BWCAtIDI7Ci0gICAgIHNhLnNhX2hhbmRsZXIgPSBzaWdfd2FrZXVwOwotICAgICBzYS5zYV9m bGFncyAgID0gMDsKLSAgICAgc2lnZW1wdHlzZXQoJnNhLnNhX21hc2spOwotLS0tIGEvc3JjL2ph dmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2NoaWxkcHJvYy5jCi0rKysgYi9zcmMvamF2YS5i YXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRwcm9jLmMKLUBAIC0yMzUsNyArMjM1LDEzIEBA IEpES19leGVjdnBlKGludCBtb2RlLCBjb25zdCBjaGFyICpmaWxlLAotIHsKLSAgICAgaWYgKGVu dnAgPT0gTlVMTCB8fCAoY2hhciAqKikgZW52cCA9PSBlbnZpcm9uKSB7Ci0gICAgICAgICBleGVj dnAoZmlsZSwgKGNoYXIgKiopIGFyZ3YpOwotLSAgICAgICAgcmV0dXJuOwotKyAgICAgICAgLy8g RU5PRVhFQyBpbmRpY2F0ZXMgdGhhdCB0aGUgZmlsZSBoZWFkZXIgd2FzIG5vdCByZWNvZ25pemVk LiBUaGUgbXVzbCBDCi0rICAgICAgICAvLyBsaWJyYXJ5IGRvZXMgbm90IGltcGxlbWVudCB0aGUg ZmFsbGJhY2sgdG8gL2Jpbi9zaCBmb3IgdGhhdCBjYXNlLCBzbyBmYWxsCi0rICAgICAgICAvLyB0 aHJvdWdoIHRvIHRoZSBjb2RlIGJlbG93IHdoaWNoIGltcGxlbWVudHMgdGhhdCBmYWxsYmFjayB1 c2luZwotKyAgICAgICAgLy8gZXhlY3ZlX3dpdGhfc2hlbGxfZmFsbGJhY2suCi0rICAgICAgICBp ZiAoZXJybm8gIT0gRU5PRVhFQykgewotKyAgICAgICAgICAgIHJldHVybjsKLSsgICAgICAgIH0K LSAgICAgfQotIAotICAgICBpZiAoKmZpbGUgPT0gJ1wwJykgewotLS0tIGEvc3JjL2phdmEuYmFz ZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgKLSsrKyBiL3NyYy9qYXZhLmJhc2Uv dW5peC9uYXRpdmUvbGliamF2YS9qZGtfdXRpbF9tZC5oCi1AQCAtMzcsNyArMzcsNyBAQAotICNk ZWZpbmUgSVNOQU5EKGQpIGlzbmFuKGQpCi0gI2VsaWYgZGVmaW5lZChfX2xpbnV4X18pIHx8IGRl ZmluZWQoX0FMTEJTRF9TT1VSQ0UpCi0gI2luY2x1ZGUgPG1hdGguaD4KLS0jZGVmaW5lIElTTkFO RihmKSBpc25hbmYoZikKLSsjZGVmaW5lIElTTkFORihmKSBpc25hbihmKQotICNkZWZpbmUgSVNO QU5EKGQpIGlzbmFuKGQpCi0gI2VsaWYgZGVmaW5lZChfQUlYKQotICNpbmNsdWRlIDxtYXRoLmg+ Ci0tLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmpsaS9qYXZhX21kX3NvbGludXgu YwotKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqbGkvamF2YV9tZF9zb2xpbnV4 LmMKLUBAIC0yMzYsNiArMjM2LDM5IEBAIFJlcXVpcmVzU2V0ZW52KGNvbnN0IGNoYXIgKmp2bXBh dGgpIHsKLSAgICAgY2hhciAqZG1sbHAgPSBOVUxMOwotICAgICBjaGFyICpwOyAvKiBhIHV0aWxp dHkgcG9pbnRlciAqLwotIAotKyNpZmRlZiBfX2xpbnV4Ci0rI2lmbmRlZiBMSUJDCi0rI2Vycm9y ICJMSUJDIG5vdCBzZXQiCi0rI2VuZGlmCi0rCi0rICAgIGlmIChzdHJjbXAoTElCQywgIm11c2wi KSA9PSAwKSB7Ci0rICAgICAgLyoKLSsgICAgICAgKiBUaGUgbXVzbCBsaWJyYXJ5IGxvYWRlciBy ZXF1aXJlcyBMRF9MSUJSQVJZX1BBVEggdG8gYmUgc2V0IGluCi0rICAgICAgICogb3JkZXIgdG8g Y29ycmVjdGx5IHJlc29sdmUgdGhlIGRlcGVuZGVuY3kgbGliamF2YS5zbyBoYXMgb24gbGlianZt LnNvLgotKyAgICAgICAqCi0rICAgICAgICogU3BlY2lmaWNhbGx5LCBpdCBkaWZmZXJzIGZyb20g Z2xpYmMgaW4gdGhlIHNlbnNlIHRoYXQgZXZlbiBpZgotKyAgICAgICAqIGxpYmp2bS5zbyBoYXMg YWxyZWFkeSBiZWVuIGxvYWRlZCBpdCB3aWxsIG5vdCBiZSBjb25zaWRlcmVkIGEKLSsgICAgICAg KiBjYW5kaWRhdGUgZm9yIHJlc29sdmluZyB0aGUgZGVwZW5kZW5jeSB1bmxlc3MgdGhlICpmdWxs KiBwYXRoCi0rICAgICAgICogb2YgdGhlIGFscmVhZHkgbG9hZGVkIGxpYnJhcnkgbWF0Y2hlcyB0 aGUgZGVwZW5kZW5jeSBiZWluZyBsb2FkZWQuCi0rICAgICAgICoKLSsgICAgICAgKiBsaWJqdm0u c28gaXMgYmVpbmcgbG9hZGVkIGJ5IHRoZSBsYXVuY2hlciB1c2luZyBhIGxvbmcgcGF0aCB0bwot KyAgICAgICAqIGRsb3Blbiwgbm90IGp1c3QgdGhlIGJhc2VuYW1lIG9mIHRoZSBsaWJyYXJ5LiBU eXBpY2FsbHkgdGhpcwotKyAgICAgICAqIGlzIHNvbWV0aGluZyBsaWtlICIuLi9saWIvc2VydmVy L2xpYmp2bS5zbyIuIEhvd2V2ZXIsIGlmL3doZW4KLSsgICAgICAgKiBsaWJqdm0uc28gbGF0ZXIg dHJpZXMgdG8gZGxvcGVuIGxpYmphdmEuc28gKHdoaWNoIGl0IGRvZXMgaW4KLSsgICAgICAgKiBv cmRlciB0byBnZXQgYWNjZXNzIHRvIGEgZmV3IGZ1bmN0aW9ucyBpbXBsZW1lbnRlZCBpbgotKyAg ICAgICAqIGxpYmphdmEuc28pIHRoZSBtdXNsIGxvYWRlciB3aWxsLCBhcyBwYXJ0IG9mIGxvYWRp bmcKLSsgICAgICAgKiBkZXBlbmRlbnQgbGlicmFyaWVzLCB0cnkgdG8gbG9hZCBsaWJqdm0uc28g dXNpbmcgb25seSBpdHMKLSsgICAgICAgKiBiYXNlbmFtZSAibGlianZtLnNvIi4gU2luY2UgdGhp cyBkb2VzIG5vdCBtYXRjaCB0aGUgbG9uZ2VyCi0rICAgICAgICogcGF0aCBwYXRoIGl0IHdhcyBm aXJzdCBsb2FkZWQgd2l0aCwgdGhlIGFscmVhZHkgbG9hZGVkCi0rICAgICAgICogbGlicmFyeSBp cyBub3QgY29uc2lkZXJlZCBhIGNhbmRpZGF0ZSwgYW5kIHRoZSBsb2FkZXIgd2lsbAotKyAgICAg ICAqIGluc3RlYWQgbG9vayBmb3IgbGlianZtLnNvIGVsc2V3aGVyZS4gSWYgaXQncyBub3QgaW4K LSsgICAgICAgKiBMRF9MSUJSQVJZX1BBVEggdGhlIGRlcGVuZGVuY3kgbG9hZCB3aWxsIGZhaWws IGFuZCBsaWJqYXZhLnNvCi0rICAgICAgICogd2lsbCB0aGVyZWZvcmUgZmFpbCBhcyB3ZWxsLgot KyAgICAgICAqLwotKyAgICAgIHJldHVybiBKTklfVFJVRTsKLSsgICAgfQotKyNlbmRpZgotKwot ICNpZmRlZiBBSVgKLSAgICAgLyogV2UgYWx3YXlzIGhhdmUgdG8gc2V0IHRoZSBMSUJQQVRIIG9u IEFJWCBiZWNhdXNlIGxkIGRvZXNuJ3Qgc3VwcG9ydCAkT1JJR0lOLiAqLwotICAgICByZXR1cm4g Sk5JX1RSVUU7Ci0tLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYm5pby9jaC9OYXRp dmVUaHJlYWQuYwotKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJuaW8vY2gvTmF0 aXZlVGhyZWFkLmMKLUBAIC0zNiw3ICszNiw3IEBACi0gI2lmZGVmIF9fbGludXhfXwotICAgI2lu Y2x1ZGUgPHB0aHJlYWQuaD4KLSAgIC8qIEFsc28gZGVmaW5lZCBpbiBuZXQvbGludXhfY2xvc2Uu YyAqLwotLSAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFMIChfX1NJR1JUTUFYIC0gMikKLSsgICNk ZWZpbmUgSU5URVJSVVBUX1NJR05BTCAoU0lHUlRNQVggLSAyKQotICNlbGlmIGRlZmluZWQoX0FJ WCkKLSAgICNpbmNsdWRlIDxwdGhyZWFkLmg+Ci0gICAvKiBBbHNvIGRlZmluZWQgaW4gbmV0L2Fp eF9jbG9zZS5jICovCi0tLS0gYS9zcmMvamF2YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94 YXd0L3hhd3QvWFRvb2xraXQuYwotKysrIGIvc3JjL2phdmEuZGVza3RvcC91bml4L25hdGl2ZS9s aWJhd3RfeGF3dC94YXd0L1hUb29sa2l0LmMKLUBAIC0yNyw5ICsyNyw2IEBACi0gI2luY2x1ZGUg PFgxMS9YdXRpbC5oPgotICNpbmNsdWRlIDxYMTEvWG9zLmg+Ci0gI2luY2x1ZGUgPFgxMS9YYXRv bS5oPgotLSNpZmRlZiBfX2xpbnV4X18KLS0jaW5jbHVkZSA8ZXhlY2luZm8uaD4KLS0jZW5kaWYK LSAKLSAjaW5jbHVkZSA8anZtLmg+Ci0gI2luY2x1ZGUgPGpuaS5oPgotQEAgLTc4MCwyNiArNzc3 LDYgQEAgSk5JRVhQT1JUIGpzdHJpbmcgSk5JQ0FMTCBKYXZhX3N1bl9hd3RfWDExX1hUb29sa2l0 X2dldEVudgotICAgICByZXR1cm4gcmV0OwotIH0KLSAKLS0jaWZkZWYgX19saW51eF9fCi0tdm9p ZCBwcmludF9zdGFjayh2b2lkKQotLXsKLS0gIHZvaWQgKmFycmF5WzEwXTsKLS0gIHNpemVfdCBz aXplOwotLSAgY2hhciAqKnN0cmluZ3M7Ci0tICBzaXplX3QgaTsKLS0KLS0gIHNpemUgPSBiYWNr dHJhY2UgKGFycmF5LCAxMCk7Ci0tICBzdHJpbmdzID0gYmFja3RyYWNlX3N5bWJvbHMgKGFycmF5 LCBzaXplKTsKLS0KLS0gIGZwcmludGYgKHN0ZGVyciwgIk9idGFpbmVkICV6ZCBzdGFjayBmcmFt ZXMuXG4iLCBzaXplKTsKLS0KLS0gIGZvciAoaSA9IDA7IGkgPCBzaXplOyBpKyspCi0tICAgICBm cHJpbnRmIChzdGRlcnIsICIlc1xuIiwgc3RyaW5nc1tpXSk7Ci0tCi0tICBmcmVlIChzdHJpbmdz KTsKLS19Ci0tI2VuZGlmCi0tCi0gV2luZG93IGdldF94YXd0X3Jvb3Rfc2hlbGwoSk5JRW52ICpl bnYpIHsKLSAgIHN0YXRpYyBqY2xhc3MgY2xhc3NYUm9vdFdpbmRvdyA9IE5VTEw7Ci0gICBzdGF0 aWMgam1ldGhvZElEIG1ldGhvZEdldFhSb290V2luZG93ID0gTlVMTDsKLS0tLSBhL3NyYy9qZGsu amR3cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKLSsrKyBiL3NyYy9qZGsuamR3 cC5hZ2VudC9zaGFyZS9uYXRpdmUvbGliamR3cC91dGlsLmgKLUBAIC0zNSwxNSArMzUsMTUgQEAK LSAjaWZkZWYgREVCVUcKLSAgICAgLyogSnVzdCB0byBtYWtlIHN1cmUgdGhlc2UgaW50ZXJmYWNl cyBhcmUgbm90IHVzZWQgaGVyZS4gKi8KLSAgICAgI3VuZGVmIGZyZWUKLS0gICAgI2RlZmluZSBm cmVlKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCi0rICAgICNkZWZpbmUgZnJlZSBkb19u b3RfdXNlX3RoaXNfaW50ZXJmYWNlX2ZyZWUKLSAgICAgI3VuZGVmIG1hbGxvYwotLSAgICAjZGVm aW5lIG1hbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgotKyAgICAjZGVmaW5lIG1h bGxvYyBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX21hbGxvYwotICAgICAjdW5kZWYgY2FsbG9j Ci0tICAgICNkZWZpbmUgY2FsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCi0rICAg ICNkZWZpbmUgY2FsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfY2FsbG9jCi0gICAgICN1 bmRlZiByZWFsbG9jCi0tICAgICNkZWZpbmUgcmVhbGxvYyhwKSBEbyBub3QgdXNlIHRoaXMgaW50 ZXJmYWNlLgotKyAgICAjZGVmaW5lIHJlYWxsb2MgZG9fbm90X3VzZV90aGlzX2ludGVyZmFjZV9y ZWFsbG9jCi0gICAgICN1bmRlZiBzdHJkdXAKLS0gICAgI2RlZmluZSBzdHJkdXAocCkgRG8gbm90 IHVzZSB0aGlzIGludGVyZmFjZS4KLSsgICAgI2RlZmluZSBzdHJkdXAgZG9fbm90X3VzZV90aGlz X2ludGVyZmFjZV9zdHJkdXAKLSAjZW5kaWYKLSAKLSAjaW5jbHVkZSAibG9nX21lc3NhZ2VzLmgi Ci0tLS0gYS90ZXN0L2hvdHNwb3QvanRyZWcvcnVudGltZS9TdGFja0d1YXJkUGFnZXMvZXhlaW52 b2tlLmMKLSsrKyBiL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1lL1N0YWNrR3VhcmRQYWdlcy9l eGVpbnZva2UuYwotQEAgLTMzLDYgKzMzLDcgQEAKLSAKLSAjaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0g I2luY2x1ZGUgPGpuaS5oPgotKyNpbmNsdWRlIDxqdm0uaD4KLSAjaW5jbHVkZSA8YWxsb2NhLmg+ Ci0gI2luY2x1ZGUgPHNpZ25hbC5oPgotICNpbmNsdWRlIDxzdHJpbmcuaD4KLUBAIC05MSw2ICs5 MiwyMCBAQCB2b2lkIHNldF9zaWduYWxfaGFuZGxlcigpIHsKLSAgIH0KLSB9Ci0gCi0raW50IGdl dF9qYXZhX3N0YWNrc2l6ZSAoKSB7Ci0rICBzaXplX3Qgc3RhY2tzaXplOwotKyAgcHRocmVhZF9h dHRyX3QgYXR0cjsKLSsgIEpESzFfMUluaXRBcmdzIGpka19hcmdzOwotKwotKyAgamRrX2FyZ3Mu dmVyc2lvbiA9IEpOSV9WRVJTSU9OXzFfMTsKLSsgIEpOSV9HZXREZWZhdWx0SmF2YVZNSW5pdEFy Z3MoJmpka19hcmdzKTsKLSsgIGlmIChqZGtfYXJncy5qYXZhU3RhY2tTaXplIDw9IDApIHsKLSsg ICAgZnByaW50ZihzdGRlcnIsICJUZXN0IEVSUk9SLiBDYW4ndCBnZXQgYSB2YWxpZCB2YWx1ZSBm b3IgdGhlIGRlZmF1bHQgc3RhY2tzaXplLlxuIik7Ci0rICAgIGV4aXQoNyk7Ci0rICB9Ci0rICBy ZXR1cm4gamRrX2FyZ3MuamF2YVN0YWNrU2l6ZTsKLSt9Ci0rCi0gdm9pZCAqcnVuX2phdmFfb3Zl cmZsb3cgKHZvaWQgKnApIHsKLSAgIEpOSUVudiAqZW52OwotICAgamNsYXNzIGNsYXNzX2lkOwot QEAgLTI1OCwxMyArMjczLDE5IEBAIGludCBtYWluIChpbnQgYXJnYywgY29uc3QgY2hhcioqIGFy Z3YpIHsKLSAgICAgZXhpdCg3KTsKLSAgIH0KLSAKLSsgIGludCBzdGFja19zaXplID0gZ2V0X2ph dmFfc3RhY2tzaXplKCk7Ci0gICBwdGhyZWFkX3QgdGhyOwotKyAgcHRocmVhZF9hdHRyX3QgdGhy ZWFkX2F0dHI7Ci0rCi0rICBwdGhyZWFkX2F0dHJfaW5pdCgmdGhyZWFkX2F0dHIpOwotKyAgcHRo cmVhZF9hdHRyX3NldHN0YWNrc2l6ZSgmdGhyZWFkX2F0dHIsIHN0YWNrX3NpemUpOwotIAotICAg aWYgKGFyZ2MgPiAxICYmIHN0cmNtcChhcmd2WzFdLCAidGVzdF9qYXZhX292ZXJmbG93IikgPT0g MCkgewotICAgICBwcmludGYoIlxuVGVzdGluZyBKQVZBX09WRVJGTE9XXG4iKTsKLSAKLSAgICAg cHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBvdGhlciB0aHJl YWRcbiIpOwotLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgTlVMTCwgcnVuX2phdmFfb3ZlcmZs b3csIE5VTEwpOwotKwotKyAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwgJnRocmVhZF9hdHRyLCBy dW5famF2YV9vdmVyZmxvdywgTlVMTCk7Ci0gICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsK LSAKLSAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBp bml0aWFsIHRocmVhZFxuIik7Ci1AQCAtMjc3LDcgKzI5OCw3IEBAIGludCBtYWluIChpbnQgYXJn YywgY29uc3QgY2hhcioqIGFyZ3YpIHsKLSAgICAgcHJpbnRmKCJcblRlc3RpbmcgTkFUSVZFX09W RVJGTE9XXG4iKTsKLSAKLSAgICAgcHJpbnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVo YXZpb3VyIGZvciBvdGhlciB0aHJlYWRcbiIpOwotLSAgICBwdGhyZWFkX2NyZWF0ZSAoJnRociwg TlVMTCwgcnVuX25hdGl2ZV9vdmVyZmxvdywgTlVMTCk7Ci0rICAgIHB0aHJlYWRfY3JlYXRlICgm dGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9uYXRpdmVfb3ZlcmZsb3csIE5VTEwpOwotICAgICBwdGhy ZWFkX2pvaW4gKHRociwgTlVMTCk7Ci0gCi0gICAgIHByaW50ZigiVGVzdGluZyBzdGFjayBndWFy ZCBwYWdlIGJlaGF2aW91ciBmb3IgaW5pdGlhbCB0aHJlYWRcbiIpOwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9vcGVuamRrMTQvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRjaCBiL3NyY3BrZ3Mvb3Bl bmpkazE0L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IGQzMDZkNTAxZTRiOC4uMDAwMDAwMDAwMDAwCi0tLSBhL3NyY3BrZ3Mvb3Blbmpk azE0L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKKysrIC9kZXYvbnVsbApAQCAtMSw0NSAr MCwwIEBACi1QYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBodHRwczov L2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1 Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAotLS0tIG9sZC9zcmMvaG90c3BvdC9jcHUvcHBjL21hY3Jv QXNzZW1ibGVyX3BwYy5jcHAKLSsrKyBuZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2Vt Ymxlcl9wcGMuY3BwCi1AQCAtNDcsNiArNDcsOCBAQAotICNpbmNsdWRlICJvcHRvL2ludHJpbnNp Y25vZGUuaHBwIgotICNlbmRpZgotIAotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+Ci0rCi0gI2lm ZGVmIFBST0RVQ1QKLSAjZGVmaW5lIEJMT0NLX0NPTU1FTlQoc3RyKSAvLyBub3RoaW5nCi0gI2Vs c2UKLS0tLSBvbGQvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKLSsrKyBu ZXcvc3JjL2hvdHNwb3QvY3B1L3BwYy92bV92ZXJzaW9uX3BwYy5jcHAKLUBAIC04NDUsNyArODQ1 LDcgQEAgdm9pZCBWTV9WZXJzaW9uOjpkZXRlcm1pbmVfZmVhdHVyZXMoKSB7Ci0gICB1bnNpZ25l ZCBsb25nIGF1eHYgPSBnZXRhdXh2YWwoQVRfSFdDQVAyKTsKLSAKLSAgIGlmIChhdXh2ICYgUFBD X0ZFQVRVUkUyX0hUTV9OT1NDKSB7Ci0tICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hBU19I VE0pIHsKLSsgICAgaWYgKGF1eHYgJiBQUENfRkVBVFVSRTJfSFRNKSB7Ci0gICAgICAgLy8gVE0g b24gUE9XRVI4IGFuZCBQT1dFUjkgaW4gY29tcGF0IG1vZGUgKFZNKSBpcyBzdXBwb3J0ZWQgYnkg dGhlIEpWTS4KLSAgICAgICAvLyBUTSBvbiBQT1dFUjkgREQyLjEgTlYgKGJhcmVtZXRhbCkgaXMg bm90IHN1cHBvcnRlZCBieSB0aGUgSlZNIChUTSBvbgotICAgICAgIC8vIFBPV0VSOSBERDIuMSBO ViBoYXMgYSBmZXcgaXNzdWVzIHRoYXQgbmVlZCBhIGNvdXBsZSBvZiBmaXJtd2FyZQotLS0tIG9s ZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL29zX2xpbnV4X3BwYy5jcHAKLSsrKyBuZXcv c3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51eF9wcGMuY3BwCi1AQCAtNzUsNyAr NzUsNyBAQAotICMgaW5jbHVkZSA8cHdkLmg+Ci0gIyBpbmNsdWRlIDxwb2xsLmg+Ci0gIyBpbmNs dWRlIDx1Y29udGV4dC5oPgotLQotKyMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgotIAotIGFkZHJl c3Mgb3M6OmN1cnJlbnRfc3RhY2tfcG9pbnRlcigpIHsKLSAgIGludHB0cl90KiBjc3A7Ci0tLS0g b2xkL3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhyZWFkX2xpbnV4X3BwYy5jcHAKLSsr KyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy90aHJlYWRfbGludXhfcHBjLmNwcAot QEAgLTIzLDYgKzIzLDggQEAKLSAgKgotICAqLwotIAotKyNpbmNsdWRlIDxhc20vcHRyYWNlLmg+ Ci0rCi0gI2luY2x1ZGUgInByZWNvbXBpbGVkLmhwcCIKLSAjaW5jbHVkZSAicnVudGltZS9mcmFt ZS5pbmxpbmUuaHBwIgotICNpbmNsdWRlICJydW50aW1lL3RocmVhZC5ocHAiCmRpZmYgLS1naXQg YS9zcmNwa2dzL29wZW5qZGsxNC9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNoIGIvc3JjcGtn cy9vcGVuamRrMTQvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaApkZWxldGVkIGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggOWM2NGMxODkwMzZhLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9v cGVuamRrMTQvZmlsZXMvbXVzbF9wYXRjaGVzL3g4Ni5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0x LDEzMCArMCwwIEBACi1QYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20gQWxwaW5lIGxpbnV4OiBo dHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/aWQ9OGExYWUxN2Q0YTlh ZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAotLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUv bGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKLSsrKyBuZXcvc3JjL2hvdHNwb3Qvb3NfY3B1L2xp bnV4X3g4Ni9vc19saW51eF94ODYuY3BwCi1AQCAtOTAsNiArOTAsMTI2IEBACi0gI2RlZmluZSBT UEVMTF9SRUdfRlAgImVicCIKLSAjZW5kaWYgLy8gQU1ENjQKLQotKy8vID09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQotKy8vIFRha2VuIGZyb20gZ2xpYmMgMi4yOAotKy8vIHNvdXJjZTogaHR0cHM6Ly9z b3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5c2RlcHMveDg2L2ZwdV9j b250cm9sLmg7aD00Y2I5OGM1Njc5YjI4OTdmZjRlNTgyNmQyMjhjYmE2YmU1ODllMjRkO2hiPTNj MDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNjYTM5MmJiYTdhOTljMmIKLSsvLyA9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KLSsjaWZuZGVmIEFNRDY0Ci0rLyogRlBVIGNvbnRyb2wgd29yZCBiaXRzLiAgeDg2 IHZlcnNpb24uCi0rICAgQ29weXJpZ2h0IChDKSAxOTkzLTIwMTggRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuCi0rICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEdOVSBDIExpYnJhcnku Ci0rICAgQ29udHJpYnV0ZWQgYnkgT2xhZiBGbGViYmUuCi0rCi0rICAgVGhlIEdOVSBDIExpYnJh cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0rICAg bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp YwotKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b247IGVpdGhlcgotKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyAgIFRoZSBHTlUgQyBMaWJyYXJ5IGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rICAgYnV0IFdJ VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK LSsgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQotKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCi0rCi0rICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwotKyAgIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgR05V IEMgTGlicmFyeTsgaWYgbm90LCBzZWUKLSsgICA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2Vz Lz4uICAqLwotKwotKyNpZm5kZWYgX0ZQVV9DT05UUk9MX0gKLSsjZGVmaW5lIF9GUFVfQ09OVFJP TF9ICTEKLSsKLSsvKiBOb3RlIHRoYXQgdGhpcyBmaWxlIHNldHMgb24geDg2LTY0IG9ubHkgdGhl IHg4NyBGUFUsIGl0IGRvZXMgbm90Ci0rICAgdG91Y2ggdGhlIFNTRSB1bml0LiAgKi8KLSsKLSsv KiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0LiBTZXQgdXAgeW91ciAzODcgdGhyb3VnaCB0aGUgY29u dHJvbCB3b3JkCi0rICogKGN3KSByZWdpc3Rlci4KLSsgKgotKyAqICAgICAxNS0xMyAgICAxMiAg MTEtMTAgIDktOCAgICAgNy02ICAgICA1ICAgIDQgICAgMyAgICAyICAgIDEgICAgMAotKyAqIHwg cmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8IFVNIHwgT00gfCBaTSB8 IERNIHwgSU0KLSsgKgotKyAqIElNOiBJbnZhbGlkIG9wZXJhdGlvbiBtYXNrCi0rICogRE06IERl bm9ybWFsaXplZCBvcGVyYW5kIG1hc2sKLSsgKiBaTTogWmVyby1kaXZpZGUgbWFzawotKyAqIE9N OiBPdmVyZmxvdyBtYXNrCi0rICogVU06IFVuZGVyZmxvdyBtYXNrCi0rICogUE06IFByZWNpc2lv biAoaW5leGFjdCByZXN1bHQpIG1hc2sKLSsgKgotKyAqIE1hc2sgYml0IGlzIDEgbWVhbnMgbm8g aW50ZXJydXB0LgotKyAqCi0rICogUEM6IFByZWNpc2lvbiBjb250cm9sCi0rICogMTEgLSByb3Vu ZCB0byBleHRlbmRlZCBwcmVjaXNpb24KLSsgKiAxMCAtIHJvdW5kIHRvIGRvdWJsZSBwcmVjaXNp b24KLSsgKiAwMCAtIHJvdW5kIHRvIHNpbmdsZSBwcmVjaXNpb24KLSsgKgotKyAqIFJDOiBSb3Vu ZGluZyBjb250cm9sCi0rICogMDAgLSByb3VuZGluZyB0byBuZWFyZXN0Ci0rICogMDEgLSByb3Vu ZGluZyBkb3duICh0b3dhcmQgLSBpbmZpbml0eSkKLSsgKiAxMCAtIHJvdW5kaW5nIHVwICh0b3dh cmQgKyBpbmZpbml0eSkKLSsgKiAxMSAtIHJvdW5kaW5nIHRvd2FyZCB6ZXJvCi0rICoKLSsgKiBJ QzogSW5maW5pdHkgY29udHJvbAotKyAqIFRoYXQgaXMgZm9yIDgwODcgYW5kIDgwMjg3IG9ubHku Ci0rICoKLSsgKiBUaGUgaGFyZHdhcmUgZGVmYXVsdCBpcyAweDAzN2Ygd2hpY2ggd2UgdXNlLgot KyAqLwotKwotKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgotKwotKy8qIG1hc2tpbmcgb2YgaW50ZXJy dXB0cyAqLwotKyNkZWZpbmUgX0ZQVV9NQVNLX0lNICAweDAxCi0rI2RlZmluZSBfRlBVX01BU0tf RE0gIDB4MDIKLSsjZGVmaW5lIF9GUFVfTUFTS19aTSAgMHgwNAotKyNkZWZpbmUgX0ZQVV9NQVNL X09NICAweDA4Ci0rI2RlZmluZSBfRlBVX01BU0tfVU0gIDB4MTAKLSsjZGVmaW5lIF9GUFVfTUFT S19QTSAgMHgyMAotKwotKy8qIHByZWNpc2lvbiBjb250cm9sICovCi0rI2RlZmluZSBfRlBVX0VY VEVOREVEIDB4MzAwCS8qIGxpYm0gcmVxdWlyZXMgZG91YmxlIGV4dGVuZGVkIHByZWNpc2lvbi4g ICovCi0rI2RlZmluZSBfRlBVX0RPVUJMRSAgIDB4MjAwCi0rI2RlZmluZSBfRlBVX1NJTkdMRSAg IDB4MAotKwotKy8qIHJvdW5kaW5nIGNvbnRyb2wgKi8KLSsjZGVmaW5lIF9GUFVfUkNfTkVBUkVT VCAweDAgICAgLyogUkVDT01NRU5ERUQgKi8KLSsjZGVmaW5lIF9GUFVfUkNfRE9XTiAgICAweDQw MAotKyNkZWZpbmUgX0ZQVV9SQ19VUCAgICAgIDB4ODAwCi0rI2RlZmluZSBfRlBVX1JDX1pFUk8g ICAgMHhDMDAKLSsKLSsjZGVmaW5lIF9GUFVfUkVTRVJWRUQgMHhGMEMwICAvKiBSZXNlcnZlZCBi aXRzIGluIGN3ICovCi0rCi0rCi0rLyogVGhlIGZkbGlibSBjb2RlIHJlcXVpcmVzIHN0cmljdCBJ RUVFIGRvdWJsZSBwcmVjaXNpb24gYXJpdGhtZXRpYywKLSsgICBhbmQgbm8gaW50ZXJydXB0cyBm b3IgZXhjZXB0aW9ucywgcm91bmRpbmcgdG8gbmVhcmVzdC4gICovCi0rCi0rI2RlZmluZSBfRlBV X0RFRkFVTFQgIDB4MDM3ZgotKwotKy8qIElFRUU6ICBzYW1lIGFzIGFib3ZlLiAgKi8KLSsjZGVm aW5lIF9GUFVfSUVFRSAgICAgMHgwMzdmCi0rCi0rLyogVHlwZSBvZiB0aGUgY29udHJvbCB3b3Jk LiAgKi8KLSt0eXBlZGVmIHVuc2lnbmVkIGludCBmcHVfY29udHJvbF90IF9fYXR0cmlidXRlX18g KChfX21vZGVfXyAoX19ISV9fKSkpOwotKwotKy8qIE1hY3JvcyBmb3IgYWNjZXNzaW5nIHRoZSBo YXJkd2FyZSBjb250cm9sIHdvcmQuICAiKiYiIGlzIHVzZWQgdG8KLSsgICB3b3JrIGFyb3VuZCBh IGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBHQ0MuICBfX3ZvbGF0aWxlX18gaXMgdXNlZAotKyAg IHRvIHN1cHBvcnQgY29tYmluYXRpb24gb2Ygd3JpdGluZyB0aGUgY29udHJvbCByZWdpc3RlciBh bmQgcmVhZGluZwotKyAgIGl0IGJhY2suICBXaXRob3V0IF9fdm9sYXRpbGVfXywgdGhlIG9sZCB2 YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVhZGluZwotKyAgIGJhY2sgdW5kZXIgY29tcGlsZXIgb3B0 aW1pemF0aW9uLgotKwotKyAgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIHRoZXNlIG1hY3JvcyBpcyBu b3Qgc3VmZmljaWVudCBhbnltb3JlIHdpdGgKLSsgICByZWNlbnQgaGFyZHdhcmUgbm9yIG9uIHg4 Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUKLSsgICBleGVjdXRlZCBp biB0aGUgU1NFL1NTRTIgZW5naW5lcyB3aGljaCBoYXZlIHRoZWlyIG93biBjb250cm9sIGFuZAot KyAgIHN0YXR1cyByZWdpc3Rlci4gICovCi0rI2RlZmluZSBfRlBVX0dFVENXKGN3KSBfX2FzbV9f IF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIgOiAiPW0iICgqJmN3KSkKLSsjZGVmaW5lIF9GUFVf U0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZmxkY3cgJTAiIDogOiAibSIgKComY3cp KQotKwotKy8qIERlZmF1bHQgY29udHJvbCB3b3JkIHNldCBhdCBzdGFydHVwLiAgKi8KLStleHRl cm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9jb250cm9sOwotKwotKyNlbmRpZgkvKiBmcHVfY29udHJv bC5oICovCi0rCi0rI2VuZGlmIC8vIEFNRDY0Ci0rLy8gPT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0r Ly8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09Ci0rLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0rCi0g YWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2ludGVyKCkgewotICNpZmRlZiBTUEFSQ19XT1JL UwotICAgcmVnaXN0ZXIgdm9pZCAqZXNwOwpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTQv dGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxNC90ZW1wbGF0ZQpkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggODY3ZmEwNzc2OWMzLi4wMDAwMDAwMDAwMDAKLS0tIGEvc3JjcGtncy9vcGVu amRrMTQvdGVtcGxhdGUKKysrIC9kZXYvbnVsbApAQCAtMSwyMDEgKzAsMCBAQAotIyBUZW1wbGF0 ZSBmaWxlIGZvciAnb3BlbmpkazE0JwotX2phdmFfdmVyPTE0Ci1famF2YV9taW5fdmVyPTAKLV9q YXZhX3NlY192ZXI9MgotX2pka191cGRhdGU9MTIKLV9qZGtfaG9tZT0idXNyL2xpYi9qdm0vb3Bl bmpkayR7X2phdmFfdmVyfSIKLV9iYXNlX3ZlcnNpb249IiR7X2phdmFfdmVyfS4ke19qYXZhX21p bl92ZXJ9LiR7X2phdmFfc2VjX3Zlcn0iCi0KLXBrZ25hbWU9b3BlbmpkazE0Ci12ZXJzaW9uPSIk e19iYXNlX3ZlcnNpb259KyR7X2pka191cGRhdGV9IgotcmV2aXNpb249MQotd3Jrc3JjPSJqZGsk e19qYXZhX3Zlcn11LWpkay0ke3ZlcnNpb259IgotYnVpbGRfc3R5bGU9Z251LWNvbmZpZ3VyZQot Y29uZmlndXJlX2FyZ3M9IgotIC0tZGlzYWJsZS13YXJuaW5ncy1hcy1lcnJvcnMKLSAtLXByZWZp eD0ke1hCUFNfREVTVERJUn0vJHtYQlBTX0NST1NTX1RSSVBMRVR9LyR7cGtnbmFtZX0tJHt2ZXJz aW9ufS91c3IvbGliCi0gLS1lbmFibGUtdW5saW1pdGVkLWNyeXB0bwotIC0td2l0aC16bGliPXN5 c3RlbQotIC0td2l0aC1saWJqcGVnPXN5c3RlbQotIC0td2l0aC1naWZsaWI9c3lzdGVtCi0gLS13 aXRoLWxpYnBuZz1zeXN0ZW0KLSAtLXdpdGgtbGNtcz1zeXN0ZW0KLSAtLXdpdGgtanRyZWc9bm8K LSAtLXdpdGgtdmVyc2lvbi1idWlsZD0kX2phdmFfdmVyCi0gLS13aXRoLWpvYnM9JFhCUFNfT1JJ R19NQUtFSk9CUwotIC0td2l0aC12ZW5kb3ItbmFtZT1Wb2lkCi0gLS13aXRoLXZlbmRvci11cmw9 aHR0cHM6Ly92b2lkbGludXgub3JnLwotIC0td2l0aC12ZW5kb3ItYnVnLXVybD1odHRwczovL2dp dGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lzc3VlcwotIC0td2l0aC12ZW5kb3It dm0tYnVnLXVybD1odHRwczovL2dpdGh1Yi5jb20vdm9pZC1saW51eC92b2lkLXBhY2thZ2VzL2lz c3VlcyIKLW1ha2VfYnVpbGRfYXJncz0iaW1hZ2VzICQodm9wdF9pZiBkb2NzIGRvY3MpIgotbWFr ZV9jaGVja190YXJnZXQ9InRlc3QtaG90c3BvdC1ndGVzdCIKLWhvc3RtYWtlZGVwZW5kcz0icGtn LWNvbmZpZyBhdXRvbWFrZSBhdXRvY29uZiBjcGlvIHRhciB1bnppcCB6aXAgY2EtY2VydGlmaWNh dGVzCi0gbGlicmVzc2wgemxpYi1kZXZlbCB3aGljaCBtYWtlLWNhIgotbWFrZWRlcGVuZHM9Imxp YlhyZW5kZXItZGV2ZWwgbGliWHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFuZHItZGV2ZWwK LSBnaWZsaWItZGV2ZWwgbGlianBlZy10dXJiby1kZXZlbCBjdXBzLWRldmVsIGZyZWV0eXBlLWRl dmVsIGFsc2EtbGliLWRldmVsCi0gZm9udGNvbmZpZy1kZXZlbCB6bGliLWRldmVsIGxjbXMyLWRl dmVsIgotcHJvdmlkZXM9ImphdmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEtcnVudGlt ZS0ke3ZlcnNpb259XzEiCi1zaG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0 IgotbWFpbnRhaW5lcj0ixJBvw6BuIFRy4bqnbiBDw7RuZyBEYW5oIDxjb25nZGFuaHF4QGdtYWls LmNvbT4iCi1saWNlbnNlPSJHUEwtMi4wLW9yLWxhdGVyIgotaG9tZXBhZ2U9Imh0dHA6Ly9vcGVu amRrLmphdmEubmV0LyIKLWRpc3RmaWxlcz0iaHR0cHM6Ly9oZy5vcGVuamRrLmphdmEubmV0L2pk ay11cGRhdGVzL2pkayR7X2phdmFfdmVyfXUvYXJjaGl2ZS9qZGstJHt2ZXJzaW9ufS50YXIuZ3oi Ci1jaGVja3N1bT1kZmIzNjA3ZjFiNjc1NDU4ZjI5YTE4NWE0MGYxZGJiZjg5NjQzOWNmMzNiM2Fh MGYzZDg5ZGYyOTdlNjA0OTM1Ci1zaGxpYl9wcm92aWRlcz0ibGliYXd0LnNvIGxpYmF3dF94YXd0 LnNvIGxpYmphdmEuc28gbGliamxpLnNvIGxpYmp2bS5zbyBsaWJqYXd0LnNvIgotCi0jIEJ1aWxk IGlzIHN0aWxsIHBhcmFsbGVsLCBidXQgZG9uJ3QgdXNlIC1qTi4KLWRpc2FibGVfcGFyYWxsZWxf YnVpbGQ9eWVzCi1idWlsZF9vcHRpb25zPSJkb2NzIgotCi0jIG5vIGhvdHNwb3QgSklUIGZvciBw cGMzMgotY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JcHBjNjQqKSA7OwotCXBwYyop IF91c2VfemVybz15ZXMgOzsKLWVzYWMKLQotaWYgWyAtbiAiJF91c2VfemVybyIgXTsgdGhlbgot CW1ha2VkZXBlbmRzKz0iIGxpYmZmaS1kZXZlbCIKLQljb25maWd1cmVfYXJncys9IiAtLXdpdGgt anZtLXZhcmlhbnRzPXplcm8iCi0JY2FzZSAiJFhCUFNfVEFSR0VUX01BQ0hJTkUiIGluCi0JcHBj KikgY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrLWp2bWFyZ3M9LVhYOlRocmVhZFN0 YWNrU2l6ZT0yNTYwIjs7Ci0JZXNhYwotZmkKLQotY2FzZSAiJFhCUFNfVEFSR0VUX0xJQkMiIGlu Ci0JZ2xpYmMpIGJ1aWxkX29wdGlvbnNfZGVmYXVsdCs9IiBkb2NzIjs7Ci1lc2FjCi0KLWlmIFsg ISAiJENST1NTX0JVSUxEIiBdOyB0aGVuCi0JaG9zdG1ha2VkZXBlbmRzKz0iIG9wZW5qZGsxMy1i b290c3RyYXAiCi0JY29uZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2 bS9vcGVuamRrMTMiCi1lbHNlCi0JaG9zdG1ha2VkZXBlbmRzKz0iIG9wZW5qZGsxNCIKLQljb25m aWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGs9L3Vzci9saWIvanZtL29wZW5qZGsxNCIKLWZp Ci0KLWFsdGVybmF0aXZlcz0iCi0gamF2YTovdXNyL2Jpbi9qYXZhOi91c3IvbGliL2p2bS9vcGVu amRrMTQvYmluL2phdmEKLSBqYXZhOi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0vb3BlbmpkazE0 L2Jpbi9qanMKLSBqYXZhOi91c3IvYmluL2tleXRvb2w6L3Vzci9saWIvanZtL29wZW5qZGsxNC9i aW4va2V5dG9vbAotIGphdmE6L3Vzci9iaW4vcGFjazIwMDovdXNyL2xpYi9qdm0vb3BlbmpkazE0 L2Jpbi9wYWNrMjAwCi0gamF2YTovdXNyL2Jpbi9ybWlkOi91c3IvbGliL2p2bS9vcGVuamRrMTQv YmluL3JtaWQKLSBqYXZhOi91c3IvYmluL3JtaXJlZ2lzdHJ5Oi91c3IvbGliL2p2bS9vcGVuamRr MTQvYmluL3JtaXJlZ2lzdHJ5Ci0gamF2YTovdXNyL2Jpbi91bnBhY2syMDA6L3Vzci9saWIvanZt L29wZW5qZGsxNC9iaW4vdW5wYWNrMjAwCi0KLSBqZGs6L3Vzci9iaW4vamFvdGM6L3Vzci9saWIv anZtL29wZW5qZGsxNC9iaW4vamFvdGMKLSBqZGs6L3Vzci9iaW4vamFyOi91c3IvbGliL2p2bS9v cGVuamRrMTQvYmluL2phcgotIGpkazovdXNyL2Jpbi9qYXJzaWduZXI6L3Vzci9saWIvanZtL29w ZW5qZGsxNC9iaW4vamFyc2lnbmVyCi0gamRrOi91c3IvYmluL2phdmE6L3Vzci9saWIvanZtL29w ZW5qZGsxNC9iaW4vamF2YQotIGpkazovdXNyL2Jpbi9qYXZhYzovdXNyL2xpYi9qdm0vb3Blbmpk azE0L2Jpbi9qYXZhYwotIGpkazovdXNyL2Jpbi9qYXZhZG9jOi91c3IvbGliL2p2bS9vcGVuamRr MTQvYmluL2phdmFkb2MKLSBqZGs6L3Vzci9iaW4vamF2YXA6L3Vzci9saWIvanZtL29wZW5qZGsx NC9iaW4vamF2YXAKLSBqZGs6L3Vzci9iaW4vamNtZDovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jp bi9qY21kCi0gamRrOi91c3IvYmluL2pjb25zb2xlOi91c3IvbGliL2p2bS9vcGVuamRrMTQvYmlu L2pjb25zb2xlCi0gamRrOi91c3IvYmluL2pkYjovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9q ZGIKLSBqZGs6L3Vzci9iaW4vamRlcHJzY2FuOi91c3IvbGliL2p2bS9vcGVuamRrMTQvYmluL2pk ZXByc2NhbgotIGpkazovdXNyL2Jpbi9qZGVwczovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9q ZGVwcwotIGpkazovdXNyL2Jpbi9qaHNkYjovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9qaHNk YgotIGpkazovdXNyL2Jpbi9qaW1hZ2U6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vamltYWdl Ci0gamRrOi91c3IvYmluL2ppbmZvOi91c3IvbGliL2p2bS9vcGVuamRrMTQvYmluL2ppbmZvCi0g amRrOi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9qanMKLSBqZGs6L3Vz ci9iaW4vamxpbms6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vamxpbmsKLSBqZGs6L3Vzci9i aW4vam1hcDovdXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9qbWFwCi0gamRrOi91c3IvYmluL2pt b2Q6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vam1vZAotIGpkazovdXNyL2Jpbi9qcHM6L3Vz ci9saWIvanZtL29wZW5qZGsxNC9iaW4vanBzCi0gamRrOi91c3IvYmluL2pydW5zY3JpcHQ6L3Vz ci9saWIvanZtL29wZW5qZGsxNC9iaW4vanJ1bnNjcmlwdAotIGpkazovdXNyL2Jpbi9qc2hlbGw6 L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vanNoZWxsCi0gamRrOi91c3IvYmluL2pzdGFjazov dXNyL2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9qc3RhY2sKLSBqZGs6L3Vzci9iaW4vanN0YXQ6L3Vz ci9saWIvanZtL29wZW5qZGsxNC9iaW4vanN0YXQKLSBqZGs6L3Vzci9iaW4vanN0YXRkOi91c3Iv bGliL2p2bS9vcGVuamRrMTQvYmluL2pzdGF0ZAotIGpkazovdXNyL2Jpbi9rZXl0b29sOi91c3Iv bGliL2p2bS9vcGVuamRrMTQvYmluL2tleXRvb2wKLSBqZGs6L3Vzci9iaW4vcGFjazIwMDovdXNy L2xpYi9qdm0vb3BlbmpkazE0L2Jpbi9wYWNrMjAwCi0gamRrOi91c3IvYmluL3JtaWM6L3Vzci9s aWIvanZtL29wZW5qZGsxNC9iaW4vcm1pYwotIGpkazovdXNyL2Jpbi9ybWlkOi91c3IvbGliL2p2 bS9vcGVuamRrMTQvYmluL3JtaWQKLSBqZGs6L3Vzci9iaW4vcm1pcmVnaXN0cnk6L3Vzci9saWIv anZtL29wZW5qZGsxNC9iaW4vcm1pcmVnaXN0cnkKLSBqZGs6L3Vzci9iaW4vc2VyaWFsdmVyOi91 c3IvbGliL2p2bS9vcGVuamRrMTQvYmluL3NlcmlhbHZlcgotIGpkazovdXNyL2Jpbi91bnBhY2sy MDA6L3Vzci9saWIvanZtL29wZW5qZGsxNC9iaW4vdW5wYWNrMjAwCi0iCi0KLXBvc3RfZXh0cmFj dCgpIHsKLQljaG1vZCAreCBjb25maWd1cmUKLQlpZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAi bXVzbCIgXTsgdGhlbgotCQlybSAtciBzcmMvamRrLmhvdHNwb3QuYWdlbnQKLQlmaQotfQotCi1w b3N0X3BhdGNoKCkgewotCWlmIFsgIiRYQlBTX1RBUkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVu Ci0JCWZvciBmIGluICIke0ZJTEVTRElSfSIvbXVzbF9wYXRjaGVzLyoucGF0Y2g7IGRvCi0JCQlt c2dfbm9ybWFsICJBcHBseWluZyAke2YjJEZJTEVTRElSL31cbiIKLQkJCXBhdGNoIC1zbE5wMSAt aSAiJGYiCi0JCWRvbmUKLQlmaQotfQotCi1kb19jb25maWd1cmUoKSB7Ci0JQ0ZMQUdTPSR7Q0ZM QUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQotCUNYWEZMQUdTPSR7Q1hYRkxBR1MvLURfRk9SVElG WV9TT1VSQ0U9Mi99Ci0KLQkjIGZvcmNlIEVMRnYyIGZvciBwcGM2NCBqdXN0IGluIGNhc2UKLQlj YXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4KLQlwcGM2NCopCi0JCUNGTEFHUys9IiAtREFC SV9FTEZ2MiIKLQkJQ1hYRkxBR1MrPSIgLURBQklfRUxGdjIiCi0JCTs7Ci0JZXNhYwotCi0JY29u ZmlndXJlX2FyZ3M9JHtjb25maWd1cmVfYXJncy8tLXdpdGgtbGlidG9vbC1zeXNyb290PVwvdXNy XC9bYS16MC05XSotbGludXgtW2Etel0qL30KLQlpZiBbICIkWEJQU19DQ0FDSEUiIF0gJiYgWyAt eiAiJENST1NTX0JVSUxEIiBdOyB0aGVuCi0JCWNvbmZpZ3VyZV9hcmdzKz0iIC0tZW5hYmxlLWNj YWNoZSIKLQkJQ0M9Ii91c3IvYmluL2NjIgotCQlDWFg9Ii91c3IvYmluL2MrKyIKLQlmaQotCS4v Y29uZmlndXJlICR7Y29uZmlndXJlX2FyZ3N9IFwKLQkJLS13aXRoLWV4dHJhLWNmbGFncz0iJENG TEFHUyIgXAotCQktLXdpdGgtZXh0cmEtY3h4ZmxhZ3M9IiRDWFhGTEFHUyIgXAotCQktLXdpdGgt ZXh0cmEtbGRmbGFncz0iJExERkxBR1MiIFwKLQkJUkVBREVMRj0kUkVBREVMRiBBUj0kQVIgU1RS SVA9JFNUUklQIE5NPSROTSBcCi0JCU9CSkRVTVA9JE9CSkRVTVAgT0JKQ09QWT0kT0JKQ09QWQot fQotCi1wb3N0X2luc3RhbGwoKSB7Ci0Jcm0gLXJmICR7REVTVERJUn0vdXNyL2xpYi9iaW4KLQlt diAke0RFU1RESVJ9L3Vzci9saWIvanZtL29wZW5qZGstJHtfYmFzZV92ZXJzaW9ufS1pbnRlcm5h bCAke0RFU1RESVJ9LyRfamRrX2hvbWUKLQl2bWtkaXIgJF9qZGtfaG9tZS9saWIvc2VjdXJpdHkK LQltYWtlLWNhIC1nIC1mIC0tZGVzdGRpciAiJHtQV0R9L2NhIiAtayAiJHtERVNURElSfS8kX2pk a19ob21lL2Jpbi9rZXl0b29sIgotCW12IC4vY2EvZXRjL3BraS90bHMvamF2YS9jYWNlcnRzICR7 REVTVERJUn0vJF9qZGtfaG9tZS9saWIvc2VjdXJpdHkvCi0JY2htb2QgLVIgdWdvK3J3IC4vY2EK LQlybSAtcmYgLi9jYQotCXZta2RpciBldGMvcHJvZmlsZS5kCi0JY2F0ID4+JHtERVNURElSfS9l dGMvcHJvZmlsZS5kLzEwX29wZW5qZGsxNC5zaCA8PC1FT0YKLQlleHBvcnQgSkFWQV9IT01FPVwk e0pBVkFfSE9NRT0vJF9qZGtfaG9tZX0KLQlFT0YKLQl2bGljZW5zZSBBU1NFTUJMWV9FWENFUFRJ T04KLQl2bGljZW5zZSBMSUNFTlNFCi19Ci0KLW9wZW5qZGsxNC1kb2NfcGFja2FnZSgpIHsKLQlu b3N0cmlwPXllcwotCW5vdmVyaWZ5cmRlcHM9eWVzCi0Jbm9zaGxpYnByb3ZpZGVzPXllcwotCXNo b3J0X2Rlc2MrPSIgLS0gZG9jdW1lbnRhdGlvbiIKLQlwa2dfaW5zdGFsbCgpIHsKLQkJY2QgJHt3 cmtzcmN9Ci0JCWlmIFsgIiRidWlsZF9vcHRpb25fZG9jcyIgXTsgdGhlbgotCQkJbG9jYWwgX2Rv Y2Rpcj11c3Ivc2hhcmUvZG9jL29wZW5qZGskX2phdmFfdmVyCi0JCQl2bWtkaXIgJF9kb2NkaXIK LQkJCWNwIC1hIGJ1aWxkL2xpbnV4LSovaW1hZ2VzL2RvY3MvKiAke1BLR0RFU1RESVJ9LyRfZG9j ZGlyCi0JCWZpCi0JCXZtb3ZlICRfamRrX2hvbWUvbWFuL21hbjEKLQl9Ci19Ci0KLW9wZW5qZGsx NC1zcmNfcGFja2FnZSgpIHsKLQlub3N0cmlwPXllcwotCW5vdmVyaWZ5cmRlcHM9eWVzCi0Jbm9z aGxpYnByb3ZpZGVzPXllcwotCXNob3J0X2Rlc2MrPSIgLS0gc291cmNlcyIKLQlwa2dfaW5zdGFs bCgpIHsKLQkJdm1vdmUgIiRfamRrX2hvbWUvbGliL3NyYy56aXAiCi0JfQotfQoKRnJvbSA1M2Fi NWY1NTQ4YzJmNGQwMTZiZTU1YTY4MGMzNDgzMzlkNDcwNDlhIE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQpGcm9tOiBUYWkgQ2hpIE1pbmggUmFscGggRWFzdHdvb2QgPHRjbXJlYXN0d29vZEBnbWFp bC5jb20+CkRhdGU6IFN1biwgNSBEZWMgMjAyMSAxMjo0OTowMSArMDEwMApTdWJqZWN0OiBbUEFU Q0ggOC84XSBOZXcgcGFja2FnZTogb3BlbmpkazE3LTE3LjAuMSsxMgoKLS0tCiBjb21tb24vc2hs aWJzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjcGtncy9vcGVu amRrMTctZG9jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyY3BrZ3Mvb3Blbmpk azE3LXNyYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSArCiBzcmNwa2dzL29wZW5qZGsx Ny1zdGF0aWMtbGlicyAgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL2ZpbGVzL211c2xfcGF0 Y2hlcy9hYXJjaDY0LnBhdGNoICAgICAgICAgIHwgIDEwICsKIC4uLi9vcGVuamRrMTcvZmlsZXMv bXVzbF9wYXRjaGVzL2FybS5wYXRjaCAgICB8ICAyMSArCiAuLi4vb3BlbmpkazE3L2ZpbGVzL211 c2xfcGF0Y2hlcy9idWlsZC5wYXRjaCAgfCAzNzIgKysrKysrKysrKysrKysrKysrCiAuLi4vb3Bl bmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2ggICAgfCAgNDUgKysrCiAuLi4vb3Bl bmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0Y2ggICAgfCAxMzAgKysrKysrCiBzcmNw a2dzL29wZW5qZGsxNy90ZW1wbGF0ZSAgICAgICAgICAgICAgICAgICAgfCAyMDIgKysrKysrKysr KwogMTAgZmlsZXMgY2hhbmdlZCwgNzg5IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEyMDAw MCBzcmNwa2dzL29wZW5qZGsxNy1kb2MKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL29wZW5q ZGsxNy1zcmMKIGNyZWF0ZSBtb2RlIDEyMDAwMCBzcmNwa2dzL29wZW5qZGsxNy1zdGF0aWMtbGli cwogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hl cy9hYXJjaDY0LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTcvZmls ZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyY3BrZ3Mvb3Bl bmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9idWlsZC5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9wcGMucGF0Y2gKIGNyZWF0ZSBt b2RlIDEwMDY0NCBzcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMveDg2LnBhdGNo CiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjcGtncy9vcGVuamRrMTcvdGVtcGxhdGUKCmRpZmYgLS1n aXQgYS9jb21tb24vc2hsaWJzIGIvY29tbW9uL3NobGlicwppbmRleCBhYjg2NWNjMDg1ZDIuLjIx ZGE3YmZlMWFkMiAxMDA2NDQKLS0tIGEvY29tbW9uL3NobGlicworKysgYi9jb21tb24vc2hsaWJz CkBAIC0xODEwLDYgKzE4MTAsMTIgQEAgbGliYXd0X3hhd3Quc28gb3BlbmpkazExLTExLjAuNSsx MF8xCiBsaWJqYXZhLnNvIG9wZW5qZGsxMS0xMS4wLjUrMTBfMQogbGliamxpLnNvIG9wZW5qZGsx MS0xMS4wLjUrMTBfMQogbGlianZtLnNvIG9wZW5qZGsxMS0xMS4wLjUrMTBfMQorbGliamF3dC5z byBvcGVuamRrMTctMTcuMC4xKzEyXzEKK2xpYmF3dC5zbyBvcGVuamRrMTctMTcuMC4xKzEyXzEK K2xpYmF3dF94YXd0LnNvIG9wZW5qZGsxNy0xNy4wLjErMTJfMQorbGliamF2YS5zbyBvcGVuamRr MTctMTcuMC4xKzEyXzEKK2xpYmpsaS5zbyBvcGVuamRrMTctMTcuMC4xKzEyXzEKK2xpYmp2bS5z byBvcGVuamRrMTctMTcuMC4xKzEyXzEKIGxpYmphd3Quc28gb3BlbmpkazctYm9vdHN0cmFwLTd1 MjIxYjAyXzEKIGxpYmF3dC5zbyBvcGVuamRrNy1ib290c3RyYXAtN3UyMjFiMDJfMQogbGliYXd0 X3hhd3Quc28gb3BlbmpkazctYm9vdHN0cmFwLTd1MjIxYjAyXzEKZGlmZiAtLWdpdCBhL3NyY3Br Z3Mvb3BlbmpkazE3LWRvYyBiL3NyY3BrZ3Mvb3BlbmpkazE3LWRvYwpuZXcgZmlsZSBtb2RlIDEy MDAwMAppbmRleCAwMDAwMDAwMDAwMDAuLjk5YWIxY2IxYjBkMgotLS0gL2Rldi9udWxsCisrKyBi L3NyY3BrZ3Mvb3BlbmpkazE3LWRvYwpAQCAtMCwwICsxIEBACitvcGVuamRrMTcKXCBObyBuZXds aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNy1zcmMgYi9z cmNwa2dzL29wZW5qZGsxNy1zcmMKbmV3IGZpbGUgbW9kZSAxMjAwMDAKaW5kZXggMDAwMDAwMDAw MDAwLi45OWFiMWNiMWIwZDIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNy1z cmMKQEAgLTAsMCArMSBAQAorb3BlbmpkazE3ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpk aWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTctc3RhdGljLWxpYnMgYi9zcmNwa2dzL29wZW5q ZGsxNy1zdGF0aWMtbGlicwpuZXcgZmlsZSBtb2RlIDEyMDAwMAppbmRleCAwMDAwMDAwMDAwMDAu Ljk5YWIxY2IxYjBkMgotLS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE3LXN0YXRp Yy1saWJzCkBAIC0wLDAgKzEgQEAKK29wZW5qZGsxNwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp bGUKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9hYXJj aDY0LnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL2FhcmNoNjQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5hYTZjNWQ0ZDJi ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNo ZXMvYWFyY2g2NC5wYXRjaApAQCAtMCwwICsxLDEwIEBACistLS0gYS9zcmMvaG90c3BvdC9vc19j cHUvbGludXhfYWFyY2g2NC9vc19saW51eF9hYXJjaDY0LmNwcAorKysrIGIvc3JjL2hvdHNwb3Qv b3NfY3B1L2xpbnV4X2FhcmNoNjQvb3NfbGludXhfYWFyY2g2NC5jcHAKK0BAIC03NCw3ICs3NCw2 IEBACisgIyBpbmNsdWRlIDxwd2QuaD4KKyAjIGluY2x1ZGUgPHBvbGwuaD4KKyAjIGluY2x1ZGUg PHVjb250ZXh0Lmg+CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorIAorICNkZWZpbmUgUkVH X0ZQIDI5CisgI2RlZmluZSBSRUdfTFIgMzAKZGlmZiAtLWdpdCBhL3NyY3BrZ3Mvb3BlbmpkazE3 L2ZpbGVzL211c2xfcGF0Y2hlcy9hcm0ucGF0Y2ggYi9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9t dXNsX3BhdGNoZXMvYXJtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAwMC4uMTAyNDI4ZjEwZjMzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTcv ZmlsZXMvbXVzbF9wYXRjaGVzL2FybS5wYXRjaApAQCAtMCwwICsxLDIxIEBACistLS0gYS9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfYXJtL29zX2xpbnV4X2FybS5jcHAKKysrKyBiL3NyYy9ob3Rz cG90L29zX2NwdS9saW51eF9hcm0vb3NfbGludXhfYXJtLmNwcAorQEAgLTczLDYgKzczLDE4IEBA CisgIyBpbmNsdWRlIDx1Y29udGV4dC5oPgorICMgaW5jbHVkZSA8YXNtL3B0cmFjZS5oPgorIAor Ky8vIFN0dXBpZCBoYWNrIGFzIHRoZSBvcmlnaW4gaWYgYmVsb3cgZG9lc250IGNvbXBpbGUgd2l0 aCBnY2MgOC4yLjA6CisrLy8KKysvLyBvc19saW51eF9hcm0uY3BwOjExNDo1OiBlcnJvcjogbWlz c2luZyBiaW5hcnkgb3BlcmF0b3IgYmVmb3JlIHRva2VuICIoIgorKy8vICAjaWYgTkdSRUcgPT0g MTYKKysvLyAgICAgICBefn5+fgorKy8vCisrLy8gVGhlIE5HUkVHIGlzIDE4IChiaXRzL3NpZ25h bC5oOjEwKSwgc28gZm9yY2UgaXQgdG8gdGhhdCB2YWx1ZS4KKysjaWZkZWYgTkdSRUcKKysjICB1 bmRlZiBOR1JFRworKyNlbmRpZgorKyNkZWZpbmUgTkdSRUcgMTgKKysKKyAjZGVmaW5lIFNQRUxM X1JFR19TUCAgInNwIgorIAorIC8vIERvbid0ICNkZWZpbmUgU1BFTExfUkVHX0ZQIGZvciB0aHVt YiBiZWNhdXNlIGl0IGlzIG5vdCBzYWZlIHRvIHVzZSwgc28gdGhpcyBtYWtlcyBzdXJlIHdlIG5l dmVyIGZldGNoIGl0LgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9w YXRjaGVzL2J1aWxkLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVz L2J1aWxkLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uNjBk ZmRlYzMwYWJjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVz bF9wYXRjaGVzL2J1aWxkLnBhdGNoCkBAIC0wLDAgKzEsMzcyIEBACistLS0gYS9tYWtlL1JlbGVh c2VGaWxlLmdtaworKysrIGIvbWFrZS9SZWxlYXNlRmlsZS5nbWsKK0BAIC01Myw2ICs1Myw3IEBA IGRlZmluZSBjcmVhdGUtaW5mby1maWxlCisgICAkKGNhbGwgaW5mby1maWxlLWl0ZW0sICJKQVZB X1ZFUlNJT05fREFURSIsICIkKFZFUlNJT05fREFURSkiKQorICAgJChjYWxsIGluZm8tZmlsZS1p dGVtLCAiT1NfTkFNRSIsICIkKFJFTEVBU0VfRklMRV9PU19OQU1FKSIpCisgICAkKGNhbGwgaW5m by1maWxlLWl0ZW0sICJPU19BUkNIIiwgIiQoUkVMRUFTRV9GSUxFX09TX0FSQ0gpIikKKysgICQo Y2FsbCBpbmZvLWZpbGUtaXRlbSwgIkxJQkMiLCAibXVzbCIpCisgZW5kZWYKKyAKKyAjIFBhcmFt IDEgLSBUaGUgZmlsZSBjb250YWluaW5nIHRoZSBNT0RVTEVTIGxpc3QKKy0tLSBhL21ha2UvaG90 c3BvdC9saWIvQ29tcGlsZUp2bS5nbWsKKysrKyBiL21ha2UvaG90c3BvdC9saWIvQ29tcGlsZUp2 bS5nbWsKK0BAIC03Myw2ICs3Myw3IEBAIENGTEFHU19WTV9WRVJTSU9OIDo9IFwKKyAgICAgLURI T1RTUE9UX0JVSUxEX1VTRVI9JyIkKFVTRVJOQU1FKSInIFwKKyAgICAgLURIT1RTUE9UX1ZNX0RJ U1RSTz0nIiQoSE9UU1BPVF9WTV9ESVNUUk8pIicgXAorICAgICAtRENQVT0nIiQoT1BFTkpES19U QVJHRVRfQ1BVX1ZNX1ZFUlNJT04pIicgXAorKyAgICAtRExJQkM9JyJtdXNsIicgXAorICAgICAj CisgCisgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKy0tLSBhL21ha2UvbGliL0NvcmVMaWJyYXJp ZXMuZ21rCisrKysgYi9tYWtlL2xpYi9Db3JlTGlicmFyaWVzLmdtaworQEAgLTE5MCw2ICsxOTAs NyBAQCBpZmVxICgkKGNhbGwgaXNUYXJnZXRPcywgd2luZG93cyksIHRydWUpCisgZW5kaWYKKyAK KyBMSUJKTElfQ0ZMQUdTICs9ICQoTElCWl9DRkxBR1MpCisrTElCSkxJX0NGTEFHUyArPSAtRExJ QkM9XCJtdXNsXCIKKyAKKyBpZm5lcSAoJChVU0VfRVhURVJOQUxfTElCWiksIHRydWUpCisgICBM SUJKTElfRVhUUkFfRklMRVMgKz0gXAorLS0tIGEvc3JjL2hvdHNwb3Qvb3MvbGludXgvb3NfbGlu dXguY3BwCisrKysgYi9zcmMvaG90c3BvdC9vcy9saW51eC9vc19saW51eC5jcHAKK0BAIC0xMDIs NyArMTAyLDYgQEAKKyAjIGluY2x1ZGUgPHN0cmluZy5oPgorICMgaW5jbHVkZSA8c3lzY2FsbC5o PgorICMgaW5jbHVkZSA8c3lzL3N5c2luZm8uaD4KKy0jIGluY2x1ZGUgPGdudS9saWJjLXZlcnNp b24uaD4KKyAjIGluY2x1ZGUgPHN5cy9pcGMuaD4KKyAjIGluY2x1ZGUgPHN5cy9zaG0uaD4KKyAj IGluY2x1ZGUgPGxpbmsuaD4KK0BAIC01OTcsNiArNTk2LDEyIEBAIHZvaWQgb3M6OkxpbnV4Ojpo b3RzcG90X3NpZ21hc2soVGhyZWFkKiB0aHJlYWQpIHsKKyAvLyBkZXRlY3RpbmcgcHRocmVhZCBs aWJyYXJ5CisgCisgdm9pZCBvczo6TGludXg6OmxpYnB0aHJlYWRfaW5pdCgpIHsKKysjaWYgIWRl ZmluZWQoX19HTElCQ19fKSAmJiAhZGVmaW5lZChfX1VDTElCQ19fKQorKyAgLy8gSGFyZCBjb2Rl IEFscGluZSBMaW51eCBzdXBwb3J0ZWQgbXVzbCBjb21wYXRpYmxlIHNldHRpbmdzCisrICAvLyBz Z246IE5QVEwgaXMgY29ycmVjdCwgZG9uJ3Qga25vdyBhYm91dCBnbGliYyAyLjksIGFscGluZSdz IHRoaW5nPworKyAgb3M6OkxpbnV4OjpzZXRfZ2xpYmNfdmVyc2lvbigiZ2xpYmMgMi45Iik7Cisr ICBvczo6TGludXg6OnNldF9saWJwdGhyZWFkX3ZlcnNpb24oIk5QVEwiKTsKKysjZWxzZQorICAg Ly8gU2F2ZSBnbGliYyBhbmQgcHRocmVhZCB2ZXJzaW9uIHN0cmluZ3MuCisgI2lmICFkZWZpbmVk KF9DU19HTlVfTElCQ19WRVJTSU9OKSB8fCBcCisgICAgICFkZWZpbmVkKF9DU19HTlVfTElCUFRI UkVBRF9WRVJTSU9OKQorQEAgLTYxNCw2ICs2MTksNyBAQCB2b2lkIG9zOjpMaW51eDo6bGlicHRo cmVhZF9pbml0KCkgeworICAgc3RyID0gKGNoYXIgKiltYWxsb2MobiwgbXRJbnRlcm5hbCk7Cisg ICBjb25mc3RyKF9DU19HTlVfTElCUFRIUkVBRF9WRVJTSU9OLCBzdHIsIG4pOworICAgb3M6Okxp bnV4OjpzZXRfbGlicHRocmVhZF92ZXJzaW9uKHN0cik7CisrI2VuZGlmCisgfQorIAorIC8vLy8v Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v Ly8vLy8vLy8vLy8vLy8vCitAQCAtMzExNywyMCArMzEyMywzNiBAQCB2b2lkIG9zOjpMaW51eDo6 c2NoZWRfZ2V0Y3B1X2luaXQoKSB7CisgZXh0ZXJuICJDIiBKTklFWFBPUlQgdm9pZCBudW1hX3dh cm4oaW50IG51bWJlciwgY2hhciAqd2hlcmUsIC4uLikgeyB9CisgZXh0ZXJuICJDIiBKTklFWFBP UlQgdm9pZCBudW1hX2Vycm9yKGNoYXIgKndoZXJlKSB7IH0KKyAKKytzdGF0aWMgdm9pZCogZGx2 c3ltX2lmX2F2YWlsYWJsZSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNo YXIqIHZlcnNpb24pIHsKKysgIHR5cGVkZWYgdm9pZCogKCpkbHZzeW1fZnVuY190eXBlKSh2b2lk KiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IGNoYXIqIHZlcnNpb24pOworKyAgc3Rh dGljIGRsdnN5bV9mdW5jX3R5cGUgZGx2c3ltX2Z1bmM7CisrICBzdGF0aWMgYm9vbCBpbml0aWFs aXplZCA9IGZhbHNlOworKworKyAgaWYgKCFpbml0aWFsaXplZCkgeworKyAgICBkbHZzeW1fZnVu YyA9IChkbHZzeW1fZnVuY190eXBlKWRsc3ltKFJUTERfTkVYVCwgImRsdnN5bSIpOworKyAgICBp bml0aWFsaXplZCA9IHRydWU7CisrICB9CisrCisrICBpZiAoZGx2c3ltX2Z1bmMgIT0gTlVMTCkg eworKyAgICB2b2lkICpmID0gZGx2c3ltX2Z1bmMoaGFuZGxlLCBuYW1lLCB2ZXJzaW9uKTsKKysg ICAgaWYgKGYgIT0gTlVMTCkgeworKyAgICAgIHJldHVybiBmOworKyAgICB9CisrICB9CisrCisr ICByZXR1cm4gZGxzeW0oaGFuZGxlLCBuYW1lKTsKKyt9CisrCisgLy8gSGFuZGxlIHJlcXVlc3Qg dG8gbG9hZCBsaWJudW1hIHN5bWJvbCB2ZXJzaW9uIDEuMSAoQVBJIHYxKS4gSWYgaXQgZmFpbHMK KyAvLyBsb2FkIHN5bWJvbCBmcm9tIGJhc2UgdmVyc2lvbiBpbnN0ZWFkLgorIHZvaWQqIG9zOjpM aW51eDo6bGlibnVtYV9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIgKm5hbWUpIHsKKy0g IHZvaWQgKmYgPSBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjEiKTsKKy0gIGlmIChm ID09IE5VTEwpIHsKKy0gICAgZiA9IGRsc3ltKGhhbmRsZSwgbmFtZSk7CistICB9CistICByZXR1 cm4gZjsKKysgIHJldHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51 bWFfMS4xIik7CisgfQorIAorIC8vIEhhbmRsZSByZXF1ZXN0IHRvIGxvYWQgbGlibnVtYSBzeW1i b2wgdmVyc2lvbiAxLjIgKEFQSSB2Mikgb25seS4KKyAvLyBSZXR1cm4gTlVMTCBpZiB0aGUgc3lt Ym9sIGlzIG5vdCBkZWZpbmVkIGluIHRoaXMgcGFydGljdWxhciB2ZXJzaW9uLgorIHZvaWQqIG9z OjpMaW51eDo6bGlibnVtYV92Ml9kbHN5bSh2b2lkKiBoYW5kbGUsIGNvbnN0IGNoYXIqIG5hbWUp IHsKKy0gIHJldHVybiBkbHZzeW0oaGFuZGxlLCBuYW1lLCAibGlibnVtYV8xLjIiKTsKKysgIHJl dHVybiBkbHZzeW1faWZfYXZhaWxhYmxlKGhhbmRsZSwgbmFtZSwgImxpYm51bWFfMS4yIik7Cisg fQorIAorIGJvb2wgb3M6OkxpbnV4OjpsaWJudW1hX2luaXQoKSB7CistLS0gYS9zcmMvaG90c3Bv dC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBiL3NyYy9ob3RzcG90L29z X2NwdS9saW51eF94ODYvb3NfbGludXhfeDg2LmNwcAorQEAgLTc1LDkgKzc1LDYgQEAKKyAjIGlu Y2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVkZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQu aD4KKy0jaWZuZGVmIEFNRDY0CistIyBpbmNsdWRlIDxmcHVfY29udHJvbC5oPgorLSNlbmRpZgor IAorICNpZmRlZiBBTUQ2NAorICNkZWZpbmUgUkVHX1NQIFJFR19SU1AKKy0tLSBhL3NyYy9ob3Rz cG90L3NoYXJlL2djL3NoYXJlZC9nZW5Db2xsZWN0ZWRIZWFwLmNwcAorKysrIGIvc3JjL2hvdHNw b3Qvc2hhcmUvZ2Mvc2hhcmVkL2dlbkNvbGxlY3RlZEhlYXAuY3BwCitAQCAtMTExNiw3ICsxMTE2 LDcgQEAgSGVhcFdvcmQqIEdlbkNvbGxlY3RlZEhlYXA6OmFsbG9jYXRlX25ld190bGFiKHNpemVf dCBtaW5fc2l6ZSwKKyBzdGF0aWMgU2NyYXRjaEJsb2NrICpyZW1vdmVTbWFsbGVzdFNjcmF0Y2go U2NyYXRjaEJsb2NrICoqcHJldl9wdHIpIHsKKyAgIGJvb2wgZmlyc3QgPSB0cnVlOworICAgc2l6 ZV90IG1pbl9zaXplID0gMDsgICAvLyAiZmlyc3QiIG1ha2VzIHRoaXMgY29uY2VwdHVhbGx5IGlu ZmluaXRlLgorLSAgU2NyYXRjaEJsb2NrICoqc21hbGxlc3RfcHRyLCAqc21hbGxlc3Q7CisrICBT Y3JhdGNoQmxvY2sgKipzbWFsbGVzdF9wdHIgPSBOVUxMLCAqc21hbGxlc3Q7CisgICBTY3JhdGNo QmxvY2sgICpjdXIgPSAqcHJldl9wdHI7CisgICB3aGlsZSAoY3VyKSB7CisgICAgIGFzc2VydCgq cHJldl9wdHIgPT0gY3VyLCAianVzdCBjaGVja2luZyIpOworLS0tIGEvc3JjL2hvdHNwb3Qvc2hh cmUvcnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorKysrIGIvc3JjL2hvdHNwb3Qvc2hh cmUvcnVudGltZS9hYnN0cmFjdF92bV92ZXJzaW9uLmNwcAorQEAgLTI3NCw3ICsyNzQsNyBAQCBj b25zdCBjaGFyKiBBYnN0cmFjdF9WTV9WZXJzaW9uOjppbnRlcm5hbF92bV9pbmZvX3N0cmluZygp IHsKKyAgICNlbmRpZgorIAorICAgI2RlZmluZSBJTlRFUk5BTF9WRVJTSU9OX1NVRkZJWCBWTV9S RUxFQVNFICIpIiBcCistICAgICAgICAgIiBmb3IgIiBPUyAiLSIgQ1BVIEZMT0FUX0FSQ0hfU1RS IFwKKysgICAgICAgICAiIGZvciAiIE9TICItIiBDUFUgRkxPQVRfQVJDSF9TVFIgTElCQyBcCisg ICAgICAgICAgIiBKUkUgKCIgVkVSU0lPTl9TVFJJTkcgIiksIGJ1aWx0IG9uICIgX19EQVRFX18g IiAiIF9fVElNRV9fIFwKKyAgICAgICAgICAiIGJ5ICIgWFNUUihIT1RTUE9UX0JVSUxEX1VTRVIp ICIgd2l0aCAiIEhPVFNQT1RfQlVJTERfQ09NUElMRVIKKyAKKy0tLSBhL3NyYy9ob3RzcG90L3No YXJlL3V0aWxpdGllcy9nbG9iYWxEZWZpbml0aW9uc19nY2MuaHBwCisrKysgYi9zcmMvaG90c3Bv dC9zaGFyZS91dGlsaXRpZXMvZ2xvYmFsRGVmaW5pdGlvbnNfZ2NjLmhwcAorQEAgLTIwNCw3ICsy MDQsNyBAQCBpbmxpbmUgaW50IGdfaXNuYW4oZG91YmxlIGYpIHsgcmV0dXJuIGlzbmFuZChmKTsg fQorICNlbGlmIGRlZmluZWQoX19BUFBMRV9fKQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUg ZikgeyByZXR1cm4gaXNuYW4oZik7IH0KKyAjZWxpZiBkZWZpbmVkKExJTlVYKSB8fCBkZWZpbmVk KF9BTExCU0RfU09VUkNFKQorLWlubGluZSBpbnQgZ19pc25hbihmbG9hdCAgZikgeyByZXR1cm4g aXNuYW5mKGYpOyB9CisraW5saW5lIGludCBnX2lzbmFuKGZsb2F0ICBmKSB7IHJldHVybiBpc25h bihmKTsgfQorIGlubGluZSBpbnQgZ19pc25hbihkb3VibGUgZikgeyByZXR1cm4gaXNuYW4oZik7 IH0KKyAjZWxzZQorICNlcnJvciAibWlzc2luZyBwbGF0Zm9ybS1zcGVjaWZpYyBkZWZpbml0aW9u IGhlcmUiCistLS0gYS9zcmMvamF2YS5iYXNlL2xpbnV4L25hdGl2ZS9saWJuZXQvbGludXhfY2xv c2UuYworKysrIGIvc3JjL2phdmEuYmFzZS9saW51eC9uYXRpdmUvbGlibmV0L2xpbnV4X2Nsb3Nl LmMKK0BAIC02MCw3ICs2MCw3IEBAIHR5cGVkZWYgc3RydWN0IHsKKyAvKgorICAqIFNpZ25hbCB0 byB1bmJsb2NrIHRocmVhZAorICAqLworLXN0YXRpYyBpbnQgc2lnV2FrZXVwID0gKF9fU0lHUlRN QVggLSAyKTsKKytzdGF0aWMgaW50IHNpZ1dha2V1cDsKKyAKKyAvKgorICAqIGZkVGFibGUgaG9s ZHMgb25lIGVudHJ5IHBlciBmaWxlIGRlc2NyaXB0b3IsIHVwIHRvIGEgY2VydGFpbgorQEAgLTE0 OSw2ICsxNDksNyBAQCBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZSgoY29uc3RydWN0b3IpKSBpbml0 KCkgeworICAgICAvKgorICAgICAgKiBTZXR1cCB0aGUgc2lnbmFsIGhhbmRsZXIKKyAgICAgICov CisrICAgIHNpZ1dha2V1cCA9IFNJR1JUTUFYIC0gMjsKKyAgICAgc2Euc2FfaGFuZGxlciA9IHNp Z193YWtldXA7CisgICAgIHNhLnNhX2ZsYWdzICAgPSAwOworICAgICBzaWdlbXB0eXNldCgmc2Eu c2FfbWFzayk7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvY2hpbGRw cm9jLmMKKysrKyBiL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUvbGliamF2YS9jaGlsZHByb2Mu YworQEAgLTIzNSw3ICsyMzUsMTMgQEAgSkRLX2V4ZWN2cGUoaW50IG1vZGUsIGNvbnN0IGNoYXIg KmZpbGUsCisgeworICAgICBpZiAoZW52cCA9PSBOVUxMIHx8IChjaGFyICoqKSBlbnZwID09IGVu dmlyb24pIHsKKyAgICAgICAgIGV4ZWN2cChmaWxlLCAoY2hhciAqKikgYXJndik7CistICAgICAg ICByZXR1cm47CisrICAgICAgICAvLyBFTk9FWEVDIGluZGljYXRlcyB0aGF0IHRoZSBmaWxlIGhl YWRlciB3YXMgbm90IHJlY29nbml6ZWQuIFRoZSBtdXNsIEMKKysgICAgICAgIC8vIGxpYnJhcnkg ZG9lcyBub3QgaW1wbGVtZW50IHRoZSBmYWxsYmFjayB0byAvYmluL3NoIGZvciB0aGF0IGNhc2Us IHNvIGZhbGwKKysgICAgICAgIC8vIHRocm91Z2ggdG8gdGhlIGNvZGUgYmVsb3cgd2hpY2ggaW1w bGVtZW50cyB0aGF0IGZhbGxiYWNrIHVzaW5nCisrICAgICAgICAvLyBleGVjdmVfd2l0aF9zaGVs bF9mYWxsYmFjay4KKysgICAgICAgIGlmIChlcnJubyAhPSBFTk9FWEVDKSB7CisrICAgICAgICAg ICAgcmV0dXJuOworKyAgICAgICAgfQorICAgICB9CisgCisgICAgIGlmICgqZmlsZSA9PSAnXDAn KSB7CistLS0gYS9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZlL2xpYmphdmEvamRrX3V0aWxfbWQu aAorKysrIGIvc3JjL2phdmEuYmFzZS91bml4L25hdGl2ZS9saWJqYXZhL2pka191dGlsX21kLmgK K0BAIC0zNyw3ICszNyw3IEBACisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBk ZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfQUxMQlNEX1NPVVJDRSkKKyAjaW5jbHVkZSA8 bWF0aC5oPgorLSNkZWZpbmUgSVNOQU5GKGYpIGlzbmFuZihmKQorKyNkZWZpbmUgSVNOQU5GKGYp IGlzbmFuKGYpCisgI2RlZmluZSBJU05BTkQoZCkgaXNuYW4oZCkKKyAjZWxpZiBkZWZpbmVkKF9B SVgpCisgI2luY2x1ZGUgPG1hdGguaD4KKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5peC9uYXRpdmUv bGliamxpL2phdmFfbWRfc29saW51eC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3VuaXgvbmF0aXZl L2xpYmpsaS9qYXZhX21kX3NvbGludXguYworQEAgLTIzNiw2ICsyMzYsMzkgQEAgUmVxdWlyZXNT ZXRlbnYoY29uc3QgY2hhciAqanZtcGF0aCkgeworICAgICBjaGFyICpkbWxscCA9IE5VTEw7Cisg ICAgIGNoYXIgKnA7IC8qIGEgdXRpbGl0eSBwb2ludGVyICovCisgCisrI2lmZGVmIF9fbGludXgK KysjaWZuZGVmIExJQkMKKysjZXJyb3IgIkxJQkMgbm90IHNldCIKKysjZW5kaWYKKysKKysgICAg aWYgKHN0cmNtcChMSUJDLCAibXVzbCIpID09IDApIHsKKysgICAgICAvKgorKyAgICAgICAqIFRo ZSBtdXNsIGxpYnJhcnkgbG9hZGVyIHJlcXVpcmVzIExEX0xJQlJBUllfUEFUSCB0byBiZSBzZXQg aW4KKysgICAgICAgKiBvcmRlciB0byBjb3JyZWN0bHkgcmVzb2x2ZSB0aGUgZGVwZW5kZW5jeSBs aWJqYXZhLnNvIGhhcyBvbiBsaWJqdm0uc28uCisrICAgICAgICoKKysgICAgICAgKiBTcGVjaWZp Y2FsbHksIGl0IGRpZmZlcnMgZnJvbSBnbGliYyBpbiB0aGUgc2Vuc2UgdGhhdCBldmVuIGlmCisr ICAgICAgICogbGlianZtLnNvIGhhcyBhbHJlYWR5IGJlZW4gbG9hZGVkIGl0IHdpbGwgbm90IGJl IGNvbnNpZGVyZWQgYQorKyAgICAgICAqIGNhbmRpZGF0ZSBmb3IgcmVzb2x2aW5nIHRoZSBkZXBl bmRlbmN5IHVubGVzcyB0aGUgKmZ1bGwqIHBhdGgKKysgICAgICAgKiBvZiB0aGUgYWxyZWFkeSBs b2FkZWQgbGlicmFyeSBtYXRjaGVzIHRoZSBkZXBlbmRlbmN5IGJlaW5nIGxvYWRlZC4KKysgICAg ICAgKgorKyAgICAgICAqIGxpYmp2bS5zbyBpcyBiZWluZyBsb2FkZWQgYnkgdGhlIGxhdW5jaGVy IHVzaW5nIGEgbG9uZyBwYXRoIHRvCisrICAgICAgICogZGxvcGVuLCBub3QganVzdCB0aGUgYmFz ZW5hbWUgb2YgdGhlIGxpYnJhcnkuIFR5cGljYWxseSB0aGlzCisrICAgICAgICogaXMgc29tZXRo aW5nIGxpa2UgIi4uL2xpYi9zZXJ2ZXIvbGlianZtLnNvIi4gSG93ZXZlciwgaWYvd2hlbgorKyAg ICAgICAqIGxpYmp2bS5zbyBsYXRlciB0cmllcyB0byBkbG9wZW4gbGliamF2YS5zbyAod2hpY2gg aXQgZG9lcyBpbgorKyAgICAgICAqIG9yZGVyIHRvIGdldCBhY2Nlc3MgdG8gYSBmZXcgZnVuY3Rp b25zIGltcGxlbWVudGVkIGluCisrICAgICAgICogbGliamF2YS5zbykgdGhlIG11c2wgbG9hZGVy IHdpbGwsIGFzIHBhcnQgb2YgbG9hZGluZworKyAgICAgICAqIGRlcGVuZGVudCBsaWJyYXJpZXMs IHRyeSB0byBsb2FkIGxpYmp2bS5zbyB1c2luZyBvbmx5IGl0cworKyAgICAgICAqIGJhc2VuYW1l ICJsaWJqdm0uc28iLiBTaW5jZSB0aGlzIGRvZXMgbm90IG1hdGNoIHRoZSBsb25nZXIKKysgICAg ICAgKiBwYXRoIHBhdGggaXQgd2FzIGZpcnN0IGxvYWRlZCB3aXRoLCB0aGUgYWxyZWFkeSBsb2Fk ZWQKKysgICAgICAgKiBsaWJyYXJ5IGlzIG5vdCBjb25zaWRlcmVkIGEgY2FuZGlkYXRlLCBhbmQg dGhlIGxvYWRlciB3aWxsCisrICAgICAgICogaW5zdGVhZCBsb29rIGZvciBsaWJqdm0uc28gZWxz ZXdoZXJlLiBJZiBpdCdzIG5vdCBpbgorKyAgICAgICAqIExEX0xJQlJBUllfUEFUSCB0aGUgZGVw ZW5kZW5jeSBsb2FkIHdpbGwgZmFpbCwgYW5kIGxpYmphdmEuc28KKysgICAgICAgKiB3aWxsIHRo ZXJlZm9yZSBmYWlsIGFzIHdlbGwuCisrICAgICAgICovCisrICAgICAgcmV0dXJuIEpOSV9UUlVF OworKyAgICB9CisrI2VuZGlmCisrCisgI2lmZGVmIEFJWAorICAgICAvKiBXZSBhbHdheXMgaGF2 ZSB0byBzZXQgdGhlIExJQlBBVEggb24gQUlYIGJlY2F1c2UgbGQgZG9lc24ndCBzdXBwb3J0ICRP UklHSU4uICovCisgICAgIHJldHVybiBKTklfVFJVRTsKKy0tLSBhL3NyYy9qYXZhLmJhc2UvdW5p eC9uYXRpdmUvbGlibmlvL2NoL05hdGl2ZVRocmVhZC5jCisrKysgYi9zcmMvamF2YS5iYXNlL3Vu aXgvbmF0aXZlL2xpYm5pby9jaC9OYXRpdmVUaHJlYWQuYworQEAgLTM2LDcgKzM2LDcgQEAKKyAj aWZkZWYgX19saW51eF9fCisgICAjaW5jbHVkZSA8cHRocmVhZC5oPgorICAgLyogQWxzbyBkZWZp bmVkIGluIG5ldC9saW51eF9jbG9zZS5jICovCistICAjZGVmaW5lIElOVEVSUlVQVF9TSUdOQUwg KF9fU0lHUlRNQVggLSAyKQorKyAgI2RlZmluZSBJTlRFUlJVUFRfU0lHTkFMIChTSUdSVE1BWCAt IDIpCisgI2VsaWYgZGVmaW5lZChfQUlYKQorICAgI2luY2x1ZGUgPHB0aHJlYWQuaD4KKyAgIC8q IEFsc28gZGVmaW5lZCBpbiBuZXQvYWl4X2Nsb3NlLmMgKi8KKy0tLSBhL3NyYy9qYXZhLmRlc2t0 b3AvdW5peC9uYXRpdmUvbGliYXd0X3hhd3QveGF3dC9YVG9vbGtpdC5jCisrKysgYi9zcmMvamF2 YS5kZXNrdG9wL3VuaXgvbmF0aXZlL2xpYmF3dF94YXd0L3hhd3QvWFRvb2xraXQuYworQEAgLTI3 LDkgKzI3LDYgQEAKKyAjaW5jbHVkZSA8WDExL1h1dGlsLmg+CisgI2luY2x1ZGUgPFgxMS9Yb3Mu aD4KKyAjaW5jbHVkZSA8WDExL1hhdG9tLmg+CistI2lmZGVmIF9fbGludXhfXworLSNpbmNsdWRl IDxleGVjaW5mby5oPgorLSNlbmRpZgorIAorICNpbmNsdWRlIDxqdm0uaD4KKyAjaW5jbHVkZSA8 am5pLmg+CitAQCAtNzgwLDI2ICs3NzcsNiBAQCBKTklFWFBPUlQganN0cmluZyBKTklDQUxMIEph dmFfc3VuX2F3dF9YMTFfWFRvb2xraXRfZ2V0RW52CisgICAgIHJldHVybiByZXQ7CisgfQorIAor LSNpZmRlZiBfX2xpbnV4X18KKy12b2lkIHByaW50X3N0YWNrKHZvaWQpCisteworLSAgdm9pZCAq YXJyYXlbMTBdOworLSAgc2l6ZV90IHNpemU7CistICBjaGFyICoqc3RyaW5nczsKKy0gIHNpemVf dCBpOworLQorLSAgc2l6ZSA9IGJhY2t0cmFjZSAoYXJyYXksIDEwKTsKKy0gIHN0cmluZ3MgPSBi YWNrdHJhY2Vfc3ltYm9scyAoYXJyYXksIHNpemUpOworLQorLSAgZnByaW50ZiAoc3RkZXJyLCAi T2J0YWluZWQgJXpkIHN0YWNrIGZyYW1lcy5cbiIsIHNpemUpOworLQorLSAgZm9yIChpID0gMDsg aSA8IHNpemU7IGkrKykKKy0gICAgIGZwcmludGYgKHN0ZGVyciwgIiVzXG4iLCBzdHJpbmdzW2ld KTsKKy0KKy0gIGZyZWUgKHN0cmluZ3MpOworLX0KKy0jZW5kaWYKKy0KKyBXaW5kb3cgZ2V0X3hh d3Rfcm9vdF9zaGVsbChKTklFbnYgKmVudikgeworICAgc3RhdGljIGpjbGFzcyBjbGFzc1hSb290 V2luZG93ID0gTlVMTDsKKyAgIHN0YXRpYyBqbWV0aG9kSUQgbWV0aG9kR2V0WFJvb3RXaW5kb3cg PSBOVUxMOworLS0tIGEvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0 aWwuaAorKysrIGIvc3JjL2pkay5qZHdwLmFnZW50L3NoYXJlL25hdGl2ZS9saWJqZHdwL3V0aWwu aAorQEAgLTM1LDE1ICszNSwxNSBAQAorICNpZmRlZiBERUJVRworICAgICAvKiBKdXN0IHRvIG1h a2Ugc3VyZSB0aGVzZSBpbnRlcmZhY2VzIGFyZSBub3QgdXNlZCBoZXJlLiAqLworICAgICAjdW5k ZWYgZnJlZQorLSAgICAjZGVmaW5lIGZyZWUocCkgRG8gbm90IHVzZSB0aGlzIGludGVyZmFjZS4K KysgICAgI2RlZmluZSBmcmVlIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfZnJlZQorICAgICAj dW5kZWYgbWFsbG9jCistICAgICNkZWZpbmUgbWFsbG9jKHApIERvIG5vdCB1c2UgdGhpcyBpbnRl cmZhY2UuCisrICAgICNkZWZpbmUgbWFsbG9jIGRvX25vdF91c2VfdGhpc19pbnRlcmZhY2VfbWFs bG9jCisgICAgICN1bmRlZiBjYWxsb2MKKy0gICAgI2RlZmluZSBjYWxsb2MocCkgRG8gbm90IHVz ZSB0aGlzIGludGVyZmFjZS4KKysgICAgI2RlZmluZSBjYWxsb2MgZG9fbm90X3VzZV90aGlzX2lu dGVyZmFjZV9jYWxsb2MKKyAgICAgI3VuZGVmIHJlYWxsb2MKKy0gICAgI2RlZmluZSByZWFsbG9j KHApIERvIG5vdCB1c2UgdGhpcyBpbnRlcmZhY2UuCisrICAgICNkZWZpbmUgcmVhbGxvYyBkb19u b3RfdXNlX3RoaXNfaW50ZXJmYWNlX3JlYWxsb2MKKyAgICAgI3VuZGVmIHN0cmR1cAorLSAgICAj ZGVmaW5lIHN0cmR1cChwKSBEbyBub3QgdXNlIHRoaXMgaW50ZXJmYWNlLgorKyAgICAjZGVmaW5l IHN0cmR1cCBkb19ub3RfdXNlX3RoaXNfaW50ZXJmYWNlX3N0cmR1cAorICNlbmRpZgorIAorICNp bmNsdWRlICJsb2dfbWVzc2FnZXMuaCIKKy0tLSBhL3Rlc3QvaG90c3BvdC9qdHJlZy9ydW50aW1l L1N0YWNrR3VhcmRQYWdlcy9leGVpbnZva2UuYworKysrIGIvdGVzdC9ob3RzcG90L2p0cmVnL3J1 bnRpbWUvU3RhY2tHdWFyZFBhZ2VzL2V4ZWludm9rZS5jCitAQCAtMzMsNiArMzMsNyBAQAorIAor ICNpbmNsdWRlIDxhc3NlcnQuaD4KKyAjaW5jbHVkZSA8am5pLmg+CisrI2luY2x1ZGUgPGp2bS5o PgorICNpbmNsdWRlIDxhbGxvY2EuaD4KKyAjaW5jbHVkZSA8c2lnbmFsLmg+CisgI2luY2x1ZGUg PHN0cmluZy5oPgorQEAgLTkxLDYgKzkyLDIwIEBAIHZvaWQgc2V0X3NpZ25hbF9oYW5kbGVyKCkg eworICAgfQorIH0KKyAKKytpbnQgZ2V0X2phdmFfc3RhY2tzaXplICgpIHsKKysgIHNpemVfdCBz dGFja3NpemU7CisrICBwdGhyZWFkX2F0dHJfdCBhdHRyOworKyAgSkRLMV8xSW5pdEFyZ3MgamRr X2FyZ3M7CisrCisrICBqZGtfYXJncy52ZXJzaW9uID0gSk5JX1ZFUlNJT05fMV8xOworKyAgSk5J X0dldERlZmF1bHRKYXZhVk1Jbml0QXJncygmamRrX2FyZ3MpOworKyAgaWYgKGpka19hcmdzLmph dmFTdGFja1NpemUgPD0gMCkgeworKyAgICBmcHJpbnRmKHN0ZGVyciwgIlRlc3QgRVJST1IuIENh bid0IGdldCBhIHZhbGlkIHZhbHVlIGZvciB0aGUgZGVmYXVsdCBzdGFja3NpemUuXG4iKTsKKysg ICAgZXhpdCg3KTsKKysgIH0KKysgIHJldHVybiBqZGtfYXJncy5qYXZhU3RhY2tTaXplOworK30K KysKKyB2b2lkICpydW5famF2YV9vdmVyZmxvdyAodm9pZCAqcCkgeworICAgSk5JRW52ICplbnY7 CisgICBqY2xhc3MgY2xhc3NfaWQ7CitAQCAtMjU4LDEzICsyNzMsMTkgQEAgaW50IG1haW4gKGlu dCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBleGl0KDcpOworICAgfQorIAorKyAg aW50IHN0YWNrX3NpemUgPSBnZXRfamF2YV9zdGFja3NpemUoKTsKKyAgIHB0aHJlYWRfdCB0aHI7 CisrICBwdGhyZWFkX2F0dHJfdCB0aHJlYWRfYXR0cjsKKysKKysgIHB0aHJlYWRfYXR0cl9pbml0 KCZ0aHJlYWRfYXR0cik7CisrICBwdGhyZWFkX2F0dHJfc2V0c3RhY2tzaXplKCZ0aHJlYWRfYXR0 ciwgc3RhY2tfc2l6ZSk7CisgCisgICBpZiAoYXJnYyA+IDEgJiYgc3RyY21wKGFyZ3ZbMV0sICJ0 ZXN0X2phdmFfb3ZlcmZsb3ciKSA9PSAwKSB7CisgICAgIHByaW50ZigiXG5UZXN0aW5nIEpBVkFf T1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3VhcmQgcGFnZSBi ZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAgIHB0aHJlYWRfY3JlYXRlICgmdGhy LCBOVUxMLCBydW5famF2YV9vdmVyZmxvdywgTlVMTCk7CisrCisrICAgIHB0aHJlYWRfY3JlYXRl ICgmdGhyLCAmdGhyZWFkX2F0dHIsIHJ1bl9qYXZhX292ZXJmbG93LCBOVUxMKTsKKyAgICAgcHRo cmVhZF9qb2luICh0aHIsIE5VTEwpOworIAorICAgICBwcmludGYoIlRlc3Rpbmcgc3RhY2sgZ3Vh cmQgcGFnZSBiZWhhdmlvdXIgZm9yIGluaXRpYWwgdGhyZWFkXG4iKTsKK0BAIC0yNzcsNyArMjk4 LDcgQEAgaW50IG1haW4gKGludCBhcmdjLCBjb25zdCBjaGFyKiogYXJndikgeworICAgICBwcmlu dGYoIlxuVGVzdGluZyBOQVRJVkVfT1ZFUkZMT1dcbiIpOworIAorICAgICBwcmludGYoIlRlc3Rp bmcgc3RhY2sgZ3VhcmQgcGFnZSBiZWhhdmlvdXIgZm9yIG90aGVyIHRocmVhZFxuIik7CistICAg IHB0aHJlYWRfY3JlYXRlICgmdGhyLCBOVUxMLCBydW5fbmF0aXZlX292ZXJmbG93LCBOVUxMKTsK KysgICAgcHRocmVhZF9jcmVhdGUgKCZ0aHIsICZ0aHJlYWRfYXR0ciwgcnVuX25hdGl2ZV9vdmVy ZmxvdywgTlVMTCk7CisgICAgIHB0aHJlYWRfam9pbiAodGhyLCBOVUxMKTsKKyAKKyAgICAgcHJp bnRmKCJUZXN0aW5nIHN0YWNrIGd1YXJkIHBhZ2UgYmVoYXZpb3VyIGZvciBpbml0aWFsIHRocmVh ZFxuIik7CmRpZmYgLS1naXQgYS9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMv cHBjLnBhdGNoIGIvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVzL3BwYy5wYXRj aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmQzMDZkNTAxZTRiOAot LS0gL2Rldi9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy9w cGMucGF0Y2gKQEAgLTAsMCArMSw0NSBAQAorUGF0Y2hlcyBmb3IgbXVzbCB0YWtlbiBmcm9tIEFs cGluZSBsaW51eDogaHR0cHM6Ly9naXQuYWxwaW5lbGludXgub3JnL2Fwb3J0cy9jb21taXQvP2lk PThhMWFlMTdkNGE5YWY1NDI4NWM3ODkxYTY4MDYyMGU3ZTI0YzYyODAKKy0tLSBvbGQvc3JjL2hv dHNwb3QvY3B1L3BwYy9tYWNyb0Fzc2VtYmxlcl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90 L2NwdS9wcGMvbWFjcm9Bc3NlbWJsZXJfcHBjLmNwcAorQEAgLTQ3LDYgKzQ3LDggQEAKKyAjaW5j bHVkZSAib3B0by9pbnRyaW5zaWNub2RlLmhwcCIKKyAjZW5kaWYKKyAKKysjaW5jbHVkZSA8YXNt L3B0cmFjZS5oPgorKworICNpZmRlZiBQUk9EVUNUCisgI2RlZmluZSBCTE9DS19DT01NRU5UKHN0 cikgLy8gbm90aGluZworICNlbHNlCistLS0gb2xkL3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVy c2lvbl9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L2NwdS9wcGMvdm1fdmVyc2lvbl9wcGMu Y3BwCitAQCAtODQ1LDcgKzg0NSw3IEBAIHZvaWQgVk1fVmVyc2lvbjo6ZGV0ZXJtaW5lX2ZlYXR1 cmVzKCkgeworICAgdW5zaWduZWQgbG9uZyBhdXh2ID0gZ2V0YXV4dmFsKEFUX0hXQ0FQMik7Cisg CisgICBpZiAoYXV4diAmIFBQQ19GRUFUVVJFMl9IVE1fTk9TQykgeworLSAgICBpZiAoYXV4diAm IFBQQ19GRUFUVVJFMl9IQVNfSFRNKSB7CisrICAgIGlmIChhdXh2ICYgUFBDX0ZFQVRVUkUyX0hU TSkgeworICAgICAgIC8vIFRNIG9uIFBPV0VSOCBhbmQgUE9XRVI5IGluIGNvbXBhdCBtb2RlIChW TSkgaXMgc3VwcG9ydGVkIGJ5IHRoZSBKVk0uCisgICAgICAgLy8gVE0gb24gUE9XRVI5IEREMi4x IE5WIChiYXJlbWV0YWwpIGlzIG5vdCBzdXBwb3J0ZWQgYnkgdGhlIEpWTSAoVE0gb24KKyAgICAg ICAvLyBQT1dFUjkgREQyLjEgTlYgaGFzIGEgZmV3IGlzc3VlcyB0aGF0IG5lZWQgYSBjb3VwbGUg b2YgZmlybXdhcmUKKy0tLSBvbGQvc3JjL2hvdHNwb3Qvb3NfY3B1L2xpbnV4X3BwYy9vc19saW51 eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvb3NfbGludXhf cHBjLmNwcAorQEAgLTc1LDcgKzc1LDcgQEAKKyAjIGluY2x1ZGUgPHB3ZC5oPgorICMgaW5jbHVk ZSA8cG9sbC5oPgorICMgaW5jbHVkZSA8dWNvbnRleHQuaD4KKy0KKysjIGluY2x1ZGUgPGFzbS9w dHJhY2UuaD4KKyAKKyBhZGRyZXNzIG9zOjpjdXJyZW50X3N0YWNrX3BvaW50ZXIoKSB7CisgICBp bnRwdHJfdCogY3NwOworLS0tIG9sZC9zcmMvaG90c3BvdC9vc19jcHUvbGludXhfcHBjL3RocmVh ZF9saW51eF9wcGMuY3BwCisrKysgbmV3L3NyYy9ob3RzcG90L29zX2NwdS9saW51eF9wcGMvdGhy ZWFkX2xpbnV4X3BwYy5jcHAKK0BAIC0yMyw2ICsyMyw4IEBACisgICoKKyAgKi8KKyAKKysjaW5j bHVkZSA8YXNtL3B0cmFjZS5oPgorKworICNpbmNsdWRlICJwcmVjb21waWxlZC5ocHAiCisgI2lu Y2x1ZGUgInJ1bnRpbWUvZnJhbWUuaW5saW5lLmhwcCIKKyAjaW5jbHVkZSAicnVudGltZS90aHJl YWQuaHBwIgpkaWZmIC0tZ2l0IGEvc3JjcGtncy9vcGVuamRrMTcvZmlsZXMvbXVzbF9wYXRjaGVz L3g4Ni5wYXRjaCBiL3NyY3BrZ3Mvb3BlbmpkazE3L2ZpbGVzL211c2xfcGF0Y2hlcy94ODYucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi45YzY0YzE4OTAzNmEK LS0tIC9kZXYvbnVsbAorKysgYi9zcmNwa2dzL29wZW5qZGsxNy9maWxlcy9tdXNsX3BhdGNoZXMv eDg2LnBhdGNoCkBAIC0wLDAgKzEsMTMwIEBACitQYXRjaGVzIGZvciBtdXNsIHRha2VuIGZyb20g QWxwaW5lIGxpbnV4OiBodHRwczovL2dpdC5hbHBpbmVsaW51eC5vcmcvYXBvcnRzL2NvbW1pdC8/ aWQ9OGExYWUxN2Q0YTlhZjU0Mjg1Yzc4OTFhNjgwNjIwZTdlMjRjNjI4MAorLS0tIG9sZC9zcmMv aG90c3BvdC9vc19jcHUvbGludXhfeDg2L29zX2xpbnV4X3g4Ni5jcHAKKysrKyBuZXcvc3JjL2hv dHNwb3Qvb3NfY3B1L2xpbnV4X3g4Ni9vc19saW51eF94ODYuY3BwCitAQCAtOTAsNiArOTAsMTI2 IEBACisgI2RlZmluZSBTUEVMTF9SRUdfRlAgImVicCIKKyAjZW5kaWYgLy8gQU1ENjQKKworKy8v ID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQorKy8vIFRha2VuIGZyb20gZ2xpYmMgMi4yOAorKy8vIHNv dXJjZTogaHR0cHM6Ly9zb3VyY2V3YXJlLm9yZy9naXQvP3A9Z2xpYmMuZ2l0O2E9YmxvYjtmPXN5 c2RlcHMveDg2L2ZwdV9jb250cm9sLmg7aD00Y2I5OGM1Njc5YjI4OTdmZjRlNTgyNmQyMjhjYmE2 YmU1ODllMjRkO2hiPTNjMDNiYWNhMzdmZGNiNTJjMzg4MWU2NTNjYTM5MmJiYTdhOTljMmIKKysv LyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KKysjaWZuZGVmIEFNRDY0CisrLyogRlBVIGNvbnRyb2wg d29yZCBiaXRzLiAgeDg2IHZlcnNpb24uCisrICAgQ29weXJpZ2h0IChDKSAxOTkzLTIwMTggRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCisrICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhl IEdOVSBDIExpYnJhcnkuCisrICAgQ29udHJpYnV0ZWQgYnkgT2xhZiBGbGViYmUuCisrCisrICAg VGhlIEdOVSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg aXQgYW5kL29yCisrICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3Nl ciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNl LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorKworKyAgIFRoZSBHTlUg QyBMaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisrICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKysgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorKyAgIExlc3NlciBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisrCisrICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworKyAgIExpY2Vuc2UgYWxv bmcgd2l0aCB0aGUgR05VIEMgTGlicmFyeTsgaWYgbm90LCBzZWUKKysgICA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uICAqLworKworKyNpZm5kZWYgX0ZQVV9DT05UUk9MX0gKKysjZGVm aW5lIF9GUFVfQ09OVFJPTF9ICTEKKysKKysvKiBOb3RlIHRoYXQgdGhpcyBmaWxlIHNldHMgb24g eDg2LTY0IG9ubHkgdGhlIHg4NyBGUFUsIGl0IGRvZXMgbm90CisrICAgdG91Y2ggdGhlIFNTRSB1 bml0LiAgKi8KKysKKysvKiBIZXJlIGlzIHRoZSBkaXJ0eSBwYXJ0LiBTZXQgdXAgeW91ciAzODcg dGhyb3VnaCB0aGUgY29udHJvbCB3b3JkCisrICogKGN3KSByZWdpc3Rlci4KKysgKgorKyAqICAg ICAxNS0xMyAgICAxMiAgMTEtMTAgIDktOCAgICAgNy02ICAgICA1ICAgIDQgICAgMyAgICAyICAg IDEgICAgMAorKyAqIHwgcmVzZXJ2ZWQgfCBJQyB8IFJDICB8IFBDIHwgcmVzZXJ2ZWQgfCBQTSB8 IFVNIHwgT00gfCBaTSB8IERNIHwgSU0KKysgKgorKyAqIElNOiBJbnZhbGlkIG9wZXJhdGlvbiBt YXNrCisrICogRE06IERlbm9ybWFsaXplZCBvcGVyYW5kIG1hc2sKKysgKiBaTTogWmVyby1kaXZp ZGUgbWFzaworKyAqIE9NOiBPdmVyZmxvdyBtYXNrCisrICogVU06IFVuZGVyZmxvdyBtYXNrCisr ICogUE06IFByZWNpc2lvbiAoaW5leGFjdCByZXN1bHQpIG1hc2sKKysgKgorKyAqIE1hc2sgYml0 IGlzIDEgbWVhbnMgbm8gaW50ZXJydXB0LgorKyAqCisrICogUEM6IFByZWNpc2lvbiBjb250cm9s CisrICogMTEgLSByb3VuZCB0byBleHRlbmRlZCBwcmVjaXNpb24KKysgKiAxMCAtIHJvdW5kIHRv IGRvdWJsZSBwcmVjaXNpb24KKysgKiAwMCAtIHJvdW5kIHRvIHNpbmdsZSBwcmVjaXNpb24KKysg KgorKyAqIFJDOiBSb3VuZGluZyBjb250cm9sCisrICogMDAgLSByb3VuZGluZyB0byBuZWFyZXN0 CisrICogMDEgLSByb3VuZGluZyBkb3duICh0b3dhcmQgLSBpbmZpbml0eSkKKysgKiAxMCAtIHJv dW5kaW5nIHVwICh0b3dhcmQgKyBpbmZpbml0eSkKKysgKiAxMSAtIHJvdW5kaW5nIHRvd2FyZCB6 ZXJvCisrICoKKysgKiBJQzogSW5maW5pdHkgY29udHJvbAorKyAqIFRoYXQgaXMgZm9yIDgwODcg YW5kIDgwMjg3IG9ubHkuCisrICoKKysgKiBUaGUgaGFyZHdhcmUgZGVmYXVsdCBpcyAweDAzN2Yg d2hpY2ggd2UgdXNlLgorKyAqLworKworKyNpbmNsdWRlIDxmZWF0dXJlcy5oPgorKworKy8qIG1h c2tpbmcgb2YgaW50ZXJydXB0cyAqLworKyNkZWZpbmUgX0ZQVV9NQVNLX0lNICAweDAxCisrI2Rl ZmluZSBfRlBVX01BU0tfRE0gIDB4MDIKKysjZGVmaW5lIF9GUFVfTUFTS19aTSAgMHgwNAorKyNk ZWZpbmUgX0ZQVV9NQVNLX09NICAweDA4CisrI2RlZmluZSBfRlBVX01BU0tfVU0gIDB4MTAKKysj ZGVmaW5lIF9GUFVfTUFTS19QTSAgMHgyMAorKworKy8qIHByZWNpc2lvbiBjb250cm9sICovCisr I2RlZmluZSBfRlBVX0VYVEVOREVEIDB4MzAwCS8qIGxpYm0gcmVxdWlyZXMgZG91YmxlIGV4dGVu ZGVkIHByZWNpc2lvbi4gICovCisrI2RlZmluZSBfRlBVX0RPVUJMRSAgIDB4MjAwCisrI2RlZmlu ZSBfRlBVX1NJTkdMRSAgIDB4MAorKworKy8qIHJvdW5kaW5nIGNvbnRyb2wgKi8KKysjZGVmaW5l IF9GUFVfUkNfTkVBUkVTVCAweDAgICAgLyogUkVDT01NRU5ERUQgKi8KKysjZGVmaW5lIF9GUFVf UkNfRE9XTiAgICAweDQwMAorKyNkZWZpbmUgX0ZQVV9SQ19VUCAgICAgIDB4ODAwCisrI2RlZmlu ZSBfRlBVX1JDX1pFUk8gICAgMHhDMDAKKysKKysjZGVmaW5lIF9GUFVfUkVTRVJWRUQgMHhGMEMw ICAvKiBSZXNlcnZlZCBiaXRzIGluIGN3ICovCisrCisrCisrLyogVGhlIGZkbGlibSBjb2RlIHJl cXVpcmVzIHN0cmljdCBJRUVFIGRvdWJsZSBwcmVjaXNpb24gYXJpdGhtZXRpYywKKysgICBhbmQg bm8gaW50ZXJydXB0cyBmb3IgZXhjZXB0aW9ucywgcm91bmRpbmcgdG8gbmVhcmVzdC4gICovCisr CisrI2RlZmluZSBfRlBVX0RFRkFVTFQgIDB4MDM3ZgorKworKy8qIElFRUU6ICBzYW1lIGFzIGFi b3ZlLiAgKi8KKysjZGVmaW5lIF9GUFVfSUVFRSAgICAgMHgwMzdmCisrCisrLyogVHlwZSBvZiB0 aGUgY29udHJvbCB3b3JkLiAgKi8KKyt0eXBlZGVmIHVuc2lnbmVkIGludCBmcHVfY29udHJvbF90 IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkpOworKworKy8qIE1hY3JvcyBmb3Ig YWNjZXNzaW5nIHRoZSBoYXJkd2FyZSBjb250cm9sIHdvcmQuICAiKiYiIGlzIHVzZWQgdG8KKysg ICB3b3JrIGFyb3VuZCBhIGJ1ZyBpbiBvbGRlciB2ZXJzaW9ucyBvZiBHQ0MuICBfX3ZvbGF0aWxl X18gaXMgdXNlZAorKyAgIHRvIHN1cHBvcnQgY29tYmluYXRpb24gb2Ygd3JpdGluZyB0aGUgY29u dHJvbCByZWdpc3RlciBhbmQgcmVhZGluZworKyAgIGl0IGJhY2suICBXaXRob3V0IF9fdm9sYXRp bGVfXywgdGhlIG9sZCB2YWx1ZSBtYXkgYmUgdXNlZCBmb3IgcmVhZGluZworKyAgIGJhY2sgdW5k ZXIgY29tcGlsZXIgb3B0aW1pemF0aW9uLgorKworKyAgIE5vdGUgdGhhdCB0aGUgdXNlIG9mIHRo ZXNlIG1hY3JvcyBpcyBub3Qgc3VmZmljaWVudCBhbnltb3JlIHdpdGgKKysgICByZWNlbnQgaGFy ZHdhcmUgbm9yIG9uIHg4Ni02NC4gIFNvbWUgZmxvYXRpbmcgcG9pbnQgb3BlcmF0aW9ucyBhcmUK KysgICBleGVjdXRlZCBpbiB0aGUgU1NFL1NTRTIgZW5naW5lcyB3aGljaCBoYXZlIHRoZWlyIG93 biBjb250cm9sIGFuZAorKyAgIHN0YXR1cyByZWdpc3Rlci4gICovCisrI2RlZmluZSBfRlBVX0dF VENXKGN3KSBfX2FzbV9fIF9fdm9sYXRpbGVfXyAoImZuc3RjdyAlMCIgOiAiPW0iICgqJmN3KSkK KysjZGVmaW5lIF9GUFVfU0VUQ1coY3cpIF9fYXNtX18gX192b2xhdGlsZV9fICgiZmxkY3cgJTAi IDogOiAibSIgKComY3cpKQorKworKy8qIERlZmF1bHQgY29udHJvbCB3b3JkIHNldCBhdCBzdGFy dHVwLiAgKi8KKytleHRlcm4gZnB1X2NvbnRyb2xfdCBfX2ZwdV9jb250cm9sOworKworKyNlbmRp ZgkvKiBmcHVfY29udHJvbC5oICovCisrCisrI2VuZGlmIC8vIEFNRDY0CisrLy8gPT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CisrLy8gPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09CisrCisgYWRkcmVzcyBvczo6Y3VycmVudF9zdGFja19wb2ludGVyKCkgeworICNp ZmRlZiBTUEFSQ19XT1JLUworICAgcmVnaXN0ZXIgdm9pZCAqZXNwOwpkaWZmIC0tZ2l0IGEvc3Jj cGtncy9vcGVuamRrMTcvdGVtcGxhdGUgYi9zcmNwa2dzL29wZW5qZGsxNy90ZW1wbGF0ZQpuZXcg ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjg5ZWJiNDc5NTBlMAotLS0gL2Rl di9udWxsCisrKyBiL3NyY3BrZ3Mvb3BlbmpkazE3L3RlbXBsYXRlCkBAIC0wLDAgKzEsMjAyIEBA CisjIFRlbXBsYXRlIGZpbGUgZm9yICdvcGVuamRrMTcnCitfamF2YV92ZXI9MTcKK19qYXZhX21p bl92ZXI9MAorX2phdmFfc2VjX3Zlcj0xCitfamRrX3VwZGF0ZT0xMgorX2pka19ob21lPSJ1c3Iv bGliL2p2bS9vcGVuamRrJHtfamF2YV92ZXJ9IgorX2Jhc2VfdmVyc2lvbj0iJHtfamF2YV92ZXJ9 LiR7X2phdmFfbWluX3Zlcn0uJHtfamF2YV9zZWNfdmVyfSIKKworcGtnbmFtZT1vcGVuamRrMTcK K3ZlcnNpb249IiR7X2Jhc2VfdmVyc2lvbn0rJHtfamRrX3VwZGF0ZX0iCityZXZpc2lvbj0xCit3 cmtzcmM9ImpkayR7X2phdmFfdmVyfXUtamRrLSR7X2Jhc2VfdmVyc2lvbn0tJHtfamRrX3VwZGF0 ZX0iCitidWlsZF9zdHlsZT1nbnUtY29uZmlndXJlCitjb25maWd1cmVfYXJncz0iCisgLS1kaXNh YmxlLXdhcm5pbmdzLWFzLWVycm9ycworIC0tZW5hYmxlLXVubGltaXRlZC1jcnlwdG8KKyAtLXdp dGgtemxpYj1zeXN0ZW0KKyAtLXdpdGgtbGlianBlZz1zeXN0ZW0KKyAtLXdpdGgtZ2lmbGliPXN5 c3RlbQorIC0td2l0aC1saWJwbmc9c3lzdGVtCisgLS13aXRoLWxjbXM9c3lzdGVtCisgLS13aXRo LWp0cmVnPW5vCisgLS13aXRoLXZlcnNpb24tYnVpbGQ9JF9qYXZhX3ZlcgorIC0td2l0aC1qb2Jz PSRYQlBTX09SSUdfTUFLRUpPQlMKKyAtLXdpdGgtdmVuZG9yLW5hbWU9Vm9pZAorIC0td2l0aC12 ZW5kb3ItdXJsPWh0dHBzOi8vdm9pZGxpbnV4Lm9yZy8KKyAtLXdpdGgtdmVuZG9yLWJ1Zy11cmw9 aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1wYWNrYWdlcy9pc3N1ZXMKKyAtLXdp dGgtdmVuZG9yLXZtLWJ1Zy11cmw9aHR0cHM6Ly9naXRodWIuY29tL3ZvaWQtbGludXgvdm9pZC1w YWNrYWdlcy9pc3N1ZXMiCittYWtlX2J1aWxkX2FyZ3M9ImltYWdlcyAkKHZvcHRfaWYgZG9jcyBk b2NzKSIKK21ha2VfaW5zdGFsbF9hcmdzPSJJTlNUQUxMX1BSRUZJWD1cIiR7WEJQU19ERVNURElS fS8ke3BrZ25hbWV9LSR7dmVyc2lvbn0vdXNyL2xpYlwiIgorbWFrZV9jaGVja190YXJnZXQ9InRl c3QtaG90c3BvdC1ndGVzdCIKK2hvc3RtYWtlZGVwZW5kcz0icGtnLWNvbmZpZyBhdXRvbWFrZSBh dXRvY29uZiBjcGlvIHRhciB1bnppcCB6aXAgY2EtY2VydGlmaWNhdGVzCisgbGlicmVzc2wgemxp Yi1kZXZlbCB3aGljaCBtYWtlLWNhIgorbWFrZWRlcGVuZHM9ImxpYlhyZW5kZXItZGV2ZWwgbGli WHRzdC1kZXZlbCBsaWJYdC1kZXZlbCBsaWJYcmFuZHItZGV2ZWwKKyBnaWZsaWItZGV2ZWwgbGli anBlZy10dXJiby1kZXZlbCBjdXBzLWRldmVsIGZyZWV0eXBlLWRldmVsIGFsc2EtbGliLWRldmVs CisgZm9udGNvbmZpZy1kZXZlbCB6bGliLWRldmVsIGxjbXMyLWRldmVsIgorcHJvdmlkZXM9Imph dmEtZW52aXJvbm1lbnQtJHt2ZXJzaW9ufV8xIGphdmEtcnVudGltZS0ke3ZlcnNpb259XzEiCitz aG9ydF9kZXNjPSJPcGVuSkRLIEphdmEgRGV2ZWxvcG1lbnQgS2l0IgorbWFpbnRhaW5lcj0ixJBv w6BuIFRy4bqnbiBDw7RuZyBEYW5oIDxjb25nZGFuaHF4QGdtYWlsLmNvbT4iCitsaWNlbnNlPSJH UEwtMi4wLW9yLWxhdGVyIgoraG9tZXBhZ2U9Imh0dHA6Ly9vcGVuamRrLmphdmEubmV0LyIKK2Rp c3RmaWxlcz0iaHR0cHM6Ly9naXRodWIuY29tL29wZW5qZGsvamRrJHtfamF2YV92ZXJ9dS9hcmNo aXZlL2pkay0ke3ZlcnNpb259LnRhci5neiIKK2NoZWNrc3VtPThjMDc2MjAzYTZmODVhYjkxNmIz ZTU0ZGUxOTkyYmNiY2M1ZmZlNTgwYzUyYjFhYzhkNTJjYTdhZmI5ZjAyZDEKK3NobGliX3Byb3Zp ZGVzPSJsaWJhd3Quc28gbGliYXd0X3hhd3Quc28gbGliamF2YS5zbyBsaWJqbGkuc28gbGlianZt LnNvIGxpYmphd3Quc28iCisKKyMgQnVpbGQgaXMgc3RpbGwgcGFyYWxsZWwsIGJ1dCBkb24ndCB1 c2UgLWpOLgorZGlzYWJsZV9wYXJhbGxlbF9idWlsZD15ZXMKK2J1aWxkX29wdGlvbnM9ImRvY3Mi CisKKyMgbm8gaG90c3BvdCBKSVQgZm9yIHBwYzMyCitjYXNlICIkWEJQU19UQVJHRVRfTUFDSElO RSIgaW4KKwlwcGM2NCopIDs7CisJcHBjKikgX3VzZV96ZXJvPXllcyA7OworZXNhYworCitpZiBb IC1uICIkX3VzZV96ZXJvIiBdOyB0aGVuCisJbWFrZWRlcGVuZHMrPSIgbGliZmZpLWRldmVsIgor CWNvbmZpZ3VyZV9hcmdzKz0iIC0td2l0aC1qdm0tdmFyaWFudHM9emVybyIKKwljYXNlICIkWEJQ U19UQVJHRVRfTUFDSElORSIgaW4KKwlwcGMqKSBjb25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9v dC1qZGstanZtYXJncz0tWFg6VGhyZWFkU3RhY2tTaXplPTI1NjAiOzsKKwllc2FjCitmaQorY29u ZmlndXJlX2FyZ3MrPSIgLS13aXRoLWJvb3QtamRrLWp2bWFyZ3M9LVhsb2c6ZGlzYWJsZSIKKwor Y2FzZSAiJFhCUFNfVEFSR0VUX0xJQkMiIGluCisJZ2xpYmMpIGJ1aWxkX29wdGlvbnNfZGVmYXVs dCs9IiBkb2NzIjs7Citlc2FjCisKK2lmIFsgISAiJENST1NTX0JVSUxEIiBdOyB0aGVuCisJaG9z dG1ha2VkZXBlbmRzKz0iIG9wZW5qZGsxNi1ib290c3RyYXAiCisJY29uZmlndXJlX2FyZ3MrPSIg LS13aXRoLWJvb3QtamRrPS91c3IvbGliL2p2bS9vcGVuamRrMTYiCitlbHNlCisJaG9zdG1ha2Vk ZXBlbmRzKz0iIG9wZW5qZGsxNyIKKwljb25maWd1cmVfYXJncys9IiAtLXdpdGgtYm9vdC1qZGs9 L3Vzci9saWIvanZtL29wZW5qZGsxNyIKK2ZpCisKK2FsdGVybmF0aXZlcz0iCisgamF2YTovdXNy L2Jpbi9qYXZhOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2phdmEKKyBqYXZhOi91c3IvYmlu L2pqczovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qanMKKyBqYXZhOi91c3IvYmluL2tleXRv b2w6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4va2V5dG9vbAorIGphdmE6L3Vzci9iaW4vcGFj azIwMDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9wYWNrMjAwCisgamF2YTovdXNyL2Jpbi9y bWlkOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL3JtaWQKKyBqYXZhOi91c3IvYmluL3JtaXJl Z2lzdHJ5Oi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL3JtaXJlZ2lzdHJ5CisgamF2YTovdXNy L2Jpbi91bnBhY2syMDA6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vdW5wYWNrMjAwCisKKyBq ZGs6L3Vzci9iaW4vamFvdGM6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vamFvdGMKKyBqZGs6 L3Vzci9iaW4vamFyOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2phcgorIGpkazovdXNyL2Jp bi9qYXJzaWduZXI6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vamFyc2lnbmVyCisgamRrOi91 c3IvYmluL2phdmE6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vamF2YQorIGpkazovdXNyL2Jp bi9qYXZhYzovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qYXZhYworIGpkazovdXNyL2Jpbi9q YXZhZG9jOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2phdmFkb2MKKyBqZGs6L3Vzci9iaW4v amF2YXA6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vamF2YXAKKyBqZGs6L3Vzci9iaW4vamNt ZDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qY21kCisgamRrOi91c3IvYmluL2pjb25zb2xl Oi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2pjb25zb2xlCisgamRrOi91c3IvYmluL2pkYjov dXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qZGIKKyBqZGs6L3Vzci9iaW4vamRlcHJzY2FuOi91 c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2pkZXByc2NhbgorIGpkazovdXNyL2Jpbi9qZGVwczov dXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qZGVwcworIGpkazovdXNyL2Jpbi9qaHNkYjovdXNy L2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qaHNkYgorIGpkazovdXNyL2Jpbi9qaW1hZ2U6L3Vzci9s aWIvanZtL29wZW5qZGsxNy9iaW4vamltYWdlCisgamRrOi91c3IvYmluL2ppbmZvOi91c3IvbGli L2p2bS9vcGVuamRrMTcvYmluL2ppbmZvCisgamRrOi91c3IvYmluL2pqczovdXNyL2xpYi9qdm0v b3BlbmpkazE3L2Jpbi9qanMKKyBqZGs6L3Vzci9iaW4vamxpbms6L3Vzci9saWIvanZtL29wZW5q ZGsxNy9iaW4vamxpbmsKKyBqZGs6L3Vzci9iaW4vam1hcDovdXNyL2xpYi9qdm0vb3BlbmpkazE3 L2Jpbi9qbWFwCisgamRrOi91c3IvYmluL2ptb2Q6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4v am1vZAorIGpkazovdXNyL2Jpbi9qcHM6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vanBzCisg amRrOi91c3IvYmluL2pydW5zY3JpcHQ6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vanJ1bnNj cmlwdAorIGpkazovdXNyL2Jpbi9qc2hlbGw6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vanNo ZWxsCisgamRrOi91c3IvYmluL2pzdGFjazovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9qc3Rh Y2sKKyBqZGs6L3Vzci9iaW4vanN0YXQ6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vanN0YXQK KyBqZGs6L3Vzci9iaW4vanN0YXRkOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2pzdGF0ZAor IGpkazovdXNyL2Jpbi9rZXl0b29sOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL2tleXRvb2wK KyBqZGs6L3Vzci9iaW4vcGFjazIwMDovdXNyL2xpYi9qdm0vb3BlbmpkazE3L2Jpbi9wYWNrMjAw CisgamRrOi91c3IvYmluL3JtaWM6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vcm1pYworIGpk azovdXNyL2Jpbi9ybWlkOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL3JtaWQKKyBqZGs6L3Vz ci9iaW4vcm1pcmVnaXN0cnk6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4vcm1pcmVnaXN0cnkK KyBqZGs6L3Vzci9iaW4vc2VyaWFsdmVyOi91c3IvbGliL2p2bS9vcGVuamRrMTcvYmluL3Nlcmlh bHZlcgorIGpkazovdXNyL2Jpbi91bnBhY2syMDA6L3Vzci9saWIvanZtL29wZW5qZGsxNy9iaW4v dW5wYWNrMjAwCisiCisKK3Bvc3RfZXh0cmFjdCgpIHsKKwljaG1vZCAreCBjb25maWd1cmUKKwlp ZiBbICIkWEJQU19UQVJHRVRfTElCQyIgPSAibXVzbCIgXTsgdGhlbgorCQlybSAtciBzcmMvamRr LmhvdHNwb3QuYWdlbnQKKwlmaQorfQorCitwb3N0X3BhdGNoKCkgeworCWlmIFsgIiRYQlBTX1RB UkdFVF9MSUJDIiA9ICJtdXNsIiBdOyB0aGVuCisJCWZvciBmIGluICIke0ZJTEVTRElSfSIvbXVz bF9wYXRjaGVzLyoucGF0Y2g7IGRvCisJCQltc2dfbm9ybWFsICJBcHBseWluZyAke2YjJEZJTEVT RElSL31cbiIKKwkJCXBhdGNoIC1zbE5wMSAtaSAiJGYiCisJCWRvbmUKKwlmaQorfQorCitkb19j b25maWd1cmUoKSB7CisJQ0ZMQUdTPSR7Q0ZMQUdTLy1EX0ZPUlRJRllfU09VUkNFPTIvfQorCUNY WEZMQUdTPSR7Q1hYRkxBR1MvLURfRk9SVElGWV9TT1VSQ0U9Mi99CisKKwkjIGZvcmNlIEVMRnYy IGZvciBwcGM2NCBqdXN0IGluIGNhc2UKKwljYXNlICIkWEJQU19UQVJHRVRfTUFDSElORSIgaW4K KwkJcHBjNjQqKQorCQkJQ0ZMQUdTKz0iIC1EQUJJX0VMRnYyIgorCQkJQ1hYRkxBR1MrPSIgLURB QklfRUxGdjIiCisJCQk7OworCWVzYWMKKworCWNvbmZpZ3VyZV9hcmdzPSR7Y29uZmlndXJlX2Fy Z3MvLS13aXRoLWxpYnRvb2wtc3lzcm9vdD0kWEJQU19DUk9TU19CQVNFfQorCWlmIFsgIiRYQlBT X0NDQUNIRSIgXSAmJiBbIC16ICIkQ1JPU1NfQlVJTEQiIF07IHRoZW4KKwkJY29uZmlndXJlX2Fy Z3MrPSIgLS1lbmFibGUtY2NhY2hlIgorCQlDQz0iL3Vzci9iaW4vY2MiCisJCUNYWD0iL3Vzci9i aW4vYysrIgorCWZpCisJLi9jb25maWd1cmUgJHtjb25maWd1cmVfYXJnc30gXAorCQktLXdpdGgt ZXh0cmEtY2ZsYWdzPSIkQ0ZMQUdTIiBcCisJCS0td2l0aC1leHRyYS1jeHhmbGFncz0iJENYWEZM QUdTIiBcCisJCS0td2l0aC1leHRyYS1sZGZsYWdzPSIkTERGTEFHUyIgXAorCQlSRUFERUxGPSRS RUFERUxGIEFSPSRBUiBTVFJJUD0kU1RSSVAgTk09JE5NIFwKKwkJT0JKRFVNUD0kT0JKRFVNUCBP QkpDT1BZPSRPQkpDT1BZCit9CisKK3Bvc3RfaW5zdGFsbCgpIHsKKwlybSAtcmYgJHtERVNURElS fS91c3IvbGliL2JpbgorCW12ICR7REVTVERJUn0vdXNyL2xpYi9qdm0vb3Blbmpkay0ke19iYXNl X3ZlcnNpb259LWludGVybmFsICR7REVTVERJUn0vJF9qZGtfaG9tZQorCXZta2RpciAkX2pka19o b21lL2xpYi9zZWN1cml0eQorCW1ha2UtY2EgLWcgLWYgLS1kZXN0ZGlyICIke1BXRH0vY2EiIC1r ICIke0RFU1RESVJ9LyRfamRrX2hvbWUvYmluL2tleXRvb2wiCisJbXYgLi9jYS9ldGMvcGtpL3Rs cy9qYXZhL2NhY2VydHMgJHtERVNURElSfS8kX2pka19ob21lL2xpYi9zZWN1cml0eS8KKwljaG1v ZCAtUiB1Z28rcncgLi9jYQorCXJtIC1yZiAuL2NhCisJdm1rZGlyIGV0Yy9wcm9maWxlLmQKKwlj YXQgPj4ke0RFU1RESVJ9L2V0Yy9wcm9maWxlLmQvMTBfb3BlbmpkazE3LnNoIDw8LUVPRgorCWV4 cG9ydCBKQVZBX0hPTUU9XCR7SkFWQV9IT01FPS8kX2pka19ob21lfQorCUVPRgorCXZsaWNlbnNl IEFTU0VNQkxZX0VYQ0VQVElPTgorCXZsaWNlbnNlIExJQ0VOU0UKK30KKworb3BlbmpkazE3LWRv Y19wYWNrYWdlKCkgeworCW5vc3RyaXA9eWVzCisJbm92ZXJpZnlyZGVwcz15ZXMKKwlub3NobGli cHJvdmlkZXM9eWVzCisJc2hvcnRfZGVzYys9IiAtLSBkb2N1bWVudGF0aW9uIgorCXBrZ19pbnN0 YWxsKCkgeworCQljZCAke3dya3NyY30KKwkJaWYgWyAiJGJ1aWxkX29wdGlvbl9kb2NzIiBdOyB0 aGVuCisJCQlsb2NhbCBfZG9jZGlyPXVzci9zaGFyZS9kb2Mvb3BlbmpkayRfamF2YV92ZXIKKwkJ CXZta2RpciAkX2RvY2RpcgorCQkJY3AgLWEgYnVpbGQvbGludXgtKi9pbWFnZXMvZG9jcy8qICR7 UEtHREVTVERJUn0vJF9kb2NkaXIKKwkJZmkKKwkJdm1vdmUgJF9qZGtfaG9tZS9tYW4vbWFuMQor CX0KK30KKworb3BlbmpkazE3LXNyY19wYWNrYWdlKCkgeworCW5vc3RyaXA9eWVzCisJbm92ZXJp ZnlyZGVwcz15ZXMKKwlub3NobGlicHJvdmlkZXM9eWVzCisJc2hvcnRfZGVzYys9IiAtLSBzb3Vy Y2VzIgorCXBrZ19pbnN0YWxsKCkgeworCQl2bW92ZSAiJF9qZGtfaG9tZS9saWIvc3JjLnppcCIK Kwl9Cit9Cg== --===============1289622042826499520==--