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 50704C83F26 for ; Tue, 29 Jul 2025 14:54:26 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ugli0-0000XU-J3; Tue, 29 Jul 2025 10:53:40 -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 1uglhW-0008MB-J5 for grub-devel@gnu.org; Tue, 29 Jul 2025 10:53:13 -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 1uglhT-0007DB-1o for grub-devel@gnu.org; Tue, 29 Jul 2025 10:53:10 -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 56T4ZDQN009273; Tue, 29 Jul 2025 14:53:03 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=u5L4SOcByPS3Jqjb0 xdC9dUPtX8bbvfgP9/cy13ztZs=; b=tTJheyL2V7XvCTosMrR1FHwrHTlKlrjgG LUbBBoOjRzuoZ1YQFtPAdr/IZvY6ifsp4Jq23K+F43x9iXi/AIDwNg4CDQ6AnaUf aX5rvsiy592BIgGPSIxSjbzebmmZ1Lt2QjTnxOR7yb1+QW65rA9r7FNDZan4pAwq ZAWq/FHgbHK9+nEGVPH+xm7rGW2xcCqvA1Vky21r2/n6a9tKh9LiMcZOaWu9+WzY TQYFxHkqL508wh+B4hNaNsiARSiXZ3gZZUOUiDldgPVlLZ3eCmd9emqJyvBNEg49 iiFI3djMbE2AzbRy7UJUR30cPF4b8A0SRe74KE/LONqglTM/oZtNg== Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 484qcfybgw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 29 Jul 2025 14:53:02 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 56TCxeTE017949; Tue, 29 Jul 2025 14:53:02 GMT Received: from smtprelay06.fra02v.mail.ibm.com ([9.218.2.230]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4859btk009-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 29 Jul 2025 14:53:01 +0000 Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com [10.20.54.106]) by smtprelay06.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 56TEqwJp23200052 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Jul 2025 14:52:58 GMT Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1D84220043; Tue, 29 Jul 2025 14:52:58 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 8272220040; Tue, 29 Jul 2025 14:52:55 +0000 (GMT) Received: from localhost.localdomain (unknown [9.39.21.169]) by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 29 Jul 2025 14:52:55 +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 Subject: [PATCH v6 11/20] powerpc_ieee1275: Read the db and dbx secure boot variables Date: Tue, 29 Jul 2025 20:21:47 +0530 Message-Id: <20250729145156.3522-12-sudhakar@linux.ibm.com> X-Mailer: git-send-email 2.39.5 (Apple Git-154) In-Reply-To: <20250729145156.3522-1-sudhakar@linux.ibm.com> References: <20250729145156.3522-1-sudhakar@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUwNzI5MDExMCBTYWx0ZWRfXyIPSx/+QItqs B714hbm6bElaChXRaHkhMwyv2Hy6eqmT28TgOQQTZUr2LOaVeJxEE0Kf/nCy4aJhqNEFWx40ood zFFc0PIjole1Es8igyxJk4DNe5FXNK+NeX30CElLRXjXbot9zmxhUpBTVwjJ1S3JXy24RbMbSAt T77RmSIRR3X6cg8pVdbzKCA3lHhyzUyGSLRDKSJ5vQFgrZmR6Eb+SgFcTtEuQ4n0Viqt4goT+uR GNMsfQkkvcKWnPqHTTA5UeNh/X/tLOxoQgSwwv8m3adnOWfkAB0l41LGBcfe8urRX5c+MKJUjCo tJs6mbF0DuE3Z6p7m96Has6IwarsENn7yRng/ZNB11Uc3rPhCqa3GMO/dNw6mfU/5rj+Mp+m/Td gbQr8iuYQBSKU6cyLe2u/PkYb8ptrqWM7Z0ZQmwX4CjBRK4y3bGYdOfkrcMT4a5pN275O0m6 X-Proofpoint-ORIG-GUID: Lwsw3NppiGABPKQf-B967y5H6Nl3kyQI X-Authority-Analysis: v=2.4 cv=Lp2Symdc c=1 sm=1 tr=0 ts=6888e04f cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=Wb1JkmetP80A:10 a=mDV3o1hIAAAA:8 a=NEAV23lmAAAA:8 a=VnNF1IyMAAAA:8 a=xLInZFtw7U1dOEzP79sA:9 a=3ZKOabzyN94A:10 X-Proofpoint-GUID: Lwsw3NppiGABPKQf-B967y5H6Nl3kyQI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1099,Hydra:6.1.9,FMLib:17.12.80.40 definitions=2025-07-29_03,2025-07-28_01,2025-03-28_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 phishscore=0 bulkscore=0 impostorscore=0 mlxscore=0 priorityscore=1501 adultscore=0 clxscore=1015 lowpriorityscore=0 malwarescore=0 suspectscore=0 mlxlogscore=999 spamscore=0 classifier=spam authscore=0 authtc=n/a authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.19.0-2505280000 definitions=main-2507290110 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.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_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 RW5oYW5jaW5nIHRoZSBpbmZyYXN0cnVjdHVyZSB0byBlbmFibGUgdGhlIFBsYXRmb3JtIEtleXN0 b3JlIChQS1MpIGZlYXR1cmUsCndoaWNoIHByb3ZpZGVzIGFjY2VzcyB0byB0aGUgU0JfVkVSU0lP TiwgZGIsIGFuZCBkYnggc2VjdXJlIGJvb3QgdmFyaWFibGVzCmZyb20gUEtTLgoKSWYgc2VjdXJl IGJvb3QgaXMgZW5hYmxlZCB3aXRoIGR5bmFtaWMga2V5IG1hbmFnZW1lbnQgbW9kZSwgaXQgd2ls bCByZWFkCnNlY3VyZSBib290IHZhcmlhYmxlcyBzdWNoIGFzIGRiIGFuZCBkYnggZnJvbSBQS1Mg YW5kIGV4dHJhY3QKRUZJIFNpZ25hdHVyZSBMaXN0IChFU0wpIGZyb20gaXQuIFRoZSBFU0xzIHdv dWxkIGJlIHNhdmVkIGluIHRoZQpQbGF0Zm9ybSBLZXlzdG9yZSBidWZmZXIsIGFuZCB0aGUgYXBw ZW5kZWRzaWcgbW9kdWxlIHdvdWxkIHJlYWQgaXQgbGF0ZXIKdG8gZXh0cmFjdCB0aGUgY2VydGlm aWNhdGUncyBkZXRhaWxzIGZyb20gRVNMLgoKSW4gdGhlIGZvbGxvd2luZyBzY2VuYXJpb3MsIHN0 YXRpYyBrZXkgbWFuYWdlbWVudCBtb2RlIHdpbGwgYmUgYWN0aXZhdGVkOgogMS4gV2hlbiBTZWN1 cmUgQm9vdCBpcyBlbmFibGVkIHdpdGggc3RhdGljIGtleSBtYW5hZ2VtZW50IG1vZGUKIDIuIFdo ZW4gU0JfVkVSU0lPTiBpcyB1bmF2YWlsYWJsZSBidXQgU2VjdXJlIEJvb3QgaXMgZW5hYmxlZAog My4gV2hlbiBQS1Mgc3VwcG9ydCBpcyB1bmF2YWlsYWJsZSBidXQgU2VjdXJlIEJvb3QgaXMgZW5h YmxlZAoKTm90ZTotCgogU0JfVkVSU0lPTjogS2V5IE1hbmFnZW1lbnQgTW9kZQogMSAtIEVuYWJs ZSBkeW5hbWljIGtleSBtYW5hZ2VtZW50IG1vZGUuIFJlYWQgdGhlIGRiIGFuZCBkYnggdmFyaWFi bGVzIGZyb20gUEtTLAogICAgIGFuZCB1c2UgdGhlbSBmb3Igc2lnbmF0dXJlIHZlcmlmaWNhdGlv bi4KIDAgLSBFbmFibGUgc3RhdGljIGtleSBtYW5hZ2VtZW50IG1vZGUuIFJlYWQga2V5cyBmcm9t IHRoZSBHUlVCIEVMRiBOb3RlIGFuZAogICAgIHVzZSBpdCBmb3Igc2lnbmF0dXJlIHZlcmlmaWNh dGlvbi4KClNpZ25lZC1vZmYtYnk6IFN1ZGhha2FyIEt1cHB1c2FteSA8c3VkaGFrYXJAbGludXgu aWJtLmNvbT4KLS0tCiBncnViLWNvcmUvTWFrZWZpbGUuYW0gICAgICAgICAgICAgICAgICAgICAg ICAgfCAgIDIgKwogZ3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmICAgICAgICAgICAgICAgICAg IHwgICAyICsKIGdydWItY29yZS9rZXJuL2llZWUxMjc1L2llZWUxMjc1LmMgICAgICAgICAgICB8 ICAgMSAtCiBncnViLWNvcmUva2Vybi9pZWVlMTI3NS9pbml0LmMgICAgICAgICAgICAgICAgfCAg MTQgKy0KIGdydWItY29yZS9rZXJuL3Bvd2VycGMvaWVlZTEyNzUvaWVlZTEyNzUuYyAgICB8IDEz OSArKysrKysrKwogLi4uL2tlcm4vcG93ZXJwYy9pZWVlMTI3NS9wbGF0Zm9ybV9rZXlzdG9yZS5j IHwgMzMzICsrKysrKysrKysrKysrKysrKwogaW5jbHVkZS9ncnViL2llZWUxMjc1L2llZWUxMjc1 LmggICAgICAgICAgICAgIHwgICAzICsKIGluY2x1ZGUvZ3J1Yi9wb3dlcnBjL2llZWUxMjc1L2ll ZWUxMjc1LmggICAgICB8ICAyMCArKwogLi4uL2dydWIvcG93ZXJwYy9pZWVlMTI3NS9wbGF0Zm9y bV9rZXlzdG9yZS5oIHwgMTE0ICsrKysrKwogOSBmaWxlcyBjaGFuZ2VkLCA2MjYgaW5zZXJ0aW9u cygrKSwgMiBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUva2Vybi9w b3dlcnBjL2llZWUxMjc1L2llZWUxMjc1LmMKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUv a2Vybi9wb3dlcnBjL2llZWUxMjc1L3BsYXRmb3JtX2tleXN0b3JlLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBpbmNsdWRlL2dydWIvcG93ZXJwYy9pZWVlMTI3NS9wbGF0Zm9ybV9rZXlzdG9yZS5oCgpk aWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL01ha2VmaWxlLmFtIGIvZ3J1Yi1jb3JlL01ha2VmaWxlLmFt CmluZGV4IGU1MGRiODEwNi4uY2Q2YmI3YzMyIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvTWFrZWZp bGUuYW0KKysrIGIvZ3J1Yi1jb3JlL01ha2VmaWxlLmFtCkBAIC0yNDEsMTEgKzI0MSwxMyBAQCBL RVJORUxfSEVBREVSX0ZJTEVTICs9ICQodG9wX2J1aWxkZGlyKS9pbmNsdWRlL2dydWIvbWFjaGlu ZS9rZXJuZWwuaAogZW5kaWYKIAogaWYgQ09ORF9wb3dlcnBjX2llZWUxMjc1CitLRVJORUxfSEVB REVSX0ZJTEVTICs9ICQodG9wX3NyY2RpcikvaW5jbHVkZS9ncnViL3Bvd2VycGMvaWVlZTEyNzUv aWVlZTEyNzUuaAogS0VSTkVMX0hFQURFUl9GSUxFUyArPSAkKHRvcF9zcmNkaXIpL2luY2x1ZGUv Z3J1Yi9pZWVlMTI3NS9pZWVlMTI3NS5oCiBLRVJORUxfSEVBREVSX0ZJTEVTICs9ICQodG9wX3Ny Y2RpcikvaW5jbHVkZS9ncnViL2llZWUxMjc1L2FsbG9jLmgKIEtFUk5FTF9IRUFERVJfRklMRVMg Kz0gJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL2dydWIvdGVybWluZm8uaAogS0VSTkVMX0hFQURFUl9G SUxFUyArPSAkKHRvcF9zcmNkaXIpL2luY2x1ZGUvZ3J1Yi9leHRjbWQuaAogS0VSTkVMX0hFQURF Ul9GSUxFUyArPSAkKHRvcF9zcmNkaXIpL2luY2x1ZGUvZ3J1Yi9saWIvYXJnLmgKK0tFUk5FTF9I RUFERVJfRklMRVMgKz0gJCh0b3Bfc3JjZGlyKS9pbmNsdWRlL2dydWIvcG93ZXJwYy9pZWVlMTI3 NS9wbGF0Zm9ybV9rZXlzdG9yZS5oCiBlbmRpZgogCiBpZiBDT05EX3NwYXJjNjRfaWVlZTEyNzUK ZGlmZiAtLWdpdCBhL2dydWItY29yZS9NYWtlZmlsZS5jb3JlLmRlZiBiL2dydWItY29yZS9NYWtl ZmlsZS5jb3JlLmRlZgppbmRleCAyM2ZkZGJhOWEuLmYxMDY4ZWFkZCAxMDA2NDQKLS0tIGEvZ3J1 Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmCisrKyBiL2dydWItY29yZS9NYWtlZmlsZS5jb3JlLmRl ZgpAQCAtMzI4LDEwICszMjgsMTIgQEAga2VybmVsID0gewogICBleHRyYV9kaXN0ID0gdmlkZW8v c2lzMzE1X2luaXQuYzsKICAgbWlwc19sb29uZ3NvbiA9IGNvbW1hbmRzL2tleWxheW91dHMuYzsK IAorICBwb3dlcnBjX2llZWUxMjc1ID0ga2Vybi9wb3dlcnBjL2llZWUxMjc1L2llZWUxMjc1LmM7 CiAgIHBvd2VycGNfaWVlZTEyNzUgPSBrZXJuL3Bvd2VycGMvY2FjaGUuUzsKICAgcG93ZXJwY19p ZWVlMTI3NSA9IGtlcm4vcG93ZXJwYy9kbC5jOwogICBwb3dlcnBjX2llZWUxMjc1ID0ga2Vybi9w b3dlcnBjL2NvbXBpbGVyLXJ0LlM7CiAgIHBvd2VycGNfaWVlZTEyNzUgPSBrZXJuL2xvY2tkb3du LmM7CisgIHBvd2VycGNfaWVlZTEyNzUgPSBrZXJuL3Bvd2VycGMvaWVlZTEyNzUvcGxhdGZvcm1f a2V5c3RvcmUuYzsKIAogICBzcGFyYzY0X2llZWUxMjc1ID0ga2Vybi9zcGFyYzY0L2NhY2hlLlM7 CiAgIHNwYXJjNjRfaWVlZTEyNzUgPSBrZXJuL3NwYXJjNjQvZGwuYzsKZGlmZiAtLWdpdCBhL2dy dWItY29yZS9rZXJuL2llZWUxMjc1L2llZWUxMjc1LmMgYi9ncnViLWNvcmUva2Vybi9pZWVlMTI3 NS9pZWVlMTI3NS5jCmluZGV4IDM2Y2EyZGJmYy4uYWZhMzdhOWYwIDEwMDY0NAotLS0gYS9ncnVi LWNvcmUva2Vybi9pZWVlMTI3NS9pZWVlMTI3NS5jCisrKyBiL2dydWItY29yZS9rZXJuL2llZWUx Mjc1L2llZWUxMjc1LmMKQEAgLTIzLDcgKzIzLDYgQEAKIAogI2RlZmluZSBJRUVFMTI3NV9QSEFO RExFX0lOVkFMSUQgICgoZ3J1Yl9pZWVlMTI3NV9jZWxsX3QpIC0xKQogI2RlZmluZSBJRUVFMTI3 NV9JSEFORExFX0lOVkFMSUQgICgoZ3J1Yl9pZWVlMTI3NV9jZWxsX3QpIDApCi0jZGVmaW5lIElF RUUxMjc1X0NFTExfSU5WQUxJRCAgICAgKChncnViX2llZWUxMjc1X2NlbGxfdCkgLTEpCiAKIAwK IApkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2tlcm4vaWVlZTEyNzUvaW5pdC5jIGIvZ3J1Yi1jb3Jl L2tlcm4vaWVlZTEyNzUvaW5pdC5jCmluZGV4IDBmMDA0N2Q2OS4uNjc5NjlkYTg3IDEwMDY0NAot LS0gYS9ncnViLWNvcmUva2Vybi9pZWVlMTI3NS9pbml0LmMKKysrIGIvZ3J1Yi1jb3JlL2tlcm4v aWVlZTEyNzUvaW5pdC5jCkBAIC01MSw2ICs1MSw4IEBACiAjZW5kaWYKICNpZiBkZWZpbmVkKF9f cG93ZXJwY19fKQogI2luY2x1ZGUgPGdydWIvbG9ja2Rvd24uaD4KKyNpbmNsdWRlIDxncnViL3Bv d2VycGMvaWVlZTEyNzUvaWVlZTEyNzUuaD4KKyNpbmNsdWRlIDxncnViL3Bvd2VycGMvaWVlZTEy NzUvcGxhdGZvcm1fa2V5c3RvcmUuaD4KICNlbmRpZgogCiAvKiBUaGUgbWF4aW11bSBoZWFwIHNp emUgd2UncmUgZ29pbmcgdG8gY2xhaW0gYXQgYm9vdC4gTm90IHVzZWQgYnkgc3BhcmMuICovCkBA IC0xMDA2LDYgKzEwMDgsNyBAQCBzdGF0aWMgZ3J1Yl91aW50MzJfdCBzYl9tb2RlID0gR1JVQl9T Ql9ESVNBQkxFRDsKIHN0YXRpYyB2b2lkCiBncnViX2llZWUxMjc1X2dldF9zZWN1cmVfYm9vdCAo dm9pZCkKIHsKKyAgZ3J1Yl9lcnJfdCBlcnI7CiAgIGdydWJfaWVlZTEyNzVfcGhhbmRsZV90IHJv b3Q7CiAgIGludCByYzsKIApAQCAtMTAzNiw3ICsxMDM5LDE2IEBAIGdydWJfaWVlZTEyNzVfZ2V0 X3NlY3VyZV9ib290ICh2b2lkKQogICAgKiBOb3csIG9ubHkgc3VwcG9ydCBkaXNhYmxlZCBhbmQg ZW5mb3JjZWQuCiAgICAqLwogICBpZiAoc2JfbW9kZSA9PSBHUlVCX1NCX0VORk9SQ0VEKQotICAg IGdydWJfbG9ja2Rvd24gKCk7CisgICAgeworICAgICAgZ3J1Yl9kcHJpbnRmICgiaWVlZTEyNzUi LCAiU2VjdXJlIEJvb3QgRW5hYmxlZFxuIik7CisgICAgICBlcnIgPSBncnViX3Brc19rZXlzdG9y ZV9pbml0ICgpOworICAgICAgaWYgKGVyciAhPSBHUlVCX0VSUl9OT05FKQorICAgICAgICBncnVi X2Vycm9yIChlcnIsICJpbml0aWFsaXphdGlvbiBvZiB0aGUgUGxhdGZvcm0gS2V5c3RvcmUgZmFp bGVkLlxuIik7CisKKyAgICAgIGdydWJfbG9ja2Rvd24gKCk7CisgICAgfQorICBlbHNlCisgICAg Z3J1Yl9kcHJpbnRmICgiaWVlZTEyNzUiLCAiU2VjdXJlIEJvb3QgRGlzYWJsZWRcbiIpOwogfQog CiBncnViX3VpbnQzMl90CmRpZmYgLS1naXQgYS9ncnViLWNvcmUva2Vybi9wb3dlcnBjL2llZWUx Mjc1L2llZWUxMjc1LmMgYi9ncnViLWNvcmUva2Vybi9wb3dlcnBjL2llZWUxMjc1L2llZWUxMjc1 LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi44MmJhMWQ1Y2QKLS0tIC9k ZXYvbnVsbAorKysgYi9ncnViLWNvcmUva2Vybi9wb3dlcnBjL2llZWUxMjc1L2llZWUxMjc1LmMK QEAgLTAsMCArMSwxMzkgQEAKKy8qIGllZWUxMjc1LmMgLSBBY2Nlc3MgdGhlIE9wZW4gRmlybXdh cmUgY2xpZW50IGludGVyZmFjZS4gICovCisvKgorICogIEdSVUIgIC0tICBHUmFuZCBVbmlmaWVk IEJvb3Rsb2FkZXIKKyAqICBDb3B5cmlnaHQgKEMpIDIwMDMsMjAwNCwyMDA1LDIwMDcsMjAwOCwy MDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIw MjAsIDIwMjEsIDIwMjIsIDIwMjMsIDIwMjQsIDIwMjUgSUJNIENvcnBvcmF0aW9uCisgKgorICog IEdSVUIgaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1v ZGlmeQorICogIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExp Y2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgKiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg ZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBHUlVCIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05V IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vu c2UKKyAqICBhbG9uZyB3aXRoIEdSVUIuICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3Jn L2xpY2Vuc2VzLz4uCisgKi8KKyNpbmNsdWRlIDxncnViL2llZWUxMjc1L2llZWUxMjc1Lmg+Cisj aW5jbHVkZSA8Z3J1Yi9wb3dlcnBjL2llZWUxMjc1L2llZWUxMjc1Lmg+CisjaW5jbHVkZSA8Z3J1 Yi9taXNjLmg+CisKK2ludAorZ3J1Yl9pZWVlMTI3NV90ZXN0IChjb25zdCBjaGFyICpuYW1lLCBn cnViX2llZWUxMjc1X2NlbGxfdCAqbWlzc2luZykKK3sKKyAgc3RydWN0IHRlc3RfYXJncworICB7 CisgICAgc3RydWN0IGdydWJfaWVlZTEyNzVfY29tbW9uX2hkciBjb21tb247CisgICAgZ3J1Yl9p ZWVlMTI3NV9jZWxsX3QgbmFtZTsKKyAgICBncnViX2llZWUxMjc1X2NlbGxfdCBtaXNzaW5nOwor ICB9IGFyZ3M7CisKKyAgSU5JVF9JRUVFMTI3NV9DT01NT04gKCZhcmdzLmNvbW1vbiwgInRlc3Qi LCAxLCAxKTsKKyAgYXJncy5uYW1lID0gKGdydWJfaWVlZTEyNzVfY2VsbF90KSBuYW1lOworCisg IGlmIChJRUVFMTI3NV9DQUxMX0VOVFJZX0ZOICgmYXJncykgPT0gLTEpCisgICAgcmV0dXJuIC0x OworCisgIGlmIChhcmdzLm1pc3NpbmcgPT0gSUVFRTEyNzVfQ0VMTF9JTlZBTElEKQorICAgIHJl dHVybiAtMTsKKworICAqbWlzc2luZyA9IGFyZ3MubWlzc2luZzsKKworICByZXR1cm4gMDsKK30K KworaW50CitncnViX2llZWUxMjc1X3Brc19tYXhfb2JqZWN0X3NpemUgKGdydWJfc2l6ZV90ICpy ZXN1bHQpCit7CisgIHN0cnVjdCBtb3NfYXJncworICB7CisgICAgc3RydWN0IGdydWJfaWVlZTEy NzVfY29tbW9uX2hkciBjb21tb247CisgICAgZ3J1Yl9pZWVlMTI3NV9jZWxsX3Qgc2l6ZTsKKyAg fSBhcmdzOworCisgIElOSVRfSUVFRTEyNzVfQ09NTU9OICgmYXJncy5jb21tb24sICJwa3MtbWF4 LW9iamVjdC1zaXplIiwgMCwgMSk7CisKKyAgaWYgKElFRUUxMjc1X0NBTExfRU5UUllfRk4gKCZh cmdzKSA9PSAtMSkKKyAgICByZXR1cm4gLTE7CisKKyAgaWYgKGFyZ3Muc2l6ZSA9PSBJRUVFMTI3 NV9DRUxMX0lOVkFMSUQpCisgICAgcmV0dXJuIC0xOworCisgICpyZXN1bHQgPSBhcmdzLnNpemU7 CisKKyAgcmV0dXJuIDA7Cit9CisKK2ludAorZ3J1Yl9pZWVlMTI3NV9wa3NfcmVhZF9vYmplY3Qg KGdydWJfdWludDhfdCBjb25zdW1lciwgZ3J1Yl91aW50OF90ICpsYWJlbCwKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBncnViX3NpemVfdCBsYWJlbF9sZW4sIGdydWJfdWludDhfdCAq YnVmZmVyLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfc2l6ZV90IGJ1ZmZl cl9sZW4sIGdydWJfc2l6ZV90ICpkYXRhX2xlbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBncnViX3VpbnQzMl90ICpwb2xpY2llcykKK3sKKyAgc3RydWN0IHBrc19yZWFkX2FyZ3MK KyAgeworICAgIHN0cnVjdCBncnViX2llZWUxMjc1X2NvbW1vbl9oZHIgY29tbW9uOworICAgIGdy dWJfaWVlZTEyNzVfY2VsbF90IGNvbnN1bWVyOworICAgIGdydWJfaWVlZTEyNzVfY2VsbF90IGxh YmVsOworICAgIGdydWJfaWVlZTEyNzVfY2VsbF90IGxhYmVsX2xlbjsKKyAgICBncnViX2llZWUx Mjc1X2NlbGxfdCBidWZmZXI7CisgICAgZ3J1Yl9pZWVlMTI3NV9jZWxsX3QgYnVmZmVyX2xlbjsK KyAgICBncnViX2llZWUxMjc1X2NlbGxfdCBkYXRhX2xlbjsKKyAgICBncnViX2llZWUxMjc1X2Nl bGxfdCBwb2xpY2llczsKKyAgICBpbnQgcmM7CisgIH0gYXJnczsKKworICBJTklUX0lFRUUxMjc1 X0NPTU1PTiAoJmFyZ3MuY29tbW9uLCAicGtzLXJlYWQtb2JqZWN0IiwgNSwgMyk7CisgIGFyZ3Mu Y29uc3VtZXIgPSAoZ3J1Yl9pZWVlMTI3NV9jZWxsX3QpIGNvbnN1bWVyOworICBhcmdzLmxhYmVs ID0gKGdydWJfaWVlZTEyNzVfY2VsbF90KSBsYWJlbDsKKyAgYXJncy5sYWJlbF9sZW4gPSAoZ3J1 Yl9pZWVlMTI3NV9jZWxsX3QpIGxhYmVsX2xlbjsKKyAgYXJncy5idWZmZXIgPSAoZ3J1Yl9pZWVl MTI3NV9jZWxsX3QpIGJ1ZmZlcjsKKyAgYXJncy5idWZmZXJfbGVuID0gKGdydWJfaWVlZTEyNzVf Y2VsbF90KSBidWZmZXJfbGVuOworCisgIGlmIChJRUVFMTI3NV9DQUxMX0VOVFJZX0ZOICgmYXJn cykgPT0gLTEpCisgICAgcmV0dXJuIC0xOworCisgIGlmIChhcmdzLmRhdGFfbGVuID09IElFRUUx Mjc1X0NFTExfSU5WQUxJRCkKKyAgICByZXR1cm4gLTE7CisKKyAgKmRhdGFfbGVuID0gYXJncy5k YXRhX2xlbjsKKyAgKnBvbGljaWVzID0gYXJncy5wb2xpY2llczsKKworICByZXR1cm4gYXJncy5y YzsKK30KKworaW50CitncnViX2llZWUxMjc1X3Brc19yZWFkX3NidmFyIChncnViX3VpbnQ4X3Qg c2J2YXJmbGFncywgZ3J1Yl91aW50OF90IHNidmFydHlwZSwKKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGdydWJfdWludDhfdCAqYnVmZmVyLCBncnViX3NpemVfdCBidWZmZXJfbGVuLAor ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3J1Yl9zaXplX3QgKmRhdGFfbGVuKQorewor ICBzdHJ1Y3QgcGtzX3JlYWRfc2J2YXJfYXJncworICB7CisgICAgc3RydWN0IGdydWJfaWVlZTEy NzVfY29tbW9uX2hkciBjb21tb247CisgICAgZ3J1Yl9pZWVlMTI3NV9jZWxsX3Qgc2J2YXJmbGFn czsKKyAgICBncnViX2llZWUxMjc1X2NlbGxfdCBzYnZhcnR5cGU7CisgICAgZ3J1Yl9pZWVlMTI3 NV9jZWxsX3QgYnVmZmVyOworICAgIGdydWJfaWVlZTEyNzVfY2VsbF90IGJ1ZmZlcl9sZW47Cisg ICAgZ3J1Yl9pZWVlMTI3NV9jZWxsX3QgZGF0YV9sZW47CisgICAgaW50IHJjOworICB9IGFyZ3M7 CisKKyAgSU5JVF9JRUVFMTI3NV9DT01NT04gKCZhcmdzLmNvbW1vbiwgInBrcy1yZWFkLXNidmFy IiwgNCwgMik7CisgIGFyZ3Muc2J2YXJmbGFncyA9IChncnViX2llZWUxMjc1X2NlbGxfdCkgc2J2 YXJmbGFnczsKKyAgYXJncy5zYnZhcnR5cGUgPSAoZ3J1Yl9pZWVlMTI3NV9jZWxsX3QpIHNidmFy dHlwZTsKKyAgYXJncy5idWZmZXIgPSAoZ3J1Yl9pZWVlMTI3NV9jZWxsX3QpIGJ1ZmZlcjsKKyAg YXJncy5idWZmZXJfbGVuID0gKGdydWJfaWVlZTEyNzVfY2VsbF90KSBidWZmZXJfbGVuOworCisg IGlmIChJRUVFMTI3NV9DQUxMX0VOVFJZX0ZOICgmYXJncykgPT0gLTEpCisgICAgcmV0dXJuIC0x OworCisgIGlmIChhcmdzLmRhdGFfbGVuID09IElFRUUxMjc1X0NFTExfSU5WQUxJRCkKKyAgICBy ZXR1cm4gLTE7CisKKyAgKmRhdGFfbGVuID0gYXJncy5kYXRhX2xlbjsKKworICByZXR1cm4gYXJn cy5yYzsKK30KZGlmZiAtLWdpdCBhL2dydWItY29yZS9rZXJuL3Bvd2VycGMvaWVlZTEyNzUvcGxh dGZvcm1fa2V5c3RvcmUuYyBiL2dydWItY29yZS9rZXJuL3Bvd2VycGMvaWVlZTEyNzUvcGxhdGZv cm1fa2V5c3RvcmUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmUzZmZh ZTE2ZgotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9rZXJuL3Bvd2VycGMvaWVlZTEyNzUv cGxhdGZvcm1fa2V5c3RvcmUuYwpAQCAtMCwwICsxLDMzMyBAQAorLyoKKyAqICBHUlVCICAtLSAg R1JhbmQgVW5pZmllZCBCb290bG9hZGVyCisgKiAgQ29weXJpZ2h0IChDKSAyMDI0ICBGcmVlIFNv ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KKyAqICBDb3B5cmlnaHQgKEMpIDIwMjIsIDIwMjMsIDIw MjQsIDIwMjUgSUJNIENvcnBvcmF0aW9uCisgKgorICogIEdSVUIgaXMgZnJlZSBzb2Z0d2FyZTog eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICogIGl0IHVuZGVyIHRoZSB0 ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cisg KiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUg TGljZW5zZSwgb3IKKyAqICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoK KyAqICBHUlVCIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJU SUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgKiAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2Ug Zm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29w eSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqICBhbG9uZyB3aXRoIEdSVUIu ICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisgKi8KKworI2lu Y2x1ZGUgPGdydWIvbW0uaD4KKyNpbmNsdWRlIDxncnViL3R5cGVzLmg+CisjaW5jbHVkZSA8Z3J1 Yi9taXNjLmg+CisjaW5jbHVkZSA8Z3J1Yi9sb2NrZG93bi5oPgorI2luY2x1ZGUgPGdydWIvaWVl ZTEyNzUvaWVlZTEyNzUuaD4KKyNpbmNsdWRlIDxncnViL3Bvd2VycGMvaWVlZTEyNzUvaWVlZTEy NzUuaD4KKyNpbmNsdWRlIDxncnViL3Bvd2VycGMvaWVlZTEyNzUvcGxhdGZvcm1fa2V5c3RvcmUu aD4KKworI2lmIF9fR05VQ19fID49IDkKKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAi LVdhZGRyZXNzLW9mLXBhY2tlZC1tZW1iZXIiCisjZW5kaWYKKworLyogUEtTIGNvbnN1bWVyIHR5 cGUgZm9yIGZpcm13YXJlLiAqLworI2RlZmluZSBQS1NfQ09OU1VNRVJfRlcgICAgICAoKGdydWJf dWludDhfdCkgMSkKKworLyogUEtTIHJlYWQgb2JqZWN0IGxhYmxlIGZvciBzZWN1cmUgYm9vdCB2 ZXJzaW9uLiAqLworI2RlZmluZSBTQl9WRVJTSU9OX0tFWV9OQU1FICAoKGdydWJfdWludDhfdCAq KSAiU0JfVkVSU0lPTiIpCisjZGVmaW5lIFNCX1ZFUlNJT05fS0VZX0xFTiAgICgoZ3J1Yl9zaXpl X3QpIDEwKQorCisvKiBQS1MgcmVhZCBzZWN1cmUgYm9vdCB2YXJpYWJsZSByZXF1ZXN0IHR5cGUg Zm9yIGRiIGFuZCBkYnguICovCisjZGVmaW5lIERCICAgICAgICAgICAgICAgICAgICgoZ3J1Yl91 aW50OF90KSAxKQorI2RlZmluZSBEQlggICAgICAgICAgICAgICAgICAoKGdydWJfdWludDhfdCkg MikKKworc3RhdGljIGdydWJfc2l6ZV90IHBrc19tYXhfb2JqZWN0X3NpemU7Citib29sIGdydWJf cGtzX3VzZV9rZXlzdG9yZSA9IGZhbHNlOworCisvKiBQbGF0Zm9ybSBLZXlzdG9yZS4gKi8KK2dy dWJfcGtzX3QgZ3J1Yl9wa3Nfa2V5c3RvcmUgPSB7IC5kYiA9IE5VTEwsIC5kYnggPSBOVUxMLCAu ZGJfZW50cmllcyA9IDAsIC5kYnhfZW50cmllcyA9IDAgfTsKKworLyoKKyAqIEltcG9ydCB0aGUg R2xvYmFsbHkgVW5pcXVlIElkZW50aWZpZXIgKEdVSUQpLCBFRkkgU2lnbmF0dXJlIERhdGFiYXNl IChFU0QpLAorICogYW5kIGl0cyBzaXplIGludG8gdGhlIFBLUyBTaWduYXR1cmUgRGF0YWJhc2Ug KFNEKSAoaS5lIHBrc19zZCBidWZmZXIpIGFuZCBwa3Nfc2QgZW50cmllcworICogZnJvbSB0aGUg RUZJIFNpZ25hdHVyZSBMaXN0IChFU0wpLgorICovCitzdGF0aWMgZ3J1Yl9lcnJfdAorZXNkX2Zy b21fZXNsIChjb25zdCBncnViX3VpbnQ4X3QgKmVzbF9kYXRhLCBncnViX3NpemVfdCBlc2xfc2l6 ZSwKKyAgICAgICAgICAgICAgY29uc3QgZ3J1Yl9zaXplX3Qgc2lnbmF0dXJlX3NpemUsIGNvbnN0 IGdydWJfcGFja2VkX2d1aWRfdCAqZ3VpZCwKKyAgICAgICAgICAgICAgZ3J1Yl9wa3Nfc2RfdCAq KnBrc19zZCwgZ3J1Yl9zaXplX3QgKnBrc19zZF9lbnRyaWVzKQoreworICBncnViX2VzZF90ICpl c2Q7CisgIGdydWJfcGtzX3NkX3QgKnNpZ25hdHVyZSA9ICpwa3Nfc2Q7CisgIGdydWJfc2l6ZV90 IGVudHJpZXMgPSAqcGtzX3NkX2VudHJpZXM7CisgIGdydWJfc2l6ZV90IGRhdGFfc2l6ZSwgb2Zm c2V0ID0gMDsKKworICAvKiBSZWFkcyB0aGUgRVNEIGZyb20gRVNMLiAqLworICB3aGlsZSAoZXNs X3NpemUgPiAwKQorICAgIHsKKyAgICAgIGVzZCA9IChncnViX2VzZF90ICopIChlc2xfZGF0YSAr IG9mZnNldCk7CisgICAgICBkYXRhX3NpemUgPSBzaWduYXR1cmVfc2l6ZSAtIHNpemVvZiAoZ3J1 Yl9lc2RfdCk7CisKKyAgICAgIHNpZ25hdHVyZSA9IGdydWJfcmVhbGxvYyAoc2lnbmF0dXJlLCAo ZW50cmllcyArIDEpICogc2l6ZW9mIChncnViX3Brc19zZF90KSk7CisgICAgICBpZiAoc2lnbmF0 dXJlID09IE5VTEwpCisgICAgICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9PVVRfT0Zf TUVNT1JZLCAib3V0IG9mIG1lbW9yeSIpOworCisgICAgICBzaWduYXR1cmVbZW50cmllc10uZGF0 YSA9IGdydWJfbWFsbG9jIChkYXRhX3NpemUgKiBzaXplb2YgKGdydWJfdWludDhfdCkpOworICAg ICAgaWYgKHNpZ25hdHVyZVtlbnRyaWVzXS5kYXRhID09IE5VTEwpCisgICAgICAgIHsKKyAgICAg ICAgICAvKgorICAgICAgICAgICAqIEFsbG9jYXRlZCBtZW1vcnkgd2lsbCBiZSBmcmVlZCBieQor ICAgICAgICAgICAqIGdydWJfZnJlZV9wbGF0Zm9ybV9rZXlzdG9yZS4KKyAgICAgICAgICAgKi8K KyAgICAgICAgICAqcGtzX3NkID0gc2lnbmF0dXJlOworICAgICAgICAgICpwa3Nfc2RfZW50cmll cyA9IGVudHJpZXMgKyAxOworICAgICAgICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9P VVRfT0ZfTUVNT1JZLCAib3V0IG9mIG1lbW9yeSIpOworICAgICAgICB9CisKKyAgICAgIGdydWJf bWVtY3B5IChzaWduYXR1cmVbZW50cmllc10uZGF0YSwgZXNkLT5zaWduYXR1cmVfZGF0YSwgZGF0 YV9zaXplKTsKKyAgICAgIHNpZ25hdHVyZVtlbnRyaWVzXS5kYXRhX3NpemUgPSBkYXRhX3NpemU7 CisgICAgICBzaWduYXR1cmVbZW50cmllc10uZ3VpZCA9ICpndWlkOworICAgICAgZW50cmllcysr OworICAgICAgZXNsX3NpemUgLT0gc2lnbmF0dXJlX3NpemU7CisgICAgICBvZmZzZXQgKz0gc2ln bmF0dXJlX3NpemU7CisgICAgfQorCisgICpwa3Nfc2QgPSBzaWduYXR1cmU7CisgICpwa3Nfc2Rf ZW50cmllcyA9IGVudHJpZXM7CisKKyAgcmV0dXJuIEdSVUJfRVJSX05PTkU7Cit9CisKKy8qIEV4 dHJhY3QgdGhlIEVTRCBhZnRlciByZW1vdmluZyB0aGUgRVNMIGhlYWRlciBmcm9tIEVTTC4gKi8K K3N0YXRpYyBncnViX2Vycl90Citlc2xfdG9fZXNkIChjb25zdCBncnViX3VpbnQ4X3QgKmVzbF9k YXRhLCBncnViX3NpemVfdCAqbmV4dF9lc2wsCisgICAgICAgICAgICBncnViX3Brc19zZF90ICoq cGtzX3NkLCBncnViX3NpemVfdCAqcGtzX3NkX2VudHJpZXMpCit7CisgIGdydWJfcGFja2VkX2d1 aWRfdCBndWlkOworICBncnViX2VzbF90ICplc2w7CisgIGdydWJfc2l6ZV90IG9mZnNldCwgZXNs X3NpemUsCisgICAgICAgICAgICAgIHNpZ25hdHVyZV9zaXplLCBzaWduYXR1cmVfaGVhZGVyX3Np emU7CisKKyAgLyogQ29udmVydCB0aGUgRVNMIGRhdGEgaW50byB0aGUgRVNMLiAqLworICBlc2wg PSAoZ3J1Yl9lc2xfdCAqKSBlc2xfZGF0YTsKKyAgaWYgKCpuZXh0X2VzbCA8IHNpemVvZiAoZ3J1 Yl9lc2xfdCkgfHwgZXNsID09IE5VTEwpCisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJS X0JVRywgImludmFsaWQgRVNMIik7CisKKyAgZXNsX3NpemUgPSBncnViX2xlX3RvX2NwdTMyIChl c2wtPnNpZ25hdHVyZV9saXN0X3NpemUpOworICBzaWduYXR1cmVfaGVhZGVyX3NpemUgPSBncnVi X2xlX3RvX2NwdTMyIChlc2wtPnNpZ25hdHVyZV9oZWFkZXJfc2l6ZSk7CisgIHNpZ25hdHVyZV9z aXplID0gZ3J1Yl9sZV90b19jcHUzMiAoZXNsLT5zaWduYXR1cmVfc2l6ZSk7CisgIGdydWJfbWVt Y3B5ICgmZ3VpZCwgJmVzbC0+c2lnbmF0dXJlX3R5cGUsIHNpemVvZiAoZ3J1Yl9wYWNrZWRfZ3Vp ZF90KSk7CisKKyAgaWYgKGVzbF9zaXplIDwgc2l6ZW9mIChncnViX2VzbF90KSB8fCBlc2xfc2l6 ZSA+ICpuZXh0X2VzbCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQlVHLCAiaW52 YWxpZCBFU0wgc2l6ZSAoJXUpXG4iLCBlc2xfc2l6ZSk7CisKKyAgKm5leHRfZXNsID0gZXNsX3Np emU7CisgIG9mZnNldCA9IHNpemVvZiAoZ3J1Yl9lc2xfdCkgKyBzaWduYXR1cmVfaGVhZGVyX3Np emU7CisgIGVzbF9zaXplID0gZXNsX3NpemUgLSBvZmZzZXQ7CisKKyAgcmV0dXJuIGVzZF9mcm9t X2VzbCAoZXNsX2RhdGEgKyBvZmZzZXQsIGVzbF9zaXplLCBzaWduYXR1cmVfc2l6ZSwgJmd1aWQs CisgICAgICAgICAgICAgICAgICAgICAgIHBrc19zZCwgcGtzX3NkX2VudHJpZXMpOworfQorCisv KgorICogSW1wb3J0IHRoZSBFRkkgU2lnbmF0dXJlIERhdGFiYXNlIChFU0QpIGFuZCB0aGUgbnVt YmVyIG9mIEVTRCBmcm9tIHRoZSBFU0wKKyAqIGludG8gdGhlIHBrc19zZCBidWZmZXIgYW5kIHBr c19zZCBlbnRyaWVzLgorICovCitzdGF0aWMgZ3J1Yl9lcnJfdAorcGtzX3NkX2Zyb21fZXNsIChj b25zdCBncnViX3VpbnQ4X3QgKmVzbF9kYXRhLCBncnViX3NpemVfdCBlc2xfc2l6ZSwKKyAgICAg ICAgICAgICAgICAgZ3J1Yl9wa3Nfc2RfdCAqKnBrc19zZCwgZ3J1Yl9zaXplX3QgKnBrc19zZF9l bnRyaWVzKQoreworICBncnViX2Vycl90IHJjOworICBncnViX3NpemVfdCBuZXh0X2VzbCA9IGVz bF9zaXplOworCisgIGRvCisgICAgeworICAgICAgcmMgPSBlc2xfdG9fZXNkIChlc2xfZGF0YSwg Jm5leHRfZXNsLCBwa3Nfc2QsIHBrc19zZF9lbnRyaWVzKTsKKyAgICAgIGlmIChyYyAhPSBHUlVC X0VSUl9OT05FKQorICAgICAgICBicmVhazsKKworICAgICAgZXNsX2RhdGEgKz0gbmV4dF9lc2w7 CisgICAgICBlc2xfc2l6ZSAtPSBuZXh0X2VzbDsKKyAgICAgIG5leHRfZXNsID0gZXNsX3NpemU7 CisgICAgfQorICB3aGlsZSAoZXNsX3NpemUgPiAwKTsKKworICByZXR1cm4gcmM7Cit9CisKKy8q CisgKiBSZWFkIHRoZSBzZWN1cmUgYm9vdCB2ZXJzaW9uIGZyb20gUEtTIGFzIGFuIG9iamVjdC4K KyAqIENhbGxlciBtdXN0IGZyZWUgcmVzdWx0LgorICovCitzdGF0aWMgZ3J1Yl9lcnJfdAorcmVh ZF9zYnZlcnNpb25fZnJvbV9wa3MgKGdydWJfdWludDhfdCAqKm91dCwgZ3J1Yl9zaXplX3QgKm91 dGxlbiwgZ3J1Yl9zaXplX3QgKnBvbGljeSkKK3sKKyAgaW50IHJjOworCisgICpvdXQgPSBncnVi X21hbGxvYyAocGtzX21heF9vYmplY3Rfc2l6ZSk7CisgIGlmICgqb3V0ID09IE5VTEwpCisgICAg cmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX09VVF9PRl9NRU1PUlksICJvdXQgb2YgbWVtb3J5 Iik7CisKKyAgcmMgPSBncnViX2llZWUxMjc1X3Brc19yZWFkX29iamVjdCAoUEtTX0NPTlNVTUVS X0ZXLCBTQl9WRVJTSU9OX0tFWV9OQU1FLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBTQl9WRVJTSU9OX0tFWV9MRU4sICpvdXQsIHBrc19tYXhfb2JqZWN0X3NpemUsCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG91dGxlbiwgcG9saWN5KTsKKyAg aWYgKHJjIDwgMCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfUkVBRF9FUlJPUiwg IlNCIHZlcnNpb24gcmVhZCBmYWlsZWQgKCVkKVxuIiwgcmMpOworCisgIHJldHVybiBHUlVCX0VS Ul9OT05FOworfQorCisvKgorICogUmVhZHMgdGhlIHNlY3VyZSBib290IHZhcmlhYmxlIGZyb20g UEtTLgorICogQ2FsbGVyIG11c3QgZnJlZSByZXN1bHQuCisgKi8KK3N0YXRpYyBncnViX2Vycl90 CityZWFkX3NidmFyX2Zyb21fcGtzIChjb25zdCBncnViX3VpbnQ4X3Qgc2J2YXJmbGFncywgY29u c3QgZ3J1Yl91aW50OF90IHNidmFydHlwZSwKKyAgICAgICAgICAgICAgICAgICAgIGdydWJfdWlu dDhfdCAqKm91dCwgZ3J1Yl9zaXplX3QgKm91dGxlbikKK3sKKyAgaW50IHJjOworCisgICpvdXQg PSBncnViX21hbGxvYyAocGtzX21heF9vYmplY3Rfc2l6ZSk7CisgIGlmICgqb3V0ID09IE5VTEwp CisgICAgcmV0dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX09VVF9PRl9NRU1PUlksICJvdXQgb2Yg bWVtb3J5Iik7CisKKyAgcmMgPSBncnViX2llZWUxMjc1X3Brc19yZWFkX3NidmFyIChzYnZhcmZs YWdzLCBzYnZhcnR5cGUsICpvdXQsIHBrc19tYXhfb2JqZWN0X3NpemUsIG91dGxlbik7CisgIGlm IChyYyA9PSBJRUVFMTI3NV9DRUxMX05PVF9GT1VORCkKKyAgICByZXR1cm4gZ3J1Yl9lcnJvciAo R1JVQl9FUlJfVU5LTk9XTl9DT01NQU5ELCAic2VjdXJlIGJvb3QgdmFyaWFibGUgJXMgbm90IGZv dW5kICglZCkiLAorICAgICAgICAgICAgICAgICAgICAgICAoc2J2YXJ0eXBlID09IERCID8gImRi IiA6ICJkYngiKSwgcmMpOworICBlbHNlIGlmIChyYyA8IDApCisgICAgcmV0dXJuIGdydWJfZXJy b3IgKEdSVUJfRVJSX1JFQURfRVJST1IsICJzZWN1cmUgYm9vdCB2YXJpYWJsZSAlcyByZWFkaW5n ICglZCkiLAorICAgICAgICAgICAgICAgICAgICAgICAoc2J2YXJ0eXBlID09IERCID8gImRiIiA6 ICJkYngiKSwgcmMpOworCisgIHJldHVybiBHUlVCX0VSUl9OT05FOworfQorCisvKiBUZXN0IHRo ZSBhdmFpbGFiaWxpdHkgb2YgUEtTIHN1cHBvcnQuICovCitzdGF0aWMgZ3J1Yl9lcnJfdAoraXNf c3VwcG9ydF9wa3MgKHZvaWQpCit7CisgIGludCByYzsKKyAgZ3J1Yl9pZWVlMTI3NV9jZWxsX3Qg bWlzc2luZyA9IDA7CisKKyAgcmMgPSBncnViX2llZWUxMjc1X3Rlc3QgKCJwa3MtbWF4LW9iamVj dC1zaXplIiwgJm1pc3NpbmcpOworICBpZiAocmMgPCAwIHx8IG1pc3NpbmcgPT0gSUVFRTEyNzVf Q0VMTF9JTlZBTElEKQorICAgIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9GSVJNV0FSRSwgImZp cm13YXJlIGRvZXNuJ3QgaGF2ZSBQS1Mgc3VwcG9ydFxuIik7CisgIGVsc2UKKyAgICB7CisgICAg ICByYyA9IGdydWJfaWVlZTEyNzVfcGtzX21heF9vYmplY3Rfc2l6ZSAoJnBrc19tYXhfb2JqZWN0 X3NpemUpOworICAgICAgaWYgKHJjIDwgMCkKKyAgICAgICAgZ3J1Yl9lcnJvciAoR1JVQl9FUlJf QkFEX05VTUJFUiwgIlBLUyBzdXBwb3J0IGlzIHRoZXJlIGJ1dCBpdCBoYXMgemVybyBvYmplY3Rz XG4iKTsKKyAgICB9CisKKyAgcmV0dXJuIEdSVUJfRVJSX05PTkU7Cit9CisKKy8qCisgKiBSZXRy aWV2ZSB0aGUgc2VjdXJlIGJvb3QgdmFyaWFibGUgZnJvbSBQS1MsIHVucGFja3MgaXQsIHJlYWQg dGhlIEVTRAorICogZnJvbSBFU0wsIGFuZCBzdG9yZSB0aGUgaW5mb3JtYXRpb24gaW4gdGhlIHBr c19zZCBidWZmZXIuCisgKi8KK3N0YXRpYyBncnViX2Vycl90CityZWFkX3NlY3VyZV9ib290X3Zh cmlhYmxlcyAoY29uc3QgZ3J1Yl91aW50OF90IHNidmFyZmxhZ3MsIGNvbnN0IGdydWJfdWludDhf dCBzYnZhcnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3J1Yl9wa3Nfc2RfdCAq KnBrc19zZCwgZ3J1Yl9zaXplX3QgKnBrc19zZF9lbnRyaWVzKQoreworICBncnViX2Vycl90IHJj OworICBncnViX3VpbnQ4X3QgKmVzbF9kYXRhID0gTlVMTDsKKyAgZ3J1Yl9zaXplX3QgZXNsX2Rh dGFfc2l6ZSA9IDA7CisKKyAgcmMgPSByZWFkX3NidmFyX2Zyb21fcGtzIChzYnZhcmZsYWdzLCBz YnZhcnR5cGUsICZlc2xfZGF0YSwgJmVzbF9kYXRhX3NpemUpOworICBpZiAocmMgPT0gR1JVQl9F UlJfTk9ORSAmJiBlc2xfZGF0YV9zaXplICE9IDApCisgICAgcmMgPSBwa3Nfc2RfZnJvbV9lc2wg KChjb25zdCBncnViX3VpbnQ4X3QgKikgZXNsX2RhdGEsIGVzbF9kYXRhX3NpemUsCisgICAgICAg ICAgICAgICAgICAgICAgICAgIHBrc19zZCwgcGtzX3NkX2VudHJpZXMpOworICBncnViX2ZyZWUg KGVzbF9kYXRhKTsKKworICByZXR1cm4gcmM7Cit9CisKKy8qCisgKiBSZWFkcyBzZWN1cmUgYm9v dCB2ZXJzaW9uIChTQl9WRVJTSU9OKSBhbmQgaXQgc3VwcG9ydHMgZm9sbG93aW5nLgorICogU0Jf VkVSU0lPTjoKKyAqIDEgLSBFbmFibGUgZHluYW1pYyBrZXkgbWFuYWdlbWVudCBtb2RlLiBSZWFk IHRoZSBkYiBhbmQgZGJ4IHZhcmlhYmxlcyBmcm9tIFBLUywKKyAgICAgICBhbmQgdXNlIHRoZW0g Zm9yIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24uCisgKiAwIC0gRW5hYmxlIHN0YXRpYyBrZXkgbWFu YWdlbWVudCBtb2RlLiBSZWFkIGtleXMgZnJvbSB0aGUgR1JVQiBFTEYgTm90ZSBhbmQKKyAqICAg ICB1c2UgaXQgZm9yIHNpZ25hdHVyZSB2ZXJpZmljYXRpb24uCisgKi8KK3N0YXRpYyBncnViX2Vy cl90CitnZXRfc2VjdXJlX2Jvb3RfdmVyc2lvbiAodm9pZCkKK3sKKyAgZ3J1Yl9lcnJfdCByYzsK KyAgZ3J1Yl91aW50OF90ICpkYXRhID0gTlVMTDsKKyAgZ3J1Yl9zaXplX3QgbGVuID0gMCwgcG9s aWN5ID0gMDsKKworICByYyA9IHJlYWRfc2J2ZXJzaW9uX2Zyb21fcGtzICgmZGF0YSwgJmxlbiwg JnBvbGljeSk7CisgIGlmIChyYyA9PSBHUlVCX0VSUl9OT05FICYmIChsZW4gIT0gMSB8fCAoKmRh dGEgPj0gMikpKQorICAgIHJjID0gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX05VTUJFUiwgImZv dW5kIHVuZXhwZWN0ZWQgU0IgdmVyc2lvbiAoJWQpXG4iLCAqZGF0YSk7CisKKyAgaWYgKHJjICE9 IEdSVUJfRVJSX05PTkUpCisgICAgZ3J1Yl9kcHJpbnRmICgiaWVlZTEyNzUiLCAic3dpdGNoIHRv IHN0YXRpYyBrZXlcbiIpOworICBlbHNlIGlmICgqZGF0YSkKKyAgICBncnViX3Brc191c2Vfa2V5 c3RvcmUgPSB0cnVlOworCisgIGdydWJfZnJlZSAoZGF0YSk7CisKKyAgcmV0dXJuIHJjOworfQor CisvKiBGcmVlIGFsbG9jYXRlZCBtZW1vcnkuICovCit2b2lkCitncnViX3Brc19mcmVlX2tleXN0 b3JlICh2b2lkKQoreworICBncnViX3NpemVfdCBpOworCisgIGZvciAoaSA9IDA7IGkgPCBncnVi X3Brc19rZXlzdG9yZS5kYl9lbnRyaWVzOyBpKyspCisgICAgZ3J1Yl9mcmVlIChncnViX3Brc19r ZXlzdG9yZS5kYltpXS5kYXRhKTsKKworICBmb3IgKGkgPSAwOyBpIDwgZ3J1Yl9wa3Nfa2V5c3Rv cmUuZGJ4X2VudHJpZXM7IGkrKykKKyAgICBncnViX2ZyZWUgKGdydWJfcGtzX2tleXN0b3JlLmRi eFtpXS5kYXRhKTsKKworICBncnViX2ZyZWUgKGdydWJfcGtzX2tleXN0b3JlLmRiKTsKKyAgZ3J1 Yl9mcmVlIChncnViX3Brc19rZXlzdG9yZS5kYngpOworICBncnViX21lbXNldCAoJmdydWJfcGtz X2tleXN0b3JlLCAwLCBzaXplb2YgKGdydWJfcGtzX3QpKTsKK30KKworLyogSW5pdGlhbGl6YXRp b24gb2YgdGhlIFBsYXRmb3JtIEtleXN0b3JlLiAqLworZ3J1Yl9lcnJfdAorZ3J1Yl9wa3Nfa2V5 c3RvcmVfaW5pdCAodm9pZCkKK3sKKyAgZ3J1Yl9lcnJfdCByYzsKKworICBncnViX2RwcmludGYg KCJpZWVlMTI3NSIsICJ0cnlpbmcgdG8gbG9hZCBQbGF0Zm9ybSBLZXlzdG9yZVxuIik7CisKKyAg cmMgPSBpc19zdXBwb3J0X3BrcyAoKTsKKyAgaWYgKHJjICE9IEdSVUJfRVJSX05PTkUpCisgICAg eworICAgICAgZ3J1Yl9kcHJpbnRmICgiaWVlZTEyNzUiLCAic3dpdGNoIHRvIHN0YXRpYyBrZXlc biIpOworICAgICAgcmV0dXJuIHJjOworICAgIH0KKworICAvKiBSZWFkIFNCX1ZFUlNJT04gZnJv bSBQS1MuICovCisgIHJjID0gZ2V0X3NlY3VyZV9ib290X3ZlcnNpb24gKCk7CisgIGlmIChyYyAh PSBHUlVCX0VSUl9OT05FKQorICAgIHJldHVybiByYzsKKworICBpZiAoZ3J1Yl9wa3NfdXNlX2tl eXN0b3JlID09IHRydWUpCisgICAgeworICAgICAgZ3J1Yl9tZW1zZXQgKCZncnViX3Brc19rZXlz dG9yZSwgMCwgc2l6ZW9mIChncnViX3Brc190KSk7CisgICAgICAvKiBSZWFkIGRiIGZyb20gUEtT LiAqLworICAgICAgcmMgPSByZWFkX3NlY3VyZV9ib290X3ZhcmlhYmxlcyAoMCwgREIsICZncnVi X3Brc19rZXlzdG9yZS5kYiwgJmdydWJfcGtzX2tleXN0b3JlLmRiX2VudHJpZXMpOworICAgICAg aWYgKHJjID09IEdSVUJfRVJSX05PTkUpCisgICAgICAgIHsKKyAgICAgICAgICAvKiBSZWFkIGRi eCBmcm9tIFBLUy4gKi8KKyAgICAgICAgICByYyA9IHJlYWRfc2VjdXJlX2Jvb3RfdmFyaWFibGVz ICgwLCBEQlgsICZncnViX3Brc19rZXlzdG9yZS5kYngsICZncnViX3Brc19rZXlzdG9yZS5kYnhf ZW50cmllcyk7CisgICAgICAgICAgaWYgKHJjID09IEdSVUJfRVJSX1VOS05PV05fQ09NTUFORCkK KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgZ3J1Yl9kcHJpbnRmICgiaWVlZTEyNzUiLCAi ZGJ4IGlzIG5vdCBmb3VuZCBpbiBQS1NcbiIpOworICAgICAgICAgICAgICByYyA9IEdSVUJfRVJS X05PTkU7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgIH0KKworICBpZiAocmMgIT0g R1JVQl9FUlJfTk9ORSkKKyAgICBncnViX3Brc19mcmVlX2tleXN0b3JlICgpOworCisgIHJldHVy biByYzsKK30KZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ3J1Yi9pZWVlMTI3NS9pZWVlMTI3NS5oIGIv aW5jbHVkZS9ncnViL2llZWUxMjc1L2llZWUxMjc1LmgKaW5kZXggNmY3OTI1MTY4Li4zNjVmYmIy MmMgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvZ3J1Yi9pZWVlMTI3NS9pZWVlMTI3NS5oCisrKyBiL2lu Y2x1ZGUvZ3J1Yi9pZWVlMTI3NS9pZWVlMTI3NS5oCkBAIC0yNCw2ICsyNCw5IEBACiAjaW5jbHVk ZSA8Z3J1Yi90eXBlcy5oPgogI2luY2x1ZGUgPGdydWIvbWFjaGluZS9pZWVlMTI3NS5oPgogCisj ZGVmaW5lIElFRUUxMjc1X0NFTExfSU5WQUxJRCAgICAgICAgICAoKGdydWJfaWVlZTEyNzVfY2Vs bF90KSAtMSkKKyNkZWZpbmUgSUVFRTEyNzVfQ0VMTF9OT1RfRk9VTkQgICAgICAgICgoaW50KSAt NykKKwogI2RlZmluZSBHUlVCX0lFRUUxMjc1X0NFTExfRkFMU0UgICAgICAgKChncnViX2llZWUx Mjc1X2NlbGxfdCkgMCkKICNkZWZpbmUgR1JVQl9JRUVFMTI3NV9DRUxMX1RSVUUgICAgICAgICgo Z3J1Yl9pZWVlMTI3NV9jZWxsX3QpIC0xKQogCmRpZmYgLS1naXQgYS9pbmNsdWRlL2dydWIvcG93 ZXJwYy9pZWVlMTI3NS9pZWVlMTI3NS5oIGIvaW5jbHVkZS9ncnViL3Bvd2VycGMvaWVlZTEyNzUv aWVlZTEyNzUuaAppbmRleCA0ZWIyMDcwMTguLmI3MGI4MTNmMiAxMDA2NDQKLS0tIGEvaW5jbHVk ZS9ncnViL3Bvd2VycGMvaWVlZTEyNzUvaWVlZTEyNzUuaAorKysgYi9pbmNsdWRlL2dydWIvcG93 ZXJwYy9pZWVlMTI3NS9pZWVlMTI3NS5oCkBAIC0yOCw0ICsyOCwyNCBAQCB0eXBlZGVmIGdydWJf dWludDMyX3QgZ3J1Yl9pZWVlMTI3NV9jZWxsX3Q7CiAjZGVmaW5lIFBSSXhHUlVCX0lFRUUxMjc1 X0NFTExfVAlQUkl4R1JVQl9VSU5UMzJfVAogI2RlZmluZSBQUkl1R1JVQl9JRUVFMTI3NV9DRUxM X1QJUFJJdUdSVUJfVUlOVDMyX1QKIAorI2lmZGVmIF9fcG93ZXJwY19fCisKK2V4dGVybiBpbnQK K2dydWJfaWVlZTEyNzVfdGVzdCAoY29uc3QgY2hhciAqbmFtZSwgZ3J1Yl9pZWVlMTI3NV9jZWxs X3QgKm1pc3NpbmcpOworCitleHRlcm4gaW50CitncnViX2llZWUxMjc1X3Brc19tYXhfb2JqZWN0 X3NpemUgKGdydWJfc2l6ZV90ICpyZXN1bHQpOworCitleHRlcm4gaW50CitncnViX2llZWUxMjc1 X3Brc19yZWFkX29iamVjdCAoZ3J1Yl91aW50OF90IGNvbnN1bWVyLCBncnViX3VpbnQ4X3QgKmxh YmVsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdydWJfc2l6ZV90IGxhYmVsX2xl biwgZ3J1Yl91aW50OF90ICpidWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg Z3J1Yl9zaXplX3QgYnVmZmVyX2xlbiwgZ3J1Yl9zaXplX3QgKmRhdGFfbGVuLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdydWJfdWludDMyX3QgKnBvbGljaWVzKTsKKworZXh0ZXJu IGludAorZ3J1Yl9pZWVlMTI3NV9wa3NfcmVhZF9zYnZhciAoZ3J1Yl91aW50OF90IHNidmFyZmxh Z3MsIGdydWJfdWludDhfdCBzYnZhcnR5cGUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBncnViX3VpbnQ4X3QgKmJ1ZmZlciwgZ3J1Yl9zaXplX3QgYnVmZmVyX2xlbiwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGdydWJfc2l6ZV90ICpkYXRhX2xlbik7CisjZW5kaWYKKwog I2VuZGlmIC8qICEgR1JVQl9JRUVFMTI3NV9NQUNISU5FX0hFQURFUiAqLwpkaWZmIC0tZ2l0IGEv aW5jbHVkZS9ncnViL3Bvd2VycGMvaWVlZTEyNzUvcGxhdGZvcm1fa2V5c3RvcmUuaCBiL2luY2x1 ZGUvZ3J1Yi9wb3dlcnBjL2llZWUxMjc1L3BsYXRmb3JtX2tleXN0b3JlLmgKbmV3IGZpbGUgbW9k ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi41NTc3NDBjNzAKLS0tIC9kZXYvbnVsbAorKysgYi9p bmNsdWRlL2dydWIvcG93ZXJwYy9pZWVlMTI3NS9wbGF0Zm9ybV9rZXlzdG9yZS5oCkBAIC0wLDAg KzEsMTE0IEBACisvKgorICogQ29weXJpZ2h0IChjKSAyMDA2IC0gMjAxNSwgSW50ZWwgQ29ycG9y YXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuIFRoaXMKKyAqIHByb2dyYW0gYW5kIHRoZSBhY2Nv bXBhbnlpbmcgbWF0ZXJpYWxzIGFyZSBsaWNlbnNlZCBhbmQgbWFkZSBhdmFpbGFibGUKKyAqIHVu ZGVyIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB0aGUgMi1DbGF1c2UgQlNEIExpY2Vuc2Ug d2hpY2gKKyAqIGFjY29tcGFuaWVzIHRoaXMgZGlzdHJpYnV0aW9uLgorICoKKyAqIFJlZGlzdHJp YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91 dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv d2luZyBjb25kaXRpb25zIGFyZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLAorICogdGhp cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqCisg KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi b3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ QlVUT1JTICJBUyBJUyIKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF CisgKiBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xE RVIgT1IgQ09OVFJJQlVUT1JTIEJFCisgKiBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO IElGIEFEVklTRUQgT0YgVEhFCisgKiBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqCisg KiBodHRwczovL2dpdGh1Yi5jb20vdGlhbm9jb3JlL2VkazItc3RhZ2luZyAoZWRrMi1zdGFnaW5n IHJlcG8gb2YgdGlhbm9jb3JlKSwKKyAqIHRoZSBJbWFnZUF1dGhlbnRpY2F0aW9uLmggZmlsZSB1 bmRlciBpdCwgYW5kIGhlcmUncyB0aGUgY29weXJpZ2h0IGFuZCBsaWNlbnNlLgorICoKKyAqIE1k ZVBrZy9JbmNsdWRlL0d1aWQvSW1hZ2VBdXRoZW50aWNhdGlvbi5oCisgKgorICogQ29weXJpZ2h0 IDIwMjIsIDIwMjMsIDIwMjQsIDIwMjUgSUJNIENvcnAuCisgKi8KKworI2lmbmRlZiBQTEFURk9S TV9LRVlTVE9SRV9IRUFERVIKKyNkZWZpbmUgUExBVEZPUk1fS0VZU1RPUkVfSEVBREVSICAgIDEK KworI2luY2x1ZGUgPGdydWIvc3ltYm9sLmg+CisjaW5jbHVkZSA8Z3J1Yi9tbS5oPgorI2luY2x1 ZGUgPGdydWIvdHlwZXMuaD4KKworI2RlZmluZSBHUlVCX01BWF9IQVNIX1NJWkUgNjQKKworLyoK KyAqIEl0IGlzIGRlcml2ZWQgZnJvbSBFRklfU0lHTkFUVVJFX0RBVEEKKyAqIGh0dHBzOi8vZ2l0 aHViLmNvbS90aWFub2NvcmUvZWRrMi1zdGFnaW5nL2Jsb2IvbWFzdGVyL01kZVBrZy9JbmNsdWRl L0d1aWQvSW1hZ2VBdXRoZW50aWNhdGlvbi5oCisgKgorICogVGhlIHN0cnVjdHVyZSBvZiBhbiBF RkkgU2lnbmF0dXJlIERhdGFiYXNlIChFU0QpLiAqLworc3RydWN0IGdydWJfZXNkCit7CisgIC8q CisgICAqIEFuIGlkZW50aWZpZXIgd2hpY2ggaWRlbnRpZmllcyB0aGUgYWdlbnQgd2hpY2ggYWRk ZWQKKyAgICogdGhlIHNpZ25hdHVyZSB0byB0aGUgbGlzdC4KKyAgICovCisgIGdydWJfcGFja2Vk X2d1aWRfdCBzaWduYXR1cmVfb3duZXI7CisgIC8qIFRoZSBmb3JtYXQgb2YgdGhlIHNpZ25hdHVy ZSBpcyBkZWZpbmVkIGJ5IHRoZSBTaWduYXR1cmVUeXBlLiAqLworICBncnViX3VpbnQ4X3Qgc2ln bmF0dXJlX2RhdGFbXTsKK30gR1JVQl9QQUNLRUQ7Cit0eXBlZGVmIHN0cnVjdCBncnViX2VzZCBn cnViX2VzZF90OworCisvKgorICogSXQgaXMgZGVyaXZlZCBmcm9tIEVGSV9TSUdOQVRVUkVfTElT VAorICogaHR0cHM6Ly9naXRodWIuY29tL3RpYW5vY29yZS9lZGsyLXN0YWdpbmcvYmxvYi9tYXN0 ZXIvTWRlUGtnL0luY2x1ZGUvR3VpZC9JbWFnZUF1dGhlbnRpY2F0aW9uLmgKKyAqCisgKiBUaGUg c3RydWN0dXJlIG9mIGFuIEVGSSBTaWduYXR1cmUgTGlzdCAoRVNMKS4gKi8KK3N0cnVjdCBncnVi X2VzbAoreworICAvKiBUeXBlIG9mIHRoZSBzaWduYXR1cmUuIEdVSUQgc2lnbmF0dXJlIHR5cGVz IGFyZSBkZWZpbmVkIGluIGJlbG93LiAqLworICBncnViX3BhY2tlZF9ndWlkX3Qgc2lnbmF0dXJl X3R5cGU7CisgIC8qIFRvdGFsIHNpemUgb2YgdGhlIHNpZ25hdHVyZSBsaXN0LCBpbmNsdWRpbmcg dGhpcyBoZWFkZXIuICovCisgIGdydWJfdWludDMyX3Qgc2lnbmF0dXJlX2xpc3Rfc2l6ZTsKKyAg LyoKKyAgICogU2l6ZSBvZiB0aGUgc2lnbmF0dXJlIGhlYWRlciB3aGljaCBwcmVjZWRlcworICAg KiB0aGUgYXJyYXkgb2Ygc2lnbmF0dXJlcy4KKyAgICovCisgIGdydWJfdWludDMyX3Qgc2lnbmF0 dXJlX2hlYWRlcl9zaXplOworICAvKiBTaXplIG9mIGVhY2ggc2lnbmF0dXJlLiovCisgIGdydWJf dWludDMyX3Qgc2lnbmF0dXJlX3NpemU7Cit9IEdSVUJfUEFDS0VEOwordHlwZWRlZiBzdHJ1Y3Qg Z3J1Yl9lc2wgZ3J1Yl9lc2xfdDsKKworLyogVGhlIHN0cnVjdHVyZSBvZiBhIFBLUyBTaWduYXR1 cmUgRGF0YWJhc2UgKFNEKS4gKi8KK3N0cnVjdCBncnViX3Brc19zZAoreworICBncnViX3BhY2tl ZF9ndWlkX3QgZ3VpZDsgLyogU2lnbmF0dXJlIHR5cGUuICovCisgIGdydWJfdWludDhfdCAqZGF0 YTsgICAgICAvKiBTaWduYXR1cmUgZGF0YS4gKi8KKyAgZ3J1Yl9zaXplX3QgZGF0YV9zaXplOyAg IC8qIFNpemUgb2Ygc2lnbmF0dXJlIGRhdGEuICovCit9IEdSVUJfUEFDS0VEOwordHlwZWRlZiBz dHJ1Y3QgZ3J1Yl9wa3Nfc2QgZ3J1Yl9wa3Nfc2RfdDsKKworLyogVGhlIHN0cnVjdHVyZSBvZiBh IFBsYXRmb3JtIEtleXN0b3JlIChQS1MpLiAqLworc3RydWN0IGdydWJfcGtzCit7CisgIGdydWJf cGtzX3NkX3QgKmRiOyAgICAgICAgLyogU2lnbmF0dXJlIGRhdGFiYXNlLiAqLworICBncnViX3Br c19zZF90ICpkYng7ICAgICAgIC8qIEZvcmJpZGRlbiBzaWduYXR1cmUgZGF0YWJhc2UuICovCisg IGdydWJfc2l6ZV90IGRiX2VudHJpZXM7ICAgLyogU2l6ZSBvZiBzaWduYXR1cmUgZGF0YWJhc2Uu ICovCisgIGdydWJfc2l6ZV90IGRieF9lbnRyaWVzOyAgLyogU2l6ZSBvZiBmb3JiaWRkZW4gc2ln bmF0dXJlIGRhdGFiYXNlLiAqLworfSBHUlVCX1BBQ0tFRDsKK3R5cGVkZWYgc3RydWN0IGdydWJf cGtzIGdydWJfcGtzX3Q7CisKKy8qIEluaXRpYWxpemF0aW9uIG9mIHRoZSBQbGF0Zm9ybSBLZXlz dG9yZS4gKi8KK2V4dGVybiBncnViX2Vycl90CitncnViX3Brc19rZXlzdG9yZV9pbml0ICh2b2lk KTsKKworLyogRnJlZSBhbGxvY2F0ZWQgbWVtb3J5LiAqLworZXh0ZXJuIHZvaWQKK0VYUE9SVF9G VU5DIChncnViX3Brc19mcmVlX2tleXN0b3JlKSAodm9pZCk7CisKK2V4dGVybiBib29sIEVYUE9S VF9WQVIgKGdydWJfcGtzX3VzZV9rZXlzdG9yZSk7CitleHRlcm4gZ3J1Yl9wa3NfdCBFWFBPUlRf VkFSIChncnViX3Brc19rZXlzdG9yZSk7CisKKyNlbmRpZgotLSAKMi4zOS41IChBcHBsZSBHaXQt MTU0KQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkdy dWItZGV2ZWwgbWFpbGluZyBsaXN0CkdydWItZGV2ZWxAZ251Lm9yZwpodHRwczovL2xpc3RzLmdu dS5vcmcvbWFpbG1hbi9saXN0aW5mby9ncnViLWRldmVsCg==