From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH 10/10] drm/i915: Clean up DP code local variables and calling conventions Date: Thu, 9 Nov 2017 17:27:13 +0200 Message-ID: <20171109152713.GS10981@intel.com> References: <20171031205123.13123-1-ville.syrjala@linux.intel.com> <20171031205123.13123-11-ville.syrjala@linux.intel.com> <1510197699.8287.35.camel@dk-H97M-D3H> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7A9076E18D for ; Thu, 9 Nov 2017 15:27:17 +0000 (UTC) Content-Disposition: inline In-Reply-To: <1510197699.8287.35.camel@dk-H97M-D3H> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Pandiyan, Dhinakaran" Cc: "intel-gfx@lists.freedesktop.org" List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMDksIDIwMTcgYXQgMDM6MDE6MTFBTSArMDAwMCwgUGFuZGl5YW4sIERoaW5h a2FyYW4gd3JvdGU6Cj4gCj4gCj4gbml0cyBiZWxvdy4gCj4gCj4gCj4gT24gVHVlLCAyMDE3LTEw LTMxIGF0IDIyOjUxICswMjAwLCBWaWxsZSBTeXJqYWxhIHdyb3RlOgo+ID4gRnJvbTogVmlsbGUg U3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+IAo+ID4gRWxpbWlu YXRlIGEgdG9uIG9mIHBvaW50bGVzcyAnZGV2JyB2YXJpYWJsZXMgaW4gdGhlIERQIGNvZGUsIGFu ZCBwYXNzCj4gPiBhcm91bmQgJ2Rldl9wcml2JyBpbnN0ZWFkIG9mICdkZXYnLgo+ID4gCj4gPiBT aWduZWQtb2ZmLWJ5OiBWaWxsZSBTeXJqw6Rsw6QgPHZpbGxlLnN5cmphbGFAbGludXguaW50ZWwu Y29tPgo+ID4gLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyB8IDE1MSAr KysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gPiAgMSBmaWxlIGNoYW5n ZWQsIDU0IGluc2VydGlvbnMoKyksIDk3IGRlbGV0aW9ucygtKQo+ID4gCj4gPiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2RwLmMKPiA+IGluZGV4IGY4NzViYTc4YzQzNS4uMzBhYzE4N2IyYjk3IDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gKysrIGIvZHJpdmVy cy9ncHUvZHJtL2k5MTUvaW50ZWxfZHAuYwo+ID4gQEAgLTQzOCwxMCArNDM4LDcgQEAgaW50ZWxf ZHBfcHBzX2luaXQoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCk7Cj4gPiAgCj4gPiAgc3RhdGlj IHZvaWQgcHBzX2xvY2soc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCXN0 cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQo aW50ZWxfZHApOwo+ID4gLQlzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciA9ICZpbnRlbF9k aWdfcG9ydC0+YmFzZTsKPiA+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGVuY29kZXItPmJh c2UuZGV2Owo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGRldik7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo aW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gPiAgCj4gPiAgCS8qCj4gPiAgCSAqIFNlZSB2 bHZfcG93ZXJfc2VxdWVuY2VyX3Jlc2V0KCkgd2h5IHdlIG5lZWQKPiA+IEBAIC00NTQsMTAgKzQ1 MSw3IEBAIHN0YXRpYyB2b2lkIHBwc19sb2NrKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4g PiAgCj4gPiAgc3RhdGljIHZvaWQgcHBzX3VubG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ID4gIHsKPiA+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQg PSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAtCXN0cnVjdCBpbnRlbF9lbmNvZGVyICpl bmNvZGVyID0gJmludGVsX2RpZ19wb3J0LT5iYXNlOwo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICAKPiA+ICAJ bXV0ZXhfdW5sb2NrKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKPiA+ICAKPiA+IEBAIC00NjcsOCAr NDYxLDggQEAgc3RhdGljIHZvaWQgcHBzX3VubG9jayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2Rw KQo+ID4gIHN0YXRpYyB2b2lkCj4gPiAgdmx2X3Bvd2VyX3NlcXVlbmNlcl9raWNrKHN0cnVjdCBp bnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gIAlzdHJ1 Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGlu dGVsX2RwKTsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldik7Cj4gPiAgCWVudW0gcGlwZSBwaXBlID0g aW50ZWxfZHAtPnBwc19waXBlOwo+ID4gIAlib29sIHBsbF9lbmFibGVkLCByZWxlYXNlX2NsX292 ZXJyaWRlID0gZmFsc2U7Cj4gPiAgCWVudW0gZHBpb19waHkgcGh5ID0gRFBJT19QSFkocGlwZSk7 Cj4gPiBAQCAtNzMzLDcgKzcyNyw2IEBAIHZsdl9pbml0aWFsX3Bvd2VyX3NlcXVlbmNlcl9zZXR1 cChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIAo+ID4gIHZvaWQgaW50ZWxfcG93ZXJf c2VxdWVuY2VyX3Jlc2V0KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKPiA+ICB7 Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSAmZGV2X3ByaXYtPmRybTsKPiA+ICAJc3Ry dWN0IGludGVsX2VuY29kZXIgKmVuY29kZXI7Cj4gPiAgCj4gPiAgCWlmIChXQVJOX09OKCFJU19W QUxMRVlWSUVXKGRldl9wcml2KSAmJiAhSVNfQ0hFUlJZVklFVyhkZXZfcHJpdikgJiYKPiA+IEBA IC03NTAsNyArNzQzLDcgQEAgdm9pZCBpbnRlbF9wb3dlcl9zZXF1ZW5jZXJfcmVzZXQoc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ID4gIAkgKiBzaG91bGQgdXNlIHRoZW0gYWx3 YXlzLgo+ID4gIAkgKi8KPiA+ICAKPiA+IC0JZm9yX2VhY2hfaW50ZWxfZW5jb2RlcihkZXYsIGVu Y29kZXIpIHsKPiA+ICsJZm9yX2VhY2hfaW50ZWxfZW5jb2RlcigmZGV2X3ByaXYtPmRybSwgZW5j b2Rlcikgewo+ID4gIAkJc3RydWN0IGludGVsX2RwICppbnRlbF9kcDsKPiA+ICAKPiA+ICAJCWlm IChlbmNvZGVyLT50eXBlICE9IElOVEVMX09VVFBVVF9EUCAmJgo+ID4gQEAgLTgzMiw4ICs4MjUs NyBAQCBzdGF0aWMgaW50IGVkcF9ub3RpZnlfaGFuZGxlcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sg KnRoaXMsIHVuc2lnbmVkIGxvbmcgY29kZSwKPiA+ICB7Cj4gPiAgCXN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHAgPSBjb250YWluZXJfb2YodGhpcywgdHlwZW9mKCogaW50ZWxfZHApLAo+ID4gIAkJ CQkJCSBlZHBfbm90aWZpZXIpOwo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxf ZHBfdG9fZGV2KGludGVsX2RwKTsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShkZXYpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gIAo+ID4gIAlpZiAo IWludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkgfHwgY29kZSAhPSBTWVNfUkVTVEFSVCkKPiA+ICAJ CXJldHVybiAwOwo+ID4gQEAgLTg2Myw4ICs4NTUsNyBAQCBzdGF0aWMgaW50IGVkcF9ub3RpZnlf aGFuZGxlcihzdHJ1Y3Qgbm90aWZpZXJfYmxvY2sgKnRoaXMsIHVuc2lnbmVkIGxvbmcgY29kZSwK PiA+ICAKPiA+ICBzdGF0aWMgYm9vbCBlZHBfaGF2ZV9wYW5lbF9wb3dlcihzdHJ1Y3QgaW50ZWxf ZHAgKmludGVsX2RwKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVs X2RwX3RvX2RldihpbnRlbF9kcCk7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICAKPiA+ICAJbG9j a2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7Cj4gPiAgCj4gPiBAQCAtODc3 LDggKzg2OCw3IEBAIHN0YXRpYyBib29sIGVkcF9oYXZlX3BhbmVsX3Bvd2VyKHN0cnVjdCBpbnRl bF9kcCAqaW50ZWxfZHApCj4gPiAgCj4gPiAgc3RhdGljIGJvb2wgZWRwX2hhdmVfcGFuZWxfdmRk KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPiA+IC0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ ID4gIAo+ID4gIAlsb2NrZGVwX2Fzc2VydF9oZWxkKCZkZXZfcHJpdi0+cHBzX211dGV4KTsKPiA+ ICAKPiA+IEBAIC04OTIsOCArODgyLDcgQEAgc3RhdGljIGJvb2wgZWRwX2hhdmVfcGFuZWxfdmRk KHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgc3RhdGljIHZvaWQKPiA+ICBpbnRlbF9k cF9jaGVja19lZHAoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCXN0cnVj dCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+ID4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGlu dGVsX2RwKSk7Cj4gPiAgCj4gPiAgCWlmICghaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSkKPiA+ ICAJCXJldHVybjsKPiA+IEBAIC05MDksOSArODk4LDcgQEAgaW50ZWxfZHBfY2hlY2tfZWRwKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgc3RhdGljIHVpbnQzMl90Cj4gPiAgaW50ZWxf ZHBfYXV4X3dhaXRfZG9uZShzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLCBib29sIGhhc19hdXhf aXJxKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGlnX3Bv cnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPiA+IC0Jc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ ID4gIAlpOTE1X3JlZ190IGNoX2N0bCA9IGludGVsX2RwLT5hdXhfY2hfY3RsX3JlZzsKPiA+ICAJ dWludDMyX3Qgc3RhdHVzOwo+ID4gIAlib29sIGRvbmU7Cj4gPiBAQCAtMTQ3OCw4ICsxNDY1LDcg QEAgc3RhdGljIHZvaWQKPiA+ICBpbnRlbF9kcF9zZXRfY2xvY2soc3RydWN0IGludGVsX2VuY29k ZXIgKmVuY29kZXIsCj4gPiAgCQkgICBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcpCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5k ZXY7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShlbmNv ZGVyLT5iYXNlLmRldik7Cj4gPiAgCWNvbnN0IHN0cnVjdCBkcF9saW5rX2RwbGwgKmRpdmlzb3Ig PSBOVUxMOwo+ID4gIAlpbnQgaSwgY291bnQgPSAwOwo+ID4gIAo+ID4gQEAgLTE4NDgsOCArMTgz NCw3IEBAIHZvaWQgaW50ZWxfZHBfc2V0X2xpbmtfcGFyYW1zKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAsCj4gPiAgc3RhdGljIHZvaWQgaW50ZWxfZHBfcHJlcGFyZShzdHJ1Y3QgaW50ZWxfZW5j b2RlciAqZW5jb2RlciwKPiA+ICAJCQkgICAgIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRl ICpwaXBlX2NvbmZpZykKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNv ZGVyLT5iYXNlLmRldjsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0g dG9faTkxNShkZXYpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ICAJc3RydWN0IGludGVsX2RwICppbnRlbF9k cCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7Cj4gPiAgCWVudW0gcG9ydCBwb3J0 ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlLnBvcnQ7Cj4gPiAgCXN0cnVjdCBpbnRl bF9jcnRjICpjcnRjID0gdG9faW50ZWxfY3J0YyhwaXBlX2NvbmZpZy0+YmFzZS5jcnRjKTsKPiA+ IEBAIC0xOTQ1LDggKzE5MzAsNyBAQCBzdGF0aWMgdm9pZCB3YWl0X3BhbmVsX3N0YXR1cyhzdHJ1 Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJCQkgICAgICAgdTMyIG1hc2ssCj4gPiAgCQkJ CSAgICAgICB1MzIgdmFsdWUpCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g aW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUg KmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gIAlpOTE1 X3JlZ190IHBwX3N0YXRfcmVnLCBwcF9jdHJsX3JlZzsKPiA+ICAKPiA+ICAJbG9ja2RlcF9hc3Nl cnRfaGVsZCgmZGV2X3ByaXYtPnBwc19tdXRleCk7Cj4gPiBAQCAtMjAyMiw4ICsyMDA2LDcgQEAg c3RhdGljIHZvaWQgZWRwX3dhaXRfYmFja2xpZ2h0X29mZihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQo+ID4gIAo+ID4gIHN0YXRpYyAgdTMyIGlyb25sYWtlX2dldF9wcF9jb250cm9sKHN0cnVj dCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2RldihpbnRlbF9kcCkpOwo+ID4gIAl1 MzIgY29udHJvbDsKPiA+ICAKPiA+ICAJbG9ja2RlcF9hc3NlcnRfaGVsZCgmZGV2X3ByaXYtPnBw c19tdXRleCk7Cj4gPiBAQCAtMjA0NCw5ICsyMDI3LDggQEAgc3RhdGljICB1MzIgaXJvbmxha2Vf Z2V0X3BwX2NvbnRyb2woc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICAgKi8KPiA+ICBz dGF0aWMgYm9vbCBlZHBfcGFuZWxfdmRkX29uKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4g PiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVs X2RwKTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShp bnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9y dCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAtCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ICAJdTMyIHBw Owo+ID4gIAlpOTE1X3JlZ190IHBwX3N0YXRfcmVnLCBwcF9jdHJsX3JlZzsKPiA+ICAJYm9vbCBu ZWVkX3RvX2Rpc2FibGUgPSAhaW50ZWxfZHAtPndhbnRfcGFuZWxfdmRkOwo+ID4gQEAgLTIxMTYs OCArMjA5OCw3IEBAIHZvaWQgaW50ZWxfZWRwX3BhbmVsX3ZkZF9vbihzdHJ1Y3QgaW50ZWxfZHAg KmludGVsX2RwKQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfb2ZmX3N5bmMo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4g PiAgCXN0cnVjdCBpbnRlbF9kaWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0KPiA+ICAJCWRw X3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ICAJdTMyIHBwOwo+ID4gQEAgLTIyMDMsOCArMjE4 NCw3IEBAIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF92ZGRfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50 ZWxfZHAsIGJvb2wgc3luYykKPiA+ICAKPiA+ICBzdGF0aWMgdm9pZCBlZHBfcGFuZWxfb24oc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApOwo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gPiAg CXUzMiBwcDsKPiA+ICAJaTkxNV9yZWdfdCBwcF9jdHJsX3JlZzsKPiA+ICAKPiA+IEBAIC0yMjYy LDggKzIyNDIsNyBAQCB2b2lkIGludGVsX2VkcF9wYW5lbF9vbihzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwKQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIGVkcF9wYW5lbF9vZmYoc3RydWN0IGludGVs X2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRl bF9kcF90b19kZXYoaW50ZWxfZHApOwo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gPiAgCXUzMiBwcDsK PiA+ICAJaTkxNV9yZWdfdCBwcF9jdHJsX3JlZzsKPiA+ICAKPiA+IEBAIC0yMzExLDkgKzIyOTAs NyBAQCB2b2lkIGludGVsX2VkcF9wYW5lbF9vZmYoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkK PiA+ICAvKiBFbmFibGUgYmFja2xpZ2h0IGluIHRoZSBwYW5lbCBwb3dlciBjb250cm9sLiAqLwo+ ID4gIHN0YXRpYyB2b2lkIF9pbnRlbF9lZHBfYmFja2xpZ2h0X29uKHN0cnVjdCBpbnRlbF9kcCAq aW50ZWxfZHApCj4gPiAgewo+ID4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9k aWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+IC0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+ID4gLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiArCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2Rw KSk7Cj4gPiAgCXUzMiBwcDsKPiA+ICAJaTkxNV9yZWdfdCBwcF9jdHJsX3JlZzsKPiA+ICAKPiA+ IEBAIC0yMzU2LDggKzIzMzMsNyBAQCB2b2lkIGludGVsX2VkcF9iYWNrbGlnaHRfb24oY29uc3Qg c3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUsCj4gPiAgLyogRGlzYWJsZSBiYWNr bGlnaHQgaW4gdGhlIHBhbmVsIHBvd2VyIGNvbnRyb2wuICovCj4gPiAgc3RhdGljIHZvaWQgX2lu dGVsX2VkcF9iYWNrbGlnaHRfb2ZmKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsK PiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2Rw X3RvX2RldihpbnRlbF9kcCkpOwo+ID4gIAl1MzIgcHA7Cj4gPiAgCWk5MTVfcmVnX3QgcHBfY3Ry bF9yZWc7Cj4gPiAgCj4gPiBAQCAtMjU2MCwxMCArMjUzNiw5IEBAIHZvaWQgaW50ZWxfZHBfc2lu a19kcG1zKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsIGludCBtb2RlKQo+ID4gIHN0YXRpYyBi b29sIGludGVsX2RwX2dldF9od19zdGF0ZShzdHJ1Y3QgaW50ZWxfZW5jb2RlciAqZW5jb2RlciwK PiA+ICAJCQkJICBlbnVtIHBpcGUgKnBpcGUpCj4gPiAgewo+ID4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGVuY29kZXItPmJhc2UuZGV2KTsKPiA+ICAJc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCA9IGVuY190b19pbnRlbF9kcCgmZW5jb2Rlci0+YmFzZSk7 Cj4gPiAgCWVudW0gcG9ydCBwb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlLnBv cnQ7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBlbmNvZGVyLT5iYXNlLmRldjsKPiA+ IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4g IAl1MzIgdG1wOwo+ID4gIAlib29sIHJldDsKPiA+ICAKPiA+IEBAIC0yNjEyLDEwICsyNTg3LDkg QEAgc3RhdGljIGJvb2wgaW50ZWxfZHBfZ2V0X2h3X3N0YXRlKHN0cnVjdCBpbnRlbF9lbmNvZGVy ICplbmNvZGVyLAo+ID4gIHN0YXRpYyB2b2lkIGludGVsX2RwX2dldF9jb25maWcoc3RydWN0IGlu dGVsX2VuY29kZXIgKmVuY29kZXIsCj4gPiAgCQkJCXN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpw aXBlX2NvbmZpZykKPiA+ICB7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gIAlzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwID0gZW5jX3RvX2ludGVsX2RwKCZlbmNvZGVyLT5iYXNlKTsKPiA+ICAJdTMyIHRtcCwg ZmxhZ3MgPSAwOwo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5k ZXY7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKPiA+ICAJZW51bSBwb3J0IHBvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCktPmJhc2Uu cG9ydDsKPiA+ICAJc3RydWN0IGludGVsX2NydGMgKmNydGMgPSB0b19pbnRlbF9jcnRjKHBpcGVf Y29uZmlnLT5iYXNlLmNydGMpOwo+ID4gIAo+ID4gQEAgLTI3ODIsOSArMjc1Niw4IEBAIF9pbnRl bF9kcF9zZXRfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAkJCSB1 aW50MzJfdCAqRFAsCj4gPiAgCQkJIHVpbnQ4X3QgZHBfdHJhaW5fcGF0KQo+ID4gIHsKPiA+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19k ZXYoaW50ZWxfZHApKTsKPiA+ICAJc3RydWN0IGludGVsX2RpZ2l0YWxfcG9ydCAqaW50ZWxfZGln X3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsKPiA+IC0Jc3RydWN0IGRybV9p OTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gIAllbnVtIHBvcnQgcG9y dCA9IGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQ7Cj4gPiAgCj4gPiAgCWlmIChkcF90cmFpbl9w YXQgJiBEUF9UUkFJTklOR19QQVRURVJOX01BU0spCj4gPiBAQCAtMjg2OCw4ICsyODQxLDcgQEAg X2ludGVsX2RwX3NldF9saW5rX3RyYWluKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAg c3RhdGljIHZvaWQgaW50ZWxfZHBfZW5hYmxlX3BvcnQoc3RydWN0IGludGVsX2RwICppbnRlbF9k cCwKPiA+ICAJCQkJIGNvbnN0IHN0cnVjdCBpbnRlbF9jcnRjX3N0YXRlICpvbGRfY3J0Y19zdGF0 ZSkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19kZXYo aW50ZWxfZHApOwo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGRldik7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gPiAgCj4gPiAgCS8qIGVuYWJsZSB3aXRo IHBhdHRlcm4gMSAoYXMgcGVyIHNwZWMpICovCj4gPiAgCj4gPiBAQCAtMjg5Myw5ICsyODY1LDgg QEAgc3RhdGljIHZvaWQgaW50ZWxfZW5hYmxlX2RwKHN0cnVjdCBpbnRlbF9lbmNvZGVyICplbmNv ZGVyLAo+ID4gIAkJCSAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqcGlwZV9jb25m aWcsCj4gPiAgCQkJICAgIGNvbnN0IHN0cnVjdCBkcm1fY29ubmVjdG9yX3N0YXRlICpjb25uX3N0 YXRlKQo+ID4gIHsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShlbmNvZGVyLT5iYXNlLmRldik7Cj4gPiAgCXN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAg PSBlbmNfdG9faW50ZWxfZHAoJmVuY29kZXItPmJhc2UpOwo+ID4gLQlzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2ID0gZW5jb2Rlci0+YmFzZS5kZXY7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ICAJc3RydWN0IGludGVsX2NydGMgKmNydGMg PSB0b19pbnRlbF9jcnRjKHBpcGVfY29uZmlnLT5iYXNlLmNydGMpOwo+ID4gIAl1aW50MzJfdCBk cF9yZWcgPSBJOTE1X1JFQUQoaW50ZWxfZHAtPm91dHB1dF9yZWcpOwo+ID4gIAllbnVtIHBpcGUg cGlwZSA9IGNydGMtPnBpcGU7Cj4gPiBAQCAtMzUxOSwxMCArMzQ5MCw5IEBAIGdlbjdfZWRwX3Np Z25hbF9sZXZlbHModWludDhfdCB0cmFpbl9zZXQpCj4gPiAgdm9pZAo+ID4gIGludGVsX2RwX3Nl dF9zaWduYWxfbGV2ZWxzKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ID4gKwlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3RvX2Rl dihpbnRlbF9kcCkpOwo+ID4gIAlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRlbF9kaWdf cG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+ICAJZW51bSBwb3J0IHBvcnQgPSBp bnRlbF9kaWdfcG9ydC0+YmFzZS5wb3J0Owo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g aW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5kZXY7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ICAJdWludDMyX3Qgc2lnbmFsX2xldmVs cywgbWFzayA9IDA7Cj4gPiAgCXVpbnQ4X3QgdHJhaW5fc2V0ID0gaW50ZWxfZHAtPnRyYWluX3Nl dFswXTsKPiA+ICAKPiA+IEBAIC0zNTc3LDkgKzM1NDcsOCBAQCBpbnRlbF9kcF9wcm9ncmFtX2xp bmtfdHJhaW5pbmdfcGF0dGVybihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ID4gIAo+ID4g IHZvaWQgaW50ZWxfZHBfc2V0X2lkbGVfbGlua190cmFpbihzdHJ1Y3QgaW50ZWxfZHAgKmludGVs X2RwKQo+ID4gIHsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9f aTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICAJc3RydWN0IGludGVsX2RpZ2l0 YWxfcG9ydCAqaW50ZWxfZGlnX3BvcnQgPSBkcF90b19kaWdfcG9ydChpbnRlbF9kcCk7Cj4gPiAt CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kaWdfcG9ydC0+YmFzZS5iYXNlLmRldjsK PiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ ID4gIAllbnVtIHBvcnQgcG9ydCA9IGludGVsX2RpZ19wb3J0LT5iYXNlLnBvcnQ7Cj4gPiAgCXVp bnQzMl90IHZhbDsKPiA+ICAKPiA+IEBAIC00MzAzLDExICs0MjcyLDExIEBAIGludGVsX2RwX3Jl dHJhaW5fbGluayhzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIHN0YXRpYyB2b2lkCj4g PiAgaW50ZWxfZHBfY2hlY2tfbGlua19zdGF0dXMoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkK PiA+ICB7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUo aW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gCj4gWW91IGNvbnZlcnQgaXQgYmFjayBhZ2Fp biB0byBkcm1fZGV2aWNlLgoKQWN0dWFsbHkgd2hlcmUgSSB3YW50IHRvIGdvIG5leHQgaXMgY2hh bmdpbmcgaW50ZWxfZHBfdG9fZGV2KCkgaW50bwppbnRlbF9kcF90b19pOTE1KCkuIFNvIGF0IHRo YXQgcG9pbnQgdGhpbmdzIHdpbGwgbm90IGxvb2sgc28gb2RkLgoKPiAKPiA+ICAJc3RydWN0IGlu dGVsX2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5i YXNlOwo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVs X2RwKTsKPiA+ICAJdTggbGlua19zdGF0dXNbRFBfTElOS19TVEFUVVNfU0laRV07Cj4gPiAgCj4g PiAtCVdBUk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tlZCgmZGV2LT5tb2RlX2NvbmZpZy5jb25u ZWN0aW9uX211dGV4KSk7Cj4gPiArCVdBUk5fT04oIWRybV9tb2Rlc2V0X2lzX2xvY2tlZCgmZGV2 X3ByaXYtPmRybS5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4KSk7Cj4gPiAgCj4gPiAgCWlm ICghaW50ZWxfZHBfZ2V0X2xpbmtfc3RhdHVzKGludGVsX2RwLCBsaW5rX3N0YXR1cykpIHsKPiA+ ICAJCURSTV9FUlJPUigiRmFpbGVkIHRvIGdldCBsaW5rIHN0YXR1c1xuIik7Cj4gPiBAQCAtNDM1 Myw4ICs0MzIyLDcgQEAgaW50ZWxfZHBfY2hlY2tfbGlua19zdGF0dXMoc3RydWN0IGludGVsX2Rw ICppbnRlbF9kcCkKPiA+ICBzdGF0aWMgYm9vbAo+ID4gIGludGVsX2RwX3Nob3J0X3B1bHNlKHN0 cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHApCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsKPiA+IC0Jc3RydWN0IGludGVsX2VuY29k ZXIgKmludGVsX2VuY29kZXIgPSAmZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApLT5iYXNlOwo+ID4g KwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2RwX3Rv X2RldihpbnRlbF9kcCkpOwo+IAo+IHRvX2k5MTUoKSBpcyB1bm5lY2Vzc2FyeSwgYWxsIGNhc2Vz IG9mIGRldl9wcml2IHVzYWdlIGFyZSBmb3IKPiBkZXZfcHJpdi0+ZHJtLgoKc2ltaWxhciByZWFz b25pbmcgaGVyZQoKPiAKPiAKPiA+ICAJdTggc2lua19pcnFfdmVjdG9yID0gMDsKPiA+ICAJdTgg b2xkX3NpbmtfY291bnQgPSBpbnRlbF9kcC0+c2lua19jb3VudDsKPiA+ICAJYm9vbCByZXQ7Cj4g PiBAQCAtNDM5MywxMyArNDM2MSwxMyBAQCBpbnRlbF9kcF9zaG9ydF9wdWxzZShzdHJ1Y3QgaW50 ZWxfZHAgKmludGVsX2RwKQo+ID4gIAkJCURSTV9ERUJVR19EUklWRVIoIkNQIG9yIHNpbmsgc3Bl Y2lmaWMgaXJxIHVuaGFuZGxlZFxuIik7Cj4gPiAgCX0KPiA+ICAKPiA+IC0JZHJtX21vZGVzZXRf bG9jaygmZGV2LT5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4LCBOVUxMKTsKPiA+ICsJZHJt X21vZGVzZXRfbG9jaygmZGV2X3ByaXYtPmRybS5tb2RlX2NvbmZpZy5jb25uZWN0aW9uX211dGV4 LCBOVUxMKTsKPiA+ICAJaW50ZWxfZHBfY2hlY2tfbGlua19zdGF0dXMoaW50ZWxfZHApOwo+ID4g LQlkcm1fbW9kZXNldF91bmxvY2soJmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCk7 Cj4gPiArCWRybV9tb2Rlc2V0X3VubG9jaygmZGV2X3ByaXYtPmRybS5tb2RlX2NvbmZpZy5jb25u ZWN0aW9uX211dGV4KTsKPiA+ICAJaWYgKGludGVsX2RwLT5jb21wbGlhbmNlLnRlc3RfdHlwZSA9 PSBEUF9URVNUX0xJTktfVFJBSU5JTkcpIHsKPiA+ICAJCURSTV9ERUJVR19LTVMoIkxpbmsgVHJh aW5pbmcgQ29tcGxpYW5jZSBUZXN0IHJlcXVlc3RlZFxuIik7Cj4gPiAgCQkvKiBTZW5kIGEgSG90 cGx1ZyBVZXZlbnQgdG8gdXNlcnNwYWNlIHRvIHN0YXJ0IG1vZGVzZXQgKi8KPiA+IC0JCWRybV9r bXNfaGVscGVyX2hvdHBsdWdfZXZlbnQoaW50ZWxfZW5jb2Rlci0+YmFzZS5kZXYpOwo+ID4gKwkJ ZHJtX2ttc19oZWxwZXJfaG90cGx1Z19ldmVudCgmZGV2X3ByaXYtPmRybSk7Cj4gPiAgCX0KPiA+ ICAKPiA+ICAJcmV0dXJuIHRydWU7Cj4gPiBAQCAtNDQ2Myw4ICs0NDMxLDcgQEAgaW50ZWxfZHBf ZGV0ZWN0X2RwY2Qoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICBzdGF0aWMgZW51bSBk cm1fY29ubmVjdG9yX3N0YXR1cwo+ID4gIGVkcF9kZXRlY3Qoc3RydWN0IGludGVsX2RwICppbnRl bF9kcCkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9kcF90b19k ZXYoaW50ZWxfZHApOwo+ID4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGRldik7Cj4gPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKSk7Cj4gPiAgCWVudW0gZHJtX2Nvbm5lY3Rv cl9zdGF0dXMgc3RhdHVzOwo+ID4gIAo+ID4gIAlzdGF0dXMgPSBpbnRlbF9wYW5lbF9kZXRlY3Qo ZGV2X3ByaXYpOwo+ID4gQEAgLTQ3MjAsMjIgKzQ2ODcsMjEgQEAgaW50ZWxfZHBfdW5zZXRfZWRp ZChzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwKQo+ID4gIH0KPiA+ICAKPiA+ICBzdGF0aWMgaW50 Cj4gPiAtaW50ZWxfZHBfbG9uZ19wdWxzZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9j b25uZWN0b3IpCj4gPiAraW50ZWxfZHBfbG9uZ19wdWxzZShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpCj4gPiAgewo+ID4gLQlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y ID0gJmludGVsX2Nvbm5lY3Rvci0+YmFzZTsKPiA+IC0Jc3RydWN0IGludGVsX2RwICppbnRlbF9k cCA9IGludGVsX2F0dGFjaGVkX2RwKGNvbm5lY3Rvcik7Cj4gPiAtCXN0cnVjdCBkcm1fZGV2aWNl ICpkZXYgPSBjb25uZWN0b3ItPmRldjsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiA+ICsJc3RydWN0IGludGVs X2RwICppbnRlbF9kcCA9IGludGVsX2F0dGFjaGVkX2RwKCZjb25uZWN0b3ItPmJhc2UpOwo+ID4g IAllbnVtIGRybV9jb25uZWN0b3Jfc3RhdHVzIHN0YXR1czsKPiA+ICAJdTggc2lua19pcnFfdmVj dG9yID0gMDsKPiA+ICAKPiA+IC0JV0FSTl9PTighZHJtX21vZGVzZXRfaXNfbG9ja2VkKCZjb25u ZWN0b3ItPmRldi0+bW9kZV9jb25maWcuY29ubmVjdGlvbl9tdXRleCkpOwo+ID4gKwlXQVJOX09O KCFkcm1fbW9kZXNldF9pc19sb2NrZWQoJmRldl9wcml2LT5kcm0ubW9kZV9jb25maWcuY29ubmVj dGlvbl9tdXRleCkpOwo+ID4gIAo+ID4gLQlpbnRlbF9kaXNwbGF5X3Bvd2VyX2dldCh0b19pOTE1 KGRldiksIGludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluKTsKPiA+ICsJaW50ZWxfZGlzcGxheV9w b3dlcl9nZXQoZGV2X3ByaXYsIGludGVsX2RwLT5hdXhfcG93ZXJfZG9tYWluKTsKPiA+ICAKPiA+ ICAJLyogQ2FuJ3QgZGlzY29ubmVjdCBlRFAsIGJ1dCB5b3UgY2FuIGNsb3NlIHRoZSBsaWQuLi4g Ki8KPiA+ICAJaWYgKGludGVsX2RwX2lzX2VkcChpbnRlbF9kcCkpCj4gPiAgCQlzdGF0dXMgPSBl ZHBfZGV0ZWN0KGludGVsX2RwKTsKPiA+IC0JZWxzZSBpZiAoaW50ZWxfZGlnaXRhbF9wb3J0X2Nv bm5lY3RlZCh0b19pOTE1KGRldiksCj4gPiArCWVsc2UgaWYgKGludGVsX2RpZ2l0YWxfcG9ydF9j b25uZWN0ZWQoZGV2X3ByaXYsCj4gPiAgCQkJCQkgICAgICBkcF90b19kaWdfcG9ydChpbnRlbF9k cCkpKQo+ID4gIAkJc3RhdHVzID0gaW50ZWxfZHBfZGV0ZWN0X2RwY2QoaW50ZWxfZHApOwo+ID4g IAllbHNlCj4gPiBAQCAtNDgwNiw3ICs0NzcyLDcgQEAgaW50ZWxfZHBfbG9uZ19wdWxzZShzdHJ1 Y3QgaW50ZWxfY29ubmVjdG9yICppbnRlbF9jb25uZWN0b3IpCj4gPiAgCWludGVsX2RwLT5hdXgu aTJjX2RlZmVyX2NvdW50ID0gMDsKPiA+ICAKPiA+ICAJaW50ZWxfZHBfc2V0X2VkaWQoaW50ZWxf ZHApOwo+ID4gLQlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSB8fCBpbnRlbF9jb25uZWN0 b3ItPmRldGVjdF9lZGlkKQo+ID4gKwlpZiAoaW50ZWxfZHBfaXNfZWRwKGludGVsX2RwKSB8fCBj b25uZWN0b3ItPmRldGVjdF9lZGlkKQo+ID4gIAkJc3RhdHVzID0gY29ubmVjdG9yX3N0YXR1c19j b25uZWN0ZWQ7Cj4gPiAgCWludGVsX2RwLT5kZXRlY3RfZG9uZSA9IHRydWU7Cj4gPiAgCj4gPiBA QCAtNDgyOSw3ICs0Nzk1LDcgQEAgaW50ZWxfZHBfbG9uZ19wdWxzZShzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICppbnRlbF9jb25uZWN0b3IpCj4gPiAgCWlmIChzdGF0dXMgIT0gY29ubmVjdG9yX3N0 YXR1c19jb25uZWN0ZWQgJiYgIWludGVsX2RwLT5pc19tc3QpCj4gPiAgCQlpbnRlbF9kcF91bnNl dF9lZGlkKGludGVsX2RwKTsKPiA+ICAKPiA+IC0JaW50ZWxfZGlzcGxheV9wb3dlcl9wdXQodG9f aTkxNShkZXYpLCBpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbik7Cj4gPiArCWludGVsX2Rpc3Bs YXlfcG93ZXJfcHV0KGRldl9wcml2LCBpbnRlbF9kcC0+YXV4X3Bvd2VyX2RvbWFpbik7Cj4gPiAg CXJldHVybiBzdGF0dXM7Cj4gPiAgfQo+ID4gIAo+ID4gQEAgLTQ5OTYsOSArNDk2Miw3IEBAIHZv aWQgaW50ZWxfZHBfZW5jb2Rlcl9zdXNwZW5kKHN0cnVjdCBpbnRlbF9lbmNvZGVyICppbnRlbF9l bmNvZGVyKQo+ID4gIAo+ID4gIHN0YXRpYyB2b2lkIGludGVsX2VkcF9wYW5lbF92ZGRfc2FuaXRp emUoc3RydWN0IGludGVsX2RwICppbnRlbF9kcCkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBpbnRlbF9k aWdpdGFsX3BvcnQgKmludGVsX2RpZ19wb3J0ID0gZHBfdG9fZGlnX3BvcnQoaW50ZWxfZHApOwo+ ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZGlnX3BvcnQtPmJhc2UuYmFzZS5k ZXY7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2 KTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRl bF9kcF90b19kZXYoaW50ZWxfZHApKTsKPiA+ICAKPiA+ICAJbG9ja2RlcF9hc3NlcnRfaGVsZCgm ZGV2X3ByaXYtPnBwc19tdXRleCk7Cj4gPiAgCj4gPiBAQCAtNTA4Niw4ICs1MDUwLDcgQEAgZW51 bSBpcnFyZXR1cm4KPiA+ICBpbnRlbF9kcF9ocGRfcHVsc2Uoc3RydWN0IGludGVsX2RpZ2l0YWxf cG9ydCAqaW50ZWxfZGlnX3BvcnQsIGJvb2wgbG9uZ19ocGQpCj4gPiAgewo+ID4gIAlzdHJ1Y3Qg aW50ZWxfZHAgKmludGVsX2RwID0gJmludGVsX2RpZ19wb3J0LT5kcDsKPiA+IC0Jc3RydWN0IGRy bV9kZXZpY2UgKmRldiA9IGludGVsX2RpZ19wb3J0LT5iYXNlLmJhc2UuZGV2Owo+ID4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGRldik7Cj4gPiArCXN0cnVj dCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoaW50ZWxfZHBfdG9fZGV2KGlu dGVsX2RwKSk7Cj4gPiAgCWVudW0gaXJxcmV0dXJuIHJldCA9IElSUV9OT05FOwo+ID4gIAo+ID4g IAlpZiAobG9uZ19ocGQgJiYgaW50ZWxfZGlnX3BvcnQtPmJhc2UudHlwZSA9PSBJTlRFTF9PVVRQ VVRfRURQKSB7Cj4gPiBAQCAtNTU0Niw4ICs1NTA5LDcgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHBf c2V0X2RycnNfc3RhdGUoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LAo+ID4gIHZv aWQgaW50ZWxfZWRwX2RycnNfZW5hYmxlKHN0cnVjdCBpbnRlbF9kcCAqaW50ZWxfZHAsCj4gPiAg CQkJICAgY29uc3Qgc3RydWN0IGludGVsX2NydGNfc3RhdGUgKmNydGNfc3RhdGUpCj4gPiAgewo+ ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gaW50ZWxfZHBfdG9fZGV2KGludGVsX2RwKTsK PiA+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ ID4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGludGVsX2Rw X3RvX2RldihpbnRlbF9kcCkpOwo+ID4gIAo+ID4gIAlpZiAoIWNydGNfc3RhdGUtPmhhc19kcnJz KSB7Cj4gPiAgCQlEUk1fREVCVUdfS01TKCJQYW5lbCBkb2Vzbid0IHN1cHBvcnQgRFJSU1xuIik7 Cj4gPiBAQCAtNTU4Miw4ICs1NTQ0LDcgQEAgdm9pZCBpbnRlbF9lZHBfZHJyc19lbmFibGUoc3Ry dWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICB2b2lkIGludGVsX2VkcF9kcnJzX2Rpc2FibGUo c3RydWN0IGludGVsX2RwICppbnRlbF9kcCwKPiA+ICAJCQkgICAgY29uc3Qgc3RydWN0IGludGVs X2NydGNfc3RhdGUgKm9sZF9jcnRjX3N0YXRlKQo+ID4gIHsKPiA+IC0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7Cj4gPiAtCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoZGV2KTsKPiA+ICsJc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShpbnRlbF9kcF90b19kZXYoaW50ZWxfZHApKTsK PiA+ICAKPiA+ICAJaWYgKCFvbGRfY3J0Y19zdGF0ZS0+aGFzX2RycnMpCj4gPiAgCQlyZXR1cm47 Cj4gPiBAQCAtNTc2Niw3ICs1NzI3LDcgQEAgdm9pZCBpbnRlbF9lZHBfZHJyc19mbHVzaChzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYsCj4gPiAgCj4gPiAgLyoqCj4gPiAgICogaW50 ZWxfZHBfZHJyc19pbml0IC0gSW5pdCBiYXNpYyBEUlJTIHdvcmsgYW5kIG11dGV4Lgo+ID4gLSAq IEBpbnRlbF9jb25uZWN0b3I6IGVEUCBjb25uZWN0b3IKPiA+ICsgKiBAY29ubmVjdG9yOiBlRFAg Y29ubmVjdG9yCj4gPiAgICogQGZpeGVkX21vZGU6IHByZWZlcnJlZCBtb2RlIG9mIHBhbmVsCj4g PiAgICoKPiA+ICAgKiBUaGlzIGZ1bmN0aW9uIGlzICBjYWxsZWQgb25seSBvbmNlIGF0IGRyaXZl ciBsb2FkIHRvIGluaXRpYWxpemUgYmFzaWMKPiA+IEBAIC01Nzc4LDEyICs1NzM5LDEwIEBAIHZv aWQgaW50ZWxfZWRwX2RycnNfZmx1c2goc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 LAo+ID4gICAqIGZyb20gVkJUIHNldHRpbmcpLgo+ID4gICAqLwo+ID4gIHN0YXRpYyBzdHJ1Y3Qg ZHJtX2Rpc3BsYXlfbW9kZSAqCj4gPiAtaW50ZWxfZHBfZHJyc19pbml0KHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmludGVsX2Nvbm5lY3RvciwKPiA+IC0JCXN0cnVjdCBkcm1fZGlzcGxheV9tb2Rl ICpmaXhlZF9tb2RlKQo+ID4gK2ludGVsX2RwX2RycnNfaW5pdChzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IsCj4gPiArCQkgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqZml4ZWRf bW9kZSkKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaW50 ZWxfY29ubmVjdG9yLT5iYXNlOwo+ID4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVj dG9yLT5kZXY7Cj4gPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoZGV2KTsKPiA+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkx NShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiA+ICAJc3RydWN0IGRybV9kaXNwbGF5X21vZGUgKmRv d25jbG9ja19tb2RlID0gTlVMTDsKPiA+ICAKPiA+ICAJSU5JVF9ERUxBWUVEX1dPUksoJmRldl9w cml2LT5kcnJzLndvcmssIGludGVsX2VkcF9kcnJzX2Rvd25jbG9ja193b3JrKTsKPiA+IEBAIC01 Nzk5LDggKzU3NTgsOCBAQCBpbnRlbF9kcF9kcnJzX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqaW50ZWxfY29ubmVjdG9yLAo+ID4gIAkJcmV0dXJuIE5VTEw7Cj4gPiAgCX0KPiA+ICAKPiA+ IC0JZG93bmNsb2NrX21vZGUgPSBpbnRlbF9maW5kX3BhbmVsX2Rvd25jbG9jawo+ID4gLQkJCQkJ KGRldl9wcml2LCBmaXhlZF9tb2RlLCBjb25uZWN0b3IpOwo+ID4gKwlkb3duY2xvY2tfbW9kZSA9 IGludGVsX2ZpbmRfcGFuZWxfZG93bmNsb2NrKGRldl9wcml2LCBmaXhlZF9tb2RlLAo+ID4gKwkJ CQkJCSAgICAmY29ubmVjdG9yLT5iYXNlKTsKPiA+ICAKPiA+ICAJaWYgKCFkb3duY2xvY2tfbW9k ZSkgewo+ID4gIAkJRFJNX0RFQlVHX0tNUygiRG93bmNsb2NrIG1vZGUgaXMgbm90IGZvdW5kLiBE UlJTIG5vdCBzdXBwb3J0ZWRcbiIpOwo+ID4gQEAgLTU4MTcsMTEgKzU3NzYsOSBAQCBpbnRlbF9k cF9kcnJzX2luaXQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yLAo+ID4g IHN0YXRpYyBib29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmlu dGVsX2RwLAo+ID4gIAkJCQkgICAgIHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmludGVsX2Nvbm5l Y3RvcikKPiA+ICB7Cj4gPiAtCXN0cnVjdCBkcm1fY29ubmVjdG9yICpjb25uZWN0b3IgPSAmaW50 ZWxfY29ubmVjdG9yLT5iYXNlOwo+ID4gLQlzdHJ1Y3QgaW50ZWxfZGlnaXRhbF9wb3J0ICppbnRl bF9kaWdfcG9ydCA9IGRwX3RvX2RpZ19wb3J0KGludGVsX2RwKTsKPiA+IC0Jc3RydWN0IGludGVs X2VuY29kZXIgKmludGVsX2VuY29kZXIgPSAmaW50ZWxfZGlnX3BvcnQtPmJhc2U7Cj4gPiAtCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBpbnRlbF9lbmNvZGVyLT5iYXNlLmRldjsKPiA+ICsJc3Ry dWN0IGRybV9kZXZpY2UgKmRldiA9IGludGVsX2RwX3RvX2RldihpbnRlbF9kcCk7Cj4gCj4gWW91 IGhhdmUgcmV0YWluZWQgZGV2IGhlcmUgYnV0ICAKPiA+ICAJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShkZXYpOwo+ID4gKwlzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAq Y29ubmVjdG9yID0gJmludGVsX2Nvbm5lY3Rvci0+YmFzZTsKPiA+ICAJc3RydWN0IGRybV9kaXNw bGF5X21vZGUgKmZpeGVkX21vZGUgPSBOVUxMOwo+ID4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9k ZSAqYWx0X2ZpeGVkX21vZGUgPSBOVUxMOwo+ID4gIAlzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAq ZG93bmNsb2NrX21vZGUgPSBOVUxMOwo+ID4gQEAgLTU4MzksNyArNTc5Niw3IEBAIHN0YXRpYyBi b29sIGludGVsX2VkcF9pbml0X2Nvbm5lY3RvcihzdHJ1Y3QgaW50ZWxfZHAgKmludGVsX2RwLAo+ ID4gIAkgKiBlRFAgYW5kIExWRFMgYmFpbCBvdXQgZWFybHkgaW4gdGhpcyBjYXNlIHRvIHByZXZl bnQgaW50ZXJmZXJpbmcKPiA+ICAJICogd2l0aCBhbiBhbHJlYWR5IHBvd2VyZWQtb24gTFZEUyBw b3dlciBzZXF1ZW5jZXIuCj4gPiAgCSAqLwo+ID4gLQlpZiAoaW50ZWxfZ2V0X2x2ZHNfZW5jb2Rl cihkZXYpKSB7Cj4gPiArCWlmIChpbnRlbF9nZXRfbHZkc19lbmNvZGVyKCZkZXZfcHJpdi0+ZHJt KSkgewo+IAo+IGJ1dCBkZXJlZmVyZW5jZWQgZGV2X3ByaXYtPmRybSBoZXJlLgoKQSBiaXQgcmVk dW5kYW50IGluZGVlZC4gQWx0aG91Z2ggd2Ugc2hvdWxkIGFjdHVhbGx5IGNoYW5nZQppbnRlbF9n ZXRfbHZkc19lbmNvZGVyKCkgdG8gdGFrZSBkZXZfcHJpdiBpbnN0ZWFkIG9mIGRldiwgYXQgd2hp Y2ggcG9pbnQKdGhlIGlzc3VlIGJlY29tZXMgbW9vdC4KCj4gPiAgCQlXQVJOX09OKCEoSEFTX1BD SF9JQlgoZGV2X3ByaXYpIHx8IEhBU19QQ0hfQ1BUKGRldl9wcml2KSkpOwo+ID4gIAkJRFJNX0lO Rk8oIkxWRFMgd2FzIGRldGVjdGVkLCBub3QgcmVnaXN0ZXJpbmcgZURQXG4iKTsKPiA+ICAKCi0t IApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwgT1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3Rz LmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xp c3RpbmZvL2ludGVsLWdmeAo=