From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-VE1-obe.outbound.protection.outlook.com (mail-eopbgr20070.outbound.protection.outlook.com [40.107.2.70]) by sourceware.org (Postfix) with ESMTPS id ECC9F3877034 for ; Tue, 7 Apr 2020 12:31:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org ECC9F3877034 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=Dennis.Zhang@arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dNP/Fto7u/heUrP4F9w5pKhqC3c8p6FlTteX56Fjf20=; b=WitZJKE8ag3s8r3Lw1W5Ks5R1LYH/yXi4Mp/SBVm1r8i8kylefR9tJ52ju7KEP93dWI/bvzDhaS8AUzQnRE/K1TXKkHIsXgUyb1q182gJEp50BKYv3nv8wWLirJuy9thy5iHWgN/ZqSdsS/p7BGe2Ia7DxGLHPhXJ5PUlEh1GoI= Received: from VI1PR0401CA0007.eurprd04.prod.outlook.com (2603:10a6:800:4a::17) by AM6PR08MB3319.eurprd08.prod.outlook.com (2603:10a6:209:4e::27) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2878.20; Tue, 7 Apr 2020 12:31:28 +0000 Received: from VE1EUR03FT026.eop-EUR03.prod.protection.outlook.com (2603:10a6:800:4a:cafe::6b) by VI1PR0401CA0007.outlook.office365.com (2603:10a6:800:4a::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2878.15 via Frontend Transport; Tue, 7 Apr 2020 12:31:28 +0000 Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; dmarc=bestguesspass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT026.mail.protection.outlook.com (10.152.18.148) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.17 via Frontend Transport; Tue, 7 Apr 2020 12:31:28 +0000 Received: ("Tessian outbound 55454527ea3b:v50"); Tue, 07 Apr 2020 12:31:27 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: d082ae7f1232070b X-CR-MTA-TID: 64aa7808 Received: from d0deb70ca56b.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 3B5E03DA-27B1-42F5-804F-7DE1D6E114F2.1; Tue, 07 Apr 2020 12:31:22 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id d0deb70ca56b.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 07 Apr 2020 12:31:22 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZUxYWNjJWo04JsJi9mhSZhk4j40ls+O7Kd854hO57aEsVFIJszHf6JrN43oeY3HoHr1wytkZT78HMeMuscRBddSapqDl2az3LzE555MhjNoLPc4DTntDRRcoqkwXf09ewOeXNolNwUwrAyL2VZw4jcsjNO0/IZ0eOpPjRvrto/a0KVTmPUf5FQwXeRdxtg5f1AE2vYJkTVZE08ZGE9tmezqZFe2x0b1Q1e8ApST3jrsWBVKvJmZG+3Tuzwo5MsLBJ0+86bg+b4cbthRvjK43WDZm3CC4w3QzAWnStXoL4Je9Wabo10v2Yfv0AjOdClhWaerPg17zC41J/ICyjjIotw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dNP/Fto7u/heUrP4F9w5pKhqC3c8p6FlTteX56Fjf20=; b=WzsbDyfaqeZNJZvcYqAQ1KXSFC2M2tFaWkO1oRmhYOQhCzgeLa6zukDb4Ub91Y6sCdPaH72J6hneWt4AC27E8wnF8qsYmjNU6BLMXm4i8P0Ipy4R3F/rmzKX93rlEUnYS3ya2+nzqZYBaVMA+fcabqA5qcLW762WdMgdbcF1WhWM4mcbRgR/4xrV3dZWp/iU1V2ynPJ6v9/K0olNxj6449TQgdVB30wjwFv0fLJHJjYkDpwHr+BIqQdh8kd5AH9++Us9RncosxSMcCsHkz9KL6IMvaGIwkqZDbT0txPs3Wez/h0iOa7qiVQL65hFRSVB9PvhLA2olkCvH55cvXhG0w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dNP/Fto7u/heUrP4F9w5pKhqC3c8p6FlTteX56Fjf20=; b=WitZJKE8ag3s8r3Lw1W5Ks5R1LYH/yXi4Mp/SBVm1r8i8kylefR9tJ52ju7KEP93dWI/bvzDhaS8AUzQnRE/K1TXKkHIsXgUyb1q182gJEp50BKYv3nv8wWLirJuy9thy5iHWgN/ZqSdsS/p7BGe2Ia7DxGLHPhXJ5PUlEh1GoI= Received: from VI1PR08MB3725.eurprd08.prod.outlook.com (2603:10a6:803:b6::17) by VI1PR08MB4045.eurprd08.prod.outlook.com (2603:10a6:803:dd::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2878.16; Tue, 7 Apr 2020 12:31:21 +0000 Received: from VI1PR08MB3725.eurprd08.prod.outlook.com ([fe80::f4ed:8c40:9546:3286]) by VI1PR08MB3725.eurprd08.prod.outlook.com ([fe80::f4ed:8c40:9546:3286%5]) with mapi id 15.20.2878.022; Tue, 7 Apr 2020 12:31:21 +0000 From: Dennis Zhang To: "gcc-patches@gcc.gnu.org" CC: nd , Richard Earnshaw , Ramana Radhakrishnan , Kyrylo Tkachov Subject: Re: [PATCH][Arm][2/4] Custom Datapath Extension intrinsics: instructions using FPU/MVE S/D registers Thread-Topic: [PATCH][Arm][2/4] Custom Datapath Extension intrinsics: instructions using FPU/MVE S/D registers Thread-Index: AQHV+W4LkAlvctj8ZUWN8tfUktOLuahRn98BgBwaFYw= Date: Tue, 7 Apr 2020 12:31:21 +0000 Message-ID: References: <9c5979ae-fef2-4de8-75eb-bd11b073c0c7@arm.com>, , , In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Authentication-Results-Original: spf=none (sender IP is ) smtp.mailfrom=Dennis.Zhang@arm.com; x-originating-ip: [2a00:23c5:d101:3900:8520:5578:58ea:9fb1] x-ms-publictraffictype: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 2b9898da-2b82-49d7-8330-08d7daef9834 x-ms-traffictypediagnostic: VI1PR08MB4045:|VI1PR08MB4045:|AM6PR08MB3319: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:1923;OLM:1923; x-forefront-prvs: 036614DD9C X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB3725.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(366004)(376002)(346002)(396003)(136003)(39860400002)(99936003)(966005)(55016002)(66446008)(186003)(66946007)(7696005)(6916009)(52536014)(66556008)(2906002)(66616009)(9686003)(64756008)(81166006)(81156014)(76116006)(6506007)(66476007)(8936002)(8676002)(478600001)(33656002)(54906003)(5660300002)(4326008)(71200400001)(86362001)(316002); DIR:OUT; SFP:1101; received-spf: None (protection.outlook.com: arm.com does not designate permitted sender hosts) X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: wRMzm0PvTF1CAkJ05Ufd4AXTcC4SilxNiLAPh4xzW0e2YYP/JI8cMWyd4q2fIOZcOOTuIy1duAlWSWpMDyvX2dz2XCMhIElYKBVESWtPvb9Qebsshzo0xSD/sna3Nm3u4fbO+ze8y+3BtFQKbk+iEu3ixhPLL5Ycyr+G0ej7KNM7vj3nLOuucdo9lFs1OvmHve2a3rFfA1lJkz6Kbi+v6DTsjvQLtpW8yo+d1h69r7eSpM0TYT29/1hlTsrIsM43S7sADrZ6OVCdTXJTkNA3jeBUWyvKhUiLCz95AKwuR3lQ7HAUN2SMhxzg41Cdy3CP6w84lTAaOCIKukhoCLws58bp70+oFXt2FkYlKd9gOneHfHdSpcYcUQZroWUnxReJlA+5DfPfgONmscHgdfOYSroMkLmFY4TWQVn77SKHG0m2jteD6uaOQDVim7+UpWDnnf2fhU2oqlrveUJXtoGIyla0/r6hYr7UQeBB+olBTeMKGymN6ppPQPznuN0DDYoj8qBAwRrlW6M/Opa/qKIavg== x-ms-exchange-antispam-messagedata: s+ia3hXiei7ssrDhD7uL6damNB8wQyn/UBu50RPFuIZha8Tka66AOIDrb72zDnVrE1zFuhWJfzGrrWJXmuFsAxriED8ymlReAZzocVy/wDEjFYZTm9I8FMMyNKsY3qAPs/S1lkehMbc4/7ocgLatWTxNPE/daTM/YwwpW8UEbLXm8/k/IEiwyEoUeScevX6U+HWhVYK69Cfv4xEO4RCXDw== Content-Type: multipart/mixed; boundary="_002_VI1PR08MB37250861B14D6CEE2C71BFBF84C30VI1PR08MB3725eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB4045 Original-Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Dennis.Zhang@arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT026.eop-EUR03.prod.protection.outlook.com X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFTY:; SFS:(10009020)(4636009)(396003)(346002)(376002)(39860400002)(136003)(46966005)(235185007)(478600001)(26826003)(47076004)(4326008)(5660300002)(54906003)(6916009)(81166006)(316002)(81156014)(336012)(9686003)(36906005)(55016002)(6506007)(99936003)(2906002)(186003)(33656002)(7696005)(26005)(966005)(8676002)(86362001)(356004)(70206006)(70586007)(52536014)(8936002)(82740400003)(66616009); DIR:OUT; SFP:1101; X-MS-Office365-Filtering-Correlation-Id-Prvs: b6e3f1d2-5025-4e43-2afa-08d7daef9420 X-Forefront-PRVS: 036614DD9C X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: SgJ7q0SAbhEoaSdkE9GnR4Pnj3Jo1zbpPzHAFUumWI16KJxup7QWtjU35PKhGabXz2L/ZSPw4txH68LaSgk22bGZKwdfw6ebmauYK3Ffve0JbjzvqqDuMLvONfo5MmA89b9XQMIsTlLOLcYGqAe0s+s1GRYtrzrPaKm7lRENPmm6xYMnutStGGkQI/jazJWx6B2k/3wPm3pI7mrXIbfkf8DDRolcL1q0snnhMbsnFgq7Tg+3kiE69k454TdlLXFXqIj4kOgd/GWIlGqHJHcE6L/v0ltfzN17QomqlbCIyWcJQdKuj/vOd7aDy5CDImpe8s5kL75hD/6F64NjQFZYJo8y3wvuYczqXH/Us/WOqN6Q9jth5+5T/2xlRysvJq6FZMUOf+YkNQcQA6DOm8bsvxRFQ7Ia8tCmtqFq1DuWf3ed7L9SRhRY1g/JsTgF/3vV7KxWQsOjVfLkWUIC1l30E6LzushLQG0d/HEOSKxKteegPvHOdc4QeYSLq7u8SxzCvJd0avTBUXLKRzF+8p+GnN0/TNS88JgITZtjVOWs/JQwEuyxEkydvkM0NC/gXAdMmJMRNWS7C/rJOBzn50ZI4mAIimX+oN02Pyz00h2Ukm8= X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Apr 2020 12:31:28.0390 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2b9898da-2b82-49d7-8330-08d7daef9834 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR08MB3319 X-Spam-Status: No, score=-14.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Apr 2020 12:31:33 -0000 --_002_VI1PR08MB37250861B14D6CEE2C71BFBF84C30VI1PR08MB3725eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi all,=0A= =0A= This patch is updated to support DImode for vfp target as required by CDE.= =0A= Changelog is updated as following.=0A= =0A= Is this ready for commit please?=0A= =0A= Cheers=0A= Dennis=0A= =0A= gcc/ChangeLog:=0A= =0A= 2020-04-07 Dennis Zhang =0A= Matthew Malcomson =0A= =0A= * config/arm/arm-builtins.c (CX_IMM_QUALIFIERS): New macro.=0A= (CX_UNARY_QUALIFIERS, CX_BINARY_QUALIFIERS): Likewise.=0A= (CX_TERNARY_QUALIFIERS): Likewise.=0A= (ARM_BUILTIN_CDE_PATTERN_START): Likewise.=0A= (ARM_BUILTIN_CDE_PATTERN_END): Likewise.=0A= (arm_init_acle_builtins): Initialize CDE builtins.=0A= (arm_expand_acle_builtin): Check CDE constant operands.=0A= * config/arm/arm.h (ARM_CDE_CONST_COPROC): New macro to set the range=0A= of CDE constant operand.=0A= * config/arm/arm.c (arm_hard_regno_mode_ok): Support DImode for=0A= TARGET_VFP_BASE.=0A= (ARM_VCDE_CONST_1, ARM_VCDE_CONST_2, ARM_VCDE_CONST_3): Likewise.=0A= * config/arm/arm_cde.h (__arm_vcx1_u32): New macro of ACLE interface.=0A= (__arm_vcx1a_u32, __arm_vcx2_u32, __arm_vcx2a_u32): Likewise.=0A= (__arm_vcx3_u32, __arm_vcx3a_u32, __arm_vcx1d_u64): Likewise.=0A= (__arm_vcx1da_u64, __arm_vcx2d_u64, __arm_vcx2da_u64): Likewise.=0A= (__arm_vcx3d_u64, __arm_vcx3da_u64): Likewise.=0A= * config/arm/arm_cde_builtins.def: New file.=0A= * config/arm/iterators.md (V_reg): New attribute of SI.=0A= * config/arm/predicates.md (const_int_coproc_operand): New.=0A= (const_int_vcde1_operand, const_int_vcde2_operand): New.=0A= (const_int_vcde3_operand): New.=0A= * config/arm/unspecs.md (UNSPEC_VCDE, UNSPEC_VCDEA): New.=0A= * config/arm/vfp.md (arm_vcx1): New entry.=0A= (arm_vcx1a, arm_vcx2, arm_vcx2a): Likewise.=0A= (arm_vcx3, arm_vcx3a): Likewise.=0A= =0A= gcc/testsuite/ChangeLog:=0A= =0A= 2020-04-07 Dennis Zhang =0A= =0A= * gcc.target/arm/acle/cde_v_1.c: New test.=0A= * gcc.target/arm/acle/cde_v_1_err.c: New test.=0A= * gcc.target/arm/acle/cde_v_1_mve.c: New test.=0A= =0A= > Hi all,=0A= >=0A= > This patch is updated as attached.=0A= > It's rebased to the top. Is it ready for commit please?=0A= >=0A= > Cheers=0A= > Dennis=0A= >=0A= > > Hi all,=0A= > >=0A= > > This patch is part of a series that adds support for the ARMv8.m Custom= Datapath Extension (CDE).=0A= > > It enables the ACLE intrinsics calling VCX1, VCX2, and VCX3 in= structions who work with FPU/MVE 32-bit/64-bit registers.=0A= > >=0A= > > This patch depends on the CDE feature patch: https://gcc.gnu.org/piperm= ail/gcc-patches/2020-March/541921.html=0A= > > It also depends on the MVE framework patch: https://gcc.gnu.org/piperma= il/gcc-patches/2020-February/540415.html=0A= > > ISA has been announced at https://developer.arm.com/architectures/instr= uction-sets/custom-instructions=0A= > >=0A= > > Regtested and bootstrapped for arm-none-linux-gnueabi-armv8-m.main.=0A= > >=0A= > > Is it OK for commit please?=0A= > >=0A= > > Cheers=0A= > > Dennis=0A= > >= --_002_VI1PR08MB37250861B14D6CEE2C71BFBF84C30VI1PR08MB3725eurp_ Content-Type: application/octet-stream; name="arm-m-cde-vcxsidi-final-20200407-rb12663.patch" Content-Description: arm-m-cde-vcxsidi-final-20200407-rb12663.patch Content-Disposition: attachment; filename="arm-m-cde-vcxsidi-final-20200407-rb12663.patch"; size=29677; creation-date="Tue, 07 Apr 2020 12:21:38 GMT"; modification-date="Tue, 07 Apr 2020 12:21:38 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb25maWcvYXJtL2FybS1idWlsdGlucy5jIGIvZ2NjL2NvbmZpZy9h cm0vYXJtLWJ1aWx0aW5zLmMKaW5kZXggODMyYjkxMDc0MjRmZDlhNGEwZWUyNzJiNzczYjNkMDky OTE3MjM3MC4uYThiYWQ3YjFhZTVhMTAyNjE2NjU2Y2Y0Y2YzNWE2YzU3MGZiZTM0OSAxMDA2NDQK LS0tIGEvZ2NjL2NvbmZpZy9hcm0vYXJtLWJ1aWx0aW5zLmMKKysrIGIvZ2NjL2NvbmZpZy9hcm0v YXJtLWJ1aWx0aW5zLmMKQEAgLTMwNSw2ICszMDUsMzUgQEAgYXJtX21ycmNfcXVhbGlmaWVyc1tT SU1EX01BWF9CVUlMVElOX0FSR1NdCiAjZGVmaW5lIE1SUkNfUVVBTElGSUVSUyBcCiAgIChhcm1f bXJyY19xdWFsaWZpZXJzKQogCisvKiBUIChpbW1lZGlhdGUsIHVuc2lnbmVkIGltbWVkaWF0ZSku ICAqLworc3RhdGljIGVudW0gYXJtX3R5cGVfcXVhbGlmaWVycworYXJtX2N4X2ltbV9xdWFsaWZp ZXJzW1NJTURfTUFYX0JVSUxUSU5fQVJHU10KKyAgPSB7IHF1YWxpZmllcl9ub25lLCBxdWFsaWZp ZXJfaW1tZWRpYXRlLCBxdWFsaWZpZXJfdW5zaWduZWRfaW1tZWRpYXRlIH07CisjZGVmaW5lIENY X0lNTV9RVUFMSUZJRVJTIChhcm1fY3hfaW1tX3F1YWxpZmllcnMpCisKKy8qIFQgKGltbWVkaWF0 ZSwgVCwgdW5zaWduZWQgaW1tZWRpYXRlKS4gICovCitzdGF0aWMgZW51bSBhcm1fdHlwZV9xdWFs aWZpZXJzCithcm1fY3hfdW5hcnlfcXVhbGlmaWVyc1tTSU1EX01BWF9CVUlMVElOX0FSR1NdCisg ID0geyBxdWFsaWZpZXJfbm9uZSwgcXVhbGlmaWVyX2ltbWVkaWF0ZSwgcXVhbGlmaWVyX25vbmUs CisgICAgICBxdWFsaWZpZXJfdW5zaWduZWRfaW1tZWRpYXRlIH07CisjZGVmaW5lIENYX1VOQVJZ X1FVQUxJRklFUlMgKGFybV9jeF91bmFyeV9xdWFsaWZpZXJzKQorCisvKiBUIChpbW1lZGlhdGUs IFQsIFQsIHVuc2lnbmVkIGltbWVkaWF0ZSkuICAqLworc3RhdGljIGVudW0gYXJtX3R5cGVfcXVh bGlmaWVycworYXJtX2N4X2JpbmFyeV9xdWFsaWZpZXJzW1NJTURfTUFYX0JVSUxUSU5fQVJHU10K KyAgPSB7IHF1YWxpZmllcl9ub25lLCBxdWFsaWZpZXJfaW1tZWRpYXRlLAorICAgICAgcXVhbGlm aWVyX25vbmUsIHF1YWxpZmllcl9ub25lLAorICAgICAgcXVhbGlmaWVyX3Vuc2lnbmVkX2ltbWVk aWF0ZSB9OworI2RlZmluZSBDWF9CSU5BUllfUVVBTElGSUVSUyAoYXJtX2N4X2JpbmFyeV9xdWFs aWZpZXJzKQorCisvKiBUIChpbW1lZGlhdGUsIFQsIFQsIFQsIHVuc2lnbmVkIGltbWVkaWF0ZSku ICAqLworc3RhdGljIGVudW0gYXJtX3R5cGVfcXVhbGlmaWVycworYXJtX2N4X3Rlcm5hcnlfcXVh bGlmaWVyc1tTSU1EX01BWF9CVUlMVElOX0FSR1NdCisgID0geyBxdWFsaWZpZXJfbm9uZSwgcXVh bGlmaWVyX2ltbWVkaWF0ZSwKKyAgICAgIHF1YWxpZmllcl9ub25lLCBxdWFsaWZpZXJfbm9uZSwg cXVhbGlmaWVyX25vbmUsCisgICAgICBxdWFsaWZpZXJfdW5zaWduZWRfaW1tZWRpYXRlIH07Cisj ZGVmaW5lIENYX1RFUk5BUllfUVVBTElGSUVSUyAoYXJtX2N4X3Rlcm5hcnlfcXVhbGlmaWVycykK KwogLyogVGhlIGZpcnN0IGFyZ3VtZW50IChyZXR1cm4gdHlwZSkgb2YgYSBzdG9yZSBzaG91bGQg YmUgdm9pZCB0eXBlLAogICAgd2hpY2ggd2UgcmVwcmVzZW50IHdpdGggcXVhbGlmaWVyX3ZvaWQu ICBUaGVpciBmaXJzdCBvcGVyYW5kIHdpbGwgYmUKICAgIGEgREltb2RlIHBvaW50ZXIgdG8gdGhl IGxvY2F0aW9uIHRvIHN0b3JlIHRvLCBzbyB3ZSBtdXN0IHVzZQpAQCAtOTI4LDcgKzk1NywyMyBA QCBzdGF0aWMgYXJtX2J1aWx0aW5fZGF0dW0gYWNsZV9idWlsdGluX2RhdGFbXSA9CiB9OwogCiAj dW5kZWYgVkFSMQorLyogSU1NX01BWCBzZXRzIHRoZSBtYXhpbXVtIHZhbGlkIHZhbHVlIG9mIHRo ZSBDREUgaW1tZWRpYXRlIG9wZXJhbmQuCisgICBFQ0ZfRkxBRyBzZXRzIHRoZSBmbGFnIHVzZWQg Zm9yIHNldF9jYWxsX2V4cHJfZmxhZ3MuICAqLworI2RlZmluZSBWQVIxKFQsIE4sIEEsIElNTV9N QVgsIEVDRl9GTEFHKSBcCisgIHt7I04gI0EsIFVQIChBKSwgQ09ERV9GT1JfYXJtXyMjTiMjQSwg MCwgVCMjX1FVQUxJRklFUlN9LCBJTU1fTUFYLCBFQ0ZfRkxBR30sCisKK3R5cGVkZWYgc3RydWN0 IHsKKyAgYXJtX2J1aWx0aW5fZGF0dW0gYmFzZTsKKyAgdW5zaWduZWQgaW50IGltbV9tYXg7Cisg IGludCBlY2ZfZmxhZzsKK30gYXJtX2J1aWx0aW5fY2RlX2RhdHVtOworCitzdGF0aWMgYXJtX2J1 aWx0aW5fY2RlX2RhdHVtIGNkZV9idWlsdGluX2RhdGFbXSA9Cit7CisjaW5jbHVkZSAiYXJtX2Nk ZV9idWlsdGlucy5kZWYiCit9OwogCisjdW5kZWYgVkFSMQogI2RlZmluZSBWQVIxKFQsIE4sIFgp IFwKICAgQVJNX0JVSUxUSU5fTkVPTl8jI04jI1gsCiAKQEAgLTEyMjQsNiArMTI2OSwxNCBAQCBl bnVtIGFybV9idWlsdGlucwogCiAjaW5jbHVkZSAiYXJtX2FjbGVfYnVpbHRpbnMuZGVmIgogCisj dW5kZWYgVkFSMQorI2RlZmluZSBWQVIxKFQsIE4sIFgsIC4uLiApIFwKKyAgQVJNX0JVSUxUSU5f IyNOIyNYLAorCisgIEFSTV9CVUlMVElOX0NERV9CQVNFLAorCisjaW5jbHVkZSAiYXJtX2NkZV9i dWlsdGlucy5kZWYiCisKICAgQVJNX0JVSUxUSU5fTVZFX0JBU0UsCiAKICN1bmRlZiBWQVIxCkBA IC0xMjQ2LDYgKzEyOTksMTIgQEAgZW51bSBhcm1fYnVpbHRpbnMKICNkZWZpbmUgQVJNX0JVSUxU SU5fQUNMRV9QQVRURVJOX1NUQVJUIFwKICAgKEFSTV9CVUlMVElOX0FDTEVfQkFTRSArIDEpCiAK KyNkZWZpbmUgQVJNX0JVSUxUSU5fQ0RFX1BBVFRFUk5fU1RBUlQgXAorICAoQVJNX0JVSUxUSU5f Q0RFX0JBU0UgKyAxKQorCisjZGVmaW5lIEFSTV9CVUlMVElOX0NERV9QQVRURVJOX0VORCBcCisg IChBUk1fQlVJTFRJTl9DREVfQkFTRSArIEFSUkFZX1NJWkUgKGNkZV9idWlsdGluX2RhdGEpKQor CiAjdW5kZWYgQ0YKICN1bmRlZiBWQVIxCiAjdW5kZWYgVkFSMgpAQCAtMTc3NCw2ICsxODMzLDE1 IEBAIGFybV9pbml0X2FjbGVfYnVpbHRpbnMgKHZvaWQpCiAgICAgICBhcm1fYnVpbHRpbl9kYXR1 bSAqZCA9ICZhY2xlX2J1aWx0aW5fZGF0YVtpXTsKICAgICAgIGFybV9pbml0X2J1aWx0aW4gKGZj b2RlLCBkLCAiX19idWlsdGluX2FybSIpOwogICAgIH0KKworICBmY29kZSA9IEFSTV9CVUlMVElO X0NERV9QQVRURVJOX1NUQVJUOworICBmb3IgKGkgPSAwOyBpIDwgQVJSQVlfU0laRSAoY2RlX2J1 aWx0aW5fZGF0YSk7IGkrKywgZmNvZGUrKykKKyAgICB7CisgICAgICBhcm1fYnVpbHRpbl9jZGVf ZGF0dW0gKmNkZSA9ICZjZGVfYnVpbHRpbl9kYXRhW2ldOworICAgICAgYXJtX2J1aWx0aW5fZGF0 dW0gKmQgPSAmY2RlLT5iYXNlOworICAgICAgYXJtX2luaXRfYnVpbHRpbiAoZmNvZGUsIGQsICJf X2J1aWx0aW5fYXJtIik7CisgICAgICBzZXRfY2FsbF9leHByX2ZsYWdzIChhcm1fYnVpbHRpbl9k ZWNsc1tmY29kZV0sIGNkZS0+ZWNmX2ZsYWcpOworICAgIH0KIH0KIAogLyogU2V0IHVwIGFsbCB0 aGUgTVZFIGJ1aWx0aW5zIG1lbnRpb25lZCBpbiBhcm1fbXZlX2J1aWx0aW5zLmRlZiBmaWxlLiAg Ki8KQEAgLTI5NjYsOCArMzAzNCwyOSBAQCBjb25zdGFudF9hcmc6CiAJICAgICAgaWYgKCEoKmlu c25fZGF0YVtpY29kZV0ub3BlcmFuZFtvcG5vXS5wcmVkaWNhdGUpCiAJCSAgKG9wW2FyZ2NdLCBt b2RlW2FyZ2NdKSkKIAkJewotCQkgIGVycm9yICgiJUthcmd1bWVudCAlZCBtdXN0IGJlIGEgY29u c3RhbnQgaW1tZWRpYXRlIiwKLQkJCSBleHAsIGFyZ2MgKyAxKTsKKwkJICBpZiAoSU5fUkFOR0Ug KGZjb2RlLCBBUk1fQlVJTFRJTl9DREVfUEFUVEVSTl9TVEFSVCwKKwkJCQlBUk1fQlVJTFRJTl9D REVfUEFUVEVSTl9FTkQpKQorCQkgICAgeworCQkgICAgICBpZiAoYXJnYyA9PSAwKQorCQkJewor CQkJICB1bnNpZ25lZCBpbnQgY3BfYml0ID0gVUlOVFZBTCAob3BbYXJnY10pOworCQkJICBpZiAo SU5fUkFOR0UgKGNwX2JpdCwgMCwgQVJNX0NERV9DT05TVF9DT1BST0MpKQorCQkJICAgIGVycm9y ICgiJUtjb3Byb2Nlc3NvciAlZCBpcyBub3QgZW5hYmxlZCAiCisJCQkJICAgIndpdGggK2NkZWNw JWQiLCBleHAsIGNwX2JpdCwgY3BfYml0KTsKKwkJCSAgZWxzZQorCQkJICAgIGVycm9yICgiJUtj b3Byb2MgbXVzdCBiZSBhIGNvbnN0YW50IGltbWVkaWF0ZSBpbiAiCisJCQkJICAgInJhbmdlIFsw LSVkXSBlbmFibGVkIHdpdGggK2NkZWNwPE4+IiwgZXhwLAorCQkJCSAgIEFSTV9DREVfQ09OU1Rf Q09QUk9DKTsKKwkJCX0KKwkJICAgICAgZWxzZQorCQkJZXJyb3IgKCIlS2FyZ3VtZW50ICVkIG11 c3QgYmUgYSBjb25zdGFudCBpbW1lZGlhdGUgIgorCQkJICAgICAgICJpbiByYW5nZSBbMC0lZF0i LCBleHAsIGFyZ2MgKyAxLAorCQkJICAgICAgIGNkZV9idWlsdGluX2RhdGFbZmNvZGUgLQorCQkJ ICAgICAgIEFSTV9CVUlMVElOX0NERV9QQVRURVJOX1NUQVJUXS5pbW1fbWF4KTsKKwkJICAgIH0K KwkJICBlbHNlCisJCSAgICBlcnJvciAoIiVLYXJndW1lbnQgJWQgbXVzdCBiZSBhIGNvbnN0YW50 IGltbWVkaWF0ZSIsCisJCQkgICBleHAsIGFyZ2MgKyAxKTsKIAkJICAvKiBXZSBoYXZlIGZhaWxl ZCB0byBleHBhbmQgdGhlIHBhdHRlcm4sIGFuZCBhcmUgc2FmZWx5CiAJCSAgICAgaW4gdG8gaW52 YWxpZCBjb2RlLiAgQnV0IHRoZSBtaWQtZW5kIHdpbGwgc3RpbGwgdHJ5IHRvCiAJCSAgICAgYnVp bGQgYW4gYXNzaWdubWVudCBmb3IgdGhpcyBub2RlIHdoaWxlIGl0IGV4cGFuZHMsCkBAIC0zMTky LDggKzMyODEsMTIgQEAgYXJtX2V4cGFuZF9hY2xlX2J1aWx0aW4gKGludCBmY29kZSwgdHJlZSBl eHAsIHJ0eCB0YXJnZXQpCiAgICAgICAvKiBEb24ndCBnZW5lcmF0ZSBhbnkgUlRMLiAgKi8KICAg ICAgIHJldHVybiBjb25zdDBfcnR4OwogICAgIH0KKworICBnY2NfYXNzZXJ0IChmY29kZSAhPSBB Uk1fQlVJTFRJTl9DREVfQkFTRSk7CiAgIGFybV9idWlsdGluX2RhdHVtICpkCi0gICAgPSAmYWNs ZV9idWlsdGluX2RhdGFbZmNvZGUgLSBBUk1fQlVJTFRJTl9BQ0xFX1BBVFRFUk5fU1RBUlRdOwor ICAgID0gKGZjb2RlIDwgQVJNX0JVSUxUSU5fQ0RFX0JBU0UpCisgICAgICA/ICZhY2xlX2J1aWx0 aW5fZGF0YVtmY29kZSAtIEFSTV9CVUlMVElOX0FDTEVfUEFUVEVSTl9TVEFSVF0KKyAgICAgIDog JmNkZV9idWlsdGluX2RhdGFbZmNvZGUgLSBBUk1fQlVJTFRJTl9DREVfUEFUVEVSTl9TVEFSVF0u YmFzZTsKIAogICByZXR1cm4gYXJtX2V4cGFuZF9idWlsdGluXzEgKGZjb2RlLCBleHAsIHRhcmdl dCwgZCk7CiB9CmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9hcm0uaCBiL2djYy9jb25maWcv YXJtL2FybS5oCmluZGV4IDM0MzIzNWQwY2JjMGJlNGZhN2M3NzNkYTcxNTY3ZDRhZTI2NzQ5NGIu LmNhMzZhNzRjZDFmYTE2MWMzODg5NjE1ODhmYTBmOTYwMzBiNzg4OGUgMTAwNjQ0Ci0tLSBhL2dj Yy9jb25maWcvYXJtL2FybS5oCisrKyBiL2djYy9jb25maWcvYXJtL2FybS5oCkBAIC01NzUsNiAr NTc1LDEwIEBAIGV4dGVybiBpbnQgYXJtX2FyY2hfYmYxNjsKIGV4dGVybiBpbnQgYXJtX2FyY2hf Y2RlOwogZXh0ZXJuIGludCBhcm1fYXJjaF9jZGVfY29wcm9jOwogZXh0ZXJuIGNvbnN0IGludCBh cm1fYXJjaF9jZGVfY29wcm9jX2JpdHNbXTsKKyNkZWZpbmUgQVJNX0NERV9DT05TVF9DT1BST0MJ NworI2RlZmluZSBBUk1fVkNERV9DT05TVF8xCSgoMSA8PCAxMSkgLSAxKQorI2RlZmluZSBBUk1f VkNERV9DT05TVF8yCSgoMSA8PCA2ICkgLSAxKQorI2RlZmluZSBBUk1fVkNERV9DT05TVF8zCSgo MSA8PCAzICkgLSAxKQogCiAjaWZuZGVmIFRBUkdFVF9ERUZBVUxUCiAjZGVmaW5lIFRBUkdFVF9E RUZBVUxUICAoTUFTS19BUENTX0ZSQU1FKQpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vYXJt LmMgYi9nY2MvY29uZmlnL2FybS9hcm0uYwppbmRleCAxZDM5NzRiZjgzMmZmZDViMGNlZmQ4YTRm MGMwZGJjOTdlNTQ3NzJjLi44MTUyNmNlNzJkYmQxNGQ1Y2FjMjk4YTg4YWNjYTM0ZTRhOTA4N2E1 IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FybS9hcm0uYworKysgYi9nY2MvY29uZmlnL2FybS9h cm0uYwpAQCAtMjUwMjIsNyArMjUwMjIsNyBAQCBhcm1faGFyZF9yZWdub19tb2RlX29rICh1bnNp Z25lZCBpbnQgcmVnbm8sIG1hY2hpbmVfbW9kZSBtb2RlKQogCiAgIGlmIChUQVJHRVRfVkZQX0JB U0UgJiYgSVNfVkZQX1JFR05VTSAocmVnbm8pKQogICAgIHsKLSAgICAgIGlmIChtb2RlID09IERG bW9kZSkKKyAgICAgIGlmIChtb2RlID09IERGbW9kZSB8fCBtb2RlID09IERJbW9kZSkKIAlyZXR1 cm4gVkZQX1JFR05PX09LX0ZPUl9ET1VCTEUgKHJlZ25vKTsKIAogICAgICAgaWYgKG1vZGUgPT0g SEZtb2RlIHx8IG1vZGUgPT0gQkZtb2RlIHx8IG1vZGUgPT0gSEltb2RlCmRpZmYgLS1naXQgYS9n Y2MvY29uZmlnL2FybS9hcm1fY2RlLmggYi9nY2MvY29uZmlnL2FybS9hcm1fY2RlLmgKaW5kZXgg Zjk3NTc1NDYzMmY2ZTg3ZGEzMzFhMTlhNjMzMDBjNGRlM2MxZjAzMy4uNGM5ZjdlYmVlZDRlMmFi ZjUzMmY1MzA0MGY1ODkxZGE4YjFhYWRhYyAxMDA2NDQKLS0tIGEvZ2NjL2NvbmZpZy9hcm0vYXJt X2NkZS5oCisrKyBiL2djYy9jb25maWcvYXJtL2FybV9jZGUuaApAQCAtMzMsNiArMzMsNzcgQEAg ZXh0ZXJuICJDIiB7CiAKICNpbmNsdWRlIDxzdGRpbnQuaD4KIAorI2lmIGRlZmluZWQgKF9fQVJN X0ZFQVRVUkVfQ0RFKQorCisjaWYgZGVmaW5lZCAoX19BUk1fRlApIHx8IGRlZmluZWQgKF9fQVJN X0ZFQVRVUkVfTVZFKQorCisvKiBDREUgYnVpbHRpbnMgdXNpbmcgRlBVL01WRSByZWdpc3RlcnMu ICAqLworCisvKiB1aW50MzJfdAorICAgX19hcm1fdmN4MV91MzIoaW50IGNvcHJvYywgdWludDMy X3QgaW1tKTsgICovCisjZGVmaW5lIF9fYXJtX3ZjeDFfdTMyKGNvcHJvYywgaW1tKSBcCisJX19i dWlsdGluX2FybV92Y3gxc2koY29wcm9jLCBpbW0pCisKKy8qIHVpbnQzMl90CisgICBfX2FybV92 Y3gxYV91MzIoaW50IGNvcHJvYywgdWludDMyX3QgYWNjLCB1aW50MzJfdCBpbW0pOyAgKi8KKyNk ZWZpbmUgX19hcm1fdmN4MWFfdTMyKGNvcHJvYywgYWNjLCBpbW0pIFwKKwlfX2J1aWx0aW5fYXJt X3ZjeDFhc2koY29wcm9jLCBhY2MsIGltbSkKKworLyogdWludDMyX3QKKyAgIF9fYXJtX3ZjeDJf dTMyKGludCBjb3Byb2MsIHVpbnQzMl90IG4sIHVpbnQzMl90IGltbSk7ICAqLworI2RlZmluZSBf X2FybV92Y3gyX3UzMihjb3Byb2MsIG4sIGltbSkgXAorCV9fYnVpbHRpbl9hcm1fdmN4MnNpKGNv cHJvYywgbiwgaW1tKQorCisvKiB1aW50MzJfdAorICAgX19hcm1fdmN4MmFfdTMyKGludCBjb3By b2MsIHVpbnQzMl90IGFjYywgdWludDMyX3QgbiwgdWludDMyX3QgaW1tKTsgICovCisjZGVmaW5l IF9fYXJtX3ZjeDJhX3UzMihjb3Byb2MsIGFjYywgbiwgaW1tKSBcCisJX19idWlsdGluX2FybV92 Y3gyYXNpKGNvcHJvYywgYWNjLCBuLCBpbW0pCisKKy8qIHVpbnQzMl90CisgICBfX2FybV92Y3gz X3UzMihpbnQgY29wcm9jLCB1aW50MzJfdCBuLCB1aW50MzJfdCBtLCB1aW50MzJfdCBpbW0pOyAg Ki8KKyNkZWZpbmUgX19hcm1fdmN4M191MzIoY29wcm9jLCBuLCBtLCBpbW0pIFwKKwlfX2J1aWx0 aW5fYXJtX3ZjeDNzaShjb3Byb2MsIG4sIG0sIGltbSkKKworLyogdWludDMyX3QKKyAgIF9fYXJt X3ZjeDNhX3UzMihpbnQgY29wcm9jLCB1aW50MzJfdCBhY2MsIHVpbnQzMl90IG4sIHVpbnQzMl90 IG0sCisJCSAgIHVpbnQzMl90IGltbSk7ICAqLworI2RlZmluZSBfX2FybV92Y3gzYV91MzIoY29w cm9jLCBhY2MsIG4sIG0sIGltbSkgXAorCV9fYnVpbHRpbl9hcm1fdmN4M2FzaShjb3Byb2MsIGFj YywgbiwgbSwgaW1tKQorCisvKiB1aW50NjRfdAorICAgX19hcm1fdmN4MWRfdTY0KGludCBjb3By b2MsIHVpbnQzMl90IGltbSk7ICAqLworI2RlZmluZSBfX2FybV92Y3gxZF91NjQoY29wcm9jLCBp bW0pIFwKKwlfX2J1aWx0aW5fYXJtX3ZjeDFkaShjb3Byb2MsIGltbSkKKworLyogdWludDY0X3QK KyAgIF9fYXJtX3ZjeDFkYV91NjQoaW50IGNvcHJvYywgdWludDY0X3QgYWNjLCB1aW50MzJfdCBp bW0pOyAgKi8KKyNkZWZpbmUgX19hcm1fdmN4MWRhX3U2NChjb3Byb2MsIGFjYywgaW1tKSBcCisJ X19idWlsdGluX2FybV92Y3gxYWRpKGNvcHJvYywgYWNjLCBpbW0pCisKKy8qIHVpbnQ2NF90Cisg ICBfX2FybV92Y3gyZF91NjQoaW50IGNvcHJvYywgdWludDY0X3QgbSwgdWludDMyX3QgaW1tKTsg ICovCisjZGVmaW5lIF9fYXJtX3ZjeDJkX3U2NChjb3Byb2MsIG0sIGltbSkgXAorCV9fYnVpbHRp bl9hcm1fdmN4MmRpKGNvcHJvYywgbSwgaW1tKQorCisvKiB1aW50NjRfdAorICAgX19hcm1fdmN4 MmRhX3U2NChpbnQgY29wcm9jLCB1aW50NjRfdCBhY2MsIHVpbnQ2NF90IG0sIHVpbnQzMl90IGlt bSk7ICAqLworI2RlZmluZSBfX2FybV92Y3gyZGFfdTY0KGNvcHJvYywgYWNjLCBtLCBpbW0pIFwK KwlfX2J1aWx0aW5fYXJtX3ZjeDJhZGkoY29wcm9jLCBhY2MsIG0sIGltbSkKKworLyogdWludDY0 X3QKKyAgIF9fYXJtX3ZjeDNkX3U2NChpbnQgY29wcm9jLCB1aW50NjRfdCBuLCB1aW50NjRfdCBt LCB1aW50MzJfdCBpbW0pOyAgKi8KKyNkZWZpbmUgX19hcm1fdmN4M2RfdTY0KGNvcHJvYywgbiwg bSwgaW1tKSBcCisJX19idWlsdGluX2FybV92Y3gzZGkoY29wcm9jLCBuLCBtLCBpbW0pCisKKy8q IHVpbnQ2NF90CisgICBfX2FybV92Y3gzZGFfdTY0KGludCBjb3Byb2MsIHVpbnQ2NF90IGFjYywg dWludDY0X3QgbiwgdWludDY0X3QgbSwKKwkJICAgIHVpbnQzMl90IGltbSk7ICAqLworI2RlZmlu ZSBfX2FybV92Y3gzZGFfdTY0KGNvcHJvYywgYWNjLCBuLCBtLCBpbW0pIFwKKwlfX2J1aWx0aW5f YXJtX3ZjeDNhZGkoY29wcm9jLCBhY2MsIG4sIG0sIGltbSkKKworI2VuZGlmIC8qIF9fQVJNX0ZQ IHx8IF9fQVJNX0ZFQVRVUkVfTVZFLiAgKi8KKyNlbmRpZiAvKiBfX0FSTV9GRUFUVVJFX0NERS4g ICovCisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9nY2MvY29u ZmlnL2FybS9hcm1fY2RlX2J1aWx0aW5zLmRlZiBiL2djYy9jb25maWcvYXJtL2FybV9jZGVfYnVp bHRpbnMuZGVmCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5ZmVhOTM3Yjk2NTBmMjFhMjZkODE4MzU3MmI1NTBlMzli MGZlN2QKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvY29uZmlnL2FybS9hcm1fY2RlX2J1aWx0aW5z LmRlZgpAQCAtMCwwICsxLDMzIEBACisvKiBBcm0gQ3VzdG9tIERhdGFwYXRoIEV4dGVuc2lvbiAo Q0RFKSBidWlsdGluIGRlZmluaXRpb25zLgorICAgQ29weXJpZ2h0IChDKSAyMDIwIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgorICAgQ29udHJpYnV0ZWQgYnkgQXJtIEx0ZC4KKworICAg VGhpcyBmaWxlIGlzIHBhcnQgb2YgR0NDLgorCisgICBHQ0MgaXMgZnJlZSBzb2Z0d2FyZTsgeW91 IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeSBpdAorICAgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQKKyAgIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMsIG9yIChhdCB5b3Vy CisgICBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBHQ0MgaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0IFdJVEhPVVQKKyAgIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJ TElUWQorICAgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VSBHZW5lcmFsIFB1YmxpYworICAgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGlj ZW5zZQorICAgYWxvbmcgd2l0aCBHQ0M7IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBz ZWUKKyAgIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4gICovCisKKyN1bmRlZiBDREVf VkFSMgorI2RlZmluZSBDREVfVkFSMihULCBOLCBBLCBCLCBJTU1fTUFYLCBFQ0ZfRkxBRykgXAor ICBWQVIxIChULCBOLCBBLCBJTU1fTUFYLCBFQ0ZfRkxBRykgXAorICBWQVIxIChULCBOLCBCLCBJ TU1fTUFYLCBFQ0ZfRkxBRykKKworQ0RFX1ZBUjIgKENYX0lNTSwgdmN4MSwgc2ksIGRpLCBBUk1f VkNERV9DT05TVF8xLCBFQ0ZfQ09OU1QpCitDREVfVkFSMiAoQ1hfVU5BUlksIHZjeDFhLCBzaSwg ZGksIEFSTV9WQ0RFX0NPTlNUXzEsIEVDRl9DT05TVCkKK0NERV9WQVIyIChDWF9VTkFSWSwgdmN4 Miwgc2ksIGRpLCBBUk1fVkNERV9DT05TVF8yLCBFQ0ZfQ09OU1QpCitDREVfVkFSMiAoQ1hfQklO QVJZLCB2Y3gyYSwgc2ksIGRpLCBBUk1fVkNERV9DT05TVF8yLCBFQ0ZfQ09OU1QpCitDREVfVkFS MiAoQ1hfQklOQVJZLCB2Y3gzLCBzaSwgZGksIEFSTV9WQ0RFX0NPTlNUXzMsIEVDRl9DT05TVCkK K0NERV9WQVIyIChDWF9URVJOQVJZLCB2Y3gzYSwgc2ksIGRpLCBBUk1fVkNERV9DT05TVF8zLCBF Q0ZfQ09OU1QpCisKKyN1bmRlZiBDREVfVkFSMgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0v aXRlcmF0b3JzLm1kIGIvZ2NjL2NvbmZpZy9hcm0vaXRlcmF0b3JzLm1kCmluZGV4IGU2YjY2ZWVm MzcyODEyMmM4N2JkNmVhNjhiOGE2NDNkZDQ1NTJiMDAuLmM5NDE5ODc3MmYyN2RmZGE2Mjg4NmZl Y2QzNzM5Mzk2MDQ1NmMzYzAgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYXJtL2l0ZXJhdG9ycy5t ZAorKysgYi9nY2MvY29uZmlnL2FybS9pdGVyYXRvcnMubWQKQEAgLTYzMiw3ICs2MzIsNyBAQAog CQkJIChWMlNJICJQIikgKFY0U0kgICJxIikKIAkJCSAoVjJTRiAiUCIpIChWNFNGICAicSIpCiAJ CQkgKERJICAgIlAiKSAoVjJESSAgInEiKQotCQkJIChWMkhGICIiKSAoU0YgICAiIikKKwkJCSAo VjJIRiAiIikgKFNGICAgIiIpIChTSSAiIikKIAkJCSAoREYgICAgIlAiKSAoSEYgICAiIildKQog CiA7OyBPdXRwdXQgdGVtcGxhdGUgdG8gc2VsZWN0IHRoZSBoaWdoIFZGUCByZWdpc3RlciBvZiBh IG11bHQtcmVnaXN0ZXIgdmFsdWUuCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS9wcmVkaWNh dGVzLm1kIGIvZ2NjL2NvbmZpZy9hcm0vcHJlZGljYXRlcy5tZAppbmRleCBiYjMwMmVkNWI0MjIw ODMxMDgyMmI2ZGY3NzBhMGYwMDQ1NWNkZmJhLi41OWNmNWI2N2Y4YTBhOGFjNTZhNjY0NzExMDkw ZDY4MmE1YTkzYWQ1IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FybS9wcmVkaWNhdGVzLm1kCisr KyBiL2djYy9jb25maWcvYXJtL3ByZWRpY2F0ZXMubWQKQEAgLTIyNiw2ICsyMjYsMjMgQEAKICAg KGFuZCAobWF0Y2hfb3BlcmFuZCAwICJjb25zdF9pbnRfb3BlcmFuZCIpCiAgICAgICAgKG1hdGNo X3Rlc3QgInNhdGlzZmllc19jb25zdHJhaW50X00gKG9wKSIpKSkKIAorKGRlZmluZV9wcmVkaWNh dGUgImNvbnN0X2ludF9jb3Byb2Nfb3BlcmFuZCIKKyAgKGFuZCAobWF0Y2hfb3BlcmFuZCAwICJj b25zdF9pbnRfb3BlcmFuZCIpCisgICAgICAgKG1hdGNoX3Rlc3QgIklOX1JBTkdFIChVSU5UVkFM IChvcCksIDAsIEFSTV9DREVfQ09OU1RfQ09QUk9DKSIpCisgICAgICAgKG1hdGNoX3Rlc3QgImFy bV9hcmNoX2NkZV9jb3Byb2NfYml0c1tVSU5UVkFMIChvcCldICYgYXJtX2FyY2hfY2RlX2NvcHJv YyIpKSkKKworKGRlZmluZV9wcmVkaWNhdGUgImNvbnN0X2ludF92Y2RlMV9vcGVyYW5kIgorICAo YW5kIChtYXRjaF9vcGVyYW5kIDAgImNvbnN0X2ludF9vcGVyYW5kIikKKyAgICAgICAobWF0Y2hf dGVzdCAiSU5fUkFOR0UgKFVJTlRWQUwgKG9wKSwgMCwgQVJNX1ZDREVfQ09OU1RfMSkiKSkpCisK KyhkZWZpbmVfcHJlZGljYXRlICJjb25zdF9pbnRfdmNkZTJfb3BlcmFuZCIKKyAgKGFuZCAobWF0 Y2hfb3BlcmFuZCAwICJjb25zdF9pbnRfb3BlcmFuZCIpCisgICAgICAgKG1hdGNoX3Rlc3QgIklO X1JBTkdFIChVSU5UVkFMIChvcCksIDAsIEFSTV9WQ0RFX0NPTlNUXzIpIikpKQorCisoZGVmaW5l X3ByZWRpY2F0ZSAiY29uc3RfaW50X3ZjZGUzX29wZXJhbmQiCisgIChhbmQgKG1hdGNoX29wZXJh bmQgMCAiY29uc3RfaW50X29wZXJhbmQiKQorICAgICAgIChtYXRjaF90ZXN0ICJJTl9SQU5HRSAo VUlOVFZBTCAob3ApLCAwLCBBUk1fVkNERV9DT05TVF8zKSIpKSkKKwogOzsgVGhpcyBkb2Vzbid0 IGhhdmUgdG8gZG8gbXVjaCBiZWNhdXNlIHRoZSBjb25zdGFudCBpcyBhbHJlYWR5IGNoZWNrZWQK IDs7IGluIHRoZSBzaGlmdF9vcGVyYXRvciBwcmVkaWNhdGUuCiAoZGVmaW5lX3ByZWRpY2F0ZSAi c2hpZnRfYW1vdW50X29wZXJhbmQiCmRpZmYgLS1naXQgYS9nY2MvY29uZmlnL2FybS91bnNwZWNz Lm1kIGIvZ2NjL2NvbmZpZy9hcm0vdW5zcGVjcy5tZAppbmRleCBhNzU3NTg3MWRhN2JmMTIzZjll MmQ2OTM4MTUxNDdmYTYwZTFlOTE0Li4xNjQ1YzMyZGZiMmE0M2RkZTZlZTk0NzYzN2VkYmNhMmRm OGYyMzA5IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FybS91bnNwZWNzLm1kCisrKyBiL2djYy9j b25maWcvYXJtL3Vuc3BlY3MubWQKQEAgLTE1NCw2ICsxNTQsOCBAQAogICBVTlNQRUNfU01VQURY CQk7IFJlcHJlc2VudCB0aGUgU01VQURYIG9wZXJhdGlvbi4KICAgVU5TUEVDX1NTQVQxNgkJOyBS ZXByZXNlbnQgdGhlIFNTQVQxNiBvcGVyYXRpb24uCiAgIFVOU1BFQ19VU0FUMTYJCTsgUmVwcmVz ZW50IHRoZSBVU0FUMTYgb3BlcmF0aW9uLgorICBVTlNQRUNfVkNERQkJOyBDdXN0b20gRGF0YXBh dGggRXh0ZW5zaW9uIGluc3RydWN0aW9uLgorICBVTlNQRUNfVkNERUEJCTsgQ3VzdG9tIERhdGFw YXRoIEV4dGVuc2lvbiBpbnN0cnVjdGlvbi4KIF0pCiAKIApkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZp Zy9hcm0vdmZwLm1kIGIvZ2NjL2NvbmZpZy9hcm0vdmZwLm1kCmluZGV4IGRmYjEwMzE0MzFhZjNl Yzg3ZDljY2NkZWUzNWRiMDRlMGFkZmZlMDQuLmVmODNiNTA0ZmY2YjNlNmNlYzRjMmM4MWI3YmY5 Nzc4NWY0YTU0OTIgMTAwNjQ0Ci0tLSBhL2djYy9jb25maWcvYXJtL3ZmcC5tZAorKysgYi9nY2Mv Y29uZmlnL2FybS92ZnAubWQKQEAgLTIxNjUsMyArMjE2NSw3NCBAQAogICBET05FOwogfQogKQor Cis7OyBDREUgaW5zdHJ1Y3Rpb25zIHVzaW5nIEZQVS9NVkUgUy9EIHJlZ2lzdGVycworCisoZGVm aW5lX2luc24gImFybV92Y3gxPG1vZGU+IgorICBbKHNldCAobWF0Y2hfb3BlcmFuZDpTSURJIDAg InJlZ2lzdGVyX29wZXJhbmQiICI9dCIpCisJKHVuc3BlYzpTSURJIFsobWF0Y2hfb3BlcmFuZDpT SSAxICJjb25zdF9pbnRfY29wcm9jX29wZXJhbmQiICJpIikKKwkJICAgICAgKG1hdGNoX29wZXJh bmQ6U0kgMiAiY29uc3RfaW50X3ZjZGUxX29wZXJhbmQiICJpIildCisJIFVOU1BFQ19WQ0RFKSld CisgICJUQVJHRVRfQ0RFICYmIChUQVJHRVRfQVJNX0ZQIHx8IFRBUkdFVF9IQVZFX01WRSkiCisg ICJ2Y3gxXFx0cCVjMSwgJTxWX3JlZz4wLCAjJWMyIgorICBbKHNldF9hdHRyICJ0eXBlIiAiY29w cm9jIildCispCisKKyhkZWZpbmVfaW5zbiAiYXJtX3ZjeDFhPG1vZGU+IgorICBbKHNldCAobWF0 Y2hfb3BlcmFuZDpTSURJIDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dCIpCisJKHVuc3BlYzpTSURJ IFsobWF0Y2hfb3BlcmFuZDpTSSAxICJjb25zdF9pbnRfY29wcm9jX29wZXJhbmQiICJpIikKKwkJ ICAgICAgKG1hdGNoX29wZXJhbmQ6U0lESSAyICJyZWdpc3Rlcl9vcGVyYW5kIiAiMCIpCisJCSAg ICAgIChtYXRjaF9vcGVyYW5kOlNJIDMgImNvbnN0X2ludF92Y2RlMV9vcGVyYW5kIiAiaSIpXQor CSBVTlNQRUNfVkNERUEpKV0KKyAgIlRBUkdFVF9DREUgJiYgKFRBUkdFVF9BUk1fRlAgfHwgVEFS R0VUX0hBVkVfTVZFKSIKKyAgInZjeDFhXFx0cCVjMSwgJTxWX3JlZz4wLCAjJWMzIgorICBbKHNl dF9hdHRyICJ0eXBlIiAiY29wcm9jIildCispCisKKyhkZWZpbmVfaW5zbiAiYXJtX3ZjeDI8bW9k ZT4iCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj10 IikKKwkodW5zcGVjOlNJREkgWyhtYXRjaF9vcGVyYW5kOlNJIDEgImNvbnN0X2ludF9jb3Byb2Nf b3BlcmFuZCIgImkiKQorCQkgICAgICAobWF0Y2hfb3BlcmFuZDpTSURJIDIgInJlZ2lzdGVyX29w ZXJhbmQiICJ0IikKKwkJICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMyAiY29uc3RfaW50X3ZjZGUy X29wZXJhbmQiICJpIildCisJIFVOU1BFQ19WQ0RFKSldCisgICJUQVJHRVRfQ0RFICYmIChUQVJH RVRfQVJNX0ZQIHx8IFRBUkdFVF9IQVZFX01WRSkiCisgICJ2Y3gyXFx0cCVjMSwgJTxWX3JlZz4w LCAlPFZfcmVnPjIsICMlYzMiCisgIFsoc2V0X2F0dHIgInR5cGUiICJjb3Byb2MiKV0KKykKKwor KGRlZmluZV9pbnNuICJhcm1fdmN4MmE8bW9kZT4iCisgIFsoc2V0IChtYXRjaF9vcGVyYW5kOlNJ REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj10IikKKwkodW5zcGVjOlNJREkgWyhtYXRjaF9vcGVy YW5kOlNJIDEgImNvbnN0X2ludF9jb3Byb2Nfb3BlcmFuZCIgImkiKQorCQkgICAgICAobWF0Y2hf b3BlcmFuZDpTSURJIDIgInJlZ2lzdGVyX29wZXJhbmQiICIwIikKKwkJICAgICAgKG1hdGNoX29w ZXJhbmQ6U0lESSAzICJyZWdpc3Rlcl9vcGVyYW5kIiAidCIpCisJCSAgICAgIChtYXRjaF9vcGVy YW5kOlNJIDQgImNvbnN0X2ludF92Y2RlMl9vcGVyYW5kIiAiaSIpXQorCSBVTlNQRUNfVkNERUEp KV0KKyAgIlRBUkdFVF9DREUgJiYgKFRBUkdFVF9BUk1fRlAgfHwgVEFSR0VUX0hBVkVfTVZFKSIK KyAgInZjeDJhXFx0cCVjMSwgJTxWX3JlZz4wLCAlPFZfcmVnPjMsICMlYzQiCisgIFsoc2V0X2F0 dHIgInR5cGUiICJjb3Byb2MiKV0KKykKKworKGRlZmluZV9pbnNuICJhcm1fdmN4Mzxtb2RlPiIK KyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0lESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXQiKQor CSh1bnNwZWM6U0lESSBbKG1hdGNoX29wZXJhbmQ6U0kgMSAiY29uc3RfaW50X2NvcHJvY19vcGVy YW5kIiAiaSIpCisJCSAgICAgIChtYXRjaF9vcGVyYW5kOlNJREkgMiAicmVnaXN0ZXJfb3BlcmFu ZCIgInQiKQorCQkgICAgICAobWF0Y2hfb3BlcmFuZDpTSURJIDMgInJlZ2lzdGVyX29wZXJhbmQi ICJ0IikKKwkJICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgNCAiY29uc3RfaW50X3ZjZGUzX29wZXJh bmQiICJpIildCisJIFVOU1BFQ19WQ0RFKSldCisgICJUQVJHRVRfQ0RFICYmIChUQVJHRVRfQVJN X0ZQIHx8IFRBUkdFVF9IQVZFX01WRSkiCisgICJ2Y3gzXFx0cCVjMSwgJTxWX3JlZz4wLCAlPFZf cmVnPjIsICU8Vl9yZWc+MywgIyVjNCIKKyAgWyhzZXRfYXR0ciAidHlwZSIgImNvcHJvYyIpXQor KQorCisoZGVmaW5lX2luc24gImFybV92Y3gzYTxtb2RlPiIKKyAgWyhzZXQgKG1hdGNoX29wZXJh bmQ6U0lESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXQiKQorCSh1bnNwZWM6U0lESSBbKG1hdGNo X29wZXJhbmQ6U0kgMSAiY29uc3RfaW50X2NvcHJvY19vcGVyYW5kIiAiaSIpCisJCSAgICAgICht YXRjaF9vcGVyYW5kOlNJREkgMiAicmVnaXN0ZXJfb3BlcmFuZCIgIjAiKQorCQkgICAgICAobWF0 Y2hfb3BlcmFuZDpTSURJIDMgInJlZ2lzdGVyX29wZXJhbmQiICJ0IikKKwkJICAgICAgKG1hdGNo X29wZXJhbmQ6U0lESSA0ICJyZWdpc3Rlcl9vcGVyYW5kIiAidCIpCisJCSAgICAgIChtYXRjaF9v cGVyYW5kOlNJIDUgImNvbnN0X2ludF92Y2RlM19vcGVyYW5kIiAiaSIpXQorCSBVTlNQRUNfVkNE RUEpKV0KKyAgIlRBUkdFVF9DREUgJiYgKFRBUkdFVF9BUk1fRlAgfHwgVEFSR0VUX0hBVkVfTVZF KSIKKyAgInZjeDNhXFx0cCVjMSwgJTxWX3JlZz4wLCAlPFZfcmVnPjMsICU8Vl9yZWc+NCwgIyVj NSIKKyAgWyhzZXRfYXR0ciAidHlwZSIgImNvcHJvYyIpXQorKQpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9hY2xlL2NkZV92XzEuYyBiL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hcm0vYWNsZS9jZGVfdl8xLmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzEwNGRiNGFlNjA4MzY1NjY3 ZjRiNjE3YzVhNGQ1OGM5MGY1ZjVhYQotLS0gL2Rldi9udWxsCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hcm0vYWNsZS9jZGVfdl8xLmMKQEAgLTAsMCArMSw5NCBAQAorLyogVGVzdCB0 aGUgQ0RFIEFDTEUgaW50cmluc2ljLiAgKi8KKy8qIHsgZGctZG8gY29tcGlsZSB9ICovCisvKiB7 IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fdjhtX21haW5fY2RlX2ZwX29rIH0gKi8K Ky8qIHsgZGctb3B0aW9ucyAiLXNhdmUtdGVtcHMgLU8yIiB9ICovCisvKiB7IGRnLWFkZC1vcHRp b25zIGFybV92OG1fbWFpbl9jZGVfZnAgfSAqLworCisjaW5jbHVkZSAiYXJtX2NkZS5oIgorCisj ZGVmaW5lIFRFU1QwKFQsIE4sIEMsIEkpIFwKK1QgdGVzdF9hcm1fIyNOIyNfIyNDIyNfIyNJICgp IHsgXAorICByZXR1cm4gX19hcm1fIyNOIChDLCBJKTsgXAorfQorCisjZGVmaW5lIFRFU1QxKFQs IE4sIEMsIEkpIFwKK1QgdGVzdF9hcm1fIyNOIyNfIyNDIyNfIyNJIChUIGEpIHsgXAorICByZXR1 cm4gX19hcm1fIyNOIChDLCBhLCBJKTsgXAorfQorCisjZGVmaW5lIFRFU1QyKFQsIE4sIEMsIEkp IFwKK1QgdGVzdF9hcm1fIyNOIyNfIyNDIyNfIyNJIChUIGEpIHsgXAorICByZXR1cm4gX19hcm1f IyNOIChDLCBhLCBhLCBJKTsgXAorfQorCisjZGVmaW5lIFRFU1QzKFQsIE4sIEMsIEkpIFwKK1Qg dGVzdF9hcm1fIyNOIyNfIyNDIyNfIyNJIChUIGEpIHsgXAorICByZXR1cm4gX19hcm1fIyNOIChD LCBhLCBhLCBhLCBJKTsgXAorfQorCisjZGVmaW5lIFRFU1RfQUxMKEMpIFwKK1RFU1QwICh1aW50 MzJfdCwgdmN4MV91MzIsCUMsIDApIFwKK1RFU1QxICh1aW50MzJfdCwgdmN4MWFfdTMyLAlDLCAw KSBcCitURVNUMSAodWludDMyX3QsIHZjeDJfdTMyLAlDLCAwKSBcCitURVNUMiAodWludDMyX3Qs IHZjeDJhX3UzMiwJQywgMCkgXAorVEVTVDIgKHVpbnQzMl90LCB2Y3gzX3UzMiwJQywgMCkgXAor VEVTVDMgKHVpbnQzMl90LCB2Y3gzYV91MzIsCUMsIDApIFwKK1RFU1QwICh1aW50NjRfdCwgdmN4 MWRfdTY0LAlDLCAwKSBcCitURVNUMSAodWludDY0X3QsIHZjeDFkYV91NjQsCUMsIDApIFwKK1RF U1QxICh1aW50NjRfdCwgdmN4MmRfdTY0LAlDLCAwKSBcCitURVNUMiAodWludDY0X3QsIHZjeDJk YV91NjQsCUMsIDApIFwKK1RFU1QyICh1aW50NjRfdCwgdmN4M2RfdTY0LAlDLCAwKSBcCitURVNU MyAodWludDY0X3QsIHZjeDNkYV91NjQsCUMsIDApIFwKK1RFU1QwICh1aW50MzJfdCwgdmN4MV91 MzIsCUMsIDIwNDcpIFwKK1RFU1QxICh1aW50MzJfdCwgdmN4MWFfdTMyLAlDLCAyMDQ3KSBcCitU RVNUMSAodWludDMyX3QsIHZjeDJfdTMyLAlDLCA2MykgXAorVEVTVDIgKHVpbnQzMl90LCB2Y3gy YV91MzIsCUMsIDYzKSBcCitURVNUMiAodWludDMyX3QsIHZjeDNfdTMyLAlDLCA3KSBcCitURVNU MyAodWludDMyX3QsIHZjeDNhX3UzMiwJQywgNykgXAorVEVTVDAgKHVpbnQ2NF90LCB2Y3gxZF91 NjQsCUMsIDIwNDcpIFwKK1RFU1QxICh1aW50NjRfdCwgdmN4MWRhX3U2NCwJQywgMjA0NykgXAor VEVTVDEgKHVpbnQ2NF90LCB2Y3gyZF91NjQsCUMsIDYzKSBcCitURVNUMiAodWludDY0X3QsIHZj eDJkYV91NjQsCUMsIDYzKSBcCitURVNUMiAodWludDY0X3QsIHZjeDNkX3U2NCwJQywgNykgXAor VEVTVDMgKHVpbnQ2NF90LCB2Y3gzZGFfdTY0LAlDLCA3KQorCisjcHJhZ21hIEdDQyBwdXNoX29w dGlvbnMKKyNwcmFnbWEgR0NDIHRhcmdldCAoImFyY2g9YXJtdjgtbS5tYWluK2NkZWNwMCtmcCIp CitURVNUX0FMTCAoMCkKKyNwcmFnbWEgR0NDIHBvcF9vcHRpb25zCisKKyNwcmFnbWEgR0NDIHB1 c2hfb3B0aW9ucworI3ByYWdtYSBHQ0MgdGFyZ2V0ICgiYXJjaD1hcm12OC1tLm1haW4rY2RlY3Ax K2ZwIikKK1RFU1RfQUxMICgxKQorI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKKworI3ByYWdtYSBH Q0MgcHVzaF9vcHRpb25zCisjcHJhZ21hIEdDQyB0YXJnZXQgKCJhcmNoPWFybXY4LW0ubWFpbitj ZGVjcDIrY2RlY3AzK2NkZWNwNCtjZGVjcDUrY2RlY3A2K2NkZWNwNytmcCIpCitURVNUX0FMTCAo MikKK1RFU1RfQUxMICgzKQorVEVTVF9BTEwgKDQpCitURVNUX0FMTCAoNSkKK1RFU1RfQUxMICg2 KQorVEVTVF9BTEwgKDcpCisjcHJhZ21hIEdDQyBwb3Bfb3B0aW9ucworCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0dmN4MVx0cDAsIHNbMC05XSssICMwfSAxIH0gfSAq LworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHZjeDFcdHAxLCBzWzAt OV0rLCAjMH0gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 XHR2Y3gxXHRwMiwgc1swLTldKywgIzB9IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1h c3NlbWJsZXItdGltZXMge1x0dmN4MVx0cDMsIHNbMC05XSssICMwfSAxIH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHZjeDFcdHA0LCBzWzAtOV0rLCAjMH0g MSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHR2Y3gxXHRw NSwgc1swLTldKywgIzB9IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge1x0dmN4MVx0cDYsIHNbMC05XSssICMwfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHZjeDFcdHA3LCBzWzAtOV0rLCAjMH0gMSB9IH0gKi8K Ky8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHR2Y3gxXHRwWzAtN10sIHNb MC05XSssICMyMDQ3fSA4IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtcdHZjeDFhXHRwWzAtN10sIHNbMC05XSssICNbMCwyMDQ3XX0gMTYgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0dmN4Mlx0cFswLTddLCBzWzAtOV0r LCBzWzAtOV0rLCAjWzAsNjNdfSAxNiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7XHR2Y3gyYVx0cFswLTddLCBzWzAtOV0rLCBzWzAtOV0rLCAjWzAsNjNdfSAx NiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHR2Y3gzXHRw WzAtN10sIHNbMC05XSssIHNbMC05XSssIHNbMC05XSssICNbMCw3XX0gMTYgfSB9ICovCisvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0dmN4M2FcdHBbMC03XSwgc1swLTld Kywgc1swLTldKywgc1swLTldKywgI1swLDddfSAxNiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7XHR2Y3gxXHRwWzAtN10sIGRbMC05XSssICNbMCwyMDQ3XX0g MTYgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0dmN4MWFc dHBbMC03XSwgZFswLTldKywgI1swLDIwNDddfSAxNiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7XHR2Y3gyXHRwWzAtN10sIGRbMC05XSssIGRbMC05XSssICNb MCw2M119IDE2IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtc dHZjeDJhXHRwWzAtN10sIGRbMC05XSssIGRbMC05XSssICNbMCw2M119IDE2IH0gfSAqLworLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHZjeDNcdHBbMC03XSwgZFswLTld KywgZFswLTldKywgZFswLTldKywgI1swLDddfSAxNiB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyB7XHR2Y3gzYVx0cFswLTddLCBkWzAtOV0rLCBkWzAtOV0rLCBk WzAtOV0rLCAjWzAsN119IDE2IH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FybS9hY2xlL2NkZV92XzFfZXJyLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv YXJtL2FjbGUvY2RlX3ZfMV9lcnIuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjNmYWI0ZWY5YmY0NmRiZjYzMGQ0 Njk4YzJhMDU3MGJkMmU0ZDE0Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FybS9hY2xlL2NkZV92XzFfZXJyLmMKQEAgLTAsMCArMSwxMjcgQEAKKy8qIFRlc3Qg dGhlIENERSBBQ0xFIGludHJpbnNpYy4gICovCisvKiB7IGRnLWRvIGNvbXBpbGUgfSAqLworLyog eyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgYXJtX3Y4bV9tYWluX2NkZV9mcF9vayB9ICov CisvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OG1fbWFpbl9jZGVfZnAgfSAqLworCisjaW5jbHVk ZSAiYXJtX2NkZS5oIgorCit1aW50NjRfdCB0ZXN0X2NvcHJvY19yYW5nZSAodWludDMyX3QgYSwg dWludDY0X3QgYikKK3sKKyAgdWludDY0X3QgcmVzID0gMDsKKyAgcmVzICs9IF9fYXJtX3ZjeDFf dTMyICg4LCAwKTsgLyogeyBkZy1lcnJvciB7Y29wcm9jIG11c3QgYmUgYSBjb25zdGFudCBpbW1l ZGlhdGUgaW4gcmFuZ2UgXFswLTdcXX0gfSAqLworICByZXMgKz0gX19hcm1fdmN4MWFfdTMyICg4 LCBhLCAwKTsgLyogeyBkZy1lcnJvciB7Y29wcm9jIG11c3QgYmUgYSBjb25zdGFudCBpbW1lZGlh dGUgaW4gcmFuZ2UgXFswLTdcXX0gfSAqLworICByZXMgKz0gX19hcm1fdmN4Ml91MzIgKDgsIGEs IDApOyAvKiB7IGRnLWVycm9yIHtjb3Byb2MgbXVzdCBiZSBhIGNvbnN0YW50IGltbWVkaWF0ZSBp biByYW5nZSBcWzAtN1xdfSB9ICovCisgIHJlcyArPSBfX2FybV92Y3gyYV91MzIgKDgsIGEsIGEs IDApOyAvKiB7IGRnLWVycm9yIHtjb3Byb2MgbXVzdCBiZSBhIGNvbnN0YW50IGltbWVkaWF0ZSBp biByYW5nZSBcWzAtN1xdfSB9ICovCisgIHJlcyArPSBfX2FybV92Y3gzX3UzMiAoOCwgYSwgYSwg MCk7IC8qIHsgZGctZXJyb3Ige2NvcHJvYyBtdXN0IGJlIGEgY29uc3RhbnQgaW1tZWRpYXRlIGlu IHJhbmdlIFxbMC03XF19IH0gKi8KKyAgcmVzICs9IF9fYXJtX3ZjeDNhX3UzMiAoOCwgYSwgYSwg YSwgMCk7IC8qIHsgZGctZXJyb3Ige2NvcHJvYyBtdXN0IGJlIGEgY29uc3RhbnQgaW1tZWRpYXRl IGluIHJhbmdlIFxbMC03XF19IH0gKi8KKyAgcmVzICs9IF9fYXJtX3ZjeDFkX3U2NCAoOCwgMCk7 IC8qIHsgZGctZXJyb3Ige2NvcHJvYyBtdXN0IGJlIGEgY29uc3RhbnQgaW1tZWRpYXRlIGluIHJh bmdlIFxbMC03XF19IH0gKi8KKyAgcmVzICs9IF9fYXJtX3ZjeDFkYV91NjQgKDgsIGEsIDApOyAv KiB7IGRnLWVycm9yIHtjb3Byb2MgbXVzdCBiZSBhIGNvbnN0YW50IGltbWVkaWF0ZSBpbiByYW5n ZSBcWzAtN1xdfSB9ICovCisgIHJlcyArPSBfX2FybV92Y3gyZF91NjQgKDgsIGEsIDApOyAvKiB7 IGRnLWVycm9yIHtjb3Byb2MgbXVzdCBiZSBhIGNvbnN0YW50IGltbWVkaWF0ZSBpbiByYW5nZSBc WzAtN1xdfSB9ICovCisgIHJlcyArPSBfX2FybV92Y3gyZGFfdTY0ICg4LCBhLCBhLCAwKTsgLyog eyBkZy1lcnJvciB7Y29wcm9jIG11c3QgYmUgYSBjb25zdGFudCBpbW1lZGlhdGUgaW4gcmFuZ2Ug XFswLTdcXX0gfSAqLworICByZXMgKz0gX19hcm1fdmN4M2RfdTY0ICg4LCBhLCBhLCAwKTsgLyog eyBkZy1lcnJvciB7Y29wcm9jIG11c3QgYmUgYSBjb25zdGFudCBpbW1lZGlhdGUgaW4gcmFuZ2Ug XFswLTdcXX0gfSAqLworICByZXMgKz0gX19hcm1fdmN4M2RhX3U2NCAoOCwgYSwgYSwgYSwgMCk7 IC8qIHsgZGctZXJyb3Ige2NvcHJvYyBtdXN0IGJlIGEgY29uc3RhbnQgaW1tZWRpYXRlIGluIHJh bmdlIFxbMC03XF19IH0gKi8KKyAgcmV0dXJuIHJlczsKK30KKwordWludDY0X3QgdGVzdF9pbW1f cmFuZ2UgKHVpbnQzMl90IGEsIHVpbnQ2NF90IGIpCit7CisgIHVpbnQ2NF90IHJlcyA9IDA7Cisg IHJlcyArPSBfX2FybV92Y3gxX3UzMiAoMCwgMjA0OCk7IC8qIHsgZGctZXJyb3Ige2FyZ3VtZW50 IFsyLTVdIG11c3QgYmUgYSBjb25zdGFudCBpbW1lZGlhdGUgaW4gcmFuZ2UgXFswLTIwNDdcXX0g fSAqLworICByZXMgKz0gX19hcm1fdmN4MWFfdTMyICgwLCBhLCAyMDQ4KTsgLyogeyBkZy1lcnJv ciB7YXJndW1lbnQgWzItNV0gbXVzdCBiZSBhIGNvbnN0YW50IGltbWVkaWF0ZSBpbiByYW5nZSBc WzAtMjA0N1xdfSB9ICovCisgIHJlcyArPSBfX2FybV92Y3gyX3UzMiAoMCwgYSwgNjQpOyAvKiB7 IGRnLWVycm9yIHthcmd1bWVudCBbMi01XSBtdXN0IGJlIGEgY29uc3RhbnQgaW1tZWRpYXRlIGlu IHJhbmdlIFxbMC02M1xdfSB9ICovCisgIHJlcyArPSBfX2FybV92Y3gyYV91MzIgKDAsIGEsIGEs IDY0KTsgLyogeyBkZy1lcnJvciB7YXJndW1lbnQgWzItNV0gbXVzdCBiZSBhIGNvbnN0YW50IGlt bWVkaWF0ZSBpbiByYW5nZSBcWzAtNjNcXX0gfSAqLworICByZXMgKz0gX19hcm1fdmN4M191MzIg KDAsIGEsIGEsIDgpOyAvKiB7IGRnLWVycm9yIHthcmd1bWVudCBbMi01XSBtdXN0IGJlIGEgY29u c3RhbnQgaW1tZWRpYXRlIGluIHJhbmdlIFxbMC03XF19IH0gKi8KKyAgcmVzICs9IF9fYXJtX3Zj eDNhX3UzMiAoMCwgYSwgYSwgYSwgOCk7IC8qIHsgZGctZXJyb3Ige2FyZ3VtZW50IFsyLTVdIG11 c3QgYmUgYSBjb25zdGFudCBpbW1lZGlhdGUgaW4gcmFuZ2UgXFswLTdcXX0gfSAqLworICByZXMg Kz0gX19hcm1fdmN4MWRfdTY0ICgwLCAyMDQ4KTsgLyogeyBkZy1lcnJvciB7YXJndW1lbnQgWzIt NV0gbXVzdCBiZSBhIGNvbnN0YW50IGltbWVkaWF0ZSBpbiByYW5nZSBcWzAtMjA0N1xdfSB9ICov CisgIHJlcyArPSBfX2FybV92Y3gxZGFfdTY0ICgwLCBhLCAyMDQ4KTsgLyogeyBkZy1lcnJvciB7 YXJndW1lbnQgWzItNV0gbXVzdCBiZSBhIGNvbnN0YW50IGltbWVkaWF0ZSBpbiByYW5nZSBcWzAt MjA0N1xdfSB9ICovCisgIHJlcyArPSBfX2FybV92Y3gyZF91NjQgKDAsIGEsIDY0KTsgLyogeyBk Zy1lcnJvciB7YXJndW1lbnQgWzItNV0gbXVzdCBiZSBhIGNvbnN0YW50IGltbWVkaWF0ZSBpbiBy YW5nZSBcWzAtNjNcXX0gfSAqLworICByZXMgKz0gX19hcm1fdmN4MmRhX3U2NCAoMCwgYSwgYSwg NjQpOyAvKiB7IGRnLWVycm9yIHthcmd1bWVudCBbMi01XSBtdXN0IGJlIGEgY29uc3RhbnQgaW1t ZWRpYXRlIGluIHJhbmdlIFxbMC02M1xdfSB9ICovCisgIHJlcyArPSBfX2FybV92Y3gzZF91NjQg KDAsIGEsIGEsIDgpOyAvKiB7IGRnLWVycm9yIHthcmd1bWVudCBbMi01XSBtdXN0IGJlIGEgY29u c3RhbnQgaW1tZWRpYXRlIGluIHJhbmdlIFxbMC03XF19IH0gKi8KKyAgcmVzICs9IF9fYXJtX3Zj eDNkYV91NjQgKDAsIGEsIGEsIGEsIDgpOyAvKiB7IGRnLWVycm9yIHthcmd1bWVudCBbMi01XSBt dXN0IGJlIGEgY29uc3RhbnQgaW1tZWRpYXRlIGluIHJhbmdlIFxbMC03XF19IH0gKi8KKyAgcmV0 dXJuIHJlczsKK30KKworI3ByYWdtYSBHQ0MgcHVzaF9vcHRpb25zCisjcHJhZ21hIEdDQyB0YXJn ZXQgKCJhcmNoPWFybXY4LW0ubWFpbitjZGVjcDErZnAiKQordWludDY0X3QgdGVzdF9jb3Byb2Nf bWF0Y2hfMSAodWludDMyX3QgYSwgdWludDY0X3QgYikKK3sKKyAgdWludDY0X3QgcmVzID0gMDsK KyAgcmVzICs9IF9fYXJtX3ZjeDFfdTMyICgwLCAwKTsgLyogeyBkZy1lcnJvciB7Y29wcm9jZXNz b3IgMCBpcyBub3QgZW5hYmxlZCB3aXRoIFwrY2RlY3AwfSB9ICovCisgIHJlcyArPSBfX2FybV92 Y3gxYV91MzIgKDAsIGEsIDApOyAvKiB7IGRnLWVycm9yIHtjb3Byb2Nlc3NvciAwIGlzIG5vdCBl bmFibGVkIHdpdGggXCtjZGVjcDB9IH0gKi8KKyAgcmVzICs9IF9fYXJtX3ZjeDJfdTMyICgwLCBh LCAwKTsgLyogeyBkZy1lcnJvciB7Y29wcm9jZXNzb3IgMCBpcyBub3QgZW5hYmxlZCB3aXRoIFwr Y2RlY3AwfSB9ICovCisgIHJlcyArPSBfX2FybV92Y3gyYV91MzIgKDAsIGEsIGEsIDApOyAvKiB7 IGRnLWVycm9yIHtjb3Byb2Nlc3NvciAwIGlzIG5vdCBlbmFibGVkIHdpdGggXCtjZGVjcDB9IH0g Ki8KKyAgcmVzICs9IF9fYXJtX3ZjeDNfdTMyICgwLCBhLCBhLCAwKTsgLyogeyBkZy1lcnJvciB7 Y29wcm9jZXNzb3IgMCBpcyBub3QgZW5hYmxlZCB3aXRoIFwrY2RlY3AwfSB9ICovCisgIHJlcyAr PSBfX2FybV92Y3gzYV91MzIgKDAsIGEsIGEsIGEsIDApOyAvKiB7IGRnLWVycm9yIHtjb3Byb2Nl c3NvciAwIGlzIG5vdCBlbmFibGVkIHdpdGggXCtjZGVjcDB9IH0gKi8KKyAgcmVzICs9IF9fYXJt X3ZjeDFkX3U2NCAoMCwgMCk7IC8qIHsgZGctZXJyb3Ige2NvcHJvY2Vzc29yIDAgaXMgbm90IGVu YWJsZWQgd2l0aCBcK2NkZWNwMH0gfSAqLworICByZXMgKz0gX19hcm1fdmN4MWRhX3U2NCAoMCwg YSwgMCk7IC8qIHsgZGctZXJyb3Ige2NvcHJvY2Vzc29yIDAgaXMgbm90IGVuYWJsZWQgd2l0aCBc K2NkZWNwMH0gfSAqLworICByZXMgKz0gX19hcm1fdmN4MmRfdTY0ICgwLCBhLCAwKTsgLyogeyBk Zy1lcnJvciB7Y29wcm9jZXNzb3IgMCBpcyBub3QgZW5hYmxlZCB3aXRoIFwrY2RlY3AwfSB9ICov CisgIHJlcyArPSBfX2FybV92Y3gyZGFfdTY0ICgwLCBhLCBhLCAwKTsgLyogeyBkZy1lcnJvciB7 Y29wcm9jZXNzb3IgMCBpcyBub3QgZW5hYmxlZCB3aXRoIFwrY2RlY3AwfSB9ICovCisgIHJlcyAr PSBfX2FybV92Y3gzZF91NjQgKDAsIGEsIGEsIDApOyAvKiB7IGRnLWVycm9yIHtjb3Byb2Nlc3Nv ciAwIGlzIG5vdCBlbmFibGVkIHdpdGggXCtjZGVjcDB9IH0gKi8KKyAgcmVzICs9IF9fYXJtX3Zj eDNkYV91NjQgKDAsIGEsIGEsIGEsIDApOyAvKiB7IGRnLWVycm9yIHtjb3Byb2Nlc3NvciAwIGlz IG5vdCBlbmFibGVkIHdpdGggXCtjZGVjcDB9IH0gKi8KKyAgcmV0dXJuIHJlczsKK30KKyNwcmFn bWEgR0NDIHBvcF9vcHRpb25zCisKKyNwcmFnbWEgR0NDIHB1c2hfb3B0aW9ucworI3ByYWdtYSBH Q0MgdGFyZ2V0ICgiYXJjaD1hcm12OC1tLm1haW4rY2RlY3AyK2ZwIikKK3VpbnQzMl90IHRlc3Rf Y29wcm9jX21hdGNoXzIgKCkKK3sKKyAgcmV0dXJuIF9fYXJtX3ZjeDFfdTMyICgwLCAwKTsgLyog eyBkZy1lcnJvciB7Y29wcm9jZXNzb3IgMCBpcyBub3QgZW5hYmxlZCB3aXRoIFwrY2RlY3AwfSB9 ICovCit9CisjcHJhZ21hIEdDQyBwb3Bfb3B0aW9ucworCisjcHJhZ21hIEdDQyBwdXNoX29wdGlv bnMKKyNwcmFnbWEgR0NDIHRhcmdldCAoImFyY2g9YXJtdjgtbS5tYWluK2NkZWNwMytmcCIpCit1 aW50MzJfdCB0ZXN0X2NvcHJvY19tYXRjaF8zICgpCit7CisgIHJldHVybiBfX2FybV92Y3gxX3Uz MiAoMCwgMCk7IC8qIHsgZGctZXJyb3Ige2NvcHJvY2Vzc29yIDAgaXMgbm90IGVuYWJsZWQgd2l0 aCBcK2NkZWNwMH0gfSAqLworfQorI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKKworI3ByYWdtYSBH Q0MgcHVzaF9vcHRpb25zCisjcHJhZ21hIEdDQyB0YXJnZXQgKCJhcmNoPWFybXY4LW0ubWFpbitj ZGVjcDQrZnAiKQordWludDMyX3QgdGVzdF9jb3Byb2NfbWF0Y2hfNCAoKQoreworICByZXR1cm4g X19hcm1fdmN4MV91MzIgKDAsIDApOyAvKiB7IGRnLWVycm9yIHtjb3Byb2Nlc3NvciAwIGlzIG5v dCBlbmFibGVkIHdpdGggXCtjZGVjcDB9IH0gKi8KK30KKyNwcmFnbWEgR0NDIHBvcF9vcHRpb25z CisKKyNwcmFnbWEgR0NDIHB1c2hfb3B0aW9ucworI3ByYWdtYSBHQ0MgdGFyZ2V0ICgiYXJjaD1h cm12OC1tLm1haW4rY2RlY3A1K2ZwIikKK3VpbnQzMl90IHRlc3RfY29wcm9jX21hdGNoXzUgKCkK K3sKKyAgcmV0dXJuIF9fYXJtX3ZjeDFfdTMyICgwLCAwKTsgLyogeyBkZy1lcnJvciB7Y29wcm9j ZXNzb3IgMCBpcyBub3QgZW5hYmxlZCB3aXRoIFwrY2RlY3AwfSB9ICovCit9CisjcHJhZ21hIEdD QyBwb3Bfb3B0aW9ucworCisjcHJhZ21hIEdDQyBwdXNoX29wdGlvbnMKKyNwcmFnbWEgR0NDIHRh cmdldCAoImFyY2g9YXJtdjgtbS5tYWluK2NkZWNwNitmcCIpCit1aW50MzJfdCB0ZXN0X2NvcHJv Y19tYXRjaF82ICgpCit7CisgIHJldHVybiBfX2FybV92Y3gxX3UzMiAoMCwgMCk7IC8qIHsgZGct ZXJyb3Ige2NvcHJvY2Vzc29yIDAgaXMgbm90IGVuYWJsZWQgd2l0aCBcK2NkZWNwMH0gfSAqLwor fQorI3ByYWdtYSBHQ0MgcG9wX29wdGlvbnMKKworI3ByYWdtYSBHQ0MgcHVzaF9vcHRpb25zCisj cHJhZ21hIEdDQyB0YXJnZXQgKCJhcmNoPWFybXY4LW0ubWFpbitjZGVjcDcrZnAiKQordWludDMy X3QgdGVzdF9jb3Byb2NfbWF0Y2hfNyAoKQoreworICByZXR1cm4gX19hcm1fdmN4MV91MzIgKDAs IDApOyAvKiB7IGRnLWVycm9yIHtjb3Byb2Nlc3NvciAwIGlzIG5vdCBlbmFibGVkIHdpdGggXCtj ZGVjcDB9IH0gKi8KK30KKyNwcmFnbWEgR0NDIHBvcF9vcHRpb25zCisKKyNwcmFnbWEgR0NDIHB1 c2hfb3B0aW9ucworI3ByYWdtYSBHQ0MgdGFyZ2V0ICgiYXJjaD1hcm12OC1tLm1haW4rY2RlY3Aw K2ZwIikKK3VpbnQzMl90IHRlc3RfY29wcm9jX21hdGNoXzAgKCkKK3sKKyAgdWludDY0X3QgcmVz ID0gMDsKKyAgcmVzICs9IF9fYXJtX3ZjeDFfdTMyICgxLCAwKTsgLyogeyBkZy1lcnJvciB7Y29w cm9jZXNzb3IgMSBpcyBub3QgZW5hYmxlZCB3aXRoIFwrY2RlY3AxfSB9ICovCisgIHJlcyArPSBf X2FybV92Y3gxX3UzMiAoMiwgMCk7IC8qIHsgZGctZXJyb3Ige2NvcHJvY2Vzc29yIDIgaXMgbm90 IGVuYWJsZWQgd2l0aCBcK2NkZWNwMn0gfSAqLworICByZXMgKz0gX19hcm1fdmN4MV91MzIgKDMs IDApOyAvKiB7IGRnLWVycm9yIHtjb3Byb2Nlc3NvciAzIGlzIG5vdCBlbmFibGVkIHdpdGggXCtj ZGVjcDN9IH0gKi8KKyAgcmVzICs9IF9fYXJtX3ZjeDFfdTMyICg0LCAwKTsgLyogeyBkZy1lcnJv ciB7Y29wcm9jZXNzb3IgNCBpcyBub3QgZW5hYmxlZCB3aXRoIFwrY2RlY3A0fSB9ICovCisgIHJl cyArPSBfX2FybV92Y3gxX3UzMiAoNSwgMCk7IC8qIHsgZGctZXJyb3Ige2NvcHJvY2Vzc29yIDUg aXMgbm90IGVuYWJsZWQgd2l0aCBcK2NkZWNwNX0gfSAqLworICByZXMgKz0gX19hcm1fdmN4MV91 MzIgKDYsIDApOyAvKiB7IGRnLWVycm9yIHtjb3Byb2Nlc3NvciA2IGlzIG5vdCBlbmFibGVkIHdp dGggXCtjZGVjcDZ9IH0gKi8KKyAgcmVzICs9IF9fYXJtX3ZjeDFfdTMyICg3LCAwKTsgLyogeyBk Zy1lcnJvciB7Y29wcm9jZXNzb3IgNyBpcyBub3QgZW5hYmxlZCB3aXRoIFwrY2RlY3A3fSB9ICov CisgIHJldHVybiByZXM7Cit9CisjcHJhZ21hIEdDQyBwb3Bfb3B0aW9ucwpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9hY2xlL2NkZV92XzFfbXZlLmMgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYXJtL2FjbGUvY2RlX3ZfMV9tdmUuYwpuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MTQw YzNmNTIxYTYyOGM0Y2NjNGNhNjcwODc2YTBiMDQ2OGVmYTM3Ci0tLSAvZGV2L251bGwKKysrIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9hY2xlL2NkZV92XzFfbXZlLmMKQEAgLTAsMCAr MSw1NiBAQAorLyogVGVzdCB0aGUgQ0RFIEFDTEUgaW50cmluc2ljLiAgKi8KKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovCisvKiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBhcm1fdjhfMW1f bWFpbl9jZGVfbXZlX29rIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLXNhdmUtdGVtcHMgLU8yIiB9 ICovCisvKiB7IGRnLWFkZC1vcHRpb25zIGFybV92OF8xbV9tYWluX2NkZV9tdmUgfSAqLworCisj aW5jbHVkZSAiYXJtX2NkZS5oIgorCisjZGVmaW5lIFRFU1QwKFQsIE4sIEMsIEkpIFwKK1QgdGVz dF9hcm1fIyNOIyNfIyNDIyNfIyNJICgpIHsgXAorICByZXR1cm4gX19hcm1fIyNOIChDLCBJKTsg XAorfQorCisjZGVmaW5lIFRFU1QxKFQsIE4sIEMsIEkpIFwKK1QgdGVzdF9hcm1fIyNOIyNfIyND IyNfIyNJIChUIGEpIHsgXAorICByZXR1cm4gX19hcm1fIyNOIChDLCBhLCBJKTsgXAorfQorCisj ZGVmaW5lIFRFU1QyKFQsIE4sIEMsIEkpIFwKK1QgdGVzdF9hcm1fIyNOIyNfIyNDIyNfIyNJIChU IGEpIHsgXAorICByZXR1cm4gX19hcm1fIyNOIChDLCBhLCBhLCBJKTsgXAorfQorCisjZGVmaW5l IFRFU1QzKFQsIE4sIEMsIEkpIFwKK1QgdGVzdF9hcm1fIyNOIyNfIyNDIyNfIyNJIChUIGEpIHsg XAorICByZXR1cm4gX19hcm1fIyNOIChDLCBhLCBhLCBhLCBJKTsgXAorfQorCisjZGVmaW5lIFRF U1RfQUxMKEMpIFwKK1RFU1QwICh1aW50MzJfdCwgdmN4MV91MzIsCUMsIDApIFwKK1RFU1QxICh1 aW50MzJfdCwgdmN4MWFfdTMyLAlDLCAwKSBcCitURVNUMSAodWludDMyX3QsIHZjeDJfdTMyLAlD LCAwKSBcCitURVNUMiAodWludDMyX3QsIHZjeDJhX3UzMiwJQywgMCkgXAorVEVTVDIgKHVpbnQz Ml90LCB2Y3gzX3UzMiwJQywgMCkgXAorVEVTVDMgKHVpbnQzMl90LCB2Y3gzYV91MzIsCUMsIDAp IFwKK1RFU1QwICh1aW50NjRfdCwgdmN4MWRfdTY0LAlDLCAwKSBcCitURVNUMSAodWludDY0X3Qs IHZjeDFkYV91NjQsCUMsIDApIFwKK1RFU1QxICh1aW50NjRfdCwgdmN4MmRfdTY0LAlDLCAwKSBc CitURVNUMiAodWludDY0X3QsIHZjeDJkYV91NjQsCUMsIDApIFwKK1RFU1QyICh1aW50NjRfdCwg dmN4M2RfdTY0LAlDLCAwKSBcCitURVNUMyAodWludDY0X3QsIHZjeDNkYV91NjQsCUMsIDApCisK K1RFU1RfQUxMICgwKQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0 dmN4MVx0cDAsIHNbMC05XSssICMwfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtcdHZjeDFhXHRwMCwgc1swLTldKywgIzB9IDEgfSB9ICovCisvKiB7IGRn LWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0dmN4Mlx0cDAsIHNbMC05XSssIHNbMC05 XSssICMwfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtc dHZjeDJhXHRwMCwgc1swLTldKywgc1swLTldKywgIzB9IDEgfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0dmN4M1x0cDAsIHNbMC05XSssIHNbMC05XSssIHNb MC05XSssICMwfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtcdHZjeDNhXHRwMCwgc1swLTldKywgc1swLTldKywgc1swLTldKywgIzB9IDEgfSB9ICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0dmN4MVx0cDAsIGRbMC05XSss ICMwfSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHZj eDFhXHRwMCwgZFswLTldKywgIzB9IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMge1x0dmN4Mlx0cDAsIGRbMC05XSssIGRbMC05XSssICMwfSAxIH0gfSAqLwor LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHZjeDJhXHRwMCwgZFswLTld KywgZFswLTldKywgIzB9IDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge1x0dmN4M1x0cDAsIGRbMC05XSssIGRbMC05XSssIGRbMC05XSssICMwfSAxIH0gfSAq LworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHZjeDNhXHRwMCwgZFsw LTldKywgZFswLTldKywgZFswLTldKywgIzB9IDEgfSB9ICovCg== --_002_VI1PR08MB37250861B14D6CEE2C71BFBF84C30VI1PR08MB3725eurp_--