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 326DAA0C47; Tue, 26 Oct 2021 11:59:25 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 1114B410D5; Tue, 26 Oct 2021 11:59:25 +0200 (CEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by mails.dpdk.org (Postfix) with ESMTP id 313B8407FF for ; Tue, 26 Oct 2021 11:59:22 +0200 (CEST) X-IronPort-AV: E=McAfee;i="6200,9189,10148"; a="216777937" X-IronPort-AV: E=Sophos;i="5.87,182,1631602800"; d="scan'208";a="216777937" Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 26 Oct 2021 02:59:15 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.87,182,1631602800"; d="scan'208";a="664480724" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by orsmga005.jf.intel.com with ESMTP; 26 Oct 2021 02:59:15 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12; Tue, 26 Oct 2021 02:59:14 -0700 Received: from FMSEDG603.ED.cps.intel.com (10.1.192.133) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2242.12 via Frontend Transport; Tue, 26 Oct 2021 02:59:14 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.105) by edgegateway.intel.com (192.55.55.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2242.12; Tue, 26 Oct 2021 02:59:14 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nXKfD1642z/avB2GkN0wnIYm7zTo+WOXTTzMqJtdMCcPMBR9GIRNOJobBtAyipV0z+pZaO1KRtgaCbSa/eNgKZ0y7+NKZCYKjsgWHppFW2uQNdLTh9TSHmpY6OUx1ZzLm2puz/AqKYqECac9tG7u5k0lJVisGu4OTBNqGzum4PpS359oypPA9ssGvp2NHGvHUhXoyiW5yK9LkDEUh4qnYzvXqgP8Jy6NpJguVssBcFGubyAWube/I+Xd61M/oglYa8OxgB8Ur6LpoYFtVJO1qKFHOe+JNfugYuNdbVAdMq7U6f9oQsRWZHA1f+HHZSJv93qa81Ts2Xd3/Zk06Tqmkg== 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=8d7YoLhFd6A2OGYdEGCacYPYHxV4T8IolQ4+US/wYTs=; b=O1wO4J5WMZvfRurHul1eXZtOhzL1PrB4Fsk+2XmMA5QsEHoqmnvNpTYjCmHjxtIiaH3CYSdR/MXLtNRzHbzEjASDUtd72HCvODs+g0lzqmPmuORP3kTKHWBLR6BwJgm5/v69AJkxzEePCmby0iv+VzCQQS0B/Vnx7fI75xYt9/bXUuC6BJ+x58FFPIb/K9RrmX7JtoisFJbDS5lcIG37Iu7gPM+TRq7DxrpW+k7tFrIPii1u23SBGbIDr2v75I+Ozsvw0LmueuyMavbTM5HPVVV2b3BN83ECGW4ESe6hYQUen6USeZkmxLH9s26YeAJvWtdM5j8Ekqh99qqfHKh7rg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=intel.onmicrosoft.com; s=selector2-intel-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=8d7YoLhFd6A2OGYdEGCacYPYHxV4T8IolQ4+US/wYTs=; b=FAmfcg20BMl0jaYqe6D5jLhZJxB4khsdE0AI7ucIUKaPXbozZfxnfbcq+45Fgo3TeyWuTJB38ntJX+c0oklpO2Xhu4uXiWySMT7eCx5dw1DA6bLyp9aoJ8NLUuCt+hXvnxZNrt+lqNDp5PM0pbmpwIqqp3MHE/jnqkGD7I7ZHMw= Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19) by DM6PR11MB2956.namprd11.prod.outlook.com (2603:10b6:5:64::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.20; Tue, 26 Oct 2021 09:59:13 +0000 Received: from DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::2c0c:5383:f814:3b4e]) by DM6PR11MB4491.namprd11.prod.outlook.com ([fe80::2c0c:5383:f814:3b4e%6]) with mapi id 15.20.4628.023; Tue, 26 Oct 2021 09:59:13 +0000 From: "Ananyev, Konstantin" To: Feifei Wang CC: "dev@dpdk.org" , nd , nd Thread-Topic: [PATCH v5 1/5] eal: add new definitions for wait scheme Thread-Index: AQHXykCllAjHdTz6hUO8y821HLq7FavlB6bAgAADdbA= Date: Tue, 26 Oct 2021 09:59:13 +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: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-reaction: no-action dlp-version: 11.6.200.16 authentication-results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: e692f786-6179-4b35-35d3-08d9986743ab x-ms-traffictypediagnostic: DM6PR11MB2956: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:9508; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: xH2njUPWqXIbY1t8I1fDRny8rFerqwnsX7LOgpMAfDb6CziiY7uyfItrQ9oW2FwVsbOqSntGcFue2YvHFqsnV2I8XTvdAGEgEuZDbDMndP9FowyFrgxjW3Y6gGrL9d8Rj5Cfpd0E5wx33vY3mDh+ApAFobJAZ3f13BCzy9I5VkAGLNKBynIKY12ug1drUeWx2NHVnDNegc5s76dODLAH1Bf0vP9oEtfUS01ryZDTWHO3KCDcekhJV/uQpxG7JyeVFjMyj/8mJQqibjAPTfOugcrhnULkjoHFs9Y50MfVbf/U665TpjG5nOemg4P3DkZvew9HhQa8z8S8Y9BHB9kqSASGghHu5OqOeJQks/4j1NC2/6BNHMJgcYUXdjVLuT3SLZZ35D+DeIm3EqOvr9qvKJlrS9fuIF668le0CGhHR0+FetOQXE5GKb62JVr6NtIXzN4eDkvtMXhGHaZ9RP+lMSkgqWjBp0aNSZQbFiHy8cRPLDMJiV+vk2pOkjfCIvoufAdN4BDiowT/LBE4mGWuW92CFAYavL0Qcs278XlmlVJ1384Le84DBltrTeMt8v5zNRuatVr68VdgM453hTTZH1dGtTJRwbTw3Z38yV6MD6WSzzhzk+WeBTlBssKhuJ7DR/lbLiAZsPkCkzWvjuuePWi7bGmIuKWV3Lf42nJwi+rXhUblAXEiqh919IT6eS8P7QzqFG2oQ/bGqn3SKrVHvQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB4491.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(122000001)(8936002)(86362001)(71200400001)(33656002)(4326008)(38100700002)(2906002)(9686003)(26005)(52536014)(508600001)(66946007)(66476007)(83380400001)(66556008)(6916009)(316002)(186003)(64756008)(7696005)(66446008)(82960400001)(6506007)(54906003)(76116006)(5660300002)(38070700005)(55016002)(8676002)(2940100002)(55236004); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MWVNb2ovRGY4WldpaG5nSXRBQ2Q0RFkrNCtleUVTY0doMjBRSEc4S2VPNU0w?= =?utf-8?B?U2VMcWxocDVGVllybHdUakRQYXlJYmFCV1ZSTWpzSWVoMWlQVTQzYWFZbHk0?= =?utf-8?B?ME5DOWhnbDkzRjBsR25NNThweE45UTdMc0dZM1A3amtBZkZoTzFOWXo5TlJT?= =?utf-8?B?a0ovazJHbTVxd0ZiVmRnY1lCSFlTakhJMlZDU2J5WDJTRU9oYlplcHp0ajd5?= =?utf-8?B?cmpYN3p5Z3RSMzdzWExsUS9xLytwUFVsOWx4R3JtZmYxNDdtR2NEZ2s5RlVK?= =?utf-8?B?K0ZmNE9wVUxlaTFiVVZTSE1tVXIwUXA2ZHlzT0NqRGp0alV0YU9DUEtlSVhZ?= =?utf-8?B?K2tGRVpCR0h6TEgydHdTck4yY255YU5FLzQvcmxOVGd3aDNuVHYzUGNaamxD?= =?utf-8?B?NjJpYnNreEcvL0huYm4vMGpZcFJhejMwVHdKNmhZekFSOU1TZXE2QWttK1pP?= =?utf-8?B?SWZ6Smc1bkdmMlNjdGZTcURSelpkV3hDTVlKd3E5Y0NJb3h0blVaUDBLKzhC?= =?utf-8?B?R3NFVWhFRGdLRVdCV3liTnZpVmhlK2ZEcUx0QnZ2T01remVzT1BjQUdjTitC?= =?utf-8?B?YkJKYVBaS3BpY2o5bk1DNjlYVll5VXpaZWJhYUp4aG5haUc0RFlVU1JVKzU3?= =?utf-8?B?NDNCQ1JIMlcwbXEvNzBGZUhwRlEvcGZTZWVZaGhLaldLd21acEZKZ0tFTEN1?= =?utf-8?B?RnE5OGY2c2hlR2RtYXpTOXliMHZ5b1FpVjF6amY2eXZoeVY1V0tUTlk0aE4y?= =?utf-8?B?UHhxczV6RmRSL1kxbTdydE8zMnlmblpsaVo3azBWUmpSald6R1lzWFhnTjUv?= =?utf-8?B?eWowTGMzYVJxSTRVOHM0QlRzMWF1SktQZjkvM3FBYXFxTlhRZGNHbXZmMzht?= =?utf-8?B?NWIwWXFJdzQvRWtnWVNGcVA3dC9kU21UdGhZZFoyaEdXSTlEWEZ2b0JyWTRn?= =?utf-8?B?V1NkMy9lMFRaR1M1SU9RSXUreURYNktaWFlKeGNBODI5enE2VzE4WFVxb1dn?= =?utf-8?B?RXBjRVJIWk1IUXZ2MjhqQ3hFNGN5UEw1aWlBamdvWFBZYzB3LzZROHVqUitD?= =?utf-8?B?WVIweXBmVEUycTc1TDltVWJ6dWVwYUxzdnRUVXkwakxPL3NhK0dSVkRPbW4r?= =?utf-8?B?Q2JSaWF3bW9ScWtlOGhUVTU3Z1psUU9DRFozNWVzK3pSUC93L3dpQzljR1JU?= =?utf-8?B?Z090b0tCbUVzQ2k2QkxNVHg4aFEvOExRbi83c2lSejRxVlg3RXJJVkRJTVFQ?= =?utf-8?B?a3YwMlI2R0NFU01DcnZldGpST1NJUDQ2ek1tNWhzS2c3L0pDR1lmVzZMZ2ZB?= =?utf-8?B?STlBcDRRQVpVbVpXQUwwc3dOalJoc1BGeFRibG4vQit0djBIV3FoMTJ4MmNq?= =?utf-8?B?NVBsY1MwMCtmQzA5SjliTDVvUm4zMTFGdERSTHpHNDlLUmNveWRYODJTTGJ1?= =?utf-8?B?dlRJYkxVdjV0RHpCWlJYTnR6aHQ3N0VVVTRtL1ZyYTRXalY3bzlqRjBVUWpx?= =?utf-8?B?NXNEQU9ydVRwNWYxWS9oMUc0L1JMR3lVWFJqZTgxSlljNXJnUFRtTWc2b05W?= =?utf-8?B?NkY1NjhOL2ZSSFRTUmFnSVpWTUhzTDRjbDRhTjlEb25KaDBsRHJ1d0ZaN216?= =?utf-8?B?Mi9BbVlrank3N3JLTGYxSzBoNzZFcXo3UXROdnh3RTQwUG5TMUtGampYYnFk?= =?utf-8?B?RGQ0dzhZTm0vZC92YysrdW11TTJHdXFLMEY5WTVYamlreFY1c3hMbDhYTTYx?= =?utf-8?B?dVNLMGt0OUhnbEtoaklFb3pmaGRwNi95NmNiZm1UUWV3NjE5eXk4QmNDTTV2?= =?utf-8?B?eDd3MWJIMEJudEJzQjlMUXRyWGg2U2RHcGpUTkVMbWoxN291TzBUeVg2RHBn?= =?utf-8?B?eTNFZldTMStnU1Ard04velpTSkJmVkJTdTRobnJwb0UzOTB5Lytycm1Ydzc4?= =?utf-8?B?SFY1anBtTTNrakZIa21wSU92dml2cGlFMU1xUjZJUnYzVkgycjVINEdaSlpN?= =?utf-8?B?WmlCRlFCL282MUsydXQ5bDdabHNLc1ZUSG5Hd0JZaUppbnFSS1FGdFVaMy9u?= =?utf-8?B?NklLMHU0b2xUa0N3ZVNydzRVMEkzTlJmdVhBSFFwejg4cDljU3NOYWdvNFNu?= =?utf-8?B?MkNQTUExbS9YeE1oeHRhUG15R1lnSnRPaGp2SDdPSXRGMVBQWU5kem9sRDlt?= =?utf-8?B?V0JhbzZDeFBsVTc5M0JaVndYWHpHN2NsL21ZKzNVWXczSTZZZjRqWHRTMSth?= =?utf-8?B?ZEtKRmZhb0VhVXIySEMvK3NUanRBPT0=?= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM6PR11MB4491.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e692f786-6179-4b35-35d3-08d9986743ab X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Oct 2021 09:59:13.1444 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: ag5oBvhg3sOqsXeYUSbZaPcHAqTuKlYSaEe727yycxvnH03dq1w8gQV8P7IxtGZ37ZMT8alTBct9zUEt6HSELAHTVyg5FdwE6c15sa2stdo= X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB2956 X-OriginatorOrg: intel.com Subject: Re: [dpdk-dev] [PATCH v5 1/5] eal: add 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" DQo+ID4gPiBJbnRyb2R1Y2UgbWFjcm9zIGFzIGdlbmVyaWMgaW50ZXJmYWNlIGZvciBhZGRyZXNz IG1vbml0b3JpbmcuDQo+ID4gPiBGb3IgZGlmZmVyZW50IHNpemUsIGVuY2Fwc3VsYXRlICdfX0xP QURfRVhDXzE2JywgJ19fTE9BRF9FWENfMzInDQo+ID4gPiBhbmQgJ19fTE9BRF9FWENfNjQnIGlu dG8gYSBuZXcgbWFjcm8gJ19fTE9BRF9FWEMnLg0KPiA+ID4NCj4gPiA+IEZ1cnRoZXJtb3JlLCB0 byBwcmV2ZW50IGNvbXBpbGF0aW9uIHdhcm5pbmcgaW4gYXJtOg0KPiA+ID4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KPiA+ID4gJ3dhcm5pbmc6IGltcGxp Y2l0IGRlY2xhcmF0aW9uIG9mIGZ1bmN0aW9uIC4uLicNCj4gPiA+IC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiA+IERlbGV0ZSAndW5kZWYnIGNvbnN0 cnVjdGlvbnMgZm9yICdfX0xPQURfRVhDX3h4JywgJ19fU0VWTCcgYW5kICdfX1dGRScuDQo+ID4g Pg0KPiA+ID4gVGhpcyBpcyBiZWNhdXNlIG9yaWdpbmFsIG1hY3JvcyBhcmUgdW5kZWZpbmUgYXQg dGhlIGVuZCBvZiB0aGUgZmlsZS4NCj4gPiA+IElmIG5ldyBtYWNybyAncnRlX3dhaXRfZXZlbnQn IGNhbGxzIHRoZW0gaW4gb3RoZXIgZmlsZXMsIHRoZXkgd2lsbCBiZSBzZWVuIGFzDQo+ID4gPiAn bm90IGRlZmluZWQnLg0KPiA+ID4NCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEZlaWZlaSBXYW5nIDxm ZWlmZWkud2FuZzJAYXJtLmNvbT4NCj4gPiA+IFJldmlld2VkLWJ5OiBSdWlmZW5nIFdhbmcgPHJ1 aWZlbmcud2FuZ0Bhcm0uY29tPg0KPiA+ID4gLS0tDQo+ID4gPiAgbGliL2VhbC9hcm0vaW5jbHVk ZS9ydGVfcGF1c2VfNjQuaCAgfCAxMzUgKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLQ0KPiA+ ID4gbGliL2VhbC9pbmNsdWRlL2dlbmVyaWMvcnRlX3BhdXNlLmggfCAgMjcgKysrKysrDQo+ID4g PiAgMiBmaWxlcyBjaGFuZ2VkLCAxMDUgaW5zZXJ0aW9ucygrKSwgNTcgZGVsZXRpb25zKC0pDQo+ ID4gPg0KPiA+ID4gZGlmZiAtLWdpdCBhL2xpYi9lYWwvYXJtL2luY2x1ZGUvcnRlX3BhdXNlXzY0 LmgNCj4gPiA+IGIvbGliL2VhbC9hcm0vaW5jbHVkZS9ydGVfcGF1c2VfNjQuaA0KPiA+ID4gaW5k ZXggZTg3ZDEwYjhjYy4uMWZlYTBkZWM2MyAxMDA2NDQNCj4gPiA+IC0tLSBhL2xpYi9lYWwvYXJt L2luY2x1ZGUvcnRlX3BhdXNlXzY0LmgNCj4gPiA+ICsrKyBiL2xpYi9lYWwvYXJtL2luY2x1ZGUv cnRlX3BhdXNlXzY0LmgNCj4gPiA+IEBAIC0zMSwyMCArMzEsMTIgQEAgc3RhdGljIGlubGluZSB2 b2lkIHJ0ZV9wYXVzZSh2b2lkKQ0KPiA+ID4gIC8qIFB1dCBwcm9jZXNzb3IgaW50byBsb3cgcG93 ZXIgV0ZFKFdhaXQgRm9yIEV2ZW50KSBzdGF0ZS4gKi8gICNkZWZpbmUNCj4gPiA+IF9fV0ZFKCkg eyBhc20gdm9sYXRpbGUoIndmZSIgOiA6IDogIm1lbW9yeSIpOyB9DQo+ID4gPg0KPiA+ID4gLXN0 YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gPiA+IC1ydGVfd2FpdF91bnRpbF9lcXVh bF8xNih2b2xhdGlsZSB1aW50MTZfdCAqYWRkciwgdWludDE2X3QgZXhwZWN0ZWQsDQo+ID4gPiAt CQlpbnQgbWVtb3JkZXIpDQo+ID4gPiAtew0KPiA+ID4gLQl1aW50MTZfdCB2YWx1ZTsNCj4gPiA+ IC0NCj4gPiA+IC0JYXNzZXJ0KG1lbW9yZGVyID09IF9fQVRPTUlDX0FDUVVJUkUgfHwgbWVtb3Jk ZXIgPT0NCj4gPiA+IF9fQVRPTUlDX1JFTEFYRUQpOw0KPiA+ID4gLQ0KPiA+ID4gLQkvKg0KPiA+ ID4gLQkgKiBBdG9taWMgZXhjbHVzaXZlIGxvYWQgZnJvbSBhZGRyLCBpdCByZXR1cm5zIHRoZSAx Ni1iaXQgY29udGVudCBvZg0KPiA+ID4gLQkgKiAqYWRkciB3aGlsZSBtYWtpbmcgaXQgJ21vbml0 b3JlZCcsd2hlbiBpdCBpcyB3cml0dGVuIGJ5IHNvbWVvbmUNCj4gPiA+IC0JICogZWxzZSwgdGhl ICdtb25pdG9yZWQnIHN0YXRlIGlzIGNsZWFyZWQgYW5kIGEgZXZlbnQgaXMgZ2VuZXJhdGVkDQo+ ID4gPiAtCSAqIGltcGxpY2l0bHkgdG8gZXhpdCBXRkUuDQo+ID4gPiAtCSAqLw0KPiA+ID4gKy8q DQo+ID4gPiArICogQXRvbWljIGV4Y2x1c2l2ZSBsb2FkIGZyb20gYWRkciwgaXQgcmV0dXJucyB0 aGUgMTYtYml0IGNvbnRlbnQgb2YNCj4gPiA+ICsgKiAqYWRkciB3aGlsZSBtYWtpbmcgaXQgJ21v bml0b3JlZCcsIHdoZW4gaXQgaXMgd3JpdHRlbiBieSBzb21lb25lDQo+ID4gPiArICogZWxzZSwg dGhlICdtb25pdG9yZWQnIHN0YXRlIGlzIGNsZWFyZWQgYW5kIGFuIGV2ZW50IGlzIGdlbmVyYXRl ZA0KPiA+ID4gKyAqIGltcGxpY2l0bHkgdG8gZXhpdCBXRkUuDQo+ID4gPiArICovDQo+ID4gPiAg I2RlZmluZSBfX0xPQURfRVhDXzE2KHNyYywgZHN0LCBtZW1vcmRlcikgeyAgICAgICAgICAgICAg IFwNCj4gPiA+ICAJaWYgKG1lbW9yZGVyID09IF9fQVRPTUlDX1JFTEFYRUQpIHsgICAgICAgICAg ICAgICBcDQo+ID4gPiAgCQlhc20gdm9sYXRpbGUoImxkeHJoICV3W3RtcF0sIFsleFthZGRyXV0i ICBcIEBAIC01OCw2ICs1MCw2Mg0KPiA+ID4gQEAgcnRlX3dhaXRfdW50aWxfZXF1YWxfMTYodm9s YXRpbGUgdWludDE2X3QgKmFkZHIsIHVpbnQxNl90IGV4cGVjdGVkLA0KPiA+ID4gIAkJCTogIm1l bW9yeSIpOyAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiAgCX0gfQ0KPiA+ID4NCj4gPiA+ ICsvKg0KPiA+ID4gKyAqIEF0b21pYyBleGNsdXNpdmUgbG9hZCBmcm9tIGFkZHIsIGl0IHJldHVy bnMgdGhlIDMyLWJpdCBjb250ZW50IG9mDQo+ID4gPiArICogKmFkZHIgd2hpbGUgbWFraW5nIGl0 ICdtb25pdG9yZWQnLCB3aGVuIGl0IGlzIHdyaXR0ZW4gYnkgc29tZW9uZQ0KPiA+ID4gKyAqIGVs c2UsIHRoZSAnbW9uaXRvcmVkJyBzdGF0ZSBpcyBjbGVhcmVkIGFuZCBhbiBldmVudCBpcyBnZW5l cmF0ZWQNCj4gPiA+ICsgKiBpbXBsaWNpdGx5IHRvIGV4aXQgV0ZFLg0KPiA+ID4gKyAqLw0KPiA+ ID4gKyNkZWZpbmUgX19MT0FEX0VYQ18zMihzcmMsIGRzdCwgbWVtb3JkZXIpIHsgICAgICAgICAg ICAgIFwNCj4gPiA+ICsJaWYgKG1lbW9yZGVyID09IF9fQVRPTUlDX1JFTEFYRUQpIHsgICAgICAg ICAgICAgIFwNCj4gPiA+ICsJCWFzbSB2b2xhdGlsZSgibGR4ciAld1t0bXBdLCBbJXhbYWRkcl1d IiAgXA0KPiA+ID4gKwkJCTogW3RtcF0gIj0mciIgKGRzdCkgICAgICAgICAgICAgIFwNCj4gPiA+ ICsJCQk6IFthZGRyXSAiciIoc3JjKSAgICAgICAgICAgICAgICBcDQo+ID4gPiArCQkJOiAibWVt b3J5Iik7ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gKwl9IGVsc2UgeyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gKwkJYXNtIHZvbGF0aWxlKCJs ZGF4ciAld1t0bXBdLCBbJXhbYWRkcl1dIiBcDQo+ID4gPiArCQkJOiBbdG1wXSAiPSZyIiAoZHN0 KSAgICAgICAgICAgICAgXA0KPiA+ID4gKwkJCTogW2FkZHJdICJyIihzcmMpICAgICAgICAgICAg ICAgIFwNCj4gPiA+ICsJCQk6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICBcDQo+ID4g PiArCX0gfQ0KPiA+ID4gKw0KPiA+ID4gKy8qDQo+ID4gPiArICogQXRvbWljIGV4Y2x1c2l2ZSBs b2FkIGZyb20gYWRkciwgaXQgcmV0dXJucyB0aGUgNjQtYml0IGNvbnRlbnQgb2YNCj4gPiA+ICsg KiAqYWRkciB3aGlsZSBtYWtpbmcgaXQgJ21vbml0b3JlZCcsIHdoZW4gaXQgaXMgd3JpdHRlbiBi eSBzb21lb25lDQo+ID4gPiArICogZWxzZSwgdGhlICdtb25pdG9yZWQnIHN0YXRlIGlzIGNsZWFy ZWQgYW5kIGFuIGV2ZW50IGlzIGdlbmVyYXRlZA0KPiA+ID4gKyAqIGltcGxpY2l0bHkgdG8gZXhp dCBXRkUuDQo+ID4gPiArICovDQo+ID4gPiArI2RlZmluZSBfX0xPQURfRVhDXzY0KHNyYywgZHN0 LCBtZW1vcmRlcikgeyAgICAgICAgICAgICAgXA0KPiA+ID4gKwlpZiAobWVtb3JkZXIgPT0gX19B VE9NSUNfUkVMQVhFRCkgeyAgICAgICAgICAgICAgXA0KPiA+ID4gKwkJYXNtIHZvbGF0aWxlKCJs ZHhyICV4W3RtcF0sIFsleFthZGRyXV0iICBcDQo+ID4gPiArCQkJOiBbdG1wXSAiPSZyIiAoZHN0 KSAgICAgICAgICAgICAgXA0KPiA+ID4gKwkJCTogW2FkZHJdICJyIihzcmMpICAgICAgICAgICAg ICAgIFwNCj4gPiA+ICsJCQk6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAgICAgICBcDQo+ID4g PiArCX0gZWxzZSB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ ID4gPiArCQlhc20gdm9sYXRpbGUoImxkYXhyICV4W3RtcF0sIFsleFthZGRyXV0iIFwNCj4gPiA+ ICsJCQk6IFt0bXBdICI9JnIiIChkc3QpICAgICAgICAgICAgICBcDQo+ID4gPiArCQkJOiBbYWRk cl0gInIiKHNyYykgICAgICAgICAgICAgICAgXA0KPiA+ID4gKwkJCTogIm1lbW9yeSIpOyAgICAg ICAgICAgICAgICAgICAgIFwNCj4gPiA+ICsJfSB9DQo+ID4gPiArDQo+ID4gPiArI2RlZmluZSBf X0xPQURfRVhDKHNyYywgZHN0LCBtZW1vcmRlciwgc2l6ZSkgeyAgICAgICAgICBcDQo+ID4gPiAr CWFzc2VydChzaXplID09IDE2IHx8IHNpemUgPT0gMzIgfHwgc2l6ZSA9PSA2NCk7IFwNCj4gPiA+ ICsJaWYgKHNpemUgPT0gMTYpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ ID4gKwkJX19MT0FEX0VYQ18xNihzcmMsIGRzdCwgbWVtb3JkZXIpICAgICAgIFwNCj4gPiA+ICsJ ZWxzZSBpZiAoc2l6ZSA9PSAzMikgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4g KwkJX19MT0FEX0VYQ18zMihzcmMsIGRzdCwgbWVtb3JkZXIpICAgICAgIFwNCj4gPiA+ICsJZWxz ZSBpZiAoc2l6ZSA9PSA2NCkgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gKwkJ X19MT0FEX0VYQ182NChzcmMsIGRzdCwgbWVtb3JkZXIpICAgICAgIFwNCj4gPiA+ICt9DQo+ID4g PiArDQo+ID4gPiArc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZA0KPiA+ID4gK3J0ZV93 YWl0X3VudGlsX2VxdWFsXzE2KHZvbGF0aWxlIHVpbnQxNl90ICphZGRyLCB1aW50MTZfdCBleHBl Y3RlZCwNCj4gPiA+ICsJCWludCBtZW1vcmRlcikNCj4gPiA+ICt7DQo+ID4gPiArCXVpbnQxNl90 IHZhbHVlOw0KPiA+ID4gKw0KPiA+ID4gKwlhc3NlcnQobWVtb3JkZXIgPT0gX19BVE9NSUNfQUNR VUlSRSB8fCBtZW1vcmRlciA9PQ0KPiA+ID4gX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4gPiArDQo+ ID4gPiAgCV9fTE9BRF9FWENfMTYoYWRkciwgdmFsdWUsIG1lbW9yZGVyKQ0KPiA+ID4gIAlpZiAo dmFsdWUgIT0gZXhwZWN0ZWQpIHsNCj4gPiA+ICAJCV9fU0VWTCgpDQo+ID4gPiBAQCAtNjYsNyAr MTE0LDYgQEAgcnRlX3dhaXRfdW50aWxfZXF1YWxfMTYodm9sYXRpbGUgdWludDE2X3QgKmFkZHIs DQo+ID4gPiB1aW50MTZfdCBleHBlY3RlZCwNCj4gPiA+ICAJCQlfX0xPQURfRVhDXzE2KGFkZHIs IHZhbHVlLCBtZW1vcmRlcikNCj4gPiA+ICAJCX0gd2hpbGUgKHZhbHVlICE9IGV4cGVjdGVkKTsN Cj4gPiA+ICAJfQ0KPiA+ID4gLSN1bmRlZiBfX0xPQURfRVhDXzE2DQo+ID4gPiAgfQ0KPiA+ID4N Cj4gPiA+ICBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkDQo+ID4gPiBAQCAtNzcsMjUg KzEyNCw2IEBAIHJ0ZV93YWl0X3VudGlsX2VxdWFsXzMyKHZvbGF0aWxlIHVpbnQzMl90ICphZGRy LA0KPiA+ID4gdWludDMyX3QgZXhwZWN0ZWQsDQo+ID4gPg0KPiA+ID4gIAlhc3NlcnQobWVtb3Jk ZXIgPT0gX19BVE9NSUNfQUNRVUlSRSB8fCBtZW1vcmRlciA9PQ0KPiA+ID4gX19BVE9NSUNfUkVM QVhFRCk7DQo+ID4gPg0KPiA+ID4gLQkvKg0KPiA+ID4gLQkgKiBBdG9taWMgZXhjbHVzaXZlIGxv YWQgZnJvbSBhZGRyLCBpdCByZXR1cm5zIHRoZSAzMi1iaXQgY29udGVudCBvZg0KPiA+ID4gLQkg KiAqYWRkciB3aGlsZSBtYWtpbmcgaXQgJ21vbml0b3JlZCcsd2hlbiBpdCBpcyB3cml0dGVuIGJ5 IHNvbWVvbmUNCj4gPiA+IC0JICogZWxzZSwgdGhlICdtb25pdG9yZWQnIHN0YXRlIGlzIGNsZWFy ZWQgYW5kIGEgZXZlbnQgaXMgZ2VuZXJhdGVkDQo+ID4gPiAtCSAqIGltcGxpY2l0bHkgdG8gZXhp dCBXRkUuDQo+ID4gPiAtCSAqLw0KPiA+ID4gLSNkZWZpbmUgX19MT0FEX0VYQ18zMihzcmMsIGRz dCwgbWVtb3JkZXIpIHsgICAgICAgICAgICAgIFwNCj4gPiA+IC0JaWYgKG1lbW9yZGVyID09IF9f QVRPTUlDX1JFTEFYRUQpIHsgICAgICAgICAgICAgIFwNCj4gPiA+IC0JCWFzbSB2b2xhdGlsZSgi bGR4ciAld1t0bXBdLCBbJXhbYWRkcl1dIiAgXA0KPiA+ID4gLQkJCTogW3RtcF0gIj0mciIgKGRz dCkgICAgICAgICAgICAgIFwNCj4gPiA+IC0JCQk6IFthZGRyXSAiciIoc3JjKSAgICAgICAgICAg ICAgICBcDQo+ID4gPiAtCQkJOiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ ID4gLQl9IGVsc2UgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0K PiA+ID4gLQkJYXNtIHZvbGF0aWxlKCJsZGF4ciAld1t0bXBdLCBbJXhbYWRkcl1dIiBcDQo+ID4g PiAtCQkJOiBbdG1wXSAiPSZyIiAoZHN0KSAgICAgICAgICAgICAgXA0KPiA+ID4gLQkJCTogW2Fk ZHJdICJyIihzcmMpICAgICAgICAgICAgICAgIFwNCj4gPiA+IC0JCQk6ICJtZW1vcnkiKTsgICAg ICAgICAgICAgICAgICAgICBcDQo+ID4gPiAtCX0gfQ0KPiA+ID4gLQ0KPiA+ID4gIAlfX0xPQURf RVhDXzMyKGFkZHIsIHZhbHVlLCBtZW1vcmRlcikNCj4gPiA+ICAJaWYgKHZhbHVlICE9IGV4cGVj dGVkKSB7DQo+ID4gPiAgCQlfX1NFVkwoKQ0KPiA+ID4gQEAgLTEwNCw3ICsxMzIsNiBAQCBydGVf d2FpdF91bnRpbF9lcXVhbF8zMih2b2xhdGlsZSB1aW50MzJfdCAqYWRkciwNCj4gPiA+IHVpbnQz Ml90IGV4cGVjdGVkLA0KPiA+ID4gIAkJCV9fTE9BRF9FWENfMzIoYWRkciwgdmFsdWUsIG1lbW9y ZGVyKQ0KPiA+ID4gIAkJfSB3aGlsZSAodmFsdWUgIT0gZXhwZWN0ZWQpOw0KPiA+ID4gIAl9DQo+ ID4gPiAtI3VuZGVmIF9fTE9BRF9FWENfMzINCj4gPiA+ICB9DQo+ID4gPg0KPiA+ID4gIHN0YXRp YyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQNCj4gPiA+IEBAIC0xMTUsMjUgKzE0Miw2IEBAIHJ0 ZV93YWl0X3VudGlsX2VxdWFsXzY0KHZvbGF0aWxlIHVpbnQ2NF90ICphZGRyLA0KPiA+ID4gdWlu dDY0X3QgZXhwZWN0ZWQsDQo+ID4gPg0KPiA+ID4gIAlhc3NlcnQobWVtb3JkZXIgPT0gX19BVE9N SUNfQUNRVUlSRSB8fCBtZW1vcmRlciA9PQ0KPiA+ID4gX19BVE9NSUNfUkVMQVhFRCk7DQo+ID4g Pg0KPiA+ID4gLQkvKg0KPiA+ID4gLQkgKiBBdG9taWMgZXhjbHVzaXZlIGxvYWQgZnJvbSBhZGRy LCBpdCByZXR1cm5zIHRoZSA2NC1iaXQgY29udGVudCBvZg0KPiA+ID4gLQkgKiAqYWRkciB3aGls ZSBtYWtpbmcgaXQgJ21vbml0b3JlZCcsd2hlbiBpdCBpcyB3cml0dGVuIGJ5IHNvbWVvbmUNCj4g PiA+IC0JICogZWxzZSwgdGhlICdtb25pdG9yZWQnIHN0YXRlIGlzIGNsZWFyZWQgYW5kIGEgZXZl bnQgaXMgZ2VuZXJhdGVkDQo+ID4gPiAtCSAqIGltcGxpY2l0bHkgdG8gZXhpdCBXRkUuDQo+ID4g PiAtCSAqLw0KPiA+ID4gLSNkZWZpbmUgX19MT0FEX0VYQ182NChzcmMsIGRzdCwgbWVtb3JkZXIp IHsgICAgICAgICAgICAgIFwNCj4gPiA+IC0JaWYgKG1lbW9yZGVyID09IF9fQVRPTUlDX1JFTEFY RUQpIHsgICAgICAgICAgICAgIFwNCj4gPiA+IC0JCWFzbSB2b2xhdGlsZSgibGR4ciAleFt0bXBd LCBbJXhbYWRkcl1dIiAgXA0KPiA+ID4gLQkJCTogW3RtcF0gIj0mciIgKGRzdCkgICAgICAgICAg ICAgIFwNCj4gPiA+IC0JCQk6IFthZGRyXSAiciIoc3JjKSAgICAgICAgICAgICAgICBcDQo+ID4g PiAtCQkJOiAibWVtb3J5Iik7ICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gLQl9IGVsc2Ug eyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gLQkJYXNt IHZvbGF0aWxlKCJsZGF4ciAleFt0bXBdLCBbJXhbYWRkcl1dIiBcDQo+ID4gPiAtCQkJOiBbdG1w XSAiPSZyIiAoZHN0KSAgICAgICAgICAgICAgXA0KPiA+ID4gLQkJCTogW2FkZHJdICJyIihzcmMp ICAgICAgICAgICAgICAgIFwNCj4gPiA+IC0JCQk6ICJtZW1vcnkiKTsgICAgICAgICAgICAgICAg ICAgICBcDQo+ID4gPiAtCX0gfQ0KPiA+ID4gLQ0KPiA+ID4gIAlfX0xPQURfRVhDXzY0KGFkZHIs IHZhbHVlLCBtZW1vcmRlcikNCj4gPiA+ICAJaWYgKHZhbHVlICE9IGV4cGVjdGVkKSB7DQo+ID4g PiAgCQlfX1NFVkwoKQ0KPiA+ID4gQEAgLTE0MywxMCArMTUxLDIzIEBAIHJ0ZV93YWl0X3VudGls X2VxdWFsXzY0KHZvbGF0aWxlIHVpbnQ2NF90ICphZGRyLA0KPiA+ID4gdWludDY0X3QgZXhwZWN0 ZWQsDQo+ID4gPiAgCQl9IHdoaWxlICh2YWx1ZSAhPSBleHBlY3RlZCk7DQo+ID4gPiAgCX0NCj4g PiA+ICB9DQo+ID4gPiAtI3VuZGVmIF9fTE9BRF9FWENfNjQNCj4gPiA+DQo+ID4gPiAtI3VuZGVm IF9fU0VWTA0KPiA+ID4gLSN1bmRlZiBfX1dGRQ0KPiA+ID4gKyNkZWZpbmUgcnRlX3dhaXRfZXZl bnQoYWRkciwgbWFzaywgY29uZCwgZXhwZWN0ZWQsIG1lbW9yZGVyKSAgICAgIFwNCj4gPiA+ICtk byB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQo+ID4gPiArCVJURV9CVUlMRF9CVUdfT04oIV9fYnVpbHRpbl9jb25zdGFudF9w KG1lbW9yZGVyKSk7ICAgICAgICBcDQo+ID4gPiArCVJURV9CVUlMRF9CVUdfT04obWVtb3JkZXIg IT0gX19BVE9NSUNfQUNRVUlSRSAmJiAgICAgICAgICBcDQo+ID4gPiArCQkJCW1lbW9yZGVyICE9 IF9fQVRPTUlDX1JFTEFYRUQpOyAgICBcDQo+ID4gPiArCXVpbnQzMl90IHNpemUgPSBzaXplb2Yo KihhZGRyKSkgPDwgMzsgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiArCXR5cGVvZigqKGFk ZHIpKSB2YWx1ZSA9IDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQo+ID4gPiAr CV9fTE9BRF9FWEMoKGFkZHIpLCB2YWx1ZSwgbWVtb3JkZXIsIHNpemUpICAgICAgICAgICAgICAg ICBcDQo+ID4gPiArCWlmICgodmFsdWUgJiAobWFzaykpIGNvbmQgZXhwZWN0ZWQpIHsgICAgICAg ICAgICAgICAgICAgICBcDQo+ID4gPiArCQlfX1NFVkwoKSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ICsJCWRvIHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXA0KPiA+ID4gKwkJCV9fV0ZFKCkgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCj4gPiA+ICsJCQlfX0xPQURfRVhDKChhZGRyKSwgdmFs dWUsIG1lbW9yZGVyLCBzaXplKSBcDQo+ID4gPiArCQl9IHdoaWxlICgodmFsdWUgJiAobWFzaykp IGNvbmQgZXhwZWN0ZWQpOyAgICAgICAgIFwNCj4gPg0KPiA+IEhpLCBLb25zdGFudGluDQo+ID4N Cj4gPiBGb3IgdGhpcyBwYXRjaCwgSSBjYW5ub3QgYWRkICcoKScgZm9yIGV4cGVjdGVkIGR1ZSB0 byBwYXRjaCBzdHlsZSBjaGVjayB3aWxsIHJlcG9ydDoNCj4gPiAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQo+ID4gV0FSTklORzpTUEFD SU5HOiBzcGFjZSBwcm9oaWJpdGVkIGJldHdlZW4gZnVuY3Rpb24gbmFtZSBhbmQgb3BlbiBwYXJl bnRoZXNpcyAnKCcNCj4gPiAjMjAzOiBGSUxFOiBsaWIvZWFsL2FybS9pbmNsdWRlL3J0ZV9wYXVz ZV82NC5oOjE2MzoNCj4gPiArICAgICAgIGlmICgodmFsdWUgJiAobWFzaykpIGNvbmQgKGV4cGVj dGVkKSkgeyAgICAgICAgICAgICAgICAgICBcDQo+ID4NCj4gPiBXQVJOSU5HOlNQQUNJTkc6IHNw YWNlIHByb2hpYml0ZWQgYmV0d2VlbiBmdW5jdGlvbiBuYW1lIGFuZCBvcGVuIHBhcmVudGhlc2lz ICcoJw0KPiA+ICMyMDg6IEZJTEU6IGxpYi9lYWwvYXJtL2luY2x1ZGUvcnRlX3BhdXNlXzY0Lmg6 MTY4Og0KPiA+ICsgICAgICAgICAgICAgICB9IHdoaWxlICgodmFsdWUgJiAobWFzaykpIGNvbmQg KGV4cGVjdGVkKSk7ICAgICAgIFwNCj4gPg0KPiA+IFdBUk5JTkc6U1BBQ0lORzogc3BhY2UgcHJv aGliaXRlZCBiZXR3ZWVuIGZ1bmN0aW9uIG5hbWUgYW5kIG9wZW4gcGFyZW50aGVzaXMgJygnDQo+ ID4gIzI0NjogRklMRTogbGliL2VhbC9pbmNsdWRlL2dlbmVyaWMvcnRlX3BhdXNlLmg6MTM4Og0K PiA+ICsgICAgICAgd2hpbGUgKChfX2F0b21pY19sb2FkX24oKGFkZHIpLCAobWVtb3JkZXIpKSAm IG1hc2spIGNvbmQgKGV4cGVjdGVkKSkgXA0KPiA+DQo+ID4gdG90YWw6IDEgZXJyb3JzLCAzIHdh cm5pbmdzLCAyMTEgbGluZXMgY2hlY2tlZA0KPiANCj4gSXQgaXMganVzdCBjaGVja3BhdGNoIHdh cm5pbmdzLg0KPiBQZXJzb25hbGx5IEkncyBiZXR0ZXIgbGl2ZSB3aXRoIGNoZWNrcGF0Y2ggY29t cGxhaW50cyB0aGVuIHdpdGggcHJvYmxlbWF0aWMgbWFjcm8uDQo+IA0KPiA+IC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gPiBTbyBJ IGp1c3QgYWRkICcoKScgZm9yICdhZGRyJyBhbmQgJ21hc2snLg0KDQpJIHdvbmRlciBjYW4gd2Ug b3ZlcmNvbWUgaXQgYnk6DQp0eXBlb2YoKihhZGRyKSkgZXhwZWN0ZWRfdmFsdWUgPSAoZXhwZWN0 ZWQpOyBcDQouLi4NCmlmICgodmFsdWUgJiAobWFzaykpIGNvbmQgZXhwZWN0ZWRfdmFsdWUpIFwN CiAgLi4uDQo/DQoNCg0KDQo=