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,URIBL_BLOCKED, 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 8CB09C433E0 for ; Wed, 3 Mar 2021 15:25:00 +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 E6F9664E58 for ; Wed, 3 Mar 2021 15:24:58 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E6F9664E58 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=Xj+fS6IIKx21MKHjyeDnHiP/8W4RuTsU6UYwwmVsks0=; b=U7g6VI/cN8uRdsh56N8HQzLwm 7hPovIiwHmGfdiBkiKzPfe6DCbF0en/NOFe2xpusU/UvOwhX2dh5k9i8wne4p8fsyqwpfjB3NkwMe 5As3F73kakfM8Md6/K8ge2ozdZD5ZOizUhHOQQ5cQ7FJcM39syDoPbSd66PcnLQtbH8xtMC3dH8m3 bd+hkoYIDGBGP24ZkdtZyUTSDbRESZQq2FZ61hbXc8KqTg/iyFNmFqA/vFNuvTuFia29Eyr1bfKEN edVvUPYmRhA74vEvduzl33cC9ouKODKilj6xwqJlPNl5Frmo7VXfo7S2E0NMPMTKmZAEPGpQudF4R e/tC3hv/g==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lHTKx-005MnV-M1; Wed, 03 Mar 2021 15:22:55 +0000 Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lHSPP-005751-Fy for linux-arm-kernel@lists.infradead.org; Wed, 03 Mar 2021 14:23:37 +0000 Received: by mail-wm1-x335.google.com with SMTP id m1so6517534wml.2 for ; Wed, 03 Mar 2021 06:23:26 -0800 (PST) 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=uuk95K4eGIjgdY3ZU93vgvSDnmWADjnIPDDufhGuTTM=; b=cuB2oLEN+9hzEiz+UdqqFeVAw9NMbBTsv0ZN+b1VcYeKAIdqCtM3gwDTbkZR9hfWaQ kYlmfNiUrYMsdWjZkc1H7AivnqfuPqh/MamZVDhfqPdlGY7KC847JxVoH7uYia1bNwe5 LE7HdZC2fHsqkd371w0KPRpLJIXPUXPvjLxgbsjZwsiz3mqhfvRc91JqhiYQsrW85qEu 9NiwEFPoZLUBYJ5J1XCVTHmQo2uj29uJYXDrbb19nB0TkkYvP89jUKhNZNbSM2dM7IwX heCYzLUNS7qMTTYEv4qd1WRaJbQjR8u+oQnqY9zSg8sddkHAy+oa34NTC1p0cJi/OUHl R7Xg== 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=uuk95K4eGIjgdY3ZU93vgvSDnmWADjnIPDDufhGuTTM=; b=FdApVXv0E6qqmNcR09obQGG9g4BXmxhm78ugdqtV0/wIlh6Ron2UT6dGJzSh1/1gLw PRLA2x/G+yA4tZ02B7WooDU9uJN1R2Yynvz8lW/DsTbqjbt8dqLWIVg8M3ZvBYpsb3d7 hrZLznqin+j5n/v22tbZsoguASCKNbga+S4Ylmfn8avCtYZdg89NDqAJTD5IhNmA4Y4a 363/nrFW2IPFcphbMuNtH7q82aSV+UGe45qeCaXb552GLXUBTMd92n9klnY4MMHL0ojc HeKY9nDmDhQ+Ze1FI76FWOH4cvIpq4812qCdQlGPcv5Vl+YK2MlrTYPQdwgxP1O4W6Qy IPWA== X-Gm-Message-State: AOAM53399yS3zM0AZ4k4FhWgVRmLoRFtgxbOAit0SFJBS5kr/IXIsT/8 hVfg8ym8MGvoeEjoXoQ5y80wkwIhMWl0PcXg X-Google-Smtp-Source: ABdhPJydqCYiiqj/NDovJFRnbXbCDLxeBNnLhlyXXXqifP1CE7/eT7p61Xg+dUGNGWYee1HA9f5Z1A== X-Received: by 2002:a1c:3b42:: with SMTP id i63mr9474700wma.124.1614781406104; Wed, 03 Mar 2021 06:23:26 -0800 (PST) Received: from skynet.lan (170.red-88-1-105.dynamicip.rima-tde.net. [88.1.105.170]) by smtp.gmail.com with ESMTPSA id b15sm7876219wmd.41.2021.03.03.06.23.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 03 Mar 2021 06:23:25 -0800 (PST) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Rob Herring , Michael Walle , Bartosz Golaszewski , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Jonas Gorski , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Necip Fazil Yildiran , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v3 14/14] pinctrl: add a pincontrol driver for BCM6318 Date: Wed, 3 Mar 2021 15:23:10 +0100 Message-Id: <20210303142310.6371-15-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210303142310.6371-1-noltari@gmail.com> References: <20210303142310.6371-1-noltari@gmail.com> MIME-Version: 1.0 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 QWRkIGEgcGluY29udHJvbCBkcml2ZXIgZm9yIEJDTTYzMTguIEJDTTYzMTggYWxsb3dzIG11eGlu ZyBtb3N0IEdQSU9zCnRvIGRpZmZlcmVudCBmdW5jdGlvbnMuIEJDTTYzMTggaXMgc2ltaWxhciB0 byBCQ002MzI4IHdpdGggdGhlIGFkZGl0aW9uCm9mIGEgcGFkIHJlZ2lzdGVyLCBhbmQgdGhlIEdQ SU8gbWVhbmluZyBvZiB0aGUgbXV4IHJlZ2lzdGVyIGNoYW5nZXMKYmFzZWQgb24gdGhlIEdQSU8g bnVtYmVyLgoKU2lnbmVkLW9mZi1ieTogw4FsdmFybyBGZXJuw6FuZGV6IFJvamFzIDxub2x0YXJp QGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9uYXMgR29yc2tpIDxqb25hcy5nb3Jza2lAZ21h aWwuY29tPgotLS0KIHYzOiB1c2UgbmV3IHNoYXJlZCBjb2RlCiB2Mjogc3dpdGNoIHRvIEdQSU9f UkVHTUFQCgogZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnICAgICAgICAgICB8ICAgOCArCiBk cml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlICAgICAgICAgIHwgICAxICsKIGRyaXZlcnMvcGlu Y3RybC9iY20vcGluY3RybC1iY202MzE4LmMgfCA0OTYgKysrKysrKysrKysrKysrKysrKysrKysr KysKIDMgZmlsZXMgY2hhbmdlZCwgNTA1IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0 NCBkcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjMxOC5jCgpkaWZmIC0tZ2l0IGEvZHJp dmVycy9waW5jdHJsL2JjbS9LY29uZmlnIGIvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnCmlu ZGV4IGE0OWI3ODhmMmIwZi4uNTkyZjVmMDcyNGEwIDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0 cmwvYmNtL0tjb25maWcKKysrIGIvZHJpdmVycy9waW5jdHJsL2JjbS9LY29uZmlnCkBAIC0zOCw2 ICszOCwxNCBAQCBjb25maWcgUElOQ1RSTF9CQ002M1hYCiAJc2VsZWN0IFBJTkNPTkYKIAlzZWxl Y3QgUElOTVVYCiAKK2NvbmZpZyBQSU5DVFJMX0JDTTYzMTgKKwlib29sICJCcm9hZGNvbSBCQ002 MzE4IEdQSU8gZHJpdmVyIgorCWRlcGVuZHMgb24gKEJNSVBTX0dFTkVSSUMgfHwgQ09NUElMRV9U RVNUKQorCXNlbGVjdCBQSU5DVFJMX0JDTTYzWFgKKwlkZWZhdWx0IEJNSVBTX0dFTkVSSUMKKwlo ZWxwCisJICAgU2F5IFkgaGVyZSB0byBlbmFibGUgdGhlIEJyb2FkY29tIEJDTTYzMTggR1BJTyBk cml2ZXIuCisKIGNvbmZpZyBQSU5DVFJMX0JDTTYzMjgKIAlib29sICJCcm9hZGNvbSBCQ002MzI4 IEdQSU8gZHJpdmVyIgogCWRlcGVuZHMgb24gKEJNSVBTX0dFTkVSSUMgfHwgQ09NUElMRV9URVNU KQpkaWZmIC0tZ2l0IGEvZHJpdmVycy9waW5jdHJsL2JjbS9NYWtlZmlsZSBiL2RyaXZlcnMvcGlu Y3RybC9iY20vTWFrZWZpbGUKaW5kZXggNDExNzg0N2ZkMjc5Li4wMGM3Yjc3NzVlNjMgMTAwNjQ0 Ci0tLSBhL2RyaXZlcnMvcGluY3RybC9iY20vTWFrZWZpbGUKKysrIGIvZHJpdmVycy9waW5jdHJs L2JjbS9NYWtlZmlsZQpAQCAtNCw2ICs0LDcgQEAKIG9iai0kKENPTkZJR19QSU5DVFJMX0JDTTI4 MVhYKQkJKz0gcGluY3RybC1iY20yODF4eC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9CQ00yODM1 KQkJKz0gcGluY3RybC1iY20yODM1Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0JDTTYzWFgpCQkr PSBwaW5jdHJsLWJjbTYzeHgubworb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNNjMxOCkJCSs9IHBp bmN0cmwtYmNtNjMxOC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9CQ002MzI4KQkJKz0gcGluY3Ry bC1iY202MzI4Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0JDTTYzNTgpCQkrPSBwaW5jdHJsLWJj bTYzNTgubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNNjM2MikJCSs9IHBpbmN0cmwtYmNtNjM2 Mi5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjMxOC5jIGIv ZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzMTguYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjU3ZmE2NDE4MGRmMQotLS0gL2Rldi9udWxsCisrKyBiL2Ry aXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzE4LmMKQEAgLTAsMCArMSw0OTYgQEAKKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIERyaXZlciBmb3IgQkNN NjMxOCBHUElPIHVuaXQgKHBpbmN0cmwgKyBHUElPKQorICoKKyAqIENvcHlyaWdodCAoQykgMjAy MSDDgWx2YXJvIEZlcm7DoW5kZXogUm9qYXMgPG5vbHRhcmlAZ21haWwuY29tPgorICogQ29weXJp Z2h0IChDKSAyMDE2IEpvbmFzIEdvcnNraSA8am9uYXMuZ29yc2tpQGdtYWlsLmNvbT4KKyAqLwor CisjaW5jbHVkZSA8bGludXgvYml0cy5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8vZHJpdmVyLmg+ CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNs dWRlIDxsaW51eC9waW5jdHJsL3Bpbm11eC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2Rl dmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorCisjaW5jbHVkZSAiLi4vcGluY3Ry bC11dGlscy5oIgorCisjaW5jbHVkZSAicGluY3RybC1iY202M3h4LmgiCisKKyNkZWZpbmUgQkNN NjMxOF9OVU1fR1BJT1MJNTAKKyNkZWZpbmUgQkNNNjMxOF9OVU1fTVVYCQk0OAorCisjZGVmaW5l IEJDTTYzMThfTU9ERV9SRUcJMHgxOAorI2RlZmluZSBCQ002MzE4X01VWF9SRUcJCTB4MWMKKyNk ZWZpbmUgQkNNNjMxOF9QQURfUkVHCQkweDU0CisKK3N0cnVjdCBiY202MzE4X3Bpbmdyb3VwIHsK Kwljb25zdCBjaGFyICpuYW1lOworCWNvbnN0IHVuc2lnbmVkICogY29uc3QgcGluczsKKwljb25z dCB1bnNpZ25lZCBudW1fcGluczsKK307CisKK3N0cnVjdCBiY202MzE4X2Z1bmN0aW9uIHsKKwlj b25zdCBjaGFyICpuYW1lOworCWNvbnN0IGNoYXIgKiBjb25zdCAqZ3JvdXBzOworCWNvbnN0IHVu c2lnbmVkIG51bV9ncm91cHM7CisKKwl1bnNpZ25lZCBtb2RlX3ZhbDoxOworCXVuc2lnbmVkIG11 eF92YWw6MjsKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgcGluY3RybF9waW5fZGVzYyBiY202 MzE4X3BpbnNbXSA9IHsKKwlQSU5DVFJMX1BJTigwLCAiZ3BpbzAiKSwKKwlQSU5DVFJMX1BJTigx LCAiZ3BpbzEiKSwKKwlQSU5DVFJMX1BJTigyLCAiZ3BpbzIiKSwKKwlQSU5DVFJMX1BJTigzLCAi Z3BpbzMiKSwKKwlQSU5DVFJMX1BJTig0LCAiZ3BpbzQiKSwKKwlQSU5DVFJMX1BJTig1LCAiZ3Bp bzUiKSwKKwlQSU5DVFJMX1BJTig2LCAiZ3BpbzYiKSwKKwlQSU5DVFJMX1BJTig3LCAiZ3Bpbzci KSwKKwlQSU5DVFJMX1BJTig4LCAiZ3BpbzgiKSwKKwlQSU5DVFJMX1BJTig5LCAiZ3BpbzkiKSwK KwlQSU5DVFJMX1BJTigxMCwgImdwaW8xMCIpLAorCVBJTkNUUkxfUElOKDExLCAiZ3BpbzExIiks CisJUElOQ1RSTF9QSU4oMTIsICJncGlvMTIiKSwKKwlQSU5DVFJMX1BJTigxMywgImdwaW8xMyIp LAorCVBJTkNUUkxfUElOKDE0LCAiZ3BpbzE0IiksCisJUElOQ1RSTF9QSU4oMTUsICJncGlvMTUi KSwKKwlQSU5DVFJMX1BJTigxNiwgImdwaW8xNiIpLAorCVBJTkNUUkxfUElOKDE3LCAiZ3BpbzE3 IiksCisJUElOQ1RSTF9QSU4oMTgsICJncGlvMTgiKSwKKwlQSU5DVFJMX1BJTigxOSwgImdwaW8x OSIpLAorCVBJTkNUUkxfUElOKDIwLCAiZ3BpbzIwIiksCisJUElOQ1RSTF9QSU4oMjEsICJncGlv MjEiKSwKKwlQSU5DVFJMX1BJTigyMiwgImdwaW8yMiIpLAorCVBJTkNUUkxfUElOKDIzLCAiZ3Bp bzIzIiksCisJUElOQ1RSTF9QSU4oMjQsICJncGlvMjQiKSwKKwlQSU5DVFJMX1BJTigyNSwgImdw aW8yNSIpLAorCVBJTkNUUkxfUElOKDI2LCAiZ3BpbzI2IiksCisJUElOQ1RSTF9QSU4oMjcsICJn cGlvMjciKSwKKwlQSU5DVFJMX1BJTigyOCwgImdwaW8yOCIpLAorCVBJTkNUUkxfUElOKDI5LCAi Z3BpbzI5IiksCisJUElOQ1RSTF9QSU4oMzAsICJncGlvMzAiKSwKKwlQSU5DVFJMX1BJTigzMSwg ImdwaW8zMSIpLAorCVBJTkNUUkxfUElOKDMyLCAiZ3BpbzMyIiksCisJUElOQ1RSTF9QSU4oMzMs ICJncGlvMzMiKSwKKwlQSU5DVFJMX1BJTigzNCwgImdwaW8zNCIpLAorCVBJTkNUUkxfUElOKDM1 LCAiZ3BpbzM1IiksCisJUElOQ1RSTF9QSU4oMzYsICJncGlvMzYiKSwKKwlQSU5DVFJMX1BJTigz NywgImdwaW8zNyIpLAorCVBJTkNUUkxfUElOKDM4LCAiZ3BpbzM4IiksCisJUElOQ1RSTF9QSU4o MzksICJncGlvMzkiKSwKKwlQSU5DVFJMX1BJTig0MCwgImdwaW80MCIpLAorCVBJTkNUUkxfUElO KDQxLCAiZ3BpbzQxIiksCisJUElOQ1RSTF9QSU4oNDIsICJncGlvNDIiKSwKKwlQSU5DVFJMX1BJ Tig0MywgImdwaW80MyIpLAorCVBJTkNUUkxfUElOKDQ0LCAiZ3BpbzQ0IiksCisJUElOQ1RSTF9Q SU4oNDUsICJncGlvNDUiKSwKKwlQSU5DVFJMX1BJTig0NiwgImdwaW80NiIpLAorCVBJTkNUUkxf UElOKDQ3LCAiZ3BpbzQ3IiksCisJUElOQ1RSTF9QSU4oNDgsICJncGlvNDgiKSwKKwlQSU5DVFJM X1BJTig0OSwgImdwaW80OSIpLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGdwaW8wX3BpbnNbXSA9 IHsgMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xX3BpbnNbXSA9IHsgMSB9Oworc3RhdGljIHVu c2lnbmVkIGdwaW8yX3BpbnNbXSA9IHsgMiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zX3BpbnNb XSA9IHsgMyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80X3BpbnNbXSA9IHsgNCB9Oworc3RhdGlj IHVuc2lnbmVkIGdwaW81X3BpbnNbXSA9IHsgNSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW82X3Bp bnNbXSA9IHsgNiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW83X3BpbnNbXSA9IHsgNyB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW84X3BpbnNbXSA9IHsgOCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW85 X3BpbnNbXSA9IHsgOSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xMF9waW5zW10gPSB7IDEwIH07 CitzdGF0aWMgdW5zaWduZWQgZ3BpbzExX3BpbnNbXSA9IHsgMTEgfTsKK3N0YXRpYyB1bnNpZ25l ZCBncGlvMTJfcGluc1tdID0geyAxMiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xM19waW5zW10g PSB7IDEzIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE0X3BpbnNbXSA9IHsgMTQgfTsKK3N0YXRp YyB1bnNpZ25lZCBncGlvMTVfcGluc1tdID0geyAxNSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8x Nl9waW5zW10gPSB7IDE2IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE3X3BpbnNbXSA9IHsgMTcg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMThfcGluc1tdID0geyAxOCB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8xOV9waW5zW10gPSB7IDE5IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzIwX3BpbnNb XSA9IHsgMjAgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjFfcGluc1tdID0geyAyMSB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8yMl9waW5zW10gPSB7IDIyIH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzIzX3BpbnNbXSA9IHsgMjMgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjRfcGluc1tdID0geyAy NCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNV9waW5zW10gPSB7IDI1IH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzI2X3BpbnNbXSA9IHsgMjYgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjdfcGlu c1tdID0geyAyNyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yOF9waW5zW10gPSB7IDI4IH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzI5X3BpbnNbXSA9IHsgMjkgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvMzBfcGluc1tdID0geyAzMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zMV9waW5zW10gPSB7 IDMxIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMyX3BpbnNbXSA9IHsgMzIgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvMzNfcGluc1tdID0geyAzMyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zNF9w aW5zW10gPSB7IDM0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzM1X3BpbnNbXSA9IHsgMzUgfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvMzZfcGluc1tdID0geyAzNiB9Oworc3RhdGljIHVuc2lnbmVk IGdwaW8zN19waW5zW10gPSB7IDM3IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzM4X3BpbnNbXSA9 IHsgMzggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzlfcGluc1tdID0geyAzOSB9Oworc3RhdGlj IHVuc2lnbmVkIGdwaW80MF9waW5zW10gPSB7IDQwIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzQx X3BpbnNbXSA9IHsgNDEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNDJfcGluc1tdID0geyA0MiB9 Oworc3RhdGljIHVuc2lnbmVkIGdwaW80M19waW5zW10gPSB7IDQzIH07CitzdGF0aWMgdW5zaWdu ZWQgZ3BpbzQ0X3BpbnNbXSA9IHsgNDQgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNDVfcGluc1td ID0geyA0NSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80Nl9waW5zW10gPSB7IDQ2IH07CitzdGF0 aWMgdW5zaWduZWQgZ3BpbzQ3X3BpbnNbXSA9IHsgNDcgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlv NDhfcGluc1tdID0geyA0OCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80OV9waW5zW10gPSB7IDQ5 IH07CisKKyNkZWZpbmUgQkNNNjMxOF9HUk9VUChuKQkJCQkJXAorCXsJCQkJCQkJXAorCQkubmFt ZSA9ICNuLAkJCQkJXAorCQkucGlucyA9IG4jI19waW5zLAkJCQlcCisJCS5udW1fcGlucyA9IEFS UkFZX1NJWkUobiMjX3BpbnMpLAkJXAorCX0KKworc3RhdGljIHN0cnVjdCBiY202MzE4X3Bpbmdy b3VwIGJjbTYzMThfZ3JvdXBzW10gPSB7CisJQkNNNjMxOF9HUk9VUChncGlvMCksCisJQkNNNjMx OF9HUk9VUChncGlvMSksCisJQkNNNjMxOF9HUk9VUChncGlvMiksCisJQkNNNjMxOF9HUk9VUChn cGlvMyksCisJQkNNNjMxOF9HUk9VUChncGlvNCksCisJQkNNNjMxOF9HUk9VUChncGlvNSksCisJ QkNNNjMxOF9HUk9VUChncGlvNiksCisJQkNNNjMxOF9HUk9VUChncGlvNyksCisJQkNNNjMxOF9H Uk9VUChncGlvOCksCisJQkNNNjMxOF9HUk9VUChncGlvOSksCisJQkNNNjMxOF9HUk9VUChncGlv MTApLAorCUJDTTYzMThfR1JPVVAoZ3BpbzExKSwKKwlCQ002MzE4X0dST1VQKGdwaW8xMiksCisJ QkNNNjMxOF9HUk9VUChncGlvMTMpLAorCUJDTTYzMThfR1JPVVAoZ3BpbzE0KSwKKwlCQ002MzE4 X0dST1VQKGdwaW8xNSksCisJQkNNNjMxOF9HUk9VUChncGlvMTYpLAorCUJDTTYzMThfR1JPVVAo Z3BpbzE3KSwKKwlCQ002MzE4X0dST1VQKGdwaW8xOCksCisJQkNNNjMxOF9HUk9VUChncGlvMTkp LAorCUJDTTYzMThfR1JPVVAoZ3BpbzIwKSwKKwlCQ002MzE4X0dST1VQKGdwaW8yMSksCisJQkNN NjMxOF9HUk9VUChncGlvMjIpLAorCUJDTTYzMThfR1JPVVAoZ3BpbzIzKSwKKwlCQ002MzE4X0dS T1VQKGdwaW8yNCksCisJQkNNNjMxOF9HUk9VUChncGlvMjUpLAorCUJDTTYzMThfR1JPVVAoZ3Bp bzI2KSwKKwlCQ002MzE4X0dST1VQKGdwaW8yNyksCisJQkNNNjMxOF9HUk9VUChncGlvMjgpLAor CUJDTTYzMThfR1JPVVAoZ3BpbzI5KSwKKwlCQ002MzE4X0dST1VQKGdwaW8zMCksCisJQkNNNjMx OF9HUk9VUChncGlvMzEpLAorCUJDTTYzMThfR1JPVVAoZ3BpbzMyKSwKKwlCQ002MzE4X0dST1VQ KGdwaW8zMyksCisJQkNNNjMxOF9HUk9VUChncGlvMzQpLAorCUJDTTYzMThfR1JPVVAoZ3BpbzM1 KSwKKwlCQ002MzE4X0dST1VQKGdwaW8zNiksCisJQkNNNjMxOF9HUk9VUChncGlvMzcpLAorCUJD TTYzMThfR1JPVVAoZ3BpbzM4KSwKKwlCQ002MzE4X0dST1VQKGdwaW8zOSksCisJQkNNNjMxOF9H Uk9VUChncGlvNDApLAorCUJDTTYzMThfR1JPVVAoZ3BpbzQxKSwKKwlCQ002MzE4X0dST1VQKGdw aW80MiksCisJQkNNNjMxOF9HUk9VUChncGlvNDMpLAorCUJDTTYzMThfR1JPVVAoZ3BpbzQ0KSwK KwlCQ002MzE4X0dST1VQKGdwaW80NSksCisJQkNNNjMxOF9HUk9VUChncGlvNDYpLAorCUJDTTYz MThfR1JPVVAoZ3BpbzQ3KSwKKwlCQ002MzE4X0dST1VQKGdwaW80OCksCisJQkNNNjMxOF9HUk9V UChncGlvNDkpLAorfTsKKworLyogR1BJT19NT0RFICovCitzdGF0aWMgY29uc3QgY2hhciAqIGNv bnN0IGxlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzAiLAorCSJncGlvMSIsCisJImdwaW8yIiwKKwki Z3BpbzMiLAorCSJncGlvNCIsCisJImdwaW81IiwKKwkiZ3BpbzYiLAorCSJncGlvNyIsCisJImdw aW84IiwKKwkiZ3BpbzkiLAorCSJncGlvMTAiLAorCSJncGlvMTEiLAorCSJncGlvMTIiLAorCSJn cGlvMTMiLAorCSJncGlvMTQiLAorCSJncGlvMTUiLAorCSJncGlvMTYiLAorCSJncGlvMTciLAor CSJncGlvMTgiLAorCSJncGlvMTkiLAorCSJncGlvMjAiLAorCSJncGlvMjEiLAorCSJncGlvMjIi LAorCSJncGlvMjMiLAorfTsKKworLyogUElOTVVYX1NFTCAqLworc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCBlcGh5MF9zcGRfbGVkX2dyb3Vwc1tdID0geworCSJncGlvMCIsCit9OworCitzdGF0 aWMgY29uc3QgY2hhciAqIGNvbnN0IGVwaHkxX3NwZF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8x IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBoeTJfc3BkX2xlZF9ncm91cHNb XSA9IHsKKwkiZ3BpbzIiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcGh5M19z cGRfbGVkX2dyb3Vwc1tdID0geworCSJncGlvMyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IGVwaHkwX2FjdF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW80IiwKK307CisKK3N0YXRp YyBjb25zdCBjaGFyICogY29uc3QgZXBoeTFfYWN0X2xlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzUi LAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcGh5Ml9hY3RfbGVkX2dyb3Vwc1td ID0geworCSJncGlvNiIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGVwaHkzX2Fj dF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW83IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICog Y29uc3Qgc2VyaWFsX2xlZF9kYXRhX2dyb3Vwc1tdID0geworCSJncGlvNiIsCit9OworCitzdGF0 aWMgY29uc3QgY2hhciAqIGNvbnN0IHNlcmlhbF9sZWRfY2xrX2dyb3Vwc1tdID0geworCSJncGlv NyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGluZXRfYWN0X2xlZF9ncm91cHNb XSA9IHsKKwkiZ3BpbzgiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBpbmV0X2Zh aWxfbGVkX2dyb3Vwc1tdID0geworCSJncGlvOSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAq IGNvbnN0IGRzbF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8xMCIsCit9OworCitzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IHBvc3RfZmFpbF9sZWRfZ3JvdXBzW10gPSB7CisJImdwaW8xMSIsCit9 OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHdsYW5fd3BzX2xlZF9ncm91cHNbXSA9IHsK KwkiZ3BpbzEyIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdXNiX3B3cm9uX2dy b3Vwc1tdID0geworCSJncGlvMTMiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB1 c2JfZGV2aWNlX2xlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzEzIiwKK307CisKK3N0YXRpYyBjb25z dCBjaGFyICogY29uc3QgdXNiX2FjdGl2ZV9ncm91cHNbXSA9IHsKKwkiZ3BpbzQwIiwKK307CisK KyNkZWZpbmUgQkNNNjMxOF9NT0RFX0ZVTihuKQkJCQlcCisJewkJCQkJCVwKKwkJLm5hbWUgPSAj biwJCQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1fZ3JvdXBzID0gQVJS QVlfU0laRShuIyNfZ3JvdXBzKSwJXAorCQkubW9kZV92YWwgPSAxLAkJCQlcCisJfQorCisjZGVm aW5lIEJDTTYzMThfTVVYX0ZVTihuLCBtdXgpCQkJCVwKKwl7CQkJCQkJXAorCQkubmFtZSA9ICNu LAkJCQlcCisJCS5ncm91cHMgPSBuIyNfZ3JvdXBzLAkJCVwKKwkJLm51bV9ncm91cHMgPSBBUlJB WV9TSVpFKG4jI19ncm91cHMpLAlcCisJCS5tdXhfdmFsID0gbXV4LAkJCQlcCisJfQorCitzdGF0 aWMgY29uc3Qgc3RydWN0IGJjbTYzMThfZnVuY3Rpb24gYmNtNjMxOF9mdW5jc1tdID0geworCUJD TTYzMThfTU9ERV9GVU4obGVkKSwKKwlCQ002MzE4X01VWF9GVU4oZXBoeTBfc3BkX2xlZCwgMSks CisJQkNNNjMxOF9NVVhfRlVOKGVwaHkxX3NwZF9sZWQsIDEpLAorCUJDTTYzMThfTVVYX0ZVTihl cGh5Ml9zcGRfbGVkLCAxKSwKKwlCQ002MzE4X01VWF9GVU4oZXBoeTNfc3BkX2xlZCwgMSksCisJ QkNNNjMxOF9NVVhfRlVOKGVwaHkwX2FjdF9sZWQsIDEpLAorCUJDTTYzMThfTVVYX0ZVTihlcGh5 MV9hY3RfbGVkLCAxKSwKKwlCQ002MzE4X01VWF9GVU4oZXBoeTJfYWN0X2xlZCwgMSksCisJQkNN NjMxOF9NVVhfRlVOKGVwaHkzX2FjdF9sZWQsIDEpLAorCUJDTTYzMThfTVVYX0ZVTihzZXJpYWxf bGVkX2RhdGEsIDMpLAorCUJDTTYzMThfTVVYX0ZVTihzZXJpYWxfbGVkX2NsaywgMyksCisJQkNN NjMxOF9NVVhfRlVOKGluZXRfYWN0X2xlZCwgMSksCisJQkNNNjMxOF9NVVhfRlVOKGluZXRfZmFp bF9sZWQsIDEpLAorCUJDTTYzMThfTVVYX0ZVTihkc2xfbGVkLCAxKSwKKwlCQ002MzE4X01VWF9G VU4ocG9zdF9mYWlsX2xlZCwgMSksCisJQkNNNjMxOF9NVVhfRlVOKHdsYW5fd3BzX2xlZCwgMSks CisJQkNNNjMxOF9NVVhfRlVOKHVzYl9wd3JvbiwgMSksCisJQkNNNjMxOF9NVVhfRlVOKHVzYl9k ZXZpY2VfbGVkLCAyKSwKKwlCQ002MzE4X01VWF9GVU4odXNiX2FjdGl2ZSwgMiksCit9OworCitz dGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBiY202MzE4X211eF9vZmYodW5zaWduZWQgaW50IHBp bikKK3sKKwlyZXR1cm4gQkNNNjMxOF9NVVhfUkVHICsgKHBpbiAvIDE2KSAqIDQ7Cit9CisKK3N0 YXRpYyBpbmxpbmUgdW5zaWduZWQgaW50IGJjbTYzMThfcGFkX29mZih1bnNpZ25lZCBpbnQgcGlu KQoreworCXJldHVybiBCQ002MzE4X1BBRF9SRUcgKyAocGluIC8gOCkgKiA0OworfQorCitzdGF0 aWMgaW50IGJjbTYzMThfcGluY3RybF9nZXRfZ3JvdXBfY291bnQoc3RydWN0IHBpbmN0cmxfZGV2 ICpwY3RsZGV2KQoreworCXJldHVybiBBUlJBWV9TSVpFKGJjbTYzMThfZ3JvdXBzKTsKK30KKwor c3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzMThfcGluY3RybF9nZXRfZ3JvdXBfbmFtZShzdHJ1Y3Qg cGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJCQkgIHVuc2lnbmVkIGdyb3VwKQoreworCXJldHVy biBiY202MzE4X2dyb3Vwc1tncm91cF0ubmFtZTsKK30KKworc3RhdGljIGludCBiY202MzE4X3Bp bmN0cmxfZ2V0X2dyb3VwX3BpbnMoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCQkg IHVuc2lnbmVkIGdyb3VwLCBjb25zdCB1bnNpZ25lZCAqKnBpbnMsCisJCQkJCSAgdW5zaWduZWQg Km51bV9waW5zKQoreworCSpwaW5zID0gYmNtNjMxOF9ncm91cHNbZ3JvdXBdLnBpbnM7CisJKm51 bV9waW5zID0gYmNtNjMxOF9ncm91cHNbZ3JvdXBdLm51bV9waW5zOworCisJcmV0dXJuIDA7Cit9 CisKK3N0YXRpYyBpbnQgYmNtNjMxOF9waW5jdHJsX2dldF9mdW5jX2NvdW50KHN0cnVjdCBwaW5j dHJsX2RldiAqcGN0bGRldikKK3sKKwlyZXR1cm4gQVJSQVlfU0laRShiY202MzE4X2Z1bmNzKTsK K30KKworc3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzMThfcGluY3RybF9nZXRfZnVuY19uYW1lKHN0 cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkJCSB1bnNpZ25lZCBzZWxlY3RvcikKK3sK KwlyZXR1cm4gYmNtNjMxOF9mdW5jc1tzZWxlY3Rvcl0ubmFtZTsKK30KKworc3RhdGljIGludCBi Y202MzE4X3BpbmN0cmxfZ2V0X2dyb3VwcyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJ CQkJICAgICAgdW5zaWduZWQgc2VsZWN0b3IsCisJCQkJICAgICAgY29uc3QgY2hhciAqIGNvbnN0 ICoqZ3JvdXBzLAorCQkJCSAgICAgIHVuc2lnbmVkICogY29uc3QgbnVtX2dyb3VwcykKK3sKKwkq Z3JvdXBzID0gYmNtNjMxOF9mdW5jc1tzZWxlY3Rvcl0uZ3JvdXBzOworCSpudW1fZ3JvdXBzID0g YmNtNjMxOF9mdW5jc1tzZWxlY3Rvcl0ubnVtX2dyb3VwczsKKworCXJldHVybiAwOworfQorCitz dGF0aWMgaW5saW5lIHZvaWQgYmNtNjMxOF9ybXdfbXV4KHN0cnVjdCBiY202M3h4X3BpbmN0cmwg KnBjLCB1bnNpZ25lZCBwaW4sCisJCQkJICAgdW5zaWduZWQgaW50IG1vZGUsIHVuc2lnbmVkIGlu dCBtdXgpCit7CisJaWYgKHBpbiA8IEJDTTYzWFhfQkFOS19HUElPUykKKwkJcmVnbWFwX3VwZGF0 ZV9iaXRzKHBjLT5yZWdzLCBCQ002MzE4X01PREVfUkVHLCBCSVQocGluKSwKKwkJCQkgICBtb2Rl ID8gQklUKHBpbikgOiAwKTsKKworCWlmIChwaW4gPCBCQ002MzE4X05VTV9NVVgpCisJCXJlZ21h cF91cGRhdGVfYml0cyhwYy0+cmVncywKKwkJCQkgICBiY202MzE4X211eF9vZmYocGluKSwKKwkJ CQkgICAzVUwgPDwgKChwaW4gJSAxNikgKiAyKSwKKwkJCQkgICBtdXggPDwgKChwaW4gJSAxNikg KiAyKSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBiY202MzE4X3NldF9wYWQoc3RydWN0IGJj bTYzeHhfcGluY3RybCAqcGMsIHVuc2lnbmVkIHBpbiwKKwkJCQkgICB1aW50OF90IHZhbCkKK3sK KwlyZWdtYXBfdXBkYXRlX2JpdHMocGMtPnJlZ3MsIGJjbTYzMThfcGFkX29mZihwaW4pLAorCQkJ ICAgMHhmVUwgPDwgKChwaW4gJSA4KSAqIDQpLAorCQkJICAgdmFsIDw8ICgocGluICUgOCkgKiA0 KSk7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjMxOF9waW5jdHJsX3NldF9tdXgoc3RydWN0IHBpbmN0 cmxfZGV2ICpwY3RsZGV2LAorCQkJCSAgIHVuc2lnbmVkIHNlbGVjdG9yLCB1bnNpZ25lZCBncm91 cCkKK3sKKwlzdHJ1Y3QgYmNtNjN4eF9waW5jdHJsICpwYyA9IHBpbmN0cmxfZGV2X2dldF9kcnZk YXRhKHBjdGxkZXYpOworCWNvbnN0IHN0cnVjdCBiY202MzE4X3Bpbmdyb3VwICpwZyA9ICZiY202 MzE4X2dyb3Vwc1tncm91cF07CisJY29uc3Qgc3RydWN0IGJjbTYzMThfZnVuY3Rpb24gKmYgPSAm YmNtNjMxOF9mdW5jc1tzZWxlY3Rvcl07CisKKwliY202MzE4X3Jtd19tdXgocGMsIHBnLT5waW5z WzBdLCBmLT5tb2RlX3ZhbCwgZi0+bXV4X3ZhbCk7CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGlj IGludCBiY202MzE4X2dwaW9fcmVxdWVzdF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3Rs ZGV2LAorCQkJCSAgICAgICBzdHJ1Y3QgcGluY3RybF9ncGlvX3JhbmdlICpyYW5nZSwKKwkJCQkg ICAgICAgdW5zaWduZWQgb2Zmc2V0KQoreworCXN0cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjID0g cGluY3RybF9kZXZfZ2V0X2RydmRhdGEocGN0bGRldik7CisKKwkvKiBkaXNhYmxlIGFsbCBmdW5j dGlvbnMgdXNpbmcgdGhpcyBwaW4gKi8KKwlpZiAob2Zmc2V0IDwgMTMpIHsKKwkJLyogR1BJT3Mg MC0xMiB1c2UgbXV4IDAgYXMgR1BJTyBmdW5jdGlvbiAqLworCQliY202MzE4X3Jtd19tdXgocGMs IG9mZnNldCwgMCwgMCk7CisJfSBlbHNlIGlmIChvZmZzZXQgPCA0MikgeworCQkvKiBHUElPcyAx My00MSB1c2UgbXV4IDMgYXMgR1BJTyBmdW5jdGlvbiAqLworCQliY202MzE4X3Jtd19tdXgocGMs IG9mZnNldCwgMCwgMyk7CisKKwkJYmNtNjMxOF9zZXRfcGFkKHBjLCBvZmZzZXQsIDApOworCX0K KworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBpbmN0cmxfb3BzIGJjbTYzMThfcGN0 bF9vcHMgPSB7CisJLmdldF9ncm91cHNfY291bnQgPSBiY202MzE4X3BpbmN0cmxfZ2V0X2dyb3Vw X2NvdW50LAorCS5nZXRfZ3JvdXBfbmFtZSA9IGJjbTYzMThfcGluY3RybF9nZXRfZ3JvdXBfbmFt ZSwKKwkuZ2V0X2dyb3VwX3BpbnMgPSBiY202MzE4X3BpbmN0cmxfZ2V0X2dyb3VwX3BpbnMsCisJ LmR0X25vZGVfdG9fbWFwID0gcGluY29uZl9nZW5lcmljX2R0X25vZGVfdG9fbWFwX3BpbiwKKwku ZHRfZnJlZV9tYXAgPSBwaW5jdHJsX3V0aWxzX2ZyZWVfbWFwLAorfTsKKworc3RhdGljIHN0cnVj dCBwaW5tdXhfb3BzIGJjbTYzMThfcG14X29wcyA9IHsKKwkuZ2V0X2Z1bmN0aW9uc19jb3VudCA9 IGJjbTYzMThfcGluY3RybF9nZXRfZnVuY19jb3VudCwKKwkuZ2V0X2Z1bmN0aW9uX25hbWUgPSBi Y202MzE4X3BpbmN0cmxfZ2V0X2Z1bmNfbmFtZSwKKwkuZ2V0X2Z1bmN0aW9uX2dyb3VwcyA9IGJj bTYzMThfcGluY3RybF9nZXRfZ3JvdXBzLAorCS5zZXRfbXV4ID0gYmNtNjMxOF9waW5jdHJsX3Nl dF9tdXgsCisJLmdwaW9fcmVxdWVzdF9lbmFibGUgPSBiY202MzE4X2dwaW9fcmVxdWVzdF9lbmFi bGUsCisJLnN0cmljdCA9IHRydWUsCit9OworCitzdGF0aWMgY29uc3Qgc3RydWN0IGJjbTYzeHhf cGluY3RybF9zb2MgYmNtNjMxOF9zb2MgPSB7CisJLm5ncGlvcyA9IEJDTTYzMThfTlVNX0dQSU9T LAorCS5ucGlucyA9IEFSUkFZX1NJWkUoYmNtNjMxOF9waW5zKSwKKwkucGN0bF9vcHMgPSAmYmNt NjMxOF9wY3RsX29wcywKKwkucGlucyA9IGJjbTYzMThfcGlucywKKwkucG14X29wcyA9ICZiY202 MzE4X3BteF9vcHMsCit9OworCitzdGF0aWMgaW50IGJjbTYzMThfcGluY3RybF9wcm9iZShzdHJ1 Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQoreworCXJldHVybiBiY202M3h4X3BpbmN0cmxfcHJv YmUocGRldiwgJmJjbTYzMThfc29jLCBOVUxMKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBv Zl9kZXZpY2VfaWQgYmNtNjMxOF9waW5jdHJsX21hdGNoW10gPSB7CisJeyAuY29tcGF0aWJsZSA9 ICJicmNtLGJjbTYzMTgtcGluY3RybCIsIH0sCisJeyB9LAorfTsKKworc3RhdGljIHN0cnVjdCBw bGF0Zm9ybV9kcml2ZXIgYmNtNjMxOF9waW5jdHJsX2RyaXZlciA9IHsKKwkucHJvYmUgPSBiY202 MzE4X3BpbmN0cmxfcHJvYmUsCisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAiYmNtNjMxOC1waW5j dHJsIiwKKwkJLm9mX21hdGNoX3RhYmxlID0gYmNtNjMxOF9waW5jdHJsX21hdGNoLAorCX0sCit9 OworCitidWlsdGluX3BsYXRmb3JtX2RyaXZlcihiY202MzE4X3BpbmN0cmxfZHJpdmVyKTsKLS0g CjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f CmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMuaW5m cmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xp bnV4LWFybS1rZXJuZWwK