From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 38776A0613 for ; Mon, 23 Sep 2019 17:15:14 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id D30F81BE98; Mon, 23 Sep 2019 17:15:12 +0200 (CEST) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by dpdk.org (Postfix) with ESMTP id C68891BE92 for ; Mon, 23 Sep 2019 17:15:10 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 23 Sep 2019 08:15:08 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,540,1559545200"; d="scan'208,217";a="363657239" Received: from fmsmsx108.amr.corp.intel.com ([10.18.124.206]) by orsmga005.jf.intel.com with ESMTP; 23 Sep 2019 08:14:52 -0700 Received: from fmsmsx115.amr.corp.intel.com (10.18.116.19) by FMSMSX108.amr.corp.intel.com (10.18.124.206) with Microsoft SMTP Server (TLS) id 14.3.439.0; Mon, 23 Sep 2019 08:14:52 -0700 Received: from fmsmsx117.amr.corp.intel.com ([169.254.3.133]) by fmsmsx115.amr.corp.intel.com ([169.254.4.243]) with mapi id 14.03.0439.000; Mon, 23 Sep 2019 08:14:52 -0700 From: "Wiles, Keith" To: Olivier Matz CC: dev , Thomas Monjalon , "Wang, Haiyue" , Stephen Hemminger , Andrew Rybchenko , Jerin Jacob Kollanukkaran Thread-Topic: [PATCH] mbuf: support dynamic fields and flags Thread-Index: AQHVbkHXCVvrq0cpZk2iDJ212rSDCKc2Re8AgAMxGICAAGUXAA== Date: Mon, 23 Sep 2019 15:14:51 +0000 Message-ID: <12FB7B92-A7FE-40E1-A6AA-DD1C92AF0A59@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> In-Reply-To: <20190923091301.hquyxbbcbai43e4p@platinum> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.252.202.153] MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 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 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" DQoNCk9uIFNlcCAyMywgMjAxOSwgYXQgNDoxMyBBTSwgT2xpdmllciBNYXR6IDxvbGl2aWVyLm1h dHpANndpbmQuY29tPG1haWx0bzpvbGl2aWVyLm1hdHpANndpbmQuY29tPj4gd3JvdGU6DQoNCkhp IEtlaXRoLA0KDQpPbiBTYXQsIFNlcCAyMSwgMjAxOSBhdCAwODoyODozMkFNICswMDAwLCBXaWxl cywgS2VpdGggd3JvdGU6DQoNCg0KT24gU2VwIDE4LCAyMDE5LCBhdCA2OjU0IFBNLCBPbGl2aWVy IE1hdHogPG9saXZpZXIubWF0ekA2d2luZC5jb208bWFpbHRvOm9saXZpZXIubWF0ekA2d2luZC5j b20+PiB3cm90ZToNCg0KTWFueSBmZWF0dXJlcyByZXF1aXJlIHRvIHN0b3JlIGRhdGEgaW5zaWRl IHRoZSBtYnVmLiBBcyB0aGUgcm9vbSBpbiBtYnVmDQpzdHJ1Y3R1cmUgaXMgbGltaXRlZCwgaXQg aXMgbm90IHBvc3NpYmxlIHRvIGhhdmUgYSBmaWVsZCBmb3IgZWFjaA0KZmVhdHVyZS4gQWxzbywg Y2hhbmdpbmcgZmllbGRzIGluIHRoZSBtYnVmIHN0cnVjdHVyZSBjYW4gYnJlYWsgdGhlIEFQSQ0K b3IgQUJJLg0KDQpUaGlzIGNvbW1pdCBhZGRyZXNzZXMgdGhlc2UgaXNzdWVzLCBieSBlbmFibGlu ZyB0aGUgZHluYW1pYyByZWdpc3RyYXRpb24NCm9mIGZpZWxkcyBvciBmbGFnczoNCg0KLSBhIGR5 bmFtaWMgZmllbGQgaXMgYSBuYW1lZCBhcmVhIGluIHRoZSBydGVfbWJ1ZiBzdHJ1Y3R1cmUsIHdp dGggYQ0KZ2l2ZW4gc2l6ZSAoPj0gMSBieXRlKSBhbmQgYWxpZ25tZW50IGNvbnN0cmFpbnQuDQot IGEgZHluYW1pYyBmbGFnIGlzIGEgbmFtZWQgYml0IGluIHRoZSBydGVfbWJ1ZiBzdHJ1Y3R1cmUu DQoNClRoZSB0eXBpY2FsIHVzZSBjYXNlIGlzIGEgUE1EIHRoYXQgcmVnaXN0ZXJzIHNwYWNlIGZv ciBhbiBvZmZsb2FkDQpmZWF0dXJlLCB3aGVuIHRoZSBhcHBsaWNhdGlvbiByZXF1ZXN0cyB0byBl bmFibGUgdGhpcyBmZWF0dXJlLiAgQXMNCnRoZSBzcGFjZSBpbiBtYnVmIGlzIGxpbWl0ZWQsIHRo ZSBzcGFjZSBzaG91bGQgb25seSBiZSByZXNlcnZlZCBpZiBpdA0KaXMgZ29pbmcgdG8gYmUgdXNl ZCAoaS5lIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGV4cGxpY2l0bHkgYXNrcyBmb3IgaXQpLg0KDQpU aGUgcmVnaXN0cmF0aW9uIGNhbiBiZSBkb25lIGF0IGFueSBtb21lbnQsIGJ1dCBpdCBpcyBub3Qg cG9zc2libGUNCnRvIHVucmVnaXN0ZXIgZmllbGRzIG9yIGZsYWdzIGZvciBub3cuDQoNClNpZ25l ZC1vZmYtYnk6IE9saXZpZXIgTWF0eiA8b2xpdmllci5tYXR6QDZ3aW5kLmNvbTxtYWlsdG86b2xp dmllci5tYXR6QDZ3aW5kLmNvbT4+DQpBY2tlZC1ieTogVGhvbWFzIE1vbmphbG9uIDx0aG9tYXNA bW9uamFsb24ubmV0PG1haWx0bzp0aG9tYXNAbW9uamFsb24ubmV0Pj4NCuKAlA0KDQoNCg0KVGhl IGlkZWEgb2YgcmVnaXN0cmF0aW9uIGZvciBzcGFjZSBpbiB0aGUgbWJ1ZiBJIGFtIG5vdCBhIGJp ZyBmYW4uIEkgZGlkIGxpa2UNCktvbnN0YW50aW7igJlzIHN1Z2dlc3Rpb24gb2YgaGF2aW5nIHRo ZSBjb21waWxlciBoZWxwIHdpdGggb3B0aW1pemluZyB0aGUgY29kZSwNCmJ1dCB3aXRoIGEgc2xp Z2h0IGRpZmZlcmVuY2UuIE1heWJlIEkgbWlzdW5kZXJzdGFuZCwgYnV0IG5vdyB3aXRoIHRoaXMg ZGVzaWduDQp5b3UgaGF2ZSB0byBwYXNzIHRoZSBvZmZzZXRzIHRvIGRpZmZlcmVudCBwYXJ0cyBv ZiB0aGUgYXBwbGljYXRpb24gb3IgcGxhY2UgaW4NCmdsb2JhbCBtZW1vcnkgb3IgaGF2ZSBlYWNo IHNlY3Rpb24gcmVxdWVzdCB0aGUgb2Zmc2V0cy4gSXQgc2VlbXMgZ3JlYXQgaWYgdGhlDQphcHBs aWNhdGlvbiBpcyBvbmUgYmlnIGFwcGxpY2F0aW9uIG9yIGFuIGFwcGxpYW5jZSBtb2RlbCBhcHBs aWNhdGlvbiBoYXZpbmcNCmNvbnRyb2wgb2YgdGhlIHdob2xlIGRlc2lnbiBub3Qgc28gZ29vZCBm b3Igc2VydmljZSBjaGFpbnMgbGlrZSBkZXNpZ25zIHdoZXJlDQpkaWZmZXJlbnQgcGFydHMgb2Yg dGhlIHdob2xlIGFwcGxpY2F0aW9uIGlzIGRlc2lnbiBieSBkaWZmZXJlbnQgdGVhbXMuDQoNCklm IHRoZSBnbG9iYWwgdmFyaWFibGUgc3RvcmluZyB0aGUgb2Zmc2V0IGlzIGRlZmluZWQgaW4gdGhl IG1idWYgbGF5ZXIsIHdoYXQNCndvdWxkIGJlIHRoZSBwcm9ibGVtPw0KDQpBcmUgeW91IGFzc3Vt aW5nIHRoZSB2YWx1ZXMgYXJlIHNoYXJlZCBiZXR3ZWVuIHByaW1hcnkvc2Vjb25kYXJ5IG1vZGVs IG9yIGJldHdlZW4gcHJvY2Vzc2VzIHVzaW5nIHNoYXJlZCBtZW1vcnk/IElmIG1vdmluZyB0aGUg cGFja2V0IGRhdGEgdmlhIHNoYXJlZCBtZW1vcnkgdG8gYSBkaWZmZXJlbnQgYXBwbGljYXRpb24g d3JpdHRlbiBieSBhIGRpZmZlcmVudCBjb21wYW55IHlvdSBzdGlsbCBoYXZlIHRvIG1vdmUgdGhh dCBtZXRhZGF0YS4gSWYgdGhlIHR5cGUgd2FzIGNhcnJpZWQgd2l0aCB0aGUgbWJ1ZiB3ZSBjYW4g ZWFzaWx5IGNvbnZleSBhIHNtYWxsIHR5cGUgdmFsdWUgb3Igd2Ugd291bGQgbmVlZCB0byB0ZWxs IHRoZSBvdGhlciBzaWRlIHdlIGhhdmUgYWxsIG9mIHRoaXMgcmVnaXN0cmF0aW9uIGluZm9ybWF0 aW9uIHRvIHNlbmQuIEkgd291bGQgc3VnZ2VzdCB0aGUgbnVtYmVyIG9mIG1idWYgdHlwZXMgd2ls bCBiZSBzbWFsbCBvdmVyIHRpbWUgYW5kIEkgYmVsaWV2ZSBhIDQgYml0IG9yIDggYml0IHR5cGUg aXMgcmVhc29uYWJsZS4gSW4gbWFueSBwcm90b2NvbHMgdXNpbmcgYSB0eXBlIHZhbHVlIGlzIHVz ZWQgdG8gY29udmV5IHRoaXMgdHlwZSBvZiBpbmZvcm1hdGlvbi4gV2UgY2FuIGV2ZW4gdGlnaHRs eSBjb250cm9sIHRoZSBudW1iZXIgb2YgdHlwZXMgRFBESyBjb250cm9scyBhbmQgdGhlbiBsZWF2 ZSBzb21lIGZvciB1c2VyIGRlZmluZWQgaWYgd2UgbGlrZS4NCg0KDQpUaGUgb25seSB0aGluZ3Mg eW91IHdvdWxkIGhhdmUgdG8gZG8gaXM6DQoNCjEvIGVuc3VyZSB0aGUgb2Zmc2V0IGlzIHJlZ2lz dGVyZWQNCiAgcnRlX21idWZfZHluX3RpbWVzdGFtcF9yZWdpc3RlcigpDQoNCjIvIHVzZSBoZWxw ZXJzDQogIHJ0ZV9tYnVmX2R5bl90aW1lc3RhbXBfZ2V0KCksIHJ0ZV9tYnVmX2R5bl90aW1lc3Rh bXBfc2V0KCksIC4uLg0KDQpLb25zdGFudGlu4oCZcyBzdWdnZXN0IGlmIEkgdW5kZXJzdGFuZCBp dCB3YXMgdG8gdXNlIHN0cnVjdHVyZXMgdG8gYWxsb3cgdGhlDQpjb21waWxlciB0byBvcHRpbWl6 ZSB0aGUgYWNjZXNzIHRvIHRoZSBtYnVmIGFuZCBJIGxpa2UgdGhhdCBpZGVhLCBidXQgd2l0aCBv bmUNCmNoYW5nZSB3ZSBhZGQgYSBmaWVsZCBpbiB0aGUgbWJ1ZiB0byBkZWZpbmUgdGhlIG1idWYg c3RydWN0dXJlIHR5cGUuDQoNClNheSAwIGlzIHRoZSBzdGFuZGFyZCBydGVfbWJ1ZiB0eXBlIHRo ZW4gdHlwZSAxIGNvdWxkIGJlIHRoZSBJUFNlYyBvZmZzZXQgdHlwZQ0KbWJ1ZiwgdHlwZSAyIGNv dWxkIGJlIHNvbWV0aGluZyBlbHNlLCDigKYgVGhlIHR5cGUgMCBsb29rcyBqdXN0IGxpa2UgdGhl IG1idWYgd2UNCmhhdmUgdG9kYXkgd2l0aCBtYXliZSB0aGUgb3B0aW9uYWwgZmllbGRzIHNldCB0 byByZXNlcnZlZCBvciBzb21lIHR5cGUgb2YNCmZpbGxlciB2YXJpYWJsZXMgdG8gcmVzZXJ2ZSB0 aGUgaG9sZXMgaW4gdGhlIHN0cnVjdHVyZS4gVGhlbiB0eXBlIDEgaXMgdGhlDQpJUFNlYyBtYnVm IGFuZCBpbiB0aGUgcmVzZXJ2ZWQgc2VjdGlvbnMgb2YgdGhlIG1idWYgY29udGFpbiB0aGUgSVBT ZWMgcmVsYXRlZA0KZGF0YSB3aXRoIHRoZSBzdGFuZGFyZCBtYnVmIGZpZWxkcyBzdGlsbCBtYXRj aGluZyB0aGUgdHlwZSAwIHZlcnNpb24uDQoNClRoaXMgdmVyeSBsb29rIGxpa2UgdGhlICJzZWxl Y3RpdmUgbGF5b3V0IiBpbiBvdXIgcHJlc2VudGF0aW9uIFsxXSwgcGFnZSAxNC4NCg0KWW91ciBl eGFtcGxlIHRhbGtzIGFib3V0IElQc2VjLCBidXQgc29tZW9uZSBlbHNlIHdpbGwgd2FudCB0byB1 c2UgYQ0Kc2VxdWVuY2UgbnVtYmVyLCBhbm90aGVyIG9uZSBhIHRpbWVzdGFtcCwgYW5kIGFub3Ro ZXIgb25lIHdpbGwgd2FudCB0bw0KdXNlIHRoaXMgc3BhY2UgZm9yIGl0cyBvd24gYXBwbGljYXRp b24uIFRoZXJlIGFyZSBhIGxvdCBvZiB1c2UgY2FzZXMsDQphbmQgaXQgZG9lcyBub3Qgc2NhbGUg dG8gaGF2ZSBhIGxheW91dCBmb3IgZWFjaCBvZiB0aGVtLiBXb3JzdCwgaWYNCnNvbWVvbmUgd2Fu dHMgSVBzZWMgKyBhIHNlcXVlbmNlIG51bWJlciwgaG93IGNhbiBpdCB3b3JrPw0KDQpPbmUgb2Yg dGhlIHByb2JsZW0gdG8gc29sdmUgaXMgdG8gYXZvaWQgbXV0dWFsbHkgZXhjbHVzaXZlIGZlYXR1 cmUgKGkuZS4NCnVuaW9uIG9mIGZpZWxkcyB0aGF0IGNhbm5vdCBiZSB1c2VkIHRvZ2V0aGVyIGlu IHRoZSBtYnVmKS4NCg0KVGhpcyBhbGxvd3MgdGhlIG1idWYgdG8gYmUgdXNlZCBieSB0aGUgZGV2 ZWxvcGVyIGFuZCB0aGUgY29tcGlsZXIgbm93IGtub3dzDQpleGFjdGx5IHdoZXJlIHRoZSBmaWVs ZHMgYXJlIGxvY2F0ZWQgaW4gdGhlIHN0cnVjdHVyZSBhbmQgZG9lcyBub3QgaGF2ZSB0bw0KZGVh bCB3aXRoIGFueSBvZiB0aGUgbWFjcm9zIGFuZCBvZmZzZXRzIGFuZCByZWdpc3RyYXRpb24gc3Vn Z2VzdGVkIGhlcmUuIEp1c3QNCmNhc3QgdGhlIG1idWYgcG9pbnRlciBpbnRvIHRoZSBuZXcgdHlw ZSBtYnVmIHN0cnVjdHVyZS4gV2UganVzdCBoYXZlIHRvIG1ha2UNCnN1cmUgdGhlIGNvZGUgdGhh dCBuZWVkcyB0byB1c2UgYSBnaXZlbiBtYnVmIHR5cGUgaGFzIGFjY2VzcyB0byB0aGUgc3RydWN0 dXJlDQpkZWZpbml0aW9ucy4NCg0KV2l0aCB0aGUgY3VycmVudCBwcm9wb3NhbCwgd2UgY2FuIGlt YWdpbmUgYW4gQVBJIHRvIGFzayB0byByZWdpc3RlciBhDQpmaWVsZCBhdCBhIHNwZWNpZmljIG9m ZnNldC4gSXQgY2FuIHRoZW4gYmUgdXNlZCBpbiB0aGUgYXBwbGljYXRpb24sIHNvDQp0aGF0IGFj Y2Vzc2VzIGFyZSBkb25lIGF0IG5vIGNvc3QgY29tcGFyZWQgdG8gYSBzdGF0aWMgZmllbGQsIGJl Y2F1c2UNCnRoZSBvZmZzZXQgd291bGQgYmUgY29uc3QuDQoNCkluIHRoZSBkcml2ZXIsIHRoZSBz YW1lIGxvZ2ljIGNvdWxkIGJlIHVzZWQsIGJ1dCBkeW5hbWljYWxseToNCg0KIGlmIChvZmZzZXQg PT0gUFJFRkVSUkVEX09GRlNFVCkgew0KICAgLyogY29kZSB3aXRoIHN0YXRpYyBvZmZzZXQgKi8N CiB9IGVsc2Ugew0KICAgLyogZ2VuZXJpYyBjb2RlICovDQogfQ0KDQpCdXQgSSdtIG5vdCBzdXJl IGl0IHdvdWxkIHNjYWxlIGEgbG90IGlmIHRoZXJlIGFyZSBzZXZlcmFsIGZlYXR1cmVzDQp1c2lu ZyBkeW5hbWljIGZpZWxkcy4NCg0KSWYgdGhlIG1idWZzIGl0IGdvaW5nIHRvIGJlIHRyYW5zbGF0 ZWQgZnJvbSBvbmUgdHlwZSBtYnVmIHRvIGFub3RoZXIgbWJ1Zg0KdHlwZSwgd2UganVzdCBoYXZl IHRvIGRlZmluZSB0aGF0IHR5cGUgYW5kIHRoZW4gY2FzdCB0aGUgbWJ1ZiBwb2ludGVyIHRvIHRo YXQNCnN0cnVjdHVyZS4gV2hlbiBhbiBtYnVmIGlzIHJlY2VpdmVkIGZyb20gSVBTZWMgUE1EIHRo ZW4gdGhlIGFwcGxpY2F0aW9uIG5lZWRzDQp0byBmb3J3YXJkIHRoYXQgbWJ1ZiB0byB0aGUgbmV4 dCBzdGFnZSBpdCBjYW4gcmVzZXQgdGhlIHR5cGUgdG8gMCBvciB0bw0KYW5vdGhlciB0eXBlIGZp bGxpbmcgaW4gdGhlIHJlc2VydmVkIGZpZWxkcyB0byBiZSB1c2VkIGJ5IHRoZSBuZXh0IHN0YWdl IGluDQp0aGUgcGlwZWxpbmUuDQoNCldoYXQgeW91IGRlc2NyaWJlIGlzIG9uZSB1c2UgY2FzZS4N Cg0KV2hhdCBjb3VsZCBiZSBkb25lIHdpdGggdGhlIEFQSSBtZW50aW9ubmVkIGFib3ZlIChidXQg SSB0aGluayBpdCBpcw0KZGFuZ2Vyb3VzKSwgaXMgdG8gYWxsb3cgYSB1c2VyIHRvIHJlZ2lzdGVy IDIgZGlmZmVyZW50IGZpZWxkcyBhdCB0aGUNCnNhbWUgb2Zmc2V0LCB1c2luZyBhIHNwZWNpZmlj IGZsYWcuIFRoaXMgY291bGQgd29yayBpZiB0aGUgdXNlciBrbm93cw0KdGhhdCB0aGVzZSAyIGZp ZWxkcyBhcmUgbmV2ZXIgdXNlZCBhdCB0aGUgc2FtZSB0aW1lLg0KDQpUaGUgbWJ1ZiBub3cgY29u dGFpbnMgdGhlIHR5cGUgYW5kIGV2ZXJ5IHBvaW50IGluIHRoZSBhcHBsaWNhdGlvbiBjYW4gbG9v ayBhdA0KdGhlIHR5cGUgdG8gZGV0ZXJtaW5lIGhvdyB0aGF0IG1idWYgaXMgZGVmaW5lZC4gSSBh bSBzdXJlIHRoZXJlIGFyZSBzb21lIGhvbGVzDQpoZXJlLCBidXQgSSB0aGluayBpdCBpcyBhIGJl dHRlciBzb2x1dGlvbiB0aGVuIHVzaW5nIGFsbCBvZiB0aGVzZSBtYWNyb3MsDQpvZmZzZXQgdmFs dWVzIGFuZCByZWdpc3RyYXRpb24gQVBJcy4NCg0KSSdtIG5vdCBjb252aW5jZWQgaGF2aW5nIHNl bGVjdGl2ZSBsYXlvdXRzIGlzIGRvYWJsZS4gVGhlIGxheW91dHMgY2Fubm90DQpmaXQgYWxsIHBv c3NpYmxlIHVzZSBjYXNlcywgYW5kIG1hbmFnaW5nIHRoZSBkaWZmZXJlbnQgbGF5b3V0cyBpbiB0 aGUNCmRyaXZlciBsb29rcyBkaWZmaWN1bHQgdG8gbWUuIEFkZGl0aW9ubmFseSwgaXQgZG9lcyBu b3Qgc29sdmUgdGhlDQpwcm9ibGVtIG9mIG11dHVhbGx5IGV4Y2x1c2l2ZSBmZWF0dXJlcy4NCg0K SSB0b28gYXQgb25lIHRpbWUgd2FudGVkIHNvbWUgdHlwZSBvZiBhbGxvY2F0aW9uIG9yIHJlZ2lz dHJhdGlvbiBmb3IgcHJpdmF0ZSBtYnVmIHNwYWNlIGFuZCBhcHBseWluZyB0byB0aGVzZSBsaW1p dGVkIGZpZWxkcyBpbiB0aGUgbWJ1ZiBoZWFkZXIgbWF5IGhhdmUgYmVlbiByZWFzb25hYmxlLiBU aGUgcHJvYmxlbSBpcyB1c2luZyByZWdpc3RyYXRpb24gYW5kIG1vdmluZyB0aGF0IGluZm9ybWF0 aW9uIGJldHdlZW4gcHJvY2Vzc2VzIGlzIGdvaW5nIHRvIGJlIGhhcmQgdG8gZ2V0IHJpZ2h0LiBG b3IgYSBzaW5nbGUgQXBwbGlhbmNlIG1vZGVsIGFwcGxpY2F0aW9uIGl0IHdvdWxkIHdvcmsgZ3Jl YXQgYW5kIG5vdCBpbiBhIG5vbi1hcHBsaWFuY2UgbW9kZWwgYXBwbGljYXRpb25zLiBUaGUgdHlw ZS9zdHJ1Y3R1cmUgbWV0aG9kIGNhbiBoZWxwIGFuZCBpdCBjb3VsZCBoYXZlIHByb2JsZW1zIHRv bywgYnV0IHVzaW5nIGEgdHlwZS9zdHJ1Y3QgZGVzaWduIHNlZW1zIHRvIGJlIG9uZSBvZiB0aGUg QktNcyAoQmVzdCBLbm93biBNZXRob2RzKSBpbiB0aGUgaW5kdXN0cnkuDQoNClRvIGJlIGhvbmVz dCBpdCBtYXliZSB3ZSBqdXN0IHRha2UgdGhlIGhpdCBpbiBwZXJmb3JtYW5jZSBhbmQgYWRkIGEg dGhpcmQgY2FjaGUgbGluZSBhcyBJIGFtIHN1cmUgdHJ5aW5nIHRvIHNxdWVlemUgbWV0YWRhdGEg aW50byB0aGVzZSB2ZXJ5IGxpbWl0IGZpZWxkcyB3aWxsIGJlIGEgY2hhbGxlbmdlIElNTy4gSSBh bSBub3Qgc3VnZ2VzdGluZyB3ZSBhZGQgYSBjYWNoZSBsaW5lIHRvIGV2ZXJ5IG1idWYgb25seSB0 byB0aGUgcG9vbHMgdGhhdCByZXF1aXJlIHRoZSBleHRyYSBtZXRhZGF0YSBieSB1c2luZyB0aGUg cHJpdmF0ZSBzcGFjZSBpZiB0aGF0IGlzIHJlYXNvbmFibGUuIFRoZSBhcHBsaWNhdGlvbnMgbmVl ZGluZyBhIGxvdCBvZiBtZXRhZGF0YSB3aWxsIGp1c3QgaGF2ZSB0byB0YWtlIHRoZSBoaXQgaW4g cGVyZm9ybWFuY2UgYW55d2F5Lg0KDQpIYXZpbmcgdG8gZ3JhYiBhIG1ldGFkYXRhIHZhbHVlIHZp YSBhIHNldCBvZiBtYWNyb3MgYW5kIGlubGluZSBmdW5jdGlvbnMgc2VlbXMgbGlrZSBpdCB3aWxs IGNvbnN1bWUgbW9yZSBjeWNsZXMgdGhlbiBqdXN0IGEgdHlwZS9zdHJ1Y3R1cmUgbWV0aG9kIGFz IHRoZSBjb21waWxlciB3aWxsIGhlbHAgb3B0aW1pemUgdGhlIGNvZGUgd2l0aG91dCBoYXZpbmcg dG8gY2FsbCBhbnkgbWFjcm9zIG9yIGlubGluZSBmdW5jdGlvbnMuDQoNCg0KVGhhbmtzIGZvciB0 aGUgZmVlZGJhY2suDQpPbGl2aWVyDQoNClsxXSBodHRwczovL3N0YXRpYy5zY2hlZC5jb20vaG9z dGVkX2ZpbGVzL2RwZGtib3JkZWF1eDIwMTkvMmIvZHBkay0yMDE5MDktZHluLW1idWYucGRmDQoN ClJlZ2FyZHMsDQpLZWl0aA0KDQo=