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=-16.7 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=unavailable 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 CFE3FC4338F for ; Fri, 23 Jul 2021 02:43:41 +0000 (UTC) Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 96BCE60EBF for ; Fri, 23 Jul 2021 02:43:41 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org 96BCE60EBF Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=mediatek.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Date:CC:To:From:Subject:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=5D4YBQyoLP/92Y/4DaVpkmDXrmYs4emJ1U5kshbnvOM=; b=zAvmEWk3PKQWkX J+MpFc59nMR9bl2BR86XbSTL4NVI1FWLl7NQpsRRYExyOgVo+ebKKqhGO4PJCAJGlulfrLFAs/IGH cuMsAjv/tquweMb4a79tEqRbQvHVH6g+YvVneRelmiasOKuirAAWnNUrXbESE1mC5Qv+BC9au5kJm 6LL8qHXsXM2Hr3+tjIFeFxHoQsCxbpNvHja9grHqt19BZFSty2gtUlI0iti7ilNB/hoWeYYS5ui1Z MZ7rjMtWXlJSB+553+jh37mzbTEHQqZzmv09LUNSKtbncKWmnFAwouonMfJz1ZAMhGDoXMlpNMQby HAtHOS+sa5AMBNnD8GsA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1m6l8L-0036O2-Iq; Fri, 23 Jul 2021 02:41:53 +0000 Received: from mailgw01.mediatek.com ([216.200.240.184]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1m6l8D-0036NA-Si; Fri, 23 Jul 2021 02:41:50 +0000 X-UUID: 5b0c95b6f3064334bb20a5b82196083c-20210722 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=mediatek.com; s=dk; h=Content-Transfer-Encoding:MIME-Version:Content-Type:References:In-Reply-To:Date:CC:To:From:Subject:Message-ID; bh=49e1bZrLdriiLxz93+7J3VK4LEgGBqfNDtEversCsVs=; b=jBxB4tBvmYQXsAcgyoigwQo0/wWGstJedfygQrU6oVb4jL3y5SAVFNCyGCqCNI3qQ5PlFc9hjHdVe+IzoprDD9m8VpM2+LwGvxTDCj/FdZXmJ3b51z05LbURG4p+WDu4aZHJ5ouDVcSFosXZlqBnCvwuohdL4crEkls1svN4u9g=; X-UUID: 5b0c95b6f3064334bb20a5b82196083c-20210722 Received: from mtkcas67.mediatek.inc [(172.29.193.45)] by mailgw01.mediatek.com (envelope-from ) (musrelay.mediatek.com ESMTP with TLSv1.2 ECDHE-RSA-AES256-SHA384 256/256) with ESMTP id 1121854268; Thu, 22 Jul 2021 19:41:40 -0700 Received: from MTKMBS02N2.mediatek.inc (172.21.101.101) by MTKMBS62DR.mediatek.inc (172.29.94.18) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 22 Jul 2021 19:41:37 -0700 Received: from mtkcas11.mediatek.inc (172.21.101.40) by mtkmbs02n2.mediatek.inc (172.21.101.101) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 23 Jul 2021 10:41:36 +0800 Received: from mtksdccf07 (172.21.84.99) by mtkcas11.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Fri, 23 Jul 2021 10:41:36 +0800 Message-ID: Subject: Re: [PATCH v3 12/12] drm/mediatek: add MERGE support for MT8195 From: Jason-JH Lin To: Chun-Kuang Hu CC: Matthias Brugger , Linux ARM , "moderated list:ARM/Mediatek SoC support" , linux-kernel , , , Nancy Lin , Date: Fri, 23 Jul 2021 10:41:36 +0800 In-Reply-To: References: <20210715173750.10852-1-jason-jh.lin@mediatek.com> <20210715173750.10852-13-jason-jh.lin@mediatek.com> X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.2 MIME-Version: 1.0 X-MTK: N X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210722_194147_411009_0347EE4D X-CRM114-Status: GOOD ( 25.60 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgQ0ssDQoNCk9uIEZyaSwgMjAyMS0wNy0xNiBhdCAwNzo1MCArMDgwMCwgQ2h1bi1LdWFuZyBI dSB3cm90ZToNCj4gSGksIEphc29uOg0KPiANCj4gamFzb24tamgubGluIDxqYXNvbi1qaC5saW5A bWVkaWF0ZWsuY29tPiDmlrwgMjAyMeW5tDfmnIgxNuaXpSDpgLHkupQg5LiK5Y2IMTozOOWvq+mB k++8mg0KPiA+IA0KPiA+IDEuIEFkZCBNRVJHRSBtb2R1bGUgZmlsZToNCj4gPiAgICBNRVJHRSBt b2R1bGUgaXMgdXNlZCB0byBtZXJnZSB0d28gc2xpY2UtcGVyLWxpbmUgaW5wdXRzDQo+ID4gICAg aW50byBvbmUgc2lkZS1ieS1zaWRlIG91dHB1dC4NCj4gPiANCj4gPiAyLiBBZGQgUkVHX0ZMRCBt YWNybyBpbiBtdGtfZGVtX2NydGMgaGVhZGVyIHRvIHN1cHBvcnQNCj4gPiAgICBiaXR3aXNlIHJl Z2lzdGVyIHNldHRpbmdzLg0KPiA+IA0KPiA+IENoYW5nZS1JZDogSWUxOTZhYTYxNjYxZWFmN2Qw OTU5NDgyZDM3MDBmMzI0MmRlMzJlNWUNCj4gPiBTaWduZWQtb2ZmLWJ5OiBqYXNvbi1qaC5saW4g PGphc29uLWpoLmxpbkBtZWRpYXRlay5jb20+DQo+ID4gLS0tDQo+ID4gIGRyaXZlcnMvZ3B1L2Ry bS9tZWRpYXRlay9NYWtlZmlsZSAgICAgICAgICAgfCAgIDEgKw0KPiA+ICBkcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2LmggICAgIHwgICA4ICsNCj4gPiAgZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kaXNwX21lcmdlLmMgICB8IDM3Mg0KPiA+ICsrKysrKysrKysrKysr KysrKysrDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuaCAgICAg fCAgMTQgKw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5j IHwgIDE2ICsNCj4gPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAu aCB8ICAgMSArDQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jICAg ICAgfCAgIDQgKw0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaCAg ICAgIHwgICAxICsNCj4gPiAgOCBmaWxlcyBjaGFuZ2VkLCA0MTcgaW5zZXJ0aW9ucygrKQ0KPiA+ ICBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX21l cmdlLmMNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01h a2VmaWxlDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUNCj4gPiBpbmRl eCA0NDk0OGUyMjFmZDMuLjI3Yzg5ODQ3ZDQzYiAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUNCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0 ZWsvTWFrZWZpbGUNCj4gPiBAQCAtNCw2ICs0LDcgQEAgbWVkaWF0ZWstZHJtLXkgOj0gbXRrX2Rp c3BfY2NvcnIubyBcDQo+ID4gICAgICAgICAgICAgICAgICAgbXRrX2Rpc3BfY29sb3IubyBcDQo+ ID4gICAgICAgICAgICAgICAgICAgbXRrX2Rpc3BfZHNjLm8gXA0KPiA+ICAgICAgICAgICAgICAg ICAgIG10a19kaXNwX2dhbW1hLm8gXA0KPiA+ICsgICAgICAgICAgICAgICAgIG10a19kaXNwX21l cmdlLm8gXA0KPiA+ICAgICAgICAgICAgICAgICAgIG10a19kaXNwX292bC5vIFwNCj4gPiAgICAg ICAgICAgICAgICAgICBtdGtfZGlzcF9yZG1hLm8gXA0KPiA+ICAgICAgICAgICAgICAgICAgIG10 a19kcm1fY3J0Yy5vIFwNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kaXNwX2Rydi5oDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3Bf ZHJ2LmgNCj4gPiBpbmRleCBjN2U5YmQzNzBhY2QuLjNlMjdjZTdmZWY1NyAxMDA2NDQNCj4gPiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2LmgNCj4gPiArKysgYi9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2LmgNCj4gPiBAQCAtNTQsNiArNTQs MTQgQEAgdm9pZCBtdGtfZ2FtbWFfc2V0X2NvbW1vbih2b2lkIF9faW9tZW0gKnJlZ3MsDQo+ID4g c3RydWN0IGRybV9jcnRjX3N0YXRlICpzdGF0ZSk7DQo+ID4gIHZvaWQgbXRrX2dhbW1hX3N0YXJ0 KHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gIHZvaWQgbXRrX2dhbW1hX3N0b3Aoc3RydWN0IGRl dmljZSAqZGV2KTsNCj4gPiANCj4gPiAraW50IG10a19tZXJnZV9jbGtfZW5hYmxlKHN0cnVjdCBk ZXZpY2UgKmRldik7DQo+ID4gK3ZvaWQgbXRrX21lcmdlX2Nsa19kaXNhYmxlKHN0cnVjdCBkZXZp Y2UgKmRldik7DQo+ID4gK3ZvaWQgbXRrX21lcmdlX2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYs IHVuc2lnbmVkIGludCB3aWR0aCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQg aW50IGhlaWdodCwgdW5zaWduZWQgaW50IHZyZWZyZXNoLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICB1bnNpZ25lZCBpbnQgYnBjLCBzdHJ1Y3QgY21kcV9wa3QgKmNtZHFfcGt0KTsNCj4gPiAr dm9pZCBtdGtfbWVyZ2Vfc3RhcnQoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gPiArdm9pZCBtdGtf bWVyZ2Vfc3RvcChzdHJ1Y3QgZGV2aWNlICpkZXYpOw0KPiA+ICsNCj4gPiAgdm9pZCBtdGtfb3Zs X2JnY2xyX2luX29uKHN0cnVjdCBkZXZpY2UgKmRldik7DQo+ID4gIHZvaWQgbXRrX292bF9iZ2Ns cl9pbl9vZmYoc3RydWN0IGRldmljZSAqZGV2KTsNCj4gPiAgdm9pZCBtdGtfb3ZsX2J5cGFzc19z aGFkb3coc3RydWN0IGRldmljZSAqZGV2KTsNCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kaXNwX21lcmdlLmMNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZGlzcF9tZXJnZS5jDQo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gPiBpbmRl eCAwMDAwMDAwMDAwMDAuLjc2OGMyODJkMmQ2Mw0KPiA+IC0tLSAvZGV2L251bGwNCj4gPiArKysg Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfbWVyZ2UuYw0KPiA+IEBAIC0wLDAg KzEsMzcyIEBADQo+ID4gKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wDQo+ID4g Ky8qDQo+ID4gKyAqIENvcHlyaWdodCAoYykgMjAyMSBNZWRpYVRlayBJbmMuDQo+ID4gKyAqLw0K PiA+ICsNCj4gPiArI2luY2x1ZGUgPGxpbnV4L2Nsay5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgv Y29tcG9uZW50Lmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9vZl9kZXZpY2UuaD4NCj4gPiArI2lu Y2x1ZGUgPGxpbnV4L29mX2lycS5oPg0KPiA+ICsjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2 aWNlLmg+DQo+ID4gKyNpbmNsdWRlIDxsaW51eC9zb2MvbWVkaWF0ZWsvbXRrLWNtZHEuaD4NCj4g PiArDQo+ID4gKyNpbmNsdWRlICJtdGtfZHJtX2NydGMuaCINCj4gPiArI2luY2x1ZGUgIm10a19k cm1fZGRwX2NvbXAuaCINCj4gPiArI2luY2x1ZGUgIm10a19kcm1fZHJ2LmgiDQo+ID4gKyNpbmNs dWRlICJtdGtfZGlzcF9kcnYuaCINCj4gPiArDQo+ID4gKyNkZWZpbmUgRElTUF9SRUdfTUVSR0Vf Q1RSTCAoMHgwMDApDQo+ID4gKyNkZWZpbmUgRkxEX01FUkdFX0VOIEJJVCgwKQ0KPiA+ICsjZGVm aW5lIEZMRF9NRVJHRV9SU1QgQklUKDQpDQo+ID4gKyNkZWZpbmUgRkxEX01FUkdFX0xSX1NXQVAg QklUKDgpDQo+ID4gKyNkZWZpbmUgRkxEX01FUkdFX0RDTV9ESVMgQklUKDEyKQ0KPiA+ICsjZGVm aW5lIERJU1BfTUVSR0VfQ0ZHXzAgICAgICAgICAgICAgICAweDAxMA0KPiA+ICsjZGVmaW5lIERJ U1BfTUVSR0VfQ0ZHXzQgICAgICAgICAgICAgICAweDAyMA0KPiA+ICsjZGVmaW5lIERJU1BfTUVS R0VfQ0ZHXzEwICAgICAgMHgwMzgNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18xMiAgICAg IDB4MDQwDQo+ID4gKyNkZWZpbmUgQ0ZHXzEwXzEwXzFQSV8yUE9fQlVGX01PREUgICAgIDYNCj4g PiArI2RlZmluZSBDRkdfMTBfMTBfMlBJXzJQT19CVUZfTU9ERSAgICAgOA0KPiA+ICsjZGVmaW5l IERJU1BfTUVSR0VfQ0ZHXzI0ICAgICAgMHgwNzANCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NG R18yNSAgICAgIDB4MDc0DQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfMzYgICAgICAweDBh MA0KPiA+ICsjZGVmaW5lIERJU1BfTUVSR0VfQ0ZHXzM2X0ZMRF9VTFRSQV9FTiBSRUdfRkxEKDEs IDApDQo+IA0KPiAjZGVmaW5lIERJU1BfTUVSR0VfQ0ZHXzM2X0ZMRF9VTFRSQV9FTiBHRU5NQVNL KDEsIDApDQoNCk9LLCBJJ2xsIGZlZmluZSB0aGVzZSBtYWNyby4NCj4gDQo+ID4gKyNkZWZpbmUg RElTUF9NRVJHRV9DRkdfMzZfRkxEX1BSRVVMVFJBX0VOIFJFR19GTEQoMSwgNCkNCj4gPiArI2Rl ZmluZSBESVNQX01FUkdFX0NGR18zNl9GTERfSEFMVF9GT1JfRFZGU19FTiBSRUdfRkxEKDEsIDgp DQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfMzZfVkFMX1VMVFJBX0VOKHZhbCkgXA0KPiA+ ICsgICAgICAgUkVHX0ZMRF9WQUwoRElTUF9NRVJHRV9DRkdfMzZfRkxEX1VMVFJBX0VOLCB2YWwp DQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfMzZfVkFMX1BSRVVMVFJBX0VOKHZhbCkgXA0K PiA+ICsgICAgICAgUkVHX0ZMRF9WQUwoRElTUF9NRVJHRV9DRkdfMzZfRkxEX1BSRVVMVFJBX0VO LCB2YWwpDQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfMzZfVkFMX0hBTFRfRk9SX0RWRlNf RU4odmFsKSBcDQo+ID4gKyAgICAgICBSRUdfRkxEX1ZBTChESVNQX01FUkdFX0NGR18zNl9GTERf SEFMVF9GT1JfRFZGU19FTiwgdmFsKQ0KPiA+ICsjZGVmaW5lIERJU1BfTUVSR0VfQ0ZHXzM3ICAg ICAgMHgwYTQNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18zN19GTERfQlVGRkVSX01PREUg UkVHX0ZMRCgyLCAwKQ0KPiA+ICsjZGVmaW5lIERJU1BfTUVSR0VfQ0ZHXzM3X1ZBTF9CVUZGRVJf TU9ERSh2YWwpIFwNCj4gPiArICAgICAgIFJFR19GTERfVkFMKERJU1BfTUVSR0VfQ0ZHXzM3X0ZM RF9CVUZGRVJfTU9ERSwgdmFsKQ0KPiA+ICsjZGVmaW5lIERJU1BfTUVSR0VfQ0ZHXzM4ICAgICAg MHgwYTgNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18zOF9GTERfVkRFX0JMT0NLX1VMVFJB IFJFR19GTEQoMSwgMCkNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18zOF9GTERfVkFMSURf VEhfQkxPQ0tfVUxUUkEgUkVHX0ZMRCgxLCA0KQ0KPiA+ICsjZGVmaW5lIERJU1BfTUVSR0VfQ0ZH XzM4X0ZMRF9VTFRSQV9GSUZPX1ZBTElEX1RIIFJFR19GTEQoMTYsIDE2KQ0KPiA+ICsjZGVmaW5l IERJU1BfTUVSR0VfQ0ZHXzM4X1ZBTF9WREVfQkxPQ0tfVUxUUkEodmFsKSBcDQo+ID4gKyAgICAg ICBSRUdfRkxEX1ZBTChESVNQX01FUkdFX0NGR18zOF9GTERfVkRFX0JMT0NLX1VMVFJBLCB2YWwp DQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfMzhfVkFMX1ZBTElEX1RIX0JMT0NLX1VMVFJB KHZhbCkgXA0KPiA+ICsgICAgICAgUkVHX0ZMRF9WQUwoRElTUF9NRVJHRV9DRkdfMzhfRkxEX1ZB TElEX1RIX0JMT0NLX1VMVFJBLA0KPiA+IHZhbCkNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NG R18zOF9WQUxfVUxUUkFfRklGT19WQUxJRF9USCh2YWwpIFwNCj4gPiArICAgICAgIFJFR19GTERf VkFMKERJU1BfTUVSR0VfQ0ZHXzM4X0ZMRF9VTFRSQV9GSUZPX1ZBTElEX1RILCB2YWwpDQo+ID4g KyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfMzkgICAgICAweDBhYw0KPiA+ICsjZGVmaW5lIERJU1Bf TUVSR0VfQ0ZHXzM5X0ZMRF9OVkRFX0ZPUkNFX1BSRVVMVFJBIFJFR19GTEQoMSwgOCkNCj4gPiAr I2RlZmluZSBESVNQX01FUkdFX0NGR18zOV9GTERfTlZBTElEX1RIX0ZPUkNFX1BSRVVMVFJBIFJF R19GTEQoMSwNCj4gPiAxMikNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18zOV9GTERfUFJF VUxUUkFfRklGT19WQUxJRF9USCBSRUdfRkxEKDE2LA0KPiA+IDE2KQ0KPiA+ICsjZGVmaW5lIERJ U1BfTUVSR0VfQ0ZHXzM5X1ZBTF9OVkRFX0ZPUkNFX1BSRVVMVFJBKHZhbCkgXA0KPiA+ICsgICAg ICAgUkVHX0ZMRF9WQUwoRElTUF9NRVJHRV9DRkdfMzlfRkxEX05WREVfRk9SQ0VfUFJFVUxUUkEs IHZhbCkNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR18zOV9WQUxfTlZBTElEX1RIX0ZPUkNF X1BSRVVMVFJBKHZhbCkgXA0KPiA+ICsgICAgICAgUkVHX0ZMRF9WQUwoRElTUF9NRVJHRV9DRkdf MzlfRkxEX05WQUxJRF9USF9GT1JDRV9QUkVVTFRSQSwNCj4gPiB2YWwpDQo+ID4gKyNkZWZpbmUg RElTUF9NRVJHRV9DRkdfMzlfVkFMX1BSRVVMVFJBX0ZJRk9fVkFMSURfVEgodmFsKSBcDQo+ID4g KyAgICAgICBSRUdfRkxEX1ZBTChESVNQX01FUkdFX0NGR18zOV9GTERfUFJFVUxUUkFfRklGT19W QUxJRF9USCwNCj4gPiB2YWwpDQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9DRkdfNDAgICAgICAw eDBiMA0KPiA+ICsjZGVmaW5lIERJU1BfTUVSR0VfQ0ZHXzQwX0ZMRF9VTFRSQV9USF9MT1cgUkVH X0ZMRCgxNiwgMCkNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR180MF9GTERfVUxUUkFfVEhf SElHSCBSRUdfRkxEKDE2LCAxNikNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR180MF9WQUxf VUxUUkFfVEhfTE9XKHZhbCkgXA0KPiA+ICsgICAgICAgUkVHX0ZMRF9WQUwoRElTUF9NRVJHRV9D RkdfNDBfRkxEX1VMVFJBX1RIX0xPVywgKHZhbCkpDQo+ID4gKyNkZWZpbmUgRElTUF9NRVJHRV9D RkdfNDBfVkFMX1VMVFJBX1RIX0hJR0godmFsKSBcDQo+ID4gKyAgICAgICBSRUdfRkxEX1ZBTChE SVNQX01FUkdFX0NGR180MF9GTERfVUxUUkFfVEhfSElHSCwgdmFsKQ0KPiA+ICsjZGVmaW5lIERJ U1BfTUVSR0VfQ0ZHXzQxICAgICAgMHgwYjQNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR180 MV9GTERfUFJFVUxUUkFfVEhfTE9XIFJFR19GTEQoMTYsIDApDQo+ID4gKyNkZWZpbmUgRElTUF9N RVJHRV9DRkdfNDFfRkxEX1BSRVVMVFJBX1RIX0hJR0ggUkVHX0ZMRCgxNiwgMTYpDQo+ID4gKyNk ZWZpbmUgRElTUF9NRVJHRV9DRkdfNDFfVkFMX1BSRVVMVFJBX1RIX0xPVyh2YWwpIFwNCj4gPiAr ICAgICAgIFJFR19GTERfVkFMKERJU1BfTUVSR0VfQ0ZHXzQxX0ZMRF9QUkVVTFRSQV9USF9MT1cs IHZhbCkNCj4gPiArI2RlZmluZSBESVNQX01FUkdFX0NGR180MV9WQUxfUFJFVUxUUkFfVEhfSElH SCh2YWwpIFwNCj4gPiArICAgICAgIFJFR19GTERfVkFMKERJU1BfTUVSR0VfQ0ZHXzQxX0ZMRF9Q UkVVTFRSQV9USF9ISUdILCB2YWwpDQo+ID4gKw0KPiA+ICtzdHJ1Y3QgbXRrX21lcmdlX2NvbmZp Z19zdHJ1Y3Qgew0KPiA+ICsgICAgICAgdW5zaWduZWQgc2hvcnQgd2lkdGhfcmlnaHQ7DQo+ID4g KyAgICAgICB1bnNpZ25lZCBzaG9ydCB3aWR0aF9sZWZ0Ow0KPiA+ICsgICAgICAgdW5zaWduZWQg aW50IGhlaWdodDsNCj4gPiArICAgICAgIHVuc2lnbmVkIGludCBtb2RlOw0KPiA+ICt9Ow0KPiA+ ICsNCj4gPiArc3RydWN0IG10a19kaXNwX21lcmdlIHsNCj4gPiArICAgICAgIGVudW0gbXRrX2Rk cF9jb21wX2lkIGNvbXBfaWQ7DQo+ID4gKyAgICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGM7DQo+ ID4gKyAgICAgICBzdHJ1Y3QgY2xrICpjbGs7DQo+ID4gKyAgICAgICBzdHJ1Y3QgY2xrICphc3lu Y19jbGs7DQo+ID4gKyAgICAgICB2b2lkIF9faW9tZW0gKnJlZ3M7DQo+ID4gKyAgICAgICBzdHJ1 Y3QgY21kcV9jbGllbnRfcmVnICAgICAgICAgIGNtZHFfcmVnOw0KPiA+ICsgICAgICAgdTMyICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBmaWZvX2VuOw0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAr dm9pZCBtdGtfbWVyZ2Vfc3RhcnQoc3RydWN0IGRldmljZSAqZGV2KQ0KPiA+ICt7DQo+ID4gKyAg ICAgICBzdHJ1Y3QgbXRrX2Rpc3BfbWVyZ2UgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsN Cj4gPiArDQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlKE5VTEwsIDB4MSwgJnByaXYtPmNtZHFf cmVnLCBwcml2LT5yZWdzLA0KPiA+IERJU1BfUkVHX01FUkdFX0NUUkwpOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICt2b2lkIG10a19tZXJnZV9zdG9wKHN0cnVjdCBkZXZpY2UgKmRldikNCj4gPiArew0K PiA+ICsgICAgICAgc3RydWN0IG10a19kaXNwX21lcmdlICpwcml2ID0gZGV2X2dldF9kcnZkYXRh KGRldik7DQo+ID4gKw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZShOVUxMLCAweDAsICZwcml2 LT5jbWRxX3JlZywgcHJpdi0+cmVncywNCj4gPiBESVNQX1JFR19NRVJHRV9DVFJMKTsNCj4gPiAr fQ0KPiA+ICsNCj4gPiArc3RhdGljIGludCBtdGtfbWVyZ2VfY2hlY2tfcGFyYW1zKHN0cnVjdCBt dGtfbWVyZ2VfY29uZmlnX3N0cnVjdA0KPiA+ICptZXJnZV9jb25maWcpDQo+ID4gK3sNCj4gPiAr ICAgICAgIGlmICghbWVyZ2VfY29uZmlnLT5oZWlnaHQgfHwNCj4gPiArICAgICAgICAgICAhbWVy Z2VfY29uZmlnLT53aWR0aF9sZWZ0IHx8ICFtZXJnZV9jb25maWctDQo+ID4gPndpZHRoX3JpZ2h0 KSB7DQo+ID4gKyAgICAgICAgICAgICAgIHByX2VycigiJXM6bWVyZ2UgaW5wdXQgd2lkdGggbCgl dSkgdygldSkgaCgldSlcbiIsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICBfX2Z1bmNfXywg bWVyZ2VfY29uZmlnLT53aWR0aF9sZWZ0LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgbWVy Z2VfY29uZmlnLT53aWR0aF9yaWdodCwgbWVyZ2VfY29uZmlnLQ0KPiA+ID5oZWlnaHQpOw0KPiA+ ICsgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiArICAgICAgIH0NCj4gPiArICAg ICAgIHByX2RlYnVnKCIlczptZXJnZSBpbnB1dCB3aWR0aCBsKCV1KSByKCV1KSBoZWlnaHQoJXUp XG4iLA0KPiA+ICsgICAgICAgICAgICAgICAgX19mdW5jX18sIG1lcmdlX2NvbmZpZy0+d2lkdGhf bGVmdCwNCj4gPiArICAgICAgICAgICAgICAgIG1lcmdlX2NvbmZpZy0+d2lkdGhfcmlnaHQsIG1l cmdlX2NvbmZpZy0+aGVpZ2h0KTsNCj4gPiArICAgICAgIHJldHVybiAwOw0KPiA+ICt9DQo+ID4g Kw0KPiA+ICtzdGF0aWMgaW50IG10a19tZXJnZV9maWZvX3NldHRpbmcoc3RydWN0IG10a19kaXNw X21lcmdlICpwcml2LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0 cnVjdCBjbWRxX3BrdCAqaGFuZGxlKQ0KPiA+ICt7DQo+ID4gKyAgICAgICBpbnQgdWx0cmFfZW4g PSAxOw0KPiA+ICsgICAgICAgaW50IHByZXVsdHJhX2VuID0gMTsNCj4gPiArICAgICAgIGludCBo YWx0X2Zvcl9kdmZzX2VuID0gMDsNCj4gPiArICAgICAgIGludCBidWZmZXJfbW9kZSA9IDM7DQo+ IA0KPiBFeHBsYWluIHdoYXQgaXMgYnVmZmVyX21vZGUgMy4NCg0KSSdsbCBhZGQgdGhlIGNvbW1l bnQgYXQgdGhlIG5leHQgdmVyc2lvbi4NCgkvKg0KCSAqIDAgOiBPZmYNCgkgKiAxIDogU1JBTSAw DQoJICogMiA6IFNSQU0gMQ0KCSAqIDMgOiBTUkFNIDAgKyBTUkFNIDENCgkgKi8NCj4gDQo+ID4g KyAgICAgICBpbnQgdmRlX2Jsb2NrX3VsdHJhID0gMDsNCj4gPiArICAgICAgIGludCB2YWxpZF90 aF9ibG9ja191bHRyYSA9IDA7DQo+ID4gKyAgICAgICBpbnQgdWx0cmFfZmlmb192YWxpZF90aCA9 IDA7DQo+ID4gKyAgICAgICBpbnQgbnZkZV9mb3JjZV9wcmV1bHRyYSA9IDA7DQo+ID4gKyAgICAg ICBpbnQgbnZhbGlkX3RoX2ZvcmNlX3ByZXVsdHJhID0gMDsNCj4gPiArICAgICAgIGludCBwcmV1 bHRyYV9maWZvX3ZhbGlkX3RoID0gMDsNCj4gPiArICAgICAgIGludCB1bHRyYV90aF9sb3cgPSAw eGUxMDsNCj4gPiArICAgICAgIGludCB1bHRyYV90aF9oaWdoID0gMHgxMmMwOw0KPiA+ICsgICAg ICAgaW50IHByZXVsdHJhX3RoX2xvdyA9IDB4MTJjMDsNCj4gPiArICAgICAgIGludCBwcmV1bHRy YV90aF9oaWdoID0gMHgxNTE4Ow0KPiANCj4gRm9yIHRoZSB0aHJlc2hvbGQsIEkgd291bGQgbGlr ZSBzb21lIGZvcm11bGEgbGlrZSBSRE1BIHRocmVzaG9sZCwNCj4gDQo+IC8qDQo+ICogRW5hYmxl IEZJRk8gdW5kZXJmbG93IHNpbmNlIERTSSBhbmQgRFBJIGNhbid0IGJlIGJsb2NrZWQuDQo+ICog S2VlcCB0aGUgRklGTyBwc2V1ZG8gc2l6ZSByZXNldCBkZWZhdWx0IG9mIDggS2lCLiBTZXQgdGhl DQo+ICogb3V0cHV0IHRocmVzaG9sZCB0byA2IG1pY3Jvc2Vjb25kcyB3aXRoIDcvNiBvdmVyaGVh ZCB0bw0KPiAqIGFjY291bnQgZm9yIGJsYW5raW5nLCBhbmQgd2l0aCBhIHBpeGVsIGRlcHRoIG9m IDQgYnl0ZXM6DQo+ICovDQo+IHRocmVzaG9sZCA9IHdpZHRoICogaGVpZ2h0ICogdnJlZnJlc2gg KiA0ICogNyAvIDEwMDAwMDA7DQo+IA0KPiANCk9LLCBJJ2xsIGNoYW5nZSBpdCB0byAJDQoJLyog NnVzLCA2MDBNIHBpeGVsL3NlYyAqLw0KCXVuc2lnbmVkIGludCB1bHRyYV90aF9sb3cgPSA2ICog NjAwOw0KCS8qIDh1cywgNjAwTSBwaXhlbC9zZWMgKi8NCgl1bnNpZ25lZCBpbnQgdWx0cmFfdGhf aGlnaCA9IDggKiA2MDA7DQoJLyogOHVzLCA2MDBNIHBpeGVsL3NlYyAqLw0KCXVuc2lnbmVkIGlu dCBwcmV1bHRyYV90aF9sb3cgPSA4ICogNjAwOw0KCS8qIDl1cywgNjAwTSBwaXhlbC9zZWMgKi8N Cgl1bnNpZ25lZCBpbnQgcHJldWx0cmFfdGhfaGlnaCA9IDkgKiA2MDA7DQphdCB0aGUgbmV4dCB2 ZXJzaW9uLg0KPiA+ICsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhoYW5kbGUsDQo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgRElTUF9NRVJHRV9DRkdfMzZfVkFMX1VMVFJB X0VOKHVsdHJhX2VuKQ0KPiA+IHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBESVNQ X01FUkdFX0NGR18zNl9WQUxfUFJFVUxUUkFfRU4ocHJldWx0DQo+ID4gcmFfZW4pIHwNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICBESVNQX01FUkdFX0NGR18zNl9WQUxfSEFMVF9GT1Jf RFZGU19FTihoDQo+ID4gYWx0X2Zvcl9kdmZzX2VuKSwNCj4gDQo+IEFsaWduIHRvIHRoZSBjb2Rp bmcgc3R5bGUgb2Ygb3RoZXIgc3ViIGRyaXZlciwNCj4gDQo+IGhhbHRfZm9yX2R2ZnNfZW4gPDwg OCB8IHByZXVsdHJhX2VuIDw8IDQgfCB1bHRyYV9lbiA8PCAwLA0KPiANCk9LLCBJJ2xsIGZpeCBp dC4NCg0KPiANCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJpdi0+Y21kcV9yZWcs IHByaXYtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfMzYsDQo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKERJU1BfTUVSR0VfQ0ZHXzM2X0ZMRF9VTFRSQQ0KPiA+ IF9FTikgfA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhESVNQ X01FUkdFX0NGR18zNl9GTERfUFJFVUwNCj4gPiBUUkFfRU4pIHwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRElTUF9NRVJHRV9DRkdfMzZfRkxEX0hBTFRfDQo+ ID4gRk9SX0RWRlNfRU4pKTsNCj4gDQo+IEFsaWduIHRvIHRoZSBjb2Rpbmcgc3R5bGUgb2Ygb3Ro ZXIgc3ViIGRyaXZlciwNCj4gDQo+IERJU1BfTUVSR0VfQ0ZHXzM2X0ZMRF9IQUxUX0ZPUl9EVkZT X0VOIHwNCj4gRElTUF9NRVJHRV9DRkdfMzZfRkxEX1BSRVVMVFJBX0VOIHwgRElTUF9NRVJHRV9D RkdfMzZfRkxEX1VMVFJBX0VODQo+IA0KT0ssIEknbGwgZml4IGl0Lg0KDQo+ID4gKw0KPiA+ICsg ICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGhhbmRsZSwNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICBESVNQX01FUkdFX0NGR18zN19WQUxfQlVGRkVSX01PREUoYnVmZmVyDQo+ID4gX21v ZGUpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICZwcml2LT5jbWRxX3JlZywgcHJp di0+cmVncywNCj4gPiBESVNQX01FUkdFX0NGR18zNywNCj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICBSRUdfRkxEX01BU0soRElTUF9NRVJHRV9DRkdfMzdfRkxEX0JVRkZFDQo+ID4gUl9N T0RFKSk7DQo+ID4gKw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGhhbmRsZSwNCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICBESVNQX01FUkdFX0NGR18zOF9WQUxfVkRFX0JM T0NLX1VMVFJBKHZkDQo+ID4gZV9ibG9ja191bHRyYSkgfA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgIERJU1BfTUVSR0VfQ0ZHXzM4X1ZBTF9WQUxJRF9USF9CTE9DS19VTFQNCj4gPiBS QSh2YWxpZF90aF9ibG9ja191bHRyYSkgfA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg IERJU1BfTUVSR0VfQ0ZHXzM4X1ZBTF9VTFRSQV9GSUZPX1ZBTElEX1QNCj4gPiBIKHVsdHJhX2Zp Zm9fdmFsaWRfdGgpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICZwcml2LT5jbWRx X3JlZywgcHJpdi0+cmVncywNCj4gPiBESVNQX01FUkdFX0NGR18zOCwNCj4gPiArICAgICAgICAg ICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRElTUF9NRVJHRV9DRkdfMzhfRkxEX1ZERV9C DQo+ID4gTE9DS19VTFRSQSkgfA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19G TERfTUFTSyhESVNQX01FUkdFX0NGR18zOF9GTERfVkFMSUQNCj4gPiBfVEhfQkxPQ0tfVUxUUkEp IHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRElTUF9NRVJH RV9DRkdfMzhfRkxEX1VMVFJBDQo+ID4gX0ZJRk9fVkFMSURfVEgpKTsNCj4gPiArDQo+ID4gKyAg ICAgICBtdGtfZGRwX3dyaXRlX21hc2soaGFuZGxlLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgIERJU1BfTUVSR0VfQ0ZHXzM5X1ZBTF9OVkRFX0ZPUkNFX1BSRVVMVFINCj4gPiBBKG52 ZGVfZm9yY2VfcHJldWx0cmEpIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBESVNQ X01FUkdFX0NGR18zOV9WQUxfTlZBTElEX1RIX0ZPUkNFX1BSDQo+ID4gRVVMVFJBDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobnZhbGlkX3RoX2ZvcmNlX3ByZXVsdHJhKSB8 DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgRElTUF9NRVJHRV9DRkdfMzlfVkFMX1BS RVVMVFJBX0ZJRk9fVkFMSQ0KPiA+IERfVEgocHJldWx0cmFfZmlmb192YWxpZF90aCksDQo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgJnByaXYtPmNtZHFfcmVnLCBwcml2LT5yZWdzLA0K PiA+IERJU1BfTUVSR0VfQ0ZHXzM5LA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJF R19GTERfTUFTSyhESVNQX01FUkdFX0NGR18zOV9GTERfTlZERV8NCj4gPiBGT1JDRV9QUkVVTFRS QSkgfA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIFJFR19GTERfTUFTSyhESVNQX01F UkdFX0NGR18zOV9GTERfTlZBTEkNCj4gPiBEX1RIX0ZPUkNFX1BSRVVMVFJBKSB8DQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKERJU1BfTUVSR0VfQ0ZHXzM5X0ZM RF9QUkVVTA0KPiA+IFRSQV9GSUZPX1ZBTElEX1RIKSk7DQo+ID4gKw0KPiA+ICsgICAgICAgbXRr X2RkcF93cml0ZV9tYXNrKGhhbmRsZSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBE SVNQX01FUkdFX0NGR180MF9WQUxfVUxUUkFfVEhfTE9XKHVsdHJhDQo+ID4gX3RoX2xvdykgfA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIERJU1BfTUVSR0VfQ0ZHXzQwX1ZBTF9VTFRS QV9USF9ISUdIKHVsdHINCj4gPiBhX3RoX2hpZ2gpLA0KPiA+ICsgICAgICAgICAgICAgICAgICAg ICAgICAgICZwcml2LT5jbWRxX3JlZywgcHJpdi0+cmVncywNCj4gPiBESVNQX01FUkdFX0NGR180 MCwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBSRUdfRkxEX01BU0soRElTUF9NRVJH RV9DRkdfNDBfRkxEX1VMVFJBDQo+ID4gX1RIX0xPVykgfA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgIFJFR19GTERfTUFTSyhESVNQX01FUkdFX0NGR180MF9GTERfVUxUUkENCj4gPiBf VEhfSElHSCkpOw0KPiA+ICsNCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhoYW5kbGUs DQo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgRElTUF9NRVJHRV9DRkdfNDFfVkFMX1BS RVVMVFJBX1RIX0xPVyhwcg0KPiA+IGV1bHRyYV90aF9sb3cpIHwNCj4gPiArICAgICAgICAgICAg ICAgICAgICAgICAgICBESVNQX01FUkdFX0NGR180MV9WQUxfUFJFVUxUUkFfVEhfSElHSChwDQo+ ID4gcmV1bHRyYV90aF9oaWdoKSwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAmcHJp di0+Y21kcV9yZWcsIHByaXYtPnJlZ3MsDQo+ID4gRElTUF9NRVJHRV9DRkdfNDEsDQo+ID4gKyAg ICAgICAgICAgICAgICAgICAgICAgICAgUkVHX0ZMRF9NQVNLKERJU1BfTUVSR0VfQ0ZHXzQxX0ZM RF9QUkVVTA0KPiA+IFRSQV9USF9MT1cpIHwNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICBSRUdfRkxEX01BU0soRElTUF9NRVJHRV9DRkdfNDFfRkxEX1BSRVVMDQo+ID4gVFJBX1RIX0hJ R0gpKTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gMDsNCj4gDQo+IFRoaXMgZnVuY3Rpb24g YWx3YXlzIHJldHVybiAwLCBzbyBjaGFuZ2UgdG8gdm9pZC4NCj4gDQpPSywgSSdsbCBmaXggaXQu DQoNCj4gPiArfQ0KPiA+ICsNCj4gPiArdm9pZCBtdGtfbWVyZ2VfY29uZmlnKHN0cnVjdCBkZXZp Y2UgKmRldiwgdW5zaWduZWQgaW50IHcsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgIHVuc2ln bmVkIGludCBoLCB1bnNpZ25lZCBpbnQgdnJlZnJlc2gsDQo+ID4gKyAgICAgICAgICAgICAgICAg ICAgIHVuc2lnbmVkIGludCBicGMsIHN0cnVjdCBjbWRxX3BrdCAqaGFuZGxlKQ0KPiA+ICt7DQo+ ID4gKyAgICAgICBzdHJ1Y3QgbXRrX21lcmdlX2NvbmZpZ19zdHJ1Y3QgbWVyZ2VfY29uZmlnOw0K PiA+ICsgICAgICAgc3RydWN0IG10a19kaXNwX21lcmdlICpwcml2ID0gZGV2X2dldF9kcnZkYXRh KGRldik7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKHByaXYtPmZpZm9fZW4pDQo+ID4gKyAgICAg ICAgICAgICAgIG10a19tZXJnZV9maWZvX3NldHRpbmcocHJpdiwgaGFuZGxlKTsNCj4gPiArDQo+ ID4gKyAgICAgICBzd2l0Y2ggKHByaXYtPmNvbXBfaWQpIHsNCj4gDQo+IEkgdGhpbmsgeW91IHNo b3VsZCB1c2UgcHJpdi0+Zmlmb19lbiBpbnN0ZWFkIG9mIHByaXYtPmNvbXBfaWQuDQoNCk9LLCBJ J2xsIGZpeCBpdC4NCg0KPiANCj4gPiArICAgICAgIGNhc2UgRERQX0NPTVBPTkVOVF9NRVJHRTA6 DQo+ID4gKyAgICAgICAgICAgICAgIG1lcmdlX2NvbmZpZy5tb2RlID0gQ0ZHXzEwXzEwXzFQSV8y UE9fQlVGX01PREU7DQo+ID4gKyAgICAgICAgICAgICAgIG1lcmdlX2NvbmZpZy53aWR0aF9sZWZ0 ID0gdzsNCj4gPiArICAgICAgICAgICAgICAgbWVyZ2VfY29uZmlnLndpZHRoX3JpZ2h0ID0gdzsN Cj4gPiArICAgICAgICAgICAgICAgbWVyZ2VfY29uZmlnLmhlaWdodCA9IGg7DQo+ID4gKyAgICAg ICAgICAgICAgIGJyZWFrOw0KPiA+ICsgICAgICAgY2FzZSBERFBfQ09NUE9ORU5UX01FUkdFNToN Cj4gPiArICAgICAgICAgICAgICAgbWVyZ2VfY29uZmlnLm1vZGUgPSBDRkdfMTBfMTBfMlBJXzJQ T19CVUZfTU9ERTsNCj4gPiArICAgICAgICAgICAgICAgbWVyZ2VfY29uZmlnLndpZHRoX2xlZnQg PSB3Ow0KPiA+ICsgICAgICAgICAgICAgICBtZXJnZV9jb25maWcud2lkdGhfcmlnaHQgPSB3Ow0K PiA+ICsgICAgICAgICAgICAgICBtZXJnZV9jb25maWcuaGVpZ2h0ID0gaDsNCj4gPiArICAgICAg ICAgICAgICAgYnJlYWs7DQo+ID4gKyAgICAgICBkZWZhdWx0Og0KPiA+ICsgICAgICAgICAgICAg ICBwcl9lcnIoIk5vIGZpbmQgY29tcG9uZW50IG1lcmdlICVkXG4iLCBwcml2LQ0KPiA+ID5jb21w X2lkKTsNCj4gPiArICAgICAgICAgICAgICAgcmV0dXJuOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsN Cj4gPiArICAgICAgIG10a19tZXJnZV9jaGVja19wYXJhbXMoJm1lcmdlX2NvbmZpZyk7DQo+IA0K PiBJIHRoaW5rIHlvdSBzaG91bGQgcmVtb3ZlIG10a19tZXJnZV9jaGVja19wYXJhbXMoKSBhbmQg ZGlyZWN0bHkgY2hlY2sNCj4gdyBhbmQgaCwgYW5kIHJlbW92ZSB3aG9sZSBzd2l0Y2ggY2FzZS4N Cj4gDQpPSywgSSdsbCByZW1vdmUgaXQuDQoNCj4gPiArDQo+ID4gKyAgICAgICBtdGtfZGRwX3dy aXRlKGhhbmRsZSwgKGggPDwgMTYgfCB3KSwgJnByaXYtPmNtZHFfcmVnLCBwcml2LQ0KPiA+ID5y ZWdzLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgIERJU1BfTUVSR0VfQ0ZHXzApOw0KPiA+ICsN Cj4gPiArICAgICAgIG10a19kZHBfd3JpdGUoaGFuZGxlLCAoaCA8PCAxNiB8IHcpLCAmcHJpdi0+ Y21kcV9yZWcsIHByaXYtDQo+ID4gPnJlZ3MsDQo+ID4gKyAgICAgICAgICAgICAgICAgICAgRElT UF9NRVJHRV9DRkdfNCk7DQo+ID4gKw0KPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZShoYW5kbGUs IChoIDw8IDE2IHwgdyksICZwcml2LT5jbWRxX3JlZywgcHJpdi0NCj4gPiA+cmVncywNCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICBESVNQX01FUkdFX0NGR18yNCk7DQo+ID4gKw0KPiA+ ICsgICAgICAgbXRrX2RkcF93cml0ZShoYW5kbGUsIChoIDw8IDE2IHwgdyksICZwcml2LT5jbWRx X3JlZywgcHJpdi0NCj4gPiA+cmVncywNCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBE SVNQX01FUkdFX0NGR18yNSk7DQo+ID4gKw0KPiA+ICsgICAgICAgLyogbm8gc3dhcCAqLw0KPiA+ ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGhhbmRsZSwgMCwgJnByaXYtPmNtZHFfcmVnLCBw cml2LT5yZWdzLA0KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIERJU1BfTUVSR0VfQ0ZH XzEwLCAweDFmKTsNCj4gPiArDQo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soaGFuZGxl LCBtZXJnZV9jb25maWcubW9kZSwgJnByaXYtDQo+ID4gPmNtZHFfcmVnLCBwcml2LT5yZWdzLA0K PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIERJU1BfTUVSR0VfQ0ZHXzEyLCAweDFmKTsN Cj4gPiArfQ0KPiA+ICsNCj4gPiAraW50IG10a19tZXJnZV9jbGtfZW5hYmxlKHN0cnVjdCBkZXZp Y2UgKmRldikNCj4gPiArew0KPiA+ICsgICAgICAgaW50IHJldCA9IDA7DQo+ID4gKyAgICAgICBz dHJ1Y3QgbXRrX2Rpc3BfbWVyZ2UgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsNCj4gPiAr DQo+ID4gKyAgICAgICBpZiAocHJpdi0+Y2xrKSB7DQo+IA0KPiBjbGtfcHJlcGFyZV9lbmFibGUo KSB3b3VsZCBjaGVjayB0aGlzLCBzbyByZW1vdmUgdGhpcyBjaGVjay4NCj4gDQpPSywgSSdsbCBy ZW1vdmUgaXQuDQoNCj4gPiArICAgICAgICAgICAgICAgcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxl KHByaXYtPmNsayk7DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChyZXQpDQo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgcHJfZXJyKCJtZXJnZSBjbGsgcHJlcGFyZSBlbmFibGUNCj4gPiBmYWls ZWRcbiIpOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIGlmIChwcml2LT5hc3lu Y19jbGspIHsNCj4gPiArICAgICAgICAgICAgICAgcmV0ID0gY2xrX3ByZXBhcmVfZW5hYmxlKHBy aXYtPmFzeW5jX2Nsayk7DQo+ID4gKyAgICAgICAgICAgICAgIGlmIChyZXQpDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgcHJfZXJyKCJhc3luYyBjbGsgcHJlcGFyZSBlbmFibGUNCj4gPiBm YWlsZWRcbiIpOw0KPiA+ICsgICAgICAgfQ0KPiA+ICsNCj4gPiArICAgICAgIHJldHVybiByZXQ7 DQo+ID4gK30NCj4gPiArDQo+ID4gK3ZvaWQgbXRrX21lcmdlX2Nsa19kaXNhYmxlKHN0cnVjdCBk ZXZpY2UgKmRldikNCj4gPiArew0KPiA+ICsgICAgICAgc3RydWN0IG10a19kaXNwX21lcmdlICpw cml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKHByaXYt PmFzeW5jX2NsaykNCj4gPiArICAgICAgICAgICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHBy aXYtPmFzeW5jX2Nsayk7DQo+ID4gKw0KPiA+ICsgICAgICAgaWYgKHByaXYtPmNsaykNCj4gPiAr ICAgICAgICAgICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKHByaXYtPmNsayk7DQo+ID4gK30N Cj4gPiArDQo+ID4gK3N0YXRpYyBpbnQgbXRrX2Rpc3BfbWVyZ2VfYmluZChzdHJ1Y3QgZGV2aWNl ICpkZXYsIHN0cnVjdCBkZXZpY2UNCj4gPiAqbWFzdGVyLA0KPiA+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB2b2lkICpkYXRhKQ0KPiA+ICt7DQo+ID4gKyAgICAgICByZXR1cm4gMDsN Cj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHZvaWQgbXRrX2Rpc3BfbWVyZ2VfdW5iaW5kKHN0 cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0DQo+ID4gZGV2aWNlICptYXN0ZXIsDQo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvaWQgKmRhdGEpDQo+ID4gK3sNCj4gPiArfQ0K PiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBjb21wb25lbnRfb3BzIG10a19kaXNwX21l cmdlX2NvbXBvbmVudF9vcHMgPSB7DQo+ID4gKyAgICAgICAuYmluZCAgID0gbXRrX2Rpc3BfbWVy Z2VfYmluZCwNCj4gPiArICAgICAgIC51bmJpbmQgPSBtdGtfZGlzcF9tZXJnZV91bmJpbmQsDQo+ ID4gK307DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50IG10a19kaXNwX21lcmdlX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpDQo+ID4gK3sNCj4gPiArICAgICAgIHN0cnVjdCBkZXZp Y2UgKmRldiA9ICZwZGV2LT5kZXY7DQo+ID4gKyAgICAgICBzdHJ1Y3QgcmVzb3VyY2UgKnJlczsN Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfZGlzcF9tZXJnZSAqcHJpdjsNCj4gPiArICAgICAgIGVu dW0gbXRrX2RkcF9jb21wX2lkIGNvbXBfaWQ7DQo+ID4gKyAgICAgICBpbnQgcmV0Ow0KPiA+ICsN Cj4gPiArICAgICAgIHByaXYgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnByaXYpLCBHRlBf S0VSTkVMKTsNCj4gPiArICAgICAgIGlmICghcHJpdikNCj4gPiArICAgICAgICAgICAgICAgcmV0 dXJuIC1FTk9NRU07DQo+ID4gKw0KPiA+ICsgICAgICAgY29tcF9pZCA9IG10a19kZHBfY29tcF9n ZXRfaWQoZGV2LT5vZl9ub2RlLA0KPiA+IE1US19ESVNQX01FUkdFKTsNCj4gPiArICAgICAgIGlm ICgoaW50KWNvbXBfaWQgPCAwKSB7DQo+ID4gKyAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAi RmFpbGVkIHRvIGlkZW50aWZ5IGJ5IGFsaWFzOiAlZFxuIiwNCj4gPiBjb21wX2lkKTsNCj4gPiAr ICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBfaWQ7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ ICsgICAgICAgcHJpdi0+Y29tcF9pZCA9IGNvbXBfaWQ7DQo+ID4gKw0KPiA+ICsgICAgICAgcHJp di0+Y2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgTlVMTCk7DQo+ID4gKyAgICAgICBpZiAoSVNfRVJS KHByaXYtPmNsaykpIHsNCj4gPiArICAgICAgICAgICAgICAgZGV2X2VycihkZXYsICJmYWlsZWQg dG8gZ2V0IG1lcmdlIGNsa1xuIik7DQo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBQVFJfRVJS KHByaXYtPmNsayk7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsgICAgICAgcmVzID0gcGxh dGZvcm1fZ2V0X3Jlc291cmNlKHBkZXYsIElPUkVTT1VSQ0VfTUVNLCAwKTsNCj4gPiArICAgICAg IHByaXYtPnJlZ3MgPSBkZXZtX2lvcmVtYXBfcmVzb3VyY2UoZGV2LCByZXMpOw0KPiA+ICsgICAg ICAgaWYgKElTX0VSUihwcml2LT5yZWdzKSkgew0KPiA+ICsgICAgICAgICAgICAgICBkZXZfZXJy KGRldiwgImZhaWxlZCB0byBpb3JlbWFwIG1lcmdlXG4iKTsNCj4gPiArICAgICAgICAgICAgICAg cmV0dXJuIFBUUl9FUlIocHJpdi0+cmVncyk7DQo+ID4gKyAgICAgICB9DQo+ID4gKw0KPiA+ICsj aWYgSVNfUkVBQ0hBQkxFKENPTkZJR19NVEtfQ01EUSkNCj4gPiArICAgICAgIHJldCA9IGNtZHFf ZGV2X2dldF9jbGllbnRfcmVnKGRldiwgJnByaXYtPmNtZHFfcmVnLCAwKTsNCj4gPiArICAgICAg IGlmIChyZXQpDQo+ID4gKyAgICAgICAgICAgICAgIGRldl9kYmcoZGV2LCAiZ2V0IG1lZGlhdGVr LGdjZS1jbGllbnQtcmVnDQo+ID4gZmFpbCFcbiIpOw0KPiA+ICsjZW5kaWYNCj4gPiArDQo+ID4g KyAgICAgICBwcml2LT5hc3luY19jbGsgPSBvZl9jbGtfZ2V0KGRldi0+b2Zfbm9kZSwgMSk7DQo+ ID4gKyAgICAgICBpZiAoSVNfRVJSKHByaXYtPmFzeW5jX2NsaykpIHsNCj4gPiArICAgICAgICAg ICAgICAgcmV0ID0gUFRSX0VSUihwcml2LT5hc3luY19jbGspOw0KPiA+ICsgICAgICAgICAgICAg ICBkZXZfZGJnKGRldiwgIk5vIG1lcmdlIGFzeW5jIGNsb2NrOiAlZFxuIiwgcmV0KTsNCj4gPiAr ICAgICAgICAgICAgICAgcHJpdi0+YXN5bmNfY2xrID0gTlVMTDsNCj4gPiArICAgICAgIH0NCj4g PiArDQo+ID4gKyAgICAgICBwcml2LT5maWZvX2VuID0gb2ZfcHJvcGVydHlfcmVhZF9ib29sKGRl di0+b2Zfbm9kZSwNCj4gPiArICAgICAgICAgICAgICAgIm1lZGlhdGVrLG1lcmdlLWZpZm8tZW4i KTsNCj4gPiArDQo+ID4gKyAgICAgICBwbGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBwcml2KTsN Cj4gPiArDQo+ID4gKyAgICAgICByZXQgPSBjb21wb25lbnRfYWRkKGRldiwgJm10a19kaXNwX21l cmdlX2NvbXBvbmVudF9vcHMpOw0KPiA+ICsgICAgICAgaWYgKHJldCAhPSAwKQ0KPiA+ICsgICAg ICAgICAgICAgICBkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBhZGQgY29tcG9uZW50OiAlZFxuIiwg cmV0KTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4gcmV0Ow0KPiA+ICt9DQo+ID4gKw0KPiA+ ICtzdGF0aWMgaW50IG10a19kaXNwX21lcmdlX3JlbW92ZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNl ICpwZGV2KQ0KPiA+ICt7DQo+ID4gKyAgICAgICBjb21wb25lbnRfZGVsKCZwZGV2LT5kZXYsICZt dGtfZGlzcF9tZXJnZV9jb21wb25lbnRfb3BzKTsNCj4gPiArDQo+ID4gKyAgICAgICByZXR1cm4g MDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQg bXRrX2Rpc3BfbWVyZ2VfZHJpdmVyX2R0X21hdGNoW10NCj4gPiA9IHsNCj4gPiArICAgICAgIHsg LmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk1LWRpc3AtbWVyZ2UiLCB9LA0KPiA+ICsgICAg ICAge30sDQo+ID4gK307DQo+ID4gKw0KPiA+ICtNT0RVTEVfREVWSUNFX1RBQkxFKG9mLCBtdGtf ZGlzcF9tZXJnZV9kcml2ZXJfZHRfbWF0Y2gpOw0KPiA+ICsNCj4gPiArc3RydWN0IHBsYXRmb3Jt X2RyaXZlciBtdGtfZGlzcF9tZXJnZV9kcml2ZXIgPSB7DQo+ID4gKyAgICAgICAucHJvYmUgPSBt dGtfZGlzcF9tZXJnZV9wcm9iZSwNCj4gPiArICAgICAgIC5yZW1vdmUgPSBtdGtfZGlzcF9tZXJn ZV9yZW1vdmUsDQo+ID4gKyAgICAgICAuZHJpdmVyID0gew0KPiA+ICsgICAgICAgICAgICAgICAu bmFtZSA9ICJtZWRpYXRlay1kaXNwLW1lcmdlIiwNCj4gPiArICAgICAgICAgICAgICAgLm93bmVy ID0gVEhJU19NT0RVTEUsDQo+ID4gKyAgICAgICAgICAgICAgIC5vZl9tYXRjaF90YWJsZSA9IG10 a19kaXNwX21lcmdlX2RyaXZlcl9kdF9tYXRjaCwNCj4gPiArICAgICAgIH0sDQo+ID4gK307DQo+ ID4gKw0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9j cnRjLmgNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuaA0KPiA+ IGluZGV4IGNiOWEzNmM0OGQ0Zi4uNjZkMWNmMDNkZmU4IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZl cnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuaA0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2NydGMuaA0KPiA+IEBAIC0xNCw2ICsxNCwyMCBAQA0KPiA+ ICAjZGVmaW5lIE1US19NQVhfQlBDICAgIDEwDQo+ID4gICNkZWZpbmUgTVRLX01JTl9CUEMgICAg Mw0KPiA+IA0KPiA+ICsjZGVmaW5lIFJFR19GTEQod2lkdGgsIHNoaWZ0KSBcDQo+ID4gKyAgICAg ICAoKHVuc2lnbmVkIGludCkoKCgod2lkdGgpICYgMHhmZikgPDwgMTYpIHwgKChzaGlmdCkgJg0K PiA+IDB4ZmYpKSkNCj4gPiArDQo+ID4gKyNkZWZpbmUgUkVHX0ZMRF9XSURUSChmaWVsZCkgKCh1 bnNpZ25lZCBpbnQpKCgoZmllbGQpID4+IDE2KSAmDQo+ID4gMHhmZikpDQo+ID4gKw0KPiA+ICsj ZGVmaW5lIFJFR19GTERfU0hJRlQoZmllbGQpICgodW5zaWduZWQgaW50KSgoZmllbGQpICYgMHhm ZikpDQo+ID4gKw0KPiA+ICsjZGVmaW5lIFJFR19GTERfTUFTSyhmaWVsZCkgXA0KPiA+ICsgICAg ICAgKCh1bnNpZ25lZCBpbnQpKCgxVUxMIDw8IFJFR19GTERfV0lEVEgoZmllbGQpKSAtIDEpIFwN Cj4gPiArICAgICAgICA8PCBSRUdfRkxEX1NISUZUKGZpZWxkKSkNCj4gPiArDQo+ID4gKyNkZWZp bmUgUkVHX0ZMRF9WQUwoZmllbGQsIHZhbCkgXA0KPiA+ICsgICAgICAgKCgodmFsKSA8PCBSRUdf RkxEX1NISUZUKGZpZWxkKSkgJiBSRUdfRkxEX01BU0soZmllbGQpKQ0KPiA+ICsNCg0KSSdsbCBy ZW1vdmUgdGhlc2UgbWFyY28uDQoNCj4gPiAgdm9pZCBtdGtfZHJtX2NydGNfY29tbWl0KHN0cnVj dCBkcm1fY3J0YyAqY3J0Yyk7DQo+ID4gIGludCBtdGtfZHJtX2NydGNfY3JlYXRlKHN0cnVjdCBk cm1fZGV2aWNlICpkcm1fZGV2LA0KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGVu dW0gbXRrX2RkcF9jb21wX2lkICpwYXRoLA0KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jDQo+ID4gYi9kcml2ZXJzL2dwdS9kcm0vbWVk aWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jDQo+ID4gaW5kZXggYmEzZDdhMWNlN2FiLi45MTI1ZDBm NjM1MmYgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1f ZGRwX2NvbXAuYw0KPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rk cF9jb21wLmMNCj4gPiBAQCAtMzQxLDYgKzM0MSwxNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10 a19kZHBfY29tcF9mdW5jcyBkZHBfZHNjDQo+ID4gPSB7DQo+ID4gICAgICAgICAuY2xrX2Rpc2Fi bGUgPSBtdGtfZHNjX2Nsa19kaXNhYmxlLA0KPiA+ICB9Ow0KPiA+IA0KPiA+ICtzdGF0aWMgY29u c3Qgc3RydWN0IG10a19kZHBfY29tcF9mdW5jcyBkZHBfbWVyZ2UgPSB7DQo+ID4gKyAgICAgICAu Y2xrX2VuYWJsZSA9IG10a19tZXJnZV9jbGtfZW5hYmxlLA0KPiA+ICsgICAgICAgLmNsa19kaXNh YmxlID0gbXRrX21lcmdlX2Nsa19kaXNhYmxlLA0KPiA+ICsgICAgICAgLnN0YXJ0ID0gbXRrX21l cmdlX3N0YXJ0LA0KPiA+ICsgICAgICAgLnN0b3AgPSBtdGtfbWVyZ2Vfc3RvcCwNCj4gPiArICAg ICAgIC5jb25maWcgPSBtdGtfbWVyZ2VfY29uZmlnLA0KPiA+ICt9Ow0KPiA+ICsNCj4gPiAgc3Rh dGljIGNvbnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfZnVuY3MgZGRwX3Vmb2UgPSB7DQo+ID4gICAg ICAgICAuY2xrX2VuYWJsZSA9IG10a19kZHBfY2xrX2VuYWJsZSwNCj4gPiAgICAgICAgIC5jbGtf ZGlzYWJsZSA9IG10a19kZHBfY2xrX2Rpc2FibGUsDQo+ID4gQEAgLTM2NSw2ICszNzMsNyBAQCBz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0DQo+ID4gbXRrX2RkcF9jb21wX3N0ZW1bTVRLX0REUF9D T01QX1RZUEVfTUFYXSA9IHsNCj4gPiAgICAgICAgIFtNVEtfRElTUF9PRF0gPSAib2QiLA0KPiA+ ICAgICAgICAgW01US19ESVNQX0JMU10gPSAiYmxzIiwNCj4gPiAgICAgICAgIFtNVEtfRElTUF9E U0NdID0gImRzYyIsDQo+ID4gKyAgICAgICBbTVRLX0RJU1BfTUVSR0VdID0gIm1lcmdlIiwNCj4g PiAgfTsNCj4gPiANCj4gPiAgc3RydWN0IG10a19kZHBfY29tcF9tYXRjaCB7DQo+ID4gQEAgLTM5 MSw2ICs0MDAsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZGRwX2NvbXBfbWF0Y2gNCj4g PiBtdGtfZGRwX21hdGNoZXNbRERQX0NPTVBPTkVOVF9JRF9NQVhdID0gew0KPiA+ICAgICAgICAg W0REUF9DT01QT05FTlRfRFNJMl0gICAgPSB7IE1US19EU0ksICAgICAgICAgICAgMiwgJmRkcF9k c2kNCj4gPiB9LA0KPiA+ICAgICAgICAgW0REUF9DT01QT05FTlRfRFNJM10gICAgPSB7IE1US19E U0ksICAgICAgICAgICAgMywgJmRkcF9kc2kNCj4gPiB9LA0KPiA+ICAgICAgICAgW0REUF9DT01Q T05FTlRfR0FNTUFdICAgPSB7IE1US19ESVNQX0dBTU1BLCAgICAgMCwNCj4gPiAmZGRwX2dhbW1h IH0sDQo+ID4gKyAgICAgICBbRERQX0NPTVBPTkVOVF9NRVJHRTBdICA9IHsgTVRLX0RJU1BfTUVS R0UsICAgICAwLA0KPiA+ICZkZHBfbWVyZ2UgfSwNCj4gPiArICAgICAgIFtERFBfQ09NUE9ORU5U X01FUkdFMV0gID0geyBNVEtfRElTUF9NRVJHRSwgICAgIDEsDQo+ID4gJmRkcF9tZXJnZSB9LA0K PiA+ICsgICAgICAgW0REUF9DT01QT05FTlRfTUVSR0UyXSAgPSB7IE1US19ESVNQX01FUkdFLCAg ICAgMiwNCj4gPiAmZGRwX21lcmdlIH0sDQo+ID4gKyAgICAgICBbRERQX0NPTVBPTkVOVF9NRVJH RTNdICA9IHsgTVRLX0RJU1BfTUVSR0UsICAgICAzLA0KPiA+ICZkZHBfbWVyZ2UgfSwNCj4gPiAr ICAgICAgIFtERFBfQ09NUE9ORU5UX01FUkdFNF0gID0geyBNVEtfRElTUF9NRVJHRSwgICAgIDQs DQo+ID4gJmRkcF9tZXJnZSB9LA0KPiA+ICsgICAgICAgW0REUF9DT01QT05FTlRfTUVSR0U1XSAg PSB7IE1US19ESVNQX01FUkdFLCAgICAgNSwNCj4gPiAmZGRwX21lcmdlIH0sDQo+ID4gICAgICAg ICBbRERQX0NPTVBPTkVOVF9PRDBdICAgICA9IHsgTVRLX0RJU1BfT0QsICAgICAgICAwLCAmZGRw X29kDQo+ID4gfSwNCj4gPiAgICAgICAgIFtERFBfQ09NUE9ORU5UX09EMV0gICAgID0geyBNVEtf RElTUF9PRCwgICAgICAgIDEsICZkZHBfb2QNCj4gPiB9LA0KPiA+ICAgICAgICAgW0REUF9DT01Q T05FTlRfT1ZMMF0gICAgPSB7IE1US19ESVNQX09WTCwgICAgICAgMCwgJmRkcF9vdmwNCj4gPiB9 LA0KPiA+IEBAIC01MjIsNiArNTM3LDcgQEAgaW50IG10a19kZHBfY29tcF9pbml0KHN0cnVjdCBk ZXZpY2Vfbm9kZSAqbm9kZSwNCj4gPiBzdHJ1Y3QgbXRrX2RkcF9jb21wICpjb21wLA0KPiA+ICAg ICAgICAgICAgIHR5cGUgPT0gTVRLX0RJU1BfQ09MT1IgfHwNCj4gPiAgICAgICAgICAgICB0eXBl ID09IE1US19ESVNQX0RTQyB8fA0KPiA+ICAgICAgICAgICAgIHR5cGUgPT0gTVRLX0RJU1BfR0FN TUEgfHwNCj4gPiArICAgICAgICAgICB0eXBlID09IE1US19ESVNQX01FUkdFIHx8DQo+ID4gICAg ICAgICAgICAgdHlwZSA9PSBNVEtfRElTUF9PVkwgfHwNCj4gPiAgICAgICAgICAgICB0eXBlID09 IE1US19ESVNQX09WTF8yTCB8fA0KPiA+ICAgICAgICAgICAgIHR5cGUgPT0gTVRLX0RJU1BfUFdN IHx8DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rk cF9jb21wLmgNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2RkcF9jb21w LmgNCj4gPiBpbmRleCA2NjFmYjYyMGUyNjYuLjBhZmQ3OGMwYmM5MiAxMDA2NDQNCj4gPiAtLS0g YS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oDQo+ID4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaA0KPiA+IEBAIC0zNSw2 ICszNSw3IEBAIGVudW0gbXRrX2RkcF9jb21wX3R5cGUgew0KPiA+ICAgICAgICAgTVRLX0RJU1Bf T0QsDQo+ID4gICAgICAgICBNVEtfRElTUF9CTFMsDQo+ID4gICAgICAgICBNVEtfRElTUF9EU0Ms DQo+ID4gKyAgICAgICBNVEtfRElTUF9NRVJHRSwNCj4gPiAgICAgICAgIE1US19ERFBfQ09NUF9U WVBFX01BWCwNCj4gPiAgfTsNCj4gPiANCj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJt L21lZGlhdGVrL210a19kcm1fZHJ2LmMNCj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9t dGtfZHJtX2Rydi5jDQo+ID4gaW5kZXggOTkwYTU0MDQ5YTdkLi4xMWMyNWRhZjA1ZDggMTAwNjQ0 DQo+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMNCj4gPiAr KysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuYw0KPiA+IEBAIC00NDgs NiArNDQ4LDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQNCj4gPiBtdGtfZGRw X2NvbXBfZHRfaWRzW10gPSB7DQo+ID4gICAgICAgICAgIC5kYXRhID0gKHZvaWQgKilNVEtfRElT UF9ESVRIRVIgfSwNCj4gPiAgICAgICAgIHsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ4MTk1 LWRpc3AtZHNjIiwNCj4gPiAgICAgICAgICAgLmRhdGEgPSAodm9pZCAqKU1US19ESVNQX0RTQyB9 LA0KPiA+ICsgICAgICAgeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxOTUtZGlzcC1tZXJn ZSIsDQo+ID4gKyAgICAgICAgIC5kYXRhID0gKHZvaWQgKilNVEtfRElTUF9NRVJHRSB9LA0KPiA+ ICAgICAgICAgeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxNzMtZGlzcC11Zm9lIiwNCj4g PiAgICAgICAgICAgLmRhdGEgPSAodm9pZCAqKU1US19ESVNQX1VGT0UgfSwNCj4gPiAgICAgICAg IHsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQyNzAxLWRzaSIsDQo+ID4gQEAgLTU2Niw2ICs1 NjgsNyBAQCBzdGF0aWMgaW50IG10a19kcm1fcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZQ0K PiA+ICpwZGV2KQ0KPiA+ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQ X0NPTE9SIHx8DQo+ID4gICAgICAgICAgICAgICAgICAgICBjb21wX3R5cGUgPT0gTVRLX0RJU1Bf RFNDIHx8DQo+ID4gICAgICAgICAgICAgICAgICAgICBjb21wX3R5cGUgPT0gTVRLX0RJU1BfR0FN TUEgfHwNCj4gPiArICAgICAgICAgICAgICAgICAgIGNvbXBfdHlwZSA9PSBNVEtfRElTUF9NRVJH RSB8fA0KPiA+ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQX09WTCB8 fA0KPiA+ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQX09WTF8yTCB8 fA0KPiA+ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19ESVNQX1JETUEgfHwN Cj4gPiBAQCAtNjY3LDYgKzY3MCw3IEBAIHN0YXRpYyBzdHJ1Y3QgcGxhdGZvcm1fZHJpdmVyICog Y29uc3QNCj4gPiBtdGtfZHJtX2RyaXZlcnNbXSA9IHsNCj4gPiAgICAgICAgICZtdGtfZGlzcF9j b2xvcl9kcml2ZXIsDQo+ID4gICAgICAgICAmbXRrX2Rpc3BfZHNjX2RyaXZlciwNCj4gPiAgICAg ICAgICZtdGtfZGlzcF9nYW1tYV9kcml2ZXIsDQo+ID4gKyAgICAgICAmbXRrX2Rpc3BfbWVyZ2Vf ZHJpdmVyLA0KPiA+ICAgICAgICAgJm10a19kaXNwX292bF9kcml2ZXIsDQo+ID4gICAgICAgICAm bXRrX2Rpc3BfcmRtYV9kcml2ZXIsDQo+ID4gICAgICAgICAmbXRrX2RwaV9kcml2ZXIsDQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5oDQo+ID4g Yi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kcnYuaA0KPiA+IGluZGV4IDhiNzIy MzMwZWY3ZC4uYzRkODAyYTQzNTMxIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9t ZWRpYXRlay9tdGtfZHJtX2Rydi5oDQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVr L210a19kcm1fZHJ2LmgNCj4gPiBAQCAtNTIsNiArNTIsNyBAQCBleHRlcm4gc3RydWN0IHBsYXRm b3JtX2RyaXZlcg0KPiA+IG10a19kaXNwX2dhbW1hX2RyaXZlcjsNCj4gPiAgZXh0ZXJuIHN0cnVj dCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2Rpc3Bfb3ZsX2RyaXZlcjsNCj4gPiAgZXh0ZXJuIHN0cnVj dCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2Rpc3BfcmRtYV9kcml2ZXI7DQo+ID4gIGV4dGVybiBzdHJ1 Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX2RzY19kcml2ZXI7DQo+ID4gK2V4dGVybiBzdHJ1 Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19kaXNwX21lcmdlX2RyaXZlcjsNCj4gDQo+IEFscGhhYmV0 aWMgb3JkZXIuDQoNCk9LLCBJJ2xsIGZpeCBpdC4NCj4gDQo+IFJlZ2FyZHMsDQo+IENodW4tS3Vh bmcuDQo+IA0KPiA+ICBleHRlcm4gc3RydWN0IHBsYXRmb3JtX2RyaXZlciBtdGtfZHBpX2RyaXZl cjsNCj4gPiAgZXh0ZXJuIHN0cnVjdCBwbGF0Zm9ybV9kcml2ZXIgbXRrX2RzaV9kcml2ZXI7DQo+ ID4gDQo+ID4gLS0NCj4gPiAyLjE4LjANCj4gPiANClJlZ2FyZHMsDQpKYXNvbi1KSCBMaW4NCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1r ZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpo dHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJu ZWwK