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 0C6EEA0613 for ; Mon, 23 Sep 2019 14:04:22 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C5A2F1BECE; Mon, 23 Sep 2019 14:04:21 +0200 (CEST) Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30047.outbound.protection.outlook.com [40.107.3.47]) by dpdk.org (Postfix) with ESMTP id D7C001BECD for ; Mon, 23 Sep 2019 14:04:19 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fa+nT+DbbUxWDBbFhSiBHQMCdoBNqvPkTQLyTOww11TwN5qc62HfK7/tX4S2AnBcIJCz+AbGVT5SUkD+KQUNbSxzCW2UMQhq18t9ORKQaxWWF5yjfa51T6hWa9wyYnUI6ZoLRRV6soL3u63zmxxNThDwJl5YjcCrO4EeYBvdmijOTa2vS51uTpgzVI34Wv4bgqC3bSqDj2BYPu5Bhuc0uAVZhlbO1SyoJXyGcLcKZmNoN6k5G7LNKgTETY9Rlu5gQliB3KENzq2LFL0dQN4x3I/2xj5kkzR+GJx6z+vdCC06hbMjfqd3qSIncyjfhNyu3NOYk9T41oK/24rQLEm9gw== 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=FHGi7lT26zMQ5xo9O6CIKOHG6dF1e5+GHWzPcyf7394=; b=B70dY+PZroR32dhm4BcP+8+SohBKlkQun7HmX0CqqIdGfjFghRCcmMabCMa8iS2mtxQIJ6E36Fo6yibFGRkjNll744JLC15JQuZ1hpS/709VVuZt9uzp/Pk5TZiE3qs0aD7iPI1Ea358eBY9r3W9dPS2lwHDm+pig05AH5uHcc9YVJeI+RlzOtqS1OgEyNNqrv8+00HCiJ6t7/1c/bPloKF3BlX30oU7EQRKE8qKItnevufzyoWarfWiogoNIZPQukhuqdbNwlUQf5/3nEKwXAqcDCnZ2M9twC/P9arc01uymufW3xq5g7bCIyAYnt2h3apXKxsBeF5GXiZ9UwwheQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=FHGi7lT26zMQ5xo9O6CIKOHG6dF1e5+GHWzPcyf7394=; b=bEf1Wjwsr99Cgkkb4j7JuXMHRkkLPlAVCPDP1H3EhsWVBhfX0Suc9mg0Oph7Sfkomb1tzkXy5QQcLgkqj5DNsuOS2FdnzwbeTQVslO7XfFQiLnLa/77GfQQLfRZHZIombJFZJRsZLM3KFZJ+ROxh3wcSy6bGbKxdDJ6Zt4zKCmg= Received: from AM6PR05MB6567.eurprd05.prod.outlook.com (20.179.6.215) by AM6PR05MB5142.eurprd05.prod.outlook.com (20.177.197.210) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2284.26; Mon, 23 Sep 2019 12:04:18 +0000 Received: from AM6PR05MB6567.eurprd05.prod.outlook.com ([fe80::e02b:45ce:8dec:6027]) by AM6PR05MB6567.eurprd05.prod.outlook.com ([fe80::e02b:45ce:8dec:6027%6]) with mapi id 15.20.2284.023; Mon, 23 Sep 2019 12:04:18 +0000 From: Jack Min To: Wenzhuo Lu , Jingjing Wu , Bernard Iremonger , Adrien Mazarguil , John McNamara , Marko Kovacevic , Ori Kam , Thomas Monjalon , Asaf Penso CC: "dev@dpdk.org" , Ori Kam Thread-Topic: [dpdk-dev] [PATCH] app/testpmd: support multiple raw encap/decap Thread-Index: AQHVbHAXeSX8dmJQ9kONIDOBny/nzac5NRSA Date: Mon, 23 Sep 2019 12:04:17 +0000 Message-ID: <20190923120357.id6bbuo5aefktbv7@mellanox.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HK0PR01CA0056.apcprd01.prod.exchangelabs.com (2603:1096:203:a6::20) To AM6PR05MB6567.eurprd05.prod.outlook.com (2603:10a6:20b:bc::23) authentication-results: spf=none (sender IP is ) smtp.mailfrom=jackmin@mellanox.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [2408:8025:34b:b6d0:c9e1:5a7a:56ee:9366] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1778e5af-7604-4d37-f310-08d7401e28d4 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600167)(711020)(4605104)(1401327)(4618075)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7193020); SRVR:AM6PR05MB5142; x-ms-traffictypediagnostic: AM6PR05MB5142:|AM6PR05MB5142: x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr x-ms-exchange-transport-forked: True x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:5236; x-forefront-prvs: 0169092318 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(4636009)(396003)(39860400002)(366004)(346002)(376002)(136003)(189003)(199004)(5660300002)(2906002)(2616005)(11346002)(46003)(446003)(6636002)(99286004)(229853002)(7736002)(86362001)(305945005)(25786009)(6116002)(30864003)(66946007)(76176011)(4326008)(71190400001)(66476007)(66556008)(64756008)(66446008)(71200400001)(8936002)(52116002)(14444005)(6246003)(107886003)(476003)(14454004)(102836004)(256004)(316002)(110136005)(8676002)(6512007)(54906003)(486006)(6506007)(386003)(36756003)(1076003)(81156014)(81166006)(6436002)(6486002)(186003)(478600001)(579004)(505234006); DIR:OUT; SFP:1101; SCL:1; SRVR:AM6PR05MB5142; H:AM6PR05MB6567.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: ZHj/ir2goNAdde6f9COAvaC3z9Jlbt8jGFOk3/Sftr5J+fa3TPocXfJQwZkpC3hfjF8QNhri5e+4Fv49kUH0WshrGS2DWhE0yRo3ceCiUijcsXQRku22A5nsruisnAnVD5SNXWEebdmHf7le0vjwt5ieUnBkwD0rszHalV+J40ZJeoOzeFh/n4ts8F/heWUGFZStYewJY6Ihe0iNhHb4v2h9s+TFRgOeRv9P4Cj+VpHZ2zrJU4parYGzcftKkvR+OZxg6JmIJVrmaQPB94PiPIXFd2pJGjj0tGN56aJ5ayFpU8dMYhpwNl7s1M0a+OzkgHjVifcwh4x2gUeUhtxBX3NGyhPofFkbUXMuiQrDqUtAjVrgWqPXaiutg37NHj1yWqUC6+cMoyPkgVeF2orEheysxu/gQaQZYIHIoZDifjA= Content-Type: text/plain; charset="utf-8" Content-ID: Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1778e5af-7604-4d37-f310-08d7401e28d4 X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Sep 2019 12:04:17.9872 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 9eMJqJyjRJ8sTC7JcJw+h+3E8ciYcD72u0JfRx5FPlcO7Ijq+A4EckgvudFyEJCq6aT4gJb1x7rYxyk3XUPm5Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM6PR05MB5142 Subject: Re: [dpdk-dev] [PATCH] app/testpmd: support multiple raw encap/decap 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" SGV5LA0KDQpBbnlvbmUgaGFzIGFueSBjb21tZW50cyBvbiB0aGlzIHBhdGNoPw0KDQotSmFjaw0K DQpPbiBNb24sIDE5LTA5LTE2LCAxNzoyMSwgWGlhb3l1IE1pbiB3cm90ZToNCj4gSW4gc29tZSBz Y2VuYXJpb3MsIHRoZSByYXdfZW5jYXAvcmF3X2RlY2FwIGFjdGlvbnMgY291bGQgYmUgbXVsdGlw bGUgaW4NCj4gb25lIHNpbmdsZSBmbG93IChlLGcuIGhpcmVwaW4gZmxvdyk6DQo+IA0KPiAgIC4u LiBhY3Rpb25zIHJhd19kZWNhcCAvIHJhd19lbmNhcCAvIHJhd19kZWNhcCAvIHJhd19lbmNhcCAv IC4uLg0KPiANCj4gVGhpcyByZXF1aXJlcyB0aGUgdGVzdHBtZCBzdXBwb3J0cyBtdWx0aXBsZSBy YXdfZW5jYXAvcmF3X2RlY2FwIGRhdGENCj4gc2V0dGluZ3MgYXMgd2VsbC4NCj4gDQo+IFdpdGgg dGhlIG11bHRpcGxlIHJhd19lbmNhcC9yYXdfZGVjYXAgc2V0dGluZ3MsIHRoZSB0ZXN0cG1kIGNv bW1hbmRzIOKAkw0KPiBzZXQgcmF3X2VuY2FwIC8gc2V0IHJhd19kZWNhcCB3aWxsIGJlY29tZToN Cj4gDQo+ICAgc2V0IHJhd19lbmNhcCA8aW5kZXg+IDxpdGVtIHBhdHRlcm4+DQo+ICAgc2V0IHJh d19kZWNhcCA8aW5kZXg+IDxpdGVtIHBhdHRlcm4+DQo+IA0KPiBBbmQgdGhlIGFjdGlvbnMg4oCT IHJhd19lbmNhcC9yYXdfZGVjYXAgYWxzbyBjb3VsZCBvcHRpb25hbGx5IGNob29zZSB3aGljaA0K PiBnbG9iYWwgcmF3X2VuY2FwL3Jhd19kZWNhcCBjb25mcyB0byBiZSB1c2VkIGJ5IGluZGV4Og0K PiANCj4gICAuLi4gYWN0aW9ucyByYXdfZGVjYXAgaW5kZXggMSAvIHJhd19lbmNhcCBpbmRleCAy IC8gLi4uDQo+IA0KPiBJZiB0aGVyZSBpcyBubyBgaW5kZXhgIHNwZWNpZmllZCwgdGhlIGRlZmF1 bHQgaW5kZXggaXMgMDoNCj4gDQo+ICAgc2V0IHJhd19lbmNhcCA8aXRlbSBwYXR0ZXJuPg0KPiAg IC4uLiBhY3Rpb25zIHJhd19kZWNhcCAvIHJhd19lbmNhcCAvIC4uLg0KPiANCj4gd2hpY2ggd2ls bCB1c2UgcmF3X2VuY2FwIGluZGV4IDAuDQo+IA0KPiBJbiBhZGRpdGlvbiB0byB0aGUgc2V0IHJh d19lbmNhcC9yYXdfZGVjYXAgY29tbWFuZHMsDQo+IA0KPiAgIHNob3cgPHJhd19lbmNhcC9yYXdf ZGVjYXA+IDxpbmRleD4NCj4gICBzaG93IDxyYXdfZW5jYXAvcmF3X2RlY2FwPiBhbGwNCj4gDQo+ IGFyZSBhbHNvIGludHJvZHVjZWQgaW50byBpbiBvcmRlciB0byBjaGVjayB3aGljaCBpbmRleCBp cyBzZXQgYW5kIHRvDQo+IHdoYXQuDQo+IA0KPiBTaWduZWQtb2ZmLWJ5OiBYaWFveXUgTWluIDxq YWNrbWluQG1lbGxhbm94LmNvbT4NCj4gLS0tDQo+ICBhcHAvdGVzdC1wbWQvY21kbGluZS5jICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICsNCj4gIGFwcC90ZXN0LXBtZC9jbWRsaW5lX2Zsb3cu YyAgICAgICAgICAgICAgICAgfCAzMTAgKysrKysrKysrKysrKysrKysrLS0NCj4gIGFwcC90ZXN0 LXBtZC90ZXN0cG1kLmggICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKw0KPiAgZG9jL2d1aWRl cy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdCB8ICA1NyArKystDQo+ICA0IGZpbGVz IGNoYW5nZWQsIDMzMSBpbnNlcnRpb25zKCspLCA0MCBkZWxldGlvbnMoLSkNCj4gDQo+IGRpZmYg LS1naXQgYS9hcHAvdGVzdC1wbWQvY21kbGluZS5jIGIvYXBwL3Rlc3QtcG1kL2NtZGxpbmUuYw0K PiBpbmRleCBiNmJjMzRiNGQyLi45YTdhYWU4YjBlIDEwMDY0NA0KPiAtLS0gYS9hcHAvdGVzdC1w bWQvY21kbGluZS5jDQo+ICsrKyBiL2FwcC90ZXN0LXBtZC9jbWRsaW5lLmMNCj4gQEAgLTE5MDE3 LDYgKzE5MDE3LDggQEAgY21kbGluZV9wYXJzZV9jdHhfdCBtYWluX2N0eFtdID0gew0KPiAgCShj bWRsaW5lX3BhcnNlX2luc3RfdCAqKSZjbWRfY29uZmlnX3R4X21ldGFkYXRhX3NwZWNpZmljLA0K PiAgCShjbWRsaW5lX3BhcnNlX2luc3RfdCAqKSZjbWRfc2hvd190eF9tZXRhZGF0YSwNCj4gIAko Y21kbGluZV9wYXJzZV9pbnN0X3QgKikmY21kX3NldF9yYXcsDQo+ICsJKGNtZGxpbmVfcGFyc2Vf aW5zdF90ICopJmNtZF9zaG93X3NldF9yYXcsDQo+ICsJKGNtZGxpbmVfcGFyc2VfaW5zdF90ICop JmNtZF9zaG93X3NldF9yYXdfYWxsLA0KPiAgCU5VTEwsDQo+ICB9Ow0KPiAgDQo+IGRpZmYgLS1n aXQgYS9hcHAvdGVzdC1wbWQvY21kbGluZV9mbG93LmMgYi9hcHAvdGVzdC1wbWQvY21kbGluZV9m bG93LmMNCj4gaW5kZXggNDk1ODcxMzk0ZS4uZjVhMTE3OGQ5ZCAxMDA2NDQNCj4gLS0tIGEvYXBw L3Rlc3QtcG1kL2NtZGxpbmVfZmxvdy5jDQo+ICsrKyBiL2FwcC90ZXN0LXBtZC9jbWRsaW5lX2Zs b3cuYw0KPiBAQCAtMTksNyArMTksMTAgQEANCj4gICNpbmNsdWRlIDxydGVfYnl0ZW9yZGVyLmg+ DQo+ICAjaW5jbHVkZSA8Y21kbGluZV9wYXJzZS5oPg0KPiAgI2luY2x1ZGUgPGNtZGxpbmVfcGFy c2VfZXRoZXJhZGRyLmg+DQo+ICsjaW5jbHVkZSA8Y21kbGluZV9wYXJzZV9zdHJpbmcuaD4NCj4g KyNpbmNsdWRlIDxjbWRsaW5lX3BhcnNlX251bS5oPg0KPiAgI2luY2x1ZGUgPHJ0ZV9mbG93Lmg+ DQo+ICsjaW5jbHVkZSA8cnRlX2hleGR1bXAuaD4NCj4gIA0KPiAgI2luY2x1ZGUgInRlc3RwbWQu aCINCj4gIA0KPiBAQCAtNTEsNiArNTQsNyBAQCBlbnVtIGluZGV4IHsNCj4gIAkvKiBTdWItbGV2 ZSBjb21tYW5kcy4gKi8NCj4gIAlTRVRfUkFXX0VOQ0FQLA0KPiAgCVNFVF9SQVdfREVDQVAsDQo+ ICsJU0VUX1JBV19JTkRFWCwNCj4gIA0KPiAgCS8qIFRvcC1sZXZlbCBjb21tYW5kLiAqLw0KPiAg CUZMT1csDQo+IEBAIC0yOTcsNiArMzAxLDEwIEBAIGVudW0gaW5kZXggew0KPiAgCUFDVElPTl9E RUNfVENQX0FDS19WQUxVRSwNCj4gIAlBQ1RJT05fUkFXX0VOQ0FQLA0KPiAgCUFDVElPTl9SQVdf REVDQVAsDQo+ICsJQUNUSU9OX1JBV19FTkNBUF9JTkRFWCwNCj4gKwlBQ1RJT05fUkFXX0VOQ0FQ X0lOREVYX1ZBTFVFLA0KPiArCUFDVElPTl9SQVdfREVDQVBfSU5ERVgsDQo+ICsJQUNUSU9OX1JB V19ERUNBUF9JTkRFWF9WQUxVRSwNCj4gIH07DQo+ICANCj4gIC8qKiBNYXhpbXVtIHNpemUgZm9y IHBhdHRlcm4gaW4gc3RydWN0IHJ0ZV9mbG93X2l0ZW1fcmF3LiAqLw0KPiBAQCAtMzIwLDYgKzMy OCw3IEBAIHN0cnVjdCBhY3Rpb25fcnNzX2RhdGEgew0KPiAgI2RlZmluZSBBQ1RJT05fVlhMQU5f RU5DQVBfSVRFTVNfTlVNIDYNCj4gIA0KPiAgI2RlZmluZSBBQ1RJT05fUkFXX0VOQ0FQX01BWF9E QVRBIDEyOA0KPiArI2RlZmluZSBSQVdfRU5DQVBfQ09ORlNfTUFYX05VTSA4DQo+ICANCj4gIC8q KiBTdG9yYWdlIGZvciBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jhd19lbmNhcC4gKi8NCj4gIHN0 cnVjdCByYXdfZW5jYXBfY29uZiB7DQo+IEBAIC0zMjgsNyArMzM3LDcgQEAgc3RydWN0IHJhd19l bmNhcF9jb25mIHsNCj4gIAlzaXplX3Qgc2l6ZTsNCj4gIH07DQo+ICANCj4gLXN0cnVjdCByYXdf ZW5jYXBfY29uZiByYXdfZW5jYXBfY29uZiA9IHsuc2l6ZSA9IDB9Ow0KPiArc3RydWN0IHJhd19l bmNhcF9jb25mIHJhd19lbmNhcF9jb25mc1tSQVdfRU5DQVBfQ09ORlNfTUFYX05VTV07DQo+ICAN Cj4gIC8qKiBTdG9yYWdlIGZvciBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jhd19kZWNhcC4gKi8N Cj4gIHN0cnVjdCByYXdfZGVjYXBfY29uZiB7DQo+IEBAIC0zMzYsNyArMzQ1LDcgQEAgc3RydWN0 IHJhd19kZWNhcF9jb25mIHsNCj4gIAlzaXplX3Qgc2l6ZTsNCj4gIH07DQo+ICANCj4gLXN0cnVj dCByYXdfZGVjYXBfY29uZiByYXdfZGVjYXBfY29uZiA9IHsuc2l6ZSA9IDB9Ow0KPiArc3RydWN0 IHJhd19kZWNhcF9jb25mIHJhd19kZWNhcF9jb25mc1tSQVdfRU5DQVBfQ09ORlNfTUFYX05VTV07 DQo+ICANCj4gIC8qKiBTdG9yYWdlIGZvciBzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Z4bGFuX2Vu Y2FwIGluY2x1ZGluZyBleHRlcm5hbCBkYXRhLiAqLw0KPiAgc3RydWN0IGFjdGlvbl92eGxhbl9l bmNhcF9kYXRhIHsNCj4gQEAgLTM3NiwxMiArMzg1LDE0IEBAIHN0cnVjdCBhY3Rpb25fcmF3X2Vu Y2FwX2RhdGEgew0KPiAgCXN0cnVjdCBydGVfZmxvd19hY3Rpb25fcmF3X2VuY2FwIGNvbmY7DQo+ ICAJdWludDhfdCBkYXRhW0FDVElPTl9SQVdfRU5DQVBfTUFYX0RBVEFdOw0KPiAgCXVpbnQ4X3Qg cHJlc2VydmVbQUNUSU9OX1JBV19FTkNBUF9NQVhfREFUQV07DQo+ICsJdWludDE2X3QgaWR4Ow0K PiAgfTsNCj4gIA0KPiAgLyoqIFN0b3JhZ2UgZm9yIHN0cnVjdCBydGVfZmxvd19hY3Rpb25fcmF3 X2RlY2FwIGluY2x1ZGluZyBleHRlcm5hbCBkYXRhLiAqLw0KPiAgc3RydWN0IGFjdGlvbl9yYXdf ZGVjYXBfZGF0YSB7DQo+ICAJc3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yYXdfZGVjYXAgY29uZjsN Cj4gIAl1aW50OF90IGRhdGFbQUNUSU9OX1JBV19FTkNBUF9NQVhfREFUQV07DQo+ICsJdWludDE2 X3QgaWR4Ow0KPiAgfTsNCj4gIA0KPiAgLyoqIE1heGltdW0gbnVtYmVyIG9mIHN1YnNlcXVlbnQg dG9rZW5zIGFuZCBhcmd1bWVudHMgb24gdGhlIHN0YWNrLiAqLw0KPiBAQCAtOTAyLDYgKzkxMywx MiBAQCBzdGF0aWMgY29uc3QgZW51bSBpbmRleCBpdGVtX21ldGFbXSA9IHsNCj4gIAlaRVJPLA0K PiAgfTsNCj4gIA0KPiArc3RhdGljIGNvbnN0IGVudW0gaW5kZXggbmV4dF9zZXRfcmF3W10gPSB7 DQo+ICsJU0VUX1JBV19JTkRFWCwNCj4gKwlJVEVNX0VUSCwNCj4gKwlaRVJPLA0KPiArfTsNCj4g Kw0KPiAgc3RhdGljIGNvbnN0IGVudW0gaW5kZXggbmV4dF9hY3Rpb25bXSA9IHsNCj4gIAlBQ1RJ T05fRU5ELA0KPiAgCUFDVElPTl9WT0lELA0KPiBAQCAtMTE0Myw2ICsxMTYwLDE4IEBAIHN0YXRp YyBjb25zdCBlbnVtIGluZGV4IGFjdGlvbl9kZWNfdGNwX2Fja1tdID0gew0KPiAgCVpFUk8sDQo+ ICB9Ow0KPiAgDQo+ICtzdGF0aWMgY29uc3QgZW51bSBpbmRleCBhY3Rpb25fcmF3X2VuY2FwW10g PSB7DQo+ICsJQUNUSU9OX1JBV19FTkNBUF9JTkRFWCwNCj4gKwlBQ1RJT05fTkVYVCwNCj4gKwla RVJPLA0KPiArfTsNCj4gKw0KPiArc3RhdGljIGNvbnN0IGVudW0gaW5kZXggYWN0aW9uX3Jhd19k ZWNhcFtdID0gew0KPiArCUFDVElPTl9SQVdfREVDQVBfSU5ERVgsDQo+ICsJQUNUSU9OX05FWFQs DQo+ICsJWkVSTywNCj4gK307DQo+ICsNCj4gIHN0YXRpYyBpbnQgcGFyc2Vfc2V0X3Jhd19lbmNh cF9kZWNhcChzdHJ1Y3QgY29udGV4dCAqLCBjb25zdCBzdHJ1Y3QgdG9rZW4gKiwNCj4gIAkJCQkg ICAgIGNvbnN0IGNoYXIgKiwgdW5zaWduZWQgaW50LA0KPiAgCQkJCSAgICAgdm9pZCAqLCB1bnNp Z25lZCBpbnQpOw0KPiBAQCAtMTIwMSw2ICsxMjMwLDEyIEBAIHN0YXRpYyBpbnQgcGFyc2VfdmNf YWN0aW9uX3Jhd19lbmNhcChzdHJ1Y3QgY29udGV4dCAqLA0KPiAgc3RhdGljIGludCBwYXJzZV92 Y19hY3Rpb25fcmF3X2RlY2FwKHN0cnVjdCBjb250ZXh0ICosDQo+ICAJCQkJICAgICBjb25zdCBz dHJ1Y3QgdG9rZW4gKiwgY29uc3QgY2hhciAqLA0KPiAgCQkJCSAgICAgdW5zaWduZWQgaW50LCB2 b2lkICosIHVuc2lnbmVkIGludCk7DQo+ICtzdGF0aWMgaW50IHBhcnNlX3ZjX2FjdGlvbl9yYXdf ZW5jYXBfaW5kZXgoc3RydWN0IGNvbnRleHQgKiwNCj4gKwkJCQkJICAgY29uc3Qgc3RydWN0IHRv a2VuICosIGNvbnN0IGNoYXIgKiwNCj4gKwkJCQkJICAgdW5zaWduZWQgaW50LCB2b2lkICosIHVu c2lnbmVkIGludCk7DQo+ICtzdGF0aWMgaW50IHBhcnNlX3ZjX2FjdGlvbl9yYXdfZGVjYXBfaW5k ZXgoc3RydWN0IGNvbnRleHQgKiwNCj4gKwkJCQkJICAgY29uc3Qgc3RydWN0IHRva2VuICosIGNv bnN0IGNoYXIgKiwNCj4gKwkJCQkJICAgdW5zaWduZWQgaW50LCB2b2lkICosIHVuc2lnbmVkIGlu dCk7DQo+ICBzdGF0aWMgaW50IHBhcnNlX2Rlc3Ryb3koc3RydWN0IGNvbnRleHQgKiwgY29uc3Qg c3RydWN0IHRva2VuICosDQo+ICAJCQkgY29uc3QgY2hhciAqLCB1bnNpZ25lZCBpbnQsDQo+ICAJ CQkgdm9pZCAqLCB1bnNpZ25lZCBpbnQpOw0KPiBAQCAtMTI2MCw2ICsxMjk1LDggQEAgc3RhdGlj IGludCBjb21wX3ZjX2FjdGlvbl9yc3NfdHlwZShzdHJ1Y3QgY29udGV4dCAqLCBjb25zdCBzdHJ1 Y3QgdG9rZW4gKiwNCj4gIAkJCQkgICB1bnNpZ25lZCBpbnQsIGNoYXIgKiwgdW5zaWduZWQgaW50 KTsNCj4gIHN0YXRpYyBpbnQgY29tcF92Y19hY3Rpb25fcnNzX3F1ZXVlKHN0cnVjdCBjb250ZXh0 ICosIGNvbnN0IHN0cnVjdCB0b2tlbiAqLA0KPiAgCQkJCSAgICB1bnNpZ25lZCBpbnQsIGNoYXIg KiwgdW5zaWduZWQgaW50KTsNCj4gK3N0YXRpYyBpbnQgY29tcF9zZXRfcmF3X2luZGV4KHN0cnVj dCBjb250ZXh0ICosIGNvbnN0IHN0cnVjdCB0b2tlbiAqLA0KPiArCQkJICAgICAgdW5zaWduZWQg aW50LCBjaGFyICosIHVuc2lnbmVkIGludCk7DQo+ICANCj4gIC8qKiBUb2tlbiBkZWZpbml0aW9u cy4gKi8NCj4gIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdG9rZW4gdG9rZW5fbGlzdFtdID0gew0KPiBA QCAtMzA5NSwyMyArMzEzMiw0OSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHRva2VuIHRva2VuX2xp c3RbXSA9IHsNCj4gIAkJLm5hbWUgPSAicmF3X2VuY2FwIiwNCj4gIAkJLmhlbHAgPSAiZW5jYXBz dWxhdGlvbiBkYXRhLCBkZWZpbmVkIGJ5IHNldCByYXdfZW5jYXAiLA0KPiAgCQkucHJpdiA9IFBS SVZfQUNUSU9OKFJBV19FTkNBUCwNCj4gLQkJCXNpemVvZihzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9u X3Jhd19lbmNhcCkpLA0KPiAtCQkubmV4dCA9IE5FWFQoTkVYVF9FTlRSWShBQ1RJT05fTkVYVCkp LA0KPiArCQkJc2l6ZW9mKHN0cnVjdCBhY3Rpb25fcmF3X2VuY2FwX2RhdGEpKSwNCj4gKwkJLm5l eHQgPSBORVhUKGFjdGlvbl9yYXdfZW5jYXApLA0KPiAgCQkuY2FsbCA9IHBhcnNlX3ZjX2FjdGlv bl9yYXdfZW5jYXAsDQo+ICAJfSwNCj4gKwlbQUNUSU9OX1JBV19FTkNBUF9JTkRFWF0gPSB7DQo+ ICsJCS5uYW1lID0gImluZGV4IiwNCj4gKwkJLmhlbHAgPSAidGhlIGluZGV4IG9mIHJhd19lbmNh cF9jb25mcyIsDQo+ICsJCS5uZXh0ID0gTkVYVChORVhUX0VOVFJZKEFDVElPTl9SQVdfRU5DQVBf SU5ERVhfVkFMVUUpKSwNCj4gKwl9LA0KPiArCVtBQ1RJT05fUkFXX0VOQ0FQX0lOREVYX1ZBTFVF XSA9IHsNCj4gKwkJLm5hbWUgPSAie2luZGV4fSIsDQo+ICsJCS50eXBlID0gIlVOU0lHTkVEIiwN Cj4gKwkJLmhlbHAgPSAidW5zaWduZWQgaW50ZWdlciB2YWx1ZSIsDQo+ICsJCS5uZXh0ID0gTkVY VChORVhUX0VOVFJZKEFDVElPTl9ORVhUKSksDQo+ICsJCS5jYWxsID0gcGFyc2VfdmNfYWN0aW9u X3Jhd19lbmNhcF9pbmRleCwNCj4gKwkJLmNvbXAgPSBjb21wX3NldF9yYXdfaW5kZXgsDQo+ICsJ fSwNCj4gIAlbQUNUSU9OX1JBV19ERUNBUF0gPSB7DQo+ICAJCS5uYW1lID0gInJhd19kZWNhcCIs DQo+ICAJCS5oZWxwID0gImRlY2Fwc3VsYXRpb24gZGF0YSwgZGVmaW5lZCBieSBzZXQgcmF3X2Vu Y2FwIiwNCj4gIAkJLnByaXYgPSBQUklWX0FDVElPTihSQVdfREVDQVAsDQo+IC0JCQlzaXplb2Yo c3RydWN0IHJ0ZV9mbG93X2FjdGlvbl9yYXdfZGVjYXApKSwNCj4gLQkJLm5leHQgPSBORVhUKE5F WFRfRU5UUlkoQUNUSU9OX05FWFQpKSwNCj4gKwkJCXNpemVvZihzdHJ1Y3QgYWN0aW9uX3Jhd19k ZWNhcF9kYXRhKSksDQo+ICsJCS5uZXh0ID0gTkVYVChhY3Rpb25fcmF3X2RlY2FwKSwNCj4gIAkJ LmNhbGwgPSBwYXJzZV92Y19hY3Rpb25fcmF3X2RlY2FwLA0KPiAgCX0sDQo+ICsJW0FDVElPTl9S QVdfREVDQVBfSU5ERVhdID0gew0KPiArCQkubmFtZSA9ICJpbmRleCIsDQo+ICsJCS5oZWxwID0g InRoZSBpbmRleCBvZiByYXdfZW5jYXBfY29uZnMiLA0KPiArCQkubmV4dCA9IE5FWFQoTkVYVF9F TlRSWShBQ1RJT05fUkFXX0RFQ0FQX0lOREVYX1ZBTFVFKSksDQo+ICsJfSwNCj4gKwlbQUNUSU9O X1JBV19ERUNBUF9JTkRFWF9WQUxVRV0gPSB7DQo+ICsJCS5uYW1lID0gIntpbmRleH0iLA0KPiAr CQkudHlwZSA9ICJVTlNJR05FRCIsDQo+ICsJCS5oZWxwID0gInVuc2lnbmVkIGludGVnZXIgdmFs dWUiLA0KPiArCQkubmV4dCA9IE5FWFQoTkVYVF9FTlRSWShBQ1RJT05fTkVYVCkpLA0KPiArCQku Y2FsbCA9IHBhcnNlX3ZjX2FjdGlvbl9yYXdfZGVjYXBfaW5kZXgsDQo+ICsJCS5jb21wID0gY29t cF9zZXRfcmF3X2luZGV4LA0KPiArCX0sDQo+ICAJLyogVG9wIGxldmVsIGNvbW1hbmQuICovDQo+ ICAJW1NFVF0gPSB7DQo+ICAJCS5uYW1lID0gInNldCIsDQo+ICAJCS5oZWxwID0gInNldCByYXcg ZW5jYXAvZGVjYXAgZGF0YSIsDQo+IC0JCS50eXBlID0gInNldCByYXdfZW5jYXB8cmF3X2RlY2Fw IDxwYXR0ZXJuPiIsDQo+ICsJCS50eXBlID0gInNldCByYXdfZW5jYXB8cmF3X2RlY2FwIDxpbmRl eD4gPHBhdHRlcm4+IiwNCj4gIAkJLm5leHQgPSBORVhUKE5FWFRfRU5UUlkNCj4gIAkJCSAgICAg KFNFVF9SQVdfRU5DQVAsDQo+ICAJCQkgICAgICBTRVRfUkFXX0RFQ0FQKSksDQo+IEBAIC0zMTIx LDE0ICszMTg0LDI5IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgdG9rZW4gdG9rZW5fbGlzdFtdID0g ew0KPiAgCVtTRVRfUkFXX0VOQ0FQXSA9IHsNCj4gIAkJLm5hbWUgPSAicmF3X2VuY2FwIiwNCj4g IAkJLmhlbHAgPSAic2V0IHJhdyBlbmNhcCBkYXRhIiwNCj4gLQkJLm5leHQgPSBORVhUKG5leHRf aXRlbSksDQo+ICsJCS5uZXh0ID0gTkVYVChuZXh0X3NldF9yYXcpLA0KPiArCQkuYXJncyA9IEFS R1MoQVJHU19FTlRSWV9BUkJfQk9VTkRFRA0KPiArCQkJCShvZmZzZXRvZihzdHJ1Y3QgYnVmZmVy LCBwb3J0KSwNCj4gKwkJCQkgc2l6ZW9mKCgoc3RydWN0IGJ1ZmZlciAqKTApLT5wb3J0KSwNCj4g KwkJCQkgMCwgUkFXX0VOQ0FQX0NPTkZTX01BWF9OVU0gLSAxKSksDQo+ICAJCS5jYWxsID0gcGFy c2Vfc2V0X3Jhd19lbmNhcF9kZWNhcCwNCj4gIAl9LA0KPiAgCVtTRVRfUkFXX0RFQ0FQXSA9IHsN Cj4gIAkJLm5hbWUgPSAicmF3X2RlY2FwIiwNCj4gIAkJLmhlbHAgPSAic2V0IHJhdyBkZWNhcCBk YXRhIiwNCj4gLQkJLm5leHQgPSBORVhUKG5leHRfaXRlbSksDQo+ICsJCS5uZXh0ID0gTkVYVChu ZXh0X3NldF9yYXcpLA0KPiArCQkuYXJncyA9IEFSR1MoQVJHU19FTlRSWV9BUkJfQk9VTkRFRA0K PiArCQkJCShvZmZzZXRvZihzdHJ1Y3QgYnVmZmVyLCBwb3J0KSwNCj4gKwkJCQkgc2l6ZW9mKCgo c3RydWN0IGJ1ZmZlciAqKTApLT5wb3J0KSwNCj4gKwkJCQkgMCwgUkFXX0VOQ0FQX0NPTkZTX01B WF9OVU0gLSAxKSksDQo+ICAJCS5jYWxsID0gcGFyc2Vfc2V0X3Jhd19lbmNhcF9kZWNhcCwNCj4g Kwl9LA0KPiArCVtTRVRfUkFXX0lOREVYXSA9IHsNCj4gKwkJLm5hbWUgPSAie2luZGV4fSIsDQo+ ICsJCS50eXBlID0gIlVOU0lHTkVEIiwNCj4gKwkJLmhlbHAgPSAiaW5kZXggb2YgcmF3X2VuY2Fw L3Jhd19kZWNhcCBkYXRhIiwNCj4gKwkJLm5leHQgPSBORVhUKG5leHRfaXRlbSksDQo+ICsJCS5j YWxsID0gcGFyc2VfcG9ydCwNCj4gIAl9DQo+ICB9Ow0KPiAgDQo+IEBAIC00NDIzLDYgKzQ1MDEs ODQgQEAgcGFyc2VfdmNfYWN0aW9uX21wbHNvdWRwX2RlY2FwKHN0cnVjdCBjb250ZXh0ICpjdHgs IGNvbnN0IHN0cnVjdCB0b2tlbiAqdG9rZW4sDQo+ICAJcmV0dXJuIHJldDsNCj4gIH0NCj4gIA0K PiArc3RhdGljIGludA0KPiArcGFyc2VfdmNfYWN0aW9uX3Jhd19kZWNhcF9pbmRleChzdHJ1Y3Qg Y29udGV4dCAqY3R4LCBjb25zdCBzdHJ1Y3QgdG9rZW4gKnRva2VuLA0KPiArCQkJCWNvbnN0IGNo YXIgKnN0ciwgdW5zaWduZWQgaW50IGxlbiwgdm9pZCAqYnVmLA0KPiArCQkJCXVuc2lnbmVkIGlu dCBzaXplKQ0KPiArew0KPiArCXN0cnVjdCBhY3Rpb25fcmF3X2RlY2FwX2RhdGEgKmFjdGlvbl9y YXdfZGVjYXBfZGF0YTsNCj4gKwlzdHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uICphY3Rpb247DQo+ICsJ Y29uc3Qgc3RydWN0IGFyZyAqYXJnOw0KPiArCXN0cnVjdCBidWZmZXIgKm91dCA9IGJ1ZjsNCj4g KwlpbnQgcmV0Ow0KPiArCXVpbnQxNl90IGlkeDsNCj4gKw0KPiArCVJURV9TRVRfVVNFRCh0b2tl bik7DQo+ICsJUlRFX1NFVF9VU0VEKGJ1Zik7DQo+ICsJUlRFX1NFVF9VU0VEKHNpemUpOw0KPiAr CWFyZyA9IEFSR1NfRU5UUllfQVJCX0JPVU5ERUQNCj4gKwkJKG9mZnNldG9mKHN0cnVjdCBhY3Rp b25fcmF3X2RlY2FwX2RhdGEsIGlkeCksDQo+ICsJCSBzaXplb2YoKChzdHJ1Y3QgYWN0aW9uX3Jh d19kZWNhcF9kYXRhICopMCktPmlkeCksDQo+ICsJCSAwLCBSQVdfRU5DQVBfQ09ORlNfTUFYX05V TSAtIDEpOw0KPiArCWlmIChwdXNoX2FyZ3MoY3R4LCBhcmcpKQ0KPiArCQlyZXR1cm4gLTE7DQo+ ICsJcmV0ID0gcGFyc2VfaW50KGN0eCwgdG9rZW4sIHN0ciwgbGVuLCBOVUxMLCAwKTsNCj4gKwlp ZiAocmV0IDwgMCkgew0KPiArCQlwb3BfYXJncyhjdHgpOw0KPiArCQlyZXR1cm4gLTE7DQo+ICsJ fQ0KPiArCWlmICghY3R4LT5vYmplY3QpDQo+ICsJCXJldHVybiBsZW47DQo+ICsJYWN0aW9uID0g Jm91dC0+YXJncy52Yy5hY3Rpb25zW291dC0+YXJncy52Yy5hY3Rpb25zX24gLSAxXTsNCj4gKwlh Y3Rpb25fcmF3X2RlY2FwX2RhdGEgPSBjdHgtPm9iamVjdDsNCj4gKwlpZHggPSBhY3Rpb25fcmF3 X2RlY2FwX2RhdGEtPmlkeDsNCj4gKwlhY3Rpb25fcmF3X2RlY2FwX2RhdGEtPmNvbmYuZGF0YSA9 IHJhd19kZWNhcF9jb25mc1tpZHhdLmRhdGE7DQo+ICsJYWN0aW9uX3Jhd19kZWNhcF9kYXRhLT5j b25mLnNpemUgPSByYXdfZGVjYXBfY29uZnNbaWR4XS5zaXplOw0KPiArCWFjdGlvbi0+Y29uZiA9 ICZhY3Rpb25fcmF3X2RlY2FwX2RhdGEtPmNvbmY7DQo+ICsJcmV0dXJuIGxlbjsNCj4gK30NCj4g Kw0KPiArDQo+ICtzdGF0aWMgaW50DQo+ICtwYXJzZV92Y19hY3Rpb25fcmF3X2VuY2FwX2luZGV4 KHN0cnVjdCBjb250ZXh0ICpjdHgsIGNvbnN0IHN0cnVjdCB0b2tlbiAqdG9rZW4sDQo+ICsJCQkJ Y29uc3QgY2hhciAqc3RyLCB1bnNpZ25lZCBpbnQgbGVuLCB2b2lkICpidWYsDQo+ICsJCQkJdW5z aWduZWQgaW50IHNpemUpDQo+ICt7DQo+ICsJc3RydWN0IGFjdGlvbl9yYXdfZW5jYXBfZGF0YSAq YWN0aW9uX3Jhd19lbmNhcF9kYXRhOw0KPiArCXN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlv bjsNCj4gKwljb25zdCBzdHJ1Y3QgYXJnICphcmc7DQo+ICsJc3RydWN0IGJ1ZmZlciAqb3V0ID0g YnVmOw0KPiArCWludCByZXQ7DQo+ICsJdWludDE2X3QgaWR4Ow0KPiArDQo+ICsJUlRFX1NFVF9V U0VEKHRva2VuKTsNCj4gKwlSVEVfU0VUX1VTRUQoYnVmKTsNCj4gKwlSVEVfU0VUX1VTRUQoc2l6 ZSk7DQo+ICsJaWYgKGN0eC0+Y3VyciAhPSBBQ1RJT05fUkFXX0VOQ0FQX0lOREVYX1ZBTFVFKQ0K PiArCQlyZXR1cm4gLTE7DQo+ICsJYXJnID0gQVJHU19FTlRSWV9BUkJfQk9VTkRFRA0KPiArCQko b2Zmc2V0b2Yoc3RydWN0IGFjdGlvbl9yYXdfZW5jYXBfZGF0YSwgaWR4KSwNCj4gKwkJIHNpemVv ZigoKHN0cnVjdCBhY3Rpb25fcmF3X2VuY2FwX2RhdGEgKikwKS0+aWR4KSwNCj4gKwkJIDAsIFJB V19FTkNBUF9DT05GU19NQVhfTlVNIC0gMSk7DQo+ICsJaWYgKHB1c2hfYXJncyhjdHgsIGFyZykp DQo+ICsJCXJldHVybiAtMTsNCj4gKwlyZXQgPSBwYXJzZV9pbnQoY3R4LCB0b2tlbiwgc3RyLCBs ZW4sIE5VTEwsIDApOw0KPiArCWlmIChyZXQgPCAwKSB7DQo+ICsJCXBvcF9hcmdzKGN0eCk7DQo+ ICsJCXJldHVybiAtMTsNCj4gKwl9DQo+ICsJaWYgKCFjdHgtPm9iamVjdCkNCj4gKwkJcmV0dXJu IGxlbjsNCj4gKwlhY3Rpb24gPSAmb3V0LT5hcmdzLnZjLmFjdGlvbnNbb3V0LT5hcmdzLnZjLmFj dGlvbnNfbiAtIDFdOw0KPiArCWFjdGlvbl9yYXdfZW5jYXBfZGF0YSA9IGN0eC0+b2JqZWN0Ow0K PiArCWlkeCA9IGFjdGlvbl9yYXdfZW5jYXBfZGF0YS0+aWR4Ow0KPiArCWFjdGlvbl9yYXdfZW5j YXBfZGF0YS0+Y29uZi5kYXRhID0gcmF3X2VuY2FwX2NvbmZzW2lkeF0uZGF0YTsNCj4gKwlhY3Rp b25fcmF3X2VuY2FwX2RhdGEtPmNvbmYuc2l6ZSA9IHJhd19lbmNhcF9jb25mc1tpZHhdLnNpemU7 DQo+ICsJYWN0aW9uX3Jhd19lbmNhcF9kYXRhLT5jb25mLnByZXNlcnZlID0gTlVMTDsNCj4gKwlh Y3Rpb24tPmNvbmYgPSAmYWN0aW9uX3Jhd19lbmNhcF9kYXRhLT5jb25mOw0KPiArCXJldHVybiBs ZW47DQo+ICt9DQo+ICsNCj4gIHN0YXRpYyBpbnQNCj4gIHBhcnNlX3ZjX2FjdGlvbl9yYXdfZW5j YXAoc3RydWN0IGNvbnRleHQgKmN0eCwgY29uc3Qgc3RydWN0IHRva2VuICp0b2tlbiwNCj4gIAkJ CSAgY29uc3QgY2hhciAqc3RyLCB1bnNpZ25lZCBpbnQgbGVuLCB2b2lkICpidWYsDQo+IEBAIC00 NDMwLDggKzQ1ODYsNyBAQCBwYXJzZV92Y19hY3Rpb25fcmF3X2VuY2FwKHN0cnVjdCBjb250ZXh0 ICpjdHgsIGNvbnN0IHN0cnVjdCB0b2tlbiAqdG9rZW4sDQo+ICB7DQo+ICAJc3RydWN0IGJ1ZmZl ciAqb3V0ID0gYnVmOw0KPiAgCXN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbjsNCj4gLQlz dHJ1Y3QgcnRlX2Zsb3dfYWN0aW9uX3Jhd19lbmNhcCAqYWN0aW9uX3Jhd19lbmNhcF9jb25mID0g TlVMTDsNCj4gLQl1aW50OF90ICpkYXRhID0gTlVMTDsNCj4gKwlzdHJ1Y3QgYWN0aW9uX3Jhd19l bmNhcF9kYXRhICphY3Rpb25fcmF3X2VuY2FwX2RhdGEgPSBOVUxMOw0KPiAgCWludCByZXQ7DQo+ ICANCj4gIAlyZXQgPSBwYXJzZV92YyhjdHgsIHRva2VuLCBzdHIsIGxlbiwgYnVmLCBzaXplKTsN Cj4gQEAgLTQ0NDcsMTQgKzQ2MDIsMTEgQEAgcGFyc2VfdmNfYWN0aW9uX3Jhd19lbmNhcChzdHJ1 Y3QgY29udGV4dCAqY3R4LCBjb25zdCBzdHJ1Y3QgdG9rZW4gKnRva2VuLA0KPiAgCWN0eC0+b2Jq ZWN0ID0gb3V0LT5hcmdzLnZjLmRhdGE7DQo+ICAJY3R4LT5vYmptYXNrID0gTlVMTDsNCj4gIAkv KiBDb3B5IHRoZSBoZWFkZXJzIHRvIHRoZSBidWZmZXIuICovDQo+IC0JYWN0aW9uX3Jhd19lbmNh cF9jb25mID0gY3R4LT5vYmplY3Q7DQo+IC0JLyogZGF0YSBzdG9yZWQgZnJvbSB0YWlsIG9mIGRh dGEgYnVmZmVyICovDQo+IC0JZGF0YSA9ICh1aW50OF90ICopJihyYXdfZW5jYXBfY29uZi5kYXRh KSArDQo+IC0JCUFDVElPTl9SQVdfRU5DQVBfTUFYX0RBVEEgLSByYXdfZW5jYXBfY29uZi5zaXpl Ow0KPiAtCWFjdGlvbl9yYXdfZW5jYXBfY29uZi0+ZGF0YSA9IGRhdGE7DQo+IC0JYWN0aW9uX3Jh d19lbmNhcF9jb25mLT5wcmVzZXJ2ZSA9IE5VTEw7DQo+IC0JYWN0aW9uX3Jhd19lbmNhcF9jb25m LT5zaXplID0gcmF3X2VuY2FwX2NvbmYuc2l6ZTsNCj4gLQlhY3Rpb24tPmNvbmYgPSBhY3Rpb25f cmF3X2VuY2FwX2NvbmY7DQo+ICsJYWN0aW9uX3Jhd19lbmNhcF9kYXRhID0gY3R4LT5vYmplY3Q7 DQo+ICsJYWN0aW9uX3Jhd19lbmNhcF9kYXRhLT5jb25mLmRhdGEgPSByYXdfZW5jYXBfY29uZnNb MF0uZGF0YTsNCj4gKwlhY3Rpb25fcmF3X2VuY2FwX2RhdGEtPmNvbmYucHJlc2VydmUgPSBOVUxM Ow0KPiArCWFjdGlvbl9yYXdfZW5jYXBfZGF0YS0+Y29uZi5zaXplID0gcmF3X2VuY2FwX2NvbmZz WzBdLnNpemU7DQo+ICsJYWN0aW9uLT5jb25mID0gJmFjdGlvbl9yYXdfZW5jYXBfZGF0YS0+Y29u ZjsNCj4gIAlyZXR1cm4gcmV0Ow0KPiAgfQ0KPiAgDQo+IEBAIC00NDY1LDggKzQ2MTcsNyBAQCBw YXJzZV92Y19hY3Rpb25fcmF3X2RlY2FwKHN0cnVjdCBjb250ZXh0ICpjdHgsIGNvbnN0IHN0cnVj dCB0b2tlbiAqdG9rZW4sDQo+ICB7DQo+ICAJc3RydWN0IGJ1ZmZlciAqb3V0ID0gYnVmOw0KPiAg CXN0cnVjdCBydGVfZmxvd19hY3Rpb24gKmFjdGlvbjsNCj4gLQlzdHJ1Y3QgcnRlX2Zsb3dfYWN0 aW9uX3Jhd19kZWNhcCAqYWN0aW9uX3Jhd19kZWNhcF9jb25mID0gTlVMTDsNCj4gLQl1aW50OF90 ICpkYXRhID0gTlVMTDsNCj4gKwlzdHJ1Y3QgYWN0aW9uX3Jhd19kZWNhcF9kYXRhICphY3Rpb25f cmF3X2RlY2FwX2RhdGEgPSBOVUxMOw0KPiAgCWludCByZXQ7DQo+ICANCj4gIAlyZXQgPSBwYXJz ZV92YyhjdHgsIHRva2VuLCBzdHIsIGxlbiwgYnVmLCBzaXplKTsNCj4gQEAgLTQ0ODIsMTMgKzQ2 MzMsMTAgQEAgcGFyc2VfdmNfYWN0aW9uX3Jhd19kZWNhcChzdHJ1Y3QgY29udGV4dCAqY3R4LCBj b25zdCBzdHJ1Y3QgdG9rZW4gKnRva2VuLA0KPiAgCWN0eC0+b2JqZWN0ID0gb3V0LT5hcmdzLnZj LmRhdGE7DQo+ICAJY3R4LT5vYmptYXNrID0gTlVMTDsNCj4gIAkvKiBDb3B5IHRoZSBoZWFkZXJz IHRvIHRoZSBidWZmZXIuICovDQo+IC0JYWN0aW9uX3Jhd19kZWNhcF9jb25mID0gY3R4LT5vYmpl Y3Q7DQo+IC0JLyogZGF0YSBzdG9yZWQgZnJvbSB0YWlsIG9mIGRhdGEgYnVmZmVyICovDQo+IC0J ZGF0YSA9ICh1aW50OF90ICopJihyYXdfZGVjYXBfY29uZi5kYXRhKSArDQo+IC0JCUFDVElPTl9S QVdfRU5DQVBfTUFYX0RBVEEgLSByYXdfZGVjYXBfY29uZi5zaXplOw0KPiAtCWFjdGlvbl9yYXdf ZGVjYXBfY29uZi0+ZGF0YSA9IGRhdGE7DQo+IC0JYWN0aW9uX3Jhd19kZWNhcF9jb25mLT5zaXpl ID0gcmF3X2RlY2FwX2NvbmYuc2l6ZTsNCj4gLQlhY3Rpb24tPmNvbmYgPSBhY3Rpb25fcmF3X2Rl Y2FwX2NvbmY7DQo+ICsJYWN0aW9uX3Jhd19kZWNhcF9kYXRhID0gY3R4LT5vYmplY3Q7DQo+ICsJ YWN0aW9uX3Jhd19kZWNhcF9kYXRhLT5jb25mLmRhdGEgPSByYXdfZGVjYXBfY29uZnNbMF0uZGF0 YTsNCj4gKwlhY3Rpb25fcmF3X2RlY2FwX2RhdGEtPmNvbmYuc2l6ZSA9IHJhd19kZWNhcF9jb25m c1swXS5zaXplOw0KPiArCWFjdGlvbi0+Y29uZiA9ICZhY3Rpb25fcmF3X2RlY2FwX2RhdGEtPmNv bmY7DQo+ICAJcmV0dXJuIHJldDsNCj4gIH0NCj4gIA0KPiBAQCAtNTE2Nyw2ICs1MzE1LDcgQEAg cGFyc2Vfc2V0X3Jhd19lbmNhcF9kZWNhcChzdHJ1Y3QgY29udGV4dCAqY3R4LCBjb25zdCBzdHJ1 Y3QgdG9rZW4gKnRva2VuLA0KPiAgCQlyZXR1cm4gLTE7DQo+ICAJY3R4LT5vYmpkYXRhID0gMDsN Cj4gIAljdHgtPm9iam1hc2sgPSBOVUxMOw0KPiArCWN0eC0+b2JqZWN0ID0gb3V0Ow0KPiAgCWlm ICghb3V0LT5jb21tYW5kKQ0KPiAgCQlyZXR1cm4gLTE7DQo+ICAJb3V0LT5jb21tYW5kID0gY3R4 LT5jdXJyOw0KPiBAQCAtNTM0Myw2ICs1NDkyLDI0IEBAIGNvbXBfdmNfYWN0aW9uX3Jzc19xdWV1 ZShzdHJ1Y3QgY29udGV4dCAqY3R4LCBjb25zdCBzdHJ1Y3QgdG9rZW4gKnRva2VuLA0KPiAgCXJl dHVybiAtMTsNCj4gIH0NCj4gIA0KPiArLyoqIENvbXBsZXRlIGluZGV4IG51bWJlciBmb3Igc2V0 IHJhd19lbmNhcC9yYXdfZGVjYXAgY29tbWFuZHMuICovDQo+ICtzdGF0aWMgaW50DQo+ICtjb21w X3NldF9yYXdfaW5kZXgoc3RydWN0IGNvbnRleHQgKmN0eCwgY29uc3Qgc3RydWN0IHRva2VuICp0 b2tlbiwNCj4gKwkJICAgdW5zaWduZWQgaW50IGVudCwgY2hhciAqYnVmLCB1bnNpZ25lZCBpbnQg c2l6ZSkNCj4gK3sNCj4gKwl1aW50MTZfdCBpZHggPSAwOw0KPiArCXVpbnQxNl90IG5iID0gMDsN Cj4gKw0KPiArCVJURV9TRVRfVVNFRChjdHgpOw0KPiArCVJURV9TRVRfVVNFRCh0b2tlbik7DQo+ ICsJZm9yIChpZHggPSAwOyBpZHggPCBSQVdfRU5DQVBfQ09ORlNfTUFYX05VTTsgKytpZHgpIHsN Cj4gKwkJaWYgKGJ1ZiAmJiBpZHggPT0gZW50KQ0KPiArCQkJcmV0dXJuIHNucHJpbnRmKGJ1Ziwg c2l6ZSwgIiV1IiwgaWR4KTsNCj4gKwkJKytuYjsNCj4gKwl9DQo+ICsJcmV0dXJuIG5iOw0KPiAr fQ0KPiArDQo+ICAvKiogSW50ZXJuYWwgY29udGV4dC4gKi8NCj4gIHN0YXRpYyBzdHJ1Y3QgY29u dGV4dCBjbWRfZmxvd19jb250ZXh0Ow0KPiAgDQo+IEBAIC01Nzc3LDE1ICs1OTQ0LDE2IEBAIGNt ZF9zZXRfcmF3X3BhcnNlZChjb25zdCBzdHJ1Y3QgYnVmZmVyICppbikNCj4gIAlzaXplX3QgKnRv dGFsX3NpemUgPSBOVUxMOw0KPiAgCXVpbnQxNl90IHVwcGVyX2xheWVyID0gMDsNCj4gIAl1aW50 MTZfdCBwcm90byA9IDA7DQo+ICsJdWludDE2X3QgaWR4ID0gaW4tPnBvcnQ7IC8qIFdlIGJvcnJv dyBwb3J0IGZpZWxkIGFzIGluZGV4ICovDQo+ICANCj4gIAlSVEVfQVNTRVJUKGluLT5jb21tYW5k ID09IFNFVF9SQVdfRU5DQVAgfHwNCj4gIAkJICAgaW4tPmNvbW1hbmQgPT0gU0VUX1JBV19ERUNB UCk7DQo+ICAJaWYgKGluLT5jb21tYW5kID09IFNFVF9SQVdfRU5DQVApIHsNCj4gLQkJdG90YWxf c2l6ZSA9ICZyYXdfZW5jYXBfY29uZi5zaXplOw0KPiAtCQlkYXRhID0gKHVpbnQ4X3QgKikmcmF3 X2VuY2FwX2NvbmYuZGF0YTsNCj4gKwkJdG90YWxfc2l6ZSA9ICZyYXdfZW5jYXBfY29uZnNbaWR4 XS5zaXplOw0KPiArCQlkYXRhID0gKHVpbnQ4X3QgKikmcmF3X2VuY2FwX2NvbmZzW2lkeF0uZGF0 YTsNCj4gIAl9IGVsc2Ugew0KPiAtCQl0b3RhbF9zaXplID0gJnJhd19kZWNhcF9jb25mLnNpemU7 DQo+IC0JCWRhdGEgPSAodWludDhfdCAqKSZyYXdfZGVjYXBfY29uZi5kYXRhOw0KPiArCQl0b3Rh bF9zaXplID0gJnJhd19kZWNhcF9jb25mc1tpZHhdLnNpemU7DQo+ICsJCWRhdGEgPSAodWludDhf dCAqKSZyYXdfZGVjYXBfY29uZnNbaWR4XS5kYXRhOw0KPiAgCX0NCj4gIAkqdG90YWxfc2l6ZSA9 IDA7DQo+ICAJbWVtc2V0KGRhdGEsIDB4MDAsIEFDVElPTl9SQVdfRU5DQVBfTUFYX0RBVEEpOw0K PiBAQCAtNTg1NSw2ICs2MDIzLDcgQEAgY21kX3NldF9yYXdfcGFyc2VkKGNvbnN0IHN0cnVjdCBi dWZmZXIgKmluKQ0KPiAgCWlmICh2ZXJib3NlX2xldmVsICYgMHgxKQ0KPiAgCQlwcmludGYoInRv dGFsIGRhdGEgc2l6ZSBpcyAlenVcbiIsICgqdG90YWxfc2l6ZSkpOw0KPiAgCVJURV9BU1NFUlQo KCp0b3RhbF9zaXplKSA8PSBBQ1RJT05fUkFXX0VOQ0FQX01BWF9EQVRBKTsNCj4gKwltZW1tb3Zl KGRhdGEsIChkYXRhX3RhaWwgLSAoKnRvdGFsX3NpemUpKSwgKnRvdGFsX3NpemUpOw0KPiAgfQ0K PiAgDQo+ICAvKiogUG9wdWxhdGUgaGVscCBzdHJpbmdzIGZvciBjdXJyZW50IHRva2VuIChjbWRs aW5lIEFQSSkuICovDQo+IEBAIC01OTM5LDMgKzYxMDgsODAgQEAgY21kbGluZV9wYXJzZV9pbnN0 X3QgY21kX3NldF9yYXcgPSB7DQo+ICAJCU5VTEwsDQo+ICAJfSwgLyoqPCBUb2tlbnMgYXJlIHJl dHVybmVkIGJ5IGNtZF9mbG93X3RvaygpLiAqLw0KPiAgfTsNCj4gKw0KPiArLyogKioqIGRpc3Bs YXkgcmF3X2VuY2FwL3Jhd19kZWNhcCBidWYgKi8NCj4gK3N0cnVjdCBjbWRfc2hvd19zZXRfcmF3 X3Jlc3VsdCB7DQo+ICsJY21kbGluZV9maXhlZF9zdHJpbmdfdCBjbWRfc2hvdzsNCj4gKwljbWRs aW5lX2ZpeGVkX3N0cmluZ190IGNtZF93aGF0Ow0KPiArCWNtZGxpbmVfZml4ZWRfc3RyaW5nX3Qg Y21kX2FsbDsNCj4gKwl1aW50MTZfdCBjbWRfaW5kZXg7DQo+ICt9Ow0KPiArDQo+ICtzdGF0aWMg dm9pZA0KPiArY21kX3Nob3dfc2V0X3Jhd19wYXJzZWQodm9pZCAqcGFyc2VkX3Jlc3VsdCwgc3Ry dWN0IGNtZGxpbmUgKmNsLCB2b2lkICpkYXRhKQ0KPiArew0KPiArCXN0cnVjdCBjbWRfc2hvd19z ZXRfcmF3X3Jlc3VsdCAqcmVzID0gcGFyc2VkX3Jlc3VsdDsNCj4gKwl1aW50MTZfdCBpbmRleCA9 IHJlcy0+Y21kX2luZGV4Ow0KPiArCXVpbnQ4X3QgYWxsID0gMDsNCj4gKwl1aW50OF90ICpyYXdf ZGF0YSA9IE5VTEw7DQo+ICsJc2l6ZV90IHJhd19zaXplID0gMDsNCj4gKwljaGFyIHRpdGxlWzE2 XSA9IHswfTsNCj4gKw0KPiArCVJURV9TRVRfVVNFRChjbCk7DQo+ICsJUlRFX1NFVF9VU0VEKGRh dGEpOw0KPiArCWlmICghc3RyY21wKHJlcy0+Y21kX2FsbCwgImFsbCIpKSB7DQo+ICsJCWFsbCA9 IDE7DQo+ICsJCWluZGV4ID0gMDsNCj4gKwl9IGVsc2UgaWYgKGluZGV4ID49IFJBV19FTkNBUF9D T05GU19NQVhfTlVNKSB7DQo+ICsJCXByaW50ZigiaW5kZXggc2hvdWxkIGJlIDAtJXVcbiIsIFJB V19FTkNBUF9DT05GU19NQVhfTlVNIC0gMSk7DQo+ICsJCXJldHVybjsNCj4gKwl9DQo+ICsJZG8g ew0KPiArCQlpZiAoIXN0cmNtcChyZXMtPmNtZF93aGF0LCAicmF3X2VuY2FwIikpIHsNCj4gKwkJ CXJhd19kYXRhID0gKHVpbnQ4X3QgKikmcmF3X2VuY2FwX2NvbmZzW2luZGV4XS5kYXRhOw0KPiAr CQkJcmF3X3NpemUgPSByYXdfZW5jYXBfY29uZnNbaW5kZXhdLnNpemU7DQo+ICsJCQlzbnByaW50 Zih0aXRsZSwgMTYsICJcbmluZGV4OiAldSIsIGluZGV4KTsNCj4gKwkJCXJ0ZV9oZXhkdW1wKHN0 ZG91dCwgdGl0bGUsIHJhd19kYXRhLCByYXdfc2l6ZSk7DQo+ICsJCX0gZWxzZSB7DQo+ICsJCQly YXdfZGF0YSA9ICh1aW50OF90ICopJnJhd19kZWNhcF9jb25mc1tpbmRleF0uZGF0YTsNCj4gKwkJ CXJhd19zaXplID0gcmF3X2RlY2FwX2NvbmZzW2luZGV4XS5zaXplOw0KPiArCQkJc25wcmludGYo dGl0bGUsIDE2LCAiXG5pbmRleDogJXUiLCBpbmRleCk7DQo+ICsJCQlydGVfaGV4ZHVtcChzdGRv dXQsIHRpdGxlLCByYXdfZGF0YSwgcmF3X3NpemUpOw0KPiArCQl9DQo+ICsJfSB3aGlsZSAoYWxs ICYmICsraW5kZXggPCBSQVdfRU5DQVBfQ09ORlNfTUFYX05VTSk7DQo+ICt9DQo+ICsNCj4gK2Nt ZGxpbmVfcGFyc2VfdG9rZW5fc3RyaW5nX3QgY21kX3Nob3dfc2V0X3Jhd19jbWRfc2hvdyA9DQo+ ICsJVE9LRU5fU1RSSU5HX0lOSVRJQUxJWkVSKHN0cnVjdCBjbWRfc2hvd19zZXRfcmF3X3Jlc3Vs dCwNCj4gKwkJCWNtZF9zaG93LCAic2hvdyIpOw0KPiArY21kbGluZV9wYXJzZV90b2tlbl9zdHJp bmdfdCBjbWRfc2hvd19zZXRfcmF3X2NtZF93aGF0ID0NCj4gKwlUT0tFTl9TVFJJTkdfSU5JVElB TElaRVIoc3RydWN0IGNtZF9zaG93X3NldF9yYXdfcmVzdWx0LA0KPiArCQkJY21kX3doYXQsICJy YXdfZW5jYXAjcmF3X2RlY2FwIik7DQo+ICtjbWRsaW5lX3BhcnNlX3Rva2VuX251bV90IGNtZF9z aG93X3NldF9yYXdfY21kX2luZGV4ID0NCj4gKwlUT0tFTl9OVU1fSU5JVElBTElaRVIoc3RydWN0 IGNtZF9zaG93X3NldF9yYXdfcmVzdWx0LA0KPiArCQkJY21kX2luZGV4LCBVSU5UMTYpOw0KPiAr Y21kbGluZV9wYXJzZV90b2tlbl9zdHJpbmdfdCBjbWRfc2hvd19zZXRfcmF3X2NtZF9hbGwgPQ0K PiArCVRPS0VOX1NUUklOR19JTklUSUFMSVpFUihzdHJ1Y3QgY21kX3Nob3dfc2V0X3Jhd19yZXN1 bHQsDQo+ICsJCQljbWRfYWxsLCAiYWxsIik7DQo+ICtjbWRsaW5lX3BhcnNlX2luc3RfdCBjbWRf c2hvd19zZXRfcmF3ID0gew0KPiArCS5mID0gY21kX3Nob3dfc2V0X3Jhd19wYXJzZWQsDQo+ICsJ LmRhdGEgPSBOVUxMLA0KPiArCS5oZWxwX3N0ciA9ICJzaG93IDxyYXdfZW5jYXB8cmF3X2RlY2Fw PiA8aW5kZXg+IiwNCj4gKwkudG9rZW5zID0gew0KPiArCQkodm9pZCAqKSZjbWRfc2hvd19zZXRf cmF3X2NtZF9zaG93LA0KPiArCQkodm9pZCAqKSZjbWRfc2hvd19zZXRfcmF3X2NtZF93aGF0LA0K PiArCQkodm9pZCAqKSZjbWRfc2hvd19zZXRfcmF3X2NtZF9pbmRleCwNCj4gKwkJTlVMTCwNCj4g Kwl9LA0KPiArfTsNCj4gK2NtZGxpbmVfcGFyc2VfaW5zdF90IGNtZF9zaG93X3NldF9yYXdfYWxs ID0gew0KPiArCS5mID0gY21kX3Nob3dfc2V0X3Jhd19wYXJzZWQsDQo+ICsJLmRhdGEgPSBOVUxM LA0KPiArCS5oZWxwX3N0ciA9ICJzaG93IDxyYXdfZW5jYXB8cmF3X2RlY2FwPiBhbGwiLA0KPiAr CS50b2tlbnMgPSB7DQo+ICsJCSh2b2lkICopJmNtZF9zaG93X3NldF9yYXdfY21kX3Nob3csDQo+ ICsJCSh2b2lkICopJmNtZF9zaG93X3NldF9yYXdfY21kX3doYXQsDQo+ICsJCSh2b2lkICopJmNt ZF9zaG93X3NldF9yYXdfY21kX2FsbCwNCj4gKwkJTlVMTCwNCj4gKwl9LA0KPiArfTsNCj4gZGlm ZiAtLWdpdCBhL2FwcC90ZXN0LXBtZC90ZXN0cG1kLmggYi9hcHAvdGVzdC1wbWQvdGVzdHBtZC5o DQo+IGluZGV4IGNlMTNlYjhlNmEuLmE2NTYzNWQ2ZmYgMTAwNjQ0DQo+IC0tLSBhL2FwcC90ZXN0 LXBtZC90ZXN0cG1kLmgNCj4gKysrIGIvYXBwL3Rlc3QtcG1kL3Rlc3RwbWQuaA0KPiBAQCAtMjY1 LDYgKzI2NSw4IEBAIGV4dGVybiBzdHJ1Y3QgZndkX2VuZ2luZSBpZWVlMTU4OF9md2RfZW5naW5l Ow0KPiAgDQo+ICBleHRlcm4gc3RydWN0IGZ3ZF9lbmdpbmUgKiBmd2RfZW5naW5lc1tdOyAvKio8 IE5VTEwgdGVybWluYXRlZCBhcnJheS4gKi8NCj4gIGV4dGVybiBjbWRsaW5lX3BhcnNlX2luc3Rf dCBjbWRfc2V0X3JhdzsNCj4gK2V4dGVybiBjbWRsaW5lX3BhcnNlX2luc3RfdCBjbWRfc2hvd19z ZXRfcmF3Ow0KPiArZXh0ZXJuIGNtZGxpbmVfcGFyc2VfaW5zdF90IGNtZF9zaG93X3NldF9yYXdf YWxsOw0KPiAgDQo+ICBleHRlcm4gdWludDE2X3QgbWVtcG9vbF9mbGFnczsNCj4gIA0KPiBkaWZm IC0tZ2l0IGEvZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91Zy90ZXN0cG1kX2Z1bmNzLnJzdCBiL2Rv Yy9ndWlkZXMvdGVzdHBtZF9hcHBfdWcvdGVzdHBtZF9mdW5jcy5yc3QNCj4gaW5kZXggNjdmNDMz OWNhOS4uMWNmOWEyYmRmZiAxMDA2NDQNCj4gLS0tIGEvZG9jL2d1aWRlcy90ZXN0cG1kX2FwcF91 Zy90ZXN0cG1kX2Z1bmNzLnJzdA0KPiArKysgYi9kb2MvZ3VpZGVzL3Rlc3RwbWRfYXBwX3VnL3Rl c3RwbWRfZnVuY3MucnN0DQo+IEBAIC01NDAsNiArNTQwLDI1IEBAIER1bXBzIHRoZSBsb2cgbGV2 ZWwgZm9yIGFsbCB0aGUgZHBkayBtb2R1bGVzOjoNCj4gIA0KPiAgICAgdGVzdHBtZD4gZHVtcF9s b2dfdHlwZXMNCj4gIA0KPiArc2hvdyAocmF3X2VuY2FwfHJhd19kZWNhcCkNCj4gK35+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+DQo+ICsNCj4gK0Rpc3BsYXkgY29udGVudCBvZiByYXdfZW5jYXAv cmF3X2RlY2FwIGJ1ZmZlcnMgaW4gaGV4OjoNCj4gKw0KPiArICB0ZXN0cG1kPiBzaG93IDxyYXdf ZW5jYXB8cmF3X2RlY2FwPiA8aW5kZXg+DQo+ICsgIHRlc3RwbWQ+IHNob3cgPHJhd19lbmNhcHxy YXdfZGVjYXA+IGFsbA0KPiArDQo+ICtGb3IgZXhhbXBsZTo6DQo+ICsNCj4gKyAgdGVzdHBtZD4g c2hvdyByYXdfZW5jYXAgNg0KPiArDQo+ICsgIGluZGV4OiA2IGF0IFsweDFjNTY1YjBdLCBsZW49 NTANCj4gKyAgMDAwMDAwMDA6IDAwIDAwIDAwIDAwIDAwIDAwIDE2IDI2IDM2IDQ2IDU2IDY2IDA4 IDAwIDQ1IDAwIHwgLi4uLi4uLiY2RlZmLi5FLg0KPiArICAwMDAwMDAxMDogMDAgMDAgMDAgMDAg MDAgMDAgMDAgMTEgMDAgMDAgQzAgQTggMDEgMDYgQzAgQTggfCAuLi4uLi4uLi4uLi4uLi4uDQo+ ICsgIDAwMDAwMDIwOiAwMyAwNiAwMCAwMCAwMCBGQSAwMCAwMCAwMCAwMCAwOCAwMCAwMCAwMCAw MCAwMCB8IC4uLi4uLi4uLi4uLi4uLi4NCj4gKyAgMDAwMDAwMzA6IDA2IDAwICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgLi4NCj4gKw0KPiArDQo+ICBDb25maWd1 cmF0aW9uIEZ1bmN0aW9ucw0KPiAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCj4gIA0KPiBAQCAt MTg0NCwxMiArMTg2MywyMiBAQCBDb25maWcgUmF3IEVuY2Fwc3VsYXRpb24NCj4gIENvbmZpZ3Vy ZSB0aGUgcmF3IGRhdGEgdG8gYmUgdXNlZCB3aGVuIGVuY2Fwc3VsYXRpbmcgYSBwYWNrZXQgYnkN Cj4gIHJ0ZV9mbG93X2FjdGlvbl9yYXdfZW5jYXA6Og0KPiAgDQo+ICsgc2V0IHJhd19lbmNhcCB7 aW5kZXh9IHtpdGVtfSBbLyB7aXRlbX0gWy4uLl1dIC8gZW5kX3NldA0KPiArDQo+ICtUaGVyZSBh cmUgbXVsdGlwbGUgZ2xvYmFsIGJ1ZmZlcnMgZm9yIGBgcmF3X2VuY2FwYGAsIHRoaXMgY29tbWFu ZCB3aWxsIHNldCBvbmUNCj4gK2ludGVybmFsIGJ1ZmZlciBpbmRleCBieSBgYHtpbmRleH1gYC4N Cj4gK0lmIHRoZXJlIGlzIG5vIGBge2luZGV4fWBgIHNwZWNpZmllZDo6DQo+ICsNCj4gICBzZXQg cmF3X2VuY2FwIHtpdGVtfSBbLyB7aXRlbX0gWy4uLl1dIC8gZW5kX3NldA0KPiAgDQo+IC1UaGlz IGNvbW1hbmQgd2lsbCBzZXQgYW4gaW50ZXJuYWwgYnVmZmVyIGluc2lkZSB0ZXN0cG1kLCBhbnkg Zm9sbG93aW5nIGZsb3cgcnVsZQ0KPiAtdXNpbmcgdGhlIGFjdGlvbiByYXdfZW5jYXAgd2lsbCB1 c2UgdGhlIGxhc3QgY29uZmlndXJhdGlvbiBzZXQuDQo+IC1UbyBoYXZlIGEgZGlmZmVyZW50IGVu Y2Fwc3VsYXRpb24gaGVhZGVyLCB0aGlzIGNvbW1hbmQgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIHRo ZQ0KPiAtZmxvdyBydWxlIGNyZWF0aW9uLg0KPiArdGhlIGRlZmF1bHQgaW5kZXggYGAwYGAgaXMg dXNlZC4NCj4gK0luIG9yZGVyIHRvIHVzZSBkaWZmZXJlbnQgZW5jYXBzdWxhdGluZyBoZWFkZXIs IGBgaW5kZXhgYCBtdXN0IGJlIHNwZWNpZmllZA0KPiArZHVyaW5nIHRoZSBmbG93IHJ1bGUgY3Jl YXRpb246Og0KPiArDQo+ICsgdGVzdHBtZD4gZmxvdyBjcmVhdGUgMCBlZ3Jlc3MgcGF0dGVybiBl dGggLyBpcHY0IC8gZW5kIGFjdGlvbnMNCj4gKyAgICAgICAgcmF3X2VuY2FwIGluZGV4IDIgLyBl bmQNCj4gKw0KPiArT3RoZXJ3aXNlIHRoZSBkZWZhdWx0IGluZGV4IGBgMGBgIGlzIHVzZWQuDQo+ ICANCj4gIENvbmZpZyBSYXcgRGVjYXBzdWxhdGlvbg0KPiAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+DQo+IEBAIC0xODU3LDEwICsxODg2LDIyIEBAIENvbmZpZyBSYXcgRGVjYXBzdWxhdGlvbg0K PiAgQ29uZmlndXJlIHRoZSByYXcgZGF0YSB0byBiZSB1c2VkIHdoZW4gZGVjYXBzdWxhdGluZyBh IHBhY2tldCBieQ0KPiAgcnRlX2Zsb3dfYWN0aW9uX3Jhd19kZWNhcDo6DQo+ICANCj4gKyBzZXQg cmF3X2RlY2FwIHtpbmRleH0ge2l0ZW19IFsvIHtpdGVtfSBbLi4uXV0gLyBlbmRfc2V0DQo+ICsN Cj4gK1RoZXJlIGFyZSBtdWx0aXBsZSBnbG9iYWwgYnVmZmVycyBmb3IgYGByYXdfZGVjYXBgYCwg dGhpcyBjb21tYW5kIHdpbGwgc2V0DQo+ICtvbmUgaW50ZXJuYWwgYnVmZmVyIGluZGV4IGJ5IGBg e2luZGV4fWBgLg0KPiArSWYgdGhlcmUgaXMgbm8gYGB7aW5kZXh9YGAgc3BlY2lmaWVkOjoNCj4g Kw0KPiAgIHNldCByYXdfZGVjYXAge2l0ZW19IFsvIHtpdGVtfSBbLi4uXV0gLyBlbmRfc2V0DQo+ ICANCj4gLVRoaXMgY29tbWFuZCB3aWxsIHNldCBhbiBpbnRlcm5hbCBidWZmZXIgaW5zaWRlIHRl c3RwbWQsIGFueSBmb2xsb3dpbmcgZmxvdyBydWxlDQo+IC11c2luZyB0aGUgYWN0aW9uIHJhd19k ZWNhcCB3aWxsIHVzZSB0aGUgbGFzdCBjb25maWd1cmF0aW9uIHNldC4NCj4gK3RoZSBkZWZhdWx0 IGluZGV4IGBgMGBgIGlzIHVzZWQuDQo+ICtJbiBvcmRlciB0byB1c2UgZGlmZmVyZW50IGRlY2Fw c3VsYXRpbmcgaGVhZGVyLCBgYGluZGV4YGAgbXVzdCBiZSBzcGVjaWZpZWQNCj4gK2R1cmluZyB0 aGUgZmxvdyBydWxlIGNyZWF0aW9uOjoNCj4gKw0KPiArIHRlc3RwbWQ+IGZsb3cgY3JlYXRlIDAg ZWdyZXNzIHBhdHRlcm4gZXRoIC8gaXB2NCAvIGVuZCBhY3Rpb25zDQo+ICsgICAgICAgICAgcmF3 X2VuY2FwIGluZGV4IDMgLyBlbmQNCj4gKw0KPiArT3RoZXJ3aXNlIHRoZSBkZWZhdWx0IGluZGV4 IGBgMGBgIGlzIHVzZWQuDQo+ICANCj4gIFBvcnQgRnVuY3Rpb25zDQo+ICAtLS0tLS0tLS0tLS0t LQ0KPiBAQCAtNDY1OCwxMSArNDY5OSwxMSBAQCBSYXcgZW5jYXBzdWxhdGlvbiBjb25maWd1cmF0 aW9uIGNhbiBiZSBzZXQgYnkgdGhlIGZvbGxvd2luZyBjb21tYW5kcw0KPiAgDQo+ICBFZWNhcHN1 bGF0aW5nIFZ4TEFOOjoNCj4gIA0KPiAtIHRlc3RwbWQ+IHNldCByYXdfZW5jYXAgZXRoIHNyYyBp cyAxMDoxMToyMjozMzo0NDo1NSAvIHZsYW4gdGNpIGlzIDENCj4gKyB0ZXN0cG1kPiBzZXQgcmF3 X2VuY2FwIDQgZXRoIHNyYyBpcyAxMDoxMToyMjozMzo0NDo1NSAvIHZsYW4gdGNpIGlzIDENCj4g ICAgICAgICAgaW5uZXJfdHlwZSBpcyAweDA4MDAgLyBpcHY0IC8gdWRwIGRzdCBpcyA0Nzg5IC8g dnhsYW4gdm5pDQo+ICAgICAgICAgIGlzIDIgLyBlbmRfc2V0DQo+ICAgdGVzdHBtZD4gZmxvdyBj cmVhdGUgMCBlZ3Jlc3MgcGF0dGVybiBldGggLyBpcHY0IC8gZW5kIGFjdGlvbnMNCj4gLSAgICAg ICAgcmF3X2VuY2FwIC8gZW5kDQo+ICsgICAgICAgIHJhd19lbmNhcCBpbmRleCA0IC8gZW5kDQo+ ICANCj4gIFNhbXBsZSBSYXcgZGVjYXBzdWxhdGlvbiBydWxlDQo+ICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fg0KPiAtLSANCj4gMi4yMy4wDQo+IA0K