From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v4 25/34] build_id: Provide ld-embedded build-ids Date: Wed, 16 Mar 2016 21:12:10 -0400 Message-ID: <20160317011209.GD5173@localhost.localdomain> References: <1458064616-23101-1-git-send-email-konrad.wilk@oracle.com> <1458064616-23101-26-git-send-email-konrad.wilk@oracle.com> <56E9A730.2090203@arm.com> <20160316210231.GL18336@char.us.oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta3.messagelabs.com ([195.245.230.39]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1agMU7-0005hE-BZ for xen-devel@lists.xenproject.org; Thu, 17 Mar 2016 01:12:19 +0000 Received: by mail-qk0-f194.google.com with SMTP id e124so2042372qkc.3 for ; Wed, 16 Mar 2016 18:12:14 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20160316210231.GL18336@char.us.oracle.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Konrad Rzeszutek Wilk Cc: Keir Fraser , andrew.cooper3@citrix.com, mpohlack@amazon.de, ross.lagerwall@citrix.com, Julien Grall , Stefano Stabellini , Jan Beulich , sasha.levin@oracle.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org PiBMZXQgbWUgdHJ5IHRoYXQuCgpQbGVhc2Ugc2VlIGlubGluZSBwYXRjaCB3aGljaCBoYXMgeW91 ciBzdWdnZXN0aW9uOgoKCkZyb20gMjBkZGZlMDBjNzJiZWJkMjBmNWY4YzAyMjgzYmRjYTVlMTQ1 OTYxNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKRnJvbTogS29ucmFkIFJ6ZXN6dXRlayBXaWxr IDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpEYXRlOiBUdWUsIDE1IE1hciAyMDE2IDA5OjUxOjAz IC0wNDAwClN1YmplY3Q6IFtQQVRDSCB2NCAyNi8zNV0gYnVpbGRfaWQ6IFByb3ZpZGUgbGQtZW1i ZWRkZWQgYnVpbGQtaWRzCgpUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIEVsZiB0byBiZSBidWlsdCB3 aXRoIHRoZSBidWlsZC1pZAphbmQgcHJvdmlkZSBpbiB0aGUgWGVuIGh5cGVydmlzb3IgdGhlIGNv ZGUgdG8gZXh0cmFjdCBpdC4KCk9uZSBjYW4gYWxzbyByZXRyaWV2ZSB0aGUgdmFsdWUgb2YgdGhl IGJ1aWxkLWlkIGJ5IGRvaW5nCidyZWFkZWxmIC1uIHhlbi1zeW1zJy4KCkZvciBFRkkgYnVpbGRz IHdlIHJlLXVzZSB0aGUgc2FtZSBidWlsZC1pZCB0aGF0IHRoZSB4ZW4tc3ltcwp3YXMgYnVpbHQg d2l0aC4KClRoZSB2ZXJzaW9uIG9mIGxkIHRoYXQgZmlyc3QgaW1wbGVtZW50ZWQgLS1idWlsZC1p ZCBpcyB2Mi4xOC4KSGVuY2Ugd2UgY2hlY2sgZm9yIHRoYXQgb3IgbGF0ZXIgdmVyc2lvbiAtIGlm IG9sZGVyIHZlcnNpb24KZm91bmQgd2UgZG8gbm90IGJ1aWxkIHRoZSBoeXBlcnZpc29yIHdpdGgg dGhlIGJ1aWxkLWlkCihhbmQgdGhlIHJldHVybiBjb2RlIGlzIC1FTk9EQVRBIGZvciB4ZW5fYnVp bGRfaWQoKSBjYWxsKS4KCkZvciB4ODYgd2UgaGF2ZSB0d28gYmluYXJpZXMgLSB0aGUgeGVuLXN5 bXMgYW5kIHRoZSB4ZW4gLSBhbgpzbWFsbGVyIHZlcnNpb24gd2l0aCBsb3RzIG9mIHNlY3Rpb25z IHJlbW92ZWQuIFRvIG1ha2UgaXQgcG9zc2libGUKZm9yIHJlYWRlbGYgLW4geGVuIHdlIGFsc28g bW9kaWZ5IG1rZWxmMzIgYW5kIHhlbi5sZHMuUyB0byBpbmNsdWRlCnRoZSBQVF9OT1RFIEVMRiBz ZWN0aW9uLgoKVGhlIEVGSSBiaW5hcnkgaXMgbW9yZSBjb21wbGljYXRlZC4gSGF2aW5nIGFueSBu b24tcmVjb2duaXphYmxlCnNlY3Rpb25zICgubm90ZSwgLmRhdGEubm90ZSwgZXRjKSBjYXVzZXMg dGhlIGJvb3QgdG8gaGFuZy4KTW92aW5nIHRoZSAubm90ZSBpbiB0aGUgLmRhdGEgc2VjdGlvbiBt YWtlcyBpdCB3b3JrLiBJdCBpcyBhbHNvCndvcnRoIG5vdGluZyB0aGF0IHRoZSBQRS9DT0ZGIGRv ZXMgbm90IGhhdmUgYW55ICJjb21tZW50IgpzZWN0aW9ucyB0byB0aGUgYXV0aG9yLgoKTGFzdGx5 LCB3ZSBNVVNUIGNhbGwgLS1iaW5hcnktaWQ9c2hhMSBvbiBhbGwgbGlua2VyIGludm9jYXRpb24g c28gdGhhdApzeW1ib2wgb2Zmc2V0cyBkb24ndCBjaGFuZ2VzICh3aGljaCBtZWFucyB3ZSBoYXZl IG11bHRpcGxlIGJpbmFyeQppZHMgLSBleGNlcHQgdGhhdCB0aGUgbGFzdCBvbmUgaXMgdGhlIGZp bmFsIG9uZSkuIFdpdGhvdXQgdGhpcyBjaGFuZ2UsCnRoZSBzeW1ib2wgdGFibGUgZW1iZWRkZWQg aW4gWGVuIGFyZSBpbmNvcnJlY3QgLSBzb21lIG9mIHRoZSB2YWx1ZXMgaXQKY29udGFpbnMgYXJl IG9mZnNldCBieSB0aGUgc2l6ZSBvZiB0aGUgaW5jbHVkZWQgYnVpbGQgaWQuClRoaXMgb2J2aW91 c2x5IGNhdXNlcyBwcm9ibGVtcyB3aGVuIHJlc29sdmluZyBzeW1ib2xzLgoKU3VnZ2VzdGVkLWJ5 OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgpTaWduZWQtb2ZmLWJ5 OiBNYXJ0aW4gUG9obGFjayA8bXBvaGxhY2tAYW1hem9uLmRlPgpTaWduZWQtb2ZmLWJ5OiBLb25y YWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9yYWNsZS5jb20+CgotLS0KQ2M6IFN0ZWZh bm8gU3RhYmVsbGluaSA8c3RlZmFuby5zdGFiZWxsaW5pQGNpdHJpeC5jb20+CkNjOiBKdWxpZW4g R3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgpDYzogS2VpciBGcmFzZXIgPGtlaXJAeGVuLm9y Zz4KQ2M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ2M6IEFuZHJldyBDb29wZXIg PGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+Cgp2MTogUmViYXNlIGl0IG9uIE1hcnRpbidzIGlu aXRpYWwgcGF0Y2gKdjI6IE1vdmUgaXQgdG8gWEVOVkVSIGh5cGVyY2FsbAp2MzogRml4IEVGSSBi dWlsZGluZyAoUm9zcydzIGZpeCkKdjQ6IERvbid0IHVzZSB0aGUgdGhpcmQgYXJndW1lbnQgZm9y IGxlbmd0aC4KdjU6IFVzZSBuZXcgc3RydWN0dXJlIGZvciBYRU5WRVJfYnVpbGRfaWQgd2l0aCB2 YXJpYWJsZSBidWYuCnY2OiBJbmNsdWRlIFJvc3MncyBmaXguCnY3OiBJbmNsdWRlIGRldGVjdGlv biBvZiBiaW4tdXRpbHMgZm9yIGJ1aWxkLWlkIHN1cHBvcnQsIGFkZAogICAgcHJvYmluZyBmb3Ig c2l6ZSwgYW5kIHJldHVybiAtRVBFUk0gZm9yIFhTTSBkZW5pZWQgY2FsbHMuCnY4OiBCdWlsZCB4 ZW5fYnVpbGRfaWQgdW5kZXIgQVJNLCByZXF1aXJlZCBhZGRpbmcgRUxGU0laRSBpbiBwcm9wZXIg ZmlsZS4Kdjk6IFJlYmFzZSBvbiB0b3AgWFNNIHZlcnNpb24gY2xhc3MuCnYxMDogSW5jbHVkZSB0 aGUgYnVpbGQtaWQgLm5vdGUgaW4gdGhlIHhlbiBFTEYgYmluYXJ5LgogICAgIHMvYnVpbGRfaWQv YnVpbGRfaWRfbGlua2VyLwogICAgRm9yIEVGSSBidWlsZCwgbW92ZWQgdGhlIC0tYnVpbGQtaWQg dmFsdWVzIGluIC5kYXRhIHNlY3Rpb24KdjExOiBSZWJhc2Ugb24gc3RhZ2luZy4KdjEyOiBTcGxp dCBwYXRjaCBpbiB0d28uIEFsd2F5cyBkbyAtLWJ1aWxkLWlkIGNhbGwuIEluY2x1ZGUgdGhlIC5u b3RlIGluCiAgICAucm9kYXRhLiBVU2UgY29uc3Qgdm9pZCAqIGFuZCBzc2l6ZV90CnYxMzogVXNl IC1TIHRvIG1ha2UgYnVpbGRfaWQubyBhbmQgb2JqY29weSBkaWZmZXJlbnRseSAoQW5kcmV3IHN1 Z2dlc3RlZCkKdjE0OiBQdXQgYmFjayB0aGUgI2lmZGVmIExPQ0tfUFJPRklMRSBvbiBBUk0uIChC YWQgY2hhbmdlKS4gTW92ZSB0aGUgX2Vyb2RhdGEKICAgICBhcm91bmQuCi0tLQogQ29uZmlnLm1r ICAgICAgICAgICAgICAgICAgIHwgIDExICsrKysKIHhlbi9hcmNoL2FybS9NYWtlZmlsZSAgICAg ICB8ICAgMiArLQogeGVuL2FyY2gvYXJtL3hlbi5sZHMuUyAgICAgIHwgIDE0ICsrKystCiB4ZW4v YXJjaC94ODYvTWFrZWZpbGUgICAgICAgfCAgMzAgKysrKysrKystLQogeGVuL2FyY2gveDg2L2Jv b3QvbWtlbGYzMi5jIHwgMTM3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tCiB4ZW4vYXJjaC94ODYveGVuLmxkcy5TICAgICAgfCAgMjMgKysrKysrKysKIHhlbi9j b21tb24vdmVyc2lvbi5jICAgICAgICB8ICA1MSArKysrKysrKysrKysrKysrKwogeGVuL2luY2x1 ZGUveGVuL3ZlcnNpb24uaCAgIHwgICAzICsKIDggZmlsZXMgY2hhbmdlZCwgMjQ4IGluc2VydGlv bnMoKyksIDIzIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0NvbmZpZy5tayBiL0NvbmZpZy5t awppbmRleCA3OWViMmJkLi5jOGU4OWZlIDEwMDY0NAotLS0gYS9Db25maWcubWsKKysrIGIvQ29u ZmlnLm1rCkBAIC0xMjYsNiArMTI2LDE3IEBAIGVuZGVmCiBjaGVjay0kKGdjYykgPSAkKGNhbGwg Y2MtdmVyLWNoZWNrLENDLDB4MDQwMTAwLCJYZW4gcmVxdWlyZXMgYXQgbGVhc3QgZ2NjLTQuMSIp CiAkKGV2YWwgJChjaGVjay15KSkKIAorbGQtdmVyLWJ1aWxkLWlkID0gJChzaGVsbCAkKDEpIC0t YnVpbGQtaWQgMj4mMSB8IFwKKwkJCQkJZ3JlcCAtcSB1bnJlY29nbml6ZWQgJiYgZWNobyBuIHx8 IGVjaG8geSkKKworIyBiaW51dGlscyAyLjE4IGltcGxlbWVudCBidWlsZC1pZC4KK2lmZXEgKCQo Y2FsbCBsZC12ZXItYnVpbGQtaWQsJChMRCkpLG4pCitidWlsZF9pZF9saW5rZXIgOj0KK2Vsc2UK K0NGTEFHUyArPSAtREJVSUxEX0lECitidWlsZF9pZF9saW5rZXIgOj0gLS1idWlsZC1pZD1zaGEx CitlbmRpZgorCiAjIGFzLWluc246IENoZWNrIHdoZXRoZXIgYXNzZW1ibGVyIHN1cHBvcnRzIGFu IGluc3RydWN0aW9uLgogIyBVc2FnZTogY2ZsYWdzLXkgKz0gJChjYWxsIGFzLWluc24gImluc24i LG9wdGlvbi15ZXMsb3B0aW9uLW5vKQogYXMtaW5zbiA9ICQoaWYgJChzaGVsbCBlY2hvICd2b2lk IF8odm9pZCkgeyBhc20gdm9sYXRpbGUgKCAkKDIpICk7IH0nIFwKZGlmZiAtLWdpdCBhL3hlbi9h cmNoL2FybS9NYWtlZmlsZSBiL3hlbi9hcmNoL2FybS9NYWtlZmlsZQppbmRleCAxN2U5ZTNhLi5h MzMxOWFiIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKKysrIGIveGVuL2FyY2gv YXJtL01ha2VmaWxlCkBAIC05NCw3ICs5NCw3IEBAICQoVEFSR0VUKS1zeW1zOiBwcmVsaW5rLm8g eGVuLmxkcyAkKEJBU0VESVIpL2NvbW1vbi9zeW1ib2xzLWR1bW15Lm8KIAkkKE5NKSAtcGEgLS1m b3JtYXQ9c3lzdiAkKEBEKS8uJChARikuMSBcCiAJCXwgJChCQVNFRElSKS90b29scy9zeW1ib2xz IC0tc3lzdiAtLXNvcnQgPiQoQEQpLy4kKEBGKS4xLlMKIAkkKE1BS0UpIC1mICQoQkFTRURJUikv UnVsZXMubWsgJChARCkvLiQoQEYpLjEubwotCSQoTEQpICQoTERGTEFHUykgLVQgeGVuLmxkcyAt TiBwcmVsaW5rLm8gXAorCSQoTEQpICQoTERGTEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5rLm8g JChidWlsZF9pZF9saW5rZXIpIFwKIAkgICAgJChARCkvLiQoQEYpLjEubyAtbyAkQAogCXJtIC1m ICQoQEQpLy4kKEBGKS5bMC05XSoKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJtL3hlbi5sZHMu UyBiL3hlbi9hcmNoL2FybS94ZW4ubGRzLlMKaW5kZXggOTkwOTU5NS4uYWFkMjZlMyAxMDA2NDQK LS0tIGEveGVuL2FyY2gvYXJtL3hlbi5sZHMuUworKysgYi94ZW4vYXJjaC9hcm0veGVuLmxkcy5T CkBAIC0yMiw2ICsyMiw5IEBAIE9VVFBVVF9BUkNIKEZPUk1BVCkKIFBIRFJTCiB7CiAgIHRleHQg UFRfTE9BRCAvKiBYWFggc2hvdWxkIGJlIEFUICggWEVOX1BIWVNfU1RBUlQgKSAqLyA7CisjaWYg ZGVmaW5lZChCVUlMRF9JRCkKKyAgbm90ZSBQVF9OT1RFIDsKKyNlbmRpZgogfQogU0VDVElPTlMK IHsKQEAgLTU3LDkgKzYwLDE4IEBAIFNFQ1RJT05TCiAgICAgICAgKigubG9ja3Byb2ZpbGUuZGF0 YSkKICAgICAgICBfX2xvY2tfcHJvZmlsZV9lbmQgPSAuOwogI2VuZGlmCisgIH0gOnRleHQKIAot ICAgICAgICBfZXJvZGF0YSA9IC47ICAgICAgICAgIC8qIEVuZCBvZiByZWFkLW9ubHkgZGF0YSAq LworI2lmIGRlZmluZWQoQlVJTERfSUQpCisgIC5ub3RlIDogeworICAgICAgIF9fbm90ZV9nbnVf YnVpbGRfaWRfc3RhcnQgPSAuOworICAgICAgICooLm5vdGUuZ251LmJ1aWxkLWlkKQorICAgICAg IF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kID0gLjsKKyAgICAgICAqKC5ub3RlKQorICAgICAgICoo Lm5vdGUuKikKICAgfSA6dGV4dAorI2VuZGlmCisgIF9lcm9kYXRhID0gLjsgICAgICAgICAgICAg ICAgLyogRW5kIG9mIHJlYWQtb25seSBkYXRhICovCiAKICAgLmRhdGEgOiB7ICAgICAgICAgICAg ICAgICAgICAvKiBEYXRhICovCiAgICAgICAgLiA9IEFMSUdOKFBBR0VfU0laRSk7CmRpZmYgLS1n aXQgYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvTWFrZWZpbGUKaW5kZXgg OGExMDBiZS4uN2RiMmU1MyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L01ha2VmaWxlCisrKyBi L3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQpAQCAtNzEsOSArNzEsMTYgQEAgZWZpLXkgOj0gJChzaGVs bCBpZiBbICEgLXIgJChCQVNFRElSKS9pbmNsdWRlL3hlbi9jb21waWxlLmggLW8gXAogICAgICAg ICAgICAgICAgICAgICAgIC1PICQoQkFTRURJUikvaW5jbHVkZS94ZW4vY29tcGlsZS5oIF07IHRo ZW4gXAogICAgICAgICAgICAgICAgICAgICAgICAgIGVjaG8gJyQoVEFSR0VUKS5lZmknOyBmaSkK IAoraWZkZWYgYnVpbGRfaWRfbGlua2VyCitudW1fcGhkcnMgPSAyCitlbHNlCitudW1fcGhkcnMg PSAxCitlbmRpZgorCiAkKFRBUkdFVCk6ICQoVEFSR0VUKS1zeW1zICQoZWZpLXkpIGJvb3QvbWtl bGYzMgogCS4vYm9vdC9ta2VsZjMyICQoVEFSR0VUKS1zeW1zICQoVEFSR0VUKSAweDEwMDAwMCBc Ci0JYCQoTk0pIC1uciAkKFRBUkdFVCktc3ltcyB8IGhlYWQgLW4gMSB8IHNlZCAtZSAncy9eXChb XiBdKlwpLiovMHhcMS8nYAorCWAkKE5NKSAtbnIgJChUQVJHRVQpLXN5bXMgfCBoZWFkIC1uIDEg fCBzZWQgLWUgJ3MvXlwoW14gXSpcKS4qLzB4XDEvJ2AgXAorCSQobnVtX3BoZHJzKQogCSQoTUFL RSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayAtQyB0ZXN0CiAKIGluc3RhbGw6CkBAIC0xMDksMjIg KzExNiwyOCBAQCAkKEJBU0VESVIpL2NvbW1vbi9zeW1ib2xzLWR1bW15Lm86CiAJJChNQUtFKSAt ZiAkKEJBU0VESVIpL1J1bGVzLm1rIC1DICQoQkFTRURJUikvY29tbW9uIHN5bWJvbHMtZHVtbXku bwogCiAkKFRBUkdFVCktc3ltczogcHJlbGluay5vIHhlbi5sZHMgJChCQVNFRElSKS9jb21tb24v c3ltYm9scy1kdW1teS5vCi0JJChMRCkgJChMREZMQUdTKSAtVCB4ZW4ubGRzIC1OIHByZWxpbmsu byBcCisJJChMRCkgJChMREZMQUdTKSAtVCB4ZW4ubGRzIC1OIHByZWxpbmsubyAkKGJ1aWxkX2lk X2xpbmtlcikgXAogCSAgICAkKEJBU0VESVIpL2NvbW1vbi9zeW1ib2xzLWR1bW15Lm8gLW8gJChA RCkvLiQoQEYpLjAKIAkkKE5NKSAtcGEgLS1mb3JtYXQ9c3lzdiAkKEBEKS8uJChARikuMCBcCiAJ CXwgJChCQVNFRElSKS90b29scy9zeW1ib2xzIC0tYWxsLXN5bWJvbHMgLS1zeXN2IC0tc29ydCBc CiAJCT4kKEBEKS8uJChARikuMC5TCiAJJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1bGVzLm1rICQo QEQpLy4kKEBGKS4wLm8KLQkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5v IFwKKwkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5vICQoYnVpbGRfaWRf bGlua2VyKSBcCiAJICAgICQoQEQpLy4kKEBGKS4wLm8gLW8gJChARCkvLiQoQEYpLjEKIAkkKE5N KSAtcGEgLS1mb3JtYXQ9c3lzdiAkKEBEKS8uJChARikuMSBcCiAJCXwgJChCQVNFRElSKS90b29s cy9zeW1ib2xzIC0tYWxsLXN5bWJvbHMgLS1zeXN2IC0tc29ydCAtLXdhcm4tZHVwIFwKIAkJPiQo QEQpLy4kKEBGKS4xLlMKIAkkKE1BS0UpIC1mICQoQkFTRURJUikvUnVsZXMubWsgJChARCkvLiQo QEYpLjEubwotCSQoTEQpICQoTERGTEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5rLm8gXAorCSQo TEQpICQoTERGTEFHUykgLVQgeGVuLmxkcyAtTiBwcmVsaW5rLm8gJChidWlsZF9pZF9saW5rZXIp IFwKIAkgICAgJChARCkvLiQoQEYpLjEubyAtbyAkQAogCXJtIC1mICQoQEQpLy4kKEBGKS5bMC05 XSoKIAorYnVpbGRfaWQubzogJChUQVJHRVQpLXN5bXMKKwkkKE9CSkNPUFkpIC1PIGJpbmFyeSAt LW9ubHktc2VjdGlvbj0ubm90ZSAkKEJBU0VESVIpL3hlbi1zeW1zICRALmJpbgorCSQoT0JKQ09Q WSkgLUkgYmluYXJ5IC1PIGVsZjY0LXg4Ni02NCAtQiBpMzg2Ong4Ni02NCBcCisJCS0tcmVuYW1l LXNlY3Rpb249LmRhdGE9Lm5vdGUuZ251LmJ1aWxkLWlkIC1TICRALmJpbiAkQAorCXJtIC1mICRA LmJpbgorCiBFRklfTERGTEFHUyA9ICQocGF0c3Vic3QgLW0lLC1taTM4NnBlcCwkKExERkxBR1Mp KSAtLXN1YnN5c3RlbT0xMAogRUZJX0xERkxBR1MgKz0gLS1pbWFnZS1iYXNlPSQoMSkgLS1zdGFj az0wLDAgLS1oZWFwPTAsMCAtLXN0cmlwLWRlYnVnCiBFRklfTERGTEFHUyArPSAtLXNlY3Rpb24t YWxpZ25tZW50PTB4MjAwMDAwIC0tZmlsZS1hbGlnbm1lbnQ9MHgyMApAQCAtMTM3LDYgKzE1MCwx MyBAQCAkKFRBUkdFVCkuZWZpOiBWSVJUX0JBU0UgPSAweCQoc2hlbGwgJChOTSkgZWZpL3JlbG9j cy1kdW1teS5vIHwgc2VkIC1uICdzLCBBIFZJUgogJChUQVJHRVQpLmVmaTogQUxUX0JBU0UgPSAw eCQoc2hlbGwgJChOTSkgZWZpL3JlbG9jcy1kdW1teS5vIHwgc2VkIC1uICdzLCBBIEFMVF9TVEFS VCQkLCxwJykKICMgRG9uJ3QgdXNlICQod2lsZGNhcmQgLi4uKSBoZXJlIC0gYXQgbGVhc3QgbWFr ZSAzLjgwIGV4cGFuZHMgdGhpcyB0b28gZWFybHkhCiAkKFRBUkdFVCkuZWZpOiBndWFyZCA9ICQo aWYgJChzaGVsbCBlY2hvIGVmaS9kaXMqIHwgZ3JlcCBkaXNhYmxlZCksOikKK2lmZGVmIGJ1aWxk X2lkX2xpbmtlcgorJChUQVJHRVQpLmVmaTogYnVpbGRfaWQubworYnVpbGRfaWRfZmlsZSA6PSBi dWlsZF9pZC5vCitlbHNlCitidWlsZF9pZF9maWxlIDo9CitlbmRpZgorCiAkKFRBUkdFVCkuZWZp OiBwcmVsaW5rLWVmaS5vIGVmaS5sZHMgZWZpL3JlbG9jcy1kdW1teS5vICQoQkFTRURJUikvY29t bW9uL3N5bWJvbHMtZHVtbXkubyBlZmkvbWtyZWxvYwogCSQoZm9yZWFjaCBiYXNlLCAkKFZJUlRf QkFTRSkgJChBTFRfQkFTRSksIFwKIAkgICAgICAgICAgJChndWFyZCkgJChMRCkgJChjYWxsIEVG SV9MREZMQUdTLCQoYmFzZSkpIC1UIGVmaS5sZHMgLU4gJDwgZWZpL3JlbG9jcy1kdW1teS5vIFwK QEAgLTE1Myw3ICsxNzMsNyBAQCAkKFRBUkdFVCkuZWZpOiBwcmVsaW5rLWVmaS5vIGVmaS5sZHMg ZWZpL3JlbG9jcy1kdW1teS5vICQoQkFTRURJUikvY29tbW9uL3N5bWJvbAogCQl8ICQoZ3VhcmQp ICQoQkFTRURJUikvdG9vbHMvc3ltYm9scyAtLXN5c3YgLS1zb3J0ID4kKEBEKS8uJChARikuMXMu UwogCSQoZ3VhcmQpICQoTUFLRSkgLWYgJChCQVNFRElSKS9SdWxlcy5tayAkKEBEKS8uJChARiku MXIubyAkKEBEKS8uJChARikuMXMubwogCSQoZ3VhcmQpICQoTEQpICQoY2FsbCBFRklfTERGTEFH UywkKFZJUlRfQkFTRSkpIC1UIGVmaS5sZHMgLU4gJDwgXAotCSAgICAgICAgICAgICAgICAkKEBE KS8uJChARikuMXIubyAkKEBEKS8uJChARikuMXMubyAtbyAkQAorCSAgICAgICAgICAgICAgICAk KEBEKS8uJChARikuMXIubyAkKEBEKS8uJChARikuMXMubyAkKGJ1aWxkX2lkX2ZpbGUpIC1vICRA CiAJaWYgJChndWFyZCkgZmFsc2U7IHRoZW4gcm0gLWYgJEA7IGVjaG8gJ0VGSSBzdXBwb3J0IGRp c2FibGVkJzsgZmkKIAlybSAtZiAkKEBEKS8uJChARikuWzAtOV0qCiAKZGlmZiAtLWdpdCBhL3hl bi9hcmNoL3g4Ni9ib290L21rZWxmMzIuYyBiL3hlbi9hcmNoL3g4Ni9ib290L21rZWxmMzIuYwpp bmRleCA5OTNhN2VlLi5kMjMwZTRjIDEwMDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYm9vdC9ta2Vs ZjMyLmMKKysrIGIveGVuL2FyY2gveDg2L2Jvb3QvbWtlbGYzMi5jCkBAIC00NSw5ICs0NSw5IEBA IHN0YXRpYyBFbGYzMl9FaGRyIG91dF9laGRyID0gewogICAgIDAsICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogZV9mbGFncyAqLwogICAgIHNpemVvZihFbGYzMl9FaGRy KSwgICAgICAgICAgICAgICAgICAgICAgLyogZV9laHNpemUgKi8KICAgICBzaXplb2YoRWxmMzJf UGhkciksICAgICAgICAgICAgICAgICAgICAgIC8qIGVfcGhlbnRzaXplICovCi0gICAgMSwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBlX3BobnVtICovCisgICAgMSwg IC8qIG1vZGlmeSBiYXNlZCBvbiBudW1fcGhkcnMgKi8gICAgICAvKiBlX3BobnVtICovCiAgICAg c2l6ZW9mKEVsZjMyX1NoZHIpLCAgICAgICAgICAgICAgICAgICAgICAvKiBlX3NoZW50c2l6ZSAq LwotICAgIDMsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZV9zaG51 bSAqLworICAgIDMsICAvKiBtb2RpZnkgYmFzZWQgb24gbnVtX3BoZHJzICovICAgICAgLyogZV9z aG51bSAqLwogICAgIDIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog ZV9zaHN0cm5keCAqLwogfTsKIApAQCAtNjEsOCArNjEsMjAgQEAgc3RhdGljIEVsZjMyX1BoZHIg b3V0X3BoZHIgPSB7CiAgICAgUEZfUnxQRl9XfFBGX1gsICAgICAgICAgICAgICAgICAgICAgICAg ICAvKiBwX2ZsYWdzICovCiAgICAgNjQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBwX2FsaWduICovCiB9Oworc3RhdGljIEVsZjMyX1BoZHIgbm90ZV9waGRyID0gewor ICAgIFBUX05PVEUsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogcF90eXBlICov CisgICAgRFlOQU1JQ0FMTFlfRklMTEVELCAgICAgICAgICAgICAgICAgICAgICAvKiBwX29mZnNl dCAqLworICAgIERZTkFNSUNBTExZX0ZJTExFRCwgICAgICAgICAgICAgICAgICAgICAgLyogcF92 YWRkciAqLworICAgIERZTkFNSUNBTExZX0ZJTExFRCwgICAgICAgICAgICAgICAgICAgICAgLyog cF9wYWRkciAqLworICAgIERZTkFNSUNBTExZX0ZJTExFRCwgICAgICAgICAgICAgICAgICAgICAg LyogcF9maWxlc3ogKi8KKyAgICBEWU5BTUlDQUxMWV9GSUxMRUQsICAgICAgICAgICAgICAgICAg ICAgIC8qIHBfbWVtc3ogKi8KKyAgICBQRl9SLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIHBfZmxhZ3MgKi8KKyAgICA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIC8qIHBfYWxpZ24gKi8KK307CiAKIHN0YXRpYyB1OCBvdXRfc2hzdHJ0YWJbXSA9 ICJcMC50ZXh0XDAuc2hzdHJ0YWIiOworLyogSWYgbnVtX3BoZHJzID49IDIsIHdlIG5lZWQgdG8g dGFjayB0aGUgLm5vdGUuICovCitzdGF0aWMgdTggb3V0X3Noc3RydGFiX2V4dHJhW10gPSAiLm5v dGVcMCI7CiAKIHN0YXRpYyBFbGYzMl9TaGRyIG91dF9zaGRyW10gPSB7CiAgICAgeyAwIH0sCkBA IC05MCw2ICsxMDIsMjMgQEAgc3RhdGljIEVsZjMyX1NoZHIgb3V0X3NoZHJbXSA9IHsKICAgICB9 CiB9OwogCisvKgorICogVGhlIDE3IHBvaW50cyB0byB0aGUgJy5ub3RlJyBpbiB0aGUgb3V0X3No c3RydGFiIGFuZCBvdXRfc2hzdHJ0YWJfZXh0cmEKKyAqIGxhaWQgb3V0IGluIHRoZSBmaWxlLgor ICovCitzdGF0aWMgRWxmMzJfU2hkciBvdXRfc2hkcl9leHRyYSA9IHsKKyAgICAgIDE3LCAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNoX25hbWUgKi8KKyAgICAgIFNIVF9O T1RFLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNoX3R5cGUgKi8KKyAgICAgIDAs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNoX2ZsYWdzICovCisgICAg ICBEWU5BTUlDQUxMWV9GSUxMRUQsICAgICAgICAgICAgICAgICAgICAvKiBzaF9hZGRyICovCisg ICAgICBEWU5BTUlDQUxMWV9GSUxMRUQsICAgICAgICAgICAgICAgICAgICAvKiBzaF9vZmZzZXQg Ki8KKyAgICAgIERZTkFNSUNBTExZX0ZJTExFRCwgICAgICAgICAgICAgICAgICAgIC8qIHNoX3Np emUgKi8KKyAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHNo X2xpbmsgKi8KKyAgICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8q IHNoX2luZm8gKi8KKyAgICAgIDQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IC8qIHNoX2FkZHJhbGlnbiAqLworICAgICAgMCAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogc2hfZW50c2l6ZSAqLworfTsKKwogLyogU29tZSBzeXN0ZW0gaGVhZGVyIGZp bGVzIGRlZmluZSB0aGVzZSBtYWNyb3MgYW5kIHBvbGx1dGUgb3VyIG5hbWVzcGFjZS4gKi8KICN1 bmRlZiBzd2FwMTYKICN1bmRlZiBzd2FwMzIKQEAgLTIyOCwyMSArMjU3LDIyIEBAIHN0YXRpYyB2 b2lkIGRvX3JlYWQoaW50IGZkLCB2b2lkICpkYXRhLCBpbnQgbGVuKQogaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogewogICAgIHU2NCAgICAgICAgZmluYWxfZXhlY19hZGRyOwotICAg IHUzMiAgICAgICAgbG9hZGJhc2UsIGRhdF9zaXosIG1lbV9zaXo7CisgICAgdTMyICAgICAgICBs b2FkYmFzZSwgZGF0X3NpeiwgbWVtX3Npeiwgbm90ZV9iYXNlLCBub3RlX3N6LCBvZmZzZXQ7CiAg ICAgY2hhciAgICAgICppbmltYWdlLCAqb3V0aW1hZ2U7CiAgICAgaW50ICAgICAgICBpbmZkLCBv dXRmZDsKICAgICBjaGFyICAgICAgIGJ1ZmZlclsxMDI0XTsKICAgICBpbnQgICAgICAgIGJ5dGVz LCB0b2RvLCBpOworICAgIGludCAgICAgICAgbnVtX3BoZHJzOwogCiAgICAgRWxmMzJfRWhkciBp bjMyX2VoZHI7CiAKICAgICBFbGY2NF9FaGRyIGluNjRfZWhkcjsKICAgICBFbGY2NF9QaGRyIGlu NjRfcGhkcjsKIAotICAgIGlmICggYXJnYyAhPSA1ICkKKyAgICBpZiAoIGFyZ2MgIT0gNiApCiAg ICAgewogICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVzYWdlOiBta2VsZjMyIDxpbi1pbWFnZT4g PG91dC1pbWFnZT4gIgotICAgICAgICAgICAgICAgICI8bG9hZC1iYXNlPiA8ZmluYWwtZXhlYy1h ZGRyPlxuIik7CisgICAgICAgICAgICAgICAgIjxsb2FkLWJhc2U+IDxmaW5hbC1leGVjLWFkZHI+ IDxudW1iZXIgb2YgcHJvZ3JhbSBoZWFkZXJzPlxuIik7CiAgICAgICAgIHJldHVybiAxOwogICAg IH0KIApAQCAtMjUwLDcgKzI4MCwxMyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3Yp CiAgICAgb3V0aW1hZ2UgPSBhcmd2WzJdOwogICAgIGxvYWRiYXNlID0gc3RydG91bChhcmd2WzNd LCBOVUxMLCAxNik7CiAgICAgZmluYWxfZXhlY19hZGRyID0gc3RydG91bGwoYXJndls0XSwgTlVM TCwgMTYpOwotCisgICAgbnVtX3BoZHJzID0gYXRvaShhcmd2WzVdKTsKKyAgICBpZiAoIG51bV9w aGRycyA+IDIgfHwgbnVtX3BoZHJzIDwgMSApCisgICAgeworICAgICAgICBmcHJpbnRmKHN0ZGVy ciwgIk51bWJlciBvZiBwcm9ncmFtIGhlYWRlcnMgTVVTVCBiZSAxIG9yIDIsIGdvdCAlZCFcbiIs CisgICAgICAgICAgICAgICAgbnVtX3BoZHJzKTsKKyAgICAgICAgcmV0dXJuIDE7CisgICAgfQog ICAgIGluZmQgPSBvcGVuKGluaW1hZ2UsIE9fUkRPTkxZKTsKICAgICBpZiAoIGluZmQgPT0gLTEg KQogICAgIHsKQEAgLTI4NSwxMSArMzIxLDEwIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoq YXJndikKICAgICAgICAgICAgICAgICAoaW50KWluNjRfZWhkci5lX3BoZW50c2l6ZSwgKGludClz aXplb2YoaW42NF9waGRyKSk7CiAgICAgICAgIHJldHVybiAxOwogICAgIH0KLQotICAgIGlmICgg aW42NF9laGRyLmVfcGhudW0gIT0gMSApCisgICAgaWYgKCBpbjY0X2VoZHIuZV9waG51bSAhPSBu dW1fcGhkcnMgKQogICAgIHsKLSAgICAgICAgZnByaW50ZihzdGRlcnIsICJFeHBlY3QgcHJlY2lz bHkgMSBwcm9ncmFtIGhlYWRlcjsgZm91bmQgJWQuXG4iLAotICAgICAgICAgICAgICAgIChpbnQp aW42NF9laGRyLmVfcGhudW0pOworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkV4cGVjdCBwcmVj aXNseSAlZCBwcm9ncmFtIGhlYWRlcjsgZm91bmQgJWQuXG4iLAorICAgICAgICAgICAgICAgIG51 bV9waGRycywgKGludClpbjY0X2VoZHIuZV9waG51bSk7CiAgICAgICAgIHJldHVybiAxOwogICAg IH0KIApAQCAtMjk5LDExICszMzQsMzYgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2 KQogCiAgICAgKHZvaWQpbHNlZWsoaW5mZCwgaW42NF9waGRyLnBfb2Zmc2V0LCBTRUVLX1NFVCk7 CiAgICAgZGF0X3NpeiA9ICh1MzIpaW42NF9waGRyLnBfZmlsZXN6OwotCiAgICAgLyogRG8gbm90 IHVzZSBwX21lbXN6OiBpdCBkb2VzIG5vdCBpbmNsdWRlIEJTUyBhbGlnbm1lbnQgcGFkZGluZy4g Ki8KICAgICAvKm1lbV9zaXogPSAodTMyKWluNjRfcGhkci5wX21lbXN6OyovCiAgICAgbWVtX3Np eiA9ICh1MzIpKGZpbmFsX2V4ZWNfYWRkciAtIGluNjRfcGhkci5wX3ZhZGRyKTsKIAorICAgIG5v dGVfc3ogPSBub3RlX2Jhc2UgPSBvZmZzZXQgPSAwOworICAgIGlmICggbnVtX3BoZHJzID4gMSAp CisgICAgeworICAgICAgICBvZmZzZXQgPSBpbjY0X3BoZHIucF9vZmZzZXQ7CisgICAgICAgIG5v dGVfYmFzZSA9IGluNjRfcGhkci5wX3ZhZGRyOworCisgICAgICAgICh2b2lkKWxzZWVrKGluZmQs IGluNjRfZWhkci5lX3Bob2ZmK3NpemVvZihpbjY0X3BoZHIpLCBTRUVLX1NFVCk7CisgICAgICAg IGRvX3JlYWQoaW5mZCwgJmluNjRfcGhkciwgc2l6ZW9mKGluNjRfcGhkcikpOworICAgICAgICBl bmRpYW5hZGp1c3RfcGhkcjY0KCZpbjY0X3BoZHIpOworCisgICAgICAgICh2b2lkKWxzZWVrKGlu ZmQsIG9mZnNldCwgU0VFS19TRVQpOworCisgICAgICAgIG5vdGVfc3ogPSBpbjY0X3BoZHIucF9t ZW1zejsKKyAgICAgICAgbm90ZV9iYXNlID0gaW42NF9waGRyLnBfdmFkZHIgLSBub3RlX2Jhc2U7 CisKKyAgICAgICAgaWYgKCBpbjY0X3BoZHIucF9vZmZzZXQgPiBkYXRfc2l6IHx8IG9mZnNldCA+ IGluNjRfcGhkci5wX29mZnNldCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGZwcmludGYoc3Rk ZXJyLCAiRXhwZWN0ZWQgLm5vdGUgc2VjdGlvbiB3aXRoaW4gLnRleHQgc2VjdGlvbiFcbiIgXAor ICAgICAgICAgICAgICAgICAgICAiT2Zmc2V0ICVsZCBub3Qgd2l0aGluICVkIVxuIiwKKyAgICAg ICAgICAgICAgICAgICAgaW42NF9waGRyLnBfb2Zmc2V0LCBkYXRfc2l6KTsKKyAgICAgICAgICAg IHJldHVybiAxOworICAgICAgICB9CisgICAgICAgIC8qIEdldHMgdXMgdGhlIGFic29sdXRlIG9m ZnNldCB3aXRoaW4gdGhlIC50ZXh0IHNlY3Rpb24uICovCisgICAgICAgIG9mZnNldCA9IGluNjRf cGhkci5wX29mZnNldCAtIG9mZnNldDsKKyAgICB9CisKICAgICAvKgogICAgICAqIEVuZCB0aGUg aW1hZ2Ugb24gYSBwYWdlIGJvdW5kYXJ5LiBUaGlzIGdldHMgcm91bmQgYWxpZ25tZW50IGJ1Z3MK ICAgICAgKiBpbiB0aGUgYm9vdC0gb3IgY2hhaW4tbG9hZGVyIChlLmcuLCBrZXhlYyBvbiB0aGUg WGVub0Jvb3QgQ0QpLgpAQCAtMzIyLDYgKzM4MiwzMSBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh ciAqKmFyZ3YpCiAgICAgb3V0X3NoZHJbMV0uc2hfc2l6ZSAgID0gZGF0X3NpejsKICAgICBvdXRf c2hkclsyXS5zaF9vZmZzZXQgPSBSQVdfT0ZGU0VUICsgZGF0X3NpeiArIHNpemVvZihvdXRfc2hk cik7CiAKKyAgICBpZiAoIG51bV9waGRycyA+IDEgKQorICAgIHsKKyAgICAgICAgLyogV2UgaGF2 ZSB0d28gb2YgdGhlbSEgKi8KKyAgICAgICAgb3V0X2VoZHIuZV9waG51bSA9IG51bV9waGRyczsK KyAgICAgICAgLyogRXh0cmEgLm5vdGUgc2VjdGlvbi4gKi8KKyAgICAgICAgb3V0X2VoZHIuZV9z aG51bSsrOworCisgICAgICAgIC8qIEZpbGwgb3V0IHRoZSBQVF9OT1RFIHByb2dyYW0gaGVhZGVy LiAqLworICAgICAgICBub3RlX3BoZHIucF92YWRkciAgID0gbm90ZV9iYXNlOworICAgICAgICBu b3RlX3BoZHIucF9wYWRkciAgID0gbm90ZV9iYXNlOworICAgICAgICBub3RlX3BoZHIucF9maWxl c3ogID0gbm90ZV9zejsKKyAgICAgICAgbm90ZV9waGRyLnBfbWVtc3ogICA9IG5vdGVfc3o7Cisg ICAgICAgIG5vdGVfcGhkci5wX29mZnNldCAgPSBvZmZzZXQ7CisKKyAgICAgICAgLyogVGFjayBv biB0aGUgLm5vdGVcMCAqLworICAgICAgICBvdXRfc2hkclsyXS5zaF9zaXplICs9IHNpemVvZihv dXRfc2hzdHJ0YWJfZXh0cmEpOworICAgICAgICAvKiBBbmQgbW92ZSBpdCBwYXN0IHRoZSAubm90 ZSBzZWN0aW9uLiAqLworICAgICAgICBvdXRfc2hkclsyXS5zaF9vZmZzZXQgKz0gc2l6ZW9mKG91 dF9zaGRyX2V4dHJhKTsKKworICAgICAgICAvKiBGaWxsIG91dCB0aGUgLm5vdGUgc2VjdGlvbi4g Ki8KKyAgICAgICAgb3V0X3NoZHJfZXh0cmEuc2hfc2l6ZSA9IG5vdGVfc3o7CisgICAgICAgIG91 dF9zaGRyX2V4dHJhLnNoX2FkZHIgPSBub3RlX2Jhc2U7CisgICAgICAgIG91dF9zaGRyX2V4dHJh LnNoX29mZnNldCA9IFJBV19PRkZTRVQgKyBvZmZzZXQ7CisgICAgfQorCiAgICAgb3V0ZmQgPSBv cGVuKG91dGltYWdlLCBPX1dST05MWXxPX0NSRUFUfE9fVFJVTkMsIDA3NzUpOwogICAgIGlmICgg b3V0ZmQgPT0gLTEgKQogICAgIHsKQEAgLTMzNSw4ICs0MjAsMTUgQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogCiAgICAgZW5kaWFuYWRqdXN0X3BoZHIzMigmb3V0X3BoZHIpOwog ICAgIGRvX3dyaXRlKG91dGZkLCAmb3V0X3BoZHIsIHNpemVvZihvdXRfcGhkcikpOwotICAgIAot ICAgIGlmICggKGJ5dGVzID0gUkFXX09GRlNFVCAtIHNpemVvZihvdXRfZWhkcikgLSBzaXplb2Yo b3V0X3BoZHIpKSA8IDAgKQorCisgICAgaWYgKCBudW1fcGhkcnMgPiAxICkKKyAgICB7CisgICAg ICAgIGVuZGlhbmFkanVzdF9waGRyMzIoJm5vdGVfcGhkcik7CisgICAgICAgIGRvX3dyaXRlKG91 dGZkLCAmbm90ZV9waGRyLCBzaXplb2Yobm90ZV9waGRyKSk7CisgICAgfQorCisgICAgaWYgKCAo Ynl0ZXMgPSBSQVdfT0ZGU0VUIC0gc2l6ZW9mKG91dF9laGRyKSAtIHNpemVvZihvdXRfcGhkcikg LQorICAgICAgICAgICggbnVtX3BoZHJzID4gMSA/IHNpemVvZihub3RlX3BoZHIpIDogMCApICkg PCAwICkKICAgICB7CiAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiSGVhZGVyIG92ZXJmbG93Llxu Iik7CiAgICAgICAgIHJldHVybiAxOwpAQCAtMzU1LDkgKzQ0NywyMiBAQCBpbnQgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgIGVuZGlhbmFkanVzdF9zaGRyMzIoJm91dF9zaGRy W2ldKTsKICAgICBkb193cml0ZShvdXRmZCwgJm91dF9zaGRyWzBdLCBzaXplb2Yob3V0X3NoZHIp KTsKIAotICAgIGRvX3dyaXRlKG91dGZkLCBvdXRfc2hzdHJ0YWIsIHNpemVvZihvdXRfc2hzdHJ0 YWIpKTsKLSAgICBkb193cml0ZShvdXRmZCwgYnVmZmVyLCA0LSgoc2l6ZW9mKG91dF9zaHN0cnRh YikrZGF0X3NpeikmMykpOwotCisgICAgaWYgKCBudW1fcGhkcnMgPiAxICkKKyAgICB7CisgICAg ICAgIGVuZGlhbmFkanVzdF9zaGRyMzIoJm91dF9zaGRyX2V4dHJhKTsKKyAgICAgICAgLyogQXBw ZW5kIHRoZSAubm90ZSBzZWN0aW9uLiAqLworICAgICAgICBkb193cml0ZShvdXRmZCwgJm91dF9z aGRyX2V4dHJhLCBzaXplb2Yob3V0X3NoZHJfZXh0cmEpKTsKKyAgICAgICAgLyogVGhlIG5vcm1h bCBzdHJpbmdzIC0gLnRleHRcMC4uICovCisgICAgICAgIGRvX3dyaXRlKG91dGZkLCBvdXRfc2hz dHJ0YWIsIHNpemVvZihvdXRfc2hzdHJ0YWIpKTsKKyAgICAgICAgLyogT3VyIC5ub3RlICovCisg ICAgICAgIGRvX3dyaXRlKG91dGZkLCBvdXRfc2hzdHJ0YWJfZXh0cmEsIHNpemVvZihvdXRfc2hz dHJ0YWJfZXh0cmEpKTsKKyAgICAgICAgZG9fd3JpdGUob3V0ZmQsIGJ1ZmZlciwgNC0oKHNpemVv ZihvdXRfc2hzdHJ0YWIpK3NpemVvZihvdXRfc2hzdHJ0YWJfZXh0cmEpK2RhdF9zaXopJjMpKTsK KyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgZG9fd3JpdGUob3V0ZmQsIG91dF9zaHN0 cnRhYiwgc2l6ZW9mKG91dF9zaHN0cnRhYikpOworICAgICAgICBkb193cml0ZShvdXRmZCwgYnVm ZmVyLCA0LSgoc2l6ZW9mKG91dF9zaHN0cnRhYikrZGF0X3NpeikmMykpOworICAgIH0KICAgICBj bG9zZShpbmZkKTsKICAgICBjbG9zZShvdXRmZCk7CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4 Ni94ZW4ubGRzLlMgYi94ZW4vYXJjaC94ODYveGVuLmxkcy5TCmluZGV4IDk2MWY0OGYuLjcwNWZh OTggMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMKKysrIGIveGVuL2FyY2gveDg2 L3hlbi5sZHMuUwpAQCAtMzEsNiArMzEsOSBAQCBPVVRQVVRfQVJDSChpMzg2Ong4Ni02NCkKIFBI RFJTCiB7CiAgIHRleHQgUFRfTE9BRCA7CisjaWYgZGVmaW5lZChCVUlMRF9JRCkgJiYgIWRlZmlu ZWQoRUZJKQorICBub3RlIFBUX05PVEUgOworI2VuZGlmCiB9CiBTRUNUSU9OUwogewpAQCAtNzUs NiArNzgsMTEgQEAgU0VDVElPTlMKIAogICAgICAgICooLnJvZGF0YSkKICAgICAgICAqKC5yb2Rh dGEuKikKKyNpZiBkZWZpbmVkKEJVSUxEX0lEKSAmJiBkZWZpbmVkKEVGSSkKKyAgICAgICBfX25v dGVfZ251X2J1aWxkX2lkX3N0YXJ0ID0gLjsKKyAgICAgICAqKC5ub3RlLmdudS5idWlsZC1pZCkK KyAgICAgICBfX25vdGVfZ251X2J1aWxkX2lkX2VuZCA9IC47CisjZW5kaWYKIAogICAgICAgIC4g PSBBTElHTig4KTsKICAgICAgICAvKiBFeGNlcHRpb24gdGFibGUgKi8KQEAgLTk2LDYgKzEwNCwy MSBAQCBTRUNUSU9OUwogICAgICAgIF9lcm9kYXRhID0gLjsKICAgfSA6dGV4dAogCisjaWYgZGVm aW5lZChCVUlMRF9JRCkgJiYgIWRlZmluZWQoRUZJKQorLyoKKyAqIE5vIG1lY2hhbmlzbSB0byBw dXQgYW4gUFRfTk9URSBpbiB0aGUgRUZJIGZpbGUgLSBzbyBwdXQKKyAqIGl0IGluIC5kYXRhIHNl Y3Rpb24uCisgKi8KKyAgLiA9IEFMSUdOKDQpOworICAubm90ZSA6IHsKKyAgICAgICBfX25vdGVf Z251X2J1aWxkX2lkX3N0YXJ0ID0gLjsKKyAgICAgICAqKC5ub3RlLmdudS5idWlsZC1pZCkKKyAg ICAgICBfX25vdGVfZ251X2J1aWxkX2lkX2VuZCA9IC47CisgICAgICAgKigubm90ZSkKKyAgICAg ICAqKC5ub3RlLiopCisgIH0gOm5vdGUgOnRleHQKKyNlbmRpZgorCiAjaWZkZWYgRUZJCiAgIC4g PSBBTElHTihNQigyKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdmVyc2lvbi5j IGIveGVuL2NvbW1vbi92ZXJzaW9uLmMKaW5kZXggZmM5YmY0Mi4uYWY4NzM3MSAxMDA2NDQKLS0t IGEveGVuL2NvbW1vbi92ZXJzaW9uLmMKKysrIGIveGVuL2NvbW1vbi92ZXJzaW9uLmMKQEAgLTEs NSArMSw5IEBACiAjaW5jbHVkZSA8eGVuL2NvbXBpbGUuaD4KKyNpbmNsdWRlIDx4ZW4vZXJybm8u aD4KKyNpbmNsdWRlIDx4ZW4vc3RyaW5nLmg+CisjaW5jbHVkZSA8eGVuL3R5cGVzLmg+CiAjaW5j bHVkZSA8eGVuL3ZlcnNpb24uaD4KKyNpbmNsdWRlIDx4ZW4vZWxmLmg+CiAKIGNvbnN0IGNoYXIg Knhlbl9jb21waWxlX2RhdGUodm9pZCkKIHsKQEAgLTYxLDYgKzY1LDUzIEBAIGNvbnN0IGNoYXIg Knhlbl9kZW55KHZvaWQpCiAgICAgcmV0dXJuICI8ZGVuaWVkPiI7CiB9CiAKKyNpZmRlZiBCVUlM RF9JRAorI2RlZmluZSBOVF9HTlVfQlVJTERfSUQgMworLyogRGVmaW5lZCBpbiBsaW5rZXIgc2Ny aXB0LiAqLworZXh0ZXJuIGNvbnN0IEVsZl9Ob3RlIF9fbm90ZV9nbnVfYnVpbGRfaWRfc3RhcnRb XSwgX19ub3RlX2dudV9idWlsZF9pZF9lbmRbXTsKKworaW50IHhlbl9idWlsZF9pZChjb25zdCB2 b2lkICoqcCwgc3NpemVfdCAqbGVuKQoreworICAgIGNvbnN0IEVsZl9Ob3RlICpuID0gX19ub3Rl X2dudV9idWlsZF9pZF9zdGFydDsKKyAgICBzdGF0aWMgYm9vbF90IGNoZWNrZWQgPSAwOworCisg ICAgaWYgKCBjaGVja2VkICkKKyAgICB7CisgICAgICAgICpsZW4gPSBuLT5kZXNjc3o7CisgICAg ICAgICpwID0gRUxGTk9URV9ERVNDKG4pOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisgICAg LyogLS1idWlsZC1pZCBpbnZva2VkIHdpdGggd3JvbmcgcGFyYW1ldGVycy4gKi8KKyAgICBpZiAo IF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kIDw9IF9fbm90ZV9nbnVfYnVpbGRfaWRfc3RhcnQgKQor ICAgICAgICByZXR1cm4gLUVOT0RBVEE7CisKKyAgICAvKiBDaGVjayBmb3IgZnVsbCBOb3RlIGhl YWRlci4gKi8KKyAgICBpZiAoICZuWzFdID4gX19ub3RlX2dudV9idWlsZF9pZF9lbmQgKQorICAg ICAgICByZXR1cm4gLUVOT0RBVEE7CisKKyAgICAvKiBDaGVjayBpZiB3ZSByZWFsbHkgaGF2ZSBh IGJ1aWxkLWlkLiAqLworICAgIGlmICggTlRfR05VX0JVSUxEX0lEICE9IG4tPnR5cGUgKQorICAg ICAgICByZXR1cm4gLUVOT0RBVEE7CisKKyAgICAvKiBTYW5pdHkgY2hlY2ssIG5hbWUgc2hvdWxk IGJlICJHTlUiIGZvciBsZC1nZW5lcmF0ZWQgYnVpbGQtaWQuICovCisgICAgaWYgKCBzdHJuY21w KEVMRk5PVEVfTkFNRShuKSwgIkdOVSIsIG4tPm5hbWVzeikgIT0gMCApCisgICAgICAgIHJldHVy biAtRU5PREFUQTsKKworICAgICpsZW4gPSBuLT5kZXNjc3o7CisgICAgKnAgPSBFTEZOT1RFX0RF U0Mobik7CisKKyAgICBjaGVja2VkID0gMTsKKyAgICByZXR1cm4gMDsKK30KKworI2Vsc2UKKwor aW50IHhlbl9idWlsZF9pZChjb25zdCB2b2lkICoqcCwgc3NpemVfdCAqbGVuKQoreworICAgIHJl dHVybiAtRU5PREFUQTsKK30KKyNlbmRpZgorCiAvKgogICogTG9jYWwgdmFyaWFibGVzOgogICog bW9kZTogQwpkaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUveGVuL3ZlcnNpb24uaCBiL3hlbi9pbmNs dWRlL3hlbi92ZXJzaW9uLmgKaW5kZXggMDE2YTU2Yy4uYTQ2MWM4NSAxMDA2NDQKLS0tIGEveGVu L2luY2x1ZGUveGVuL3ZlcnNpb24uaAorKysgYi94ZW4vaW5jbHVkZS94ZW4vdmVyc2lvbi5oCkBA IC0xMyw0ICsxMyw3IEBAIGNvbnN0IGNoYXIgKnhlbl9leHRyYV92ZXJzaW9uKHZvaWQpOwogY29u c3QgY2hhciAqeGVuX2NoYW5nZXNldCh2b2lkKTsKIGNvbnN0IGNoYXIgKnhlbl9iYW5uZXIodm9p ZCk7CiBjb25zdCBjaGFyICp4ZW5fZGVueSh2b2lkKTsKKyNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4K K2ludCB4ZW5fYnVpbGRfaWQoY29uc3Qgdm9pZCAqKnAsIHNzaXplX3QgKmxlbik7CisKICNlbmRp ZiAvKiBfX1hFTl9WRVJTSU9OX0hfXyAqLwotLSAKMi41LjAKCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1k ZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=