Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1373771imu; Tue, 11 Dec 2018 18:46:11 -0800 (PST) X-Google-Smtp-Source: AFSGD/Wi5jyJZFq2WSNMaQCA77X+gClvYWnFRhSbDczkyCBQK7oi5HZmeJuDg3Mk0fgwTRUDlR3U X-Received: by 2002:a17:902:720c:: with SMTP id ba12mr18397907plb.79.1544582771339; Tue, 11 Dec 2018 18:46:11 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1544582771; cv=none; d=google.com; s=arc-20160816; b=NVuMC2uKhFzeuYgDi46/uLMxZibLZtKjl+4/SbXFnwfFZPmuLXBRtAokwl8NIchjVd DaKQpK7utN3S33i9EsTPR0XUjEKrJALFX3mdrHZqgNByDSkybi1B7+rmhrMiNrC/U5eM m/uo7DzpAPwHnp/9rGi9irAvRRvSKe3B8QwKQ9kSBMdHOd+xy6HXd44M2F3m3BYbhg3C s4TwdNczPSZoRoOWmoMhipg4V27dcA41a1yxHW3Ljtc2nfI1ZfX5SKPzc9YtqByTMbKf iq+ccfKY4oswOTmTyFp3E+dyAlpdFF13WhYfl0viayOGYmNKBQDvIGPuOnkcbXypCd68 d+gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :spamdiagnosticmetadata:spamdiagnosticoutput:content-language :accept-language:in-reply-to:references:message-id:date:thread-index :thread-topic:subject:cc:to:from:dkim-signature; bh=HL50r7i+fdxpqDoO7B2DCV+QGUn66Td13gZtaQuX6sA=; b=Dm1mHNy4RSb3SlfxquaGk15uKslSPpMAs1sa5r+QzgmNZ3aEsODR5GyM3EseqDBXtq wZTeZViUFKoxL/k9bYZYhP2b3elAH5R0Pntcq9h9Jqcr/sGQLNHgANqPmWqXT9JoIG0/ ioXjv7mB6HkutE3t29MFwG7lgFzhubsykCu/mMkKI3EcKDYPST3dFsJ6Fhh3OaeEWl8z jt8QICs4jIAACne0t6rUY7eQWTmxWNqT0ts704m+7GGmvC+PYOcMrD+C6JlIJr2Q6ZjG PRVdtZyfNnoqmuJsey/RncfxyMsZO9hkEVUkKoYRZ2tU5Vytst7g+iPrY7CrSROh4fZi Ftuw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@nxp.com header.s=selector1 header.b=GRKFCZ72; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id m7si17231989pfc.118.2018.12.11.18.45.54; Tue, 11 Dec 2018 18:46:11 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@nxp.com header.s=selector1 header.b=GRKFCZ72; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=nxp.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726253AbeLLCpD (ORCPT + 99 others); Tue, 11 Dec 2018 21:45:03 -0500 Received: from mail-eopbgr80073.outbound.protection.outlook.com ([40.107.8.73]:34448 "EHLO EUR04-VI1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726211AbeLLCpD (ORCPT ); Tue, 11 Dec 2018 21:45:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=HL50r7i+fdxpqDoO7B2DCV+QGUn66Td13gZtaQuX6sA=; b=GRKFCZ72RMe3/a5asZBFseNY+7su+nuGXQbqfuMvr1E2XiayLDV42zJOKlG6EWFaXEaygwL09sW8U9HqGfSlrHOxosoW8T/eGqyMfA1JT81qPfqnM6gmf92rtv3AZfOAFoxn0k3wySWgHjht49DsBc8SWWoKLF9Y/hmJ42KVvVw= Received: from VI1PR04MB4333.eurprd04.prod.outlook.com (52.134.122.155) by VI1PR04MB5872.eurprd04.prod.outlook.com (20.178.205.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1404.19; Wed, 12 Dec 2018 02:44:36 +0000 Received: from VI1PR04MB4333.eurprd04.prod.outlook.com ([fe80::f474:8a44:efb6:769c]) by VI1PR04MB4333.eurprd04.prod.outlook.com ([fe80::f474:8a44:efb6:769c%5]) with mapi id 15.20.1404.026; Wed, 12 Dec 2018 02:44:36 +0000 From: Andy Tang To: Eduardo Valentin , Daniel Lezcano CC: "rui.zhang@intel.com" , "linux-pm@vger.kernel.org" , "linux-kernel@vger.kernel.org" Subject: RE: [PATCH v3] thermal: qoriq: add multiple sensors support Thread-Topic: [PATCH v3] thermal: qoriq: add multiple sensors support Thread-Index: AQHUb+x5QGAd/csOb0GIEX5lCKMI2aVO921wgAqborCAAHm5AIAABgrQgAAKHgCADRL3gIATeOWw Date: Wed, 12 Dec 2018 02:44:36 +0000 Message-ID: References: <20181030010008.27237-1-andy.tang@nxp.com> <16bf9114-8403-a11a-0a29-f78bc139b480@linaro.org> <20181129172050.GA3534@localhost.localdomain> In-Reply-To: <20181129172050.GA3534@localhost.localdomain> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: spf=none (sender IP is ) smtp.mailfrom=andy.tang@nxp.com; x-originating-ip: [119.31.174.73] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;VI1PR04MB5872;6:bLbopJq19w6tb8gKn5ejBFCX2Hk5ZvJIXwHHclUV+rMAHsvpSPitbJhAPhSHkgN2E3lwVsskI6O4etRRiBxuBvBj9uOPMjf5UrlikpHN6J2Lm9No+gqP/IGPJuBpU1ipFGs49GoboUuOcaI7cRixI5kzuC4BoDHIsHiQr734PXKrFEYAMTNUJTn6liSPzcylp/MnVAipnHbdT7I0Nqzwpx34enfT9SRTtBrPrMfE/yl9zhnkwJ7hWMueWRIpzikLmuOzNQrbDlnZKQ+4tW8CYPbNeOpIXqsJuQcPJShoEVUbSgRyZtSM/EmgxXnf5PVuHcBGMi5aJU0Q4jODKOTGKD5GSnIb0BfUo5ucfPslE8tGHifYprm5LigCgTvhYqoqqkToxCdC3GboYzacYm23MAqoJ7g1ekEYmMTCXsm8PL/TtJ97yr8/j/LKgrz7JZJRF1kMI2zXQdzEj49LZTpIEQ==;5:kpCbvZG2s7KA1P4W7D/okDfylzdQjlN0WOeYKfnk7LMYdjdDXE8WqPmEGCcKN5C2Pz5nJF/IoQ2OaYt+lzaHFxlohkUWBaoeWcBe7whX/gI8uFg64LBynmcte/IljVmuqemUSmDrte5QGUZonpl1LbCjZjhPh0F98aMhLptrUUI=;7:18EnjFGhxped0camm1iSpWeIzdYddxsjx71aWOAib0TTfqEyWdLC8X7UFxguWXm2S8DWi+7K7o0aBvjHcJVGz31ceDaFnksZktZkcwSiUVf8DeFbPkjOzMdRpEM13C4WMAbSbsQLka453XpyhBhkWQ== x-ms-exchange-antispam-srfa-diagnostics: SOS; x-ms-office365-filtering-correlation-id: ae3842a3-d61f-4fdc-5956-08d65fdbc156 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390098)(7020095)(4652040)(8989299)(5600074)(711020)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020);SRVR:VI1PR04MB5872; x-ms-traffictypediagnostic: VI1PR04MB5872: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(3230017)(999002)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3231472)(944501520)(2230325)(52105112)(3002001)(93006095)(93001095)(6055026)(148016)(149066)(150057)(6041310)(20161123564045)(20161123562045)(20161123560045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095);SRVR:VI1PR04MB5872;BCL:0;PCL:0;RULEID:;SRVR:VI1PR04MB5872; x-forefront-prvs: 0884AAA693 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(376002)(346002)(136003)(396003)(39860400002)(366004)(43544003)(53754006)(199004)(13464003)(189003)(110136005)(93886005)(316002)(54906003)(71190400001)(8936002)(81156014)(14444005)(81166006)(4744004)(256004)(66066001)(76176011)(6306002)(9686003)(53936002)(478600001)(6506007)(99286004)(26005)(102836004)(55016002)(966005)(71200400001)(74316002)(53946003)(45080400002)(4326008)(11346002)(39060400002)(97736004)(305945005)(44832011)(446003)(68736007)(3846002)(5660300001)(14454004)(86362001)(575784001)(6436002)(6116002)(186003)(6246003)(2906002)(7696005)(105586002)(106356001)(8676002)(53546011)(229853002)(33656002)(25786009)(486006)(7736002)(476003)(59010400001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR04MB5872;H:VI1PR04MB4333.eurprd04.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;A:1;MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: eosfMzh6wR2vd4Ckm0r5LBS1YeDMI28U0m7Wqe5FStKAPhSff/tuQ75WduKreyVyp6ZFjSAHeCBJrYQNsuKb3t1tuB3MWm8y2WI4BNY7K16as+y9dGCVjRQqpjcqb5aDK4fuL6UMHiNc0t7eC+QPHX1dtwv8dFuG3X14jfMf3kQWxUc5pjpEUQTWSecKJOD8Bn3dXiuXEKPXdGR8+rvD4JX+nXG8o2PiGGO7BQ8v4ioy7mOwbgEp/WMNcVKrUxj1tKIx4yfml+ayLLJLKG2Qfzgvq5LlGe7WDius7f6ifJZzg2W8HXXI/OPH1y5zHGnlpQP5Stmd1yM4BYsQAbbzhOZ4Cx/A1lpb2vp9hWcfqZGaHzMvyo/EbXs4G8mp4+UAfftylFoG7rDB+afYILjIGGXPCn8d2I7NowT0x49wwzQ= spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: ae3842a3-d61f-4fdc-5956-08d65fdbc156 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Dec 2018 02:44:36.4050 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB5872 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRWR1YXJkbyBWYWxlbnRp biA8ZWR1YmV6dmFsQGdtYWlsLmNvbT4NCj4gU2VudDogMjAxOOW5tDEx5pyIMzDml6UgMToyMQ0K PiBUbzogRGFuaWVsIExlemNhbm8gPGRhbmllbC5sZXpjYW5vQGxpbmFyby5vcmc+DQo+IENjOiBB bmR5IFRhbmcgPGFuZHkudGFuZ0BueHAuY29tPjsgcnVpLnpoYW5nQGludGVsLmNvbTsNCj4gbGlu dXgtcG1Admdlci5rZXJuZWwub3JnOyBsaW51eC1rZXJuZWxAdmdlci5rZXJuZWwub3JnDQo+IFN1 YmplY3Q6IFJlOiBbUEFUQ0ggdjNdIHRoZXJtYWw6IHFvcmlxOiBhZGQgbXVsdGlwbGUgc2Vuc29y cyBzdXBwb3J0DQo+IA0KPiBPbiBXZWQsIE5vdiAyMSwgMjAxOCBhdCAxMDo0MTozNkFNICswMTAw LCBEYW5pZWwgTGV6Y2FubyB3cm90ZToNCj4gPiBPbiAyMS8xMS8yMDE4IDEwOjE2LCBBbmR5IFRh bmcgd3JvdGU6DQo+ID4gPiBIaSBEYW5pZWwsDQo+ID4gPg0KPiA+ID4gVGhhbmtzIGZvciB5b3Vy IGV4cGxhbmF0aW9uLiBUaGUgcHJvYmxlbSBpcyB0aGVzZSB0d28gdHJlZXMgYXJlIG5vdCBzeW5j ZWQNCj4gd2VsbC4NCj4gPiA+IExldCdzIHRha2Ugb3VyIGRyaXZlcihxb3JpcV90aGVybWFsLmMp IGZvciBleGFtcGxlLg0KPiA+ID4NCj4gPiA+IEdpdCBsb2cgb24gUnVpJ3MgdHJlZSBuZXh0IGJy YW5jaDoNCj4gPiA+IDJkZmVmNjUgdGhlcm1hbDogcW9yaXE6IFN3aXRjaCB0byBTUERYIGlkZW50 aWZpZXINCj4gPiA+IDFhODkzYTUgdGhlcm1hbDogcW9yaXE6IFNpbXBsaWZ5IHRoZSAnc2l0ZScg dmFyaWFibGUgYXNzaWdubWVudA0KPiA+ID4gZjE1MDZhNiB0aGVybWFsOiBxb3JpcTogVXNlIGRl dm1fdGhlcm1hbF96b25lX29mX3NlbnNvcl9yZWdpc3RlcigpDQo+ID4gPiBjMzBkNWQ1IHRoZXJt YWw6IHFvcmlxOiBjb25zdGlmeSB0aGVybWFsX3pvbmVfb2ZfZGV2aWNlX29wcw0KPiA+ID4gc3Ry dWN0dXJlcw0KPiA+ID4gMGU3NzQ4OCB0aGVybWFsOiBxb3JpcTogcmVtb3ZlIHVzZWxlc3MgY2Fs bCBmb3INCj4gPiA+IG9mX3RoZXJtYWxfZ2V0X3RyaXBfcG9pbnRzKCkNCj4gPiA+IDQzNTI4NDQg dGhlcm1hbDogcW9yaXE6IEFkZCB0aGVybWFsIG1hbmFnZW1lbnQgc3VwcG9ydA0KPiA+ID4NCj4g PiA+IEdpdCBsb2cgb24gbGludXgtc29jLXRoZXJtYWwgdHJlZSBicmFuY2ggbmV4dDoNCj4gPiA+ IDYwMTdlMmEgdGhlcm1hbDogcW9yaXE6IGFkZCBpLm14OG1xIHN1cHBvcnQNCj4gPiA+IDliOTY1 NjYgdGhlcm1hbDogQ29udmVydCB0byB1c2luZyAlcE9GbiBpbnN0ZWFkIG9mIGRldmljZV9ub2Rl Lm5hbWUNCj4gPiA+IGMzMGQ1ZDUgdGhlcm1hbDogcW9yaXE6IGNvbnN0aWZ5IHRoZXJtYWxfem9u ZV9vZl9kZXZpY2Vfb3BzDQo+ID4gPiBzdHJ1Y3R1cmVzDQo+ID4gPiAwZTc3NDg4IHRoZXJtYWw6 IHFvcmlxOiByZW1vdmUgdXNlbGVzcyBjYWxsIGZvcg0KPiA+ID4gb2ZfdGhlcm1hbF9nZXRfdHJp cF9wb2ludHMoKQ0KPiA+ID4gNDM1Mjg0NCB0aGVybWFsOiBxb3JpcTogQWRkIHRoZXJtYWwgbWFu YWdlbWVudCBzdXBwb3J0DQo+ID4gPg0KPiA+ID4gWW91IGNhbiBzZWUgdGhhdCB0aGUgZmlyc3Qg Mi0zIGNvbW1pdHMgb24gdGhlc2UgdHdvIHRyZXNzIGFyZSBkaWZmZXJlbnQuDQo+ID4gPg0KPiA+ ID4gVGhlIHN0cmFuZ2UgdGhpbmcgaXMgdGhleSBzZWVtcyBzeW5jIHdlbGwgb24gTGludXMnIHRy ZWU6DQo+ID4gPiAwZWY3NzkxIE1lcmdlIGJyYW5jaCAnbGludXMnIG9mDQo+ID4gPiBnaXQ6Ly9n aXQua2VybmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvZXZhbGVudGkvbGludXgtc29j LXRoZQ0KPiA+ID4gcm1hbCA2MDE3ZTJhIHRoZXJtYWw6IHFvcmlxOiBhZGQgaS5teDhtcSBzdXBw b3J0DQo+ID4gPiA5Yjk2NTY2IHRoZXJtYWw6IENvbnZlcnQgdG8gdXNpbmcgJXBPRm4gaW5zdGVh ZCBvZiBkZXZpY2Vfbm9kZS5uYW1lDQo+ID4gPiAyZGZlZjY1IHRoZXJtYWw6IHFvcmlxOiBTd2l0 Y2ggdG8gU1BEWCBpZGVudGlmaWVyDQo+ID4gPiAxYTg5M2E1IHRoZXJtYWw6IHFvcmlxOiBTaW1w bGlmeSB0aGUgJ3NpdGUnIHZhcmlhYmxlIGFzc2lnbm1lbnQNCj4gPiA+IGYxNTA2YTYgdGhlcm1h bDogcW9yaXE6IFVzZSBkZXZtX3RoZXJtYWxfem9uZV9vZl9zZW5zb3JfcmVnaXN0ZXIoKQ0KPiA+ ID4gYzMwZDVkNSB0aGVybWFsOiBxb3JpcTogY29uc3RpZnkgdGhlcm1hbF96b25lX29mX2Rldmlj ZV9vcHMNCj4gPiA+IHN0cnVjdHVyZXMNCj4gPiA+IDBlNzc0ODggdGhlcm1hbDogcW9yaXE6IHJl bW92ZSB1c2VsZXNzIGNhbGwgZm9yDQo+ID4gPiBvZl90aGVybWFsX2dldF90cmlwX3BvaW50cygp DQo+ID4gPiA0MzUyODQ0IHRoZXJtYWw6IHFvcmlxOiBBZGQgdGhlcm1hbCBtYW5hZ2VtZW50IHN1 cHBvcnQNCj4gPiA+DQo+ID4gPiBDdXJyZW50bHkgbXkgcGF0Y2ggd2FzIGNyZWF0ZWQgYmFzZWQg b24gUnVuJ3MgdHJlZSwgcHJvYmFibHkgSSBzaG91bGQNCj4gcmViYXNlIGl0IHRvIHNvYyB0cmVl Lg0KPiA+ID4gQnV0IHdoaWNoZXZlciB0cmVlIEkgdXNlLCBpdCBjYW4ndCBiZSBtZXJnZWQgdG8g TGludXMnIHRyZWUgd2l0aG91dCBjb25mbGljdC4NCj4gPiA+DQo+ID4gPiBTb21ldGhpbmcgSSBt aXNzZWQ/DQo+ID4NCj4gPiBOby4NCj4gPg0KPiA+IEVkdWFyZG8sIFJ1aSwNCj4gPg0KPiA+IHdo eSBub3QgY3JlYXRlIGEgJ3RoZXJtYWwnIGdyb3VwIGFsYSAndGlwJyBncm91cCB3aXRoIGEgc2lu Z2xlIHRyZWUNCj4gPiBhbmQgdHdvIGJyYW5jaGVzOg0KPiA+DQo+ID4gdGhlcm1hbC9uZXh0DQo+ ID4gdGhlcm1hbC9maXhlcw0KPiA+DQo+ID4gIC0gUnVpIHRha2VzIHRoZSBjb3JlIGNoYW5nZXMu DQo+ID4gIC0gRWR1YXJkbyB0YWtlcyB0aGUgU29DIGNoYW5nZXMuDQo+ID4NCj4gPiAgLSBCb3Ro IGNvbW1pdCB0byB0aGVybWFsL25leHQNCj4gPiAgLSBCb3RoIGNvbW1pdCB0byB0aGVybWFsL2Zp eGVzDQo+ID4gIC0gQm90aCBtZXJnZSB0aGVybWFsL2ZpeGVzIGludG8gdGhlcm1hbC9jb3JlIGFz IG9mdGVuIGFzIHBvc3NpYmxlLg0KPiA+DQo+ID4gVGhhdCB3aWxsIGhlbHAgdG8gaGF2ZSBhIG1v cmUgdXAgdG8gZGF0ZSBicmFuY2gsIHNpbXBsaWZ5IHRoZSBwYXRjaA0KPiA+IHN1Ym1pc3Npb24g cGF0aCBhbmQgcmVkdWNlIHRoZSBsYXRlbmN5IGZvciB0aGUgbWVyZ2Ugd2luZG93cy4NCj4gPg0K PiA+IElmIHlvdSBuZWVkIGhlbHAsIEkgY2FuIHRha2UgY2FyZSBvZiBhcHBseWluZyB0aGUgZml4 ZXMgb25seSBhbmQgbWVyZ2UNCj4gPiB0aGVtIHRvIHRoZXJtYWwvbmV4dC4NCj4gPg0KPiA+IFRo YXQgaXMgaG93IHRoZSB0aXAgc3Vic3lzdGVtIHdvcmtzLCBQZXRlciBaaWxqc3RyYSwgSW5nbyBN b2xuYXIsDQo+ID4gVGhvbWFzIEdsZWl4bmVyLCBoYXZlIGFsbCBwZXJtaXNzaW9ucyB0byBjb21t aXQgaW4gdGhlIHRpcCB0cmVlIGJ1dA0KPiA+IHRoZXkgdGFrZSBjYXJlIG9mIHRoZWlyIHN1YnN5 c3RlbXMuIElmIG9uZSBpcyBhd2F5IGZvciB2YWNhdGlvbnMgb3INCj4gPiB3aGF0ZXZlciwgc29t ZW9uZSBlbHNlIGNhbiB0YWtlIG92ZXIgZHVyaW5nIHRoZSBhYnNlbmNlLg0KPiA+DQo+IA0KPiBZ ZWFoLCB0aGF0IGlzIGEgc2V0dXAgcGVvcGxlIGhhdmUgYmVlbiBmb2xsb3dpbmcuIEl0IGRvZXMg bm90IG5lY2Vzc2FyaWx5IG1lYW4NCj4gaXQgd2lsbCB3b3JrIGZvciBhbGwgY2FzZXMgdGhvdWdo Lg0KPiANCj4gSSBiZWxpZXZlIHJlZ2FyZGxlc3Mgb2YgcHJvY2VzcyBhbmQgdHJlZSBzZXR1cCB3 aGF0IHdlIGFyZSBsYWNraW5nIGhlcmUgaXMgYQ0KPiBkb2N1bWVudGF0aW9uIG9mIGhvdyB0aGlu Z3MgYXJlIGJlaW5nIGRvbmUuDQo+IA0KPiBBcyBJIG1lbnRpb25lZCwgSSB3aWxsIHdvcmsgb24g d3JpdGluZyBzb21ldGhpbmcgdXAgdG8gZG9jdW1lbnQgYXQgbGVhc3Qgd2hhdA0KPiB3ZSBoYXZl IHRvZGF5IGJlZm9yZSBhbnkgY2hhbmdlIGluIHByb2Nlc3MgZ2V0cyBpbiBwbGFjZS4NCj4gDQpb QW5keV0gQmVzaWRlcyB0aGUgZG9jdW1lbnQsIHdoYXQgYWJvdXQgdGhpcyBwYXRjaD8gQ291bGQg aXQgYmUgbWVyZ2VkIGJlZm9yZSB0aGUgZG9jdW1lbnQgaXMgcmVhZHk/DQoNCkJSLA0KQW5keQ0K PiA+DQo+ID4NCj4gPg0KPiA+DQo+ID4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4g PiA+PiBGcm9tOiBEYW5pZWwgTGV6Y2FubyA8ZGFuaWVsLmxlemNhbm9AbGluYXJvLm9yZz4NCj4g PiA+PiBTZW50OiAyMDE45bm0MTHmnIgyMeaXpSAxNjo0NA0KPiA+ID4+IFRvOiBBbmR5IFRhbmcg PGFuZHkudGFuZ0BueHAuY29tPjsgcnVpLnpoYW5nQGludGVsLmNvbTsNCj4gPiA+PiBlZHViZXp2 YWxAZ21haWwuY29tDQo+ID4gPj4gQ2M6IGxpbnV4LXBtQHZnZXIua2VybmVsLm9yZzsgbGludXgt a2VybmVsQHZnZXIua2VybmVsLm9yZw0KPiA+ID4+IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjNdIHRo ZXJtYWw6IHFvcmlxOiBhZGQgbXVsdGlwbGUgc2Vuc29ycw0KPiA+ID4+IHN1cHBvcnQNCj4gPiA+ Pg0KPiA+ID4+IE9uIDIxLzExLzIwMTggMDI6MzQsIEFuZHkgVGFuZyB3cm90ZToNCj4gPiA+Pj4g SGkgYWxsLA0KPiA+ID4+Pg0KPiA+ID4+PiBEbyB5b3UgaGF2ZSBhbnkgY29tbWVudHMgb24gdGhp cyBwYXRjaD8NCj4gPiA+Pj4NCj4gPiA+Pj4gSSBmb3VuZCBmb3Igb3VyIHRoZXJtYWwgZHJpdmVy KHFvcmlxX3RoZXJtYWwuYykgdGhlcmUgYXJlDQo+ID4gPj4+IGRpZmZlcmVudA0KPiA+ID4+IGJl dHdlZW4gdGhlIGZvbGxvd2luZyB0d28gZ2l0IHRyZWVzOg0KPiA+ID4+PiBnaXQ6Ly9naXQua2Vy bmVsLm9yZy9wdWIvc2NtL2xpbnV4L2tlcm5lbC9naXQvcnpoYW5nL2xpbnV4LmdpdA0KPiA+ID4+ PiBicmFuY2g6IG5leHQNCj4gPiA+Pj4NCj4gPiA+PiBnaXQ6Ly9naXQua2VybmVsLm9yZy9wdWIv c2NtL2xpbnV4L2tlcm5lbC9naXQvZXZhbGVudGkvbGludXgtc29jLXRoDQo+ID4gPj4gZXJtYWwu Z2kNCj4gPiA+PiB0Lg0KPiA+ID4+PiBicmFuY2g6IG5leHQNCj4gPiA+Pj4NCj4gPiA+Pj4gQ291 bGQgeW91IHBsZWFzZSBjbGFyaWZ5IHdoaWNoIGdpdCB0cmVlL2JyYW5jaCBzaG91bGQgSSB1c2U/ DQo+ID4gPj4NCj4gPiA+PiBTb0MgY2hhbmdlcyBhcmUgc3VibWl0dGVkIGFnYWluc3QgbGludXgt c29jLXRoZXJtYWwuZ2l0Lg0KPiA+ID4+DQo+ID4gPj4gR2VuZXJpYyB0aGVybWFsIGZyYW1ld29y ayBhcmUgc2VudCBhZ2FpbnN0IFpoYW5nIFJ1aSdzIHRyZWUgYnV0IGl0DQo+ID4gPj4gaGFwcGVu cyBzb21ldGltZXMgRWR1YXJkbyBwaWNrIHRoZW0gYWxzbyB3aGVuIHRoZSBjaGFuZ2VzIGFyZQ0K PiA+ID4+IHJlbGF0ZWQgdG8gU29DIGJlaGF2aW9yLg0KPiA+ID4+DQo+ID4gPj4gSG93ZXZlciwg SSBhZ3JlZSB0aGF0IGNhbiBiZSBjb25mdXNpbmcgOikNCj4gPiA+Pg0KPiA+ID4+IEVkdWFyZG8s IFJ1aSwNCj4gPiA+Pg0KPiA+ID4+IGhvdyBhYm91dCB0byBhZGQgYSBzZWN0aW9uIGluIHRoZSBt YWludGFpbmVyIGhhbmRib29rIGZvciB0aGUNCj4gPiA+PiB0aGVybWFsIHRvIGNsYXJpZnkgdGhl IGV4cGVjdGF0aW9ucyBhbmQgdGhlIGZsb3c/DQo+ID4gPj4NCj4gPiA+Pj4+IC0tLS0tT3JpZ2lu YWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4+PiBGcm9tOiBBbmR5IFRhbmcNCj4gPiA+Pj4+IFNlbnQ6 IDIwMTjlubQxMeaciDE05pelIDE1OjI5DQo+ID4gPj4+PiBUbzogcnVpLnpoYW5nQGludGVsLmNv bTsgZGFuaWVsLmxlemNhbm9AbGluYXJvLm9yZw0KPiA+ID4+Pj4gQ2M6IGVkdWJlenZhbEBnbWFp bC5jb207IGxpbnV4LXBtQHZnZXIua2VybmVsLm9yZzsNCj4gPiA+Pj4+IGxpbnV4LWtlcm5lbEB2 Z2VyLmtlcm5lbC5vcmcNCj4gPiA+Pj4+IFN1YmplY3Q6IFJFOiBbUEFUQ0ggdjNdIHRoZXJtYWw6 IHFvcmlxOiBhZGQgbXVsdGlwbGUgc2Vuc29ycw0KPiA+ID4+Pj4gc3VwcG9ydA0KPiA+ID4+Pj4N Cj4gPiA+Pj4+IFBJTkcuDQo+ID4gPj4+Pg0KPiA+ID4+Pj4gQlIsDQo+ID4gPj4+PiBBbmR5DQo+ ID4gPj4+Pg0KPiA+ID4+Pj4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+ID4gPj4+Pj4g RnJvbTogYW5keS50YW5nQG54cC5jb20gPGFuZHkudGFuZ0BueHAuY29tPg0KPiA+ID4+Pj4+IFNl bnQ6IDIwMTjlubQxMOaciDMw5pelIDk6MDANCj4gPiA+Pj4+PiBUbzogcnVpLnpoYW5nQGludGVs LmNvbTsgZGFuaWVsLmxlemNhbm9AbGluYXJvLm9yZw0KPiA+ID4+Pj4+IENjOiBlZHViZXp2YWxA Z21haWwuY29tOyBsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmc7DQo+ID4gPj4+Pj4gbGludXgta2Vy bmVsQHZnZXIua2VybmVsLm9yZzsgQW5keSBUYW5nIDxhbmR5LnRhbmdAbnhwLmNvbT4NCj4gPiA+ Pj4+PiBTdWJqZWN0OiBbUEFUQ0ggdjNdIHRoZXJtYWw6IHFvcmlxOiBhZGQgbXVsdGlwbGUgc2Vu c29ycyBzdXBwb3J0DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBGcm9tOiBZdWFudGlhbiBUYW5nIDxh bmR5LnRhbmdAbnhwLmNvbT4NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IFRoZSBRb3JJUSBMYXllcnNj YXBlIFNvQyBoYXMgc2V2ZXJhbCB0aGVybWFsIHNlbnNvcnMgYnV0IHRoZQ0KPiA+ID4+IGN1cnJl bnQNCj4gPiA+Pj4+PiBkcml2ZXIgb25seSBzdXBwb3J0cyBvbmUuDQo+ID4gPj4+Pj4NCj4gPiA+ Pj4+PiBNYXNzYWdlIHRoZSBjb2RlIHRvIGJlIHNlbnNvciBvcmllbnRlZCBhbmQgYWxsb3cgdGhl IHN1cHBvcnQgZm9yDQo+ID4gPj4+Pj4gbXVsdGlwbGUgc2Vuc29ycy4NCj4gPiA+Pj4+Pg0KPiA+ ID4+Pj4+IFNpZ25lZC1vZmYtYnk6IFl1YW50aWFuIFRhbmcgPGFuZHkudGFuZ0BueHAuY29tPg0K PiA+ID4+Pj4+IFJldmlld2VkLWJ5OiBEYW5pZWwgTGV6Y2FubyA8ZGFuaWVsLmxlemNhbm9AbGlu YXJvLm9yZz4NCj4gPiA+Pj4+PiAtLS0NCj4gPiA+Pj4+PiB2MzoNCj4gPiA+Pj4+PiAgIC0gYWRk IFJldmlld2VkLWJ5DQo+ID4gPj4+Pj4gdjI6DQo+ID4gPj4+Pj4gICAtIHVwZGF0ZSB0aGUgY29t bWl0IG1lc3NhZ2UNCj4gPiA+Pj4+PiAgIC0gcmVmaW5lIHRoZSBxb3JpcV90bXVfcmVnaXN0ZXJf dG11X3pvbmUoKQ0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gIGRyaXZlcnMvdGhlcm1hbC9xb3JpcV90 aGVybWFsLmMgfCAgMTAwDQo+ID4gPj4+Pj4gKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0t LS0tLS0tLS0tDQo+ID4gPj4+Pj4gIDEgZmlsZXMgY2hhbmdlZCwgNDYgaW5zZXJ0aW9ucygrKSwg NTQgZGVsZXRpb25zKC0pDQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy90aGVybWFsL3FvcmlxX3RoZXJtYWwuYw0KPiA+ID4+Pj4+IGIvZHJpdmVycy90aGVybWFsL3Fv cmlxX3RoZXJtYWwuYyBpbmRleCA0NTBlZDY2Li44YmViMzQ0IDEwMDY0NA0KPiA+ID4+Pj4+IC0t LSBhL2RyaXZlcnMvdGhlcm1hbC9xb3JpcV90aGVybWFsLmMNCj4gPiA+Pj4+PiArKysgYi9kcml2 ZXJzL3RoZXJtYWwvcW9yaXFfdGhlcm1hbC5jDQo+ID4gPj4+Pj4gQEAgLTU5LDE0ICs1OSwyMSBA QCBzdHJ1Y3QgcW9yaXFfdG11X3JlZ3Mgew0KPiA+ID4+Pj4+ICAJdTMyIHR0cjNjcjsJCS8qIFRl bXBlcmF0dXJlIFJhbmdlIDMgQ29udHJvbCBSZWdpc3RlciAqLw0KPiA+ID4+Pj4+ICB9Ow0KPiA+ ID4+Pj4+DQo+ID4gPj4+Pj4gK3N0cnVjdCBxb3JpcV90bXVfZGF0YTsNCj4gPiA+Pj4+PiArDQo+ ID4gPj4+Pj4gIC8qDQo+ID4gPj4+Pj4gICAqIFRoZXJtYWwgem9uZSBkYXRhDQo+ID4gPj4+Pj4g ICAqLw0KPiA+ID4+Pj4+ICtzdHJ1Y3QgcW9yaXFfc2Vuc29yIHsNCj4gPiA+Pj4+PiArCXN0cnVj dCB0aGVybWFsX3pvbmVfZGV2aWNlCSp0emQ7DQo+ID4gPj4+Pj4gKwlzdHJ1Y3QgcW9yaXFfdG11 X2RhdGEJCSpxZGF0YTsNCj4gPiA+Pj4+PiArCWludAkJCQlpZDsNCj4gPiA+Pj4+PiArfTsNCj4g PiA+Pj4+PiArDQo+ID4gPj4+Pj4gIHN0cnVjdCBxb3JpcV90bXVfZGF0YSB7DQo+ID4gPj4+Pj4g LQlzdHJ1Y3QgdGhlcm1hbF96b25lX2RldmljZSAqdHo7DQo+ID4gPj4+Pj4gIAlzdHJ1Y3QgcW9y aXFfdG11X3JlZ3MgX19pb21lbSAqcmVnczsNCj4gPiA+Pj4+PiAtCWludCBzZW5zb3JfaWQ7DQo+ ID4gPj4+Pj4gIAlib29sIGxpdHRsZV9lbmRpYW47DQo+ID4gPj4+Pj4gKwlzdHJ1Y3QgcW9yaXFf c2Vuc29yCSpzZW5zb3JbU0lURVNfTUFYXTsNCj4gPiA+Pj4+PiAgfTsNCj4gPiA+Pj4+Pg0KPiA+ ID4+Pj4+ICBzdGF0aWMgdm9pZCB0bXVfd3JpdGUoc3RydWN0IHFvcmlxX3RtdV9kYXRhICpwLCB1 MzIgdmFsLCB2b2lkDQo+ID4gPj4+Pj4gX19pb21lbQ0KPiA+ID4+Pj4+ICphZGRyKSBAQCAtODcs NDggKzk0LDUxIEBAIHN0YXRpYyB1MzIgdG11X3JlYWQoc3RydWN0DQo+ID4gPj4+PiBxb3JpcV90 bXVfZGF0YQ0KPiA+ID4+Pj4+ICpwLCB2b2lkIF9faW9tZW0gKmFkZHIpDQo+ID4gPj4+Pj4NCj4g PiA+Pj4+PiAgc3RhdGljIGludCB0bXVfZ2V0X3RlbXAodm9pZCAqcCwgaW50ICp0ZW1wKSAgew0K PiA+ID4+Pj4+ICsJc3RydWN0IHFvcmlxX3NlbnNvciAqcXNlbnNvciA9IHA7DQo+ID4gPj4+Pj4g KwlzdHJ1Y3QgcW9yaXFfdG11X2RhdGEgKnFkYXRhID0gcXNlbnNvci0+cWRhdGE7DQo+ID4gPj4+ Pj4gIAl1MzIgdmFsOw0KPiA+ID4+Pj4+IC0Jc3RydWN0IHFvcmlxX3RtdV9kYXRhICpkYXRhID0g cDsNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IC0JdmFsID0gdG11X3JlYWQoZGF0YSwgJmRhdGEtPnJl Z3MtPnNpdGVbZGF0YS0+c2Vuc29yX2lkXS50cml0c3IpOw0KPiA+ID4+Pj4+ICsJdmFsID0gdG11 X3JlYWQocWRhdGEsICZxZGF0YS0+cmVncy0+c2l0ZVtxc2Vuc29yLT5pZF0udHJpdHNyKTsNCj4g PiA+Pj4+PiAgCSp0ZW1wID0gKHZhbCAmIDB4ZmYpICogMTAwMDsNCj4gPiA+Pj4+Pg0KPiA+ID4+ Pj4+ICAJcmV0dXJuIDA7DQo+ID4gPj4+Pj4gIH0NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IC1zdGF0 aWMgaW50IHFvcmlxX3RtdV9nZXRfc2Vuc29yX2lkKHZvaWQpDQo+ID4gPj4+Pj4gK3N0YXRpYyBj b25zdCBzdHJ1Y3QgdGhlcm1hbF96b25lX29mX2RldmljZV9vcHMgdG11X3R6X29wcyA9IHsNCj4g PiA+Pj4+PiArCS5nZXRfdGVtcCA9IHRtdV9nZXRfdGVtcCwNCj4gPiA+Pj4+PiArfTsNCj4gPiA+ Pj4+PiArDQo+ID4gPj4+Pj4gK3N0YXRpYyBpbnQgcW9yaXFfdG11X3JlZ2lzdGVyX3RtdV96b25l KHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UNCj4gPiA+Pj4+PiArKnBkZXYpDQo+ID4gPj4+Pj4gIHsN Cj4gPiA+Pj4+PiAtCWludCByZXQsIGlkOw0KPiA+ID4+Pj4+IC0Jc3RydWN0IG9mX3BoYW5kbGVf YXJncyBzZW5zb3Jfc3BlY3M7DQo+ID4gPj4+Pj4gLQlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wLCAq c2Vuc29yX25wOw0KPiA+ID4+Pj4+ICsJc3RydWN0IHFvcmlxX3RtdV9kYXRhICpxZGF0YSA9IHBs YXRmb3JtX2dldF9kcnZkYXRhKHBkZXYpOw0KPiA+ID4+Pj4+ICsJaW50IGlkLCBzaXRlcyA9IDA7 DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiAtCW5wID0gb2ZfZmluZF9ub2RlX2J5X25hbWUoTlVMTCwg InRoZXJtYWwtem9uZXMiKTsNCj4gPiA+Pj4+PiAtCWlmICghbnApDQo+ID4gPj4+Pj4gLQkJcmV0 dXJuIC1FTk9ERVY7DQo+ID4gPj4+Pj4gKwlmb3IgKGlkID0gMDsgaWQgPCBTSVRFU19NQVg7IGlk KyspIHsNCj4gPiA+Pj4+PiArCQlxZGF0YS0+c2Vuc29yW2lkXSA9IGRldm1fa3phbGxvYygmcGRl di0+ZGV2LA0KPiA+ID4+Pj4+ICsJCQkJc2l6ZW9mKHN0cnVjdCBxb3JpcV9zZW5zb3IpLCBHRlBf S0VSTkVMKTsNCj4gPiA+Pj4+PiArCQlpZiAoIXFkYXRhLT5zZW5zb3JbaWRdKQ0KPiA+ID4+Pj4+ ICsJCQlyZXR1cm4gLUVOT01FTTsNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IC0Jc2Vuc29yX25wID0g b2ZfZ2V0X25leHRfY2hpbGQobnAsIE5VTEwpOw0KPiA+ID4+Pj4+IC0JcmV0ID0gb2ZfcGFyc2Vf cGhhbmRsZV93aXRoX2FyZ3Moc2Vuc29yX25wLA0KPiA+ID4+ICJ0aGVybWFsLXNlbnNvcnMiLA0K PiA+ID4+Pj4+IC0JCQkiI3RoZXJtYWwtc2Vuc29yLWNlbGxzIiwNCj4gPiA+Pj4+PiAtCQkJMCwg JnNlbnNvcl9zcGVjcyk7DQo+ID4gPj4+Pj4gLQlpZiAocmV0KSB7DQo+ID4gPj4+Pj4gLQkJb2Zf bm9kZV9wdXQobnApOw0KPiA+ID4+Pj4+IC0JCW9mX25vZGVfcHV0KHNlbnNvcl9ucCk7DQo+ID4g Pj4+Pj4gLQkJcmV0dXJuIHJldDsNCj4gPiA+Pj4+PiAtCX0NCj4gPiA+Pj4+PiArCQlxZGF0YS0+ c2Vuc29yW2lkXS0+aWQgPSBpZDsNCj4gPiA+Pj4+PiArCQlxZGF0YS0+c2Vuc29yW2lkXS0+cWRh dGEgPSBxZGF0YTsNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IC0JaWYgKHNlbnNvcl9zcGVjcy5hcmdz X2NvdW50ID49IDEpIHsNCj4gPiA+Pj4+PiAtCQlpZCA9IHNlbnNvcl9zcGVjcy5hcmdzWzBdOw0K PiA+ID4+Pj4+IC0JCVdBUk4oc2Vuc29yX3NwZWNzLmFyZ3NfY291bnQgPiAxLA0KPiA+ID4+Pj4+ IC0JCQkJIiVzOiB0b28gbWFueSBjZWxscyBpbiBzZW5zb3Igc3BlY2lmaWVyICVkXG4iLA0KPiA+ ID4+Pj4+IC0JCQkJc2Vuc29yX3NwZWNzLm5wLT5uYW1lLA0KPiA+ID4+IHNlbnNvcl9zcGVjcy5h cmdzX2NvdW50KTsNCj4gPiA+Pj4+PiAtCX0gZWxzZSB7DQo+ID4gPj4+Pj4gLQkJaWQgPSAwOw0K PiA+ID4+Pj4+IC0JfQ0KPiA+ID4+Pj4+ICsJCXFkYXRhLT5zZW5zb3JbaWRdLT50emQgPQ0KPiA+ ID4+Pj4+IGRldm1fdGhlcm1hbF96b25lX29mX3NlbnNvcl9yZWdpc3RlcigNCj4gPiA+Pj4+PiAr CQkJCSZwZGV2LT5kZXYsIGlkLCBxZGF0YS0+c2Vuc29yW2lkXSwgJnRtdV90el9vcHMpOw0KPiA+ ID4+Pj4+ICsJCWlmIChJU19FUlIocWRhdGEtPnNlbnNvcltpZF0tPnR6ZCkpIHsNCj4gPiA+Pj4+ PiArCQkJaWYgKFBUUl9FUlIocWRhdGEtPnNlbnNvcltpZF0tPnR6ZCkgPT0gLUVOT0RFVikNCj4g PiA+Pj4+PiArCQkJCWNvbnRpbnVlOw0KPiA+ID4+Pj4+ICsJCQllbHNlDQo+ID4gPj4+Pj4gKwkJ CQlyZXR1cm4gUFRSX0VSUihxZGF0YS0+c2Vuc29yW2lkXS0+dHpkKTsNCj4gPiA+Pj4+Pg0KPiA+ ID4+Pj4+IC0Jb2Zfbm9kZV9wdXQobnApOw0KPiA+ID4+Pj4+IC0Jb2Zfbm9kZV9wdXQoc2Vuc29y X25wKTsNCj4gPiA+Pj4+PiArCQl9DQo+ID4gPj4+Pj4gKw0KPiA+ID4+Pj4+ICsJCXNpdGVzIHw9 IDB4MSA8PCAoMTUgLSBpZCk7DQo+ID4gPj4+Pj4gKwl9DQo+ID4gPj4+Pj4gKwkvKiBFbmFibGUg bW9uaXRvcmluZyAqLw0KPiA+ID4+Pj4+ICsJaWYgKHNpdGVzICE9IDApDQo+ID4gPj4+Pj4gKwkJ dG11X3dyaXRlKHFkYXRhLCBzaXRlcyB8IFRNUl9NRSB8IFRNUl9BTFBGLA0KPiA+ID4+Pj4+ICZx ZGF0YS0+cmVncy0+dG1yKTsNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IC0JcmV0dXJuIGlkOw0KPiA+ ID4+Pj4+ICsJcmV0dXJuIDA7DQo+ID4gPj4+Pj4gIH0NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+ICBz dGF0aWMgaW50IHFvcmlxX3RtdV9jYWxpYnJhdGlvbihzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpw ZGV2KQ0KPiA+ID4+Pj4+IEBADQo+ID4gPj4+Pj4gLTE3OCwxNiArMTg4LDExIEBAIHN0YXRpYyB2 b2lkIHFvcmlxX3RtdV9pbml0X2RldmljZShzdHJ1Y3QNCj4gPiA+Pj4+PiBxb3JpcV90bXVfZGF0 YSAqZGF0YSkNCj4gPiA+Pj4+PiAgCXRtdV93cml0ZShkYXRhLCBUTVJfRElTQUJMRSwgJmRhdGEt PnJlZ3MtPnRtcik7ICB9DQo+ID4gPj4+Pj4NCj4gPiA+Pj4+PiAtc3RhdGljIGNvbnN0IHN0cnVj dCB0aGVybWFsX3pvbmVfb2ZfZGV2aWNlX29wcyB0bXVfdHpfb3BzID0gew0KPiA+ID4+Pj4+IC0J LmdldF90ZW1wID0gdG11X2dldF90ZW1wLA0KPiA+ID4+Pj4+IC19Ow0KPiA+ID4+Pj4+IC0NCj4g PiA+Pj4+PiAgc3RhdGljIGludCBxb3JpcV90bXVfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2Rldmlj ZSAqcGRldikgIHsNCj4gPiA+Pj4+PiAgCWludCByZXQ7DQo+ID4gPj4+Pj4gIAlzdHJ1Y3QgcW9y aXFfdG11X2RhdGEgKmRhdGE7DQo+ID4gPj4+Pj4gIAlzdHJ1Y3QgZGV2aWNlX25vZGUgKm5wID0g cGRldi0+ZGV2Lm9mX25vZGU7DQo+ID4gPj4+Pj4gLQl1MzIgc2l0ZTsNCj4gPiA+Pj4+Pg0KPiA+ ID4+Pj4+ICAJaWYgKCFucCkgew0KPiA+ID4+Pj4+ICAJCWRldl9lcnIoJnBkZXYtPmRldiwgIkRl dmljZSBPRi1Ob2RlIGlzIE5VTEwiKTsgQEANCj4gPiA+PiAtMjAzLDEzDQo+ID4gPj4+Pj4gKzIw OCw2IEBAIHN0YXRpYyBpbnQgcW9yaXFfdG11X3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UN Cj4gPiA+PiAqcGRldikNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+ICAJZGF0YS0+bGl0dGxlX2VuZGlh biA9IG9mX3Byb3BlcnR5X3JlYWRfYm9vbChucCwNCj4gPiA+Pj4+PiAibGl0dGxlLWVuZGlhbiIp Ow0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gLQlkYXRhLT5zZW5zb3JfaWQgPSBxb3JpcV90bXVfZ2V0 X3NlbnNvcl9pZCgpOw0KPiA+ID4+Pj4+IC0JaWYgKGRhdGEtPnNlbnNvcl9pZCA8IDApIHsNCj4g PiA+Pj4+PiAtCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gZ2V0IHNlbnNvciBpZFxu Iik7DQo+ID4gPj4+Pj4gLQkJcmV0ID0gLUVOT0RFVjsNCj4gPiA+Pj4+PiAtCQlnb3RvIGVycl9p b21hcDsNCj4gPiA+Pj4+PiAtCX0NCj4gPiA+Pj4+PiAtDQo+ID4gPj4+Pj4gIAlkYXRhLT5yZWdz ID0gb2ZfaW9tYXAobnAsIDApOw0KPiA+ID4+Pj4+ICAJaWYgKCFkYXRhLT5yZWdzKSB7DQo+ID4g Pj4+Pj4gIAkJZGV2X2VycigmcGRldi0+ZGV2LCAiRmFpbGVkIHRvIGdldCBtZW1vcnkgcmVnaW9u XG4iKTsNCj4gPiA+PiBAQA0KPiA+ID4+Pj4+IC0yMjMsMTkgKzIyMSwxMyBAQCBzdGF0aWMgaW50 IHFvcmlxX3RtdV9wcm9iZShzdHJ1Y3QNCj4gPiA+PiBwbGF0Zm9ybV9kZXZpY2UNCj4gPiA+Pj4+ PiAqcGRldikNCj4gPiA+Pj4+PiAgCWlmIChyZXQgPCAwKQ0KPiA+ID4+Pj4+ICAJCWdvdG8gZXJy X3RtdTsNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IC0JZGF0YS0+dHogPSBkZXZtX3RoZXJtYWxfem9u ZV9vZl9zZW5zb3JfcmVnaXN0ZXIoJnBkZXYtPmRldiwNCj4gPiA+Pj4+PiAtCQkJCQkJCWRhdGEt PnNlbnNvcl9pZCwNCj4gPiA+Pj4+PiAtCQkJCQkJCWRhdGEsICZ0bXVfdHpfb3BzKTsNCj4gPiA+ Pj4+PiAtCWlmIChJU19FUlIoZGF0YS0+dHopKSB7DQo+ID4gPj4+Pj4gLQkJcmV0ID0gUFRSX0VS UihkYXRhLT50eik7DQo+ID4gPj4+Pj4gLQkJZGV2X2VycigmcGRldi0+ZGV2LA0KPiA+ID4+Pj4+ IC0JCQkiRmFpbGVkIHRvIHJlZ2lzdGVyIHRoZXJtYWwgem9uZSBkZXZpY2UgJWRcbiIsIHJldCk7 DQo+ID4gPj4+Pj4gLQkJZ290byBlcnJfdG11Ow0KPiA+ID4+Pj4+ICsJcmV0ID0gcW9yaXFfdG11 X3JlZ2lzdGVyX3RtdV96b25lKHBkZXYpOw0KPiA+ID4+Pj4+ICsJaWYgKHJldCA8IDApIHsNCj4g PiA+Pj4+PiArCQlkZXZfZXJyKCZwZGV2LT5kZXYsICJGYWlsZWQgdG8gcmVnaXN0ZXIgc2Vuc29y c1xuIik7DQo+ID4gPj4+Pj4gKwkJcmV0ID0gLUVOT0RFVjsNCj4gPiA+Pj4+PiArCQlnb3RvIGVy cl9pb21hcDsNCj4gPiA+Pj4+PiAgCX0NCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IC0JLyogRW5hYmxl IG1vbml0b3JpbmcgKi8NCj4gPiA+Pj4+PiAtCXNpdGUgPSAweDEgPDwgKDE1IC0gZGF0YS0+c2Vu c29yX2lkKTsNCj4gPiA+Pj4+PiAtCXRtdV93cml0ZShkYXRhLCBzaXRlIHwgVE1SX01FIHwgVE1S X0FMUEYsICZkYXRhLT5yZWdzLT50bXIpOw0KPiA+ID4+Pj4+DQo+ID4gPj4+Pj4gIAlyZXR1cm4g MDsNCj4gPiA+Pj4+Pg0KPiA+ID4+Pj4+IC0tDQo+ID4gPj4+Pj4gMS43LjENCj4gPiA+Pj4NCj4g PiA+Pg0KPiA+ID4+DQo+ID4gPj4gLS0NCj4gPiA+Pg0KPiA+ID4+IDxodHRwczovL2VtZWEwMS5z YWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYlMkYNCj4gPiA+ PiBodHRwczovL2VtZWEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPXd3 dy5saW5hcm8ub3JnDQo+ID4gPj4NCj4gJmFtcDtkYXRhPTAyJTdDMDElN0NhbmR5LnRhbmclNDBu eHAuY29tJTdDNTIzYzhhMjgwOWEzNGY1NzcwMDgwOGQNCj4gNjUNCj4gPiA+Pg0KPiA2MWYwNTc1 JTdDNjg2ZWExZDNiYzJiNGM2ZmE5MmNkOTljNWMzMDE2MzUlN0MwJTdDMCU3QzYzNjc5MTA4ODU3 Mg0KPiAwMw0KPiA+ID4+DQo+IDA4NDAmYW1wO3NkYXRhPVhWMEk5JTJCM0ZjdFVTRiUyQkRBcVJW RVdHazhJVHpzaGQlMkZ0UWZwUlpKZ3VZWmMNCj4gJTNEDQo+ID4gPj4NCj4gJmFtcDtyZXNlcnZl ZD0wJTJGJmFtcDtkYXRhPTAyJTdDMDElN0NhbmR5LnRhbmclNDBueHAuY29tJTdDYTANCj4gPiA+ PiBkMjY1Zjk1YTQyNGQzMzI1NmIwOGQ2NGY4ZDc0YzglN0M2ODZlYTFkM2JjMmI0YzZmYTkyY2Q5 OWM1Yw0KPiA+ID4+IDMwMTYzNSU3QzAlN0MwJTdDNjM2NzgzODY2Mjk5Mzk5MjkwJmFtcDtzZGF0 YT1BVnczWGRqbWlSTw0KPiA+ID4+IFhQN1h6N01UTk1WZ3pJOGhZRzlhV3NSMDJvcE1acWpNJTNE JmFtcDtyZXNlcnZlZD0wPg0KPiA+ID4+IExpbmFyby5vcmcg4pSCIE9wZW4gc291cmNlIHNvZnR3 YXJlIGZvciBBUk0gU29Dcw0KPiA+ID4+DQo+ID4gPj4gRm9sbG93IExpbmFybzoNCj4gPiA+PiA8 aHR0cHM6Ly9lbWVhMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3VybD1odHRw JTNBJTJGJTJGDQo+ID4gPj4gaHR0cHM6Ly9lbWVhMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0 bG9vay5jb20vP3VybD13d3cuZmFjZWJvb2suYw0KPiA+ID4+DQo+IG9tJmFtcDtkYXRhPTAyJTdD MDElN0NhbmR5LnRhbmclNDBueHAuY29tJTdDNTIzYzhhMjgwOWEzNGY1NzcwMDgNCj4gMDhkDQo+ ID4gPj4NCj4gNjU2MWYwNTc1JTdDNjg2ZWExZDNiYzJiNGM2ZmE5MmNkOTljNWMzMDE2MzUlN0Mw JTdDMCU3QzYzNjc5MTA4ODUNCj4gNzINCj4gPiA+Pg0KPiAwMzA4NDAmYW1wO3NkYXRhPWJic0Zi WTRDb0ZHRnlkdVRTWGxSOW9LNDJocEZHQVhUbVpNQXN3TmNoa1UlMw0KPiBEJmFtcA0KPiA+ID4+ IDtyZXNlcnZlZD0wJTJGcGFnZXMlMkZMaW5hcm8mYW1wO2RhdGE9MDIlN0MwMSU3Q2FuZHkudGFu DQo+ID4gPj4gZyU0MG54cC5jb20lN0NhMGQyNjVmOTVhNDI0ZDMzMjU2YjA4ZDY0ZjhkNzRjOCU3 QzY4NmVhMWQzYg0KPiA+ID4+IGMyYjRjNmZhOTJjZDk5YzVjMzAxNjM1JTdDMCU3QzAlN0M2MzY3 ODM4NjYyOTkzOTkyOTAmYW1wO3MNCj4gPiA+Pg0KPiBkYXRhPU5NOHdtNHJpJTJGMmtkQlcwRmRD U1hyTDVvZ2c2b3dQZm9SR2FjcW0lMkJLc0V3JTNEJmENCj4gPiA+PiBtcDtyZXNlcnZlZD0wPiBG YWNlYm9vayB8DQo+ID4gPj4gPGh0dHBzOi8vZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91 dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUyRg0KPiA+ID4+IHQNCj4gd2l0dGVyLmNvbSUyRiUy MyElMkZsaW5hcm9vcmcmYW1wO2RhdGE9MDIlN0MwMSU3Q2FuZHkudGFuZyU0MG4NCj4gPiA+PiB4 cC5jb20lN0NhMGQyNjVmOTVhNDI0ZDMzMjU2YjA4ZDY0ZjhkNzRjOCU3QzY4NmVhMWQzYmMyYjRj Ng0KPiA+ID4+IGZhOTJjZDk5YzVjMzAxNjM1JTdDMCU3QzAlN0M2MzY3ODM4NjYyOTkzOTkyOTAm YW1wO3NkYXRhPQ0KPiA+ID4+IFdwbHF3cGlzZ21xcmYzeUxoVHpkbzVPNlR2TjJKZnU1SWpCVHZT NHhPV2slM0QmYW1wO3Jlc2VydmVkPTA+DQo+ID4gPj4gVHdpdHRlciB8DQo+ID4gPj4gPGh0dHBz Oi8vZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUy RiUyRg0KPiA+ID4+IGh0dHBzOi8vZW1lYTAxLnNhZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2su Y29tLz91cmw9d3d3LmxpbmFyby5vcmcNCj4gPiA+Pg0KPiAmYW1wO2RhdGE9MDIlN0MwMSU3Q2Fu ZHkudGFuZyU0MG54cC5jb20lN0M1MjNjOGEyODA5YTM0ZjU3NzAwODA4ZA0KPiA2NQ0KPiA+ID4+ DQo+IDYxZjA1NzUlN0M2ODZlYTFkM2JjMmI0YzZmYTkyY2Q5OWM1YzMwMTYzNSU3QzAlN0MwJTdD NjM2NzkxMDg4NTcyDQo+IDAzDQo+ID4gPj4NCj4gMDg0MCZhbXA7c2RhdGE9WFYwSTklMkIzRmN0 VVNGJTJCREFxUlZFV0drOElUenNoZCUyRnRRZnBSWkpndVlaYw0KPiAlM0QNCj4gPiA+Pg0KPiAm YW1wO3Jlc2VydmVkPTAlMkZsaW5hcm8tYmxvZyUyRiZhbXA7ZGF0YT0wMiU3QzAxJTdDYW5keS50 YW5nJTQwDQo+ID4gPj4gbnhwLmNvbSU3Q2EwZDI2NWY5NWE0MjRkMzMyNTZiMDhkNjRmOGQ3NGM4 JTdDNjg2ZWExZDNiYzJiNGMNCj4gPiA+PiA2ZmE5MmNkOTljNWMzMDE2MzUlN0MwJTdDMCU3QzYz Njc4Mzg2NjI5OTM5OTI5MCZhbXA7c2RhdGE9SQ0KPiA+ID4+IGI2S0ZJUDNMTlBHdUREYjFkcG5P bGxycUFBc2MlMkJaTkNVdUpaVVBzbzZrJTNEJmFtcDtyZXNlcnZlDQo+ID4gPj4gZD0wPiBCbG9n DQo+ID4gPg0KPiA+DQo+ID4NCj4gPiAtLQ0KPiA+DQo+ID4NCj4gPGh0dHBzOi8vZW1lYTAxLnNh ZmVsaW5rcy5wcm90ZWN0aW9uLm91dGxvb2suY29tLz91cmw9aHR0cCUzQSUyRiUyRnd3dw0KPiA+ IC5saW5hcm8ub3JnJTJGJmFtcDtkYXRhPTAyJTdDMDElN0NhbmR5LnRhbmclNDBueHAuY29tJTdD NTIzYzhhMjgwDQo+IDlhMzRmDQo+ID4NCj4gNTc3MDA4MDhkNjU2MWYwNTc1JTdDNjg2ZWExZDNi YzJiNGM2ZmE5MmNkOTljNWMzMDE2MzUlN0MwJTdDMCU3QzYNCj4gMzY3OTENCj4gPg0KPiAwODg1 NzIwMzA4NDAmYW1wO3NkYXRhPUpkUGg3Q0d0WUtja3ZYWmJhWHlZaDFZSXpMSVd1SU54R3VjOCUy RnA1cWINCj4gN3clMw0KPiA+IEQmYW1wO3Jlc2VydmVkPTA+IExpbmFyby5vcmcg4pSCIE9wZW4g c291cmNlIHNvZnR3YXJlIGZvciBBUk0gU29Dcw0KPiA+DQo+ID4gRm9sbG93IExpbmFybzoNCj4g Pg0KPiA8aHR0cHM6Ly9lbWVhMDEuc2FmZWxpbmtzLnByb3RlY3Rpb24ub3V0bG9vay5jb20vP3Vy bD1odHRwJTNBJTJGJTJGd3d3DQo+ID4gLmZhY2Vib29rLmNvbSUyRnBhZ2VzJTJGTGluYXJvJmFt cDtkYXRhPTAyJTdDMDElN0NhbmR5LnRhbmclNDBueA0KPiBwLmNvbSUNCj4gPg0KPiA3QzUyM2M4 YTI4MDlhMzRmNTc3MDA4MDhkNjU2MWYwNTc1JTdDNjg2ZWExZDNiYzJiNGM2ZmE5MmNkOTljNWMz MDE2DQo+IDM1JQ0KPiA+DQo+IDdDMCU3QzAlN0M2MzY3OTEwODg1NzIwMzA4NDAmYW1wO3NkYXRh PTEyMGpscG95TyUyRkVyZ1lDZGlKa1E1UEl1MQ0KPiBscUlPDQo+ID4gOTc2VyUyQkJsaWZqcTl6 dyUzRCZhbXA7cmVzZXJ2ZWQ9MD4gRmFjZWJvb2sgfA0KPiA+IDxodHRwczovL2VtZWEwMS5zYWZl bGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/dXJsPWh0dHAlM0ElMkYlMkZ0d2kNCj4gPg0K PiB0dGVyLmNvbSUyRiUyMyElMkZsaW5hcm9vcmcmYW1wO2RhdGE9MDIlN0MwMSU3Q2FuZHkudGFu ZyU0MG54cC5jb20NCj4gJTdDNQ0KPiA+DQo+IDIzYzhhMjgwOWEzNGY1NzcwMDgwOGQ2NTYxZjA1 NzUlN0M2ODZlYTFkM2JjMmI0YzZmYTkyY2Q5OWM1YzMwMTYzNQ0KPiAlN0MwDQo+ID4gJTdDMCU3 QzYzNjc5MTA4ODU3MjAzMDg0MCZhbXA7c2RhdGE9aHFSbm9Od3BoN0l0M1Z0UkViOVBNbmt0Wm4N Cj4gNklXcVBWaHQNCj4gPiBScVhMOHF5S0ElM0QmYW1wO3Jlc2VydmVkPTA+IFR3aXR0ZXIgfA0K PiA+DQo+IDxodHRwczovL2VtZWEwMS5zYWZlbGlua3MucHJvdGVjdGlvbi5vdXRsb29rLmNvbS8/ dXJsPWh0dHAlM0ElMkYlMkZ3d3cNCj4gPiAubGluYXJvLm9yZyUyRmxpbmFyby1ibG9nJTJGJmFt cDtkYXRhPTAyJTdDMDElN0NhbmR5LnRhbmclNDBueHAuY29tDQo+ICU3Qw0KPiA+DQo+IDUyM2M4 YTI4MDlhMzRmNTc3MDA4MDhkNjU2MWYwNTc1JTdDNjg2ZWExZDNiYzJiNGM2ZmE5MmNkOTljNWMz MDE2MzUNCj4gJTdDDQo+ID4NCj4gMCU3QzAlN0M2MzY3OTEwODg1NzIwMzA4NDAmYW1wO3NkYXRh PUdZYXg1JTJGWnpRdHg2b21JeXVNTXcwa2xoDQo+IHJGVU5zblANCj4gPiBMRlolMkZzZzRPWSUy QllJJTNEJmFtcDtyZXNlcnZlZD0wPiBCbG9nDQo+ID4NCg==