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 4E39D45B09;
	Fri, 11 Oct 2024 00:59:06 +0200 (CEST)
Received: from mails.dpdk.org (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id D6460402E3;
	Fri, 11 Oct 2024 00:59:05 +0200 (CEST)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com
 [185.176.79.56]) by mails.dpdk.org (Postfix) with ESMTP id 21465402D3
 for <dev@dpdk.org>; Fri, 11 Oct 2024 00:59:04 +0200 (CEST)
Received: from mail.maildlp.com (unknown [172.18.186.216])
 by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4XPlSf1Cr6z6L70g;
 Fri, 11 Oct 2024 06:54:42 +0800 (CST)
Received: from frapeml100005.china.huawei.com (unknown [7.182.85.132])
 by mail.maildlp.com (Postfix) with ESMTPS id 8D7F41400D8;
 Fri, 11 Oct 2024 06:59:03 +0800 (CST)
Received: from frapeml500007.china.huawei.com (7.182.85.172) by
 frapeml100005.china.huawei.com (7.182.85.132) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id
 15.1.2507.39; Fri, 11 Oct 2024 00:58:20 +0200
Received: from frapeml500007.china.huawei.com ([7.182.85.172]) by
 frapeml500007.china.huawei.com ([7.182.85.172]) with mapi id 15.01.2507.039;
 Fri, 11 Oct 2024 00:58:20 +0200
From: Konstantin Ananyev <konstantin.ananyev@huawei.com>
To: Ferruh Yigit <ferruh.yigit@amd.com>, Dariusz Sosnowski
 <dsosnowski@nvidia.com>, "NBU-Contact-Thomas Monjalon (EXTERNAL)"
 <thomas@monjalon.net>, Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
CC: "dev@dpdk.org" <dev@dpdk.org>, Bruce Richardson
 <bruce.richardson@intel.com>
Subject: RE: [RFC 0/4] ethdev: rework config restore
Thread-Topic: [RFC 0/4] ethdev: rework config restore
Thread-Index: AQHbCaxnvJzcot6EwEidqZ9OS9qkZLJvWnWAgAeTsoCABDL0EIAAwm0AgAFT2bCAAGMBgIAA/pwAgAB0wwCAANexAIAAC/eAgAA7NQCAAAyNgIAAgrRQ
Date: Thu, 10 Oct 2024 22:58:20 +0000
Message-ID: <0d526176545845c49d67a30855202f2f@huawei.com>
References: <20240918092201.33772-1-dsosnowski@nvidia.com>
 <13747524-f073-4749-adbd-be1c7681dbcd@amd.com>
 <CH3PR12MB84606439C098D67CFDE0E634A4722@CH3PR12MB8460.namprd12.prod.outlook.com>
 <b02b69a941a9492cbfa65430ed3d64e9@huawei.com>
 <fe6de95a-8e76-4c4a-8b66-0d021a1d3e4e@amd.com>
 <3833d9270fba43af9d17765056911940@huawei.com>
 <8a6f760c-8bc7-46cd-92e0-a8af66114e2d@amd.com>
 <CH3PR12MB8460918E2D36BE4B4CF5B731A47F2@CH3PR12MB8460.namprd12.prod.outlook.com>
 <5ef19db7-f6fe-4a48-8497-e17b33a262b5@amd.com>
 <CH3PR12MB8460ED019BDDFF59B8DE8592A4782@CH3PR12MB8460.namprd12.prod.outlook.com>
 <a74961ca-964d-4452-afaf-3979df104966@amd.com>
 <CH3PR12MB846036CA3DB62650E01B9D42A4782@CH3PR12MB8460.namprd12.prod.outlook.com>
 <6e2487af-5bf5-4a07-bc9d-2e6f1a1def19@amd.com>
In-Reply-To: <6e2487af-5bf5-4a07-bc9d-2e6f1a1def19@amd.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.195.32.57]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
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

DQoNCmNvbmZpZyByZXN0b3JlDQo+ID4+DQo+ID4+IEV4dGVybmFsIGVtYWlsOiBVc2UgY2F1dGlv
biBvcGVuaW5nIGxpbmtzIG9yIGF0dGFjaG1lbnRzDQo+ID4+DQo+ID4+DQo+ID4+IE9uIDEwLzEw
LzIwMjQgMTowOCBQTSwgRGFyaXVzeiBTb3Nub3dza2kgd3JvdGU6DQo+ID4+Pj4gLS0tLS1Pcmln
aW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4+PiBGcm9tOiBGZXJydWggWWlnaXQgPGZlcnJ1aC55aWdp
dEBhbWQuY29tPg0KPiA+Pj4+IFNlbnQ6IFRodXJzZGF5LCBPY3RvYmVyIDEwLCAyMDI0IDAxOjE3
DQo+ID4+Pj4gVG86IERhcml1c3ogU29zbm93c2tpIDxkc29zbm93c2tpQG52aWRpYS5jb20+OyBL
b25zdGFudGluIEFuYW55ZXYNCj4gPj4+PiA8a29uc3RhbnRpbi5hbmFueWV2QGh1YXdlaS5jb20+
OyBOQlUtQ29udGFjdC1UaG9tYXMgTW9uamFsb24NCj4gPj4+PiAoRVhURVJOQUwpIDx0aG9tYXNA
bW9uamFsb24ubmV0PjsgQW5kcmV3IFJ5YmNoZW5rbw0KPiA+Pj4+IDxhbmRyZXcucnliY2hlbmtv
QG9rdGV0bGFicy5ydT4NCj4gPj4+PiBDYzogZGV2QGRwZGsub3JnOyBCcnVjZSBSaWNoYXJkc29u
IDxicnVjZS5yaWNoYXJkc29uQGludGVsLmNvbT4NCj4gPj4+PiBTdWJqZWN0OiBSZTogW1JGQyAw
LzRdIGV0aGRldjogcmV3b3JrIGNvbmZpZyByZXN0b3JlDQo+ID4+Pj4NCj4gPj4+PiBFeHRlcm5h
bCBlbWFpbDogVXNlIGNhdXRpb24gb3BlbmluZyBsaW5rcyBvciBhdHRhY2htZW50cw0KPiA+Pj4+
DQo+ID4+Pj4NCj4gPj4+PiBPbiAxMC85LzIwMjQgNToxOCBQTSwgRGFyaXVzeiBTb3Nub3dza2kg
d3JvdGU6DQo+ID4+Pj4+PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiA+Pj4+Pj4gRnJv
bTogRmVycnVoIFlpZ2l0IDxmZXJydWgueWlnaXRAYW1kLmNvbT4NCj4gPj4+Pj4+IFNlbnQ6IFdl
ZG5lc2RheSwgT2N0b2JlciA5LCAyMDI0IDAzOjA4DQo+ID4+Pj4+PiBUbzogS29uc3RhbnRpbiBB
bmFueWV2IDxrb25zdGFudGluLmFuYW55ZXZAaHVhd2VpLmNvbT47IERhcml1c3oNCj4gPj4+Pj4+
IFNvc25vd3NraSA8ZHNvc25vd3NraUBudmlkaWEuY29tPjsgTkJVLUNvbnRhY3QtVGhvbWFzIE1v
bmphbG9uDQo+ID4+Pj4+PiAoRVhURVJOQUwpIDx0aG9tYXNAbW9uamFsb24ubmV0PjsgQW5kcmV3
IFJ5YmNoZW5rbw0KPiA+Pj4+Pj4gPGFuZHJldy5yeWJjaGVua29Ab2t0ZXRsYWJzLnJ1Pg0KPiA+
Pj4+Pj4gQ2M6IGRldkBkcGRrLm9yZzsgQnJ1Y2UgUmljaGFyZHNvbiA8YnJ1Y2UucmljaGFyZHNv
bkBpbnRlbC5jb20+DQo+ID4+Pj4+PiBTdWJqZWN0OiBSZTogW1JGQyAwLzRdIGV0aGRldjogcmV3
b3JrIGNvbmZpZyByZXN0b3JlDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gRXh0ZXJuYWwgZW1haWw6IFVz
ZSBjYXV0aW9uIG9wZW5pbmcgbGlua3Mgb3IgYXR0YWNobWVudHMNCj4gPj4+Pj4+DQo+ID4+Pj4+
Pg0KPiA+Pj4+Pj4gT24gMTAvOC8yMDI0IDY6MjEgUE0sIEtvbnN0YW50aW4gQW5hbnlldiB3cm90
ZToNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBXZSBoYXZlIGJlZW4gd29y
a2luZyBvbiBvcHRpbWl6aW5nIHRoZSBsYXRlbmN5IG9mIGNhbGxzIHRvDQo+ID4+Pj4+Pj4+Pj4+
PiBydGVfZXRoX2Rldl9zdGFydCgpLCBvbiBwb3J0cyBzcGF3bmVkIGJ5IG1seDUgUE1ELiBNb3N0
IG9mDQo+ID4+Pj4+Pj4+Pj4+PiB0aGUgd29yayByZXF1aXJlcyBjaGFuZ2VzIGluIHRoZSBpbXBs
ZW1lbnRhdGlvbiBvZg0KPiA+Pj4+Pj4+Pj4+Pj4gLmRldl9zdGFydCgpIFBNRCBjYWxsYmFjaywg
YnV0IEkgYWxzbyB3YW50ZWQgdG8gc3RhcnQgYQ0KPiA+Pj4+Pj4+Pj4+Pj4gZGlzY3Vzc2lvbiBy
ZWdhcmRpbmcgY29uZmlndXJhdGlvbiByZXN0b3JlLg0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+
Pj4+Pj4+IHJ0ZV9ldGhfZGV2X3N0YXJ0KCkgZG9lcyBhIGZldyB0aGluZ3Mgb24gdG9wIG9mIGNh
bGxpbmcNCj4gPj4+Pj4+Pj4+Pj4+IC5kZXZfc3RhcnQoKQ0KPiA+Pj4+Pj4gY2FsbGJhY2s6DQo+
ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gLSBCZWZvcmUgY2FsbGluZyBpdDoNCj4gPj4+
Pj4+Pj4+Pj4+ICAgICAtIGV0aF9kZXZfbWFjX3Jlc3RvcmUoKSAtIGlmIGRldmljZSBzdXBwb3J0
cw0KPiA+Pj4+Pj4+Pj4+Pj4gUlRFX0VUSF9ERVZfTk9MSVZFX01BQ19BRERSOw0KPiA+Pj4+Pj4+
Pj4+Pj4gLSBBZnRlciBjYWxsaW5nIGl0Og0KPiA+Pj4+Pj4+Pj4+Pj4gICAgIC0gZXRoX2Rldl9t
YWNfcmVzdG9yZSgpIC0gaWYgZGV2aWNlIGRvZXMgbm90IHN1cHBvcnQNCj4gPj4+Pj4+Pj4+Pj4g
UlRFX0VUSF9ERVZfTk9MSVZFX01BQ19BRERSOw0KPiA+Pj4+Pj4+Pj4+Pj4gICAgIC0gcmVzdG9y
ZSBwcm9taXNjdW91cyBjb25maWcNCj4gPj4+Pj4+Pj4+Pj4+ICAgICAtIHJlc3RvcmUgYWxsIG11
bHRpY2FzdCBjb25maWcNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBldGhfZGV2X21h
Y19yZXN0b3JlKCkgaXRlcmF0ZXMgb3ZlciBhbGwga25vd24gTUFDIGFkZHJlc3NlcyAtDQo+ID4+
Pj4+Pj4+Pj4+PiBzdG9yZWQgaW4gcnRlX2V0aF9kZXZfZGF0YS5tYWNfYWRkcnMgYXJyYXkgLSBh
bmQgY2FsbHMNCj4gPj4+Pj4+Pj4+Pj4+IC5tYWNfYWRkcl9zZXQoKSBhbmQgLm1hY19hZGRyX2Fk
ZCgpIGNhbGxiYWNrcyB0byBhcHBseSB0aGVzZQ0KPiA+Pj4+Pj4+Pj4+Pj4gTUFDDQo+ID4+Pj4+
PiBhZGRyZXNzZXMuDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gUHJvbWlzY3VvdXMg
Y29uZmlnIHJlc3RvcmUgY2hlY2tzIGlmIHByb21pc2N1b3VzIG1vZGUgaXMNCj4gPj4+Pj4+Pj4+
Pj4+IGVuYWJsZWQgb3Igbm90LCBhbmQgY2FsbHMgLnByb21pc2N1b3VzX2VuYWJsZSgpIG9yDQo+
ID4+Pj4+Pj4+Pj4+PiAucHJvbWlzY3VvdXNfZGlzYWJsZSgpDQo+ID4+Pj4+PiBjYWxsYmFjay4N
Cj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBBbGwgbXVsdGljYXN0IGNvbmZpZyByZXN0
b3JlIGNoZWNrcyBpZiBhbGwgbXVsdGljYXN0IG1vZGUgaXMNCj4gPj4+Pj4+Pj4+Pj4+IGVuYWJs
ZWQgb3Igbm90LCBhbmQgY2FsbHMgLmFsbG11bHRpY2FzdF9lbmFibGUoKSBvcg0KPiA+Pj4+Pj4+
Pj4+Pj4gLmFsbG11bHRpY2FzdF9kaXNhYmxlKCkNCj4gPj4+Pj4+IGNhbGxiYWNrLg0KPiA+Pj4+
Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4+IENhbGxiYWNrcyBhcmUgY2FsbGVkIGRpcmVjdGx5IGlu
IGFsbCBvZiB0aGVzZSBjYXNlcywgdG8NCj4gPj4+Pj4+Pj4+Pj4+IGJ5cGFzcyB0aGUgY2hlY2tz
IGZvciBhcHBseWluZyB0aGUgc2FtZSBjb25maWd1cmF0aW9uLCB3aGljaA0KPiA+Pj4+Pj4+Pj4+
Pj4gZXhpc3QgaW4gcmVsZXZhbnQNCj4gPj4+Pj4+IEFQSXMuDQo+ID4+Pj4+Pj4+Pj4+PiBDaGVj
a3MgYXJlIGJ5cGFzc2VkIHRvIGZvcmNlIGRyaXZlcnMgdG8gcmVhcHBseSB0aGUgY29uZmlndXJh
dGlvbi4NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBMZXQncyBjb25zaWRlciB3aGF0
IGhhcHBlbnMgaW4gdGhlIGZvbGxvd2luZyBzZXF1ZW5jZSBvZiBBUEkgY2FsbHMuDQo+ID4+Pj4+
Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gMS4gcnRlX2V0aF9kZXZfY29uZmlndXJlKCkNCj4gPj4+
Pj4+Pj4+Pj4+IDIuIHJ0ZV9ldGhfdHhfcXVldWVfc2V0dXAoKQ0KPiA+Pj4+Pj4+Pj4+Pj4gMy4g
cnRlX2V0aF9yeF9xdWV1ZV9zZXR1cCgpDQo+ID4+Pj4+Pj4+Pj4+PiA0LiBydGVfZXRoX3Byb21p
c2N1b3VzX2VuYWJsZSgpDQo+ID4+Pj4+Pj4+Pj4+PiAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+
cHJvbWlzY3VvdXNfZW5hYmxlKCkNCj4gPj4+Pj4+Pj4+Pj4+ICAgICAtIFN0b3JlcyBwcm9taXNj
dW91cyBzdGF0ZSBpbiBkZXYtPmRhdGEtPnByb21pc2N1b3VzIDUuDQo+ID4+Pj4+Pj4+Pj4+PiBy
dGVfZXRoX2FsbG11bHRpY2FzdF9lbmFibGUoKQ0KPiA+Pj4+Pj4+Pj4+Pj4gICAgIC0gQ2FsbCBk
ZXYtPmRldl9vcHMtPmFsbG11bHRpY2FzdF9lbmFibGUoKQ0KPiA+Pj4+Pj4+Pj4+Pj4gICAgIC0g
U3RvcmVzIGFsbG11bHRpY2FzdCBzdGF0ZSBpbiBkZXYtPmRhdGEtPmFsbG11bHRpY2FzdCA2Lg0K
PiA+Pj4+Pj4+Pj4+Pj4gcnRlX2V0aF9kZXZfc3RhcnQoKQ0KPiA+Pj4+Pj4+Pj4+Pj4gICAgIC0g
Q2FsbCBkZXYtPmRldl9vcHMtPmRldl9zdGFydCgpDQo+ID4+Pj4+Pj4+Pj4+PiAgICAgLSBDYWxs
IGRldi0+ZGV2X29wcy0+bWFjX2FkZHJfc2V0KCkgLSBhcHBseSBkZWZhdWx0IE1BQyBhZGRyZXNz
DQo+ID4+Pj4+Pj4+Pj4+PiAgICAgLSBDYWxsIGRldi0+ZGV2X29wcy0+cHJvbWlzY3VvdXNfZW5h
YmxlKCkNCj4gPj4+Pj4+Pj4+Pj4+ICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5hbGxtdWx0aWNh
c3RfZW5hYmxlKCkNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBFdmVuIHRob3VnaCBh
bGwgY29uZmlndXJhdGlvbiBpcyBhdmFpbGFibGUgaW4gZGV2LT5kYXRhIGFmdGVyDQo+ID4+Pj4+
Pj4+Pj4+PiBzdGVwIDUsIGxpYnJhcnkgZm9yY2VzIHJlYXBwbHlpbmcgdGhpcyBjb25maWd1cmF0
aW9uIGluIHN0ZXAgNi4NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBJbiBtbHg1IFBN
RCBjYXNlIGFsbCByZWxldmFudCBjYWxsYmFja3MgcmVxdWlyZSBjb21tdW5pY2F0aW9uDQo+ID4+
Pj4+Pj4+Pj4+PiB3aXRoIHRoZSBrZXJuZWwgZHJpdmVyLCB0byBjb25maWd1cmUgdGhlIGRldmlj
ZSAobWx4NSBQTUQNCj4gPj4+Pj4+Pj4+Pj4+IG11c3QgY3JlYXRlL2Rlc3Ryb3kgbmV3IGtlcm5l
bCBmbG93IHJ1bGVzIGFuZC9vciBjaGFuZ2UgbmV0ZGV2DQo+ID4+IGNvbmZpZykuDQo+ID4+Pj4+
Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4gbWx4NSBQTUQgaGFuZGxlcyBhcHBseWluZyBhbGwgY29u
ZmlndXJhdGlvbiBpbiAuZGV2X3N0YXJ0KCksDQo+ID4+Pj4+Pj4+Pj4+PiBzbyB0aGUgZm9sbG93
aW5nIGZvcmNlZCBjYWxsYmFja3MgZm9yY2UgYWRkaXRpb25hbA0KPiA+Pj4+Pj4+Pj4+Pj4gY29t
bXVuaWNhdGlvbiB3aXRoIHRoZSBrZXJuZWwuIFRoZQ0KPiA+Pj4+Pj4+Pj4+PiBzYW1lIGNvbmZp
Z3VyYXRpb24gaXMgYXBwbGllZCBtdWx0aXBsZSB0aW1lcy4NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+
Pj4+Pj4+Pj4+PiBBcyBhbiBvcHRpbWl6YXRpb24sIG1seDUgUE1EIGNvdWxkIGNoZWNrIGlmIGEg
Z2l2ZW4NCj4gPj4+Pj4+Pj4+Pj4+IGNvbmZpZ3VyYXRpb24gd2FzIGFwcGxpZWQsIGJ1dCB0aGlz
IHdvdWxkIGR1cGxpY2F0ZSB0aGUNCj4gPj4+Pj4+Pj4+Pj4+IGZ1bmN0aW9uYWxpdHkgb2YgdGhl
IGxpYnJhcnkgKGZvciBleGFtcGxlDQo+ID4+Pj4+Pj4+Pj4+PiBydGVfZXRoX3Byb21pc2N1b3Vz
X2VuYWJsZSgpIGRvZXMgbm90IGNhbGwgdGhlIGRyaXZlciBpZg0KPiA+Pj4+Pj4+Pj4+Pj4gZGV2
LT5kYXRhLT5wcm9taXNjdW91cyBpcyBzZXQpLg0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+
Pj4+IFF1ZXN0aW9uOiBTaW5jZSBhbGwgb2YgdGhlIGNvbmZpZ3VyYXRpb24gaXMgYXZhaWxhYmxl
IGJlZm9yZQ0KPiA+Pj4+Pj4+Pj4+Pj4gLmRldl9zdGFydCgpIGNhbGxiYWNrIGlzIGNhbGxlZCwg
d2h5IGV0aGRldiBsaWJyYXJ5IGRvZXMgbm90DQo+ID4+Pj4+Pj4+Pj4+PiBleHBlY3QgLmRldl9z
dGFydCgpIHRvDQo+ID4+Pj4+Pj4+Pj4+IHRha2UgdGhpcyBjb25maWd1cmF0aW9uIGludG8gYWNj
b3VudD8NCj4gPj4+Pj4+Pj4+Pj4+IEluIG90aGVyIHdvcmRzLCB3aHkgbGlicmFyeSBoYXMgdG8g
cmVhcHBseSB0aGUgY29uZmlndXJhdGlvbj8NCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+
PiBJIGNvdWxkIG5vdCBmaW5kIGFueSBwYXJ0aWN1bGFyIHJlYXNvbiB3aHkgY29uZmlndXJhdGlv
bg0KPiA+Pj4+Pj4+Pj4+Pj4gcmVzdG9yZSBleGlzdHMgYXMgcGFydCBvZiB0aGUgcHJvY2VzcyAo
aXQgd2FzIGluIHRoZSBpbml0aWFsIERQREsNCj4gPj4gY29tbWl0KS4NCj4gPj4+Pj4+Pj4+Pj4+
DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IE15IGFzc3VtcHRpb24gaXMgLmRldl9zdG9w
KCkgY2F1c2UgdGhlc2UgdmFsdWVzIHJlc2V0IGluIHNvbWUNCj4gPj4+Pj4+Pj4+Pj4gZGV2aWNl
cywgc28NCj4gPj4+Pj4+Pj4+Pj4gLmRldl9zdGFydCgpIHJlc3RvcmVzIHRoZW0gYmFjay4NCj4g
Pj4+Pj4+Pj4+Pj4gQEJydWNlIG9yIEBLb25zdGFudGluIG1heSByZW1lbWJlciB0aGUgaGlzdG9y
eS4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+PiBZZXAsIGFzIEkgcmVtZW1iZXIsIGF0IGxlYXN0
IHNvbWUgSW50ZWwgUE1EcyBjYWxsaW5nIGh3X3Jlc2V0KCkNCj4gPj4+Pj4+Pj4+IGFkDQo+ID4+
Pj4+Pj4+PiBkZWNfc3RvcCgpIGFuZCBldmVuIGRldl9zdGFydCgpIHRvIG1ha2Ugc3VyZSB0aGF0
IEhXIGlzIGluIGENCj4gPj4+Pj4+Pj4+IGNsZWFuDQo+ID4+Pj4+Pj4+PiAoa25vd24pDQo+ID4+
Pj4+PiBzdGF0ZS4NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IEJ1
dCBJIGFncmVlIHRoaXMgaXMgZGV2aWNlIHNwZWNpZmljIGJlaGF2aW9yLCBhbmQgY2FuIGJlDQo+
ID4+Pj4+Pj4+Pj4+IG1hbmFnZWQgYnkgd2hhdCBkZXZpY2UgcmVxdWlyZXMuDQo+ID4+Pj4+Pj4+
Pg0KPiA+Pj4+Pj4+Pj4gUHJvYmFibHkgeWVzLg0KPiA+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+Pj4N
Cj4gPj4+Pj4+Pj4+Pj4+IFRoZSBwYXRjaGVzIGluY2x1ZGVkIGluIHRoaXMgUkZDLCBwcm9wb3Nl
IGEgbWVjaGFuaXNtIHdoaWNoDQo+ID4+Pj4+Pj4+Pj4+PiB3b3VsZCBoZWxwIHdpdGggbWFuYWdp
bmcgd2hpY2ggZHJpdmVycyByZWx5IG9uIGZvcmNlZnVsDQo+ID4+Pj4+Pj4+Pj4+PiBjb25maWd1
cmF0aW9uDQo+ID4+Pj4gcmVzdG9yZS4NCj4gPj4+Pj4+Pj4+Pj4+IERyaXZlcnMgY291bGQgYWR2
ZXJ0aXNlIGlmIGZvcmNlZnVsIGNvbmZpZ3VyYXRpb24gcmVzdG9yZSBpcw0KPiA+Pj4+Pj4+Pj4+
Pj4gbmVlZGVkIHRocm91Z2ggYFJURV9FVEhfREVWXypfRk9SQ0VfUkVTVE9SRWAgZGV2aWNlIGZs
YWcuIElmDQo+ID4+Pj4+Pj4+Pj4+PiB0aGlzIGZsYWcgaXMgc2V0LCB0aGVuIHRoZSBkcml2ZXIg
aW4gcXVlc3Rpb24gcmVxdWlyZXMgZXRoZGV2DQo+ID4+Pj4+Pj4+Pj4+PiB0byBmb3JjZWZ1bGx5
IHJlc3RvcmUNCj4gPj4+Pj4+Pj4+Pj4gY29uZmlndXJhdGlvbi4NCj4gPj4+Pj4+Pj4+Pj4+DQo+
ID4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+IE9LIHRvIHVzZSBmbGFnIGZvciBpdCwgYnV0IG5v
dCBzdXJlIGFib3V0IHVzaW5nICdkZXZfaW5mby0+ZGV2X2ZsYWdzJw0KPiA+Pj4+Pj4+Pj4+PiAo
UlRFX0VUSF9ERVZfKikgZm9yIHRoaXMsIGFzIHRoaXMgZmxhZyBpcyBzaGFyZWQgd2l0aCB1c2Vy
IGFuZA0KPiA+Pj4+Pj4+Pj4+PiB0aGlzIGlzIGFsbCBkcGRrIGludGVybmFsLg0KPiA+Pj4+Pj4+
Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBXaGF0IGFib3V0IHRvIGhhdmUgYSBkZWRpY2F0ZWQgZmxhZyBm
b3IgaXQ/IFdlIGNhbiBoYXZlIGENCj4gPj4+Pj4+Pj4+Pj4gZGVkaWNhdGVkIHNldCBvZiBmbGFn
IHZhbHVlcyBmb3IgcmVzdG9yZS4NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IEFncmVlZC4g
V2hhdCBkbyB5b3UgdGhpbmsgYWJvdXQgdGhlIGZvbGxvd2luZz8NCj4gPj4+Pj4+Pj4+DQo+ID4+
Pj4+Pj4+PiBJbnN0ZWFkIG9mIGV4cG9zaW5nIHRoYXQsIGNhbiB3ZSBwcm9iYWJseSBtYWtlIGl0
IHRyYW5zcGFyZW50IHRvDQo+ID4+Pj4+Pj4+PiB0aGUgdXNlciBhbmQgcHJvYmFibHkgZXRoZGV2
IGxheWVyIHRvbz8NCj4gPj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+ICsxIHRvIG1h
a2UgaXQgdHJhbnNwYXJlbnQgdG8gdXNlciwgYnV0IG5vdCBzdXJlIGlmIHdlIGNhbiBtYWtlIGl0
DQo+ID4+Pj4+Pj4+IHRyYW5zcGFyZW50IHRvIGV0aGRldiBsYXllci4NCj4gPj4+Pj4+Pg0KPiA+
Pj4+Pj4+IEp1c3QgdG8gYmUgY2xlYXI6DQo+ID4+Pj4+Pj4gTGV0IHNheSwgdXNpbmcgZXhhbXBs
ZSBmcm9tIGFib3ZlOg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gIHJ0ZV9ldGhfZGV2X3N0YXJ0KCkN
Cj4gPj4+Pj4+PiAgICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPmRldl9zdGFydCgpDQo+ID4+Pj4+
Pj4gICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9zZXQoKSAtIGFwcGx5IGRlZmF1
bHQgTUFDIGFkZHJlc3MNCj4gPj4+Pj4+PiAgICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPnByb21p
c2N1b3VzX2VuYWJsZSgpDQo+ID4+Pj4+Pj4gICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5hbGxt
dWx0aWNhc3RfZW5hYmxlKCkNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IFdlIHByb2JhYmx5IGNhbiBp
bnRyb2R1Y2UgZXRoZGV2IGludGVybmFsIGZ1bmN0aW9uIChzdGlsbCB2aXNpYmxlDQo+ID4+Pj4+
Pj4gdG8NCj4gPj4+Pj4+PiBQTURzKSB0aGF0IHdvdWxkIGRvIGxhc3QgMyBzdGVwczoNCj4gPj4+
Pj4+PiBldGhkZXZfcmVwbGF5X3VzZXJfY29uZiguLi4pDQo+ID4+Pj4+Pj4gICAgICAtIENhbGwg
ZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9zZXQoKSAtIGFwcGx5IGRlZmF1bHQgTUFDIGFkZHJlc3MN
Cj4gPj4+Pj4+PiAgICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPnByb21pc2N1b3VzX2VuYWJsZSgp
DQo+ID4+Pj4+Pj4gICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5hbGxtdWx0aWNhc3RfZW5hYmxl
KCkNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEFuZCBsZXQgUE1EIGl0c2VsZiB0byBkZWNpZGUgZG9l
cyBpdCBuZWVkcyB0byBjYWxsIGl0IGF0IGRldl9zdGFydCgpIG9yIG5vdC4NCj4gPj4+Pj4+PiBT
byBpdCB3aWxsIGJlY29tZToNCj4gPj4+Pj4+PiBydGVfZXRoX2Rldl9zdGFydCgpDQo+ID4+Pj4+
Pj4gICAgICAtIENhbGwgZGV2LT5kZXZfb3BzLT5kZXZfc3RhcnQoKQ0KPiA+Pj4+Pj4+ICAgICAg
IC1DYWxsIGV0aGRldl9yZXBsYXlfdXNlcl9jb25mKC4pDQo+ID4+Pj4+Pj4gICAgICAgICAgICAg
ICAtIENhbGwgZGV2LT5kZXZfb3BzLT5tYWNfYWRkcl9zZXQoKSAtIGFwcGx5IGRlZmF1bHQgTUFD
IGFkZHJlc3MNCj4gPj4+Pj4+PiAgICAgICAgICAgICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPnBy
b21pc2N1b3VzX2VuYWJsZSgpDQo+ID4+Pj4+Pj4gICAgICAgICAgICAgICAtQ2FsbCBkZXYtPmRl
dl9vcHMtPmFsbG11bHRpY2FzdF9lbmFibGUoKQ0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gRm9yIFBN
RHMgdGhhdCBkbyBuZWVkIHRvIHJlc3RvcmUgdXNlciBwcm92aWRlZCBjb25maWcgQW5kDQo+ID4+
Pj4+Pj4gcnRlX2V0aF9kZXZfc3RhcnQoKQ0KPiA+Pj4+Pj4+ICAgICAgLSBDYWxsIGRldi0+ZGV2
X29wcy0+ZGV2X3N0YXJ0KCkNCj4gPj4+Pj4+Pg0KPiA+Pj4+Pj4+IEZvciB0aG9zZSB3aG8gZG8g
bm90Lg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gT0ssIGdvdCBpdCB3aGF0IHlvdSBt
ZWFuLg0KPiA+Pj4+Pj4gUHVzaGluZyByZXN0b3JlIGZ1bmN0aW9uYWxpdHkgdG8gUE1EcyB3b3Jr
cywgYnV0IHRoaXMgbWF5IGJlIGRvaW5nDQo+ID4+Pj4+PiByZWR1bmRhbnQgd29yayBvbiBlYWNo
IFBNRC4NCj4gPj4+Pj4+DQo+ID4+Pj4+PiBJbnN0ZWFkIERhcml1c3ogc3VnZ2VzdHMgUE1EIHRv
IHByb3ZpZGUgYSBmbGFnIHRvIGVodGRldiB0byB3aGF0IHRvDQo+ID4+Pj4+PiByZXN0b3JlIGFu
ZCBjb21tb24gY29kZSBpbiBldGhkZXYgZG9lcyB0aGUgd29yay4NCj4gPj4+Pj4+IE15IGJlbG93
IGRlZGljYXRlZCBkYXRhIHN0cnVjdCBjb21tZW50IGlzIHRvIGhhdmUgdGhpcyBmbGFnIGluIGEN
Cj4gPj4+Pj4+IG5ldyBzdHJ1Y3QsIG92ZXJhbGwgbGlrZSBmb2xsb3dpbmc6DQo+ID4+Pj4+Pg0K
PiA+Pj4+Pj4gcnRlX2V0aF9kZXZfc3RhcnQoKQ0KPiA+Pj4+Pj4gICAgLSBDYWxsIGRldi0+ZGV2
X29wcy0+ZGV2X3N0YXJ0KCkNCj4gPj4+Pj4+ICAgIC0gQ2FsbCBkZXYtPmRldl9vcHMtPmdldF9y
ZXN0b3JlX2ZsYWdzKGV0aGRldiwgUlRFX0VUSF9TVEFSVCwgJmZsYWdzKQ0KPiA+Pj4+Pj4gICAg
LSBpZiAoZmxhZ3MgJiBNQUMpIGRldi0+ZGV2X29wcy0+bWFjX2FkZHJfc2V0KCkNCj4gPj4+Pj4+
ICAgIC0gaWYgKGZsYWdzICYgUFJPTUlTQykgZGV2LT5kZXZfb3BzLT5wcm9taXNjdW91c19lbmFi
bGUoKQ0KPiA+Pj4+Pj4gICAgLSAuLi4NCj4gPj4+Pj4NCj4gPj4+Pj4gQ291bGQgeW91IHBsZWFz
ZSBleHBsYWluIHdoYXQgaXMgdGhlIGJlbmVmaXQgb2YgZXhwb3NpbmcgZmxhZ3MNCj4gPj4+Pj4g
dGhyb3VnaCBkZXZfb3BzDQo+ID4+Pj4gY2FsbGJhY2sgdnMgYSBkZWRpY2F0ZWQgZmxhZ3MgZmll
bGQgaW4gcnRlX2V0aF9kZXZfZGF0YT8NCj4gPj4+Pj4gSW4gYm90aCBzb2x1dGlvbnM6DQo+ID4+
Pj4+IC0gY29uZmlnIHJlc3RvcmUgaXMgdHJhbnNwYXJlbnQgdG8gdGhlIHVzZXIsDQo+ID4+Pj4+
IC0gZHJpdmVycyBjYW4gb21pdCBjb25maWcgcmVzdG9yZSAoZWl0aGVyIGJ5IG5vdCBpbXBsZW1l
bnRpbmcgdGhlDQo+ID4+Pj4+IGNhbGxiYWNrIG9yIG5vdCBwcm92aWRpbmcgdGhlIGZsYWdzKSwN
Cj4gPj4+Pj4gLSBhbiBBQkkgY2hhbmdlIGlzIGludHJvZHVjZWQgKG5vdCBhIGh1Z2UgY29uY2Vy
biwgYXQgbGVhc3QgZm9yIDI0LjExKS4NCj4gPj4+Pj4NCj4gPj4+Pj4gSSB1bmRlcnN0YW5kIHRo
YXQgbXkgaW5pdGlhbCBwcm9wb3NhbCB3aXRoICJpbnRlcm5hbF9mbGFncyIgd2FzIHRvbw0KPiA+
Pj4+PiB2YWd1ZSwgYnV0IHJlbmFtaW5nIGFuZCBzcGxpdHRpbmcgdGhpcyBmaWVsZCBpbnRvOg0K
PiA+Pj4+Pg0KPiA+Pj4+PiAtIGRldl9zdGFydF9yZXN0b3JlX2ZsYWdzDQo+ID4+Pj4+IC0gZGV2
X3Jlc2V0X3Jlc3RvcmVfZmxhZ3MNCj4gPj4+Pj4gLSBhbmQgc28gb24uLi4NCj4gPj4+Pj4NCj4g
Pj4+Pj4gc2VlbXMgc3VmZmljaWVudCwgYXQgbGVhc3QgaW4gbXkgb3Bpbmlvbi4NCj4gPj4+Pj4N
Cj4gPj4+Pg0KPiA+Pj4+IEhpIERhcml1c3osDQo+ID4+Pj4NCj4gPj4+PiBQdXR0aW5nIGZsYWdz
IHRvIHJ0ZV9ldGhfZGV2X2RhdGEgd29ya3MsIGFuZCBpdCBpcyBlYXNpZXIgc2luY2UgdGhlcmUN
Cj4gPj4+PiBpcyBkaXJlY3QgYWNjZXNzIGZyb20gcnRlX2V0aF9kZXYgdG8gcnRlX2V0aF9kZXZf
ZGF0YSwgc28geW91IGRvbid0DQo+ID4+Pj4gbmVlZCBuZXcgZGV2X29wcy4gU28gdGhpcyBpcyBh
IHZhbGlkIG9wdGlvbi4NCj4gPj4+Pg0KPiA+Pj4+IEJ1dCBiZW5lZml0IG9mIG5ldyBkZXZfb3Bz
IGlzIHRvIGtlZXAgInN0cnVjdCBydGVfZXRoX2Rldl9kYXRhIiBjbGVhbi4NCj4gPj4+Pg0KPiA+
Pj4+ICJzdHJ1Y3QgcnRlX2V0aF9kZXZfZGF0YSIgaXMgaW50ZWdyYWwgZGF0YSBzdHJ1Y3R1cmUg
Zm9yIGV0aGRldiBhbmQNCj4gPj4+PiBpdCBpcyB1c2VkIGluIG11bHRpcGxlIGxvY2F0aW9ucywg
bW9zdGx5IHJlbGF0ZWQgdG8gdGhlIGRhdGFwYXRoIGFuZA0KPiA+Pj4+IGFsbCBkcml2ZXJzIG5l
ZWRzIHRvIGRlYWwgd2l0aCBmaWVsZHMgb2YgdGhpcyBzdHJ1Y3QuDQo+ID4+Pj4gTGlrZSBbcnhd
X3F1ZXVlcywgZGV2X3ByaXZhdGUsIGRldl9jb25mIGFsbCBpbXBvcnRhbnQgYW5kIHVzZWQgYSBs
b3QuDQo+ID4+Pj4NCj4gPj4+PiBJIHdhbnQgdG8gcHJvdGVjdCAic3RydWN0IHJ0ZV9ldGhfZGV2
X2RhdGEiIGZyb20gbm9pc2UgYXMgbXVjaCBhcw0KPiA+Pj4+IHBvc3NpYmxlLCB0aG91Z2ggd2hh
dCBpcyBub2lzZSBpcyBub3QgYWx3YXlzIHRoYXQgY2xlYXIuDQo+ID4+Pj4NCj4gPj4+PiBUaGlz
IHJlc3RvcmUgZmxhZyBpcyBub3QgY3JpdGljYWwsIGFuZCBJIGV4cGVjdCBtb3N0IG9mIHRoZSBk
cml2ZXJzDQo+ID4+Pj4gd29uJ3QgY2FyZSBhbmQgcG9wdWxhdGUgdGhpcyByZXN0b3JlIGZsYWcg
YXQgYWxsLiBUaGF0IGlzIHdoeSB0byBtZQ0KPiA+Pj4+IGl0IGlzIGJldHRlciBoYXZlIGRlZGlj
YXRlZCBzdHJ1Y3QgZm9yIGl0IGFuZCBvbmx5IGRyaXZlcnMgY2FyZSBhYm91dCByZXN0b3JlDQo+
ID4+IGZlYXR1cmUga25vdyBpdC4NCj4gPj4+DQo+ID4+PiBJIHNlZS4gVGhhbmsgeW91IHZlcnkg
bXVjaCBmb3IgdGhlIGV4cGxhbmF0aW9uLg0KPiA+Pj4NCj4gPj4+IEluIHRoaXMgY2FzZSwgaXQg
bG9va3MgbGlrZSBhZGRpbmcgdGhpcyB0byBkZXZfb3BzIGlzIHRoZSB3YXkgdG8gZ28uDQo+ID4+
Pg0KPiA+Pj4gU28sIHN1bW1hcml6aW5nIGl0IGFsbDoNCj4gPj4+DQo+ID4+PiAxLiBkZXZfb3Bz
IHNob3VsZCBiZSBleHRlbmRlZCB3aXRoIGEgY2FsbGJhY2sgd2l0aCB0aGUgZm9sbG93aW5nIHNp
Z25hdHVyZSBhbmQNCj4gPj4gZW51bXMvZmxhZ3M6DQo+ID4+Pg0KPiA+Pj4gZW51bSBydGVfZXRo
X2Rldl9vcGVyYXRpb24gb3Agew0KPiA+Pj4gICAgICAgUlRFX0VUSF9TVEFSVCwNCj4gPj4+ICAg
ICAgIFJURV9FVEhfU1RPUCwNCj4gPj4+ICAgICAgIFJURV9FVEhfUkVTRVQsDQo+ID4+PiB9Ow0K
PiA+Pj4NCj4gPj4+ICNkZWZpbmUgUlRFX0VUSF9SRVNUT1JFX01BQ19BRERSIFJURV9CSVQzMigw
KSAjZGVmaW5lDQo+ID4+PiBSVEVfRVRIX1JFU1RPUkVfUFJPTUlTQyBSVEVfQklUMzIoMSkgI2Rl
ZmluZQ0KPiA+PiBSVEVfRVRIX1JFU1RPUkVfQUxMTVVMVEkNCj4gPj4+IFJURV9CSVQzMigyKQ0K
PiA+Pj4NCj4gPj4+IHZvaWQgKCpnZXRfcmVzdG9yZV9mbGFncykoDQo+ID4+PiAgICAgICBzdHJ1
Y3QgcnRlX2V0aF9kZXYgKmRldiwNCj4gPj4+ICAgICAgIGVudW0gcnRlX2V0aF9kZXZfb3BlcmF0
aW9uIG9wLA0KPiA+Pj4gICAgICAgdWludDMyX3QgKmZsYWdzKTsNCj4gPj4+DQo+ID4+PiAyLiBy
dGVfZXRoX2Rldl9zdGFydCgpIHdpbGwgd29yayBhcyBmb2xsb3dzOg0KPiA+Pj4NCj4gPj4+IC0g
Q2FsbCBkZXYtPmRldl9vcHMtPmRldl9zdGFydCgpDQo+ID4+PiAtIENhbGwgZGV2LT5kZXZfb3Bz
LT5nZXRfcmVzdG9yZV9mbGFncyhkZXYsIFJURV9FVEhfU1RBUlQsICZmbGFncykuIElmIGNhbGxi
YWNrDQo+ID4+IGlzIG5vdCBwcm92aWRlZCwgYXNzdW1lIGZsYWdzID09IDAuDQo+ID4+PiAtIGlm
IChmbGFncyAmIFJURV9FVEhfUkVTVE9SRV9NQUNfQUREUikgLSByZXN0b3JlIE1BQyBhZGRyZXNz
ZXMNCj4gPj4+IC0gYW5kIHNvIG9uLi4uDQo+ID4+Pg0KPiA+Pg0KPiA+PiBBbGwgYWJvdmUgbG9v
a3MgZ29vZC4NCj4gPj4NCj4gPj4+IEFsc28sIEkgd291bGQgbGlrZSB0byBhZGQgdGhlIGZvbGxv
d2luZzoNCj4gPj4+DQo+ID4+PiAzLiBQYXRjaHNldCBpbnRyb2R1Y2luZyB0aGlzIGNoYW5nZSBz
aG91bGQgYWRkIGdldF9yZXN0b3JlX2ZsYWdzKCkNCj4gPj4gaW1wbGVtZW50YXRpb24gdG8gYWxs
IGRyaXZlcnMsIHdoaWNoIGluZm9ybXMgdGhhdCBhbGwgY29uZmlnIHNob3VsZCBiZSByZXN0b3Jl
ZC4NCj4gPj4+IFRoaXMgd291bGQgcHJlc2VydmUgdGhlIGN1cnJlbnQgYmVoYXZpb3IuDQo+ID4+
PiBMYXRlciwgdGhpcyBjb3VsZCBiZSByZWZpbmVkIGRyaXZlciBieSBkcml2ZXIuDQo+ID4+Pg0K
PiA+Pj4gV2hhdCBkbyB5b3UgdGhpbms/DQo+ID4+Pg0KPiA+Pg0KPiA+PiBXaGF0IHlvdSBhcmUg
c2F5aW5nIGlzIGNvcnJlY3QsIGJ1dCBJIHN1c3BlY3QgbW9zdCBvZiB0aGUgZHJpdmVycyBkb24n
dCByZWFsbHkgbmVlZA0KPiA+PiB0aGlzIHJlc3RvcmUsIGJ1dCB0aGV5IGhhdmUgaXQgc2luY2Ug
aXQgd2FzIGluIHRoZSBldGhkZXYgbGF5ZXIuDQo+ID4+DQo+ID4+IElmIHdlIGludHJvZHVjZSBi
YWNrIHJlc3RvcmUgdmlhIGdldF9yZXN0b3JlX2ZsYWdzKCksIGl0IG1heSBzdGF5IGFzIGl0IGlz
IGluIGRyaXZlcnMsIGF0DQo+ID4+IGxlYXN0IGZvciBtb3N0IG9mIHRoZW0uDQo+ID4+DQo+ID4+
IFdoYXQgZG8geW91IHRoaW5rIHRvIHJpc2sgYnJlYWtpbmcgc3R1ZmYgZm9yIHRoaXMgY2FzZS4N
Cj4gPj4NCj4gPj4gU28gZG9uJ3QgaW1wbGVtZW50IHRoaXMgaW4gdGhlIGRyaXZlcnMgYnkgZGVm
YXVsdCwgc28gd2hvIG5lZWRzIGl0IHdpbGwgcmVjb2duaXplDQo+ID4+IHRoZSBpc3N1ZSBhbmQg
d2lsbCBpbXBsZW1lbnQgaXQuIElmIHdlIG1lcmdlIHRoaXMgcGF0Y2ggZm9yIC1yYzEsIGl0IGdp
dmVzIGVub3VnaA0KPiA+PiB0aW1lIGZvciBkcml2ZXJzIHRvIGRldGVjdCB0aGUgaXNzdWUgYW5k
IGZpeCBpdC4NCj4gPg0KPiA+IEl0IHNlZW1zIHJhdGhlciB0b28gcmlza3ksIGVzcGVjaWFsbHkg
Y29uc2lkZXJpbmcgdGhhdCBmb3IgZXhhbXBsZSwgdGhlcmUgYXJlIGEgZmV3IEludGVsIGRyaXZl
cnMgd2hpY2ggZG8gbm90IGhhdmUgbWFpbnRhaW5lcnMgKGxpa2UNCj4gaTQwZSkuDQo+ID4gU28s
IEkgZG9uJ3Qga25vdyB3aGF0IHdpbGwgaGFwcGVuIHRvIHN1Y2ggZHJpdmVycy4gVGhleSBtYXkg
YmUgbGVmdCBicm9rZW4gKGlmIHRoZXkgYXJlIGFmZmVjdGVkKSBmb3IgMjQuMTEgYW5kIGZ1dHVy
ZSByZWxlYXNlcy4NCj4gPiBCdXQgSSBhZ3JlZSB0aGF0IGlmIGRlZmF1bHQgYmVoYXZpb3IgaXMg
cHJlc2VydmVkLCB0aGlzIGRlcGVuZGVuY2Ugb2YgZHJpdmVycyBvbiBjb25maWcgcmVzdG9yZSBt
aWdodCBzdGF5IGFzIGlzLg0KPiA+IEknbSBvbiB0aGUgZmVuY2UgYWJvdXQgaXQuDQo+ID4NCj4g
DQo+IFllYWgsIG5vdCBzdXJlLg0KPiANCj4gRG8geW91IHRoaW5rIHRoZSBkZXZfb3BzIGZ1bmN0
aW9uIGNhbiBiZSBpbXBsZW1lbnRlZCBpbiB0aGUNCj4gJ2V0aGRldl9kcml2ZXIuYycgYW5kIGFs
bCBkcml2ZXJzIHVzZSBleGFjdCBzYW1lIGZ1bmN0aW9uPw0KPiBTbyB0aGlzIHJlZHVjZXMgY2hh
bmdlcyBhbmQgZHVwbGljYXRpb24gaW4gZHJpdmVycyB3aGlsZSBwcmVzZXJ2aW5nIHRoZQ0KPiBi
ZWhhdmlvci4NCg0KV29uZGVyIHdoeSBpdCBjYW4ndCBiZSBkb25lIHZpc2EtdmVyc2E/DQpJZiB0
aGlzIG5ldyBmdW5jdGlvbiBpcyBub3QgaW1wbGVtZW50ZWQgYnkgUE1ELCB0aGVuIHNpbXBseSBh
c3N1bWUNCnRoYXQgZXZlcnl0aGluZyBuZWVkcyB0byBiZSByZXN0b3JlZCAoYXMgaXQgaGFwcGVu
cyBub3cpPyANCg0KPiA+Pg0KPiA+PiBPbmx5IHdlIG1heSBpbXBsZW1lbnQgdGhpcyB0byB0aGUg
ZHJpdmVycyB0aGF0IGV4aXN0IHdoZW4gdGhpcyByZXN0b3JlIGNvZGUgd2FzDQo+ID4+IGludHJv
ZHVjZWQuDQo+ID4+IEkgbWVhbiB3aGF0ZXZlciBkcml2ZXIgZXhpc3QgaW4gdGhlIGluaXRpYWwg
RFBESyBjb21taXQsIGltcGxlbWVudCB0aGlzIGxvZ2ljIG9ubHkNCj4gPj4gdG8gdGhvc2UgZHJp
dmVycy4NCj4gPg0KPiA+IFNlZW1zIHJlYXNvbmFibGUgdG8gbWUuIEluIHRoaXMgY2FzZSwgaXQg
d291bGQgYmUgaWdiIChJSVVDLCBub3cgaXQncyBuYW1lZCBlMTAwMCkgYW5kIGl4Z2JlLg0KPiA+
DQo+ID4+DQo+ID4+PiBBbHNvLCB0aGVyZSdzIGFuIG9wZW4gcXVlc3Rpb24gYWJvdXQgJ3N0b3An
IGFuZCAncmVzZXQnIG9wZXJhdGlvbnMuDQo+ID4+PiBBdCB0aGUgbW9tZW50LCBldGhkZXYgbGF5
ZXIgZG9lcyBub3QgZG8gYW55IGNvbmZpZyBtYW5pcHVsYXRpb24gZHVyaW5nIHRoZXNlDQo+ID4+
IG9wZXJhdGlvbnMuDQo+ID4+PiBNYXliZSB3ZSBzaG91bGQgbGltaXQgZ2V0X3Jlc3RvcmVfZmxh
Z3MoKSB0byAnc3RhcnQnIG9ubHk/DQo+ID4+Pg0KPiA+Pg0KPiA+PiBBY2ssIEkgd2FzIGFib3V0
IHRvIHN1Z2dlc3QgdGhlIHNhbWUsIGZvciBub3cgb25seSBoYXZlICdSVEVfRVRIX1NUQVJUJw0K
PiA+PiBhcyBhIHBsYWNlaG9sZGVyIGZvciBsYXRlciBwb3NzaWJsZSB1c2FnZXMuDQo+ID4NCj4g
PiBBY2sNCj4gPg0KPiA+Pg0KPiA+Pj4+DQo+ID4+Pj4NCj4gPj4+Pg0KPiA+Pj4+Pj4NCj4gPj4+
Pj4+IFNvIFBNRHMgb25seSB3aWxsIHByb3ZpZGUgd2hhdCB0byByZXN0b3JlIHdpdGggYW4gaW50
ZXJuYWwgQVBJIGFuZA0KPiA+Pj4+Pj4gY29tbW9uIGV0aGRldiBsYXllciB3aWxsIHJlc3RvcmUg
aXQuDQo+ID4+Pj4+PiBJZiBubyByZXN0b3JlIHJlcXVpcmVkIFBNRCBtYXkgbm90IGltcGxlbWVu
dCAuZ2V0X3Jlc3RvcmVfZmxhZ3MoKSBhdCBhbGwuDQo+ID4+Pj4+Pg0KPiA+Pj4+Pj4gQWRkaXRp
b25hbGx5LCBSVEVfRVRIX1NUQVJULCBSVEVfRVRIX1JFU0VUIGV0YyBmbGFnIGNhbiBiZSBwcm92
aWRlZA0KPiA+Pj4+Pj4gdG8gaW50ZXJuYWwgQVBJIHRvIGdldCB3aGF0IHRvIHJlc3RvcmUgaW4g
ZGlmZmVyZW50IHN0YXRlcy4uLg0KPiA+Pj4+Pj4NCj4gPj4+Pj4+Pj4gU3VnZ2VzdGVkICdpbnRl
cm5hbF9mbGFnJyBpbiAic3RydWN0IHJ0ZV9ldGhfZGV2X2RhdGEiIGNhbiBiZQ0KPiA+Pj4+Pj4+
PiBjb25mdXNpbmcgYW5kIG9wZW4gdG8gaW50ZXJwcmV0YXRpb24gd2hhdCB0byB1c2UgaXQgZm9y
IGFuZCBieQ0KPiA+Pj4+Pj4+PiB0aW1lIGJlY29tZSBzb3VyY2Ugb2YgZGVmZWN0Lg0KPiA+Pj4+
Pj4+DQo+ID4+Pj4+Pj4gWWVzLCBzYW1lIHRob3VnaHRzLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4+
IEluc3RlYWQgd2hhdCBkbyB5b3UgdGhpbmsgdG8gaGF2ZSBhIHNlcGFyYXRlLCBkZWRpY2F0ZWQg
ZGF0YSBzdHJ1Y3QgZm9yIGl0Pw0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4gSG1tLi4uIG5vdCBzdXJl
IEkgdW5kZXJzdG9vZCB5b3UgaGVyZS4uLg0KPiA+Pj4+Pj4+DQo+ID4+Pj4+Pj4+DQo+ID4+Pj4+
Pj4+PiBNaWdodCBiZSB3ZSBjYW4gbW92ZSB0aGlzIHJlc3RvcmF0aW9uIGNvZGUgaW50byB0aGUg
bmV3IGV0aGRldg0KPiA+Pj4+Pj4+Pj4gaGVscGVyIGZ1bmN0aW9uLChldGhkZXZkX3VzZXJfY29u
ZmlnX3Jlc3RvcmUoKSAgb3Igc28pIHRoYXQgUE1EDQo+ID4+Pj4+Pj4+PiBjYW4gaW52b2tlDQo+
ID4+Pj4+PiBkdXJpbmcgaXRzIGRldl9zdGFydCgpIGlmIG5lZWRlZD8NCj4gPj4+Pj4+Pj4+DQo+
ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiAjZGVmaW5lIFJURV9FVEhfREVWX0lOVEVSTkFMX1BS
T01JU0NfRk9SQ0VfUkVTVE9SRQ0KPiA+Pj4+IFJURV9CSVQzMigwKQ0KPiA+Pj4+Pj4+Pj4+ICNk
ZWZpbmUgUlRFX0VUSF9ERVZfSU5URVJOQUxfQUxMTVVMVElfRk9SQ0VfUkVTVE9SRQ0KPiA+Pj4+
IFJURV9CSVQzMigxKQ0KPiA+Pj4+Pj4+Pj4+ICNkZWZpbmUgUlRFX0VUSF9ERVZfSU5URVJOQUxf
TUFDX0FERFJfRk9SQ0VfUkVTVE9SRQ0KPiA+Pj4+Pj4gUlRFX0JJVDMyKDIpDQo+ID4+Pj4+Pj4+
Pj4NCj4gPj4+Pj4+Pj4+PiBzdHJ1Y3QgcnRlX2V0aF9kZXZfZGF0YSB7DQo+ID4+Pj4+Pj4+Pj4g
ICAgLyogc25pcCAqLw0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gICAgdWludDMyX3QgZGV2
X2ZsYWdzOw0KPiA+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4gICAgLyoqDQo+ID4+Pj4+Pj4+Pj4g
ICAgICogSW50ZXJuYWwgZGV2aWNlIGNhcGFiaWxpdGllcywgdXNlZCBvbmx5IGJ5IGV0aGRldiBs
aWJyYXJ5Lg0KPiA+Pj4+Pj4+Pj4+ICAgICAqIENlcnRhaW4gZnVuY3Rpb25hbGl0aWVzIHByb3Zp
ZGVkIGJ5IHRoZSBsaWJyYXJ5IG1pZ2h0DQo+ID4+Pj4gZW5hYmxlZC9kaXNhYmxlZCwNCj4gPj4+
Pj4+Pj4+PiAgICAgKiBiYXNlZCBvbiBkcml2ZXIgZXhwb3NpbmcgY2VydGFpbiBjYXBhYmlsaXRp
ZXMuDQo+ID4+Pj4+Pj4+Pj4gICAgICovDQo+ID4+Pj4+Pj4+Pj4gICAgdWludDMyX3QgaW50ZXJu
YWxfZmxhZ3M7DQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiAgICAvKiBzbmlwICovDQo+ID4+
Pj4+Pj4+Pj4gfTsNCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+PiBBbHNvIHBlcmhhcHMgd2Ug
aGF2ZSBnbyBpbnRvIGRldGFpbHMgd2hhdCBuZWVkcyB0byBiZSByZXN0b3JlZA0KPiA+Pj4+Pj4+
Pj4+PiBhZnRlciAnc3RvcCcgYW5kIHdoYXQgbmVlZHMgdG8gYmUgcmVzdG9yZWQgYWZ0ZXIgJ3Jl
c2V0JyBhbmQNCj4gPj4+Pj4+Pj4+Pj4gdXNlIHNpbWlsYXINCj4gPj4+Pj4+IG1lY2hhbmlzbSBl
dGMuLi4NCj4gPj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+IEkgdGhpbmsgd2Ugc2hvdWxkIGxvb2sg
aW50byB0aGF0Lg0KPiA+Pj4+Pj4+Pj4+IEFueSAnY29kaWZpY2F0aW9uJyBvZiBzZW1hbnRpY3Mg
YmV0d2VlbiBkcml2ZXJzIGFuZCBldGhkZXYNCj4gPj4+Pj4+Pj4+PiBsaWJyYXJ5IGlzIGdvb2Qg
aW4NCj4gPj4+Pj4+IG15IG9waW5pb24uDQo+ID4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+PiBBdCBs
ZWFzdCByaWdodCBub3csIGV0aGRldiBkb2VzIG5vdCBjaGFuZ2UgYW55IGNvbmZpZ3VyYXRpb24g
aW4NCj4gPj4+Pj4+Pj4+PiAnc3RvcCcgYW5kDQo+ID4+Pj4+PiAncmVzZXQnIGZyb20gd2hhdCBJ
IHNlZS4NCj4gPj4+Pj4+Pj4+PiBCdXQgdGhhdCdzIG9uIGxpYnJhcnkgc2lkZSBvbmx5Lg0KPiA+
Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiBUaGlzIHdheSwgaWYgd2Ugd291bGQgY29uY2x1ZGUg
dGhhdCBpdCBtYWtlcyBzZW5zZSBmb3INCj4gPj4+Pj4+Pj4+Pj4+IC5kZXZfc3RhcnQoKSB0byBo
YW5kbGUgYWxsIHN0YXJ0aW5nIGNvbmZpZ3VyYXRpb24gYXNwZWN0cywgd2UNCj4gPj4+Pj4+Pj4+
Pj4+IGNvdWxkIHRyYWNrIHdoaWNoIGRyaXZlcnMgc3RpbGwgcmVseQ0KPiA+Pj4+Pj4+Pj4+PiBv
biBjb25maWd1cmF0aW9uIHJlc3RvcmUuDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4g
RGFyaXVzeiBTb3Nub3dza2kgKDQpOg0KPiA+Pj4+Pj4+Pj4+Pj4gICBldGhkZXY6IHJld29yayBj
b25maWcgcmVzdG9yZQ0KPiA+Pj4+Pj4+Pj4+Pj4gICBldGhkZXY6IG9taXQgcHJvbWlzY3VvdXMg
Y29uZmlnIHJlc3RvcmUgaWYgbm90IHJlcXVpcmVkDQo+ID4+Pj4+Pj4+Pj4+PiAgIGV0aGRldjog
b21pdCBhbGwgbXVsdGljYXN0IGNvbmZpZyByZXN0b3JlIGlmIG5vdCByZXF1aXJlZA0KPiA+Pj4+
Pj4+Pj4+Pj4gICBldGhkZXY6IG9taXQgTUFDIGFkZHJlc3MgcmVzdG9yZSBpZiBub3QgcmVxdWly
ZWQNCj4gPj4+Pj4+Pj4+Pj4+DQo+ID4+Pj4+Pj4+Pj4+PiAgbGliL2V0aGRldi9ydGVfZXRoZGV2
LmMgfCAzOQ0KPiA+Pj4+Pj4+Pj4+Pj4gKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
Ky0tLS0tDQo+ID4+Pj4+Pj4+Pj4+PiAgbGliL2V0aGRldi9ydGVfZXRoZGV2LmggfCAxOCArKysr
KysrKysrKysrKysrKysNCj4gPj4+Pj4+Pj4+Pj4+ICAyIGZpbGVzIGNoYW5nZWQsIDUyIGluc2Vy
dGlvbnMoKyksIDUgZGVsZXRpb25zKC0pDQo+ID4+Pj4+Pj4+Pj4+Pg0KPiA+Pj4+Pj4+Pj4+Pj4g
LS0NCj4gPj4+Pj4+Pj4+Pj4+IDIuMzkuNQ0KPiA+Pj4+Pj4+Pj4+Pj4NCj4gPj4+Pj4+Pj4+DQo+
ID4+Pj4+Pj4NCj4gPj4+Pj4NCj4gPj4+DQo+ID4NCg0K