From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10057.outbound.protection.outlook.com [40.107.1.57]) by sourceware.org (Postfix) with ESMTPS id 7C0E93857423 for ; Wed, 25 May 2022 09:11:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 7C0E93857423 ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=TWo1prTVpFwWfCxSwJ2papMDtE2nJL8BmiHU789UIkKF/mf7xuJjuZiXIbIwNpXvT///zqmYjJIpLmT7z2y52bXfaO4h55Qvm5X5MlbWWG63nQRXhVseNT/ZAIAHYOBl7K74b2gOqT4pqUfUBuMUehbr82YpS1TOlvE0DJAgD3RA26wmj7YzQCS1wjlh82FxiNA7+oAqWaHSrxOrMIXtjsUTfq45TjxsvyMDBiMKEcm176wVBxl+b8AunZxaJ5YHsg3fsAkyHT75UdgdjMbtBuvozglzMgQrCQvhJFNWQWhW2QmrZmcoW6ZxBp6uDMbL4WQHCmfxofW3nzdHrRjmPQ== 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=iX1gA3QoG+Wos5PuCkKS5sN+nYopQKaWP5aPgbLLCHQ=; b=L0uJvXydhiJK5Wh8l4jnWEYwyf8+wL5kv1ih7JWTw7moHv45ZT+fToH0mgR2VgG6NywE8zl85yj1KcC0wanuRbGI40LuM1FcWvcFYXqqgWLBM/od8pN5VirmG/NVkkOYF+cYXVwBewT1uDY6gpIchGj/dUObghrLwZR6NATZvpjfOxhZ53rx+gZiPgKKR+uawfVbRSerQvWNONKZVHJgZBro4AMy9ZCOTxqfe3ajxQIql1VC5fJJEuzGQZSnwPafQxhn23TbW7hJOg+nRsiFMYAJ/KhYlA23I/Fl2JcHdl8f3RDpr/hlj/t3M3zkUgPE5hWT950gadEsQNKYqLs3yQ== 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 AS9PR06CA0181.eurprd06.prod.outlook.com (2603:10a6:20b:45d::10) by PR2PR08MB4892.eurprd08.prod.outlook.com (2603:10a6:101:24::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.17; Wed, 25 May 2022 09:11:55 +0000 Received: from AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:45d:cafe::b2) by AS9PR06CA0181.outlook.office365.com (2603:10a6:20b:45d::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.13 via Frontend Transport; Wed, 25 May 2022 09:11:55 +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 AM5EUR03FT032.mail.protection.outlook.com (10.152.16.84) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.13 via Frontend Transport; Wed, 25 May 2022 09:11:55 +0000 Received: ("Tessian outbound 9a0893f586e2:v119"); Wed, 25 May 2022 09:11:55 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 7764c22f1f196c4e X-CR-MTA-TID: 64aa7808 Received: from 505da3a8295c.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 191F79F3-6304-445A-B29B-7EDD0675F5C3.1; Wed, 25 May 2022 09:11:49 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 505da3a8295c.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 25 May 2022 09:11:49 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mj0RIr2Lnukp5EcIzorlJh6c4ueZCTh0LlnU8KlODmuoBP6NPw0wr/tEkt9zzc+2GEPxFu3Uy8ipLdwxgIVbFiap7cAJYbSMofEiX9cYV29vEjEG1+k/1MVsmfQUDmx+M1HzDpmvB8pyg2CE2zLbaz0c5IvIL0qYWD2mImRtfkzHuwwCQKJKgx8y4y8IwWP5LArBp4it/ubtfIqZA09rMuvZmV1N3S5gLCuEOmg78b9cLqDUxCFV0O2uHNSlpmalQ9vZY+Bw35OnBvuscPmxEC8EnHWunyxE7/+4+0GY7odf967GL7tG/8pBcuwKoHlvGuRdCAVoEDiVi5AP16waBg== 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=iX1gA3QoG+Wos5PuCkKS5sN+nYopQKaWP5aPgbLLCHQ=; b=H75TLunXLLZBiWbCRjVXjxJrLFP4tUsAyAM1DsLwNS6qPpXfefFpf7HfZq0VGHdCR2OGWkT71TqoSbQPeP6b5JmifRkkgA9qa1kHjweNCPl7efmE7BlJfYMt8/HxSpxXrAAPvcS6TMreAqdeDNEWSng5jQxdWvR8hgcvEUP053do5HZMxqB3Bm8aEQFtAyC+dQRHa/xn4Zjhso6OoOhQMnm47NxsYwb3cZVWxuEFyc/JszFgJv9g0x+xBH7BZKrba07vEnvv2PwR1G/D0O9jeFKv2YH1brdRIYyLoDHVs/DzTXSRnh2wzP5Ys6NrYinrBvXEFZcG/N8JMuD/3bfiYw== 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 DB9PR08MB6603.eurprd08.prod.outlook.com (2603:10a6:10:25a::5) by AS8PR08MB6198.eurprd08.prod.outlook.com (2603:10a6:20b:29f::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5293.13; Wed, 25 May 2022 09:11:46 +0000 Received: from DB9PR08MB6603.eurprd08.prod.outlook.com ([fe80::3d0f:7b84:8a57:6265]) by DB9PR08MB6603.eurprd08.prod.outlook.com ([fe80::3d0f:7b84:8a57:6265%4]) with mapi id 15.20.5273.023; Wed, 25 May 2022 09:11:46 +0000 From: Joel Hutton To: Richard Sandiford CC: Richard Biener , "gcc-patches@gcc.gnu.org" Subject: [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: AdhwF28dojpvSLyiTNmi1jeopmd4Iw== Date: Wed, 25 May 2022 09:11:46 +0000 Message-ID: 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: 2e69de02-ed76-4002-965e-08da3e2e9d57 x-ms-traffictypediagnostic: AS8PR08MB6198:EE_|AM5EUR03FT032:EE_|PR2PR08MB4892: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: GPCmWlDi7iTC0S+k7hct0hT0ra+kfGnZrKOMP22UEmnVc4/UMN6kbL8zu5ltHoL7cJg1zaW36QlshAZAFqKEgneYo6Xedv3OkZmalx61zLzcaWQf8/kLzf3TJoRFrDbfCqrEH0umA8LZFgnOv23X7Jw29IZNAv59BHAJSyCrW5KyGxvZ+sh1dvZDvKVwZzv2RLTHH4tKujglfsrd/+GwJ6uihnL1qw65RCRX6PxrkbN+M2P6lCSqBm1Pg060lCFcQgrDCqTEWsTyBdQdTx3LdXZqghYSA9kDraPqtqCTPIgVINY3ijFyTeFEvi9hN3G5t2i/9MXx+lAYtdEZS0PF6YzCgwRaq4E6zvQNPGtt2gC+2yt4L5OD8Hrq6crdPrA+/55vhWNfrzcGOhweUiCEEc9If02/vNX96XWljqae8zl+MhW/DBC2ERQg9ZWI+AlhnkQWzqrCpedqvS8sMsclKoKUYO3FTgENNpnbCxhWi6Op5/JeTMgwIWURq/yF8GN8v/21oeLD/t61kbNgZzhCeqIbMYpoSOdgmK66fpoSFUffS+k3FybOUKVUXwkfbDIrYVNshe4JjIrJLpV+dxMdOl6m4KyFELv5n2NmbP9ROcXKWBA0PXHW6OtUhvmXMxBxYPGspr0ZVfObSEcNf+WFZtiDtNzUD+MKcOeGVv+2A09qKpkO1Q3aZJJksyQpGu7loohj4Uw0Dfifgj+aghkbIA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6603.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(9686003)(33656002)(7696005)(53546011)(52536014)(26005)(6506007)(316002)(6636002)(186003)(54906003)(71200400001)(86362001)(8936002)(2906002)(122000001)(38070700005)(38100700002)(508600001)(55016003)(5660300002)(83380400001)(76116006)(66946007)(66476007)(4326008)(66556008)(66446008)(8676002)(64756008)(6862004); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6198 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: AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 4780f8d9-9a98-43a3-a7d7-08da3e2e97da X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: figoOFg/quqkgixzs1AS2AQmFBJa/UgIMrgyyjkrNA1Hkk5Hq6DalbsWT3eCfDSTjN4Qy+DWbIBsJ1qUa8NKuUdoDyg/CauQtWIzd5WNcezksgDn2lnlD50KCV7APwaG/QISgBvRfgRqto1RzrcM/yJiPbwfQFQf/2mZJiy8KbReYpJ89WKmzV1Pf4A+xb32O93aluNrUSHyMaG6jbmNqxk6zK0XstxsYRHZqoTGMYIYqn73amg+cyfc0R1f+NlS1SWk1Lfoh0bgUgesjczhttxZuRnagVExs9h475XC9WmfOiGVk8Guqs35jPYNyzgnu4Crntu4XswvrV9e3iYlaiwQwKRiWAYhq0qfrN8cQ60YxId4OLIvds7ig1sTv/p0JV9nYBPCmSwyKbwn22ZqOlxPbmn+ozasb5KUi3PtDeUKAV7ptu8MvAJ3IukBy9+8KeRnJOg6qgOgVpGEmpD4uy0kp6ReNpLiqTSZETaL/GseEYIjemG14Zorf5c10oXJna7xXnCUpmRELScpqzEd6mMUa+3NjoiWanbUpsI++HtvQZZiMHAU6u96G/keAtjDYEyRO+huPwl4et3tgb4++A8SzSp/hvbMVqx8QKyqh21cH34bLOzOtqpI4zjmV/Dgva4ceMFTmspxvPHvNIe8W2F48R9oWhSYI6jtWZmqEleCZStlOZrLW5JmLiuXtxEn 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)(46966006)(36840700001)(40470700004)(8676002)(70586007)(7696005)(6862004)(2906002)(4326008)(81166007)(6506007)(53546011)(8936002)(55016003)(33656002)(508600001)(52536014)(36860700001)(5660300002)(356005)(70206006)(316002)(86362001)(47076005)(336012)(83380400001)(54906003)(6636002)(82310400005)(186003)(40460700003)(9686003)(26005); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 May 2022 09:11:55.4746 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2e69de02-ed76-4002-965e-08da3e2e9d57 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: AM5EUR03FT032.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR2PR08MB4892 X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, 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: Wed, 25 May 2022 09:12:01 -0000 UGluZyENCg0KSnVzdCBjaGVja2luZyB0aGVyZSBpcyBzdGlsbCBpbnRlcmVzdCBpbiB0aGlzLiBJ J20gYXNzdW1pbmcgeW91J3ZlIGJlZW4gYnVzeSB3aXRoIHJlbGVhc2UuDQoNCkpvZWwNCg0KPiAt LS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBKb2VsIEh1dHRvbg0KPiBTZW50OiAx MyBBcHJpbCAyMDIyIDE2OjUzDQo+IFRvOiBSaWNoYXJkIFNhbmRpZm9yZCA8cmljaGFyZC5zYW5k aWZvcmRAYXJtLmNvbT4NCj4gQ2M6IFJpY2hhcmQgQmllbmVyIDxyZ3VlbnRoZXJAc3VzZS5kZT47 IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnDQo+IFN1YmplY3Q6IFt2ZWN0LXBhdHRlcm5zXSBSZWZh Y3RvciB3aWRlbl9wbHVzL3dpZGVuX21pbnVzIGFzIGludGVybmFsX2Zucw0KPiANCj4gSGkgYWxs LA0KPiANCj4gVGhlc2UgcGF0Y2hlcyByZWZhY3RvciB0aGUgd2lkZW5pbmcgcGF0dGVybnMgaW4g dmVjdC1wYXR0ZXJucyB0byB1c2UNCj4gaW50ZXJuYWxfZm4gaW5zdGVhZCBvZiB0cmVlX2NvZGVz Lg0KPiANCj4gU29ycnkgYWJvdXQgdGhlIGRlbGF5LCBzb21lIGNoYW5nZXMgdG8gbWFzdGVyIG1h ZGUgaXQgYSBiaXQgbWVzc2llci4NCj4gDQo+IEJvb3RzdHJhcHBlZCBhbmQgcmVncmVzc2lvbiB0 ZXN0ZWQgb24gYWFyY2g2NC4NCj4gDQo+IEpvZWwNCj4gDQo+ID4gPiBkaWZmIC0tZ2l0IGEvZ2Nj L3RyZWUtdmVjdC1wYXR0ZXJucy5jIGIvZ2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jDQo+ID4gPiBp bmRleCA4NTRjYmNmZjM5MC4uNGE4ZWE2N2U2MmYgMTAwNjQ0DQo+ID4gPiAtLS0gYS9nY2MvdHJl ZS12ZWN0LXBhdHRlcm5zLmMNCj4gPiA+ICsrKyBiL2djYy90cmVlLXZlY3QtcGF0dGVybnMuYw0K PiA+ID4gQEAgLTEyNDUsNyArMTI0NSw3IEBAIHZlY3RfcmVjb2dfc2FkX3BhdHRlcm4gKHZlY19p bmZvICp2aW5mbywNCj4gPiA+IHN0YXRpYyBnaW1wbGUgKiAgdmVjdF9yZWNvZ193aWRlbl9vcF9w YXR0ZXJuICh2ZWNfaW5mbyAqdmluZm8sDQo+ID4gPiAgCQkJICAgICBzdG10X3ZlY19pbmZvIGxh c3Rfc3RtdF9pbmZvLCB0cmVlICp0eXBlX291dCwNCj4gPiA+IC0JCQkgICAgIHRyZWVfY29kZSBv cmlnX2NvZGUsIHRyZWVfY29kZSB3aWRlX2NvZGUsDQo+ID4gPiArCQkJICAgICB0cmVlX2NvZGUg b3JpZ19jb2RlLCBjb2RlX2hlbHBlcg0KPiA+IHdpZGVfY29kZV9vcl9pZm4sDQo+ID4NCj4gPiBJ IHRoaW5rIGl0J2QgYmUgYmV0dGVyIHRvIGtlZXAgdGhlIG9yaWdpbmFsIOKAnHdpZGVfY29kZeKA nSBuYW1lIGFuZCB0cnkNCj4gPiB0byByZW1vdmUgYXMgbWFueSBwbGFjZXMgYXMgcG9zc2libGUg aW4gd2hpY2ggc3dpdGNoaW5nIGJhc2VkIG9uDQo+ID4gdHJlZV9jb2RlIG9yIGludGVybmFsX2Zu IGlzIG5lY2Vzc2FyeS4gIFRoZSByZWNlbnQgZ2ltcGxlLW1hdGNoLmgNCj4gPiBwYXRjaGVzIHNo b3VsZCBoZWxwIHdpdGggdGhhdCwgYnV0IG1vcmUgcm91dGluZXMgbWlnaHQgYmUgbmVlZGVkLg0K PiANCj4gRG9uZS4NCj4gDQo+ID4gPiBAQCAtMTMwOSw4ICsxMzEwLDE2IEBAIHZlY3RfcmVjb2df d2lkZW5fb3BfcGF0dGVybiAodmVjX2luZm8NCj4gKnZpbmZvLA0KPiA+ID4gIAkJICAgICAgIDIs IG9wcm5kLCBoYWxmX3R5cGUsIHVucHJvbSwgdmVjdHlwZSk7DQo+ID4gPg0KPiA+ID4gICAgdHJl ZSB2YXIgPSB2ZWN0X3JlY29nX3RlbXBfc3NhX3ZhciAoaXR5cGUsIE5VTEwpOw0KPiA+ID4gLSAg Z2ltcGxlICpwYXR0ZXJuX3N0bXQgPSBnaW1wbGVfYnVpbGRfYXNzaWduICh2YXIsIHdpZGVfY29k ZSwNCj4gPiA+IC0JCQkJCSAgICAgIG9wcm5kWzBdLCBvcHJuZFsxXSk7DQo+ID4gPiArICBnaW1w bGUgKnBhdHRlcm5fc3RtdDsNCj4gPiA+ICsgIGlmICh3aWRlX2NvZGVfb3JfaWZuLmlzX3RyZWVf Y29kZSAoKSkNCj4gPiA+ICsgICAgcGF0dGVybl9zdG10ID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAo dmFyLCB3aWRlX2NvZGVfb3JfaWZuLA0KPiA+ID4gKwkJCQkJCW9wcm5kWzBdLCBvcHJuZFsxXSk7 DQo+ID4gPiArICBlbHNlDQo+ID4gPiArICAgIHsNCj4gPiA+ICsgICAgICBpbnRlcm5hbF9mbiBm biA9IGFzX2ludGVybmFsX2ZuICgoY29tYmluZWRfZm4pIHdpZGVfY29kZV9vcl9pZm4pOw0KPiA+ ID4gKyAgICAgIHBhdHRlcm5fc3RtdCA9IGdpbXBsZV9idWlsZF9jYWxsX2ludGVybmFsIChmbiwg Miwgb3BybmRbMF0sIG9wcm5kWzFdKTsNCj4gPiA+ICsgICAgICBnaW1wbGVfY2FsbF9zZXRfbGhz IChwYXR0ZXJuX3N0bXQsIHZhcik7DQo+ID4gPiArICAgIH0NCj4gPg0KPiA+IEZvciBleGFtcGxl LCBJIHRoaW5rIHdlIHNob3VsZCBoaWRlIHRoaXMgaW5zaWRlIGEgbmV3Og0KPiA+DQo+ID4gICBn aW1wbGVfYnVpbGQgKHZhciwgd2lkZV9jb2RlLCBvcHJuZFswXSwgb3BybmRbMV0pOw0KPiA+DQo+ ID4gdGhhdCB3b3JrcyBkaXJlY3RseSBvbiBjb2RlX2hlbHBlciwgc2ltaWxhcmx5IHRvIHRoZSBu ZXcgY29kZV9oZWxwZXINCj4gPiBnaW1wbGVfYnVpbGQgaW50ZXJmYWNlcy4NCj4gDQo+IERvbmUu DQo+IA0KPiA+ID4gQEAgLTQ1MTMsMTQgKzQ1MTMsMTYgQEAgdmVjdF9nZW5fd2lkZW5lZF9yZXN1 bHRzX2hhbGYgKHZlY19pbmZvDQo+ID4gKnZpbmZvLCBlbnVtIHRyZWVfY29kZSBjb2RlLA0KPiA+ ID4gICAgdHJlZSBuZXdfdGVtcDsNCj4gPiA+DQo+ID4gPiAgICAvKiBHZW5lcmF0ZSBoYWxmIG9m IHRoZSB3aWRlbmVkIHJlc3VsdDogICovDQo+ID4gPiAtICBnY2NfYXNzZXJ0IChvcF90eXBlID09 IFRSRUVfQ09ERV9MRU5HVEggKGNvZGUpKTsNCj4gPiA+ICAgIGlmIChvcF90eXBlICE9IGJpbmFy eV9vcCkNCj4gPiA+ICAgICAgdmVjX29wcm5kMSA9IE5VTEw7DQo+ID4gPiAtICBuZXdfc3RtdCA9 IGdpbXBsZV9idWlsZF9hc3NpZ24gKHZlY19kZXN0LCBjb2RlLCB2ZWNfb3BybmQwLA0KPiA+IHZl Y19vcHJuZDEpOw0KPiA+ID4gKyAgaWYgKGNoLmlzX3RyZWVfY29kZSAoKSkNCj4gPiA+ICsgICAg bmV3X3N0bXQgPSBnaW1wbGVfYnVpbGRfYXNzaWduICh2ZWNfZGVzdCwgY2gsIHZlY19vcHJuZDAs DQo+ID4gdmVjX29wcm5kMSk7DQo+ID4gPiArICBlbHNlDQo+ID4gPiArICAgIG5ld19zdG10ID0g Z2ltcGxlX2J1aWxkX2NhbGxfaW50ZXJuYWwgKGFzX2ludGVybmFsX2ZuDQo+ID4gPiArICgoY29t YmluZWRfZm4pDQo+ID4gY2gpLA0KPiA+ID4gKwkJCQkJICAgMiwgdmVjX29wcm5kMCwgdmVjX29w cm5kMSk7DQo+ID4NCj4gPiBTaW1pbGFybHkgaGVyZS4gIEkgZ3Vlc3MgdGhlIGNvbWJpbmVkX2Zu L2ludGVybmFsX2ZuIHBhdGggd2lsbCBhbHNvDQo+ID4gbmVlZCB0byBjb3BlIHdpdGggbnVsbCB0 cmFpbGluZyBvcGVyYW5kcywgZm9yIGNvbnNpc3RlbmN5IHdpdGggdGhlIHRyZWVfY29kZQ0KPiBv bmUuDQo+ID4NCj4gDQo+IERvbmUuDQo+IA0KPiA+ID4gQEAgLTQ3NDQsMzEgKzQ3NDcsMjggQEAg dmVjdG9yaXphYmxlX2NvbnZlcnNpb24gKHZlY19pbmZvICp2aW5mbywNCj4gPiA+ICAgICAgICAm JiAhIHZlY19zdG10KQ0KPiA+ID4gICAgICByZXR1cm4gZmFsc2U7DQo+ID4gPg0KPiA+ID4gLSAg Z2Fzc2lnbiAqc3RtdCA9IGR5bl9jYXN0IDxnYXNzaWduICo+IChzdG10X2luZm8tPnN0bXQpOw0K PiA+ID4gLSAgaWYgKCFzdG10KQ0KPiA+ID4gKyAgZ2ltcGxlKiBzdG10ID0gc3RtdF9pbmZvLT5z dG10Ow0KPiA+ID4gKyAgaWYgKCEoaXNfZ2ltcGxlX2Fzc2lnbiAoc3RtdCkgfHwgaXNfZ2ltcGxl X2NhbGwgKHN0bXQpKSkNCj4gPiA+ICAgICAgcmV0dXJuIGZhbHNlOw0KPiA+ID4NCj4gPiA+IC0g IGlmIChUUkVFX0NPREUgKGdpbXBsZV9hc3NpZ25fbGhzIChzdG10KSkgIT0gU1NBX05BTUUpDQo+ ID4gPiAtICAgIHJldHVybiBmYWxzZTsNCj4gPiA+ICsgIGlmIChpc19naW1wbGVfYXNzaWduIChz dG10KSkNCj4gPiA+ICsgIHsNCj4gPiA+ICsgICAgY29kZV9vcl9pZm4gPSBnaW1wbGVfYXNzaWdu X3Joc19jb2RlIChzdG10KTsgIH0gIGVsc2UNCj4gPiA+ICsgICAgY29kZV9vcl9pZm4gPSBnaW1w bGVfY2FsbF9jb21iaW5lZF9mbiAoc3RtdCk7DQo+ID4NCj4gPiBJdCBtaWdodCBiZSBwb3NzaWJs ZSB0byB1c2UgZ2ltcGxlX2V4dHJhY3Rfb3AgaGVyZSAob25seSByZWNlbnRseSBhZGRlZCkuDQo+ ID4gVGhpcyB3b3VsZCBhbHNvIHByb3ZpZGUgdGhlIG51bWJlciBvZiBvcGVyYW5kcyBkaXJlY3Rs eSwgaW5zdGVhZCBvZg0KPiA+IG5lZWRpbmcg4oCcb3BfdHlwZeKAnS4gIEl0IHdvdWxkIGFsc28g cHJvdmlkZSBhbiBhcnJheSBvZiBvcGVyYW5kcy4NCj4gPg0KPiANCj4gRG9uZS4NCj4gDQo+ID4g PiAtICBjb2RlID0gZ2ltcGxlX2Fzc2lnbl9yaHNfY29kZSAoc3RtdCk7DQo+ID4gPiAtICBpZiAo IUNPTlZFUlRfRVhQUl9DT0RFX1AgKGNvZGUpDQo+ID4gPiAtICAgICAgJiYgY29kZSAhPSBGSVhf VFJVTkNfRVhQUg0KPiA+ID4gLSAgICAgICYmIGNvZGUgIT0gRkxPQVRfRVhQUg0KPiA+ID4gLSAg ICAgICYmIGNvZGUgIT0gV0lERU5fUExVU19FWFBSDQo+ID4gPiAtICAgICAgJiYgY29kZSAhPSBX SURFTl9NSU5VU19FWFBSDQo+ID4gPiAtICAgICAgJiYgY29kZSAhPSBXSURFTl9NVUxUX0VYUFIN Cj4gPiA+IC0gICAgICAmJiBjb2RlICE9IFdJREVOX0xTSElGVF9FWFBSKQ0KPiA+DQo+ID4gSXMg aXQgc2FmZSB0byBkcm9wIHRoaXMgY2hlY2sgaW5kZXBlbmRlbnRseSBvZiBwYXJ0cyAyIGFuZCAz Pw0KPiA+IChHZW51aW5lIHF1ZXN0aW9uLCBoYXZlbid0IGNoZWNrZWQgaW4gZGV0YWlsLikNCj4g DQo+IEl0IHJlcXVpcmVzIHRoZSBwYXJ0cyAyIGFuZCAzLiBJJ3ZlIG1vdmVkIHRoYXQgY2hhbmdl IGludG8gdGhpcyBmaXJzdCBwYXRjaC4NCj4gDQo+ID4gPiBAQCAtNDc4NCw3ICs0Nzg0LDggQEAg dmVjdG9yaXphYmxlX2NvbnZlcnNpb24gKHZlY19pbmZvICp2aW5mbywNCj4gPiA+ICAgICAgfQ0K PiA+ID4NCj4gPiA+ICAgIHJoc190eXBlID0gVFJFRV9UWVBFIChvcDApOw0KPiA+ID4gLSAgaWYg KChjb2RlICE9IEZJWF9UUlVOQ19FWFBSICYmIGNvZGUgIT0gRkxPQVRfRVhQUikNCj4gPiA+ICsg IGlmICgoY29kZV9vcl9pZm4uaXNfdHJlZV9jb2RlICgpICYmIGNvZGVfb3JfaWZuICE9IEZJWF9U UlVOQ19FWFBSDQo+ID4gPiArICAgICAgICYmIGNvZGVfb3JfaWZuICE9IEZMT0FUX0VYUFIpDQo+ ID4NCj4gPiBJIGRvbid0IHRoaW5rIHdlIHdhbnQgdGhlIGlzX3RyZWVfY29kZSBjb25kaXRpb24g aGVyZS4gIFRoZSBleGlzdGluZw0KPiA+ICE9IHNob3VsZCB3b3JrLg0KPiA+DQo+IA0KPiBEb25l Lg0KPiANCj4gPiA+IEBAIC0xMTg1NiwxMyArMTE4ODgsMTMgQEAgc3VwcG9ydGFibGVfd2lkZW5p bmdfb3BlcmF0aW9uDQo+ICh2ZWNfaW5mbw0KPiA+ICp2aW5mbywNCj4gPiA+ICAgIGlmIChCWVRF U19CSUdfRU5ESUFOICYmIGMxICE9IFZFQ19XSURFTl9NVUxUX0VWRU5fRVhQUikNCj4gPiA+ICAg ICAgc3RkOjpzd2FwIChjMSwgYzIpOw0KPiA+ID4NCj4gPiA+IC0gIGlmIChjb2RlID09IEZJWF9U UlVOQ19FWFBSKQ0KPiA+ID4gKyAgaWYgKGNvZGVfb3JfaWZuID09IEZJWF9UUlVOQ19FWFBSKQ0K PiA+ID4gICAgICB7DQo+ID4gPiAgICAgICAgLyogVGhlIHNpZ25lZG5lc3MgaXMgZGV0ZXJtaW5l ZCBmcm9tIG91dHB1dCBvcGVyYW5kLiAgKi8NCj4gPiA+ICAgICAgICBvcHRhYjEgPSBvcHRhYl9m b3JfdHJlZV9jb2RlIChjMSwgdmVjdHlwZV9vdXQsIG9wdGFiX2RlZmF1bHQpOw0KPiA+ID4gICAg ICAgIG9wdGFiMiA9IG9wdGFiX2Zvcl90cmVlX2NvZGUgKGMyLCB2ZWN0eXBlX291dCwgb3B0YWJf ZGVmYXVsdCk7DQo+ID4gPiAgICAgIH0NCj4gPiA+IC0gIGVsc2UgaWYgKENPTlZFUlRfRVhQUl9D T0RFX1AgKGNvZGUpDQo+ID4gPiArICBlbHNlIGlmIChDT05WRVJUX0VYUFJfQ09ERV9QICgodHJl ZV9jb2RlKSBjb2RlX29yX2lmbikNCj4gPg0KPiA+IEkgdGhpbmsgdGhpcyBzaG91bGQgYmUgYXNf dHJlZV9jb2RlICgpLCBzbyB0aGF0IGl0J3Mgc2FmZSBmb3IgaW50ZXJuYWwNCj4gPiBmdW5jdGlv bnMgaWYgKHRyZWVfY29kZSkgZXZlciBiZWNvbWVzIGEgY2hlY2tlZCBjb252cnNpb24gaW4gZnV0 dXJlLg0KPiA+IFNhbWUgZm9yIG90aGVyIGluc3RhbmNlcy4NCj4gPg0KPiANCj4gRG9uZS4NCj4g DQo+ID4gPiAgCSAgICYmIFZFQ1RPUl9CT09MRUFOX1RZUEVfUCAod2lkZV92ZWN0eXBlKQ0KPiA+ ID4gIAkgICAmJiBWRUNUT1JfQk9PTEVBTl9UWVBFX1AgKHZlY3R5cGUpDQo+ID4gPiAgCSAgICYm IFRZUEVfTU9ERSAod2lkZV92ZWN0eXBlKSA9PSBUWVBFX01PREUgKHZlY3R5cGUpIFvigKZdIEBA DQo+ID4gPiAtMTIwMDAsNyArMTIwMzEsNyBAQCBzdXBwb3J0YWJsZV93aWRlbmluZ19vcGVyYXRp b24gKHZlY19pbmZvDQo+ID4gKnZpbmZvLA0KPiA+ID4gIGJvb2wNCj4gPiA+ICBzdXBwb3J0YWJs ZV9uYXJyb3dpbmdfb3BlcmF0aW9uIChlbnVtIHRyZWVfY29kZSBjb2RlLA0KPiA+ID4gIAkJCQkg dHJlZSB2ZWN0eXBlX291dCwgdHJlZSB2ZWN0eXBlX2luLA0KPiA+ID4gLQkJCQkgZW51bSB0cmVl X2NvZGUgKmNvZGUxLCBpbnQgKm11bHRpX3N0ZXBfY3Z0LA0KPiA+ID4gKwkJCQkgdm9pZCogX2Nv ZGUxLCBpbnQgKm11bHRpX3N0ZXBfY3Z0LA0KPiA+DQo+ID4gVGhpcyBtaWdodCBiZSByZWhhc2hp bmcgYW4gb2xkIGNvbnZlcnNhdGlvbiwgc29ycnksIGJ1dCB3aHkgZG9lcyB0aGlzDQo+ID4gbmVl ZCB0byBiZSB2b2lkPw0KPiA+DQo+IA0KPiBSZXdvcmtlZCB0byBhdm9pZCB1c2luZyB2b2lkKi4N Cj4gDQo+ID4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmVjPHRyZWU+ICpp bnRlcm1fdHlwZXMpICB7DQo+ID4gPiAgICBtYWNoaW5lX21vZGUgdmVjX21vZGU7DQo+ID4gPiBA QCAtMTIwMTMsNiArMTIwNDQsNyBAQCBzdXBwb3J0YWJsZV9uYXJyb3dpbmdfb3BlcmF0aW9uIChl bnVtDQo+ID4gdHJlZV9jb2RlIGNvZGUsDQo+ID4gPiAgICBtYWNoaW5lX21vZGUgaW50ZXJtZWRp YXRlX21vZGUsIHByZXZfbW9kZTsNCj4gPiA+ICAgIGludCBpOw0KPiA+ID4gICAgYm9vbCB1bnM7 DQo+ID4gPiArICB0cmVlX2NvZGUgKiBjb2RlMSA9ICh0cmVlX2NvZGUqKSBfY29kZTE7DQo+ID4g Pg0KPiA+ID4gICAgKm11bHRpX3N0ZXBfY3Z0ID0gMDsNCj4gPiA+ICAgIHN3aXRjaCAoY29kZSkN Cj4gPiA+IGRpZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0b3JpemVyLmggYi9nY2MvdHJlZS12ZWN0 b3JpemVyLmggaW5kZXgNCj4gPiA+IGJkNmYzMzRkMTVmLi43MGMwNjI2NGMxMSAxMDA2NDQNCj4g PiA+IC0tLSBhL2djYy90cmVlLXZlY3Rvcml6ZXIuaA0KPiA+ID4gKysrIGIvZ2NjL3RyZWUtdmVj dG9yaXplci5oDQo+ID4gPiBAQCAtMjAzMCwxMyArMjAzMCwxNiBAQCBleHRlcm4gYm9vbCB2ZWN0 X2lzX3NpbXBsZV91c2UgKHZlY19pbmZvICosDQo+ID4gc3RtdF92ZWNfaW5mbywgc2xwX3RyZWUs DQo+ID4gPiAgCQkJCWVudW0gdmVjdF9kZWZfdHlwZSAqLA0KPiA+ID4gIAkJCQl0cmVlICosIHN0 bXRfdmVjX2luZm8gKiA9IE5VTEwpOyAgZXh0ZXJuIGJvb2wNCj4gPiA+IHZlY3RfbWF5YmVfdXBk YXRlX3NscF9vcF92ZWN0eXBlIChzbHBfdHJlZSwgdHJlZSk7IC1leHRlcm4gYm9vbA0KPiA+ID4g c3VwcG9ydGFibGVfd2lkZW5pbmdfb3BlcmF0aW9uICh2ZWNfaW5mbyAqLA0KPiA+ID4gLQkJCQkJ ICAgIGVudW0gdHJlZV9jb2RlLCBzdG10X3ZlY19pbmZvLA0KPiA+ID4gLQkJCQkJICAgIHRyZWUs IHRyZWUsIGVudW0gdHJlZV9jb2RlICosDQo+ID4gPiAtCQkJCQkgICAgZW51bSB0cmVlX2NvZGUg KiwgaW50ICosDQo+ID4gPiAtCQkJCQkgICAgdmVjPHRyZWU+ICopOw0KPiA+ID4gK2V4dGVybiBi b29sIHN1cHBvcnRhYmxlX3dpZGVuaW5nX29wZXJhdGlvbiAodmVjX2luZm8gKnZpbmZvLA0KPiA+ ID4gKwkJCQljb2RlX2hlbHBlciBjb2RlX29yX2lmbiwNCj4gPiA+ICsJCQkJc3RtdF92ZWNfaW5m byBzdG10X2luZm8sDQo+ID4gPiArCQkJCXRyZWUgdmVjdHlwZV9vdXQsIHRyZWUgdmVjdHlwZV9p biwNCj4gPiA+ICsJCQkJY29kZV9oZWxwZXIgKmNvZGVfb3JfaWZuMSwNCj4gPiA+ICsJCQkJY29k ZV9oZWxwZXIgKmNvZGVfb3JfaWZuMiwNCj4gPiA+ICsJCQkJaW50ICptdWx0aV9zdGVwX2N2dCwN Cj4gPiA+ICsJCQkJdmVjPHRyZWU+ICppbnRlcm1fdHlwZXMpOw0KPiA+DQo+ID4gTm9ybWFsIHN0 eWxlIGlzIHRvIGtlZXAgdGhlIHZhcmlhYmxlIG5hbWVzIG91dCBvZiB0aGUgaGVhZGVyLg0KPiA+ IFRoZSBkb2N1bWVudGF0aW9uIGxpdmVzIGluIHRoZSAuYyBmaWxlLCBzbyBpbiBwcmFjdGljZSwg YW55b25lIHdobw0KPiA+IHdhbnRzIHRvIGFkZCBhIG5ldyBjYWxsZXIgd2lsbCBuZWVkIHRvIGxv b2sgdGhlcmUgYW55d2F5Lg0KPiA+DQo+ID4gVGhhbmtzLA0KPiA+IFJpY2hhcmQNCj4gPg0KPiA+ ID4gIGV4dGVybiBib29sIHN1cHBvcnRhYmxlX25hcnJvd2luZ19vcGVyYXRpb24gKGVudW0gdHJl ZV9jb2RlLCB0cmVlLA0KPiA+IHRyZWUsDQo+ID4gPiAtCQkJCQkgICAgIGVudW0gdHJlZV9jb2Rl ICosIGludCAqLA0KPiA+ID4gKwkJCQkJICAgICB2b2lkICosIGludCAqLA0KPiA+ID4gIAkJCQkJ ICAgICB2ZWM8dHJlZT4gKik7DQo+ID4gPg0KPiA+ID4gIGV4dGVybiB1bnNpZ25lZCByZWNvcmRf c3RtdF9jb3N0IChzdG10X3ZlY3Rvcl9mb3JfY29zdCAqLCBpbnQsIGRpZmYNCj4gPiA+IC0tZ2l0 IGEvZ2NjL3RyZWUuaCBiL2djYy90cmVlLmggaW5kZXggZjYyYzAwYmM4NzAuLjM0NjU2NWY4NGNl DQo+ID4gPiAxMDA2NDQNCj4gPiA+IC0tLSBhL2djYy90cmVlLmgNCj4gPiA+ICsrKyBiL2djYy90 cmVlLmgNCj4gPiA+IEBAIC02NTQ2LDUgKzY1NDYsMzEgQEAgZXh0ZXJuIHVuc2lnbmVkIGZuZGVj bF9kZWFsbG9jX2FyZ25vICh0cmVlKTsNCj4gPiA+ICAgICBpZiBub25udWxsLCBzZXQgdGhlIHNl Y29uZCBhcmd1bWVudCB0byB0aGUgcmVmZXJlbmNlZCBlbmNsb3NpbmcNCj4gPiA+ICAgICBvYmpl Y3Qgb3IgcG9pbnRlci4gIE90aGVyd2lzZSByZXR1cm4gbnVsbC4gICovICBleHRlcm4gdHJlZQ0K PiA+ID4gZ2V0X2F0dHJfbm9uc3RyaW5nX2RlY2wgKHRyZWUsIHRyZWUgKiA9IE5VTEwpOw0KPiA+ ID4gKy8qIEhlbHBlciB0byB0cmFuc3BhcmVudGx5IGFsbG93IHRyZWUgY29kZXMgYW5kIGJ1aWx0 aW4gZnVuY3Rpb24gY29kZXMNCj4gPiA+ICsgICBleGlzdCBpbiBvbmUgc3RvcmFnZSBlbnRpdHku ICAqLyBjbGFzcyBjb2RlX2hlbHBlciB7DQo+ID4gPiArcHVibGljOg0KPiA+ID4gKyAgY29kZV9o ZWxwZXIgKCkge30NCj4gPiA+ICsgIGNvZGVfaGVscGVyICh0cmVlX2NvZGUgY29kZSkgOiByZXAg KChpbnQpIGNvZGUpIHt9DQo+ID4gPiArICBjb2RlX2hlbHBlciAoY29tYmluZWRfZm4gZm4pIDog cmVwICgtKGludCkgZm4pIHt9DQo+ID4gPiArICBvcGVyYXRvciB0cmVlX2NvZGUgKCkgY29uc3Qg eyByZXR1cm4gaXNfdHJlZV9jb2RlICgpID8NCj4gPiA+ICsJCQkJCQkgICAgICAgKHRyZWVfY29k ZSkgcmVwIDoNCj4gPiA+ICsJCQkJCQkgICAgICAgRVJST1JfTUFSSzsgfQ0KPiA+ID4gKyAgb3Bl cmF0b3IgY29tYmluZWRfZm4gKCkgY29uc3QgeyByZXR1cm4gaXNfZm5fY29kZSAoKSA/DQo+ID4g PiArCQkJCQkJICAgICAgIChjb21iaW5lZF9mbikgLXJlcDoNCj4gPiA+ICsJCQkJCQkgICAgICAg Q0ZOX0xBU1Q7IH0NCj4gPiA+ICsgIGJvb2wgaXNfdHJlZV9jb2RlICgpIGNvbnN0IHsgcmV0dXJu IHJlcCA+IDA7IH0NCj4gPiA+ICsgIGJvb2wgaXNfZm5fY29kZSAoKSBjb25zdCB7IHJldHVybiBy ZXAgPCAwOyB9DQo+ID4gPiArICBpbnQgZ2V0X3JlcCAoKSBjb25zdCB7IHJldHVybiByZXA7IH0N Cj4gPiA+ICsNCj4gPiA+ICsgIGVudW0gdHJlZV9jb2RlIGFzX3RyZWVfY29kZSAoKSBjb25zdCB7 IHJldHVybiBpc190cmVlX2NvZGUgKCkgPw0KPiA+ID4gKyAgICAodHJlZV9jb2RlKSogdGhpcyA6 IE1BWF9UUkVFX0NPREVTOyB9ICBjb21iaW5lZF9mbiBhc19mbl9jb2RlDQo+ID4gPiArICgpIGNv bnN0IHsgcmV0dXJuIGlzX2ZuX2NvZGUgKCkgPyAoY29tYmluZWRfZm4pDQo+ID4gKnRoaXMNCj4g PiA+ICsgICAgOiBDRk5fTEFTVDt9DQo+ID4gPiArDQo+ID4gPiArcHJpdmF0ZToNCj4gPiA+ICsg IGludCByZXA7DQo+ID4gPiArfTsNCj4gPiA+DQo+ID4gPiAgI2VuZGlmICAvKiBHQ0NfVFJFRV9I ICAqLw0K