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=-13.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,USER_AGENT_GIT 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 ADC09C433E9 for ; Mon, 15 Mar 2021 12:00:31 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (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 C844B64DD7 for ; Mon, 15 Mar 2021 12:00:30 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C844B64DD7 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=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-Id:Date: Subject:To:From:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=vaN5KV/vBhPRqY9AqZ84yuBxCpkl2vSnOcntvciM77Y=; b=l+8zJhHF+AuTIhdpc5iqrlnNI L6VVilfcX0HxO2j0sRuhY61te9tmn3w86ipck4AKF+Xlj9uO8t5onbnztyvJTOWSRRhzTCdtYlpas 1bdhaPmrmuvLjnAPWnFL6Plr9jQBhQUcvTJGr8fuiayWB1PPCionoi6RXbl8IQAhqWToC+0GBMWQ4 EqDcaxgVv4vKAObCJEdGRzRhLsmkxL5QBR+1s5Q+QlN75CDZ5cZFYQAfNQxxktBe+Wr4DPlxlJMKW Hq7yvtAByHc4G297QcdRuFwf8hjULi/3/Lklkp3yiGuYjG8Rc5S5QlWqqi8DdV+Wk5OaAXgNHXGrU S9Xvq0KJg==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lLlom-00Fj1S-2h; Mon, 15 Mar 2021 11:55:29 +0000 Received: from mail-wm1-x331.google.com ([2a00:1450:4864:20::331]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lLlcE-00Fgu5-Qz for linux-arm-kernel@lists.infradead.org; Mon, 15 Mar 2021 11:43:03 +0000 Received: by mail-wm1-x331.google.com with SMTP id d139-20020a1c1d910000b029010b895cb6f2so19241284wmd.5 for ; Mon, 15 Mar 2021 04:42:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=DsYOoTGrCGsWGikinYM0EG70X/f2vOR/RMz8iuKcrmI=; b=mevoouUtLKG829pgkVByj/dOjWKBisgE+7XPdUwo8SDuZ7dh87maIG8djPhphLpnZ+ gp5IjXMK0BtSPjg5vtx+z5HIvN+/cicET6aimneBidtu0qx2D0Az8LRDsprPzeKURC7S +sgpwi0peCTmX6ozYQtiJrCXkJP8pA4m/6UcLbozqNTA8ErBu2uzte9jRHJFH/qFBphl pbov9J9765sZ/y2vb4sL1HfxnpH/11e5QXyy0EtGBxcPAskq5MP5v/cBf590pT0AdKk2 rTGbXeeUsIYLcgUFVcZY68zgqilIZMDhxfyq/0VBBXl2net69QvtnteP74MEF6GmABNz keVw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DsYOoTGrCGsWGikinYM0EG70X/f2vOR/RMz8iuKcrmI=; b=Ye2ysGaOViF1Hk6hRiJew6fDDrrDkJf2Bd23OJ8yefGG7lDOQd4JlsfNDSqctTkx8q KgFAW88rZUTi3YSv9z/2AMzMC4YBK6hAreRb8cFgPdOkN+9PTv1Ga7OcjPvUlcQ46WRa HGKHnfneVftN6U8KRsnZEYDaLjL37KEI7uuzIkZ02cMux0qDB+cq6DHHSmSJzY0OtInT VXoP4oW6+ispo33/m6fHmlRy3Wc2GtOYw3dsbnWsvWJU8kZQm77JZnIVW3/ugwVEJKr6 mHxQ/AtnTQUhT/avY4f3jgJwl3cy6Sz26Whv0yNMyhh+9dUUM8MwZL5SNrOxEHQ3pSmb NUAA== X-Gm-Message-State: AOAM533px72YiXVlkjGD5uZC5hCS4CnE15/Nq+/gFw6/XFNIjf0SwM22 NWuZgM/IF9/oDPbO1QJjW8hq7oflB/Mg+A== X-Google-Smtp-Source: ABdhPJwWWDda+iP/13Nh9MvQMNLvauCyzJuaL0/15PG5itBOa6fkNBPe1iZU+FpnOvSe6PaOWUesSw== X-Received: by 2002:a1c:e244:: with SMTP id z65mr25629656wmg.130.1615808550031; Mon, 15 Mar 2021 04:42:30 -0700 (PDT) Received: from skynet.lan ([80.31.204.166]) by smtp.gmail.com with ESMTPSA id v189sm12648187wme.39.2021.03.15.04.42.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 15 Mar 2021 04:42:29 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Lee Jones , Michael Walle , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Jonas Gorski , Necip Fazil Yildiran , Andy Shevchenko , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH v7 13/22] pinctrl: add a pincontrol driver for BCM6362 Date: Mon, 15 Mar 2021 12:42:05 +0100 Message-Id: <20210315114214.3096-14-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210315114214.3096-1-noltari@gmail.com> References: <20210315114214.3096-1-noltari@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210315_114257_407331_BF4966DC X-CRM114-Status: GOOD ( 19.00 ) 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 QWRkIGEgcGluY290cm9sIGRyaXZlciBmb3IgQkNNNjM2Mi4gQkNNNjM2MiBhbGxvd3MgbXV4aW5n IGluZGl2aWR1YWwKR1BJTyBwaW5zIHRvIHRoZSBMRUQgY29udHJvbGxlciwgdG8gYmUgYXZhaWxh YmxlIGJ5IHRoZSBpbnRlZ3JhdGVkCndpZmksIG9yIG90aGVyIGZ1bmN0aW9ucy4gSXQgYWxzbyBz dXBwb3J0cyBvdmVybGF5IGdyb3Vwcywgb2Ygd2hpY2gKb25seSBOQU5EIGlzIGRvY3VtZW50ZWQu CgpDby1kZXZlbG9wZWQtYnk6IEpvbmFzIEdvcnNraSA8am9uYXMuZ29yc2tpQGdtYWlsLmNvbT4K U2lnbmVkLW9mZi1ieTogSm9uYXMgR29yc2tpIDxqb25hcy5nb3Jza2lAZ21haWwuY29tPgpTaWdu ZWQtb2ZmLWJ5OiDDgWx2YXJvIEZlcm7DoW5kZXogUm9qYXMgPG5vbHRhcmlAZ21haWwuY29tPgot LS0KIHY3OiBubyBjaGFuZ2VzCiB2Njogbm8gY2hhbmdlcwogdjU6IGFkZCBjaGFuZ2VzIHN1Z2dl c3RlZCBieSBBbmR5IFNoZXZjaGVua28KIHY0OiBubyBjaGFuZ2VzCiB2MzogdXNlIG5ldyBzaGFy ZWQgY29kZQogdjI6IHN3aXRjaCB0byBHUElPX1JFR01BUAoKIGRyaXZlcnMvcGluY3RybC9iY20v S2NvbmZpZyAgICAgICAgICAgfCAgIDggKwogZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZSAg ICAgICAgICB8ICAgMSArCiBkcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjM2Mi5jIHwg NjE3ICsrKysrKysrKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDYyNiBpbnNl cnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJs LWJjbTYzNjIuYwoKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9iY20vS2NvbmZpZyBiL2Ry aXZlcnMvcGluY3RybC9iY20vS2NvbmZpZwppbmRleCBjZWQ3Y2M2YWI0NGYuLmQzMTAxZDVlNzUw ZiAxMDA2NDQKLS0tIGEvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnCisrKyBiL2RyaXZlcnMv cGluY3RybC9iY20vS2NvbmZpZwpAQCAtNTIsNiArNTIsMTQgQEAgY29uZmlnIFBJTkNUUkxfQkNN NjM1OAogCWhlbHAKIAkgICBTYXkgWSBoZXJlIHRvIGVuYWJsZSB0aGUgQnJvYWRjb20gQkNNNjM1 OCBHUElPIGRyaXZlci4KIAorY29uZmlnIFBJTkNUUkxfQkNNNjM2MgorCWJvb2wgIkJyb2FkY29t IEJDTTYzNjIgR1BJTyBkcml2ZXIiCisJZGVwZW5kcyBvbiAoQk1JUFNfR0VORVJJQyB8fCBDT01Q SUxFX1RFU1QpCisJc2VsZWN0IFBJTkNUUkxfQkNNNjNYWAorCWRlZmF1bHQgQk1JUFNfR0VORVJJ QworCWhlbHAKKwkgICBTYXkgWSBoZXJlIHRvIGVuYWJsZSB0aGUgQnJvYWRjb20gQkNNNjM2MiBH UElPIGRyaXZlci4KKwogY29uZmlnIFBJTkNUUkxfSVBST0NfR1BJTwogCWJvb2wgIkJyb2FkY29t IGlQcm9jIEdQSU8gKHdpdGggUElOQ09ORikgZHJpdmVyIgogCWRlcGVuZHMgb24gT0ZfR1BJTyAm JiAoQVJDSF9CQ01fSVBST0MgfHwgQ09NUElMRV9URVNUKQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9w aW5jdHJsL2JjbS9NYWtlZmlsZSBiL2RyaXZlcnMvcGluY3RybC9iY20vTWFrZWZpbGUKaW5kZXgg YzNmNWI3YjJmMmYwLi5iOWIwOWU1YjkxNGMgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9i Y20vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZQpAQCAtNiw2ICs2 LDcgQEAgb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNMjgzNSkJCSs9IHBpbmN0cmwtYmNtMjgzNS5v CiBvYmotJChDT05GSUdfUElOQ1RSTF9CQ002M1hYKQkJKz0gcGluY3RybC1iY202M3h4Lm8KIG9i ai0kKENPTkZJR19QSU5DVFJMX0JDTTYzMjgpCQkrPSBwaW5jdHJsLWJjbTYzMjgubwogb2JqLSQo Q09ORklHX1BJTkNUUkxfQkNNNjM1OCkJCSs9IHBpbmN0cmwtYmNtNjM1OC5vCitvYmotJChDT05G SUdfUElOQ1RSTF9CQ002MzYyKQkJKz0gcGluY3RybC1iY202MzYyLm8KIG9iai0kKENPTkZJR19Q SU5DVFJMX0lQUk9DX0dQSU8pCSs9IHBpbmN0cmwtaXByb2MtZ3Bpby5vCiBvYmotJChDT05GSUdf UElOQ1RSTF9DWUdOVVNfTVVYKQkrPSBwaW5jdHJsLWN5Z251cy1tdXgubwogb2JqLSQoQ09ORklH X1BJTkNUUkxfTlMpCQkrPSBwaW5jdHJsLW5zLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3Ry bC9iY20vcGluY3RybC1iY202MzYyLmMgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNt NjM2Mi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uZWI3ZWM4MDM1 M2U5Ci0tLSAvZGV2L251bGwKKysrIGIvZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYz NjIuYwpAQCAtMCwwICsxLDYxNyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0y LjArCisvKgorICogRHJpdmVyIGZvciBCQ002MzYyIEdQSU8gdW5pdCAocGluY3RybCArIEdQSU8p CisgKgorICogQ29weXJpZ2h0IChDKSAyMDIxIMOBbHZhcm8gRmVybsOhbmRleiBSb2phcyA8bm9s dGFyaUBnbWFpbC5jb20+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSm9uYXMgR29yc2tpIDxqb25h cy5nb3Jza2lAZ21haWwuY29tPgorICovCisKKyNpbmNsdWRlIDxsaW51eC9iaXRzLmg+CisjaW5j bHVkZSA8bGludXgvZ3Bpby9kcml2ZXIuaD4KKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KKyNp bmNsdWRlIDxsaW51eC9vZi5oPgorI2luY2x1ZGUgPGxpbnV4L3BpbmN0cmwvcGlubXV4Lmg+Cisj aW5jbHVkZSA8bGludXgvcGxhdGZvcm1fZGV2aWNlLmg+CisjaW5jbHVkZSA8bGludXgvcmVnbWFw Lmg+CisKKyNpbmNsdWRlICIuLi9waW5jdHJsLXV0aWxzLmgiCisKKyNpbmNsdWRlICJwaW5jdHJs LWJjbTYzeHguaCIKKworI2RlZmluZSBCQ002MzYyX0JBTktfR1BJT1MJMzIKKyNkZWZpbmUgQkNN NjM2Ml9OVU1fR1BJT1MJNDgKKyNkZWZpbmUgQkNNNjM2Ml9OVU1fTEVEUwkyNAorCisjZGVmaW5l IEJDTTYzNjJfTEVEX1JFRwkJMHgxMAorI2RlZmluZSBCQ002MzYyX01PREVfUkVHCTB4MTgKKyNk ZWZpbmUgQkNNNjM2Ml9DVFJMX1JFRwkweDFjCisjZGVmaW5lIEJDTTYzNjJfQkFTRU1PREVfUkVH CTB4MzgKKyNkZWZpbmUgIEJBU0VNT0RFX05BTkQJCUJJVCgyKQorCitlbnVtIGJjbTYzNjJfcGlu Y3RybF9yZWcgeworCUJDTTYzNjJfTEVEQ1RSTCwKKwlCQ002MzYyX01PREUsCisJQkNNNjM2Ml9D VFJMLAorCUJDTTYzNjJfQkFTRU1PREUsCit9OworCitzdHJ1Y3QgYmNtNjM2Ml9waW5ncm91cCB7 CisJY29uc3QgY2hhciAqbmFtZTsKKwljb25zdCB1bnNpZ25lZCAqIGNvbnN0IHBpbnM7CisJY29u c3QgdW5zaWduZWQgbnVtX3BpbnM7Cit9OworCitzdHJ1Y3QgYmNtNjM2Ml9mdW5jdGlvbiB7CisJ Y29uc3QgY2hhciAqbmFtZTsKKwljb25zdCBjaGFyICogY29uc3QgKmdyb3VwczsKKwljb25zdCB1 bnNpZ25lZCBudW1fZ3JvdXBzOworCisJZW51bSBiY202MzYyX3BpbmN0cmxfcmVnIHJlZzsKKwl1 aW50MzJfdCBiYXNlbW9kZV9tYXNrOworfTsKKworI2RlZmluZSBCQ002MzYyX1BJTihhLCBiLCBt YXNrKQkJCVwKKwl7CQkJCQlcCisJCS5udW1iZXIgPSBhLAkJCVwKKwkJLm5hbWUgPSBiLAkJCVwK KwkJLmRydl9kYXRhID0gKHZvaWQgKikobWFzayksCVwKKwl9CisKK3N0YXRpYyBjb25zdCBzdHJ1 Y3QgcGluY3RybF9waW5fZGVzYyBiY202MzYyX3BpbnNbXSA9IHsKKwlQSU5DVFJMX1BJTigwLCAi Z3BpbzAiKSwKKwlQSU5DVFJMX1BJTigxLCAiZ3BpbzEiKSwKKwlQSU5DVFJMX1BJTigyLCAiZ3Bp bzIiKSwKKwlQSU5DVFJMX1BJTigzLCAiZ3BpbzMiKSwKKwlQSU5DVFJMX1BJTig0LCAiZ3BpbzQi KSwKKwlQSU5DVFJMX1BJTig1LCAiZ3BpbzUiKSwKKwlQSU5DVFJMX1BJTig2LCAiZ3BpbzYiKSwK KwlQSU5DVFJMX1BJTig3LCAiZ3BpbzciKSwKKwlCQ002MzYyX1BJTig4LCAiZ3BpbzgiLCBCQVNF TU9ERV9OQU5EKSwKKwlQSU5DVFJMX1BJTig5LCAiZ3BpbzkiKSwKKwlQSU5DVFJMX1BJTigxMCwg ImdwaW8xMCIpLAorCVBJTkNUUkxfUElOKDExLCAiZ3BpbzExIiksCisJQkNNNjM2Ml9QSU4oMTIs ICJncGlvMTIiLCBCQVNFTU9ERV9OQU5EKSwKKwlCQ002MzYyX1BJTigxMywgImdwaW8xMyIsIEJB U0VNT0RFX05BTkQpLAorCUJDTTYzNjJfUElOKDE0LCAiZ3BpbzE0IiwgQkFTRU1PREVfTkFORCks CisJQkNNNjM2Ml9QSU4oMTUsICJncGlvMTUiLCBCQVNFTU9ERV9OQU5EKSwKKwlCQ002MzYyX1BJ TigxNiwgImdwaW8xNiIsIEJBU0VNT0RFX05BTkQpLAorCUJDTTYzNjJfUElOKDE3LCAiZ3BpbzE3 IiwgQkFTRU1PREVfTkFORCksCisJQkNNNjM2Ml9QSU4oMTgsICJncGlvMTgiLCBCQVNFTU9ERV9O QU5EKSwKKwlCQ002MzYyX1BJTigxOSwgImdwaW8xOSIsIEJBU0VNT0RFX05BTkQpLAorCUJDTTYz NjJfUElOKDIwLCAiZ3BpbzIwIiwgQkFTRU1PREVfTkFORCksCisJQkNNNjM2Ml9QSU4oMjEsICJn cGlvMjEiLCBCQVNFTU9ERV9OQU5EKSwKKwlCQ002MzYyX1BJTigyMiwgImdwaW8yMiIsIEJBU0VN T0RFX05BTkQpLAorCUJDTTYzNjJfUElOKDIzLCAiZ3BpbzIzIiwgQkFTRU1PREVfTkFORCksCisJ UElOQ1RSTF9QSU4oMjQsICJncGlvMjQiKSwKKwlQSU5DVFJMX1BJTigyNSwgImdwaW8yNSIpLAor CVBJTkNUUkxfUElOKDI2LCAiZ3BpbzI2IiksCisJQkNNNjM2Ml9QSU4oMjcsICJncGlvMjciLCBC QVNFTU9ERV9OQU5EKSwKKwlQSU5DVFJMX1BJTigyOCwgImdwaW8yOCIpLAorCVBJTkNUUkxfUElO KDI5LCAiZ3BpbzI5IiksCisJUElOQ1RSTF9QSU4oMzAsICJncGlvMzAiKSwKKwlQSU5DVFJMX1BJ TigzMSwgImdwaW8zMSIpLAorCVBJTkNUUkxfUElOKDMyLCAiZ3BpbzMyIiksCisJUElOQ1RSTF9Q SU4oMzMsICJncGlvMzMiKSwKKwlQSU5DVFJMX1BJTigzNCwgImdwaW8zNCIpLAorCVBJTkNUUkxf UElOKDM1LCAiZ3BpbzM1IiksCisJUElOQ1RSTF9QSU4oMzYsICJncGlvMzYiKSwKKwlQSU5DVFJM X1BJTigzNywgImdwaW8zNyIpLAorCVBJTkNUUkxfUElOKDM4LCAiZ3BpbzM4IiksCisJUElOQ1RS TF9QSU4oMzksICJncGlvMzkiKSwKKwlQSU5DVFJMX1BJTig0MCwgImdwaW80MCIpLAorCVBJTkNU UkxfUElOKDQxLCAiZ3BpbzQxIiksCisJUElOQ1RSTF9QSU4oNDIsICJncGlvNDIiKSwKKwlQSU5D VFJMX1BJTig0MywgImdwaW80MyIpLAorCVBJTkNUUkxfUElOKDQ0LCAiZ3BpbzQ0IiksCisJUElO Q1RSTF9QSU4oNDUsICJncGlvNDUiKSwKKwlQSU5DVFJMX1BJTig0NiwgImdwaW80NiIpLAorCVBJ TkNUUkxfUElOKDQ3LCAiZ3BpbzQ3IiksCit9OworCitzdGF0aWMgdW5zaWduZWQgZ3BpbzBfcGlu c1tdID0geyAwIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzFfcGluc1tdID0geyAxIH07CitzdGF0 aWMgdW5zaWduZWQgZ3BpbzJfcGluc1tdID0geyAyIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzNf cGluc1tdID0geyAzIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzRfcGluc1tdID0geyA0IH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzVfcGluc1tdID0geyA1IH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzZfcGluc1tdID0geyA2IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzdfcGluc1tdID0geyA3IH07 CitzdGF0aWMgdW5zaWduZWQgZ3BpbzhfcGluc1tdID0geyA4IH07CitzdGF0aWMgdW5zaWduZWQg Z3BpbzlfcGluc1tdID0geyA5IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzEwX3BpbnNbXSA9IHsg MTAgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTFfcGluc1tdID0geyAxMSB9Oworc3RhdGljIHVu c2lnbmVkIGdwaW8xMl9waW5zW10gPSB7IDEyIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzEzX3Bp bnNbXSA9IHsgMTMgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTRfcGluc1tdID0geyAxNCB9Owor c3RhdGljIHVuc2lnbmVkIGdwaW8xNV9waW5zW10gPSB7IDE1IH07CitzdGF0aWMgdW5zaWduZWQg Z3BpbzE2X3BpbnNbXSA9IHsgMTYgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTdfcGluc1tdID0g eyAxNyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xOF9waW5zW10gPSB7IDE4IH07CitzdGF0aWMg dW5zaWduZWQgZ3BpbzE5X3BpbnNbXSA9IHsgMTkgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjBf cGluc1tdID0geyAyMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yMV9waW5zW10gPSB7IDIxIH07 CitzdGF0aWMgdW5zaWduZWQgZ3BpbzIyX3BpbnNbXSA9IHsgMjIgfTsKK3N0YXRpYyB1bnNpZ25l ZCBncGlvMjNfcGluc1tdID0geyAyMyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNF9waW5zW10g PSB7IDI0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI1X3BpbnNbXSA9IHsgMjUgfTsKK3N0YXRp YyB1bnNpZ25lZCBncGlvMjZfcGluc1tdID0geyAyNiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8y N19waW5zW10gPSB7IDI3IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI4X3BpbnNbXSA9IHsgMjgg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjlfcGluc1tdID0geyAyOSB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8zMF9waW5zW10gPSB7IDMwIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMxX3BpbnNb XSA9IHsgMzEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzJfcGluc1tdID0geyAzMiB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8zM19waW5zW10gPSB7IDMzIH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzM0X3BpbnNbXSA9IHsgMzQgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzVfcGluc1tdID0geyAz NSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zNl9waW5zW10gPSB7IDM2IH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzM3X3BpbnNbXSA9IHsgMzcgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzhfcGlu c1tdID0geyAzOCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zOV9waW5zW10gPSB7IDM5IH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzQwX3BpbnNbXSA9IHsgNDAgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvNDFfcGluc1tdID0geyA0MSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80Ml9waW5zW10gPSB7 IDQyIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzQzX3BpbnNbXSA9IHsgNDMgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvNDRfcGluc1tdID0geyA0NCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80NV9w aW5zW10gPSB7IDQ1IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzQ2X3BpbnNbXSA9IHsgNDYgfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvNDdfcGluc1tdID0geyA0NyB9OworCitzdGF0aWMgdW5zaWdu ZWQgbmFuZF9ncnBfcGluc1tdID0geworCTgsIDEyLCAxMywgMTQsIDE1LCAxNiwgMTcsCisJMTgs IDE5LCAyMCwgMjEsIDIyLCAyMywgMjcsCit9OworCisjZGVmaW5lIEJDTTYzNjJfR1JPVVAobikJ CQkJXAorCXsJCQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJLnBpbnMgPSBuIyNfcGlucywJ CQlcCisJCS5udW1fcGlucyA9IEFSUkFZX1NJWkUobiMjX3BpbnMpLAlcCisJfQorCitzdGF0aWMg c3RydWN0IGJjbTYzNjJfcGluZ3JvdXAgYmNtNjM2Ml9ncm91cHNbXSA9IHsKKwlCQ002MzYyX0dS T1VQKGdwaW8wKSwKKwlCQ002MzYyX0dST1VQKGdwaW8xKSwKKwlCQ002MzYyX0dST1VQKGdwaW8y KSwKKwlCQ002MzYyX0dST1VQKGdwaW8zKSwKKwlCQ002MzYyX0dST1VQKGdwaW80KSwKKwlCQ002 MzYyX0dST1VQKGdwaW81KSwKKwlCQ002MzYyX0dST1VQKGdwaW82KSwKKwlCQ002MzYyX0dST1VQ KGdwaW83KSwKKwlCQ002MzYyX0dST1VQKGdwaW84KSwKKwlCQ002MzYyX0dST1VQKGdwaW85KSwK KwlCQ002MzYyX0dST1VQKGdwaW8xMCksCisJQkNNNjM2Ml9HUk9VUChncGlvMTEpLAorCUJDTTYz NjJfR1JPVVAoZ3BpbzEyKSwKKwlCQ002MzYyX0dST1VQKGdwaW8xMyksCisJQkNNNjM2Ml9HUk9V UChncGlvMTQpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzE1KSwKKwlCQ002MzYyX0dST1VQKGdwaW8x NiksCisJQkNNNjM2Ml9HUk9VUChncGlvMTcpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzE4KSwKKwlC Q002MzYyX0dST1VQKGdwaW8xOSksCisJQkNNNjM2Ml9HUk9VUChncGlvMjApLAorCUJDTTYzNjJf R1JPVVAoZ3BpbzIxKSwKKwlCQ002MzYyX0dST1VQKGdwaW8yMiksCisJQkNNNjM2Ml9HUk9VUChn cGlvMjMpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzI0KSwKKwlCQ002MzYyX0dST1VQKGdwaW8yNSks CisJQkNNNjM2Ml9HUk9VUChncGlvMjYpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzI3KSwKKwlCQ002 MzYyX0dST1VQKGdwaW8yOCksCisJQkNNNjM2Ml9HUk9VUChncGlvMjkpLAorCUJDTTYzNjJfR1JP VVAoZ3BpbzMwKSwKKwlCQ002MzYyX0dST1VQKGdwaW8zMSksCisJQkNNNjM2Ml9HUk9VUChncGlv MzIpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzMzKSwKKwlCQ002MzYyX0dST1VQKGdwaW8zNCksCisJ QkNNNjM2Ml9HUk9VUChncGlvMzUpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzM2KSwKKwlCQ002MzYy X0dST1VQKGdwaW8zNyksCisJQkNNNjM2Ml9HUk9VUChncGlvMzgpLAorCUJDTTYzNjJfR1JPVVAo Z3BpbzM5KSwKKwlCQ002MzYyX0dST1VQKGdwaW80MCksCisJQkNNNjM2Ml9HUk9VUChncGlvNDEp LAorCUJDTTYzNjJfR1JPVVAoZ3BpbzQyKSwKKwlCQ002MzYyX0dST1VQKGdwaW80MyksCisJQkNN NjM2Ml9HUk9VUChncGlvNDQpLAorCUJDTTYzNjJfR1JPVVAoZ3BpbzQ1KSwKKwlCQ002MzYyX0dS T1VQKGdwaW80NiksCisJQkNNNjM2Ml9HUk9VUChncGlvNDcpLAorCUJDTTYzNjJfR1JPVVAobmFu ZF9ncnApLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBsZWRfZ3JvdXBzW10gPSB7 CisJImdwaW8wIiwKKwkiZ3BpbzEiLAorCSJncGlvMiIsCisJImdwaW8zIiwKKwkiZ3BpbzQiLAor CSJncGlvNSIsCisJImdwaW82IiwKKwkiZ3BpbzciLAorCSJncGlvOCIsCisJImdwaW85IiwKKwki Z3BpbzEwIiwKKwkiZ3BpbzExIiwKKwkiZ3BpbzEyIiwKKwkiZ3BpbzEzIiwKKwkiZ3BpbzE0IiwK KwkiZ3BpbzE1IiwKKwkiZ3BpbzE2IiwKKwkiZ3BpbzE3IiwKKwkiZ3BpbzE4IiwKKwkiZ3BpbzE5 IiwKKwkiZ3BpbzIwIiwKKwkiZ3BpbzIxIiwKKwkiZ3BpbzIyIiwKKwkiZ3BpbzIzIiwKK307CisK K3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdXNiX2RldmljZV9sZWRfZ3JvdXBzW10gPSB7CisJ ImdwaW8wIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3lzX2lycV9ncm91cHNb XSA9IHsKKwkiZ3BpbzEiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBzZXJpYWxf bGVkX2Nsa19ncm91cHNbXSA9IHsKKwkiZ3BpbzIiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCBzZXJpYWxfbGVkX2RhdGFfZ3JvdXBzW10gPSB7CisJImdwaW8zIiwKK307CisKK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3Qgcm9ib3N3X2xlZF9kYXRhX2dyb3Vwc1tdID0geworCSJn cGlvNCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHJvYm9zd19sZWRfY2xrX2dy b3Vwc1tdID0geworCSJncGlvNSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHJv Ym9zd19sZWQwX2dyb3Vwc1tdID0geworCSJncGlvNiIsCit9OworCitzdGF0aWMgY29uc3QgY2hh ciAqIGNvbnN0IHJvYm9zd19sZWQxX2dyb3Vwc1tdID0geworCSJncGlvNyIsCit9OworCitzdGF0 aWMgY29uc3QgY2hhciAqIGNvbnN0IGluZXRfbGVkX2dyb3Vwc1tdID0geworCSJncGlvOCIsCit9 OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNwaV9jczJfZ3JvdXBzW10gPSB7CisJImdw aW85IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc3BpX2NzM19ncm91cHNbXSA9 IHsKKwkiZ3BpbzEwIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbnRyX3B1bHNl X2dyb3Vwc1tdID0geworCSJncGlvMTEiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCB1YXJ0MV9zY3RzX2dyb3Vwc1tdID0geworCSJncGlvMTIiLAorfTsKKworc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCB1YXJ0MV9zcnRzX2dyb3Vwc1tdID0geworCSJncGlvMTMiLAorfTsKKwor c3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0MV9zZGluX2dyb3Vwc1tdID0geworCSJncGlv MTQiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1YXJ0MV9zZG91dF9ncm91cHNb XSA9IHsKKwkiZ3BpbzE1IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgYWRzbF9z cGlfbWlzb19ncm91cHNbXSA9IHsKKwkiZ3BpbzE2IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFy ICogY29uc3QgYWRzbF9zcGlfbW9zaV9ncm91cHNbXSA9IHsKKwkiZ3BpbzE3IiwKK307CisKK3N0 YXRpYyBjb25zdCBjaGFyICogY29uc3QgYWRzbF9zcGlfY2xrX2dyb3Vwc1tdID0geworCSJncGlv MTgiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBhZHNsX3NwaV9jc19ncm91cHNb XSA9IHsKKwkiZ3BpbzE5IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBoeTBf bGVkX2dyb3Vwc1tdID0geworCSJncGlvMjAiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBj b25zdCBlcGh5MV9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8yMSIsCit9OworCitzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IGVwaHkyX2xlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzIyIiwKK307CisK K3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBoeTNfbGVkX2dyb3Vwc1tdID0geworCSJncGlv MjMiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBleHRfaXJxMF9ncm91cHNbXSA9 IHsKKwkiZ3BpbzI0IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXh0X2lycTFf Z3JvdXBzW10gPSB7CisJImdwaW8yNSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IGV4dF9pcnEyX2dyb3Vwc1tdID0geworCSJncGlvMjYiLAorfTsKKworc3RhdGljIGNvbnN0IGNo YXIgKiBjb25zdCBleHRfaXJxM19ncm91cHNbXSA9IHsKKwkiZ3BpbzI3IiwKK307CisKK3N0YXRp YyBjb25zdCBjaGFyICogY29uc3Qgd2lmaV9ncm91cHNbXSA9IHsKKwkiZ3BpbzMyIiwKKwkiZ3Bp bzMzIiwKKwkiZ3BpbzM0IiwKKwkiZ3BpbzM1IiwKKwkiZ3BpbzM2IiwKKwkiZ3BpbzM3IiwKKwki Z3BpbzM4IiwKKwkiZ3BpbzM5IiwKKwkiZ3BpbzQwIiwKKwkiZ3BpbzQxIiwKKwkiZ3BpbzQyIiwK KwkiZ3BpbzQzIiwKKwkiZ3BpbzQ0IiwKKwkiZ3BpbzQ1IiwKKwkiZ3BpbzQ2IiwKKwkiZ3BpbzQ3 IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgbmFuZF9ncm91cHNbXSA9IHsKKwki bmFuZF9ncnAiLAorfTsKKworI2RlZmluZSBCQ002MzYyX0xFRF9GVU4obikJCQkJXAorCXsJCQkJ CQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJLmdyb3VwcyA9IG4jI19ncm91cHMsCQkJXAorCQku bnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUobiMjX2dyb3VwcyksCVwKKwkJLnJlZyA9IEJDTTYzNjJf TEVEQ1RSTCwJCQlcCisJfQorCisjZGVmaW5lIEJDTTYzNjJfTU9ERV9GVU4obikJCQkJXAorCXsJ CQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJLmdyb3VwcyA9IG4jI19ncm91cHMsCQkJXAor CQkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUobiMjX2dyb3VwcyksCVwKKwkJLnJlZyA9IEJDTTYz NjJfTU9ERSwJCQlcCisJfQorCisjZGVmaW5lIEJDTTYzNjJfQ1RSTF9GVU4obikJCQkJXAorCXsJ CQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJLmdyb3VwcyA9IG4jI19ncm91cHMsCQkJXAor CQkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUobiMjX2dyb3VwcyksCVwKKwkJLnJlZyA9IEJDTTYz NjJfQ1RSTCwJCQlcCisJfQorCisjZGVmaW5lIEJDTTYzNjJfQkFTRU1PREVfRlVOKG4sIG1hc2sp CQkJXAorCXsJCQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJLmdyb3VwcyA9IG4jI19ncm91 cHMsCQkJXAorCQkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUobiMjX2dyb3VwcyksCVwKKwkJLnJl ZyA9IEJDTTYzNjJfQkFTRU1PREUsCQlcCisJCS5iYXNlbW9kZV9tYXNrID0gKG1hc2spLAkJXAor CX0KKworc3RhdGljIGNvbnN0IHN0cnVjdCBiY202MzYyX2Z1bmN0aW9uIGJjbTYzNjJfZnVuY3Nb XSA9IHsKKwlCQ002MzYyX0xFRF9GVU4obGVkKSwKKwlCQ002MzYyX01PREVfRlVOKHVzYl9kZXZp Y2VfbGVkKSwKKwlCQ002MzYyX01PREVfRlVOKHN5c19pcnEpLAorCUJDTTYzNjJfTU9ERV9GVU4o c2VyaWFsX2xlZF9jbGspLAorCUJDTTYzNjJfTU9ERV9GVU4oc2VyaWFsX2xlZF9kYXRhKSwKKwlC Q002MzYyX01PREVfRlVOKHJvYm9zd19sZWRfZGF0YSksCisJQkNNNjM2Ml9NT0RFX0ZVTihyb2Jv c3dfbGVkX2NsayksCisJQkNNNjM2Ml9NT0RFX0ZVTihyb2Jvc3dfbGVkMCksCisJQkNNNjM2Ml9N T0RFX0ZVTihyb2Jvc3dfbGVkMSksCisJQkNNNjM2Ml9NT0RFX0ZVTihpbmV0X2xlZCksCisJQkNN NjM2Ml9NT0RFX0ZVTihzcGlfY3MyKSwKKwlCQ002MzYyX01PREVfRlVOKHNwaV9jczMpLAorCUJD TTYzNjJfTU9ERV9GVU4obnRyX3B1bHNlKSwKKwlCQ002MzYyX01PREVfRlVOKHVhcnQxX3NjdHMp LAorCUJDTTYzNjJfTU9ERV9GVU4odWFydDFfc3J0cyksCisJQkNNNjM2Ml9NT0RFX0ZVTih1YXJ0 MV9zZGluKSwKKwlCQ002MzYyX01PREVfRlVOKHVhcnQxX3Nkb3V0KSwKKwlCQ002MzYyX01PREVf RlVOKGFkc2xfc3BpX21pc28pLAorCUJDTTYzNjJfTU9ERV9GVU4oYWRzbF9zcGlfbW9zaSksCisJ QkNNNjM2Ml9NT0RFX0ZVTihhZHNsX3NwaV9jbGspLAorCUJDTTYzNjJfTU9ERV9GVU4oYWRzbF9z cGlfY3MpLAorCUJDTTYzNjJfTU9ERV9GVU4oZXBoeTBfbGVkKSwKKwlCQ002MzYyX01PREVfRlVO KGVwaHkxX2xlZCksCisJQkNNNjM2Ml9NT0RFX0ZVTihlcGh5Ml9sZWQpLAorCUJDTTYzNjJfTU9E RV9GVU4oZXBoeTNfbGVkKSwKKwlCQ002MzYyX01PREVfRlVOKGV4dF9pcnEwKSwKKwlCQ002MzYy X01PREVfRlVOKGV4dF9pcnExKSwKKwlCQ002MzYyX01PREVfRlVOKGV4dF9pcnEyKSwKKwlCQ002 MzYyX01PREVfRlVOKGV4dF9pcnEzKSwKKwlCQ002MzYyX0NUUkxfRlVOKHdpZmkpLAorCUJDTTYz NjJfQkFTRU1PREVfRlVOKG5hbmQsIEJBU0VNT0RFX05BTkQpLAorfTsKKworc3RhdGljIGludCBi Y202MzYyX3BpbmN0cmxfZ2V0X2dyb3VwX2NvdW50KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRl dikKK3sKKwlyZXR1cm4gQVJSQVlfU0laRShiY202MzYyX2dyb3Vwcyk7Cit9CisKK3N0YXRpYyBj b25zdCBjaGFyICpiY202MzYyX3BpbmN0cmxfZ2V0X2dyb3VwX25hbWUoc3RydWN0IHBpbmN0cmxf ZGV2ICpwY3RsZGV2LAorCQkJCQkJICB1bnNpZ25lZCBncm91cCkKK3sKKwlyZXR1cm4gYmNtNjM2 Ml9ncm91cHNbZ3JvdXBdLm5hbWU7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjM2Ml9waW5jdHJsX2dl dF9ncm91cF9waW5zKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkJICB1bnNpZ25l ZCBncm91cCwgY29uc3QgdW5zaWduZWQgKipwaW5zLAorCQkJCQkgIHVuc2lnbmVkICpudW1fcGlu cykKK3sKKwkqcGlucyA9IGJjbTYzNjJfZ3JvdXBzW2dyb3VwXS5waW5zOworCSpudW1fcGlucyA9 IGJjbTYzNjJfZ3JvdXBzW2dyb3VwXS5udW1fcGluczsKKworCXJldHVybiAwOworfQorCitzdGF0 aWMgaW50IGJjbTYzNjJfcGluY3RybF9nZXRfZnVuY19jb3VudChzdHJ1Y3QgcGluY3RybF9kZXYg KnBjdGxkZXYpCit7CisJcmV0dXJuIEFSUkFZX1NJWkUoYmNtNjM2Ml9mdW5jcyk7Cit9CisKK3N0 YXRpYyBjb25zdCBjaGFyICpiY202MzYyX3BpbmN0cmxfZ2V0X2Z1bmNfbmFtZShzdHJ1Y3QgcGlu Y3RybF9kZXYgKnBjdGxkZXYsCisJCQkJCQkgdW5zaWduZWQgc2VsZWN0b3IpCit7CisJcmV0dXJu IGJjbTYzNjJfZnVuY3Nbc2VsZWN0b3JdLm5hbWU7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjM2Ml9w aW5jdHJsX2dldF9ncm91cHMoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCSAgICAg IHVuc2lnbmVkIHNlbGVjdG9yLAorCQkJCSAgICAgIGNvbnN0IGNoYXIgKiBjb25zdCAqKmdyb3Vw cywKKwkJCQkgICAgICB1bnNpZ25lZCAqIGNvbnN0IG51bV9ncm91cHMpCit7CisJKmdyb3VwcyA9 IGJjbTYzNjJfZnVuY3Nbc2VsZWN0b3JdLmdyb3VwczsKKwkqbnVtX2dyb3VwcyA9IGJjbTYzNjJf ZnVuY3Nbc2VsZWN0b3JdLm51bV9ncm91cHM7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIHZv aWQgYmNtNjM2Ml9zZXRfZ3BpbyhzdHJ1Y3QgYmNtNjN4eF9waW5jdHJsICpwYywgdW5zaWduZWQg cGluKQoreworCWNvbnN0IHN0cnVjdCBwaW5jdHJsX3Bpbl9kZXNjICpkZXNjID0gJmJjbTYzNjJf cGluc1twaW5dOworCXVuc2lnbmVkIGludCBtYXNrID0gYmNtNjN4eF9iYW5rX3BpbihwaW4pOwor CisJaWYgKGRlc2MtPmRydl9kYXRhKQorCQlyZWdtYXBfdXBkYXRlX2JpdHMocGMtPnJlZ3MsIEJD TTYzNjJfQkFTRU1PREVfUkVHLAorCQkJCSAgICh1aW50MzJfdCkgZGVzYy0+ZHJ2X2RhdGEsIDAp OworCisJaWYgKHBpbiA8IEJDTTYzWFhfQkFOS19HUElPUykgeworCQkvKiBiYXNlIG1vZGUgMCA9 PiBncGlvIDEgPT4gbXV4IGZ1bmN0aW9uICovCisJCXJlZ21hcF91cGRhdGVfYml0cyhwYy0+cmVn cywgQkNNNjM2Ml9NT0RFX1JFRywgbWFzaywgMCk7CisKKwkJLyogcGlucyAwLTIzIG1pZ2h0IGJl IG11eGVkIHRvIGxlZCAqLworCQlpZiAocGluIDwgQkNNNjM2Ml9OVU1fTEVEUykKKwkJCXJlZ21h cF91cGRhdGVfYml0cyhwYy0+cmVncywgQkNNNjM2Ml9MRURfUkVHLCBtYXNrLCAwKTsKKwl9IGVs c2UgeworCQkvKiBjdHJsIHJlZyAwID0+IHdpZmkgZnVuY3Rpb24gMSA9PiBncGlvICovCisJCXJl Z21hcF91cGRhdGVfYml0cyhwYy0+cmVncywgQkNNNjM2Ml9DVFJMX1JFRywgbWFzaywgbWFzayk7 CisJfQorfQorCitzdGF0aWMgaW50IGJjbTYzNjJfcGluY3RybF9zZXRfbXV4KHN0cnVjdCBwaW5j dHJsX2RldiAqcGN0bGRldiwKKwkJCQkgICB1bnNpZ25lZCBzZWxlY3RvciwgdW5zaWduZWQgZ3Jv dXApCit7CisJc3RydWN0IGJjbTYzeHhfcGluY3RybCAqcGMgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2 ZGF0YShwY3RsZGV2KTsKKwljb25zdCBzdHJ1Y3QgYmNtNjM2Ml9waW5ncm91cCAqcGcgPSAmYmNt NjM2Ml9ncm91cHNbZ3JvdXBdOworCWNvbnN0IHN0cnVjdCBiY202MzYyX2Z1bmN0aW9uICpmID0g JmJjbTYzNjJfZnVuY3Nbc2VsZWN0b3JdOworCXVuc2lnbmVkIGk7CisJdW5zaWduZWQgaW50IHJl ZzsKKwl1bnNpZ25lZCBpbnQgdmFsLCBtYXNrOworCisJZm9yIChpID0gMDsgaSA8IHBnLT5udW1f cGluczsgaSsrKQorCQliY202MzYyX3NldF9ncGlvKHBjLCBwZy0+cGluc1tpXSk7CisKKwlzd2l0 Y2ggKGYtPnJlZykgeworCWNhc2UgQkNNNjM2Ml9MRURDVFJMOgorCQlyZWcgPSBCQ002MzYyX0xF RF9SRUc7CisJCW1hc2sgPSBCSVQocGctPnBpbnNbMF0pOworCQl2YWwgPSBCSVQocGctPnBpbnNb MF0pOworCQlicmVhazsKKwljYXNlIEJDTTYzNjJfTU9ERToKKwkJcmVnID0gQkNNNjM2Ml9NT0RF X1JFRzsKKwkJbWFzayA9IEJJVChwZy0+cGluc1swXSk7CisJCXZhbCA9IEJJVChwZy0+cGluc1sw XSk7CisJCWJyZWFrOworCWNhc2UgQkNNNjM2Ml9DVFJMOgorCQlyZWcgPSBCQ002MzYyX0NUUkxf UkVHOworCQltYXNrID0gQklUKHBnLT5waW5zWzBdKTsKKwkJdmFsID0gMDsKKwkJYnJlYWs7CisJ Y2FzZSBCQ002MzYyX0JBU0VNT0RFOgorCQlyZWcgPSBCQ002MzYyX0JBU0VNT0RFX1JFRzsKKwkJ bWFzayA9IGYtPmJhc2Vtb2RlX21hc2s7CisJCXZhbCA9IGYtPmJhc2Vtb2RlX21hc2s7CisJCWJy ZWFrOworCWRlZmF1bHQ6CisJCVdBUk5fT04oMSk7CisJCXJldHVybiAtRUlOVkFMOworCX0KKwor CXJlZ21hcF91cGRhdGVfYml0cyhwYy0+cmVncywgcmVnLCBtYXNrLCB2YWwpOworCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjM2Ml9ncGlvX3JlcXVlc3RfZW5hYmxlKHN0cnVjdCBw aW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkgICAgICAgc3RydWN0IHBpbmN0cmxfZ3Bpb19yYW5n ZSAqcmFuZ2UsCisJCQkJICAgICAgIHVuc2lnbmVkIG9mZnNldCkKK3sKKwlzdHJ1Y3QgYmNtNjN4 eF9waW5jdHJsICpwYyA9IHBpbmN0cmxfZGV2X2dldF9kcnZkYXRhKHBjdGxkZXYpOworCisJLyog ZGlzYWJsZSBhbGwgZnVuY3Rpb25zIHVzaW5nIHRoaXMgcGluICovCisJYmNtNjM2Ml9zZXRfZ3Bp byhwYywgb2Zmc2V0KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBpbmN0cmxf b3BzIGJjbTYzNjJfcGN0bF9vcHMgPSB7CisJLmR0X2ZyZWVfbWFwID0gcGluY3RybF91dGlsc19m cmVlX21hcCwKKwkuZHRfbm9kZV90b19tYXAgPSBwaW5jb25mX2dlbmVyaWNfZHRfbm9kZV90b19t YXBfcGluLAorCS5nZXRfZ3JvdXBfbmFtZSA9IGJjbTYzNjJfcGluY3RybF9nZXRfZ3JvdXBfbmFt ZSwKKwkuZ2V0X2dyb3VwX3BpbnMgPSBiY202MzYyX3BpbmN0cmxfZ2V0X2dyb3VwX3BpbnMsCisJ LmdldF9ncm91cHNfY291bnQgPSBiY202MzYyX3BpbmN0cmxfZ2V0X2dyb3VwX2NvdW50LAorfTsK Kworc3RhdGljIHN0cnVjdCBwaW5tdXhfb3BzIGJjbTYzNjJfcG14X29wcyA9IHsKKwkuZ2V0X2Z1 bmN0aW9uX2dyb3VwcyA9IGJjbTYzNjJfcGluY3RybF9nZXRfZ3JvdXBzLAorCS5nZXRfZnVuY3Rp b25fbmFtZSA9IGJjbTYzNjJfcGluY3RybF9nZXRfZnVuY19uYW1lLAorCS5nZXRfZnVuY3Rpb25z X2NvdW50ID0gYmNtNjM2Ml9waW5jdHJsX2dldF9mdW5jX2NvdW50LAorCS5ncGlvX3JlcXVlc3Rf ZW5hYmxlID0gYmNtNjM2Ml9ncGlvX3JlcXVlc3RfZW5hYmxlLAorCS5zZXRfbXV4ID0gYmNtNjM2 Ml9waW5jdHJsX3NldF9tdXgsCisJLnN0cmljdCA9IHRydWUsCit9OworCitzdGF0aWMgY29uc3Qg c3RydWN0IGJjbTYzeHhfcGluY3RybF9zb2MgYmNtNjM2Ml9zb2MgPSB7CisJLm5ncGlvcyA9IEJD TTYzNjJfTlVNX0dQSU9TLAorCS5ucGlucyA9IEFSUkFZX1NJWkUoYmNtNjM2Ml9waW5zKSwKKwku cGN0bF9vcHMgPSAmYmNtNjM2Ml9wY3RsX29wcywKKwkucGlucyA9IGJjbTYzNjJfcGlucywKKwku cG14X29wcyA9ICZiY202MzYyX3BteF9vcHMsCit9OworCitzdGF0aWMgaW50IGJjbTYzNjJfcGlu Y3RybF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBiY202 M3h4X3BpbmN0cmxfcHJvYmUocGRldiwgJmJjbTYzNjJfc29jLCBOVUxMKTsKK30KKworc3RhdGlj IGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYmNtNjM2Ml9waW5jdHJsX21hdGNoW10gPSB7CisJ eyAuY29tcGF0aWJsZSA9ICJicmNtLGJjbTYzNjItcGluY3RybCIsIH0sCisJeyAvKiBzZW50aW5l bCAqLyB9Cit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2RyaXZlciBiY202MzYyX3BpbmN0 cmxfZHJpdmVyID0geworCS5wcm9iZSA9IGJjbTYzNjJfcGluY3RybF9wcm9iZSwKKwkuZHJpdmVy ID0geworCQkubmFtZSA9ICJiY202MzYyLXBpbmN0cmwiLAorCQkub2ZfbWF0Y2hfdGFibGUgPSBi Y202MzYyX3BpbmN0cmxfbWF0Y2gsCisJfSwKK307CisKK2J1aWx0aW5fcGxhdGZvcm1fZHJpdmVy KGJjbTYzNjJfcGluY3RybF9kcml2ZXIpOwotLSAKMi4yMC4xCgoKX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxp c3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo=