From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2058.outbound.protection.outlook.com [40.107.22.58]) by sourceware.org (Postfix) with ESMTPS id F29B13858D35 for ; Wed, 15 Feb 2023 17:14:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F29B13858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=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=Xa5PF4goZ0LjZeXt0BHfbUzXeG7KD4l8Hfpx1EbrMEE=; b=MGOVa6Rh9ihpO2846OGbr4J2lf+vitOp5aKS/4vakr85od6IBVDmfPWdl4pt0npVebnF/ICCuZ7lswaPyeWhvkwugLq4Ub6RqzA1w4q2anoOwFFhEZuGM8+tkMRezqJ9HXWFxh0DiSoee11XXMXOOfQl5+VtKAZPxeIvZxCBFm0= Received: from AM6P192CA0007.EURP192.PROD.OUTLOOK.COM (2603:10a6:209:83::20) by PAXPR08MB7526.eurprd08.prod.outlook.com (2603:10a6:102:24c::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.26; Wed, 15 Feb 2023 17:14:04 +0000 Received: from AM7EUR03FT028.eop-EUR03.prod.protection.outlook.com (2603:10a6:209:83:cafe::ae) by AM6P192CA0007.outlook.office365.com (2603:10a6:209:83::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.26 via Frontend Transport; Wed, 15 Feb 2023 17:14:04 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM7EUR03FT028.mail.protection.outlook.com (100.127.140.192) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.12 via Frontend Transport; Wed, 15 Feb 2023 17:14:04 +0000 Received: ("Tessian outbound 0d7b2ab0f13d:v132"); Wed, 15 Feb 2023 17:14:04 +0000 X-CR-MTA-TID: 64aa7808 Received: from 7022a6807c3c.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 52CDC579-EEC6-43F3-B3E0-A950AD1B19F3.1; Wed, 15 Feb 2023 17:13:54 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 7022a6807c3c.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 15 Feb 2023 17:13:53 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a9GaOIu26MjAx4xBCut1VWIEZgfY4F74aaYXy9vmJzdY9DlFXJO2oVJudTe409gl2aI6TK6TFg3mPWPt3uNyYbtnYwjKoPcD3VmrNNnKYk8PxXgYeCV2J1+OYE7TrPPuoBv+u7Ewvh+48Xts6dlheID1pCQkvmZdby+k+iwR0EtRGJZHLyZisrTvbffXA94p9RrvQXWlcFVbsPS0gY0COzjZ7G05GqQlKsOlL+uFPnw7bBy2TA7uuIKjrYS5jvs7AkkSRvoLTwczZvVJUtCen63IeeQt71HFcfUse+qkG+JA6mBZKJ5WPC5GX/Uy/uF55OKtnOKIWS5kgCTAvcITYw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Xa5PF4goZ0LjZeXt0BHfbUzXeG7KD4l8Hfpx1EbrMEE=; b=H1k+9v86pz65va4WL5os4bbfLDfM96qJzss/xehMTMwV4ku0FZLEmolZtSzDRYMvVRyWqooylT3onA7Ya5ekWF/Wy/FuXeR8belTXgGzQ+NbsdCPutWB7W2Qyl/Ma6s13N0xoNkcgwAzsjfsJiv+Jxm3JyHkvVkRYD6+ecoEUhTCAdPBtsRhNTR44ew2h+PnAEJPI5o/MmMpvdN/kbDUcTHXQ8TxK4GMZLK2Pw6veslK4mFaYwUHcqzdGOhqNEaluh3Rvo9uMgQUl5R3rMRs4FzOyrd24HDJEXLrd42BnQau9AjAvwT/rrD0kO25cacziLS7E3hoHrSBf22GZm4Xvg== 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=Xa5PF4goZ0LjZeXt0BHfbUzXeG7KD4l8Hfpx1EbrMEE=; b=MGOVa6Rh9ihpO2846OGbr4J2lf+vitOp5aKS/4vakr85od6IBVDmfPWdl4pt0npVebnF/ICCuZ7lswaPyeWhvkwugLq4Ub6RqzA1w4q2anoOwFFhEZuGM8+tkMRezqJ9HXWFxh0DiSoee11XXMXOOfQl5+VtKAZPxeIvZxCBFm0= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by DBBPR08MB5916.eurprd08.prod.outlook.com (2603:10a6:10:205::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.26; Wed, 15 Feb 2023 17:13:50 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::210c:d369:23f7:84fe]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::210c:d369:23f7:84fe%6]) with mapi id 15.20.6086.026; Wed, 15 Feb 2023 17:13:50 +0000 From: Tamar Christina To: Andrew MacLeod , Richard Biener , Richard Sandiford CC: Tamar Christina via Gcc-patches , nd , "jlaw@ventanamicro.com" Subject: RE: [PATCH 1/2]middle-end: Fix wrong overmatching of div-bitmask by using new optabs [PR108583] Thread-Topic: [PATCH 1/2]middle-end: Fix wrong overmatching of div-bitmask by using new optabs [PR108583] Thread-Index: AQHZPKpK/SYCPI4EDky3xQ0ADEnbFq7IMBSsgAABFlCAACYcToAAAIfAgAAHedGAAACH4IAACHVAgAAA0cCAABQEOYAABjyAgAAoTgCAA/r5IIADVoOwgAA4L4CAAAy+gA== Date: Wed, 15 Feb 2023 17:13:49 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 43F0B31917CBDD4E8B468FAD35F726E6.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|DBBPR08MB5916:EE_|AM7EUR03FT028:EE_|PAXPR08MB7526:EE_ X-MS-Office365-Filtering-Correlation-Id: 8d47bd69-1047-4795-e0ed-08db0f780a20 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: ORM9gdChKE5mXCFPiLnOCOqX/kzagIyO56AFb0ISyVM/DVbiiNCWrO3i8OBX8NMiHG7P9cEY8w2mMfWt22t1ckkwSZOYUmqJKSCIdrpUyg4bjbYkkE8+nfFbH4726jjNWxfw3PXy4W4x5S6f59EVvg54aPYYNmHPhAwW+aAdekiiTiziyc9GLSDlyf3NLdihDWN3vXB4Qoes8wtd5YgF6nj2UTasYNsPpdGTIZn6hThVjq3dYyaJE/L1kC0tUni6CZ4NlePeRifdFtgJdyitDGwJvi0KhBqXo103YPnjsWtCC8ykyH1qvdO7yn2j53SP5QkdxPWYBv8OXF807FNVSFHYYor6H9tnbO44O1N6USfR7FSilMlH2dMvGlg/yAQOgxBmRTIbWV/f5kGDiEl0DaXtzJymvGLKUZOtwebxw9S12rqnIVOVrOUUolctvltyv+52ZwIPAl0hq0dJ49JHB/sqFJnXfgdGu/za3rwI6hBA9NK924OLJ1hkY66XQ+bUTra3jcfNaX24QWepqEFNbTnJI7e2yUqvyui/yH8XeF7606az53dEcMIFWOWril04+uVYcigecbTcNnvAHs6Nk9BLZNd/oOI5MGBAaWbpfXYbn4Y8t9NpiWWYy1lt9b6JRQQ/DoJLo53gl8YNlLecKF36kSPZ2zbCQ3vhETCI5wJYCuAWiVOqLqpHank6fRpYhAAwG2fIjh/dTvDY0+1anQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:VI1PR08MB5325.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(136003)(346002)(396003)(39860400002)(366004)(376002)(451199018)(71200400001)(33656002)(38070700005)(86362001)(122000001)(38100700002)(83380400001)(9686003)(6506007)(53546011)(478600001)(186003)(26005)(7696005)(76116006)(64756008)(66556008)(66446008)(4326008)(66946007)(316002)(6636002)(54906003)(5660300002)(2906002)(110136005)(8676002)(41300700001)(66476007)(55016003)(8936002)(52536014);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DBBPR08MB5916 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM7EUR03FT028.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 500b1225-5bbf-439e-53c0-08db0f780161 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 4Egu860epo3CrCR6ykG040lAfDLUJciAi0/IqJjpluZ1TTUI91AVMaTmZ8Dz11pt5zJ52GggNzK5QwazsKetVAX1Y94tI4fCCJMv/ifxgI5+7QPZmxhgGBPkDZeZ6+hkDanqgNX8Kfvd+y+X1diFz3UZbyBG8jSFLGE8xIrbPeSZzJRFLEGt+Gyc84tFXhsMjGO8ApijzEOntNil7S3v8D+0S3G4xqgPSepwSDB8wxa5kNBuVdwxUsPr+fGmXJjAAjWk2kmnwcZUeCW6+TrJl9V/HRtzRnkJ0lZpCsynGZya5mr4tufolE0p/soRt7udFlTtZhFvlkgbem6hkVEhlwqXXYQb5G1usEqcbMsyF7IrBJU5yQ2RleMqBFvplfkNcJALavq1L9B/y4v2ifKAm9rvAI1z6sMPwMLLgpVGnGaYes2mAOWLAYl0OOCMjRNmn3lp49LamL0Rb7VzTtMvUTdZYvp6a373xHPRrYrpTkAeqYAeiRjTxg1li7NBfmSDbXY6NeS8nKmnRa9T/9E6ukFqxLlLl/c5ECtZxLbjd1aV1nWQlCdez4Wn9t0IKrgFJV9uBF9F2ryl3O10EC8dbCkZgeMkyhb7U7tlYFq5weo1w/DPovPG33GMWYi1EWu+Hf6K0SGmnmsHSsGMnw1fxV4rE6E32bhjTCqQeZkbInEoJEoygsEpZCDPSWlP9mqk5lcSX8skuJ9HpLieNoaH8g== 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:(13230025)(4636009)(376002)(39860400002)(396003)(136003)(346002)(451199018)(36840700001)(40470700004)(46966006)(36860700001)(82740400003)(81166007)(2906002)(41300700001)(33656002)(5660300002)(52536014)(8936002)(40460700003)(55016003)(107886003)(336012)(316002)(26005)(186003)(53546011)(6506007)(9686003)(4326008)(70586007)(8676002)(86362001)(70206006)(356005)(54906003)(110136005)(6636002)(40480700001)(47076005)(83380400001)(478600001)(7696005)(82310400005);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2023 17:14:04.2695 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 8d47bd69-1047-4795-e0ed-08db0f780a20 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: AM7EUR03FT028.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7526 X-Spam-Status: No, score=-6.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: PiBPbiAyLzE1LzIzIDA3OjUxLCBUYW1hciBDaHJpc3RpbmEgd3JvdGU6DQo+ID4+Pj4+PiBJbiBh bnkgY2FzZSwgaWYgeW91IGRpc2FncmVlIEkgZG9u4oCZdCcgcmVhbGx5IHNlZSBhIHdheSBmb3J3 YXJkDQo+ID4+Pj4+PiBhc2lkZSBmcm9tIG1ha2luZyB0aGlzIGl0cyBvd24gcGF0dGVybiBydW5u aW5nIGl0IGJlZm9yZSB0aGUNCj4gPj4+Pj4+IG92ZXJ3aWRlbmluZw0KPiA+Pj4gcGF0dGVybi4N Cj4gPj4+Pj4gSSB0aGluayB3ZSBzaG91bGQgbG9vayB0byBzZWUgaWYgcmFuZ2VyIGNhbiBiZSBw ZXJzdWFkZWQgdG8NCj4gPj4+Pj4gcHJvdmlkZSB0aGUgcmFuZ2Ugb2YgdGhlIDE2LWJpdCBhZGRp dGlvbiwgZXZlbiB0aG91Z2ggdGhlDQo+ID4+Pj4+IHN0YXRlbWVudCB0aGF0IHByb2R1Y2VzIGl0 IGlzbid0IHBhcnQgb2YgYSBCQi4gIEl0IHNob3VsZG4ndA0KPiA+Pj4+PiBtYXR0ZXIgdGhhdCB0 aGUgYWRkaXRpb24gb3JpZ2luYWxseSBjYW1lIGZyb20gYSAzMi1iaXQgb25lOiB0aGUNCj4gPj4+ Pj4gcmFuZ2UgZm9sbG93cyBkaXJlY3RseSBmcm9tIHRoZSByYW5nZXMgb2YgdGhlIG9wZXJhbmRz IChpLmUuIHRoZQ0KPiA+Pj4+PiBmYWN0IHRoYXQgdGhlIG9wZXJhbmRzIGFyZSB0aGUgcmVzdWx0 cyBvZiB3aWRlbmluZyBjb252ZXJzaW9ucykuDQo+ID4+Pj4gSSB0aGluayB5b3UgY2FuIGFzayBy YW5nZXIgb24gb3BlcmF0aW9ucyBvbiBuYW1lcyBkZWZpbmVkIGluIHRoZQ0KPiA+Pj4+IElMLCBz byB5b3UgY2FuIHdvcmsgeW91cnNlbGYgdGhyb3VnaCB0aGUgc2VxdWVuY2Ugb2Ygb3BlcmF0aW9u cyBpbg0KPiA+Pj4+IHRoZSBwYXR0ZXJuIHNlcXVlbmNlIHRvIGNvbXB1dGUgcmFuZ2VzIG9uIHRo ZWlyIGRlZnMgKGFuZCBwb3NzaWJseQ0KPiA+Pj4+IGV2ZW4gc3RvcmUgdGhlbSBpbiB0aGUgU1NB IGluZm8pLiAgWW91IGp1c3QgbmVlZCB0byBwaWNrIHRoZQ0KPiA+Pj4+IGNvcnJlY3QgcmFuZ2Vy IEFQSSBmb3IgdGhpc+KApi4gQW5kcmV3IENDZWQNCj4gPj4+Pg0KPiA+Pj4+DQo+ID4+PiBJdHMg bm90IGNsZWFyIHRvIG1lIHdoYXRzIGJlaW5nIGFza2VkLi4uDQo+ID4+Pg0KPiA+Pj4gRXhwcmVz c2lvbnMgZG9uJ3QgbmVlZCB0byBiZSBpbiB0aGUgSUwgdG8gZG8gcmFuZ2UgY2FsY3VsYXRpb25z Li4gSQ0KPiA+Pj4gYmVsaWV2ZSB3ZSBzdXBwb3J0IGFyYml0cmFyeSB0cmVlIGV4cHJlc3Npb25z IHZpYSByYW5nZV9vZl9leHByLg0KPiA+Pj4NCj4gPj4+IGlmIHlvdSBoYXZlIDMyIGJpdCByYW5n ZXMgdGhhdCB5b3Ugd2FudCB0byBkbyAxNiBiaXQgYWRkaXRpb24gb24sDQo+ID4+PiB5b3UgY2Fu IGFsc28gY2FzdCB0aG9zZSByYW5nZXMgdG8gYSAxNmJpdCB0eXBlLA0KPiA+Pj4NCj4gPj4+IG15 MzJiaXRyYW5nZS5jYXN0IChteTE2Yml0dHlwZSk7DQo+ID4+Pg0KPiA+Pj4gdGhlbiBpbnZva2Ug cmFuZ2Utb3BzIGRpcmVjdGx5IHZpYSBnZXR0aW5nIHRoZSBoYW5kbGVyOg0KPiA+Pj4NCj4gPj4+ IGhhbmRsZXIgPSByYW5nZV9vcF9oYW5kbGVyIChQTFVTX0VYUFIsIDE2Yml0dHlwZV90cmVlKTsg aWYgKGhhbmRsZXIpDQo+ID4+PiAgIMKgwqAgaGFuZGxlci0+Zm9sZCAocmVzdWx0LCBteTE2Yml0 dHlwZSwgbXljYXN0ZWQzMmJpdHJhbmdlLA0KPiA+Pj4gbXlvdGhlcmNhc3RlZDMyYml0cmFuZ2Up DQo+ID4+Pg0KPiA+Pj4gVGhlcmUgYXJlIGhpZ2hlciBsZXZlbCBBUElzIGlmIHdoYXQgeW91IGhh dmUgb24gaGFuZCBpcyBjbG9zZXIgdG8gSUwNCj4gPj4+IHRoYW4gcmFuZG9tIHJhbmdlcw0KPiA+ Pj4NCj4gPj4+IERlc2NyaWJlIGV4YWN0bHkgd2hhdCBpdCBpcyB5b3Ugd2FudCB0byBkby4uLiBh bmQgSSdsbCB0cnkgdG8gZGlyZWN0DQo+ID4+PiB5b3UgdG8gdGhlIGJlc3Qgd2F5IHRvIGRvIGl0 Lg0KPiA+PiBUaGUgdmVjdG9yaXplciBoYXMgIGEgcGF0dGVybiBtYXRjaGVyIHRoYXQgcnVucyBh dCBzdGFydHVwIG9uIHRoZSBzY2FsYXINCj4gY29kZS4NCj4gPj4gVGhpcyBwYXR0ZXJuIG1hdGNo ZXIgY2FuIHJlcGxhY2Ugb25lIG9yIG1vcmUgc3RhdGVtZW50cyB3aXRoDQo+ID4+IGFsdGVybmF0 aXZlIG9uZXMsIHRoZXNlIGNhbiBiZSBlaXRoZXIgZXhpc3RpbmcgdHJlZV9jb2RlIG9yIG5ldyBp bnRlcm5hbA0KPiBmdW5jdGlvbnMuDQo+ID4+DQo+ID4+IE9uZSBvZiB0aGUgcGF0dGVybnMgaGVy ZSBpcyBhIG92ZXJ3aWRlbmluZyBkZXRlY3Rpb24gcGF0dGVybiB3aGljaA0KPiA+PiByZWR1Y2Vz IHRoZSBwcmVjaXNpb24gdGhhdCBhbiBvcGVyYXRpb24gaXMgdG8gYmUgZG9uZSBpbiBkdXJpbmcN Cj4gdmVjdG9yaXphdGlvbi4NCj4gPj4NCj4gPj4gQW5vdGhlciBvbmUgaXMgd2lkZW5pbmcgbXVs dGlwbGljYXRpb24sIHdoaWNoIHJlcGxhY2VkIFBMVVNfRVhQUiB3aXRoDQo+ID4+IFdJREVOX1BM VVNfRVhQUi4NCj4gPj4NCj4gPj4gVGhlc2UgY2FuIGJlIGNoYWluZWQsIHNvIGUuZy4gYSB3aWRl bmluZyBhZGRpdGlvbiBkb25lIG9uIGludHMgY2FuIGJlDQo+ID4+IHJlZHVjZWQgdG8gYSB3aWRl biBhZGRpdGlvbiBkb25lIG9uIHNob3J0cy4NCj4gPj4NCj4gPj4gVGhlIHF1ZXN0aW9uIGlzIHdo ZXRoZXIgZ2l2ZW4gdGhlIG5ldyBleHByZXNzaW9uIHRoYXQgdGhlIHZlY3Rvcml6ZXINCj4gPj4g aGFzIGNyZWF0ZWQgd2hldGhlciByYW5nZXIgY2FuIHRlbGwgd2hhdCB0aGUgcHJlY2lzaW9uIGlz Lg0KPiA+PiBnZXRfcmFuZ2VfcXVlcnkgZmFpbHMgYmVjYXVzZSBwcmVzdW1hYmx5IGl0IGhhcyBu byBpZGVhIGFib3V0IHRoZSBuZXcNCj4gPj4gb3BlcmF0aW9ucyBjcmVhdGVkICBhbmQgYWxzbyBk b2Vzbid0IGtub3cgYWJvdXQgYW55IG5ldyBJRk5zLg0KPiA+IEhpLA0KPiA+DQo+ID4gSSBoYXZl IGJlZW4gdHJ5aW5nIHRvIHVzZSByYW5nZXIgYXMgcmVxdWVzdGVkLiBJJ3ZlIHRyaWVkOg0KPiA+ DQo+ID4gCSAgZ2ltcGxlX3JhbmdlciByYW5nZXI7DQo+ID4gCSAgaW50X3JhbmdlX21heCByOw0K PiA+IAkgIC8qIENoZWNrIHRoYXQgbm8gb3ZlcmZsb3cgd2lsbCBvY2N1ci4gIElmIHdlIGRvbid0 IGhhdmUgcmFuZ2UNCj4gPiAJICAgICBpbmZvcm1hdGlvbiB3ZSBjYW4ndCBwZXJmb3JtIHRoZSBv cHRpbWl6YXRpb24uICAqLw0KPiA+IAkgIGlmIChyYW5nZXIucmFuZ2Vfb2ZfZXhwciAociwgb3By bmQwLCBzdG10KSkNCj4gPiAJICAgIHsNCj4gPiAJICAgICAgd2lkZV9pbnQgbWF4ID0gci51cHBl cl9ib3VuZCAoKTsNCj4gPiAgICAgICAgICAgICAgICAgICAgICAuLi4uDQo+ID4NCj4gPiBXaGlj aCB3b3JrcyBmb3Igbm9uLXBhdHRlcm5zLCBidXQgc3RpbGwgZG9lc24ndCB3b3JrIGZvciBwYXR0 ZXJucy4NCj4gPiBPbiBhIHN0bXQ6DQo+ID4gcGF0dF8yNyA9IChfMykgdysgKGxldmVsXzE1KEQp KTsNCj4gPg0KPiA+IGl0IGdpdmVzIG1lIGEgcmFuZ2U6DQo+ID4NCj4gPiAkMiA9IHsNCj4gPiAg ICA8d2lkZV9pbnRfc3RvcmFnZT4gPSB7DQo+ID4gICAgICB2YWwgPSB7WzB4MF0gPSAweGZmZmZm ZmZmZmZmZmZmZmYsIFsweDFdID0gMHg3ZmZmOTViZDhiMDAsIFsweDJdID0NCj4gMHg3ZmZmOTVi ZDc4YjAsIFsweDNdID0gMHgzZmExZGQwLCBbMHg0XSA9IDB4M2ZhMWRkMCwgWzB4NV0gPQ0KPiAw eDM0NGE3MDZmODMyZDRmMDAsIFsweDZdID0gMHg3ZmZmOTViZDc5NTAsIFsweDddID0gMHgxYWU3 ZjExLCBbMHg4XSA9DQo+IDB4N2ZmZjk1YmQ3OWY4fSwNCj4gPiAgICAgIGxlbiA9IDB4MSwNCj4g PiAgICAgIHByZWNpc2lvbiA9IDB4MTANCj4gPiAgICB9LA0KPiA+ICAgIG1lbWJlcnMgb2YgZ2Vu ZXJpY193aWRlX2ludDx3aWRlX2ludF9zdG9yYWdlPjoNCj4gPiAgICBzdGF0aWMgaXNfc2lnbl9l eHRlbmRlZCA9IDB4MQ0KPiA+IH0NCj4gPg0KPiA+IFRoZSBwcmVjaXNpb24gaXMgZmluZSwgYnV0 IHJhbmdlIHNlZW1zIHRvIGJlIC0xPw0KPiA+DQo+ID4gU2hvdWxkIEkgdXNlIHJhbmdlX29wX2hh bmRsZXIgKFdJREVOX1BMVVNfRVhQUiwgLi4uKSBpbiB0aGlzIGNhc2U/DQo+IA0KPiBJdHMgZWFz aWVyIHRvIHNlZSB0aGUgcmFuZ2UgaWYgeW91IGR1bXAgaXQuLiBpZToNCj4gDQo+IHAgci5kdW1w KHN0ZGVycikNCj4gDQo+IEltIHdheSBiZWhpbmQgdGhlIGN1cnZlIG9uIGV4YWN0bHkgd2hhdHMg Z29pbmcgb24uwqAgSW0gbm90IHN1cmUgaG93IHRoZQ0KPiBhYm92ZSAyIHRoaW5ncyByZWxhdGUu LsKgIEkgcHJlc3VtZSAkMiBpcyBpcyAnbWF4Jz/CoCBJIGhhdmUgbm8gY29udGV4dCwgd2hhdCBk aWQNCj4geW91IGV4cGVjdCB0aGUgcmFuZ2Ugb2YgXzMgdG8gYmU/DQoNClllcywgJDIgaXMgbWF4 LCBhbmQgdGhlIGV4cGVjdGVkIHJhbmdlIGlzIDB4MWZlIGFzIGl0J3MgdW5zaWduZWQgYWRkaXRp b24uDQpJJ2xsIGV4cGFuZCBiZWxvdy4NCg0KPiANCj4gV2UgaGF2ZSBubyBlbnRyeSBpbiByYW5n ZS1vcHMuY2MgZm9yIGEgV0lERU5fUExVU19FWFBSLMKgIHNvIHJhbmdlciB3b3VsZA0KPiBvbmx5 IGdpdmUgYmFjayBhIFZBUllJTkcgZm9yIHRoYXQgbm8gZG91YnQuLiBob3dldmVyIEkgZG91YnQg aXQgd291bGQgYmUNCj4gdG9vIGRpZmZpY3VsdCB0byB3cml0ZSB0aGUgZm9sZF9yYW5nZSgpIG1l dGhvZCBmb3IgaXQuDQo+IA0KPiBJdHMgdW5jbGVhciB0byBtZSB3aGF0IHlvdSBtZWFuIGJ5IGl0 IGRvZXNudCB3b3JrIG9uIHBhdHRlcm5zLiBzbyBsZXRzIGRvDQo+IHNvbWUgYmFzaWNzLg0KPiAN Cj4gWW91IGhhdmUgYSBzdG10wqAgInBhdHRfMjcgPSAoXzMpIHcrIChsZXZlbF8xNShEKSk7Ig0K PiANCj4gSSBnYXRoZXIgdGhhdHMgYSBXSURFTl9QTFVTX0VYUFIsIGFuZCBpZiBJIHJlYWQgaXQg cmlnaHQsIHBhdHRfMjcgaXMgYSB0eXBlDQo+IHRoYXQgaXMgdHdpY2UgYXMgd2lkZSBhcyBfMywg YW5kIHdpbGwgY29udGFpbiB0aGUgdmFsdWUgIl8zICsgbGV2ZWxfMTUiPw0KPiANCj4gWW91IHF1 ZXJ5IGFib3ZlIGlzIGFza2luZyBmb3IgdGhlIHJhbmdlIG9mIF8zIGF0IHRoaXMgc3RtdCBpbiB0 aGUgSUwuDQo+IA0KPiBBbmQgeW91IGFyZSB0cnlpbmcgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgdGhl IGV4cHJlc3Npb24gIl8zICsgbGV2ZWxfMTUiDQo+IHdvdWxkIHN0aWxsIGZpdCBpbiB0aGUgdHlw ZSBvZiBfMywgYW5kIHRodXMgeW91IGNvdWxkIGF2b2lkIHRoZSBXSURFTl8qDQo+IHBhcmFkaWdt IGFuZCByZXZlcnQgdG8gYSBzaW1wbHkgcGx1cz8NCj4gDQo+IEFuZCB5b3UgYWxzbyB3YW50IHRv IGJlIGFibGUgdG8gZG8gdGhpcyBmb3IgZXhwcmVzc2lvbnMgd2hpY2ggYXJlIG5vdA0KPiBjdXJy ZW50bHkgaW4gdGhlIElMPw0KDQpBIHBhdHRlcm4gaXMgYW4gYWx0ZXJuYXRpdmUgSUwgdGhhdCB0 aGUgdmVjdG9yaXplciBpbnRyb2R1Y2VzIGZvciBpZiBpdCB3ZXJlIHRvDQp2ZWN0b3JpemUgYSBw YXJ0aWN1bGFyIHNjYWxhciBzdGF0ZW1lbnQocykuICBUaGUgc2NhbGFyIHN0YXRlbWVudChzKSBp cyBub3QgcmVwbGFjZWQNCmluIHRoZSBvcmlnaW5hbCBzY2FsYXIgSUwgYnV0IGl0IGlzIHJlcGxh Y2VkIGluIHRoZSBJTCB0aGUgdmVjdG9yaXplciB1c2VzLg0KDQpUaGUgZXhhbXBsZSBJJ20gd29y a2luZyB3aXRoIGhlcmUgaXMgdGhpcw0KDQojZGVmaW5lIE4gMTYNCnZvaWQgZnVuMih1aW50OF90 KiByZXN0cmljdCBwaXhlbCwgdWludDhfdCBsZXZlbCwgaW50IG4pDQp7DQogIGZvciAoaW50IGkg PSAwOyBpIDwgbjsgaSs9MSkNCiAgICBwaXhlbFtpXSA9IChwaXhlbFtpXSArIGxldmVsKSAvIDB4 ZmY7DQp9DQoNCldoZXJlIHRoZSBDIHByb21vdGlvbiBydWxlcyBwcm9tb3RlcyB0aGUgb3BlcmFu ZHMgdG8gaW50LiAgSG93ZXZlciB3aGVuDQp2ZWN0b3Jpbmcgd2UgdHJ5IHRvIGluY3JlYXNlIHRo ZSBWRiBvZiB0aGUgbG9vcCwgdGhhdCBpcyBkbyB0aGUgb3BlcmF0aW9uIGluIHRoZQ0Kc21hbGxl c3QgdHlwZSBwb3NzaWJsZS4gIEluIHRoaXMgY2FzZSBpdCBpcyBzYWZlIHRvIGRvIHRoZSBvcGVy YXRpb24gYXMgYSBzaG9ydC4NCg0KU28gdGhlIHZlY3Rvcml6ZXIgZGVtb3RlcyANCg0KICBfMjgg PSAoaW50KSBsZXZlbF8xNChEKTsNCiAgXzQgPSAoaW50KSBfMzsNCiAgXzYgPSBfNCArIF8yODsN CiAgXzcgPSBfNiAvIDI1NTsNCiAgXzggPSAodW5zaWduZWQgY2hhcikgXzc7DQoNCkludG8NCg0K ICBfMjggPSAoc2hvcnQpIGxldmVsXzE0KEQpOw0KICBfNCA9IChzaG9ydCkgXzM7DQogIF82ID0g XzQgKyBfMjg7DQogIF83ID0gXzYgLyAyNTU7DQogIF84ID0gKHVuc2lnbmVkIGNoYXIpIF83Ow0K DQpUaGlzIGlzIGRvbmUgaW4gdGhlIHNjYWxhciBwYXR0ZXJuIG1hdGNoZXIgaXQgaGFzIGJhc2Vk IG9uIHJhbmdlIGluZm9ybWF0aW9uLg0KVGhlIG5ldyBpbnN0cnVjdGlvbnMgcmVwbGFjZSB0aGUg b2xkIG9uZXMgaW4gdGhlIHZlY3Rvcml6ZXIgSUwuDQoNClRoZXJlIGlzIHRoZW4gYSBzZWNvbmQg cGF0dGVybiBtYXRjaGVyIHRoYXQgcnVucyBiZWNhdXNlIHNvbWUgdGFyZ2V0cyBoYXZlDQpvcGVy YXRpb25zIHRoYXQgY2FuIHBlcmZvcm0gYSB3aWRlbmluZyBkdXJpbmcgYSBtYXRoZW1hdGljYWwg b3BlcmF0aW9uLg0KVGhlcmUgYXJlIG1hbnkgc3VjaCBvcGVyYXRpb25zLCArdywgKncsID4+dywg PDx3IGV0Yy4gIFNvbWUgYXJlIHRyZWUgY29kZXMsDQpvdGhlcnMgYXJlIHJlcHJlc2VudGVkIGFz IGludGVybmFsIGZ1bmN0aW9uIGNhbGxzLg0KDQpUaGlzIHNlY29uZCBwYXR0ZXJuIHJlcGxhY2Vz IHRoZSBhYm92ZSBpbnRvOg0KDQogIF82ID0gXzMgK3cgbGV2ZWxfMTQoRCk7DQogIF83ID0gXzYg LyAyNTU7DQogIF84ID0gKHVuc2lnbmVkIGNoYXIpIF83Ow0KDQpUaHVzIHJlbW92aW5nIHRoZSBu ZWVkIHRvIHByb21vdGUgYmVmb3JlIHRoZSBhZGRpdGlvbi4gIFdoYXQgSSdtIHdvcmtpbmcgb24N CmlzIGFuIG9wdGltaXphdGlvbiBmb3IgZGl2aXNpb24uICBTbyBJIGFtIGFmdGVyIHdoYXQgdGhl IHJhbmdlIG9mIF82IGlzLiBvcHJuZDAgaW4gbXkNCmV4YW1wbGUgaXMgdGhlIDFyc3Qgb3BlcmFu ZCBvZiB0aGUgZGl2aXNpb24uDQoNCkkgbmVlZCB0byBrbm93IHRoZSByYW5nZSBvZl82IGJlY2F1 c2UgYmFzZWQgb24gdGhlIHJhbmdlIHdlIGNhbiBvcHRpbWl6ZSB0aGlzDQpkaXZpc2lvbiBpbnRv IHNvbWV0aGluZyBtdWNoIG1vcmUgZWZmaWNpZW50Lg0KDQo+IA0KPiAtLS0twqAgSUYgdGhhdCBp cyBhbGwgdHJ1ZSwgdGhlbiBJIHdvdWxkIHN1Z2dlc3Qgb25lIG9mIDIgcG9zc2libGUgcm91dGVz Lg0KPiAxKSB3ZSBhZGQgV0lERU5fUExVU19FWFBSIHRvIHJhbmdlLW9wcy7CoCBUSElzIGludm9s dmVzIHdyaXRpbmcNCj4gZm9sZF9yYW5nZSgpIGZvciBpdCB3aGVyZWJ5IGl0IHdvdWxkIGNyZWF0 ZSBhIHJhbmdlIG9mIGEgdHlwZSBkb3VibGUgdGhlDQo+IHByZWNpc2lvbiBvZiBfMywgdGhlbiB0 YWtlIHRoZSAyIHJhbmdlcyBmb3Igb3AxIGFuZCBvcDIsIGNhc3QgdGhlbSB0byB0aGlzIG5ldw0K PiB0eXBlIGFuZCBhZGQgdGhlbS4NCj4gDQoNClJpZ2h0LCBzbyBJIGd1ZXNzIG5vbmUgb2YgdGhl IHdpZGVuaW5nIG9wZXJhdGlvbnMgYXJlIGN1cnJlbnRseSB0aGVyZS4gIENhbiB5b3UNCnBvaW50 IG1lIGluIHRoZSByaWdodCBkaXJlY3Rpb24gb2Ygd2hlcmUgSSBuZWVkIHRvIGFkZCB0aGVtPw0K DQo+IDIpIG1hbnVhbGx5IGRvaW5nIHRoZSBzYW1lIHRoaW5nLsKgwqAgQlV0IGlmIHlvdSBhcmUg Z29pZ250byBtYW51YWxseSBkbyBpdCwgd2UNCj4gbWlnaHQgYXMgd2VsbCBwdXQgdGhhdCBzYW1l IGNvZGUgaW50byBmb2xkX3JhbmdlIHRoZW4gdGhlIGVudGlyZSBlY29zeXN0ZW0NCj4gd2lsbCBi ZW5lZml0Lg0KPiANCj4gT25jZSB0aGUgb3BlcmF0aW9uIGNhbiBiZSBwZXJmb3JtZWQgaW4gcmFu Z2Ugb3BzLCB5b3UgY2FuIGNhc3QgdGhlIG5ldw0KPiByYW5nZSBiYWNrIHRvIHRoZSB0eXBlIG9m IF8zIGFuZCBzZWUgaWYgaXRzIGZ1bGx5IHJlcHJlc2VudGVkLiBpZQ0KPiANCj4gaW50X3Jhbmdl X21heCByMSwgcjINCj4gaWYgKHJhbmdlci5yYW5nZV9vZl9zdG10IChyMSwgc3RtdCkpDQo+ICDC oCB7DQo+ICDCoMKgwqAgcjIgPSByMTsNCj4gIMKgwqDCoCByMi5jYXN0IChUUkVFX1RZUEUgKF8z KSk7DQo+ICDCoMKgwqAgcjIuY2FzdCAoVFJFRV9UWVBFIChwYXR0XzI3KSk7DQo+ICDCoCDCoCBp ZiAocjEgPT0gcjIpDQo+ICDCoCDCoCDCoCAvLyBObyBpbmZvIHdhcyBsb3N0IGNhc3RpbmcgYmFj ayBhbmQgZm9ydGgsIHNvIHIxIG11c3QgZml0IGludG8gdHlwZSBvZiBfMw0KPiANCj4gVGhhdCBz aG91bGQgd29yayBmb3Igd2l0aGluIHRoZSBJTC7CoCBBbmQgaWYgeW91IHdhbnQgdG8gZG8gdGhl IHNhbWUgdGhpbmcNCj4gb3V0c2lkZSBvZiB0aGUgSUwsIHlvdSBoYXZlIHRvIGNvbWUgdXAgd2l0 aCB0aGUgdmFsdWVzIHlvdSB3YW50IHRvIHVzZSBmb3INCj4gb3AxIGFuZCBvcDIsIHJlcGxhY2Ug dGhlIHJhbmdlciBxdWVyeSB3aXRoIGEgZGlyZWN0IHJhbmdlLW9wZm9sZDoNCj4gDQo+IHJhbmdl X29wX2hhbmRsZXIgaGFuZGxlciAoV0lERU5fUExVU19FWFBSLCBUUkVFX1RZUEUgKHBhdHRfMjcp KTsgaWYNCj4gKGhhbmRsZXIgJiYgaGFuZGxlci0+Zm9sZF9yYW5nZSAocjEsIHJhbmdlX29mX18z LCByYW5nZV9vZl9sZXZlbF8xNSkpDQo+ICDCoCB7DQo+ICDCoMKgwqAgLy8gc2FtZSBjYXN0aW5n IHNvbmcgYW5kIGRhbmNlDQo+IA0KPiANCg0KSnVzdCBmb3IgbXkgb3duIHVuZGVyc3RhbmRpbmcs IGRvZXMgdGhlIGZvbGRfcmFuZ2UgaGVyZSB1cGRhdGUgdGhlIGluZm9ybWF0aW9uDQppbiB0aGUg SUw/IE9yIGlzIGl0IGp1c3QgZm9yIHRoaXMgY29tcHV0YXRpb24/IFNvIHdoZW4gSSBoaXQgdGhp cyBwYXR0ZXJuIGFnYWluIGl0DQpyZWNvbXB1dGVzIGl0Pw0KDQo+IElmIHlvdSBkb250IHdhbnQg dG8gZ28gdGhydSB0aGlzIHByb2Nlc3MsIGluIHRoZW9yeSwgeW91IGNvdWxkIHRyeSBzaW1wbHkN Cj4gYWRkaW5nIF8zIGFuZCBsZXZlbF8xNSBpbiB0aGVpciBvd24gcHJlY2lzaW9uLCBhbmQgaWYg bWF4L21pbiBhcmVuJ3QgK0lORi8tDQo+IElORiB0aGVuIHlvdSBjYW4gcHJvYmFibHkgYXNzdW1l IHRoZXJlIGlzIG5vIG92ZXJmbG93Pw0KPiBpbiB3aGljaCBjYXNlLCBhbGwgeW91IGRvIGlzIHRo ZSBwYXRoIHlvdSBhcmUgb24gYWJvdmUgZm9yIHdpdGhpbiBhIHN0bXQgc2hvdWxkDQo+IHdvcms6 DQo+IA0KPiAJICBnaW1wbGVfcmFuZ2VyIHJhbmdlcjsNCj4gCSAgaW50X3JhbmdlX21heCByMCwg cjEsIGRlZjsNCj4gCSAgLyogQ2hlY2sgdGhhdCBubyBvdmVyZmxvdyB3aWxsIG9jY3VyLiAgSWYg d2UgZG9uJ3QgaGF2ZSByYW5nZQ0KPiAJICAgICBpbmZvcm1hdGlvbiB3ZSBjYW4ndCBwZXJmb3Jt IHRoZSBvcHRpbWl6YXRpb24uICAqLw0KPiAJICBpZiAocmFuZ2VyLnJhbmdlX29mX2V4cHIgKHIw LCBvcHJuZDAsIHN0bXQpICYmDQo+IHJhbmdlci5yYW5nZV9vZl9leHByIChyMSxvcHJuZDEsIHN0 bXQpDQo+IAkgICAgew0KPiAJICAgICAgcmFuZ2Vfb3BfaGFuZGxlciBoYW5kbGVyIChQTFVTX0VY UFIsIFRSRUVfVFlQRSAoXzMpKTsNCj4gCSAgICAgIGlmIChoYW5kbGVyICYmIGhhbmRsZXItPmZv bGRfcmFuZ2UgKGRlZiwgcjAsIHIxKSkNCj4gCQkvLyBleGFtaW5lIGRlZi51cHBlcl9ib3VuZCgp IGFuZCBkZWYubG93ZXJfYm91bmQoKQ0KPiANCj4gQW0gSSBncmFzcGluZyBzb21lIG9mIHRoZSBp c3N1ZSBoZXJlPw0KDQpZb3UgYXJlLCBhbmQgdGhpcyB3YXMgaGVscGZ1bC4gIEkgd291bGQgaW1h Z2luZSB0aGF0IFJpY2hhcmQgd291bGRuJ3QgYWNjZXB0IG1lDQp0byBkbyBpdCBsb2NhbGx5IHRo b3VnaC4gIFNvIEkgZ3Vlc3MgaWYgaXQncyBzYWZlIHRvIGRvIGZvciB0aGlzIFBSIGZpeCwgSSBj YW4gYWRkIHRoZSBiYXNpYw0Kd2lkZW5pbmcgb3BlcmF0aW9ucyB0byByYW5nZXItb3BzIGlmIHlv dSBjYW4gc2hvdyBtZSB3aGVyZS4NCg0KVGhhbmtzLA0KVGFtYXINCg0KPiANCj4gQW5kcmV3DQo+ IA0KPiANCg0K