From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v5 19/28] build_id: Provide ld-embedded build-ids Date: Fri, 8 Apr 2016 15:23:54 -0400 Message-ID: <20160408192354.GC27946@char.us.oracle.com> References: <1458849640-22588-1-git-send-email-konrad.wilk@oracle.com> <1458849640-22588-20-git-send-email-konrad.wilk@oracle.com> <57027E4002000078000E2AF1@prv-mh.provo.novell.com> <20160408001825.GA16873@localhost.localdomain> <20160408015244.GB31173@localhost.localdomain> <5707DBD402000078000E60F9@prv-mh.provo.novell.com> <20160408170629.GY15411@char.us.oracle.com> <5707FC2602000078000E618E@prv-mh.provo.novell.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aoc0p-0002h2-Jm for xen-devel@lists.xenproject.org; Fri, 08 Apr 2016 19:24:11 +0000 Content-Disposition: inline In-Reply-To: <5707FC2602000078000E618E@prv-mh.provo.novell.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: Jan Beulich Cc: Keir Fraser , ross.lagerwall@citrix.com, andrew.cooper3@citrix.com, mpohlack@amazon.de, Julien Grall , Stefano Stabellini , sasha.levin@oracle.com, xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gRnJpLCBBcHIgMDgsIDIwMTYgYXQgMTE6NDQ6NTRBTSAtMDYwMCwgSmFuIEJldWxpY2ggd3Jv dGU6Cj4gPj4+IE9uIDA4LjA0LjE2IGF0IDE5OjA2LCA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4g d3JvdGU6Cj4gPiAiU2luY2UgeW91IHB1dCB0aGUgbm90ZXMgaW50byAucm9kYXRhIGFueXdheSwg d2h5IG5hbWUgdGhlIHNlY3Rpb24gLm5vdGUiCj4gPiAKPiA+IFBlcmhhcHMgeW91IG1lYW4gLSB3 aHkgbmFtZSB0aGUgc2VjdGlvbiAubm90ZS5nbnVfYnVpbGQtaWQgPwo+IAo+IFN1cmUgLSAubm90 ZSBvciAubm90ZS4qLgo+IAo+ID4gU28gdGhhdCB3aGVuIHhlbi5lZmkgaXMgbGlua2VkIHdpdGgg dGhpcyBidWlsZF9pZC5vIChpbiB2NSwgbm93IGNhbGxlZCAKPiA+IG5vdGVzLm8gaW4gdjYpCj4g PiBpdCBjYW4gZW5jYXBzdWxhdGUgX19ub3RlX2dudV9idWlsZF9pZF9zdGFydCBhbmQgX19ub3Rl X2dudV9idWlsZF9pZF9lbmQgCj4gPiBhcm91bmQKPiA+IGl0LiBJIGNvdWxkIGNoYW5nZSBmb3Ig RUZJIGJ1aWxkcyB0aGUgeGVuLmxkcy5TIHRvIGJlOgo+ID4gCj4gPiAgICAgICooLnJvZGF0YS4q KQo+ID4gKyNpZiBkZWZpbmVkKEJVSUxEX0lEKSAmJiBkZWZpbmVkKEVGSSkKPiA+ICsvKgo+ID4g KyAqIE5vIG1lY2hhbmlzbSB0byBwdXQgYW4gUFRfTk9URSBpbiB0aGUgRUZJIGZpbGUgLSBzbyBw dXQKPiA+ICsgKiBpdCBpbiAuZGF0YSBzZWN0aW9uLgo+ID4gKyAqLwo+ID4gKyAgICAgICAgLiA9 IEFMSUdOKDQpOwo+ID4gKwo+ID4gKyAgICAgICBfX25vdGVfZ251X2J1aWxkX2lkX3N0YXJ0ID0g LjsKPiA+ICsgICAgICAgKigucm9kYXRhLm5vdGUuZ251LmJ1aWxkLWlkKQo+ID4gKyAgICAgICBf X25vdGVfZ251X2J1aWxkX2lkX2VuZCA9IC47Cj4gPiArICAgICAgICooLm5vdGUpCj4gPiArICAg ICAgICooLm5vdGUuKikKPiA+ICsjZW5kaWYKPiA+IAo+ID4gQnV0IHRoZW4gaXQgZGlmZmVyZXMg ZnJvbSB0aGUgY2hhbmdlIGZvciAhRUZJIChXaGljaCB3b3VsZCBiZSBuYXR1cmFsbHkKPiA+IGNh bGxlZCAubm90ZS5nbnUuYnVpbGQtaWQpLgo+IAo+IEJ1dCB0aGF0IGxvb2tzIHRvIGJlIHRoZSBy aWdodCBhcHByb2FjaCwgYWNjb3VudGluZyBmb3IgdGhlCj4gZGlmZmVyZW5jZXMgYmV0d2VlbiBF TEYgYW5kIENPRkYvUEUuIEFuZCBidHcuLCB1bmxlc3MgeW91IGRpZAo+IGNoYW5nZXMgZWxzZXdo ZXJlIEkgZG9uJ3QgdGhpbmsgdGhpcyBpbmNsdXNpb24gb2YgLm5vdGUgYW5kIC5ub3RlLioKPiBo ZXJlIHdvdWxkIGhhdmUgdGhlIGVmZmVjdCB5b3Ugd2FudCBpdCB0byBoYXZlLgoKV2UgZG9uJ3Qg cmVhbGx5IGhhdmUgYW55IG90aGVyIC5ub3RlLCB3aGljaCBpcyBnb29kLgoKSSB0cmllZCB0byBm ZWVkIHRoZSBsaW5rZXIgYSBub3Rlcy5vIGZpbGUgd2l0aCAucm9kYXRhLm5vdGUKYW5kIGhhdmUg dGhlIGVmaS5sZHMuUyBpbmdlc3QgaXQ6CgogICAgICAgX19ub3RlX2dudV9idWlsZF9pZF9zdGFy dCA9IC47CiAgICAgICAqKC5yb2RhdGEubm90ZSkKICAgICAgIF9fbm90ZV9nbnVfYnVpbGRfaWRf ZW5kID0gLjsKCkJ1dCBpdCBpZ25vcmVkIGl0IChubyBkYXRhLCBhbmQgX19ub3RlX2dudV9idWls ZF9pZF9zdGFydCA9PSBfX25vdGVfZ251X2J1aWxkX2lkX2VuZCkKIElmIEkgbGVmdCB0aGUgbmFt ZSBhcyAubm90ZSBvciAqKC5ub3RlLiopIGl0IHdhcyBPSy4KCkhlcmUgaXMgd2hhdCBJIGNhbWUg dXAgd2l0aC4gR29pbmcgdG8gdGVzdCBpdCBzaG9ydGx5CgpGcm9tIGZmNjE4MjNjZWY0MzdmYjhh Njk5MDNiM2ZmMTRiMGQwNmNjZjc0M2IgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCkZyb206IEtv bnJhZCBSemVzenV0ZWsgV2lsayA8a29ucmFkLndpbGtAb3JhY2xlLmNvbT4KRGF0ZTogV2VkLCA2 IEFwciAyMDE2IDIyOjA1OjA2IC0wNDAwClN1YmplY3Q6IFtQQVRDSF0gYnVpbGRfaWQ6IFByb3Zp ZGUgbGQtZW1iZWRkZWQgYnVpbGQtaWRzCgpUaGlzIHBhdGNoIGVuYWJsZXMgdGhlIEVsZiB0byBi ZSBidWlsdCB3aXRoIHRoZSBidWlsZC1pZAphbmQgcHJvdmlkZSBpbiB0aGUgWGVuIGh5cGVydmlz b3IgdGhlIGNvZGUgdG8gZXh0cmFjdCBpdC4KClRoZSBtYW4tcGFnZSBmb3IgbGQgLS1idWlsZC1p ZCBzYXlzIGl0IGlzOgoKIlJlcXVlc3QgdGhlIGNyZWF0aW9uIG9mIGEgIi5ub3RlLmdudS5idWls ZC1pZCIgRUxGIG5vdGUKc2VjdGlvbiBvciBhICIuYnVpbGQtaWQiIENPRkYgc2VjdGlvbi4gIFRo ZSBjb250ZW50cyBvZiB0aGUKbm90ZSBhcmUgdW5pcXVlIGJpdHMgaWRlbnRpZnlpbmcgdGhpcyBs aW5rZWQgZmlsZS4gc3R5bGUgY2FuIGJlCiJ1dWlkIiB0byB1c2UgMTI4IHJhbmRvbSBiaXRzLCAi c2hhMSIgdG8gdXNlIGEgMTYwLWJpdCBTSEExIGhhc2gKb24gdGhlIG5vcm1hdGl2ZSBwYXJ0cyBv ZiB0aGUgb3V0cHV0IGNvbnRlbnRzLCAuLi4iCgpPbmUgY2FuIGFsc28gcmV0cmlldmUgdGhlIHZh bHVlIG9mIHRoZSBidWlsZC1pZCBieSBkb2luZwoncmVhZGVsZiAtbiB4ZW4tc3ltcycuCgpGb3Ig RUZJIGJ1aWxkcyB3ZSByZS11c2UgdGhlIHNhbWUgYnVpbGQtaWQgdGhhdCB0aGUgeGVuLXN5bXMK d2FzIGJ1aWx0IHdpdGguCgpUaGUgdmVyc2lvbiBvZiBsZCB0aGF0IGZpcnN0IGltcGxlbWVudGVk IC0tYnVpbGQtaWQgaXMgdjIuMTguCldlIGNoZWNrIGZvciB0byBzZWUgaWYgdGhlIGxpbmtlciBz dXBwb3J0cyB0aGUgLS1idWlsZC1pZApwYXJhbWV0ZXIgYW5kIGlmIHNvIHVzZSBpdC4KCkZvciB4 ODYgd2UgaGF2ZSB0d28gYmluYXJpZXMgLSB0aGUgeGVuLXN5bXMgYW5kIHRoZSB4ZW4gLSBhbgpz bWFsbGVyIHZlcnNpb24gd2l0aCBsb3RzIG9mIHNlY3Rpb25zIHJlbW92ZWQuIFRvIG1ha2UgaXQg cG9zc2libGUKZm9yIHJlYWRlbGYgLW4geGVuIHdlIGFsc28gbW9kaWZ5IG1rZWxmMzIgYW5kIHhl bi5sZHMuUyB0byBpbmNsdWRlCnRoZSBQVF9OT1RFIEVMRiBzZWN0aW9uLgoKVGhlIEVGSSBiaW5h cnkgaXMgbW9yZSBjb21wbGljYXRlZC4gV2Ugb25seSBidWlsZCBvbmUgdHlwZSBvZgpiaW5hcnkg YW5kIGV4cGFuZGluZyB0aGUgYW1vdW50IG9mIHNlY3Rpb25zIHRoZSBFRkkgYmluYXJ5IGhhcyB0 bwppbmNsdWRlIGFuIC5ub3RlIG9uZSBpcyBwb2ludGxlc3MgLSBhcyB0aGVyZSBpcyBubyBjb25j ZXB0IG9mClBUX05PVEUuIFRoZSBiZXN0IHdlIGNhbiBkbyBpcyBtb3ZlIHRoZSAubm90ZSBpbiB0 aGUgLnJvZGF0YSBzZWN0aW9uLgoKRnVydGhlciBkZXZlbG9wbWVudCB3aXNlIHNob3VsZCBtb3Zl IGl0IHRvIC5idWlsZGlkIHNlY3Rpb24Kc28gdGhhdCBEYXRhRGlyZWN0b3J5IGRlYnVnIGRhdGEg bm9yIENvZGVWaWV3IGNhbiB2aWV3IGl0LgooVGhlIGF1dGhvciBoYXMgbm8gY2x1ZSB3aGF0IHRo b3NlIGFyZSkuCgpOb3RlIHRoYXQgaW4gZWFybGllciBwYXRjaGVzIHRoZSBsaW5rZXIgc2NyaXB0 IGhhZDoKCiBfX25vdGVfZ251X2J1aWxkX2lkX3N0YXJ0ID0gLjsKICooLnJvZGF0YS5ub3RlLmdu dS5idWlsZC1pZCkKIF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kID0gLjsKICooLm5vdGUpCiAqKC5u b3RlLiopCgpXaGljaCBtZWFudCB5b3UgY291bGQgaGF2ZSBkaWZmZXJlbnQgRUxGIG5vdGVzIF9v dXRzaWRlXyB0aGUKX19ub3RlX2dudV9idWlsZF9pZF9lbmQuIEhvd2V2ZXIgZm9yIEVGSSBidWls ZHMgd2UgdGFrZSB0aGUgd2hvbGUKLm5vdGUqIHNlY3Rpb24gYW5kIGphbSBpdCBpbiB0aGUgRUZJ IHRvIGJlIGJldHdlZW4KX19ub3RlX2dudV9idWlsZF9pZF9zdGFydCBhbmQgX19ub3RlX2dudV9i dWlsZF9pZF9lbmQuClRvIG5vdCBtYWtlIEVGSSBiZSB0aGUgb2RkLW1hbiBvdXQgYWxsIHRoZSBi dWlkcyB3aWxsIGluZ2VzdAp0aGUgc2FtZSB0eXBlLiBUaGlzIG1lYW5zIGlmIHdlIGhhZCBleHRy YSBFTEYgTm90ZXMgd2UgaGF2ZSB0bwpjYXJlZnVsIHRoYXQgdGhlIHZlcnkgZmlyc3Qgb25lIGlz IHRoZSAtLWJ1aWxkLWlkIChvdGhlcndpc2UKeGVuX2J1aWxkX2luaXQgd2lsbCBmYWlsKS4KCk5v dGUgdGhhdCB3ZSBkbyBjYWxsIC0tYmluYXJ5LWlkPXNoYTEgb24gYWxsIGxpbmtlciBpbnZvY2F0 aW9ucy4KV2UgaGF2ZSB0byBkbyB0byBlbmZvcmNlIHRoYXQgdGhlIHN5bWJvbCBvZmZzZXRzIGRv bid0IGNoYW5nZXMKKHRoZSBzaWRlIGVmZmVjdCBpcyB0aGF0IHdlIHdlIHdvdWxkIGhhdmUgbXVs dGlwbGUgYmluYXJ5IGlkcyAtCmV4Y2VwdCB0aGF0IHRoZSBsYXN0IG9uZSBpcyB0aGUgZmluYWwg b25lKS4KCldpdGhvdXQgdGhpcyB3b3JraW5nIHRoZSBzeW1ib2wgdGFibGUgZW1iZWRkZWQgaW4g WGVuIGVuZHMKdXAgaW5jb3JyZWN0IC0gc29tZSBvZiB0aGUgdmFsdWVzIGl0IGNvbnRhaW5zIHdv dWxkIGJlIG9mZnNldCBieSB0aGUKc2l6ZSBvZiB0aGUgaW5jbHVkZWQgYnVpbGQgaWQuCgpUaGlz IG9idmlvdXNseSBjYXVzZXMgcHJvYmxlbXMgd2hlbiByZXNvbHZpbmcgc3ltYm9scy4KClN1Z2dl c3RlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KU2lnbmVk LW9mZi1ieTogTWFydGluIFBvaGxhY2sgPG1wb2hsYWNrQGFtYXpvbi5kZT4KU2lnbmVkLW9mZi1i eTogS29ucmFkIFJ6ZXN6dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgoKLS0tCkNj OiBTdGVmYW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBjaXRyaXguY29tPgpDYzog SnVsaWVuIEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ2M6IEtlaXIgRnJhc2VyIDxrZWly QHhlbi5vcmc+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcg Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKdjE6IFJlYmFzZSBpdCBvbiBNYXJ0 aW4ncyBpbml0aWFsIHBhdGNoCnYyOiBNb3ZlIGl0IHRvIFhFTlZFUiBoeXBlcmNhbGwKdjM6IEZp eCBFRkkgYnVpbGRpbmcgKFJvc3MncyBmaXgpCiAgICBEb24ndCB1c2UgdGhlIHRoaXJkIGFyZ3Vt ZW50IGZvciBsZW5ndGguCiAgICBVc2UgbmV3IHN0cnVjdHVyZSBmb3IgWEVOVkVSX2J1aWxkX2lk IHdpdGggdmFyaWFibGUgYnVmLgogICAgSW5jbHVkZSBSb3NzJ3MgZml4LgogICAgSW5jbHVkZSBk ZXRlY3Rpb24gb2YgYmluLXV0aWxzIGZvciBidWlsZC1pZCBzdXBwb3J0LCBhZGQKICAgIHByb2Jp bmcgZm9yIHNpemUsIGFuZCByZXR1cm4gLUVQRVJNIGZvciBYU00gZGVuaWVkIGNhbGxzLgogICAg QnVpbGQgeGVuX2J1aWxkX2lkIHVuZGVyIEFSTSwgcmVxdWlyZWQgYWRkaW5nIEVMRlNJWkUgaW4g cHJvcGVyIGZpbGUuCiAgICBSZWJhc2Ugb24gdG9wIFhTTSB2ZXJzaW9uIGNsYXNzLgp2NDoKICAg IEluY2x1ZGUgdGhlIGJ1aWxkLWlkIC5ub3RlIGluIHRoZSB4ZW4gRUxGIGJpbmFyeS4KICAgIHMv YnVpbGRfaWQvYnVpbGRfaWRfbGlua2VyLwogICAgRm9yIEVGSSBidWlsZCwgbW92ZWQgdGhlIC0t YnVpbGQtaWQgdmFsdWVzIGluIC5kYXRhIHNlY3Rpb24KICAgIFJlYmFzZSBvbiBzdGFnaW5nLgog ICAgU3BsaXQgcGF0Y2ggaW4gdHdvLiBBbHdheXMgZG8gLS1idWlsZC1pZCBjYWxsLiBJbmNsdWRl IHRoZSAubm90ZSBpbgogICAgLnJvZGF0YS4gVVNlIGNvbnN0IHZvaWQgKiBhbmQgc3NpemVfdAog ICAgVXNlIC1TIHRvIG1ha2UgYnVpbGRfaWQubyBhbmQgb2JqY29weSBkaWZmZXJlbnRseSAoQW5k cmV3IHN1Z2dlc3RlZCkKdjU6IFB1dCBiYWNrIHRoZSAjaWZkZWYgTE9DS19QUk9GSUxFIG9uIEFS TS4gKEJhZCBjaGFuZ2UpLiBNb3ZlIHRoZSBfZXJvZGF0YQogICAgYXJvdW5kLiBzL3NzaXplX3Qv dW5zaWduZWQgaW50Lwp2NjogUmVkaWQgaXQgcGVyIEphbidzIHJldmlldy4Kdjc6IE1vdmUgYnVp bGQtaWQgbm90ZSBpbiAucm9kYXRhLm5vdGUgZm9yIEVGSSBidWlsZHMgb25seS4KICAgIE1vdmUg YnVpbGQtaWQgbm90ZSBpbiAucm9kYXRhIGZvciBFRkkgYnVpbGRzIG9ubHkuIFJldGFpbgogICAg aXQgaW4gLm5vdGUuIENoYW5nZSBuYW1lIG9mIG9iamVjdCBmaWxlIHVzZWQgYnkgRUZJIGJ1aWxk cyB0byBub3Rlcy5vCi0tLQotLS0KIENvbmZpZy5tayAgICAgICAgICAgICAgICAgICB8ICAxMSAr KysrCiB4ZW4vYXJjaC9hcm0vTWFrZWZpbGUgICAgICAgfCAgIDIgKy0KIHhlbi9hcmNoL2FybS94 ZW4ubGRzLlMgICAgICB8ICAxNiArKysrKy0KIHhlbi9hcmNoL3g4Ni9NYWtlZmlsZSAgICAgICB8 ICAzMCArKysrKysrKystLQogeGVuL2FyY2gveDg2L2Jvb3QvbWtlbGYzMi5jIHwgMTI5ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiB4ZW4vYXJjaC94ODYvZWZp L01ha2VmaWxlICAgfCAgIDIgKy0KIHhlbi9hcmNoL3g4Ni94ZW4ubGRzLlMgICAgICB8ICAyNCAr KysrKysrKysKIHhlbi9jb21tb24vdmVyc2lvbi5jICAgICAgICB8ICA1MSArKysrKysrKysrKysr KysrKysKIHhlbi9pbmNsdWRlL3hlbi92ZXJzaW9uLmggICB8ICAgMSArCiA5IGZpbGVzIGNoYW5n ZWQsIDI0MyBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Db25m aWcubWsgYi9Db25maWcubWsKaW5kZXggNzllYjJiZC4uZGI3MDYzOCAxMDA2NDQKLS0tIGEvQ29u ZmlnLm1rCisrKyBiL0NvbmZpZy5tawpAQCAtMTI2LDYgKzEyNiwxNyBAQCBlbmRlZgogY2hlY2st JChnY2MpID0gJChjYWxsIGNjLXZlci1jaGVjayxDQywweDA0MDEwMCwiWGVuIHJlcXVpcmVzIGF0 IGxlYXN0IGdjYy00LjEiKQogJChldmFsICQoY2hlY2steSkpCiAKK2xkLXZlci1idWlsZC1pZCA9 ICQoc2hlbGwgJCgxKSAtLWJ1aWxkLWlkIDI+JjEgfCBcCisJCQkJCWdyZXAgLXEgdW5yZWNvZ25p emVkICYmIGVjaG8gbiB8fCBlY2hvIHkpCisKK2V4cG9ydCBYRU5fSEFTX0JVSUxEX0lEID89IG4K K2lmZXEgKCQoY2FsbCBsZC12ZXItYnVpbGQtaWQsJChMRCkpLG4pCitidWlsZF9pZF9saW5rZXIg Oj0KK2Vsc2UKK0NGTEFHUyArPSAtREJVSUxEX0lECitidWlsZF9pZF9saW5rZXIgOj0gLS1idWls ZC1pZD1zaGExCitlbmRpZgorCiAjIGFzLWluc246IENoZWNrIHdoZXRoZXIgYXNzZW1ibGVyIHN1 cHBvcnRzIGFuIGluc3RydWN0aW9uLgogIyBVc2FnZTogY2ZsYWdzLXkgKz0gJChjYWxsIGFzLWlu c24gImluc24iLG9wdGlvbi15ZXMsb3B0aW9uLW5vKQogYXMtaW5zbiA9ICQoaWYgJChzaGVsbCBl Y2hvICd2b2lkIF8odm9pZCkgeyBhc20gdm9sYXRpbGUgKCAkKDIpICk7IH0nIFwKZGlmZiAtLWdp dCBhL3hlbi9hcmNoL2FybS9NYWtlZmlsZSBiL3hlbi9hcmNoL2FybS9NYWtlZmlsZQppbmRleCBi YmQxOTBlLi5kMzQ4OWJkIDEwMDY0NAotLS0gYS94ZW4vYXJjaC9hcm0vTWFrZWZpbGUKKysrIGIv eGVuL2FyY2gvYXJtL01ha2VmaWxlCkBAIC05Miw3ICs5Miw3IEBAICQoVEFSR0VUKS1zeW1zOiBw cmVsaW5rLm8geGVuLmxkcyAkKEJBU0VESVIpL2NvbW1vbi9zeW1ib2xzLWR1bW15Lm8KIAkkKE5N KSAtcGEgLS1mb3JtYXQ9c3lzdiAkKEBEKS8uJChARikuMSBcCiAJCXwgJChCQVNFRElSKS90b29s cy9zeW1ib2xzIC0tc3lzdiAtLXNvcnQgPiQoQEQpLy4kKEBGKS4xLlMKIAkkKE1BS0UpIC1mICQo QkFTRURJUikvUnVsZXMubWsgJChARCkvLiQoQEYpLjEubwotCSQoTEQpICQoTERGTEFHUykgLVQg eGVuLmxkcyAtTiBwcmVsaW5rLm8gXAorCSQoTEQpICQoTERGTEFHUykgLVQgeGVuLmxkcyAtTiBw cmVsaW5rLm8gJChidWlsZF9pZF9saW5rZXIpIFwKIAkgICAgJChARCkvLiQoQEYpLjEubyAtbyAk QAogCXJtIC1mICQoQEQpLy4kKEBGKS5bMC05XSoKIApkaWZmIC0tZ2l0IGEveGVuL2FyY2gvYXJt L3hlbi5sZHMuUyBiL3hlbi9hcmNoL2FybS94ZW4ubGRzLlMKaW5kZXggOTkwOTU5NS4uYTVlNjM1 ZCAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3hlbi5sZHMuUworKysgYi94ZW4vYXJjaC9hcm0v eGVuLmxkcy5TCkBAIC0yMiw2ICsyMiw5IEBAIE9VVFBVVF9BUkNIKEZPUk1BVCkKIFBIRFJTCiB7 CiAgIHRleHQgUFRfTE9BRCAvKiBYWFggc2hvdWxkIGJlIEFUICggWEVOX1BIWVNfU1RBUlQgKSAq LyA7CisjaWYgZGVmaW5lZChCVUlMRF9JRCkKKyAgbm90ZSBQVF9OT1RFIDsKKyNlbmRpZgogfQog U0VDVElPTlMKIHsKQEAgLTU3LDEwICs2MCwxOSBAQCBTRUNUSU9OUwogICAgICAgICooLmxvY2tw cm9maWxlLmRhdGEpCiAgICAgICAgX19sb2NrX3Byb2ZpbGVfZW5kID0gLjsKICNlbmRpZgotCi0g ICAgICAgIF9lcm9kYXRhID0gLjsgICAgICAgICAgLyogRW5kIG9mIHJlYWQtb25seSBkYXRhICov CiAgIH0gOnRleHQKIAorI2lmIGRlZmluZWQoQlVJTERfSUQpCisgIC4gPSBBTElHTig0KTsKKyAg Lm5vdGUgOiB7CisgICAgICAgX19ub3RlX2dudV9idWlsZF9pZF9zdGFydCA9IC47CisgICAgICAg Kigubm90ZSkKKyAgICAgICAqKC5ub3RlLiopCisgICAgICAgX19ub3RlX2dudV9idWlsZF9pZF9l bmQgPSAuOworICB9IDpub3RlIDp0ZXh0CisjZW5kaWYKKyAgX2Vyb2RhdGEgPSAuOyAgICAgICAg ICAgICAgICAvKiBFbmQgb2YgcmVhZC1vbmx5IGRhdGEgKi8KKwogICAuZGF0YSA6IHsgICAgICAg ICAgICAgICAgICAgIC8qIERhdGEgKi8KICAgICAgICAuID0gQUxJR04oUEFHRV9TSVpFKTsKICAg ICAgICAqKC5kYXRhLnBhZ2VfYWxpZ25lZCkKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9NYWtl ZmlsZSBiL3hlbi9hcmNoL3g4Ni9NYWtlZmlsZQppbmRleCAwOGE3YjY4Li43MjdlMDEyIDEwMDY0 NAotLS0gYS94ZW4vYXJjaC94ODYvTWFrZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L01ha2VmaWxl CkBAIC03Miw2ICs3MiwxMiBAQCBlZmkteSA6PSAkKHNoZWxsIGlmIFsgISAtciAkKEJBU0VESVIp L2luY2x1ZGUveGVuL2NvbXBpbGUuaCAtbyBcCiAgICAgICAgICAgICAgICAgICAgICAgLU8gJChC QVNFRElSKS9pbmNsdWRlL3hlbi9jb21waWxlLmggXTsgdGhlbiBcCiAgICAgICAgICAgICAgICAg ICAgICAgICAgZWNobyAnJChUQVJHRVQpLmVmaSc7IGZpKQogCitpZm5lcSAoJChidWlsZF9pZF9s aW5rZXIpLCkKK251bV9waGRycyA9IC0tbm90ZXMKK2Vsc2UKK251bV9waGRycyA9CitlbmRpZgor CiBpZmRlZiBDT05GSUdfWFNQTElDRQogYWxsX3N5bWJvbHMgPSAtLWFsbC1zeW1ib2xzCiBlbHNl CkBAIC04MCw3ICs4Niw4IEBAIGVuZGlmCiAKICQoVEFSR0VUKTogJChUQVJHRVQpLXN5bXMgJChl ZmkteSkgYm9vdC9ta2VsZjMyCiAJLi9ib290L21rZWxmMzIgJChUQVJHRVQpLXN5bXMgJChUQVJH RVQpIDB4MTAwMDAwIFwKLQlgJChOTSkgLW5yICQoVEFSR0VUKS1zeW1zIHwgaGVhZCAtbiAxIHwg c2VkIC1lICdzL15cKFteIF0qXCkuKi8weFwxLydgCisJYCQoTk0pIC1uciAkKFRBUkdFVCktc3lt cyB8IGhlYWQgLW4gMSB8IHNlZCAtZSAncy9eXChbXiBdKlwpLiovMHhcMS8nYCBcCisJJChudW1f cGhkcnMpCiAKIC5QSE9OWTogdGVzdAogdGVzdDoKQEAgLTExNCwyMiArMTIxLDI4IEBAICQoQkFT RURJUikvY29tbW9uL3N5bWJvbHMtZHVtbXkubzoKIAkkKE1BS0UpIC1mICQoQkFTRURJUikvUnVs ZXMubWsgLUMgJChCQVNFRElSKS9jb21tb24gc3ltYm9scy1kdW1teS5vCiAKICQoVEFSR0VUKS1z eW1zOiBwcmVsaW5rLm8geGVuLmxkcyAkKEJBU0VESVIpL2NvbW1vbi9zeW1ib2xzLWR1bW15Lm8K LQkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5vIFwKKwkkKExEKSAkKExE RkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5vICQoYnVpbGRfaWRfbGlua2VyKSBcCiAJICAg ICQoQkFTRURJUikvY29tbW9uL3N5bWJvbHMtZHVtbXkubyAtbyAkKEBEKS8uJChARikuMAogCSQo Tk0pIC1wYSAtLWZvcm1hdD1zeXN2ICQoQEQpLy4kKEBGKS4wIFwKIAkJfCAkKEJBU0VESVIpL3Rv b2xzL3N5bWJvbHMgJChhbGxfc3ltYm9scykgLS1zeXN2IC0tc29ydCBcCiAJCT4kKEBEKS8uJChA RikuMC5TCiAJJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1bGVzLm1rICQoQEQpLy4kKEBGKS4wLm8K LQkkKExEKSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5vIFwKKwkkKExEKSAkKExE RkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5vICQoYnVpbGRfaWRfbGlua2VyKSBcCiAJICAg ICQoQEQpLy4kKEBGKS4wLm8gLW8gJChARCkvLiQoQEYpLjEKIAkkKE5NKSAtcGEgLS1mb3JtYXQ9 c3lzdiAkKEBEKS8uJChARikuMSBcCiAJCXwgJChCQVNFRElSKS90b29scy9zeW1ib2xzICQoYWxs X3N5bWJvbHMpIC0tc3lzdiAtLXNvcnQgLS13YXJuLWR1cCBcCiAJCT4kKEBEKS8uJChARikuMS5T CiAJJChNQUtFKSAtZiAkKEJBU0VESVIpL1J1bGVzLm1rICQoQEQpLy4kKEBGKS4xLm8KLQkkKExE KSAkKExERkxBR1MpIC1UIHhlbi5sZHMgLU4gcHJlbGluay5vIFwKKwkkKExEKSAkKExERkxBR1Mp IC1UIHhlbi5sZHMgLU4gcHJlbGluay5vICQoYnVpbGRfaWRfbGlua2VyKSBcCiAJICAgICQoQEQp Ly4kKEBGKS4xLm8gLW8gJEAKIAlybSAtZiAkKEBEKS8uJChARikuWzAtOV0qCiAKK25vdGVzLm86 ICQoVEFSR0VUKS1zeW1zCisJJChPQkpDT1BZKSAtTyBiaW5hcnkgLS1vbmx5LXNlY3Rpb249Lm5v dGUgJChCQVNFRElSKS94ZW4tc3ltcyAkQC5iaW4KKwkkKE9CSkNPUFkpIC1JIGJpbmFyeSAtTyBl bGY2NC14ODYtNjQgLUIgaTM4Njp4ODYtNjQgXAorCQktLXJlbmFtZS1zZWN0aW9uPS5kYXRhPS5u b3RlIC1TICRALmJpbiAkQAorCXJtIC1mICRALmJpbgorCiBFRklfTERGTEFHUyA9ICQocGF0c3Vi c3QgLW0lLC1taTM4NnBlcCwkKExERkxBR1MpKSAtLXN1YnN5c3RlbT0xMAogRUZJX0xERkxBR1Mg Kz0gLS1pbWFnZS1iYXNlPSQoMSkgLS1zdGFjaz0wLDAgLS1oZWFwPTAsMCAtLXN0cmlwLWRlYnVn CiBFRklfTERGTEFHUyArPSAtLXNlY3Rpb24tYWxpZ25tZW50PTB4MjAwMDAwIC0tZmlsZS1hbGln bm1lbnQ9MHgyMApAQCAtMTQyLDYgKzE1NSwxMyBAQCAkKFRBUkdFVCkuZWZpOiBWSVJUX0JBU0Ug PSAweCQoc2hlbGwgJChOTSkgZWZpL3JlbG9jcy1kdW1teS5vIHwgc2VkIC1uICdzLCBBIFZJUgog JChUQVJHRVQpLmVmaTogQUxUX0JBU0UgPSAweCQoc2hlbGwgJChOTSkgZWZpL3JlbG9jcy1kdW1t eS5vIHwgc2VkIC1uICdzLCBBIEFMVF9TVEFSVCQkLCxwJykKICMgRG9uJ3QgdXNlICQod2lsZGNh cmQgLi4uKSBoZXJlIC0gYXQgbGVhc3QgbWFrZSAzLjgwIGV4cGFuZHMgdGhpcyB0b28gZWFybHkh CiAkKFRBUkdFVCkuZWZpOiBndWFyZCA9ICQoaWYgJChzaGVsbCBlY2hvIGVmaS9kaXMqIHwgZ3Jl cCBkaXNhYmxlZCksOikKK2lmbmVxICgkKGJ1aWxkX2lkX2xpbmtlciksKQorJChUQVJHRVQpLmVm aTogbm90ZXMubworbm90ZXNfZmlsZSA6PSBub3Rlcy5vCitlbHNlCitub3Rlc19maWxlIDo9Citl bmRpZgorCiAkKFRBUkdFVCkuZWZpOiBwcmVsaW5rLWVmaS5vIGVmaS5sZHMgZWZpL3JlbG9jcy1k dW1teS5vICQoQkFTRURJUikvY29tbW9uL3N5bWJvbHMtZHVtbXkubyBlZmkvbWtyZWxvYwogCSQo Zm9yZWFjaCBiYXNlLCAkKFZJUlRfQkFTRSkgJChBTFRfQkFTRSksIFwKIAkgICAgICAgICAgJChn dWFyZCkgJChMRCkgJChjYWxsIEVGSV9MREZMQUdTLCQoYmFzZSkpIC1UIGVmaS5sZHMgLU4gJDwg ZWZpL3JlbG9jcy1kdW1teS5vIFwKQEAgLTE1OCw3ICsxNzgsNyBAQCAkKFRBUkdFVCkuZWZpOiBw cmVsaW5rLWVmaS5vIGVmaS5sZHMgZWZpL3JlbG9jcy1kdW1teS5vICQoQkFTRURJUikvY29tbW9u L3N5bWJvbAogCQl8ICQoZ3VhcmQpICQoQkFTRURJUikvdG9vbHMvc3ltYm9scyAkKGFsbF9zeW1i b2xzKSAtLXN5c3YgLS1zb3J0ID4kKEBEKS8uJChARikuMXMuUwogCSQoZ3VhcmQpICQoTUFLRSkg LWYgJChCQVNFRElSKS9SdWxlcy5tayAkKEBEKS8uJChARikuMXIubyAkKEBEKS8uJChARikuMXMu bwogCSQoZ3VhcmQpICQoTEQpICQoY2FsbCBFRklfTERGTEFHUywkKFZJUlRfQkFTRSkpIC1UIGVm aS5sZHMgLU4gJDwgXAotCSAgICAgICAgICAgICAgICAkKEBEKS8uJChARikuMXIubyAkKEBEKS8u JChARikuMXMubyAtbyAkQAorCSAgICAgICAgICAgICAgICAkKEBEKS8uJChARikuMXIubyAkKEBE KS8uJChARikuMXMubyAkKG5vdGVzX2ZpbGUpIC1vICRACiAJaWYgJChndWFyZCkgZmFsc2U7IHRo ZW4gcm0gLWYgJEA7IGVjaG8gJ0VGSSBzdXBwb3J0IGRpc2FibGVkJzsgZmkKIAlybSAtZiAkKEBE KS8uJChARikuWzAtOV0qCiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9ib290L21rZWxmMzIu YyBiL3hlbi9hcmNoL3g4Ni9ib290L21rZWxmMzIuYwppbmRleCA5OTNhN2VlLi5mY2UxNzE2IDEw MDY0NAotLS0gYS94ZW4vYXJjaC94ODYvYm9vdC9ta2VsZjMyLmMKKysrIGIveGVuL2FyY2gveDg2 L2Jvb3QvbWtlbGYzMi5jCkBAIC00NSw5ICs0NSw5IEBAIHN0YXRpYyBFbGYzMl9FaGRyIG91dF9l aGRyID0gewogICAgIDAsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyog ZV9mbGFncyAqLwogICAgIHNpemVvZihFbGYzMl9FaGRyKSwgICAgICAgICAgICAgICAgICAgICAg LyogZV9laHNpemUgKi8KICAgICBzaXplb2YoRWxmMzJfUGhkciksICAgICAgICAgICAgICAgICAg ICAgIC8qIGVfcGhlbnRzaXplICovCi0gICAgMSwgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAvKiBlX3BobnVtICovCisgICAgMSwgIC8qIG1vZGlmeSBiYXNlZCBvbiBudW1f cGhkcnMgKi8gICAgICAvKiBlX3BobnVtICovCiAgICAgc2l6ZW9mKEVsZjMyX1NoZHIpLCAgICAg ICAgICAgICAgICAgICAgICAvKiBlX3NoZW50c2l6ZSAqLwotICAgIDMsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogZV9zaG51bSAqLworICAgIDMsICAvKiBtb2RpZnkg YmFzZWQgb24gbnVtX3BoZHJzICovICAgICAgLyogZV9zaG51bSAqLwogICAgIDIgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogZV9zaHN0cm5keCAqLwogfTsKIApAQCAt NjEsOCArNjEsMjAgQEAgc3RhdGljIEVsZjMyX1BoZHIgb3V0X3BoZHIgPSB7CiAgICAgUEZfUnxQ Rl9XfFBGX1gsICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwX2ZsYWdzICovCiAgICAgNjQg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBwX2FsaWduICovCiB9Owor c3RhdGljIEVsZjMyX1BoZHIgbm90ZV9waGRyID0geworICAgIFBUX05PVEUsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgLyogcF90eXBlICovCisgICAgRFlOQU1JQ0FMTFlfRklMTEVE LCAgICAgICAgICAgICAgICAgICAgICAvKiBwX29mZnNldCAqLworICAgIERZTkFNSUNBTExZX0ZJ TExFRCwgICAgICAgICAgICAgICAgICAgICAgLyogcF92YWRkciAqLworICAgIERZTkFNSUNBTExZ X0ZJTExFRCwgICAgICAgICAgICAgICAgICAgICAgLyogcF9wYWRkciAqLworICAgIERZTkFNSUNB TExZX0ZJTExFRCwgICAgICAgICAgICAgICAgICAgICAgLyogcF9maWxlc3ogKi8KKyAgICBEWU5B TUlDQUxMWV9GSUxMRUQsICAgICAgICAgICAgICAgICAgICAgIC8qIHBfbWVtc3ogKi8KKyAgICBQ Rl9SLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBfZmxhZ3MgKi8KKyAg ICA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIHBfYWxpZ24gKi8K K307CiAKIHN0YXRpYyB1OCBvdXRfc2hzdHJ0YWJbXSA9ICJcMC50ZXh0XDAuc2hzdHJ0YWIiOwor LyogSWYgbnVtX3BoZHJzID49IDIsIHdlIG5lZWQgdG8gdGFjayB0aGUgLm5vdGUuICovCitzdGF0 aWMgdTggb3V0X3Noc3RydGFiX2V4dHJhW10gPSAiLm5vdGVcMCI7CiAKIHN0YXRpYyBFbGYzMl9T aGRyIG91dF9zaGRyW10gPSB7CiAgICAgeyAwIH0sCkBAIC05MCw2ICsxMDIsMjMgQEAgc3RhdGlj IEVsZjMyX1NoZHIgb3V0X3NoZHJbXSA9IHsKICAgICB9CiB9OwogCisvKgorICogVGhlIDE3IHBv aW50cyB0byB0aGUgJy5ub3RlJyBpbiB0aGUgb3V0X3Noc3RydGFiIGFuZCBvdXRfc2hzdHJ0YWJf ZXh0cmEKKyAqIGxhaWQgb3V0IGluIHRoZSBmaWxlLgorICovCitzdGF0aWMgRWxmMzJfU2hkciBv dXRfc2hkcl9ub3RlID0geworICAgICAgMTcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgLyogc2hfbmFtZSAqLworICAgICAgU0hUX05PVEUsICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgLyogc2hfdHlwZSAqLworICAgICAgMCwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogc2hfZmxhZ3MgKi8KKyAgICAgIERZTkFNSUNBTExZX0ZJTExFRCwgICAg ICAgICAgICAgICAgICAgIC8qIHNoX2FkZHIgKi8KKyAgICAgIERZTkFNSUNBTExZX0ZJTExFRCwg ICAgICAgICAgICAgICAgICAgIC8qIHNoX29mZnNldCAqLworICAgICAgRFlOQU1JQ0FMTFlfRklM TEVELCAgICAgICAgICAgICAgICAgICAgLyogc2hfc2l6ZSAqLworICAgICAgMCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc2hfbGluayAqLworICAgICAgMCwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc2hfaW5mbyAqLworICAgICAgNCwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogc2hfYWRkcmFsaWduICovCisgICAg ICAwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBzaF9lbnRzaXplICov Cit9OworCiAvKiBTb21lIHN5c3RlbSBoZWFkZXIgZmlsZXMgZGVmaW5lIHRoZXNlIG1hY3JvcyBh bmQgcG9sbHV0ZSBvdXIgbmFtZXNwYWNlLiAqLwogI3VuZGVmIHN3YXAxNgogI3VuZGVmIHN3YXAz MgpAQCAtMjI4LDIxICsyNTcsMjIgQEAgc3RhdGljIHZvaWQgZG9fcmVhZChpbnQgZmQsIHZvaWQg KmRhdGEsIGludCBsZW4pCiBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiB7CiAgICAg dTY0ICAgICAgICBmaW5hbF9leGVjX2FkZHI7Ci0gICAgdTMyICAgICAgICBsb2FkYmFzZSwgZGF0 X3NpeiwgbWVtX3NpejsKKyAgICB1MzIgICAgICAgIGxvYWRiYXNlLCBkYXRfc2l6LCBtZW1fc2l6 LCBub3RlX2Jhc2UsIG5vdGVfc3osIG9mZnNldDsKICAgICBjaGFyICAgICAgKmluaW1hZ2UsICpv dXRpbWFnZTsKICAgICBpbnQgICAgICAgIGluZmQsIG91dGZkOwogICAgIGNoYXIgICAgICAgYnVm ZmVyWzEwMjRdOwogICAgIGludCAgICAgICAgYnl0ZXMsIHRvZG8sIGk7CisgICAgaW50ICAgICAg ICBudW1fcGhkcnMgPSAxOwogCiAgICAgRWxmMzJfRWhkciBpbjMyX2VoZHI7CiAKICAgICBFbGY2 NF9FaGRyIGluNjRfZWhkcjsKICAgICBFbGY2NF9QaGRyIGluNjRfcGhkcjsKIAotICAgIGlmICgg YXJnYyAhPSA1ICkKKyAgICBpZiAoIGFyZ2MgPCA1ICkKICAgICB7CiAgICAgICAgIGZwcmludGYo c3RkZXJyLCAiVXNhZ2U6IG1rZWxmMzIgPGluLWltYWdlPiA8b3V0LWltYWdlPiAiCi0gICAgICAg ICAgICAgICAgIjxsb2FkLWJhc2U+IDxmaW5hbC1leGVjLWFkZHI+XG4iKTsKKyAgICAgICAgICAg ICAgICAiPGxvYWQtYmFzZT4gPGZpbmFsLWV4ZWMtYWRkcj4gPG51bWJlciBvZiBwcm9ncmFtIGhl YWRlcnM+IFstLW5vdGVzXVxuIik7CiAgICAgICAgIHJldHVybiAxOwogICAgIH0KIApAQCAtMjUw LDYgKzI4MCw4IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKICAgICBvdXRpbWFn ZSA9IGFyZ3ZbMl07CiAgICAgbG9hZGJhc2UgPSBzdHJ0b3VsKGFyZ3ZbM10sIE5VTEwsIDE2KTsK ICAgICBmaW5hbF9leGVjX2FkZHIgPSBzdHJ0b3VsbChhcmd2WzRdLCBOVUxMLCAxNik7CisgICAg aWYgKCBhcmd2WzVdICYmICghc3RyY21wKGFyZ3ZbNV0sICItLW5vdGVzIikpICkKKyAgICAgICAg bnVtX3BoZHJzID0gMjsKIAogICAgIGluZmQgPSBvcGVuKGluaW1hZ2UsIE9fUkRPTkxZKTsKICAg ICBpZiAoIGluZmQgPT0gLTEgKQpAQCAtMjg1LDExICszMTcsMTAgQEAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogICAgICAgICAgICAgICAgIChpbnQpaW42NF9laGRyLmVfcGhlbnRz aXplLCAoaW50KXNpemVvZihpbjY0X3BoZHIpKTsKICAgICAgICAgcmV0dXJuIDE7CiAgICAgfQot Ci0gICAgaWYgKCBpbjY0X2VoZHIuZV9waG51bSAhPSAxICkKKyAgICBpZiAoIGluNjRfZWhkci5l X3BobnVtICE9IG51bV9waGRycyApCiAgICAgewotICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkV4 cGVjdCBwcmVjaXNseSAxIHByb2dyYW0gaGVhZGVyOyBmb3VuZCAlZC5cbiIsCi0gICAgICAgICAg ICAgICAgKGludClpbjY0X2VoZHIuZV9waG51bSk7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAi RXhwZWN0IHByZWNpc2x5ICVkIHByb2dyYW0gaGVhZGVyOyBmb3VuZCAlZC5cbiIsCisgICAgICAg ICAgICAgICAgbnVtX3BoZHJzLCAoaW50KWluNjRfZWhkci5lX3BobnVtKTsKICAgICAgICAgcmV0 dXJuIDE7CiAgICAgfQogCkBAIC0zMDQsNiArMzM1LDMyIEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICoqYXJndikKICAgICAvKm1lbV9zaXogPSAodTMyKWluNjRfcGhkci5wX21lbXN6OyovCiAg ICAgbWVtX3NpeiA9ICh1MzIpKGZpbmFsX2V4ZWNfYWRkciAtIGluNjRfcGhkci5wX3ZhZGRyKTsK IAorICAgIG5vdGVfc3ogPSBub3RlX2Jhc2UgPSBvZmZzZXQgPSAwOworICAgIGlmICggbnVtX3Bo ZHJzID4gMSApCisgICAgeworICAgICAgICBvZmZzZXQgPSBpbjY0X3BoZHIucF9vZmZzZXQ7Cisg ICAgICAgIG5vdGVfYmFzZSA9IGluNjRfcGhkci5wX3ZhZGRyOworCisgICAgICAgICh2b2lkKWxz ZWVrKGluZmQsIGluNjRfZWhkci5lX3Bob2ZmK3NpemVvZihpbjY0X3BoZHIpLCBTRUVLX1NFVCk7 CisgICAgICAgIGRvX3JlYWQoaW5mZCwgJmluNjRfcGhkciwgc2l6ZW9mKGluNjRfcGhkcikpOwor ICAgICAgICBlbmRpYW5hZGp1c3RfcGhkcjY0KCZpbjY0X3BoZHIpOworCisgICAgICAgICh2b2lk KWxzZWVrKGluZmQsIG9mZnNldCwgU0VFS19TRVQpOworCisgICAgICAgIG5vdGVfc3ogPSBpbjY0 X3BoZHIucF9tZW1zejsKKyAgICAgICAgbm90ZV9iYXNlID0gaW42NF9waGRyLnBfdmFkZHIgLSBu b3RlX2Jhc2U7CisKKyAgICAgICAgaWYgKCBpbjY0X3BoZHIucF9vZmZzZXQgPiBkYXRfc2l6IHx8 IG9mZnNldCA+IGluNjRfcGhkci5wX29mZnNldCApCisgICAgICAgIHsKKyAgICAgICAgICAgIGZw cmludGYoc3RkZXJyLCAiRXhwZWN0ZWQgLm5vdGUgc2VjdGlvbiB3aXRoaW4gLnRleHQgc2VjdGlv biFcbiIgXAorICAgICAgICAgICAgICAgICAgICAiT2Zmc2V0ICVsZCBub3Qgd2l0aGluICVkIVxu IiwKKyAgICAgICAgICAgICAgICAgICAgaW42NF9waGRyLnBfb2Zmc2V0LCBkYXRfc2l6KTsKKyAg ICAgICAgICAgIHJldHVybiAxOworICAgICAgICB9CisgICAgICAgIC8qIEdldHMgdXMgdGhlIGFi c29sdXRlIG9mZnNldCB3aXRoaW4gdGhlIC50ZXh0IHNlY3Rpb24uICovCisgICAgICAgIG9mZnNl dCA9IGluNjRfcGhkci5wX29mZnNldCAtIG9mZnNldDsKKyAgICB9CisKICAgICAvKgogICAgICAq IEVuZCB0aGUgaW1hZ2Ugb24gYSBwYWdlIGJvdW5kYXJ5LiBUaGlzIGdldHMgcm91bmQgYWxpZ25t ZW50IGJ1Z3MKICAgICAgKiBpbiB0aGUgYm9vdC0gb3IgY2hhaW4tbG9hZGVyIChlLmcuLCBrZXhl YyBvbiB0aGUgWGVub0Jvb3QgQ0QpLgpAQCAtMzIyLDYgKzM3OSwzMSBAQCBpbnQgbWFpbihpbnQg YXJnYywgY2hhciAqKmFyZ3YpCiAgICAgb3V0X3NoZHJbMV0uc2hfc2l6ZSAgID0gZGF0X3NpejsK ICAgICBvdXRfc2hkclsyXS5zaF9vZmZzZXQgPSBSQVdfT0ZGU0VUICsgZGF0X3NpeiArIHNpemVv ZihvdXRfc2hkcik7CiAKKyAgICBpZiAoIG51bV9waGRycyA+IDEgKQorICAgIHsKKyAgICAgICAg LyogV2UgaGF2ZSB0d28gb2YgdGhlbSEgKi8KKyAgICAgICAgb3V0X2VoZHIuZV9waG51bSA9IG51 bV9waGRyczsKKyAgICAgICAgLyogRXh0cmEgLm5vdGUgc2VjdGlvbi4gKi8KKyAgICAgICAgb3V0 X2VoZHIuZV9zaG51bSsrOworCisgICAgICAgIC8qIEZpbGwgb3V0IHRoZSBQVF9OT1RFIHByb2dy YW0gaGVhZGVyLiAqLworICAgICAgICBub3RlX3BoZHIucF92YWRkciAgID0gbm90ZV9iYXNlOwor ICAgICAgICBub3RlX3BoZHIucF9wYWRkciAgID0gbm90ZV9iYXNlOworICAgICAgICBub3RlX3Bo ZHIucF9maWxlc3ogID0gbm90ZV9zejsKKyAgICAgICAgbm90ZV9waGRyLnBfbWVtc3ogICA9IG5v dGVfc3o7CisgICAgICAgIG5vdGVfcGhkci5wX29mZnNldCAgPSBvZmZzZXQ7CisKKyAgICAgICAg LyogVGFjayBvbiB0aGUgLm5vdGVcMCAqLworICAgICAgICBvdXRfc2hkclsyXS5zaF9zaXplICs9 IHNpemVvZihvdXRfc2hzdHJ0YWJfZXh0cmEpOworICAgICAgICAvKiBBbmQgbW92ZSBpdCBwYXN0 IHRoZSAubm90ZSBzZWN0aW9uLiAqLworICAgICAgICBvdXRfc2hkclsyXS5zaF9vZmZzZXQgKz0g c2l6ZW9mKG91dF9zaGRyX25vdGUpOworCisgICAgICAgIC8qIEZpbGwgb3V0IHRoZSAubm90ZSBz ZWN0aW9uLiAqLworICAgICAgICBvdXRfc2hkcl9ub3RlLnNoX3NpemUgPSBub3RlX3N6OworICAg ICAgICBvdXRfc2hkcl9ub3RlLnNoX2FkZHIgPSBub3RlX2Jhc2U7CisgICAgICAgIG91dF9zaGRy X25vdGUuc2hfb2Zmc2V0ID0gUkFXX09GRlNFVCArIG9mZnNldDsKKyAgICB9CisKICAgICBvdXRm ZCA9IG9wZW4ob3V0aW1hZ2UsIE9fV1JPTkxZfE9fQ1JFQVR8T19UUlVOQywgMDc3NSk7CiAgICAg aWYgKCBvdXRmZCA9PSAtMSApCiAgICAgewpAQCAtMzM1LDggKzQxNywxNCBAQCBpbnQgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCiAKICAgICBlbmRpYW5hZGp1c3RfcGhkcjMyKCZvdXRfcGhk cik7CiAgICAgZG9fd3JpdGUob3V0ZmQsICZvdXRfcGhkciwgc2l6ZW9mKG91dF9waGRyKSk7Ci0g ICAgCi0gICAgaWYgKCAoYnl0ZXMgPSBSQVdfT0ZGU0VUIC0gc2l6ZW9mKG91dF9laGRyKSAtIHNp emVvZihvdXRfcGhkcikpIDwgMCApCisKKyAgICBpZiAoIG51bV9waGRycyA+IDEgKQorICAgIHsK KyAgICAgICAgZW5kaWFuYWRqdXN0X3BoZHIzMigmbm90ZV9waGRyKTsKKyAgICAgICAgZG9fd3Jp dGUob3V0ZmQsICZub3RlX3BoZHIsIHNpemVvZihub3RlX3BoZHIpKTsKKyAgICB9CisKKyAgICBp ZiAoIChieXRlcyA9IFJBV19PRkZTRVQgLSBzaXplb2Yob3V0X2VoZHIpIC0gKG51bV9waGRycyAq IHNpemVvZihvdXRfcGhkcikpICkgPCAwICkKICAgICB7CiAgICAgICAgIGZwcmludGYoc3RkZXJy LCAiSGVhZGVyIG92ZXJmbG93LlxuIik7CiAgICAgICAgIHJldHVybiAxOwpAQCAtMzU1LDkgKzQ0 MywyMiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAgICAgICAgIGVuZGlhbmFk anVzdF9zaGRyMzIoJm91dF9zaGRyW2ldKTsKICAgICBkb193cml0ZShvdXRmZCwgJm91dF9zaGRy WzBdLCBzaXplb2Yob3V0X3NoZHIpKTsKIAotICAgIGRvX3dyaXRlKG91dGZkLCBvdXRfc2hzdHJ0 YWIsIHNpemVvZihvdXRfc2hzdHJ0YWIpKTsKLSAgICBkb193cml0ZShvdXRmZCwgYnVmZmVyLCA0 LSgoc2l6ZW9mKG91dF9zaHN0cnRhYikrZGF0X3NpeikmMykpOwotCisgICAgaWYgKCBudW1fcGhk cnMgPiAxICkKKyAgICB7CisgICAgICAgIGVuZGlhbmFkanVzdF9zaGRyMzIoJm91dF9zaGRyX25v dGUpOworICAgICAgICAvKiBBcHBlbmQgdGhlIC5ub3RlIHNlY3Rpb24uICovCisgICAgICAgIGRv X3dyaXRlKG91dGZkLCAmb3V0X3NoZHJfbm90ZSwgc2l6ZW9mKG91dF9zaGRyX25vdGUpKTsKKyAg ICAgICAgLyogVGhlIG5vcm1hbCBzdHJpbmdzIC0gLnRleHRcMC4uICovCisgICAgICAgIGRvX3dy aXRlKG91dGZkLCBvdXRfc2hzdHJ0YWIsIHNpemVvZihvdXRfc2hzdHJ0YWIpKTsKKyAgICAgICAg LyogT3VyIC5ub3RlICovCisgICAgICAgIGRvX3dyaXRlKG91dGZkLCBvdXRfc2hzdHJ0YWJfZXh0 cmEsIHNpemVvZihvdXRfc2hzdHJ0YWJfZXh0cmEpKTsKKyAgICAgICAgZG9fd3JpdGUob3V0ZmQs IGJ1ZmZlciwgNC0oKHNpemVvZihvdXRfc2hzdHJ0YWIpK3NpemVvZihvdXRfc2hzdHJ0YWJfZXh0 cmEpK2RhdF9zaXopJjMpKTsKKyAgICB9CisgICAgZWxzZQorICAgIHsKKyAgICAgICAgZG9fd3Jp dGUob3V0ZmQsIG91dF9zaHN0cnRhYiwgc2l6ZW9mKG91dF9zaHN0cnRhYikpOworICAgICAgICBk b193cml0ZShvdXRmZCwgYnVmZmVyLCA0LSgoc2l6ZW9mKG91dF9zaHN0cnRhYikrZGF0X3Npeikm MykpOworICAgIH0KICAgICBjbG9zZShpbmZkKTsKICAgICBjbG9zZShvdXRmZCk7CiAKZGlmZiAt LWdpdCBhL3hlbi9hcmNoL3g4Ni9lZmkvTWFrZWZpbGUgYi94ZW4vYXJjaC94ODYvZWZpL01ha2Vm aWxlCmluZGV4IDUwOTk0MzAuLmE2ZGFlNGMgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni9lZmkv TWFrZWZpbGUKKysrIGIveGVuL2FyY2gveDg2L2VmaS9NYWtlZmlsZQpAQCAtNiw3ICs2LDcgQEAg Y3JlYXRlID0gdGVzdCAtZSAkKDEpIHx8IHRvdWNoIC10IDE5OTkwMTAxMDAwMCAkKDEpCiAKIGVm aSA6PSB5JChzaGVsbCBybSAtZiBkaXNhYmxlZCkKIGVmaSA6PSAkKGlmICQoZWZpKSwkKHNoZWxs ICQoQ0MpICQoZmlsdGVyLW91dCAkKENGTEFHUy15KSAuJS5kLCQoQ0ZMQUdTKSkgLWMgY2hlY2su YyAyPmRpc2FibGVkICYmIGVjaG8geSkpCi1lZmkgOj0gJChpZiAkKGVmaSksJChzaGVsbCAkKExE KSAtbWkzODZwZXAgLS1zdWJzeXN0ZW09MTAgLW8gY2hlY2suZWZpIGNoZWNrLm8gMj5kaXNhYmxl ZCAmJiBlY2hvIHkpKQorZWZpIDo9ICQoaWYgJChlZmkpLCQoc2hlbGwgJChMRF9FRkkpIC1taTM4 NnBlcCAtLXN1YnN5c3RlbT0xMCAtbyBjaGVjay5lZmkgY2hlY2subyAyPmRpc2FibGVkICYmIGVj aG8geSkpCiBlZmkgOj0gJChpZiAkKGVmaSksJChzaGVsbCBybSBkaXNhYmxlZCl5LCQoc2hlbGwg JChjYWxsIGNyZWF0ZSxib290LmluaXQubyk7ICQoY2FsbCBjcmVhdGUscnVudGltZS5vKSkpCiAK IGV4dHJhLSQoZWZpKSArPSBib290LmluaXQubyByZWxvY3MtZHVtbXkubyBydW50aW1lLm8gY29t cGF0Lm8KZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ZW4ubGRzLlMgYi94ZW4vYXJjaC94ODYv eGVuLmxkcy5TCmluZGV4IDVlYjgyNWUuLjg3Mjk3ZDAgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4 Ni94ZW4ubGRzLlMKKysrIGIveGVuL2FyY2gveDg2L3hlbi5sZHMuUwpAQCAtMzEsNiArMzEsOSBA QCBPVVRQVVRfQVJDSChpMzg2Ong4Ni02NCkKIFBIRFJTCiB7CiAgIHRleHQgUFRfTE9BRCA7Cisj aWYgZGVmaW5lZChCVUlMRF9JRCkgJiYgIWRlZmluZWQoRUZJKQorICBub3RlIFBUX05PVEUgOwor I2VuZGlmCiB9CiBTRUNUSU9OUwogewpAQCAtNzksNiArODIsMTcgQEAgU0VDVElPTlMKICAgICAg ICAqKC5yb2RhdGEpCiAgICAgICAgKigucm9kYXRhLiopCiAKKyNpZiBkZWZpbmVkKEJVSUxEX0lE KSAmJiBkZWZpbmVkKEVGSSkKKy8qCisgKiBObyBtZWNoYW5pc20gdG8gcHV0IGFuIFBUX05PVEUg aW4gdGhlIEVGSSBmaWxlIC0gc28gcHV0CisgKiBpdCBpbiAucm9kYXRhIHNlY3Rpb24uIChub3Rl cy5vIHN1cHBsaWVzIHVzIHdpdGggLm5vdGUpLgorICovCisgICAgICAgLiA9IEFMSUdOKDQpOwor ICAgICAgIF9fbm90ZV9nbnVfYnVpbGRfaWRfc3RhcnQgPSAuOworICAgICAgICooLm5vdGUpCisg ICAgICAgKigubm90ZS4qKQorICAgICAgIF9fbm90ZV9nbnVfYnVpbGRfaWRfZW5kID0gLjsKKyNl bmRpZgogICAgICAgIC4gPSBBTElHTig4KTsKICAgICAgICAvKiBFeGNlcHRpb24gdGFibGUgKi8K ICAgICAgICBfX3N0YXJ0X19fZXhfdGFibGUgPSAuOwpAQCAtOTksNiArMTEzLDE2IEBAIFNFQ1RJ T05TCiAgICAgICAgX2Vyb2RhdGEgPSAuOwogICB9IDp0ZXh0CiAKKyNpZiBkZWZpbmVkKEJVSUxE X0lEKSAmJiAhZGVmaW5lZChFRkkpCisgIC4gPSBBTElHTig0KTsKKyAgLm5vdGUgOiB7CisgICAg ICAgX19ub3RlX2dudV9idWlsZF9pZF9zdGFydCA9IC47CisgICAgICAgKigubm90ZSkKKyAgICAg ICAqKC5ub3RlLiopCisgICAgICAgX19ub3RlX2dudV9idWlsZF9pZF9lbmQgPSAuOworICB9IDpu b3RlIDp0ZXh0CisjZW5kaWYKKwogI2lmZGVmIEVGSQogICAuID0gQUxJR04oTUIoMikpOwogI2Vs c2UKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vdmVyc2lvbi5jIGIveGVuL2NvbW1vbi92ZXJzaW9u LmMKaW5kZXggZmM5YmY0Mi4uMzNhOTMwYSAxMDA2NDQKLS0tIGEveGVuL2NvbW1vbi92ZXJzaW9u LmMKKysrIGIveGVuL2NvbW1vbi92ZXJzaW9uLmMKQEAgLTEsNCArMSw5IEBACiAjaW5jbHVkZSA8 eGVuL2NvbXBpbGUuaD4KKyNpbmNsdWRlIDx4ZW4vaW5pdC5oPgorI2luY2x1ZGUgPHhlbi9lcnJu by5oPgorI2luY2x1ZGUgPHhlbi9zdHJpbmcuaD4KKyNpbmNsdWRlIDx4ZW4vdHlwZXMuaD4KKyNp bmNsdWRlIDx4ZW4vZWxmLmg+CiAjaW5jbHVkZSA8eGVuL3ZlcnNpb24uaD4KIAogY29uc3QgY2hh ciAqeGVuX2NvbXBpbGVfZGF0ZSh2b2lkKQpAQCAtNjEsNiArNjYsNTIgQEAgY29uc3QgY2hhciAq eGVuX2Rlbnkodm9pZCkKICAgICByZXR1cm4gIjxkZW5pZWQ+IjsKIH0KIAorc3RhdGljIGNvbnN0 IHZvaWQgKmJ1aWxkX2lkX3A7CitzdGF0aWMgdW5zaWduZWQgaW50IGJ1aWxkX2lkX2xlbjsKKwor aW50IHhlbl9idWlsZF9pZChjb25zdCB2b2lkICoqcCwgdW5zaWduZWQgaW50ICpsZW4pCit7Cisg ICAgaWYgKCAhYnVpbGRfaWRfbGVuICkKKyAgICAgICAgcmV0dXJuIC1FTk9EQVRBOworCisgICAg KmxlbiA9IGJ1aWxkX2lkX2xlbjsKKyAgICAqcCA9IGJ1aWxkX2lkX3A7CisKKyAgICByZXR1cm4g MDsKK30KKworI2lmZGVmIEJVSUxEX0lECisjZGVmaW5lIE5UX0dOVV9CVUlMRF9JRCAzCisvKiBE ZWZpbmVkIGluIGxpbmtlciBzY3JpcHQuICovCitleHRlcm4gY29uc3QgRWxmX05vdGUgX19ub3Rl X2dudV9idWlsZF9pZF9zdGFydFtdLCBfX25vdGVfZ251X2J1aWxkX2lkX2VuZFtdOworCitzdGF0 aWMgaW50IF9faW5pdCB4ZW5fYnVpbGRfaW5pdCh2b2lkKQoreworICAgIGNvbnN0IEVsZl9Ob3Rl ICpuID0gX19ub3RlX2dudV9idWlsZF9pZF9zdGFydDsKKworICAgIC8qIC0tYnVpbGQtaWQgaW52 b2tlZCB3aXRoIHdyb25nIHBhcmFtZXRlcnMuICovCisgICAgaWYgKCBfX25vdGVfZ251X2J1aWxk X2lkX2VuZCA8PSAmblswXSApCisgICAgICAgIHJldHVybiAtRU5PREFUQTsKKworICAgIC8qIENo ZWNrIGZvciBmdWxsIE5vdGUgaGVhZGVyLiAqLworICAgIGlmICggJm5bMV0gPiBfX25vdGVfZ251 X2J1aWxkX2lkX2VuZCApCisgICAgICAgIHJldHVybiAtRU5PREFUQTs7CisKKyAgICAvKiBDaGVj ayBpZiB3ZSByZWFsbHkgaGF2ZSBhIGJ1aWxkLWlkLiAqLworICAgIGlmICggTlRfR05VX0JVSUxE X0lEICE9IG4tPnR5cGUgKQorICAgICAgICByZXR1cm4gLUVOT0RBVEE7CisKKyAgICAvKiBTYW5p dHkgY2hlY2ssIG5hbWUgc2hvdWxkIGJlICJHTlUiIGZvciBsZC1nZW5lcmF0ZWQgYnVpbGQtaWQu ICovCisgICAgaWYgKCBzdHJuY21wKEVMRk5PVEVfTkFNRShuKSwgIkdOVSIsIG4tPm5hbWVzeikg IT0gMCApCisgICAgICAgIHJldHVybiAtRU5PREFUQTsKKworICAgIGJ1aWxkX2lkX2xlbiA9IG4t PmRlc2NzejsKKyAgICBidWlsZF9pZF9wID0gRUxGTk9URV9ERVNDKG4pOworCisgICAgcmV0dXJu IDA7Cit9CitfX2luaXRjYWxsKHhlbl9idWlsZF9pbml0KTsKKyNlbmRpZgogLyoKICAqIExvY2Fs IHZhcmlhYmxlczoKICAqIG1vZGU6IEMKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3hlbi92ZXJz aW9uLmggYi94ZW4vaW5jbHVkZS94ZW4vdmVyc2lvbi5oCmluZGV4IDIwMTVjMGIuLjQwMDE2MGYg MTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3hlbi92ZXJzaW9uLmgKKysrIGIveGVuL2luY2x1ZGUv eGVuL3ZlcnNpb24uaApAQCAtMTMsNSArMTMsNiBAQCBjb25zdCBjaGFyICp4ZW5fZXh0cmFfdmVy c2lvbih2b2lkKTsKIGNvbnN0IGNoYXIgKnhlbl9jaGFuZ2VzZXQodm9pZCk7CiBjb25zdCBjaGFy ICp4ZW5fYmFubmVyKHZvaWQpOwogY29uc3QgY2hhciAqeGVuX2Rlbnkodm9pZCk7CitpbnQgeGVu X2J1aWxkX2lkKGNvbnN0IHZvaWQgKipwLCB1bnNpZ25lZCBpbnQgKmxlbik7CiAKICNlbmRpZiAv KiBfX1hFTl9WRVJTSU9OX0hfXyAqLwotLSAKMi40LjMKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=