From nobody Sun Feb 8 16:31:15 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6668AC001DE for ; Thu, 13 Jul 2023 22:20:21 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233972AbjGMWUT (ORCPT ); Thu, 13 Jul 2023 18:20:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:54848 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233255AbjGMWUI (ORCPT ); Thu, 13 Jul 2023 18:20:08 -0400 Received: from mail-qv1-xf2f.google.com (mail-qv1-xf2f.google.com [IPv6:2607:f8b0:4864:20::f2f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 34FCB35A3 for ; Thu, 13 Jul 2023 15:19:38 -0700 (PDT) Received: by mail-qv1-xf2f.google.com with SMTP id 6a1803df08f44-634efb81e8dso7217336d6.1 for ; Thu, 13 Jul 2023 15:19:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com; s=google; t=1689286774; x=1691878774; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=oeGDnyfiZcKjSlPHFKzzpRmwK0fzE4mt104HzjlZulw=; b=XhFjQvzV53D2I2um6HFaDxNK3oWNYiviHJ+Bs1STJqV4p3SpeQUmJ0m+o2Rcy1NQV+ ceZxNPpnD/bHjFQOgCkWpCw+Ym+78B6MarAUrhU8VlEEqqOuy8QxMZbZmcs98iUPyizT R362IdmrWEUb/FPmRZtlNv3PDVc2mehE2v6Y4= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689286774; x=1691878774; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=oeGDnyfiZcKjSlPHFKzzpRmwK0fzE4mt104HzjlZulw=; b=gh2y0rrjPDgtrfEUhfjOFl5tmKqd7XhsGxKfKbt1ZuDrHgCtvZfvfPaS3612I4XSFk o71xcQcAKz4hFNiOpmIJaUomKntsuiWy7yi4efluPlOPW/+3IAyvEiRJ+9fJmMEmHwc9 9tnOTxI5YsNuvKUSVS3wegslTrKs8HFF7uoWjQfWGnPE4V8ilmeGev711Roq4zSVVuV6 NNDoLRkuCeCZIjABkc7g6Jxqn/pO3qBek7f5N7ZE5zLXOQpYpS6SGA1gDPq64rPJbx0V C7FIn7yG69opoV9xBv8280edR94p9ySr/54lU5itvisApVA37QnMVQGJ6gxsTct8oX3N 0Z+Q== X-Gm-Message-State: ABy/qLbajb7XMPnkiK1l9NQ/K0HDlHmgILAvDl8e+S3aCoh0RqryT5+y eR7RTLYkrvUJnZSFLhNb0TGmoA== X-Google-Smtp-Source: APBJJlHbdFK+xblDJeeKeCHfDtz7gF3ItA55uYsh9Em++8uNsRXrmat//0VkSWrzyBSj0WruH+55BQ== X-Received: by 2002:a05:6214:5146:b0:635:4113:bb07 with SMTP id kh6-20020a056214514600b006354113bb07mr2538292qvb.16.1689286774494; Thu, 13 Jul 2023 15:19:34 -0700 (PDT) Received: from stbirv-lnx-2.igp.broadcom.net ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id i14-20020a0cf38e000000b006262de12a8csm427623qvk.65.2023.07.13.15.19.32 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Jul 2023 15:19:34 -0700 (PDT) From: Justin Chen To: netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, dri-devel@lists.freedesktop.org, bcm-kernel-feedback-list@broadcom.com Cc: florian.fainelli@broadcom.com, davem@davemloft.net, edumazet@google.com, kuba@kernel.org, pabeni@redhat.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, opendmb@gmail.com, andrew@lunn.ch, hkallweit1@gmail.com, linux@armlinux.org.uk, richardcochran@gmail.com, sumit.semwal@linaro.org, simon.horman@corigine.com, christian.koenig@amd.com, Justin Chen Subject: [net-next v9 08/11] net: bcmasp: Add support for ethtool driver stats Date: Thu, 13 Jul 2023 15:19:03 -0700 Message-Id: <1689286746-43609-9-git-send-email-justin.chen@broadcom.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> References: <1689286746-43609-1-git-send-email-justin.chen@broadcom.com> Content-Type: multipart/signed; protocol="application/pkcs7-signature"; micalg=sha-256; boundary="00000000000022ede4060065bacc" Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Transfer-Encoding: quoted-printable --00000000000022ede4060065bacc MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 QWRkIHN1cHBvcnQgZm9yIGV0aGVybmV0IGRyaXZlciBzcGVjaWZpYyBzdGF0cy4KClNpZ25lZC1v ZmYtYnk6IEp1c3RpbiBDaGVuIDxqdXN0aW4uY2hlbkBicm9hZGNvbS5jb20+Ci0tLQp2OQogICAg ICAgIC0gUmVtb3ZlZCB0eF9yZWFsbG9jX29mZmxvYWQsIHRoaXMgc3RhdCBpcyBubyBsb25nZXIg cmVsZXZhbnQgd2l0aAogICAgICAgICAgc2tiX2Nvd19oZWFkKCkuCgktIEFkZGVkIHR4X3RpbWVv dXRfY250Cgp2OAoJLSBBZGRyZXNzIG1heWJlIHVuaW5pdCB2YXJpYWJsZSB3YXJuaW5nCgogZHJp dmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3AuYyAgICAgICAgfCAgIDQgKy0K IGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmggICAgICAgIHwgIDIx ICsrKwogLi4uL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9ldGh0b29sLmMgICAg fCAxNjAgKysrKysrKysrKysrKysrKys9CisrKysKIGRyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2FzcDIvYmNtYXNwX2ludGYuYyAgIHwgIDE4ICsrLQogNCBmaWxlcyBjaGFuZ2VkLCAxOTkg aW5zZXJ0aW9ucygrKSwgNCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL25ldC9l dGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5jIGIvZHJpdmVycy9uZXQvZXRoZT0Kcm5ldC9i cm9hZGNvbS9hc3AyL2JjbWFzcC5jCmluZGV4IDkyZGZlYTk2MWFkZC4uYTk5ODRlZmZmNmQxIDEw MDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5jCisr KyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmMKQEAgLTg5NSw4 ICs4OTUsMTAgQEAgaW50IGJjbWFzcF9zZXRfZW5fbWRhX2ZpbHRlcihzdHJ1Y3QgYmNtYXNwX2lu dGYgKmludGYsPQogdW5zaWduZWQgY2hhciAqYWRkciwKPTIwCiAJCS8qIEF0dGVtcHQgdG8gY29t YmluZSBmaWx0ZXJzICovCiAJCXJldCA9M0QgYmNtYXNwX2NvbWJpbmVfc2V0X2ZpbHRlcihpbnRm LCBhZGRyLCBtYXNrLCBpKTsKLQkJaWYgKCFyZXQpCisJCWlmICghcmV0KSB7CisJCQlpbnRmLT5t aWIuZmlsdGVyc19jb21iaW5lX2NudCsrOwogCQkJcmV0dXJuIDA7CisJCX0KIAl9Cj0yMAogCS8q IENyZWF0ZSBuZXcgZmlsdGVyIGlmIHBvc3NpYmxlICovCmRpZmYgLS1naXQgYS9kcml2ZXJzL25l dC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oIGIvZHJpdmVycy9uZXQvZXRoZT0Kcm5l dC9icm9hZGNvbS9hc3AyL2JjbWFzcC5oCmluZGV4IDE4YTQ0MDQ0YWQ5My4uNmJmY2FhN2Y5NWE4 IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcC5o CisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwLmgKQEAgLTI0 NCw2ICsyNDQsMjYgQEAgc3RydWN0IGJjbWFzcF9pbnRmX3N0YXRzNjQgewogCXN0cnVjdCB1NjRf c3RhdHNfc3luYwkJc3luY3A7CiB9Owo9MjAKK3N0cnVjdCBiY21hc3BfbWliX2NvdW50ZXJzIHsK Kwl1MzIJZWRwa3RfdHM7CisJdTMyCWVkcGt0X3J4X3BrdF9jbnQ7CisJdTMyCWVkcGt0X2hkcl9l eHRfY250OworCXUzMgllZHBrdF9oZHJfb3V0X2NudDsKKwl1MzIJdW1hY19mcm1fY250OworCXUz MglmYl9mcm1fY250OworCXUzMglmYl9yeF9maWZvX2RlcHRoOworCXUzMglmYl9vdXRfZnJtX2Nu dDsKKwl1MzIJZmJfZmlsdF9vdXRfZnJtX2NudDsKKwl1MzIJYWxsb2Nfcnhfc2tiX2ZhaWxlZDsK Kwl1MzIJdHhfZG1hX2ZhaWxlZDsKKwl1MzIJbWNfZmlsdGVyc19mdWxsX2NudDsKKwl1MzIJdWNf ZmlsdGVyc19mdWxsX2NudDsKKwl1MzIJZmlsdGVyc19jb21iaW5lX2NudDsKKwl1MzIJcHJvbWlz Y19maWx0ZXJzX2NudDsKKwl1MzIJdHhfcmVhbGxvY19vZmZsb2FkX2ZhaWxlZDsKKwl1MzIJdHhf dGltZW91dF9jbnQ7Cit9OworCiBzdHJ1Y3QgYmNtYXNwX2ludGZfb3BzIHsKIAl1bnNpZ25lZCBs b25nICgqcnhfZGVzY19yZWFkKShzdHJ1Y3QgYmNtYXNwX2ludGYgKmludGYpOwogCXZvaWQgKCpy eF9idWZmZXJfd3JpdGUpKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiwgZG1hX2FkZHJfdCBhZGRy KTsKQEAgLTMwOSw2ICszMjksNyBAQCBzdHJ1Y3QgYmNtYXNwX2ludGYgewo9MjAKIAkvKiBTdGF0 aXN0aWNzICovCiAJc3RydWN0IGJjbWFzcF9pbnRmX3N0YXRzNjQJc3RhdHM2NDsKKwlzdHJ1Y3Qg YmNtYXNwX21pYl9jb3VudGVycwltaWI7Cj0yMAogCXUzMgkJCQl3b2xvcHRzOwogCXU4CQkJCXNv cGFzc1tTT1BBU1NfTUFYXTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2FzcDIvYmNtYXNwX2V0aHRvb2wuYyBiL2RyaXZlcnMvPQpuZXQvZXRoZXJuZXQvYnJvYWRj b20vYXNwMi9iY21hc3BfZXRodG9vbC5jCmluZGV4IDU5ZDg1M2MyMjkzYy4uYzRmMTYwNGQ1YWIz IDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9l dGh0b29sLmMKKysrIGIvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJvYWRjb20vYXNwMi9iY21hc3Bf ZXRodG9vbC5jCkBAIC0xLDYgKzEsNyBAQAogLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQ TC0yLjAKICNkZWZpbmUgcHJfZm10KGZtdCkJCQkJImJjbWFzcF9ldGh0b29sOiAiIGZtdAo9MjAK KyNpbmNsdWRlIDxhc20tZ2VuZXJpYy91bmFsaWduZWQuaD4KICNpbmNsdWRlIDxsaW51eC9ldGh0 b29sLmg+CiAjaW5jbHVkZSA8bGludXgvbmV0ZGV2aWNlLmg+CiAjaW5jbHVkZSA8bGludXgvcGxh dGZvcm1fZGV2aWNlLmg+CkBAIC04LDYgKzksMTYyIEBACiAjaW5jbHVkZSAiYmNtYXNwLmgiCiAj aW5jbHVkZSAiYmNtYXNwX2ludGZfZGVmcy5oIgo9MjAKK2VudW0gYmNtYXNwX3N0YXRfdHlwZSB7 CisJQkNNQVNQX1NUQVRfUlhfRURQS1QsCisJQkNNQVNQX1NUQVRfUlhfQ1RSTCwKKwlCQ01BU1Bf U1RBVF9SWF9DVFJMX1BFUl9JTlRGLAorCUJDTUFTUF9TVEFUX1NPRlQsCit9OworCitzdHJ1Y3Qg YmNtYXNwX3N0YXRzIHsKKwljaGFyIHN0YXRfc3RyaW5nW0VUSF9HU1RSSU5HX0xFTl07CisJZW51 bSBiY21hc3Bfc3RhdF90eXBlIHR5cGU7CisJdTMyIHJlZ19vZmZzZXQ7Cit9OworCisjZGVmaW5l IFNUQVRfQkNNQVNQX1NPRlRfTUlCKHN0cikgeyBcCisJLnN0YXRfc3RyaW5nID0zRCBzdHIsIFwK KwkudHlwZSA9M0QgQkNNQVNQX1NUQVRfU09GVCwgXAorfQorCisjZGVmaW5lIFNUQVRfQkNNQVNQ X09GRlNFVChzdHIsIF90eXBlLCBvZmZzZXQpIHsgXAorCS5zdGF0X3N0cmluZyA9M0Qgc3RyLCBc CisJLnR5cGUgPTNEIF90eXBlLCBcCisJLnJlZ19vZmZzZXQgPTNEIG9mZnNldCwgXAorfQorCisj ZGVmaW5lIFNUQVRfQkNNQVNQX1JYX0VEUEtUKHN0ciwgb2Zmc2V0KSBcCisJU1RBVF9CQ01BU1Bf T0ZGU0VUKHN0ciwgQkNNQVNQX1NUQVRfUlhfRURQS1QsIG9mZnNldCkKKyNkZWZpbmUgU1RBVF9C Q01BU1BfUlhfQ1RSTChzdHIsIG9mZnNldCkgXAorCVNUQVRfQkNNQVNQX09GRlNFVChzdHIsIEJD TUFTUF9TVEFUX1JYX0NUUkwsIG9mZnNldCkKKyNkZWZpbmUgU1RBVF9CQ01BU1BfUlhfQ1RSTF9Q RVJfSU5URihzdHIsIG9mZnNldCkgXAorCVNUQVRfQkNNQVNQX09GRlNFVChzdHIsIEJDTUFTUF9T VEFUX1JYX0NUUkxfUEVSX0lOVEYsIG9mZnNldCkKKworLyogTXVzdCBtYXRjaCB0aGUgb3JkZXIg b2Ygc3RydWN0IGJjbWFzcF9taWJfY291bnRlcnMgKi8KK3N0YXRpYyBjb25zdCBzdHJ1Y3QgYmNt YXNwX3N0YXRzIGJjbWFzcF9nc3RyaW5nc19zdGF0c1tdID0zRCB7CisJLyogRURQS1QgY291bnRl cnMgKi8KKwlTVEFUX0JDTUFTUF9SWF9FRFBLVCgiUlggVGltZSBTdGFtcCIsIEFTUF9FRFBLVF9S WF9UU19DT1VOVEVSKSwKKwlTVEFUX0JDTUFTUF9SWF9FRFBLVCgiUlggUEtUIENvdW50IiwgQVNQ X0VEUEtUX1JYX1BLVF9DTlQpLAorCVNUQVRfQkNNQVNQX1JYX0VEUEtUKCJSWCBQS1QgQnVmZmVy ZWQiLCBBU1BfRURQS1RfSERSX0VYVFJfQ05UKSwKKwlTVEFUX0JDTUFTUF9SWF9FRFBLVCgiUlgg UEtUIFB1c2hlZCB0byBEUkFNIiwgQVNQX0VEUEtUX0hEUl9PVVRfQ05UKSwKKwkvKiBBU1AgUlgg Y29udHJvbCAqLworCVNUQVRfQkNNQVNQX1JYX0NUUkxfUEVSX0lOVEYoIkZyYW1lcyBGcm9tIFVu aW1hYyIsCisJCQkJICAgICBBU1BfUlhfQ1RSTF9VTUFDXzBfRlJBTUVfQ09VTlQpLAorCVNUQVRf QkNNQVNQX1JYX0NUUkxfUEVSX0lOVEYoIkZyYW1lcyBGcm9tIFBvcnQiLAorCQkJCSAgICAgQVNQ X1JYX0NUUkxfRkJfMF9GUkFNRV9DT1VOVCksCisJU1RBVF9CQ01BU1BfUlhfQ1RSTF9QRVJfSU5U RigiUlggQnVmZmVyIEZJRk8gRGVwdGgiLAorCQkJCSAgICAgQVNQX1JYX0NUUkxfRkJfUlhfRklG T19ERVBUSCksCisJU1RBVF9CQ01BU1BfUlhfQ1RSTCgiRnJhbWVzIE91dChCdWZmZXIpIiwKKwkJ CSAgICBBU1BfUlhfQ1RSTF9GQl9PVVRfRlJBTUVfQ09VTlQpLAorCVNUQVRfQkNNQVNQX1JYX0NU UkwoIkZyYW1lcyBPdXQoRmlsdGVycykiLAorCQkJICAgIEFTUF9SWF9DVFJMX0ZCX0ZJTFRfT1VU X0ZSQU1FX0NPVU5UKSwKKwkvKiBTb2Z0d2FyZSBtYWludGFpbmVkIHN0YXRpc3RpY3MgKi8KKwlT VEFUX0JDTUFTUF9TT0ZUX01JQigiUlggU0tCIEFsbG9jIEZhaWxlZCIpLAorCVNUQVRfQkNNQVNQ X1NPRlRfTUlCKCJUWCBETUEgRmFpbGVkIiksCisJU1RBVF9CQ01BU1BfU09GVF9NSUIoIk11bHRp Y2FzdCBGaWx0ZXJzIEZ1bGwiKSwKKwlTVEFUX0JDTUFTUF9TT0ZUX01JQigiVW5pY2FzdCBGaWx0 ZXJzIEZ1bGwiKSwKKwlTVEFUX0JDTUFTUF9TT0ZUX01JQigiTURBIEZpbHRlcnMgQ29tYmluZWQi KSwKKwlTVEFUX0JDTUFTUF9TT0ZUX01JQigiUHJvbWlzYyBGaWx0ZXIgU2V0IiksCisJU1RBVF9C Q01BU1BfU09GVF9NSUIoIlRYIFJlYWxsb2MgRm9yIE9mZmxvYWQgRmFpbGVkIiksCisJU1RBVF9C Q01BU1BfU09GVF9NSUIoIlR4IFRpbWVvdXQgQ291bnQiKSwKK307CisKKyNkZWZpbmUgQkNNQVNQ X1NUQVRTX0xFTglBUlJBWV9TSVpFKGJjbWFzcF9nc3RyaW5nc19zdGF0cykKKworc3RhdGljIHUx NiBiY21hc3Bfc3RhdF9maXh1cF9vZmZzZXQoc3RydWN0IGJjbWFzcF9pbnRmICppbnRmLAorCQkJ CSAgICBjb25zdCBzdHJ1Y3QgYmNtYXNwX3N0YXRzICpzKQoreworCXN0cnVjdCBiY21hc3BfcHJp diAqcHJpdiA9M0QgaW50Zi0+cGFyZW50OworCisJaWYgKCFzdHJjbXAoIkZyYW1lcyBPdXQoQnVm ZmVyKSIsIHMtPnN0YXRfc3RyaW5nKSkKKwkJcmV0dXJuIHByaXYtPmh3X2luZm8tPnJ4X2N0cmxf ZmJfb3V0X2ZyYW1lX2NvdW50OworCisJaWYgKCFzdHJjbXAoIkZyYW1lcyBPdXQoRmlsdGVycyki LCBzLT5zdGF0X3N0cmluZykpCisJCXJldHVybiBwcml2LT5od19pbmZvLT5yeF9jdHJsX2ZiX2Zp bHRfb3V0X2ZyYW1lX2NvdW50OworCisJaWYgKCFzdHJjbXAoIlJYIEJ1ZmZlciBGSUZPIERlcHRo Iiwgcy0+c3RhdF9zdHJpbmcpKQorCQlyZXR1cm4gcHJpdi0+aHdfaW5mby0+cnhfY3RybF9mYl9y eF9maWZvX2RlcHRoOworCisJcmV0dXJuIHMtPnJlZ19vZmZzZXQ7Cit9CisKK3N0YXRpYyBpbnQg YmNtYXNwX2dldF9zc2V0X2NvdW50KHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsIGludCBzdHJpbmdf c2V0KQoreworCXN3aXRjaCAoc3RyaW5nX3NldCkgeworCWNhc2UgRVRIX1NTX1NUQVRTOgorCQly ZXR1cm4gQkNNQVNQX1NUQVRTX0xFTjsKKwlkZWZhdWx0OgorCQlyZXR1cm4gLUVPUE5PVFNVUFA7 CisJfQorfQorCitzdGF0aWMgdm9pZCBiY21hc3BfZ2V0X3N0cmluZ3Moc3RydWN0IG5ldF9kZXZp Y2UgKmRldiwgdTMyIHN0cmluZ3NldCwKKwkJCSAgICAgICB1OCAqZGF0YSkKK3sKKwl1bnNpZ25l ZCBpbnQgaTsKKworCXN3aXRjaCAoc3RyaW5nc2V0KSB7CisJY2FzZSBFVEhfU1NfU1RBVFM6CisJ CWZvciAoaSA9M0QgMDsgaSA8IEJDTUFTUF9TVEFUU19MRU47IGkrKykgeworCQkJbWVtY3B5KGRh dGEgKyBpICogRVRIX0dTVFJJTkdfTEVOLAorCQkJICAgICAgIGJjbWFzcF9nc3RyaW5nc19zdGF0 c1tpXS5zdGF0X3N0cmluZywKKwkJCSAgICAgICBFVEhfR1NUUklOR19MRU4pOworCQl9CisJCWJy ZWFrOworCWRlZmF1bHQ6CisJCXJldHVybjsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF91 cGRhdGVfbWliX2NvdW50ZXJzKHN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZikKK3sKKwl1bnNpZ25l ZCBpbnQgaTsKKworCWZvciAoaSA9M0QgMDsgaSA8IEJDTUFTUF9TVEFUU19MRU47IGkrKykgewor CQljb25zdCBzdHJ1Y3QgYmNtYXNwX3N0YXRzICpzOworCQl1MzIgb2Zmc2V0LCB2YWw7CisJCWNo YXIgKnA7CisKKwkJcyA9M0QgJmJjbWFzcF9nc3RyaW5nc19zdGF0c1tpXTsKKwkJb2Zmc2V0ID0z RCBiY21hc3Bfc3RhdF9maXh1cF9vZmZzZXQoaW50Ziwgcyk7CisJCXN3aXRjaCAocy0+dHlwZSkg eworCQljYXNlIEJDTUFTUF9TVEFUX1NPRlQ6CisJCQljb250aW51ZTsKKwkJY2FzZSBCQ01BU1Bf U1RBVF9SWF9FRFBLVDoKKwkJCXZhbCA9M0QgcnhfZWRwa3RfY29yZV9ybChpbnRmLT5wYXJlbnQs IG9mZnNldCk7CisJCQlicmVhazsKKwkJY2FzZSBCQ01BU1BfU1RBVF9SWF9DVFJMOgorCQkJdmFs ID0zRCByeF9jdHJsX2NvcmVfcmwoaW50Zi0+cGFyZW50LCBvZmZzZXQpOworCQkJYnJlYWs7CisJ CWNhc2UgQkNNQVNQX1NUQVRfUlhfQ1RSTF9QRVJfSU5URjoKKwkJCW9mZnNldCArPTNEIHNpemVv Zih1MzIpICogaW50Zi0+cG9ydDsKKwkJCXZhbCA9M0QgcnhfY3RybF9jb3JlX3JsKGludGYtPnBh cmVudCwgb2Zmc2V0KTsKKwkJCWJyZWFrOworCQlkZWZhdWx0OgorCQkJY29udGludWU7CisJCX0K KwkJcCA9M0QgKGNoYXIgKikoJmludGYtPm1pYikgKyAoaSAqIHNpemVvZih1MzIpKTsKKwkJcHV0 X3VuYWxpZ25lZCh2YWwsICh1MzIgKilwKTsKKwl9Cit9CisKK3N0YXRpYyB2b2lkIGJjbWFzcF9n ZXRfZXRodG9vbF9zdGF0cyhzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAorCQkJCSAgICAgc3RydWN0 IGV0aHRvb2xfc3RhdHMgKnN0YXRzLAorCQkJCSAgICAgdTY0ICpkYXRhKQoreworCXN0cnVjdCBi Y21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2X3ByaXYoZGV2KTsKKwl1bnNpZ25lZCBpbnQgaTsK KwljaGFyICpwOworCisJaWYgKG5ldGlmX3J1bm5pbmcoZGV2KSkKKwkJYmNtYXNwX3VwZGF0ZV9t aWJfY291bnRlcnMoaW50Zik7CisKKwlmb3IgKGkgPTNEIDA7IGkgPCBCQ01BU1BfU1RBVFNfTEVO OyBpKyspIHsKKwkJcCA9M0QgKGNoYXIgKikoJmludGYtPm1pYikgKyAoaSAqIHNpemVvZih1MzIp KTsKKwkJZGF0YVtpXSA9M0QgKih1MzIgKilwOworCX0KK30KKwogc3RhdGljIHZvaWQgYmNtYXNw X2dldF9kcnZpbmZvKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYsCiAJCQkgICAgICAgc3RydWN0IGV0 aHRvb2xfZHJ2aW5mbyAqaW5mbykKIHsKQEAgLTM0MCw0ICs0OTcsNyBAQCBjb25zdCBzdHJ1Y3Qg ZXRodG9vbF9vcHMgYmNtYXNwX2V0aHRvb2xfb3BzID0zRCB7CiAJLmdldF9ldGhfbWFjX3N0YXRz CT0zRCBiY21hc3BfZ2V0X2V0aF9tYWNfc3RhdHMsCiAJLmdldF9ybW9uX3N0YXRzCQk9M0QgYmNt YXNwX2dldF9ybW9uX3N0YXRzLAogCS5nZXRfZXRoX2N0cmxfc3RhdHMJPTNEIGJjbWFzcF9nZXRf ZXRoX2N0cmxfc3RhdHMsCisJLmdldF9zdHJpbmdzCQk9M0QgYmNtYXNwX2dldF9zdHJpbmdzLAor CS5nZXRfZXRodG9vbF9zdGF0cwk9M0QgYmNtYXNwX2dldF9ldGh0b29sX3N0YXRzLAorCS5nZXRf c3NldF9jb3VudAkJPTNEIGJjbWFzcF9nZXRfc3NldF9jb3VudCwKIH07CmRpZmYgLS1naXQgYS9k cml2ZXJzL25ldC9ldGhlcm5ldC9icm9hZGNvbS9hc3AyL2JjbWFzcF9pbnRmLmMgYi9kcml2ZXJz L25ldD0KL2V0aGVybmV0L2Jyb2FkY29tL2FzcDIvYmNtYXNwX2ludGYuYwppbmRleCAwNTFmODgy YjI3NjYuLjUzZTU0Mjg4MTI1NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9uZXQvZXRoZXJuZXQvYnJv YWRjb20vYXNwMi9iY21hc3BfaW50Zi5jCisrKyBiL2RyaXZlcnMvbmV0L2V0aGVybmV0L2Jyb2Fk Y29tL2FzcDIvYmNtYXNwX2ludGYuYwpAQCAtMTA0LDE1ICsxMDQsMTkgQEAgc3RhdGljIHZvaWQg YmNtYXNwX3NldF9yeF9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCj0yMAogCQluZXRkZXZf Zm9yX2VhY2hfbWNfYWRkcihoYSwgZGV2KSB7CiAJCQlyZXQgPTNEIGJjbWFzcF9zZXRfZW5fbWRh X2ZpbHRlcihpbnRmLCBoYS0+YWRkciwgbWFzayk7Ci0JCQlpZiAocmV0KQorCQkJaWYgKHJldCkg eworCQkJCWludGYtPm1pYi5tY19maWx0ZXJzX2Z1bGxfY250Kys7CiAJCQkJZ290byBzZXRfcHJv bWlzYzsKKwkJCX0KIAkJfQogCX0KPTIwCiAJbmV0ZGV2X2Zvcl9lYWNoX3VjX2FkZHIoaGEsIGRl dikgewogCQlyZXQgPTNEIGJjbWFzcF9zZXRfZW5fbWRhX2ZpbHRlcihpbnRmLCBoYS0+YWRkciwg bWFzayk7Ci0JCWlmIChyZXQpCisJCWlmIChyZXQpIHsKKwkJCWludGYtPm1pYi51Y19maWx0ZXJz X2Z1bGxfY250Kys7CiAJCQlnb3RvIHNldF9wcm9taXNjOworCQl9CiAJfQo9MjAKIAlzcGluX3Vu bG9ja19iaCgmaW50Zi0+cGFyZW50LT5tZGFfbG9jayk7CkBAIC0xMjAsNiArMTI0LDcgQEAgc3Rh dGljIHZvaWQgYmNtYXNwX3NldF9yeF9tb2RlKHN0cnVjdCBuZXRfZGV2aWNlICpkZXYpCj0yMAog c2V0X3Byb21pc2M6CiAJYmNtYXNwX3NldF9wcm9taXNjKGludGYsIDEpOworCWludGYtPm1pYi5w cm9taXNjX2ZpbHRlcnNfY250Kys7Cj0yMAogCS8qIGRpc2FibGUgYWxsIGZpbHRlcnMgdXNlZCBi eSB0aGlzIHBvcnQgKi8KIAliY21hc3BfZGlzYWJsZV9hbGxfZmlsdGVycyhpbnRmKTsKQEAgLTE1 NSw2ICsxNjAsNyBAQCBzdGF0aWMgc3RydWN0IHNrX2J1ZmYgKmJjbWFzcF9jc3VtX29mZmxvYWQo c3RydWN0IG5ldF9kPQpldmljZSAqZGV2LAogCQkJCQkgICBzdHJ1Y3Qgc2tfYnVmZiAqc2tiLAog CQkJCQkgICBib29sICpjc3VtX2h3KQogeworCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0Qg bmV0ZGV2X3ByaXYoZGV2KTsKIAl1MzIgaGVhZGVyID0zRCAwLCBoZWFkZXIyID0zRCAwLCBlcGt0 ID0zRCAwOwogCXN0cnVjdCBiY21hc3BfcGt0X29mZmxvYWQgKm9mZmxvYWQ7CiAJdW5zaWduZWQg aW50IGhlYWRlcl9jbnQgPTNEIDA7CkBAIC0xNjUsOCArMTcxLDEwIEBAIHN0YXRpYyBzdHJ1Y3Qg c2tfYnVmZiAqYmNtYXNwX2NzdW1fb2ZmbG9hZChzdHJ1Y3QgbmV0Xz0KZGV2aWNlICpkZXYsCiAJ CXJldHVybiBza2I7Cj0yMAogCXJldCA9M0Qgc2tiX2Nvd19oZWFkKHNrYiwgc2l6ZW9mKCpvZmZs b2FkKSk7Ci0JaWYgKHJldCA8IDApCisJaWYgKHJldCA8IDApIHsKKwkJaW50Zi0+bWliLnR4X3Jl YWxsb2Nfb2ZmbG9hZF9mYWlsZWQrKzsKIAkJZ290byBoZWxwOworCX0KPTIwCiAJc3dpdGNoIChz a2ItPnByb3RvY29sKSB7CiAJY2FzZSBodG9ucyhFVEhfUF9JUCk6CkBAIC0zMDUsNiArMzEzLDcg QEAgc3RhdGljIG5ldGRldl90eF90IGJjbWFzcF94bWl0KHN0cnVjdCBza19idWZmICpza2IsIHN0 cj0KdWN0IG5ldF9kZXZpY2UgKmRldikKIAkJfQo9MjAKIAkJaWYgKGRtYV9tYXBwaW5nX2Vycm9y KGtkZXYsIG1hcHBpbmcpKSB7CisJCQlpbnRmLT5taWIudHhfZG1hX2ZhaWxlZCsrOwogCQkJc3Bi X2luZGV4ID0zRCBpbnRmLT50eF9zcGJfaW5kZXg7CiAJCQlmb3IgKGogPTNEIDA7IGogPCBpOyBq KyspIHsKIAkJCQliY21hc3BfY2xlYW5fdHhjYihpbnRmLCBzcGJfaW5kZXgpOwpAQCAtNTQxLDYg KzU1MCw4IEBAIHN0YXRpYyBpbnQgYmNtYXNwX3J4X3BvbGwoc3RydWN0IG5hcGlfc3RydWN0ICpu YXBpLCBpbnQ9CiBidWRnZXQpCiAJCQl1NjRfc3RhdHNfdXBkYXRlX2JlZ2luKCZzdGF0cy0+c3lu Y3ApOwogCQkJdTY0X3N0YXRzX2luYygmc3RhdHMtPnJ4X2Ryb3BwZWQpOwogCQkJdTY0X3N0YXRz X3VwZGF0ZV9lbmQoJnN0YXRzLT5zeW5jcCk7CisJCQlpbnRmLT5taWIuYWxsb2Nfcnhfc2tiX2Zh aWxlZCsrOworCiAJCQlnb3RvIG5leHQ7CiAJCX0KPTIwCkBAIC0xMTE2LDYgKzExMjcsNyBAQCBz dGF0aWMgdm9pZCBiY21hc3BfdHhfdGltZW91dChzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LD0KIHVu c2lnbmVkIGludCB0eHF1ZXVlKQogCXN0cnVjdCBiY21hc3BfaW50ZiAqaW50ZiA9M0QgbmV0ZGV2 X3ByaXYoZGV2KTsKPTIwCiAJbmV0aWZfZGJnKGludGYsIHR4X2VyciwgZGV2LCAidHJhbnNtaXQg dGltZW91dCFcbiIpOworCWludGYtPm1pYi50eF90aW1lb3V0X2NudCsrOwogfQo9MjAKIHN0YXRp YyBpbnQgYmNtYXNwX2dldF9waHlzX3BvcnRfbmFtZShzdHJ1Y3QgbmV0X2RldmljZSAqZGV2LAot LT0yMAoyLjcuNAo= --00000000000022ede4060065bacc Content-Type: application/pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature MIIQagYJKoZIhvcNAQcCoIIQWzCCEFcCAQExDzANBglghkgBZQMEAgEFADALBgkqhkiG9w0BBwGg gg3BMIIFDTCCA/WgAwIBAgIQeEqpED+lv77edQixNJMdADANBgkqhkiG9w0BAQsFADBMMSAwHgYD VQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UE AxMKR2xvYmFsU2lnbjAeFw0yMDA5MTYwMDAwMDBaFw0yODA5MTYwMDAwMDBaMFsxCzAJBgNVBAYT AkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhHbG9iYWxTaWduIEdDQyBS MyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA vbCmXCcsbZ/a0fRIQMBxp4gJnnyeneFYpEtNydrZZ+GeKSMdHiDgXD1UnRSIudKo+moQ6YlCOu4t rVWO/EiXfYnK7zeop26ry1RpKtogB7/O115zultAz64ydQYLe+a1e/czkALg3sgTcOOcFZTXk38e aqsXsipoX1vsNurqPtnC27TWsA7pk4uKXscFjkeUE8JZu9BDKaswZygxBOPBQBwrA5+20Wxlk6k1 e6EKaaNaNZUy30q3ArEf30ZDpXyfCtiXnupjSK8WU2cK4qsEtj09JS4+mhi0CTCrCnXAzum3tgcH cHRg0prcSzzEUDQWoFxyuqwiwhHu3sPQNmFOMwIDAQABo4IB2jCCAdYwDgYDVR0PAQH/BAQDAgGG MGAGA1UdJQRZMFcGCCsGAQUFBwMCBggrBgEFBQcDBAYKKwYBBAGCNxQCAgYKKwYBBAGCNwoDBAYJ KwYBBAGCNxUGBgorBgEEAYI3CgMMBggrBgEFBQcDBwYIKwYBBQUHAxEwEgYDVR0TAQH/BAgwBgEB /wIBADAdBgNVHQ4EFgQUljPR5lgXWzR1ioFWZNW+SN6hj88wHwYDVR0jBBgwFoAUj/BLf6guRSSu TVD6Y5qL3uLdG7wwegYIKwYBBQUHAQEEbjBsMC0GCCsGAQUFBzABhiFodHRwOi8vb2NzcC5nbG9i YWxzaWduLmNvbS9yb290cjMwOwYIKwYBBQUHMAKGL2h0dHA6Ly9zZWN1cmUuZ2xvYmFsc2lnbi5j b20vY2FjZXJ0L3Jvb3QtcjMuY3J0MDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwuZ2xvYmFs c2lnbi5jb20vcm9vdC1yMy5jcmwwWgYDVR0gBFMwUTALBgkrBgEEAaAyASgwQgYKKwYBBAGgMgEo CjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxzaWduLmNvbS9yZXBvc2l0b3J5LzAN BgkqhkiG9w0BAQsFAAOCAQEAdAXk/XCnDeAOd9nNEUvWPxblOQ/5o/q6OIeTYvoEvUUi2qHUOtbf jBGdTptFsXXe4RgjVF9b6DuizgYfy+cILmvi5hfk3Iq8MAZsgtW+A/otQsJvK2wRatLE61RbzkX8 9/OXEZ1zT7t/q2RiJqzpvV8NChxIj+P7WTtepPm9AIj0Keue+gS2qvzAZAY34ZZeRHgA7g5O4TPJ /oTd+4rgiU++wLDlcZYd/slFkaT3xg4qWDepEMjT4T1qFOQIL+ijUArYS4owpPg9NISTKa1qqKWJ jFoyms0d0GwOniIIbBvhI2MJ7BSY9MYtWVT5jJO3tsVHwj4cp92CSFuGwunFMzCCA18wggJHoAMC AQICCwQAAAAAASFYUwiiMA0GCSqGSIb3DQEBCwUAMEwxIDAeBgNVBAsTF0dsb2JhbFNpZ24gUm9v dCBDQSAtIFIzMRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTA5 MDMxODEwMDAwMFoXDTI5MDMxODEwMDAwMFowTDEgMB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENB IC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wggEiMA0GCSqG SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDMJXaQeQZ4Ihb1wIO2hMoonv0FdhHFrYhy/EYCQ8eyip0E XyTLLkvhYIJG4VKrDIFHcGzdZNHr9SyjD4I9DCuul9e2FIYQebs7E4B3jAjhSdJqYi8fXvqWaN+J J5U4nwbXPsnLJlkNc96wyOkmDoMVxu9bi9IEYMpJpij2aTv2y8gokeWdimFXN6x0FNx04Druci8u nPvQu7/1PQDhBjPogiuuU6Y6FnOM3UEOIDrAtKeh6bJPkC4yYOlXy7kEkmho5TgmYHWyn3f/kRTv riBJ/K1AFUjRAjFhGV64l++td7dkmnq/X8ET75ti+w1s4FRpFqkD2m7pg5NxdsZphYIXAgMBAAGj QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSP8Et/qC5FJK5N UPpjmove4t0bvDANBgkqhkiG9w0BAQsFAAOCAQEAS0DbwFCq/sgM7/eWVEVJu5YACUGssxOGhigH M8pr5nS5ugAtrqQK0/Xx8Q+Kv3NnSoPHRHt44K9ubG8DKY4zOUXDjuS5V2yq/BKW7FPGLeQkbLmU Y/vcU2hnVj6DuM81IcPJaP7O2sJTqsyQiunwXUaMld16WCgaLx3ezQA3QY/tRG3XUyiXfvNnBB4V 14qWtNPeTCekTBtzc3b0F5nCH3oO4y0IrQocLP88q1UOD5F+NuvDV0m+4S4tfGCLw0FREyOdzvcy a5QBqJnnLDMfOjsl0oZAzjsshnjJYS8Uuu7bVW/fhO4FCU29KNhyztNiUGUe65KXgzHZs7XKR1g/ XzCCBUkwggQxoAMCAQICDCPwEotc2kAt96Z1EDANBgkqhkiG9w0BAQsFADBbMQswCQYDVQQGEwJC RTEZMBcGA1UEChMQR2xvYmFsU2lnbiBudi1zYTExMC8GA1UEAxMoR2xvYmFsU2lnbiBHQ0MgUjMg UGVyc29uYWxTaWduIDIgQ0EgMjAyMDAeFw0yMjA5MTAxMjM5NTBaFw0yNTA5MTAxMjM5NTBaMIGM MQswCQYDVQQGEwJJTjESMBAGA1UECBMJS2FybmF0YWthMRIwEAYDVQQHEwlCYW5nYWxvcmUxFjAU BgNVBAoTDUJyb2FkY29tIEluYy4xFDASBgNVBAMTC0p1c3RpbiBDaGVuMScwJQYJKoZIhvcNAQkB FhhqdXN0aW4uY2hlbkBicm9hZGNvbS5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB AQDKX7oyRqaeT81UCy+OTzAUHJeHABD6GDVZu7IJxt8GWSGx+ebFexFz/gnRO/sgwnPzzrC2DwM1 kaDgYe+pI1lMzUZvAB5DfS1qXKNGoeeNv7FoNFlv3iD4bvOykX/K/voKtjS3QNs0EDnwkvETUWWu yiXtMiGENBBJcbGirKuFTT3U/2iPoSL5OeMSEqKLdkNTT9O79KN+Rf7Zi4Duz0LUqqpz9hZl4zGc NhTY3E+cXCB11wty89QStajwXdhGJTYEvUgvsq1h8CwJj9w/38ldAQf5WjhPmApYeJR2ewFrBMCM 4lHkdRJ6TDc9nXoEkypUfjJkJHe7Eal06tosh6JpAgMBAAGjggHZMIIB1TAOBgNVHQ8BAf8EBAMC BaAwgaMGCCsGAQUFBwEBBIGWMIGTME4GCCsGAQUFBzAChkJodHRwOi8vc2VjdXJlLmdsb2JhbHNp Z24uY29tL2NhY2VydC9nc2djY3IzcGVyc29uYWxzaWduMmNhMjAyMC5jcnQwQQYIKwYBBQUHMAGG NWh0dHA6Ly9vY3NwLmdsb2JhbHNpZ24uY29tL2dzZ2NjcjNwZXJzb25hbHNpZ24yY2EyMDIwME0G A1UdIARGMEQwQgYKKwYBBAGgMgEoCjA0MDIGCCsGAQUFBwIBFiZodHRwczovL3d3dy5nbG9iYWxz aWduLmNvbS9yZXBvc2l0b3J5LzAJBgNVHRMEAjAAMEkGA1UdHwRCMEAwPqA8oDqGOGh0dHA6Ly9j cmwuZ2xvYmFsc2lnbi5jb20vZ3NnY2NyM3BlcnNvbmFsc2lnbjJjYTIwMjAuY3JsMCMGA1UdEQQc MBqBGGp1c3Rpbi5jaGVuQGJyb2FkY29tLmNvbTATBgNVHSUEDDAKBggrBgEFBQcDBDAfBgNVHSME GDAWgBSWM9HmWBdbNHWKgVZk1b5I3qGPzzAdBgNVHQ4EFgQUIWGeYuaTsnIada5Xx8TR3cheUbgw DQYJKoZIhvcNAQELBQADggEBAHNQlMqQOFYPYFO71A+8t+qWMmtOdd2iGswSOvpSZ/pmGlfw8ZvY dRTkl27m37la84AxRkiVMes14JyOZJoMh/g7fbgPlU14eBc6WQWkIA6AmNkduFWTr1pRezkjpeo6 xVmdBLM4VY1TFDYj7S8H2adPuypd62uHMY/MZi+BIUys4uAFA+N3NuUBNjcVZXYPplYxxKEuIFq6 sDL+OV16G+F9CkNMN3txsym8Nnx5WAYZb6+rBUIhMGz70V05xsHQfzvo2s7f0J1tJ5BoRlPPhL0h VOnWA3h71u9TfSsv+PXVm3P21TfOS2uc1hbzEqyENCP4i5XQ0rv0TmPW42GZ0o4xggJtMIICaQIB ATBrMFsxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH bG9iYWxTaWduIEdDQyBSMyBQZXJzb25hbFNpZ24gMiBDQSAyMDIwAgwj8BKLXNpALfemdRAwDQYJ YIZIAWUDBAIBBQCggdQwLwYJKoZIhvcNAQkEMSIEIBopnsvK166jVx6NbEa5cGHukp+siQ0wG9GP 09UbZMfeMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcNAQkFMQ8XDTIzMDcxMzIy MTkzNFowaQYJKoZIhvcNAQkPMVwwWjALBglghkgBZQMEASowCwYJYIZIAWUDBAEWMAsGCWCGSAFl AwQBAjAKBggqhkiG9w0DBzALBgkqhkiG9w0BAQowCwYJKoZIhvcNAQEHMAsGCWCGSAFlAwQCATAN BgkqhkiG9w0BAQEFAASCAQCJnsnMPNtGAJ6OVCEyv+5NP8XNgzWjCcOe/5pQysCy6cvGn5cb4FvM C2qwCanVRyIXVQqlS+OCCC2smRaC13UapEdIgyTi4vKQuCjR6HtkxEl60nu7wRk4gukIQ2f2lcHE vJX/UcwY+pcCDZdgixS97jnN8bNTsjm8ul8ckR8Lq1Rv5pgdQPeS6smWsK/U+Wcfh4djqnbL5MW/ HFDxP02MPp9eLCkUq8MX8zXmbxhfWib/7it0tlvtsH+tk6FeXvGvyVptL5NIN8TkpFe/WUjYecVO qLpN4Fb4eQPOq9DiY+XFJ8pbVgHceW2OVX1VhcVX21QD+SMbIH7aXv/cqRo1 --00000000000022ede4060065bacc--