From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: [PATCH v4 04/34] HYPERCALL_version_op. New hypercall mirroring XENVER_ but sane. Date: Fri, 18 Mar 2016 15:22:24 -0400 Message-ID: <20160318192224.GA11924@char.us.oracle.com> References: <1458064616-23101-1-git-send-email-konrad.wilk@oracle.com> <1458064616-23101-5-git-send-email-konrad.wilk@oracle.com> <56E85478.5070408@citrix.com> <20160315201906.GA6211@localhost.localdomain> <20160317013852.GA22460@char.us.oracle.com> <56EC046302000078000DE54F@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.bemta14.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1ah001-0003PC-GR for xen-devel@lists.xenproject.org; Fri, 18 Mar 2016 19:23:53 +0000 Content-Disposition: inline In-Reply-To: <56EC046302000078000DE54F@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: Wei Liu , Stefano Stabellini , Andrew Cooper , Ian Jackson , mpohlack@amazon.de, ross.lagerwall@citrix.com, Julien Grall , Stefano Stabellini , xen-devel@lists.xenproject.org, Daniel De Graaf , Keir Fraser , sasha.levin@oracle.com List-Id: xen-devel@lists.xenproject.org LiBzbmlwLi4KPiA+ICAtIFZFUlNJT05fT1BfY29tbWFuZGxpbmUsIFZFUlNJT05fT1BfY2hhbmdl c2V0IGFyZSBwcml2aWxlZ2VkLgo+IAo+IEFpdWkgdGhpcyBpcyBubyBkaWZmZXJlbmNlIHRvIHRo ZSBvbGQgb25lIGFueW1vcmUgaWYgd2UgYXNzdW1lCj4gcGF0Y2hlcyBnZXQgY29tbWl0dGVkIGlu IHRoZSBvcmRlciB0aGV5J3JlIGJlaW5nIHByZXNlbnRlZCBpbgo+IHRoaXMgc2VyaWVzLgoKVGhl IG9sZCBvbmUgKFhFTlZFUikgd291bGQgZGlzYWxsb3cgWEVOVkVSX2NtZGxpbmUgZm9yIGd1ZXN0 cy4gVGhlCnJlc3QgYXJlIGFsbG93ZWQuCgouLiBzbmlwLi4KPiA+IEBAIC04Nyw2ICs5NSw2OCBA QCB0eXBlZGVmIHN0cnVjdCB4ZW5fZmVhdHVyZV9pbmZvIHhlbl9mZWF0dXJlX2luZm9fdDsKPiA+ ICAjZGVmaW5lIFhFTlZFUl9jb21tYW5kbGluZSA5Cj4gPiAgdHlwZWRlZiBjaGFyIHhlbl9jb21t YW5kbGluZV90WzEwMjRdOwo+ID4gIAo+ID4gKwo+ID4gKwo+ID4gKy8qCj4gPiArICogVGhlIEhZ UEVSQ0FMTF92ZXJzaW9uX29wIGhhcyBhIHNldCBvZiBzdWItb3BzIHdoaWNoIG1pcnJvciB0aGUK PiA+ICsgKiBzdWItb3BzIG9mIEhZUEVSQ0FMTF94ZW5fdmVyc2lvbi4gSG93ZXZlciB0aGlzIGh5 cGVyY2FsbCBkaWZmZXJzCj4gPiArICogcmFkaWNhbGx5IGZyb20gdGhlIGZvcm1lcjoKPiA+ICsg KiAgLSBJdCByZXR1cm5zIHRoZSBhbW91bnQgb2YgYnl0ZXMgcmV0dXJuZWQuCj4gPiArICogIC0g SXQgd2lsbCByZXR1cm4gLVhFTl9FUEVSTSBpZiB0aGUgZ3Vlc3QgaXMgbm90IHBlcm1pdHRlZC4K PiA+ICsgKiAgLSBJdCB3aWxsIHJldHVybiB0aGUgcmVxdWVzdGVkIGRhdGEgaW4gYXJnLgo+ID4g KyAqICAtIEl0IHJlcXVpcmVzIGFuIHRoaXJkIGFyZ3VtZW50IChsZW4pIGZvciB0aGUgbGVuZ3Ro IG9mIHRoZQo+ID4gKyAqICAgIGFyZy4gTmF0dXJhbGx5IHRoZSBhcmcgaGFzIHRvIGZpdCB0aGUg cmVxdWVzdGVkIGRhdGEgb3RoZXJ3aXNlCj4gPiArICogICAgLVhFTl9FTk9CVUZTIGlzIHJldHVy bmVkLgo+ID4gKyAqCj4gPiArICogSXQgYWxzbyBvZmZlcnMgYW4gbWVjaGFuaXNtIHRvIHByb2Jl IGZvciB0aGUgYW1vdW50IG9mIGJ5dGVzIGFuCj4gPiArICogc3ViLW9wIHdpbGwgcmVxdWlyZS4g SGF2aW5nIHRoZSBhcmcgaGF2ZSBhbiBOVUxMIHBvaW50ZXIgd2lsbAo+IAo+IHMvcG9pbnRlci9o YW5kbGUvCj4gCj4gPiArICogcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWVzdGVkIGZv ciB0aGUgb3BlcmF0aW9uLiBPciBhbgo+ID4gKyAqIG5lZ2F0aXZlIHZhbHVlIGlmIGFuIGVycm9y IGlzIGVuY291bnRlcmVkLgo+ID4gKyAqLwo+ID4gKwo+ID4gK3R5cGVkZWYgdWludDY0X3QgeGVu X3ZlcnNpb25fb3BfdmFsX3Q7Cj4gPiArREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3ZlcnNp b25fb3BfdmFsX3QpOwo+ID4gKwo+ID4gK3R5cGVkZWYgdm9pZCB4ZW5fdmVyc2lvbl9vcF9idWZf dDsKPiA+ICtERUZJTkVfWEVOX0dVRVNUX0hBTkRMRSh4ZW5fdmVyc2lvbl9vcF9idWZfdCk7Cj4g Cj4gQXJlIHRoZXNlIGFjdHVhbGx5IHVzZWZ1bCBmb3IgYW55dGhpbmc/IEFuZCBmb3IgdGhlIHZh cmlvdXMgc3RyaW5ncywKClRoZSB4ZW5fdmVyc2lvbl9vcF92YWxfdCBpcyBkZWZpbml0bHkgdXNl ZCBieSB0aGUgdG9vbHN0YWNrLgoKPiB3b3VsZG4ndCBhICJjaGFyIiBoYW5kbGUgYmUgbW9yZSBu YXR1cmFsPwoKSGVoLiBJdCB3YXMgY2hhcltdIGJlZm9yZSBidXQgQW5kcmV3IGxpa2VkIGl0IGFz IHZvaWQuCgpUaGUgeGVuX3ZlcnNpb25fb3BfYnVmX3QgaXMgbm90IHVzZWQgYnV0IEkgZG8gcmVm ZXJlbmNlIGl0IGJlbG93IGluCmNvbW1lbnQuICBMZXQgbWUgcHV0IHMvYXJnID09IHZlcnNpb25f b3BfYnVmL2FyZyA9PSBjaGFyLyA/CgpMZXQgbWUgZG8gdGhhdC4KCj4gCj4gPiArLyogYXJnID09 IHZlcnNpb25fb3BfdmFsX3QuIEVuY29kZWQgYXMgbWFqb3I6bWlub3IgKDMxLi4xNjoxNS4uMCkg Ki8KPiAKPiBQbGVhc2UgbWFrZSBleHBsaWNpdCB0aGF0IDYzLi4uMzIgYXJlIHplcm8gKG9yIHdo YXRldmVyIHRoZXkgcmVhbGx5Cj4gYXJlKS4KPiAKPiA+ICsjZGVmaW5lIFhFTl9WRVJTSU9OX09Q X3ZlcnNpb24gICAgICAwCj4gPiArCj4gPiArLyogYXJnID09IHZlcnNpb25fb3BfYnVmLiBDb250 YWlucyBOVUwgdGVybWluYXRlZCB1dGYtOCBzdHJpbmcuICovCj4gPiArI2RlZmluZSBYRU5fVkVS U0lPTl9PUF9leHRyYXZlcnNpb24gMQo+ID4gKwo+ID4gKy8qIGFyZyA9PSB2ZXJzaW9uX29wX2J1 Zi4gQ29udGFpbnMgTlVMIHRlcm1pbmF0ZWQgdXRmLTggc3RyaW5nLiAqLwo+ID4gKyNkZWZpbmUg WEVOX1ZFUlNJT05fT1BfY2FwYWJpbGl0aWVzIDMKPiA+ICsKPiA+ICsvKiBhcmcgPT0gdmVyc2lv bl9vcF9idWYuIENvbnRhaW5zIE5VTCB0ZXJtaW5hdGVkIHV0Zi04IHN0cmluZy4gKi8KPiA+ICsj ZGVmaW5lIFhFTl9WRVJTSU9OX09QX2NoYW5nZXNldCA0Cj4gPiArCj4gPiArLyoKPiA+ICsgKiBh cmcgPT0geGVuX3ZlcnNpb25fb3BfdmFsX3QuIENvbnRhaW5zIHRoZSB2aXJ0dWFsIGFkZHJlc3MK PiA+ICsgKiBvZiB0aGUgaHlwZXJ2aXNvciBlbmNvZGVkIGFzIFs2My4uMF0uCj4gCj4gSSdkIHNh eSB0aGUgZW5jb2RpbmcgaW5mbyBoZXJlIGlzIHVubmVjZXNzYXJ5IGFuZCBjb3VsZCAtIGp1c3Qg bGlrZQo+IHlvdSBhbHJlYWR5IGRvIGZvciBwYWdlc2l6ZSBiZWxvdyAtIGJlIG9taXR0ZWQuCj4g Cj4gPiArICovCj4gPiArI2RlZmluZSBYRU5fVkVSU0lPTl9PUF9wbGF0Zm9ybV9wYXJhbWV0ZXJz IDUKPiA+ICsKPiA+ICsvKgo+ID4gKyAqIGFyZyA9IHhlbl9mZWF0dXJlX2luZm9fdCAtIHNoYXJl cyB0aGUgc2FtZSBzdHJ1Y3R1cmUKPiA+ICsgKiBhcyB0aGUgWEVOVkVSX2dldF9mZWF0dXJlcy4K PiA+ICsgKi8KPiA+ICsjZGVmaW5lIFhFTl9WRVJTSU9OX09QX2dldF9mZWF0dXJlcyA2Cj4gPiAr Cj4gPiArLyogYXJnID09IHhlbl92ZXJzaW9uX29wX3ZhbF90LiAqLwo+ID4gKyNkZWZpbmUgWEVO X1ZFUlNJT05fT1BfcGFnZXNpemUgNwo+ID4gKwo+ID4gKy8qIGFyZyA9PSB2ZXJzaW9uX29wX2J1 Zi4KPiA+ICsgKgo+ID4gKyAqIFRoZSB0b29sc3RhY2sgZmlsbHMgaXQgb3V0IGZvciBndWVzdCBj b25zdW1wdGlvbi4gSXQgaXMgaW50ZW5kZWQgdG8gaG9sZAo+ID4gKyAqIHRoZSBVVUlEIG9mIHRo ZSBndWVzdC4KPiA+ICsgKi8KPiA+ICsjZGVmaW5lIFhFTl9WRVJTSU9OX09QX2d1ZXN0X2hhbmRs ZSA4Cj4gPiArCj4gPiArLyogYXJnID0gdmVyc2lvbl9vcF9idWYuIENvbnRhaW5zIE5VTCB0ZXJt aW5hdGVkIHV0Zi04IHN0cmluZy4gKi8KPiA+ICsjZGVmaW5lIFhFTl9WRVJTSU9OX09QX2NvbW1h bmRsaW5lIDkKPiA+ICsKPiA+ICAjZW5kaWYgLyogX19YRU5fUFVCTElDX1ZFUlNJT05fSF9fICov Cj4gCj4gV291bGQgbGVhdmluZyBvdXQgdGhlIF9PUCBhbmQgX29wIGV2ZXJ5d2hlcmUgcmVzdWx0 IGluIGFueQo+IG5hbWUgY29sbGlzaW9ucyB3aXRoIHRoZSBvbGQgb25lPwoKSXQgd29ya2VkIG91 dCBmaW5lLiBNYWRlIGl0IFhFTl9WRVJTSU9OX1suLl0KClNlZSBpbmxpbmUgbmV3IHBhdGNoOgoK RnJvbSBhYTdiYTExNzc4ZGQzZmZiMmE1M2ViZjYxMjNkZGZiMTk2ZjIwM2Q4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBLb25yYWQgUnplc3p1dGVrIFdpbGsgPGtvbnJhZC53aWxrQG9y YWNsZS5jb20+CkRhdGU6IEZyaSwgMTggTWFyIDIwMTYgMTM6NDE6MDcgLTA0MDAKU3ViamVjdDog W1BBVENIXSBIWVBFUkNBTExfdmVyc2lvbl9vcC4gTmV3IGh5cGVyY2FsbCBtaXJyb3JpbmcgWEVO VkVSXyBidXQKIHNhbmUuCgpUaGlzIGh5cGVyY2FsbCBtaXJyb3JzIHRoZSBYRU5WRVJfIGluIHRo YXQgaXQgaGFzIHNpbWlsYXIgZnVuY3Rpb25hbGl0eS4KSG93ZXZlciBpdCBpcyBkZXNpZ25lZCBk aWZmZXJlbnRseToKIC0gTm8gY29tcGF0IGxheWVyLiBUaGUgZGF0YSBzdHJ1Y3R1cmVzIGFyZSB0 aGUgc2FtZSBzaXplIG9uIDMyCiAgIGFzIG9uIDY0LWJpdC4KIC0gVGhlIGh5cGVyY2FsbCBhY2Nl cHRzIHRocmVlIGFyZ3VtZW50cyAtIHRoZSBjb21tYW5kLCBwb2ludGVyIHRvCiAgIGFuIGJ1ZmZl ciwgYW5kIHRoZSBsZW5ndGggb2YgdGhlIGJ1ZmZlci4KIC0gRWFjaCBzdWItb3BzIGNhbiBiZSAi cHJvYmVkIiBmb3Igc2l6ZSBieSByZXR1cm5pbmcgdGhlIHNpemUgb2YKICAgYnVmZmVyIHRoYXQg d2lsbCBiZSBuZWVkZWQgLSBpZiB0aGUgYnVmZmVyIGlzIE5VTEwuCiAtIFN1Ym9wcyBjYW4gY29t cGxldGUgZXZlbiBpZiB0aGUgYnVmZmVyIGlzIHRvbyBzbWFsbCAtIHRydW5jYXRlZAogICBkYXRh IHdpbGwgYmUgZmlsbGVkIGFuZCBoeXBlcmNhbGwgd2lsbCByZXR1cm4gLUVOT0JVRlMuCiAtIFZF UlNJT05fY29tbWFuZGxpbmUsIFZFUlNJT05fY2hhbmdlc2V0IGFyZSBwcml2aWxlZ2VkLgogLSBU aGVyZSBpcyBubyBYRU5WRVJfY29tcGlsZV9pbmZvIGVxdWl2YWxlbnQuCiAtIFRoZSBoeXBlcmNh bGwgY2FuIHJldHVybiAtRVBFUk0gYW5kIHRvb2xzdGFjay9PU2VzIGFyZSBleHBlY3RlZAogICB0 byBkZWFsIHdpdGggaXQuCgpXaGlsZSB3ZSBjb21iaW5lIHNvbWUgb2YgdGhlIGNvbW1vbiBjb2Rl IGJldHdlZW4gWEVOVkVSXyBhbmQgVkVSU0lPTl8KdGFrZSB0aGUgbGliZXJ0eSBvZiBtb3Zpbmcg cGFlX2V4dGVuZGVkX2NyMyBpbiB4ODYgYXJlYS4KClN1Z2dlc3RlZC1ieTogQW5kcmV3IENvb3Bl ciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4KU2lnbmVkLW9mZi1ieTogS29ucmFkIFJ6ZXN6 dXRlayBXaWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgoKLS0tCkNjOiBEYW5pZWwgRGUgR3Jh YWYgPGRnZGVncmFAdHljaG8ubnNhLmdvdj4KQ2M6IElhbiBKYWNrc29uIDxpYW4uamFja3NvbkBl dS5jaXRyaXguY29tPgpDYzogU3RlZmFubyBTdGFiZWxsaW5pIDxzdGVmYW5vLnN0YWJlbGxpbmlA ZXUuY2l0cml4LmNvbT4KQ2M6IFdlaSBMaXUgPHdlaS5saXUyQGNpdHJpeC5jb20+CkNjOiBTdGVm YW5vIFN0YWJlbGxpbmkgPHN0ZWZhbm8uc3RhYmVsbGluaUBjaXRyaXguY29tPgpDYzogSnVsaWVu IEdyYWxsIDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4KQ2M6IEtlaXIgRnJhc2VyIDxrZWlyQHhlbi5v cmc+CkNjOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+CkNjOiBBbmRyZXcgQ29vcGVy IDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPgoKdjEtdjM6IFdhcyBub3QgcGFydCBvZiB0aGUg c2VyaWVzLgp2NDogTmV3IHBvc3RpbmcuCnY1OiBSZW1vdmUgbWVtc2V0IGFuZCB1c2Uge30uIFR3 ZWFrIGNvcHlfdG9fZ3Vlc3QgYW5kIGNhcGFiaWxpdGllc19pbmZvLAogICAgYWRkIEFTU0VSVChz eikgcGVyIEFuZHJldydzIHJldmlldy4gQWRkIGNhY2hlZD0xIGJhY2sgaW4uCiAgICBQZXIgSmFu LCBzL1ZFUlNJT05fT1AvVkVSU0lPTi8sIHNxdWFzaCBzaXplIGNoZWNrIHdpdGggZG9fdmVyc2lv bl9vcCwKICAgIHVwZGF0ZSB0aGUgY29tbWVudHMuIERyb3BwZWQgQW5kcmV3J3MgUmV2aWV3LWJ5 LgotLS0KLS0tCiB0b29scy9mbGFzay9wb2xpY3kvcG9saWN5L21vZHVsZXMveGVuL3hlbi50ZSB8 ICAgOSArLQogeGVuL2FyY2gvYXJtL3RyYXBzLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogeGVuL2FyY2gveDg2L2h2bS9odm0uYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEg KwogeGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUyAgICAgICAgICAgfCAgIDIgKwog eGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TICAgICAgICAgICAgICAgICAgfCAgIDIgKwogeGVu L2NvbW1vbi9jb21wYXQva2VybmVsLmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogeGVuL2Nv bW1vbi9rZXJuZWwuYyAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMDkgKysrKysrKysrKysr KysrKysrKysrKy0tLS0tCiB4ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1hcm0uaCAgICAgICAgICAg ICAgICB8ICAgMyArCiB4ZW4vaW5jbHVkZS9wdWJsaWMvdmVyc2lvbi5oICAgICAgICAgICAgICAg ICB8ICA3MCArKysrKysrKy0KIHhlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaCAgICAgICAgICAgICAg ICAgICAgIHwgICAxICsKIHhlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaCAgICAgICAgICAgICAg ICAgIHwgICA0ICsKIHhlbi9pbmNsdWRlL3hzbS9kdW1teS5oICAgICAgICAgICAgICAgICAgICAg IHwgIDE5ICsrKwogeGVuL2luY2x1ZGUveHNtL3hzbS5oICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDcgKwogeGVuL3hzbS9kdW1teS5jICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDEgKwogeGVuL3hzbS9mbGFzay9ob29rcy5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMzkg KysrKysKIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vzc192ZWN0b3JzICAgICAgICAgIHwgIDI0 ICsrLQogMTYgZmlsZXMgY2hhbmdlZCwgMzUyIGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3Rvb2xzL2ZsYXNrL3BvbGljeS9wb2xpY3kvbW9kdWxlcy94ZW4veGVu LnRlIGIvdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1bGVzL3hlbi94ZW4udGUKaW5kZXgg MThmNDliNS4uZDYxZTY5NyAxMDA2NDQKLS0tIGEvdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9t b2R1bGVzL3hlbi94ZW4udGUKKysrIGIvdG9vbHMvZmxhc2svcG9saWN5L3BvbGljeS9tb2R1bGVz L3hlbi94ZW4udGUKQEAgLTc0LDExICs3NCwxMyBAQCBhbGxvdyBkb20wX3QgeGVuX3Q6eGVuMiB7 CiAgICAgZ2V0X3N5bWJvbAogfTsKIAotIyBBbGxvdyBkb20wIHRvIHVzZSBhbGwgWEVOVkVSXyBz dWJvcHMgdGhhdCBoYXZlIGNoZWNrcy4KKyMgQWxsb3cgZG9tMCB0byB1c2UgYWxsIFhFTlZFUl8g c3Vib3BzIHRoYXQgaGF2ZSBjaGVja3MgYW5kIFZFUlNJT04gc3Vib3BzCiAjIE5vdGUgdGhhdCBk b20wIGlzIHBhcnQgb2YgZG9tYWluX3R5cGUgc28gdGhpcyBoYXMgZHVwbGljYXRlcy4KIGFsbG93 IGRvbTBfdCB4ZW5fdDp2ZXJzaW9uIHsKICAgICB4ZW5fZXh0cmF2ZXJzaW9uIHhlbl9jb21waWxl X2luZm8geGVuX2NhcGFiaWxpdGllcwogICAgIHhlbl9jaGFuZ2VzZXQgeGVuX3BhZ2VzaXplIHhl bl9ndWVzdF9oYW5kbGUgeGVuX2NvbW1hbmRsaW5lCisgICAgdmVyc2lvbiBleHRyYXZlcnNpb24g Y2FwYWJpbGl0aWVzIGNoYW5nZXNldCBwbGF0Zm9ybV9wYXJhbWV0ZXJzCisgICAgZ2V0X2ZlYXR1 cmVzIHBhZ2VzaXplIGd1ZXN0X2hhbmRsZSBjb21tYW5kbGluZQogfTsKIAogYWxsb3cgZG9tMF90 IHhlbl90Om1tdSBtZW1vcnltYXA7CkBAIC0xNDUsMTAgKzE0NywxMyBAQCBpZiAoZ3Vlc3Rfd3Jp dGVjb25zb2xlKSB7CiAjIHBtdV9jdHJsIGlzIGZvcikKIGFsbG93IGRvbWFpbl90eXBlIHhlbl90 OnhlbjIgcG11X3VzZTsKIAotIyBGb3Igbm9ybWFsIGd1ZXN0cyBhbGwgcG9zc2libGUgZXhjZXB0 IFhFTlZFUl9jb21tYW5kbGluZS4KKyMgRm9yIG5vcm1hbCBndWVzdHMgYWxsIHBvc3NpYmxlIGV4 Y2VwdCBYRU5WRVJfY29tbWFuZGxpbmUsIFZFUlNJT05fY2hhbmdlc2V0LAorIyBhbmQgVkVSU0lP Tl9jb21tYW5kbGluZQogYWxsb3cgZG9tYWluX3R5cGUgeGVuX3Q6dmVyc2lvbiB7CiAgICAgeGVu X2V4dHJhdmVyc2lvbiB4ZW5fY29tcGlsZV9pbmZvIHhlbl9jYXBhYmlsaXRpZXMKICAgICB4ZW5f Y2hhbmdlc2V0ICB4ZW5fcGFnZXNpemUgeGVuX2d1ZXN0X2hhbmRsZQorICAgIHZlcnNpb24gZXh0 cmF2ZXJzaW9uIGNhcGFiaWxpdGllcyAgcGxhdGZvcm1fcGFyYW1ldGVycworICAgIGdldF9mZWF0 dXJlcyBwYWdlc2l6ZSBndWVzdF9oYW5kbGUKIH07CiAKICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK ZGlmZiAtLWdpdCBhL3hlbi9hcmNoL2FybS90cmFwcy5jIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMK aW5kZXggODM3NDRlOC4uMzFkMjExNSAxMDA2NDQKLS0tIGEveGVuL2FyY2gvYXJtL3RyYXBzLmMK KysrIGIveGVuL2FyY2gvYXJtL3RyYXBzLmMKQEAgLTEyMzUsNiArMTIzNSw3IEBAIHN0YXRpYyBh cm1faHlwZXJjYWxsX3QgYXJtX2h5cGVyY2FsbF90YWJsZVtdID0gewogICAgIEhZUEVSQ0FMTCht dWx0aWNhbGwsIDIpLAogICAgIEhZUEVSQ0FMTChwbGF0Zm9ybV9vcCwgMSksCiAgICAgSFlQRVJD QUxMX0FSTSh2Y3B1X29wLCAzKSwKKyAgICBIWVBFUkNBTEwodmVyc2lvbl9vcCwgMyksCiB9Owog CiAjaWZuZGVmIE5ERUJVRwpkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L2h2bS9odm0uYyBiL3hl bi9hcmNoL3g4Ni9odm0vaHZtLmMKaW5kZXggODBkNTlmZi4uZjE2YjU5MCAxMDA2NDQKLS0tIGEv eGVuL2FyY2gveDg2L2h2bS9odm0uYworKysgYi94ZW4vYXJjaC94ODYvaHZtL2h2bS5jCkBAIC01 MzIyLDYgKzUzMjIsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKICAgICBDT01QQVRfQ0FMTChw bGF0Zm9ybV9vcCksCiAgICAgQ09NUEFUX0NBTEwobW11ZXh0X29wKSwKICAgICBIWVBFUkNBTEwo eGVucG11X29wKSwKKyAgICBIWVBFUkNBTEwodmVyc2lvbl9vcCksCiAgICAgSFlQRVJDQUxMKGFy Y2hfMSkKIH07CiAKZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5 LlMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2NvbXBhdC9lbnRyeS5TCmluZGV4IDMzZTJjMTIuLmZk MjVlODQgMTAwNjQ0Ci0tLSBhL3hlbi9hcmNoL3g4Ni94ODZfNjQvY29tcGF0L2VudHJ5LlMKKysr IGIveGVuL2FyY2gveDg2L3g4Nl82NC9jb21wYXQvZW50cnkuUwpAQCAtMzk0LDYgKzM5NCw3IEBA IEVOVFJZKGNvbXBhdF9oeXBlcmNhbGxfdGFibGUpCiAgICAgICAgIC5xdWFkIGRvX3RtZW1fb3AK ICAgICAgICAgLnF1YWQgZG9fbmlfaHlwZXJjYWxsICAgICAgICAgICAvKiByZXNlcnZlZCBmb3Ig WGVuQ2xpZW50ICovCiAgICAgICAgIC5xdWFkIGRvX3hlbnBtdV9vcCAgICAgICAgICAgICAgLyog NDAgKi8KKyAgICAgICAgLnF1YWQgZG9fdmVyc2lvbl9vcAogICAgICAgICAucmVwdCBfX0hZUEVS VklTT1JfYXJjaF8wLSgoLi1jb21wYXRfaHlwZXJjYWxsX3RhYmxlKS84KQogICAgICAgICAucXVh ZCBjb21wYXRfbmlfaHlwZXJjYWxsCiAgICAgICAgIC5lbmRyCkBAIC00NDUsNiArNDQ2LDcgQEAg RU5UUlkoY29tcGF0X2h5cGVyY2FsbF9hcmdzX3RhYmxlKQogICAgICAgICAuYnl0ZSAxIC8qIGRv X3RtZW1fb3AgICAgICAgICAgICAgICAqLwogICAgICAgICAuYnl0ZSAwIC8qIHJlc2VydmVkIGZv ciBYZW5DbGllbnQgICAqLwogICAgICAgICAuYnl0ZSAyIC8qIGRvX3hlbnBtdV9vcCAgICAgICAg ICAgICAqLyAgLyogNDAgKi8KKyAgICAgICAgLmJ5dGUgMyAvKiBkb192ZXJzaW9uX29wICAgICAg ICAgICAgKi8KICAgICAgICAgLnJlcHQgX19IWVBFUlZJU09SX2FyY2hfMC0oLi1jb21wYXRfaHlw ZXJjYWxsX2FyZ3NfdGFibGUpCiAgICAgICAgIC5ieXRlIDAgLyogY29tcGF0X25pX2h5cGVyY2Fs bCAgICAgICovCiAgICAgICAgIC5lbmRyCmRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYveDg2XzY0 L2VudHJ5LlMgYi94ZW4vYXJjaC94ODYveDg2XzY0L2VudHJ5LlMKaW5kZXggMDdlZjA5Ni4uYjBl NzI1NyAxMDA2NDQKLS0tIGEveGVuL2FyY2gveDg2L3g4Nl82NC9lbnRyeS5TCisrKyBiL3hlbi9h cmNoL3g4Ni94ODZfNjQvZW50cnkuUwpAQCAtNzMwLDYgKzczMCw3IEBAIEVOVFJZKGh5cGVyY2Fs bF90YWJsZSkKICAgICAgICAgLnF1YWQgZG9fdG1lbV9vcAogICAgICAgICAucXVhZCBkb19uaV9o eXBlcmNhbGwgICAgICAgLyogcmVzZXJ2ZWQgZm9yIFhlbkNsaWVudCAqLwogICAgICAgICAucXVh ZCBkb194ZW5wbXVfb3AgICAgICAgICAgLyogNDAgKi8KKyAgICAgICAgLnF1YWQgZG9fdmVyc2lv bl9vcAogICAgICAgICAucmVwdCBfX0hZUEVSVklTT1JfYXJjaF8wLSgoLi1oeXBlcmNhbGxfdGFi bGUpLzgpCiAgICAgICAgIC5xdWFkIGRvX25pX2h5cGVyY2FsbAogICAgICAgICAuZW5kcgpAQCAt NzgxLDYgKzc4Miw3IEBAIEVOVFJZKGh5cGVyY2FsbF9hcmdzX3RhYmxlKQogICAgICAgICAuYnl0 ZSAxIC8qIGRvX3RtZW1fb3AgICAgICAgICAgICovCiAgICAgICAgIC5ieXRlIDAgLyogcmVzZXJ2 ZWQgZm9yIFhlbkNsaWVudCAqLwogICAgICAgICAuYnl0ZSAyIC8qIGRvX3hlbnBtdV9vcCAgICAg ICAgICovICAvKiA0MCAqLworICAgICAgICAuYnl0ZSAzIC8qIGRvX3ZlcnNpb25fb3AgICAgICAg ICovCiAgICAgICAgIC5yZXB0IF9fSFlQRVJWSVNPUl9hcmNoXzAtKC4taHlwZXJjYWxsX2FyZ3Nf dGFibGUpCiAgICAgICAgIC5ieXRlIDAgLyogZG9fbmlfaHlwZXJjYWxsICAgICAgKi8KICAgICAg ICAgLmVuZHIKZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vY29tcGF0L2tlcm5lbC5jIGIveGVuL2Nv bW1vbi9jb21wYXQva2VybmVsLmMKaW5kZXggZGY5M2ZkZC4uN2E3Y2E1MyAxMDA2NDQKLS0tIGEv eGVuL2NvbW1vbi9jb21wYXQva2VybmVsLmMKKysrIGIveGVuL2NvbW1vbi9jb21wYXQva2VybmVs LmMKQEAgLTM5LDYgKzM5LDggQEAgQ0hFQ0tfVFlQRShjYXBhYmlsaXRpZXNfaW5mbyk7CiAKIENI RUNLX1RZUEUoZG9tYWluX2hhbmRsZSk7CiAKK0NIRUNLX1RZUEUodmVyc2lvbl9vcF92YWwpOwor CiAjZGVmaW5lIHhlbm5taV9jYWxsYmFjayBjb21wYXRfbm1pX2NhbGxiYWNrCiAjZGVmaW5lIHhl bm5taV9jYWxsYmFja190IGNvbXBhdF9ubWlfY2FsbGJhY2tfdAogCmRpZmYgLS1naXQgYS94ZW4v Y29tbW9uL2tlcm5lbC5jIGIveGVuL2NvbW1vbi9rZXJuZWwuYwppbmRleCAwNmVjZjI2Li4zZWEz NWNjIDEwMDY0NAotLS0gYS94ZW4vY29tbW9uL2tlcm5lbC5jCisrKyBiL3hlbi9jb21tb24va2Vy bmVsLmMKQEAgLTIyMSw2ICsyMjEsNDcgQEAgdm9pZCBfX2luaXQgZG9faW5pdGNhbGxzKHZvaWQp CiAKICNlbmRpZgogCitzdGF0aWMgaW50IGdldF9mZWF0dXJlcyhzdHJ1Y3QgZG9tYWluICpkLCB4 ZW5fZmVhdHVyZV9pbmZvX3QgKmZpKQoreworICAgIHN3aXRjaCAoIGZpLT5zdWJtYXBfaWR4ICkK KyAgICB7CisgICAgY2FzZSAwOgorICAgICAgICBmaS0+c3VibWFwID0gKDFVIDw8IFhFTkZFQVRf bWVtb3J5X29wX3Zub2RlX3N1cHBvcnRlZCk7CisgICAgICAgIGlmICggcGFnaW5nX21vZGVfdHJh bnNsYXRlKGQpICkKKyAgICAgICAgICAgIGZpLT5zdWJtYXAgfD0KKyAgICAgICAgICAgICAgICAo MVUgPDwgWEVORkVBVF93cml0YWJsZV9wYWdlX3RhYmxlcykgfAorICAgICAgICAgICAgICAgICgx VSA8PCBYRU5GRUFUX2F1dG9fdHJhbnNsYXRlZF9waHlzbWFwKTsKKyAgICAgICAgaWYgKCBpc19o YXJkd2FyZV9kb21haW4oZCkgKQorICAgICAgICAgICAgZmktPnN1Ym1hcCB8PSAxVSA8PCBYRU5G RUFUX2RvbTA7CisjaWZkZWYgQ09ORklHX1g4NgorICAgICAgICBpZiAoIFZNX0FTU0lTVChkLCBw YWVfZXh0ZW5kZWRfY3IzKSApCisgICAgICAgICAgICBmaS0+c3VibWFwIHw9ICgxVSA8PCBYRU5G RUFUX3BhZV9wZ2Rpcl9hYm92ZV80Z2IpOworICAgICAgICBzd2l0Y2ggKCBkLT5ndWVzdF90eXBl ICkKKyAgICAgICAgeworICAgICAgICBjYXNlIGd1ZXN0X3R5cGVfcHY6CisgICAgICAgICAgICBm aS0+c3VibWFwIHw9ICgxVSA8PCBYRU5GRUFUX21tdV9wdF91cGRhdGVfcHJlc2VydmVfYWQpIHwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfaGlnaG1lbV9hc3Npc3Qp IHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfZ250dGFiX21hcF9h dmFpbF9iaXRzKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIGd1ZXN0X3R5cGVf cHZoOgorICAgICAgICAgICAgZmktPnN1Ym1hcCB8PSAoMVUgPDwgWEVORkVBVF9odm1fc2FmZV9w dmNsb2NrKSB8CisgICAgICAgICAgICAgICAgICAgICAgICAgICgxVSA8PCBYRU5GRUFUX3N1cGVy dmlzb3JfbW9kZV9rZXJuZWwpIHwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhF TkZFQVRfaHZtX2NhbGxiYWNrX3ZlY3Rvcik7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg Y2FzZSBndWVzdF90eXBlX2h2bToKKyAgICAgICAgICAgIGZpLT5zdWJtYXAgfD0gKDFVIDw8IFhF TkZFQVRfaHZtX3NhZmVfcHZjbG9jaykgfAorICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUg PDwgWEVORkVBVF9odm1fY2FsbGJhY2tfdmVjdG9yKSB8CisgICAgICAgICAgICAgICAgICAgICAg ICAgICgxVSA8PCBYRU5GRUFUX2h2bV9waXJxcyk7CisgICAgICAgICAgIGJyZWFrOworICAgICAg ICB9CisjZW5kaWYKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJu IC1FSU5WQUw7CisgICAgfQorICAgIHJldHVybiAwOworfQorCiAvKgogICogU2ltcGxlIGh5cGVy Y2FsbHMuCiAgKi8KQEAgLTI5OCw0NyArMzM5LDE0IEBAIERPKHhlbl92ZXJzaW9uKShpbnQgY21k LCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZykKICAgICBjYXNlIFhFTlZFUl9nZXRf ZmVhdHVyZXM6CiAgICAgewogICAgICAgICB4ZW5fZmVhdHVyZV9pbmZvX3QgZmk7Ci0gICAgICAg IHN0cnVjdCBkb21haW4gKmQgPSBjdXJyZW50LT5kb21haW47CisgICAgICAgIGludCByYzsKIAog ICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmZmksIGFyZywgMSkgKQogICAgICAgICAgICAg cmV0dXJuIC1FRkFVTFQ7CiAKLSAgICAgICAgc3dpdGNoICggZmkuc3VibWFwX2lkeCApCi0gICAg ICAgIHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAgICAgZmkuc3VibWFwID0gKDFVIDw8IFhF TkZFQVRfbWVtb3J5X29wX3Zub2RlX3N1cHBvcnRlZCk7Ci0gICAgICAgICAgICBpZiAoIFZNX0FT U0lTVChkLCBwYWVfZXh0ZW5kZWRfY3IzKSApCi0gICAgICAgICAgICAgICAgZmkuc3VibWFwIHw9 ICgxVSA8PCBYRU5GRUFUX3BhZV9wZ2Rpcl9hYm92ZV80Z2IpOwotICAgICAgICAgICAgaWYgKCBw YWdpbmdfbW9kZV90cmFuc2xhdGUoZCkgKQotICAgICAgICAgICAgICAgIGZpLnN1Ym1hcCB8PSAK LSAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfd3JpdGFibGVfcGFnZV90YWJsZXMp IHwKLSAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfYXV0b190cmFuc2xhdGVkX3Bo eXNtYXApOwotICAgICAgICAgICAgaWYgKCBpc19oYXJkd2FyZV9kb21haW4oZCkgKQotICAgICAg ICAgICAgICAgIGZpLnN1Ym1hcCB8PSAxVSA8PCBYRU5GRUFUX2RvbTA7Ci0jaWZkZWYgQ09ORklH X1g4NgotICAgICAgICAgICAgc3dpdGNoICggZC0+Z3Vlc3RfdHlwZSApCi0gICAgICAgICAgICB7 Ci0gICAgICAgICAgICBjYXNlIGd1ZXN0X3R5cGVfcHY6Ci0gICAgICAgICAgICAgICAgZmkuc3Vi bWFwIHw9ICgxVSA8PCBYRU5GRUFUX21tdV9wdF91cGRhdGVfcHJlc2VydmVfYWQpIHwKLSAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfaGlnaG1lbV9hc3Npc3QpIHwK LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfZ250dGFiX21hcF9h dmFpbF9iaXRzKTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgZ3Vl c3RfdHlwZV9wdmg6Ci0gICAgICAgICAgICAgICAgZmkuc3VibWFwIHw9ICgxVSA8PCBYRU5GRUFU X2h2bV9zYWZlX3B2Y2xvY2spIHwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8 IFhFTkZFQVRfc3VwZXJ2aXNvcl9tb2RlX2tlcm5lbCkgfAotICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAoMVUgPDwgWEVORkVBVF9odm1fY2FsbGJhY2tfdmVjdG9yKTsKLSAgICAgICAgICAg ICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgZ3Vlc3RfdHlwZV9odm06Ci0gICAgICAgICAg ICAgICAgZmkuc3VibWFwIHw9ICgxVSA8PCBYRU5GRUFUX2h2bV9zYWZlX3B2Y2xvY2spIHwKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgKDFVIDw8IFhFTkZFQVRfaHZtX2NhbGxiYWNrX3Zl Y3RvcikgfAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMVUgPDwgWEVORkVBVF9odm1f cGlycXMpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotI2VuZGlmCi0g ICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiAt RUlOVkFMOwotICAgICAgICB9CisgICAgICAgIHJjID0gZ2V0X2ZlYXR1cmVzKGN1cnJlbnQtPmRv bWFpbiwgJmZpKTsKKyAgICAgICAgaWYgKCByYyApCisgICAgICAgICAgICByZXR1cm4gcmM7CiAK ICAgICAgICAgaWYgKCBfX2NvcHlfdG9fZ3Vlc3QoYXJnLCAmZmksIDEpICkKICAgICAgICAgICAg IHJldHVybiAtRUZBVUxUOwpAQCAtMzgwLDYgKzM4OCwxMzMgQEAgRE8oeGVuX3ZlcnNpb24pKGlu dCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogICAgIHJldHVybiAtRU5P U1lTOwogfQogCitzdGF0aWMgY29uc3QgY2hhciAqY2FwYWJpbGl0aWVzX2luZm8odW5zaWduZWQg aW50ICpsZW4pCit7CisgICAgc3RhdGljIHhlbl9jYXBhYmlsaXRpZXNfaW5mb190IF9fcmVhZF9t b3N0bHkgY2FjaGVkX2NhcDsKKyAgICBzdGF0aWMgdW5zaWduZWQgaW50IF9fcmVhZF9tb3N0bHkg Y2FjaGVkX2NhcF9sZW47CisgICAgc3RhdGljIGJvb2xfdCBjYWNoZWQ7CisKKyAgICBpZiAoIHVu bGlrZWx5KCFjYWNoZWQpICkKKyAgICB7CisgICAgICAgIGFyY2hfZ2V0X3hlbl9jYXBzKCZjYWNo ZWRfY2FwKTsKKyAgICAgICAgY2FjaGVkX2NhcF9sZW4gPSBzdHJsZW4oY2FjaGVkX2NhcCkgKyAx OworICAgICAgICBjYWNoZWQgPSAxOworICAgIH0KKworICAgICpsZW4gPSBjYWNoZWRfY2FwX2xl bjsKKyAgICByZXR1cm4gY2FjaGVkX2NhcDsKK30KKworLyoKKyAqIFNpbWlsYXIgdG8gSFlQRVJW SVNPUl94ZW5fdmVyc2lvbiBidXQgd2l0aCBhIHNhbmUgaW50ZXJmYWNlCisgKiAoaGFzIGEgbGVu Z3RoLCBvbmUgY2FuIHByb2JlIGZvciB0aGUgbGVuZ3RoKSBhbmQgd2l0aCBvbmUgbGVzcyBzdWIt b3BzOgorICogbWlzc2luZyBYRU5WRVJfY29tcGlsZV9pbmZvLgorICovCitETyh2ZXJzaW9uX29w KSh1bnNpZ25lZCBpbnQgY21kLCBYRU5fR1VFU1RfSEFORExFX1BBUkFNKHZvaWQpIGFyZywKKyAg ICAgICAgICAgICAgIHVuc2lnbmVkIGludCBsZW4pCit7CisgICAgdW5pb24geworICAgICAgICB4 ZW5fdmVyc2lvbl9vcF92YWxfdCB2YWw7CisgICAgICAgIHhlbl9mZWF0dXJlX2luZm9fdCBmaTsK KyAgICB9IHUgPSB7fTsKKyAgICB1bnNpZ25lZCBpbnQgc3ogPSAwOworICAgIGNvbnN0IHZvaWQg KnB0ciA9IE5VTEw7CisgICAgaW50IHJjID0geHNtX3ZlcnNpb25fb3AoWFNNX09USEVSLCBjbWQp OworCisgICAgLyogV2UgY2FuIHNhZmVseSByZXR1cm4gLUVQRVJNISAqLworICAgIGlmICggcmMg KQorICAgICAgICByZXR1cm4gcmM7CisKKyAgICAvKgorICAgICAqIFRoZSBIWVBFUlZJU09SX3hl bl92ZXJzaW9uIGRpZmZlcnMgaW4gdGhhdCBzb21lIHJldHVybiB0aGUgdmFsdWUsCisgICAgICog YW5kIHNvbWUgY29weSBpdCBvbiBiYWNrIG9uIGFyZ3VtZW50LiBXZSBmb2xsb3cgdGhlIHNhbWUg cnVsZSBmb3IgYWxsCisgICAgICogc3ViLW9wczogcmV0dXJuIDAgb24gc3VjY2VzcywgcG9zaXRp dmUgdmFsdWUgb2YgYnl0ZXMgcmV0dXJuZWQsIGFuZAorICAgICAqIGFsd2F5cyBjb3B5IHRoZSBy ZXN1bHQgaW4gYXJnLiBZZWV5IHNhbml0eSEKKyAgICAgKi8KKyAgICBzd2l0Y2ggKCBjbWQgKQor ICAgIHsKKyAgICBjYXNlIFhFTl9WRVJTSU9OX3ZlcnNpb246CisgICAgICAgIHN6ID0gc2l6ZW9m KHhlbl92ZXJzaW9uX29wX3ZhbF90KTsKKyAgICAgICAgdS52YWwgPSAoeGVuX21ham9yX3ZlcnNp b24oKSA8PCAxNikgfCB4ZW5fbWlub3JfdmVyc2lvbigpOworICAgICAgICBicmVhazsKKworICAg IGNhc2UgWEVOX1ZFUlNJT05fZXh0cmF2ZXJzaW9uOgorICAgICAgICBzeiA9IHN0cmxlbih4ZW5f ZXh0cmFfdmVyc2lvbigpKSArIDE7CisgICAgICAgIHB0ciA9IHhlbl9leHRyYV92ZXJzaW9uKCk7 CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXM6Cisg ICAgICAgIHB0ciA9IGNhcGFiaWxpdGllc19pbmZvKCZzeik7CisgICAgICAgIGJyZWFrOworCisg ICAgY2FzZSBYRU5fVkVSU0lPTl9jaGFuZ2VzZXQ6CisgICAgICAgIHN6ID0gc3RybGVuKHhlbl9j aGFuZ2VzZXQoKSkgKyAxOworICAgICAgICBwdHIgPSB4ZW5fY2hhbmdlc2V0KCk7CisgICAgICAg IGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9wbGF0Zm9ybV9wYXJhbWV0ZXJzOgorICAg ICAgICBzeiA9IHNpemVvZih4ZW5fdmVyc2lvbl9vcF92YWxfdCk7CisgICAgICAgIHUudmFsID0g SFlQRVJWSVNPUl9WSVJUX1NUQVJUOworICAgICAgICBicmVhazsKKworICAgIGNhc2UgWEVOX1ZF UlNJT05fZ2V0X2ZlYXR1cmVzOgorICAgICAgICBpZiAoIGNvcHlfZnJvbV9ndWVzdCgmdS5maSwg YXJnLCAxKSApCisgICAgICAgIHsKKyAgICAgICAgICAgIHJjID0gLUVGQVVMVDsKKyAgICAgICAg ICAgIGJyZWFrOworICAgICAgICB9CisgICAgICAgIHN6ID0gc2l6ZW9mKHhlbl9mZWF0dXJlX2lu Zm9fdCk7CisgICAgICAgIHJjID0gZ2V0X2ZlYXR1cmVzKGN1cnJlbnQtPmRvbWFpbiwgJnUuZmkp OworICAgICAgICBicmVhazsKKworICAgIGNhc2UgWEVOX1ZFUlNJT05fcGFnZXNpemU6CisgICAg ICAgIHN6ID0gc2l6ZW9mKHhlbl92ZXJzaW9uX29wX3ZhbF90KTsKKyAgICAgICAgdS52YWwgPSBQ QUdFX1NJWkU7CisgICAgICAgIGJyZWFrOworCisgICAgY2FzZSBYRU5fVkVSU0lPTl9ndWVzdF9o YW5kbGU6CisgICAgICAgIHN6ID0gQVJSQVlfU0laRShjdXJyZW50LT5kb21haW4tPmhhbmRsZSk7 CisgICAgICAgIHB0ciA9IGN1cnJlbnQtPmRvbWFpbi0+aGFuZGxlOworICAgICAgICBicmVhazsK KworICAgIGNhc2UgWEVOX1ZFUlNJT05fY29tbWFuZGxpbmU6CisgICAgICAgIHN6ID0gc3RybGVu KHNhdmVkX2NtZGxpbmUpICsgMTsKKyAgICAgICAgcHRyID0gc2F2ZWRfY21kbGluZTsKKyAgICAg ICAgYnJlYWs7CisKKyAgICBkZWZhdWx0OgorICAgICAgICByYyA9IC1FTk9TWVM7CisgICAgfQor CisgICAgaWYgKCByYyApCisgICAgICAgIHJldHVybiByYzsKKworICAgIC8qCisgICAgICogVGhp cyBoeXBlcmNhbGwgYWxzbyBhbGxvd3MgdGhlIGNsaWVudCB0byBwcm9iZS4gSWYgaXQgcHJvdmlk ZXMKKyAgICAgKiBhIE5VTEwgYXJnIHdlIHdpbGwgcmV0dXJuIHRoZSBzaXplIG9mIHRoZSBzcGFj ZSBpdCBoYXMgdG8KKyAgICAgKiBhbGxvY2F0ZSBmb3IgdGhlIHNwZWNpZmljIHN1Yi1vcC4KKyAg ICAgKi8KKyAgICBBU1NFUlQoc3opOworICAgIGlmICggZ3Vlc3RfaGFuZGxlX2lzX251bGwoYXJn KSApCisgICAgICAgIHJldHVybiBzejsKKworICAgIGlmICggIXJjICkKKyAgICB7CisgICAgICAg IHVuc2lnbmVkIGludCBieXRlcyA9IG1pbihzeiwgbGVuKTsKKworICAgICAgICBpZiAoIGNvcHlf dG9fZ3Vlc3QoYXJnLCBwdHIgPyA6ICZ1LCBieXRlcykgKQorICAgICAgICAgICAgcmMgPSAtRUZB VUxUOworCisgICAgICAgIC8qCisgICAgICAgICAqIFdlIHJldHVybiBsZW4gKHRydW5jYXRlKSB3 b3J0aCBvZiBkYXRhIGV2ZW4gaWYgd2UgZmFpbC4KKyAgICAgICAgICovCisgICAgICAgIGlmICgg IXJjICYmIHN6ID4gbGVuICkKKyAgICAgICAgICAgIHJjID0gLUVOT0JVRlM7CisgICAgfQorCisg ICAgcmV0dXJuIHJjID09IDAgPyBzeiA6IHJjOworfQorCiBETyhubWlfb3ApKHVuc2lnbmVkIGlu dCBjbWQsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJnKQogewogICAgIHN0cnVjdCB4 ZW5ubWlfY2FsbGJhY2sgY2I7CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS9wdWJsaWMvYXJjaC1h cm0uaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oCmluZGV4IDg3MGJjM2IuLmM5YWUz MTUgMTAwNjQ0Ci0tLSBhL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oCisrKyBiL3hlbi9p bmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oCkBAIC0xMjgsNiArMTI4LDkgQEAKICAqICAgICogVkNQ VU9QX3JlZ2lzdGVyX3ZjcHVfaW5mbwogICogICAgKiBWQ1BVT1BfcmVnaXN0ZXJfcnVuc3RhdGVf bWVtb3J5X2FyZWEKICAqCisgKiAgSFlQRVJWSVNPUl92ZXJzaW9uX29wCisgKiAgIEFsbCBnZW5l cmljIHN1Yi1vcGVyYXRpb25zCisgKgogICoKICAqIE90aGVyIG5vdGVzIG9uIHRoZSBBUk0gQUJJ OgogICoKZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy92ZXJzaW9uLmggYi94ZW4vaW5j bHVkZS9wdWJsaWMvdmVyc2lvbi5oCmluZGV4IDI0YTU4MmYuLmViYjA2NjQgMTAwNjQ0Ci0tLSBh L3hlbi9pbmNsdWRlL3B1YmxpYy92ZXJzaW9uLmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3Zl cnNpb24uaApAQCAtMzAsNyArMzAsMTUgQEAKIAogI2luY2x1ZGUgInhlbi5oIgogCi0vKiBOQi4g QWxsIG9wcyByZXR1cm4gemVybyBvbiBzdWNjZXNzLCBleGNlcHQgWEVOVkVSX3t2ZXJzaW9uLHBh Z2VzaXplfSAqLworLyoKKyAqIFRoZXJlIGFyZSB0d28gaHlwZXJjYWxscyBtZW50aW9uZWQgaW4g aGVyZS4gVGhlIFhFTlZFUl8gYXJlIGZvcgorICogSFlQRVJDQUxMX3hlbl92ZXJzaW9uICgxNyks IHdoaWxlIFZFUlNJT05fIGFyZSBmb3IgdGhlCisgKiBIWVBFUkNBTExfdmVyc2lvbl9vcCAoNDEp LgorICoKKyAqIFRoZSBzdWJvcHMgYXJlIHZlcnkgc2ltaWxhciBleGNlcHQgdGhhdCB0aGUgbGF0 ZXIgaHlwZXJjYWxsIGhhcyBhCisgKiBzYW5lIGludGVyZmFjZS4KKyAqLworCiAKIC8qIGFyZyA9 PSBOVUxMOyByZXR1cm5zIG1ham9yOm1pbm9yICgxNjoxNikuICovCiAjZGVmaW5lIFhFTlZFUl92 ZXJzaW9uICAgICAgMApAQCAtODcsNiArOTUsNjYgQEAgdHlwZWRlZiBzdHJ1Y3QgeGVuX2ZlYXR1 cmVfaW5mbyB4ZW5fZmVhdHVyZV9pbmZvX3Q7CiAjZGVmaW5lIFhFTlZFUl9jb21tYW5kbGluZSA5 CiB0eXBlZGVmIGNoYXIgeGVuX2NvbW1hbmRsaW5lX3RbMTAyNF07CiAKKworCisvKgorICogVGhl IEhZUEVSQ0FMTF92ZXJzaW9uX29wIGhhcyBhIHNldCBvZiBzdWItb3BzIHdoaWNoIG1pcnJvciB0 aGUKKyAqIHN1Yi1vcHMgb2YgSFlQRVJDQUxMX3hlbl92ZXJzaW9uLiBIb3dldmVyIHRoaXMgaHlw ZXJjYWxsIGRpZmZlcnMKKyAqIHJhZGljYWxseSBmcm9tIHRoZSBmb3JtZXI6CisgKiAgLSBJdCBy ZXR1cm5zIHRoZSBhbW91bnQgb2YgYnl0ZXMgcmV0dXJuZWQuCisgKiAgLSBJdCB3aWxsIHJldHVy biAtWEVOX0VQRVJNIGlmIHRoZSBndWVzdCBpcyBub3QgcGVybWl0dGVkLgorICogIC0gSXQgd2ls bCByZXR1cm4gdGhlIHJlcXVlc3RlZCBkYXRhIGluIGFyZy4KKyAqICAtIEl0IHJlcXVpcmVzIGFu IHRoaXJkIGFyZ3VtZW50IChsZW4pIGZvciB0aGUgbGVuZ3RoIG9mIHRoZQorICogICAgYXJnLiBO YXR1cmFsbHkgdGhlIGFyZyBoYXMgdG8gZml0IHRoZSByZXF1ZXN0ZWQgZGF0YSBvdGhlcndpc2UK KyAqICAgIC1YRU5fRU5PQlVGUyBpcyByZXR1cm5lZC4KKyAqCisgKiBJdCBhbHNvIG9mZmVycyBh biBtZWNoYW5pc20gdG8gcHJvYmUgZm9yIHRoZSBhbW91bnQgb2YgYnl0ZXMgYW4KKyAqIHN1Yi1v cCB3aWxsIHJlcXVpcmUuIEhhdmluZyB0aGUgYXJnIGhhdmUgYW4gTlVMTCBoYW5kbGUgd2lsbAor ICogcmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0ZXMgcmVxdWVzdGVkIGZvciB0aGUgb3BlcmF0aW9u LiBPciBhbgorICogbmVnYXRpdmUgdmFsdWUgaWYgYW4gZXJyb3IgaXMgZW5jb3VudGVyZWQuCisg Ki8KKwordHlwZWRlZiB1aW50NjRfdCB4ZW5fdmVyc2lvbl9vcF92YWxfdDsKK0RFRklORV9YRU5f R1VFU1RfSEFORExFKHhlbl92ZXJzaW9uX29wX3ZhbF90KTsKKworLyoKKyAqIGFyZyA9PSB4ZW5f dmVyc2lvbl9vcF92YWxfdC4gRW5jb2RlZCBhcyBtYWpvcjptaW5vciAoMzEuLjE2OjE1Li4wKSwg d2hpbGUKKyAqIDYzLi4zMiBhcmUgemVyby4KKyAqLworI2RlZmluZSBYRU5fVkVSU0lPTl92ZXJz aW9uICAgICAgICAgICAgIDAKKworLyogYXJnID09IGNoYXIuIENvbnRhaW5zIE5VTCB0ZXJtaW5h dGVkIHV0Zi04IHN0cmluZy4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fZXh0cmF2ZXJzaW9uICAg ICAgICAxCisKKy8qIGFyZyA9PSBjaGFyLiBDb250YWlucyBOVUwgdGVybWluYXRlZCB1dGYtOCBz dHJpbmcuICovCisjZGVmaW5lIFhFTl9WRVJTSU9OX2NhcGFiaWxpdGllcyAgICAgICAgMworCisv KiBhcmcgPT0gY2hhci4gQ29udGFpbnMgTlVMIHRlcm1pbmF0ZWQgdXRmLTggc3RyaW5nLiAqLwor I2RlZmluZSBYRU5fVkVSU0lPTl9jaGFuZ2VzZXQgICAgICAgICAgIDQKKworLyogYXJnID09IHhl bl92ZXJzaW9uX29wX3ZhbF90LiAqLworI2RlZmluZSBYRU5fVkVSU0lPTl9wbGF0Zm9ybV9wYXJh bWV0ZXJzIDUKKworLyoKKyAqIGFyZyA9IHhlbl9mZWF0dXJlX2luZm9fdCAtIHNoYXJlcyB0aGUg c2FtZSBzdHJ1Y3R1cmUKKyAqIGFzIHRoZSBYRU5WRVJfZ2V0X2ZlYXR1cmVzLgorICovCisjZGVm aW5lIFhFTl9WRVJTSU9OX2dldF9mZWF0dXJlcyAgICAgICAgNgorCisvKiBhcmcgPT0geGVuX3Zl cnNpb25fb3BfdmFsX3QuICovCisjZGVmaW5lIFhFTl9WRVJTSU9OX3BhZ2VzaXplICAgICAgICAg ICAgNworCisvKgorICogYXJnID09IGNoYXIuCisgKgorICogVGhlIHRvb2xzdGFjayBmaWxscyBp dCBvdXQgZm9yIGd1ZXN0IGNvbnN1bXB0aW9uLiBJdCBpcyBpbnRlbmRlZCB0byBob2xkCisgKiB0 aGUgVVVJRCBvZiB0aGUgZ3Vlc3QuCisgKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fZ3Vlc3RfaGFu ZGxlICAgICAgICA4CisKKy8qIGFyZyA9IGNoYXIuIENvbnRhaW5zIE5VTCB0ZXJtaW5hdGVkIHV0 Zi04IHN0cmluZy4gKi8KKyNkZWZpbmUgWEVOX1ZFUlNJT05fY29tbWFuZGxpbmUgICAgICAgICA5 CisKICNlbmRpZiAvKiBfX1hFTl9QVUJMSUNfVkVSU0lPTl9IX18gKi8KIAogLyoKZGlmZiAtLWdp dCBhL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaCBiL3hlbi9pbmNsdWRlL3B1YmxpYy94ZW4uaApp bmRleCA2NGJhN2FiLi4xYTk5OTI5IDEwMDY0NAotLS0gYS94ZW4vaW5jbHVkZS9wdWJsaWMveGVu LmgKKysrIGIveGVuL2luY2x1ZGUvcHVibGljL3hlbi5oCkBAIC0xMTUsNiArMTE1LDcgQEAgREVG SU5FX1hFTl9HVUVTVF9IQU5ETEUoeGVuX3Vsb25nX3QpOwogI2RlZmluZSBfX0hZUEVSVklTT1Jf dG1lbV9vcCAgICAgICAgICAgICAgMzgKICNkZWZpbmUgX19IWVBFUlZJU09SX3hjX3Jlc2VydmVk X29wICAgICAgIDM5IC8qIHJlc2VydmVkIGZvciBYZW5DbGllbnQgKi8KICNkZWZpbmUgX19IWVBF UlZJU09SX3hlbnBtdV9vcCAgICAgICAgICAgIDQwCisjZGVmaW5lIF9fSFlQRVJWSVNPUl92ZXJz aW9uX29wICAgICAgICAgICA0MSAvKiBzdXBlcnNlZGVzIHhlbl92ZXJzaW9uICgxNykgKi8KIAog LyogQXJjaGl0ZWN0dXJlLXNwZWNpZmljIGh5cGVyY2FsbCBkZWZpbml0aW9ucy4gKi8KICNkZWZp bmUgX19IWVBFUlZJU09SX2FyY2hfMCAgICAgICAgICAgICAgIDQ4CmRpZmYgLS1naXQgYS94ZW4v aW5jbHVkZS94ZW4vaHlwZXJjYWxsLmggYi94ZW4vaW5jbHVkZS94ZW4vaHlwZXJjYWxsLmgKaW5k ZXggMGM4YWUwZS4uZThkMmI4MSAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveGVuL2h5cGVyY2Fs bC5oCisrKyBiL3hlbi9pbmNsdWRlL3hlbi9oeXBlcmNhbGwuaApAQCAtMTQ3LDYgKzE0NywxMCBA QCBkb194ZW5vcHJvZl9vcChpbnQgb3AsIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0odm9pZCkgYXJn KTsKIGV4dGVybiBsb25nCiBkb194ZW5wbXVfb3AodW5zaWduZWQgaW50IG9wLCBYRU5fR1VFU1Rf SEFORExFX1BBUkFNKHhlbl9wbXVfcGFyYW1zX3QpIGFyZyk7CiAKK2V4dGVybiBsb25nCitkb192 ZXJzaW9uX29wKHVuc2lnbmVkIGludCBjbWQsCisgICAgWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh2 b2lkKSBhcmcsIHVuc2lnbmVkIGludCBsZW4pOworCiAjaWZkZWYgQ09ORklHX0NPTVBBVAogCiBl eHRlcm4gaW50CmRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaCBiL3hlbi9pbmNs dWRlL3hzbS9kdW1teS5oCmluZGV4IDg3YmU5ZTUuLjcxZDk1MDkgMTAwNjQ0Ci0tLSBhL3hlbi9p bmNsdWRlL3hzbS9kdW1teS5oCisrKyBiL3hlbi9pbmNsdWRlL3hzbS9kdW1teS5oCkBAIC03NTEs MyArNzUxLDIyIEBAIHN0YXRpYyBYU01fSU5MSU5FIGludCB4c21feGVuX3ZlcnNpb24gKFhTTV9E RUZBVUxUX0FSRyB1aW50MzJfdCBvcCkKICAgICAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlv bihYU01fUFJJViwgY3VycmVudC0+ZG9tYWluLCBOVUxMKTsKICAgICB9CiB9CisKK3N0YXRpYyBY U01fSU5MSU5FIGludCB4c21fdmVyc2lvbl9vcCAoWFNNX0RFRkFVTFRfQVJHIHVpbnQzMl90IG9w KQoreworICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9PVEhFUik7CisgICAgc3dpdGNoICggb3Ag KQorICAgIHsKKyAgICBjYXNlIFhFTl9WRVJTSU9OX3ZlcnNpb246CisgICAgY2FzZSBYRU5fVkVS U0lPTl9leHRyYXZlcnNpb246CisgICAgY2FzZSBYRU5fVkVSU0lPTl9jYXBhYmlsaXRpZXM6Cisg ICAgY2FzZSBYRU5fVkVSU0lPTl9wbGF0Zm9ybV9wYXJhbWV0ZXJzOgorICAgIGNhc2UgWEVOX1ZF UlNJT05fZ2V0X2ZlYXR1cmVzOgorICAgIGNhc2UgWEVOX1ZFUlNJT05fcGFnZXNpemU6CisgICAg Y2FzZSBYRU5fVkVSU0lPTl9ndWVzdF9oYW5kbGU6CisgICAgICAgIC8qIFRoZXNlIE1VU1QgYWx3 YXlzIGJlIGFjY2Vzc2libGUgdG8gYW55IGd1ZXN0IGJ5IGRlZmF1bHQuICovCisgICAgICAgIHJl dHVybiB4c21fZGVmYXVsdF9hY3Rpb24oWFNNX0hPT0ssIGN1cnJlbnQtPmRvbWFpbiwgTlVMTCk7 CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIHhzbV9kZWZhdWx0X2FjdGlvbihYU01fUFJJ ViwgY3VycmVudC0+ZG9tYWluLCBOVUxMKTsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS94ZW4vaW5j bHVkZS94c20veHNtLmggYi94ZW4vaW5jbHVkZS94c20veHNtLmgKaW5kZXggZGI0NDBmNi4uYWM4 MDQ3MiAxMDA2NDQKLS0tIGEveGVuL2luY2x1ZGUveHNtL3hzbS5oCisrKyBiL3hlbi9pbmNsdWRl L3hzbS94c20uaApAQCAtMTk0LDYgKzE5NCw3IEBAIHN0cnVjdCB4c21fb3BlcmF0aW9ucyB7CiAg ICAgaW50ICgqcG11X29wKSAoc3RydWN0IGRvbWFpbiAqZCwgdW5zaWduZWQgaW50IG9wKTsKICNl bmRpZgogICAgIGludCAoKnhlbl92ZXJzaW9uKSAodWludDMyX3QgY21kKTsKKyAgICBpbnQgKCp2 ZXJzaW9uX29wKSAodWludDMyX3QgY21kKTsKIH07CiAKICNpZmRlZiBDT05GSUdfWFNNCkBAIC03 MzYsNiArNzM3LDEyIEBAIHN0YXRpYyBpbmxpbmUgaW50IHhzbV94ZW5fdmVyc2lvbiAoeHNtX2Rl ZmF1bHRfdCBkZWYsIHVpbnQzMl90IG9wKQogewogICAgIHJldHVybiB4c21fb3BzLT54ZW5fdmVy c2lvbihvcCk7CiB9CisKK3N0YXRpYyBpbmxpbmUgaW50IHhzbV92ZXJzaW9uX29wICh4c21fZGVm YXVsdF90IGRlZiwgdWludDMyX3Qgb3ApCit7CisgICAgcmV0dXJuIHhzbV9vcHMtPnZlcnNpb25f b3Aob3ApOworfQorCiAjZW5kaWYgLyogWFNNX05PX1dSQVBQRVJTICovCiAKICNpZmRlZiBDT05G SUdfTVVMVElCT09UCmRpZmYgLS1naXQgYS94ZW4veHNtL2R1bW15LmMgYi94ZW4veHNtL2R1bW15 LmMKaW5kZXggOTc5MWFkNC4uNzc2ZGQwOSAxMDA2NDQKLS0tIGEveGVuL3hzbS9kdW1teS5jCisr KyBiL3hlbi94c20vZHVtbXkuYwpAQCAtMTYzLDQgKzE2Myw1IEBAIHZvaWQgeHNtX2ZpeHVwX29w cyAoc3RydWN0IHhzbV9vcGVyYXRpb25zICpvcHMpCiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwo b3BzLCBwbXVfb3ApOwogI2VuZGlmCiAgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB4ZW5f dmVyc2lvbik7CisgICAgc2V0X3RvX2R1bW15X2lmX251bGwob3BzLCB2ZXJzaW9uX29wKTsKIH0K ZGlmZiAtLWdpdCBhL3hlbi94c20vZmxhc2svaG9va3MuYyBiL3hlbi94c20vZmxhc2svaG9va3Mu YwppbmRleCAxYTk1Njg5Li43NTY5MDg2IDEwMDY0NAotLS0gYS94ZW4veHNtL2ZsYXNrL2hvb2tz LmMKKysrIGIveGVuL3hzbS9mbGFzay9ob29rcy5jCkBAIC0xNjU4LDYgKzE2NTgsNDQgQEAgc3Rh dGljIGludCBmbGFza194ZW5fdmVyc2lvbiAodWludDMyX3Qgb3ApCiAgICAgfQogfQogCitzdGF0 aWMgaW50IGZsYXNrX3ZlcnNpb25fb3AgKHVpbnQzMl90IG9wKQoreworICAgIHUzMiBkc2lkID0g ZG9tYWluX3NpZChjdXJyZW50LT5kb21haW4pOworCisgICAgc3dpdGNoICggb3AgKQorICAgIHsK KyAgICBjYXNlIFhFTl9WRVJTSU9OX3ZlcnNpb246CisgICAgICAgIHJldHVybiBhdmNfaGFzX3Bl cm0oZHNpZCwgU0VDSU5JVFNJRF9YRU4sIFNFQ0NMQVNTX1ZFUlNJT04sCisgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVkVSU0lPTl9fVkVSU0lPTiwgTlVMTCk7CisgICAgY2FzZSBYRU5fVkVS U0lPTl9leHRyYXZlcnNpb246CisgICAgICAgIHJldHVybiBhdmNfaGFzX3Blcm0oZHNpZCwgU0VD SU5JVFNJRF9YRU4sIFNFQ0NMQVNTX1ZFUlNJT04sCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgVkVSU0lPTl9fRVhUUkFWRVJTSU9OLCBOVUxMKTsKKyAgICBjYXNlIFhFTl9WRVJTSU9OX2Nh cGFiaWxpdGllczoKKyAgICAgICAgcmV0dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklUU0lE X1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRVJT SU9OX19DQVBBQklMSVRJRVMsIE5VTEwpOworICAgIGNhc2UgWEVOX1ZFUlNJT05fY2hhbmdlc2V0 OgorICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQsIFNFQ0lOSVRTSURfWEVOLCBTRUND TEFTU19WRVJTSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFUlNJT05fX0NIQU5H RVNFVCwgTlVMTCk7CisgICAgY2FzZSBYRU5fVkVSU0lPTl9wbGF0Zm9ybV9wYXJhbWV0ZXJzOgor ICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQsIFNFQ0lOSVRTSURfWEVOLCBTRUNDTEFT U19WRVJTSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFUlNJT05fX1BMQVRGT1JN X1BBUkFNRVRFUlMsIE5VTEwpOworICAgIGNhc2UgWEVOX1ZFUlNJT05fZ2V0X2ZlYXR1cmVzOgor ICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRzaWQsIFNFQ0lOSVRTSURfWEVOLCBTRUNDTEFT U19WRVJTSU9OLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIFZFUlNJT05fX0dFVF9GRUFU VVJFUywgTlVMTCk7CisgICAgY2FzZSBYRU5fVkVSU0lPTl9wYWdlc2l6ZToKKyAgICAgICAgcmV0 dXJuIGF2Y19oYXNfcGVybShkc2lkLCBTRUNJTklUU0lEX1hFTiwgU0VDQ0xBU1NfVkVSU0lPTiwK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWRVJTSU9OX19QQUdFU0laRSwgTlVMTCk7Cisg ICAgY2FzZSBYRU5fVkVSU0lPTl9ndWVzdF9oYW5kbGU6CisgICAgICAgIHJldHVybiBhdmNfaGFz X3Blcm0oZHNpZCwgU0VDSU5JVFNJRF9YRU4sIFNFQ0NMQVNTX1ZFUlNJT04sCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgVkVSU0lPTl9fR1VFU1RfSEFORExFLCBOVUxMKTsKKyAgICBjYXNl IFhFTl9WRVJTSU9OX2NvbW1hbmRsaW5lOgorICAgICAgICByZXR1cm4gYXZjX2hhc19wZXJtKGRz aWQsIFNFQ0lOSVRTSURfWEVOLCBTRUNDTEFTU19WRVJTSU9OLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFZFUlNJT05fX0NPTU1BTkRMSU5FLCBOVUxMKTsKKyAgICBkZWZhdWx0OgorICAg ICAgICByZXR1cm4gLUVQRVJNOworICAgIH0KK30KKwogbG9uZyBkb19mbGFza19vcChYRU5fR1VF U1RfSEFORExFX1BBUkFNKHhzbV9vcF90KSB1X2ZsYXNrX29wKTsKIGludCBjb21wYXRfZmxhc2tf b3AoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4c21fb3BfdCkgdV9mbGFza19vcCk7CiAKQEAgLTE3 OTcsNiArMTgzNSw3IEBAIHN0YXRpYyBzdHJ1Y3QgeHNtX29wZXJhdGlvbnMgZmxhc2tfb3BzID0g ewogICAgIC5wbXVfb3AgPSBmbGFza19wbXVfb3AsCiAjZW5kaWYKICAgICAueGVuX3ZlcnNpb24g PSBmbGFza194ZW5fdmVyc2lvbiwKKyAgICAudmVyc2lvbl9vcCA9IGZsYXNrX3ZlcnNpb25fb3As CiB9OwogCiBzdGF0aWMgX19pbml0IHZvaWQgZmxhc2tfaW5pdCh2b2lkKQpkaWZmIC0tZ2l0IGEv eGVuL3hzbS9mbGFzay9wb2xpY3kvYWNjZXNzX3ZlY3RvcnMgYi94ZW4veHNtL2ZsYXNrL3BvbGlj eS9hY2Nlc3NfdmVjdG9ycwppbmRleCBiYWRjZjFjLi43YjA5OGRiIDEwMDY0NAotLS0gYS94ZW4v eHNtL2ZsYXNrL3BvbGljeS9hY2Nlc3NfdmVjdG9ycworKysgYi94ZW4veHNtL2ZsYXNrL3BvbGlj eS9hY2Nlc3NfdmVjdG9ycwpAQCAtNDk2LDkgKzQ5NiwxMCBAQCBjbGFzcyBzZWN1cml0eQogICAg IGRlbF9vY29udGV4dAogfQogCi0jIENsYXNzIHZlcnNpb24gaXMgdXNlZCB0byBkZXNjcmliZSB0 aGUgWEVOVkVSXyBoeXBlcmNhbGwuCisjIENsYXNzIHZlcnNpb24gaXMgdXNlZCB0byBkZXNjcmli ZSB0aGUgWEVOVkVSXyBhbmQgVkVSU0lPTiBoeXBlcmNhbGwuCiAjIEFsbW9zdCBhbGwgc3ViLW9w cyBhcmUgZGVzY3JpYmVkIGhlcmUgLSBpbiB0aGUgZGVmYXVsdCBjYXNlIGFsbCBvZiB0aGVtIHNo b3VsZAotIyBiZSBhbGxvd2VkIGV4Y2VwdCB0aGUgWEVOVkVSX2NvbW1hbmRsaW5lLgorIyBiZSBh bGxvd2VkIGV4Y2VwdCB0aGUgWEVOVkVSX2NvbW1hbmRsaW5lLCBWRVJTSU9OX2NvbW1hbmRsaW5l LCBhbmQKKyMgVkVSU0lPTl9jaGFuZ2VzZXQuCiAjCiAjIFRoZSBvbmVzIHRoYXQgYXJlIG9taXR0 ZWQgYXJlIFhFTlZFUl92ZXJzaW9uLCBYRU5WRVJfcGxhdGZvcm1fcGFyYW1ldGVycywKICMgYW5k IFhFTlZFUl9nZXRfZmVhdHVyZXMgIC0gYXMgdGhleSBNVVNUIGFsd2F5cyBiZSByZXR1cm5lZCB0 byBhIGd1ZXN0LgpAQCAtNTE5LDQgKzUyMCwyMyBAQCBjbGFzcyB2ZXJzaW9uCiAgICAgeGVuX2d1 ZXN0X2hhbmRsZQogIyBYZW4gY29tbWFuZCBsaW5lLgogICAgIHhlbl9jb21tYW5kbGluZQorIyAt LS0gVkVSU0lPTiBoeXBlcmNhbGwgLS0tCisjIE9mdGVuIGNhbGxlZCBieSBQViBrZXJuZWxzIHRv IGZvcmNlIGFuIGNhbGxiYWNrLgorICAgIHZlcnNpb24KKyMgRXh0cmEgaW5mb3JtYXRpb25zICgt dW5zdGFibGUpLgorICAgIGV4dHJhdmVyc2lvbgorIyBTdWNoIGFzICJ4ZW4tMy4wLXg4Nl82NCB4 ZW4tMy4wLXg4Nl8zMnAgaHZtLTMuMC14ODZfMzIgaHZtLTMuMC14ODZfMzJwIGh2bS0zLjAteDg2 XzY0Ii4KKyAgICBjYXBhYmlsaXRpZXMKKyMgU3VjaCBhcyB0aGUgdmlydHVhbCBhZGRyZXNzIG9m IHdoZXJlIHRoZSBoeXBlcnZpc29yIHJlc2lkZXMuCisgICAgcGxhdGZvcm1fcGFyYW1ldGVycwor IyBTb3VyY2UgY29kZSBjaGFuZ2VzZXQuCisgICAgY2hhbmdlc2V0CisjIFRoZSBmZWF0dXJlcyB0 aGUgaHlwZXJ2aXNvciBzdXBwb3J0cy4KKyAgICBnZXRfZmVhdHVyZXMKKyMgUGFnZSBzaXplIHRo ZSBoeXBlcnZpc29yIHVzZXMuCisgICAgcGFnZXNpemUKKyMgQW4gdmFsdWUgdGhhdCB0aGUgY29u dHJvbCBzdGFjayBjYW4gY2hvb3NlLgorICAgIGd1ZXN0X2hhbmRsZQorIyBYZW4gY29tbWFuZCBs aW5lLgorICAgIGNvbW1hbmRsaW5lCiB9Ci0tIAoyLjUuMAoKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRl dmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==