From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id DF2ABA0471 for ; Fri, 19 Jul 2019 09:27:33 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 65D582082; Fri, 19 Jul 2019 09:27:32 +0200 (CEST) Received: from mx0b-0016f401.pphosted.com (mx0a-0016f401.pphosted.com [67.231.148.174]) by dpdk.org (Postfix) with ESMTP id BBC471C01 for ; Fri, 19 Jul 2019 09:27:30 +0200 (CEST) Received: from pps.filterd (m0045849.ppops.net [127.0.0.1]) by mx0a-0016f401.pphosted.com (8.16.0.42/8.16.0.42) with SMTP id x6J7PsER028529; Fri, 19 Jul 2019 00:27:29 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=t5r9/CWLiDgAr3NNojMPb3v1NH7AJjHn++qZIU7ts60=; b=TAypDbaKh4kavE/XoEoRT14XXfLba1FtM3aQuo7T/xA7ikaGxNzUxay4+1BhIiXna6qP wHNhNqyWo7rIIWEgIHUWqXJohoDFZRP6+CwxZRckkBX3UgJ81ppK5/o2vMGUByRhyEBE E8Wm7EqEpI8VxE7JRogV8iOsBP1j393xgd6tKSi2EKaMwuiriHj1863NDmJxBh++Ms4m /5jV2Vpkh2DYmhlruFaW1scIhN5Jl1qg/sEZxX2XFx+vIXnqThiHrYoFGXbj3KA1B6/j bU7aEoowZlQU5PvDeGjrj9BjiK/1JNwK0eQekBa1C+JZsiZrivMm0IDHwye1AKg0SDaO 3w== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0a-0016f401.pphosted.com with ESMTP id 2ts07vrh63-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Fri, 19 Jul 2019 00:27:29 -0700 Received: from SC-EXCH03.marvell.com (10.93.176.83) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Fri, 19 Jul 2019 00:27:28 -0700 Received: from NAM05-BY2-obe.outbound.protection.outlook.com (104.47.50.53) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Fri, 19 Jul 2019 00:27:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=d5p2Y+2cn6d0F58CtuVTN4nCjXXqqcPYLAlsN7dzQLuOo2c5DQMvh9cNVWFQeVz//whLHfoohMbogAFabFA0A4/Q8MGbd+otaDs96OqzS6tC01mhpzyWaRBuh19/yOghRa9Wu/n3eGTddCHhMAJac1MdGfZ98FSvsex5JRq0DntXenB0D6qzg/J7MiylNCj3jv+j0zHedmPmz457hx4vxo63WXQ06aEqrLrW65Mul6rVWIIeG2zpBV42BKQSM1+NGwYoPNDTcdCkbBuOp/lohnwxbgVdrufXSpuFwL6ngJrfrykwLT/HGrEEqBhoyX4Ac2NMiebPsKV+P5uKgTXlEA== 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=t5r9/CWLiDgAr3NNojMPb3v1NH7AJjHn++qZIU7ts60=; b=Jdf/D7oZd8F/k30BIfAWtZQq9p1Vjvd3pQDW+E94VqZPc8guP4m+hGYFUGeXAMSU9EK9zpLojZ2QzTs+NxnqaYz2zPnL4gkOuye8L9Vdt6MThPOU+wPzerCQ/DAZTUWYniDHHWRYhzSGRJTzRQB//CLrsH9+hNhPPPGWbpguxmUGtYihcNvdWlQPnRvGHyGwRlkJ9bXqmpv7ImkLaw7jN4UCNMbXx8AYe3FlIAcX5X+13kfSxD1ta/jx3VoFc4t2fOd5IIAltq2LD1RCL6Sj0kMJLTbvYiUVVDWviuKY7uEjpk5bm33gh60aegDwVIMS4UVjiIpH02EJinMmtnzqqQ== 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=selector2-marvell-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t5r9/CWLiDgAr3NNojMPb3v1NH7AJjHn++qZIU7ts60=; b=IB5T0j7vKFeIDNmOzeC4RziLL79p3RQaXmXhZGgyavHN5NN3yxfajYHVXsBW74CKo+9jmNcn20x41EZPbKj4uj68ThDxeo4asGjCZjhbJF54FVT7NH3cva2qm+Yyu2ZwMt4CYTPh1z7BnD13UevRN6EN8pg/DqXn4P0EA8UCzGQ= Received: from MN2PR18MB2797.namprd18.prod.outlook.com (20.179.22.16) by MN2PR18MB3166.namprd18.prod.outlook.com (10.255.236.87) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2094.14; Fri, 19 Jul 2019 07:27:27 +0000 Received: from MN2PR18MB2797.namprd18.prod.outlook.com ([fe80::5d53:ac2e:80ec:cd8f]) by MN2PR18MB2797.namprd18.prod.outlook.com ([fe80::5d53:ac2e:80ec:cd8f%6]) with mapi id 15.20.2094.011; Fri, 19 Jul 2019 07:27:27 +0000 From: Nagadheeraj Rottela To: Aaron Conole CC: "dev@dpdk.org" , Srikanth Jampala Thread-Topic: [dpdk-dev] [PATCH 08/10] crypto/nitrox: add burst enqueue and dequeue operations Thread-Index: AdU+A1ufNKmDsytwRCmtdgSn0oABDg== Date: Fri, 19 Jul 2019 07:27:27 +0000 Message-ID: Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [115.113.156.2] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 55340dff-b086-4d12-4c25-08d70c1a8d22 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600148)(711020)(4605104)(1401327)(2017052603328)(7193020); SRVR:MN2PR18MB3166; x-ms-traffictypediagnostic: MN2PR18MB3166: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:449; x-forefront-prvs: 01039C93E4 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(366004)(396003)(39860400002)(376002)(346002)(136003)(13464003)(199004)(189003)(8676002)(3846002)(316002)(86362001)(9686003)(54906003)(6116002)(6436002)(6246003)(71200400001)(55016002)(71190400001)(68736007)(2906002)(53936002)(107886003)(66556008)(66476007)(30864003)(64756008)(229853002)(66946007)(5660300002)(76116006)(25786009)(256004)(14444005)(99286004)(476003)(7696005)(478600001)(14454004)(66446008)(486006)(4326008)(66066001)(55236004)(52536014)(6506007)(53546011)(102836004)(7736002)(305945005)(81156014)(81166006)(26005)(6916009)(186003)(33656002)(74316002)(8936002); DIR:OUT; SFP:1101; SCL:1; SRVR:MN2PR18MB3166; H:MN2PR18MB2797.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: tdjVuqbkTuBkxzDjF+I0NHBmLSO8qyNV0DNBO5LebiO9jx3PNGQQzmg2byWWg1KC4T3T8Zu9SgQD3QIzqXp5BtLT2ybUlwL2tYtTKhDjj5GjNMnTprW0aMbv1T31FtSb1tNFGvaPjlB6tKhI7O+bblUoaD5yvlW4FxnlWJjfksuus8tWVwi4Im6parxrBitjpG2Uiz/lupsASIc4HpH2sBoMxibtfFOAJbMCX5MnRmfbc4kYZ+O2R0USTHLqa8gef9fz0V0AV3s6a6cqqkybENNGNi1TO2VuVnPxZn9nqvbKkw81lq+MehUJzQ2wDFR1dkD+bHryBS30O1XY68l1b6SFnAKxNFNspnOE3qNcROA1jbSj1m+HFJUKgnedLUT71Q54Kz7v7VMgitaRLyheQurmiEiRokyNL0eSK3YvKMM= Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 55340dff-b086-4d12-4c25-08d70c1a8d22 X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Jul 2019 07:27:27.0753 (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: rnagadheeraj@marvell.com X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR18MB3166 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:5.22.84,1.0.8 definitions=2019-07-19_05:2019-07-19,2019-07-19 signatures=0 Subject: Re: [dpdk-dev] [PATCH 08/10] crypto/nitrox: add burst enqueue and dequeue operations 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" SGkgQWFyb24sDQoNClllcywgdGhlcmUgaXMgYSBtaXNzaW5nIGhlYWRlciBpbmNsdWRlLiBJIHdp bGwgZml4IGl0IGluIHYyLg0KDQo+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0tLS0tDQo+IEZyb206 IEFhcm9uIENvbm9sZSA8YWNvbm9sZUByZWRoYXQuY29tPg0KPiBTZW50OiBXZWRuZXNkYXksIEp1 bHkgMTcsIDIwMTkgNzo0NyBQTQ0KPiBUbzogTmFnYWRoZWVyYWogUm90dGVsYSA8cm5hZ2FkaGVl cmFqQG1hcnZlbGwuY29tPg0KPiBDYzogZGV2QGRwZGsub3JnOyBTcmlrYW50aCBKYW1wYWxhIDxq c3Jpa2FudGhAbWFydmVsbC5jb20+DQo+IFN1YmplY3Q6IFtFWFRdIFJlOiBbZHBkay1kZXZdIFtQ QVRDSCAwOC8xMF0gY3J5cHRvL25pdHJveDogYWRkIGJ1cnN0DQo+IGVucXVldWUgYW5kIGRlcXVl dWUgb3BlcmF0aW9ucw0KPiANCj4gRXh0ZXJuYWwgRW1haWwNCj4gDQo+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0N Cj4gTmFnYWRoZWVyYWogUm90dGVsYSA8cm5hZ2FkaGVlcmFqQG1hcnZlbGwuY29tPiB3cml0ZXM6 DQo+IA0KPiA+IEFkZCBidXJzdCBlbnF1ZXVlIGFuZCBkZXF1ZXVlIG9wZXJhdGlvbnMgYWxvbmcg d2l0aCBpbnRlcmZhY2UgZm9yDQo+ID4gc3ltbWV0cmljIHJlcXVlc3QgbWFuYWdlci4NCj4gPg0K PiA+IFNpZ25lZC1vZmYtYnk6IE5hZ2FkaGVlcmFqIFJvdHRlbGEgPHJuYWdhZGhlZXJhakBtYXJ2 ZWxsLmNvbT4NCj4gPiAtLS0NCj4gDQo+IEhpIE5hZ2FkaGVlcmFqLA0KPiANCj4gPiAgZHJpdmVy cy9jcnlwdG8vbml0cm94L25pdHJveF9xcC5oICAgICAgICAgfCAgNTUgKysrKysrKysrKw0KPiA+ ICBkcml2ZXJzL2NyeXB0by9uaXRyb3gvbml0cm94X3N5bS5jICAgICAgICB8IDEyMyArKysrKysr KysrKysrKysrKysrKy0NCj4gPiAgZHJpdmVycy9jcnlwdG8vbml0cm94L25pdHJveF9zeW1fcmVx bWdyLmMgfCAxNzMNCj4gPiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysNCj4gPiBkcml2 ZXJzL2NyeXB0by9uaXRyb3gvbml0cm94X3N5bV9yZXFtZ3IuaCB8ICAxMCArKw0KPiA+ICA0IGZp bGVzIGNoYW5nZWQsIDM1OSBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQ0KPiA+DQo+ID4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvY3J5cHRvL25pdHJveC9uaXRyb3hfcXAuaA0KPiA+IGIvZHJp dmVycy9jcnlwdG8vbml0cm94L25pdHJveF9xcC5oDQo+ID4gaW5kZXggMDI0NGM0ZGJmLi42NDVm YTg5MjUgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9jcnlwdG8vbml0cm94L25pdHJveF9xcC5o DQo+ID4gKysrIGIvZHJpdmVycy9jcnlwdG8vbml0cm94L25pdHJveF9xcC5oDQo+ID4gQEAgLTM0 LDEyICszNCw2NyBAQCBzdHJ1Y3Qgbml0cm94X3FwIHsNCj4gPiAgCXJ0ZV9hdG9taWMxNl90IHBl bmRpbmdfY291bnQ7DQo+ID4gIH07DQo+ID4NCj4gPiArc3RhdGljIGlubGluZSB1aW50MTZfdA0K PiA+ICtuaXRyb3hfcXBfZnJlZV9jb3VudChzdHJ1Y3Qgbml0cm94X3FwICpxcCkgew0KPiA+ICsJ dWludDE2X3QgcGVuZGluZ19jb3VudCA9IHJ0ZV9hdG9taWMxNl9yZWFkKCZxcC0NCj4gPnBlbmRp bmdfY291bnQpOw0KPiA+ICsNCj4gPiArCVJURV9BU1NFUlQocXAtPmNvdW50ID49IHBlbmRpbmdf Y291bnQpOw0KPiA+ICsJcmV0dXJuIChxcC0+Y291bnQgLSBwZW5kaW5nX2NvdW50KTsNCj4gPiAr fQ0KPiA+ICsNCj4gPiAgc3RhdGljIGlubGluZSBib29sDQo+ID4gIG5pdHJveF9xcF9pc19lbXB0 eShzdHJ1Y3Qgbml0cm94X3FwICpxcCkgIHsNCj4gPiAgCXJldHVybiAocnRlX2F0b21pYzE2X3Jl YWQoJnFwLT5wZW5kaW5nX2NvdW50KSA9PSAwKTsgIH0NCj4gPg0KPiA+ICtzdGF0aWMgaW5saW5l IHVpbnQxNl90DQo+ID4gK25pdHJveF9xcF91c2VkX2NvdW50KHN0cnVjdCBuaXRyb3hfcXAgKnFw KSB7DQo+ID4gKwlyZXR1cm4gcnRlX2F0b21pYzE2X3JlYWQoJnFwLT5wZW5kaW5nX2NvdW50KTsN Cj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIGlubGluZSBzdHJ1Y3Qgbml0cm94X3NvZnRyZXEg KiBuaXRyb3hfcXBfZ2V0X3NvZnRyZXEoc3RydWN0DQo+ID4gK25pdHJveF9xcCAqcXApIHsNCj4g PiArCXVpbnQzMl90IHRhaWwgPSBxcC0+dGFpbCAlIHFwLT5jb3VudDsNCj4gPiArDQo+ID4gKwly ZXR1cm4gcXAtPnJpZHFbdGFpbF0uc3I7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbmxp bmUgdm9pZA0KPiA+ICtuaXRyb3hfcmluZ19kYmVsbChzdHJ1Y3Qgbml0cm94X3FwICpxcCwgdWlu dDE2X3QgY250KSB7DQo+ID4gKwlzdHJ1Y3QgY29tbWFuZF9xdWV1ZSAqY21kcSA9ICZxcC0+Y21k cTsNCj4gPiArDQo+ID4gKwlpZiAoIWNudCkNCj4gPiArCQlyZXR1cm47DQo+ID4gKw0KPiA+ICsJ cnRlX3dyaXRlNjQoY250LCBjbWRxLT5kYmVsbF9jc3JfYWRkcik7IH0NCj4gPiArDQo+ID4gK3N0 YXRpYyBpbmxpbmUgdm9pZA0KPiA+ICtuaXRyb3hfcXBfZW5xdWV1ZShzdHJ1Y3Qgbml0cm94X3Fw ICpxcCwgdm9pZCAqaW5zdHIsIHN0cnVjdA0KPiA+ICtuaXRyb3hfc29mdHJlcSAqc3IpIHsNCj4g PiArCXVpbnQzMl90IGhlYWQgPSBxcC0+aGVhZCAlIHFwLT5jb3VudDsNCj4gPiArDQo+ID4gKwlt ZW1jcHkoJnFwLT5jbWRxLnJpbmdbaGVhZCAqIHFwLT5jbWRxLmluc3RyX3NpemVdLA0KPiA+ICsJ ICAgICAgIGluc3RyLCBxcC0+Y21kcS5pbnN0cl9zaXplKTsNCj4gPiArCXFwLT5yaWRxW2hlYWRd LnNyID0gc3I7DQo+ID4gKwlxcC0+aGVhZCsrOw0KPiA+ICsJcnRlX2F0b21pYzE2X2luYygmcXAt PnBlbmRpbmdfY291bnQpOw0KPiA+ICsJcnRlX3dtYigpOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtz dGF0aWMgaW5saW5lIHZvaWQNCj4gPiArbml0cm94X3FwX2RlcXVldWUoc3RydWN0IG5pdHJveF9x cCAqcXApIHsNCj4gPiArCXFwLT50YWlsKys7DQo+ID4gKwlydGVfYXRvbWljMTZfZGVjKCZxcC0+ cGVuZGluZ19jb3VudCk7DQo+ID4gKwlydGVfc21wX21iKCk7DQo+ID4gK30NCj4gPiArDQo+ID4g IGludCBuaXRyb3hfcXBfc2V0dXAoc3RydWN0IG5pdHJveF9xcCAqcXAsIHVpbnQ4X3QgKmJhcl9h ZGRyLA0KPiA+ICAJCSAgICBjb25zdCBjaGFyICpkZXZfbmFtZSwgdWludDMyX3QgbmJfZGVzY3Jp cHRvcnMsDQo+ID4gIAkJICAgIHVpbnQ4X3QgaW5zdF9zaXplLCBpbnQgc29ja2V0X2lkKTsgZGlm ZiAtLWdpdA0KPiA+IGEvZHJpdmVycy9jcnlwdG8vbml0cm94L25pdHJveF9zeW0uYw0KPiA+IGIv ZHJpdmVycy9jcnlwdG8vbml0cm94L25pdHJveF9zeW0uYw0KPiA+IGluZGV4IDM0YzYyYjAyZS4u OWNjYzI4NzU1IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvY3J5cHRvL25pdHJveC9uaXRyb3hf c3ltLmMNCj4gPiArKysgYi9kcml2ZXJzL2NyeXB0by9uaXRyb3gvbml0cm94X3N5bS5jDQo+ID4g QEAgLTUyMSw2ICs1MjEsMTI1IEBAIG5pdHJveF9zeW1fZGV2X3Nlc3NfY2xlYXIoc3RydWN0IHJ0 ZV9jcnlwdG9kZXYNCj4gKmNkZXYsDQo+ID4gIAlydGVfbWVtcG9vbF9wdXQoc2Vzc19tcCwgY3R4 KTsNCj4gPiAgfQ0KPiA+DQo+ID4gK3N0YXRpYyBzdHJ1Y3Qgbml0cm94X2NyeXB0b19jdHggKg0K PiA+ICtnZXRfY3J5cHRvX2N0eChzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3ApIHsNCj4gPiArCWlm IChvcC0+c2Vzc190eXBlID09IFJURV9DUllQVE9fT1BfV0lUSF9TRVNTSU9OKSB7DQo+ID4gKwkJ aWYgKGxpa2VseShvcC0+c3ltLT5zZXNzaW9uKSkNCj4gPiArCQkJcmV0dXJuIGdldF9zeW1fc2Vz c2lvbl9wcml2YXRlX2RhdGEob3AtPnN5bS0NCj4gPnNlc3Npb24sDQo+ID4gKwkJCQkJCQkgICBu aXRyb3hfc3ltX2Rydl9pZCk7DQo+ID4gKw0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCXJldHVybiBO VUxMOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50DQo+ID4gK25pdHJveF9lbnFfc2lu Z2xlX29wKHN0cnVjdCBuaXRyb3hfcXAgKnFwLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3ApDQo+ ID4gK3sNCj4gPiArCXN0cnVjdCBuaXRyb3hfY3J5cHRvX2N0eCAqY3R4Ow0KPiA+ICsJc3RydWN0 IG5pdHJveF9zb2Z0cmVxICpzcjsNCj4gPiArCWludCBlcnI7DQo+ID4gKw0KPiA+ICsJb3AtPnN0 YXR1cyA9IFJURV9DUllQVE9fT1BfU1RBVFVTX05PVF9QUk9DRVNTRUQ7DQo+ID4gKw0KPiA+ICsJ Y3R4ID0gZ2V0X2NyeXB0b19jdHgob3ApOw0KPiA+ICsJaWYgKHVubGlrZWx5KCFjdHgpKSB7DQo+ ID4gKwkJb3AtPnN0YXR1cyA9IFJURV9DUllQVE9fT1BfU1RBVFVTX0lOVkFMSURfU0VTU0lPTjsN Cj4gPiArCQlyZXR1cm4gLUVJTlZBTDsNCj4gPiArCX0NCj4gPiArDQo+ID4gKwlpZiAodW5saWtl bHkocnRlX21lbXBvb2xfZ2V0KHFwLT5zcl9tcCwgKHZvaWQgKiopJnNyKSkpDQo+ID4gKwkJcmV0 dXJuIC1FTk9NRU07DQo+ID4gKw0KPiA+ICsJZXJyID0gbml0cm94X3Byb2Nlc3Nfc2VfcmVxKHFw LT5xbm8sIG9wLCBjdHgsIHNyKTsNCj4gPiArCWlmICh1bmxpa2VseShlcnIpKSB7DQo+ID4gKwkJ cnRlX21lbXBvb2xfcHV0KHFwLT5zcl9tcCwgc3IpOw0KPiA+ICsJCW9wLT5zdGF0dXMgPSBSVEVf Q1JZUFRPX09QX1NUQVRVU19FUlJPUjsNCj4gPiArCQlyZXR1cm4gZXJyOw0KPiA+ICsJfQ0KPiA+ ICsNCj4gPiArCW5pdHJveF9xcF9lbnF1ZXVlKHFwLCBuaXRyb3hfc3ltX2luc3RyX2FkZHIoc3Ip LCBzcik7DQo+ID4gKwlyZXR1cm4gMDsNCj4gPiArfQ0KPiA+ICsNCj4gPiArc3RhdGljIHVpbnQx Nl90DQo+ID4gK25pdHJveF9zeW1fZGV2X2VucV9idXJzdCh2b2lkICpxdWV1ZV9wYWlyLCBzdHJ1 Y3QgcnRlX2NyeXB0b19vcA0KPiAqKm9wcywNCj4gPiArCQkJIHVpbnQxNl90IG5iX29wcykNCj4g PiArew0KPiA+ICsJc3RydWN0IG5pdHJveF9xcCAqcXAgPSBxdWV1ZV9wYWlyOw0KPiA+ICsJdWlu dDE2X3QgZnJlZV9zbG90cyA9IDA7DQo+ID4gKwl1aW50MTZfdCBjbnQgPSAwOw0KPiA+ICsJYm9v bCBlcnIgPSBmYWxzZTsNCj4gPiArDQo+ID4gKwlmcmVlX3Nsb3RzID0gbml0cm94X3FwX2ZyZWVf Y291bnQocXApOw0KPiA+ICsJaWYgKG5iX29wcyA+IGZyZWVfc2xvdHMpDQo+ID4gKwkJbmJfb3Bz ID0gZnJlZV9zbG90czsNCj4gPiArDQo+ID4gKwlmb3IgKGNudCA9IDA7IGNudCA8IG5iX29wczsg Y250KyspIHsNCj4gPiArCQlpZiAodW5saWtlbHkobml0cm94X2VucV9zaW5nbGVfb3AocXAsIG9w c1tjbnRdKSkpIHsNCj4gPiArCQkJZXJyID0gdHJ1ZTsNCj4gPiArCQkJYnJlYWs7DQo+ID4gKwkJ fQ0KPiA+ICsJfQ0KPiA+ICsNCj4gPiArCW5pdHJveF9yaW5nX2RiZWxsKHFwLCBjbnQpOw0KPiA+ ICsJcXAtPnN0YXRzLmVucXVldWVkX2NvdW50ICs9IGNudDsNCj4gPiArCWlmICh1bmxpa2VseShl cnIpKQ0KPiA+ICsJCXFwLT5zdGF0cy5lbnF1ZXVlX2Vycl9jb3VudCsrOw0KPiA+ICsNCj4gPiAr CXJldHVybiBjbnQ7DQo+ID4gK30NCj4gPiArDQo+ID4gK3N0YXRpYyBpbnQNCj4gPiArbml0cm94 X2RlcV9zaW5nbGVfb3Aoc3RydWN0IG5pdHJveF9xcCAqcXAsIHN0cnVjdCBydGVfY3J5cHRvX29w DQo+ID4gKyoqb3BfcHRyKSB7DQo+ID4gKwlzdHJ1Y3Qgbml0cm94X3NvZnRyZXEgKnNyOw0KPiA+ ICsJaW50IHJldDsNCj4gPiArCXN0cnVjdCBydGVfY3J5cHRvX29wICpvcDsNCj4gPiArDQo+ID4g KwlzciA9IG5pdHJveF9xcF9nZXRfc29mdHJlcShxcCk7DQo+ID4gKwlyZXQgPSBuaXRyb3hfY2hl Y2tfc2VfcmVxKHNyLCBvcF9wdHIpOw0KPiA+ICsJaWYgKHJldCA8IDApDQo+ID4gKwkJcmV0dXJu IC1FQUdBSU47DQo+ID4gKw0KPiA+ICsJb3AgPSAqb3BfcHRyOw0KPiA+ICsJbml0cm94X3FwX2Rl cXVldWUocXApOw0KPiA+ICsJcnRlX21lbXBvb2xfcHV0KHFwLT5zcl9tcCwgc3IpOw0KPiA+ICsJ aWYgKCFyZXQpIHsNCj4gPiArCQlvcC0+c3RhdHVzID0gUlRFX0NSWVBUT19PUF9TVEFUVVNfU1VD Q0VTUzsNCj4gPiArCQlxcC0+c3RhdHMuZGVxdWV1ZWRfY291bnQrKzsNCj4gPiArDQo+ID4gKwkJ cmV0dXJuIDA7DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJaWYgKHJldCA9PSBNQ19NQUNfTUlTTUFU Q0hfRVJSX0NPREUpDQo+ID4gKwkJb3AtPnN0YXR1cyA9IFJURV9DUllQVE9fT1BfU1RBVFVTX0FV VEhfRkFJTEVEOw0KPiA+ICsJZWxzZQ0KPiA+ICsJCW9wLT5zdGF0dXMgPSBSVEVfQ1JZUFRPX09Q X1NUQVRVU19FUlJPUjsNCj4gPiArCXFwLT5zdGF0cy5kZXF1ZXVlX2Vycl9jb3VudCsrOw0KPiA+ ICsNCj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgdWludDE2X3QN Cj4gPiArbml0cm94X3N5bV9kZXZfZGVxX2J1cnN0KHZvaWQgKnF1ZXVlX3BhaXIsIHN0cnVjdCBy dGVfY3J5cHRvX29wDQo+ICoqb3BzLA0KPiA+ICsJCQkgdWludDE2X3QgbmJfb3BzKQ0KPiA+ICt7 DQo+ID4gKwlzdHJ1Y3Qgbml0cm94X3FwICpxcCA9IHF1ZXVlX3BhaXI7DQo+ID4gKwl1aW50MTZf dCBmaWxsZWRfc2xvdHMgPSBuaXRyb3hfcXBfdXNlZF9jb3VudChxcCk7DQo+ID4gKwlpbnQgY250 ID0gMDsNCj4gPiArDQo+ID4gKwlpZiAobmJfb3BzID4gZmlsbGVkX3Nsb3RzKQ0KPiA+ICsJCW5i X29wcyA9IGZpbGxlZF9zbG90czsNCj4gPiArDQo+ID4gKwlmb3IgKGNudCA9IDA7IGNudCA8IG5i X29wczsgY250KyspDQo+ID4gKwkJaWYgKG5pdHJveF9kZXFfc2luZ2xlX29wKHFwLCAmb3BzW2Nu dF0pKQ0KPiA+ICsJCQlicmVhazsNCj4gPiArDQo+ID4gKwlyZXR1cm4gY250Ow0KPiA+ICt9DQo+ ID4gKw0KPiA+ICBzdGF0aWMgc3RydWN0IHJ0ZV9jcnlwdG9kZXZfb3BzIG5pdHJveF9jcnlwdG9k ZXZfb3BzID0gew0KPiA+ICAJLmRldl9jb25maWd1cmUJCT0gbml0cm94X3N5bV9kZXZfY29uZmln LA0KPiA+ICAJLmRldl9zdGFydAkJPSBuaXRyb3hfc3ltX2Rldl9zdGFydCwNCj4gPiBAQCAtNTY1 LDggKzY4NCw4IEBAIG5pdHJveF9zeW1fcG1kX2NyZWF0ZShzdHJ1Y3Qgbml0cm94X2RldmljZQ0K PiAqbmRldikNCj4gPiAgCW5kZXYtPnJ0ZV9zeW1fZGV2Lm5hbWUgPSBjZGV2LT5kYXRhLT5uYW1l Ow0KPiA+ICAJY2Rldi0+ZHJpdmVyX2lkID0gbml0cm94X3N5bV9kcnZfaWQ7DQo+ID4gIAljZGV2 LT5kZXZfb3BzID0gJm5pdHJveF9jcnlwdG9kZXZfb3BzOw0KPiA+IC0JY2Rldi0+ZW5xdWV1ZV9i dXJzdCA9IE5VTEw7DQo+ID4gLQljZGV2LT5kZXF1ZXVlX2J1cnN0ID0gTlVMTDsNCj4gPiArCWNk ZXYtPmVucXVldWVfYnVyc3QgPSBuaXRyb3hfc3ltX2Rldl9lbnFfYnVyc3Q7DQo+ID4gKwljZGV2 LT5kZXF1ZXVlX2J1cnN0ID0gbml0cm94X3N5bV9kZXZfZGVxX2J1cnN0Ow0KPiA+ICAJY2Rldi0+ ZmVhdHVyZV9mbGFncyA9IFJURV9DUllQVE9ERVZfRkZfU1lNTUVUUklDX0NSWVBUTyB8DQo+ID4g IAkJUlRFX0NSWVBUT0RFVl9GRl9IV19BQ0NFTEVSQVRFRCB8DQo+ID4gIAkJUlRFX0NSWVBUT0RF Vl9GRl9TWU1fT1BFUkFUSU9OX0NIQUlOSU5HIHwgZGlmZiAtLQ0KPiBnaXQNCj4gPiBhL2RyaXZl cnMvY3J5cHRvL25pdHJveC9uaXRyb3hfc3ltX3JlcW1nci5jDQo+ID4gYi9kcml2ZXJzL2NyeXB0 by9uaXRyb3gvbml0cm94X3N5bV9yZXFtZ3IuYw0KPiA+IGluZGV4IDQyZDY3MzE3Yy4uODdkMDhh MGMxIDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZlcnMvY3J5cHRvL25pdHJveC9uaXRyb3hfc3ltX3Jl cW1nci5jDQo+ID4gKysrIGIvZHJpdmVycy9jcnlwdG8vbml0cm94L25pdHJveF9zeW1fcmVxbWdy LmMNCj4gPiBAQCAtOSw3ICs5LDEwNyBAQA0KPiA+ICAjaW5jbHVkZSAibml0cm94X3N5bV9yZXFt Z3IuaCINCj4gPiAgI2luY2x1ZGUgIm5pdHJveF9sb2dzLmgiDQo+ID4NCj4gPiArI2RlZmluZSBQ RU5ESU5HX1NJRyAweEZGRkZGRkZGRkZGRkZGRkZVTCAjZGVmaW5lIENNRF9USU1FT1VUIDINCj4g PiArDQo+ID4gK3VuaW9uIHBrdF9pbnN0cl9oZHIgew0KPiA+ICsJdWludDY0X3QgdmFsdWU7DQo+ ID4gKwlzdHJ1Y3Qgew0KPiA+ICsjaWYgUlRFX0JZVEVfT1JERVIgPT0gUlRFX0JJR19FTkRJQU4N Cj4gPiArCQl1aW50NjRfdCByYXpfNDhfNjMgOiAxNjsNCj4gPiArCQl1aW50NjRfdCBnIDogMTsN Cj4gPiArCQl1aW50NjRfdCBnc3ogOiA3Ow0KPiA+ICsJCXVpbnQ2NF90IGloaSA6IDE7DQo+ID4g KwkJdWludDY0X3Qgc3N6IDogNzsNCj4gPiArCQl1aW50NjRfdCByYXpfMzBfMzEgOiAyOw0KPiA+ ICsJCXVpbnQ2NF90IGZzeiA6IDY7DQo+ID4gKwkJdWludDY0X3QgcmF6XzE2XzIzIDogODsNCj4g PiArCQl1aW50NjRfdCB0bGVuIDogMTY7DQo+ID4gKyNlbHNlDQo+ID4gKwkJdWludDY0X3QgdGxl biA6IDE2Ow0KPiA+ICsJCXVpbnQ2NF90IHJhel8xNl8yMyA6IDg7DQo+ID4gKwkJdWludDY0X3Qg ZnN6IDogNjsNCj4gPiArCQl1aW50NjRfdCByYXpfMzBfMzEgOiAyOw0KPiA+ICsJCXVpbnQ2NF90 IHNzeiA6IDc7DQo+ID4gKwkJdWludDY0X3QgaWhpIDogMTsNCj4gPiArCQl1aW50NjRfdCBnc3og OiA3Ow0KPiA+ICsJCXVpbnQ2NF90IGcgOiAxOw0KPiA+ICsJCXVpbnQ2NF90IHJhel80OF82MyA6 IDE2Ow0KPiA+ICsjZW5kaWYNCj4gPiArCX0gczsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3VuaW9u IHBrdF9oZHIgew0KPiA+ICsJdWludDY0X3QgdmFsdWVbMl07DQo+ID4gKwlzdHJ1Y3Qgew0KPiA+ ICsjaWYgUlRFX0JZVEVfT1JERVIgPT0gUlRFX0JJR19FTkRJQU4NCj4gPiArCQl1aW50NjRfdCBv cGNvZGUgOiA4Ow0KPiA+ICsJCXVpbnQ2NF90IGFyZyA6IDg7DQo+ID4gKwkJdWludDY0X3QgY3R4 YyA6IDI7DQo+ID4gKwkJdWludDY0X3QgdW5jYSA6IDE7DQo+ID4gKwkJdWludDY0X3QgcmF6XzQ0 IDogMTsNCj4gPiArCQl1aW50NjRfdCBpbmZvIDogMzsNCj4gPiArCQl1aW50NjRfdCBkZXN0cG9y dCA6IDk7DQo+ID4gKwkJdWludDY0X3QgdW5jIDogODsNCj4gPiArCQl1aW50NjRfdCByYXpfMTlf MjMgOiA1Ow0KPiA+ICsJCXVpbnQ2NF90IGdycCA6IDM7DQo+ID4gKwkJdWludDY0X3QgcmF6XzE1 IDogMTsNCj4gPiArCQl1aW50NjRfdCBjdHhsIDogNzsNCj4gPiArCQl1aW50NjRfdCB1ZGRsIDog ODsNCj4gPiArI2Vsc2UNCj4gPiArCQl1aW50NjRfdCB1ZGRsIDogODsNCj4gPiArCQl1aW50NjRf dCBjdHhsIDogNzsNCj4gPiArCQl1aW50NjRfdCByYXpfMTUgOiAxOw0KPiA+ICsJCXVpbnQ2NF90 IGdycCA6IDM7DQo+ID4gKwkJdWludDY0X3QgcmF6XzE5XzIzIDogNTsNCj4gPiArCQl1aW50NjRf dCB1bmMgOiA4Ow0KPiA+ICsJCXVpbnQ2NF90IGRlc3Rwb3J0IDogOTsNCj4gPiArCQl1aW50NjRf dCBpbmZvIDogMzsNCj4gPiArCQl1aW50NjRfdCByYXpfNDQgOiAxOw0KPiA+ICsJCXVpbnQ2NF90 IHVuY2EgOiAxOw0KPiA+ICsJCXVpbnQ2NF90IGN0eGMgOiAyOw0KPiA+ICsJCXVpbnQ2NF90IGFy ZyA6IDg7DQo+ID4gKwkJdWludDY0X3Qgb3Bjb2RlIDogODsNCj4gPiArI2VuZGlmDQo+ID4gKwkJ dWludDY0X3QgY3R4cDsNCj4gPiArCX0gczsNCj4gPiArfTsNCj4gPiArDQo+ID4gK3VuaW9uIHNs Y19zdG9yZV9pbmZvIHsNCj4gPiArCXVpbnQ2NF90IHZhbHVlWzJdOw0KPiA+ICsJc3RydWN0IHsN Cj4gPiArI2lmIFJURV9CWVRFX09SREVSID09IFJURV9CSUdfRU5ESUFODQo+ID4gKwkJdWludDY0 X3QgcmF6XzM5XzYzIDogMjU7DQo+ID4gKwkJdWludDY0X3Qgc3N6IDogNzsNCj4gPiArCQl1aW50 NjRfdCByYXpfMF8zMSA6IDMyOw0KPiA+ICsjZWxzZQ0KPiA+ICsJCXVpbnQ2NF90IHJhel8wXzMx IDogMzI7DQo+ID4gKwkJdWludDY0X3Qgc3N6IDogNzsNCj4gPiArCQl1aW50NjRfdCByYXpfMzlf NjMgOiAyNTsNCj4gPiArI2VuZGlmDQo+ID4gKwkJdWludDY0X3QgcnB0cjsNCj4gPiArCX0gczsN Cj4gPiArfTsNCj4gPiArDQo+ID4gK3N0cnVjdCBucHNfcGt0X2luc3RyIHsNCj4gPiArCXVpbnQ2 NF90IGRwdHIwOw0KPiA+ICsJdW5pb24gcGt0X2luc3RyX2hkciBpaDsNCj4gPiArCXVuaW9uIHBr dF9oZHIgaXJoOw0KPiA+ICsJdW5pb24gc2xjX3N0b3JlX2luZm8gc2xjOw0KPiA+ICsJdWludDY0 X3QgZmRhdGFbMl07DQo+ID4gK307DQo+ID4gKw0KPiA+ICtzdHJ1Y3QgcmVzcF9oZHIgew0KPiA+ ICsJdWludDY0X3Qgb3JoOw0KPiA+ICsJdWludDY0X3QgY29tcGxldGlvbjsNCj4gPiArfTsNCj4g PiArDQo+ID4gIHN0cnVjdCBuaXRyb3hfc29mdHJlcSB7DQo+ID4gKwlzdHJ1Y3Qgbml0cm94X2Ny eXB0b19jdHggKmN0eDsNCj4gPiArCXN0cnVjdCBydGVfY3J5cHRvX29wICpvcDsNCj4gPiArCXN0 cnVjdCBucHNfcGt0X2luc3RyIGluc3RyOw0KPiA+ICsJc3RydWN0IHJlc3BfaGRyIHJlc3A7DQo+ ID4gKwl1aW50NjRfdCB0aW1lb3V0Ow0KPiA+ICAJcnRlX2lvdmFfdCBpb3ZhOw0KPiA+ICB9Ow0K PiA+DQo+ID4gQEAgLTIwLDYgKzEyMCw3OSBAQCBzb2Z0cmVxX2luaXQoc3RydWN0IG5pdHJveF9z b2Z0cmVxICpzciwgcnRlX2lvdmFfdA0KPiBpb3ZhKQ0KPiA+ICAJc3ItPmlvdmEgPSBpb3ZhOw0K PiA+ICB9DQo+ID4NCj4gPiArc3RhdGljIGludA0KPiA+ICtwcm9jZXNzX2NpcGhlcl9hdXRoX2Rh dGEoc3RydWN0IG5pdHJveF9zb2Z0cmVxICpzcikgew0KPiA+ICsJUlRFX1NFVF9VU0VEKHNyKTsN Cj4gPiArCXJldHVybiAwOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICtzdGF0aWMgaW50DQo+ID4gK3By b2Nlc3Nfc29mdHJlcShzdHJ1Y3Qgbml0cm94X3NvZnRyZXEgKnNyKSB7DQo+ID4gKwlzdHJ1Y3Qg bml0cm94X2NyeXB0b19jdHggKmN0eCA9IHNyLT5jdHg7DQo+ID4gKwlpbnQgZXJyID0gMDsNCj4g PiArDQo+ID4gKwlzd2l0Y2ggKGN0eC0+bml0cm94X2NoYWluKSB7DQo+ID4gKwljYXNlIE5JVFJP WF9DSEFJTl9DSVBIRVJfQVVUSDoNCj4gPiArCWNhc2UgTklUUk9YX0NIQUlOX0FVVEhfQ0lQSEVS Og0KPiA+ICsJCWVyciA9IHByb2Nlc3NfY2lwaGVyX2F1dGhfZGF0YShzcik7DQo+ID4gKwkJYnJl YWs7DQo+ID4gKwlkZWZhdWx0Og0KPiA+ICsJCWVyciA9IC1FSU5WQUw7DQo+ID4gKwkJYnJlYWs7 DQo+ID4gKwl9DQo+ID4gKw0KPiA+ICsJcmV0dXJuIGVycjsNCj4gPiArfQ0KPiA+ICsNCj4gPiAr aW50DQo+ID4gK25pdHJveF9wcm9jZXNzX3NlX3JlcSh1aW50MTZfdCBxbm8sIHN0cnVjdCBydGVf Y3J5cHRvX29wICpvcCwNCj4gPiArCQkgICAgICBzdHJ1Y3Qgbml0cm94X2NyeXB0b19jdHggKmN0 eCwNCj4gPiArCQkgICAgICBzdHJ1Y3Qgbml0cm94X3NvZnRyZXEgKnNyKQ0KPiA+ICt7DQo+ID4g KwlSVEVfU0VUX1VTRUQocW5vKTsNCj4gPiArCXNvZnRyZXFfaW5pdChzciwgc3ItPmlvdmEpOw0K PiA+ICsJc3ItPmN0eCA9IGN0eDsNCj4gPiArCXNyLT5vcCA9IG9wOw0KPiA+ICsJcHJvY2Vzc19z b2Z0cmVxKHNyKTsNCj4gPiArCXNyLT50aW1lb3V0ID0gcnRlX2dldF90aW1lcl9jeWNsZXMoKSAr IENNRF9USU1FT1VUICoNCj4gcnRlX2dldF90aW1lcl9oeigpOw0KPiA+ICsJcmV0dXJuIDA7DQo+ ID4gK30NCj4gDQo+IE9uIEFBUkNINjQgYnVpbGRzLCBJIHNlZSB0aGUgZm9sbG93aW5nIGVycm9y Og0KPiANCj4gLi4vZHJpdmVycy9jcnlwdG8vbml0cm94L25pdHJveF9zeW1fcmVxbWdyLmM6IElu IGZ1bmN0aW9uDQo+IOKAmG5pdHJveF9wcm9jZXNzX3NlX3JlceKAmToNCj4gLi4vZHJpdmVycy9j cnlwdG8vbml0cm94L25pdHJveF9zeW1fcmVxbWdyLmM6NTgyOjE2OiBlcnJvcjogaW1wbGljaXQN Cj4gZGVjbGFyYXRpb24gb2YgZnVuY3Rpb24g4oCYcnRlX2dldF90aW1lcl9jeWNsZXPigJkgWy1X ZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24tDQo+IGRlY2xhcmF0aW9uXQ0KPiAgIHNyLT50aW1lb3V0 ID0gcnRlX2dldF90aW1lcl9jeWNsZXMoKSArIENNRF9USU1FT1VUICoNCj4gcnRlX2dldF90aW1l cl9oeigpOw0KPiAgICAgICAgICAgICAgICAgXg0KPiAuLi9kcml2ZXJzL2NyeXB0by9uaXRyb3gv bml0cm94X3N5bV9yZXFtZ3IuYzo1ODI6NTU6IGVycm9yOiBpbXBsaWNpdA0KPiBkZWNsYXJhdGlv biBvZiBmdW5jdGlvbiDigJhydGVfZ2V0X3RpbWVyX2h64oCZIFstV2Vycm9yPWltcGxpY2l0LWZ1 bmN0aW9uLQ0KPiBkZWNsYXJhdGlvbl0NCj4gICBzci0+dGltZW91dCA9IHJ0ZV9nZXRfdGltZXJf Y3ljbGVzKCkgKyBDTURfVElNRU9VVCAqDQo+IHJ0ZV9nZXRfdGltZXJfaHooKTsNCj4gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4NCj4gLi4v ZHJpdmVycy9jcnlwdG8vbml0cm94L25pdHJveF9zeW1fcmVxbWdyLmM6IEluIGZ1bmN0aW9uDQo+ IOKAmG5pdHJveF9jaGVja19zZV9yZXHigJk6DQo+IC4uL2RyaXZlcnMvY3J5cHRvL25pdHJveC9u aXRyb3hfc3ltX3JlcW1nci5jOjYwMDozNDogZXJyb3I6IGNvbXBhcmlzb24NCj4gYmV0d2VlbiBz aWduZWQgYW5kIHVuc2lnbmVkIGludGVnZXIgZXhwcmVzc2lvbnMgWy1XZXJyb3I9c2lnbi1jb21w YXJlXQ0KPiAgIGVsc2UgaWYgKHJ0ZV9nZXRfdGltZXJfY3ljbGVzKCkgPCBzci0+dGltZW91dCkN Cj4gDQo+IElzIGl0IHBvc3NpYmxlIHRoYXQgdGhlcmUgaXMgYSBtaXNzaW5nIGluY2x1ZGU/DQo+ IA0KPiA+ICtpbnQNCj4gPiArbml0cm94X2NoZWNrX3NlX3JlcShzdHJ1Y3Qgbml0cm94X3NvZnRy ZXEgKnNyLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcA0KPiA+ICsqKm9wKSB7DQo+ID4gKwl1aW50NjRf dCBjYzsNCj4gPiArCXVpbnQ2NF90IG9yaDsNCj4gPiArCWludCBlcnI7DQo+ID4gKw0KPiA+ICsJ cnRlX3JtYigpOw0KPiA+ICsJY2MgPSAqKHZvbGF0aWxlIHVpbnQ2NF90ICopKCZzci0+cmVzcC5j b21wbGV0aW9uKTsNCj4gPiArCW9yaCA9ICoodm9sYXRpbGUgdWludDY0X3QgKikoJnNyLT5yZXNw Lm9yaCk7DQo+ID4gKwlpZiAoY2MgIT0gUEVORElOR19TSUcpDQo+ID4gKwkJZXJyID0gMDsNCj4g PiArCWVsc2UgaWYgKChvcmggIT0gUEVORElOR19TSUcpICYmIChvcmggJiAweGZmKSkNCj4gPiAr CQllcnIgPSBvcmggJiAweGZmOw0KPiA+ICsJZWxzZSBpZiAocnRlX2dldF90aW1lcl9jeWNsZXMo KSA8IHNyLT50aW1lb3V0KQ0KPiA+ICsJCXJldHVybiAtRUFHQUlOOw0KPiA+ICsJZWxzZQ0KPiA+ ICsJCWVyciA9IDB4ZmY7DQo+ID4gKw0KPiA+ICsJaWYgKHVubGlrZWx5KGVycikpDQo+ID4gKwkJ TklUUk9YX0xPRyhFUlIsICJSZXF1ZXN0IGVyciAweCV4LCBvcmggMHglIlBSSXg2NCJcbiIsDQo+ IGVyciwNCj4gPiArCQkJICAgc3ItPnJlc3Aub3JoKTsNCj4gPiArDQo+ID4gKwkqb3AgPSBzci0+ b3A7DQo+ID4gKwlyZXR1cm4gZXJyOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICt2b2lkICoNCj4gPiAr bml0cm94X3N5bV9pbnN0cl9hZGRyKHN0cnVjdCBuaXRyb3hfc29mdHJlcSAqc3IpIHsNCj4gPiAr CXJldHVybiAmc3ItPmluc3RyOw0KPiA+ICt9DQo+ID4gKw0KPiA+ICBzdGF0aWMgdm9pZA0KPiA+ ICByZXFfcG9vbF9vYmpfaW5pdChfX3J0ZV91bnVzZWQgc3RydWN0IHJ0ZV9tZW1wb29sICptcCwN Cj4gPiAgCQkgIF9fcnRlX3VudXNlZCB2b2lkICpvcGFxdWUsIHZvaWQgKm9iaiwgZGlmZiAtLWdp dA0KPiA+IGEvZHJpdmVycy9jcnlwdG8vbml0cm94L25pdHJveF9zeW1fcmVxbWdyLmgNCj4gPiBi L2RyaXZlcnMvY3J5cHRvL25pdHJveC9uaXRyb3hfc3ltX3JlcW1nci5oDQo+ID4gaW5kZXggNTk1 M2M5NThjLi5mYTI2MzdiZGIgMTAwNjQ0DQo+ID4gLS0tIGEvZHJpdmVycy9jcnlwdG8vbml0cm94 L25pdHJveF9zeW1fcmVxbWdyLmgNCj4gPiArKysgYi9kcml2ZXJzL2NyeXB0by9uaXRyb3gvbml0 cm94X3N5bV9yZXFtZ3IuaA0KPiA+IEBAIC01LDYgKzUsMTYgQEANCj4gPiAgI2lmbmRlZiBfTklU Uk9YX1NZTV9SRVFNR1JfSF8NCj4gPiAgI2RlZmluZSBfTklUUk9YX1NZTV9SRVFNR1JfSF8NCj4g Pg0KPiA+ICsjaW5jbHVkZSAibml0cm94X3N5bV9jdHguaCINCj4gPiArDQo+ID4gK3N0cnVjdCBu aXRyb3hfcXA7DQo+ID4gK3N0cnVjdCBuaXRyb3hfc29mdHJlcTsNCj4gPiArDQo+ID4gK2ludCBu aXRyb3hfcHJvY2Vzc19zZV9yZXEodWludDE2X3QgcW5vLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAq b3AsDQo+ID4gKwkJCSAgc3RydWN0IG5pdHJveF9jcnlwdG9fY3R4ICpjdHgsDQo+ID4gKwkJCSAg c3RydWN0IG5pdHJveF9zb2Z0cmVxICpzcik7DQo+ID4gK2ludCBuaXRyb3hfY2hlY2tfc2VfcmVx KHN0cnVjdCBuaXRyb3hfc29mdHJlcSAqc3IsIHN0cnVjdA0KPiA+ICtydGVfY3J5cHRvX29wICoq b3ApOyB2b2lkICpuaXRyb3hfc3ltX2luc3RyX2FkZHIoc3RydWN0DQo+ID4gK25pdHJveF9zb2Z0 cmVxICpzcik7DQo+ID4gIHN0cnVjdCBydGVfbWVtcG9vbCAqbml0cm94X3N5bV9yZXFfcG9vbF9j cmVhdGUoc3RydWN0IHJ0ZV9jcnlwdG9kZXYNCj4gKmNkZXYsDQo+ID4gIAkJCQkJICAgICAgIHVp bnQzMl90IG5vYmpzLCB1aW50MTZfdCBxcF9pZCwNCj4gPiAgCQkJCQkgICAgICAgaW50IHNvY2tl dF9pZCk7DQo=