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=-13.8 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED 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 C3AA3C64E7B for ; Mon, 30 Nov 2020 15:06:18 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 64C2B20725 for ; Mon, 30 Nov 2020 15:06:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726505AbgK3PGN (ORCPT ); Mon, 30 Nov 2020 10:06:13 -0500 Received: from mga05.intel.com ([192.55.52.43]:65023 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726364AbgK3PGN (ORCPT ); Mon, 30 Nov 2020 10:06:13 -0500 IronPort-SDR: YKndwt84wwu+01IXy4ApW9A4aqW8RGuWvs3SiPXdrNtc4eZe/FOEBeZG46Id3EF+hWgW+6IDwj zLU+fms1VCTw== X-IronPort-AV: E=McAfee;i="6000,8403,9820"; a="257356989" X-IronPort-AV: E=Sophos;i="5.78,382,1599548400"; d="scan'208";a="257356989" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 30 Nov 2020 07:05:29 -0800 IronPort-SDR: 2utgPPwbjpDOggwnT4BBS/vD04pJ9ZlTLW8DOOvJga05H1bhV8/TW1mMOuI7fwgLWq5ULcTJq6 khx5ZYbNZ+vg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.78,382,1599548400"; d="scan'208";a="329607767" Received: from fmsmsx603.amr.corp.intel.com ([10.18.126.83]) by orsmga003.jf.intel.com with ESMTP; 30 Nov 2020 07:05:28 -0800 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 30 Nov 2020 07:05:28 -0800 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1713.5; Mon, 30 Nov 2020 07:05:27 -0800 Received: from fmsmsx610.amr.corp.intel.com ([10.18.126.90]) by fmsmsx610.amr.corp.intel.com ([10.18.126.90]) with mapi id 15.01.1713.004; Mon, 30 Nov 2020 07:05:27 -0800 From: "Jiang, Dave" To: "Jiang, Dave" , "vkoul@kernel.org" CC: "dmaengine@vger.kernel.org" , "Luck, Tony" , "Williams, Dan J" Subject: RE: [PATCH] dmaengine: idxd: add IAX configuration support in the IDXD driver Thread-Topic: [PATCH] dmaengine: idxd: add IAX configuration support in the IDXD driver Thread-Index: AQHWvSG3YUw2sO7GfkmlqLh5YtxtD6ng2XRg Date: Mon, 30 Nov 2020 15:05:24 +0000 Message-ID: References: <160564555488.1834439.4261958859935360473.stgit@djiang5-desk3.ch.intel.com> In-Reply-To: <160564555488.1834439.4261958859935360473.stgit@djiang5-desk3.ch.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.5.1.3 x-originating-ip: [10.22.254.132] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: dmaengine@vger.kernel.org DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogRGF2ZSBKaWFuZyA8ZGF2 ZS5qaWFuZ0BpbnRlbC5jb20+DQo+IFNlbnQ6IFR1ZXNkYXksIE5vdmVtYmVyIDE3LCAyMDIwIDE6 MzkgUE0NCj4gVG86IHZrb3VsQGtlcm5lbC5vcmcNCj4gQ2M6IGRtYWVuZ2luZUB2Z2VyLmtlcm5l bC5vcmc7IEx1Y2ssIFRvbnkgPHRvbnkubHVja0BpbnRlbC5jb20+Ow0KPiBXaWxsaWFtcywgRGFu IEogPGRhbi5qLndpbGxpYW1zQGludGVsLmNvbT4NCj4gU3ViamVjdDogW1BBVENIXSBkbWFlbmdp bmU6IGlkeGQ6IGFkZCBJQVggY29uZmlndXJhdGlvbiBzdXBwb3J0IGluIHRoZSBJRFhEDQo+IGRy aXZlcg0KPiANCj4gQWRkIHN1cHBvcnQgdG8gYWxsb3cgY29uZmlndXJhdGlvbiBvZiBJbnRlbCBB bmFseXRpY3MgQWNjZWxlcmF0b3IgKElBWCkgaW4NCj4gYWRkaXRpb24gdG8gdGhlIEludGVsIERh dGEgU3RyZWFtaW5nIEFjY2VsZXJhdG9yIChEU0EpLiBUaGUgSUFYIGhhcmR3YXJlDQo+IGhhcyB0 aGUgc2FtZSBjb25maWd1cmF0aW9uIGludGVyZmFjZSBhcyBEU0EuIFRoZSBtYWluIGRpZmZlcmVu Y2UNCj4gaXMgdGhlIHR5cGUgb2Ygb3BlcmF0aW9ucyBpdCBwZXJmb3Jtcy4gV2UgY2FuIHN1cHBv cnQgdGhlIERTQSBhbmQNCj4gSUFYIGRldmljZXMgb24gdGhlIHNhbWUgZHJpdmVyIHdpdGggc29t ZSB0d2Vha3MuDQo+IA0KPiBJQVggaGFzIGEgNjRCIGNvbXBsZXRpb24gcmVjb3JkIHRoYXQgbmVl ZHMgdG8gYmUgNjRCIGFsaWduZWQsIGFzIG9wcG9zZWQgdG8NCj4gYSAzMkIgY29tcGxldGlvbiBy ZWNvcmQgdGhhdCBpcyAzMkIgYWxpZ25lZCBmb3IgRFNBLiBJQVggYWxzbyBkb2VzIG5vdA0KPiBz dXBwb3J0IHRva2VuIG1hbmFnZW1lbnQuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBEYXZlIEppYW5n IDxkYXZlLmppYW5nQGludGVsLmNvbT4NCg0KSGkgVmlub2QsDQpWZXJ5IG11Y2ggYXBwcmVjaWF0 ZSBhbGwgeW91ciByZXZpZXdzLiBXaWxsIHlvdSBwbGVhc2UgY29uc2lkZXIgdGhpcyBwYXRjaCBm b3IgdGhlIDUuMTEgbWVyZ2Ugd2luZG93PyBUaGFuayB5b3UhDQoNCg0KPiAtLS0NCj4gIGRyaXZl cnMvZG1hL2lkeGQvY2Rldi5jICAgICAgfCAgICAxICsNCj4gIGRyaXZlcnMvZG1hL2lkeGQvZGV2 aWNlLmMgICAgfCAgIDM3ICsrKysrKysrKysrKysrKy0tLS0tDQo+ICBkcml2ZXJzL2RtYS9pZHhk L2lkeGQuaCAgICAgIHwgICAyNCArKysrKysrKysrKy0tDQo+ICBkcml2ZXJzL2RtYS9pZHhkL2lu aXQuYyAgICAgIHwgICAxNCArKysrKysrDQo+ICBkcml2ZXJzL2RtYS9pZHhkL3JlZ2lzdGVycy5o IHwgICAgMSArDQo+ICBkcml2ZXJzL2RtYS9pZHhkL3N1Ym1pdC5jICAgIHwgICAgMiArDQo+ICBk cml2ZXJzL2RtYS9pZHhkL3N5c2ZzLmMgICAgIHwgICA0NiArKysrKysrKysrKysrKysrKysrKysr Ky0NCj4gIGluY2x1ZGUvdWFwaS9saW51eC9pZHhkLmggICAgfCAgIDc5DQo+ICsrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKw0KPiAgOCBmaWxlcyBjaGFuZ2VkLCAxODcg aW5zZXJ0aW9ucygrKSwgMTcgZGVsZXRpb25zKC0pDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9kbWEvaWR4ZC9jZGV2LmMgYi9kcml2ZXJzL2RtYS9pZHhkL2NkZXYuYw0KPiBpbmRleCAwMTBi ODIwZDhmNzQuLjBkYjliODJlZDhjZiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9kbWEvaWR4ZC9j ZGV2LmMNCj4gKysrIGIvZHJpdmVycy9kbWEvaWR4ZC9jZGV2LmMNCj4gQEAgLTI4LDYgKzI4LDcg QEAgc3RydWN0IGlkeGRfY2Rldl9jb250ZXh0IHsNCj4gICAqLw0KPiAgc3RhdGljIHN0cnVjdCBp ZHhkX2NkZXZfY29udGV4dCBpY3R4W0lEWERfVFlQRV9NQVhdID0gew0KPiAgCXsgLm5hbWUgPSAi ZHNhIiB9LA0KPiArCXsgLm5hbWUgPSAiaWF4IiB9DQo+ICB9Ow0KPiANCj4gIHN0cnVjdCBpZHhk X3VzZXJfY29udGV4dCB7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9pZHhkL2RldmljZS5j IGIvZHJpdmVycy9kbWEvaWR4ZC9kZXZpY2UuYw0KPiBpbmRleCBiNzVmOWEwOTY2NmUuLjQ3ZmY4 ZTM4NzE3MiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9kbWEvaWR4ZC9kZXZpY2UuYw0KPiArKysg Yi9kcml2ZXJzL2RtYS9pZHhkL2RldmljZS5jDQo+IEBAIC0xMzEsNiArMTMxLDggQEAgaW50IGlk eGRfd3FfYWxsb2NfcmVzb3VyY2VzKHN0cnVjdCBpZHhkX3dxICp3cSkNCj4gIAlzdHJ1Y3QgaWR4 ZF9kZXZpY2UgKmlkeGQgPSB3cS0+aWR4ZDsNCj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmaWR4 ZC0+cGRldi0+ZGV2Ow0KPiAgCWludCByYywgbnVtX2Rlc2NzLCBpOw0KPiArCWludCBhbGlnbjsN Cj4gKwl1NjQgdG1wOw0KPiANCj4gIAlpZiAod3EtPnR5cGUgIT0gSURYRF9XUVRfS0VSTkVMKQ0K PiAgCQlyZXR1cm4gMDsNCj4gQEAgLTE0MiwxNCArMTQ0LDI3IEBAIGludCBpZHhkX3dxX2FsbG9j X3Jlc291cmNlcyhzdHJ1Y3QgaWR4ZF93cSAqd3EpDQo+ICAJaWYgKHJjIDwgMCkNCj4gIAkJcmV0 dXJuIHJjOw0KPiANCj4gLQl3cS0+Y29tcGxzX3NpemUgPSBudW1fZGVzY3MgKiBzaXplb2Yoc3Ry dWN0DQo+IGRzYV9jb21wbGV0aW9uX3JlY29yZCk7DQo+IC0Jd3EtPmNvbXBscyA9IGRtYV9hbGxv Y19jb2hlcmVudChkZXYsIHdxLT5jb21wbHNfc2l6ZSwNCj4gLQkJCQkJJndxLT5jb21wbHNfYWRk ciwgR0ZQX0tFUk5FTCk7DQo+IC0JaWYgKCF3cS0+Y29tcGxzKSB7DQo+ICsJaWYgKGlkeGQtPnR5 cGUgPT0gSURYRF9UWVBFX0RTQSkNCj4gKwkJYWxpZ24gPSAzMjsNCj4gKwllbHNlIGlmIChpZHhk LT50eXBlID09IElEWERfVFlQRV9JQVgpDQo+ICsJCWFsaWduID0gNjQ7DQo+ICsJZWxzZQ0KPiAr CQlyZXR1cm4gLUVOT0RFVjsNCj4gKw0KPiArCXdxLT5jb21wbHNfc2l6ZSA9IG51bV9kZXNjcyAq IGlkeGQtPmNvbXBsX3NpemUgKyBhbGlnbjsNCj4gKwl3cS0+Y29tcGxzX3JhdyA9IGRtYV9hbGxv Y19jb2hlcmVudChkZXYsIHdxLT5jb21wbHNfc2l6ZSwNCj4gKwkJCQkJICAgICZ3cS0+Y29tcGxz X2FkZHJfcmF3LA0KPiBHRlBfS0VSTkVMKTsNCj4gKwlpZiAoIXdxLT5jb21wbHNfcmF3KSB7DQo+ ICAJCXJjID0gLUVOT01FTTsNCj4gIAkJZ290byBmYWlsX2FsbG9jX2NvbXBsczsNCj4gIAl9DQo+ IA0KPiArCS8qIEFkanVzdCBhbGlnbm1lbnQgKi8NCj4gKwl3cS0+Y29tcGxzX2FkZHIgPSAod3Et PmNvbXBsc19hZGRyX3JhdyArIChhbGlnbiAtIDEpKSAmIH4oYWxpZ24gLQ0KPiAxKTsNCj4gKwl0 bXAgPSAodTY0KXdxLT5jb21wbHNfcmF3Ow0KPiArCXRtcCA9ICh0bXAgKyAoYWxpZ24gLSAxKSkg JiB+KGFsaWduIC0gMSk7DQo+ICsJd3EtPmNvbXBscyA9IChzdHJ1Y3QgZHNhX2NvbXBsZXRpb25f cmVjb3JkICopdG1wOw0KPiArDQo+ICAJcmMgPSBhbGxvY19kZXNjcyh3cSwgbnVtX2Rlc2NzKTsN Cj4gIAlpZiAocmMgPCAwKQ0KPiAgCQlnb3RvIGZhaWxfYWxsb2NfZGVzY3M7DQo+IEBAIC0xNjMs OSArMTc4LDExIEBAIGludCBpZHhkX3dxX2FsbG9jX3Jlc291cmNlcyhzdHJ1Y3QgaWR4ZF93cSAq d3EpDQo+ICAJCXN0cnVjdCBpZHhkX2Rlc2MgKmRlc2MgPSB3cS0+ZGVzY3NbaV07DQo+IA0KPiAg CQlkZXNjLT5odyA9IHdxLT5od19kZXNjc1tpXTsNCj4gLQkJZGVzYy0+Y29tcGxldGlvbiA9ICZ3 cS0+Y29tcGxzW2ldOw0KPiAtCQlkZXNjLT5jb21wbF9kbWEgID0gd3EtPmNvbXBsc19hZGRyICsN Cj4gLQkJCXNpemVvZihzdHJ1Y3QgZHNhX2NvbXBsZXRpb25fcmVjb3JkKSAqIGk7DQo+ICsJCWlm IChpZHhkLT50eXBlID09IElEWERfVFlQRV9EU0EpDQo+ICsJCQlkZXNjLT5jb21wbGV0aW9uID0g JndxLT5jb21wbHNbaV07DQo+ICsJCWVsc2UgaWYgKGlkeGQtPnR5cGUgPT0gSURYRF9UWVBFX0lB WCkNCj4gKwkJCWRlc2MtPmlheF9jb21wbGV0aW9uID0gJndxLT5pYXhfY29tcGxzW2ldOw0KPiAr CQlkZXNjLT5jb21wbF9kbWEgPSB3cS0+Y29tcGxzX2FkZHIgKyBpZHhkLT5jb21wbF9zaXplICoN Cj4gaTsNCj4gIAkJZGVzYy0+aWQgPSBpOw0KPiAgCQlkZXNjLT53cSA9IHdxOw0KPiAgCQlkZXNj LT5jcHUgPSAtMTsNCj4gQEAgLTE3OCw3ICsxOTUsOCBAQCBpbnQgaWR4ZF93cV9hbGxvY19yZXNv dXJjZXMoc3RydWN0IGlkeGRfd3EgKndxKQ0KPiAgIGZhaWxfc2JpdG1hcF9pbml0Og0KPiAgCWZy ZWVfZGVzY3Mod3EpOw0KPiAgIGZhaWxfYWxsb2NfZGVzY3M6DQo+IC0JZG1hX2ZyZWVfY29oZXJl bnQoZGV2LCB3cS0+Y29tcGxzX3NpemUsIHdxLT5jb21wbHMsIHdxLQ0KPiA+Y29tcGxzX2FkZHIp Ow0KPiArCWRtYV9mcmVlX2NvaGVyZW50KGRldiwgd3EtPmNvbXBsc19zaXplLCB3cS0+Y29tcGxz X3JhdywNCj4gKwkJCSAgd3EtPmNvbXBsc19hZGRyX3Jhdyk7DQo+ICAgZmFpbF9hbGxvY19jb21w bHM6DQo+ICAJZnJlZV9od19kZXNjcyh3cSk7DQo+ICAJcmV0dXJuIHJjOw0KPiBAQCAtMTkzLDcg KzIxMSw4IEBAIHZvaWQgaWR4ZF93cV9mcmVlX3Jlc291cmNlcyhzdHJ1Y3QgaWR4ZF93cSAqd3Ep DQo+IA0KPiAgCWZyZWVfaHdfZGVzY3Mod3EpOw0KPiAgCWZyZWVfZGVzY3Mod3EpOw0KPiAtCWRt YV9mcmVlX2NvaGVyZW50KGRldiwgd3EtPmNvbXBsc19zaXplLCB3cS0+Y29tcGxzLCB3cS0NCj4g PmNvbXBsc19hZGRyKTsNCj4gKwlkbWFfZnJlZV9jb2hlcmVudChkZXYsIHdxLT5jb21wbHNfc2l6 ZSwgd3EtPmNvbXBsc19yYXcsDQo+ICsJCQkgIHdxLT5jb21wbHNfYWRkcl9yYXcpOw0KPiAgCXNi aXRtYXBfcXVldWVfZnJlZSgmd3EtPnNicSk7DQo+ICB9DQo+IA0KPiBkaWZmIC0tZ2l0IGEvZHJp dmVycy9kbWEvaWR4ZC9pZHhkLmggYi9kcml2ZXJzL2RtYS9pZHhkL2lkeGQuaA0KPiBpbmRleCAx NDk5MzRmOGQwOTcuLjVhNTBlOTFjNzFiZiAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9kbWEvaWR4 ZC9pZHhkLmgNCj4gKysrIGIvZHJpdmVycy9kbWEvaWR4ZC9pZHhkLmgNCj4gQEAgLTIwLDcgKzIw LDggQEAgZXh0ZXJuIHN0cnVjdCBrbWVtX2NhY2hlICppZHhkX2Rlc2NfcG9vbDsNCj4gIGVudW0g aWR4ZF90eXBlIHsNCj4gIAlJRFhEX1RZUEVfVU5LTk9XTiA9IC0xLA0KPiAgCUlEWERfVFlQRV9E U0EgPSAwLA0KPiAtCUlEWERfVFlQRV9NQVgNCj4gKwlJRFhEX1RZUEVfSUFYLA0KPiArCUlEWERf VFlQRV9NQVgsDQo+ICB9Ow0KPiANCj4gICNkZWZpbmUgSURYRF9OQU1FX1NJWkUJCTEyOA0KPiBA QCAtMTE0LDggKzExNSwxMyBAQCBzdHJ1Y3QgaWR4ZF93cSB7DQo+ICAJdTMyIHZlY19wdHI7CQkv KiBpbnRlcnJ1cHQgc3RlZXJpbmcgKi8NCj4gIAlzdHJ1Y3QgZHNhX2h3X2Rlc2MgKipod19kZXNj czsNCj4gIAlpbnQgbnVtX2Rlc2NzOw0KPiAtCXN0cnVjdCBkc2FfY29tcGxldGlvbl9yZWNvcmQg KmNvbXBsczsNCj4gKwl1bmlvbiB7DQo+ICsJCXN0cnVjdCBkc2FfY29tcGxldGlvbl9yZWNvcmQg KmNvbXBsczsNCj4gKwkJc3RydWN0IGlheF9jb21wbGV0aW9uX3JlY29yZCAqaWF4X2NvbXBsczsN Cj4gKwl9Ow0KPiArCXZvaWQgKmNvbXBsc19yYXc7DQo+ICAJZG1hX2FkZHJfdCBjb21wbHNfYWRk cjsNCj4gKwlkbWFfYWRkcl90IGNvbXBsc19hZGRyX3JhdzsNCj4gIAlpbnQgY29tcGxzX3NpemU7 DQo+ICAJc3RydWN0IGlkeGRfZGVzYyAqKmRlc2NzOw0KPiAgCXN0cnVjdCBzYml0bWFwX3F1ZXVl IHNicTsNCj4gQEAgLTE5Niw2ICsyMDIsNyBAQCBzdHJ1Y3QgaWR4ZF9kZXZpY2Ugew0KPiAgCWlu dCB0b2tlbl9saW1pdDsNCj4gIAlpbnQgbnJfdG9rZW5zOwkJLyogbm9uLXJlc2VydmVkIHRva2Vu cyAqLw0KPiAgCXVuc2lnbmVkIGludCB3cWNmZ19zaXplOw0KPiArCWludCBjb21wbF9zaXplOw0K PiANCj4gIAl1bmlvbiBzd19lcnJfcmVnIHN3X2VycjsNCj4gIAl3YWl0X3F1ZXVlX2hlYWRfdCBj bWRfd2FpdHE7DQo+IEBAIC0yMTAsOSArMjE3LDE1IEBAIHN0cnVjdCBpZHhkX2RldmljZSB7DQo+ IA0KPiAgLyogSURYRCBzb2Z0d2FyZSBkZXNjcmlwdG9yICovDQo+ICBzdHJ1Y3QgaWR4ZF9kZXNj IHsNCj4gLQlzdHJ1Y3QgZHNhX2h3X2Rlc2MgKmh3Ow0KPiArCXVuaW9uIHsNCj4gKwkJc3RydWN0 IGRzYV9od19kZXNjICpodzsNCj4gKwkJc3RydWN0IGlheF9od19kZXNjICppYXhfaHc7DQo+ICsJ fTsNCj4gIAlkbWFfYWRkcl90IGRlc2NfZG1hOw0KPiAtCXN0cnVjdCBkc2FfY29tcGxldGlvbl9y ZWNvcmQgKmNvbXBsZXRpb247DQo+ICsJdW5pb24gew0KPiArCQlzdHJ1Y3QgZHNhX2NvbXBsZXRp b25fcmVjb3JkICpjb21wbGV0aW9uOw0KPiArCQlzdHJ1Y3QgaWF4X2NvbXBsZXRpb25fcmVjb3Jk ICppYXhfY29tcGxldGlvbjsNCj4gKwl9Ow0KPiAgCWRtYV9hZGRyX3QgY29tcGxfZG1hOw0KPiAg CXN0cnVjdCBkbWFfYXN5bmNfdHhfZGVzY3JpcHRvciB0eGQ7DQo+ICAJc3RydWN0IGxsaXN0X25v ZGUgbGxub2RlOw0KPiBAQCAtMjI2LDYgKzIzOSw3IEBAIHN0cnVjdCBpZHhkX2Rlc2Mgew0KPiAg I2RlZmluZSBjb25mZGV2X3RvX3dxKGRldikgY29udGFpbmVyX29mKGRldiwgc3RydWN0IGlkeGRf d3EsIGNvbmZfZGV2KQ0KPiANCj4gIGV4dGVybiBzdHJ1Y3QgYnVzX3R5cGUgZHNhX2J1c190eXBl Ow0KPiArZXh0ZXJuIHN0cnVjdCBidXNfdHlwZSBpYXhfYnVzX3R5cGU7DQo+IA0KPiAgZXh0ZXJu IGJvb2wgc3VwcG9ydF9lbnFjbWQ7DQo+IA0KPiBAQCAtMjcxLDYgKzI4NSw4IEBAIHN0YXRpYyBp bmxpbmUgdm9pZCBpZHhkX3NldF90eXBlKHN0cnVjdCBpZHhkX2RldmljZQ0KPiAqaWR4ZCkNCj4g DQo+ICAJaWYgKHBkZXYtPmRldmljZSA9PSBQQ0lfREVWSUNFX0lEX0lOVEVMX0RTQV9TUFIwKQ0K PiAgCQlpZHhkLT50eXBlID0gSURYRF9UWVBFX0RTQTsNCj4gKwllbHNlIGlmIChwZGV2LT5kZXZp Y2UgPT0gUENJX0RFVklDRV9JRF9JTlRFTF9JQVhfU1BSMCkNCj4gKwkJaWR4ZC0+dHlwZSA9IElE WERfVFlQRV9JQVg7DQo+ICAJZWxzZQ0KPiAgCQlpZHhkLT50eXBlID0gSURYRF9UWVBFX1VOS05P V047DQo+ICB9DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2RtYS9pZHhkL2luaXQuYyBiL2RyaXZl cnMvZG1hL2lkeGQvaW5pdC5jDQo+IGluZGV4IDQ1YjBlYWM2NDBjMy4uMmMwNTFlMDdjMzRjIDEw MDY0NA0KPiAtLS0gYS9kcml2ZXJzL2RtYS9pZHhkL2luaXQuYw0KPiArKysgYi9kcml2ZXJzL2Rt YS9pZHhkL2luaXQuYw0KPiBAQCAtMzYsMTIgKzM2LDE2IEBAIHN0YXRpYyBzdHJ1Y3QgbXV0ZXgg aWR4ZF9pZHJfbG9jazsNCj4gIHN0YXRpYyBzdHJ1Y3QgcGNpX2RldmljZV9pZCBpZHhkX3BjaV90 YmxbXSA9IHsNCj4gIAkvKiBEU0EgdmVyIDEuMCBwbGF0Zm9ybXMgKi8NCj4gIAl7IFBDSV9WREVW SUNFKElOVEVMLCBQQ0lfREVWSUNFX0lEX0lOVEVMX0RTQV9TUFIwKSB9LA0KPiArDQo+ICsJLyog SUFYIHZlciAxLjAgcGxhdGZvcm1zICovDQo+ICsJeyBQQ0lfVkRFVklDRShJTlRFTCwgUENJX0RF VklDRV9JRF9JTlRFTF9JQVhfU1BSMCkgfSwNCj4gIAl7IDAsIH0NCj4gIH07DQo+ICBNT0RVTEVf REVWSUNFX1RBQkxFKHBjaSwgaWR4ZF9wY2lfdGJsKTsNCj4gDQo+ICBzdGF0aWMgY2hhciAqaWR4 ZF9uYW1lW10gPSB7DQo+ICAJImRzYSIsDQo+ICsJImlheCINCj4gIH07DQo+IA0KPiAgY29uc3Qg Y2hhciAqaWR4ZF9nZXRfZGV2X25hbWUoc3RydWN0IGlkeGRfZGV2aWNlICppZHhkKQ0KPiBAQCAt Mzc3LDYgKzM4MSwxNCBAQCBzdGF0aWMgaW50IGlkeGRfcHJvYmUoc3RydWN0IGlkeGRfZGV2aWNl ICppZHhkKQ0KPiAgCXJldHVybiByYzsNCj4gIH0NCj4gDQo+ICtzdGF0aWMgdm9pZCBpZHhkX3R5 cGVfaW5pdChzdHJ1Y3QgaWR4ZF9kZXZpY2UgKmlkeGQpDQo+ICt7DQo+ICsJaWYgKGlkeGQtPnR5 cGUgPT0gSURYRF9UWVBFX0RTQSkNCj4gKwkJaWR4ZC0+Y29tcGxfc2l6ZSA9IHNpemVvZihzdHJ1 Y3QgZHNhX2NvbXBsZXRpb25fcmVjb3JkKTsNCj4gKwllbHNlIGlmIChpZHhkLT50eXBlID09IElE WERfVFlQRV9JQVgpDQo+ICsJCWlkeGQtPmNvbXBsX3NpemUgPSBzaXplb2Yoc3RydWN0IGlheF9j b21wbGV0aW9uX3JlY29yZCk7DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyBpbnQgaWR4ZF9wY2lfcHJv YmUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IHN0cnVjdCBwY2lfZGV2aWNlX2lkDQo+ICpp ZCkNCj4gIHsNCj4gIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ZGV2Ow0KPiBAQCAtNDEy LDYgKzQyNCw4IEBAIHN0YXRpYyBpbnQgaWR4ZF9wY2lfcHJvYmUoc3RydWN0IHBjaV9kZXYgKnBk ZXYsIGNvbnN0DQo+IHN0cnVjdCBwY2lfZGV2aWNlX2lkICppZCkNCj4gDQo+ICAJaWR4ZF9zZXRf dHlwZShpZHhkKTsNCj4gDQo+ICsJaWR4ZF90eXBlX2luaXQoaWR4ZCk7DQo+ICsNCj4gIAlkZXZf ZGJnKGRldiwgIlNldCBQQ0kgbWFzdGVyXG4iKTsNCj4gIAlwY2lfc2V0X21hc3RlcihwZGV2KTsN Cj4gIAlwY2lfc2V0X2RydmRhdGEocGRldiwgaWR4ZCk7DQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2RtYS9pZHhkL3JlZ2lzdGVycy5oIGIvZHJpdmVycy9kbWEvaWR4ZC9yZWdpc3RlcnMuaA0KPiBp bmRleCAwY2RjNTQwNWJjNTMuLjIzYzQxZmU1MjIxNSAxMDA2NDQNCj4gLS0tIGEvZHJpdmVycy9k bWEvaWR4ZC9yZWdpc3RlcnMuaA0KPiArKysgYi9kcml2ZXJzL2RtYS9pZHhkL3JlZ2lzdGVycy5o DQo+IEBAIC01LDYgKzUsNyBAQA0KPiANCj4gIC8qIFBDSSBDb25maWcgKi8NCj4gICNkZWZpbmUg UENJX0RFVklDRV9JRF9JTlRFTF9EU0FfU1BSMAkweDBiMjUNCj4gKyNkZWZpbmUgUENJX0RFVklD RV9JRF9JTlRFTF9JQVhfU1BSMAkweDBjZmUNCj4gDQo+ICAjZGVmaW5lIElEWERfTU1JT19CQVIJ CTANCj4gICNkZWZpbmUgSURYRF9XUV9CQVIJCTINCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZG1h L2lkeGQvc3VibWl0LmMgYi9kcml2ZXJzL2RtYS9pZHhkL3N1Ym1pdC5jDQo+IGluZGV4IGVmY2E1 ZDg0NjhhNi4uMGZmNjRlZWI4NGJlIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2RtYS9pZHhkL3N1 Ym1pdC5jDQo+ICsrKyBiL2RyaXZlcnMvZG1hL2lkeGQvc3VibWl0LmMNCj4gQEAgLTE1LDcgKzE1 LDcgQEAgc3RhdGljIHN0cnVjdCBpZHhkX2Rlc2MgKl9fZ2V0X2Rlc2Moc3RydWN0IGlkeGRfd3EN Cj4gKndxLCBpbnQgaWR4LCBpbnQgY3B1KQ0KPiANCj4gIAlkZXNjID0gd3EtPmRlc2NzW2lkeF07 DQo+ICAJbWVtc2V0KGRlc2MtPmh3LCAwLCBzaXplb2Yoc3RydWN0IGRzYV9od19kZXNjKSk7DQo+ IC0JbWVtc2V0KGRlc2MtPmNvbXBsZXRpb24sIDAsIHNpemVvZihzdHJ1Y3QNCj4gZHNhX2NvbXBs ZXRpb25fcmVjb3JkKSk7DQo+ICsJbWVtc2V0KGRlc2MtPmNvbXBsZXRpb24sIDAsIGlkeGQtPmNv bXBsX3NpemUpOw0KPiAgCWRlc2MtPmNwdSA9IGNwdTsNCj4gDQo+ICAJaWYgKGRldmljZV9wYXNp ZF9lbmFibGVkKGlkeGQpKQ0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9kbWEvaWR4ZC9zeXNmcy5j IGIvZHJpdmVycy9kbWEvaWR4ZC9zeXNmcy5jDQo+IGluZGV4IDNhZjgzZjFmZDM2ZS4uMjY2NDIz YTJjYWJjIDEwMDY0NA0KPiAtLS0gYS9kcml2ZXJzL2RtYS9pZHhkL3N5c2ZzLmMNCj4gKysrIGIv ZHJpdmVycy9kbWEvaWR4ZC9zeXNmcy5jDQo+IEBAIC00MSwxNCArNDEsMjQgQEAgc3RhdGljIHN0 cnVjdCBkZXZpY2VfdHlwZSBkc2FfZGV2aWNlX3R5cGUgPSB7DQo+ICAJLnJlbGVhc2UgPSBpZHhk X2NvbmZfZGV2aWNlX3JlbGVhc2UsDQo+ICB9Ow0KPiANCj4gK3N0YXRpYyBzdHJ1Y3QgZGV2aWNl X3R5cGUgaWF4X2RldmljZV90eXBlID0gew0KPiArCS5uYW1lID0gImlheCIsDQo+ICsJLnJlbGVh c2UgPSBpZHhkX2NvbmZfZGV2aWNlX3JlbGVhc2UsDQo+ICt9Ow0KPiArDQo+ICBzdGF0aWMgaW5s aW5lIGJvb2wgaXNfZHNhX2RldihzdHJ1Y3QgZGV2aWNlICpkZXYpDQo+ICB7DQo+ICAJcmV0dXJu IGRldiA/IGRldi0+dHlwZSA9PSAmZHNhX2RldmljZV90eXBlIDogZmFsc2U7DQo+ICB9DQo+IA0K PiArc3RhdGljIGlubGluZSBib29sIGlzX2lheF9kZXYoc3RydWN0IGRldmljZSAqZGV2KQ0KPiAr ew0KPiArCXJldHVybiBkZXYgPyBkZXYtPnR5cGUgPT0gJmlheF9kZXZpY2VfdHlwZSA6IGZhbHNl Ow0KPiArfQ0KPiArDQo+ICBzdGF0aWMgaW5saW5lIGJvb2wgaXNfaWR4ZF9kZXYoc3RydWN0IGRl dmljZSAqZGV2KQ0KPiAgew0KPiAtCXJldHVybiBpc19kc2FfZGV2KGRldik7DQo+ICsJcmV0dXJu IGlzX2RzYV9kZXYoZGV2KSB8fCBpc19pYXhfZGV2KGRldik7DQo+ICB9DQo+IA0KPiAgc3RhdGlj IGlubGluZSBib29sIGlzX2lkeGRfd3FfZGV2KHN0cnVjdCBkZXZpY2UgKmRldikNCj4gQEAgLTM1 OSw4ICszNjksMTcgQEAgc3RydWN0IGJ1c190eXBlIGRzYV9idXNfdHlwZSA9IHsNCj4gIAkuc2h1 dGRvd24gPSBpZHhkX2NvbmZpZ19idXNfc2h1dGRvd24sDQo+ICB9Ow0KPiANCj4gK3N0cnVjdCBi dXNfdHlwZSBpYXhfYnVzX3R5cGUgPSB7DQo+ICsJLm5hbWUgPSAiaWF4IiwNCj4gKwkubWF0Y2gg PSBpZHhkX2NvbmZpZ19idXNfbWF0Y2gsDQo+ICsJLnByb2JlID0gaWR4ZF9jb25maWdfYnVzX3By b2JlLA0KPiArCS5yZW1vdmUgPSBpZHhkX2NvbmZpZ19idXNfcmVtb3ZlLA0KPiArCS5zaHV0ZG93 biA9IGlkeGRfY29uZmlnX2J1c19zaHV0ZG93biwNCj4gK307DQo+ICsNCj4gIHN0YXRpYyBzdHJ1 Y3QgYnVzX3R5cGUgKmlkeGRfYnVzX3R5cGVzW10gPSB7DQo+IC0JJmRzYV9idXNfdHlwZQ0KPiAr CSZkc2FfYnVzX3R5cGUsDQo+ICsJJmlheF9idXNfdHlwZQ0KPiAgfTsNCj4gDQo+ICBzdGF0aWMg c3RydWN0IGlkeGRfZGV2aWNlX2RyaXZlciBkc2FfZHJ2ID0gew0KPiBAQCAtMzcyLDggKzM5MSwx OCBAQCBzdGF0aWMgc3RydWN0IGlkeGRfZGV2aWNlX2RyaXZlciBkc2FfZHJ2ID0gew0KPiAgCX0s DQo+ICB9Ow0KPiANCj4gK3N0YXRpYyBzdHJ1Y3QgaWR4ZF9kZXZpY2VfZHJpdmVyIGlheF9kcnYg PSB7DQo+ICsJLmRydiA9IHsNCj4gKwkJLm5hbWUgPSAiaWF4IiwNCj4gKwkJLmJ1cyA9ICZpYXhf YnVzX3R5cGUsDQo+ICsJCS5vd25lciA9IFRISVNfTU9EVUxFLA0KPiArCQkubW9kX25hbWUgPSBL QlVJTERfTU9ETkFNRSwNCj4gKwl9LA0KPiArfTsNCj4gKw0KPiAgc3RhdGljIHN0cnVjdCBpZHhk X2RldmljZV9kcml2ZXIgKmlkeGRfZHJ2c1tdID0gew0KPiAtCSZkc2FfZHJ2DQo+ICsJJmRzYV9k cnYsDQo+ICsJJmlheF9kcnYNCj4gIH07DQo+IA0KPiAgc3RydWN0IGJ1c190eXBlICppZHhkX2dl dF9idXNfdHlwZShzdHJ1Y3QgaWR4ZF9kZXZpY2UgKmlkeGQpDQo+IEBAIC0zODUsNiArNDE0LDgg QEAgc3RhdGljIHN0cnVjdCBkZXZpY2VfdHlwZQ0KPiAqaWR4ZF9nZXRfZGV2aWNlX3R5cGUoc3Ry dWN0IGlkeGRfZGV2aWNlICppZHhkKQ0KPiAgew0KPiAgCWlmIChpZHhkLT50eXBlID09IElEWERf VFlQRV9EU0EpDQo+ICAJCXJldHVybiAmZHNhX2RldmljZV90eXBlOw0KPiArCWVsc2UgaWYgKGlk eGQtPnR5cGUgPT0gSURYRF9UWVBFX0lBWCkNCj4gKwkJcmV0dXJuICZpYXhfZGV2aWNlX3R5cGU7 DQo+ICAJZWxzZQ0KPiAgCQlyZXR1cm4gTlVMTDsNCj4gIH0NCj4gQEAgLTUyNSw2ICs1NTYsOSBA QCBzdGF0aWMgc3NpemVfdCBncm91cF90b2tlbnNfcmVzZXJ2ZWRfc3RvcmUoc3RydWN0DQo+IGRl dmljZSAqZGV2LA0KPiAgCWlmIChyYyA8IDApDQo+ICAJCXJldHVybiAtRUlOVkFMOw0KPiANCj4g KwlpZiAoaWR4ZC0+dHlwZSA9PSBJRFhEX1RZUEVfSUFYKQ0KPiArCQlyZXR1cm4gLUVPUE5PVFNV UFA7DQo+ICsNCj4gIAlpZiAoIXRlc3RfYml0KElEWERfRkxBR19DT05GSUdVUkFCTEUsICZpZHhk LT5mbGFncykpDQo+ICAJCXJldHVybiAtRVBFUk07DQo+IA0KPiBAQCAtNTcwLDYgKzYwNCw5IEBA IHN0YXRpYyBzc2l6ZV90IGdyb3VwX3Rva2Vuc19hbGxvd2VkX3N0b3JlKHN0cnVjdA0KPiBkZXZp Y2UgKmRldiwNCj4gIAlpZiAocmMgPCAwKQ0KPiAgCQlyZXR1cm4gLUVJTlZBTDsNCj4gDQo+ICsJ aWYgKGlkeGQtPnR5cGUgPT0gSURYRF9UWVBFX0lBWCkNCj4gKwkJcmV0dXJuIC1FT1BOT1RTVVBQ Ow0KPiArDQo+ICAJaWYgKCF0ZXN0X2JpdChJRFhEX0ZMQUdfQ09ORklHVVJBQkxFLCAmaWR4ZC0+ ZmxhZ3MpKQ0KPiAgCQlyZXR1cm4gLUVQRVJNOw0KPiANCj4gQEAgLTYxMiw2ICs2NDksOSBAQCBz dGF0aWMgc3NpemVfdCBncm91cF91c2VfdG9rZW5fbGltaXRfc3RvcmUoc3RydWN0DQo+IGRldmlj ZSAqZGV2LA0KPiAgCWlmIChyYyA8IDApDQo+ICAJCXJldHVybiAtRUlOVkFMOw0KPiANCj4gKwlp ZiAoaWR4ZC0+dHlwZSA9PSBJRFhEX1RZUEVfSUFYKQ0KPiArCQlyZXR1cm4gLUVPUE5PVFNVUFA7 DQo+ICsNCj4gIAlpZiAoIXRlc3RfYml0KElEWERfRkxBR19DT05GSUdVUkFCTEUsICZpZHhkLT5m bGFncykpDQo+ICAJCXJldHVybiAtRVBFUk07DQo+IA0KPiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS91 YXBpL2xpbnV4L2lkeGQuaCBiL2luY2x1ZGUvdWFwaS9saW51eC9pZHhkLmgNCj4gaW5kZXggZmRj ZGZlNDE0MjIzLi4yMzZkNDM3OTQ3YmMgMTAwNjQ0DQo+IC0tLSBhL2luY2x1ZGUvdWFwaS9saW51 eC9pZHhkLmgNCj4gKysrIGIvaW5jbHVkZS91YXBpL2xpbnV4L2lkeGQuaA0KPiBAQCAtMjYsNiAr MjYsOSBAQA0KPiAgI2RlZmluZSBJRFhEX09QX0ZMQUdfRFJEQksJMHg0MDAwDQo+ICAjZGVmaW5l IElEWERfT1BfRkxBR19EU1RTCTB4ODAwMA0KPiANCj4gKy8qIElBWCAqLw0KPiArI2RlZmluZSBJ RFhEX09QX0ZMQUdfUkRfU1JDMl9BRUNTCTB4MDEwMDAwDQo+ICsNCj4gIC8qIE9wY29kZSAqLw0K PiAgZW51bSBkc2Ffb3Bjb2RlIHsNCj4gIAlEU0FfT1BDT0RFX05PT1AgPSAwLA0KPiBAQCAtNDcs NiArNTAsMTQgQEAgZW51bSBkc2Ffb3Bjb2RlIHsNCj4gIAlEU0FfT1BDT0RFX0NGTFVTSCA9IDB4 MjAsDQo+ICB9Ow0KPiANCj4gK2VudW0gaWF4X29wY29kZSB7DQo+ICsJSUFYX09QQ09ERV9OT09Q ID0gMCwNCj4gKwlJQVhfT1BDT0RFX0RSQUlOID0gMiwNCj4gKwlJQVhfT1BDT0RFX01FTU1PVkUs DQo+ICsJSUFYX09QQ09ERV9ERUNPTVBSRVNTID0gMHg0MiwNCj4gKwlJQVhfT1BDT0RFX0NPTVBS RVNTLA0KPiArfTsNCj4gKw0KPiAgLyogQ29tcGxldGlvbiByZWNvcmQgc3RhdHVzICovDQo+ICBl bnVtIGRzYV9jb21wbGV0aW9uX3N0YXR1cyB7DQo+ICAJRFNBX0NPTVBfTk9ORSA9IDAsDQo+IEBA IC04MCw2ICs5MSwzMyBAQCBlbnVtIGRzYV9jb21wbGV0aW9uX3N0YXR1cyB7DQo+ICAJRFNBX0NP TVBfVFJBTlNMQVRJT05fRkFJTCwNCj4gIH07DQo+IA0KPiArZW51bSBpYXhfY29tcGxldGlvbl9z dGF0dXMgew0KPiArCUlBWF9DT01QX05PTkUgPSAwLA0KPiArCUlBWF9DT01QX1NVQ0NFU1MsDQo+ ICsJSUFYX0NPTVBfUEFHRV9GQVVMVF9JUiA9IDB4MDQsDQo+ICsJSUFYX0NPTVBfT1VUQlVGX09W RVJGTE9XLA0KPiArCUlBWF9DT01QX0JBRF9PUENPREUgPSAweDEwLA0KPiArCUlBWF9DT01QX0lO VkFMSURfRkxBR1MsDQo+ICsJSUFYX0NPTVBfTk9aRVJPX1JFU0VSVkUsDQo+ICsJSUFYX0NPTVBf SU5WQUxJRF9TSVpFLA0KPiArCUlBWF9DT01QX09WRVJMQVBfQlVGRkVSUyA9IDB4MTYsDQo+ICsJ SUFYX0NPTVBfSU5UX0hBTkRMRV9JTlZBTCA9IDB4MTksDQo+ICsJSUFYX0NPTVBfQ1JBX1hMQVQs DQo+ICsJSUFYX0NPTVBfQ1JBX0FMSUdOLA0KPiArCUlBWF9DT01QX0FERFJfQUxJR04sDQo+ICsJ SUFYX0NPTVBfUFJJVl9CQUQsDQo+ICsJSUFYX0NPTVBfVFJBRkZJQ19DTEFTU19DT05GLA0KPiAr CUlBWF9DT01QX1BGQVVMVF9SREJBLA0KPiArCUlBWF9DT01QX0hXX0VSUjEsDQo+ICsJSUFYX0NP TVBfSFdfRVJSX0RSQiwNCj4gKwlJQVhfQ09NUF9UUkFOU0xBVElPTl9GQUlMLA0KPiArCUlBWF9D T01QX1BSU19USU1FT1VULA0KPiArCUlBWF9DT01QX1dBVENIRE9HLA0KPiArCUlBWF9DT01QX0lO VkFMSURfQ09NUF9GTEFHID0gMHgzMCwNCj4gKwlJQVhfQ09NUF9JTlZBTElEX0ZJTFRFUl9GTEFH LA0KPiArCUlBWF9DT01QX0lOVkFMSURfTlVNX0VMRU1TID0gMHgzMywNCj4gK307DQo+ICsNCj4g ICNkZWZpbmUgRFNBX0NPTVBfU1RBVFVTX01BU0sJCTB4N2YNCj4gICNkZWZpbmUgRFNBX0NPTVBf U1RBVFVTX1dSSVRFCQkweDgwDQo+IA0KPiBAQCAtMTYzLDYgKzIwMSwyOCBAQCBzdHJ1Y3QgZHNh X2h3X2Rlc2Mgew0KPiAgCX07DQo+ICB9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOw0KPiANCj4g K3N0cnVjdCBpYXhfaHdfZGVzYyB7DQo+ICsJdWludDMyX3QgICAgICAgIHBhc2lkOjIwOw0KPiAr CXVpbnQzMl90ICAgICAgICByc3ZkOjExOw0KPiArCXVpbnQzMl90ICAgICAgICBwcml2OjE7DQo+ ICsJdWludDMyX3QgICAgICAgIGZsYWdzOjI0Ow0KPiArCXVpbnQzMl90ICAgICAgICBvcGNvZGU6 ODsNCj4gKwl1aW50NjRfdCAgICAgICAgY29tcGxldGlvbl9hZGRyOw0KPiArCXVpbnQ2NF90ICAg ICAgICBzcmMxX2FkZHI7DQo+ICsJdWludDY0X3QgICAgICAgIGRzdF9hZGRyOw0KPiArCXVpbnQz Ml90ICAgICAgICBzcmMxX3NpemU7DQo+ICsJdWludDE2X3QgICAgICAgIGludF9oYW5kbGU7DQo+ ICsJdW5pb24gew0KPiArCQl1aW50MTZfdCAgICAgICAgY29tcHJfZmxhZ3M7DQo+ICsJCXVpbnQx Nl90ICAgICAgICBkZWNvbXByX2ZsYWdzOw0KPiArCX07DQo+ICsJdWludDY0X3QgICAgICAgIHNy YzJfYWRkcjsNCj4gKwl1aW50MzJfdCAgICAgICAgbWF4X2RzdF9zaXplOw0KPiArCXVpbnQzMl90 ICAgICAgICBzcmMyX3NpemU7DQo+ICsJdWludDMyX3QJZmlsdGVyX2ZsYWdzOw0KPiArCXVpbnQz Ml90CW51bV9pbnB1dHM7DQo+ICt9IF9fYXR0cmlidXRlX18oKHBhY2tlZCkpOw0KPiArDQo+ICBz dHJ1Y3QgZHNhX3Jhd19kZXNjIHsNCj4gIAl1aW50NjRfdAlmaWVsZFs4XTsNCj4gIH0gX19hdHRy aWJ1dGVfXygocGFja2VkKSk7DQo+IEBAIC0yMjMsNCArMjgzLDIzIEBAIHN0cnVjdCBkc2FfcmF3 X2NvbXBsZXRpb25fcmVjb3JkIHsNCj4gIAl1aW50NjRfdAlmaWVsZFs0XTsNCj4gIH0gX19hdHRy aWJ1dGVfXygocGFja2VkKSk7DQo+IA0KPiArc3RydWN0IGlheF9jb21wbGV0aW9uX3JlY29yZCB7 DQo+ICsJdm9sYXRpbGUgdWludDhfdCAgICAgICAgc3RhdHVzOw0KPiArCXVpbnQ4X3QgICAgICAg ICAgICAgICAgIGVycm9yX2NvZGU7DQo+ICsJdWludDE2X3QgICAgICAgICAgICAgICAgcnN2ZDsN Cj4gKwl1aW50MzJfdCAgICAgICAgICAgICAgICBieXRlc19jb21wbGV0ZWQ7DQo+ICsJdWludDY0 X3QgICAgICAgICAgICAgICAgZmF1bHRfYWRkcjsNCj4gKwl1aW50MzJfdCAgICAgICAgICAgICAg ICBpbnZhbGlkX2ZsYWdzOw0KPiArCXVpbnQzMl90ICAgICAgICAgICAgICAgIHJzdmQyOw0KPiAr CXVpbnQzMl90ICAgICAgICAgICAgICAgIG91dHB1dF9zaXplOw0KPiArCXVpbnQ4X3QgICAgICAg ICAgICAgICAgIG91dHB1dF9iaXRzOw0KPiArCXVpbnQ4X3QgICAgICAgICAgICAgICAgIHJzdmQz Ow0KPiArCXVpbnQxNl90ICAgICAgICAgICAgICAgIHJzdmQ0Ow0KPiArCXVpbnQ2NF90ICAgICAg ICAgICAgICAgIHJzdmQ1WzRdOw0KPiArfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsNCj4gKw0K PiArc3RydWN0IGlheF9yYXdfY29tcGxldGlvbl9yZWNvcmQgew0KPiArCXVpbnQ2NF90CWZpZWxk WzhdOw0KPiArfSBfX2F0dHJpYnV0ZV9fKChwYWNrZWQpKTsNCj4gKw0KPiAgI2VuZGlmDQo+IA0K DQo=