From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 7638CA0547; Wed, 27 Oct 2021 08:56:17 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0C38B40DDA; Wed, 27 Oct 2021 08:56:17 +0200 (CEST) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30064.outbound.protection.outlook.com [40.107.3.64]) by mails.dpdk.org (Postfix) with ESMTP id 9274E407FF for ; Wed, 27 Oct 2021 08:56:15 +0200 (CEST) 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=xScJ4UZO3GYCLfN7SN5hu/E/ODSnFVPIPiqNcMTf8sQ=; b=4XqRQGB/IeApPqUUrDVvcym+Dc+U5ue9Oy+03EN75DiZpaiKN24l6fp8XjV/DhD/5fhIhKDY/a3s0MwXvD+Fp3XU+BE0Db45wi1EH8xJ1nhw/2+0EJKkYxDmDGJrOyCGUb6H8zyw/eNc069gTq4ZpnbktmI0E0nBa8N9vV1XM+E= Received: from AM5PR04CA0028.eurprd04.prod.outlook.com (2603:10a6:206:1::41) by AM8PR08MB5586.eurprd08.prod.outlook.com (2603:10a6:20b:1d6::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.13; Wed, 27 Oct 2021 06:56:14 +0000 Received: from VE1EUR03FT047.eop-EUR03.prod.protection.outlook.com (2603:10a6:206:1:cafe::8c) by AM5PR04CA0028.outlook.office365.com (2603:10a6:206:1::41) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18 via Frontend Transport; Wed, 27 Oct 2021 06:56:14 +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; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT047.mail.protection.outlook.com (10.152.19.218) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14 via Frontend Transport; Wed, 27 Oct 2021 06:56:14 +0000 Received: ("Tessian outbound a8bfe25d7364:v103"); Wed, 27 Oct 2021 06:56:13 +0000 X-CR-MTA-TID: 64aa7808 Received: from 51b152ae7e03.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A02FE651-90F5-4510-B5DC-9C5CDA528C27.1; Wed, 27 Oct 2021 06:56:07 +0000 Received: from EUR05-DB8-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 51b152ae7e03.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 27 Oct 2021 06:56:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=jPjRJoo1I8k3xzQ4eO4sWp9PiV4NFNsW1bJhyHhOM5WtewW/IpDCVbtehNoby4ucQlhzks/9XFChGjFWdabdJdvhsWpk/7oPRg0VvMi2qO4dxlgjhjxfqxrsDSz8MZrprDPZ07PBjV/QdHWqqlUta2Yrh1I3TibbkWV8i6te6jocwJpSNf2jgMzRiR7LrRhhxw99YbgrC8VUjVeGiJZVpRfTqq8S5O/o3aVJXVhwbZ+ISTZmXN9GLM8yPjL93ni0CPXKN9xs6ybB2wzbKY+XrfBUtmbJfPsW5sVMABt6SnchVgCiD/AM3yhNAMdd/yQKbnOGvCUEJ8LyjnKFDhO7wg== 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=xScJ4UZO3GYCLfN7SN5hu/E/ODSnFVPIPiqNcMTf8sQ=; b=jwa+aZYuYXDauEsb2s7aDsxzRcQ7aFfh7vjPUjrnzhkRvGvjxVlnMdistScnQfp1W7XAVBY8zlN2uVKoggv7Hjf79ySDfL28HRCCXF5AccYeifI9CFLDvOP9aD2ve2LMuXh2+CmMTC6Rzxg4iqTLrDsITOOAhRTsw3P0ejYjRGvMXDuHUo2BCr5iq5jU5S4NOswOf1HmM7ei2RynkbGVavNAop8nKBsejPA8TEkbKk0auGl1sRSEg0pU/sOBqt3C8MFwMUKRxPgIXYE7iql/Nvl8gq4jONu/NiyNlJgLaQVnmD9GpY13ilnli3nd0AWnCN62xauKRwzr31Wvz/L52Q== 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=xScJ4UZO3GYCLfN7SN5hu/E/ODSnFVPIPiqNcMTf8sQ=; b=4XqRQGB/IeApPqUUrDVvcym+Dc+U5ue9Oy+03EN75DiZpaiKN24l6fp8XjV/DhD/5fhIhKDY/a3s0MwXvD+Fp3XU+BE0Db45wi1EH8xJ1nhw/2+0EJKkYxDmDGJrOyCGUb6H8zyw/eNc069gTq4ZpnbktmI0E0nBa8N9vV1XM+E= Received: from DB9PR08MB6923.eurprd08.prod.outlook.com (2603:10a6:10:2ac::6) by DB6PR0801MB1638.eurprd08.prod.outlook.com (2603:10a6:4:38::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14; Wed, 27 Oct 2021 06:56:05 +0000 Received: from DB9PR08MB6923.eurprd08.prod.outlook.com ([fe80::705e:f09f:7dd:500a]) by DB9PR08MB6923.eurprd08.prod.outlook.com ([fe80::705e:f09f:7dd:500a%6]) with mapi id 15.20.4628.020; Wed, 27 Oct 2021 06:56:05 +0000 From: Feifei Wang To: "Ananyev, Konstantin" CC: "dev@dpdk.org" , nd , nd , nd Thread-Topic: [PATCH v5 1/5] eal: add new definitions for wait scheme Thread-Index: AQHXyj/SwIyOLzXiVEmmRCyvsoic0avk68cQgAAcaoCAAAORgIABXNCg Date: Wed, 27 Oct 2021 06:56:05 +0000 Message-ID: References: <20210902053253.3017858-1-feifei.wang2@arm.com> <20211026080204.149550-1-feifei.wang2@arm.com> <20211026080204.149550-2-feifei.wang2@arm.com> In-Reply-To: Accept-Language: zh-CN, en-US Content-Language: zh-CN X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: 9DAC252F6DC9664F85EE821E24202CAD.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-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 48eac07b-7635-42e0-1ac1-08d99916ddf3 x-ms-traffictypediagnostic: DB6PR0801MB1638:|AM8PR08MB5586: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:773;OLM:773; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 7AuIXHIu12bwUfVjAeqx/bY59wHrtuEMFztIAeKYETXLpSONGex87T2drVG3bCCJVn0WEmziUU5tngrbOU9GdX/BLpyFQfYz3qkpxtk4iCcLAx7ijfdAa0OVkkEl7i+Q9YP4bum3LqXQf0oY9dAsgIUtlHQdEeBvA0jMthZZeYZWuZOuPvqWsVB+LTBGqw6qhRJNmch9m3Q1nuruD9AN+7F0A/qEFPV61EUjWKLUjCo5liZm/kBoqxTAfRHtH7idz/tzVH6rffgBzKtvCnhTTvgFMIfKEZHIa44nlsBTfA4Yk55w7SZlF7l8mj6+YDsUHE2U16pGQv85p5wXMTCV9dPIxYQJAte1bGTdnG99rKgiJhyk8OtQsSnPLD7L9zTxBy6gJQFC9IL7DTwQeEPIXVf91nUwbKsNCwY6lTJnYIFZiNOxiOFxRouo7sZh7RaWHFQRr0079z2fpZGoFrZU798QzN4GciQIB2gxzh34nruUcugiUso8nMnAP1Mu/x4NOhhLsm2T+nLW4YaDhJ4eqB+rDxBRnBg3G93WU1Jh1hwhtiEh3DE1XEFrgnXaQT6ccXRI/J2jsH1TXYwG/mRuUWCJwJmAiZbqV2WqsQnsULttuAJbhd8dgZfs5acuGNQxgMDHMUgvSzNq/lPQWk9ftFj2p+gntgxZFWqxW2wXcEPNMUQK3k//MycNEmVD3d0LHi4h1m3Z9IfTEiBNP60WiA== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6923.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(83380400001)(38070700005)(122000001)(38100700002)(186003)(26005)(76116006)(7696005)(6916009)(2906002)(224303003)(6506007)(66446008)(64756008)(9686003)(4326008)(316002)(66476007)(66946007)(66556008)(71200400001)(508600001)(33656002)(86362001)(30864003)(54906003)(8936002)(55016002)(52536014)(5660300002); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0801MB1638 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: VE1EUR03FT047.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 8e931f3b-cf26-427f-25a4-08d99916d8e9 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: jtgfTkiIFkPFu2d8vH7bvsQt0qfXxYY1Aa1DVXQVpZ9yyC9OtoEjRsWhURVH9ZtMzlt3IOasFgrhZIpBDuBQSBceEdhfi0mPj8b18aEvGcaxwpmRXdwbugVBQEX7kVypy89dih79PskUzdurK/3nvHbkLtpPpZIfPxHDVQ6YbrJneeDJy2zt5XpRvjT98KZ2F/wOwj7ZS3xnwiTH7eJM8iOCGz8ZcSlDXsYrNf1Yja+FUdTZSsQyOka6/Nw4uabX+4J5CCFNwtaHArQ1336E6u/C3UZks+WA0sMUdpo6oWFzZfAQ8eXV0AVIHLjV0MaJe3ixjod492W++E9cRWXS/4Gt2Pk46JU0Kaq3M7MpKGzgTJ9vqa8XPb6F3gRAgzzNVbkdKfaQCVYBpAGnVBMCddSveHkvt5iIJWadcK+WaIW+23v0i1Au2QYvtD7tOEOGpTck5LtR+YWmHjfJcTNo4qyIBY4mtWWs2/WlIv2sY1pCswG9+KOTq7sWbO2a7P/S1NzNhTWUUPv23EfYSA6qA07JCCKAkOvubUHVnFZ2+Xr12Bau+cbGAgi2JKfwv5VArg44C6ZeUPWHbM933OMQpzqiYtdfWd7spT2brKGERIUGYW98PSTBPa1Eezy8Bj2tekYth/EJMF0qugnSSEWqjbDk8vRqbowFQ5khrnHuKPX3pvh660s7MtfxS4eMwYwIoZ4GEUh5E8OMZx1CFQyfVg== 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:(4636009)(46966006)(36840700001)(81166007)(86362001)(4326008)(356005)(52536014)(54906003)(6862004)(36860700001)(224303003)(7696005)(47076005)(336012)(82310400003)(316002)(30864003)(70586007)(70206006)(83380400001)(8936002)(5660300002)(9686003)(33656002)(186003)(26005)(6506007)(2906002)(508600001)(55016002); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Oct 2021 06:56:14.0223 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 48eac07b-7635-42e0-1ac1-08d99916ddf3 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: VE1EUR03FT047.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM8PR08MB5586 Subject: [dpdk-dev] =?utf-8?b?5Zue5aSNOiBbUEFUQ0ggdjUgMS81XSBlYWw6IGFk?= =?utf-8?q?d_new_definitions_for_wait_scheme?= X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCj4gLS0tLS3pgq7ku7bljp/ku7YtLS0tLQ0KPiDlj5Hku7bkuro6IEFuYW55ZXYsIEtvbnN0 YW50aW4gPGtvbnN0YW50aW4uYW5hbnlldkBpbnRlbC5jb20+DQo+IOWPkemAgeaXtumXtDogVHVl c2RheSwgT2N0b2JlciAyNiwgMjAyMSA1OjU5IFBNDQo+IOaUtuS7tuS6ujogRmVpZmVpIFdhbmcg PEZlaWZlaS5XYW5nMkBhcm0uY29tPg0KPiDmioTpgIE6IGRldkBkcGRrLm9yZzsgbmQgPG5kQGFy bS5jb20+OyBuZCA8bmRAYXJtLmNvbT4NCj4g5Li76aKYOiBSRTogW1BBVENIIHY1IDEvNV0gZWFs OiBhZGQgbmV3IGRlZmluaXRpb25zIGZvciB3YWl0IHNjaGVtZQ0KPiANCj4gDQo+ID4gPiA+IElu dHJvZHVjZSBtYWNyb3MgYXMgZ2VuZXJpYyBpbnRlcmZhY2UgZm9yIGFkZHJlc3MgbW9uaXRvcmlu Zy4NCj4gPiA+ID4gRm9yIGRpZmZlcmVudCBzaXplLCBlbmNhcHN1bGF0ZSAnX19MT0FEX0VYQ18x NicsICdfX0xPQURfRVhDXzMyJw0KPiA+ID4gPiBhbmQgJ19fTE9BRF9FWENfNjQnIGludG8gYSBu ZXcgbWFjcm8gJ19fTE9BRF9FWEMnLg0KPiA+ID4gPg0KPiA+ID4gPiBGdXJ0aGVybW9yZSwgdG8g cHJldmVudCBjb21waWxhdGlvbiB3YXJuaW5nIGluIGFybToNCj4gPiA+ID4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gPiAnd2FybmluZzogaW1w bGljaXQgZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24gLi4uJw0KPiA+ID4gPiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiA+IERlbGV0ZSAndW5kZWYn IGNvbnN0cnVjdGlvbnMgZm9yICdfX0xPQURfRVhDX3h4JywgJ19fU0VWTCcgYW5kDQo+ICdfX1dG RScuDQo+ID4gPiA+DQo+ID4gPiA+IFRoaXMgaXMgYmVjYXVzZSBvcmlnaW5hbCBtYWNyb3MgYXJl IHVuZGVmaW5lIGF0IHRoZSBlbmQgb2YgdGhlIGZpbGUuDQo+ID4gPiA+IElmIG5ldyBtYWNybyAn cnRlX3dhaXRfZXZlbnQnIGNhbGxzIHRoZW0gaW4gb3RoZXIgZmlsZXMsIHRoZXkgd2lsbA0KPiA+ ID4gPiBiZSBzZWVuIGFzICdub3QgZGVmaW5lZCcuDQo+ID4gPiA+DQo+ID4gPiA+IFNpZ25lZC1v ZmYtYnk6IEZlaWZlaSBXYW5nIDxmZWlmZWkud2FuZzJAYXJtLmNvbT4NCj4gPiA+ID4gUmV2aWV3 ZWQtYnk6IFJ1aWZlbmcgV2FuZyA8cnVpZmVuZy53YW5nQGFybS5jb20+DQo+ID4gPiA+IC0tLQ0K PiA+ID4gPiAgbGliL2VhbC9hcm0vaW5jbHVkZS9ydGVfcGF1c2VfNjQuaCAgfCAxMzUNCj4gPiA+ ID4gKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLSBsaWIvZWFsL2luY2x1ZGUvZ2VuZXJpYy9y dGVfcGF1c2UuaCB8DQo+ID4gPiA+IDI3ICsrKysrKw0KPiA+ID4gPiAgMiBmaWxlcyBjaGFuZ2Vk LCAxMDUgaW5zZXJ0aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pDQo+ID4gPiA+DQo+ID4gPiA+IGRp ZmYgLS1naXQgYS9saWIvZWFsL2FybS9pbmNsdWRlL3J0ZV9wYXVzZV82NC5oDQo+ID4gPiA+IGIv bGliL2VhbC9hcm0vaW5jbHVkZS9ydGVfcGF1c2VfNjQuaA0KPiA+ID4gPiBpbmRleCBlODdkMTBi OGNjLi4xZmVhMGRlYzYzIDEwMDY0NA0KPiA+ID4gPiAtLS0gYS9saWIvZWFsL2FybS9pbmNsdWRl L3J0ZV9wYXVzZV82NC5oDQo+ID4gPiA+ICsrKyBiL2xpYi9lYWwvYXJtL2luY2x1ZGUvcnRlX3Bh dXNlXzY0LmgNCj4gPiA+ID4gQEAgLTMxLDIwICszMSwxMiBAQCBzdGF0aWMgaW5saW5lIHZvaWQg cnRlX3BhdXNlKHZvaWQpDQo+ID4gPiA+ICAvKiBQdXQgcHJvY2Vzc29yIGludG8gbG93IHBvd2Vy IFdGRShXYWl0IEZvciBFdmVudCkgc3RhdGUuICovDQo+ID4gPiA+ICNkZWZpbmUNCj4gPiA+ID4g X19XRkUoKSB7IGFzbSB2b2xhdGlsZSgid2ZlIiA6IDogOiAibWVtb3J5Iik7IH0NCj4gPiA+ID4N Cj4gPiA+ID4gLXN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gPiA+ID4gLXJ0ZV93 YWl0X3VudGlsX2VxdWFsXzE2KHZvbGF0aWxlIHVpbnQxNl90ICphZGRyLCB1aW50MTZfdCBleHBl Y3RlZCwNCj4gPiA+ID4gLQkJaW50IG1lbW9yZGVyKQ0KPiA+ID4gPiAtew0KPiA+ID4gPiAtCXVp bnQxNl90IHZhbHVlOw0KPiA+ID4gPiAtDQo+ID4gPiA+IC0JYXNzZXJ0KG1lbW9yZGVyID09IF9f QVRPTUlDX0FDUVVJUkUgfHwgbWVtb3JkZXIgPT0NCj4gPiA+ID4gX19BVE9NSUNfUkVMQVhFRCk7 DQo+ID4gPiA+IC0NCj4gPiA+ID4gLQkvKg0KPiA+ID4gPiAtCSAqIEF0b21pYyBleGNsdXNpdmUg bG9hZCBmcm9tIGFkZHIsIGl0IHJldHVybnMgdGhlIDE2LWJpdCBjb250ZW50IG9mDQo+ID4gPiA+ IC0JICogKmFkZHIgd2hpbGUgbWFraW5nIGl0ICdtb25pdG9yZWQnLHdoZW4gaXQgaXMgd3JpdHRl biBieSBzb21lb25lDQo+ID4gPiA+IC0JICogZWxzZSwgdGhlICdtb25pdG9yZWQnIHN0YXRlIGlz IGNsZWFyZWQgYW5kIGEgZXZlbnQgaXMgZ2VuZXJhdGVkDQo+ID4gPiA+IC0JICogaW1wbGljaXRs eSB0byBleGl0IFdGRS4NCj4gPiA+ID4gLQkgKi8NCj4gPiA+ID4gKy8qDQo+ID4gPiA+ICsgKiBB dG9taWMgZXhjbHVzaXZlIGxvYWQgZnJvbSBhZGRyLCBpdCByZXR1cm5zIHRoZSAxNi1iaXQgY29u dGVudA0KPiA+ID4gPiArb2YNCj4gPiA+ID4gKyAqICphZGRyIHdoaWxlIG1ha2luZyBpdCAnbW9u aXRvcmVkJywgd2hlbiBpdCBpcyB3cml0dGVuIGJ5DQo+ID4gPiA+ICtzb21lb25lDQo+ID4gPiA+ ICsgKiBlbHNlLCB0aGUgJ21vbml0b3JlZCcgc3RhdGUgaXMgY2xlYXJlZCBhbmQgYW4gZXZlbnQg aXMNCj4gPiA+ID4gK2dlbmVyYXRlZA0KPiA+ID4gPiArICogaW1wbGljaXRseSB0byBleGl0IFdG RS4NCj4gPiA+ID4gKyAqLw0KPiA+ID4gPiAgI2RlZmluZSBfX0xPQURfRVhDXzE2KHNyYywgZHN0 LCBtZW1vcmRlcikgeyAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gIAlpZiAobWVtb3JkZXIgPT0g X19BVE9NSUNfUkVMQVhFRCkgeyAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gIAkJYXNtIHZvbGF0 aWxlKCJsZHhyaCAld1t0bXBdLCBbJXhbYWRkcl1dIiAgXCBAQCAtNTgsNiArNTAsNjINCj4gQEAN Cj4gPiA+ID4gcnRlX3dhaXRfdW50aWxfZXF1YWxfMTYodm9sYXRpbGUgdWludDE2X3QgKmFkZHIs IHVpbnQxNl90IGV4cGVjdGVkLA0KPiA+ID4gPiAgCQkJOiAibWVtb3J5Iik7ICAgICAgICAgICAg ICAgICAgICAgIFwNCj4gPiA+ID4gIAl9IH0NCj4gPiA+ID4NCj4gPiA+ID4gKy8qDQo+ID4gPiA+ ICsgKiBBdG9taWMgZXhjbHVzaXZlIGxvYWQgZnJvbSBhZGRyLCBpdCByZXR1cm5zIHRoZSAzMi1i aXQgY29udGVudA0KPiA+ID4gPiArb2YNCj4gPiA+ID4gKyAqICphZGRyIHdoaWxlIG1ha2luZyBp dCAnbW9uaXRvcmVkJywgd2hlbiBpdCBpcyB3cml0dGVuIGJ5DQo+ID4gPiA+ICtzb21lb25lDQo+ ID4gPiA+ICsgKiBlbHNlLCB0aGUgJ21vbml0b3JlZCcgc3RhdGUgaXMgY2xlYXJlZCBhbmQgYW4g ZXZlbnQgaXMNCj4gPiA+ID4gK2dlbmVyYXRlZA0KPiA+ID4gPiArICogaW1wbGljaXRseSB0byBl eGl0IFdGRS4NCj4gPiA+ID4gKyAqLw0KPiA+ID4gPiArI2RlZmluZSBfX0xPQURfRVhDXzMyKHNy YywgZHN0LCBtZW1vcmRlcikgeyAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCWlmIChtZW1vcmRl ciA9PSBfX0FUT01JQ19SRUxBWEVEKSB7ICAgICAgICAgICAgICBcDQo+ID4gPiA+ICsJCWFzbSB2 b2xhdGlsZSgibGR4ciAld1t0bXBdLCBbJXhbYWRkcl1dIiAgXA0KPiA+ID4gPiArCQkJOiBbdG1w XSAiPSZyIiAoZHN0KSAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCQkJOiBbYWRkcl0gInIiKHNy YykgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCQkJOiAibWVtb3J5Iik7ICAgICAgICAgICAg ICAgICAgICAgXA0KPiA+ID4gPiArCX0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQo+ID4gPiA+ICsJCWFzbSB2b2xhdGlsZSgibGRheHIgJXdbdG1wXSwg WyV4W2FkZHJdXSIgXA0KPiA+ID4gPiArCQkJOiBbdG1wXSAiPSZyIiAoZHN0KSAgICAgICAgICAg ICAgXA0KPiA+ID4gPiArCQkJOiBbYWRkcl0gInIiKHNyYykgICAgICAgICAgICAgICAgXA0KPiA+ ID4gPiArCQkJOiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCX0g fQ0KPiA+ID4gPiArDQo+ID4gPiA+ICsvKg0KPiA+ID4gPiArICogQXRvbWljIGV4Y2x1c2l2ZSBs b2FkIGZyb20gYWRkciwgaXQgcmV0dXJucyB0aGUgNjQtYml0IGNvbnRlbnQNCj4gPiA+ID4gK29m DQo+ID4gPiA+ICsgKiAqYWRkciB3aGlsZSBtYWtpbmcgaXQgJ21vbml0b3JlZCcsIHdoZW4gaXQg aXMgd3JpdHRlbiBieQ0KPiA+ID4gPiArc29tZW9uZQ0KPiA+ID4gPiArICogZWxzZSwgdGhlICdt b25pdG9yZWQnIHN0YXRlIGlzIGNsZWFyZWQgYW5kIGFuIGV2ZW50IGlzDQo+ID4gPiA+ICtnZW5l cmF0ZWQNCj4gPiA+ID4gKyAqIGltcGxpY2l0bHkgdG8gZXhpdCBXRkUuDQo+ID4gPiA+ICsgKi8N Cj4gPiA+ID4gKyNkZWZpbmUgX19MT0FEX0VYQ182NChzcmMsIGRzdCwgbWVtb3JkZXIpIHsgICAg ICAgICAgICAgIFwNCj4gPiA+ID4gKwlpZiAobWVtb3JkZXIgPT0gX19BVE9NSUNfUkVMQVhFRCkg eyAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCQlhc20gdm9sYXRpbGUoImxkeHIgJXhbdG1wXSwg WyV4W2FkZHJdXSIgIFwNCj4gPiA+ID4gKwkJCTogW3RtcF0gIj0mciIgKGRzdCkgICAgICAgICAg ICAgIFwNCj4gPiA+ID4gKwkJCTogW2FkZHJdICJyIihzcmMpICAgICAgICAgICAgICAgIFwNCj4g PiA+ID4gKwkJCTogIm1lbW9yeSIpOyAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gKwl9 IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4g PiArCQlhc20gdm9sYXRpbGUoImxkYXhyICV4W3RtcF0sIFsleFthZGRyXV0iIFwNCj4gPiA+ID4g KwkJCTogW3RtcF0gIj0mciIgKGRzdCkgICAgICAgICAgICAgIFwNCj4gPiA+ID4gKwkJCTogW2Fk ZHJdICJyIihzcmMpICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gKwkJCTogIm1lbW9yeSIpOyAg ICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gKwl9IH0NCj4gPiA+ID4gKw0KPiA+ID4gPiAr I2RlZmluZSBfX0xPQURfRVhDKHNyYywgZHN0LCBtZW1vcmRlciwgc2l6ZSkgeyAgICAgICAgICBc DQo+ID4gPiA+ICsJYXNzZXJ0KHNpemUgPT0gMTYgfHwgc2l6ZSA9PSAzMiB8fCBzaXplID09IDY0 KTsgXA0KPiA+ID4gPiArCWlmIChzaXplID09IDE2KSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCj4gPiA+ID4gKwkJX19MT0FEX0VYQ18xNihzcmMsIGRzdCwgbWVtb3JkZXIpICAg ICAgIFwNCj4gPiA+ID4gKwllbHNlIGlmIChzaXplID09IDMyKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQo+ID4gPiA+ICsJCV9fTE9BRF9FWENfMzIoc3JjLCBkc3QsIG1lbW9yZGVyKSAg ICAgICBcDQo+ID4gPiA+ICsJZWxzZSBpZiAoc2l6ZSA9PSA2NCkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KPiA+ID4gPiArCQlfX0xPQURfRVhDXzY0KHNyYywgZHN0LCBtZW1vcmRlcikg ICAgICAgXA0KPiA+ID4gPiArfQ0KPiA+ID4gPiArDQo+ID4gPiA+ICtzdGF0aWMgX19ydGVfYWx3 YXlzX2lubGluZSB2b2lkDQo+ID4gPiA+ICtydGVfd2FpdF91bnRpbF9lcXVhbF8xNih2b2xhdGls ZSB1aW50MTZfdCAqYWRkciwgdWludDE2X3QgZXhwZWN0ZWQsDQo+ID4gPiA+ICsJCWludCBtZW1v cmRlcikNCj4gPiA+ID4gK3sNCj4gPiA+ID4gKwl1aW50MTZfdCB2YWx1ZTsNCj4gPiA+ID4gKw0K PiA+ID4gPiArCWFzc2VydChtZW1vcmRlciA9PSBfX0FUT01JQ19BQ1FVSVJFIHx8IG1lbW9yZGVy ID09DQo+ID4gPiA+IF9fQVRPTUlDX1JFTEFYRUQpOw0KPiA+ID4gPiArDQo+ID4gPiA+ICAJX19M T0FEX0VYQ18xNihhZGRyLCB2YWx1ZSwgbWVtb3JkZXIpDQo+ID4gPiA+ICAJaWYgKHZhbHVlICE9 IGV4cGVjdGVkKSB7DQo+ID4gPiA+ICAJCV9fU0VWTCgpDQo+ID4gPiA+IEBAIC02Niw3ICsxMTQs NiBAQCBydGVfd2FpdF91bnRpbF9lcXVhbF8xNih2b2xhdGlsZSB1aW50MTZfdA0KPiA+ID4gPiAq YWRkciwgdWludDE2X3QgZXhwZWN0ZWQsDQo+ID4gPiA+ICAJCQlfX0xPQURfRVhDXzE2KGFkZHIs IHZhbHVlLCBtZW1vcmRlcikNCj4gPiA+ID4gIAkJfSB3aGlsZSAodmFsdWUgIT0gZXhwZWN0ZWQp Ow0KPiA+ID4gPiAgCX0NCj4gPiA+ID4gLSN1bmRlZiBfX0xPQURfRVhDXzE2DQo+ID4gPiA+ICB9 DQo+ID4gPiA+DQo+ID4gPiA+ICBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkDQo+ID4g PiA+IEBAIC03NywyNSArMTI0LDYgQEAgcnRlX3dhaXRfdW50aWxfZXF1YWxfMzIodm9sYXRpbGUg dWludDMyX3QNCj4gPiA+ID4gKmFkZHIsIHVpbnQzMl90IGV4cGVjdGVkLA0KPiA+ID4gPg0KPiA+ ID4gPiAgCWFzc2VydChtZW1vcmRlciA9PSBfX0FUT01JQ19BQ1FVSVJFIHx8IG1lbW9yZGVyID09 DQo+ID4gPiA+IF9fQVRPTUlDX1JFTEFYRUQpOw0KPiA+ID4gPg0KPiA+ID4gPiAtCS8qDQo+ID4g PiA+IC0JICogQXRvbWljIGV4Y2x1c2l2ZSBsb2FkIGZyb20gYWRkciwgaXQgcmV0dXJucyB0aGUg MzItYml0IGNvbnRlbnQgb2YNCj4gPiA+ID4gLQkgKiAqYWRkciB3aGlsZSBtYWtpbmcgaXQgJ21v bml0b3JlZCcsd2hlbiBpdCBpcyB3cml0dGVuIGJ5IHNvbWVvbmUNCj4gPiA+ID4gLQkgKiBlbHNl LCB0aGUgJ21vbml0b3JlZCcgc3RhdGUgaXMgY2xlYXJlZCBhbmQgYSBldmVudCBpcyBnZW5lcmF0 ZWQNCj4gPiA+ID4gLQkgKiBpbXBsaWNpdGx5IHRvIGV4aXQgV0ZFLg0KPiA+ID4gPiAtCSAqLw0K PiA+ID4gPiAtI2RlZmluZSBfX0xPQURfRVhDXzMyKHNyYywgZHN0LCBtZW1vcmRlcikgeyAgICAg ICAgICAgICAgXA0KPiA+ID4gPiAtCWlmIChtZW1vcmRlciA9PSBfX0FUT01JQ19SRUxBWEVEKSB7 ICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0JCWFzbSB2b2xhdGlsZSgibGR4ciAld1t0bXBdLCBb JXhbYWRkcl1dIiAgXA0KPiA+ID4gPiAtCQkJOiBbdG1wXSAiPSZyIiAoZHN0KSAgICAgICAgICAg ICAgXA0KPiA+ID4gPiAtCQkJOiBbYWRkcl0gInIiKHNyYykgICAgICAgICAgICAgICAgXA0KPiA+ ID4gPiAtCQkJOiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiAtCX0g ZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ IC0JCWFzbSB2b2xhdGlsZSgibGRheHIgJXdbdG1wXSwgWyV4W2FkZHJdXSIgXA0KPiA+ID4gPiAt CQkJOiBbdG1wXSAiPSZyIiAoZHN0KSAgICAgICAgICAgICAgXA0KPiA+ID4gPiAtCQkJOiBbYWRk cl0gInIiKHNyYykgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiAtCQkJOiAibWVtb3J5Iik7ICAg ICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiAtCX0gfQ0KPiA+ID4gPiAtDQo+ID4gPiA+ICAJ X19MT0FEX0VYQ18zMihhZGRyLCB2YWx1ZSwgbWVtb3JkZXIpDQo+ID4gPiA+ICAJaWYgKHZhbHVl ICE9IGV4cGVjdGVkKSB7DQo+ID4gPiA+ICAJCV9fU0VWTCgpDQo+ID4gPiA+IEBAIC0xMDQsNyAr MTMyLDYgQEAgcnRlX3dhaXRfdW50aWxfZXF1YWxfMzIodm9sYXRpbGUgdWludDMyX3QNCj4gPiA+ ID4gKmFkZHIsIHVpbnQzMl90IGV4cGVjdGVkLA0KPiA+ID4gPiAgCQkJX19MT0FEX0VYQ18zMihh ZGRyLCB2YWx1ZSwgbWVtb3JkZXIpDQo+ID4gPiA+ICAJCX0gd2hpbGUgKHZhbHVlICE9IGV4cGVj dGVkKTsNCj4gPiA+ID4gIAl9DQo+ID4gPiA+IC0jdW5kZWYgX19MT0FEX0VYQ18zMg0KPiA+ID4g PiAgfQ0KPiA+ID4gPg0KPiA+ID4gPiAgc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZA0K PiA+ID4gPiBAQCAtMTE1LDI1ICsxNDIsNiBAQCBydGVfd2FpdF91bnRpbF9lcXVhbF82NCh2b2xh dGlsZSB1aW50NjRfdA0KPiA+ID4gPiAqYWRkciwgdWludDY0X3QgZXhwZWN0ZWQsDQo+ID4gPiA+ DQo+ID4gPiA+ICAJYXNzZXJ0KG1lbW9yZGVyID09IF9fQVRPTUlDX0FDUVVJUkUgfHwgbWVtb3Jk ZXIgPT0NCj4gPiA+ID4gX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4gPiA+DQo+ID4gPiA+IC0JLyoN Cj4gPiA+ID4gLQkgKiBBdG9taWMgZXhjbHVzaXZlIGxvYWQgZnJvbSBhZGRyLCBpdCByZXR1cm5z IHRoZSA2NC1iaXQgY29udGVudCBvZg0KPiA+ID4gPiAtCSAqICphZGRyIHdoaWxlIG1ha2luZyBp dCAnbW9uaXRvcmVkJyx3aGVuIGl0IGlzIHdyaXR0ZW4gYnkgc29tZW9uZQ0KPiA+ID4gPiAtCSAq IGVsc2UsIHRoZSAnbW9uaXRvcmVkJyBzdGF0ZSBpcyBjbGVhcmVkIGFuZCBhIGV2ZW50IGlzIGdl bmVyYXRlZA0KPiA+ID4gPiAtCSAqIGltcGxpY2l0bHkgdG8gZXhpdCBXRkUuDQo+ID4gPiA+IC0J ICovDQo+ID4gPiA+IC0jZGVmaW5lIF9fTE9BRF9FWENfNjQoc3JjLCBkc3QsIG1lbW9yZGVyKSB7 ICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0JaWYgKG1lbW9yZGVyID09IF9fQVRPTUlDX1JFTEFY RUQpIHsgICAgICAgICAgICAgIFwNCj4gPiA+ID4gLQkJYXNtIHZvbGF0aWxlKCJsZHhyICV4W3Rt cF0sIFsleFthZGRyXV0iICBcDQo+ID4gPiA+IC0JCQk6IFt0bXBdICI9JnIiIChkc3QpICAgICAg ICAgICAgICBcDQo+ID4gPiA+IC0JCQk6IFthZGRyXSAiciIoc3JjKSAgICAgICAgICAgICAgICBc DQo+ID4gPiA+IC0JCQk6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ IC0JfSBlbHNlIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4g PiA+ID4gLQkJYXNtIHZvbGF0aWxlKCJsZGF4ciAleFt0bXBdLCBbJXhbYWRkcl1dIiBcDQo+ID4g PiA+IC0JCQk6IFt0bXBdICI9JnIiIChkc3QpICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0JCQk6 IFthZGRyXSAiciIoc3JjKSAgICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0JCQk6ICJtZW1vcnki KTsgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+IC0JfSB9DQo+ID4gPiA+IC0NCj4gPiA+ ID4gIAlfX0xPQURfRVhDXzY0KGFkZHIsIHZhbHVlLCBtZW1vcmRlcikNCj4gPiA+ID4gIAlpZiAo dmFsdWUgIT0gZXhwZWN0ZWQpIHsNCj4gPiA+ID4gIAkJX19TRVZMKCkNCj4gPiA+ID4gQEAgLTE0 MywxMCArMTUxLDIzIEBAIHJ0ZV93YWl0X3VudGlsX2VxdWFsXzY0KHZvbGF0aWxlIHVpbnQ2NF90 DQo+ID4gPiA+ICphZGRyLCB1aW50NjRfdCBleHBlY3RlZCwNCj4gPiA+ID4gIAkJfSB3aGlsZSAo dmFsdWUgIT0gZXhwZWN0ZWQpOw0KPiA+ID4gPiAgCX0NCj4gPiA+ID4gIH0NCj4gPiA+ID4gLSN1 bmRlZiBfX0xPQURfRVhDXzY0DQo+ID4gPiA+DQo+ID4gPiA+IC0jdW5kZWYgX19TRVZMDQo+ID4g PiA+IC0jdW5kZWYgX19XRkUNCj4gPiA+ID4gKyNkZWZpbmUgcnRlX3dhaXRfZXZlbnQoYWRkciwg bWFzaywgY29uZCwgZXhwZWN0ZWQsIG1lbW9yZGVyKSAgICAgIFwNCj4gPiA+ID4gK2RvIHsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCj4gPiA+ID4gKwlSVEVfQlVJTERfQlVHX09OKCFfX2J1aWx0aW5fY29uc3RhbnRfcChtZW1v cmRlcikpOyAgICAgICAgXA0KPiA+ID4gPiArCVJURV9CVUlMRF9CVUdfT04obWVtb3JkZXIgIT0g X19BVE9NSUNfQUNRVUlSRSAmJiAgICAgICAgICBcDQo+ID4gPiA+ICsJCQkJbWVtb3JkZXIgIT0g X19BVE9NSUNfUkVMQVhFRCk7ICAgIFwNCj4gPiA+ID4gKwl1aW50MzJfdCBzaXplID0gc2l6ZW9m KCooYWRkcikpIDw8IDM7ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCXR5cGVvZigq KGFkZHIpKSB2YWx1ZSA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4g PiA+ICsJX19MT0FEX0VYQygoYWRkciksIHZhbHVlLCBtZW1vcmRlciwgc2l6ZSkgICAgICAgICAg ICAgICAgIFwNCj4gPiA+ID4gKwlpZiAoKHZhbHVlICYgKG1hc2spKSBjb25kIGV4cGVjdGVkKSB7 ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gPiArCQlfX1NFVkwoKSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ID4gKwkJZG8geyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ICsJCQlfX1dGRSgp ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiA+ICsJCQlfX0xPQURf RVhDKChhZGRyKSwgdmFsdWUsIG1lbW9yZGVyLCBzaXplKSBcDQo+ID4gPiA+ICsJCX0gd2hpbGUg KCh2YWx1ZSAmIChtYXNrKSkgY29uZCBleHBlY3RlZCk7ICAgICAgICAgXA0KPiA+ID4NCj4gPiA+ IEhpLCBLb25zdGFudGluDQo+ID4gPg0KPiA+ID4gRm9yIHRoaXMgcGF0Y2gsIEkgY2Fubm90IGFk ZCAnKCknIGZvciBleHBlY3RlZCBkdWUgdG8gcGF0Y2ggc3R5bGUgY2hlY2sgd2lsbA0KPiByZXBv cnQ6DQo+ID4gPiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+IFdBUk5JTkc6U1BBQ0lORzogc3BhY2UgcHJvaGli aXRlZCBiZXR3ZWVuIGZ1bmN0aW9uIG5hbWUgYW5kIG9wZW4NCj4gcGFyZW50aGVzaXMgJygnDQo+ ID4gPiAjMjAzOiBGSUxFOiBsaWIvZWFsL2FybS9pbmNsdWRlL3J0ZV9wYXVzZV82NC5oOjE2MzoN Cj4gPiA+ICsgICAgICAgaWYgKCh2YWx1ZSAmIChtYXNrKSkgY29uZCAoZXhwZWN0ZWQpKSB7ICAg ICAgICAgICAgICAgICAgIFwNCj4gPiA+DQo+ID4gPiBXQVJOSU5HOlNQQUNJTkc6IHNwYWNlIHBy b2hpYml0ZWQgYmV0d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCBvcGVuDQo+IHBhcmVudGhlc2lzICco Jw0KPiA+ID4gIzIwODogRklMRTogbGliL2VhbC9hcm0vaW5jbHVkZS9ydGVfcGF1c2VfNjQuaDox Njg6DQo+ID4gPiArICAgICAgICAgICAgICAgfSB3aGlsZSAoKHZhbHVlICYgKG1hc2spKSBjb25k IChleHBlY3RlZCkpOyAgICAgICBcDQo+ID4gPg0KPiA+ID4gV0FSTklORzpTUEFDSU5HOiBzcGFj ZSBwcm9oaWJpdGVkIGJldHdlZW4gZnVuY3Rpb24gbmFtZSBhbmQgb3Blbg0KPiBwYXJlbnRoZXNp cyAnKCcNCj4gPiA+ICMyNDY6IEZJTEU6IGxpYi9lYWwvaW5jbHVkZS9nZW5lcmljL3J0ZV9wYXVz ZS5oOjEzODoNCj4gPiA+ICsgICAgICAgd2hpbGUgKChfX2F0b21pY19sb2FkX24oKGFkZHIpLCAo bWVtb3JkZXIpKSAmIG1hc2spIGNvbmQNCj4gPiA+ICsgKGV4cGVjdGVkKSkgXA0KPiA+ID4NCj4g PiA+IHRvdGFsOiAxIGVycm9ycywgMyB3YXJuaW5ncywgMjExIGxpbmVzIGNoZWNrZWQNCj4gPg0K PiA+IEl0IGlzIGp1c3QgY2hlY2twYXRjaCB3YXJuaW5ncy4NCj4gPiBQZXJzb25hbGx5IEkncyBi ZXR0ZXIgbGl2ZSB3aXRoIGNoZWNrcGF0Y2ggY29tcGxhaW50cyB0aGVuIHdpdGggcHJvYmxlbWF0 aWMNCj4gbWFjcm8uDQo+ID4NCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gPiAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gU28gSSBqdXN0IGFkZCAn KCknIGZvciAnYWRkcicgYW5kICdtYXNrJy4NCj4gDQo+IEkgd29uZGVyIGNhbiB3ZSBvdmVyY29t ZSBpdCBieToNCj4gdHlwZW9mKCooYWRkcikpIGV4cGVjdGVkX3ZhbHVlID0gKGV4cGVjdGVkKTsg XCAuLi4NCj4gaWYgKCh2YWx1ZSAmIChtYXNrKSkgY29uZCBleHBlY3RlZF92YWx1ZSkgXA0KPiAg IC4uLg0KPiA/DQpJdCdzIGEgZ29vZCBjb21tZW50cywgYW5kIEkgdHJ5IHRvIGRvIHdpdGggdGhp cyBhbmQgbm8gY2hlY2sgbG9nIHdhcm5pbmcgaGFwcGVucy4NClRoYW5rcy4NCj4gDQo+IA0KDQo=