From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Pandiyan, Dhinakaran" Subject: Re: [PATCH] drm/i915/dp: DP audio API changes for MST Date: Wed, 3 Aug 2016 19:43:06 +0000 Message-ID: <1470254234.6362.15.camel@dk-H97M-D3H> References: <1470190470-32326-1-git-send-email-dhinakaran.pandiyan@intel.com> <1470190470-32326-2-git-send-email-dhinakaran.pandiyan@intel.com> <20160803190812.GO4329@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20160803190812.GO4329@intel.com> Content-Language: en-US Content-ID: <3FDF1CA7D1236747B05CDE9E9DE47425@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "ville.syrjala@linux.intel.com" Cc: "tiwai@suse.de" , "libin.yang@linux.intel.com" , "intel-gfx@lists.freedesktop.org" , "alsa-devel@alsa-project.org" List-Id: alsa-devel@alsa-project.org T24gV2VkLCAyMDE2LTA4LTAzIGF0IDIyOjA4ICswMzAwLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6 DQo+IE9uIFR1ZSwgQXVnIDAyLCAyMDE2IGF0IDA3OjE0OjMwUE0gLTA3MDAsIERoaW5ha2FyYW4g UGFuZGl5YW4gd3JvdGU6DQo+ID4gRFAgTVNUIHByb3ZpZGVzIHRoZSBjYXBhYmlsaXR5IHRvIHNl bmQgbXVsdGlwbGUgdmlkZW8gYW5kIGF1ZGlvIHN0cmVhbXMgdmlhDQo+ID4gb25lIHNpbmdsZSBw b3J0LiBUaGlzIHJlcXVpcmVzIHRoZSBBUEkncyBiZXR3ZWVuIGk5MTUgYW5kIGF1ZGlvIGRyaXZl cnMgdG8NCj4gPiBkaXN0aW5ndWlzaCBiZXR3ZWVuIGF1ZGlvIGNhcGFibGUgZGlzcGxheXMgY29u bmVjdGVkIHRvIGEgcG9ydC4gVGhpcyBwYXRjaA0KPiA+IGFkZHMgdGhpcyBzdXBwb3J0IHZpYSBh biBhZGRpdGlvbmFsIHBhcmFtZXRlciAnaW50IGRldl9pZCcuIFRoZSBleGlzdGluZw0KPiA+IHBh cmFtZXRlciAncG9ydCcgZG9lcyBub3QgY2hhbmdlIGl0J3MgbWVhbmluZy4NCj4gPiANCj4gPiBk ZXZfaWQgPQ0KPiA+IAlNU1QJOiBwaXBlIHRoYXQgdGhlIHN0cmVhbSBvcmlnaW5hdGVzIGZyb20N Cj4gPiAJTm9uLU1TVAk6IC0xDQo+ID4gDQo+ID4gQWZmZWN0ZWQgQVBJczoNCj4gPiBzdHJ1Y3Qg aTkxNV9hdWRpb19jb21wb25lbnRfb3BzDQo+ID4gLSAgICAgICBpbnQgKCpzeW5jX2F1ZGlvX3Jh dGUpKHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCByYXRlKTsNCj4gPiArCWludCAoKnN5 bmNfYXVkaW9fcmF0ZSkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IGRldl9pZCwNCj4g DQo+IERvZXMgdGhlIHRlcm0gJ2Rldl9pZCcgaGF2ZSBzb21lIHNwZWNpYWwgbWVhbmluZyBvbiB0 aGUgYXVkaW8gc2lkZT8gT24NCj4gdGhlIGk5MTUgc2lkZSB0aGluZ3Mgd291bGQgYmUgbGVzcyBj b25mdXNpbmcgaWYgd2UganVzdCBjYWxsZWQgaXQNCj4gJ3BpcGUnLg0KPiANCg0KVGhlcmUgd2Fz IHF1aXRlIGEgYml0IG9mIGJhY2sgYW5kIGZvcnRoIG9uIHRoaXMuICJwaXBlIiBzZWVtZWQgdG8g dGllIHVzDQp0byB0aGUgZ2Z4IGhhcmR3YXJlIGFyY2hpdGVjdHVyZS4gSW4gY2FzZSwgdGhlcmUg aXMgbm8gMToxIG1hcHBpbmcgZnJvbQ0KcGlwZXMgdG8gZW5jb2RlcnMsIHRoaXMgd2lsbCBnZXQg Y29uZnVzaW5nIGFzIGk5MTUgYXVkaW8gcmVnaXN0ZXJzDQooRS5nLkhTV19BVURfUElOX0VMRF9D UF9WTEQpIGFyZSBlbmNvZGVyIGJhc2VkLiBXaGVyZWFzLCBkZXZfaWQgaXMNCmdlbmVyaWMgLSBI REEgc3BlYyBjYWxscyB0aGVtICJkZXZpY2VzIiBvciAiZGV2aWNlIGVudHJ5Ig0KDQoNCj4gPiAr CSAgICAgaW50IHJhdGUpOw0KPiA+IA0KPiA+IC0gICAgICAgaW50ICgqZ2V0X2VsZCkoc3RydWN0 IGRldmljZSAqLCBpbnQgcG9ydCwgYm9vbCAqZW5hYmxlZCwNCj4gPiAtICAgICAgICAgICAgICAg ICAgICAgICB1bnNpZ25lZCBjaGFyICpidWYsIGludCBtYXhfYnl0ZXMpOw0KPiA+ICsgICAgICAg aW50ICgqZ2V0X2VsZCkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IGRldl9pZCwNCj4g PiArCQkgICAgICAgYm9vbCAqZW5hYmxlZCwgdW5zaWduZWQgY2hhciAqYnVmLCBpbnQgbWF4X2J5 dGVzKTsNCj4gPiANCj4gPiBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfYXVkaW9fb3BzDQo+ ID4gLSAgICAgICB2b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBv cnQpOw0KPiA+ICsgICAgICAgdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIs IGludCBwb3J0LCBpbnQgZGV2X2lkKTsNCj4gPiANCj4gPiBUaGlzIHBhdGNoIG1ha2VzIGR1bW15 IGNoYW5nZXMgaW4gdGhlIGF1ZGlvIGRyaXZlcnMgZm9yIGJ1aWxkIHRvIHN1Y2NlZWQuDQo+ID4g DQo+ID4gU2lnbmVkLW9mZi1ieTogRGhpbmFrYXJhbiBQYW5kaXlhbiA8ZGhpbmFrYXJhbi5wYW5k aXlhbkBpbnRlbC5jb20+DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVf ZHJ2LmggICAgfCAgMiArLQ0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5j IHwgODIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0NCj4gPiAgaW5jbHVk ZS9kcm0vaTkxNV9jb21wb25lbnQuaCAgICAgICB8ICA2ICstLQ0KPiA+ICBpbmNsdWRlL3NvdW5k L2hkYV9pOTE1LmggICAgICAgICAgIHwgMTEgKystLS0NCj4gPiAgc291bmQvaGRhL2hkYWNfaTkx NS5jICAgICAgICAgICAgICB8ICA5ICsrKy0tDQo+ID4gIHNvdW5kL3BjaS9oZGEvcGF0Y2hfaGRt aS5jICAgICAgICAgfCAgNyArKy0tDQo+ID4gIDYgZmlsZXMgY2hhbmdlZCwgODIgaW5zZXJ0aW9u cygrKSwgMzUgZGVsZXRpb25zKC0pDQo+ID4gDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2k5MTVfZHJ2LmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oDQo+ ID4gaW5kZXggNjVhZGE1ZC4uOGU0YzhjOCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pOTE1X2Rydi5oDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9k cnYuaA0KPiA+IEBAIC0yMDU0LDcgKzIwNTQsNyBAQCBzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSB7 DQo+ID4gIAkvKiBwZXJmb3JtIFBIWSBzdGF0ZSBzYW5pdHkgY2hlY2tzPyAqLw0KPiA+ICAJYm9v bCBjaHZfcGh5X2Fzc2VydFsyXTsNCj4gPiAgDQo+ID4gLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAq ZGlnX3BvcnRfbWFwW0k5MTVfTUFYX1BPUlRTXTsNCj4gPiArCXN0cnVjdCBpbnRlbF9lbmNvZGVy ICphdl9lbmNfbWFwW0k5MTVfTUFYX1BJUEVTXTsNCj4gPiAgDQo+ID4gIAkvKg0KPiA+ICAJICog Tk9URTogVGhpcyBpcyB0aGUgZHJpMS91bXMgZHVuZ2VvbiwgZG9uJ3QgYWRkIHN0dWZmIGhlcmUu IFlvdXIgcGF0Y2gNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf YXVkaW8uYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2F1ZGlvLmMNCj4gPiBpbmRleCA4 YzQ5M2RlLi5jYmU0NGM4IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX2F1ZGlvLmMNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9hdWRpby5j DQo+ID4gQEAgLTUwMCw2ICs1MDAsOSBAQCB2b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShz dHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikNCj4gPiAgCXN0cnVjdCBpOTE1X2F1 ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBkZXZfcHJpdi0+YXVkaW9fY29tcG9uZW50Ow0KPiA+ICAJ c3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBlbmNfdG9fZGlnX3Bv cnQoZW5jb2Rlcik7DQo+ID4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5wb3J0 Ow0KPiA+ICsJZW51bSBwaXBlIHBpcGUgPSBjcnRjLT5waXBlOw0KPiA+ICsJaW50IGRldl9pZCA9 IC0xOw0KPiA+ICsNCj4gPiAgDQo+ID4gIAljb25uZWN0b3IgPSBkcm1fc2VsZWN0X2VsZChlbmNv ZGVyKTsNCj4gPiAgCWlmICghY29ubmVjdG9yKQ0KPiA+IEBAIC01MjIsMTQgKzUyNSwxOSBAQCB2 b2lkIGludGVsX2F1ZGlvX2NvZGVjX2VuYWJsZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxf ZW5jb2RlcikNCj4gPiAgCQlkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19lbmFibGUoY29u bmVjdG9yLCBpbnRlbF9lbmNvZGVyLA0KPiA+ICAJCQkJCQkgICAgIGFkanVzdGVkX21vZGUpOw0K PiA+ICANCj4gPiArCWlmIChpbnRlbF9lbmNvZGVyLT50eXBlID09IElOVEVMX09VVFBVVF9EUF9N U1QpDQo+ID4gKwkJZGV2X2lkID0gcGlwZTsNCj4gPiArDQo+ID4gIAltdXRleF9sb2NrKCZkZXZf cHJpdi0+YXZfbXV0ZXgpOw0KPiA+ICAJaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yID0g Y29ubmVjdG9yOw0KPiA+ICsNCj4gPiAgCS8qIHJlZmVycmVkIGluIGF1ZGlvIGNhbGxiYWNrcyAq Lw0KPiA+IC0JZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XSA9IGludGVsX2VuY29kZXI7DQo+ ID4gKwlkZXZfcHJpdi0+YXZfZW5jX21hcFtwaXBlXSA9IGludGVsX2VuY29kZXI7DQo+ID4gIAlt dXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRleCk7DQo+ID4gIA0KPiA+ICAJaWYgKGFjb21w ICYmIGFjb21wLT5hdWRpb19vcHMgJiYgYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkp DQo+ID4gLQkJYWNvbXAtPmF1ZGlvX29wcy0+cGluX2VsZF9ub3RpZnkoYWNvbXAtPmF1ZGlvX29w cy0+YXVkaW9fcHRyLCAoaW50KSBwb3J0KTsNCj4gPiArCQlhY29tcC0+YXVkaW9fb3BzLT5waW5f ZWxkX25vdGlmeShhY29tcC0+YXVkaW9fb3BzLT5hdWRpb19wdHIsDQo+ID4gKwkJCQkJCSAoaW50 KSBwb3J0LCBkZXZfaWQpOw0KPiA+ICB9DQo+ID4gIA0KPiA+ICAvKioNCj4gPiBAQCAtNTQyLDIy ICs1NTAsMjkgQEAgdm9pZCBpbnRlbF9hdWRpb19jb2RlY19lbmFibGUoc3RydWN0IGludGVsX2Vu Y29kZXIgKmludGVsX2VuY29kZXIpDQo+ID4gIHZvaWQgaW50ZWxfYXVkaW9fY29kZWNfZGlzYWJs ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqaW50ZWxfZW5jb2RlcikNCj4gPiAgew0KPiA+ICAJc3Ry dWN0IGRybV9lbmNvZGVyICplbmNvZGVyID0gJmludGVsX2VuY29kZXItPmJhc2U7DQo+ID4gKwlz dHJ1Y3QgaW50ZWxfY3J0YyAqY3J0YyA9IHRvX2ludGVsX2NydGMoZW5jb2Rlci0+Y3J0Yyk7DQo+ ID4gIAlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+ZGV2Ow0KPiA+ICAJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOw0KPiA+ICAJc3RydWN0 IGk5MTVfYXVkaW9fY29tcG9uZW50ICphY29tcCA9IGRldl9wcml2LT5hdWRpb19jb21wb25lbnQ7 DQo+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGVuY190 b19kaWdfcG9ydChlbmNvZGVyKTsNCj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gaW50ZWxfZGlnX3Bv cnQtPnBvcnQ7DQo+ID4gKwllbnVtIHBpcGUgcGlwZSA9IGNydGMtPnBpcGU7DQo+ID4gKwlpbnQg ZGV2X2lkID0gLTE7DQo+ID4gKw0KPiA+ICsJaWYgKGludGVsX2VuY29kZXItPnR5cGUgPT0gSU5U RUxfT1VUUFVUX0RQX01TVCkNCj4gPiArCQlkZXZfaWQgPSBwaXBlOw0KPiA+ICANCj4gPiAgCWlm IChkZXZfcHJpdi0+ZGlzcGxheS5hdWRpb19jb2RlY19kaXNhYmxlKQ0KPiA+ICAJCWRldl9wcml2 LT5kaXNwbGF5LmF1ZGlvX2NvZGVjX2Rpc2FibGUoaW50ZWxfZW5jb2Rlcik7DQo+ID4gIA0KPiA+ ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsNCj4gPiAgCWludGVsX2VuY29kZXIt PmF1ZGlvX2Nvbm5lY3RvciA9IE5VTEw7DQo+ID4gLQlkZXZfcHJpdi0+ZGlnX3BvcnRfbWFwW3Bv cnRdID0gTlVMTDsNCj4gPiArCWRldl9wcml2LT5hdl9lbmNfbWFwW3BpcGVdID0gTlVMTDsNCj4g PiAgCW11dGV4X3VubG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsNCj4gPiAgDQo+ID4gIAlpZiAo YWNvbXAgJiYgYWNvbXAtPmF1ZGlvX29wcyAmJiBhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25v dGlmeSkNCj4gPiAtCQlhY29tcC0+YXVkaW9fb3BzLT5waW5fZWxkX25vdGlmeShhY29tcC0+YXVk aW9fb3BzLT5hdWRpb19wdHIsIChpbnQpIHBvcnQpOw0KPiA+ICsJCWFjb21wLT5hdWRpb19vcHMt PnBpbl9lbGRfbm90aWZ5KGFjb21wLT5hdWRpb19vcHMtPmF1ZGlvX3B0ciwNCj4gPiArCQkJCQkJ IChpbnQpIHBvcnQsIGRldl9pZCk7DQo+ID4gIH0NCj4gPiAgDQo+ID4gIC8qKg0KPiA+IEBAIC02 MjgsOCArNjQzLDMyIEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfZ2V0X2NkY2xr X2ZyZXEoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICAJcmV0dXJuIGRldl9wcml2LT5jZGNsa19m cmVxOw0KPiA+ICB9DQo+ID4gIA0KPiA+IC1zdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50 X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+ID4gLQkJCQkJCWludCBwb3J0 LCBpbnQgcmF0ZSkNCj4gPiArc3RhdGljIHN0cnVjdCBpbnRlbF9lbmNvZGVyICpnZXRfc2F2ZWRf ZW5jb2RlcihzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqYXZfZW5jX21hcFtdLA0KPiA+ICsJCQkJCSAg ICAgICBpbnQgcG9ydCwgaW50IGRldl9pZCkNCj4gPiArew0KPiA+ICsNCj4gPiArCWVudW0gcGlw ZSBwaXBlOw0KPiA+ICsJc3RydWN0IGRybV9lbmNvZGVyICplbmNvZGVyOw0KPiA+ICsNCj4gPiAr CWlmIChkZXZfaWQgPj0gMCAmJiBkZXZfaWQgPCBJOTE1X01BWF9QSVBFUykNCj4gPiArCQlyZXR1 cm4gYXZfZW5jX21hcFtkZXZfaWRdOw0KPiA+ICsNCj4gPiArCWZvciAocGlwZSA9IFBJUEVfQTsg cGlwZSA8IEk5MTVfTUFYX1BJUEVTOyBwaXBlKyspIHsNCj4gPiArDQo+ID4gKwkJaWYgKCFhdl9l bmNfbWFwW3BpcGVdKQ0KPiA+ICsJCQljb250aW51ZTsNCj4gPiArDQo+ID4gKwkJZW5jb2RlciA9 ICZhdl9lbmNfbWFwW3BpcGVdLT5iYXNlOw0KPiA+ICsJCWlmIChwb3J0ID09IGVuY190b19kaWdf cG9ydChlbmNvZGVyKS0+cG9ydCkNCj4gPiArCQkJcmV0dXJuIGF2X2VuY19tYXBbcGlwZV07DQo+ ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0dXJuIE5VTEw7DQo+ID4gKw0KPiA+ICt9DQo+ID4gKw0K PiA+ICtzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9uZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1 Y3QgZGV2aWNlICpkZXYsIGludCBwb3J0LA0KPiA+ICsJCQkJCQlpbnQgZGV2X2lkLCBpbnQgcmF0 ZSkNCj4gPiAgew0KPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 X3RvX2k5MTUoZGV2KTsNCj4gPiAgCXN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9lbmNvZGVy Ow0KPiA+IEBAIC02NDksMTUgKzY4OCwxNiBAQCBzdGF0aWMgaW50IGk5MTVfYXVkaW9fY29tcG9u ZW50X3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgZGV2aWNlICpkZXYsDQo+ID4gIAkJcmV0dXJuIDA7 DQo+ID4gIA0KPiA+ICAJbXV0ZXhfbG9jaygmZGV2X3ByaXYtPmF2X211dGV4KTsNCj4gPiArDQo+ ID4gIAkvKiAxLiBnZXQgdGhlIHBpcGUgKi8NCj4gPiAtCWludGVsX2VuY29kZXIgPSBkZXZfcHJp di0+ZGlnX3BvcnRfbWFwW3BvcnRdOw0KPiA+IC0JLyogaW50ZWxfZW5jb2RlciBtaWdodCBiZSBO VUxMIGZvciBEUCBNU1QgKi8NCj4gPiArCWludGVsX2VuY29kZXIgPSBnZXRfc2F2ZWRfZW5jb2Rl cihkZXZfcHJpdi0+YXZfZW5jX21hcCwgcG9ydCwgZGV2X2lkKTsNCj4gPiAgCWlmICghaW50ZWxf ZW5jb2RlciB8fCAhaW50ZWxfZW5jb2Rlci0+YmFzZS5jcnRjIHx8DQo+ID4gIAkgICAgaW50ZWxf ZW5jb2Rlci0+dHlwZSAhPSBJTlRFTF9PVVRQVVRfSERNSSkgew0KPiA+ICAJCURSTV9ERUJVR19L TVMoIm5vIHZhbGlkIHBvcnQgJWNcbiIsIHBvcnRfbmFtZShwb3J0KSk7DQo+ID4gIAkJZXJyID0g LUVOT0RFVjsNCj4gPiAgCQlnb3RvIHVubG9jazsNCj4gPiAgCX0NCj4gPiArDQo+ID4gIAljcnRj ID0gdG9faW50ZWxfY3J0YyhpbnRlbF9lbmNvZGVyLT5iYXNlLmNydGMpOw0KPiA+ICAJcGlwZSA9 IGNydGMtPnBpcGU7DQo+ID4gIAlpZiAocGlwZSA9PSBJTlZBTElEX1BJUEUpIHsNCj4gPiBAQCAt NzAyLDcgKzc0Miw3IEBAIHN0YXRpYyBpbnQgaTkxNV9hdWRpb19jb21wb25lbnRfc3luY19hdWRp b19yYXRlKHN0cnVjdCBkZXZpY2UgKmRldiwNCj4gPiAgfQ0KPiA+ICANCj4gPiAgc3RhdGljIGlu dCBpOTE1X2F1ZGlvX2NvbXBvbmVudF9nZXRfZWxkKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBv cnQsDQo+ID4gLQkJCQkJYm9vbCAqZW5hYmxlZCwNCj4gPiArCQkJCQlpbnQgZGV2X2lkLCBib29s ICplbmFibGVkLA0KPiA+ICAJCQkJCXVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcykN Cj4gPiAgew0KPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2X3Rv X2k5MTUoZGV2KTsNCj4gPiBAQCAtNzEwLDE3ICs3NTAsMjEgQEAgc3RhdGljIGludCBpOTE1X2F1 ZGlvX2NvbXBvbmVudF9nZXRfZWxkKHN0cnVjdCBkZXZpY2UgKmRldiwgaW50IHBvcnQsDQo+ID4g IAljb25zdCB1OCAqZWxkOw0KPiA+ICAJaW50IHJldCA9IC1FSU5WQUw7DQo+ID4gIA0KPiA+ICsN Cj4gPiAgCW11dGV4X2xvY2soJmRldl9wcml2LT5hdl9tdXRleCk7DQo+ID4gLQlpbnRlbF9lbmNv ZGVyID0gZGV2X3ByaXYtPmRpZ19wb3J0X21hcFtwb3J0XTsNCj4gPiAtCS8qIGludGVsX2VuY29k ZXIgbWlnaHQgYmUgTlVMTCBmb3IgRFAgTVNUICovDQo+ID4gLQlpZiAoaW50ZWxfZW5jb2Rlcikg ew0KPiA+IC0JCXJldCA9IDA7DQo+ID4gLQkJKmVuYWJsZWQgPSBpbnRlbF9lbmNvZGVyLT5hdWRp b19jb25uZWN0b3IgIT0gTlVMTDsNCj4gPiAtCQlpZiAoKmVuYWJsZWQpIHsNCj4gPiAtCQkJZWxk ID0gaW50ZWxfZW5jb2Rlci0+YXVkaW9fY29ubmVjdG9yLT5lbGQ7DQo+ID4gLQkJCXJldCA9IGRy bV9lbGRfc2l6ZShlbGQpOw0KPiA+IC0JCQltZW1jcHkoYnVmLCBlbGQsIG1pbihtYXhfYnl0ZXMs IHJldCkpOw0KPiA+IC0JCX0NCj4gPiArDQo+ID4gKwlpbnRlbF9lbmNvZGVyID0gZ2V0X3NhdmVk X2VuY29kZXIoZGV2X3ByaXYtPmF2X2VuY19tYXAsIHBvcnQsIGRldl9pZCk7DQo+ID4gKwlpZiAo IWludGVsX2VuY29kZXIpIHsNCj4gPiArCQltdXRleF91bmxvY2soJmRldl9wcml2LT5hdl9tdXRl eCk7DQo+ID4gKwkJcmV0dXJuIHJldDsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlyZXQgPSAwOw0K PiA+ICsJKmVuYWJsZWQgPSBpbnRlbF9lbmNvZGVyLT5hdWRpb19jb25uZWN0b3IgIT0gTlVMTDsN Cj4gPiArCWlmICgqZW5hYmxlZCkgew0KPiA+ICsJCWVsZCA9IGludGVsX2VuY29kZXItPmF1ZGlv X2Nvbm5lY3Rvci0+ZWxkOw0KPiA+ICsJCXJldCA9IGRybV9lbGRfc2l6ZShlbGQpOw0KPiA+ICsJ CW1lbWNweShidWYsIGVsZCwgbWluKG1heF9ieXRlcywgcmV0KSk7DQo+ID4gIAl9DQo+ID4gIA0K PiA+ICAJbXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+YXZfbXV0ZXgpOw0KPiA+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9pOTE1X2NvbXBvbmVudC5oIGIvaW5jbHVkZS9kcm0vaTkxNV9jb21wb25l bnQuaA0KPiA+IGluZGV4IGI0NmZhMGUuLjE0MTljOTggMTAwNjQ0DQo+ID4gLS0tIGEvaW5jbHVk ZS9kcm0vaTkxNV9jb21wb25lbnQuaA0KPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2k5MTVfY29tcG9u ZW50LmgNCj4gPiBAQCAtNjQsNyArNjQsNyBAQCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRf b3BzIHsNCj4gPiAgCSAqIENhbGxlZCBmcm9tIGF1ZGlvIGRyaXZlci4gQWZ0ZXIgYXVkaW8gZHJp dmVyIHNldHMgdGhlDQo+ID4gIAkgKiBzYW1wbGUgcmF0ZSwgaXQgd2lsbCBjYWxsIHRoaXMgZnVu Y3Rpb24gdG8gc2V0IG4vY3RzDQo+ID4gIAkgKi8NCj4gPiAtCWludCAoKnN5bmNfYXVkaW9fcmF0 ZSkoc3RydWN0IGRldmljZSAqLCBpbnQgcG9ydCwgaW50IHJhdGUpOw0KPiA+ICsJaW50ICgqc3lu Y19hdWRpb19yYXRlKShzdHJ1Y3QgZGV2aWNlICosIGludCBwb3J0LCBpbnQgZGV2X2lkLCBpbnQg cmF0ZSk7DQo+ID4gIAkvKioNCj4gPiAgCSAqIEBnZXRfZWxkOiBmaWxsIHRoZSBhdWRpbyBzdGF0 ZSBhbmQgRUxEIGJ5dGVzIGZvciB0aGUgZ2l2ZW4gcG9ydA0KPiA+ICAJICoNCj4gPiBAQCAtNzcs NyArNzcsNyBAQCBzdHJ1Y3QgaTkxNV9hdWRpb19jb21wb25lbnRfb3BzIHsNCj4gPiAgCSAqIE5v dGUgdGhhdCB0aGUgcmV0dXJuZWQgc2l6ZSBtYXkgYmUgb3ZlciBAbWF4X2J5dGVzLiAgVGhlbiBp dA0KPiA+ICAJICogaW1wbGllcyB0aGF0IG9ubHkgYSBwYXJ0IG9mIEVMRCBoYXMgYmVlbiBjb3Bp ZWQgdG8gdGhlIGJ1ZmZlci4NCj4gPiAgCSAqLw0KPiA+IC0JaW50ICgqZ2V0X2VsZCkoc3RydWN0 IGRldmljZSAqLCBpbnQgcG9ydCwgYm9vbCAqZW5hYmxlZCwNCj4gPiArCWludCAoKmdldF9lbGQp KHN0cnVjdCBkZXZpY2UgKiwgaW50IHBvcnQsIGludCBkZXZfaWQsIGJvb2wgKmVuYWJsZWQsDQo+ ID4gIAkJICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IG1heF9ieXRlcyk7DQo+ID4gIH07 DQo+ID4gIA0KPiA+IEBAIC05Nyw3ICs5Nyw3IEBAIHN0cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVu dF9hdWRpb19vcHMgew0KPiA+ICAJICogc3RhdHVzIGFjY29yZGluZ2x5IChldmVuIHdoZW4gdGhl IEhEQSBjb250cm9sbGVyIGlzIGluIHBvd2VyIHNhdmUNCj4gPiAgCSAqIG1vZGUpLg0KPiA+ICAJ ICovDQo+ID4gLQl2b2lkICgqcGluX2VsZF9ub3RpZnkpKHZvaWQgKmF1ZGlvX3B0ciwgaW50IHBv cnQpOw0KPiA+ICsJdm9pZCAoKnBpbl9lbGRfbm90aWZ5KSh2b2lkICphdWRpb19wdHIsIGludCBw b3J0LCBpbnQgZGV2X2lkKTsNCj4gPiAgfTsNCj4gPiAgDQo+ID4gIC8qKg0KPiA+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmggYi9pbmNsdWRlL3NvdW5kL2hkYV9pOTE1LmgN Cj4gPiBpbmRleCA3OTZjYWJmLi41YWI5NzJlIDEwMDY0NA0KPiA+IC0tLSBhL2luY2x1ZGUvc291 bmQvaGRhX2k5MTUuaA0KPiA+ICsrKyBiL2luY2x1ZGUvc291bmQvaGRhX2k5MTUuaA0KPiA+IEBA IC0xMCw4ICsxMCw5IEBADQo+ID4gIGludCBzbmRfaGRhY19zZXRfY29kZWNfd2FrZXVwKHN0cnVj dCBoZGFjX2J1cyAqYnVzLCBib29sIGVuYWJsZSk7DQo+ID4gIGludCBzbmRfaGRhY19kaXNwbGF5 X3Bvd2VyKHN0cnVjdCBoZGFjX2J1cyAqYnVzLCBib29sIGVuYWJsZSk7DQo+ID4gIHZvaWQgc25k X2hkYWNfaTkxNV9zZXRfYmNsayhzdHJ1Y3QgaGRhY19idXMgKmJ1cyk7DQo+ID4gLWludCBzbmRf aGRhY19zeW5jX2F1ZGlvX3JhdGUoc3RydWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90 IG5pZCwgaW50IHJhdGUpOw0KPiA+IC1pbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3Qg aGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLA0KPiA+ICtpbnQgc25kX2hkYWNfc3lu Y19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsDQo+ ID4gKwkJCSAgICAgaW50IGRldl9pZCwgaW50IHJhdGUpOw0KPiA+ICtpbnQgc25kX2hkYWNfYWNv bXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQg ZGV2X2lkLA0KPiA+ICAJCQkgICBib29sICphdWRpb19lbmFibGVkLCBjaGFyICpidWZmZXIsIGlu dCBtYXhfYnl0ZXMpOw0KPiA+ICBpbnQgc25kX2hkYWNfaTkxNV9pbml0KHN0cnVjdCBoZGFjX2J1 cyAqYnVzKTsNCj4gPiAgaW50IHNuZF9oZGFjX2k5MTVfZXhpdChzdHJ1Y3QgaGRhY19idXMgKmJ1 cyk7DQo+ID4gQEAgLTI5LDEzICszMCwxMyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgc25kX2hkYWNf aTkxNV9zZXRfYmNsayhzdHJ1Y3QgaGRhY19idXMgKmJ1cykNCj4gPiAgew0KPiA+ICB9DQo+ID4g IHN0YXRpYyBpbmxpbmUgaW50IHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZShzdHJ1Y3QgaGRhY19k ZXZpY2UgKmNvZGVjLA0KPiA+IC0JCQkJCSAgIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKQ0KPiA+ ICsJCQkJCSAgIGhkYV9uaWRfdCBuaWQsIGludCBkZXZfaWQsIGludCByYXRlKQ0KPiA+ICB7DQo+ ID4gIAlyZXR1cm4gMDsNCj4gPiAgfQ0KPiA+ICBzdGF0aWMgaW5saW5lIGludCBzbmRfaGRhY19h Y29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsDQo+ ID4gLQkJCQkJIGJvb2wgKmF1ZGlvX2VuYWJsZWQsIGNoYXIgKmJ1ZmZlciwNCj4gPiAtCQkJCQkg aW50IG1heF9ieXRlcykNCj4gPiArCQkJCQkgaW50IGRldl9pZCwgYm9vbCAqYXVkaW9fZW5hYmxl ZCwNCj4gPiArCQkJCQkgY2hhciAqYnVmZmVyLCBpbnQgbWF4X2J5dGVzKQ0KPiA+ICB7DQo+ID4g IAlyZXR1cm4gLUVOT0RFVjsNCj4gPiAgfQ0KPiA+IGRpZmYgLS1naXQgYS9zb3VuZC9oZGEvaGRh Y19pOTE1LmMgYi9zb3VuZC9oZGEvaGRhY19pOTE1LmMNCj4gPiBpbmRleCBjOWFmMDIyLi42ZWE2 M2FjIDEwMDY0NA0KPiA+IC0tLSBhL3NvdW5kL2hkYS9oZGFjX2k5MTUuYw0KPiA+ICsrKyBiL3Nv dW5kL2hkYS9oZGFjX2k5MTUuYw0KPiA+IEBAIC0yMDEsNyArMjAxLDggQEAgc3RhdGljIGludCBw aW4ycG9ydChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3QgcGluX25pZCkNCj4g PiAgICogVGhpcyBmdW5jdGlvbiBzZXRzIE4vQ1RTIHZhbHVlIGJhc2VkIG9uIHRoZSBnaXZlbiBz YW1wbGUgcmF0ZS4NCj4gPiAgICogUmV0dXJucyB6ZXJvIGZvciBzdWNjZXNzLCBvciBhIG5lZ2F0 aXZlIGVycm9yIGNvZGUuDQo+ID4gICAqLw0KPiA+IC1pbnQgc25kX2hkYWNfc3luY19hdWRpb19y YXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9uaWRfdCBuaWQsIGludCByYXRlKQ0K PiA+ICtpbnQgc25kX2hkYWNfc3luY19hdWRpb19yYXRlKHN0cnVjdCBoZGFjX2RldmljZSAqY29k ZWMsIGhkYV9uaWRfdCBuaWQsDQo+ID4gKwkJCSAgICAgaW50IGRldl9pZCwgaW50IHJhdGUpDQo+ ID4gIHsNCj4gPiAgCXN0cnVjdCBoZGFjX2J1cyAqYnVzID0gY29kZWMtPmJ1czsNCj4gPiAgCXN0 cnVjdCBpOTE1X2F1ZGlvX2NvbXBvbmVudCAqYWNvbXAgPSBidXMtPmF1ZGlvX2NvbXBvbmVudDsN Cj4gPiBAQCAtMjEyLDcgKzIxMyw3IEBAIGludCBzbmRfaGRhY19zeW5jX2F1ZGlvX3JhdGUoc3Ry dWN0IGhkYWNfZGV2aWNlICpjb2RlYywgaGRhX25pZF90IG5pZCwgaW50IHJhdGUpDQo+ID4gIAlw b3J0ID0gcGluMnBvcnQoY29kZWMsIG5pZCk7DQo+ID4gIAlpZiAocG9ydCA8IDApDQo+ID4gIAkJ cmV0dXJuIC1FSU5WQUw7DQo+ID4gLQlyZXR1cm4gYWNvbXAtPm9wcy0+c3luY19hdWRpb19yYXRl KGFjb21wLT5kZXYsIHBvcnQsIHJhdGUpOw0KPiA+ICsJcmV0dXJuIGFjb21wLT5vcHMtPnN5bmNf YXVkaW9fcmF0ZShhY29tcC0+ZGV2LCBwb3J0LCBkZXZfaWQsIHJhdGUpOw0KPiA+ICB9DQo+ID4g IEVYUE9SVF9TWU1CT0xfR1BMKHNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZSk7DQo+ID4gIA0KPiA+ IEBAIC0yMzYsNyArMjM3LDcgQEAgRVhQT1JUX1NZTUJPTF9HUEwoc25kX2hkYWNfc3luY19hdWRp b19yYXRlKTsNCj4gPiAgICogdGh1cyBpdCBtYXkgYmUgb3ZlciBAbWF4X2J5dGVzLiAgSWYgaXQn cyBvdmVyIEBtYXhfYnl0ZXMsIGl0IGltcGxpZXMNCj4gPiAgICogdGhhdCBvbmx5IGEgcGFydCBv ZiBFTEQgYnl0ZXMgaGF2ZSBiZWVuIGZldGNoZWQuDQo+ID4gICAqLw0KPiA+IC1pbnQgc25kX2hk YWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNvZGVjLCBoZGFfbmlkX3Qgbmlk LA0KPiA+ICtpbnQgc25kX2hkYWNfYWNvbXBfZ2V0X2VsZChzdHJ1Y3QgaGRhY19kZXZpY2UgKmNv ZGVjLCBoZGFfbmlkX3QgbmlkLCBpbnQgZGV2X2lkLA0KPiA+ICAJCQkgICBib29sICphdWRpb19l bmFibGVkLCBjaGFyICpidWZmZXIsIGludCBtYXhfYnl0ZXMpDQo+ID4gIHsNCj4gPiAgCXN0cnVj dCBoZGFjX2J1cyAqYnVzID0gY29kZWMtPmJ1czsNCj4gPiBAQCAtMjQ5LDcgKzI1MCw3IEBAIGlu dCBzbmRfaGRhY19hY29tcF9nZXRfZWxkKHN0cnVjdCBoZGFjX2RldmljZSAqY29kZWMsIGhkYV9u aWRfdCBuaWQsDQo+ID4gIAlwb3J0ID0gcGluMnBvcnQoY29kZWMsIG5pZCk7DQo+ID4gIAlpZiAo cG9ydCA8IDApDQo+ID4gIAkJcmV0dXJuIC1FSU5WQUw7DQo+ID4gLQlyZXR1cm4gYWNvbXAtPm9w cy0+Z2V0X2VsZChhY29tcC0+ZGV2LCBwb3J0LCBhdWRpb19lbmFibGVkLA0KPiA+ICsJcmV0dXJu IGFjb21wLT5vcHMtPmdldF9lbGQoYWNvbXAtPmRldiwgcG9ydCwgZGV2X2lkLCBhdWRpb19lbmFi bGVkLA0KPiA+ICAJCQkJICAgYnVmZmVyLCBtYXhfYnl0ZXMpOw0KPiA+ICB9DQo+ID4gIEVYUE9S VF9TWU1CT0xfR1BMKHNuZF9oZGFjX2Fjb21wX2dldF9lbGQpOw0KPiA+IGRpZmYgLS1naXQgYS9z b3VuZC9wY2kvaGRhL3BhdGNoX2hkbWkuYyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jDQo+ ID4gaW5kZXggZDBkNWFkOC4uMDc3ZDQ4YSAxMDA2NDQNCj4gPiAtLS0gYS9zb3VuZC9wY2kvaGRh L3BhdGNoX2hkbWkuYw0KPiA+ICsrKyBiL3NvdW5kL3BjaS9oZGEvcGF0Y2hfaGRtaS5jDQo+ID4g QEAgLTE0ODUsNyArMTQ4NSw3IEBAIHN0YXRpYyB2b2lkIHN5bmNfZWxkX3ZpYV9hY29tcChzdHJ1 Y3QgaGRhX2NvZGVjICpjb2RlYywNCj4gPiAgDQo+ID4gIAltdXRleF9sb2NrKCZwZXJfcGluLT5s b2NrKTsNCj4gPiAgCWVsZC0+bW9uaXRvcl9wcmVzZW50ID0gZmFsc2U7DQo+ID4gLQlzaXplID0g c25kX2hkYWNfYWNvbXBfZ2V0X2VsZCgmY29kZWMtPmNvcmUsIHBlcl9waW4tPnBpbl9uaWQsDQo+ ID4gKwlzaXplID0gc25kX2hkYWNfYWNvbXBfZ2V0X2VsZCgmY29kZWMtPmNvcmUsIHBlcl9waW4t PnBpbl9uaWQsIC0xLA0KPiA+ICAJCQkJICAgICAgJmVsZC0+bW9uaXRvcl9wcmVzZW50LCBlbGQt PmVsZF9idWZmZXIsDQo+ID4gIAkJCQkgICAgICBFTERfTUFYX1NJWkUpOw0KPiA+ICAJaWYgKHNp emUgPiAwKSB7DQo+ID4gQEAgLTE3MzksNyArMTczOSw4IEBAIHN0YXRpYyBpbnQgZ2VuZXJpY19o ZG1pX3BsYXliYWNrX3BjbV9wcmVwYXJlKHN0cnVjdCBoZGFfcGNtX3N0cmVhbSAqaGluZm8sDQo+ ID4gIAkvKiBDYWxsIHN5bmNfYXVkaW9fcmF0ZSB0byBzZXQgdGhlIE4vQ1RTL00gbWFudWFsbHkg aWYgbmVjZXNzYXJ5ICovDQo+ID4gIAkvKiBUb2RvOiBhZGQgRFAxLjIgTVNUIGF1ZGlvIHN1cHBv cnQgbGF0ZXIgKi8NCj4gPiAgCWlmIChjb2RlY19oYXNfYWNvbXAoY29kZWMpKQ0KPiA+IC0JCXNu ZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZSgmY29kZWMtPmNvcmUsIHBpbl9uaWQsIHJ1bnRpbWUtPnJh dGUpOw0KPiA+ICsJCXNuZF9oZGFjX3N5bmNfYXVkaW9fcmF0ZSgmY29kZWMtPmNvcmUsIHBpbl9u aWQsIC0xLA0KPiA+ICsJCQkJCSBydW50aW1lLT5yYXRlKTsNCj4gPiAgDQo+ID4gIAlub25fcGNt ID0gY2hlY2tfbm9uX3BjbV9wZXJfY3Z0KGNvZGVjLCBjdnRfbmlkKTsNCj4gPiAgCW11dGV4X2xv Y2soJnBlcl9waW4tPmxvY2spOw0KPiA+IEBAIC0yMjg1LDcgKzIyODYsNyBAQCBzdGF0aWMgdm9p ZCBoYXN3ZWxsX3NldF9wb3dlcl9zdGF0ZShzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYywgaGRhX25p ZF90IGZnLA0KPiA+ICAJc25kX2hkYV9jb2RlY19zZXRfcG93ZXJfdG9fYWxsKGNvZGVjLCBmZywg cG93ZXJfc3RhdGUpOw0KPiA+ICB9DQo+ID4gIA0KPiA+IC1zdGF0aWMgdm9pZCBpbnRlbF9waW5f ZWxkX25vdGlmeSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0KQ0KPiA+ICtzdGF0aWMgdm9pZCBp bnRlbF9waW5fZWxkX25vdGlmeSh2b2lkICphdWRpb19wdHIsIGludCBwb3J0LCBpbnQgZGV2X2lk KQ0KPiA+ICB7DQo+ID4gIAlzdHJ1Y3QgaGRhX2NvZGVjICpjb2RlYyA9IGF1ZGlvX3B0cjsNCj4g PiAgCWludCBwaW5fbmlkOw0KPiA+IC0tIA0KPiA+IDIuNS4wDQo+IA0KDQpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK