From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v5 1/8] drm/i915/skl: Add support to load SKL CSR firmware. Date: Mon, 4 May 2015 11:30:52 +0200 Message-ID: <20150504093052.GS30184@phenom.ffwll.local> References: <1430232306.19128.30.camel@intel.com> <1430328560-24117-1-git-send-email-animesh.manna@intel.com> <1430398954.9584.4.camel@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by gabe.freedesktop.org (Postfix) with ESMTP id 1D1E56E38F for ; Mon, 4 May 2015 02:28:34 -0700 (PDT) Received: by wicmx19 with SMTP id mx19so73092951wic.1 for ; Mon, 04 May 2015 02:28:33 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1430398954.9584.4.camel@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Imre Deak Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBcHIgMzAsIDIwMTUgYXQgMDQ6MDI6MzRQTSArMDMwMCwgSW1yZSBEZWFrIHdyb3Rl Ogo+IE9uIGtlLCAyMDE1LTA0LTI5IGF0IDIyOjU5ICswNTMwLCBBbmltZXNoIE1hbm5hIHdyb3Rl Ogo+ID4gRnJvbTogIkEuU3VuaWwgS2FtYXRoIiA8c3VuaWwua2FtYXRoQGludGVsLmNvbT4KPiA+ IAo+ID4gRGlzcGxheSBDb250ZXh0IFNhdmUgYW5kIFJlc3RvcmUgc3VwcG9ydCBpcyBuZWVkZWQg Zm9yCj4gPiB2YXJpb3VzIFNLTCBEaXNwbGF5IEMgc3RhdGVzIGxpa2UgREM1LCBEQzYuCj4gPiAK PiA+IFRoaXMgaW1wbGVtZW50YXRpb24gaXMgYWRkZWQgYmFzZWQgb24gZmlyc3QgdmVyc2lvbiBv ZiBETUMgQ1NSIHByb2dyYW0KPiA+IHRoYXQgd2UgcmVjZWl2ZWQgZnJvbSBoL3cgdGVhbS4KPiA+ IAo+ID4gSGVyZSB3ZSBhcmUgdXNpbmcgcmVxdWVzdF9maXJtd2FyZSBiYXNlZCBkZXNpZ24uCj4g PiBGaW5hbGx5IHRoaXMgZmlybXdhcmUgc2hvdWxkIGVuZCB1cCBpbiBsaW51eC1maXJtd2FyZSB0 cmVlLgo+ID4gCj4gPiBGb3IgU0tMIHBsYXRmb3JtIGl0cyBtYW5kYXRvcnkgdG8gZW5zdXJlIHRo YXQgd2UgbG9hZCB0aGlzCj4gPiBjc3IgcHJvZ3JhbSBiZWZvcmUgZW5hYmxpbmcgREMgc3RhdGVz IGxpa2UgREM1L0RDNi4KPiA+IAo+ID4gQXMgQ1NSIHByb2dyYW0gZ2V0cyByZXNldCBvbiB2YXJp b3VzIGNvbmRpdGlvbnMsIHdlIHNob3VsZCBlbnN1cmUKPiA+IHRvIGxvYWQgaXQgZHVyaW5nIGJv b3QgYW5kIGluIGZ1dHVyZSBjaGFuZ2UgdG8gYmUgYWRkZWQgdG8gbG9hZAo+ID4gdGhpcyBzeXN0 ZW0gcmVzdW1lIHNlcXVlbmNlIHRvby4KPiA+IAo+ID4gdjE6IEluaXRpYWwgcmVsZXNlIGFzIFJG QyBwYXRjaAo+ID4gCj4gPiB2MjogRGVzaWduIGNoYW5nZSBhcyBwZXIgRGFuaWVsLCBEYW1pZW4g YW5kIFNob2JpdCdzIHJldmlldyBjb21tZW50cwo+ID4gcmVxdWVzdCBmaXJtd2FyZSBtZXRob2Qg Zm9sbG93ZWQuCj4gPiAKPiA+IHYzOiBTb21lIG9wdGltaXphdGlvbiBhbmQgZnVuY3Rpb25hbCBj aGFuZ2VzLgo+ID4gUHVsbGVkIHJlZ2lzdGVyIGRlZmluZXMgaW50byBkcml2ZXJzL2dwdS9kcm0v aTkxNS9pOTE1X3JlZy5oCj4gPiBVc2VkIGttZW1kdXAgdG8gYWxsb2NhdGUgYW5kIGR1cGxpY2F0 ZSBmaXJtd2FyZSBjb250ZW50Lgo+ID4gRW5zdXJlZCB0byBmcmVlIGFsbG9jYXRlZCBidWZmZXIu Cj4gPiAKPiA+IHY0OiBNb2RpZmllZCBhcyBwZXIgcmV2aWV3IGNvbW1lbnRzIGZyb20gU2F0aGVl c2ggYW5kIERhbmllbAo+ID4gUmVtb3ZlZCB0ZW1wb3JhcnkgYnVmZmVyLgo+ID4gT3B0aW1pemVk IG51bWJlciBvZiB3cml0ZXMgYnkgcmVwbGFjaW5nIEk5MTVfV1JJVEUgd2l0aCBJOTE1X1dSSVRF NjQuCj4gPiAKPiA+IHY1Ogo+ID4gTW9kaWZpZWQgYXMgcGVyIHJldmlldyBjb21lbW50cyBmcm9t IERhbWllbi4KPiA+IC0gQ2hhbmdlZCBuYW1lIGZvciBmdW5jdGlvbnMgYW5kIGZpcm13YXJlLgo+ ID4gLSBJbnRyb2R1Y2VkIEhBU19DU1IuCj4gPiAtIFJldmVydGVkIGJhY2sgcHJldmlvdXMgY2hh bmdlIGFuZCB1c2VkIGNzcl9idWYgd2l0aCB1OCBzaXplLgo+ID4gLSBVc2luZyBjcHVfdG9fYmU2 NCBmb3IgZW5kaWFubmVzcyBjaGFuZ2UuCj4gPiAKPiA+IE1vZGlmaWVkIGFzIHBlciByZXZpZXcg Y29tbWVudHMgZnJvbSBJbXJlLgo+ID4gLSBNb2RpZmllZCByZWdpc3RlcnMgYW5kIG1hY3JvIG5h bWVzIHRvIGJlIGEgYml0IGNsb3NlciB0byBic3BlYyB0ZXJtaW5vbG9neQo+ID4gYW5kIHRoZSBl eGlzdGluZyByZWdpc3RlciBuYW1pbmcgaW4gdGhlIGRyaXZlci4KPiA+IC0gRWFybHkgcmV0dXJu IGZvciBub24gU0tMIHBsYXRmb3JtcyBpbiBpbnRlbF9sb2FkX2Nzcl9wcm9ncmFtIGZ1bmN0aW9u Lgo+ID4gLSBBZGRlZCBsb2NraW5nIGFyb3VuZCBDU1IgcHJvZ3JhbSBsb2FkIGZ1bmN0aW9uIGFz IGl0IG1heSBiZSBjYWxsZWQKPiA+IGNvbmN1cnJlbnRseSBkdXJpbmcgc3lzdGVtL3J1bnRpbWUg cmVzdW1lLgo+ID4gLSBSZWxlYXNpbmcgdGhlIGZ3IGJlZm9yZSBsb2FkaW5nIHRoZSBwcm9ncmFt IGZvciBjb25zaXN0ZW5jeQo+ID4gLSBIYW5kbGVkIGVycm9yIHBhdGggZHVyaW5nIGYvdyBsb2Fk Lgo+ID4gCj4gPiB2NjogTW9kaWZpZWQgYXMgcGVyIHJldmlldyBjb21tZW50cyBmcm9tIEltcmUu Cj4gPiAtIENvcnJlY3RlZCBvdXRfZnJlZWNzciBzZXF1ZW5jZS4KPiA+IAo+ID4gdjc6IE1vZGlm aWVkIGFzIHBlciByZXZpZXcgY29tbWVudHMgZnJvbSBJbXJlLgo+ID4gRmFpbCBsb2FkaW5nIGZ3 IGlmIGZ3LT5zaXplJTghPTAuCj4gPiAKPiA+IHY4OiBSZWJhc2UgdG8gbGF0ZXN0Lgo+ID4gCj4g PiB2OTogUmViYXNlIG9uIHRvcCBvZiAtbmlnaHRseSAoRGFtaWVuKQo+ID4gCj4gPiB2MTA6IEVu YWJsZWQgc3VwcG9ydCBmb3IgZG1jIGZpcm13YXJlIHZlciAxLjAuCj4gPiBBY2NvcmRpbmcgdG8g dmVyIDEuMCBpbiBhIHNpbmdsZSBiaW5hcnkgcGFja2FnZSBhbGwgdGhlIGZpcm13YXJlJ3MgdGhh dCBhcmUKPiA+IHJlcXVpcmVkIGZvciBkaWZmZXJlbnQgc3RlcHBpbmcncyBvZiB0aGUgcHJvZHVj dCB3aWxsIGJlIHN0b3JlZC4gVGhlIHBhY2thZ2UKPiA+IGNvbnRhaW5zIHRoZSBjc3MgaGVhZGVy LCBmb2xsb3dlZCBieSB0aGUgcGFja2FnZSBoZWFkZXIgYW5kIHRoZSBhY3R1YWwgZG1jCj4gPiBm aXJtd2FyZXMuIFBhY2thZ2UgaGVhZGVyIGNvbnRhaW5zIHRoZSBmaXJtd2FyZS9zdGVwcGluZyBt YXBwaW5nIHRhYmxlIGFuZAo+ID4gdGhlIGNvcnJlc3BvbmRpbmcgZmlybXdhcmUgb2Zmc2V0cyB0 byB0aGUgaW5kaXZpZHVhbCBiaW5hcmllcywgd2l0aGluIHRoZQo+ID4gcGFja2FnZS4gRWFjaCBp bmRpdmlkdWFsIHByb2dyYW0gYmluYXJ5IGNvbnRhaW5zIHRoZSBoZWFkZXIgYW5kIHRoZSBwYXls b2FkCj4gPiBzZWN0aW9ucyB3aG9zZSBzaXplIGlzIHNwZWNpZmllZCBpbiB0aGUgaGVhZGVyIHNl Y3Rpb24uIFRoaXMgY2hhbmdlcyBhcmUgZG9uZQo+ID4gdG8gZXh0cmFjdCB0aGUgc3BlY2lmaWMg ZmlybWF3YXJlIGZyb20gdGhlIHBhY2thZ2UuIChBbmltZXNoKQo+ID4gCj4gPiB2MTE6IE1vZGlm aWVkIGFzIHBlciByZXZpZXcgY29tZW1udHMgZnJvbSBJbXJlLgo+ID4gLSBBZGRlZCBjb2RlIGNv bW1lbnQgZnJvbSBicGVjIGZvciBoZWFkZXIgc3RydWN0dXJlIGVsZW1lbnRzLgo+ID4gLSBBZGRl ZCBfX3BhY2tlZCB0byBhdm9pZCBzdHJ1Y3R1cmUgcGFkZGluZy4KPiA+IC0gQWRkZWQgaGVscGVy IGZ1bmN0aW9ucyBmb3Igc3RlcHBpbmcgYW5kIHN1YnN0ZXBwaW5nIGluZm8uCj4gPiAtIEFkZGVk IGNvZGUgY29tbWVudCBmb3IgQ1NSX01BWF9GV19TSVpFLgo+ID4gLSBEaXNhYmxlZCBCWFQgZmly bXdhcmUgbG9hZGluZywgd2lsbCBiZSBlbmFibGVkIHdpdGggZG1jIDEuMCBzdXBwb3J0Lgo+ID4g LSBDaGFuZ2VkIHNrbF9zdGVwcGluZ19pbmZvIGJhc2VkIG9uIGJzcGVjLCBlYXJsaWVyIHVzZWQg ZnJvbSBjb25maWcgREIuCj4gPiAtIFJlbW92ZWQgZHVwbGljYXRlIGNhbGwgb2YgY3B1X3RvX2Jl KiBmcm9tIGludGVsX2Nzcl9sb2FkX3Byb2dyYW0gZnVuY3Rpb24uCj4gPiAtIFVzZWQgY3B1X3Rv X2JlMzIgaW5zdGVhZCBvZiBjcHVfdG9fYmU2NCBhcyBmaXJtd2FyZSBiaW5hcnkgaW4gZHdvcmQg YWxpZ25lZC4KPiA+IC0gQWRkZWQgc2FuaXR5IGNoZWNrIGZvciBoZWFkZXIgbGVuZ3RoLgo+ID4g LSBBZGRlZCBzYW5pdHkgY2hlY2sgZm9yIG1taW8gYWRkcmVzcyBnb3QgZnJvbSBmaXJtd2FyZSBi aW5hcnkuCj4gPiAtIGttYWxsb2MgZG9uZSBzZXBhcmF0ZWx5IGZvciBkbWMgaGVhZGVyIGFuZCBk bWMgZmlybXdhcmUuIChBbmltZXNoKQo+ID4gCj4gPiB2MTI6IE1vZGlmaWVkIGFzIHBlciByZXZp ZXcgY29tZW1udHMgZnJvbSBJbXJlLgo+ID4gLSBDb3JyZWN0ZWQgdGhlIHR5cG8gZXJyb3IgaW4g c2tsIHN0ZXBwaW5nIGluZm8gc3RydWN0dXJlLgo+ID4gLSBBZGRlZCBvdXQtb2YtYm91bmQgYWNj ZXNzIGZvciBza2xfc3RlcHBpbmdfaW5mby4KPiA+IC0gU2FuaXR5IGNoZWNrIGZvciBtbWlvIGFk ZHJlc3MgbW9kaWZpZWQuCj4gPiAtIFNhbml0eSBjaGVjayBhZGRlZCBmb3Igc3RlcHBpbmcgYW5k IHN1YnN0ZXBwaWcuCj4gPiAtIE1vZGlmaWVkIHRoZSBpbnRlbF9kbWNfaW5mbyBzdHJ1Y3R1cmUs IGNhY2hlIG9ubHkgdGhlIHJlcXVpcmVkIGhlYWRlciBpbmZvLiAoQW5pbWVzaCkKPiA+IAo+ID4g djEzOiBjbGFyaWZ5IGZpcm13YXJlIGxvYWQgZXJyb3IgbWVzc2FnZS4KPiA+IFRoZSByZWFzb24g Zm9yIGEgZmlybXdhcmUgbG9hZGluZyBmYWlsdXJlIGNhbiBiZSBvYnNjdXJlIGlmIHRoZSBkcml2 ZXIKPiA+IGlzIGJ1aWx0LWluLiBQcm92aWRlIGFuIGV4cGxhbmF0aW9uIHRvIHRoZSB1c2VyIGFi b3V0IHRoZSBsaWtlbHkgcmVhc29uIGZvcgo+ID4gdGhlIGZhaWx1cmUgYW5kIGhvdyB0byByZXNv bHZlIGl0LiAoSW1yZSkKPiA+IAo+ID4gdjE0OiBTdWdnZXN0ZWQgYnkgSmFuaS4KPiA+IC0gZml4 IHMvSTkxNS9DT05GSUdfRFJNX0k5MTUvIHR5cG8KPiA+IC0gYWRkIGZ3X3BhdGggdG8gdGhlIGZp cm13YXJlIG9iamVjdCBpbnN0ZWFkIG9mIHVzaW5nIGEgc3RhdGljIHB0ciAoSmFuaSkKPiA+IAo+ ID4gdjE1Ogo+ID4gMSkgQ2hhbmdlZCB0aGUgZmlybXdhcmUgbmFtZSBhcyBkbWNfZ2VuOS5iaW4s IGV2ZXJ5dGltZSBmb3IgYSBuZXcgZmlybXdhcmUgdmVyc2lvbiBhIHN5bWJvbGljIGxpbmsKPiA+ IHdpdGggc2FtZSBuYW1lIHdpbGwgaGVscCBub3QgdG8gYnVpbGQga2VybmVsIGFnYWluLgo+ID4g MikgQ2hhbmdlcyBkb25lIGFzIHBlciByZXZpZXcgY29tbWVudHMgZnJvbSBJbXJlLgo+ID4gLSBF cnJvciBjaGVjayByZW1vdmVkIGZvciBpbnRlbF9jc3JfdWNvZGVfaW5pdC4KPiA+IC0gTW92ZWQg Y3NyLXNwZWNpZmljIGRhdGEgc3RydWN0dXJlIHRvIGludGVsX2Nzci5oIGFuZCBvcHRpbWl6YXRp b24gZG9uZSBvbiBzdHJ1Y3R1cmUgZGVmaW5pdGlvbi4KPiA+IC0gZnctPmRhdGEgdXNlZCBkaXJl Y3RseSBmb3IgcGFyc2luZyB0aGUgaGVhZGVyIGluZm8gJiBtZW1vcnkgYWxsb2NhdGlvbgo+ID4g b25seSBkb25lIHNlcGFyYXRlbHkgZm9yIHBheWxvYWQuIChBbmltZXNoKQo+ID4gCj4gPiB2MTY6 Cj4gPiAtIE5vIG5lZWQgZm9yIG91dF9yZWdzIGxhYmVsIGluIGk5MTVfZHJpdmVyX2xvYWQoKSwg c28gcmVtb3ZlZCBpdC4KPiA+IC0gQ2hhbmdlZCB0aGUgZmlybXdhcmUgbmFtZSBhcyBza2xfZG1j X3ZlcjEuYmluLCBmb2xsb3dlZCBuYW1pbmcgY29udmVudGlvbiA8cGxhdGZvcm0+X2RtY188YXBp LXZlcnNpb24+LmJpbiAoQW5pbWVzaCkKPiA+IAo+ID4gSXNzdWU6IFZJWi0yNTY5Cj4gPiBTaWdu ZWQtb2ZmLWJ5OiBBLlN1bmlsIEthbWF0aCA8c3VuaWwua2FtYXRoQGludGVsLmNvbT4KPiA+IFNp Z25lZC1vZmYtYnk6IERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBpbnRlbC5jb20+Cj4g PiBTaWduZWQtb2ZmLWJ5OiBBbmltZXNoIE1hbm5hIDxhbmltZXNoLm1hbm5hQGludGVsLmNvbT4K PiA+IFNpZ25lZC1vZmYtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGludGVsLmNvbT4KPiAKPiBG b3IgdGhlIGZ1dHVyZTogc2NyaXB0cy9jaGVja3BhdGNoLnBsIGhhcyBhIHZhbGlkIHdhcm5pbmcg YWJvdXQgdGhlCj4gY29tbWl0IG1lc3NhZ2UsIHBsZWFzZSBmaXggdGhlIGlzc3VlcyByZXBvcnRl ZCBieSB0aGlzIHRvb2wgbmV4dCB0aW1lLgoKSG0sIHdoYXQgZG9lcyBjaGVja3BhdGNoIGNvbXBs YWluIGFib3V0IC0gbWluZSBkaWRuJ3Q/IEkgZGlkIGFwcGx5IHRoZQpwYXRjaCBtYW51YWxseSB0 aG91Z2guCi1EYW5pZWwKCj4gCj4gUmV2aWV3ZWQtYnk6IEltcmUgRGVhayA8aW1yZS5kZWFrQGlu dGVsLmNvbT4KPiAKPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlICAg IHwgICAzICstCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEuYyAgfCAgMTEgKy0K PiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jICB8ICAyMCArKysKPiA+ICBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oICB8ICAxNyArKwo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Nzci5jIHwgMzY3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oIHwgICA1ICsKPiA+ ICA2IGZpbGVzIGNoYW5nZWQsIDQyMCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ID4g IGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9jc3IuYwo+ID4g Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ID4gaW5kZXggYTY5MDAyZS4uNTIzOGRlYiAxMDA2NDQK PiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L01ha2VmaWxlCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9NYWtlZmlsZQo+ID4gQEAgLTEyLDcgKzEyLDggQEAgaTkxNS15IDo9IGk5 MTVfZHJ2Lm8gXAo+ID4gICAgICAgICAgICBpOTE1X3N1c3BlbmQubyBcCj4gPiAgCSAgaTkxNV9z eXNmcy5vIFwKPiA+ICAJICBpbnRlbF9wbS5vIFwKPiA+IC0JICBpbnRlbF9ydW50aW1lX3BtLm8K PiA+ICsJICBpbnRlbF9ydW50aW1lX3BtLm8gXAo+ID4gKwkgIGludGVsX2Nzci5vCj4gPiAgCj4g PiAgaTkxNS0kKENPTkZJR19DT01QQVQpICAgKz0gaTkxNV9pb2MzMi5vCj4gPiAgaTkxNS0kKENP TkZJR19ERUJVR19GUykgKz0gaTkxNV9kZWJ1Z2ZzLm8KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pOTE1X2RtYS5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kbWEu Ywo+ID4gaW5kZXggZTQ0MTE2Zi4uYTIzODg4OSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZG1hLmMKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZG1hLmMKPiA+IEBAIC04MTYsNiArODE2LDcgQEAgaW50IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0 IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBmbGFncykKPiA+ICAJc3Bpbl9sb2NrX2lu aXQoJmRldl9wcml2LT5tbWlvX2ZsaXBfbG9jayk7Cj4gPiAgCW11dGV4X2luaXQoJmRldl9wcml2 LT5kcGlvX2xvY2spOwo+ID4gIAltdXRleF9pbml0KCZkZXZfcHJpdi0+bW9kZXNldF9yZXN0b3Jl X2xvY2spOwo+ID4gKwltdXRleF9pbml0KCZkZXZfcHJpdi0+Y3NyX2xvY2spOwo+ID4gIAo+ID4g IAlpbnRlbF9wbV9zZXR1cChkZXYpOwo+ID4gIAo+ID4gQEAgLTg2MSw5ICs4NjIsMTIgQEAgaW50 IGk5MTVfZHJpdmVyX2xvYWQoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgdW5zaWduZWQgbG9uZyBm bGFncykKPiA+ICAKPiA+ICAJaW50ZWxfdW5jb3JlX2luaXQoZGV2KTsKPiA+ICAKPiA+ICsJLyog TG9hZCBDU1IgRmlybXdhcmUgZm9yIFNLTCAqLwo+ID4gKwlpbnRlbF9jc3JfdWNvZGVfaW5pdChk ZXYpOwo+ID4gKwo+ID4gIAlyZXQgPSBpOTE1X2dlbV9ndHRfaW5pdChkZXYpOwo+ID4gIAlpZiAo cmV0KQo+ID4gLQkJZ290byBvdXRfcmVnczsKPiA+ICsJCWdvdG8gb3V0X2ZyZWVjc3I7Cj4gPiAg Cj4gPiAgCS8qIFdBUk5JTkc6IEFwcGFyZW50bHkgd2UgbXVzdCBraWNrIGZiZGV2IGRyaXZlcnMg YmVmb3JlIHZnYWNvbiwKPiA+ICAJICogb3RoZXJ3aXNlIHRoZSB2Z2EgZmJkZXYgZHJpdmVyIGZh bGxzIG92ZXIuICovCj4gPiBAQCAtMTAzMyw3ICsxMDM3LDggQEAgb3V0X210cnJmcmVlOgo+ID4g IAlpb19tYXBwaW5nX2ZyZWUoZGV2X3ByaXYtPmd0dC5tYXBwYWJsZSk7Cj4gPiAgb3V0X2d0dDoK PiA+ICAJaTkxNV9nbG9iYWxfZ3R0X2NsZWFudXAoZGV2KTsKPiA+IC1vdXRfcmVnczoKPiA+ICtv dXRfZnJlZWNzcjoKPiA+ICsJaW50ZWxfY3NyX3Vjb2RlX2ZpbmkoZGV2KTsKPiA+ICAJaW50ZWxf dW5jb3JlX2ZpbmkoZGV2KTsKPiA+ICAJcGNpX2lvdW5tYXAoZGV2LT5wZGV2LCBkZXZfcHJpdi0+ cmVncyk7Cj4gPiAgcHV0X2JyaWRnZToKPiA+IEBAIC0xMTEzLDYgKzExMTgsOCBAQCBpbnQgaTkx NV9kcml2ZXJfdW5sb2FkKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4gPiAgCW11dGV4X3VubG9j aygmZGV2LT5zdHJ1Y3RfbXV0ZXgpOwo+ID4gIAlpOTE1X2dlbV9jbGVhbnVwX3N0b2xlbihkZXYp Owo+ID4gIAo+ID4gKwlpbnRlbF9jc3JfdWNvZGVfZmluaShkZXYpOwo+ID4gKwo+ID4gIAlpbnRl bF90ZWFyZG93bl9nbWJ1cyhkZXYpOwo+ID4gIAlpbnRlbF90ZWFyZG93bl9tY2hiYXIoZGV2KTsK PiA+ICAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+ID4gaW5kZXggYzNmZGJiMC4uYWNkMGUy YiAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmMKPiA+IEBAIC01NTYsNiArNTU2LDI2 IEBAIHZvaWQgaW50ZWxfaHBkX2NhbmNlbF93b3JrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdikKPiA+ICAJY2FuY2VsX2RlbGF5ZWRfd29ya19zeW5jKCZkZXZfcHJpdi0+aG90cGx1 Z19yZWVuYWJsZV93b3JrKTsKPiA+ICB9Cj4gPiAgCj4gPiArdm9pZCBpOTE1X2Zpcm13YXJlX2xv YWRfZXJyb3JfcHJpbnQoY29uc3QgY2hhciAqZndfcGF0aCwgaW50IGVycikKPiA+ICt7Cj4gPiAr CURSTV9FUlJPUigiZmFpbGVkIHRvIGxvYWQgZmlybXdhcmUgJXMgKCVkKVxuIiwgZndfcGF0aCwg ZXJyKTsKPiA+ICsKPiA+ICsJLyoKPiA+ICsJICogSWYgdGhlIHJlYXNvbiBpcyBub3Qga25vd24g YXNzdW1lIC1FTk9FTlQgc2luY2UgdGhhdCdzIHRoZSBtb3N0Cj4gPiArCSAqIHVzdWFsIGZhaWx1 cmUgbW9kZS4KPiA+ICsJICovCj4gPiArCWlmICghZXJyKQo+ID4gKwkJZXJyID0gLUVOT0VOVDsK PiA+ICsKPiA+ICsJaWYgKCEoSVNfQlVJTFRJTihDT05GSUdfRFJNX0k5MTUpICYmIGVyciA9PSAt RU5PRU5UKSkKPiA+ICsJCXJldHVybjsKPiA+ICsKPiA+ICsJRFJNX0VSUk9SKAo+ID4gKwkgICJU aGUgZHJpdmVyIGlzIGJ1aWx0LWluLCBzbyB0byBsb2FkIHRoZSBmaXJtd2FyZSB5b3UgbmVlZCB0 b1xuIgo+ID4gKwkgICJpbmNsdWRlIGl0IGVpdGhlciBpbiB0aGUga2VybmVsIChzZWUgQ09ORklH X0VYVFJBX0ZJUk1XQVJFKSBvclxuIgo+ID4gKwkgICJpbiB5b3VyIGluaXRyZC9pbml0cmFtZnMg aW1hZ2UuXG4iKTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIHZvaWQgaW50ZWxfc3VzcGVuZF9l bmNvZGVycyhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCj4gPiAgewo+ID4gIAlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZGV2X3ByaXYtPmRldjsKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkx NV9kcnYuaAo+ID4gaW5kZXggNDdiZTRhNS4uOTBlNDdhOSAxMDA2NDQKPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmgKPiA+IEBAIC02NjcsNiArNjY3LDE1IEBAIHN0cnVjdCBpbnRlbF91bmNvcmUg ewo+ID4gICNkZWZpbmUgZm9yX2VhY2hfZndfZG9tYWluKGRvbWFpbl9fLCBkZXZfcHJpdl9fLCBp X18pIFwKPiA+ICAJZm9yX2VhY2hfZndfZG9tYWluX21hc2soZG9tYWluX18sIEZPUkNFV0FLRV9B TEwsIGRldl9wcml2X18sIGlfXykKPiA+ICAKPiA+ICtzdHJ1Y3QgaW50ZWxfY3NyIHsKPiA+ICsJ Y29uc3QgY2hhciAqZndfcGF0aDsKPiA+ICsJX19iZTMyICpkbWNfcGF5bG9hZDsKPiA+ICsJdWlu dDMyX3QgZG1jX2Z3X3NpemU7Cj4gPiArCXVpbnQzMl90IG1taW9fY291bnQ7Cj4gPiArCXVpbnQz Ml90IG1taW9hZGRyWzhdOwo+ID4gKwl1aW50MzJfdCBtbWlvZGF0YVs4XTsKPiA+ICt9Owo+ID4g Kwo+ID4gICNkZWZpbmUgREVWX0lORk9fRk9SX0VBQ0hfRkxBRyhmdW5jLCBzZXApIFwKPiA+ICAJ ZnVuYyhpc19tb2JpbGUpIHNlcCBcCj4gPiAgCWZ1bmMoaXNfaTg1eCkgc2VwIFwKPiA+IEBAIC0x NTczLDYgKzE1ODIsMTEgQEAgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgewo+ID4gIAo+ID4gIAlz dHJ1Y3QgaTkxNV92aXJ0dWFsX2dwdSB2Z3B1Owo+ID4gIAo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3Ny IGNzcjsKPiA+ICsKPiA+ICsJLyogRGlzcGxheSBDU1ItcmVsYXRlZCBwcm90ZWN0aW9uICovCj4g PiArCXN0cnVjdCBtdXRleCBjc3JfbG9jazsKPiA+ICsKPiA+ICAJc3RydWN0IGludGVsX2dtYnVz IGdtYnVzW0dNQlVTX05VTV9QSU5TXTsKPiA+ICAKPiA+ICAJLyoqIGdtYnVzX211dGV4IHByb3Rl Y3RzIGFnYWluc3QgY29uY3VycmVudCB1c2FnZSBvZiB0aGUgc2luZ2xlIGh3IGdtYnVzCj4gPiBA QCAtMjQyNSw2ICsyNDM5LDggQEAgc3RydWN0IGRybV9pOTE1X2NtZF90YWJsZSB7Cj4gPiAgI2Rl ZmluZSBIQVNfUkM2KGRldikJCShJTlRFTF9JTkZPKGRldiktPmdlbiA+PSA2KQo+ID4gICNkZWZp bmUgSEFTX1JDNnAoZGV2KQkJKElOVEVMX0lORk8oZGV2KS0+Z2VuID09IDYgfHwgSVNfSVZZQlJJ REdFKGRldikpCj4gPiAgCj4gPiArI2RlZmluZSBIQVNfQ1NSKGRldikJKElTX1NLWUxBS0UoZGV2 KSkKPiA+ICsKPiA+ICAjZGVmaW5lIElOVEVMX1BDSF9ERVZJQ0VfSURfTUFTSwkJMHhmZjAwCj4g PiAgI2RlZmluZSBJTlRFTF9QQ0hfSUJYX0RFVklDRV9JRF9UWVBFCQkweDNiMDAKPiA+ICAjZGVm aW5lIElOVEVMX1BDSF9DUFRfREVWSUNFX0lEX1RZUEUJCTB4MWMwMAo+ID4gQEAgLTI1MTUsNiAr MjUzMSw3IEBAIGV4dGVybiB1bnNpZ25lZCBsb25nIGk5MTVfZ2Z4X3ZhbChzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwo+ID4gIGV4dGVybiB2b2lkIGk5MTVfdXBkYXRlX2dmeF92 YWwoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKPiA+ICBpbnQgdmx2X2ZvcmNl X2dmeF9jbG9jayhzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsIGJvb2wgb24pOwo+ ID4gIHZvaWQgaW50ZWxfaHBkX2NhbmNlbF93b3JrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdik7Cj4gPiArdm9pZCBpOTE1X2Zpcm13YXJlX2xvYWRfZXJyb3JfcHJpbnQoY29uc3Qg Y2hhciAqZndfcGF0aCwgaW50IGVycik7Cj4gPiAgCj4gPiAgLyogaTkxNV9pcnEuYyAqLwo+ID4g IHZvaWQgaTkxNV9xdWV1ZV9oYW5nY2hlY2soc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfY3NyLmMgYi9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9jc3IuYwo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGluZGV4 IDAwMDAwMDAuLmY1ZmE1NzQKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2Nzci5jCj4gPiBAQCAtMCwwICsxLDM2NyBAQAo+ID4gKy8qCj4gPiAr ICogQ29weXJpZ2h0IMKpIDIwMTQgSW50ZWwgQ29ycG9yYXRpb24KPiA+ICsgKgo+ID4gKyAqIFBl cm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29u IG9idGFpbmluZyBhCj4gPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVk IGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiA+ICsgKiB0byBkZWFsIGlu IHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1p dGF0aW9uCj4gPiArICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1 Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsCj4gPiArICogYW5kL29yIHNlbGwgY29waWVz IG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gPiAr ICogU29mdHdhcmUgaXMgZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dp bmcgY29uZGl0aW9uczoKPiA+ICsgKgo+ID4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNl IGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiA+ICsgKiBw YXJhZ3JhcGgpIHNoYWxsIGJlIGluY2x1ZGVkIGluIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlCj4gPiArICogU29mdHdhcmUuCj4gPiArICoKPiA+ICsgKiBUSEUgU09G VFdBUkUgSVMgUFJPVklERUQgIkFTIElTIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwg RVhQUkVTUyBPUgo+ID4gKyAqIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8g VEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLAo+ID4gKyAqIEZJVE5FU1MgRk9SIEEg UEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFM TAo+ID4gKyAqIFRIRSBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1Ig QU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCj4gPiArICogTElBQklMSVRZLCBXSEVUSEVSIElO IEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcKPiA+ICsg KiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUg VVNFIE9SIE9USEVSIERFQUxJTkdTCj4gPiArICogSU4gVEhFIFNPRlRXQVJFLgo+ID4gKyAqCj4g PiArICovCj4gPiArI2luY2x1ZGUgPGxpbnV4L2Zpcm13YXJlLmg+Cj4gPiArI2luY2x1ZGUgImk5 MTVfZHJ2LmgiCj4gPiArI2luY2x1ZGUgImk5MTVfcmVnLmgiCj4gPiArCj4gPiArI2RlZmluZSBJ OTE1X0NTUl9TS0wgImk5MTUvc2tsX2RtY192ZXI0LmJpbiIKPiA+ICsKPiA+ICtNT0RVTEVfRklS TVdBUkUoSTkxNV9DU1JfU0tMKTsKPiA+ICsKPiA+ICsvKgo+ID4gKyogU0tMIENTUiByZWdpc3Rl cnMgZm9yIERDNSBhbmQgREM2Cj4gPiArKi8KPiA+ICsjZGVmaW5lIENTUl9QUk9HUkFNX0JBU0UJ CTB4ODAwMDAKPiA+ICsjZGVmaW5lIENTUl9TU1BfQkFTRV9BRERSX0dFTjkJCTB4MDAwMDJGQzAK PiA+ICsjZGVmaW5lIENTUl9IVFBfQUREUl9TS0wJCTB4MDA1MDAwMzQKPiA+ICsjZGVmaW5lIENT Ul9TU1BfQkFTRQkJCTB4OEYwNzQKPiA+ICsjZGVmaW5lIENTUl9IVFBfU0tMCQkJMHg4RjAwNAo+ ID4gKyNkZWZpbmUgQ1NSX0xBU1RfV1JJVEUJCQkweDhGMDM0Cj4gPiArI2RlZmluZSBDU1JfTEFT VF9XUklURV9WQUxVRQkJMHhjMDAzYjQwMAo+ID4gKy8qIE1NSU8gYWRkcmVzcyByYW5nZSBmb3Ig Q1NSIHByb2dyYW0gKDB4ODAwMDAgLSAweDgyRkZGKSAqLwo+ID4gKyNkZWZpbmUgQ1NSX01BWF9G V19TSVpFCQkJMHgyRkZGCj4gPiArI2RlZmluZSBDU1JfREVGQVVMVF9GV19PRkZTRVQJCTB4RkZG RkZGRkYKPiA+ICsjZGVmaW5lIENTUl9NTUlPX1NUQVJUX1JBTkdFCTB4ODAwMDAKPiA+ICsjZGVm aW5lIENTUl9NTUlPX0VORF9SQU5HRQkJMHg4RkZGRgo+ID4gKwo+ID4gK3N0cnVjdCBpbnRlbF9j c3NfaGVhZGVyIHsKPiA+ICsJLyogMHgwOSBmb3IgRE1DICovCj4gPiArCXVpbnQzMl90IG1vZHVs ZV90eXBlOwo+ID4gKwo+ID4gKwkvKiBJbmNsdWRlcyB0aGUgRE1DIHNwZWNpZmljIGhlYWRlciBp biBkd29yZHMgKi8KPiA+ICsJdWludDMyX3QgaGVhZGVyX2xlbjsKPiA+ICsKPiA+ICsJLyogYWx3 YXlzIHZhbHVlIHdvdWxkIGJlIDB4MTAwMDAgKi8KPiA+ICsJdWludDMyX3QgaGVhZGVyX3ZlcjsK PiA+ICsKPiA+ICsJLyogTm90IHVzZWQgKi8KPiA+ICsJdWludDMyX3QgbW9kdWxlX2lkOwo+ID4g Kwo+ID4gKwkvKiBOb3QgdXNlZCAqLwo+ID4gKwl1aW50MzJfdCBtb2R1bGVfdmVuZG9yOwo+ID4g Kwo+ID4gKwkvKiBpbiBZWVlZTU1ERCBmb3JtYXQgKi8KPiA+ICsJdWludDMyX3QgZGF0ZTsKPiA+ ICsKPiA+ICsJLyogU2l6ZSBpbiBkd29yZHMgKENTU19IZWFkZXJsZW4gKyBQYWNrYWdlSGVhZGVy TGVuICsgZG1jIEZXc0xlbikvNCAqLwo+ID4gKwl1aW50MzJfdCBzaXplOwo+ID4gKwo+ID4gKwkv KiBOb3QgdXNlZCAqLwo+ID4gKwl1aW50MzJfdCBrZXlfc2l6ZTsKPiA+ICsKPiA+ICsJLyogTm90 IHVzZWQgKi8KPiA+ICsJdWludDMyX3QgbW9kdWx1c19zaXplOwo+ID4gKwo+ID4gKwkvKiBOb3Qg dXNlZCAqLwo+ID4gKwl1aW50MzJfdCBleHBvbmVudF9zaXplOwo+ID4gKwo+ID4gKwkvKiBOb3Qg dXNlZCAqLwo+ID4gKwl1aW50MzJfdCByZXNlcnZlZDFbMTJdOwo+ID4gKwo+ID4gKwkvKiBNYWpv ciBNaW5vciAqLwo+ID4gKwl1aW50MzJfdCB2ZXJzaW9uOwo+ID4gKwo+ID4gKwkvKiBOb3QgdXNl ZCAqLwo+ID4gKwl1aW50MzJfdCByZXNlcnZlZDJbOF07Cj4gPiArCj4gPiArCS8qIE5vdCB1c2Vk ICovCj4gPiArCXVpbnQzMl90IGtlcm5lbF9oZWFkZXJfaW5mbzsKPiA+ICt9IF9fcGFja2VkOwo+ ID4gKwo+ID4gK3N0cnVjdCBpbnRlbF9md19pbmZvIHsKPiA+ICsJdWludDE2X3QgcmVzZXJ2ZWQx Owo+ID4gKwo+ID4gKwkvKiBTdGVwcGluZyAoQSwgQiwgQywgLi4uLCAqKS4gKiBpcyBhIHdpbGRj YXJkICovCj4gPiArCWNoYXIgc3RlcHBpbmc7Cj4gPiArCj4gPiArCS8qIFN1Yi1zdGVwcGluZyAo MCwgMSwgLi4uLCAqKS4gKiBpcyBhIHdpbGRjYXJkICovCj4gPiArCWNoYXIgc3Vic3RlcHBpbmc7 Cj4gPiArCj4gPiArCXVpbnQzMl90IG9mZnNldDsKPiA+ICsJdWludDMyX3QgcmVzZXJ2ZWQyOwo+ ID4gK30gX19wYWNrZWQ7Cj4gPiArCj4gPiArc3RydWN0IGludGVsX3BhY2thZ2VfaGVhZGVyIHsK PiA+ICsJLyogRE1DIGNvbnRhaW5lciBoZWFkZXIgbGVuZ3RoIGluIGR3b3JkcyAqLwo+ID4gKwl1 bnNpZ25lZCBjaGFyIGhlYWRlcl9sZW47Cj4gPiArCj4gPiArCS8qIGFsd2F5cyB2YWx1ZSB3b3Vs ZCBiZSAweDAxICovCj4gPiArCXVuc2lnbmVkIGNoYXIgaGVhZGVyX3ZlcjsKPiA+ICsKPiA+ICsJ dW5zaWduZWQgY2hhciByZXNlcnZlZFsxMF07Cj4gPiArCj4gPiArCS8qIE51bWJlciBvZiB2YWxp ZCBlbnRyaWVzIGluIHRoZSBGV0luZm8gYXJyYXkgYmVsb3cgKi8KPiA+ICsJdWludDMyX3QgbnVt X2VudHJpZXM7Cj4gPiArCj4gPiArCXN0cnVjdCBpbnRlbF9md19pbmZvIGZ3X2luZm9bMjBdOwo+ ID4gK30gX19wYWNrZWQ7Cj4gPiArCj4gPiArc3RydWN0IGludGVsX2RtY19oZWFkZXIgewo+ID4g KwkvKiBhbHdheXMgdmFsdWUgd291bGQgYmUgMHg0MDQwM0UzRSAqLwo+ID4gKwl1aW50MzJfdCBz aWduYXR1cmU7Cj4gPiArCj4gPiArCS8qIERNQyBiaW5hcnkgaGVhZGVyIGxlbmd0aCAqLwo+ID4g Kwl1bnNpZ25lZCBjaGFyIGhlYWRlcl9sZW47Cj4gPiArCj4gPiArCS8qIDB4MDEgKi8KPiA+ICsJ dW5zaWduZWQgY2hhciBoZWFkZXJfdmVyOwo+ID4gKwo+ID4gKwkvKiBSZXNlcnZlZCAqLwo+ID4g Kwl1aW50MTZfdCBkbWNjX3ZlcjsKPiA+ICsKPiA+ICsJLyogTWFqb3IsIE1pbm9yICovCj4gPiAr CXVpbnQzMl90CXByb2plY3Q7Cj4gPiArCj4gPiArCS8qIEZpcm13YXJlIHByb2dyYW0gc2l6ZSAo ZXhjbHVkaW5nIGhlYWRlcikgaW4gZHdvcmRzICovCj4gPiArCXVpbnQzMl90CWZ3X3NpemU7Cj4g PiArCj4gPiArCS8qIE1ham9yIE1pbm9yIHZlcnNpb24gKi8KPiA+ICsJdWludDMyX3QgZndfdmVy c2lvbjsKPiA+ICsKPiA+ICsJLyogTnVtYmVyIG9mIHZhbGlkIE1NSU8gY3ljbGVzIHByZXNlbnQu ICovCj4gPiArCXVpbnQzMl90IG1taW9fY291bnQ7Cj4gPiArCj4gPiArCS8qIE1NSU8gYWRkcmVz cyAqLwo+ID4gKwl1aW50MzJfdCBtbWlvYWRkcls4XTsKPiA+ICsKPiA+ICsJLyogTU1JTyBkYXRh ICovCj4gPiArCXVpbnQzMl90IG1taW9kYXRhWzhdOwo+ID4gKwo+ID4gKwkvKiBGVyBmaWxlbmFt ZSAgKi8KPiA+ICsJdW5zaWduZWQgY2hhciBkZmlsZVszMl07Cj4gPiArCj4gPiArCXVpbnQzMl90 IHJlc2VydmVkMVsyXTsKPiA+ICt9IF9fcGFja2VkOwo+ID4gKwo+ID4gK3N0cnVjdCBzdGVwcGlu Z19pbmZvIHsKPiA+ICsJY2hhciBzdGVwcGluZzsKPiA+ICsJY2hhciBzdWJzdGVwcGluZzsKPiA+ ICt9Owo+ID4gKwo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qgc3RlcHBpbmdfaW5mbyBza2xfc3Rl cHBpbmdfaW5mb1tdID0gewo+ID4gKwkJeydBJywgJzAnfSwgeydCJywgJzAnfSwgeydDJywgJzAn fSwKPiA+ICsJCXsnRCcsICcwJ30sIHsnRScsICcwJ30sIHsnRicsICcwJ30sCj4gPiArCQl7J0cn LCAnMCd9LCB7J0gnLCAnMCd9LCB7J0knLCAnMCd9Cj4gPiArfTsKPiA+ICsKPiA+ICtzdGF0aWMg Y2hhciBpbnRlbF9nZXRfc3RlcHBpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICt7Cj4g PiArCWlmIChJU19TS1lMQUtFKGRldikgJiYgKGRldi0+cGRldi0+cmV2aXNpb24gPAo+ID4gKwkJ CUFSUkFZX1NJWkUoc2tsX3N0ZXBwaW5nX2luZm8pKSkKPiA+ICsJCXJldHVybiBza2xfc3RlcHBp bmdfaW5mb1tkZXYtPnBkZXYtPnJldmlzaW9uXS5zdGVwcGluZzsKPiA+ICsJZWxzZQo+ID4gKwkJ cmV0dXJuIC1FTk9EQVRBOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgY2hhciBpbnRlbF9nZXRf c3Vic3RlcHBpbmcoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICt7Cj4gPiArCWlmIChJU19T S1lMQUtFKGRldikgJiYgKGRldi0+cGRldi0+cmV2aXNpb24gPAo+ID4gKwkJCUFSUkFZX1NJWkUo c2tsX3N0ZXBwaW5nX2luZm8pKSkKPiA+ICsJCXJldHVybiBza2xfc3RlcHBpbmdfaW5mb1tkZXYt PnBkZXYtPnJldmlzaW9uXS5zdWJzdGVwcGluZzsKPiA+ICsJZWxzZQo+ID4gKwkJcmV0dXJuIC1F Tk9EQVRBOwo+ID4gK30KPiA+ICsKPiA+ICt2b2lkIGludGVsX2Nzcl9sb2FkX3Byb2dyYW0oc3Ry dWN0IGRybV9kZXZpY2UgKmRldikKPiA+ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gPiArCV9fYmUzMiAqcGF5bG9hZCA9IGRl dl9wcml2LT5jc3IuZG1jX3BheWxvYWQ7Cj4gPiArCXVpbnQzMl90IGksIGZ3X3NpemU7Cj4gPiAr Cj4gPiArCWlmICghSVNfR0VOOShkZXYpKSB7Cj4gPiArCQlEUk1fRVJST1IoIk5vIENTUiBzdXBw b3J0IGF2YWlsYWJsZSBmb3IgdGhpcyBwbGF0Zm9ybVxuIik7Cj4gPiArCQlyZXR1cm47Cj4gPiAr CX0KPiA+ICsKPiA+ICsJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmNzcl9sb2NrKTsKPiA+ICsJZndf c2l6ZSA9IGRldl9wcml2LT5jc3IuZG1jX2Z3X3NpemU7Cj4gPiArCWZvciAoaSA9IDA7IGkgPCBm d19zaXplOyBpKyspCj4gPiArCQlJOTE1X1dSSVRFKENTUl9QUk9HUkFNX0JBU0UgKyBpICogNCwK PiA+ICsJCQkodTMyIF9fZm9yY2UpcGF5bG9hZFtpXSk7Cj4gPiArCj4gPiArCWZvciAoaSA9IDA7 IGkgPCBkZXZfcHJpdi0+Y3NyLm1taW9fY291bnQ7IGkrKykgewo+ID4gKwkJSTkxNV9XUklURShk ZXZfcHJpdi0+Y3NyLm1taW9hZGRyW2ldLAo+ID4gKwkJCWRldl9wcml2LT5jc3IubW1pb2RhdGFb aV0pOwo+ID4gKwl9Cj4gPiArCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmNzcl9sb2NrKTsKPiA+ ICt9Cj4gPiArCj4gPiArc3RhdGljIHZvaWQgZmluaXNoX2Nzcl9sb2FkKGNvbnN0IHN0cnVjdCBm aXJtd2FyZSAqZncsIHZvaWQgKmNvbnRleHQpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBjb250ZXh0Owo+ID4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gZGV2X3ByaXYtPmRldjsKPiA+ICsJc3RydWN0IGludGVsX2Nzc19oZWFkZXIgKmNzc19oZWFk ZXI7Cj4gPiArCXN0cnVjdCBpbnRlbF9wYWNrYWdlX2hlYWRlciAqcGFja2FnZV9oZWFkZXI7Cj4g PiArCXN0cnVjdCBpbnRlbF9kbWNfaGVhZGVyICpkbWNfaGVhZGVyOwo+ID4gKwlzdHJ1Y3QgaW50 ZWxfY3NyICpjc3IgPSAmZGV2X3ByaXYtPmNzcjsKPiA+ICsJY2hhciBzdGVwcGluZyA9IGludGVs X2dldF9zdGVwcGluZyhkZXYpOwo+ID4gKwljaGFyIHN1YnN0ZXBwaW5nID0gaW50ZWxfZ2V0X3N1 YnN0ZXBwaW5nKGRldik7Cj4gPiArCXVpbnQzMl90IGRtY19vZmZzZXQgPSBDU1JfREVGQVVMVF9G V19PRkZTRVQsIHJlYWRjb3VudCA9IDAsIG5ieXRlczsKPiA+ICsJdWludDMyX3QgaTsKPiA+ICsJ X19iZTMyICpkbWNfcGF5bG9hZDsKPiA+ICsKPiA+ICsJaWYgKCFmdykgewo+ID4gKwkJaTkxNV9m aXJtd2FyZV9sb2FkX2Vycm9yX3ByaW50KGNzci0+ZndfcGF0aCwgMCk7Cj4gPiArCQlnb3RvIG91 dDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlpZiAoKHN0ZXBwaW5nID09IC1FTk9EQVRBKSB8fCAoc3Vi c3RlcHBpbmcgPT0gLUVOT0RBVEEpKSB7Cj4gPiArCQlEUk1fRVJST1IoIlVua25vd24gc3RlcHBp bmcgaW5mbywgZmlybXdhcmUgbG9hZGluZyBmYWlsZWRcbiIpOwo+ID4gKwkJZ290byBvdXQ7Cj4g PiArCX0KPiA+ICsKPiA+ICsJLyogRXh0cmFjdCBDU1MgSGVhZGVyIGluZm9ybWF0aW9uKi8KPiA+ ICsJY3NzX2hlYWRlciA9IChzdHJ1Y3QgaW50ZWxfY3NzX2hlYWRlciAqKWZ3LT5kYXRhOwo+ID4g KwlpZiAoc2l6ZW9mKHN0cnVjdCBpbnRlbF9jc3NfaGVhZGVyKSAhPQo+ID4gKwkJKGNzc19oZWFk ZXItPmhlYWRlcl9sZW4gKiA0KSkgewo+ID4gKwkJRFJNX0VSUk9SKCJGaXJtd2FyZSBoYXMgd3Jv bmcgQ1NTIGhlYWRlciBsZW5ndGggJXUgYnl0ZXNcbiIsCj4gPiArCQkJKGNzc19oZWFkZXItPmhl YWRlcl9sZW4gKiA0KSk7Cj4gPiArCQlnb3RvIG91dDsKPiA+ICsJfQo+ID4gKwlyZWFkY291bnQg Kz0gc2l6ZW9mKHN0cnVjdCBpbnRlbF9jc3NfaGVhZGVyKTsKPiA+ICsKPiA+ICsJLyogRXh0cmFj dCBQYWNrYWdlIEhlYWRlciBpbmZvcm1hdGlvbiovCj4gPiArCXBhY2thZ2VfaGVhZGVyID0gKHN0 cnVjdCBpbnRlbF9wYWNrYWdlX2hlYWRlciAqKQo+ID4gKwkJCQkJJmZ3LT5kYXRhW3JlYWRjb3Vu dF07Cj4gPiArCWlmIChzaXplb2Yoc3RydWN0IGludGVsX3BhY2thZ2VfaGVhZGVyKSAhPQo+ID4g KwkJKHBhY2thZ2VfaGVhZGVyLT5oZWFkZXJfbGVuICogNCkpIHsKPiA+ICsJCURSTV9FUlJPUigi RmlybXdhcmUgaGFzIHdyb25nIHBhY2thZ2UgaGVhZGVyIGxlbmd0aCAldSBieXRlc1xuIiwKPiA+ ICsJCQkocGFja2FnZV9oZWFkZXItPmhlYWRlcl9sZW4gKiA0KSk7Cj4gPiArCQlnb3RvIG91dDsK PiA+ICsJfQo+ID4gKwlyZWFkY291bnQgKz0gc2l6ZW9mKHN0cnVjdCBpbnRlbF9wYWNrYWdlX2hl YWRlcik7Cj4gPiArCj4gPiArCS8qIFNlYXJjaCBmb3IgZG1jX29mZnNldCB0byBmaW5kIGZpcndh cmUgYmluYXJ5LiAqLwo+ID4gKwlmb3IgKGkgPSAwOyBpIDwgcGFja2FnZV9oZWFkZXItPm51bV9l bnRyaWVzOyBpKyspIHsKPiA+ICsJCWlmIChwYWNrYWdlX2hlYWRlci0+ZndfaW5mb1tpXS5zdWJz dGVwcGluZyA9PSAnKicgJiYKPiA+ICsJCQlzdGVwcGluZyA9PSBwYWNrYWdlX2hlYWRlci0+Zndf aW5mb1tpXS5zdGVwcGluZykgewo+ID4gKwkJCWRtY19vZmZzZXQgPSBwYWNrYWdlX2hlYWRlci0+ ZndfaW5mb1tpXS5vZmZzZXQ7Cj4gPiArCQkJYnJlYWs7Cj4gPiArCQl9IGVsc2UgaWYgKHN0ZXBw aW5nID09IHBhY2thZ2VfaGVhZGVyLT5md19pbmZvW2ldLnN0ZXBwaW5nICYmCj4gPiArCQkJc3Vi c3RlcHBpbmcgPT0gcGFja2FnZV9oZWFkZXItPmZ3X2luZm9baV0uc3Vic3RlcHBpbmcpIHsKPiA+ ICsJCQlkbWNfb2Zmc2V0ID0gcGFja2FnZV9oZWFkZXItPmZ3X2luZm9baV0ub2Zmc2V0Owo+ID4g KwkJCWJyZWFrOwo+ID4gKwkJfSBlbHNlIGlmIChwYWNrYWdlX2hlYWRlci0+ZndfaW5mb1tpXS5z dGVwcGluZyA9PSAnKicgJiYKPiA+ICsJCQlwYWNrYWdlX2hlYWRlci0+ZndfaW5mb1tpXS5zdWJz dGVwcGluZyA9PSAnKicpCj4gPiArCQkJZG1jX29mZnNldCA9IHBhY2thZ2VfaGVhZGVyLT5md19p bmZvW2ldLm9mZnNldDsKPiA+ICsJfQo+ID4gKwlpZiAoZG1jX29mZnNldCA9PSBDU1JfREVGQVVM VF9GV19PRkZTRVQpIHsKPiA+ICsJCURSTV9FUlJPUigiRmlybXdhcmUgbm90IHN1cHBvcnRlZCBm b3IgJWMgc3RlcHBpbmdcbiIsIHN0ZXBwaW5nKTsKPiA+ICsJCWdvdG8gb3V0Owo+ID4gKwl9Cj4g PiArCXJlYWRjb3VudCArPSBkbWNfb2Zmc2V0Owo+ID4gKwo+ID4gKwkvKiBFeHRyYWN0IGRtY19o ZWFkZXIgaW5mb3JtYXRpb24uICovCj4gPiArCWRtY19oZWFkZXIgPSAoc3RydWN0IGludGVsX2Rt Y19oZWFkZXIgKikmZnctPmRhdGFbcmVhZGNvdW50XTsKPiA+ICsJaWYgKHNpemVvZihzdHJ1Y3Qg aW50ZWxfZG1jX2hlYWRlcikgIT0gKGRtY19oZWFkZXItPmhlYWRlcl9sZW4pKSB7Cj4gPiArCQlE Uk1fRVJST1IoIkZpcm13YXJlIGhhcyB3cm9uZyBkbWMgaGVhZGVyIGxlbmd0aCAldSBieXRlc1xu IiwKPiA+ICsJCQkJKGRtY19oZWFkZXItPmhlYWRlcl9sZW4pKTsKPiA+ICsJCWdvdG8gb3V0Owo+ ID4gKwl9Cj4gPiArCXJlYWRjb3VudCArPSBzaXplb2Yoc3RydWN0IGludGVsX2RtY19oZWFkZXIp Owo+ID4gKwo+ID4gKwkvKiBDYWNoZSB0aGUgZG1jIGhlYWRlciBpbmZvLiAqLwo+ID4gKwlpZiAo ZG1jX2hlYWRlci0+bW1pb19jb3VudCA+IEFSUkFZX1NJWkUoY3NyLT5tbWlvYWRkcikpIHsKPiA+ ICsJCURSTV9FUlJPUigiRmlybXdhcmUgaGFzIHdyb25nIG1taW8gY291bnQgJXVcbiIsCj4gPiAr CQkJCQkJZG1jX2hlYWRlci0+bW1pb19jb3VudCk7Cj4gPiArCQlnb3RvIG91dDsKPiA+ICsJfQo+ ID4gKwljc3ItPm1taW9fY291bnQgPSBkbWNfaGVhZGVyLT5tbWlvX2NvdW50Owo+ID4gKwlmb3Ig KGkgPSAwOyBpIDwgZG1jX2hlYWRlci0+bW1pb19jb3VudDsgaSsrKSB7Cj4gPiArCQlpZiAoZG1j X2hlYWRlci0+bW1pb2FkZHJbaV0gPCBDU1JfTU1JT19TVEFSVF9SQU5HRSAmJgo+ID4gKwkJCWRt Y19oZWFkZXItPm1taW9hZGRyW2ldID4gQ1NSX01NSU9fRU5EX1JBTkdFKSB7Cj4gPiArCQkJRFJN X0VSUk9SKCIgRmlybXdhcmUgaGFzIHdyb25nIG1taW8gYWRkcmVzcyAweCV4XG4iLAo+ID4gKwkJ CQkJCWRtY19oZWFkZXItPm1taW9hZGRyW2ldKTsKPiA+ICsJCQlnb3RvIG91dDsKPiA+ICsJCX0K PiA+ICsJCWNzci0+bW1pb2FkZHJbaV0gPSBkbWNfaGVhZGVyLT5tbWlvYWRkcltpXTsKPiA+ICsJ CWNzci0+bW1pb2RhdGFbaV0gPSBkbWNfaGVhZGVyLT5tbWlvZGF0YVtpXTsKPiA+ICsJfQo+ID4g Kwo+ID4gKwkvKiBmd19zaXplIGlzIGluIGR3b3Jkcywgc28gbXVsdGlwbGllZCBieSA0IHRvIGNv bnZlcnQgaW50byBieXRlcy4gKi8KPiA+ICsJbmJ5dGVzID0gZG1jX2hlYWRlci0+Zndfc2l6ZSAq IDQ7Cj4gPiArCWlmIChuYnl0ZXMgPiBDU1JfTUFYX0ZXX1NJWkUpIHsKPiA+ICsJCURSTV9FUlJP UigiQ1NSIGZpcm13YXJlIHRvbyBiaWcgKCV1KSBieXRlc1xuIiwgbmJ5dGVzKTsKPiA+ICsJCWdv dG8gb3V0Owo+ID4gKwl9Cj4gPiArCWNzci0+ZG1jX2Z3X3NpemUgPSBkbWNfaGVhZGVyLT5md19z aXplOwo+ID4gKwo+ID4gKwljc3ItPmRtY19wYXlsb2FkID0ga21hbGxvYyhuYnl0ZXMsIEdGUF9L RVJORUwpOwo+ID4gKwlpZiAoIWNzci0+ZG1jX3BheWxvYWQpIHsKPiA+ICsJCURSTV9FUlJPUigi TWVtb3J5IGFsbG9jYXRpb24gZmFpbGVkIGZvciBkbWMgcGF5bG9hZFxuIik7Cj4gPiArCQlnb3Rv IG91dDsKPiA+ICsJfQo+ID4gKwo+ID4gKwlkbWNfcGF5bG9hZCA9IGNzci0+ZG1jX3BheWxvYWQ7 Cj4gPiArCWZvciAoaSA9IDA7IGkgPCBkbWNfaGVhZGVyLT5md19zaXplOyBpKyspIHsKPiA+ICsJ CXVpbnQzMl90ICp0bXAgPSAodTMyICopJmZ3LT5kYXRhW3JlYWRjb3VudCArIGkgKiA0XTsKPiA+ ICsJCS8qCj4gPiArCQkgKiBUaGUgZmlybXdhcmUgcGF5bG9hZCBpcyBhbiBhcnJheSBvZiAzMiBi aXQgd29yZHMgc3RvcmVkIGluCj4gPiArCQkgKiBsaXR0bGUtZW5kaWFuIGZvcm1hdCBpbiB0aGUg ZmlybXdhcmUgaW1hZ2UgYW5kIHByb2dyYW1tZWQKPiA+ICsJCSAqIGFzIDMyIGJpdCBiaWctZW5k aWFuIGZvcm1hdCB0byBtZW1vcnkuCj4gPiArCQkgKi8KPiA+ICsJCWRtY19wYXlsb2FkW2ldID0g Y3B1X3RvX2JlMzIoKnRtcCk7Cj4gPiArCX0KPiA+ICsKPiA+ICsJLyogbG9hZCBjc3IgcHJvZ3Jh bSBkdXJpbmcgc3lzdGVtIGJvb3QsIGFzIG5lZWRlZCBmb3IgREMgc3RhdGVzICovCj4gPiArCWlu dGVsX2Nzcl9sb2FkX3Byb2dyYW0oZGV2KTsKPiA+ICtvdXQ6Cj4gPiArCXJlbGVhc2VfZmlybXdh cmUoZncpOwo+ID4gK30KPiA+ICsKPiA+ICt2b2lkIGludGVsX2Nzcl91Y29kZV9pbml0KHN0cnVj dCBkcm1fZGV2aWNlICpkZXYpCj4gPiArewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ID4gKwlzdHJ1Y3QgaW50ZWxfY3NyICpjc3Ig PSAmZGV2X3ByaXYtPmNzcjsKPiA+ICsJaW50IHJldDsKPiA+ICsKPiA+ICsJaWYgKCFIQVNfQ1NS KGRldikpCj4gPiArCQlyZXR1cm47Cj4gPiArCj4gPiArCWlmIChJU19TS1lMQUtFKGRldikpCj4g PiArCQljc3ItPmZ3X3BhdGggPSBJOTE1X0NTUl9TS0w7Cj4gPiArCWVsc2Ugewo+ID4gKwkJRFJN X0VSUk9SKCJVbmV4cGVjdGVkOiBubyBrbm93biBDU1IgZmlybXdhcmUgZm9yIHBsYXRmb3JtXG4i KTsKPiA+ICsJCXJldHVybjsKPiA+ICsJfQo+ID4gKwo+ID4gKwkvKiBDU1Igc3VwcG9ydGVkIGZv ciBwbGF0Zm9ybSwgbG9hZCBmaXJtd2FyZSAqLwo+ID4gKwlyZXQgPSByZXF1ZXN0X2Zpcm13YXJl X25vd2FpdChUSElTX01PRFVMRSwgdHJ1ZSwgY3NyLT5md19wYXRoLAo+ID4gKwkJCQkmZGV2X3By aXYtPmRldi0+cGRldi0+ZGV2LAo+ID4gKwkJCQlHRlBfS0VSTkVMLCBkZXZfcHJpdiwKPiA+ICsJ CQkJZmluaXNoX2Nzcl9sb2FkKTsKPiA+ICsJaWYgKHJldCkKPiA+ICsJCWk5MTVfZmlybXdhcmVf bG9hZF9lcnJvcl9wcmludChjc3ItPmZ3X3BhdGgsIHJldCk7Cj4gPiArCj4gPiArfQo+ID4gKwo+ ID4gK3ZvaWQgaW50ZWxfY3NyX3Vjb2RlX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldikKPiA+ ICt7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gPiArCj4gPiArCWlmICghSEFTX0NTUihkZXYpKQo+ID4gKwkJcmV0dXJuOwo+ID4g Kwo+ID4gKwlrZnJlZShkZXZfcHJpdi0+Y3NyLmRtY19wYXlsb2FkKTsKPiA+ICt9Cj4gPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmggYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gaW5kZXggN2EwYWEyNC4uZjNhMmQ4OCAxMDA2NDQKPiA+ IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9kcnYuaAo+ID4gQEAgLTEwNjIsNiArMTA2MiwxMSBAQCB2b2lk IGludGVsX21vZGVzZXRfcHJlY2xvc2Uoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRy bV9maWxlICpmaWxlKTsKPiA+ICB1bnNpZ25lZCBsb25nIGludGVsX3BsYW5lX29ial9vZmZzZXQo c3RydWN0IGludGVsX3BsYW5lICppbnRlbF9wbGFuZSwKPiA+ICAJCQkJICAgICBzdHJ1Y3QgZHJt X2k5MTVfZ2VtX29iamVjdCAqb2JqKTsKPiA+ICAKPiA+ICsvKiBpbnRlbF9jc3IuYyAqLwo+ID4g K3ZvaWQgaW50ZWxfY3NyX3Vjb2RlX2luaXQoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiAr dm9pZCBpbnRlbF9jc3JfbG9hZF9wcm9ncmFtKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpOwo+ID4g K3ZvaWQgaW50ZWxfY3NyX3Vjb2RlX2Zpbmkoc3RydWN0IGRybV9kZXZpY2UgKmRldik7Cj4gPiAr Cj4gPiAgLyogaW50ZWxfZHAuYyAqLwo+ID4gIHZvaWQgaW50ZWxfZHBfaW5pdChzdHJ1Y3QgZHJt X2RldmljZSAqZGV2LCBpbnQgb3V0cHV0X3JlZywgZW51bSBwb3J0IHBvcnQpOwo+ID4gIGJvb2wg aW50ZWxfZHBfaW5pdF9jb25uZWN0b3Ioc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxf ZGlnX3BvcnQsCj4gCj4gCj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVk ZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngKCi0tIApEYW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbgpodHRwOi8vYmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2ludGVsLWdmeAo=