From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 9AA062B9D for ; Sun, 30 Sep 2018 23:00:51 +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 fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 30 Sep 2018 14:00:50 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,325,1534834800"; d="scan'208";a="268269396" Received: from irsmsx108.ger.corp.intel.com ([163.33.3.3]) by fmsmga006.fm.intel.com with ESMTP; 30 Sep 2018 14:00:48 -0700 Received: from irsmsx106.ger.corp.intel.com ([169.254.8.45]) by IRSMSX108.ger.corp.intel.com ([169.254.11.187]) with mapi id 14.03.0319.002; Sun, 30 Sep 2018 22:00:47 +0100 From: "Ananyev, Konstantin" To: Akhil Goyal , Jerin Jacob , "Joseph, Anoob" CC: "dev@dpdk.org" , "Awal, Mohammad Abdul" , "Doherty, Declan" , Narayana Prasad , Hemant Agrawal , "shreyansh.jain@nxp.com" Thread-Topic: [dpdk-dev] [RFC] ipsec: new library for IPsec data-path processing Thread-Index: AQHUO8sQ1vNhPIIy2kCq+ieD7nPPdqTefpOAgABfO7CAAuY7AIALGZsggAAAuDCABMYgAIABKxCAgAHAZSCAAYwIoIADN3IAgAX719CAAXCYgIAIxCuA Date: Sun, 30 Sep 2018 21:00:46 +0000 Message-ID: <2601191342CEEE43887BDE71AB9772580102FDFF11@IRSMSX106.ger.corp.intel.com> References: <1535129598-27301-1-git-send-email-konstantin.ananyev@intel.com> <358d1b6c-26f2-b125-07a4-cfb1c0e2a57b@caviumnetworks.com> <2601191342CEEE43887BDE71AB977258EA95089D@irsmsx105.ger.corp.intel.com> <475cf471-b46a-671a-5485-0042c652430c@caviumnetworks.com> <2601191342CEEE43887BDE71AB977258EA954BAD@irsmsx105.ger.corp.intel.com> <2601191342CEEE43887BDE71AB977258EA954E9D@irsmsx105.ger.corp.intel.com> <20180916105640.GA4803@jerin> <2601191342CEEE43887BDE71AB977258EA95724C@irsmsx105.ger.corp.intel.com> <2601191342CEEE43887BDE71AB977258EA957E3A@irsmsx105.ger.corp.intel.com> <2601191342CEEE43887BDE71AB977258EA95A705@irsmsx105.ger.corp.intel.com> <36e1d53b-4c31-1a92-c91f-7066f4358f79@nxp.com> In-Reply-To: <36e1d53b-4c31-1a92-c91f-7066f4358f79@nxp.com> Accept-Language: en-IE, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZGIxNzIyYmItMjQyMS00MGRmLWEyOGYtMjU4NDM0YjRhMWNkIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX05UIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE3LjEwLjE4MDQuNDkiLCJUcnVzdGVkTGFiZWxIYXNoIjoiVWl3XC82U1RvcGppcERtTGlGck1LcTlBSk9QQnEyS0JRUGlrNCs1SVdabndPbnRKSDlqVE12WDM4Q1ZQQjBRb1gifQ== x-ctpclassification: CTP_NT dlp-product: dlpe-windows dlp-version: 11.0.400.15 dlp-reaction: no-action x-originating-ip: [163.33.239.181] Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 Subject: Re: [dpdk-dev] [RFC] ipsec: new library for IPsec data-path processing 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: Sun, 30 Sep 2018 21:00:52 -0000 DQoNCkhpIEFraGlsLA0KDQo+IA0KPiBIaSBLb25zdGFudGluLA0KPiANCj4gT24gOS8yNC8yMDE4 IDQ6MjEgUE0sIEFuYW55ZXYsIEtvbnN0YW50aW4gd3JvdGU6DQo+ID4gSGkgQWtoaWwsDQo+ID4N Cj4gPj4gSGkgS29uc3RhbnRpbiwNCj4gPj4NCj4gPj4gT24gOS8xOC8yMDE4IDY6MTIgUE0sIEFu YW55ZXYsIEtvbnN0YW50aW4gd3JvdGU6DQo+ID4+Pj4+IEkgYW0gbm90IHNheWluZyB0aGlzIHNo b3VsZCBiZSB0aGUgT05MWSB3YXkgdG8gZG8gYXMgaXQgZG9lcyBub3Qgd29yaw0KPiA+Pj4+PiB2 ZXJ5IHdlbGwgd2l0aCBub24gTlBVL0ZQR0EgY2xhc3Mgb2YgU29DLg0KPiA+Pj4+Pg0KPiA+Pj4+ PiBTbyBob3cgYWJvdXQgbWFraW5nIHRoZSBwcm9wb3NlZCBJUFNlYyBsaWJyYXJ5IGFzIHBsdWdp bi9kcml2ZXIgdG8NCj4gPj4+Pj4gcnRlX3NlY3VyaXR5Lg0KPiA+Pj4+IEFzIEkgbWVudGlvbmVk IGFib3ZlLCBJIGRvbid0IHRoaW5rIHRoYXQgcHVzaGluZyB3aG9sZSBJUFNlYyBkYXRhLXBhdGgg aW50byBydGVfc2VjdXJpdHkNCj4gPj4+PiBpcyB0aGUgYmVzdCBwb3NzaWJsZSBhcHByb2FjaC4N Cj4gPj4+PiBUaG91Z2ggSSBwcm9iYWJseSB1bmRlcnN0YW5kIHlvdXIgY29uY2VybjoNCj4gPj4+ PiBJbiBSRkMgY29kZSB3ZSBhbHdheXMgZG8gd2hvbGUgcHJlcGFyZS9wcm9jZXNzIGluIFNXIChh dHRhY2gvcmVtb3ZlIEVTUCBoZWFkZXJzL3RyYWlsZXJzLCBzbyBwYWRkaW5ncyBldGMuKSwNCj4g Pj4+PiBpLmUuIHJpZ2h0IG5vdyBvbmx5IGRldmljZSB0eXBlczogUlRFX1NFQ1VSSVRZX0FDVElP Tl9UWVBFX05PTkUgYW5kIFJURV9TRUNVUklUWV9BQ1RJT05fVFlQRV9JTkxJTkVfQ1JZUFRPIGFy ZQ0KPiBjb3ZlcmVkLg0KPiA+Pj4+IFRob3VnaCB0aGVyZSBhcmUgZGV2aWNlcyB3aGVyZSBtb3N0 IG9mIHByZXBhcmUvcHJvY2VzcyBjYW4gYmUgZG9uZSBpbiBIVw0KPiA+Pj4+IChSVEVfU0VDVVJJ VFlfQUNUSU9OX1RZUEVfSU5MSU5FX1BST1RPQ09ML1JURV9TRUNVUklUWV9BQ1RJT05fVFlQRV9M T09LQVNJREVfUFJPVE9DT0wpLA0KPiA+Pj4+IHBsdXMgaW4gZnV0dXJlIGNvdWxkIGJlIGRldmlj ZXMgd2hlcmUgcHJlcGFyZS9wcm9jZXNzIHdvdWxkIGJlIHNwbGl0IGJldHdlZW4gSFcvU1cgaW4g YSBjdXN0b20gd2F5Lg0KPiA+Pj4+IElzIHRoYXQgc28/DQo+ID4+Pj4gVG8gYWRkcmVzcyB0aGF0 IGlzc3VlIEkgc3VwcG9zZSB3ZSBjYW4gZG86DQo+ID4+Pj4gMS4gQWRkIHN1cHBvcnQgZm9yIFJU RV9TRUNVUklUWV9BQ1RJT05fVFlQRV9JTkxJTkVfUFJPVE9DT0wgYW5kIFJURV9TRUNVUklUWV9B Q1RJT05fVFlQRV9MT09LQVNJREVfUFJPVE9DT0wNCj4gPj4+PiAgICAgICBzZWN1cml0eSBkZXZp Y2VzIGludG8gaXBzZWMuDQo+ID4+Pj4gICAgICAgV2UgcGxhbm5lZCB0byBkbyBpdCBhbnl3YXks IGp1c3QgZG9uJ3QgaGF2ZSBpdCBkb25lIHlldC4NCj4gPj4+PiAyLiBGb3IgY3VzdG9tIGNhc2Ug LSBpbnRyb2R1Y2UgUlRFX1NFQ1VSSVRZX0FDVElPTl9UWVBFX0lOTElORV9DVVNUT00gYW5kDQo+ ID4+IFJURV9TRUNVUklUWV9BQ1RJT05fVFlQRV9MT09LQVNJREVfQ1VTVE9NDQo+ID4+Pj4gICAg ICAgYW5kIGFkZCBpbnRvIHJ0ZV9zZWN1cml0eV9vcHMgICBuZXcgZnVuY3Rpb25zOg0KPiA+Pj4+ ICAgICAgIHVpbnQxNl90IGxvb2thc2lkZV9wcmVwYXJlKHN0cnVjdCBydGVfc2VjdXJpdHlfc2Vz c2lvbiAqc2Vzcywgc3RydWN0IHJ0ZV9tYnVmICptYltdLCBzdHJ1Y3Qgc3RydWN0IHJ0ZV9jcnlw dG9fb3AgKmNvcFtdLCB1aW50MTZfdA0KPiA+PiBudW0pOw0KPiA+Pj4+ICAgICAgIHVpbnQxNl90 IGxvb2thc2lkZV9wcm9jZXNzKHN0cnVjdCBydGVfc2VjdXJpdHlfc2Vzc2lvbiAqc2Vzcywgc3Ry dWN0IHJ0ZV9tYnVmICptYltdLCBzdHJ1Y3Qgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKmNvcFtdLCB1 aW50MTZfdA0KPiA+PiBudW0pOw0KPiA+Pj4+ICAgICAgIHVpbnQxNl90IGlubGluZV9wcm9jZXNz KHN0cnVjdCBydGVfc2VjdXJpdHlfc2Vzc2lvbiAqc2Vzcywgc3RydWN0IHJ0ZV9tYnVmICptYltd LCBzdHJ1Y3Qgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKmNvcFtdLCB1aW50MTZfdA0KPiBudW0pOw0K PiA+Pj4+ICAgICAgIFNvIGZvciBjdXN0b20gSFcsIFBNRCBjYW4gb3ZlcndyaXRlIG5vcm1hbCBw cmVwYXJlL3Byb2Nlc3MgYmVoYXZpb3IuDQo+ID4+Pj4NCj4gPj4+IEFjdHVhbGx5ICBhZnRlciBh bm90aGVyIHRob3VnaHQ6DQo+ID4+PiBNeSBwcmV2aW91cyBhc3N1bXB0aW9uIChwcm9iYWJseSB3 cm9uZyBvbmUpIHdhcyB0aGF0IGZvciBib3RoDQo+ID4+PiBSVEVfU0VDVVJJVFlfQUNUSU9OX1RZ UEVfSU5MSU5FX1BST1RPQ09MIGFuZCBSVEVfU0VDVVJJVFlfQUNUSU9OX1RZUEVfTE9PS0FTSURF X1BST1RPQ09MDQo+ID4+PiBkZXZpY2VzIGNhbiBkbyB3aG9sZSBkYXRhLXBhdGggaXBzZWMgcHJv Y2Vzc2luZyB0b3RhbGx5IGluIEhXIC0gbm8gbmVlZCBmb3IgYW55IFNXIHN1cHBvcnQgKGV4Y2Vw dCBpbml0L2NvbmZpZykuDQo+ID4+PiBOb3cgbG9va2luZyBhdCBkcGFhIGFuZCBkcGFhMiBkZXZp Y2VzICh0aGUgb25seSBvbmVzIHRoYXQgc3VwcG9ydHMgUlRFX1NFQ1VSSVRZX0FDVElPTl9UWVBF X0xPT0tBU0lERV9QUk9UT0NPTCByaWdodCBub3cpDQo+ID4+PiBJIGFtIG5vdCBzbyBzdXJlIGFi b3V0IHRoYXQgLSBsb29rcyBsaWtlIHNvbWUgU1cgaGVscCBtaWdodCBiZSBuZWVkZWQgZm9yIHJl cGxheSB3aW5kb3cgdXBkYXRlcywgZXRjLg0KPiA+Pj4gSGVtYW50LCBTaHJleWFuc2ggLSBjYW4g eW91IGd1eXMgY29uZmlybSB3aGF0IGlzIGV4cGVjdGVkIGZyb20gUlRFX1NFQ1VSSVRZX0FDVElP Tl9UWVBFX0xPT0tBU0lERV9QUk9UT0NPTCBkZXZpY2VzDQo+ID4+PiAoSFcvU1cgcm9zZXMvcmVz cG9uc2liaWxpdGllcyk/DQo+ID4+PiBBYm91dCBSVEVfU0VDVVJJVFlfQUNUSU9OX1RZUEVfSU5M SU5FX1BST1RPQ09MICAtIEkgZGlkbid0IGZpbmQgYW55IGRyaXZlciBpbnNpZGUgRFBESyBzb3Vy Y2UgdHJlZSB0aGF0IGRvZXMgc3VwcG9ydCB0aGF0DQo+ID4+IGNhcGFiaWxpdHkuDQo+ID4+PiBT byBteSBxdWVzdGlvbiBpcyB0aGVyZSBhbnkgZGV2aWNlcy9kcml2ZXJzIHRoYXQgZG8gc3VwcG9y dCBpdD8NCj4gPj4+IElmIHNvLCB3aGVyZSBjb3VsZCBzb3VyY2UgY29kZSBjb3VsZCBiZSBmb3Vu ZCwgYW5kIHdoYXQgYXJlIEhXL1NXIHJvbGVzL3Jlc3BvbnNpYmlsaXRpZXMgZm9yIHRoYXQgdHlw ZSBvZiBkZXZpY2VzPw0KPiA+Pj4gS29uc3RhbnRpbg0KPiA+Pj4NCj4gPj4+DQo+ID4+IEluIGNh c2Ugb2YgTE9PS0FTSURFLCB0aGUgcHJvdG9jb2wgZXJyb3JzIGxpa2UgYW50aXJlcGxheSBhbmQg c2VxdWVuY2UNCj4gPj4gbnVtYmVyIG92ZXJmbG93IHNoYWxsIGJlIHRoZSByZXNwb25zaWJpbGl0 eSBvZiBlaXRoZXIgUE1EIG9yIHRoZSBIVy4NCj4gPj4gSXQgc2hvdWxkIG5vdGlmeSB0aGUgYXBw bGljYXRpb24gdGhhdCB0aGUgZXJyb3IgaGFzIG9jY3VycmVkIGFuZA0KPiA+PiBhcHBsaWNhdGlv biBuZWVkIHRvIGRlY2lkZSB3aGF0IGl0IG5lZWRzIHRvIGRlY2lkZSBuZXh0Lg0KPiA+IE9rLCB0 aGFua3MgZm9yIGNsYXJpZmljYXRpb24uDQo+ID4gSnVzdCB0byBjb25maXJtIC0gIGRvIHdlIGhh dmUgYSBkZWZpbmVkIHdheSBmb3IgaXQgcmlnaHQgbm93IGluIHJ0ZV9zZWN1cml0eT8NCj4gQXMg b2Ygbm93LCB0aGVyZSBhcmUgbm8gbWFjcm9zIGRlZmluZWQgZm9yIGFudGlyZXBsYXkvc2VxLiBu by4gb3ZlcmZsb3cNCj4gZXJyb3JzIGluIGNyeXB0byBlcnJvcnMocnRlX2NyeXB0b19vcF9zdGF0 dXMpLCBidXQgaXQgd2lsbCBiZSBhZGRlZCBzb29uLg0KPiBGb3IgaW5saW5lIGNhc2VzLCBpcHNl Yy1zZWNndyBhcHBsaWNhdGlvbiBnZXRzIGVycm9yIG5vdGlmaWNhdGlvbiB2aWENCj4gcnRlX2V0 aF9ldmVudC4NCg0KT2suDQoNCg0KPiA+DQo+ID4+IEFzIEplcmluIHNhaWQgaW4gb3RoZXIgZW1h aWwsIHRoZSByb2xlcy9yZXNwb25zaWJpbGl0eSBvZiB0aGUgUE1EIGluDQo+ID4+IGNhc2Ugb2Yg aW5saW5lIHByb3RvIGFuZCBsb29rYXNpZGUgY2FzZSwgbm90aGluZyBtdWNoIGlzIHJlcXVpcmVk IGZyb20NCj4gPj4gdGhlIGFwcGxpY2F0aW9uIHRvIGRvIGFueSBwcm9jZXNzaW5nIGZvciBpcHNl Yy4NCj4gPj4NCj4gPj4gQXMgcGVyIG15IHVuZGVyc3RhbmRpbmcsIHRoZSBwcm9wb3NlZCBSRkMg aXMgdG8gbWFrZSB0aGUgYXBwbGljYXRpb24NCj4gPj4gY29kZSBjbGVhbmVyIGZvcsKgIHRoZSBw cm90b2NvbCBwcm9jZXNzaW5nLg0KPiA+IFllcywgdW5pZmllZCBkYXRhLXBhdGggQVBJIGlzIGRl ZmluaXRlbHkgb25lIG9mIHRoZSBtYWluIGdvYWxzLg0KPiA+DQo+ID4+IDEuIEZvciBpbmxpbmUg cHJvdG8gYW5kIGxvb2thc2lkZSB0aGVyZSB3b24ndCBiZSBhbnkgY2hhbmdlIGluIHRoZSBkYXRh DQo+ID4+IHBhdGguIFRoZSBtYWluIGNoYW5nZXMgd291bGQgYmUgaW4gdGhlIGNvbnRyb2wgcGF0 aC4NCj4gPiBZZXMsIGZyb20geW91ciBhbmQgSmVyaW4gZGVzY3JpcHRpb24gZGF0YS1wYXRoIHBy b2Nlc3NpbmcgbG9va3MNCj4gPiByZWFsbHkgbGlnaHR3ZWlnaHQgZm9yIHRoZXNlIGNhc2VzLg0K PiA+IEZvciBjb250cm9sIHBhdGggLSB0aGVyZSBpcyBubyBtdWNoIGNoYW5nZSwgdXNlciB3b3Vs ZCBoYXZlIHRvIGNhbGwNCj4gPiBydGVfaXBzZWNfc2FfaW5pdCgpIHRvIHN0YXJ0IHVzaW5nIGdp dmVuIFNBLg0KPiA+DQo+ID4+IDIuIEJ1dCBpbiBjYXNlIG9mIGlubGluZSBjcnlwdG8gYW5kIFJU RV9TRUNVUklUWV9BQ1RJT05fVFlQRV9OT05FLCB0aGUNCj4gPj4gcHJvdG9jb2wgcHJvY2Vzc2lu ZyB3aWxsIGJlIGRvbmUgaW4gdGhlIGxpYnJhcnkgYW5kIHRoZXJlIHdvdWxkIGJlDQo+ID4+IGNo YW5nZXMgaW4gYm90aCBjb250cm9sIGFuZCBkYXRhIHBhdGguDQo+ID4gWWVzLg0KPiA+DQo+ID4+ IEFzIHRoZSBydGVfc2VjdXJpdHkgY3VycmVudGx5IHByb3ZpZGUgZ2VuZXJpYyBBUElzIGZvciBj b250cm9sIHBhdGggb25seQ0KPiA+PiBhbmQgd2UgbWF5IGhhdmUgaXQgZXhwYW5kZWQgZm9yIHBy b3RvY29sIHNwZWNpZmljIGRhdGFwYXRoIHByb2Nlc3NpbmcuDQo+ID4+IFNvIGZvciB0aGUgYXBw bGljYXRpb24sIHdvcmtpbmcgd2l0aCBpbmxpbmUgY3J5cHRvLyBpbmxpbmUgcHJvdG8gd291bGQN Cj4gPj4gYmUgcXVpdGUgc2ltaWxhciBhbmQgaXQgd29uJ3QgbmVlZCB0byBkbyBzb21lIGV4dHJh IHByb2Nlc3NpbmcgZm9yDQo+ID4+IGlubGluZSBjcnlwdG8uDQo+ID4+IFNhbWUgd2lsbCBiZSB0 aGUgY2FzZSBmb3IgUlRFX1NFQ1VSSVRZX0FDVElPTl9UWVBFX05PTkUgYW5kIGxvb2thc2lkZS4N Cj4gPj4NCj4gPj4gV2UgbWF5IGhhdmUgdGhlIHByb3RvY29sIHNwZWNpZmljIEFQSXMgcmVzaWRl IGluc2lkZSB0aGUgcnRlX3NlY3VyaXR5DQo+ID4+IGFuZCB3ZSBjYW4gdXNlIGVpdGhlciB0aGUg Y3J5cHRvL25ldCBQTUQgdW5kZXJuZWF0aCBpdC4NCj4gPiBBcyBJIHVuZGVyc3RhbmQsIHlvdSBz dWdnZXN0IGluc3RlYWQgb2YgaW50cm9kdWNpbmcgbmV3IGxpYnJhcnksDQo+ID4gaW50cm9kdWNl IHNpbWlsYXIgZGF0YS1wYXRoIGZ1bmN0aW9ucyBpbnNpZGUgcnRlX3NlY3VyaXR5Lg0KPiA+IFBy b2JhYmx5IHNvbWV0aGluZyBsaWtlOg0KPiA+DQo+ID4gdWludDE2X3QgcnRlX3NlY3VyaXR5X3By b2Nlc3Moc3RydWN0IHJ0ZV9zZWN1cml0eV9zZXNzaW9uICpzLCBzdHJ1Y3QgcnRlX21idWYgKm1i W10sIHVpbnQxNl90IG51bSk7DQo+ID4gdWludDE2X3QgcnRlX3NlY3VyaXR5X2NyeXB0b19wcmVw YXJlKHN0cnVjdCBydGVfaXBzZWNfc2EgKnNhLCBzdHJ1Y3QgcnRlX21idWYgKm1iW10sDQo+ID4g ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqY29wW10sIHVpbnQxNl90IG51bSk7 DQo+ID4gLi4uDQo+ID4gSXMgdGhhdCBjb3JyZWN0Pw0KPiANCj4gInJ0ZV9zZWN1cml0eV9wcm9j ZXNzX2lwc2VjIiBhbmQgInJ0ZV9zZWN1cml0eV9jcnlwdG9fcHJlcGFyZV9pcHNlYyIgd2lsbCBi ZSBiZXR0ZXIuDQo+IFdlIGNhbiBoYXZlIHN1Y2ggQVBJcyBmb3Igb3RoZXIgcHJvdG9jb2xzIGFz IHdlbGwuDQo+IEFsc28sIHdlIHNob3VsZCBsZWF2ZSB0aGUgZXhpc3RpbmcgZnVuY3Rpb25hbGl0 eSBhcyBpcyBhbmQgd2Ugc2hvdWxkIGxldCB0aGUgdXNlciBkZWNpZGUgd2hldGhlcg0KPiBpdCBu ZWVkcyB0byBtYW5hZ2UgdGhlIGlwc2VjIG9uIGl0J3Mgb3duIG9yIHdpdGggdGhlIG5ldyBBUElz Lg0KDQpUaGVyZSBhcmUgbm8gcGxhbnMgdG8gdm9pZCBhbnkgZXhpc3RpbmcgQVBJLg0KSWYgdGhl IHVzZXIgaGFzIHdvcmtpbmcgY29kZSB0aGF0IHVzZXMgcnRlX2NyeXRwb2Rldi9ydGVfc2VjdXJp dHkgZGlyZWN0bHkgYW5kIHdhbnRzIHRvIGtlZXAgaXQsDQp0aGF0J3MgZmluZS4NCg0KPiANCj4g Pg0KPiA+IEkgdGhvdWdodCBhYm91dCB0aGF0IGFwcHJvYWNoIHRvbywgYW5kIGluZGVlZCBmcm9t IG9uZSBzaWRlIGl0IGxvb2tzIGNsZWFuZXIgYW5kIGVhc2llcg0KPiA+IHRvIGN1c3RvbWl6ZSAt IGVhY2ggb2YgdGhlc2UgZnVuY3Rpb25zIHdvdWxkIGp1c3QgY2FsbCByZWxhdGVkIGZ1bmN0aW9u IGluc2lkZSBydGVfc2VjdXJpdHlfb3BzLg0KPiA+IFRoZSBwcm9ibGVtIHdpdGggdGhhdCBhcHBy b2FjaCAtIGl0IHdvdWxkIG1lYW4gdGhhdCBlYWNoIFNBIHdvdWxkIGJlIGFibGUgdG8gd29yayB3 aXRoIG9uZQ0KPiA+IGRldmljZSBvbmx5Lg0KPiA+IFNvIGlmIHNvbWVvbmUgbmVlZHMgYW4gU0Eg dGhhdCBjb3VsZCBiZSBwcm9jZXNzZWQgYnkgbXVsdGlwbGUgY29yZXMgYW5kIG11bHRpcGxlIGNy eXB0by1kZXZpY2VzDQo+ID4gaW4gcGFyYWxsZWwgc3VjaCBhcHByb2FjaCB3b3VsZG7igJl0IGZp dC4NCj4gT25lIFNBIHNob3VsZCBiZSBwcm9jZXNzZWQgYnkgYSBzaW5nbGUgY29yZSBvciBlbHNl IHdlIG5lZWQgdG8gaGF2ZSBhbg0KPiBldmVudCBiYXNlZCBhcHBsaWNhdGlvbiB3aGljaCBzdXBw b3J0IG9yZGVyZWQgcXVldWVzLA0KPiBiZWNhdXNlIGlmIHdlIHByb2Nlc3MgcGFja2V0cyBvZiBz aW5nbGUgU0Egb24gbXVsdGlwbGUgY29yZXMsIHRoZW4NCj4gcGFja2V0cyB3aWxsIGdldCByZS1v cmRlcmVkIGFuZCB3ZSB3aWxsIGdldCB0aGUgYW50aS1yZXBsYXkgbGF0ZSBlcnJvcnMNCj4gb24g ZGVjYXAgc2lkZS4NCg0KSSBzdXBwb3NlIGluIHNvbWUgY2FzZXMgb25lIGNvcmUgd291bGQgYmUg ZW5vdWdoIHRvIGhhbmRsZSBTQSB0cmFmZmljLA0KZm9yIHNvbWUgbm90LCBhcyBJIHNhaWQgYmVm b3JlLCBJIHRoaW5rIGl0IHNob3VsZCBiZSBjb25maWd1cmFibGUuDQpPZiBjb3Vyc2UgZm9yIE1U IGNhc2Ugc29tZSBlbnRpdHkgdGhhdCB3b3VsZCAgZ3VhcmFudGVlIHByb3BlciBvcmRlcmluZw0K Zm9yIGZpbmFsIHBhY2tldCBwcm9jZXNzaW5nIHdvdWxkIGJlIG5lZWRlZC4NCkl0IGNvdWxkIGJl IHNvbWUgZXZlbnRkZXYsIG9yIFNXIEZJRk8gcXVldWUsIG9yIHNvbWV0aGluZyBlbHNlLg0KDQo+ IEFuZCBpZiB3ZSBoYXZlIGV2ZW50IGJhc2VkIHNvbHV0aW9uLCB0aGVuIHRoZSBzY2hlZHVsZXIg d2lsbCBiZSBhYmxlIHRvDQo+IGhhbmRsZSB0aGUgbG9hZCBiYWxhbmNpbmcgYWNjb3JkaW5nbHku DQoNCkRpZG4ndCB1bmRlcnN0YW5kIHRoYXQgc2VudGVuY2UuDQoNCj4gDQo+ID4gVGhhdCB3YXMg dGhlIG1haW4gcmVhc29uIHRvIGtlZXAgcnRlX3NlY3VyaXR5IGFzIGl0IGlzIHJpZ2h0IG5vdyBh bmQgZ28gYWhlYWQgd2l0aCBuZXcgbGlicmFyeS4NCj4gPiBPbmUgdGhpbmcgdGhhdCB3b3JyaWVz IG1lIC0gIGRvIHdlIG5lZWQgYSB3YXkgdG8gc2hhcmUgU1FOIGFuZCByZXBsYXkgd2luZG93IGlu Zm9ybWF0aW9uDQo+ID4gYmV0d2VlbiBydGVfc2VjdXJpdHkgYW5kIHVwcGVyIGxheWVyIChydGVf aXBzZWMpPw0KPiA+IElmICdubycsIHRoZW4gb2ssIGlmICd5ZXMnIHRoZW4gcHJvYmFibHkgd2Ug bmVlZCB0byBkaXNjdXNzIGhvdyB0byBkbyBpdCBub3c/DQo+IGFudGktcmVwbGF5IHdpbmRvdyBz aXplIHNoYWxsIGJlIGEgcGFyYW1ldGVyIGluIGlwc2VjX3hmb3JtLCB3aGljaCBzaGFsbA0KPiBi ZSBhZGRlZC4NCj4gQW5kIHRoZSBlcnJvciBub3RpZmljYXRpb24NCj4gIMKgLSBpbiBjYXNlIG9m IHVzaW5nIGNyeXB0bywgdGhlbiB1c2UgcnRlX2NyeXB0b19vcF9zdGF0dXMNCj4gLSBpbiBjYXNl IG9mIGlubGluZSBjYXNlcywgdGhlbiB1c2UgcnRlX2V0aF9ldmVudCBjYWxsYmFja3MuDQo+IEkg ZG9uJ3Qgc2VlIHJ0ZV9pcHNlYyBuZWVkcyB0byB0YWtlIGNhcmUgb2YgdGhhdCBpbiB5b3VyIGlu aXRpYWwgYXBwcm9hY2guDQo+IEhvd2V2ZXIsIGlmIHlvdSBwbGFuIHRvIGluY2x1ZGUgc2Vzc2lv biByZXNldCBpbnNpZGUgcnRlX2lwc2VjLCB0aGVuIHlvdQ0KPiBtYXkgbmVlZCB0aGF0IGluc2lk ZSB0aGUgcnRlX2lwc2VjLg0KDQpJIGFtIG5vdCB0YWxraW5nIHJ0ZV9pcHNlYywgbXkgY29uY2Vy biBoZXJlIGlzIHJ0ZV9zZWN1cml0eS4NClN1cHBvc2UgeW91IG5lZWQgdG8gc3dpdGNoIGZyb20g ZGV2aWNlIHRoYXQgY2FuIGRvIGlubGluZV9wcm90byB0byB0aGUgZGV2aWNlIHRoYXQgZG9lc24n dC4NClJpZ2h0IG5vdyB0aGUgb25seSB3YXkgLSByZW5lZ290aWF0ZSBhbGwgU0FzIHRoYXQgd2Vy ZSBoYW5kbGVkIGJ5IGlubGluZV9wcm90byBkZXZpY2UNCihiZWNhdXNlIHRoZXJlIGlzIG5vIHdh eSB0byByZXRyaWV2ZSBmcm9tIHJ0ZV9zZWN1cml0eSBkZXZpY2UgU1FOIGluZm9ybWF0aW9uKS4N ClJlbmVnb3RpYXRpb24gc2hvdWxkIHdvcmssIGJ1dCBpdCBsb29rcyBsaWtlIHF1aXRlIGV4cGVu c2l2ZSBhcHByb2FjaC4NCklmIHJ0ZV9zZWN1cml0eSB3b3VsZCBoYXZlIGEgd2F5IHRvIHNoYXJl IGl0cyBTUU4gc3RhdHVzIHdpdGggU1csIHRoZW4gSSB0aGluayBpdCB3b3VsZA0KYmUgcG9zc2li bGUgdG8gZG8gc3VjaCBzd2l0Y2ggd2l0aG91dCBTQSB0ZXJtaW5hdGlvbi4NCkFnYWluIHdpdGgg c3VjaCBpbmZvIGF2YWlsYWJsZSAtIGxvYWQtYmFsYW5jaW5nIGZvciB0aGUgc2FtZSBTQSBvbiBt dWx0aXBsZSBkZXZpY2VzDQptaWdodCBiZSBwb3NzaWJsZS4NCktvbnN0YW50aW4NCg0K