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=-8.3 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI, SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 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 9546AC4360C for ; Fri, 4 Oct 2019 13:34:33 +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 60B8C222C4 for ; Fri, 4 Oct 2019 13:34:33 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="KpBtzfQu"; dkim=fail reason="signature verification failed" (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="IP6zw4b8" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 60B8C222C4 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+infradead-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.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject: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=+2HG+2R+KevLOInFdGSXEzVnQOpouDzpaR0K4HObn6Q=; b=KpBtzfQuTmpqne TAawBOxLLD4WT71B6VbA34QEX78y9nGQ05+Sp2GIMOPn7A/RQy7TfOFvcYoIJ6njcvGM45VD+ea9Q Qqq3tnROSvSjlpbpZ2K6BB8M3uYMmHhTzyRBpdoFzRVooGi+HptO0Poh4fjqBeaV4+cda6eIkRokz qQ4y6y2RdgGiN9OGItfmMd6wKCVYytC2wSVL7K/MvuZhU8Gd2VvQLpZu3W0K8aIGbd/ddTZOOZ826 mwn09zWYqWn1sp5wyvcZNo7ICh0ltoVA8qeX3X6344U9cCg8D+ffLoYQMTiJ2dwxsQK39B7usbmgN upEQ3jk0orGGWA4R6A4A==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92.2 #3 (Red Hat Linux)) id 1iGNj5-0006iH-Uv; Fri, 04 Oct 2019 13:34:32 +0000 Received: from mail-wm1-x342.google.com ([2a00:1450:4864:20::342]) by bombadil.infradead.org with esmtps (Exim 4.92.2 #3 (Red Hat Linux)) id 1iGNi4-0005h5-TQ for linux-arm-kernel@lists.infradead.org; Fri, 04 Oct 2019 13:33:32 +0000 Received: by mail-wm1-x342.google.com with SMTP id p7so5859123wmp.4 for ; Fri, 04 Oct 2019 06:33:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to :user-agent; bh=IpHwbgJ4ZLdW/CxZfJLoUn2ABnJNTF4uim1slA/Ssa4=; b=IP6zw4b8MUFW/N1V6r3e3Qm3w6GqzqXr2PwfBbwPfNDh/2UJx5CO0YXVj+wo/oFEfc Fpj+2dJKrDxrcGLNDbiWVOOCM7+hsRTJ5Lpn1gOhggj51madl2cyDGDVSQWHEVxfmMFC +iHDbwbZqcfSom/fhMSkvW84YxB7O7/KdzO5XiO6ABK0Ob02wZpLZG54/3uo7x7439sM TlnEKw5tWJH2kUvjGlbGDvmJMhYxZMME5BA3aA+d/smVrbluyYWbWWwKnl7ZixHt5UJS ulpj5Lm8lQ0QLjJoU6sADYBTFpJWVAO66mcPwC+UI1+fMiGm28D9eBzfm3AE5z5GRYY6 afVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to:user-agent; bh=IpHwbgJ4ZLdW/CxZfJLoUn2ABnJNTF4uim1slA/Ssa4=; b=Sci3/34vWPd/UsXBuBdbNlQXDpUZwe9t31q5WWXIUnhJUE2ZV2pcheg/VyAIA7/bzI Md4/6K65iet6wGX/diNQrOPYlDAfcOP5zZ1PeNbZoNFsKvtFcZJRgcyaLYHdPiNpkeUF 5zu8squ2E0R053ShjCQcscFYdxFqNg8LfhG0+WZ59Ts8ivAJr+HDOmqN4iWG809wnRRR 1uWlU7R+pM7h6iZ1KBDGYvgce0js+tGUR+gtC27BBwRVnNiCWyWXJPZU0PH6+69WZvfm bCSYV9AIZ8mpBJrDe8YT4iwIJ3kVbKKcrYqmdyo0gA+Nc4bhpMUuPwrYrWR+N7jjFzoq fvtg== X-Gm-Message-State: APjAAAXbhfTia7CJ/xXsDCYNmawjJ5fNVmCXHBj9tDb5ZZTAMVkNlIL2 6zcQChppLGpIwhsIVrXUU1MjmQ== X-Google-Smtp-Source: APXvYqydYJHpTgHmqb0MvsmxNK/7tVzQYDTEsFjyKqWvwsSgS/i9HQ4m2OeNM4LM0tXEckMAQZ7KhQ== X-Received: by 2002:a05:600c:1103:: with SMTP id b3mr11292306wma.3.1570196007101; Fri, 04 Oct 2019 06:33:27 -0700 (PDT) Received: from dell ([2.27.167.122]) by smtp.gmail.com with ESMTPSA id v6sm6547995wrn.50.2019.10.04.06.33.26 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Fri, 04 Oct 2019 06:33:26 -0700 (PDT) Date: Fri, 4 Oct 2019 14:33:24 +0100 From: Lee Jones To: Gene Chen Subject: Re: [PATCH v3] mfd: mt6360: add pmic mt6360 driver Message-ID: <20191004133324.GE18429@dell> References: <1569338741-2784-1-git-send-email-gene.chen.richtek@gmail.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <1569338741-2784-1-git-send-email-gene.chen.richtek@gmail.com> User-Agent: Mutt/1.9.4 (2018-02-28) X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20191004_063329_211297_85BC3963 X-CRM114-Status: GOOD ( 21.41 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: gene_chen@richtek.com, linux-kernel@vger.kernel.org, cy_huang@richtek.com, linux-mediatek@lists.infradead.org, matthias.bgg@gmail.com, Wilma.Wu@mediatek.com, linux-arm-kernel@lists.infradead.org, shufan_lee@richtek.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+infradead-linux-arm-kernel=archiver.kernel.org@lists.infradead.org V29sZnJhbSwKCldvdWxkIHlvdSBiZSBraW5kIGVub3VnaCB0byBncmVwIGZvciB5b3VyIG5hbWUg YmVsb3c/CgpPbiBUdWUsIDI0IFNlcCAyMDE5LCBHZW5lIENoZW4gd3JvdGU6Cgo+IEZyb206IEdl bmUgQ2hlbiA8Z2VuZV9jaGVuQHJpY2h0ZWsuY29tPgo+IAo+IEFkZCBtZmQgZHJpdmVyIGZvciBt dDYzNjAgcG1pYyBjaGlwIGluY2x1ZGUKPiBCYXR0ZXJ5IENoYXJnZXIvVVNCX1BEL0ZsYXNoIExF RC9SR0IgTEVEL0xETy9CdWNrCj4gCj4gU2lnbmVkLW9mZi1ieTogR2VuZSBDaGVuIDxnZW5lX2No ZW5AcmljaHRlay5jb20KPiAtLS0KPiAgZHJpdmVycy9tZmQvS2NvbmZpZyAgICAgICAgICAgICAg ICB8ICAxMiArCj4gIGRyaXZlcnMvbWZkL01ha2VmaWxlICAgICAgICAgICAgICAgfCAgIDEgKwo+ ICBkcml2ZXJzL21mZC9tdDYzNjAtY29yZS5jICAgICAgICAgIHwgNDYzICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysKPiAgaW5jbHVkZS9saW51eC9tZmQvbXQ2MzYwLXByaXZh dGUuaCB8IDI3OSArKysrKysrKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvbGludXgvbWZkL210 NjM2MC5oICAgICAgICAgfCAgMzMgKysrCj4gIDUgZmlsZXMgY2hhbmdlZCwgNzg4IGluc2VydGlv bnMoKykKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbWZkL210NjM2MC1jb3JlLmMKPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvbWZkL210NjM2MC1wcml2YXRlLmgKPiAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGludXgvbWZkL210NjM2MC5oCj4gCj4gY2hhbmdl bG9ncyBiZXR3ZWVuIHYxICYgdjIKPiAtIGluY2x1ZGUgbWlzc2luZyBoZWFkZXIgZmlsZQo+IAo+ IGNoYW5nZWxvZ3MgYmV0d2VlbiB2MiAmIHYzCj4gLSBhZGQgY2hhbmdlbG9ncwo+IAo+IGRpZmYg LS1naXQgYS9kcml2ZXJzL21mZC9LY29uZmlnIGIvZHJpdmVycy9tZmQvS2NvbmZpZwo+IGluZGV4 IGYxMjlmOTYuLmE0MjJjNzYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9tZmQvS2NvbmZpZwo+ICsr KyBiL2RyaXZlcnMvbWZkL0tjb25maWcKPiBAQCAtODYyLDYgKzg2MiwxOCBAQCBjb25maWcgTUZE X01BWDg5OTgKPiAgCSAgYWRkaXRpb25hbCBkcml2ZXJzIG11c3QgYmUgZW5hYmxlZCBpbiBvcmRl ciB0byB1c2UgdGhlIGZ1bmN0aW9uYWxpdHkKPiAgCSAgb2YgdGhlIGRldmljZS4KPiAgCj4gK2Nv bmZpZyBNRkRfTVQ2MzYwCj4gKwl0cmlzdGF0ZSAiTWVkaWF0ZWsgTVQ2MzYwIFN1YlBNSUMiCj4g KwlzZWxlY3QgTUZEX0NPUkUKPiArCXNlbGVjdCBSRUdNQVBfSTJDCj4gKwlzZWxlY3QgUkVHTUFQ X0lSUQo+ICsJZGVwZW5kcyBvbiBJMkMKPiArCWhlbHAKPiArCSAgU2F5IFkgaGVyZSB0byBlbmFi bGUgTVQ2MzYwIFBNVS9QTUlDL0xETyBmdW5jdGlvbmFsIHN1cHBvcnQuCj4gKwkgIFBNVSBwYXJ0 IGluY2x1ZGUgY2hhcmdlciwgZmxhc2hsaWdodCwgcmdiIGxlZAo+ICsJICBQTUlDIHBhcnQgaW5j bHVkZSAyLWNoYW5uZWwgQlVDS3MgYW5kIDItY2hhbm5lbCBMRE9zCj4gKwkgIExETyBwYXJ0IGlu Y2x1ZGUgNC1jaGFubmVsIExET3MKCgkgIFBNVSBwYXJ0IGluY2x1ZGVzIENoYXJnZXIsIEZsYXNo bGlnaHQsIFJHQiBhbmQgTEVECgkgIFBNSUMgcGFydCBpbmNsdWRlcyAyLWNoYW5uZWwgQlVDS3Mg YW5kIDItY2hhbm5lbCBMRE9zCgkgIExETyBwYXJ0IGluY2x1ZGVzIDQtY2hhbm5lbCBMRE9zCgo+ ICBjb25maWcgTUZEX01UNjM5Nwo+ICAJdHJpc3RhdGUgIk1lZGlhVGVrIE1UNjM5NyBQTUlDIFN1 cHBvcnQiCj4gIAlzZWxlY3QgTUZEX0NPUkUKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvTWFr ZWZpbGUgYi9kcml2ZXJzL21mZC9NYWtlZmlsZQo+IGluZGV4IGYwMjZhZGEuLjc3YThmMGIgMTAw NjQ0Cj4gLS0tIGEvZHJpdmVycy9tZmQvTWFrZWZpbGUKPiArKysgYi9kcml2ZXJzL21mZC9NYWtl ZmlsZQo+IEBAIC0yNDEsNiArMjQxLDcgQEAgb2JqLSQoQ09ORklHX0lOVEVMX1NPQ19QTUlDKQkr PSBpbnRlbC1zb2MtcG1pYy5vCj4gIG9iai0kKENPTkZJR19JTlRFTF9TT0NfUE1JQ19CWFRXQykJ Kz0gaW50ZWxfc29jX3BtaWNfYnh0d2Mubwo+ICBvYmotJChDT05GSUdfSU5URUxfU09DX1BNSUNf Q0hUV0MpCSs9IGludGVsX3NvY19wbWljX2NodHdjLm8KPiAgb2JqLSQoQ09ORklHX0lOVEVMX1NP Q19QTUlDX0NIVERDX1RJKQkrPSBpbnRlbF9zb2NfcG1pY19jaHRkY190aS5vCj4gK29iai0kKENP TkZJR19NRkRfTVQ2MzYwKQkrPSBtdDYzNjAtY29yZS5vCj4gIG9iai0kKENPTkZJR19NRkRfTVQ2 Mzk3KQkrPSBtdDYzOTctY29yZS5vCj4gIAo+ICBvYmotJChDT05GSUdfTUZEX0FMVEVSQV9BMTBT UikJKz0gYWx0ZXJhLWExMHNyLm8KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvbXQ2MzYwLWNv cmUuYyBiL2RyaXZlcnMvbWZkL210NjM2MC1jb3JlLmMKPiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ IGluZGV4IDAwMDAwMDAuLmQzNTgwNjE4Cj4gLS0tIC9kZXYvbnVsbAo+ICsrKyBiL2RyaXZlcnMv bWZkL210NjM2MC1jb3JlLmMKPiBAQCAtMCwwICsxLDQ2MyBAQAo+ICsvLyBTUERYLUxpY2Vuc2Ut SWRlbnRpZmllcjogR1BMLTIuMAo+ICsvKgo+ICsgKiBDb3B5cmlnaHQgKGMpIDIwMTkgTWVkaWFU ZWsgSW5jLgo+ICsgKi8KPiArCj4gKyNpbmNsdWRlIDxsaW51eC9pMmMuaD4KPiArI2luY2x1ZGUg PGxpbnV4L2luaXQuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2tlcm5lbC5oPgo+ICsjaW5jbHVkZSA8 bGludXgvbWZkL2NvcmUuaD4KPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICsjaW5jbHVk ZSA8bGludXgvb2ZfaXJxLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9vZl9wbGF0Zm9ybS5oPgo+ICsj aW5jbHVkZSA8bGludXgvdmVyc2lvbi5oPgo+ICsKPiArI2luY2x1ZGUgPGxpbnV4L21mZC9tdDYz NjAuaD4KPiArI2luY2x1ZGUgPGxpbnV4L21mZC9tdDYzNjAtcHJpdmF0ZS5oPgo+ICsKPiArLyog cmVnIDAgLT4gMCB+IDcgKi8KPiArI2RlZmluZSBNVDYzNjBfQ0hHX1RSRUdfRVZUCQkoNCkKPiAr I2RlZmluZSBNVDYzNjBfQ0hHX0FJQ1JfRVZUCQkoNSkKPiArI2RlZmluZSBNVDYzNjBfQ0hHX01J VlJfRVZUCQkoNikKPiArI2RlZmluZSBNVDYzNjBfUFdSX1JEWV9FVlQJCSg3KQo+ICsvKiBSRUcg MSAtPiA4IH4gMTUgKi8KPiArI2RlZmluZSBNVDYzNjBfQ0hHX0JBVFNZU1VWX0VWVAkJKDkpCj4g KyNkZWZpbmUgTVQ2MzYwX0ZMRURfQ0hHX1ZJTk9WUF9FVlQJKDExKQo+ICsjZGVmaW5lIE1UNjM2 MF9DSEdfVlNZU1VWX0VWVAkJKDEyKQo+ICsjZGVmaW5lIE1UNjM2MF9DSEdfVlNZU09WX0VWVAkJ KDEzKQo+ICsjZGVmaW5lIE1UNjM2MF9DSEdfVkJBVE9WX0VWVAkJKDE0KQo+ICsjZGVmaW5lIE1U NjM2MF9DSEdfVkJVU09WX0VWVAkJKDE1KQo+ICsvKiBSRUcgMiAtPiAxNiB+IDIzICovCj4gKy8q IFJFRyAzIC0+IDI0IH4gMzEgKi8KPiArI2RlZmluZSBNVDYzNjBfV0RfUE1VX0RFVAkJKDI1KQo+ ICsjZGVmaW5lIE1UNjM2MF9XRF9QTVVfRE9ORQkJKDI2KQo+ICsjZGVmaW5lIE1UNjM2MF9DSEdf VE1SSQkJCSgyNykKPiArI2RlZmluZSBNVDYzNjBfQ0hHX0FEUEJBREkJCSgyOSkKPiArI2RlZmlu ZSBNVDYzNjBfQ0hHX1JWUEkJCQkoMzApCj4gKyNkZWZpbmUgTVQ2MzYwX09UUEkJCQkoMzEpCj4g Ky8qIFJFRyA0IC0+IDMyIH4gMzkgKi8KPiArI2RlZmluZSBNVDYzNjBfQ0hHX0FJQ0NNRUFTTAkJ KDMyKQo+ICsjZGVmaW5lIE1UNjM2MF9DSEdERVRfRE9ORUkJCSgzNCkKPiArI2RlZmluZSBNVDYz NjBfV0RUTVJJCQkJKDM1KQo+ICsjZGVmaW5lIE1UNjM2MF9TU0ZJTklTSEkJCSgzNikKPiArI2Rl ZmluZSBNVDYzNjBfQ0hHX1JFQ0hHSQkJKDM3KQo+ICsjZGVmaW5lIE1UNjM2MF9DSEdfVEVSTUkJ CSgzOCkKPiArI2RlZmluZSBNVDYzNjBfQ0hHX0lFT0NJCQkoMzkpCj4gKy8qIFJFRyA1IC0+IDQw IH4gNDcgKi8KPiArI2RlZmluZSBNVDYzNjBfUFVNUFhfRE9ORUkJCSg0MCkKPiArI2RlZmluZSBN VDYzNjBfQkFUX09WUF9BRENfRVZUCQkoNDEpCj4gKyNkZWZpbmUgTVQ2MzYwX1RZUEVDX09UUF9F VlQJCSg0MikKPiArI2RlZmluZSBNVDYzNjBfQURDX1dBS0VVUF9FVlQJCSg0MykKPiArI2RlZmlu ZSBNVDYzNjBfQURDX0RPTkVJCQkoNDQpCj4gKyNkZWZpbmUgTVQ2MzYwX0JTVF9CQVRVVkkJCSg0 NSkKPiArI2RlZmluZSBNVDYzNjBfQlNUX1ZCVVNPVkkJCSg0NikKPiArI2RlZmluZSBNVDYzNjBf QlNUX09MUEkJCQkoNDcpCj4gKy8qIFJFRyA2IC0+IDQ4IH4gNTUgKi8KPiArI2RlZmluZSBNVDYz NjBfQVRUQUNIX0kJCQkoNDgpCj4gKyNkZWZpbmUgTVQ2MzYwX0RFVEFDSF9JCQkJKDQ5KQo+ICsj ZGVmaW5lIE1UNjM2MF9RQzMwX1NUUERPTkUJCSg1MSkKPiArI2RlZmluZSBNVDYzNjBfUUNfVkJV U0RFVF9ET05FCQkoNTIpCj4gKyNkZWZpbmUgTVQ2MzYwX0hWRENQX0RFVAkJKDUzKQo+ICsjZGVm aW5lIE1UNjM2MF9DSEdERVRJCQkJKDU0KQo+ICsjZGVmaW5lIE1UNjM2MF9EQ0RUSQkJCSg1NSkK PiArLyogUkVHIDcgLT4gNTYgfiA2MyAqLwo+ICsjZGVmaW5lIE1UNjM2MF9GT0RfRE9ORV9FVlQJ CSg1NikKPiArI2RlZmluZSBNVDYzNjBfRk9EX09WX0VWVAkJKDU3KQo+ICsjZGVmaW5lIE1UNjM2 MF9DSFJERVRfVVZQX0VWVAkJKDU4KQo+ICsjZGVmaW5lIE1UNjM2MF9DSFJERVRfT1ZQX0VWVAkJ KDU5KQo+ICsjZGVmaW5lIE1UNjM2MF9DSFJERVRfRVhUX0VWVAkJKDYwKQo+ICsjZGVmaW5lIE1U NjM2MF9GT0RfTFJfRVZUCQkoNjEpCj4gKyNkZWZpbmUgTVQ2MzYwX0ZPRF9IUl9FVlQJCSg2MikK PiArI2RlZmluZSBNVDYzNjBfRk9EX0RJU0NIR19GQUlMX0VWVAkoNjMpCj4gKy8qIFJFRyA4IC0+ IDY0IH4gNzEgKi8KPiArI2RlZmluZSBNVDYzNjBfVVNCSURfRVZUCQkoNjQpCj4gKyNkZWZpbmUg TVQ2MzYwX0FQV0RUUlNUX0VWVAkJKDY1KQo+ICsjZGVmaW5lIE1UNjM2MF9FTl9FVlQJCQkoNjYp Cj4gKyNkZWZpbmUgTVQ2MzYwX1FPTkJfUlNUX0VWVAkJKDY3KQo+ICsjZGVmaW5lIE1UNjM2MF9N UlNUQl9FVlQJCSg2OCkKPiArI2RlZmluZSBNVDYzNjBfT1RQX0VWVAkJCSg2OSkKPiArI2RlZmlu ZSBNVDYzNjBfVkREQU9WX0VWVAkJKDcwKQo+ICsjZGVmaW5lIE1UNjM2MF9TWVNVVl9FVlQJCSg3 MSkKPiArLyogUkVHIDkgLT4gNzIgfiA3OSAqLwo+ICsjZGVmaW5lIE1UNjM2MF9GTEVEX1NUUkJQ SU5fRVZUCQkoNzIpCj4gKyNkZWZpbmUgTVQ2MzYwX0ZMRURfVE9SUElOX0VWVAkJKDczKQo+ICsj ZGVmaW5lIE1UNjM2MF9GTEVEX1RYX0VWVAkJKDc0KQo+ICsjZGVmaW5lIE1UNjM2MF9GTEVEX0xW Rl9FVlQJCSg3NSkKPiArI2RlZmluZSBNVDYzNjBfRkxFRDJfU0hPUlRfRVZUCQkoNzgpCj4gKyNk ZWZpbmUgTVQ2MzYwX0ZMRUQxX1NIT1JUX0VWVAkJKDc5KQo+ICsvKiBSRUcgMTAgLT4gODAgfiA4 NyAqLwo+ICsjZGVmaW5lIE1UNjM2MF9GTEVEMl9TVFJCX0VWVAkJKDgwKQo+ICsjZGVmaW5lIE1U NjM2MF9GTEVEMV9TVFJCX0VWVAkJKDgxKQo+ICsjZGVmaW5lIE1UNjM2MF9GTEVEMl9TVFJCX1RP X0VWVAkoODIpCj4gKyNkZWZpbmUgTVQ2MzYwX0ZMRUQxX1NUUkJfVE9fRVZUCSg4MykKPiArI2Rl ZmluZSBNVDYzNjBfRkxFRDJfVE9SX0VWVAkJKDg0KQo+ICsjZGVmaW5lIE1UNjM2MF9GTEVEMV9U T1JfRVZUCQkoODUpCj4gKy8qIFJFRyAxMSAtPiA4OCB+IDk1ICovCj4gKy8qIFJFRyAxMiAtPiA5 NiB+IDEwMyAqLwo+ICsjZGVmaW5lIE1UNjM2MF9CVUNLMV9QR0JfRVZUCQkoOTYpCj4gKyNkZWZp bmUgTVQ2MzYwX0JVQ0sxX09DX0VWVAkJKDEwMCkKPiArI2RlZmluZSBNVDYzNjBfQlVDSzFfT1Zf RVZUCQkoMTAxKQo+ICsjZGVmaW5lIE1UNjM2MF9CVUNLMV9VVl9FVlQJCSgxMDIpCj4gKy8qIFJF RyAxMyAtPiAxMDQgfiAxMTEgKi8KPiArI2RlZmluZSBNVDYzNjBfQlVDSzJfUEdCX0VWVAkJKDEw NCkKPiArI2RlZmluZSBNVDYzNjBfQlVDSzJfT0NfRVZUCQkoMTA4KQo+ICsjZGVmaW5lIE1UNjM2 MF9CVUNLMl9PVl9FVlQJCSgxMDkpCj4gKyNkZWZpbmUgTVQ2MzYwX0JVQ0syX1VWX0VWVAkJKDEx MCkKPiArLyogUkVHIDE0IC0+IDExMiB+IDExOSAqLwo+ICsjZGVmaW5lIE1UNjM2MF9MRE8xX09D X0VWVAkJKDExMykKPiArI2RlZmluZSBNVDYzNjBfTERPMl9PQ19FVlQJCSgxMTQpCj4gKyNkZWZp bmUgTVQ2MzYwX0xETzNfT0NfRVZUCQkoMTE1KQo+ICsjZGVmaW5lIE1UNjM2MF9MRE81X09DX0VW VAkJKDExNykKPiArI2RlZmluZSBNVDYzNjBfTERPNl9PQ19FVlQJCSgxMTgpCj4gKyNkZWZpbmUg TVQ2MzYwX0xETzdfT0NfRVZUCQkoMTE5KQo+ICsvKiBSRUcgMTUgLT4gMTIwIH4gMTI3ICovCj4g KyNkZWZpbmUgTVQ2MzYwX0xETzFfUEdCX0VWVAkJKDEyMSkKPiArI2RlZmluZSBNVDYzNjBfTERP Ml9QR0JfRVZUCQkoMTIyKQo+ICsjZGVmaW5lIE1UNjM2MF9MRE8zX1BHQl9FVlQJCSgxMjMpCj4g KyNkZWZpbmUgTVQ2MzYwX0xETzVfUEdCX0VWVAkJKDEyNSkKPiArI2RlZmluZSBNVDYzNjBfTERP Nl9QR0JfRVZUCQkoMTI2KQo+ICsjZGVmaW5lIE1UNjM2MF9MRE83X1BHQl9FVlQJCSgxMjcpCj4g Kwo+ICsjZGVmaW5lIE1UNjM2MF9SRUdNQVBfSVJRX1JFRyhfaXJxX2V2dCkJCVwKPiArCVJFR01B UF9JUlFfUkVHKF9pcnFfZXZ0LCAoX2lycV9ldnQpIC8gOCwgQklUKChfaXJxX2V2dCkgJSA4KSkK PiArCj4gKyNkZWZpbmUgTVQ2MzYwX01GRF9DRUxMKF9uYW1lKQkJCQkJXAo+ICsJewkJCQkJCQlc Cj4gKwkJLm5hbWUgPSAjX25hbWUsCQkJCQlcCj4gKwkJLm9mX2NvbXBhdGlibGUgPSAibWVkaWF0 ZWssIiAjX25hbWUsCQlcCj4gKwkJLm51bV9yZXNvdXJjZXMgPSBBUlJBWV9TSVpFKF9uYW1lIyNf cmVzb3VyY2VzKSwJXAo+ICsJCS5yZXNvdXJjZXMgPSBfbmFtZSMjX3Jlc291cmNlcywJCQlcCj4g Kwl9CgpQbGVhc2UgZG8gbm90IHJvbGwgeW91ciBvd24gTUFDUk9TIGxpa2UgdGhpcy4gIElmIHRo ZXkgYXJlIGhlbHBmdWwgZm9yCnlvdSwgdGhleSBhcmUgbGlrZWx5IHRvIGJlIGhlbHBmdWwgZm9y IG90aGVycy4gIEhvd2V2ZXIsIHRoaXMgaXMgeW91cgpsdWNreSBkYXksIGFzIHdlJ3ZlIGJlZW4g aGVyZSBiZWZvcmUuICBQbGVhc2UgcmViYXNlIG9udG8gdGhlIE1GRCB0cmVlCndoZXJlIHlvdSB3 aWxsIGZpbmQgc29tZSBwcmUtYXV0aG9yZWQgbWFjcm9zIHdoaWNoIGFyZW4ndCB0b28KZGlzc2lt aWxhciB0byB0aGlzIG9uZS4gIFBsZWFzZSB1c2Ugb25lIG9mIHRob3NlIGluc3RlYWQuCgo+ICtz dGF0aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9pcnEgbXQ2MzYwX3BtdV9pcnFzW10gPSAgewo+ICsJ TVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9DSEdfVFJFR19FVlQpLAo+ICsJTVQ2MzYwX1JF R01BUF9JUlFfUkVHKE1UNjM2MF9DSEdfQUlDUl9FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFf UkVHKE1UNjM2MF9DSEdfTUlWUl9FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2 MF9QV1JfUkRZX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0NIR19CQVRT WVNVVl9FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9GTEVEX0NIR19WSU5P VlBfRVZUKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYzNjBfQ0hHX1ZTWVNVVl9FVlQp LAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9DSEdfVlNZU09WX0VWVCksCj4gKwlN VDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0NIR19WQkFUT1ZfRVZUKSwKPiArCU1UNjM2MF9S RUdNQVBfSVJRX1JFRyhNVDYzNjBfQ0hHX1ZCVVNPVl9FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9J UlFfUkVHKE1UNjM2MF9XRF9QTVVfREVUKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYz NjBfV0RfUE1VX0RPTkUpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9DSEdfVE1S SSksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0NIR19BRFBCQURJKSwKPiArCU1U NjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYzNjBfQ0hHX1JWUEkpLAo+ICsJTVQ2MzYwX1JFR01BUF9J UlFfUkVHKE1UNjM2MF9PVFBJKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYzNjBfQ0hH X0FJQ0NNRUFTTCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0NIR0RFVF9ET05F SSksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX1dEVE1SSSksCj4gKwlNVDYzNjBf UkVHTUFQX0lSUV9SRUcoTVQ2MzYwX1NTRklOSVNISSksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9S RUcoTVQ2MzYwX0NIR19SRUNIR0kpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9D SEdfVEVSTUkpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9DSEdfSUVPQ0kpLAo+ ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9QVU1QWF9ET05FSSksCj4gKwlNVDYzNjBf UkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0NIR19UUkVHX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lS UV9SRUcoTVQ2MzYwX0JBVF9PVlBfQURDX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUco TVQ2MzYwX1RZUEVDX09UUF9FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9B RENfV0FLRVVQX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0FEQ19ET05F SSksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0JTVF9CQVRVVkkpLAo+ICsJTVQ2 MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9CU1RfVkJVU09WSSksCj4gKwlNVDYzNjBfUkVHTUFQ X0lSUV9SRUcoTVQ2MzYwX0JTVF9PTFBJKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYz NjBfQVRUQUNIX0kpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9ERVRBQ0hfSSks Cj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX1FDMzBfU1RQRE9ORSksCj4gKwlNVDYz NjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX1FDX1ZCVVNERVRfRE9ORSksCj4gKwlNVDYzNjBfUkVH TUFQX0lSUV9SRUcoTVQ2MzYwX0hWRENQX0RFVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUco TVQ2MzYwX0NIR0RFVEkpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9EQ0RUSSks Cj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0ZPRF9ET05FX0VWVCksCj4gKwlNVDYz NjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0ZPRF9PVl9FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9J UlFfUkVHKE1UNjM2MF9DSFJERVRfVVZQX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUco TVQ2MzYwX0NIUkRFVF9PVlBfRVZUKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYzNjBf Q0hSREVUX0VYVF9FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9GT0RfTFJf RVZUKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYzNjBfRk9EX0hSX0VWVCksCj4gKwlN VDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0ZPRF9ESVNDSEdfRkFJTF9FVlQpLAo+ICsJTVQ2 MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9VU0JJRF9FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9J UlFfUkVHKE1UNjM2MF9BUFdEVFJTVF9FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1U NjM2MF9FTl9FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9RT05CX1JTVF9F VlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9NUlNUQl9FVlQpLAo+ICsJTVQ2 MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9PVFBfRVZUKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJR X1JFRyhNVDYzNjBfVkREQU9WX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYw X1NZU1VWX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0ZMRURfU1RSQlBJ Tl9FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9GTEVEX1RPUlBJTl9FVlQp LAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9GTEVEX1RYX0VWVCksCj4gKwlNVDYz NjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0ZMRURfTFZGX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQ X0lSUV9SRUcoTVQ2MzYwX0ZMRUQyX1NIT1JUX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9S RUcoTVQ2MzYwX0ZMRUQxX1NIT1JUX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2 MzYwX0ZMRUQyX1NUUkJfRVZUKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYzNjBfRkxF RDFfU1RSQl9FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9GTEVEMl9TVFJC X1RPX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0ZMRUQxX1NUUkJfVE9f RVZUKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYzNjBfRkxFRDJfVE9SX0VWVCksCj4g KwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0ZMRUQxX1RPUl9FVlQpLAo+ICsJTVQ2MzYw X1JFR01BUF9JUlFfUkVHKE1UNjM2MF9CVUNLMV9QR0JfRVZUKSwKPiArCU1UNjM2MF9SRUdNQVBf SVJRX1JFRyhNVDYzNjBfQlVDSzFfT0NfRVZUKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJRX1JFRyhN VDYzNjBfQlVDSzFfT1ZfRVZUKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYzNjBfQlVD SzFfVVZfRVZUKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYzNjBfQlVDSzJfUEdCX0VW VCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0JVQ0syX09DX0VWVCksCj4gKwlN VDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0JVQ0syX09WX0VWVCksCj4gKwlNVDYzNjBfUkVH TUFQX0lSUV9SRUcoTVQ2MzYwX0JVQ0syX1VWX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9S RUcoTVQ2MzYwX0xETzFfT0NfRVZUKSwKPiArCU1UNjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYzNjBf TERPMl9PQ19FVlQpLAo+ICsJTVQ2MzYwX1JFR01BUF9JUlFfUkVHKE1UNjM2MF9MRE8zX09DX0VW VCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0xETzVfT0NfRVZUKSwKPiArCU1U NjM2MF9SRUdNQVBfSVJRX1JFRyhNVDYzNjBfTERPNl9PQ19FVlQpLAo+ICsJTVQ2MzYwX1JFR01B UF9JUlFfUkVHKE1UNjM2MF9MRE83X09DX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUco TVQ2MzYwX0xETzFfUEdCX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0xE TzJfUEdCX0VWVCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0xETzNfUEdCX0VW VCksCj4gKwlNVDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0xETzVfUEdCX0VWVCksCj4gKwlN VDYzNjBfUkVHTUFQX0lSUV9SRUcoTVQ2MzYwX0xETzZfUEdCX0VWVCksCj4gKwlNVDYzNjBfUkVH TUFQX0lSUV9SRUcoTVQ2MzYwX0xETzdfUEdCX0VWVCksCj4gK307Cj4gKwo+ICtzdGF0aWMgaW50 IG10NjM2MF9wbXVfaGFuZGxlX3Bvc3RfaXJxKHZvaWQgKmlycV9kcnZfZGF0YSkKPiArewo+ICsJ c3RydWN0IG10NjM2MF9wbXVfaW5mbyAqbXBpID0gaXJxX2Rydl9kYXRhOwo+ICsKPiArCXJldHVy biByZWdtYXBfdXBkYXRlX2JpdHMobXBpLT5yZWdtYXAsCj4gKwkJTVQ2MzYwX1BNVV9JUlFfU0VU LCBNVDYzNjBfSVJRX1JFVFJJRywgTVQ2MzYwX0lSUV9SRVRSSUcpOwo+ICt9Cj4gKwo+ICtzdGF0 aWMgY29uc3Qgc3RydWN0IHJlZ21hcF9pcnFfY2hpcCBtdDYzNjBfcG11X2lycV9jaGlwID0gewo+ ICsJLmlycXMgPSBtdDYzNjBfcG11X2lycXMsCj4gKwkubnVtX2lycXMgPSBBUlJBWV9TSVpFKG10 NjM2MF9wbXVfaXJxcyksCj4gKwkubnVtX3JlZ3MgPSBNVDYzNjBfUE1VX0lSUV9SRUdOVU0sCj4g KwkubWFza19iYXNlID0gTVQ2MzYwX1BNVV9DSEdfTUFTSzEsCj4gKwkuc3RhdHVzX2Jhc2UgPSBN VDYzNjBfUE1VX0NIR19JUlExLAo+ICsJLmFja19iYXNlID0gTVQ2MzYwX1BNVV9DSEdfSVJRMSwK PiArCS5pbml0X2Fja19tYXNrZWQgPSB0cnVlLAo+ICsJLnVzZV9hY2sgPSB0cnVlLAo+ICsJLmhh bmRsZV9wb3N0X2lycSA9IG10NjM2MF9wbXVfaGFuZGxlX3Bvc3RfaXJxLAo+ICt9Owo+ICsKPiAr c3RhdGljIGNvbnN0IHN0cnVjdCByZWdtYXBfY29uZmlnIG10NjM2MF9wbXVfcmVnbWFwX2NvbmZp ZyA9IHsKPiArCS5yZWdfYml0cyA9IDgsCj4gKwkudmFsX2JpdHMgPSA4LAo+ICsJLm1heF9yZWdp c3RlciA9IE1UNjM2MF9QTVVfTUFYUkVHLAo+ICt9Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVj dCByZXNvdXJjZSBtdDYzNjBfYWRjX3Jlc291cmNlc1tdID0gewo+ICsJREVGSU5FX1JFU19JUlFf TkFNRUQoTVQ2MzYwX0FEQ19ET05FSSwgImFkY19kb25laSIpLAo+ICt9Owo+ICsKPiArc3RhdGlj IGNvbnN0IHN0cnVjdCByZXNvdXJjZSBtdDYzNjBfY2hnX3Jlc291cmNlc1tdID0gewo+ICsJREVG SU5FX1JFU19JUlFfTkFNRUQoTVQ2MzYwX0NIR19UUkVHX0VWVCwgImNoZ190cmVnX2V2dCIpLAo+ ICsJREVGSU5FX1JFU19JUlFfTkFNRUQoTVQ2MzYwX1BXUl9SRFlfRVZULCAicHdyX3JkeV9ldnQi KSwKPiArCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM2MF9DSEdfQkFUU1lTVVZfRVZULCAiY2hn X2JhdHN5c3V2X2V2dCIpLAo+ICsJREVGSU5FX1JFU19JUlFfTkFNRUQoTVQ2MzYwX0NIR19WU1lT VVZfRVZULCAiY2hnX3ZzeXN1dl9ldnQiKSwKPiArCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM2 MF9DSEdfVlNZU09WX0VWVCwgImNoZ192c3lzb3ZfZXZ0IiksCj4gKwlERUZJTkVfUkVTX0lSUV9O QU1FRChNVDYzNjBfQ0hHX1ZCQVRPVl9FVlQsICJjaGdfdmJhdG92X2V2dCIpLAo+ICsJREVGSU5F X1JFU19JUlFfTkFNRUQoTVQ2MzYwX0NIR19WQlVTT1ZfRVZULCAiY2hnX3ZidXNvdl9ldnQiKSwK PiArCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM2MF9DSEdfQUlDQ01FQVNMLCAiY2hnX2FpY2Nt ZWFzbCIpLAo+ICsJREVGSU5FX1JFU19JUlFfTkFNRUQoTVQ2MzYwX1dEVE1SSSwgIndkdG1yaSIp LAo+ICsJREVGSU5FX1JFU19JUlFfTkFNRUQoTVQ2MzYwX0NIR19SRUNIR0ksICJjaGdfcmVjaGdp IiksCj4gKwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNjBfQ0hHX1RFUk1JLCAiY2hnX3Rlcm1p IiksCj4gKwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNjBfQ0hHX0lFT0NJLCAiY2hnX2llb2Np IiksCj4gKwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNjBfUFVNUFhfRE9ORUksICJwdW1weF9k b25laSIpLAo+ICsJREVGSU5FX1JFU19JUlFfTkFNRUQoTVQ2MzYwX0FUVEFDSF9JLCAiYXR0YWNo X2kiKSwKPiArCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM2MF9DSFJERVRfRVhUX0VWVCwgImNo cmRldF9leHRfZXZ0IiksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IHJlc291cmNl IG10NjM2MF9sZWRfcmVzb3VyY2VzW10gPSB7Cj4gKwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYz NjBfRkxFRF9DSEdfVklOT1ZQX0VWVCwgImZsZWRfY2hnX3Zpbm92cF9ldnQiKSwKPiArCURFRklO RV9SRVNfSVJRX05BTUVEKE1UNjM2MF9GTEVEX0xWRl9FVlQsICJmbGVkX2x2Zl9ldnQiKSwKPiAr CURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM2MF9GTEVEMl9TSE9SVF9FVlQsICJmbGVkMl9zaG9y dF9ldnQiKSwKPiArCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM2MF9GTEVEMV9TSE9SVF9FVlQs ICJmbGVkMV9zaG9ydF9ldnQiKSwKPiArCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM2MF9GTEVE Ml9TVFJCX1RPX0VWVCwgImZsZWQyX3N0cmJfdG9fZXZ0IiksCj4gKwlERUZJTkVfUkVTX0lSUV9O QU1FRChNVDYzNjBfRkxFRDFfU1RSQl9UT19FVlQsICJmbGVkMV9zdHJiX3RvX2V2dCIpLAo+ICt9 Owo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVjdCByZXNvdXJjZSBtdDYzNjBfcG1pY19yZXNvdXJj ZXNbXSA9IHsKPiArCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM2MF9CVUNLMV9QR0JfRVZULCAi YnVjazFfcGdiX2V2dCIpLAo+ICsJREVGSU5FX1JFU19JUlFfTkFNRUQoTVQ2MzYwX0JVQ0sxX09D X0VWVCwgImJ1Y2sxX29jX2V2dCIpLAo+ICsJREVGSU5FX1JFU19JUlFfTkFNRUQoTVQ2MzYwX0JV Q0sxX09WX0VWVCwgImJ1Y2sxX292X2V2dCIpLAo+ICsJREVGSU5FX1JFU19JUlFfTkFNRUQoTVQ2 MzYwX0JVQ0sxX1VWX0VWVCwgImJ1Y2sxX3V2X2V2dCIpLAo+ICsJREVGSU5FX1JFU19JUlFfTkFN RUQoTVQ2MzYwX0JVQ0syX1BHQl9FVlQsICJidWNrMl9wZ2JfZXZ0IiksCj4gKwlERUZJTkVfUkVT X0lSUV9OQU1FRChNVDYzNjBfQlVDSzJfT0NfRVZULCAiYnVjazJfb2NfZXZ0IiksCj4gKwlERUZJ TkVfUkVTX0lSUV9OQU1FRChNVDYzNjBfQlVDSzJfT1ZfRVZULCAiYnVjazJfb3ZfZXZ0IiksCj4g KwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNjBfQlVDSzJfVVZfRVZULCAiYnVjazJfdXZfZXZ0 IiksCj4gKwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNjBfTERPNl9PQ19FVlQsICJsZG82X29j X2V2dCIpLAo+ICsJREVGSU5FX1JFU19JUlFfTkFNRUQoTVQ2MzYwX0xETzdfT0NfRVZULCAibGRv N19vY19ldnQiKSwKPiArCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM2MF9MRE82X1BHQl9FVlQs ICJsZG82X3BnYl9ldnQiKSwKPiArCURFRklORV9SRVNfSVJRX05BTUVEKE1UNjM2MF9MRE83X1BH Ql9FVlQsICJsZG83X3BnYl9ldnQiKSwKPiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg cmVzb3VyY2UgbXQ2MzYwX2xkb19yZXNvdXJjZXNbXSA9IHsKPiArCURFRklORV9SRVNfSVJRX05B TUVEKE1UNjM2MF9MRE8xX09DX0VWVCwgImxkbzFfb2NfZXZ0IiksCj4gKwlERUZJTkVfUkVTX0lS UV9OQU1FRChNVDYzNjBfTERPMl9PQ19FVlQsICJsZG8yX29jX2V2dCIpLAo+ICsJREVGSU5FX1JF U19JUlFfTkFNRUQoTVQ2MzYwX0xETzNfT0NfRVZULCAibGRvM19vY19ldnQiKSwKPiArCURFRklO RV9SRVNfSVJRX05BTUVEKE1UNjM2MF9MRE81X09DX0VWVCwgImxkbzVfb2NfZXZ0IiksCj4gKwlE RUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNjBfTERPMV9QR0JfRVZULCAibGRvMV9wZ2JfZXZ0Iiks Cj4gKwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNjBfTERPMl9QR0JfRVZULCAibGRvMl9wZ2Jf ZXZ0IiksCj4gKwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNjBfTERPM19QR0JfRVZULCAibGRv M19wZ2JfZXZ0IiksCj4gKwlERUZJTkVfUkVTX0lSUV9OQU1FRChNVDYzNjBfTERPNV9QR0JfRVZU LCAibGRvNV9wZ2JfZXZ0IiksCj4gK307Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG1mZF9j ZWxsIG10NjM2MF9kZXZzW10gPSB7Cj4gKwlNVDYzNjBfTUZEX0NFTEwobXQ2MzYwX2FkYyksCj4g KwlNVDYzNjBfTUZEX0NFTEwobXQ2MzYwX2NoZyksCj4gKwlNVDYzNjBfTUZEX0NFTEwobXQ2MzYw X2xlZCksCj4gKwlNVDYzNjBfTUZEX0NFTEwobXQ2MzYwX3BtaWMpLAo+ICsJTVQ2MzYwX01GRF9D RUxMKG10NjM2MF9sZG8pLAo+ICsJLyogdGNwYyBkZXYgKi8KPiArCXsKPiArCQkubmFtZSA9ICJt dDYzNjBfdGNwYyIsCj4gKwkJLm9mX2NvbXBhdGlibGUgPSAibWVkaWF0ZWssbXQ2MzYwX3RjcGMi LAoKVGhlcmUgaXMgYSBtYWNybyBmb3IgdGhpcyB0b28gKE9GX01GRF9DRUxMKCkpCgo+ICsJfSwK PiArfTsKPiArCj4gK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBzaG9ydCBtdDYzNjBfc2xhdmVfYWRk cltNVDYzNjBfU0xBVkVfTUFYXSA9IHsKPiArCU1UNjM2MF9QTVVfU0xBVkVJRCwKPiArCU1UNjM2 MF9QTUlDX1NMQVZFSUQsCj4gKwlNVDYzNjBfTERPX1NMQVZFSUQsCj4gKwlNVDYzNjBfVENQQ19T TEFWRUlELAo+ICt9Owo+ICsKPiArc3RhdGljIGludCBtdDYzNjBfcG11X3Byb2JlKHN0cnVjdCBp MmNfY2xpZW50ICpjbGllbnQsCj4gKwkJCSAgICBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAq aWQpCgpJZiB5b3UgdXNlIC5wcm9iZV9uZXcgKHNlZSBiZWxvdykgeW91IGNhbiBvbWl0IHRoZSAn aWQnIHBhcmFtLgoKPiArewo+ICsJc3RydWN0IG10NjM2MF9wbXVfaW5mbyAqbXBpOwoKV2Ugbm9y bWFsbHkgY2FsbCB0aGlzIGRkYXRhLgoKPiArCXVuc2lnbmVkIGludCByZWdfZGF0YSA9IDA7Cj4g KwlpbnQgaSwgcmV0Owo+ICsKPiArCW1waSA9IGRldm1fa3phbGxvYygmY2xpZW50LT5kZXYsIHNp emVvZigqbXBpKSwgR0ZQX0tFUk5FTCk7Cj4gKwlpZiAoIW1waSkKPiArCQlyZXR1cm4gLUVOT01F TTsKCidcbicgaGVyZS4KCj4gKwltcGktPmRldiA9ICZjbGllbnQtPmRldjsKPiArCWkyY19zZXRf Y2xpZW50ZGF0YShjbGllbnQsIG1waSk7Cj4gKwo+ICsJLyogcmVnbWFwIHJlZ2lzZXIgKi8KClRo aXMgY29tbWVudCBpcyBzcGVsdCBpbmNvcnJlY3RseSBhbmQgZG9lc24ndCByZWFsbHkgYWRkIGFu eXRoaW5nLgoKPiArCW1waS0+cmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9pMmMoY2xpZW50LCAm bXQ2MzYwX3BtdV9yZWdtYXBfY29uZmlnKTsKPiArCWlmIChJU19FUlIobXBpLT5yZWdtYXApKSB7 Cj4gKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJyZWdtYXAgcmVnaXN0ZXIgZmFpbFxuIik7Cgoi RmFpbGVkIHRvIHJlZ2lzdGVyIHJlZ21hcCIKCj4gKwkJcmV0dXJuIFBUUl9FUlIobXBpLT5yZWdt YXApOwo+ICsJfQoKJ1xuJyBoZXJlLgoKPiArCS8qIGNoaXAgaWQgY2hlY2sgKi8KCkFnYWluLCB0 aGUgY29kZSBpcyBwcmV0dHkgb2J2aW91cy4KCj4gKwlyZXQgPSByZWdtYXBfcmVhZChtcGktPnJl Z21hcCwgTVQ2MzYwX1BNVV9ERVZfSU5GTywgJnJlZ19kYXRhKTsKPiArCWlmIChyZXQgPCAwKSB7 Cj4gKwkJZGV2X2VycigmY2xpZW50LT5kZXYsICJkZXZpY2Ugbm90IGZvdW5kXG4iKTsKCiJEZXZp Y2Ugbm90IGZvdW5kIgoKPiArCQlyZXR1cm4gcmV0Owo+ICsJfQoKJ1xuJyBoZXJlLgoKPiArCWlm ICgocmVnX2RhdGEgJiBDSElQX1ZFTl9NQVNLKSAhPSBDSElQX1ZFTl9NVDYzNjApIHsKPiArCQlk ZXZfZXJyKCZjbGllbnQtPmRldiwgIm5vdCBtdDYzNjAgY2hpcFxuIik7CgoiRGV2aWNlIG5vdCBz dXBwb3J0ZWQiCgo+ICsJCXJldHVybiAtRU5PREVWOwo+ICsJfQoKJ1xuJyBoZXJlLgoKPiArCW1w aS0+Y2hpcF9yZXYgPSByZWdfZGF0YSAmIENISVBfUkVWX01BU0s7CgpEbyB0aGlzIGFib3ZlIHRo ZSBjaGVjaywgdGhlbiBkbwoKICAobXBpLT5jaGlwX3JldiAhPSBDSElQX1ZFTl9NVDYzNjApCgou Li4gYWJvdmUuCgo+ICsJLyogaXJxIHJlZ2lzdGVyICovCgpQbGVhc2UgcmVtb3ZlIGFsbCBvZiB0 aGVzZSBjb21tZW50cy4KCj4gKwltZW1jcHkoJm1waS0+aXJxX2NoaXAsICZtdDYzNjBfcG11X2ly cV9jaGlwLCBzaXplb2YobXBpLT5pcnFfY2hpcCkpOwoKV2h5IGRvIHdlIG5lZWQgdG8gbWFrZSBh IGNvcHkgb2YgaXQ/Cgo+ICsJbXBpLT5pcnFfY2hpcC5uYW1lID0gZGV2X25hbWUoJmNsaWVudC0+ ZGV2KTsKCldlIGFscmVhZHkga25vdyB0aGUgbmFtZS4gIFdoeSBkbyB3ZSBuZWVkIHRvIGRvIHRo aXMgZHluYW1pY2FsbHk/Cgo+ICsJbXBpLT5pcnFfY2hpcC5pcnFfZHJ2X2RhdGEgPSBtcGk7CgpX ZSBhbHJlYWR5IHNhdmVkIGRkYXRhLiAgV2h5IGRvIHdlIG5lZWQgdG8gc2F2ZSBpdCBoZXJlIGFz IHdlbGw/Cgo+ICsJcmV0ID0gZGV2bV9yZWdtYXBfYWRkX2lycV9jaGlwKCZjbGllbnQtPmRldiwg bXBpLT5yZWdtYXAsIGNsaWVudC0+aXJxLAo+ICsJCQkJICAgICAgIElSUUZfVFJJR0dFUl9GQUxM SU5HLCAwLCAmbXBpLT5pcnFfY2hpcCwKPiArCQkJCSAgICAgICAmbXBpLT5pcnFfZGF0YSk7Cj4g KwlpZiAocmV0IDwgMCkgewoKSXMgKHJldCA+IDApIHZhbGlkPwoKPiArCQlkZXZfZXJyKCZjbGll bnQtPmRldiwgInJlZ21hcCBpcnEgY2hpcCBhZGQgZmFpbFxuIik7CgoiRmFpbGVkIHRvIGFkZCBS ZWdtYXAgSVJRIENoaXAiCgo+ICsJCXJldHVybiByZXQ7Cj4gKwl9CgonXG4nIGhlcmUuCgo+ICsJ LyogbmV3IGkyYyBzbGF2ZSBkZXZpY2UgKi8KPiArCWZvciAoaSA9IDA7IGkgPCBNVDYzNjBfU0xB VkVfTUFYOyBpKyspIHsKPiArCQlpZiAobXQ2MzYwX3NsYXZlX2FkZHJbaV0gPT0gY2xpZW50LT5h ZGRyKSB7Cj4gKwkJCW1waS0+aTJjW2ldID0gY2xpZW50Owo+ICsJCQljb250aW51ZTsKPiArCQl9 Cj4gKwkJbXBpLT5pMmNbaV0gPSBpMmNfbmV3X2R1bW15KGNsaWVudC0+YWRhcHRlciwKPiArCQkJ CQkgICAgbXQ2MzYwX3NsYXZlX2FkZHJbaV0pOwo+ICsJCWlmICghbXBpLT5pMmNbaV0pIHsKPiAr CQkJZGV2X2VycigmY2xpZW50LT5kZXYsICJuZXcgaTJjIGRldiBbJWRdIGZhaWxcbiIsIGkpOwo+ ICsJCQlyZXQgPSAtRU5PREVWOwo+ICsJCQlnb3RvIG91dDsKPiArCQl9Cj4gKwkJaTJjX3NldF9j bGllbnRkYXRhKG1waS0+aTJjW2ldLCBtcGkpOwo+ICsJfQoKVGhpcyBkb2Vzbid0IGxvb2sgcmln aHQgdG8gbWUuCgpXb2xmcmFtLCB3b3VsZCB5b3UgYmUga2luZCBlbm91Z2ggdG8gdGFrZSBhIGxv b2s/CgonXG4nIGhlcmUuCgo+ICsJLyogbWZkIGNlbGwgcmVnaXN0ZXIgKi8KPiArCXJldCA9IGRl dm1fbWZkX2FkZF9kZXZpY2VzKCZjbGllbnQtPmRldiwgUExBVEZPUk1fREVWSURfQVVUTywKPiAr CQkJCSAgIG10NjM2MF9kZXZzLCBBUlJBWV9TSVpFKG10NjM2MF9kZXZzKSwgTlVMTCwKPiArCQkJ CSAgIDAsIHJlZ21hcF9pcnFfZ2V0X2RvbWFpbihtcGktPmlycV9kYXRhKSk7Cj4gKwlpZiAocmV0 IDwgMCkgewo+ICsJCWRldl9lcnIoJmNsaWVudC0+ZGV2LCAibWZkIGFkZCBjZWxscyBmYWlsXG4i KTsKPiArCQlnb3RvIG91dDsKPiArCX0KCidcbicgaGVyZS4KCj4gKwlkZXZfaW5mbygmY2xpZW50 LT5kZXYsICJTdWNjZXNzZnVsbHkgcHJvYmVkXG4iKTsKClBsZWFzZSByZW1vdmUgdGhpcyBsaW5l LiAgSXQgZG9lc24ndCBwcm92aWRlIGFueXRoaW5nLgoKPiArCXJldHVybiAwOwo+ICtvdXQ6Cj4g Kwl3aGlsZSAoLS1pID49IDApIHsKPiArCQlpZiAobXBpLT5pMmNbaV0tPmFkZHIgPT0gY2xpZW50 LT5hZGRyKQo+ICsJCQljb250aW51ZTsKPiArCQlpMmNfdW5yZWdpc3Rlcl9kZXZpY2UobXBpLT5p MmNbaV0pOwo+ICsJfQoKJ1xuJyBoZXJlLgoKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0 YXRpYyBpbnQgbXQ2MzYwX3BtdV9yZW1vdmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCkKPiAr ewo+ICsJc3RydWN0IG10NjM2MF9wbXVfaW5mbyAqbXBpID0gaTJjX2dldF9jbGllbnRkYXRhKGNs aWVudCk7Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3IgKGkgPSAwOyBpIDwgTVQ2MzYwX1NMQVZFX01B WDsgaSsrKSB7Cj4gKwkJaWYgKG1waS0+aTJjW2ldLT5hZGRyID09IGNsaWVudC0+YWRkcikKPiAr CQkJY29udGludWU7Cj4gKwkJaTJjX3VucmVnaXN0ZXJfZGV2aWNlKG1waS0+aTJjW2ldKTsKPiAr CX0KCidcbicgaGVyZS4KCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIGludCBfX21h eWJlX3VudXNlZCBtdDYzNjBfcG11X3N1c3BlbmQoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7Cj4g KwlzdHJ1Y3QgaTJjX2NsaWVudCAqaTJjID0gdG9faTJjX2NsaWVudChkZXYpOwo+ICsKPiArCWlm IChkZXZpY2VfbWF5X3dha2V1cChkZXYpKQo+ICsJCWVuYWJsZV9pcnFfd2FrZShpMmMtPmlycSk7 CgonXG4nIGhlcmUuCgo+ICsJcmV0dXJuIDA7Cj4gK30KPiArCj4gK3N0YXRpYyBpbnQgX19tYXli ZV91bnVzZWQgbXQ2MzYwX3BtdV9yZXN1bWUoc3RydWN0IGRldmljZSAqZGV2KQo+ICt7Cj4gKwo+ ICsJc3RydWN0IGkyY19jbGllbnQgKmkyYyA9IHRvX2kyY19jbGllbnQoZGV2KTsKPiArCj4gKwlp ZiAoZGV2aWNlX21heV93YWtldXAoZGV2KSkKPiArCQlkaXNhYmxlX2lycV93YWtlKGkyYy0+aXJx KTsKCidcbicgaGVyZS4KCj4gKwlyZXR1cm4gMDsKPiArfQo+ICsKPiArc3RhdGljIFNJTVBMRV9E RVZfUE1fT1BTKG10NjM2MF9wbXVfcG1fb3BzLAo+ICsJCQkgbXQ2MzYwX3BtdV9zdXNwZW5kLCBt dDYzNjBfcG11X3Jlc3VtZSk7Cj4gKwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG9mX2RldmljZV9p ZCBfX21heWJlX3VudXNlZCBtdDYzNjBfcG11X29mX2lkW10gPSB7Cj4gKwl7IC5jb21wYXRpYmxl ID0gIm1lZGlhdGVrLG10NjM2MF9wbXUiLCB9LAo+ICsJe30sCj4gK307Cj4gK01PRFVMRV9ERVZJ Q0VfVEFCTEUob2YsIG10NjM2MF9wbXVfb2ZfaWQpOwo+ICsKPiArc3RhdGljIGNvbnN0IHN0cnVj dCBpMmNfZGV2aWNlX2lkIG10NjM2MF9wbXVfaWRbXSA9IHsKPiArCXsgIm10NjM2MF9wbXUiLCAw IH0sCj4gKwl7fSwKPiArfTsKPiArTU9EVUxFX0RFVklDRV9UQUJMRShpMmMsIG10NjM2MF9wbXVf aWQpOwoKSWYgeW91IHVzZSAucHJvYmVfbmV3IChzZWUgYmVsb3csIHlvdSBjYW4gcmVtb3ZlIHRo aXMgdGFibGUuCgo+ICtzdGF0aWMgc3RydWN0IGkyY19kcml2ZXIgbXQ2MzYwX3BtdV9kcml2ZXIg PSB7Cj4gKwkuZHJpdmVyID0gewo+ICsJCS5uYW1lID0gIm10NjM2MF9wbXUiLAo+ICsJCS5vd25l ciA9IFRISVNfTU9EVUxFLAoKVGhpcyBpcyBubyBsb25nZXIgcmVxdWlyZWQuCgo+ICsJCS5wbSA9 ICZtdDYzNjBfcG11X3BtX29wcywKPiArCQkub2ZfbWF0Y2hfdGFibGUgPSBvZl9tYXRjaF9wdHIo bXQ2MzYwX3BtdV9vZl9pZCksCj4gKwl9LAo+ICsJLnByb2JlID0gbXQ2MzYwX3BtdV9wcm9iZSwK ClVzZSAucHJvYmVfbmV3IGhlcmUuCgo+ICsJLnJlbW92ZSA9IG10NjM2MF9wbXVfcmVtb3ZlLAo+ ICsJLmlkX3RhYmxlID0gbXQ2MzYwX3BtdV9pZCwKPiArfTsKPiArbW9kdWxlX2kyY19kcml2ZXIo bXQ2MzYwX3BtdV9kcml2ZXIpOwo+ICsKPiArTU9EVUxFX0FVVEhPUigiQ1lfSHVhbmcgPGN5X2h1 YW5nQHJpY2h0ZWsuY29tPiIpOwo+ICtNT0RVTEVfREVTQ1JJUFRJT04oIk1UNjM2MCBQTVUgSTJD IERyaXZlciIpOwo+ICtNT0RVTEVfTElDRU5TRSgiR1BMIik7Cj4gK01PRFVMRV9WRVJTSU9OKCIx LjAuMCIpOwo+IGRpZmYgLS1naXQgYS9pbmNsdWRlL2xpbnV4L21mZC9tdDYzNjAtcHJpdmF0ZS5o IGIvaW5jbHVkZS9saW51eC9tZmQvbXQ2MzYwLXByaXZhdGUuaAo+IG5ldyBmaWxlIG1vZGUgMTAw NjQ0Cj4gaW5kZXggMDAwMDAwMC4uYjA3YjNkOQo+IC0tLSAvZGV2L251bGwKPiArKysgYi9pbmNs dWRlL2xpbnV4L21mZC9tdDYzNjAtcHJpdmF0ZS5oCgpXaHkgZG8geW91IG5lZWQgMiBoZWFkZXIg ZmlsZXM/Cgo+IEBAIC0wLDAgKzEsMjc5IEBACj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVy OiBHUEwtMi4wICovCj4gKy8qCj4gKyAqIENvcHlyaWdodCAoYykgMjAxOSBNZWRpYVRlayBJbmMu Cj4gKyAqLwo+ICsKPiArI2lmbmRlZiBfX01UNjM2MF9QUklWQVRFX0hfXwo+ICsjZGVmaW5lIF9f TVQ2MzYwX1BSSVZBVEVfSF9fCgpfX01GRF9NVDYzNjBfSF9fCgo+ICsjaW5jbHVkZSA8bGludXgv aW50ZXJydXB0Lmg+Cj4gKwo+ICsvKiBQTVUgcmVnaXN0ZXIgZGVmaW5pbml0aW9uICovCj4gKyNk ZWZpbmUgTVQ2MzYwX1BNVV9ERVZfSU5GTwkJCSgweDAwKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVf Q09SRV9DVFJMMQkJCSgweDAxKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfUlNUMQkJCQkoMHgwMikK PiArI2RlZmluZSBNVDYzNjBfUE1VX0NSQ0VOCQkJKDB4MDMpCj4gKyNkZWZpbmUgTVQ2MzYwX1BN VV9SU1RfUEFTX0NPREUxCQkoMHgwNCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX1JTVF9QQVNfQ09E RTIJCSgweDA1KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ09SRV9DVFJMMgkJCSgweDA2KQo+ICsj ZGVmaW5lIE1UNjM2MF9QTVVfVE1fUEFTX0NPREUxCQkJKDB4MDcpCj4gKyNkZWZpbmUgTVQ2MzYw X1BNVV9UTV9QQVNfQ09ERTIJCQkoMHgwOCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX1RNX1BBU19D T0RFMwkJCSgweDA5KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfVE1fUEFTX0NPREU0CQkJKDB4MEEp Cj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9JUlFfSU5ECQkJKDB4MEIpCj4gKyNkZWZpbmUgTVQ2MzYw X1BNVV9JUlFfTUFTSwkJCSgweDBDKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfSVJRX1NFVAkJCSgw eDBEKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfU0hETl9DVFJMCQkJKDB4MEUpCj4gKyNkZWZpbmUg TVQ2MzYwX1BNVV9UTV9JTkYJCQkoMHgwRikKPiArI2RlZmluZSBNVDYzNjBfUE1VX0kyQ19DVFJM CQkJKDB4MTApCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9DSEdfQ1RSTDEJCQkoMHgxMSkKPiArI2Rl ZmluZSBNVDYzNjBfUE1VX0NIR19DVFJMMgkJCSgweDEyKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVf Q0hHX0NUUkwzCQkJKDB4MTMpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9DSEdfQ1RSTDQJCQkoMHgx NCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0NIR19DVFJMNQkJCSgweDE1KQo+ICsjZGVmaW5lIE1U NjM2MF9QTVVfQ0hHX0NUUkw2CQkJKDB4MTYpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9DSEdfQ1RS TDcJCQkoMHgxNykKPiArI2RlZmluZSBNVDYzNjBfUE1VX0NIR19DVFJMOAkJCSgweDE4KQo+ICsj ZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0NUUkw5CQkJKDB4MTkpCj4gKyNkZWZpbmUgTVQ2MzYwX1BN VV9DSEdfQ1RSTDEwCQkJKDB4MUEpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9DSEdfQ1RSTDExCQkJ KDB4MUIpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9DSEdfQ1RSTDEyCQkJKDB4MUMpCj4gKyNkZWZp bmUgTVQ2MzYwX1BNVV9DSEdfQ1RSTDEzCQkJKDB4MUQpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9D SEdfQ1RSTDE0CQkJKDB4MUUpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9DSEdfQ1RSTDE1CQkJKDB4 MUYpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9DSEdfQ1RSTDE2CQkJKDB4MjApCj4gKyNkZWZpbmUg TVQ2MzYwX1BNVV9DSEdfQUlDQ19SRVNVTFQJCSgweDIxKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVf REVWSUNFX1RZUEUJCQkoMHgyMikKPiArI2RlZmluZSBNVDYzNjBfUE1VX1FDX0NPTlRST0wxCQkJ KDB4MjMpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9RQ19DT05UUk9MMgkJCSgweDI0KQo+ICsjZGVm aW5lIE1UNjM2MF9QTVVfUUMzMF9DT05UUk9MMQkJKDB4MjUpCj4gKyNkZWZpbmUgTVQ2MzYwX1BN VV9RQzMwX0NPTlRST0wyCQkoMHgyNikKPiArI2RlZmluZSBNVDYzNjBfUE1VX1VTQl9TVEFUVVMx CQkJKDB4MjcpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9RQ19TVEFUVVMxCQkJKDB4MjgpCj4gKyNk ZWZpbmUgTVQ2MzYwX1BNVV9RQ19TVEFUVVMyCQkJKDB4MjkpCj4gKyNkZWZpbmUgTVQ2MzYwX1BN VV9DSEdfUFVNUAkJCSgweDJBKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0NUUkwxNwkJCSgw eDJCKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0NUUkwxOAkJCSgweDJDKQo+ICsjZGVmaW5l IE1UNjM2MF9QTVVfQ0hSREVUX0NUUkwxCQkJKDB4MkQpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9D SFJERVRfQ1RSTDIJCQkoMHgyRSkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0RQRE5fQ1RSTAkJCSgw eDJGKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERFTl9DVFJMMQkJKDB4MzApCj4gKyNk ZWZpbmUgTVQ2MzYwX1BNVV9DSEdfSElEREVOX0NUUkwyCQkoMHgzMSkKPiArI2RlZmluZSBNVDYz NjBfUE1VX0NIR19ISURERU5fQ1RSTDMJCSgweDMyKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hH X0hJRERFTl9DVFJMNAkJKDB4MzMpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9DSEdfSElEREVOX0NU Ukw1CQkoMHgzNCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0NIR19ISURERU5fQ1RSTDYJCSgweDM1 KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERFTl9DVFJMNwkJKDB4MzYpCj4gKyNkZWZp bmUgTVQ2MzYwX1BNVV9DSEdfSElEREVOX0NUUkw4CQkoMHgzNykKPiArI2RlZmluZSBNVDYzNjBf UE1VX0NIR19ISURERU5fQ1RSTDkJCSgweDM4KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJ RERFTl9DVFJMMTAJCSgweDM5KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERFTl9DVFJM MTEJCSgweDNBKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERFTl9DVFJMMTIJCSgweDNC KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERFTl9DVFJMMTMJCSgweDNDKQo+ICsjZGVm aW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERFTl9DVFJMMTQJCSgweDNEKQo+ICsjZGVmaW5lIE1UNjM2 MF9QTVVfQ0hHX0hJRERFTl9DVFJMMTUJCSgweDNFKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hH X0hJRERFTl9DVFJMMTYJCSgweDNGKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERFTl9D VFJMMTcJCSgweDQwKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERFTl9DVFJMMTgJCSgw eDQxKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERFTl9DVFJMMTkJCSgweDQyKQo+ICsj ZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERFTl9DVFJMMjAJCSgweDQzKQo+ICsjZGVmaW5lIE1U NjM2MF9QTVVfQ0hHX0hJRERFTl9DVFJMMjEJCSgweDQ0KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVf Q0hHX0hJRERFTl9DVFJMMjIJCSgweDQ1KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERF Tl9DVFJMMjMJCSgweDQ2KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERFTl9DVFJMMjQJ CSgweDQ3KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0hJRERFTl9DVFJMMjUJCSgweDQ4KQo+ ICsjZGVmaW5lIE1UNjM2MF9QTVVfQkMxMl9DVFJMCQkJKDB4NDkpCj4gKyNkZWZpbmUgTVQ2MzYw X1BNVV9DSEdfU1RBVAkJCSgweDRBKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfUkVTVjEJCQkoMHg0 QikKPiArI2RlZmluZSBNVDYzNjBfUE1VX1RZUEVDX09UUF9USF9TRUxfQ09ERUgJKDB4NEUpCj4g KyNkZWZpbmUgTVQ2MzYwX1BNVV9UWVBFQ19PVFBfVEhfU0VMX0NPREVMCSgweDRGKQo+ICsjZGVm aW5lIE1UNjM2MF9QTVVfVFlQRUNfT1RQX0hZU1RfVEgJCSgweDUwKQo+ICsjZGVmaW5lIE1UNjM2 MF9QTVVfVFlQRUNfT1RQX0NUUkwJCSgweDUxKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQURDX0JB VF9EQVRBX0gJCSgweDUyKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQURDX0JBVF9EQVRBX0wJCSgw eDUzKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfSU1JRF9CQUNLQlNUX09OCQkoMHg1NCkKPiArI2Rl ZmluZSBNVDYzNjBfUE1VX0lNSURfQkFDS0JTVF9PRkYJCSgweDU1KQo+ICsjZGVmaW5lIE1UNjM2 MF9QTVVfQURDX0NPTkZJRwkJCSgweDU2KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQURDX0VOMgkJ CSgweDU3KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQURDX0lETEVfVAkJCSgweDU4KQo+ICsjZGVm aW5lIE1UNjM2MF9QTVVfQURDX1JQVF8xCQkJKDB4NUEpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9B RENfUlBUXzIJCQkoMHg1QikKPiArI2RlZmluZSBNVDYzNjBfUE1VX0FEQ19SUFRfMwkJCSgweDVD KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQURDX1JQVF9PUkcxCQkJKDB4NUQpCj4gKyNkZWZpbmUg TVQ2MzYwX1BNVV9BRENfUlBUX09SRzIJCQkoMHg1RSkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0JB VF9PVlBfVEhfU0VMX0NPREVICQkoMHg1RikKPiArI2RlZmluZSBNVDYzNjBfUE1VX0JBVF9PVlBf VEhfU0VMX0NPREVMCQkoMHg2MCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0NIR19DVFJMMTkJCQko MHg2MSkKPiArI2RlZmluZSBNVDYzNjBfUE1VX1ZEREFTVVBQTFkJCQkoMHg2MikKPiArI2RlZmlu ZSBNVDYzNjBfUE1VX0JDMTJfTUFOVUFMCQkJKDB4NjMpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9D SEdERVRfRlVOQwkJCSgweDY0KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfRk9EX0NUUkwJCQkoMHg2 NSkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0NIR19DVFJMMjAJCQkoMHg2NikKPiArI2RlZmluZSBN VDYzNjBfUE1VX0NIR19ISURERU5fQ1RSTDI2CQkoMHg2NykKPiArI2RlZmluZSBNVDYzNjBfUE1V X0NIR19ISURERU5fQ1RSTDI3CQkoMHg2OCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX1JFU1YyCQkJ KDB4NjkpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9VU0JJRF9DVFJMMQkJCSgweDZEKQo+ICsjZGVm aW5lIE1UNjM2MF9QTVVfVVNCSURfQ1RSTDIJCQkoMHg2RSkKPiArI2RlZmluZSBNVDYzNjBfUE1V X1VTQklEX0NUUkwzCQkJKDB4NkYpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9GTEVEX0NGRwkJCSgw eDcwKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfUkVTVjMJCQkoMHg3MSkKPiArI2RlZmluZSBNVDYz NjBfUE1VX0ZMRUQxX0NUUkwJCQkoMHg3MikKPiArI2RlZmluZSBNVDYzNjBfUE1VX0ZMRURfU1RS Ql9DVFJMCQkoMHg3MykKPiArI2RlZmluZSBNVDYzNjBfUE1VX0ZMRUQxX1NUUkJfQ1RSTDIJCSgw eDc0KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfRkxFRDFfVE9SX0NUUkwJCSgweDc1KQo+ICsjZGVm aW5lIE1UNjM2MF9QTVVfRkxFRDJfQ1RSTAkJCSgweDc2KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVf UkVTVjQJCQkoMHg3NykKPiArI2RlZmluZSBNVDYzNjBfUE1VX0ZMRUQyX1NUUkJfQ1RSTDIJCSgw eDc4KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfRkxFRDJfVE9SX0NUUkwJCSgweDc5KQo+ICsjZGVm aW5lIE1UNjM2MF9QTVVfRkxFRF9WTUlEVFJLX0NUUkwxCQkoMHg3QSkKPiArI2RlZmluZSBNVDYz NjBfUE1VX0ZMRURfVk1JRF9SVE0JCSgweDdCKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfRkxFRF9W TUlEVFJLX0NUUkwyCQkoMHg3QykKPiArI2RlZmluZSBNVDYzNjBfUE1VX0ZMRURfUFdTRUwJCQko MHg3RCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0ZMRURfRU4JCQkoMHg3RSkKPiArI2RlZmluZSBN VDYzNjBfUE1VX0ZMRURfSGlkZGVuMQkJCSgweDdGKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfUkdC X0VOCQkJKDB4ODApCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9SR0IxX0lTTksJCQkoMHg4MSkKPiAr I2RlZmluZSBNVDYzNjBfUE1VX1JHQjJfSVNOSwkJCSgweDgyKQo+ICsjZGVmaW5lIE1UNjM2MF9Q TVVfUkdCM19JU05LCQkJKDB4ODMpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9SR0JfTUxfSVNOSwkJ CSgweDg0KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfUkdCMV9ESU0JCQkoMHg4NSkKPiArI2RlZmlu ZSBNVDYzNjBfUE1VX1JHQjJfRElNCQkJKDB4ODYpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9SR0Iz X0RJTQkJCSgweDg3KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfUkVTVjUJCQkoMHg4OCkKPiArI2Rl ZmluZSBNVDYzNjBfUE1VX1JHQjEyX0ZyZXEJCQkoMHg4OSkKPiArI2RlZmluZSBNVDYzNjBfUE1V X1JHQjM0X0ZyZXEJCQkoMHg4QSkKPiArI2RlZmluZSBNVDYzNjBfUE1VX1JHQjFfVHIJCQkoMHg4 QikKPiArI2RlZmluZSBNVDYzNjBfUE1VX1JHQjFfVGYJCQkoMHg4QykKPiArI2RlZmluZSBNVDYz NjBfUE1VX1JHQjFfVE9OX1RPRkYJCSgweDhEKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfUkdCMl9U cgkJCSgweDhFKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfUkdCMl9UZgkJCSgweDhGKQo+ICsjZGVm aW5lIE1UNjM2MF9QTVVfUkdCMl9UT05fVE9GRgkJKDB4OTApCj4gKyNkZWZpbmUgTVQ2MzYwX1BN VV9SR0IzX1RyCQkJKDB4OTEpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9SR0IzX1RmCQkJKDB4OTIp Cj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9SR0IzX1RPTl9UT0ZGCQkoMHg5MykKPiArI2RlZmluZSBN VDYzNjBfUE1VX1JHQl9IaWRkZW5fQ1RSTDEJCSgweDk0KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVf UkdCX0hpZGRlbl9DVFJMMgkJKDB4OTUpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9SRVNWNgkJCSgw eDk3KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfU1BBUkUxCQkJKDB4OUEpCj4gKyNkZWZpbmUgTVQ2 MzYwX1BNVV9TUEFSRTIJCQkoMHhBMCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX1NQQVJFMwkJCSgw eEIwKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfU1BBUkU0CQkJKDB4QzApCj4gKyNkZWZpbmUgTVQ2 MzYwX1BNVV9DSEdfSVJRMQkJCSgweEQwKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX0lSUTIJ CQkoMHhEMSkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0NIR19JUlEzCQkJKDB4RDIpCj4gKyNkZWZp bmUgTVQ2MzYwX1BNVV9DSEdfSVJRNAkJCSgweEQzKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hH X0lSUTUJCQkoMHhENCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0NIR19JUlE2CQkJKDB4RDUpCj4g KyNkZWZpbmUgTVQ2MzYwX1BNVV9RQ19JUlEJCQkoMHhENikKPiArI2RlZmluZSBNVDYzNjBfUE1V X0ZPRF9JUlEJCQkoMHhENykKPiArI2RlZmluZSBNVDYzNjBfUE1VX0JBU0VfSVJRCQkJKDB4RDgp Cj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9GTEVEX0lSUTEJCQkoMHhEOSkKPiArI2RlZmluZSBNVDYz NjBfUE1VX0ZMRURfSVJRMgkJCSgweERBKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfUkdCX0lSUQkJ CSgweERCKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQlVDSzFfSVJRCQkJKDB4REMpCj4gKyNkZWZp bmUgTVQ2MzYwX1BNVV9CVUNLMl9JUlEJCQkoMHhERCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0xE T19JUlExCQkJKDB4REUpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9MRE9fSVJRMgkJCSgweERGKQo+ ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX1NUQVQxCQkJKDB4RTApCj4gKyNkZWZpbmUgTVQ2MzYw X1BNVV9DSEdfU1RBVDIJCQkoMHhFMSkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0NIR19TVEFUMwkJ CSgweEUyKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX1NUQVQ0CQkJKDB4RTMpCj4gKyNkZWZp bmUgTVQ2MzYwX1BNVV9DSEdfU1RBVDUJCQkoMHhFNCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0NI R19TVEFUNgkJCSgweEU1KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfUUNfU1RBVAkJCSgweEU2KQo+ ICsjZGVmaW5lIE1UNjM2MF9QTVVfRk9EX1NUQVQJCQkoMHhFNykKPiArI2RlZmluZSBNVDYzNjBf UE1VX0JBU0VfU1RBVAkJCSgweEU4KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfRkxFRF9TVEFUMQkJ CSgweEU5KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfRkxFRF9TVEFUMgkJCSgweEVBKQo+ICsjZGVm aW5lIE1UNjM2MF9QTVVfUkdCX1NUQVQJCQkoMHhFQikKPiArI2RlZmluZSBNVDYzNjBfUE1VX0JV Q0sxX1NUQVQJCQkoMHhFQykKPiArI2RlZmluZSBNVDYzNjBfUE1VX0JVQ0syX1NUQVQJCQkoMHhF RCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0xET19TVEFUMQkJCSgweEVFKQo+ICsjZGVmaW5lIE1U NjM2MF9QTVVfTERPX1NUQVQyCQkJKDB4RUYpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9DSEdfTUFT SzEJCQkoMHhGMCkKPiArI2RlZmluZSBNVDYzNjBfUE1VX0NIR19NQVNLMgkJCSgweEYxKQo+ICsj ZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX01BU0szCQkJKDB4RjIpCj4gKyNkZWZpbmUgTVQ2MzYwX1BN VV9DSEdfTUFTSzQJCQkoMHhGMykKPiArI2RlZmluZSBNVDYzNjBfUE1VX0NIR19NQVNLNQkJCSgw eEY0KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQ0hHX01BU0s2CQkJKDB4RjUpCj4gKyNkZWZpbmUg TVQ2MzYwX1BNVV9RQ19NQVNLCQkJKDB4RjYpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9GT0RfTUFT SwkJCSgweEY3KQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQkFTRV9NQVNLCQkJKDB4RjgpCj4gKyNk ZWZpbmUgTVQ2MzYwX1BNVV9GTEVEX01BU0sxCQkJKDB4RjkpCj4gKyNkZWZpbmUgTVQ2MzYwX1BN VV9GTEVEX01BU0syCQkJKDB4RkEpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9GQVVMVEJfTUFTSwkJ CSgweEZCKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVfQlVDSzFfTUFTSwkJCSgweEZDKQo+ICsjZGVm aW5lIE1UNjM2MF9QTVVfQlVDSzJfTUFTSwkJCSgweEZEKQo+ICsjZGVmaW5lIE1UNjM2MF9QTVVf TERPX01BU0sxCQkJKDB4RkUpCj4gKyNkZWZpbmUgTVQ2MzYwX1BNVV9MRE9fTUFTSzIJCQkoMHhG RikKPiArI2RlZmluZSBNVDYzNjBfUE1VX01BWFJFRwkJCShNVDYzNjBfUE1VX0xET19NQVNLMikK PiArCj4gKwo+ICsvKiBNVDYzNjBfUE1VX0lSUV9TRVQgKi8KPiArI2RlZmluZSBNVDYzNjBfUE1V X0lSUV9SRUdOVU0JKE1UNjM2MF9QTVVfTERPX0lSUTIgLSBNVDYzNjBfUE1VX0NIR19JUlExICsg MSkKPiArI2RlZmluZSBNVDYzNjBfSVJRX1JFVFJJRwlCSVQoMikKPiArCj4gKyNkZWZpbmUgQ0hJ UF9WRU5fTUFTSwkJCQkoMHhGMCkKPiArI2RlZmluZSBDSElQX1ZFTl9NVDYzNjAJCQkJKDB4NTAp Cj4gKyNkZWZpbmUgQ0hJUF9SRVZfTUFTSwkJCQkoMHgwRikKPiArCj4gKy8qIElSUSBkZWZpbml0 aW9ucyAqLwoKUmVtb3ZlIHRoaXMgcGxlYXNlLgoKPiArc3RydWN0IG10NjM2MF9wbXVfaXJxX2Rl c2Mgewo+ICsJY29uc3QgY2hhciAqbmFtZTsKPiArCWlycV9oYW5kbGVyX3QgaXJxX2hhbmRsZXI7 Cj4gK307CgpXaGVyZSBpcyB0aGlzIHVzZWQ/Cgo+ICsjZGVmaW5lICBNVDYzNjBfRFRfVkFMUFJP UChuYW1lLCB0eXBlKSBcCj4gKwkJCXsjbmFtZSwgb2Zmc2V0b2YodHlwZSwgbmFtZSl9CgpXaGVy ZSBpcyB0aGlzIHVzZWQ/Cgo+ICtzdHJ1Y3QgbXQ2MzYwX3ZhbF9wcm9wIHsKPiArCWNvbnN0IGNo YXIgKm5hbWU7Cj4gKwlzaXplX3Qgb2Zmc2V0Owo+ICt9Owo+ICsKPiArc3RhdGljIGlubGluZSB2 b2lkIG10NjM2MF9kdF9wYXJzZXJfaGVscGVyKHN0cnVjdCBkZXZpY2Vfbm9kZSAqbnAsIHZvaWQg KmRhdGEsCj4gKwkJCQkJICAgY29uc3Qgc3RydWN0IG10NjM2MF92YWxfcHJvcCAqcHJvcHMsCj4g KwkJCQkJICAgaW50IHByb3BfY250KQo+ICt7Cj4gKwlpbnQgaTsKPiArCj4gKwlmb3IgKGkgPSAw OyBpIDwgcHJvcF9jbnQ7IGkrKykgewo+ICsJCWlmICh1bmxpa2VseSghcHJvcHNbaV0ubmFtZSkp Cj4gKwkJCWNvbnRpbnVlOwo+ICsJCW9mX3Byb3BlcnR5X3JlYWRfdTMyKG5wLCBwcm9wc1tpXS5u YW1lLCBkYXRhICsgcHJvcHNbaV0ub2Zmc2V0KTsKPiArCX0KPiArfQoKV2hhdCBhcmUgeW91IHVz aW5nIHRoaXMgZm9yPyAgV2h5IGlzIHRoZSBzdGFuZGFyZCBBUEkgbm90IHN1ZmZpY2llbnQ/Cgo+ ICsjZGVmaW5lIE1UNjM2MF9QREFUQV9WQUxQUk9QKG5hbWUsIHR5cGUsIHJlZywgc2hpZnQsIG1h c2ssIGZ1bmMsIGJhc2UpIFwKPiArCQkJe29mZnNldG9mKHR5cGUsIG5hbWUpLCByZWcsIHNoaWZ0 LCBtYXNrLCBmdW5jLCBiYXNlfQoKV2hlcmUgaXMgdGhpcyB1c2VkPwoKPiArc3RydWN0IG10NjM2 MF9wZGF0YV9wcm9wIHsKPiArCXNpemVfdCBvZmZzZXQ7Cj4gKwl1OCByZWc7Cj4gKwl1OCBzaGlm dDsKPiArCXU4IG1hc2s7Cj4gKwl1MzIgKCp0cmFuc2Zvcm0pKHUzMiB2YWwpOwo+ICsJdTggYmFz ZTsKPiArfTsKPiArCj4gK3N0YXRpYyBpbmxpbmUgaW50IG10NjM2MF9wZGF0YV9hcHBseV9oZWxw ZXIodm9pZCAqY29udGV4dCwgdm9pZCAqcGRhdGEsCj4gKwkJCQkJICAgY29uc3Qgc3RydWN0IG10 NjM2MF9wZGF0YV9wcm9wICpwcm9wLAo+ICsJCQkJCSAgIGludCBwcm9wX2NudCkKPiArewo+ICsJ aW50IGksIHJldDsKPiArCXUzMiB2YWw7Cj4gKwo+ICsJZm9yIChpID0gMDsgaSA8IHByb3BfY250 OyBpKyspIHsKPiArCQl2YWwgPSAqKHUzMiAqKShwZGF0YSArIHByb3BbaV0ub2Zmc2V0KTsKPiAr CQlpZiAocHJvcFtpXS50cmFuc2Zvcm0pCj4gKwkJCXZhbCA9IHByb3BbaV0udHJhbnNmb3JtKHZh bCk7Cj4gKwkJdmFsICs9IHByb3BbaV0uYmFzZTsKPiArCQlyZXQgPSByZWdtYXBfdXBkYXRlX2Jp dHMoY29udGV4dCwKPiArCQkJICAgICBwcm9wW2ldLnJlZywgcHJvcFtpXS5tYXNrLCB2YWwgPDwg cHJvcFtpXS5zaGlmdCk7Cj4gKwkJaWYgKHJldCA8IDApCj4gKwkJCXJldHVybiByZXQ7Cj4gKwl9 Cj4gKwlyZXR1cm4gMDsKPiArfQoKV2hlcmUgaXMgdGhpcyB1c2VkPyAgV2hhdCBkb2VzIGl0IGRv PwoKPiArI2VuZGlmIC8qIF9fTVQ2MzYwX1BSSVZBVEVfSF9fICovCj4gZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvbGludXgvbWZkL210NjM2MC5oIGIvaW5jbHVkZS9saW51eC9tZmQvbXQ2MzYwLmgKPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IDAwMDAwMDAuLmJhMmU4MGEKPiAtLS0gL2Rldi9u dWxsCj4gKysrIGIvaW5jbHVkZS9saW51eC9tZmQvbXQ2MzYwLmgKPiBAQCAtMCwwICsxLDMzIEBA Cj4gKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wICovCj4gKy8qCj4gKyAqIENv cHlyaWdodCAoYykgMjAxOSBNZWRpYVRlayBJbmMuCj4gKyAqLwo+ICsKPiArI2lmbmRlZiBfX01U NjM2MF9IX18KPiArI2RlZmluZSBfX01UNjM2MF9IX18KPiArCj4gKyNpbmNsdWRlIDxsaW51eC9y ZWdtYXAuaD4KPiArCj4gK2VudW0gewo+ICsJTVQ2MzYwX1NMQVZFX1BNVSA9IDAsCj4gKwlNVDYz NjBfU0xBVkVfUE1JQywKPiArCU1UNjM2MF9TTEFWRV9MRE8sCj4gKwlNVDYzNjBfU0xBVkVfVENQ QywKPiArCU1UNjM2MF9TTEFWRV9NQVgsCj4gK307Cj4gKwo+ICsjZGVmaW5lIE1UNjM2MF9QTVVf U0xBVkVJRAkoMHgzNCkKPiArI2RlZmluZSBNVDYzNjBfUE1JQ19TTEFWRUlECSgweDFBKQo+ICsj ZGVmaW5lIE1UNjM2MF9MRE9fU0xBVkVJRAkoMHg2NCkKPiArI2RlZmluZSBNVDYzNjBfVENQQ19T TEFWRUlECSgweDRFKQoKV2hhdCBraW5kIG9mIHNsYXZlIElEPyAgSTJDIGFkZHJlc3M/Cgo+ICtz dHJ1Y3QgbXQ2MzYwX3BtdV9pbmZvIHsKPiArCXN0cnVjdCBpMmNfY2xpZW50ICppMmNbTVQ2MzYw X1NMQVZFX01BWF07Cj4gKwlzdHJ1Y3QgZGV2aWNlICpkZXY7Cgo+ICsJc3RydWN0IHJlZ21hcCAq cmVnbWFwOwo+ICsJc3RydWN0IHJlZ21hcF9pcnFfY2hpcF9kYXRhICppcnFfZGF0YTsKPiArCXN0 cnVjdCByZWdtYXBfaXJxX2NoaXAgaXJxX2NoaXA7Cj4gKwl1bnNpZ25lZCBpbnQgY2hpcF9yZXY7 CgpXaHkgYXJlIHlvdSBzYXZpbmcgdGhlc2U/CgpXaGVyZSBkbyB5b3UgcmV1c2UgdGhlbT8KCj4g K307Cj4gKwo+ICsjZW5kaWYgLyogX19NVDYzNjBfSF9fICovCgotLSAKTGVlIEpvbmVzIFvmnY7n kLzmlq9dCkxpbmFybyBTZXJ2aWNlcyBUZWNobmljYWwgTGVhZApMaW5hcm8ub3JnIOKUgiBPcGVu IHNvdXJjZSBzb2Z0d2FyZSBmb3IgQVJNIFNvQ3MKRm9sbG93IExpbmFybzogRmFjZWJvb2sgfCBU d2l0dGVyIHwgQmxvZwoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0 cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGlu Zm8vbGludXgtYXJtLWtlcm5lbAo=