From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-DB5-obe.outbound.protection.outlook.com (mail-db5eur02on2073.outbound.protection.outlook.com [40.107.249.73]) by sourceware.org (Postfix) with ESMTPS id D51513858C5F for ; Fri, 10 Feb 2023 16:33:39 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D51513858C5F 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=tBTcIjm37UtLq0zAQITdLSWHUMHZT3pQge48O6YU8P8=; b=YvulLQK1EK5HCGkGkvPy/NAna/OktoKPY1M0mqG7mYmjRr+yBLtc3QjUNx5hPFwvlW/7QEQB55SayyK/HOC/vbGa5ci6EczQAY4ywYXFyi4G8NiWw4aM0N0TgwIjqkbWDwmYSLtR+OLrzxNJsFYCKp9e+nW/7MJ6rl7LiaaWyUE= Received: from AS8PR07CA0030.eurprd07.prod.outlook.com (2603:10a6:20b:451::9) by AS8PR08MB8660.eurprd08.prod.outlook.com (2603:10a6:20b:562::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.21; Fri, 10 Feb 2023 16:33:34 +0000 Received: from AM7EUR03FT006.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:451:cafe::2b) by AS8PR07CA0030.outlook.office365.com (2603:10a6:20b:451::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.5 via Frontend Transport; Fri, 10 Feb 2023 16:33:34 +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 AM7EUR03FT006.mail.protection.outlook.com (100.127.141.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.21 via Frontend Transport; Fri, 10 Feb 2023 16:33:34 +0000 Received: ("Tessian outbound baf1b7a96f25:v132"); Fri, 10 Feb 2023 16:33:34 +0000 X-CR-MTA-TID: 64aa7808 Received: from c37635a0daaf.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 6926333E-734B-4B3D-BE35-593E0F1BF6A7.1; Fri, 10 Feb 2023 16:33:33 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id c37635a0daaf.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 10 Feb 2023 16:33:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UGeL8E3OcDKL2rKybhmMw4SRTK7YxTXUF1//ABIQgJUb7gqc/ILs1lAzzGy3pGpQNPxXfrY+GpTeNvcNMU288sbyDHLngJ0r7P12tdnHcrwyV+iHT2sn0N4Ga4ag8egrB9VAQNP6TM0WMUtdUIfyIoWQYH/fzF5mBjupKabbI0UyvSpaFE30bHWA5IvPhaWCQyRia6bsxP9hOujucKzDHDHsmvuTB5hE/q43Y+cE+HTeoyEhhslXG08Zk6z0bUUCuNJE4G3mNoK/8lyx+aiTthHtTqKtesdVPYNM/z7ZxvF3nRCY2/B73FhI0orAhGdp3rmmkaJvIkGuHqMINZVSxQ== 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=tBTcIjm37UtLq0zAQITdLSWHUMHZT3pQge48O6YU8P8=; b=M35ZP8GBaYo7tMY3liiEEPokDR3SXRiJPGtqDJo/nu1mkM00Xryku+mnv0CUBY8aNPJ1l7r35JZ43lkLTtRV33ieyhlaLC+1HkLrSdqBv7vByqWicshwPbHDjJxSjL6bR+Y2puJk+BbN66wSR9S+s05057ocKOBNaVkLYycBA4ptcL/6z/KjHcVMrvy1wmvbEctNeFwG2CT2HOunnJgsggk699xdoFwJidZK4DxajvYr+jnxzhjIaE7B2RNe2tK+ZelX2/ZnZMPwV+4jdy1dU23IBoi3xI3w6aOkLCvxQ4znRCZ10/xU7o38X3jSv5Eia4dvqDAVibJ+ZQD3BWU8tg== 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=tBTcIjm37UtLq0zAQITdLSWHUMHZT3pQge48O6YU8P8=; b=YvulLQK1EK5HCGkGkvPy/NAna/OktoKPY1M0mqG7mYmjRr+yBLtc3QjUNx5hPFwvlW/7QEQB55SayyK/HOC/vbGa5ci6EczQAY4ywYXFyi4G8NiWw4aM0N0TgwIjqkbWDwmYSLtR+OLrzxNJsFYCKp9e+nW/7MJ6rl7LiaaWyUE= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by AS2PR08MB8621.eurprd08.prod.outlook.com (2603:10a6:20b:55c::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6086.21; Fri, 10 Feb 2023 16:33:21 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::8b7b:e3be:cccb:1936]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::8b7b:e3be:cccb:1936%6]) with mapi id 15.20.6086.021; Fri, 10 Feb 2023 16:33:21 +0000 From: Tamar Christina To: Richard Sandiford CC: Tamar Christina via Gcc-patches , nd , "rguenther@suse.de" , "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/SYCPI4EDky3xQ0ADEnbFq7IMBSsgAABFlCAACYcToAAAIfAgAAHedGAAACH4A== Date: Fri, 10 Feb 2023 16:33:20 +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: 373E7EF469468645B9F943A918DEA7F1.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_|AS2PR08MB8621:EE_|AM7EUR03FT006:EE_|AS8PR08MB8660:EE_ X-MS-Office365-Filtering-Correlation-Id: b309f529-dfc1-48d5-274e-08db0b848de4 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: +SnDOJK3xPYtQJuIBuYS6rh4zQ6T2G0+XCpgGwItoJVPyftVe2IM/j112hVwItGAJOehDBnoRcUWAHcR0iaO3Vz9iz1F4ONP6Z81pdY5POswe55hiTcS9SEgp/29W7gq0u4MIPT44bAewKjZM2MaXrdIWB+7Mc1Qokm4O7eh7kZ/AoIb7niluOmSKincByfl0ynd6QtHYKZ99Tt4yGHLxfLKhCpJQiVO9O5pthp8X8jrpCrDSLLEOxpkOoAwL7Mr/QeNkWTHAVYo0FqBvOehrYJlaU2FEAHSzEEajEAwFdMnyYf/RtUiqT3wKW5+nBngafTakmChfYFvQTqRo8OEFOi97YmikGXJEVRxnbwe53py5S3oSoiOgwshNwUFo7DMvHIQgUhYSH87ZiNOOk426ZyFz8df0d9CvGmBbRFXGbjnm+qTCLIt+aCGRsDvzoVmlHW1A5Jl5rODEHdNzbvO8T0sNnTzFNsuLFowR/zjiE8r1rVdapObe3PA8HNbLUDxJVgVDMaPO6MR9wQc202dnCgeT7qV+zSa/ziLDK4roOGQh/RcGT/3e62GbgpMhpm/dq6lwu34uLd9TTaiSP4me5r4QA17ZdhXP8wsETduTgNBgGsBReB9grUsO3Kdsn8J2fZm0KChJYIsBz5Lj8K+KxjB/rAeJdQuEE+PWqx3D9BEv2hVo09a/SH7Dx/Irx3UYchRZIMKxdsAxFZ5PxZhGg== 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)(39860400002)(366004)(396003)(376002)(346002)(451199018)(66946007)(83380400001)(66476007)(66446008)(64756008)(316002)(6636002)(54906003)(6862004)(52536014)(5660300002)(8936002)(478600001)(4326008)(41300700001)(66556008)(8676002)(76116006)(9686003)(26005)(6506007)(186003)(53546011)(71200400001)(7696005)(33656002)(38070700005)(55016003)(86362001)(2906002)(122000001)(38100700002);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS2PR08MB8621 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: AM7EUR03FT006.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: d63a9aea-c82b-4387-4857-08db0b848537 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 55iP0F9+NZksdGK3WUrXLcm6XTalXeSBdvm7FrNXZb3G36cNQPExqHhOcf1Xs8g0EDQZgR4pJHB+5CfOfiC5DN/MZovnbyAIKobdClR/VJrLbEoWqUBylZ0l7muO4CrwiaqK+S3yoKKuzyZz1p8TC43vqh9bwv+92slqYU/OfuZBVGUd4c8zOd5tSQrpRLPdGq7ZFmY1vS54TQd2LIzZLec8pbn7lHcFEKoH1jhX664ROqjc+M8nHbWOotcVDAunsu8pHkQey1Tdmz8/9xTbqa1q24YCaQl0CziKA4lu/aLr0Hvf9B8SZxNnb+9+sWuXVOQ7TfIyoqPepALP/eYh6Zi+oSsHLXu+/tFyX+CSTgPfIoVt/YfO6JoehbIyyzlwfEWp+zopsjAlXkWWrXNRE2JTv/joEx4lg++MbyvdTof9oS9ZzfYndB+PkQ0nvujJAFC0kNNhOcPiG+99e/Rt2Vv1ujJU/mGZSm3jtcQSGMIK36QPvTkLgwTvd8AR9XAO2Vg06w8xfOH0oS3IXaboOecTPb2tXTWJ5gyE7P1c+QM/0olW/eIqMK0F1yp7oKCt8kXroN1fnIrN8ksU1rxJnoNU9JnitK5dUPApYR/+kSRTkSonP4khr7CvjuvTlGf22X6wSZOEcXEzGtHnGDTk+/l5TJgSVOpuvK3kEkJwkz/I49/xxVHysOZaFHPAPwwFh4mvDENF9PetfBDvvliAlA== 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)(39860400002)(136003)(376002)(396003)(346002)(451199018)(40470700004)(36840700001)(46966006)(356005)(86362001)(33656002)(81166007)(82740400003)(82310400005)(26005)(36860700001)(83380400001)(336012)(47076005)(107886003)(186003)(6506007)(9686003)(478600001)(53546011)(7696005)(316002)(6636002)(8936002)(41300700001)(52536014)(54906003)(5660300002)(2906002)(70586007)(6862004)(70206006)(40480700001)(4326008)(40460700003)(55016003)(8676002);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Feb 2023 16:33:34.6404 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b309f529-dfc1-48d5-274e-08db0b848de4 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: AM7EUR03FT006.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8660 X-Spam-Status: No, score=-4.9 required=5.0 tests=BAYES_00,BODY_8BITS,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: PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBSaWNoYXJkIFNhbmRpZm9yZCA8 cmljaGFyZC5zYW5kaWZvcmRAYXJtLmNvbT4NCj4gU2VudDogRnJpZGF5LCBGZWJydWFyeSAxMCwg MjAyMyA0OjI1IFBNDQo+IFRvOiBUYW1hciBDaHJpc3RpbmEgPFRhbWFyLkNocmlzdGluYUBhcm0u Y29tPg0KPiBDYzogVGFtYXIgQ2hyaXN0aW5hIHZpYSBHY2MtcGF0Y2hlcyA8Z2NjLXBhdGNoZXNA Z2NjLmdudS5vcmc+OyBuZA0KPiA8bmRAYXJtLmNvbT47IHJndWVudGhlckBzdXNlLmRlOyBqbGF3 QHZlbnRhbmFtaWNyby5jb20NCj4gU3ViamVjdDogUmU6IFtQQVRDSCAxLzJdbWlkZGxlLWVuZDog Rml4IHdyb25nIG92ZXJtYXRjaGluZyBvZiBkaXYtYml0bWFzaw0KPiBieSB1c2luZyBuZXcgb3B0 YWJzIFtQUjEwODU4M10NCj4gDQo+IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFy bS5jb20+IHdyaXRlczoNCj4gPj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJv bTogUmljaGFyZCBTYW5kaWZvcmQgPHJpY2hhcmQuc2FuZGlmb3JkQGFybS5jb20+DQo+ID4+IFNl bnQ6IEZyaWRheSwgRmVicnVhcnkgMTAsIDIwMjMgMzo1NyBQTQ0KPiA+PiBUbzogVGFtYXIgQ2hy aXN0aW5hIDxUYW1hci5DaHJpc3RpbmFAYXJtLmNvbT4NCj4gPj4gQ2M6IFRhbWFyIENocmlzdGlu YSB2aWEgR2NjLXBhdGNoZXMgPGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnPjsgbmQNCj4gPj4gPG5k QGFybS5jb20+OyByZ3VlbnRoZXJAc3VzZS5kZTsgamxhd0B2ZW50YW5hbWljcm8uY29tDQo+ID4+ IFN1YmplY3Q6IFJlOiBbUEFUQ0ggMS8yXW1pZGRsZS1lbmQ6IEZpeCB3cm9uZyBvdmVybWF0Y2hp bmcgb2YNCj4gPj4gZGl2LWJpdG1hc2sgYnkgdXNpbmcgbmV3IG9wdGFicyBbUFIxMDg1ODNdDQo+ ID4+DQo+ID4+IFRhbWFyIENocmlzdGluYSA8VGFtYXIuQ2hyaXN0aW5hQGFybS5jb20+IHdyaXRl czoNCj4gPj4gPj4gPiBhL2djYy90cmVlLXZlY3QtcGF0dGVybnMuY2MgYi9nY2MvdHJlZS12ZWN0 LXBhdHRlcm5zLmNjIGluZGV4DQo+ID4+ID4+ID4NCj4gPj4gPj4NCj4gPj4NCj4gNjkzNGFlYmM2 OWYyMzFhZjI0NjY4ZjBhMWMzZDE0MGU5N2Y1NTQ4Ny4uZTM5ZDdlNmIzNjJlZjQ0ZWIyZmM0Njdm MzMNCj4gPj4gPj4gNjkNCj4gPj4gPj4gPiBkZTJhZmVhMTM5ZDYgMTAwNjQ0DQo+ID4+ID4+ID4g LS0tIGEvZ2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jYw0KPiA+PiA+PiA+ICsrKyBiL2djYy90cmVl LXZlY3QtcGF0dGVybnMuY2MNCj4gPj4gPj4gPiBAQCAtMzkxNCwxMiArMzkxNCw4MiBAQCB2ZWN0 X3JlY29nX2Rpdm1vZF9wYXR0ZXJuICh2ZWNfaW5mbw0KPiA+PiAqdmluZm8sDQo+ID4+ID4+ID4g ICAgICAgIHJldHVybiBwYXR0ZXJuX3N0bXQ7DQo+ID4+ID4+ID4gICAgICB9DQo+ID4+ID4+ID4g ICAgZWxzZSBpZiAoKGNzdCA9IHVuaWZvcm1faW50ZWdlcl9jc3RfcCAob3BybmQxKSkNCj4gPj4g Pj4gPiAtCSAgICYmIHRhcmdldG0udmVjdG9yaXplLmNhbl9zcGVjaWFsX2Rpdl9ieV9jb25zdCAo cmhzX2NvZGUsDQo+ID4+ID4+IHZlY3R5cGUsDQo+ID4+ID4+ID4gLQkJCQkJCQkgIHdpOjp0b193 aWRlDQo+IChjc3QpLA0KPiA+PiA+PiA+IC0JCQkJCQkJICBOVUxMLA0KPiBOVUxMX1JUWCwNCj4g Pj4gPj4gPiAtCQkJCQkJCSAgTlVMTF9SVFgpKQ0KPiA+PiA+PiA+ICsJICAgJiYgVFlQRV9VTlNJ R05FRCAoaXR5cGUpDQo+ID4+ID4+ID4gKwkgICAmJiByaHNfY29kZSA9PSBUUlVOQ19ESVZfRVhQ Ug0KPiA+PiA+PiA+ICsJICAgJiYgdmVjdHlwZQ0KPiA+PiA+PiA+ICsJICAgJiYgZGlyZWN0X2lu dGVybmFsX2ZuX3N1cHBvcnRlZF9wIChJRk5fQURESCwgdmVjdHlwZSwNCj4gPj4gPj4gPiArCQkJ CQkgICAgICBPUFRJTUlaRV9GT1JfU1BFRUQpKQ0KPiA+PiA+PiA+ICAgICAgew0KPiA+PiA+PiA+ IC0gICAgICByZXR1cm4gTlVMTDsNCj4gPj4gPj4gPiArICAgICAgLyogZGl2IG9wdGltaXphdGlv bnMgdXNpbmcgbmFycm93aW5ncw0KPiA+PiA+PiA+ICsgICAgICAgd2UgY2FuIGRvIHRoZSBkaXZp c2lvbiBlLmcuIHNob3J0cyBieSAyNTUgZmFzdGVyIGJ5IGNhbGN1bGF0aW5nIGl0DQo+IGFzDQo+ ID4+ID4+ID4gKyAgICAgICAoeCArICgoeCArIDI1NykgPj4gOCkpID4+IDggYXNzdW1pbmcgdGhl IG9wZXJhdGlvbiBpcyBkb25lIGluDQo+ID4+ID4+ID4gKyAgICAgICBkb3VibGUgdGhlIHByZWNp c2lvbiBvZiB4Lg0KPiA+PiA+PiA+ICsNCj4gPj4gPj4gPiArICAgICAgIElmIHdlIGltYWdpbmUg YSBzaG9ydCBhcyBiZWluZyBjb21wb3NlZCBvZiB0d28gYmxvY2tzIG9mDQo+ID4+ID4+ID4gKyBi eXRlcw0KPiA+PiB0aGVuDQo+ID4+ID4+ID4gKyAgICAgICBhZGRpbmcgMjU3IG9yIDBiMDAwMF8w MDAxXzAwMDBfMDAwMSB0byB0aGUgbnVtYmVyIGlzDQo+ID4+ID4+ID4gKyBlcXVpdmFsZW50DQo+ ID4+IHRvDQo+ID4+ID4+ID4gKyAgICAgICBhZGRpbmcgMSB0byBlYWNoIHN1YiBjb21wb25lbnQ6 DQo+ID4+ID4+ID4gKw0KPiA+PiA+PiA+ICsJICAgIHNob3J0IHZhbHVlIG9mIDE2LWJpdHMNCj4g Pj4gPj4gPiArICAgICAgIOKUjOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU gOKUgOKUrOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKUgOKU kA0KPiA+PiA+PiA+ICsgICAgICAg4pSCICAgICAgICAgICAgICDilIIgICAgICAgICAgICAgICAg 4pSCDQo+ID4+ID4+ID4gKyAgICAgICDilJTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilIDilIDilLTilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDilIDi lIDilIDilJgNCj4gPj4gPj4gPiArCSA4LWJpdCBwYXJ0MSDilrIgIDgtYml0IHBhcnQyICAg4pay DQo+ID4+ID4+ID4gKwkJICAgICDilIIgICAgICAgICAgICAgICAg4pSCDQo+ID4+ID4+ID4gKwkJ ICAgICDilIIgICAgICAgICAgICAgICAg4pSCDQo+ID4+ID4+ID4gKwkJICAgICsxICAgICAgICAg ICAgICAgKzENCj4gPj4gPj4gPiArDQo+ID4+ID4+ID4gKyAgICAgICBhZnRlciB0aGUgZmlyc3Qg YWRkaXRpb24sIHdlIGhhdmUgdG8gc2hpZnQgcmlnaHQgYnkgOCwgYW5kIG5hcnJvdw0KPiB0aGUN Cj4gPj4gPj4gPiArICAgICAgIHJlc3VsdHMgYmFjayB0byBhIGJ5dGUuICBSZW1lbWJlciB0aGF0 IHRoZSBhZGRpdGlvbiBtdXN0DQo+ID4+ID4+ID4gKyBiZSBkb25lDQo+ID4+IGluDQo+ID4+ID4+ ID4gKyAgICAgICBkb3VibGUgdGhlIHByZWNpc2lvbiBvZiB0aGUgaW5wdXQuICBIb3dldmVyIGlm IHdlIGtub3cNCj4gPj4gPj4gPiArIHRoYXQgdGhlDQo+ID4+ID4+IGFkZGl0aW9uDQo+ID4+ID4+ ID4gKyAgICAgICBgeCArIDI1N2AgZG9lcyBub3Qgb3ZlcmZsb3cgdGhlbiB3ZSBjYW4gZG8gdGhl IG9wZXJhdGlvbg0KPiA+PiA+PiA+ICsgaW4gdGhlDQo+ID4+ID4+IGN1cnJlbnQNCj4gPj4gPj4g PiArICAgICAgIHByZWNpc2lvbi4gIEluIHdoaWNoIGNhc2Ugd2UgZG9uJ3QgbmVlZCB0aGUgcGFj ayBhbmQgdW5wYWNrcy4NCj4gKi8NCj4gPj4gPj4gPiArICAgICAgYXV0byB3Y3N0ID0gd2k6OnRv X3dpZGUgKGNzdCk7DQo+ID4+ID4+ID4gKyAgICAgIGludCBwb3cgPSB3aTo6ZXhhY3RfbG9nMiAo d2NzdCArIDEpOw0KPiA+PiA+PiA+ICsgICAgICBpZiAocG93ID09IChpbnQpIChlbGVtZW50X3By ZWNpc2lvbiAodmVjdHlwZSkgLyAyKSkNCj4gPj4gPj4gPiArCXsNCj4gPj4gPj4gPiArCSAgd2lk ZV9pbnQgbWluLG1heDsNCj4gPj4gPj4gPiArCSAgLyogSWYgd2UncmUgaW4gYSBwYXR0ZXJuIHdl IG5lZWQgdG8gZmluZCB0aGUgb3JnaW5hbA0KPiBkZWZpbml0aW9uLiAgKi8NCj4gPj4gPj4gPiAr CSAgdHJlZSBvcDAgPSBvcHJuZDA7DQo+ID4+ID4+ID4gKwkgIGdpbXBsZSAqc3RtdCA9IFNTQV9O QU1FX0RFRl9TVE1UIChvcHJuZDApOw0KPiA+PiA+PiA+ICsJICBzdG10X3ZlY19pbmZvIHN0bXRf aW5mbyA9IHZpbmZvLT5sb29rdXBfc3RtdCAoc3RtdCk7DQo+ID4+ID4+ID4gKwkgIGlmIChpc19w YXR0ZXJuX3N0bXRfcCAoc3RtdF9pbmZvKSkNCj4gPj4gPj4gPiArCSAgICB7DQo+ID4+ID4+ID4g KwkgICAgICBhdXRvIG9yaWdfc3RtdCA9IFNUTVRfVklORk9fUkVMQVRFRF9TVE1UDQo+IChzdG10 X2luZm8pOw0KPiA+PiA+PiA+ICsJICAgICAgaWYgKGlzX2dpbXBsZV9hc3NpZ24gKFNUTVRfVklO Rk9fU1RNVCAob3JpZ19zdG10KSkpDQo+ID4+ID4+ID4gKwkJb3AwID0gZ2ltcGxlX2Fzc2lnbl9s aHMgKFNUTVRfVklORk9fU1RNVA0KPiAob3JpZ19zdG10KSk7DQo+ID4+ID4+ID4gKwkgICAgfQ0K PiA+PiA+Pg0KPiA+PiA+PiBJZiB0aGlzIGlzIGdlbmVyYWxseSBzYWZlIChJJ20gc2tpcHBpbmcg dGhpbmtpbmcgYWJvdXQgaXQgaW4gdGhlDQo+ID4+ID4+IGludGVyZXN0cyBvZiBhIHF1aWNrIHJl dmlldyA6LSkpLCB0aGVuIEkgdGhpbmsgaXQgc2hvdWxkIGJlIGRvbmUNCj4gPj4gPj4gaW4gdmVj dF9nZXRfcmFuZ2VfaW5mbyBpbnN0ZWFkLiAgVXNpbmcgZ2ltcGxlX2dldF9saHMgd291bGQgYmUN Cj4gPj4gPj4gbW9yZSBnZW5lcmFsIHRoYW4gaGFuZGxpbmcganVzdCBhc3NpZ25tZW50cy4NCj4g Pj4gPj4NCj4gPj4gPj4gPiArDQo+ID4+ID4+ID4gKwkgIC8qIENoZWNrIHRoYXQgbm8gb3ZlcmZs b3cgd2lsbCBvY2N1ci4gIElmIHdlIGRvbid0IGhhdmUgcmFuZ2UNCj4gPj4gPj4gPiArCSAgICAg aW5mb3JtYXRpb24gd2UgY2FuJ3QgcGVyZm9ybSB0aGUgb3B0aW1pemF0aW9uLiAgKi8NCj4gPj4g Pj4gPiArCSAgaWYgKHZlY3RfZ2V0X3JhbmdlX2luZm8gKG9wMCwgJm1pbiwgJm1heCkpDQo+ID4+ ID4+ID4gKwkgICAgew0KPiA+PiA+PiA+ICsJICAgICAgd2lkZV9pbnQgb25lID0gd2k6OnRvX3dp ZGUgKGJ1aWxkX29uZV9jc3QgKGl0eXBlKSk7DQo+ID4+ID4+ID4gKwkgICAgICB3aWRlX2ludCBh ZGRlciA9IHdpOjphZGQgKG9uZSwgd2k6OmxzaGlmdCAob25lLCBwb3cpKTsNCj4gPj4gPj4gPiAr CSAgICAgIHdpOjpvdmVyZmxvd190eXBlIG92ZjsNCj4gPj4gPj4gPiArCSAgICAgIC8qIFdlIG5l ZWQgYWRkZXIgYW5kIG1heCBpbiB0aGUgc2FtZSBwcmVjaXNpb24uICAqLw0KPiA+PiA+PiA+ICsJ ICAgICAgd2lkZV9pbnQgemFkZGVyDQo+ID4+ID4+ID4gKwkJPSB3aWRlX2ludF9zdG9yYWdlOjpm cm9tIChhZGRlciwgd2k6OmdldF9wcmVjaXNpb24NCj4gKG1heCksDQo+ID4+ID4+ID4gKwkJCQkJ ICBVTlNJR05FRCk7DQo+ID4+ID4+ID4gKwkgICAgICB3aTo6YWRkIChtYXgsIHphZGRlciwgVU5T SUdORUQsICZvdmYpOw0KPiA+PiA+Pg0KPiA+PiA+PiBDb3VsZCB5b3UgZXhwbGFpbiB0aGlzIGEg Yml0IG1vcmU/ICBXaGVuIGRvIHdlIGhhdmUgbWlzbWF0Y2hlZA0KPiA+PiA+PiBwcmVjaXNpb25z Pw0KPiA+PiA+DQo+ID4+ID4gQyBwcm9tb3Rpb24gcnVsZXMgd2lsbCBwcm9tb3RlIGUuZy4NCj4g Pj4gPg0KPiA+PiA+IHZvaWQgZnVuMih1aW50OF90KiByZXN0cmljdCBwaXhlbCwgdWludDhfdCBs ZXZlbCwgaW50IG4pIHsNCj4gPj4gPiAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSs9MSkNCj4g Pj4gPiAgICAgcGl4ZWxbaV0gPSAocGl4ZWxbaV0gKyBsZXZlbCkgLyAweGZmOyB9DQo+ID4+ID4N Cj4gPj4gPiBBbmQgaGF2ZSB0aGUgYWRkaXRpb24gYmUgZG9uZSBhcyBhIDMyIGJpdCBpbnRlZ2Vy LiAgVGhlIHZlY3Rvcml6ZXINCj4gPj4gPiB3aWxsIGRlbW90ZSB0aGlzIGRvd24gdG8gYSBzaG9y dCwgYnV0IHJhbmdlIGluZm9ybWF0aW9uIGlzIG5vdA0KPiA+PiA+IHN0b3JlZCBmb3IgcGF0dGVy bnMuICBTbyBJbiB0aGUgYWJvdmUgdGhlIHJhbmdlIHdpbGwgY29ycmVjdGx5IGJlDQo+ID4+ID4g MHgxZmUgYnV0IHRoZSBwcmVjaXNpb24gd2lsbCBiZSB0aGF0IG9mIHRoZSBvcmlnaW5hbCBleHBy ZXNzaW9uLCBzbw0KPiA+PiA+IDMyLiAgVGhpcyB3aWxsIGJlIGEgbWlzbWF0Y2ggd2l0aCBpdHlw ZSB3aGljaCBpcyBkZXJpdmVkIGZyb20gdGhlDQo+ID4+ID4gc2l6ZSB0aGUgdmVjdG9yaXplcg0K PiA+PiB3aWxsIHBlcmZvcm0gdGhlIG9wZXJhdGlvbiBpbi4NCj4gPj4NCj4gPj4gR2FoLCBtaXNz ZWQgdGhpcyBmaXJzdCB0aW1lIHJvdW5kLCBzb3JyeS4NCj4gPj4NCj4gPj4gUmljaGkgd291bGQg a25vdyBiZXR0ZXIgdGhhbiBtZSwgYnV0IEkgdGhpbmsgaXQncyBkYW5nZXJvdXMgdG8gcmVseQ0K PiA+PiBvbiB0aGUgb3JpZy9wYXR0ZXJuIGxpbmsgZm9yIHJhbmdlIGluZm9ybWF0aW9uLiAgVGhl IGVuZCByZXN1bHQgb2YgYQ0KPiA+PiBwYXR0ZXJuDQo+ID4+ICh2ZWN0X3N0bXRfdG9fdmVjdG9y aXplKSBoYXMgdG8gaGF2ZSB0aGUgc2FtZSB0eXBlIGFzIHRoZSBsaHMgb2YgdGhlDQo+ID4+IG9y aWdpbmFsIHN0YXRlbWVudC4gIEJ1dCB0aGUgb3RoZXIgc3RhdGVtZW50cyBpbiB0aGUgcGF0dGVy biBzZXF1ZW5jZQ0KPiA+PiBjYW4gZG8gYXJiaXRyYXJ5IHRoaW5ncy4gIFRoZWlyIHJhbmdlIGlz bid0IHByZWRpY3RhYmxlIGZyb20gdGhlDQo+ID4+IHJhbmdlIG9mIHRoZSBvcmlnaW5hbCBzdGF0 ZW1lbnQgcmVzdWx0Lg0KPiA+Pg0KPiA+PiBJSVJDLCB0aGUgYWRkaXRpb24gYWJvdmUgaXMgY29u dmVydGVkIHRvOg0KPiA+Pg0KPiA+PiAgIGEnID0gKHVpbnQxNl90KSBwaXhlbFtpXQ0KPiA+PiAg IGInID0gKHVpbnQxNl90KSBsZXZlbA0KPiA+PiAgIHN1bScgPSBhJyArIGInDQo+ID4+ICAgc3Vt ID0gKGludCkgc3VtJw0KPiA+Pg0KPiA+PiB3aGVyZSBzdW0gaXMgdGhlIGRpcmVjdCByZXBsYWNl bWVudCBvZiAicGl4ZWxbaV0gKyBsZXZlbCIsIHdpdGggdGhlDQo+ID4+IHNhbWUgdHlwZSBhbmQg cmFuZ2UuICBUaGUgZGl2aXNpb24gdGhlbiB1c2VzIHN1bScgaW5zdGVhZCBvZiBzdW0uDQo+ID4+ DQo+ID4+IEJ1dCB0aGUgZmFjdCB0aGF0IHN1bScgaXMgcGFydCBvZiB0aGUgc2FtZSBwYXR0ZXJu IGFzIHN1bSBkb2Vzbid0DQo+ID4+IGd1YXJhbnRlZSB0aGF0IHN1bScgaGFzIHRoZSBzYW1lIHJh bmdlIGFzIHN1bS4gIEUuZy4gdGhlIHBhdHRlcm4NCj4gPj4gc3RhdGVtZW50cyBhZGRlZCBieSB0 aGUgZGl2aXNpb24gb3B0aW1pc2F0aW9uIHdvdWxkbid0IGhhdmUgdGhpcw0KPiBwcm9wZXJ0eS4N Cj4gPg0KPiA+IFNvIG15IGFzc3VtcHRpb24gaXMgdGhhdCBubyBwYXR0ZXJuIHdvdWxkIHJlcGxh Y2UgYSBzdGF0ZW1lbnQgd2l0aA0KPiA+IHNvbWV0aGluZyBUaGF0IGhhcyBoaWdoZXIgcHJlY2lz aW9uIHRoYW4gdGhlIEMgc3RhdGVtZW50LiBUaGUgcGF0dGVybg0KPiA+IGFib3ZlIGlzIGRlbW90 ZWQgQnkgdGhlIHZlY3Rvcml6ZXIgYmFzZWQgb24gcmFuZ2UgaW5mb3JtYXRpb24gYWxyZWFkeS4N Cj4gPiBNeSBhc3N1bXB0aW9uIHdhcyB0aGF0IHRoZSBwcmVjaXNpb24gY2FuIG9ubHkgZXZlciBi ZSBzbWFsbGVyLCBiZWNhdXNlDQo+ID4gb3RoZXJ3aXNlIHRoZSBwYXR0ZXJuIGhhcyB2aW9sYXRl ZCB0aGUgc2VtYW50aWNzIG9mIHRoZSBDIGNvZGUsIHdoaWNoDQo+IHdvdWxkIGJlIGRhbmdlcm91 cyBpZiBlLmcuIHRoZSBleHByZXNzaW9uIGVzY2FwZXM/DQo+IA0KPiBJTU8gdGhlIGRpZmZlcmVu Y2UgaW4gcHJlY2lzaW9ucyB3YXMgYSBzeW1wdG9tIG9mIHRoZSBwcm9ibGVtIHJhdGhlciB0aGFu DQo+IHRoZSBkaXJlY3QgY2F1c2UuDQo+IA0KPiBUaGUgcG9pbnQgaXMgbW9yZSB0aGF0ICJCID0g dmVjdF9vcmlnX3N0bXQoQSkiIGp1c3Qgc2F5cyAiQSBpcyB1c2VkIHNvbWVob3cNCj4gaW4gYSBu ZXcgY2FsY3VsYXRpb24gb2YgQiIuICBBIG1pZ2h0IGVxdWFsIEIgKGlmIEEgcmVwbGFjZXMgQiks IG9yIEEgbWlnaHQgYmUgYW4NCj4gYXJiaXRyYXJ5IHRlbXBvcmFyeSByZXN1bHQuICBUaGUgY29k ZSBhYm92ZSBpcyBpbnN0ZWFkIHVzaW5nIGl0IHRvIG1lYW4gIkENCj4gZXF1YWxzIEIsIGV4cHJl c3NlZCBpbiBhIGRpZmZlcmVudCB0eXBlIi4gIFRoYXQgaGFwcGVucyB0byBiZSB0cnVlIGZvciBz dW0nIGluDQo+IHRoZSBzZXF1ZW5jZSBhYm92ZSwgYnV0IGl0IGlzbid0IHRydWUgb2Ygbm9uLWZp bmFsIHBhdHRlcm4gc3RhdGVtZW50cyBpbg0KPiBnZW5lcmFsLg0KPiANCg0KU29ycnkgZm9yIGJl aW5nIGRlbnNlLCBidXQgSSB0aG91Z2ggdGhhdCdzIGV4YWN0bHkgd2hhdCB0aGUgY29kZSBkb2Vz IGFuZCB3aGF0IEkNCnRyaWVkIGV4cGxhaW4gYmVmb3JlLiBJZiBCIGlzbid0IGEgZmluYWwgc3Rh dGVtZW50IHRoYW4gaXQgd29uJ3QgaGF2ZSBhbiBvcmlnaW5hbCBzdGF0ZW1lbnQuDQpBRkFJSywg dGhlIG9ubHkgcGxhY2VzIHdlIHNldCBvcmlnaW5hbCBzdGF0ZW1lbnQgaXMgdGhlIHJvb3Qgb2Yg dGhlIHBhdHRlcm4gZXhwcmVzc2lvbi4NCg0KPiBJbiBvdGhlciB3b3JkcywgdGhlIGNvZGUgaGFz bid0IHByb3ZlZCB0aGF0IHRoZSBwYXRoIGZyb20gQSB0bw0KPiB2ZWN0X3N0bXRfdG9fdmVjdG9y aXplKEIpIGp1c3QgaW52b2x2ZXMgY29udmVyc2lvbnMuDQo+IA0KPiBBcHBseWluZyB0aGUgcmFu Z2Ugb2YgYSBwYXR0ZXJuIHJlc3VsdCB0byBhbGwgdGVtcG9yYXJ5IHJlc3VsdHMgaW4gdGhlIHBh dHRlcm4NCj4gY291bGQgbGVhZCB0byB3cm9uZyByZXN1bHRzIGV2ZW4gd2hlbiB0aGUgcHJlY2lz aW9ucyBhcmUgYWxsIHRoZSBzYW1lLg0KDQpCdXQgbWF5YmUgSSdtIG1pc3JlbWVtYmVyaW5nIGhl cmUuIEkgZG9uJ3QgYmVsaWV2ZSB3ZSdkIGV2ZXIgbWF0Y2ggaW4gdGhlIG1pZGRsZSBvZg0KQSBt dWx0aSBwYXR0ZXJuIHNlcXVlbmNlIGJlY2F1c2UgdGhlIGFkZGl0aW9uYWwgcGF0dGVybnMgYXJl IG5vdCBlbWl0dGVkIGluIHRoZSBpbnN0cnVjdGlvbg0Kc3RyZWFtLiAgVGhhdCdzIHdoeSB3ZSBo YXZlIGFwcGVuZF9wYXR0ZXJuX2RlZl9zZXEgd2hpY2ggYXBwZW5kcyB0aGUgYWRkaXRpb25hbA0K c3RhdGVtZW5zIHRvIHRoZSBwYXR0ZXJuJ3MgZGVmIHNlcXVlbmNlLg0KDQpVbmxpa2UgdGhlIG9y aWdpbmFsIHNlZWQgZm9yIHRoZSBwYXR0ZXJuLCB0aGVzZSBhcmVuJ3QgbWF0ZXJpYWxpemVkIHVu dGlsIGNvZGVnZW4gb3IgU0xQIGJ1aWxkLg0KDQpCdXQgSSBjb3VsZCBiZSB3cm9uZy4uLg0KDQpU YW1hcg0KDQo+IA0KPiA+PiBJcyBpdCBwb3NzaWJsZSB0byB0ZWxsIHJhbmdlciB0byBjb21wdXRl IHRoZSByYW5nZSBvZiBleHByZXNzaW9ucw0KPiA+PiB0aGF0IGhhdmVuJ3QgYmVlbiBhZGRlZCB0 byB0aGUgSUw/ICAoR2VudWluZSBxdWVzdGlvbiwgaGF2ZW4ndCBsb29rZWQuDQo+ID4+IEl0IHNl ZW1zIHByZXR0eSBwb3dlcmZ1bCB0aG91Z2guKQ0KPiA+DQo+ID4gSSBkb24ndCBrbm93IGVpdGhl ciwgSSBndWVzcyBmb3IgdGhpbmdzIGl0IGhhcyBleHBsaWNpdCBrbm93bGVkZ2UNCj4gPiBhYm91 dCBpdCdzIG9rLCBzbw0KPiA+ICt3IG9yICp3IHdvdWxkIGJlIGZpbmUsIGJ1dCB3aXRoIGEgcmFu ZG9tIElGTl8gaXQnbGwgbGlrZWx5IGhhdmUgdG8gcHVudCBhcw0KPiB2YXJ5aW5nLg0KPiANCj4g WWVhaC4gIEJ1dCBzdW0nIGFib3ZlIGludm9sdmVzIHNpbXBsZSBhcml0aG1ldGljIGFuZCBjb252 ZXJzaW9ucywgc28gSUZOcw0KPiBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtLg0KPiANCj4gVGhhbmtz LA0KPiBSaWNoYXJkDQo=