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 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 01054C25B74 for ; Fri, 24 May 2024 17:32:21 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sAYle-0001Ey-9q; Fri, 24 May 2024 13:31:46 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sAYlG-00013S-9J for grub-devel@gnu.org; Fri, 24 May 2024 13:31:27 -0400 Received: from mail-lj1-x22b.google.com ([2a00:1450:4864:20::22b]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1sAYlA-0003OU-GA for grub-devel@gnu.org; Fri, 24 May 2024 13:31:21 -0400 Received: by mail-lj1-x22b.google.com with SMTP id 38308e7fff4ca-2e716e3030aso72747111fa.2 for ; Fri, 24 May 2024 10:31:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1716571874; x=1717176674; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=qUYyJ4wcngTEIsjsyb1JnpYB/O3gXLA71YbdczQm6vM=; b=CyqmALLkpq5MsRqxXoXfHMhZIvkHmkJdGQPQpw/rQYkIh5rMshkGMa7Q1/U+YWLa9u 47bhDRkfz/9gE9TBID0JMVfGWtVGOyzznzLp97PI5KsevMMRHi/No5kZ/vkdxUa+Yoqr yKbpN+RKRZzIBKHW8VYF8NbvxwnAZ2e9BiK0xRLatk1G7ff6m/opx7+4IqpEhF3cEpda lqpAJ7giITBA4dspTbBUk5Df/iemHjYPz7zptNMxsg5L/ECCJnVAkko3ozEYWNgqCUnC tSJeRv29d+8rEzrh3oUe+0xlam4FHpyrOXNbroJqje+LRLAyJ5QrphV6Sp08x9wah1mQ wdvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1716571874; x=1717176674; h=content-transfer-encoding:mime-version: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=qUYyJ4wcngTEIsjsyb1JnpYB/O3gXLA71YbdczQm6vM=; b=nXCbTH2hrLPvDnz9153lBWxwPY8c3HN7Jr39ICK1JLX4+XvrkHMfFOsRn8RkaJKo0i ju/pKpAsPofXlSBDaaTJvXwkY+dGHhgkc3OQoOqkxGznqUOYf648e0KJNRC6g8mexgL8 a7G3wReZxMGl0mn9K3fCndVhRki8908OUUCUVm0s84KTUqcQ9BmkHAQC9lFKLl/DuUUB z4DBe+lbGFV/hW+qpgeiS0kzpFXh1eqmgXUGJPaopVnAeCWGg0hwanbsSuq6wxZoU+vF VplVc/Tq/7E3zQzoj6pYkvbYQTCRNMia8DzBBurGzdRRD4g9SjSqbvBFohpio9K/BdjT Qnig== X-Gm-Message-State: AOJu0Yz8VEnp3xPNAaCLVBgKrSAostn2yHL81n2QSztwEhwSb6Qch1FP ip6PtiMjpVxEJbVlwskZpT+cVBP1HPQ6IONALTmZKeWbfX7tlNxBVrmEzpb255oBDw== X-Google-Smtp-Source: AGHT+IFFgO6XiEGVkxJr+sVTLHqCJdElhOAQqKMjXHRV7gfX/ZfzytyzSbVwVvzAUeNmBQfOzHxMIA== X-Received: by 2002:a2e:a782:0:b0:2d8:b2e:7bf3 with SMTP id 38308e7fff4ca-2e95af0dbe6mr22120971fa.0.1716571874339; Fri, 24 May 2024 10:31:14 -0700 (PDT) Received: from localhost ([188.170.77.95]) by smtp.gmail.com with ESMTPSA id 38308e7fff4ca-2e95bf180b0sm2766891fa.121.2024.05.24.10.31.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 May 2024 10:31:13 -0700 (PDT) From: Vladimir Serbinenko To: grub-devel@gnu.org Cc: Vladimir Serbinenko Subject: [PATCH v3 4/5] Add DSA and RSA SEXP tests Date: Fri, 24 May 2024 20:30:05 +0300 Message-Id: <20240524173007.988-4-phcoder@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240524173007.988-1-phcoder@gmail.com> References: <20240524173007.988-1-phcoder@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::22b; envelope-from=phcoder@gmail.com; helo=mail-lj1-x22b.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org LS0tCiBncnViLWNvcmUvdGVzdHMvZHNhX3NleHBfdGVzdC5jIHwgMTA3ICsrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrCiBncnViLWNvcmUvdGVzdHMvcnNhX3NleHBfdGVzdC5jIHwgIDgx ICsrKysrKysrKysrKysrKysrKysrKysrKwogMiBmaWxlcyBjaGFuZ2VkLCAxODggaW5zZXJ0aW9u cygrKQogY3JlYXRlIG1vZGUgMTAwNjQ0IGdydWItY29yZS90ZXN0cy9kc2Ffc2V4cF90ZXN0LmMK IGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvdGVzdHMvcnNhX3NleHBfdGVzdC5jCgpkaWZm IC0tZ2l0IGEvZ3J1Yi1jb3JlL3Rlc3RzL2RzYV9zZXhwX3Rlc3QuYyBiL2dydWItY29yZS90ZXN0 cy9kc2Ffc2V4cF90ZXN0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5l YTIzM2JmMGMKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvdGVzdHMvZHNhX3NleHBfdGVz dC5jCkBAIC0wLDAgKzEsMTA3IEBACisjaW5jbHVkZSA8Z3J1Yi90ZXN0Lmg+CisjaW5jbHVkZSA8 Z3J1Yi9jcnlwdG8uaD4KKyNpbmNsdWRlIDxncnViL2djcnlwdC9nY3J5cHQuaD4KKworR1JVQl9N T0RfTElDRU5TRSAoIkdQTHYzKyIpOworCitzdGF0aWMgY2hhciBwdWJrZXlfZHVtcFtdID0gewor ICAweDI4LCAweDMxLCAweDMwLCAweDNhLCAweDcwLCAweDc1LCAweDYyLCAweDZjLCAKKyAgMHg2 OSwgMHg2MywgMHgyZCwgMHg2YiwgMHg2NSwgMHg3OSwgMHgyOCwgMHgzMywgCisgIDB4M2EsIDB4 NjQsIDB4NzMsIDB4NjEsIDB4MjgsIDB4MzEsIDB4M2EsIDB4NzAsIAorICAweDMxLCAweDMyLCAw eDM5LCAweDNhLCAweDAwLCAweGMwLCAweDUwLCAweDE0LCAKKyAgMHg0YywgMHg5NywgMHgxMCwg MHg2OSwgMHgwNywgMHhhNywgMHhlOSwgMHgyYiwgCisgIDB4ZTUsIDB4YzYsIDB4ODgsIDB4ZTEs IDB4NmQsIDB4ZDgsIDB4MzgsIDB4MjgsIAorICAweDA5LCAweDQ5LCAweDViLCAweGU4LCAweGEz LCAweDA0LCAweGI4LCAweGM0LCAKKyAgMHg2ZSwgMHg5OCwgMHhjMSwgMHhjMiwgMHhiMCwgMHgy YSwgMHhlMCwgMHhlMiwgCisgIDB4MWEsIDB4MzAsIDB4ZDIsIDB4ZGIsIDB4NDUsIDB4MWEsIDB4 ODgsIDB4ODAsIAorICAweDI4LCAweDI0LCAweGIwLCAweGJmLCAweGMyLCAweGJkLCAweGU5LCAw eGY2LCAKKyAgMHg5ZCwgMHhhMiwgMHgwMSwgMHg5NCwgMHhlNiwgMHg3ZiwgMHhhMCwgMHhiNiwg CisgIDB4ZTQsIDB4MzksIDB4ZmMsIDB4NTQsIDB4YmEsIDB4OTksIDB4YjYsIDB4YmUsIAorICAw eDM5LCAweGVlLCAweGE1LCAweGQ5LCAweGEwLCAweDM1LCAweDNjLCAweDJkLCAKKyAgMHgzZSwg MHg5NiwgMHhjMywgMHg5NiwgMHhhNSwgMHgwZCwgMHgyYiwgMHhiZiwgCisgIDB4M2IsIDB4YTMs IDB4ZTIsIDB4ZTgsIDB4ODksIDB4ZWQsIDB4NjAsIDB4ZTAsIAorICAweDQzLCAweDYxLCAweGI2 LCAweDczLCAweGY2LCAweGE3LCAweGI0LCAweDU2LCAKKyAgMHg3NiwgMHgwNCwgMHhmNywgMHg4 YiwgMHhmMSwgMHg4NCwgMHhhYSwgMHgzZSwgCisgIDB4ZTAsIDB4MDgsIDB4YWQsIDB4ZGQsIDB4 YzIsIDB4MzYsIDB4ZmQsIDB4M2QsIAorICAweGQwLCAweGFkLCAweGY0LCAweDNhLCAweDdlLCAw eDgwLCAweDhjLCAweDUyLCAKKyAgMHgyYiwgMHgwNCwgMHhhOCwgMHgwMywgMHgyNywgMHgyOSwg MHgyOCwgMHgzMSwgCisgIDB4M2EsIDB4NzEsIDB4MzIsIDB4MzEsIDB4M2EsIDB4MDAsIDB4ZDUs IDB4MzQsIAorICAweGQyLCAweGM1LCAweDFjLCAweDI2LCAweGRmLCAweGIwLCAweGJhLCAweDc4 LCAKKyAgMHg3NSwgMHhlNSwgMHhlOSwgMHgzNiwgMHg2YiwgMHgwNCwgMHgwMywgMHhlMiwgCisg IDB4NTcsIDB4M2YsIDB4MjksIDB4MjgsIDB4MzEsIDB4M2EsIDB4NjcsIDB4MzEsIAorICAweDMy LCAweDM4LCAweDNhLCAweDNiLCAweGEwLCAweGFjLCAweGEzLCAweGExLCAKKyAgMHhkMSwgMHgw NCwgMHgyMywgMHg1ZiwgMHg5ZiwgMHhiYywgMHg2ZCwgMHg5ZSwgCisgIDB4ODgsIDB4MmEsIDB4 MjgsIDB4YzEsIDB4NDgsIDB4YWYsIDB4YTUsIDB4MTcsIAorICAweDU5LCAweDNhLCAweDE3LCAw eDMzLCAweDU2LCAweGFhLCAweDhkLCAweDI3LCAKKyAgMHg2NCwgMHhmZSwgMHg4ZSwgMHg4YSwg MHgyZSwgMHhiYSwgMHhmMiwgMHg2NiwgCisgIDB4Y2MsIDB4NjYsIDB4YmQsIDB4YTQsIDB4ZmUs IDB4YTksIDB4MDcsIDB4MGQsIAorICAweGFlLCAweDhjLCAweDlmLCAweDcwLCAweGY3LCAweDg3 LCAweGFhLCAweDAxLCAKKyAgMHg0NywgMHg2YiwgMHhmOSwgMHgwZiwgMHgwOSwgMHgxOCwgMHg0 MiwgMHg3NiwgCisgIDB4YzQsIDB4YTMsIDB4YjksIDB4NTUsIDB4MTEsIDB4OGQsIDB4YTMsIDB4 YTUsIAorICAweDY5LCAweDMwLCAweDkxLCAweGI3LCAweDAzLCAweGVmLCAweDdmLCAweDEyLCAK KyAgMHhlNiwgMHhiOSwgMHg3OCwgMHg3MywgMHhlMCwgMHhjMCwgMHg0ZiwgMHhjNiwgCisgIDB4 ZDksIDB4NDMsIDB4OTksIDB4OTUsIDB4MGIsIDB4NGQsIDB4NTgsIDB4ZDMsIAorICAweDZiLCAw eDc2LCAweGIwLCAweDZhLCAweGNmLCAweDY4LCAweDZkLCAweGYwLCAKKyAgMHhkOSwgMHhjMSwg MHg4OCwgMHg0MywgMHg5ZCwgMHhmOSwgMHgwNCwgMHhjYiwgCisgIDB4YzksIDB4ODIsIDB4NmMs IDB4ZWUsIDB4ZDQsIDB4OWMsIDB4YmQsIDB4MWMsIAorICAweDRkLCAweDU0LCAweDI5LCAweDgz LCAweGE5LCAweDVlLCAweGFhLCAweDEwLCAKKyAgMHhhNywgMHhjMSwgMHgwNCwgMHgyOSwgMHgy OCwgMHgzMSwgMHgzYSwgMHg3OSwgCisgIDB4MzEsIDB4MzIsIDB4MzksIDB4M2EsIDB4MDAsIDB4 ODIsIDB4MzMsIDB4ZjEsIAorICAweDkxLCAweGUzLCAweGYyLCAweDEyLCAweDkzLCAweDVhLCAw eGVkLCAweDBjLCAKKyAgMHg5ZCwgMHhlYywgMHg2NywgMHhhYSwgMHhhNywgMHg5NywgMHg3Ziwg MHg5ZiwgCisgIDB4NWUsIDB4ZWYsIDB4NmEsIDB4M2UsIDB4YTQsIDB4N2YsIDB4OWIsIDB4ZWQs IAorICAweDY1LCAweGQ3LCAweGJhLCAweDQwLCAweDZkLCAweGUxLCAweGRlLCAweGMxLCAKKyAg MHgxNCwgMHg0YywgMHg5YiwgMHgyOCwgMHg1YywgMHgwMywgMHg4ZSwgMHgxYSwgCisgIDB4ZDQs IDB4MWIsIDB4ODAsIDB4MWIsIDB4MDcsIDB4ZDYsIDB4ODQsIDB4MDQsIAorICAweDQ5LCAweDZj LCAweDFiLCAweDA4LCAweDg0LCAweDE1LCAweDU0LCAweDYyLCAKKyAgMHhjYSwgMHhkNSwgMHg3 NSwgMHhmZiwgMHhjOCwgMHhiMywgMHg4MSwgMHg3NiwgCisgIDB4ODIsIDB4OTEsIDB4MzUsIDB4 ODAsIDB4MjAsIDB4NzMsIDB4MmEsIDB4MjEsIAorICAweGNhLCAweDIyLCAweDA2LCAweGE3LCAw eDczLCAweDk5LCAweDc1LCAweDdlLCAKKyAgMHg1ZSwgMHhhNiwgMHgwOSwgMHg1OSwgMHg2Niwg MHgyYywgMHhjZCwgMHhiMSwgCisgIDB4OGQsIDB4M2IsIDB4YzAsIDB4NjgsIDB4YzUsIDB4NDEs IDB4YTAsIDB4OWQsIAorICAweDgyLCAweDE1LCAweGM0LCAweGRkLCAweDQ3LCAweDFjLCAweDVi LCAweGE5LCAKKyAgMHg3NCwgMHgxOCwgMHhhZiwgMHg3MiwgMHg2MywgMHg2YiwgMHgwYSwgMHg0 ZSwgCisgIDB4OTUsIDB4MDksIDB4N2EsIDB4YjUsIDB4NGIsIDB4OTgsIDB4ODUsIDB4YjksIAor ICAweDZkLCAweDlkLCAweDNiLCAweDczLCAweDhjLCAweDI5LCAweDI5LCAweDI5LCAKK307CisK K3N0YXRpYyBjaGFyIHNpZ19kdW1wW10gPSB7CisgIDB4MjgsIDB4MzcsIDB4M2EsIDB4NzMsIDB4 NjksIDB4NjcsIDB4MmQsIDB4NzYsIAorICAweDYxLCAweDZjLCAweDI4LCAweDMzLCAweDNhLCAw eDY0LCAweDczLCAweDYxLCAKKyAgMHgyOCwgMHgzMSwgMHgzYSwgMHg3MiwgMHgzMiwgMHgzMCwg MHgzYSwgMHhiNiwgCisgIDB4NjAsIDB4MzcsIDB4ZWYsIDB4MDIsIDB4N2MsIDB4N2MsIDB4NmUs IDB4NGYsIAorICAweDY2LCAweDhjLCAweDdjLCAweDI2LCAweDc3LCAweGQ5LCAweDMzLCAweDkw LCAKKyAgMHhiYSwgMHg3YywgMHhmYiwgMHgyOSwgMHgyOCwgMHgzMSwgMHgzYSwgMHg3MywgCisg IDB4MzIsIDB4MzAsIDB4M2EsIDB4ODMsIDB4YzAsIDB4ODQsIDB4NzIsIDB4YzYsIAorICAweDFj LCAweDg1LCAweDZmLCAweDhiLCAweDliLCAweGIwLCAweDM4LCAweDM4LCAKKyAgMHhiMiwgMHhi NiwgMHhkZiwgMHgxYywgMHg1MiwgMHg5NiwgMHgxYiwgMHgyOSwgCisgIDB4MjksIDB4MjksCit9 OworCitleHRlcm4gZ2NyeV9wa19zcGVjX3QgX2djcnlfcHVia2V5X3NwZWNfZHNhOworCitzdGF0 aWMgdm9pZAorZHNhX3NleHBfdGVzdCAodm9pZCkKK3sKKyAgZ2NyeV9zZXhwX3Qgc2lnbl9wYXJt cywgc2lnbl9wYXJtc19pbnZhbGlkLCBwdWJrZXksIHNpZzsKKyAgaW50IHJjOworICBncnViX3Np emVfdCBlcnJvZjsKKworICByYyA9IF9nY3J5X3NleHBfYnVpbGQgKCZzaWduX3Bhcm1zX2ludmFs aWQsICZlcnJvZiwKKwkJCSIoZGF0YSAodmFsdWUgXCJoaVwiKSlcbiIpOworICBncnViX3Rlc3Rf YXNzZXJ0IChyYyA9PSAwLCAic2V4cCBidWlsZCBmYWlsZWQiKTsKKworICByYyA9IF9nY3J5X3Nl eHBfYnVpbGQgKCZzaWduX3Bhcm1zLCAmZXJyb2YsCisJCQkiKGRhdGEgKHZhbHVlIFwiaGVsbG9c IikpXG4iKTsKKyAgZ3J1Yl90ZXN0X2Fzc2VydCAocmMgPT0gMCwgInNleHAgYnVpbGQgZmFpbGVk Iik7CisgIHJjID0gX2djcnlfc2V4cF9uZXcgKCZwdWJrZXksIHB1YmtleV9kdW1wLCBzaXplb2Yo cHVia2V5X2R1bXApLCAwKTsKKyAgZ3J1Yl90ZXN0X2Fzc2VydCAocmMgPT0gMCwgInNleHAgbmV3 IGZhaWxlZCIpOworICByYyA9IF9nY3J5X3NleHBfbmV3ICgmc2lnLCBzaWdfZHVtcCwgc2l6ZW9m KHNpZ19kdW1wKSwgMCk7CisgIGdydWJfdGVzdF9hc3NlcnQgKHJjID09IDAsICJzZXhwIG5ldyBm YWlsZWQiKTsKKyAgcmMgPSBfZ2NyeV9wdWJrZXlfc3BlY19kc2EudmVyaWZ5IChzaWcsIHNpZ25f cGFybXMsIHB1YmtleSk7CisgIGdydWJfdGVzdF9hc3NlcnQgKHJjID09IDAsICJzaWduYXR1cmUg dmVyaWZpY2F0aW9uIGZhaWxlZDogJWQiLCByYyk7CisgIHJjID0gX2djcnlfcHVia2V5X3NwZWNf ZHNhLnZlcmlmeSAoc2lnLCBzaWduX3Bhcm1zX2ludmFsaWQsIHB1YmtleSk7CisgIGdydWJfdGVz dF9hc3NlcnQgKHJjICE9IDAsICJzaWduYXR1cmUgdmVyaWZpY2F0aW9uIHN1Y2NlZGVkIHdyb25n bHkiKTsKK30KKworR1JVQl9GVU5DVElPTkFMX1RFU1QgKGRzYV9zZXhwX3Rlc3QsIGRzYV9zZXhw X3Rlc3QpOwpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL3Rlc3RzL3JzYV9zZXhwX3Rlc3QuYyBiL2dy dWItY29yZS90ZXN0cy9yc2Ffc2V4cF90ZXN0LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwLi5lMDBiZWZlNGUKLS0tIC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvdGVzdHMv cnNhX3NleHBfdGVzdC5jCkBAIC0wLDAgKzEsODEgQEAKKyNpbmNsdWRlIDxncnViL3Rlc3QuaD4K KyNpbmNsdWRlIDxncnViL2NyeXB0by5oPgorI2luY2x1ZGUgPGdydWIvZ2NyeXB0L2djcnlwdC5o PgorCitHUlVCX01PRF9MSUNFTlNFICgiR1BMdjMrIik7CisKK3N0YXRpYyBjaGFyIHB1YmtleV9k dW1wW10gPSB7CisgIDB4MjgsIDB4MzEsIDB4MzAsIDB4M2EsIDB4NzAsIDB4NzUsIDB4NjIsIDB4 NmMsIAorICAweDY5LCAweDYzLCAweDJkLCAweDZiLCAweDY1LCAweDc5LCAweDI4LCAweDMzLCAK KyAgMHgzYSwgMHg3MiwgMHg3MywgMHg2MSwgMHgyOCwgMHgzMSwgMHgzYSwgMHg2ZSwgCisgIDB4 MzEsIDB4MzIsIDB4MzksIDB4M2EsIDB4MDAsIDB4ZTEsIDB4MzUsIDB4YzEsIAorICAweDk3LCAw eDkwLCAweGU4LCAweDU0LCAweGE4LCAweDNiLCAweDk3LCAweDA1LCAKKyAgMHhhZiwgMHg0NSwg MHhhZiwgMHg2NywgMHhiZiwgMHhlYywgMHgwNywgMHhiZSwgCisgIDB4OWIsIDB4NTUsIDB4OWMs IDB4M2YsIDB4NDcsIDB4YWUsIDB4MjUsIDB4YjYsIAorICAweGUzLCAweDIzLCAweDk5LCAweDEw LCAweDVlLCAweDE3LCAweDFhLCAweGRhLCAKKyAgMHgzMywgMHhlNiwgMHg3MywgMHgwZCwgMHg5 NiwgMHg5YywgMHg1YywgMHgyNSwgCisgIDB4MTMsIDB4NWQsIDB4NDksIDB4YjksIDB4ODYsIDB4 YzAsIDB4YjEsIDB4ODAsIAorICAweDI5LCAweDIwLCAweGIyLCAweDkxLCAweDcyLCAweDQzLCAw eGNjLCAweDJhLCAKKyAgMHg2NywgMHhkMywgMHgxMSwgMHhlOCwgMHg3YiwgMHgyMSwgMHg3NSwg MHhmNiwgCisgIDB4MWIsIDB4YzAsIDB4YjIsIDB4MDEsIDB4YzgsIDB4MzUsIDB4YWEsIDB4ZmIs IAorICAweGE3LCAweDI5LCAweGI0LCAweGI5LCAweDk0LCAweDRlLCAweDUzLCAweDQ5LCAKKyAg MHg4MiwgMHg3NCwgMHhlOSwgMHgyMywgMHg2OSwgMHhhNCwgMHhmNiwgMHhkZiwgCisgIDB4NDAs IDB4MmEsIDB4NzMsIDB4MDEsIDB4ZmEsIDB4ZTcsIDB4ZjgsIDB4MzIsIAorICAweDZiLCAweDU3 LCAweGZlLCAweGI5LCAweDdkLCAweDAyLCAweGMyLCAweGZiLCAKKyAgMHg3ZiwgMHg5OSwgMHgx ZiwgMHg2ZSwgMHg4ZCwgMHg1MywgMHgwMSwgMHg1NiwgCisgIDB4YWYsIDB4NDYsIDB4NjIsIDB4 YjMsIDB4ZTAsIDB4YTgsIDB4YTYsIDB4MGEsIAorICAweDU1LCAweDJjLCAweDRiLCAweDg1LCAw eDViLCAweDI5LCAweDI4LCAweDMxLCAKKyAgMHgzYSwgMHg2NSwgMHgzMywgMHgzYSwgMHgwMSwg MHgwMCwgMHgwMSwgMHgyOSwgCisgIDB4MjksIDB4MjksIAorfTsKKworc3RhdGljIGNoYXIgc2ln X2R1bXBbXSA9IHsKKyAgMHgyOCwgMHgzNywgMHgzYSwgMHg3MywgMHg2OSwgMHg2NywgMHgyZCwg MHg3NiwgCisgIDB4NjEsIDB4NmMsIDB4MjgsIDB4MzMsIDB4M2EsIDB4NzIsIDB4NzMsIDB4NjEs IAorICAweDI4LCAweDMxLCAweDNhLCAweDczLCAweDMxLCAweDMyLCAweDM4LCAweDNhLCAKKyAg MHg1YiwgMHgyZCwgMHhlYiwgMHhhNSwgMHg0YiwgMHg4YiwgMHhkOSwgMHg5MiwgCisgIDB4NjYs IDB4NTcsIDB4ODksIDB4ZDgsIDB4MzEsIDB4YzAsIDB4MGUsIDB4NTMsIAorICAweGY4LCAweDFj LCAweDRmLCAweGM4LCAweDc5LCAweDY3LCAweGI5LCAweDEwLCAKKyAgMHhlNSwgMHg2MywgMHg1 ZiwgMHhlZiwgMHhiMSwgMHgwYiwgMHgwZSwgMHg3ZiwgCisgIDB4ZWQsIDB4ODYsIDB4MDYsIDB4 YTgsIDB4MDUsIDB4YmYsIDB4NmIsIDB4ZDEsIAorICAweDM2LCAweDQxLCAweDA4LCAweDNiLCAw eGQwLCAweGJkLCAweGVmLCAweGI3LCAKKyAgMHhjMiwgMHg2OSwgMHhiOCwgMHhiNCwgMHgzZSwg MHgyYywgMHhiNSwgMHgzOSwgCisgIDB4MTMsIDB4MDMsIDB4Y2EsIDB4YWQsIDB4NWYsIDB4ZDIs IDB4NTcsIDB4MjMsIAorICAweDE5LCAweGRkLCAweDcxLCAweGRkLCAweDkzLCAweGUxLCAweDNl LCAweDQzLCAKKyAgMHhhZiwgMHhkZCwgMHg5NCwgMHgwNywgMHhmMywgMHg3OCwgMHhiMywgMHgy YSwgCisgIDB4NTcsIDB4MjQsIDB4OTcsIDB4MDQsIDB4NTgsIDB4YzEsIDB4YWYsIDB4ZDMsIAor ICAweGU3LCAweGE3LCAweDY1LCAweGQxLCAweDIzLCAweGEzLCAweDkzLCAweDE4LCAKKyAgMHhj NywgMHg1MiwgMHg3MCwgMHg1MywgMHg2MCwgMHg4YiwgMHg1YSwgMHg1ZCwgCisgIDB4NmUsIDB4 ZjksIDB4ODMsIDB4NTIsIDB4OTksIDB4YmIsIDB4MGEsIDB4NTMsIAorICAweDBlLCAweDJhLCAw eDdmLCAweDgxLCAweDUyLCAweDAyLCAweDMyLCAweGE0LCAKKyAgMHhmYywgMHhlMCwgMHgxNywg MHgwYywgMHgwZSwgMHg5NiwgMHhiZCwgMHgwMSwgCisgIDB4MjksIDB4MjksIDB4MjksIAorfTsK KworZXh0ZXJuIGdjcnlfcGtfc3BlY190IF9nY3J5X3B1YmtleV9zcGVjX3JzYTsKKworc3RhdGlj IHZvaWQKK3JzYV9zZXhwX3Rlc3QgKHZvaWQpCit7CisgIGdjcnlfc2V4cF90IHNpZ25fcGFybXMs IHNpZ25fcGFybXNfaW52YWxpZCwgcHVia2V5LCBzaWc7CisgIGludCByYzsKKyAgZ3J1Yl9zaXpl X3QgZXJyb2Y7CisKKyAgcmMgPSBfZ2NyeV9zZXhwX2J1aWxkICgmc2lnbl9wYXJtc19pbnZhbGlk LCAmZXJyb2YsCisJCQkiKGRhdGEgKGZsYWdzKSAodmFsdWUgXCJoaVwiKSlcbiIpOworICBncnVi X3Rlc3RfYXNzZXJ0IChyYyA9PSAwLCAic2V4cCBidWlsZCBmYWlsZWQiKTsKKworICByYyA9IF9n Y3J5X3NleHBfYnVpbGQgKCZzaWduX3Bhcm1zLCAmZXJyb2YsCisJCQkiKGRhdGEgKGZsYWdzKSAo dmFsdWUgXCJoZWxsb1wiKSlcbiIpOworICBncnViX3Rlc3RfYXNzZXJ0IChyYyA9PSAwLCAic2V4 cCBidWlsZCBmYWlsZWQiKTsKKyAgcmMgPSBfZ2NyeV9zZXhwX25ldyAoJnB1YmtleSwgcHVia2V5 X2R1bXAsIHNpemVvZihwdWJrZXlfZHVtcCksIDApOworICBncnViX3Rlc3RfYXNzZXJ0IChyYyA9 PSAwLCAic2V4cCBuZXcgZmFpbGVkIik7CisgIHJjID0gX2djcnlfc2V4cF9uZXcgKCZzaWcsIHNp Z19kdW1wLCBzaXplb2Yoc2lnX2R1bXApLCAwKTsKKyAgZ3J1Yl90ZXN0X2Fzc2VydCAocmMgPT0g MCwgInNleHAgbmV3IGZhaWxlZCIpOworICByYyA9IF9nY3J5X3B1YmtleV9zcGVjX3JzYS52ZXJp ZnkgKHNpZywgc2lnbl9wYXJtcywgcHVia2V5KTsKKyAgZ3J1Yl90ZXN0X2Fzc2VydCAocmMgPT0g MCwgInNpZ25hdHVyZSB2ZXJpZmljYXRpb24gZmFpbGVkOiAlZCIsIHJjKTsKKyAgcmMgPSBfZ2Ny eV9wdWJrZXlfc3BlY19yc2EudmVyaWZ5IChzaWcsIHNpZ25fcGFybXNfaW52YWxpZCwgcHVia2V5 KTsKKyAgZ3J1Yl90ZXN0X2Fzc2VydCAocmMgIT0gMCwgInNpZ25hdHVyZSB2ZXJpZmljYXRpb24g c3VjY2VkZWQgd3JvbmdseSIpOworfQorCitHUlVCX0ZVTkNUSU9OQUxfVEVTVCAocnNhX3NleHBf dGVzdCwgcnNhX3NleHBfdGVzdCk7Ci0tIAoyLjM5LjIKCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpHcnViLWRldmVsIG1haWxpbmcgbGlzdApHcnViLWRl dmVsQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4vbGlzdGluZm8vZ3J1Yi1k ZXZlbAo=