From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [PATCH 2/2] drm/i915: initialize backlight max from VBT Date: Fri, 04 Sep 2015 15:56:46 +0300 Message-ID: <87egiez6k1.fsf@intel.com> References: <89ea86274bf4c647aae0a2cb3770dfc8e10d578d.1440575833.git.jani.nikula@intel.com> <55DE2BBC.6040104@intel.com> <87h9naz6xw.fsf@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id EAE506E0F8 for ; Fri, 4 Sep 2015 05:53:39 -0700 (PDT) In-Reply-To: <87h9naz6xw.fsf@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Clint Taylor , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAwNCBTZXAgMjAxNSwgSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4g d3JvdGU6Cj4gT24gVGh1LCAyNyBBdWcgMjAxNSwgQ2xpbnQgVGF5bG9yIDxjbGludG9uLmEudGF5 bG9yQGludGVsLmNvbT4gd3JvdGU6Cj4+IE9uIDA4LzI2LzIwMTUgMTI6NTggQU0sIEphbmkgTmlr dWxhIHdyb3RlOgo+Pj4gTm9ybWFsbHkgd2UgZGV0ZXJtaW5lIHRoZSBiYWNrbGlnaHQgUFdNIG1v ZHVsYXRpb24gZnJlcXVlbmN5ICh3aGljaCB3ZQo+Pj4gYWxzbyB1c2UgYXMgYmFja2xpZ2h0IG1h eCB2YWx1ZSkgZnJvbSB0aGUgYmFja2xpZ2h0IHJlZ2lzdGVycyBhdCBtb2R1bGUKPj4+IGxvYWQg dGltZSwgZXhwZWN0aW5nIHRoZSByZWdpc3RlcnMgaGF2ZSBiZWVuIGluaXRpYWxpemVkIGJ5IHRo ZSBCSU9TLiBJZgo+Pj4gdGhpcyBpcyBub3QgdGhlIGNhc2UsIHdlIGZhaWwuCj4+Pgo+Pj4gVGhl IFZCVCBjb250YWlucyB0aGUgYmFja2xpZ2h0IG1vZHVsYXRpb24gZnJlcXVlbmN5IGluIEh6LiBB ZGQgcGxhdGZvcm0KPj4+IHNwZWNpZmljIGZ1bmN0aW9ucyB0byBjb252ZXJ0IHRoZSBmcmVxdWVu Y3kgaW4gSHogdG8gYmFja2xpZ2h0IFBXTQo+Pj4gbW9kdWxhdGlvbiBmcmVxdWVuY3ksIGFuZCB1 c2UgdGhlbSB0byBpbml0aWFsaXplIHRoZSBiYWNrbGlnaHQgd2hlbiB0aGUKPj4+IHJlZ2lzdGVy cyBhcmUgbm90IGluaXRpYWxpemVkIGJ5IHRoZSBCSU9TLgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6 IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+Cj4+PiAtLS0KPj4+ICAgZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICB8ICAgMiArCj4+PiAgIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2k5MTVfcmVnLmggICAgfCAgIDEgKwo+Pj4gICBkcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wYW5lbC5jIHwgMTYwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0K Pj4+ICAgMyBmaWxlcyBjaGFuZ2VkLCAxNTYgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkK Pj4+Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+IGluZGV4IDVmNmZkMGI3MWJjOS4uZTlk ZWYzMTYxOGI1IDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4gQEAgLTY2NSw2 ICs2NjUsOCBAQCBzdHJ1Y3QgZHJtX2k5MTVfZGlzcGxheV9mdW5jcyB7Cj4+PiAgIAkJCSAgICAg IHVpbnQzMl90IGxldmVsKTsKPj4+ICAgCXZvaWQgKCpkaXNhYmxlX2JhY2tsaWdodCkoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKTsKPj4+ICAgCXZvaWQgKCplbmFibGVfYmFja2xp Z2h0KShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpjb25uZWN0b3IpOwo+Pj4gKwl1aW50MzJfdCAo KmJhY2tsaWdodF9oel90b19wd20pKHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvciwK Pj4+ICsJCQkJCXVpbnQzMl90IGh6KTsKPj4+ICAgfTsKPj4+Cj4+PiAgIGVudW0gZm9yY2V3YWtl X2RvbWFpbl9pZCB7Cj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9y ZWcuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfcmVnLmgKPj4+IGluZGV4IDcxZjdiYTg4 NmZiMS4uNWYwN2FmNDFhNjAwIDEwMDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9yZWcuaAo+Pj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9yZWcuaAo+Pj4g QEAgLTYzMTYsNiArNjMxNiw3IEBAIGVudW0gc2tsX2Rpc3BfcG93ZXJfd2VsbHMgewo+Pj4gICAj ZGVmaW5lIFNPVVRIX0NISUNLRU4yCQkweGMyMDA0Cj4+PiAgICNkZWZpbmUgIEZESV9NUEhZX0lP U0ZTQl9SRVNFVF9TVEFUVVMJKDE8PDEzKQo+Pj4gICAjZGVmaW5lICBGRElfTVBIWV9JT1NGU0Jf UkVTRVRfQ1RMCSgxPDwxMikKPj4+ICsjZGVmaW5lICBQV01fR1JBTlVMQVJJVFkJCSgxPDw1KQkv KiBMUFQgKi8KPj4KPj4gU2hvdWxkbid0IHdlIGJlIHVzaW5nIHRoZSBCTENfUFdNX0NUTCB2ZXJz aW9uIG9mIHRoZSBQV01fR1JBTlVMQVJJVFkgCj4+IGJpdCBvbiBIU1cgYW5kIGxhdGVyPwo+Cj4g T25seSB3aGVuIGRyaXZpbmcgdGhlIGJhY2tsaWdodCBvbiB0aGUgdXRpbGl0eSBwaW4uCj4KPj4K Pj4+ICAgI2RlZmluZSAgRFBMU19FRFBfUFBTX0ZJWF9ESVMJCSgxPDwwKQo+Pj4KPj4+ICAgI2Rl ZmluZSBfRkRJX1JYQV9DSElDS0VOICAgICAgICAgMHhjMjAwYwo+Pj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9p bnRlbF9wYW5lbC5jCj4+PiBpbmRleCBlMmFiM2Y2ZWQwMjIuLmVkZjUyM2ZmNDYxMCAxMDA2NDQK Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPj4+ICsrKyBiL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3BhbmVsLmMKPj4+IEBAIC0xMjEyLDEwICsxMjEyLDEy NSBAQCBzdGF0aWMgdm9pZCBpbnRlbF9iYWNrbGlnaHRfZGV2aWNlX3VucmVnaXN0ZXIoc3RydWN0 IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+Pj4gICAjZW5kaWYgLyogQ09ORklHX0JBQ0tM SUdIVF9DTEFTU19ERVZJQ0UgKi8KPj4+Cj4+PiAgIC8qCj4+PiAtICogTm90ZTogVGhlIHNldHVw IGhvb2tzIGNhbid0IGFzc3VtZSBwaXBlIGlzIHNldCEKPj4+ICsgKiBIU1cvQkRXOiBUaGlzIHZh bHVlIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aGUgUFdNIHN0cmVhbSBpbiBjbG9jayBwZXJp b2RzCj4+PiArICogbXVsdGlwbGllZCBieSAxMjggKGRlZmF1bHQgaW5jcmVtZW50KSBvciAxNiAo YWx0ZXJuYXRlIGluY3JlbWVudCwgc2VsZWN0ZWQgaW4KPj4+ICsgKiBMUFQgU09VVEhfQ0hJQ0tF TjIgcmVnaXN0ZXIgYml0IDUpLgo+Pj4gICAgKgo+Pj4gLSAqIFhYWDogUXVlcnkgbW9kZSBjbG9j ayBvciBoYXJkd2FyZSBjbG9jayBhbmQgcHJvZ3JhbSBQV00gbW9kdWxhdGlvbiBmcmVxdWVuY3kK Pj4+IC0gKiBhcHByb3ByaWF0ZWx5IHdoZW4gaXQncyAwLiBVc2UgVkJUIGFuZC9vciBzYW5lIGRl ZmF1bHRzLgo+Pj4gKyAqIFhYWDogVGhpcyBvbmx5IHdvcmtzIHdoZW4gZHJpdmluZyB0aGUgUENI IFBXTS4gV2hlbiBkcml2aW5nIHRoZSBDUFUgUFdNIG9uCj4+PiArICogdGhlIHV0aWxpdHkgcGlu LCB0aGUgZ3JhbnVsYXJpdHkgbmVlZHMgdG8gYmUgZGV0ZXJtaW5lZCBieSBCTENfUFdNX0NUTCBi aXQKPj4+ICsgKiAyNy4KPj4+ICsgKi8KPj4+ICtzdGF0aWMgdTMyIGhzd19oel90b19wd20oc3Ry dWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgcHdtX2ZyZXFfaHopCj4+PiArewo+ Pj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPj4+ICsJ c3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0gZGV2LT5kZXZfcHJpdmF0ZTsKPj4+ ICsJdTMyIG11bCwgY2xvY2s7Cj4+PiArCj4+PiArCWlmIChJOTE1X1JFQUQoU09VVEhfQ0hJQ0tF TjIpICYgUFdNX0dSQU5VTEFSSVRZKQo+Pj4gKwkJbXVsID0gMTY7Cj4+Cj4+IEFjY29yZGluZyB0 byB0aGUgSFNXLCBCRFcsIGFuZCBTS0wgQlNQRUNzIHRoZSBpbmNyZW1lbnQgaXMgOCBhbmQgMTI4 IAo+PiBiYXNlZCBvbiB0aGUgUFdNIEdyYW51bGFyaXR5IGJpdC4gVGhlIEJEVyBhbmQgU0tMIENo cm9tZU9TIHJlZmVyZW5jZSAKPj4gZGVzaWducyB1c2VzIHRoZSBkZWRpY2F0ZWQgUFdNIHBpbiBh bmQgbm90IHRoZSB1dGlsaXR5IHBpbi4gU28gCj4+IEJMQ19QV01fQ1RSTCBiaXQgMjcgc2hvdWxk IGJlIHVzZWQgZm9yIFBXTV9HUkFOVUxBUklUWS4gV2UgcHJvYmFibHkgbmVlZCAKPj4gbG9naWMg dG8gc3dpdGNoIGJldHdlZW4gUENIIGFuZCBDUFUgUFdNcy4KPgo+IE5vLCBpdCdzIHRoZSBvdGhl ciB3YXkgYXJvdW5kLiBCTENfUFdNX0NUTCBiaXQgMjcgaXMgdXNlZCBmb3IKPiBncmFudWxhcml0 eSBjb250cm9sIHdoZW4gZHJpdmluZyB0aGUgdXRpbGl0eSBwaW4uIFllcywgaW4gdGhlb3J5IHdl Cj4gd291bGQgbmVlZCBsb2dpYyB0byBzd2l0Y2ggYmV0d2VlbiBQQ0gvQ1BVIFBXTXMsIGJ1dCBp biBwcmFjdGlzZSB3ZSBkbwo+IG5vdCBzdXBwb3J0IENQVSBQV00gYW55d2hlcmUsIGFuZCB0aGUg bGFzdCB0aW1lIEkgY2hlY2tlZCAocHJvYmFibHkgbGlrZQo+IGEgeWVhciBvciB0d28gYWdvLCBh ZG1pdHRlZGx5KSB0aGVyZSB3ZXJlIG5vIGRlc2lnbnMgdXNpbmcgdGhlIENQVQo+IFBXTS4gSSd2 ZSBraW5kIG9mIGRlY2lkZWQgdG8gbG9vayBhdCBpdCB3aGVuIHdlIGdldCB0aGUgZmlyc3QgYnVn IHdoZXJlCj4gYmFja2xpZ2h0IGRvZXNuJ3Qgd29yayBiZWNhdXNlIHRoZSBkZXNpZ24gdXNlcyB0 aGUgdXRpbGl0eSBwaW4uCgpBZGRpdGlvbiwgZm9yIFNLTC9TUFQgd2UgbmVlZCB0byBsb29rIGF0 IFNPVVRIX0NISUNLRU5fMSBiaXQgMC4KCkJSLApKYW5pLgoKCgo+Cj4+Cj4+PiArCWVsc2UKPj4+ ICsJCW11bCA9IDEyODsKPj4+ICsKPj4+ICsJaWYgKGRldl9wcml2LT5wY2hfaWQgPT0gSU5URUxf UENIX0xQVF9ERVZJQ0VfSURfVFlQRSkKPj4+ICsJCWNsb2NrID0gTUh6KDEzNSk7IC8qIExQVDpI ICovCj4+PiArCWVsc2UKPj4+ICsJCWNsb2NrID0gTUh6KDI0KTsgLyogTFBUOkxQICovCj4+PiAr Cj4+PiArCXJldHVybiBjbG9jayAvIChwd21fZnJlcV9oeiAqIG11bCk7Cj4+PiArfQo+Pj4gKwo+ Pj4gKy8qCj4+PiArICogSUxLL1NOQi9JVkI6IFRoaXMgdmFsdWUgcmVwcmVzZW50cyB0aGUgcGVy aW9kIG9mIHRoZSBQV00gc3RyZWFtIGluIFBDSAo+Pj4gKyAqIGRpc3BsYXkgcmF3IGNsb2NrcyBt dWx0aXBsaWVkIGJ5IDEyOC4KPj4+ICsgKi8KPj4+ICtzdGF0aWMgdTMyIHBjaF9oel90b19wd20o c3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCB1MzIgcHdtX2ZyZXFfaHopCj4+PiAr ewo+Pj4gKwlzdHJ1Y3QgZHJtX2RldmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPj4+ ICsJaW50IGNsb2NrID0gTUh6KGludGVsX3BjaF9yYXdjbGsoZGV2KSk7Cj4+PiArCj4+PiArCXJl dHVybiBjbG9jayAvIChwd21fZnJlcV9oeiAqIDEyOCk7Cj4+PiArfQo+Pj4gKwo+Pj4gKy8qCj4+ PiArICogR2VuMjogVGhpcyBmaWVsZCBkZXRlcm1pbmVzIHRoZSBudW1iZXIgb2YgdGltZSBiYXNl IGV2ZW50cyAoZGlzcGxheSBjb3JlCj4+PiArICogY2xvY2sgZnJlcXVlbmN5LzMyKSBpbiB0b3Rh bCBmb3IgYSBjb21wbGV0ZSBjeWNsZSBvZiBtb2R1bGF0ZWQgYmFja2xpZ2h0Cj4+PiArICogY29u dHJvbC4KPj4+ICsgKgo+Pj4gKyAqIEdlbjM6IEEgdGltZSBiYXNlIGV2ZW50IGVxdWFscyB0aGUg ZGlzcGxheSBjb3JlIGNsb2NrIChbRGV2UE5WXSBIUkFXIGNsb2NrKQo+Pj4gKyAqIGRpdmlkZWQg YnkgMzIuCj4+PiArICovCj4+PiArc3RhdGljIHUzMiBpOXh4X2h6X3RvX3B3bShzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIHUzMiBwd21fZnJlcV9oeikKPj4+ICt7Cj4+PiArCXN0 cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+Pj4gKwlzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4gKwlpbnQg Y2xvY2s7Cj4+PiArCj4+PiArCWlmIChJU19QSU5FVklFVyhkZXYpKQo+Pj4gKwkJY2xvY2sgPSBp bnRlbF9ocmF3Y2xrKGRldik7Cj4+PiArCWVsc2UKPj4+ICsJCWNsb2NrID0gMTAwMCAqIGRldl9w cml2LT5kaXNwbGF5LmdldF9kaXNwbGF5X2Nsb2NrX3NwZWVkKGRldik7Cj4+PiArCj4+PiArCXJl dHVybiBjbG9jayAvIChwd21fZnJlcV9oeiAqIDMyKTsKPj4+ICt9Cj4+PiArCj4+PiArLyoKPj4+ ICsgKiBHZW40OiBUaGlzIHZhbHVlIHJlcHJlc2VudHMgdGhlIHBlcmlvZCBvZiB0aGUgUFdNIHN0 cmVhbSBpbiBkaXNwbGF5IGNvcmUKPj4+ICsgKiBjbG9ja3MgbXVsdGlwbGllZCBieSAxMjguCj4+ PiArICovCj4+PiArc3RhdGljIHUzMiBpOTY1X2h6X3RvX3B3bShzdHJ1Y3QgaW50ZWxfY29ubmVj dG9yICpjb25uZWN0b3IsIHUzMiBwd21fZnJlcV9oeikKPj4+ICt7Cj4+PiArCXN0cnVjdCBkcm1f ZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+Pj4gKwlzdHJ1Y3QgZHJtX2k5MTVf cHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4gKwlpbnQgY2xvY2sgPSAx MDAwICogZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2Rpc3BsYXlfY2xvY2tfc3BlZWQoZGV2KTsKPj4+ ICsKPj4+ICsJcmV0dXJuIGNsb2NrIC8gKHB3bV9mcmVxX2h6ICogMTI4KTsKPj4+ICt9Cj4+PiAr Cj4+PiArLyoKPj4+ICsgKiBWTFY6IFRoaXMgdmFsdWUgcmVwcmVzZW50cyB0aGUgcGVyaW9kIG9m IHRoZSBQV00gc3RyZWFtIGluIGRpc3BsYXkgY29yZQo+Pj4gKyAqIGNsb2NrcyAoW0RldkNUR10g MTAwTUh6IEhSQVcgY2xvY2tzKSBtdWx0aXBsaWVkIGJ5IDEyOCBvciAyNU1IeiBTMElYIGNsb2Nr cwo+Pgo+PiBWTFYgYW5kIENIViB1c2UgYSAyMDAgTWh6IEhSQVcgY2xvY2suIFNpbmNlIHBhdGNo IDEgaW4gdGhlIHNlcmllcyBtb3ZlZCAKPj4gaW50ZWxfaHJhd2NsaygpIGludG8gaW50ZWxfZGlz cGxheS5jIGxldHMgdXNlIHRoZSByZXR1cm5lZCB2YWx1ZSBpbnN0ZWFkIAo+PiBvZiB0aGUgaGFy ZGNvZGVkIHZhbHVlLgo+Pgo+Pj4gKyAqIG11bHRpcGxpZWQgYnkgMTYuCj4+PiArICoKPj4+ICsg KiBYWFg6IFdoZXJlIGlzIHRoaXMgc2VsZWN0ZWQ/Pz8KPj4KPj4gVGhpcyBpcyBjdXJyZW50bHkg c2VsZWN0ZWQgaW4gQml0IDMwIG9mIENCUjFfVkxWLiBPZiBjb3Vyc2UgaW50ZWxfcG0uYyAKPj4g d3JpdGVzIHRoaXMgcmVnaXN0ZXIgYXMgMHgwIGR1cmluZyBpbml0IHNvIGl0IGRvZXNuJ3Qgc3Vy cHJpc2UgbWUgdGhhdCAKPj4gdGhpcyB0ZXN0IHdvdWxkIGFsc28gYmUgMHgwLgo+Pgo+Pj4gKyAq Lwo+Pj4gK3N0YXRpYyB1MzIgdmx2X2h6X3RvX3B3bShzdHJ1Y3QgaW50ZWxfY29ubmVjdG9yICpj b25uZWN0b3IsIHUzMiBwd21fZnJlcV9oeikKPj4+ICt7Cj4+PiArCWlmICgxKQo+Pj4gKwkJcmV0 dXJuIE1IeigyNSkgLyAocHdtX2ZyZXFfaHogKiAxNik7Cj4+Cj4+IENIViBhY3R1YWxseSB1c2Vz IGEgMTkuMiBNSHogUzBJWCBjbG9jayBhbmQgc2luY2UgdGhlIE1IeigpIG1hY3JvIAo+PiBkb2Vz bid0IGFjY2VwdCBmbG9hdHMgd2UgbmVlZCB0byB1c2UgS0h6KCkgbWFjcm8uCj4+Cj4+PiArCWVs c2UKPj4+ICsJCXJldHVybiBNSHooMTAwKSAvIChwd21fZnJlcV9oeiAqIDEyOCk7Cj4+PiArfQo+ Pgo+PiBIZXJlIGlzIHRoZSBuZXcgZnVuY3Rpb24gZm9yIHRoZSAzIHByZXZpb3VzIGlzc3Vlcwo+ Cj4gVGhhbmtzLCB0aGlzIGlzIHRoZSBraW5kIG9mIHJldmlldyBJIGxpa2UuIDopCj4KPj4KPj4g LyoKPj4gICAqIFZMVjogVGhpcyB2YWx1ZSByZXByZXNlbnRzIHRoZSBwZXJpb2Qgb2YgdGhlIFBX TSBzdHJlYW0gaW4gZGlzcGxheSBjb3JlCj4+ICAgKiBjbG9ja3MgKFtEZXZDVEddIDIwME1IeiBI UkFXIGNsb2NrcykgbXVsdGlwbGllZCBieSAxMjggb3IgMjVNSHogUzBJWCAKPj4gY2xvY2tzCj4+ ICAgKiBtdWx0aXBsaWVkIGJ5IDE2LiBDSFYgdXNlcyBhIDE5LjJNSHogUzBJWCBjbG9jay4KPj4g ICAqCj4+ICAgKi8KPj4gc3RhdGljIHUzMiB2bHZfaHpfdG9fcHdtKHN0cnVjdCBpbnRlbF9jb25u ZWN0b3IgKmNvbm5lY3RvciwgdTMyIHB3bV9mcmVxX2h6KQo+PiB7Cj4+IAlzdHJ1Y3QgZHJtX2Rl dmljZSAqZGV2ID0gY29ubmVjdG9yLT5iYXNlLmRldjsKPj4gCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICpkZXZfcHJpdiA9IGRldi0+ZGV2X3ByaXZhdGU7Cj4+IAlpbnQgY2xvY2s7Cj4+Cj4+IAlp ZiAoKEk5MTVfUkVBRChDQlIxX1ZMVikgJiBDQlJfUFdNX0NMT0NLX01VWF9TRUxFQ1QpID09IDAp Cj4+IAkJaWYgKElTX0NIRVJSWVZJRVcoZGV2KSkgewo+PiAJCQlyZXR1cm4gS0h6KDE5MjAwKSAv IChwd21fZnJlcV9oeiAqIDE2KTsKPj4gCQl9Cj4+IAkJZWxzZSB7Cj4+IAkJCXJldHVybiBNSHoo MjUpIC8gKHB3bV9mcmVxX2h6ICogMTYpOwo+PiAJCX0KPj4gCWVsc2Ugewo+PiAJCWNsb2NrID0g aW50ZWxfaHJhd2NsayhkZXYpOwo+PiAJCXJldHVybiBNSHooY2xvY2spIC8gKHB3bV9mcmVxX2h6 ICogMTI4KTsKPj4gCX0KPj4gfQo+Pgo+Pj4gKwo+Pj4gK3N0YXRpYyB1MzIgZ2V0X2JhY2tsaWdo dF9tYXhfdmJ0KHN0cnVjdCBpbnRlbF9jb25uZWN0b3IgKmNvbm5lY3RvcikKPj4+ICt7Cj4+PiAr CXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjb25uZWN0b3ItPmJhc2UuZGV2Owo+Pj4gKwlzdHJ1 Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPSBkZXYtPmRldl9wcml2YXRlOwo+Pj4gKwl1 MTYgcHdtX2ZyZXFfaHogPSBkZXZfcHJpdi0+dmJ0LmJhY2tsaWdodC5wd21fZnJlcV9oejsKPj4+ ICsJdTMyIHB3bTsKPj4+ICsKPj4+ICsJaWYgKCFwd21fZnJlcV9oeikgewo+Pj4gKwkJRFJNX0RF QlVHX0tNUygiYmFja2xpZ2h0IGZyZXF1ZW5jeSBub3Qgc3BlY2lmaWVkIGluIFZCVFxuIik7Cj4+ PiArCQlyZXR1cm4gMDsKPj4+ICsJfQo+Pj4gKwo+Pj4gKwlpZiAoIWRldl9wcml2LT5kaXNwbGF5 LmJhY2tsaWdodF9oel90b19wd20pIHsKPj4+ICsJCURSTV9ERUJVR19LTVMoImJhY2tsaWdodCBm cmVxdWVuY3kgc2V0dGluZyBmcm9tIFZCVCBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBvbiB0aGlz IHBsYXRmb3JtXG4iKTsKPj4+ICsJCXJldHVybiAwOwo+Pj4gKwl9Cj4+PiArCj4+PiArCXB3bSA9 IGRldl9wcml2LT5kaXNwbGF5LmJhY2tsaWdodF9oel90b19wd20oY29ubmVjdG9yLCBwd21fZnJl cV9oeik7Cj4+PiArCWlmICghcHdtKSB7Cj4+PiArCQlEUk1fREVCVUdfS01TKCJiYWNrbGlnaHQg ZnJlcXVlbmN5IGNvbnZlcnNpb24gZmFpbGVkXG4iKTsKPj4+ICsJCXJldHVybiAwOwo+Pj4gKwl9 Cj4+PiArCj4+PiArCURSTV9ERUJVR19LTVMoImJhY2tsaWdodCBmcmVxdWVuY3kgJXUgSHogZnJv bSBWQlRcbiIsIHB3bV9mcmVxX2h6KTsKPj4+ICsKPj4+ICsJcmV0dXJuIHB3bTsKPj4+ICt9Cj4+ PiArCj4+PiArLyoKPj4+ICsgKiBOb3RlOiBUaGUgc2V0dXAgaG9va3MgY2FuJ3QgYXNzdW1lIHBp cGUgaXMgc2V0IQo+Pj4gICAgKi8KPj4+ICAgc3RhdGljIHUzMiBnZXRfYmFja2xpZ2h0X21pbl92 YnQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yKQo+Pj4gICB7Cj4+PiBAQCAtMTI1 NSw2ICsxMzcwLDEwIEBAIHN0YXRpYyBpbnQgYmR3X3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50 ZWxfY29ubmVjdG9yICpjb25uZWN0b3IsIGVudW0gcGlwZSB1bnVzCj4+Pgo+Pj4gICAJcGNoX2N0 bDIgPSBJOTE1X1JFQUQoQkxDX1BXTV9QQ0hfQ1RMMik7Cj4+PiAgIAlwYW5lbC0+YmFja2xpZ2h0 Lm1heCA9IHBjaF9jdGwyID4+IDE2Owo+Pj4gKwo+Pj4gKwlpZiAoIXBhbmVsLT5iYWNrbGlnaHQu bWF4KQo+Pj4gKwkJcGFuZWwtPmJhY2tsaWdodC5tYXggPSBnZXRfYmFja2xpZ2h0X21heF92YnQo Y29ubmVjdG9yKTsKPj4+ICsKPj4+ICAgCWlmICghcGFuZWwtPmJhY2tsaWdodC5tYXgpCj4+PiAg IAkJcmV0dXJuIC1FTk9ERVY7Cj4+Pgo+Pj4gQEAgLTEyODEsNiArMTQwMCwxMCBAQCBzdGF0aWMg aW50IHBjaF9zZXR1cF9iYWNrbGlnaHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9y LCBlbnVtIHBpcGUgdW51cwo+Pj4KPj4+ICAgCXBjaF9jdGwyID0gSTkxNV9SRUFEKEJMQ19QV01f UENIX0NUTDIpOwo+Pj4gICAJcGFuZWwtPmJhY2tsaWdodC5tYXggPSBwY2hfY3RsMiA+PiAxNjsK Pj4+ICsKPj4+ICsJaWYgKCFwYW5lbC0+YmFja2xpZ2h0Lm1heCkKPj4+ICsJCXBhbmVsLT5iYWNr bGlnaHQubWF4ID0gZ2V0X2JhY2tsaWdodF9tYXhfdmJ0KGNvbm5lY3Rvcik7Cj4+PiArCj4+PiAg IAlpZiAoIXBhbmVsLT5iYWNrbGlnaHQubWF4KQo+Pj4gICAJCXJldHVybiAtRU5PREVWOwo+Pj4K Pj4+IEBAIC0xMzEyLDEyICsxNDM1LDE4IEBAIHN0YXRpYyBpbnQgaTl4eF9zZXR1cF9iYWNrbGln aHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBlbnVtIHBpcGUgdW51Cj4+PiAg IAkJcGFuZWwtPmJhY2tsaWdodC5hY3RpdmVfbG93X3B3bSA9IGN0bCAmIEJMTV9QT0xBUklUWV9Q TlY7Cj4+Pgo+Pj4gICAJcGFuZWwtPmJhY2tsaWdodC5tYXggPSBjdGwgPj4gMTc7Cj4+PiAtCWlm IChwYW5lbC0+YmFja2xpZ2h0LmNvbWJpbmF0aW9uX21vZGUpCj4+PiAtCQlwYW5lbC0+YmFja2xp Z2h0Lm1heCAqPSAweGZmOwo+Pj4gKwo+Pj4gKwlpZiAoIXBhbmVsLT5iYWNrbGlnaHQubWF4KSB7 Cj4+PiArCQlwYW5lbC0+YmFja2xpZ2h0Lm1heCA9IGdldF9iYWNrbGlnaHRfbWF4X3ZidChjb25u ZWN0b3IpOwo+Pj4gKwkJcGFuZWwtPmJhY2tsaWdodC5tYXggPj49IDE7Cj4+PiArCX0KPj4+Cj4+ PiAgIAlpZiAoIXBhbmVsLT5iYWNrbGlnaHQubWF4KQo+Pj4gICAJCXJldHVybiAtRU5PREVWOwo+ Pj4KPj4+ICsJaWYgKHBhbmVsLT5iYWNrbGlnaHQuY29tYmluYXRpb25fbW9kZSkKPj4+ICsJCXBh bmVsLT5iYWNrbGlnaHQubWF4ICo9IDB4ZmY7Cj4+PiArCj4+PiAgIAlwYW5lbC0+YmFja2xpZ2h0 Lm1pbiA9IGdldF9iYWNrbGlnaHRfbWluX3ZidChjb25uZWN0b3IpOwo+Pj4KPj4+ICAgCXZhbCA9 IGk5eHhfZ2V0X2JhY2tsaWdodChjb25uZWN0b3IpOwo+Pj4gQEAgLTEzNDEsMTIgKzE0NzAsMTYg QEAgc3RhdGljIGludCBpOTY1X3NldHVwX2JhY2tsaWdodChzdHJ1Y3QgaW50ZWxfY29ubmVjdG9y ICpjb25uZWN0b3IsIGVudW0gcGlwZSB1bnUKPj4+Cj4+PiAgIAljdGwgPSBJOTE1X1JFQUQoQkxD X1BXTV9DVEwpOwo+Pj4gICAJcGFuZWwtPmJhY2tsaWdodC5tYXggPSBjdGwgPj4gMTY7Cj4+PiAt CWlmIChwYW5lbC0+YmFja2xpZ2h0LmNvbWJpbmF0aW9uX21vZGUpCj4+PiAtCQlwYW5lbC0+YmFj a2xpZ2h0Lm1heCAqPSAweGZmOwo+Pj4gKwo+Pj4gKwlpZiAoIXBhbmVsLT5iYWNrbGlnaHQubWF4 KQo+Pj4gKwkJcGFuZWwtPmJhY2tsaWdodC5tYXggPSBnZXRfYmFja2xpZ2h0X21heF92YnQoY29u bmVjdG9yKTsKPj4+Cj4+PiAgIAlpZiAoIXBhbmVsLT5iYWNrbGlnaHQubWF4KQo+Pj4gICAJCXJl dHVybiAtRU5PREVWOwo+Pj4KPj4+ICsJaWYgKHBhbmVsLT5iYWNrbGlnaHQuY29tYmluYXRpb25f bW9kZSkKPj4+ICsJCXBhbmVsLT5iYWNrbGlnaHQubWF4ICo9IDB4ZmY7Cj4+PiArCj4+PiAgIAlw YW5lbC0+YmFja2xpZ2h0Lm1pbiA9IGdldF9iYWNrbGlnaHRfbWluX3ZidChjb25uZWN0b3IpOwo+ Pj4KPj4+ICAgCXZhbCA9IGk5eHhfZ2V0X2JhY2tsaWdodChjb25uZWN0b3IpOwo+Pj4gQEAgLTEz ODYsNiArMTUxOSwxMCBAQCBzdGF0aWMgaW50IHZsdl9zZXR1cF9iYWNrbGlnaHQoc3RydWN0IGlu dGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBlbnVtIHBpcGUgcGlwZQo+Pj4KPj4+ICAgCWN0bCA9 IEk5MTVfUkVBRChWTFZfQkxDX1BXTV9DVEwocGlwZSkpOwo+Pj4gICAJcGFuZWwtPmJhY2tsaWdo dC5tYXggPSBjdGwgPj4gMTY7Cj4+PiArCj4+Cj4+IHRoZSBmb3JfZWFjaF9waXBlKCkgYWJvdmUg dGhpcyBjb2RlIGhhcmRjb2RlcyB0aGUgdXBwZXIgMTYgYml0cyBvZiAKPj4gVkxWX0JMQ19QV01f Q1RMIHRvIDB4RjQyICgzMDcuNCBIeikgc28gdGhpcyBjb2RlIG5ldmVyIGV4ZWN1dGVzLiAKPj4g cmVtb3ZpbmcgdGhlIGZvcl9lYWNoX3BpcGUgYmxvY2sgYWJvdmUgdGhlc2UgYWRkcyByZXNvbHZl cyB0aGlzIGlzc3VlLgo+Cj4gQWNrLCBJIHdhcyB0aGlua2luZyBvZiBtYWtpbmcgdGhpcyBhIHNl cGFyYXRlIHBhdGNoLgo+Cj4+Cj4+PiArCWlmICghcGFuZWwtPmJhY2tsaWdodC5tYXgpCj4+PiAr CQlwYW5lbC0+YmFja2xpZ2h0Lm1heCA9IGdldF9iYWNrbGlnaHRfbWF4X3ZidChjb25uZWN0b3Ip Owo+Pj4gKwo+Pj4gICAJaWYgKCFwYW5lbC0+YmFja2xpZ2h0Lm1heCkKPj4+ICAgCQlyZXR1cm4g LUVOT0RFVjsKPj4+Cj4+PiBAQCAtMTQxMiw2ICsxNTQ5LDEwIEBAIGJ4dF9zZXR1cF9iYWNrbGln aHQoc3RydWN0IGludGVsX2Nvbm5lY3RvciAqY29ubmVjdG9yLCBlbnVtIHBpcGUgdW51c2VkKQo+ Pj4gICAJcGFuZWwtPmJhY2tsaWdodC5hY3RpdmVfbG93X3B3bSA9IHB3bV9jdGwgJiBCWFRfQkxD X1BXTV9QT0xBUklUWTsKPj4+Cj4+PiAgIAlwYW5lbC0+YmFja2xpZ2h0Lm1heCA9IEk5MTVfUkVB RChCWFRfQkxDX1BXTV9GUkVRMSk7Cj4+PiArCj4+PiArCWlmICghcGFuZWwtPmJhY2tsaWdodC5t YXgpCj4+PiArCQlwYW5lbC0+YmFja2xpZ2h0Lm1heCA9IGdldF9iYWNrbGlnaHRfbWF4X3ZidChj b25uZWN0b3IpOwo+Pj4gKwo+Pj4gICAJaWYgKCFwYW5lbC0+YmFja2xpZ2h0Lm1heCkKPj4+ICAg CQlyZXR1cm4gLUVOT0RFVjsKPj4+Cj4+PiBAQCAtMTUyNSwxMiArMTY2NiwxNCBAQCB2b2lkIGlu dGVsX3BhbmVsX2luaXRfYmFja2xpZ2h0X2Z1bmNzKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYpCj4+ PiAgIAkJZGV2X3ByaXYtPmRpc3BsYXkuZGlzYWJsZV9iYWNrbGlnaHQgPSBwY2hfZGlzYWJsZV9i YWNrbGlnaHQ7Cj4+PiAgIAkJZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2JhY2tsaWdodCA9IGJkd19z ZXRfYmFja2xpZ2h0Owo+Pj4gICAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9iYWNrbGlnaHQgPSBi ZHdfZ2V0X2JhY2tsaWdodDsKPj4+ICsJCWRldl9wcml2LT5kaXNwbGF5LmJhY2tsaWdodF9oel90 b19wd20gPSBoc3dfaHpfdG9fcHdtOwo+Pgo+PiBXZSBuZWVkIHRvIGNyZWF0ZSBhIG5ldyBmdW5j dGlvbiBmb3IgU0tMLCBhbmQgQlhUIHRoYXQgZG9lc24ndCB1c2UgdGhlIAo+PiB1dGlsaXR5IHBp bi4gYW5kIHllcyBJIHVuZGVyc3RhbmQgdGhhdCB0aGlzIHBhdGNoIHdhcyBzdWJtaXR0ZWQgMjAg Cj4+IG1vbnRocyBhZ28uIEknbSBpbnZlc3RpZ2F0aW5nIGNoYW5nZXMgZm9yIEJEVyBhbmQgU0tM IHN1cHBvcnQuCj4KPiBPa2F5LCBzbyBJJ3ZlIGdvbmUgdGhyb3VnaCB0aGUgYmFja2xpZ2h0IHJl Z2lzdGVyIHNwZWNzIGEgZmV3IHRpbWVzIHRvbwo+IG1hbnksIHNvIEkgZGlkbid0IGRvIGl0IHRo aXMgdGltZS4gSG93ZXZlciwgZnJvbSBtZW1vcnksIGhzdywgYmR3IGFuZAo+IHNrbCBQQ0ggYmFj a2xpZ2h0IHdvcmtzIGp1c3QgdGhlIHNhbWUuIFdlIGNvdWxkIHVzZSB0aGUgY3VycmVudCBiZHcv c2tsCj4gY29kZSBmb3IgaHN3IGp1c3QgYXMgd2VsbCwgd2UndmUganVzdCBlbmRlZCB1cCBsZXR0 aW5nIHRoZSBoYXJkd2FyZSBzZW5kCj4gdGhlIG1lc3NhZ2VzIGZyb20gdGhlIENQVSByZWdpc3Rl cnMgdG8gUENIOyB0aGlzIGlzIHBvc3NpYmxlIG9uIExQVCBQQ0gKPiBidXQgbm8gbG9uZ2VyIG9u IFNQVCBQQ0guIChTZWUgYmR3X2VuYWJsZV9iYWNrbGlnaHQ7IExQVCBQQ0ggKmFsbG93cyoKPiBz ZXR0aW5nIG9yIG5vdCBzZXR0aW5nIEJMTV9QQ0hfT1ZFUlJJREVfRU5BQkxFLCBhZnRlciB0aGF0 IGl0J3MgdGhlCj4gZGVmYXVsdC4pCj4KPiBBZ2Fpbiwgd2UgZG8gbm90IHN1cHBvcnQgQ1BVIGJh Y2tsaWdodCBhbnl3aGVyZSBvbiBQQ0ggc3BsaXQgcGxhdGZvcm1zLAo+IGl0J3MganVzdCB0aGUg cGFzc2luZyBvZiBtZXNzYWdlcyBmcm9tIENQVSByZWdpc3RlcnMgdG8gUENILiBXZSBhbHNvCj4g ZG9uJ3Qgc3VwcG9ydCBiYWNrbGlnaHQgb24gdGhlIHV0aWxpdHkgcGluICh0aGVyZSdzIHBhdGNo ZXMgdG8gYWRkIHRoaXMKPiB0byBieHQsIGJ1dCB0aGF0J3MgZGlmZmVyZW50IGFueXdheSkuCj4K PiAtLS0KPgo+IEkgdGhpbmsgSSBrbm93IHRvbyBtdWNoIGFib3V0IGJhY2tsaWdodC4gQW5kIGJ5 IHRvbyBtdWNoIEkgbWVhbiB0aGF0IEkKPiBrbm93IGVub3VnaCB0byBrbm93IEkgZG9uJ3Qga25v dyBub3doZXJlIG5lYXIgZW5vdWdoLCBhbmQgdGhhdCB0aG91Z2h0Cj4gcmVhbGx5IHNjYXJlcyBt ZS4gSSBkb24ndCB3YW50IHRvIGtub3cgbW9yZSBhYm91dCBiYWNrbGlnaHQuIEknZCByYXRoZXIK PiByZWdyZXNzIHRvIHRoZSBibGlzc2Z1bCBpZ25vcmFuY2UgYW5kIHRoZSBuYcOvdmUgbWlzY29u Y2VwdGlvbiB0aGF0Cj4gYmFja2xpZ2h0IHNob3VsZCBiZSBlYXN5Lgo+Cj4gQlIsCj4gSmFuaS4K Pgo+Pgo+Pj4gICAJfSBlbHNlIGlmIChIQVNfUENIX1NQTElUKGRldikpIHsKPj4+ICAgCQlkZXZf cHJpdi0+ZGlzcGxheS5zZXR1cF9iYWNrbGlnaHQgPSBwY2hfc2V0dXBfYmFja2xpZ2h0Owo+Pj4g ICAJCWRldl9wcml2LT5kaXNwbGF5LmVuYWJsZV9iYWNrbGlnaHQgPSBwY2hfZW5hYmxlX2JhY2ts aWdodDsKPj4+ICAgCQlkZXZfcHJpdi0+ZGlzcGxheS5kaXNhYmxlX2JhY2tsaWdodCA9IHBjaF9k aXNhYmxlX2JhY2tsaWdodDsKPj4+ICAgCQlkZXZfcHJpdi0+ZGlzcGxheS5zZXRfYmFja2xpZ2h0 ID0gcGNoX3NldF9iYWNrbGlnaHQ7Cj4+PiAgIAkJZGV2X3ByaXYtPmRpc3BsYXkuZ2V0X2JhY2ts aWdodCA9IHBjaF9nZXRfYmFja2xpZ2h0Owo+Pj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuYmFja2xp Z2h0X2h6X3RvX3B3bSA9IHBjaF9oel90b19wd207Cj4+PiAgIAl9IGVsc2UgaWYgKElTX1ZBTExF WVZJRVcoZGV2KSkgewo+Pj4gICAJCWlmIChkZXZfcHJpdi0+dmJ0Lmhhc19taXBpKSB7Cj4+PiAg IAkJCWRldl9wcml2LT5kaXNwbGF5LnNldHVwX2JhY2tsaWdodCA9IHB3bV9zZXR1cF9iYWNrbGln aHQ7Cj4+PiBAQCAtMTU0NCw2ICsxNjg3LDcgQEAgdm9pZCBpbnRlbF9wYW5lbF9pbml0X2JhY2ts aWdodF9mdW5jcyhzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+Pj4gICAJCQlkZXZfcHJpdi0+ZGlz cGxheS5kaXNhYmxlX2JhY2tsaWdodCA9IHZsdl9kaXNhYmxlX2JhY2tsaWdodDsKPj4+ICAgCQkJ ZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2JhY2tsaWdodCA9IHZsdl9zZXRfYmFja2xpZ2h0Owo+Pj4g ICAJCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfYmFja2xpZ2h0ID0gdmx2X2dldF9iYWNrbGlnaHQ7 Cj4+PiArCQkJZGV2X3ByaXYtPmRpc3BsYXkuYmFja2xpZ2h0X2h6X3RvX3B3bSA9IHZsdl9oel90 b19wd207Cj4+PiAgIAkJfQo+Pj4gICAJfSBlbHNlIGlmIChJU19HRU40KGRldikpIHsKPj4+ICAg CQlkZXZfcHJpdi0+ZGlzcGxheS5zZXR1cF9iYWNrbGlnaHQgPSBpOTY1X3NldHVwX2JhY2tsaWdo dDsKPj4+IEBAIC0xNTUxLDEyICsxNjk1LDE0IEBAIHZvaWQgaW50ZWxfcGFuZWxfaW5pdF9iYWNr bGlnaHRfZnVuY3Moc3RydWN0IGRybV9kZXZpY2UgKmRldikKPj4+ICAgCQlkZXZfcHJpdi0+ZGlz cGxheS5kaXNhYmxlX2JhY2tsaWdodCA9IGk5NjVfZGlzYWJsZV9iYWNrbGlnaHQ7Cj4+PiAgIAkJ ZGV2X3ByaXYtPmRpc3BsYXkuc2V0X2JhY2tsaWdodCA9IGk5eHhfc2V0X2JhY2tsaWdodDsKPj4+ ICAgCQlkZXZfcHJpdi0+ZGlzcGxheS5nZXRfYmFja2xpZ2h0ID0gaTl4eF9nZXRfYmFja2xpZ2h0 Owo+Pj4gKwkJZGV2X3ByaXYtPmRpc3BsYXkuYmFja2xpZ2h0X2h6X3RvX3B3bSA9IGk5NjVfaHpf dG9fcHdtOwo+Pj4gICAJfSBlbHNlIHsKPj4+ICAgCQlkZXZfcHJpdi0+ZGlzcGxheS5zZXR1cF9i YWNrbGlnaHQgPSBpOXh4X3NldHVwX2JhY2tsaWdodDsKPj4+ICAgCQlkZXZfcHJpdi0+ZGlzcGxh eS5lbmFibGVfYmFja2xpZ2h0ID0gaTl4eF9lbmFibGVfYmFja2xpZ2h0Owo+Pj4gICAJCWRldl9w cml2LT5kaXNwbGF5LmRpc2FibGVfYmFja2xpZ2h0ID0gaTl4eF9kaXNhYmxlX2JhY2tsaWdodDsK Pj4+ICAgCQlkZXZfcHJpdi0+ZGlzcGxheS5zZXRfYmFja2xpZ2h0ID0gaTl4eF9zZXRfYmFja2xp Z2h0Owo+Pj4gICAJCWRldl9wcml2LT5kaXNwbGF5LmdldF9iYWNrbGlnaHQgPSBpOXh4X2dldF9i YWNrbGlnaHQ7Cj4+PiArCQlkZXZfcHJpdi0+ZGlzcGxheS5iYWNrbGlnaHRfaHpfdG9fcHdtID0g aTl4eF9oel90b19wd207Cj4+PiAgIAl9Cj4+PiAgIH0KPj4+Cj4+Pgo+Pgo+Cj4gLS0gCj4gSmFu aSBOaWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCgotLSAKSmFuaSBO aWt1bGEsIEludGVsIE9wZW4gU291cmNlIFRlY2hub2xvZ3kgQ2VudGVyCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QK SW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==