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=-10.7 required=3.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 83350C47082 for ; Mon, 31 May 2021 13:44:24 +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 41A48619B8 for ; Mon, 31 May 2021 13:44:24 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 41A48619B8 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@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:Cc:To:Subject:Message-ID:Date:From: In-Reply-To:References:MIME-Version:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=HiTPzUyVmHad8Gbhgh2qAbxQY5+UvE8VXGD8W4zv4Wk=; b=e6Vd76pw/7P0IY Q23wI6l3Mzi0HYoyAc4r5IStnxiLReb0pG6Qk3WtQRY3bg3A747YhslEuqHpkGf9fDQGQe0QdodgI g7gijZNiz7RT5AcVvejbxVnFc70ZJo1x55jUAa6qOij3cdHsSBWzX1oIi1ytZhd5Sxw7LnLk337Xc tEtx23A4YQbEcVpZkEHtk6pq6DJkEs4exrRx0oiVe7eWkSDiGBkGhsaoGGIvOQ+TFy4EHGF5SsKd1 kOsmVkJMRoJbKeGNBHFkvbLWR7p1EIUPTN3Ake4Bq0XyALzZ8PS49Lo9cNvK/8LDeHFT4yZ0LohwP hpbxHMvycqlD6eIMy0FQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lniB1-00COwk-JF; Mon, 31 May 2021 13:41:56 +0000 Received: from mail-il1-x133.google.com ([2607:f8b0:4864:20::133]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lni9j-00COaa-So for linux-arm-kernel@lists.infradead.org; Mon, 31 May 2021 13:40:41 +0000 Received: by mail-il1-x133.google.com with SMTP id c2so9995708ilo.11 for ; Mon, 31 May 2021 06:40:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc:content-transfer-encoding; bh=AgehNNBl0RWbsDTOpXYP8AKv0vLkamKrqcwCq8PAIbc=; b=USoblbATXgJRyju0GPPiAjftuPmDcXTIiNcpJLD+uAoV/2vTmLEpohRTJbcqssUWN/ dCcqyI2xwRCp4IXqCTVzoJp01ia8YmXlCstTrQ3j9703B2Nw7WHBUnmJmx2cFXgnWrri hJZIeMK7ntcyf+6oc8YQQi1d0bHj1bvIq6maHIHnbMkwJn2jrtnyAbhO3EyGx3UuFrlA tqJ9DBXcVAA0kxqC1WG4P8MCeGTv70wWrSeLm2ddLbeRNmUPo41YF0iNzkl6qKc0v94g xYVG5dsdL6EhXRQDgIdt66uOPTu2Hg1QVpjbwf2xp+hnsA/dshOMr1t22ecv7+j4Qz2a thXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc:content-transfer-encoding; bh=AgehNNBl0RWbsDTOpXYP8AKv0vLkamKrqcwCq8PAIbc=; b=TZluITwTNL41VXFCZYHr7kNYcIR8+H+QtGHTxfZmJ0uDnzO0q4SWoiyYf8+dsLVzs4 ws+sSRunWttc9kOJ9hnT/GGnMHFJg7/bARNM4TNueuuU5uv61le82zPlswje9Rrnap5C 85FHatyH+eQamONyTlAJQqBenfMoGRzULtF8QFsofVqqRRt75QKnQV/UkME/oqFBa84e GqhthObYusYGcdo2Wfv29Szy3OCio3QJvTf9j0YC9WySckiF+ZQrcvu/N6B786CAumq8 CukT1QEYKXOoxHsULeuhQjZSoL0EjXlfC/ttf9tLVggQmT+CE2H023+C/qJKEda3XwTz 4R4w== X-Gm-Message-State: AOAM533PUwTk66L6vWU+5JQABfjyYIOyWuXn+iI8EmbkakNeCIlYYo1j bDATPxtORJT9aA8uxn0UbAoiVg9eDEvFOYzYrwk= X-Google-Smtp-Source: ABdhPJwRq9J7Q6lx6Lezp40CA/Hvg0Vy4asbzFz8/xv53+AwhBpVfiPQa7FtkkrZo37yBnksaiAGkq89C74F+3X7f5k= X-Received: by 2002:a92:a302:: with SMTP id a2mr17315181ili.184.1622468434425; Mon, 31 May 2021 06:40:34 -0700 (PDT) MIME-Version: 1.0 References: <1620990152-19255-1-git-send-email-dillon.minfei@gmail.com> <1620990152-19255-2-git-send-email-dillon.minfei@gmail.com> <56b41c37-147b-bf89-c840-2c5f08863a36@foss.st.com> In-Reply-To: <56b41c37-147b-bf89-c840-2c5f08863a36@foss.st.com> From: Dillon Min Date: Mon, 31 May 2021 21:39:57 +0800 Message-ID: Subject: Re: [PATCH 1/4] drm/panel: Add ilitek ili9341 panel driver To: Patrice CHOTARD Cc: pierre-yves.mordret@foss.st.com, alain.volmat@foss.st.com, Maxime Coquelin , Alexandre TORGUE , Sumit Semwal , christian.koenig@amd.com, Michael Turquette , Stephen Boyd , linux-i2c@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, Linux ARM , Linux Kernel Mailing List , linux-media , "open list:DRM PANEL DRIVERS" , linaro-mm-sig@lists.linaro.org, linux-clk X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210531_064036_048168_7F577C1E X-CRM114-Status: GOOD ( 37.02 ) 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 T24gTW9uLCBNYXkgMzEsIDIwMjEgYXQgOToxNSBQTSBQYXRyaWNlIENIT1RBUkQKPHBhdHJpY2Uu Y2hvdGFyZEBmb3NzLnN0LmNvbT4gd3JvdGU6Cj4KPiBIaSBEaWxsb24KPgo+IFdoZW4gdHJ5aW5n IHRvIGFwcGx5aW5nIHRoaXMgcGF0Y2ggdXNpbmcgImdpdCBhbSAtLTMgPHBhdGNoPiIgIGkgZ290 IHRoaXMgZXJyb3IgOgo+Cj4gZXJyb3I6IGNhbm5vdCBjb252ZXJ0IGZyb20geSB0byBVVEYtOAo+ IGZhdGFsOiBjb3VsZCBub3QgcGFyc2UgcGF0Y2gKPgo+IFdoZXJlYXMgaSBnb3Qgbm8gc2ltaWxh ciBlcnJvciB3aXRoIHRoZSBvdGhlciBwYXRjaCAyLzMgYW5kIDQuCj4KPiBJIGZpbmQgYSB3YXkg dG8gYXBwbHkgaXQgYW55d2F5LgoKU29ycnkgZm9yIHRoZSBpbmNvbnZlbmllbmNlLCBJIHdpbGwg ZG91YmxlIHZlcmlmeSB0aGUgJ2dpdCBhbScgcHJvY2VzcwpvbiB0aGlzIHBhdGNoIGxhdGVyLgoK VGhhbmtzLgoKQmVzdCBSZWdhcmRzCkRpbGxvbgoKPgo+IFBhdHJpY2UKPgo+Cj4gT24gNS8xNC8y MSAxOjAyIFBNLCBkaWxsb24ubWluZmVpQGdtYWlsLmNvbSB3cm90ZToKPiA+IEZyb206IERpbGxv biBNaW4gPGRpbGxvbi5taW5mZWlAZ21haWwuY29tPgo+ID4KPiA+IFRoaXMgZHJpdmVyIGNvbWJp bmUgdGlueS9pbGk5MzQxLmMgbWlwaV9kYmlfaW50ZXJmYWNlIGRyaXZlcgo+ID4gd2l0aCBtaXBp X2RwaV9pbnRlcmZhY2UgZHJpdmVyLCBjYW4gc3VwcG9ydCBpbGk5MzQxIHdpdGggc2VyaWFsCj4g PiBtb2RlIG9yIHBhcmFsbGVsIHJnYiBpbnRlcmZhY2UgbW9kZSBieSByZWdpc3RlciBjb25maWd1 cmF0aW9uLgo+ID4KPiA+IFJldmlld2VkLWJ5OiBMaW51cyBXYWxsZWlqIDxsaW51cy53YWxsZWlq QGxpbmFyby5vcmc+Cj4gPiBMaW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9sa21sLzE1OTAz NzgzNDgtODExNS03LWdpdC1zZW5kLWVtYWlsLWRpbGxvbi5taW5mZWlAZ21haWwuY29tLwo+ID4g U2lnbmVkLW9mZi1ieTogRGlsbG9uIE1pbiA8ZGlsbG9uLm1pbmZlaUBnbWFpbC5jb20+Cj4gPiAt LS0KPiA+ICBkcml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZyAgICAgICAgICAgICAgICB8ICAg MTIgKwo+ID4gIGRyaXZlcnMvZ3B1L2RybS9wYW5lbC9NYWtlZmlsZSAgICAgICAgICAgICAgIHwg ICAgMSArCj4gPiAgZHJpdmVycy9ncHUvZHJtL3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5MzQxLmMg fCAxMjg1ICsrKysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgMyBmaWxlcyBjaGFuZ2VkLCAx Mjk4IGluc2VydGlvbnMoKykKPiA+ICBjcmVhdGUgbW9kZSAxMDA3NTUgZHJpdmVycy9ncHUvZHJt L3BhbmVsL3BhbmVsLWlsaXRlay1pbGk5MzQxLmMKPiA+Cj4gPiBkaWZmIC0tZ2l0IGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZwo+ ID4gaW5kZXggNDg5NDkxMzkzNmU5Li5lNGJhYmJhMTc4NjQgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vcGFuZWwvS2NvbmZpZwo+ID4gKysrIGIvZHJpdmVycy9ncHUvZHJtL3BhbmVs L0tjb25maWcKPiA+IEBAIC0xMjMsNiArMTIzLDE4IEBAIGNvbmZpZyBEUk1fUEFORUxfSUxJVEVL X0lMOTMyMgo+ID4gICAgICAgICBTYXkgWSBoZXJlIGlmIHlvdSB3YW50IHRvIGVuYWJsZSBzdXBw b3J0IGZvciBJbGl0ZWsgSUw5MzIyCj4gPiAgICAgICAgIFFWR0EgKDMyMHgyNDApIFJHQiwgWVVW IGFuZCBJVFUtVCBCVC42NTYgcGFuZWxzLgo+ID4KPiA+ICtjb25maWcgRFJNX1BBTkVMX0lMSVRF S19JTEk5MzQxCj4gPiArICAgICB0cmlzdGF0ZSAiSWxpdGVrIElMSTkzNDEgMjQweDMyMCBRVkdB IHBhbmVscyIKPiA+ICsgICAgIGRlcGVuZHMgb24gT0YgJiYgU1BJCj4gPiArICAgICBkZXBlbmRz IG9uIERSTV9LTVNfSEVMUEVSCj4gPiArICAgICBkZXBlbmRzIG9uIERSTV9LTVNfQ01BX0hFTFBF Ugo+ID4gKyAgICAgZGVwZW5kcyBvbiBCQUNLTElHSFRfQ0xBU1NfREVWSUNFCj4gPiArICAgICBz ZWxlY3QgRFJNX01JUElfREJJCj4gPiArICAgICBoZWxwCj4gPiArICAgICAgIFNheSBZIGhlcmUg aWYgeW91IHdhbnQgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIElsaXRlayBJTDkzNDEKPiA+ICsgICAg ICAgUVZHQSAoMjQweDMyMCkgUkdCIHBhbmVscy4gc3VwcG9ydCBzZXJpYWwgJiBwYXJhbGxlbCBy Z2IKPiA+ICsgICAgICAgaW50ZXJmYWNlLgo+ID4gKwo+ID4gIGNvbmZpZyBEUk1fUEFORUxfSUxJ VEVLX0lMSTk4ODFDCj4gPiAgICAgICB0cmlzdGF0ZSAiSWxpdGVrIElMSTk4ODFDLWJhc2VkIHBh bmVscyIKPiA+ICAgICAgIGRlcGVuZHMgb24gT0YKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dw dS9kcm0vcGFuZWwvTWFrZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvTWFrZWZpbGUKPiA+ IGluZGV4IGNhZTRkOTc2YzA2OS4uMGVjZGUxODQ2NjVkIDEwMDY0NAo+ID4gLS0tIGEvZHJpdmVy cy9ncHUvZHJtL3BhbmVsL01ha2VmaWxlCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vcGFuZWwv TWFrZWZpbGUKPiA+IEBAIC0xMSw2ICsxMSw3IEBAIG9iai0kKENPTkZJR19EUk1fUEFORUxfRUxJ REFfS0QzNVQxMzMpICs9IHBhbmVsLWVsaWRhLWtkMzV0MTMzLm8KPiA+ICBvYmotJChDT05GSUdf RFJNX1BBTkVMX0ZFSVhJTl9LMTAxX0lNMkJBMDIpICs9IHBhbmVsLWZlaXhpbi1rMTAxLWltMmJh MDIubwo+ID4gIG9iai0kKENPTkZJR19EUk1fUEFORUxfRkVJWUFOR19GWTA3MDI0REkyNkEzMEQp ICs9IHBhbmVsLWZlaXlhbmctZnkwNzAyNGRpMjZhMzBkLm8KPiA+ICBvYmotJChDT05GSUdfRFJN X1BBTkVMX0lMSVRFS19JTDkzMjIpICs9IHBhbmVsLWlsaXRlay1pbGk5MzIyLm8KPiA+ICtvYmot JChDT05GSUdfRFJNX1BBTkVMX0lMSVRFS19JTEk5MzQxKSArPSBwYW5lbC1pbGl0ZWstaWxpOTM0 MS5vCj4gPiAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9JTElURUtfSUxJOTg4MUMpICs9IHBhbmVs LWlsaXRlay1pbGk5ODgxYy5vCj4gPiAgb2JqLSQoQ09ORklHX0RSTV9QQU5FTF9JTk5PTFVYX1Aw NzlaQ0EpICs9IHBhbmVsLWlubm9sdXgtcDA3OXpjYS5vCj4gPiAgb2JqLSQoQ09ORklHX0RSTV9Q QU5FTF9KRElfTFQwNzBNRTA1MDAwKSArPSBwYW5lbC1qZGktbHQwNzBtZTA1MDAwLm8KPiA+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzNDEuYyBi L2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWstaWxpOTM0MS5jCj4gPiBuZXcgZmls ZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMDAwMDAwLi5mODQ5ODNjYmIyNTAKPiA+IC0t LSAvZGV2L251bGwKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9wYW5lbC9wYW5lbC1pbGl0ZWst aWxpOTM0MS5jCj4gPiBAQCAtMCwwICsxLDEyODUgQEAKPiA+ICsvLyBTUERYLUxpY2Vuc2UtSWRl bnRpZmllcjogR1BMLTIuMC1vbmx5Cj4gPiArLyoKPiA+ICsgKiBJbGl0ZWsgSUxJOTM0MSBURlQg TENEIGRybV9wYW5lbCBkcml2ZXIuCj4gPiArICoKPiA+ICsgKiBUaGlzIHBhbmVsIGNhbiBiZSBj b25maWd1cmVkIHRvIHN1cHBvcnQ6Cj4gPiArICogLSAxNi1iaXQgcGFyYWxsZWwgUkdCIGludGVy ZmFjZQo+ID4gKyAqIC0gMTgtYml0IHBhcmFsbGVsIFJHQiBpbnRlcmZhY2UKPiA+ICsgKiAtIDQt bGluZSBzZXJpYWwgc3BpIGludGVyZmFjZQo+ID4gKyAqCj4gPiArICogQ29weXJpZ2h0IChDKSAy MDIwIERpbGxvbiBNaW4gPGRpbGxvbi5taW5mZWlAZ21haWwuY29tPgo+ID4gKyAqIERlcml2ZWQg ZnJvbSBkcml2ZXJzL2RybS9ncHUvcGFuZWwvcGFuZWwtaWxpdGVrLWlsaTkzMjIuYwo+ID4gKyAq Lwo+ID4gKwo+ID4gKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KPiA+ICsjaW5jbHVkZSA8bGlu dXgvZ3Bpby9jb25zdW1lci5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUuaD4KPiA+ICsj aW5jbHVkZSA8bGludXgvb2ZfZGV2aWNlLmg+Cj4gPiArI2luY2x1ZGUgPGxpbnV4L3JlZ3VsYXRv ci9jb25zdW1lci5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9zcGkvc3BpLmg+Cj4gPiArI2luY2x1 ZGUgPGxpbnV4L2RlbGF5Lmg+Cj4gPiArI2luY2x1ZGUgPHZpZGVvL21pcGlfZGlzcGxheS5oPgo+ ID4gKyNpbmNsdWRlIDxkcm0vZHJtX21pcGlfZGJpLmg+Cj4gPiArI2luY2x1ZGUgPGRybS9kcm1f Z2VtX2ZyYW1lYnVmZmVyX2hlbHBlci5oPgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX2dlbV9jbWFf aGVscGVyLmg+Cj4gPiArI2luY2x1ZGUgPGRybS9kcm1fZmJfaGVscGVyLmg+Cj4gPiArI2luY2x1 ZGUgPGRybS9kcm1fZ2VtX2F0b21pY19oZWxwZXIuaD4KPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9h dG9taWNfaGVscGVyLmg+Cj4gPiArCj4gPiArI2luY2x1ZGUgPGRybS9kcm1fZHJ2Lmg+Cj4gPiAr I2luY2x1ZGUgPGRybS9kcm1fbW9kZXMuaD4KPiA+ICsjaW5jbHVkZSA8ZHJtL2RybV9wYW5lbC5o Pgo+ID4gKyNpbmNsdWRlIDxkcm0vZHJtX3ByaW50Lmg+Cj4gPiArCj4gPiArI2RlZmluZSBJTEk5 MzQxX1JHQl9JTlRFUkZBQ0UgIDB4YjAgICAvKiBSR0IgSW50ZXJmYWNlIFNpZ25hbCBDb250cm9s ICovCj4gPiArI2RlZmluZSBJTEk5MzQxX0ZSQyAgICAgICAgICAgIDB4YjEgICAvKiBGcmFtZSBS YXRlIENvbnRyb2wgcmVnaXN0ZXIgKi8KPiA+ICsjZGVmaW5lIElMSTkzNDFfREZDICAgICAgICAg ICAgMHhiNiAgIC8qIERpc3BsYXkgRnVuY3Rpb24gQ29udHJvbCByZWdpc3RlciAqLwo+ID4gKyNk ZWZpbmUgSUxJOTM0MV9QT1dFUjEgICAgICAgICAweGMwICAgLyogUG93ZXIgQ29udHJvbCAxIHJl Z2lzdGVyICovCj4gPiArI2RlZmluZSBJTEk5MzQxX1BPV0VSMiAgICAgICAgIDB4YzEgICAvKiBQ b3dlciBDb250cm9sIDIgcmVnaXN0ZXIgKi8KPiA+ICsjZGVmaW5lIElMSTkzNDFfVkNPTTEgICAg ICAgICAgMHhjNSAgIC8qIFZDT00gQ29udHJvbCAxIHJlZ2lzdGVyICovCj4gPiArI2RlZmluZSBJ TEk5MzQxX1ZDT00yICAgICAgICAgIDB4YzcgICAvKiBWQ09NIENvbnRyb2wgMiByZWdpc3RlciAq Lwo+ID4gKyNkZWZpbmUgSUxJOTM0MV9QT1dFUkEgICAgICAgICAweGNiICAgLyogUG93ZXIgY29u dHJvbCBBIHJlZ2lzdGVyICovCj4gPiArI2RlZmluZSBJTEk5MzQxX1BPV0VSQiAgICAgICAgIDB4 Y2YgICAvKiBQb3dlciBjb250cm9sIEIgcmVnaXN0ZXIgKi8KPiA+ICsjZGVmaW5lIElMSTkzNDFf UEdBTU1BICAgICAgICAgMHhlMCAgIC8qIFBvc2l0aXZlIEdhbW1hIENvcnJlY3Rpb24gcmVnaXN0 ZXIgKi8KPiA+ICsjZGVmaW5lIElMSTkzNDFfTkdBTU1BICAgICAgICAgMHhlMSAgIC8qIE5lZ2F0 aXZlIEdhbW1hIENvcnJlY3Rpb24gcmVnaXN0ZXIgKi8KPiA+ICsjZGVmaW5lIElMSTkzNDFfRFRD QSAgICAgICAgICAgMHhlOCAgIC8qIERyaXZlciB0aW1pbmcgY29udHJvbCBBICovCj4gPiArI2Rl ZmluZSBJTEk5MzQxX0RUQ0IgICAgICAgICAgIDB4ZWEgICAvKiBEcml2ZXIgdGltaW5nIGNvbnRy b2wgQiAqLwo+ID4gKyNkZWZpbmUgSUxJOTM0MV9QT1dFUl9TRVEgICAgICAweGVkICAgLyogUG93 ZXIgb24gc2VxdWVuY2UgcmVnaXN0ZXIgKi8KPiA+ICsjZGVmaW5lIElMSTkzNDFfM0dBTU1BX0VO ICAgICAgMHhmMiAgIC8qIDMgR2FtbWEgZW5hYmxlIHJlZ2lzdGVyICovCj4gPiArI2RlZmluZSBJ TEk5MzQxX0lOVEVSRkFDRSAgICAgIDB4ZjYgICAvKiBJbnRlcmZhY2UgY29udHJvbCByZWdpc3Rl ciAqLwo+ID4gKyNkZWZpbmUgSUxJOTM0MV9QUkMgICAgICAgICAgICAweGY3ICAgLyogUHVtcCBy YXRpbyBjb250cm9sIHJlZ2lzdGVyICovCj4gPiArI2RlZmluZSBJTEk5MzQxX0VUTU9EICAgICAg ICAgICAgICAgMHhiNyAgIC8qIEVudHJ5IG1vZGUgc2V0ICovCj4gPiArCj4gPiArI2RlZmluZSBJ TEk5MzQxX01BRENUTF9CR1IgICBCSVQoMykKPiA+ICsjZGVmaW5lIElMSTkzNDFfTUFEQ1RMX01W ICAgIEJJVCg1KQo+ID4gKyNkZWZpbmUgSUxJOTM0MV9NQURDVExfTVggICAgQklUKDYpCj4gPiAr I2RlZmluZSBJTEk5MzQxX01BRENUTF9NWSAgICBCSVQoNykKPiA+ICsKPiA+ICsKPiA+ICsjZGVm aW5lIElMSTkzNDFfUE9XRVJfQl9MRU4gIDMKPiA+ICsjZGVmaW5lIElMSTkzNDFfUE9XRVJfU0VR X0xFTiAgICAgICAgNAo+ID4gKyNkZWZpbmUgSUxJOTM0MV9EVENBX0xFTiAgICAgMwo+ID4gKyNk ZWZpbmUgSUxJOTM0MV9EVENCX0xFTiAgICAgMgo+ID4gKyNkZWZpbmUgSUxJOTM0MV9QT1dFUl9B X0xFTiAgNQo+ID4gKyNkZWZpbmUgSUxJOTM0MV9ERkNfMV9MRU4gICAgMgo+ID4gKyNkZWZpbmUg SUxJOTM0MV9GUkNfTEVOICAgICAgICAgICAgICAyCj4gPiArI2RlZmluZSBJTEk5MzQxX1ZDT01f MV9MRU4gICAyCj4gPiArI2RlZmluZSBJTEk5MzQxX0RGQ18yX0xFTiAgICA0Cj4gPiArI2RlZmlu ZSBJTEk5MzQxX0NPTFVNTl9BRERSX0xFTiAgICAgIDQKPiA+ICsjZGVmaW5lIElMSTkzNDFfUEFH RV9BRERSX0xFTiAgICAgICAgNAo+ID4gKyNkZWZpbmUgSUxJOTM0MV9JTlRFUkZBQ0VfTEVOICAg ICAgICAzCj4gPiArI2RlZmluZSBJTEk5MzQxX1BHQU1NQV9MRU4gICAxNQo+ID4gKyNkZWZpbmUg SUxJOTM0MV9OR0FNTUFfTEVOICAgMTUKPiA+ICsjZGVmaW5lIElMSTkzNDFfQ0FfTEVOICAgICAg ICAgICAgICAgMwo+ID4gKwo+ID4gKyNkZWZpbmUgSUxJOTM0MV9QSVhFTF9EUElfMTZfQklUUyAg ICAoQklUKDYpfEJJVCg0KSkKPiA+ICsjZGVmaW5lIElMSTkzNDFfUElYRUxfRFBJXzE4X0JJVFMg ICAgKEJJVCg2KXxCSVQoNSkpCj4gPiArI2RlZmluZSBJTEk5MzQxX0dBTU1BX0NVUlZFXzEgICAg ICAgICAgICAgICAgQklUKDApCj4gPiArI2RlZmluZSBJTEk5MzQxX0lGX1dFX01PREUgICAgICAg ICAgIEJJVCgwKQo+ID4gKyNkZWZpbmUgSUxJOTM0MV9JRl9CSUdfRU5ESUFOICAgICAgICAgICAg ICAgIDB4MDAKPiA+ICsjZGVmaW5lIElMSTkzNDFfSUZfRE1fUkdCICAgICAgICAgICAgQklUKDIp Cj4gPiArI2RlZmluZSBJTEk5MzQxX0lGX0RNX0lOVEVSTkFMICAgICAgICAgICAgICAgMHgwMAo+ ID4gKyNkZWZpbmUgSUxJOTM0MV9JRl9ETV9WU1lOQyAgICAgICAgICBCSVQoMykKPiA+ICsjZGVm aW5lIElMSTkzNDFfSUZfUk1fUkdCICAgICAgICAgICAgQklUKDEpCj4gPiArI2RlZmluZSBJTEk5 MzQxX0lGX1JJTV9SR0IgICAgICAgICAgIDB4MDAKPiA+ICsKPiA+ICsjZGVmaW5lIElMSTkzNDFf Q09MVU1OX0FERFIgICAgICAgICAgMHgwMGVmCj4gPiArI2RlZmluZSBJTEk5MzQxX1BBR0VfQURE UiAgICAgICAgICAgIDB4MDEzZgo+ID4gKwo+ID4gKyNkZWZpbmUgSUxJOTM0MV9SR0JfRVBMICAg ICAgICAgICAgICAgICAgICAgIEJJVCgwKQo+ID4gKyNkZWZpbmUgSUxJOTM0MV9SR0JfRFBMICAg ICAgICAgICAgICAgICAgICAgIEJJVCgxKQo+ID4gKyNkZWZpbmUgSUxJOTM0MV9SR0JfSFNQTCAg ICAgICAgICAgICBCSVQoMikKPiA+ICsjZGVmaW5lIElMSTkzNDFfUkdCX1ZTUEwgICAgICAgICAg ICAgQklUKDMpCj4gPiArI2RlZmluZSBJTEk5MzQxX1JHQl9ERV9NT0RFICAgICAgICAgIEJJVCg2 KQo+ID4gKyNkZWZpbmUgSUxJOTM0MV9SR0JfRElTUF9QQVRIX01FTSAgICBCSVQoNykKPiA+ICsK PiA+ICsjZGVmaW5lIElMSTkzNDFfREJJX1ZDT01IXzRQNlYgICAgICAgICAgICAgICAweDIzCj4g PiArI2RlZmluZSBJTEk5MzQxX0RCSV9QV1JfMl9ERUZBVUxUICAgIDB4MTAKPiA+ICsjZGVmaW5l IElMSTkzNDFfREJJX1BSQ19OT1JNQUwgICAgICAgICAgICAgICAweDIwCj4gPiArI2RlZmluZSBJ TEk5MzQxX0RCSV9WQ09NXzFfVk1IXzRQMjVWIDB4M2UKPiA+ICsjZGVmaW5lIElMSTkzNDFfREJJ X1ZDT01fMV9WTUxfMVA1ViAgMHgyOAo+ID4gKyNkZWZpbmUgSUxJOTM0MV9EQklfVkNPTV8yX0RF Q181OCAgICAweDg2Cj4gPiArI2RlZmluZSBJTEk5MzQxX0RCSV9GUkNfRElWQSAgICAgICAgIDB4 MDAKPiA+ICsjZGVmaW5lIElMSTkzNDFfREJJX0ZSQ19SVE5BICAgICAgICAgMHgxYgo+ID4gKyNk ZWZpbmUgSUxJOTM0MV9EQklfRU1TX0dBUyAgICAgICAgICBCSVQoMCkKPiA+ICsjZGVmaW5lIElM STkzNDFfREJJX0VNU19EVFMgICAgICAgICAgQklUKDEpCj4gPiArI2RlZmluZSBJTEk5MzQxX0RC SV9FTVNfR09OICAgICAgICAgIEJJVCgyKQo+ID4gKy8qKgo+ID4gKyAqIGlsaTkzNDFfY29tbWFu ZCAtIGlsaTkzNDEgY29tbWFuZCB3aXRoIG9wdGlvbmFsIHBhcmFtZXRlcihzKQo+ID4gKyAqIEBp bGk6IHN0cnVjdCBpbGk5MzQxCj4gPiArICogQGNtZDogQ29tbWFuZAo+ID4gKyAqIEBzZXEuLi46 IE9wdGlvbmFsIHBhcmFtZXRlcihzKQo+ID4gKyAqCj4gPiArICogU2VuZCBjb21tYW5kIHRvIHRo ZSBjb250cm9sbGVyLgo+ID4gKyAqCj4gPiArICogUmV0dXJuczoKPiA+ICsgKiBaZXJvIG9uIHN1 Y2Nlc3MsIG5lZ2F0aXZlIGVycm9yIGNvZGUgb24gZmFpbHVyZS4KPiA+ICsgKi8KPiA+ICsjZGVm aW5lIGlsaTkzNDFfY29tbWFuZChpbGksIGNtZCwgc2VxLi4uKSBcCj4gPiArKHsgXAo+ID4gKyAg ICAgdTggZFtdID0geyBzZXEgfTsgXAo+ID4gKyAgICAgX2lsaTkzNDFfY29tbWFuZChpbGksIGNt ZCwgZCwgQVJSQVlfU0laRShkKSk7IFwKPiA+ICt9KQo+ID4gKwo+ID4gKy8qKgo+ID4gKyAqIHN0 cnVjdCBpbGk5MzQxX2NvbmZpZyAtIHRoZSBzeXN0ZW0gc3BlY2lmaWMgSUxJOTM0MSBjb25maWd1 cmF0aW9uCj4gPiArICogQG1heF9zcGlfc3BlZWQ6IDEwMDAwMDAwCj4gPiArICovCj4gPiArc3Ry dWN0IGlsaTkzNDFfY29uZmlnIHsKPiA+ICsgICAgIHUzMiBtYXhfc3BpX3NwZWVkOwo+ID4gKyAg ICAgLyoqIEBtb2RlOiB0aGUgZHJtIGRpc3BsYXkgbW9kZSAqLwo+ID4gKyAgICAgY29uc3Qgc3Ry dWN0IGRybV9kaXNwbGF5X21vZGUgbW9kZTsKPiA+ICsgICAgIC8qKiBAY2E6IFRPRE86IG5lZWQg Y29tbWVudHMgZm9yIHRoaXMgcmVnaXN0ZXIgKi8KPiA+ICsgICAgIHU4IGNhW0lMSTkzNDFfQ0Ff TEVOXTsKPiA+ICsgICAgIC8qKiBAcG93ZXJfYjogVE9ETzogbmVlZCBjb21tZW50cyBmb3IgdGhp cyByZWdpc3RlciAqLwo+ID4gKyAgICAgdTggcG93ZXJfYltJTEk5MzQxX1BPV0VSX0JfTEVOXTsK PiA+ICsgICAgIC8qKiBAcG93ZXJfc2VxOiBUT0RPOiBuZWVkIGNvbW1lbnRzIGZvciB0aGlzIHJl Z2lzdGVyICovCj4gPiArICAgICB1OCBwb3dlcl9zZXFbSUxJOTM0MV9QT1dFUl9TRVFfTEVOXTsK PiA+ICsgICAgIC8qKiBAZHRjYTogVE9ETzogbmVlZCBjb21tZW50cyBmb3IgdGhpcyByZWdpc3Rl ciAqLwo+ID4gKyAgICAgdTggZHRjYVtJTEk5MzQxX0RUQ0FfTEVOXTsKPiA+ICsgICAgIC8qKiBA ZHRjYjogVE9ETzogbmVlZCBjb21tZW50cyBmb3IgdGhpcyByZWdpc3RlciAqLwo+ID4gKyAgICAg dTggZHRjYltJTEk5MzQxX0RUQ0JfTEVOXTsKPiA+ICsgICAgIC8qKiBAcG93ZXJfYTogVE9ETzog bmVlZCBjb21tZW50cyBmb3IgdGhpcyByZWdpc3RlciAqLwo+ID4gKyAgICAgdTggcG93ZXJfYVtJ TEk5MzQxX1BPV0VSX0FfTEVOXTsKPiA+ICsgICAgIC8qKiBAZnJjOiBGcmFtZSBSYXRlIENvbnRy b2wgKEluIE5vcm1hbCBNb2RlL0Z1bGwgQ29sb3JzKSAoQjFoKSAqLwo+ID4gKyAgICAgLyoKPiA+ ICsgICAgICAqIEZvcm11bGEgdG8gY2FsY3VsYXRlIGZyYW1lIGZyZXF1ZW5jeToKPiA+ICsgICAg ICAqIEZyYW1lIFJhdGU9Zm9zYy8oQ2xvY2tzIHBlciBsaW5lIHggRGl2aXNpb24gcmF0aW8geAo+ ID4gKyAgICAgICogKExpbmVzK1ZCUCtWRlApKQo+ID4gKyAgICAgICoKPiA+ICsgICAgICAqIFNl dHMgdGhlIGRpdmlzaW9uIHJhdGlvIGZvciBpbnRlcm5hbCBjbG9ja3Mgb2YgTm9ybWFsIG1vZGUg YXQgTUNVCj4gPiArICAgICAgKiBpbnRlcmZhY2UuCj4gPiArICAgICAgKgo+ID4gKyAgICAgICog Zm9zYyA6IGludGVybmFsIG9zY2lsbGF0b3IgZnJlcXVlbmN5Cj4gPiArICAgICAgKiBDbG9ja3Mg cGVyIGxpbmUgOiBSVE5BIHNldHRpbmcKPiA+ICsgICAgICAqIERpdmlzaW9uIHJhdGlvIDogRElW QSBzZXR0aW5nCj4gPiArICAgICAgKiBMaW5lcyA6IHRvdGFsIGRyaXZpbmcgbGluZSBudW1iZXIK PiA+ICsgICAgICAqIFZCUCA6IGJhY2sgcG9yY2ggbGluZSBudW1iZXIKPiA+ICsgICAgICAqIFZG UCA6IGZyb250IHBvcmNoIGxpbmUgbnVtYmVyCj4gPiArICAgICAgKgo+ID4gKyAgICAgICogUlRO QSBbNDowXSBGcmFtZSBSYXRlIChIeikgICBSVE5BIFs0OjBdIEZyYW1lIFJhdGUgKEh6KQo+ID4g KyAgICAgICogMSAwIDAgMCAwICAxMTkgICAgICAgICAgICAgICAxIDEgMCAwIDAgIDc5Cj4gPiAr ICAgICAgKiAxIDAgMCAwIDEgIDExMiAgICAgICAgICAgICAgIDEgMSAwIDAgMSAgNzYKPiA+ICsg ICAgICAqIDEgMCAwIDEgMCAgMTA2ICAgICAgICAgICAgICAgMSAxIDAgMSAwICA3Mwo+ID4gKyAg ICAgICogMSAwIDAgMSAxICAxMDAgICAgICAgICAgICAgICAxIDEgMCAxIDEgIDcwKGRlZmF1bHQp Cj4gPiArICAgICAgKiAxIDAgMSAwIDAgIDk1ICAgICAgICAgICAgICAgIDEgMSAxIDAgMCAgNjgK PiA+ICsgICAgICAqIDEgMCAxIDAgMSAgOTAgICAgICAgICAgICAgICAgMSAxIDEgMCAxICA2NQo+ ID4gKyAgICAgICogMSAwIDEgMSAwICA4NiAgICAgICAgICAgICAgICAxIDEgMSAwIDEgIDYzCj4g PiArICAgICAgKiAxIDAgMSAxIDEgIDgzICAgICAgICAgICAgICAgIDEgMSAxIDEgMSAgNjEKPiA+ ICsgICAgICAqCj4gPiArICAgICAgKiBESVZBIFsxOjBdIDogZGl2aXNpb24gcmF0aW8gZm9yIGlu dGVybmFsIGNsb2NrcyB3aGVuIE5vcm1hbCBtb2RlLgo+ID4gKyAgICAgICoKPiA+ICsgICAgICAq IERJVkEgWzE6MF0gRGl2aXNpb24gUmF0aW8KPiA+ICsgICAgICAqIDAgMCBmb3NjCj4gPiArICAg ICAgKiAwIDEgZm9zYyAvIDIKPiA+ICsgICAgICAqIDEgMCBmb3NjIC8gNAo+ID4gKyAgICAgICog MSAxIGZvc2MgLyA4Cj4gPiArICAgICAgKgo+ID4gKyAgICAgICovCj4gPiArICAgICB1OCBmcmNb SUxJOTM0MV9GUkNfTEVOXTsKPiA+ICsgICAgIC8qKiBAcHJjOiBUT0RPOiBuZWVkIGNvbW1lbnRz IGZvciB0aGlzIHJlZ2lzdGVyICovCj4gPiArICAgICB1OCBwcmM7Cj4gPiArICAgICAvKiogQGRm Y18xOiBCNmggRElTQ1RSTCAoRGlzcGxheSBGdW5jdGlvbiBDb250cm9sKSAqLwo+ID4gKyAgICAg LyogICAgICAgICAgICAgICBEL0NYIFJEWCBXUlggRDE3LTggRDcgIEQ2IEQ1IEQ0IEQzICAgRDIg IEQxICBEMCAgSEVYCj4gPiArICAgICAgKiBDb21tYW5kICAgICAgIDAgICAgMSAgIE0gICBYWCAg ICAxICAgMCAgMSAgMSAgMCAgICAxICAgMSAgIDAgICBCNmgKPiA+ICsgICAgICAqIDFzdCBQYXJh bWV0ZXIgMSAgICAxICAgTSAgIFhYICAgIDAgICAwICAwICAwICBQVEdbMTowXSBQVFsxOjBdIDBB Cj4gPiArICAgICAgKiAybmQgUGFyYW1ldGVyIDEgICAgMSAgIE0gICBYWCAgICBSRVYgR1MgU1Mg U00gSVNDWzM6MF0gICAgICAgICA4Mgo+ID4gKyAgICAgICogM3JkIFBhcmFtZXRlciAxICAgIDEg ICBNICAgWFggICAgMCAgIDAgIE5MWzU6MF0gICAgICAgICAgICAgICAgMjcKPiA+ICsgICAgICAq IDR0aCBQYXJhbWV0ZXIgMSAgICAxICAgTSAgIFhYICAgIDAgICAwICBQQ0RJVls1OjBdICAgICAg ICAgICAgIFhYCj4gPiArICAgICAgKgo+ID4gKyAgICAgICogUFRHIFsxOjBdOiBTZXQgdGhlIHNj YW4gbW9kZSBpbiBub24tZGlzcGxheSBhcmVhLgo+ID4gKyAgICAgICogUFRHMSB8IFBURzAgfCBH YXRlIG91dHB1dHMgaW4gICB8IFNvdXJjZSBvdXRwdXRzIGluICB8IFZDT00gb3V0cHV0Cj4gPiAr ICAgICAgKiAgICAgICAgICAgICAgIG5vbi1kaXNwbGF5IGFyZWEgIHwgbm9uLWRpc3BsYXkgYXJl YSAgIHwKPiA+ICsgICAgICAqIDEgICAgICAwICAgICAgSW50ZXJ2YWwgc2NhbiAgICAgICBTZXQg d2l0aCB0aGUgUFRbMjowXSBiaXRzCj4gPiArICAgICAgKgo+ID4gKyAgICAgICogUFQgWzE6MF06 IERldGVybWluZSBzb3VyY2UvVkNPTSBvdXRwdXQgaW4gYSBub24tZGlzcGxheSBhcmVhIGluIHRo ZQo+ID4gKyAgICAgICogcGFydGlhbCBkaXNwbGF5IG1vZGUuCj4gPiArICAgICAgKiAxICAgIDAg ICAgQUdORCAgICAgICBBR05EICAgICAgIEFHTkQgICAgICAgICBBR05ECj4gPiArICAgICAgKgo+ ID4gKyAgICAgICogUkVWOiBTZWxlY3Qgd2hldGhlciB0aGUgbGlxdWlkIGNyeXN0YWwgdHlwZSBp cyBub3JtYWxseSB3aGl0ZSB0eXBlCj4gPiArICAgICAgKiBvciBub3JtYWxseSBibGFjayB0eXBl Lgo+ID4gKyAgICAgICogUkVWICAgTGlxdWlkIGNyeXN0YWwgdHlwZQo+ID4gKyAgICAgICogMCAg ICAgTm9ybWFsbHkgYmxhY2sKPiA+ICsgICAgICAqIDEgICAgIE5vcm1hbGx5IHdoaXRlCj4gPiAr ICAgICAgKgo+ID4gKyAgICAgICogU1M6IFNlbGVjdCB0aGUgc2hpZnQgZGlyZWN0aW9uIG9mIG91 dHB1dHMgZnJvbSB0aGUgc291cmNlIGRyaXZlci4KPiA+ICsgICAgICAqIFNTICAgIFNvdXJjZSBP dXRwdXQgU2NhbiBEaXJlY3Rpb24KPiA+ICsgICAgICAqIDAgICAgIFMxIC0+IFM3MjAKPiA+ICsg ICAgICAqIDEgICAgIFM3MjAgLT4gUzEKPiA+ICsgICAgICAqCj4gPiArICAgICAgKiBHUzogU2V0 cyB0aGUgZGlyZWN0aW9uIG9mIHNjYW4gYnkgdGhlIGdhdGUgZHJpdmVyIGluIHRoZSByYW5nZQo+ ID4gKyAgICAgICogZGV0ZXJtaW5lZCBieSBTQ04gWzQ6MF0gYW5kIE5MIFs0OjBdLiBUaGUgc2Nh biBkaXJlY3Rpb24KPiA+ICsgICAgICAqIGRldGVybWluZWQgYnkgR1MgPSAwIGNhbiBiZSByZXZl cnNlZCBieSBzZXR0aW5nIEdTID0gMS4KPiA+ICsgICAgICAqCj4gPiArICAgICAgKiBHUyAgICAg R2F0ZSBPdXRwdXQgU2NhbiBEaXJlY3Rpb24KPiA+ICsgICAgICAqIDAgICAgICBHMSAtPiBHMzIw Cj4gPiArICAgICAgKiAxICAgICAgRzMyMCAtPiBHMQo+ID4gKyAgICAgICovCj4gPiArICAgICB1 OCBkZmNfMVtJTEk5MzQxX0RGQ18xX0xFTl07Cj4gPiArICAgICAgLyoqIEBwb3dlcl8xOiBQb3dl ciBDb250cm9sIDEgKEMwaCkgKi8KPiA+ICsgICAgICAvKiBWUkggWzU6MF06IFNldCB0aGUgR1ZE RCBsZXZlbCwgd2hpY2ggaXMgYSByZWZlcmVuY2UgbGV2ZWwgZm9yIHRoZQo+ID4gKyAgICAgICog VkNPTSBsZXZlbCBhbmQgdGhlIGdyYXlzY2FsZSB2b2x0YWdlIGxldmVsLgo+ID4gKyAgICAgICoK PiA+ICsgICAgICAqIFZSSFs1OjBdICAgIEdWREQgICAgICAgICAgICAgICAgICAgICBWUkhbNTow XSAgICAgICAgR1ZERAo+ID4gKyAgICAgICogMCAwIDAgMCAwIDAgU2V0dGluZyBwcm9oaWJpdGVk ICAgICAgIDEgMCAwIDAgMCAwICAgICA0LjQ1IFYKPiA+ICsgICAgICAqIDAgMCAwIDAgMCAxIFNl dHRpbmcgcHJvaGliaXRlZCAgICAgICAxIDAgMCAwIDAgMSAgICAgNC41MCBWCj4gPiArICAgICAg KiAwIDAgMCAwIDEgMCBTZXR0aW5nIHByb2hpYml0ZWQgICAgICAgMSAwIDAgMCAxIDAgICAgIDQu NTUgVgo+ID4gKyAgICAgICogMCAwIDAgMCAxIDEgMy4wMCBWICAgICAgICAgICAgICAgICAgIDEg MCAwIDAgMSAxICAgICA0LjYwIFYKPiA+ICsgICAgICAqIDAgMCAwIDEgMCAwIDMuMDUgViAgICAg ICAgICAgICAgICAgICAxIDAgMCAxIDAgMCAgICAgNC42NSBWCj4gPiArICAgICAgKiAwIDAgMCAx IDAgMSAzLjEwIFYgICAgICAgICAgICAgICAgICAgMSAwIDAgMSAwIDEgICAgIDQuNzAgVgo+ID4g KyAgICAgICogMCAwIDAgMSAxIDAgMy4xNSBWICAgICAgICAgICAgICAgICAgIDEgMCAwIDEgMSAw ICAgICA0Ljc1IFYKPiA+ICsgICAgICAqIDAgMCAwIDEgMSAxIDMuMjAgViAgICAgICAgICAgICAg ICAgICAxIDAgMCAxIDEgMSAgICAgNC44MCBWCj4gPiArICAgICAgKiAwIDAgMSAwIDAgMCAzLjI1 IFYgICAgICAgICAgICAgICAgICAgMSAwIDEgMCAwIDAgICAgIDQuODUgVgo+ID4gKyAgICAgICog MCAwIDEgMCAwIDEgMy4zMCBWICAgICAgICAgICAgICAgICAgIDEgMCAxIDAgMCAxICAgICA0Ljkw IFYKPiA+ICsgICAgICAqIDAgMCAxIDAgMSAwIDMuMzUgViAgICAgICAgICAgICAgICAgICAxIDAg MSAwIDEgMCAgICAgNC45NSBWCj4gPiArICAgICAgKiAwIDAgMSAwIDEgMSAzLjQwIFYgICAgICAg ICAgICAgICAgICAgMSAwIDEgMCAxIDEgICAgIDUuMDAgVgo+ID4gKyAgICAgICogMCAwIDEgMSAw IDAgMy40NSBWICAgICAgICAgICAgICAgICAgIDEgMCAxIDEgMCAwICAgICA1LjA1IFYKPiA+ICsg ICAgICAqIDAgMCAxIDEgMCAxIDMuNTAgViAgICAgICAgICAgICAgICAgICAxIDAgMSAxIDAgMSAg ICAgNS4xMCBWCj4gPiArICAgICAgKiAwIDAgMSAxIDEgMCAzLjU1IFYgICAgICAgICAgICAgICAg ICAgMSAwIDEgMSAxIDAgICAgIDUuMTUgVgo+ID4gKyAgICAgICogMCAwIDEgMSAxIDEgMy42MCBW ICAgICAgICAgICAgICAgICAgIDEgMCAxIDEgMSAxICAgICA1LjIwIFYKPiA+ICsgICAgICAqIDAg MSAwIDAgMCAwIDMuNjUgViAgICAgICAgICAgICAgICAgICAxIDEgMCAwIDAgMCAgICAgNS4yNSBW Cj4gPiArICAgICAgKiAwIDEgMCAwIDAgMSAzLjcwIFYgICAgICAgICAgICAgICAgICAgMSAxIDAg MCAwIDEgICAgIDUuMzAgVgo+ID4gKyAgICAgICogMCAxIDAgMCAxIDAgMy43NSBWICAgICAgICAg ICAgICAgICAgIDEgMSAwIDAgMSAwICAgICA1LjM1IFYKPiA+ICsgICAgICAqIDAgMSAwIDAgMSAx IDMuODAgViAgICAgICAgICAgICAgICAgICAxIDEgMCAwIDEgMSAgICAgNS40MCBWCj4gPiArICAg ICAgKiAwIDEgMCAxIDAgMCAzLjg1IFYgICAgICAgICAgICAgICAgICAgMSAxIDAgMSAwIDAgICAg IDUuNDUgVgo+ID4gKyAgICAgICogMCAxIDAgMSAwIDEgMy45MCBWICAgICAgICAgICAgICAgICAg IDEgMSAwIDEgMCAxICAgICA1LjUwIFYKPiA+ICsgICAgICAqIDAgMSAwIDEgMSAwIDMuOTUgViAg ICAgICAgICAgICAgICAgICAxIDEgMCAxIDEgMCAgICAgNS41NSBWCj4gPiArICAgICAgKiAwIDEg MCAxIDEgMSA0LjAwIFYgICAgICAgICAgICAgICAgICAgMSAxIDAgMSAxIDEgICAgIDUuNjAgVgo+ ID4gKyAgICAgICogMCAxIDEgMCAwIDAgNC4wNSBWICAgICAgICAgICAgICAgICAgIDEgMSAxIDAg MCAwICAgICA1LjY1IFYKPiA+ICsgICAgICAqIDAgMSAxIDAgMCAxIDQuMTAgViAgICAgICAgICAg ICAgICAgICAxIDEgMSAwIDAgMSAgICAgNS43MCBWCj4gPiArICAgICAgKiAwIDEgMSAwIDEgMCA0 LjE1IFYgICAgICAgICAgICAgICAgICAgMSAxIDEgMCAxIDAgICAgIDUuNzUgVgo+ID4gKyAgICAg ICogMCAxIDEgMCAxIDEgNC4yMCBWICAgICAgICAgICAgICAgICAgIDEgMSAxIDAgMSAxICAgICA1 LjgwIFYKPiA+ICsgICAgICAqIDAgMSAxIDEgMCAwIDQuMjUgViAgICAgICAgICAgICAgICAgICAx IDEgMSAxIDAgMCAgICAgNS44NSBWCj4gPiArICAgICAgKiAwIDEgMSAxIDAgMSA0LjMwIFYgICAg ICAgICAgICAgICAgICAgMSAxIDEgMSAwIDEgICAgIDUuOTAgVgo+ID4gKyAgICAgICogMCAxIDEg MSAxIDAgNC4zNSBWICAgICAgICAgICAgICAgICAgIDEgMSAxIDEgMSAwICAgICA1Ljk1IFYKPiA+ ICsgICAgICAqIDAgMSAxIDEgMSAxIDQuNDAgViAgICAgICAgICAgICAgICAgICAxIDEgMSAxIDEg MSAgICAgNi4wMCBWCj4gPiArICAgICAgKi8KPiA+ICsgICAgIHU4IHBvd2VyXzE7Cj4gPiArICAg ICAvKiogQHBvd2VyXzI6IFBvd2VyIENvbnRyb2wgMiAoQzFoKSAqLwo+ID4gKyAgICAgLyoKPiA+ ICsgICAgICAqIEJUIFsyOjBdOiBTZXRzIHRoZSBmYWN0b3IgdXNlZCBpbiB0aGUgc3RlcC11cCBj aXJjdWl0cy4KPiA+ICsgICAgICAqIFNlbGVjdCB0aGUgb3B0aW1hbCBzdGVwLXVwIGZhY3RvciBm b3IgdGhlIG9wZXJhdGluZyB2b2x0YWdlLiBUbwo+ID4gKyAgICAgICogcmVkdWNlIHBvd2VyIGNv bnN1bXB0aW9uLCBzZXQgYSBzbWFsbGVyIGZhY3Rvci4KPiA+ICsgICAgICAqCj4gPiArICAgICAg KiBCVFsyOjBdICAgQVZERCAgICAgVkdIICAgICAgVkdMCj4gPiArICAgICAgKiAwIDAgMCAgICAg VkNJIHggMiAgVkNJIHggNyAgVkNJIHggNAo+ID4gKyAgICAgICogMCAwIDEgICAgICAgICAgICAg ICAgICAgICAgIFZDSSB4IDMKPiA+ICsgICAgICAqIDAgMSAwICAgICAgICAgICAgICBWQ0kgeCA2 ICBWQ0kgeCA0Cj4gPiArICAgICAgKiAwIDEgMSAgICAgICAgICAgICAgICAgICAgICAgVkNJIHgg Mwo+ID4gKyAgICAgICoKPiA+ICsgICAgICAqLwo+ID4gKyAgICAgdTggcG93ZXJfMjsKPiA+ICsg ICAgIC8qKiBAdmNvbV8xOiBWQ09NIENvbnRyb2wgMShDNWgpICovCj4gPiArICAgICAvKgo+ID4g KyAgICAgICogVk1IIFs2OjBdIDogU2V0IHRoZSBWQ09NSCB2b2x0YWdlCj4gPiArICAgICAgKgo+ ID4gKyAgICAgICogVk1IWzY6MF0gVkNPTUgoVikgVk1IWzY6MF0gVkNPTUgoVikgVk1IWzY6MF0g VkNPTUgoVikgVk1IWzY6MF0gVkNPTUgKPiA+ICsgICAgICAqIDAwMDAwMDAgIDIuNzAwICAgIDAx MDAwMDAgIDMuNTAwICAgIDEwMDAwMDAgIDQuMzAwICAgIDExMDAwMDAgIDUuMTAwCj4gPiArICAg ICAgKiAwMDAwMDAxICAyLjcyNSAgICAwMTAwMDAxICAzLjUyNSAgICAxMDAwMDAxICA0LjMyNSAg ICAxMTAwMDAxICA1LjEyNQo+ID4gKyAgICAgICogMDAwMDAxMCAgMi43NTAgICAgMDEwMDAxMCAg My41NTAgICAgMTAwMDAxMCAgNC4zNTAgICAgMTEwMDAxMCAgNS4xNTAKPiA+ICsgICAgICAqIDAw MDAwMTEgIDIuNzc1ICAgIDAxMDAwMTEgIDMuNTc1ICAgIDEwMDAwMTEgIDQuMzc1ICAgIDExMDAw MTEgIDUuMTc1Cj4gPiArICAgICAgKiAwMDAwMTAwICAyLjgwMCAgICAwMTAwMTAwICAzLjYwMCAg ICAxMDAwMTAwICA0LjQwMCAgICAxMTAwMTAwICA1LjIwMAo+ID4gKyAgICAgICogMDAwMDEwMSAg Mi44MjUgICAgMDEwMDEwMSAgMy42MjUgICAgMTAwMDEwMSAgNC40MjUgICAgMTEwMDEwMSAgNS4y MjUKPiA+ICsgICAgICAqIDAwMDAxMTAgIDIuODUwICAgIDAxMDAxMTAgIDMuNjUwICAgIDEwMDAx MTAgIDQuNDUwICAgIDExMDAxMTAgIDUuMjUwCj4gPiArICAgICAgKiAwMDAwMTExICAyLjg3NSAg ICAwMTAwMTExICAzLjY3NSAgICAxMDAwMTExICA0LjQ3NSAgICAxMTAwMTExICA1LjI3NQo+ID4g KyAgICAgICogMDAwMTAwMCAgMi45MDAgICAgMDEwMTAwMCAgMy43MDAgICAgMTAwMTAwMCAgNC41 MDAgICAgMTEwMTAwMCAgNS4zMDAKPiA+ICsgICAgICAqIDAwMDEwMDEgIDIuOTI1ICAgIDAxMDEw MDEgIDMuNzI1ICAgIDEwMDEwMDEgIDQuNTI1ICAgIDExMDEwMDEgIDUuMzI1Cj4gPiArICAgICAg KiAwMDAxMDEwICAyLjk1MCAgICAwMTAxMDEwICAzLjc1MCAgICAxMDAxMDEwICA0LjU1MCAgICAx MTAxMDEwICA1LjM1MAo+ID4gKyAgICAgICogMDAwMTAxMSAgMi45NzUgICAgMDEwMTAxMSAgMy43 NzUgICAgMTAwMTAxMSAgNC41NzUgICAgMTEwMTAxMSAgNS4zNzUKPiA+ICsgICAgICAqIDAwMDEx MDAgIDMuMDAwICAgIDAxMDExMDAgIDMuODAwICAgIDEwMDExMDAgIDQuNjAwICAgIDExMDExMDAg IDUuNDAwCj4gPiArICAgICAgKiAwMDAxMTAxICAzLjAyNSAgICAwMTAxMTAxICAzLjgyNSAgICAx MDAxMTAxICA0LjYyNSAgICAxMTAxMTAxICA1LjQyNQo+ID4gKyAgICAgICogMDAwMTExMCAgMy4w NTAgICAgMDEwMTExMCAgMy44NTAgICAgMTAwMTExMCAgNC42NTAgICAgMTEwMTExMCAgNS40NTAK PiA+ICsgICAgICAqIDAwMDExMTEgIDMuMDc1ICAgIDAxMDExMTEgIDMuODc1ICAgIDEwMDExMTEg IDQuNjc1ICAgIDExMDExMTEgIDUuNDc1Cj4gPiArICAgICAgKiAwMDEwMDAwICAzLjEwMCAgICAw MTEwMDAwICAzLjkwMCAgICAxMDEwMDAwICA0LjcwMCAgICAxMTEwMDAwICA1LjUwMAo+ID4gKyAg ICAgICogMDAxMDAwMSAgMy4xMjUgICAgMDExMDAwMSAgMy45MjUgICAgMTAxMDAwMSAgNC43MjUg ICAgMTExMDAwMSAgNS41MjUKPiA+ICsgICAgICAqIDAwMTAwMTAgIDMuMTUwICAgIDAxMTAwMTAg IDMuOTUwICAgIDEwMTAwMTAgIDQuNzUwICAgIDExMTAwMTAgIDUuNTUwCj4gPiArICAgICAgKiAw MDEwMDExICAzLjE3NSAgICAwMTEwMDExICAzLjk3NSAgICAxMDEwMDExICA0Ljc3NSAgICAxMTEw MDExICA1LjU3NQo+ID4gKyAgICAgICogMDAxMDEwMCAgMy4yMDAgICAgMDExMDEwMCAgNC4wMDAg ICAgMTAxMDEwMCAgNC44MDAgICAgMTExMDEwMCAgNS42MDAKPiA+ICsgICAgICAqIDAwMTAxMDEg IDMuMjI1ICAgIDAxMTAxMDEgIDQuMDI1ICAgIDEwMTAxMDEgIDQuODI1ICAgIDExMTAxMDEgIDUu NjI1Cj4gPiArICAgICAgKiAwMDEwMTEwICAzLjI1MCAgICAwMTEwMTEwICA0LjA1MCAgICAxMDEw MTEwICA0Ljg1MCAgICAxMTEwMTEwICA1LjY1MAo+ID4gKyAgICAgICogMDAxMDExMSAgMy4yNzUg ICAgMDExMDExMSAgNC4wNzUgICAgMTAxMDExMSAgNC44NzUgICAgMTExMDExMSAgNS42NzUKPiA+ ICsgICAgICAqIDAwMTEwMDAgIDMuMzAwICAgIDAxMTEwMDAgIDQuMTAwICAgIDEwMTEwMDAgIDQu OTAwICAgIDExMTEwMDAgIDUuNzAwCj4gPiArICAgICAgKiAwMDExMDAxICAzLjMyNSAgICAwMTEx MDAxICA0LjEyNSAgICAxMDExMDAxICA0LjkyNSAgICAxMTExMDAxICA1LjcyNQo+ID4gKyAgICAg ICogMDAxMTAxMCAgMy4zNTAgICAgMDExMTAxMCAgNC4xNTAgICAgMTAxMTAxMCAgNC45NTAgICAg MTExMTAxMCAgNS43NTAKPiA+ICsgICAgICAqIDAwMTEwMTEgIDMuMzc1ICAgIDAxMTEwMTEgIDQu MTc1ICAgIDEwMTEwMTEgIDQuOTc1ICAgIDExMTEwMTEgIDUuNzc1Cj4gPiArICAgICAgKiAwMDEx MTAwICAzLjQwMCAgICAwMTExMTAwICA0LjIwMCAgICAxMDExMTAwICA1LjAwMCAgICAxMTExMTAw ICA1LjgwMAo+ID4gKyAgICAgICogMDAxMTEwMSAgMy40MjUgICAgMDExMTEwMSAgNC4yMjUgICAg MTAxMTEwMSAgNS4wMjUgICAgMTExMTEwMSAgNS44MjUKPiA+ICsgICAgICAqIDAwMTExMTAgIDMu NDUwICAgIDAxMTExMTAgIDQuMjUwICAgIDEwMTExMTAgIDUuMDUwICAgIDExMTExMTAgIDUuODUw Cj4gPiArICAgICAgKiAwMDExMTExICAzLjQ3NSAgICAwMTExMTExICA0LjI3NSAgICAxMDExMTEx ICA1LjA3NSAgICAxMTExMTExICA1Ljg3NQo+ID4gKyAgICAgICoKPiA+ICsgICAgICAqIFZNTFs2 OjBdIDogU2V0IHRoZSBWQ09NTCB2b2x0YWdlCj4gPiArICAgICAgKgo+ID4gKyAgICAgICogVk1M WzY6MF0gVkNPTUwoVikgVk1MWzY6MF0gVkNPTUwoVikgVk1MWzY6MF0gVkNPTUwoVikgVk1MWzY6 MF0gVkNPTUwKPiA+ICsgICAgICAqIDAwMDAwMDAgLTIuNTAwIDAxMDAwMDAgLTEuNzAwIDEwMDAw MDAgLTAuOTAwIDExMDAwMDAgLTAuMTAwCj4gPiArICAgICAgKiAwMDAwMDAxIC0yLjQ3NSAwMTAw MDAxIC0xLjY3NSAxMDAwMDAxIC0wLjg3NSAxMTAwMDAxIC0wLjA3NQo+ID4gKyAgICAgICogMDAw MDAxMCAtMi40NTAgMDEwMDAxMCAtMS42NTAgMTAwMDAxMCAtMC44NTAgMTEwMDAxMCAtMC4wNTAK PiA+ICsgICAgICAqIDAwMDAwMTEgLTIuNDI1IDAxMDAwMTEgLTEuNjI1IDEwMDAwMTEgLTAuODI1 IDExMDAwMTEgLTAuMDI1Cj4gPiArICAgICAgKiAwMDAwMTAwIC0yLjQwMCAwMTAwMTAwIC0xLjYw MCAxMDAwMTAwIC0wLjgwMCAxMTAwMTAwIDAKPiA+ICsgICAgICAqIDAwMDAxMDEgLTIuMzc1IDAx MDAxMDEgLTEuNTc1IDEwMDAxMDEgLTAuNzc1IDExMDAxMDEgUmVzZXJ2ZWQKPiA+ICsgICAgICAq IDAwMDAxMTAgLTIuMzUwIDAxMDAxMTAgLTEuNTUwIDEwMDAxMTAgLTAuNzUwIDExMDAxMTAgUmVz ZXJ2ZWQKPiA+ICsgICAgICAqIDAwMDAxMTEgLTIuMzI1IDAxMDAxMTEgLTEuNTI1IDEwMDAxMTEg LTAuNzI1IDExMDAxMTEgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMDEwMDAgLTIuMzAwIDAxMDEw MDAgLTEuNTAwIDEwMDEwMDAgLTAuNzAwIDExMDEwMDAgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAw MDEwMDEgLTIuMjc1IDAxMDEwMDEgLTEuNDc1IDEwMDEwMDEgLTAuNjc1IDExMDEwMDEgUmVzZXJ2 ZWQKPiA+ICsgICAgICAqIDAwMDEwMTAgLTIuMjUwIDAxMDEwMTAgLTEuNDUwIDEwMDEwMTAgLTAu NjUwIDExMDEwMTAgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMDEwMTEgLTIuMjI1IDAxMDEwMTEg LTEuNDI1IDEwMDEwMTEgLTAuNjI1IDExMDEwMTEgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMDEx MDAgLTIuMjAwIDAxMDExMDAgLTEuNDAwIDEwMDExMDAgLTAuNjAwIDExMDExMDAgUmVzZXJ2ZWQK PiA+ICsgICAgICAqIDAwMDExMDEgLTIuMTc1IDAxMDExMDEgLTEuMzc1IDEwMDExMDEgLTAuNTc1 IDExMDExMDEgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMDExMTAgLTIuMTUwIDAxMDExMTAgLTEu MzUwIDEwMDExMTAgLTAuNTUwIDExMDExMTAgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMDExMTEg LTIuMTI1IDAxMDExMTEgLTEuMzI1IDEwMDExMTEgLTAuNTI1IDExMDExMTEgUmVzZXJ2ZWQKPiA+ ICsgICAgICAqIDAwMTAwMDAgLTIuMTAwIDAxMTAwMDAgLTEuMzAwIDEwMTAwMDAgLTAuNTAwIDEx MTAwMDAgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMTAwMDEgLTIuMDc1IDAxMTAwMDEgLTEuMjc1 IDEwMTAwMDEgLTAuNDc1IDExMTAwMDEgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMTAwMTAgLTIu MDUwIDAxMTAwMTAgLTEuMjUwIDEwMTAwMTAgLTAuNDUwIDExMTAwMTAgUmVzZXJ2ZWQKPiA+ICsg ICAgICAqIDAwMTAwMTEgLTIuMDI1IDAxMTAwMTEgLTEuMjI1IDEwMTAwMTEgLTAuNDI1IDExMTAw MTEgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMTAxMDAgLTIuMDAwIDAxMTAxMDAgLTEuMjAwIDEw MTAxMDAgLTAuNDAwIDExMTAxMDAgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMTAxMDEgLTEuOTc1 IDAxMTAxMDEgLTEuMTc1IDEwMTAxMDEgLTAuMzc1IDExMTAxMDEgUmVzZXJ2ZWQKPiA+ICsgICAg ICAqIDAwMTAxMTAgLTEuOTUwIDAxMTAxMTAgLTEuMTUwIDEwMTAxMTAgLTAuMzUwIDExMTAxMTAg UmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMTAxMTEgLTEuOTI1IDAxMTAxMTEgLTEuMTI1IDEwMTAx MTEgLTAuMzI1IDExMTAxMTEgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMTEwMDAgLTEuOTAwIDAx MTEwMDAgLTEuMTAwIDEwMTEwMDAgLTAuMzAwIDExMTEwMDAgUmVzZXJ2ZWQKPiA+ICsgICAgICAq IDAwMTEwMDEgLTEuODc1IDAxMTEwMDEgLTEuMDc1IDEwMTEwMDEgLTAuMjc1IDExMTEwMDEgUmVz ZXJ2ZWQKPiA+ICsgICAgICAqIDAwMTEwMTAgLTEuODUwIDAxMTEwMTAgLTEuMDUwIDEwMTEwMTAg LTAuMjUwIDExMTEwMTAgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMTEwMTEgLTEuODI1IDAxMTEw MTEgLTEuMDI1IDEwMTEwMTEgLTAuMjI1IDExMTEwMTEgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAw MTExMDAgLTEuODAwIDAxMTExMDAgLTEuMDAwIDEwMTExMDAgLTAuMjAwIDExMTExMDAgUmVzZXJ2 ZWQKPiA+ICsgICAgICAqIDAwMTExMDEgLTEuNzc1IDAxMTExMDEgLTAuOTc1IDEwMTExMDEgLTAu MTc1IDExMTExMDEgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMTExMTAgLTEuNzUwIDAxMTExMTAg LTAuOTUwIDEwMTExMTAgLTAuMTUwIDExMTExMTAgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAwMTEx MTEgLTEuNzI1IDAxMTExMTEgLTAuOTI1IDEwMTExMTEgLTAuMTI1IDExMTExMTEgUmVzZXJ2ZWQK PiA+ICsgICAgICAqLwo+ID4gKyAgICAgdTggdmNvbV8xW0lMSTkzNDFfVkNPTV8xX0xFTl07Cj4g PiArICAgICAvKiogQHZjb21fMjogVkNPTSBDb250cm9sIDIoQzdoKSAqLwo+ID4gKyAgICAgLyoK PiA+ICsgICAgICAqIEM3aCAgICAgICAgICBWTUNUUkwxIChWQ09NIENvbnRyb2wgMSkKPiA+ICsg ICAgICAqICAgICAgICAgICAgICBEL0NYIFJEWCBXUlggRDE3LTggRDcgIEQ2ICBENSBENCBEMyBE MiBEMSBEMCBIRVgKPiA+ICsgICAgICAqIENvbW1hbmQgICAgICAwICAgIDEgICBNICAgWFggICAg MSAgIDEgICAwICAwICAwICAxICAxICAxICBDN2gKPiA+ICsgICAgICAqIFBhcmFtZXRlciAgICAx ICAgIDEgICBNICAgWFggICAgblZNIFZNRls2OjBdICAgICAgICAgICAgICBDMAo+ID4gKyAgICAg ICoKPiA+ICsgICAgICAqIG5WTTogblZNIGVxdWFscyB0byDigJww4oCdIGFmdGVyIHBvd2VyIG9u IHJlc2V0IGFuZCBWQ09NIG9mZnNldAo+ID4gKyAgICAgICogZXF1YWxzIHRvIHByb2dyYW0gTVRQ IHZhbHVlLiBXaGVuIG5WTSBzZXQgdG8g4oCcMeKAnSwgc2V0dGluZwo+ID4gKyAgICAgICogb2Yg Vk1GIFs2OjBdIGJlY29tZXMgdmFsaWQgYW5kIFZDT01IL1ZDT01MIGNhbiBiZSBhZGp1c3RlZC4K PiA+ICsgICAgICAqCj4gPiArICAgICAgKiBWTUYgWzY6MF06IFNldCB0aGUgVkNPTSBvZmZzZXQg dm9sdGFnZS4KPiA+ICsgICAgICAqLwo+ID4gKyAgICAgdTggdmNvbV8yOwo+ID4gKyAgICAgLyoq IEBhZGRyZXNzX21vZGU6IE1lbW9yeSBBY2Nlc3MgQ29udHJvbCAoMzZoKSAqLwo+ID4gKyAgICAg LyoKPiA+ICsgICAgICAqIDM2aCAgICAgICAgICBNQURDVEwgKE1lbW9yeSBBY2Nlc3MgQ29udHJv bCkKPiA+ICsgICAgICAqICAgICAgICAgICAgICBEL0NYIFJEWCBXUlggRDE3LTggRDcgRDYgRDUg RDQgRDMgIEQyIEQxIEQwIEhFWAo+ID4gKyAgICAgICogQ29tbWFuZCAgICAgIDAgICAgMSAgIE0g ICBYWCAgICAwICAwICAxICAxICAwICAgMSAgMSAgMCAgMzZoCj4gPiArICAgICAgKiBQYXJhbWV0 ZXIgICAgMSAgICAxICAgTSAgIFhYICAgIE1ZIE1YIE1WIE1MIEJHUiBNSCAwICAwICAwMAo+ID4g KyAgICAgICoKPiA+ICsgICAgICAqIFRoaXMgY29tbWFuZCBkZWZpbmVzIHJlYWQvd3JpdGUgc2Nh bm5pbmcgZGlyZWN0aW9uIG9mIGZyYW1lIG1lbW9yeS4KPiA+ICsgICAgICAqIFRoaXMgY29tbWFu ZCBtYWtlcyBubyBjaGFuZ2Ugb24gdGhlIG90aGVyIGRyaXZlciBzdGF0dXMuCj4gPiArICAgICAg Kgo+ID4gKyAgICAgICogQml0ICBOYW1lICAgICAgICAgICAgICAgICAgICAgRGVzY3JpcHRpb24K PiA+ICsgICAgICAqIE1ZICAgUm93IEFkZHJlc3MgT3JkZXIKPiA+ICsgICAgICAqIE1YICAgQ29s dW1uIEFkZHJlc3MgT3JkZXIKPiA+ICsgICAgICAqIE1WICAgUm93IC8gQ29sdW1uIEV4Y2hhbmdl ICAgIFRoZXNlIDMgYml0cyBjb250cm9sIE1DVSB0byBtZW1vcnkKPiA+ICsgICAgICAqICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHdyaXRlL3JlYWQgZGlyZWN0aW9uLgo+ID4gKyAgICAg ICogTUwgICBWZXJ0aWNhbCBSZWZyZXNoIE9yZGVyICAgTENEIHZlcnRpY2FsIHJlZnJlc2ggZGly ZWN0aW9uIGNvbnRyb2wuCj4gPiArICAgICAgKiBCR1IgIFJHQi1CR1IgT3JkZXIgICAgICAgICAg ICBDb2xvciBzZWxlY3RvciBzd2l0Y2ggY29udHJvbAo+ID4gKyAgICAgICogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgKDA9UkdCIGNvbG9yIGZpbHRlciBwYW5lbCwgMT1CR1IKPiA+ICsg ICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yIGZpbHRlciBwYW5lbCkK PiA+ICsgICAgICAqIE1IICAgSG9yaXpvbnRhbCBSZWZyZXNoIE9SREVSIExDRCBob3Jpem9udGFs IHJlZnJlc2hpbmcKPiA+ICsgICAgICAqIGRpcmVjdGlvbiBjb250cm9sLgo+ID4gKyAgICAgICoK PiA+ICsgICAgICAqIE5vdGU6IFdoZW4gQkdSIGJpdCBpcyBjaGFuZ2VkLCB0aGUgbmV3IHNldHRp bmcgaXMgYWN0aXZlCj4gPiArICAgICAgKiBpbW1lZGlhdGVseSB3aXRob3V0IHVwZGF0ZSB0aGUg Y29udGVudCBpbiBGcmFtZSBNZW1vcnkgYWdhaW4uCj4gPiArICAgICAgKgo+ID4gKyAgICAgICov Cj4gPiArICAgICB1OCBhZGRyZXNzX21vZGU7Cj4gPiArICAgICAvKiogQGczYW1tYV9lbjogVE9E TzogbmVlZCBjb21tZW50cyBmb3IgdGhpcyByZWdpc3RlciAqLwo+ID4gKyAgICAgdTggZzNhbW1h X2VuOwo+ID4gKyAgICAgLyoqIEByZ2JfaW50ZXJmYWNlOiBSR0IgSW50ZXJmYWNlIFNpZ25hbCBD b250cm9sIChCMGgpICovCj4gPiArICAgICAvKgo+ID4gKyAgICAgICogQjBoICAgICAgICAgIElG TU9ERSAoSW50ZXJmYWNlIE1vZGUgQ29udHJvbCkKPiA+ICsgICAgICAqICAgICAgICAgICAgICBE L0NYIFJEWCBXUlggRDE3LTggRDcgICAgICAgICAgRDYgICAgIEQ1ICAgICBENCBEMyAgIEQyICAg RDEgIEQwICBIRVgKPiA+ICsgICAgICAqIENvbW1hbmQgICAgICAwICAgIDEgICBNICAgWFggICAg MSAgICAgICAgICAgMCAgICAgIDEgICAgICAxICAwICAgIDAgICAgMCAgIDAgICBCMGgKPiA+ICsg ICAgICAqIFBhcmFtZXRlciAgICAxICAgIDEgICBNICAgWFggICAgQnlQYXNzX01PREUgUkNNWzFd IFJDTVswXSAwICBWU1BMIEhTUEwgRFBMIEVQTCA0MAo+ID4gKyAgICAgICoKPiA+ICsgICAgICAq IFNldHMgdGhlIG9wZXJhdGlvbiBzdGF0dXMgb2YgdGhlIGRpc3BsYXkgaW50ZXJmYWNlLiBUaGUg c2V0dGluZwo+ID4gKyAgICAgICogYmVjb21lcyBlZmZlY3RpdmUgYXMgc29vbiBhcyB0aGUgY29t bWFuZCBpcyByZWNlaXZlZC4KPiA+ICsgICAgICAqIEVQTDogREUgcG9sYXJpdHkgKOKAnDDigJ09 IEhpZ2ggZW5hYmxlIGZvciBSR0IgaW50ZXJmYWNlLCDigJwx4oCdPSBMb3cKPiA+ICsgICAgICAq IGVuYWJsZSBmb3IgUkdCIGludGVyZmFjZSkKPiA+ICsgICAgICAqCj4gPiArICAgICAgKiBEUEw6 IERPVENMSyBwb2xhcml0eSBzZXQgKOKAnDDigJ09IGRhdGEgZmV0Y2hlZCBhdCB0aGUgcmlzaW5n IHRpbWUsCj4gPiArICAgICAgKiDigJwx4oCdPSBkYXRhIGZldGNoZWQgYXQgdGhlIGZhbGxpbmcg dGltZSkKPiA+ICsgICAgICAqCj4gPiArICAgICAgKiBIU1BMOiBIU1lOQyBwb2xhcml0eSAo4oCc MOKAnT0gTG93IGxldmVsIHN5bmMgY2xvY2ssIOKAnDHigJ09IEhpZ2gKPiA+ICsgICAgICAqIGxl dmVsIHN5bmMgY2xvY2spCj4gPiArICAgICAgKgo+ID4gKyAgICAgICogVlNQTDogVlNZTkMgcG9s YXJpdHkgKOKAnDDigJ09IExvdyBsZXZlbCBzeW5jIGNsb2NrLCDigJwx4oCdPSBIaWdoCj4gPiAr ICAgICAgKiBsZXZlbCBzeW5jIGNsb2NrKQo+ID4gKyAgICAgICoKPiA+ICsgICAgICAqIFJDTSBb MTowXTogUkdCIGludGVyZmFjZSBzZWxlY3Rpb24gKHJlZmVyIHRvIHRoZSBSR0IgaW50ZXJmYWNl Cj4gPiArICAgICAgKiBzZWN0aW9uKS4KPiA+ICsgICAgICAqCj4gPiArICAgICAgKiBCeVBhc3Nf TU9ERTogU2VsZWN0IGRpc3BsYXkgZGF0YSBwYXRoIHdoZXRoZXIgTWVtb3J5IG9yIERpcmVjdCB0 bwo+ID4gKyAgICAgICogU2hpZnQgcmVnaXN0ZXIgd2hlbiBSR0IgSW50ZXJmYWNlIGlzIHVzZWQu Cj4gPiArICAgICAgKgo+ID4gKyAgICAgICogQnlQYXNzX01PREUgIERpc3BsYXkgRGF0YSBQYXRo Cj4gPiArICAgICAgKiAwICAgICAgICAgICAgRGlyZWN0IHRvIFNoaWZ0IFJlZ2lzdGVyIChkZWZh dWx0KQo+ID4gKyAgICAgICogMSAgICAgICAgICAgIE1lbW9yeQo+ID4gKyAgICAgICovCj4gPiAr ICAgICB1OCByZ2JfaW50ZXJmYWNlOwo+ID4gKyAgICAgLyoqIEBkZmNfMjogcmVmZXIgdG8gZGZj XzEgKi8KPiA+ICsgICAgIHU4IGRmY18yW0lMSTkzNDFfREZDXzJfTEVOXTsKPiA+ICsgICAgIC8q KiBAY29sdW1uX2FkZHI6IENvbHVtbiBBZGRyZXNzIFNldCAoMkFoKSAqLwo+ID4gKyAgICAgLyog VGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gZGVmaW5lIGFyZWEgb2YgZnJhbWUgbWVtb3J5IHdoZXJl IE1DVSBjYW4KPiA+ICsgICAgICAqIGFjY2Vzcy4gVGhpcyBjb21tYW5kIG1ha2VzIG5vIGNoYW5n ZSBvbiB0aGUKPiA+ICsgICAgICAqIG90aGVyIGRyaXZlciBzdGF0dXMuIFRoZSB2YWx1ZXMgb2Yg U0MgWzE1OjBdIGFuZCBFQyBbMTU6MF0gYXJlCj4gPiArICAgICAgKiByZWZlcnJlZCB3aGVuIFJB TVdSIGNvbW1hbmQgY29tZXMuIEVhY2ggdmFsdWUKPiA+ICsgICAgICAqIHJlcHJlc2VudHMgb25l IGNvbHVtbiBsaW5lIGluIHRoZSBGcmFtZSBNZW1vcnkuCj4gPiArICAgICAgKi8KPiA+ICsgICAg IHU4IGNvbHVtbl9hZGRyW0lMSTkzNDFfQ09MVU1OX0FERFJfTEVOXTsKPiA+ICsgICAgIC8qKiBA cGFnZV9hZGRyOiBQYWdlIEFkZHJlc3MgU2V0ICgyQmgpICovCj4gPiArICAgICAvKiBUaGlzIGNv bW1hbmQgaXMgdXNlZCB0byBkZWZpbmUgYXJlYSBvZiBmcmFtZSBtZW1vcnkgd2hlcmUgTUNVIGNh bgo+ID4gKyAgICAgICogYWNjZXNzLiBUaGlzIGNvbW1hbmQgbWFrZXMgbm8gY2hhbmdlIG9uIHRo ZQo+ID4gKyAgICAgICogb3RoZXIgZHJpdmVyIHN0YXR1cy4gVGhlIHZhbHVlcyBvZiBTUCBbMTU6 MF0gYW5kIEVQIFsxNTowXSBhcmUKPiA+ICsgICAgICAqIHJlZmVycmVkIHdoZW4gUkFNV1IgY29t bWFuZCBjb21lcy4gRWFjaCB2YWx1ZQo+ID4gKyAgICAgICogcmVwcmVzZW50cyBvbmUgUGFnZSBs aW5lIGluIHRoZSBGcmFtZSBNZW1vcnkuCj4gPiArICAgICAgKi8KPiA+ICsgICAgIHU4IHBhZ2Vf YWRkcltJTEk5MzQxX1BBR0VfQUREUl9MRU5dOwo+ID4gKyAgICAgLyoqIEBpbnRlcmZhY2U6IElu dGVyZmFjZSBDb250cm9sIChGNmgpICovCj4gPiArICAgICAvKgo+ID4gKyAgICAgICogRjZoICAg ICAgICAgIElGQ1RMICgxNmJpdHMgRGF0YSBGb3JtYXQgU2VsZWN0aW9uKQo+ID4gKyAgICAgICog ICAgICAgICAgICAgIEQvQ1ggUkRYIFdSWCBEMTctOCBENyAgIEQ2ICAgRDUgICAgIEQ0ICAgICBE MyAgICAgIEQyICAgICBEMSAgICAgRDAgICAgICBIRVgKPiA+ICsgICAgICAqIENvbW1hbmQgICAg ICAwICAgIDEgICBNICAgWFggICAgMSAgICAxICAgIDEgICAgICAxICAgICAgMCAgICAgICAxICAg ICAgMSAgICAgIDAgICAgICAgRjZoCj4gPiArICAgICAgKiAxc3RQYXJhbWV0ZXIgMSAgICAxICAg TSAgIFhYICAgIE1ZICAgTVggICBNVgo+ID4gKyAgICAgICogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBfRU9SIF9FT1IgX0VPUiAgIDAgICAgICBCR1JfRU9SIDAgICAgICAwICAgICAg V0UgTU9ERSAwMQo+ID4gKyAgICAgICogMm5kUGFyYW1ldGVyIDEgICAgMSAgIE0gICBYWCAgICAw ICAgIDAgICAgRVBGWzFdIEVQRlswXSAwICAgICAgIDAgICAgICBNRFRbMV0gTURUWzBdICAwMAo+ ID4gKyAgICAgICogM3JkUGFyYW1ldGVyIDEgICAgMSAgIE0gICBYWCAgICAwICAgIDAgICAgRU5E SUFOIDAgICAgICBETVsxXSAgIERNWzBdICBSTSAgICAgUklNICAgICAwMAo+ID4gKyAgICAgICoK PiA+ICsgICAgICAqLwo+ID4gKyAgICAgdTggaW50ZXJmYWNlW0lMSTkzNDFfSU5URVJGQUNFX0xF Tl07Cj4gPiArICAgICAvKiogQHBpeGVsX2Zvcm1hdDogVGhpcyBjb21tYW5kIHNldHMgdGhlIHBp eGVsIGZvcm1hdCBmb3IgdGhlIFJHQiBpbWFnZSBkYXRhIHVzZWQgYnkgKi8KPiA+ICsgICAgIC8q IHRoZSBpbnRlcmZhY2UuIERQSSBbMjowXSBpcyB0aGUgcGl4ZWwgZm9ybWF0IHNlbGVjdCBvZiBS R0IKPiA+ICsgICAgICAqIGludGVyZmFjZSBhbmQgREJJIFsyOjBdIGlzIHRoZSBwaXhlbCBmb3Jt YXQgb2YgTUNVIGludGVyZmFjZS4gSWYgYQo+ID4gKyAgICAgICogcGFydGljdWxhciBpbnRlcmZh Y2UsIGVpdGhlciBSR0IgaW50ZXJmYWNlIG9yIE1DVSBpbnRlcmZhY2UsIGlzCj4gPiArICAgICAg KiBub3QgdXNlZCB0aGVuIHRoZSBjb3JyZXNwb25kaW5nIGJpdHMgaW4gdGhlIHBhcmFtZXRlciBh cmUgaWdub3JlZC4KPiA+ICsgICAgICAqIFRoZSBwaXhlbCBmb3JtYXQgaXMgc2hvd24gaW4gdGhl IHRhYmxlIGJlbG93Lgo+ID4gKyAgICAgICoKPiA+ICsgICAgICAqIERQSVsyOjBdICAgICBSR0Ig SW50ZXJmYWNlIEZvcm1hdCAgICBEQklbMjowXSBNQ1UgSW50ZXJmYWNlIEZvcm1hdAo+ID4gKyAg ICAgICogMCAwIDAgICAgICAgIFJlc2VydmVkICAgICAgICAgICAgICAgIDAgMCAwICAgIFJlc2Vy dmVkCj4gPiArICAgICAgKiAwIDAgMSAgICAgICAgUmVzZXJ2ZWQgICAgICAgICAgICAgICAgMCAw IDEgICAgUmVzZXJ2ZWQKPiA+ICsgICAgICAqIDAgMSAwICAgICAgICBSZXNlcnZlZCAgICAgICAg ICAgICAgICAwIDEgMCAgICBSZXNlcnZlZAo+ID4gKyAgICAgICogMCAxIDEgICAgICAgIFJlc2Vy dmVkICAgICAgICAgICAgICAgIDAgMSAxICAgIFJlc2VydmVkCj4gPiArICAgICAgKiAxIDAgMCAg ICAgICAgUmVzZXJ2ZWQgICAgICAgICAgICAgICAgMSAwIDAgICAgUmVzZXJ2ZWQKPiA+ICsgICAg ICAqIDEgMCAxICAgICAgICAxNiBiaXRzIC8gcGl4ZWwgICAgICAgICAxIDAgMSAgICAxNiBiaXRz IC8gcGl4ZWwKPiA+ICsgICAgICAqIDEgMSAwICAgICAgICAxOCBiaXRzIC8gcGl4ZWwgICAgICAg ICAxIDEgMCAgICAxOCBiaXRzIC8gcGl4ZWwKPiA+ICsgICAgICAqIDEgMSAxICAgICAgICBSZXNl cnZlZCAgICAgICAgICAgICAgICAxIDEgMSAgICBSZXNlcnZlZAo+ID4gKyAgICAgICoKPiA+ICsg ICAgICAqLwo+ID4gKyAgICAgdTggcGl4ZWxfZm9ybWF0Owo+ID4gKyAgICAgLyoqIEBnYW1tYV9j dXJ2ZTogVGhpcyBjb21tYW5kIGlzIHVzZWQgdG8gc2VsZWN0IHRoZSBkZXNpcmVkIEdhbW1hIGN1 cnZlIGZvciB0aGUgKi8KPiA+ICsgICAgIC8qIGN1cnJlbnQgZGlzcGxheS4gQSBtYXhpbXVtIG9m IDQgZml4ZWQgZ2FtbWEgY3VydmVzIGNhbgo+ID4gKyAgICAgICogYmUgc2VsZWN0ZWQuIFRoZSBj dXJ2ZSBpcyBzZWxlY3RlZCBieSBzZXR0aW5nIHRoZSBhcHByb3ByaWF0ZSBiaXQKPiA+ICsgICAg ICAqIGluIHRoZSBwYXJhbWV0ZXIgYXMgZGVzY3JpYmVkIGluIHRoZSBUYWJsZToKPiA+ICsgICAg ICAqCj4gPiArICAgICAgKiBHQyBbNzowXSAgICAgQ3VydmUgU2VsZWN0ZWQKPiA+ICsgICAgICAq IDAxaCAgICAgICAgICBHYW1tYSBjdXJ2ZSAxIChHMi4yKQo+ID4gKyAgICAgICogMDJoICAgICAg ICAgIC0tLQo+ID4gKyAgICAgICogMDRoICAgICAgICAgIC0tLQo+ID4gKyAgICAgICogMDhoICAg ICAgICAgIC0tLQo+ID4gKyAgICAgICovCj4gPiArICAgICB1OCBnYW1tYV9jdXJ2ZTsKPiA+ICsg ICAgIC8qKiBAcGdhbW1hOiBQb3NpdGl2ZSBHYW1tYSBDb3JyZWN0aW9uIChFMGgpICovCj4gPiAr ICAgICAvKgo+ID4gKyAgICAgICogU2V0IHRoZSBncmF5IHNjYWxlIHZvbHRhZ2UgdG8gYWRqdXN0 IHRoZSBnYW1tYSBjaGFyYWN0ZXJpc3RpY3Mgb2YKPiA+ICsgICAgICAqIHRoZSBURlQgcGFuZWwu Cj4gPiArICAgICAgKi8KPiA+ICsgICAgIHU4IHBnYW1tYVtJTEk5MzQxX1BHQU1NQV9MRU5dOwo+ ID4gKyAgICAgLyoqIEBuZ2FtbWE6IE5lZ2F0aXZlIEdhbW1hIENvcnJlY3Rpb24gKEUxaCkgKi8K PiA+ICsgICAgIC8qCj4gPiArICAgICAgKiBTZXQgdGhlIGdyYXkgc2NhbGUgdm9sdGFnZSB0byBh ZGp1c3QgdGhlIGdhbW1hIGNoYXJhY3RlcmlzdGljcyBvZgo+ID4gKyAgICAgICogdGhlIFRGVCBw YW5lbC4KPiA+ICsgICAgICAqLwo+ID4gKyAgICAgdTggbmdhbW1hW0lMSTkzNDFfTkdBTU1BX0xF Tl07Cj4gPiArfTsKPiA+ICsKPiA+ICtzdHJ1Y3QgaWxpOTM0MSB7Cj4gPiArICAgICBzdHJ1Y3Qg ZGV2aWNlICpkZXY7Cj4gPiArICAgICBjb25zdCBzdHJ1Y3QgaWxpOTM0MV9jb25maWcgKmNvbmY7 Cj4gPiArICAgICBzdHJ1Y3QgZHJtX3BhbmVsIHBhbmVsOwo+ID4gKyAgICAgc3RydWN0IGdwaW9f ZGVzYyAqcmVzZXRfZ3BpbzsKPiA+ICsgICAgIHN0cnVjdCBncGlvX2Rlc2MgKmRjX2dwaW87Cj4g PiArICAgICB1MzIgbWF4X3NwaV9zcGVlZDsKPiA+ICsgICAgIHN0cnVjdCByZWd1bGF0b3IgKnZj YzsKPiA+ICt9Owo+ID4gKwo+ID4gKy8qCj4gPiArICogVGhlIFN0bTMyZjQyOS1kaXNjbyBib2Fy ZCBoYXMgYSBwYW5lbCBpbGk5MzQxIGNvbm5lY3RlZCB0byBsdGRjIGNvbnRyb2xsZXIKPiA+ICsg Ki8KPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGlsaTkzNDFfY29uZmlnIGlsaTkzNDFfc3RtMzJm NDI5X2Rpc2NvX2RhdGEgPSB7Cj4gPiArICAgICAubWF4X3NwaV9zcGVlZCA9IDEwMDAwMDAwLAo+ ID4gKyAgICAgLm1vZGUgPSB7Cj4gPiArICAgICAgICAgICAgIC5jbG9jayA9IDYxMDAsCj4gPiAr ICAgICAgICAgICAgIC5oZGlzcGxheSA9IDI0MCwKPiA+ICsgICAgICAgICAgICAgLmhzeW5jX3N0 YXJ0ID0gMjQwICsgMTAsLyogaGZwIDEwICovCj4gPiArICAgICAgICAgICAgIC5oc3luY19lbmQg PSAyNDAgKyAxMCArIDEwLC8qIGhzeW5jIDEwICovCj4gPiArICAgICAgICAgICAgIC5odG90YWwg PSAyNDAgKyAxMCArIDEwICsgMjAsLyogaGJwIDIwICovCj4gPiArICAgICAgICAgICAgIC52ZGlz cGxheSA9IDMyMCwKPiA+ICsgICAgICAgICAgICAgLnZzeW5jX3N0YXJ0ID0gMzIwICsgNCwvKiB2 ZnAgNCAqLwo+ID4gKyAgICAgICAgICAgICAudnN5bmNfZW5kID0gMzIwICsgNCArIDIsLyogdnN5 bmMgMiAqLwo+ID4gKyAgICAgICAgICAgICAudnRvdGFsID0gMzIwICsgNCArIDIgKyAyLC8qIHZi cCAyICovCj4gPiArICAgICAgICAgICAgIC5mbGFncyA9IDAsCj4gPiArICAgICAgICAgICAgIC53 aWR0aF9tbSA9IDY1LAo+ID4gKyAgICAgICAgICAgICAuaGVpZ2h0X21tID0gNTAsCj4gPiArICAg ICAgICAgICAgIC50eXBlID0gRFJNX01PREVfVFlQRV9EUklWRVIgfCBEUk1fTU9ERV9UWVBFX1BS RUZFUlJFRCwKPiA+ICsgICAgIH0sCj4gPiArICAgICAvKiBUT0RPOiBuZWVkIGNvbW1lbnRzIGZv ciB0aGlzIHJlZ2lzdGVyICovCj4gPiArICAgICAuY2EgPSB7MHhjMywgMHgwOCwgMHg1MH0sCj4g PiArICAgICAvKiBUT0RPOiBuZWVkIGNvbW1lbnRzIGZvciB0aGlzIHJlZ2lzdGVyICovCj4gPiAr ICAgICAucG93ZXJfYiA9IHsweDAwLCAweGMxLCAweDMwfSwKPiA+ICsgICAgIC8qIFRPRE86IG5l ZWQgY29tbWVudHMgZm9yIHRoaXMgcmVnaXN0ZXIgKi8KPiA+ICsgICAgIC5wb3dlcl9zZXEgPSB7 MHg2NCwgMHgwMywgMHgxMiwgMHg4MX0sCj4gPiArICAgICAvKiBUT0RPOiBuZWVkIGNvbW1lbnRz IGZvciB0aGlzIHJlZ2lzdGVyICovCj4gPiArICAgICAuZHRjYSA9IHsweDg1LCAweDAwLCAweDc4 fSwKPiA+ICsgICAgIC8qIFRPRE86IG5lZWQgY29tbWVudHMgZm9yIHRoaXMgcmVnaXN0ZXIgKi8K PiA+ICsgICAgIC5wb3dlcl9hID0gezB4MzksIDB4MmMsIDB4MDAsIDB4MzQsIDB4MDJ9LAo+ID4g KyAgICAgLyogVE9ETzogbmVlZCBjb21tZW50cyBmb3IgdGhpcyByZWdpc3RlciAqLwo+ID4gKyAg ICAgLnByYyA9IDB4MjAsCj4gPiArICAgICAvKiBUT0RPOiBuZWVkIGNvbW1lbnRzIGZvciB0aGlz IHJlZ2lzdGVyICovCj4gPiArICAgICAuZHRjYiA9IHsweDAwLCAweDAwfSwKPiA+ICsgICAgIC8q IDB4MDAgZm9zYywgMHgxYiA3MGh6ICovCj4gPiArICAgICAuZnJjID0gezB4MDAsIDB4MWJ9LAo+ ID4gKyAgICAgLyogMHgwYSBJbnRlcnZhbCBzY2FuLCBBR05EIEFHTkQgQUdORCBBR05ECj4gPiAr ICAgICAgKiAweGEyIE5vcm1hbGx5IHdoaXRlLCBHMSAtPiBHMzIwLCBTNzIwIC0+IFMxLAo+ID4g KyAgICAgICogICAgICBTY2FuIEN5Y2xlIDUgZnJhbWVzLDg1bXMKPiA+ICsgICAgICAqLwo+ID4g KyAgICAgLmRmY18xID0gezB4MGEsIDB4YTJ9LAo+ID4gKyAgICAgLyogMHgxMCAzLjY1diAqLwo+ ID4gKyAgICAgLnBvd2VyXzEgPSAweDEwLAo+ID4gKyAgICAgLyogMHgxMCBBVkREPXZjaSoyLCBW R0g9dmNpKjcsIFZHTD0tdmNpKjQgKi8KPiA+ICsgICAgIC5wb3dlcl8yID0gMHgxMCwKPiA+ICsg ICAgIC8qIDB4NDUgVkNPTUggNC40MjV2LCAweDE1IFZDT01MIC0xLjk3NSovCj4gPiArICAgICAu dmNvbV8xID0gezB4NDUsIDB4MTV9LAo+ID4gKyAgICAgLyogMHg5MCBvZmZzZXQgdm9sdGFnZSwg Vk1ILTQ4LCBWTUwtNDggKi8KPiA+ICsgICAgIC52Y29tXzIgPSAweDkwLAo+ID4gKyAgICAgLyog MHhjOCBSb3cgQWRkcmVzcyBPcmRlciwgQ29sdW1uIEFkZHJlc3MgT3JkZXIKPiA+ICsgICAgICAq ICAgICAgQkdSIDEKPiA+ICsgICAgICAqLwo+ID4gKyAgICAgLmFkZHJlc3NfbW9kZSA9IDB4Yzgs Cj4gPiArICAgICAuZzNhbW1hX2VuID0gMHgwMCwKPiA+ICsgICAgIC8qIDB4YzIKPiA+ICsgICAg ICAqIERpc3BsYXkgRGF0YSBQYXRoOiBNZW1vcnkKPiA+ICsgICAgICAqIFJHQjogREUgbW9kZQo+ ID4gKyAgICAgICogRE9UQ0xLIHBvbGFyaXR5IHNldCAoZGF0YSBmZXRjaGVkIGF0IHRoZSBmYWxs aW5nIHRpbWUpCj4gPiArICAgICAgKi8KPiA+ICsgICAgIC5yZ2JfaW50ZXJmYWNlID0gSUxJOTM0 MV9SR0JfRElTUF9QQVRIX01FTSB8Cj4gPiArICAgICAgICAgICAgICAgICAgICAgSUxJOTM0MV9S R0JfREVfTU9ERSB8Cj4gPiArICAgICAgICAgICAgICAgICAgICAgSUxJOTM0MV9SR0JfRFBMLAo+ ID4gKyAgICAgLyoKPiA+ICsgICAgICAqIDB4MGEKPiA+ICsgICAgICAqIEdhdGUgb3V0cHV0cyBp biBub24tZGlzcGxheSBhcmVhOiBJbnRlcnZhbCBzY2FuCj4gPiArICAgICAgKiBEZXRlcm1pbmUg c291cmNlL1ZDT00gb3V0cHV0IGluIGEgbm9uLWRpc3BsYXkgYXJlYSBpbiB0aGUgcGFydGlhbAo+ ID4gKyAgICAgICogZGlzcGxheSBtb2RlOiBBR05EIEFHTkQgQUdORCBBR05ECj4gPiArICAgICAg Kgo+ID4gKyAgICAgICogMHhhNwo+ID4gKyAgICAgICogU2NhbiBDeWNsZTogMTUgZnJhbWVzCj4g PiArICAgICAgKiBmRkxNID0gNjBIejogMjU1bXMKPiA+ICsgICAgICAqIExpcXVpZCBjcnlzdGFs IHR5cGU6IE5vcm1hbGx5IHdoaXRlCj4gPiArICAgICAgKiBHYXRlIE91dHB1dCBTY2FuIERpcmVj dGlvbjogRzEgLT4gRzMyMAo+ID4gKyAgICAgICogU291cmNlIE91dHB1dCBTY2FuIERpcmVjdGlv bjogUzcyMCAtPiBTMQo+ID4gKyAgICAgICoKPiA+ICsgICAgICAqIDB4MjcKPiA+ICsgICAgICAq IExDRCBEcml2ZXIgTGluZTogMzIwIGxpbmVzCj4gPiArICAgICAgKgo+ID4gKyAgICAgICogMHgw NAo+ID4gKyAgICAgICogUENESVY6IDQKPiA+ICsgICAgICAqLwo+ID4gKyAgICAgLmRmY18yID0g ezB4MGEsIDB4YTcsIDB4MjcsIDB4MDR9LAo+ID4gKyAgICAgLyogY29sdW1uIGFkZHJlc3M6IDI0 MCAqLwo+ID4gKyAgICAgLmNvbHVtbl9hZGRyID0gezB4MDAsIDB4MDAsIChJTEk5MzQxX0NPTFVN Tl9BRERSID4+IDQpICYgMHhmZiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElM STkzNDFfQ09MVU1OX0FERFIgJiAweGZmfSwKPiA+ICsgICAgIC8qIHBhZ2UgYWRkcmVzczogMzIw ICovCj4gPiArICAgICAucGFnZV9hZGRyID0gezB4MDAsIDB4MDAsIChJTEk5MzQxX1BBR0VfQURE UiA+PiA0KSAmIDB4ZmYsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTEk5MzQx X1BBR0VfQUREUiAmIDB4ZmZ9LAo+ID4gKyAgICAgLyogTWVtb3J5IHdyaXRlIGNvbnRyb2w6IFdo ZW4gdGhlIHRyYW5zZmVyIG51bWJlciBvZiBkYXRhIGV4Y2VlZHMKPiA+ICsgICAgICAqIChFQy1T QysxKSooRVAtU1ArMSksIHRoZSBjb2x1bW4gYW5kIHBhZ2UgbnVtYmVyIHdpbGwgYmUKPiA+ICsg ICAgICAqIHJlc2V0LCBhbmQgdGhlIGV4Y2VlZGluZyBkYXRhIHdpbGwgYmUgd3JpdHRlbiBpbnRv IHRoZSBmb2xsb3dpbmcKPiA+ICsgICAgICAqIGNvbHVtbiBhbmQgcGFnZS4KPiA+ICsgICAgICAq IERpc3BsYXkgT3BlcmF0aW9uIE1vZGU6IFJHQiBJbnRlcmZhY2UgTW9kZQo+ID4gKyAgICAgICog SW50ZXJmYWNlIGZvciBSQU0gQWNjZXNzOiBSR0IgaW50ZXJmYWNlCj4gPiArICAgICAgKiAxNi0g Yml0IFJHQiBpbnRlcmZhY2UgKDEgdHJhbnNmZXIvcGl4ZWwpCj4gPiArICAgICAgKi8KPiA+ICsg ICAgIC5pbnRlcmZhY2UgPSB7SUxJOTM0MV9JRl9XRV9NT0RFLCAweDAwLAo+ID4gKyAgICAgICAg ICAgICAgICAgICAgIElMSTkzNDFfSUZfRE1fUkdCIHwgSUxJOTM0MV9JRl9STV9SR0J9LAo+ID4g KyAgICAgLyogRFBJOiAxNiBiaXRzIC8gcGl4ZWwgKi8KPiA+ICsgICAgIC5waXhlbF9mb3JtYXQg PSBJTEk5MzQxX1BJWEVMX0RQSV8xNl9CSVRTLAo+ID4gKyAgICAgLyogQ3VydmUgU2VsZWN0ZWQ6 IEdhbW1hIGN1cnZlIDEgKEcyLjIpICovCj4gPiArICAgICAuZ2FtbWFfY3VydmUgPSBJTEk5MzQx X0dBTU1BX0NVUlZFXzEsCj4gPiArICAgICAucGdhbW1hID0gezB4MGYsIDB4MjksIDB4MjQsIDB4 MGMsIDB4MGUsCj4gPiArICAgICAgICAgICAgICAgICAgICAgMHgwOSwgMHg0ZSwgMHg3OCwgMHgz YywgMHgwOSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAweDEzLCAweDA1LCAweDE3LCAweDEx LCAweDAwfSwKPiA+ICsgICAgIC5uZ2FtbWEgPSB7MHgwMCwgMHgxNiwgMHgxYiwgMHgwNCwgMHgx MSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAweDA3LCAweDMxLCAweDMzLCAweDQyLCAweDA1 LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIDB4MGMsIDB4MGEsIDB4MjgsIDB4MmYsIDB4MGZ9 LAo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIGlubGluZSBzdHJ1Y3QgaWxpOTM0MSAqcGFuZWxf dG9faWxpOTM0MShzdHJ1Y3QgZHJtX3BhbmVsICpwYW5lbCkKPiA+ICt7Cj4gPiArICAgICByZXR1 cm4gY29udGFpbmVyX29mKHBhbmVsLCBzdHJ1Y3QgaWxpOTM0MSwgcGFuZWwpOwo+ID4gK30KPiA+ ICsKPiA+ICtzdGF0aWMgaW50IGlsaTkzNDFfc3BpX3RyYW5zZmVyKHN0cnVjdCBzcGlfZGV2aWNl ICpzcGksIHUzMiBzcGVlZF9oeiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgIHU4IGJwdywg Y29uc3Qgdm9pZCAqYnVmLCBzaXplX3QgbGVuKQo+ID4gK3sKPiA+ICsgICAgIHNpemVfdCBtYXhf Y2h1bmsgPSBzcGlfbWF4X3RyYW5zZmVyX3NpemUoc3BpKTsKPiA+ICsgICAgIHN0cnVjdCBzcGlf dHJhbnNmZXIgdHIgPSB7Cj4gPiArICAgICAgICAgICAgIC5iaXRzX3Blcl93b3JkID0gYnB3LAo+ ID4gKyAgICAgICAgICAgICAuc3BlZWRfaHogPSBzcGVlZF9oeiwKPiA+ICsgICAgICAgICAgICAg LmxlbiA9IGxlbiwKPiA+ICsgICAgIH07Cj4gPiArICAgICBzdHJ1Y3Qgc3BpX21lc3NhZ2UgbTsK PiA+ICsgICAgIHNpemVfdCBjaHVuazsKPiA+ICsgICAgIGludCByZXQ7Cj4gPiArCj4gPiArICAg ICBzcGlfbWVzc2FnZV9pbml0X3dpdGhfdHJhbnNmZXJzKCZtLCAmdHIsIDEpOwo+ID4gKwo+ID4g KyAgICAgd2hpbGUgKGxlbikgewo+ID4gKyAgICAgICAgICAgICBjaHVuayA9IG1pbihsZW4sIG1h eF9jaHVuayk7Cj4gPiArCj4gPiArICAgICAgICAgICAgIHRyLnR4X2J1ZiA9IGJ1ZjsKPiA+ICsg ICAgICAgICAgICAgdHIubGVuID0gY2h1bms7Cj4gPiArICAgICAgICAgICAgIGJ1ZiArPSBjaHVu azsKPiA+ICsgICAgICAgICAgICAgbGVuIC09IGNodW5rOwo+ID4gKwo+ID4gKyAgICAgICAgICAg ICByZXQgPSBzcGlfc3luYyhzcGksICZtKTsKPiA+ICsgICAgICAgICAgICAgaWYgKHJldCkgewo+ ID4gKyAgICAgICAgICAgICAgICAgICAgIGRldl9lcnIoJnNwaS0+ZGV2LCAic3BpX3N5bmMgZXJy b3I6ICVkXG4iLCByZXQpOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4g PiArICAgICAgICAgICAgIH0KPiA+ICsgICAgIH0KPiA+ICsgICAgIHJldHVybiAwOwo+ID4gK30K PiA+ICsKPiA+ICtzdGF0aWMgaW50IF9pbGk5MzQxX2NvbW1hbmQoc3RydWN0IGlsaTkzNDEgKmls aSwgdTggY21kLCBjb25zdCB2b2lkICpkYXRhLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHNpemVfdCBjb3VudCkKPiA+ICt7Cj4gPiArICAgICBzdHJ1Y3Qgc3BpX2Rldmlj ZSAqc3BpID0gdG9fc3BpX2RldmljZShpbGktPmRldik7Cj4gPiArICAgICBpbnQgcmV0ID0gMDsK PiA+ICsKPiA+ICsgICAgIGdwaW9kX3NldF92YWx1ZV9jYW5zbGVlcChpbGktPmRjX2dwaW8sIDAp Owo+ID4gKwo+ID4gKyAgICAgcmV0ID0gaWxpOTM0MV9zcGlfdHJhbnNmZXIoc3BpLCBpbGktPm1h eF9zcGlfc3BlZWQsIDgsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IChjb25zdCB2b2lkICopJmNtZCwgMSk7Cj4gPiArICAgICBpZiAocmV0IHx8IGRhdGEgPT0gTlVM TCB8fCBjb3VudCA9PSAwKSB7Cj4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiArICAg ICB9Cj4gPiArCj4gPiArICAgICBncGlvZF9zZXRfdmFsdWVfY2Fuc2xlZXAoaWxpLT5kY19ncGlv LCAxKTsKPiA+ICsKPiA+ICsgICAgIHJldHVybiBpbGk5MzQxX3NwaV90cmFuc2ZlcihzcGksIGls aS0+bWF4X3NwaV9zcGVlZCwgOCwKPiA+ICsgICAgICAgICAgICAgZGF0YSwgY291bnQpOwo+ID4g K30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IGlsaTkzNDFfZHBpX2luaXQoc3RydWN0IGlsaTkzNDEg KmlsaSkKPiA+ICt7Cj4gPiArICAgICBpbnQgcmV0Owo+ID4gKyAgICAgcmV0ID0gX2lsaTkzNDFf Y29tbWFuZChpbGksIDB4Y2EsCj4gPiArICAgICAgICAgICAgICAgICAgICAgaWxpLT5jb25mLT5j YSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICBJTEk5MzQxX0NBX0xFTik7Cj4gPiArICAgICBp ZiAocmV0KQo+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gKwo+ID4gKyAgICAgcmV0 ID0gX2lsaTkzNDFfY29tbWFuZChpbGksIElMSTkzNDFfUE9XRVJCLAo+ID4gKyAgICAgICAgICAg ICAgICAgICAgIGlsaS0+Y29uZi0+cG93ZXJfYiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICBJ TEk5MzQxX1BPV0VSX0JfTEVOKTsKPiA+ICsgICAgIGlmIChyZXQpCj4gPiArICAgICAgICAgICAg IHJldHVybiByZXQ7Cj4gPiArCj4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21tYW5kKGlsaSwg SUxJOTM0MV9QT1dFUl9TRVEsCj4gPiArICAgICAgICAgICAgICAgICAgICAgaWxpLT5jb25mLT5w b3dlcl9zZXEsCj4gPiArICAgICAgICAgICAgICAgICAgICAgSUxJOTM0MV9QT1dFUl9TRVFfTEVO KTsKPiA+ICsgICAgIGlmIChyZXQpCj4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiAr Cj4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21tYW5kKGlsaSwgSUxJOTM0MV9EVENBLAo+ID4g KyAgICAgICAgICAgICAgICAgICAgIGlsaS0+Y29uZi0+ZHRjYSwKPiA+ICsgICAgICAgICAgICAg ICAgICAgICBJTEk5MzQxX0RUQ0FfTEVOKTsKPiA+ICsgICAgIGlmIChyZXQpCj4gPiArICAgICAg ICAgICAgIHJldHVybiByZXQ7Cj4gPiArCj4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21tYW5k KGlsaSwgSUxJOTM0MV9QT1dFUkEsCj4gPiArICAgICAgICAgICAgICAgICAgICAgaWxpLT5jb25m LT5wb3dlcl9hLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIElMSTkzNDFfUE9XRVJfQV9MRU4p Owo+ID4gKyAgICAgaWYgKHJldCkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsK PiA+ICsgICAgIHJldCA9IF9pbGk5MzQxX2NvbW1hbmQoaWxpLCBJTEk5MzQxX1BSQywKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAmaWxpLT5jb25mLT5wcmMsCj4gPiArICAgICAgICAgICAgICAg ICAgICAgMSk7Cj4gPiArICAgICBpZiAocmV0KQo+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0 Owo+ID4gKwo+ID4gKyAgICAgcmV0ID0gX2lsaTkzNDFfY29tbWFuZChpbGksIElMSTkzNDFfRFRD QiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICBpbGktPmNvbmYtPmR0Y2IsCj4gPiArICAgICAg ICAgICAgICAgICAgICAgSUxJOTM0MV9EVENCX0xFTik7Cj4gPiArICAgICBpZiAocmV0KQo+ID4g KyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gKwo+ID4gKyAgICAgcmV0ID0gX2lsaTkzNDFf Y29tbWFuZChpbGksIElMSTkzNDFfRlJDLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIGlsaS0+ Y29uZi0+ZnJjLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIElMSTkzNDFfRlJDX0xFTik7Cj4g PiArICAgICBpZiAocmV0KQo+ID4gKyAgICAgICAgICAgICByZXR1cm4gcmV0Owo+ID4gKwo+ID4g KyAgICAgcmV0ID0gX2lsaTkzNDFfY29tbWFuZChpbGksIElMSTkzNDFfREZDLAo+ID4gKyAgICAg ICAgICAgICAgICAgICAgIGlsaS0+Y29uZi0+ZGZjXzEsCj4gPiArICAgICAgICAgICAgICAgICAg ICAgSUxJOTM0MV9ERkNfMV9MRU4pOwo+ID4gKyAgICAgaWYgKHJldCkKPiA+ICsgICAgICAgICAg ICAgcmV0dXJuIHJldDsKPiA+ICsKPiA+ICsgICAgIHJldCA9IF9pbGk5MzQxX2NvbW1hbmQoaWxp LCBJTEk5MzQxX1BPV0VSMSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAmaWxpLT5jb25mLT5w b3dlcl8xLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIDEpOwo+ID4gKyAgICAgaWYgKHJldCkK PiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsKPiA+ICsgICAgIHJldCA9IF9pbGk5 MzQxX2NvbW1hbmQoaWxpLCBJTEk5MzQxX1BPV0VSMiwKPiA+ICsgICAgICAgICAgICAgICAgICAg ICAmaWxpLT5jb25mLT5wb3dlcl8yLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIDEpOwo+ID4g KyAgICAgaWYgKHJldCkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsKPiA+ICsg ICAgIHJldCA9IF9pbGk5MzQxX2NvbW1hbmQoaWxpLCBJTEk5MzQxX1ZDT00xLAo+ID4gKyAgICAg ICAgICAgICAgICAgICAgIGlsaS0+Y29uZi0+dmNvbV8xLAo+ID4gKyAgICAgICAgICAgICAgICAg ICAgIElMSTkzNDFfVkNPTV8xX0xFTik7Cj4gPiArICAgICBpZiAocmV0KQo+ID4gKyAgICAgICAg ICAgICByZXR1cm4gcmV0Owo+ID4gKwo+ID4gKyAgICAgcmV0ID0gX2lsaTkzNDFfY29tbWFuZChp bGksIElMSTkzNDFfVkNPTTIsCj4gPiArICAgICAgICAgICAgICAgICAgICAgJmlsaS0+Y29uZi0+ dmNvbV8yLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIDEpOwo+ID4gKyAgICAgaWYgKHJldCkK PiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsKPiA+ICsgICAgIHJldCA9IF9pbGk5 MzQxX2NvbW1hbmQoaWxpLCBNSVBJX0RDU19TRVRfQUREUkVTU19NT0RFLAo+ID4gKyAgICAgICAg ICAgICAgICAgICAgICZpbGktPmNvbmYtPmFkZHJlc3NfbW9kZSwKPiA+ICsgICAgICAgICAgICAg ICAgICAgICAxKTsKPiA+ICsgICAgIGlmIChyZXQpCj4gPiArICAgICAgICAgICAgIHJldHVybiBy ZXQ7Cj4gPiArCj4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21tYW5kKGlsaSwgSUxJOTM0MV8z R0FNTUFfRU4sCj4gPiArICAgICAgICAgICAgICAgICAgICAgJmlsaS0+Y29uZi0+ZzNhbW1hX2Vu LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIDEpOwo+ID4gKyAgICAgaWYgKHJldCkKPiA+ICsg ICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsKPiA+ICsgICAgIHJldCA9IF9pbGk5MzQxX2Nv bW1hbmQoaWxpLCBJTEk5MzQxX1JHQl9JTlRFUkZBQ0UsCj4gPiArICAgICAgICAgICAgICAgICAg ICAgJmlsaS0+Y29uZi0+cmdiX2ludGVyZmFjZSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAx KTsKPiA+ICsgICAgIGlmIChyZXQpCj4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiAr Cj4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21tYW5kKGlsaSwgSUxJOTM0MV9ERkMsCj4gPiAr ICAgICAgICAgICAgICAgICAgICAgaWxpLT5jb25mLT5kZmNfMiwKPiA+ICsgICAgICAgICAgICAg ICAgICAgICBJTEk5MzQxX0RGQ18yX0xFTik7Cj4gPiArICAgICBpZiAocmV0KQo+ID4gKyAgICAg ICAgICAgICByZXR1cm4gcmV0Owo+ID4gKwo+ID4gKyAgICAgcmV0ID0gX2lsaTkzNDFfY29tbWFu ZChpbGksIE1JUElfRENTX1NFVF9DT0xVTU5fQUREUkVTUywKPiA+ICsgICAgICAgICAgICAgICAg ICAgICBpbGktPmNvbmYtPmNvbHVtbl9hZGRyLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgIElM STkzNDFfQ09MVU1OX0FERFJfTEVOKTsKPiA+ICsgICAgIGlmIChyZXQpCj4gPiArICAgICAgICAg ICAgIHJldHVybiByZXQ7Cj4gPiArCj4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21tYW5kKGls aSwgTUlQSV9EQ1NfU0VUX1BBR0VfQUREUkVTUywKPiA+ICsgICAgICAgICAgICAgICAgICAgICBp bGktPmNvbmYtPnBhZ2VfYWRkciwKPiA+ICsgICAgICAgICAgICAgICAgICAgICBJTEk5MzQxX1BB R0VfQUREUl9MRU4pOwo+ID4gKyAgICAgaWYgKHJldCkKPiA+ICsgICAgICAgICAgICAgcmV0dXJu IHJldDsKPiA+ICsKPiA+ICsgICAgIHJldCA9IF9pbGk5MzQxX2NvbW1hbmQoaWxpLCBJTEk5MzQx X0lOVEVSRkFDRSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICBpbGktPmNvbmYtPmludGVyZmFj ZSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICBJTEk5MzQxX0lOVEVSRkFDRV9MRU4pOwo+ID4g KyAgICAgaWYgKHJldCkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsKPiA+ICsg ICAgIHJldCA9IF9pbGk5MzQxX2NvbW1hbmQoaWxpLCBNSVBJX0RDU19TRVRfUElYRUxfRk9STUFU LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICZpbGktPmNvbmYtPnBpeGVsX2Zvcm1hdCwKPiA+ ICsgICAgICAgICAgICAgICAgICAgICAxKTsKPiA+ICsgICAgIGlmIChyZXQpCj4gPiArICAgICAg ICAgICAgIHJldHVybiByZXQ7Cj4gPiArCj4gPiArICAgICByZXQgPSBpbGk5MzQxX2NvbW1hbmQo aWxpLCBNSVBJX0RDU19XUklURV9NRU1PUllfU1RBUlQpOwo+ID4gKyAgICAgaWYgKHJldCkKPiA+ ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsKPiA+ICsgICAgIG1zbGVlcCgyMDApOwo+ ID4gKyAgICAgcmV0ID0gX2lsaTkzNDFfY29tbWFuZChpbGksIE1JUElfRENTX1NFVF9HQU1NQV9D VVJWRSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAmaWxpLT5jb25mLT5nYW1tYV9jdXJ2ZSwK PiA+ICsgICAgICAgICAgICAgICAgICAgICAxKTsKPiA+ICsgICAgIGlmIChyZXQpCj4gPiArICAg ICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiArCj4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21t YW5kKGlsaSwgSUxJOTM0MV9QR0FNTUEsCj4gPiArICAgICAgICAgICAgICAgICAgICAgaWxpLT5j b25mLT5wZ2FtbWEsCj4gPiArICAgICAgICAgICAgICAgICAgICAgSUxJOTM0MV9QR0FNTUFfTEVO KTsKPiA+ICsgICAgIGlmIChyZXQpCj4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiAr Cj4gPiArICAgICByZXQgPSBfaWxpOTM0MV9jb21tYW5kKGlsaSwgSUxJOTM0MV9OR0FNTUEsCj4g PiArICAgICAgICAgICAgICAgICAgICAgaWxpLT5jb25mLT5uZ2FtbWEsCj4gPiArICAgICAgICAg ICAgICAgICAgICAgSUxJOTM0MV9OR0FNTUFfTEVOKTsKPiA+ICsgICAgIGlmIChyZXQpCj4gPiAr ICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiArCj4gPiArICAgICByZXQgPSBpbGk5MzQxX2Nv bW1hbmQoaWxpLCBNSVBJX0RDU19FWElUX1NMRUVQX01PREUpOwo+ID4gKyAgICAgaWYgKHJldCkK PiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsKPiA+ICsKPiA+ICsgICAgIG1zbGVlcCgyMDAp Owo+ID4gKyAgICAgcmV0ID0gaWxpOTM0MV9jb21tYW5kKGlsaSwgTUlQSV9EQ1NfU0VUX0RJU1BM QVlfT04pOwo+ID4gKyAgICAgaWYgKHJldCkKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIHJldDsK PiA+ICsKPiA+ICsgICAgIHJldCA9IGlsaTkzNDFfY29tbWFuZChpbGksIE1JUElfRENTX1dSSVRF X01FTU9SWV9TVEFSVCk7Cj4gPiArICAgICBpZiAocmV0KQo+ID4gKyAgICAgICAgICAgICByZXR1 cm4gcmV0Owo+ID4gKwo+ID4gKyAgICAgZGV2X2luZm8oaWxpLT5kZXYsICJpbml0aWFsaXplZCBk aXNwbGF5IHJnYiBpbnRlcmZhY2VcbiIpOwo+ID4gKwo+ID4gKyAgICAgcmV0dXJuIDA7Cj4gPiAr fQo+ID4gKwo+ID4gK3N0YXRpYyBpbnQgaWxpOTM0MV9kcGlfcG93ZXJfb24oc3RydWN0IGlsaTkz NDEgKmlsaSkKPiA+ICt7Cj4gPiArICAgICBpbnQgcmV0ID0gMDsKPiA+ICsKPiA+ICsgICAgIC8q IEFzc2VydCBSRVNFVCAqLwo+ID4gKyAgICAgZ3Bpb2Rfc2V0X3ZhbHVlKGlsaS0+cmVzZXRfZ3Bp bywgMSk7Cj4gPiArCj4gPiArICAgICAvKiBFbmFibGUgcG93ZXIgKi8KPiA+ICsgICAgIGlmICgh SVNfRVJSKGlsaS0+dmNjKSkgewo+ID4gKyAgICAgICAgICAgICByZXQgPSByZWd1bGF0b3JfZW5h YmxlKGlsaS0+dmNjKTsKPiA+ICsgICAgICAgICAgICAgaWYgKHJldCA8IDApIHsKPiA+ICsgICAg ICAgICAgICAgICAgICAgICBkZXZfZXJyKGlsaS0+ZGV2LCAidW5hYmxlIHRvIGVuYWJsZSB2Y2Nc biIpOwo+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiArICAgICAgICAg ICAgIH0KPiA+ICsgICAgIH0KPiA+ICsgICAgIG1zbGVlcCgyMCk7Cj4gPiArCj4gPiArICAgICAv KiBEZS1hc3NlcnQgUkVTRVQgKi8KPiA+ICsgICAgIGdwaW9kX3NldF92YWx1ZShpbGktPnJlc2V0 X2dwaW8sIDApOwo+ID4gKyAgICAgbXNsZWVwKDEwKTsKPiA+ICsKPiA+ICsgICAgIHJldHVybiAw Owo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgaW50IGlsaTkzNDFfZHBpX3Bvd2VyX29mZihzdHJ1 Y3QgaWxpOTM0MSAqaWxpKQo+ID4gK3sKPiA+ICsgICAgIC8qIEFzc2VydCBSRVNFVCAqLwo+ID4g KyAgICAgZ3Bpb2Rfc2V0X3ZhbHVlKGlsaS0+cmVzZXRfZ3BpbywgMSk7Cj4gPiArCj4gPiArICAg ICAvKiBEaXNhYmxlIHBvd2VyICovCj4gPiArICAgICBpZiAoIUlTX0VSUihpbGktPnZjYykpCj4g PiArICAgICAgICAgICAgIHJldHVybiByZWd1bGF0b3JfZGlzYWJsZShpbGktPnZjYyk7Cj4gPiAr Cj4gPiArICAgICByZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBpbGk5MzQx X2RwaV9kaXNhYmxlKHN0cnVjdCBkcm1fcGFuZWwgKnBhbmVsKQo+ID4gK3sKPiA+ICsgICAgIHN0 cnVjdCBpbGk5MzQxICppbGkgPSBwYW5lbF90b19pbGk5MzQxKHBhbmVsKTsKPiA+ICsKPiA+ICsg ICAgIGlsaTkzNDFfY29tbWFuZChpbGksIE1JUElfRENTX1NFVF9ESVNQTEFZX09GRik7Cj4gPiAr Cj4gPiArICAgICByZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBpbGk5MzQx X2RwaV91bnByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwpCj4gPiArewo+ID4gKyAgICAg c3RydWN0IGlsaTkzNDEgKmlsaSA9IHBhbmVsX3RvX2lsaTkzNDEocGFuZWwpOwo+ID4gKwo+ID4g KyAgICAgcmV0dXJuIGlsaTkzNDFfZHBpX3Bvd2VyX29mZihpbGkpOwo+ID4gK30KPiA+ICsKPiA+ ICtzdGF0aWMgaW50IGlsaTkzNDFfZHBpX3ByZXBhcmUoc3RydWN0IGRybV9wYW5lbCAqcGFuZWwp Cj4gPiArewo+ID4gKyAgICAgc3RydWN0IGlsaTkzNDEgKmlsaSA9IHBhbmVsX3RvX2lsaTkzNDEo cGFuZWwpOwo+ID4gKyAgICAgaW50IHJldDsKPiA+ICsKPiA+ICsgICAgIHJldCA9IGlsaTkzNDFf ZHBpX3Bvd2VyX29uKGlsaSk7Cj4gPiArICAgICBpZiAocmV0IDwgMCkKPiA+ICsgICAgICAgICAg ICAgcmV0dXJuIHJldDsKPiA+ICsKPiA+ICsgICAgIHJldCA9IGlsaTkzNDFfZHBpX2luaXQoaWxp KTsKPiA+ICsgICAgIGlmIChyZXQgPCAwKQo+ID4gKyAgICAgICAgICAgICBpbGk5MzQxX2RwaV91 bnByZXBhcmUocGFuZWwpOwo+ID4gKwo+ID4gKyAgICAgcmV0dXJuIHJldDsKPiA+ICt9Cj4gPiAr Cj4gPiArc3RhdGljIGludCBpbGk5MzQxX2RwaV9lbmFibGUoc3RydWN0IGRybV9wYW5lbCAqcGFu ZWwpCj4gPiArewo+ID4gKyAgICAgc3RydWN0IGlsaTkzNDEgKmlsaSA9IHBhbmVsX3RvX2lsaTkz NDEocGFuZWwpOwo+ID4gKwo+ID4gKyAgICAgaWxpOTM0MV9jb21tYW5kKGlsaSwgTUlQSV9EQ1Nf U0VUX0RJU1BMQVlfT04pOwo+ID4gKwo+ID4gKyAgICAgcmV0dXJuIDA7Cj4gPiArfQo+ID4gKwo+ ID4gK3N0YXRpYyBpbnQgaWxpOTM0MV9kcGlfZ2V0X21vZGVzKHN0cnVjdCBkcm1fcGFuZWwgKnBh bmVsLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGRybV9jb25uZWN0 b3IgKmNvbm5lY3RvcikKPiA+ICt7Cj4gPiArICAgICBzdHJ1Y3QgaWxpOTM0MSAqaWxpID0gcGFu ZWxfdG9faWxpOTM0MShwYW5lbCk7Cj4gPiArICAgICBzdHJ1Y3QgZHJtX2RldmljZSAqZHJtID0g Y29ubmVjdG9yLT5kZXY7Cj4gPiArICAgICBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSAqbW9kZTsK PiA+ICsgICAgIHN0cnVjdCBkcm1fZGlzcGxheV9pbmZvICppbmZvOwo+ID4gKwo+ID4gKyAgICAg aW5mbyA9ICZjb25uZWN0b3ItPmRpc3BsYXlfaW5mbzsKPiA+ICsgICAgIGluZm8tPndpZHRoX21t ID0gaWxpLT5jb25mLT5tb2RlLndpZHRoX21tOwo+ID4gKyAgICAgaW5mby0+aGVpZ2h0X21tID0g aWxpLT5jb25mLT5tb2RlLmhlaWdodF9tbTsKPiA+ICsKPiA+ICsgICAgIGlmIChpbGktPmNvbmYt PnJnYl9pbnRlcmZhY2UgJiBJTEk5MzQxX1JHQl9EUEwpCj4gPiArICAgICAgICAgICAgIGluZm8t PmJ1c19mbGFncyB8PSBEUk1fQlVTX0ZMQUdfUElYREFUQV9EUklWRV9QT1NFREdFOwo+ID4gKyAg ICAgZWxzZQo+ID4gKyAgICAgICAgICAgICBpbmZvLT5idXNfZmxhZ3MgfD0gRFJNX0JVU19GTEFH X1BJWERBVEFfRFJJVkVfTkVHRURHRTsKPiA+ICsKPiA+ICsgICAgIGlmIChpbGktPmNvbmYtPnJn Yl9pbnRlcmZhY2UgJiBJTEk5MzQxX1JHQl9FUEwpCj4gPiArICAgICAgICAgICAgIGluZm8tPmJ1 c19mbGFncyB8PSBEUk1fQlVTX0ZMQUdfREVfTE9XOwo+ID4gKyAgICAgZWxzZQo+ID4gKyAgICAg ICAgICAgICBpbmZvLT5idXNfZmxhZ3MgfD0gRFJNX0JVU19GTEFHX0RFX0hJR0g7Cj4gPiArCj4g PiArICAgICBtb2RlID0gZHJtX21vZGVfZHVwbGljYXRlKGRybSwgJmlsaS0+Y29uZi0+bW9kZSk7 Cj4gPiArICAgICBpZiAoIW1vZGUpIHsKPiA+ICsgICAgICAgICAgICAgRFJNX0VSUk9SKCJiYWQg bW9kZSBvciBmYWlsZWQgdG8gYWRkIG1vZGVcbiIpOwo+ID4gKyAgICAgICAgICAgICByZXR1cm4g LUVJTlZBTDsKPiA+ICsgICAgIH0KPiA+ICsgICAgIGRybV9tb2RlX3NldF9uYW1lKG1vZGUpOwo+ ID4gKwo+ID4gKyAgICAgLyogU2V0IHVwIHRoZSBwb2xhcml0eSAqLwo+ID4gKyAgICAgaWYgKGls aS0+Y29uZi0+cmdiX2ludGVyZmFjZSAmIElMSTkzNDFfUkdCX0hTUEwpCj4gPiArICAgICAgICAg ICAgIG1vZGUtPmZsYWdzIHw9IERSTV9NT0RFX0ZMQUdfUEhTWU5DOwo+ID4gKyAgICAgZWxzZQo+ ID4gKyAgICAgICAgICAgICBtb2RlLT5mbGFncyB8PSBEUk1fTU9ERV9GTEFHX05IU1lOQzsKPiA+ ICsKPiA+ICsgICAgIGlmIChpbGktPmNvbmYtPnJnYl9pbnRlcmZhY2UgJiBJTEk5MzQxX1JHQl9W U1BMKQo+ID4gKyAgICAgICAgICAgICBtb2RlLT5mbGFncyB8PSBEUk1fTU9ERV9GTEFHX1BWU1lO QzsKPiA+ICsgICAgIGVsc2UKPiA+ICsgICAgICAgICAgICAgbW9kZS0+ZmxhZ3MgfD0gRFJNX01P REVfRkxBR19OVlNZTkM7Cj4gPiArCj4gPiArICAgICBkcm1fbW9kZV9wcm9iZWRfYWRkKGNvbm5l Y3RvciwgbW9kZSk7Cj4gPiArCj4gPiArICAgICByZXR1cm4gMTsgLyogTnVtYmVyIG9mIG1vZGVz ICovCj4gPiArfQo+ID4gKwo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX3BhbmVsX2Z1bmNz IGlsaTkzNDFfZHBpX2Z1bmNzID0gewo+ID4gKyAgICAgLmRpc2FibGUgPSBpbGk5MzQxX2RwaV9k aXNhYmxlLAo+ID4gKyAgICAgLnVucHJlcGFyZSA9IGlsaTkzNDFfZHBpX3VucHJlcGFyZSwKPiA+ ICsgICAgIC5wcmVwYXJlID0gaWxpOTM0MV9kcGlfcHJlcGFyZSwKPiA+ICsgICAgIC5lbmFibGUg PSBpbGk5MzQxX2RwaV9lbmFibGUsCj4gPiArICAgICAuZ2V0X21vZGVzID0gaWxpOTM0MV9kcGlf Z2V0X21vZGVzLAo+ID4gK307Cj4gPiArCj4gPiArc3RhdGljIGludCBpbGk5MzQxX2RwaV9wcm9i ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQo+ID4gK3sKPiA+ICsgICAgIGludCByZXQ7Cj4gPiAr ICAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmc3BpLT5kZXY7Cj4gPiArICAgICBzdHJ1Y3QgaWxp OTM0MSAqaWxpOwo+ID4gKwo+ID4gKyAgICAgaWxpID0gZGV2bV9remFsbG9jKGRldiwgc2l6ZW9m KHN0cnVjdCBpbGk5MzQxKSwgR0ZQX0tFUk5FTCk7Cj4gPiArICAgICBpZiAoIWlsaSkKPiA+ICsg ICAgICAgICAgICAgcmV0dXJuIC1FTk9NRU07Cj4gPiArCj4gPiArICAgICBzcGlfc2V0X2RydmRh dGEoc3BpLCBpbGkpOwo+ID4gKwo+ID4gKyAgICAgaWxpLT5kZXYgPSBkZXY7Cj4gPiArICAgICAv Kgo+ID4gKyAgICAgICogRXZlcnkgbmV3IGluY2FybmF0aW9uIG9mIHRoaXMgZGlzcGxheSBtdXN0 IGhhdmUgYSB1bmlxdWUKPiA+ICsgICAgICAqIGRhdGEgZW50cnkgZm9yIHRoZSBzeXN0ZW0gaW4g dGhpcyBkcml2ZXIuCj4gPiArICAgICAgKi8KPiA+ICsgICAgIGlsaS0+Y29uZiA9IG9mX2Rldmlj ZV9nZXRfbWF0Y2hfZGF0YShkZXYpOwo+ID4gKyAgICAgaWYgKCFpbGktPmNvbmYpIHsKPiA+ICsg ICAgICAgICAgICAgZGV2X2VycihkZXYsICJtaXNzaW5nIGRldmljZSBjb25maWd1cmF0aW9uXG4i KTsKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIC1FTk9ERVY7Cj4gPiArICAgICB9Cj4gPiArCj4g PiArICAgICBpbGktPnZjYyA9IGRldm1fcmVndWxhdG9yX2dldF9vcHRpb25hbChkZXYsICJ2Y2Mi KTsKPiA+ICsgICAgIGlmIChJU19FUlIoaWxpLT52Y2MpKQo+ID4gKyAgICAgICAgICAgICBkZXZf ZXJyKGRldiwgImdldCBvcHRpb25hbCB2Y2MgZmFpbGVkXG4iKTsKPiA+ICsKPiA+ICsgICAgIGls aS0+cmVzZXRfZ3BpbyA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFsKGRldiwgInJlc2V0IiwKPiA+ ICsgICAgICAgICAgICAgR1BJT0RfT1VUX0hJR0gpOwo+ID4gKyAgICAgaWYgKElTX0VSUihpbGkt PnJlc2V0X2dwaW8pKSB7Cj4gPiArICAgICAgICAgICAgIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRv IGdldCBSRVNFVCBHUElPXG4iKTsKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoaWxp LT5yZXNldF9ncGlvKTsKPiA+ICsgICAgIH0KPiA+ICsKPiA+ICsgICAgIGlsaS0+ZGNfZ3BpbyA9 IGRldm1fZ3Bpb2RfZ2V0KGRldiwgImRjIiwgR1BJT0RfT1VUX0xPVyk7Cj4gPiArICAgICBpZiAo SVNfRVJSKGlsaS0+ZGNfZ3BpbykpIHsKPiA+ICsgICAgICAgICAgICAgZGV2X2VycihkZXYsICJm YWlsZWQgdG8gZ2V0IERDIEdQSU9cbiIpOwo+ID4gKyAgICAgICAgICAgICByZXR1cm4gUFRSX0VS UihpbGktPmRjX2dwaW8pOwo+ID4gKyAgICAgfQo+ID4gKwo+ID4gKyAgICAgc3BpLT5iaXRzX3Bl cl93b3JkID0gODsKPiA+ICsgICAgIHJldCA9IHNwaV9zZXR1cChzcGkpOwo+ID4gKyAgICAgaWYg KHJldCA8IDApIHsKPiA+ICsgICAgICAgICAgICAgZGV2X2VycihkZXYsICJzcGkgc2V0dXAgZmFp bGVkLlxuIik7Cj4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiArICAgICB9Cj4gPiAr Cj4gPiArICAgICBpbGktPm1heF9zcGlfc3BlZWQgPSBpbGktPmNvbmYtPm1heF9zcGlfc3BlZWQ7 Cj4gPiArCj4gPiArICAgICBkcm1fcGFuZWxfaW5pdCgmaWxpLT5wYW5lbCwgZGV2LCAmaWxpOTM0 MV9kcGlfZnVuY3MsCj4gPiArICAgICAgICAgICAgICAgICAgICBEUk1fTU9ERV9DT05ORUNUT1Jf RFBJKTsKPiA+ICsKPiA+ICsgICAgIGRybV9wYW5lbF9hZGQoJmlsaS0+cGFuZWwpOwo+ID4gKwo+ ID4gKyAgICAgcmV0dXJuIDA7Cj4gPiArfQo+ID4gKwo+ID4gKwo+ID4gKwo+ID4gK3N0YXRpYyB2 b2lkIGlsaTkzNDFfZGJpX2VuYWJsZShzdHJ1Y3QgZHJtX3NpbXBsZV9kaXNwbGF5X3BpcGUgKnBp cGUsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX2NydGNfc3RhdGUg KmNydGNfc3RhdGUsCj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZHJtX3Bs YW5lX3N0YXRlICpwbGFuZV9zdGF0ZSkKPiA+ICt7Cj4gPiArICAgICBzdHJ1Y3QgbWlwaV9kYmlf ZGV2ICpkYmlkZXYgPSBkcm1fdG9fbWlwaV9kYmlfZGV2KHBpcGUtPmNydGMuZGV2KTsKPiA+ICsg ICAgIHN0cnVjdCBtaXBpX2RiaSAqZGJpID0gJmRiaWRldi0+ZGJpOwo+ID4gKyAgICAgdTggYWRk cl9tb2RlOwo+ID4gKyAgICAgaW50IHJldCwgaWR4Owo+ID4gKwo+ID4gKyAgICAgaWYgKCFkcm1f ZGV2X2VudGVyKHBpcGUtPmNydGMuZGV2LCAmaWR4KSkKPiA+ICsgICAgICAgICAgICAgcmV0dXJu Owo+ID4gKwo+ID4gKyAgICAgRFJNX0RFQlVHX0tNUygiXG4iKTsKPiA+ICsKPiA+ICsgICAgIHJl dCA9IG1pcGlfZGJpX3Bvd2Vyb25fY29uZGl0aW9uYWxfcmVzZXQoZGJpZGV2KTsKPiA+ICsgICAg IGlmIChyZXQgPCAwKQo+ID4gKyAgICAgICAgICAgICBnb3RvIG91dF9leGl0Owo+ID4gKyAgICAg aWYgKHJldCA9PSAxKQo+ID4gKyAgICAgICAgICAgICBnb3RvIG91dF9lbmFibGU7Cj4gPiArCj4g PiArICAgICBtaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT0ZGKTsK PiA+ICsKPiA+ICsgICAgIG1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxX1BPV0VSQiwgMHgw MCwgMHhjMSwgMHgzMCk7Cj4gPiArICAgICBtaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9Q T1dFUl9TRVEsIDB4NjQsIDB4MDMsIDB4MTIsIDB4ODEpOwo+ID4gKyAgICAgbWlwaV9kYmlfY29t bWFuZChkYmksIElMSTkzNDFfRFRDQSwgMHg4NSwgMHgwMCwgMHg3OCk7Cj4gPiArICAgICBtaXBp X2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9QT1dFUkEsIDB4MzksIDB4MmMsIDB4MDAsIDB4MzQs IDB4MDIpOwo+ID4gKyAgICAgbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfUFJDLCBJTEk5 MzQxX0RCSV9QUkNfTk9STUFMKTsKPiA+ICsgICAgIG1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5 MzQxX0RUQ0IsIDB4MDAsIDB4MDApOwo+ID4gKwo+ID4gKyAgICAgLyogUG93ZXIgQ29udHJvbCAq Lwo+ID4gKyAgICAgbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfUE9XRVIxLCBJTEk5MzQx X0RCSV9WQ09NSF80UDZWKTsKPiA+ICsgICAgIG1pcGlfZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQx X1BPV0VSMiwgSUxJOTM0MV9EQklfUFdSXzJfREVGQVVMVCk7Cj4gPiArICAgICAvKiBWQ09NICov Cj4gPiArICAgICBtaXBpX2RiaV9jb21tYW5kKGRiaSwgSUxJOTM0MV9WQ09NMSwgSUxJOTM0MV9E QklfVkNPTV8xX1ZNSF80UDI1ViwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBJTEk5MzQxX0RCSV9WQ09NXzFfVk1MXzFQNVYpOwo+ID4gKyAgICAgbWlw aV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfVkNPTTIsIElMSTkzNDFfREJJX1ZDT01fMl9ERUNf NTgpOwo+ID4gKwo+ID4gKyAgICAgLyogTWVtb3J5IEFjY2VzcyBDb250cm9sICovCj4gPiArICAg ICBtaXBpX2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX1BJWEVMX0ZPUk1BVCwKPiA+ICsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIE1JUElfRENTX1BJWEVMX0ZNVF8xNkJJVCk7Cj4g PiArCj4gPiArICAgICAvKiBGcmFtZSBSYXRlICovCj4gPiArICAgICBtaXBpX2RiaV9jb21tYW5k KGRiaSwgSUxJOTM0MV9GUkMsIElMSTkzNDFfREJJX0ZSQ19ESVZBICYgMHgwMywKPiA+ICsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJTEk5MzQxX0RCSV9GUkNf UlROQSAmIDB4MWYpOwo+ID4gKwo+ID4gKyAgICAgLyogR2FtbWEgKi8KPiA+ICsgICAgIG1pcGlf ZGJpX2NvbW1hbmQoZGJpLCBJTEk5MzQxXzNHQU1NQV9FTiwgMHgwMCk7Cj4gPiArICAgICBtaXBp X2RiaV9jb21tYW5kKGRiaSwgTUlQSV9EQ1NfU0VUX0dBTU1BX0NVUlZFLCBJTEk5MzQxX0dBTU1B X0NVUlZFXzEpOwo+ID4gKyAgICAgbWlwaV9kYmlfY29tbWFuZChkYmksIElMSTkzNDFfUEdBTU1B LAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAweDBmLCAweDMxLCAweDJiLCAweDBjLCAweDBl LCAweDA4LCAweDRlLCAweGYxLAo+ID4gKyAgICAgICAgICAgICAgICAgICAgICAweDM3LCAweDA3 LCAweDEwLCAweDAzLCAweDBlLCAweDA5LCAweDAwKTsKPiA+ICsgICAgIG1pcGlfZGJpX2NvbW1h bmQoZGJpLCBJTEk5MzQxX05HQU1NQSwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgMHgwMCwg MHgwZSwgMHgxNCwgMHgwMywgMHgxMSwgMHgwNywgMHgzMSwgMHhjMSwKPiA+ICsgICAgICAgICAg ICAgICAgICAgICAgMHg0OCwgMHgwOCwgMHgwZiwgMHgwYywgMHgzMSwgMHgzNiwgMHgwZik7Cj4g PiArCj4gPiArICAgICAvKiBERFJBTSAqLwo+ID4gKyAgICAgbWlwaV9kYmlfY29tbWFuZChkYmks IElMSTkzNDFfRVRNT0QsIElMSTkzNDFfREJJX0VNU19HQVMgfAo+ID4gKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElMSTkzNDFfREJJX0VNU19EVFMgfAo+ID4g KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIElMSTkzNDFfREJJ X0VNU19HT04pOwo+ID4gKwo+ID4gKyAgICAgLyogRGlzcGxheSAqLwo+ID4gKyAgICAgbWlwaV9k YmlfY29tbWFuZChkYmksIElMSTkzNDFfREZDLCAweDA4LCAweDgyLCAweDI3LCAweDAwKTsKPiA+ ICsgICAgIG1pcGlfZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19FWElUX1NMRUVQX01PREUpOwo+ ID4gKyAgICAgbXNsZWVwKDEwMCk7Cj4gPiArCj4gPiArICAgICBtaXBpX2RiaV9jb21tYW5kKGRi aSwgTUlQSV9EQ1NfU0VUX0RJU1BMQVlfT04pOwo+ID4gKyAgICAgbXNsZWVwKDEwMCk7Cj4gPiAr Cj4gPiArb3V0X2VuYWJsZToKPiA+ICsgICAgIHN3aXRjaCAoZGJpZGV2LT5yb3RhdGlvbikgewo+ ID4gKyAgICAgZGVmYXVsdDoKPiA+ICsgICAgICAgICAgICAgYWRkcl9tb2RlID0gSUxJOTM0MV9N QURDVExfTVg7Cj4gPiArICAgICAgICAgICAgIGJyZWFrOwo+ID4gKyAgICAgY2FzZSA5MDoKPiA+ ICsgICAgICAgICAgICAgYWRkcl9tb2RlID0gSUxJOTM0MV9NQURDVExfTVY7Cj4gPiArICAgICAg ICAgICAgIGJyZWFrOwo+ID4gKyAgICAgY2FzZSAxODA6Cj4gPiArICAgICAgICAgICAgIGFkZHJf bW9kZSA9IElMSTkzNDFfTUFEQ1RMX01ZOwo+ID4gKyAgICAgICAgICAgICBicmVhazsKPiA+ICsg ICAgIGNhc2UgMjcwOgo+ID4gKyAgICAgICAgICAgICBhZGRyX21vZGUgPSBJTEk5MzQxX01BRENU TF9NViB8IElMSTkzNDFfTUFEQ1RMX01ZIHwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAg SUxJOTM0MV9NQURDVExfTVg7Cj4gPiArICAgICAgICAgICAgIGJyZWFrOwo+ID4gKyAgICAgfQo+ ID4gKyAgICAgYWRkcl9tb2RlIHw9IElMSTkzNDFfTUFEQ1RMX0JHUjsKPiA+ICsgICAgIG1pcGlf ZGJpX2NvbW1hbmQoZGJpLCBNSVBJX0RDU19TRVRfQUREUkVTU19NT0RFLCBhZGRyX21vZGUpOwo+ ID4gKyAgICAgbWlwaV9kYmlfZW5hYmxlX2ZsdXNoKGRiaWRldiwgY3J0Y19zdGF0ZSwgcGxhbmVf c3RhdGUpOwo+ID4gKyAgICAgRFJNX0RFQlVHX0tNUygiaW5pdGlhbGl6ZWQgZGlzcGxheSBzZXJp YWwgaW50ZXJmYWNlXG4iKTsKPiA+ICtvdXRfZXhpdDoKPiA+ICsgICAgIGRybV9kZXZfZXhpdChp ZHgpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRybV9zaW1wbGVfZGlz cGxheV9waXBlX2Z1bmNzIGlsaTkzNDFfZGJpX2Z1bmNzID0gewo+ID4gKyAgICAgLmVuYWJsZSA9 IGlsaTkzNDFfZGJpX2VuYWJsZSwKPiA+ICsgICAgIC5kaXNhYmxlID0gbWlwaV9kYmlfcGlwZV9k aXNhYmxlLAo+ID4gKyAgICAgLnVwZGF0ZSA9IG1pcGlfZGJpX3BpcGVfdXBkYXRlLAo+ID4gKyAg ICAgLnByZXBhcmVfZmIgPSBkcm1fZ2VtX3NpbXBsZV9kaXNwbGF5X3BpcGVfcHJlcGFyZV9mYiwK PiA+ICt9Owo+ID4gKwo+ID4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZHJtX2Rpc3BsYXlfbW9kZSBp bGk5MzQxX2RiaV9tb2RlID0gewo+ID4gKyAgICAgRFJNX1NJTVBMRV9NT0RFKDI0MCwgMzIwLCAz NywgNDkpLAo+ID4gK307Cj4gPiArCj4gPiArREVGSU5FX0RSTV9HRU1fQ01BX0ZPUFMoaWxpOTM0 MV9kYmlfZm9wcyk7Cj4gPiArCj4gPiArc3RhdGljIHN0cnVjdCBkcm1fZHJpdmVyIGlsaTkzNDFf ZGJpX2RyaXZlciA9IHsKPiA+ICsgICAgIC5kcml2ZXJfZmVhdHVyZXMgICAgICAgID0gRFJJVkVS X0dFTSB8IERSSVZFUl9NT0RFU0VUIHwgRFJJVkVSX0FUT01JQywKPiA+ICsgICAgIC5mb3BzICAg ICAgICAgICAgICAgICAgID0gJmlsaTkzNDFfZGJpX2ZvcHMsCj4gPiArICAgICBEUk1fR0VNX0NN QV9EUklWRVJfT1BTX1ZNQVAsCj4gPiArICAgICAuZGVidWdmc19pbml0ICAgICAgICAgICA9IG1p cGlfZGJpX2RlYnVnZnNfaW5pdCwKPiA+ICsgICAgIC5uYW1lICAgICAgICAgICAgICAgICAgID0g ImlsaTkzNDEiLAo+ID4gKyAgICAgLmRlc2MgICAgICAgICAgICAgICAgICAgPSAiSWxpdGVrIElM STkzNDEiLAo+ID4gKyAgICAgLmRhdGUgICAgICAgICAgICAgICAgICAgPSAiMjAxODA1MTQiLAo+ ID4gKyAgICAgLm1ham9yICAgICAgICAgICAgICAgICAgPSAxLAo+ID4gKyAgICAgLm1pbm9yICAg ICAgICAgICAgICAgICAgPSAwLAo+ID4gK307Cj4gPiArc3RhdGljIGludCBpbGk5MzQxX2RiaV9w cm9iZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQo+ID4gK3sKPiA+ICsgICAgIHN0cnVjdCBtaXBp X2RiaV9kZXYgKmRiaWRldjsKPiA+ICsgICAgIHN0cnVjdCBkcm1fZGV2aWNlICpkcm07Cj4gPiAr ICAgICBzdHJ1Y3QgbWlwaV9kYmkgKmRiaTsKPiA+ICsgICAgIHN0cnVjdCBncGlvX2Rlc2MgKmRj Owo+ID4gKyAgICAgc3RydWN0IGRldmljZSAqZGV2ID0gJnNwaS0+ZGV2Owo+ID4gKyAgICAgdTMy IHJvdGF0aW9uID0gMDsKPiA+ICsgICAgIGludCByZXQ7Cj4gPiArCj4gPiArICAgICBkYmlkZXYg PSBkZXZtX2RybV9kZXZfYWxsb2MoZGV2LCAmaWxpOTM0MV9kYmlfZHJpdmVyLAo+ID4gKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBtaXBpX2RiaV9kZXYsIGRybSk7Cj4g PiArICAgICBpZiAoSVNfRVJSKGRiaWRldikpCj4gPiArICAgICAgICAgICAgIHJldHVybiBQVFJf RVJSKGRiaWRldik7Cj4gPiArCj4gPiArICAgICBkYmkgPSAmZGJpZGV2LT5kYmk7Cj4gPiArICAg ICBkcm0gPSAmZGJpZGV2LT5kcm07Cj4gPiArCj4gPiArICAgICBkcm1fbW9kZV9jb25maWdfaW5p dChkcm0pOwo+ID4gKwo+ID4gKyAgICAgZGJpLT5yZXNldCA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlv bmFsKGRldiwgInJlc2V0IiwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgR1BJT0RfT1VUX0hJR0gpOwo+ID4gKyAgICAgaWYgKElTX0VSUihkYmktPnJlc2V0KSkgewo+ ID4gKyAgICAgICAgICAgICBEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAn cmVzZXQnXG4iKTsKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoZGJpLT5yZXNldCk7 Cj4gPiArICAgICB9Cj4gPiArCj4gPiArICAgICBkYyA9IGRldm1fZ3Bpb2RfZ2V0X29wdGlvbmFs KGRldiwgImRjIiwgR1BJT0RfT1VUX0xPVyk7Cj4gPiArICAgICBpZiAoSVNfRVJSKGRjKSkgewo+ ID4gKyAgICAgICAgICAgICBEUk1fREVWX0VSUk9SKGRldiwgIkZhaWxlZCB0byBnZXQgZ3BpbyAn ZGMnXG4iKTsKPiA+ICsgICAgICAgICAgICAgcmV0dXJuIFBUUl9FUlIoZGMpOwo+ID4gKyAgICAg fQo+ID4gKwo+ID4gKyAgICAgZGJpZGV2LT5yZWd1bGF0b3IgPSBkZXZtX3JlZ3VsYXRvcl9nZXRf b3B0aW9uYWwoZGV2LCAidmNjIik7Cj4gPiArICAgICBpZiAoSVNfRVJSKGRiaWRldi0+cmVndWxh dG9yKSkKPiA+ICsgICAgICAgICAgICAgZGV2X2VycihkZXYsICJnZXQgb3B0aW9uYWwgdmNjIGZh aWxlZFxuIik7Cj4gPiArCj4gPiArICAgICBkYmlkZXYtPmJhY2tsaWdodCA9IGRldm1fb2ZfZmlu ZF9iYWNrbGlnaHQoZGV2KTsKPiA+ICsgICAgIGlmIChJU19FUlIoZGJpZGV2LT5iYWNrbGlnaHQp KQo+ID4gKyAgICAgICAgICAgICByZXR1cm4gUFRSX0VSUihkYmlkZXYtPmJhY2tsaWdodCk7Cj4g PiArCj4gPiArICAgICBkZXZpY2VfcHJvcGVydHlfcmVhZF91MzIoZGV2LCAicm90YXRpb24iLCAm cm90YXRpb24pOwo+ID4gKwo+ID4gKyAgICAgcmV0ID0gbWlwaV9kYmlfc3BpX2luaXQoc3BpLCBk YmksIGRjKTsKPiA+ICsgICAgIGlmIChyZXQpCj4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7 Cj4gPiArCj4gPiArICAgICByZXQgPSBtaXBpX2RiaV9kZXZfaW5pdChkYmlkZXYsICZpbGk5MzQx X2RiaV9mdW5jcywKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmls aTkzNDFfZGJpX21vZGUsIHJvdGF0aW9uKTsKPiA+ICsgICAgIGlmIChyZXQpCj4gPiArICAgICAg ICAgICAgIHJldHVybiByZXQ7Cj4gPiArCj4gPiArICAgICBkcm1fbW9kZV9jb25maWdfcmVzZXQo ZHJtKTsKPiA+ICsKPiA+ICsgICAgIHJldCA9IGRybV9kZXZfcmVnaXN0ZXIoZHJtLCAwKTsKPiA+ ICsgICAgIGlmIChyZXQpCj4gPiArICAgICAgICAgICAgIHJldHVybiByZXQ7Cj4gPiArCj4gPiAr ICAgICBzcGlfc2V0X2RydmRhdGEoc3BpLCBkcm0pOwo+ID4gKwo+ID4gKyAgICAgZHJtX2ZiZGV2 X2dlbmVyaWNfc2V0dXAoZHJtLCAwKTsKPiA+ICsKPiA+ICsgICAgIHJldHVybiAwOwo+ID4gK30K PiA+ICtzdGF0aWMgaW50IGlsaTkzNDFfcHJvYmUoc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKPiA+ ICt7Cj4gPiArICAgICBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCAqaWQgPSBzcGlfZ2V0X2Rl dmljZV9pZChzcGkpOwo+ID4gKwo+ID4gKyAgICAgaWYgKCFzdHJjbXAoaWQtPm5hbWUsICJzZi10 YzI0MHQtOTM3MC10IikpCj4gPiArICAgICAgICAgICAgIHJldHVybiBpbGk5MzQxX2RwaV9wcm9i ZShzcGkpOwo+ID4gKyAgICAgZWxzZSBpZiAoIXN0cmNtcChpZC0+bmFtZSwgInl4MjQwcXYyOSIp KQo+ID4gKyAgICAgICAgICAgICByZXR1cm4gaWxpOTM0MV9kYmlfcHJvYmUoc3BpKTsKPiA+ICsK PiA+ICsgICAgIHJldHVybiAtMTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGludCBpbGk5MzQx X3JlbW92ZShzdHJ1Y3Qgc3BpX2RldmljZSAqc3BpKQo+ID4gK3sKPiA+ICsgICAgIGNvbnN0IHN0 cnVjdCBzcGlfZGV2aWNlX2lkICppZCA9IHNwaV9nZXRfZGV2aWNlX2lkKHNwaSk7Cj4gPiArICAg ICBzdHJ1Y3QgaWxpOTM0MSAqaWxpID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7Cj4gPiArICAgICBz dHJ1Y3QgZHJtX2RldmljZSAqZHJtID0gc3BpX2dldF9kcnZkYXRhKHNwaSk7Cj4gPiArCj4gPiAr ICAgICBpZiAoIXN0cmNtcChpZC0+bmFtZSwgInNmLXRjMjQwdC05MzcwLXQiKSkgewo+ID4gKyAg ICAgICAgICAgICBpbGk5MzQxX2RwaV9wb3dlcl9vZmYoaWxpKTsKPiA+ICsgICAgICAgICAgICAg ZHJtX3BhbmVsX3JlbW92ZSgmaWxpLT5wYW5lbCk7Cj4gPiArICAgICB9IGVsc2UgaWYgKCFzdHJj bXAoaWQtPm5hbWUsICJ5eDI0MHF2MjkiKSkgewo+ID4gKyAgICAgICAgICAgICBkcm1fZGV2X3Vu cGx1Zyhkcm0pOwo+ID4gKyAgICAgICAgICAgICBkcm1fYXRvbWljX2hlbHBlcl9zaHV0ZG93bihk cm0pOwo+ID4gKyAgICAgfQo+ID4gKyAgICAgcmV0dXJuIDA7Cj4gPiArfQo+ID4gKwo+ID4gK3N0 YXRpYyB2b2lkIGlsaTkzNDFfc2h1dGRvd24oc3RydWN0IHNwaV9kZXZpY2UgKnNwaSkKPiA+ICt7 Cj4gPiArICAgICBjb25zdCBzdHJ1Y3Qgc3BpX2RldmljZV9pZCAqaWQgPSBzcGlfZ2V0X2Rldmlj ZV9pZChzcGkpOwo+ID4gKwo+ID4gKyAgICAgaWYgKCFzdHJjbXAoaWQtPm5hbWUsICJ5eDI0MHF2 MjkiKSkKPiA+ICsgICAgICAgICAgICAgZHJtX2F0b21pY19oZWxwZXJfc2h1dGRvd24oc3BpX2dl dF9kcnZkYXRhKHNwaSkpOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9m X2RldmljZV9pZCBpbGk5MzQxX29mX21hdGNoW10gPSB7Cj4gPiArICAgICB7Cj4gPiArICAgICAg ICAgICAgIC5jb21wYXRpYmxlID0gInN0LHNmLXRjMjQwdC05MzcwLXQiLAo+ID4gKyAgICAgICAg ICAgICAuZGF0YSA9ICZpbGk5MzQxX3N0bTMyZjQyOV9kaXNjb19kYXRhLAo+ID4gKyAgICAgfSwK PiA+ICsgICAgIHsKPiA+ICsgICAgICAgICAgICAgLyogcG9ydGluZyBmcm9tIHRpbnkvaWxpOTM0 MS5jCj4gPiArICAgICAgICAgICAgICAqIGZvciBvcmlnaW5hbCBtaXBpIGRiaSBjb21waXRhYmxl Cj4gPiArICAgICAgICAgICAgICAqLwo+ID4gKyAgICAgICAgICAgICAuY29tcGF0aWJsZSA9ICJh ZGFmcnVpdCx5eDI0MHF2MjkiLAo+ID4gKyAgICAgICAgICAgICAuZGF0YSA9IE5VTEwsCj4gPiAr ICAgICB9LAo+ID4gK307Cj4gPiArTU9EVUxFX0RFVklDRV9UQUJMRShvZiwgaWxpOTM0MV9vZl9t YXRjaCk7Cj4gPiArCj4gPiArc3RhdGljIGNvbnN0IHN0cnVjdCBzcGlfZGV2aWNlX2lkIGlsaTkz NDFfaWRbXSA9IHsKPiA+ICsgICAgIHsgInl4MjQwcXYyOSIsIDAgfSwKPiA+ICsgICAgIHsgInNm LXRjMjQwdC05MzcwLXQiLCAwIH0sCj4gPiArICAgICB7IH0KPiA+ICt9Owo+ID4gK01PRFVMRV9E RVZJQ0VfVEFCTEUoc3BpLCBpbGk5MzQxX2lkKTsKPiA+ICsKPiA+ICtzdGF0aWMgc3RydWN0IHNw aV9kcml2ZXIgaWxpOTM0MV9kcml2ZXIgPSB7Cj4gPiArICAgICAucHJvYmUgPSBpbGk5MzQxX3By b2JlLAo+ID4gKyAgICAgLnJlbW92ZSA9IGlsaTkzNDFfcmVtb3ZlLAo+ID4gKyAgICAgLnNodXRk b3duID0gaWxpOTM0MV9zaHV0ZG93biwKPiA+ICsgICAgIC5pZF90YWJsZSA9IGlsaTkzNDFfaWQs Cj4gPiArICAgICAuZHJpdmVyID0gewo+ID4gKyAgICAgICAgICAgICAubmFtZSA9ICJwYW5lbC1p bGl0ZWstaWxpOTM0MSIsCj4gPiArICAgICAgICAgICAgIC5vZl9tYXRjaF90YWJsZSA9IGlsaTkz NDFfb2ZfbWF0Y2gsCj4gPiArICAgICB9LAo+ID4gK307Cj4gPiArbW9kdWxlX3NwaV9kcml2ZXIo aWxpOTM0MV9kcml2ZXIpOwo+ID4gKwo+ID4gK01PRFVMRV9BVVRIT1IoIkRpbGxvbiBNaW4gPGRp bGxvbi5taW5mZWlAZ21haWwuY29tPiIpOwo+ID4gK01PRFVMRV9ERVNDUklQVElPTigiSUxJOTM0 MSBMQ0QgcGFuZWwgZHJpdmVyIik7Cj4gPiArTU9EVUxFX0xJQ0VOU0UoIkdQTCB2MiIpOwo+ID4K Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFy bS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1r ZXJuZWwK