From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from dpdk.org (dpdk.org [92.243.14.124])
	by inbox.dpdk.org (Postfix) with ESMTP id ABE7AA04BC;
	Sun, 27 Sep 2020 07:57:12 +0200 (CEST)
Received: from [92.243.14.124] (localhost [127.0.0.1])
	by dpdk.org (Postfix) with ESMTP id 697D91BCD1;
	Sun, 27 Sep 2020 07:57:11 +0200 (CEST)
Received: from m1326.mail.163.com (m1326.mail.163.com [220.181.13.26])
 by dpdk.org (Postfix) with ESMTP id 3CC4C1BCA2
 for <dev@dpdk.org>; Sun, 27 Sep 2020 07:57:08 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=163.com;
 s=s110527; h=Date:From:Subject:MIME-Version:Message-ID; bh=6ONcR
 ljWiA+YdxhfsR0eVB2wv8jGz38yrQsCLDOwnb0=; b=NlDu2JLhISSJxsCESVKVy
 XkzCRM44xeyNRmckD21QCdzRx1I47c/JO8gBLMMQ2BMCtdJWkzNr1Ify1ZO6q/Cs
 1bephhG3bs1TdqPPNkw2Mg45SnfHWh5URsh+ZtwIQvS8R2B9xm+8pgLl0p4W2gaL
 gvfd4aBtJUWrcUzh3/rfMk=
Received: from yang_y_yi$163.com ( [111.207.123.58] ) by
 ajax-webmail-wmsvr26 (Coremail) ; Sun, 27 Sep 2020 13:57:03 +0800 (CST)
X-Originating-IP: [111.207.123.58]
Date: Sun, 27 Sep 2020 13:57:03 +0800 (CST)
From: yang_y_yi  <yang_y_yi@163.com>
To: dev@dpdk.org
Cc: jiayu.hu@intel.com, thomas@monjalon.net, yangyi01@inspur.com
X-Priority: 1
X-Mailer: Coremail Webmail Server Version XT5.0.10 build 20190724(ac680a23)
 Copyright (c) 2002-2020 www.mailtech.cn 163com
In-Reply-To: <20200701064643.216084-1-yang_y_yi@163.com>
References: <20200701064643.216084-1-yang_y_yi@163.com>
X-CM-CTRLDATA: l9nnX2Zvb3Rlcl9odG09MTAyMDc6NTY=
MIME-Version: 1.0
Message-ID: <4d100fcb.2b3d.174ce22d609.Coremail.yang_y_yi@163.com>
X-Coremail-Locale: zh_CN
X-CM-TRANSID: GsGowAAHSNevKXBfcGx_AA--.43312W
X-CM-SenderInfo: 51dqwsp1b1xqqrwthudrp/1tbiMxusi1Xl6aUPSwABs2
X-Coremail-Antispam: 1U5529EdanIXcx71UUUUU7vcSsGvfC2KfnxnUU==
Content-Type: text/plain; charset=GBK
Content-Transfer-Encoding: base64
X-Content-Filtered-By: Mailman/MimeDel 2.1.15
Subject: Re: [dpdk-dev] [PATCH] gso: add VXLAN UDP GSO support
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://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

SmlheXUsIGFsc28gcGxlYXNlIGhlbHAgIHJldmlldyB0aGlzIEdTTyBwYXRjaCwgdGhhbmtzIGEg
bG90LgoKCgoKCgoKCgoKCgoKCgoKCgpBdCAyMDIwLTA3LTAxIDE0OjQ2OjQzLCB5YW5nX3lfeWlA
MTYzLmNvbSB3cm90ZToKPkZyb206IFlpIFlhbmcgPHlhbmd5aTAxQGluc3B1ci5jb20+Cj4KPk1h
bnkgTklDcyBjYW4ndCBvZmZsb2FkIFZYTEFOIFVGTywgc28gaXQgaXMgdmVyeSBpbXBvcnRhbnQK
PnRvIGRvIFZYTEFOIFVEUCBHU08gYnkgc29mdHdhcmUgdG8gaW1wcm92ZSBWTS10by1WTSBVRFAK
PnBlcmZvcm1hbmNlLCBlc3BlY2lhbGx5IGZvciB0aGUgY2FzZSB0aGF0IFZNIE1UVSBpcyBqdXN0
Cj4xNTAwIGJ1dCBub3QgOTAwMC4KPgo+V2l0aCB0aGlzIGVuYWJsZWQgaW4gRFBESywgT1ZTIERQ
REsgY2FuIGxldmVyYWdlIGl0IHRvCj5pbXByb3ZlIFZNLXRvLVZNIFVEUCBwZXJmb3JtYW5jZSwg
cGVyZm9ybWFuY2UgZ2FpbiBpcyB2ZXJ5Cj5odWdlLCBvdmVyIDIgdGltZXMuCj4KPlNpZ25lZC1v
ZmYtYnk6IFlpIFlhbmcgPHlhbmd5aTAxQGluc3B1ci5jb20+Cj4tLS0KPiBsaWIvbGlicnRlX2dz
by9NYWtlZmlsZSAgICAgICAgICB8ICAgMSArCj4gbGliL2xpYnJ0ZV9nc28vZ3NvX2NvbW1vbi5o
ICAgICAgfCAgIDUgKysKPiBsaWIvbGlicnRlX2dzby9nc29fdHVubmVsX3VkcDQuYyB8IDEwOCAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKPiBsaWIvbGlicnRlX2dzby9n
c29fdHVubmVsX3VkcDQuaCB8ICA0MyArKysrKysrKysrKysrKysrCj4gbGliL2xpYnJ0ZV9nc28v
bWVzb24uYnVpbGQgICAgICAgfCAgIDIgKy0KPiBsaWIvbGlicnRlX2dzby9ydGVfZ3NvLmMgICAg
ICAgICB8ICAgOCArKysKPiA2IGZpbGVzIGNoYW5nZWQsIDE2NiBpbnNlcnRpb25zKCspLCAxIGRl
bGV0aW9uKC0pCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfZ3NvL2dzb190dW5uZWxf
dWRwNC5jCj4gY3JlYXRlIG1vZGUgMTAwNjQ0IGxpYi9saWJydGVfZ3NvL2dzb190dW5uZWxfdWRw
NC5oCj4KPmRpZmYgLS1naXQgYS9saWIvbGlicnRlX2dzby9NYWtlZmlsZSBiL2xpYi9saWJydGVf
Z3NvL01ha2VmaWxlCj5pbmRleCBhMzQ4NDZlLi4zMDA1ODE3IDEwMDY0NAo+LS0tIGEvbGliL2xp
YnJ0ZV9nc28vTWFrZWZpbGUKPisrKyBiL2xpYi9saWJydGVfZ3NvL01ha2VmaWxlCj5AQCAtMTcs
NiArMTcsNyBAQCBTUkNTLSQoQ09ORklHX1JURV9MSUJSVEVfR1NPKSArPSBydGVfZ3NvLmMKPiBT
UkNTLSQoQ09ORklHX1JURV9MSUJSVEVfR1NPKSArPSBnc29fY29tbW9uLmMKPiBTUkNTLSQoQ09O
RklHX1JURV9MSUJSVEVfR1NPKSArPSBnc29fdGNwNC5jCj4gU1JDUy0kKENPTkZJR19SVEVfTElC
UlRFX0dTTykgKz0gZ3NvX3R1bm5lbF90Y3A0LmMKPitTUkNTLSQoQ09ORklHX1JURV9MSUJSVEVf
R1NPKSArPSBnc29fdHVubmVsX3VkcDQuYwo+IFNSQ1MtJChDT05GSUdfUlRFX0xJQlJURV9HU08p
ICs9IGdzb191ZHA0LmMKPiAKPiAjIGluc3RhbGwgdGhpcyBoZWFkZXIgZmlsZQo+ZGlmZiAtLWdp
dCBhL2xpYi9saWJydGVfZ3NvL2dzb19jb21tb24uaCBiL2xpYi9saWJydGVfZ3NvL2dzb19jb21t
b24uaAo+aW5kZXggYTBiODM0My4uNGQ1ZjMwMyAxMDA2NDQKPi0tLSBhL2xpYi9saWJydGVfZ3Nv
L2dzb19jb21tb24uaAo+KysrIGIvbGliL2xpYnJ0ZV9nc28vZ3NvX2NvbW1vbi5oCj5AQCAtMjYs
NiArMjYsMTEgQEAKPiAJCShQS1RfVFhfVENQX1NFRyB8IFBLVF9UWF9JUFY0IHwgUEtUX1RYX09V
VEVSX0lQVjQgfCBcCj4gCQkgUEtUX1RYX1RVTk5FTF9WWExBTikpCj4gCj4rI2RlZmluZSBJU19J
UFY0X1ZYTEFOX1VEUDQoZmxhZykgKCgoZmxhZykgJiAoUEtUX1RYX1VEUF9TRUcgfCBQS1RfVFhf
SVBWNCB8IFwKPisJCQkJUEtUX1RYX09VVEVSX0lQVjQgfCBQS1RfVFhfVFVOTkVMX01BU0spKSA9
PSBcCj4rCQkoUEtUX1RYX1VEUF9TRUcgfCBQS1RfVFhfSVBWNCB8IFBLVF9UWF9PVVRFUl9JUFY0
IHwgXAo+KwkJIFBLVF9UWF9UVU5ORUxfVlhMQU4pKQo+Kwo+ICNkZWZpbmUgSVNfSVBWNF9HUkVf
VENQNChmbGFnKSAoKChmbGFnKSAmIChQS1RfVFhfVENQX1NFRyB8IFBLVF9UWF9JUFY0IHwgXAo+
IAkJCQlQS1RfVFhfT1VURVJfSVBWNCB8IFBLVF9UWF9UVU5ORUxfTUFTSykpID09IFwKPiAJCShQ
S1RfVFhfVENQX1NFRyB8IFBLVF9UWF9JUFY0IHwgUEtUX1RYX09VVEVSX0lQVjQgfCBcCj5kaWZm
IC0tZ2l0IGEvbGliL2xpYnJ0ZV9nc28vZ3NvX3R1bm5lbF91ZHA0LmMgYi9saWIvbGlicnRlX2dz
by9nc29fdHVubmVsX3VkcDQuYwo+bmV3IGZpbGUgbW9kZSAxMDA2NDQKPmluZGV4IDAwMDAwMDAu
LjFhMDE4ZWUKPi0tLSAvZGV2L251bGwKPisrKyBiL2xpYi9saWJydGVfZ3NvL2dzb190dW5uZWxf
dWRwNC5jCj5AQCAtMCwwICsxLDEwOCBAQAo+Ky8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBC
U0QtMy1DbGF1c2UKPisgKiBDb3B5cmlnaHQoYykgMjAyMCBJbnNwdXIgQ29ycG9yYXRpb24KPisg
Ki8KPisKPisjaW5jbHVkZSAiZ3NvX2NvbW1vbi5oIgo+KyNpbmNsdWRlICJnc29fdHVubmVsX3Vk
cDQuaCIKPisKPisjZGVmaW5lIElQVjRfSERSX01GX0JJVCAoMVUgPDwgMTMpCj4rCj4rc3RhdGlj
IHZvaWQKPit1cGRhdGVfdHVubmVsX2lwdjRfdWRwX2hlYWRlcnMoc3RydWN0IHJ0ZV9tYnVmICpw
a3QsIHN0cnVjdCBydGVfbWJ1ZiAqKnNlZ3MsCj4rCQkJICAgICAgIHVpbnQxNl90IG5iX3NlZ3Mp
Cj4rewo+KwlzdHJ1Y3QgcnRlX2lwdjRfaGRyICppcHY0X2hkcjsKPisJdWludDE2X3Qgb3V0ZXJf
aWQsIGlubmVyX2lkLCB0YWlsX2lkeCwgaSwgbGVuZ3RoOwo+Kwl1aW50MTZfdCBvdXRlcl9pcHY0
X29mZnNldCwgaW5uZXJfaXB2NF9vZmZzZXQ7Cj4rCXVpbnQxNl90IHVkcF9ncmVfb2Zmc2V0LCB1
ZHBfb2Zmc2V0Owo+Kwl1aW50OF90IHVwZGF0ZV91ZHBfaGRyOwo+Kwl1aW50MTZfdCBmcmFnX29m
ZnNldCA9IDAsIGlzX21mOwo+Kwo+KwlvdXRlcl9pcHY0X29mZnNldCA9IHBrdC0+b3V0ZXJfbDJf
bGVuOwo+Kwl1ZHBfZ3JlX29mZnNldCA9IG91dGVyX2lwdjRfb2Zmc2V0ICsgcGt0LT5vdXRlcl9s
M19sZW47Cj4rCWlubmVyX2lwdjRfb2Zmc2V0ID0gdWRwX2dyZV9vZmZzZXQgKyBwa3QtPmwyX2xl
bjsKPisJdWRwX29mZnNldCA9IGlubmVyX2lwdjRfb2Zmc2V0ICsgcGt0LT5sM19sZW47Cj4rCj4r
CS8qIE91dGVyIElQdjQgaGVhZGVyLiAqLwo+KwlpcHY0X2hkciA9IChzdHJ1Y3QgcnRlX2lwdjRf
aGRyICopKHJ0ZV9wa3RtYnVmX210b2QocGt0LCBjaGFyICopICsKPisJCQlvdXRlcl9pcHY0X29m
ZnNldCk7Cj4rCW91dGVyX2lkID0gcnRlX2JlX3RvX2NwdV8xNihpcHY0X2hkci0+cGFja2V0X2lk
KTsKPisKPisJLyogSW5uZXIgSVB2NCBoZWFkZXIuICovCj4rCWlwdjRfaGRyID0gKHN0cnVjdCBy
dGVfaXB2NF9oZHIgKikocnRlX3BrdG1idWZfbXRvZChwa3QsIGNoYXIgKikgKwo+KwkJCWlubmVy
X2lwdjRfb2Zmc2V0KTsKPisJaW5uZXJfaWQgPSBydGVfYmVfdG9fY3B1XzE2KGlwdjRfaGRyLT5w
YWNrZXRfaWQpOwo+Kwo+Kwl0YWlsX2lkeCA9IG5iX3NlZ3MgLSAxOwo+Kwo+KwkvKiBPbmx5IHVw
ZGF0ZSBVRFAgaGVhZGVyIGZvciBWeExBTiBwYWNrZXRzLiAqLwo+Kwl1cGRhdGVfdWRwX2hkciA9
IChwa3QtPm9sX2ZsYWdzICYgUEtUX1RYX1RVTk5FTF9WWExBTikgPyAxIDogMDsKPisKPisJZm9y
IChpID0gMDsgaSA8IG5iX3NlZ3M7IGkrKykgewo+KwkJdXBkYXRlX2lwdjRfaGVhZGVyKHNlZ3Nb
aV0sIG91dGVyX2lwdjRfb2Zmc2V0LCBvdXRlcl9pZCk7Cj4rCQlpZiAodXBkYXRlX3VkcF9oZHIp
Cj4rCQkJdXBkYXRlX3VkcF9oZWFkZXIoc2Vnc1tpXSwgdWRwX2dyZV9vZmZzZXQpOwo+KwkJdXBk
YXRlX2lwdjRfaGVhZGVyKHNlZ3NbaV0sIGlubmVyX2lwdjRfb2Zmc2V0LCBpbm5lcl9pZCk7Cj4r
CQl1cGRhdGVfdWRwX2hlYWRlcihzZWdzW2ldLCB1ZHBfb2Zmc2V0KTsKPisJCS8qIEZvciB0aGUg
Y2FzZSBpbm5lciBwYWNrZXQgaXMgVURQLCB3ZSBtdXN0IGtlZXAgVURQCj4rCQkgKiBkYXRhZ3Jh
bSBib3VuZGFyeSwgaXQgbXVzdCBiZSBoYW5kbGVkIGFzIElQIGZyYWdtZW50Lgo+KwkJICoKPisJ
CSAqIFNldCBJUCBmcmFnbWVudCBvZmZzZXQgZm9yIGlubmVyIElQIGhlYWRlci4KPisJCSAqLwo+
KwkJaXB2NF9oZHIgPSAoc3RydWN0IHJ0ZV9pcHY0X2hkciAqKQo+KwkJCShydGVfcGt0bWJ1Zl9t
dG9kKHNlZ3NbaV0sIGNoYXIgKikgKwo+KwkJCQlpbm5lcl9pcHY0X29mZnNldCk7Cj4rCQlpc19t
ZiA9IGkgPCB0YWlsX2lkeCA/IElQVjRfSERSX01GX0JJVCA6IDA7Cj4rCQlpcHY0X2hkci0+ZnJh
Z21lbnRfb2Zmc2V0ID0KPisJCQlydGVfY3B1X3RvX2JlXzE2KGZyYWdfb2Zmc2V0IHwgaXNfbWYp
Owo+KwkJbGVuZ3RoID0gc2Vnc1tpXS0+cGt0X2xlbiAtIGlubmVyX2lwdjRfb2Zmc2V0IC0gcGt0
LT5sM19sZW47Cj4rCQlmcmFnX29mZnNldCArPSAobGVuZ3RoID4+IDMpOwo+KwkJb3V0ZXJfaWQr
KzsKPisJfQo+K30KPisKPitpbnQKPitnc29fdHVubmVsX3VkcDRfc2VnbWVudChzdHJ1Y3QgcnRl
X21idWYgKnBrdCwKPisJCXVpbnQxNl90IGdzb19zaXplLAo+KwkJc3RydWN0IHJ0ZV9tZW1wb29s
ICpkaXJlY3RfcG9vbCwKPisJCXN0cnVjdCBydGVfbWVtcG9vbCAqaW5kaXJlY3RfcG9vbCwKPisJ
CXN0cnVjdCBydGVfbWJ1ZiAqKnBrdHNfb3V0LAo+KwkJdWludDE2X3QgbmJfcGt0c19vdXQpCj4r
ewo+KwlzdHJ1Y3QgcnRlX2lwdjRfaGRyICppbm5lcl9pcHY0X2hkcjsKPisJdWludDE2X3QgcHls
ZF91bml0X3NpemUsIGhkcl9vZmZzZXQsIGZyYWdfb2ZmOwo+KwlpbnQgcmV0ID0gMTsKPisKPisJ
aGRyX29mZnNldCA9IHBrdC0+b3V0ZXJfbDJfbGVuICsgcGt0LT5vdXRlcl9sM19sZW4gKyBwa3Qt
PmwyX2xlbjsKPisJaW5uZXJfaXB2NF9oZHIgPSAoc3RydWN0IHJ0ZV9pcHY0X2hkciAqKShydGVf
cGt0bWJ1Zl9tdG9kKHBrdCwgY2hhciAqKSArCj4rCQkJaGRyX29mZnNldCk7Cj4rCS8qCj4rCSAq
IERvbid0IHByb2Nlc3MgdGhlIHBhY2tldCB3aG9zZSBNRiBiaXQgb3Igb2Zmc2V0IGluIHRoZSBp
bm5lcgo+KwkgKiBJUHY0IGhlYWRlciBhcmUgbm9uLXplcm8uCj4rCSAqLwo+KwlmcmFnX29mZiA9
IHJ0ZV9iZV90b19jcHVfMTYoaW5uZXJfaXB2NF9oZHItPmZyYWdtZW50X29mZnNldCk7Cj4rCWlm
ICh1bmxpa2VseShJU19GUkFHTUVOVEVEKGZyYWdfb2ZmKSkpIHsKPisJCXBrdHNfb3V0WzBdID0g
cGt0Owo+KwkJcmV0dXJuIDE7Cj4rCX0KPisKPisJaGRyX29mZnNldCArPSBwa3QtPmwzX2xlbjsK
PisJLyogRG9uJ3QgcHJvY2VzcyB0aGUgcGFja2V0IHdpdGhvdXQgZGF0YSAqLwo+KwlpZiAoKGhk
cl9vZmZzZXQgKyBwa3QtPmw0X2xlbikgPj0gcGt0LT5wa3RfbGVuKSB7Cj4rCQlwa3RzX291dFsw
XSA9IHBrdDsKPisJCXJldHVybiAxOwo+Kwl9Cj4rCj4rCS8qIHB5bGRfdW5pdF9zaXplIG11c3Qg
YmUgYSBtdWx0aXBsZSBvZiA4IGJlY2F1c2UgZnJhZ19vZmYKPisJICogdXNlcyA4IGJ5dGVzIGFz
IHVuaXQuCj4rCSAqLwo+KwlweWxkX3VuaXRfc2l6ZSA9IChnc29fc2l6ZSAtIGhkcl9vZmZzZXQp
ICYgfjdVOwo+Kwo+KwkvKiBTZWdtZW50IHRoZSBwYXlsb2FkICovCj4rCXJldCA9IGdzb19kb19z
ZWdtZW50KHBrdCwgaGRyX29mZnNldCwgcHlsZF91bml0X3NpemUsIGRpcmVjdF9wb29sLAo+KwkJ
CWluZGlyZWN0X3Bvb2wsIHBrdHNfb3V0LCBuYl9wa3RzX291dCk7Cj4rCWlmIChyZXQgPiAxKQo+
KwkJdXBkYXRlX3R1bm5lbF9pcHY0X3VkcF9oZWFkZXJzKHBrdCwgcGt0c19vdXQsIHJldCk7Cj4r
Cj4rCXJldHVybiByZXQ7Cj4rfQo+ZGlmZiAtLWdpdCBhL2xpYi9saWJydGVfZ3NvL2dzb190dW5u
ZWxfdWRwNC5oIGIvbGliL2xpYnJ0ZV9nc28vZ3NvX3R1bm5lbF91ZHA0LmgKPm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0Cj5pbmRleCAwMDAwMDAwLi5kNTZlMzQyCj4tLS0gL2Rldi9udWxsCj4rKysgYi9s
aWIvbGlicnRlX2dzby9nc29fdHVubmVsX3VkcDQuaAo+QEAgLTAsMCArMSw0MyBAQAo+Ky8qIFNQ
RFgtTGljZW5zZS1JZGVudGlmaWVyOiBCU0QtMy1DbGF1c2UKPisgKiBDb3B5cmlnaHQoYykgMjAy
MCBJbnNwdXIgQ29ycG9yYXRpb24KPisgKi8KPisKPisjaWZuZGVmIF9HU09fVFVOTkVMX1VEUDRf
SF8KPisjZGVmaW5lIF9HU09fVFVOTkVMX1VEUDRfSF8KPisKPisjaW5jbHVkZSA8c3RkaW50Lmg+
Cj4rI2luY2x1ZGUgPHJ0ZV9tYnVmLmg+Cj4rCj4rLyoqCj4rICogU2VnbWVudCBhIHR1bm5lbGlu
ZyBwYWNrZXQgd2l0aCBpbm5lciBUQ1AvSVB2NCBoZWFkZXJzLiBUaGlzIGZ1bmN0aW9uCj4rICog
ZG9lcyBub3QgY2hlY2sgaWYgdGhlIGlucHV0IHBhY2tldCBoYXMgY29ycmVjdCBjaGVja3N1bXMs
IGFuZCBkb2VzIG5vdAo+KyAqIHVwZGF0ZSBjaGVja3N1bXMgZm9yIG91dHB1dCBHU08gc2VnbWVu
dHMuIEZ1cnRoZXJtb3JlLCBpdCBkb2VzIG5vdAo+KyAqIHByb2Nlc3MgSVAgZnJhZ21lbnQgcGFj
a2V0cy4KPisgKgo+KyAqIEBwYXJhbSBwa3QKPisgKiAgVGhlIHBhY2tldCBtYnVmIHRvIHNlZ21l
bnQuCj4rICogQHBhcmFtIGdzb19zaXplCj4rICogIFRoZSBtYXggbGVuZ3RoIG9mIGEgR1NPIHNl
Z21lbnQsIG1lYXN1cmVkIGluIGJ5dGVzLgo+KyAqIEBwYXJhbSBkaXJlY3RfcG9vbAo+KyAqICBN
QlVGIHBvb2wgdXNlZCBmb3IgYWxsb2NhdGluZyBkaXJlY3QgYnVmZmVycyBmb3Igb3V0cHV0IHNl
Z21lbnRzLgo+KyAqIEBwYXJhbSBpbmRpcmVjdF9wb29sCj4rICogIE1CVUYgcG9vbCB1c2VkIGZv
ciBhbGxvY2F0aW5nIGluZGlyZWN0IGJ1ZmZlcnMgZm9yIG91dHB1dCBzZWdtZW50cy4KPisgKiBA
cGFyYW0gcGt0c19vdXQKPisgKiAgUG9pbnRlciBhcnJheSB1c2VkIHRvIHN0b3JlIHRoZSBNQlVG
IGFkZHJlc3NlcyBvZiBvdXRwdXQgR1NPCj4rICogIHNlZ21lbnRzLCB3aGVuIGl0IHN1Y2NlZWRz
LiBJZiB0aGUgbWVtb3J5IHNwYWNlIGluIHBrdHNfb3V0IGlzCj4rICogIGluc3VmZmljaWVudCwg
aXQgZmFpbHMgYW5kIHJldHVybnMgLUVJTlZBTC4KPisgKiBAcGFyYW0gbmJfcGt0c19vdXQKPisg
KiAgVGhlIG1heCBudW1iZXIgb2YgaXRlbXMgdGhhdCAncGt0c19vdXQnIGNhbiBrZWVwLgo+KyAq
Cj4rICogQHJldHVybgo+KyAqICAgLSBUaGUgbnVtYmVyIG9mIEdTTyBzZWdtZW50cyBmaWxsZWQg
aW4gcGt0c19vdXQgb24gc3VjY2Vzcy4KPisgKiAgIC0gUmV0dXJuIC1FTk9NRU0gaWYgcnVuIG91
dCBvZiBtZW1vcnkgaW4gTUJVRiBwb29scy4KPisgKiAgIC0gUmV0dXJuIC1FSU5WQUwgZm9yIGlu
dmFsaWQgcGFyYW1ldGVycy4KPisgKi8KPitpbnQgZ3NvX3R1bm5lbF91ZHA0X3NlZ21lbnQoc3Ry
dWN0IHJ0ZV9tYnVmICpwa3QsCj4rCQl1aW50MTZfdCBnc29fc2l6ZSwKPisJCXN0cnVjdCBydGVf
bWVtcG9vbCAqZGlyZWN0X3Bvb2wsCj4rCQlzdHJ1Y3QgcnRlX21lbXBvb2wgKmluZGlyZWN0X3Bv
b2wsCj4rCQlzdHJ1Y3QgcnRlX21idWYgKipwa3RzX291dCwKPisJCXVpbnQxNl90IG5iX3BrdHNf
b3V0KTsKPisjZW5kaWYKPmRpZmYgLS1naXQgYS9saWIvbGlicnRlX2dzby9tZXNvbi5idWlsZCBi
L2xpYi9saWJydGVfZ3NvL21lc29uLmJ1aWxkCj5pbmRleCBhZDhkZDg1Li4wNTkwNGYyIDEwMDY0
NAo+LS0tIGEvbGliL2xpYnJ0ZV9nc28vbWVzb24uYnVpbGQKPisrKyBiL2xpYi9saWJydGVfZ3Nv
L21lc29uLmJ1aWxkCj5AQCAtMiw2ICsyLDYgQEAKPiAjIENvcHlyaWdodChjKSAyMDE3IEludGVs
IENvcnBvcmF0aW9uCj4gCj4gc291cmNlcyA9IGZpbGVzKCdnc29fY29tbW9uLmMnLCAnZ3NvX3Rj
cDQuYycsICdnc29fdWRwNC5jJywKPi0gCQknZ3NvX3R1bm5lbF90Y3A0LmMnLCAncnRlX2dzby5j
JykKPisJCSdnc29fdHVubmVsX3RjcDQuYycsICdnc29fdHVubmVsX3VkcDQuYycsICdydGVfZ3Nv
LmMnKQo+IGhlYWRlcnMgPSBmaWxlcygncnRlX2dzby5oJykKPiBkZXBzICs9IFsnZXRoZGV2J10K
PmRpZmYgLS1naXQgYS9saWIvbGlicnRlX2dzby9ydGVfZ3NvLmMgYi9saWIvbGlicnRlX2dzby9y
dGVfZ3NvLmMKPmluZGV4IDc1MWI1YjYuLmNmNDAxYjIgMTAwNjQ0Cj4tLS0gYS9saWIvbGlicnRl
X2dzby9ydGVfZ3NvLmMKPisrKyBiL2xpYi9saWJydGVfZ3NvL3J0ZV9nc28uYwo+QEAgLTExLDYg
KzExLDcgQEAKPiAjaW5jbHVkZSAiZ3NvX2NvbW1vbi5oIgo+ICNpbmNsdWRlICJnc29fdGNwNC5o
Igo+ICNpbmNsdWRlICJnc29fdHVubmVsX3RjcDQuaCIKPisjaW5jbHVkZSAiZ3NvX3R1bm5lbF91
ZHA0LmgiCj4gI2luY2x1ZGUgImdzb191ZHA0LmgiCj4gCj4gI2RlZmluZSBJTExFR0FMX1VEUF9H
U09fQ1RYKGN0eCkgXAo+QEAgLTYyLDYgKzYzLDEzIEBACj4gCQlyZXQgPSBnc29fdHVubmVsX3Rj
cDRfc2VnbWVudChwa3QsIGdzb19zaXplLCBpcGlkX2RlbHRhLAo+IAkJCQlkaXJlY3RfcG9vbCwg
aW5kaXJlY3RfcG9vbCwKPiAJCQkJcGt0c19vdXQsIG5iX3BrdHNfb3V0KTsKPisJfSBlbHNlIGlm
IChJU19JUFY0X1ZYTEFOX1VEUDQocGt0LT5vbF9mbGFncykgJiYKPisJCQkoZ3NvX2N0eC0+Z3Nv
X3R5cGVzICYgKERFVl9UWF9PRkZMT0FEX1ZYTEFOX1ROTF9UU08gfAo+KwkJCQkJICAgICAgIERF
Vl9UWF9PRkZMT0FEX1VEUF9UU08pKSkgewo+KwkJcGt0LT5vbF9mbGFncyAmPSAoflBLVF9UWF9V
RFBfU0VHKTsKPisJCXJldCA9IGdzb190dW5uZWxfdWRwNF9zZWdtZW50KHBrdCwgZ3NvX3NpemUs
Cj4rCQkJCWRpcmVjdF9wb29sLCBpbmRpcmVjdF9wb29sLAo+KwkJCQlwa3RzX291dCwgbmJfcGt0
c19vdXQpOwo+IAl9IGVsc2UgaWYgKElTX0lQVjRfVENQKHBrdC0+b2xfZmxhZ3MpICYmCj4gCQkJ
KGdzb19jdHgtPmdzb190eXBlcyAmIERFVl9UWF9PRkZMT0FEX1RDUF9UU08pKSB7Cj4gCQlwa3Qt
Pm9sX2ZsYWdzICY9ICh+UEtUX1RYX1RDUF9TRUcpOwo+LS0gCj4xLjguMy4xCg==