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 D08EAC433DB for ; Wed, 17 Mar 2021 14:43:58 +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 02E8064EEC for ; Wed, 17 Mar 2021 14:43:57 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 02E8064EEC 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=TIdosFICj0DGZGBKx3x73D7Pk6vwHHBecMOaEgJrkAg=; b=oxy6Z+74GP2CkJkuyGQhcIzhf Dw0qbkicfrDelXhe6vbqCtiCWXHFHAFXC3IFsXwRDtRJhoHVeCtZI3kmRtMQCWIMAYQKCAWMez4nm JSmEMCX1zm39rMDcSRSy9zGurfRaM/1L8ll5rHC7HbMukLkNFvvxorAApIwhpT8jVbR2C4ijG4/2k 1yvvfjZGS9bQKzniZz8aPTBKBjngdP3zPrUEEr/pFhRc51cx6c4a1Cu57RrRR97iNsF2eoWaq5MvI EOupzbHIOiAkXj7MLfKe27Zm42Xi8kmjrWMFpOXvEhn9QNPWU4qMvWe4YgJ5wz41wGJGmVrA/13Lm LZvqXsZ3Q==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lMXN6-003JR2-H9; Wed, 17 Mar 2021 14:42:04 +0000 Received: from mail-wm1-x332.google.com ([2a00:1450:4864:20::332]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lMXJV-003Hg5-7c for linux-arm-kernel@lists.infradead.org; Wed, 17 Mar 2021 14:38:23 +0000 Received: by mail-wm1-x332.google.com with SMTP id m20-20020a7bcb940000b029010cab7e5a9fso3508326wmi.3 for ; Wed, 17 Mar 2021 07:38:20 -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=J2gUw06wNbcqAVwT0ZjN3bC299Mu5zPD20KvymTlLRY=; b=XF76proEKLhjTwgk9Q4SZDwLS+MyIBcQM9rAOOrazIpfqOQG0qelAwU/GNSSl7DBtK uXYUN3ezxiO9uE+8Z3yfYmeO8hvCz6FHkdaSwfpreJicxQhBGzwdaSNy1jJEi0rzluCI r+szC6gDek8IZYJ2Eep3K//jAXVoMiUOaa2nUOoWPKfl5WBvyTd2HGnH//vNj7HIuZdJ nBbPJOLTojYFAFWlek8H4HjcYmYRT8QZXB3joOoz3BfMqPriTvwZqQB0pcywvYTJc6RH n63lVL+eX+3NIRvBSjyxJwDJrRDtnpdbWFVW1EPGqfFN1NOijmokv4/3wvmNPlaxV7WJ U4Mw== 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=J2gUw06wNbcqAVwT0ZjN3bC299Mu5zPD20KvymTlLRY=; b=rgf3thsufaFhZnYnKauDKWkDhlsmRijBg6Q5xGf45wXHeyENzfTrENimOhso5ouL84 DQnYTTXLB7n81AFIiS3x0Qcol+orhmMMY2Kew3kdvCBb9Mz2ygZCeHfpwjIjuXkzXynn iNeICMPS4H3u5cdLjo799IVgH+UgTzcbGPYNUrCsHCf2g2wkOoHiPRfIFAqmGsq1jPmz JhpKnqfpyoneH7Ilt6PHm1JQ4Ap9ar0XvXyQD6MKKgBrcUHW3mK9P2EA8Aekklel/Y+L OgYDEquC/UOLQNlzln0W+ZadBws1bwnVSyp9ksvJvNtIbTKv34lV/imW6jq+hsbmFihe cg1g== X-Gm-Message-State: AOAM533sHgeyIp4C6+fJuQfnPV31iWa7T+AU99dp+N9ev96SvSvfJOua sz1EjgsAjMyRGs03Lssq4jQ= X-Google-Smtp-Source: ABdhPJxV4UPmoqGGtwIyD5mqyoGydScceHMJ47fIRBqmo9zXkyp8BDWVwcj1FZ48w0zaRQ5AShXIHg== X-Received: by 2002:a05:600c:4292:: with SMTP id v18mr3999816wmc.23.1615991900562; Wed, 17 Mar 2021 07:38:20 -0700 (PDT) Received: from skynet.lan ([80.31.204.166]) by smtp.gmail.com with ESMTPSA id a75sm2518948wme.10.2021.03.17.07.38.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Mar 2021 07:38:20 -0700 (PDT) From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Lee Jones , Michael Walle , Florian Fainelli , bcm-kernel-feedback-list@broadcom.com, Jonas Gorski , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Necip Fazil Yildiran , Andy Shevchenko , linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH v8 16/22] pinctrl: add a pincontrol driver for BCM6368 Date: Wed, 17 Mar 2021 15:37:57 +0100 Message-Id: <20210317143803.26127-17-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210317143803.26127-1-noltari@gmail.com> References: <20210317143803.26127-1-noltari@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210317_143821_398741_1C82517E X-CRM114-Status: GOOD ( 21.19 ) 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 QWRkIGEgcGluY29udHJvbCBkcml2ZXIgZm9yIEJDTTYzNjguIEJDTTYzNjggYWxsb3dzIG11eGlu ZyB0aGUgZmlyc3QgMzIKR1BJT3Mgb250byBhbHRlcm5hdGl2ZSBmdW5jdGlvbnMuIE5vdCBhbGwg YXJlIGRvY3VtZW50ZWQuCgpDby1kZXZlbG9wZWQtYnk6IEpvbmFzIEdvcnNraSA8am9uYXMuZ29y c2tpQGdtYWlsLmNvbT4KU2lnbmVkLW9mZi1ieTogSm9uYXMgR29yc2tpIDxqb25hcy5nb3Jza2lA Z21haWwuY29tPgpTaWduZWQtb2ZmLWJ5OiDDgWx2YXJvIEZlcm7DoW5kZXogUm9qYXMgPG5vbHRh cmlAZ21haWwuY29tPgotLS0KIHY4OiBubyBjaGFuZ2VzCiB2Nzogbm8gY2hhbmdlcwogdjY6IG5v IGNoYW5nZXMKIHY1OiBhZGQgY2hhbmdlcyBzdWdnZXN0ZWQgYnkgQW5keSBTaGV2Y2hlbmtvCiB2 NDogbm8gY2hhbmdlcwogdjM6IHVzZSBuZXcgc2hhcmVkIGNvZGUKIHYyOiBzd2l0Y2ggdG8gR1BJ T19SRUdNQVAKCiBkcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcgICAgICAgICAgIHwgICA4ICsK IGRyaXZlcnMvcGluY3RybC9iY20vTWFrZWZpbGUgICAgICAgICAgfCAgIDEgKwogZHJpdmVycy9w aW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzNjguYyB8IDUyMyArKysrKysrKysrKysrKysrKysrKysr KysrKwogMyBmaWxlcyBjaGFuZ2VkLCA1MzIgaW5zZXJ0aW9ucygrKQogY3JlYXRlIG1vZGUgMTAw NjQ0IGRyaXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzY4LmMKCmRpZmYgLS1naXQgYS9k cml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcK aW5kZXggZDMxMDFkNWU3NTBmLi5hYWJkNGI3NjJhZWQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvcGlu Y3RybC9iY20vS2NvbmZpZworKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcKQEAgLTYw LDYgKzYwLDE0IEBAIGNvbmZpZyBQSU5DVFJMX0JDTTYzNjIKIAloZWxwCiAJICAgU2F5IFkgaGVy ZSB0byBlbmFibGUgdGhlIEJyb2FkY29tIEJDTTYzNjIgR1BJTyBkcml2ZXIuCiAKK2NvbmZpZyBQ SU5DVFJMX0JDTTYzNjgKKwlib29sICJCcm9hZGNvbSBCQ002MzY4IEdQSU8gZHJpdmVyIgorCWRl cGVuZHMgb24gKEJNSVBTX0dFTkVSSUMgfHwgQ09NUElMRV9URVNUKQorCXNlbGVjdCBQSU5DVFJM X0JDTTYzWFgKKwlkZWZhdWx0IEJNSVBTX0dFTkVSSUMKKwloZWxwCisJICAgU2F5IFkgaGVyZSB0 byBlbmFibGUgdGhlIEJyb2FkY29tIEJDTTYzNjggR1BJTyBkcml2ZXIuCisKIGNvbmZpZyBQSU5D VFJMX0lQUk9DX0dQSU8KIAlib29sICJCcm9hZGNvbSBpUHJvYyBHUElPICh3aXRoIFBJTkNPTkYp IGRyaXZlciIKIAlkZXBlbmRzIG9uIE9GX0dQSU8gJiYgKEFSQ0hfQkNNX0lQUk9DIHx8IENPTVBJ TEVfVEVTVCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9iY20vTWFrZWZpbGUgYi9kcml2 ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlCmluZGV4IGI5YjA5ZTViOTE0Yy4uYTEzMzFiYjk2ODBl IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlCisrKyBiL2RyaXZlcnMv cGluY3RybC9iY20vTWFrZWZpbGUKQEAgLTcsNiArNyw3IEBAIG9iai0kKENPTkZJR19QSU5DVFJM X0JDTTYzWFgpCQkrPSBwaW5jdHJsLWJjbTYzeHgubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNN NjMyOCkJCSs9IHBpbmN0cmwtYmNtNjMyOC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9CQ002MzU4 KQkJKz0gcGluY3RybC1iY202MzU4Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0JDTTYzNjIpCQkr PSBwaW5jdHJsLWJjbTYzNjIubworb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNNNjM2OCkJCSs9IHBp bmN0cmwtYmNtNjM2OC5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9JUFJPQ19HUElPKQkrPSBwaW5j dHJsLWlwcm9jLWdwaW8ubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfQ1lHTlVTX01VWCkJKz0gcGlu Y3RybC1jeWdudXMtbXV4Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX05TKQkJKz0gcGluY3RybC1u cy5vCmRpZmYgLS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjM2OC5jIGIv ZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzNjguYwpuZXcgZmlsZSBtb2RlIDEwMDY0 NAppbmRleCAwMDAwMDAwMDAwMDAuLjgzODA5NWY5ZTg5MAotLS0gL2Rldi9udWxsCisrKyBiL2Ry aXZlcnMvcGluY3RybC9iY20vcGluY3RybC1iY202MzY4LmMKQEAgLTAsMCArMSw1MjMgQEAKKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wKworLyoKKyAqIERyaXZlciBmb3IgQkNN NjM2OCBHUElPIHVuaXQgKHBpbmN0cmwgKyBHUElPKQorICoKKyAqIENvcHlyaWdodCAoQykgMjAy MSDDgWx2YXJvIEZlcm7DoW5kZXogUm9qYXMgPG5vbHRhcmlAZ21haWwuY29tPgorICogQ29weXJp Z2h0IChDKSAyMDE2IEpvbmFzIEdvcnNraSA8am9uYXMuZ29yc2tpQGdtYWlsLmNvbT4KKyAqLwor CisjaW5jbHVkZSA8bGludXgvYml0cy5oPgorI2luY2x1ZGUgPGxpbnV4L2dwaW8vZHJpdmVyLmg+ CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8bGludXgvb2YuaD4KKyNpbmNs dWRlIDxsaW51eC9waW5jdHJsL3Bpbm11eC5oPgorI2luY2x1ZGUgPGxpbnV4L3BsYXRmb3JtX2Rl dmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorCisjaW5jbHVkZSAiLi4vcGluY3Ry bC11dGlscy5oIgorCisjaW5jbHVkZSAicGluY3RybC1iY202M3h4LmgiCisKKyNkZWZpbmUgQkNN NjM2OF9OVU1fR1BJT1MJMzgKKworI2RlZmluZSBCQ002MzY4X01PREVfUkVHCTB4MTgKKyNkZWZp bmUgQkNNNjM2OF9CQVNFTU9ERV9SRUcJMHgzOAorI2RlZmluZSAgQkNNNjM2OF9CQVNFTU9ERV9N QVNLCTB4NworI2RlZmluZSAgQkNNNjM2OF9CQVNFTU9ERV9HUElPCTB4MAorI2RlZmluZSAgQkNN NjM2OF9CQVNFTU9ERV9VQVJUMQkweDEKKworc3RydWN0IGJjbTYzNjhfcGluZ3JvdXAgeworCWNv bnN0IGNoYXIgKm5hbWU7CisJY29uc3QgdW5zaWduZWQgKiBjb25zdCBwaW5zOworCWNvbnN0IHVu c2lnbmVkIG51bV9waW5zOworfTsKKworc3RydWN0IGJjbTYzNjhfZnVuY3Rpb24geworCWNvbnN0 IGNoYXIgKm5hbWU7CisJY29uc3QgY2hhciAqIGNvbnN0ICpncm91cHM7CisJY29uc3QgdW5zaWdu ZWQgbnVtX2dyb3VwczsKKworCXVuc2lnbmVkIGRpcl9vdXQ6MTY7CisJdW5zaWduZWQgYmFzZW1v ZGU6MzsKK307CisKK3N0cnVjdCBiY202MzY4X3ByaXYgeworCXN0cnVjdCByZWdtYXBfZmllbGQg Km92ZXJsYXlzOworfTsKKworI2RlZmluZSBCQ002MzY4X0JBU0VNT0RFX1BJTihhLCBiKQkJXAor CXsJCQkJCVwKKwkJLm51bWJlciA9IGEsCQkJXAorCQkubmFtZSA9IGIsCQkJXAorCQkuZHJ2X2Rh dGEgPSAodm9pZCAqKXRydWUJXAorCX0KKworc3RhdGljIGNvbnN0IHN0cnVjdCBwaW5jdHJsX3Bp bl9kZXNjIGJjbTYzNjhfcGluc1tdID0geworCVBJTkNUUkxfUElOKDAsICJncGlvMCIpLAorCVBJ TkNUUkxfUElOKDEsICJncGlvMSIpLAorCVBJTkNUUkxfUElOKDIsICJncGlvMiIpLAorCVBJTkNU UkxfUElOKDMsICJncGlvMyIpLAorCVBJTkNUUkxfUElOKDQsICJncGlvNCIpLAorCVBJTkNUUkxf UElOKDUsICJncGlvNSIpLAorCVBJTkNUUkxfUElOKDYsICJncGlvNiIpLAorCVBJTkNUUkxfUElO KDcsICJncGlvNyIpLAorCVBJTkNUUkxfUElOKDgsICJncGlvOCIpLAorCVBJTkNUUkxfUElOKDks ICJncGlvOSIpLAorCVBJTkNUUkxfUElOKDEwLCAiZ3BpbzEwIiksCisJUElOQ1RSTF9QSU4oMTEs ICJncGlvMTEiKSwKKwlQSU5DVFJMX1BJTigxMiwgImdwaW8xMiIpLAorCVBJTkNUUkxfUElOKDEz LCAiZ3BpbzEzIiksCisJUElOQ1RSTF9QSU4oMTQsICJncGlvMTQiKSwKKwlQSU5DVFJMX1BJTigx NSwgImdwaW8xNSIpLAorCVBJTkNUUkxfUElOKDE2LCAiZ3BpbzE2IiksCisJUElOQ1RSTF9QSU4o MTcsICJncGlvMTciKSwKKwlQSU5DVFJMX1BJTigxOCwgImdwaW8xOCIpLAorCVBJTkNUUkxfUElO KDE5LCAiZ3BpbzE5IiksCisJUElOQ1RSTF9QSU4oMjAsICJncGlvMjAiKSwKKwlQSU5DVFJMX1BJ TigyMSwgImdwaW8yMSIpLAorCVBJTkNUUkxfUElOKDIyLCAiZ3BpbzIyIiksCisJUElOQ1RSTF9Q SU4oMjMsICJncGlvMjMiKSwKKwlQSU5DVFJMX1BJTigyNCwgImdwaW8yNCIpLAorCVBJTkNUUkxf UElOKDI1LCAiZ3BpbzI1IiksCisJUElOQ1RSTF9QSU4oMjYsICJncGlvMjYiKSwKKwlQSU5DVFJM X1BJTigyNywgImdwaW8yNyIpLAorCVBJTkNUUkxfUElOKDI4LCAiZ3BpbzI4IiksCisJUElOQ1RS TF9QSU4oMjksICJncGlvMjkiKSwKKwlCQ002MzY4X0JBU0VNT0RFX1BJTigzMCwgImdwaW8zMCIp LAorCUJDTTYzNjhfQkFTRU1PREVfUElOKDMxLCAiZ3BpbzMxIiksCisJQkNNNjM2OF9CQVNFTU9E RV9QSU4oMzIsICJncGlvMzIiKSwKKwlCQ002MzY4X0JBU0VNT0RFX1BJTigzMywgImdwaW8zMyIp LAorCVBJTkNUUkxfUElOKDM0LCAiZ3BpbzM0IiksCisJUElOQ1RSTF9QSU4oMzUsICJncGlvMzUi KSwKKwlQSU5DVFJMX1BJTigzNiwgImdwaW8zNiIpLAorCVBJTkNUUkxfUElOKDM3LCAiZ3BpbzM3 IiksCit9OworCitzdGF0aWMgdW5zaWduZWQgZ3BpbzBfcGluc1tdID0geyAwIH07CitzdGF0aWMg dW5zaWduZWQgZ3BpbzFfcGluc1tdID0geyAxIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzJfcGlu c1tdID0geyAyIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzNfcGluc1tdID0geyAzIH07CitzdGF0 aWMgdW5zaWduZWQgZ3BpbzRfcGluc1tdID0geyA0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzVf cGluc1tdID0geyA1IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzZfcGluc1tdID0geyA2IH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzdfcGluc1tdID0geyA3IH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzhfcGluc1tdID0geyA4IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzlfcGluc1tdID0geyA5IH07 CitzdGF0aWMgdW5zaWduZWQgZ3BpbzEwX3BpbnNbXSA9IHsgMTAgfTsKK3N0YXRpYyB1bnNpZ25l ZCBncGlvMTFfcGluc1tdID0geyAxMSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xMl9waW5zW10g PSB7IDEyIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzEzX3BpbnNbXSA9IHsgMTMgfTsKK3N0YXRp YyB1bnNpZ25lZCBncGlvMTRfcGluc1tdID0geyAxNCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8x NV9waW5zW10gPSB7IDE1IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE2X3BpbnNbXSA9IHsgMTYg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTdfcGluc1tdID0geyAxNyB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8xOF9waW5zW10gPSB7IDE4IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE5X3BpbnNb XSA9IHsgMTkgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjBfcGluc1tdID0geyAyMCB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8yMV9waW5zW10gPSB7IDIxIH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzIyX3BpbnNbXSA9IHsgMjIgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjNfcGluc1tdID0geyAy MyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNF9waW5zW10gPSB7IDI0IH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzI1X3BpbnNbXSA9IHsgMjUgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjZfcGlu c1tdID0geyAyNiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yN19waW5zW10gPSB7IDI3IH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzI4X3BpbnNbXSA9IHsgMjggfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvMjlfcGluc1tdID0geyAyOSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8zMF9waW5zW10gPSB7 IDMwIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMxX3BpbnNbXSA9IHsgMzEgfTsKK3N0YXRpYyB1 bnNpZ25lZCB1YXJ0MV9ncnBfcGluc1tdID0geyAzMCwgMzEsIDMyLCAzMyB9OworCisjZGVmaW5l IEJDTTYzNjhfR1JPVVAobikJCQkJXAorCXsJCQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJ LnBpbnMgPSBuIyNfcGlucywJCQlcCisJCS5udW1fcGlucyA9IEFSUkFZX1NJWkUobiMjX3BpbnMp LAlcCisJfQorCitzdGF0aWMgc3RydWN0IGJjbTYzNjhfcGluZ3JvdXAgYmNtNjM2OF9ncm91cHNb XSA9IHsKKwlCQ002MzY4X0dST1VQKGdwaW8wKSwKKwlCQ002MzY4X0dST1VQKGdwaW8xKSwKKwlC Q002MzY4X0dST1VQKGdwaW8yKSwKKwlCQ002MzY4X0dST1VQKGdwaW8zKSwKKwlCQ002MzY4X0dS T1VQKGdwaW80KSwKKwlCQ002MzY4X0dST1VQKGdwaW81KSwKKwlCQ002MzY4X0dST1VQKGdwaW82 KSwKKwlCQ002MzY4X0dST1VQKGdwaW83KSwKKwlCQ002MzY4X0dST1VQKGdwaW84KSwKKwlCQ002 MzY4X0dST1VQKGdwaW85KSwKKwlCQ002MzY4X0dST1VQKGdwaW8xMCksCisJQkNNNjM2OF9HUk9V UChncGlvMTEpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzEyKSwKKwlCQ002MzY4X0dST1VQKGdwaW8x MyksCisJQkNNNjM2OF9HUk9VUChncGlvMTQpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzE1KSwKKwlC Q002MzY4X0dST1VQKGdwaW8xNiksCisJQkNNNjM2OF9HUk9VUChncGlvMTcpLAorCUJDTTYzNjhf R1JPVVAoZ3BpbzE4KSwKKwlCQ002MzY4X0dST1VQKGdwaW8xOSksCisJQkNNNjM2OF9HUk9VUChn cGlvMjApLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzIxKSwKKwlCQ002MzY4X0dST1VQKGdwaW8yMiks CisJQkNNNjM2OF9HUk9VUChncGlvMjMpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzI0KSwKKwlCQ002 MzY4X0dST1VQKGdwaW8yNSksCisJQkNNNjM2OF9HUk9VUChncGlvMjYpLAorCUJDTTYzNjhfR1JP VVAoZ3BpbzI3KSwKKwlCQ002MzY4X0dST1VQKGdwaW8yOCksCisJQkNNNjM2OF9HUk9VUChncGlv MjkpLAorCUJDTTYzNjhfR1JPVVAoZ3BpbzMwKSwKKwlCQ002MzY4X0dST1VQKGdwaW8zMSksCisJ QkNNNjM2OF9HUk9VUCh1YXJ0MV9ncnApLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCBhbmFsb2dfYWZlXzBfZ3JvdXBzW10gPSB7CisJImdwaW8wIiwKK307CisKK3N0YXRpYyBjb25z dCBjaGFyICogY29uc3QgYW5hbG9nX2FmZV8xX2dyb3Vwc1tdID0geworCSJncGlvMSIsCit9Owor CitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHN5c19pcnFfZ3JvdXBzW10gPSB7CisJImdwaW8y IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgc2VyaWFsX2xlZF9kYXRhX2dyb3Vw c1tdID0geworCSJncGlvMyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNlcmlh bF9sZWRfY2xrX2dyb3Vwc1tdID0geworCSJncGlvNCIsCit9OworCitzdGF0aWMgY29uc3QgY2hh ciAqIGNvbnN0IGluZXRfbGVkX2dyb3Vwc1tdID0geworCSJncGlvNSIsCit9OworCitzdGF0aWMg Y29uc3QgY2hhciAqIGNvbnN0IGVwaHkwX2xlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzYiLAorfTsK Kworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBlcGh5MV9sZWRfZ3JvdXBzW10gPSB7CisJImdw aW83IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZXBoeTJfbGVkX2dyb3Vwc1td ID0geworCSJncGlvOCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGVwaHkzX2xl ZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzkiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCByb2Jvc3dfbGVkX2RhdGFfZ3JvdXBzW10gPSB7CisJImdwaW8xMCIsCit9OworCitzdGF0aWMg Y29uc3QgY2hhciAqIGNvbnN0IHJvYm9zd19sZWRfY2xrX2dyb3Vwc1tdID0geworCSJncGlvMTEi LAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCByb2Jvc3dfbGVkMF9ncm91cHNbXSA9 IHsKKwkiZ3BpbzEyIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3Qgcm9ib3N3X2xl ZDFfZ3JvdXBzW10gPSB7CisJImdwaW8xMyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNv bnN0IHVzYl9kZXZpY2VfbGVkX2dyb3Vwc1tdID0geworCSJncGlvMTQiLAorfTsKKworc3RhdGlj IGNvbnN0IGNoYXIgKiBjb25zdCBwY2lfcmVxMV9ncm91cHNbXSA9IHsKKwkiZ3BpbzE2IiwKK307 CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgcGNpX2dudDFfZ3JvdXBzW10gPSB7CisJImdw aW8xNyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBjaV9pbnRiX2dyb3Vwc1td ID0geworCSJncGlvMTgiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwY2lfcmVx MF9ncm91cHNbXSA9IHsKKwkiZ3BpbzE5IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29u c3QgcGNpX2dudDBfZ3JvdXBzW10gPSB7CisJImdwaW8yMCIsCit9OworCitzdGF0aWMgY29uc3Qg Y2hhciAqIGNvbnN0IHBjbWNpYV9jZDFfZ3JvdXBzW10gPSB7CisJImdwaW8yMiIsCit9OworCitz dGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBjbWNpYV9jZDJfZ3JvdXBzW10gPSB7CisJImdwaW8y MyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBjbWNpYV92czFfZ3JvdXBzW10g PSB7CisJImdwaW8yNCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHBjbWNpYV92 czJfZ3JvdXBzW10gPSB7CisJImdwaW8yNSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNv bnN0IGViaV9jczJfZ3JvdXBzW10gPSB7CisJImdwaW8yNiIsCit9OworCitzdGF0aWMgY29uc3Qg Y2hhciAqIGNvbnN0IGViaV9jczNfZ3JvdXBzW10gPSB7CisJImdwaW8yNyIsCit9OworCitzdGF0 aWMgY29uc3QgY2hhciAqIGNvbnN0IHNwaV9jczJfZ3JvdXBzW10gPSB7CisJImdwaW8yOCIsCit9 OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNwaV9jczNfZ3JvdXBzW10gPSB7CisJImdw aW8yOSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNwaV9jczRfZ3JvdXBzW10g PSB7CisJImdwaW8zMCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHNwaV9jczVf Z3JvdXBzW10gPSB7CisJImdwaW8zMSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IHVhcnQxX2dyb3Vwc1tdID0geworCSJ1YXJ0MV9ncnAiLAorfTsKKworI2RlZmluZSBCQ002MzY4 X0ZVTihuLCBvdXQpCQkJCVwKKwl7CQkJCQkJXAorCQkubmFtZSA9ICNuLAkJCQlcCisJCS5ncm91 cHMgPSBuIyNfZ3JvdXBzLAkJCVwKKwkJLm51bV9ncm91cHMgPSBBUlJBWV9TSVpFKG4jI19ncm91 cHMpLAlcCisJCS5kaXJfb3V0ID0gb3V0LAkJCQlcCisJfQorCisjZGVmaW5lIEJDTTYzNjhfQkFT RU1PREVfRlVOKG4sIHZhbCwgb3V0KQkJXAorCXsJCQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwK KwkJLmdyb3VwcyA9IG4jI19ncm91cHMsCQkJXAorCQkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUo biMjX2dyb3VwcyksCVwKKwkJLmJhc2Vtb2RlID0gQkNNNjM2OF9CQVNFTU9ERV8jI3ZhbCwJXAor CQkuZGlyX291dCA9IG91dCwJCQkJXAorCX0KKworc3RhdGljIGNvbnN0IHN0cnVjdCBiY202MzY4 X2Z1bmN0aW9uIGJjbTYzNjhfZnVuY3NbXSA9IHsKKwlCQ002MzY4X0ZVTihhbmFsb2dfYWZlXzAs IDEpLAorCUJDTTYzNjhfRlVOKGFuYWxvZ19hZmVfMSwgMSksCisJQkNNNjM2OF9GVU4oc3lzX2ly cSwgMSksCisJQkNNNjM2OF9GVU4oc2VyaWFsX2xlZF9kYXRhLCAxKSwKKwlCQ002MzY4X0ZVTihz ZXJpYWxfbGVkX2NsaywgMSksCisJQkNNNjM2OF9GVU4oaW5ldF9sZWQsIDEpLAorCUJDTTYzNjhf RlVOKGVwaHkwX2xlZCwgMSksCisJQkNNNjM2OF9GVU4oZXBoeTFfbGVkLCAxKSwKKwlCQ002MzY4 X0ZVTihlcGh5Ml9sZWQsIDEpLAorCUJDTTYzNjhfRlVOKGVwaHkzX2xlZCwgMSksCisJQkNNNjM2 OF9GVU4ocm9ib3N3X2xlZF9kYXRhLCAxKSwKKwlCQ002MzY4X0ZVTihyb2Jvc3dfbGVkX2Nsaywg MSksCisJQkNNNjM2OF9GVU4ocm9ib3N3X2xlZDAsIDEpLAorCUJDTTYzNjhfRlVOKHJvYm9zd19s ZWQxLCAxKSwKKwlCQ002MzY4X0ZVTih1c2JfZGV2aWNlX2xlZCwgMSksCisJQkNNNjM2OF9GVU4o cGNpX3JlcTEsIDApLAorCUJDTTYzNjhfRlVOKHBjaV9nbnQxLCAwKSwKKwlCQ002MzY4X0ZVTihw Y2lfaW50YiwgMCksCisJQkNNNjM2OF9GVU4ocGNpX3JlcTAsIDApLAorCUJDTTYzNjhfRlVOKHBj aV9nbnQwLCAwKSwKKwlCQ002MzY4X0ZVTihwY21jaWFfY2QxLCAwKSwKKwlCQ002MzY4X0ZVTihw Y21jaWFfY2QyLCAwKSwKKwlCQ002MzY4X0ZVTihwY21jaWFfdnMxLCAwKSwKKwlCQ002MzY4X0ZV TihwY21jaWFfdnMyLCAwKSwKKwlCQ002MzY4X0ZVTihlYmlfY3MyLCAxKSwKKwlCQ002MzY4X0ZV TihlYmlfY3MzLCAxKSwKKwlCQ002MzY4X0ZVTihzcGlfY3MyLCAxKSwKKwlCQ002MzY4X0ZVTihz cGlfY3MzLCAxKSwKKwlCQ002MzY4X0ZVTihzcGlfY3M0LCAxKSwKKwlCQ002MzY4X0ZVTihzcGlf Y3M1LCAxKSwKKwlCQ002MzY4X0JBU0VNT0RFX0ZVTih1YXJ0MSwgVUFSVDEsIDB4NiksCit9Owor CitzdGF0aWMgaW50IGJjbTYzNjhfcGluY3RybF9nZXRfZ3JvdXBfY291bnQoc3RydWN0IHBpbmN0 cmxfZGV2ICpwY3RsZGV2KQoreworCXJldHVybiBBUlJBWV9TSVpFKGJjbTYzNjhfZ3JvdXBzKTsK K30KKworc3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzNjhfcGluY3RybF9nZXRfZ3JvdXBfbmFtZShz dHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJCQkgIHVuc2lnbmVkIGdyb3VwKQorewor CXJldHVybiBiY202MzY4X2dyb3Vwc1tncm91cF0ubmFtZTsKK30KKworc3RhdGljIGludCBiY202 MzY4X3BpbmN0cmxfZ2V0X2dyb3VwX3BpbnMoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAor CQkJCQkgIHVuc2lnbmVkIGdyb3VwLCBjb25zdCB1bnNpZ25lZCAqKnBpbnMsCisJCQkJCSAgdW5z aWduZWQgKm51bV9waW5zKQoreworCSpwaW5zID0gYmNtNjM2OF9ncm91cHNbZ3JvdXBdLnBpbnM7 CisJKm51bV9waW5zID0gYmNtNjM2OF9ncm91cHNbZ3JvdXBdLm51bV9waW5zOworCisJcmV0dXJu IDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjM2OF9waW5jdHJsX2dldF9mdW5jX2NvdW50KHN0cnVj dCBwaW5jdHJsX2RldiAqcGN0bGRldikKK3sKKwlyZXR1cm4gQVJSQVlfU0laRShiY202MzY4X2Z1 bmNzKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIgKmJjbTYzNjhfcGluY3RybF9nZXRfZnVuY19u YW1lKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkJCSB1bnNpZ25lZCBzZWxlY3Rv cikKK3sKKwlyZXR1cm4gYmNtNjM2OF9mdW5jc1tzZWxlY3Rvcl0ubmFtZTsKK30KKworc3RhdGlj IGludCBiY202MzY4X3BpbmN0cmxfZ2V0X2dyb3VwcyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxk ZXYsCisJCQkJICAgICAgdW5zaWduZWQgc2VsZWN0b3IsCisJCQkJICAgICAgY29uc3QgY2hhciAq IGNvbnN0ICoqZ3JvdXBzLAorCQkJCSAgICAgIHVuc2lnbmVkICogY29uc3QgbnVtX2dyb3VwcykK K3sKKwkqZ3JvdXBzID0gYmNtNjM2OF9mdW5jc1tzZWxlY3Rvcl0uZ3JvdXBzOworCSpudW1fZ3Jv dXBzID0gYmNtNjM2OF9mdW5jc1tzZWxlY3Rvcl0ubnVtX2dyb3VwczsKKworCXJldHVybiAwOwor fQorCitzdGF0aWMgaW50IGJjbTYzNjhfcGluY3RybF9zZXRfbXV4KHN0cnVjdCBwaW5jdHJsX2Rl diAqcGN0bGRldiwKKwkJCQkgICB1bnNpZ25lZCBzZWxlY3RvciwgdW5zaWduZWQgZ3JvdXApCit7 CisJc3RydWN0IGJjbTYzeHhfcGluY3RybCAqcGMgPSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShw Y3RsZGV2KTsKKwlzdHJ1Y3QgYmNtNjM2OF9wcml2ICpwcml2ID0gcGMtPmRyaXZlcl9kYXRhOwor CWNvbnN0IHN0cnVjdCBiY202MzY4X3Bpbmdyb3VwICpwZyA9ICZiY202MzY4X2dyb3Vwc1tncm91 cF07CisJY29uc3Qgc3RydWN0IGJjbTYzNjhfZnVuY3Rpb24gKmZ1biA9ICZiY202MzY4X2Z1bmNz W3NlbGVjdG9yXTsKKwlpbnQgaSwgcGluOworCisJaWYgKGZ1bi0+YmFzZW1vZGUpIHsKKwkJdW5z aWduZWQgaW50IG1hc2sgPSAwOworCisJCWZvciAoaSA9IDA7IGkgPCBwZy0+bnVtX3BpbnM7IGkr KykgeworCQkJcGluID0gcGctPnBpbnNbaV07CisJCQlpZiAocGluIDwgQkNNNjNYWF9CQU5LX0dQ SU9TKQorCQkJCW1hc2sgfD0gQklUKHBpbik7CisJCX0KKworCQlyZWdtYXBfdXBkYXRlX2JpdHMo cGMtPnJlZ3MsIEJDTTYzNjhfTU9ERV9SRUcsIG1hc2ssIDApOworCQlyZWdtYXBfZmllbGRfd3Jp dGUocHJpdi0+b3ZlcmxheXMsIGZ1bi0+YmFzZW1vZGUpOworCX0gZWxzZSB7CisJCXBpbiA9IHBn LT5waW5zWzBdOworCisJCWlmIChiY202MzY4X3BpbnNbcGluXS5kcnZfZGF0YSkKKwkJCXJlZ21h cF9maWVsZF93cml0ZShwcml2LT5vdmVybGF5cywKKwkJCQkJICAgQkNNNjM2OF9CQVNFTU9ERV9H UElPKTsKKworCQlyZWdtYXBfdXBkYXRlX2JpdHMocGMtPnJlZ3MsIEJDTTYzNjhfTU9ERV9SRUcs IEJJVChwaW4pLAorCQkJCSAgIEJJVChwaW4pKTsKKwl9CisKKwlmb3IgKHBpbiA9IDA7IHBpbiA8 IHBnLT5udW1fcGluczsgcGluKyspIHsKKwkJc3RydWN0IHBpbmN0cmxfZ3Bpb19yYW5nZSAqcmFu Z2U7CisJCWludCBod19ncGlvID0gYmNtNjM2OF9waW5zW3Bpbl0ubnVtYmVyOworCisJCXJhbmdl ID0gcGluY3RybF9maW5kX2dwaW9fcmFuZ2VfZnJvbV9waW4ocGN0bGRldiwgaHdfZ3Bpbyk7CisJ CWlmIChyYW5nZSkgeworCQkJc3RydWN0IGdwaW9fY2hpcCAqZ2MgPSByYW5nZS0+Z2M7CisKKwkJ CWlmIChmdW4tPmRpcl9vdXQgJiBCSVQocGluKSkKKwkJCQlnYy0+ZGlyZWN0aW9uX291dHB1dChn YywgaHdfZ3BpbywgMCk7CisJCQllbHNlCisJCQkJZ2MtPmRpcmVjdGlvbl9pbnB1dChnYywgaHdf Z3Bpbyk7CisJCX0KKwl9CisKKwlyZXR1cm4gMDsKK30KKworc3RhdGljIGludCBiY202MzY4X2dw aW9fcmVxdWVzdF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCSAgICAg ICBzdHJ1Y3QgcGluY3RybF9ncGlvX3JhbmdlICpyYW5nZSwKKwkJCQkgICAgICAgdW5zaWduZWQg b2Zmc2V0KQoreworCXN0cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjID0gcGluY3RybF9kZXZfZ2V0 X2RydmRhdGEocGN0bGRldik7CisJc3RydWN0IGJjbTYzNjhfcHJpdiAqcHJpdiA9IHBjLT5kcml2 ZXJfZGF0YTsKKworCWlmIChvZmZzZXQgPj0gQkNNNjNYWF9CQU5LX0dQSU9TICYmICFiY202MzY4 X3BpbnNbb2Zmc2V0XS5kcnZfZGF0YSkKKwkJcmV0dXJuIDA7CisKKwkvKiBkaXNhYmxlIGFsbCBm dW5jdGlvbnMgdXNpbmcgdGhpcyBwaW4gKi8KKwlpZiAob2Zmc2V0IDwgQkNNNjNYWF9CQU5LX0dQ SU9TKQorCQlyZWdtYXBfdXBkYXRlX2JpdHMocGMtPnJlZ3MsIEJDTTYzNjhfTU9ERV9SRUcsIEJJ VChvZmZzZXQpLCAwKTsKKworCWlmIChiY202MzY4X3BpbnNbb2Zmc2V0XS5kcnZfZGF0YSkKKwkJ cmVnbWFwX2ZpZWxkX3dyaXRlKHByaXYtPm92ZXJsYXlzLCBCQ002MzY4X0JBU0VNT0RFX0dQSU8p OworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBzdHJ1Y3QgcGluY3RybF9vcHMgYmNtNjM2OF9w Y3RsX29wcyA9IHsKKwkuZHRfZnJlZV9tYXAgPSBwaW5jdHJsX3V0aWxzX2ZyZWVfbWFwLAorCS5k dF9ub2RlX3RvX21hcCA9IHBpbmNvbmZfZ2VuZXJpY19kdF9ub2RlX3RvX21hcF9waW4sCisJLmdl dF9ncm91cF9uYW1lID0gYmNtNjM2OF9waW5jdHJsX2dldF9ncm91cF9uYW1lLAorCS5nZXRfZ3Jv dXBfcGlucyA9IGJjbTYzNjhfcGluY3RybF9nZXRfZ3JvdXBfcGlucywKKwkuZ2V0X2dyb3Vwc19j b3VudCA9IGJjbTYzNjhfcGluY3RybF9nZXRfZ3JvdXBfY291bnQsCit9OworCitzdGF0aWMgc3Ry dWN0IHBpbm11eF9vcHMgYmNtNjM2OF9wbXhfb3BzID0geworCS5nZXRfZnVuY3Rpb25fZ3JvdXBz ID0gYmNtNjM2OF9waW5jdHJsX2dldF9ncm91cHMsCisJLmdldF9mdW5jdGlvbl9uYW1lID0gYmNt NjM2OF9waW5jdHJsX2dldF9mdW5jX25hbWUsCisJLmdldF9mdW5jdGlvbnNfY291bnQgPSBiY202 MzY4X3BpbmN0cmxfZ2V0X2Z1bmNfY291bnQsCisJLmdwaW9fcmVxdWVzdF9lbmFibGUgPSBiY202 MzY4X2dwaW9fcmVxdWVzdF9lbmFibGUsCisJLnNldF9tdXggPSBiY202MzY4X3BpbmN0cmxfc2V0 X211eCwKKwkuc3RyaWN0ID0gdHJ1ZSwKK307CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNtNjN4 eF9waW5jdHJsX3NvYyBiY202MzY4X3NvYyA9IHsKKwkubmdwaW9zID0gQkNNNjM2OF9OVU1fR1BJ T1MsCisJLm5waW5zID0gQVJSQVlfU0laRShiY202MzY4X3BpbnMpLAorCS5wY3RsX29wcyA9ICZi Y202MzY4X3BjdGxfb3BzLAorCS5waW5zID0gYmNtNjM2OF9waW5zLAorCS5wbXhfb3BzID0gJmJj bTYzNjhfcG14X29wcywKK307CisKK3N0YXRpYyBpbnQgYmNtNjM2OF9waW5jdHJsX3Byb2JlKHN0 cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCit7CisJc3RydWN0IHJlZ19maWVsZCBvdmVybGF5 cyA9IFJFR19GSUVMRChCQ002MzY4X0JBU0VNT0RFX1JFRywgMCwgMTUpOworCXN0cnVjdCBkZXZp Y2UgKmRldiA9ICZwZGV2LT5kZXY7CisJc3RydWN0IGJjbTYzeHhfcGluY3RybCAqcGM7CisJc3Ry dWN0IGJjbTYzNjhfcHJpdiAqcHJpdjsKKwlpbnQgZXJyOworCisJcHJpdiA9IGRldm1fa3phbGxv YyhkZXYsIHNpemVvZigqcHJpdiksIEdGUF9LRVJORUwpOworCWlmICghcHJpdikKKwkJcmV0dXJu IC1FTk9NRU07CisKKwllcnIgPSBiY202M3h4X3BpbmN0cmxfcHJvYmUocGRldiwgJmJjbTYzNjhf c29jLCAodm9pZCAqKSBwcml2KTsKKwlpZiAoZXJyKQorCQlyZXR1cm4gZXJyOworCisJcGMgPSBw bGF0Zm9ybV9nZXRfZHJ2ZGF0YShwZGV2KTsKKworCXByaXYtPm92ZXJsYXlzID0gZGV2bV9yZWdt YXBfZmllbGRfYWxsb2MoZGV2LCBwYy0+cmVncywgb3ZlcmxheXMpOworCWlmIChJU19FUlIocHJp di0+b3ZlcmxheXMpKQorCQlyZXR1cm4gUFRSX0VSUihwcml2LT5vdmVybGF5cyk7CisKKwlyZXR1 cm4gMDsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYmNtNjM2OF9waW5j dHJsX21hdGNoW10gPSB7CisJeyAuY29tcGF0aWJsZSA9ICJicmNtLGJjbTYzNjgtcGluY3RybCIs IH0sCisJeyAvKiBzZW50aW5lbCAqLyB9Cit9OworCitzdGF0aWMgc3RydWN0IHBsYXRmb3JtX2Ry aXZlciBiY202MzY4X3BpbmN0cmxfZHJpdmVyID0geworCS5wcm9iZSA9IGJjbTYzNjhfcGluY3Ry bF9wcm9iZSwKKwkuZHJpdmVyID0geworCQkubmFtZSA9ICJiY202MzY4LXBpbmN0cmwiLAorCQku b2ZfbWF0Y2hfdGFibGUgPSBiY202MzY4X3BpbmN0cmxfbWF0Y2gsCisJfSwKK307CisKK2J1aWx0 aW5fcGxhdGZvcm1fZHJpdmVyKGJjbTYzNjhfcGluY3RybF9kcml2ZXIpOwotLSAKMi4yMC4xCgoK X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJt LWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3Jn Cmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtl cm5lbAo=