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 B9AF9CAC5A7 for ; Mon, 22 Sep 2025 09:31:44 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1v0cse-00020l-5u; Mon, 22 Sep 2025 05:30:44 -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 1v0cs6-0001Xh-0S for grub-devel@gnu.org; Mon, 22 Sep 2025 05:30:10 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1v0cry-0007TN-Fs for grub-devel@gnu.org; Mon, 22 Sep 2025 05:30:09 -0400 Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.2/8.18.1.2) with ESMTP id 58M71WNm012446; Mon, 22 Sep 2025 09:29:59 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=J8EOl0 n592dxNH9qTzOKMHD0nPGhrZ1LvkPHKxP8A/Q=; b=qAKqxepfIedWIl3XGG6kiK oBY41jEmsb9USdZAmIxtGuX8xJ+O5mssysMAES7O5HgDpytwLMMj7tILfPxuq7jc 0E+Bx+/xIf/Omp0x8n5KsN7rNkR/kVJkm3ELz2GSru6+C0+N50a4WGI1pYGRLN3O OTf5sTvW7Z9hGikokZ/KmZUVUnGzYRjnWNdlby45UKuOr6oKv2lCN8+vLfVrl2tv gfIpGb5mqx5pbkLe0mStXnWDgiL86HTmeQBJXlE0BmrQJra9uTn7efsVHLcFEdDY 3+zHyJIW9y6/xZUFEO3qXMPNxF5x8ym1L7pM3Nue4VPpOf6xG+SunKSo1UWEmzng == Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 499hpq1t9n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 22 Sep 2025 09:29:59 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 58M65cBW030359; Mon, 22 Sep 2025 09:29:58 GMT Received: from smtprelay07.fra02v.mail.ibm.com ([9.218.2.229]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 49a9a0w4k7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 22 Sep 2025 09:29:58 +0000 Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com [10.20.54.106]) by smtprelay07.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 58M9Ts1c44237260 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 22 Sep 2025 09:29:54 GMT Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C28F520043; Mon, 22 Sep 2025 09:29:54 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A4E122004B; Mon, 22 Sep 2025 09:29:48 +0000 (GMT) Received: from localhost.localdomain (unknown [9.124.218.27]) by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTP; Mon, 22 Sep 2025 09:29:48 +0000 (GMT) From: Sudhakar Kuppusamy To: grub-devel@gnu.org Cc: dja@axtens.net, jan.setjeeilers@oracle.com, julian.klode@canonical.com, mate.kukri@canonical.com, pjones@redhat.com, msuchanek@suse.com, mlewando@redhat.com, stefanb@linux.ibm.com, avnish@linux.ibm.com, nayna@linux.ibm.com, ssrish@linux.ibm.com, Sudhakar Kuppusamy , sridharm@linux.ibm.com Subject: [PATCH v12 18/22] appended signatures: GRUB commands to manage the hashes Date: Mon, 22 Sep 2025 14:57:59 +0530 Message-ID: <20250922092814.39630-19-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.50.1 In-Reply-To: <20250922092814.39630-1-sudhakar@linux.ibm.com> References: <20250922092814.39630-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=FrEF/3rq c=1 sm=1 tr=0 ts=68d11717 cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=IkcTkHD0fZMA:10 a=yJojWOMRYYMA:10 a=VnNF1IyMAAAA:8 a=ZtZmgdVXZQadKTyr0nIA:9 a=3ZKOabzyN94A:10 a=QEXdDO2ut3YA:10 X-Proofpoint-ORIG-GUID: _iOf142lFTiLHwWe7PA8m3WthkyR_You X-Proofpoint-GUID: _iOf142lFTiLHwWe7PA8m3WthkyR_You X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwOTE5MDIyNCBTYWx0ZWRfX6KtO6qyJcivh L6nt9mwcu8ISJ+3DpYW/yrQIoUthFlbDxxacRt/xKaaSXJIdA88M2bSz3FI5q5y7Z6nZBe1ah1/ usDit5KNJSi4e5ccQc2ewRfkmBm7/CFUgJocj0ReEMd1Vd+Li7I1PzdvMJuWAO0GYsA0NdeCLbY /nHnwFHAUgW+tAHUyG6hMst0Hxdem/Yp2wDMvNACZGja29ztB2De5R0BX8w6qrJmRIA8um5pIfK vdhQMkBI820X46C5GoQxC8DQ1t4oVRpip7oOez79UVv2hTDLeNsliZjWU5kK8GCFWJkyQQUC/Nk U7+F41gXdtBmMSzi0sgHCkX3bgGS8EwImVtbk+Mz94AxJv1dGn68+HnI3XVKUVkBvLnq9jYVWlX 80OtZFiT X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1117,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-09-22_01,2025-09-19_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 phishscore=0 priorityscore=1501 malwarescore=0 adultscore=0 clxscore=1015 impostorscore=0 spamscore=0 suspectscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2507300000 definitions=main-2509190224 Received-SPF: pass client-ip=148.163.158.5; envelope-from=sudhakar@linux.ibm.com; helo=mx0b-001b2d01.pphosted.com X-Spam_score_int: -26 X-Spam_score: -2.7 X-Spam_bar: -- X-Spam_report: (-2.7 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H4=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, 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 SW50cm9kdWNpbmcgdGhlIGZvbGxvd2luZyBHUlVCIGNvbW1hbmRzIHRvIG1hbmFnZSBjZXJ0aWZp Y2F0ZS9iaW5hcnkKaGFzaGVzLgoKICAxLiBhcHBlbmRfbGlzdF9kYng6CiAgICAgIFNob3cgdGhl IGxpc3Qgb2YgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZXMgYW5kIGJpbmFyeS9jZXJ0aWZpY2F0ZQog ICAgICBoYXNoZXMgZnJvbSB0aGUgZGJ4IGxpc3QuCiAgMi4gYXBwZW5kX2FkZF9kYl9oYXNoOgog ICAgICBBZGQgdGhlIHRydXN0ZWQgYmluYXJ5IGhhc2ggdG8gdGhlIGRiIGxpc3QuCiAgMy4gYXBw ZW5kX2FkZF9kYnhfaGFzaDoKICAgICAgQWRkIHRoZSBkaXN0cnVzdGVkIGNlcnRpZmljYXRlL2Jp bmFyeSBoYXNoIHRvIHRoZSBkYnggbGlzdC4KCk5vdGUgdGhhdCBpZiBzaWduYXR1cmUgdmVyaWZp Y2F0aW9uIChjaGVja19hcHBlbmRlZF9zaWduYXR1cmUpIGlzIHNldCB0byBlbmZvcmNlLAp0aGUg YXBwZW5kX2FkZF9kYl9oYXNoIGFuZCBhcHBlbmRfYWRkX2RieF9oYXNoIGNvbW1hbmRzIG9ubHkg YWNjZXB0IHRoZQpmaWxlIOKAmGhhc2hfZmlsZeKAmSB0aGF0IGlzIHNpZ25lZCB3aXRoIGFuIGFw cGVuZGVkIHNpZ25hdHVyZS4KClNpZ25lZC1vZmYtYnk6IFN1ZGhha2FyIEt1cHB1c2FteSA8c3Vk aGFrYXJAbGludXguaWJtLmNvbT4KLS0tCiBncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcv YXBwZW5kZWRzaWcuYyB8IDI4MSArKysrKysrKysrKysrKysrKysrCiBpbmNsdWRlL2dydWIvZmls ZS5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArCiAyIGZpbGVzIGNoYW5nZWQsIDI4 MyBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2FwcGVuZGVk c2lnL2FwcGVuZGVkc2lnLmMgYi9ncnViLWNvcmUvY29tbWFuZHMvYXBwZW5kZWRzaWcvYXBwZW5k ZWRzaWcuYwppbmRleCBmYTk3YTY0NDAuLjhlMWVjZmVhNCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3Jl L2NvbW1hbmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1h bmRzL2FwcGVuZGVkc2lnL2FwcGVuZGVkc2lnLmMKQEAgLTUyLDYgKzUyLDkgQEAgR1JVQl9NT0Rf TElDRU5TRSAoIkdQTHYzKyIpOwogI2RlZmluZSBTSEEzODRfSEFTSF9MRU4gICAgNDgKICNkZWZp bmUgU0hBNTEyX0hBU0hfTEVOICAgIDY0CiAKKyNkZWZpbmUgT1BUSU9OX0JJTkFSWV9IQVNIIDAK KyNkZWZpbmUgT1BUSU9OX0NFUlRfSEFTSCAgIDEKKwogLyoKICAqIFRoaXMgc3RydWN0dXJlIGlz IGV4dHJhY3RlZCBmcm9tIHNjcmlwdHMvc2lnbi1maWxlLmMgaW4gdGhlIGxpbnV4IGtlcm5lbAog ICogc291cmNlLiBJdCB3YXMgbGljZW5zZWQgYXMgTEdQTHYyLjErLCB3aGljaCBpcyBHUEx2Mysg Y29tcGF0aWJsZS4KQEAgLTEyNSw2ICsxMjgsMTMgQEAgc3RhdGljIGdydWJfcGtzX3QgKnBrc19r ZXlzdG9yZTsKIC8qIEFwcGVuZGVkIHNpZ25hdHVyZSBzaXplLiAqLwogc3RhdGljIGdydWJfc2l6 ZV90IGFwcGVuZF9zaWdfbGVuID0gMDsKIAorc3RhdGljIGNvbnN0IHN0cnVjdCBncnViX2FyZ19v cHRpb24gb3B0aW9uc1tdID0KK3sKKyAgeyJiaW5hcnktaGFzaCIsICdiJywgMCwgTl8oImhhc2gg ZmlsZSBvZiB0aGUgYmluYXJ5LiIpLCAwLCBBUkdfVFlQRV9QQVRITkFNRX0sCisgIHsiY2VydC1o YXNoIiwgJ2MnLCAxLCBOXygiaGFzaCBmaWxlIG9mIHRoZSBjZXJ0aWZpY2F0ZS4iKSwgMCwgQVJH X1RZUEVfUEFUSE5BTUV9LAorICB7MCwgMCwgMCwgMCwgMCwgMH0KK307CisKIHN0YXRpYyBncnVi X3NzaXplX3QKIHBzZXVkb19yZWFkIChzdHJ1Y3QgZ3J1Yl9maWxlICpmaWxlLCBjaGFyICpidWYs IGdydWJfc2l6ZV90IGxlbikKIHsKQEAgLTU0Niw2ICs1NTYsNjkgQEAgcmVtb3ZlX2NlcnRfZnJv bV9kYiAoY29uc3QgZ3J1Yl91aW50OF90ICpkYXRhLCBjb25zdCBncnViX3NpemVfdCBkYXRhX3Np emUpCiAgIHJldHVybiByYzsKIH0KIAorc3RhdGljIGJvb2wKK2NlcnRfZmluZ2VycHJpbnRfbWF0 Y2ggKGNvbnN0IGdydWJfdWludDhfdCAqaGFzaF9kYXRhLCBjb25zdCBncnViX3NpemVfdCBoYXNo X2RhdGFfc2l6ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdydWJfeDUwOV9jZXJ0 X3QgKmNlcnQpCit7CisgIGdydWJfaW50MzJfdCB0eXBlOworCisgIGlmIChoYXNoX2RhdGFfc2l6 ZSA9PSBTSEEyNTZfSEFTSF9MRU4pCisgICAgdHlwZSA9IEdSVUJfRklOR0VSUFJJTlRfU0hBMjU2 OworICBlbHNlIGlmIChoYXNoX2RhdGFfc2l6ZSA9PSBTSEEzODRfSEFTSF9MRU4pCisgICAgdHlw ZSA9IEdSVUJfRklOR0VSUFJJTlRfU0hBMzg0OworICBlbHNlIGlmIChoYXNoX2RhdGFfc2l6ZSA9 PSBTSEE1MTJfSEFTSF9MRU4pCisgICAgdHlwZSA9IEdSVUJfRklOR0VSUFJJTlRfU0hBNTEyOwor ICBlbHNlCisgICAgeworICAgICAgZ3J1Yl9kcHJpbnRmICgiYXBwZW5kZWRzaWciLCAidW5zdXBw b3J0ZWQgZmluZ2VycHJpbnQgaGFzaCB0eXBlICIKKyAgICAgICAgICAgICAgICAgICAgIiglIiBQ Ukl1R1JVQl9TSVpFICIpIFxuIiwgaGFzaF9kYXRhX3NpemUpOworICAgICAgcmV0dXJuIGZhbHNl OworICAgIH0KKworICBpZiAoZ3J1Yl9tZW1jbXAgKGNlcnQtPmZpbmdlcnByaW50W3R5cGVdLCBo YXNoX2RhdGEsIGhhc2hfZGF0YV9zaXplKSA9PSAwKQorICAgIHJldHVybiB0cnVlOworCisgIHJl dHVybiBmYWxzZTsKK30KKworc3RhdGljIHZvaWQKK3JlbW92ZV9oYXNoX2Zyb21fZGIgKGNvbnN0 IGdydWJfdWludDhfdCAqaGFzaF9kYXRhLCBjb25zdCBncnViX3NpemVfdCBoYXNoX2RhdGFfc2l6 ZSwKKyAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGJvb2wgYmluX2hhc2gpCit7CisgIGdydWJf dWludDMyX3QgaTsKKyAgZ3J1Yl94NTA5X2NlcnRfdCAqY2VydDsKKworICBpZiAoYmluX2hhc2gg PT0gdHJ1ZSkKKyAgICB7CisgICAgICBmb3IgKGkgPSAwOyBpIDwgZGIuaGFzaF9lbnRyaWVzOyBp KyspCisgICAgICAgIHsKKyAgICAgICAgICBpZiAoZGIuaGFzaGVzW2ldID09IE5VTEwpCisgICAg ICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgIGlmIChncnViX21lbWNtcCAoZGIuaGFzaGVz W2ldLCBoYXNoX2RhdGEsIGhhc2hfZGF0YV9zaXplKSA9PSAwKQorICAgICAgICAgICAgeworICAg ICAgICAgICAgICBncnViX2RwcmludGYgKCJhcHBlbmRlZHNpZyIsICJyZW1vdmVkIGRpc3RydXN0 ZWQgaGFzaCAlMDJ4JTAyeCUwMnglMDJ4Li4gZnJvbSB0aGUgZGIgbGlzdFxuIiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICBkYi5oYXNoZXNbaV1bMF0sIGRiLmhhc2hlc1tpXVsxXSwgZGIu aGFzaGVzW2ldWzJdLCBkYi5oYXNoZXNbaV1bM10pOworICAgICAgICAgICAgICBncnViX2ZyZWUg KGRiLmhhc2hlc1tpXSk7CisgICAgICAgICAgICAgIGRiLmhhc2hlc1tpXSA9IE5VTEw7CisgICAg ICAgICAgICAgIGRiLmhhc2hfc2l6ZXNbaV0gPSAwOworICAgICAgICAgICAgICBicmVhazsKKyAg ICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIGZvciAo Y2VydCA9IGRiLmNlcnRzOyBjZXJ0ICE9IE5VTEw7IGNlcnQgPSBjZXJ0LT5uZXh0KQorICAgICAg ICB7CisgICAgICAgICAgaWYgKGNlcnRfZmluZ2VycHJpbnRfbWF0Y2ggKGhhc2hfZGF0YSwgaGFz aF9kYXRhX3NpemUsIGNlcnQpID09IHRydWUpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg IF9yZW1vdmVfY2VydF9mcm9tX2RiIChjZXJ0KTsKKyAgICAgICAgICAgICAgYnJlYWs7CisgICAg ICAgICAgICB9CisgICAgICAgIH0KKyAgICB9Cit9CisKIHN0YXRpYyBncnViX2Vycl90CiBmaWxl X3JlYWRfd2hvbGUgKGdydWJfZmlsZV90IGZpbGUsIGdydWJfdWludDhfdCAqKmJ1ZiwgZ3J1Yl9z aXplX3QgKmxlbikKIHsKQEAgLTEwMjAsNiArMTA5MywxOTQgQEAgZ3J1Yl9jbWRfbGlzdF9kYiAo Z3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgaW50IGFyZ2MgX19h dHRyaWIKICAgcmV0dXJuIEdSVUJfRVJSX05PTkU7CiB9CiAKK3N0YXRpYyBncnViX2Vycl90Citn cnViX2NtZF9saXN0X2RieCAoZ3J1Yl9jb21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18oKHVudXNl ZCkpLAorICAgICAgICAgICAgICAgICAgIGludCBhcmdjIF9fYXR0cmlidXRlX18oKHVudXNlZCkp LCBjaGFyICoqYXJncyBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSkKK3sKKyAgc3RydWN0IHg1MDlf Y2VydGlmaWNhdGUgKmNlcnQ7CisgIGdydWJfdWludDMyX3QgaSwgY2VydF9udW0gPSAxOworCisg IGlmIChhcHBlbmRfa2V5X21nbXQgPT0gZmFsc2UpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdS VUJfRVJSX0FDQ0VTU19ERU5JRUQsCisgICAgICAgICAgICAgICAgICAgICAgICJhcHBlbmRfbGlz dF9kYnggY29tbWFuZCBpcyB1bnN1cHBvcnRlZCBpbiBzdGF0aWMga2V5IG1vZGUiKTsKKworICBm b3IgKGNlcnQgPSBkYnguY2VydHM7IGNlcnQgIT0gTlVMTDsgY2VydCA9IGNlcnQtPm5leHQsIGNl cnRfbnVtKyspCisgICAgcHJpbnRfY2VydGlmaWNhdGUgKGNlcnQsIGNlcnRfbnVtKTsKKworICBm b3IgKGkgPSAwOyBpIDwgZGJ4Lmhhc2hfZW50cmllczsgaSsrKQorICAgIHsKKyAgICAgIGlmIChk YnguaGFzaGVzW2ldICE9IE5VTEwpCisgICAgICAgIHsKKyAgICAgICAgICBncnViX3ByaW50ZiAo IlxuQ2VydGlmaWNhdGUvQmluYXJ5IGhhc2g6ICV1XG4iLCBpICsgMSk7CisgICAgICAgICAgZ3J1 Yl9wcmludGYgKCIgICAgSGFzaDogc2hhJSIgUFJJdUdSVUJfU0laRSAiXG4gICAgICAgICAiLCBk YnguaGFzaF9zaXplc1tpXSAqIDgpOworICAgICAgICAgIGhleGR1bXBfY29sb24gKGRieC5oYXNo ZXNbaV0sIGRieC5oYXNoX3NpemVzW2ldKTsKKyAgICAgICAgfQorICAgIH0KKworICByZXR1cm4g R1JVQl9FUlJfTk9ORTsKK30KKworLyoKKyAqIFJlbW92ZSB0aGUgdHJ1c3RlZCBiaW5hcnkgaGFz aCBmcm9tIHRoZSBkYnggbGlzdCBpZiBwcmVzZW50LgorICogQW5kIGFkZCB0aGVtIHRvIHRoZSBk YiBsaXN0IGlmIGl0IGlzIG5vdCBhbHJlYWR5IHByZXNlbnQuCisgKiBOb3RlOi0gV2hlbiBzaWdu YXR1cmUgdmVyaWZpY2F0aW9uIGlzIGVuYWJsZWQsIHRoaXMgY29tbWFuZCBvbmx5IGFjY2VwdHMK KyAqIHRoZSBiaW5hcnkgaGFzaCBmaWxlIHRoYXQgaXMgc2lnbmVkIHdpdGggYW4gYXBwZW5kZWQg c2lnbmF0dXJlLgorICogVGhlIHNpZ25hdHVyZSBpcyB2ZXJpZmllZCBieSB0aGUgYXBwZW5kZWRz aWcgbW9kdWxlLiBJZiB2ZXJpZmljYXRpb24gc3VjY2VlZHMsCisgKiB0aGUgYmluYXJ5IGhhc2gg aXMgYWRkZWQgdG8gdGhlIGRiIGxpc3QuIE90aGVyd2lzZSwgYW4gZXJyb3IgaXMgcG9zdGVkIGFu ZAorICogdGhlIGJpbmFyeSBoYXNoIGlzIG5vdCBhZGRlZC4KKyAqIFdoZW4gc2lnbmF0dXJlIHZl cmlmaWNhdGlvbiBpcyBkaXNhYmxlZCwgaXQgYWNjZXB0cyB0aGUgYmluYXJ5IGhhc2ggZmlsZSB3 aXRob3V0CisgKiBhbiBhcHBlbmRlZCBzaWduYXR1cmUgYW5kIGFkZHMgaXQgdG8gdGhlIGRiIGxp c3QuCisgKgorICogQWxzbywgbm90ZSB0aGF0IHRoZSBhZGRpbmcgb2YgdGhlIHRydXN0ZWQgYmlu YXJ5IGhhc2ggdXNpbmcgdGhpcyBjb21tYW5kIGRvZXMKKyAqIG5vdCBwZXJzaXN0IGFjcm9zcyBy ZWJvb3RzLgorICovCitzdGF0aWMgZ3J1Yl9lcnJfdAorZ3J1Yl9jbWRfZGJfaGFzaCAoZ3J1Yl9j b21tYW5kX3QgY21kIF9fYXR0cmlidXRlX18oKHVudXNlZCkpLCBpbnQgYXJnYywgY2hhcioqYXJn cykKK3sKKyAgZ3J1Yl9lcnJfdCByYzsKKyAgZ3J1Yl9maWxlX3QgaGFzaF9maWxlOworICBncnVi X3VpbnQ4X3QgKmhhc2hfZGF0YSA9IE5VTEw7CisgIGdydWJfc2l6ZV90IGhhc2hfZGF0YV9zaXpl ID0gMDsKKworICBpZiAoYXBwZW5kX2tleV9tZ210ID09IGZhbHNlKQorICAgIHJldHVybiBncnVi X2Vycm9yIChHUlVCX0VSUl9BQ0NFU1NfREVOSUVELAorICAgICAgICAgICAgICAgICAgICAgICAi YXBwZW5kX2FkZF9kYl9oYXNoIGNvbW1hbmQgaXMgdW5zdXBwb3J0ZWQgaW4gc3RhdGljIGtleSBt b2RlIik7CisKKyAgaWYgKGFyZ2MgIT0gMSkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9F UlJfQkFEX0FSR1VNRU5ULAorICAgICAgICAgICAgICAgICAgICAgICAiYSB0cnVzdGVkIGJpbmFy eSBoYXNoIGZpbGUgaXMgZXhwZWN0ZWQgaW4gQmluYXJ5IGZvcm1hdFxuIgorICAgICAgICAgICAg ICAgICAgICAgICAiRXhhbXBsZTpcblx0YXBwZW5kX2FkZF9kYl9oYXNoIDxCSU5BUlkgSEFTSCBG SUxFPlxuIik7CisKKyAgaWYgKCFncnViX3N0cmxlbiAoYXJnc1swXSkpCisgICAgcmV0dXJuIGdy dWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSUxFTkFNRSwgIm1pc3NpbmcgdHJ1c3RlZCBiaW5hcnkg aGFzaCBmaWxlIik7CisKKyAgaGFzaF9maWxlID0gZ3J1Yl9maWxlX29wZW4gKGFyZ3NbMF0sIEdS VUJfRklMRV9UWVBFX0hBU0hfVFJVU1QgfCBHUlVCX0ZJTEVfVFlQRV9OT19ERUNPTVBSRVNTKTsK KyAgaWYgKGhhc2hfZmlsZSA9PSBOVUxMKQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VS Ul9GSUxFX05PVF9GT1VORCwgInVuYWJsZSB0byBvcGVuICVzIGZpbGUiLCBhcmdzWzBdKTsKKwor ICByYyA9IGZpbGVfcmVhZF93aG9sZSAoaGFzaF9maWxlLCAmaGFzaF9kYXRhLCAmaGFzaF9kYXRh X3NpemUpOworICBncnViX2ZpbGVfY2xvc2UgKGhhc2hfZmlsZSk7CisgIGlmIChyYyAhPSBHUlVC X0VSUl9OT05FKQorICAgIHJldHVybiByYzsKKworICAvKgorICAgKiBJZiBzaWduYXR1cmUgdmVy aWZpY2F0aW9uIGlzIGVuYWJsZWQsCisgICAqIG9idGFpbiB0aGUgYWN0dWFsIGhhc2ggZGF0YSBz aXplIGJ5IHN1YnRyYWN0aW5nIHRoZSBhcHBlbmRlZAorICAgKiBzaWduYXR1cmUgc2l6ZSBmcm9t IHRoZSBoYXNoIGRhdGEgc2l6ZSBiZWNhdXNlCisgICAqIHRoZSBoYXNoIGhhcyBhbiBhcHBlbmRl ZCBzaWduYXR1cmUsIGFuZCB0aGlzIGFjdHVhbCBoYXNoIGRhdGEgc2l6ZSBpcworICAgKiB1c2Vk IHRvIGdldCB0aGUgaGFzaCBkYXRhLgorICAgKi8KKyAgaWYgKGNoZWNrX3NpZ3MgPT0gdHJ1ZSkK KyAgICBoYXNoX2RhdGFfc2l6ZSAtPSBhcHBlbmRfc2lnX2xlbjsKKworICBncnViX2RwcmludGYg KCJhcHBlbmRlZHNpZyIsCisgICAgICAgICAgICAgICAgImFkZGluZyBhIHRydXN0ZWQgYmluYXJ5 IGhhc2ggJTAyeCUwMnglMDJ4JTAyeC4uLiB3aXRoIHNpemUgb2YgJSIgUFJJdUdSVUJfU0laRSAi XG4iLAorICAgICAgICAgICAgICAgIGhhc2hfZGF0YVswXSwgaGFzaF9kYXRhWzFdLCBoYXNoX2Rh dGFbMl0sIGhhc2hfZGF0YVszXSwgaGFzaF9kYXRhX3NpemUpOworCisgIC8qIE9ubHkgYWNjZXB0 IFNIQTI1NiwgU0hBMzg0IGFuZCBTSEE1MTIgYmluYXJ5IGhhc2ggKi8KKyAgaWYgKGhhc2hfZGF0 YV9zaXplICE9IFNIQTI1Nl9IQVNIX0xFTiAmJiBoYXNoX2RhdGFfc2l6ZSAhPSBTSEEzODRfSEFT SF9MRU4gJiYKKyAgICAgIGhhc2hfZGF0YV9zaXplICE9IFNIQTUxMl9IQVNIX0xFTikKKyAgICB7 CisgICAgICBncnViX2ZyZWUgKGhhc2hfZGF0YSk7CisgICAgICByZXR1cm4gZ3J1Yl9lcnJvciAo R1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgInVuYWNjZXB0YWJsZSB0cnVzdGVkIGJpbmFyeSBoYXNo IHR5cGUiKTsKKyAgICB9CisKKyAgcmMgPSBhZGRfaGFzaCAoaGFzaF9kYXRhLCBoYXNoX2RhdGFf c2l6ZSwgJmRiKTsKKworICBncnViX2ZyZWUgKGhhc2hfZGF0YSk7CisKKyAgcmV0dXJuIHJjOwor fQorCisvKgorICogUmVtb3ZlIHRoZSBkaXN0cnVzdGVkIGJpbmFyeS9jZXJ0aWZpY2F0ZSBoYXNo IGZyb20gdGhlIGRiIGxpc3QgaWYgcHJlc2VudC4KKyAqIEFuZCBhZGQgdGhlbSB0byB0aGUgZGJ4 IGxpc3QgaWYgaXQgaXMgbm90IGFscmVhZHkgcHJlc2VudC4KKyAqIE5vdGU6LSBXaGVuIHNpZ25h dHVyZSB2ZXJpZmljYXRpb24gaXMgZW5hYmxlZCwgdGhpcyBjb21tYW5kIG9ubHkgYWNjZXB0cwor ICogdGhlIGJpbmFyeS9jZXJ0aWZpY2F0ZSBoYXNoIGZpbGUgdGhhdCBpcyBzaWduZWQgd2l0aCBh biBhcHBlbmRlZCBzaWduYXR1cmUuCisgKiBUaGUgc2lnbmF0dXJlIGlzIHZlcmlmaWVkIGJ5IHRo ZSBhcHBlbmRlZHNpZyBtb2R1bGUuIElmIHZlcmlmaWNhdGlvbiBzdWNjZWVkcywKKyAqIHRoZSBi aW5hcnkvY2VydGlmaWNhdGUgaGFzaCBpcyBhZGRlZCB0byB0aGUgZGJ4IGxpc3QuIE90aGVyd2lz ZSwgYW4gZXJyb3IgaXMgcG9zdGVkIGFuZAorICogdGhlIGJpbmFyeS9jZXJ0aWZpY2F0ZSBoYXNo IGlzIG5vdCBhZGRlZC4KKyAqIFdoZW4gc2lnbmF0dXJlIHZlcmlmaWNhdGlvbiBpcyBkaXNhYmxl ZCwgaXQgYWNjZXB0cyB0aGUgYmluYXJ5L2NlcnRpZmljYXRlIGhhc2ggZmlsZSB3aXRob3V0Cisg KiBhbiBhcHBlbmRlZCBzaWduYXR1cmUgYW5kIGFkZHMgaXQgdG8gdGhlIGRieCBsaXN0LgorICoK KyAqIEFsc28sIG5vdGUgdGhhdCB0aGUgYWRkaW5nIG9mIHRoZSBkaXN0cnVzdGVkIGJpbmFyeS9j ZXJ0aWZpY2F0ZSBoYXNoIHVzaW5nIHRoaXMgY29tbWFuZCBkb2VzCisgKiBub3QgcGVyc2lzdCBh Y3Jvc3MgcmVib290cy4KKyAqLworc3RhdGljIGdydWJfZXJyX3QKK2dydWJfY21kX2RieF9oYXNo IChncnViX2V4dGNtZF9jb250ZXh0X3QgY3R4dCwgaW50IGFyZ2MgX19hdHRyaWJ1dGVfXyAoKHVu dXNlZCkpLAorICAgICAgICAgICAgICAgICAgIGNoYXIgKiphcmdzIF9fYXR0cmlidXRlX18gKCh1 bnVzZWQpKSkKK3sKKyAgZ3J1Yl9lcnJfdCByYzsKKyAgZ3J1Yl9maWxlX3QgaGFzaF9maWxlOwor ICBncnViX3VpbnQ4X3QgKmhhc2hfZGF0YSA9IE5VTEw7CisgIGdydWJfc2l6ZV90IGhhc2hfZGF0 YV9zaXplID0gMDsKKyAgY2hhciAqZmlsZV9wYXRoOworCisgIGlmIChhcHBlbmRfa2V5X21nbXQg PT0gZmFsc2UpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0FDQ0VTU19ERU5JRUQs CisgICAgICAgICAgICAgICAgICAgICAgICJhcHBlbmRfYWRkX2RieF9oYXNoIGNvbW1hbmQgaXMg dW5zdXBwb3J0ZWQgaW4gc3RhdGljIGtleSBtb2RlIik7CisKKyAgaWYgKCFjdHh0LT5zdGF0ZVtP UFRJT05fQklOQVJZX0hBU0hdLnNldCAmJiAhY3R4dC0+c3RhdGVbT1BUSU9OX0NFUlRfSEFTSF0u c2V0KQorICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfQVJHVU1FTlQsCisgICAg ICAgICAgICAgICAgICAgICAgICJhIGRpc3RydXN0ZWQgY2VydGlmaWNhdGUvYmluYXJ5IGhhc2gg ZmlsZSBpcyBleHBlY3RlZCBpbiBCaW5hcnkgZm9ybWF0XG4iCisgICAgICAgICAgICAgICAgICAg ICAgICJFeGFtcGxlOlxuXHRhcHBlbmRfYWRkX2RieF9oYXNoIFtvcHRpb25dIDxGSUxFPlxuIgor ICAgICAgICAgICAgICAgICAgICAgICAib3B0aW9uOlxuWy1ifC0tYmluYXJ5LWhhc2hdIEZJTEUg W0JJTkFSWSBIQVNIIEZJTEVdXG4iCisgICAgICAgICAgICAgICAgICAgICAgICJbLWN8LS1jZXJ0 LWhhc2hdIEZJTEUgW0NFUlRGSUNBVEUgSEFTSCBGSUxFXVxuIik7CisKKyAgaWYgKGN0eHQtPnN0 YXRlW09QVElPTl9CSU5BUllfSEFTSF0uYXJnID09IE5VTEwgJiYgY3R4dC0+c3RhdGVbT1BUSU9O X0NFUlRfSEFTSF0uYXJnID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJS X0JBRF9GSUxFTkFNRSwgIm1pc3NpbmcgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0ZS9iaW5hcnkgaGFz aCBmaWxlIik7CisKKyAgaWYgKGN0eHQtPnN0YXRlW09QVElPTl9CSU5BUllfSEFTSF0uYXJnICE9 IE5VTEwpCisgICAgZmlsZV9wYXRoID0gY3R4dC0+c3RhdGVbT1BUSU9OX0JJTkFSWV9IQVNIXS5h cmc7CisgIGVsc2UKKyAgICBmaWxlX3BhdGggPSBjdHh0LT5zdGF0ZVtPUFRJT05fQ0VSVF9IQVNI XS5hcmc7CisKKyAgaGFzaF9maWxlID0gZ3J1Yl9maWxlX29wZW4gKGZpbGVfcGF0aCwgR1JVQl9G SUxFX1RZUEVfSEFTSF9UUlVTVCB8IEdSVUJfRklMRV9UWVBFX05PX0RFQ09NUFJFU1MpOworICBp ZiAoaGFzaF9maWxlID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0ZJ TEVfTk9UX0ZPVU5ELCAidW5hYmxlIHRvIG9wZW4gJXMgZmlsZSIsIGZpbGVfcGF0aCk7CisKKyAg cmMgPSBmaWxlX3JlYWRfd2hvbGUgKGhhc2hfZmlsZSwgJmhhc2hfZGF0YSwgJmhhc2hfZGF0YV9z aXplKTsKKyAgZ3J1Yl9maWxlX2Nsb3NlIChoYXNoX2ZpbGUpOworICBpZiAocmMgIT0gR1JVQl9F UlJfTk9ORSkKKyAgICByZXR1cm4gcmM7CisKKyAgLyoKKyAgICogSWYgc2lnbmF0dXJlIHZlcmlm aWNhdGlvbiBpcyBlbmFibGVkLAorICAgKiBvYnRhaW4gdGhlIGFjdHVhbCBoYXNoIGRhdGEgc2l6 ZSBieSBzdWJ0cmFjdGluZyB0aGUgYXBwZW5kZWQKKyAgICogc2lnbmF0dXJlIHNpemUgZnJvbSB0 aGUgaGFzaCBkYXRhIHNpemUgYmVjYXVzZQorICAgKiB0aGUgaGFzaCBoYXMgYW4gYXBwZW5kZWQg c2lnbmF0dXJlLCBhbmQgdGhpcyBhY3R1YWwgaGFzaCBkYXRhIHNpemUgaXMKKyAgICogdXNlZCB0 byBnZXQgdGhlIGhhc2ggZGF0YS4KKyAgICovCisgIGlmIChjaGVja19zaWdzID09IHRydWUpCisg ICAgaGFzaF9kYXRhX3NpemUgLT0gYXBwZW5kX3NpZ19sZW47CisKKyAgZ3J1Yl9kcHJpbnRmICgi YXBwZW5kZWRzaWciLAorICAgICAgICAgICAgICAgICJhZGRpbmcgYSBkaXN0cnVzdGVkIGNlcnRp ZmljYXRlL2JpbmFyeSBoYXNoICUwMnglMDJ4JTAyeCUwMnguLi4iCisgICAgICAgICAgICAgICAg IiB3aXRoIHNpemUgb2YgJSIgUFJJdUdSVUJfU0laRSAiXG4iLCBoYXNoX2RhdGFbMF0sIGhhc2hf ZGF0YVsxXSwKKyAgICAgICAgICAgICAgICBoYXNoX2RhdGFbMl0sIGhhc2hfZGF0YVszXSwgaGFz aF9kYXRhX3NpemUpOworCisgIGlmIChjdHh0LT5zdGF0ZVtPUFRJT05fQklOQVJZX0hBU0hdLnNl dCB8fCBjdHh0LT5zdGF0ZVtPUFRJT05fQ0VSVF9IQVNIXS5zZXQpCisgICAgeworICAgICAgLyog T25seSBhY2NlcHQgU0hBMjU2LCBTSEEzODQgYW5kIFNIQTUxMiBjZXJ0aWZpY2F0ZS9iaW5hcnkg aGFzaCAqLworICAgICAgaWYgKGhhc2hfZGF0YV9zaXplICE9IFNIQTI1Nl9IQVNIX0xFTiAmJiBo YXNoX2RhdGFfc2l6ZSAhPSBTSEEzODRfSEFTSF9MRU4gJiYKKyAgICAgICAgICBoYXNoX2RhdGFf c2l6ZSAhPSBTSEE1MTJfSEFTSF9MRU4pCisgICAgICAgIHsKKyAgICAgICAgICBncnViX2ZyZWUg KGhhc2hfZGF0YSk7CisgICAgICAgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9T SUdOQVRVUkUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJ1bmFjY2VwdGFibGUgZGlz dHJ1c3RlZCBjZXJ0aWZpY2F0ZS9iaW5hcnkgaGFzaCB0eXBlIik7CisgICAgICAgIH0KKyAgICB9 CisKKyAgLyogUmVtb3ZlIGRpc3RydXN0ZWQgYmluYXJ5IGhhc2gvY2VydGlmaWNhdGUgZnJvbSB0 aGUgZGIgbGlzdCBpZiBwcmVzZW50LiAqLworICByZW1vdmVfaGFzaF9mcm9tX2RiIChoYXNoX2Rh dGEsIGhhc2hfZGF0YV9zaXplLAorICAgICAgICAgICAgICAgICAgICAgICAoKGN0eHQtPnN0YXRl W09QVElPTl9CSU5BUllfSEFTSF0uc2V0KSA/IHRydWUgOiBmYWxzZSkpOworICByYyA9IGFkZF9o YXNoIChoYXNoX2RhdGEsIGhhc2hfZGF0YV9zaXplLCAmZGJ4KTsKKworICBncnViX2ZyZWUgKGhh c2hfZGF0YSk7CisKKyAgcmV0dXJuIHJjOworfQorCiAvKiBBZGQgdGhlIFguNTA5IGNlcnRpZmlj YXRlcy9iaW5hcnkgaGFzaCB0byB0aGUgZGIgbGlzdCBmcm9tIFBLUy4gKi8KIHN0YXRpYyBncnVi X2Vycl90CiBsb2FkX3BrczJkYiAodm9pZCkKQEAgLTEzMDMsNiArMTU2NCwxMSBAQCBhcHBlbmRl ZHNpZ19pbml0IChncnViX2ZpbGVfdCBpbyBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksIGVudW0g Z3J1Yl9maWxlX3R5cGUgdAogICAgICAgICAgKiB2ZXJpZmllciwgYnV0IHdlIGxhY2sgdGhlIGh1 YnJpcyByZXF1aXJlZCB0byB0YWtlIHRoaXMgb24uIEluc3RlYWQsCiAgICAgICAgICAqIHJlcXVp cmUgdGhhdCBpdCBoYXZlIGFuIGFwcGVuZGVkIHNpZ25hdHVyZS4KICAgICAgICAgICovCisgICAg ICBjYXNlIEdSVUJfRklMRV9UWVBFX0hBU0hfVFJVU1Q6CisgICAgICAgIC8qCisgICAgICAgICAq IFRoaXMgaXMgYSBjZXJ0aWZpY2F0ZS9iaW5hcnkgaGFzaCB0byBhZGQgdG8gZGIvZGJ4LgorICAg ICAgICAgKiBUaGlzIG5lZWRzIHRvIGJlIHZlcmlmaWVkIG9yIGJsb2NrZWQuCisgICAgICAgICAq LwogICAgICAgY2FzZSBHUlVCX0ZJTEVfVFlQRV9MSU5VWF9LRVJORUw6CiAgICAgICBjYXNlIEdS VUJfRklMRV9UWVBFX0dSVUJfTU9EVUxFOgogICAgICAgICAvKgpAQCAtMTM0NCw2ICsxNjEwLDgg QEAgc3RydWN0IGdydWJfZmlsZV92ZXJpZmllciBncnViX2FwcGVuZGVkc2lnX3ZlcmlmaWVyID0g ewogfTsKIAogc3RhdGljIGdydWJfY29tbWFuZF90IGNtZF92ZXJpZnksIGNtZF9saXN0X2RiLCBj bWRfZGJ4X2NlcnQsIGNtZF9kYl9jZXJ0Oworc3RhdGljIGdydWJfY29tbWFuZF90IGNtZF9saXN0 X2RieCwgY21kX2RiX2hhc2g7CitzdGF0aWMgZ3J1Yl9leHRjbWRfdCBjbWRfZGJ4X2hhc2g7CiAK IEdSVUJfTU9EX0lOSVQgKGFwcGVuZGVkc2lnKQogewpAQCAtMTQyMiw2ICsxNjkwLDE2IEBAIEdS VUJfTU9EX0lOSVQgKGFwcGVuZGVkc2lnKQogICBjbWRfZGJ4X2NlcnQgPSBncnViX3JlZ2lzdGVy X2NvbW1hbmQgKCJhcHBlbmRfYWRkX2RieF9jZXJ0IiwgZ3J1Yl9jbWRfZGJ4X2NlcnQsIE5fKCI8 WDUwOV9DRVJUSUZJQ0FURT4iKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBOXygiQWRkIGRpc3RydXN0ZWQgWDUwOV9DRVJUSUZJQ0FURSB0byB0aGUgZGJ4IGxpc3Qi KSk7CiAKKyAgY21kX2xpc3RfZGJ4ID0gZ3J1Yl9yZWdpc3Rlcl9jb21tYW5kICgiYXBwZW5kX2xp c3RfZGJ4IiwgZ3J1Yl9jbWRfbGlzdF9kYngsIDAsCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTl8oIlNob3cgdGhlIGxpc3Qgb2YgZGlzdHJ1c3RlZCBjZXJ0aWZpY2F0 ZXMgYW5kIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgY2VydGlm aWNhdGUvYmluYXJ5IGhhc2hlcyBmcm9tIHRoZSBkYnggbGlzdCIpKTsKKyAgY21kX2RiX2hhc2gg PSBncnViX3JlZ2lzdGVyX2NvbW1hbmQgKCJhcHBlbmRfYWRkX2RiX2hhc2giLCBncnViX2NtZF9k Yl9oYXNoLCBOXygiQklOQVJZIEhBU0ggRklMRSIpLAorICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTl8oIkFkZCB0cnVzdGVkIEJJTkFSWSBIQVNIIHRvIHRoZSBkYiBsaXN0 LiIpKTsKKyAgY21kX2RieF9oYXNoID0gZ3J1Yl9yZWdpc3Rlcl9leHRjbWQgKCJhcHBlbmRfYWRk X2RieF9oYXNoIiwgZ3J1Yl9jbWRfZGJ4X2hhc2gsIDAsCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBOXygiWy1ifC0tYmluYXJ5LWhhc2hdIEZJTEUgW0JJTkFSWSBIQVNI IEZJTEVdXG4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiWy1jfC0t Y2VydC1oYXNoXSBGSUxFIFtDRVJURklDQVRFIEhBU0ggRklMRV0iKSwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE5fKCJBZGQgZGlzdHJ1c3RlZCBDRVJURklDQVRFL0JJ TkFSWSBIQVNIIHRvIHRoZSBkYnggbGlzdC4iKSwgb3B0aW9ucyk7CisKICAgZ3J1Yl92ZXJpZmll cl9yZWdpc3RlciAoJmdydWJfYXBwZW5kZWRzaWdfdmVyaWZpZXIpOwogICBncnViX2RsX3NldF9w ZXJzaXN0ZW50IChtb2QpOwogfQpAQCAtMTQ0NCw0ICsxNzIyLDcgQEAgR1JVQl9NT0RfRklOSSAo YXBwZW5kZWRzaWcpCiAgIGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfbGlzdF9kYik7CiAg IGdydWJfdW5yZWdpc3Rlcl9jb21tYW5kIChjbWRfZGJfY2VydCk7CiAgIGdydWJfdW5yZWdpc3Rl cl9jb21tYW5kIChjbWRfZGJ4X2NlcnQpOworICBncnViX3VucmVnaXN0ZXJfY29tbWFuZCAoY21k X2xpc3RfZGJ4KTsKKyAgZ3J1Yl91bnJlZ2lzdGVyX2NvbW1hbmQgKGNtZF9kYl9oYXNoKTsKKyAg Z3J1Yl91bnJlZ2lzdGVyX2V4dGNtZCAoY21kX2RieF9oYXNoKTsKIH0KZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZ3J1Yi9maWxlLmggYi9pbmNsdWRlL2dydWIvZmlsZS5oCmluZGV4IGQ2NzhkZTA2My4u MTZhNGI3ZDI2IDEwMDY0NAotLS0gYS9pbmNsdWRlL2dydWIvZmlsZS5oCisrKyBiL2luY2x1ZGUv Z3J1Yi9maWxlLmgKQEAgLTExNSw2ICsxMTUsOCBAQCBlbnVtIGdydWJfZmlsZV90eXBlCiAgICAg R1JVQl9GSUxFX1RZUEVfSEFTSExJU1QsCiAgICAgLyogRmlsZSBoYXNoZWQgYnkgaGFzaHN1bS4g ICovCiAgICAgR1JVQl9GSUxFX1RZUEVfVE9fSEFTSCwKKyAgICAvKiBGaWxlIGhvbGRpbmcgY2Vy dGlmaWNpYXRlL2JpbmFyeSBoYXNoIHRvIGFkZCB0byBkYi9kYnguICovCisgICAgR1JVQl9GSUxF X1RZUEVfSEFTSF9UUlVTVCwKICAgICAvKiBLZXlib2FyZCBsYXlvdXQuICAqLwogICAgIEdSVUJf RklMRV9UWVBFX0tFWUJPQVJEX0xBWU9VVCwKICAgICAvKiBQaWN0dXJlIGZpbGUuICAqLwotLSAK Mi41MC4xIChBcHBsZSBHaXQtMTU1KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fCkdydWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9y ZwpodHRwczovL2xpc3RzLmdudS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==