From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50063.outbound.protection.outlook.com [40.107.5.63]) by sourceware.org (Postfix) with ESMTPS id B72923857B9B for ; Tue, 7 Jun 2022 09:02:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B72923857B9B ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=F7YSxhjpOnn+EzI3JgIpPRsXvHIY7jxRID7wrumH35CRrCkhF6mzs2PSVw2QaVaDtFKJdppTOxtqox3lxNwvvMMDCg+gBzWD/btpg01bveD+8n+UL9rKHoJ2nT2jmHhkT7N8NxQPRMpNPH1Z8+3+3+fK+mFpyje2mypmqauL6Tq52+2neZlGxZAOc6cl6OuZ71vLUzGV+tj23yNugIbN7tpk1rbwTEIue9wlLuFtLbbIDRvQnap8s6lQr6p9DoamMC++CSUltfGRSz5A2kdnDlYahN13o8z2TZM30BQAj6nztQM5NpkaJplTBPyAUQC4ralJwl6G00bJJP0cJkwEwQ== ARC-Message-Signature: i=2; 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=aio2Pkv0FjTBWA/lZctvXr7iNVz5Od/FxFN5o/fpxmg=; b=SVMluspZfSDFUe7l5G6Dw2FdHCvNU9ENFbkJ4qgk2+hsu04Jn7aKnr+NyGM3Arovhu527SlsoFZbNV7IOkGRc8hDMnOH9+p8olHsV4uqvkRUmmP2yuay50DsYQ5vUUuuzaPywyliRQbXC0PRU79arQb4DLC0y63OrX+IyfwXRbx3nPizPbdvePbMQazyPo8MrzbDGpv4rpST8onRFfpXte8xr2yBbsPQTj31I4Nq81qgMi6iPE7WduGR6iMYyrTSlDbTeBJf6TCqS7SYT/UkREIaLKWG64R5dbLvhcO4SzEhqEyPqc+d0QqwLeBQxCV/Zp5DuJ7G3BlmrNwAe1be/w== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) Received: from DB8P191CA0001.EURP191.PROD.OUTLOOK.COM (2603:10a6:10:130::11) by AS8PR08MB7864.eurprd08.prod.outlook.com (2603:10a6:20b:52f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.13; Tue, 7 Jun 2022 09:02:05 +0000 Received: from DBAEUR03FT045.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:130:cafe::c2) by DB8P191CA0001.outlook.office365.com (2603:10a6:10:130::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12 via Frontend Transport; Tue, 7 Jun 2022 09:02:05 +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 DBAEUR03FT045.mail.protection.outlook.com (100.127.142.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12 via Frontend Transport; Tue, 7 Jun 2022 09:02:05 +0000 Received: ("Tessian outbound d3318d0cda7b:v120"); Tue, 07 Jun 2022 09:02:04 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 10ea7150631dcc98 X-CR-MTA-TID: 64aa7808 Received: from 8eddd6389303.2 by 64aa7808-outbound-1.mta.getcheckrecipient.com id C999C9E2-F5D5-45A9-B75F-F42D8D2DF52D.1; Tue, 07 Jun 2022 09:01:58 +0000 Received: from EUR04-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 8eddd6389303.2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 07 Jun 2022 09:01:58 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Qx2PVx/11WT8xov8uqX0Q9gcb1ug3Fl/pp3miYJmtpodNBvQO5LS+KsqUm74SuJcGCMiDO+6Xza/oZx9NxbRLu6oF2zoWgFxYj9vru67tKeb9PKfiF6PMmqHFqxjxQpAXQ1/Q3xehO+u9bEoo66I0WL2Beezz6+l64d6BX5d+36hy/o6NhtM3mOdj8w3ledYhqKXqXvNvVI2VUNQNLqZ3+kKmJDj6dEsFskHhMkiWl1os/xNi4POFKslWypDY2V7B470sQPNJYW1Coku37/fL+uJcBMsl5psdPLObthvXR079qVcOF3LizEy9wOW57a16k5RNyQ2WQg6O4LW/w4RQQ== 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=aio2Pkv0FjTBWA/lZctvXr7iNVz5Od/FxFN5o/fpxmg=; b=jADVJjOPOb9T9r8KRLrtch46MX47kNezsVjiZZNsRdoOhnDoi6/o0/cFoLP7jmD9blkVE53zzX3e01bWGNj7S3jgB03Cydjfjn53sgpWv2wd3JAPn2k78Qet9GiGkyxob3/iSrPB4V2uFhuGAx0W8sDFOXvcR8AAzOP0YlM2BKCQw98GJU6CowN9QPjK2lwSAduE90mI5kvDXv7XehLwh+P867a0JWw87fbibRFhWgNhNjZbFYK4GpaFaN2W/pIdCgIdxqaXA6Z/KP22HFPs2zQg8wfhxr6NZuIq9jhe4K/4hMjMqsQ8khb5qnrvVB9BLMdXOj3mzL+5h8HDQ0iDQw== 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 AM8PR08MB6596.eurprd08.prod.outlook.com (2603:10a6:20b:369::24) by AM0PR08MB4051.eurprd08.prod.outlook.com (2603:10a6:208:125::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.15; Tue, 7 Jun 2022 09:01:55 +0000 Received: from AM8PR08MB6596.eurprd08.prod.outlook.com ([fe80::5489:caa5:5b5a:577f]) by AM8PR08MB6596.eurprd08.prod.outlook.com ([fe80::5489:caa5:5b5a:577f%7]) with mapi id 15.20.5314.019; Tue, 7 Jun 2022 09:01:54 +0000 From: Joel Hutton To: Richard Sandiford CC: Richard Biener , "gcc-patches@gcc.gnu.org" Subject: RE: [ping][vect-patterns] Refactor widen_plus/widen_minus as internal_fns Thread-Topic: [ping][vect-patterns] Refactor widen_plus/widen_minus as internal_fns Thread-Index: AdhwF28dojpvSLyiTNmi1jeopmd4IwBtZUUAAMI72vAAMn8JgAECjN1wACdCzq0AAUfZwA== Date: Tue, 7 Jun 2022 09:01:54 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: 55ff1f6d-9495-4088-1a71-08da486464e2 x-ms-traffictypediagnostic: AM0PR08MB4051:EE_|DBAEUR03FT045:EE_|AS8PR08MB7864:EE_ X-Microsoft-Antispam-PRVS: 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: gVQ9uOHob6KzCSK3PkBEx0Nf+bdNKu70pL6K7KE9gepLhYhIedkvzskFgb+pS1peVVqGFigQ58WoQB1VqXkamzpAKqlPgniQmDzlWh2ClUHtxHuUjfvljdjXuyk0mkG6mib6l0MYprJhA3VSgnpNn23kbpux+p3mhWuXYgLcllT1P4TR9lnfsU2ddiTNMzVpTNv0yrAkLlvMqFkTwUQmTxxUgGbPjMYlvEhlbdBFFByUByZsBTwE9oUyxWPUj+BSVgQk3+vQ7vMe2X0K7puj2EPu4CnCqrO1Me9qjzPPEt/QqubsUtUn0qMaOlMZ2nXVDBJ5LJMQPj5wWx+LKehzScnliy8AUK5Wp7ig6++/pjSXdQAcLu1JiB8zXVzMhuoLI/mxiBVWWXfpRNPaPAuS2YqfHNRK40zI0AVNISf/m/b+xPs4ZtnE0zuEupLDYMDVlbFPIXm3bEYmpDVP7qD2f56B/KNbLT8YHB41eNykJD6A3ZdychaG3RuvrGyjyCFjy7jurxn5J3VlHErymNSnqnvUlOyFejMMuMP0SAH3nrbNkBve8PUTdMigaoQbPp9x9tkO1XwzrArinKA17FY6bDvmDw8JF2CxVUH0Q7IwUoAxytjwYjejiLCRoNKXx2aaZvefcSrcZlxfLH9U/tG01kEA/QFv7CVC/vWqrs30bQaSwWLt+5EyP9bS/B+6sXWwhDsKsYPSfos0ZxxnKPfb8w== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM8PR08MB6596.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(38070700005)(33656002)(76116006)(86362001)(122000001)(38100700002)(8676002)(54906003)(66946007)(2906002)(6636002)(71200400001)(66446008)(316002)(6862004)(4326008)(66476007)(66556008)(64756008)(8936002)(5660300002)(52536014)(186003)(55016003)(83380400001)(26005)(6506007)(508600001)(9686003)(53546011)(7696005); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4051 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: DBAEUR03FT045.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 4af50127-6a3e-4b4f-adf6-08da48645eb6 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Wp8AUmZoeOJztBD5cC1A1y0597n/TGsIDUcB1/DYaFhKYiNJEHeQgfb/jPcjlM6vx8VXUynhFd7UBvZfsQV7UNGtqfDF/PmgFBlcKcG7e8AFQ5TnK+uWxZNBV3QtSpJwWpmsnJmWmWkPMrUhYGvK5FgbL3PFr3EvDIWM5EJyfF9Ujr8DIYrgecprnkdY1um4iDwMvNen4weTQeUrfncg7EhNHB67+RCq/sQCsX2WFI88yOXv4VRKbQe7p2zlMFV1PSI1VzkSPnjwra6Inx/ttAHUNL/Fr9HXfQ0IXzcLnM0GXERxJkXTSbK4NWhwx3zsyUNupWSUe4abDCcw+uo8TPcGuSMk3zcreS4p2OhWwHnSZMq5NsWirQEM3/hghOmMguOKNB0uE3+2qKxoJamMYBL1DKWeD99LF3oDCSQFJmzeHeZOj/odkNm9lIQ2gotxpWz5lthM6uTp4mLVu4Y/tjdVIjpO5SGXwxL4R9S1m67ysKePmwpVhpFVXoPp0SpJKXTjtU7q3x/qUH+qHX1cHq/bY1MNAwBW/IGVMNIlxY+lNxLyKzYxBgOdO4SU4eoO1FsiRCxVoImmyCmk+OTJKmSTEmlDqzwWCmWu4ed6Otsgpntx/ITS9HQu9NbycKV6VG26ZZpQ5XUdb+Ty9RHmq01JomlW65FiSFK8dWFzNSNu9INPyJt+soBesfJSj5WZ 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:(13230001)(4636009)(40470700004)(36840700001)(46966006)(83380400001)(9686003)(81166007)(52536014)(40460700003)(33656002)(82310400005)(2906002)(7696005)(5660300002)(6636002)(6506007)(54906003)(336012)(53546011)(47076005)(8936002)(26005)(6862004)(8676002)(4326008)(316002)(508600001)(356005)(86362001)(55016003)(36860700001)(186003)(70206006)(70586007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jun 2022 09:02:05.2659 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 55ff1f6d-9495-4088-1a71-08da486464e2 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: DBAEUR03FT045.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7864 X-Spam-Status: No, score=-11.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, FORGED_SPF_HELO, GIT_PATCH_0, KAM_DMARC_NONE, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jun 2022 09:02:15 -0000 VGhhbmtzIFJpY2hhcmQsDQoNCj4gSSB0aG91Z2h0IHRoZSBwb3RlbnRpYWwgcHJvYmxlbSB3aXRo IHRoZSBhYm92ZSBpcyB0aGF0IGdpbXBsZV9idWlsZCBpcyBhDQo+IGZvbGRpbmcgaW50ZXJmYWNl LCBzbyBpbiBwcmluY2lwbGUgaXQncyBhbGxvd2VkIHRvIHJldHVybiBhbiBleGlzdGluZyBTU0Ff TkFNRQ0KPiBzZXQgYnkgYW4gZXhpc3Rpbmcgc3RhdGVtZW50IChvciBldmVuIGEgY29uc3RhbnQp Lg0KPiBJIHRoaW5rIGluIHRoaXMgY29udGV4dCB3ZSBkbyBuZWVkIHRvIGZvcmNlIGEgbmV3IHN0 YXRlbWVudCB0byBiZSBjcmVhdGVkLg0KDQpCZWZvcmUgSSBtYWtlIGFueSBjaGFuZ2VzLCBJJ2Qg bGlrZSB0byBjaGVjayB3ZSdyZSBhbGwgb24gdGhlIHNhbWUgcGFnZS4NCg0KcmljaGksIGFyZSB5 b3Ugb2sgd2l0aCB0aGUgZ2ltcGxlX2J1aWxkIGZ1bmN0aW9uLCBwZXJoYXBzIHdpdGggYSBkaWZm ZXJlbnQgbmFtZSBpZiB5b3UgYXJlIGNvbmNlcm5lZCB3aXRoIG92ZXJsb2FkaW5nPyB3ZSBjb3Vs ZCB1c2UgZ2ltcGxlX2NoX2J1aWxkIG9yIGdpbXBsZV9jb2RlX2hlbHBlcl9idWlsZD8NCg0KU2lt aWxhcmx5IGFyZSB5b3Ugb2sgd2l0aCB0aGUgdXNlIG9mIGdpbXBsZV9leHRyYWN0X29wPyBJIHdv dWxkIGxlYW4gdG93YXJkcyB1c2luZyBpdCBhcyBpdCBpcyBjbGVhbmVyLCBidXQgSSBkb24ndCBo YXZlIHN0cm9uZyBmZWVsaW5ncy4NCg0KSm9lbA0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t LS0tDQo+IEZyb206IFJpY2hhcmQgU2FuZGlmb3JkIDxyaWNoYXJkLnNhbmRpZm9yZEBhcm0uY29t Pg0KPiBTZW50OiAwNyBKdW5lIDIwMjIgMDk6MTgNCj4gVG86IEpvZWwgSHV0dG9uIDxKb2VsLkh1 dHRvbkBhcm0uY29tPg0KPiBDYzogUmljaGFyZCBCaWVuZXIgPHJndWVudGhlckBzdXNlLmRlPjsg Z2NjLXBhdGNoZXNAZ2NjLmdudS5vcmcNCj4gU3ViamVjdDogUmU6IFtwaW5nXVt2ZWN0LXBhdHRl cm5zXSBSZWZhY3RvciB3aWRlbl9wbHVzL3dpZGVuX21pbnVzIGFzDQo+IGludGVybmFsX2Zucw0K PiANCj4gSm9lbCBIdXR0b24gPEpvZWwuSHV0dG9uQGFybS5jb20+IHdyaXRlczoNCj4gPj4gPiBQ YXRjaGVzIGF0dGFjaGVkLiBUaGV5IGFscmVhZHkgaW5jb3Jwb3JhdGVkIHRoZSAuY2MgcmVuYW1l LCBub3cNCj4gPj4gPiByZWJhc2VkIHRvIGJlIGFmdGVyIHRoZSBjaGFuZ2UgdG8gdHJlZS5oDQo+ ID4+DQo+ID4+IEBAIC0xNDEyLDggKzE0MTIsNyBAQCB2ZWN0X3JlY29nX3dpZGVuX29wX3BhdHRl cm4gKHZlY19pbmZvICp2aW5mbywNCj4gPj4gICAgICAgICAgICAgICAgICAgICAgICAyLCBvcHJu ZCwgaGFsZl90eXBlLCB1bnByb20sIHZlY3R5cGUpOw0KPiA+Pg0KPiA+PiAgICB0cmVlIHZhciA9 IHZlY3RfcmVjb2dfdGVtcF9zc2FfdmFyIChpdHlwZSwgTlVMTCk7DQo+ID4+IC0gIGdpbXBsZSAq cGF0dGVybl9zdG10ID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAodmFyLCB3aWRlX2NvZGUsDQo+ID4+ IC0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcHJuZFswXSwg b3BybmRbMV0pOw0KPiA+PiArICBnaW1wbGUgKnBhdHRlcm5fc3RtdCA9IGdpbXBsZV9idWlsZCAo dmFyLCB3aWRlX2NvZGUsIG9wcm5kWzBdLA0KPiA+PiBvcHJuZFsxXSk7DQo+ID4+DQo+ID4+DQo+ ID4+IHlvdSBzaG91bGQgYmUgYWJsZSB0byBkbyB3aXRob3V0IHRoZSBuZXcgZ2ltcGxlX2J1aWxk IG92ZXJsb2FkIGJ5DQo+ID4+IHVzaW5nDQo+ID4+DQo+ID4+ICAgIGdpbXBsZV9zZXEgc3RtdHMg PSBOVUxMOw0KPiA+PiAgICBnaW1wbGVfYnVpbGQgKCZzdG10cywgd2lkZV9jb2RlLCBpdHlwZSwg b3BybmRbMF0sIG9wcm5kWzFdKTsNCj4gPj4gICAgZ2ltcGxlICpwYXR0ZXJuX3N0bXQgPSBnaW1w bGVfc2VxX2xhc3Rfc3RtdCAoc3RtdHMpOw0KPiA+Pg0KPiA+PiBiZWNhdXNlICdnaW1wbGVfYnVp bGQnIGlzIGFuIGV4aXN0aW5nIEFQSS4NCj4gPg0KPiA+IERvbmUuDQo+ID4NCj4gPiBUaGUgZ2lt cGxlX2J1aWxkIG92ZXJsb2FkIHdhcyBhdCB0aGUgcmVxdWVzdCBvZiBSaWNoYXJkIFNhbmRpZm9y ZCwgSQ0KPiBhc3N1bWUgcmVtb3ZpbmcgaXQgaXMgb2sgd2l0aCB5b3UgUmljaGFyZCBTPw0KPiA+ IEZyb20gUmljaGFyZCBTYW5kaWZvcmQ6DQo+ID4+IEZvciBleGFtcGxlLCBJIHRoaW5rIHdlIHNo b3VsZCBoaWRlIHRoaXMgaW5zaWRlIGEgbmV3Og0KPiA+Pg0KPiA+PiAgIGdpbXBsZV9idWlsZCAo dmFyLCB3aWRlX2NvZGUsIG9wcm5kWzBdLCBvcHJuZFsxXSk7DQo+ID4+DQo+ID4+IHRoYXQgd29y a3MgZGlyZWN0bHkgb24gY29kZV9oZWxwZXIsIHNpbWlsYXJseSB0byB0aGUgbmV3IGNvZGVfaGVs cGVyDQo+ID4+IGdpbXBsZV9idWlsZCBpbnRlcmZhY2VzLg0KPiANCj4gSSB0aG91Z2h0IHRoZSBw b3RlbnRpYWwgcHJvYmxlbSB3aXRoIHRoZSBhYm92ZSBpcyB0aGF0IGdpbXBsZV9idWlsZCBpcyBh DQo+IGZvbGRpbmcgaW50ZXJmYWNlLCBzbyBpbiBwcmluY2lwbGUgaXQncyBhbGxvd2VkIHRvIHJl dHVybiBhbiBleGlzdGluZyBTU0FfTkFNRQ0KPiBzZXQgYnkgYW4gZXhpc3Rpbmcgc3RhdGVtZW50 IChvciBldmVuIGEgY29uc3RhbnQpLg0KPiBJIHRoaW5rIGluIHRoaXMgY29udGV4dCB3ZSBkbyBu ZWVkIHRvIGZvcmNlIGEgbmV3IHN0YXRlbWVudCB0byBiZSBjcmVhdGVkLg0KPiANCj4gT2YgY291 cnNlLCB0aGUgaG9wZSBpcyB0aGF0IHRoZXJlIHdvdWxkbid0IHN0aWxsIGJlIHN1Y2ggZm9sZGlu ZyBvcHBvcnR1bml0aWVzDQo+IGF0IHRoaXMgc3RhZ2UsIGJ1dCBJIGRvbid0IHRoaW5rIGl0J3Mg Z3VhcmFudGVlZCAoZXNwZWNpYWxseSB3aXRoIG9wdGlvbnMNCj4gZnV6emluZykuDQo+IA0KPiBT aW5kIEkgd2FzIG1lbnRpb25lZCA6LSkgLi4uDQo+IA0KPiBDb3VsZCB5b3UgcnVuIHRoZSBwYXRj aCB0aHJvdWdoIGNvbnRyaWIvY2hlY2tfR05VX3N0eWxlLnB5Pw0KPiBUaGVyZSBzZWVtIHRvIGJl IGEgZmV3IGxvbmcgbGluZXMuDQo+IA0KPiA+ICsgIGlmIChyZXNfb3AuY29kZS5pc190cmVlX2Nv ZGUgKCkpDQo+IA0KPiBEbyB5b3UgbmVlZCB0aGlzIGlzX3RyZWVfY29kZSAoKT8gIFRoZXNlIGNv bXBhcmlzb25z4oCmDQo+IA0KPiA+ICsgIHsNCj4gPiArICAgICAgd2lkZW5fYXJpdGggPSAoY29k ZSA9PSBXSURFTl9QTFVTX0VYUFINCj4gPiArCQkgICAgIHx8IGNvZGUgPT0gV0lERU5fTUlOVVNf RVhQUg0KPiA+ICsJCSAgICAgfHwgY29kZSA9PSBXSURFTl9NVUxUX0VYUFINCj4gPiArCQkgICAg IHx8IGNvZGUgPT0gV0lERU5fTFNISUZUX0VYUFIpOw0KPiANCj4g4oCmb3VnaHQgdG8gYmUgc2Fm ZSB1bmNvbmRpdGlvbmFsbHkuDQo+IA0KPiA+ICsgfQ0KPiA+ICsgIGVsc2UNCj4gPiArICAgICAg d2lkZW5fYXJpdGggPSBmYWxzZTsNCj4gPiArDQo+ID4gKyAgaWYgKCF3aWRlbl9hcml0aA0KPiA+ ICsgICAgICAmJiAhQ09OVkVSVF9FWFBSX0NPREVfUCAoY29kZSkNCj4gPiArICAgICAgJiYgY29k ZSAhPSBGSVhfVFJVTkNfRVhQUg0KPiA+ICsgICAgICAmJiBjb2RlICE9IEZMT0FUX0VYUFIpDQo+ ID4gKyAgICByZXR1cm4gZmFsc2U7DQo+ID4NCj4gPiAgICAvKiBDaGVjayB0eXBlcyBvZiBsaHMg YW5kIHJocy4gICovDQo+ID4gLSAgc2NhbGFyX2Rlc3QgPSBnaW1wbGVfYXNzaWduX2xocyAoc3Rt dCk7DQo+ID4gKyAgc2NhbGFyX2Rlc3QgPSBnaW1wbGVfZ2V0X2xocyAoc3RtdCk7DQo+ID4gICAg bGhzX3R5cGUgPSBUUkVFX1RZUEUgKHNjYWxhcl9kZXN0KTsNCj4gPiAgICB2ZWN0eXBlX291dCA9 IFNUTVRfVklORk9fVkVDVFlQRSAoc3RtdF9pbmZvKTsNCj4gPg0KPiA+IEBAIC00OTM4LDEwICs0 OTUxLDE0IEBAIHZlY3Rvcml6YWJsZV9jb252ZXJzaW9uICh2ZWNfaW5mbyAqdmluZm8sDQo+ID4N Cj4gPiAgICBpZiAob3BfdHlwZSA9PSBiaW5hcnlfb3ApDQo+ID4gICAgICB7DQo+ID4gLSAgICAg IGdjY19hc3NlcnQgKGNvZGUgPT0gV0lERU5fTVVMVF9FWFBSIHx8IGNvZGUgPT0NCj4gV0lERU5f TFNISUZUX0VYUFINCj4gPiAtCQkgIHx8IGNvZGUgPT0gV0lERU5fUExVU19FWFBSIHx8IGNvZGUg PT0NCj4gV0lERU5fTUlOVVNfRVhQUik7DQo+ID4gKyAgICAgIGdjY19hc3NlcnQgKGNvZGUgPT0g V0lERU5fTVVMVF9FWFBSDQo+ID4gKwkJICB8fCBjb2RlID09IFdJREVOX0xTSElGVF9FWFBSDQo+ ID4gKwkJICB8fCBjb2RlID09IFdJREVOX1BMVVNfRVhQUg0KPiA+ICsJCSAgfHwgY29kZSA9PSBX SURFTl9NSU5VU19FWFBSKTsNCj4gPg0KPiA+IC0gICAgICBvcDEgPSBnaW1wbGVfYXNzaWduX3Jo czIgKHN0bXQpOw0KPiA+ICsNCj4gPiArICAgICAgb3AxID0gaXNfZ2ltcGxlX2Fzc2lnbiAoc3Rt dCkgPyBnaW1wbGVfYXNzaWduX3JoczIgKHN0bXQpIDoNCj4gPiArCQkJCSAgICAgZ2ltcGxlX2Nh bGxfYXJnIChzdG10LCAwKTsNCj4gPiAgICAgICAgdHJlZSB2ZWN0eXBlMV9pbjsNCj4gPiAgICAg ICAgaWYgKCF2ZWN0X2lzX3NpbXBsZV91c2UgKHZpbmZvLCBzdG10X2luZm8sIHNscF9ub2RlLCAx LA0KPiA+ICAJCQkgICAgICAgJm9wMSwgJnNscF9vcDEsICZkdFsxXSwgJnZlY3R5cGUxX2luKSkg W+KApl0gQEANCj4gLTEyMTgxLDcNCj4gPiArMTIyMzUsNiBAQCBzdXBwb3J0YWJsZV93aWRlbmlu Z19vcGVyYXRpb24gKHZlY19pbmZvICp2aW5mbywNCj4gPiAgICByZXR1cm4gZmFsc2U7DQo+ID4g IH0NCj4gPg0KPiA+IC0NCj4gPiAgLyogRnVuY3Rpb24gc3VwcG9ydGFibGVfbmFycm93aW5nX29w ZXJhdGlvbg0KPiA+DQo+ID4gICAgIENoZWNrIHdoZXRoZXIgYW4gb3BlcmF0aW9uIHJlcHJlc2Vu dGVkIGJ5IHRoZSBjb2RlIENPREUgaXMgYQ0KPiANCj4gU2VlbXMgbGlrZSBhIHNwdXJpb3VzIGNo YW5nZS4NCj4gDQo+ID4gQEAgLTEyMjA1LDcgKzEyMjU4LDcgQEAgc3VwcG9ydGFibGVfd2lkZW5p bmdfb3BlcmF0aW9uICh2ZWNfaW5mbw0KPiA+ICp2aW5mbywgIGJvb2wgIHN1cHBvcnRhYmxlX25h cnJvd2luZ19vcGVyYXRpb24gKGVudW0gdHJlZV9jb2RlIGNvZGUsDQo+ID4gIAkJCQkgdHJlZSB2 ZWN0eXBlX291dCwgdHJlZSB2ZWN0eXBlX2luLA0KPiA+IC0JCQkJIGVudW0gdHJlZV9jb2RlICpj b2RlMSwgaW50ICptdWx0aV9zdGVwX2N2dCwNCj4gPiArCQkJCSB0cmVlX2NvZGUqIF9jb2RlMSwg aW50ICptdWx0aV9zdGVwX2N2dCwNCj4gDQo+IFRoZSBvcmlnaW5hbCBmb3JtYXR0aW5nIChzcGFj ZSBiZWZvcmUgdGhlIOKAnCrigJ0pIHdhcyBjb3JyZWN0Lg0KPiBOYW1lcyBiZWdpbm5pbmcgd2l0 aCBfIGFyZSByZXNlcnZlZCwgc28gSSB0aGluayB3ZSBuZWVkIGEgZGlmZmVyZW50DQo+IG5hbWUg aGVyZS4gIEFsc28sIHRoZSBuYW1lIGluIHRoZSBjb21tZW50IHNob3VsZCBzdGF5IGluIHN5bmMg d2l0aA0KPiB0aGUgbmFtZSBpbiB0aGUgY29kZS4NCj4gDQo+IFRoYXQgc2FpZCB0aG91Z2gsIEkn bSBub3Qgc3VyZeKApg0KPiANCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dmVjPHRyZWU+ICppbnRlcm1fdHlwZXMpDQo+ID4gIHsNCj4gPiAgICBtYWNoaW5lX21vZGUgdmVj X21vZGU7DQo+ID4gQEAgLTEyMjE3LDggKzEyMjcwLDggQEAgc3VwcG9ydGFibGVfbmFycm93aW5n X29wZXJhdGlvbiAoZW51bQ0KPiB0cmVlX2NvZGUgY29kZSwNCj4gPiAgICB0cmVlIGludGVybWVk aWF0ZV90eXBlLCBwcmV2X3R5cGU7DQo+ID4gICAgbWFjaGluZV9tb2RlIGludGVybWVkaWF0ZV9t b2RlLCBwcmV2X21vZGU7DQo+ID4gICAgaW50IGk7DQo+ID4gLSAgdW5zaWduZWQgSE9TVF9XSURF X0lOVCBuX2VsdHM7DQo+ID4gICAgYm9vbCB1bnM7DQo+ID4gKyAgdHJlZV9jb2RlICogY29kZTEg PSAodHJlZV9jb2RlKikgX2NvZGUxOw0KPiANCj4g4oCmdGhlIGNvbWJpbmF0aW9uIG9mIHRoZXNl IHR3byBjaGFuZ2VzIG1ha2VzIHNlbnNlIG9uIHRoZWlyIG93bi4NCj4gDQo+ID4NCj4gPiAgICAq bXVsdGlfc3RlcF9jdnQgPSAwOw0KPiA+ICAgIHN3aXRjaCAoY29kZSkNCj4gPiBAQCAtMTIyMjcs OSArMTIyODAsOCBAQCBzdXBwb3J0YWJsZV9uYXJyb3dpbmdfb3BlcmF0aW9uIChlbnVtDQo+IHRy ZWVfY29kZSBjb2RlLA0KPiA+ICAgICAgICBjMSA9IFZFQ19QQUNLX1RSVU5DX0VYUFI7DQo+ID4g ICAgICAgIGlmIChWRUNUT1JfQk9PTEVBTl9UWVBFX1AgKG5hcnJvd192ZWN0eXBlKQ0KPiA+ICAJ ICAmJiBWRUNUT1JfQk9PTEVBTl9UWVBFX1AgKHZlY3R5cGUpDQo+ID4gLQkgICYmIFNDQUxBUl9J TlRfTU9ERV9QIChUWVBFX01PREUgKHZlY3R5cGUpKQ0KPiA+IC0JICAmJiBUWVBFX1ZFQ1RPUl9T VUJQQVJUUyAodmVjdHlwZSkuaXNfY29uc3RhbnQgKCZuX2VsdHMpDQo+ID4gLQkgICYmIG5fZWx0 cyA8IEJJVFNfUEVSX1VOSVQpDQo+ID4gKwkgICYmIFRZUEVfTU9ERSAobmFycm93X3ZlY3R5cGUp ID09IFRZUEVfTU9ERSAodmVjdHlwZSkNCj4gPiArCSAgJiYgU0NBTEFSX0lOVF9NT0RFX1AgKFRZ UEVfTU9ERSAodmVjdHlwZSkpKQ0KPiA+ICAJb3B0YWIxID0gdmVjX3BhY2tfc2Jvb2xfdHJ1bmNf b3B0YWI7DQo+ID4gICAgICAgIGVsc2UNCj4gPiAgCW9wdGFiMSA9IG9wdGFiX2Zvcl90cmVlX2Nv ZGUgKGMxLCB2ZWN0eXBlLCBvcHRhYl9kZWZhdWx0KTsNCj4gPiBAQCAtMTIzMjAsOSArMTIzNzIs OCBAQCBzdXBwb3J0YWJsZV9uYXJyb3dpbmdfb3BlcmF0aW9uIChlbnVtDQo+IHRyZWVfY29kZSBj b2RlLA0KPiA+ICAJICA9IGxhbmdfaG9va3MudHlwZXMudHlwZV9mb3JfbW9kZSAoaW50ZXJtZWRp YXRlX21vZGUsIHVucyk7DQo+ID4gICAgICAgIGlmIChWRUNUT1JfQk9PTEVBTl9UWVBFX1AgKGlu dGVybWVkaWF0ZV90eXBlKQ0KPiA+ICAJICAmJiBWRUNUT1JfQk9PTEVBTl9UWVBFX1AgKHByZXZf dHlwZSkNCj4gPiAtCSAgJiYgU0NBTEFSX0lOVF9NT0RFX1AgKHByZXZfbW9kZSkNCj4gPiAtCSAg JiYgVFlQRV9WRUNUT1JfU1VCUEFSVFMgKGludGVybWVkaWF0ZV90eXBlKS5pc19jb25zdGFudA0K PiAoJm5fZWx0cykNCj4gPiAtCSAgJiYgbl9lbHRzIDwgQklUU19QRVJfVU5JVCkNCj4gPiArCSAg JiYgaW50ZXJtZWRpYXRlX21vZGUgPT0gcHJldl9tb2RlDQo+ID4gKwkgICYmIFNDQUxBUl9JTlRf TU9ERV9QIChwcmV2X21vZGUpKQ0KPiA+ICAJaW50ZXJtX29wdGFiID0gdmVjX3BhY2tfc2Jvb2xf dHJ1bmNfb3B0YWI7DQo+ID4gICAgICAgIGVsc2UNCj4gPiAgCWludGVybV9vcHRhYg0KPiANCj4g VGhpcyBwYXJ0IGxvb2tzIGxpa2UgYSBiZWhhdmlvdXJhbCBjaGFuZ2UsIHNvIEkgdGhpbmsgaXQg c2hvdWxkIGJlIHBhcnQNCj4gb2YgYSBzZXBhcmF0ZSBwYXRjaC4NCj4gDQo+ID4gZGlmZiAtLWdp dCBhL2djYy90cmVlLXZlY3Rvcml6ZXIuaCBiL2djYy90cmVlLXZlY3Rvcml6ZXIuaA0KPiA+IGlu ZGV4DQo+IDY0MmViMGFlYjIxMjY0Y2Q3MzZhNDc5YjFlYzI1MzU3YWJlZjI5Y2QuLjUwZmY4ZWVh YzFlNmI5ODU5MzAyYmQ3OA0KPiA0ZjEwZWUzZDhmZjRiNGRjIDEwMDY0NA0KPiA+IC0tLSBhL2dj Yy90cmVlLXZlY3Rvcml6ZXIuaA0KPiA+ICsrKyBiL2djYy90cmVlLXZlY3Rvcml6ZXIuaA0KPiA+ IEBAIC0yMTIwLDEzICsyMTIwLDEyIEBAIGV4dGVybiBib29sIHZlY3RfaXNfc2ltcGxlX3VzZSAo dmVjX2luZm8gKiwNCj4gc3RtdF92ZWNfaW5mbywgc2xwX3RyZWUsDQo+ID4gIAkJCQllbnVtIHZl Y3RfZGVmX3R5cGUgKiwNCj4gPiAgCQkJCXRyZWUgKiwgc3RtdF92ZWNfaW5mbyAqID0gTlVMTCk7 DQo+ID4gIGV4dGVybiBib29sIHZlY3RfbWF5YmVfdXBkYXRlX3NscF9vcF92ZWN0eXBlIChzbHBf dHJlZSwgdHJlZSk7DQo+ID4gLWV4dGVybiBib29sIHN1cHBvcnRhYmxlX3dpZGVuaW5nX29wZXJh dGlvbiAodmVjX2luZm8gKiwNCj4gPiAtCQkJCQkgICAgZW51bSB0cmVlX2NvZGUsIHN0bXRfdmVj X2luZm8sDQo+ID4gLQkJCQkJICAgIHRyZWUsIHRyZWUsIGVudW0gdHJlZV9jb2RlICosDQo+ID4g LQkJCQkJICAgIGVudW0gdHJlZV9jb2RlICosIGludCAqLA0KPiA+IC0JCQkJCSAgICB2ZWM8dHJl ZT4gKik7DQo+ID4gK2V4dGVybiBib29sIHN1cHBvcnRhYmxlX3dpZGVuaW5nX29wZXJhdGlvbiAo dmVjX2luZm8qLCBjb2RlX2hlbHBlciwNCj4gPiArCQkJCQkgICAgc3RtdF92ZWNfaW5mbywgdHJl ZSwgdHJlZSwNCj4gPiArCQkJCQkgICAgY29kZV9oZWxwZXIqLCBjb2RlX2hlbHBlciosDQo+ID4g KwkJCQkJICAgIGludCosIHZlYzx0cmVlPiAqKTsNCj4gPiAgZXh0ZXJuIGJvb2wgc3VwcG9ydGFi bGVfbmFycm93aW5nX29wZXJhdGlvbiAoZW51bSB0cmVlX2NvZGUsIHRyZWUsDQo+IHRyZWUsDQo+ ID4gLQkJCQkJICAgICBlbnVtIHRyZWVfY29kZSAqLCBpbnQgKiwNCj4gPiArCQkJCQkgICAgIHRy ZWVfY29kZSAqLCBpbnQgKiwNCj4gPiAgCQkJCQkgICAgIHZlYzx0cmVlPiAqKTsNCj4gPg0KPiA+ ICBleHRlcm4gdW5zaWduZWQgcmVjb3JkX3N0bXRfY29zdCAoc3RtdF92ZWN0b3JfZm9yX2Nvc3Qg KiwgaW50LA0KPiA+IGRpZmYgLS1naXQgYS9nY2MvdHJlZS5oIGIvZ2NjL3RyZWUuaA0KPiA+IGlu ZGV4DQo+IGY4NDk1ODkzM2Q1MTE0NGJiNmNlN2NjNDFlY2E1ZjdmMDY4MTQ1NTAuLjAwYjBlNGQx YzY5NjYzM2ZlMzhiYWFkNQ0KPiAyOTViMWY5MDM5OGQ1M2ZjIDEwMDY0NA0KPiA+IC0tLSBhL2dj Yy90cmVlLmgNCj4gPiArKysgYi9nY2MvdHJlZS5oDQo+ID4gQEAgLTkyLDYgKzkyLDEwIEBAIHB1 YmxpYzoNCj4gPiAgICBib29sIGlzX2ZuX2NvZGUgKCkgY29uc3QgeyByZXR1cm4gcmVwIDwgMDsg fQ0KPiA+ICAgIGJvb2wgaXNfaW50ZXJuYWxfZm4gKCkgY29uc3Q7DQo+ID4gICAgYm9vbCBpc19i dWlsdGluX2ZuICgpIGNvbnN0Ow0KPiA+ICsgIGVudW0gdHJlZV9jb2RlIHNhZmVfYXNfdHJlZV9j b2RlICgpIGNvbnN0IHsgcmV0dXJuIGlzX3RyZWVfY29kZSAoKSA/DQo+ID4gKyAgICAodHJlZV9j b2RlKSogdGhpcyA6IE1BWF9UUkVFX0NPREVTOyB9DQo+ID4gKyAgY29tYmluZWRfZm4gc2FmZV9h c19mbl9jb2RlICgpIGNvbnN0IHsgcmV0dXJuIGlzX2ZuX2NvZGUgKCkgPw0KPiAoY29tYmluZWRf Zm4pICp0aGlzDQo+ID4gKyAgICA6IENGTl9MQVNUO30NCj4gDQo+IFNpbmNlIHRoZXNlIGRvbid0 IGZpdCBvbiBhIGxpbmUsIHRoZSBjb2RpbmcgY29udmVudGlvbiBzYXlzIHRoYXQgdGhleQ0KPiBz aG91bGQgYmUgZGVmaW5lZCBvdXRzaWRlIG9mIHRoZSBjbGFzcy4NCj4gDQo+IFRoYW5rcywNCj4g UmljaGFyZA0KPiANCj4gPiAgICBpbnQgZ2V0X3JlcCAoKSBjb25zdCB7IHJldHVybiByZXA7IH0N Cj4gPiAgICBib29sIG9wZXJhdG9yPT0gKGNvbnN0IGNvZGVfaGVscGVyICZvdGhlcikgeyByZXR1 cm4gcmVwID09IG90aGVyLnJlcDsgfQ0KPiA+ICAgIGJvb2wgb3BlcmF0b3IhPSAoY29uc3QgY29k ZV9oZWxwZXIgJm90aGVyKSB7IHJldHVybiByZXAgIT0gb3RoZXIucmVwOyB9DQo=