From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2073.outbound.protection.outlook.com [40.107.21.73]) by sourceware.org (Postfix) with ESMTPS id E0F6E3858D1E for ; Wed, 30 Nov 2022 04:28:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org E0F6E3858D1E Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ZST922TP4OJ3LofMV/swg5yQUiaIDHPfovzx946oW/DQkMhsApRwDVMFqb68577R9mq36wz9dxPLJ1M4mIlX+ssOAh/UjhxlORVrlKzy/RDh7Im3BPJGpoMkkEU7YuO3mScrJXHyAawoFUrvyqZcGr696IMOKbTlUT+DTCv+tbr+lVerccgLYBeSLXnKji8f08dYueofiGDHyBBpkS9iIQ/Pv9vEGSTMaqjKFHkeRscPMYLwGWZeGTcXQtZ1xSEKJLh2V2+64QnyJ5+izIAnc65QHbTiODfbBF0CjCl1UNpY7rFfPgzELvkjC5tacbTGuTNUfmP+ixocpb96l2WjHA== 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=mol/9yPTaHAzVqIm44r+CWJW9MYL3xXoFgN10gtHDuQ=; b=SXTm5FiCXr33NmetZZ8SPT8iuPSqgb+QmpJ3mRIaFQVDm+MGTBpiP0UDn1KZ2RC7zo7r5hyi924jN8AxYczE3Q7GYX0Yz5c2WFNcj87kID2gUWYd034PJ5Foss9WRcG7PUTDkpk7dEZ+9Uj1L8MssC3JAv6v9cdAuSWxnOdDj9jfvFzMh85LP8m+JddMvvok6CQfE6D8GwoLQF2WHnY3ozsrhuwVthLUlUCSrgAH/+sG7CAZA0VFhlcPPzkFKEe4yHQrhax+msAliKK2fR21AwAdMQYodpBX3vgc86bit11KHCUnX375Uhb64Bg4eRUO7ukNZ32y5HWQcVNAcGe25g== 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=mol/9yPTaHAzVqIm44r+CWJW9MYL3xXoFgN10gtHDuQ=; b=f2eW3ALd6kPvJSRUDk4CWfO8uI9ICYjSo6Yhg9hmJ6YS2WJBSdVbtGs1arqMPTmLfGJeiSbgpsBvKIMjM0xCNhkPonXQ1XTgDpJe41jH2uNz0qnT/gqhzicZ7g3Vuu0YS2hUTUCuMkFIexhMT8WIzwGjtaK67SkZ9whX9t6J2GM= Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by AM9PR08MB5875.eurprd08.prod.outlook.com (2603:10a6:20b:2dc::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5880.8; Wed, 30 Nov 2022 04:28:07 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::bd2a:aff9:b1a0:2fc7]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::bd2a:aff9:b1a0:2fc7%5]) with mapi id 15.20.5880.008; Wed, 30 Nov 2022 04:28:07 +0000 From: Tamar Christina To: Tamar Christina , "gcc-patches@gcc.gnu.org" CC: nd , Richard Earnshaw , Marcus Shawcroft , Kyrylo Tkachov , Richard Sandiford Subject: RE: [PATCH 7/8]AArch64: Consolidate zero and sign extension patterns and add missing ones. Thread-Topic: [PATCH 7/8]AArch64: Consolidate zero and sign extension patterns and add missing ones. Thread-Index: AQHY7SBEsVFR1wxg+02kl75UvnJtfa5XDb1g Date: Wed, 30 Nov 2022 04:28:07 +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: 3115F27000A92448B9E6AFB8521FC550.0 x-checkrecipientchecked: true authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: VI1PR08MB5325:EE_|AM9PR08MB5875:EE_ x-ms-office365-filtering-correlation-id: 0a0713f5-50a3-4e05-8cca-08dad28b47e9 nodisclaimer: true x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xFSLuY9a76npSA+xhqzTuDbcePAxCgW5ij0eonLJMAGOh2lhfwIp5r41fl8Cu9euzSihLvUejueabnF4JvaRRQkt4ER0m8ebfAWhPB68O1lke1JE1cqcoNtHIGKJiidSyuOegkX2F3tpUiEptMGbs8fkeLZPQl3yV5U8gnjxdsFbWK+O4R4VvtBs1RLiyB1YPfJZdWC2FdSKfj417wlTTkI/XFZAfkDIG2FFNCa/lgwdKAn80LsYhSvA2odycAh4py6/W4Jb9Ny47+Wjl81ouc14YEf0PI+RgGu9cmcf7WB8zFfMJeLFyFnAm44kDwR/hOpHuwypNR1pfQT4OZPsbtvdY+ShnlfEeCfqWYdgFvY/+1kowsZ2LMMRCUvOn4bmuivPrgdSUfWe4lgRkhtbT5cdl09n0v5Nb6ER40fX+wAIsdS/+jhHAZB+unFsVar3aKsL976Pu7CFvaZNOrsNtmgonUBoxR98WEn92iBbRnRj/1Fd4gMH2A8Ix0NsNC1MOBhtbVybVk/gKa57rRN5ewjisY8GsqQDF1ry2HgAIr1GwzgeCTH7sQ5EBPZKBvkZPFKuppQt/3gXx4w/YlSMVb7Icv187z4VGSS1qb3GXkUH8SRJwFYWU3i3WpZv6Tp2WEeLtw5+q5bMSLZtBN0pG+i5orqNJ3qa+/oJigrJh2dJqPjXqbapTrhpYoLQhGwTLk/qhTHnfAzVmLQcypgRKPFOoB28AsPvOVvScEwAPrkms64bjQFEVnKGgHmXPm+93th4pH32m033g5WjJ/rkUw== x-forefront-antispam-report: 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:(13230022)(4636009)(136003)(346002)(376002)(39860400002)(366004)(396003)(451199015)(316002)(54906003)(4743002)(122000001)(53546011)(71200400001)(38100700002)(6506007)(7696005)(41300700001)(26005)(8936002)(52536014)(186003)(30864003)(86362001)(5660300002)(4326008)(66556008)(66446008)(66946007)(66476007)(9686003)(8676002)(64756008)(110136005)(2906002)(76116006)(33656002)(83380400001)(55016003)(478600001)(38070700005)(84970400001);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?YzU5WE1DR0t5R2IvK0pRanM0K25BRTZKSXlRck1UbGJMRDMzM3AxeVo5b2xY?= =?utf-8?B?ZjNBVEJzREtlY1R4c3pNc1d3VFJEMTNJMUMwSGtDR0NHYVpVYTNMbmIwL0RM?= =?utf-8?B?cTcxNk5pSnE2aFhieVpMYzVERVFYNHk3cGFMYUlzOWxjRUNuaHJGUDN2RkxZ?= =?utf-8?B?S0dqa0dFRDFiZEVKWHdHWHp6b08zSlphWHU1Smg5NFdMLzBHOHgwYU9PMk14?= =?utf-8?B?MVlWakxSeVFqQjZxTUhOVmdKMDJ3SXhNSGRlTVNRcVhkd1Y1UWFNMWhWcG9p?= =?utf-8?B?bU0ya1VtYWFIZ1NQQzhkcXprQ1RRa3NCYysvai9PWjA5ZHVjZ0RMbThMWlhD?= =?utf-8?B?YmI3endnTTVvRDRnMU9jNmwyM2xkZ0x5RkMrNDNVb0dYcGVxQ1VpZUVuaDQr?= =?utf-8?B?WVVwbytvWFp0SFNTbW52YmFYb2orY1UzeDhFVDNQN2E2NFZYZ3EzYnJhczg0?= =?utf-8?B?M0hjREdSeElQanlEZnY4MGZ0U0krYWVMWlZpYmdnNW1IU04wMC9XSTJzdXNX?= =?utf-8?B?Z3RGbUFlazlSbXpsR3dzeWt5UzVlVU9lWVgzYTJoa1hTRkxwcjZYT3lQaGU1?= =?utf-8?B?YmVKemw3VkRUZjhUT1FCZHRDSFVWZkZkTFYrZkJDdUpLK2QwZ3hvQVAwWlhn?= =?utf-8?B?ZUVOakFzaGU3RGhsVU94SjkzNm1PdXA5MDZtSHhrV1p5OGEvWlR6QW94bzRu?= =?utf-8?B?azJ6dlVOcE5ZZ0FMdWdNTng5QTB6SDNiQ08vNHRIZTlCaHhmWUVWS01mTGZU?= =?utf-8?B?NXJZWUExdy9wYm1GOFRJVGFoL1lheWpoc1paOWRjU0FkSi9kdlZYRXowL3B1?= =?utf-8?B?SVZUbUx5WHdFR0RUMkVUTDVyZUVlTUxTZDB4dmZsRG9DL2hVWm9udmdYbThR?= =?utf-8?B?b0gyc0ZYMFkvS2xOOFBJcFMzakk0QjIrZW1hUVRxSWVsSEM2QWkvSHJLR3BB?= =?utf-8?B?Z2xiSjlwR2lGOGt5ZG8vdTFUWXpmWGI5bDU2Sk9BRlczU2FCY0x3M21QTyt3?= =?utf-8?B?NXh1bjZsUVJEQ1gyTmJtSERwK1Z6d2NsRGRjSklFRlhNdUtMTytJd1FVdVNi?= =?utf-8?B?SEJybHpmQWVDWExBWGt3ci9vQ1JEeU1HM1lSU1JncWRDYzMzVVBHMG15SWJU?= =?utf-8?B?NWhBS00zNm11aWp3QUJPdDM2ejZGRTJjR2V6RmhFV0RURm9ZY1AyM1h5Y1Bk?= =?utf-8?B?NUVtUGhqV0x3VEZoSkw2QjMvdFFrNGJab2tXMXJBandzQ0ZLWE55OW05T0dI?= =?utf-8?B?YmlPK091a3lxU3dzc2QvbklOdmV1TThhTWU0c1JybzEzN1gvNWl6NUFPQkNU?= =?utf-8?B?TFZ6SFlTZjdFNWFzbmgvVXRxcVVYZmdmZ0UwSXROalMyOFpGdHBTV0RhNGVn?= =?utf-8?B?RGhibFNUK3QxK0lYSjBEYUpmbzc4eVhBeS83MjYzelpLUXFYTzFDVitEaTdN?= =?utf-8?B?NUJJMFcxQTU5NnBWczFWMzU5TEhPd25USmZqRGwrMjFlT3QrNlJmOHhmTDJi?= =?utf-8?B?NUErSXVFQmZLUnE0Zkw2djVUOEhOVmtNVU1LZmF0ZFIrWW9RMjJidHY3N3FV?= =?utf-8?B?Q2xKbW5LRU1xNmpmeVQwVGo0Z2tranFZN3ZQNVd4YUJaVUZyUmtQeTJDb2Y4?= =?utf-8?B?VFd3Q0tzSEdkSnVHSmViUnlpcGFvU1JtNnVWaGpBMUF5UjNKcGZFOXhoS2Zv?= =?utf-8?B?aG5mY0JhN0h4dkQ2WmE4WFFyUnIzTHBUQm1zTjNnMnVCVDhvRTFUU0N5TTlq?= =?utf-8?B?b0trZnFRcnRRS2FadDFrVFNBdzhsbDBkY3JLWlBFODM3SjBMbVRUUjNtTm9v?= =?utf-8?B?QWJVV051ZGhGNWs5dlU1azNzSldoTmpqOHkzSWV4UVQwYTVTOWdOMkNxczFp?= =?utf-8?B?QTEwUG0yYlV2dWdGcytoN2E2VkJDTGJhTDlFck1ZcGVta1VpSkJ3YmxyTTRQ?= =?utf-8?B?VGFYcW9hUEZJZHlKdmNHUC9MUWsxQ2ZPUnk4TzYrV09zajI4QVo2NEVoUnFz?= =?utf-8?B?blZoQVpJYTN5aHpxTGdHRXN0M0NtWHQydnhCb3YzOFdZUDZKU2pRdzNDWXh1?= =?utf-8?B?UHk0bm82QkJuT0hzSzQ5KzdhMlJ2bFJOdytoV0R6cllLYS83ak9XbVltNjVP?= =?utf-8?Q?iYTiKHsBC4EDrktK+86aaRPch?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: VI1PR08MB5325.eurprd08.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 0a0713f5-50a3-4e05-8cca-08dad28b47e9 X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Nov 2022 04:28:07.4496 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: u4I755hTShULmgsSMTjhx77JCguHl8GmbRcWLT/31wBVhSWafWdbus119x3KyoUEkQluPXwN40A9nbz+oRjZvA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB5875 X-Spam-Status: No, score=-9.7 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_ASCII_DIVIDERS,KAM_DMARC_NONE,KAM_LOTSOFHASH,KAM_SHORT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: UGluZy4NCg0KPiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBUYW1hciBDaHJp c3RpbmEgPHRhbWFyLmNocmlzdGluYUBhcm0uY29tPg0KPiBTZW50OiBNb25kYXksIE9jdG9iZXIg MzEsIDIwMjIgMTI6MDAgUE0NCj4gVG86IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnDQo+IENjOiBu ZCA8bmRAYXJtLmNvbT47IFJpY2hhcmQgRWFybnNoYXcgPFJpY2hhcmQuRWFybnNoYXdAYXJtLmNv bT47DQo+IE1hcmN1cyBTaGF3Y3JvZnQgPE1hcmN1cy5TaGF3Y3JvZnRAYXJtLmNvbT47IEt5cnls byBUa2FjaG92DQo+IDxLeXJ5bG8uVGthY2hvdkBhcm0uY29tPjsgUmljaGFyZCBTYW5kaWZvcmQN Cj4gPFJpY2hhcmQuU2FuZGlmb3JkQGFybS5jb20+DQo+IFN1YmplY3Q6IFtQQVRDSCA3LzhdQUFy Y2g2NDogQ29uc29saWRhdGUgemVybyBhbmQgc2lnbiBleHRlbnNpb24gcGF0dGVybnMNCj4gYW5k IGFkZCBtaXNzaW5nIG9uZXMuDQo+IA0KPiBIaSBBbGwsDQo+IA0KPiBUaGUgdGFyZ2V0IGhhcyB2 YXJpb3VzIHplcm8gYW5kIHNpZ24gZXh0ZW5zaW9uIHBhdHRlcm5zLiAgVGhlc2UgaG93ZXZlciBs aXZlDQo+IGluIHZhcmlvdXMgbG9jYXRpb25zIGFyb3VuZCB0aGUgTUQgZmlsZSBhbmQgYWxtb3N0 IGFsbCBvZiB0aGVtIGFyZSBzcGxpdA0KPiBkaWZmZXJlbnRseS4gIER1ZSB0byB0aGUgdmFyaW91 cyBwYXR0ZXJucyB3ZSBhbHNvIGVuZGVkIHVwIG1pc3NpbmcgdmFsaWQNCj4gZXh0ZW5zaW9ucy4g IEZvciBpbnN0YW5jZSBzbW92IGlzIGFsbW9zdCBuZXZlciBnZW5lcmF0ZWQuDQo+IA0KPiBUaGlz IGNoYW5nZSB0cmllcyB0byBtYWtlIHRoaXMgbW9yZSBtYW5hZ2VhYmxlIGJ5IGNvbnNvbGlkYXRp bmcgdGhlDQo+IHBhdHRlcm5zIGFzIG11Y2ggYXMgcG9zc2libGUgYW5kIGluIGRvaW5nIHNvIGZp eCB0aGUgbWlzc2luZyBhbHRlcm5hdGl2ZXMuDQo+IA0KPiBUaGVyZSB3ZXJlIGFsc28gc29tZSBk dXBsaWNhdGUgcGF0dGVybnMuICBOb3RlIHRoYXQgdGhlDQo+IHplcm9fZXh0ZW5kPCpfT05MWTpt b2RlPjxTRF9IU0RJOm1vZGU+MiAgcGF0dGVybnMgYXJlIG5lYXJseQ0KPiBpZGVudGljYWwgaG93 ZXZlciBRSW1vZGUgbGFja3MgYW4gYWx0ZXJuYXRpdmUgdGhhdCB0aGUgb3RoZXJzIGRvbid0IGhh dmUsIHNvDQo+IEkgaGF2ZSBsZWZ0IHRoZW0gYXMNCj4gMyBkaWZmZXJlbnQgcGF0dGVybnMgbmV4 dCB0byBlYWNoIG90aGVyLg0KPiANCj4gSW4gYSBsb3Qgb2YgY2FzZXMgdGhlIHdyb25nIGl0ZXJh dG9yIHdhcyB1c2VkIGxlYXZpbmcgb3V0IGNhc2VzIHRoYXQgc2hvdWxkDQo+IGV4aXN0Lg0KPiAN Cj4gSSd2ZSBhbHNvIGNoYW5nZWQgdGhlIG1hc2tzIHVzZWQgZm9yIHplcm8gZXh0ZW5zaW9ucyB0 byBoZXggaW5zdGVhZCBvZg0KPiBkZWNpbWFsIGFzIGl0J3MgbW9yZSBjbGVhciB3aGF0IHRoZXkg ZG8gdGhhdCB3YXksIGFuZCBhbGlnbnMgYmV0dGVyIHdpdGgNCj4gb3V0cHV0IG9mIG90aGVyIGNv bXBpbGVycy4NCj4gDQo+IFRoaXMgbGVhdmUgdGhlIGJ1bGsgb2YgdGhlIGV4dGVuc2lvbnMgaW4g anVzdCAzIHBhdHRlcm5zLg0KPiANCj4gQm9vdHN0cmFwcGVkIFJlZ3Rlc3RlZCBvbiBhYXJjaDY0 LW5vbmUtbGludXgtZ251IGFuZCBubyBpc3N1ZXMuDQo+IA0KPiBPayBmb3IgbWFzdGVyPw0KPiAN Cj4gVGhhbmtzLA0KPiBUYW1hcg0KPiANCj4gZ2NjL0NoYW5nZUxvZzoNCj4gDQo+IAkqIGNvbmZp Zy9hYXJjaDY0L2FhcmNoNjQtc2ltZC5tZA0KPiAJKCphYXJjaDY0X2dldF9sYW5lX3plcm9fZXh0 ZW5kPEdQSTptb2RlPjxWRFFRSDptb2RlPik6DQo+IENoYW5nZWQgdG8gLi4uDQo+IAkoKmFhcmNo NjRfZ2V0X2xhbmVfemVyb19leHRlbmQ8R1BJOm1vZGU+PFZEUVZfTDptb2RlPik6IC4uLg0KPiBU aGlzLg0KPiAJKCphYXJjaDY0X2dldF9sYW5lX2V4dGVuZGRpPFZTOm1vZGU+KTogTmV3Lg0KPiAJ KiBjb25maWcvYWFyY2g2NC9hYXJjaDY0Lm1kICg8b3B0YWI+c2lkaTIsICpleHRlbmRzaWRpMl9h YXJjaDY0LA0KPiAJPG9wdGFiPnFpaGkyLCAqZXh0ZW5kcWloaTJfYWFyY2g2NCwgKnplcm9fZXh0 ZW5kc2lkaTJfYWFyY2g2NCk6DQo+IFJlbW92ZQ0KPiAJZHVwbGljYXRlIHBhdHRlcm5zLg0KPiAJ KDxBTllfRVhURU5EOm9wdGFiPjxTSE9SVDptb2RlPjxHUEk6bW9kZT4yLA0KPiAJKmV4dGVuZDxT SE9SVDptb2RlPjxHUEk6bW9kZT4yX2FhcmNoNjQpOiBSZW1vdmUsDQo+IGNvbnNvbGlkYXRlDQo+ IAlpbnRvIC4uLg0KPiAJKGV4dGVuZDxBTExYOm1vZGU+PFNEX0hTREk6bW9kZT4yKTogLi4uIFRo aXMuDQo+IAkoKnplcm9fZXh0ZW5kcWloaTJfYWFyY2g2NCwNCj4gCSp6ZXJvX2V4dGVuZDxTSE9S VDptb2RlPjxHUEk6bW9kZT4yX2FhcmNoNjQpOiBSZW1vdmUsDQo+IGNvbnNvbGlkYXRlIGludG8N Cj4gCS4uLg0KPiAJKHplcm9fZXh0ZW5kPFNJX09OTFk6bW9kZT48U0RfSFNESTptb2RlPjIsDQo+ IAl6ZXJvX2V4dGVuZDxISV9PTkxZOm1vZGU+PFNEX0hTREk6bW9kZT4yLA0KPiAJemVyb19leHRl bmQ8UUlfT05MWTptb2RlPjxTRF9IU0RJOm1vZGU+Mik6DQo+IAkoKmFuZHM8R1BJOm1vZGU+X2Nv bXBhcmUwKTogUmVuYW1lZCB0byAuLi4NCj4gCSgqYW5kczxTRF9IU0RJOm1vZGU+X2NvbXBhcmUw KTogLi4uIFRoaXMuDQo+IAkqIGNvbmZpZy9hYXJjaDY0L2l0ZXJhdG9ycy5tZCAoSElfT05MWSwg UUlfT05MWSk6IE5ldy4NCj4gCShzaG9ydF9tYXNrKTogVXNlIGhleCByYXRoZXIgdGhhbiBkZWMg YW5kIGFkZCBTSS4NCj4gDQo+IGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KPiANCj4gCSogZ2Nj LnRhcmdldC9hYXJjaDY0L2FuZHNfMy5jOiBVcGRhdGUgY29kZWdlbi4NCj4gCSogZ2NjLnRhcmdl dC9hYXJjaDY0L3N2ZS9zbHBfMS5jOiBMaWtld2lzZS4NCj4gCSogZ2NjLnRhcmdldC9hYXJjaDY0 L3RzdF81LmM6IExpa2V3aXNlLg0KPiAJKiBnY2MudGFyZ2V0L2FhcmNoNjQvdHN0XzYuYzogTGlr ZXdpc2UuDQo+IA0KPiAtLS0gaW5saW5lIGNvcHkgb2YgcGF0Y2ggLS0NCj4gZGlmZiAtLWdpdCBh L2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQubWQNCj4gYi9nY2MvY29uZmlnL2FhcmNo NjQvYWFyY2g2NC1zaW1kLm1kDQo+IGluZGV4DQo+IDhhODRhODU2MGU5ODJiODE1NWIxODU0MWY1 NTA0ODAxYjMzMzAxMjQuLmQwYjM3YzRkZDQ4YWVhZmQzZDg3YzkwZGMNCj4gMzI3MGU3MWFmNWE3 MmI5IDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC1zaW1kLm1kDQo+ ICsrKyBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQubWQNCj4gQEAgLTQyMzcsMTkg KzQyMzcsMzQgQEAgKGRlZmluZV9pbnNuDQo+ICIqYWFyY2g2NF9nZXRfbGFuZV9leHRlbmQ8R1BJ Om1vZGU+PFZEUVFIOm1vZGU+Ig0KPiAgICBbKHNldF9hdHRyICJ0eXBlIiAibmVvbl90b19ncDxW RFFRSDpxPiIpXQ0KPiAgKQ0KPiANCj4gLShkZWZpbmVfaW5zbg0KPiAiKmFhcmNoNjRfZ2V0X2xh bmVfemVyb19leHRlbmQ8R1BJOm1vZGU+PFZEUVFIOm1vZGU+Ig0KPiArKGRlZmluZV9pbnNuICIq YWFyY2g2NF9nZXRfbGFuZV9leHRlbmRkaTxWUzptb2RlPiINCj4gKyAgWyhzZXQgKG1hdGNoX29w ZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikNCj4gKwkoc2lnbl9leHRlbmQ6REkN Cj4gKwkgICh2ZWNfc2VsZWN0OjxWUzpWRUw+DQo+ICsJICAgIChtYXRjaF9vcGVyYW5kOlZTIDEg InJlZ2lzdGVyX29wZXJhbmQiICJ3IikNCj4gKwkgICAgKHBhcmFsbGVsIFsobWF0Y2hfb3BlcmFu ZDpTSSAyICJpbW1lZGlhdGVfb3BlcmFuZCIgImkiKV0pKSkpXQ0KPiArICAiVEFSR0VUX1NJTUQi DQo+ICsgIHsNCj4gKyAgICBvcGVyYW5kc1syXSA9IGFhcmNoNjRfZW5kaWFuX2xhbmVfcnR4ICg8 VlM6TU9ERT5tb2RlLA0KPiArCQkJCQkgICBJTlRWQUwgKG9wZXJhbmRzWzJdKSk7DQo+ICsgICAg cmV0dXJuICJzbW92XFx0JXgwLCAlMS48VlM6VmV0eXBlPlslMl0iOw0KPiArICB9DQo+ICsgIFso c2V0X2F0dHIgInR5cGUiICJuZW9uX3RvX2dwPFZTOnE+IildDQo+ICspDQo+ICsNCj4gKyhkZWZp bmVfaW5zbg0KPiAiKmFhcmNoNjRfZ2V0X2xhbmVfemVyb19leHRlbmQ8R1BJOm1vZGU+PFZEUVZf TDptb2RlPiINCj4gICAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6R1BJIDAgInJlZ2lzdGVyX29wZXJh bmQiICI9ciIpDQo+ICAJKHplcm9fZXh0ZW5kOkdQSQ0KPiAtCSAgKHZlY19zZWxlY3Q6PFZEUVFI OlZFTD4NCj4gLQkgICAgKG1hdGNoX29wZXJhbmQ6VkRRUUggMSAicmVnaXN0ZXJfb3BlcmFuZCIg InciKQ0KPiArCSAgKHZlY19zZWxlY3Q6PFZEUVZfTDpWRUw+DQo+ICsJICAgIChtYXRjaF9vcGVy YW5kOlZEUVZfTCAxICJyZWdpc3Rlcl9vcGVyYW5kIiAidyIpDQo+ICAJICAgIChwYXJhbGxlbCBb KG1hdGNoX29wZXJhbmQ6U0kgMiAiaW1tZWRpYXRlX29wZXJhbmQiICJpIildKSkpKV0NCj4gICAg IlRBUkdFVF9TSU1EIg0KPiAgICB7DQo+IC0gICAgb3BlcmFuZHNbMl0gPSBhYXJjaDY0X2VuZGlh bl9sYW5lX3J0eCAoPFZEUVFIOk1PREU+bW9kZSwNCj4gKyAgICBvcGVyYW5kc1syXSA9IGFhcmNo NjRfZW5kaWFuX2xhbmVfcnR4ICg8VkRRVl9MOk1PREU+bW9kZSwNCj4gIAkJCQkJICAgSU5UVkFM IChvcGVyYW5kc1syXSkpOw0KPiAtICAgIHJldHVybiAidW1vdlxcdCV3MCwgJTEuPFZEUVFIOlZl dHlwZT5bJTJdIjsNCj4gKyAgICByZXR1cm4gInVtb3ZcXHQldzAsICUxLjxWRFFWX0w6VmV0eXBl PlslMl0iOw0KPiAgICB9DQo+IC0gIFsoc2V0X2F0dHIgInR5cGUiICJuZW9uX3RvX2dwPFZEUVFI OnE+IildDQo+ICsgIFsoc2V0X2F0dHIgInR5cGUiICJuZW9uX3RvX2dwPFZEUVZfTDpxPiIpXQ0K PiAgKQ0KPiANCj4gIDs7IExhbmUgZXh0cmFjdGlvbiBvZiBhIHZhbHVlLCBuZWl0aGVyIHNpZ24g bm9yIHplcm8gZXh0ZW5zaW9uIGRpZmYgLS1naXQNCj4gYS9nY2MvY29uZmlnL2FhcmNoNjQvYWFy Y2g2NC5tZCBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0Lm1kIGluZGV4DQo+IDNlYTE2ZGJj MjU1N2M2YTRmMzcxMDRkNDRhNDlmNzdmNzY4ZWI1M2QuLjA5YWUxMTE4MzcxZjgyY2E2MzE0NmZj ZWI5DQo+IDUzZWI5ZTgyMGQwNWE0IDEwMDY0NA0KPiAtLS0gYS9nY2MvY29uZmlnL2FhcmNoNjQv YWFyY2g2NC5tZA0KPiArKysgYi9nY2MvY29uZmlnL2FhcmNoNjQvYWFyY2g2NC5tZA0KPiBAQCAt MTkxMSwyMiArMTkxMSw2IEBAIChkZWZpbmVfaW5zbg0KPiAic3RvcmV3Yl9wYWlyPFRYOm1vZGU+ XzxQOm1vZGU+Ig0KPiAgOzsgU2lnbi9aZXJvIGV4dGVuc2lvbg0KPiAgOzsgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0K PiANCj4gLShkZWZpbmVfZXhwYW5kICI8b3B0YWI+c2lkaTIiDQo+IC0gIFsoc2V0IChtYXRjaF9v cGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KPiAtCShBTllfRVhURU5EOkRJIChtYXRj aF9vcGVyYW5kOlNJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIikpKV0NCj4gLSAgIiINCj4gLSkN Cj4gLQ0KPiAtKGRlZmluZV9pbnNuICIqZXh0ZW5kc2lkaTJfYWFyY2g2NCINCj4gLSAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6REkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIiKQ0KPiAtICAgICAg ICAoc2lnbl9leHRlbmQ6REkgKG1hdGNoX29wZXJhbmQ6U0kgMSAibm9uaW1tZWRpYXRlX29wZXJh bmQiDQo+ICJyLG0iKSkpXQ0KPiAtICAiIg0KPiAtICAiQA0KPiAtICAgc3h0d1x0JTAsICV3MQ0K PiAtICAgbGRyc3dcdCUwLCAlMSINCj4gLSAgWyhzZXRfYXR0ciAidHlwZSIgImV4dGVuZCxsb2Fk XzQiKV0NCj4gLSkNCj4gLQ0KPiAgKGRlZmluZV9pbnNuICIqbG9hZF9wYWlyX2V4dGVuZHNpZGky X2FhcmNoNjQiDQo+ICAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOkRJIDAgInJlZ2lzdGVyX29wZXJh bmQiICI9ciIpDQo+ICAJKHNpZ25fZXh0ZW5kOkRJIChtYXRjaF9vcGVyYW5kOlNJIDEgImFhcmNo NjRfbWVtX3BhaXJfb3BlcmFuZCINCj4gIlVtcCIpKSkgQEAgLTE5NDAsMjEgKzE5MjQsNiBAQCAo ZGVmaW5lX2luc24NCj4gIipsb2FkX3BhaXJfZXh0ZW5kc2lkaTJfYWFyY2g2NCINCj4gICAgWyhz ZXRfYXR0ciAidHlwZSIgImxvYWRfOCIpXQ0KPiAgKQ0KPiANCj4gLShkZWZpbmVfaW5zbiAiKnpl cm9fZXh0ZW5kc2lkaTJfYWFyY2g2NCINCj4gLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6REkgMCAi cmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIsdyx3LHIsdyIpDQo+IC0gICAgICAgICh6ZXJvX2V4dGVu ZDpESSAobWF0Y2hfb3BlcmFuZDpTSSAxICJub25pbW1lZGlhdGVfb3BlcmFuZCINCj4gInIsbSxy LG0sdyx3IikpKV0NCj4gLSAgIiINCj4gLSAgIkANCj4gLSAgIHV4dHdcdCUwLCAldzENCj4gLSAg IGxkclx0JXcwLCAlMQ0KPiAtICAgZm1vdlx0JXMwLCAldzENCj4gLSAgIGxkclx0JXMwLCAlMQ0K PiAtICAgZm1vdlx0JXcwLCAlczENCj4gLSAgIGZtb3ZcdCVzMCwgJXMxIg0KPiAtICBbKHNldF9h dHRyICJ0eXBlIiAibW92X3JlZyxsb2FkXzQsZl9tY3IsZl9sb2FkcyxmX21yYyxmbW92IikNCj4g LSAgIChzZXRfYXR0ciAiYXJjaCIgIiosKixmcCxmcCxmcCxmcCIpXQ0KPiAtKQ0KPiAtDQo+ICAo ZGVmaW5lX2luc24gIipsb2FkX3BhaXJfemVyb19leHRlbmRzaWRpMl9hYXJjaDY0Ig0KPiAgICBb KHNldCAobWF0Y2hfb3BlcmFuZDpESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIsdyIpDQo+ICAJ KHplcm9fZXh0ZW5kOkRJIChtYXRjaF9vcGVyYW5kOlNJIDENCj4gImFhcmNoNjRfbWVtX3BhaXJf b3BlcmFuZCIgIlVtcCxVbXAiKSkpIEBAIC0xOTcxLDYxICsxOTQwLDY0IEBADQo+IChkZWZpbmVf aW5zbiAiKmxvYWRfcGFpcl96ZXJvX2V4dGVuZHNpZGkyX2FhcmNoNjQiDQo+ICAgICAoc2V0X2F0 dHIgImFyY2giICIqLGZwIildDQo+ICApDQo+IA0KPiAtKGRlZmluZV9leHBhbmQgIjxBTllfRVhU RU5EOm9wdGFiPjxTSE9SVDptb2RlPjxHUEk6bW9kZT4yIg0KPiAtICBbKHNldCAobWF0Y2hfb3Bl cmFuZDpHUEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIpDQo+IC0gICAgICAgIChBTllfRVhURU5EOkdQ SSAobWF0Y2hfb3BlcmFuZDpTSE9SVCAxDQo+ICJub25pbW1lZGlhdGVfb3BlcmFuZCIpKSldDQo+ IC0gICIiDQo+IC0pDQo+IC0NCj4gLShkZWZpbmVfaW5zbiAiKmV4dGVuZDxTSE9SVDptb2RlPjxH UEk6bW9kZT4yX2FhcmNoNjQiDQo+IC0gIFsoc2V0IChtYXRjaF9vcGVyYW5kOkdQSSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPXIscixyIikNCj4gLSAgICAgICAgKHNpZ25fZXh0ZW5kOkdQSSAobWF0 Y2hfb3BlcmFuZDpTSE9SVCAxICJub25pbW1lZGlhdGVfb3BlcmFuZCINCj4gInIsbSx3IikpKV0N Cj4gKyhkZWZpbmVfaW5zbiAiZXh0ZW5kPEFMTFg6bW9kZT48U0RfSFNESTptb2RlPjIiDQo+ICsg IFsoc2V0IChtYXRjaF9vcGVyYW5kOlNEX0hTREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIs ciIpDQo+ICsgICAgICAgIChzaWduX2V4dGVuZDpTRF9IU0RJDQo+ICsJICAobWF0Y2hfb3BlcmFu ZDpBTExYIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIiAicixtLHciKSkpXQ0KPiAgICAiIg0KPiAg ICAiQA0KPiAtICAgc3h0PFNIT1JUOnNpemU+XHQlPEdQSTp3PjAsICV3MQ0KPiAtICAgbGRyczxT SE9SVDpzaXplPlx0JTxHUEk6dz4wLCAlMQ0KPiAtICAgc21vdlx0JTxHUEk6dz4wLCAlMS48U0hP UlQ6c2l6ZT5bMF0iDQo+ICsgICBzeHQ8QUxMWDpzaXplPlx0JTxTRF9IU0RJOnc+MCwgJXcxDQo+ ICsgICBsZHJzPEFMTFg6c2l6ZT5cdCU8U0RfSFNESTp3PjAsICUxDQo+ICsgICBzbW92XHQlPFNE X0hTREk6dz4wLCAlMS48QUxMWDpWZXR5cGU+WzBdIg0KPiAgICBbKHNldF9hdHRyICJ0eXBlIiAi ZXh0ZW5kLGxvYWRfNCxuZW9uX3RvX2dwIikNCj4gICAgIChzZXRfYXR0ciAiYXJjaCIgIiosKixm cCIpXQ0KPiAgKQ0KPiANCj4gLShkZWZpbmVfaW5zbiAiKnplcm9fZXh0ZW5kPFNIT1JUOm1vZGU+ PEdQSTptb2RlPjJfYWFyY2g2NCINCj4gLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6R1BJIDAgInJl Z2lzdGVyX29wZXJhbmQiICI9cixyLHcsciIpDQo+IC0gICAgICAgICh6ZXJvX2V4dGVuZDpHUEkg KG1hdGNoX29wZXJhbmQ6U0hPUlQgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiDQo+ICJyLG0sbSx3 IikpKV0NCj4gKyhkZWZpbmVfaW5zbiAiemVyb19leHRlbmQ8U0lfT05MWTptb2RlPjxTRF9IU0RJ Om1vZGU+MiINCj4gKyAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6U0RfSFNESSAwICJyZWdpc3Rlcl9v cGVyYW5kIiAiPXIscix3LHcscix3IikNCj4gKyAgICAgICAgKHplcm9fZXh0ZW5kOlNEX0hTREkN Cj4gKwkgIChtYXRjaF9vcGVyYW5kOlNJX09OTFkgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiDQo+ ICJyLG0scixtLHcsdyIpKSldDQo+ICAgICIiDQo+ICAgICJADQo+IC0gICBhbmRcdCU8R1BJOnc+ MCwgJTxHUEk6dz4xLCA8U0hPUlQ6c2hvcnRfbWFzaz4NCj4gLSAgIGxkcjxTSE9SVDpzaXplPlx0 JXcwLCAlMQ0KPiAtICAgbGRyXHQlPFNIT1JUOnNpemU+MCwgJTENCj4gLSAgIHVtb3ZcdCV3MCwg JTEuPFNIT1JUOnNpemU+WzBdIg0KPiAtICBbKHNldF9hdHRyICJ0eXBlIiAibG9naWNfaW1tLGxv YWRfNCxmX2xvYWRzLG5lb25fdG9fZ3AiKQ0KPiAtICAgKHNldF9hdHRyICJhcmNoIiAiKiwqLGZw LGZwIildDQo+IC0pDQo+IC0NCj4gLShkZWZpbmVfZXhwYW5kICI8b3B0YWI+cWloaTIiDQo+IC0g IFsoc2V0IChtYXRjaF9vcGVyYW5kOkhJIDAgInJlZ2lzdGVyX29wZXJhbmQiKQ0KPiAtICAgICAg ICAoQU5ZX0VYVEVORDpISSAobWF0Y2hfb3BlcmFuZDpRSSAxICJub25pbW1lZGlhdGVfb3BlcmFu ZCIpKSldDQo+IC0gICIiDQo+ICsgICB1eHQ8U0lfT05MWTpzaXplPlx0JTxTRF9IU0RJOnc+MCwg JXcxDQo+ICsgICBsZHI8U0lfT05MWTpzaXplbD5cdCV3MCwgJTENCj4gKyAgIGZtb3ZcdCU8U0lf T05MWTpWZXR5cGU+MCwgJXcxDQo+ICsgICBsZHJcdCU8U0lfT05MWTpWZXR5cGU+MCwgJTENCj4g KyAgIGZtb3ZcdCV3MCwgJTxTSV9PTkxZOlZldHlwZT4xDQo+ICsgICBmbW92XHQlPFNJX09OTFk6 VmV0eXBlPjAsICU8U0lfT05MWTpWZXR5cGU+MSINCj4gKyAgWyhzZXRfYXR0ciAidHlwZSIgIm1v dl9yZWcsbG9hZF80LGZfbWNyLGZfbG9hZHMsZl9tcmMsZm1vdiIpDQo+ICsgICAoc2V0X2F0dHIg ImFyY2giICIqLCosZnAsZnAsZnAsZnAiKV0NCj4gICkNCj4gDQo+IC0oZGVmaW5lX2luc24gIipl eHRlbmRxaWhpMl9hYXJjaDY0Ig0KPiAtICBbKHNldCAobWF0Y2hfb3BlcmFuZDpISSAwICJyZWdp c3Rlcl9vcGVyYW5kIiAiPXIsciIpDQo+IC0JKHNpZ25fZXh0ZW5kOkhJIChtYXRjaF9vcGVyYW5k OlFJIDEgIm5vbmltbWVkaWF0ZV9vcGVyYW5kIg0KPiAicixtIikpKV0NCj4gKyhkZWZpbmVfaW5z biAiemVyb19leHRlbmQ8SElfT05MWTptb2RlPjxTRF9IU0RJOm1vZGU+MiINCj4gKyAgWyhzZXQg KG1hdGNoX29wZXJhbmQ6U0RfSFNESSAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXIscix3LHcscix3 IikNCj4gKyAgICAgICAgKHplcm9fZXh0ZW5kOlNEX0hTREkNCj4gKwkgIChtYXRjaF9vcGVyYW5k OkhJX09OTFkgMSAibm9uaW1tZWRpYXRlX29wZXJhbmQiDQo+ICJyLG0scixtLHcsdyIpKSldDQo+ ICAgICIiDQo+ICAgICJADQo+IC0gICBzeHRiXHQldzAsICV3MQ0KPiAtICAgbGRyc2JcdCV3MCwg JTEiDQo+IC0gIFsoc2V0X2F0dHIgInR5cGUiICJleHRlbmQsbG9hZF80IildDQo+ICsgICB1eHQ8 SElfT05MWTpzaXplPlx0JTxTRF9IU0RJOnc+MCwgJXcxDQo+ICsgICBsZHI8SElfT05MWTpzaXpl bD5cdCV3MCwgJTENCj4gKyAgIGZtb3ZcdCU8SElfT05MWTpWZXR5cGU+MCwgJXcxDQo+ICsgICBs ZHJcdCU8SElfT05MWTpWZXR5cGU+MCwgJTENCj4gKyAgIHVtb3ZcdCV3MCwgJTEuPEhJX09OTFk6 VmV0eXBlPlswXQ0KPiArICAgZm1vdlx0JTxISV9PTkxZOlZldHlwZT4wLCAlPEhJX09OTFk6VmV0 eXBlPjEiDQo+ICsgIFsoc2V0X2F0dHIgInR5cGUiICJtb3ZfcmVnLGxvYWRfNCxmX21jcixmX2xv YWRzLGZfbXJjLGZtb3YiKQ0KPiArICAgKHNldF9hdHRyICJhcmNoIiAiKiwqLGZwMTYsZnAsZnAs ZnAxNiIpXQ0KPiAgKQ0KPiANCj4gLShkZWZpbmVfaW5zbiAiKnplcm9fZXh0ZW5kcWloaTJfYWFy Y2g2NCINCj4gLSAgWyhzZXQgKG1hdGNoX29wZXJhbmQ6SEkgMCAicmVnaXN0ZXJfb3BlcmFuZCIg Ij1yLHIiKQ0KPiAtCSh6ZXJvX2V4dGVuZDpISSAobWF0Y2hfb3BlcmFuZDpRSSAxICJub25pbW1l ZGlhdGVfb3BlcmFuZCINCj4gInIsbSIpKSldDQo+ICsoZGVmaW5lX2luc24gInplcm9fZXh0ZW5k PFFJX09OTFk6bW9kZT48U0RfSFNESTptb2RlPjIiDQo+ICsgIFsoc2V0IChtYXRjaF9vcGVyYW5k OlNEX0hTREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yLHIsdyxyLHciKQ0KPiArICAgICAgICAo emVyb19leHRlbmQ6U0RfSFNESQ0KPiArCSAgKG1hdGNoX29wZXJhbmQ6UUlfT05MWSAxICJub25p bW1lZGlhdGVfb3BlcmFuZCINCj4gInIsbSxtLHcsdyIpKSldDQo+ICAgICIiDQo+ICAgICJADQo+ IC0gICBhbmRcdCV3MCwgJXcxLCAyNTUNCj4gLSAgIGxkcmJcdCV3MCwgJTEiDQo+IC0gIFsoc2V0 X2F0dHIgInR5cGUiICJsb2dpY19pbW0sbG9hZF80IildDQo+ICsgICB1eHQ8UUlfT05MWTpzaXpl Plx0JTxTRF9IU0RJOnc+MCwgJXcxDQo+ICsgICBsZHI8UUlfT05MWTpzaXplbD5cdCV3MCwgJTEN Cj4gKyAgIGxkclx0JTxRSV9PTkxZOlZldHlwZT4wLCAlMQ0KPiArICAgdW1vdlx0JXcwLCAlMS48 UUlfT05MWTpWZXR5cGU+WzBdDQo+ICsgICBkdXBcdCU8UUlfT05MWTpWZXR5cGU+MCwgJTEuPFFJ X09OTFk6VmV0eXBlPlswXSINCj4gKyAgWyhzZXRfYXR0ciAidHlwZSIgIm1vdl9yZWcsbG9hZF80 LGZfbG9hZHMsZl9tcmMsZm1vdiIpDQo+ICsgICAoc2V0X2F0dHIgImFyY2giICIqLCosZnAsZnAs ZnAiKV0NCj4gICkNCj4gDQo+ICA7OyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+IEBAIC01MDI5LDE1ICs1MDAxLDE1 IEBAIChkZWZpbmVfaW5zbiAiKmFuZDxtb2RlPl9jb21wYXJlMCINCj4gICAgWyhzZXRfYXR0ciAi dHlwZSIgImFsdXNfaW1tIildDQo+ICApDQo+IA0KPiAtKGRlZmluZV9pbnNuICIqYW5kczxHUEk6 bW9kZT5fY29tcGFyZTAiDQo+ICsoZGVmaW5lX2luc24gIiphbmRzPFNEX0hTREk6bW9kZT5fY29t cGFyZTAiDQo+ICAgIFsoc2V0IChyZWc6Q0NfTlogQ0NfUkVHTlVNKQ0KPiAgCShjb21wYXJlOkND X05aDQo+IC0JICh6ZXJvX2V4dGVuZDpHUEkgKG1hdGNoX29wZXJhbmQ6U0hPUlQgMSAicmVnaXN0 ZXJfb3BlcmFuZCINCj4gInIiKSkNCj4gKwkgKHplcm9fZXh0ZW5kOlNEX0hTREkgKG1hdGNoX29w ZXJhbmQ6QUxMWCAxICJyZWdpc3Rlcl9vcGVyYW5kIg0KPiAiciIpKQ0KPiAgCSAoY29uc3RfaW50 IDApKSkNCj4gLSAgIChzZXQgKG1hdGNoX29wZXJhbmQ6R1BJIDAgInJlZ2lzdGVyX29wZXJhbmQi ICI9ciIpDQo+IC0JKHplcm9fZXh0ZW5kOkdQSSAobWF0Y2hfZHVwIDEpKSldDQo+ICsgICAoc2V0 IChtYXRjaF9vcGVyYW5kOlNEX0hTREkgMCAicmVnaXN0ZXJfb3BlcmFuZCIgIj1yIikNCj4gKwko emVyb19leHRlbmQ6U0RfSFNESSAobWF0Y2hfZHVwIDEpKSldDQo+ICAgICIiDQo+IC0gICJhbmRz XFx0JTxHUEk6dz4wLCAlPEdQSTp3PjEsIDxzaG9ydF9tYXNrPiINCj4gKyAgImFuZHNcXHQlPFNE X0hTREk6dz4wLCAlPFNEX0hTREk6dz4xLCA8QUxMWDpzaG9ydF9tYXNrPiINCj4gICAgWyhzZXRf YXR0ciAidHlwZSIgImFsdXNfaW1tIildDQo+ICApDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2Nv bmZpZy9hYXJjaDY0L2l0ZXJhdG9ycy5tZA0KPiBiL2djYy9jb25maWcvYWFyY2g2NC9pdGVyYXRv cnMubWQgaW5kZXgNCj4gMWRmMDlmN2ZlMmViMzVhZWQ5NjExMzQ3NjU0MWUwZmFhNTM5MzU1MS4u ZTkwNDQwN2IyMTY5ZTU4OWI3MDA3ZmY5NjYNCj4gYjJkOTM0N2E2ZDBmZDIgMTAwNjQ0DQo+IC0t LSBhL2djYy9jb25maWcvYWFyY2g2NC9pdGVyYXRvcnMubWQNCj4gKysrIGIvZ2NjL2NvbmZpZy9h YXJjaDY0L2l0ZXJhdG9ycy5tZA0KPiBAQCAtNDEsNiArNDEsOCBAQCAoZGVmaW5lX21vZGVfaXRl cmF0b3IgU0hPUlQgW1FJIEhJXSkgIDs7IEl0ZXJhdG9ycyBmb3INCj4gc2luZ2xlIG1vZGVzLCBm b3IgIkAiIHBhdHRlcm5zLg0KPiAgKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFNJX09OTFkgW1NJXSkN Cj4gIChkZWZpbmVfbW9kZV9pdGVyYXRvciBESV9PTkxZIFtESV0pDQo+ICsoZGVmaW5lX21vZGVf aXRlcmF0b3IgSElfT05MWSBbSEldKQ0KPiArKGRlZmluZV9tb2RlX2l0ZXJhdG9yIFFJX09OTFkg W1FJXSkNCj4gDQo+ICA7OyBJdGVyYXRvciBmb3IgYWxsIGludGVnZXIgbW9kZXMgKHVwIHRvIDY0 LWJpdCkgIChkZWZpbmVfbW9kZV9pdGVyYXRvciBBTExJDQo+IFtRSSBISSBTSSBESV0pIEBAIC0x MDMzLDcgKzEwMzUsNyBAQCAoZGVmaW5lX21vZGVfYXR0ciB3MiBbKEhGICJ4IikgKFNGDQo+ICJ4 IikgKERGICJ3IildKSAgOzsgRm9yIHdpZHRoIG9mIGZwIHJlZ2lzdGVycyBpbiBmY3Z0IGluc3Ry dWN0aW9uDQo+IChkZWZpbmVfbW9kZV9hdHRyIGZwdyBbKERJICJzIikgKFNJICJkIildKQ0KPiAN Cj4gLShkZWZpbmVfbW9kZV9hdHRyIHNob3J0X21hc2sgWyhISSAiNjU1MzUiKSAoUUkgIjI1NSIp XSkNCj4gKyhkZWZpbmVfbW9kZV9hdHRyIHNob3J0X21hc2sgWyhTSSAiMHhmZmZmZmZmZiIpIChI SSAiMHhmZmZmIikgKFFJDQo+ICsiMHhmZiIpXSkNCj4gDQo+ICA7OyBGb3IgY29uc3RyYWludHMg dXNlZCBpbiBzY2FsYXIgaW1tZWRpYXRlIHZlY3RvciBtb3ZlcyAgKGRlZmluZV9tb2RlX2F0dHIN Cj4gaHEgWyhISSAiaCIpIChRSSAicSIpXSkgZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L2FuZHNfMy5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvYW5kc18zLmMNCj4gaW5kZXgNCj4gNDJjYjdmMGYwYmM4NmE0YWNlYjA5ODUxYzMxZWIy ZTg4OGQ5MzQwMy4uNDIxYWE1Y2VhN2E1MWFkODEwY2M5YzU2NTMNCj4gYTE0OWNiMjFiYjg3MWMg MTAwNjQ0DQo+IC0tLSBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2FuZHNfMy5j DQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L2FuZHNfMy5jDQo+IEBA IC05LDQgKzksNCBAQCBmOSAodW5zaWduZWQgY2hhciB4LCBpbnQgeSkNCj4gICAgcmV0dXJuIHg7 DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJhbmRzXHQoeHx3 KVxbMC05XF0rLFxbIFx0XF0qKHh8dylcWzAtOVxdKyxcWw0KPiBcdFxdKjI1NSIgfSB9ICovDQo+ ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIgImFuZHNcdCh4fHcpXFswLTlcXSssXFsN Cj4gK1x0XF0qKHh8dylcWzAtOVxdKyxcWyBcdFxdKjB4ZmYiIH0gfSAqLw0KPiBkaWZmIC0tZ2l0 IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL3NscF8xLmMNCj4gYi9nY2Mv dGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvc2xwXzEuYw0KPiBpbmRleA0KPiA4ZTM1 ZTBiNTc0ZDQ5OTEzYjQzYzdkOGQ0ZjRiYTc1ZjEyN2Y0MmU5Li4wMzI4ODk3NmIzMzk3Y2RiZTBl ODIyZjk0DQo+IGYyYTY0NDhkOWZhOWE1MiAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MudGFyZ2V0L2FhcmNoNjQvc3ZlL3NscF8xLmMNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvc3ZlL3NscF8xLmMNCj4gQEAgLTUxLDcgKzUxLDYgQEAgVEVTVF9BTEwg KFZFQ19QRVJNKQ0KPiAgLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHdo aWxlbG9cdHBbMC03XVwuc30gNiB9IH0gKi8NCj4gIC8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2Vt Ymxlci10aW1lcyB7XHR3aGlsZWxvXHRwWzAtN11cLmR9IDYgfSB9ICovDQo+ICAvKiB7IGRnLWZp bmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdGxkcn0gfSB9ICovDQo+IC0vKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0c3RyfSAyIH0gfSAqLw0KPiAtLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHN0clx0aFswLTldK30gMiB9IH0gKi8NCj4gKy8q IHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHRpbnNcdHZbMC05XStcLmhcWzFc XSwNCj4gK3ZbMC05XStcLmhcWzBcXX0gMSB9IH0gKi8NCj4gDQo+ICAvKiB7IGRnLWZpbmFsIHsg c2Nhbi1hc3NlbWJsZXItbm90IHtcdHVxZGVjfSB9IH0gKi8gZGlmZiAtLWdpdA0KPiBhL2djYy90 ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3RzdF81LmMNCj4gYi9nY2MvdGVzdHN1aXRlL2dj Yy50YXJnZXQvYWFyY2g2NC90c3RfNS5jDQo+IGluZGV4DQo+IDBkZTQwYTZjNDdhN2Q2M2MxYjdh ODFhZWJhNDM4YTA5NmMwMDQxYjguLjE5MDM0Y2Q3NGVkMDdlYTRkNjcwYzI1ZA0KPiA5YWIzZDFj ZmY4MDVhNDgzIDEwMDY0NA0KPiAtLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2 NC90c3RfNS5jDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3RzdF81 LmMNCj4gQEAgLTQsNyArNCw3IEBADQo+ICBpbnQNCj4gIGYyNTUgKGludCB4KQ0KPiAgew0KPiAt ICBpZiAoeCAmIDI1NSkNCj4gKyAgaWYgKHggJiAweGZmKQ0KPiAgICAgIHJldHVybiAxOw0KPiAg ICByZXR1cm4geDsNCj4gIH0NCj4gQEAgLTEyLDEwICsxMiwxMCBAQCBmMjU1IChpbnQgeCkNCj4g IGludA0KPiAgZjY1NTM1IChpbnQgeCkNCj4gIHsNCj4gLSAgaWYgKHggJiA2NTUzNSkNCj4gKyAg aWYgKHggJiAweGZmZmYpDQo+ICAgICAgcmV0dXJuIDE7DQo+ICAgIHJldHVybiB4Ow0KPiAgfQ0K PiANCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidHN0XHQoeHx3KVxbMC05XF0r LFxbIFx0XF0qMjU1IiB9IH0gKi8NCj4gLS8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAi dHN0XHQoeHx3KVxbMC05XF0rLFxbIFx0XF0qNjU1MzUiIH0gfSAqLw0KPiArLyogeyBkZy1maW5h bCB7IHNjYW4tYXNzZW1ibGVyICJ0c3RcdCh4fHcpXFswLTlcXSssXFsgXHRcXSoweGZmIiB9IH0g Ki8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlciAidHN0XHQoeHx3KVxbMC05XF0r LFxbIFx0XF0qMHhmZmZmIiB9IH0NCj4gKyovDQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRl L2djYy50YXJnZXQvYWFyY2g2NC90c3RfNi5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0 L2FhcmNoNjQvdHN0XzYuYw0KPiBpbmRleA0KPiBmMTVlYzExNGMzOTFmZWQ3OWNjNDNiNzc0MGZk ZTgzZmIzZDRlYTUzLi4xYzA0N2NmYWUyMTRiNjBlNWJmMDAzZTY3OA0KPiAxYTI3NzIwMmZjYzU4 OCAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvdHN0XzYu Yw0KPiArKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC90c3RfNi5jDQo+IEBA IC03LDQgKzcsNCBAQCBmb28gKGxvbmcgeCkNCj4gICAgIHJldHVybiAoKHNob3J0KSB4ICE9IDAp ID8geCA6IDE7DQo+ICB9DQo+IA0KPiAtLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyICJ0 c3RcdCh4fHcpXFswLTlcXSssXFsgXHRcXSo2NTUzNSIgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXIgInRzdFx0KHh8dylcWzAtOVxdKyxcWyBcdFxdKjB4ZmZmZiIgfSB9 DQo+ICsqLw0KPiANCj4gDQo+IA0KPiANCj4gLS0NCg==