From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v9 14/27] xsplice, symbols: Implement symbol name resolution on address. Date: Mon, 25 Apr 2016 11:35:01 -0400 Message-ID: <1461598514-5440-15-git-send-email-konrad.wilk@oracle.com> References: <1461598514-5440-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1auiYW-0004EW-BO for xen-devel@lists.xenproject.org; Mon, 25 Apr 2016 15:36:12 +0000 In-Reply-To: <1461598514-5440-1-git-send-email-konrad.wilk@oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: konrad@kernel.org, xen-devel@lists.xenproject.org, sasha.levin@oracle.com, andrew.cooper3@citrix.com, ross.lagerwall@citrix.com, mpohlack@amazon.de Cc: Keir Fraser , Jan Beulich , Konrad Rzeszutek Wilk List-Id: xen-devel@lists.xenproject.org RnJvbTogUm9zcyBMYWdlcndhbGwgPHJvc3MubGFnZXJ3YWxsQGNpdHJpeC5jb20+CgpJZiBpbiB0 aGUgcGF5bG9hZCB3ZSBkbyBub3QgaGF2ZSB0aGUgb2xkX2FkZHIgd2UgY2FuIHJlc29sdmUKdGhl IHZpcnR1YWwgYWRkcmVzcyBiYXNlZCBvbiB0aGUgVU5ERUZpbmVkIHN5bWJvbHMuCgpXZSBhbHNv IHVzZSBhbiBib29sZWFuIGZsYWc6IG5ld19zeW1ib2wgdG8gdHJhY2sgc3ltYm9scy4gVGhlIHVz dWFsCmNhc2UgdGhpcyBpcyB1c2VkIGlzIGJ5OgoKKiBBIHBheWxvYWQgbWF5IGludHJvZHVjZSBh IG5ldyBzeW1ib2wKKiBBIHBheWxvYWQgbWF5IG92ZXJyaWRlIGFuIGV4aXN0aW5nIHN5bWJvbCAo aW50cm9kdWNlZCBpbiBYZW4gb3IgYW5vdGhlcgogIHBheWxvYWQpCiogT3ZlcnJpZGluZyBzeW1i b2xzIG11c3QgZXhpc3QgaW4gdGhlIHN5bXRhYiBmb3IgYmFja3RyYWNlcy4KKiBBIHBheWxvYWQg bXVzdCBhbHdheXMgbGluayBhZ2FpbnN0IHRoZSBvYmplY3Qgd2hpY2ggZGVmaW5lcyB0aGUgbmV3 IHN5bWJvbC4KCkNvbnNpZGVyaW5nIHRoYXQgcGF5bG9hZHMgbWF5IGJlIGxvYWRlZCBpbiBhbnkg b3JkZXIgaXQgd291bGQgYmUgaW5jb3JyZWN0IHRvCmxpbmsgYWdhaW5zdCBhIHBheWxvYWQgd2hp Y2ggc2ltcGx5IG92ZXJyaWRlcyBhIHN5bWJvbCBiZWNhdXNlIHlvdSBjb3VsZCBlbmQKdXAgd2l0 aCBhIGNoYWluIG9mIGp1bXBzIHdoaWNoIGlzIGluZWZmaWNpZW50IGFuZCBtYXkgcmVzdWx0IGlu IHRoZSBleHBlY3RlZApmdW5jdGlvbiBub3QgYmVpbmcgZXhlY3V0ZWQuCgpTaW5jZSB0aGUgcGF5 bG9hZCB3ZSBnZXQgaXMgYW4gcmVsb2NhdGFibGUgaW1hZ2UgKHBhcnRpYWwgbGlua2VkIEVMRiBm aWxlKQp3ZSBoYXZlIHRvIG1hdGNoIHVwIHRoZSBzeW1ib2xzLiBXZSBmb2xsb3cgdGhlIEVMRiB2 aXNpYmlsaXR5IHJ1bGVzIGZvciB0aGF0CmFuZCBmb3IgbG9jYWwgc3ltYm9scyBkbyB3aGF0IGJp bnR1dGlscyBsZCBkb2VzLgoKU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxr b25yYWQud2lsa0BvcmFjbGUuY29tPgpTaWduZWQtb2ZmLWJ5OiBSb3NzIExhZ2Vyd2FsbCA8cm9z cy5sYWdlcndhbGxAY2l0cml4LmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJl dy5jb29wZXIzQGNpdHJpeC5jb20+CgotLS0KQ2M6IEtlaXIgRnJhc2VyIDxrZWlyQHhlbi5vcmc+ CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVyIDxh bmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKdjE6IFJvc3Mgb3JpZ2luYWwgdmVyc2lvbi4KdjI6 IEluY2x1ZGUgdGVzdC1jYXNlIGFuZCBkb2N1bWVudCB1cGRhdGUuCnYyOiBzL3NpemVfdC9zc2l6 ZV90LwogICAgSW5jbHVkZSBjb3JlX3RleHRfc2l6ZSwgY29yZV90ZXh0IGNhbGN1bGF0aW9uCnY0 OiBDYXN0IG9uIGRwcmludGsgdG8gdWludDY0X3QgdG8gbWFrZSBFTEYgMzJiaXQgYnVpbGQuCnY2 OiBSZWJhc2Ugd2hlcmUgdGhlIHNwaW5sb2NrIGlzIG5vIG1vcmUgcmVjdXJzaXZlLiBEcm9wIHRo ZSBzcGlubG9jawogICAgdXNhZ2UgaW4geHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lCnY3 OiBBZGQgQW5kcmV3J3MgUmV2aWV3ZWQtYnkKICAgIEluaXRpYWxpemUgYWRkciBhbmQgc3ltbmFt ZSB0byB6ZXJvIGFzIHhlbnN5bXNfcmVhZCB1c2VzIGl0Lgp2ODogQ2hhbmdlIG9uZSBYRU5MT0df REVCVUcgdG8gWEVOTE9HX0VSUi4KICAgIENoYW5nZSBwcmludGsgdG8gZHByaW50ayBvbiBzeW1i b2xzIGFuZCBvbmUgZXJyb3IgY2FzZS4Kdjk6ICduZXdfYWRkcicgaXMgbm93IHZvaWQsIHNvIGNo YW5nZSBpdCB0byBmcm9tIHVuc2lnbmVkIGxvbmcKICAgIHRvIHZvaWQgKi4KICAgIEluY2x1ZGUg PHhlbi92ZXJzaW9uLmg+IGhlYWRlciBpbiB0ZXN0IGNhc2UuCiAgICBEcm9wIGluaXRpYWxpemVk IGZvciBuYW1lIGluIHN5bWJvbHNfbG9va3VwX2J5X25hbWUuCiAgICBNYWtlIC0+c3ltdGFiIGFu ZCAtPnN0cnRhYiBvZiBzdHJ1Y3QgcGF5bG9hZCBjb25zdC4gQXMgc3VjaAogICAgY2FzdCB2b2lk KiB3aGVuIGZyZWVpbmcgaXQuYAogICAgRHJvcCAnc2l6ZScgZnJvbSB4c3BsaWNlX3N5bWJvbCBz dHJ1Y3QuCiAgICBNYWtlIHJldHVybiB2YWx1ZSBiZSB2b2lkKgogICAgTWFrZSAnaXNfY29yZV9z eW1ib2wnIGNvZGUgaGF2ZSB0aGUgc2FtZSBiZWhhdmlvciBhcyB3aGF0IGJpbnV0aWxzIGxpbmtl cgogICAgaGFzLgotLS0KIHhlbi9hcmNoL3g4Ni9NYWtlZmlsZSAgICAgICAgICAgICAgIHwgIDE2 ICsrKy0KIHhlbi9hcmNoL3g4Ni9wbGF0Zm9ybV9oeXBlcmNhbGwuYyAgIHwgICA1ICstCiB4ZW4v YXJjaC94ODYvdGVzdC9NYWtlZmlsZSAgICAgICAgICB8ICAgNCArLQogeGVuL2FyY2gveDg2L3Rl c3QveGVuX2hlbGxvX3dvcmxkLmMgfCAgIDMgKy0KIHhlbi9jb21tb24vc3ltYm9scy5jICAgICAg ICAgICAgICAgIHwgIDM2ICsrKysrKystCiB4ZW4vY29tbW9uL3hzcGxpY2UuYyAgICAgICAgICAg ICAgICB8IDE3OSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KIHhlbi9jb21t b24veHNwbGljZV9lbGYuYyAgICAgICAgICAgIHwgIDIwICsrKy0KIHhlbi9pbmNsdWRlL3hlbi9l bGZzdHJ1Y3RzLmggICAgICAgIHwgICAxICsKIHhlbi9pbmNsdWRlL3hlbi9zeW1ib2xzLmggICAg ICAgICAgIHwgICA0ICstCiB4ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oICAgICAgICAgICB8ICAg NyArKwogMTAgZmlsZXMgY2hhbmdlZCwgMjU5IGluc2VydGlvbnMoKyksIDE2IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZSBiL3hlbi9hcmNoL3g4Ni9NYWtl ZmlsZQppbmRleCBmOGY2ZWViLi5mZGY0MjAyIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvTWFr ZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L01ha2VmaWxlCkBAIC03Miw2ICs3MiwxMiBAQCBlZmkt eSA6PSAkKHNoZWxsIGlmIFsgISAtciAkKEJBU0VESVIpL2luY2x1ZGUveGVuL2NvbXBpbGUuaCAt byBcCiAgICAgICAgICAgICAgICAgICAgICAgLU8gJChCQVNFRElSKS9pbmNsdWRlL3hlbi9jb21w aWxlLmggXTsgdGhlbiBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgZWNobyAnJChUQVJHRVQp LmVmaSc7IGZpKQogCitpZmRlZiBDT05GSUdfWFNQTElDRQorYWxsX3N5bWJvbHMgPSAtLWFsbC1z eW1ib2xzCitlbHNlCithbGxfc3ltYm9scyA9CitlbmRpZgorCiAkKFRBUkdFVCk6ICQoVEFSR0VU KS1zeW1zICQoZWZpLXkpIGJvb3QvbWtlbGYzMgogCS4vYm9vdC9ta2VsZjMyICQoVEFSR0VUKS1z eW1zICQoVEFSR0VUKSAweDEwMDAwMCBcCiAJYCQoTk0pIC1uciAkKFRBUkdFVCktc3ltcyB8IGhl YWQgLW4gMSB8IHNlZCAtZSAncy9eXChbXiBdKlwpLiovMHhcMS8nYApAQCAtMTExLDEyICsxMTcs MTQgQEAgJChUQVJHRVQpLXN5bXM6IHByZWxpbmsubyB4ZW4ubGRzICQoQkFTRURJUikvY29tbW9u L3N5bWJvbHMtZHVtbXkubwogCSQoTEQpICQoTERGTEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5r Lm8gXAogCSAgICAkKEJBU0VESVIpL2NvbW1vbi9zeW1ib2xzLWR1bW15Lm8gLW8gJChARCkvLiQo QEYpLjAKIAkkKE5NKSAtcGEgLS1mb3JtYXQ9c3lzdiAkKEBEKS8uJChARikuMCBcCi0JCXwgJChC QVNFRElSKS90b29scy9zeW1ib2xzIC0tc3lzdiAtLXNvcnQgPiQoQEQpLy4kKEBGKS4wLlMKKwkJ fCAkKEJBU0VESVIpL3Rvb2xzL3N5bWJvbHMgJChhbGxfc3ltYm9scykgLS1zeXN2IC0tc29ydCBc CisJCT4kKEBEKS8uJChARikuMC5TCiAJJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1bGVzLm1rICQo QEQpLy4kKEBGKS4wLm8KIAkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5v IFwKIAkgICAgJChARCkvLiQoQEYpLjAubyAtbyAkKEBEKS8uJChARikuMQogCSQoTk0pIC1wYSAt LWZvcm1hdD1zeXN2ICQoQEQpLy4kKEBGKS4xIFwKLQkJfCAkKEJBU0VESVIpL3Rvb2xzL3N5bWJv bHMgLS1zeXN2IC0tc29ydCAtLXdhcm4tZHVwID4kKEBEKS8uJChARikuMS5TCisJCXwgJChCQVNF RElSKS90b29scy9zeW1ib2xzICQoYWxsX3N5bWJvbHMpIC0tc3lzdiAtLXNvcnQgLS13YXJuLWR1 cCBcCisJCT4kKEBEKS8uJChARikuMS5TCiAJJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1bGVzLm1r ICQoQEQpLy4kKEBGKS4xLm8KIAkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGlu ay5vIFwKIAkgICAgJChARCkvLiQoQEYpLjEubyAtbyAkQApAQCAtMTQwLDE0ICsxNDgsMTQgQEAg JChUQVJHRVQpLmVmaTogcHJlbGluay1lZmkubyBlZmkubGRzIGVmaS9yZWxvY3MtZHVtbXkubyAk KEJBU0VESVIpL2NvbW1vbi9zeW1ib2wKIAkgICAgICAgICAgICAgICAgJChCQVNFRElSKS9jb21t b24vc3ltYm9scy1kdW1teS5vIC1vICQoQEQpLy4kKEBGKS4kKGJhc2UpLjAgJiYpIDoKIAkkKGd1 YXJkKSBlZmkvbWtyZWxvYyAkKGZvcmVhY2ggYmFzZSwkKFZJUlRfQkFTRSkgJChBTFRfQkFTRSks JChARCkvLiQoQEYpLiQoYmFzZSkuMCkgPiQoQEQpLy4kKEBGKS4wci5TCiAJJChndWFyZCkgJChO TSkgLXBhIC0tZm9ybWF0PXN5c3YgJChARCkvLiQoQEYpLiQoVklSVF9CQVNFKS4wIFwKLQkJfCAk KGd1YXJkKSAkKEJBU0VESVIpL3Rvb2xzL3N5bWJvbHMgLS1zeXN2IC0tc29ydCA+JChARCkvLiQo QEYpLjBzLlMKKwkJfCAkKGd1YXJkKSAkKEJBU0VESVIpL3Rvb2xzL3N5bWJvbHMgJChhbGxfc3lt Ym9scykgLS1zeXN2IC0tc29ydCA+JChARCkvLiQoQEYpLjBzLlMKIAkkKGd1YXJkKSAkKE1BS0Up IC1mICQoQkFTRURJUikvUnVsZXMubWsgJChARCkvLiQoQEYpLjByLm8gJChARCkvLiQoQEYpLjBz Lm8KIAkkKGZvcmVhY2ggYmFzZSwgJChWSVJUX0JBU0UpICQoQUxUX0JBU0UpLCBcCiAJICAgICAg ICAgICQoZ3VhcmQpICQoTEQpICQoY2FsbCBFRklfTERGTEFHUywkKGJhc2UpKSAtVCBlZmkubGRz IC1OICQ8IFwKIAkgICAgICAgICAgICAgICAgJChARCkvLiQoQEYpLjByLm8gJChARCkvLiQoQEYp LjBzLm8gLW8gJChARCkvLiQoQEYpLiQoYmFzZSkuMSAmJikgOgogCSQoZ3VhcmQpIGVmaS9ta3Jl bG9jICQoZm9yZWFjaCBiYXNlLCQoVklSVF9CQVNFKSAkKEFMVF9CQVNFKSwkKEBEKS8uJChARiku JChiYXNlKS4xKSA+JChARCkvLiQoQEYpLjFyLlMKIAkkKGd1YXJkKSAkKE5NKSAtcGEgLS1mb3Jt YXQ9c3lzdiAkKEBEKS8uJChARikuJChWSVJUX0JBU0UpLjEgXAotCQl8ICQoZ3VhcmQpICQoQkFT RURJUikvdG9vbHMvc3ltYm9scyAtLXN5c3YgLS1zb3J0ID4kKEBEKS8uJChARikuMXMuUworCQl8 ICQoZ3VhcmQpICQoQkFTRURJUikvdG9vbHMvc3ltYm9scyAkKGFsbF9zeW1ib2xzKSAtLXN5c3Yg LS1zb3J0ID4kKEBEKS8uJChARikuMXMuUwogCSQoZ3VhcmQpICQoTUFLRSkgLWYgJChCQVNFRElS KS9SdWxlcy5tayAkKEBEKS8uJChARikuMXIubyAkKEBEKS8uJChARikuMXMubwogCSQoZ3VhcmQp ICQoTEQpICQoY2FsbCBFRklfTERGTEFHUywkKFZJUlRfQkFTRSkpIC1UIGVmaS5sZHMgLU4gJDwg XAogCSAgICAgICAgICAgICAgICAkKEBEKS8uJChARikuMXIubyAkKEBEKS8uJChARikuMXMubyAt byAkQApkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3BsYXRmb3JtX2h5cGVyY2FsbC5jIGIveGVu L2FyY2gveDg2L3BsYXRmb3JtX2h5cGVyY2FsbC5jCmluZGV4IDM5ZmE4MDguLjhkYmJhMjQgMTAw NjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9wbGF0Zm9ybV9oeXBlcmNhbGwuYworKysgYi94ZW4vYXJj aC94ODYvcGxhdGZvcm1faHlwZXJjYWxsLmMKQEAgLTc5OCwxMiArNzk4LDEzIEBAIHJldF90IGRv X3BsYXRmb3JtX29wKFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oeGVuX3BsYXRmb3JtX29wX3QpIHVf eGVucGZfb3ApCiAgICAgICAgIHN0YXRpYyBjaGFyIG5hbWVbS1NZTV9OQU1FX0xFTiArIDFdOyAv KiBwcm90ZWN0ZWQgYnkgeGVucGZfbG9jayAqLwogICAgICAgICBYRU5fR1VFU1RfSEFORExFKGNo YXIpIG5hbWVoOwogICAgICAgICB1aW50MzJfdCBuYW1lbGVuLCBjb3B5bGVuOworICAgICAgICB1 aW50NjRfdCBhZGRyOwogCiAgICAgICAgIGd1ZXN0X2Zyb21fY29tcGF0X2hhbmRsZShuYW1laCwg b3AtPnUuc3ltZGF0YS5uYW1lKTsKIAogICAgICAgICByZXQgPSB4ZW5zeW1zX3JlYWQoJm9wLT51 LnN5bWRhdGEuc3ltbnVtLCAmb3AtPnUuc3ltZGF0YS50eXBlLAotICAgICAgICAgICAgICAgICAg ICAgICAgICAgJm9wLT51LnN5bWRhdGEuYWRkcmVzcywgbmFtZSk7Ci0KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICZhZGRyLCBuYW1lKTsKKyAgICAgICAgb3AtPnUuc3ltZGF0YS5hZGRyZXNz ID0gYWRkcjsKICAgICAgICAgbmFtZWxlbiA9IHN0cmxlbihuYW1lKSArIDE7CiAKICAgICAgICAg aWYgKCBuYW1lbGVuID4gb3AtPnUuc3ltZGF0YS5uYW1lbGVuICkKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni90ZXN0L01ha2VmaWxlIGIveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKaW5kZXgg YjZhZjA3Yy4uYWY3MmFmZiAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUK KysrIGIveGVuL2FyY2gveDg2L3Rlc3QvTWFrZWZpbGUKQEAgLTIzLDE0ICsyMywxMiBAQCBjbGVh bjo6CiAjIGFuZCB4ZW5faGVsbG9fd29ybGRfZnVuYy5vIHRvIGJlIGFscmVhZHkgY29tcGlsZWQu CiAjCiAuUEhPTlk6IGNvbmZpZy5oCi1jb25maWcuaDogT0xEX0NPREU9JChjYWxsIENPREVfQURE UiwkKEJBU0VESVIpL3hlbi1zeW1zLHhlbl9leHRyYV92ZXJzaW9uKQogY29uZmlnLmg6IE9MRF9D T0RFX1NaPSQoY2FsbCBDT0RFX1NaLCQoQkFTRURJUikveGVuLXN5bXMseGVuX2V4dHJhX3ZlcnNp b24pCiBjb25maWcuaDogTkVXX0NPREVfU1o9JChjYWxsIENPREVfU1osJDwseGVuX2hlbGxvX3dv cmxkKQogY29uZmlnLmg6IHhlbl9oZWxsb193b3JsZF9mdW5jLm8KIAkoc2V0IC1lOyBcCiAJIGVj aG8gIiNkZWZpbmUgTkVXX0NPREVfU1ogJChORVdfQ09ERV9TWikiOyBcCi0JIGVjaG8gIiNkZWZp bmUgT0xEX0NPREVfU1ogJChPTERfQ09ERV9TWikiOyBcCi0JIGVjaG8gIiNkZWZpbmUgT0xEX0NP REUgJChPTERfQ09ERSkiKSA+ICRACisJIGVjaG8gIiNkZWZpbmUgT0xEX0NPREVfU1ogJChPTERf Q09ERV9TWikiKSA+ICRACiAKIHhlbl9oZWxsb193b3JsZC5vOiB4ZW5faGVsbG9fd29ybGRfZnVu Yy5vCiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni90ZXN0L3hlbl9oZWxsb193b3JsZC5jIGIv eGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKaW5kZXggZjQyYjI1Yy4uOGFmZDY2 ZSAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKKysrIGIv eGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkLmMKQEAgLTUsNiArNSw3IEBACiAKICNp bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KKyNpbmNsdWRlIDx4ZW4v dmVyc2lvbi5oPgogI2luY2x1ZGUgPHhlbi94c3BsaWNlLmg+CiAKICNpbmNsdWRlIDxwdWJsaWMv c3lzY3RsLmg+CkBAIC0xNiw3ICsxNyw3IEBAIHN0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1bmMgX19z ZWN0aW9uKCIueHNwbGljZS5mdW5jcyIpIHhzcGxpY2VfeGVuX2hlbGxvX3dvcmxkID0KICAgICAu dmVyc2lvbiA9IFhTUExJQ0VfUEFZTE9BRF9WRVJTSU9OLAogICAgIC5uYW1lID0gaGVsbG9fd29y bGRfcGF0Y2hfdGhpc19mbmMsCiAgICAgLm5ld19hZGRyID0geGVuX2hlbGxvX3dvcmxkLAotICAg IC5vbGRfYWRkciA9ICh2b2lkICopT0xEX0NPREUsCisgICAgLm9sZF9hZGRyID0geGVuX2V4dHJh X3ZlcnNpb24sCiAgICAgLm5ld19zaXplID0gTkVXX0NPREVfU1osCiAgICAgLm9sZF9zaXplID0g T0xEX0NPREVfU1osCiB9OwpkaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9zeW1ib2xzLmMgYi94ZW4v Y29tbW9uL3N5bWJvbHMuYwppbmRleCBiMThkZGNkMS4uOGI0ZDBmZCAxMDA2NDQKLS0tIGEveGVu L2NvbW1vbi9zeW1ib2xzLmMKKysrIGIveGVuL2NvbW1vbi9zeW1ib2xzLmMKQEAgLTE3MCw3ICsx NzAsNyBAQCBzdGF0aWMgY2hhciBzeW1ib2xzX2dldF9zeW1ib2xfdHlwZSh1bnNpZ25lZCBpbnQg b2ZmKQogfQogCiBpbnQgeGVuc3ltc19yZWFkKHVpbnQzMl90ICpzeW1udW0sIGNoYXIgKnR5cGUs Ci0gICAgICAgICAgICAgICAgIHVpbnQ2NF90ICphZGRyZXNzLCBjaGFyICpuYW1lKQorICAgICAg ICAgICAgICAgICB1bnNpZ25lZCBsb25nICphZGRyZXNzLCBjaGFyICpuYW1lKQogewogICAgIC8q CiAgICAgICogU3ltYm9scyBhcmUgbW9zdCBsaWtlbHkgYWNjZXNzZWQgc2VxdWVudGlhbGx5IHNv IHdlIHJlbWVtYmVyIHBvc2l0aW9uCkBAIC0yMDcsMyArMjA3LDM3IEBAIGludCB4ZW5zeW1zX3Jl YWQodWludDMyX3QgKnN5bW51bSwgY2hhciAqdHlwZSwKIAogICAgIHJldHVybiAwOwogfQorCit2 b2lkICpzeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGNvbnN0IGNoYXIgKnN5bW5hbWUpCit7CisgICAg Y2hhciBuYW1lW0tTWU1fTkFNRV9MRU4gKyAxXTsKKyAgICB1aW50MzJfdCBzeW1udW0gPSAwOwor ICAgIGNoYXIgdHlwZTsKKyAgICB1bnNpZ25lZCBsb25nIGFkZHI7CisgICAgaW50IHJjOworCisg ICAgaWYgKCAqc3ltbmFtZSA9PSAnXDAnICkKKyAgICAgICAgcmV0dXJuIE5VTEw7CisKKyAgICBk byB7CisgICAgICAgIHJjID0geGVuc3ltc19yZWFkKCZzeW1udW0sICZ0eXBlLCAmYWRkciwgbmFt ZSk7CisgICAgICAgIGlmICggcmMgKQorICAgICAgICAgICBicmVhazsKKworICAgICAgICBpZiAo ICFzdHJjbXAobmFtZSwgc3ltbmFtZSkgKQorICAgICAgICAgICAgcmV0dXJuICh2b2lkICopYWRk cjsKKworICAgIH0gd2hpbGUgKCBuYW1lWzBdICE9ICdcMCcgKTsKKworICAgIHJldHVybiBOVUxM OworfQorCisvKgorICogTG9jYWwgdmFyaWFibGVzOgorICogbW9kZTogQworICogYy1maWxlLXN0 eWxlOiAiQlNEIgorICogYy1iYXNpYy1vZmZzZXQ6IDQKKyAqIHRhYi13aWR0aDogNAorICogaW5k ZW50LXRhYnMtbW9kZTogbmlsCisgKiBFbmQ6CisgKi8KZGlmZiAtLWdpdCBhL3hlbi9jb21tb24v eHNwbGljZS5jIGIveGVuL2NvbW1vbi94c3BsaWNlLmMKaW5kZXggZWZiMzk2YS4uNjA1MWFkZSAx MDA2NDQKLS0tIGEveGVuL2NvbW1vbi94c3BsaWNlLmMKKysrIGIveGVuL2NvbW1vbi94c3BsaWNl LmMKQEAgLTE0LDYgKzE0LDcgQEAKICNpbmNsdWRlIDx4ZW4vc21wLmg+CiAjaW5jbHVkZSA8eGVu L3NvZnRpcnEuaD4KICNpbmNsdWRlIDx4ZW4vc3BpbmxvY2suaD4KKyNpbmNsdWRlIDx4ZW4vc3lt Ym9scy5oPgogI2luY2x1ZGUgPHhlbi92bWFwLmg+CiAjaW5jbHVkZSA8eGVuL3dhaXQuaD4KICNp bmNsdWRlIDx4ZW4veHNwbGljZV9lbGYuaD4KQEAgLTUzLDYgKzU0LDkgQEAgc3RydWN0IHBheWxv YWQgewogICAgIHN0cnVjdCBsaXN0X2hlYWQgYXBwbGllZF9saXN0OyAgICAgICAvKiBMaW5rZWQg dG8gJ2FwcGxpZWRfbGlzdCcuICovCiAgICAgc3RydWN0IHhzcGxpY2VfcGF0Y2hfZnVuYyAqZnVu Y3M7ICAgIC8qIFRoZSBhcnJheSBvZiBmdW5jdGlvbnMgdG8gcGF0Y2guICovCiAgICAgdW5zaWdu ZWQgaW50IG5mdW5jczsgICAgICAgICAgICAgICAgIC8qIE5yIG9mIGZ1bmN0aW9ucyB0byBwYXRj aC4gKi8KKyAgICBjb25zdCBzdHJ1Y3QgeHNwbGljZV9zeW1ib2wgKnN5bXRhYjsgLyogQWxsIHN5 bWJvbHMuICovCisgICAgY29uc3QgY2hhciAqc3RydGFiOyAgICAgICAgICAgICAgICAgIC8qIFBv aW50ZXIgdG8gLnN0cnRhYi4gKi8KKyAgICB1bnNpZ25lZCBpbnQgbnN5bXM7ICAgICAgICAgICAg ICAgICAgLyogTnIgb2YgZW50cmllcyBpbiAuc3RydGFiIGFuZCBzeW1ib2xzLiAqLwogICAgIGNo YXIgbmFtZVtYRU5fWFNQTElDRV9OQU1FX1NJWkVdOyAgICAvKiBOYW1lIG9mIGl0LiAqLwogfTsK IApAQCAtMTE2LDYgKzEyMCwyOCBAQCBzdGF0aWMgaW50IHZlcmlmeV9wYXlsb2FkKGNvbnN0IHhl bl9zeXNjdGxfeHNwbGljZV91cGxvYWRfdCAqdXBsb2FkLCBjaGFyICpuKQogICAgIHJldHVybiAw OwogfQogCit2b2lkICp4c3BsaWNlX3N5bWJvbHNfbG9va3VwX2J5X25hbWUoY29uc3QgY2hhciAq c3ltbmFtZSkKK3sKKyAgICBjb25zdCBzdHJ1Y3QgcGF5bG9hZCAqZGF0YTsKKworICAgIEFTU0VS VChzcGluX2lzX2xvY2tlZCgmcGF5bG9hZF9sb2NrKSk7CisgICAgbGlzdF9mb3JfZWFjaF9lbnRy eSAoIGRhdGEsICZwYXlsb2FkX2xpc3QsIGxpc3QgKQorICAgIHsKKyAgICAgICAgdW5zaWduZWQg aW50IGk7CisKKyAgICAgICAgZm9yICggaSA9IDA7IGkgPCBkYXRhLT5uc3ltczsgaSsrICkKKyAg ICAgICAgeworICAgICAgICAgICAgaWYgKCAhZGF0YS0+c3ltdGFiW2ldLm5ld19zeW1ib2wgKQor ICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBpZiAoICFzdHJjbXAoZGF0 YS0+c3ltdGFiW2ldLm5hbWUsIHN5bW5hbWUpICkKKyAgICAgICAgICAgICAgICByZXR1cm4gZGF0 YS0+c3ltdGFiW2ldLnZhbHVlOworICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIDA7Cit9 CisKIHN0YXRpYyBzdHJ1Y3QgcGF5bG9hZCAqZmluZF9wYXlsb2FkKGNvbnN0IGNoYXIgKm5hbWUp CiB7CiAgICAgc3RydWN0IHBheWxvYWQgKmRhdGEsICpmb3VuZCA9IE5VTEw7CkBAIC0zNzYsMTEg KzQwMiwxNTIgQEAgc3RhdGljIGludCBwcmVwYXJlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKnBh eWxvYWQsCiAgICAgICAgIHJjID0gYXJjaF94c3BsaWNlX3ZlcmlmeV9mdW5jKGYpOwogICAgICAg ICBpZiAoIHJjICkKICAgICAgICAgICAgIHJldHVybiByYzsKKworICAgICAgICAvKiBMb29rdXAg ZnVuY3Rpb24ncyBvbGQgYWRkcmVzcyBpZiBub3QgYWxyZWFkeSByZXNvbHZlZC4gKi8KKyAgICAg ICAgaWYgKCAhZi0+b2xkX2FkZHIgKQorICAgICAgICB7CisgICAgICAgICAgICBmLT5vbGRfYWRk ciA9IHN5bWJvbHNfbG9va3VwX2J5X25hbWUoZi0+bmFtZSk7CisgICAgICAgICAgICBpZiAoICFm LT5vbGRfYWRkciApCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZi0+b2xkX2FkZHIg PSB4c3BsaWNlX3N5bWJvbHNfbG9va3VwX2J5X25hbWUoZi0+bmFtZSk7CisgICAgICAgICAgICAg ICAgaWYgKCAhZi0+b2xkX2FkZHIgKQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg ICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogQ291bGQgbm90IHJlc29sdmUg b2xkIGFkZHJlc3Mgb2YgJXNcbiIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxmLT5u YW1lLCBmLT5uYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC1FTk9FTlQ7CisgICAg ICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgZHByaW50ayhYRU5MT0df REVCVUcsIFhTUExJQ0UgIiVzOiBSZXNvbHZlZCBvbGQgYWRkcmVzcyAlcyA9PiAlcFxuIiwKKyAg ICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBmLT5uYW1lLCBmLT5vbGRfYWRkcik7CisgICAg ICAgIH0KICAgICB9CiAKICAgICByZXR1cm4gMDsKIH0KIAorc3RhdGljIGJvb2xfdCBpc19wYXls b2FkX3N5bWJvbChjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZiwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgY29uc3Qgc3RydWN0IHhzcGxpY2VfZWxmX3N5bSAqc3ltKQorewor ICAgIGlmICggc3ltLT5zeW0tPnN0X3NobmR4ID09IFNITl9VTkRFRiB8fAorICAgICAgICAgc3lt LT5zeW0tPnN0X3NobmR4ID49IGVsZi0+aGRyLT5lX3NobnVtICkKKyAgICAgICAgcmV0dXJuIDA7 CisKKyAgICAvKgorICAgICAqIFRoZSBwYXlsb2FkIGlzIG5vdCBhIGZpbmFsIGltYWdlIGFzIHdl IGR5bm1pY2FsbHkgbGluayBhZ2FpbnN0IGl0LgorICAgICAqIEFzIHN1Y2ggdGhlIGxpbmtlciBo YXMgbGVmdCBzeW1ib2xzIHdlIGRvbid0IGNhcmUgYWJvdXQgYW5kIHdoaWNoCisgICAgICogYmlu dXRpbHMgd291bGQgaGF2ZSByZW1vdmVkIGhhZCBpdCBiZSBhIGZpbmFsIGltYWdlLiBIZW5jZSB3 ZToKKyAgICAgKiAtIEZvciBTSEZfQUxMT0MgLSBpZ25vcmUgc3ltYm9scyByZWZlcnJpbmcgdG8g c2VjdGlvbnMgdGhhdCBhcmUgbm90CisgICAgICogICBsb2FkZWQuCisgICAgICovCisgICAgaWYg KCAhKGVsZi0+c2VjW3N5bS0+c3ltLT5zdF9zaG5keF0uc2VjLT5zaF9mbGFncyAmIFNIRl9BTExP QykgKQorICAgICAgICByZXR1cm4gMDsKKworICAgIC8qIC0gQW5kIGlnbm9yZSBlbXB0eSBzeW1i b2xzIChcMCkuICovCisgICAgaWYgKCAqc3ltLT5uYW1lID09ICdcMCcgKQorICAgICAgICByZXR1 cm4gMDsKKworICAgIC8qCisgICAgICogLSBGb3IgU0hGX01FUkdFIC0gaWdub3JlIGxvY2FsIHN5 bWJvbHMgcmVmZXJyaW5nIHRvIG1lcmdlYWJsZSBzZWN0aW9ucy4KKyAgICAgKiAgICAobGQgc3F1 YXNoZXMgdGhlbSBhbGwgaW4gb25lIHNlY3Rpb24gYW5kIGRpc2NhcmRzIHRoZSBzeW1ib2xzKSB3 aGVuCisgICAgICogICAgdGhvc2Ugc3ltYm9scyBzdGFydCB3aXRoICcuTCcgKGxpa2UgLkxDeCku IFRob3NlIGFyZSBpbnRlcm1lZGlhdGUKKyAgICAgKiAgICBhcnRpZmFjdHMgb2YgYXNzZW1ibHku CisgICAgICoKKyAgICAgKiBTZWUgZWxmX2xpbmtfaW5wdXRfYmZkIGFuZCBfYmZkX2VsZl9pc19s b2NhbF9sYWJlbF9uYW1lIGluIGJpbnV0aWxzLgorICAgICAqLworICAgIGlmICggKGVsZi0+c2Vj W3N5bS0+c3ltLT5zdF9zaG5keF0uc2VjLT5zaF9mbGFncyAmIFNIRl9NRVJHRSkgJiYKKyAgICAg ICAgICFzdHJuY21wKHN5bS0+bmFtZSwgIi5MIiwgMikgKQorICAgICAgICByZXR1cm4gMDsKKwor ICAgIHJldHVybiAxOworfQorCitzdGF0aWMgaW50IGJ1aWxkX3N5bWJvbF90YWJsZShzdHJ1Y3Qg cGF5bG9hZCAqcGF5bG9hZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCB4c3BsaWNlX2VsZiAqZWxmKQoreworICAgIHVuc2lnbmVkIGludCBpLCBqLCBuc3ltcyA9 IDA7CisgICAgc2l6ZV90IHN0cnRhYl9sZW4gPSAwOworICAgIHN0cnVjdCB4c3BsaWNlX3N5bWJv bCAqc3ltdGFiOworICAgIGNoYXIgKnN0cnRhYjsKKworICAgIEFTU0VSVChwYXlsb2FkLT5uZnVu Y3MpOworCisgICAgLyogUmVjYWxsIHRoYXQgc2VjdGlvbiBAMCBpcyBhbHdheXMgTlVMTC4gKi8K KyAgICBmb3IgKCBpID0gMTsgaSA8IGVsZi0+bnN5bTsgaSsrICkKKyAgICB7CisgICAgICAgIGlm ICggaXNfcGF5bG9hZF9zeW1ib2woZWxmLCBlbGYtPnN5bSArIGkpICkKKyAgICAgICAgeworICAg ICAgICAgICAgbnN5bXMrKzsKKyAgICAgICAgICAgIHN0cnRhYl9sZW4gKz0gc3RybGVuKGVsZi0+ c3ltW2ldLm5hbWUpICsgMTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHN5bXRhYiA9IHhtYWxs b2NfYXJyYXkoc3RydWN0IHhzcGxpY2Vfc3ltYm9sLCBuc3ltcyk7CisgICAgc3RydGFiID0geG1h bGxvY19hcnJheShjaGFyLCBzdHJ0YWJfbGVuKTsKKworICAgIGlmICggIXN0cnRhYiB8fCAhc3lt dGFiICkKKyAgICB7CisgICAgICAgIHhmcmVlKHN0cnRhYik7CisgICAgICAgIHhmcmVlKHN5bXRh Yik7CisgICAgICAgIHJldHVybiAtRU5PTUVNOworICAgIH0KKworICAgIG5zeW1zID0gMDsKKyAg ICBzdHJ0YWJfbGVuID0gMDsKKyAgICBmb3IgKCBpID0gMTsgaSA8IGVsZi0+bnN5bTsgaSsrICkK KyAgICB7CisgICAgICAgIGlmICggaXNfcGF5bG9hZF9zeW1ib2woZWxmLCBlbGYtPnN5bSArIGkp ICkKKyAgICAgICAgeworICAgICAgICAgICAgc3ltdGFiW25zeW1zXS5uYW1lID0gc3RydGFiICsg c3RydGFiX2xlbjsKKyAgICAgICAgICAgIHN5bXRhYltuc3ltc10udmFsdWUgPSAodm9pZCAqKWVs Zi0+c3ltW2ldLnN5bS0+c3RfdmFsdWU7CisgICAgICAgICAgICBzeW10YWJbbnN5bXNdLm5ld19z eW1ib2wgPSAwOyAvKiBNYXkgYmUgb3ZlcndyaXR0ZW4gYmVsb3cuICovCisgICAgICAgICAgICBz dHJ0YWJfbGVuICs9IHN0cmxjcHkoc3RydGFiICsgc3RydGFiX2xlbiwgZWxmLT5zeW1baV0ubmFt ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBLU1lNX05BTUVfTEVOKSArIDE7 CisgICAgICAgICAgICBuc3ltcysrOworICAgICAgICB9CisgICAgfQorCisgICAgZm9yICggaSA9 IDA7IGkgPCBuc3ltczsgaSsrICkKKyAgICB7CisgICAgICAgIGJvb2xfdCBmb3VuZCA9IDA7CisK KyAgICAgICAgZm9yICggaiA9IDA7IGogPCBwYXlsb2FkLT5uZnVuY3M7IGorKyApCisgICAgICAg IHsKKyAgICAgICAgICAgIGlmICggc3ltdGFiW2ldLnZhbHVlID09IHBheWxvYWQtPmZ1bmNzW2pd Lm5ld19hZGRyICkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBmb3VuZCA9IDE7Cisg ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg ICBpZiAoICFmb3VuZCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICggeHNwbGljZV9zeW1i b2xzX2xvb2t1cF9ieV9uYW1lKHN5bXRhYltpXS5uYW1lKSApCisgICAgICAgICAgICB7CisgICAg ICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNFICIlczogZHVwbGljYXRlIG5l dyBzeW1ib2w6ICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBzeW10 YWJbaV0ubmFtZSk7CisgICAgICAgICAgICAgICAgeGZyZWUoc3ltdGFiKTsKKyAgICAgICAgICAg ICAgICB4ZnJlZShzdHJ0YWIpOworICAgICAgICAgICAgICAgIHJldHVybiAtRUVYSVNUOworICAg ICAgICAgICAgfQorICAgICAgICAgICAgc3ltdGFiW2ldLm5ld19zeW1ib2wgPSAxOworICAgICAg ICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsIFhTUExJQ0UgIiVzOiBuZXcgc3ltYm9sICVzXG4i LAorICAgICAgICAgICAgICAgICAgICAgZWxmLT5uYW1lLCBzeW10YWJbaV0ubmFtZSk7CisgICAg ICAgIH0KKyAgICAgICAgZWxzZQorICAgICAgICB7CisgICAgICAgICAgICAvKiBuZXdfc3ltYm9s IGlzIG5vdCBzZXQuICovCisgICAgICAgICAgICBkcHJpbnRrKFhFTkxPR19ERUJVRywgWFNQTElD RSAiJXM6IG92ZXJyaWRpbmcgc3ltYm9sICVzXG4iLAorICAgICAgICAgICAgICAgICAgICBlbGYt Pm5hbWUsIHN5bXRhYltpXS5uYW1lKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHBheWxvYWQt PnN5bXRhYiA9IHN5bXRhYjsKKyAgICBwYXlsb2FkLT5zdHJ0YWIgPSBzdHJ0YWI7CisgICAgcGF5 bG9hZC0+bnN5bXMgPSBuc3ltczsKKworICAgIHJldHVybiAwOworfQorCiBzdGF0aWMgdm9pZCBm cmVlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKmRhdGEpCiB7CiAgICAgQVNTRVJUKHNwaW5faXNf bG9ja2VkKCZwYXlsb2FkX2xvY2spKTsKQEAgLTM4OCw2ICs1NTUsOCBAQCBzdGF0aWMgdm9pZCBm cmVlX3BheWxvYWQoc3RydWN0IHBheWxvYWQgKmRhdGEpCiAgICAgcGF5bG9hZF9jbnQtLTsKICAg ICBwYXlsb2FkX3ZlcnNpb24rKzsKICAgICBmcmVlX3BheWxvYWRfZGF0YShkYXRhKTsKKyAgICB4 ZnJlZSgodm9pZCAqKWRhdGEtPnN5bXRhYik7CisgICAgeGZyZWUoKHZvaWQgKilkYXRhLT5zdHJ0 YWIpOwogICAgIHhmcmVlKGRhdGEpOwogfQogCkBAIC00MjAsNiArNTg5LDEwIEBAIHN0YXRpYyBp bnQgbG9hZF9wYXlsb2FkX2RhdGEoc3RydWN0IHBheWxvYWQgKnBheWxvYWQsIHZvaWQgKnJhdywg c2l6ZV90IGxlbikKICAgICBpZiAoIHJjICkKICAgICAgICAgZ290byBvdXQ7CiAKKyAgICByYyA9 IGJ1aWxkX3N5bWJvbF90YWJsZShwYXlsb2FkLCAmZWxmKTsKKyAgICBpZiAoIHJjICkKKyAgICAg ICAgZ290byBvdXQ7CisKICAgICByYyA9IHNlY3VyZV9wYXlsb2FkKHBheWxvYWQsICZlbGYpOwog CiAgb3V0OgpAQCAtNDg3LDggKzY2MCwxMiBAQCBzdGF0aWMgaW50IHhzcGxpY2VfdXBsb2FkKHhl bl9zeXNjdGxfeHNwbGljZV91cGxvYWRfdCAqdXBsb2FkKQogCiAgICAgdmZyZWUocmF3X2RhdGEp OwogCi0gICAgaWYgKCByYyApCisgICAgaWYgKCByYyAmJiBkYXRhICkKKyAgICB7CisgICAgICAg IHhmcmVlKCh2b2lkICopZGF0YS0+c3ltdGFiKTsKKyAgICAgICAgeGZyZWUoKHZvaWQgKilkYXRh LT5zdHJ0YWIpOwogICAgICAgICB4ZnJlZShkYXRhKTsKKyAgICB9CiAKICAgICByZXR1cm4gcmM7 CiB9CmRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3hzcGxpY2VfZWxmLmMgYi94ZW4vY29tbW9uL3hz cGxpY2VfZWxmLmMKaW5kZXggODUwMTEzOC4uN2RjZjUyZiAxMDA2NDQKLS0tIGEveGVuL2NvbW1v bi94c3BsaWNlX2VsZi5jCisrKyBiL3hlbi9jb21tb24veHNwbGljZV9lbGYuYwpAQCAtNCw2ICs0 LDcgQEAKIAogI2luY2x1ZGUgPHhlbi9lcnJuby5oPgogI2luY2x1ZGUgPHhlbi9saWIuaD4KKyNp bmNsdWRlIDx4ZW4vc3ltYm9scy5oPgogI2luY2x1ZGUgPHhlbi94c3BsaWNlX2VsZi5oPgogI2lu Y2x1ZGUgPHhlbi94c3BsaWNlLmg+CiAKQEAgLTI3Myw5ICsyNzQsMjIgQEAgaW50IHhzcGxpY2Vf ZWxmX3Jlc29sdmVfc3ltYm9scyhzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZikKICAgICAgICAgICAg IGJyZWFrOwogCiAgICAgICAgIGNhc2UgU0hOX1VOREVGOgotICAgICAgICAgICAgZHByaW50ayhY RU5MT0dfRVJSLCBYU1BMSUNFICIlczogVW5rbm93biBzeW1ib2w6ICVzXG4iLAotICAgICAgICAg ICAgICAgICAgICBlbGYtPm5hbWUsIGVsZi0+c3ltW2ldLm5hbWUpOwotICAgICAgICAgICAgcmMg PSAtRU5PRU5UOworICAgICAgICAgICAgc3ltLT5zdF92YWx1ZSA9ICh1bnNpZ25lZCBsb25nKQor ICAgICAgICAgICAgICAgICAgICBzeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGVsZi0+c3ltW2ldLm5h bWUpOworICAgICAgICAgICAgaWYgKCAhc3ltLT5zdF92YWx1ZSApCisgICAgICAgICAgICB7Cisg ICAgICAgICAgICAgICAgc3ltLT5zdF92YWx1ZSA9ICh1bnNpZ25lZCBsb25nKQorICAgICAgICAg ICAgICAgICAgICAgICAgeHNwbGljZV9zeW1ib2xzX2xvb2t1cF9ieV9uYW1lKGVsZi0+c3ltW2ld Lm5hbWUpOworICAgICAgICAgICAgICAgIGlmICggIXN5bS0+c3RfdmFsdWUgKQorICAgICAgICAg ICAgICAgIHsKKyAgICAgICAgICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBYU1BMSUNF ICIlczogVW5rbm93biBzeW1ib2w6ICVzXG4iLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg IGVsZi0+bmFtZSwgZWxmLT5zeW1baV0ubmFtZSk7CisgICAgICAgICAgICAgICAgICAgIHJjID0g LUVOT0VOVDsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQor ICAgICAgICAgICAgfQorICAgICAgICAgICAgZHByaW50ayhYRU5MT0dfREVCVUcsIFhTUExJQ0Ug IiVzOiBVbmRlZmluZWQgc3ltYm9sIHJlc29sdmVkOiAlcyA9PiAlIyJQUkl4RWxmQWRkciJcbiIs CisgICAgICAgICAgICAgICAgICAgIGVsZi0+bmFtZSwgZWxmLT5zeW1baV0ubmFtZSwgc3ltLT5z dF92YWx1ZSk7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFNITl9BQlM6CmRp ZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vZWxmc3RydWN0cy5oIGIveGVuL2luY2x1ZGUveGVu L2VsZnN0cnVjdHMuaAppbmRleCAyYjliZDNmLi5hYjliMWVhIDEwMDY0NAotLS0gYS94ZW4vaW5j bHVkZS94ZW4vZWxmc3RydWN0cy5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9lbGZzdHJ1Y3RzLmgK QEAgLTI2Myw2ICsyNjMsNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiAjZGVmaW5lIFNIRl9XUklURQkw eDEJCS8qIFdyaXRhYmxlICovCiAjZGVmaW5lIFNIRl9BTExPQwkweDIJCS8qIG9jY3VwaWVzIG1l bW9yeSAqLwogI2RlZmluZSBTSEZfRVhFQ0lOU1RSCTB4NAkJLyogZXhlY3V0YWJsZSAqLworI2Rl ZmluZSBTSEZfTUVSR0UJMHgxMCAgICAgICAgICAgIC8qIG1lcmdlYWJsZSAqLwogI2RlZmluZSBT SEZfTUFTS1BST0MJMHhmMDAwMDAwMAkvKiByZXNlcnZlZCBiaXRzIGZvciBwcm9jZXNzb3IgKi8K IAkJCQkJLyogIHNwZWNpZmljIHNlY3Rpb24gYXR0cmlidXRlcyAqLwogCmRpZmYgLS1naXQgYS94 ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5oIGIveGVuL2luY2x1ZGUveGVuL3N5bWJvbHMuaAppbmRl eCBmNThlNjExLi4yMTIyYTVkIDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS94ZW4vc3ltYm9scy5o CisrKyBiL3hlbi9pbmNsdWRlL3hlbi9zeW1ib2xzLmgKQEAgLTIxLDYgKzIxLDggQEAgY29uc3Qg Y2hhciAqc3ltYm9sc19sb29rdXAodW5zaWduZWQgbG9uZyBhZGRyLAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgY2hhciAqbmFtZWJ1Zik7CiAKIGludCB4ZW5zeW1zX3JlYWQodWludDMyX3Qg KnN5bW51bSwgY2hhciAqdHlwZSwKLSAgICAgICAgICAgICAgICAgdWludDY0X3QgKmFkZHJlc3Ms IGNoYXIgKm5hbWUpOworICAgICAgICAgICAgICAgICB1bnNpZ25lZCBsb25nICphZGRyZXNzLCBj aGFyICpuYW1lKTsKKwordm9pZCAqc3ltYm9sc19sb29rdXBfYnlfbmFtZShjb25zdCBjaGFyICpz eW1uYW1lKTsKIAogI2VuZGlmIC8qX1hFTl9TWU1CT0xTX0gqLwpkaWZmIC0tZ2l0IGEveGVuL2lu Y2x1ZGUveGVuL3hzcGxpY2UuaCBiL3hlbi9pbmNsdWRlL3hlbi94c3BsaWNlLmgKaW5kZXggYzk3 MjNlNC4uMTUyNjc1MiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL3hzcGxpY2UuaAorKysg Yi94ZW4vaW5jbHVkZS94ZW4veHNwbGljZS5oCkBAIC0xOSw4ICsxOSwxNSBAQCBzdHJ1Y3QgeGVu X3N5c2N0bF94c3BsaWNlX29wOwogLyogRUxGIHBheWxvYWQgc3BlY2lhbCBzZWN0aW9uIG5hbWVz LiAqLwogI2RlZmluZSBFTEZfWFNQTElDRV9GVU5DICAgICIueHNwbGljZS5mdW5jcyIKIAorc3Ry dWN0IHhzcGxpY2Vfc3ltYm9sIHsKKyAgICBjb25zdCBjaGFyICpuYW1lOworICAgIHZvaWQgKnZh bHVlOworICAgIGJvb2xfdCBuZXdfc3ltYm9sOworfTsKKwogaW50IHhzcGxpY2Vfb3Aoc3RydWN0 IHhlbl9zeXNjdGxfeHNwbGljZV9vcCAqKTsKIHZvaWQgY2hlY2tfZm9yX3hzcGxpY2Vfd29yayh2 b2lkKTsKK3ZvaWQgKnhzcGxpY2Vfc3ltYm9sc19sb29rdXBfYnlfbmFtZShjb25zdCBjaGFyICpz eW1uYW1lKTsKIAogLyogQXJjaCBob29rcy4gKi8KIGludCBhcmNoX3hzcGxpY2VfdmVyaWZ5X2Vs Zihjb25zdCBzdHJ1Y3QgeHNwbGljZV9lbGYgKmVsZik7Ci0tIAoyLjUuMAoKCl9fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxp c3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs Cg==