From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 44D07A0597;
	Tue, 21 Apr 2020 15:28:34 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 1B6F51D597;
	Tue, 21 Apr 2020 15:28:34 +0200 (CEST)
Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com
 [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id E54AE1D51D
 for <dev@dpdk.org>; Tue, 21 Apr 2020 15:28:32 +0200 (CEST)
Received: from pps.filterd (m0045851.ppops.net [127.0.0.1])
 by mx0b-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id
 03LDPBms032218; Tue, 21 Apr 2020 06:28:32 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com;
 h=from : to : cc :
 subject : date : message-id : references : in-reply-to : content-type :
 content-id : content-transfer-encoding : mime-version; s=pfpt0818;
 bh=0hNR8/Yx6SVttWUtp+kiIS9RA5B49Zf4EdkMatUMBi4=;
 b=OMcEr1+EGTNxIShsnkDAj2CW64ruV1oRqBxcIIulRtzi1dF86CTfK+degkZNqmJ0jfZ0
 XlkiEnX2LozhObTx0xux17yKbcKynyHF3Ndm1XDnb9CztoqWigmRtz5pk1IekxehrAGm
 WF0vhGvqABO+vvHsWXjnaiizo1nN6WkN9TCZafEpACw9F5xUccOYr2CS+VekUr69T3Tm
 5eIOFVhJYvIpC0pBzWARvwUyA+1tRJLOeF2NTaJ8FoOvf1Cl2CVALYFDSMq6Pbfrxiqj
 tSOP70GNviH+SxLr8RbgsiPFaF03M+vHczj5t8wJD4qE+9MCoTJ6sc3uetLRLIhIAfvT PA== 
Received: from sc-exch02.marvell.com ([199.233.58.182])
 by mx0b-0016f401.pphosted.com with ESMTP id 30g12nust4-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT);
 Tue, 21 Apr 2020 06:28:32 -0700
Received: from DC5-EXCH02.marvell.com (10.69.176.39) by SC-EXCH02.marvell.com
 (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1497.2;
 Tue, 21 Apr 2020 06:28:29 -0700
Received: from SC-EXCH02.marvell.com (10.93.176.82) by DC5-EXCH02.marvell.com
 (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.2;
 Tue, 21 Apr 2020 06:28:28 -0700
Received: from NAM02-CY1-obe.outbound.protection.outlook.com (104.47.37.56) by
 SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server
 (TLS) id
 15.0.1497.2 via Frontend Transport; Tue, 21 Apr 2020 06:28:28 -0700
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=dCzd1UwHwMhiZIt9MNaYVK7QWldywUlxoj2BDUcAhhjLxU+wlxUk+0pG01wxk/Kj2zd3cuT7SXZc3FoAq0lq5+YYHGhpahrpFhXqPi9hr7bWpnnL00BVMF9RRCGxZ64bweJo2KsMqtIrbG1YsNO7XQR0VKzUYw1mxU+Gyhs+fDe/J3q6GpEN7ula45PqnTMEwPeN7RydX8y9no51sjLW+/CqoADnxaXQsPSlbRUPZGGeinZ6vPjsXodD3rQxv5x8EngnmP1Ywcd1K1KrXvWSiF+qn3OQeJRFOQEUfioz9aXAfh0xXidV6H8drbVPWoKc35yzdSPaEaLQE0pFSXhzWw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0hNR8/Yx6SVttWUtp+kiIS9RA5B49Zf4EdkMatUMBi4=;
 b=CPKXKaWZoK0mrjAL73cRIomVP0IRHKAYA2agHe7qJ+lYVCfml2zm0RE76uvzg1WsJg9uC97ks9bLc1M+z3s+lL4or0ITn1HXpTru/ah6F2w75HvHKD96fJlWRa52GbpsjwOfAIPuuI4g3aT2jZpGwwFx+7jkwTobcCS89tRwXGEVyOrz4ymo5WUXAtPO4fLZ8zZtCCz6Z6e8cXiJ/kykNKrxCmb+eSnBb15FU+DIvSzIMUvgdQ+UKPZPBJrtgetm+Y8w/VSBhpMYLzs9GMFnqg1WqNIRIWkzXwt5cQfvS4vxxLDWFGxrnUJdNcSwfv3um5jXrSdftAYUCOkLMWZHXA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=marvell.com; dmarc=pass action=none header.from=marvell.com;
 dkim=pass header.d=marvell.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=marvell.onmicrosoft.com; s=selector1-marvell-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=0hNR8/Yx6SVttWUtp+kiIS9RA5B49Zf4EdkMatUMBi4=;
 b=Yc+CTCeMF1slgEMWuQifWuG3nICXYnykuaJAxGfpHr2dM0Cr3CTvBaaK3e2scdtGVOo8nVHaCPe+Cmrb71yB9LkC/xFrcj2q9UgpMtPTHtE6Dkx4Iw/BGxJDm5t9iezZacD5Hu85upSL4DRjpYAs+BHr04PkDfJKqaqbF01snAY=
Received: from BYAPR18MB2712.namprd18.prod.outlook.com (2603:10b6:a03:103::10)
 by BYAPR18MB2630.namprd18.prod.outlook.com (2603:10b6:a03:134::33)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2921.29; Tue, 21 Apr
 2020 13:28:27 +0000
Received: from BYAPR18MB2712.namprd18.prod.outlook.com
 ([fe80::70bd:288b:c391:39ab]) by BYAPR18MB2712.namprd18.prod.outlook.com
 ([fe80::70bd:288b:c391:39ab%7]) with mapi id 15.20.2921.030; Tue, 21 Apr 2020
 13:28:26 +0000
From: "Lukas Bartosik [C]" <lbartosik@marvell.com>
To: Vladimir Medvedkin <vladimir.medvedkin@intel.com>
CC: "konstantin.ananyev@intel.com" <konstantin.ananyev@intel.com>,
 "akhil.goyal@nxp.com" <akhil.goyal@nxp.com>, Anoob Joseph
 <anoobj@marvell.com>, "dev@dpdk.org" <dev@dpdk.org>
Thread-Topic: [dpdk-dev] [PATCH v3] ipsec: use hash lookup with hash sigs in
 sad lookup
Thread-Index: AQHWF+C99E2sO3SzvEq7RiQ0HAynZw==
Date: Tue, 21 Apr 2020 13:28:26 +0000
Message-ID: <347a1212-f3cb-4aa9-e551-c7779b7ac17c@marvell.com>
References: <2811605d29b62740ba467527271c7a30fe75cf78.1585240684.git.vladimir.medvedkin@intel.com>
 <6590f0170bc4f55d9707ef15ee398e388802b012.1587406845.git.vladimir.medvedkin@intel.com>
In-Reply-To: <6590f0170bc4f55d9707ef15ee398e388802b012.1587406845.git.vladimir.medvedkin@intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-originating-ip: [199.233.58.37]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 4c6d7229-da55-4b28-6fc7-08d7e5f7dfc2
x-ms-traffictypediagnostic: BYAPR18MB2630:
x-ms-exchange-transport-forked: True
x-microsoft-antispam-prvs: <BYAPR18MB2630CD00C28F64D4D6D3993DAFD50@BYAPR18MB2630.namprd18.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:37;
x-forefront-prvs: 038002787A
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:BYAPR18MB2712.namprd18.prod.outlook.com; PTR:; CAT:NONE;
 SFTY:;
 SFS:(10009020)(4636009)(366004)(2906002)(6506007)(53546011)(5660300002)(2616005)(31686004)(6916009)(26005)(36756003)(86362001)(31696002)(64756008)(4326008)(66946007)(66476007)(66556008)(66446008)(30864003)(186003)(54906003)(6486002)(76116006)(8676002)(81156014)(6512007)(71200400001)(498600001)(8936002)(966005);
 DIR:OUT; SFP:1101; 
received-spf: None (protection.outlook.com: marvell.com does not designate
 permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: Ga7K590YzoEEk5VhmeajZlOxPeeUF1R6U0/YxLjZcp0QLXqyD8KYiip35QLsMCuzVbatmJiuCAMmRWSulFnX7TTDghLTNsJ3mme0Mjzxop59tiPVYRf5Hc+cpd7RrQrzEsUl9rZTe0RYRUp6VwXWZr1ajmXh2P4UeS084NEBMnaSzCFTkdmd7TbpyBCdBudTEX7Lh1WEsjIXFxpDTtxzgDJ97N70uLQ6qIwHlS0lrdAtxEovZEk0Bf7y4dRjHxMjSK4C7q/za9OubVP13sxuKtoP3cdBVwev4ggBMpOAyPcU5P+nuFy+2DQVs8FAnl7PmCBdP186S0/M5O3Y+2QANp2CH1AT2HB3VQFRKKBVuNF0OUXjHzWmxf9WU+kHnWpFOLwCTQxqz0lHHI7BIwKdWpY7NvhxbTA8dWiVB1tJ/1FFoQLrHNqkbj0jv/qi2vEFtxtD15o7GwEO1a4O4OuYFedwiCXRbAjGSi7pb24KNHy5H82pTpOZTZIjmwjPIeIrZDCbF4Y1+t5M+cjg7EX4QQ==
x-ms-exchange-antispam-messagedata: ubDcHUCAX/bqQibkmR83oHKSTKRreC+h7nGHnR121PzgyWsOu7Fw37raEmTGRAJBrY2Bh5Lju2POBh8UQuMI/9/xaTNYnXL8r179mTbhoxCB9FggIxZIqLASzCwIqDNsYBjcgnc7FW8D0KKXxph8HA==
Content-Type: text/plain; charset="utf-8"
Content-ID: <5017F1C6C411E045BD27B833EBDE527A@namprd18.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: 4c6d7229-da55-4b28-6fc7-08d7e5f7dfc2
X-MS-Exchange-CrossTenant-originalarrivaltime: 21 Apr 2020 13:28:26.7890 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: y6qJtdvwhbgr0tEd3xtopYoOsasFh7l03cL7xw6JkxQUxSCrN1j6dPlsdMV1tz9IK4k6tsOLN0mzyvnThpr6zA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR18MB2630
X-OriginatorOrg: marvell.com
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.138, 18.0.676
 definitions=2020-04-21_05:2020-04-20,
 2020-04-21 signatures=0
Subject: Re: [dpdk-dev] [PATCH v3] ipsec: use hash lookup with hash sigs in
 sad lookup
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

SGkgVmxhZGltaXIsDQoNCkhvdyBkb2VzIHRoaXMgcGF0Y2ggcmVsYXRlIHRvIGh0dHA6Ly9wYXRj
aGVzLmRwZGsub3JnL3BhdGNoLzY2NzE1Ly4NCkJvdGggcGF0Y2hlcyByZXBsYWNlIGxvb2t1cCBm
dW5jdGlvbiBydGVfaGFzaF9sb29rdXBfYnVsa19kYXRhIHVzZWQgaW4gX19pcHNlY19zYWRfbG9v
a3VwIHdpdGggDQpydGVfaGFzaF9sb29rdXBfd2l0aF9oYXNoX2J1bGtfZGF0YSBvciBydGVfZHdr
X2hhc2hfbG9va3VwLg0KDQpJcyB0aGUgcGxhbiBmb3IgYm90aCBzb2x1dGlvbnMgdG8gY29leGlz
dCBvciB3aWxsIG9ubHkgb25lIGJlIHNlbGVjdGVkID8NCg0KVGhhbmtzLA0KTHVrYXN6DQoNCk9u
IDIwLjA0LjIwMjAgMjA6MjcsIFZsYWRpbWlyIE1lZHZlZGtpbiB3cm90ZToNCj4gQ2hhbmdlIGhh
c2ggZnVuY3Rpb24gZnJvbSBqaGFzaCB0byBjcmMuDQo+IFByZWNhbGN1bGF0ZSBoYXNoIHNpZ25h
dHVyZXMgZm9yIGEgYnVsayBvZiBrZXlzIGFuZCB0aGVuDQo+IHVzZSBydGVfaGFzaF9sb29rdXBf
d2l0aF9oYXNoX2J1bGtfZGF0YSgpIHRvIHNwZWVkIHVwIHNhZCBsb29rdXANCj4gQWxzbyB1c2Ug
cnRlX2hhc2hfYWRkX2tleV93aXRoX2hhc2ggYW5kIF9kZWxfa2V5X3dpdGhfaGFzaCB3aXRoDQo+
IHByZWNhbGN1bGF0ZWQgaGFzaCBzaWduYXR1cmUgZm9yIGEga2V5IGluIHJ0ZV9pcHNlY19zYWRf
YWRkIGFuZA0KPiBydGVfaXBzZWNfc2FkX2RlbA0KPiANCj4gU2lnbmVkLW9mZi1ieTogVmxhZGlt
aXIgTWVkdmVka2luIDx2bGFkaW1pci5tZWR2ZWRraW5AaW50ZWwuY29tPg0KPiBBY2tlZC1ieTog
S29uc3RhbnRpbiBBbmFueWV2IDxrb25zdGFudGluLmFuYW55ZXZAaW50ZWwuY29tPg0KPiAtLS0N
Cj4gVGhpcyBwYXRjaCBkZXBlbmRzIG9uIGh0dHBzOi8vdXJsZGVmZW5zZS5wcm9vZnBvaW50LmNv
bS92Mi91cmw/dT1odHRwcy0zQV9fcGF0Y2hlcy5kcGRrLm9yZ19wYXRjaF82ODcwMF8mZD1Ed0lC
QWcmYz1uS2pXZWMyYjZSMG1PeVBhejd4dGZRJnI9U2NoUkhoRTdHTENqRVk0aTJhMWJ5akNfRnBX
Z1JMdHE0LWtMdktwM184NCZtPU5JZ0F0ZHE4aUdScnM4aGFLWXd3YTBleWNpTzBUTUZXblVZaXNN
b0dENW8mcz1JcG5KMjcwUnNhRThMSVUwNjY0OWhadmt5S2VBYVR3YW1WYklNWDlBeVVZJmU9IA0K
PiANCj4gIGxpYi9saWJydGVfaXBzZWMvaXBzZWNfc2FkLmMgfCAxMDYgKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLQ0KPiAgMSBmaWxlIGNoYW5nZWQsIDc0IGluc2Vy
dGlvbnMoKyksIDMyIGRlbGV0aW9ucygtKQ0KPiANCj4gZGlmZiAtLWdpdCBhL2xpYi9saWJydGVf
aXBzZWMvaXBzZWNfc2FkLmMgYi9saWIvbGlicnRlX2lwc2VjL2lwc2VjX3NhZC5jDQo+IGluZGV4
IDJjOTk0ZWQuLjZjOTUyNDAgMTAwNjQ0DQo+IC0tLSBhL2xpYi9saWJydGVfaXBzZWMvaXBzZWNf
c2FkLmMNCj4gKysrIGIvbGliL2xpYnJ0ZV9pcHNlYy9pcHNlY19zYWQuYw0KPiBAQCAtMiwxMCAr
MiwxMiBAQA0KPiAgICogQ29weXJpZ2h0KGMpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24NCj4gICAq
Lw0KPiAgDQo+ICsjaW5jbHVkZSA8c3RyaW5nLmg+DQo+ICsNCj4gICNpbmNsdWRlIDxydGVfZWFs
X21lbWNvbmZpZy5oPg0KPiAgI2luY2x1ZGUgPHJ0ZV9lcnJuby5oPg0KPiAgI2luY2x1ZGUgPHJ0
ZV9oYXNoLmg+DQo+IC0jaW5jbHVkZSA8cnRlX2poYXNoLmg+DQo+ICsjaW5jbHVkZSA8cnRlX2hh
c2hfY3JjLmg+DQo+ICAjaW5jbHVkZSA8cnRlX21hbGxvYy5oPg0KPiAgI2luY2x1ZGUgPHJ0ZV9y
YW5kb20uaD4NCj4gICNpbmNsdWRlIDxydGVfcndsb2NrLmg+DQo+IEBAIC0yNCw3ICsyNiw3IEBA
DQo+ICAvKiAiU0FEXzxuYW1lPiIgKi8NCj4gICNkZWZpbmUgU0FEX0ZPUk1BVAkJU0FEX1BSRUZJ
WCAiJXMiDQo+ICANCj4gLSNkZWZpbmUgREVGQVVMVF9IQVNIX0ZVTkMJcnRlX2poYXNoDQo+ICsj
ZGVmaW5lIERFRkFVTFRfSEFTSF9GVU5DCXJ0ZV9oYXNoX2NyYw0KPiAgI2RlZmluZSBNSU5fSEFT
SF9FTlRSSUVTCThVIC8qIEZyb20gcnRlX2N1Y2tvb19oYXNoLmggKi8NCj4gIA0KPiAgc3RydWN0
IGhhc2hfY250IHsNCj4gQEAgLTM1LDYgKzM3LDggQEAgc3RydWN0IGhhc2hfY250IHsNCj4gIHN0
cnVjdCBydGVfaXBzZWNfc2FkIHsNCj4gIAljaGFyIG5hbWVbUlRFX0lQU0VDX1NBRF9OQU1FU0la
RV07DQo+ICAJc3RydWN0IHJ0ZV9oYXNoCSpoYXNoW1JURV9JUFNFQ19TQURfS0VZX1RZUEVfTUFT
S107DQo+ICsJdWludDMyX3Qga2V5c2l6ZVtSVEVfSVBTRUNfU0FEX0tFWV9UWVBFX01BU0tdOw0K
PiArCXVpbnQzMl90IGluaXRfdmFsOw0KPiAgCS8qIEFycmF5IHRvIHRyYWNrIG51bWJlciBvZiBt
b3JlIHNwZWNpZmljIHJ1bGVzDQo+ICAJICogKHNwaV9kaXAgb3Igc3BpX2RpcF9zaXApLiBVc2Vk
IG9ubHkgaW4gYWRkL2RlbGV0ZQ0KPiAgCSAqIGFzIGEgaGVscGVyIHN0cnVjdC4NCj4gQEAgLTcw
LDI5ICs3NCwzNiBAQCBhZGRfc3BlY2lmaWMoc3RydWN0IHJ0ZV9pcHNlY19zYWQgKnNhZCwgY29u
c3Qgdm9pZCAqa2V5LA0KPiAgCS8qIENoZWNrIGlmIHRoZSBrZXkgaXMgcHJlc2VudCBpbiB0aGUg
dGFibGUuDQo+ICAJICogTmVlZCBmb3IgZnVydGhlciBhY2NhdW50aW5nIGluIGNudF9hcnINCj4g
IAkgKi8NCj4gLQlyZXQgPSBydGVfaGFzaF9sb29rdXAoc2FkLT5oYXNoW2tleV90eXBlXSwga2V5
KTsNCj4gKwlyZXQgPSBydGVfaGFzaF9sb29rdXBfd2l0aF9oYXNoKHNhZC0+aGFzaFtrZXlfdHlw
ZV0sIGtleSwNCj4gKwkJcnRlX2hhc2hfY3JjKGtleSwgc2FkLT5rZXlzaXplW2tleV90eXBlXSwg
c2FkLT5pbml0X3ZhbCkpOw0KPiAgCW5vdGV4aXN0ID0gKHJldCA9PSAtRU5PRU5UKTsNCj4gIA0K
PiAgCS8qIEFkZCBhbiBTQSB0byB0aGUgY29ycmVzcG9uZGluZyB0YWJsZS4qLw0KPiAtCXJldCA9
IHJ0ZV9oYXNoX2FkZF9rZXlfZGF0YShzYWQtPmhhc2hba2V5X3R5cGVdLCBrZXksIHNhKTsNCj4g
KwlyZXQgPSBydGVfaGFzaF9hZGRfa2V5X3dpdGhfaGFzaF9kYXRhKHNhZC0+aGFzaFtrZXlfdHlw
ZV0sIGtleSwNCj4gKwkJcnRlX2hhc2hfY3JjKGtleSwgc2FkLT5rZXlzaXplW2tleV90eXBlXSwg
c2FkLT5pbml0X3ZhbCksIHNhKTsNCj4gIAlpZiAocmV0ICE9IDApDQo+ICAJCXJldHVybiByZXQ7
DQo+ICANCj4gIAkvKiBDaGVjayBpZiB0aGVyZSBpcyBhbiBlbnRyeSBpbiBTUEkgb25seSB0YWJs
ZSB3aXRoIHRoZSBzYW1lIFNQSSAqLw0KPiAtCXJldCA9IHJ0ZV9oYXNoX2xvb2t1cF9kYXRhKHNh
ZC0+aGFzaFtSVEVfSVBTRUNfU0FEX1NQSV9PTkxZXSwNCj4gLQkJa2V5LCAmdG1wX3ZhbCk7DQo+
ICsJcmV0ID0gcnRlX2hhc2hfbG9va3VwX3dpdGhfaGFzaF9kYXRhKHNhZC0+aGFzaFtSVEVfSVBT
RUNfU0FEX1NQSV9PTkxZXSwNCj4gKwkJa2V5LCBydGVfaGFzaF9jcmMoa2V5LCBzYWQtPmtleXNp
emVbUlRFX0lQU0VDX1NBRF9TUElfT05MWV0sDQo+ICsJCXNhZC0+aW5pdF92YWwpLCAmdG1wX3Zh
bCk7DQo+ICAJaWYgKHJldCA8IDApDQo+ICAJCXRtcF92YWwgPSBOVUxMOw0KPiAgCXRtcF92YWwg
PSBTRVRfQklUKHRtcF92YWwsIGtleV90eXBlKTsNCj4gIA0KPiAgCS8qIEFkZCBhbiBlbnRyeSBp
bnRvIFNQSSBvbmx5IHRhYmxlICovDQo+IC0JcmV0ID0gcnRlX2hhc2hfYWRkX2tleV9kYXRhKHNh
ZC0+aGFzaFtSVEVfSVBTRUNfU0FEX1NQSV9PTkxZXSwNCj4gLQkJa2V5LCB0bXBfdmFsKTsNCj4g
KwlyZXQgPSBydGVfaGFzaF9hZGRfa2V5X3dpdGhfaGFzaF9kYXRhKA0KPiArCQlzYWQtPmhhc2hb
UlRFX0lQU0VDX1NBRF9TUElfT05MWV0sIGtleSwNCj4gKwkJcnRlX2hhc2hfY3JjKGtleSwgc2Fk
LT5rZXlzaXplW1JURV9JUFNFQ19TQURfU1BJX09OTFldLA0KPiArCQlzYWQtPmluaXRfdmFsKSwg
dG1wX3ZhbCk7DQo+ICAJaWYgKHJldCAhPSAwKQ0KPiAgCQlyZXR1cm4gcmV0Ow0KPiAgDQo+ICAJ
LyogVXBkYXRlIGEgY291bnRlciBmb3IgYSBnaXZlbiBTUEkgKi8NCj4gLQlyZXQgPSBydGVfaGFz
aF9sb29rdXAoc2FkLT5oYXNoW1JURV9JUFNFQ19TQURfU1BJX09OTFldLCBrZXkpOw0KPiArCXJl
dCA9IHJ0ZV9oYXNoX2xvb2t1cF93aXRoX2hhc2goc2FkLT5oYXNoW1JURV9JUFNFQ19TQURfU1BJ
X09OTFldLCBrZXksDQo+ICsJCXJ0ZV9oYXNoX2NyYyhrZXksIHNhZC0+a2V5c2l6ZVtSVEVfSVBT
RUNfU0FEX1NQSV9PTkxZXSwNCj4gKwkJc2FkLT5pbml0X3ZhbCkpOw0KPiAgCWlmIChrZXlfdHlw
ZSA9PSBSVEVfSVBTRUNfU0FEX1NQSV9ESVApDQo+ICAJCXNhZC0+Y250X2FycltyZXRdLmNudF9k
aXAgKz0gbm90ZXhpc3Q7DQo+ICAJZWxzZQ0KPiBAQCAtMTIyLDE1ICsxMzMsMTcgQEAgcnRlX2lw
c2VjX3NhZF9hZGQoc3RydWN0IHJ0ZV9pcHNlY19zYWQgKnNhZCwNCj4gIAkgKi8NCj4gIAlzd2l0
Y2ggKGtleV90eXBlKSB7DQo+ICAJY2FzZShSVEVfSVBTRUNfU0FEX1NQSV9PTkxZKToNCj4gLQkJ
cmV0ID0gcnRlX2hhc2hfbG9va3VwX2RhdGEoc2FkLT5oYXNoW2tleV90eXBlXSwNCj4gLQkJCWtl
eSwgJnRtcF92YWwpOw0KPiArCQlyZXQgPSBydGVfaGFzaF9sb29rdXBfd2l0aF9oYXNoX2RhdGEo
c2FkLT5oYXNoW2tleV90eXBlXSwNCj4gKwkJCWtleSwgcnRlX2hhc2hfY3JjKGtleSwgc2FkLT5r
ZXlzaXplW2tleV90eXBlXSwNCj4gKwkJCXNhZC0+aW5pdF92YWwpLCAmdG1wX3ZhbCk7DQo+ICAJ
CWlmIChyZXQgPj0gMCkNCj4gIAkJCXRtcF92YWwgPSBTRVRfQklUKHNhLCBHRVRfQklUKHRtcF92
YWwsDQo+ICAJCQkJUlRFX0lQU0VDX1NBRF9LRVlfVFlQRV9NQVNLKSk7DQo+ICAJCWVsc2UNCj4g
IAkJCXRtcF92YWwgPSBzYTsNCj4gLQkJcmV0ID0gcnRlX2hhc2hfYWRkX2tleV9kYXRhKHNhZC0+
aGFzaFtrZXlfdHlwZV0sDQo+IC0JCQlrZXksIHRtcF92YWwpOw0KPiArCQlyZXQgPSBydGVfaGFz
aF9hZGRfa2V5X3dpdGhfaGFzaF9kYXRhKHNhZC0+aGFzaFtrZXlfdHlwZV0sDQo+ICsJCQlrZXks
IHJ0ZV9oYXNoX2NyYyhrZXksIHNhZC0+a2V5c2l6ZVtrZXlfdHlwZV0sDQo+ICsJCQlzYWQtPmlu
aXRfdmFsKSwgdG1wX3ZhbCk7DQo+ICAJCXJldHVybiByZXQ7DQo+ICAJY2FzZShSVEVfSVBTRUNf
U0FEX1NQSV9ESVApOg0KPiAgCWNhc2UoUlRFX0lQU0VDX1NBRF9TUElfRElQX1NJUCk6DQo+IEBA
IC0xNTgsMTMgKzE3MSwxNSBAQCBkZWxfc3BlY2lmaWMoc3RydWN0IHJ0ZV9pcHNlY19zYWQgKnNh
ZCwgY29uc3Qgdm9pZCAqa2V5LCBpbnQga2V5X3R5cGUpDQo+ICAJdWludDMyX3QgKmNudDsNCj4g
IA0KPiAgCS8qIFJlbW92ZSBhbiBTQSBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIHRhYmxlLiovDQo+
IC0JcmV0ID0gcnRlX2hhc2hfZGVsX2tleShzYWQtPmhhc2hba2V5X3R5cGVdLCBrZXkpOw0KPiAr
CXJldCA9IHJ0ZV9oYXNoX2RlbF9rZXlfd2l0aF9oYXNoKHNhZC0+aGFzaFtrZXlfdHlwZV0sIGtl
eSwNCj4gKwkJcnRlX2hhc2hfY3JjKGtleSwgc2FkLT5rZXlzaXplW2tleV90eXBlXSwgc2FkLT5p
bml0X3ZhbCkpOw0KPiAgCWlmIChyZXQgPCAwKQ0KPiAgCQlyZXR1cm4gcmV0Ow0KPiAgDQo+ICAJ
LyogR2V0IGFuIGluZGV4IG9mIGNudF9hcnIgZW50cnkgZm9yIGEgZ2l2ZW4gU1BJICovDQo+IC0J
cmV0ID0gcnRlX2hhc2hfbG9va3VwX2RhdGEoc2FkLT5oYXNoW1JURV9JUFNFQ19TQURfU1BJX09O
TFldLA0KPiAtCQlrZXksICZ0bXBfdmFsKTsNCj4gKwlyZXQgPSBydGVfaGFzaF9sb29rdXBfd2l0
aF9oYXNoX2RhdGEoc2FkLT5oYXNoW1JURV9JUFNFQ19TQURfU1BJX09OTFldLA0KPiArCQlrZXks
IHJ0ZV9oYXNoX2NyYyhrZXksIHNhZC0+a2V5c2l6ZVtSVEVfSVBTRUNfU0FEX1NQSV9PTkxZXSwN
Cj4gKwkJc2FkLT5pbml0X3ZhbCksICZ0bXBfdmFsKTsNCj4gIAlpZiAocmV0IDwgMCkNCj4gIAkJ
cmV0dXJuIHJldDsNCj4gIAljbnQgPSAoa2V5X3R5cGUgPT0gUlRFX0lQU0VDX1NBRF9TUElfRElQ
KSA/DQo+IEBAIC0xODIsMTAgKzE5NywxNSBAQCBkZWxfc3BlY2lmaWMoc3RydWN0IHJ0ZV9pcHNl
Y19zYWQgKnNhZCwgY29uc3Qgdm9pZCAqa2V5LCBpbnQga2V5X3R5cGUpDQo+ICAJICogcmVtb3Zl
IGFuIGVudHJ5IGZyb20gU1BJX29ubHkgdGFibGUNCj4gIAkgKi8NCj4gIAlpZiAodG1wX3ZhbCA9
PSBOVUxMKQ0KPiAtCQlyZXQgPSBydGVfaGFzaF9kZWxfa2V5KHNhZC0+aGFzaFtSVEVfSVBTRUNf
U0FEX1NQSV9PTkxZXSwga2V5KTsNCj4gKwkJcmV0ID0gcnRlX2hhc2hfZGVsX2tleV93aXRoX2hh
c2goDQo+ICsJCQlzYWQtPmhhc2hbUlRFX0lQU0VDX1NBRF9TUElfT05MWV0sIGtleSwNCj4gKwkJ
CXJ0ZV9oYXNoX2NyYyhrZXksIHNhZC0+a2V5c2l6ZVtSVEVfSVBTRUNfU0FEX1NQSV9PTkxZXSwN
Cj4gKwkJCXNhZC0+aW5pdF92YWwpKTsNCj4gIAllbHNlDQo+IC0JCXJldCA9IHJ0ZV9oYXNoX2Fk
ZF9rZXlfZGF0YShzYWQtPmhhc2hbUlRFX0lQU0VDX1NBRF9TUElfT05MWV0sDQo+IC0JCQlrZXks
IHRtcF92YWwpOw0KPiArCQlyZXQgPSBydGVfaGFzaF9hZGRfa2V5X3dpdGhfaGFzaF9kYXRhKA0K
PiArCQkJc2FkLT5oYXNoW1JURV9JUFNFQ19TQURfU1BJX09OTFldLCBrZXksDQo+ICsJCQlydGVf
aGFzaF9jcmMoa2V5LCBzYWQtPmtleXNpemVbUlRFX0lQU0VDX1NBRF9TUElfT05MWV0sDQo+ICsJ
CQlzYWQtPmluaXRfdmFsKSwgdG1wX3ZhbCk7DQo+ICAJaWYgKHJldCA8IDApDQo+ICAJCXJldHVy
biByZXQ7DQo+ICAJcmV0dXJuIDA7DQo+IEBAIC0yMDMsMTkgKzIyMywyMyBAQCBydGVfaXBzZWNf
c2FkX2RlbChzdHJ1Y3QgcnRlX2lwc2VjX3NhZCAqc2FkLA0KPiAgCQlyZXR1cm4gLUVJTlZBTDsN
Cj4gIAlzd2l0Y2ggKGtleV90eXBlKSB7DQo+ICAJY2FzZShSVEVfSVBTRUNfU0FEX1NQSV9PTkxZ
KToNCj4gLQkJcmV0ID0gcnRlX2hhc2hfbG9va3VwX2RhdGEoc2FkLT5oYXNoW2tleV90eXBlXSwN
Cj4gLQkJCWtleSwgJnRtcF92YWwpOw0KPiArCQlyZXQgPSBydGVfaGFzaF9sb29rdXBfd2l0aF9o
YXNoX2RhdGEoc2FkLT5oYXNoW2tleV90eXBlXSwNCj4gKwkJCWtleSwgcnRlX2hhc2hfY3JjKGtl
eSwgc2FkLT5rZXlzaXplW2tleV90eXBlXSwNCj4gKwkJCXNhZC0+aW5pdF92YWwpLCAmdG1wX3Zh
bCk7DQo+ICAJCWlmIChyZXQgPCAwKQ0KPiAgCQkJcmV0dXJuIHJldDsNCj4gIAkJaWYgKEdFVF9C
SVQodG1wX3ZhbCwgUlRFX0lQU0VDX1NBRF9LRVlfVFlQRV9NQVNLKSA9PSAwKSB7DQo+IC0JCQly
ZXQgPSBydGVfaGFzaF9kZWxfa2V5KHNhZC0+aGFzaFtrZXlfdHlwZV0sDQo+IC0JCQkJa2V5KTsN
Cj4gKwkJCXJldCA9IHJ0ZV9oYXNoX2RlbF9rZXlfd2l0aF9oYXNoKHNhZC0+aGFzaFtrZXlfdHlw
ZV0sDQo+ICsJCQkJa2V5LCBydGVfaGFzaF9jcmMoa2V5LCBzYWQtPmtleXNpemVba2V5X3R5cGVd
LA0KPiArCQkJCXNhZC0+aW5pdF92YWwpKTsNCj4gIAkJCXJldCA9IHJldCA8IDAgPyByZXQgOiAw
Ow0KPiAgCQl9IGVsc2Ugew0KPiAgCQkJdG1wX3ZhbCA9IEdFVF9CSVQodG1wX3ZhbCwNCj4gIAkJ
CQlSVEVfSVBTRUNfU0FEX0tFWV9UWVBFX01BU0spOw0KPiAtCQkJcmV0ID0gcnRlX2hhc2hfYWRk
X2tleV9kYXRhKHNhZC0+aGFzaFtrZXlfdHlwZV0sDQo+IC0JCQkJa2V5LCB0bXBfdmFsKTsNCj4g
KwkJCXJldCA9IHJ0ZV9oYXNoX2FkZF9rZXlfd2l0aF9oYXNoX2RhdGEoDQo+ICsJCQkJc2FkLT5o
YXNoW2tleV90eXBlXSwga2V5LA0KPiArCQkJCXJ0ZV9oYXNoX2NyYyhrZXksIHNhZC0+a2V5c2l6
ZVtrZXlfdHlwZV0sDQo+ICsJCQkJc2FkLT5pbml0X3ZhbCksIHRtcF92YWwpOw0KPiAgCQl9DQo+
ICAJCXJldHVybiByZXQ7DQo+ICAJY2FzZShSVEVfSVBTRUNfU0FEX1NQSV9ESVApOg0KPiBAQCAt
MjcyLDYgKzI5Niw3IEBAIHJ0ZV9pcHNlY19zYWRfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIGNv
bnN0IHN0cnVjdCBydGVfaXBzZWNfc2FkX2NvbmYgKmNvbmYpDQo+ICANCj4gIAloYXNoX3BhcmFt
cy5oYXNoX2Z1bmMgPSBERUZBVUxUX0hBU0hfRlVOQzsNCj4gIAloYXNoX3BhcmFtcy5oYXNoX2Z1
bmNfaW5pdF92YWwgPSBydGVfcmFuZCgpOw0KPiArCXNhZC0+aW5pdF92YWwgPSBoYXNoX3BhcmFt
cy5oYXNoX2Z1bmNfaW5pdF92YWw7DQo+ICAJaGFzaF9wYXJhbXMuc29ja2V0X2lkID0gY29uZi0+
c29ja2V0X2lkOw0KPiAgCWhhc2hfcGFyYW1zLm5hbWUgPSBoYXNoX25hbWU7DQo+ICAJaWYgKGNv
bmYtPmZsYWdzICYgUlRFX0lQU0VDX1NBRF9GTEFHX1JXX0NPTkNVUlJFTkNZKQ0KPiBAQCAtMjgw
LDYgKzMwNSw3IEBAIHJ0ZV9pcHNlY19zYWRfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0
IHN0cnVjdCBydGVfaXBzZWNfc2FkX2NvbmYgKmNvbmYpDQo+ICAJLyoqIEluaXQgaGFzaFtSVEVf
SVBTRUNfU0FEX1NQSV9PTkxZXSBmb3IgU1BJIG9ubHkgKi8NCj4gIAlzbnByaW50ZihoYXNoX25h
bWUsIHNpemVvZihoYXNoX25hbWUpLCAic2FkXzFfJXAiLCBzYWQpOw0KPiAgCWhhc2hfcGFyYW1z
LmtleV9sZW4gPSBzaXplb2YoKChzdHJ1Y3QgcnRlX2lwc2VjX3NhZHY0X2tleSAqKTApLT5zcGkp
Ow0KPiArCXNhZC0+a2V5c2l6ZVtSVEVfSVBTRUNfU0FEX1NQSV9PTkxZXSA9IGhhc2hfcGFyYW1z
LmtleV9sZW47DQo+ICAJaGFzaF9wYXJhbXMuZW50cmllcyA9IHNhX3N1bTsNCj4gIAlzYWQtPmhh
c2hbUlRFX0lQU0VDX1NBRF9TUElfT05MWV0gPSBydGVfaGFzaF9jcmVhdGUoJmhhc2hfcGFyYW1z
KTsNCj4gIAlpZiAoc2FkLT5oYXNoW1JURV9JUFNFQ19TQURfU1BJX09OTFldID09IE5VTEwpIHsN
Cj4gQEAgLTI5NSw2ICszMjEsNyBAQCBydGVfaXBzZWNfc2FkX2NyZWF0ZShjb25zdCBjaGFyICpu
YW1lLCBjb25zdCBzdHJ1Y3QgcnRlX2lwc2VjX3NhZF9jb25mICpjb25mKQ0KPiAgCWVsc2UNCj4g
IAkJaGFzaF9wYXJhbXMua2V5X2xlbiArPQ0KPiAgCQkJc2l6ZW9mKCgoc3RydWN0IHJ0ZV9pcHNl
Y19zYWR2NF9rZXkgKikwKS0+ZGlwKTsNCj4gKwlzYWQtPmtleXNpemVbUlRFX0lQU0VDX1NBRF9T
UElfRElQXSA9IGhhc2hfcGFyYW1zLmtleV9sZW47DQo+ICAJaGFzaF9wYXJhbXMuZW50cmllcyA9
IFJURV9NQVgoTUlOX0hBU0hfRU5UUklFUywNCj4gIAkJCWNvbmYtPm1heF9zYVtSVEVfSVBTRUNf
U0FEX1NQSV9ESVBdKTsNCj4gIAlzYWQtPmhhc2hbUlRFX0lQU0VDX1NBRF9TUElfRElQXSA9IHJ0
ZV9oYXNoX2NyZWF0ZSgmaGFzaF9wYXJhbXMpOw0KPiBAQCAtMzExLDYgKzMzOCw3IEBAIHJ0ZV9p
cHNlY19zYWRfY3JlYXRlKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IHN0cnVjdCBydGVfaXBzZWNf
c2FkX2NvbmYgKmNvbmYpDQo+ICAJZWxzZQ0KPiAgCQloYXNoX3BhcmFtcy5rZXlfbGVuICs9DQo+
ICAJCQlzaXplb2YoKChzdHJ1Y3QgcnRlX2lwc2VjX3NhZHY0X2tleSAqKTApLT5zaXApOw0KPiAr
CXNhZC0+a2V5c2l6ZVtSVEVfSVBTRUNfU0FEX1NQSV9ESVBfU0lQXSA9IGhhc2hfcGFyYW1zLmtl
eV9sZW47DQo+ICAJaGFzaF9wYXJhbXMuZW50cmllcyA9IFJURV9NQVgoTUlOX0hBU0hfRU5UUklF
UywNCj4gIAkJCWNvbmYtPm1heF9zYVtSVEVfSVBTRUNfU0FEX1NQSV9ESVBfU0lQXSk7DQo+ICAJ
c2FkLT5oYXNoW1JURV9JUFNFQ19TQURfU1BJX0RJUF9TSVBdID0gcnRlX2hhc2hfY3JlYXRlKCZo
YXNoX3BhcmFtcyk7DQo+IEBAIC00NDAsMTUgKzQ2OCwyMSBAQCBfX2lwc2VjX3NhZF9sb29rdXAo
Y29uc3Qgc3RydWN0IHJ0ZV9pcHNlY19zYWQgKnNhZCwNCj4gIAl1aW50MzJfdCBuXzMgPSAwOw0K
PiAgCXVpbnQzMl90IGk7DQo+ICAJaW50IGZvdW5kID0gMDsNCj4gKwloYXNoX3NpZ190IGhhc2hf
c2lnW1JURV9IQVNIX0xPT0tVUF9CVUxLX01BWF07DQo+ICsJaGFzaF9zaWdfdCBoYXNoX3NpZ18y
W1JURV9IQVNIX0xPT0tVUF9CVUxLX01BWF07DQo+ICsJaGFzaF9zaWdfdCBoYXNoX3NpZ18zW1JU
RV9IQVNIX0xPT0tVUF9CVUxLX01BWF07DQo+ICANCj4gLQlmb3IgKGkgPSAwOyBpIDwgbjsgaSsr
KQ0KPiArCWZvciAoaSA9IDA7IGkgPCBuOyBpKyspIHsNCj4gIAkJc2FbaV0gPSBOVUxMOw0KPiAr
CQloYXNoX3NpZ1tpXSA9IHJ0ZV9oYXNoX2NyY180Ynl0ZShrZXlzW2ldLT52NC5zcGksDQo+ICsJ
CQlzYWQtPmluaXRfdmFsKTsNCj4gKwl9DQo+ICANCj4gIAkvKg0KPiAgCSAqIExvb2t1cCBrZXlz
IGluIFNQSSBvbmx5IGhhc2ggdGFibGUgZmlyc3QuDQo+ICAJICovDQo+IC0JcnRlX2hhc2hfbG9v
a3VwX2J1bGtfZGF0YShzYWQtPmhhc2hbUlRFX0lQU0VDX1NBRF9TUElfT05MWV0sDQo+IC0JCShj
b25zdCB2b2lkICoqKWtleXMsIG4sICZtYXNrXzEsIHNhKTsNCj4gKwlydGVfaGFzaF9sb29rdXBf
d2l0aF9oYXNoX2J1bGtfZGF0YShzYWQtPmhhc2hbUlRFX0lQU0VDX1NBRF9TUElfT05MWV0sDQo+
ICsJCShjb25zdCB2b2lkICoqKWtleXMsIGhhc2hfc2lnLCBuLCAmbWFza18xLCBzYSk7DQo+ICAJ
Zm9yIChtYXAgPSBtYXNrXzE7IG1hcDsgbWFwICY9IChtYXAgLSAxKSkgew0KPiAgCQlpID0gcnRl
X2JzZjY0KG1hcCk7DQo+ICAJCS8qDQo+IEBAIC00NTcsMTAgKzQ5MSwxNiBAQCBfX2lwc2VjX3Nh
ZF9sb29rdXAoY29uc3Qgc3RydWN0IHJ0ZV9pcHNlY19zYWQgKnNhZCwNCj4gIAkJICovDQo+ICAJ
CWlmICgodWludHB0cl90KXNhW2ldICYgUlRFX0lQU0VDX1NBRF9TUElfRElQX1NJUCkgew0KPiAg
CQkJaWR4XzNbbl8zXSA9IGk7DQo+ICsJCQloYXNoX3NpZ18zW25fM10gPSBydGVfaGFzaF9jcmMo
a2V5c1tpXSwNCj4gKwkJCQlzYWQtPmtleXNpemVbUlRFX0lQU0VDX1NBRF9TUElfRElQX1NJUF0s
DQo+ICsJCQkJc2FkLT5pbml0X3ZhbCk7DQo+ICAJCQlrZXlzXzNbbl8zKytdID0ga2V5c1tpXTsN
Cj4gIAkJfQ0KPiAgCQlpZiAoKHVpbnRwdHJfdClzYVtpXSAmIFJURV9JUFNFQ19TQURfU1BJX0RJ
UCkgew0KPiAgCQkJaWR4XzJbbl8yXSA9IGk7DQo+ICsJCQloYXNoX3NpZ18yW25fMl0gPSBydGVf
aGFzaF9jcmMoa2V5c1tpXSwNCj4gKwkJCQlzYWQtPmtleXNpemVbUlRFX0lQU0VDX1NBRF9TUElf
RElQXSwNCj4gKwkJCQlzYWQtPmluaXRfdmFsKTsNCj4gIAkJCWtleXNfMltuXzIrK10gPSBrZXlz
W2ldOw0KPiAgCQl9DQo+ICAJCS8qIGNsZWFyIDIgTFNCJ3Mgd2hpY2ggaW5kaWNhdGUgdGhlIHBy
ZXNlbmNlDQo+IEBAIC00NzEsOCArNTExLDkgQEAgX19pcHNlY19zYWRfbG9va3VwKGNvbnN0IHN0
cnVjdCBydGVfaXBzZWNfc2FkICpzYWQsDQo+ICANCj4gIAkvKiBMb29rdXAgZm9yIG1vcmUgc3Bl
Y2lmaWMgcnVsZXMgaW4gU1BJX0RJUCB0YWJsZSAqLw0KPiAgCWlmIChuXzIgIT0gMCkgew0KPiAt
CQlydGVfaGFzaF9sb29rdXBfYnVsa19kYXRhKHNhZC0+aGFzaFtSVEVfSVBTRUNfU0FEX1NQSV9E
SVBdLA0KPiAtCQkJa2V5c18yLCBuXzIsICZtYXNrXzIsIHZhbHNfMik7DQo+ICsJCXJ0ZV9oYXNo
X2xvb2t1cF93aXRoX2hhc2hfYnVsa19kYXRhKA0KPiArCQkJc2FkLT5oYXNoW1JURV9JUFNFQ19T
QURfU1BJX0RJUF0sDQo+ICsJCQlrZXlzXzIsIGhhc2hfc2lnXzIsIG5fMiwgJm1hc2tfMiwgdmFs
c18yKTsNCj4gIAkJZm9yIChtYXBfc3BlYyA9IG1hc2tfMjsgbWFwX3NwZWM7IG1hcF9zcGVjICY9
IChtYXBfc3BlYyAtIDEpKSB7DQo+ICAJCQlpID0gcnRlX2JzZjY0KG1hcF9zcGVjKTsNCj4gIAkJ
CXNhW2lkeF8yW2ldXSA9IHZhbHNfMltpXTsNCj4gQEAgLTQ4MCw4ICs1MjEsOSBAQCBfX2lwc2Vj
X3NhZF9sb29rdXAoY29uc3Qgc3RydWN0IHJ0ZV9pcHNlY19zYWQgKnNhZCwNCj4gIAl9DQo+ICAJ
LyogTG9va3VwIGZvciBtb3JlIHNwZWNpZmljIHJ1bGVzIGluIFNQSV9ESVBfU0lQIHRhYmxlICov
DQo+ICAJaWYgKG5fMyAhPSAwKSB7DQo+IC0JCXJ0ZV9oYXNoX2xvb2t1cF9idWxrX2RhdGEoc2Fk
LT5oYXNoW1JURV9JUFNFQ19TQURfU1BJX0RJUF9TSVBdLA0KPiAtCQkJa2V5c18zLCBuXzMsICZt
YXNrXzMsIHZhbHNfMyk7DQo+ICsJCXJ0ZV9oYXNoX2xvb2t1cF93aXRoX2hhc2hfYnVsa19kYXRh
KA0KPiArCQkJc2FkLT5oYXNoW1JURV9JUFNFQ19TQURfU1BJX0RJUF9TSVBdLA0KPiArCQkJa2V5
c18zLCBoYXNoX3NpZ18zLCBuXzMsICZtYXNrXzMsIHZhbHNfMyk7DQo+ICAJCWZvciAobWFwX3Nw
ZWMgPSBtYXNrXzM7IG1hcF9zcGVjOyBtYXBfc3BlYyAmPSAobWFwX3NwZWMgLSAxKSkgew0KPiAg
CQkJaSA9IHJ0ZV9ic2Y2NChtYXBfc3BlYyk7DQo+ICAJCQlzYVtpZHhfM1tpXV0gPSB2YWxzXzNb
aV07DQo+IA==