From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C2435C10F0E for ; Fri, 12 Apr 2019 09:48:09 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 74B5E20850 for ; Fri, 12 Apr 2019 09:48:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726800AbfDLJsI (ORCPT ); Fri, 12 Apr 2019 05:48:08 -0400 Received: from mx.socionext.com ([202.248.49.38]:47418 "EHLO mx.socionext.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726713AbfDLJsI (ORCPT ); Fri, 12 Apr 2019 05:48:08 -0400 Received: from unknown (HELO iyokan-ex.css.socionext.com) ([172.31.9.54]) by mx.socionext.com with ESMTP; 12 Apr 2019 18:48:02 +0900 Received: from mail.mfilter.local (m-filter-1 [10.213.24.61]) by iyokan-ex.css.socionext.com (Postfix) with ESMTP id E90C46117D; Fri, 12 Apr 2019 18:48:02 +0900 (JST) Received: from 10.213.24.1 (10.213.24.1) by m-FILTER with ESMTP; Fri, 12 Apr 2019 18:48:02 +0900 Received: from SOC-EX02V.e01.socionext.com (10.213.24.22) by SOC-EX03V.e01.socionext.com (10.213.24.23) with Microsoft SMTP Server (TLS) id 15.0.995.29; Fri, 12 Apr 2019 18:48:01 +0900 Received: from SOC-EX02V.e01.socionext.com ([10.213.25.22]) by SOC-EX02V.e01.socionext.com ([10.213.25.22]) with mapi id 15.00.0995.028; Fri, 12 Apr 2019 18:48:01 +0900 From: To: CC: , , , , , , , , , Subject: Re: [Milbeaut PATCH v0.4 2/2] mmc: sdhci_f_sdh30: Add support for Milbeaut M10V host controller Thread-Topic: [Milbeaut PATCH v0.4 2/2] mmc: sdhci_f_sdh30: Add support for Milbeaut M10V host controller Thread-Index: AQHU45BDtOEiz8PDF0KyhR3XAoxYg6Y2Qv0AgAGIowA= Date: Fri, 12 Apr 2019 09:48:01 +0000 Message-ID: <20190412184752.0478.F0D17A80@socionext.com> References: <1553576300-5895-1-git-send-email-orito.takao@socionext.com> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: x-mailer: Becky! ver. 2.74.02 [ja] (Evaluation) x-originating-ip: [10.213.24.1] Content-Type: text/plain; charset="iso-2022-jp" Content-ID: <0F59CAC499187E418366AFE484CCD0C3@socionext.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org DQpIaQ0KDQpUaGFuayB5b3UgZm9yIHlvdSBjb21tZW50Lg0KDQo+IE9uIFR1ZSwgMjYgTWFyIDIw MTkgYXQgMDU6NTYsIFRha2FvIE9yaXRvIDxvcml0by50YWthb0Bzb2Npb25leHQuY29tPiB3cm90 ZToNCj4gPg0KPiA+IFNEIEhvc3QgY29udHJvbGxlciBvbiBNaWxiZWF1dCBpcyBjb25zaXN0IG9m IHR3byBjb250cm9sbGVyIHBhcnRzLg0KPiA+IE9uZSBpcyBjb3JlIGNvbnRyb2xsZXIgRl9TREgz MCwgdGhpcyBpcyBzaW1pbGFyIHRvIHNkaGNpLWZ1aml0c3UNCj4gPiBjb250cm9sbGVyLg0KPiA+ IEFub3RoZXIgaXMgYnJpZGdlIGNvbnRyb2xsZXIuDQo+ID4gVGhpcyBicmlkZ2UgY29udHJvbGxl ciBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHNkaGNpLWZ1aml0c3UgY29udHJvbGxlci4NCj4gPiBU aGlzIGlzIHNwZWNpYWwgZm9yIE1pbGJlYXV0IHNlcmllcy4gVGhpcyBoYXMgc29tZSBmdW5jdGlv bnMuDQo+ID4gRm9yIGV4YW1wbGUsIHJlc2V0IGNvbnRyb2wsIGNsb2NrIGVuYWJsZS9zZWxlY3Qg Zm9yIFNEUjUwLzI1LzEyLCBzZXQNCj4gPiBwcm9wZXJ0eSBvZiBTRCBwaHlzaWNhbCBwaW5zLCBy ZXR1bmluZyBjb250cm9sLCBzZXQgY2FwYWJpbGl0eWllcy4NCj4gPg0KPiA+IFRoaXMgYnJpZGdl IGNvbnRyb2xsZXIgcmVxdWlyZXMgc3BlY2lhbCBwcm9jZWR1cmVzIGF0IHJlc2V0IG9yIGNsb2Nr DQo+ID4gZW5hYmxlbWVudCBvciBjaGFuZ2UgZm9yIGZ1cnRoZXIgdHVuaW5nIG9mIGNsb2NrLg0K PiA+DQo+ID4gVGhpcyBuZXcgZHJpdmVyIHVzZXMgR1BJTyBkZXNjcmlwdG9yIGZyb20gcGxhdGZv cm0gZGF0YSB0byBzd2l0Y2gNCj4gPiB0aGUgcG93ZXIuDQo+ID4NCj4gPiBTaWduZWQtb2ZmLWJ5 OiBUYWthbyBPcml0byA8b3JpdG8udGFrYW9Ac29jaW9uZXh0LmNvbT4NCj4gDQo+IExvb2tzIGxp a2UgeW91IHNob3VsZCBhZGQgYSBuZXcgdmFyaWFudCBkcml2ZXIgaW5zdGVhZCBvZiBleHRlbmRp bmcNCj4gc2RoY2lfZl9zZGgzMC5jLg0KPiANCj4gSWYgdGhlcmUgYXJlIHNvbWUgcmVnaXN0ZXJz IGJpdHMgb3Igc29tZSBvdGhlciBtaW5vciB0aGluZ3MgdGhhdCB5b3UNCj4gd2FudCB0byBzaGFy ZSBhbW9uZyB0aGVzZSB2YXJpYW50cywgeW91IGNhbiBhbHdheXMgZG8gdGhhdCB2aWEgYQ0KPiBo ZWFkZXIgZmlsZS4NCg0KT2ssIEkgc2VlLg0KSSB3aWxsIHRoaW5rIHRvIHByZXBhcmUgYSBuZXcg dmFyaWFudCBkcml2ZXIgd2l0aCBuZXcgY29tbW9uIGhlYWRlciBmaWxlDQp0byBiZSBzaGFyZWQg d2l0aCBzZGhjaV9mX3NkaDMwLmMNCg0KVGhhbmtzDQpPcml0bw0KDQo+IA0KPiBLaW5kIHJlZ2Fy ZHMNCj4gVWZmZQ0KPiANCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9tbWMvaG9zdC9zZGhjaV9mX3Nk aDMwLmMgfCAzMjQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tDQo+ID4g IDEgZmlsZSBjaGFuZ2VkLCAyOTYgaW5zZXJ0aW9ucygrKSwgMjggZGVsZXRpb25zKC0pDQo+ID4N Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaV9mX3NkaDMwLmMgYi9kcml2 ZXJzL21tYy9ob3N0L3NkaGNpX2Zfc2RoMzAuYw0KPiA+IGluZGV4IDQ4NWY3NTkuLjk5NGJhZmQg MTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9tbWMvaG9zdC9zZGhjaV9mX3NkaDMwLmMNCj4gPiAr KysgYi9kcml2ZXJzL21tYy9ob3N0L3NkaGNpX2Zfc2RoMzAuYw0KPiA+IEBAIC0xMSwxMiArMTEs MTUgQEANCj4gPiAgICovDQo+ID4NCj4gPiAgI2luY2x1ZGUgPGxpbnV4L2FjcGkuaD4NCj4gPiAt I2luY2x1ZGUgPGxpbnV4L2Vyci5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+DQo+ID4g ICNpbmNsdWRlIDxsaW51eC9kZWxheS5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvZXJyLmg+DQo+ ID4gKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9ncGlvL2Nv bnN1bWVyLmg+DQo+ID4gICNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4NCj4gPiAgI2luY2x1ZGUg PGxpbnV4L29mLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4NCj4gPiAgI2lu Y2x1ZGUgPGxpbnV4L3Byb3BlcnR5Lmg+DQo+ID4gLSNpbmNsdWRlIDxsaW51eC9jbGsuaD4NCj4g Pg0KPiA+ICAjaW5jbHVkZSAic2RoY2ktcGx0Zm0uaCINCj4gPg0KPiA+IEBAIC00MywxNCArNDYs NTUgQEANCj4gPg0KPiA+ICAjZGVmaW5lIEZfU0RIMzBfQ01EX0RBVF9ERUxBWSAgICAgICAgICAw eDIwMA0KPiA+DQo+ID4gKy8qIG1pbGJlYXV0IGJyaWRnZSBjb250cm9sbGVyIHJlZ2lzdGVyICov DQo+ID4gKyNkZWZpbmUgTUxCX1NPRlRfUkVTRVQgICAgICAgICAweDAyMDANCj4gPiArI2RlZmlu ZSAgTUxCX1NPRlRfUkVTRVRfUlNUWCAgICAgICAgICAgQklUKDApDQo+ID4gKw0KPiA+ICsjZGVm aW5lIE1MQl9XUF9DRF9MRURfU0VUICAgICAgMHgwMjEwDQo+ID4gKyNkZWZpbmUgIE1MQl9XUF9D RF9MRURfU0VUX0xFRF9JTlYgIEJJVCgyKQ0KPiA+ICsNCj4gPiArI2RlZmluZSBNTEJfQ1JfU0VU ICAgICAgICAgICAgICAgICAgICAgMHgwMjIwDQo+ID4gKyNkZWZpbmUgIE1MQl9DUl9TRVRfQ1Jf VE9DTEtVTklUICAgICAgIEJJVCgyNCkNCj4gPiArI2RlZmluZSAgTUxCX0NSX1NFVF9DUl9UT0NM S0ZSRVFfU0ZUICAgKDE2KQ0KPiA+ICsjZGVmaW5lICBNTEJfQ1JfU0VUX0NSX1RPQ0xLRlJFUV9N QVNLICAoMHgzRiA8PCBNTEJfQ1JfU0VUX0NSX1RPQ0xLRlJFUV9TRlQpDQo+ID4gKyNkZWZpbmUg IE1MQl9DUl9TRVRfQ1JfQkNMS0ZSRVFfU0ZUICAgICg4KQ0KPiA+ICsjZGVmaW5lICBNTEJfQ1Jf U0VUX0NSX0JDTEtGUkVRX01BU0sgICAoMHhGRiA8PCBNTEJfQ1JfU0VUX0NSX0JDTEtGUkVRX1NG VCkNCj4gPiArI2RlZmluZSAgTUxCX0NSX1NFVF9DUl9SVFVOVElNRVJfU0ZUICAgKDQpDQo+ID4g KyNkZWZpbmUgIE1MQl9DUl9TRVRfQ1JfUlRVTlRJTUVSX01BU0sgICgweEYgPDwgTUxCX0NSX1NF VF9DUl9SVFVOVElNRVJfU0ZUKQ0KPiA+ICsNCj4gPiArI2RlZmluZSBNTEJfU0RfVE9DTEtfSV9E SVYgICAgIDE2DQo+ID4gKyNkZWZpbmUgTUxCX1RPQ0xLRlJFUV9VTklUX1RIUkVTICAgICAgIDE2 MDAwMDAwDQo+ID4gKyNkZWZpbmUgTUxCX0NBTF9UT0NMS0ZSRVFfTUhaKHJhdGUpICAgIChyYXRl IC8gTUxCX1NEX1RPQ0xLX0lfRElWIC8gMTAwMDAwMCkNCj4gPiArI2RlZmluZSBNTEJfQ0FMX1RP Q0xLRlJFUV9LSFoocmF0ZSkgICAgKHJhdGUgLyBNTEJfU0RfVE9DTEtfSV9ESVYgLyAxMDAwKQ0K PiA+ICsjZGVmaW5lIE1MQl9UT0NMS0ZSRVFfTUFYICAgICAgNjMNCj4gPiArI2RlZmluZSBNTEJf VE9DTEtGUkVRX01JTiAgICAgICAxDQo+ID4gKw0KPiA+ICsjZGVmaW5lIE1MQl9TRF9CQ0xLX0lf RElWICAgICAgNA0KPiA+ICsjZGVmaW5lIE1MQl9DQUxfQkNMS0ZSRVEocmF0ZSkgKHJhdGUgLyBN TEJfU0RfQkNMS19JX0RJViAvIDEwMDAwMDApDQo+ID4gKyNkZWZpbmUgTUxCX0JDTEtGUkVRX01B WCAgICAgICAgICAgICAgIDI1NQ0KPiA+ICsjZGVmaW5lIE1MQl9CQ0xLRlJFUV9NSU4gICAgICAg ICAgICAgICAgIDENCj4gPiArDQo+ID4gKyNkZWZpbmUgTUxCX0NEUl9TRVQgICAgICAgICAgICAg ICAgICAgIDB4MDIzMA0KPiA+ICsjZGVmaW5lIE1MQl9DRFJfU0VUX0NMSzJQT1cxNiAgMw0KPiA+ ICsNCj4gPiAgI2RlZmluZSBGX1NESDMwX01JTl9DTE9DSyAgICAgICAgICAgICAgNDAwMDAwDQo+ ID4NCj4gPiArc3RydWN0IGZfc2RoMzBfY29uZmlnIHsNCj4gPiArICAgICAgIHZvaWQgKCpyZXNl dCkoc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QsIHU4IG1hc2spOw0KPiA+ICsgICAgICAgdm9pZCAo KmluaXQpKHN0cnVjdCBzZGhjaV9ob3N0ICpob3N0KTsNCj4gPiArICAgICAgIHZvaWQgKCpxdWly a19pbml0KShzdHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdCk7DQo+ID4gKyAgICAgICB2b2lkICgqcHJl cGFyZV9wb3dlcikoc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QsIHVuc2lnbmVkIGNoYXIgbW9kZSwN Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNo b3J0IHZkZCk7DQo+ID4gK307DQo+ID4gKw0KPiA+ICBzdHJ1Y3QgZl9zZGhvc3RfcHJpdiB7DQo+ ID4gICAgICAgICBzdHJ1Y3QgY2xrICpjbGtfaWZhY2U7DQo+ID4gICAgICAgICBzdHJ1Y3QgY2xr ICpjbGs7DQo+ID4gICAgICAgICB1MzIgdmVuZG9yX2hzMjAwOw0KPiA+ICAgICAgICAgc3RydWN0 IGRldmljZSAqZGV2Ow0KPiA+ICAgICAgICAgYm9vbCBlbmFibGVfY21kX2RhdF9kZWxheTsNCj4g PiArICAgICAgIHN0cnVjdCBncGlvX2Rlc2MgKnBvd2VyX2dwaW87DQo+ID4gKyAgICAgICBzdHJ1 Y3QgZl9zZGgzMF9jb25maWcgKmNvbmZpZzsNCj4gPiAgfTsNCj4gPg0KPiA+ICBzdGF0aWMgdm9p ZCBzZGhjaV9mX3NkaDMwX3NvZnRfdm9sdGFnZV9zd2l0Y2goc3RydWN0IHNkaGNpX2hvc3QgKmhv c3QpDQo+ID4gQEAgLTg2LDcgKzEzMCw0NiBAQCBzdGF0aWMgdW5zaWduZWQgaW50IHNkaGNpX2Zf c2RoMzBfZ2V0X21pbl9jbG9jayhzdHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdCkNCj4gPiAgICAgICAg IHJldHVybiBGX1NESDMwX01JTl9DTE9DSzsNCj4gPiAgfQ0KPiA+DQo+ID4gLXN0YXRpYyB2b2lk IHNkaGNpX2Zfc2RoMzBfcmVzZXQoc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QsIHU4IG1hc2spDQo+ ID4gK3N0YXRpYyB2b2lkIHNkaGNpX21pbGJlYXV0X3Jlc2V0KHN0cnVjdCBzZGhjaV9ob3N0ICpo b3N0LCB1OCBtYXNrKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZl9zZGhvc3RfcHJpdiAq cHJpdiA9IHNkaGNpX3ByaXYoaG9zdCk7DQo+ID4gKyAgICAgICB1MTYgY2xrOw0KPiA+ICsgICAg ICAgdTMyIGN0bDsNCj4gPiArICAgICAgIGt0aW1lX3QgdGltZW91dDsNCj4gPiArDQo+ID4gKyAg ICAgICBjbGsgPSBzZGhjaV9yZWFkdyhob3N0LCBTREhDSV9DTE9DS19DT05UUk9MKTsNCj4gPiAr ICAgICAgIGNsayA9IChjbGsgJiB+U0RIQ0lfQ0xPQ0tfQ0FSRF9FTikgfCBTREhDSV9DTE9DS19J TlRfRU47DQo+ID4gKyAgICAgICBzZGhjaV93cml0ZXcoaG9zdCwgY2xrLCBTREhDSV9DTE9DS19D T05UUk9MKTsNCj4gPiArDQo+ID4gKyAgICAgICBzZGhjaV9yZXNldChob3N0LCBtYXNrKTsNCj4g PiArDQo+ID4gKyAgICAgICBjbGsgfD0gU0RIQ0lfQ0xPQ0tfQ0FSRF9FTjsNCj4gPiArICAgICAg IHNkaGNpX3dyaXRldyhob3N0LCBjbGssIFNESENJX0NMT0NLX0NPTlRST0wpOw0KPiA+ICsNCj4g PiArICAgICAgIHRpbWVvdXQgPSBrdGltZV9hZGRfbXMoa3RpbWVfZ2V0KCksIDEwKTsNCj4gPiAr ICAgICAgIHdoaWxlICgxKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGJvb2wgdGltZWRvdXQgPSBr dGltZV9hZnRlcihrdGltZV9nZXQoKSwgdGltZW91dCk7DQo+ID4gKw0KPiA+ICsgICAgICAgICAg ICAgICBjbGsgPSBzZGhjaV9yZWFkdyhob3N0LCBTREhDSV9DTE9DS19DT05UUk9MKTsNCj4gPiAr ICAgICAgICAgICAgICAgaWYgKGNsayAmIFNESENJX0NMT0NLX0lOVF9TVEFCTEUpDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICAgICAgICAgIGlmICh0aW1l ZG91dCkgew0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHByX2VycigiJXM6IEludGVybmFs IGNsb2NrIG5ldmVyIHN0YWJpbGlzZWQuXG4iLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbW1jX2hvc3RuYW1lKGhvc3QtPm1tYykpOw0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgIHNkaGNpX2R1bXByZWdzKGhvc3QpOw0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAg IHJldHVybjsNCj4gPiArICAgICAgICAgICAgICAgfQ0KPiA+ICsgICAgICAgICAgICAgICB1ZGVs YXkoMTApOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIGlmIChwcml2LT5lbmFi bGVfY21kX2RhdF9kZWxheSkgew0KPiA+ICsgICAgICAgICAgICAgICBjdGwgPSBzZGhjaV9yZWFk bChob3N0LCBGX1NESDMwX0VTRF9DT05UUk9MKTsNCj4gPiArICAgICAgICAgICAgICAgY3RsIHw9 IEZfU0RIMzBfQ01EX0RBVF9ERUxBWTsNCj4gPiArICAgICAgICAgICAgICAgc2RoY2lfd3JpdGVs KGhvc3QsIGN0bCwgRl9TREgzMF9FU0RfQ09OVFJPTCk7DQo+ID4gKyAgICAgICB9DQo+ID4gK30N Cj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIHNkaGNpX21iODZzNzBfcmVzZXQoc3RydWN0IHNkaGNp X2hvc3QgKmhvc3QsIHU4IG1hc2spDQo+ID4gIHsNCj4gPiAgICAgICAgIHN0cnVjdCBmX3NkaG9z dF9wcml2ICpwcml2ID0gc2RoY2lfcHJpdihob3N0KTsNCj4gPiAgICAgICAgIHUzMiBjdGw7DQo+ ID4gQEAgLTEwMyw2ICsxODYsNTEgQEAgc3RhdGljIHZvaWQgc2RoY2lfZl9zZGgzMF9yZXNldChz dHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdCwgdTggbWFzaykNCj4gPiAgICAgICAgIH0NCj4gPiAgfQ0K PiA+DQo+ID4gK3N0YXRpYyB2b2lkIHNkaGNpX2Zfc2RoMzBfcmVzZXQoc3RydWN0IHNkaGNpX2hv c3QgKmhvc3QsIHU4IG1hc2spDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBmX3NkaG9zdF9w cml2ICpwcml2ID0gc2RoY2lfcHJpdihob3N0KTsNCj4gPiArDQo+ID4gKyAgICAgICBwcml2LT5j b25maWctPnJlc2V0KGhvc3QsIG1hc2spOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9p ZCBzZGhjaV9taWxiZWF1dF9wb3dlcl9vZmYoc3RydWN0IGZfc2Rob3N0X3ByaXYgKnByaXYpDQo+ ID4gK3sNCj4gPiArICAgICAgIGdwaW9kX3NldF92YWx1ZShwcml2LT5wb3dlcl9ncGlvLCAwKTsN Cj4gPiArICAgICAgIHVkZWxheSgxMDAwKTsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZv aWQgc2RoY2lfbWlsYmVhdXRfcG93ZXJfb24oc3RydWN0IGZfc2Rob3N0X3ByaXYgKnByaXYpDQo+ ID4gK3sNCj4gPiArICAgICAgIGdwaW9kX3NldF92YWx1ZShwcml2LT5wb3dlcl9ncGlvLCAxKTsN Cj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQgc2RoY2lfbWlsYmVhdXRfcHJlcGFyZV9w b3dlcihzdHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICB1bnNpZ25lZCBjaGFyIG1vZGUsIHVuc2lnbmVkIHNob3J0IHZkZCkNCj4gPiArew0KPiA+ICsg ICAgICAgc3RydWN0IGZfc2Rob3N0X3ByaXYgKnByaXYgPSBzZGhjaV9wcml2KGhvc3QpOw0KPiA+ ICsNCj4gPiArICAgICAgIGlmICghSVNfRVJSKHByaXYtPnBvd2VyX2dwaW8pKQ0KPiA+ICsgICAg ICAgICAgICAgICBzd2l0Y2ggKG1vZGUpIHsNCj4gPiArICAgICAgICAgICAgICAgY2FzZSBNTUNf UE9XRVJfVVA6DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgc2RoY2lfbWlsYmVhdXRfcG93 ZXJfb24ocHJpdik7DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gKyAg ICAgICAgICAgICAgIGNhc2UgTU1DX1BPV0VSX09GRjoNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICBzZGhjaV9taWxiZWF1dF9wb3dlcl9vZmYocHJpdik7DQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuOw0KPiA+ICsgICAgICAgICAgICAgICB9DQo+ID4gK30NCj4gPiArDQo+ ID4gK3N0YXRpYyB2b2lkIHNkaGNpX2Zfc2RoMzBfc2V0X3Bvd2VyKHN0cnVjdCBzZGhjaV9ob3N0 ICpob3N0LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hh ciBtb2RlLCB1bnNpZ25lZCBzaG9ydCB2ZGQpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBm X3NkaG9zdF9wcml2ICpwcml2ID0gc2RoY2lfcHJpdihob3N0KTsNCj4gPiArDQo+ID4gKyAgICAg ICBpZiAocHJpdi0+Y29uZmlnLT5wcmVwYXJlX3Bvd2VyKQ0KPiA+ICsgICAgICAgICAgICAgICBw cml2LT5jb25maWctPnByZXBhcmVfcG93ZXIoaG9zdCwgbW9kZSwgdmRkKTsNCj4gPiArDQo+ID4g KyAgICAgICBzZGhjaV9zZXRfcG93ZXIoaG9zdCwgbW9kZSwgdmRkKTsNCj4gPiArfQ0KPiA+ICsN Cj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBzZGhjaV9vcHMgc2RoY2lfZl9zZGgzMF9vcHMgPSB7 DQo+ID4gICAgICAgICAudm9sdGFnZV9zd2l0Y2ggPSBzZGhjaV9mX3NkaDMwX3NvZnRfdm9sdGFn ZV9zd2l0Y2gsDQo+ID4gICAgICAgICAuZ2V0X21pbl9jbG9jayA9IHNkaGNpX2Zfc2RoMzBfZ2V0 X21pbl9jbG9jaywNCj4gPiBAQCAtMTEwLDYgKzIzOCwxNTYgQEAgc3RhdGljIHZvaWQgc2RoY2lf Zl9zZGgzMF9yZXNldChzdHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdCwgdTggbWFzaykNCj4gPiAgICAg ICAgIC5zZXRfY2xvY2sgPSBzZGhjaV9zZXRfY2xvY2ssDQo+ID4gICAgICAgICAuc2V0X2J1c193 aWR0aCA9IHNkaGNpX3NldF9idXNfd2lkdGgsDQo+ID4gICAgICAgICAuc2V0X3Voc19zaWduYWxp bmcgPSBzZGhjaV9zZXRfdWhzX3NpZ25hbGluZywNCj4gPiArICAgICAgIC5zZXRfcG93ZXIgPSBz ZGhjaV9mX3NkaDMwX3NldF9wb3dlciwNCj4gPiArfTsNCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lk IHNkaGNpX21pbGJlYXV0X2JyaWRnZV9yZXNldChzdHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdCwgaW50 IHJlc2V0X2ZsYWcpDQo+ID4gK3sNCj4gPiArICAgICAgIGlmIChyZXNldF9mbGFnKQ0KPiA+ICsg ICAgICAgICAgICAgICBzZGhjaV93cml0ZWwoaG9zdCwgMCwgTUxCX1NPRlRfUkVTRVQpOw0KPiA+ ICsgICAgICAgZWxzZQ0KPiA+ICsgICAgICAgICAgICAgICBzZGhjaV93cml0ZWwoaG9zdCwgTUxC X1NPRlRfUkVTRVRfUlNUWCwgTUxCX1NPRlRfUkVTRVQpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgdm9pZCBzZGhjaV9taWxiZWF1dF9icmlkZ2VfaW5pdChzdHJ1Y3Qgc2RoY2lfaG9zdCAq aG9zdCwgaW50IHJhdGUpDQo+ID4gK3sNCj4gPiArICAgICAgIHUzMiB2YWwsIGNsazsNCj4gPiAr DQo+ID4gKyAgICAgICAvKiBJT19TRElPX0NSX1NFVCBzaG91bGQgYmUgc2V0IHdoaWxlIHJlc2V0 ICovDQo+ID4gKyAgICAgICB2YWwgPSBzZGhjaV9yZWFkbChob3N0LCBNTEJfQ1JfU0VUKTsNCj4g PiArICAgICAgIHZhbCAmPSB+KE1MQl9DUl9TRVRfQ1JfVE9DTEtGUkVRX01BU0sgfCBNTEJfQ1Jf U0VUX0NSX1RPQ0xLVU5JVCB8DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBN TEJfQ1JfU0VUX0NSX0JDTEtGUkVRX01BU0spOw0KPiA+ICsgICAgICAgaWYgKHJhdGUgPj0gTUxC X1RPQ0xLRlJFUV9VTklUX1RIUkVTKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGNsayA9IE1MQl9D QUxfVE9DTEtGUkVRX01IWihyYXRlKTsNCj4gPiArICAgICAgICAgICAgICAgY2xrID0gbWluX3Qo dTMyLCBNTEJfVE9DTEtGUkVRX01BWCwgY2xrKTsNCj4gPiArICAgICAgICAgICAgICAgdmFsIHw9 IE1MQl9DUl9TRVRfQ1JfVE9DTEtVTklUIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAo Y2xrIDw8IE1MQl9DUl9TRVRfQ1JfVE9DTEtGUkVRX1NGVCk7DQo+ID4gKyAgICAgICB9IGVsc2Ug ew0KPiA+ICsgICAgICAgICAgICAgICBjbGsgPSBNTEJfQ0FMX1RPQ0xLRlJFUV9LSFoocmF0ZSk7 DQo+ID4gKyAgICAgICAgICAgICAgIGNsayA9IG1pbl90KHUzMiwgTUxCX1RPQ0xLRlJFUV9NQVgs IGNsayk7DQo+ID4gKyAgICAgICAgICAgICAgIGNsayA9IG1heF90KHUzMiwgTUxCX1RPQ0xLRlJF UV9NSU4sIGNsayk7DQo+ID4gKyAgICAgICAgICAgICAgIHZhbCB8PSBjbGsgPDwgTUxCX0NSX1NF VF9DUl9UT0NMS0ZSRVFfU0ZUOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIGNs ayA9IE1MQl9DQUxfQkNMS0ZSRVEocmF0ZSk7DQo+ID4gKyAgICAgICBjbGsgPSBtaW5fdCh1MzIs IE1MQl9CQ0xLRlJFUV9NQVgsIGNsayk7DQo+ID4gKyAgICAgICBjbGsgPSBtYXhfdCh1MzIsIE1M Ql9CQ0xLRlJFUV9NSU4sIGNsayk7DQo+ID4gKyAgICAgICB2YWwgfD0gIGNsayA8PCBNTEJfQ1Jf U0VUX0NSX0JDTEtGUkVRX1NGVDsNCj4gPiArDQo+ID4gKyAgICAgICB2YWwgJj0gfk1MQl9DUl9T RVRfQ1JfUlRVTlRJTUVSX01BU0s7DQo+ID4gKw0KPiA+ICsgICAgICAgc2RoY2lfd3JpdGVsKGhv c3QsIHZhbCwgTUxCX0NSX1NFVCk7DQo+ID4gKw0KPiA+ICsgICAgICAgc2RoY2lfd3JpdGVsKGhv c3QsIE1MQl9DRFJfU0VUX0NMSzJQT1cxNiwgTUxCX0NEUl9TRVQpOw0KPiA+ICsNCj4gPiArICAg ICAgIHNkaGNpX3dyaXRlbChob3N0LCBNTEJfV1BfQ0RfTEVEX1NFVF9MRURfSU5WLCBNTEJfV1Bf Q0RfTEVEX1NFVCk7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIHNkaGNpX21pbGJl YXV0X3ZlbmRvcl9pbml0KHN0cnVjdCBzZGhjaV9ob3N0ICpob3N0KQ0KPiA+ICt7DQo+ID4gKyAg ICAgICBzdHJ1Y3QgZl9zZGhvc3RfcHJpdiAqcHJpdiA9IHNkaGNpX3ByaXYoaG9zdCk7DQo+ID4g KyAgICAgICB1MzIgY3RsOw0KPiA+ICsNCj4gPiArICAgICAgIGN0bCA9IHNkaGNpX3JlYWRsKGhv c3QsIEZfU0RIMzBfSU9fQ09OVFJPTDIpOw0KPiA+ICsgICAgICAgY3RsIHw9IEZfU0RIMzBfQ1JF U19PX0ROOw0KPiA+ICsgICAgICAgc2RoY2lfd3JpdGVsKGhvc3QsIGN0bCwgRl9TREgzMF9JT19D T05UUk9MMik7DQo+ID4gKyAgICAgICBjdGwgJj0gfkZfU0RIMzBfTVNFTF9PXzFfODsNCj4gPiAr ICAgICAgIHNkaGNpX3dyaXRlbChob3N0LCBjdGwsIEZfU0RIMzBfSU9fQ09OVFJPTDIpOw0KPiA+ ICsgICAgICAgY3RsICY9IH5GX1NESDMwX0NSRVNfT19ETjsNCj4gPiArICAgICAgIHNkaGNpX3dy aXRlbChob3N0LCBjdGwsIEZfU0RIMzBfSU9fQ09OVFJPTDIpOw0KPiA+ICsNCj4gPiArICAgICAg IGN0bCA9IHNkaGNpX3JlYWR3KGhvc3QsIEZfU0RIMzBfQUhCX0NPTkZJRyk7DQo+ID4gKyAgICAg ICBjdGwgfD0gRl9TREgzMF9TSU4gfCBGX1NESDMwX0FIQl9JTkNSXzE2IHwgRl9TREgzMF9BSEJf SU5DUl84IHwNCj4gPiArICAgICAgICAgICAgICAgICAgRl9TREgzMF9BSEJfSU5DUl80Ow0KPiA+ ICsgICAgICAgY3RsICY9IH4oRl9TREgzMF9BSEJfQklHRUQgfCBGX1NESDMwX0JVU0xPQ0tfRU4p Ow0KPiA+ICsgICAgICAgc2RoY2lfd3JpdGV3KGhvc3QsIGN0bCwgRl9TREgzMF9BSEJfQ09ORklH KTsNCj4gPiArDQo+ID4gKyAgICAgICBpZiAocHJpdi0+ZW5hYmxlX2NtZF9kYXRfZGVsYXkpIHsN Cj4gPiArICAgICAgICAgICAgICAgY3RsID0gc2RoY2lfcmVhZGwoaG9zdCwgRl9TREgzMF9FU0Rf Q09OVFJPTCk7DQo+ID4gKyAgICAgICAgICAgICAgIGN0bCB8PSBGX1NESDMwX0NNRF9EQVRfREVM QVk7DQo+ID4gKyAgICAgICAgICAgICAgIHNkaGNpX3dyaXRlbChob3N0LCBjdGwsIEZfU0RIMzBf RVNEX0NPTlRST0wpOw0KPiA+ICsgICAgICAgfQ0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMg dm9pZCBzZGhjaV9taWxiZWF1dF9pbml0KHN0cnVjdCBzZGhjaV9ob3N0ICpob3N0KQ0KPiA+ICt7 DQo+ID4gKyAgICAgICBzdHJ1Y3QgZl9zZGhvc3RfcHJpdiAqcHJpdiA9IHNkaGNpX3ByaXYoaG9z dCk7DQo+ID4gKyAgICAgICBpbnQgcmF0ZSA9IGNsa19nZXRfcmF0ZShwcml2LT5jbGspOw0KPiA+ ICsgICAgICAgdTE2IGN0bDsNCj4gPiArDQo+ID4gKyAgICAgICBzZGhjaV9taWxiZWF1dF9icmlk Z2VfcmVzZXQoaG9zdCwgMCk7DQo+ID4gKw0KPiA+ICsgICAgICAgY3RsID0gc2RoY2lfcmVhZHco aG9zdCwgU0RIQ0lfQ0xPQ0tfQ09OVFJPTCk7DQo+ID4gKyAgICAgICBjdGwgJj0gfihTREhDSV9D TE9DS19DQVJEX0VOIHwgU0RIQ0lfQ0xPQ0tfSU5UX0VOKTsNCj4gPiArICAgICAgIHNkaGNpX3dy aXRldyhob3N0LCBjdGwsIFNESENJX0NMT0NLX0NPTlRST0wpOw0KPiA+ICsNCj4gPiArICAgICAg IHNkaGNpX21pbGJlYXV0X2JyaWRnZV9yZXNldChob3N0LCAxKTsNCj4gPiArDQo+ID4gKyAgICAg ICBwcml2LT5wb3dlcl9ncGlvID0gZGV2bV9ncGlvZF9nZXRfb3B0aW9uYWwocHJpdi0+ZGV2LA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAic25pLG1tYy1wb3dlciIsIEdQSU9EX09VVF9M T1cpOw0KPiA+ICsgICAgICAgaWYgKCFJU19FUlIocHJpdi0+cG93ZXJfZ3BpbykpIHsNCj4gPiAr ICAgICAgICAgICAgICAgc2RoY2lfbWlsYmVhdXRfcG93ZXJfb2ZmKHByaXYpOw0KPiA+ICsgICAg ICAgICAgICAgICBtc2xlZXAoMjApOyAvKiBuZWVkIGZvciBjYXJkIHBvd2VyIG9mZiBkdXJhdGlv biAqLw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHNkaGNpX21pbGJlYXV0X2Jy aWRnZV9pbml0KGhvc3QsIHJhdGUpOw0KPiA+ICsgICAgICAgc2RoY2lfbWlsYmVhdXRfYnJpZGdl X3Jlc2V0KGhvc3QsIDApOw0KPiA+ICsNCj4gPiArICAgICAgIHNkaGNpX21pbGJlYXV0X3ZlbmRv cl9pbml0KGhvc3QpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdm9pZCBzZGhjaV9tYjg2 czcwX2luaXQoc3RydWN0IHNkaGNpX2hvc3QgKmhvc3QpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0 cnVjdCBmX3NkaG9zdF9wcml2ICpwcml2ID0gc2RoY2lfcHJpdihob3N0KTsNCj4gPiArICAgICAg IHUzMiBjdHJsLCByZWc7DQo+ID4gKw0KPiA+ICsgICAgICAgLyogaW5pdCB2ZW5kb3Igc3BlY2lm aWMgcmVncyAqLw0KPiA+ICsgICAgICAgY3RybCA9IHNkaGNpX3JlYWR3KGhvc3QsIEZfU0RIMzBf QUhCX0NPTkZJRyk7DQo+ID4gKyAgICAgICBjdHJsIHw9IEZfU0RIMzBfU0lOIHwgRl9TREgzMF9B SEJfSU5DUl8xNiB8IEZfU0RIMzBfQUhCX0lOQ1JfOCB8DQo+ID4gKyAgICAgICAgICAgICAgIEZf U0RIMzBfQUhCX0lOQ1JfNDsNCj4gPiArICAgICAgIGN0cmwgJj0gfihGX1NESDMwX0FIQl9CSUdF RCB8IEZfU0RIMzBfQlVTTE9DS19FTik7DQo+ID4gKyAgICAgICBzZGhjaV93cml0ZXcoaG9zdCwg Y3RybCwgRl9TREgzMF9BSEJfQ09ORklHKTsNCj4gPiArDQo+ID4gKyAgICAgICByZWcgPSBzZGhj aV9yZWFkbChob3N0LCBGX1NESDMwX0VTRF9DT05UUk9MKTsNCj4gPiArICAgICAgIHNkaGNpX3dy aXRlbChob3N0LCByZWcgJiB+Rl9TREgzMF9FTU1DX1JTVCwgRl9TREgzMF9FU0RfQ09OVFJPTCk7 DQo+ID4gKyAgICAgICBtc2xlZXAoMjApOw0KPiA+ICsgICAgICAgc2RoY2lfd3JpdGVsKGhvc3Qs IHJlZyB8IEZfU0RIMzBfRU1NQ19SU1QsIEZfU0RIMzBfRVNEX0NPTlRST0wpOw0KPiA+ICsNCj4g PiArICAgICAgIHJlZyA9IHNkaGNpX3JlYWRsKGhvc3QsIFNESENJX0NBUEFCSUxJVElFUyk7DQo+ ID4gKyAgICAgICBpZiAocmVnICYgU0RIQ0lfQ0FOX0RPXzhCSVQpDQo+ID4gKyAgICAgICAgICAg ICAgIHByaXYtPnZlbmRvcl9oczIwMCA9IEZfU0RIMzBfRU1NQ19IUzIwMDsNCj4gPiArfQ0KPiA+ ICsNCj4gPiArc3RhdGljIHZvaWQgc2RoY2lfbWlsYmVhdXRfcXVpcmtfaW5pdChzdHJ1Y3Qgc2Ro Y2lfaG9zdCAqaG9zdCkNCj4gPiArew0KPiA+ICsgICAgICAgaG9zdC0+cXVpcmtzID0gU0RIQ0lf UVVJUktfTk9fRU5EQVRUUl9JTl9OT1BERVNDIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAg ICAgICBTREhDSV9RVUlSS19JTlZFUlRFRF9XUklURV9QUk9URUNUIHwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICBTREhDSV9RVUlSS19DTE9DS19CRUZPUkVfUkVTRVQgfA0KPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgIFNESENJX1FVSVJLX0RFTEFZX0FGVEVSX1BPV0VSOw0K PiA+ICsgICAgICAgaG9zdC0+cXVpcmtzMiA9IFNESENJX1FVSVJLMl9TVVBQT1JUX1NJTkdMRSB8 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgU0RIQ0lfUVVJUksyX1RVTklOR19XT1JLX0FS T1VORCB8DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgU0RIQ0lfUVVJUksyX1BSRVNFVF9W QUxVRV9CUk9LRU47DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyB2b2lkIHNkaGNpX21iODZz NzBfcXVpcmtfaW5pdChzdHJ1Y3Qgc2RoY2lfaG9zdCAqaG9zdCkNCj4gPiArew0KPiA+ICsgICAg ICAgaG9zdC0+cXVpcmtzID0gU0RIQ0lfUVVJUktfTk9fRU5EQVRUUl9JTl9OT1BERVNDIHwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICBTREhDSV9RVUlSS19JTlZFUlRFRF9XUklURV9Q Uk9URUNUOw0KPiA+ICsgICAgICAgaG9zdC0+cXVpcmtzMiA9IFNESENJX1FVSVJLMl9TVVBQT1JU X1NJTkdMRSB8DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgU0RIQ0lfUVVJUksyX1RVTklO R19XT1JLX0FST1VORDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RydWN0IGZfc2RoMzBfY29uZmln IG1iODZzNzBfY29uZmlnID0gew0KPiA+ICsgICAgICAgLnJlc2V0ID0gc2RoY2lfbWI4NnM3MF9y ZXNldCwNCj4gPiArICAgICAgIC5xdWlya19pbml0ID0gc2RoY2lfbWI4NnM3MF9xdWlya19pbml0 LA0KPiA+ICsgICAgICAgLmluaXQgPSBzZGhjaV9tYjg2czcwX2luaXQsDQo+ID4gK307DQo+ID4g Kw0KPiA+ICtzdHJ1Y3QgZl9zZGgzMF9jb25maWcgbWlsYmVhdXRfY29uZmlnID0gew0KPiA+ICsg ICAgICAgLnJlc2V0ID0gc2RoY2lfbWlsYmVhdXRfcmVzZXQsDQo+ID4gKyAgICAgICAucHJlcGFy ZV9wb3dlciA9IHNkaGNpX21pbGJlYXV0X3ByZXBhcmVfcG93ZXIsDQo+ID4gKyAgICAgICAucXVp cmtfaW5pdCA9IHNkaGNpX21pbGJlYXV0X3F1aXJrX2luaXQsDQo+ID4gKyAgICAgICAuaW5pdCA9 IHNkaGNpX21pbGJlYXV0X2luaXQsDQo+ID4gIH07DQo+ID4NCj4gPiAgc3RhdGljIGludCBzZGhj aV9mX3NkaDMwX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gQEAgLTEx Nyw5ICszOTUsOCBAQCBzdGF0aWMgaW50IHNkaGNpX2Zfc2RoMzBfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikNCj4gPiAgICAgICAgIHN0cnVjdCBzZGhjaV9ob3N0ICpob3N0Ow0K PiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsNCj4gPiAgICAgICAg IHN0cnVjdCByZXNvdXJjZSAqcmVzOw0KPiA+IC0gICAgICAgaW50IGlycSwgY3RybCA9IDAsIHJl dCA9IDA7DQo+ID4gKyAgICAgICBpbnQgaXJxLCByZXQgPSAwOw0KPiA+ICAgICAgICAgc3RydWN0 IGZfc2Rob3N0X3ByaXYgKnByaXY7DQo+ID4gLSAgICAgICB1MzIgcmVnID0gMDsNCj4gPg0KPiA+ ICAgICAgICAgaXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2LCAwKTsNCj4gPiAgICAgICAgIGlm IChpcnEgPCAwKSB7DQo+ID4gQEAgLTEzMywxNCArNDEwLDEyIEBAIHN0YXRpYyBpbnQgc2RoY2lf Zl9zZGgzMF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+DQo+ID4gICAg ICAgICBwcml2ID0gc2RoY2lfcHJpdihob3N0KTsNCj4gPiAgICAgICAgIHByaXYtPmRldiA9IGRl djsNCj4gPiArICAgICAgIHByaXYtPmNvbmZpZyA9IChzdHJ1Y3QgZl9zZGgzMF9jb25maWcgKilv Zl9kZXZpY2VfZ2V0X21hdGNoX2RhdGEoZGV2KTsNCj4gPiArICAgICAgIGlmICghcHJpdi0+Y29u ZmlnKQ0KPiA+ICsgICAgICAgICAgICAgICAvKiB0aGlzIG11c3QgYmUgbWF0Y2hlZCBieSBBQ1BJ LCBmYWxsIGRvd24gdG8gbWI4NnM3MCBjb21wYXQgKi8NCj4gPiArICAgICAgICAgICAgICAgcHJp di0+Y29uZmlnID0gJm1iODZzNzBfY29uZmlnOw0KPiA+DQo+ID4gLSAgICAgICBob3N0LT5xdWly a3MgPSBTREhDSV9RVUlSS19OT19FTkRBVFRSX0lOX05PUERFU0MgfA0KPiA+IC0gICAgICAgICAg ICAgICAgICAgICAgU0RIQ0lfUVVJUktfSU5WRVJURURfV1JJVEVfUFJPVEVDVDsNCj4gPiAtICAg ICAgIGhvc3QtPnF1aXJrczIgPSBTREhDSV9RVUlSSzJfU1VQUE9SVF9TSU5HTEUgfA0KPiA+IC0g ICAgICAgICAgICAgICAgICAgICAgIFNESENJX1FVSVJLMl9UVU5JTkdfV09SS19BUk9VTkQ7DQo+ ID4gLQ0KPiA+IC0gICAgICAgcHJpdi0+ZW5hYmxlX2NtZF9kYXRfZGVsYXkgPSBkZXZpY2VfcHJv cGVydHlfcmVhZF9ib29sKGRldiwNCj4gPiAtICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAiZnVqaXRzdSxjbWQtZGF0LWRlbGF5LXNlbGVjdCIpOw0KPiA+ICsg ICAgICAgcHJpdi0+Y29uZmlnLT5xdWlya19pbml0KGhvc3QpOw0KPiA+DQo+ID4gICAgICAgICBy ZXQgPSBtbWNfb2ZfcGFyc2UoaG9zdC0+bW1jKTsNCj4gPiAgICAgICAgIGlmIChyZXQpDQo+ID4g QEAgLTE4MywyMSArNDU4LDcgQEAgc3RhdGljIGludCBzZGhjaV9mX3NkaDMwX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgZ290 byBlcnJfY2xrOw0KPiA+ICAgICAgICAgfQ0KPiA+DQo+ID4gLSAgICAgICAvKiBpbml0IHZlbmRv ciBzcGVjaWZpYyByZWdzICovDQo+ID4gLSAgICAgICBjdHJsID0gc2RoY2lfcmVhZHcoaG9zdCwg Rl9TREgzMF9BSEJfQ09ORklHKTsNCj4gPiAtICAgICAgIGN0cmwgfD0gRl9TREgzMF9TSU4gfCBG X1NESDMwX0FIQl9JTkNSXzE2IHwgRl9TREgzMF9BSEJfSU5DUl84IHwNCj4gPiAtICAgICAgICAg ICAgICAgRl9TREgzMF9BSEJfSU5DUl80Ow0KPiA+IC0gICAgICAgY3RybCAmPSB+KEZfU0RIMzBf QUhCX0JJR0VEIHwgRl9TREgzMF9CVVNMT0NLX0VOKTsNCj4gPiAtICAgICAgIHNkaGNpX3dyaXRl dyhob3N0LCBjdHJsLCBGX1NESDMwX0FIQl9DT05GSUcpOw0KPiA+IC0NCj4gPiAtICAgICAgIHJl ZyA9IHNkaGNpX3JlYWRsKGhvc3QsIEZfU0RIMzBfRVNEX0NPTlRST0wpOw0KPiA+IC0gICAgICAg c2RoY2lfd3JpdGVsKGhvc3QsIHJlZyAmIH5GX1NESDMwX0VNTUNfUlNULCBGX1NESDMwX0VTRF9D T05UUk9MKTsNCj4gPiAtICAgICAgIG1zbGVlcCgyMCk7DQo+ID4gLSAgICAgICBzZGhjaV93cml0 ZWwoaG9zdCwgcmVnIHwgRl9TREgzMF9FTU1DX1JTVCwgRl9TREgzMF9FU0RfQ09OVFJPTCk7DQo+ ID4gLQ0KPiA+IC0gICAgICAgcmVnID0gc2RoY2lfcmVhZGwoaG9zdCwgU0RIQ0lfQ0FQQUJJTElU SUVTKTsNCj4gPiAtICAgICAgIGlmIChyZWcgJiBTREhDSV9DQU5fRE9fOEJJVCkNCj4gPiAtICAg ICAgICAgICAgICAgcHJpdi0+dmVuZG9yX2hzMjAwID0gRl9TREgzMF9FTU1DX0hTMjAwOw0KPiA+ ICsgICAgICAgcHJpdi0+Y29uZmlnLT5pbml0KGhvc3QpOw0KPiA+DQo+ID4gICAgICAgICByZXQg PSBzZGhjaV9hZGRfaG9zdChob3N0KTsNCj4gPiAgICAgICAgIGlmIChyZXQpDQo+ID4gQEAgLTIz Myw3ICs0OTQsMTQgQEAgc3RhdGljIGludCBzZGhjaV9mX3NkaDMwX3JlbW92ZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQ0KPiA+DQo+ID4gICNpZmRlZiBDT05GSUdfT0YNCj4gPiAgc3Rh dGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgZl9zZGgzMF9kdF9pZHNbXSA9IHsNCj4gPiAt ICAgICAgIHsgLmNvbXBhdGlibGUgPSAiZnVqaXRzdSxtYjg2czcwLXNkaGNpLTMuMCIgfSwNCj4g PiArICAgICAgIHsNCj4gPiArICAgICAgICAgICAgICAgLmNvbXBhdGlibGUgPSAiZnVqaXRzdSxt Yjg2czcwLXNkaGNpLTMuMCIsDQo+ID4gKyAgICAgICAgICAgICAgIC5kYXRhID0gJm1iODZzNzBf Y29uZmlnLA0KPiA+ICsgICAgICAgfSwNCj4gPiArICAgICAgIHsNCj4gPiArICAgICAgICAgICAg ICAgLmNvbXBhdGlibGUgPSAic29jaW9uZXh0LG1pbGJlYXV0LW0xMHYtc2RoY2ktMy4wIiwNCj4g PiArICAgICAgICAgICAgICAgLmRhdGEgPSAmbWlsYmVhdXRfY29uZmlnLA0KPiA+ICsgICAgICAg fSwNCj4gPiAgICAgICAgIHsgLyogc2VudGluZWwgKi8gfQ0KPiA+ICB9Ow0KPiA+ICBNT0RVTEVf REVWSUNFX1RBQkxFKG9mLCBmX3NkaDMwX2R0X2lkcyk7DQo+ID4gLS0NCj4gPiAxLjkuMQ0KPiA+ DQo+ID4NCg0KLS0gDQpUYWthbyBPcml0byA8b3JpdG8udGFrYW9Ac29jaW9uZXh0LmNvbT4NCg==