From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 6260FA0613
	for <public@inbox.dpdk.org>; Mon, 23 Sep 2019 19:14:53 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 0D5781BE9F;
	Mon, 23 Sep 2019 19:14:52 +0200 (CEST)
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by dpdk.org (Postfix) with ESMTP id 511AB1BE9A
 for <dev@dpdk.org>; Mon, 23 Sep 2019 19:14:49 +0200 (CEST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from fmsmga006.fm.intel.com ([10.253.24.20])
 by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 23 Sep 2019 10:14:49 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.64,541,1559545200"; d="scan'208";a="389549032"
Received: from fmsmsx104.amr.corp.intel.com ([10.18.124.202])
 by fmsmga006.fm.intel.com with ESMTP; 23 Sep 2019 10:14:49 -0700
Received: from fmsmsx155.amr.corp.intel.com (10.18.116.71) by
 fmsmsx104.amr.corp.intel.com (10.18.124.202) with Microsoft SMTP Server (TLS)
 id 14.3.439.0; Mon, 23 Sep 2019 10:14:48 -0700
Received: from fmsmsx117.amr.corp.intel.com ([169.254.3.133]) by
 FMSMSX155.amr.corp.intel.com ([169.254.5.34]) with mapi id 14.03.0439.000;
 Mon, 23 Sep 2019 10:14:48 -0700
From: "Wiles, Keith" <keith.wiles@intel.com>
To: Olivier Matz <olivier.matz@6wind.com>
CC: dev <dev@dpdk.org>, Thomas Monjalon <thomas@monjalon.net>, "Wang, Haiyue"
 <haiyue.wang@intel.com>, Stephen Hemminger <stephen@networkplumber.org>,
 Andrew Rybchenko <arybchenko@solarflare.com>, Jerin Jacob Kollanukkaran
 <jerinj@marvell.com>
Thread-Topic: [PATCH] mbuf: support dynamic fields and flags
Thread-Index: AQHVbkHXCVvrq0cpZk2iDJ212rSDCKc2Re8AgAMxGICAAGUXAIAAESUAgAAQXoA=
Date: Mon, 23 Sep 2019 17:14:48 +0000
Message-ID: <B6BE5CA0-65D0-4CFB-84B5-58A1E68DA461@intel.com>
References: <20190710092907.5565-1-olivier.matz@6wind.com>
 <20190918165448.22409-1-olivier.matz@6wind.com>
 <37115768-EDA5-4089-8E86-3EFB26194A00@intel.com>
 <20190923091301.hquyxbbcbai43e4p@platinum>
 <12FB7B92-A7FE-40E1-A6AA-DD1C92AF0A59@intel.com>
 <20190923161612.6dwnp54ai7fnnpm7@platinum>
In-Reply-To: <20190923161612.6dwnp54ai7fnnpm7@platinum>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [10.252.202.153]
Content-Type: text/plain; charset="utf-8"
Content-ID: <80F8B27E0AD28E439AC100E2514EAAF7@intel.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Subject: Re: [dpdk-dev] [PATCH] mbuf: support dynamic fields and flags
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
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
Sender: "dev" <dev-bounces@dpdk.org>

DQoNCj4gT24gU2VwIDIzLCAyMDE5LCBhdCAxMToxNiBBTSwgT2xpdmllciBNYXR6IDxvbGl2aWVy
Lm1hdHpANndpbmQuY29tPiB3cm90ZToNCj4gDQo+IEhpLA0KPiANCj4gKHJlZm9ybWF0ZWQgdGhl
IHF1b3RlcykNCj4gDQo+IE9uIE1vbiwgU2VwIDIzLCAyMDE5IGF0IDAzOjE0OjUxUE0gKzAwMDAs
IFdpbGVzLCBLZWl0aCB3cm90ZToNCj4+IA0KPj4gDQo+PiBPbiBTZXAgMjMsIDIwMTksIGF0IDQ6
MTMgQU0sIE9saXZpZXIgTWF0eiA8b2xpdmllci5tYXR6QDZ3aW5kLmNvbTxtYWlsdG86b2xpdmll
ci5tYXR6QDZ3aW5kLmNvbT4+IHdyb3RlOg0KPj4+IA0KPj4+IEhpIEtlaXRoLA0KPj4+IA0KPj4+
IE9uIFNhdCwgU2VwIDIxLCAyMDE5IGF0IDA4OjI4OjMyQU0gKzAwMDAsIFdpbGVzLCBLZWl0aCB3
cm90ZToNCj4+Pj4gDQo+Pj4+IA0KPj4+PiBPbiBTZXAgMTgsIDIwMTksIGF0IDY6NTQgUE0sIE9s
aXZpZXIgTWF0eiA8b2xpdmllci5tYXR6QDZ3aW5kLmNvbTxtYWlsdG86b2xpdmllci5tYXR6QDZ3
aW5kLmNvbT4+IHdyb3RlOg0KPj4+PiANCj4+Pj4+IE1hbnkgZmVhdHVyZXMgcmVxdWlyZSB0byBz
dG9yZSBkYXRhIGluc2lkZSB0aGUgbWJ1Zi4gQXMgdGhlIHJvb20gaW4gbWJ1Zg0KPj4+Pj4gc3Ry
dWN0dXJlIGlzIGxpbWl0ZWQsIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBoYXZlIGEgZmllbGQgZm9y
IGVhY2gNCj4+Pj4+IGZlYXR1cmUuIEFsc28sIGNoYW5naW5nIGZpZWxkcyBpbiB0aGUgbWJ1ZiBz
dHJ1Y3R1cmUgY2FuIGJyZWFrIHRoZSBBUEkNCj4+Pj4+IG9yIEFCSS4NCj4+Pj4+IA0KPj4+Pj4g
VGhpcyBjb21taXQgYWRkcmVzc2VzIHRoZXNlIGlzc3VlcywgYnkgZW5hYmxpbmcgdGhlIGR5bmFt
aWMgcmVnaXN0cmF0aW9uDQo+Pj4+PiBvZiBmaWVsZHMgb3IgZmxhZ3M6DQo+Pj4+PiANCj4+Pj4+
IC0gYSBkeW5hbWljIGZpZWxkIGlzIGEgbmFtZWQgYXJlYSBpbiB0aGUgcnRlX21idWYgc3RydWN0
dXJlLCB3aXRoIGENCj4+Pj4+IGdpdmVuIHNpemUgKD49IDEgYnl0ZSkgYW5kIGFsaWdubWVudCBj
b25zdHJhaW50Lg0KPj4+Pj4gLSBhIGR5bmFtaWMgZmxhZyBpcyBhIG5hbWVkIGJpdCBpbiB0aGUg
cnRlX21idWYgc3RydWN0dXJlLg0KPj4+Pj4gDQo+Pj4+PiBUaGUgdHlwaWNhbCB1c2UgY2FzZSBp
cyBhIFBNRCB0aGF0IHJlZ2lzdGVycyBzcGFjZSBmb3IgYW4gb2ZmbG9hZA0KPj4+Pj4gZmVhdHVy
ZSwgd2hlbiB0aGUgYXBwbGljYXRpb24gcmVxdWVzdHMgdG8gZW5hYmxlIHRoaXMgZmVhdHVyZS4g
IEFzDQo+Pj4+PiB0aGUgc3BhY2UgaW4gbWJ1ZiBpcyBsaW1pdGVkLCB0aGUgc3BhY2Ugc2hvdWxk
IG9ubHkgYmUgcmVzZXJ2ZWQgaWYgaXQNCj4+Pj4+IGlzIGdvaW5nIHRvIGJlIHVzZWQgKGkuZSB3
aGVuIHRoZSBhcHBsaWNhdGlvbiBleHBsaWNpdGx5IGFza3MgZm9yIGl0KS4NCj4+Pj4+IA0KPj4+
Pj4gVGhlIHJlZ2lzdHJhdGlvbiBjYW4gYmUgZG9uZSBhdCBhbnkgbW9tZW50LCBidXQgaXQgaXMg
bm90IHBvc3NpYmxlDQo+Pj4+PiB0byB1bnJlZ2lzdGVyIGZpZWxkcyBvciBmbGFncyBmb3Igbm93
Lg0KPj4+Pj4gDQo+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBPbGl2aWVyIE1hdHogPG9saXZpZXIubWF0
ekA2d2luZC5jb208bWFpbHRvOm9saXZpZXIubWF0ekA2d2luZC5jb20+Pg0KPj4+Pj4gQWNrZWQt
Ynk6IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldDxtYWlsdG86dGhvbWFzQG1v
bmphbG9uLm5ldD4+DQo+Pj4+IOKAlA0KPj4+PiANCj4+Pj4gDQo+Pj4+IA0KPj4+PiBUaGUgaWRl
YSBvZiByZWdpc3RyYXRpb24gZm9yIHNwYWNlIGluIHRoZSBtYnVmIEkgYW0gbm90IGEgYmlnIGZh
bi4gSSBkaWQgbGlrZQ0KPj4+PiBLb25zdGFudGlu4oCZcyBzdWdnZXN0aW9uIG9mIGhhdmluZyB0
aGUgY29tcGlsZXIgaGVscCB3aXRoIG9wdGltaXppbmcgdGhlIGNvZGUsDQo+Pj4+IGJ1dCB3aXRo
IGEgc2xpZ2h0IGRpZmZlcmVuY2UuIE1heWJlIEkgbWlzdW5kZXJzdGFuZCwgYnV0IG5vdyB3aXRo
IHRoaXMgZGVzaWduDQo+Pj4+IHlvdSBoYXZlIHRvIHBhc3MgdGhlIG9mZnNldHMgdG8gZGlmZmVy
ZW50IHBhcnRzIG9mIHRoZSBhcHBsaWNhdGlvbiBvciBwbGFjZSBpbg0KPj4+PiBnbG9iYWwgbWVt
b3J5IG9yIGhhdmUgZWFjaCBzZWN0aW9uIHJlcXVlc3QgdGhlIG9mZnNldHMuIEl0IHNlZW1zIGdy
ZWF0IGlmIHRoZQ0KPj4+PiBhcHBsaWNhdGlvbiBpcyBvbmUgYmlnIGFwcGxpY2F0aW9uIG9yIGFu
IGFwcGxpYW5jZSBtb2RlbCBhcHBsaWNhdGlvbiBoYXZpbmcNCj4+Pj4gY29udHJvbCBvZiB0aGUg
d2hvbGUgZGVzaWduIG5vdCBzbyBnb29kIGZvciBzZXJ2aWNlIGNoYWlucyBsaWtlIGRlc2lnbnMg
d2hlcmUNCj4+Pj4gZGlmZmVyZW50IHBhcnRzIG9mIHRoZSB3aG9sZSBhcHBsaWNhdGlvbiBpcyBk
ZXNpZ24gYnkgZGlmZmVyZW50IHRlYW1zLg0KPj4+IA0KPj4+IElmIHRoZSBnbG9iYWwgdmFyaWFi
bGUgc3RvcmluZyB0aGUgb2Zmc2V0IGlzIGRlZmluZWQgaW4gdGhlIG1idWYgbGF5ZXIsIHdoYXQN
Cj4+PiB3b3VsZCBiZSB0aGUgcHJvYmxlbT8NCj4+IA0KPj4gQXJlIHlvdSBhc3N1bWluZyB0aGUg
dmFsdWVzIGFyZSBzaGFyZWQgYmV0d2VlbiBwcmltYXJ5L3NlY29uZGFyeSBtb2RlbCBvcg0KPj4g
YmV0d2VlbiBwcm9jZXNzZXMgdXNpbmcgc2hhcmVkIG1lbW9yeT8gSWYgbW92aW5nIHRoZSBwYWNr
ZXQgZGF0YSB2aWEgc2hhcmVkDQo+PiBtZW1vcnkgdG8gYSBkaWZmZXJlbnQgYXBwbGljYXRpb24g
d3JpdHRlbiBieSBhIGRpZmZlcmVudCBjb21wYW55IHlvdSBzdGlsbA0KPj4gaGF2ZSB0byBtb3Zl
IHRoYXQgbWV0YWRhdGEuDQo+IA0KPiBUaGUgZHluYW1pYyBtYnVmIHByb3Bvc2FsIHdvcmtzIHdp
dGggc2Vjb25kYXJ5IHByb2Nlc3Nlcy4gV2hhdCBkb2VzIHRoYXQNCj4gY2hhbmdlIGlmIHRoZSBh
cHBsaWNhdGlvbiBpcyB3cml0dGVuIGJ5IGEgZGlmZmVyZW50IGNvbXBhbnk/IElmIHlvdSBuZWVk
DQo+IHRvIHN0b3JlIGEgdGltZXN0YW1wLCB5b3UgcmVnaXN0ZXIgdGhlIHRpbWVzdGFtcCBhbmQg
dGhlIG9mZnNldCB3aWxsIGJlDQo+IHRoZSBzYW1lIGluIHByaW1hcnkgYW5kIHNlY29uZGFyeS4N
Cj4gDQo+IA0KPj4gSWYgdGhlIHR5cGUgd2FzIGNhcnJpZWQgd2l0aCB0aGUgbWJ1ZiB3ZSBjYW4g
ZWFzaWx5IGNvbnZleSBhIHNtYWxsDQo+PiB0eXBlIHZhbHVlIG9yIHdlIHdvdWxkIG5lZWQgdG8g
dGVsbCB0aGUgb3RoZXIgc2lkZSB3ZSBoYXZlIGFsbCBvZiB0aGlzDQo+PiByZWdpc3RyYXRpb24g
aW5mb3JtYXRpb24gdG8gc2VuZC4gSSB3b3VsZCBzdWdnZXN0IHRoZSBudW1iZXIgb2YgbWJ1Zg0K
Pj4gdHlwZXMgd2lsbCBiZSBzbWFsbCBvdmVyIHRpbWUgYW5kIEkgYmVsaWV2ZSBhIDQgYml0IG9y
IDggYml0IHR5cGUgaXMNCj4+IHJlYXNvbmFibGUuIEluIG1hbnkgcHJvdG9jb2xzIHVzaW5nIGEg
dHlwZSB2YWx1ZSBpcyB1c2VkIHRvIGNvbnZleQ0KPj4gdGhpcyB0eXBlIG9mIGluZm9ybWF0aW9u
LiBXZSBjYW4gZXZlbiB0aWdodGx5IGNvbnRyb2wgdGhlIG51bWJlciBvZg0KPj4gdHlwZXMgRFBE
SyBjb250cm9scyBhbmQgdGhlbiBsZWF2ZSBzb21lIGZvciB1c2VyIGRlZmluZWQgaWYgd2UgbGlr
ZS4NCj4gDQo+IDggYml0cyBtZWFucyAyNTYgZGlmZmVyZW50IG1idWYgbGF5b3V0cy4NCg0KSSBh
bHNvIHN0YXRlZCA0IGJpdHMsIGJ1dCBpdCBpcyBhIHByb2JsZW0gd2l0aCB1c2luZyB0eXBlcyB3
ZSBoYXZlIHRvIGFsbG93IGEgbnVtYmVyIG9mIHRoZW0sIGJ1dCB0aGUgc21hcnQgdGhpbmcgaXMg
d2UgcmVzdHJpY3QgRFBESyB1c2VzIHRvIG9ubHkgYSBmZXcuIFRoZSBkZXZlbG9wZXIgb2Ygb3Ro
ZXIgYXBwbGljYXRpb25zIHVzaW5nIERQREsgY2FuIHVzZSBhbnkgbnVtYmVyIHRoZXkgbmVlZC4N
Cj4gWW91IGRpZCBub3QgcmVwbGllZCB0byBteSBwcmV2aW91cyBxdWVzdGlvbnM6DQoNClNvcnJ5
IEkgZGlkIG5vdCBzZWUgYSBxdWVzdGlvbiBvdGhlciB0aGFuIGEgc3RhdGVtZW50IHdyYXBwZWQg
aW4gYSBxdWVzdGlvbi4NCg0KVGhlIHJlcGx5IHRvIHRoZSB5b3VyIHF1ZXN0aW9uIGFib3V0IHN0
b3JpbmcgdGhlIG9mZnNldHMgaW4gdGhlIG1idWYgbGF5ZXIgaXMganVzdCBleHRyYSBkYXRhIGFu
ZCBBUElzIHdlIGhhdmUgdG8gdGVzdC4gVGhlIG1idWYgcG9vbCB3b3VsZCBoYXZlIHRvIGNhcnJ5
IHRoaXMgaW5mb3JtYXRpb24gb3Igc29tZSB3YXkgdG8gYXNzb2NpYXRlIHRoZSBtZXRhZGF0YSBv
ZiB0aGUgbWV0YWRhdGEgdG8gdGhlIGdpdmVuIG1idWYuIE15IHBvaW50IGlzIHRoZSB0eXBlIGlz
IGNhcnJpZWQgd2l0aCB0aGUgbWJ1ZiBhbmQgdGhlbiB3ZSBoYXZlIG5vIHF1ZXN0aW9uIGFzIHRv
IHRoZSB0eXBlIG9mIG1ldGFkYXRhIGNvbnRhaW5lZCBpbiB0aGUgbWJ1Zi4gSGF2aW5nIG1ldGFk
YXRhIGZvciB0aGUgbWV0YWRhdGEgZm9yIHRoZSBhcHBsaWNhdGlvbiB0byBncmFiIG9yIHVzZSBl
dmVuIG1vcmUgbWFjcm9zIG9yIGlubGluZXMgaXRzIG5vdCBnb2luZyB0byBtYWtlIGl0IGVhc2ll
ciBmb3IgdGhlIGRldmVsb3BlciBvbmx5IG1vcmUgY29tcGxleC4gQSB0eXBlIGZpZWxkIHdpbGwg
dGVsbCB5b3UgZXhhY3RseSB3aGF0IGFuZCB3ZXJlIHRoZSBtZXRhZGF0YSBpcyBsb2NhdGVkIGlu
IHRoZSBtYnVmIGhlYWRlci4NCj4gDQo+IC0gd2hhdCBoYXBwZW5zIGlmIHlvdSBuZWVkIGEgZmll
bGQgZnJvbSBsYXlvdXQxIGFuZCBhbm90aGVyIGZyb20gbGF5b3V0Mj8NCj4gIChleDogdGltZXN0
YW1wICsgaXBzZWMsIHRpbWVzdGFtcCArIHNlcW4sIHNlcW4gKyBpcHNlYywg4oCmKQ0KDQpBdCB0
aGlzIHBvaW50IHlvdSBuZWVkIHRvIGJlIHNtYXJ0IGFuZCB1c2UgYSBzaW5nbGUgdHlwZSBpbnN0
ZWFkIG9mIHRyeWluZyB0byBtZXJnZSB0d28gb3IgdGhyZWUgdHlwZXMgb3IgdXNlIGNhc2VzLiBU
aGUgdHlwZSBkZWZpbmVzIHRoZSB2YWxpZCBmaWVsZHMsIGlmIHdlIGFyZSBjaGFuZ2luZyB0aGUg
ZmllbGRzIGZyb20gb25lIHRvIGFub3RoZXIgaW4gYSBzaW5nbGUgbWJ1ZiBpbnN0YW5jZSBvciBw
YWNrZXQgaW5zdGFuY2UgdGhhdCB3aWxsIG5vdCBoYXBwZW4gaW4gdGhlIGNhc2VzIHlvdSBkZWZp
bmVkIGFib3ZlLiBNdWx0aS1tYnVmcyBmcm9tIHNheSBhIFBNRCBvciBhcHBsaWNhdGlvbiBpcyBu
b3QgZ29pbmcgdG8gbmVlZCB0byBjb21iaW5lIGFsbCBvZiB0aGUgYWJvdmUgZXhhbXBsZXMuDQoN
Cj4gLSBob3cgZG8geW91IGltcGxlbWVudCB0aGUgcngvdHggZHJpdmVycyBmdW5jdGlvbnMgaWYg
eW91IGhhdmUgdG8gc3VwcG9ydA0KPiAgc2V2ZXJhbCBsYXlvdXRzLCB3aGVyZSBhIGZpZWxkIG1h
eSBiZSBhdCBhIGRpZmZlcmVudCBvZmZzZXQ/DQo+IA0KPj4+PiBUaGUgb25seSB0aGluZ3MgeW91
IHdvdWxkIGhhdmUgdG8gZG8gaXM6DQo+Pj4+IA0KPj4+PiAxLyBlbnN1cmUgdGhlIG9mZnNldCBp
cyByZWdpc3RlcmVkDQo+Pj4+ICBydGVfbWJ1Zl9keW5fdGltZXN0YW1wX3JlZ2lzdGVyKCkNCj4+
Pj4gDQo+Pj4+IDIvIHVzZSBoZWxwZXJzDQo+Pj4+ICBydGVfbWJ1Zl9keW5fdGltZXN0YW1wX2dl
dCgpLCBydGVfbWJ1Zl9keW5fdGltZXN0YW1wX3NldCgpLCAuLi4NCj4+IA0KPj4+IEtvbnN0YW50
aW7igJlzIHN1Z2dlc3QgaWYgSSB1bmRlcnN0YW5kIGl0IHdhcyB0byB1c2Ugc3RydWN0dXJlcyB0
byBhbGxvdyB0aGUNCj4+PiBjb21waWxlciB0byBvcHRpbWl6ZSB0aGUgYWNjZXNzIHRvIHRoZSBt
YnVmIGFuZCBJIGxpa2UgdGhhdCBpZGVhLCBidXQgd2l0aCBvbmUNCj4+PiBjaGFuZ2Ugd2UgYWRk
IGEgZmllbGQgaW4gdGhlIG1idWYgdG8gZGVmaW5lIHRoZSBtYnVmIHN0cnVjdHVyZSB0eXBlLg0K
Pj4+IA0KPj4+IFNheSAwIGlzIHRoZSBzdGFuZGFyZCBydGVfbWJ1ZiB0eXBlIHRoZW4gdHlwZSAx
IGNvdWxkIGJlIHRoZSBJUFNlYyBvZmZzZXQgdHlwZQ0KPj4+IG1idWYsIHR5cGUgMiBjb3VsZCBi
ZSBzb21ldGhpbmcgZWxzZSwg4oCmIFRoZSB0eXBlIDAgbG9va3MganVzdCBsaWtlIHRoZSBtYnVm
IHdlDQo+Pj4gaGF2ZSB0b2RheSB3aXRoIG1heWJlIHRoZSBvcHRpb25hbCBmaWVsZHMgc2V0IHRv
IHJlc2VydmVkIG9yIHNvbWUgdHlwZSBvZg0KPj4+IGZpbGxlciB2YXJpYWJsZXMgdG8gcmVzZXJ2
ZSB0aGUgaG9sZXMgaW4gdGhlIHN0cnVjdHVyZS4gVGhlbiB0eXBlIDEgaXMgdGhlDQo+Pj4gSVBT
ZWMgbWJ1ZiBhbmQgaW4gdGhlIHJlc2VydmVkIHNlY3Rpb25zIG9mIHRoZSBtYnVmIGNvbnRhaW4g
dGhlIElQU2VjIHJlbGF0ZWQNCj4+PiBkYXRhIHdpdGggdGhlIHN0YW5kYXJkIG1idWYgZmllbGRz
IHN0aWxsIG1hdGNoaW5nIHRoZSB0eXBlIDAgdmVyc2lvbi4NCj4+IA0KPj4gVGhpcyB2ZXJ5IGxv
b2sgbGlrZSB0aGUgInNlbGVjdGl2ZSBsYXlvdXQiIGluIG91ciBwcmVzZW50YXRpb24gWzFdLCBw
YWdlIDE0Lg0KPj4gDQo+PiBZb3VyIGV4YW1wbGUgdGFsa3MgYWJvdXQgSVBzZWMsIGJ1dCBzb21l
b25lIGVsc2Ugd2lsbCB3YW50IHRvIHVzZSBhDQo+PiBzZXF1ZW5jZSBudW1iZXIsIGFub3RoZXIg
b25lIGEgdGltZXN0YW1wLCBhbmQgYW5vdGhlciBvbmUgd2lsbCB3YW50IHRvDQo+PiB1c2UgdGhp
cyBzcGFjZSBmb3IgaXRzIG93biBhcHBsaWNhdGlvbi4gVGhlcmUgYXJlIGEgbG90IG9mIHVzZSBj
YXNlcywNCj4+IGFuZCBpdCBkb2VzIG5vdCBzY2FsZSB0byBoYXZlIGEgbGF5b3V0IGZvciBlYWNo
IG9mIHRoZW0uIFdvcnN0LCBpZg0KPj4gc29tZW9uZSB3YW50cyBJUHNlYyArIGEgc2VxdWVuY2Ug
bnVtYmVyLCBob3cgY2FuIGl0IHdvcms/DQo+PiANCj4+IE9uZSBvZiB0aGUgcHJvYmxlbSB0byBz
b2x2ZSBpcyB0byBhdm9pZCBtdXR1YWxseSBleGNsdXNpdmUgZmVhdHVyZSAoaS5lLg0KPj4gdW5p
b24gb2YgZmllbGRzIHRoYXQgY2Fubm90IGJlIHVzZWQgdG9nZXRoZXIgaW4gdGhlIG1idWYpLg0K
Pj4gDQo+PiBUaGlzIGFsbG93cyB0aGUgbWJ1ZiB0byBiZSB1c2VkIGJ5IHRoZSBkZXZlbG9wZXIg
YW5kIHRoZSBjb21waWxlciBub3cga25vd3MNCj4+IGV4YWN0bHkgd2hlcmUgdGhlIGZpZWxkcyBh
cmUgbG9jYXRlZCBpbiB0aGUgc3RydWN0dXJlIGFuZCBkb2VzIG5vdCBoYXZlIHRvDQo+PiBkZWFs
IHdpdGggYW55IG9mIHRoZSBtYWNyb3MgYW5kIG9mZnNldHMgYW5kIHJlZ2lzdHJhdGlvbiBzdWdn
ZXN0ZWQgaGVyZS4gSnVzdA0KPj4gY2FzdCB0aGUgbWJ1ZiBwb2ludGVyIGludG8gdGhlIG5ldyB0
eXBlIG1idWYgc3RydWN0dXJlLiBXZSBqdXN0IGhhdmUgdG8gbWFrZQ0KPj4gc3VyZSB0aGUgY29k
ZSB0aGF0IG5lZWRzIHRvIHVzZSBhIGdpdmVuIG1idWYgdHlwZSBoYXMgYWNjZXNzIHRvIHRoZSBz
dHJ1Y3R1cmUNCj4+IGRlZmluaXRpb25zLg0KPj4gDQo+PiBXaXRoIHRoZSBjdXJyZW50IHByb3Bv
c2FsLCB3ZSBjYW4gaW1hZ2luZSBhbiBBUEkgdG8gYXNrIHRvIHJlZ2lzdGVyIGENCj4+IGZpZWxk
IGF0IGEgc3BlY2lmaWMgb2Zmc2V0LiBJdCBjYW4gdGhlbiBiZSB1c2VkIGluIHRoZSBhcHBsaWNh
dGlvbiwgc28NCj4+IHRoYXQgYWNjZXNzZXMgYXJlIGRvbmUgYXQgbm8gY29zdCBjb21wYXJlZCB0
byBhIHN0YXRpYyBmaWVsZCwgYmVjYXVzZQ0KPj4gdGhlIG9mZnNldCB3b3VsZCBiZSBjb25zdC4N
Cj4+IA0KPj4gSW4gdGhlIGRyaXZlciwgdGhlIHNhbWUgbG9naWMgY291bGQgYmUgdXNlZCwgYnV0
IGR5bmFtaWNhbGx5Og0KPj4gDQo+PiBpZiAob2Zmc2V0ID09IFBSRUZFUlJFRF9PRkZTRVQpIHsN
Cj4+ICAgLyogY29kZSB3aXRoIHN0YXRpYyBvZmZzZXQgKi8NCj4+IH0gZWxzZSB7DQo+PiAgIC8q
IGdlbmVyaWMgY29kZSAqLw0KPj4gfQ0KPj4gDQo+PiBCdXQgSSdtIG5vdCBzdXJlIGl0IHdvdWxk
IHNjYWxlIGEgbG90IGlmIHRoZXJlIGFyZSBzZXZlcmFsIGZlYXR1cmVzDQo+PiB1c2luZyBkeW5h
bWljIGZpZWxkcy4NCj4+IA0KPj4+IElmIHRoZSBtYnVmcyBpdCBnb2luZyB0byBiZSB0cmFuc2xh
dGVkIGZyb20gb25lIHR5cGUgbWJ1ZiB0byBhbm90aGVyIG1idWYNCj4+PiB0eXBlLCB3ZSBqdXN0
IGhhdmUgdG8gZGVmaW5lIHRoYXQgdHlwZSBhbmQgdGhlbiBjYXN0IHRoZSBtYnVmIHBvaW50ZXIg
dG8gdGhhdA0KPj4+IHN0cnVjdHVyZS4gV2hlbiBhbiBtYnVmIGlzIHJlY2VpdmVkIGZyb20gSVBT
ZWMgUE1EIHRoZW4gdGhlIGFwcGxpY2F0aW9uIG5lZWRzDQo+Pj4gdG8gZm9yd2FyZCB0aGF0IG1i
dWYgdG8gdGhlIG5leHQgc3RhZ2UgaXQgY2FuIHJlc2V0IHRoZSB0eXBlIHRvIDAgb3IgdG8NCj4+
PiBhbm90aGVyIHR5cGUgZmlsbGluZyBpbiB0aGUgcmVzZXJ2ZWQgZmllbGRzIHRvIGJlIHVzZWQg
YnkgdGhlIG5leHQgc3RhZ2UgaW4NCj4+PiB0aGUgcGlwZWxpbmUuDQo+PiANCj4+IFdoYXQgeW91
IGRlc2NyaWJlIGlzIG9uZSB1c2UgY2FzZS4NCj4+IA0KPj4gV2hhdCBjb3VsZCBiZSBkb25lIHdp
dGggdGhlIEFQSSBtZW50aW9ubmVkIGFib3ZlIChidXQgSSB0aGluayBpdCBpcw0KPj4gZGFuZ2Vy
b3VzKSwgaXMgdG8gYWxsb3cgYSB1c2VyIHRvIHJlZ2lzdGVyIDIgZGlmZmVyZW50IGZpZWxkcyBh
dCB0aGUNCj4+IHNhbWUgb2Zmc2V0LCB1c2luZyBhIHNwZWNpZmljIGZsYWcuIFRoaXMgY291bGQg
d29yayBpZiB0aGUgdXNlciBrbm93cw0KPj4gdGhhdCB0aGVzZSAyIGZpZWxkcyBhcmUgbmV2ZXIg
dXNlZCBhdCB0aGUgc2FtZSB0aW1lLg0KPj4gDQo+PiBUaGUgbWJ1ZiBub3cgY29udGFpbnMgdGhl
IHR5cGUgYW5kIGV2ZXJ5IHBvaW50IGluIHRoZSBhcHBsaWNhdGlvbiBjYW4gbG9vayBhdA0KPj4g
dGhlIHR5cGUgdG8gZGV0ZXJtaW5lIGhvdyB0aGF0IG1idWYgaXMgZGVmaW5lZC4gSSBhbSBzdXJl
IHRoZXJlIGFyZSBzb21lIGhvbGVzDQo+PiBoZXJlLCBidXQgSSB0aGluayBpdCBpcyBhIGJldHRl
ciBzb2x1dGlvbiB0aGVuIHVzaW5nIGFsbCBvZiB0aGVzZSBtYWNyb3MsDQo+PiBvZmZzZXQgdmFs
dWVzIGFuZCByZWdpc3RyYXRpb24gQVBJcy4NCj4+IA0KPj4gSSdtIG5vdCBjb252aW5jZWQgaGF2
aW5nIHNlbGVjdGl2ZSBsYXlvdXRzIGlzIGRvYWJsZS4gVGhlIGxheW91dHMgY2Fubm90DQo+PiBm
aXQgYWxsIHBvc3NpYmxlIHVzZSBjYXNlcywgYW5kIG1hbmFnaW5nIHRoZSBkaWZmZXJlbnQgbGF5
b3V0cyBpbiB0aGUNCj4+IGRyaXZlciBsb29rcyBkaWZmaWN1bHQgdG8gbWUuIEFkZGl0aW9ubmFs
eSwgaXQgZG9lcyBub3Qgc29sdmUgdGhlDQo+PiBwcm9ibGVtIG9mIG11dHVhbGx5IGV4Y2x1c2l2
ZSBmZWF0dXJlcy4NCj4+IA0KPj4gSSB0b28gYXQgb25lIHRpbWUgd2FudGVkIHNvbWUgdHlwZSBv
ZiBhbGxvY2F0aW9uIG9yIHJlZ2lzdHJhdGlvbiBmb3INCj4+IHByaXZhdGUgbWJ1ZiBzcGFjZSBh
bmQgYXBwbHlpbmcgdG8gdGhlc2UgbGltaXRlZCBmaWVsZHMgaW4gdGhlIG1idWYNCj4+IGhlYWRl
ciBtYXkgaGF2ZSBiZWVuIHJlYXNvbmFibGUuIFRoZSBwcm9ibGVtIGlzIHVzaW5nIHJlZ2lzdHJh
dGlvbiBhbmQNCj4+IG1vdmluZyB0aGF0IGluZm9ybWF0aW9uIGJldHdlZW4gcHJvY2Vzc2VzIGlz
IGdvaW5nIHRvIGJlIGhhcmQgdG8gZ2V0DQo+PiByaWdodC4gRm9yIGEgc2luZ2xlIEFwcGxpYW5j
ZSBtb2RlbCBhcHBsaWNhdGlvbiBpdCB3b3VsZCB3b3JrIGdyZWF0DQo+PiBhbmQgbm90IGluIGEg
bm9uLWFwcGxpYW5jZSBtb2RlbCBhcHBsaWNhdGlvbnMuDQo+IA0KPiBJIGRpZG4ndCBnZXQgd2h5
IGl0IHdvdWxkbid0IHdvcmsgaW4gYSBub24tYXBwbGlhbmNlIG1vZGVsIChhcmUgeW91DQo+IHRh
bGtpbmcgYWJvdXQgcHJpbWFyeS9zZWNvbmRhcnkgcHJvY2Vzc2VzPykuIENhbiB5b3UgZWxhYm9y
YXRlIGFib3V0DQo+IHdhaHQgd291bGQgYmUgdGhlIHByb2JsZW0/DQoNCkxldCdzIGxvb2sgYXQg
c29tZXRoaW5nIHNpbWlsYXIgdG8gVlBQIHdpdGggbm9kZXMgaW4gYSBncmFwaCB3aGVyZSBlYWNo
IG5vZGUgbmVlZHMgdG8gdmVyaWZ5IHRoZSBtZXRhZGF0YSBleGlzdHMgaW4gdGhhdCBwYWNrZXQg
KGV4dHJhIG1hY3JvL2lubGluZSBjYWxscykuIFRoaXMgd291bGQgYmUgbmVlZGVkIGZvciBldmVy
eSBwYWNrZXQgcHJvY2Vzc2VkIHVubGVzcyBzb21ldGhpbmcgZWxzZSBtYWtlIHN1cmUgb25seSBz
cGVjaWZpYyBtYnVmIHR5cGUgaXMgdXNlZC4gV2h5IG5vdCBqdXN0IHVzZSBhIHR5cGUgZmllbGQg
YW5kIGNhc3QgdGhlIG1idWYgaW50byB0aGUgY29ycmVjdCB0eXBlIHN0cnVjdHVyZSBhbmQgcmVq
ZWN0IGFueSBtYnVmcyB0aGF0IGRvIG5vdCBtYXRjaCB0aGUgdHlwZXMgdGhhdCBjYW4gYmUgaGFu
ZGxlZCBieSB0aGlzIG5vZGUuIFRoZSB0eXBlIGZpZWxkIHdvdWxkIGJlIGEgc2ltcGxlIHN3aXRj
aCBvciBpZi9lbHNlIGNvbnN0cnVjdC4NCj4gDQo+PiBUaGUgdHlwZS9zdHJ1Y3R1cmUNCj4+IG1l
dGhvZCBjYW4gaGVscCBhbmQgaXQgY291bGQgaGF2ZSBwcm9ibGVtcyB0b28sIGJ1dCB1c2luZyBh
DQo+PiB0eXBlL3N0cnVjdCBkZXNpZ24gc2VlbXMgdG8gYmUgb25lIG9mIHRoZSBCS01zIChCZXN0
IEtub3duIE1ldGhvZHMpIGluDQo+PiB0aGUgaW5kdXN0cnkuDQo+IA0KPiBTb3JyeSwgYnV0IHRo
aXMgaXMgbm90IGEgdmFsaWQgYXJndW1lbnQuDQoNCllvdSBhc3N1bXB0aW9uIGlzIG5vdCB2YWxp
ZCBJTU8uIFNvcnJ5Lg0KDQo+PiBUbyBiZSBob25lc3QgaXQgbWF5YmUgd2UganVzdCB0YWtlIHRo
ZSBoaXQgaW4gcGVyZm9ybWFuY2UgYW5kIGFkZCBhDQo+PiB0aGlyZCBjYWNoZSBsaW5lIGFzIEkg
YW0gc3VyZSB0cnlpbmcgdG8gc3F1ZWV6ZSBtZXRhZGF0YSBpbnRvIHRoZXNlDQo+PiB2ZXJ5IGxp
bWl0IGZpZWxkcyB3aWxsIGJlIGEgY2hhbGxlbmdlIElNTy4gSSBhbSBub3Qgc3VnZ2VzdGluZyB3
ZSBhZGQNCj4+IGEgY2FjaGUgbGluZSB0byBldmVyeSBtYnVmIG9ubHkgdG8gdGhlIHBvb2xzIHRo
YXQgcmVxdWlyZSB0aGUgZXh0cmENCj4+IG1ldGFkYXRhIGJ5IHVzaW5nIHRoZSBwcml2YXRlIHNw
YWNlIGlmIHRoYXQgaXMgcmVhc29uYWJsZS4gVGhlDQo+PiBhcHBsaWNhdGlvbnMgbmVlZGluZyBh
IGxvdCBvZiBtZXRhZGF0YSB3aWxsIGp1c3QgaGF2ZSB0byB0YWtlIHRoZSBoaXQNCj4+IGluIHBl
cmZvcm1hbmNlIGFueXdheS4NCj4gDQo+IElmIGFuIGFwcGxpY2F0aW9uIHdhbnRzIHRvIGF0dGFj
aCBtb3JlIGRhdGEgaW4gdGhlIG1idWYsIHdlIGFscmVhZHkgaGF2ZQ0KPiB0aGUgYXBwbGljYXRp
b24gcHJpdmF0ZSBhcmVhLiBUaGlzIHpvbmUgaXMgdHJhbnNwYXJlbnQgZnJvbSBEUERLIHBvaW50
DQo+IG9mIHZpZXcsIGl0IGRvZXMgbm90IGltcGFjdCBkcml2ZXJzIG9yIGxpYnMuDQoNCldlIHN0
aWxsIGhhdmUgdG8gaGF2ZSBhbGwgcGFydHMgb2YgdGhlIHN5c3RlbSB3aGljaCBhY2Nlc3NlcyB0
aGUgbWV0YWRhdGEgdG8ga25vdyB0aGUgcHJpdmF0ZSBkYXRhIGV4aXN0IGFuZCB3aGF0IGl0J3Mg
Z2l2ZW4gZm9ybWF0LiBZb3Ugc29sdmVkIHRoaXMgd2l0aCBvZmZzZXRzIGFuZCByZWdpc3RyYXRp
b24gdG8gZGVmaW5lIHRoZSBmb3JtYXQuIE15IHN1Z2dlc3Rpb24gaXMgc2ltaWxhciBhcyBpdCBk
ZWZpbmVzIHRoZSBsb2NhdGlvbiBhbmQgdHlwZSBvZiBtZXRhZGF0YSBpbiBhIHR5cGUvc3RydWN0
IGZvcm1hdC4gSSBmZWVsIGl0IGlzIGVhc2llciB0byB1bmRlcnN0YW5kIGFuZCB0b28gcHJvY2Vz
cyBpbiBhIGhpZ2ggcGVyZm9ybWFuY2Ugd2F5Lg0KDQo+IA0KPj4gSGF2aW5nIHRvIGdyYWIgYSBt
ZXRhZGF0YSB2YWx1ZSB2aWEgYSBzZXQgb2YgbWFjcm9zIGFuZCBpbmxpbmUNCj4+IGZ1bmN0aW9u
cyBzZWVtcyBsaWtlIGl0IHdpbGwgY29uc3VtZSBtb3JlIGN5Y2xlcyB0aGVuIGp1c3QgYQ0KPj4g
dHlwZS9zdHJ1Y3R1cmUgbWV0aG9kIGFzIHRoZSBjb21waWxlciB3aWxsIGhlbHAgb3B0aW1pemUg
dGhlIGNvZGUNCj4+IHdpdGhvdXQgaGF2aW5nIHRvIGNhbGwgYW55IG1hY3JvcyBvciBpbmxpbmUg
ZnVuY3Rpb25zLg0KPiANCj4gWWVzLCBJIGtub3cgdGhhdC4gVGhpcyBpcyB0aGUgcHJpY2UgdG8g
cGF5IGZvciBzb2x2aW5nIHRoZSBwcm9ibGVtcw0KPiAod2FzdGVkIHNpemUsIGV4Y2x1c2l2ZSBm
ZWF0dXJlcywgYXZvaWQgYWJpIGJyZWFrYWdlKS4gSSBhbnN3ZXJlZCBpbiBhDQo+IHByZXZpb3Vz
IG1haWwgdGhhdCB0aGUgZXh0cmEgY29zdCBjYW4gYmUgcmVtb3ZlZCBhdCBhcHBsaWNhdGlvbiBs
ZXZlbCBpZg0KPiB3ZSBhZGQgYW4gQVBJIHRvIHJlc2VydmUgYSBrbm93biBvZmZzZXQuIFRoZSBh
YmlsaXR5IHRvIGxvY2F0ZSBzb21lDQo+IG9mZmxvYWQgZmllbGRzIGluIHRoZSBSeCBwYXJ0IG1h
eSBhbHNvIGhlbHAgdG8gZ2FpbiBzb21lIGN5Y2xlcyBjb21wYXJlZA0KPiB0byBzdGF0aWMgZmll
bGRzLg0KDQpUaGlzIG1heWJlIHRydWUsIGJ1dCBJIGRvIG5vdCBzZWUgaG93IHRoZSBjeWNsZXMg
Y2FuIGJlIHJlbW92ZWQgdW5sZXNzIHlvdSBjcmVhdGUgYSBzdHJ1Y3R1cmUgbGF5b3V0IGluIHRo
ZSBhcHBsaWNhdGlvbiB0byBhY2Nlc3MgdGhlIG1ldGFkYXRhLiBKdXN0IHNheWluZyBpdCBjYW4g
YmUgc29sdmVkIGlzIE9LLCBidXQgcHJvdmluZyBpdCBjYW4gYmUgc29sdmVkIGlzIHRoZSByZWFs
IHF1ZXN0aW9uLg0KDQpBbnl3YXkgSSBhbSBub3QgZ29pbmcgdG8gYXJndWUgd2l0aCB5b3UsIHRo
ZSBjb21tdW5pdHkgY2FuIGRlY2lkZSBpZiB5b3VyIHNvbHV0aW9uIHNvbHZlcyB0aGUgcHJvYmxl
bS4gSW4gbXkgY2FzZSBJIGRvIG5vdCBzZWUgaXQgc29sdmluZyBpdCBpbiB0aGUgYmVzdCB3YXkg
YW5kIG15IHN1Z2dlc3Rpb24gbWF5IG5vdCBiZSB0aGUgYmVzdCBlaXRoZXIuDQo+IA0KPiBSZWdh
cmRzLA0KPiBPbGl2aWVyDQoNClJlZ2FyZHMsDQpLZWl0aA0KDQo=