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 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 233C5C433F5 for ; Wed, 20 Oct 2021 19:08:47 +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 BBA7B6128E for ; Wed, 20 Oct 2021 19:08:46 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org BBA7B6128E Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=baylibre.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:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=Ar3y4pHBbhSIPd4kB1j9bDUeLDltlo4xRL5b5gs3UGM=; b=um9GThEBT0OyjA BS9cD6E5Il/mJjvmE7vBZK0/rcMxhiG46MgtqJLFi7ENxzi0OKr64SsfOVybNJGb1ScUBDbKSe2jV +k/k2RORT36wXIE/VYB1fFKIHZum7KKTPVJsXD5KPmroFtKZHXV9lOUEpikhNTeG8Cvz7e+zj+lyq lsimlg8b0j6pJb6+uCf5KvzzRu18r8aX7OF7oZsNPZSyhUCrV3uMqhQ08gyLEYCi38FHe/Oal4TVV 0IADIfsZOrJW3EDfKmAJwmyGtaqrHZsY56o3QEhwTAmVby8EEKqQO6i3SXSABASRrARDDT/IRP/qI 3ZbsG5iRt5h3jnZX6k7w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1mdGx3-005cq0-5o; Wed, 20 Oct 2021 19:08:37 +0000 Received: from mail-wm1-x334.google.com ([2a00:1450:4864:20::334]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1mdGwv-005coY-1Z for linux-mediatek@lists.infradead.org; Wed, 20 Oct 2021 19:08:36 +0000 Received: by mail-wm1-x334.google.com with SMTP id b189-20020a1c1bc6000000b0030da052dd4fso11995989wmb.3 for ; Wed, 20 Oct 2021 12:08:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=baylibre-com.20210112.gappssmtp.com; s=20210112; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=BpW9Y4HGoA+1LqnDwYZs0eioGqJSlxwROr7SPjbDQ+I=; b=eq0WIIqm/gMD7Oys38tm0QiNVgKLBqVh7ySMlG9YZTd3S+aHtxKzwbRYReu+Fhw7Uc xhNKSPxOQhaGMjsv3W97Sw2esUHmcPN8zyTwjCyT4dWp9j5yx3bMq2zBPY5NTHk/0w46 njRlZI6BEURE4mXZzCPNFEbxfw3yRNvMlbu5NKJdY2L18vlCXZemGNzqduz8OPkwcVaq eR0CyXS69NArYcmG7WnzivbJpzzgkcUzXfXeMTyTw6tX5nW2/yujt3bKvOxjRZP2790/ j1Avu2y45y0hY5wsgurVmuYXAYols+10n4S0z7LOJoGStdOWKeNfHc10ssaHabkjQ/Hr 9A8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=BpW9Y4HGoA+1LqnDwYZs0eioGqJSlxwROr7SPjbDQ+I=; b=4LsMr2onuL1EsJ5rljsVGxejaRWZ5scVKyK9NbEgcZn+up6xLysVFPKkYk3S2+5k4t 7sgPZYjBxj03NpVNw1OZfozWF6RMZdeT/153zkw4nbfoSLLObr6MoDUeErWV/EunZCRI lvjxU2jrryp+s4g6mL10W085hmO55ZFjBn+Y7rTNReYz+2CW7egAwD7aQlLpcldIkotV NegFZOj/C7/W2vglYpBs586+gVwCtXKErBqSIcvqx80P9ObbjsikjW0vAZa/HjrMDhmv gh/Y8RBEufknylVLrqlUFB6SWdvvQYa9rSq2r9X0tVgz/FdrbaSR/LdTVVbZ2Q59CUA5 fqIQ== X-Gm-Message-State: AOAM530/Kb2dopdfYeuOQL3MQbS0r92KuYYNMvljj3OcitTvnnl5XDZQ D4XuNbWfUt/2SpSJe5bPJKr4jQ== X-Google-Smtp-Source: ABdhPJzDxzw8uDT3asvSXe9q0cwhR84bOnUUBBSKoKwV4jBpMHmSoeudfCTrXUvUggSiQVA8PRKtTg== X-Received: by 2002:a05:600c:1c8c:: with SMTP id k12mr1230046wms.74.1634756902899; Wed, 20 Oct 2021 12:08:22 -0700 (PDT) Received: from blmsp ([2a02:2454:3e6:c900:5142:5fbb:5821:5dc3]) by smtp.gmail.com with ESMTPSA id i24sm2825659wml.26.2021.10.20.12.08.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Oct 2021 12:08:21 -0700 (PDT) Date: Wed, 20 Oct 2021 21:08:20 +0200 From: Markus Schneider-Pargmann To: Chun-Kuang Hu Cc: Philipp Zabel , Sam Ravnborg , DRI Development , "moderated list:ARM/Mediatek SoC support" , Linux ARM Subject: Re: [PATCH v3 5/6] drm/mediatek: dpi: Add dpintf support Message-ID: <20211020190820.dl3w5wetvy5sw2t7@blmsp> References: <20211001094443.2770169-1-msp@baylibre.com> <20211001094443.2770169-6-msp@baylibre.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20211020_120829_135529_8B3944B7 X-CRM114-Status: GOOD ( 34.98 ) X-BeenThere: linux-mediatek@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-mediatek" Errors-To: linux-mediatek-bounces+linux-mediatek=archiver.kernel.org@lists.infradead.org SGkgQ2h1bi1LdWFuZywKCk9uIEZyaSwgT2N0IDE1LCAyMDIxIGF0IDEyOjA0OjEwQU0gKzA4MDAs IENodW4tS3VhbmcgSHUgd3JvdGU6Cj4gSGksIE1hcmt1czoKPiAKPiBNYXJrdXMgU2NobmVpZGVy LVBhcmdtYW5uIDxtc3BAYmF5bGlicmUuY29tPiDmlrwgMjAyMeW5tDEw5pyIMeaXpSDpgLHkupQg 5LiL5Y2INTo0NOWvq+mBk++8mgo+ID4KPiA+IGRwaW50ZiBpcyB0aGUgZGlzcGxheXBvcnQgaW50 ZXJmYWNlIGhhcmR3YXJlIHVuaXQuIFRoaXMgdW5pdCBpcyBzaW1pbGFyCj4gPiB0byBkcGkgYW5k IGNhbiByZXVzZSBtb3N0IG9mIHRoZSBjb2RlLgo+ID4KPiA+IFRoaXMgcGF0Y2ggYWRkcyBzdXBw b3J0IGZvciBtdDgxOTUtZHBpbnRmIHRvIHRoaXMgZHBpIGRyaXZlci4gTWFpbgo+ID4gZGlmZmVy ZW5jZXMgYXJlOgo+ID4gIC0gU29tZSBmZWF0dXJlcy9mdW5jdGlvbmFsIGNvbXBvbmVudHMgYXJl IG5vdCBhdmFpbGFibGUgZm9yIGRwaW50Zgo+ID4gICAgd2hpY2ggYXJlIG5vdyBleGNsdWRlZCBm cm9tIGNvZGUgZXhlY3V0aW9uIG9uY2UgaXNfZHBpbnRmIGlzIHNldAo+ID4gIC0gZHBpbnRmIGNh biBhbmQgbmVlZHMgdG8gY2hvb3NlIGJldHdlZW4gZGlmZmVyZW50IGNsb2NrZGl2aWRlcnMgYmFz ZWQKPiA+ICAgIG9uIHRoZSBjbG9ja3NwZWVkLiBUaGlzIGlzIGRvbmUgYnkgY2hvb3NpbmcgYSBk aWZmZXJlbnQgY2xvY2sgcGFyZW50Lgo+ID4gIC0gVGhlcmUgYXJlIHR3byBhZGRpdGlvbmFsIGNs b2NrcyB0aGF0IG5lZWQgdG8gYmUgbWFuYWdlZC4gVGhlc2UgYXJlCj4gPiAgICBvbmx5IHNldCBm b3IgZHBpbnRmIGFuZCB3aWxsIGJlIHNldCB0byBOVUxMIGlmIG5vdCBzdXBwbGllZC4gVGhlCj4g PiAgICBjbGtfKiBjYWxscyBoYW5kbGUgdGhlc2UgYXMgbm9ybWFsIGNsb2NrcyB0aGVuLgo+ID4g IC0gU29tZSByZWdpc3RlciBjb250ZW50cyBkaWZmZXIgc2xpZ2h0bHkgYmV0d2VlbiB0aGUgdHdv IGNvbXBvbmVudHMuIFRvCj4gPiAgICB3b3JrIGFyb3VuZCB0aGlzIEkgYWRkZWQgcmVnaXN0ZXIg Yml0cy9tYXNrcyB3aXRoIGEgRFBJTlRGXyBwcmVmaXgKPiA+ICAgIGFuZCB1c2UgdGhlbSB3aGVy ZSBkaWZmZXJlbnQuCj4gPgo+ID4gQmFzZWQgb24gYSBzZXBhcmF0ZSBkcml2ZXIgZm9yIGRwaW50 ZiBjcmVhdGVkIGJ5Cj4gPiBKYXNvbi1KSC5MaW4gPGphc29uLWpoLmxpbkBtZWRpYXRlay5jb20+ Lgo+ID4KPiA+IFNpZ25lZC1vZmYtYnk6IE1hcmt1cyBTY2huZWlkZXItUGFyZ21hbm4gPG1zcEBi YXlsaWJyZS5jb20+Cj4gPiAtLS0KPiA+Cj4gPiBOb3RlczoKPiA+ICAgICBDaGFuZ2VzIFJGQyAt PiB2MToKPiA+ICAgICAtIFJlbW92ZSBzZXR0aW5nIHBhcmVudHMgYW5kIGZ1bGx5IHJlbHkgb24g dGhlIGNsb2NrIHRyZWUgaW5zdGVhZCB3aGljaCBhbHJlYWR5Cj4gPiAgICAgICBtb2RlbHMgYSBt dXggYXQgdGhlIGltcG9ydGFudCBwbGFjZS4KPiA+ICAgICAtIEludGVncmF0ZWQgbXRrX2RwaSBk cGludGYgY2hhbmdlcyBpbnRvIHRoZSBtZWRpYXRlayBkcm0gZHJpdmVyLgo+ID4KPiA+ICBkcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RwaS5jICAgICAgICAgIHwgMjQ4ICsrKysrKysrKysr KysrKystLS0tCj4gPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcGlfcmVncy5oICAg ICB8ICAxMiArCj4gPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAu YyB8ICAgNCArCj4gPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAu aCB8ICAgMSArCj4gPiAgZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMgICAg ICB8ICAgNSArLQo+ID4gIDUgZmlsZXMgY2hhbmdlZCwgMjE4IGluc2VydGlvbnMoKyksIDUyIGRl bGV0aW9ucygtKQo+ID4KPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RwaS5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcGkuYwo+ID4gaW5kZXgg NDU1NGUyZGUxNDMwLi44Nzk2MWViZjVkMzUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RwaS5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsv bXRrX2RwaS5jCj4gPiBAQCAtNzEsNiArNzEsOCBAQCBzdHJ1Y3QgbXRrX2RwaSB7Cj4gPiAgICAg ICAgIHZvaWQgX19pb21lbSAqcmVnczsKPiA+ICAgICAgICAgc3RydWN0IGRldmljZSAqZGV2Owo+ ID4gICAgICAgICBzdHJ1Y3QgY2xrICplbmdpbmVfY2xrOwo+ID4gKyAgICAgICBzdHJ1Y3QgY2xr ICpoZl9mbW1fY2xrOwo+ID4gKyAgICAgICBzdHJ1Y3QgY2xrICpoZl9mZHBfY2xrOwo+ID4gICAg ICAgICBzdHJ1Y3QgY2xrICpwaXhlbF9jbGs7Cj4gPiAgICAgICAgIHN0cnVjdCBjbGsgKnR2ZF9j bGs7Cj4gPiAgICAgICAgIGludCBpcnE7Cj4gPiBAQCAtMTI1LDYgKzEyNyw3IEBAIHN0cnVjdCBt dGtfZHBpX2NvbmYgewo+ID4gICAgICAgICBib29sIGVkZ2Vfc2VsX2VuOwo+ID4gICAgICAgICBj b25zdCB1MzIgKm91dHB1dF9mbXRzOwo+ID4gICAgICAgICB1MzIgbnVtX291dHB1dF9mbXRzOwo+ ID4gKyAgICAgICBib29sIGlzX2RwaW50ZjsKPiA+ICB9Owo+ID4KPiA+ICBzdGF0aWMgdm9pZCBt dGtfZHBpX21hc2soc3RydWN0IG10a19kcGkgKmRwaSwgdTMyIG9mZnNldCwgdTMyIHZhbCwgdTMy IG1hc2spCj4gPiBAQCAtMTUzLDMwICsxNTYsNTIgQEAgc3RhdGljIHZvaWQgbXRrX2RwaV9kaXNh YmxlKHN0cnVjdCBtdGtfZHBpICpkcGkpCj4gPiAgc3RhdGljIHZvaWQgbXRrX2RwaV9jb25maWdf aHN5bmMoc3RydWN0IG10a19kcGkgKmRwaSwKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHN0cnVjdCBtdGtfZHBpX3N5bmNfcGFyYW0gKnN5bmMpCj4gPiAgewo+ID4gLSAgICAg ICBtdGtfZHBpX21hc2soZHBpLCBEUElfVEdFTl9IV0lEVEgsCj4gPiAtICAgICAgICAgICAgICAg ICAgICBzeW5jLT5zeW5jX3dpZHRoIDw8IEhQVywgSFBXX01BU0spOwo+ID4gLSAgICAgICBtdGtf ZHBpX21hc2soZHBpLCBEUElfVEdFTl9IUE9SQ0gsCj4gPiAtICAgICAgICAgICAgICAgICAgICBz eW5jLT5iYWNrX3BvcmNoIDw8IEhCUCwgSEJQX01BU0spOwo+ID4gLSAgICAgICBtdGtfZHBpX21h c2soZHBpLCBEUElfVEdFTl9IUE9SQ0gsIHN5bmMtPmZyb250X3BvcmNoIDw8IEhGUCwKPiA+IC0g ICAgICAgICAgICAgICAgICAgIEhGUF9NQVNLKTsKPiA+ICsgICAgICAgaWYgKGRwaS0+Y29uZi0+ aXNfZHBpbnRmKSB7Cj4gPiArICAgICAgICAgICAgICAgbXRrX2RwaV9tYXNrKGRwaSwgRFBJX1RH RU5fSFdJRFRILAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jLT5zeW5jX3dp ZHRoIDw8IEhQVywgRFBJTlRGX0hQV19NQVNLKTsKPiA+ICsgICAgICAgICAgICAgICBtdGtfZHBp X21hc2soZHBpLCBEUElfVEdFTl9IUE9SQ0gsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHN5bmMtPmJhY2tfcG9yY2ggPDwgSEJQLCBEUElOVEZfSEJQX01BU0spOwo+ID4gKyAgICAg ICAgICAgICAgIG10a19kcGlfbWFzayhkcGksIERQSV9UR0VOX0hQT1JDSCwgc3luYy0+ZnJvbnRf cG9yY2ggPDwgSEZQLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUElOVEZfSEZQ X01BU0spOwo+IAo+IGRlZmluZSBkcGktPmNvbmYtPmhwd19tYXNrCj4gZGVmaW5lIGRwaS0+Y29u Zi0+aGJwX21hc2sKPiBkZWZpbmUgZHBpLT5jb25mLT5oZnBfbWFzawoKVGhhbmtzLCBJIGRlZmlu ZWQgYSBkcGktPmNvbmYtPmRpbWVuc2lvbl9tYXNrIGluc3RlYWQgd2hpY2ggSSBub3cgdXNlCmZv ciBIV0lEVEgvSFBPUkNIIGFzIHdlbGwgYXMgVlNZTkNfV0lEVEggYW5kIFZTWU5DX1BPUkNIIGFz IHRoZSBvbmx5CmRpZmZlcmVuY2UgaXMgdGhlIHdpZHRoIG9mIHRoZSBtYXNrcywgbm90IHRoZWly IHBvc2l0aW9ucy4gSG9wZSB0aGF0J3MKZmluZS4KCj4gCj4gPiArICAgICAgIH0gZWxzZSB7Cj4g PiArICAgICAgICAgICAgICAgbXRrX2RwaV9tYXNrKGRwaSwgRFBJX1RHRU5fSFdJRFRILAo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeW5jLT5zeW5jX3dpZHRoIDw8IEhQVywgSFBX X01BU0spOwo+ID4gKyAgICAgICAgICAgICAgIG10a19kcGlfbWFzayhkcGksIERQSV9UR0VOX0hQ T1JDSCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3luYy0+YmFja19wb3JjaCA8 PCBIQlAsIEhCUF9NQVNLKTsKPiA+ICsgICAgICAgICAgICAgICBtdGtfZHBpX21hc2soZHBpLCBE UElfVEdFTl9IUE9SQ0gsIHN5bmMtPmZyb250X3BvcmNoIDw8IEhGUCwKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgSEZQX01BU0spOwo+ID4gKyAgICAgICB9Cj4gPiAgfQo+ID4KPiA+ ICBzdGF0aWMgdm9pZCBtdGtfZHBpX2NvbmZpZ192c3luYyhzdHJ1Y3QgbXRrX2RwaSAqZHBpLAo+ ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IG10a19kcGlfc3luY19w YXJhbSAqc3luYywKPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUzMiB3aWR0 aF9hZGRyLCB1MzIgcG9yY2hfYWRkcikKPiA+ICB7Cj4gPiAtICAgICAgIG10a19kcGlfbWFzayhk cGksIHdpZHRoX2FkZHIsCj4gPiAtICAgICAgICAgICAgICAgICAgICBzeW5jLT5zeW5jX3dpZHRo IDw8IFZTWU5DX1dJRFRIX1NISUZULAo+ID4gLSAgICAgICAgICAgICAgICAgICAgVlNZTkNfV0lE VEhfTUFTSyk7Cj4gPiAgICAgICAgIG10a19kcGlfbWFzayhkcGksIHdpZHRoX2FkZHIsCj4gPiAg ICAgICAgICAgICAgICAgICAgICBzeW5jLT5zaGlmdF9oYWxmX2xpbmUgPDwgVlNZTkNfSEFMRl9M SU5FX1NISUZULAo+ID4gICAgICAgICAgICAgICAgICAgICAgVlNZTkNfSEFMRl9MSU5FX01BU0sp Owo+ID4gLSAgICAgICBtdGtfZHBpX21hc2soZHBpLCBwb3JjaF9hZGRyLAo+ID4gLSAgICAgICAg ICAgICAgICAgICAgc3luYy0+YmFja19wb3JjaCA8PCBWU1lOQ19CQUNLX1BPUkNIX1NISUZULAo+ ID4gLSAgICAgICAgICAgICAgICAgICAgVlNZTkNfQkFDS19QT1JDSF9NQVNLKTsKPiA+IC0gICAg ICAgbXRrX2RwaV9tYXNrKGRwaSwgcG9yY2hfYWRkciwKPiA+IC0gICAgICAgICAgICAgICAgICAg IHN5bmMtPmZyb250X3BvcmNoIDw8IFZTWU5DX0ZST05UX1BPUkNIX1NISUZULAo+ID4gLSAgICAg ICAgICAgICAgICAgICAgVlNZTkNfRlJPTlRfUE9SQ0hfTUFTSyk7Cj4gPiArCj4gPiArICAgICAg IGlmIChkcGktPmNvbmYtPmlzX2RwaW50Zikgewo+ID4gKyAgICAgICAgICAgICAgIG10a19kcGlf bWFzayhkcGksIHdpZHRoX2FkZHIsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5 bmMtPnN5bmNfd2lkdGggPDwgVlNZTkNfV0lEVEhfU0hJRlQsCj4gPiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIERQSU5URl9WU1lOQ19XSURUSF9NQVNLKTsKPiA+ICsgICAgICAgICAgICAg ICBtdGtfZHBpX21hc2soZHBpLCBwb3JjaF9hZGRyLAo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzeW5jLT5iYWNrX3BvcmNoIDw8IFZTWU5DX0JBQ0tfUE9SQ0hfU0hJRlQsCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIERQSU5URl9WU1lOQ19CQUNLX1BPUkNIX01BU0sp Owo+ID4gKyAgICAgICAgICAgICAgIG10a19kcGlfbWFzayhkcGksIHBvcmNoX2FkZHIsCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmMtPmZyb250X3BvcmNoIDw8IFZTWU5DX0ZS T05UX1BPUkNIX1NISUZULAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBEUElOVEZf VlNZTkNfRlJPTlRfUE9SQ0hfTUFTSyk7Cj4gPiArICAgICAgIH0gZWxzZSB7Cj4gPiArICAgICAg ICAgICAgICAgbXRrX2RwaV9tYXNrKGRwaSwgd2lkdGhfYWRkciwKPiA+ICsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3luYy0+c3luY193aWR0aCA8PCBWU1lOQ19XSURUSF9TSElGVCwKPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgVlNZTkNfV0lEVEhfTUFTSyk7Cj4gPiArICAg ICAgICAgICAgICAgbXRrX2RwaV9tYXNrKGRwaSwgcG9yY2hfYWRkciwKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc3luYy0+YmFja19wb3JjaCA8PCBWU1lOQ19CQUNLX1BPUkNIX1NI SUZULAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWU1lOQ19CQUNLX1BPUkNIX01B U0spOwo+ID4gKyAgICAgICAgICAgICAgIG10a19kcGlfbWFzayhkcGksIHBvcmNoX2FkZHIsCj4g PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5bmMtPmZyb250X3BvcmNoIDw8IFZTWU5D X0ZST05UX1BPUkNIX1NISUZULAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBWU1lO Q19GUk9OVF9QT1JDSF9NQVNLKTsKPiA+ICsgICAgICAgfQo+ID4gIH0KPiA+Cj4gPiAgc3RhdGlj IHZvaWQgbXRrX2RwaV9jb25maWdfdnN5bmNfbG9kZChzdHJ1Y3QgbXRrX2RwaSAqZHBpLAo+ID4g QEAgLTIxMCwxMyArMjM1LDIwIEBAIHN0YXRpYyB2b2lkIG10a19kcGlfY29uZmlnX3BvbChzdHJ1 Y3QgbXRrX2RwaSAqZHBpLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj dCBtdGtfZHBpX3BvbGFyaXRpZXMgKmRwaV9wb2wpCj4gPiAgewo+ID4gICAgICAgICB1bnNpZ25l ZCBpbnQgcG9sOwo+ID4gKyAgICAgICB1bnNpZ25lZCBpbnQgbWFzazsKPiA+Cj4gPiAtICAgICAg IHBvbCA9IChkcGlfcG9sLT5ja19wb2wgPT0gTVRLX0RQSV9QT0xBUklUWV9SSVNJTkcgPyAwIDog Q0tfUE9MKSB8Cj4gPiAtICAgICAgICAgICAgIChkcGlfcG9sLT5kZV9wb2wgPT0gTVRLX0RQSV9Q T0xBUklUWV9SSVNJTkcgPyAwIDogREVfUE9MKSB8Cj4gPiAtICAgICAgICAgICAgIChkcGlfcG9s LT5oc3luY19wb2wgPT0gTVRLX0RQSV9QT0xBUklUWV9SSVNJTkcgPyAwIDogSFNZTkNfUE9MKSB8 Cj4gPiArICAgICAgIG1hc2sgPSBIU1lOQ19QT0wgfCBWU1lOQ19QT0w7Cj4gPiArICAgICAgIHBv bCA9IChkcGlfcG9sLT5oc3luY19wb2wgPT0gTVRLX0RQSV9QT0xBUklUWV9SSVNJTkcgPyAwIDog SFNZTkNfUE9MKSB8Cj4gPiAgICAgICAgICAgICAgIChkcGlfcG9sLT52c3luY19wb2wgPT0gTVRL X0RQSV9QT0xBUklUWV9SSVNJTkcgPyAwIDogVlNZTkNfUE9MKTsKPiA+IC0gICAgICAgbXRrX2Rw aV9tYXNrKGRwaSwgRFBJX09VVFBVVF9TRVRUSU5HLCBwb2wsCj4gPiAtICAgICAgICAgICAgICAg ICAgICBDS19QT0wgfCBERV9QT0wgfCBIU1lOQ19QT0wgfCBWU1lOQ19QT0wpOwo+ID4gKyAgICAg ICBpZiAoIWRwaS0+Y29uZi0+aXNfZHBpbnRmKSB7Cj4gCj4gZGVmaW5lIGRwaS0+Y29uZi0+aXNf Y2tfZGVfcG9sCgpkb25lCgo+IAo+ID4gKyAgICAgICAgICAgICAgIG1hc2sgfD0gQ0tfUE9MIHwg REVfUE9MOwo+ID4gKyAgICAgICAgICAgICAgIHBvbCB8PSAoZHBpX3BvbC0+Y2tfcG9sID09IE1U S19EUElfUE9MQVJJVFlfUklTSU5HID8KPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIDAgOiBD S19QT0wpIHwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgKGRwaV9wb2wtPmRlX3BvbCA9PSBN VEtfRFBJX1BPTEFSSVRZX1JJU0lORyA/Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICAwIDog REVfUE9MKTsKPiA+ICsgICAgICAgfQo+ID4gKwo+ID4gKyAgICAgICBtdGtfZHBpX21hc2soZHBp LCBEUElfT1VUUFVUX1NFVFRJTkcsIHBvbCwgbWFzayk7Cj4gPiAgfQo+ID4KPiA+ICBzdGF0aWMg dm9pZCBtdGtfZHBpX2NvbmZpZ18zZChzdHJ1Y3QgbXRrX2RwaSAqZHBpLCBib29sIGVuXzNkKQo+ ID4gQEAgLTIzMSw4ICsyNjMsMTMgQEAgc3RhdGljIHZvaWQgbXRrX2RwaV9jb25maWdfaW50ZXJm YWNlKHN0cnVjdCBtdGtfZHBpICpkcGksIGJvb2wgaW50ZXIpCj4gPgo+ID4gIHN0YXRpYyB2b2lk IG10a19kcGlfY29uZmlnX2ZiX3NpemUoc3RydWN0IG10a19kcGkgKmRwaSwgdTMyIHdpZHRoLCB1 MzIgaGVpZ2h0KQo+ID4gIHsKPiA+IC0gICAgICAgbXRrX2RwaV9tYXNrKGRwaSwgRFBJX1NJWkUs IHdpZHRoIDw8IEhTSVpFLCBIU0laRV9NQVNLKTsKPiA+IC0gICAgICAgbXRrX2RwaV9tYXNrKGRw aSwgRFBJX1NJWkUsIGhlaWdodCA8PCBWU0laRSwgVlNJWkVfTUFTSyk7Cj4gPiArICAgICAgIGlm IChkcGktPmNvbmYtPmlzX2RwaW50Zikgewo+ID4gKyAgICAgICAgICAgICAgIG10a19kcGlfbWFz ayhkcGksIERQSV9TSVpFLCB3aWR0aCA8PCBIU0laRSwgRFBJTlRGX0hTSVpFX01BU0spOwo+ID4g KyAgICAgICAgICAgICAgIG10a19kcGlfbWFzayhkcGksIERQSV9TSVpFLCBoZWlnaHQgPDwgVlNJ WkUsIERQSU5URl9WU0laRV9NQVNLKTsKPiA+ICsgICAgICAgfSBlbHNlIHsKPiA+ICsgICAgICAg ICAgICAgICBtdGtfZHBpX21hc2soZHBpLCBEUElfU0laRSwgd2lkdGggPDwgSFNJWkUsIEhTSVpF X01BU0spOwo+ID4gKyAgICAgICAgICAgICAgIG10a19kcGlfbWFzayhkcGksIERQSV9TSVpFLCBo ZWlnaHQgPDwgVlNJWkUsIFZTSVpFX01BU0spOwo+ID4gKyAgICAgICB9Cj4gPiAgfQo+ID4KPiA+ ICBzdGF0aWMgdm9pZCBtdGtfZHBpX2NvbmZpZ19jaGFubmVsX2xpbWl0KHN0cnVjdCBtdGtfZHBp ICpkcGksCj4gPiBAQCAtMzMyLDEyICszNjksMjEgQEAgc3RhdGljIHZvaWQgbXRrX2RwaV9jb25m aWdfY2hhbm5lbF9zd2FwKHN0cnVjdCBtdGtfZHBpICpkcGksCj4gPiAgICAgICAgICAgICAgICAg YnJlYWs7Cj4gPiAgICAgICAgIH0KPiA+Cj4gPiAtICAgICAgIG10a19kcGlfbWFzayhkcGksIERQ SV9PVVRQVVRfU0VUVElORywgdmFsIDw8IENIX1NXQVAsIENIX1NXQVBfTUFTSyk7Cj4gPiArICAg ICAgIGlmIChkcGktPmNvbmYtPmlzX2RwaW50ZikKPiA+ICsgICAgICAgICAgICAgICBtdGtfZHBp X21hc2soZHBpLCBEUElfT1VUUFVUX1NFVFRJTkcsIHZhbCA8PCBEUElOVEZfQ0hfU1dBUCwKPiA+ ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgRFBJTlRGX0NIX1NXQVBfTUFTSyk7Cj4gPiAr ICAgICAgIGVsc2UKPiA+ICsgICAgICAgICAgICAgICBtdGtfZHBpX21hc2soZHBpLCBEUElfT1VU UFVUX1NFVFRJTkcsIHZhbCA8PCBDSF9TV0FQLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICBDSF9TV0FQX01BU0spOwo+ID4gIH0KPiA+Cj4gPiAgc3RhdGljIHZvaWQgbXRrX2RwaV9j b25maWdfeXV2NDIyX2VuYWJsZShzdHJ1Y3QgbXRrX2RwaSAqZHBpLCBib29sIGVuYWJsZSkKPiA+ ICB7Cj4gPiAtICAgICAgIG10a19kcGlfbWFzayhkcGksIERQSV9DT04sIGVuYWJsZSA/IFlVVjQy Ml9FTiA6IDAsIFlVVjQyMl9FTik7Cj4gPiArICAgICAgIGlmIChkcGktPmNvbmYtPmlzX2RwaW50 ZikKPiA+ICsgICAgICAgICAgICAgICBtdGtfZHBpX21hc2soZHBpLCBEUElfQ09OLCBlbmFibGUg PyBEUElOVEZfWVVWNDIyX0VOIDogMCwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg RFBJTlRGX1lVVjQyMl9FTik7Cj4gPiArICAgICAgIGVsc2UKPiA+ICsgICAgICAgICAgICAgICBt dGtfZHBpX21hc2soZHBpLCBEUElfQ09OLCBlbmFibGUgPyBZVVY0MjJfRU4gOiAwLCBZVVY0MjJf RU4pOwo+ID4gIH0KPiA+Cj4gPiAgc3RhdGljIHZvaWQgbXRrX2RwaV9jb25maWdfY3NjX2VuYWJs ZShzdHJ1Y3QgbXRrX2RwaSAqZHBpLCBib29sIGVuYWJsZSkKPiA+IEBAIC0zNjcsMTkgKzQxMywy NSBAQCBzdGF0aWMgdm9pZCBtdGtfZHBpX2NvbmZpZ19jb2xvcl9mb3JtYXQoc3RydWN0IG10a19k cGkgKmRwaSwKPiA+ICAgICAgICAgaWYgKChmb3JtYXQgPT0gTVRLX0RQSV9DT0xPUl9GT1JNQVRf WUNCQ1JfNDQ0KSB8fAo+ID4gICAgICAgICAgICAgKGZvcm1hdCA9PSBNVEtfRFBJX0NPTE9SX0ZP Uk1BVF9ZQ0JDUl80NDRfRlVMTCkpIHsKPiA+ICAgICAgICAgICAgICAgICBtdGtfZHBpX2NvbmZp Z195dXY0MjJfZW5hYmxlKGRwaSwgZmFsc2UpOwo+ID4gLSAgICAgICAgICAgICAgIG10a19kcGlf Y29uZmlnX2NzY19lbmFibGUoZHBpLCB0cnVlKTsKPiA+IC0gICAgICAgICAgICAgICBtdGtfZHBp X2NvbmZpZ19zd2FwX2lucHV0KGRwaSwgZmFsc2UpOwo+ID4gKyAgICAgICAgICAgICAgIGlmICgh ZHBpLT5jb25mLT5pc19kcGludGYpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIG10a19k cGlfY29uZmlnX2NzY19lbmFibGUoZHBpLCB0cnVlKTsKPiAKPiBkZWZpbmUgZHBpLT5jb25mLT5j c2Nfc3VwcG9ydAo+IAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgbXRrX2RwaV9jb25maWdf c3dhcF9pbnB1dChkcGksIGZhbHNlKTsKPiAKPiBkZWZpbmUgZHBpLT5jb25mLT5zd2FwX2lucHV0 X3N1cHBvcnQKCnRoZXNlIHR3byBkb25lIGFzIHdlbGwuCgo+IAo+ID4gKyAgICAgICAgICAgICAg IH0KPiA+ICAgICAgICAgICAgICAgICBtdGtfZHBpX2NvbmZpZ19jaGFubmVsX3N3YXAoZHBpLCBN VEtfRFBJX09VVF9DSEFOTkVMX1NXQVBfQkdSKTsKPiA+ICAgICAgICAgfSBlbHNlIGlmICgoZm9y bWF0ID09IE1US19EUElfQ09MT1JfRk9STUFUX1lDQkNSXzQyMikgfHwKPiA+ICAgICAgICAgICAg ICAgICAgICAoZm9ybWF0ID09IE1US19EUElfQ09MT1JfRk9STUFUX1lDQkNSXzQyMl9GVUxMKSkg ewo+ID4gICAgICAgICAgICAgICAgIG10a19kcGlfY29uZmlnX3l1djQyMl9lbmFibGUoZHBpLCB0 cnVlKTsKPiA+IC0gICAgICAgICAgICAgICBtdGtfZHBpX2NvbmZpZ19jc2NfZW5hYmxlKGRwaSwg dHJ1ZSk7Cj4gPiAtICAgICAgICAgICAgICAgbXRrX2RwaV9jb25maWdfc3dhcF9pbnB1dChkcGks IHRydWUpOwo+ID4gKyAgICAgICAgICAgICAgIGlmICghZHBpLT5jb25mLT5pc19kcGludGYpIHsK PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIG10a19kcGlfY29uZmlnX2NzY19lbmFibGUoZHBp LCB0cnVlKTsKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIG10a19kcGlfY29uZmlnX3N3YXBf aW5wdXQoZHBpLCB0cnVlKTsKPiA+ICsgICAgICAgICAgICAgICB9Cj4gPiAgICAgICAgICAgICAg ICAgbXRrX2RwaV9jb25maWdfY2hhbm5lbF9zd2FwKGRwaSwgTVRLX0RQSV9PVVRfQ0hBTk5FTF9T V0FQX1JHQik7Cj4gPiAgICAgICAgIH0gZWxzZSB7Cj4gPiAgICAgICAgICAgICAgICAgbXRrX2Rw aV9jb25maWdfeXV2NDIyX2VuYWJsZShkcGksIGZhbHNlKTsKPiA+IC0gICAgICAgICAgICAgICBt dGtfZHBpX2NvbmZpZ19jc2NfZW5hYmxlKGRwaSwgZmFsc2UpOwo+ID4gLSAgICAgICAgICAgICAg IG10a19kcGlfY29uZmlnX3N3YXBfaW5wdXQoZHBpLCBmYWxzZSk7Cj4gPiArICAgICAgICAgICAg ICAgaWYgKCFkcGktPmNvbmYtPmlzX2RwaW50Zikgewo+ID4gKyAgICAgICAgICAgICAgICAgICAg ICAgbXRrX2RwaV9jb25maWdfY3NjX2VuYWJsZShkcGksIGZhbHNlKTsKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgIG10a19kcGlfY29uZmlnX3N3YXBfaW5wdXQoZHBpLCBmYWxzZSk7Cj4gPiAr ICAgICAgICAgICAgICAgfQo+ID4gICAgICAgICAgICAgICAgIG10a19kcGlfY29uZmlnX2NoYW5u ZWxfc3dhcChkcGksIE1US19EUElfT1VUX0NIQU5ORUxfU1dBUF9SR0IpOwo+ID4gICAgICAgICB9 Cj4gPiAgfQo+ID4gQEAgLTQxMCw2ICs0NjIsOCBAQCBzdGF0aWMgdm9pZCBtdGtfZHBpX3Bvd2Vy X29mZihzdHJ1Y3QgbXRrX2RwaSAqZHBpKQo+ID4gICAgICAgICAgICAgICAgIHBpbmN0cmxfc2Vs ZWN0X3N0YXRlKGRwaS0+cGluY3RybCwgZHBpLT5waW5zX2dwaW8pOwo+ID4KPiA+ICAgICAgICAg bXRrX2RwaV9kaXNhYmxlKGRwaSk7Cj4gPiArICAgICAgIGNsa19kaXNhYmxlX3VucHJlcGFyZShk cGktPmhmX2ZkcF9jbGspOwo+ID4gKyAgICAgICBjbGtfZGlzYWJsZV91bnByZXBhcmUoZHBpLT5o Zl9mbW1fY2xrKTsKPiA+ICAgICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRwaS0+cGl4ZWxf Y2xrKTsKPiA+ICAgICAgICAgY2xrX2Rpc2FibGVfdW5wcmVwYXJlKGRwaS0+ZW5naW5lX2Nsayk7 Cj4gPiAgfQo+ID4gQEAgLTQzMywxMiArNDg3LDI4IEBAIHN0YXRpYyBpbnQgbXRrX2RwaV9wb3dl cl9vbihzdHJ1Y3QgbXRrX2RwaSAqZHBpKQo+ID4gICAgICAgICAgICAgICAgIGdvdG8gZXJyX3Bp eGVsOwo+ID4gICAgICAgICB9Cj4gPgo+ID4gKyAgICAgICByZXQgPSBjbGtfcHJlcGFyZV9lbmFi bGUoZHBpLT5oZl9mbW1fY2xrKTsKPiA+ICsgICAgICAgaWYgKHJldCkgewo+ID4gKyAgICAgICAg ICAgICAgIGRldl9lcnIoZHBpLT5kZXYsICJGYWlsZWQgdG8gZW5hYmxlIGhmX2ZtbSBjbG9jazog JWRcbiIsIHJldCk7Cj4gPiArICAgICAgICAgICAgICAgZ290byBlcnJfaGZfZm1tOwo+ID4gKyAg ICAgICB9Cj4gPiArCj4gPiArICAgICAgIHJldCA9IGNsa19wcmVwYXJlX2VuYWJsZShkcGktPmhm X2ZkcF9jbGspOwo+ID4gKyAgICAgICBpZiAocmV0KSB7Cj4gPiArICAgICAgICAgICAgICAgZGV2 X2VycihkcGktPmRldiwgIkZhaWxlZCB0byBlbmFibGUgaGZfZmRwIGNsb2NrOiAlZFxuIiwgcmV0 KTsKPiA+ICsgICAgICAgICAgICAgICBnb3RvIGVycl9oZl9mZHA7Cj4gPiArICAgICAgIH0KPiA+ ICsKPiA+ICAgICAgICAgaWYgKGRwaS0+cGluY3RybCAmJiBkcGktPnBpbnNfZHBpKQo+ID4gICAg ICAgICAgICAgICAgIHBpbmN0cmxfc2VsZWN0X3N0YXRlKGRwaS0+cGluY3RybCwgZHBpLT5waW5z X2RwaSk7Cj4gPgo+ID4gICAgICAgICBtdGtfZHBpX2VuYWJsZShkcGkpOwo+ID4gICAgICAgICBy ZXR1cm4gMDsKPiA+Cj4gPiArZXJyX2hmX2ZkcDoKPiA+ICsgICAgICAgY2xrX2Rpc2FibGVfdW5w cmVwYXJlKGRwaS0+aGZfZm1tX2Nsayk7Cj4gPiArZXJyX2hmX2ZtbToKPiA+ICsgICAgICAgY2xr X2Rpc2FibGVfdW5wcmVwYXJlKGRwaS0+cGl4ZWxfY2xrKTsKPiA+ICBlcnJfcGl4ZWw6Cj4gPiAg ICAgICAgIGNsa19kaXNhYmxlX3VucHJlcGFyZShkcGktPmVuZ2luZV9jbGspOwo+ID4gIGVycl9y ZWZjb3VudDoKPiA+IEBAIC00NzIsMjIgKzU0MiwzMCBAQCBzdGF0aWMgaW50IG10a19kcGlfc2V0 X2Rpc3BsYXlfbW9kZShzdHJ1Y3QgbXRrX2RwaSAqZHBpLAo+ID4gICAgICAgICBwbGxfcmF0ZSA9 IGNsa19nZXRfcmF0ZShkcGktPnR2ZF9jbGspOwo+ID4KPiA+ICAgICAgICAgdm0ucGl4ZWxjbG9j ayA9IHBsbF9yYXRlIC8gZmFjdG9yOwo+ID4gLSAgICAgICBpZiAoKGRwaS0+b3V0cHV0X2ZtdCA9 PSBNRURJQV9CVVNfRk1UX1JHQjg4OF8yWDEyX0xFKSB8fAo+ID4gLSAgICAgICAgICAgKGRwaS0+ b3V0cHV0X2ZtdCA9PSBNRURJQV9CVVNfRk1UX1JHQjg4OF8yWDEyX0JFKSkKPiA+ICsgICAgICAg aWYgKGRwaS0+Y29uZi0+aXNfZHBpbnRmKQo+ID4gKyAgICAgICAgICAgICAgIGNsa19zZXRfcmF0 ZShkcGktPnBpeGVsX2Nsaywgdm0ucGl4ZWxjbG9jayAvIDQpOwo+ID4gKyAgICAgICBlbHNlIGlm ICgoZHBpLT5vdXRwdXRfZm10ID09IE1FRElBX0JVU19GTVRfUkdCODg4XzJYMTJfTEUpIHx8Cj4g PiArICAgICAgICAgICAgICAgIChkcGktPm91dHB1dF9mbXQgPT0gTUVESUFfQlVTX0ZNVF9SR0I4 ODhfMlgxMl9CRSkpCj4gPiAgICAgICAgICAgICAgICAgY2xrX3NldF9yYXRlKGRwaS0+cGl4ZWxf Y2xrLCB2bS5waXhlbGNsb2NrICogMik7Cj4gPiAgICAgICAgIGVsc2UKPiA+ICAgICAgICAgICAg ICAgICBjbGtfc2V0X3JhdGUoZHBpLT5waXhlbF9jbGssIHZtLnBpeGVsY2xvY2spOwo+ID4KPiA+ IC0KPiA+ICAgICAgICAgdm0ucGl4ZWxjbG9jayA9IGNsa19nZXRfcmF0ZShkcGktPnBpeGVsX2Ns ayk7Cj4gPgo+ID4gICAgICAgICBkZXZfZGJnKGRwaS0+ZGV2LCAiR290ICBQTEwgJWx1IEh6LCBw aXhlbCBjbG9jayAlbHUgSHpcbiIsCj4gPiAgICAgICAgICAgICAgICAgcGxsX3JhdGUsIHZtLnBp eGVsY2xvY2spOwo+ID4KPiA+IC0gICAgICAgbGltaXQuY19ib3R0b20gPSAweDAwMTA7Cj4gPiAt ICAgICAgIGxpbWl0LmNfdG9wID0gMHgwRkUwOwo+ID4gLSAgICAgICBsaW1pdC55X2JvdHRvbSA9 IDB4MDAxMDsKPiA+IC0gICAgICAgbGltaXQueV90b3AgPSAweDBGRTA7Cj4gPiArICAgICAgIGlm IChkcGktPmNvbmYtPmlzX2RwaW50Zikgewo+ID4gKyAgICAgICAgICAgICAgIGxpbWl0LmNfYm90 dG9tID0gMHgwMDAwOwo+ID4gKyAgICAgICAgICAgICAgIGxpbWl0LmNfdG9wID0gMHhGRkY7Cj4g PiArICAgICAgICAgICAgICAgbGltaXQueV9ib3R0b20gPSAweDAwMDA7Cj4gPiArICAgICAgICAg ICAgICAgbGltaXQueV90b3AgPSAweEZGRjsKPiA+ICsgICAgICAgfSBlbHNlIHsKPiA+ICsgICAg ICAgICAgICAgICBsaW1pdC5jX2JvdHRvbSA9IDB4MDAxMDsKPiA+ICsgICAgICAgICAgICAgICBs aW1pdC5jX3RvcCA9IDB4MEZFMDsKPiA+ICsgICAgICAgICAgICAgICBsaW1pdC55X2JvdHRvbSA9 IDB4MDAxMDsKPiA+ICsgICAgICAgICAgICAgICBsaW1pdC55X3RvcCA9IDB4MEZFMDsKPiA+ICsg ICAgICAgfQo+ID4KPiA+ICAgICAgICAgZHBpX3BvbC5ja19wb2wgPSBNVEtfRFBJX1BPTEFSSVRZ X0ZBTExJTkc7Cj4gPiAgICAgICAgIGRwaV9wb2wuZGVfcG9sID0gTVRLX0RQSV9QT0xBUklUWV9S SVNJTkc7Cj4gPiBAQCAtNDk1LDkgKzU3MywxNSBAQCBzdGF0aWMgaW50IG10a19kcGlfc2V0X2Rp c3BsYXlfbW9kZShzdHJ1Y3QgbXRrX2RwaSAqZHBpLAo+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIE1US19EUElfUE9MQVJJVFlfRkFMTElORyA6IE1US19EUElfUE9MQVJJVFlfUklTSU5H Owo+ID4gICAgICAgICBkcGlfcG9sLnZzeW5jX3BvbCA9IHZtLmZsYWdzICYgRElTUExBWV9GTEFH U19WU1lOQ19ISUdIID8KPiA+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBNVEtfRFBJX1BP TEFSSVRZX0ZBTExJTkcgOiBNVEtfRFBJX1BPTEFSSVRZX1JJU0lORzsKPiA+IC0gICAgICAgaHN5 bmMuc3luY193aWR0aCA9IHZtLmhzeW5jX2xlbjsKPiA+IC0gICAgICAgaHN5bmMuYmFja19wb3Jj aCA9IHZtLmhiYWNrX3BvcmNoOwo+ID4gLSAgICAgICBoc3luYy5mcm9udF9wb3JjaCA9IHZtLmhm cm9udF9wb3JjaDsKPiA+ICsgICAgICAgaWYgKGRwaS0+Y29uZi0+aXNfZHBpbnRmKSB7Cj4gPiAr ICAgICAgICAgICAgICAgaHN5bmMuc3luY193aWR0aCA9IHZtLmhzeW5jX2xlbiAvIDQ7Cj4gPiAr ICAgICAgICAgICAgICAgaHN5bmMuYmFja19wb3JjaCA9IHZtLmhiYWNrX3BvcmNoIC8gNDsKPiA+ ICsgICAgICAgICAgICAgICBoc3luYy5mcm9udF9wb3JjaCA9IHZtLmhmcm9udF9wb3JjaCAvIDQ7 Cj4gPiArICAgICAgIH0gZWxzZSB7Cj4gPiArICAgICAgICAgICAgICAgaHN5bmMuc3luY193aWR0 aCA9IHZtLmhzeW5jX2xlbjsKPiA+ICsgICAgICAgICAgICAgICBoc3luYy5iYWNrX3BvcmNoID0g dm0uaGJhY2tfcG9yY2g7Cj4gPiArICAgICAgICAgICAgICAgaHN5bmMuZnJvbnRfcG9yY2ggPSB2 bS5oZnJvbnRfcG9yY2g7Cj4gPiArICAgICAgIH0KPiA+ICAgICAgICAgaHN5bmMuc2hpZnRfaGFs Zl9saW5lID0gZmFsc2U7Cj4gPiAgICAgICAgIHZzeW5jX2xvZGQuc3luY193aWR0aCA9IHZtLnZz eW5jX2xlbjsKPiA+ICAgICAgICAgdnN5bmNfbG9kZC5iYWNrX3BvcmNoID0gdm0udmJhY2tfcG9y Y2g7Cj4gPiBAQCAtNTM5LDExICs2MjMsMTYgQEAgc3RhdGljIGludCBtdGtfZHBpX3NldF9kaXNw bGF5X21vZGUoc3RydWN0IG10a19kcGkgKmRwaSwKPiA+ICAgICAgICAgbXRrX2RwaV9jb25maWdf Y2hhbm5lbF9saW1pdChkcGksICZsaW1pdCk7Cj4gPiAgICAgICAgIG10a19kcGlfY29uZmlnX2Jp dF9udW0oZHBpLCBkcGktPmJpdF9udW0pOwo+ID4gICAgICAgICBtdGtfZHBpX2NvbmZpZ19jaGFu bmVsX3N3YXAoZHBpLCBkcGktPmNoYW5uZWxfc3dhcCk7Cj4gPiAtICAgICAgIG10a19kcGlfY29u ZmlnX3ljX21hcChkcGksIGRwaS0+eWNfbWFwKTsKPiA+ICAgICAgICAgbXRrX2RwaV9jb25maWdf Y29sb3JfZm9ybWF0KGRwaSwgZHBpLT5jb2xvcl9mb3JtYXQpOwo+ID4gLSAgICAgICBtdGtfZHBp X2NvbmZpZ18ybl9oX2ZyZShkcGkpOwo+ID4gLSAgICAgICBtdGtfZHBpX2R1YWxfZWRnZShkcGkp Owo+ID4gLSAgICAgICBtdGtfZHBpX2NvbmZpZ19kaXNhYmxlX2VkZ2UoZHBpKTsKPiA+ICsgICAg ICAgaWYgKGRwaS0+Y29uZi0+aXNfZHBpbnRmKSB7Cj4gPiArICAgICAgICAgICAgICAgbXRrX2Rw aV9tYXNrKGRwaSwgRFBJX0NPTiwgRFBJTlRGX0lOUFVUXzJQX0VOLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICBEUElOVEZfSU5QVVRfMlBfRU4pOwo+ID4gKyAgICAgICB9IGVsc2Ug ewo+ID4gKyAgICAgICAgICAgICAgIG10a19kcGlfY29uZmlnX3ljX21hcChkcGksIGRwaS0+eWNf bWFwKTsKPiA+ICsgICAgICAgICAgICAgICBtdGtfZHBpX2NvbmZpZ18ybl9oX2ZyZShkcGkpOwo+ ID4gKyAgICAgICAgICAgICAgIG10a19kcGlfZHVhbF9lZGdlKGRwaSk7Cj4gPiArICAgICAgICAg ICAgICAgbXRrX2RwaV9jb25maWdfZGlzYWJsZV9lZGdlKGRwaSk7Cj4gPiArICAgICAgIH0KPiA+ ICAgICAgICAgbXRrX2RwaV9zd19yZXNldChkcGksIGZhbHNlKTsKPiA+Cj4gPiAgICAgICAgIHJl dHVybiAwOwo+ID4gQEAgLTY4Nyw2ICs3NzYsMTcgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBkcm1f YnJpZGdlX2Z1bmNzIG10a19kcGlfYnJpZGdlX2Z1bmNzID0gewo+ID4gICAgICAgICAuYXRvbWlj X3Jlc2V0ID0gZHJtX2F0b21pY19oZWxwZXJfYnJpZGdlX3Jlc2V0LAo+ID4gIH07Cj4gPgo+ID4g K3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2JyaWRnZV9mdW5jcyBtdGtfZHBpbnRmX2JyaWRnZV9m dW5jcyA9IHsKPiA+ICsgICAgICAgLmF0dGFjaCA9IG10a19kcGlfYnJpZGdlX2F0dGFjaCwKPiA+ ICsgICAgICAgLm1vZGVfc2V0ID0gbXRrX2RwaV9icmlkZ2VfbW9kZV9zZXQsCj4gPiArICAgICAg IC5kaXNhYmxlID0gbXRrX2RwaV9icmlkZ2VfZGlzYWJsZSwKPiA+ICsgICAgICAgLmVuYWJsZSA9 IG10a19kcGlfYnJpZGdlX2VuYWJsZSwKPiA+ICsgICAgICAgLmF0b21pY19jaGVjayA9IG10a19k cGlfYnJpZGdlX2F0b21pY19jaGVjaywKPiA+ICsgICAgICAgLmF0b21pY19kdXBsaWNhdGVfc3Rh dGUgPSBkcm1fYXRvbWljX2hlbHBlcl9icmlkZ2VfZHVwbGljYXRlX3N0YXRlLAo+ID4gKyAgICAg ICAuYXRvbWljX2Rlc3Ryb3lfc3RhdGUgPSBkcm1fYXRvbWljX2hlbHBlcl9icmlkZ2VfZGVzdHJv eV9zdGF0ZSwKPiA+ICsgICAgICAgLmF0b21pY19yZXNldCA9IGRybV9hdG9taWNfaGVscGVyX2Jy aWRnZV9yZXNldCwKPiA+ICt9Owo+IAo+IEkgdGhpbmsgbXRrX2RwaW50Zl9icmlkZ2VfZnVuY3Mg aXMgdGhlIHNhbWUgYXMgbXRrX2RwaV9icmlkZ2VfZnVuYywgc28KPiByZW1vdmUgdGhpcyBhbmQg dXNlIG10a19kcGlfYnJpZGdlX2Z1bmMuCgpUaGV5IHdlcmVuJ3QgMTAwJSBpZGVudGljYWwgYXMg dGhlIG91dHB1dCBmb3JtYXRzIHdlcmUgbWlzc2luZy4gSSBsb29rZWQKdGhlc2UgdXAgaW4gdGhl IGRhdGFzaGVldCBhbmQgcmVjb21iaW5lZCB0aGVtLgoKPiAKPiA+ICsKPiA+ICB2b2lkIG10a19k cGlfc3RhcnQoc3RydWN0IGRldmljZSAqZGV2KQo+ID4gIHsKPiA+ICAgICAgICAgc3RydWN0IG10 a19kcGkgKmRwaSA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+ID4gQEAgLTc4MSw2ICs4ODEsMTYg QEAgc3RhdGljIHVuc2lnbmVkIGludCBtdDgxODNfY2FsY3VsYXRlX2ZhY3RvcihpbnQgY2xvY2sp Cj4gPiAgICAgICAgICAgICAgICAgcmV0dXJuIDI7Cj4gPiAgfQo+ID4KPiA+ICtzdGF0aWMgdW5z aWduZWQgaW50IG10ODE5NV9kcGludGZfY2FsY3VsYXRlX2ZhY3RvcihpbnQgY2xvY2spCj4gPiAr ewo+ID4gKyAgICAgICBpZiAoY2xvY2sgPCA3MDAwMCkKPiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gNDsKPiA+ICsgICAgICAgZWxzZSBpZiAoY2xvY2sgPCAyMDAwMDApCj4gPiArICAgICAgICAg ICAgICAgcmV0dXJuIDI7Cj4gPiArICAgICAgIGVsc2UKPiA+ICsgICAgICAgICAgICAgICByZXR1 cm4gMTsKPiA+ICt9Cj4gPiArCj4gPiAgc3RhdGljIGNvbnN0IHUzMiBtdDgxNzNfb3V0cHV0X2Zt dHNbXSA9IHsKPiA+ICAgICAgICAgTUVESUFfQlVTX0ZNVF9SR0I4ODhfMVgyNCwKPiA+ICB9Owo+ ID4gQEAgLTc5Niw2ICs5MDYsNyBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kcGlfY29uZiBt dDgxNzNfY29uZiA9IHsKPiA+ICAgICAgICAgLm1heF9jbG9ja19raHogPSAzMDAwMDAsCj4gPiAg ICAgICAgIC5vdXRwdXRfZm10cyA9IG10ODE3M19vdXRwdXRfZm10cywKPiA+ICAgICAgICAgLm51 bV9vdXRwdXRfZm10cyA9IEFSUkFZX1NJWkUobXQ4MTczX291dHB1dF9mbXRzKSwKPiA+ICsgICAg ICAgLmlzX2RwaW50ZiA9IGZhbHNlLAo+IAo+IEdsb2JhbCB2YXJpYWJsZSBpcyBkZWZ1YWx0IHpl cm8sIHNvIHJlbW92ZSB0aGlzLgoKRG9uZS4KCj4gCj4gPiAgfTsKPiA+Cj4gPiAgc3RhdGljIGNv bnN0IHN0cnVjdCBtdGtfZHBpX2NvbmYgbXQyNzAxX2NvbmYgPSB7Cj4gPiBAQCAtODA1LDYgKzkx Niw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgbXRrX2RwaV9jb25mIG10MjcwMV9jb25mID0gewo+ ID4gICAgICAgICAubWF4X2Nsb2NrX2toeiA9IDE1MDAwMCwKPiA+ICAgICAgICAgLm91dHB1dF9m bXRzID0gbXQ4MTczX291dHB1dF9mbXRzLAo+ID4gICAgICAgICAubnVtX291dHB1dF9mbXRzID0g QVJSQVlfU0laRShtdDgxNzNfb3V0cHV0X2ZtdHMpLAo+ID4gKyAgICAgICAuaXNfZHBpbnRmID0g ZmFsc2UsCj4gPiAgfTsKPiA+Cj4gPiAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZHBpX2NvbmYg bXQ4MTgzX2NvbmYgPSB7Cj4gPiBAQCAtODEzLDYgKzkyNSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgbXRrX2RwaV9jb25mIG10ODE4M19jb25mID0gewo+ID4gICAgICAgICAubWF4X2Nsb2NrX2to eiA9IDEwMDAwMCwKPiA+ICAgICAgICAgLm91dHB1dF9mbXRzID0gbXQ4MTgzX291dHB1dF9mbXRz LAo+ID4gICAgICAgICAubnVtX291dHB1dF9mbXRzID0gQVJSQVlfU0laRShtdDgxODNfb3V0cHV0 X2ZtdHMpLAo+ID4gKyAgICAgICAuaXNfZHBpbnRmID0gZmFsc2UsCj4gPiAgfTsKPiA+Cj4gPiAg c3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZHBpX2NvbmYgbXQ4MTkyX2NvbmYgPSB7Cj4gPiBAQCAt ODIxLDYgKzkzNCwxMiBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG10a19kcGlfY29uZiBtdDgxOTJf Y29uZiA9IHsKPiA+ICAgICAgICAgLm1heF9jbG9ja19raHogPSAxNTAwMDAsCj4gPiAgICAgICAg IC5vdXRwdXRfZm10cyA9IG10ODE3M19vdXRwdXRfZm10cywKPiA+ICAgICAgICAgLm51bV9vdXRw dXRfZm10cyA9IEFSUkFZX1NJWkUobXQ4MTczX291dHB1dF9mbXRzKSwKPiA+ICsgICAgICAgLmlz X2RwaW50ZiA9IGZhbHNlLAo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBt dGtfZHBpX2NvbmYgbXQ4MTk1X2RwaW50Zl9jb25mID0gewo+ID4gKyAgICAgICAuY2FsX2ZhY3Rv ciA9IG10ODE5NV9kcGludGZfY2FsY3VsYXRlX2ZhY3RvciwKPiA+ICsgICAgICAgLmlzX2RwaW50 ZiA9IHRydWUsCj4gPiAgfTsKPiA+Cj4gPiAgc3RhdGljIGludCBtdGtfZHBpX3Byb2JlKHN0cnVj dCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiBAQCAtODY2LDEzICs5ODUsMTYgQEAgc3RhdGlj IGludCBtdGtfZHBpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiAgICAg ICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICAgICAgICAgfQo+ID4KPiA+IC0gICAgICAgZHBp LT5lbmdpbmVfY2xrID0gZGV2bV9jbGtfZ2V0KGRldiwgImVuZ2luZSIpOwo+ID4gLSAgICAgICBp ZiAoSVNfRVJSKGRwaS0+ZW5naW5lX2NsaykpIHsKPiA+IC0gICAgICAgICAgICAgICByZXQgPSBQ VFJfRVJSKGRwaS0+ZW5naW5lX2Nsayk7Cj4gPiAtICAgICAgICAgICAgICAgaWYgKHJldCAhPSAt RVBST0JFX0RFRkVSKQo+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgZGV2X2VycihkZXYsICJG YWlsZWQgdG8gZ2V0IGVuZ2luZSBjbG9jazogJWRcbiIsIHJldCk7Cj4gPiArICAgICAgIGlmICgh ZHBpLT5jb25mLT5pc19kcGludGYpIHsKPiA+ICsgICAgICAgICAgICAgICBkcGktPmVuZ2luZV9j bGsgPSBkZXZtX2Nsa19nZXQoZGV2LCAiZW5naW5lIik7Cj4gPiArICAgICAgICAgICAgICAgaWYg KElTX0VSUihkcGktPmVuZ2luZV9jbGspKSB7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBy ZXQgPSBQVFJfRVJSKGRwaS0+ZW5naW5lX2Nsayk7Cj4gPiArICAgICAgICAgICAgICAgICAgICAg ICBpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIGRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBlbmdpbmUgY2xvY2s6ICVkXG4iLAo+ ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldCk7Cj4gPgo+ID4g LSAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiArICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gcmV0Owo+ID4gKyAgICAgICAgICAgICAgIH0KPiA+ICAgICAgICAgfQo+ID4KPiA+ICAg ICAgICAgZHBpLT5waXhlbF9jbGsgPSBkZXZtX2Nsa19nZXQoZGV2LCAicGl4ZWwiKTsKPiA+IEBA IC04OTMsNiArMTAxNSwyNCBAQCBzdGF0aWMgaW50IG10a19kcGlfcHJvYmUoc3RydWN0IHBsYXRm b3JtX2RldmljZSAqcGRldikKPiA+ICAgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gICAg ICAgICB9Cj4gPgo+ID4gKyAgICAgICBkcGktPmhmX2ZtbV9jbGsgPSBkZXZtX2Nsa19nZXRfb3B0 aW9uYWwoZGV2LCAiaGZfZm1tIik7Cj4gPiArICAgICAgIGlmIChJU19FUlIoZHBpLT5oZl9mbW1f Y2xrKSkgewo+ID4gKyAgICAgICAgICAgICAgIHJldCA9IFBUUl9FUlIoZHBpLT5oZl9mbW1fY2xr KTsKPiA+ICsgICAgICAgICAgICAgICBpZiAocmV0ICE9IC1FUFJPQkVfREVGRVIpCj4gPiArICAg ICAgICAgICAgICAgICAgICAgICBkZXZfZXJyKGRldiwgIkZhaWxlZCB0byBnZXQgaGZfZm1tIGNs b2NrOiAlZFxuIiwgcmV0KTsKPiA+ICsKPiA+ICsgICAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ ID4gKyAgICAgICB9Cj4gPiArCj4gPiArICAgICAgIGRwaS0+aGZfZmRwX2NsayA9IGRldm1fY2xr X2dldF9vcHRpb25hbChkZXYsICJoZl9mZHAiKTsKPiA+ICsgICAgICAgaWYgKElTX0VSUihkcGkt PmhmX2ZkcF9jbGspKSB7Cj4gPiArICAgICAgICAgICAgICAgcmV0ID0gUFRSX0VSUihkcGktPmhm X2ZkcF9jbGspOwo+ID4gKyAgICAgICAgICAgICAgIGlmIChyZXQgIT0gLUVQUk9CRV9ERUZFUikK PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiRmFpbGVkIHRvIGdldCBo Zl9mZHAgY2xvY2s6ICVkXG4iLCByZXQpOwo+ID4gKwo+ID4gKyAgICAgICAgICAgICAgIHJldHVy biByZXQ7Cj4gPiArICAgICAgIH0KPiAKPiBZb3UgZG9lcyBub3Qgc2VuZCB0aGUgZGV2aWNlIHRy ZWUgcGF0Y2gsIHNvIEkgZm91bmQgb25lIGluIGNocm9taXVtCj4gZ2Vycml0IFsxXS4gQ29tcGFy ZSB0aGUgY2xvY2sgb2YgZGlzcF9kcGkxIHdpdGggZHBfaW50ZjEsIEkgdGhpbmsKPiBoZl9mZHAg aXMgbGlrZWx5IHRoZSBwaXhlbCBjbG9jayBhbmQgaGZfZm1tIGlzIGxpa2VseSB0aGUgZW5naW5l Cj4gY2xvY2suIENvdWxkIHlvdSBwcm92aWRlIHRoZSBpbmZvcm1hdGlvbiBvZiB0aGUgZnVuY3Rp b24gb2YgZWFjaAo+IGNsb2NrPwoKVGhhbmsgeW91LiBJIGNoZWNrZWQgd2l0aCB0aGUgb3JpZ2lu YWwgYXV0aG9yIGFuZCBjYW4gbm93IGNvbmZpcm0gdGhhdAp0aGV5IGNhbiBiZSBtYXBwZWQgdG8g ZW5naW5lIGFuZCBwaXhlbCBjbG9jay4gSSBmaXhlZCB0aGF0LiBBbHNvIHRoZSBub3cKZmRwX2Ns ayBpcyB0aGUgZGlyZWN0IHBhcmVudCBvZiB0aGUgY3VycmVudCBwaXhlbCBjbG9jaywgc28gdGhl cmUgd2FzIG5vCm5lZWQgZm9yIGl0LiBTbyBiYXNpY2FsbHkgaXQgaXMgbm93IHJlZHVjZWQgdG8g dGhlIGNsb2NrcyBvZiB0aGUKb3JpZ2luYWwgZHBpIGRyaXZlciBhZ2Fpbi4gVGhhdCBhbHNvIG1l YW5zIHRoYXQgSSBhbSByZW1vdmluZyB0aGUKc2VwYXJhdGUgYmluZGluZyBkb2N1bWVudCBhcyB0 aGVyZSBpcyBubyBkaWZmZXJlbmNlIG90aGVyIHRoYW4gdGhlIG5hbWUKb2YgdGhlIGJsb2NrLgoK VGhhbmsgeW91IGZvciB5b3VyIGZlZWRiYWNrIENodW4tS3VhbmcuCgpCZXN0LApNYXJrdXMKCj4g Cj4gWzFdIGh0dHBzOi8vY2hyb21pdW0uZ29vZ2xlc291cmNlLmNvbS9jaHJvbWl1bW9zL3RoaXJk X3BhcnR5L2tlcm5lbC8rL3JlZnMvY2hhbmdlcy85OS8yNzgxNDk5LzIxOS9hcmNoL2FybTY0L2Jv b3QvZHRzL21lZGlhdGVrL210ODE5NS5kdHNpIzM0OTkKPiAKPiBSZWdhcmRzLAo+IENodW4tS3Vh bmcuCj4gCj4gPiArCj4gPiAgICAgICAgIGRwaS0+aXJxID0gcGxhdGZvcm1fZ2V0X2lycShwZGV2 LCAwKTsKPiA+ICAgICAgICAgaWYgKGRwaS0+aXJxIDw9IDApCj4gPiAgICAgICAgICAgICAgICAg cmV0dXJuIC1FSU5WQUw7Cj4gPiBAQCAtOTA2LDcgKzEwNDYsMTAgQEAgc3RhdGljIGludCBtdGtf ZHBpX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPgo+ID4gICAgICAgICBw bGF0Zm9ybV9zZXRfZHJ2ZGF0YShwZGV2LCBkcGkpOwo+ID4KPiA+IC0gICAgICAgZHBpLT5icmlk Z2UuZnVuY3MgPSAmbXRrX2RwaV9icmlkZ2VfZnVuY3M7Cj4gPiArICAgICAgIGlmIChkcGktPmNv bmYtPmlzX2RwaW50ZikKPiA+ICsgICAgICAgICAgICAgICBkcGktPmJyaWRnZS5mdW5jcyA9ICZt dGtfZHBpbnRmX2JyaWRnZV9mdW5jczsKPiA+ICsgICAgICAgZWxzZQo+ID4gKyAgICAgICAgICAg ICAgIGRwaS0+YnJpZGdlLmZ1bmNzID0gJm10a19kcGlfYnJpZGdlX2Z1bmNzOwo+ID4gICAgICAg ICBkcGktPmJyaWRnZS5vZl9ub2RlID0gZGV2LT5vZl9ub2RlOwo+ID4gICAgICAgICBkcGktPmJy aWRnZS50eXBlID0gRFJNX01PREVfQ09OTkVDVE9SX0RQSTsKPiA+Cj4gPiBAQCAtOTQ1LDYgKzEw ODgsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9pZCBtdGtfZHBpX29mX2lkc1td ID0gewo+ID4gICAgICAgICB7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5Mi1kcGkiLAo+ ID4gICAgICAgICAgIC5kYXRhID0gJm10ODE5Ml9jb25mLAo+ID4gICAgICAgICB9LAo+ID4gKyAg ICAgICB7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE5NS1kcGludGYiLAo+ID4gKyAgICAg ICAgIC5kYXRhID0gJm10ODE5NV9kcGludGZfY29uZiwKPiA+ICsgICAgICAgfSwKPiA+ICAgICAg ICAgeyB9LAo+ID4gIH07Cj4gPiAgTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgbXRrX2RwaV9vZl9p ZHMpOwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpX3Jl Z3MuaCBiL2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHBpX3JlZ3MuaAo+ID4gaW5kZXgg M2EwMmZhYmUxNjYyLi43MmVmZTZlZTI1ODQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9k cm0vbWVkaWF0ZWsvbXRrX2RwaV9yZWdzLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9tZWRp YXRlay9tdGtfZHBpX3JlZ3MuaAo+ID4gQEAgLTQwLDEwICs0MCwxNCBAQAo+ID4gICNkZWZpbmUg RkFLRV9ERV9MRVZFTiAgICAgICAgICAgICAgICAgIEJJVCgyMSkKPiA+ICAjZGVmaW5lIEZBS0Vf REVfUk9ERCAgICAgICAgICAgICAgICAgICBCSVQoMjIpCj4gPiAgI2RlZmluZSBGQUtFX0RFX1JF VkVOICAgICAgICAgICAgICAgICAgQklUKDIzKQo+ID4gKyNkZWZpbmUgRFBJTlRGX1lVVjQyMl9F TiAgICAgICAgICAgICAgIEJJVCgyNCkKPiA+ICsjZGVmaW5lIERQSU5URl9JTlBVVF8yUF9FTiAg ICAgICAgICAgICBCSVQoMjkpCj4gPgo+ID4gICNkZWZpbmUgRFBJX09VVFBVVF9TRVRUSU5HICAg ICAweDE0Cj4gPiAgI2RlZmluZSBDSF9TV0FQICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAwCj4gPiArI2RlZmluZSBEUElOVEZfQ0hfU1dBUCAgICAgICAgICAgICAgICAgQklUKDEpCj4g PiAgI2RlZmluZSBDSF9TV0FQX01BU0sgICAgICAgICAgICAgICAgICAgKDB4NyA8PCAwKQo+ID4g KyNkZWZpbmUgRFBJTlRGX0NIX1NXQVBfTUFTSyAgICAgICAgICAgICgweDcgPDwgMSkKPiA+ICAj ZGVmaW5lIFNXQVBfUkdCICAgICAgICAgICAgICAgICAgICAgICAweDAwCj4gPiAgI2RlZmluZSBT V0FQX0dCUiAgICAgICAgICAgICAgICAgICAgICAgMHgwMQo+ID4gICNkZWZpbmUgU1dBUF9CUkcg ICAgICAgICAgICAgICAgICAgICAgIDB4MDIKPiA+IEBAIC04MCw4ICs4NCwxMCBAQAo+ID4gICNk ZWZpbmUgRFBJX1NJWkUgICAgICAgICAgICAgICAweDE4Cj4gPiAgI2RlZmluZSBIU0laRSAgICAg ICAgICAgICAgICAgICAgICAgICAgMAo+ID4gICNkZWZpbmUgSFNJWkVfTUFTSyAgICAgICAgICAg ICAgICAgICAgICgweDFGRkYgPDwgMCkKPiA+ICsjZGVmaW5lIERQSU5URl9IU0laRV9NQVNLICAg ICAgICAgICAgICAoMHhGRkZGIDw8IDApCj4gPiAgI2RlZmluZSBWU0laRSAgICAgICAgICAgICAg ICAgICAgICAgICAgMTYKPiA+ICAjZGVmaW5lIFZTSVpFX01BU0sgICAgICAgICAgICAgICAgICAg ICAoMHgxRkZGIDw8IDE2KQo+ID4gKyNkZWZpbmUgRFBJTlRGX1ZTSVpFX01BU0sgICAgICAgICAg ICAgICgweEZGRkYgPDwgMTYpCj4gPgo+ID4gICNkZWZpbmUgRFBJX0REUl9TRVRUSU5HICAgICAg ICAgICAgICAgIDB4MUMKPiA+ICAjZGVmaW5lIEREUl9FTiAgICAgICAgICAgICAgICAgICAgICAg ICBCSVQoMCkKPiA+IEBAIC05MywyNCArOTksMzAgQEAKPiA+ICAjZGVmaW5lIERQSV9UR0VOX0hX SURUSCAgICAgICAgICAgICAgICAweDIwCj4gPiAgI2RlZmluZSBIUFcgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMAo+ID4gICNkZWZpbmUgSFBXX01BU0sgICAgICAgICAgICAgICAgICAgICAg ICgweEZGRiA8PCAwKQo+ID4gKyNkZWZpbmUgRFBJTlRGX0hQV19NQVNLICAgICAgICAgICAgICAg ICAgICAgICAgKDB4RkZGRiA8PCAwKQo+ID4KPiA+ICAjZGVmaW5lIERQSV9UR0VOX0hQT1JDSCAg ICAgICAgICAgICAgICAweDI0Cj4gPiAgI2RlZmluZSBIQlAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgMAo+ID4gICNkZWZpbmUgSEJQX01BU0sgICAgICAgICAgICAgICAgICAgICAgICgweEZG RiA8PCAwKQo+ID4gKyNkZWZpbmUgRFBJTlRGX0hCUF9NQVNLICAgICAgICAgICAgICAgICAgICAg ICAgKDB4RkZGRiA8PCAwKQo+ID4gICNkZWZpbmUgSEZQICAgICAgICAgICAgICAgICAgICAgICAg ICAgIDE2Cj4gPiAgI2RlZmluZSBIRlBfTUFTSyAgICAgICAgICAgICAgICAgICAgICAgKDB4RkZG IDw8IDE2KQo+ID4gKyNkZWZpbmUgRFBJTlRGX0hGUF9NQVNLICAgICAgICAgICAgICAgICAgICAg ICAgKDB4RkZGRiA8PCAxNikKPiA+Cj4gPiAgI2RlZmluZSBEUElfVEdFTl9WV0lEVEggICAgICAg ICAgICAgICAgMHgyOAo+ID4gICNkZWZpbmUgRFBJX1RHRU5fVlBPUkNIICAgICAgICAgICAgICAg IDB4MkMKPiA+Cj4gPiAgI2RlZmluZSBWU1lOQ19XSURUSF9TSElGVCAgICAgICAgICAgICAgMAo+ ID4gICNkZWZpbmUgVlNZTkNfV0lEVEhfTUFTSyAgICAgICAgICAgICAgICgweEZGRiA8PCAwKQo+ ID4gKyNkZWZpbmUgRFBJTlRGX1ZTWU5DX1dJRFRIX01BU0sgICAgICAgICAgICAgICAgKDB4RkZG RiA8PCAwKQo+ID4gICNkZWZpbmUgVlNZTkNfSEFMRl9MSU5FX1NISUZUICAgICAgICAgIDE2Cj4g PiAgI2RlZmluZSBWU1lOQ19IQUxGX0xJTkVfTUFTSyAgICAgICAgICAgQklUKDE2KQo+ID4gICNk ZWZpbmUgVlNZTkNfQkFDS19QT1JDSF9TSElGVCAgICAgICAgIDAKPiA+ICAjZGVmaW5lIFZTWU5D X0JBQ0tfUE9SQ0hfTUFTSyAgICAgICAgICAoMHhGRkYgPDwgMCkKPiA+ICsjZGVmaW5lIERQSU5U Rl9WU1lOQ19CQUNLX1BPUkNIX01BU0sgICAoMHhGRkZGIDw8IDApCj4gPiAgI2RlZmluZSBWU1lO Q19GUk9OVF9QT1JDSF9TSElGVCAgICAgICAgICAgICAgICAxNgo+ID4gICNkZWZpbmUgVlNZTkNf RlJPTlRfUE9SQ0hfTUFTSyAgICAgICAgICgweEZGRiA8PCAxNikKPiA+ICsjZGVmaW5lIERQSU5U Rl9WU1lOQ19GUk9OVF9QT1JDSF9NQVNLICAoMHhGRkZGIDw8IDE2KQo+ID4KPiA+ICAjZGVmaW5l IERQSV9CR19IQ05UTCAgICAgICAgICAgMHgzMAo+ID4gICNkZWZpbmUgQkdfUklHSFQgICAgICAg ICAgICAgICAgICAgICAgICgweDFGRkYgPDwgMCkKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlh dGVrL210a19kcm1fZGRwX2NvbXAuYwo+ID4gaW5kZXggOTljYmY0NDQ2M2U0Li5kYTllMDU5MzEy YTUgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBf Y29tcC5jCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29t cC5jCj4gPiBAQCAtMzE3LDYgKzMxNyw3IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbXRr X2RkcF9jb21wX3N0ZW1bTVRLX0REUF9DT01QX1RZUEVfTUFYXSA9IHsKPiA+ICAgICAgICAgW01U S19ESVNQX1VGT0VdID0gInVmb2UiLAo+ID4gICAgICAgICBbTVRLX0RTSV0gPSAiZHNpIiwKPiA+ ICAgICAgICAgW01US19EUEldID0gImRwaSIsCj4gPiArICAgICAgIFtNVEtfRFBfSU5URl0gPSAi ZHAtaW50ZiIsCj4gPiAgICAgICAgIFtNVEtfRElTUF9QV01dID0gInB3bSIsCj4gPiAgICAgICAg IFtNVEtfRElTUF9NVVRFWF0gPSAibXV0ZXgiLAo+ID4gICAgICAgICBbTVRLX0RJU1BfT0RdID0g Im9kIiwKPiA+IEBAIC0zMzksNiArMzQwLDggQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBtdGtfZGRw X2NvbXBfbWF0Y2ggbXRrX2RkcF9tYXRjaGVzW0REUF9DT01QT05FTlRfSURfTUFYXSA9IHsKPiA+ ICAgICAgICAgW0REUF9DT01QT05FTlRfRElUSEVSXSAgPSB7IE1US19ESVNQX0RJVEhFUiwgICAg MCwgJmRkcF9kaXRoZXIgfSwKPiA+ICAgICAgICAgW0REUF9DT01QT05FTlRfRFBJMF0gICAgPSB7 IE1US19EUEksICAgICAgICAgICAgMCwgJmRkcF9kcGkgfSwKPiA+ICAgICAgICAgW0REUF9DT01Q T05FTlRfRFBJMV0gICAgPSB7IE1US19EUEksICAgICAgICAgICAgMSwgJmRkcF9kcGkgfSwKPiA+ ICsgICAgICAgW0REUF9DT01QT05FTlRfRFBfSU5URjBdPSB7IE1US19EUF9JTlRGLCAgICAgICAg MCwgJmRkcF9kcGkgfSwKPiA+ICsgICAgICAgW0REUF9DT01QT05FTlRfRFBfSU5URjFdPSB7IE1U S19EUF9JTlRGLCAgICAgICAgMSwgJmRkcF9kcGkgfSwKPiA+ICAgICAgICAgW0REUF9DT01QT05F TlRfRFNJMF0gICAgPSB7IE1US19EU0ksICAgICAgICAgICAgMCwgJmRkcF9kc2kgfSwKPiA+ICAg ICAgICAgW0REUF9DT01QT05FTlRfRFNJMV0gICAgPSB7IE1US19EU0ksICAgICAgICAgICAgMSwg JmRkcF9kc2kgfSwKPiA+ICAgICAgICAgW0REUF9DT01QT05FTlRfRFNJMl0gICAgPSB7IE1US19E U0ksICAgICAgICAgICAgMiwgJmRkcF9kc2kgfSwKPiA+IEBAIC00NzYsNiArNDc5LDcgQEAgaW50 IG10a19kZHBfY29tcF9pbml0KHN0cnVjdCBkZXZpY2Vfbm9kZSAqbm9kZSwgc3RydWN0IG10a19k ZHBfY29tcCAqY29tcCwKPiA+ICAgICAgICAgICAgIHR5cGUgPT0gTVRLX0RJU1BfQ09MT1IgfHwK PiA+ICAgICAgICAgICAgIHR5cGUgPT0gTVRLX0RJU1BfR0FNTUEgfHwKPiA+ICAgICAgICAgICAg IHR5cGUgPT0gTVRLX0RQSSB8fAo+ID4gKyAgICAgICAgICAgdHlwZSA9PSBNVEtfRFBfSU5URiB8 fAo+ID4gICAgICAgICAgICAgdHlwZSA9PSBNVEtfRFNJIHx8Cj4gPiAgICAgICAgICAgICB0eXBl ID09IE1US19ESVNQX09WTCB8fAo+ID4gICAgICAgICAgICAgdHlwZSA9PSBNVEtfRElTUF9PVkxf MkwgfHwKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9k ZHBfY29tcC5oIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZGRwX2NvbXAuaAo+ ID4gaW5kZXggYmI5MTRkOTc2Y2Y1Li5lZTlkODUzY2ZhMWMgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oCj4gPiArKysgYi9kcml2ZXJz L2dwdS9kcm0vbWVkaWF0ZWsvbXRrX2RybV9kZHBfY29tcC5oCj4gPiBAQCAtMzAsNiArMzAsNyBA QCBlbnVtIG10a19kZHBfY29tcF90eXBlIHsKPiA+ICAgICAgICAgTVRLX0RJU1BfVUZPRSwKPiA+ ICAgICAgICAgTVRLX0RTSSwKPiA+ICAgICAgICAgTVRLX0RQSSwKPiA+ICsgICAgICAgTVRLX0RQ X0lOVEYsCj4gPiAgICAgICAgIE1US19ESVNQX1BXTSwKPiA+ICAgICAgICAgTVRLX0RJU1BfTVVU RVgsCj4gPiAgICAgICAgIE1US19ESVNQX09ELAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jIGIvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210 a19kcm1fZHJ2LmMKPiA+IGluZGV4IGFlYzM5NzI0ZWJlYi4uMWZmNGUzMWM4NjM0IDEwMDY0NAo+ ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL21lZGlhdGVrL210a19kcm1fZHJ2LmMKPiA+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9tZWRpYXRlay9tdGtfZHJtX2Rydi5jCj4gPiBAQCAtNDU5LDYgKzQ1 OSw4IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgb2ZfZGV2aWNlX2lkIG10a19kZHBfY29tcF9kdF9p ZHNbXSA9IHsKPiA+ICAgICAgICAgICAuZGF0YSA9ICh2b2lkICopTVRLX0RQSSB9LAo+ID4gICAg ICAgICB7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10ODE4My1kcGkiLAo+ID4gICAgICAgICAg IC5kYXRhID0gKHZvaWQgKilNVEtfRFBJIH0sCj4gPiArICAgICAgIHsgLmNvbXBhdGlibGUgPSAi bWVkaWF0ZWssbXQ4MTk1LWRwaW50ZiIsCj4gPiArICAgICAgICAgLmRhdGEgPSAodm9pZCAqKU1U S19EUF9JTlRGIH0sCj4gPiAgICAgICAgIHsgLmNvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQyNzAx LWRpc3AtbXV0ZXgiLAo+ID4gICAgICAgICAgIC5kYXRhID0gKHZvaWQgKilNVEtfRElTUF9NVVRF WCB9LAo+ID4gICAgICAgICB7IC5jb21wYXRpYmxlID0gIm1lZGlhdGVrLG10MjcxMi1kaXNwLW11 dGV4IiwKPiA+IEBAIC01NjksNyArNTcxLDggQEAgc3RhdGljIGludCBtdGtfZHJtX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPiAgICAgICAgICAgICAgICAgICAgIGNvbXBf dHlwZSA9PSBNVEtfRElTUF9PVkxfMkwgfHwKPiA+ICAgICAgICAgICAgICAgICAgICAgY29tcF90 eXBlID09IE1US19ESVNQX1JETUEgfHwKPiA+ICAgICAgICAgICAgICAgICAgICAgY29tcF90eXBl ID09IE1US19EU0kgfHwKPiA+IC0gICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19E UEkpIHsKPiA+ICsgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19EUEkgfHwKPiA+ ICsgICAgICAgICAgICAgICAgICAgY29tcF90eXBlID09IE1US19EUF9JTlRGKSB7Cj4gPiAgICAg ICAgICAgICAgICAgICAgICAgICBkZXZfaW5mbyhkZXYsICJBZGRpbmcgY29tcG9uZW50IG1hdGNo IGZvciAlcE9GXG4iLAo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbm9kZSk7 Cj4gPiAgICAgICAgICAgICAgICAgICAgICAgICBkcm1fb2ZfY29tcG9uZW50X21hdGNoX2FkZChk ZXYsICZtYXRjaCwgY29tcGFyZV9vZiwKPiA+IC0tCj4gPiAyLjMzLjAKPiA+CgpfX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eC1tZWRpYXRlayBtYWls aW5nIGxpc3QKTGludXgtbWVkaWF0ZWtAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMu aW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW1lZGlhdGVrCg==