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 861C4C433C1 for ; Wed, 24 Mar 2021 08:26:02 +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 B7FA6619D3 for ; Wed, 24 Mar 2021 08:26:01 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org B7FA6619D3 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=bkwkqGd6p8XfoD5P1BzNN546C/NDTbB84uqiVs7XvA8=; b=gVdacIK3rjAvTbubRNNjDPAy4 Ui8u2iB19msObxUGs7SeaPa+bTWgfTgRmVkLaPZRezx5IWeuH8dcGs+zoJ9MN2fa+PuVmvv2cyGfc j1Y1Fk30SwvtS3RcVQ8lp8JecVP82lnFS6AZoawQRGBvRkQ0UV8ypZ6FYK77GHCwwXZB+78xssnBk sNfxwp9FZM3zmQ1ycDHuoeBL7RN23SF9kFSllpMSy8RO9WxAUsatDywt7QBI3Q4PQuOsBJFQ1Aseh w3UJaZEnGliJdi0oa/75gugQAAr/ybCPMj2VxrTdXBsxnOGtdf5nSUmNixvz2VSTH7G+etw8lZEo5 TTO5ZfmDA==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lOyoB-00GabT-M3; Wed, 24 Mar 2021 08:24:07 +0000 Received: from mail-wr1-x42c.google.com ([2a00:1450:4864:20::42c]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lOyjx-00GYuM-EC for linux-arm-kernel@lists.infradead.org; Wed, 24 Mar 2021 08:19:50 +0000 Received: by mail-wr1-x42c.google.com with SMTP id 14so241709wrz.12 for ; Wed, 24 Mar 2021 01:19:45 -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=rWtELwcWbRkiEKSkOvVAbT0YfCIRUU9Vo7r8av7MzWI=; b=nnQKnz8ODFJWzoQxOUlZ304h0dRg+pK87+9oI7l11nWW+Qj4UcZjYqoTbS+NBvjoGB QsvooLz9M0m6QJ9rkv8WkvqrxzzO0ekQuUHz5W/s3+EDvNfxyeq+vhElFpn8HKTUIoI8 xnvs8Lb+ju1TMuVk+lijeH39QImPRZ7XclY1p1UT6VXYLg1USotd8lGK3UgC7xEGUkBo Rc/KD3IvaW0vUxrAup6xwnOOvTxOoYLzxoDPfG2T0TGFaw/1QZCrimUQnvi0CbnZhTeS 9ZQnJ2bKuDhgR8akX9nOUTvx+Y1SE3I/IhyXnM7SUJzwL3SfL8WOCg/0PHAaN9Us+PUo rmiw== 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=rWtELwcWbRkiEKSkOvVAbT0YfCIRUU9Vo7r8av7MzWI=; b=PLTqwniQPN+oP6XduU/N4suea6gb466tL28NtXphOB5nxVXjHcRp5rDW0vRXf4Q22G fu6QEwfpHZyQZqMXGuRtRzk5GiRPu3eogERObSU6iGRq2EH/SeJNwFr2ia4hyEsh9r6r idfG66xIsj6whY1AKPKzIAtwnbL04zMXDX2WrPFyROh+RKR2Eyf69fVJNMZwse3iiCWf NUEJckGiIz3dA6IOGVEoRDLZYpj1ltpLeLtrOBA6Rz3KM80hVgBiE6r4VB1Yvlm6tQLC f/ggBU5bjOflXMkgKt4VF4TuDuSHTK+6EB2M/BaIeXNEMXnsiV3YdPmR4Uta96KP0beG UgQA== X-Gm-Message-State: AOAM532rABAS1cmrKydKb0izYChOkkW82WQ1MIsI4SvcYgD/SV/TUsUv J9mTV2/0iE8BT4TWxMSIv70= X-Google-Smtp-Source: ABdhPJws0rExyRt+ZXeOKyPsuPzzu2gIGT678A/C6EGQRMwcYK4xb7fxoCvE/3MNK8LIhnp2FKwN8g== X-Received: by 2002:a5d:55c4:: with SMTP id i4mr2179247wrw.84.1616573984978; Wed, 24 Mar 2021 01:19:44 -0700 (PDT) Received: from skynet.lan (51.red-83-44-13.dynamicip.rima-tde.net. [83.44.13.51]) by smtp.gmail.com with ESMTPSA id x25sm1498578wmj.14.2021.03.24.01.19.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 24 Mar 2021 01:19:44 -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 v9 19/22] pinctrl: add a pincontrol driver for BCM63268 Date: Wed, 24 Mar 2021 09:19:20 +0100 Message-Id: <20210324081923.20379-20-noltari@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20210324081923.20379-1-noltari@gmail.com> References: <20210324081923.20379-1-noltari@gmail.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210324_081946_325573_FEC59EB6 X-CRM114-Status: GOOD ( 18.67 ) 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 QWRkIGEgcGluY29udHJvbCBkcml2ZXIgZm9yIEJDTTYzMjY4LiBCQ002MzI2OCBhbGxvd3MgbXV4 aW5nIEdQSU9zCnRvIGRpZmZlcmVudCBmdW5jdGlvbnMuIERlcGVuZGluZyBvbiB0aGUgbXV4LCB0 aGVzZSBhcmUgZWl0aGVyIHNpbmdsZQpwaW4gY29uZmlndXJhdGlvbnMgb3Igd2hvbGUgcGluIGdy b3Vwcy4KCkNvLWRldmVsb3BlZC1ieTogSm9uYXMgR29yc2tpIDxqb25hcy5nb3Jza2lAZ21haWwu Y29tPgpTaWduZWQtb2ZmLWJ5OiBKb25hcyBHb3Jza2kgPGpvbmFzLmdvcnNraUBnbWFpbC5jb20+ ClNpZ25lZC1vZmYtYnk6IMOBbHZhcm8gRmVybsOhbmRleiBSb2phcyA8bm9sdGFyaUBnbWFpbC5j b20+Ci0tLQogdjk6IG5vIGNoYW5nZXMKIHY4OiBubyBjaGFuZ2VzCiB2Nzogbm8gY2hhbmdlcwog djY6IG5vIGNoYW5nZXMKIHY1OiBhZGQgY2hhbmdlcyBzdWdnZXN0ZWQgYnkgQW5keSBTaGV2Y2hl bmtvCiB2NDogbm8gY2hhbmdlcwogdjM6IHVzZSBuZXcgc2hhcmVkIGNvZGUKIHYyOiBzd2l0Y2gg dG8gR1BJT19SRUdNQVAKCiBkcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcgICAgICAgICAgICB8 ICAgOCArCiBkcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlICAgICAgICAgICB8ICAgMSArCiBk cml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjMyNjguYyB8IDY0MyArKysrKysrKysrKysr KysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDY1MiBpbnNlcnRpb25zKCspCiBjcmVhdGUg bW9kZSAxMDA2NDQgZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzMjY4LmMKCmRpZmYg LS1naXQgYS9kcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25maWcgYi9kcml2ZXJzL3BpbmN0cmwvYmNt L0tjb25maWcKaW5kZXggYWFiZDRiNzYyYWVkLi4xODY5ODU4NDYxMjAgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvcGluY3RybC9iY20vS2NvbmZpZworKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL0tjb25m aWcKQEAgLTY4LDYgKzY4LDE0IEBAIGNvbmZpZyBQSU5DVFJMX0JDTTYzNjgKIAloZWxwCiAJICAg U2F5IFkgaGVyZSB0byBlbmFibGUgdGhlIEJyb2FkY29tIEJDTTYzNjggR1BJTyBkcml2ZXIuCiAK K2NvbmZpZyBQSU5DVFJMX0JDTTYzMjY4CisJYm9vbCAiQnJvYWRjb20gQkNNNjMyNjggR1BJTyBk cml2ZXIiCisJZGVwZW5kcyBvbiAoQk1JUFNfR0VORVJJQyB8fCBDT01QSUxFX1RFU1QpCisJc2Vs ZWN0IFBJTkNUUkxfQkNNNjNYWAorCWRlZmF1bHQgQk1JUFNfR0VORVJJQworCWhlbHAKKwkgICBT YXkgWSBoZXJlIHRvIGVuYWJsZSB0aGUgQnJvYWRjb20gQkNNNjMyNjggR1BJTyBkcml2ZXIuCisK IGNvbmZpZyBQSU5DVFJMX0lQUk9DX0dQSU8KIAlib29sICJCcm9hZGNvbSBpUHJvYyBHUElPICh3 aXRoIFBJTkNPTkYpIGRyaXZlciIKIAlkZXBlbmRzIG9uIE9GX0dQSU8gJiYgKEFSQ0hfQkNNX0lQ Uk9DIHx8IENPTVBJTEVfVEVTVCkKZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9iY20vTWFr ZWZpbGUgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlCmluZGV4IGExMzMxYmI5NjgwZS4u NDExNzg0N2ZkMjc5IDEwMDY0NAotLS0gYS9kcml2ZXJzL3BpbmN0cmwvYmNtL01ha2VmaWxlCisr KyBiL2RyaXZlcnMvcGluY3RybC9iY20vTWFrZWZpbGUKQEAgLTgsNiArOCw3IEBAIG9iai0kKENP TkZJR19QSU5DVFJMX0JDTTYzMjgpCQkrPSBwaW5jdHJsLWJjbTYzMjgubwogb2JqLSQoQ09ORklH X1BJTkNUUkxfQkNNNjM1OCkJCSs9IHBpbmN0cmwtYmNtNjM1OC5vCiBvYmotJChDT05GSUdfUElO Q1RSTF9CQ002MzYyKQkJKz0gcGluY3RybC1iY202MzYyLm8KIG9iai0kKENPTkZJR19QSU5DVFJM X0JDTTYzNjgpCQkrPSBwaW5jdHJsLWJjbTYzNjgubworb2JqLSQoQ09ORklHX1BJTkNUUkxfQkNN NjMyNjgpCQkrPSBwaW5jdHJsLWJjbTYzMjY4Lm8KIG9iai0kKENPTkZJR19QSU5DVFJMX0lQUk9D X0dQSU8pCSs9IHBpbmN0cmwtaXByb2MtZ3Bpby5vCiBvYmotJChDT05GSUdfUElOQ1RSTF9DWUdO VVNfTVVYKQkrPSBwaW5jdHJsLWN5Z251cy1tdXgubwogb2JqLSQoQ09ORklHX1BJTkNUUkxfTlMp CQkrPSBwaW5jdHJsLW5zLm8KZGlmZiAtLWdpdCBhL2RyaXZlcnMvcGluY3RybC9iY20vcGluY3Ry bC1iY202MzI2OC5jIGIvZHJpdmVycy9waW5jdHJsL2JjbS9waW5jdHJsLWJjbTYzMjY4LmMKbmV3 IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwLi5kNGM1ZmFkN2ZiN2QKLS0tIC9k ZXYvbnVsbAorKysgYi9kcml2ZXJzL3BpbmN0cmwvYmNtL3BpbmN0cmwtYmNtNjMyNjguYwpAQCAt MCwwICsxLDY0MyBAQAorLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjArCisvKgor ICogRHJpdmVyIGZvciBCQ002MzI2OCBHUElPIHVuaXQgKHBpbmN0cmwgKyBHUElPKQorICoKKyAq IENvcHlyaWdodCAoQykgMjAyMSDDgWx2YXJvIEZlcm7DoW5kZXogUm9qYXMgPG5vbHRhcmlAZ21h aWwuY29tPgorICogQ29weXJpZ2h0IChDKSAyMDE2IEpvbmFzIEdvcnNraSA8am9uYXMuZ29yc2tp QGdtYWlsLmNvbT4KKyAqLworCisjaW5jbHVkZSA8bGludXgvYml0cy5oPgorI2luY2x1ZGUgPGxp bnV4L2dwaW8vZHJpdmVyLmg+CisjaW5jbHVkZSA8bGludXgva2VybmVsLmg+CisjaW5jbHVkZSA8 bGludXgvb2YuaD4KKyNpbmNsdWRlIDxsaW51eC9waW5jdHJsL3Bpbm11eC5oPgorI2luY2x1ZGUg PGxpbnV4L3BsYXRmb3JtX2RldmljZS5oPgorI2luY2x1ZGUgPGxpbnV4L3JlZ21hcC5oPgorCisj aW5jbHVkZSAiLi4vcGluY3RybC11dGlscy5oIgorCisjaW5jbHVkZSAicGluY3RybC1iY202M3h4 LmgiCisKKyNkZWZpbmUgQkNNNjMyNjhfTlVNX0dQSU9TCQk1MgorI2RlZmluZSBCQ002MzI2OF9O VU1fTEVEUwkJMjQKKworI2RlZmluZSBCQ002MzI2OF9MRURfUkVHCQkweDEwCisjZGVmaW5lIEJD TTYzMjY4X01PREVfUkVHCQkweDE4CisjZGVmaW5lIEJDTTYzMjY4X0NUUkxfUkVHCQkweDFjCisj ZGVmaW5lIEJDTTYzMjY4X0JBU0VNT0RFX1JFRwkJMHgzOAorI2RlZmluZSAgQkNNNjMyNjhfQkFT RU1PREVfTkFORAkJQklUKDIpIC8qIEdQSU9zIDItNywgMjQtMzEgKi8KKyNkZWZpbmUgIEJDTTYz MjY4X0JBU0VNT0RFX0dQSU8zNQlCSVQoNCkgLyogR1BJTyAzNSAqLworI2RlZmluZSAgQkNNNjMy NjhfQkFTRU1PREVfREVDVFBECUJJVCg1KSAvKiBHUElPcyA4LzkgKi8KKyNkZWZpbmUgIEJDTTYz MjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzAJQklUKDYpIC8qIEdQSU9zIDEwLzExICovCisjZGVmaW5l ICBCQ002MzI2OF9CQVNFTU9ERV9WRFNMX1BIWV8xCUJJVCg3KSAvKiBHUElPcyAxMi8xMyAqLwor I2RlZmluZSAgQkNNNjMyNjhfQkFTRU1PREVfVkRTTF9QSFlfMglCSVQoOCkgLyogR1BJT3MgMjQv MjUgKi8KKyNkZWZpbmUgIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzMJQklUKDkpIC8qIEdQ SU9zIDI2LzI3ICovCisKK2VudW0gYmNtNjMyNjhfcGluY3RybF9yZWcgeworCUJDTTYzMjY4X0xF RENUUkwsCisJQkNNNjMyNjhfTU9ERSwKKwlCQ002MzI2OF9DVFJMLAorCUJDTTYzMjY4X0JBU0VN T0RFLAorfTsKKworc3RydWN0IGJjbTYzMjY4X3Bpbmdyb3VwIHsKKwljb25zdCBjaGFyICpuYW1l OworCWNvbnN0IHVuc2lnbmVkICogY29uc3QgcGluczsKKwljb25zdCB1bnNpZ25lZCBudW1fcGlu czsKK307CisKK3N0cnVjdCBiY202MzI2OF9mdW5jdGlvbiB7CisJY29uc3QgY2hhciAqbmFtZTsK Kwljb25zdCBjaGFyICogY29uc3QgKmdyb3VwczsKKwljb25zdCB1bnNpZ25lZCBudW1fZ3JvdXBz OworCisJZW51bSBiY202MzI2OF9waW5jdHJsX3JlZyByZWc7CisJdWludDMyX3QgbWFzazsKK307 CisKKyNkZWZpbmUgQkNNNjMyNjhfUElOKGEsIGIsIGJhc2Vtb2RlKQkJCVwKKwl7CQkJCQkJXAor CQkubnVtYmVyID0gYSwJCQkJXAorCQkubmFtZSA9IGIsCQkJCVwKKwkJLmRydl9kYXRhID0gKHZv aWQgKikoYmFzZW1vZGUpCQlcCisJfQorCitzdGF0aWMgY29uc3Qgc3RydWN0IHBpbmN0cmxfcGlu X2Rlc2MgYmNtNjMyNjhfcGluc1tdID0geworCVBJTkNUUkxfUElOKDAsICJncGlvMCIpLAorCVBJ TkNUUkxfUElOKDEsICJncGlvMSIpLAorCUJDTTYzMjY4X1BJTigyLCAiZ3BpbzIiLCBCQ002MzI2 OF9CQVNFTU9ERV9OQU5EKSwKKwlCQ002MzI2OF9QSU4oMywgImdwaW8zIiwgQkNNNjMyNjhfQkFT RU1PREVfTkFORCksCisJQkNNNjMyNjhfUElOKDQsICJncGlvNCIsIEJDTTYzMjY4X0JBU0VNT0RF X05BTkQpLAorCUJDTTYzMjY4X1BJTig1LCAiZ3BpbzUiLCBCQ002MzI2OF9CQVNFTU9ERV9OQU5E KSwKKwlCQ002MzI2OF9QSU4oNiwgImdwaW82IiwgQkNNNjMyNjhfQkFTRU1PREVfTkFORCksCisJ QkNNNjMyNjhfUElOKDcsICJncGlvNyIsIEJDTTYzMjY4X0JBU0VNT0RFX05BTkQpLAorCUJDTTYz MjY4X1BJTig4LCAiZ3BpbzgiLCBCQ002MzI2OF9CQVNFTU9ERV9ERUNUUEQpLAorCUJDTTYzMjY4 X1BJTig5LCAiZ3BpbzkiLCBCQ002MzI2OF9CQVNFTU9ERV9ERUNUUEQpLAorCUJDTTYzMjY4X1BJ TigxMCwgImdwaW8xMCIsIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzApLAorCUJDTTYzMjY4 X1BJTigxMSwgImdwaW8xMSIsIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzApLAorCUJDTTYz MjY4X1BJTigxMiwgImdwaW8xMiIsIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzEpLAorCUJD TTYzMjY4X1BJTigxMywgImdwaW8xMyIsIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzEpLAor CVBJTkNUUkxfUElOKDE0LCAiZ3BpbzE0IiksCisJUElOQ1RSTF9QSU4oMTUsICJncGlvMTUiKSwK KwlQSU5DVFJMX1BJTigxNiwgImdwaW8xNiIpLAorCVBJTkNUUkxfUElOKDE3LCAiZ3BpbzE3Iiks CisJUElOQ1RSTF9QSU4oMTgsICJncGlvMTgiKSwKKwlQSU5DVFJMX1BJTigxOSwgImdwaW8xOSIp LAorCVBJTkNUUkxfUElOKDIwLCAiZ3BpbzIwIiksCisJUElOQ1RSTF9QSU4oMjEsICJncGlvMjEi KSwKKwlQSU5DVFJMX1BJTigyMiwgImdwaW8yMiIpLAorCVBJTkNUUkxfUElOKDIzLCAiZ3BpbzIz IiksCisJQkNNNjMyNjhfUElOKDI0LCAiZ3BpbzI0IiwKKwkJICAgICBCQ002MzI2OF9CQVNFTU9E RV9OQU5EIHwgQkNNNjMyNjhfQkFTRU1PREVfVkRTTF9QSFlfMiksCisJQkNNNjMyNjhfUElOKDI1 LCAiZ3BpbzI1IiwKKwkJICAgICBCQ002MzI2OF9CQVNFTU9ERV9OQU5EIHwgQkNNNjMyNjhfQkFT RU1PREVfVkRTTF9QSFlfMiksCisJQkNNNjMyNjhfUElOKDI2LCAiZ3BpbzI2IiwKKwkJICAgICBC Q002MzI2OF9CQVNFTU9ERV9OQU5EIHwgQkNNNjMyNjhfQkFTRU1PREVfVkRTTF9QSFlfMyksCisJ QkNNNjMyNjhfUElOKDI3LCAiZ3BpbzI3IiwKKwkJICAgICBCQ002MzI2OF9CQVNFTU9ERV9OQU5E IHwgQkNNNjMyNjhfQkFTRU1PREVfVkRTTF9QSFlfMyksCisJQkNNNjMyNjhfUElOKDI4LCAiZ3Bp bzI4IiwgQkNNNjMyNjhfQkFTRU1PREVfTkFORCksCisJQkNNNjMyNjhfUElOKDI5LCAiZ3BpbzI5 IiwgQkNNNjMyNjhfQkFTRU1PREVfTkFORCksCisJQkNNNjMyNjhfUElOKDMwLCAiZ3BpbzMwIiwg QkNNNjMyNjhfQkFTRU1PREVfTkFORCksCisJQkNNNjMyNjhfUElOKDMxLCAiZ3BpbzMxIiwgQkNN NjMyNjhfQkFTRU1PREVfTkFORCksCisJUElOQ1RSTF9QSU4oMzIsICJncGlvMzIiKSwKKwlQSU5D VFJMX1BJTigzMywgImdwaW8zMyIpLAorCVBJTkNUUkxfUElOKDM0LCAiZ3BpbzM0IiksCisJUElO Q1RSTF9QSU4oMzUsICJncGlvMzUiKSwKKwlQSU5DVFJMX1BJTigzNiwgImdwaW8zNiIpLAorCVBJ TkNUUkxfUElOKDM3LCAiZ3BpbzM3IiksCisJUElOQ1RSTF9QSU4oMzgsICJncGlvMzgiKSwKKwlQ SU5DVFJMX1BJTigzOSwgImdwaW8zOSIpLAorCVBJTkNUUkxfUElOKDQwLCAiZ3BpbzQwIiksCisJ UElOQ1RSTF9QSU4oNDEsICJncGlvNDEiKSwKKwlQSU5DVFJMX1BJTig0MiwgImdwaW80MiIpLAor CVBJTkNUUkxfUElOKDQzLCAiZ3BpbzQzIiksCisJUElOQ1RSTF9QSU4oNDQsICJncGlvNDQiKSwK KwlQSU5DVFJMX1BJTig0NSwgImdwaW80NSIpLAorCVBJTkNUUkxfUElOKDQ2LCAiZ3BpbzQ2Iiks CisJUElOQ1RSTF9QSU4oNDcsICJncGlvNDciKSwKKwlQSU5DVFJMX1BJTig0OCwgImdwaW80OCIp LAorCVBJTkNUUkxfUElOKDQ5LCAiZ3BpbzQ5IiksCisJUElOQ1RSTF9QSU4oNTAsICJncGlvNTAi KSwKKwlQSU5DVFJMX1BJTig1MSwgImdwaW81MSIpLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGdw aW8wX3BpbnNbXSA9IHsgMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xX3BpbnNbXSA9IHsgMSB9 Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yX3BpbnNbXSA9IHsgMiB9Oworc3RhdGljIHVuc2lnbmVk IGdwaW8zX3BpbnNbXSA9IHsgMyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80X3BpbnNbXSA9IHsg NCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW81X3BpbnNbXSA9IHsgNSB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW82X3BpbnNbXSA9IHsgNiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW83X3BpbnNbXSA9 IHsgNyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW84X3BpbnNbXSA9IHsgOCB9Oworc3RhdGljIHVu c2lnbmVkIGdwaW85X3BpbnNbXSA9IHsgOSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8xMF9waW5z W10gPSB7IDEwIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzExX3BpbnNbXSA9IHsgMTEgfTsKK3N0 YXRpYyB1bnNpZ25lZCBncGlvMTJfcGluc1tdID0geyAxMiB9Oworc3RhdGljIHVuc2lnbmVkIGdw aW8xM19waW5zW10gPSB7IDEzIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE0X3BpbnNbXSA9IHsg MTQgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMTVfcGluc1tdID0geyAxNSB9Oworc3RhdGljIHVu c2lnbmVkIGdwaW8xNl9waW5zW10gPSB7IDE2IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzE3X3Bp bnNbXSA9IHsgMTcgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMThfcGluc1tdID0geyAxOCB9Owor c3RhdGljIHVuc2lnbmVkIGdwaW8xOV9waW5zW10gPSB7IDE5IH07CitzdGF0aWMgdW5zaWduZWQg Z3BpbzIwX3BpbnNbXSA9IHsgMjAgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjFfcGluc1tdID0g eyAyMSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yMl9waW5zW10gPSB7IDIyIH07CitzdGF0aWMg dW5zaWduZWQgZ3BpbzIzX3BpbnNbXSA9IHsgMjMgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMjRf cGluc1tdID0geyAyNCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yNV9waW5zW10gPSB7IDI1IH07 CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI2X3BpbnNbXSA9IHsgMjYgfTsKK3N0YXRpYyB1bnNpZ25l ZCBncGlvMjdfcGluc1tdID0geyAyNyB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8yOF9waW5zW10g PSB7IDI4IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzI5X3BpbnNbXSA9IHsgMjkgfTsKK3N0YXRp YyB1bnNpZ25lZCBncGlvMzBfcGluc1tdID0geyAzMCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW8z MV9waW5zW10gPSB7IDMxIH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzMyX3BpbnNbXSA9IHsgMzIg fTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzNfcGluc1tdID0geyAzMyB9Oworc3RhdGljIHVuc2ln bmVkIGdwaW8zNF9waW5zW10gPSB7IDM0IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzM1X3BpbnNb XSA9IHsgMzUgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzZfcGluc1tdID0geyAzNiB9Oworc3Rh dGljIHVuc2lnbmVkIGdwaW8zN19waW5zW10gPSB7IDM3IH07CitzdGF0aWMgdW5zaWduZWQgZ3Bp bzM4X3BpbnNbXSA9IHsgMzggfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvMzlfcGluc1tdID0geyAz OSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80MF9waW5zW10gPSB7IDQwIH07CitzdGF0aWMgdW5z aWduZWQgZ3BpbzQxX3BpbnNbXSA9IHsgNDEgfTsKK3N0YXRpYyB1bnNpZ25lZCBncGlvNDJfcGlu c1tdID0geyA0MiB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80M19waW5zW10gPSB7IDQzIH07Citz dGF0aWMgdW5zaWduZWQgZ3BpbzQ0X3BpbnNbXSA9IHsgNDQgfTsKK3N0YXRpYyB1bnNpZ25lZCBn cGlvNDVfcGluc1tdID0geyA0NSB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80Nl9waW5zW10gPSB7 IDQ2IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzQ3X3BpbnNbXSA9IHsgNDcgfTsKK3N0YXRpYyB1 bnNpZ25lZCBncGlvNDhfcGluc1tdID0geyA0OCB9Oworc3RhdGljIHVuc2lnbmVkIGdwaW80OV9w aW5zW10gPSB7IDQ5IH07CitzdGF0aWMgdW5zaWduZWQgZ3BpbzUwX3BpbnNbXSA9IHsgNTAgfTsK K3N0YXRpYyB1bnNpZ25lZCBncGlvNTFfcGluc1tdID0geyA1MSB9OworCitzdGF0aWMgdW5zaWdu ZWQgbmFuZF9ncnBfcGluc1tdID0geworCTIsIDMsIDQsIDUsIDYsIDcsIDI0LAorCTI1LCAyNiwg MjcsIDI4LCAyOSwgMzAsIDMxLAorfTsKKworc3RhdGljIHVuc2lnbmVkIGRlY3RwZF9ncnBfcGlu c1tdID0geyA4LCA5IH07CitzdGF0aWMgdW5zaWduZWQgdmRzbF9waHkwX2dycF9waW5zW10gPSB7 IDEwLCAxMSB9Oworc3RhdGljIHVuc2lnbmVkIHZkc2xfcGh5MV9ncnBfcGluc1tdID0geyAxMiwg MTMgfTsKK3N0YXRpYyB1bnNpZ25lZCB2ZHNsX3BoeTJfZ3JwX3BpbnNbXSA9IHsgMjQsIDI1IH07 CitzdGF0aWMgdW5zaWduZWQgdmRzbF9waHkzX2dycF9waW5zW10gPSB7IDI2LCAyNyB9OworCisj ZGVmaW5lIEJDTTYzMjY4X0dST1VQKG4pCQkJCQlcCisJewkJCQkJCQlcCisJCS5uYW1lID0gI24s CQkJCQlcCisJCS5waW5zID0gbiMjX3BpbnMsCQkJCVwKKwkJLm51bV9waW5zID0gQVJSQVlfU0la RShuIyNfcGlucyksCQlcCisJfQorCitzdGF0aWMgc3RydWN0IGJjbTYzMjY4X3Bpbmdyb3VwIGJj bTYzMjY4X2dyb3Vwc1tdID0geworCUJDTTYzMjY4X0dST1VQKGdwaW8wKSwKKwlCQ002MzI2OF9H Uk9VUChncGlvMSksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzIpLAorCUJDTTYzMjY4X0dST1VQKGdw aW8zKSwKKwlCQ002MzI2OF9HUk9VUChncGlvNCksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzUpLAor CUJDTTYzMjY4X0dST1VQKGdwaW82KSwKKwlCQ002MzI2OF9HUk9VUChncGlvNyksCisJQkNNNjMy NjhfR1JPVVAoZ3BpbzgpLAorCUJDTTYzMjY4X0dST1VQKGdwaW85KSwKKwlCQ002MzI2OF9HUk9V UChncGlvMTApLAorCUJDTTYzMjY4X0dST1VQKGdwaW8xMSksCisJQkNNNjMyNjhfR1JPVVAoZ3Bp bzEyKSwKKwlCQ002MzI2OF9HUk9VUChncGlvMTMpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8xNCks CisJQkNNNjMyNjhfR1JPVVAoZ3BpbzE1KSwKKwlCQ002MzI2OF9HUk9VUChncGlvMTYpLAorCUJD TTYzMjY4X0dST1VQKGdwaW8xNyksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzE4KSwKKwlCQ002MzI2 OF9HUk9VUChncGlvMTkpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8yMCksCisJQkNNNjMyNjhfR1JP VVAoZ3BpbzIxKSwKKwlCQ002MzI2OF9HUk9VUChncGlvMjIpLAorCUJDTTYzMjY4X0dST1VQKGdw aW8yMyksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzI0KSwKKwlCQ002MzI2OF9HUk9VUChncGlvMjUp LAorCUJDTTYzMjY4X0dST1VQKGdwaW8yNiksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzI3KSwKKwlC Q002MzI2OF9HUk9VUChncGlvMjgpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8yOSksCisJQkNNNjMy NjhfR1JPVVAoZ3BpbzMwKSwKKwlCQ002MzI2OF9HUk9VUChncGlvMzEpLAorCUJDTTYzMjY4X0dS T1VQKGdwaW8zMiksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzMzKSwKKwlCQ002MzI2OF9HUk9VUChn cGlvMzQpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8zNSksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzM2 KSwKKwlCQ002MzI2OF9HUk9VUChncGlvMzcpLAorCUJDTTYzMjY4X0dST1VQKGdwaW8zOCksCisJ QkNNNjMyNjhfR1JPVVAoZ3BpbzM5KSwKKwlCQ002MzI2OF9HUk9VUChncGlvNDApLAorCUJDTTYz MjY4X0dST1VQKGdwaW80MSksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzQyKSwKKwlCQ002MzI2OF9H Uk9VUChncGlvNDMpLAorCUJDTTYzMjY4X0dST1VQKGdwaW80NCksCisJQkNNNjMyNjhfR1JPVVAo Z3BpbzQ1KSwKKwlCQ002MzI2OF9HUk9VUChncGlvNDYpLAorCUJDTTYzMjY4X0dST1VQKGdwaW80 NyksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzQ4KSwKKwlCQ002MzI2OF9HUk9VUChncGlvNDkpLAor CUJDTTYzMjY4X0dST1VQKGdwaW81MCksCisJQkNNNjMyNjhfR1JPVVAoZ3BpbzUxKSwKKworCS8q IG11bHRpIHBpbiBncm91cHMgKi8KKwlCQ002MzI2OF9HUk9VUChuYW5kX2dycCksCisJQkNNNjMy NjhfR1JPVVAoZGVjdHBkX2dycCksCisJQkNNNjMyNjhfR1JPVVAodmRzbF9waHkwX2dycCksCisJ QkNNNjMyNjhfR1JPVVAodmRzbF9waHkxX2dycCksCisJQkNNNjMyNjhfR1JPVVAodmRzbF9waHky X2dycCksCisJQkNNNjMyNjhfR1JPVVAodmRzbF9waHkzX2dycCksCit9OworCitzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IGxlZF9ncm91cHNbXSA9IHsKKwkiZ3BpbzAiLAorCSJncGlvMSIsCisJ ImdwaW8yIiwKKwkiZ3BpbzMiLAorCSJncGlvNCIsCisJImdwaW81IiwKKwkiZ3BpbzYiLAorCSJn cGlvNyIsCisJImdwaW84IiwKKwkiZ3BpbzkiLAorCSJncGlvMTAiLAorCSJncGlvMTEiLAorCSJn cGlvMTIiLAorCSJncGlvMTMiLAorCSJncGlvMTQiLAorCSJncGlvMTUiLAorCSJncGlvMTYiLAor CSJncGlvMTciLAorCSJncGlvMTgiLAorCSJncGlvMTkiLAorCSJncGlvMjAiLAorCSJncGlvMjEi LAorCSJncGlvMjIiLAorCSJncGlvMjMiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25z dCBzZXJpYWxfbGVkX2Nsa19ncm91cHNbXSA9IHsKKwkiZ3BpbzAiLAorfTsKKworc3RhdGljIGNv bnN0IGNoYXIgKiBjb25zdCBzZXJpYWxfbGVkX2RhdGFfZ3JvdXBzW10gPSB7CisJImdwaW8xIiwK K307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgaHNzcGlfY3M0X2dyb3Vwc1tdID0gewor CSJncGlvMTYiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBoc3NwaV9jczVfZ3Jv dXBzW10gPSB7CisJImdwaW8xNyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGhz c3BpX2NzNl9ncm91cHNbXSA9IHsKKwkiZ3BpbzgiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIg KiBjb25zdCBoc3NwaV9jczdfZ3JvdXBzW10gPSB7CisJImdwaW85IiwKK307CisKK3N0YXRpYyBj b25zdCBjaGFyICogY29uc3QgdWFydDFfc2N0c19ncm91cHNbXSA9IHsKKwkiZ3BpbzEwIiwKKwki Z3BpbzI0IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDFfc3J0c19ncm91 cHNbXSA9IHsKKwkiZ3BpbzExIiwKKwkiZ3BpbzI1IiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFy ICogY29uc3QgdWFydDFfc2Rpbl9ncm91cHNbXSA9IHsKKwkiZ3BpbzEyIiwKKwkiZ3BpbzI2IiwK K307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdWFydDFfc2RvdXRfZ3JvdXBzW10gPSB7 CisJImdwaW8xMyIsCisJImdwaW8yNyIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IG50cl9wdWxzZV9pbl9ncm91cHNbXSA9IHsKKwkiZ3BpbzE0IiwKKwkiZ3BpbzI4IiwKK307CisK K3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZHNsX250cl9wdWxzZV9vdXRfZ3JvdXBzW10gPSB7 CisJImdwaW8xNSIsCisJImdwaW8yOSIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IGFkc2xfc3BpX21pc29fZ3JvdXBzW10gPSB7CisJImdwaW8xOCIsCit9OworCitzdGF0aWMgY29u c3QgY2hhciAqIGNvbnN0IGFkc2xfc3BpX21vc2lfZ3JvdXBzW10gPSB7CisJImdwaW8xOSIsCit9 OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IHZyZWdfY2xrX2dyb3Vwc1tdID0geworCSJn cGlvMjIiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBwY2llX2Nsa3JlcV9iX2dy b3Vwc1tdID0geworCSJncGlvMjMiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBz d2l0Y2hfbGVkX2Nsa19ncm91cHNbXSA9IHsKKwkiZ3BpbzMwIiwKK307CisKK3N0YXRpYyBjb25z dCBjaGFyICogY29uc3Qgc3dpdGNoX2xlZF9kYXRhX2dyb3Vwc1tdID0geworCSJncGlvMzEiLAor fTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCB3aWZpX2dyb3Vwc1tdID0geworCSJncGlv MzIiLAorCSJncGlvMzMiLAorCSJncGlvMzQiLAorCSJncGlvMzUiLAorCSJncGlvMzYiLAorCSJn cGlvMzciLAorCSJncGlvMzgiLAorCSJncGlvMzkiLAorCSJncGlvNDAiLAorCSJncGlvNDEiLAor CSJncGlvNDIiLAorCSJncGlvNDMiLAorCSJncGlvNDQiLAorCSJncGlvNDUiLAorCSJncGlvNDYi LAorCSJncGlvNDciLAorCSJncGlvNDgiLAorCSJncGlvNDkiLAorCSJncGlvNTAiLAorCSJncGlv NTEiLAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIgKiBjb25zdCBuYW5kX2dyb3Vwc1tdID0gewor CSJuYW5kX2dycCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0IGRlY3RwZF9ncm91 cHNbXSA9IHsKKwkiZGVjdHBkX2dycCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IHZkc2xfcGh5X292ZXJyaWRlXzBfZ3JvdXBzW10gPSB7CisJInZkc2xfcGh5X292ZXJyaWRlXzBf Z3JwIiwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdmRzbF9waHlfb3ZlcnJpZGVf MV9ncm91cHNbXSA9IHsKKwkidmRzbF9waHlfb3ZlcnJpZGVfMV9ncnAiLAorfTsKKworc3RhdGlj IGNvbnN0IGNoYXIgKiBjb25zdCB2ZHNsX3BoeV9vdmVycmlkZV8yX2dyb3Vwc1tdID0geworCSJ2 ZHNsX3BoeV9vdmVycmlkZV8yX2dycCIsCit9OworCitzdGF0aWMgY29uc3QgY2hhciAqIGNvbnN0 IHZkc2xfcGh5X292ZXJyaWRlXzNfZ3JvdXBzW10gPSB7CisJInZkc2xfcGh5X292ZXJyaWRlXzNf Z3JwIiwKK307CisKKyNkZWZpbmUgQkNNNjMyNjhfTEVEX0ZVTihuKQkJCQlcCisJewkJCQkJCVwK KwkJLm5hbWUgPSAjbiwJCQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJCS5udW1f Z3JvdXBzID0gQVJSQVlfU0laRShuIyNfZ3JvdXBzKSwJXAorCQkucmVnID0gQkNNNjMyNjhfTEVE Q1RSTCwJCVwKKwl9CisKKyNkZWZpbmUgQkNNNjMyNjhfTU9ERV9GVU4obikJCQkJXAorCXsJCQkJ CQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJLmdyb3VwcyA9IG4jI19ncm91cHMsCQkJXAorCQku bnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUobiMjX2dyb3VwcyksCVwKKwkJLnJlZyA9IEJDTTYzMjY4 X01PREUsCQkJXAorCX0KKworI2RlZmluZSBCQ002MzI2OF9DVFJMX0ZVTihuKQkJCQlcCisJewkJ CQkJCVwKKwkJLm5hbWUgPSAjbiwJCQkJXAorCQkuZ3JvdXBzID0gbiMjX2dyb3VwcywJCQlcCisJ CS5udW1fZ3JvdXBzID0gQVJSQVlfU0laRShuIyNfZ3JvdXBzKSwJXAorCQkucmVnID0gQkNNNjMy NjhfQ1RSTCwJCQlcCisJfQorCisjZGVmaW5lIEJDTTYzMjY4X0JBU0VNT0RFX0ZVTihuLCB2YWwp CQkJXAorCXsJCQkJCQlcCisJCS5uYW1lID0gI24sCQkJCVwKKwkJLmdyb3VwcyA9IG4jI19ncm91 cHMsCQkJXAorCQkubnVtX2dyb3VwcyA9IEFSUkFZX1NJWkUobiMjX2dyb3VwcyksCVwKKwkJLnJl ZyA9IEJDTTYzMjY4X0JBU0VNT0RFLAkJXAorCQkubWFzayA9IHZhbCwJCQkJXAorCX0KKworc3Rh dGljIGNvbnN0IHN0cnVjdCBiY202MzI2OF9mdW5jdGlvbiBiY202MzI2OF9mdW5jc1tdID0gewor CUJDTTYzMjY4X0xFRF9GVU4obGVkKSwKKwlCQ002MzI2OF9NT0RFX0ZVTihzZXJpYWxfbGVkX2Ns ayksCisJQkNNNjMyNjhfTU9ERV9GVU4oc2VyaWFsX2xlZF9kYXRhKSwKKwlCQ002MzI2OF9NT0RF X0ZVTihoc3NwaV9jczYpLAorCUJDTTYzMjY4X01PREVfRlVOKGhzc3BpX2NzNyksCisJQkNNNjMy NjhfTU9ERV9GVU4odWFydDFfc2N0cyksCisJQkNNNjMyNjhfTU9ERV9GVU4odWFydDFfc3J0cyks CisJQkNNNjMyNjhfTU9ERV9GVU4odWFydDFfc2RpbiksCisJQkNNNjMyNjhfTU9ERV9GVU4odWFy dDFfc2RvdXQpLAorCUJDTTYzMjY4X01PREVfRlVOKG50cl9wdWxzZV9pbiksCisJQkNNNjMyNjhf TU9ERV9GVU4oZHNsX250cl9wdWxzZV9vdXQpLAorCUJDTTYzMjY4X01PREVfRlVOKGhzc3BpX2Nz NCksCisJQkNNNjMyNjhfTU9ERV9GVU4oaHNzcGlfY3M1KSwKKwlCQ002MzI2OF9NT0RFX0ZVTihh ZHNsX3NwaV9taXNvKSwKKwlCQ002MzI2OF9NT0RFX0ZVTihhZHNsX3NwaV9tb3NpKSwKKwlCQ002 MzI2OF9NT0RFX0ZVTih2cmVnX2NsayksCisJQkNNNjMyNjhfTU9ERV9GVU4ocGNpZV9jbGtyZXFf YiksCisJQkNNNjMyNjhfTU9ERV9GVU4oc3dpdGNoX2xlZF9jbGspLAorCUJDTTYzMjY4X01PREVf RlVOKHN3aXRjaF9sZWRfZGF0YSksCisJQkNNNjMyNjhfQ1RSTF9GVU4od2lmaSksCisJQkNNNjMy NjhfQkFTRU1PREVfRlVOKG5hbmQsIEJDTTYzMjY4X0JBU0VNT0RFX05BTkQpLAorCUJDTTYzMjY4 X0JBU0VNT0RFX0ZVTihkZWN0cGQsIEJDTTYzMjY4X0JBU0VNT0RFX0RFQ1RQRCksCisJQkNNNjMy NjhfQkFTRU1PREVfRlVOKHZkc2xfcGh5X292ZXJyaWRlXzAsCisJCQkgICAgICBCQ002MzI2OF9C QVNFTU9ERV9WRFNMX1BIWV8wKSwKKwlCQ002MzI2OF9CQVNFTU9ERV9GVU4odmRzbF9waHlfb3Zl cnJpZGVfMSwKKwkJCSAgICAgIEJDTTYzMjY4X0JBU0VNT0RFX1ZEU0xfUEhZXzEpLAorCUJDTTYz MjY4X0JBU0VNT0RFX0ZVTih2ZHNsX3BoeV9vdmVycmlkZV8yLAorCQkJICAgICAgQkNNNjMyNjhf QkFTRU1PREVfVkRTTF9QSFlfMiksCisJQkNNNjMyNjhfQkFTRU1PREVfRlVOKHZkc2xfcGh5X292 ZXJyaWRlXzMsCisJCQkgICAgICBCQ002MzI2OF9CQVNFTU9ERV9WRFNMX1BIWV8zKSwKK307CisK K3N0YXRpYyBpbnQgYmNtNjMyNjhfcGluY3RybF9nZXRfZ3JvdXBfY291bnQoc3RydWN0IHBpbmN0 cmxfZGV2ICpwY3RsZGV2KQoreworCXJldHVybiBBUlJBWV9TSVpFKGJjbTYzMjY4X2dyb3Vwcyk7 Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpiY202MzI2OF9waW5jdHJsX2dldF9ncm91cF9uYW1l KHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJCQkJCSAgIHVuc2lnbmVkIGdyb3VwKQor eworCXJldHVybiBiY202MzI2OF9ncm91cHNbZ3JvdXBdLm5hbWU7Cit9CisKK3N0YXRpYyBpbnQg YmNtNjMyNjhfcGluY3RybF9nZXRfZ3JvdXBfcGlucyhzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxk ZXYsCisJCQkJCSAgIHVuc2lnbmVkIGdyb3VwLAorCQkJCQkgICBjb25zdCB1bnNpZ25lZCAqKnBp bnMsCisJCQkJCSAgIHVuc2lnbmVkICpudW1fcGlucykKK3sKKwkqcGlucyA9IGJjbTYzMjY4X2dy b3Vwc1tncm91cF0ucGluczsKKwkqbnVtX3BpbnMgPSBiY202MzI2OF9ncm91cHNbZ3JvdXBdLm51 bV9waW5zOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyBpbnQgYmNtNjMyNjhfcGluY3RybF9n ZXRfZnVuY19jb3VudChzdHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYpCit7CisJcmV0dXJuIEFS UkFZX1NJWkUoYmNtNjMyNjhfZnVuY3MpOworfQorCitzdGF0aWMgY29uc3QgY2hhciAqYmNtNjMy NjhfcGluY3RybF9nZXRfZnVuY19uYW1lKHN0cnVjdCBwaW5jdHJsX2RldiAqcGN0bGRldiwKKwkJ CQkJCSAgdW5zaWduZWQgc2VsZWN0b3IpCit7CisJcmV0dXJuIGJjbTYzMjY4X2Z1bmNzW3NlbGVj dG9yXS5uYW1lOworfQorCitzdGF0aWMgaW50IGJjbTYzMjY4X3BpbmN0cmxfZ2V0X2dyb3Vwcyhz dHJ1Y3QgcGluY3RybF9kZXYgKnBjdGxkZXYsCisJCQkJICAgICAgIHVuc2lnbmVkIHNlbGVjdG9y LAorCQkJCSAgICAgICBjb25zdCBjaGFyICogY29uc3QgKipncm91cHMsCisJCQkJICAgICAgIHVu c2lnbmVkICogY29uc3QgbnVtX2dyb3VwcykKK3sKKwkqZ3JvdXBzID0gYmNtNjMyNjhfZnVuY3Nb c2VsZWN0b3JdLmdyb3VwczsKKwkqbnVtX2dyb3VwcyA9IGJjbTYzMjY4X2Z1bmNzW3NlbGVjdG9y XS5udW1fZ3JvdXBzOworCisJcmV0dXJuIDA7Cit9CisKK3N0YXRpYyB2b2lkIGJjbTYzMjY4X3Nl dF9ncGlvKHN0cnVjdCBiY202M3h4X3BpbmN0cmwgKnBjLCB1bnNpZ25lZCBwaW4pCit7CisJY29u c3Qgc3RydWN0IHBpbmN0cmxfcGluX2Rlc2MgKmRlc2MgPSAmYmNtNjMyNjhfcGluc1twaW5dOwor CXVuc2lnbmVkIGludCBiYXNlbW9kZSA9ICh1bnNpZ25lZCBsb25nKSBkZXNjLT5kcnZfZGF0YTsK Kwl1bnNpZ25lZCBpbnQgbWFzayA9IEJJVChiY202M3h4X2JhbmtfcGluKHBpbikpOworCisJaWYg KGJhc2Vtb2RlKQorCQlyZWdtYXBfdXBkYXRlX2JpdHMocGMtPnJlZ3MsIEJDTTYzMjY4X0JBU0VN T0RFX1JFRywgYmFzZW1vZGUsCisJCQkJICAgMCk7CisKKwlpZiAocGluIDwgQkNNNjNYWF9CQU5L X0dQSU9TKSB7CisJCS8qIGJhc2UgbW9kZTogMCA9PiBncGlvLCAxID0+IG11eCBmdW5jdGlvbiAq LworCQlyZWdtYXBfdXBkYXRlX2JpdHMocGMtPnJlZ3MsIEJDTTYzMjY4X01PREVfUkVHLCBtYXNr LCAwKTsKKworCQkvKiBwaW5zIDAtMjMgbWlnaHQgYmUgbXV4ZWQgdG8gbGVkICovCisJCWlmIChw aW4gPCBCQ002MzI2OF9OVU1fTEVEUykKKwkJCXJlZ21hcF91cGRhdGVfYml0cyhwYy0+cmVncywg QkNNNjMyNjhfTEVEX1JFRywgbWFzaywKKwkJCQkJICAgMCk7CisJfSBlbHNlIGlmIChwaW4gPCBC Q002MzI2OF9OVU1fR1BJT1MpIHsKKwkJLyogY3RybCByZWc6IDAgPT4gd2lmaSBmdW5jdGlvbiwg MSA9PiBncGlvICovCisJCXJlZ21hcF91cGRhdGVfYml0cyhwYy0+cmVncywgQkNNNjMyNjhfQ1RS TF9SRUcsIG1hc2ssIG1hc2spOworCX0KK30KKworc3RhdGljIGludCBiY202MzI2OF9waW5jdHJs X3NldF9tdXgoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCSAgICB1bnNpZ25lZCBz ZWxlY3RvciwgdW5zaWduZWQgZ3JvdXApCit7CisJc3RydWN0IGJjbTYzeHhfcGluY3RybCAqcGMg PSBwaW5jdHJsX2Rldl9nZXRfZHJ2ZGF0YShwY3RsZGV2KTsKKwljb25zdCBzdHJ1Y3QgYmNtNjMy NjhfcGluZ3JvdXAgKnBnID0gJmJjbTYzMjY4X2dyb3Vwc1tncm91cF07CisJY29uc3Qgc3RydWN0 IGJjbTYzMjY4X2Z1bmN0aW9uICpmID0gJmJjbTYzMjY4X2Z1bmNzW3NlbGVjdG9yXTsKKwl1bnNp Z25lZCBpOworCXVuc2lnbmVkIGludCByZWc7CisJdW5zaWduZWQgaW50IHZhbCwgbWFzazsKKwor CWZvciAoaSA9IDA7IGkgPCBwZy0+bnVtX3BpbnM7IGkrKykKKwkJYmNtNjMyNjhfc2V0X2dwaW8o cGMsIHBnLT5waW5zW2ldKTsKKworCXN3aXRjaCAoZi0+cmVnKSB7CisJY2FzZSBCQ002MzI2OF9M RURDVFJMOgorCQlyZWcgPSBCQ002MzI2OF9MRURfUkVHOworCQltYXNrID0gQklUKHBnLT5waW5z WzBdKTsKKwkJdmFsID0gQklUKHBnLT5waW5zWzBdKTsKKwkJYnJlYWs7CisJY2FzZSBCQ002MzI2 OF9NT0RFOgorCQlyZWcgPSBCQ002MzI2OF9NT0RFX1JFRzsKKwkJbWFzayA9IEJJVChwZy0+cGlu c1swXSk7CisJCXZhbCA9IEJJVChwZy0+cGluc1swXSk7CisJCWJyZWFrOworCWNhc2UgQkNNNjMy NjhfQ1RSTDoKKwkJcmVnID0gQkNNNjMyNjhfQ1RSTF9SRUc7CisJCW1hc2sgPSBCSVQocGctPnBp bnNbMF0pOworCQl2YWwgPSAwOworCQlicmVhazsKKwljYXNlIEJDTTYzMjY4X0JBU0VNT0RFOgor CQlyZWcgPSBCQ002MzI2OF9CQVNFTU9ERV9SRUc7CisJCW1hc2sgPSBmLT5tYXNrOworCQl2YWwg PSBmLT5tYXNrOworCQlicmVhazsKKwlkZWZhdWx0OgorCQlXQVJOX09OKDEpOworCQlyZXR1cm4g LUVJTlZBTDsKKwl9CisKKwlyZWdtYXBfdXBkYXRlX2JpdHMocGMtPnJlZ3MsIHJlZywgbWFzaywg dmFsKTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgaW50IGJjbTYzMjY4X2dwaW9fcmVxdWVz dF9lbmFibGUoc3RydWN0IHBpbmN0cmxfZGV2ICpwY3RsZGV2LAorCQkJCQlzdHJ1Y3QgcGluY3Ry bF9ncGlvX3JhbmdlICpyYW5nZSwKKwkJCQkJdW5zaWduZWQgb2Zmc2V0KQoreworCXN0cnVjdCBi Y202M3h4X3BpbmN0cmwgKnBjID0gcGluY3RybF9kZXZfZ2V0X2RydmRhdGEocGN0bGRldik7CisK KwkvKiBkaXNhYmxlIGFsbCBmdW5jdGlvbnMgdXNpbmcgdGhpcyBwaW4gKi8KKwliY202MzI2OF9z ZXRfZ3BpbyhwYywgb2Zmc2V0KTsKKworCXJldHVybiAwOworfQorCitzdGF0aWMgc3RydWN0IHBp bmN0cmxfb3BzIGJjbTYzMjY4X3BjdGxfb3BzID0geworCS5kdF9mcmVlX21hcCA9IHBpbmN0cmxf dXRpbHNfZnJlZV9tYXAsCisJLmR0X25vZGVfdG9fbWFwID0gcGluY29uZl9nZW5lcmljX2R0X25v ZGVfdG9fbWFwX3BpbiwKKwkuZ2V0X2dyb3VwX25hbWUgPSBiY202MzI2OF9waW5jdHJsX2dldF9n cm91cF9uYW1lLAorCS5nZXRfZ3JvdXBfcGlucyA9IGJjbTYzMjY4X3BpbmN0cmxfZ2V0X2dyb3Vw X3BpbnMsCisJLmdldF9ncm91cHNfY291bnQgPSBiY202MzI2OF9waW5jdHJsX2dldF9ncm91cF9j b3VudCwKK307CisKK3N0YXRpYyBzdHJ1Y3QgcGlubXV4X29wcyBiY202MzI2OF9wbXhfb3BzID0g eworCS5nZXRfZnVuY3Rpb25fZ3JvdXBzID0gYmNtNjMyNjhfcGluY3RybF9nZXRfZ3JvdXBzLAor CS5nZXRfZnVuY3Rpb25fbmFtZSA9IGJjbTYzMjY4X3BpbmN0cmxfZ2V0X2Z1bmNfbmFtZSwKKwku Z2V0X2Z1bmN0aW9uc19jb3VudCA9IGJjbTYzMjY4X3BpbmN0cmxfZ2V0X2Z1bmNfY291bnQsCisJ LmdwaW9fcmVxdWVzdF9lbmFibGUgPSBiY202MzI2OF9ncGlvX3JlcXVlc3RfZW5hYmxlLAorCS5z ZXRfbXV4ID0gYmNtNjMyNjhfcGluY3RybF9zZXRfbXV4LAorCS5zdHJpY3QgPSB0cnVlLAorfTsK Kworc3RhdGljIGNvbnN0IHN0cnVjdCBiY202M3h4X3BpbmN0cmxfc29jIGJjbTYzMjY4X3NvYyA9 IHsKKwkubmdwaW9zID0gQkNNNjMyNjhfTlVNX0dQSU9TLAorCS5ucGlucyA9IEFSUkFZX1NJWkUo YmNtNjMyNjhfcGlucyksCisJLnBjdGxfb3BzID0gJmJjbTYzMjY4X3BjdGxfb3BzLAorCS5waW5z ID0gYmNtNjMyNjhfcGlucywKKwkucG14X29wcyA9ICZiY202MzI2OF9wbXhfb3BzLAorfTsKKwor c3RhdGljIGludCBiY202MzI2OF9waW5jdHJsX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2Ug KnBkZXYpCit7CisJcmV0dXJuIGJjbTYzeHhfcGluY3RybF9wcm9iZShwZGV2LCAmYmNtNjMyNjhf c29jLCBOVUxMKTsKK30KKworc3RhdGljIGNvbnN0IHN0cnVjdCBvZl9kZXZpY2VfaWQgYmNtNjMy NjhfcGluY3RybF9tYXRjaFtdID0geworCXsgLmNvbXBhdGlibGUgPSAiYnJjbSxiY202MzI2OC1w aW5jdHJsIiwgfSwKKwl7IC8qIHNlbnRpbmVsICovIH0KK307CisKK3N0YXRpYyBzdHJ1Y3QgcGxh dGZvcm1fZHJpdmVyIGJjbTYzMjY4X3BpbmN0cmxfZHJpdmVyID0geworCS5wcm9iZSA9IGJjbTYz MjY4X3BpbmN0cmxfcHJvYmUsCisJLmRyaXZlciA9IHsKKwkJLm5hbWUgPSAiYmNtNjMyNjgtcGlu Y3RybCIsCisJCS5vZl9tYXRjaF90YWJsZSA9IGJjbTYzMjY4X3BpbmN0cmxfbWF0Y2gsCisJfSwK K307CisKK2J1aWx0aW5fcGxhdGZvcm1fZHJpdmVyKGJjbTYzMjY4X3BpbmN0cmxfZHJpdmVyKTsK LS0gCjIuMjAuMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlzdHMu aW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZv L2xpbnV4LWFybS1rZXJuZWwK