From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH] drm/i915/backlight: prefer dev_priv over dev pointer Date: Fri, 18 Dec 2015 11:03:25 +0200 Message-ID: <87egekdt7m.fsf@gaia.fi.intel.com> References: <1450428695-28831-1-git-send-email-jani.nikula@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by gabe.freedesktop.org (Postfix) with ESMTP id 664506E16F for ; Fri, 18 Dec 2015 01:05:17 -0800 (PST) In-Reply-To: <1450428695-28831-1-git-send-email-jani.nikula@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org Cc: jani.nikula@intel.com List-Id: intel-gfx@lists.freedesktop.org SmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4gd3JpdGVzOgoKPiBVc2UgZGV2X3By aXYgcmF0aGVyIHRoYW4gZGV2IHBvaW50ZXIgd2hlcmUgYXBwbGljYWJsZS4gUmVtb3ZlIHBsZW50 eSBvZgo+IHVubmVjZXNzYXJ5IHRlbXAgdmFyaWFibGVzLiBObyBmdW5jdGlvbmFsIGNoYW5nZXMu Cj4KPiBTaWduZWQtb2ZmLWJ5OiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwuY29tPgoK UmV2aWV3ZWQtYnk6IE1pa2EgS3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgoKPiAt LS0KPiAgZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYyB8IDE1NiArKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gIDEgZmlsZSBjaGFuZ2VkLCA1OCBpbnNlcnRp b25zKCspLCA5OCBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9wYW5lbC5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcGFuZWwuYwo+ IGluZGV4IGY1YjRjOThkZTYwOC4uMjFlZTY0NzdiZjk4IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wYW5lbC5jCj4gQEAgLTQ2MSw4ICs0NjEsNyBAQCBzdGF0aWMgaW5saW5lIHUzMiBzY2Fs ZV9od190b191c2VyKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwKPiAgc3RhdGlj IHUzMiBpbnRlbF9wYW5lbF9jb21wdXRlX2JyaWdodG5lc3Moc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yLAo+ICAJCQkJCSAgdTMyIHZhbCkKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBp bnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPiAgCj4gIAlXQVJOX09OKHBh bmVsLT5iYWNrbGlnaHQubWF4ID09IDApOwo+IEBAIC00ODAsNDUgKzQ3OSw0MCBAQCBzdGF0aWMg dTMyIGludGVsX3BhbmVsX2NvbXB1dGVfYnJpZ2h0bmVzcyhzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IsCj4gIAo+ICBzdGF0aWMgdTMyIGxwdF9nZXRfYmFja2xpZ2h0KHN0cnVjdCBp bnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRl diA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2 X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCj4gIAlyZXR1cm4gSTkx NV9SRUFEKEJMQ19QV01fUENIX0NUTDIpICYgQkFDS0xJR0hUX0RVVFlfQ1lDTEVfTUFTSzsKPiAg fQo+ICAKPiAgc3RhdGljIHUzMiBwY2hfZ2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0 b3ItPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAo+ICAJcmV0dXJuIEk5MTVfUkVBRChCTENf UFdNX0NQVV9DVEwpICYgQkFDS0xJR0hUX0RVVFlfQ1lDTEVfTUFTSzsKPiAgfQo+ICAKPiAgc3Rh dGljIHUzMiBpOXh4X2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRl djsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZh dGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5l Y3Rvci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0 b3ItPnBhbmVsOwo+ICAJdTMyIHZhbDsKPiAgCj4gIAl2YWwgPSBJOTE1X1JFQUQoQkxDX1BXTV9D VEwpICYgQkFDS0xJR0hUX0RVVFlfQ1lDTEVfTUFTSzsKPiAtCWlmIChJTlRFTF9JTkZPKGRldikt PmdlbiA8IDQpCj4gKwlpZiAoSU5URUxfSU5GTyhkZXZfcHJpdiktPmdlbiA8IDQpCj4gIAkJdmFs ID4+PSAxOwo+ICAKPiAgCWlmIChwYW5lbC0+YmFja2xpZ2h0LmNvbWJpbmF0aW9uX21vZGUpIHsK PiAgCQl1OCBsYnBjOwo+ICAKPiAtCQlwY2lfcmVhZF9jb25maWdfYnl0ZShkZXYtPnBkZXYsIFBD SV9MQlBDLCAmbGJwYyk7Cj4gKwkJcGNpX3JlYWRfY29uZmlnX2J5dGUoZGV2X3ByaXYtPmRldi0+ cGRldiwgUENJX0xCUEMsICZsYnBjKTsKPiAgCQl2YWwgKj0gbGJwYzsKPiAgCX0KPiAgCj4gIAly ZXR1cm4gdmFsOwo+ICB9Cj4gIAo+IC1zdGF0aWMgdTMyIF92bHZfZ2V0X2JhY2tsaWdodChzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBpcGUgcGlwZSkKPiArc3RhdGljIHUzMiBfdmx2X2dl dF9iYWNrbGlnaHQoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2LCBlbnVtIHBpcGUg cGlwZSkKPiAgewo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiAtCj4gIAlpZiAoV0FSTl9PTihwaXBlICE9IFBJUEVfQSAmJiBwaXBlICE9 IFBJUEVfQikpCj4gIAkJcmV0dXJuIDA7Cj4gIAo+IEBAIC01MjcsMTcgKzUyMSwxNiBAQCBzdGF0 aWMgdTMyIF92bHZfZ2V0X2JhY2tsaWdodChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBlbnVtIHBp cGUgcGlwZSkKPiAgCj4gIHN0YXRpYyB1MzIgdmx2X2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVs X2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0g Y29ubmVjdG9yLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAllbnVtIHBpcGUgcGlwZSA9IGlu dGVsX2dldF9waXBlX2Zyb21fY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gIAo+IC0JcmV0dXJuIF92 bHZfZ2V0X2JhY2tsaWdodChkZXYsIHBpcGUpOwo+ICsJcmV0dXJuIF92bHZfZ2V0X2JhY2tsaWdo dChkZXZfcHJpdiwgcGlwZSk7Cj4gIH0KPiAgCj4gIHN0YXRpYyB1MzIgYnh0X2dldF9iYWNrbGln aHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJt X2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAlzdHJ1 Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4gLQlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICAKPiAgCXJldHVy biBJOTE1X1JFQUQoQlhUX0JMQ19QV01fRFVUWShwYW5lbC0+YmFja2xpZ2h0LmNvbnRyb2xsZXIp KTsKPiAgfQo+IEBAIC01NTMsOCArNTQ2LDcgQEAgc3RhdGljIHUzMiBwd21fZ2V0X2JhY2tsaWdo dChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAo+ICBzdGF0aWMgdTMyIGlu dGVsX3BhbmVsX2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsK PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rv ci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3It PnBhbmVsOwo+ICAJdTMyIHZhbCA9IDA7Cj4gIAo+IEBAIC01NzMsMTYgKzU2NSwxNCBAQCBzdGF0 aWMgdTMyIGludGVsX3BhbmVsX2dldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQo+ICAKPiAgc3RhdGljIHZvaWQgbHB0X3NldF9iYWNrbGlnaHQoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCj4gIHsKPiAtCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAl1MzIg dmFsID0gSTkxNV9SRUFEKEJMQ19QV01fUENIX0NUTDIpICYgfkJBQ0tMSUdIVF9EVVRZX0NZQ0xF X01BU0s7Cj4gIAlJOTE1X1dSSVRFKEJMQ19QV01fUENIX0NUTDIsIHZhbCB8IGxldmVsKTsKPiAg fQo+ICAKPiAgc3RhdGljIHZvaWQgcGNoX3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpk ZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRl dl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAl1MzIgdG1wOwo+ICAK PiAgCXRtcCA9IEk5MTVfUkVBRChCTENfUFdNX0NQVV9DVEwpICYgfkJBQ0tMSUdIVF9EVVRZX0NZ Q0xFX01BU0s7Cj4gQEAgLTU5MSw4ICs1ODEsNyBAQCBzdGF0aWMgdm9pZCBwY2hfc2V0X2JhY2ts aWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKPiAgCj4g IHN0YXRpYyB2b2lkIGk5eHhfc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IsIHUzMiBsZXZlbCkKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNv bm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9wYW5lbCAq cGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPiAgCXUzMiB0bXAsIG1hc2s7Cj4gIAo+IEBAIC02 MDMsMTAgKzU5MiwxMCBAQCBzdGF0aWMgdm9pZCBpOXh4X3NldF9iYWNrbGlnaHQoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCj4gIAo+ICAJCWxicGMgPSBsZXZl bCAqIDB4ZmUgLyBwYW5lbC0+YmFja2xpZ2h0Lm1heCArIDE7Cj4gIAkJbGV2ZWwgLz0gbGJwYzsK PiAtCQlwY2lfd3JpdGVfY29uZmlnX2J5dGUoZGV2LT5wZGV2LCBQQ0lfTEJQQywgbGJwYyk7Cj4g KwkJcGNpX3dyaXRlX2NvbmZpZ19ieXRlKGRldl9wcml2LT5kZXYtPnBkZXYsIFBDSV9MQlBDLCBs YnBjKTsKPiAgCX0KPiAgCj4gLQlpZiAoSVNfR0VONChkZXYpKSB7Cj4gKwlpZiAoSVNfR0VONChk ZXZfcHJpdikpIHsKPiAgCQltYXNrID0gQkFDS0xJR0hUX0RVVFlfQ1lDTEVfTUFTSzsKPiAgCX0g ZWxzZSB7Cj4gIAkJbGV2ZWwgPDw9IDE7Cj4gQEAgLTYxOSw4ICs2MDgsNyBAQCBzdGF0aWMgdm9p ZCBpOXh4X3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1 MzIgbGV2ZWwpCj4gIAo+ICBzdGF0aWMgdm9pZCB2bHZfc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKPiAgewo+IC0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCWVudW0g cGlwZSBwaXBlID0gaW50ZWxfZ2V0X3BpcGVfZnJvbV9jb25uZWN0b3IoY29ubmVjdG9yKTsKPiAg CXUzMiB0bXA7Cj4gIAo+IEBAIC02MzMsOCArNjIxLDcgQEAgc3RhdGljIHZvaWQgdmx2X3NldF9i YWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgbGV2ZWwpCj4g IAo+ICBzdGF0aWMgdm9pZCBieHRfc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9wYW5l bCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPiAgCj4gIAlJOTE1X1dSSVRFKEJYVF9CTENf UFdNX0RVVFkocGFuZWwtPmJhY2tsaWdodC5jb250cm9sbGVyKSwgbGV2ZWwpOwo+IEBAIC02NjMs OCArNjUwLDcgQEAgaW50ZWxfcGFuZWxfYWN0dWFsbHlfc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBsZXZlbCkKPiAgc3RhdGljIHZvaWQgaW50ZWxf cGFuZWxfc2V0X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsCj4g IAkJCQkgICAgICB1MzIgdXNlcl9sZXZlbCwgdTMyIHVzZXJfbWF4KQo+ICB7Cj4gLQlzdHJ1Y3Qg ZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPiAtCXN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5 MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICAJ c3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+ICAJdTMyIGh3 X2xldmVsOwo+ICAKPiBAQCAtNjkwLDggKzY3Niw3IEBAIHN0YXRpYyB2b2lkIGludGVsX3BhbmVs X3NldF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICB2b2lk IGludGVsX3BhbmVsX3NldF9iYWNrbGlnaHRfYWNwaShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IsCj4gIAkJCQkgICAgdTMyIHVzZXJfbGV2ZWwsIHUzMiB1c2VyX21heCkKPiAgewo+ IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2Uu ZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsK PiAgCWVudW0gcGlwZSBwaXBlID0gaW50ZWxfZ2V0X3BpcGVfZnJvbV9jb25uZWN0b3IoY29ubmVj dG9yKTsKPiAgCXUzMiBod19sZXZlbDsKPiBAQCAtNzI2LDggKzcxMSw3IEBAIHZvaWQgaW50ZWxf cGFuZWxfc2V0X2JhY2tsaWdodF9hY3BpKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciwKPiAgCj4gIHN0YXRpYyB2b2lkIGxwdF9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBj b25uZWN0b3ItPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2 ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJp diA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAl1MzIgdG1wOwo+ICAKPiAgCWlu dGVsX3BhbmVsX2FjdHVhbGx5X3NldF9iYWNrbGlnaHQoY29ubmVjdG9yLCAwKTsKPiBAQCAtNzUy LDggKzczNiw3IEBAIHN0YXRpYyB2b2lkIGxwdF9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAo+ICBzdGF0aWMgdm9pZCBwY2hfZGlzYWJsZV9i YWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gLQlzdHJ1 Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPiAtCXN0cnVjdCBkcm1f aTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJt X2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ ICAJdTMyIHRtcDsKPiAgCj4gIAlpbnRlbF9wYW5lbF9hY3R1YWxseV9zZXRfYmFja2xpZ2h0KGNv bm5lY3RvciwgMCk7Cj4gQEAgLTc3Miw4ICs3NTUsNyBAQCBzdGF0aWMgdm9pZCBpOXh4X2Rpc2Fi bGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCj4gIHN0 YXRpYyB2b2lkIGk5NjVfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5i YXNlLmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2 X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1 KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICAJdTMyIHRtcDsKPiAgCj4gIAlpbnRlbF9wYW5lbF9h Y3R1YWxseV9zZXRfYmFja2xpZ2h0KGNvbm5lY3RvciwgMCk7Cj4gQEAgLTc4NCw4ICs3NjYsNyBA QCBzdGF0aWMgdm9pZCBpOTY1X2Rpc2FibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0 b3IgKmNvbm5lY3RvcikKPiAgCj4gIHN0YXRpYyB2b2lkIHZsdl9kaXNhYmxlX2JhY2tsaWdodChz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAllbnVtIHBp cGUgcGlwZSA9IGludGVsX2dldF9waXBlX2Zyb21fY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gIAl1 MzIgdG1wOwo+ICAKPiBAQCAtODAwLDggKzc4MSw3IEBAIHN0YXRpYyB2b2lkIHZsdl9kaXNhYmxl X2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAo+ICBzdGF0 aWMgdm9pZCBieHRfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29u bmVjdG9yKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNl LmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3By aXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNv bm5lY3Rvci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25u ZWN0b3ItPnBhbmVsOwo+ICAJdTMyIHRtcCwgdmFsOwo+ICAKPiBAQCAtODMwLDggKzgxMCw3IEBA IHN0YXRpYyB2b2lkIHB3bV9kaXNhYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IpCj4gIAo+ICB2b2lkIGludGVsX3BhbmVsX2Rpc2FibGVfYmFja2xpZ2h0KHN0 cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZp Y2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBp bnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPiAgCj4gIAlpZiAoIXBhbmVs LT5iYWNrbGlnaHQucHJlc2VudCkKPiBAQCAtODQzLDcgKzgyMiw3IEBAIHZvaWQgaW50ZWxfcGFu ZWxfZGlzYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ICAJICogYmFja2xpZ2h0LiBUaGlzIHdpbGwgbGVhdmUgdGhlIGJhY2tsaWdodCBvbiB1bm5lY2Vz c2FyaWx5IHdoZW4KPiAgCSAqIGFub3RoZXIgY2xpZW50IGlzIG5vdCBhY3RpdmF0ZWQuCj4gIAkg Ki8KPiAtCWlmIChkZXYtPnN3aXRjaF9wb3dlcl9zdGF0ZSA9PSBEUk1fU1dJVENIX1BPV0VSX0NI QU5HSU5HKSB7Cj4gKwlpZiAoZGV2X3ByaXYtPmRldi0+c3dpdGNoX3Bvd2VyX3N0YXRlID09IERS TV9TV0lUQ0hfUE9XRVJfQ0hBTkdJTkcpIHsKPiAgCQlEUk1fREVCVUdfRFJJVkVSKCJTa2lwcGlu ZyBiYWNrbGlnaHQgZGlzYWJsZSBvbiB2Z2Egc3dpdGNoXG4iKTsKPiAgCQlyZXR1cm47Cj4gIAl9 Cj4gQEAgLTg2MCw4ICs4MzksNyBAQCB2b2lkIGludGVsX3BhbmVsX2Rpc2FibGVfYmFja2xpZ2h0 KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgCj4gIHN0YXRpYyB2b2lkIGxw dF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAg ewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlz dHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJh c2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5l bDsKPiAgCXUzMiBwY2hfY3RsMSwgcGNoX2N0bDI7Cj4gIAo+IEBAIC04OTMsOCArODcxLDcgQEAg c3RhdGljIHZvaWQgbHB0X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAq Y29ubmVjdG9yKQo+ICAKPiAgc3RhdGljIHZvaWQgcGNoX2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpk ZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVs X3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBp bnRlbF9nZXRfcGlwZV9mcm9tX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ICAJZW51bSB0cmFuc2Nv ZGVyIGNwdV90cmFuc2NvZGVyID0KPiBAQCAtOTQwLDggKzkxNyw3IEBAIHN0YXRpYyB2b2lkIHBj aF9lbmFibGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAg Cj4gIHN0YXRpYyB2b2lkIGk5eHhfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0 b3ItPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2 LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRv X2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVs ID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4gIAl1MzIgY3RsLCBmcmVxOwo+ICAKPiBAQCAtOTU4LDcg KzkzNCw3IEBAIHN0YXRpYyB2b2lkIGk5eHhfZW5hYmxlX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxf Y29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAljdGwgPSBmcmVxIDw8IDE3Owo+ICAJaWYgKHBhbmVs LT5iYWNrbGlnaHQuY29tYmluYXRpb25fbW9kZSkKPiAgCQljdGwgfD0gQkxNX0xFR0FDWV9NT0RF Owo+IC0JaWYgKElTX1BJTkVWSUVXKGRldikgJiYgcGFuZWwtPmJhY2tsaWdodC5hY3RpdmVfbG93 X3B3bSkKPiArCWlmIChJU19QSU5FVklFVyhkZXZfcHJpdikgJiYgcGFuZWwtPmJhY2tsaWdodC5h Y3RpdmVfbG93X3B3bSkKPiAgCQljdGwgfD0gQkxNX1BPTEFSSVRZX1BOVjsKPiAgCj4gIAlJOTE1 X1dSSVRFKEJMQ19QV01fQ1RMLCBjdGwpOwo+IEBAIC05NzIsMTQgKzk0OCwxMyBAQCBzdGF0aWMg dm9pZCBpOXh4X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVj dG9yKQo+ICAJICogODU1Z20gb25seSwgYnV0IGNoZWNraW5nIGZvciBnZW4yIGlzIHNhZmUsIGFz IDg1NWdtIGlzIHRoZSBvbmx5IGdlbjIKPiAgCSAqIHRoYXQgaGFzIGJhY2tsaWdodC4KPiAgCSAq Lwo+IC0JaWYgKElTX0dFTjIoZGV2KSkKPiArCWlmIChJU19HRU4yKGRldl9wcml2KSkKPiAgCQlJ OTE1X1dSSVRFKEJMQ19ISVNUX0NUTCwgQkxNX0hJU1RPR1JBTV9FTkFCTEUpOwo+ICB9Cj4gIAo+ ICBzdGF0aWMgdm9pZCBpOTY1X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3Rv ciAqY29ubmVjdG9yKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9y LT5iYXNlLmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19p OTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9 ICZjb25uZWN0b3ItPnBhbmVsOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9nZXRfcGlwZV9m cm9tX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ICAJdTMyIGN0bCwgY3RsMiwgZnJlcTsKPiBAQCAt MTAxMiw4ICs5ODcsNyBAQCBzdGF0aWMgdm9pZCBpOTY1X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAKPiAgc3RhdGljIHZvaWQgdmx2X2VuYWJs ZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gLQlz dHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPiAtCXN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYp Owo+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+ICAJ ZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9nZXRfcGlwZV9mcm9tX2Nvbm5lY3Rvcihjb25uZWN0b3Ip Owo+ICAJdTMyIGN0bCwgY3RsMjsKPiBAQCAtMTA0NCw4ICsxMDE4LDcgQEAgc3RhdGljIHZvaWQg dmx2X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ ICAKPiAgc3RhdGljIHZvaWQgYnh0X2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5l Y3RvciAqY29ubmVjdG9yKQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVj dG9yLT5iYXNlLmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRl di0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0 b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5l bCA9ICZjb25uZWN0b3ItPnBhbmVsOwo+ICAJZW51bSBwaXBlIHBpcGUgPSBpbnRlbF9nZXRfcGlw ZV9mcm9tX2Nvbm5lY3Rvcihjb25uZWN0b3IpOwo+ICAJdTMyIHB3bV9jdGwsIHZhbDsKPiBAQCAt MTEwMiw4ICsxMDc1LDcgQEAgc3RhdGljIHZvaWQgcHdtX2VuYWJsZV9iYWNrbGlnaHQoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+ICAKPiAgdm9pZCBpbnRlbF9wYW5lbF9lbmFi bGVfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+IC0J c3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0 IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2 KTsKPiAgCXN0cnVjdCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPiAg CWVudW0gcGlwZSBwaXBlID0gaW50ZWxfZ2V0X3BpcGVfZnJvbV9jb25uZWN0b3IoY29ubmVjdG9y KTsKPiAgCj4gQEAgLTEyNzgsOCArMTI1MCw3IEBAIHN0YXRpYyB1MzIgYnh0X2h6X3RvX3B3bShz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBwd21fZnJlcV9oeikKPiAgICov Cj4gIHN0YXRpYyB1MzIgc3B0X2h6X3RvX3B3bShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25u ZWN0b3IsIHUzMiBwd21fZnJlcV9oeikKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCXUzMiBtdWwsIGNsb2NrOwo+ ICAKPiAgCWlmIChJOTE1X1JFQUQoU09VVEhfQ0hJQ0tFTjEpICYgU1BUX1BXTV9HUkFOVUxBUklU WSkKPiBAQCAtMTI5OSw4ICsxMjcwLDcgQEAgc3RhdGljIHUzMiBzcHRfaHpfdG9fcHdtKHN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgdTMyIHB3bV9mcmVxX2h6KQo+ICAgKi8KPiAg c3RhdGljIHUzMiBscHRfaHpfdG9fcHdtKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv ciwgdTMyIHB3bV9mcmVxX2h6KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29u bmVjdG9yLT5iYXNlLmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9 IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYg PSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICAJdTMyIG11bCwgY2xvY2s7Cj4gIAo+ ICAJaWYgKEk5MTVfUkVBRChTT1VUSF9DSElDS0VOMikgJiBMUFRfUFdNX0dSQU5VTEFSSVRZKQo+ IEBAIC0xMzkzLDggKzEzNjMsNyBAQCBzdGF0aWMgdTMyIHZsdl9oel90b19wd20oc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgcHdtX2ZyZXFfaHopCj4gIAo+ICBzdGF0aWMg dTMyIGdldF9iYWNrbGlnaHRfbWF4X3ZidChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0 b3IpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2 Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0 ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVj dG9yLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rv ci0+cGFuZWw7Cj4gIAl1MTYgcHdtX2ZyZXFfaHogPSBkZXZfcHJpdi0+dmJ0LmJhY2tsaWdodC5w d21fZnJlcV9oejsKPiAgCXUzMiBwd207Cj4gQEAgLTE0MjcsOCArMTM5Niw3IEBAIHN0YXRpYyB1 MzIgZ2V0X2JhY2tsaWdodF9tYXhfdmJ0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3Rv cikKPiAgICovCj4gIHN0YXRpYyB1MzIgZ2V0X2JhY2tsaWdodF9taW5fdmJ0KHN0cnVjdCBpbnRl bF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9 IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9w cml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCXN0cnVjdCBpbnRlbF9wYW5l bCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPiAgCWludCBtaW47Cj4gIAo+IEBAIC0xNDUz LDggKzE0MjEsNyBAQCBzdGF0aWMgdTMyIGdldF9iYWNrbGlnaHRfbWluX3ZidChzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpCj4gIAo+ICBzdGF0aWMgaW50IGxwdF9zZXR1cF9iYWNr bGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBlbnVtIHBpcGUgdW51c2Vk KQo+ICB7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsK PiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7 Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rv ci0+YmFzZS5kZXYpOwo+ICAJc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCA9ICZjb25uZWN0b3It PnBhbmVsOwo+ICAJdTMyIHBjaF9jdGwxLCBwY2hfY3RsMiwgdmFsOwo+ICAKPiBAQCAtMTQ4Myw4 ICsxNDUwLDcgQEAgc3RhdGljIGludCBscHRfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9j b25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlIHVudXMKPiAgCj4gIHN0YXRpYyBpbnQgcGNo X3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIGVudW0g cGlwZSB1bnVzZWQpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3It PmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0g JmNvbm5lY3Rvci0+cGFuZWw7Cj4gIAl1MzIgY3B1X2N0bDIsIHBjaF9jdGwxLCBwY2hfY3RsMiwg dmFsOwo+ICAKPiBAQCAtMTUxNCwxNyArMTQ4MCwxNiBAQCBzdGF0aWMgaW50IHBjaF9zZXR1cF9i YWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBlbnVtIHBpcGUgdW51 cwo+ICAKPiAgc3RhdGljIGludCBpOXh4X3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29u bmVjdG9yICpjb25uZWN0b3IsIGVudW0gcGlwZSB1bnVzZWQpCj4gIHsKPiAtCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9w cml2YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAlzdHJ1 Y3QgaW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4gIAl1MzIgY3RsLCB2 YWw7Cj4gIAo+ICAJY3RsID0gSTkxNV9SRUFEKEJMQ19QV01fQ1RMKTsKPiAgCj4gLQlpZiAoSVNf R0VOMihkZXYpIHx8IElTX0k5MTVHTShkZXYpIHx8IElTX0k5NDVHTShkZXYpKQo+ICsJaWYgKElT X0dFTjIoZGV2X3ByaXYpIHx8IElTX0k5MTVHTShkZXZfcHJpdikgfHwgSVNfSTk0NUdNKGRldl9w cml2KSkKPiAgCQlwYW5lbC0+YmFja2xpZ2h0LmNvbWJpbmF0aW9uX21vZGUgPSBjdGwgJiBCTE1f TEVHQUNZX01PREU7Cj4gIAo+IC0JaWYgKElTX1BJTkVWSUVXKGRldikpCj4gKwlpZiAoSVNfUElO RVZJRVcoZGV2X3ByaXYpKQo+ICAJCXBhbmVsLT5iYWNrbGlnaHQuYWN0aXZlX2xvd19wd20gPSBj dGwgJiBCTE1fUE9MQVJJVFlfUE5WOwo+ICAKPiAgCXBhbmVsLT5iYWNrbGlnaHQubWF4ID0gY3Rs ID4+IDE3Owo+IEBAIC0xNTUyLDggKzE1MTcsNyBAQCBzdGF0aWMgaW50IGk5eHhfc2V0dXBfYmFj a2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlIHVudQo+ ICAKPiAgc3RhdGljIGludCBpOTY1X3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IsIGVudW0gcGlwZSB1bnVzZWQpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3Qg aW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4gIAl1MzIgY3RsLCBjdGwy LCB2YWw7Cj4gIAo+IEBAIC0xNTg2LDggKzE1NTAsNyBAQCBzdGF0aWMgaW50IGk5NjVfc2V0dXBf YmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlIHVu dQo+ICAKPiAgc3RhdGljIGludCB2bHZfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlIHBpcGUpCj4gIHsKPiAtCXN0cnVjdCBkcm1fZGV2 aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IHRvX2k5MTUoY29ubmVjdG9yLT5iYXNlLmRldik7Cj4gIAlzdHJ1Y3Qg aW50ZWxfcGFuZWwgKnBhbmVsID0gJmNvbm5lY3Rvci0+cGFuZWw7Cj4gIAl1MzIgY3RsLCBjdGwy LCB2YWw7Cj4gIAo+IEBAIC0xNjA4LDcgKzE1NzEsNyBAQCBzdGF0aWMgaW50IHZsdl9zZXR1cF9i YWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBlbnVtIHBpcGUgcGlw ZQo+ICAKPiAgCXBhbmVsLT5iYWNrbGlnaHQubWluID0gZ2V0X2JhY2tsaWdodF9taW5fdmJ0KGNv bm5lY3Rvcik7Cj4gIAo+IC0JdmFsID0gX3Zsdl9nZXRfYmFja2xpZ2h0KGRldiwgcGlwZSk7Cj4g Kwl2YWwgPSBfdmx2X2dldF9iYWNrbGlnaHQoZGV2X3ByaXYsIHBpcGUpOwo+ICAJcGFuZWwtPmJh Y2tsaWdodC5sZXZlbCA9IGludGVsX3BhbmVsX2NvbXB1dGVfYnJpZ2h0bmVzcyhjb25uZWN0b3Is IHZhbCk7Cj4gIAo+ICAJcGFuZWwtPmJhY2tsaWdodC5lbmFibGVkID0gKGN0bDIgJiBCTE1fUFdN X0VOQUJMRSkgJiYKPiBAQCAtMTYyMCw4ICsxNTgzLDcgQEAgc3RhdGljIGludCB2bHZfc2V0dXBf YmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlIHBp cGUKPiAgc3RhdGljIGludAo+ICBieHRfc2V0dXBfYmFja2xpZ2h0KHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciwgZW51bSBwaXBlIHVudXNlZCkKPiAgewo+IC0Jc3RydWN0IGRybV9k ZXZpY2UgKmRldiA9IGNvbm5lY3Rvci0+YmFzZS5kZXY7Cj4gLQlzdHJ1Y3QgZHJtX2k5MTVfcHJp dmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+ICsJc3RydWN0IGRybV9pOTE1X3By aXZhdGUgKmRldl9wcml2ID0gdG9faTkxNShjb25uZWN0b3ItPmJhc2UuZGV2KTsKPiAgCXN0cnVj dCBpbnRlbF9wYW5lbCAqcGFuZWwgPSAmY29ubmVjdG9yLT5wYW5lbDsKPiAgCXUzMiBwd21fY3Rs LCB2YWw7Cj4gIAo+IEBAIC0xNjk5LDggKzE2NjEsNyBAQCBzdGF0aWMgaW50IHB3bV9zZXR1cF9i YWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ICAKPiAgaW50IGlu dGVsX3BhbmVsX3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9y LCBlbnVtIHBpcGUgcGlwZSkKPiAgewo+IC0Jc3RydWN0IGRybV9kZXZpY2UgKmRldiA9IGNvbm5l Y3Rvci0+ZGV2Owo+IC0Jc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5k ZXZfcHJpdmF0ZTsKPiArCXN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiA9IHRvX2k5 MTUoY29ubmVjdG9yLT5kZXYpOwo+ICAJc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29u bmVjdG9yID0gdG9faW50ZWxfY29ubmVjdG9yKGNvbm5lY3Rvcik7Cj4gIAlzdHJ1Y3QgaW50ZWxf cGFuZWwgKnBhbmVsID0gJmludGVsX2Nvbm5lY3Rvci0+cGFuZWw7Cj4gIAlpbnQgcmV0Owo+IEBA IC0xNzU1LDM2ICsxNzE2LDM1IEBAIHZvaWQgaW50ZWxfcGFuZWxfZGVzdHJveV9iYWNrbGlnaHQo c3RydWN0IGRybV9jb25uZWN0b3IgKmNvbm5lY3RvcikKPiAgc3RhdGljIHZvaWQKPiAgaW50ZWxf cGFuZWxfaW5pdF9iYWNrbGlnaHRfZnVuY3Moc3RydWN0IGludGVsX3BhbmVsICpwYW5lbCkKPiAg ewo+IC0Jc3RydWN0IGludGVsX2Nvbm5lY3RvciAqaW50ZWxfY29ubmVjdG9yID0KPiArCXN0cnVj dCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciA9Cj4gIAkJY29udGFpbmVyX29mKHBhbmVsLCBz dHJ1Y3QgaW50ZWxfY29ubmVjdG9yLCBwYW5lbCk7Cj4gLQlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2 ID0gaW50ZWxfY29ubmVjdG9yLT5iYXNlLmRldjsKPiAtCXN0cnVjdCBkcm1faTkxNV9wcml2YXRl ICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4gKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0 ZSAqZGV2X3ByaXYgPSB0b19pOTE1KGNvbm5lY3Rvci0+YmFzZS5kZXYpOwo+ICAKPiAtCWlmIChJ U19CUk9YVE9OKGRldikpIHsKPiArCWlmIChJU19CUk9YVE9OKGRldl9wcml2KSkgewo+ICAJCXBh bmVsLT5iYWNrbGlnaHQuc2V0dXAgPSBieHRfc2V0dXBfYmFja2xpZ2h0Owo+ICAJCXBhbmVsLT5i YWNrbGlnaHQuZW5hYmxlID0gYnh0X2VuYWJsZV9iYWNrbGlnaHQ7Cj4gIAkJcGFuZWwtPmJhY2ts aWdodC5kaXNhYmxlID0gYnh0X2Rpc2FibGVfYmFja2xpZ2h0Owo+ICAJCXBhbmVsLT5iYWNrbGln aHQuc2V0ID0gYnh0X3NldF9iYWNrbGlnaHQ7Cj4gIAkJcGFuZWwtPmJhY2tsaWdodC5nZXQgPSBi eHRfZ2V0X2JhY2tsaWdodDsKPiAgCQlwYW5lbC0+YmFja2xpZ2h0Lmh6X3RvX3B3bSA9IGJ4dF9o el90b19wd207Cj4gLQl9IGVsc2UgaWYgKEhBU19QQ0hfTFBUKGRldikgfHwgSEFTX1BDSF9TUFQo ZGV2KSkgewo+ICsJfSBlbHNlIGlmIChIQVNfUENIX0xQVChkZXZfcHJpdikgfHwgSEFTX1BDSF9T UFQoZGV2X3ByaXYpKSB7Cj4gIAkJcGFuZWwtPmJhY2tsaWdodC5zZXR1cCA9IGxwdF9zZXR1cF9i YWNrbGlnaHQ7Cj4gIAkJcGFuZWwtPmJhY2tsaWdodC5lbmFibGUgPSBscHRfZW5hYmxlX2JhY2ts aWdodDsKPiAgCQlwYW5lbC0+YmFja2xpZ2h0LmRpc2FibGUgPSBscHRfZGlzYWJsZV9iYWNrbGln aHQ7Cj4gIAkJcGFuZWwtPmJhY2tsaWdodC5zZXQgPSBscHRfc2V0X2JhY2tsaWdodDsKPiAgCQlw YW5lbC0+YmFja2xpZ2h0LmdldCA9IGxwdF9nZXRfYmFja2xpZ2h0Owo+IC0JCWlmIChIQVNfUENI X0xQVChkZXYpKQo+ICsJCWlmIChIQVNfUENIX0xQVChkZXZfcHJpdikpCj4gIAkJCXBhbmVsLT5i YWNrbGlnaHQuaHpfdG9fcHdtID0gbHB0X2h6X3RvX3B3bTsKPiAgCQllbHNlCj4gIAkJCXBhbmVs LT5iYWNrbGlnaHQuaHpfdG9fcHdtID0gc3B0X2h6X3RvX3B3bTsKPiAtCX0gZWxzZSBpZiAoSEFT X1BDSF9TUExJVChkZXYpKSB7Cj4gKwl9IGVsc2UgaWYgKEhBU19QQ0hfU1BMSVQoZGV2X3ByaXYp KSB7Cj4gIAkJcGFuZWwtPmJhY2tsaWdodC5zZXR1cCA9IHBjaF9zZXR1cF9iYWNrbGlnaHQ7Cj4g IAkJcGFuZWwtPmJhY2tsaWdodC5lbmFibGUgPSBwY2hfZW5hYmxlX2JhY2tsaWdodDsKPiAgCQlw YW5lbC0+YmFja2xpZ2h0LmRpc2FibGUgPSBwY2hfZGlzYWJsZV9iYWNrbGlnaHQ7Cj4gIAkJcGFu ZWwtPmJhY2tsaWdodC5zZXQgPSBwY2hfc2V0X2JhY2tsaWdodDsKPiAgCQlwYW5lbC0+YmFja2xp Z2h0LmdldCA9IHBjaF9nZXRfYmFja2xpZ2h0Owo+ICAJCXBhbmVsLT5iYWNrbGlnaHQuaHpfdG9f cHdtID0gcGNoX2h6X3RvX3B3bTsKPiAtCX0gZWxzZSBpZiAoSVNfVkFMTEVZVklFVyhkZXYpIHx8 IElTX0NIRVJSWVZJRVcoZGV2KSkgewo+ICsJfSBlbHNlIGlmIChJU19WQUxMRVlWSUVXKGRldl9w cml2KSB8fCBJU19DSEVSUllWSUVXKGRldl9wcml2KSkgewo+ICAJCWlmIChkZXZfcHJpdi0+dmJ0 Lmhhc19taXBpKSB7Cj4gIAkJCXBhbmVsLT5iYWNrbGlnaHQuc2V0dXAgPSBwd21fc2V0dXBfYmFj a2xpZ2h0Owo+ICAJCQlwYW5lbC0+YmFja2xpZ2h0LmVuYWJsZSA9IHB3bV9lbmFibGVfYmFja2xp Z2h0Owo+IEBAIC0xNzk5LDcgKzE3NTksNyBAQCBpbnRlbF9wYW5lbF9pbml0X2JhY2tsaWdodF9m dW5jcyhzdHJ1Y3QgaW50ZWxfcGFuZWwgKnBhbmVsKQo+ICAJCQlwYW5lbC0+YmFja2xpZ2h0Lmdl dCA9IHZsdl9nZXRfYmFja2xpZ2h0Owo+ICAJCQlwYW5lbC0+YmFja2xpZ2h0Lmh6X3RvX3B3bSA9 IHZsdl9oel90b19wd207Cj4gIAkJfQo+IC0JfSBlbHNlIGlmIChJU19HRU40KGRldikpIHsKPiAr CX0gZWxzZSBpZiAoSVNfR0VONChkZXZfcHJpdikpIHsKPiAgCQlwYW5lbC0+YmFja2xpZ2h0LnNl dHVwID0gaTk2NV9zZXR1cF9iYWNrbGlnaHQ7Cj4gIAkJcGFuZWwtPmJhY2tsaWdodC5lbmFibGUg PSBpOTY1X2VuYWJsZV9iYWNrbGlnaHQ7Cj4gIAkJcGFuZWwtPmJhY2tsaWdodC5kaXNhYmxlID0g aTk2NV9kaXNhYmxlX2JhY2tsaWdodDsKPiAtLSAKPiAyLjEuNAo+Cj4gX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBJbnRlbC1nZnggbWFpbGluZyBsaXN0 Cj4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwo+IGh0dHA6Ly9saXN0cy5mcmVlZGVz a3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1n ZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK