From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-HE1-obe.outbound.protection.outlook.com (mail-eopbgr10046.outbound.protection.outlook.com [40.107.1.46]) by dpdk.org (Postfix) with ESMTP id 01650DE0 for ; Thu, 11 May 2017 07:27:18 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=yXlv04laN55BfJFY7NaIlF+fYU779IzQ/LRpW56k+yk=; b=usKoUVjyM2hZq9dNIWHslC+xUldFCxDbrJHC8mH6laAYbFZj9ERfL5RH5S1wAomKUqL8jfBg0vaXd4WZNKJR8yHHCiafnRT/ieCN8ZhM55cj9vq6e16r+esvurTAQKu1yWqJgAmI/TXXOIaC2JPWnMSNGrmDfXRBLT1x8AlinF0= Received: from DB6PR05MB3176.eurprd05.prod.outlook.com (10.170.221.26) by DB6PR05MB3173.eurprd05.prod.outlook.com (10.170.221.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1084.16; Thu, 11 May 2017 05:27:16 +0000 Received: from DB6PR05MB3176.eurprd05.prod.outlook.com ([10.170.221.26]) by DB6PR05MB3176.eurprd05.prod.outlook.com ([10.170.221.26]) with mapi id 15.01.1084.017; Thu, 11 May 2017 05:27:16 +0000 From: Boris Pismenny To: Declan Doherty , "radu.nicolau@intel.com" , "dev@dpdk.org" Thread-Topic: [dpdk-dev] [RFC][PATCH 0/5] cryptodev: Adding support for inline crypto processing of IPsec flows Thread-Index: AQHSyaecv1W6U9UbnUqgBKQ7LmK8+aHt0IiAgAAVwTA= Date: Thu, 11 May 2017 05:27:15 +0000 Message-ID: References: <1494341879-18718-1-git-send-email-radu.nicolau@intel.com> <871defdd-9388-4251-92ea-c74a4d8c4938@intel.com> In-Reply-To: <871defdd-9388-4251-92ea-c74a4d8c4938@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=mellanox.com; x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; DB6PR05MB3173; 7:S7SqPbQlppvfsHz8pdmcSnrQnNRZuYrVQD9biv5ATPCs/acDfcQBkzlwbNgIxRWTlnJscVq3tFL0w6c2PV/x2DZ+L0euu0hrE8Ov0JQrItikzYzIY/bGfvBdOo8eIGAvqPmczF+h+kbAqekjcvm8DdCPcmaE1QoyVrWN2xqGwXawzaH/jC2pnnUhPI7ZwKxODH6CwWNOdY+lx6QN7cIoEdGYnOEPOVG5WSVGBWDUBk9hvonguUp6Gt+Od2+trEbmX2g7TNBWAeRSPBPrlScKdzsCk98LINd9GhcgE4CS0vmYTPcDmpwPdmvQxORExTjBZJusi6zA/mVlqMl8P0rb8Q== x-ms-office365-filtering-correlation-id: 80a249be-9091-404a-ab68-08d4982e62e2 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(2017030254075)(48565401081)(201703131423075)(201703031133081); SRVR:DB6PR05MB3173; x-microsoft-antispam-prvs: x-exchange-antispam-report-test: UriScan:(192374486261705)(17755550239193); x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(10201501046)(6055026)(6041248)(20161123562025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123564025)(20161123560025)(6072148); SRVR:DB6PR05MB3173; BCL:0; PCL:0; RULEID:; SRVR:DB6PR05MB3173; x-forefront-prvs: 0304E36CA3 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(6009001)(39410400002)(39840400002)(39860400002)(39450400003)(39400400002)(39850400002)(51444003)(5660300001)(33656002)(74316002)(6436002)(38730400002)(189998001)(305945005)(99286003)(9686003)(50986999)(7696004)(6506006)(7736002)(3280700002)(25786009)(3846002)(478600001)(77096006)(6116002)(2906002)(3660700001)(102836003)(66066001)(229853002)(2201001)(2501003)(86362001)(6246003)(2900100001)(53936002)(55016002)(2950100002)(54356999)(8936002)(122556002)(76176999)(81166006)(8676002); DIR:OUT; SFP:1101; SCL:1; SRVR:DB6PR05MB3173; H:DB6PR05MB3176.eurprd05.prod.outlook.com; FPR:; SPF:None; MLV:sfv; LANG:en; spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-originalarrivaltime: 11 May 2017 05:27:15.9100 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR05MB3173 Subject: Re: [dpdk-dev] [RFC][PATCH 0/5] cryptodev: Adding support for inline crypto processing of IPsec flows 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: Thu, 11 May 2017 05:27:19 -0000 PiA+PiA1LiBUaGUgYWRkaXRpb24gb2YgaW5saW5lIGNyeXB0byBtZXRhZGF0YSBpbnRvIHRoZSBy dGVfbWJ1ZiBzdHJ1Y3R1cmUgdG8NCj4gYWxsb3cgdGhlIHJlcXVpcmVkIGVncmVzcyBtZXRhZGF0 YSB0byBiZSBnaXZlbiB0byB0aGUgTklDIFBNRCB0byBidWlsZCB0aGUNCj4gbmVjZXNzYXJ5IHRy YW5zbWl0IGRlc2NyaXB0b3JzIGluIHR4X2J1cnN0IHByb2Nlc3Npbmcgd2hlbiB0aGUNCj4gUEtU X1RYX0lQU0VDX0lOTElORV9DUllQVE8gaXMgc2V0LiBXZSBhcmUgbG9va2luZyBmb3IgZmVlZGJh Y2sgb24gYQ0KPiBiZXR0ZXIgYXBwcm9hY2ggdG8gaGFuZGxpbmcgdGhlIHBhc3Npbmcgb2YgdGhp cyBtZXRhZGF0YSB0byB0aGUgTklDIGFzIGl0IGlzDQo+IHVuZGVyc3Rvb2QgdGhhdCBkaWZmZXJl bnQgaGFyZHdhcmUgYWNjZWxlcmF0b3JzIHdoaWNoIHN1cHBvcnQgdGhpcyBvZmZsb2FkDQo+IG1h eSBoYXZlIGRpZmZlcmVudCByZXF1aXJlbWVudHMgZm9yIG1ldGFkYXRhIGRlcGVuZGluZyBvbg0K PiBpbXBsZW1lbnRhdGlvbiBhbmQgb3RoZXIgY2FwYWJpbGl0aWVzIGluIHRoZSBkZXZpY2UuIE9u ZSBwb3NzaWJpbGl0eSB3ZSBoYXZlDQo+IGNvbnNpZGVyIGlzIHRoYXQgdGhlIGxhc3QgMTYgYnl0 ZXMgb2YgbWJ1ZiBpcyByZXNlcnZlZCBmb3IgZGV2aWNlIHNwZWNpZmljDQo+IG1ldGFkYXRhLCB3 aGljaCBsYXlvdXQgaXMgZmxleGlibGUgZGVwZW5kaW5nIG9uIHRoZSBoYXJkd2FyZSBiZWluZyB1 c2VkLg0KPiA+Pg0KPiA+PiBzdHJ1Y3QgcnRlX21idWYgew0KPiA+PiAuLi4NCj4gPj4gCS8qKiBJ bmxpbmUgSVBTZWMgbWV0YWRhdGEqLw0KPiA+PiAJc3RydWN0IHsNCj4gPj4gCSAgICAgICAgdWlu dDE2X3Qgc2FfaWR4OyAgICAgICAgLyoqPCBTQSBpbmRleCAqLw0KPiA+PiAJICAgICAgICB1aW50 OF90ICBwYWRfbGVuOyAgICAgICAvKio8IFBhZGRpbmcgbGVuZ3RoICovDQo+ID4+IAkgICAgICAg IHVpbnQ4X3QgIGVuYzsNCj4gPj4gCX0gaW5saW5lX2lwc2VjOw0KPiA+PiB9IF9fcnRlX2NhY2hl X2FsaWduZWQ7DQo+ID4NCj4gPiBBc3N1bWluZyB0aGF0IHlvdSBzZWUgdGhlIHBhY2tldCB3aXRo IFBLVF9UWF9JUFNFQ19JTkxJTkVfQ1JZUFRPLA0KPiBjb3VsZCB5b3UgaW5mZXIgdGhlc2UgcGFy YW1ldGVycyBmcm9tIHRoZSBwYWNrZXQgaXRzZWxmPw0KPiA+DQo+IA0KPiBJbiBvdXIgY2FzZSB0 aGlzIGlzbid0IHJlYWxseSBwb3NzaWJsZSBhcyBlYWNoIHBhY2tldCBpbiBhIGJ1cnN0IGNvdWxk IGJlIGJlDQo+IGFzc29jaWF0ZWQgd2l0aCBhIGRpZmZlcmVudCBzZWN1cml0eSBhc3NvY2lhdGlv bi9jcnlwdG8gc2Vzc2lvbiBhbmQgd2lsbCBhbHNvDQo+IGhhdmUgZGlmZmVyZW50IGxlbmd0aHMv cGFkZGluZyBldGMuIFdlIGNvdWxkIHVzZSBzb21lIHNvcnQgb2YgY29va2llIHRvDQo+IHN0b3Jl IHRoaXMsIGJ1dCBJIHRoaW5rIGl0IHdvdWxkIGhhdmUgYSBiaWcgcGVyZm9ybWFuY2UgaW1wYWN0 LiBJIGRvIHRoaW5rIHRoYXQNCj4gdGhpcyBzdHJ1Y3R1cmUgaW4gdGhlIG1idWYgc2hvdWxkIG5v dCBiZSBkZXZpY2Ugc3BlY2lmaWMgYXMgaXQgaXMgbm93IGZvciB0aGUNCj4gcmVxdWlyZWQgbWV0 YWRhdGEsIGJ1dCBJIHdvdWxkIGxpa2UgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIG1ldGFkYXRhIGlz IGluIHRoZQ0KPiBtYnVmLg0KPiANCj4gDQo+ID4NCj4gPiBUaGlzIGlzIGEgbmljZSBhcHByb2Fj aC4NCj4gPg0KPiA+IFdlIGFyZSBhbHNvIHdvcmtpbmcgb24gYWRkaW5nIHN1cHBvcnQgZm9yIElQ c2VjIGlubGluZSBjcnlwdG8gaW4gRFBESy4NCj4gPiBJIGhvcGUgd2UgY291bGQgc3VibWl0IGEg UkZDIHdpdGggd29ya2luZyBjb2RlIHNvb24uDQo+IElpcyB5b3VyIGRldmljZSBjYXBhYmxlIG9m IGZ1bGwgSVBzZWMgcHJvdG9jb2wgcHJvY2Vzc2luZywgRVNQIGhlYWRlciBpbnNlcnRpb24sDQo+ IGVuY2FwL2RlY2FwIGV0Yz8gSW4gb3VyIGNhc2UgdGhlIGlubGluZSBmdW5jdGlvbmFsaXR5IGlz IGxpbWl0ZWQgdG8gdGhlIGNyeXB0bw0KPiBwcm9jZXNzaW5nLCBzbyB3ZSBhcmUgd29ya2luZyBv biB0aGUgYXNzdW1wdGlvbiB0aGF0IHRoZSB1c2VyIHdpbGwgYmUNCj4gaW50ZWdyYXRpbmcgd2l0 aCBhbiBleGlzdGluZyBJUHNlYyBzdGFjay4gT24gaW5ncmVzcyB0aGUgbG9va3VwIGlzIGJhc2Vk IG9uIHRoZQ0KPiBEZXN0aW5hdGlvbiBJUCBhbmQgU1BJLCBvbiBlZ3Jlc3MgdGhlIG1ldGFkYXRh IGlzDQoNCkN1cnJlbnRseSBvdXIgZGV2aWNlIGlzIG5vdCBjYXBhYmxlIG9mIGZ1bGwgSVBzZWMg cHJvdG9jb2wgcHJvY2Vzc2luZy4NCkJ1dCwgZnV0dXJlIGRldmljZXMgd2lsbCBub3QgaGF2ZSB0 aGlzIGxpbWl0YXRpb24gYW5kIGl0IHNob3VsZG4ndCBiZSANCmFzc3VtZWQgaW4gdGhlIEFQSS4g V2UgYWxzbywgbmVlZCB0byBpbnRlZ3JhdGUgd2l0aCBhbiBleGlzdGluZw0KSVBzZWMgc3RhY2su IEhvd2V2ZXIsIHdlIHBlcmZvcm0gYSBsb29rdXAgb24gYm90aCBlZ3Jlc3MgYW5kDQpJbmdyZXNz IGZvciBzb3VyY2UgSVAsIGRlc3RpbmF0aW9uIElQIGFuZCBTUEkuDQoNCj4gDQo+ID4NCj4gPiBX ZSBjb25zaWRlcmVkIDMgYXBwcm9hY2hlcyBmb3IgSVBzZWMgaW5saW5lIHN1cHBvcnQ6DQo+ID4g MS4gSVBzZWMgaW5saW5lIGFzIGEgY3J5cHRvZGV2IChsaWtlIHRoaXMgUkZDKSAyLiBJUHNlYyBp bmxpbmUgYXMgYQ0KPiA+IHJ0ZV9mbG93IGFjdGlvbi4gKHNlZSBkZXRhaWxzIGJlbG93KSAzLiBN aXggYmV0d2VlbiBhcHByb2FjaCAyIGFuZA0KPiA+IGFwcHJvYWNoIDMuDQo+ID4NCj4gPiBJbiBh cHByb2FjaCAyLCB0aGVyZSBpcyBubyBuZWVkIGZvciBhbiBhZGRpdGlvbmFsIGNyeXB0byBQTUQu DQo+ID4gSW5saW5lIElQc2VjIGlzIGV4cG9zZWQgYXMgYW5vdGhlciBmZWF0dXJlIG9mIGEgTklD IFBNRC4NCj4gPg0KPiANCj4gPiBGb3IgdGhlIGNvbnRyb2wtcGF0aCwgd2UgaW50cm9kdWNlIGEg bmV3IHJ0ZV9mbG93X2FjdGlvbl90eXBlIGZvcg0KPiA+IGNyeXB0byBhbmQgYSBmbGFnIHRvIG1h cmsgZmxvd3MgYXMgZWdyZXNzIGZsb3dzLg0KPiA+IFRoZW4sIGl0IGlzIHBvc3NpYmxlIHRvIHBy b2dyYW0gdGhlIFNBIGJ5IGNhbGxpbmcgcnRlX2Zsb3dfY3JlYXRlIHdpdGgNCj4gPiBhbiBhcHBy b3ByaWF0ZSBwYXR0ZXJuIG9mIElQIGFuZCBFU1AgaGVhZGVyIGZpZWxkcywgYW5kIGFuIGFjdGlv biB0aGF0DQo+ID4gY29udGFpbnMgcnRlX2NyeXB0b19pcHNlY194Zm9ybSBhcyB0aGUgY29uZmln dXJhdGlvbi4NCj4gPg0KPiA+IFRoZSBtYWluIGJlbmVmaXQgb2YgdXNpbmcgdGhlIHJ0ZV9mbG93 IEFQSSBpcyB0aGF0IHdlIGNhbiByZXVzZSwgdGhlDQo+ID4gZXhpc3RpbmcgQVBJIHdpdGggcGF0 dGVybnMgYW5kIGFjdGlvbnMuIEZvciBleGFtcGxlLCBpdCB3b3VsZCBiZQ0KPiA+IHBvc3NpYmxl IHRvIGFkZCBzdXBwb3J0IGZvciBVRFAgZW5jYXBzdWxhdGlvbiBvZiBJUHNlYyB3aXRob3V0DQo+ ID4gY2hhbmdpbmcgdGhlIEFQSS4gU3VwcG9ydCBmb3IgVkxBTi9WWExBTi9HUkUvZXRjIGNvdWxk IGJlIGFkZGVkDQo+ID4gc2ltaWxhcmx5IHRvIFVEUCBlbmNhcHN1bGF0aW9uLg0KPiANCj4gVGhp cyBtYWtlIHNlbnNlIHdoZW4gaHcgaXMgY2FwYWJsZSBvZiBmdWxsIG9mZmxvYWQuIFNvIHRoZSBy dGVfZmxvdyBhY3Rpb25zDQo+IG1pZ2h0IGJlIFZ4TEFOIGFuZCBFU1AgVHVubmVsIGZvciBhIGZs b3cuIFRoZSBvdGhlciBhcHByb2FjaCBpcyB0aGF0IHRvDQo+IHNlcGFyYXRlIHJ1bGVzIGFyZSBj cmVhdGVkIG9uZSBmb3IgSVBzZWMsIHRoZW4gYSBzZWNvbmQgZm9yIHRoZSBWeExBTiB0dW5uZWwN Cj4gd2hpY2ggdHJpZ2dlciBvbiB0aGUgSVBzZWMgZmxvdywgYnV0IHRoaXMgcHJvYmFibHkgaW1w bGllcyB0aGF0IGVpdGhlciB0aGUgUE1EDQo+IGZsYXR0ZW5zIHRoZXNlIGZsb3cgYWN0aW9ucyBp bnRvIGEgc2luZ2xlIGFjdGlvbiBvciB0aGUgaHcgc3VwcG9ydHMgcmUNCj4gY2lyY3VsYXRpb24u IE9uZSBjb25jZXJuIEkgd291bGQgaGF2ZSBpcyBwb3B1bGF0aW9uIG9mIHRoZSBuYW1lc3BhY2Ug b2YNCj4gcnRlX2Zsb3cgd2l0aCBJUHNlYy9jcnlwdG8gc2Vzc2lvbiBtYXRlcmlhbCwgYnV0IEkg Z3Vlc3MgaXQgc2hvdWxkIGJlIHBvc3NpYmxlDQo+IHRvIGNvbWUgdXAgd2l0aCBhIGNsZWFuIHdh eSBvZiBzdXBwb3J0aW5nIHRoaXMuDQoNCkZ1bGwgb2ZmbG9hZCBpcyBub3QgbmVjZXNzYXJ5IGlm IHRoZSBkZXZpY2UgaGFzIGEgY2FwYWJsZSBwYXJzZXIuDQpFbmNhcHN1bGF0aW9ucyBjb3VsZCBi ZSBhZGRlZCBieSB0aGUgRFBESyBhcHBsaWNhdGlvbiwgYW5kDQpmb3IgaW5saW5lIG9mZmxvYWQg dGhlIGRldmljZSBtdXN0IGJlIGF3YXJlIG9mIHRoZW0uIFVubGlrZSBvdGhlcg0KY3J5cHRvIFBN RHMgdGhhdCBhY3R1YWxseSBwZXJmb3JtIGVuY3J5cHRpb24sIGlubGluZSBjcnlwdG8gUE1Ecw0K bmVlZCB0byBzZXR1cCB0aGUgZW50aXJlIHBhY2tldCBmb3JtYXQgdXAgdG8gRVNQIGluIG9yZGVy IHRvIHByb2Nlc3MNCnRoZSByZXF1ZXN0LiBPbmUgY29uY2VybiBJIGhhdmUgaW4gdGhpcyBtYXR0 ZXIsIGlzIHRoYXQgdGhlIHNlbWFudGljcyBvZg0Kb3RoZXIgY3J5cHRvIFBNRHMgYXJlIGRpZmZl cmVudCBmcm9tIGlubGluZSAtIHRoZXkgYWN0dWFsbHkgcGVyZm9ybSBjcnlwdG8uDQpJbmxpbmUg d291bGQgYnJlYWsgaWYgdGhlIHBhY2tldCBmb3JtYXQgaXMgbm90IGNvcnJlY3QuDQoNCkFkZGlu ZyBhIFZYTEFOIGZsb3cgYW5kIGFuIEVTUCB0dW5uZWwgc2VwYXJhdGVseSBpcyBzaW1pbGFyIHRv IHRoZQ0KdGhpcmQgYXBwcm9hY2gsIGJlY2F1c2UgdGhlIFBNRCByZXF1aXJlcyBzb21lIGluZGlj YXRpb24gdGhhdCBpdCBzaG91bGQNCmZsYXR0ZW4gdGhlc2UgcnVsZXMgYW5kIHRoaXMgaW5kaWNh dGlvbiB3aWxsIGJlIGluIHRoZSBmb3JtIG9mIGEgY3J5cHRvIHNlc3Npb24uDQpNYXliZSB0aGlz IGFwcHJvYWNoIHdpbGwgYmUgdGhlIGJlc3QuIA0KDQpJbiB0aGUgM3JkIGFwcHJvYWNoIHRoZXJl IGlzIGEgY3J5cHRvIFBNRCB0aGF0IGFsbG93cyBmb3IgemVybyBjaGFuZ2VzDQppbiB0aGUgZGF0 YXBhdGggYW5kIGl0IGlzIHBvc3NpYmxlIHRvIHNldCBkZXZpY2Ugc3BlY2lmaWMgbWV0YWRhdGEg aW4gaXRzDQplbnF1ZXVlX2J1cnN0LiBXaGlsZSwgdGhlIGNvbnRyb2wgcGF0aCBpcyBzcGxpdCBi ZXR3ZWVuIHJ0ZV9jcnlwdG8gYW5kDQpydGVfZmxvdy4gRmlyc3QgYSBjcnlwdG8gc2Vzc2lvbiBp cyBzZXR1cCwgdGhlbiB0aGUgY3J5cHRvIHNlc3Npb24gaXMNCnByb3ZpZGVkIHRvIHJ0ZV9mbG93 X2NyZWF0ZSBhcyBhbiBhY3Rpb24uIFRoZSBjcnlwdG8gc2Vzc2lvbiB3aWxsIG5vdA0KaW5jbHVk ZSBhbnkgbmV0d29ya2luZyByZWxhdGVkIGNvZGUsIGp1c3QgdGhlIGtleXMgYW5kIHRoZSBzYWx0 Lg0KDQpXaGF0IGlzIHlvdXIgY29uY2VybiBhYm91dCB0aGUgcG9wdWxhdGlvbiBvZiBydGVfZmxv dyB3aXRoIElQc2VjL2NyeXB0bw0KbWF0ZXJpYWw/IEkgdGhpbmsgdGhhdCBhdCBsZWFzdCBzb21l IGNyeXB0byBpbiBydGVfZmxvdyBpcyBuZWNlc3NhcnkgdG8NCnN1cHBvcnQgYWR2YW5jZWQgdXNl LWNhc2VzIHdpdGhvdXQgcmUtaW1wbGVtZW50aW5nIHJ0ZV9mbG93IGluc2lkZQ0KcnRlX2NyeXB0 by4NCg0KPiANCj4gDQo+ID4gRm9yIHRoZSBkYXRhLXBhdGgsIGFsbCBpcyBoYW5kbGVkIGluIHRo ZSBOSUMgUE1ELCBkdXJpbmcgcngvdHhfYnVyc3QuDQo+ID4gV2hpbGUsIHRoZSBhcHBsaWNhdGlv biBtYXJrcyB0aGUgcGFja2V0cyBmb3IgZW5jcnlwdGlvbiBpbiB0aGUNCj4gPiB0cmFuc21pdCBw YXRoLiBBbmQgaXQgcmVjZWl2ZXMgcGFja2V0cyBtYXJrZWQgYXMgZGVjcnlwdGVkL2F1dGgtZmFp bA0KPiA+IG9uIHRoZSByZWNlaXZlIHNpZGUuDQo+IA0KPiB3aGVuIHlvdSBzYXkgdGhlIGFwcGxp Y2F0aW9uIG1hcmtzIHRoZSBwYWNrZXQsIHRoaXMgaXMgZXNzZW50aWFsbHkgdGhlIElQc2VjDQo+ IHN0YWNrPyBUaGUgbWFpbiBiZW5lZml0IGluIHRoZSBhcHByb2FjaCBvZiB0aGlzIFJGQyBpcyB0 aGF0IGl0IGlzIHBvc3NpYmxlIHRvDQo+IGludGVncmF0ZSB0aGUgaW5saW5lIGNyeXB0byBwcm9j ZXNzaW5nIHRyYW5zcGFyZW50bHkgaW4gdGhlIGRhdGEgcGF0aC4gVGhlDQo+IGNyeXB0byBQTUQg Y2FuIGhhbmRsZSBzZXR0aW5nIGFuZCBpbnRlcnByZXRpbmcgdGhlIG1ldGFkYXRhIHJlcXVpcmVk IGFuZA0KPiB0aGUgSVBzZWMgc3RhY2sgaXMganVzdCB1c2luZyB0aGUgY3J5cHRvIFBNRCBhcyBp dCB3b3VsZCBhbnkgb3RoZXIgY3J5cHRvDQo+IFBNRC4NCj4gDQoNClJpZ2h0LiBJJ20gY29uY2Vy bmVkIGFib3V0IHRoZSBvdmVyaGVhZCBvZiBnb2luZyB0aHJvdWdoIGEgY3J5cHRvIFBNRCwNCmFu ZCBJIHVuZGVyc3RhbmQgdGhhdCBpdCBtaWdodCBiZSBuZWNlc3NhcnkgZm9yIHlvdXIgZGV2aWNl Lg0KQ2hhbmdlcyBpbiB0aGUgZGF0YSBwYXRoIHdvdWxkIGJlIG1pbm9yIGluIGFueSB3YXkgd2Ug aW1wbGVtZW50IGlubGluZS4NCklmIHRoZSBtZXRhZGF0YSBpcyBub3QgZGV2aWNlIHNwZWNpZmlj LCB0aGVuIHNob3VsZG4ndCB0aGUgYXBwbGljYXRpb24gc2V0IGl0DQpkaXJlY3RseSBiYXNlZCBv biB0aGUgU0EgaXRzZWxmPw0KDQoNCg0K