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=-20.6 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,MENTIONS_GIT_HOSTING,SPF_HELO_NONE,SPF_PASS, UNPARSEABLE_RELAY,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 F2BD1C433F5 for ; Thu, 16 Sep 2021 03:20:13 +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 B2642611C4 for ; Thu, 16 Sep 2021 03:20:13 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org B2642611C4 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=5a4wBEUl8aRIu4lZdITJGZ5HrNfgfOX+FBwaofCNJeQ=; b=xa4r9J9iREgwTT 7QAVY5zLoJgUJLVyLwjMk7GhcRxAj1cB402u/8vTjHndwDyTC5ABhBz5ZcOy+OgduUGsJj4p/CWAi AwFj5EXpWeVGbgFPC/Vy20OVCR5/w+kcm4JSXFylKf29HKubIUg4ohQV1HmwIPDeOvvQY2FdvU8UH wzK6hH/fd0NCX4OFbYy2u13mjVVDjjufBGeOet7nGVQ8Wn4Sv3Wj/eXMKrRxQwPfRslsEFEBi8vsQ rtLnZNgQQVCHW0xbSFKi+VeJyoRFCiN8y6FdY7BaTltVo2+nk1QpJp8dmHVuE3WJpLXwc/ht4b580 +5EMEP2LlVYuo2DHrKZQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mQhul-00AFtr-5Q; Thu, 16 Sep 2021 03:18:19 +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 1mQhuf-00AFsY-7Y; Thu, 16 Sep 2021 03:18:15 +0000 X-UUID: c5cc9637016a4e53b1e0f9f24790a00d-20210915 X-UUID: c5cc9637016a4e53b1e0f9f24790a00d-20210915 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 30360529; Wed, 15 Sep 2021 20:18:10 -0700 Received: from mtkmbs07n1.mediatek.inc (172.21.101.16) by MTKMBS62N2.mediatek.inc (172.29.193.42) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Wed, 15 Sep 2021 20:18:08 -0700 Received: from MTKCAS06.mediatek.inc (172.21.101.30) by mtkmbs07n1.mediatek.inc (172.21.101.16) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 16 Sep 2021 11:18:07 +0800 Received: from mtksdccf07 (172.21.84.99) by MTKCAS06.mediatek.inc (172.21.101.73) with Microsoft SMTP Server id 15.0.1497.2 via Frontend Transport; Thu, 16 Sep 2021 11:18:07 +0800 Message-ID: <5ef170ce3ffd9be2ad0f19bed3c468e1d0d5ae91.camel@mediatek.com> Subject: Re: [PATCH v5 11/16] drm/mediatek: add display MDP RDMA support for MT8195 From: Nancy.Lin To: Chun-Kuang Hu CC: CK Hu , Philipp Zabel , "David Airlie" , Daniel Vetter , Rob Herring , Matthias Brugger , "jason-jh . lin" , Yongqiang Niu , DRI Development , "moderated list:ARM/Mediatek SoC support" , DTML , linux-kernel , Linux ARM , , srv_heupstream Date: Thu, 16 Sep 2021 11:18:07 +0800 In-Reply-To: References: <20210906071539.12953-1-nancy.lin@mediatek.com> <20210906071539.12953-12-nancy.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-20210915_201813_346409_345E4610 X-CRM114-Status: GOOD ( 27.93 ) 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 SGkgQ2h1bi1LdWFuZywKClRoYW5rcyBmb3IgdGhlIHJldmlldy4KCk9uIFRodSwgMjAyMS0wOS0w OSBhdCAwNzo1NCArMDgwMCwgQ2h1bi1LdWFuZyBIdSB3cm90ZToKPiBIaSwgTmFuY3k6Cj4gCj4g TmFuY3kuTGluIDxuYW5jeS5saW5AbWVkaWF0ZWsuY29tPiDmlrwgMjAyMeW5tDnmnIg25pelIOmA seS4gCDkuIvljYgzOjE15a+r6YGT77yaCj4gPiAKPiA+IEFkZCBNRFBfUkRNQSBkcml2ZXIgZm9y IE1UODE5NS4gTURQX1JETUEgaXMgdGhlIERNQSBlbmdpbmUgb2YKPiA+IHRoZSBvdmxfYWRhcHRv ciBjb21wb25lbnQuCj4gPiAKPiA+IFNpZ25lZC1vZmYtYnk6IE5hbmN5LkxpbiA8bmFuY3kubGlu QG1lZGlhdGVrLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtl ZmlsZSAgICAgICB8ICAgMyArLQo+ID4gIGRyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlz cF9kcnYuaCB8ICAgNyArCj4gPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRt YS5jIHwgMzAxCj4gPiArKysrKysrKysrKysrKysrKysrKysrKysKPiA+ICBkcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX21kcF9yZG1hLmggfCAgMzcgKysrCj4gPiAgNCBmaWxlcyBjaGFuZ2Vk LCAzNDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX21kcF9yZG1hLmMKPiA+ICBjcmVhdGUgbW9k ZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRtYS5oCj4gPiAKPiA+ IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvTWFrZWZpbGUKPiA+IGIvZHJp dmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlCj4gPiBpbmRleCBhMzhlODhlODJkMTIuLjZl NjA0YTkzM2VkMCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9NYWtl ZmlsZQo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL01ha2VmaWxlCj4gPiBAQCAt MTMsNyArMTMsOCBAQCBtZWRpYXRlay1kcm0teSA6PSBtdGtfZGlzcF9hYWwubyBcCj4gPiAgICAg ICAgICAgICAgICAgICBtdGtfZHJtX2dlbS5vIFwKPiA+ICAgICAgICAgICAgICAgICAgIG10a19k cm1fcGxhbmUubyBcCj4gPiAgICAgICAgICAgICAgICAgICBtdGtfZHNpLm8gXAo+ID4gLSAgICAg ICAgICAgICAgICAgbXRrX2RwaS5vCj4gPiArICAgICAgICAgICAgICAgICBtdGtfZHBpLm8gXAo+ ID4gKyAgICAgICAgICAgICAgICAgbXRrX21kcF9yZG1hLm8KPiA+IAo+ID4gIG9iai0kKENPTkZJ R19EUk1fTUVESUFURUspICs9IG1lZGlhdGVrLWRybS5vCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2Rpc3BfZHJ2LmgKPiA+IGIvZHJpdmVycy9ncHUv ZHJtL21lZGlhdGVrL210a19kaXNwX2Rydi5oCj4gPiBpbmRleCBhMzNiMTNmZTJiNmUuLmIzYTM3 MmNhYjBiZCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZGlz cF9kcnYuaAo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kaXNwX2Rydi5o Cj4gPiBAQCAtOCw2ICs4LDcgQEAKPiA+IAo+ID4gICNpbmNsdWRlIDxsaW51eC9zb2MvbWVkaWF0 ZWsvbXRrLWNtZHEuaD4KPiA+ICAjaW5jbHVkZSAibXRrX2RybV9wbGFuZS5oIgo+ID4gKyNpbmNs dWRlICJtdGtfbWRwX3JkbWEuaCIKPiA+IAo+ID4gIGludCBtdGtfYWFsX2Nsa19lbmFibGUoc3Ry dWN0IGRldmljZSAqZGV2KTsKPiA+ICB2b2lkIG10a19hYWxfY2xrX2Rpc2FibGUoc3RydWN0IGRl dmljZSAqZGV2KTsKPiA+IEBAIC0xMDYsNCArMTA3LDEwIEBAIHZvaWQgbXRrX3JkbWFfZW5hYmxl X3ZibGFuayhzdHJ1Y3QgZGV2aWNlCj4gPiAqZGV2LAo+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHZvaWQgKnZibGFua19jYl9kYXRhKTsKPiA+ICB2b2lkIG10a19yZG1hX2Rpc2FibGVf dmJsYW5rKHN0cnVjdCBkZXZpY2UgKmRldik7Cj4gPiAKPiA+ICtpbnQgbXRrX21kcF9yZG1hX2Ns a19lbmFibGUoc3RydWN0IGRldmljZSAqZGV2KTsKPiA+ICt2b2lkIG10a19tZHBfcmRtYV9jbGtf ZGlzYWJsZShzdHJ1Y3QgZGV2aWNlICpkZXYpOwo+ID4gK3ZvaWQgbXRrX21kcF9yZG1hX3N0YXJ0 KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGNtZHFfcGt0Cj4gPiAqY21kcV9wa3QpOwo+ID4g K3ZvaWQgbXRrX21kcF9yZG1hX3N0b3Aoc3RydWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QgY21kcV9w a3QKPiA+ICpjbWRxX3BrdCk7Cj4gPiArdm9pZCBtdGtfbWRwX3JkbWFfY29uZmlnKHN0cnVjdCBk ZXZpY2UgKmRldiwgc3RydWN0Cj4gPiBtdGtfbWRwX3JkbWFfY2ZnICpjZmcsCj4gPiArICAgICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGNtZHFfcGt0ICpjbWRxX3BrdCk7Cj4gPiAgI2VuZGlm Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRtYS5j Cj4gPiBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuYwo+ID4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4uMDUyNDM0ZDk2MGI5Cj4gPiAt LS0gL2Rldi9udWxsCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX21kcF9y ZG1hLmMKPiA+IEBAIC0wLDAgKzEsMzAxIEBACj4gPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZp ZXI6IEdQTC0yLjAtb25seQo+ID4gKy8qCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDIxIE1lZGlh VGVrIEluYy4KPiA+ICsgKi8KPiA+ICsKPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4K PiA+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJl c3MuaD4KPiA+ICsjaW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+Cj4gPiArI2luY2x1ZGUgPGxp bnV4L3BsYXRmb3JtX2RldmljZS5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9wbV9ydW50aW1lLmg+ Cj4gPiArI2luY2x1ZGUgPGxpbnV4L3NvYy9tZWRpYXRlay9tdGstY21kcS5oPgo+ID4gKwo+ID4g KyNpbmNsdWRlICJtdGtfZHJtX2Rydi5oIgo+ID4gKyNpbmNsdWRlICJtdGtfZGlzcF9kcnYuaCIK PiA+ICsjaW5jbHVkZSAibXRrX21kcF9yZG1hLmgiCj4gPiArCj4gPiArI2RlZmluZQo+ID4gTURQ X1JETUFfRU4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDAw Cj4gPiArICAgICAgICNkZWZpbmUgRkxEX1JPVF9FTkFCTEUgICAgICAgICAgICAgICAgICAgICAg ICAgICAgQklUKDApCj4gCj4gTWF5YmUgbXkgZGVzY3JpcHRpb24gaXMgbm90IGdvb2QsIEkgbGlr ZSB0aGUgc3R5bGUgb2YgcmRtYSBkcml2ZXIKPiBbMV0uCj4gCj4gWzFdIAo+IGh0dHBzOi8vdXJs ZGVmZW5zZS5jb20vdjMvX19odHRwczovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgva2Vy bmVsL2dpdC90b3J2YWxkcy9saW51eC5naXQvdHJlZS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2Rpc3BfcmRtYS5jP2g9djUuMTRfXzshIUNUUk5LQTl3TWcwQVJidyEwV0NtTExxWjJJY2x2 akEtTkx0aEotUEd1Qnl5empfSW1Yb2VOaDJtdlo3SXM5TkZMVGIzN1B6cjNqcjRmSzRqJAo+ICAK PiAKT0ssIEkgd2lsbCBjaGFuZ2UgdGhlIGFsaWdubWVudC4KCj4gPiArCj4gPiArI2RlZmluZQo+ ID4gTURQX1JETUFfUkVTRVQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MDA4Cj4gPiArCj4gPiArI2RlZmluZQo+ID4gTURQX1JETUFfQ09OICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDIwCj4gPiArICAgICAgICNkZWZpbmUgRkxE X09VVFBVVF8xMEIgICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUKDUpCj4gPiArICAgICAg ICNkZWZpbmUgRkxEX1NJTVBMRV9NT0RFICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUKDQp Cj4gPiArCj4gPiArI2RlZmluZQo+ID4gTURQX1JETUFfR01DSUZfQ09OICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDB4MDI4Cj4gPiArICAgICAgICNkZWZpbmUgRkxEX0NPTU1B TkRfRElWICAgICAgICAgICAgICAgICAgICAgICAgICAgQklUKDApCj4gPiArICAgICAgICNkZWZp bmUgRkxEX0VYVF9QUkVVTFRSQV9FTiAgICAgICAgICAgICAgICAgICAgICAgQklUKDMpCj4gPiAr ICAgICAgICNkZWZpbmUKPiA+IEZMRF9SRF9SRVFfVFlQRSAgICAgICAgICAgICAgICAgICAgICAg ICAgIEdFTk1BU0soNywgNCkKPiA+ICsgICAgICAgICAgICAgICAjZGVmaW5lIFZBTF9SRF9SRVFf VFlQRV9CVVJTVF84X0FDQ0VTUyAgICA3Cj4gPiArICAgICAgICNkZWZpbmUKPiA+IEZMRF9VTFRS QV9FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFTk1BU0soMTMsIDEyKQo+ID4gKyAg ICAgICAgICAgICAgICNkZWZpbmUgVkFMX1VMVFJBX0VOX0VOQUJMRSAgICAgICAgICAgICAgIDEK PiA+ICsgICAgICAgI2RlZmluZQo+ID4gRkxEX1BSRV9VTFRSQV9FTiAgICAgICAgICAgICAgICAg ICAgICAgICAgR0VOTUFTSygxNywgMTYpCj4gPiArICAgICAgICAgICAgICAgI2RlZmluZSBWQUxf UFJFX1VMVFJBX0VOX0VOQUJMRSAgICAgICAgICAgMQo+ID4gKyAgICAgICAjZGVmaW5lIEZMRF9F WFRfVUxUUkFfRU4gICAgICAgICAgICAgICAgICAgICAgICAgIEJJVCgxOCkKPiA+ICsKPiA+ICsj ZGVmaW5lCj4gPiBNRFBfUkRNQV9TUkNfQ09OICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMzAKPiA+ICsgICAgICAgI2RlZmluZSBGTERfT1VUUFVUX0FSR0IgICAgICAg ICAgICAgICAgICAgICAgICAgICBCSVQoMjUpCj4gPiArICAgICAgICNkZWZpbmUKPiA+IEZMRF9C SVRfTlVNQkVSICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFTk1BU0soMTksIDE4KQo+ID4g KyAgICAgICAjZGVmaW5lIEZMRF9VTklGT1JNX0NPTkZJRyAgICAgICAgICAgICAgICAgICAgICAg IEJJVCgxNykKPiA+ICsgICAgICAgI2RlZmluZSBGTERfU1dBUCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBCSVQoMTQpCj4gPiArICAgICAgICNkZWZpbmUKPiA+IEZMRF9TUkNfRk9S TUFUICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFTk1BU0soMywgMCkKPiA+ICsKPiA+ICsj ZGVmaW5lCj4gPiBNRFBfUkRNQV9DT01QX0NPTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgMHgwMzgKPiA+ICsgICAgICAgI2RlZmluZSBGTERfQUZCQ19FTiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBCSVQoMjIpCj4gPiArICAgICAgICNkZWZpbmUgRkxEX0FGQkNf WVVWX1RSQU5TRk9STSAgICAgICAgICAgICAgICAgICAgQklUKDIxKQo+ID4gKyAgICAgICAjZGVm aW5lIEZMRF9VRkJEQ19FTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJJVCgxMikKPiA+ ICsKPiA+ICsjZGVmaW5lCj4gPiBNRFBfUkRNQV9NRl9CS0dEX1NJWkVfSU5fQllURSAgICAgICAg ICAgICAgICAgICAgICAgICAgMHgwNjAKPiA+ICsgICAgICAgI2RlZmluZQo+ID4gRkxEX01GX0JL R0RfV0IgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VOTUFTSygyMiwgMCkKPiA+ICsKPiA+ ICsjZGVmaW5lCj4gPiBNRFBfUkRNQV9NRl9TUkNfU0laRSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMHgwNzAKPiA+ICsgICAgICAgI2RlZmluZQo+ID4gRkxEX01GX1NSQ19IICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgR0VOTUFTSygzMCwgMTYpCj4gPiArICAgICAgICNk ZWZpbmUKPiA+IEZMRF9NRl9TUkNfVyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFTk1B U0soMTQsIDApCj4gPiArCj4gPiArI2RlZmluZQo+ID4gTURQX1JETUFfTUZfQ0xJUF9TSVpFICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MDc4Cj4gPiArICAgICAgICNkZWZpbmUK PiA+IEZMRF9NRl9DTElQX0ggICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdFTk1BU0soMzAs IDE2KQo+ID4gKyAgICAgICAjZGVmaW5lCj4gPiBGTERfTUZfQ0xJUF9XICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBHRU5NQVNLKDE0LCAwKQo+ID4gKwo+ID4gKyNkZWZpbmUKPiA+IE1EUF9S RE1BX1RBUkdFVF9MSU5FICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAweDBhMAo+ ID4gKyAgICAgICAjZGVmaW5lCj4gPiBGTERfTElORV9USFJFU0hPTEQgICAgICAgICAgICAgICAg ICAgICAgICBHRU5NQVNLKDMxLCAxNykKPiA+ICsgICAgICAgI2RlZmluZSBGTERfVEFSR0VUX0xJ TkVfRU4gICAgICAgICAgICAgICAgICAgICAgICBCSVQoMTYpCj4gPiArCj4gPiArI2RlZmluZQo+ ID4gTURQX1JETUFfU1JDX09GRlNFVF8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IDB4MTE4Cj4gPiArICAgICAgICNkZWZpbmUKPiA+IEZMRF9TUkNfT0ZGU0VUXzAgICAgICAgICAg ICAgICAgICAgICAgICAgIEdFTk1BU0soMzEsIDApCj4gPiArCj4gPiArI2RlZmluZQo+ID4gTURQ X1JETUFfVFJBTlNGT1JNXzAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4MjAw Cj4gPiArICAgICAgICNkZWZpbmUKPiA+IEZMRF9JTlRfTUFUUklYX1NFTCAgICAgICAgICAgICAg ICAgICAgICAgIEdFTk1BU0soMjcsIDIzKQo+ID4gKyAgICAgICAjZGVmaW5lIEZMRF9UUkFOU19F TiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJJVCgxNikKPiA+ICsKPiA+ICsjZGVmaW5l Cj4gPiBNRFBfUkRNQV9TUkNfQkFTRV8wICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMHhmMDAKPiA+ICsgICAgICAgI2RlZmluZQo+ID4gRkxEX1NSQ19CQVNFXzAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgR0VOTUFTSygzMSwgMCkKPiA+ICsKPiA+ICsjZGVmaW5lIFJETUFf SU5QVVRfU1dBUCAgICAgICAgICAgICAgICBCSVQoMTQpCj4gPiArI2RlZmluZSBSRE1BX0lOUFVU XzEwQklUICAgICAgIEJJVCgxOCkKPiA+ICsKPiA+ICtlbnVtIHJkbWFfZm9ybWF0IHsKPiA+ICsg ICAgICAgUkRNQV9JTlBVVF9GT1JNQVRfUkdCNTY1ID0gMCwKPiA+ICsgICAgICAgUkRNQV9JTlBV VF9GT1JNQVRfUkdCODg4ID0gMSwKPiA+ICsgICAgICAgUkRNQV9JTlBVVF9GT1JNQVRfUkdCQTg4 ODggPSAyLAo+ID4gKyAgICAgICBSRE1BX0lOUFVUX0ZPUk1BVF9BUkdCODg4OCA9IDMsCj4gPiAr ICAgICAgIFJETUFfSU5QVVRfRk9STUFUX1VZVlkgPSA0LAo+ID4gKyAgICAgICBSRE1BX0lOUFVU X0ZPUk1BVF9ZVVkyID0gNSwKPiA+ICsgICAgICAgUkRNQV9JTlBVVF9GT1JNQVRfWTggPSA3LAo+ ID4gKyAgICAgICBSRE1BX0lOUFVUX0ZPUk1BVF9ZVjEyID0gOCwKPiA+ICsgICAgICAgUkRNQV9J TlBVVF9GT1JNQVRfVVlWWV8zUEwgPSA5LAo+ID4gKyAgICAgICBSRE1BX0lOUFVUX0ZPUk1BVF9O VjEyID0gMTIsCj4gPiArICAgICAgIFJETUFfSU5QVVRfRk9STUFUX1VZVllfMlBMID0gMTMsCj4g PiArICAgICAgIFJETUFfSU5QVVRfRk9STUFUX1k0MTAgPSAxNAo+ID4gK307Cj4gPiArCj4gPiAr c3RydWN0IG10a19tZHBfcmRtYSB7Cj4gPiArICAgICAgIHZvaWQgX19pb21lbSAqcmVnczsKPiA+ ICsgICAgICAgc3RydWN0IGNsayAqY2xrOwo+ID4gKyAgICAgICBzdHJ1Y3QgY21kcV9jbGllbnRf cmVnICAgICAgICAgIGNtZHFfcmVnOwo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIHVuc2lnbmVk IGludCByZG1hX2ZtdF9jb252ZXJ0KHVuc2lnbmVkIGludCBmbXQpCj4gPiArewo+ID4gKyAgICAg ICBzd2l0Y2ggKGZtdCkgewo+ID4gKyAgICAgICBkZWZhdWx0Ogo+ID4gKyAgICAgICBjYXNlIERS TV9GT1JNQVRfUkdCNTY1Ogo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZP Uk1BVF9SR0I1NjU7Cj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9CR1I1NjU6Cj4gPiArICAg ICAgICAgICAgICAgcmV0dXJuIFJETUFfSU5QVVRfRk9STUFUX1JHQjU2NSB8IFJETUFfSU5QVVRf U1dBUDsKPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1JHQjg4ODoKPiA+ICsgICAgICAgICAg ICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdCODg4Owo+ID4gKyAgICAgICBjYXNlIERS TV9GT1JNQVRfQkdSODg4Ogo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZP Uk1BVF9SR0I4ODggfCBSRE1BX0lOUFVUX1NXQVA7Cj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1B VF9SR0JYODg4ODoKPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFUX1JHQkE4ODg4Ogo+ID4gKyAg ICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVUX0ZPUk1BVF9BUkdCODg4ODsKPiA+ICsgICAg ICAgY2FzZSBEUk1fRk9STUFUX0JHUlg4ODg4Ogo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRf QkdSQTg4ODg6Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIFJETUFfSU5QVVRfRk9STUFUX0FS R0I4ODg4IHwKPiA+IFJETUFfSU5QVVRfU1dBUDsKPiA+ICsgICAgICAgY2FzZSBEUk1fRk9STUFU X1hSR0I4ODg4Ogo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfQVJHQjg4ODg6Cj4gPiArICAg ICAgICAgICAgICAgcmV0dXJuIFJETUFfSU5QVVRfRk9STUFUX1JHQkE4ODg4Owo+ID4gKyAgICAg ICBjYXNlIERSTV9GT1JNQVRfWEJHUjg4ODg6Cj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1BVF9B QkdSODg4ODoKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfUkdC QTg4ODggfAo+ID4gUkRNQV9JTlBVVF9TV0FQOwo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRf QUJHUjIxMDEwMTA6Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIFJETUFfSU5QVVRfRk9STUFU X1JHQkE4ODg4IHwgUkRNQV9JTlBVVF9TV0FQCj4gPiB8Cj4gPiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFJETUFfSU5QVVRfMTBCSVQ7Cj4gPiArICAgICAgIGNhc2UgRFJNX0ZPUk1B VF9BUkdCMjEwMTAxMDoKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JN QVRfUkdCQTg4ODggfAo+ID4gUkRNQV9JTlBVVF8xMEJJVDsKPiA+ICsgICAgICAgY2FzZSBEUk1f Rk9STUFUX1JHQkExMDEwMTAyOgo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVU X0ZPUk1BVF9BUkdCODg4OCB8IFJETUFfSU5QVVRfU1dBUAo+ID4gfAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBSRE1BX0lOUFVUXzEwQklUOwo+ID4gKyAgICAgICBjYXNlIERS TV9GT1JNQVRfQkdSQTEwMTAxMDI6Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIFJETUFfSU5Q VVRfRk9STUFUX0FSR0I4ODg4IHwKPiA+IFJETUFfSU5QVVRfMTBCSVQ7Cj4gPiArICAgICAgIGNh c2UgRFJNX0ZPUk1BVF9VWVZZOgo+ID4gKyAgICAgICAgICAgICAgIHJldHVybiBSRE1BX0lOUFVU X0ZPUk1BVF9VWVZZOwo+ID4gKyAgICAgICBjYXNlIERSTV9GT1JNQVRfWVVZVjoKPiA+ICsgICAg ICAgICAgICAgICByZXR1cm4gUkRNQV9JTlBVVF9GT1JNQVRfWVVZMjsKPiA+ICsgICAgICAgfQo+ ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZCBtdGtfbWRwX3JkbWFfZmlmb19jb25maWcoc3Ry dWN0IGRldmljZSAqZGV2LCBzdHJ1Y3QKPiA+IGNtZHFfcGt0ICpjbWRxX3BrdCkKPiA+ICt7Cj4g PiArICAgICAgIHN0cnVjdCBtdGtfbWRwX3JkbWEgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2 KTsKPiA+ICsKPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBGTERfRVhU X1VMVFJBX0VOIHwKPiA+IFZBTF9QUkVfVUxUUkFfRU5fRU5BQkxFIDw8IDE2IHwKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgIFZBTF9VTFRSQV9FTl9FTkFCTEUgPDwgMTIgfAo+ID4gVkFM X1JEX1JFUV9UWVBFX0JVUlNUXzhfQUNDRVNTIDw8IDQgfAo+ID4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgRkxEX0VYVF9QUkVVTFRSQV9FTiB8IEZMRF9DT01NQU5EX0RJViwKPiA+ICZwcml2 LT5jbWRxX3JlZywKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIHByaXYtPnJlZ3MsIE1E UF9SRE1BX0dNQ0lGX0NPTiwKPiA+IEZMRF9FWFRfVUxUUkFfRU4gfAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgRkxEX1BSRV9VTFRSQV9FTiB8IEZMRF9VTFRSQV9FTiB8Cj4gPiBGTERf UkRfUkVRX1RZUEUgfAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgRkxEX0VYVF9QUkVV TFRSQV9FTiB8IEZMRF9DT01NQU5EX0RJVik7Cj4gPiArfQo+ID4gKwo+ID4gK3ZvaWQgbXRrX21k cF9yZG1hX3N0YXJ0KHN0cnVjdCBkZXZpY2UgKmRldiwgc3RydWN0IGNtZHFfcGt0Cj4gPiAqY21k cV9wa3QpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX21kcF9yZG1hICpwcml2ID0gZGV2 X2dldF9kcnZkYXRhKGRldik7Cj4gPiArCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhj bWRxX3BrdCwgRkxEX1JPVF9FTkFCTEUsICZwcml2LQo+ID4gPmNtZHFfcmVnLAo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgcHJpdi0+cmVncywgTURQX1JETUFfRU4sCj4gPiBGTERfUk9U X0VOQUJMRSk7Cj4gPiArfQo+ID4gKwo+ID4gK3ZvaWQgbXRrX21kcF9yZG1hX3N0b3Aoc3RydWN0 IGRldmljZSAqZGV2LCBzdHJ1Y3QgY21kcV9wa3QKPiA+ICpjbWRxX3BrdCkKPiA+ICt7Cj4gPiAr ICAgICAgIHN0cnVjdCBtdGtfbWRwX3JkbWEgKnByaXYgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsK PiA+ICsKPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCAwLCAmcHJpdi0+ Y21kcV9yZWcsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBwcml2LT5yZWdzLCBNRFBf UkRNQV9FTiwKPiA+IEZMRF9ST1RfRU5BQkxFKTsKPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZShj bWRxX3BrdCwgMSwgJnByaXYtPmNtZHFfcmVnLCBwcml2LT5yZWdzLAo+ID4gTURQX1JETUFfUkVT RVQpOwo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlKGNtZHFfcGt0LCAwLCAmcHJpdi0+Y21kcV9y ZWcsIHByaXYtPnJlZ3MsCj4gPiBNRFBfUkRNQV9SRVNFVCk7Cj4gPiArfQo+ID4gKwo+ID4gK3Zv aWQgbXRrX21kcF9yZG1hX2NvbmZpZyhzdHJ1Y3QgZGV2aWNlICpkZXYsIHN0cnVjdAo+ID4gbXRr X21kcF9yZG1hX2NmZyAqY2ZnLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBj bWRxX3BrdCAqY21kcV9wa3QpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3QgbXRrX21kcF9yZG1h ICpwcml2ID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4gPiArICAgICAgIGNvbnN0IHN0cnVjdCBk cm1fZm9ybWF0X2luZm8gKmZtdF9pbmZvID0KPiA+IGRybV9mb3JtYXRfaW5mbyhjZmctPmZtdCk7 Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCBzcmNfcGl0Y2hfeSA9IGNmZy0+cGl0Y2g7Cj4gPiAr ICAgICAgIHVuc2lnbmVkIGludCBicHBfeSA9IGZtdF9pbmZvLT5jcHBbMF0gKiA4Owo+ID4gKyAg ICAgICB1bnNpZ25lZCBpbnQgb2Zmc2V0X3kgPSAwOwo+ID4gKwo+ID4gKyAgICAgICBtdGtfbWRw X3JkbWFfZmlmb19jb25maWcoZGV2LCBjbWRxX3BrdCk7Cj4gPiArCj4gPiArICAgICAgIG10a19k ZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgRkxEX1VOSUZPUk1fQ09ORklHLCAmcHJpdi0KPiA+ID5j bWRxX3JlZywgcHJpdi0+cmVncywKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgIE1EUF9S RE1BX1NSQ19DT04sIEZMRF9VTklGT1JNX0NPTkZJRyk7Cj4gPiArICAgICAgIG10a19kZHBfd3Jp dGVfbWFzayhjbWRxX3BrdCwgcmRtYV9mbXRfY29udmVydChjZmctPmZtdCksCj4gPiAmcHJpdi0+ Y21kcV9yZWcsIHByaXYtPnJlZ3MsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBNRFBf UkRNQV9TUkNfQ09OLCBGTERfU1dBUCB8Cj4gPiBGTERfU1JDX0ZPUk1BVCB8IEZMRF9CSVRfTlVN QkVSKTsKPiA+ICsKPiA+ICsgICAgICAgaWYgKCFjZmctPmNzY19lbmFibGUgJiYgZm10X2luZm8t Pmhhc19hbHBoYSkKPiA+ICsgICAgICAgICAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9w a3QsIEZMRF9PVVRQVVRfQVJHQiwKPiA+ICZwcml2LT5jbWRxX3JlZywKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcHJpdi0+cmVncywgTURQX1JETUFfU1JDX0NPTiwKPiA+ IEZMRF9PVVRQVVRfQVJHQik7Cj4gPiArICAgICAgIGVsc2UKPiA+ICsgICAgICAgICAgICAgICBt dGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIDAsICZwcml2LT5jbWRxX3JlZywKPiA+IHByaXYt PnJlZ3MsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1EUF9SRE1BX1NS Q19DT04sCj4gPiBGTERfT1VUUFVUX0FSR0IpOwo+ID4gKwo+ID4gKyAgICAgICBtdGtfZGRwX3dy aXRlX21hc2soY21kcV9wa3QsIGNmZy0+YWRkcjAsICZwcml2LT5jbWRxX3JlZywKPiA+IHByaXYt PnJlZ3MsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBNRFBfUkRNQV9TUkNfQkFTRV8w LCBGTERfU1JDX0JBU0VfMCk7Cj4gPiArCj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhj bWRxX3BrdCwgc3JjX3BpdGNoX3ksICZwcml2LT5jbWRxX3JlZywKPiA+IHByaXYtPnJlZ3MsCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICBNRFBfUkRNQV9NRl9CS0dEX1NJWkVfSU5fQllU RSwKPiA+IEZMRF9NRl9CS0dEX1dCKTsKPiA+ICsKPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9t YXNrKGNtZHFfcGt0LCAwLCAmcHJpdi0+Y21kcV9yZWcsIHByaXYtCj4gPiA+cmVncywgTURQX1JE TUFfQ09NUF9DT04sCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBGTERfQUZCQ19ZVVZf VFJBTlNGT1JNIHwgRkxEX1VGQkRDX0VOIHwKPiA+IEZMRF9BRkJDX0VOKTsKPiA+ICsgICAgICAg bXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBGTERfT1VUUFVUXzEwQiwgJnByaXYtCj4gPiA+ Y21kcV9yZWcsIHByaXYtPnJlZ3MsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBNRFBf UkRNQV9DT04sIEZMRF9PVVRQVVRfMTBCKTsKPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNr KGNtZHFfcGt0LCBGTERfU0lNUExFX01PREUsICZwcml2LQo+ID4gPmNtZHFfcmVnLCBwcml2LT5y ZWdzLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQX1JETUFfQ09OLCBGTERfU0lN UExFX01PREUpOwo+ID4gKyAgICAgICBtdGtfZGRwX3dyaXRlX21hc2soY21kcV9wa3QsIGNmZy0+ Y3NjX2VuYWJsZSA8PCAxNiwgJnByaXYtCj4gPiA+Y21kcV9yZWcsIHByaXYtPnJlZ3MsCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICBNRFBfUkRNQV9UUkFOU0ZPUk1fMCwgRkxEX1RSQU5T X0VOKTsKPiA+ICsgICAgICAgbXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBjZmctPnByb2Zp bGUgPDwgMjMsICZwcml2LQo+ID4gPmNtZHFfcmVnLCBwcml2LT5yZWdzLAo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICAgICAgTURQX1JETUFfVFJBTlNGT1JNXzAsCj4gPiBGTERfSU5UX01BVFJJ WF9TRUwpOwo+ID4gKwo+ID4gKyAgICAgICBvZmZzZXRfeSAgPSAoY2ZnLT54X2xlZnQgKiBicHBf eSA+PiAzKSArIGNmZy0+eV90b3AgKgo+ID4gc3JjX3BpdGNoX3k7Cj4gPiArCj4gPiArICAgICAg IG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgb2Zmc2V0X3ksICZwcml2LT5jbWRxX3JlZywK PiA+IHByaXYtPnJlZ3MsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBNRFBfUkRNQV9T UkNfT0ZGU0VUXzAsCj4gPiBGTERfU1JDX09GRlNFVF8wKTsKPiA+ICsgICAgICAgbXRrX2RkcF93 cml0ZV9tYXNrKGNtZHFfcGt0LCBjZmctPndpZHRoLCAmcHJpdi0+Y21kcV9yZWcsCj4gPiBwcml2 LT5yZWdzLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQX1JETUFfTUZfU1JDX1NJ WkUsIEZMRF9NRl9TUkNfVyk7Cj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3Br dCwgY2ZnLT5oZWlnaHQgPDwgMTYsICZwcml2LQo+ID4gPmNtZHFfcmVnLCBwcml2LT5yZWdzLAo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgTURQX1JETUFfTUZfU1JDX1NJWkUsIEZMRF9N Rl9TUkNfSCk7Cj4gPiArICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgY2ZnLT53 aWR0aCwgJnByaXYtPmNtZHFfcmVnLAo+ID4gcHJpdi0+cmVncywKPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgIE1EUF9SRE1BX01GX0NMSVBfU0laRSwgRkxEX01GX0NMSVBfVyk7Cj4gPiAr ICAgICAgIG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgY2ZnLT5oZWlnaHQgPDwgMTYsICZw cml2LQo+ID4gPmNtZHFfcmVnLCBwcml2LT5yZWdzLAo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgTURQX1JETUFfTUZfQ0xJUF9TSVpFLCBGTERfTUZfQ0xJUF9IKTsKPiA+ICsgICAgICAg bXRrX2RkcF93cml0ZV9tYXNrKGNtZHFfcGt0LCBjZmctPmhlaWdodCA8PCAxNywgJnByaXYtCj4g PiA+Y21kcV9yZWcsIHByaXYtPnJlZ3MsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBN RFBfUkRNQV9UQVJHRVRfTElORSwKPiA+IEZMRF9MSU5FX1RIUkVTSE9MRCk7Cj4gPiArICAgICAg IG10a19kZHBfd3JpdGVfbWFzayhjbWRxX3BrdCwgRkxEX1RBUkdFVF9MSU5FX0VOLCAmcHJpdi0K PiA+ID5jbWRxX3JlZywgcHJpdi0+cmVncywKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg IE1EUF9SRE1BX1RBUkdFVF9MSU5FLAo+ID4gRkxEX1RBUkdFVF9MSU5FX0VOKTsKPiAKPiBXaHkg ZW5hYmxlIHRhcmdldCBsaW5lPwoKVGhlIE1EUF9SRE1BIGdjZSBldmVudCBpcyBub3QgdXNlZCwg SSB3aWxsIHJlbW92ZSBpdCBpbiB0aGUgbmV4dApyZXZpc2lvbi4KPiAKPiA+ICt9Cj4gPiArCj4g PiAraW50IG10a19tZHBfcmRtYV9jbGtfZW5hYmxlKHN0cnVjdCBkZXZpY2UgKmRldikKPiA+ICt7 Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfbWRwX3JkbWEgKnJkbWEgPSBkZXZfZ2V0X2RydmRhdGEo ZGV2KTsKPiA+ICsKPiA+ICsgICAgICAgcG1fcnVudGltZV9nZXRfc3luYyhkZXYpOwo+ID4gKyAg ICAgICBjbGtfcHJlcGFyZV9lbmFibGUocmRtYS0+Y2xrKTsKPiA+ICsgICAgICAgcmV0dXJuIDA7 Cj4gPiArfQo+ID4gKwo+ID4gK3ZvaWQgbXRrX21kcF9yZG1hX2Nsa19kaXNhYmxlKHN0cnVjdCBk ZXZpY2UgKmRldikKPiA+ICt7Cj4gPiArICAgICAgIHN0cnVjdCBtdGtfbWRwX3JkbWEgKnJkbWEg PSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPiA+ICsKPiA+ICsgICAgICAgY2xrX2Rpc2FibGVfdW5w cmVwYXJlKHJkbWEtPmNsayk7Cj4gPiArICAgICAgIHBtX3J1bnRpbWVfcHV0KGRldik7Cj4gPiAr fQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgbXRrX21kcF9yZG1hX3Byb2JlKHN0cnVjdCBwbGF0Zm9y bV9kZXZpY2UgKnBkZXYpCj4gPiArewo+ID4gKyAgICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAm cGRldi0+ZGV2Owo+ID4gKyAgICAgICBzdHJ1Y3QgcmVzb3VyY2UgKnJlczsKPiA+ICsgICAgICAg c3RydWN0IG10a19tZHBfcmRtYSAqcHJpdjsKPiA+ICsgICAgICAgaW50IHJldCA9IDA7Cj4gPiAr Cj4gPiArICAgICAgIHByaXYgPSBkZXZtX2t6YWxsb2MoZGV2LCBzaXplb2YoKnByaXYpLCBHRlBf S0VSTkVMKTsKPiA+ICsgICAgICAgaWYgKCFwcml2KQo+ID4gKyAgICAgICAgICAgICAgIHJldHVy biAtRU5PTUVNOwo+ID4gKwo+ID4gKyAgICAgICByZXMgPSBwbGF0Zm9ybV9nZXRfcmVzb3VyY2Uo cGRldiwgSU9SRVNPVVJDRV9NRU0sIDApOwo+ID4gKyAgICAgICBwcml2LT5yZWdzID0gZGV2bV9p b3JlbWFwX3Jlc291cmNlKGRldiwgcmVzKTsKPiA+ICsgICAgICAgaWYgKElTX0VSUihwcml2LT5y ZWdzKSkgewo+ID4gKyAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGlvcmVt YXAgcmRtYVxuIik7Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIocHJpdi0+cmVn cyk7Cj4gPiArICAgICAgIH0KPiA+ICsKPiA+ICsgICAgICAgcHJpdi0+Y2xrID0gZGV2bV9jbGtf Z2V0KGRldiwgTlVMTCk7Cj4gPiArICAgICAgIGlmIChJU19FUlIocHJpdi0+Y2xrKSkgewo+ID4g KyAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGdldCByZG1hIGNsa1xuIik7 Cj4gPiArICAgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIocHJpdi0+Y2xrKTsKPiA+ICsgICAg ICAgfQo+ID4gKwo+ID4gKyNpZiBJU19SRUFDSEFCTEUoQ09ORklHX01US19DTURRKQo+ID4gKyAg ICAgICByZXQgPSBjbWRxX2Rldl9nZXRfY2xpZW50X3JlZyhkZXYsICZwcml2LT5jbWRxX3JlZywg MCk7Cj4gPiArICAgICAgIGlmIChyZXQpCj4gPiArICAgICAgICAgICAgICAgZGV2X2RiZyhkZXYs ICJnZXQgbWVkaWF0ZWssZ2NlLWNsaWVudC1yZWcKPiA+IGZhaWwhXG4iKTsKPiA+ICsjZW5kaWYK PiA+ICsgICAgICAgcGxhdGZvcm1fc2V0X2RydmRhdGEocGRldiwgcHJpdik7Cj4gPiArCj4gPiAr ICAgICAgIHBtX3J1bnRpbWVfZW5hYmxlKGRldik7Cj4gPiArICAgICAgIHJldHVybiByZXQ7Cj4g PiArfQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgbXRrX21kcF9yZG1hX3JlbW92ZShzdHJ1Y3QgcGxh dGZvcm1fZGV2aWNlICpwZGV2KQo+ID4gK3sKPiA+ICsgICAgICAgcG1fcnVudGltZV9kaXNhYmxl KCZwZGV2LT5kZXYpOwo+ID4gKyAgICAgICByZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArc3Rh dGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgbXRrX21kcF9yZG1hX2RyaXZlcl9kdF9tYXRj aFtdID0KPiA+IHsKPiA+ICsgICAgICAgeyAuY29tcGF0aWJsZSA9ICJtZWRpYXRlayxtdDgxOTUt dmRvMS1yZG1hIiwgfSwKPiA+ICsgICAgICAge30sCj4gPiArfTsKPiA+ICtNT0RVTEVfREVWSUNF X1RBQkxFKG9mLCBtdGtfbWRwX3JkbWFfZHJpdmVyX2R0X21hdGNoKTsKPiA+ICsKPiA+ICtzdHJ1 Y3QgcGxhdGZvcm1fZHJpdmVyIG10a19tZHBfcmRtYV9kcml2ZXIgPSB7Cj4gPiArICAgICAgIC5w cm9iZSA9IG10a19tZHBfcmRtYV9wcm9iZSwKPiA+ICsgICAgICAgLnJlbW92ZSA9IG10a19tZHBf cmRtYV9yZW1vdmUsCj4gPiArICAgICAgIC5kcml2ZXIgPSB7Cj4gPiArICAgICAgICAgICAgICAg Lm5hbWUgPSAibWVkaWF0ZWstbWRwLXJkbWEiLAo+ID4gKyAgICAgICAgICAgICAgIC5vd25lciA9 IFRISVNfTU9EVUxFLAo+ID4gKyAgICAgICAgICAgICAgIC5vZl9tYXRjaF90YWJsZSA9IG10a19t ZHBfcmRtYV9kcml2ZXJfZHRfbWF0Y2gsCj4gPiArICAgICAgIH0sCj4gPiArfTsKPiA+ICttb2R1 bGVfcGxhdGZvcm1fZHJpdmVyKG10a19tZHBfcmRtYV9kcml2ZXIpOwo+ID4gZGlmZiAtLWdpdCBh L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfbWRwX3JkbWEuaAo+ID4gYi9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX21kcF9yZG1hLmgKPiA+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4g PiBpbmRleCAwMDAwMDAwMDAwMDAuLmRmOGUyOGYwZTNhNAo+ID4gLS0tIC9kZXYvbnVsbAo+ID4g KysrIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19tZHBfcmRtYS5oCj4gPiBAQCAtMCww ICsxLDM3IEBACj4gPiArLyogU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAtb25seSAq Lwo+ID4gKy8qCj4gPiArICogQ29weXJpZ2h0IChjKSAyMDIxIE1lZGlhVGVrIEluYy4KPiA+ICsg Ki8KPiA+ICsKPiA+ICsjaWZuZGVmIF9fTVRLX01EUF9SRE1BX0hfXwo+ID4gKyNkZWZpbmUgX19N VEtfTURQX1JETUFfSF9fCj4gPiArCj4gPiArZW51bSBtdGtfbWRwX3JkbWFfcHJvZmlsZSB7Cj4g PiArICAgICAgIFJETUFfQ1NDX1JHQl9UT19KUEVHID0gMCwKPiA+ICsgICAgICAgUkRNQV9DU0Nf UkdCX1RPX0ZVTEw3MDkgPSAxLAo+ID4gKyAgICAgICBSRE1BX0NTQ19SR0JfVE9fQlQ2MDEgPSAy LAo+ID4gKyAgICAgICBSRE1BX0NTQ19SR0JfVE9fQlQ3MDkgPSAzLAo+ID4gKyAgICAgICBSRE1B X0NTQ19KUEVHX1RPX1JHQiA9IDQsCj4gPiArICAgICAgIFJETUFfQ1NDX0ZVTEw3MDlfVE9fUkdC ID0gNSwKPiA+ICsgICAgICAgUkRNQV9DU0NfQlQ2MDFfVE9fUkdCID0gNiwKPiA+ICsgICAgICAg UkRNQV9DU0NfQlQ3MDlfVE9fUkdCID0gNywKPiA+ICsgICAgICAgUkRNQV9DU0NfSlBFR19UT19C VDYwMSA9IDgsCj4gPiArICAgICAgIFJETUFfQ1NDX0pQRUdfVE9fQlQ3MDkgPSA5LAo+ID4gKyAg ICAgICBSRE1BX0NTQ19CVDYwMV9UT19KUEVHID0gMTAsCj4gPiArICAgICAgIFJETUFfQ1NDX0JU NzA5X1RPX0JUNjAxID0gMTEsCj4gPiArICAgICAgIFJETUFfQ1NDX0JUNjAxX1RPX0JUNzA5ID0g MTIKPiAKPiBJdCBzZWVtcyB0aGF0IHRoaXMgaXMgdGhlIHJlZ2lzdGVyIGRlZmluaXRpb24uIElm IHRoaXMgZGVmaW5pdGlvbiBpcwo+IGNoYW5nZWQgaW4gbmV4dCBTb0MsIGhvdyB0byBkZWZpbmUg dGhpcyB2YWx1ZT8KPiBNYXliZSB3ZSBjb3VsZCBwYXNzIHRoZSBkcm1fY29sb3JfZW5jb2Rpbmcg YW5kIGRybV9jb2xvcl9yYW5nZQo+IGluZm9ybWF0aW9uIGZvciBZVVYgZm9ybWF0LCBhbmQgbGV0 IHJkbWEgZG8gdGhlIHRyYW5zbGF0aW9uIGluIHRoaXMKPiBkcml2ZXIuCj4gCj4gUmVnYXJkcywK PiBDaHVuLUt1YW5nLgo+IApPSywgSSB3aWxsIHJlbW92ZSB0aGUgZW51bSBhbmQgbGV0IHRoZSBy ZG1hIGRvIHRoZSB0cmFuc2xhdGlvbi4KClJlZ2FyZHMsCk5hbmN5IExpbgo+ID4gK307Cj4gPiAr Cj4gPiArc3RydWN0IG10a19tZHBfcmRtYV9jZmcgewo+ID4gKyAgICAgICBlbnVtIG10a19tZHBf cmRtYV9wcm9maWxlIHByb2ZpbGU7Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCBwaXRjaDsKPiA+ ICsgICAgICAgdW5zaWduZWQgaW50IGFkZHIwOwo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgd2lk dGg7Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCBoZWlnaHQ7Cj4gPiArICAgICAgIHVuc2lnbmVk IGludCB4X2xlZnQ7Cj4gPiArICAgICAgIHVuc2lnbmVkIGludCB5X3RvcDsKPiA+ICsgICAgICAg Ym9vbCBjc2NfZW5hYmxlOwo+ID4gKyAgICAgICBpbnQgZm10Owo+ID4gK307Cj4gPiArCj4gPiAr I2VuZGlmIC8vIF9fTVRLX01EUF9SRE1BX0hfXwo+ID4gLS0KPiA+IDIuMTguMAo+ID4gCgoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtl cm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0 dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5l bAo=