From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70083.outbound.protection.outlook.com [40.107.7.83]) by sourceware.org (Postfix) with ESMTPS id 42492383D01B for ; Wed, 7 Jul 2021 13:35:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 42492383D01B Received: from AM6PR05CA0034.eurprd05.prod.outlook.com (2603:10a6:20b:2e::47) by DBBPR08MB4252.eurprd08.prod.outlook.com (2603:10a6:10:c2::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.27; Wed, 7 Jul 2021 13:35:34 +0000 Received: from AM5EUR03FT047.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:2e:cafe::fa) by AM6PR05CA0034.outlook.office365.com (2603:10a6:20b:2e::47) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.20 via Frontend Transport; Wed, 7 Jul 2021 13:35:34 +0000 X-MS-Exchange-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=pass 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 AM5EUR03FT047.mail.protection.outlook.com (10.152.16.197) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.20 via Frontend Transport; Wed, 7 Jul 2021 13:35:34 +0000 Received: ("Tessian outbound 8b91ad1fd5d8:v98"); Wed, 07 Jul 2021 13:35:33 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 8a8f4f065ad8a768 X-CR-MTA-TID: 64aa7808 Received: from 00efe5e730fa.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id B32C2FC6-155F-4DF3-B117-A5DAD2959B67.1; Wed, 07 Jul 2021 13:35:03 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 00efe5e730fa.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 07 Jul 2021 13:35:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IWXNugVCwh7wYiF7s82nW8LzmAtzkzq+5Ty6uJFF1dQkUG9IHK6Tom45uS2gAtD26OO1s9e3UqqD1uvA5DdW8BJ4IX9e+j4dAmxmJ8rq+IIhpWJN7BZTNmuqtw7mAF4CbIU6oi6vqb6tr+/FF4Z5Js0kLAy0p8Wd74Fv4+D1AELWYs8IJk6x+tupvrdSmD9vJdOkh3OevS23Cja5jvEEAniHkQBwkWggcsHv6amrXYQR62qgQXxsR3oh0yriqWizg4+LD2qzVBNGy9ymtfS5QGMuFX3m5EoQ5Sr2nbzB6haEktdh5cjA0KC3NPluYswmweluNTPXi12E0RY2cUkZWw== 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=qGWoo5EkKnZMKtKVY1iQJ2mfWgY14jAvB0ZEtY/FfWI=; b=ZRao3Hl+16xtqHUq4xfaAjdY4/6id7VJ1w15YO4n+++TzHLP0enZvASUkoeWLCp5fawMFY7ke9B2xkeOdHzVsGwPhotnR+MLf+FidIyroHdIxAaPsMV1kJv9lgwXUyv7izKeRAd2mGpw7K4lMK0faBz+ckGRZUc0d4QAWGGeZ1AK4XVB3zzZ7kHOmirHwpVrUtk32106Pv0MqMgArVrfyWI81svYmEQpB1sYXAB+TXEXo+vOcRENcatsB+RDW9RddfgjdjOCvF2p9xAZwKRIakUaVftCJ/68rT0co/6LLkNZWeo7ViKZqDpN8TT2mdc0VcHkb9j0RRfI20Witk7zng== 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 Received: from DB9PR08MB6959.eurprd08.prod.outlook.com (2603:10a6:10:2bf::11) by DB9PR08MB6960.eurprd08.prod.outlook.com (2603:10a6:10:2c0::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4308.19; Wed, 7 Jul 2021 13:35:01 +0000 Received: from DB9PR08MB6959.eurprd08.prod.outlook.com ([fe80::ac6e:79e7:6ffc:28e2]) by DB9PR08MB6959.eurprd08.prod.outlook.com ([fe80::ac6e:79e7:6ffc:28e2%5]) with mapi id 15.20.4308.020; Wed, 7 Jul 2021 13:35:01 +0000 From: Jonathan Wright To: "gcc-patches@gcc.gnu.org" CC: Richard Sandiford , Kyrylo Tkachov Subject: [PATCH V2] gcc: Add vec_select -> subreg RTL simplification Thread-Topic: [PATCH V2] gcc: Add vec_select -> subreg RTL simplification Thread-Index: AQHXczTiO/kW35ZOc0yeGZHxHJhAvA== Date: Wed, 7 Jul 2021 13:35:01 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-GB X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Authentication-Results-Original: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: ac571185-633d-403f-0621-08d9414c18f0 x-ms-traffictypediagnostic: DB9PR08MB6960:|DBBPR08MB4252: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:7219;OLM:7219; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: w2acf/eS5XSb6dCY3HTtX9ZP9w707sGcDJqnB/+fz1UWq8/y/6B03Z8J+WxI1lAcgvqscsWTnWIJPNG5UbdiYjgtT1ldH+T7PjS6mN1IEDZhxjtQjXctyPZRMxLm58d0bNUBoTuc0p/yi4SncN/2RNJbx79TgBNhGxVWugxghzuGl0dLZHhxUJPuB6ms7ypIZqZWa/UlT6mwPI41y9zFMevfU47ej06A9An+6RcZcYfD4j07Wki4STswbXRzZfYKD3vz6fNkg2J6gc8ZJag3D+F+01DBjK+vKD3Mk6C+9NmJuV19eD6AJ9bkq8NFXy5CA66QXS0m8IQuFmWce2f5hcLe+q/BRg6PeJKx9jOo6NMRDivvQk0MGso4BNUS+n/ZjpTnvmJvQHaQEBhouYgIP08Nh8pF9tSEg3OB6BIbN+UCgCmy/7g0NfBDTdSvzeHCd6UyLP9lRZkwtmHRdcqa5hmihT4uNBJ9dojlubJaT6L9gcyKORUru1MJmBMYGBYT4yba/a7eXw8XUCHdAhvcGZ2BWBCDy2Lhs30f+cI0UGfBrhQLOXJ6jkLMUrcp35wSVu50W09cnYu71DPbFJnvQ0+cPTgbsFSMn5WjomIPzzUNGk1zIbRcrKGiRelNdsFiHW3ImuIV4OcxGeAjMA8qv0/97zLJCmenMcci3ehBkPq+UcJU6uB0/kqcnA6oxtN4sBOED3EIFZrZkACCs/AIY+R23tOI/uov7hIwNH6KKspwDBnsNec1iH59t0qp5R2XVRE20vOxPVFqGBNT2UWdLDu7BqtHK4VHcr4vG8o2wW6KWnS6DxbiWbIXOCoRTGlQrPA044g7NbpzCDNmYo/3Mw== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6959.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(376002)(136003)(396003)(346002)(39860400002)(366004)(54906003)(186003)(316002)(33656002)(86362001)(4326008)(71200400001)(478600001)(8676002)(7696005)(9686003)(8936002)(26005)(52536014)(55016002)(5660300002)(6506007)(2906002)(6916009)(91956017)(76116006)(53546011)(122000001)(38100700002)(66616009)(66476007)(99936003)(64756008)(66446008)(83380400001)(66946007)(66556008)(333604002); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-8859-1?Q?IWSoo0QorJ1cRNHOnKqRjvRiiEI9yyKrr7EzSXxIWXJXeYBo/EPSsVbTs8?= =?iso-8859-1?Q?6YdGExn/Aj8ZMik8E6eQoPY5s8FCC0G3T5sPUVKgtb1EcdGiKsWDjMJvqm?= =?iso-8859-1?Q?m2BSTtir988vyDdFAAugPQALRx2Q1sMfnSejegUU68OYkqrNQ920705Jfb?= =?iso-8859-1?Q?GTU8CevqHiE1MsLHTJsXQjVmTAHNQY3RVRAttcOsyCb9E9l+Avoq4u9tk7?= =?iso-8859-1?Q?iTXih2Qu/MgYAZkRo2LXJMYb6WNXBfu/hQRjO2TEzWiAIInhOd559CcjQ2?= =?iso-8859-1?Q?quuEqemWotgGSAjK5RnufC2SHXED9VU7P7UFGsxec7R2OBK+PXr3IiUAef?= =?iso-8859-1?Q?GZcHf7WNSqnVvpSKiBYRgUDfvWBxO+Wf704aHHwLUfnLhqML4PThdnUOBd?= =?iso-8859-1?Q?IJTk4eTuh9DZ03a9RYY6cOsipJEJ5tVtcLhHt3snQHdYlr16tzgyvRYfBQ?= =?iso-8859-1?Q?6q1SD4DWneWaxRsO6VBfC+cwpjVcgy/K0ckU2ni7NBlzhPcxxOs5Zwjyff?= =?iso-8859-1?Q?W/p6QbfyfXc3O6v+bp77K9NYBVd/Pr1oRWP33CN1NQiY0HdKZv0AGUxfms?= =?iso-8859-1?Q?mywbgaOWXFdIZfjO3Ebo9Lf5pJqY7UXCiJ7q0w7vhfCwYjro/bCu9QUCKz?= =?iso-8859-1?Q?mfw1bSubJoLsfLv4uchzlQQHJLcPihu/Dv43xkwsc7njvTwP3beZU6vJV8?= =?iso-8859-1?Q?qyw7cu7OAZ362sxbOz8RdUX0bJ+PieyWxMjFxBjesaaJg2ZFxScOxfZ1Nl?= =?iso-8859-1?Q?kPF8+czKHUUqKjvcZr/3IBdWcv5hYKe7Ai9IZjbB0TMgHVctE+kri7OQwm?= =?iso-8859-1?Q?SQA17x39LVcE50RVi76I6tfPo8mrv2V5QSehc00brljVsBY8WrsfRGtYLM?= =?iso-8859-1?Q?gM9KEXKhtGsSBlRZYVO4nXaqc0IJcOP1+VU2co9XBe8kdQWaOfX6YF+WbZ?= =?iso-8859-1?Q?r9TZnu3Hl/8Bp09X9A44XwQI39XRSzRUaYDn9PK5ApCMTWSZuESPjVF6mG?= =?iso-8859-1?Q?87U0jtjCGMnmIKfOgVjBR4FQmZLgzneY4FpTuAycYV47zz8Kyv/SFMGwsC?= =?iso-8859-1?Q?mzoVyLcQjEMiFHs3PHPqoubQLwHAU4ZNzRFpfT7etmTgF0Q/KftXCj37gU?= =?iso-8859-1?Q?ARfKUc/7BnMgKTr2m3hiREzc57hBSIQQSl43DDKhudoZrgqwGsdpbZ9Vdc?= =?iso-8859-1?Q?Xew1zBgVBszVfYNptFzVrjuPTXmls8O2pAM22wDrZcUkX3tESnRxGJ7t+A?= =?iso-8859-1?Q?MxbBHVuCB/I+mtVIDaI+LPxB9rN1rB6AVS90JVZkPZQp2my5xGedmUkaG8?= =?iso-8859-1?Q?4fua2sBoGAUNDra+NvsOZd2Z34nqHnbYP6R7LisPIDLDlj8=3D?= Content-Type: multipart/mixed; boundary="_002_DB9PR08MB695965DE8F20616836E783C6EB1A9DB9PR08MB6959eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR08MB6960 Original-Authentication-Results: gcc.gnu.org; dkim=none (message not signed) header.d=none;gcc.gnu.org; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT047.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 62374377-7c8a-4ceb-184f-08d9414c0552 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YGkJ7Jc1ltKXtZAFm8P++Nt8mp8UQhEo3Np9vozzVRnvFpD46enbOGXBIzejdWw+2Reqe8Y5YaFOTHdQ9QeCAV5srzpZn8qoF/Xp5aW1I17EEcTchLvbO3i7OBe5F1zvyiRv6tYRt94mOub3RSobsvGph1WRtv/toSAp1PTmM2wli+dQeJ/Eu7Oni/saDOlebf/mXR5TVpK8aPloI5GC8iMUuWRHAdJAjwOm2nh4WX8KEG5flKKGSFZ3Eu0bWmScMxhLhHZ2B1ejDT2xOs7y3wdRzFRfs3P3Y7iAMHdq51aidJwn/bEtJyT0HAyMqPh//M1ow4qUVyKgFz0KPvUxLkJGO271izl2MJWIomzjQuvz0Bi9ZpaVMlwI+HspTLJlvnVv+b0H7x+gtJH5KwZ1e1qt5Zul67zziFzP6lZE7JejNVWrA/Q+juFmiKPglaQKEjYntlDjPBg815dSEovCYMoRW0NCbZWPRrnO+MYAQVo7OqKrWvFF7PplZmFaRC93dLYI8KmKPWzV5p031Lk+kNSsSNYE1bkQC1AnDGp3dbDcRMQKObAHFhKj/zNcmVxeiuzlYn7PD2GA+n72kJDkVxiVVbYeEK5tjDUZ2JC3sr2kqla//DkJkuhuGe9qJiChFJMDQd2/Wo99mWp0QRxdD6Qvj3zDPvXkQMRBZC5ksUiMFbmadNAAZUm+e43mVVUvdbp3AVeIal+avxQjF/h6mKdVzlx07E+6wxR3ArxEOz6yPn9sQelFJ9bQOyxLLCc4SVhxhcd9r6AYbsz+YijK7dqh5h6pAgXmWJOgF0gahrztTaLKL78bD5IurL1ps5mCAMFV7E3fQ8zHn2dSbNW1fSx5b464uYmmSWr8pz7mAdY= 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; SFS:(4636009)(376002)(396003)(39860400002)(136003)(346002)(46966006)(36840700001)(7696005)(33656002)(52536014)(82740400003)(99936003)(6916009)(235185007)(478600001)(86362001)(8936002)(70586007)(2906002)(81166007)(47076005)(316002)(5660300002)(336012)(54906003)(4326008)(66616009)(26005)(356005)(70206006)(8676002)(82310400003)(53546011)(6506007)(9686003)(83380400001)(55016002)(36860700001)(186003)(333604002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jul 2021 13:35:34.0579 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: ac571185-633d-403f-0621-08d9414c18f0 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-AuthSource: AM5EUR03FT047.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB4252 X-Spam-Status: No, score=-6.9 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.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) 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: Wed, 07 Jul 2021 13:35:42 -0000 --_002_DB9PR08MB695965DE8F20616836E783C6EB1A9DB9PR08MB6959eurp_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi,=0A= =0A= Version 2 of this patch adds more code generation tests to show the=0A= benefit of this RTL simplification as well as adding a new helper function= =0A= 'rtx_vec_series_p' to reduce code duplication.=0A= =0A= Patch tested as version 1 - ok for master?=0A= =0A= Thanks,=0A= Jonathan=0A= =0A= ---=0A= =0A= gcc/ChangeLog:=0A= =0A= 2021-06-08 =A0Jonathan Wright =A0=0A= =0A= * combine.c (combine_simplify_rtx): Add vec_select -> subreg=0A= simplification.=0A= * config/aarch64/aarch64.md (*zero_extend2_aarch64):= =0A= Add Neon to general purpose register case for zero-extend=0A= pattern.=0A= * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from *t -> r=0A= case to prevent some cases opting to go through memory.=0A= * cse.c (fold_rtx): Add vec_select -> subreg simplification.=0A= * rtl.c (rtx_vec_series_p): Define helper function to=0A= determine whether RTX vector-selection indices are in series.=0A= * rtl.h (rtx_vec_series_p): Define.=0A= * simplify-rtx.c (simplify_context::simplify_binary_operation_1):=0A= Likewise.=0A= =0A= gcc/testsuite/ChangeLog:=0A= =0A= * gcc.target/aarch64/extract_zero_extend.c: Remove dump scan=0A= for RTL pattern match.=0A= * gcc.target/aarch64/narrow_high_combine.c: Add new tests.=0A= * gcc.target/aarch64/simd/vmulx_laneq_f64_1.c: Update=0A= scan-assembler regex to look for a scalar register instead of=0A= lane 0 of a vector.=0A= * gcc.target/aarch64/simd/vmulx_laneq_f64_1.c: Likewise.=0A= * gcc.target/aarch64/simd/vmulxd_laneq_f64_1.c: Likewise.=0A= * gcc.target/aarch64/simd/vmulxs_lane_f32_1.c: Likewise.=0A= * gcc.target/aarch64/simd/vmulxs_laneq_f32_1.c: Likewise.=0A= * gcc.target/aarch64/simd/vqdmlalh_lane_s16.c: Likewise.=0A= * gcc.target/aarch64/simd/vqdmlals_lane_s32.c: Likewise.=0A= * gcc.target/aarch64/simd/vqdmlslh_lane_s16.c: Likewise.=0A= * gcc.target/aarch64/simd/vqdmlsls_lane_s32.c: Likewise.=0A= * gcc.target/aarch64/simd/vqdmullh_lane_s16.c: Likewise.=0A= * gcc.target/aarch64/simd/vqdmullh_laneq_s16.c: Likewise.=0A= * gcc.target/aarch64/simd/vqdmulls_lane_s32.c: Likewise.=0A= * gcc.target/aarch64/simd/vqdmulls_laneq_s32.c: Likewise.=0A= * gcc.target/aarch64/sve/dup_lane_1.c: Likewise.=0A= * gcc.target/aarch64/sve/live_1.c: Update scan-assembler regex=0A= cases to look for 'b' and 'h' registers instead of 'w'.=0A= * gcc.target/arm/mve/intrinsics/vgetq_lane_f16.c: Extract=0A= lane 1 as the moves for lane 0 now get optimized away.=0A= * gcc.target/arm/mve/intrinsics/vgetq_lane_f32.c: Likewise.=0A= * gcc.target/arm/mve/intrinsics/vgetq_lane_s16.c: Likewise.=0A= * gcc.target/arm/mve/intrinsics/vgetq_lane_s32.c: Likewise.=0A= * gcc.target/arm/mve/intrinsics/vgetq_lane_s8.c: Likewise.=0A= * gcc.target/arm/mve/intrinsics/vgetq_lane_u16.c: Likewise.=0A= * gcc.target/arm/mve/intrinsics/vgetq_lane_u32.c: Likewise.=0A= * gcc.target/arm/mve/intrinsics/vgetq_lane_u8.c: Likewise.=0A= =0A= =0A= =0A= From: Jonathan Wright=0A= Sent: 02 July 2021 10:53=0A= To: gcc-patches@gcc.gnu.org =0A= Cc: Richard Sandiford ; Kyrylo Tkachov =0A= Subject: [PATCH] gcc: Add vec_select -> subreg RTL simplification =0A= =A0=0A= Hi,=0A= =0A= As subject, this patch adds a new RTL simplification for the case of a=0A= VEC_SELECT selecting the low part of a vector. The simplification=0A= returns a SUBREG.=0A= =0A= The primary goal of this patch is to enable better combinations of=0A= Neon RTL patterns - specifically allowing generation of 'write-to-=0A= high-half' narrowing intructions.=0A= =0A= Adding this RTL simplification means that the expected results for a=0A= number of tests need to be updated:=0A= * aarch64 Neon: Update the scan-assembler regex for intrinsics tests=0A= =A0 to expect a scalar register instead of lane 0 of a vector.=0A= * aarch64 SVE: Likewise.=0A= * arm MVE: Use lane 1 instead of lane 0 for lane-extraction=0A= =A0 intrinsics tests (as the move instructions get optimized away for=0A= =A0 lane 0.)=0A= =0A= Regression tested and bootstrapped on aarch64-none-linux-gnu,=0A= x86_64-unknown-linux-gnu, arm-none-linux-gnueabihf and=0A= aarch64_be-none-linux-gnu - no issues.=0A= =0A= Ok for master?=0A= =0A= Thanks,=0A= Jonathan=0A= =0A= ---=0A= =0A= gcc/ChangeLog:=0A= =0A= 2021-06-08 =A0Jonathan Wright =A0=0A= =0A= =A0=A0=A0=A0=A0=A0=A0 * combine.c (combine_simplify_rtx): Add vec_select ->= subreg=0A= =A0=A0=A0=A0=A0=A0=A0 simplification.=0A= =A0=A0=A0=A0=A0=A0=A0 * config/aarch64/aarch64.md (*zero_extend= 2_aarch64):=0A= =A0=A0=A0=A0=A0=A0=A0 Add Neon to general purpose register case for zero-ex= tend=0A= =A0=A0=A0=A0=A0=A0=A0 pattern.=0A= =A0=A0=A0=A0=A0=A0=A0 * config/arm/vfp.md (*arm_movsi_vfp): Remove "*" from= *t -> r=0A= =A0=A0=A0=A0=A0=A0=A0 case to prevent some cases opting to go through memor= y.=0A= =A0=A0=A0=A0=A0=A0=A0 * cse.c (fold_rtx): Add vec_select -> subreg simplifi= cation.=0A= =A0=A0=A0=A0=A0=A0=A0 * simplify-rtx.c (simplify_context::simplify_binary_o= peration_1):=0A= =A0=A0=A0=A0=A0=A0=A0 Likewise.=0A= =0A= gcc/testsuite/ChangeLog:=0A= =0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/extract_zero_extend.c: Remove du= mp scan=0A= =A0=A0=A0=A0=A0=A0=A0 for RTL pattern match.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vmulx_laneq_f64_1.c: Update= =0A= =A0=A0=A0=A0=A0=A0=A0 scan-assembler regex to look for a scalar register in= stead of=0A= =A0=A0=A0=A0=A0=A0=A0 lane 0 of a vector.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vmulx_laneq_f64_1.c: Likewi= se.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vmulxd_laneq_f64_1.c: Likew= ise.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vmulxs_lane_f32_1.c: Likewi= se.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vmulxs_laneq_f32_1.c: Likew= ise.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vqdmlalh_lane_s16.c: Likewi= se.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vqdmlals_lane_s32.c: Likewi= se.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vqdmlslh_lane_s16.c: Likewi= se.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vqdmlsls_lane_s32.c: Likewi= se.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vqdmullh_lane_s16.c: Likewi= se.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vqdmullh_laneq_s16.c: Likew= ise.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vqdmulls_lane_s32.c: Likewi= se.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/simd/vqdmulls_laneq_s32.c: Likew= ise.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/sve/dup_lane_1.c: Likewise.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/aarch64/sve/live_1.c: Update scan-assemb= ler regex=0A= =A0=A0=A0=A0=A0=A0=A0 cases to look for 'b' and 'h' registers instead of 'w= '.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/arm/mve/intrinsics/vgetq_lane_f16.c: Ext= ract=0A= =A0=A0=A0=A0=A0=A0=A0 lane 1 as the moves for lane 0 now get optimized away= .=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/arm/mve/intrinsics/vgetq_lane_f32.c: Lik= ewise.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/arm/mve/intrinsics/vgetq_lane_s16.c: Lik= ewise.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/arm/mve/intrinsics/vgetq_lane_s32.c: Lik= ewise.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/arm/mve/intrinsics/vgetq_lane_s8.c: Like= wise.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/arm/mve/intrinsics/vgetq_lane_u16.c: Lik= ewise.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/arm/mve/intrinsics/vgetq_lane_u32.c: Lik= ewise.=0A= =A0=A0=A0=A0=A0=A0=A0 * gcc.target/arm/mve/intrinsics/vgetq_lane_u8.c: Like= wise.= --_002_DB9PR08MB695965DE8F20616836E783C6EB1A9DB9PR08MB6959eurp_ Content-Type: application/octet-stream; name="rb14526.patch" Content-Description: rb14526.patch Content-Disposition: attachment; filename="rb14526.patch"; size=43047; creation-date="Wed, 07 Jul 2021 13:34:37 GMT"; modification-date="Wed, 07 Jul 2021 13:34:37 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jb21iaW5lLmMgYi9nY2MvY29tYmluZS5jCmluZGV4IDY0NzY4MTJh MjEyNjhlMjgyMTlkMWUzMDJlZTFjOTc5ZDUyOGE2Y2EuLjBmZjZjYTg3ZTQ0MzJjZmVmZjFjYWUx ZGQyMTllYTgxZWEwYjczZTQgMTAwNjQ0Ci0tLSBhL2djYy9jb21iaW5lLmMKKysrIGIvZ2NjL2Nv bWJpbmUuYwpAQCAtNjI3Niw2ICs2Mjc2LDI2IEBAIGNvbWJpbmVfc2ltcGxpZnlfcnR4IChydHgg eCwgbWFjaGluZV9tb2RlIG9wMF9tb2RlLCBpbnQgaW5fZGVzdCwKIAkJCSAgICAgIC0gMSwKIAkJ CSAgICAgIDApKTsKICAgICAgIGJyZWFrOworICAgIGNhc2UgVkVDX1NFTEVDVDoKKyAgICAgIHsK KwlydHggdHJ1ZW9wMCA9IFhFWFAgKHgsIDApOworCW1vZGUgPSBHRVRfTU9ERSAodHJ1ZW9wMCk7 CisJcnR4IHRydWVvcDEgPSBYRVhQICh4LCAxKTsKKwlpbnQgbnVuaXRzOworCS8qIElmIHdlIHNl bGVjdCBhIGxvdy1wYXJ0IHN1YnJlZywgcmV0dXJuIHRoYXQuICAqLworCWlmIChHRVRfTU9ERV9O VU5JVFMgKG1vZGUpLmlzX2NvbnN0YW50ICgmbnVuaXRzKQorCSAgICAmJiB0YXJnZXRtLmNhbl9j aGFuZ2VfbW9kZV9jbGFzcyAobW9kZSwgR0VUX01PREUgKHgpLCBBTExfUkVHUykpCisJICB7CisJ ICAgIGludCBvZmZzZXQgPSBCWVRFU19CSUdfRU5ESUFOID8gbnVuaXRzIC0gWFZFQ0xFTiAodHJ1 ZW9wMSwgMCkgOiAwOworCisJICAgIGlmIChydHhfdmVjX3Nlcmllc19wICh0cnVlb3AxLCBvZmZz ZXQpKQorCSAgICAgIHsKKwkJcnR4IG5ld19ydHggPSBsb3dwYXJ0X3N1YnJlZyAoR0VUX01PREUg KHgpLCB0cnVlb3AwLCBtb2RlKTsKKwkJaWYgKG5ld19ydHggIT0gTlVMTF9SVFgpCisJCSAgcmV0 dXJuIG5ld19ydHg7CisJICAgICAgfQorCSAgfQorICAgICAgfQogCiAgICAgZGVmYXVsdDoKICAg ICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQubWQgYi9n Y2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5tZAppbmRleCBhZWY2ZGE5NzMyZDQ1YjM1ODZiYWQ1 YmE1N2RhZmE0MzgzNzRhYzNjLi5mMTJhMGJlYmQzZDZkZDMzODFhYzgyNDhjZDNmYTNmNTE5MTE1 MTA1IDEwMDY0NAotLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5tZAorKysgYi9nY2Mv Y29uZmlnL2FhcmNoNjQvYWFyY2g2NC5tZApAQCAtMTg4NCwxNSArMTg4NCwxNiBAQAogKQogCiAo ZGVmaW5lX2luc24gIip6ZXJvX2V4dGVuZDxTSE9SVDptb2RlPjxHUEk6bW9kZT4yX2FhcmNoNjQi Ci0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkdQSSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIscix3 IikKLSAgICAgICAgKHplcm9fZXh0ZW5kOkdQSSAobWF0Y2hfb3BlcmFuZDpTSE9SVCAxICJub25p bW1lZGlhdGVfb3BlcmFuZCIgInIsbSxtIikpKV0KKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6R1BJ IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9cixyLHcsciIpCisgICAgICAgICh6ZXJvX2V4dGVuZDpH UEkgKG1hdGNoX29wZXJhbmQ6U0hPUlQgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiICJyLG0sbSx3 IikpKV0KICAgIiIKICAgIkAKICAgIGFuZFx0JTxHUEk6dz4wLCAlPEdQSTp3PjEsIDxTSE9SVDpz aG9ydF9tYXNrPgogICAgbGRyPFNIT1JUOnNpemU+XHQldzAsICUxCi0gICBsZHJcdCU8U0hPUlQ6 c2l6ZT4wLCAlMSIKLSAgWyhzZXRfYXR0ciAidHlwZSIgImxvZ2ljX2ltbSxsb2FkXzQsZl9sb2Fk cyIpCi0gICAoc2V0X2F0dHIgImFyY2giICIqLCosZnAiKV0KKyAgIGxkclx0JTxTSE9SVDpzaXpl PjAsICUxCisgICB1bW92XHQldzAsICUxLjxTSE9SVDpzaXplPlswXSIKKyAgWyhzZXRfYXR0ciAi dHlwZSIgImxvZ2ljX2ltbSxsb2FkXzQsZl9sb2FkcyxuZW9uX3RvX2dwIikKKyAgIChzZXRfYXR0 ciAiYXJjaCIgIiosKixmcCxmcCIpXQogKQogCiAoZGVmaW5lX2V4cGFuZCAiPG9wdGFiPnFpaGky IgpkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hcm0vdmZwLm1kIGIvZ2NjL2NvbmZpZy9hcm0vdmZw Lm1kCmluZGV4IDU1YjZjMWFjNTg1YTRjYWUwNzg5YzNhZmMwZmNjZmMwNWE2ZDM2NTMuLjkzZTk2 MzY5NmRhZDMwZjI5YTc2MDI1Njk2NjcwZjhiMzFiZjJjMzUgMTAwNjQ0Ci0tLSBhL2djYy9jb25m aWcvYXJtL3ZmcC5tZAorKysgYi9nY2MvY29uZmlnL2FybS92ZnAubWQKQEAgLTIyNCw3ICsyMjQs NyBAQAogOzsgcHJvYmxlbXMgYmVjYXVzZSBzbWFsbCBjb25zdGFudHMgZ2V0IGNvbnZlcnRlZCBp bnRvIGFkZHMuCiAoZGVmaW5lX2luc24gIiphcm1fbW92c2lfdmZwIgogICBbKHNldCAobWF0Y2hf b3BlcmFuZDpTSSAwICJub25pbW1lZGlhdGVfb3BlcmFuZCIgIj1yayxyLHIscixyayxtICwqdCxy LCp0LCp0LCAqVXYiKQotICAgICAgKG1hdGNoX29wZXJhbmQ6U0kgMSAiZ2VuZXJhbF9vcGVyYW5k IgkgICAicmssIEksSyxqLG1pLHJrLHIsKnQsKnQsKlV2aSwqdCIpKV0KKyAgICAgIChtYXRjaF9v cGVyYW5kOlNJIDEgImdlbmVyYWxfb3BlcmFuZCIJICAgInJrLCBJLEssaixtaSxyayxyLHQsKnQs KlV2aSwqdCIpKV0KICAgIlRBUkdFVF9BUk0gJiYgVEFSR0VUX0hBUkRfRkxPQVQKICAgICYmICgg ICBzX3JlZ2lzdGVyX29wZXJhbmQgKG9wZXJhbmRzWzBdLCBTSW1vZGUpCiAgICAgICAgfHwgc19y ZWdpc3Rlcl9vcGVyYW5kIChvcGVyYW5kc1sxXSwgU0ltb2RlKSkiCmRpZmYgLS1naXQgYS9nY2Mv Y3NlLmMgYi9nY2MvY3NlLmMKaW5kZXggNGI3Y2JkY2U2MDBlOWQwZTFkNDc2OGMxN2E5OTM4MWM3 NmUxY2VmMS4uMDUzYzlkY2MxNTY2ZDNkY2I0Zjc1ZTIyNzE2MzY4MzQyZDllYzc1YSAxMDA2NDQK LS0tIGEvZ2NjL2NzZS5jCisrKyBiL2djYy9jc2UuYwpAQCAtMzE3MSw2ICszMTcxLDI2IEBAIGZv bGRfcnR4IChydHggeCwgcnR4X2luc24gKmluc24pCiAgICAgICBpZiAoTk9fRlVOQ1RJT05fQ1NF ICYmIENPTlNUQU5UX1AgKFhFWFAgKFhFWFAgKHgsIDApLCAwKSkpCiAJcmV0dXJuIHg7CiAgICAg ICBicmVhazsKKyAgICBjYXNlIFZFQ19TRUxFQ1Q6CisgICAgICB7CisJcnR4IHRydWVvcDAgPSBY RVhQICh4LCAwKTsKKwltb2RlID0gR0VUX01PREUgKHRydWVvcDApOworCXJ0eCB0cnVlb3AxID0g WEVYUCAoeCwgMSk7CisJaW50IG51bml0czsKKwkvKiBJZiB3ZSBzZWxlY3QgYSBsb3ctcGFydCBz dWJyZWcsIHJldHVybiB0aGF0LiAgKi8KKwlpZiAoR0VUX01PREVfTlVOSVRTIChtb2RlKS5pc19j b25zdGFudCAoJm51bml0cykKKwkgICAgJiYgdGFyZ2V0bS5jYW5fY2hhbmdlX21vZGVfY2xhc3Mg KG1vZGUsIEdFVF9NT0RFICh4KSwgQUxMX1JFR1MpKQorCSAgeworCSAgICBpbnQgb2Zmc2V0ID0g QllURVNfQklHX0VORElBTiA/IG51bml0cyAtIFhWRUNMRU4gKHRydWVvcDEsIDApIDogMDsKKwor CSAgICBpZiAocnR4X3ZlY19zZXJpZXNfcCAodHJ1ZW9wMSwgb2Zmc2V0KSkKKwkgICAgICB7CisJ CXJ0eCBuZXdfcnR4ID0gbG93cGFydF9zdWJyZWcgKEdFVF9NT0RFICh4KSwgdHJ1ZW9wMCwgbW9k ZSk7CisJCWlmIChuZXdfcnR4ICE9IE5VTExfUlRYKQorCQkgIHJldHVybiBuZXdfcnR4OworCSAg ICAgIH0KKwkgIH0KKyAgICAgIH0KIAogICAgIC8qIEFueXRoaW5nIGVsc2UgZ29lcyB0aHJvdWdo IHRoZSBsb29wIGJlbG93LiAgKi8KICAgICBkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvZ2NjL3J0bC5o IGIvZ2NjL3J0bC5oCmluZGV4IDVlZDBkNmRkNmZhNjM1NmYyODNmMWNhOWMzYjAyOWI4ZDIyYWE0 ZjcuLmFiZDJkNWE0YTkzOTJlODgzY2QxNWNkMWRkN2FiYWUyYTEzNmFjZDkgMTAwNjQ0Ci0tLSBh L2djYy9ydGwuaAorKysgYi9nY2MvcnRsLmgKQEAgLTI5OTYsNiArMjk5Niw3IEBAIGV4dGVybiB1 bnNpZ25lZCBpbnQgcnR4X3NpemUgKGNvbnN0X3J0eCk7CiBleHRlcm4gcnR4IHNoYWxsb3dfY29w eV9ydHggKGNvbnN0X3J0eCBDWFhfTUVNX1NUQVRfSU5GTyk7CiBleHRlcm4gaW50IHJ0eF9lcXVh bF9wIChjb25zdF9ydHgsIGNvbnN0X3J0eCk7CiBleHRlcm4gYm9vbCBydHZlY19hbGxfZXF1YWxf cCAoY29uc3RfcnR2ZWMpOworZXh0ZXJuIGJvb2wgcnR4X3ZlY19zZXJpZXNfcCAoY29uc3RfcnR4 LCBpbnQpOwogCiAvKiBSZXR1cm4gdHJ1ZSBpZiBYIGlzIGEgdmVjdG9yIGNvbnN0YW50IHdpdGgg YSBkdXBsaWNhdGVkIGVsZW1lbnQgdmFsdWUuICAqLwogCmRpZmYgLS1naXQgYS9nY2MvcnRsLmMg Yi9nY2MvcnRsLmMKaW5kZXggYWFlZTg4MmY1Y2EzZTM3YjU5Yzk4MjllNDFkMDg2NDA3MGMxNzBl Yi4uM2U4YjM2MjhiMGI3NmI0MTg4OWI3N2JiMDAxOWY1ODJlZTZmNWFhYSAxMDA2NDQKLS0tIGEv Z2NjL3J0bC5jCisrKyBiL2djYy9ydGwuYwpAQCAtNzM2LDYgKzczNiwxOSBAQCBydHZlY19hbGxf ZXF1YWxfcCAoY29uc3RfcnR2ZWMgdmVjKQogICAgIH0KIH0KIAorLyogUmV0dXJuIHRydWUgaWYg ZWxlbWVudC1zZWxlY3Rpb24gaW5kaWNlcyBpbiBWRUMgYXJlIGluIHNlcmllcy4gICovCisKK2Jv b2wKK3J0eF92ZWNfc2VyaWVzX3AgKGNvbnN0X3J0eCB2ZWMsIGludCBzdGFydCkKK3sKKyAgZm9y IChpbnQgaSA9IDA7IGkgPCBYVkVDTEVOICh2ZWMsIDApOyBpKyspCisgICAgeworICAgICAgaWYg KGkgKyBzdGFydCAhPSBJTlRWQUwgKFhWRUNFWFAgKHZlYywgMCwgaSkpKQorCXJldHVybiBmYWxz ZTsKKyAgICB9CisgIHJldHVybiB0cnVlOworfQorCiAvKiBSZXR1cm4gYW4gaW5kaWNhdGlvbiBv ZiB3aGljaCB0eXBlIG9mIGluc24gc2hvdWxkIGhhdmUgWCBhcyBhIGJvZHkuCiAgICBJbiBnZW5l cmF0b3IgZmlsZXMsIHRoaXMgY2FuIGJlIFVOS05PV04gaWYgdGhlIGFuc3dlciBpcyBvbmx5IGtu b3duCiAgICBhdCAoR0NDKSBydW50aW1lLiAgT3RoZXJ3aXNlIHRoZSB2YWx1ZSBpcyBDT0RFX0xB QkVMLCBJTlNOLCBDQUxMX0lOU04KZGlmZiAtLWdpdCBhL2djYy9zaW1wbGlmeS1ydHguYyBiL2dj Yy9zaW1wbGlmeS1ydHguYwppbmRleCBjODIxMDFjNzNhNDZlMzAwYmM2NWViMjEwNGEyMjA1NDMz ZmY1ZDI0Li5mZWE4OGQ1MGM2MTQ4Yjk4NGY1MmU4ZDdmNjBlMDMyYzI3YjNjMjVkIDEwMDY0NAot LS0gYS9nY2Mvc2ltcGxpZnktcnR4LmMKKysrIGIvZ2NjL3NpbXBsaWZ5LXJ0eC5jCkBAIC00MjAx LDYgKzQyMDEsMjQgQEAgc2ltcGxpZnlfY29udGV4dDo6c2ltcGxpZnlfYmluYXJ5X29wZXJhdGlv bl8xIChydHhfY29kZSBjb2RlLAogCQlyZXR1cm4gdHJ1ZW9wMDsKIAkgICAgfQogCisJICAvKiBJ ZiB3ZSBzZWxlY3QgYSBsb3ctcGFydCBzdWJyZWcsIHJldHVybiB0aGF0LiAgKi8KKwkgIGludCBu dW5pdHM7CisJICBpZiAoR0VUX01PREVfTlVOSVRTIChHRVRfTU9ERSAodHJ1ZW9wMCkpLmlzX2Nv bnN0YW50ICgmbnVuaXRzKQorCSAgICAgICYmIHRhcmdldG0uY2FuX2NoYW5nZV9tb2RlX2NsYXNz IChHRVRfTU9ERSAodHJ1ZW9wMCksIG1vZGUsCisJCQkJCQlBTExfUkVHUykpCisJICAgIHsKKwkg ICAgICBpbnQgb2Zmc2V0ID0gQllURVNfQklHX0VORElBTiA/IG51bml0cyAtIFhWRUNMRU4gKHRy dWVvcDEsIDApCisJCQkJCSAgICA6IDA7CisKKwkgICAgICBpZiAocnR4X3ZlY19zZXJpZXNfcCAo dHJ1ZW9wMSwgb2Zmc2V0KSkKKwkJeworCQkgIHJ0eCBuZXdfcnR4ID0gbG93cGFydF9zdWJyZWcg KG1vZGUsIHRydWVvcDAsCisJCQkJCQlHRVRfTU9ERSAodHJ1ZW9wMCkpOworCQkgIGlmIChuZXdf cnR4ICE9IE5VTExfUlRYKQorCQkgICAgcmV0dXJuIG5ld19ydHg7CisJCX0KKwkgICAgfQorCiAJ ICAvKiBJZiB3ZSBidWlsZCB7YSxifSB0aGVuIHBlcm11dGUgaXQsIGJ1aWxkIHRoZSByZXN1bHQg ZGlyZWN0bHkuICAqLwogCSAgaWYgKFhWRUNMRU4gKHRydWVvcDEsIDApID09IDIKIAkgICAgICAm JiBDT05TVF9JTlRfUCAoWFZFQ0VYUCAodHJ1ZW9wMSwgMCwgMCkpCmRpZmYgLS1naXQgYS9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9leHRyYWN0X3plcm9fZXh0ZW5kLmMgYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9leHRyYWN0X3plcm9fZXh0ZW5kLmMKaW5kZXgg MDIwOTMwNWNkNTViMGI2MmI3OTRmNzkwYTFjYzM2MDZmY2M3YTQ0Yi4uMTkzYjk0NWI0MWFkODIx ZGE2ZDExMTJmZmFlNzljYTQ2M2I0YTVlNCAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvZXh0cmFjdF96ZXJvX2V4dGVuZC5jCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hYXJjaDY0L2V4dHJhY3RfemVyb19leHRlbmQuYwpAQCAtNzAsMTIgKzcwLDMg QEAgZm9vX3NpdjRoaSAoc2l2NGhpIGEpCiAKIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci10aW1lcyAidW1vdlxcdCIgOCB9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxl ci1ub3QgImFuZFxcdCIgfSB9ICovCi0KLS8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wICJh YXJjaDY0X2dldF9sYW5lX3plcm9fZXh0ZW5kZGl2MTZxaSIgImZpbmFsIiB9IH0gKi8KLS8qIHsg ZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wICJhYXJjaDY0X2dldF9sYW5lX3plcm9fZXh0ZW5kZGl2 OHFpIiAiZmluYWwiIH0gfSAqLwotLyogeyBkZy1maW5hbCB7IHNjYW4tcnRsLWR1bXAgImFhcmNo NjRfZ2V0X2xhbmVfemVyb19leHRlbmRkaXY4aGkiICJmaW5hbCIgfSB9ICovCi0vKiB7IGRnLWZp bmFsIHsgc2Nhbi1ydGwtZHVtcCAiYWFyY2g2NF9nZXRfbGFuZV96ZXJvX2V4dGVuZGRpdjRoaSIg ImZpbmFsIiB9IH0gKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLXJ0bC1kdW1wICJhYXJjaDY0X2dl dF9sYW5lX3plcm9fZXh0ZW5kc2l2MTZxaSIgImZpbmFsIiB9IH0gKi8KLS8qIHsgZGctZmluYWwg eyBzY2FuLXJ0bC1kdW1wICJhYXJjaDY0X2dldF9sYW5lX3plcm9fZXh0ZW5kc2l2OHFpIiAiZmlu YWwiIH0gfSAqLwotLyogeyBkZy1maW5hbCB7IHNjYW4tcnRsLWR1bXAgImFhcmNoNjRfZ2V0X2xh bmVfemVyb19leHRlbmRzaXY4aGkiICJmaW5hbCIgfSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nh bi1ydGwtZHVtcCAiYWFyY2g2NF9nZXRfbGFuZV96ZXJvX2V4dGVuZHNpdjRoaSIgImZpbmFsIiB9 IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L25hcnJv d19oaWdoX2NvbWJpbmUuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L25hcnJv d19oaWdoX2NvbWJpbmUuYwppbmRleCBjZjY0OWJkYTI4ZDRkNjQ4YzkzOTJkMjAyZmNjNTY2MDEw N2ExMWQ3Li41MGVjYWIwMDJhMzU1MmQzN2E1Y2MwZDg5MjFmNDJmNmMzZGJhMTk1IDEwMDY0NAot LS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9uYXJyb3dfaGlnaF9jb21iaW5l LmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvbmFycm93X2hpZ2hfY29t YmluZS5jCkBAIC00LDEyMiArNCwyMjggQEAKIAogI2luY2x1ZGUgPGFybV9uZW9uLmg+CiAKLSNk ZWZpbmUgVEVTVF9BUklUSChuYW1lLCByZXR0eXBlLCBybXd0eXBlLCBpbnR5cGUsIGZzLCBycykg XAotICByZXR0eXBlIHRlc3RfICMjIG5hbWUgIyMgXyAjIyBmcyAjIyBfaGlnaF9jb21iaW5lIFwK KyNkZWZpbmUgVEVTVF8xX0FSSVRIKG5hbWUsIHJldHR5cGUsIHJtd3R5cGUsIGludHlwZSwgZnMs IHJzKSBcCisgIHJldHR5cGUgdGVzdF8xXyAjIyBuYW1lICMjIF8gIyMgZnMgIyMgX2hpZ2hfY29t YmluZSBcCiAJCShybXd0eXBlIGEsIGludHlwZSBiLCBpbnR5cGUgYykgXAogCXsgXAogCQlyZXR1 cm4gdmNvbWJpbmVfICMjIHJzIChhLCBuYW1lICMjIF8gIyMgZnMgKGIsIGMpKTsgXAogCX0KIAot VEVTVF9BUklUSCAodmFkZGhuLCBpbnQ4eDE2X3QsIGludDh4OF90LCBpbnQxNng4X3QsIHMxNiwg czgpCi1URVNUX0FSSVRIICh2YWRkaG4sIGludDE2eDhfdCwgaW50MTZ4NF90LCBpbnQzMng0X3Qs IHMzMiwgczE2KQotVEVTVF9BUklUSCAodmFkZGhuLCBpbnQzMng0X3QsIGludDMyeDJfdCwgaW50 NjR4Ml90LCBzNjQsIHMzMikKLVRFU1RfQVJJVEggKHZhZGRobiwgdWludDh4MTZfdCwgdWludDh4 OF90LCB1aW50MTZ4OF90LCB1MTYsIHU4KQotVEVTVF9BUklUSCAodmFkZGhuLCB1aW50MTZ4OF90 LCB1aW50MTZ4NF90LCB1aW50MzJ4NF90LCB1MzIsIHUxNikKLVRFU1RfQVJJVEggKHZhZGRobiwg dWludDMyeDRfdCwgdWludDMyeDJfdCwgdWludDY0eDJfdCwgdTY0LCB1MzIpCi0KLVRFU1RfQVJJ VEggKHZyYWRkaG4sIGludDh4MTZfdCwgaW50OHg4X3QsIGludDE2eDhfdCwgczE2LCBzOCkKLVRF U1RfQVJJVEggKHZyYWRkaG4sIGludDE2eDhfdCwgaW50MTZ4NF90LCBpbnQzMng0X3QsIHMzMiwg czE2KQotVEVTVF9BUklUSCAodnJhZGRobiwgaW50MzJ4NF90LCBpbnQzMngyX3QsIGludDY0eDJf dCwgczY0LCBzMzIpCi1URVNUX0FSSVRIICh2cmFkZGhuLCB1aW50OHgxNl90LCB1aW50OHg4X3Qs IHVpbnQxNng4X3QsIHUxNiwgdTgpCi1URVNUX0FSSVRIICh2cmFkZGhuLCB1aW50MTZ4OF90LCB1 aW50MTZ4NF90LCB1aW50MzJ4NF90LCB1MzIsIHUxNikKLVRFU1RfQVJJVEggKHZyYWRkaG4sIHVp bnQzMng0X3QsIHVpbnQzMngyX3QsIHVpbnQ2NHgyX3QsIHU2NCwgdTMyKQotCi1URVNUX0FSSVRI ICh2c3ViaG4sIGludDh4MTZfdCwgaW50OHg4X3QsIGludDE2eDhfdCwgczE2LCBzOCkKLVRFU1Rf QVJJVEggKHZzdWJobiwgaW50MTZ4OF90LCBpbnQxNng0X3QsIGludDMyeDRfdCwgczMyLCBzMTYp Ci1URVNUX0FSSVRIICh2c3ViaG4sIGludDMyeDRfdCwgaW50MzJ4Ml90LCBpbnQ2NHgyX3QsIHM2 NCwgczMyKQotVEVTVF9BUklUSCAodnN1YmhuLCB1aW50OHgxNl90LCB1aW50OHg4X3QsIHVpbnQx Nng4X3QsIHUxNiwgdTgpCi1URVNUX0FSSVRIICh2c3ViaG4sIHVpbnQxNng4X3QsIHVpbnQxNng0 X3QsIHVpbnQzMng0X3QsIHUzMiwgdTE2KQotVEVTVF9BUklUSCAodnN1YmhuLCB1aW50MzJ4NF90 LCB1aW50MzJ4Ml90LCB1aW50NjR4Ml90LCB1NjQsIHUzMikKLQotVEVTVF9BUklUSCAodnJzdWJo biwgaW50OHgxNl90LCBpbnQ4eDhfdCwgaW50MTZ4OF90LCBzMTYsIHM4KQotVEVTVF9BUklUSCAo dnJzdWJobiwgaW50MTZ4OF90LCBpbnQxNng0X3QsIGludDMyeDRfdCwgczMyLCBzMTYpCi1URVNU X0FSSVRIICh2cnN1YmhuLCBpbnQzMng0X3QsIGludDMyeDJfdCwgaW50NjR4Ml90LCBzNjQsIHMz MikKLVRFU1RfQVJJVEggKHZyc3ViaG4sIHVpbnQ4eDE2X3QsIHVpbnQ4eDhfdCwgdWludDE2eDhf dCwgdTE2LCB1OCkKLVRFU1RfQVJJVEggKHZyc3ViaG4sIHVpbnQxNng4X3QsIHVpbnQxNng0X3Qs IHVpbnQzMng0X3QsIHUzMiwgdTE2KQotVEVTVF9BUklUSCAodnJzdWJobiwgdWludDMyeDRfdCwg dWludDMyeDJfdCwgdWludDY0eDJfdCwgdTY0LCB1MzIpCi0KLSNkZWZpbmUgVEVTVF9TSElGVChu YW1lLCByZXR0eXBlLCBybXd0eXBlLCBpbnR5cGUsIGZzLCBycykgXAotICByZXR0eXBlIHRlc3Rf ICMjIG5hbWUgIyMgXyAjIyBmcyAjIyBfaGlnaF9jb21iaW5lIFwKK1RFU1RfMV9BUklUSCAodmFk ZGhuLCBpbnQ4eDE2X3QsIGludDh4OF90LCBpbnQxNng4X3QsIHMxNiwgczgpCitURVNUXzFfQVJJ VEggKHZhZGRobiwgaW50MTZ4OF90LCBpbnQxNng0X3QsIGludDMyeDRfdCwgczMyLCBzMTYpCitU RVNUXzFfQVJJVEggKHZhZGRobiwgaW50MzJ4NF90LCBpbnQzMngyX3QsIGludDY0eDJfdCwgczY0 LCBzMzIpCitURVNUXzFfQVJJVEggKHZhZGRobiwgdWludDh4MTZfdCwgdWludDh4OF90LCB1aW50 MTZ4OF90LCB1MTYsIHU4KQorVEVTVF8xX0FSSVRIICh2YWRkaG4sIHVpbnQxNng4X3QsIHVpbnQx Nng0X3QsIHVpbnQzMng0X3QsIHUzMiwgdTE2KQorVEVTVF8xX0FSSVRIICh2YWRkaG4sIHVpbnQz Mng0X3QsIHVpbnQzMngyX3QsIHVpbnQ2NHgyX3QsIHU2NCwgdTMyKQorCitURVNUXzFfQVJJVEgg KHZyYWRkaG4sIGludDh4MTZfdCwgaW50OHg4X3QsIGludDE2eDhfdCwgczE2LCBzOCkKK1RFU1Rf MV9BUklUSCAodnJhZGRobiwgaW50MTZ4OF90LCBpbnQxNng0X3QsIGludDMyeDRfdCwgczMyLCBz MTYpCitURVNUXzFfQVJJVEggKHZyYWRkaG4sIGludDMyeDRfdCwgaW50MzJ4Ml90LCBpbnQ2NHgy X3QsIHM2NCwgczMyKQorVEVTVF8xX0FSSVRIICh2cmFkZGhuLCB1aW50OHgxNl90LCB1aW50OHg4 X3QsIHVpbnQxNng4X3QsIHUxNiwgdTgpCitURVNUXzFfQVJJVEggKHZyYWRkaG4sIHVpbnQxNng4 X3QsIHVpbnQxNng0X3QsIHVpbnQzMng0X3QsIHUzMiwgdTE2KQorVEVTVF8xX0FSSVRIICh2cmFk ZGhuLCB1aW50MzJ4NF90LCB1aW50MzJ4Ml90LCB1aW50NjR4Ml90LCB1NjQsIHUzMikKKworVEVT VF8xX0FSSVRIICh2c3ViaG4sIGludDh4MTZfdCwgaW50OHg4X3QsIGludDE2eDhfdCwgczE2LCBz OCkKK1RFU1RfMV9BUklUSCAodnN1YmhuLCBpbnQxNng4X3QsIGludDE2eDRfdCwgaW50MzJ4NF90 LCBzMzIsIHMxNikKK1RFU1RfMV9BUklUSCAodnN1YmhuLCBpbnQzMng0X3QsIGludDMyeDJfdCwg aW50NjR4Ml90LCBzNjQsIHMzMikKK1RFU1RfMV9BUklUSCAodnN1YmhuLCB1aW50OHgxNl90LCB1 aW50OHg4X3QsIHVpbnQxNng4X3QsIHUxNiwgdTgpCitURVNUXzFfQVJJVEggKHZzdWJobiwgdWlu dDE2eDhfdCwgdWludDE2eDRfdCwgdWludDMyeDRfdCwgdTMyLCB1MTYpCitURVNUXzFfQVJJVEgg KHZzdWJobiwgdWludDMyeDRfdCwgdWludDMyeDJfdCwgdWludDY0eDJfdCwgdTY0LCB1MzIpCisK K1RFU1RfMV9BUklUSCAodnJzdWJobiwgaW50OHgxNl90LCBpbnQ4eDhfdCwgaW50MTZ4OF90LCBz MTYsIHM4KQorVEVTVF8xX0FSSVRIICh2cnN1YmhuLCBpbnQxNng4X3QsIGludDE2eDRfdCwgaW50 MzJ4NF90LCBzMzIsIHMxNikKK1RFU1RfMV9BUklUSCAodnJzdWJobiwgaW50MzJ4NF90LCBpbnQz MngyX3QsIGludDY0eDJfdCwgczY0LCBzMzIpCitURVNUXzFfQVJJVEggKHZyc3ViaG4sIHVpbnQ4 eDE2X3QsIHVpbnQ4eDhfdCwgdWludDE2eDhfdCwgdTE2LCB1OCkKK1RFU1RfMV9BUklUSCAodnJz dWJobiwgdWludDE2eDhfdCwgdWludDE2eDRfdCwgdWludDMyeDRfdCwgdTMyLCB1MTYpCitURVNU XzFfQVJJVEggKHZyc3ViaG4sIHVpbnQzMng0X3QsIHVpbnQzMngyX3QsIHVpbnQ2NHgyX3QsIHU2 NCwgdTMyKQorCisjZGVmaW5lIFRFU1RfMl9BUklUSChuYW1lLCByZXR0eXBlLCBpbnR5cGUsIGZz LCBycykgXAorICByZXR0eXBlIHRlc3RfMl8gIyMgbmFtZSAjIyBfICMjIGZzICMjIF9oaWdoX2Nv bWJpbmUgXAorCQkoaW50eXBlIGEsIGludHlwZSBiLCBpbnR5cGUgYykgXAorCXsgXAorCQlyZXR1 cm4gdmNvbWJpbmVfICMjIHJzIChuYW1lICMjIF8gIyMgZnMgKGEsIGMpLCBcCisJCQkJCW5hbWUg IyMgXyAjIyBmcyAoYiwgYykpOyBcCisJfQorCitURVNUXzJfQVJJVEggKHZhZGRobiwgaW50OHgx Nl90LCBpbnQxNng4X3QsIHMxNiwgczgpCitURVNUXzJfQVJJVEggKHZhZGRobiwgaW50MTZ4OF90 LCBpbnQzMng0X3QsIHMzMiwgczE2KQorVEVTVF8yX0FSSVRIICh2YWRkaG4sIGludDMyeDRfdCwg aW50NjR4Ml90LCBzNjQsIHMzMikKK1RFU1RfMl9BUklUSCAodmFkZGhuLCB1aW50OHgxNl90LCB1 aW50MTZ4OF90LCB1MTYsIHU4KQorVEVTVF8yX0FSSVRIICh2YWRkaG4sIHVpbnQxNng4X3QsIHVp bnQzMng0X3QsIHUzMiwgdTE2KQorVEVTVF8yX0FSSVRIICh2YWRkaG4sIHVpbnQzMng0X3QsICB1 aW50NjR4Ml90LCB1NjQsIHUzMikKKworVEVTVF8yX0FSSVRIICh2cmFkZGhuLCBpbnQ4eDE2X3Qs IGludDE2eDhfdCwgczE2LCBzOCkKK1RFU1RfMl9BUklUSCAodnJhZGRobiwgaW50MTZ4OF90LCBp bnQzMng0X3QsIHMzMiwgczE2KQorVEVTVF8yX0FSSVRIICh2cmFkZGhuLCBpbnQzMng0X3QsIGlu dDY0eDJfdCwgczY0LCBzMzIpCitURVNUXzJfQVJJVEggKHZyYWRkaG4sIHVpbnQ4eDE2X3QsIHVp bnQxNng4X3QsIHUxNiwgdTgpCitURVNUXzJfQVJJVEggKHZyYWRkaG4sIHVpbnQxNng4X3QsIHVp bnQzMng0X3QsIHUzMiwgdTE2KQorVEVTVF8yX0FSSVRIICh2cmFkZGhuLCB1aW50MzJ4NF90LCB1 aW50NjR4Ml90LCB1NjQsIHUzMikKKworVEVTVF8yX0FSSVRIICh2c3ViaG4sIGludDh4MTZfdCwg aW50MTZ4OF90LCBzMTYsIHM4KQorVEVTVF8yX0FSSVRIICh2c3ViaG4sIGludDE2eDhfdCwgaW50 MzJ4NF90LCBzMzIsIHMxNikKK1RFU1RfMl9BUklUSCAodnN1YmhuLCBpbnQzMng0X3QsIGludDY0 eDJfdCwgczY0LCBzMzIpCitURVNUXzJfQVJJVEggKHZzdWJobiwgdWludDh4MTZfdCwgdWludDE2 eDhfdCwgdTE2LCB1OCkKK1RFU1RfMl9BUklUSCAodnN1YmhuLCB1aW50MTZ4OF90LCB1aW50MzJ4 NF90LCB1MzIsIHUxNikKK1RFU1RfMl9BUklUSCAodnN1YmhuLCB1aW50MzJ4NF90LCB1aW50NjR4 Ml90LCB1NjQsIHUzMikKKworVEVTVF8yX0FSSVRIICh2cnN1YmhuLCBpbnQ4eDE2X3QsIGludDE2 eDhfdCwgczE2LCBzOCkKK1RFU1RfMl9BUklUSCAodnJzdWJobiwgaW50MTZ4OF90LCBpbnQzMng0 X3QsIHMzMiwgczE2KQorVEVTVF8yX0FSSVRIICh2cnN1YmhuLCBpbnQzMng0X3QsIGludDY0eDJf dCwgczY0LCBzMzIpCitURVNUXzJfQVJJVEggKHZyc3ViaG4sIHVpbnQ4eDE2X3QsIHVpbnQxNng4 X3QsIHUxNiwgdTgpCitURVNUXzJfQVJJVEggKHZyc3ViaG4sIHVpbnQxNng4X3QsIHVpbnQzMng0 X3QsIHUzMiwgdTE2KQorVEVTVF8yX0FSSVRIICh2cnN1YmhuLCB1aW50MzJ4NF90LCB1aW50NjR4 Ml90LCB1NjQsIHUzMikKKworI2RlZmluZSBURVNUXzFfU0hJRlQobmFtZSwgcmV0dHlwZSwgcm13 dHlwZSwgaW50eXBlLCBmcywgcnMpIFwKKyAgcmV0dHlwZSB0ZXN0XzFfICMjIG5hbWUgIyMgXyAj IyBmcyAjIyBfaGlnaF9jb21iaW5lIFwKIAkJKHJtd3R5cGUgYSwgaW50eXBlIGIpIFwKIAl7IFwK IAkJcmV0dXJuIHZjb21iaW5lXyAjIyBycyAoYSwgbmFtZSAjIyBfICMjIGZzIChiLCA0KSk7IFwK IAl9CiAKLVRFU1RfU0hJRlQgKHZzaHJuX24sIGludDh4MTZfdCwgaW50OHg4X3QsIGludDE2eDhf dCwgczE2LCBzOCkKLVRFU1RfU0hJRlQgKHZzaHJuX24sIGludDE2eDhfdCwgaW50MTZ4NF90LCBp bnQzMng0X3QsIHMzMiwgczE2KQotVEVTVF9TSElGVCAodnNocm5fbiwgaW50MzJ4NF90LCBpbnQz MngyX3QsIGludDY0eDJfdCwgczY0LCBzMzIpCi1URVNUX1NISUZUICh2c2hybl9uLCB1aW50OHgx Nl90LCB1aW50OHg4X3QsIHVpbnQxNng4X3QsIHUxNiwgdTgpCi1URVNUX1NISUZUICh2c2hybl9u LCB1aW50MTZ4OF90LCB1aW50MTZ4NF90LCB1aW50MzJ4NF90LCB1MzIsIHUxNikKLVRFU1RfU0hJ RlQgKHZzaHJuX24sIHVpbnQzMng0X3QsIHVpbnQzMngyX3QsIHVpbnQ2NHgyX3QsIHU2NCwgdTMy KQotCi1URVNUX1NISUZUICh2cnNocm5fbiwgaW50OHgxNl90LCBpbnQ4eDhfdCwgaW50MTZ4OF90 LCBzMTYsIHM4KQotVEVTVF9TSElGVCAodnJzaHJuX24sIGludDE2eDhfdCwgaW50MTZ4NF90LCBp bnQzMng0X3QsIHMzMiwgczE2KQotVEVTVF9TSElGVCAodnJzaHJuX24sIGludDMyeDRfdCwgaW50 MzJ4Ml90LCBpbnQ2NHgyX3QsIHM2NCwgczMyKQotVEVTVF9TSElGVCAodnJzaHJuX24sIHVpbnQ4 eDE2X3QsIHVpbnQ4eDhfdCwgdWludDE2eDhfdCwgdTE2LCB1OCkKLVRFU1RfU0hJRlQgKHZyc2hy bl9uLCB1aW50MTZ4OF90LCB1aW50MTZ4NF90LCB1aW50MzJ4NF90LCB1MzIsIHUxNikKLVRFU1Rf U0hJRlQgKHZyc2hybl9uLCB1aW50MzJ4NF90LCB1aW50MzJ4Ml90LCB1aW50NjR4Ml90LCB1NjQs IHUzMikKLQotVEVTVF9TSElGVCAodnFzaHJuX24sIGludDh4MTZfdCwgaW50OHg4X3QsIGludDE2 eDhfdCwgczE2LCBzOCkKLVRFU1RfU0hJRlQgKHZxc2hybl9uLCBpbnQxNng4X3QsIGludDE2eDRf dCwgaW50MzJ4NF90LCBzMzIsIHMxNikKLVRFU1RfU0hJRlQgKHZxc2hybl9uLCBpbnQzMng0X3Qs IGludDMyeDJfdCwgaW50NjR4Ml90LCBzNjQsIHMzMikKLVRFU1RfU0hJRlQgKHZxc2hybl9uLCB1 aW50OHgxNl90LCB1aW50OHg4X3QsIHVpbnQxNng4X3QsIHUxNiwgdTgpCi1URVNUX1NISUZUICh2 cXNocm5fbiwgdWludDE2eDhfdCwgdWludDE2eDRfdCwgdWludDMyeDRfdCwgdTMyLCB1MTYpCi1U RVNUX1NISUZUICh2cXNocm5fbiwgdWludDMyeDRfdCwgdWludDMyeDJfdCwgdWludDY0eDJfdCwg dTY0LCB1MzIpCi0KLVRFU1RfU0hJRlQgKHZxcnNocm5fbiwgaW50OHgxNl90LCBpbnQ4eDhfdCwg aW50MTZ4OF90LCBzMTYsIHM4KQotVEVTVF9TSElGVCAodnFyc2hybl9uLCBpbnQxNng4X3QsIGlu dDE2eDRfdCwgaW50MzJ4NF90LCBzMzIsIHMxNikKLVRFU1RfU0hJRlQgKHZxcnNocm5fbiwgaW50 MzJ4NF90LCBpbnQzMngyX3QsIGludDY0eDJfdCwgczY0LCBzMzIpCi1URVNUX1NISUZUICh2cXJz aHJuX24sIHVpbnQ4eDE2X3QsIHVpbnQ4eDhfdCwgdWludDE2eDhfdCwgdTE2LCB1OCkKLVRFU1Rf U0hJRlQgKHZxcnNocm5fbiwgdWludDE2eDhfdCwgdWludDE2eDRfdCwgdWludDMyeDRfdCwgdTMy LCB1MTYpCi1URVNUX1NISUZUICh2cXJzaHJuX24sIHVpbnQzMng0X3QsIHVpbnQzMngyX3QsIHVp bnQ2NHgyX3QsIHU2NCwgdTMyKQotCi1URVNUX1NISUZUICh2cXNocnVuX24sIHVpbnQ4eDE2X3Qs IHVpbnQ4eDhfdCwgaW50MTZ4OF90LCBzMTYsIHU4KQotVEVTVF9TSElGVCAodnFzaHJ1bl9uLCB1 aW50MTZ4OF90LCB1aW50MTZ4NF90LCBpbnQzMng0X3QsIHMzMiwgdTE2KQotVEVTVF9TSElGVCAo dnFzaHJ1bl9uLCB1aW50MzJ4NF90LCB1aW50MzJ4Ml90LCBpbnQ2NHgyX3QsIHM2NCwgdTMyKQot Ci1URVNUX1NISUZUICh2cXJzaHJ1bl9uLCB1aW50OHgxNl90LCB1aW50OHg4X3QsIGludDE2eDhf dCwgczE2LCB1OCkKLVRFU1RfU0hJRlQgKHZxcnNocnVuX24sIHVpbnQxNng4X3QsIHVpbnQxNng0 X3QsIGludDMyeDRfdCwgczMyLCB1MTYpCi1URVNUX1NISUZUICh2cXJzaHJ1bl9uLCB1aW50MzJ4 NF90LCB1aW50MzJ4Ml90LCBpbnQ2NHgyX3QsIHM2NCwgdTMyKQotCi0jZGVmaW5lIFRFU1RfVU5B UlkobmFtZSwgcmV0dHlwZSwgcm13dHlwZSwgaW50eXBlLCBmcywgcnMpIFwKLSAgcmV0dHlwZSB0 ZXN0XyAjIyBuYW1lICMjIF8gIyMgZnMgIyMgX2hpZ2hfY29tYmluZSBcCitURVNUXzFfU0hJRlQg KHZzaHJuX24sIGludDh4MTZfdCwgaW50OHg4X3QsIGludDE2eDhfdCwgczE2LCBzOCkKK1RFU1Rf MV9TSElGVCAodnNocm5fbiwgaW50MTZ4OF90LCBpbnQxNng0X3QsIGludDMyeDRfdCwgczMyLCBz MTYpCitURVNUXzFfU0hJRlQgKHZzaHJuX24sIGludDMyeDRfdCwgaW50MzJ4Ml90LCBpbnQ2NHgy X3QsIHM2NCwgczMyKQorVEVTVF8xX1NISUZUICh2c2hybl9uLCB1aW50OHgxNl90LCB1aW50OHg4 X3QsIHVpbnQxNng4X3QsIHUxNiwgdTgpCitURVNUXzFfU0hJRlQgKHZzaHJuX24sIHVpbnQxNng4 X3QsIHVpbnQxNng0X3QsIHVpbnQzMng0X3QsIHUzMiwgdTE2KQorVEVTVF8xX1NISUZUICh2c2hy bl9uLCB1aW50MzJ4NF90LCB1aW50MzJ4Ml90LCB1aW50NjR4Ml90LCB1NjQsIHUzMikKKworVEVT VF8xX1NISUZUICh2cnNocm5fbiwgaW50OHgxNl90LCBpbnQ4eDhfdCwgaW50MTZ4OF90LCBzMTYs IHM4KQorVEVTVF8xX1NISUZUICh2cnNocm5fbiwgaW50MTZ4OF90LCBpbnQxNng0X3QsIGludDMy eDRfdCwgczMyLCBzMTYpCitURVNUXzFfU0hJRlQgKHZyc2hybl9uLCBpbnQzMng0X3QsIGludDMy eDJfdCwgaW50NjR4Ml90LCBzNjQsIHMzMikKK1RFU1RfMV9TSElGVCAodnJzaHJuX24sIHVpbnQ4 eDE2X3QsIHVpbnQ4eDhfdCwgdWludDE2eDhfdCwgdTE2LCB1OCkKK1RFU1RfMV9TSElGVCAodnJz aHJuX24sIHVpbnQxNng4X3QsIHVpbnQxNng0X3QsIHVpbnQzMng0X3QsIHUzMiwgdTE2KQorVEVT VF8xX1NISUZUICh2cnNocm5fbiwgdWludDMyeDRfdCwgdWludDMyeDJfdCwgdWludDY0eDJfdCwg dTY0LCB1MzIpCisKK1RFU1RfMV9TSElGVCAodnFzaHJuX24sIGludDh4MTZfdCwgaW50OHg4X3Qs IGludDE2eDhfdCwgczE2LCBzOCkKK1RFU1RfMV9TSElGVCAodnFzaHJuX24sIGludDE2eDhfdCwg aW50MTZ4NF90LCBpbnQzMng0X3QsIHMzMiwgczE2KQorVEVTVF8xX1NISUZUICh2cXNocm5fbiwg aW50MzJ4NF90LCBpbnQzMngyX3QsIGludDY0eDJfdCwgczY0LCBzMzIpCitURVNUXzFfU0hJRlQg KHZxc2hybl9uLCB1aW50OHgxNl90LCB1aW50OHg4X3QsIHVpbnQxNng4X3QsIHUxNiwgdTgpCitU RVNUXzFfU0hJRlQgKHZxc2hybl9uLCB1aW50MTZ4OF90LCB1aW50MTZ4NF90LCB1aW50MzJ4NF90 LCB1MzIsIHUxNikKK1RFU1RfMV9TSElGVCAodnFzaHJuX24sIHVpbnQzMng0X3QsIHVpbnQzMngy X3QsIHVpbnQ2NHgyX3QsIHU2NCwgdTMyKQorCitURVNUXzFfU0hJRlQgKHZxcnNocm5fbiwgaW50 OHgxNl90LCBpbnQ4eDhfdCwgaW50MTZ4OF90LCBzMTYsIHM4KQorVEVTVF8xX1NISUZUICh2cXJz aHJuX24sIGludDE2eDhfdCwgaW50MTZ4NF90LCBpbnQzMng0X3QsIHMzMiwgczE2KQorVEVTVF8x X1NISUZUICh2cXJzaHJuX24sIGludDMyeDRfdCwgaW50MzJ4Ml90LCBpbnQ2NHgyX3QsIHM2NCwg czMyKQorVEVTVF8xX1NISUZUICh2cXJzaHJuX24sIHVpbnQ4eDE2X3QsIHVpbnQ4eDhfdCwgdWlu dDE2eDhfdCwgdTE2LCB1OCkKK1RFU1RfMV9TSElGVCAodnFyc2hybl9uLCB1aW50MTZ4OF90LCB1 aW50MTZ4NF90LCB1aW50MzJ4NF90LCB1MzIsIHUxNikKK1RFU1RfMV9TSElGVCAodnFyc2hybl9u LCB1aW50MzJ4NF90LCB1aW50MzJ4Ml90LCB1aW50NjR4Ml90LCB1NjQsIHUzMikKKworVEVTVF8x X1NISUZUICh2cXNocnVuX24sIHVpbnQ4eDE2X3QsIHVpbnQ4eDhfdCwgaW50MTZ4OF90LCBzMTYs IHU4KQorVEVTVF8xX1NISUZUICh2cXNocnVuX24sIHVpbnQxNng4X3QsIHVpbnQxNng0X3QsIGlu dDMyeDRfdCwgczMyLCB1MTYpCitURVNUXzFfU0hJRlQgKHZxc2hydW5fbiwgdWludDMyeDRfdCwg dWludDMyeDJfdCwgaW50NjR4Ml90LCBzNjQsIHUzMikKKworVEVTVF8xX1NISUZUICh2cXJzaHJ1 bl9uLCB1aW50OHgxNl90LCB1aW50OHg4X3QsIGludDE2eDhfdCwgczE2LCB1OCkKK1RFU1RfMV9T SElGVCAodnFyc2hydW5fbiwgdWludDE2eDhfdCwgdWludDE2eDRfdCwgaW50MzJ4NF90LCBzMzIs IHUxNikKK1RFU1RfMV9TSElGVCAodnFyc2hydW5fbiwgdWludDMyeDRfdCwgdWludDMyeDJfdCwg aW50NjR4Ml90LCBzNjQsIHUzMikKKworI2RlZmluZSBURVNUXzJfU0hJRlQobmFtZSwgcmV0dHlw ZSwgaW50eXBlLCBmcywgcnMpIFwKKyAgcmV0dHlwZSB0ZXN0XzJfICMjIG5hbWUgIyMgXyAjIyBm cyAjIyBfaGlnaF9jb21iaW5lIFwKKwkJKGludHlwZSBhLCBpbnR5cGUgYikgXAorCXsgXAorCQly ZXR1cm4gdmNvbWJpbmVfICMjIHJzIChuYW1lICMjIF8gIyMgZnMgKGEsIDQpLCBcCisJCQkJCW5h bWUgIyMgXyAjIyBmcyAoYiwgNCkpOyBcCisJfQorCitURVNUXzJfU0hJRlQgKHZzaHJuX24sIGlu dDh4MTZfdCwgaW50MTZ4OF90LCBzMTYsIHM4KQorVEVTVF8yX1NISUZUICh2c2hybl9uLCBpbnQx Nng4X3QsIGludDMyeDRfdCwgczMyLCBzMTYpCitURVNUXzJfU0hJRlQgKHZzaHJuX24sIGludDMy eDRfdCwgaW50NjR4Ml90LCBzNjQsIHMzMikKK1RFU1RfMl9TSElGVCAodnNocm5fbiwgdWludDh4 MTZfdCwgdWludDE2eDhfdCwgdTE2LCB1OCkKK1RFU1RfMl9TSElGVCAodnNocm5fbiwgdWludDE2 eDhfdCwgdWludDMyeDRfdCwgdTMyLCB1MTYpCitURVNUXzJfU0hJRlQgKHZzaHJuX24sIHVpbnQz Mng0X3QsIHVpbnQ2NHgyX3QsIHU2NCwgdTMyKQorCitURVNUXzJfU0hJRlQgKHZyc2hybl9uLCBp bnQ4eDE2X3QsIGludDE2eDhfdCwgczE2LCBzOCkKK1RFU1RfMl9TSElGVCAodnJzaHJuX24sIGlu dDE2eDhfdCwgaW50MzJ4NF90LCBzMzIsIHMxNikKK1RFU1RfMl9TSElGVCAodnJzaHJuX24sIGlu dDMyeDRfdCwgaW50NjR4Ml90LCBzNjQsIHMzMikKK1RFU1RfMl9TSElGVCAodnJzaHJuX24sIHVp bnQ4eDE2X3QsIHVpbnQxNng4X3QsIHUxNiwgdTgpCitURVNUXzJfU0hJRlQgKHZyc2hybl9uLCB1 aW50MTZ4OF90LCB1aW50MzJ4NF90LCB1MzIsIHUxNikKK1RFU1RfMl9TSElGVCAodnJzaHJuX24s IHVpbnQzMng0X3QsIHVpbnQ2NHgyX3QsIHU2NCwgdTMyKQorCitURVNUXzJfU0hJRlQgKHZxc2hy bl9uLCBpbnQ4eDE2X3QsIGludDE2eDhfdCwgczE2LCBzOCkKK1RFU1RfMl9TSElGVCAodnFzaHJu X24sIGludDE2eDhfdCwgaW50MzJ4NF90LCBzMzIsIHMxNikKK1RFU1RfMl9TSElGVCAodnFzaHJu X24sIGludDMyeDRfdCwgaW50NjR4Ml90LCBzNjQsIHMzMikKK1RFU1RfMl9TSElGVCAodnFzaHJu X24sIHVpbnQ4eDE2X3QsIHVpbnQxNng4X3QsIHUxNiwgdTgpCitURVNUXzJfU0hJRlQgKHZxc2hy bl9uLCB1aW50MTZ4OF90LCB1aW50MzJ4NF90LCB1MzIsIHUxNikKK1RFU1RfMl9TSElGVCAodnFz aHJuX24sIHVpbnQzMng0X3QsIHVpbnQ2NHgyX3QsIHU2NCwgdTMyKQorCitURVNUXzJfU0hJRlQg KHZxcnNocm5fbiwgaW50OHgxNl90LCBpbnQxNng4X3QsIHMxNiwgczgpCitURVNUXzJfU0hJRlQg KHZxcnNocm5fbiwgaW50MTZ4OF90LCBpbnQzMng0X3QsIHMzMiwgczE2KQorVEVTVF8yX1NISUZU ICh2cXJzaHJuX24sIGludDMyeDRfdCwgaW50NjR4Ml90LCBzNjQsIHMzMikKK1RFU1RfMl9TSElG VCAodnFyc2hybl9uLCB1aW50OHgxNl90LCB1aW50MTZ4OF90LCB1MTYsIHU4KQorVEVTVF8yX1NI SUZUICh2cXJzaHJuX24sIHVpbnQxNng4X3QsIHVpbnQzMng0X3QsIHUzMiwgdTE2KQorVEVTVF8y X1NISUZUICh2cXJzaHJuX24sIHVpbnQzMng0X3QsIHVpbnQ2NHgyX3QsIHU2NCwgdTMyKQorCitU RVNUXzJfU0hJRlQgKHZxc2hydW5fbiwgdWludDh4MTZfdCwgaW50MTZ4OF90LCBzMTYsIHU4KQor VEVTVF8yX1NISUZUICh2cXNocnVuX24sIHVpbnQxNng4X3QsIGludDMyeDRfdCwgczMyLCB1MTYp CitURVNUXzJfU0hJRlQgKHZxc2hydW5fbiwgdWludDMyeDRfdCwgaW50NjR4Ml90LCBzNjQsIHUz MikKKworVEVTVF8yX1NISUZUICh2cXJzaHJ1bl9uLCB1aW50OHgxNl90LCBpbnQxNng4X3QsIHMx NiwgdTgpCitURVNUXzJfU0hJRlQgKHZxcnNocnVuX24sIHVpbnQxNng4X3QsIGludDMyeDRfdCwg czMyLCB1MTYpCitURVNUXzJfU0hJRlQgKHZxcnNocnVuX24sIHVpbnQzMng0X3QsIGludDY0eDJf dCwgczY0LCB1MzIpCisKKyNkZWZpbmUgVEVTVF8xX1VOQVJZKG5hbWUsIHJldHR5cGUsIHJtd3R5 cGUsIGludHlwZSwgZnMsIHJzKSBcCisgIHJldHR5cGUgdGVzdF8xXyAjIyBuYW1lICMjIF8gIyMg ZnMgIyMgX2hpZ2hfY29tYmluZSBcCiAJCShybXd0eXBlIGEsIGludHlwZSBiKSBcCiAJeyBcCiAJ CXJldHVybiB2Y29tYmluZV8gIyMgcnMgKGEsIG5hbWUgIyMgXyAjIyBmcyAoYikpOyBcCiAJfQog Ci1URVNUX1VOQVJZICh2bW92biwgaW50OHgxNl90LCBpbnQ4eDhfdCwgaW50MTZ4OF90LCBzMTYs IHM4KQotVEVTVF9VTkFSWSAodm1vdm4sIGludDE2eDhfdCwgaW50MTZ4NF90LCBpbnQzMng0X3Qs IHMzMiwgczE2KQotVEVTVF9VTkFSWSAodm1vdm4sIGludDMyeDRfdCwgaW50MzJ4Ml90LCBpbnQ2 NHgyX3QsIHM2NCwgczMyKQotVEVTVF9VTkFSWSAodm1vdm4sIHVpbnQ4eDE2X3QsIHVpbnQ4eDhf dCwgdWludDE2eDhfdCwgdTE2LCB1OCkKLVRFU1RfVU5BUlkgKHZtb3ZuLCB1aW50MTZ4OF90LCB1 aW50MTZ4NF90LCB1aW50MzJ4NF90LCB1MzIsIHUxNikKLVRFU1RfVU5BUlkgKHZtb3ZuLCB1aW50 MzJ4NF90LCB1aW50MzJ4Ml90LCB1aW50NjR4Ml90LCB1NjQsIHUzMikKLQotVEVTVF9VTkFSWSAo dnFtb3ZuLCBpbnQ4eDE2X3QsIGludDh4OF90LCBpbnQxNng4X3QsIHMxNiwgczgpCi1URVNUX1VO QVJZICh2cW1vdm4sIGludDE2eDhfdCwgaW50MTZ4NF90LCBpbnQzMng0X3QsIHMzMiwgczE2KQot VEVTVF9VTkFSWSAodnFtb3ZuLCBpbnQzMng0X3QsIGludDMyeDJfdCwgaW50NjR4Ml90LCBzNjQs IHMzMikKLVRFU1RfVU5BUlkgKHZxbW92biwgdWludDh4MTZfdCwgdWludDh4OF90LCB1aW50MTZ4 OF90LCB1MTYsIHU4KQotVEVTVF9VTkFSWSAodnFtb3ZuLCB1aW50MTZ4OF90LCB1aW50MTZ4NF90 LCB1aW50MzJ4NF90LCB1MzIsIHUxNikKLVRFU1RfVU5BUlkgKHZxbW92biwgdWludDMyeDRfdCwg dWludDMyeDJfdCwgdWludDY0eDJfdCwgdTY0LCB1MzIpCi0KLVRFU1RfVU5BUlkgKHZxbW92dW4s IHVpbnQ4eDE2X3QsIHVpbnQ4eDhfdCwgaW50MTZ4OF90LCBzMTYsIHU4KQotVEVTVF9VTkFSWSAo dnFtb3Z1biwgdWludDE2eDhfdCwgdWludDE2eDRfdCwgaW50MzJ4NF90LCBzMzIsIHUxNikKLVRF U1RfVU5BUlkgKHZxbW92dW4sIHVpbnQzMng0X3QsIHVpbnQzMngyX3QsIGludDY0eDJfdCwgczY0 LCB1MzIpCi0KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXFx0YWRkaG4y XFx0diIgNn0gfSAgKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXFx0 c3ViaG4yXFx0diIgNn0gfSAgKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyAiXFx0cnN1YmhuMlxcdHYiIDZ9IH0gICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgIlxcdHJhZGRobjJcXHR2IiA2fSB9ICAqLwotLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzICJcXHRyc2hybjJcXHR2IiA2fSB9ICAqLwotLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJcXHRzaHJuMlxcdHYiIDZ9IH0gICovCi0vKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlxcdHNxc2hydW4yXFx0diIgM30gfSAgKi8KLS8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXFx0c3Fyc2hydW4yXFx0diIgM30g fSAgKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXFx0c3FzaHJuMlxc dHYiIDN9IH0gICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlxcdHVx c2hybjJcXHR2IiAzfSB9ICAqLwotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz ICJcXHRzcXJzaHJuMlxcdHYiIDN9IH0gICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgIlxcdHVxcnNocm4yXFx0diIgM30gfSAgKi8KLS8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyAiXFx0eHRuMlxcdHYiIDZ9IH0gICovCi0vKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMgIlxcdHVxeHRuMlxcdHYiIDN9IH0gICovCi0vKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlxcdHNxeHRuMlxcdHYiIDN9IH0gICovCi0vKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlxcdHNxeHR1bjJcXHR2IiAzfSB9ICAq LworVEVTVF8xX1VOQVJZICh2bW92biwgaW50OHgxNl90LCBpbnQ4eDhfdCwgaW50MTZ4OF90LCBz MTYsIHM4KQorVEVTVF8xX1VOQVJZICh2bW92biwgaW50MTZ4OF90LCBpbnQxNng0X3QsIGludDMy eDRfdCwgczMyLCBzMTYpCitURVNUXzFfVU5BUlkgKHZtb3ZuLCBpbnQzMng0X3QsIGludDMyeDJf dCwgaW50NjR4Ml90LCBzNjQsIHMzMikKK1RFU1RfMV9VTkFSWSAodm1vdm4sIHVpbnQ4eDE2X3Qs IHVpbnQ4eDhfdCwgdWludDE2eDhfdCwgdTE2LCB1OCkKK1RFU1RfMV9VTkFSWSAodm1vdm4sIHVp bnQxNng4X3QsIHVpbnQxNng0X3QsIHVpbnQzMng0X3QsIHUzMiwgdTE2KQorVEVTVF8xX1VOQVJZ ICh2bW92biwgdWludDMyeDRfdCwgdWludDMyeDJfdCwgdWludDY0eDJfdCwgdTY0LCB1MzIpCisK K1RFU1RfMV9VTkFSWSAodnFtb3ZuLCBpbnQ4eDE2X3QsIGludDh4OF90LCBpbnQxNng4X3QsIHMx NiwgczgpCitURVNUXzFfVU5BUlkgKHZxbW92biwgaW50MTZ4OF90LCBpbnQxNng0X3QsIGludDMy eDRfdCwgczMyLCBzMTYpCitURVNUXzFfVU5BUlkgKHZxbW92biwgaW50MzJ4NF90LCBpbnQzMngy X3QsIGludDY0eDJfdCwgczY0LCBzMzIpCitURVNUXzFfVU5BUlkgKHZxbW92biwgdWludDh4MTZf dCwgdWludDh4OF90LCB1aW50MTZ4OF90LCB1MTYsIHU4KQorVEVTVF8xX1VOQVJZICh2cW1vdm4s IHVpbnQxNng4X3QsIHVpbnQxNng0X3QsIHVpbnQzMng0X3QsIHUzMiwgdTE2KQorVEVTVF8xX1VO QVJZICh2cW1vdm4sIHVpbnQzMng0X3QsIHVpbnQzMngyX3QsIHVpbnQ2NHgyX3QsIHU2NCwgdTMy KQorCitURVNUXzFfVU5BUlkgKHZxbW92dW4sIHVpbnQ4eDE2X3QsIHVpbnQ4eDhfdCwgaW50MTZ4 OF90LCBzMTYsIHU4KQorVEVTVF8xX1VOQVJZICh2cW1vdnVuLCB1aW50MTZ4OF90LCB1aW50MTZ4 NF90LCBpbnQzMng0X3QsIHMzMiwgdTE2KQorVEVTVF8xX1VOQVJZICh2cW1vdnVuLCB1aW50MzJ4 NF90LCB1aW50MzJ4Ml90LCBpbnQ2NHgyX3QsIHM2NCwgdTMyKQorCisjZGVmaW5lIFRFU1RfMl9V TkFSWShuYW1lLCByZXR0eXBlLCBpbnR5cGUsIGZzLCBycykgXAorICByZXR0eXBlIHRlc3RfMl8g IyMgbmFtZSAjIyBfICMjIGZzICMjIF9oaWdoX2NvbWJpbmUgXAorCQkoaW50eXBlIGEsIGludHlw ZSBiKSBcCisJeyBcCisJCXJldHVybiB2Y29tYmluZV8gIyMgcnMgKG5hbWUgIyMgXyAjIyBmcyAo YSksIFwKKwkJCQkJbmFtZSAjIyBfICMjIGZzIChiKSk7IFwKKwl9CisKK1RFU1RfMl9VTkFSWSAo dm1vdm4sIGludDh4MTZfdCwgaW50MTZ4OF90LCBzMTYsIHM4KQorVEVTVF8yX1VOQVJZICh2bW92 biwgaW50MTZ4OF90LCBpbnQzMng0X3QsIHMzMiwgczE2KQorVEVTVF8yX1VOQVJZICh2bW92biwg aW50MzJ4NF90LCBpbnQ2NHgyX3QsIHM2NCwgczMyKQorVEVTVF8yX1VOQVJZICh2bW92biwgdWlu dDh4MTZfdCwgdWludDE2eDhfdCwgdTE2LCB1OCkKK1RFU1RfMl9VTkFSWSAodm1vdm4sIHVpbnQx Nng4X3QsIHVpbnQzMng0X3QsIHUzMiwgdTE2KQorVEVTVF8yX1VOQVJZICh2bW92biwgdWludDMy eDRfdCwgdWludDY0eDJfdCwgdTY0LCB1MzIpCisKK1RFU1RfMl9VTkFSWSAodnFtb3ZuLCBpbnQ4 eDE2X3QsIGludDE2eDhfdCwgczE2LCBzOCkKK1RFU1RfMl9VTkFSWSAodnFtb3ZuLCBpbnQxNng4 X3QsIGludDMyeDRfdCwgczMyLCBzMTYpCitURVNUXzJfVU5BUlkgKHZxbW92biwgaW50MzJ4NF90 LCBpbnQ2NHgyX3QsIHM2NCwgczMyKQorVEVTVF8yX1VOQVJZICh2cW1vdm4sIHVpbnQ4eDE2X3Qs IHVpbnQxNng4X3QsIHUxNiwgdTgpCitURVNUXzJfVU5BUlkgKHZxbW92biwgdWludDE2eDhfdCwg dWludDMyeDRfdCwgdTMyLCB1MTYpCitURVNUXzJfVU5BUlkgKHZxbW92biwgdWludDMyeDRfdCwg dWludDY0eDJfdCwgdTY0LCB1MzIpCisKK1RFU1RfMl9VTkFSWSAodnFtb3Z1biwgdWludDh4MTZf dCwgaW50MTZ4OF90LCBzMTYsIHU4KQorVEVTVF8yX1VOQVJZICh2cW1vdnVuLCB1aW50MTZ4OF90 LCBpbnQzMng0X3QsIHMzMiwgdTE2KQorVEVTVF8yX1VOQVJZICh2cW1vdnVuLCB1aW50MzJ4NF90 LCBpbnQ2NHgyX3QsIHM2NCwgdTMyKQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMgIlxcdGFkZGhuMlxcdHYiIDEyfSB9ICAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzICJcXHRzdWJobjJcXHR2IiAxMn0gfSAgKi8KKy8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlci10aW1lcyAiXFx0cnN1YmhuMlxcdHYiIDEyfSB9ICAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJcXHRyYWRkaG4yXFx0diIgMTJ9IH0gICovCisv KiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlxcdHJzaHJuMlxcdHYiIDEyfSB9 ICAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJcXHRzaHJuMlxcdHYi IDEyfSB9ICAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJcXHRzcXNo cnVuMlxcdHYiIDZ9IH0gICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg IlxcdHNxcnNocnVuMlxcdHYiIDZ9IH0gICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItdGltZXMgIlxcdHNxc2hybjJcXHR2IiA2fSB9ICAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzICJcXHR1cXNocm4yXFx0diIgNn0gfSAgKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXFx0c3Fyc2hybjJcXHR2IiA2fSB9ICAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJcXHR1cXJzaHJuMlxcdHYiIDZ9IH0gICov CisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgIlxcdHh0bjJcXHR2IiAxMn0g fSAgKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXFx0dXF4dG4yXFx0 diIgNn0gfSAgKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiXFx0c3F4 dG4yXFx0diIgNn0gfSAgKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAi XFx0c3F4dHVuMlxcdHYiIDZ9IH0gICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9zaW1kL3ZtdWx4X2xhbmVxX2Y2NF8xLmMgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYWFyY2g2NC9zaW1kL3ZtdWx4X2xhbmVxX2Y2NF8xLmMKaW5kZXggZGI3OWQ1MzU1 YmM5MjUwOTg1NTU3ODhjMGRkMDljOTkwMjk1NzZjNy4uOWVmMDAxZWIzYmFkNDBlYTA5MDA4ZDFk NzliMjIxMWZmODFmOTExYSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvc2ltZC92bXVseF9sYW5lcV9mNjRfMS5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hYXJjaDY0L3NpbWQvdm11bHhfbGFuZXFfZjY0XzEuYwpAQCAtNzIsNSArNzIsNSBAQCBt YWluICh2b2lkKQogICBzZXRfYW5kX3Rlc3RfY2FzZTMgKCk7CiAgIHJldHVybiAwOwogfQotLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJmbXVseFxbIFx0XF0rXFtkRFxdXFsw LTlcXSssID9cW2REXF1cWzAtOVxdKywgP1xbdlZcXVxbMC05XF0rXC5cW2REXF1cXFxbMFxcXF1c biIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZm11bHhc WyBcdFxdK1xbZERcXVxbMC05XF0rLCA/XFtkRFxdXFswLTlcXSssID9cW2REXF1cWzAtOVxdXG4i IDEgfSB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgImZtdWx4XFsg XHRcXStcW2REXF1cWzAtOVxdKywgP1xbZERcXVxbMC05XF0rLCA/XFt2VlxdXFswLTlcXStcLlxb ZERcXVxcXFsxXFxcXVxuIiAxIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvc2ltZC92bXVseGRfbGFuZXFfZjY0XzEuYyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hYXJjaDY0L3NpbWQvdm11bHhkX2xhbmVxX2Y2NF8xLmMKaW5kZXggM2Y4MzAz YzU3NGZmNDA5NjdjNWI5Y2U1YTE1MmQ3MGM0YTExYTlkYy4uMjMyYWRlOTEwNDcyYmYyZWEzYWEx ODJmNDIxNmY1NWM4NDAzYjQ1YiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FhcmNoNjQvc2ltZC92bXVseGRfbGFuZXFfZjY0XzEuYworKysgYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYWFyY2g2NC9zaW1kL3ZtdWx4ZF9sYW5lcV9mNjRfMS5jCkBAIC01OCw1ICs1OCw1 IEBAIG1haW4gKHZvaWQpCiAgIHNldF9hbmRfdGVzdF9jYXNlMyAoKTsKICAgcmV0dXJuIDA7CiB9 Ci0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgImZtdWx4XFsgXHRcXStcW2RE XF1cWzAtOVxdKywgP1xbZERcXVxbMC05XF0rLCA/XFt2VlxdXFswLTlcXStcLlxbZERcXVxcXFsw XFxcXVxuIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJm bXVseFxbIFx0XF0rXFtkRFxdXFswLTlcXSssID9cW2REXF1cWzAtOVxdKywgP1xbZERcXVxbMC05 XF1cbiIgMSB9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAiZm11 bHhcWyBcdFxdK1xbZERcXVxbMC05XF0rLCA/XFtkRFxdXFswLTlcXSssID9cW3ZWXF1cWzAtOVxd K1wuXFtkRFxdXFxcWzFcXFxdXG4iIDEgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYWFyY2g2NC9zaW1kL3ZtdWx4c19sYW5lX2YzMl8xLmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaW1kL3ZtdWx4c19sYW5lX2YzMl8xLmMKaW5kZXggMTI0 ZGNkOGM0ZWMxODdiMzhmZmIwMzYwNmZhZDQxMjFkOTI4MDQ1MS4uMzdhYTBlYzI3MGMyOWQ5OTg5 NzNlZjM3YWNkNGQwNjQ3MGNhZjFmMSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FhcmNoNjQvc2ltZC92bXVseHNfbGFuZV9mMzJfMS5jCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hYXJjaDY0L3NpbWQvdm11bHhzX2xhbmVfZjMyXzEuYwpAQCAtNTcsNSArNTcs NSBAQCBtYWluICh2b2lkKQogICBzZXRfYW5kX3Rlc3RfY2FzZTMgKCk7CiAgIHJldHVybiAwOwog fQotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJmbXVseFxbIFx0XF0rXFtz U1xdXFswLTlcXSssID9cW3NTXF1cWzAtOVxdKywgP1xbdlZcXVxbMC05XF0rXC5cW3NTXF1cXFxb MFxcXF1cbiIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAi Zm11bHhcWyBcdFxdK1xbc1NcXVxbMC05XF0rLCA/XFtzU1xdXFswLTlcXSssID9cW3NTXF1cWzAt OVxdXG4iIDEgfSB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgImZt dWx4XFsgXHRcXStcW3NTXF1cWzAtOVxdKywgP1xbc1NcXVxbMC05XF0rLCA/XFt2VlxdXFswLTlc XStcLlxbc1NcXVxcXFsxXFxcXVxuIiAxIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0 ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc2ltZC92bXVseHNfbGFuZXFfZjMyXzEuYyBiL2djYy90ZXN0 c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3NpbWQvdm11bHhzX2xhbmVxX2YzMl8xLmMKaW5kZXgg MjU1ZjA5Njg4MjJmZmVlN2YzNDI5YzU5OTdiMDJlM2ZjZmNhNjhmMy4uYzlmMjQ4NDk3NWE2NmFm ZDdkNjllN2ZjMWQ5ZWEwMjNhNjU1YTRkNiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvc2ltZC92bXVseHNfbGFuZXFfZjMyXzEuYworKysgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaW1kL3ZtdWx4c19sYW5lcV9mMzJfMS5jCkBAIC03OSw3 ICs3OSw3IEBAIG1haW4gKHZvaWQpCiAgIHNldF9hbmRfdGVzdF9jYXNlMyAoKTsKICAgcmV0dXJu IDA7CiB9Ci0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgImZtdWx4XFsgXHRc XStcW3NTXF1cWzAtOVxdKywgP1xbc1NcXVxbMC05XF0rLCA/XFt2VlxdXFswLTlcXStcLlxbc1Nc XVxcXFswXFxcXVxuIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzICJmbXVseFxbIFx0XF0rXFtzU1xdXFswLTlcXSssID9cW3NTXF1cWzAtOVxdKywgP1xbc1Nc XVxbMC05XF1cbiIgMSB9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyAiZm11bHhcWyBcdFxdK1xbc1NcXVxbMC05XF0rLCA/XFtzU1xdXFswLTlcXSssID9cW3ZWXF1c WzAtOVxdK1wuXFtzU1xdXFxcWzFcXFxdXG4iIDEgfSB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMgImZtdWx4XFsgXHRcXStcW3NTXF1cWzAtOVxdKywgP1xbc1NcXVxb MC05XF0rLCA/XFt2VlxdXFswLTlcXStcLlxbc1NcXVxcXFsyXFxcXVxuIiAxIH0gfSAqLwogLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJmbXVseFxbIFx0XF0rXFtzU1xdXFsw LTlcXSssID9cW3NTXF1cWzAtOVxdKywgP1xbdlZcXVxbMC05XF0rXC5cW3NTXF1cXFxbM1xcXF1c biIgMSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0 L3NpbWQvdnFkbWxhbGhfbGFuZV9zMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJj aDY0L3NpbWQvdnFkbWxhbGhfbGFuZV9zMTYuYwppbmRleCAyMWFlNzI0Y2YwZWRlMjM3OGNjMjFh MmIxNTFlOTQ4ZGRiMTk4MTM3Li42Yjk2ZDFjYmYwZmEwZGU3Yzc5ODExYWJjY2UyNTk5MDg2NzU0 OWFiIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaW1kL3Zx ZG1sYWxoX2xhbmVfczE2LmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQv c2ltZC92cWRtbGFsaF9sYW5lX3MxNi5jCkBAIC0xMSw0ICsxMSw0IEBAIHRfdnFkbWxhbGhfbGFu ZV9zMTYgKGludDMyX3QgYSwgaW50MTZfdCBiLCBpbnQxNng0X3QgYykKICAgcmV0dXJuIHZxZG1s YWxoX2xhbmVfczE2IChhLCBiLCBjLCAwKTsKIH0KIAotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzICJzcWRtbGFsXFsgXHRcXStcW3NTXF1cWzAtOVxdKywgP1xbaEhcXVxbMC05 XF0rLCA/XFt2VlxdXFswLTlcXStcLlxbaEhcXVxcXFswXFxcXVxuIiAxIH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzcWRtbGFsXFsgXHRcXStcW3NTXF1cWzAt OVxdKywgP1xbaEhcXVxbMC05XF0rLCA/XFtoSFxdXFswLTlcXVxuIiAxIH0gfSAqLwpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc2ltZC92cWRtbGFsc19sYW5l X3MzMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc2ltZC92cWRtbGFsc19s YW5lX3MzMi5jCmluZGV4IDc5ZGI3YjczZGUwNzAwMGM0YTA1NDZjMmFmYTVlM2IyNzU4NGViZTku LmE3ODBkZGJlMmY5MGEwNzUwNDk3NDQ4ZWQwNWYwYmU2MWJkMTczYzAgMTAwNjQ0Ci0tLSBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3NpbWQvdnFkbWxhbHNfbGFuZV9zMzIuYwor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaW1kL3ZxZG1sYWxzX2xhbmVf czMyLmMKQEAgLTExLDQgKzExLDQgQEAgdF92cWRtbGFsc19sYW5lX3MzMiAoaW50NjRfdCBhLCBp bnQzMl90IGIsIGludDMyeDJfdCBjKQogICByZXR1cm4gdnFkbWxhbHNfbGFuZV9zMzIgKGEsIGIs IGMsIDApOwogfQogCi0vKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMgInNxZG1s YWxcWyBcdFxdK1xbZERcXVxbMC05XF0rLCA/XFtzU1xdXFswLTlcXSssID9cW3ZWXF1cWzAtOVxd K1wuXFtzU1xdXFxcWzBcXFxdXG4iIDEgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3Nl bWJsZXItdGltZXMgInNxZG1sYWxcWyBcdFxdK1xbZERcXVxbMC05XF0rLCA/XFtzU1xdXFswLTlc XSssID9cW3NTXF1cWzAtOVxdXG4iIDEgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYWFyY2g2NC9zaW1kL3ZxZG1sc2xoX2xhbmVfczE2LmMgYi9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaW1kL3ZxZG1sc2xoX2xhbmVfczE2LmMKaW5kZXggMTg1 NTA3YjkzNjI1MjdiODQyZDZmMGYwNzkzNGUxOWY3N2U2MWM5Ny4uOGJiYWMxYTNjNTlmNjA4NDRm Yjc1YWVlYzU3YWRmMWI4YjgzMGQyYSAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FhcmNoNjQvc2ltZC92cWRtbHNsaF9sYW5lX3MxNi5jCisrKyBiL2djYy90ZXN0c3VpdGUv Z2NjLnRhcmdldC9hYXJjaDY0L3NpbWQvdnFkbWxzbGhfbGFuZV9zMTYuYwpAQCAtMTEsNCArMTEs NCBAQCB0X3ZxZG1sc2xoX2xhbmVfczE2IChpbnQzMl90IGEsIGludDE2X3QgYiwgaW50MTZ4NF90 IGMpCiAgIHJldHVybiB2cWRtbHNsaF9sYW5lX3MxNiAoYSwgYiwgYywgMCk7CiB9CiAKLS8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAic3FkbWxzbFxbIFx0XF0rXFtzU1xdXFsw LTlcXSssID9cW2hIXF1cWzAtOVxdKywgP1xbdlZcXVxbMC05XF0rXC5cW2hIXF1cXFxbMFxcXF1c biIgMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyAic3FkbWxz bFxbIFx0XF0rXFtzU1xdXFswLTlcXSssID9cW2hIXF1cWzAtOVxdKywgP1xbaEhcXVxbMC05XF1c biIgMSB9IH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0 L3NpbWQvdnFkbWxzbHNfbGFuZV9zMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJj aDY0L3NpbWQvdnFkbWxzbHNfbGFuZV9zMzIuYwppbmRleCBmNjkyOTIzODUwZTk1OTk0NmM3MTEz YjViNjBiY2VmMDUyOTM4Yjc1Li4wNjliYTkxOGQ1YmJhZTIwYmRhNWZhNmIzYzIzZTQxZGQ4MDY4 YjQwIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaW1kL3Zx ZG1sc2xzX2xhbmVfczMyLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQv c2ltZC92cWRtbHNsc19sYW5lX3MzMi5jCkBAIC0xMSw0ICsxMSw0IEBAIHRfdnFkbWxzbHNfbGFu ZV9zMzIgKGludDY0X3QgYSwgaW50MzJfdCBiLCBpbnQzMngyX3QgYykKICAgcmV0dXJuIHZxZG1s c2xzX2xhbmVfczMyIChhLCBiLCBjLCAwKTsKIH0KIAotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzICJzcWRtbHNsXFsgXHRcXStcW2REXF1cWzAtOVxdKywgP1xbc1NcXVxbMC05 XF0rLCA/XFt2VlxdXFswLTlcXStcLlxbc1NcXVxcXFswXFxcXVxuIiAxIH0gfSAqLworLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzcWRtbHNsXFsgXHRcXStcW2REXF1cWzAt OVxdKywgP1xbc1NcXVxbMC05XF0rLCA/XFtzU1xdXFswLTlcXVxuIiAxIH0gfSAqLwpkaWZmIC0t Z2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc2ltZC92cWRtdWxsaF9sYW5l X3MxNi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc2ltZC92cWRtdWxsaF9s YW5lX3MxNi5jCmluZGV4IGRlYmYxOTFhYmM3MTQyOWNiMjZlMTQ3OGNhODM3Y2M3NzM0NzYwZDIu LmZjZDQ5NmIxYWFhNzczMjA0MDUzYmVjNmEwZDNiNzY0YTcxZmNmNjMgMTAwNjQ0Ci0tLSBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3NpbWQvdnFkbXVsbGhfbGFuZV9zMTYuYwor KysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaW1kL3ZxZG11bGxoX2xhbmVf czE2LmMKQEAgLTExLDQgKzExLDQgQEAgdF92cWRtdWxsaF9sYW5lX3MxNiAoaW50MTZfdCBhLCBp bnQxNng0X3QgYikKICAgcmV0dXJuIHZxZG11bGxoX2xhbmVfczE2IChhLCBiLCAwKTsKIH0KIAot LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzcWRtdWxsXFsgXHRcXStcW3NT XF1cWzAtOVxdKywgP1xbaEhcXVxbMC05XF0rLCA/XFt2VlxdXFswLTlcXStcLlxbaEhcXVxcXFsw XFxcXVxuIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJz cWRtdWxsXFsgXHRcXStcW3NTXF1cWzAtOVxdKywgP1xbaEhcXVxbMC05XF0rLCA/XFtoSFxdXFsw LTlcXVxuIiAxIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvc2ltZC92cWRtdWxsaF9sYW5lcV9zMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9hYXJjaDY0L3NpbWQvdnFkbXVsbGhfbGFuZXFfczE2LmMKaW5kZXggZTgxMGM0NzEzYmNjNjZm M2U4YWEwNGNiYTkzMDQzMjVkN2U2MmEyNS4uZGI3N2ZmZjI3ZjNlYzQ4MzhmOWUyZDA2ZjBkOWNl ZGU0OTVkZWRhYyAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQv c2ltZC92cWRtdWxsaF9sYW5lcV9zMTYuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv YWFyY2g2NC9zaW1kL3ZxZG11bGxoX2xhbmVxX3MxNi5jCkBAIC0xMSw0ICsxMSw0IEBAIHRfdnFk bXVsbGhfbGFuZXFfczE2IChpbnQxNl90IGEsIGludDE2eDhfdCBiKQogICByZXR1cm4gdnFkbXVs bGhfbGFuZXFfczE2IChhLCBiLCAwKTsKIH0KIAotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLXRpbWVzICJzcWRtdWxsXFsgXHRcXStcW3NTXF1cWzAtOVxdKywgP1xbaEhcXVxbMC05XF0r LCA/XFt2VlxdXFswLTlcXStcLlxbaEhcXVxcXFswXFxcXVxuIiAxIH0gfSAqLworLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzcWRtdWxsXFsgXHRcXStcW3NTXF1cWzAtOVxd KywgP1xbaEhcXVxbMC05XF0rLCA/XFtoSFxdXFswLTlcXVxuIiAxIH0gfSAqLwpkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc2ltZC92cWRtdWxsc19sYW5lX3Mz Mi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc2ltZC92cWRtdWxsc19sYW5l X3MzMi5jCmluZGV4IGE1ZmU2MGZiZTE2OTgzYmVmOTdjNjg4OTQ4NzQzYjIwNTIxMDllOTYuLjA0 YmJlN2Y5ZGFmMTliOTNlZjQ4Nzc5NDUyZmYwMzg5OGNjNjJjMTkgMTAwNjQ0Ci0tLSBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3NpbWQvdnFkbXVsbHNfbGFuZV9zMzIuYworKysg Yi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaW1kL3ZxZG11bGxzX2xhbmVfczMy LmMKQEAgLTExLDQgKzExLDQgQEAgdF92cWRtdWxsc19sYW5lX3MzMiAoaW50MzJfdCBhLCBpbnQz MngyX3QgYikKICAgcmV0dXJuIHZxZG11bGxzX2xhbmVfczMyIChhLCBiLCAwKTsKIH0KIAotLyog eyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzcWRtdWxsXFsgXHRcXStcW2REXF1c WzAtOVxdKywgP1xbc1NcXVxbMC05XF0rLCA/XFt2VlxdXFswLTlcXStcLlxbc1NcXVxcXFswXFxc XVxuIiAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzcWRt dWxsXFsgXHRcXStcW2REXF1cWzAtOVxdKywgP1xbc1NcXVxbMC05XF0rLCA/XFtzU1xdXFswLTlc XVxuIiAxIH0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNo NjQvc2ltZC92cWRtdWxsc19sYW5lcV9zMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h YXJjaDY0L3NpbWQvdnFkbXVsbHNfbGFuZXFfczMyLmMKaW5kZXggYmQ4NTZkOGU3MWZiMTIxMGVj ZWM0NmYxMTZjNDc2NDViYmRlZjRlNC4uZThlMjM2ODk0ZmJiN2QwMjk5OTVkY2I3Zjk5MzhjNGYw YzQ1MTFmMiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc2lt ZC92cWRtdWxsc19sYW5lcV9zMzIuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFy Y2g2NC9zaW1kL3ZxZG11bGxzX2xhbmVxX3MzMi5jCkBAIC0xMSw0ICsxMSw0IEBAIHRfdnFkbXVs bHNfbGFuZXFfczMyIChpbnQzMl90IGEsIGludDMyeDRfdCBiKQogICByZXR1cm4gdnFkbXVsbHNf bGFuZXFfczMyIChhLCBiLCAwKTsKIH0KIAotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzICJzcWRtdWxsXFsgXHRcXStcW2REXF1cWzAtOVxdKywgP1xbc1NcXVxbMC05XF0rLCA/ XFt2VlxdXFswLTlcXStcLlxbc1NcXVxcXFswXFxcXVxuIiAxIH0gfSAqLworLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzICJzcWRtdWxsXFsgXHRcXStcW2REXF1cWzAtOVxdKywg P1xbc1NcXVxbMC05XF0rLCA/XFtzU1xdXFswLTlcXVxuIiAxIH0gfSAqLwpkaWZmIC0tZ2l0IGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2R1cF9sYW5lXzEuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9kdXBfbGFuZV8xLmMKaW5kZXggNTMyODQ3 YmI3ZTUwMDk1MjE3OTg4ZmJkNjZlOWM1OGEwMDZmZGZjNy4uMTRjMWY1YWI0YzJkZTg0YmY5MjNl YWU1YWUyNmUxYmRkODFjZDZlZiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FhcmNoNjQvc3ZlL2R1cF9sYW5lXzEuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQv YWFyY2g2NC9zdmUvZHVwX2xhbmVfMS5jCkBAIC01NiwxNSArNTYsMjcgQEAgVEVTVF9BTEwgKERV UF9MQU5FKQogCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdHRibFx0fSB9 IH0gKi8KIAotLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdGR1cFx0elsw LTldK1wuZCwgelswLTldK1wuZFxbMFxdfSAyIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4t YXNzZW1ibGVyLXRpbWVzIHtcdG1vdlx0elswLTldK1wuZCwgZFswLTldfSAyIHsKKwkJdGFyZ2V0 IHsgYWFyY2g2NF9saXR0bGVfZW5kaWFuIH0gfSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci10aW1lcyB7XHRkdXBcdHpbMC05XStcLmQsIHpbMC05XStcLmRcWzBcXX0gMiB7 CisJCXRhcmdldCB7IGFhcmNoNjRfYmlnX2VuZGlhbiB9IH0gfSB9ICovCiAvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0ZHVwXHR6WzAtOV0rXC5kLCB6WzAtOV0rXC5kXFsy XF19IDIgfSB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0ZHVw XHR6WzAtOV0rXC5kLCB6WzAtOV0rXC5kXFszXF19IDIgfSB9ICovCi0vKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItdGltZXMge1x0ZHVwXHR6WzAtOV0rXC5zLCB6WzAtOV0rXC5zXFswXF19 IDIgfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0bW92XHR6 WzAtOV0rXC5zLCBzWzAtOV19IDIgeworCQl0YXJnZXQgeyBhYXJjaDY0X2xpdHRsZV9lbmRpYW4g fSB9IH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdGR1cFx0 elswLTldK1wucywgelswLTldK1wuc1xbMFxdfSAyIHsKKwkJdGFyZ2V0IHsgYWFyY2g2NF9iaWdf ZW5kaWFuIH0gfSB9IH0gKi8KIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 XHRkdXBcdHpbMC05XStcLnMsIHpbMC05XStcLnNcWzVcXX0gMiB9IH0gKi8KIC8qIHsgZGctZmlu YWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHRkdXBcdHpbMC05XStcLnMsIHpbMC05XStcLnNc WzdcXX0gMiB9IH0gKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHRk dXBcdHpbMC05XStcLmgsIHpbMC05XStcLmhcWzBcXX0gMiB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHRtb3ZcdHpbMC05XStcLmgsIGhbMC05XX0gMiB7CisJ CXRhcmdldCB7IGFhcmNoNjRfbGl0dGxlX2VuZGlhbiB9IH0gfSB9ICovCisvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0ZHVwXHR6WzAtOV0rXC5oLCB6WzAtOV0rXC5oXFsw XF19IDIgeworCQl0YXJnZXQgeyBhYXJjaDY0X2JpZ19lbmRpYW4gfSB9IH0gfSAqLwogLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdGR1cFx0elswLTldK1wuaCwgelswLTld K1wuaFxbNlxdfSAyIH0gfSAqLwogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVz IHtcdGR1cFx0elswLTldK1wuaCwgelswLTldK1wuaFxbMTVcXX0gMiB9IH0gKi8KLS8qIHsgZGct ZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHRkdXBcdHpbMC05XStcLmIsIHpbMC05XStc LmJcWzBcXX0gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7 XHRtb3ZcdHpbMC05XStcLmIsIGJbMC05XX0gMSB7CisJCXRhcmdldCB7IGFhcmNoNjRfbGl0dGxl X2VuZGlhbiB9IH0gfSB9ICovCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMg e1x0ZHVwXHR6WzAtOV0rXC5iLCB6WzAtOV0rXC5iXFswXF19IDEgeworCQl0YXJnZXQgeyBhYXJj aDY0X2JpZ19lbmRpYW4gfSB9IH0gfSAqLwogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtcdGR1cFx0elswLTldK1wuYiwgelswLTldK1wuYlxbMTlcXX0gMSB9IH0gKi8KIC8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHRkdXBcdHpbMC05XStcLmIsIHpb MC05XStcLmJcWzMxXF19IDEgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9zdmUvbGl2ZV8xLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFy Y2g2NC9zdmUvbGl2ZV8xLmMKaW5kZXggZThkOTJlYzdlOWY1N2E0ZjJkMWMyZmQ4YjI1OWE0MWQ4 N2ViMDNjMy4uODBlZTE3NmQxODA3YmY2MjhhZDQ3NTUxZDY5ZmY1ZDg0ZGVkYTc5ZSAxMDA2NDQK LS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL2xpdmVfMS5jCisrKyBi L2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9saXZlXzEuYwpAQCAtMzIsMTAg KzMyLDkgQEAgVEVTVF9BTEwgKEVYVFJBQ1RfTEFTVCkKIC8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlci10aW1lcyB7XHR3aGlsZWxvXHRwWzAtN10ucywgfSA0IH0gfSAqLwogLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHdoaWxlbG9cdHBbMC03XS5kLCB9IDQgfSB9 ICovCiAKLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHRsYXN0Ylx0d1sw LTldKywgcFswLTddLCB6WzAtOV0rXC5iXG59IDEgfSB9ICovCi0vKiB7IGRnLWZpbmFsIHsgc2Nh bi1hc3NlbWJsZXItdGltZXMge1x0bGFzdGJcdHdbMC05XSssIHBbMC03XSwgelswLTldK1wuaFxu fSAxIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdGxhc3Ri XHRiWzAtOV0rLCBwWzAtN10sIHpbMC05XStcLmJcbn0gMSB9IH0gKi8KKy8qIHsgZGctZmluYWwg eyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHRsYXN0Ylx0aFswLTldKywgcFswLTddLCB6WzAtOV0r XC5oXG59IDIgfSB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0 bGFzdGJcdHdbMC05XSssIHBbMC03XSwgelswLTldK1wuc1xufSAxIH0gfSAqLwogLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdGxhc3RiXHR4WzAtOV0rLCBwWzAtN10sIHpb MC05XStcLmRcbn0gMSB9IH0gKi8KLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1l cyB7XHRsYXN0Ylx0aFswLTldKywgcFswLTddLCB6WzAtOV0rXC5oXG59IDEgfSB9ICovCiAvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0bGFzdGJcdHNbMC05XSssIHBbMC03 XSwgelswLTldK1wuc1xufSAxIH0gfSAqLwogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LXRpbWVzIHtcdGxhc3RiXHRkWzAtOV0rLCBwWzAtN10sIHpbMC05XStcLmRcbn0gMSB9IH0gKi8K ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mv dmdldHFfbGFuZV9mMTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJp bnNpY3MvdmdldHFfbGFuZV9mMTYuYwppbmRleCAyYTVhYTYzZjQ1NzJhNjY2ZTUwZDc4MjVjODgy MGQ0OWViOWNkNzBlLi5hOTJlMWQ0NzM5M2FjMWU2ZDVkMzlkOTY3Nzg3YzRhODhmMTZkMGY5IDEw MDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3Zn ZXRxX2xhbmVfZjE2LmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50 cmluc2ljcy92Z2V0cV9sYW5lX2YxNi5jCkBAIC04LDcgKzgsNyBAQAogZmxvYXQxNl90CiBmb28g KGZsb2F0MTZ4OF90IGEpCiB7Ci0gIHJldHVybiB2Z2V0cV9sYW5lX2YxNiAoYSwgMCk7CisgIHJl dHVybiB2Z2V0cV9sYW5lX2YxNiAoYSwgMSk7CiB9CiAKIC8qIHsgZGctZmluYWwgeyBzY2FuLWFz c2VtYmxlciAidm1vdi51MTYiICB9ICB9ICovCkBAIC0xNiw3ICsxNiw3IEBAIGZvbyAoZmxvYXQx Nng4X3QgYSkKIGZsb2F0MTZfdAogZm9vMSAoZmxvYXQxNng4X3QgYSkKIHsKLSAgcmV0dXJuIHZn ZXRxX2xhbmUgKGEsIDApOworICByZXR1cm4gdmdldHFfbGFuZSAoYSwgMSk7CiB9CiAKIC8qIHsg ZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidm1vdi51MTYiICB9ICB9ICovCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZnZXRxX2xhbmVf ZjMyLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZnZXRx X2xhbmVfZjMyLmMKaW5kZXggZjE4MzljY2NmZmUxYzM0NDc4ZjIzNzJjZDIwYjQ3NzYxMzU3YjE0 Mi4uOTgzMTllZmY1YzBmNTgyNWVkZDM1NjNiOGZhMDE4YTQzN2ZhMzQ1OCAxMDA2NDQKLS0tIGEv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92Z2V0cV9sYW5lX2Yz Mi5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdmdl dHFfbGFuZV9mMzIuYwpAQCAtOCw3ICs4LDcgQEAKIGZsb2F0MzJfdAogZm9vIChmbG9hdDMyeDRf dCBhKQogewotICByZXR1cm4gdmdldHFfbGFuZV9mMzIgKGEsIDApOworICByZXR1cm4gdmdldHFf bGFuZV9mMzIgKGEsIDEpOwogfQogCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZt b3YuMzIiICB9ICB9ICovCkBAIC0xNiw3ICsxNiw3IEBAIGZvbyAoZmxvYXQzMng0X3QgYSkKIGZs b2F0MzJfdAogZm9vMSAoZmxvYXQzMng0X3QgYSkKIHsKLSAgcmV0dXJuIHZnZXRxX2xhbmUgKGEs IDApOworICByZXR1cm4gdmdldHFfbGFuZSAoYSwgMSk7CiB9CiAKIC8qIHsgZGctZmluYWwgeyBz Y2FuLWFzc2VtYmxlciAidm1vdi4zMiIgIH0gIH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3Vp dGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3MvdmdldHFfbGFuZV9zMTYuYyBiL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3MvdmdldHFfbGFuZV9zMTYuYwpp bmRleCBlZDFjMjE3ODgzOTU2OGRjYzNlZWEzMzQyNjA2YmE4ZWZmNTdlYTcyLi5jOWVlZmViOTk3 MmVhYWM4MTY4MjE4YjVjMTBjNWVmYWEyZTU5ZmNlIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZnZXRxX2xhbmVfczE2LmMKKysrIGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92Z2V0cV9sYW5lX3MxNi5j CkBAIC04LDcgKzgsNyBAQAogaW50MTZfdAogZm9vIChpbnQxNng4X3QgYSkKIHsKLSAgcmV0dXJu IHZnZXRxX2xhbmVfczE2IChhLCAwKTsKKyAgcmV0dXJuIHZnZXRxX2xhbmVfczE2IChhLCAxKTsK IH0KIAogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bW92LnMxNiIgIH0gIH0gKi8K QEAgLTE2LDcgKzE2LDcgQEAgZm9vIChpbnQxNng4X3QgYSkKIGludDE2X3QKIGZvbzEgKGludDE2 eDhfdCBhKQogewotICByZXR1cm4gdmdldHFfbGFuZSAoYSwgMCk7CisgIHJldHVybiB2Z2V0cV9s YW5lIChhLCAxKTsKIH0KIAogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bW92LnMx NiIgIH0gIH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZl L2ludHJpbnNpY3MvdmdldHFfbGFuZV9zMzIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9h cm0vbXZlL2ludHJpbnNpY3MvdmdldHFfbGFuZV9zMzIuYwppbmRleCBjODdlZDkzZTcwZGVmNWJi ZjZiMTA1NWQ5OTY1NmY3Mzg2Zjk3ZWE4Li4wOTI1YTI1YmI0NWRmOTcwOGQ0NjAzOGI1ZjUzNGEw MmEyZDZkYmJiIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9p bnRyaW5zaWNzL3ZnZXRxX2xhbmVfczMyLmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FybS9tdmUvaW50cmluc2ljcy92Z2V0cV9sYW5lX3MzMi5jCkBAIC04LDcgKzgsNyBAQAogaW50 MzJfdAogZm9vIChpbnQzMng0X3QgYSkKIHsKLSAgcmV0dXJuIHZnZXRxX2xhbmVfczMyIChhLCAw KTsKKyAgcmV0dXJuIHZnZXRxX2xhbmVfczMyIChhLCAxKTsKIH0KIAogLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyICJ2bW92LjMyIiAgfSAgfSAqLwpAQCAtMTYsNyArMTYsNyBAQCBmb28g KGludDMyeDRfdCBhKQogaW50MzJfdAogZm9vMSAoaW50MzJ4NF90IGEpCiB7Ci0gIHJldHVybiB2 Z2V0cV9sYW5lIChhLCAwKTsKKyAgcmV0dXJuIHZnZXRxX2xhbmUgKGEsIDEpOwogfQogCiAvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZtb3YuMzIiICB9ICB9ICovCmRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZnZXRxX2xhbmVf czguYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3MvdmdldHFf bGFuZV9zOC5jCmluZGV4IDExMjQyZmYzYmMwOTBhMTFiZjdmOGYxNjNmMDM0ODgyNDE1OGJlZDcu LjViNzZlM2RhNTU2MmZiOGUyYTJhNDlkZTg1MWJlZDMzMjliYzZlYTAgMTAwNjQ0Ci0tLSBhL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3MvdmdldHFfbGFuZV9zOC5j CisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3MvdmdldHFf bGFuZV9zOC5jCkBAIC04LDcgKzgsNyBAQAogaW50OF90CiBmb28gKGludDh4MTZfdCBhKQogewot ICByZXR1cm4gdmdldHFfbGFuZV9zOCAoYSwgMCk7CisgIHJldHVybiB2Z2V0cV9sYW5lX3M4IChh LCAxKTsKIH0KIAogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bW92LnM4IiAgfSAg fSAqLwpAQCAtMTYsNyArMTYsNyBAQCBmb28gKGludDh4MTZfdCBhKQogaW50OF90CiBmb28xIChp bnQ4eDE2X3QgYSkKIHsKLSAgcmV0dXJuIHZnZXRxX2xhbmUgKGEsIDApOworICByZXR1cm4gdmdl dHFfbGFuZSAoYSwgMSk7CiB9CiAKIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidm1v di5zOCIgIH0gIH0gKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0v bXZlL2ludHJpbnNpY3MvdmdldHFfbGFuZV91MTYuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9hcm0vbXZlL2ludHJpbnNpY3MvdmdldHFfbGFuZV91MTYuYwppbmRleCAyNzg4YjU4NTUzNWM0 NmEzMjcxYmU2NTg0OWIxYmEwNThkZjFhZGNmLi5jNGEzZmIwZDM3OTRjNjdhNzg5YzNjNDc5ZmE3 Y2E2NDE1ZGEzNWM0IDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212 ZS9pbnRyaW5zaWNzL3ZnZXRxX2xhbmVfdTE2LmMKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFy Z2V0L2FybS9tdmUvaW50cmluc2ljcy92Z2V0cV9sYW5lX3UxNi5jCkBAIC04LDcgKzgsNyBAQAog dWludDE2X3QKIGZvbyAodWludDE2eDhfdCBhKQogewotICByZXR1cm4gdmdldHFfbGFuZV91MTYg KGEsIDApOworICByZXR1cm4gdmdldHFfbGFuZV91MTYgKGEsIDEpOwogfQogCiAvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZtb3YudTE2IiAgfSAgfSAqLwpAQCAtMTYsNyArMTYsNyBA QCBmb28gKHVpbnQxNng4X3QgYSkKIHVpbnQxNl90CiBmb28xICh1aW50MTZ4OF90IGEpCiB7Ci0g IHJldHVybiB2Z2V0cV9sYW5lIChhLCAwKTsKKyAgcmV0dXJuIHZnZXRxX2xhbmUgKGEsIDEpOwog fQogCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgInZtb3YudTE2IiAgfSAgfSAqLwpk aWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92 Z2V0cV9sYW5lX3UzMi5jIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmlu c2ljcy92Z2V0cV9sYW5lX3UzMi5jCmluZGV4IDcyMWM1YTVmZmQ3N2NkMWFkMDM4ZDQ0ZjMyZmEx OTdmZTI2ODczMTEuLmQ3OTgzNzAyMzI0OGU4NGQ0YzMwNzc0YWZjMDdlMjQzZWRjOGJhNjUgMTAw NjQ0Ci0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hcm0vbXZlL2ludHJpbnNpY3Mvdmdl dHFfbGFuZV91MzIuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRy aW5zaWNzL3ZnZXRxX2xhbmVfdTMyLmMKQEAgLTgsNyArOCw3IEBACiB1aW50MzJfdAogZm9vICh1 aW50MzJ4NF90IGEpCiB7Ci0gIHJldHVybiB2Z2V0cV9sYW5lX3UzMiAoYSwgMCk7CisgIHJldHVy biB2Z2V0cV9sYW5lX3UzMiAoYSwgMSk7CiB9CiAKIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt YmxlciAidm1vdi4zMiIgIH0gIH0gKi8KQEAgLTE2LDcgKzE2LDcgQEAgZm9vICh1aW50MzJ4NF90 IGEpCiB1aW50MzJfdAogZm9vMSAodWludDMyeDRfdCBhKQogewotICByZXR1cm4gdmdldHFfbGFu ZSAoYSwgMCk7CisgIHJldHVybiB2Z2V0cV9sYW5lIChhLCAxKTsKIH0KIAogLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyICJ2bW92LjMyIiAgfSAgfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2FybS9tdmUvaW50cmluc2ljcy92Z2V0cV9sYW5lX3U4LmMgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZnZXRxX2xhbmVfdTgu YwppbmRleCAyYmNhZWFjM2ZlMWY1Nzc1ZjQ0OGQ3ZjcwMmVhMTM5NzI2ZmFkY2MzLi42MzFkOTk1 ZGMxN2Y5OWM3YTMwY2I5Y2JmNTY4ODNmODE4ZmEyYjFkIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1 aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZnZXRxX2xhbmVfdTguYworKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYXJtL212ZS9pbnRyaW5zaWNzL3ZnZXRxX2xhbmVfdTgu YwpAQCAtOCw3ICs4LDcgQEAKIHVpbnQ4X3QKIGZvbyAodWludDh4MTZfdCBhKQogewotICByZXR1 cm4gdmdldHFfbGFuZV91OCAoYSwgMCk7CisgIHJldHVybiB2Z2V0cV9sYW5lX3U4IChhLCAxKTsK IH0KIAogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ2bW92LnU4IiAgfSAgfSAqLwpA QCAtMTYsNyArMTYsNyBAQCBmb28gKHVpbnQ4eDE2X3QgYSkKIHVpbnQ4X3QKIGZvbzEgKHVpbnQ4 eDE2X3QgYSkKIHsKLSAgcmV0dXJuIHZnZXRxX2xhbmUgKGEsIDApOworICByZXR1cm4gdmdldHFf bGFuZSAoYSwgMSk7CiB9CiAKIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidm1vdi51 OCIgIH0gIH0gKi8K --_002_DB9PR08MB695965DE8F20616836E783C6EB1A9DB9PR08MB6959eurp_--