From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 9DC136E301 for ; Thu, 28 Mar 2019 08:11:22 +0000 (UTC) From: Jani Nikula In-Reply-To: <20190327190337.729-1-ville.syrjala@linux.intel.com> References: <20190327190337.729-1-ville.syrjala@linux.intel.com> Date: Thu, 28 Mar 2019 10:14:02 +0200 Message-ID: <87r2ar2z79.fsf@intel.com> MIME-Version: 1.0 Subject: Re: [igt-dev] [PATCH i-g-t] Revert "lib/igt_device: Move intel_get_pci_device under igt_device" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: Ville Syrjala , igt-dev@lists.freedesktop.org List-ID: T24gV2VkLCAyNyBNYXIgMjAxOSwgVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFsYUBsaW51eC5p bnRlbC5jb20+IHdyb3RlOgo+IEZyb206IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBs aW51eC5pbnRlbC5jb20+Cj4KPiBPbmUgc2lnbmlmaWNhbnQgdXNlY2FzZSBmb3IgaW50ZWxfcmVn L2V0Yy4gaXMgdG8gYmUgYWJsZSB0byBleGFtaW5lCj4gdGhlIGhhcmR3YXJlIHN0YXRlICpiZWZv cmUqIGxvYWRpbmcgdGhlIGRyaXZlci4gSWYgdGhlIHRvb2wgZm9yY2VzCj4gdGhlIGRyaXZlciB0 byBsb2FkIHdlJ3ZlIHRvdGFsbHkgbG9zdCB0aGF0IGNhcGFiaWxpdHkuCgpBZ3JlZWQuCgpTdXJl LCBhZGQgaGVscGVycyB0byBtYWtlIHRoaW5ncyBlYXNpZXIgb3IgbW9yZSByb2J1c3QgZm9yIHRl c3RzIGluCmdlbmVyYWwsIGJ1dCBkbyBsZWF2ZSB0aGUgcGllY2VzIHNlcGFyYXRlLgoKQWNrZWQt Ynk6IEphbmkgTmlrdWxhIDxqYW5pLm5pa3VsYUBpbnRlbC5jb20+CgoKCgo+Cj4gVGhpcyByZXZl cnRzIGNvbW1pdCA4YWU4NjYyMWQ2ZmZmNjBiNmUyMGM2YjBmOWIzMzY3ODVjOTM1YjBmLgo+Cj4g Q2M6IE1pY2hhxYIgV2luaWFyc2tpIDxtaWNoYWwud2luaWFyc2tpQGludGVsLmNvbT4KPiBDYzog Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gU2lnbmVkLW9mZi1ieTog VmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiAtLS0KPiAg YmVuY2htYXJrcy9nZW1fbGF0ZW5jeS5jICAgICAgICB8ICAgNCArLQo+ICBiZW5jaG1hcmtzL2dl bV93c2ltLmMgICAgICAgICAgIHwgICA0ICstCj4gIGRlYnVnZ2VyL2RlYnVnX3JkYXRhLmMgICAg ICAgICAgfCAgIDcgKy0KPiAgZGVidWdnZXIvZXVkYi5jICAgICAgICAgICAgICAgICB8ICAgOCAr LS0KPiAgbGliL2lndF9kZXZpY2UuYyAgICAgICAgICAgICAgICB8IDEyMCAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQo+ICBsaWIvaWd0X2RldmljZS5oICAgICAgICAgICAgICAgIHwg ICAxIC0KPiAgbGliL2ludGVsX2NoaXBzZXQuYyAgICAgICAgICAgICB8ICA1MSArKysrKysrKysr KysrKwo+ICBsaWIvaW50ZWxfY2hpcHNldC5oICAgICAgICAgICAgIHwgICAxICsKPiAgbGliL2lu dGVsX21taW8uYyAgICAgICAgICAgICAgICB8ICAgNCArLQo+ICBsaWIvaW9jdGxfd3JhcHBlcnMu YyAgICAgICAgICAgIHwgICA1ICstCj4gIGxpYi9pb2N0bF93cmFwcGVycy5oICAgICAgICAgICAg fCAgIDIgKy0KPiAgdGVzdHMvaTkxNS9nZW1fY29uY3VycmVudF9hbGwuYyB8ICAxMiArKy0tCj4g IHRlc3RzL2k5MTUvZ2VtX2NwdV9yZWxvYy5jICAgICAgfCAgIDQgKy0KPiAgdGVzdHMvaTkxNS9n ZW1fZXhlY19sYXRlbmN5LmMgICB8ICAgMyArLQo+ICB0ZXN0cy9pOTE1L2dlbV9leGVjX3BhcnNl LmMgICAgIHwgICA0ICstCj4gIHRlc3RzL2k5MTUvZ2VtX21tYXAuYyAgICAgICAgICAgfCAgIDQg Ky0KPiAgdGVzdHMvaTkxNS9nZW1fbW1hcF9ndHQuYyAgICAgICB8ICAxMCArLS0KPiAgdGVzdHMv aTkxNS9nZW1fcHdyaXRlLmMgICAgICAgICB8ICAgNCArLQo+ICB0ZXN0cy9pOTE1L2dlbV9zaHJp bmsuYyAgICAgICAgIHwgICAyICstCj4gIHRlc3RzL2k5MTUvaTkxNV9wbV9scHNwLmMgICAgICAg fCAgIDMgKy0KPiAgdGVzdHMvaTkxNS9pOTE1X3BtX3JwbS5jICAgICAgICB8ICAgNCArLQo+ICB0 ZXN0cy9rbXNfZmxpcC5jICAgICAgICAgICAgICAgIHwgICAyICstCj4gIHRlc3RzL3ByaW1lX21t YXAuYyAgICAgICAgICAgICAgfCAgIDQgKy0KPiAgdG9vbHMvaW50ZWxfYXVkaW9fZHVtcC5jICAg ICAgICB8ICAgOSArLS0KPiAgdG9vbHMvaW50ZWxfYmFja2xpZ2h0LmMgICAgICAgICB8ICAgOCAr LS0KPiAgdG9vbHMvaW50ZWxfZGlzcGxheV9wb2xsZXIuYyAgICB8ICAgOCArLS0KPiAgdG9vbHMv aW50ZWxfZm9yY2V3YWtlZC5jICAgICAgICB8ICAxMCArLS0KPiAgdG9vbHMvaW50ZWxfZ3B1X3Rp bWUuYyAgICAgICAgICB8ICAgOCArLS0KPiAgdG9vbHMvaW50ZWxfZ3R0LmMgICAgICAgICAgICAg ICB8ICAgOCArLS0KPiAgdG9vbHMvaW50ZWxfaW5mb2ZyYW1lcy5jICAgICAgICB8ICAgNyArLQo+ ICB0b29scy9pbnRlbF9sM19wYXJpdHkuYyAgICAgICAgIHwgICAzICstCj4gIHRvb2xzL2ludGVs X2xpZC5jICAgICAgICAgICAgICAgfCAgIDkgKy0tCj4gIHRvb2xzL2ludGVsX3BhbmVsX2ZpdHRl ci5jICAgICAgfCAgIDggKy0tCj4gIHRvb2xzL2ludGVsX3BlcmZfY291bnRlcnMuYyAgICAgfCAg IDMgKy0KPiAgdG9vbHMvaW50ZWxfcmVnLmMgICAgICAgICAgICAgICB8ICAyMyArKystLS0KPiAg dG9vbHMvaW50ZWxfcmVnX2NoZWNrZXIuYyAgICAgICB8ICAgOCArLS0KPiAgdG9vbHMvaW50ZWxf d2F0ZXJtYXJrLmMgICAgICAgICB8ICAyMyArKystLS0KPiAgMzcgZmlsZXMgY2hhbmdlZCwgMTMx IGluc2VydGlvbnMoKyksIDI2NyBkZWxldGlvbnMoLSkKPgo+IGRpZmYgLS1naXQgYS9iZW5jaG1h cmtzL2dlbV9sYXRlbmN5LmMgYi9iZW5jaG1hcmtzL2dlbV9sYXRlbmN5LmMKPiBpbmRleCBhMjBi YmY4YTMxMGUuLmMzZmM0YmYwZjc0YyAxMDA2NDQKPiAtLS0gYS9iZW5jaG1hcmtzL2dlbV9sYXRl bmN5LmMKPiArKysgYi9iZW5jaG1hcmtzL2dlbV9sYXRlbmN5LmMKPiBAQCAtNDQsOCArNDQsNiBA QAo+ICAjaW5jbHVkZSA8c3lzL3Jlc291cmNlLmg+Cj4gICNpbmNsdWRlICJkcm0uaCIKPiAgCj4g LSNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCj4gLQo+ICAjZGVmaW5lIExPQ0FMX0k5MTVfRVhFQ19G RU5DRV9JTiAgICAgICAgICAgICAgKDE8PDE2KQo+ICAjZGVmaW5lIExPQ0FMX0k5MTVfRVhFQ19G RU5DRV9PVVQgICAgICAgICAgICAgKDE8PDE3KQo+ICAKPiBAQCAtNDU4LDcgKzQ1Niw3IEBAIHN0 YXRpYyBpbnQgcnVuKGludCBzZWNvbmRzLAo+ICAJaWYgKGdlbiA8IDYpCj4gIAkJcmV0dXJuIElH VF9FWElUX1NLSVA7IC8qIE5lZWRzIEJDUyB0aW1lc3RhbXAgKi8KPiAgCj4gLQlpbnRlbF9yZWdp c3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKSwgZmFsc2UsIGZk KTsKPiArCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCks IGZhbHNlLCBmZCk7Cj4gIAo+ICAJaWYgKGdlbiA9PSA2KQo+ICAJCXRpbWVzdGFtcF9yZWcgPSBS RUcoUkNTX1RJTUVTVEFNUCk7Cj4gZGlmZiAtLWdpdCBhL2JlbmNobWFya3MvZ2VtX3dzaW0uYyBi L2JlbmNobWFya3MvZ2VtX3dzaW0uYwo+IGluZGV4IDIxZTI2Njg2ODVjMC4uYWZiOTY0NGRkN2Yw IDEwMDY0NAo+IC0tLSBhL2JlbmNobWFya3MvZ2VtX3dzaW0uYwo+ICsrKyBiL2JlbmNobWFya3Mv Z2VtX3dzaW0uYwo+IEBAIC00MSw2ICs0MSw3IEBACj4gICNpbmNsdWRlIDxsaW1pdHMuaD4KPiAg I2luY2x1ZGUgPHB0aHJlYWQuaD4KPiAgCj4gKwo+ICAjaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5o Igo+ICAjaW5jbHVkZSAiaW50ZWxfcmVnLmgiCj4gICNpbmNsdWRlICJkcm0uaCIKPiBAQCAtNDks NyArNTAsNiBAQAo+ICAKPiAgI2luY2x1ZGUgImludGVsX2lvLmgiCj4gICNpbmNsdWRlICJpZ3Rf YXV4LmgiCj4gLSNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCj4gICNpbmNsdWRlICJpZ3RfcmFuZC5o Igo+ICAjaW5jbHVkZSAiaWd0X3BlcmYuaCIKPiAgI2luY2x1ZGUgInN3X3N5bmMuaCIKPiBAQCAt MjIyMyw3ICsyMjIzLDcgQEAgc3RhdGljIHZvaWQgaW5pdF9jbG9ja3Modm9pZCkKPiAgCXVpbnQz Ml90IHJjc19zdGFydCwgcmNzX2VuZDsKPiAgCWRvdWJsZSBvdmVyaGVhZCwgdDsKPiAgCj4gLQlp bnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKSwg ZmFsc2UsIGZkKTsKPiArCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lf ZGV2aWNlKCksIGZhbHNlLCBmZCk7Cj4gIAo+ICAJaWYgKHZlcmJvc2UgPD0gMSkKPiAgCQlyZXR1 cm47Cj4gZGlmZiAtLWdpdCBhL2RlYnVnZ2VyL2RlYnVnX3JkYXRhLmMgYi9kZWJ1Z2dlci9kZWJ1 Z19yZGF0YS5jCj4gaW5kZXggZmVhOTUwMjk2NTM5Li42MWQ4MmQ5ZTUxYWQgMTAwNjQ0Cj4gLS0t IGEvZGVidWdnZXIvZGVidWdfcmRhdGEuYwo+ICsrKyBiL2RlYnVnZ2VyL2RlYnVnX3JkYXRhLmMK PiBAQCAtMjksNiArMjksNyBAQAo+ICAjaW5jbHVkZSA8c3RkaW8uaD4KPiAgI2luY2x1ZGUgPHN0 ZGxpYi5oPgo+ICAjaW5jbHVkZSAiaW50ZWxfaW8uaCIKPiArI2luY2x1ZGUgImludGVsX2NoaXBz ZXQuaCIKPiAgCj4gIHN0cnVjdCBldV9yZGF0YSB7Cj4gIAl1bmlvbiB7Cj4gQEAgLTEzMiwxMSAr MTMzLDcgQEAgZmluZF9zdHVja190aHJlYWRzKHZvaWQpCj4gIAo+ICBpbnQgbWFpbihpbnQgYXJn YywgY2hhciAqYXJndltdKSB7Cj4gIAlzdHJ1Y3QgcGNpX2RldmljZSAqcGNpX2RldjsKPiAtCWlu dCBmZDsKPiAtCj4gLQlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwo+IC0JcGNp X2RldiA9IGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZmQpOwo+IC0JY2xvc2UoZmQpOwo+ICsJ cGNpX2RldiA9IGludGVsX2dldF9wY2lfZGV2aWNlKCk7Cj4gIAo+ICAJaW50ZWxfcmVnaXN0ZXJf YWNjZXNzX2luaXQocGNpX2RldiwgMSk7Cj4gIAlmaW5kX3N0dWNrX3RocmVhZHMoKTsKPiBkaWZm IC0tZ2l0IGEvZGVidWdnZXIvZXVkYi5jIGIvZGVidWdnZXIvZXVkYi5jCj4gaW5kZXggYjU3ODQx NDg2NjRlLi44NjZkNGI1MjRlZDQgMTAwNjQ0Cj4gLS0tIGEvZGVidWdnZXIvZXVkYi5jCj4gKysr IGIvZGVidWdnZXIvZXVkYi5jCj4gQEAgLTQyLDYgKzQyLDcgQEAKPiAgI2luY2x1ZGUgImRybS5o Igo+ICAjaW5jbHVkZSAiaTkxNV9kcm0uaCIKPiAgI2luY2x1ZGUgImRybXRlc3QuaCIKPiArI2lu Y2x1ZGUgImludGVsX2NoaXBzZXQuaCIKPiAgI2luY2x1ZGUgImludGVsX2J1Zm1nci5oIgo+ICAj aW5jbHVkZSAiaW50ZWxfaW8uaCIKPiAgI2luY2x1ZGUgImludGVsX2JhdGNoYnVmZmVyLmgiCj4g QEAgLTUwNSw3ICs1MDYsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7Cj4g IAlzdHJ1Y3QgcGNpX2RldmljZSAqcGNpX2RldjsKPiAgCXZvbGF0aWxlIHVpbnQ4X3QgKnNjcmF0 Y2ggPSBOVUxMOwo+ICAJaW50IGJpdHNbNjRdOwo+IC0JaW50IGRldmlkID0gLTEsIG9wdCwgZmQ7 Cj4gKwlpbnQgZGV2aWQgPSAtMSwgb3B0Owo+ICAKPiAgCXdoaWxlICgob3B0ID0gZ2V0b3B0KGFy Z2MsIGFyZ3YsICJjZHI6cGY/aCIpKSAhPSAtMSkgewo+ICAJCXN3aXRjaCAob3B0KSB7Cj4gQEAg LTUzMiwxMCArNTMzLDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkgewo+ICAJ CX0KPiAgCX0KPiAgCj4gLQlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwo+IC0J cGNpX2RldiA9IGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZmQpOwo+IC0JY2xvc2UoZmQpOwo+ IC0KPiArCXBjaV9kZXYgPSBpbnRlbF9nZXRfcGNpX2RldmljZSgpOwo+ICAJaWYgKGRldmlkID09 IC0xKQo+ICAJCWRldmlkID0gcGNpX2Rldi0+ZGV2aWNlX2lkOwo+ICAJaWYgKGlkZW50aWZ5X2Rl dmljZShkZXZpZCkpIHsKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9kZXZpY2UuYyBiL2xpYi9pZ3Rf ZGV2aWNlLmMKPiBpbmRleCBhMmY5YmIzYWZjMTYuLjA4ZjM5YzhiMTYwNSAxMDA2NDQKPiAtLS0g YS9saWIvaWd0X2RldmljZS5jCj4gKysrIGIvbGliL2lndF9kZXZpY2UuYwo+IEBAIC0yNiw3ICsy Niw2IEBACj4gICNpbmNsdWRlIDxzeXMvc3lzbWFjcm9zLmg+Cj4gICNpbmNsdWRlICJpZ3QuaCIK PiAgI2luY2x1ZGUgImlndF9kZXZpY2UuaCIKPiAtI2luY2x1ZGUgImlndF9zeXNmcy5oIgo+ICAK PiAgaW50IF9faWd0X2RldmljZV9zZXRfbWFzdGVyKGludCBmZCkKPiAgewo+IEBAIC0xMDQsMTIy ICsxMDMsMyBAQCBpbnQgaWd0X2RldmljZV9nZXRfY2FyZF9pbmRleChpbnQgZmQpCj4gIAo+ICAJ cmV0dXJuIG1pbm9yKHN0LnN0X3JkZXYpOwo+ICB9Cj4gLQo+IC0jZGVmaW5lIElHVF9ERVZfUEFU SF9MRU4gODAKPiAtCj4gLXN0YXRpYyBib29sIGlndF9kZXZpY2VfaXNfcGNpKGludCBmZCkKPiAt ewo+IC0JY2hhciBwYXRoW0lHVF9ERVZfUEFUSF9MRU5dOwo+IC0JY2hhciAqc3Vic3lzdGVtOwo+ IC0JaW50IHN5c2ZzOwo+IC0JaW50IGxlbjsKPiAtCj4gLQlzeXNmcyA9IGlndF9zeXNmc19vcGVu KGZkKTsKPiAtCWlmIChzeXNmcyA9PSAtMSkKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gLQo+IC0JbGVu ID0gcmVhZGxpbmthdChzeXNmcywgImRldmljZS9zdWJzeXN0ZW0iLCBwYXRoLCBzaXplb2YocGF0 aCkgLSAxKTsKPiAtCWlmIChsZW4gPT0gLTEpCj4gLQkJcmV0dXJuIGZhbHNlOwo+IC0JcGF0aFts ZW5dID0gJ1wwJzsKPiAtCj4gLQlzdWJzeXN0ZW0gPSBzdHJyY2hyKHBhdGgsICcvJyk7Cj4gLQlp ZiAoIXN1YnN5c3RlbSkKPiAtCQlyZXR1cm4gZmFsc2U7Cj4gLQo+IC0JcmV0dXJuIHN0cmNtcChz dWJzeXN0ZW0sICIvcGNpIikgPT0gMDsKPiAtfQo+IC0KPiAtc3RydWN0IGlndF9wY2lfYWRkciB7 Cj4gLQl1bnNpZ25lZCBpbnQgZG9tYWluOwo+IC0JdW5zaWduZWQgaW50IGJ1czsKPiAtCXVuc2ln bmVkIGludCBkZXZpY2U7Cj4gLQl1bnNpZ25lZCBpbnQgZnVuY3Rpb247Cj4gLX07Cj4gLQo+IC1z dGF0aWMgaW50IGlndF9kZXZpY2VfZ2V0X3BjaV9hZGRyKGludCBmZCwgc3RydWN0IGlndF9wY2lf YWRkciAqcGNpKQo+IC17Cj4gLQljaGFyIHBhdGhbSUdUX0RFVl9QQVRIX0xFTl07Cj4gLQljaGFy ICpidWY7Cj4gLQlpbnQgc3lzZnM7Cj4gLQlpbnQgbGVuOwo+IC0KPiAtCWlmICghaWd0X2Rldmlj ZV9pc19wY2koZmQpKQo+IC0JCXJldHVybiAtRU5PREVWOwo+IC0KPiAtCXN5c2ZzID0gaWd0X3N5 c2ZzX29wZW4oZmQpOwo+IC0JaWYgKHN5c2ZzID09IC0xKQo+IC0JCXJldHVybiAtRU5PRU5UOwo+ IC0KPiAtCWxlbiA9IHJlYWRsaW5rYXQoc3lzZnMsICJkZXZpY2UiLCBwYXRoLCBzaXplb2YocGF0 aCkgLSAxKTsKPiAtCWlmIChsZW4gPT0gLTEpCj4gLQkJcmV0dXJuIC1FTk9FTlQ7Cj4gLQlwYXRo W2xlbl0gPSAnXDAnOwo+IC0KPiAtCWJ1ZiA9IHN0cnJjaHIocGF0aCwgJy8nKTsKPiAtCWlmICgh YnVmKQo+IC0JCXJldHVybiAtRU5PRU5UOwo+IC0KPiAtCWlmIChzc2NhbmYoYnVmLCAiLyU0eDol Mng6JTJ4LiUyeCIsCj4gLQkJICAgJnBjaS0+ZG9tYWluLCAmcGNpLT5idXMsCj4gLQkJICAgJnBj aS0+ZGV2aWNlLCAmcGNpLT5mdW5jdGlvbikgIT0gNCkgewo+IC0JCWlndF93YXJuKCJVbmFibGUg dG8gZXh0cmFjdCBQQ0kgZGV2aWNlIGFkZHJlc3MgZnJvbSAnJXMnXG4iLCBidWYpOwo+IC0JCXJl dHVybiAtRU5PRU5UOwo+IC0JfQo+IC0KPiAtCXJldHVybiAwOwo+IC19Cj4gLQo+IC1zdGF0aWMg c3RydWN0IHBjaV9kZXZpY2UgKl9faWd0X2RldmljZV9nZXRfcGNpX2RldmljZShpbnQgZmQpCj4g LXsKPiAtCXN0cnVjdCBpZ3RfcGNpX2FkZHIgcGNpX2FkZHI7Cj4gLQlzdHJ1Y3QgcGNpX2Rldmlj ZSAqcGNpX2RldjsKPiAtCj4gLQlpZiAoaWd0X2RldmljZV9nZXRfcGNpX2FkZHIoZmQsICZwY2lf YWRkcikpIHsKPiAtCQlpZ3Rfd2FybigiVW5hYmxlIHRvIGZpbmQgZGV2aWNlIFBDSSBhZGRyZXNz XG4iKTsKPiAtCQlyZXR1cm4gTlVMTDsKPiAtCX0KPiAtCj4gLQlpZiAocGNpX3N5c3RlbV9pbml0 KCkpIHsKPiAtCQlpZ3Rfd2FybigiQ291bGRuJ3QgaW5pdGlhbGl6ZSBQQ0kgc3lzdGVtXG4iKTsK PiAtCQlyZXR1cm4gTlVMTDsKPiAtCX0KPiAtCj4gLQlwY2lfZGV2ID0gcGNpX2RldmljZV9maW5k X2J5X3Nsb3QocGNpX2FkZHIuZG9tYWluLAo+IC0JCQkJCSAgcGNpX2FkZHIuYnVzLAo+IC0JCQkJ CSAgcGNpX2FkZHIuZGV2aWNlLAo+IC0JCQkJCSAgcGNpX2FkZHIuZnVuY3Rpb24pOwo+IC0JaWYg KCFwY2lfZGV2KSB7Cj4gLQkJaWd0X3dhcm4oIkNvdWxkbid0IGZpbmQgUENJIGRldmljZSAlMDR4 OiUwMng6JTAyeDolMDJ4XG4iLAo+IC0JCQkgcGNpX2FkZHIuZG9tYWluLCBwY2lfYWRkci5idXMs Cj4gLQkJCSBwY2lfYWRkci5kZXZpY2UsIHBjaV9hZGRyLmZ1bmN0aW9uKTsKPiAtCQlyZXR1cm4g TlVMTDsKPiAtCX0KPiAtCj4gLQlpZiAocGNpX2RldmljZV9wcm9iZShwY2lfZGV2KSkgewo+IC0J CWlndF93YXJuKCJDb3VsZG4ndCBwcm9iZSBQQ0kgZGV2aWNlXG4iKTsKPiAtCQlyZXR1cm4gTlVM TDsKPiAtCX0KPiAtCj4gLQlyZXR1cm4gcGNpX2RldjsKPiAtfQo+IC0KPiAtLyoqCj4gLSAqIGln dF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2U6Cj4gLSAqCj4gLSAqIEBmZDogdGhlIGRldmljZQo+IC0g Kgo+IC0gKiBMb29rcyB1cCB0aGUgbWFpbiBncmFwaGljcyBwY2kgZGV2aWNlIHVzaW5nIGxpYnBj aWFjY2Vzcy4KPiAtICoKPiAtICogUmV0dXJuczoKPiAtICogVGhlIHBjaV9kZXZpY2UsIHNraXBz IHRoZSB0ZXN0IG9uIGFueSBmYWlsdXJlcy4KPiAtICovCj4gLXN0cnVjdCBwY2lfZGV2aWNlICpp Z3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGludCBmZCkKPiAtewo+IC0Jc3RydWN0IHBjaV9kZXZp Y2UgKnBjaV9kZXY7Cj4gLQo+IC0JcGNpX2RldiA9IF9faWd0X2RldmljZV9nZXRfcGNpX2Rldmlj ZShmZCk7Cj4gLQlpZ3RfcmVxdWlyZShwY2lfZGV2KTsKPiAtCj4gLQlyZXR1cm4gcGNpX2RldjsK PiAtfQo+IGRpZmYgLS1naXQgYS9saWIvaWd0X2RldmljZS5oIGIvbGliL2lndF9kZXZpY2UuaAo+ IGluZGV4IDI3OGJhN2E5YjM4MC4uOWQ3ZGMyYzM5MmNiIDEwMDY0NAo+IC0tLSBhL2xpYi9pZ3Rf ZGV2aWNlLmgKPiArKysgYi9saWIvaWd0X2RldmljZS5oCj4gQEAgLTMyLDYgKzMyLDUgQEAgaW50 IF9faWd0X2RldmljZV9kcm9wX21hc3RlcihpbnQgZmQpOwo+ICB2b2lkIGlndF9kZXZpY2VfZHJv cF9tYXN0ZXIoaW50IGZkKTsKPiAgCj4gIGludCBpZ3RfZGV2aWNlX2dldF9jYXJkX2luZGV4KGlu dCBmZCk7Cj4gLXN0cnVjdCBwY2lfZGV2aWNlICppZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGlu dCBmZCk7Cj4gIAo+ICAjZW5kaWYgLyogX19JR1RfREVWSUNFX0hfXyAqLwo+IGRpZmYgLS1naXQg YS9saWIvaW50ZWxfY2hpcHNldC5jIGIvbGliL2ludGVsX2NoaXBzZXQuYwo+IGluZGV4IDA1Nzdm NzdhNDkwZC4uNDc0OGEzZmI4NTNiIDEwMDY0NAo+IC0tLSBhL2xpYi9pbnRlbF9jaGlwc2V0LmMK PiArKysgYi9saWIvaW50ZWxfY2hpcHNldC5jCj4gQEAgLTYxLDYgKzYxLDU3IEBACj4gICAqLwo+ ICBlbnVtIHBjaF90eXBlIGludGVsX3BjaDsKPiAgCj4gKy8qKgo+ICsgKiBpbnRlbF9nZXRfcGNp X2RldmljZToKPiArICoKPiArICogTG9va3MgdXAgdGhlIG1haW4gZ3JhcGhpY3MgcGNpIGRldmlj ZSB1c2luZyBsaWJwY2lhY2Nlc3MuCj4gKyAqCj4gKyAqIFJldHVybnM6Cj4gKyAqIFRoZSBwY2lf ZGV2aWNlLCBleGl0cyB0aGUgcHJvZ3JhbSBvbiBhbnkgZmFpbHVyZXMuCj4gKyAqLwo+ICtzdHJ1 Y3QgcGNpX2RldmljZSAqCj4gK2ludGVsX2dldF9wY2lfZGV2aWNlKHZvaWQpCj4gK3sKPiArCXN0 cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2Owo+ICsJaW50IGVycm9yOwo+ICsKPiArCWVycm9yID0g cGNpX3N5c3RlbV9pbml0KCk7Cj4gKwlpZ3RfZmFpbF9vbl9mKGVycm9yICE9IDAsCj4gKwkJICAg ICAgIkNvdWxkbid0IGluaXRpYWxpemUgUENJIHN5c3RlbVxuIik7Cj4gKwo+ICsJLyogR3JhYiB0 aGUgZ3JhcGhpY3MgY2FyZC4gVHJ5IHRoZSBjYW5vbmljYWwgc2xvdCBmaXJzdCwgdGhlbgo+ICsJ ICogd2FsayB0aGUgZW50aXJlIFBDSSBidXMgZm9yIGEgbWF0Y2hpbmcgZGV2aWNlLiAqLwo+ICsJ cGNpX2RldiA9IHBjaV9kZXZpY2VfZmluZF9ieV9zbG90KDAsIDAsIDIsIDApOwo+ICsJaWYgKHBj aV9kZXYgPT0gTlVMTCB8fCBwY2lfZGV2LT52ZW5kb3JfaWQgIT0gMHg4MDg2KSB7Cj4gKwkJc3Ry dWN0IHBjaV9kZXZpY2VfaXRlcmF0b3IgKml0ZXI7Cj4gKwkJc3RydWN0IHBjaV9pZF9tYXRjaCBt YXRjaDsKPiArCj4gKwkJbWF0Y2gudmVuZG9yX2lkID0gMHg4MDg2OyAvKiBJbnRlbCAqLwo+ICsJ CW1hdGNoLmRldmljZV9pZCA9IFBDSV9NQVRDSF9BTlk7Cj4gKwkJbWF0Y2guc3VidmVuZG9yX2lk ID0gUENJX01BVENIX0FOWTsKPiArCQltYXRjaC5zdWJkZXZpY2VfaWQgPSBQQ0lfTUFUQ0hfQU5Z Owo+ICsKPiArCQltYXRjaC5kZXZpY2VfY2xhc3MgPSAweDMgPDwgMTY7Cj4gKwkJbWF0Y2guZGV2 aWNlX2NsYXNzX21hc2sgPSAweGZmIDw8IDE2Owo+ICsKPiArCQltYXRjaC5tYXRjaF9kYXRhID0g MDsKPiArCj4gKwkJaXRlciA9IHBjaV9pZF9tYXRjaF9pdGVyYXRvcl9jcmVhdGUoJm1hdGNoKTsK PiArCQlwY2lfZGV2ID0gcGNpX2RldmljZV9uZXh0KGl0ZXIpOwo+ICsJCXBjaV9pdGVyYXRvcl9k ZXN0cm95KGl0ZXIpOwo+ICsJfQo+ICsJaWd0X3JlcXVpcmVfZihwY2lfZGV2LCAiQ291bGRuJ3Qg ZmluZCBJbnRlbCBncmFwaGljcyBjYXJkXG4iKTsKPiArCj4gKwllcnJvciA9IHBjaV9kZXZpY2Vf cHJvYmUocGNpX2Rldik7Cj4gKwlpZ3RfZmFpbF9vbl9mKGVycm9yICE9IDAsCj4gKwkJICAgICAg IkNvdWxkbid0IHByb2JlIGdyYXBoaWNzIGNhcmRcbiIpOwo+ICsKPiArCWlmIChwY2lfZGV2LT52 ZW5kb3JfaWQgIT0gMHg4MDg2KQo+ICsJCWVycngoMSwgIkdyYXBoaWNzIGNhcmQgaXMgbm9uLWlu dGVsIik7Cj4gKwo+ICsJcmV0dXJuIHBjaV9kZXY7Cj4gK30KPiArCj4gIC8qKgo+ICAgKiBpbnRl bF9nZXRfZHJtX2RldmlkOgo+ICAgKiBAZmQ6IG9wZW4gaTkxNSBkcm0gZmlsZSBkZXNjcmlwdG9y Cj4gZGlmZiAtLWdpdCBhL2xpYi9pbnRlbF9jaGlwc2V0LmggYi9saWIvaW50ZWxfY2hpcHNldC5o Cj4gaW5kZXggZGQzMWQzZmI2YmVmLi40MDE3MGI3YmYzMGYgMTAwNjQ0Cj4gLS0tIGEvbGliL2lu dGVsX2NoaXBzZXQuaAo+ICsrKyBiL2xpYi9pbnRlbF9jaGlwc2V0LmgKPiBAQCAtMzEsNiArMzEs NyBAQAo+ICAjaW5jbHVkZSA8cGNpYWNjZXNzLmg+Cj4gICNpbmNsdWRlIDxzdGRib29sLmg+Cj4g IAo+ICtzdHJ1Y3QgcGNpX2RldmljZSAqaW50ZWxfZ2V0X3BjaV9kZXZpY2Uodm9pZCk7Cj4gIHVp bnQzMl90IGludGVsX2dldF9kcm1fZGV2aWQoaW50IGZkKTsKPiAgCj4gIHN0cnVjdCBpbnRlbF9k ZXZpY2VfaW5mbyB7Cj4gZGlmZiAtLWdpdCBhL2xpYi9pbnRlbF9tbWlvLmMgYi9saWIvaW50ZWxf bW1pby5jCj4gaW5kZXggZjVlMGJlMGNlNTg2Li5hNTQ1OGFlYmFiZTIgMTAwNjQ0Cj4gLS0tIGEv bGliL2ludGVsX21taW8uYwo+ICsrKyBiL2xpYi9pbnRlbF9tbWlvLmMKPiBAQCAtMTEyLDcgKzEx Miw3IEBAIGludGVsX21taW9fdXNlX2R1bXBfZmlsZShjaGFyICpmaWxlKQo+ICAgKgo+ICAgKiBT ZXRzIHVwICNpZ3RfZ2xvYmFsX21taW8gdG8gcG9pbnQgYXQgdGhlIG1taW8gYmFyLgo+ICAgKgo+ IC0gKiBAcGNpX2RldiBjYW4gYmUgb2J0YWluZWQgZnJvbSBpZ3RfZGV2aWNlX2dldF9wY2lfZGV2 aWNlKCkuCj4gKyAqIEBwY2lfZGV2IGNhbiBiZSBvYnRhaW5lZCBmcm9tIGludGVsX2dldF9wY2lf ZGV2aWNlKCkuCj4gICAqLwo+ICB2b2lkCj4gIGludGVsX21taW9fdXNlX3BjaV9iYXIoc3RydWN0 IHBjaV9kZXZpY2UgKnBjaV9kZXYpCj4gQEAgLTE2Miw3ICsxNjIsNyBAQCByZWxlYXNlX2ZvcmNl d2FrZV9sb2NrKGludCBmZCkKPiAgICoKPiAgICogSXQgYWxzbyBpbml0aWFsaXplcyAjaWd0X2ds b2JhbF9tbWlvIGxpa2UgaW50ZWxfbW1pb191c2VfcGNpX2JhcigpLgo+ICAgKgo+IC0gKiBAcGNp X2RldiBjYW4gYmUgb2J0YWluZWQgZnJvbSBpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKCkuCj4g KyAqIEBwY2lfZGV2IGNhbiBiZSBvYnRhaW5lZCBmcm9tIGludGVsX2dldF9wY2lfZGV2aWNlKCku Cj4gICAqLwo+ICBpbnQKPiAgaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoc3RydWN0IHBjaV9k ZXZpY2UgKnBjaV9kZXYsIGludCBzYWZlLCBpbnQgZmQpCj4gZGlmZiAtLWdpdCBhL2xpYi9pb2N0 bF93cmFwcGVycy5jIGIvbGliL2lvY3RsX3dyYXBwZXJzLmMKPiBpbmRleCBhNjZlYjRiYzBmNGYu LjM5OTIwZjg3MDdkMiAxMDA2NDQKPiAtLS0gYS9saWIvaW9jdGxfd3JhcHBlcnMuYwo+ICsrKyBi L2xpYi9pb2N0bF93cmFwcGVycy5jCj4gQEAgLTUzLDcgKzUzLDYgQEAKPiAgI2luY2x1ZGUgImlu dGVsX2NoaXBzZXQuaCIKPiAgI2luY2x1ZGUgImludGVsX2lvLmgiCj4gICNpbmNsdWRlICJpZ3Rf ZGVidWdmcy5oIgo+IC0jaW5jbHVkZSAiaWd0X2RldmljZS5oIgo+ICAjaW5jbHVkZSAiaWd0X3N5 c2ZzLmgiCj4gICNpbmNsdWRlICJjb25maWcuaCIKPiAgCj4gQEAgLTEwOTcsOSArMTA5Niw5IEBA IHVpbnQ2NF90IGdlbV9hcGVydHVyZV9zaXplKGludCBmZCkKPiAgICoKPiAgICogUmV0dXJuczog VGhlIG1hcHBhYmxlIGd0dCBhZGRyZXNzIHNwYWNlIHNpemUuCj4gICAqLwo+IC11aW50NjRfdCBn ZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShpbnQgZmQpCj4gK3VpbnQ2NF90IGdlbV9tYXBwYWJs ZV9hcGVydHVyZV9zaXplKHZvaWQpCj4gIHsKPiAtCXN0cnVjdCBwY2lfZGV2aWNlICpwY2lfZGV2 ID0gaWd0X2RldmljZV9nZXRfcGNpX2RldmljZShmZCk7Cj4gKwlzdHJ1Y3QgcGNpX2RldmljZSAq cGNpX2RldiA9IGludGVsX2dldF9wY2lfZGV2aWNlKCk7Cj4gIAlpbnQgYmFyOwo+ICAKPiAgCWlm IChpbnRlbF9nZW4ocGNpX2Rldi0+ZGV2aWNlX2lkKSA8IDMpCj4gZGlmZiAtLWdpdCBhL2xpYi9p b2N0bF93cmFwcGVycy5oIGIvbGliL2lvY3RsX3dyYXBwZXJzLmgKPiBpbmRleCBhZDkzZGFmZmNm ZDUuLmYwYmUyNjA4MGRhNiAxMDA2NDQKPiAtLS0gYS9saWIvaW9jdGxfd3JhcHBlcnMuaAo+ICsr KyBiL2xpYi9pb2N0bF93cmFwcGVycy5oCj4gQEAgLTEzNiw3ICsxMzYsNyBAQCB1aW50NjRfdCBn ZW1fdG90YWxfc3RvbGVuX3NpemUoaW50IGZkKTsKPiAgdWludDY0X3QgZ2VtX2F2YWlsYWJsZV9h cGVydHVyZV9zaXplKGludCBmZCk7Cj4gIHVpbnQ2NF90IGdlbV9hcGVydHVyZV9zaXplKGludCBm ZCk7Cj4gIHVpbnQ2NF90IGdlbV9nbG9iYWxfYXBlcnR1cmVfc2l6ZShpbnQgZmQpOwo+IC11aW50 NjRfdCBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShpbnQgZmQpOwo+ICt1aW50NjRfdCBnZW1f bWFwcGFibGVfYXBlcnR1cmVfc2l6ZSh2b2lkKTsKPiAgYm9vbCBnZW1faGFzX3NvZnRwaW4oaW50 IGZkKTsKPiAgYm9vbCBnZW1faGFzX2V4ZWNfZmVuY2UoaW50IGZkKTsKPiAgCj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2k5MTUvZ2VtX2NvbmN1cnJlbnRfYWxsLmMgYi90ZXN0cy9pOTE1L2dlbV9jb25j dXJyZW50X2FsbC5jCj4gaW5kZXggZjcxOWIwYTE5YTgzLi42MDQ5MzcyZDFhNjEgMTAwNjQ0Cj4g LS0tIGEvdGVzdHMvaTkxNS9nZW1fY29uY3VycmVudF9hbGwuYwo+ICsrKyBiL3Rlc3RzL2k5MTUv Z2VtX2NvbmN1cnJlbnRfYWxsLmMKPiBAQCAtMTg1MCw3ICsxODUwLDcgQEAgaWd0X21haW4KPiAg CQkJCSBjLT5uYW1lLCBzLT5uYW1lLCAic21hbGwiKTsKPiAgCQkJaWd0X3N1YnRlc3RfZ3JvdXAg ewo+ICAJCQkJaWd0X2ZpeHR1cmUgewo+IC0JCQkJCWNvdW50ID0gbnVtX2J1ZmZlcnMoZ2VtX21h cHBhYmxlX2FwZXJ0dXJlX3NpemUoZmQpLzQsCj4gKwkJCQkJY291bnQgPSBudW1fYnVmZmVycyhn ZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpLzQsCj4gIAkJCQkJCQkgICAgcywgYywgQ0hFQ0tf UkFNKTsKPiAgCQkJCX0KPiAgCQkJCXJ1bl9tb2RlcyhuYW1lLCBjLCBtb2RlcywgcywgY291bnQp Owo+IEBAIC0xODYxLDcgKzE4NjEsNyBAQCBpZ3RfbWFpbgo+ICAJCQkJIGMtPm5hbWUsIHMtPm5h bWUsICJ0aHJhc2giKTsKPiAgCQkJaWd0X3N1YnRlc3RfZ3JvdXAgewo+ICAJCQkJaWd0X2ZpeHR1 cmUgewo+IC0JCQkJCWNvdW50ID0gbnVtX2J1ZmZlcnMoZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3Np emUoZmQpLAo+ICsJCQkJCWNvdW50ID0gbnVtX2J1ZmZlcnMoZ2VtX21hcHBhYmxlX2FwZXJ0dXJl X3NpemUoKSwKPiAgCQkJCQkJCSAgICBzLCBjLCBDSEVDS19SQU0pOwo+ICAJCQkJfQo+ICAJCQkJ cnVuX21vZGVzKG5hbWUsIGMsIG1vZGVzLCBzLCBjb3VudCk7Cj4gQEAgLTE4OTMsNyArMTg5Myw3 IEBAIGlndF9tYWluCj4gIAkJCQkgYy0+bmFtZSwgcy0+bmFtZSwgInNocmluayIpOwo+ICAJCQlp Z3Rfc3VidGVzdF9ncm91cCB7Cj4gIAkJCQlpZ3RfZml4dHVyZSB7Cj4gLQkJCQkJY291bnQgPSBu dW1fYnVmZmVycyhnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCksCj4gKwkJCQkJY291bnQg PSBudW1fYnVmZmVycyhnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpLAo+ICAJCQkJCQkJICAg IHMsIGMsIENIRUNLX1JBTSk7Cj4gIAo+ICAJCQkJCWlndF9mb3JrX3Nocmlua19oZWxwZXIoZmQp Owo+IEBAIC0xOTA5LDggKzE5MDksOCBAQCBpZ3RfbWFpbgo+ICAJCQkJIGMtPm5hbWUsIHMtPm5h bWUsICJzd2FwIik7Cj4gIAkJCWlndF9zdWJ0ZXN0X2dyb3VwIHsKPiAgCQkJCWlndF9maXh0dXJl IHsKPiAtCQkJCQlpZiAoaW50ZWxfZ2V0X2F2YWlsX3JhbV9tYigpID4gZ2VtX21hcHBhYmxlX2Fw ZXJ0dXJlX3NpemUoZmQpLygxMDI0KjEwMjQpKSB7Cj4gLQkJCQkJCXBpbl9zeiA9IGludGVsX2dl dF9hdmFpbF9yYW1fbWIoKSAtIGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKGZkKS8oMTAyNCox MDI0KTsKPiArCQkJCQlpZiAoaW50ZWxfZ2V0X2F2YWlsX3JhbV9tYigpID4gZ2VtX21hcHBhYmxl X2FwZXJ0dXJlX3NpemUoKS8oMTAyNCoxMDI0KSkgewo+ICsJCQkJCQlwaW5fc3ogPSBpbnRlbF9n ZXRfYXZhaWxfcmFtX21iKCkgLSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpLygxMDI0KjEw MjQpOwo+ICAKPiAgCQkJCQkJaWd0X2RlYnVnKCJQaW5uaW5nICVsbGQgTWlCXG4iLCAobG9uZyBs b25nKXBpbl9zeik7Cj4gIAkJCQkJCXBpbl9zeiAqPSAxMDI0ICogMTAyNDsKPiBAQCAtMTkyNCw3 ICsxOTI0LDcgQEAgaWd0X21haW4KPiAgCQkJCQkJaWd0X3JlcXVpcmUocGlubmVkKTsKPiAgCQkJ CQl9Cj4gIAo+IC0JCQkJCWNvdW50ID0gbnVtX2J1ZmZlcnMoZ2VtX21hcHBhYmxlX2FwZXJ0dXJl X3NpemUoZmQpLAo+ICsJCQkJCWNvdW50ID0gbnVtX2J1ZmZlcnMoZ2VtX21hcHBhYmxlX2FwZXJ0 dXJlX3NpemUoKSwKPiAgCQkJCQkJCSAgICBzLCBjLCBDSEVDS19SQU0gfCBDSEVDS19TV0FQKTsK PiAgCQkJCX0KPiAgCQkJCXJ1bl9tb2RlcyhuYW1lLCBjLCBtb2RlcywgcywgY291bnQpOwo+IGRp ZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9jcHVfcmVsb2MuYyBiL3Rlc3RzL2k5MTUvZ2VtX2Nw dV9yZWxvYy5jCj4gaW5kZXggMTdjMmZlMTE1NWRhLi40NzA5OTg2Mjg1M2UgMTAwNjQ0Cj4gLS0t IGEvdGVzdHMvaTkxNS9nZW1fY3B1X3JlbG9jLmMKPiArKysgYi90ZXN0cy9pOTE1L2dlbV9jcHVf cmVsb2MuYwo+IEBAIC0yODMsNyArMjgzLDcgQEAgaWd0X21haW4KPiAgCQlydW5fdGVzdChpOTE1 LCAxKTsKPiAgCj4gIAlpZ3Rfc3VidGVzdCgiZnVsbCIpIHsKPiAtCQl1aW50NjRfdCBhcGVyX3Np emUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShpOTE1KTsKPiArCQl1aW50NjRfdCBhcGVy X3NpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpOwo+ICAJCXVuc2lnbmVkIGxvbmcg Y291bnQgPSBhcGVyX3NpemUgLyA0MDk2ICsgMTsKPiAgCj4gIAkJaW50ZWxfcmVxdWlyZV9tZW1v cnkoY291bnQsIDQwOTYsIENIRUNLX1JBTSk7Cj4gQEAgLTI5Miw3ICsyOTIsNyBAQCBpZ3RfbWFp bgo+ICAJfQo+ICAKPiAgCWlndF9zdWJ0ZXN0KCJmb3JrZWQiKSB7Cj4gLQkJdWludDY0X3QgYXBl cl9zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoaTkxNSk7Cj4gKwkJdWludDY0X3Qg YXBlcl9zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoKTsKPiAgCQl1bnNpZ25lZCBs b25nIGNvdW50ID0gYXBlcl9zaXplIC8gNDA5NiArIDE7Cj4gIAkJaW50IG5jcHVzID0gc3lzY29u ZihfU0NfTlBST0NFU1NPUlNfT05MTik7Cj4gIAo+IGRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dl bV9leGVjX2xhdGVuY3kuYyBiL3Rlc3RzL2k5MTUvZ2VtX2V4ZWNfbGF0ZW5jeS5jCj4gaW5kZXgg ZjMwOGUwODUxYzg2Li42ZGQxOTFlY2VlMjEgMTAwNjQ0Cj4gLS0tIGEvdGVzdHMvaTkxNS9nZW1f ZXhlY19sYXRlbmN5LmMKPiArKysgYi90ZXN0cy9pOTE1L2dlbV9leGVjX2xhdGVuY3kuYwo+IEBA IC00MCw3ICs0MCw2IEBACj4gIAo+ICAjaW5jbHVkZSAiZHJtLmgiCj4gIAo+IC0jaW5jbHVkZSAi aWd0X2RldmljZS5oIgo+ICAjaW5jbHVkZSAiaWd0X3N5c2ZzLmgiCj4gICNpbmNsdWRlICJpZ3Rf dmdlbS5oIgo+ICAjaW5jbHVkZSAiaWd0X2R1bW15bG9hZC5oIgo+IEBAIC02ODAsNyArNjc5LDcg QEAgaWd0X21haW4KPiAgCQlpZiAocmluZ19zaXplID4gMTAyNCkKPiAgCQkJcmluZ19zaXplID0g MTAyNDsKPiAgCj4gLQkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaWd0X2RldmljZV9nZXRf cGNpX2RldmljZShkZXZpY2UpLCBmYWxzZSwgZGV2aWNlKTsKPiArCQlpbnRlbF9yZWdpc3Rlcl9h Y2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCBmYWxzZSwgZGV2aWNlKTsKPiAgCQly Y3NfY2xvY2sgPSBjbG9ja3JhdGUoZGV2aWNlLCBSQ1NfVElNRVNUQU1QKTsKPiAgCQlpZ3RfaW5m bygiUkNTIHRpbWVzdGFtcCBjbG9jazogJS4wZktIeiwgJS4xZm5zXG4iLAo+ICAJCQkgcmNzX2Ns b2NrIC8gMWUzLCAxZTkgLyByY3NfY2xvY2spOwo+IGRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dl bV9leGVjX3BhcnNlLmMgYi90ZXN0cy9pOTE1L2dlbV9leGVjX3BhcnNlLmMKPiBpbmRleCBkM2I4 NDhlMmExMDYuLjYyZThkMGE1MWQwYiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pOTE1L2dlbV9leGVj X3BhcnNlLmMKPiArKysgYi90ZXN0cy9pOTE1L2dlbV9leGVjX3BhcnNlLmMKPiBAQCAtMzAsOCAr MzAsNiBAQAo+ICAKPiAgI2luY2x1ZGUgPGRybS5oPgo+ICAKPiAtI2luY2x1ZGUgImlndF9kZXZp Y2UuaCIKPiAtCj4gICNpZm5kZWYgSTkxNV9QQVJBTV9DTURfUEFSU0VSX1ZFUlNJT04KPiAgI2Rl ZmluZSBJOTE1X1BBUkFNX0NNRF9QQVJTRVJfVkVSU0lPTiAgICAgICAyOAo+ICAjZW5kaWYKPiBA QCAtNTMyLDcgKzUzMCw3IEBAIGlndF9tYWluCj4gICN1bmRlZiBSRUcKPiAgCj4gIAkJaWd0X2Zp eHR1cmUgewo+IC0JCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dldF9w Y2lfZGV2aWNlKGZkKSwgMCwgZmQpOwo+ICsJCQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChp bnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCBmZCk7Cj4gIAkJfQo+ICAKPiAgCQlmb3IgKGludCBp ID0gMDsgaSA8IEFSUkFZX1NJWkUobHJpcyk7IGkrKykgewo+IGRpZmYgLS1naXQgYS90ZXN0cy9p OTE1L2dlbV9tbWFwLmMgYi90ZXN0cy9pOTE1L2dlbV9tbWFwLmMKPiBpbmRleCAyMjdhZTdjYTc0 MmIuLjFmNTM0OGQ5MTMzYiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pOTE1L2dlbV9tbWFwLmMKPiAr KysgYi90ZXN0cy9pOTE1L2dlbV9tbWFwLmMKPiBAQCAtNTMsMTAgKzUzLDEwIEBAIHRlc3RfaHVn ZV9ibyhpbnQgaHVnZSkKPiAgCj4gIAlzd2l0Y2ggKGh1Z2UpIHsKPiAgCWNhc2UgLTE6Cj4gLQkJ aHVnZV9vYmplY3Rfc2l6ZSA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKGZkKSAvIDI7Cj4g KwkJaHVnZV9vYmplY3Rfc2l6ZSA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKCkgLyAyOwo+ ICAJCWJyZWFrOwo+ICAJY2FzZSAwOgo+IC0JCWh1Z2Vfb2JqZWN0X3NpemUgPSBnZW1fbWFwcGFi bGVfYXBlcnR1cmVfc2l6ZShmZCkgKyBQQUdFX1NJWkU7Cj4gKwkJaHVnZV9vYmplY3Rfc2l6ZSA9 IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKCkgKyBQQUdFX1NJWkU7Cj4gIAkJYnJlYWs7Cj4g IAljYXNlIDE6Cj4gIAkJaHVnZV9vYmplY3Rfc2l6ZSA9IGdlbV9hcGVydHVyZV9zaXplKGZkKSAr IFBBR0VfU0laRTsKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvaTkxNS9nZW1fbW1hcF9ndHQuYyBiL3Rl c3RzL2k5MTUvZ2VtX21tYXBfZ3R0LmMKPiBpbmRleCA2MzlkZTE5MDIxNjguLjU4OTIyZWUzMjc1 MiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pOTE1L2dlbV9tbWFwX2d0dC5jCj4gKysrIGIvdGVzdHMv aTkxNS9nZW1fbW1hcF9ndHQuYwo+IEBAIC01NjIsNyArNTYyLDcgQEAgdGVzdF9odWdlX2JvKGlu dCBmZCwgaW50IGh1Z2UsIGludCB0aWxpbmcpCj4gIAo+ICAJc3dpdGNoIChodWdlKSB7Cj4gIAlj YXNlIC0xOgo+IC0JCXNpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCkgLyAyOwo+ ICsJCXNpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpIC8gMjsKPiAgCj4gIAkJLyog UG93ZXIgb2YgdHdvIGZlbmNlIHNpemUsIG5hdHVyYWwgZmVuY2UKPiAgCQkgKiBhbGlnbm1lbnQs IGFuZCB0aGUgZ3VhcmQgcGFnZSBhdCB0aGUgZW5kCj4gQEAgLTU3Nyw3ICs1NzcsNyBAQCB0ZXN0 X2h1Z2VfYm8oaW50IGZkLCBpbnQgaHVnZSwgaW50IHRpbGluZykKPiAgCQkJc2l6ZSAvPSAyOwo+ ICAJCWJyZWFrOwo+ICAJY2FzZSAwOgo+IC0JCXNpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVf c2l6ZShmZCkgKyBQQUdFX1NJWkU7Cj4gKwkJc2l6ZSA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9z aXplKCkgKyBQQUdFX1NJWkU7Cj4gIAkJYnJlYWs7Cj4gIAlkZWZhdWx0Ogo+ICAJCXNpemUgPSBn ZW1fZ2xvYmFsX2FwZXJ0dXJlX3NpemUoZmQpICsgUEFHRV9TSVpFOwo+IEBAIC02NTgsMTMgKzY1 OCwxMyBAQCB0ZXN0X2h1Z2VfY29weShpbnQgZmQsIGludCBodWdlLCBpbnQgdGlsaW5nX2EsIGlu dCB0aWxpbmdfYiwgaW50IG5jcHVzKQo+ICAKPiAgCXN3aXRjaCAoaHVnZSkgewo+ICAJY2FzZSAt MjoKPiAtCQlodWdlX29iamVjdF9zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoZmQp IC8gNDsKPiArCQlodWdlX29iamVjdF9zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUo KSAvIDQ7Cj4gIAkJYnJlYWs7Cj4gIAljYXNlIC0xOgo+IC0JCWh1Z2Vfb2JqZWN0X3NpemUgPSBn ZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCkgLyAyOwo+ICsJCWh1Z2Vfb2JqZWN0X3NpemUg PSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpIC8gMjsKPiAgCQlicmVhazsKPiAgCWNhc2Ug MDoKPiAtCQlodWdlX29iamVjdF9zaXplID0gZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoZmQp ICsgUEFHRV9TSVpFOwo+ICsJCWh1Z2Vfb2JqZWN0X3NpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1 cmVfc2l6ZSgpICsgUEFHRV9TSVpFOwo+ICAJCWJyZWFrOwo+ICAJY2FzZSAxOgo+ICAJCWh1Z2Vf b2JqZWN0X3NpemUgPSBnZW1fZ2xvYmFsX2FwZXJ0dXJlX3NpemUoZmQpICsgUEFHRV9TSVpFOwo+ IGRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2dlbV9wd3JpdGUuYyBiL3Rlc3RzL2k5MTUvZ2VtX3B3 cml0ZS5jCj4gaW5kZXggNWNhZTEyMWE3Mzg0Li42OTZiZDMxNmFiN2MgMTAwNjQ0Cj4gLS0tIGEv dGVzdHMvaTkxNS9nZW1fcHdyaXRlLmMKPiArKysgYi90ZXN0cy9pOTE1L2dlbV9wd3JpdGUuYwo+ IEBAIC04OSw3ICs4OSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RfYmlnX2NwdShpbnQgZmQsIGludCBz Y2FsZSwgdW5zaWduZWQgZmxhZ3MpCj4gIAo+ICAJc3dpdGNoIChzY2FsZSkgewo+ICAJY2FzZSAw Ogo+IC0JCXNpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCkgKyA0MDk2Owo+ICsJ CXNpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpICsgNDA5NjsKPiAgCQlicmVhazsK PiAgCWNhc2UgMToKPiAgCQlzaXplID0gZ2VtX2dsb2JhbF9hcGVydHVyZV9zaXplKGZkKSArIDQw OTY7Cj4gQEAgLTE1MSw3ICsxNTEsNyBAQCBzdGF0aWMgdm9pZCB0ZXN0X2JpZ19ndHQoaW50IGZk LCBpbnQgc2NhbGUsIHVuc2lnbmVkIGZsYWdzKQo+ICAJaWd0X3JlcXVpcmUoZ2VtX21tYXBfX2hh c193YyhmZCkpOwo+ICAJc3dpdGNoIChzY2FsZSkgewo+ICAJY2FzZSAwOgo+IC0JCXNpemUgPSBn ZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCkgKyA0MDk2Owo+ICsJCXNpemUgPSBnZW1fbWFw cGFibGVfYXBlcnR1cmVfc2l6ZSgpICsgNDA5NjsKPiAgCQlicmVhazsKPiAgCWNhc2UgMToKPiAg CQlzaXplID0gZ2VtX2dsb2JhbF9hcGVydHVyZV9zaXplKGZkKSArIDQwOTY7Cj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2k5MTUvZ2VtX3Nocmluay5jIGIvdGVzdHMvaTkxNS9nZW1fc2hyaW5rLmMKPiBp bmRleCBmNzFhMWZjYjkxMTMuLjNlOGI4ZjJkY2RmZCAxMDA2NDQKPiAtLS0gYS90ZXN0cy9pOTE1 L2dlbV9zaHJpbmsuYwo+ICsrKyBiL3Rlc3RzL2k5MTUvZ2VtX3Nocmluay5jCj4gQEAgLTQxMyw3 ICs0MTMsNyBAQCBpZ3RfbWFpbgo+ICAJCSAqIHdlIGV4cGVjdCB0aGUgc2hyaW5rZXIgdG8gc3Rh cnQgcHVyZ2luZyBvYmplY3RzLAo+ICAJCSAqIGFuZCBwb3NzaWJseSBmYWlsLgo+ICAJCSAqLwo+ IC0JCWFsbG9jX3NpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShmZCkgLyAyOwo+ICsJ CWFsbG9jX3NpemUgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZSgpIC8gMjsKPiAgCQludW1f cHJvY2Vzc2VzID0gMSArIChtZW1fc2l6ZSAvIChhbGxvY19zaXplID4+IDIwKSk7Cj4gIAo+ICAJ CWlndF9pbmZvKCJVc2luZyAlZCBwcm9jZXNzZXMgYW5kICUnbGx1TWlCIHBlciBwcm9jZXNzXG4i LAo+IGRpZmYgLS1naXQgYS90ZXN0cy9pOTE1L2k5MTVfcG1fbHBzcC5jIGIvdGVzdHMvaTkxNS9p OTE1X3BtX2xwc3AuYwo+IGluZGV4IDRlN2NlMzk5ZDgxMy4uYjMxOWRiZTlhMGI3IDEwMDY0NAo+ IC0tLSBhL3Rlc3RzL2k5MTUvaTkxNV9wbV9scHNwLmMKPiArKysgYi90ZXN0cy9pOTE1L2k5MTVf cG1fbHBzcC5jCj4gQEAgLTMwLDcgKzMwLDYgQEAKPiAgI2luY2x1ZGUgPGZjbnRsLmg+Cj4gICNp bmNsdWRlIDx1bmlzdGQuaD4KPiAgCj4gLSNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCj4gIAo+ICBz dGF0aWMgYm9vbCBzdXBwb3J0c19scHNwKHVpbnQzMl90IGRldmlkKQo+ICB7Cj4gQEAgLTIxMSw3 ICsyMTAsNyBAQCBpZ3RfbWFpbgo+ICAKPiAgCQlpZ3RfcmVxdWlyZShzdXBwb3J0c19scHNwKGRl dmlkKSk7Cj4gIAo+IC0JCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGlndF9kZXZpY2VfZ2V0 X3BjaV9kZXZpY2UoZHJtX2ZkKSwgMCwgZHJtX2ZkKTsKPiArCQlpbnRlbF9yZWdpc3Rlcl9hY2Nl c3NfaW5pdChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAwLCBkcm1fZmQpOwo+ICAKPiAgCQlrbXN0 ZXN0X3NldF92dF9ncmFwaGljc19tb2RlKCk7Cj4gIAl9Cj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2k5 MTUvaTkxNV9wbV9ycG0uYyBiL3Rlc3RzL2k5MTUvaTkxNV9wbV9ycG0uYwo+IGluZGV4IDE4YWRh ZjZiNTc1MS4uMDNkZTYwOWNiZmNiIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL2k5MTUvaTkxNV9wbV9y cG0uYwo+ICsrKyBiL3Rlc3RzL2k5MTUvaTkxNV9wbV9ycG0uYwo+IEBAIC0xMzY4LDcgKzEzNjgs NyBAQCBzdGF0aWMgdm9pZCBnZW1fZXZpY3RfcHdyaXRlX3N1YnRlc3Qodm9pZCkKPiAgCXVuc2ln bmVkIGludCBudW1fdHJhc2hfYm9zLCBuOwo+ICAJdWludDMyX3QgYnVmOwo+ICAKPiAtCW51bV90 cmFzaF9ib3MgPSBnZW1fbWFwcGFibGVfYXBlcnR1cmVfc2l6ZShkcm1fZmQpIC8gKDEwMjQqMTAy NCkgKyAxOwo+ICsJbnVtX3RyYXNoX2JvcyA9IGdlbV9tYXBwYWJsZV9hcGVydHVyZV9zaXplKCkg LyAoMTAyNCoxMDI0KSArIDE7Cj4gIAl0cmFzaF9ib3MgPSBtYWxsb2MobnVtX3RyYXNoX2JvcyAq IHNpemVvZigqdHJhc2hfYm9zKSk7Cj4gIAlpZ3RfYXNzZXJ0KHRyYXNoX2Jvcyk7Cj4gIAo+IEBA IC0xNDEyLDcgKzE0MTIsNyBAQCBzdGF0aWMgYm9vbCBkZXZpY2VfaW5fcGNpX2QzKHZvaWQpCj4g IAl1aW50MTZfdCB2YWw7Cj4gIAlpbnQgcmM7Cj4gIAo+IC0JcmMgPSBwY2lfZGV2aWNlX2NmZ19y ZWFkX3UxNihpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGRybV9mZCksICZ2YWwsIDB4ZDQpOwo+ ICsJcmMgPSBwY2lfZGV2aWNlX2NmZ19yZWFkX3UxNihpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAm dmFsLCAweGQ0KTsKPiAgCWlndF9hc3NlcnRfZXEocmMsIDApOwo+ICAKPiAgCWlndF9kZWJ1Zygi JXM6IFBDSSBEMyBzdGF0ZT0lZFxuIiwgX19mdW5jX18sIHZhbCAmIDB4Myk7Cj4gZGlmZiAtLWdp dCBhL3Rlc3RzL2ttc19mbGlwLmMgYi90ZXN0cy9rbXNfZmxpcC5jCj4gaW5kZXggNmVjZTFlNTNi Y2UzLi5kZmE1YTY5ZThmMjggMTAwNzU1Cj4gLS0tIGEvdGVzdHMva21zX2ZsaXAuYwo+ICsrKyBi L3Rlc3RzL2ttc19mbGlwLmMKPiBAQCAtMTIyNCw3ICsxMjI0LDcgQEAgc3RhdGljIHZvaWQgcnVu X3Rlc3Rfb25fY3J0Y19zZXQoc3RydWN0IHRlc3Rfb3V0cHV0ICpvLCBpbnQgKmNydGNfaWR4cywK PiAgCS8qIDI1NiBNQiBpcyB1c3VhbGx5IHRoZSBtYXhpbXVtIG1hcHBhYmxlIGFwZXJ0dXJlLAo+ ICAJICogKG1ha2UgaXQgNHggdGltZXMgdGhhdCB0byBlbnN1cmUgZmFpbHVyZSkgKi8KPiAgCWlm IChvLT5mbGFncyAmIFRFU1RfQk9fVE9PQklHKSB7Cj4gLQkJYm9fc2l6ZSA9IDQqZ2VtX21hcHBh YmxlX2FwZXJ0dXJlX3NpemUoZHJtX2ZkKTsKPiArCQlib19zaXplID0gNCpnZW1fbWFwcGFibGVf YXBlcnR1cmVfc2l6ZSgpOwo+ICAJCWlndF9yZXF1aXJlKGJvX3NpemUgPCBnZW1fZ2xvYmFsX2Fw ZXJ0dXJlX3NpemUoZHJtX2ZkKSk7Cj4gIAl9Cj4gIAo+IGRpZmYgLS1naXQgYS90ZXN0cy9wcmlt ZV9tbWFwLmMgYi90ZXN0cy9wcmltZV9tbWFwLmMKPiBpbmRleCAwNmE2NmNhYjc0OTQuLmZjOTg1 Nzg0NDA3YiAxMDA2NDQKPiAtLS0gYS90ZXN0cy9wcmltZV9tbWFwLmMKPiArKysgYi90ZXN0cy9w cmltZV9tbWFwLmMKPiBAQCAtNDQ3LDggKzQ0Nyw4IEBAIHRlc3RfYXBlcnR1cmVfbGltaXQodm9p ZCkKPiAgCWNoYXIgKnB0cjEsICpwdHIyOwo+ICAJdWludDMyX3QgaGFuZGxlMSwgaGFuZGxlMjsK PiAgCS8qIFR3byBidWZmZXJzIHRoZSBzdW0gb2Ygd2hpY2ggPiBtYXBwYWJsZSBhcGVydHVyZSAq Lwo+IC0JdWludDY0X3Qgc2l6ZTEgPSAoZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUoZmQpICog NykgLyA4Owo+IC0JdWludDY0X3Qgc2l6ZTIgPSAoZ2VtX21hcHBhYmxlX2FwZXJ0dXJlX3NpemUo ZmQpICogMykgLyA4Owo+ICsJdWludDY0X3Qgc2l6ZTEgPSAoZ2VtX21hcHBhYmxlX2FwZXJ0dXJl X3NpemUoKSAqIDcpIC8gODsKPiArCXVpbnQ2NF90IHNpemUyID0gKGdlbV9tYXBwYWJsZV9hcGVy dHVyZV9zaXplKCkgKiAzKSAvIDg7Cj4gIAo+ICAJaGFuZGxlMSA9IGdlbV9jcmVhdGUoZmQsIHNp emUxKTsKPiAgCWZpbGxfYm8oaGFuZGxlMSwgQk9fU0laRSk7Cj4gZGlmZiAtLWdpdCBhL3Rvb2xz L2ludGVsX2F1ZGlvX2R1bXAuYyBiL3Rvb2xzL2ludGVsX2F1ZGlvX2R1bXAuYwo+IGluZGV4IDM1 MGEyMWQ5ZmEzMC4uOTAyNjBhMmZlMDA3IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2ludGVsX2F1ZGlv X2R1bXAuYwo+ICsrKyBiL3Rvb2xzL2ludGVsX2F1ZGlvX2R1bXAuYwo+IEBAIC0zMiw3ICszMiw2 IEBACj4gICNpbmNsdWRlIDxzdHJpbmcuaD4KPiAgI2luY2x1ZGUgPGVyci5oPgo+ICAjaW5jbHVk ZSA8YXJwYS9pbmV0Lmg+Cj4gLSNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCj4gICNpbmNsdWRlICJp bnRlbF9pby5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfcmVnLmgiCj4gICNpbmNsdWRlICJpbnRlbF9j aGlwc2V0LmgiCj4gQEAgLTI0NjUsMTIgKzI0NjQsOCBAQCBzdGF0aWMgdm9pZCBkdW1wX2JyYXN3 ZWxsKHZvaWQpCj4gIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiAgewo+ICAJc3Ry dWN0IHBjaV9kZXZpY2UgKnBjaV9kZXY7Cj4gLQlpbnQgZmQ7Cj4gLQo+IC0JZmQgPSBkcm1fb3Bl bl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKPiAtCXBjaV9kZXYgPSBpZ3RfZGV2aWNlX2dldF9wY2lf ZGV2aWNlKGZkKTsKPiAtCWNsb3NlKGZkKTsKPiAgCj4gKwlwY2lfZGV2ID0gaW50ZWxfZ2V0X3Bj aV9kZXZpY2UoKTsKPiAgCWRldmlkID0gcGNpX2Rldi0+ZGV2aWNlX2lkOyAvKiBYWFggbm90IHRy dWUgd2hlbiBtYXBwaW5nISAqLwo+ICAKPiAgCWRvX3NlbGZfdGVzdHMoKTsKPiBAQCAtMjQ5OCw3 ICsyNDkzLDUgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICAJCWR1bXBfZWFn bGVsYWtlKCk7Cj4gIAl9Cj4gIAo+IC0JY2xvc2UoZmQpOwo+IC0KPiAgCXJldHVybiAwOwo+ICB9 Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVsX2JhY2tsaWdodC5jIGIvdG9vbHMvaW50ZWxfYmFj a2xpZ2h0LmMKPiBpbmRleCBmYzQ1ZDk4NTM0MzAuLjA2N2ZkNDE4MDk2OCAxMDA2NDQKPiAtLS0g YS90b29scy9pbnRlbF9iYWNrbGlnaHQuYwo+ICsrKyBiL3Rvb2xzL2ludGVsX2JhY2tsaWdodC5j Cj4gQEAgLTMwLDkgKzMwLDggQEAKPiAgI2luY2x1ZGUgPHN0ZGlvLmg+Cj4gICNpbmNsdWRlIDxz dHJpbmcuaD4KPiAgCj4gLSNpbmNsdWRlICJkcm10ZXN0LmgiCj4gLSNpbmNsdWRlICJpZ3RfZGV2 aWNlLmgiCj4gICNpbmNsdWRlICJpbnRlbF9pby5oIgo+ICsjaW5jbHVkZSAiaW50ZWxfY2hpcHNl dC5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfcmVnLmgiCj4gIAo+ICAvKiBYWFggUENIIG9ubHkgdG9k YXkgKi8KPiBAQCAtNDAsMTEgKzM5LDggQEAKPiAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBh cmd2KQo+ICB7Cj4gIAl1aW50MzJfdCBjdXJyZW50LCBtYXg7Cj4gLQlpbnQgZmQ7Cj4gIAo+IC0J ZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKPiAtCWludGVsX21taW9fdXNlX3Bj aV9iYXIoaWd0X2RldmljZV9nZXRfcGNpX2RldmljZShmZCkpOwo+IC0JY2xvc2UoZmQpOwo+ICsJ aW50ZWxfbW1pb191c2VfcGNpX2JhcihpbnRlbF9nZXRfcGNpX2RldmljZSgpKTsKPiAgCj4gIAlj dXJyZW50ID0gSU5SRUcoQkxDX1BXTV9DUFVfQ1RMKSAmIEJBQ0tMSUdIVF9EVVRZX0NZQ0xFX01B U0s7Cj4gIAltYXggPSBJTlJFRyhCTENfUFdNX1BDSF9DVEwyKSA+PiAxNjsKPiBkaWZmIC0tZ2l0 IGEvdG9vbHMvaW50ZWxfZGlzcGxheV9wb2xsZXIuYyBiL3Rvb2xzL2ludGVsX2Rpc3BsYXlfcG9s bGVyLmMKPiBpbmRleCAyOTM1NzRmMjRhYWQuLjUxZjViOWE1OGFkMSAxMDA2NDQKPiAtLS0gYS90 b29scy9pbnRlbF9kaXNwbGF5X3BvbGxlci5jCj4gKysrIGIvdG9vbHMvaW50ZWxfZGlzcGxheV9w b2xsZXIuYwo+IEBAIC0zNiw3ICszNiw2IEBACj4gICNpbmNsdWRlICJpbnRlbF9pby5oIgo+ICAj aW5jbHVkZSAiaW50ZWxfcmVnLmgiCj4gICNpbmNsdWRlICJpZ3RfZGVidWdmcy5oIgo+IC0jaW5j bHVkZSAiaWd0X2RldmljZS5oIgo+ICAjaW5jbHVkZSAiZHJtdGVzdC5oIgo+ICAjaW5jbHVkZSAi aWd0X2F1eC5oIgo+ICAKPiBAQCAtOTcyLDcgKzk3MSw2IEBAIGludCBtYWluKGludCBhcmdjLCBj aGFyICphcmd2W10pCj4gIAl1aW50MzJfdCBhLCBiOwo+ICAJZW51bSB0ZXN0IHRlc3QgPSBURVNU X0lOVkFMSUQ7Cj4gIAljb25zdCBpbnQgY291bnQgPSBBUlJBWV9TSVpFKG1pbikvMjsKPiAtCWlu dCBmZDsKPiAgCj4gIAlmb3IgKDs7KSB7Cj4gIAkJc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb24g bG9uZ19vcHRpb25zW10gPSB7Cj4gQEAgLTEwNDgsOCArMTA0Niw3IEBAIGludCBtYWluKGludCBh cmdjLCBjaGFyICphcmd2W10pCj4gIAkJfQo+ICAJfQo+ICAKPiAtCWZkID0gZHJtX29wZW5fZHJp dmVyKERSSVZFUl9JTlRFTCk7Cj4gLQlkZXZpZCA9IGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2Uo ZmQpLT5kZXZpY2VfaWQ7Cj4gKwlkZXZpZCA9IGludGVsX2dldF9wY2lfZGV2aWNlKCktPmRldmlj ZV9pZDsKPiAgCj4gIAkvKgo+ICAJICogY2hlY2sgaWYgdGhlIHJlcXVpcmVzIHJlZ2lzdGVycyBh cmUKPiBAQCAtMTE5MCw3ICsxMTg3LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3Zb XSkKPiAgCQlicmVhazsKPiAgCX0KPiAgCj4gLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChp Z3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKSwgMCwgLTEpOwo+ICsJaW50ZWxfcmVnaXN0ZXJf YWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOwo+ICAKPiAgCXByaW50 ZigiJXM/XG4iLCB0ZXN0X25hbWUodGVzdCwgcGlwZSwgYml0LCB0ZXN0X3BpeGVsY291bnQpKTsK PiAgCj4gQEAgLTEyNjYsNyArMTI2Myw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2 W10pCj4gIAl9Cj4gIAo+ICAJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2ZpbmkoKTsKPiAtCWNsb3Nl KGZkKTsKPiAgCj4gIAlpZiAocXVpdCkKPiAgCQlyZXR1cm4gMDsKPiBkaWZmIC0tZ2l0IGEvdG9v bHMvaW50ZWxfZm9yY2V3YWtlZC5jIGIvdG9vbHMvaW50ZWxfZm9yY2V3YWtlZC5jCj4gaW5kZXgg N2QzMjMzN2FkMjczLi4wMmZiZjg4ODA2MDQgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvaW50ZWxfZm9y Y2V3YWtlZC5jCj4gKysrIGIvdG9vbHMvaW50ZWxfZm9yY2V3YWtlZC5jCj4gQEAgLTM0LDggKzM0 LDggQEAKPiAgI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ICAjaW5jbHVkZSA8c3lzbG9nLmg+Cj4gICNp bmNsdWRlIDx1bmlzdGQuaD4KPiAtI2luY2x1ZGUgImlndF9kZXZpY2UuaCIKPiAgI2luY2x1ZGUg ImludGVsX2lvLmgiCj4gKyNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCj4gICNpbmNsdWRlICJk cm10ZXN0LmgiCj4gIAo+ICBib29sIGRhZW1vbml6ZWQ7Cj4gQEAgLTY1LDcgKzY1LDYgQEAgaXNf YWxpdmUodm9pZCkgewo+ICBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQo+ICB7Cj4g IAlpbnQgcmV0Owo+IC0JaW50IGZkOwo+ICAKPiAgCWlmIChhcmdjID4gMiB8fCAoYXJnYyA9PSAy ICYmICFzdHJuY21wKGFyZ3ZbMV0sICItaCIsIDIpKSkgewo+ICAJCWhlbHAoYXJndlsxXSk7Cj4g QEAgLTgxLDI3ICs4MCwyNCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQo+ICAJ CUlORk9fUFJJTlQoInN0YXJ0ZWQgZGFlbW9uIik7Cj4gIAl9Cj4gIAo+IC0JZmQgPSBkcm1fb3Bl bl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKPiAtCXJldCA9IGludGVsX3JlZ2lzdGVyX2FjY2Vzc19p bml0KGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZmQpLCAxLCAtMSk7Cj4gKwlyZXQgPSBpbnRl bF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpbnRlbF9nZXRfcGNpX2RldmljZSgpLCAxLCAtMSk7Cj4g IAlpZiAocmV0KSB7Cj4gIAkJSU5GT19QUklOVCgiQ291bGRuJ3QgaW5pdCByZWdpc3RlciBhY2Nl c3NcbiIpOwo+ICAJCWV4aXQoMSk7Cj4gIAl9IGVsc2Ugewo+ICAJCUlORk9fUFJJTlQoIkZvcmNl d2FrZSBsb2NrZWRcbiIpOwo+ICAJfQo+IC0KPiAgCXdoaWxlKDEpIHsKPiAgCQlpZiAoIWlzX2Fs aXZlKCkpIHsKPiAgCQkJSU5GT19QUklOVCgiZ3B1IHJlc2V0PyByZXN0YXJ0aW5nIGRhZW1vblxu Iik7Cj4gIAkJCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19maW5pKCk7Cj4gLQkJCXJldCA9IGludGVs X3JlZ2lzdGVyX2FjY2Vzc19pbml0KGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2UoZmQpLCAxLCAt MSk7Cj4gKwkJCXJldCA9IGludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lf ZGV2aWNlKCksIDEsIC0xKTsKPiAgCQkJaWYgKHJldCkKPiAgCQkJCUlORk9fUFJJTlQoIlJlZyBh Y2Nlc3MgaW5pdCBmYWlsXG4iKTsKPiAgCQl9Cj4gIAkJc2xlZXAoMSk7Cj4gIAl9Cj4gIAlpbnRl bF9yZWdpc3Rlcl9hY2Nlc3NfZmluaSgpOwo+IC0JY2xvc2UoZmQpOwo+ICAJSU5GT19QUklOVCgi Rm9yY2V3YWtlIHVubG9ja1xuIik7Cj4gIAo+ICAJaWYgKGRhZW1vbml6ZWQpIHsKPiBkaWZmIC0t Z2l0IGEvdG9vbHMvaW50ZWxfZ3B1X3RpbWUuYyBiL3Rvb2xzL2ludGVsX2dwdV90aW1lLmMKPiBp bmRleCAwZmM3M2Y5MjA0M2QuLjU2ZDY1ZmUwNzk2NyAxMDA2NDQKPiAtLS0gYS90b29scy9pbnRl bF9ncHVfdGltZS5jCj4gKysrIGIvdG9vbHMvaW50ZWxfZ3B1X3RpbWUuYwo+IEBAIC0zNCw5ICsz NCw4IEBACj4gICNpbmNsdWRlIDxzeXMvcmVzb3VyY2UuaD4KPiAgI2luY2x1ZGUgPHN5cy93YWl0 Lmg+Cj4gIAo+IC0jaW5jbHVkZSAiZHJtdGVzdC5oIgo+IC0jaW5jbHVkZSAiaWd0X2RldmljZS5o Igo+ICAjaW5jbHVkZSAiaW50ZWxfaW8uaCIKPiArI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIK PiAgI2luY2x1ZGUgImludGVsX3JlZy5oIgo+ICAKPiAgI2RlZmluZSBTQU1QTEVTX1BFUl9TRUMg ICAgICAgICAgICAgMTAwMDAKPiBAQCAtNjcsMTEgKzY2LDggQEAgaW50IG1haW4oaW50IGFyZ2Ms IGNoYXIgKiphcmd2KQo+ICAJc3RydWN0IHRpbWV2YWwgc3RhcnQsIGVuZDsKPiAgCXN0YXRpYyBz dHJ1Y3QgcnVzYWdlIHJ1c2FnZTsKPiAgCWludCBzdGF0dXM7Cj4gLQlpbnQgZmQ7Cj4gIAo+IC0J ZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVSX0lOVEVMKTsKPiAtCWludGVsX21taW9fdXNlX3Bj aV9iYXIoaWd0X2RldmljZV9nZXRfcGNpX2RldmljZShmZCkpOwo+IC0JY2xvc2UoZmQpOwo+ICsJ aW50ZWxfbW1pb191c2VfcGNpX2JhcihpbnRlbF9nZXRfcGNpX2RldmljZSgpKTsKPiAgCj4gIAlp ZiAoYXJnYyA9PSAxKSB7Cj4gIAkJZnByaW50ZihzdGRlcnIsICJ1c2FnZTogJXMgY21kIFthcmdz Li4uXVxuIiwgYXJndlswXSk7Cj4gZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVsX2d0dC5jIGIvdG9v bHMvaW50ZWxfZ3R0LmMKPiBpbmRleCA1NzQwZTc5NGU4ODcuLjMxMTY5NGJhYWI3YSAxMDA2NDQK PiAtLS0gYS90b29scy9pbnRlbF9ndHQuYwo+ICsrKyBiL3Rvb2xzL2ludGVsX2d0dC5jCj4gQEAg LTM0LDggKzM0LDYgQEAKPiAgI2luY2x1ZGUgPHBjaWFjY2Vzcy5oPgo+ICAjaW5jbHVkZSA8dW5p c3RkLmg+Cj4gIAo+IC0jaW5jbHVkZSAiZHJtdGVzdC5oIgo+IC0jaW5jbHVkZSAiaWd0X2Rldmlj ZS5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfaW8uaCIKPiAgI2luY2x1ZGUgImludGVsX2NoaXBzZXQu aCIKPiAgCj4gQEAgLTE0MiwxNyArMTQwLDEzIEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoq YXJndikKPiAgewo+ICAJc3RydWN0IHBjaV9kZXZpY2UgKnBjaV9kZXY7Cj4gIAl1bnNpZ25lZCBp bnQgc3RhcnQsIGd0dF9zaXplOwo+IC0JaW50IGZkOwo+ICAJaW50IGZsYWdbXSA9IHsKPiAgCQlQ Q0lfREVWX01BUF9GTEFHX1dSSVRFX0NPTUJJTkUsCj4gIAkJUENJX0RFVl9NQVBfRkxBR19XUklU QUJMRSwKPiAgCQkwCj4gIAl9LCBmOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZF Ul9JTlRFTCk7Cj4gLQlwY2lfZGV2ID0gaWd0X2RldmljZV9nZXRfcGNpX2RldmljZShmZCk7Cj4g LQljbG9zZShmZCk7Cj4gLQo+ICsJcGNpX2RldiA9IGludGVsX2dldF9wY2lfZGV2aWNlKCk7Cj4g IAlkZXZpZCA9IHBjaV9kZXYtPmRldmljZV9pZDsKPiAgCj4gIAlpZiAoSVNfR0VOMihkZXZpZCkp IHsKPiBkaWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfaW5mb2ZyYW1lcy5jIGIvdG9vbHMvaW50ZWxf aW5mb2ZyYW1lcy5jCj4gaW5kZXggOTEyOTU3MmEyMDA3Li4yZWY1ZDRmZGQwMjAgMTAwNjQ0Cj4g LS0tIGEvdG9vbHMvaW50ZWxfaW5mb2ZyYW1lcy5jCj4gKysrIGIvdG9vbHMvaW50ZWxfaW5mb2Zy YW1lcy5jCj4gQEAgLTMwLDcgKzMwLDYgQEAKPiAgI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ICAjaW5j bHVkZSA8c3RyaW5nLmg+Cj4gICNpbmNsdWRlIDxnZXRvcHQuaD4KPiAtI2luY2x1ZGUgImlndF9k ZXZpY2UuaCIKPiAgI2luY2x1ZGUgImludGVsX2lvLmgiCj4gICNpbmNsdWRlICJpbnRlbF9jaGlw c2V0LmgiCj4gICNpbmNsdWRlICJkcm10ZXN0LmgiCj4gQEAgLTEwODIsNyArMTA4MSw2IEBAIHBy aW50ZigiT3B0aW9uczpcbiIKPiAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAg ewo+ICAJaW50IG9wdDsKPiAtCWludCBmZDsKPiAgCWludCByZXQgPSAwOwo+ICAJVHJhbnNjb2Rl ciB0cmFuc2NvZGVyID0gVFJBTlNDX0lOVkFMSUQ7Cj4gIAlEaXBUeXBlIGRpcCA9IERJUF9JTlZB TElEOwo+IEBAIC0xMTA5LDEwICsxMTA3LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSkKPiAgCXByaW50ZigiV0FSTklORzogVGhpcyBpcyBqdXN0IGEgZGVidWdnaW5nIHRvb2wh IERvbid0IGV4cGVjdCBpdCB0byB3b3JrIgo+ICAJICAgICAgICIgcGVyZmVjdGx5OiB0aGUgS2Vy bmVsIG1pZ2h0IHVuZG8gb3VyIGNoYW5nZXMuXG4iKTsKPiAgCj4gLQlmZCA9IGRybV9vcGVuX2Ry aXZlcihEUklWRVJfSU5URUwpOwo+IC0JcGNpX2RldiA9IGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZp Y2UoZmQpOwo+IC0JY2xvc2UoZmQpOwo+IC0KPiArCXBjaV9kZXYgPSBpbnRlbF9nZXRfcGNpX2Rl dmljZSgpOwo+ICAJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQocGNpX2RldiwgMCwgLTEpOwo+ ICAJaW50ZWxfY2hlY2tfcGNoKCk7Cj4gIAo+IGRpZmYgLS1naXQgYS90b29scy9pbnRlbF9sM19w YXJpdHkuYyBiL3Rvb2xzL2ludGVsX2wzX3Bhcml0eS5jCj4gaW5kZXggZTJlNDUwM2ExMjQ0Li5k OGM5OTdhZjliOTcgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvaW50ZWxfbDNfcGFyaXR5LmMKPiArKysg Yi90b29scy9pbnRlbF9sM19wYXJpdHkuYwo+IEBAIC0zNiw3ICszNiw2IEBACj4gICNpbmNsdWRl IDxnZXRvcHQuaD4KPiAgI2luY2x1ZGUgImludGVsX2NoaXBzZXQuaCIKPiAgI2luY2x1ZGUgImlu dGVsX2lvLmgiCj4gLSNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCj4gICNpbmNsdWRlICJpZ3Rfc3lz ZnMuaCIKPiAgI2luY2x1ZGUgImRybXRlc3QuaCIKPiAgI2luY2x1ZGUgImNvbmZpZy5oIgo+IEBA IC0xOTAsNyArMTg5LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgCWlm IChpbnRlbF9nZW4oZGV2aWQpIDwgNyB8fCBJU19WQUxMRVlWSUVXKGRldmlkKSkKPiAgCQlleGl0 KDc3KTsKPiAgCj4gLQlhc3NlcnQoaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaWd0X2Rldmlj ZV9nZXRfcGNpX2RldmljZShkZXZpY2UpLCAwLCBkZXZpY2UpID09IDApOwo+ICsJYXNzZXJ0KGlu dGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIGRldmlj ZSkgPT0gMCk7Cj4gIAo+ICAJZGlyID0gaWd0X3N5c2ZzX29wZW4oZGV2aWNlKTsKPiAgCj4gZGlm ZiAtLWdpdCBhL3Rvb2xzL2ludGVsX2xpZC5jIGIvdG9vbHMvaW50ZWxfbGlkLmMKPiBpbmRleCA0 NDc3OTBkOWM1NDUuLjM3YzZiYTVlNDQzZiAxMDA2NDQKPiAtLS0gYS90b29scy9pbnRlbF9saWQu Ywo+ICsrKyBiL3Rvb2xzL2ludGVsX2xpZC5jCj4gQEAgLTM3LDEwICszNyw5IEBACj4gICNpbmNs dWRlIDxzeXMvc3RhdC5oPgo+ICAjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Cj4gIAo+IC0jaW5jbHVk ZSAiZHJtdGVzdC5oIgo+IC0jaW5jbHVkZSAiaWd0X2RldmljZS5oIgo+ICAjaW5jbHVkZSAiaW50 ZWxfaW8uaCIKPiAgI2luY2x1ZGUgImludGVsX3JlZy5oIgo+ICsjaW5jbHVkZSAiaW50ZWxfY2hp cHNldC5oIgo+ICAKPiAgI2RlZmluZSBTV0YxNF9MSURfU1RBVFVTX0NMT1NFRAkoMTw8MjkpIC8q IDAgaGVyZSBtZWFucyBvcGVuICovCj4gIAo+IEBAIC0xMTksMTEgKzExOCw4IEBAIG91dDoKPiAg aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQo+ICB7Cj4gIAlpbnQgc3dmMTQsIGFjcGlf bGlkOwo+IC0JaW50IGZkOwo+ICAKPiAtCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRF TCk7Cj4gLQlpbnRlbF9tbWlvX3VzZV9wY2lfYmFyKGlndF9kZXZpY2VfZ2V0X3BjaV9kZXZpY2Uo ZmQpKTsKPiAtCWNsb3NlKGZkKTsKPiArCWludGVsX21taW9fdXNlX3BjaV9iYXIoaW50ZWxfZ2V0 X3BjaV9kZXZpY2UoKSk7Cj4gIAo+ICAJd2hpbGUgKDEpIHsKPiAgCQlzd2YxNCA9IElOUkVHKFNX RjE0KTsKPiBAQCAtMTQ2LDYgKzE0Miw1IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJn dikKPiAgCQl9Cj4gIAkJc2xlZXAoMik7Cj4gIAl9Cj4gLQo+ICAJcmV0dXJuIDA7Cj4gIH0KPiBk aWZmIC0tZ2l0IGEvdG9vbHMvaW50ZWxfcGFuZWxfZml0dGVyLmMgYi90b29scy9pbnRlbF9wYW5l bF9maXR0ZXIuYwo+IGluZGV4IDA2ZjRhYzU5NmY1Yy4uMTM3ZWY2MWFiZTU5IDEwMDY0NAo+IC0t LSBhL3Rvb2xzL2ludGVsX3BhbmVsX2ZpdHRlci5jCj4gKysrIGIvdG9vbHMvaW50ZWxfcGFuZWxf Zml0dGVyLmMKPiBAQCAtMzAsNyArMzAsNiBAQAo+ICAjaW5jbHVkZSA8dW5pc3RkLmg+Cj4gICNp bmNsdWRlIDxzdGRsaWIuaD4KPiAgI2luY2x1ZGUgPHN0cmluZy5oPgo+IC0jaW5jbHVkZSAiaWd0 X2RldmljZS5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfaW8uaCIKPiAgI2luY2x1ZGUgImludGVsX2No aXBzZXQuaCIKPiAgI2luY2x1ZGUgImludGVsX3JlZy5oIgo+IEBAIC0yNzQsMTcgKzI3MywxMyBA QCBpbnQgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgCWJvb2wgZG9fZGlzYWJsZSA9 IGZhbHNlLCBkb19kdW1wID0gZmFsc2UsIGRvX3VzYWdlID0gZmFsc2U7Cj4gIAlzdHJ1Y3QgcGNp X2RldmljZSAqcGNpX2RldjsKPiAgCXVpbnQzMl90IGRldmlkOwo+IC0JaW50IGZkOwo+ICAKPiAg CXByaW50ZigiV0FSTklORzpcbiIKPiAgCSAgICAgICAiVGhpcyB0b29sIGlzIGEgd29ya2Fyb3Vu ZCBmb3IgcGVvcGxlIHRoYXQgZG9uJ3QgaGF2ZSBhIEtlcm5lbCAiCj4gIAkgICAgICAgIndpdGgg b3ZlcnNjYW4gY29tcGVuc2F0aW9uIHByb3BlcnRpZXM6IGl0IGlzIGp1c3QgYSB0ZW1wb3Jhcnkg Igo+ICAJICAgICAgICJzb2x1dGlvbiB0aGF0IG1heSBvciBtYXkgbm90IHdvcmsuIFVzZSBpdCBh dCB5b3VyIG93biByaXNrLlxuIik7Cj4gIAo+IC0JZmQgPSBkcm1fb3Blbl9kcml2ZXIoRFJJVkVS X0lOVEVMKTsKPiAtCXBjaV9kZXYgPSBpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKTsKPiAt CWNsb3NlKGZkKTsKPiAtCj4gKwlwY2lfZGV2ID0gaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKTsKPiAg CWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KHBjaV9kZXYsIDAsIC0xKTsKPiAgCWRldmlkID0g cGNpX2Rldi0+ZGV2aWNlX2lkOwo+ICAKPiBAQCAtMzQ4LDYgKzM0Myw1IEBAIGludCBtYWluIChp bnQgYXJnYywgY2hhciAqYXJndltdKQo+ICAKPiAgb3V0Ogo+ICAJaW50ZWxfcmVnaXN0ZXJfYWNj ZXNzX2ZpbmkoKTsKPiAtCj4gIAlyZXR1cm4gcmV0Owo+ICB9Cj4gZGlmZiAtLWdpdCBhL3Rvb2xz L2ludGVsX3BlcmZfY291bnRlcnMuYyBiL3Rvb2xzL2ludGVsX3BlcmZfY291bnRlcnMuYwo+IGlu ZGV4IDEwNWEwOTI0ZjZkYy4uNTBjNGJjZTYxZmY3IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2ludGVs X3BlcmZfY291bnRlcnMuYwo+ICsrKyBiL3Rvb2xzL2ludGVsX3BlcmZfY291bnRlcnMuYwo+IEBA IC00NSw3ICs0NSw2IEBACj4gICNpbmNsdWRlICJkcm0uaCIKPiAgI2luY2x1ZGUgImk5MTVfZHJt LmgiCj4gICNpbmNsdWRlICJkcm10ZXN0LmgiCj4gLSNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCj4g ICNpbmNsdWRlICJpbnRlbF9pby5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfYnVmbWdyLmgiCj4gICNp bmNsdWRlICJpbnRlbF9iYXRjaGJ1ZmZlci5oIgo+IEBAIC00ODQsNyArNDgzLDcgQEAgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCj4gIAo+ICAJaWYgKG9hY29udHJvbCkgewo+ICAJCS8qIEZv cmNld2FrZSAqLwo+IC0JCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGlndF9kZXZpY2VfZ2V0 X3BjaV9kZXZpY2UoZmQpLCAwLCBmZCk7Cj4gKwkJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQo aW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgZmQpOwo+ICAKPiAgCQkvKiBFbmFibGUgcGVyZm9y bWFuY2UgY291bnRlcnMgKi8KPiAgCQlpbnRlbF9yZWdpc3Rlcl93cml0ZShPQUNPTlRST0wsCj4g ZGlmZiAtLWdpdCBhL3Rvb2xzL2ludGVsX3JlZy5jIGIvdG9vbHMvaW50ZWxfcmVnLmMKPiBpbmRl eCAzMDUzMjNiNjAzZDguLjEyNDdiNzBiMDkyNyAxMDA2NDQKPiAtLS0gYS90b29scy9pbnRlbF9y ZWcuYwo+ICsrKyBiL3Rvb2xzL2ludGVsX3JlZy5jCj4gQEAgLTMzLDkgKzMzLDkgQEAKPiAgI2lu Y2x1ZGUgPHVuaXN0ZC5oPgo+ICAKPiAgI2luY2x1ZGUgImlndC5oIgo+IC0jaW5jbHVkZSAiaWd0 X2RldmljZS5oIgo+ICAjaW5jbHVkZSAiaWd0X2d0LmgiCj4gICNpbmNsdWRlICJpbnRlbF9pby5o Igo+ICsjaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgo+ICAKPiAgI2luY2x1ZGUgImludGVsX3Jl Z19zcGVjLmgiCj4gIAo+IEBAIC0yNzQsNiArMjc0LDE1IEBAIHN0YXRpYyBpbnQgcmVnaXN0ZXJf c3JtKHN0cnVjdCBjb25maWcgKmNvbmZpZywgc3RydWN0IHJlZyAqcmVnLAo+ICAJaW50IGZkLCBp Owo+ICAJdWludDMyX3QgdmFsOwo+ICAKPiArCWlmIChjb25maWctPmZkID09IC0xKSB7Cj4gKwkJ Y29uZmlnLT5mZCA9IF9fZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7Cj4gKwkJaWYgKGNv bmZpZy0+ZmQgPT0gLTEpIHsKPiArCQkJZnByaW50ZihzdGRlcnIsICJFcnJvciBvcGVuaW5nIGRy aXZlcjogJXMiLAo+ICsJCQkJc3RyZXJyb3IoZXJybm8pKTsKPiArCQkJZXhpdChFWElUX0ZBSUxV UkUpOwo+ICsJCX0KPiArCX0KPiArCj4gIAlmZCA9IGNvbmZpZy0+ZmQ7Cj4gIAllbmdpbmUgPSBm aW5kX2VuZ2luZShyZWctPmVuZ2luZSk7Cj4gIAlpZiAoZW5naW5lID09IE5VTEwpCj4gQEAgLTEw MDYsMTMgKzEwMTUsNiBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQo+ICAJCXJl dHVybiBFWElUX0ZBSUxVUkU7Cj4gIAl9Cj4gIAo+IC0JY29uZmlnLmZkID0gX19kcm1fb3Blbl9k cml2ZXIoRFJJVkVSX0lOVEVMKTsKPiAtCWlmIChjb25maWcuZmQgPT0gLTEpIHsKPiAtCQlmcHJp bnRmKHN0ZGVyciwgIkVycm9yIG9wZW5pbmcgZHJpdmVyOiAlcyIsCj4gLQkJCXN0cmVycm9yKGVy cm5vKSk7Cj4gLQkJZXhpdChFWElUX0ZBSUxVUkUpOwo+IC0JfQo+IC0KPiAgCWlmIChjb25maWcu bW1pb2ZpbGUpIHsKPiAgCQlpZiAoIWNvbmZpZy5kZXZpZCkgewo+ICAJCQlmcHJpbnRmKHN0ZGVy ciwgIi0tbW1pbyByZXF1aXJlcyAtLWRldmlkXG4iKTsKPiBAQCAtMTAyNCw3ICsxMDI2LDcgQEAg aW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKPiAgCQkJZnByaW50ZihzdGRlcnIsICIt LWRldmlkIHdpdGhvdXQgLS1tbWlvXG4iKTsKPiAgCQkJcmV0dXJuIEVYSVRfRkFJTFVSRTsKPiAg CQl9Cj4gLQkJY29uZmlnLnBjaV9kZXYgPSBpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGNvbmZp Zy5mZCk7Cj4gKwkJY29uZmlnLnBjaV9kZXYgPSBpbnRlbF9nZXRfcGNpX2RldmljZSgpOwo+ICAJ CWNvbmZpZy5kZXZpZCA9IGNvbmZpZy5wY2lfZGV2LT5kZXZpY2VfaWQ7Cj4gIAl9Cj4gIAo+IEBA IC0xMDQ4LDcgKzEwNTAsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQo+ICAK PiAgCWZyZWUoY29uZmlnLm1taW9maWxlKTsKPiAgCj4gLQljbG9zZShjb25maWcuZmQpOwo+ICsJ aWYgKGNvbmZpZy5mZCA+PSAwKQo+ICsJCWNsb3NlKGNvbmZpZy5mZCk7Cj4gIAo+ICAJcmV0dXJu IHJldDsKPiAgfQo+IGRpZmYgLS1naXQgYS90b29scy9pbnRlbF9yZWdfY2hlY2tlci5jIGIvdG9v bHMvaW50ZWxfcmVnX2NoZWNrZXIuYwo+IGluZGV4IDBlZDI2MDI5YzcyZi4uNmJkZTYzZWNlZTIy IDEwMDY0NAo+IC0tLSBhL3Rvb2xzL2ludGVsX3JlZ19jaGVja2VyLmMKPiArKysgYi90b29scy9p bnRlbF9yZWdfY2hlY2tlci5jCj4gQEAgLTI2LDggKzI2LDYgQEAKPiAgI2luY2x1ZGUgPGVyci5o Pgo+ICAjaW5jbHVkZSA8c3RyaW5nLmg+Cj4gICNpbmNsdWRlIDxzdGRib29sLmg+Cj4gLSNpbmNs dWRlICJkcm10ZXN0LmgiCj4gLSNpbmNsdWRlICJpZ3RfZGV2aWNlLmgiCj4gICNpbmNsdWRlICJp bnRlbF9pby5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfY2hpcHNldC5oIgo+ICAKPiBAQCAtMzQ0LDEy ICszNDIsOCBAQCBjaGVja19kcGZjX2NvbnRyb2xfc2Eodm9pZCkKPiAgaW50IG1haW4oaW50IGFy Z2MsIGNoYXIqKiBhcmd2KQo+ICB7Cj4gIAlzdHJ1Y3QgcGNpX2RldmljZSAqZGV2Owo+IC0JaW50 IGZkOwo+IC0KPiAtCWZkID0gZHJtX29wZW5fZHJpdmVyKERSSVZFUl9JTlRFTCk7Cj4gLQlkZXYg PSBpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKTsKPiAtCWNsb3NlKGZkKTsKPiAgCj4gKwlk ZXYgPSBpbnRlbF9nZXRfcGNpX2RldmljZSgpOwo+ICAJZGV2aWQgPSBkZXYtPmRldmljZV9pZDsK PiAgCWludGVsX21taW9fdXNlX3BjaV9iYXIoZGV2KTsKPiAgCj4gZGlmZiAtLWdpdCBhL3Rvb2xz L2ludGVsX3dhdGVybWFyay5jIGIvdG9vbHMvaW50ZWxfd2F0ZXJtYXJrLmMKPiBpbmRleCAyZGM0 MzA3YzMzYTMuLmU3MWMzZDljZmY2ZCAxMDA2NDQKPiAtLS0gYS90b29scy9pbnRlbF93YXRlcm1h cmsuYwo+ICsrKyBiL3Rvb2xzL2ludGVsX3dhdGVybWFyay5jCj4gQEAgLTI5LDE0ICsyOSwxMiBA QAo+ICAjaW5jbHVkZSA8c3RkYm9vbC5oPgo+ICAjaW5jbHVkZSA8ZXJyLmg+Cj4gICNpbmNsdWRl IDxzdHJpbmcuaD4KPiAtI2luY2x1ZGUgImlndF9kZXZpY2UuaCIKPiAgI2luY2x1ZGUgImludGVs X2lvLmgiCj4gICNpbmNsdWRlICJpbnRlbF9jaGlwc2V0LmgiCj4gICNpbmNsdWRlICJkcm10ZXN0 LmgiCj4gIAo+ICBzdGF0aWMgdWludDMyX3QgZGlzcGxheV9iYXNlOwo+ICBzdGF0aWMgdWludDMy X3QgZGV2aWQ7Cj4gLXN0YXRpYyBpbnQgZmQ7Cj4gIAo+ICBzdGF0aWMgdWludDMyX3QgcmVhZF9y ZWcodWludDMyX3QgYWRkcikKPiAgewo+IEBAIC0yNTEsNyArMjQ5LDcgQEAgc3RhdGljIHZvaWQg c2tsX3dtX2R1bXAodm9pZCkKPiAgCXVpbnQzMl90IHBsYW5lX2N0bFtudW1fcGlwZXNdW21heF9w bGFuZXNdOwo+ICAJdWludDMyX3Qgd21fbGluZXRpbWVbbnVtX3BpcGVzXTsKPiAgCj4gLQlpbnRl bF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKSwgMCwg LTEpOwo+ICsJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2Uo KSwgMCwgLTEpOwo+ICAKPiAgCWZvciAocGlwZSA9IDA7IHBpcGUgPCBudW1fcGlwZXM7IHBpcGUr Kykgewo+ICAJCWludCBudW1fcGxhbmVzID0gc2tsX251bV9wbGFuZXMoZGV2aWQsIHBpcGUpOwo+ IEBAIC00NzEsNyArNDY5LDcgQEAgc3RhdGljIHZvaWQgaWxrX3dtX2R1bXAodm9pZCkKPiAgCWlu dCBudW1fcGlwZXMgPSBpbnRlbF9nZW4oZGV2aWQpID49IDcgPyAzIDogMjsKPiAgCXN0cnVjdCBp bGtfd20gd20gPSB7fTsKPiAgCj4gLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2 aWNlX2dldF9wY2lfZGV2aWNlKGZkKSwgMCwgLTEpOwo+ICsJaW50ZWxfcmVnaXN0ZXJfYWNjZXNz X2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOwo+ICAKPiAgCWZvciAoaSA9IDA7 IGkgPCBudW1fcGlwZXM7IGkrKykgewo+ICAJCWRzcGNudHJbaV0gPSByZWFkX3JlZygweDcwMTgw ICsgaSAqIDB4MTAwMCk7Cj4gQEAgLTYyMSw3ICs2MTksNyBAQCBzdGF0aWMgdm9pZCB2bHZfd21f ZHVtcCh2b2lkKQo+ICAJdWludDMyX3QgZHNwX3NzX3BtLCBkZHJfc2V0dXAyOwo+ICAJc3RydWN0 IGdtY2hfd20gd21zW01BWF9QTEFORV0gPSB7fTsKPiAgCj4gLQlpbnRlbF9yZWdpc3Rlcl9hY2Nl c3NfaW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKSwgMCwgLTEpOwo+ICsJaW50ZWxf cmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOwo+ICAK PiAgCWRzcGFyYiA9IHJlYWRfcmVnKDB4NzAwMzApOwo+ICAJZHNwYXJiMiA9IHJlYWRfcmVnKDB4 NzAwNjApOwo+IEBAIC04MzcsNyArODM1LDcgQEAgc3RhdGljIHZvaWQgZzR4X3dtX2R1bXAodm9p ZCkKPiAgCXVpbnQzMl90IG1pX2FyYl9zdGF0ZTsKPiAgCXN0cnVjdCBnbWNoX3dtIHdtc1tNQVhf UExBTkVdID0ge307Cj4gIAo+IC0JaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaWd0X2Rldmlj ZV9nZXRfcGNpX2RldmljZShmZCksIDAsIC0xKTsKPiArCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19p bml0KGludGVsX2dldF9wY2lfZGV2aWNlKCksIDAsIC0xKTsKPiAgCj4gIAlkc3BhY250ciA9IHJl YWRfcmVnKDB4NzAxODApOwo+ICAJZHNwYmNudHIgPSByZWFkX3JlZygweDcxMTgwKTsKPiBAQCAt OTIzLDcgKzkyMSw3IEBAIHN0YXRpYyB2b2lkIGdlbjRfd21fZHVtcCh2b2lkKQo+ICAJdWludDMy X3QgbWlfYXJiX3N0YXRlOwo+ICAJc3RydWN0IGdtY2hfd20gd21zW01BWF9QTEFORV0gPSB7fTsK PiAgCj4gLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2 aWNlKGZkKSwgMCwgLTEpOwo+ICsJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0 X3BjaV9kZXZpY2UoKSwgMCwgLTEpOwo+ICAKPiAgCWRzcGFyYiA9IHJlYWRfcmVnKDB4NzAwMzAp Owo+ICAJZncxID0gcmVhZF9yZWcoMHg3MDAzNCk7Cj4gQEAgLTk5NCw3ICs5OTIsNyBAQCBzdGF0 aWMgdm9pZCBwbnZfd21fZHVtcCh2b2lkKQo+ICAJdWludDMyX3QgY2JyOwo+ICAJc3RydWN0IGdt Y2hfd20gd21zW01BWF9QTEFORV0gPSB7fTsKPiAgCj4gLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3Nf aW5pdChpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKSwgMCwgLTEpOwo+ICsJaW50ZWxfcmVn aXN0ZXJfYWNjZXNzX2luaXQoaW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOwo+ICAKPiAg CWRzcGFyYiA9IHJlYWRfcmVnKDB4NzAwMzApOwo+ICAJZncxID0gcmVhZF9yZWcoMHg3MDAzNCk7 Cj4gQEAgLTEwODQsNyArMTA4Miw3IEBAIHN0YXRpYyB2b2lkIGdlbjNfd21fZHVtcCh2b2lkKQo+ ICAJdWludDMyX3QgbWlfYXJiX3N0YXRlOwo+ICAJc3RydWN0IGdtY2hfd20gd21zW01BWF9QTEFO RV0gPSB7fTsKPiAgCj4gLQlpbnRlbF9yZWdpc3Rlcl9hY2Nlc3NfaW5pdChpZ3RfZGV2aWNlX2dl dF9wY2lfZGV2aWNlKGZkKSwgMCwgLTEpOwo+ICsJaW50ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQo aW50ZWxfZ2V0X3BjaV9kZXZpY2UoKSwgMCwgLTEpOwo+ICAKPiAgCWRzcGFyYiA9IHJlYWRfcmVn KDB4NzAwMzApOwo+ICAJaW5zdHBtID0gcmVhZF9yZWcoMHgyMGMwKTsKPiBAQCAtMTE1Myw3ICsx MTUxLDcgQEAgc3RhdGljIHZvaWQgZ2VuMl93bV9kdW1wKHZvaWQpCj4gIAl1aW50MzJfdCBtaV9z dGF0ZTsKPiAgCXN0cnVjdCBnbWNoX3dtIHdtc1tNQVhfUExBTkVdID0ge307Cj4gIAo+IC0JaW50 ZWxfcmVnaXN0ZXJfYWNjZXNzX2luaXQoaWd0X2RldmljZV9nZXRfcGNpX2RldmljZShmZCksIDAs IC0xKTsKPiArCWludGVsX3JlZ2lzdGVyX2FjY2Vzc19pbml0KGludGVsX2dldF9wY2lfZGV2aWNl KCksIDAsIC0xKTsKPiAgCj4gIAlkc3BhcmIgPSByZWFkX3JlZygweDcwMDMwKTsKPiAgCW1lbV9t b2RlID0gcmVhZF9yZWcoMHgyMGNjKTsKPiBAQCAtMTIyOCw4ICsxMjI2LDcgQEAgc3RhdGljIHZv aWQgZ2VuMl93bV9kdW1wKHZvaWQpCj4gIAo+ICBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQo+ICB7Cj4gLQlmZCA9IGRybV9vcGVuX2RyaXZlcihEUklWRVJfSU5URUwpOwo+IC0JZGV2 aWQgPSBpZ3RfZGV2aWNlX2dldF9wY2lfZGV2aWNlKGZkKS0+ZGV2aWNlX2lkOwo+ICsJZGV2aWQg PSBpbnRlbF9nZXRfcGNpX2RldmljZSgpLT5kZXZpY2VfaWQ7Cj4gIAo+ICAJaWYgKGludGVsX2dl bihkZXZpZCkgPj0gOSkgewo+ICAJCXNrbF93bV9kdW1wKCk7Cj4gQEAgLTEyNTMsNyArMTI1MCw1 IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyICphcmd2W10pCj4gIAkJcmV0dXJuIDE7Cj4gIAl9 Cj4gIAo+IC0JY2xvc2UoZmQpOwo+IC0KPiAgCXJldHVybiAwOwo+ICB9CgotLSAKSmFuaSBOaWt1 bGEsIEludGVsIE9wZW4gU291cmNlIEdyYXBoaWNzIENlbnRlcgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwppZ3QtZGV2IG1haWxpbmcgbGlzdAppZ3QtZGV2 QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2lndC1kZXY=