From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?Q?Enric_Balletb=C3=B2_i_Serra?= Subject: Re: [RESEND PATCH 4/4] omap: drop board-igep0030.c Date: Mon, 16 May 2011 09:18:44 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 Return-path: Received: from mail-iy0-f174.google.com ([209.85.210.174]:56247 "EHLO mail-iy0-f174.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751645Ab1EPHSp (ORCPT ); Mon, 16 May 2011 03:18:45 -0400 Received: by iyb14 with SMTP id 14so3504837iyb.19 for ; Mon, 16 May 2011 00:18:44 -0700 (PDT) In-Reply-To: Sender: linux-omap-owner@vger.kernel.org List-Id: linux-omap@vger.kernel.org To: Mike Rapoport Cc: tony@atomide.com, linux-omap@vger.kernel.org, linux-arm-kernel@lists.infradead.org MjAxMS81LzEyIE1pa2UgUmFwb3BvcnQgPG1pa2VAY29tcHVsYWIuY28uaWw+Ogo+IHNpbmNlIGl0 IGlzIG1lcmdlZCBpbnRvIGJvYXJkLWlnZXAwMDIwLmMKPgo+IFNpZ25lZC1vZmYtYnk6IE1pa2Ug UmFwb3BvcnQgPG1pa2VAY29tcHVsYWIuY28uaWw+Cj4gLS0tCj4gwqBhcmNoL2FybS9tYWNoLW9t YXAyL0tjb25maWcgwqAgwqAgwqAgwqAgwqB8IMKgIMKgMSArCj4gwqBhcmNoL2FybS9tYWNoLW9t YXAyL01ha2VmaWxlIMKgIMKgIMKgIMKgIHwgwqAgwqAyIC0KPiDCoGFyY2gvYXJtL21hY2gtb21h cDIvYm9hcmQtaWdlcDAwMzAuYyB8IMKgNDM4IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KPiDCoDMgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb25zKCspLCA0NDAgZGVsZXRpb25z KC0pCj4gwqBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1pZ2Vw MDAzMC5jCj4KPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9LY29uZmlnIGIvYXJj aC9hcm0vbWFjaC1vbWFwMi9LY29uZmlnCj4gaW5kZXggYjk5N2EzNS4uMTlkNTg5MSAxMDA2NDQK PiAtLS0gYS9hcmNoL2FybS9tYWNoLW9tYXAyL0tjb25maWcKPiArKysgYi9hcmNoL2FybS9tYWNo LW9tYXAyL0tjb25maWcKPiBAQCAtMjg4LDYgKzI4OCw3IEBAIGNvbmZpZyBNQUNIX0lHRVAwMDMw Cj4gwqAgwqAgwqAgwqBkZXBlbmRzIG9uIEFSQ0hfT01BUDMKPiDCoCDCoCDCoCDCoGRlZmF1bHQg eQo+IMKgIMKgIMKgIMKgc2VsZWN0IE9NQVBfUEFDS0FHRV9DQkIKPiArIMKgIMKgIMKgIHNlbGVj dCBNQUNIX0lHRVAwMDIwCj4KPiDCoGNvbmZpZyBNQUNIX1NCQzM1MzAKPiDCoCDCoCDCoCDCoGJv b2wgIk9NQVAzIFNCQyBTVEFMS0VSIGJvYXJkIgo+IGRpZmYgLS1naXQgYS9hcmNoL2FybS9tYWNo LW9tYXAyL01ha2VmaWxlIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9NYWtlZmlsZQo+IGluZGV4IGEw YzJjYWUuLjE4NmY0ODIgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9NYWtlZmls ZQo+ICsrKyBiL2FyY2gvYXJtL21hY2gtb21hcDIvTWFrZWZpbGUKPiBAQCAtMjI5LDggKzIyOSw2 IEBAIG9iai0kKENPTkZJR19NQUNIX0NNX1QzNSkgwqAgwqAgwqAgwqAgwqAgKz0gYm9hcmQtY20t dDM1Lm8gXAo+IMKgb2JqLSQoQ09ORklHX01BQ0hfQ01fVDM1MTcpIMKgIMKgIMKgIMKgIMKgIMKg Kz0gYm9hcmQtY20tdDM1MTcubwo+IMKgb2JqLSQoQ09ORklHX01BQ0hfSUdFUDAwMjApIMKgIMKg IMKgIMKgIMKgIMKgKz0gYm9hcmQtaWdlcDAwMjAubyBcCj4gwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgaHNtbWMubwo+IC1vYmot JChDT05GSUdfTUFDSF9JR0VQMDAzMCkgwqAgwqAgwqAgwqAgwqAgwqArPSBib2FyZC1pZ2VwMDAz MC5vIFwKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgaHNtbWMubwo+IMKgb2JqLSQoQ09ORklHX01BQ0hfT01BUDNfVE9VQ0hC T09LKSDCoCDCoCArPSBib2FyZC1vbWFwM3RvdWNoYm9vay5vIFwKPiDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCBoc21tYy5vCj4g wqBvYmotJChDT05GSUdfTUFDSF9PTUFQXzQ0MzBTRFApIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg Kz0gYm9hcmQtNDQzMHNkcC5vIFwKPiBkaWZmIC0tZ2l0IGEvYXJjaC9hcm0vbWFjaC1vbWFwMi9i b2FyZC1pZ2VwMDAzMC5jIGIvYXJjaC9hcm0vbWFjaC1vbWFwMi9ib2FyZC1pZ2VwMDAzMC5jCj4g ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggODNmNmJlMi4uMDAwMDAwMAo+IC0tLSBh L2FyY2gvYXJtL21hY2gtb21hcDIvYm9hcmQtaWdlcDAwMzAuYwo+ICsrKyAvZGV2L251bGwKPiBA QCAtMSw0MzggKzAsMCBAQAo+IC0vKgo+IC0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgLSBJU0VFIDIw MDcgU0wKPiAtICoKPiAtICogTW9kaWZpZWQgZnJvbSBtYWNoLW9tYXAyL2JvYXJkLWdlbmVyaWMu Ywo+IC0gKgo+IC0gKiBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp c3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQo+IC0gKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIHZlcnNpb24gMiBhcwo+IC0gKiBwdWJsaXNoZWQg YnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbi4KPiAtICovCj4gLQo+IC0jaW5jbHVkZSA8 bGludXgva2VybmVsLmg+Cj4gLSNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Cj4gLSNpbmNsdWRlIDxs aW51eC9wbGF0Zm9ybV9kZXZpY2UuaD4KPiAtI2luY2x1ZGUgPGxpbnV4L2RlbGF5Lmg+Cj4gLSNp bmNsdWRlIDxsaW51eC9lcnIuaD4KPiAtI2luY2x1ZGUgPGxpbnV4L2Nsay5oPgo+IC0jaW5jbHVk ZSA8bGludXgvaW8uaD4KPiAtI2luY2x1ZGUgPGxpbnV4L2dwaW8uaD4KPiAtI2luY2x1ZGUgPGxp bnV4L2ludGVycnVwdC5oPgo+IC0KPiAtI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRvci9tYWNoaW5l Lmg+Cj4gLSNpbmNsdWRlIDxsaW51eC9yZWd1bGF0b3IvZml4ZWQuaD4KPiAtI2luY2x1ZGUgPGxp bnV4L2kyYy90d2wuaD4KPiAtI2luY2x1ZGUgPGxpbnV4L21tYy9ob3N0Lmg+Cj4gLQo+IC0jaW5j bHVkZSA8YXNtL21hY2gtdHlwZXMuaD4KPiAtI2luY2x1ZGUgPGFzbS9tYWNoL2FyY2guaD4KPiAt Cj4gLSNpbmNsdWRlIDxwbGF0L2JvYXJkLmg+Cj4gLSNpbmNsdWRlIDxwbGF0L2NvbW1vbi5oPgo+ IC0jaW5jbHVkZSA8cGxhdC9ncG1jLmg+Cj4gLSNpbmNsdWRlIDxwbGF0L3VzYi5oPgo+IC0jaW5j bHVkZSA8cGxhdC9vbmVuYW5kLmg+Cj4gLQo+IC0jaW5jbHVkZSAibXV4LmgiCj4gLSNpbmNsdWRl ICJoc21tYy5oIgo+IC0jaW5jbHVkZSAic2RyYW0tbnVtb255eC1tNjVreHh4eGFtLmgiCj4gLSNp bmNsdWRlICJjb21tb24tYm9hcmQtZGV2aWNlcy5oIgo+IC0KPiAtI2RlZmluZSBJR0VQM19HUElP X0xFRDBfR1JFRU4gwqA1NAo+IC0jZGVmaW5lIElHRVAzX0dQSU9fTEVEMF9SRUQgwqAgwqA1Mwo+ IC0jZGVmaW5lIElHRVAzX0dQSU9fTEVEMV9SRUQgwqAgwqAxNgo+IC0KPiAtI2RlZmluZSBJR0VQ M19HUElPX1dJRklfTlBEIMKgIMKgMTM4Cj4gLSNkZWZpbmUgSUdFUDNfR1BJT19XSUZJX05SRVNF VCAxMzkKPiAtI2RlZmluZSBJR0VQM19HUElPX0JUX05SRVNFVCDCoCAxMzcKPiAtCj4gLSNkZWZp bmUgSUdFUDNfR1BJT19VU0JIX05SRVNFVCDCoDE4Mwo+IC0KPiAtCj4gLSNpZiBkZWZpbmVkKENP TkZJR19NVERfT05FTkFORF9PTUFQMikgfHwgXAo+IC0gwqAgwqAgwqAgZGVmaW5lZChDT05GSUdf TVREX09ORU5BTkRfT01BUDJfTU9EVUxFKQo+IC0KPiAtI2RlZmluZSBPTkVOQU5EX01BUCDCoCDC oCDCoCDCoCDCoCDCoCAweDIwMDAwMDAwCj4gLQo+IC0vKgo+IC0gKiB4MiBGbGFzaCBidWlsdC1p biBDT01CTyBQT1AgTUVNT1JZCj4gLSAqIFNpbmNlIHRoZSBkZXZpY2UgaXMgZXF1aXBwZWQgd2l0 aCB0d28gRGF0YVJBTXMsIGFuZCB0d28tcGxhbmUgTkFORAo+IC0gKiBGbGFzaCBtZW1vcnkgYXJy YXksIHRoZXNlIHR3byBjb21wb25lbnQgZW5hYmxlcyBzaW11bHRhbmVvdXMgcHJvZ3JhbQo+IC0g KiBvZiA0S2lCLiBQbGFuZTEgaGFzIG9ubHkgZXZlbiBibG9ja3Mgc3VjaCBhcyBibG9jazAsIGJs b2NrMiwgYmxvY2s0Cj4gLSAqIHdoaWxlIFBsYW5lMiBoYXMgb25seSBvZGQgYmxvY2tzIHN1Y2gg YXMgYmxvY2sxLCBibG9jazMsIGJsb2NrNS4KPiAtICogU28gTVREIHJlZ2FyZHMgaXQgYXMgNEtp QiBwYWdlIHNpemUgYW5kIDI1NktpQiBibG9jayBzaXplIDY0KigyKjIwNDgpCj4gLSAqLwo+IC0K PiAtc3RhdGljIHN0cnVjdCBtdGRfcGFydGl0aW9uIGlnZXAzX29uZW5hbmRfcGFydGl0aW9uc1td ID0gewo+IC0gwqAgwqAgwqAgewo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgLm5hbWUgwqAgwqAg wqAgwqAgwqAgPSAiWC1Mb2FkZXIiLAo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgLm9mZnNldCDC oCDCoCDCoCDCoCA9IDAsCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCAuc2l6ZSDCoCDCoCDCoCDC oCDCoCA9IDIgKiAoNjQqKDIqMjA0OCkpCj4gLSDCoCDCoCDCoCB9LAo+IC0gwqAgwqAgwqAgewo+ IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgLm5hbWUgwqAgwqAgwqAgwqAgwqAgPSAiVS1Cb290IiwK PiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC5vZmZzZXQgwqAgwqAgwqAgwqAgPSBNVERQQVJUX09G U19BUFBFTkQsCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCAuc2l6ZSDCoCDCoCDCoCDCoCDCoCA9 IDYgKiAoNjQqKDIqMjA0OCkpLAo+IC0gwqAgwqAgwqAgfSwKPiAtIMKgIMKgIMKgIHsKPiAtIMKg IMKgIMKgIMKgIMKgIMKgIMKgIC5uYW1lIMKgIMKgIMKgIMKgIMKgID0gIkVudmlyb25tZW50IiwK PiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC5vZmZzZXQgwqAgwqAgwqAgwqAgPSBNVERQQVJUX09G U19BUFBFTkQsCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCAuc2l6ZSDCoCDCoCDCoCDCoCDCoCA9 IDIgKiAoNjQqKDIqMjA0OCkpLAo+IC0gwqAgwqAgwqAgfSwKPiAtIMKgIMKgIMKgIHsKPiAtIMKg IMKgIMKgIMKgIMKgIMKgIMKgIC5uYW1lIMKgIMKgIMKgIMKgIMKgID0gIktlcm5lbCIsCj4gLSDC oCDCoCDCoCDCoCDCoCDCoCDCoCAub2Zmc2V0IMKgIMKgIMKgIMKgID0gTVREUEFSVF9PRlNfQVBQ RU5ELAo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgLnNpemUgwqAgwqAgwqAgwqAgwqAgPSAxMiAq ICg2NCooMioyMDQ4KSksCj4gLSDCoCDCoCDCoCB9LAo+IC0gwqAgwqAgwqAgewo+IC0gwqAgwqAg wqAgwqAgwqAgwqAgwqAgLm5hbWUgwqAgwqAgwqAgwqAgwqAgPSAiRmlsZSBTeXN0ZW0iLAo+IC0g wqAgwqAgwqAgwqAgwqAgwqAgwqAgLm9mZnNldCDCoCDCoCDCoCDCoCA9IE1URFBBUlRfT0ZTX0FQ UEVORCwKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC5zaXplIMKgIMKgIMKgIMKgIMKgID0gTVRE UEFSVF9TSVpfRlVMTCwKPiAtIMKgIMKgIMKgIH0sCj4gLX07Cj4gLQo+IC1zdGF0aWMgc3RydWN0 IG9tYXBfb25lbmFuZF9wbGF0Zm9ybV9kYXRhIGlnZXAzX29uZW5hbmRfcGRhdGEgPSB7Cj4gLSDC oCDCoCDCoCAucGFydHMgPSBpZ2VwM19vbmVuYW5kX3BhcnRpdGlvbnMsCj4gLSDCoCDCoCDCoCAu bnJfcGFydHMgPSBBUlJBWV9TSVpFKGlnZXAzX29uZW5hbmRfcGFydGl0aW9ucyksCj4gLSDCoCDC oCDCoCAub25lbmFuZF9zZXR1cCA9IE5VTEwsCj4gLSDCoCDCoCDCoCAuZG1hX2NoYW5uZWwgwqAg wqA9IC0xLCDCoCAvKiBkaXNhYmxlIERNQSBpbiBPTUFQIE9uZU5BTkQgZHJpdmVyICovCj4gLX07 Cj4gLQo+IC1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBpZ2VwM19vbmVuYW5kX2Rldmlj ZSA9IHsKPiAtIMKgIMKgIMKgIC5uYW1lIMKgIMKgIMKgIMKgIMKgID0gIm9tYXAyLW9uZW5hbmQi LAo+IC0gwqAgwqAgwqAgLmlkIMKgIMKgIMKgIMKgIMKgIMKgID0gLTEsCj4gLSDCoCDCoCDCoCAu ZGV2ID0gewo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgLnBsYXRmb3JtX2RhdGEgPSAmaWdlcDNf b25lbmFuZF9wZGF0YSwKPiAtIMKgIMKgIMKgIH0sCj4gLX07Cj4gLQo+IC1zdGF0aWMgdm9pZCBf X2luaXQgaWdlcDNfZmxhc2hfaW5pdCh2b2lkKQo+IC17Cj4gLSDCoCDCoCDCoCB1OCBjcyA9IDA7 Cj4gLSDCoCDCoCDCoCB1OCBvbmVuYW5kY3MgPSBHUE1DX0NTX05VTSArIDE7Cj4gLQo+IC0gwqAg wqAgwqAgZm9yIChjcyA9IDA7IGNzIDwgR1BNQ19DU19OVU07IGNzKyspIHsKPiAtIMKgIMKgIMKg IMKgIMKgIMKgIMKgIHUzMiByZXQ7Cj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCByZXQgPSBncG1j X2NzX3JlYWRfcmVnKGNzLCBHUE1DX0NTX0NPTkZJRzEpOwo+IC0KPiAtIMKgIMKgIMKgIMKgIMKg IMKgIMKgIC8qIENoZWNrIGlmIE5BTkQvb25lTkFORCBpcyBjb25maWd1cmVkICovCj4gLSDCoCDC oCDCoCDCoCDCoCDCoCDCoCBpZiAoKHJldCAmIDB4QzAwKSA9PSAweDgwMCkKPiAtIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIE5BTkQgZm91bmQgKi8KPiAtIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHByX2VycigiSUdFUDM6IFVuc3VwcG9ydGVkIE5BTkQgZm91 bmRcbiIpOwo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgZWxzZSB7Cj4gLSDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCByZXQgPSBncG1jX2NzX3JlYWRfcmVnKGNzLCBHUE1DX0NTX0NP TkZJRzcpOwo+IC0KPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIGlmICgocmV0 ICYgMHgzRikgPT0gKE9ORU5BTkRfTUFQID4+IDI0KSkKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC8qIE9uZU5BTkQgZm91bmQgKi8KPiAtIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIG9uZW5hbmRjcyA9IGNzOwo+IC0g wqAgwqAgwqAgwqAgwqAgwqAgwqAgfQo+IC0gwqAgwqAgwqAgfQo+IC0KPiAtIMKgIMKgIMKgIGlm IChvbmVuYW5kY3MgPiBHUE1DX0NTX05VTSkgewo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgcHJf ZXJyKCJJR0VQMzogVW5hYmxlIHRvIGZpbmQgY29uZmlndXJhdGlvbiBpbiBHUE1DXG4iKTsKPiAt IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHJldHVybjsKPiAtIMKgIMKgIMKgIH0KPiAtCj4gLSDCoCDC oCDCoCBpZ2VwM19vbmVuYW5kX3BkYXRhLmNzID0gb25lbmFuZGNzOwo+IC0KPiAtIMKgIMKgIMKg IGlmIChwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmlnZXAzX29uZW5hbmRfZGV2aWNlKSA8IDAp Cj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCBwcl9lcnIoIklHRVAzOiBVbmFibGUgdG8gcmVnaXN0 ZXIgT25lTkFORCBkZXZpY2VcbiIpOwo+IC19Cj4gLQo+IC0jZWxzZQo+IC1zdGF0aWMgdm9pZCBf X2luaXQgaWdlcDNfZmxhc2hfaW5pdCh2b2lkKSB7fQo+IC0jZW5kaWYKPiAtCj4gLXN0YXRpYyBz dHJ1Y3QgcmVndWxhdG9yX2NvbnN1bWVyX3N1cHBseSBpZ2VwM192bW1jMV9zdXBwbHkgPQo+IC0g wqAgwqAgwqAgUkVHVUxBVE9SX1NVUFBMWSgidm1tYyIsICJvbWFwX2hzbW1jLjAiKTsKPiAtCj4g LS8qIFZNTUMxIGZvciBPTUFQIFZERF9NTUMxIChpL28pIGFuZCBNTUMxIGNhcmQgKi8KPiAtc3Rh dGljIHN0cnVjdCByZWd1bGF0b3JfaW5pdF9kYXRhIGlnZXAzX3ZtbWMxID0gewo+IC0gwqAgwqAg wqAgLmNvbnN0cmFpbnRzID0gewo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgLm1pbl91ViDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCA9IDE4NTAwMDAsCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCAu bWF4X3VWIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgID0gMzE1MDAwMCwKPiAtIMKgIMKgIMKgIMKg IMKgIMKgIMKgIC52YWxpZF9tb2Rlc19tYXNrIMKgIMKgIMKgID0gUkVHVUxBVE9SX01PREVfTk9S TUFMCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCB8IFJFR1VMQVRPUl9NT0RFX1NUQU5EQlksCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDC oCAudmFsaWRfb3BzX21hc2sgwqAgwqAgwqAgwqAgPSBSRUdVTEFUT1JfQ0hBTkdFX1ZPTFRBR0UK PiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIHwgUkVHVUxBVE9SX0NIQU5HRV9NT0RFCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IFJFR1VMQVRPUl9DSEFOR0VfU1RBVFVT LAo+IC0gwqAgwqAgwqAgfSwKPiAtIMKgIMKgIMKgIC5udW1fY29uc3VtZXJfc3VwcGxpZXMgwqA9 IDEsCj4gLSDCoCDCoCDCoCAuY29uc3VtZXJfc3VwcGxpZXMgwqAgwqAgwqA9ICZpZ2VwM192bW1j MV9zdXBwbHksCj4gLX07Cj4gLQo+IC1zdGF0aWMgc3RydWN0IHJlZ3VsYXRvcl9jb25zdW1lcl9z dXBwbHkgaWdlcDNfdmlvX3N1cHBseSA9Cj4gLSDCoCDCoCDCoCBSRUdVTEFUT1JfU1VQUExZKCJ2 bW1jX2F1eCIsICJvbWFwX2hzbW1jLjEiKTsKPiAtCj4gLXN0YXRpYyBzdHJ1Y3QgcmVndWxhdG9y X2luaXRfZGF0YSBpZ2VwM192aW8gPSB7Cj4gLSDCoCDCoCDCoCAuY29uc3RyYWludHMgPSB7Cj4g LSDCoCDCoCDCoCDCoCDCoCDCoCDCoCAubWluX3VWIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgID0g MTgwMDAwMCwKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC5tYXhfdVYgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgPSAxODAwMDAwLAo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgLmFwcGx5X3VWIMKg IMKgIMKgIMKgIMKgIMKgIMKgID0gMSwKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC52YWxpZF9t b2Rlc19tYXNrIMKgIMKgIMKgID0gUkVHVUxBVE9SX01PREVfTk9STUFMCj4gLSDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8IFJFR1VMQVRP Ul9NT0RFX1NUQU5EQlksCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCAudmFsaWRfb3BzX21hc2sg wqAgwqAgwqAgwqAgPSBSRUdVTEFUT1JfQ0hBTkdFX1ZPTFRBR0UKPiAtIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHwgUkVHVUxBVE9SX0NI QU5HRV9NT0RFCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCB8IFJFR1VMQVRPUl9DSEFOR0VfU1RBVFVTLAo+IC0gwqAgwqAgwqAgfSwK PiAtIMKgIMKgIMKgIC5udW1fY29uc3VtZXJfc3VwcGxpZXMgwqA9IDEsCj4gLSDCoCDCoCDCoCAu Y29uc3VtZXJfc3VwcGxpZXMgwqAgwqAgwqA9ICZpZ2VwM192aW9fc3VwcGx5LAo+IC19Owo+IC0K PiAtc3RhdGljIHN0cnVjdCByZWd1bGF0b3JfY29uc3VtZXJfc3VwcGx5IGlnZXAzX3ZtbWMyX3N1 cHBseSA9Cj4gLSDCoCDCoCDCoCBSRUdVTEFUT1JfU1VQUExZKCJ2bW1jIiwgIm9tYXBfaHNtbWMu MSIpOwo+IC0KPiAtc3RhdGljIHN0cnVjdCByZWd1bGF0b3JfaW5pdF9kYXRhIGlnZXAzX3ZtbWMy ID0gewo+IC0gwqAgwqAgwqAgLmNvbnN0cmFpbnRzIMKgIMKgPSB7Cj4gLSDCoCDCoCDCoCDCoCDC oCDCoCDCoCAudmFsaWRfbW9kZXNfbWFzayDCoCDCoCDCoCA9IFJFR1VMQVRPUl9NT0RFX05PUk1B TCwKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC5hbHdheXNfb24gwqAgwqAgwqAgwqAgwqAgwqAg wqA9IDEsCj4gLSDCoCDCoCDCoCB9LAo+IC0gwqAgwqAgwqAgLm51bV9jb25zdW1lcl9zdXBwbGll cyDCoD0gMSwKPiAtIMKgIMKgIMKgIC5jb25zdW1lcl9zdXBwbGllcyDCoCDCoCDCoD0gJmlnZXAz X3ZtbWMyX3N1cHBseSwKPiAtfTsKPiAtCj4gLXN0YXRpYyBzdHJ1Y3QgZml4ZWRfdm9sdGFnZV9j b25maWcgaWdlcDNfdndsYW4gPSB7Cj4gLSDCoCDCoCDCoCAuc3VwcGx5X25hbWUgwqAgwqAgwqAg wqAgwqAgwqA9ICJ2d2xhbiIsCj4gLSDCoCDCoCDCoCAubWljcm92b2x0cyDCoCDCoCDCoCDCoCDC oCDCoCA9IDMzMDAwMDAsCj4gLSDCoCDCoCDCoCAuZ3BpbyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCA9IC1FSU5WQUwsCj4gLSDCoCDCoCDCoCAuZW5hYmxlZF9hdF9ib290IMKgIMKgIMKgIMKg PSAxLAo+IC0gwqAgwqAgwqAgLmluaXRfZGF0YSDCoCDCoCDCoCDCoCDCoCDCoCDCoD0gJmlnZXAz X3ZtbWMyLAo+IC19Owo+IC0KPiAtc3RhdGljIHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgaWdlcDNf dndsYW5fZGV2aWNlID0gewo+IC0gwqAgwqAgwqAgLm5hbWUgwqAgPSAicmVnLWZpeGVkLXZvbHRh Z2UiLAo+IC0gwqAgwqAgwqAgLmlkIMKgIMKgID0gMCwKPiAtIMKgIMKgIMKgIC5kZXYgwqAgwqA9 IHsKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC5wbGF0Zm9ybV9kYXRhID0gJmlnZXAzX3Z3bGFu LAo+IC0gwqAgwqAgwqAgfSwKPiAtfTsKPiAtCj4gLXN0YXRpYyBzdHJ1Y3Qgb21hcDJfaHNtbWNf aW5mbyBtbWNbXSA9IHsKPiAtIMKgIMKgIMKgIFswXSA9IHsKPiAtIMKgIMKgIMKgIMKgIMKgIMKg IMKgIC5tbWMgwqAgwqAgwqAgwqAgwqAgwqA9IDEsCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCAu Y2FwcyDCoCDCoCDCoCDCoCDCoCA9IE1NQ19DQVBfNF9CSVRfREFUQSwKPiAtIMKgIMKgIMKgIMKg IMKgIMKgIMKgIC5ncGlvX2NkIMKgIMKgIMKgIMKgPSAtRUlOVkFMLAo+IC0gwqAgwqAgwqAgwqAg wqAgwqAgwqAgLmdwaW9fd3AgwqAgwqAgwqAgwqA9IC1FSU5WQUwsCj4gLSDCoCDCoCDCoCB9LAo+ IC0jaWYgZGVmaW5lZChDT05GSUdfTElCRVJUQVNfU0RJTykgfHwgZGVmaW5lZChDT05GSUdfTElC RVJUQVNfU0RJT19NT0RVTEUpCj4gLSDCoCDCoCDCoCBbMV0gPSB7Cj4gLSDCoCDCoCDCoCDCoCDC oCDCoCDCoCAubW1jIMKgIMKgIMKgIMKgIMKgIMKgPSAyLAo+IC0gwqAgwqAgwqAgwqAgwqAgwqAg wqAgLmNhcHMgwqAgwqAgwqAgwqAgwqAgPSBNTUNfQ0FQXzRfQklUX0RBVEEsCj4gLSDCoCDCoCDC oCDCoCDCoCDCoCDCoCAuZ3Bpb19jZCDCoCDCoCDCoCDCoD0gLUVJTlZBTCwKPiAtIMKgIMKgIMKg IMKgIMKgIMKgIMKgIC5ncGlvX3dwIMKgIMKgIMKgIMKgPSAtRUlOVkFMLAo+IC0gwqAgwqAgwqAg fSwKPiAtI2VuZGlmCj4gLSDCoCDCoCDCoCB7fSDCoCDCoCDCoC8qIFRlcm1pbmF0b3IgKi8KPiAt fTsKPiAtCj4gLSNpZiBkZWZpbmVkKENPTkZJR19MRURTX0dQSU8pIHx8IGRlZmluZWQoQ09ORklH X0xFRFNfR1BJT19NT0RVTEUpCj4gLSNpbmNsdWRlIDxsaW51eC9sZWRzLmg+Cj4gLQo+IC1zdGF0 aWMgc3RydWN0IGdwaW9fbGVkIGlnZXAzX2dwaW9fbGVkc1tdID0gewo+IC0gwqAgwqAgwqAgWzBd ID0gewo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgLm5hbWUgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgPSAiZ3Bpby1sZWQ6cmVkOmQwIiwKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC5ncGlv IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgID0gSUdFUDNfR1BJT19MRUQwX1JFRCwKPiAtIMKg IMKgIMKgIMKgIMKgIMKgIMKgIC5kZWZhdWx0X3RyaWdnZXIgwqAgwqAgwqAgwqA9ICJkZWZhdWx0 LW9mZiIKPiAtIMKgIMKgIMKgIH0sCj4gLSDCoCDCoCDCoCBbMV0gPSB7Cj4gLSDCoCDCoCDCoCDC oCDCoCDCoCDCoCAubmFtZSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA9ICJncGlvLWxlZDpn cmVlbjpkMCIsCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCAuZ3BpbyDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCA9IElHRVAzX0dQSU9fTEVEMF9HUkVFTiwKPiAtIMKgIMKgIMKgIMKgIMKgIMKg IMKgIC5kZWZhdWx0X3RyaWdnZXIgwqAgwqAgwqAgwqA9ICJkZWZhdWx0LW9mZiIsCj4gLSDCoCDC oCDCoCB9LAo+IC0gwqAgwqAgwqAgWzJdID0gewo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgLm5h bWUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPSAiZ3Bpby1sZWQ6cmVkOmQxIiwKPiAtIMKg IMKgIMKgIMKgIMKgIMKgIMKgIC5ncGlvIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgID0gSUdF UDNfR1BJT19MRUQxX1JFRCwKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIC5kZWZhdWx0X3RyaWdn ZXIgwqAgwqAgwqAgwqA9ICJkZWZhdWx0LW9mZiIsCj4gLSDCoCDCoCDCoCB9LAo+IC0gwqAgwqAg wqAgWzNdID0gewo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgLm5hbWUgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgPSAiZ3Bpby1sZWQ6Z3JlZW46ZDEiLAo+IC0gwqAgwqAgwqAgwqAgwqAgwqAg wqAgLmRlZmF1bHRfdHJpZ2dlciDCoCDCoCDCoCDCoD0gImhlYXJ0YmVhdCIsCj4gLSDCoCDCoCDC oCDCoCDCoCDCoCDCoCAuZ3BpbyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA9IC1FSU5WQUws IC8qIGdldHMgcmVwbGFjZWQgKi8KPiAtIMKgIMKgIMKgIH0sCj4gLX07Cj4gLQo+IC1zdGF0aWMg c3RydWN0IGdwaW9fbGVkX3BsYXRmb3JtX2RhdGEgaWdlcDNfbGVkX3BkYXRhID0gewo+IC0gwqAg wqAgwqAgLmxlZHMgwqAgwqAgwqAgwqAgwqAgPSBpZ2VwM19ncGlvX2xlZHMsCj4gLSDCoCDCoCDC oCAubnVtX2xlZHMgwqAgwqAgwqAgPSBBUlJBWV9TSVpFKGlnZXAzX2dwaW9fbGVkcyksCj4gLX07 Cj4gLQo+IC1zdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RldmljZSBpZ2VwM19sZWRfZGV2aWNlID0g ewo+IC0gwqAgwqAgwqAgwqAubmFtZSDCoCA9ICJsZWRzLWdwaW8iLAo+IC0gwqAgwqAgwqAgwqAu aWQgwqAgwqAgPSAtMSwKPiAtIMKgIMKgIMKgIMKgLmRldiDCoCDCoD0gewo+IC0gwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAucGxhdGZvcm1fZGF0YSA9ICZpZ2VwM19sZWRfcGRhdGEsCj4gLSDCoCDC oCDCoCB9LAo+IC19Owo+IC0KPiAtc3RhdGljIHZvaWQgX19pbml0IGlnZXAzX2xlZHNfaW5pdCh2 b2lkKQo+IC17Cj4gLSDCoCDCoCDCoCBwbGF0Zm9ybV9kZXZpY2VfcmVnaXN0ZXIoJmlnZXAzX2xl ZF9kZXZpY2UpOwo+IC19Cj4gLQo+IC0jZWxzZQo+IC1zdGF0aWMgc3RydWN0IGdwaW8gaWdlcDNf Z3Bpb19sZWRzW10gX19pbml0ZGF0YSA9IHsKPiAtIMKgIMKgIMKgIHsgSUdFUDNfR1BJT19MRUQw X1JFRCwgwqAgR1BJT0ZfT1VUX0lOSVRfSElHSCwgImdwaW8tbGVkOnJlZDpkMCIgwqAgfSwKPiAt IMKgIMKgIMKgIHsgSUdFUDNfR1BJT19MRUQwX0dSRUVOLCBHUElPRl9PVVRfSU5JVF9ISUdILCAi Z3Bpby1sZWQ6Z3JlZW46ZDAiIH0sCj4gLSDCoCDCoCDCoCB7IElHRVAzX0dQSU9fTEVEMV9SRUQs IMKgIEdQSU9GX09VVF9JTklUX0hJR0gsICJncGlvLWxlZDpyZWQ6ZDEiIMKgIH0sCj4gLX07Cj4g LQo+IC1zdGF0aWMgaW5saW5lIHZvaWQgaWdlcDNfbGVkc19pbml0KHZvaWQpCj4gLXsKPiAtIMKg IMKgIMKgIGlmIChncGlvX3JlcXVlc3RfYXJyYXkoaWdlcDNfZ3Bpb19sZWRzLCBBUlJBWV9TSVpF KGlnZXAzX2dwaW9fbGVkcykpKSB7Cj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCBwcl93YXJuaW5n KCJJR0VQMzogQ291bGQgbm90IG9idGFpbiBsZWRzIGdwaW9zXG4iKTsKPiAtIMKgIMKgIMKgIMKg IMKgIMKgIMKgIHJldHVybjsKPiAtIMKgIMKgIMKgIH0KPiAtIMKgIMKgIMKgIGdwaW9fZXhwb3J0 KElHRVAzX0dQSU9fTEVEMF9SRUQsIDApOwo+IC0gwqAgwqAgwqAgZ3Bpb19leHBvcnQoSUdFUDNf R1BJT19MRUQwX0dSRUVOLCAwKTsKPiAtIMKgIMKgIMKgIGdwaW9fZXhwb3J0KElHRVAzX0dQSU9f TEVEMV9SRUQsIDApOwo+IC19Cj4gLSNlbmRpZgo+IC0KPiAtc3RhdGljIGludCBpZ2VwM190d2w0 MDMwX2dwaW9fc2V0dXAoc3RydWN0IGRldmljZSAqZGV2LAo+IC0gwqAgwqAgwqAgwqAgwqAgwqAg wqAgdW5zaWduZWQgZ3BpbywgdW5zaWduZWQgbmdwaW8pCj4gLXsKPiAtI2lmICFkZWZpbmVkKENP TkZJR19MRURTX0dQSU8pICYmICFkZWZpbmVkKENPTkZJR19MRURTX0dQSU9fTU9EVUxFKQo+IC0g wqAgwqAgwqAgaW50IHJldDsKPiAtCj4gLSDCoCDCoCDCoCAvKiBUV0w0MDMwX0dQSU9fTUFYICsg MSA9PSBsZWRCIChvdXQsIGFjdGl2ZSBsb3cgTEVEKSAqLwo+IC0gwqAgwqAgwqAgcmV0ID0gZ3Bp b19yZXF1ZXN0X29uZShncGlvICsgVFdMNDAzMF9HUElPX01BWCArIDEsIEdQSU9GX09VVF9JTklU X0hJR0gsCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCJn cGlvLWxlZDpncmVlbjpkMSIpOwo+IC0gwqAgwqAgwqAgaWYgKHJldCkKPiAtIMKgIMKgIMKgIMKg IMKgIMKgIMKgIHByX3dhcm5pbmcoIklHRVAzOiBDb3VsZCBub3Qgb2J0YWluIGdwaW8gR1BJT19M RUQxX0dSRUVOXG4iKTsKPiAtIMKgIMKgIMKgIGVsc2UKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKg IGdwaW9fZXhwb3J0KGdwaW8gKyBUV0w0MDMwX0dQSU9fTUFYICsgMSwgMCk7Cj4gLSNlbHNlCj4g LSDCoCDCoCDCoCBpZ2VwM19ncGlvX2xlZHNbM10uZ3BpbyA9IGdwaW8gKyBUV0w0MDMwX0dQSU9f TUFYICsgMTsKPiAtI2VuZGlmCj4gLSDCoCDCoCDCoCAvKiBncGlvICsgMCBpcyAibW1jMF9jZCIg KGlucHV0L0lSUSkgKi8KPiAtIMKgIMKgIMKgIG1tY1swXS5ncGlvX2NkID0gZ3BpbyArIDA7Cj4g LSDCoCDCoCDCoCBvbWFwMl9oc21tY19pbml0KG1tYyk7Cj4gLQo+IC0gwqAgwqAgwqAgcmV0dXJu IDA7Cj4gLX07Cj4gLQo+IC1zdGF0aWMgc3RydWN0IHR3bDQwMzBfZ3Bpb19wbGF0Zm9ybV9kYXRh IGlnZXAzX3R3bDQwMzBfZ3Bpb19wZGF0YSA9IHsKPiAtIMKgIMKgIMKgIC5ncGlvX2Jhc2UgwqAg wqAgwqA9IE9NQVBfTUFYX0dQSU9fTElORVMsCj4gLSDCoCDCoCDCoCAuaXJxX2Jhc2UgwqAgwqAg wqAgPSBUV0w0MDMwX0dQSU9fSVJRX0JBU0UsCj4gLSDCoCDCoCDCoCAuaXJxX2VuZCDCoCDCoCDC oCDCoD0gVFdMNDAzMF9HUElPX0lSUV9FTkQsCj4gLSDCoCDCoCDCoCAudXNlX2xlZHMgwqAgwqAg wqAgPSB0cnVlLAo+IC0gwqAgwqAgwqAgLnNldHVwIMKgIMKgIMKgIMKgIMKgPSBpZ2VwM190d2w0 MDMwX2dwaW9fc2V0dXAsCj4gLX07Cj4gLQo+IC1zdGF0aWMgc3RydWN0IHR3bDQwMzBfdXNiX2Rh dGEgaWdlcDNfdHdsNDAzMF91c2JfZGF0YSA9IHsKPiAtIMKgIMKgIMKgIC51c2JfbW9kZSDCoCDC oCDCoCA9IFQyX1VTQl9NT0RFX1VMUEksCj4gLX07Cj4gLQo+IC1zdGF0aWMgc3RydWN0IHBsYXRm b3JtX2RldmljZSAqaWdlcDNfZGV2aWNlc1tdIF9faW5pdGRhdGEgPSB7Cj4gLSDCoCDCoCDCoCAm aWdlcDNfdndsYW5fZGV2aWNlLAo+IC19Owo+IC0KPiAtc3RhdGljIHZvaWQgX19pbml0IGlnZXAz X2luaXRfZWFybHkodm9pZCkKPiAtewo+IC0gwqAgwqAgwqAgb21hcDJfaW5pdF9jb21tb25faW5m cmFzdHJ1Y3R1cmUoKTsKPiAtIMKgIMKgIMKgIG9tYXAyX2luaXRfY29tbW9uX2RldmljZXMobTY1 a3h4eHhhbV9zZHJjX3BhcmFtcywKPiAtIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIG02NWt4eHh4YW1fc2RyY19wYXJhbXMpOwo+IC19Cj4gLQo+IC1zdGF0 aWMgc3RydWN0IHR3bDQwMzBfcGxhdGZvcm1fZGF0YSBpZ2VwM190d2w0MDMwX3BkYXRhID0gewo+ IC0gwqAgwqAgwqAgLmlycV9iYXNlIMKgIMKgIMKgID0gVFdMNDAzMF9JUlFfQkFTRSwKPiAtIMKg IMKgIMKgIC5pcnFfZW5kIMKgIMKgIMKgIMKgPSBUV0w0MDMwX0lSUV9FTkQsCj4gLQo+IC0gwqAg wqAgwqAgLyogcGxhdGZvcm1fZGF0YSBmb3IgY2hpbGRyZW4gZ29lcyBoZXJlICovCj4gLSDCoCDC oCDCoCAudXNiIMKgIMKgIMKgIMKgIMKgIMKgPSAmaWdlcDNfdHdsNDAzMF91c2JfZGF0YSwKPiAt IMKgIMKgIMKgIC5ncGlvIMKgIMKgIMKgIMKgIMKgID0gJmlnZXAzX3R3bDQwMzBfZ3Bpb19wZGF0 YSwKPiAtIMKgIMKgIMKgIC52bW1jMSDCoCDCoCDCoCDCoCDCoD0gJmlnZXAzX3ZtbWMxLAo+IC0g wqAgwqAgwqAgLnZpbyDCoCDCoCDCoCDCoCDCoCDCoD0gJmlnZXAzX3ZpbywKPiAtfTsKPiAtCj4g LXN0YXRpYyBpbnQgX19pbml0IGlnZXAzX2kyY19pbml0KHZvaWQpCj4gLXsKPiAtIMKgIMKgIMKg IG9tYXAzX3BtaWNfaW5pdCgidHdsNDAzMCIsICZpZ2VwM190d2w0MDMwX3BkYXRhKTsKPiAtCj4g LSDCoCDCoCDCoCByZXR1cm4gMDsKPiAtfQo+IC0KPiAtI2lmIGRlZmluZWQoQ09ORklHX0xJQkVS VEFTX1NESU8pIHx8IGRlZmluZWQoQ09ORklHX0xJQkVSVEFTX1NESU9fTU9EVUxFKQo+IC1zdGF0 aWMgc3RydWN0IGdwaW8gaWdlcDNfd2xhbl9idF9ncGlvc1tdIF9faW5pdGRhdGEgPSB7Cj4gLSDC oCDCoCDCoCB7IElHRVAzX0dQSU9fV0lGSV9OUEQsIMKgIMKgR1BJT0ZfT1VUX0lOSVRfSElHSCwg IkdQSU9fV0lGSV9OUEQiIMKgIMKgfSwKPiAtIMKgIMKgIMKgIHsgSUdFUDNfR1BJT19XSUZJX05S RVNFVCwgR1BJT0ZfT1VUX0lOSVRfSElHSCwgIkdQSU9fV0lGSV9OUkVTRVQiIH0sCj4gLSDCoCDC oCDCoCB7IElHRVAzX0dQSU9fQlRfTlJFU0VULCDCoCBHUElPRl9PVVRfSU5JVF9ISUdILCAiR1BJ T19CVF9OUkVTRVQiIMKgIH0sCj4gLX07Cj4gLQo+IC1zdGF0aWMgdm9pZCBfX2luaXQgaWdlcDNf d2lmaV9idF9pbml0KHZvaWQpCj4gLXsKPiAtIMKgIMKgIMKgIGludCBlcnI7Cj4gLQo+IC0gwqAg wqAgwqAgLyogQ29uZmlndXJlIE1VWCB2YWx1ZXMgZm9yIFctTEFOICsgQmx1ZXRvb3RoIEdQSU8n cyAqLwo+IC0gwqAgwqAgwqAgb21hcF9tdXhfaW5pdF9ncGlvKElHRVAzX0dQSU9fV0lGSV9OUEQs IE9NQVBfUElOX09VVFBVVCk7Cj4gLSDCoCDCoCDCoCBvbWFwX211eF9pbml0X2dwaW8oSUdFUDNf R1BJT19XSUZJX05SRVNFVCwgT01BUF9QSU5fT1VUUFVUKTsKPiAtIMKgIMKgIMKgIG9tYXBfbXV4 X2luaXRfZ3BpbyhJR0VQM19HUElPX0JUX05SRVNFVCwgT01BUF9QSU5fT1VUUFVUKTsKPiAtCj4g LSDCoCDCoCDCoCAvKiBTZXQgR1BJTydzIGZvciDCoFctTEFOICsgQmx1ZXRvb3RoIGNvbWJvIG1v ZHVsZSAqLwo+IC0gwqAgwqAgwqAgZXJyID0gZ3Bpb19yZXF1ZXN0X2FycmF5KGlnZXAzX3dsYW5f YnRfZ3Bpb3MsCj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoEFSUkFZX1NJWkUoaWdlcDNfd2xhbl9idF9ncGlvcykpOwo+IC0gwqAgwqAgwqAgaWYgKGVy cikgewo+IC0gwqAgwqAgwqAgwqAgwqAgwqAgwqAgcHJfd2FybmluZygiSUdFUDM6IENvdWxkIG5v dCBvYnRhaW4gV0lGSS9CVCBncGlvc1xuIik7Cj4gLSDCoCDCoCDCoCDCoCDCoCDCoCDCoCByZXR1 cm47Cj4gLSDCoCDCoCDCoCB9Cj4gLQo+IC0gwqAgwqAgwqAgZ3Bpb19leHBvcnQoSUdFUDNfR1BJ T19XSUZJX05QRCwgMCk7Cj4gLSDCoCDCoCDCoCBncGlvX2V4cG9ydChJR0VQM19HUElPX1dJRklf TlJFU0VULCAwKTsKPiAtIMKgIMKgIMKgIGdwaW9fZXhwb3J0KElHRVAzX0dQSU9fQlRfTlJFU0VU LCAwKTsKPiAtCj4gLSDCoCDCoCDCoCBncGlvX3NldF92YWx1ZShJR0VQM19HUElPX1dJRklfTlJF U0VULCAwKTsKPiAtIMKgIMKgIMKgIHVkZWxheSgxMCk7Cj4gLSDCoCDCoCDCoCBncGlvX3NldF92 YWx1ZShJR0VQM19HUElPX1dJRklfTlJFU0VULCAxKTsKPiAtfQo+IC0jZWxzZQo+IC12b2lkIF9f aW5pdCBpZ2VwM193aWZpX2J0X2luaXQodm9pZCkge30KPiAtI2VuZGlmCj4gLQo+IC1zdGF0aWMg Y29uc3Qgc3RydWN0IHVzYmhzX29tYXBfYm9hcmRfZGF0YSB1c2Joc19iZGF0YSBfX2luaXRjb25z dCA9IHsKPiAtIMKgIMKgIMKgIC5wb3J0X21vZGVbMF0gPSBPTUFQX1VTQkhTX1BPUlRfTU9ERV9V TlVTRUQsCj4gLSDCoCDCoCDCoCAucG9ydF9tb2RlWzFdID0gT01BUF9FSENJX1BPUlRfTU9ERV9Q SFksCj4gLSDCoCDCoCDCoCAucG9ydF9tb2RlWzJdID0gT01BUF9VU0JIU19QT1JUX01PREVfVU5V U0VELAo+IC0KPiAtIMKgIMKgIMKgIC5waHlfcmVzZXQgPSB0cnVlLAo+IC0gwqAgwqAgwqAgLnJl c2V0X2dwaW9fcG9ydFswXSA9IC1FSU5WQUwsCj4gLSDCoCDCoCDCoCAucmVzZXRfZ3Bpb19wb3J0 WzFdID0gSUdFUDNfR1BJT19VU0JIX05SRVNFVCwKPiAtIMKgIMKgIMKgIC5yZXNldF9ncGlvX3Bv cnRbMl0gPSAtRUlOVkFMLAo+IC19Owo+IC0KPiAtI2lmZGVmIENPTkZJR19PTUFQX01VWAo+IC1z dGF0aWMgc3RydWN0IG9tYXBfYm9hcmRfbXV4IGJvYXJkX211eFtdIF9faW5pdGRhdGEgPSB7Cj4g LSDCoCDCoCDCoCBPTUFQM19NVVgoSTJDMl9TREEsIE9NQVBfTVVYX01PREU0IHwgT01BUF9QSU5f T1VUUFVUKSwKPiAtIMKgIMKgIMKgIHsgLnJlZ19vZmZzZXQgPSBPTUFQX01VWF9URVJNSU5BVE9S IH0sCj4gLX07Cj4gLSNlbmRpZgo+IC0KPiAtc3RhdGljIHZvaWQgX19pbml0IGlnZXAzX2luaXQo dm9pZCkKPiAtewo+IC0gwqAgwqAgwqAgb21hcDNfbXV4X2luaXQoYm9hcmRfbXV4LCBPTUFQX1BB Q0tBR0VfQ0JCKTsKPiAtCj4gLSDCoCDCoCDCoCAvKiBSZWdpc3RlciBJMkMgYnVzc2VzIGFuZCBk cml2ZXJzICovCj4gLSDCoCDCoCDCoCBpZ2VwM19pMmNfaW5pdCgpOwo+IC0gwqAgwqAgwqAgcGxh dGZvcm1fYWRkX2RldmljZXMoaWdlcDNfZGV2aWNlcywgQVJSQVlfU0laRShpZ2VwM19kZXZpY2Vz KSk7Cj4gLSDCoCDCoCDCoCBvbWFwX3NlcmlhbF9pbml0KCk7Cj4gLSDCoCDCoCDCoCB1c2JfbXVz Yl9pbml0KE5VTEwpOwo+IC0gwqAgwqAgwqAgdXNiaHNfaW5pdCgmdXNiaHNfYmRhdGEpOwo+IC0K PiAtIMKgIMKgIMKgIGlnZXAzX2ZsYXNoX2luaXQoKTsKPiAtIMKgIMKgIMKgIGlnZXAzX2xlZHNf aW5pdCgpOwo+IC0KPiAtIMKgIMKgIMKgIC8qCj4gLSDCoCDCoCDCoCDCoCogV0xBTi1CVCBjb21i byBtb2R1bGUgZnJvbSBNdVJhdGEgd2hpY2ggaGFzIGEgTWFydmVsbCBXTEFOCj4gLSDCoCDCoCDC oCDCoCogKDg4Vzg2ODYpICsgQ1NSIEJsdWV0b290aCBjaGlwc2V0LiBVc2VzIFNESU8gaW50ZXJm YWNlLgo+IC0gwqAgwqAgwqAgwqAqLwo+IC0gwqAgwqAgwqAgaWdlcDNfd2lmaV9idF9pbml0KCk7 Cj4gLQo+IC19Cj4gLQo+IC1NQUNISU5FX1NUQVJUKElHRVAwMDMwLCAiSUdFUCBPTUFQMyBtb2R1 bGUiKQo+IC0gwqAgwqAgwqAgLmJvb3RfcGFyYW1zIMKgIMKgPSAweDgwMDAwMTAwLAo+IC0gwqAg wqAgwqAgLnJlc2VydmUgwqAgwqAgwqAgwqA9IG9tYXBfcmVzZXJ2ZSwKPiAtIMKgIMKgIMKgIC5t YXBfaW8gwqAgwqAgwqAgwqAgPSBvbWFwM19tYXBfaW8sCj4gLSDCoCDCoCDCoCAuaW5pdF9lYXJs eSDCoCDCoCA9IGlnZXAzX2luaXRfZWFybHksCj4gLSDCoCDCoCDCoCAuaW5pdF9pcnEgwqAgwqAg wqAgPSBvbWFwX2luaXRfaXJxLAo+IC0gwqAgwqAgwqAgLmluaXRfbWFjaGluZSDCoCA9IGlnZXAz X2luaXQsCj4gLSDCoCDCoCDCoCAudGltZXIgwqAgwqAgwqAgwqAgwqA9ICZvbWFwX3RpbWVyLAo+ IC1NQUNISU5FX0VORAo+IC0tCj4gMS43LjMuMQo+Cj4KCkFja2VkLWJ5OiBFbnJpYyBCYWxsZXRi byBpIFNlcnJhIDxlYmFsbGV0Ym9AaXNlZWJjbi5jb20+Cg==