From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR02-AM5-obe.outbound.protection.outlook.com (mail-eopbgr00081.outbound.protection.outlook.com [40.107.0.81]) by dpdk.org (Postfix) with ESMTP id 60C4D1B1EA for ; Wed, 2 Jan 2019 14:42:51 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=LfrMQciOy3H6K9q9yfzJbplJuMme8wLx9XLUDjKRybQ=; b=DhwYC2/H6h/t09tOniu5PEUQgLCKnzV/2zERvq7KaGc9tBTQfDieFrnUkDGY2MKFvJ8ddPTKg+J5droUHG3CCXz1aHCuIAKuhsV+/RfdBdPuIXZkYHb49NA6oZYY5Hhg/x/WfI0Vf0amYppJVQhHs3l/n7T2+MpGSEbYXkjyJiM= Received: from VI1PR04MB4893.eurprd04.prod.outlook.com (20.177.49.154) by VI1PR04MB2176.eurprd04.prod.outlook.com (10.166.43.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1495.6; Wed, 2 Jan 2019 13:42:48 +0000 Received: from VI1PR04MB4893.eurprd04.prod.outlook.com ([fe80::7dc4:610b:d0c1:146b]) by VI1PR04MB4893.eurprd04.prod.outlook.com ([fe80::7dc4:610b:d0c1:146b%4]) with mapi id 15.20.1471.019; Wed, 2 Jan 2019 13:42:48 +0000 From: Akhil Goyal To: Konstantin Ananyev , "dev@dpdk.org" CC: Remy Horton Thread-Topic: [dpdk-dev] [PATCH v5 01/10] examples/ipsec-secgw: allow user to disable some RX/TX offloads Thread-Index: AQHUnsLJpHKqtTWbMkWzeNeUUKGS36WcBIsA Date: Wed, 2 Jan 2019 13:42:48 +0000 Message-ID: <91472d97-6d0c-c816-3843-d322dc70ae5c@nxp.com> References: <1544805623-18150-2-git-send-email-konstantin.ananyev@intel.com> <1546011238-22318-2-git-send-email-konstantin.ananyev@intel.com> In-Reply-To: <1546011238-22318-2-git-send-email-konstantin.ananyev@intel.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: BMXPR01CA0014.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:d::24) To VI1PR04MB4893.eurprd04.prod.outlook.com (2603:10a6:803:56::26) authentication-results: spf=none (sender IP is ) smtp.mailfrom=akhil.goyal@nxp.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [14.143.30.134] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1; VI1PR04MB2176; 6:kTpJoy5YQjRpA0cfPLfR5DueT/fbMpua0kHGbfTGNdYZVwLdG2eIPCd9srTPA0ysYUvYIobxlf0vyd0m+ifX67iW6tCbQhFYQPVhU0XuJFSV9R9Qm0D4o5BLSkLOgJHePr7NU/HmnuQK3dn6y7aDp4UAFnTQZoV1EXhEkig0rCl8ZitL+iFUtbwCbtszrsal9uDwSd3YapSeG2ddXjWp3R808nbCD8zy3zPr68iJRTZFiaEqoWYuX/h1jMAPvKqMPy+2g5VuI5A32/yyyXywmLxkGqiWWW+MoowQlmhDscV0qgkFRQbsSriLu5yfknA9GeUa8MmWCr88LwT9uEcx+hv+u0nAKyF/PENMFTSoPn3U/k2t5AkMI11DGa3pynCpYgOoNJlFj9WWh2PGWpY8wS1sHh7MUPFgT/WUq39QNRQ1NXSaBO7+8Wf8ds1S5hYyxSlmOyZSAmXVoXO5JMfNLg==; 5:9gIsXRQ/UfdLPtVGqvfC0Y9M5TWfUYUxodu9JTluGdv6V3iqvFwMEx2BVTpsOrUffl3As20eY+MvwA2lO72KeEt4CaXtgGadnZgLBBdEtYKfFdVv2cFUygV6ufvkOuwzpu1UR3gJKgkVpSpN1r4d3v9YgnLmAaDIlyZ7Nzey3Mxn7JExUK3B4lGEo/5IolO41pDPhC9DimqcBKNcJEghnA==; 7:AO+wD85zcx5aOJhDyDAoQF0WbaRuDdQbuwPA8e6gwBDDY3yq8OBKu6HySTU1vCqQ1e3ifml2PeEzp7uj3+pmeCmEzuMOlCnmZ9J8AG8L6HxQnxf6z84+hvsVXeXySUKK1/b0quu0P7CtuSoBeQqK1A== x-ms-office365-filtering-correlation-id: 25fc5375-ecf5-4c83-ba87-08d670b82ec2 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(7168020)(4627221)(201703031133081)(201702281549075)(8990200)(5600109)(711020)(4618075)(2017052603328)(7153060)(7193020); SRVR:VI1PR04MB2176; x-ms-traffictypediagnostic: VI1PR04MB2176: x-microsoft-antispam-prvs: x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(8211001083)(3230021)(908002)(999002)(5005026)(6040522)(8220060)(2401047)(8121501046)(3002001)(3231475)(944501520)(52105112)(93006095)(93001095)(10201501046)(6055026)(6041310)(20161123558120)(20161123560045)(20161123562045)(20161123564045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699051)(76991095); SRVR:VI1PR04MB2176; BCL:0; PCL:0; RULEID:; SRVR:VI1PR04MB2176; x-forefront-prvs: 0905A6B2C7 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(396003)(346002)(376002)(136003)(39860400002)(366004)(199004)(189003)(6486002)(6436002)(2501003)(14444005)(256004)(6246003)(8676002)(31686004)(8936002)(105586002)(5660300001)(229853002)(6512007)(3846002)(81156014)(81166006)(53936002)(66066001)(305945005)(7736002)(6116002)(25786009)(4326008)(14454004)(2906002)(4744004)(52116002)(78486014)(36756003)(97736004)(55236004)(53546011)(486006)(6506007)(71200400001)(86362001)(44832011)(575784001)(71190400001)(386003)(478600001)(31696002)(76176011)(316002)(68736007)(106356001)(446003)(99286004)(11346002)(476003)(2616005)(102836004)(110136005)(26005)(186003); DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR04MB2176; H:VI1PR04MB4893.eurprd04.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: Dlrnq6oG/ItTaMuVRDf1w9B95depFwMAu51GPXkTq0bpKYIBY9vUxqM6O8oc+Gddq7GmfeElWeozhDxACIi5FoJzMe2iKNX1EcXiHiOLRj4teJcgm9P05dmkOxb302DFqmHQHNpgUDc8kNB10ci2a90T3dqV0kaGbRThRZJ4vaslVJ/NEWF5l+H4EeUwfjkqaRpVDEyODHdj0MNVBEwOiyqxUANJ/mFaQLtBM/7bK+Uq/1CKG38Kp+cj5RfoUrDRE4Ph6hReMYaQWfZ59MJoRxXdm7gIvfGazWsdvwkYxF4iks4IAOoDONT1Rjyl8q5q spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <1EA2F06A7BFCA740B96D25432225CABB@eurprd04.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 25fc5375-ecf5-4c83-ba87-08d670b82ec2 X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Jan 2019 13:42:48.3723 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR04MB2176 Subject: Re: [dpdk-dev] [PATCH v5 01/10] examples/ipsec-secgw: allow user to disable some RX/TX offloads 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: Wed, 02 Jan 2019 13:42:51 -0000 DQoNCk9uIDEyLzI4LzIwMTggOTowMyBQTSwgS29uc3RhbnRpbiBBbmFueWV2IHdyb3RlOg0KPiBS aWdodCBub3cgaXBzZWMtc2VjZ3cgYWx3YXlzIGVuYWJsZXMgVFggb2ZmbG9hZHMNCj4gKERFVl9U WF9PRkZMT0FEX01VTFRJX1NFR1MsIERFVl9UWF9PRkZMT0FEX1NFQ1VSSVRZKSwNCj4gZXZlbiB3 aGVuIHRoZXkgYXJlIG5vdCByZXF1ZXN0ZWQgYnkgdGhlIGNvbmZpZy4NCj4gVGhhdCBjYXVzZXMg bWFueSBQTUQgdG8gY2hvb3NlIGZ1bGwtZmVhdHVyZWQgVFggZnVuY3Rpb24sDQo+IHdoaWNoIGlu IG1hbnkgY2FzZXMgaXMgbXVjaCBzbG93ZXIgdGhlbiBvbmUgd2l0aG91dCBvZmZsb2Fkcy4NCj4g VGhhdCBwYXRjaCBhZGRzIGFiaWxpdHkgZm9yIHRoZSB1c2VyIHRvIGRpc2FibGUgdW5uZWVkZWQg SFcgb2ZmbG9hZHMuDQo+IElmIERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gaXMgZGlzYWJsZWQg YnkgdXNlciwgdGhlbg0KPiBTVyB2ZXJzaW9uIG9mIGlwIGNrc3VtIGNhbGN1bGF0aW9uIGlzIHVz ZWQuDQo+IFRoYXQgYWxsb3dzIHRvIHVzZSB2ZWN0b3IgVFggZnVuY3Rpb24sIHdoZW4gaW5saW5l LWlwc2VjIGlzIG5vdA0KPiByZXF1ZXN0ZWQuDQo+DQo+IFNpZ25lZC1vZmYtYnk6IFJlbXkgSG9y dG9uIDxyZW15LmhvcnRvbkBpbnRlbC5jb20+DQo+IFNpZ25lZC1vZmYtYnk6IEtvbnN0YW50aW4g QW5hbnlldiA8a29uc3RhbnRpbi5hbmFueWV2QGludGVsLmNvbT4NCj4gQWNrZWQtYnk6IFJhZHUg Tmljb2xhdSA8cmFkdS5uaWNvbGF1QGludGVsLmNvbT4NCj4gLS0tDQo+ICAgZG9jL2d1aWRlcy9z YW1wbGVfYXBwX3VnL2lwc2VjX3NlY2d3LnJzdCB8ICAxMiArKysNCj4gICBleGFtcGxlcy9pcHNl Yy1zZWNndy9pcHNlYy1zZWNndy5jICAgICAgIHwgMTI2ICsrKysrKysrKysrKysrKysrKysrLS0t DQo+ICAgZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMuaCAgICAgICAgICAgICB8ICAgNiArKw0K PiAgIGV4YW1wbGVzL2lwc2VjLXNlY2d3L3NhLmMgICAgICAgICAgICAgICAgfCAgMzUgKysrKysr Kw0KPiAgIDQgZmlsZXMgY2hhbmdlZCwgMTY0IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygt KQ0KPg0KPiBkaWZmIC0tZ2l0IGEvZG9jL2d1aWRlcy9zYW1wbGVfYXBwX3VnL2lwc2VjX3NlY2d3 LnJzdCBiL2RvYy9ndWlkZXMvc2FtcGxlX2FwcF91Zy9pcHNlY19zZWNndy5yc3QNCj4gaW5kZXgg NDg2OWEwMTFkLi4yNDRiZGUyZGUgMTAwNjQ0DQo+IC0tLSBhL2RvYy9ndWlkZXMvc2FtcGxlX2Fw cF91Zy9pcHNlY19zZWNndy5yc3QNCj4gKysrIGIvZG9jL2d1aWRlcy9zYW1wbGVfYXBwX3VnL2lw c2VjX3NlY2d3LnJzdA0KPiBAQCAtOTUsNiArOTUsOCBAQCBUaGUgYXBwbGljYXRpb24gaGFzIGEg bnVtYmVyIG9mIGNvbW1hbmQgbGluZSBvcHRpb25zOjoNCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAtcCBQT1JUTUFTSyAtUCAtdSBQT1JUTUFTSyAtaiBGUkFNRVNJWkUNCj4gICAgICAgICAg ICAgICAgICAgICAgICAgICAtLWNvbmZpZyAocG9ydCxxdWV1ZSxsY29yZSlbLChwb3J0LHF1ZXVl LGxjb3JlXQ0KPiAgICAgICAgICAgICAgICAgICAgICAgICAgIC0tc2luZ2xlLXNhIFNBSURYDQo+ ICsgICAgICAgICAgICAgICAgICAgICAgICAtLXJ4b2ZmbG9hZCBNQVNLDQo+ICsgICAgICAgICAg ICAgICAgICAgICAgICAtLXR4b2ZmbG9hZCBNQVNLDQo+ICAgICAgICAgICAgICAgICAgICAgICAg ICAgLWYgQ09ORklHX0ZJTEVfUEFUSA0KPiAgIA0KPiAgIFdoZXJlOg0KPiBAQCAtMTE5LDYgKzEy MSwxNiBAQCBXaGVyZToNCj4gICAgICAgb24gYm90aCBJbmJvdW5kIGFuZCBPdXRib3VuZC4gVGhp cyBvcHRpb24gaXMgbWVhbnQgZm9yIGRlYnVnZ2luZy9wZXJmb3JtYW5jZQ0KPiAgICAgICBwdXJw b3Nlcy4NCj4gICANCj4gKyogICBgYC0tcnhvZmZsb2FkIE1BU0tgYDogUlggSFcgb2ZmbG9hZCBj YXBhYmlsaXRpZXMgdG8gZW5hYmxlL3VzZSBvbiB0aGlzIHBvcnQNCj4gKyAgICAoYml0bWFzayBv ZiBERVZfUlhfT0ZGTE9BRF8qIHZhbHVlcykuIEl0IGlzIGFuIG9wdGlvbmFsIHBhcmFtZXRlciBh bmQNCj4gKyAgICBhbGxvd3MgdXNlciB0byBkaXNhYmxlIHNvbWUgb2YgdGhlIFJYIEhXIG9mZmxv YWQgY2FwYWJpbGl0aWVzLg0KPiArICAgIEJ5IGRlZmF1bHQgYWxsIEhXIFJYIG9mZmxvYWRzIGFy ZSBlbmFibGVkLg0KPiArDQo+ICsqICAgYGAtLXR4b2ZmbG9hZCBNQVNLYGA6IFRYIEhXIG9mZmxv YWQgY2FwYWJpbGl0aWVzIHRvIGVuYWJsZS91c2Ugb24gdGhpcyBwb3J0DQo+ICsgICAgKGJpdG1h c2sgb2YgREVWX1RYX09GRkxPQURfKiB2YWx1ZXMpLiBJdCBpcyBhbiBvcHRpb25hbCBwYXJhbWV0 ZXIgYW5kDQo+ICsgICAgYWxsb3dzIHVzZXIgdG8gZGlzYWJsZSBzb21lIG9mIHRoZSBUWCBIVyBv ZmZsb2FkIGNhcGFiaWxpdGllcy4NCj4gKyAgICBCeSBkZWZhdWx0IGFsbCBIVyBUWCBvZmZsb2Fk cyBhcmUgZW5hYmxlZC4NCj4gKw0KYnkgZGVmYXVsdCBhbGwgc2hvdWxkIG5vdCBiZSBlbmFibGVk LiBJdCBzaG91bGQgcmVtYWluIGFzIGl0IHdhcyBiZWZvcmUgDQp5b3VyIHBhdGNoc2V0Lg0KSXQg d291bGQgYmUgZ29vZCBpZiB5b3UgY2FuIGFkZCBhIGxpbmsgdG8gZXRoZGV2IHNlY3Rpb24gd2hl cmUgaXQgDQpleHBsYWluIGRpZmZlcmVudCBvZmZsb2FkcyBhdmFpbGFibGUuDQoNCklmIGFueW9u ZSBuZWVkcyB0byBjaGFuZ2UgdGhlIGRlZmF1bHQgYmVoYXZpb3IsIGEgcGF0Y2ggbmVlZCB0byBi ZSANCnN1Ym1pdHRlZCB0byBhZGQgdGhhdC4NCj4gICAqICAgYGAtZiBDT05GSUdfRklMRV9QQVRI YGA6IHRoZSBmdWxsIHBhdGggb2YgdGV4dC1iYXNlZCBmaWxlIGNvbnRhaW5pbmcgYWxsDQo+ICAg ICAgIGNvbmZpZ3VyYXRpb24gaXRlbXMgZm9yIHJ1bm5pbmcgdGhlIGFwcGxpY2F0aW9uIChTZWUg Q29uZmlndXJhdGlvbiBmaWxlDQo+ICAgICAgIHN5bnRheCBzZWN0aW9uIGJlbG93KS4gYGAtZiBD T05GSUdfRklMRV9QQVRIYGAgKiptdXN0KiogYmUgc3BlY2lmaWVkLg0KPiBkaWZmIC0tZ2l0IGEv ZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYyBiL2V4YW1wbGVzL2lwc2VjLXNlY2d3 L2lwc2VjLXNlY2d3LmMNCj4gaW5kZXggMWJjMGI1YjUwLi5mNWRiM2RhMGMgMTAwNjQ0DQo+IC0t LSBhL2V4YW1wbGVzL2lwc2VjLXNlY2d3L2lwc2VjLXNlY2d3LmMNCj4gKysrIGIvZXhhbXBsZXMv aXBzZWMtc2VjZ3cvaXBzZWMtc2VjZ3cuYw0KPiBAQCAtMTI0LDYgKzEyNCw4IEBAIHN0cnVjdCBl dGhhZGRyX2luZm8gZXRoYWRkcl90YmxbUlRFX01BWF9FVEhQT1JUU10gPSB7DQo+ICAgI2RlZmlu ZSBDTURfTElORV9PUFRfQ09ORklHCQkiY29uZmlnIg0KPiAgICNkZWZpbmUgQ01EX0xJTkVfT1BU X1NJTkdMRV9TQQkJInNpbmdsZS1zYSINCj4gICAjZGVmaW5lIENNRF9MSU5FX09QVF9DUllQVE9E RVZfTUFTSwkiY3J5cHRvZGV2X21hc2siDQo+ICsjZGVmaW5lIENNRF9MSU5FX09QVF9SWF9PRkZM T0FECQkicnhvZmZsb2FkIg0KPiArI2RlZmluZSBDTURfTElORV9PUFRfVFhfT0ZGTE9BRAkJInR4 b2ZmbG9hZCINCj4gICANCj4gICBlbnVtIHsNCj4gICAJLyogbG9uZyBvcHRpb25zIG1hcHBlZCB0 byBhIHNob3J0IG9wdGlvbiAqLw0KPiBAQCAtMTM1LDEyICsxMzcsMTYgQEAgZW51bSB7DQo+ICAg CUNNRF9MSU5FX09QVF9DT05GSUdfTlVNLA0KPiAgIAlDTURfTElORV9PUFRfU0lOR0xFX1NBX05V TSwNCj4gICAJQ01EX0xJTkVfT1BUX0NSWVBUT0RFVl9NQVNLX05VTSwNCj4gKwlDTURfTElORV9P UFRfUlhfT0ZGTE9BRF9OVU0sDQo+ICsJQ01EX0xJTkVfT1BUX1RYX09GRkxPQURfTlVNLA0KPiAg IH07DQo+ICAgDQo+ICAgc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb24gbGdvcHRzW10gPSB7DQo+ ICAgCXtDTURfTElORV9PUFRfQ09ORklHLCAxLCAwLCBDTURfTElORV9PUFRfQ09ORklHX05VTX0s DQo+ICAgCXtDTURfTElORV9PUFRfU0lOR0xFX1NBLCAxLCAwLCBDTURfTElORV9PUFRfU0lOR0xF X1NBX05VTX0sDQo+ICAgCXtDTURfTElORV9PUFRfQ1JZUFRPREVWX01BU0ssIDEsIDAsIENNRF9M SU5FX09QVF9DUllQVE9ERVZfTUFTS19OVU19LA0KPiArCXtDTURfTElORV9PUFRfUlhfT0ZGTE9B RCwgMSwgMCwgQ01EX0xJTkVfT1BUX1JYX09GRkxPQURfTlVNfSwNCj4gKwl7Q01EX0xJTkVfT1BU X1RYX09GRkxPQUQsIDEsIDAsIENNRF9MSU5FX09QVF9UWF9PRkZMT0FEX05VTX0sDQo+ICAgCXtO VUxMLCAwLCAwLCAwfQ0KPiAgIH07DQo+ICAgDQo+IEBAIC0xNTUsNiArMTYxLDEzIEBAIHN0YXRp YyB1aW50MzJfdCBzaW5nbGVfc2E7DQo+ICAgc3RhdGljIHVpbnQzMl90IHNpbmdsZV9zYV9pZHg7 DQo+ICAgc3RhdGljIHVpbnQzMl90IGZyYW1lX3NpemU7DQo+ICAgDQo+ICsvKg0KPiArICogUlgv VFggSFcgb2ZmbG9hZCBjYXBhYmlsaXRpZXMgdG8gZW5hYmxlL3VzZSBvbiBldGhlcm5ldCBwb3J0 cy4NCj4gKyAqIEJ5IGRlZmF1bHQgYWxsIGNhcGFiaWxpdGllcyBhcmUgZW5hYmxlZC4NCj4gKyAq Lw0KPiArc3RhdGljIHVpbnQ2NF90IGRldl9yeF9vZmZsb2FkID0gVUlOVDY0X01BWDsNCj4gK3N0 YXRpYyB1aW50NjRfdCBkZXZfdHhfb2ZmbG9hZCA9IFVJTlQ2NF9NQVg7DQo+ICsNCj4gICBzdHJ1 Y3QgbGNvcmVfcnhfcXVldWUgew0KPiAgIAl1aW50MTZfdCBwb3J0X2lkOw0KPiAgIAl1aW50OF90 IHF1ZXVlX2lkOw0KPiBAQCAtMjA4LDggKzIyMSw2IEBAIHN0YXRpYyBzdHJ1Y3QgcnRlX2V0aF9j b25mIHBvcnRfY29uZiA9IHsNCj4gICAJfSwNCj4gICAJLnR4bW9kZSA9IHsNCj4gICAJCS5tcV9t b2RlID0gRVRIX01RX1RYX05PTkUsDQo+IC0JCS5vZmZsb2FkcyA9IChERVZfVFhfT0ZGTE9BRF9J UFY0X0NLU1VNIHwNCj4gLQkJCSAgICAgREVWX1RYX09GRkxPQURfTVVMVElfU0VHUyksDQo+ICAg CX0sDQo+ICAgfTsNCj4gICANCj4gQEAgLTMxNSw3ICszMjYsOCBAQCBwcmVwYXJlX3RyYWZmaWMo c3RydWN0IHJ0ZV9tYnVmICoqcGt0cywgc3RydWN0IGlwc2VjX3RyYWZmaWMgKnQsDQo+ICAgfQ0K PiAgIA0KPiAgIHN0YXRpYyBpbmxpbmUgdm9pZA0KPiAtcHJlcGFyZV90eF9wa3Qoc3RydWN0IHJ0 ZV9tYnVmICpwa3QsIHVpbnQxNl90IHBvcnQpDQo+ICtwcmVwYXJlX3R4X3BrdChzdHJ1Y3QgcnRl X21idWYgKnBrdCwgdWludDE2X3QgcG9ydCwNCj4gKwkJY29uc3Qgc3RydWN0IGxjb3JlX2NvbmYg KnFjb25mKQ0KPiAgIHsNCj4gICAJc3RydWN0IGlwICppcDsNCj4gICAJc3RydWN0IGV0aGVyX2hk ciAqZXRoaGRyOw0KPiBAQCAtMzI1LDE0ICszMzcsMTkgQEAgcHJlcGFyZV90eF9wa3Qoc3RydWN0 IHJ0ZV9tYnVmICpwa3QsIHVpbnQxNl90IHBvcnQpDQo+ICAgCWV0aGhkciA9IChzdHJ1Y3QgZXRo ZXJfaGRyICopcnRlX3BrdG1idWZfcHJlcGVuZChwa3QsIEVUSEVSX0hEUl9MRU4pOw0KPiAgIA0K PiAgIAlpZiAoaXAtPmlwX3YgPT0gSVBWRVJTSU9OKSB7DQo+IC0JCXBrdC0+b2xfZmxhZ3MgfD0g UEtUX1RYX0lQX0NLU1VNIHwgUEtUX1RYX0lQVjQ7DQo+ICsJCXBrdC0+b2xfZmxhZ3MgfD0gcWNv bmYtPm91dGJvdW5kLmlwdjRfb2ZmbG9hZHM7DQo+ICAgCQlwa3QtPmwzX2xlbiA9IHNpemVvZihz dHJ1Y3QgaXApOw0KPiAgIAkJcGt0LT5sMl9sZW4gPSBFVEhFUl9IRFJfTEVOOw0KPiAgIA0KPiAg IAkJaXAtPmlwX3N1bSA9IDA7DQo+ICsNCj4gKwkJLyogY2FsY3VsYXRlIElQdjQgY2tzdW0gaW4g U1cgKi8NCj4gKwkJaWYgKChwa3QtPm9sX2ZsYWdzICYgUEtUX1RYX0lQX0NLU1VNKSA9PSAwKQ0K PiArCQkJaXAtPmlwX3N1bSA9IHJ0ZV9pcHY0X2Nrc3VtKChzdHJ1Y3QgaXB2NF9oZHIgKilpcCk7 DQo+ICsNCnNvbWV0aGluZyBpcyBub3QgY29ycmVjdCwgb24gbXkgaGFyZHdhcmUgSSBzdGlsbCBz ZWUgcnRlX2lwdjRfY2tzdW0gDQpnZXR0aW5nIGNhbGxlZC4NClRoaXMgcmVzdWx0IGluIGFyb3Vu ZCAyJSBkcm9wIGR1ZSB0byB0aGlzIHBhdGNoLg0KPiAgIAkJZXRoaGRyLT5ldGhlcl90eXBlID0g cnRlX2NwdV90b19iZV8xNihFVEhFUl9UWVBFX0lQdjQpOw0KPiAgIAl9IGVsc2Ugew0KPiAtCQlw a3QtPm9sX2ZsYWdzIHw9IFBLVF9UWF9JUFY2Ow0KPiArCQlwa3QtPm9sX2ZsYWdzIHw9IHFjb25m LT5vdXRib3VuZC5pcHY2X29mZmxvYWRzOw0KPiAgIAkJcGt0LT5sM19sZW4gPSBzaXplb2Yoc3Ry dWN0IGlwNl9oZHIpOw0KPiAgIAkJcGt0LT5sMl9sZW4gPSBFVEhFUl9IRFJfTEVOOw0KPiAgIA0K PiBAQCAtMzQ2LDE4ICszNjMsMTkgQEAgcHJlcGFyZV90eF9wa3Qoc3RydWN0IHJ0ZV9tYnVmICpw a3QsIHVpbnQxNl90IHBvcnQpDQo+ICAgfQ0KPiAgIA0KPiAgIHN0YXRpYyBpbmxpbmUgdm9pZA0K PiAtcHJlcGFyZV90eF9idXJzdChzdHJ1Y3QgcnRlX21idWYgKnBrdHNbXSwgdWludDE2X3QgbmJf cGt0cywgdWludDE2X3QgcG9ydCkNCj4gK3ByZXBhcmVfdHhfYnVyc3Qoc3RydWN0IHJ0ZV9tYnVm ICpwa3RzW10sIHVpbnQxNl90IG5iX3BrdHMsIHVpbnQxNl90IHBvcnQsDQo+ICsJCWNvbnN0IHN0 cnVjdCBsY29yZV9jb25mICpxY29uZikNCj4gICB7DQo+ICAgCWludDMyX3QgaTsNCj4gICAJY29u c3QgaW50MzJfdCBwcmVmZXRjaF9vZmZzZXQgPSAyOw0KPiAgIA0KPiAgIAlmb3IgKGkgPSAwOyBp IDwgKG5iX3BrdHMgLSBwcmVmZXRjaF9vZmZzZXQpOyBpKyspIHsNCj4gICAJCXJ0ZV9tYnVmX3By ZWZldGNoX3BhcnQyKHBrdHNbaSArIHByZWZldGNoX29mZnNldF0pOw0KPiAtCQlwcmVwYXJlX3R4 X3BrdChwa3RzW2ldLCBwb3J0KTsNCj4gKwkJcHJlcGFyZV90eF9wa3QocGt0c1tpXSwgcG9ydCwg cWNvbmYpOw0KPiAgIAl9DQo+ICAgCS8qIFByb2Nlc3MgbGVmdCBwYWNrZXRzICovDQo+ICAgCWZv ciAoOyBpIDwgbmJfcGt0czsgaSsrKQ0KPiAtCQlwcmVwYXJlX3R4X3BrdChwa3RzW2ldLCBwb3J0 KTsNCj4gKwkJcHJlcGFyZV90eF9wa3QocGt0c1tpXSwgcG9ydCwgcWNvbmYpOw0KPiAgIH0NCj4g ICANCj4gICAvKiBTZW5kIGJ1cnN0IG9mIHBhY2tldHMgb24gYW4gb3V0cHV0IGludGVyZmFjZSAq Lw0KPiBAQCAtMzcxLDcgKzM4OSw3IEBAIHNlbmRfYnVyc3Qoc3RydWN0IGxjb3JlX2NvbmYgKnFj b25mLCB1aW50MTZfdCBuLCB1aW50MTZfdCBwb3J0KQ0KPiAgIAlxdWV1ZWlkID0gcWNvbmYtPnR4 X3F1ZXVlX2lkW3BvcnRdOw0KPiAgIAltX3RhYmxlID0gKHN0cnVjdCBydGVfbWJ1ZiAqKilxY29u Zi0+dHhfbWJ1ZnNbcG9ydF0ubV90YWJsZTsNCj4gICANCj4gLQlwcmVwYXJlX3R4X2J1cnN0KG1f dGFibGUsIG4sIHBvcnQpOw0KPiArCXByZXBhcmVfdHhfYnVyc3QobV90YWJsZSwgbiwgcG9ydCwg cWNvbmYpOw0KPiAgIA0KPiAgIAlyZXQgPSBydGVfZXRoX3R4X2J1cnN0KHBvcnQsIHF1ZXVlaWQs IG1fdGFibGUsIG4pOw0KPiAgIAlpZiAodW5saWtlbHkocmV0IDwgbikpIHsNCj4gQEAgLTk1NCw2 ICs5NzIsOCBAQCBwcmludF91c2FnZShjb25zdCBjaGFyICpwcmduYW1lKQ0KPiAgIAkJIiAtLWNv bmZpZyAocG9ydCxxdWV1ZSxsY29yZSlbLChwb3J0LHF1ZXVlLGxjb3JlKV0iDQo+ICAgCQkiIFst LXNpbmdsZS1zYSBTQUlEWF0iDQo+ICAgCQkiIFstLWNyeXB0b2Rldl9tYXNrIE1BU0tdIg0KPiAr CQkiIFstLSIgQ01EX0xJTkVfT1BUX1JYX09GRkxPQUQgIiBSWF9PRkZMT0FEX01BU0tdIg0KPiAr CQkiIFstLSIgQ01EX0xJTkVfT1BUX1RYX09GRkxPQUQgIiBUWF9PRkZMT0FEX01BU0tdIg0KPiAg IAkJIlxuXG4iDQo+ICAgCQkiICAtcCBQT1JUTUFTSzogSGV4YWRlY2ltYWwgYml0bWFzayBvZiBw b3J0cyB0byBjb25maWd1cmVcbiINCj4gICAJCSIgIC1QIDogRW5hYmxlIHByb21pc2N1b3VzIG1v ZGVcbiINCj4gQEAgLTk2NiwxMCArOTg2LDMxIEBAIHByaW50X3VzYWdlKGNvbnN0IGNoYXIgKnBy Z25hbWUpDQo+ICAgCQkiICAgICAgICAgICAgICAgICAgICAgYnlwYXNzaW5nIHRoZSBTUFxuIg0K PiAgIAkJIiAgLS1jcnlwdG9kZXZfbWFzayBNQVNLOiBIZXhhZGVjaW1hbCBiaXRtYXNrIG9mIHRo ZSBjcnlwdG9cbiINCj4gICAJCSIgICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlcyB0byBj b25maWd1cmVcbiINCj4gKwkJIiAgLS0iIENNRF9MSU5FX09QVF9SWF9PRkZMT0FEDQo+ICsJCSI6 IGJpdG1hc2sgb2YgdGhlIFJYIEhXIG9mZmxvYWQgY2FwYWJpbGl0aWVzIHRvIGVuYWJsZS91c2Vc biINCj4gKwkJIiAgICAgICAgICAgICAgICAgICAgICAgICAoREVWX1JYX09GRkxPQURfKilcbiIN Cj4gKwkJIiAgLS0iIENNRF9MSU5FX09QVF9UWF9PRkZMT0FEDQo+ICsJCSI6IGJpdG1hc2sgb2Yg dGhlIFRYIEhXIG9mZmxvYWQgY2FwYWJpbGl0aWVzIHRvIGVuYWJsZS91c2VcbiINCj4gKwkJIiAg ICAgICAgICAgICAgICAgICAgICAgICAoREVWX1RYX09GRkxPQURfKilcbiINCj4gICAJCSJcbiIs DQo+ICAgCQlwcmduYW1lKTsNCj4gICB9DQo+ICAgDQo+ICtzdGF0aWMgaW50DQo+ICtwYXJzZV9t YXNrKGNvbnN0IGNoYXIgKnN0ciwgdWludDY0X3QgKnZhbCkNCj4gK3sNCj4gKwljaGFyICplbmQ7 DQo+ICsJdW5zaWduZWQgbG9uZyB0Ow0KPiArDQo+ICsJZXJybm8gPSAwOw0KPiArCXQgPSBzdHJ0 b3VsKHN0ciwgJmVuZCwgMCk7DQo+ICsJaWYgKGVycm5vICE9IDAgfHwgZW5kWzBdICE9IDApDQo+ ICsJCXJldHVybiAtRUlOVkFMOw0KPiArDQo+ICsJKnZhbCA9IHQ7DQo+ICsJcmV0dXJuIDA7DQo+ ICt9DQo+ICsNCj4gICBzdGF0aWMgaW50MzJfdA0KPiAgIHBhcnNlX3BvcnRtYXNrKGNvbnN0IGNo YXIgKnBvcnRtYXNrKQ0KPiAgIHsNCj4gQEAgLTExNTYsNiArMTE5NywyNCBAQCBwYXJzZV9hcmdz KGludDMyX3QgYXJnYywgY2hhciAqKmFyZ3YpDQo+ICAgCQkJLyogZWxzZSAqLw0KPiAgIAkJCWVu YWJsZWRfY3J5cHRvZGV2X21hc2sgPSByZXQ7DQo+ICAgCQkJYnJlYWs7DQo+ICsJCWNhc2UgQ01E X0xJTkVfT1BUX1JYX09GRkxPQURfTlVNOg0KPiArCQkJcmV0ID0gcGFyc2VfbWFzayhvcHRhcmcs ICZkZXZfcnhfb2ZmbG9hZCk7DQo+ICsJCQlpZiAocmV0ICE9IDApIHsNCj4gKwkJCQlwcmludGYo IkludmFsaWQgYXJndW1lbnQgZm9yIFwnJXNcJzogJXNcbiIsDQo+ICsJCQkJCUNNRF9MSU5FX09Q VF9SWF9PRkZMT0FELCBvcHRhcmcpOw0KPiArCQkJCXByaW50X3VzYWdlKHByZ25hbWUpOw0KPiAr CQkJCXJldHVybiAtMTsNCj4gKwkJCX0NCj4gKwkJCWJyZWFrOw0KPiArCQljYXNlIENNRF9MSU5F X09QVF9UWF9PRkZMT0FEX05VTToNCj4gKwkJCXJldCA9IHBhcnNlX21hc2sob3B0YXJnLCAmZGV2 X3R4X29mZmxvYWQpOw0KPiArCQkJaWYgKHJldCAhPSAwKSB7DQo+ICsJCQkJcHJpbnRmKCJJbnZh bGlkIGFyZ3VtZW50IGZvciBcJyVzXCc6ICVzXG4iLA0KPiArCQkJCQlDTURfTElORV9PUFRfVFhf T0ZGTE9BRCwgb3B0YXJnKTsNCj4gKwkJCQlwcmludF91c2FnZShwcmduYW1lKTsNCj4gKwkJCQly ZXR1cm4gLTE7DQo+ICsJCQl9DQo+ICsJCQlicmVhazsNCj4gICAJCWRlZmF1bHQ6DQo+ICAgCQkJ cHJpbnRfdXNhZ2UocHJnbmFtZSk7DQo+ICAgCQkJcmV0dXJuIC0xOw0KPiBAQCAtMTU0Myw3ICsx NjAyLDcgQEAgY3J5cHRvZGV2c19pbml0KHZvaWQpDQo+ICAgfQ0KPiAgIA0KPiAgIHN0YXRpYyB2 b2lkDQo+IC1wb3J0X2luaXQodWludDE2X3QgcG9ydGlkKQ0KPiArcG9ydF9pbml0KHVpbnQxNl90 IHBvcnRpZCwgdWludDY0X3QgcmVxX3J4X29mZmxvYWRzLCB1aW50NjRfdCByZXFfdHhfb2ZmbG9h ZHMpDQo+ICAgew0KPiAgIAlzdHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyBkZXZfaW5mbzsNCj4gICAJ c3RydWN0IHJ0ZV9ldGhfdHhjb25mICp0eGNvbmY7DQo+IEBAIC0xNTU2LDYgKzE2MTUsMTAgQEAg cG9ydF9pbml0KHVpbnQxNl90IHBvcnRpZCkNCj4gICANCj4gICAJcnRlX2V0aF9kZXZfaW5mb19n ZXQocG9ydGlkLCAmZGV2X2luZm8pOw0KPiAgIA0KPiArCS8qIGxpbWl0IGFsbG93ZWQgSFcgb2Zm bG9hZnMsIGFzIHVzZXIgcmVxdWVzdGVkICovDQo+ICsJZGV2X2luZm8ucnhfb2ZmbG9hZF9jYXBh ICY9IGRldl9yeF9vZmZsb2FkOw0KPiArCWRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmPSBkZXZf dHhfb2ZmbG9hZDsNCj4gKw0KPiAgIAlwcmludGYoIkNvbmZpZ3VyaW5nIGRldmljZSBwb3J0ICV1 OlxuIiwgcG9ydGlkKTsNCj4gICANCj4gICAJcnRlX2V0aF9tYWNhZGRyX2dldChwb3J0aWQsICZl dGhhZGRyKTsNCj4gQEAgLTE1ODQsMTQgKzE2NDcsMzggQEAgcG9ydF9pbml0KHVpbnQxNl90IHBv cnRpZCkNCj4gICAJCWxvY2FsX3BvcnRfY29uZi5yeG1vZGUub2ZmbG9hZHMgfD0gREVWX1JYX09G RkxPQURfSlVNQk9fRlJBTUU7DQo+ICAgCX0NCj4gICANCj4gLQlpZiAoZGV2X2luZm8ucnhfb2Zm bG9hZF9jYXBhICYgREVWX1JYX09GRkxPQURfU0VDVVJJVFkpDQo+IC0JCWxvY2FsX3BvcnRfY29u Zi5yeG1vZGUub2ZmbG9hZHMgfD0gREVWX1JYX09GRkxPQURfU0VDVVJJVFk7DQo+IC0JaWYgKGRl dl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIERFVl9UWF9PRkZMT0FEX1NFQ1VSSVRZKQ0KPiAtCQls b2NhbF9wb3J0X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX1NFQ1VSSVRZ Ow0KPiArCWxvY2FsX3BvcnRfY29uZi5yeG1vZGUub2ZmbG9hZHMgfD0gcmVxX3J4X29mZmxvYWRz Ow0KPiArCWxvY2FsX3BvcnRfY29uZi50eG1vZGUub2ZmbG9hZHMgfD0gcmVxX3R4X29mZmxvYWRz Ow0KPiArDQo+ICsJLyogQ2hlY2sgdGhhdCBhbGwgcmVxdWlyZWQgY2FwYWJpbGl0aWVzIGFyZSBz dXBwb3J0ZWQgKi8NCj4gKwlpZiAoKGxvY2FsX3BvcnRfY29uZi5yeG1vZGUub2ZmbG9hZHMgJiBk ZXZfaW5mby5yeF9vZmZsb2FkX2NhcGEpICE9DQo+ICsJCQlsb2NhbF9wb3J0X2NvbmYucnhtb2Rl Lm9mZmxvYWRzKQ0KPiArCQlydGVfZXhpdChFWElUX0ZBSUxVUkUsDQo+ICsJCQkiRXJyb3I6IHBv cnQgJXUgcmVxdWlyZWQgUlggb2ZmbG9hZHM6IDB4JSIgUFJJeDY0DQo+ICsJCQkiLCBhdmFpYWxi ZSBSWCBvZmZsb2FkczogMHglIiBQUkl4NjQgIlxuIiwNCj4gKwkJCXBvcnRpZCwgbG9jYWxfcG9y dF9jb25mLnJ4bW9kZS5vZmZsb2FkcywNCj4gKwkJCWRldl9pbmZvLnJ4X29mZmxvYWRfY2FwYSk7 DQo+ICsNCj4gKwlpZiAoKGxvY2FsX3BvcnRfY29uZi50eG1vZGUub2ZmbG9hZHMgJiBkZXZfaW5m by50eF9vZmZsb2FkX2NhcGEpICE9DQo+ICsJCQlsb2NhbF9wb3J0X2NvbmYudHhtb2RlLm9mZmxv YWRzKQ0KPiArCQlydGVfZXhpdChFWElUX0ZBSUxVUkUsDQo+ICsJCQkiRXJyb3I6IHBvcnQgJXUg cmVxdWlyZWQgVFggb2ZmbG9hZHM6IDB4JSIgUFJJeDY0DQo+ICsJCQkiLCBhdmFpYWxiZSBUWCBv ZmZsb2FkczogMHglIiBQUkl4NjQgIlxuIiwNCj4gKwkJCXBvcnRpZCwgbG9jYWxfcG9ydF9jb25m LnR4bW9kZS5vZmZsb2FkcywNCj4gKwkJCWRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSk7DQo+ICsN Cj4gICAJaWYgKGRldl9pbmZvLnR4X29mZmxvYWRfY2FwYSAmIERFVl9UWF9PRkZMT0FEX01CVUZf RkFTVF9GUkVFKQ0KPiAgIAkJbG9jYWxfcG9ydF9jb25mLnR4bW9kZS5vZmZsb2FkcyB8PQ0KPiAg IAkJCURFVl9UWF9PRkZMT0FEX01CVUZfRkFTVF9GUkVFOw0KPiAgIA0KPiArCWlmIChkZXZfaW5m by50eF9vZmZsb2FkX2NhcGEgJiBERVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNKQ0KPiArCQlsb2Nh bF9wb3J0X2NvbmYudHhtb2RlLm9mZmxvYWRzIHw9IERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU07 DQo+ICsNCj4gKwlwcmludGYoInBvcnQgJXUgY29uZmlndXJuZyByeF9vZmZsb2Fkcz0weCUiIFBS SXg2NA0KPiArCQkiLCB0eF9vZmZsb2Fkcz0weCUiIFBSSXg2NCAiXG4iLA0KPiArCQlwb3J0aWQs IGxvY2FsX3BvcnRfY29uZi5yeG1vZGUub2ZmbG9hZHMsDQo+ICsJCWxvY2FsX3BvcnRfY29uZi50 eG1vZGUub2ZmbG9hZHMpOw0KPiArDQo+ICAgCWxvY2FsX3BvcnRfY29uZi5yeF9hZHZfY29uZi5y c3NfY29uZi5yc3NfaGYgJj0NCj4gICAJCWRldl9pbmZvLmZsb3dfdHlwZV9yc3Nfb2ZmbG9hZHM7 DQo+ICAgCWlmIChsb2NhbF9wb3J0X2NvbmYucnhfYWR2X2NvbmYucnNzX2NvbmYucnNzX2hmICE9 DQo+IEBAIC0xNjM5LDYgKzE3MjYsMTMgQEAgcG9ydF9pbml0KHVpbnQxNl90IHBvcnRpZCkNCj4g ICANCj4gICAJCXFjb25mID0gJmxjb3JlX2NvbmZbbGNvcmVfaWRdOw0KPiAgIAkJcWNvbmYtPnR4 X3F1ZXVlX2lkW3BvcnRpZF0gPSB0eF9xdWV1ZWlkOw0KPiArDQo+ICsJCS8qIFByZS1wb3B1bGF0 ZSBwa3Qgb2ZmbG9hZHMgYmFzZWQgb24gY2FwYWJpbGl0aWVzICovDQo+ICsJCXFjb25mLT5vdXRi b3VuZC5pcHY0X29mZmxvYWRzID0gUEtUX1RYX0lQVjQ7DQo+ICsJCXFjb25mLT5vdXRib3VuZC5p cHY2X29mZmxvYWRzID0gUEtUX1RYX0lQVjY7DQo+ICsJCWlmIChyZXFfdHhfb2ZmbG9hZHMgJiBE RVZfVFhfT0ZGTE9BRF9JUFY0X0NLU1VNKQ0KPiArCQkJcWNvbmYtPm91dGJvdW5kLmlwdjRfb2Zm bG9hZHMgfD0gUEtUX1RYX0lQX0NLU1VNOw0KSSBiZWxpZXZlIHRoaXMgaXMgdGhlIGlzc3VlLCB0 aGlzIHNob3VsZCBub3QgYmUgcmVxX3R4X29mZmxvYWQuIA0KcmVxX3R4X29mZmxvYWRzIGNhbm5v dCBoYXZlIERFVl9UWF9PRkZMT0FEX0lQVjRfQ0tTVU0gc2V0IGZvciBsb29rYXNpZGUgDQptb2Rl Lg0KPiArDQo+ICAgCQl0eF9xdWV1ZWlkKys7DQo+ICAgDQo+ICAgCQkvKiBpbml0IFJYIHF1ZXVl cyAqLw0KPiBAQCAtMTc0OSw2ICsxODQzLDcgQEAgbWFpbihpbnQzMl90IGFyZ2MsIGNoYXIgKiph cmd2KQ0KPiAgIAl1aW50MzJfdCBsY29yZV9pZDsNCj4gICAJdWludDhfdCBzb2NrZXRfaWQ7DQo+ ICAgCXVpbnQxNl90IHBvcnRpZDsNCj4gKwl1aW50NjRfdCByZXFfcnhfb2ZmbG9hZHMsIHJlcV90 eF9vZmZsb2FkczsNCj4gICANCj4gICAJLyogaW5pdCBFQUwgKi8NCj4gICAJcmV0ID0gcnRlX2Vh bF9pbml0KGFyZ2MsIGFyZ3YpOw0KPiBAQCAtMTgwNCw3ICsxODk5LDggQEAgbWFpbihpbnQzMl90 IGFyZ2MsIGNoYXIgKiphcmd2KQ0KPiAgIAkJaWYgKChlbmFibGVkX3BvcnRfbWFzayAmICgxIDw8 IHBvcnRpZCkpID09IDApDQo+ICAgCQkJY29udGludWU7DQo+ICAgDQo+IC0JCXBvcnRfaW5pdChw b3J0aWQpOw0KPiArCQlzYV9jaGVja19vZmZsb2Fkcyhwb3J0aWQsICZyZXFfcnhfb2ZmbG9hZHMs ICZyZXFfdHhfb2ZmbG9hZHMpOw0KPiArCQlwb3J0X2luaXQocG9ydGlkLCByZXFfcnhfb2ZmbG9h ZHMsIHJlcV90eF9vZmZsb2Fkcyk7DQo+ICAgCX0NCj4gICANCj4gICAJY3J5cHRvZGV2c19pbml0 KCk7DQo+IGRpZmYgLS1naXQgYS9leGFtcGxlcy9pcHNlYy1zZWNndy9pcHNlYy5oIGIvZXhhbXBs ZXMvaXBzZWMtc2VjZ3cvaXBzZWMuaA0KPiBpbmRleCBjOTk4YzgwNzYuLjliMTU4NmY1MiAxMDA2 NDQNCj4gLS0tIGEvZXhhbXBsZXMvaXBzZWMtc2VjZ3cvaXBzZWMuaA0KPiArKysgYi9leGFtcGxl cy9pcHNlYy1zZWNndy9pcHNlYy5oDQo+IEBAIC0xNDYsNiArMTQ2LDggQEAgc3RydWN0IGlwc2Vj X2N0eCB7DQo+ICAgCXN0cnVjdCBydGVfbWVtcG9vbCAqc2Vzc2lvbl9wb29sOw0KPiAgIAlzdHJ1 Y3QgcnRlX21idWYgKm9sX3BrdHNbTUFYX1BLVF9CVVJTVF0gX19ydGVfYWxpZ25lZChzaXplb2Yo dm9pZCAqKSk7DQo+ICAgCXVpbnQxNl90IG9sX3BrdHNfY250Ow0KPiArCXVpbnQ2NF90IGlwdjRf b2ZmbG9hZHM7DQo+ICsJdWludDY0X3QgaXB2Nl9vZmZsb2FkczsNCj4gICB9Ow0KPiAgIA0KPiAg IHN0cnVjdCBjZGV2X2tleSB7DQo+IEBAIC0yMzksNCArMjQxLDggQEAgc2FfaW5pdChzdHJ1Y3Qg c29ja2V0X2N0eCAqY3R4LCBpbnQzMl90IHNvY2tldF9pZCk7DQo+ICAgdm9pZA0KPiAgIHJ0X2lu aXQoc3RydWN0IHNvY2tldF9jdHggKmN0eCwgaW50MzJfdCBzb2NrZXRfaWQpOw0KPiAgIA0KPiAr aW50DQo+ICtzYV9jaGVja19vZmZsb2Fkcyh1aW50MTZfdCBwb3J0X2lkLCB1aW50NjRfdCAqcnhf b2ZmbG9hZHMsDQo+ICsJCXVpbnQ2NF90ICp0eF9vZmZsb2Fkcyk7DQo+ICsNCj4gICAjZW5kaWYg LyogX19JUFNFQ19IX18gKi8NCj4gZGlmZiAtLWdpdCBhL2V4YW1wbGVzL2lwc2VjLXNlY2d3L3Nh LmMgYi9leGFtcGxlcy9pcHNlYy1zZWNndy9zYS5jDQo+IGluZGV4IGQyZDM1NTBhNC4uZjYyNzFi YzYwIDEwMDY0NA0KPiAtLS0gYS9leGFtcGxlcy9pcHNlYy1zZWNndy9zYS5jDQo+ICsrKyBiL2V4 YW1wbGVzL2lwc2VjLXNlY2d3L3NhLmMNCj4gQEAgLTEwMTcsMyArMTAxNywzOCBAQCBvdXRib3Vu ZF9zYV9sb29rdXAoc3RydWN0IHNhX2N0eCAqc2FfY3R4LCB1aW50MzJfdCBzYV9pZHhbXSwNCj4g ICAJZm9yIChpID0gMDsgaSA8IG5iX3BrdHM7IGkrKykNCj4gICAJCXNhW2ldID0gJnNhX2N0eC0+ c2Fbc2FfaWR4W2ldXTsNCj4gICB9DQo+ICsNCj4gKy8qDQo+ICsgKiBTZWxlY3QgSFcgb2ZmbG9h ZHMgdG8gYmUgdXNlZC4NCj4gKyAqLw0KPiAraW50DQo+ICtzYV9jaGVja19vZmZsb2Fkcyh1aW50 MTZfdCBwb3J0X2lkLCB1aW50NjRfdCAqcnhfb2ZmbG9hZHMsDQo+ICsJCXVpbnQ2NF90ICp0eF9v ZmZsb2FkcykNCj4gK3sNCj4gKwlzdHJ1Y3QgaXBzZWNfc2EgKnJ1bGU7DQo+ICsJdWludDMyX3Qg aWR4X3NhOw0KPiArDQo+ICsJKnJ4X29mZmxvYWRzID0gMDsNCj4gKwkqdHhfb2ZmbG9hZHMgPSAw Ow0KPiArDQo+ICsJLyogQ2hlY2sgZm9yIGluYm91bmQgcnVsZXMgdGhhdCB1c2Ugb2ZmbG9hZHMg YW5kIHVzZSB0aGlzIHBvcnQgKi8NCj4gKwlmb3IgKGlkeF9zYSA9IDA7IGlkeF9zYSA8IG5iX3Nh X2luOyBpZHhfc2ErKykgew0KPiArCQlydWxlID0gJnNhX2luW2lkeF9zYV07DQo+ICsJCWlmICgo cnVsZS0+dHlwZSA9PSBSVEVfU0VDVVJJVFlfQUNUSU9OX1RZUEVfSU5MSU5FX0NSWVBUTyB8fA0K PiArCQkJCXJ1bGUtPnR5cGUgPT0NCj4gKwkJCQlSVEVfU0VDVVJJVFlfQUNUSU9OX1RZUEVfSU5M SU5FX1BST1RPQ09MKQ0KPiArCQkJCSYmIHJ1bGUtPnBvcnRpZCA9PSBwb3J0X2lkKQ0KPiArCQkJ KnJ4X29mZmxvYWRzIHw9IERFVl9SWF9PRkZMT0FEX1NFQ1VSSVRZOw0KPiArCX0NCj4gKw0KPiAr CS8qIENoZWNrIGZvciBvdXRib3VuZCBydWxlcyB0aGF0IHVzZSBvZmZsb2FkcyBhbmQgdXNlIHRo aXMgcG9ydCAqLw0KPiArCWZvciAoaWR4X3NhID0gMDsgaWR4X3NhIDwgbmJfc2Ffb3V0OyBpZHhf c2ErKykgew0KPiArCQlydWxlID0gJnNhX291dFtpZHhfc2FdOw0KPiArCQlpZiAoKHJ1bGUtPnR5 cGUgPT0gUlRFX1NFQ1VSSVRZX0FDVElPTl9UWVBFX0lOTElORV9DUllQVE8gfHwNCj4gKwkJCQly dWxlLT50eXBlID09DQo+ICsJCQkJUlRFX1NFQ1VSSVRZX0FDVElPTl9UWVBFX0lOTElORV9QUk9U T0NPTCkNCj4gKwkJCQkmJiBydWxlLT5wb3J0aWQgPT0gcG9ydF9pZCkNCj4gKwkJCSp0eF9vZmZs b2FkcyB8PSBERVZfVFhfT0ZGTE9BRF9TRUNVUklUWTsNCj4gKwl9DQo+ICsJcmV0dXJuIDA7DQo+ ICt9DQoNCg==