From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by dpdk.org (Postfix) with ESMTP id C6B5D1B565 for ; Fri, 30 Nov 2018 16:37:50 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Nov 2018 07:37:50 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.56,299,1539673200"; d="scan'208,217";a="100436828" Received: from fmsmsx107.amr.corp.intel.com ([10.18.124.205]) by fmsmga008.fm.intel.com with ESMTP; 30 Nov 2018 07:37:49 -0800 Received: from fmsmsx125.amr.corp.intel.com (10.18.125.40) by fmsmsx107.amr.corp.intel.com (10.18.124.205) with Microsoft SMTP Server (TLS) id 14.3.408.0; Fri, 30 Nov 2018 07:37:50 -0800 Received: from fmsmsx117.amr.corp.intel.com ([169.254.3.100]) by FMSMSX125.amr.corp.intel.com ([169.254.2.15]) with mapi id 14.03.0415.000; Fri, 30 Nov 2018 07:37:49 -0800 From: "Wiles, Keith" To: "Zhang, Qi Z" CC: dpdk-dev , "Richardson, Bruce" , "Yigit, Ferruh" , Thomas Monjalon , "Ananyev, Konstantin" Thread-Topic: [dpdk-dev] [RFC] DFS (DPDK Filesystem) Thread-Index: AQHUX1g+rIvd8hoH1Eq/csPHM63tj6Vkiy8AgASZHYCAAChpgA== Date: Fri, 30 Nov 2018 15:37:48 +0000 Message-ID: <7657793B-4A63-4DD3-B4BF-F7B285FCA290@intel.com> References: <897126DE-FC79-48FF-9B35-3E262EBDF093@intel.com> <039ED4275CED7440929022BC67E70611532F7D53@SHSMSX103.ccr.corp.intel.com> In-Reply-To: <039ED4275CED7440929022BC67E70611532F7D53@SHSMSX103.ccr.corp.intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.254.9.178] 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] [RFC] DFS (DPDK Filesystem) 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: , X-List-Received-Date: Fri, 30 Nov 2018 15:37:51 -0000 DQoNCk9uIE5vdiAzMCwgMjAxOCwgYXQgNzoxMyBBTSwgWmhhbmcsIFFpIFogPHFpLnouemhhbmdA aW50ZWwuY29tPG1haWx0bzpxaS56LnpoYW5nQGludGVsLmNvbT4+IHdyb3RlOg0KDQpIaSBLZWl0 aDoNCg0KDQotLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KRnJvbTogZGV2IFttYWlsdG86ZGV2 LWJvdW5jZXNAZHBkay5vcmddIE9uIEJlaGFsZiBPZiBXaWxlcywgS2VpdGgNClNlbnQ6IFR1ZXNk YXksIE5vdmVtYmVyIDI3LCAyMDE4IDExOjAwIFBNDQpUbzogZHBkay1kZXYgPGRldkBkcGRrLm9y ZzxtYWlsdG86ZGV2QGRwZGsub3JnPj4NCkNjOiBSaWNoYXJkc29uLCBCcnVjZSA8YnJ1Y2Uucmlj aGFyZHNvbkBpbnRlbC5jb208bWFpbHRvOmJydWNlLnJpY2hhcmRzb25AaW50ZWwuY29tPj47IFlp Z2l0LCBGZXJydWgNCjxmZXJydWgueWlnaXRAaW50ZWwuY29tPG1haWx0bzpmZXJydWgueWlnaXRA aW50ZWwuY29tPj47IFRob21hcyBNb25qYWxvbiA8dGhvbWFzQG1vbmphbG9uLm5ldDxtYWlsdG86 dGhvbWFzQG1vbmphbG9uLm5ldD4+Ow0KQW5hbnlldiwgS29uc3RhbnRpbiA8a29uc3RhbnRpbi5h bmFueWV2QGludGVsLmNvbTxtYWlsdG86a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4+DQpT dWJqZWN0OiBSZTogW2RwZGstZGV2XSBbUkZDXSBERlMgKERQREsgRmlsZXN5c3RlbSkNCg0KDQoN Ck9uIE9jdCA4LCAyMDE4LCBhdCA1OjQyIFBNLCBXaWxlcywgS2VpdGggPGtlaXRoLndpbGVzQGlu dGVsLmNvbTxtYWlsdG86a2VpdGgud2lsZXNAaW50ZWwuY29tPj4gd3JvdGU6DQoNCkhpIEV2ZXJ5 b25lLA0KDQpJIHdvdWxkIGxpa2UgdG8gcmVxdWVzdCBjb21tZW50cyBvbiBERlMgYXMgSSBwcmVz ZW50ZWQgYXQgdGhlIERQREsgc3VtbWl0DQppbiBJcmVsYW5kLg0KDQpBcyB3ZSBrbm93IERQREsg Y2FuIGJlIGRpZmZpY3VsdCB0byBtYW5hZ2UgYXQgcnVuIHRpbWUgYW5kIGFzIERQREsNCmJlY29t ZXMgbW9yZSBkeW5hbWljIHdlIG5lZWQgdG8gYWRkcmVzcyBob3cgdG8gY29uZmlndXJlIGFuZCBt b25pdG9yDQpEUERLIGFuZCBEUERLLWJhc2VkIGFwcGxpY2F0aW9ucy4gQSBwb3NzaWJsZSBzb2x1 dGlvbiBpcyB0byB1c2UgRlVTRSBmaWxlDQpzeXN0ZW0gc3VwcG9ydCBhbHJlYWR5IGluIHRoZSBM aW51eCBrZXJuZWwgdGhyb3VnaCBhIERQREsgbGlicmFyeSB0byBleHBvc2UgYQ0KZGlyZWN0b3J5 IHN0cnVjdHVyZSBmb3IgYW55b25lIHRvIGJlIGFibGUgdG8gbW9uaXRvciBhbmQgY29udHJvbCB0 aGUgYXBwIGJ5DQpyZWFkaW5nL3dyaXRpbmcgZmlsZXMuDQoNClByaW1hcmlseSBEUERLIHJ1bnMg b24gTGludXggYmFzZWQgc3lzdGVtcywgd2hlcmUgRlVTRSBpcyB3ZWxsIHN1cHBvcnRlZC4NCkZV U0Ugd2FzIGFkZGVkIHRvIEZyZWVCU0QgMTAgd2hpY2ggYXBwZWFycyB0byBiZSB0aGUgc2FtZSBk ZXNpZ24gYXMgTGludXguDQpXaW5kb3dzIGRvZXMgbm90IHN1cHBvcnQgRlVTRSBkaXJlY3RseSBm cm9tIE1TLCBidXQgYSBvcGVuIHNvdXJjZSBkZXNpZ24NCmhhcyBhIEZVU0UgYmFzZWQgc2V0IG9m IHdyYXBwZXIgQVBJcyB0byBoZWxwIHBvcnQgRlVTRSBiYXNlZCBmaWxlIHN5c3RlbXMuDQoNClRv ZGF5IHRoZSBvbmx5IHdheSB0byBnZXQgaW5mb3JtYXRpb24gb3V0IG9mIERQREsgaXMgdG8gdXNl IGxvZyBmaWxlcyBvciBhDQpjb21tYW5kIGxpbmUgd2l0aGluIERQREsgdG8gZGlzcGxheSB0aGUg aW5mb3JtYXRpb24uIFRoZSBpbmZvcm1hdGlvbiBpcyBub3QNCmVhc3kgZm9yIGFuIGV4dGVybmFs IGFwcGxpY2F0aW9uIHRvIGNvbGxlY3Qgb3IgbW9uaXRvci4gVXNpbmcgREZTIGFueSBhcHBsaWNh dGlvbg0KY2FuIHJlYWQgYW5kIHdyaXRlIGludG8gdGhpcyB2aXJ0dWFsIGZpbGUgc3lzdGVtIChG VVNFKSBhbmQgcmV0cmlldmUgaW5mb3JtYXRpb24NCmZyb20gRFBESy9BcHBsaWNhdGlvbiB2aWEg YSByYXcgQVNDSUkgdGV4dCBmaWxlIGFuZC9vciBKU09OIGZvcm1hdHRlZCB0ZXh0Lg0KDQpEYXRh IHJlYWQgZnJvbSBERlMgY2FuIGJlIHN0YXRpYyBvciBkeW5hbWljIGUuZy4gdmVyc2lvbi9jb3B5 cmlnaHQgdGV4dA0Kd291bGQgYmUgc3RhdGljLCBidXQgcG9ydCBzdGF0cyB3b3VsZCBiZSBkeW5h bWljIGFuZCBnZW5lcmF0ZWQgd2hlbiB0aGUgdXNlcg0KcmVxdWVzdHMgdGhlIGluZm9ybWF0aW9u LiBXcml0aW5nIG5ldyBjb25maWd1cmF0aW9uIGRhdGEgaW50byBEUERLIGNhbiBiZSBhDQpzaW1w bGUgbnVtYmVyIG9yIHRleHQgb3IgYSBKU09OIGRhdGEgc3RydWN0dXJlLiBXcml0aW5nIHNpbXBs ZSBBU0NJSSB0ZXh0IGRhdGENCmlzIHNpbXBsZSwgYnV0IHdyaXRpbmcgYSBsb25nIEpTT04gb3Ig Y29uZmlndXJhdGlvbiBmaWxlIG1heSBzb21lIGNhcmUsIGkuZS4gd3JpdGUNCmEgcGF0aCB0byBh IGZpbGUgaW4gREZTIHRvIHRoZSBsb2NhdGlvbiBvZiB0aGUgY29uZmlndXJhdGlvbiBhbmQgdXNl IHRoYXQgZmlsZSBwYXRoDQpmb3IgdGhlIGNvbmZpZ3VyYXRpb24uDQoNCkRQREsgY29tbWFuZCBs aW5lIGlzIGdldHRpbmcgdG8gYmUgdmVyeSBjb21wbGV4IGFuZCBsb25nLCBidXQgd2UgY2FuDQpl bGltaW5hdGUgb3IgZ3JlYXRseSByZWR1Y2UgdGhlIGNvbW1hbmQgbGluZSBieSB1c2luZyBERlMg dG8gY29uZmlndXJlIERQREsNCmF0IHN0YXJ0dXAgYWxvbmcgd2l0aCB0aGUgYXBwbGljYXRpb24g Y29uZmlndXJhdGlvbi4gSGF2aW5nIERQREsgc3RhcnQgdXAgd2l0aA0KbWluaW11bSByZXNvdXJj ZXMgYW5kIGFsbG93IHVwZGF0aW5nL2NyZWF0aW5nIGEgZmlsZSBpbiB0aGUgRFBESyBmaWxlIHN5 c3RlbQ0KdG8gY29uZmlndXJlIERQREsgd291bGQgYmUgZWFzaWVyLg0KDQpUaGUgREZTIGlzIGEg RlVTRSBmaWxlc3lzdGVtIGFuY2hvcmVkIGF0IC9kcGRrIGluIHRoZSBob3N0IGZpbGUgc3lzdGVt LCB0aGVuIGENCmRpcmVjdG9yeSBpcyBjcmVhdGVkIHVuZGVyIC9kcGRrIGZvciBlYWNoIERQREsg aW5zdGFuY2Ugb3IgYXBwbGljYXRpb24gdXNpbmcNCjxuYW1lPi08UElEPiBhcyBhIGRpcmVjdG9y eSBuYW1lIGZvcm1hdC4gVGhlbiBpdCBpcyB1cCB0byBEUERLL0FwcGxpY2F0aW9uIHRvDQpjcmVh dGUgdGhlIGRpcmVjdG9yeSBzdHJ1Y3R1cmVzLCBwZXJtaXNzaW9ucyBhbmQgZmlsZXMgd2l0aGlu IHRoZSBkaXJlY3RvcnkNCm1vdW50IHBvaW50Lg0KDQpDdXJyZW50bHkgSSBoYXZlIGEgZGlyZWN0 b3J5IGFuZCBmaWxlcyBsYXlvdXQgZm9yIERQREssIHRoYXQgbmVlZHMgbW9yZQ0KYXR0ZW50aW9u IGFzIEkgd2FzIGZvY3VzaW5nIG9uIEZVU0UgdGhlbiB0aGUgbGF5b3V0IGFzIGl0IGNhbiBiZSBj aGFuZ2VkIGZhaXJseQ0KZWFzaWx5LiBJIGNhbiBlbWFpbCB0aGUgd29ya2luZyBkb2N1bWVudGF0 aW9uIGZvciBERlMgaWYgbmVlZGVkIHBsZWFzZSBzZW5kIG1lDQphIHNob3J0IGVtYWlsIG9yIEkg Y2FuIHBvc3QgdG8gdGhlIGRldiBsaXN0LiBUaGUgZG9jcyBhbHNvIHRyeSB0byBleHBsYWluIHRo ZSBkZXNpZ24NCmFuZCBBUElzIHVzZWQgYnkgdGhlIGRldmVsb3BlciBmb3IgY3JlYXRpbmcgZmls ZXMvZGlyZWN0b3JpZXMuIFRoZSBkb2NzIGFyZSBzdGlsbCBhDQp3b3JrIGluIHByb2dyZXNzIGFu ZCBtb3JlIGF0dGVudGlvbiBuZWVkcyB0byBiZSBkb25lIGFzIHdlIHByb2dyZXNzLg0KDQpERlMg aXMganVzdCBhIGxpYnJhcnkgYW5kIG5vdCByZXF1aXJlZCB0byBiZSB1c2VkIHBsdXMgaXQgZG9l cyBub3QgbW9kaWZ5IERQREsNCkFQSXMgb3Igc3RydWN0dXJlcyBleGNlcHQgZm9yIGFkZGluZyBh IGZldyBuZXcgZHVtcCByb3V0aW5lcyBmb3IgZmVhdHVyZXMgdGhhdA0KZG8gbm90IGhhdmUgb25l IHRvZGF5LiBUaGUgZmlsZSBzeXN0ZW0gb3IgRlVTRSBiYWNrZW5kIGluIERQREsgaXMgYSBmcmVl DQpmbG9hdGluZyB0aHJlYWQgYXQgdGhpcyB0aW1lLCBidXQgY291bGQgYmUgYWZmaW5pdGl6ZWQg dG8gYSBjb3JlIGlmIHJlcXVpcmVkLg0KDQpUaGUgRlVTRSBwcm90b2NvbCB0byB0aGUgYmFja2Vu ZCBjb2RlIChpbiBEUERLKSBoYXMgYSBsYXJnZSBudW1iZXIgb2YNCm9wZXJhdGlvbnMsIGJ1dCB3 ZSBoYXZlIHNpbXBsaWZpZWQgdGhlIGludGVyZmFjZSBmb3IgZGV2ZWxvcGVycyB0byA1LTYuIFRo ZQ0KaW50ZXJmYWNlIG9uIHRvcCBvZiBsaWJmdXNlMyBpcyB2ZXJ5IHNpbXBsZSBhbmQgY3VycmVu dGx5IHByb3ZpZGVzIG1vc3Qgb2YgdGhlDQpuZWVkZWQgQVBJcyBmb3IgbWFuYWdpbmcgdGhlIGZp bGVzIGFuZCBkaXJlY3Rvcmllcy4gVGhlIEZVU0UgZmlsZSBzeXN0ZW0gd2l0aA0KdGhlIGFkZGVk IHNpbXBsZXIgQVBJIGlzIGR5bmFtaWMgYW5kIGNhbiBiZSBjaGFuZ2VkIGF0IHJ1bnRpbWUuIFRo ZQ0KZGlyZWN0b3J5L2ZpbGVzIGNhbiBiZSBjb25zdHJ1Y3RlZCB2aWEgQVBJcyBhdCBzdGFydHVw IG9yIGFueXRpbWUgYWZ0ZXIgc3RhcnR1cC4NCg0KSSB3b3VsZCBsaWtlIHRvIHB1dCBhIHJlcG8g c29tZXBsYWNlIHdpdGggRFBESy9ERlMgc2F5IG9uIEdpdEh1YiB0byBhbGxvdw0Kb3RoZXJzIHRv IHBsYXkgd2l0aCB0aGUgZGVzaWduIGluIHRoZSBzaG9ydCB0ZXJtLiBJIGFsc28gaGF2ZSBhIGRv YyBmaWxlIGZvciBERlMgaWYNCmFueW9uZSB3YW50cyB0byBsZWFybiBtb3JlIGluZm9ybWF0aW9u IGFuZCB3aWxsIGJlIGluIHRoZSByZXBvIGFzIHdlbGwuIElmIHdlDQphZ3JlZSBJIGNhbiB0aGVu IGNyZWF0ZSBhIHNldCBvZiBwYXRjaGVzIGZvciBEUERLLg0KDQpXZWxsIHRoZSAxOC4xMSByZWxl YXNlIGlzIG91dCB0aGUgZG9vciwgdGhpcyBvbmUgc2VlbWVkIHByZXR0eSBiaWcgYW5kIEkgbG90 IG9mDQpoYXJkIHdvcmsgd2FzIHB1dCBpbnRvIHRoaXMgb25lLCB0aGFua3MgdG8gZXZlcnlvbmUu DQoNCg0KSXQgaXMgdGltZSB0byB0cnkgYW5kIGdldCBzb21lIGZlZWRiYWNrIG9uIHRoaXMgUkZD LiBJIGtub3cgdGhlIGNvZGUgaW4gdGhlIHJlcG8NCmlzIG5vdCBmaW5pc2hlZCwgYnV0IEkgd291 bGQgbGlrZSB0byBnZXQgc29tZSBmb2xrcyB0byBnaXZlIGl0IGEgdHJ5IGFuZCBnaXZlDQpmZWVk YmFjay4gSSB3b3VsZCBsaWtlIHRvIHN1Ym1pdCB0aGUgYmFzaWMgREZTIGNvZGUgd2l0aCBzb21l IGxvdyBoYW5naW5nDQppdGVtcyBtb3N0bHkgcmVhZG9ubHkgaW5mb3JtYXRpb24gZm9yIHRoZSAx OS4wMiByZWxlYXNlLg0KDQpIZXJlIGlzIHRoZSByZXBvIGFnYWluIHlvdSBjYW4gbG9vayBhdCBh bmQgcGxheSB3aXRoLiBUaGUgY29kZSBpcyBtb3N0bHkgcmVhZHkNCmZvciB1cHN0cmVhbSBidXQg c3RpbGwgbW9yZSB3b3JrIG5lZWRzIHRvIGJlIGRvbmUuIEkgd2lsbCB0cnkgdG8gdXBkYXRlIHRo ZSByZXBvDQp0byB0aGUgMTguMTEgcmVsZWFzZSBjb2RlIGJhc2VkIHNvb24uDQoNCmh0dHBzOi8v Z2l0aHViLmNvbS9wa3RnZW4vZGZzLWRwZGsNCg0KVGhhbmtzIGZvciBnaXZpbmcgdGhpcyBhIHJl dmlldy4NCg0KU29tZSB0aG91Z2h0cyBiYXNlIG9uIGEgcXVpY2sgdGVzdCBhbmQgcmV2aWV3Lg0K DQpPdmVyYWxsLCBJIHRoaW5rIHRoaXMgaXMgYSB2ZXJ5IGhhbmR5IGZlYXR1cmUuIEkgcmVhbGx5 IGhvcGUgaXQgY2FuIGJlIG1lcmdlZCBxdWlja2x5IDopDQoNCkJlbG93IGFyZSBzb21lIGNhcHR1 cmVzOg0KDQoxKSB3aGVuIEkgdHJ5IHRvIHRlc3QgZGZzIHdpdGggZXhpc3QgYXBwbGljYXRpb24g KHNheSB0ZXN0cG1kKSwgSSBuZWVkIHRvIHJlcGxhY2UgcnRlX2VhbF9pbml0IHdpdGggZGZzX2Vh bF9pbml0LA0KSSB0aGluayBhIGJldHRlciB3YXkgaXMgYnkgdXNpbmcgYXJncyBsaWtlIC0tZGZz IHdoaWNoIGNhbiBhdm9pZCB0aGUgY29kZSBjaGFuZ2UsIGJ1dCBwbGVhc2UgbGV0IG1lIGtub3cg aWYgSSBtaXNzZWQgdGhlIHBvaW50Lg0KDQpUaGlzIGlzIGEgZ29vZCBpZGVhLCBsZXQgbWUgbG9v ayBpbnRvIHdoYXQgdGhhdCB3b3VsZCB0YWtlLiBJIGRvIG5vdCB3YW50IHRvIHJlcXVpcmUgREZT IHRvIGJlIGxpbmtlZCBpbnRvIHRoZSBpbWFnZSBpbiB0aGlzIGNhc2Ugc28g4oCUZGZzIG5lZWQg dG8gYmUgYSBub29wIGlmIG5vdCBwcmVzZW50Lg0KDQoyKSBJcyBQTUQgYWxsb3dlZCB0byB1c2Ug ZGZzIHRvIGV4cG9zZSBkZXZpY2Ugc3BlY2lmaWMgaW5mb3JtYXRpb24gKHByaXZhdGUgQVBJIGFj Y2VzcywgdXRpbGl0aWVzIGZvciBkaWFnbm9zZSBwdXJwb3NlIC4uLikgPyBpZiBpdCBpcw0KIEkg dGhpbmsgZGZzIGNvdWxkIHByb3ZpZGUgbW9yZSBzdGFuZGFyZCB3YXkgZm9yIFBNRCB0byBhZGQg Y29udGVudCB0byBhIHN1YiBkaXJlY3RvcnkgLCBJdCBjb3VsZCBiZQ0Kc3RydWN0IGRmc19vcHMg ew0KbW91bnQoZGZzX25vZGUgcGFyZW50Li4uKTsgICAvKiBjcmVhdGUgY29udGVudCBvZiBpbiB0 aGUgc3ViIGRpcmVjdG9yeSAqLw0KdW5tb3VudChkZnNfbm9kZSBwYXJlbnQuLi4pOyAvKiBkZXN0 cm95IHRoZSBjb250ZW50LiAqLw0KfQ0KDQpUaGlzIHNlZW1zIGxpa2UgYSByZWFzb25hYmxlIG9w dGlvbiwgaXQgc291bmRzIGxpa2UgYSBjYWxsYmFjayBmcm9tIHRoZSBERlMgaW5pdCBvciBwb3Nz aWJsZSBhIGNvbnN0cnVjdG9yIG1ldGhvZC4NCg0KIFBNRCBpcyByZXNwb25zaWJsZSBmb3IgY3Jl YXRpbmcgYSBkZnNfb3BzIGluc3RhbmNlIGFuZCBzZXR1cCB0aGUgY2FsbGJhY2sgZnVuY3Rpb25z IGR1cmluZyBpbml0aWFsaXphdGlvbi4ocHJvYmUpDQogQW4gQVBJIHJ0ZV9ldGhfZGV2X2dldF9k ZnNfY3R4KHBvcnRfaWQpIGNhbiBiZSB1c2VkIHRvIGdldCB0aGUgY29udGV4dCB0aGF0IHdyYXBw ZWQgZGZzX29wcyBhbmQgcmVsYXRlZCBldGhkZXYgaW5zdGFuY2UuIChzaW1pbGFyIGZvciBjcnlw dG9kZXYgYW5kIG90aGVycyApDQogU28gZHVyaW5nIGRmcyBpbml0LCBhZnRlciB3ZSBjcmVhdGUg Zm9sZGVyIGZvciBhIHBvcnQsIHdlIGNhbiBkbyBhZGRpdGlvbmFsIHN0ZXAgdG8gY3JlYXRlIGEg cGFyZW50IG5vZGUgZm9yIFBNRCB0aGVuIGNhbGwgaXRzJ3MgZGV2X29wcy0+bW91bnQsIHRoZW4g YWxsIHRoZSBkZXZpY2Ugc3BlY2lmaWMgaW5mb3JtYXRpb24gd2lsbCBiZSBwb3BwZWQgaW4gdGhh dCBmb2xkZXINCg0KMykgRm9yIHByaW1hcnktc2Vjb25kYXJ5IG1vZGVsLCBkZnMgc2hvdWxkIHdv cmtzIHdlbGwsIGJ1dCB0aGUgbWlzc2luZyBwYXJ0IGlzIHRoZXJlIGlzIG5vIGxpbmsgYmV0d2Vl biBwcmltYXJ5IGFuZCBzZWNvbmRhcnkgcHJvY2VzcywNCiBpdCB3aWxsIGJlIG5hdHVyZSBpZiB3 ZSBjYW4gbGlzdCBhbGwgc2Vjb25kYXJ5IHByb2Nlc3MgaW4gYSBwcmltYXJ5IGZvbGRlciBvciBl dmVuIGJldHRlciBpZiB3ZSBjYW4ganVtcCB0byBzZWNvbmRhcnkgZm9sZGVyIGJ5IHNvbWUgc29m dCBsaW5rIGFuZCBzYW1lIHRoaW5nIGluIHRoZSByZXZlcnNlIGRpcmVjdGlvbi4NCg0KSSB0aGlu ayB0aGlzIGNhbiBiZSBkb25lLCBidXQgZWFjaCBzZWNvbmRhcnkgd291bGQgaGF2ZSBpdHMgb3du IGRmcyBmaWxlIHN5c3RlbS4gQWRkaW5nIHRoZSBsaW5rcyBjb3VsZCBiZSByZWFzb25hYmxlIGlm IHdlIGNvdWxkIGFzc3VtZSB0aGUgc2Vjb25kYXJ5IHByb2Nlc3NlcyBhcmUgYWx3YXlzIHVwLg0K DQoNClRoYW5rcw0KUWkNCg0KDQoNClJlZ2FyZHMsDQpLZWl0aA0KDQoNClJlZ2FyZHMsDQpLZWl0 aA0KDQpSZWdhcmRzLA0KS2VpdGgNCg0K