From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id B0723A0032;
	Tue, 16 Nov 2021 18:28:26 +0100 (CET)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id F2A28426F5;
	Tue, 16 Nov 2021 18:28:25 +0100 (CET)
Received: from mga17.intel.com (mga17.intel.com [192.55.52.151])
 by mails.dpdk.org (Postfix) with ESMTP id 0A1E54117A
 for <dev@dpdk.org>; Tue, 16 Nov 2021 18:28:23 +0100 (CET)
X-IronPort-AV: E=McAfee;i="6200,9189,10169"; a="214465033"
X-IronPort-AV: E=Sophos;i="5.87,239,1631602800"; d="scan'208";a="214465033"
Received: from fmsmga004.fm.intel.com ([10.253.24.48])
 by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;
 16 Nov 2021 09:16:22 -0800
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.87,239,1631602800"; d="scan'208";a="567276322"
Received: from fmsmsx605.amr.corp.intel.com ([10.18.126.85])
 by fmsmga004.fm.intel.com with ESMTP; 16 Nov 2021 09:16:21 -0800
Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by
 fmsmsx605.amr.corp.intel.com (10.18.126.85) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Tue, 16 Nov 2021 09:16:21 -0800
Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by
 fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.1.2242.12; Tue, 16 Nov 2021 09:16:21 -0800
Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by
 fmsmsx609.amr.corp.intel.com (10.18.126.89) 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, 16 Nov 2021 09:16:21 -0800
Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.171)
 by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2242.12; Tue, 16 Nov 2021 09:16:21 -0800
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=oYy4d+kzbnFPrQilk94IFaIWwl5hRBnHafv5ibZwdZbWGAlARiqF+YfstGbSMfcDnx2jmkishWeMZ1FUN4bHkcWy9apks8ke3jeVjE77CZ34y9mHSpXhqPWmH5m7c4Fuf/SxgCcF+HWKIv5i/ddALzA8g1l/nhi7C6GR2IaQUnpm4de+XNNIxju555kmxvFTpev1gPrsFWNozwzd79QqZHM6O+jYCWVJ49AbvE7i5oRTuZqGcaQEcMRH2R82Fft0/eSqRCyqPo9H3oploV0lBfqlnpIP2MRwHXFyJDk/B8xeIyUkWWGq3ePNRFEpIgyK+1CECyieOnBuZ8RBt/TPkw==
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=FDplPVMM2PpXmJAqppNMF6gYOu2c1CPGyPLJRep/mLA=;
 b=g2AUk0fsC42EdgGLw6rOYynRbgWvcd7RuJYxP5GBPqvuhIF2MfpaR57gUHN2sPc6wlEUxuvlk+p/2nyctMrrbK08iW4qwcMLpCLyj7+q+YdtWCqgl5K0JLMdlrNX7E+qNA6sxffHHTuLWx78wDT/7ey01yfNXWVxvJY2Oyouiu9PTEV+s7bUzZEzcrvmXFvjlf84QaWlNJN7I03ufuvoU/do1GFbz1fxLVUUzYRzuFWAYmc84YI5vnp7LNnTiTyrdOaG9v98HJsoHAIKQNHrHQxiBiZHNJ9ySK+q+JMdX4AiVYfKgVQexG35IYuAwoZCEqw1vwcsY2ckRhubC/apdw==
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=FDplPVMM2PpXmJAqppNMF6gYOu2c1CPGyPLJRep/mLA=;
 b=qO2gnct36zYfkLfsF/HzYTI0lnZWBA1UhScvLFC9w4E/nyiVmIPRmYg0/BX0JSWbsTuw+Um/rTsRk/5aWxTqKZ1tB6bC5AOXGufQrWUHk0sF0yxve8l4GQv/1sahy0/Zrddu5A5CQ5Wi9nsycz/DvssOXn1WTZiR/uBLE412SqE=
Received: from DM6PR11MB4491.namprd11.prod.outlook.com (2603:10b6:5:204::19)
 by DM6PR11MB4185.namprd11.prod.outlook.com (2603:10b6:5:195::29) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Tue, 16 Nov
 2021 17:16:19 +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.4690.027; Tue, 16 Nov 2021
 17:16:19 +0000
From: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
To: Slava Ovsiienko <viacheslavo@nvidia.com>, Elena Agostini
 <eagostini@nvidia.com>, "dev@dpdk.org" <dev@dpdk.org>
Subject: RE: [PATCH v2 1/1] app/testpmd: add GPU memory option in iofwd engine
Thread-Topic: [PATCH v2 1/1] app/testpmd: add GPU memory option in iofwd engine
Thread-Index: AQHX1wB/xl2ppmyWIUmSJhzCEcV9lKwGX+iAgAAK7PA=
Date: Tue, 16 Nov 2021 17:16:19 +0000
Message-ID: <DM6PR11MB449189C95F31B476FFE3472C9A999@DM6PR11MB4491.namprd11.prod.outlook.com>
References: <20211029204909.21318-1-eagostini@nvidia.com>
 <20211111214141.26612-1-eagostini@nvidia.com>
 <20211111214141.26612-2-eagostini@nvidia.com>
 <DM6PR12MB3753D60497643298D38C0075DF999@DM6PR12MB3753.namprd12.prod.outlook.com>
In-Reply-To: <DM6PR12MB3753D60497643298D38C0075DF999@DM6PR12MB3753.namprd12.prod.outlook.com>
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: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=intel.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 932cc80b-04be-4286-060f-08d9a924ce80
x-ms-traffictypediagnostic: DM6PR11MB4185:
x-microsoft-antispam-prvs: <DM6PR11MB4185C56C395AB37DE381735B9A999@DM6PR11MB4185.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:1443;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: ctoTyK5Pd23Bw6e2S1AgoiGru8Sm4tXyW9xS1xC62PV9uZ/uHTpAB82CqMHeutJV+feWsoNsVkmnxhtCXo2aShcee9Q4o444vWFYbc80sadbySgYUe1UpekLxw9qsAZI2g3UPrZXTkLqcoL84Vt6BEfnSZTp0PWdUSBnhtq9ZhAUGFk9qp2JDM1kwT+TiQ373qisApf4rbhtoSjgQB1ukl1WDsgff18rdR9cnI+gCGqPj20hhN8wnTHTBvbRd6gh28tc3Gk0iLJkxxdtSLdIiNK1KbXbhpsic2x95vtp37au632g7B33raY1IElGkb0iHXSbceYWzuYb9F5mNUgaw8Ogh0umCzHKu+dezyzlI5UdZFhFdDMDsSQib+XlqFHE8p4nI9mqWJrDc8Gi8qTsfOxaOrsppZXSsufPoEtMY8/Fmot3YFR/ITOMYIuR+ycGiVQLBaiB/kSB6e01h8spTV6J0hXZwmSGlLkBP2T89X5f2NUwWPWaSI6b8ea/vyT3aRofo2C3IwKS/La5FTf7H7L6mT4FEpOGVZDlVZB/EwD8tOGYbl4zcjg8FLA4jLSQ0hm8hzcGnCaq/td/whiAjAx5aOUur/sUV/NEoTeezApUzorc1Y+K8Vr7HsLte9WOF2rg3LPgLts6rYRW+mW7UzSxHn5UGlvHL3KzI+MoXyfZthUaxl8gu3X5vAE2FhttIAGCiebkxdB++iR6QRMJFA==
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)(26005)(55016002)(316002)(38100700002)(71200400001)(55236004)(6506007)(66556008)(122000001)(82960400001)(508600001)(83380400001)(9686003)(186003)(66476007)(33656002)(8936002)(66946007)(64756008)(66446008)(76116006)(38070700005)(52536014)(7696005)(86362001)(110136005)(8676002)(5660300002)(2906002);
 DIR:OUT; SFP:1102; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?T2xubzRveGpYSDVaU1J0NCtkSnVjekIzeUM3NjEyUnc1ZEgxT2FZelRxekth?=
 =?utf-8?B?cnVLQnExeTZYUmdTTWw4N0E0M0FSNGRiQVJCMmx5bDRBcFlSSXBwMnhxT3pB?=
 =?utf-8?B?OG9tWHZRSHdiYkZ6anoyajBFVGxXemJmSVRoVC9OYXhMVkNNY2FDWUhYRDBD?=
 =?utf-8?B?ZjdLVFFNNEEvRUZLcUZUL0d0VFhkZHdiM3JORXUzeExzUE9CeGE4QzJmYUFR?=
 =?utf-8?B?MXlNQTYxSzlycGZtZFc3Vi9RMEZZeVpIVll5dkUvNElXVS9TSm5vRXJtK0RJ?=
 =?utf-8?B?bGU5a2hXeWhLMnpkQ0l5Qk5XN2doN0J2Zy95T3pqejl2a000bnlVSG5tRlQz?=
 =?utf-8?B?ZGdnckVybERDcEo3VTJibXEvbmorRXp2V2czbVZwVjByWlF5ekxzZFZ1bFdP?=
 =?utf-8?B?ZGc5eE53cStQN2VRamZUZmVzNm5YeHUzN2x4VGVzWmZBNWtFNGRhcVZCSFpj?=
 =?utf-8?B?amhTYkoxN2NxZ1JyWnlIVytkNzRmb2YwK1hOb0tTYm41RHFkeTVmYnNGYjNt?=
 =?utf-8?B?TEUwUlhQcFpFOHk0dDY1YzhuV2o4cnlXVnlYbG0zVExkSDRFa2xyZlBOZEpK?=
 =?utf-8?B?aFljYU42a1VrWkVZZDBUN1A0YVZleTdTdUJNUlYydmlLaHhDRGI0ZHdFbmY2?=
 =?utf-8?B?THkvWUJTdU9EaW1PSjRHZ2FLSURoUC9vSDBqVG5YUUM1TDZHTmVDKzlmOGY4?=
 =?utf-8?B?WVluVVZNN2pCT3M1bHhpS1BWdnAwNnR2VXZxTWc1YzhteStldW5KZ0lJdUc0?=
 =?utf-8?B?M0VBeUNmSTNSNGxIZjNtZ0d4Qyt3a1JVME5JODhQNjV1SlVFcXY5ODNxYS9G?=
 =?utf-8?B?bjRwelowVTJoK1dtQlJxRE9DdDJXSFVEZjlidkZyakdZblZrT2c0MmhsL2t3?=
 =?utf-8?B?V2NOVzRrL2FldXpPSVlPTmh2R0hKL0ZjUjFWK1BVejMwaUdJWXBsbVloWWFB?=
 =?utf-8?B?OE1lVGdhZGMxQ0dhUUFoMUI3QW9WZFRlM0NKc1N1WWVNSlJBdDROTlZTM0NR?=
 =?utf-8?B?TkczaklsT0JiNTF4Q3ZWZlhQUUZoQTFSWHBKcEhLeS9panNYNnVYblc1bmV3?=
 =?utf-8?B?c3duU3ZIZHQ0U1dMb2JvQ0hVZWZUTmgyTUk3ZXhmakRCUytFM2R6bTRLKys0?=
 =?utf-8?B?TnVKS3dBV00zY2xsUUpBVVBEYkQ3amFQWi9NaG1jTnU1ZU5DRkEvaFdyV2NB?=
 =?utf-8?B?Rm9ITzViTU9KdDhzM2JCSTBsbGNDUU9pcmw5ZHJCYXB0SU5DNTFXbENuVkpO?=
 =?utf-8?B?WlJtTHhKMlYySVR2UlZ2Z2JPUjVpZlpKSklQY1NCZ0UxcU1iNkY3c2d6RnRF?=
 =?utf-8?B?Z2tDdW43UFRPaXJ6dzNJNFZrNGdwZTdXUE5aWnozd0U3eG9zbVlsNTN3RTh6?=
 =?utf-8?B?MFJTdlY0MDIvRUZsRlVqOEQzQVB4TXpVMFA0ZUlpV3NEZFlnREdHQUZNTHZS?=
 =?utf-8?B?MVJnQTVjWXQ3OFFxSEZsdVV3T2l3NlVnWGNDL1B5b3M1b2d6RVZGUk0zQjBW?=
 =?utf-8?B?S1d6Z1FuL0lobDRDTi96QVFMSVNFVjI1Z3NTTE9CUmNldTcya0VQZEJFblZj?=
 =?utf-8?B?UE54UVloclhZYkhVZk1nOTRXQ2dyY0F2N3NCSDVWb2M0a2hVK1RsTmlRVU9C?=
 =?utf-8?B?WFBsbkdzYWk2Qzl2cDEwaVJyQjN0R284Qm1QNC9VRDlPTDJxemxQWWhXanRw?=
 =?utf-8?B?YmRXVzkxci9wM2U3blc1a2tFT1J1YkFFRFh2OWJVZ2gzamQ4SlkvTk5OWGZp?=
 =?utf-8?B?YnNmd3dBaUNFRlUrbVdOWXFHUE1BSWpEa2NINWVtQStyMndpOXpmbXlaNGsz?=
 =?utf-8?B?Um1ib2phR0ZDUlRoUm90WDNibWVQMVVObVZBUjlkZTJTTTRhbnlGc09jOFFw?=
 =?utf-8?B?WTdwSUdNa2huYVpYUjlybENqRVM4WEp2ZE9LVlowaFY1c01NZjVBdU1jbjk0?=
 =?utf-8?B?cGY0Y2lSK2grQjZROFIxU0JCT0hwMENVVXZaSWtmdmpWZWU0bkg0RU9reUZN?=
 =?utf-8?B?K0lJTG4wUVVOV3BBYUdGR1JDWGRCaStzWWtCZzNxR3E4YXVOWk1rOWxNMkd5?=
 =?utf-8?B?cERhZGJiaUFHaDVRZ2loTXJob1l1clpyNzJSWGE3d05KT0EzZnZWZk16bHAz?=
 =?utf-8?B?UTdpMUpEVnF4MVpDV3pwNWx3c0FjamJRdGN2bnp2ZDlYTkxtZElFdTZMREtD?=
 =?utf-8?B?MSttb3ZaVjZLeFgxSzlMWGhsSjd0RFR1aG5NdkNvUlhWbk51NDNKcWtQSTlO?=
 =?utf-8?B?Y3Q3eVBaTWduS0xVQTU0eFUrcE9BPT0=?=
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: 932cc80b-04be-4286-060f-08d9a924ce80
X-MS-Exchange-CrossTenant-originalarrivaltime: 16 Nov 2021 17:16:19.7399 (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: 6TMD76r/z9fMmuxPQCPr8op2rnCDTJD/gPItamNUsBAo7zWd+rEsVltuOc0TzGEjpv2y6vimQATmBgPB8HPaPeCC0tR5aEHNLtnPPTF1DFo=
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB4185
X-OriginatorOrg: intel.com
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org

DQoNCj4gQ291bGQgeW91LCBwbGVhc2UsIHNldCAiQXV0aG9yIiBjb3JyZWN0bHkgLSAiRWxlbmEg
QWdvc3RpbmkgPGVhZ29zdGluaUBudmlkaWEuY29tPiI/DQo+IE90aGVyd2lzZSwgd2Ugc2VlIGlu
IHRoZSBnaXQgbG9nOg0KPiANCj4gIkF1dGhvcjogZWFnb3N0aW5pIDxlYWdvc3RpbmlAbnZpZGlh
LmNvbT4iDQo+IA0KPiBDb21wYXJlIHdpdGg6DQo+ICJBdXRob3I6IEJpbmcgWmhhbyA8YmluZ3pA
bnZpZGlhLmNvbT4iDQo+ICJBdXRob3I6IFZpYWNoZXNsYXYgT3ZzaWllbmtvIDx2aWFjaGVzbGF2
b0BudmlkaWEuY29tPiINCj4gDQo+IEFsc28sIHBsZWFzZSwgc2VlIHRoZSBjb2Rlc3R5bGUgaXNz
dWVzLCB0b28gbWFueSBjb2RlIGxpbmVzIGZhciBiZXlvbmQgMTAwIGNoYXJzLg0KPiBMaW5lcyBs
aWtlIHRoaXM6DQo+ICsJCWlmIChtYnVmX21lbV90eXBlc1tpZHhdID09IE1CVUZfTUVNX0dQVSAm
JiBzdHJjbXAoY3VyX2Z3ZF9lbmctPmZ3ZF9tb2RlX25hbWUsICJpbyIpICE9IDApIHsNCj4gY2Fu
IGJlIGVhc2lseSBiZSBzcGxpdHRlZC4NCj4gDQo+ID4+YXBwL3Rlc3RwbWQ6IGFkZCBHUFUgbWVt
b3J5IG9wdGlvbiBpbiBpb2Z3ZA0KPiBBcyBJIHNlZSBmcm9tIHRoZSBwYXRjaCAtIGl0IGFkZHMg
dGhlIG5ldyBtYnVmIHBvb2wgdHlwZSAocmVzaWRpbmcgb24gR1BVIG1lbW9yeSkuDQo+IE1heSBi
ZSwgd2Ugc2hvdWxkIHJld29yZCB0aGUgdGl0bGU/DQo+ICIgYXBwL3Rlc3RwbWQ6IGFkZCBHUFUg
bWVtb3J5IG9wdGlvbiBmb3IgbWJ1ZiBwb29scyINCj4gDQo+ID4NCj4gPiBUaGlzIHBhdGNoIGlu
dHJvZHVjZXMgR1BVIG1lbW9yeSBpbiB0ZXN0cG1kIHRocm91Z2ggdGhlIGdwdWRldiBsaWJyYXJ5
Lg0KPiA+IFRlc3RwbWQgY2FuIGJlIHVzZWQgZm9yIG5ldHdvcmsgYmVuY2htYXJrcyB3aGVuIHVz
aW5nIEdQVSBtZW1vcnkNCj4gPiBpbnN0ZWFkIG9mIHJlZ3VsYXIgQ1BVIG1lbW9yeSB0byBzZW5k
IGFuZCByZWNlaXZlIHBhY2tldHMuDQo+ID4gVGhpcyBvcHRpb24gaXMgY3VycmVudGx5IGxpbWl0
ZWQgdG8gaW9md2QgZW5naW5lLg0KPiBXaHk/IEJlY2F1c2UgaW9md2QgdGhlIG9ubHkgbW9kZSBu
b3QgdG91Y2hpbmcgdGhlIG1idWYgZGF0YT8NCj4gSXMgaXQgY3JpdGljYWwgZm9yIGZ1bmN0aW9u
YWxpdHk/IElzIEdQVSBtYnVmIHBvb2wgbWVtb3J5IGFjY2Vzc2libGUgZnJvbSBDUFUgc2lkZT8N
Cj4gSSB3b3VsZCBleHBsYWluIHRoZSByZWFzb25zIChmb3Igc3VwcG9ydGluZyBpb2Z3ZCBtb2Rl
IG9ubHkpIGluIGNvbW1pdCBtZXNzYWdlLg0KPiANCj4gPg0KPiA+IFNpZ25lZC1vZmYtYnk6IEVs
ZW5hIEFnb3N0aW5pIDxlYWdvc3RpbmlAbnZpZGlhLmNvbT4NCj4gPg0KPiA+IERlcGVuZHMtb246
IHNlcmllcy0xOTQ2NSAoIkdQVSBsaWJyYXJ5IikNCj4gPiBEZXBlbmRzLW9uOiBzZXJpZXMtMjA0
MjIgKCJjb21tb24vbWx4NTogZml4IGV4dGVybmFsIG1lbW9yeSBwb29sDQo+ID4gcmVnaXN0cmF0
aW9uIikNCj4gPiAtLS0NCj4gPiAgYXBwL3Rlc3QtcG1kL2NtZGxpbmUuYyAgICAgICAgICAgICAg
ICB8ICAxNCArKysNCj4gPiAgYXBwL3Rlc3QtcG1kL21lc29uLmJ1aWxkICAgICAgICAgICAgICB8
ICAgMiArLQ0KPiA+ICBhcHAvdGVzdC1wbWQvcGFyYW1ldGVycy5jICAgICAgICAgICAgIHwgIDEz
ICsrLQ0KPiA+ICBhcHAvdGVzdC1wbWQvdGVzdHBtZC5jICAgICAgICAgICAgICAgIHwgMTMzICsr
KysrKysrKysrKysrKysrKysrKysrLS0tDQo+ID4gIGFwcC90ZXN0LXBtZC90ZXN0cG1kLmggICAg
ICAgICAgICAgICAgfCAgMTYgKysrLQ0KPiA+ICBkb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3J1
bl9hcHAucnN0IHwgICAzICsNCj4gPiAgNiBmaWxlcyBjaGFuZ2VkLCAxNjQgaW5zZXJ0aW9ucygr
KSwgMTcgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvYXBwL3Rlc3QtcG1kL2Nt
ZGxpbmUuYyBiL2FwcC90ZXN0LXBtZC9jbWRsaW5lLmMgaW5kZXgNCj4gPiA0ZjUxYjI1OWZlLi4z
NjE5M2JjNTY2IDEwMDY0NA0KPiA+IC0tLSBhL2FwcC90ZXN0LXBtZC9jbWRsaW5lLmMNCj4gPiAr
KysgYi9hcHAvdGVzdC1wbWQvY21kbGluZS5jDQo+ID4gQEAgLTM2MTQsNiArMzYxNCw3IEBAIHBh
cnNlX2l0ZW1fbGlzdChjb25zdCBjaGFyICpzdHIsIGNvbnN0IGNoYXINCj4gDQo+IFRoZSAicGFy
c2VfaXRlbV9saXN0KCkiIGlzIHVzZWQgdG8gcGFyc2UgdGhlIGxpc3QgbG9va2luZyBsaWtlICJu
dW1iZXIwLCBudW1iZXIxLCAuLi4uLCBudW1iZXJOIg0KPiBhbmQgaW52b2tlZCBmb3IgImNvcmUi
LCJwb3J0IiwgInR4dGltZXMiLCBldGMuIE5vdCBzdXJlIGFsbCBvZiB0aGVzZSBwYXJhbXMgbmVl
ZCB0byBoYW5kbGUgImciDQo+IHN1ZmZpeC4gV2Ugc2hvdWxkIGFsbG93ICJnIiBwcm9jZXNzaW5n
IG9ubHkgZm9yICJtYnVmLXNpemUiLiBXZSBoYXZlICJpdGVtX25hbWUiIGFyZ3VtZW50DQo+IHRv
IGNoZWNrIHdoZXRoZXIgd2UgYXJlIGludm9rZWQgb24gIm1idWYtc2l6ZSIuDQo+IA0KPiA+ICpp
dGVtX25hbWUsIHVuc2lnbmVkIGludCBtYXhfaXRlbXMsDQo+ID4gIAl1bnNpZ25lZCBpbnQgajsN
Cj4gPiAgCWludCB2YWx1ZV9vazsNCj4gPiAgCWNoYXIgYzsNCj4gPiArCWludCBncHVfbWJ1ZiA9
IDA7DQo+ID4NCj4gPiAgCS8qDQo+ID4gIAkgKiBGaXJzdCBwYXJzZSBhbGwgaXRlbXMgaW4gdGhl
IGxpc3QgYW5kIHN0b3JlIHRoZWlyIHZhbHVlLg0KPiA+IEBAIC0zNjI4LDYgKzM2MjksMTQgQEAg
cGFyc2VfaXRlbV9saXN0KGNvbnN0IGNoYXIgKnN0ciwgY29uc3QgY2hhcg0KPiA+ICppdGVtX25h
bWUsIHVuc2lnbmVkIGludCBtYXhfaXRlbXMsDQo+ID4gIAkJCXZhbHVlX29rID0gMTsNCj4gPiAg
CQkJY29udGludWU7DQo+ID4gIAkJfQ0KPiA+ICsJCWlmIChjID09ICdnJykgew0KPiBXZSBzaG91
bGQgY2hlY2sgd2hldGhlciAiZyIgaXMgdGhlIHNpbmdsZSBjaGFyIHN1ZmZpeCAobGFzdCBjaGFy
KS4NCj4gT3RoZXJ3aXNlLCAiMjBnNDgiIGFuZCAiZzIwZ2dnZzQ4IiB3b3VsZCBiZSBhbHNvIHZh
bGlkIHZhbHVlcy4NCj4gDQo+ID4gKwkJCS8qDQo+ID4gKwkJCSAqIFdoZW4gdGhpcyBmbGFnIGlz
IHNldCwgbWJ1ZnMgZm9yIHRoaXMgc2VnbWVudA0KPiA+ICsJCQkgKiB3aWxsIGJlIGNyZWF0ZWQg
b24gR1BVIG1lbW9yeS4NCj4gPiArCQkJICovDQo+ID4gKwkJCWdwdV9tYnVmID0gMTsNCj4gPiAr
CQkJY29udGludWU7DQo+ID4gKwkJfQ0KPiA+ICAJCWlmIChjICE9ICcsJykgew0KPiA+ICAJCQlm
cHJpbnRmKHN0ZGVyciwgImNoYXJhY3RlciAlYyBpcyBub3QgYSBkZWNpbWFsIGRpZ2l0XG4iLA0K
PiA+IGMpOw0KPiA+ICAJCQlyZXR1cm4gMDsNCj4gPiBAQCAtMzY0MCw2ICszNjQ5LDggQEAgcGFy
c2VfaXRlbV9saXN0KGNvbnN0IGNoYXIgKnN0ciwgY29uc3QgY2hhcg0KPiA+ICppdGVtX25hbWUs
IHVuc2lnbmVkIGludCBtYXhfaXRlbXMsDQo+ID4gIAkJCXBhcnNlZF9pdGVtc1tuYl9pdGVtXSA9
IHZhbHVlOw0KPiA+ICAJCQl2YWx1ZV9vayA9IDA7DQo+ID4gIAkJCXZhbHVlID0gMDsNCj4gPiAr
CQkJbWJ1Zl9tZW1fdHlwZXNbbmJfaXRlbV0gPSBncHVfbWJ1ZiA/DQo+ID4gTUJVRl9NRU1fR1BV
IDogTUJVRl9NRU1fQ1BVOw0KPiA+ICsJCQlncHVfbWJ1ZiA9IDA7DQo+ID4gIAkJfQ0KPiA+ICAJ
CW5iX2l0ZW0rKzsNCj4gPiAgCX0NCj4gPiBAQCAtMzY0OCw2ICszNjU5LDkgQEAgcGFyc2VfaXRl
bV9saXN0KGNvbnN0IGNoYXIgKnN0ciwgY29uc3QgY2hhcg0KPiA+ICppdGVtX25hbWUsIHVuc2ln
bmVkIGludCBtYXhfaXRlbXMsDQo+ID4gIAkJCWl0ZW1fbmFtZSwgbmJfaXRlbSArIDEsIG1heF9p
dGVtcyk7DQo+ID4gIAkJcmV0dXJuIDA7DQo+ID4gIAl9DQo+ID4gKw0KPiA+ICsJbWJ1Zl9tZW1f
dHlwZXNbbmJfaXRlbV0gPSBncHVfbWJ1ZiA/IE1CVUZfTUVNX0dQVSA6DQo+ID4gTUJVRl9NRU1f
Q1BVOw0KPiA+ICsNCj4gPiAgCXBhcnNlZF9pdGVtc1tuYl9pdGVtKytdID0gdmFsdWU7DQo+ID4g
IAlpZiAoISBjaGVja191bmlxdWVfdmFsdWVzKQ0KPiA+ICAJCXJldHVybiBuYl9pdGVtOw0KPiA+
IGRpZmYgLS1naXQgYS9hcHAvdGVzdC1wbWQvbWVzb24uYnVpbGQgYi9hcHAvdGVzdC1wbWQvbWVz
b24uYnVpbGQgaW5kZXgNCj4gPiBkNWRmNTJjNDcwLi41YzhjYTY4YzlkIDEwMDY0NA0KPiA+IC0t
LSBhL2FwcC90ZXN0LXBtZC9tZXNvbi5idWlsZA0KPiA+ICsrKyBiL2FwcC90ZXN0LXBtZC9tZXNv
bi5idWlsZA0KPiA+IEBAIC0zMiw3ICszMiw3IEBAIGlmIGRwZGtfY29uZi5oYXMoJ1JURV9IQVNf
SkFOU1NPTicpDQo+ID4gICAgICBleHRfZGVwcyArPSBqYW5zc29uX2RlcA0KPiA+ICBlbmRpZg0K
PiA+DQo+ID4gLWRlcHMgKz0gWydldGhkZXYnLCAnZ3JvJywgJ2dzbycsICdjbWRsaW5lJywgJ21l
dHJpY3MnLCAnYnVzX3BjaSddDQo+ID4gK2RlcHMgKz0gWydldGhkZXYnLCAnZ3JvJywgJ2dzbycs
ICdjbWRsaW5lJywgJ21ldHJpY3MnLCAnYnVzX3BjaScsDQo+ID4gKydncHVkZXYnXQ0KPiA+ICBp
ZiBkcGRrX2NvbmYuaGFzKCdSVEVfQ1JZUFRPX1NDSEVEVUxFUicpDQo+ID4gICAgICBkZXBzICs9
ICdjcnlwdG9fc2NoZWR1bGVyJw0KPiA+ICBlbmRpZg0KPiA+IGRpZmYgLS1naXQgYS9hcHAvdGVz
dC1wbWQvcGFyYW1ldGVycy5jIGIvYXBwL3Rlc3QtcG1kL3BhcmFtZXRlcnMuYyBpbmRleA0KPiA+
IDA5NzRiMGEzOGYuLmQ0MWY3ZjIyMGIgMTAwNjQ0DQo+ID4gLS0tIGEvYXBwL3Rlc3QtcG1kL3Bh
cmFtZXRlcnMuYw0KPiA+ICsrKyBiL2FwcC90ZXN0LXBtZC9wYXJhbWV0ZXJzLmMNCj4gPiBAQCAt
ODcsNyArODcsMTAgQEAgdXNhZ2UoY2hhciogcHJvZ25hbWUpDQo+ID4gIAkgICAgICAgImluIE5V
TUEgbW9kZS5cbiIpOw0KPiA+ICAJcHJpbnRmKCIgIC0tbWJ1Zi1zaXplPU4sW04xWywuLk5uXTog
c2V0IHRoZSBkYXRhIHNpemUgb2YgbWJ1ZiB0byAiDQo+ID4gIAkgICAgICAgIk4gYnl0ZXMuIElm
IG11bHRpcGxlIG51bWJlcnMgYXJlIHNwZWNpZmllZCB0aGUgZXh0cmEgcG9vbHMgIg0KPiA+IC0J
ICAgICAgICJ3aWxsIGJlIGNyZWF0ZWQgdG8gcmVjZWl2ZSB3aXRoIHBhY2tldCBzcGxpdCBmZWF0
dXJlc1xuIik7DQo+ID4gKwkgICAgICAgIndpbGwgYmUgY3JlYXRlZCB0byByZWNlaXZlIHdpdGgg
cGFja2V0IHNwbGl0IGZlYXR1cmVzXG4iDQo+ID4gKwkJICAgIlVzZSAnZycgc3VmZml4IGZvciBH
UFUgbWVtb3J5LlxuIg0KPiA+ICsJCSAgICJJZiBubyBvciBhbiB1bnJlY29nbml6ZWQgc3VmZml4
IGlzIHByb3ZpZGVkLCBDUFUgaXMNCj4gPiBhc3N1bWVkXG4iKTsNCj4gVW5yZWNvZ25pemVkIHN1
ZmZpeD8gSSB3b3VsZCBlbWl0IGFuIGVycm9yIGFuZCBhYm9ydCB0aGUgbGF1bmNoLg0KPiANCj4g
PiArDQo+ID4gIAlwcmludGYoIiAgLS10b3RhbC1udW0tbWJ1ZnM9Tjogc2V0IHRoZSBudW1iZXIg
b2YgbWJ1ZnMgdG8gYmUNCj4gPiBhbGxvY2F0ZWQgIg0KPiA+ICAJICAgICAgICJpbiBtYnVmIHBv
b2xzLlxuIik7DQo+ID4gIAlwcmludGYoIiAgLS1tYXgtcGt0LWxlbj1OOiBzZXQgdGhlIG1heGlt
dW0gc2l6ZSBvZiBwYWNrZXQgdG8gTg0KPiA+IGJ5dGVzLlxuIik7IEBAIC01OTUsNiArNTk4LDcg
QEAgbGF1bmNoX2FyZ3NfcGFyc2UoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQ0KPiA+ICAJc3RydWN0
IHJ0ZV9ldGhfZGV2X2luZm8gZGV2X2luZm87DQo+ID4gIAl1aW50MTZfdCByZWNfbmJfcGt0czsN
Cj4gPiAgCWludCByZXQ7DQo+ID4gKwl1aW50MzJfdCBpZHggPSAwOw0KPiA+DQo+ID4gIAlzdGF0
aWMgc3RydWN0IG9wdGlvbiBsZ29wdHNbXSA9IHsNCj4gPiAgCQl7ICJoZWxwIiwJCQkwLCAwLCAw
IH0sDQo+ID4gQEAgLTE1MzgsNCArMTU0MiwxMSBAQCBsYXVuY2hfYXJnc19wYXJzZShpbnQgYXJn
YywgY2hhcioqIGFyZ3YpDQo+ID4gIAkJCQkgICJpZ25vcmVkXG4iKTsNCj4gPiAgCQltZW1wb29s
X2ZsYWdzID0gMDsNCj4gPiAgCX0NCj4gPiArDQo+ID4gKwlmb3IgKGlkeCA9IDA7IGlkeCA8IG1i
dWZfZGF0YV9zaXplX247IGlkeCsrKSB7DQo+ID4gKwkJaWYgKG1idWZfbWVtX3R5cGVzW2lkeF0g
PT0gTUJVRl9NRU1fR1BVICYmDQo+ID4gc3RyY21wKGN1cl9md2RfZW5nLT5md2RfbW9kZV9uYW1l
LCAiaW8iKSAhPSAwKSB7DQo+ID4gKwkJCWZwcmludGYoc3RkZXJyLCAiR1BVIG1lbW9yeSBtYnVm
cyBjYW4gYmUgdXNlZCB3aXRoDQo+ID4gaW9md2QgZW5naW5lIG9ubHlcbiIpOw0KPiA+ICsJCQly
dGVfZXhpdChFWElUX0ZBSUxVUkUsICJDb21tYW5kIGxpbmUgaXMNCj4gPiBpbmNvcnJlY3RcbiIp
Ow0KPiA+ICsJCX0NCj4gPiArCX0NCj4gUGxlYXNlLCBub3RlLCB0aGUgZm9yd2FyZGluZyBtb2Rl
IGNhbiBiZSBjaGFuZ2VkIGZyb20gaW50ZXJhY3RpdmUgcHJvbXB0IHdpdGggInNldCBmd2QgPG1v
ZGU+IiBjb21tYW5kLg0KPiBJZiBpb2Z3ZCBtb2RlIGlzIGNydWNpYWwgZm9yIEdQVSBmdW5jdGlv
bmFsaXR5IC0gd2Ugc2hvdWxkIHByZXZlbnQgc3dpdGNoaW5nIHRvIG90aGVyIG1vZGVzIGlmIEdQ
VSBwb29scyBhcmUgZW5nYWdlZC4NCj4gDQo+IA0KPiA+ICB9DQo+ID4gZGlmZiAtLWdpdCBhL2Fw
cC90ZXN0LXBtZC90ZXN0cG1kLmMgYi9hcHAvdGVzdC1wbWQvdGVzdHBtZC5jIGluZGV4DQo+ID4g
YTY2ZGZiMjk3Yy4uMWFmMjM1YzRkOCAxMDA2NDQNCj4gPiAtLS0gYS9hcHAvdGVzdC1wbWQvdGVz
dHBtZC5jDQo+ID4gKysrIGIvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuYw0KPiA+IEBAIC0yMDUsNiAr
MjA1LDEyIEBAIHVpbnQzMl90IG1idWZfZGF0YV9zaXplX24gPSAxOyAvKiBOdW1iZXIgb2YNCj4g
PiBzcGVjaWZpZWQgbWJ1ZiBzaXplcy4gKi8gIHVpbnQxNl90IG1idWZfZGF0YV9zaXplW01BWF9T
RUdTX0JVRkZFUl9TUExJVF0NCj4gPiA9IHsNCj4gPiAgCURFRkFVTFRfTUJVRl9EQVRBX1NJWkUN
Cj4gPiAgfTsgLyoqPCBNYnVmIGRhdGEgc3BhY2Ugc2l6ZS4gKi8NCj4gPiArDQo+ID4gKy8qIE1i
dWYgbWVtb3J5IHR5cGVzLiAqLw0KPiA+ICtlbnVtIG1idWZfbWVtX3R5cGUgbWJ1Zl9tZW1fdHlw
ZXNbTUFYX1NFR1NfQlVGRkVSX1NQTElUXTsNCj4gPiArLyogUG9pbnRlcnMgdG8gZXh0ZXJuYWwg
bWVtb3J5IGFsbG9jYXRlZCBmb3IgbWVtcG9vbHMuICovIHVpbnRwdHJfdA0KPiA+ICttZW1wb29s
c19leHRfcHRyW01BWF9TRUdTX0JVRkZFUl9TUExJVF07DQo+ID4gKw0KPiA+ICB1aW50MzJfdCBw
YXJhbV90b3RhbF9udW1fbWJ1ZnMgPSAwOyAgLyoqPCBudW1iZXIgb2YgbWJ1ZnMgaW4gYWxsIHBv
b2xzIC0gaWYNCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHNw
ZWNpZmllZCBvbiBjb21tYW5kLWxpbmUuICovICB1aW50MTZfdA0KPiA+IHN0YXRzX3BlcmlvZDsg
LyoqPCBQZXJpb2QgdG8gc2hvdyBzdGF0aXN0aWNzIChkaXNhYmxlZCBieSBkZWZhdWx0KSAqLyBA
QCAtDQo+ID4gNTQzLDYgKzU0OSwxMiBAQCBpbnQgcHJvY19pZDsNCj4gPiAgICovDQo+ID4gIHVu
c2lnbmVkIGludCBudW1fcHJvY3MgPSAxOw0KPiA+DQo+ID4gKy8qDQo+ID4gKyAqIEluIGNhc2Ug
b2YgR1BVIG1lbW9yeSBleHRlcm5hbCBtYnVmcyB1c2UsIGZvciBzaW1wbGljaXR5LA0KPiA+ICsg
KiB0aGUgZmlyc3QgR1BVIGRldmljZSBpbiB0aGUgbGlzdC4NCj4gPiArICovDQo+ID4gK2ludCBn
cHVfaWQgPSAwOw0KPiBJdCBpcyBhc3NpZ25lZCB3aXRoIHplcm8gYW5kIG5ldmVyIGNoYW5nZXMu
IFN1cHBvcnQgdGhlIGZpcnN0IEdQVSBvbmx5Pw0KPiBUaGlzIGxpbWl0YXRpb24gc2hvdWxkIGJl
IG1lbnRpb25lZCBpbiBkb2N1bWVudGF0aW9uLg0KPiANCj4gPiArDQo+ID4gIHN0YXRpYyB2b2lk
DQo+ID4gIGV0aF9yeF9tZXRhZGF0YV9uZWdvdGlhdGVfbXAodWludDE2X3QgcG9ydF9pZCkgIHsg
QEAgLTExMDMsNiArMTExNSw3OQ0KPiA+IEBAIHNldHVwX2V4dGJ1Zih1aW50MzJfdCBuYl9tYnVm
cywgdWludDE2X3QgbWJ1Zl9zeiwgdW5zaWduZWQgaW50DQo+ID4gc29ja2V0X2lkLA0KPiA+ICAJ
cmV0dXJuIGV4dF9udW07DQo+ID4gIH0NCj4gPg0KPiA+ICtzdGF0aWMgc3RydWN0IHJ0ZV9tZW1w
b29sICoNCj4gPiArZ3B1X21idWZfcG9vbF9jcmVhdGUodWludDE2X3QgbWJ1Zl9zZWdfc2l6ZSwg
dW5zaWduZWQgaW50IG5iX21idWYsDQo+ID4gKwkJCXVuc2lnbmVkIGludCBzb2NrZXRfaWQsIHVp
bnQxNl90IHBvcnRfaWQsDQo+ID4gKwkJCWludCBncHVfaWQsIHVpbnRwdHJfdCAqIG1wX2FkZHIp
DQo+ID4gK3sNCj4gPiArCWludCByZXQgPSAwOw0KPiA+ICsJY2hhciBwb29sX25hbWVbUlRFX01F
TVBPT0xfTkFNRVNJWkVdOw0KPiA+ICsJc3RydWN0IHJ0ZV9ldGhfZGV2X2luZm8gZGV2X2luZm87
DQo+ID4gKwlzdHJ1Y3QgcnRlX21lbXBvb2wgKnJ0ZV9tcCA9IE5VTEw7DQo+ID4gKwlzdHJ1Y3Qg
cnRlX3BrdG1idWZfZXh0bWVtIGdwdV9tZW07DQo+ID4gKwlzdHJ1Y3QgcnRlX2dwdV9pbmZvIGdp
bmZvOw0KPiA+ICsJdWludDhfdCBncHVfcGFnZV9zaGlmdCA9IDE2Ow0KPiA+ICsJdWludDMyX3Qg
Z3B1X3BhZ2Vfc2l6ZSA9ICgxVUwgPDwgZ3B1X3BhZ2Vfc2hpZnQpOw0KPiA+ICsNCj4gPiArCXJl
dCA9IGV0aF9kZXZfaW5mb19nZXRfcHJpbnRfZXJyKHBvcnRfaWQsICZkZXZfaW5mbyk7DQo+ID4g
KwlpZiAocmV0ICE9IDApDQo+ID4gKwkJcnRlX2V4aXQoRVhJVF9GQUlMVVJFLA0KPiA+ICsJCQki
RmFpbGVkIHRvIGdldCBkZXZpY2UgaW5mbyBmb3IgcG9ydCAlZFxuIiwNCj4gPiArCQkJcG9ydF9p
ZCk7DQo+ID4gKw0KPiA+ICsJbWJ1Zl9wb29sbmFtZV9idWlsZChzb2NrZXRfaWQsIHBvb2xfbmFt
ZSwgc2l6ZW9mKHBvb2xfbmFtZSksDQo+ID4gcG9ydF9pZCwgTUJVRl9NRU1fR1BVKTsNCj4gPiAr
CWlmICghaXNfcHJvY19wcmltYXJ5KCkpIHsNCj4gPiArCQlydGVfbXAgPSBydGVfbWVtcG9vbF9s
b29rdXAocG9vbF9uYW1lKTsNCj4gPiArCQlpZiAocnRlX21wID09IE5VTEwpDQo+ID4gKwkJCXJ0
ZV9leGl0KEVYSVRfRkFJTFVSRSwNCj4gPiArCQkJCSJHZXQgbWJ1ZiBwb29sIGZvciBzb2NrZXQg
JXUgZmFpbGVkOiAlc1xuIiwNCj4gPiArCQkJCXNvY2tldF9pZCwgcnRlX3N0cmVycm9yKHJ0ZV9l
cnJubykpOw0KPiA+ICsJCXJldHVybiBydGVfbXA7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYg
KHJ0ZV9ncHVfaW5mb19nZXQoZ3B1X2lkLCAmZ2luZm8pKQ0KPiA+ICsJCXJ0ZV9leGl0KEVYSVRf
RkFJTFVSRSwgIkNhbid0IHJldHJpZXZlIGluZm8gYWJvdXQgR1BVICVkIC0NCj4gPiBieWVcbiIs
DQo+ID4gK2dwdV9pZCk7DQo+ID4gKw0KPiA+ICsJVEVTVFBNRF9MT0coSU5GTywNCj4gPiArCQki
Y3JlYXRlIGEgbmV3IG1idWYgcG9vbCA8JXM+OiBuPSV1LCBzaXplPSV1LCBzb2NrZXQ9JXUNCj4g
PiBHUFUgZGV2aWNlPSVzXG4iLA0KPiA+ICsJCXBvb2xfbmFtZSwgbmJfbWJ1ZiwgbWJ1Zl9zZWdf
c2l6ZSwgc29ja2V0X2lkLCBnaW5mby5uYW1lKTsNCj4gPiArDQo+ID4gKwkvKiBDcmVhdGUgYW4g
ZXh0ZXJuYWwgbWVtb3J5IG1lbXBvb2wgdXNpbmcgbWVtb3J5IGFsbG9jYXRlZCBvbg0KPiA+IHRo
ZQ0KPiA+ICtHUFUuICovDQo+ID4gKw0KPiA+ICsJZ3B1X21lbS5lbHRfc2l6ZSA9IFJURV9NQlVG
X0RFRkFVTFRfQlVGX1NJWkU7DQo+ID4gKwlncHVfbWVtLmJ1Zl9sZW4gPSBSVEVfQUxJR05fQ0VJ
TChuYl9tYnVmICogZ3B1X21lbS5lbHRfc2l6ZSwNCj4gPiBncHVfcGFnZV9zaXplKTsNCj4gPiAr
CWdwdV9tZW0uYnVmX2lvdmEgPSBSVEVfQkFEX0lPVkE7DQo+ID4gKw0KPiA+ICsJZ3B1X21lbS5i
dWZfcHRyID0gcnRlX2dwdV9tZW1fYWxsb2MoZ3B1X2lkLCBncHVfbWVtLmJ1Zl9sZW4pOw0KPiA+
ICsJaWYgKGdwdV9tZW0uYnVmX3B0ciA9PSBOVUxMKQ0KPiA+ICsJCXJ0ZV9leGl0KEVYSVRfRkFJ
TFVSRSwgIkNvdWxkIG5vdCBhbGxvY2F0ZSBHUFUgZGV2aWNlDQo+ID4gbWVtb3J5XG4iKTsNCj4g
PiArDQo+ID4gKwlyZXQgPSBydGVfZXh0bWVtX3JlZ2lzdGVyKGdwdV9tZW0uYnVmX3B0ciwgZ3B1
X21lbS5idWZfbGVuLA0KPiA+IE5VTEwsIGdwdV9tZW0uYnVmX2lvdmEsIGdwdV9wYWdlX3NpemUp
Ow0KPiA+ICsJaWYgKHJldCkNCj4gPiArCQlydGVfZXhpdChFWElUX0ZBSUxVUkUsICJVbmFibGUg
dG8gcmVnaXN0ZXIgYWRkciAweCVwLCByZXQNCj4gPiAlZFxuIiwNCj4gPiArZ3B1X21lbS5idWZf
cHRyLCByZXQpOw0KPiA+ICsNCj4gPiArCXVpbnQxNl90IHBpZCA9IDA7DQo+ID4gKw0KPiA+ICsJ
UlRFX0VUSF9GT1JFQUNIX0RFVihwaWQpDQo+ID4gKwl7DQo+ID4gKwkJcmV0ID0gcnRlX2Rldl9k
bWFfbWFwKGRldl9pbmZvLmRldmljZSwgZ3B1X21lbS5idWZfcHRyLA0KPiA+ICsJCQkJCSAgZ3B1
X21lbS5idWZfaW92YSwNCj4gPiBncHVfbWVtLmJ1Zl9sZW4pOw0KPiA+ICsJCWlmIChyZXQpIHsN
Cj4gPiArCQkJcnRlX2V4aXQoRVhJVF9GQUlMVVJFLCAiVW5hYmxlIHRvIERNQSBtYXAgYWRkcg0K
PiA+IDB4JXAgZm9yIGRldmljZSAlc1xuIiwNCj4gPiArCQkJCQkgZ3B1X21lbS5idWZfcHRyLCBk
ZXZfaW5mby5kZXZpY2UtDQo+ID4gPm5hbWUpOw0KPiA+ICsJCX0NCj4gPiArCX0NCj4gPiArDQo+
ID4gKwlydGVfbXAgPSBydGVfcGt0bWJ1Zl9wb29sX2NyZWF0ZV9leHRidWYocG9vbF9uYW1lLCBu
Yl9tYnVmLA0KPiA+IG1iX21lbXBvb2xfY2FjaGUsIDAsIG1idWZfc2VnX3NpemUsIHNvY2tldF9p
ZCwgJmdwdV9tZW0sIDEpOw0KPiA+ICsJaWYgKHJ0ZV9tcCA9PSBOVUxMKSB7DQo+ID4gKwkJcnRl
X2V4aXQoRVhJVF9GQUlMVVJFLCAiQ3JlYXRpb24gb2YgR1BVIG1lbXBvb2wgPCVzPg0KPiA+IGZh
aWxlZFxuIiwgcG9vbF9uYW1lKTsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwkqbXBfYWRkciA9ICh1
aW50cHRyX3QpIGdwdV9tZW0uYnVmX3B0cjsNCj4gPiArDQo+ID4gKwlyZXR1cm4gcnRlX21wOw0K
PiA+ICt9DQo+ID4gKw0KPiA+ICAvKg0KPiA+ICAgKiBDb25maWd1cmF0aW9uIGluaXRpYWxpc2F0
aW9uIGRvbmUgb25jZSBhdCBpbml0IHRpbWUuDQo+ID4gICAqLw0KPiA+IEBAIC0xMTE3LDcgKzEy
MDIsNyBAQCBtYnVmX3Bvb2xfY3JlYXRlKHVpbnQxNl90IG1idWZfc2VnX3NpemUsDQo+ID4gdW5z
aWduZWQgbmJfbWJ1ZiwNCj4gPg0KPiA+ICAJbWJfc2l6ZSA9IHNpemVvZihzdHJ1Y3QgcnRlX21i
dWYpICsgbWJ1Zl9zZWdfc2l6ZTsgICNlbmRpZg0KPiA+IC0JbWJ1Zl9wb29sbmFtZV9idWlsZChz
b2NrZXRfaWQsIHBvb2xfbmFtZSwgc2l6ZW9mKHBvb2xfbmFtZSksDQo+ID4gc2l6ZV9pZHgpOw0K
PiA+ICsJbWJ1Zl9wb29sbmFtZV9idWlsZChzb2NrZXRfaWQsIHBvb2xfbmFtZSwgc2l6ZW9mKHBv
b2xfbmFtZSksDQo+ID4gc2l6ZV9pZHgsDQo+ID4gK01CVUZfTUVNX0NQVSk7DQo+ID4gIAlpZiAo
IWlzX3Byb2NfcHJpbWFyeSgpKSB7DQo+ID4gIAkJcnRlX21wID0gcnRlX21lbXBvb2xfbG9va3Vw
KHBvb2xfbmFtZSk7DQo+ID4gIAkJaWYgKHJ0ZV9tcCA9PSBOVUxMKQ0KPiA+IEBAIC0xNzAwLDE5
ICsxNzg1LDQyIEBAIGluaXRfY29uZmlnKHZvaWQpDQo+ID4NCj4gPiAgCQlmb3IgKGkgPSAwOyBp
IDwgbnVtX3NvY2tldHM7IGkrKykNCj4gPiAgCQkJZm9yIChqID0gMDsgaiA8IG1idWZfZGF0YV9z
aXplX247IGorKykNCj4gPiAtCQkJCW1lbXBvb2xzW2kgKiBNQVhfU0VHU19CVUZGRVJfU1BMSVQg
KyBqXQ0KPiA+ID0NCj4gPiAtCQkJCQltYnVmX3Bvb2xfY3JlYXRlKG1idWZfZGF0YV9zaXplW2pd
LA0KPiA+IC0JCQkJCQkJICBuYl9tYnVmX3Blcl9wb29sLA0KPiA+IC0JCQkJCQkJICBzb2NrZXRf
aWRzW2ldLCBqKTsNCj4gPiArCQkJew0KPiA+ICsJCQkJaWYgKG1idWZfbWVtX3R5cGVzW2pdID09
IE1CVUZfTUVNX0dQVSkNCj4gPiB7DQo+ID4gKwkJCQkJaWYgKHJ0ZV9ncHVfY291bnRfYXZhaWwo
KSA9PSAwKQ0KPiA+ICsJCQkJCQlydGVfZXhpdChFWElUX0ZBSUxVUkUsICJObw0KPiA+IEdQVSBk
ZXZpY2UgYXZhaWxhYmxlLlxuIik7DQo+ID4gKw0KPiA+ICsJCQkJCW1lbXBvb2xzW2kgKg0KPiA+
IE1BWF9TRUdTX0JVRkZFUl9TUExJVCArIGpdID0NCj4gPiArDQo+ID4gCWdwdV9tYnVmX3Bvb2xf
Y3JlYXRlKG1idWZfZGF0YV9zaXplW2pdLA0KPiBXaGF0IGFib3V0IEdQVS9DUFUgYWRoZXJlbmNl
ID8gRG8gd2UgY3JlYXRlIG9uZSBHUFUgcG9vbCBwZXIgQ1BVIHNvY2tldD8NCj4gRGlzcmVnYXJk
aW5nICBoYXJkd2FyZSB0b3BvbG9neSBhdCBhbGw/DQo+IFdlIGNhbiBtaXRpZ2F0ZSB0aGUgaXNz
dWUgYnkgIi0tc29ja2V0LW1lbS8tLXNvY2tldC1udW0iIHBhcmFtZXRlciB0aG91Z2guDQo+IA0K
PiA+ICsNCj4gPiAJCSBuYl9tYnVmX3Blcl9wb29sLA0KPiA+ICsNCj4gPiAJCSBzb2NrZXRfaWRz
W2ldLCBqLCBncHVfaWQsDQo+ID4gKw0KPiA+IAkJICYobWVtcG9vbHNfZXh0X3B0cltqXSkpOw0K
PiA+ICsJCQkJfSBlbHNlIHsNCj4gPiArCQkJCQltZW1wb29sc1tpICoNCj4gPiBNQVhfU0VHU19C
VUZGRVJfU1BMSVQgKyBqXSA9DQo+ID4gKw0KPiA+IAltYnVmX3Bvb2xfY3JlYXRlKG1idWZfZGF0
YV9zaXplW2pdLA0KPiA+ICsNCj4gPiAJbmJfbWJ1Zl9wZXJfcG9vbCwNCj4gPiArCQkJCQkJCQlz
b2NrZXRfaWRzW2ldLA0KPiA+IGopOw0KPiA+ICsJCQkJfQ0KPiA+ICsJCQl9DQo+ID4gIAl9IGVs
c2Ugew0KPiA+ICAJCXVpbnQ4X3QgaTsNCj4gPg0KPiA+ICAJCWZvciAoaSA9IDA7IGkgPCBtYnVm
X2RhdGFfc2l6ZV9uOyBpKyspDQo+ID4gLQkJCW1lbXBvb2xzW2ldID0gbWJ1Zl9wb29sX2NyZWF0
ZQ0KPiA+IC0JCQkJCShtYnVmX2RhdGFfc2l6ZVtpXSwNCj4gPiAtCQkJCQkgbmJfbWJ1Zl9wZXJf
cG9vbCwNCj4gPiAtCQkJCQkgc29ja2V0X251bSA9PSBVTUFfTk9fQ09ORklHID8NCj4gPiAtCQkJ
CQkgMCA6IHNvY2tldF9udW0sIGkpOw0KPiA+ICsJCXsNCj4gPiArCQkJaWYgKG1idWZfbWVtX3R5
cGVzW2ldID09IE1CVUZfTUVNX0dQVSkgew0KPiA+ICsJCQkJbWVtcG9vbHNbaV0gPQ0KPiA+IGdw
dV9tYnVmX3Bvb2xfY3JlYXRlKG1idWZfZGF0YV9zaXplW2ldLA0KPiA+ICsNCj4gPiAJCQkgICBu
Yl9tYnVmX3Blcl9wb29sLA0KPiA+ICsNCj4gPiAJCQkgICBzb2NrZXRfbnVtID09IFVNQV9OT19D
T05GSUcgPyAwIDogc29ja2V0X251bSwNCj4gPiArDQo+ID4gCQkJICAgaSwgZ3B1X2lkLA0KPiA+
ICsNCj4gPiAJCQkgICAmKG1lbXBvb2xzX2V4dF9wdHJbaV0pKTsNCj4gPiArCQkJfSBlbHNlIHsN
Cj4gPiArCQkJCW1lbXBvb2xzW2ldID0NCj4gPiBtYnVmX3Bvb2xfY3JlYXRlKG1idWZfZGF0YV9z
aXplW2ldLA0KPiA+ICsJCQkJCQkJbmJfbWJ1Zl9wZXJfcG9vbCwNCj4gPiArCQkJCQkJCXNvY2tl
dF9udW0gPT0NCj4gPiBVTUFfTk9fQ09ORklHID8NCj4gPiArCQkJCQkJCTAgOiBzb2NrZXRfbnVt
LCBpKTsNCj4gPiArCQkJfQ0KPiA+ICsJCX0NCj4gPiArDQo+ID4gIAl9DQo+ID4NCj4gPiAgCWlu
aXRfcG9ydF9jb25maWcoKTsNCj4gPiBAQCAtMzQxNSw4ICszNTIzLDExIEBAIHBtZF90ZXN0X2V4
aXQodm9pZCkNCj4gPiAgCQl9DQo+ID4gIAl9DQo+ID4gIAlmb3IgKGkgPSAwIDsgaSA8IFJURV9E
SU0obWVtcG9vbHMpIDsgaSsrKSB7DQo+ID4gLQkJaWYgKG1lbXBvb2xzW2ldKQ0KPiA+ICsJCWlm
IChtZW1wb29sc1tpXSkgew0KPiA+ICAJCQltZW1wb29sX2ZyZWVfbXAobWVtcG9vbHNbaV0pOw0K
PiA+ICsJCQlpZiAobWJ1Zl9tZW1fdHlwZXNbaV0gPT0gTUJVRl9NRU1fR1BVKQ0KPiA+ICsJCQkJ
cnRlX2dwdV9tZW1fZnJlZShncHVfaWQsICh2b2lkDQo+ID4gKiltZW1wb29sc19leHRfcHRyW2ld
KTsNCj4gPiArCQl9DQo+ID4gIAl9DQo+ID4gIAlmcmVlKHhzdGF0c19kaXNwbGF5KTsNCj4gPg0K
PiA+IGRpZmYgLS1naXQgYS9hcHAvdGVzdC1wbWQvdGVzdHBtZC5oIGIvYXBwL3Rlc3QtcG1kL3Rl
c3RwbWQuaCBpbmRleA0KPiA+IDY2OWNlMWU4N2QuLjk5MTkwNDQzNzIgMTAwNjQ0DQo+ID4gLS0t
IGEvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuaA0KPiA+ICsrKyBiL2FwcC90ZXN0LXBtZC90ZXN0cG1k
LmgNCj4gPiBAQCAtMTIsNiArMTIsNyBAQA0KPiA+ICAjaW5jbHVkZSA8cnRlX2dyby5oPg0KPiA+
ICAjaW5jbHVkZSA8cnRlX2dzby5oPg0KPiA+ICAjaW5jbHVkZSA8cnRlX29zX3NoaW0uaD4NCj4g
PiArI2luY2x1ZGUgPHJ0ZV9ncHVkZXYuaD4NCj4gPiAgI2luY2x1ZGUgPGNtZGxpbmUuaD4NCj4g
PiAgI2luY2x1ZGUgPHN5cy9xdWV1ZS5oPg0KPiA+ICAjaWZkZWYgUlRFX0hBU19KQU5TU09ODQo+
ID4gQEAgLTQ3NCw2ICs0NzUsMTEgQEAgZXh0ZXJuIHVpbnQ4X3QgZGNiX2NvbmZpZzsgIGV4dGVy
biB1aW50MzJfdA0KPiA+IG1idWZfZGF0YV9zaXplX247ICBleHRlcm4gdWludDE2X3QNCj4gPiBt
YnVmX2RhdGFfc2l6ZVtNQVhfU0VHU19CVUZGRVJfU1BMSVRdOw0KPiA+ICAvKio8IE1idWYgZGF0
YSBzcGFjZSBzaXplLiAqLw0KPiA+ICtlbnVtIG1idWZfbWVtX3R5cGUgew0KPiA+ICsJTUJVRl9N
RU1fQ1BVLA0KPiA+ICsJTUJVRl9NRU1fR1BVDQo+ID4gK307DQo+ID4gK2V4dGVybiBlbnVtIG1i
dWZfbWVtX3R5cGUNCj4gPiBtYnVmX21lbV90eXBlc1tNQVhfU0VHU19CVUZGRVJfU1BMSVRdOw0K
PiA+ICBleHRlcm4gdWludDMyX3QgcGFyYW1fdG90YWxfbnVtX21idWZzOw0KPiA+DQo+ID4gIGV4
dGVybiB1aW50MTZfdCBzdGF0c19wZXJpb2Q7DQo+ID4gQEAgLTcxNywxNCArNzIzLDE2IEBAIGN1
cnJlbnRfZndkX2xjb3JlKHZvaWQpDQo+ID4gIC8qIE1idWYgUG9vbHMgKi8NCj4gPiAgc3RhdGlj
IGlubGluZSB2b2lkDQo+ID4gIG1idWZfcG9vbG5hbWVfYnVpbGQodW5zaWduZWQgaW50IHNvY2tf
aWQsIGNoYXIgKm1wX25hbWUsDQo+ID4gLQkJICAgIGludCBuYW1lX3NpemUsIHVpbnQxNl90IGlk
eCkNCj4gPiArCQkgICAgaW50IG5hbWVfc2l6ZSwgdWludDE2X3QgaWR4LCBlbnVtIG1idWZfbWVt
X3R5cGUNCj4gPiBtZW1fdHlwZSkNCj4gPiAgew0KPiA+ICsJY29uc3QgY2hhciAqc3VmZml4ID0g
bWVtX3R5cGUgPT0gTUJVRl9NRU1fR1BVID8gIl9ncHUiIDogIiI7DQo+ID4gKw0KPiA+ICAJaWYg
KCFpZHgpDQo+ID4gIAkJc25wcmludGYobXBfbmFtZSwgbmFtZV9zaXplLA0KPiA+IC0JCQkgTUJV
Rl9QT09MX05BTUVfUEZYICJfJXUiLCBzb2NrX2lkKTsNCj4gPiArCQkJIE1CVUZfUE9PTF9OQU1F
X1BGWCAiXyV1JXMiLCBzb2NrX2lkLCBzdWZmaXgpOw0KPiA+ICAJZWxzZQ0KPiA+ICAJCXNucHJp
bnRmKG1wX25hbWUsIG5hbWVfc2l6ZSwNCj4gPiAtCQkJIE1CVUZfUE9PTF9OQU1FX1BGWCAiXyVo
dV8laHUiLA0KPiA+ICh1aW50MTZfdClzb2NrX2lkLCBpZHgpOw0KPiA+ICsJCQkgTUJVRl9QT09M
X05BTUVfUEZYICJfJWh1XyVodSVzIiwNCj4gPiAodWludDE2X3Qpc29ja19pZCwgaWR4LCBzdWZm
aXgpOw0KPiA+ICB9DQo+ID4NCj4gPiAgc3RhdGljIGlubGluZSBzdHJ1Y3QgcnRlX21lbXBvb2wg
Kg0KPiA+IEBAIC03MzIsNyArNzQwLDcgQEAgbWJ1Zl9wb29sX2ZpbmQodW5zaWduZWQgaW50IHNv
Y2tfaWQsIHVpbnQxNl90IGlkeCkgIHsNCj4gPiAgCWNoYXIgcG9vbF9uYW1lW1JURV9NRU1QT09M
X05BTUVTSVpFXTsNCj4gPg0KPiA+IC0JbWJ1Zl9wb29sbmFtZV9idWlsZChzb2NrX2lkLCBwb29s
X25hbWUsIHNpemVvZihwb29sX25hbWUpLCBpZHgpOw0KPiA+ICsJbWJ1Zl9wb29sbmFtZV9idWls
ZChzb2NrX2lkLCBwb29sX25hbWUsIHNpemVvZihwb29sX25hbWUpLCBpZHgsDQo+ID4gK21idWZf
bWVtX3R5cGVzW2lkeF0pOw0KPiA+ICAJcmV0dXJuIHJ0ZV9tZW1wb29sX2xvb2t1cCgoY29uc3Qg
Y2hhciAqKXBvb2xfbmFtZSk7ICB9DQo+ID4NCj4gPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy90
ZXN0cG1kX2FwcF91Zy9ydW5fYXBwLnJzdA0KPiA+IGIvZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91
Zy9ydW5fYXBwLnJzdA0KPiA+IGluZGV4IDMwZWRlZjA3ZWEuLmVkZTdiNzlhYmIgMTAwNjQ0DQo+
ID4gLS0tIGEvZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy9ydW5fYXBwLnJzdA0KPiA+ICsrKyBi
L2RvYy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvcnVuX2FwcC5yc3QNCj4gPiBAQCAtMTE5LDYgKzEx
OSw5IEBAIFRoZSBjb21tYW5kIGxpbmUgb3B0aW9ucyBhcmU6DQo+ID4gICAgICBUaGUgZGVmYXVs
dCB2YWx1ZSBpcyAyMDQ4LiBJZiBtdWx0aXBsZSBtYnVmLXNpemUgdmFsdWVzIGFyZSBzcGVjaWZp
ZWQgdGhlDQo+ID4gICAgICBleHRyYSBtZW1vcnkgcG9vbHMgd2lsbCBiZSBjcmVhdGVkIGZvciBh
bGxvY2F0aW5nIG1idWZzIHRvIHJlY2VpdmUgcGFja2V0cw0KPiA+ICAgICAgd2l0aCBidWZmZXIg
c3BsaXR0aW5nIGZlYXR1cmVzLg0KPiA+ICsgICAgUHJvdmlkaW5nIG1idWYgc2l6ZSB3aXRoIGEg
J2cnIHN1ZmZpeCAoZS5nLiBgYC0tbWJ1Zi1zaXplPTIwNDhnYGApLA0KPiA+ICsgICAgd2lsbCBj
YXVzZSB0aGUgbWVtcG9vbCB0byBiZSBjcmVhdGVkIG9uIGEgR1BVIG1lbW9yeSBhcmVhIGFsbG9j
YXRlZC4NCj4gPiArICAgIFRoaXMgb3B0aW9uIGlzIGN1cnJlbnRseSBsaW1pdGVkIHRvIGlvZndk
IGVuZ2luZSB3aXRoIHRoZSBmaXJzdCBHUFUuDQo+IE1tbSwgaWYgd2UgaGF2ZSBtdWx0aXBsZSBH
UFVzIC0gd2UgaGF2ZSBubyB3YXkgdG8gc3BlY2lmeSBvbiB3aGljaCBvbmUgd2Ugc2hvdWxkIGFs
bG9jYXRlIHRoZSBwb29sLg0KPiBTeW50YXggaXMgbm90IGNvbXBsZXRl4pi5LiBQb3NzaWJsZSB3
ZSBzaG91bGQgc3BlY2lmeSBHUFUgcG9ydCBpZCBhZnRlciB0aGUgc3VmZml4ID8gTGlrZSAyMDQ4
ZzIgPw0KPiBJZiBwb3J0IGluZGV4IGlzIG9taXR0ZWQgd2Ugc2hvdWxkIGNvbnNpZGVyIHdlIGhh
dmUgdGhlIG9ubHkgR1BVIGFuZCBjaGVjayB0aGlzLg0KDQpEbyB3ZSBuZWVkIHRvIG92ZXJsb2Fk
IC0tbWJ1Zi1zaXplIHBhcmFtZXRlciBoZXJlPw0KV2h5IG5vdCBhZGQgJ2dwdScgb3B0aW9uIHRv
IC0tbXAtYWxsb2MgcGFyYW1ldGVyPyANCg0K