From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <beilei.xing@intel.com>
Received: from mga01.intel.com (mga01.intel.com [192.55.52.88])
 by dpdk.org (Postfix) with ESMTP id AA26A239
 for <dev@dpdk.org>; Fri, 29 Sep 2017 13:39:28 +0200 (CEST)
Received: from fmsmga005.fm.intel.com ([10.253.24.32])
 by fmsmga101.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 29 Sep 2017 04:39:27 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.42,452,1500966000"; d="scan'208";a="156955176"
Received: from fmsmsx106.amr.corp.intel.com ([10.18.124.204])
 by fmsmga005.fm.intel.com with ESMTP; 29 Sep 2017 04:39:27 -0700
Received: from shsmsx103.ccr.corp.intel.com (10.239.4.69) by
 FMSMSX106.amr.corp.intel.com (10.18.124.204) with Microsoft SMTP Server (TLS)
 id 14.3.319.2; Fri, 29 Sep 2017 04:39:27 -0700
Received: from shsmsx101.ccr.corp.intel.com ([169.254.1.159]) by
 SHSMSX103.ccr.corp.intel.com ([169.254.4.213]) with mapi id 14.03.0319.002;
 Fri, 29 Sep 2017 19:39:25 +0800
From: "Xing, Beilei" <beilei.xing@intel.com>
To: 'Sean Harte' <seanbh@gmail.com>
CC: "Wu, Jingjing" <jingjing.wu@intel.com>, "Chilikin, Andrey"
 <andrey.chilikin@intel.com>, "'dev@dpdk.org'" <dev@dpdk.org>
Thread-Topic: [dpdk-dev] [PATCH v6 6/8] net/i40e: add FDIR support for GTP-C
 and GTP-U
Thread-Index: AQHTOPscyfmRrZqqukKHZJYeoh9j0KLLj7BQ//+OZYCAAJV/YIAACT/g
Date: Fri, 29 Sep 2017 11:39:25 +0000
Message-ID: <94479800C636CB44BD422CB454846E0132038F68@SHSMSX101.ccr.corp.intel.com>
References: <1506565054-67690-1-git-send-email-beilei.xing@intel.com>
 <1506662342-18966-1-git-send-email-beilei.xing@intel.com>
 <1506662342-18966-7-git-send-email-beilei.xing@intel.com>
 <CACA5i9bMUaB-LMzrfLKP6hnWFDVz7HRKufzo+2xi6=MY4UkROg@mail.gmail.com>
 <94479800C636CB44BD422CB454846E0132038E8C@SHSMSX101.ccr.corp.intel.com>
 <CACA5i9ZxkTMZ84vu_pFjXB0H3tV7vuD7qaosahoQWwSkV9BLug@mail.gmail.com>
 <94479800C636CB44BD422CB454846E0132038F26@SHSMSX101.ccr.corp.intel.com>
In-Reply-To: <94479800C636CB44BD422CB454846E0132038F26@SHSMSX101.ccr.corp.intel.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-titus-metadata-40: eyJDYXRlZ29yeUxhYmVscyI6IiIsIk1ldGFkYXRhIjp7Im5zIjoiaHR0cDpcL1wvd3d3LnRpdHVzLmNvbVwvbnNcL0ludGVsMyIsImlkIjoiNDZiMGVmY2UtNDhmMC00MWVlLTk1NzYtNjg5MDlhY2I2NWFhIiwicHJvcHMiOlt7Im4iOiJDVFBDbGFzc2lmaWNhdGlvbiIsInZhbHMiOlt7InZhbHVlIjoiQ1RQX0lDIn1dfV19LCJTdWJqZWN0TGFiZWxzIjpbXSwiVE1DVmVyc2lvbiI6IjE2LjUuOS4zIiwiVHJ1c3RlZExhYmVsSGFzaCI6Ik1GN3c3SVNIajlsdVwvdzY3OE4yd1lSZ3RPWmZoZDFcL3ZnZlJWSVwva3YraHM9In0=
x-ctpclassification: CTP_IC
dlp-product: dlpe-windows
dlp-version: 11.0.0.116
dlp-reaction: no-action
x-originating-ip: [10.239.127.40]
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
Subject: Re: [dpdk-dev] [PATCH v6 6/8] net/i40e: add FDIR support for GTP-C
 and GTP-U
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <http://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: <http://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Fri, 29 Sep 2017 11:39:29 -0000

PiAtLS0tLU9yaWdpbmFsIE1lc3NhZ2UtLS0tLQ0KPiBGcm9tOiBYaW5nLCBCZWlsZWkNCj4gU2Vu
dDogRnJpZGF5LCBTZXB0ZW1iZXIgMjksIDIwMTcgNzozMCBQTQ0KPiBUbzogU2VhbiBIYXJ0ZSA8
c2VhbmJoQGdtYWlsLmNvbT4NCj4gQ2M6IFd1LCBKaW5namluZyA8amluZ2ppbmcud3VAaW50ZWwu
Y29tPjsgQ2hpbGlraW4sIEFuZHJleQ0KPiA8YW5kcmV5LmNoaWxpa2luQGludGVsLmNvbT47IGRl
dkBkcGRrLm9yZw0KPiBTdWJqZWN0OiBSRTogW2RwZGstZGV2XSBbUEFUQ0ggdjYgNi84XSBuZXQv
aTQwZTogYWRkIEZESVIgc3VwcG9ydCBmb3IgR1RQLUMNCj4gYW5kIEdUUC1VDQo+IA0KPiANCj4g
DQo+ID4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gPiBGcm9tOiBTZWFuIEhhcnRlIFtt
YWlsdG86c2VhbmJoQGdtYWlsLmNvbV0NCj4gPiBTZW50OiBGcmlkYXksIFNlcHRlbWJlciAyOSwg
MjAxNyA2OjEwIFBNDQo+ID4gVG86IFhpbmcsIEJlaWxlaSA8YmVpbGVpLnhpbmdAaW50ZWwuY29t
Pg0KPiA+IENjOiBXdSwgSmluZ2ppbmcgPGppbmdqaW5nLnd1QGludGVsLmNvbT47IENoaWxpa2lu
LCBBbmRyZXkNCj4gPiA8YW5kcmV5LmNoaWxpa2luQGludGVsLmNvbT47IGRldkBkcGRrLm9yZw0K
PiA+IFN1YmplY3Q6IFJlOiBbZHBkay1kZXZdIFtQQVRDSCB2NiA2LzhdIG5ldC9pNDBlOiBhZGQg
RkRJUiBzdXBwb3J0IGZvcg0KPiA+IEdUUC1DIGFuZCBHVFAtVQ0KPiA+DQo+ID4gT24gMjkgU2Vw
dGVtYmVyIDIwMTcgYXQgMTA6MzMsIFhpbmcsIEJlaWxlaSA8YmVpbGVpLnhpbmdAaW50ZWwuY29t
Pg0KPiB3cm90ZToNCj4gPiA+DQo+ID4gPg0KPiA+ID4+IC0tLS0tT3JpZ2luYWwgTWVzc2FnZS0t
LS0tDQo+ID4gPj4gRnJvbTogU2VhbiBIYXJ0ZSBbbWFpbHRvOnNlYW5iaEBnbWFpbC5jb21dDQo+
ID4gPj4gU2VudDogRnJpZGF5LCBTZXB0ZW1iZXIgMjksIDIwMTcgNDoxNSBQTQ0KPiA+ID4+IFRv
OiBYaW5nLCBCZWlsZWkgPGJlaWxlaS54aW5nQGludGVsLmNvbT4NCj4gPiA+PiBDYzogV3UsIEpp
bmdqaW5nIDxqaW5namluZy53dUBpbnRlbC5jb20+OyBDaGlsaWtpbiwgQW5kcmV5DQo+ID4gPj4g
PGFuZHJleS5jaGlsaWtpbkBpbnRlbC5jb20+OyBkZXZAZHBkay5vcmcNCj4gPiA+PiBTdWJqZWN0
OiBSZTogW2RwZGstZGV2XSBbUEFUQ0ggdjYgNi84XSBuZXQvaTQwZTogYWRkIEZESVIgc3VwcG9y
dA0KPiA+ID4+IGZvciBHVFAtQyBhbmQgR1RQLVUNCj4gPiA+Pg0KPiA+ID4+IE9uIDI5IFNlcHRl
bWJlciAyMDE3IGF0IDA2OjE5LCBCZWlsZWkgWGluZyA8YmVpbGVpLnhpbmdAaW50ZWwuY29tPg0K
PiB3cm90ZToNCj4gPiA+PiA+IFRoaXMgcGF0Y2ggYWRkcyBGRElSIHN1cHBvcnQgZm9yIEdUUC1D
IGFuZCBHVFAtVS4gVGhlIGlucHV0IHNldA0KPiA+ID4+ID4gb2YgR1RQLUMgYW5kIEdUUC1VIGlz
IFRFSUQuDQo+ID4gPj4gPg0KPiA+ID4+ID4gU2lnbmVkLW9mZi1ieTogQmVpbGVpIFhpbmcgPGJl
aWxlaS54aW5nQGludGVsLmNvbT4NCj4gPiA+PiA+IC0tLQ0KPiA+ID4+ID4gIGRyaXZlcnMvbmV0
L2k0MGUvaTQwZV9ldGhkZXYuaCB8ICAzMCArKysrKw0KPiA+ID4+ID4gIGRyaXZlcnMvbmV0L2k0
MGUvaTQwZV9mZGlyLmMgICB8IDIwMA0KPiArKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0t
DQo+ID4gPj4gPiAgZHJpdmVycy9uZXQvaTQwZS9pNDBlX2Zsb3cuYyAgIHwgMjYzDQo+ID4gPj4g
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0NCj4gPiA+PiA+ICAzIGZp
bGVzIGNoYW5nZWQsIDM5NiBpbnNlcnRpb25zKCspLCA5NyBkZWxldGlvbnMoLSkNCj4gPiA+Pg0K
PiA+ID4+IDxzbmlwPg0KPiA+ID4+DQo+ID4gPj4gPiBAQCAtMTE3MywxMCArMTE5Niw2OSBAQCBp
NDBlX2Zsb3dfZmRpcl9jb25zdHJ1Y3RfcGt0KHN0cnVjdA0KPiA+ID4+ID4gaTQwZV9wZg0KPiA+
ID4+ICpwZiwNCj4gPiA+PiA+DQo+IHJ0ZV9jcHVfdG9fYmVfMTYoRVRIRVJfVFlQRV9BUlApKQ0K
PiA+ID4+ID4gICAgICAgICAgICAgICAgICAgICAgICAgcGF5bG9hZCArPSBzaXplb2Yoc3RydWN0
IGFycF9oZHIpOw0KPiA+ID4+ID4gICAgICAgICAgICAgICAgIHNldF9pZHggPSBJNDBFX0ZMWFBM
RF9MMl9JRFg7DQo+ID4gPj4gPiAtICAgICAgICAgICAgICAgYnJlYWs7DQo+ID4gPj4gPiAtICAg
ICAgIGRlZmF1bHQ6DQo+ID4gPj4gPiAtICAgICAgICAgICAgICAgUE1EX0RSVl9MT0coRVJSLCAi
dW5rbm93biBwY3R5cGUgJXUuIiwNCj4gZmRpcl9pbnB1dC0NCj4gPiA+cGN0eXBlKTsNCj4gPiA+
PiA+IC0gICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCj4gPiA+PiA+ICsgICAgICAgfSBl
bHNlIGlmIChmZGlyX2lucHV0LT5mbG93X2V4dC5jdXN0b21pemVkX3BjdHlwZSkgew0KPiA+ID4+
ID4gKyAgICAgICAgICAgICAgIC8qIElmIGN1c3RvbWl6ZWQgcGN0eXBlIGlzIHVzZWQgKi8NCj4g
PiA+PiA+ICsgICAgICAgICAgICAgICBjdXNfcGN0eXBlID0NCj4gPiA+PiA+ICsgaTQwZV9mbG93
X2ZkaXJfZmluZF9jdXN0b21pemVkX3BjdHlwZShwZiwNCj4gPiBwY3R5cGUpOw0KPiA+ID4+ID4g
KyAgICAgICAgICAgICAgIGlmIChjdXNfcGN0eXBlLT5pbmRleCA9PSBJNDBFX0NVU1RPTUlaRURf
R1RQQw0KPiB8fA0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICBjdXNfcGN0eXBlLT5pbmRl
eCA9PQ0KPiBJNDBFX0NVU1RPTUlaRURfR1RQVV9JUFY0IHx8DQo+ID4gPj4gPiArICAgICAgICAg
ICAgICAgICAgIGN1c19wY3R5cGUtPmluZGV4ID09DQo+IEk0MEVfQ1VTVE9NSVpFRF9HVFBVX0lQ
VjYgfHwNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgY3VzX3BjdHlwZS0+aW5kZXggPT0N
Cj4gSTQwRV9DVVNUT01JWkVEX0dUUFUpIHsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAg
ICAgIHVkcCA9IChzdHJ1Y3QgdWRwX2hkciAqKShyYXdfcGt0ICsgbGVuKTsNCj4gPiA+PiA+ICsg
ICAgICAgICAgICAgICAgICAgICAgIHVkcC0+ZGdyYW1fbGVuID0NCj4gPiA+PiA+ICsNCj4gPiA+
PiA+ICsgcnRlX2NwdV90b19iZV8xNihJNDBFX0ZESVJfVURQX0RFRkFVTFRfTEVOKTsNCj4gPiA+
PiA+ICsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGd0cCA9IChzdHJ1Y3QgcnRl
X2Zsb3dfaXRlbV9ndHAgKikNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKCh1bnNpZ25lZCBjaGFyICopdWRwICsNCj4gc2l6ZW9mKHN0cnVjdCB1ZHBfaGRyKSk7DQo+
ID4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICBndHAtPnZfcHRfcnN2X2ZsYWdzID0gMHgz
MDsNCj4gPiA+Pg0KPiA+ID4+IDB4MzAgaXNuJ3QgdmFsaWQgZm9yIEdUUC1DLCB0aGUgc2VxdWVu
Y2UgbnVtYmVyIG11c3QgYmUgcHJlc2VudCBpbg0KPiA+ID4+IEdUUC1DIHNvIGl0IHdpbGwgYmUg
MHgzMiBvciBtb3JlLiBJcyB0aGlzIGJ5dGUgYWN0dWFsbHkgbWF0Y2hlZA0KPiA+ID4+IGFnYWlu
c3QgYnkgdGhlIGRldmljZSB1c2luZyB0aGUgR1RQIHBjdHlwZXM/DQo+ID4gPg0KPiA+ID4gV2Ug
Y29uc3RydWN0IHBhY2tldHMgYW5kIHNlbmQgdGhlIHBhY2tldCB0byBIVyAgdG8gY3JlYXRlIGZs
b3cNCj4gPiA+IGRpcmVjdG9yIHJ1bGUgZm9yIEdUUC1DIGFuZCBHVFAtVS4gQWN0dWFsbHkgSSBk
aWRu4oCZdCBnZXQgZXJyb3IgaW5mbw0KPiA+ID4gd2l0aCAweDMwLiBBbmQgaW4gbXkgdGVzdCwg
R1RQLUMgcGFja2V0cyBjYW4gaGl0ICBHVFAtQyBwY3R5cGUgcnVsZS4NCj4gPiA+IFdpbGwgdHJ5
DQo+ID4gMHgzMiBsYXRlci4NCj4gPiA+DQo+ID4gPj4NCj4gPiA+PiA+ICsgICAgICAgICAgICAg
ICAgICAgICAgIGd0cC0+bXNnX2xlbiA9DQo+ID4gPj4gPiArDQo+IHJ0ZV9jcHVfdG9fYmVfMTYo
STQwRV9GRElSX0dUUF9ERUZBVUxUX0xFTik7DQo+ID4gPj4gPiArICAgICAgICAgICAgICAgICAg
ICAgICBndHAtPnRlaWQgPQ0KPiBmZGlyX2lucHV0LT5mbG93Lmd0cF9mbG93LnRlaWQ7DQo+ID4g
Pj4gPiArICAgICAgICAgICAgICAgICAgICAgICBndHAtPm1zZ190eXBlID0gMHgxOw0KPiA+ID4+
DQo+ID4gPj4gV2h5IHVzZSB0aGlzIHZhbHVlPw0KPiA+ID4NCj4gPiA+IEp1c3QgZm9yIGNvbnN0
cnVjdGluZyBhIEdUUCBwYWNrZXQgdG8gY3JlYXRlIGEgZmRpciBydWxlIGZvciBvbmUNCj4gPiA+
IHBjdHlwZSwgY2FuDQo+ID4gdXNlIG90aGVyIHZhbHVlcyBleGNlcHQgMHhGRi4NCj4gPiA+DQo+
ID4gPj4NCj4gPiA+PiA+ICsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChj
dXNfcGN0eXBlLT5pbmRleCA9PQ0KPiBJNDBFX0NVU1RPTUlaRURfR1RQQykNCj4gPiA+PiA+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdWRwLT5kc3RfcG9ydCA9DQo+ID4gPj4gPiAr
IHJ0ZV9jcHVfdG9fYmVfMTYoMjEyMyk7DQo+ID4gPj4NCj4gPiA+PiBUaGlzIHdpbGwgb25seSBt
YXRjaCBoYWxmIG9mIEdUUC1DIG1lc3NhZ2VzLiBHVFAtQyBtZXNzYWdlcyBoYXZlIGENCj4gPiA+
PiBVRFAgcG9ydCBkZXN0aW5hdGlvbiBvZiAyMTIzLCBvciBhIFVEUCBzb3VyY2UgcG9ydCBvZiAy
MTIzLiBUbw0KPiA+ID4+IG1hdGNoIGFsbCBHVFAtQyBwYWNrZXRzIHlvdSBuZWVkIHRvIGxvb2sg
YXQgYm90aC4NCj4gPiA+DQo+ID4gPiBZZXMuIEJ1dCB0aGUgR1RQIHByb2ZpbGUgZm9yIGk0MGUg
ZGlkbid0IHN1cHBvcnQgcmVzcG9uc2UgbWVzc2FnZS4NCj4gPg0KPiA+IFRoYXQncyBub3QgY2xl
YXIgdG8gYSB1c2VyIG9mIHRoZSBydGVfZmxvdyBBUEkNCj4gDQo+IFJ0ZV9mbG93IGlzIGEgZ2Vu
ZXJpYyBBUEksIEkgdGhpbmsgaXQgc2hvdWxkIGFsbG93IHVzZXJzIHRvIGNyZWF0ZSBydWxlIGZv
cg0KPiByZXNwb25zZSBtZXNzYWdlLg0KPiBCdXQgaTQwZSBQTUQgZG9lcyBub3QgdGhlIHN1cHBv
cnQgcmVzcG9uc2UgbWVzc2FnZSwgaWYgdXNlciB3YW50IHRvIGNyZWF0ZQ0KPiBhIHJ1bGUgZm9y
IGk0MGUgbGlrZSBiZWxvdzoNCj4gRmxvdyBjcmVhdGUgMCBpbmdyZXNzIHBhdHRlcm4gZXRoIC8g
aXB2NCAvIHVkcCBzcmMgaXMgMjEyMyAvIGd0cGMgLyBlbmQgLw0KPiBhY3Rpb25zIHF1ZXVlIGlu
ZGV4IDQgLyBlbmQgSXQgd2lsbCBmYWlsLiBCdXQgbWF5YmUgb3RoZXIgUE1EIGNhbiBzdXBwb3J0
IGl0Lg0KPiANCj4gPg0KPiA+ID4NCj4gPiA+Pg0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAg
ICAgICAgZWxzZQ0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1ZHAt
PmRzdF9wb3J0ID0NCj4gPiA+PiA+ICsgcnRlX2NwdV90b19iZV8xNigyMTUyKTsNCj4gPiA+PiA+
ICsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXNfcGN0eXBlLT5pbmRl
eCA9PQ0KPiBJNDBFX0NVU1RPTUlaRURfR1RQVV9JUFY0KSB7DQo+ID4gPj4gPiArICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGd0cC0+bXNnX3R5cGUgPSAweEZGOw0KPiA+ID4+ID4gKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndHBfaXB2NCA9IChzdHJ1Y3QgaXB2NF9oZHIg
KikNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHVu
c2lnbmVkIGNoYXIgKilndHANCj4gKw0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0DQo+ID4gPj4gPiArIHJ0ZV9mbG93X2l0ZW1f
Z3RwKSk7DQo+ID4gPj4NCj4gPiA+PiBUaGlzIGlzIG9ubHkgdmFsaWQgaWYgdl9wdF9yc3ZfZmxh
Z3MgaXMgMHgzMC4gR1RQLVUgcGFja2V0cyBhcmUNCj4gPiA+PiBhbGxvd2VkIHRvIGhhdmUgYSBz
ZXF1ZW5jZSBudW1iZXIsIHdoaWNoIGFkZHMgYW4gZXh0cmEgNCBieXRlcyB0bw0KPiA+ID4+IHRo
ZQ0KPiA+IEdUUCBoZWFkZXIuDQo+ID4gPg0KPiA+ID4gRm9yIHRoZSBHVFAgcHJvZmlsZSwgdGhl
cmUncmUgNCBwY3R5cGVzIGZvciBHVFAgcGFja2V0czogR1RQQywgR1RQVSwNCj4gPiBHVFBJUFY0
LCBhbmQgR1RQSVBWNi4NCj4gPiA+IEhXIHBhcnNlIHdoaWNoIHBjdHlwZSB0aGUgR1RQIHBhY2tl
dHMgYmVsb25nZSB0by4NCj4gPiA+IFdlIGNvbnN0cnVjdCBwYWNrZXQgdG8gY3JlYXRlIGEgZmRp
ciBydWxlIGZvciBvbmUgcGN0eXBlLCBhZnRlcg0KPiA+ID4gdGhhdCwgYWxsIHBhY2tldHMgd2hv
c2UgcGN0eXBlIG1hdGNoZXMgdGhlIHJ1bGUncyBwY3R5cGUgd2lsbCBoaXQgdGhlIHJ1bGUuDQo+
ID4NCj4gPiBNeSBwb2ludCBpcyB0aGF0IHlvdSBjYW4gb25seSBhc3N1bWUgdGhlIGlubmVyIElQ
IGhlYWRlciBzdGFydHMgYXQgYW4NCj4gPiBvZmZzZXQgb2Ygc2l6ZW9mKHN0cnVjdCBydGVfZmxv
d19pdGVtX2d0cCkgaWYgdl9wdF9yc3ZfZmxhZ3MgaXMNCj4gPiBleGFjdGx5IDB4MzAuIElmIHlv
dSBtYXRjaCBvbmx5IHRob3NlIHBhY2tldHMgdGhlbiBzb21lIEdUUC1VIHBhY2tldHMNCj4gd2ls
bCBub3QgYmUgbWF0Y2hlZC4NCj4gPiBUaGF0IHNob3VsZCBiZSBjbGVhciB0byBhIHVzZXIgb2Yg
dGhlIHJ0ZV9mbG93IEFQSS4NCj4gPg0KPiANCj4gTm8gbWF0dGVyIGlmICBHVFAtVSBwYWNrZXRz
IGhhcyBhIHNlcXVlbmNlIG51bWJlciwgb25jZSBtZXNzYWdlLXR5cGUgaXMNCj4gMHhGRiwgdGhl
IHBjdHlwZSBvZiB0aGUgcGFja2V0IHBhcnNlZCBieSBpNDBlIEhXIHdpbGwgYmUgR1RQSVBWNCBv
cg0KPiBHVFBJUFY2Lg0KPiBTbyBJZiBJIGNyZWF0ZSBhIGZsb3cgcnVsZSBmb3IgR1RQLVUgcGFj
a2V0cyB3aXRoIHZfcHRfcnN2X2ZsYWdzIDB4MzAgYW5kDQo+IG1lc3NhZ2VfdHlwZSBpcyAweEZG
LCBpdCBtZWFucyBJIGNyZWF0ZSBhIHJ1bGUgZm9yIHBjdHlwZSBHVFBJUFY0IG9yDQo+IEdUUElQ
VjYuDQo+IFRoZW4gR1RQLVUgcGFja2V0cyB3aXRoIHZfcHRfcnN2X2ZsYWdzIDB4MzIgY2FuIGhp
dCB0aGUgcnVsZSBiZWNhdXNlIGl0cw0KPiBwY3R5cGUgaXMgYWxzbyBHVFBJUFY0IG9yIEdUUElQ
VjYuDQo+IEl0J3MganVzdCBpNDBlIEhXJ3MgYmVoYXZpb3IsIGRvZXNuJ3QgbWVhbiBpdCdzIGVm
ZmVjdGl2ZSBmb3Igb3RoZXIgTklDcy4NCj4gSG9wZSBJIGV4cGxhaW4gaXQgY2xlYXJseTopDQo+
IA0KDQpUaGUga2V5IHBvaW50IGlzIDogZm9yIGk0MGUgSFcsIGRpZmZlcmVudCBwYWNrZXQgdHlw
ZXMgY2FuIHVzZSB0aGUgc2FtZSBwY3R5cGUuDQoNCj4gPiA+DQo+ID4gPj4NCj4gPiA+PiA+ICsg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RwX2lwdjQtPnZlcnNpb25faWhsID0NCj4g
PiA+PiA+ICsNCj4gSTQwRV9GRElSX0lQX0RFRkFVTFRfVkVSU0lPTl9JSEw7DQo+ID4gPj4gPiAr
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0cF9pcHY0LT5uZXh0X3Byb3RvX2lkID0N
Cj4gSVBQUk9UT19JUDsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3RwX2lwdjQtPnRvdGFsX2xlbmd0aCA9DQo+ID4gPj4gPiArICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgcnRlX2NwdV90b19iZV8xNigNCj4gPiA+PiA+ICsNCj4gSTQwRV9G
RElSX0lOTkVSX0lQX0RFRkFVTFRfTEVOKTsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcGF5bG9hZCA9ICh1bnNpZ25lZCBjaGFyDQo+ICopZ3RwX2lwdjQgKw0KPiA+
ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVvZihzdHJ1
Y3QNCj4gaXB2NF9oZHIpOw0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl
IGlmIChjdXNfcGN0eXBlLT5pbmRleCA9PQ0KPiA+ID4+ID4gKw0KPiBJNDBFX0NVU1RPTUlaRURf
R1RQVV9JUFY2KSB7DQo+ID4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd0
cC0+bXNnX3R5cGUgPSAweEZGOw0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBndHBfaXB2NiA9IChzdHJ1Y3QgaXB2Nl9oZHIgKikNCj4gPiA+PiA+ICsgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoKHVuc2lnbmVkIGNoYXIgKilndHANCj4gKw0K
PiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yo
c3RydWN0DQo+ID4gPj4gPiArIHJ0ZV9mbG93X2l0ZW1fZ3RwKSk7DQo+ID4gPj4NCj4gPiA+PiBU
aGlzIGlzIG9ubHkgdmFsaWQgaWYgdl9wdF9yc3ZfZmxhZ3MgaXMgMHgzMC4gR1RQLVUgcGFja2V0
cyBhcmUNCj4gPiA+PiBhbGxvd2VkIHRvIGhhdmUgYSBzZXF1ZW5jZSBudW1iZXIsIHdoaWNoIGFk
ZHMgYW4gZXh0cmEgNCBieXRlcyB0bw0KPiA+ID4+IHRoZQ0KPiA+IEdUUCBoZWFkZXIuDQo+ID4g
Pg0KPiA+ID4gU2FtZSB3aXRoIGFib3ZlLg0KPiA+ID4NCj4gPiA+Pg0KPiA+ID4+ID4gKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBndHBfaXB2Ni0+dnRjX2Zsb3cgPQ0KPiA+ID4+ID4g
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9jcHVfdG9fYmVfMzIo
DQo+ID4gPj4gPiArDQo+IEk0MEVfRkRJUl9JUHY2X0RFRkFVTFRfVlRDX0ZMT1cgfA0KPiA+ID4+
ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoMCA8PA0K
PiBJNDBFX0ZESVJfSVB2Nl9UQ19PRkZTRVQpKTsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ3RwX2lwdjYtPnByb3RvID0NCj4gSVBQUk9UT19OT05FOw0KPiA+ID4+
ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndHBfaXB2Ni0+cGF5bG9hZF9sZW4g
PQ0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJ0ZV9j
cHVfdG9fYmVfMTYoDQo+ID4gPj4gPiArDQo+IEk0MEVfRkRJUl9JTk5FUl9JUHY2X0RFRkFVTFRf
TEVOKTsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3RwX2lwdjYt
PmhvcF9saW1pdHMgPQ0KPiA+ID4+ID4gKw0KPiBJNDBFX0ZESVJfSVB2Nl9ERUZBVUxUX0hPUF9M
SU1JVFM7DQo+ID4gPj4gPiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBheWxvYWQg
PSAodW5zaWduZWQgY2hhcg0KPiAqKWd0cF9pcHY2ICsNCj4gPiA+PiA+ICsgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplb2Yoc3RydWN0DQo+IGlwdjZfaGRyKTsNCj4g
PiA+PiA+ICsgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZQ0KPiA+ID4+ID4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBwYXlsb2FkID0gKHVuc2lnbmVkIGNoYXIgKilndHANCj4g
Kw0KPiA+ID4+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVv
ZihzdHJ1Y3QNCj4gcnRlX2Zsb3dfaXRlbV9ndHApOw0KPiA+ID4+ID4gKyAgICAgICAgICAgICAg
IH0NCj4gPiA+PiA+ICsgICAgICAgfSBlbHNlIHsNCj4gPiA+PiA+ICsgICAgICAgICAgICAgICBQ
TURfRFJWX0xPRyhFUlIsICJ1bmtub3duIHBjdHlwZSAldS4iLA0KPiA+ID4+ID4gKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZkaXJfaW5wdXQtPnBjdHlwZSk7DQo+ID4gPj4gPiArICAgICAg
ICAgICAgICAgcmV0dXJuIC0xOw0KPiA+ID4+ID4gICAgICAgICB9DQo+ID4gPj4gPg0KPiA+ID4+
ID4gICAgICAgICAvKiBmaWxsIHRoZSBmbGV4Ynl0ZXMgdG8gcGF5bG9hZCAqLw0KPiA+ID4+DQo+
ID4gPj4gPHNuaXA+DQo=