From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <xuemingl@mellanox.com>
Received: from EUR01-VE1-obe.outbound.protection.outlook.com
 (mail-ve1eur01on0085.outbound.protection.outlook.com [104.47.1.85])
 by dpdk.org (Postfix) with ESMTP id 969D51B82B
 for <dev@dpdk.org>; Tue, 10 Apr 2018 17:22:49 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;
 s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;
 bh=UQ180KuWk4xe9B8S3Gn6ZwSFLgUX1k1b2dt2YLZzNIo=;
 b=iivc0p2Q22z9u4f+49E8dGLu5u6pVENUMmrJ4gBNWcamBJz1eMqSFWCi3N8u08dmNuq3jVBKZscGTMwqZijrXz1ngfbQWT0GQ3iGNy0v9gdgPlOz1XNQ+XqAs/WF54ilTtev6wArh4wMQMOax6pDM02SYPWGgvgWO7HJmDo07PM=
Received: from VI1PR05MB1678.eurprd05.prod.outlook.com (10.165.235.152) by
 VI1PR05MB4253.eurprd05.prod.outlook.com (52.133.12.18) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id
 15.20.653.12; Tue, 10 Apr 2018 15:22:46 +0000
Received: from VI1PR05MB1678.eurprd05.prod.outlook.com
 ([fe80::b8e2:e81f:98a:b6d0]) by VI1PR05MB1678.eurprd05.prod.outlook.com
 ([fe80::b8e2:e81f:98a:b6d0%14]) with mapi id 15.20.0653.018; Tue, 10 Apr 2018
 15:22:46 +0000
From: "Xueming(Steven) Li" <xuemingl@mellanox.com>
To: =?utf-8?B?TsOpbGlvIExhcmFuamVpcm8=?= <nelio.laranjeiro@6wind.com>
CC: Shahaf Shuler <shahafs@mellanox.com>, "dev@dpdk.org" <dev@dpdk.org>
Thread-Topic: [PATCH v2 01/15] net/mlx5: support 16 hardware priorities
Thread-Index: AQHT0NCykGo5ACUCdEy/Ke6j8trDSaP6EmUAgAAD/OA=
Date: Tue, 10 Apr 2018 15:22:46 +0000
Message-ID: <VI1PR05MB16789673B7B0996F64BF751CACBE0@VI1PR05MB1678.eurprd05.prod.outlook.com>
References: <20180410133415.189905-1-xuemingl@mellanox.com>
 <20180410133415.189905-2-xuemingl@mellanox.com>
 <20180410144130.6byrrolegsimzyu3@laranjeiro-vm.dev.6wind.com>
In-Reply-To: <20180410144130.6byrrolegsimzyu3@laranjeiro-vm.dev.6wind.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: spf=none (sender IP is )
 smtp.mailfrom=xuemingl@mellanox.com; 
x-originating-ip: [114.83.166.179]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; VI1PR05MB4253;
 7:hP/vZPbP6sh7k8crtT2tWfXNhCw0U5wgqb09+zxyR5swH5i6sEgiMfxYy71qDKmQoVEpwqZfi8WNWb+OKR2RARqv0+KS1L7DXl273ji5HhXsC/3GvzCbDvw7DpsgwCxySkucD0/TKaNXXOJ64IYYEc5JwsYAnGXrsmgELGSFoJkOuQYteqTwSYW4r6ncK8PW6pXOC8EcIpVCUPk4tS7wpxIlCzflLmZ4R1ktkbaVetUWqYMQwICn89rzpkNL/tC8
x-ms-exchange-antispam-srfa-diagnostics: SOS;
x-ms-office365-filtering-ht: Tenant
X-MS-Office365-Filtering-Correlation-Id: ef04cceb-02f5-418f-84a4-08d59ef6e9f7
x-microsoft-antispam: UriScan:; BCL:0; PCL:0;
 RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(3008032)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020);
 SRVR:VI1PR05MB4253; 
x-ms-traffictypediagnostic: VI1PR05MB4253:
x-ld-processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr
x-microsoft-antispam-prvs: <VI1PR05MB4253474A6FDC03DEF1C990DDACBE0@VI1PR05MB4253.eurprd05.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:;
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0;
 RULEID:(8211001083)(6040522)(2401047)(5005006)(8121501046)(10201501046)(3002001)(3231221)(944501327)(52105095)(93006095)(93001095)(6055026)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(6072148)(201708071742011);
 SRVR:VI1PR05MB4253; BCL:0; PCL:0; RULEID:; SRVR:VI1PR05MB4253; 
x-forefront-prvs: 0638FD5066
x-forefront-antispam-report: SFV:NSPM;
 SFS:(10009020)(396003)(39380400002)(39860400002)(346002)(366004)(376002)(189003)(199004)(13464003)(81166006)(6916009)(25786009)(105586002)(33656002)(229853002)(4326008)(305945005)(5250100002)(3280700002)(186003)(26005)(68736007)(7736002)(5660300001)(14454004)(74316002)(476003)(6116002)(478600001)(3660700001)(76176011)(2900100001)(2906002)(6436002)(6506007)(81156014)(54906003)(59450400001)(6246003)(53936002)(55016002)(53546011)(316002)(9686003)(97736004)(86362001)(66066001)(3846002)(102836004)(7696005)(99286004)(446003)(106356001)(486006)(11346002)(8936002)(8676002);
 DIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR05MB4253;
 H:VI1PR05MB1678.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-microsoft-antispam-message-info: wx8X74wQPZRhjXjSfrg4d/Qo/TVbYi/kGHXx+6aII8rogIARkdeeOaTx8+veijGVsda7zLC9U3jWZ/dZh3ydnEm7rEdK2RL2Ajf76au3SS0YkWQG5N9G1rBjUlGV8iZJM6A09ZpU0r4UIC7U1Kna7fLX2ANvq0k7XjAChf79++we7dzZEA1UtMDQSNxYuBbloz08+sKZdLiqqi0vHI4ZI0xvoMxcHTmw79fcpe7Uf8GyKprp1+GZrDUW/fUAn9UDYUM9fnw4OQabkdOD8vUXAsDTwPGbL7WC2GF/1dg0QwONNyfr7eMM4afJn42r+2uLpjnxG/UQDb7GTo5UTjR32UL9A2tHVl5zQB9pfXlzAiizE9DV/iN/4llem9trZdmaUitUFa+mmILErWCrxAwUHJj/dthd+JrhdPILqwccYzI=
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: Mellanox.com
X-MS-Exchange-CrossTenant-Network-Message-Id: ef04cceb-02f5-418f-84a4-08d59ef6e9f7
X-MS-Exchange-CrossTenant-originalarrivaltime: 10 Apr 2018 15:22:46.5374 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b
X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR05MB4253
Subject: Re: [dpdk-dev] [PATCH v2 01/15] net/mlx5: support 16 hardware
	priorities
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Tue, 10 Apr 2018 15:22:49 -0000

SGkgTmVsaW8sDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogTsOpbGlv
IExhcmFuamVpcm8gPG5lbGlvLmxhcmFuamVpcm9ANndpbmQuY29tPg0KPiBTZW50OiBUdWVzZGF5
LCBBcHJpbCAxMCwgMjAxOCAxMDo0MiBQTQ0KPiBUbzogWHVlbWluZyhTdGV2ZW4pIExpIDx4dWVt
aW5nbEBtZWxsYW5veC5jb20+DQo+IENjOiBTaGFoYWYgU2h1bGVyIDxzaGFoYWZzQG1lbGxhbm94
LmNvbT47IGRldkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSZTogW1BBVENIIHYyIDAxLzE1XSBuZXQv
bWx4NTogc3VwcG9ydCAxNiBoYXJkd2FyZSBwcmlvcml0aWVzDQo+IA0KPiBPbiBUdWUsIEFwciAx
MCwgMjAxOCBhdCAwOTozNDowMVBNICswODAwLCBYdWVtaW5nIExpIHdyb3RlOg0KPiA+IEFkanVz
dCBmbG93IHByaW9yaXR5IG1hcHBpbmcgdG8gYWRhcHQgbmV3IGhhcmR3YXJlIDE2IHZlcmIgZmxv
dw0KPiA+IHByaW9yaXRlcyBzdXBwb3J0Og0KPiA+IDAtMzogUlRFIEZMT1cgdHVubmVsIHJ1bGUN
Cj4gPiA0LTc6IFJURSBGTE9XIG5vbi10dW5uZWwgcnVsZQ0KPiA+IDgtMTU6IFBNRCBjb250cm9s
IGZsb3cNCj4gDQo+IFRoaXMgY29tbWl0IGxvZyBpcyBpbmR1Y2luZyBwZW9wbGUgaW4gZXJyb3Is
IHRoaXMgYW1vdW50IG9mIHByaW9yaXR5DQo+IGRlcGVuZHMgb24gdGhlIE1lbGxhbm94IE9GRUQg
aW5zdGFsbGVkLCBpdCBpcyBub3QgYXZhaWxhYmxlIG9uIHVwc3RyZWFtDQo+IExpbnV4IGtlcm5l
bCB5ZXQgbm9yIGluIHRoZSBjdXJyZW50IE1lbGxhbm94IE9GRUQgR0EuDQo+IA0KPiBXaGF0IGhh
cHBlbnMgd2hlbiB0aG9zZSBhbW91bnQgb2YgcHJpb3JpdHkgYXJlIG5vdCBhdmFpbGFibGUsIGlz
IGl0DQo+IHJlbW92aW5nIGEgZnVuY3Rpb25hbGl0eT8gIFdpbGwgaXQgY29sbGlkZSB3aXRoIG90
aGVyIGZsb3dzPw0KDQpJZiAxNiAgcHJpb3JpdGllcyBub3QgYXZhaWxhYmxlLCBzaW1wbHkgYmVo
YXZpb3IgYXMgOCBwcmlvcml0aWVzLg0KDQo+IA0KPiA+IFNpZ25lZC1vZmYtYnk6IFh1ZW1pbmcg
TGkgPHh1ZW1pbmdsQG1lbGxhbm94LmNvbT4NCj4gPiAtLS0NCj4gPiAgZHJpdmVycy9uZXQvbWx4
NS9tbHg1LmMgICAgICAgICB8ICAxMCArKysrDQo+ID4gIGRyaXZlcnMvbmV0L21seDUvbWx4NS5o
ICAgICAgICAgfCAgIDggKysrDQo+ID4gIGRyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMgICAg
fCAxMDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tDQo+IC0tLS0tLS0NCj4gPiAg
ZHJpdmVycy9uZXQvbWx4NS9tbHg1X3RyaWdnZXIuYyB8ICAgOCAtLS0NCj4gPiAgNCBmaWxlcyBj
aGFuZ2VkLCAxMDAgaW5zZXJ0aW9ucygrKSwgMzMgZGVsZXRpb25zKC0pDQo+ID4NCj4gPiBkaWZm
IC0tZ2l0IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1LmMgYi9kcml2ZXJzL25ldC9tbHg1L21seDUu
YyBpbmRleA0KPiA+IGNmYWI1NTg5Ny4uYTFmMjc5OWU1IDEwMDY0NA0KPiA+IC0tLSBhL2RyaXZl
cnMvbmV0L21seDUvbWx4NS5jDQo+ID4gKysrIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1LmMNCj4g
PiBAQCAtMTk3LDYgKzE5Nyw3IEBAIG1seDVfZGV2X2Nsb3NlKHN0cnVjdCBydGVfZXRoX2RldiAq
ZGV2KQ0KPiA+ICAJCXByaXYtPnR4cXNfbiA9IDA7DQo+ID4gIAkJcHJpdi0+dHhxcyA9IE5VTEw7
DQo+ID4gIAl9DQo+ID4gKwltbHg1X2Zsb3dfZGVsZXRlX2Ryb3BfcXVldWUoZGV2KTsNCj4gPg0K
PiA+ICAJaWYgKHByaXYtPnBkICE9IE5VTEwpIHsNCj4gPiAgCQlhc3NlcnQocHJpdi0+Y3R4ICE9
IE5VTEwpOw0KPiA+ICAJCWNsYWltX3plcm8obWx4NV9nbHVlLT5kZWFsbG9jX3BkKHByaXYtPnBk
KSk7DQo+ID4gQEAgLTk5Myw2ICs5OTQsMTUgQEAgbWx4NV9wY2lfcHJvYmUoc3RydWN0IHJ0ZV9w
Y2lfZHJpdmVyICpwY2lfZHJ2DQo+IF9fcnRlX3VudXNlZCwNCj4gPiAgCQltbHg1X3NldF9saW5r
X3VwKGV0aF9kZXYpOw0KPiA+ICAJCS8qIFN0b3JlIGRldmljZSBjb25maWd1cmF0aW9uIG9uIHBy
aXZhdGUgc3RydWN0dXJlLiAqLw0KPiA+ICAJCXByaXYtPmNvbmZpZyA9IGNvbmZpZzsNCj4gPiAr
CQkvKiBDcmVhdGUgZHJvcCBxdWV1ZS4gKi8NCj4gPiArCQllcnIgPSBtbHg1X2Zsb3dfY3JlYXRl
X2Ryb3BfcXVldWUoZXRoX2Rldik7DQo+ID4gKwkJaWYgKGVycikgew0KPiA+ICsJCQlEUlZfTE9H
KEVSUiwgInBvcnQgJXUgZHJvcCBxdWV1ZSBhbGxvY2F0aW9uIGZhaWxlZDogJXMiLA0KPiA+ICsJ
CQkJZXRoX2Rldi0+ZGF0YS0+cG9ydF9pZCwgc3RyZXJyb3IocnRlX2Vycm5vKSk7DQo+ID4gKwkJ
CWdvdG8gcG9ydF9lcnJvcjsNCj4gPiArCQl9DQo+ID4gKwkJLyogU3VwcG9ydGVkIGZsb3cgcHJp
b3JpdHkgbnVtYmVyIGRldGVjdGlvbi4gKi8NCj4gPiArCQltbHg1X2Zsb3dfcHJpb3JpdGllc19k
ZXRlY3QoZXRoX2Rldik7DQo+ID4gIAkJY29udGludWU7DQo+ID4gIHBvcnRfZXJyb3I6DQo+ID4g
IAkJaWYgKHByaXYpDQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L21seDUvbWx4NS5oIGIv
ZHJpdmVycy9uZXQvbWx4NS9tbHg1LmggaW5kZXgNCj4gPiA2M2IyNGU2YmIuLjcwODI3MmY2ZCAx
MDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC9tbHg1L21seDUuaA0KPiA+ICsrKyBiL2RyaXZl
cnMvbmV0L21seDUvbWx4NS5oDQo+ID4gQEAgLTg5LDYgKzg5LDggQEAgc3RydWN0IG1seDVfZGV2
X2NvbmZpZyB7DQo+ID4gIAl1bnNpZ25lZCBpbnQgcnhfdmVjX2VuOjE7IC8qIFJ4IHZlY3RvciBp
cyBlbmFibGVkLiAqLw0KPiA+ICAJdW5zaWduZWQgaW50IG1wd19oZHJfZHNlZzoxOyAvKiBFbmFi
bGUgRFNFR3MgaW4gdGhlIHRpdGxlIFdRRUJCLiAqLw0KPiA+ICAJdW5zaWduZWQgaW50IHZmX25s
X2VuOjE7IC8qIEVuYWJsZSBOZXRsaW5rIHJlcXVlc3RzIGluIFZGIG1vZGUuICovDQo+ID4gKwl1
bnNpZ25lZCBpbnQgZmxvd19wcmlvcml0eV9zaGlmdDsgLyogTm9uLXR1bm5lbCBmbG93IHByaW9y
aXR5IHNoaWZ0Lg0KPiAqLw0KPiA+ICsJdW5zaWduZWQgaW50IGNvbnRyb2xfZmxvd19wcmlvcml0
eTsgLyogQ29udHJvbCBmbG93IHByaW9yaXR5LiAqLw0KPiA+ICAJdW5zaWduZWQgaW50IHRzb19t
YXhfcGF5bG9hZF9zejsgLyogTWF4aW11bSBUQ1AgcGF5bG9hZCBmb3IgVFNPLiAqLw0KPiA+ICAJ
dW5zaWduZWQgaW50IGluZF90YWJsZV9tYXhfc2l6ZTsgLyogTWF4aW11bSBpbmRpcmVjdGlvbiB0
YWJsZSBzaXplLg0KPiAqLw0KPiA+ICAJaW50IHR4cV9pbmxpbmU7IC8qIE1heGltdW0gcGFja2V0
IHNpemUgZm9yIGlubGluaW5nLiAqLyBAQCAtMTA1LDYNCj4gPiArMTA3LDExIEBAIGVudW0gbWx4
NV92ZXJic19hbGxvY190eXBlIHsNCj4gPiAgCU1MWDVfVkVSQlNfQUxMT0NfVFlQRV9SWF9RVUVV
RSwNCj4gPiAgfTsNCj4gPg0KPiA+ICsvKiA4IFZlcmJzIHByaW9yaXRpZXMgcGVyIGZsb3cuICov
DQo+ID4gKyNkZWZpbmUgTUxYNV9WRVJCU19GTE9XX1BSSU9fOCA4DQo+ID4gKy8qIDQgVmVyYnMg
cHJpb3JpdGllcyBwZXIgZmxvdy4gKi8NCj4gPiArI2RlZmluZSBNTFg1X1ZFUkJTX0ZMT1dfUFJJ
T180IDQNCj4gPiArDQo+ID4gIC8qKg0KPiA+ICAgKiBWZXJicyBhbGxvY2F0b3IgbmVlZHMgYSBj
b250ZXh0IHRvIGtub3cgaW4gdGhlIGNhbGxiYWNrIHdoaWNoIGtpbmQNCj4gb2YNCj4gPiAgICog
cmVzb3VyY2VzIGl0IGlzIGFsbG9jYXRpbmcuDQo+ID4gQEAgLTI1Myw2ICsyNjAsNyBAQCBpbnQg
bWx4NV90cmFmZmljX3Jlc3RhcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KPiA+DQo+ID4g
IC8qIG1seDVfZmxvdy5jICovDQo+ID4NCj4gPiArdm9pZCBtbHg1X2Zsb3dfcHJpb3JpdGllc19k
ZXRlY3Qoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYpOw0KPiA+ICBpbnQgbWx4NV9mbG93X3ZhbGlk
YXRlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ICAJCSAgICAgICBjb25zdCBzdHJ1Y3Qg
cnRlX2Zsb3dfYXR0ciAqYXR0ciwNCj4gPiAgCQkgICAgICAgY29uc3Qgc3RydWN0IHJ0ZV9mbG93
X2l0ZW0gaXRlbXNbXSwgZGlmZiAtLWdpdA0KPiA+IGEvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zs
b3cuYyBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV9mbG93LmMgaW5kZXgNCj4gPiAyODg2MTA2MjAu
LjM5NDc2MDQxOCAxMDA2NDQNCj4gPiAtLS0gYS9kcml2ZXJzL25ldC9tbHg1L21seDVfZmxvdy5j
DQo+ID4gKysrIGIvZHJpdmVycy9uZXQvbWx4NS9tbHg1X2Zsb3cuYw0KPiA+IEBAIC0zMiw5ICsz
Miw2IEBADQo+ID4gICNpbmNsdWRlICJtbHg1X3BybS5oIg0KPiA+ICAjaW5jbHVkZSAibWx4NV9n
bHVlLmgiDQo+ID4NCj4gPiAtLyogRGVmaW5lIG1pbmltYWwgcHJpb3JpdHkgZm9yIGNvbnRyb2wg
cGxhbmUgZmxvd3MuICovIC0jZGVmaW5lDQo+ID4gTUxYNV9DVFJMX0ZMT1dfUFJJT1JJVFkgNA0K
PiA+IC0NCj4gPiAgLyogSW50ZXJuZXQgUHJvdG9jb2wgdmVyc2lvbnMuICovDQo+ID4gICNkZWZp
bmUgTUxYNV9JUFY0IDQNCj4gPiAgI2RlZmluZSBNTFg1X0lQVjYgNg0KPiA+IEBAIC0xMjksNyAr
MTI2LDcgQEAgY29uc3Qgc3RydWN0IGhhc2hfcnhxX2luaXQgaGFzaF9yeHFfaW5pdFtdID0gew0K
PiA+ICAJCQkJSUJWX1JYX0hBU0hfU1JDX1BPUlRfVENQIHwNCj4gPiAgCQkJCUlCVl9SWF9IQVNI
X0RTVF9QT1JUX1RDUCksDQo+ID4gIAkJLmRwZGtfcnNzX2hmID0gRVRIX1JTU19OT05GUkFHX0lQ
VjRfVENQLA0KPiA+IC0JCS5mbG93X3ByaW9yaXR5ID0gMSwNCj4gPiArCQkuZmxvd19wcmlvcml0
eSA9IDAsDQo+ID4gIAkJLmlwX3ZlcnNpb24gPSBNTFg1X0lQVjQsDQo+ID4gIAl9LA0KPiA+ICAJ
W0hBU0hfUlhRX1VEUFY0XSA9IHsNCj4gPiBAQCAtMTM4LDcgKzEzNSw3IEBAIGNvbnN0IHN0cnVj
dCBoYXNoX3J4cV9pbml0IGhhc2hfcnhxX2luaXRbXSA9IHsNCj4gPiAgCQkJCUlCVl9SWF9IQVNI
X1NSQ19QT1JUX1VEUCB8DQo+ID4gIAkJCQlJQlZfUlhfSEFTSF9EU1RfUE9SVF9VRFApLA0KPiA+
ICAJCS5kcGRrX3Jzc19oZiA9IEVUSF9SU1NfTk9ORlJBR19JUFY0X1VEUCwNCj4gPiAtCQkuZmxv
d19wcmlvcml0eSA9IDEsDQo+ID4gKwkJLmZsb3dfcHJpb3JpdHkgPSAwLA0KPiA+ICAJCS5pcF92
ZXJzaW9uID0gTUxYNV9JUFY0LA0KPiA+ICAJfSwNCj4gPiAgCVtIQVNIX1JYUV9JUFY0XSA9IHsN
Cj4gPiBAQCAtMTQ2LDcgKzE0Myw3IEBAIGNvbnN0IHN0cnVjdCBoYXNoX3J4cV9pbml0IGhhc2hf
cnhxX2luaXRbXSA9IHsNCj4gPiAgCQkJCUlCVl9SWF9IQVNIX0RTVF9JUFY0KSwNCj4gPiAgCQku
ZHBka19yc3NfaGYgPSAoRVRIX1JTU19JUFY0IHwNCj4gPiAgCQkJCUVUSF9SU1NfRlJBR19JUFY0
KSwNCj4gPiAtCQkuZmxvd19wcmlvcml0eSA9IDIsDQo+ID4gKwkJLmZsb3dfcHJpb3JpdHkgPSAx
LA0KPiA+ICAJCS5pcF92ZXJzaW9uID0gTUxYNV9JUFY0LA0KPiA+ICAJfSwNCj4gPiAgCVtIQVNI
X1JYUV9UQ1BWNl0gPSB7DQo+ID4gQEAgLTE1NSw3ICsxNTIsNyBAQCBjb25zdCBzdHJ1Y3QgaGFz
aF9yeHFfaW5pdCBoYXNoX3J4cV9pbml0W10gPSB7DQo+ID4gIAkJCQlJQlZfUlhfSEFTSF9TUkNf
UE9SVF9UQ1AgfA0KPiA+ICAJCQkJSUJWX1JYX0hBU0hfRFNUX1BPUlRfVENQKSwNCj4gPiAgCQku
ZHBka19yc3NfaGYgPSBFVEhfUlNTX05PTkZSQUdfSVBWNl9UQ1AsDQo+ID4gLQkJLmZsb3dfcHJp
b3JpdHkgPSAxLA0KPiA+ICsJCS5mbG93X3ByaW9yaXR5ID0gMCwNCj4gPiAgCQkuaXBfdmVyc2lv
biA9IE1MWDVfSVBWNiwNCj4gPiAgCX0sDQo+ID4gIAlbSEFTSF9SWFFfVURQVjZdID0gew0KPiA+
IEBAIC0xNjQsNyArMTYxLDcgQEAgY29uc3Qgc3RydWN0IGhhc2hfcnhxX2luaXQgaGFzaF9yeHFf
aW5pdFtdID0gew0KPiA+ICAJCQkJSUJWX1JYX0hBU0hfU1JDX1BPUlRfVURQIHwNCj4gPiAgCQkJ
CUlCVl9SWF9IQVNIX0RTVF9QT1JUX1VEUCksDQo+ID4gIAkJLmRwZGtfcnNzX2hmID0gRVRIX1JT
U19OT05GUkFHX0lQVjZfVURQLA0KPiA+IC0JCS5mbG93X3ByaW9yaXR5ID0gMSwNCj4gPiArCQku
Zmxvd19wcmlvcml0eSA9IDAsDQo+ID4gIAkJLmlwX3ZlcnNpb24gPSBNTFg1X0lQVjYsDQo+ID4g
IAl9LA0KPiA+ICAJW0hBU0hfUlhRX0lQVjZdID0gew0KPiA+IEBAIC0xNzIsMTMgKzE2OSwxMyBA
QCBjb25zdCBzdHJ1Y3QgaGFzaF9yeHFfaW5pdCBoYXNoX3J4cV9pbml0W10gPSB7DQo+ID4gIAkJ
CQlJQlZfUlhfSEFTSF9EU1RfSVBWNiksDQo+ID4gIAkJLmRwZGtfcnNzX2hmID0gKEVUSF9SU1Nf
SVBWNiB8DQo+ID4gIAkJCQlFVEhfUlNTX0ZSQUdfSVBWNiksDQo+ID4gLQkJLmZsb3dfcHJpb3Jp
dHkgPSAyLA0KPiA+ICsJCS5mbG93X3ByaW9yaXR5ID0gMSwNCj4gPiAgCQkuaXBfdmVyc2lvbiA9
IE1MWDVfSVBWNiwNCj4gPiAgCX0sDQo+ID4gIAlbSEFTSF9SWFFfRVRIXSA9IHsNCj4gPiAgCQku
aGFzaF9maWVsZHMgPSAwLA0KPiA+ICAJCS5kcGRrX3Jzc19oZiA9IDAsDQo+ID4gLQkJLmZsb3df
cHJpb3JpdHkgPSAzLA0KPiA+ICsJCS5mbG93X3ByaW9yaXR5ID0gMiwNCj4gPiAgCX0sDQo+ID4g
IH07DQo+IA0KPiBJZiB0aGUgYW1vdW50IG9mIHByaW9yaXRpZXMgcmVtYWlucyA4LCB5b3UgYXJl
IHJlbW92aW5nIHRoZSBwcmlvcml0eSBmb3INCj4gdGhlIHR1bm5lbCBmbG93cyBpbnRyb2R1Y2Vk
IGJ5IGNvbW1pdCA3NDkzNjU3MTdmNWMgKCJuZXQvbWx4NTogY2hhbmdlDQo+IHR1bm5lbCBmbG93
IHByaW9yaXR5IikNCj4gDQo+IFBsZWFzZSBrZWVwIHRoaXMgZnVuY3Rpb25hbGl0eSB3aGVuIHRo
aXMgcGF0Y2ggZmFpbHMgdG8gZ2V0IHRoZSBleHBlY3RlZA0KPiAxNiBWZXJicyBwcmlvcml0aWVz
Lg0KDQpUaGVzZSBwcmlvcml0eSBzaGlmdCBhcmUgZGlmZmVyZW50IGluIDE2IHByaW9yaXRpZXMg
c2NlbmFyaW8sIEkgY2hhbmdlZCBpdA0KdG8gY2FsY3VsYXRpb24uIEluIGZ1bmN0aW9uIG1seDVf
Zmxvd19wcmlvcml0aWVzX2RldGVjdCgpLCBwcmlvcml0eSBzaGlmdCANCndpbGwgYmUgMSBpZiA4
IHByaW9yaXRpZXMsIDQgaW4gY2FzZSBvZiAxNiBwcmlvcml0aWVzLiBQbGVhc2UgcmVmZXIgdG8g
Y2hhbmdlcw0KaW4gZnVuY3Rpb24gbWx4NV9mbG93X3VwZGF0ZV9wcmlvcml0eSgpIGFzIHdlbGwu
DQoNCj4gDQo+ID4gQEAgLTUzNiw2ICs1MzMsOCBAQCBtbHg1X2Zsb3dfaXRlbV92YWxpZGF0ZShj
b25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbQ0KPiA+ICppdGVtLA0KPiA+ICAvKioNCj4gPiAgICog
RXh0cmFjdCBhdHRyaWJ1dGUgdG8gdGhlIHBhcnNlci4NCj4gPiAgICoNCj4gPiArICogQHBhcmFt
IGRldg0KPiA+ICsgKiAgIFBvaW50ZXIgdG8gRXRoZXJuZXQgZGV2aWNlLg0KPiA+ICAgKiBAcGFy
YW1baW5dIGF0dHINCj4gPiAgICogICBGbG93IHJ1bGUgYXR0cmlidXRlcy4NCj4gPiAgICogQHBh
cmFtW291dF0gZXJyb3INCj4gPiBAQCAtNTQ1LDkgKzU0NCwxMiBAQCBtbHg1X2Zsb3dfaXRlbV92
YWxpZGF0ZShjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfaXRlbQ0KPiAqaXRlbSwNCj4gPiAgICogICAw
IG9uIHN1Y2Nlc3MsIGEgbmVnYXRpdmUgZXJybm8gdmFsdWUgb3RoZXJ3aXNlIGFuZCBydGVfZXJy
bm8gaXMNCj4gc2V0Lg0KPiA+ICAgKi8NCj4gPiAgc3RhdGljIGludA0KPiA+IC1tbHg1X2Zsb3df
Y29udmVydF9hdHRyaWJ1dGVzKGNvbnN0IHN0cnVjdCBydGVfZmxvd19hdHRyICphdHRyLA0KPiA+
ICttbHg1X2Zsb3dfY29udmVydF9hdHRyaWJ1dGVzKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0K
PiA+ICsJCQkgICAgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19hdHRyICphdHRyLA0KPiA+ICAJCQkg
ICAgIHN0cnVjdCBydGVfZmxvd19lcnJvciAqZXJyb3IpICB7DQo+ID4gKwlzdHJ1Y3QgcHJpdiAq
cHJpdiA9IGRldi0+ZGF0YS0+ZGV2X3ByaXZhdGU7DQo+ID4gKw0KPiA+ICAJaWYgKGF0dHItPmdy
b3VwKSB7DQo+ID4gIAkJcnRlX2Zsb3dfZXJyb3Jfc2V0KGVycm9yLCBFTk9UU1VQLA0KPiA+ICAJ
CQkJICAgUlRFX0ZMT1dfRVJST1JfVFlQRV9BVFRSX0dST1VQLCBAQCAtNTU1LDcNCj4gKzU1Nyw3
IEBADQo+ID4gbWx4NV9mbG93X2NvbnZlcnRfYXR0cmlidXRlcyhjb25zdCBzdHJ1Y3QgcnRlX2Zs
b3dfYXR0ciAqYXR0ciwNCj4gPiAgCQkJCSAgICJncm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQiKTsN
Cj4gPiAgCQlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiAgCX0NCj4gPiAtCWlmIChhdHRyLT5wcmlv
cml0eSAmJiBhdHRyLT5wcmlvcml0eSAhPSBNTFg1X0NUUkxfRkxPV19QUklPUklUWSkgew0KPiA+
ICsJaWYgKGF0dHItPnByaW9yaXR5ID4gcHJpdi0+Y29uZmlnLmNvbnRyb2xfZmxvd19wcmlvcml0
eSkgew0KPiA+ICAJCXJ0ZV9mbG93X2Vycm9yX3NldChlcnJvciwgRU5PVFNVUCwNCj4gPiAgCQkJ
CSAgIFJURV9GTE9XX0VSUk9SX1RZUEVfQVRUUl9QUklPUklUWSwNCj4gPiAgCQkJCSAgIE5VTEws
DQo+ID4gQEAgLTkwMCwzMCArOTAyLDM4IEBAIG1seDVfZmxvd19jb252ZXJ0X2FsbG9jYXRlKHVu
c2lnbmVkIGludCBzaXplLA0KPiBzdHJ1Y3QgcnRlX2Zsb3dfZXJyb3IgKmVycm9yKQ0KPiA+ICAg
KiBNYWtlIGlubmVyIHBhY2tldCBtYXRjaGluZyB3aXRoIGFuIGhpZ2hlciBwcmlvcml0eSBmcm9t
IHRoZSBub24NCj4gSW5uZXINCj4gPiAgICogbWF0Y2hpbmcuDQo+ID4gICAqDQo+ID4gKyAqIEBw
YXJhbSBkZXYNCj4gPiArICogICBQb2ludGVyIHRvIEV0aGVybmV0IGRldmljZS4NCj4gPiAgICog
QHBhcmFtW2luLCBvdXRdIHBhcnNlcg0KPiA+ICAgKiAgIEludGVybmFsIHBhcnNlciBzdHJ1Y3R1
cmUuDQo+ID4gICAqIEBwYXJhbSBhdHRyDQo+ID4gICAqICAgVXNlciBmbG93IGF0dHJpYnV0ZS4N
Cj4gPiAgICovDQo+ID4gIHN0YXRpYyB2b2lkDQo+ID4gLW1seDVfZmxvd191cGRhdGVfcHJpb3Jp
dHkoc3RydWN0IG1seDVfZmxvd19wYXJzZSAqcGFyc2VyLA0KPiA+ICttbHg1X2Zsb3dfdXBkYXRl
X3ByaW9yaXR5KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ICsJCQkgIHN0cnVjdCBtbHg1
X2Zsb3dfcGFyc2UgKnBhcnNlciwNCj4gPiAgCQkJICBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfYXR0
ciAqYXR0cikgIHsNCj4gPiArCXN0cnVjdCBwcml2ICpwcml2ID0gZGV2LT5kYXRhLT5kZXZfcHJp
dmF0ZTsNCj4gPiAgCXVuc2lnbmVkIGludCBpOw0KPiA+ICsJdWludDE2X3QgcHJpb3JpdHk7DQo+
ID4NCj4gPiArCWlmIChwcml2LT5jb25maWcuZmxvd19wcmlvcml0eV9zaGlmdCA9PSAxKQ0KPiA+
ICsJCXByaW9yaXR5ID0gYXR0ci0+cHJpb3JpdHkgKiBNTFg1X1ZFUkJTX0ZMT1dfUFJJT180Ow0K
PiA+ICsJZWxzZQ0KPiA+ICsJCXByaW9yaXR5ID0gYXR0ci0+cHJpb3JpdHkgKiBNTFg1X1ZFUkJT
X0ZMT1dfUFJJT184Ow0KPiA+ICsJaWYgKCFwYXJzZXItPmlubmVyKQ0KPiA+ICsJCXByaW9yaXR5
ICs9IHByaXYtPmNvbmZpZy5mbG93X3ByaW9yaXR5X3NoaWZ0Ow0KPiA+ICAJaWYgKHBhcnNlci0+
ZHJvcCkgew0KPiA+IC0JCXBhcnNlci0+cXVldWVbSEFTSF9SWFFfRVRIXS5pYnZfYXR0ci0+cHJp
b3JpdHkgPQ0KPiA+IC0JCQlhdHRyLT5wcmlvcml0eSArDQo+ID4gLQkJCWhhc2hfcnhxX2luaXRb
SEFTSF9SWFFfRVRIXS5mbG93X3ByaW9yaXR5Ow0KPiA+ICsJCXBhcnNlci0+cXVldWVbSEFTSF9S
WFFfRVRIXS5pYnZfYXR0ci0+cHJpb3JpdHkgPSBwcmlvcml0eSArDQo+ID4gKwkJCQloYXNoX3J4
cV9pbml0W0hBU0hfUlhRX0VUSF0uZmxvd19wcmlvcml0eTsNCj4gPiAgCQlyZXR1cm47DQo+ID4g
IAl9DQo+ID4gIAlmb3IgKGkgPSAwOyBpICE9IGhhc2hfcnhxX2luaXRfbjsgKytpKSB7DQo+ID4g
LQkJaWYgKHBhcnNlci0+cXVldWVbaV0uaWJ2X2F0dHIpIHsNCj4gPiAtCQkJcGFyc2VyLT5xdWV1
ZVtpXS5pYnZfYXR0ci0+cHJpb3JpdHkgPQ0KPiA+IC0JCQkJYXR0ci0+cHJpb3JpdHkgKw0KPiA+
IC0JCQkJaGFzaF9yeHFfaW5pdFtpXS5mbG93X3ByaW9yaXR5IC0NCj4gPiAtCQkJCShwYXJzZXIt
PmlubmVyID8gMSA6IDApOw0KPiA+IC0JCX0NCj4gPiArCQlpZiAoIXBhcnNlci0+cXVldWVbaV0u
aWJ2X2F0dHIpDQo+ID4gKwkJCWNvbnRpbnVlOw0KPiA+ICsJCXBhcnNlci0+cXVldWVbaV0uaWJ2
X2F0dHItPnByaW9yaXR5ID0gcHJpb3JpdHkgKw0KPiA+ICsJCQkJaGFzaF9yeHFfaW5pdFtpXS5m
bG93X3ByaW9yaXR5Ow0KPiA+ICAJfQ0KPiA+ICB9DQo+ID4NCj4gPiBAQCAtMTA4Nyw3ICsxMDk3
LDcgQEAgbWx4NV9mbG93X2NvbnZlcnQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsDQo+ID4gIAkJ
LmxheWVyID0gSEFTSF9SWFFfRVRILA0KPiA+ICAJCS5tYXJrX2lkID0gTUxYNV9GTE9XX01BUktf
REVGQVVMVCwNCj4gPiAgCX07DQo+ID4gLQlyZXQgPSBtbHg1X2Zsb3dfY29udmVydF9hdHRyaWJ1
dGVzKGF0dHIsIGVycm9yKTsNCj4gPiArCXJldCA9IG1seDVfZmxvd19jb252ZXJ0X2F0dHJpYnV0
ZXMoZGV2LCBhdHRyLCBlcnJvcik7DQo+ID4gIAlpZiAocmV0KQ0KPiA+ICAJCXJldHVybiByZXQ7
DQo+ID4gIAlyZXQgPSBtbHg1X2Zsb3dfY29udmVydF9hY3Rpb25zKGRldiwgYWN0aW9ucywgZXJy
b3IsIHBhcnNlcik7IEBADQo+ID4gLTExNTgsNyArMTE2OCw3IEBAIG1seDVfZmxvd19jb252ZXJ0
KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LA0KPiA+ICAJICovDQo+ID4gIAlpZiAoIXBhcnNlci0+
ZHJvcCkNCj4gPiAgCQltbHg1X2Zsb3dfY29udmVydF9maW5hbGlzZShwYXJzZXIpOw0KPiA+IC0J
bWx4NV9mbG93X3VwZGF0ZV9wcmlvcml0eShwYXJzZXIsIGF0dHIpOw0KPiA+ICsJbWx4NV9mbG93
X3VwZGF0ZV9wcmlvcml0eShkZXYsIHBhcnNlciwgYXR0cik7DQo+ID4gIGV4aXRfZnJlZToNCj4g
PiAgCS8qIE9ubHkgdmVyaWZpY2F0aW9uIGlzIGV4cGVjdGVkLCBhbGwgcmVzb3VyY2VzIHNob3Vs
ZCBiZSByZWxlYXNlZC4NCj4gKi8NCj4gPiAgCWlmICghcGFyc2VyLT5jcmVhdGUpIHsNCj4gPiBA
QCAtMjQ1MCw3ICsyNDYwLDcgQEAgbWx4NV9jdHJsX2Zsb3dfdmxhbihzdHJ1Y3QgcnRlX2V0aF9k
ZXYgKmRldiwNCj4gPiAgCXN0cnVjdCBwcml2ICpwcml2ID0gZGV2LT5kYXRhLT5kZXZfcHJpdmF0
ZTsNCj4gPiAgCWNvbnN0IHN0cnVjdCBydGVfZmxvd19hdHRyIGF0dHIgPSB7DQo+ID4gIAkJLmlu
Z3Jlc3MgPSAxLA0KPiA+IC0JCS5wcmlvcml0eSA9IE1MWDVfQ1RSTF9GTE9XX1BSSU9SSVRZLA0K
PiA+ICsJCS5wcmlvcml0eSA9IHByaXYtPmNvbmZpZy5jb250cm9sX2Zsb3dfcHJpb3JpdHksDQo+
ID4gIAl9Ow0KPiA+ICAJc3RydWN0IHJ0ZV9mbG93X2l0ZW0gaXRlbXNbXSA9IHsNCj4gPiAgCQl7
DQo+ID4gQEAgLTMxNjEsMyArMzE3MSw1MCBAQCBtbHg1X2Rldl9maWx0ZXJfY3RybChzdHJ1Y3Qg
cnRlX2V0aF9kZXYgKmRldiwNCj4gPiAgCX0NCj4gPiAgCXJldHVybiAwOw0KPiA+ICB9DQo+ID4g
Kw0KPiA+ICsvKioNCj4gPiArICogRGV0ZWN0IG51bWJlciBvZiBWZXJicyBmbG93IHByaW9yaXRp
ZXMgc3VwcG9ydGVkLg0KPiA+ICsgKg0KPiA+ICsgKiBAcGFyYW0gZGV2DQo+ID4gKyAqICAgUG9p
bnRlciB0byBFdGhlcm5ldCBkZXZpY2UuDQo+ID4gKyAqLw0KPiA+ICt2b2lkDQo+ID4gK21seDVf
Zmxvd19wcmlvcml0aWVzX2RldGVjdChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikgew0KPiA+ICsJ
c3RydWN0IHByaXYgKnByaXYgPSBkZXYtPmRhdGEtPmRldl9wcml2YXRlOw0KPiA+ICsJdWludDMy
X3QgdmVyYl9wcmlvcml0aWVzID0gTUxYNV9WRVJCU19GTE9XX1BSSU9fOCAqIDI7DQo+ID4gKwlz
dHJ1Y3Qgew0KPiA+ICsJCXN0cnVjdCBpYnZfZmxvd19hdHRyIGF0dHI7DQo+ID4gKwkJc3RydWN0
IGlidl9mbG93X3NwZWNfZXRoIGV0aDsNCj4gPiArCQlzdHJ1Y3QgaWJ2X2Zsb3dfc3BlY19hY3Rp
b25fZHJvcCBkcm9wOw0KPiA+ICsJfSBmbG93X2F0dHIgPSB7DQo+ID4gKwkJLmF0dHIgPSB7DQo+
ID4gKwkJCS5udW1fb2Zfc3BlY3MgPSAyLA0KPiA+ICsJCQkucHJpb3JpdHkgPSB2ZXJiX3ByaW9y
aXRpZXMgLSAxLA0KPiA+ICsJCX0sDQo+ID4gKwkJLmV0aCA9IHsNCj4gPiArCQkJLnR5cGUgPSBJ
QlZfRkxPV19TUEVDX0VUSCwNCj4gPiArCQkJLnNpemUgPSBzaXplb2Yoc3RydWN0IGlidl9mbG93
X3NwZWNfZXRoKSwNCj4gPiArCQl9LA0KPiA+ICsJCS5kcm9wID0gew0KPiA+ICsJCQkuc2l6ZSA9
IHNpemVvZihzdHJ1Y3QgaWJ2X2Zsb3dfc3BlY19hY3Rpb25fZHJvcCksDQo+ID4gKwkJCS50eXBl
ID0gSUJWX0ZMT1dfU1BFQ19BQ1RJT05fRFJPUCwNCj4gPiArCQl9LA0KPiA+ICsJfTsNCj4gPiAr
CXN0cnVjdCBpYnZfZmxvdyAqZmxvdzsNCj4gPiArDQo+ID4gKwlpZiAocHJpdi0+Y29uZmlnLmNv
bnRyb2xfZmxvd19wcmlvcml0eSkNCj4gPiArCQlyZXR1cm47DQo+ID4gKwlmbG93ID0gbWx4NV9n
bHVlLT5jcmVhdGVfZmxvdyhwcml2LT5mbG93X2Ryb3BfcXVldWUtPnFwLA0KPiA+ICsJCQkJICAg
ICAgJmZsb3dfYXR0ci5hdHRyKTsNCj4gPiArCWlmIChmbG93KSB7DQo+ID4gKwkJcHJpdi0+Y29u
ZmlnLmZsb3dfcHJpb3JpdHlfc2hpZnQgPSBNTFg1X1ZFUkJTX0ZMT1dfUFJJT184IC8gMjsNCj4g
PiArCQljbGFpbV96ZXJvKG1seDVfZ2x1ZS0+ZGVzdHJveV9mbG93KGZsb3cpKTsNCj4gPiArCX0g
ZWxzZSB7DQo+ID4gKwkJcHJpdi0+Y29uZmlnLmZsb3dfcHJpb3JpdHlfc2hpZnQgPSAxOw0KPiA+
ICsJCXZlcmJfcHJpb3JpdGllcyA9IHZlcmJfcHJpb3JpdGllcyAvIDI7DQo+ID4gKwl9DQo+ID4g
Kwlwcml2LT5jb25maWcuY29udHJvbF9mbG93X3ByaW9yaXR5ID0gMTsNCj4gPiArCURSVl9MT0co
SU5GTywgInBvcnQgJXUgVmVyYnMgZmxvdyBwcmlvcml0aWVzOiAlZCIsDQo+ID4gKwkJZGV2LT5k
YXRhLT5wb3J0X2lkLCB2ZXJiX3ByaW9yaXRpZXMpOyB9DQo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl
cnMvbmV0L21seDUvbWx4NV90cmlnZ2VyLmMNCj4gPiBiL2RyaXZlcnMvbmV0L21seDUvbWx4NV90
cmlnZ2VyLmMgaW5kZXggNmJiNGZmYjE0Li5kODBhMmU2ODggMTAwNjQ0DQo+ID4gLS0tIGEvZHJp
dmVycy9uZXQvbWx4NS9tbHg1X3RyaWdnZXIuYw0KPiA+ICsrKyBiL2RyaXZlcnMvbmV0L21seDUv
bWx4NV90cmlnZ2VyLmMNCj4gPiBAQCAtMTQ4LDEyICsxNDgsNiBAQCBtbHg1X2Rldl9zdGFydChz
dHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gPiAgCWludCByZXQ7DQo+ID4NCj4gPiAgCWRldi0+
ZGF0YS0+ZGV2X3N0YXJ0ZWQgPSAxOw0KPiA+IC0JcmV0ID0gbWx4NV9mbG93X2NyZWF0ZV9kcm9w
X3F1ZXVlKGRldik7DQo+ID4gLQlpZiAocmV0KSB7DQo+ID4gLQkJRFJWX0xPRyhFUlIsICJwb3J0
ICV1IGRyb3AgcXVldWUgYWxsb2NhdGlvbiBmYWlsZWQ6ICVzIiwNCj4gPiAtCQkJZGV2LT5kYXRh
LT5wb3J0X2lkLCBzdHJlcnJvcihydGVfZXJybm8pKTsNCj4gPiAtCQlnb3RvIGVycm9yOw0KPiA+
IC0JfQ0KPiA+ICAJRFJWX0xPRyhERUJVRywgInBvcnQgJXUgYWxsb2NhdGluZyBhbmQgY29uZmln
dXJpbmcgaGFzaCBSeCBxdWV1ZXMiLA0KPiA+ICAJCWRldi0+ZGF0YS0+cG9ydF9pZCk7DQo+ID4g
IAlydGVfbWVtcG9vbF93YWxrKG1seDVfbXAybXJfaXRlciwgcHJpdik7IEBAIC0yMDIsNyArMTk2
LDYgQEANCj4gPiBtbHg1X2Rldl9zdGFydChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gPiAg
CW1seDVfdHJhZmZpY19kaXNhYmxlKGRldik7DQo+ID4gIAltbHg1X3R4cV9zdG9wKGRldik7DQo+
ID4gIAltbHg1X3J4cV9zdG9wKGRldik7DQo+ID4gLQltbHg1X2Zsb3dfZGVsZXRlX2Ryb3BfcXVl
dWUoZGV2KTsNCj4gPiAgCXJ0ZV9lcnJubyA9IHJldDsgLyogUmVzdG9yZSBydGVfZXJybm8uICov
DQo+ID4gIAlyZXR1cm4gLXJ0ZV9lcnJubzsNCj4gPiAgfQ0KPiA+IEBAIC0yMzcsNyArMjMwLDYg
QEAgbWx4NV9kZXZfc3RvcChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldikNCj4gPiAgCW1seDVfcnhx
X3N0b3AoZGV2KTsNCj4gPiAgCWZvciAobXIgPSBMSVNUX0ZJUlNUKCZwcml2LT5tcik7IG1yOyBt
ciA9IExJU1RfRklSU1QoJnByaXYtPm1yKSkNCj4gPiAgCQltbHg1X21yX3JlbGVhc2UobXIpOw0K
PiA+IC0JbWx4NV9mbG93X2RlbGV0ZV9kcm9wX3F1ZXVlKGRldik7DQo+ID4gIH0NCj4gPg0KPiA+
ICAvKioNCj4gPiAtLQ0KPiA+IDIuMTMuMw0KPiANCj4gSSBoYXZlIGZldyBjb25jZXJucyBvbiB0
aGlzLCBtbHg1X3BjaV9wcm9iZSgpIHdpbGwgYWxzbyBwcm9iZSBhbnkgdW5kZXINCj4gbGF5ZXIg
dmVyYnMgZGV2aWNlLCBhbmQgaW4gYSBuZWFyIGZ1dHVyZSB0aGUgcmVwcmVzZW50b3JzIGFzc29j
aWF0ZWQgdG8gYQ0KPiBWRi4NCj4gTWFraW5nIHN1Y2ggZGV0ZWN0aW9uIHNob3VsZCBvbmx5IGJl
IGRvbmUgb25jZSBieSB0aGUgUEYsIEkgYWxzbyB3YW5kZXIgaWYNCj4gaXQgaXMgcG9zc2libGUg
dG8gbWFrZSBzdWNoIGRyb3AgYWN0aW9uIGluIGEgcmVwcmVzZW50b3IgZGlyZWN0bHkgdXNpbmcN
Cj4gVmVyYnMuDQoNClRoZW4gdGhlcmUgc2hvdWxkIGJlIHNvbWUgd29yayB0byBkaXNhYmxlIGZs
b3dzIGluIHJlcHJlc2VudG9ycz8gdGhhdCANCnN1cHBvc2VkIHRvIGNvdmVyIHRoaXMuDQoNCj4g
DQo+IEFub3RoZXIgY29uY2VybiBpcywgdGhpcyBwYXRjaCB3aWxsIGJlIHJldmVydGVkIGluIHNv
bWUgdGltZSB3aGVuIHRob3NlDQo+IDE2IHByaW9yaXR5IHdpbGwgYmUgYWx3YXlzIGF2YWlsYWJs
ZS4gIEl0IHdpbGwgYmUgZWFzaWVyIHRvIHJlbW92ZSB0aGlzDQo+IGRldGVjdGlvbiBmdW5jdGlv
biB0aGFuIHNlYXJjaGluZyBmb3IgYWxsIHRob3NlIG1vZGlmaWNhdGlvbnMuDQo+IA0KPiBJIHdv
dWxkIHN1Z2dlc3QgdG8gaGF2ZSBhIHN0YW5kYWxvbmUgbWx4NV9mbG93X3ByaW9yaXRpZXNfZGV0
ZWN0KCkgd2hpY2gNCj4gY3JlYXRlcyBhbmQgZGVsZXRlcyBhbGwgcmVzb3VyY2VzIG5lZWRlZCBm
b3IgdGhpcyBkZXRlY3Rpb24uDQoNClRoZXJlIGlzIGFuIHVwY29taW5nIG5ldyBmZWF0dXJlIHRv
IHN1cHBvcnQgcHJpb3JpdGllcyBtb3JlIHRoYW4gMTYsIGF1dG8gDQpkZXRlY3Rpb24gd2lsbCBi
ZSBrZXB0IElNSE8uIEJlc2lkZXMsIHRoZXJlIHdpbGwgYmUgYSBidW5kbGUgb2YgcmVzb3VyY2Ug
DQpjcmVhdGlvbiBhbmQgcmVtb3ZhbCBpbiB0aGlzIHN0YW5kYWxvbmUgZnVuY3Rpb24sIEknbSBu
b3Qgc3VyZSBpdCB2YWx1YWJsZSANCnRvIGR1cGxpY2F0ZSB0aGVtLCBwbGVhc2UgcmVmZXIgdG8g
ZnVuY3Rpb24gbWx4NV9mbG93X2NyZWF0ZV9kcm9wX3F1ZXVlKCkuDQoNCg0KPiANCj4gVGhhbmtz
LA0KPiANCj4gLS0NCj4gTsOpbGlvIExhcmFuamVpcm8NCj4gNldJTkQNCg==