From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <konstantin.ananyev@intel.com>
Received: from mga04.intel.com (mga04.intel.com [192.55.52.120])
 by dpdk.org (Postfix) with ESMTP id 9F6391B1BE
 for <dev@dpdk.org>; Wed, 11 Oct 2017 11:02:08 +0200 (CEST)
Received: from orsmga005.jf.intel.com ([10.7.209.41])
 by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 11 Oct 2017 02:02:07 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.43,360,1503385200"; d="scan'208";a="159233589"
Received: from irsmsx105.ger.corp.intel.com ([163.33.3.28])
 by orsmga005.jf.intel.com with ESMTP; 11 Oct 2017 02:02:04 -0700
Received: from irsmsx103.ger.corp.intel.com ([169.254.3.49]) by
 irsmsx105.ger.corp.intel.com ([169.254.7.75]) with mapi id 14.03.0319.002;
 Wed, 11 Oct 2017 10:02:03 +0100
From: "Ananyev, Konstantin" <konstantin.ananyev@intel.com>
To: Akhil Goyal <akhil.goyal@nxp.com>, "dev@dpdk.org" <dev@dpdk.org>
CC: "Doherty, Declan" <declan.doherty@intel.com>, "De Lara Guarch, Pablo"
 <pablo.de.lara.guarch@intel.com>, "hemant.agrawal@nxp.com"
 <hemant.agrawal@nxp.com>, "Nicolau, Radu" <radu.nicolau@intel.com>,
 "borisp@mellanox.com" <borisp@mellanox.com>, "aviadye@mellanox.com"
 <aviadye@mellanox.com>, "thomas@monjalon.net" <thomas@monjalon.net>,
 "sandeep.malik@nxp.com" <sandeep.malik@nxp.com>,
 "jerin.jacob@caviumnetworks.com" <jerin.jacob@caviumnetworks.com>,
 "Mcnamara, John" <john.mcnamara@intel.com>, "olivier.matz@6wind.com"
 <olivier.matz@6wind.com>
Thread-Topic: [PATCH v2 01/12] lib/rte_security: add security library
Thread-Index: AQHTPs6D9BCMaNuCEk+S+R5XqMEq8qLbgOsAgAF0KoCAALvukA==
Date: Wed, 11 Oct 2017 09:02:02 +0000
Message-ID: <2601191342CEEE43887BDE71AB9772585FAA75A3@IRSMSX103.ger.corp.intel.com>
References: <20170914082651.26232-1-akhil.goyal@nxp.com>
 <20171003131413.23846-1-akhil.goyal@nxp.com>
 <20171003131413.23846-2-akhil.goyal@nxp.com>
 <2601191342CEEE43887BDE71AB9772585FAA4E58@IRSMSX103.ger.corp.intel.com>
 <15007bf0-d263-05a0-2009-31210f686085@nxp.com>
 <2601191342CEEE43887BDE71AB9772585FAA651D@IRSMSX103.ger.corp.intel.com>
 <0d5a9ca0-34c2-f020-204f-b1105f357bdb@nxp.com>
In-Reply-To: <0d5a9ca0-34c2-f020-204f-b1105f357bdb@nxp.com>
Accept-Language: en-IE, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiZGY4MWM4ZTktMGVhZS00MmI1LTg5OGYtOTljZjFkMmQxNzAyIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6IjhlM0dOMVFlYmUxSzR1UTZNTVcrQnowZkZLSXRoeWRnRUgzRWhhNXNcL1wvST0ifQ==
x-ctpclassification: CTP_IC
dlp-product: dlpe-windows
dlp-version: 11.0.0.116
dlp-reaction: no-action
x-originating-ip: [163.33.239.182]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Subject: Re: [dpdk-dev] [PATCH v2 01/12] lib/rte_security: add security
	library
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Wed, 11 Oct 2017 09:02:09 -0000

SGkgQWtoaWwsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogQWtoaWwg
R295YWwgW21haWx0bzpha2hpbC5nb3lhbEBueHAuY29tXQ0KPiBTZW50OiBUdWVzZGF5LCBPY3Rv
YmVyIDEwLCAyMDE3IDE6MTcgUE0NCj4gVG86IEFuYW55ZXYsIEtvbnN0YW50aW4gPGtvbnN0YW50
aW4uYW5hbnlldkBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gQ2M6IERvaGVydHksIERlY2xh
biA8ZGVjbGFuLmRvaGVydHlAaW50ZWwuY29tPjsgRGUgTGFyYSBHdWFyY2gsIFBhYmxvIDxwYWJs
by5kZS5sYXJhLmd1YXJjaEBpbnRlbC5jb20+OyBoZW1hbnQuYWdyYXdhbEBueHAuY29tOw0KPiBO
aWNvbGF1LCBSYWR1IDxyYWR1Lm5pY29sYXVAaW50ZWwuY29tPjsgYm9yaXNwQG1lbGxhbm94LmNv
bTsgYXZpYWR5ZUBtZWxsYW5veC5jb207IHRob21hc0Btb25qYWxvbi5uZXQ7DQo+IHNhbmRlZXAu
bWFsaWtAbnhwLmNvbTsgamVyaW4uamFjb2JAY2F2aXVtbmV0d29ya3MuY29tOyBNY25hbWFyYSwg
Sm9obiA8am9obi5tY25hbWFyYUBpbnRlbC5jb20+OyBvbGl2aWVyLm1hdHpANndpbmQuY29tDQo+
IFN1YmplY3Q6IFJlOiBbUEFUQ0ggdjIgMDEvMTJdIGxpYi9ydGVfc2VjdXJpdHk6IGFkZCBzZWN1
cml0eSBsaWJyYXJ5DQo+IA0KPiBIaSBLb25zdGFudGluLA0KPiANCj4gT24gMTAvOS8yMDE3IDc6
MTIgUE0sIEFuYW55ZXYsIEtvbnN0YW50aW4gd3JvdGU6DQo+ID4gSGkgQWtoaWwsDQo+ID4NCj4g
Pj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPj4gRnJvbTogQWtoaWwgR295YWwgW21h
aWx0bzpha2hpbC5nb3lhbEBueHAuY29tXQ0KPiA+PiBTZW50OiBGcmlkYXksIE9jdG9iZXIgNiwg
MjAxNyA3OjExIFBNDQo+ID4+IFRvOiBBbmFueWV2LCBLb25zdGFudGluIDxrb25zdGFudGluLmFu
YW55ZXZAaW50ZWwuY29tPjsgZGV2QGRwZGsub3JnDQo+ID4+IENjOiBEb2hlcnR5LCBEZWNsYW4g
PGRlY2xhbi5kb2hlcnR5QGludGVsLmNvbT47IERlIExhcmEgR3VhcmNoLCBQYWJsbyA8cGFibG8u
ZGUubGFyYS5ndWFyY2hAaW50ZWwuY29tPjsNCj4gaGVtYW50LmFncmF3YWxAbnhwLmNvbTsNCj4g
Pj4gTmljb2xhdSwgUmFkdSA8cmFkdS5uaWNvbGF1QGludGVsLmNvbT47IGJvcmlzcEBtZWxsYW5v
eC5jb207IGF2aWFkeWVAbWVsbGFub3guY29tOyB0aG9tYXNAbW9uamFsb24ubmV0Ow0KPiA+PiBz
YW5kZWVwLm1hbGlrQG54cC5jb207IGplcmluLmphY29iQGNhdml1bW5ldHdvcmtzLmNvbTsgTWNu
YW1hcmEsIEpvaG4gPGpvaG4ubWNuYW1hcmFAaW50ZWwuY29tPjsgb2xpdmllci5tYXR6QDZ3aW5k
LmNvbQ0KPiA+PiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDAxLzEyXSBsaWIvcnRlX3NlY3VyaXR5
OiBhZGQgc2VjdXJpdHkgbGlicmFyeQ0KPiA+Pg0KPiA+PiBIaSBLb25zdGFudGluLA0KPiA+Pg0K
PiA+PiBUaGFua3MgZm9yIHlvdXIgY29tbWVudHMuDQo+ID4+IE9uIDEwLzUvMjAxNyAxMDowMCBQ
TSwgQW5hbnlldiwgS29uc3RhbnRpbiB3cm90ZToNCj4gPj4+IEhpIGxhZHMsDQo+ID4+Pg0KPiA+
Pj4+DQo+ID4+Pj4gcnRlX3NlY3VyaXR5IGxpYnJhcnkgcHJvdmlkZXMgQVBJcyBmb3Igc2VjdXJp
dHkgc2Vzc2lvbg0KPiA+Pj4+IGNyZWF0ZS9mcmVlIGZvciBwcm90b2NvbCBvZmZsb2FkIG9yIG9m
ZmxvYWRlZCBjcnlwdG8NCj4gPj4+PiBvcGVyYXRpb24gdG8gZXRoZXJuZXQgZGV2aWNlLg0KPiA+
Pj4+DQo+ID4+Pj4gU2lnbmVkLW9mZi1ieTogQWtoaWwgR295YWwgPGFraGlsLmdveWFsQG54cC5j
b20+DQo+ID4+Pj4gU2lnbmVkLW9mZi1ieTogQm9yaXMgUGlzbWVubnkgPGJvcmlzcEBtZWxsYW5v
eC5jb20+DQo+ID4+Pj4gU2lnbmVkLW9mZi1ieTogUmFkdSBOaWNvbGF1IDxyYWR1Lm5pY29sYXVA
aW50ZWwuY29tPg0KPiA+Pj4+IFNpZ25lZC1vZmYtYnk6IERlY2xhbiBEb2hlcnR5IDxkZWNsYW4u
ZG9oZXJ0eUBpbnRlbC5jb20+DQo+ID4+Pj4gLS0tDQo+ID4+Pj4gICAgbGliL2xpYnJ0ZV9zZWN1
cml0eS9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgNTMgKysrDQo+ID4+Pj4gICAgbGliL2xp
YnJ0ZV9zZWN1cml0eS9ydGVfc2VjdXJpdHkuYyAgICAgICAgICAgfCAyNzUgKysrKysrKysrKysr
KysrDQo+ID4+Pj4gICAgbGliL2xpYnJ0ZV9zZWN1cml0eS9ydGVfc2VjdXJpdHkuaCAgICAgICAg
ICAgfCA0OTUgKysrKysrKysrKysrKysrKysrKysrKysrKysrDQo+ID4+Pj4gICAgbGliL2xpYnJ0
ZV9zZWN1cml0eS9ydGVfc2VjdXJpdHlfZHJpdmVyLmggICAgfCAxODIgKysrKysrKysrKw0KPiA+
Pj4+ICAgIGxpYi9saWJydGVfc2VjdXJpdHkvcnRlX3NlY3VyaXR5X3ZlcnNpb24ubWFwIHwgIDEz
ICsNCj4gPj4+PiAgICA1IGZpbGVzIGNoYW5nZWQsIDEwMTggaW5zZXJ0aW9ucygrKQ0KPiA+Pj4+
ICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX3NlY3VyaXR5L01ha2VmaWxlDQo+ID4+
Pj4gICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfc2VjdXJpdHkvcnRlX3NlY3VyaXR5
LmMNCj4gPj4+PiAgICBjcmVhdGUgbW9kZSAxMDA2NDQgbGliL2xpYnJ0ZV9zZWN1cml0eS9ydGVf
c2VjdXJpdHkuaA0KPiA+Pj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbGlicnRlX3NlY3Vy
aXR5L3J0ZV9zZWN1cml0eV9kcml2ZXIuaA0KPiA+Pj4+ICAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBs
aWIvbGlicnRlX3NlY3VyaXR5L3J0ZV9zZWN1cml0eV92ZXJzaW9uLm1hcA0KPiA+Pj4+DQo+IA0K
PiBbLi4uXQ0KPiANCj4gPj4+PiArDQo+ID4+Pj4gK3N0cnVjdCBydGVfc2VjdXJpdHlfY3R4IHsN
Cj4gPj4+PiArCXVpbnQxNl90IGlkOw0KPiA+Pj4+ICsJZW51bSB7DQo+ID4+Pj4gKwkJUlRFX1NF
Q1VSSVRZX0lOU1RBTkNFX0lOVkFMSUQsDQo+ID4+Pj4gKwkJUlRFX1NFQ1VSSVRZX0lOU1RBTkNF
X1ZBTElEDQo+ID4+Pj4gKwl9IHN0YXRlOw0KPiA+Pj4+ICsJdm9pZCAqZGV2aWNlOw0KPiA+Pj4+
ICsJc3RydWN0IHJ0ZV9zZWN1cml0eV9vcHMgKm9wczsNCj4gPj4+PiArCXVpbnQxNl90IHNlc3Nf
Y250Ow0KPiA+Pj4+ICt9Ow0KPiA+Pj4+ICsNCj4gPj4+PiArc3RhdGljIHN0cnVjdCBydGVfc2Vj
dXJpdHlfY3R4ICpzZWN1cml0eV9pbnN0YW5jZXM7DQo+ID4+Pj4gK3N0YXRpYyB1aW50MTZfdCBt
YXhfbmJfc2VjdXJpdHlfaW5zdGFuY2VzOw0KPiA+Pj4+ICtzdGF0aWMgdWludDE2X3QgbmJfc2Vj
dXJpdHlfaW5zdGFuY2VzOw0KPiA+Pj4NCj4gPj4+IFByb2JhYmx5IGEgZHVtYiBxdWVzdGlvbiAt
IGJ1dCB3aHkgZG8geW91IG5lZWQgYSBnbG9iYWwgc2VjdXJpdHlfaW5zdGFuY2VzIFtdDQo+ID4+
PiBhbmQgd2h5IHNlY3VyaXR5X2luc3RhbmNlIGhhcyB0byBiZSByZWZyZW5jZWQgYnkgaW5kZXg/
DQo+ID4+PiBBcyBJIHVuZGVyc3RhbmQsIHdpdGggcHJvcG9zZWQgbW9kZWwgYWxsIGRyaXZlcnMg
aGF2ZSB0byBkbyBzb21ldGhpbmcgbGlrZToNCj4gPj4+IHJ0ZV9zZWN1cml0eV9yZWdpc3Rlcigm
ZXRoX2Rldi0+ZGF0YS0+c2VjX2lkLCAgKHZvaWQgKilldGhfZGV2LCAmaXhnYmVfc2VjdXJpdHlf
b3BzKTsNCj4gPj4+IGFuZCB0aGVuIGFsbCBhcHBzIHdvdWxkIGhhdmUgdG86DQo+ID4+PiBydGVf
ZXRoX2Rldl9nZXRfc2VjX2lkKHBvcnRpZCkNCj4gPj4+IHRvIHJldHJpZXZlIHRoYXQgc2VjdXJp
dHlfaW5zdGFuY2UgaW5kZXguDQo+ID4+PiBXaHkgbm90IGp1c3QgdHJlYXQgc3RydWN0IHJ0ZV9z
ZWN1cml0eV9jdHgqIGFzIG9wYXF1ZSBwb2ludGVyIGFuZCBtYWtlDQo+ID4+PiBhbGwgcmVsYXRl
ZCBBUEkgZ2V0L2FjY2VwdCBpdCBhcyBhIHBhcmF0ZW1lci4NCj4gPj4+IFRvIHJldHJpZXZlIHNl
Y19jdHggZnJvbSBkZXZpY2UganVzdDoNCj4gPj4+IHN0cnVjdCBydGVfc2VjdXJpdHlfY3R4KiBy
dGVfZXRoZGV2X2dldF9zZWNfY3R4KHBvcnRpZCk7DQo+ID4+PiBzdHJ1Y3QgcnRlX3NlY3VyaXR5
X2N0eCogcnRlX2NyeXB0b2Rldl9nZXRfc2VjX2N0eChwb3J0aWQpOw0KPiA+Pj4gPw0KPiA+PiBX
ZSB3b3VsZCBsb29rIGludG8gdGhpcyBzZXBhcmF0ZWx5Lg0KPiA+DQo+ID4gQ291bGQgeW91IGNs
YXJpZnkgd2hhdCBkb2VzIGl0IG1lYW4/DQo+ID4gSXQgd2lsbCBiZSBhZGRyZXNzZWQgaW4gdjQg
b3IgZG9uJ3QgcGxhbiB0byBhZGRyZXNzIGl0IGF0IGFsbCBvciBzb21ldGhpbmcgZWxzZT8NCj4g
V2Ugd2VyZSB0aGlua2luZyBvZiBpbXByb3ZpbmcgdGhpcyBiZXlvbmQgdGhlIHNjb3BlIG9mIHRo
aXMgcGF0Y2hzZXQgYXMNCj4gYW4gaW5jcmVtZW50YWwgcGF0Y2guDQo+IA0KPiANCj4gPg0KPiA+
DQo+ID4+Pg0KPiA+Pj4gQW5vdGhlciBxdWVzdGlvbiBob3cgY3VycmVudGx5IHByb3Bvc2VkIG1v
ZGVsIHdpdGggZ2xvYmFsIHN0YXRpYyBhcnJheSBhbmQgZnJpZW5kcywNCj4gPj4+IHN1cHBvc2Vk
IHRvIHdvcmsgZm9yIERQREsgTVAgbW9kZWw/DQo+ID4+PiBPciBNUCBzdXBwb3J0IGlzIG5vdCBw
bGFubmVkPw0KPiA+PiBtdWx0aSBwcm9jZXNzIGNhc2UgaXMgcGxhbm5lZCBmb3IgZnV0dXJlIGVu
aGFuY2VtZW50LiBUaGlzIGlzIG1lbnRpb25lZA0KPiA+PiBpbiB0aGUgY292ZXIgbm90ZS4NCj4g
Pg0KPiA+IEdyZWF0LCB0aGVuIEkgc3VwcG9zZSB5b3Ugc2hvdWxkIGhhdmUgYSBnZW5lcmljIGlk
ZWEgaG93IHRoYXQgbW9kZWwgd2lsbCB3b3JrDQo+ID4gZm9yIERQREsgbXVsdGktcHJvY2VzcyBt
b2RlbD8NCj4gPiBJZiBzbywgY2FuIHlvdSBwcm9iYWJseSBzaGFyZSB5b3VyIHRob3VnaHRzLCBi
ZWNhdXNlIGl0IGlzIG5vdCBjbGVhciB0byBtZS4NCj4gPiBMZXQgc2F5IHVzZXIgaGFzIGFuIGV0
aGRldiBkZXZpY2Ugd2l0aCBpcHNlYyBjYXBhYmlsaXR5IGFuZCAgd2FudHMgdG8gdXNlIGl0DQo+
ID4gZnJvbSBib3RoIHByaW1hcnkgYW5kIHNlY29uZGFyeSBwcm9jZXNzLg0KPiA+IFdoYXQgd291
bGQgYmUgYSBwcm9jZWR1cmU/DQo+ID4gQ2FuIHVzZXIgdXNlIHRoZSBzYW1lIHNlY3VyaXR5IGlu
c3RhbmNlIGZyb20gYm90aCBwcm9jZXNzZXM/DQo+ID4gSWYgeWVzLCB0aGVuDQo+ID4gLSBob3cg
c2Vjb25kYXJ5IHByb2Nlc3Mgd2lsbCBnZXQgc2VjdXJpdHlfaW5zdGFuY2VfaWQgZm9yIHRoYXQg
ZGV2aWNlDQo+ID4gZnJvbSBwcmltYXJ5IHByb2Nlc3M/DQo+ID4gICBCeSBjYWxsaW5nIHJ0ZV9l
dGhfZGV2X2dldF9zZWNfaWQoKSwgb3Igc29tZXRoaW5nIGVsc2U/DQo+ID4gLSBob3cgZ3VhcmFu
dGVlIHRoYXQgYWxsIHRoZXNlIGZ1bmMgcG9pbnRlcnMgaW5zaWRlIG9wcyB3aWxsIGJlIG1hcHBl
ZCB0byB0aGUNCj4gPiBzYW1lIGFkZHJlc3MgaW5zaWRlICBwcm9jZXNzZXM/DQo+ID4gSWYgbm90
LCB0aGVuIGRvZXMgaXQgbWVhbiBlYWNoIHByb2Nlc3MgaGFzIHRvIGNhbGwgcnRlX3NlY3VyaXR5
X3JlZ2lzdGVyKCkNCj4gPiBmb3IgZWFjaCBkZXZpY2U/DQo+ID4gQnV0IHJpZ2h0IG5vdyB5b3Ug
aGF2ZSBvbmx5IG9uZSBzZWNfaWQgIGluc2lkZSBydGVfZXRoX2Rldl9kYXRhLg0KPiA+DQo+ID4g
V291bGQgc2Vjb25kYXJ5IHByb2Nlc3MgYmUgYWxsb3dlZCB0byByZWdpc3Rlci91bnJlZ2lzdGVy
L3VwZGF0ZSBzZWN1cml0eSBpbnN0YW5jZXM/DQo+ID4gICBpZiB5ZXMsIGhvdyB0aGUgd2lsbCBz
eW5jaHJvbml6ZT8NCj4gPiBTYW1lIHF1ZXN0aW9uIGZvciBzZXNzaW9uIG9wcy4NCj4gPg0KPiAN
Cj4gQ3VycmVudGx5IG11bHRpIHByb2Nlc3MgY2FzZSBpcyBub3QgaGFuZGxlZCBhbmQgd2UgaGF2
ZSBub3QgcHV0IG91cg0KPiB0aG91Z2h0cyBvbiByZXNvbHZpbmcgdGhpcyBhcyBvZiBub3cuIFdl
IHdlcmUgcGxhbm5pbmcgdG8gaW1wcm92ZSB0aGlzDQo+IGJleW9uZCB0aGUgc2NvcGUgb2YgdGhp
cyBwYXRjaHNldCBhcyBhbiBpbmNyZW1lbnRhbCBwYXRjaC4NCj4gDQo+ID4+Pg0KPiA+Pj4+ICsN
Cj4gPj4+PiArc3RhdGljIGludA0KPiA+Pj4+ICtydGVfc2VjdXJpdHlfaXNfdmFsaWRfaWQodWlu
dDE2X3QgaWQpDQo+ID4+Pj4gK3sNCj4gPj4+PiArCWlmIChpZCA+PSBuYl9zZWN1cml0eV9pbnN0
YW5jZXMgfHwNCj4gPj4+PiArCSAgICAoc2VjdXJpdHlfaW5zdGFuY2VzW2lkXS5zdGF0ZSAhPSBS
VEVfU0VDVVJJVFlfSU5TVEFOQ0VfVkFMSUQpKQ0KPiA+Pj4+ICsJCXJldHVybiAwOw0KPiA+Pj4+
ICsJZWxzZQ0KPiA+Pj4+ICsJCXJldHVybiAxOw0KPiA+Pj4+ICt9DQo+ID4+Pj4gKw0KPiA+Pj4+
ICsvKiBNYWNyb3MgdG8gY2hlY2sgZm9yIHZhbGlkIGlkICovDQo+ID4+Pj4gKyNkZWZpbmUgUlRF
X1NFQ19WQUxJRF9JRF9PUl9FUlJfUkVUKGlkLCByZXR2YWwpIGRvIHsgXA0KPiA+Pj4+ICsJaWYg
KCFydGVfc2VjdXJpdHlfaXNfdmFsaWRfaWQoaWQpKSB7IFwNCj4gPj4+PiArCQlSVEVfUE1EX0RF
QlVHX1RSQUNFKCJJbnZhbGlkIHNlY19pZD0lZFxuIiwgaWQpOyBcDQo+ID4+Pj4gKwkJcmV0dXJu
IHJldHZhbDsgXA0KPiA+Pj4+ICsJfSBcDQo+ID4+Pj4gK30gd2hpbGUgKDApDQo+ID4+Pj4gKw0K
PiA+Pj4+ICsjZGVmaW5lIFJURV9TRUNfVkFMSURfSURfT1JfUkVUKGlkKSBkbyB7IFwNCj4gPj4+
PiArCWlmICghcnRlX3NlY3VyaXR5X2lzX3ZhbGlkX2lkKGlkKSkgeyBcDQo+ID4+Pj4gKwkJUlRF
X1BNRF9ERUJVR19UUkFDRSgiSW52YWxpZCBzZWNfaWQ9JWRcbiIsIGlkKTsgXA0KPiA+Pj4+ICsJ
CXJldHVybjsgXA0KPiA+Pj4+ICsJfSBcDQo+ID4+Pj4gK30gd2hpbGUgKDApDQo+ID4+Pj4gKw0K
PiA+Pj4+ICtpbnQNCj4gPj4+PiArcnRlX3NlY3VyaXR5X3JlZ2lzdGVyKHVpbnQxNl90ICppZCwg
dm9pZCAqZGV2aWNlLA0KPiA+Pj4+ICsJCSAgICAgIHN0cnVjdCBydGVfc2VjdXJpdHlfb3BzICpv
cHMpDQo+ID4+Pj4gK3sNCj4gPg0KPiA+IFByb2JhYmx5IGNvbnN0ICBzdHJ1Y3QgcnRlX3NlY3Vy
aXR5X29wcyAqb3BzDQo+ID4NCj4gPj4+PiArCWlmIChtYXhfbmJfc2VjdXJpdHlfaW5zdGFuY2Vz
ID09IDApIHsNCj4gPj4+PiArCQlzZWN1cml0eV9pbnN0YW5jZXMgPSBydGVfbWFsbG9jKA0KPiA+
Pj4+ICsJCQkJInJ0ZV9zZWN1cml0eV9pbnN0YW5jZXNfb3BzIiwNCj4gPj4+PiArCQkJCXNpemVv
Zigqc2VjdXJpdHlfaW5zdGFuY2VzKSAqDQo+ID4+Pj4gKwkJCQlSVEVfU0VDVVJJVFlfSU5TVEFO
Q0VTX0JMT0NLX0FMTE9DX1NaLCAwKTsNCj4gPj4+PiArDQo+ID4+Pj4gKwkJaWYgKHNlY3VyaXR5
X2luc3RhbmNlcyA9PSBOVUxMKQ0KPiA+Pj4+ICsJCQlyZXR1cm4gLUVOT01FTTsNCj4gPj4+PiAr
CQltYXhfbmJfc2VjdXJpdHlfaW5zdGFuY2VzID0NCj4gPj4+PiArCQkJCVJURV9TRUNVUklUWV9J
TlNUQU5DRVNfQkxPQ0tfQUxMT0NfU1o7DQo+ID4+Pj4gKwl9IGVsc2UgaWYgKG5iX3NlY3VyaXR5
X2luc3RhbmNlcyA+PSBtYXhfbmJfc2VjdXJpdHlfaW5zdGFuY2VzKSB7DQo+ID4+Pg0KPiA+Pj4g
WW91IHByb2JhYmx5IG5lZWQgdHJ5IHRvIHJldXNlIHVucmVnaXN0ZXJlZCBlbnRyaWVzIGZpcnN0
Pw0KPiA+Pj4gS29uc3RhbnRpbg0KPiA+Pj4NCj4gPj4gVGhlc2UgQVBJcyBhcmUgZXhwZXJpbWVu
dGFsIGF0IHRoaXMgbW9tZW50IGFzIG1lbnRpb25lZCBpbiB0aGUgcGF0Y2hzZXQuDQo+ID4+IFdl
IHdpbGwgdHJ5IGFjY29tbW9kYXRlIHlvdXIgY29tbWVudHMgaW4gZnV0dXJlLg0KPiA+DQo+ID4g
QWdhaW4gY291bGQgeW91IGNsYXJpZnkgd2hhdCBkbyB5b3UgbWVhbiBieSAnZnV0dXJlJyBoZXJl
Pw0KPiA+DQo+IEFzIEkgc2FpZCBiZWZvcmUsIHRoZXNlIEFQSXMgbmVlZCB0byBiZSByZS1sb29r
ZWQgdG8gaW5jb3Jwb3JhdGUgdGhlDQo+IG11bHRpIHByb2Nlc3MgY2FzZXMgYW5kIGJldHRlciBt
ZW1vcnkgdXRpbGl6YXRpb24uDQo+IFdlIGludGVuZCB0byBpbmNsdWRlIG1vc3Qgb2YgeW91ciBj
b21tZW50cyBzZXBhcmF0ZWx5IGJleW9uZCB0aGUgc2NvcGUNCj4gb2YgdGhpcyBwYXRjaHNldC4N
Cj4gSSBiZWxpZXZlIHRoZSBjb21wbGV0ZSBjb2RlIHNob3VsZCBub3QgYmUgcHV0IG9uIGhvbGQg
ZHVlIHRvIHRoZXNlDQo+IGlzc3VlcyAobXVsdGkgcHJvY2VzcyBhbmQgb3B0aW1pemF0aW9ucyBp
biByZWdpc3Rlci9kZXJlZ2lzdGVyIEFQSXMpLg0KPiBBcyBwZXIgbXkgdW5kZXJzdGFuZGluZyB0
aGUgY29kZSBpcyBub3QgaW1wYWN0aW5nIGFueSBvZiB0aGUgZXhpc3RpbmcNCj4gZnVuY3Rpb25h
bGl0aWVzLg0KDQpJIGRvbid0IGhhdmUgYSBwcm9ibGVtIGlmIHJ0ZV9zZWN1cml0eSBjb2RlIGJ5
IGl0c2VsZiB3aWxsIGJlIHJld29ya2VkIGluIGZ1dHVyZSByZWxlYXNlcy4NCkJ1dCBydGVfc2Vj
dXJpdHkgaXMgbm90IHN0YW5kYWxvbmUgLSBjaGFuZ2VzIGluIHB1YmxpYyBBUEkgYW5kIG1ham9y
IGRlc2lnbiBwcmluY2lwbGVzDQpmb3IgcnRlX3NlY3VyaXR5IG1lYW5zIGNvZGUgY2hhbmdlcyBm
b3IgcnRlX2V0aGRldiwgaXhnYmUsIGV0Yy4NCkFnYWluIG5vdCB0aGUgZW5kIG9mIHRoZSB3b3Js
ZCwgYnV0IHdvdWxkIGJlIGJldHRlciB0byBtaW5pbWl6ZSBzdWNoIGNvZGUgY2h1cm4gaWYgcG9z
c2libGUuDQpTbyBpZiB5b3UgcGxhbiB0byBtYWtlIGNoYW5nZXMgaW4gcHVibGljIEFQSSBJIHRh
bGtlZCBiZWZvcmU6DQpyZXdvcmsvcmVtb3ZlIHJ0ZV9zZWN1cml0eV9yZWdpc3Rlci91bnJlZ2lz
dGVyKCksDQpyZXBsYWNlIHJ0ZV9ldGhfZGV2X2dldF9zZWNfaWQocG9ydGlkKSB3aXRoIHN0cnVj
dCBydGVfc2VjdXJpdHlfY3R4KiBydGVfZXRoZGV2X2dldF9zZWNfY3R4KHBvcnRpZCkgb3Igc28u
DQpldGMuIA0KYW55d2F5IC0gSSB0aGluayBpdCB3b3VsZCBiZSByZWFsbHkgZ29vZCB0byBoYXZl
IHRoZW0gaW4gMTcuMTEgdGltZWZyYW1lLg0KDQo+IA0KPiBIb3dldmVyLHdlIHdpbGwgZGlzY3Vz
cyBpbnRlcm5hbGx5IGlmIHRoZXNlIGNhbiBiZSByZXNvbHZlZCBpbiB2NCBvciBub3QuDQo+IA0K
DQpXaWxsIHdhaXQgZm9yIHY0IHRoZW4uDQpLb25zdGFudGluDQoNCj4gDQo+ID4+Pg0KPiA+Pj4+
ICsJCXVpbnQxNl90ICppbnN0YW5jZXMgPSBydGVfcmVhbGxvYyhzZWN1cml0eV9pbnN0YW5jZXMs
DQo+ID4+Pj4gKwkJCQlzaXplb2Yoc3RydWN0IHJ0ZV9zZWN1cml0eV9vcHMgKikgKg0KPiA+Pj4+
ICsJCQkJKG1heF9uYl9zZWN1cml0eV9pbnN0YW5jZXMgKw0KPiA+Pj4+ICsJCQkJUlRFX1NFQ1VS
SVRZX0lOU1RBTkNFU19CTE9DS19BTExPQ19TWiksIDApOw0KPiA+Pj4+ICsNCj4gPj4+PiArCQlp
ZiAoaW5zdGFuY2VzID09IE5VTEwpDQo+ID4+Pj4gKwkJCXJldHVybiAtRU5PTUVNOw0KPiA+Pj4+
ICsNCj4gPj4+PiArCQltYXhfbmJfc2VjdXJpdHlfaW5zdGFuY2VzICs9DQo+ID4+Pj4gKwkJCQlS
VEVfU0VDVVJJVFlfSU5TVEFOQ0VTX0JMT0NLX0FMTE9DX1NaOw0KPiA+Pj4+ICsJfQ0KPiA+Pj4+
ICsNCj4gPj4+PiArCSppZCA9IG5iX3NlY3VyaXR5X2luc3RhbmNlcysrOw0KPiA+Pj4+ICsNCj4g
Pj4+PiArCXNlY3VyaXR5X2luc3RhbmNlc1sqaWRdLmlkID0gKmlkOw0KPiA+Pj4+ICsJc2VjdXJp
dHlfaW5zdGFuY2VzWyppZF0uc3RhdGUgPSBSVEVfU0VDVVJJVFlfSU5TVEFOQ0VfVkFMSUQ7DQo+
ID4+Pj4gKwlzZWN1cml0eV9pbnN0YW5jZXNbKmlkXS5kZXZpY2UgPSBkZXZpY2U7DQo+ID4+Pj4g
KwlzZWN1cml0eV9pbnN0YW5jZXNbKmlkXS5vcHMgPSBvcHM7DQo+ID4NCj4gPiBCVFcsIEkgdGhp
bmsgeW91IG5lZWQgdG8gY29weSBhY3R1YWwgY29udGVudHMgb2Ygb3BzLg0KPiA+IE90aGVyd2lz
ZSB5b3UgYXNzdW1pbmcgdGhhdCBvcHMgYXJlIHN0YXRpYw0KPiA+ICh3b3VsZCBiZSB2YWxpZCB0
aG91Z2ggYWxsIHByb2Nlc3NlcyBsaWZldGltZXMpLg0KPiA+DQo+ID4gS29uc3RhbnRpbg0KPiA+
DQo+IA0KPiANCj4gUmVnYXJkcywNCj4gQWtoaWwNCg==