Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 1 Mar 2017 22:35:56 +0000
From:      "ale (Alex Dupre)" <phabric-noreply@FreeBSD.org>
To:        freebsd-net@freebsd.org
Subject:   [Differential] D9270: Add support for user-supplied Host-Uniq tag and handle PADM messages in Netgraph PPPoE
Message-ID:  <5d0d17fed4f7ff51825b42ccacdc7321@localhost.localdomain>
In-Reply-To: <differential-rev-PHID-DREV-zs5j6sjj2bwywywa3p22-req@FreeBSD.org>
References:  <differential-rev-PHID-DREV-zs5j6sjj2bwywywa3p22-req@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--b1_5d0d17fed4f7ff51825b42ccacdc7321
Content-Type: text/plain; charset = "utf-8"
Content-Transfer-Encoding: base64

YWxlIHJldGl0bGVkIHRoaXMgcmV2aXNpb24gZnJvbSAiQWRkIHN1cHBvcnQgZm9yIHVzZXItc3Vw
cGxpZWQgSG9zdC1VbmlxIHRhZyBpbiBOZXRncmFwaCBQUFBvRSIgdG8gIkFkZCBzdXBwb3J0IGZv
ciB1c2VyLXN1cHBsaWVkIEhvc3QtVW5pcSB0YWcgYW5kIGhhbmRsZSBQQURNIG1lc3NhZ2VzIGlu
IE5ldGdyYXBoIFBQUG9FIi4KYWxlIHVwZGF0ZWQgdGhlIHN1bW1hcnkgZm9yIHRoaXMgcmV2aXNp
b24uCmFsZSB1cGRhdGVkIHRoZSB0ZXN0IHBsYW4gZm9yIHRoaXMgcmV2aXNpb24uCmFsZSBhZGRl
ZCBhIHN1YnNjcmliZXI6IG1hdi4KYWxlIHVwZGF0ZWQgdGhpcyByZXZpc2lvbiB0byBEaWZmIDI1
ODQ5LgphbGUgYWRkZWQgYSBjb21tZW50LgpUaGlzIHJldmlzaW9uIG5vdyByZXF1aXJlcyByZXZp
ZXcgdG8gcHJvY2VlZC4KCgogIC0gYWRkIGNsaWVudCBhbmQgc2VydmVyIHN1cHBvcnQgZm9yIFBB
RE0gbWVzc2FnZXMsIEhVUkwgYW5kIE1PVE0KICAtIEZpeCBhIHJlZ3Jlc3Npb24gaW4gUFBQb0Ug
c2VydmVyIGludHJvZHVjZWQgYnkgcHJldmlvdXMgcGF0Y2ggdmVyc2lvbgogIC0gaGFuZGxlIG1p
c3Npbmcgc2VydmljZSBuYW1lIHRhZyBpbiBQQURJIHJlcXVlc3RzIHRvIGNvcGUgd2l0aCBub24g
ZnVsbHkgY29tcGxpYW50IGNsaWVudCBpbXBsZW1lbnRhdGlvbnMsIHRyZWF0IGl0IGFzIGVtcHR5
IHNlcnZpY2UgbmFtZQoKUkVQT1NJVE9SWQogIHJTIEZyZWVCU0Qgc3JjIHJlcG9zaXRvcnkKCkNI
QU5HRVMgU0lOQ0UgTEFTVCBVUERBVEUKICBodHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcvRDky
NzA/dnM9MjQzMTQmaWQ9MjU4NDkKClJFVklTSU9OIERFVEFJTAogIGh0dHBzOi8vcmV2aWV3cy5m
cmVlYnNkLm9yZy9EOTI3MAoKQUZGRUNURUQgRklMRVMKICBzaGFyZS9tYW4vbWFuNC9uZ19wcHBv
ZS40CiAgc3lzL25ldGdyYXBoL25nX3BwcG9lLmMKICBzeXMvbmV0Z3JhcGgvbmdfcHBwb2UuaAoK
RU1BSUwgUFJFRkVSRU5DRVMKICBodHRwczovL3Jldmlld3MuZnJlZWJzZC5vcmcvc2V0dGluZ3Mv
cGFuZWwvZW1haWxwcmVmZXJlbmNlcy8KClRvOiBhbGUsICNtYW5wYWdlcywgYWRyaWFuLCAjbmV0
d29yaywganVsaWFuCkNjOiBtYXYsIHBvb2xyb29tX2dtYWlsLmNvbSwgbWFuZHJlZSwgaW1wLCBm
cmVlYnNkLW5ldC1saXN0Cg==

--b1_5d0d17fed4f7ff51825b42ccacdc7321
Content-Type: text/x-patch; charset=utf-8; name="D9270.25849.patch"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="D9270.25849.patch"

ZGlmZiAtLWdpdCBhL3N5cy9uZXRncmFwaC9uZ19wcHBvZS5oIGIvc3lzL25ldGdyYXBoL25nX3Bw
cG9lLmgKLS0tIGEvc3lzL25ldGdyYXBoL25nX3BwcG9lLmgKKysrIGIvc3lzL25ldGdyYXBoL25n
X3BwcG9lLmgKQEAgLTUyLDggKzUyLDEwIEBACiAKICNkZWZpbmUgTkdNX1BQUE9FX0NPT0tJRQkJ
MTA4OTg5MzA3MgogI2RlZmluZSBOR01fUFBQT0VfU0VUTUFYUF9DT09LSUUJMTQ0MTYyNDMyMgor
I2RlZmluZSBOR01fUFBQT0VfUEFETV9DT09LSUUJCTE0ODg0MDU4MjIKIAogI2RlZmluZQlQUFBP
RV9TRVJWSUNFX05BTUVfU0laRQkJNjQgLyogZm9yIG5vdyAqLworI2RlZmluZQlQUFBPRV9QQURN
X1ZBTFVFX1NJWkUJCTEyOCAvKiBmb3Igbm93ICovCiAKIC8qIEhvb2sgbmFtZXMgKi8KICNkZWZp
bmUgTkdfUFBQT0VfSE9PS19FVEhFUk5FVAkiZXRoZXJuZXQiCkBAIC04NCw3ICs4NiwxMSBAQAog
CU5HTV9QUFBPRV9TRVRNT0RFICA9IDEyLCAvKiBzZXQgdG8gc3RhbmRhcmQgb3IgY29tcGF0IG1v
ZGVzICovCiAJTkdNX1BQUE9FX0dFVE1PREUgID0gMTMsIC8qIHNlZSBjdXJyZW50IG1vZGUgKi8K
IAlOR01fUFBQT0VfU0VURU5BRERSID0gMTQsIC8qIHNldCBFdGhlcm5ldCBhZGRyZXNzICovCi0J
TkdNX1BQUE9FX1NFVE1BWFAgID0gMTUgLyogU2V0IFBQUC1NYXgtUGF5bG9hZCB2YWx1ZSAqLwor
CU5HTV9QUFBPRV9TRVRNQVhQICAgPSAxNSwgLyogU2V0IFBQUC1NYXgtUGF5bG9hZCB2YWx1ZSAq
LworCU5HTV9QUFBPRV9TRU5EX0hVUkwgPSAxNiwgLyogU2VuZCBQQURNIEhVUkwgbWVzc2FnZSAq
LworCU5HTV9QUFBPRV9IVVJMICAgICAgPSAxNywgLyogSFVSTCBmb3IgaW5mb3JtYXRpb25hbCBw
dXJwb3NlcyAqLworCU5HTV9QUFBPRV9TRU5EX01PVE0gPSAxOCwgLyogU2VuZCBQQURNIE1PVE0g
bWVzc2FnZSAqLworCU5HTV9QUFBPRV9NT1RNICAgICAgPSAxOSAgLyogTU9UTSBmb3IgaW5mb3Jt
YXRpb25hbCBwdXJwb3NlcyAqLwogfTsKIAogLyoqKioqKioqKioqKioqKioqKioqKioqCkBAIC0x
NTcsNiArMTYzLDEzIEBACiAJdWludDE2X3QJZGF0YTsKIH07CiAKKy8qCisgKiBUaGlzIHN0cnVj
dHVyZSBpcyB1c2VkIHRvIHNlbmQgUEFETSBtZXNzYWdlcyBmcm9tIHNlcnZlciB0byBjbGllbnQu
CisgKi8KK3N0cnVjdCBuZ3BwcG9lX3BhZG0geworCWNoYXIJbXNnW1BQUE9FX1BBRE1fVkFMVUVf
U0laRV07Cit9OworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioKICAqIENvbnN0YW50cyBhbmQgZGVmaW5pdGlvbnMg
c3BlY2lmaWMgdG8gcHBwb2UKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq
KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KQEAgLTE3MSw2ICsxODQsNyBAQAogI2Rl
ZmluZSBQQURSX0NPREUJMHgxOQogI2RlZmluZSBQQURTX0NPREUJMHg2NQogI2RlZmluZSBQQURU
X0NPREUJMHhhNworI2RlZmluZSBQQURNX0NPREUJMHhkMwogCiAvKiBUYWcgaWRlbnRpZmllcnMg
Ki8KICNpZiBCWVRFX09SREVSID09IEJJR19FTkRJQU4KQEAgLTE4MSw2ICsxOTUsOCBAQAogI2Rl
ZmluZSBQVFRfQUNfQ09PS0lFCSgweDAxMDQpCiAjZGVmaW5lIFBUVF9WRU5ET1IgCSgweDAxMDUp
CiAjZGVmaW5lIFBUVF9SRUxBWV9TSUQJKDB4MDExMCkKKyNkZWZpbmUgUFRUX0hVUkwJKDB4MDEx
MSkJLyogUFBQb0UgRXh0ZW5zaW9ucyAoQ0FSUkVMKSAqLworI2RlZmluZSBQVFRfTU9UTQkoMHgw
MTEyKQkvKiBQUFBvRSBFeHRlbnNpb25zIChDQVJSRUwpICovCiAjZGVmaW5lCVBUVF9NQVhfUEFZ
TAkoMHgwMTIwKQkvKiBQUFAtTWF4LVBheWxvYWQgKFJGQzQ2MzgpICovCiAjZGVmaW5lIFBUVF9T
UlZfRVJSICAgICAoMHgwMjAxKQogI2RlZmluZSBQVFRfU1lTX0VSUiAgCSgweDAyMDIpCkBAIC0x
OTgsNiArMjE0LDggQEAKICNkZWZpbmUgUFRUX0FDX0NPT0tJRQkoMHgwNDAxKQogI2RlZmluZSBQ
VFRfVkVORE9SIAkoMHgwNTAxKQogI2RlZmluZSBQVFRfUkVMQVlfU0lECSgweDEwMDEpCisjZGVm
aW5lIFBUVF9IVVJMCSgweDExMDEpCS8qIFBQUG9FIEV4dGVuc2lvbnMgKENBUlJFTCkgKi8KKyNk
ZWZpbmUgUFRUX01PVE0JKDB4MTIwMSkJLyogUFBQb0UgRXh0ZW5zaW9ucyAoQ0FSUkVMKSAqLwog
I2RlZmluZQlQVFRfTUFYX1BBWUwJKDB4MjAwMSkJLyogUFBQLU1heC1QYXlsb2FkIChSRkM0NjM4
KSAqLwogI2RlZmluZSBQVFRfU1JWX0VSUiAgICAgKDB4MDEwMikKICNkZWZpbmUgUFRUX1NZU19F
UlIgIAkoMHgwMjAyKQpkaWZmIC0tZ2l0IGEvc3lzL25ldGdyYXBoL25nX3BwcG9lLmMgYi9zeXMv
bmV0Z3JhcGgvbmdfcHBwb2UuYwotLS0gYS9zeXMvbmV0Z3JhcGgvbmdfcHBwb2UuYworKysgYi9z
eXMvbmV0Z3JhcGgvbmdfcHBwb2UuYwpAQCAtMTc1LDYgKzE3NSwyMCBAQAogCSAgJm5nX3BhcnNl
X3VpbnQxNl90eXBlLAogCSAgTlVMTAogCX0sCisgICAgICAgIHsKKwkgIE5HTV9QUFBPRV9DT09L
SUUsCisJICBOR01fUFBQT0VfU0VORF9IVVJMLAorCSAgInNlbmRfaHVybCIsCisJICAmbmdwcHBv
ZV9pbml0X2RhdGFfc3RhdGVfdHlwZSwKKwkgIE5VTEwKKyAgICAgICAgfSwKKyAgICAgICAgewor
CSAgTkdNX1BQUE9FX0NPT0tJRSwKKwkgIE5HTV9QUFBPRV9TRU5EX01PVE0sCisJICAic2VuZF9t
b3RtIiwKKwkgICZuZ3BwcG9lX2luaXRfZGF0YV9zdGF0ZV90eXBlLAorCSAgTlVMTAorICAgICAg
ICB9LAogCXsgMCB9CiB9OwogCkBAIC0yMjYsOSArMjQwLDExIEBACiAJY29uc3Qgc3RydWN0IHBw
cG9lX3RhZwkqdGFnc1tOVU1UQUdTXTsKIAl1X2ludAkJCXNlcnZpY2VfbGVuOwogCXVfaW50CQkJ
YWNfbmFtZV9sZW47CisJdV9pbnQJCQlob3N0X3VuaXFfbGVuOwogCiAJc3RydWN0IGRhdGF0YWcJ
CXNlcnZpY2U7CiAJc3RydWN0IGRhdGF0YWcJCWFjX25hbWU7CisJc3RydWN0IGRhdGF0YWcJCWhv
c3RfdW5pcTsKIH07CiB0eXBlZGVmIHN0cnVjdCBzZXNzX25lZyAqbmVncDsKIApAQCAtNTg5LDE4
ICs2MDUsNDAgQEAKIHBwcG9lX2ZpbmR1bmlxKG5vZGVfcCBub2RlLCBjb25zdCBzdHJ1Y3QgcHBw
b2VfdGFnICp0YWcpCiB7CiAJaG9va19wCWhvb2sgPSBOVUxMOwotCXVuaW9uIHVuaXEgdW5pcTsK
KwlzZXNzcAlzcDsKIAotCWJjb3B5KHRhZyArIDEsIHVuaXEuYnl0ZXMsIHNpemVvZih2b2lkICop
KTsKIAkvKiBDeWNsZSB0aHJvdWdoIGFsbCBrbm93biBob29rcy4gKi8KIAlMSVNUX0ZPUkVBQ0go
aG9vaywgJm5vZGUtPm5kX2hvb2tzLCBoa19ob29rcykgewogCQkvKiBTa2lwIGFueSBub25zZXNz
aW9uIGhvb2suICovCiAJCWlmIChOR19IT09LX1BSSVZBVEUoaG9vaykgPT0gTlVMTCkKIAkJCWNv
bnRpbnVlOwotCQlpZiAodW5pcS5wb2ludGVyID09IE5HX0hPT0tfUFJJVkFURShob29rKSkKKwkJ
c3AgPSBOR19IT09LX1BSSVZBVEUoaG9vayk7CisJCWlmIChzcC0+bmVnLT5ob3N0X3VuaXFfbGVu
ID09IG50b2hzKHRhZy0+dGFnX2xlbikgJiYKKwkJICAgIGJjbXAoc3AtPm5lZy0+aG9zdF91bmlx
LmRhdGEsIChjb25zdCBjaGFyICopKHRhZyArIDEpLAorCQkgICAgIHNwLT5uZWctPmhvc3RfdW5p
cV9sZW4pID09IDApCiAJCQlicmVhazsKIAl9Ci0JQ1RSMyhLVFJfTkVULCAiJTIwczogbWF0Y2hl
ZCAlcCBmb3IgJXAiLCBfX2Z1bmNfXywgaG9vaywgdW5pcS5wb2ludGVyKTsKKwlDVFIzKEtUUl9O
RVQsICIlMjBzOiBtYXRjaGVkICVwIGZvciAlcCIsIF9fZnVuY19fLCBob29rLCBzcCk7CisKKwly
ZXR1cm4gKGhvb2spOworfQorCitzdGF0aWMgaG9va19wCitwcHBvZV9maW5kY29va2llKG5vZGVf
cCBub2RlLCBjb25zdCBzdHJ1Y3QgcHBwb2VfdGFnICp0YWcpCit7CisJaG9va19wCWhvb2sgPSBO
VUxMOworCXVuaW9uIHVuaXEgY29va2llOworCisJYmNvcHkodGFnICsgMSwgY29va2llLmJ5dGVz
LCBzaXplb2Yodm9pZCAqKSk7CisJLyogQ3ljbGUgdGhyb3VnaCBhbGwga25vd24gaG9va3MuICov
CisJTElTVF9GT1JFQUNIKGhvb2ssICZub2RlLT5uZF9ob29rcywgaGtfaG9va3MpIHsKKwkJLyog
U2tpcCBhbnkgbm9uc2Vzc2lvbiBob29rLiAqLworCQlpZiAoTkdfSE9PS19QUklWQVRFKGhvb2sp
ID09IE5VTEwpCisJCQljb250aW51ZTsKKwkJaWYgKGNvb2tpZS5wb2ludGVyID09IE5HX0hPT0tf
UFJJVkFURShob29rKSkKKwkJCWJyZWFrOworCX0KKwlDVFIzKEtUUl9ORVQsICIlMjBzOiBtYXRj
aGVkICVwIGZvciAlcCIsIF9fZnVuY19fLCBob29rLCBjb29raWUucG9pbnRlcik7CiAKIAlyZXR1
cm4gKGhvb2spOwogfQpAQCAtNzQ0LDE3ICs3ODIsMjkgQEAKIAkJY2FzZSBOR01fUFBQT0VfTElT
VEVOOgogCQljYXNlIE5HTV9QUFBPRV9PRkZFUjoKIAkJY2FzZSBOR01fUFBQT0VfU0VSVklDRToK
KwkJY2FzZSBOR01fUFBQT0VfU0VORF9IVVJMOgorCQljYXNlIE5HTV9QUFBPRV9TRU5EX01PVE06
CiAJCQlvdXJtc2cgPSAoc3RydWN0IG5ncHBwb2VfaW5pdF9kYXRhICopbXNnLT5kYXRhOwogCQkJ
aWYgKG1zZy0+aGVhZGVyLmFyZ2xlbiA8IHNpemVvZigqb3VybXNnKSkgewogCQkJCWxvZyhMT0df
RVJSLCAibmdfcHBwb2VbJXhdOiBpbml0IGRhdGEgdG9vICIKIAkJCQkgICAgInNtYWxsXG4iLCBu
b2RlLT5uZF9JRCk7CiAJCQkJTEVBVkUoRU1TR1NJWkUpOwogCQkJfQotCQkJaWYgKG1zZy0+aGVh
ZGVyLmFyZ2xlbiAtIHNpemVvZigqb3VybXNnKSA+Ci0JCQkgICAgUFBQT0VfU0VSVklDRV9OQU1F
X1NJWkUpIHsKLQkJCQlsb2coTE9HX0VSUiwgIm5nX3BwcG9lWyV4XTogc2VydmljZSBuYW1lICIK
LQkJCQkgICAgInRvbyBiaWdcbiIsIG5vZGUtPm5kX0lEKTsKLQkJCQlMRUFWRShFTVNHU0laRSk7
CisJCQlpZiAobXNnLT5oZWFkZXIuY21kID09IE5HTV9QUFBPRV9TRU5EX0hVUkwgfHwKKwkJCSAg
ICBtc2ctPmhlYWRlci5jbWQgPT0gTkdNX1BQUE9FX1NFTkRfTU9UTSkgeworCQkJCWlmIChtc2ct
PmhlYWRlci5hcmdsZW4gLSBzaXplb2YoKm91cm1zZykgPgorCQkJCSAgICBQUFBPRV9QQURNX1ZB
TFVFX1NJWkUpIHsKKwkJCQkJbG9nKExPR19FUlIsICJuZ19wcHBvZVsleF06IG1lc3NhZ2UgIgor
CQkJCQkgICAgInRvbyBiaWdcbiIsIG5vZGUtPm5kX0lEKTsKKwkJCQkJTEVBVkUoRU1TR1NJWkUp
OworCQkJCX0KKwkJCX0gZWxzZSB7CisJCQkJaWYgKG1zZy0+aGVhZGVyLmFyZ2xlbiAtIHNpemVv
Zigqb3VybXNnKSA+CisJCQkJICAgIFBQUE9FX1NFUlZJQ0VfTkFNRV9TSVpFKSB7CisJCQkJCWxv
ZyhMT0dfRVJSLCAibmdfcHBwb2VbJXhdOiBzZXJ2aWNlIG5hbWUgIgorCQkJCQkgICAgInRvbyBi
aWdcbiIsIG5vZGUtPm5kX0lEKTsKKwkJCQkJTEVBVkUoRU1TR1NJWkUpOworCQkJCX0KIAkJCX0K
IAkJCWlmIChtc2ctPmhlYWRlci5hcmdsZW4gLSBzaXplb2YoKm91cm1zZykgPAogCQkJICAgIG91
cm1zZy0+ZGF0YV9sZW4pIHsKQEAgLTc5NCw2ICs4NDQsMjAgQEAKIAkJCWlmIChtc2ctPmhlYWRl
ci5jbWQgPT0gTkdNX1BQUE9FX1NFUlZJQ0UpCiAJCQkJYnJlYWs7CiAKKwkJCS8qCisJCQkgKiBQ
QURNIG1lc3NhZ2VzIGFyZSBzZXQgdXAgb24gYWN0aXZlIHNlc3Npb25zLgorCQkJICovCisJCQlp
ZiAobXNnLT5oZWFkZXIuY21kID09IE5HTV9QUFBPRV9TRU5EX0hVUkwgfHwKKwkJCSAgICBtc2ct
PmhlYWRlci5jbWQgPT0gTkdNX1BQUE9FX1NFTkRfTU9UTSkgeworCQkJCWlmIChzcC0+c3RhdGUg
IT0gUFBQT0VfTkVXQ09OTkVDVEVEICYmCisJCQkJICAgIHNwLT5zdGF0ZSAhPSBQUFBPRV9DT05O
RUNURUQpIHsKKwkJCQkJbG9nKExPR19OT1RJQ0UsICJuZ19wcHBvZVsleF06IHNlc3Npb24gaXMg
bm90ICIKKwkJCQkJICAgICJhY3RpdmVcbiIsIG5vZGUtPm5kX0lEKTsKKwkJCQkJTEVBVkUoRUlT
Q09OTik7CisJCQkJfQorCQkJCWJyZWFrOworCQkJfQorCiAJCQlpZiAoc3AtPnN0YXRlICE9IFBQ
UE9FX1NOT05FKSB7CiAJCQkJbG9nKExPR19OT1RJQ0UsICJuZ19wcHBvZVsleF06IFNlc3Npb24g
YWxyZWFkeSAiCiAJCQkJICAgICJhY3RpdmVcbiIsIG5vZGUtPm5kX0lEKTsKQEAgLTg0OCwyOCAr
OTEyLDcyIEBACiAJCQkgKiBDaGVjayB0aGUgaG9vayBleGlzdHMgYW5kIGlzIFVuaW5pdGlhbGlz
ZWQuCiAJCQkgKiBTZW5kIGEgUEFESSByZXF1ZXN0LCBhbmQgc3RhcnQgdGhlIHRpbWVvdXQgbG9n
aWMuCiAJCQkgKiBTdG9yZSB0aGUgb3JpZ2luYXRvciBvZiB0aGlzIG1lc3NhZ2Ugc28gd2UgY2Fu
IHNlbmQKLQkJCSAqIGEgc3VjY2VzcyBvZiBmYWlsIG1lc3NhZ2UgdG8gdGhlbSBsYXRlci4KKwkJ
CSAqIGEgc3VjY2VzcyBvciBmYWlsIG1lc3NhZ2UgdG8gdGhlbSBsYXRlci4KIAkJCSAqIE1vdmUg
dGhlIHNlc3Npb24gdG8gU0lOSVQuCiAJCQkgKiBTZXQgdXAgdGhlIHNlc3Npb24gdG8gdGhlIGNv
cnJlY3Qgc3RhdGUgYW5kCiAJCQkgKiBzdGFydCBpdC4KIAkJCSAqLwotCQkJaW50CWksIGFjbmxl
biA9IDAsIGFjbnNlcCA9IDAsIHNydmxlbjsKKwkJCWludAlhY25wb3MsIGFjbmxlbiA9IDAsIGFj
bnNlcCA9IDA7CisJCQlpbnQJaHVwb3MsIGh1bGVuID0gMCwgaHVzZXAgPSAwOworCQkJaW50CWks
IHNydnBvcywgc3J2bGVuOworCQkJYWNucG9zID0gMDsKIAkJCWZvciAoaSA9IDA7IGkgPCBvdXJt
c2ctPmRhdGFfbGVuOyBpKyspIHsKIAkJCQlpZiAob3VybXNnLT5kYXRhW2ldID09ICdcXCcpIHsK
IAkJCQkJYWNubGVuID0gaTsKIAkJCQkJYWNuc2VwID0gMTsKIAkJCQkJYnJlYWs7CiAJCQkJfQog
CQkJfQotCQkJc3J2bGVuID0gb3VybXNnLT5kYXRhX2xlbiAtIGFjbmxlbiAtIGFjbnNlcDsKKwkJ
CWh1cG9zID0gYWNubGVuICsgYWNuc2VwOworCQkJZm9yIChpID0gaHVwb3M7IGkgPCBvdXJtc2ct
PmRhdGFfbGVuOyBpKyspIHsKKwkJCQlpZiAob3VybXNnLT5kYXRhW2ldID09ICd8JykgeworCQkJ
CQlodWxlbiA9IGkgLSBodXBvczsKKwkJCQkJaHVzZXAgPSAxOworCQkJCQlicmVhazsKKwkJCQl9
CisJCQl9CisJCQlzcnZwb3MgPSBodXBvcyArIGh1bGVuICsgaHVzZXA7CisJCQlzcnZsZW4gPSBv
dXJtc2ctPmRhdGFfbGVuIC0gc3J2cG9zOwogCi0JCQliY29weShvdXJtc2ctPmRhdGEsIG5lZy0+
YWNfbmFtZS5kYXRhLCBhY25sZW4pOworCQkJYmNvcHkob3VybXNnLT5kYXRhICsgYWNucG9zLCBu
ZWctPmFjX25hbWUuZGF0YSwgYWNubGVuKTsKIAkJCW5lZy0+YWNfbmFtZV9sZW4gPSBhY25sZW47
CiAKKwkJCW5lZy0+aG9zdF91bmlxLmhkci50YWdfdHlwZSA9IFBUVF9IT1NUX1VOSVE7CisJCQlp
ZiAoaHVsZW4gPT0gMCkgeworCQkJCS8qIE5vdCBwcm92aWRlZCwgZ2VuZXJhdGUgb25lICovCisJ
CQkJbmVnLT5ob3N0X3VuaXEuaGRyLnRhZ19sZW4gPSBodG9ucyhzaXplb2Yoc3ApKTsKKwkJCQli
Y29weSgmc3AsIG5lZy0+aG9zdF91bmlxLmRhdGEsIHNpemVvZihzcCkpOworCQkJCW5lZy0+aG9z
dF91bmlxX2xlbiA9IHNpemVvZihzcCk7CisJCQl9IGVsc2UgaWYgKGh1bGVuID4gMiAmJiBvdXJt
c2ctPmRhdGFbaHVwb3NdID09ICcwJyAmJgorCQkJICBvdXJtc2ctPmRhdGFbaHVwb3MgKyAxXSA9
PSAneCcgJiYgaHVsZW4gJSAyID09IDApIHsKKwkJCQkvKiBIZXggZW5jb2RlZCAqLworCQkJCXN0
YXRpYyBjb25zdCBjaGFyIGhleGRpZ1sxNl0gPSAiMDEyMzQ1Njc4OWFiY2RlZiI7CisJCQkJaW50
IGo7CisKKwkJCQluZWctPmhvc3RfdW5pcS5oZHIudGFnX2xlbiA9IGh0b25zKCh1aW50MTZfdCko
aHVsZW4gLyAyIC0gMSkpOworCQkJCWZvciAoaSA9IDA7IGkgPCBodWxlbiAtIDI7IGkrKykgewor
CQkJCQlmb3IgKGogPSAwOworCQkJCQkgICAgIGogPCAxNiAmJgorCQkJCQkgICAgIG91cm1zZy0+
ZGF0YVtodXBvcyArIDIgKyBpXSAhPSBoZXhkaWdbal07CisJCQkJCSAgICAgaisrKTsKKwkJCQkJ
aWYgKGogPT0gMTYpCisJCQkJCQlMRUFWRShFSU5WQUwpOworCQkJCQlpZiAoaSAlIDIgPT0gMCkK
KwkJCQkJCW5lZy0+aG9zdF91bmlxLmRhdGFbaSAvIDJdID0gaiA8PCA0OworCQkJCQllbHNlCisJ
CQkJCQluZWctPmhvc3RfdW5pcS5kYXRhW2kgLyAyXSB8PSBqOworCQkJCX0KKwkJCQluZWctPmhv
c3RfdW5pcV9sZW4gPSBodWxlbiAvIDIgLSAxOworCQkJfSBlbHNlIHsKKwkJCQkvKiBQbGFpbiBz
dHJpbmcgKi8KKwkJCQluZWctPmhvc3RfdW5pcS5oZHIudGFnX2xlbiA9IGh0b25zKCh1aW50MTZf
dClodWxlbik7CisJCQkJYmNvcHkob3VybXNnLT5kYXRhICsgaHVwb3MsIG5lZy0+aG9zdF91bmlx
LmRhdGEsIGh1bGVuKTsKKwkJCQluZWctPmhvc3RfdW5pcV9sZW4gPSBodWxlbjsKKwkJCX0KKwog
CQkJbmVnLT5zZXJ2aWNlLmhkci50YWdfdHlwZSA9IFBUVF9TUlZfTkFNRTsKIAkJCW5lZy0+c2Vy
dmljZS5oZHIudGFnX2xlbiA9IGh0b25zKCh1aW50MTZfdClzcnZsZW4pOwotCQkJYmNvcHkob3Vy
bXNnLT5kYXRhICsgYWNubGVuICsgYWNuc2VwLAotCQkJICAgIG5lZy0+c2VydmljZS5kYXRhLCBz
cnZsZW4pOworCQkJYmNvcHkob3VybXNnLT5kYXRhICsgc3J2cG9zLCBuZWctPnNlcnZpY2UuZGF0
YSwgc3J2bGVuKTsKIAkJCW5lZy0+c2VydmljZV9sZW4gPSBzcnZsZW47CiAJCQlwcHBvZV9zdGFy
dChzcCk7CiAJCQlicmVhazsKQEAgLTg3OSw3ICs5ODcsNyBAQAogCQkJICogQ2hlY2sgdGhlIGhv
b2sgZXhpc3RzIGFuZCBpcyBVbmluaXRpYWxpc2VkLgogCQkJICogSW5zdGFsbCB0aGUgc2Vydmlj
ZSBtYXRjaGluZyBzdHJpbmcuCiAJCQkgKiBTdG9yZSB0aGUgb3JpZ2luYXRvciBvZiB0aGlzIG1l
c3NhZ2Ugc28gd2UgY2FuIHNlbmQKLQkJCSAqIGEgc3VjY2VzcyBvZiBmYWlsIG1lc3NhZ2UgdG8g
dGhlbSBsYXRlci4KKwkJCSAqIGEgc3VjY2VzcyBvciBmYWlsIG1lc3NhZ2UgdG8gdGhlbSBsYXRl
ci4KIAkJCSAqIE1vdmUgdGhlIGhvb2sgdG8gJ0xJU1RFTklORycKIAkJCSAqLwogCQkJbmVnLT5z
ZXJ2aWNlLmhkci50YWdfdHlwZSA9IFBUVF9TUlZfTkFNRTsKQEAgLTEwMTksNiArMTEyNyw5NiBA
QAogCQkJcHJpdnAtPm1heF9wYXlsb2FkLmhkci50YWdfbGVuID0gaHRvbnMoc2l6ZW9mKHVpbnQx
Nl90KSk7CiAJCQlwcml2cC0+bWF4X3BheWxvYWQuZGF0YSA9IGh0b25zKCooKHVpbnQxNl90ICop
bXNnLT5kYXRhKSk7CiAJCQlicmVhazsKKwkJY2FzZSBOR01fUFBQT0VfU0VORF9IVVJMOgorCQkg
ICAgeworCQkJc3RydWN0IG1idWYgKm07CisKKwkJCS8qIEdlbmVyYXRlIGEgcGFja2V0IG9mIHRo
YXQgdHlwZS4gKi8KKwkJCU1HRVRIRFIobSwgTV9OT1dBSVQsIE1UX0RBVEEpOworCQkJaWYgKG0g
PT0gTlVMTCkKKwkJCQlsb2coTE9HX05PVElDRSwgIm5nX3BwcG9lWyV4XTogc2Vzc2lvbiBvdXQg
b2YgIgorCQkJCSAgICAibWJ1ZnNcbiIsIG5vZGUtPm5kX0lEKTsKKwkJCWVsc2UgeworCQkJCXN0
cnVjdCBwcHBvZV9mdWxsX2hkciAqd2g7CisJCQkJc3RydWN0IHBwcG9lX3RhZyAqdGFnOworCQkJ
CWludCAgICAgZXJyb3IgPSAwOworCisJCQkJbS0+bV9wa3RoZHIucmN2aWYgPSBOVUxMOworCQkJ
CW0tPm1fcGt0aGRyLmxlbiA9IG0tPm1fbGVuID0gc2l6ZW9mKCp3aCk7CisJCQkJd2ggPSBtdG9k
KG0sIHN0cnVjdCBwcHBvZV9mdWxsX2hkciAqKTsKKwkJCQliY29weSgmc3AtPnBrdF9oZHIsIHdo
LCBzaXplb2YoKndoKSk7CisKKwkJCQkvKiBSZXZlcnQgdGhlIHN0b3JlZCBoZWFkZXIgdG8gRElT
Qy9QQURNIG1vZGUuICovCisJCQkJd2gtPnBoLmNvZGUgPSBQQURNX0NPREU7CisJCQkJLyoKKwkJ
CQkgKiBDb25maWd1cmUgZXRoZXJ0eXBlIGRlcGVuZGluZyBvbiB3aGF0CisJCQkJICogd2FzIHVz
ZWQgZHVyaW5nIHNlc3Npb25zIHN0YWdlLgorCQkJCSAqLworCQkJCWlmICh3aC0+ZWguZXRoZXJf
dHlwZSA9PQorCQkJCSAgICBFVEhFUlRZUEVfUFBQT0VfM0NPTV9TRVNTKQorCQkJCQl3aC0+ZWgu
ZXRoZXJfdHlwZSA9IEVUSEVSVFlQRV9QUFBPRV8zQ09NX0RJU0M7CisJCQkJZWxzZQorCQkJCQl3
aC0+ZWguZXRoZXJfdHlwZSA9IEVUSEVSVFlQRV9QUFBPRV9ESVNDOworCQkJCS8qCisJCQkJICog
QWRkIFBBRE0gbWVzc2FnZSBhbmQgYWRqdXN0IHNpemVzLgorCQkJCSAqLworCQkJCXRhZyA9ICh2
b2lkICopKCZ3aC0+cGggKyAxKTsKKwkJCQl0YWctPnRhZ190eXBlID0gUFRUX0hVUkw7CisJCQkJ
dGFnLT50YWdfbGVuID0gaHRvbnMob3VybXNnLT5kYXRhX2xlbik7CisJCQkJc3RybmNweSgoY2hh
ciAqKSh0YWcgKyAxKSwgb3VybXNnLT5kYXRhLCBvdXJtc2ctPmRhdGFfbGVuKTsKKwkJCQltLT5t
X3BrdGhkci5sZW4gPSAobS0+bV9sZW4gKz0gc2l6ZW9mKCp0YWcpICsKKwkJCQkgICAgb3VybXNn
LT5kYXRhX2xlbik7CisJCQkJd2gtPnBoLmxlbmd0aCA9IGh0b25zKHNpemVvZigqdGFnKSArIG91
cm1zZy0+ZGF0YV9sZW4pOworCQkJCU5HX1NFTkRfREFUQV9PTkxZKGVycm9yLAorCQkJCSAgICBw
cml2cC0+ZXRoZXJuZXRfaG9vaywgbSk7CisJCQl9CisJCQlicmVhazsKKwkJICAgIH0KKwkJY2Fz
ZSBOR01fUFBQT0VfU0VORF9NT1RNOgorCQkgICAgeworCQkJc3RydWN0IG1idWYgKm07CisKKwkJ
CS8qIEdlbmVyYXRlIGEgcGFja2V0IG9mIHRoYXQgdHlwZS4gKi8KKwkJCU1HRVRIRFIobSwgTV9O
T1dBSVQsIE1UX0RBVEEpOworCQkJaWYgKG0gPT0gTlVMTCkKKwkJCQlsb2coTE9HX05PVElDRSwg
Im5nX3BwcG9lWyV4XTogc2Vzc2lvbiBvdXQgb2YgIgorCQkJCSAgICAibWJ1ZnNcbiIsIG5vZGUt
Pm5kX0lEKTsKKwkJCWVsc2UgeworCQkJCXN0cnVjdCBwcHBvZV9mdWxsX2hkciAqd2g7CisJCQkJ
c3RydWN0IHBwcG9lX3RhZyAqdGFnOworCQkJCWludCAgICAgZXJyb3IgPSAwOworCisJCQkJbS0+
bV9wa3RoZHIucmN2aWYgPSBOVUxMOworCQkJCW0tPm1fcGt0aGRyLmxlbiA9IG0tPm1fbGVuID0g
c2l6ZW9mKCp3aCk7CisJCQkJd2ggPSBtdG9kKG0sIHN0cnVjdCBwcHBvZV9mdWxsX2hkciAqKTsK
KwkJCQliY29weSgmc3AtPnBrdF9oZHIsIHdoLCBzaXplb2YoKndoKSk7CisKKwkJCQkvKiBSZXZl
cnQgdGhlIHN0b3JlZCBoZWFkZXIgdG8gRElTQy9QQURNIG1vZGUuICovCisJCQkJd2gtPnBoLmNv
ZGUgPSBQQURNX0NPREU7CisJCQkJLyoKKwkJCQkgKiBDb25maWd1cmUgZXRoZXJ0eXBlIGRlcGVu
ZGluZyBvbiB3aGF0CisJCQkJICogd2FzIHVzZWQgZHVyaW5nIHNlc3Npb25zIHN0YWdlLgorCQkJ
CSAqLworCQkJCWlmICh3aC0+ZWguZXRoZXJfdHlwZSA9PQorCQkJCSAgICBFVEhFUlRZUEVfUFBQ
T0VfM0NPTV9TRVNTKQorCQkJCQl3aC0+ZWguZXRoZXJfdHlwZSA9IEVUSEVSVFlQRV9QUFBPRV8z
Q09NX0RJU0M7CisJCQkJZWxzZQorCQkJCQl3aC0+ZWguZXRoZXJfdHlwZSA9IEVUSEVSVFlQRV9Q
UFBPRV9ESVNDOworCQkJCS8qCisJCQkJICogQWRkIFBBRE0gbWVzc2FnZSBhbmQgYWRqdXN0IHNp
emVzLgorCQkJCSAqLworCQkJCXRhZyA9ICh2b2lkICopKCZ3aC0+cGggKyAxKTsKKwkJCQl0YWct
PnRhZ190eXBlID0gUFRUX01PVE07CisJCQkJdGFnLT50YWdfbGVuID0gaHRvbnMob3VybXNnLT5k
YXRhX2xlbik7CisJCQkJc3RybmNweSgoY2hhciAqKSh0YWcgKyAxKSwgb3VybXNnLT5kYXRhLCBv
dXJtc2ctPmRhdGFfbGVuKTsKKwkJCQltLT5tX3BrdGhkci5sZW4gPSAobS0+bV9sZW4gKz0gc2l6
ZW9mKCp0YWcpICsKKwkJCQkgICAgb3VybXNnLT5kYXRhX2xlbik7CisJCQkJd2gtPnBoLmxlbmd0
aCA9IGh0b25zKHNpemVvZigqdGFnKSArIG91cm1zZy0+ZGF0YV9sZW4pOworCQkJCU5HX1NFTkRf
REFUQV9PTkxZKGVycm9yLAorCQkJCSAgICBwcml2cC0+ZXRoZXJuZXRfaG9vaywgbSk7CisJCQl9
CisJCQlicmVhazsKKwkJICAgIH0KIAkJZGVmYXVsdDoKIAkJCUxFQVZFKEVJTlZBTCk7CiAJCX0K
QEAgLTEwNjEsMTAgKzEyNTksNiBAQAogCW5vZGVfcAlub2RlID0gTkdfSE9PS19OT0RFKGhvb2sp
OwogCXByaXZfcAlwcml2cCA9IE5HX05PREVfUFJJVkFURShub2RlKTsKIAluZWdwCW5lZyA9IHNw
LT5uZWc7Ci0Jc3RydWN0IHsKLQkJc3RydWN0IHBwcG9lX3RhZyBoZHI7Ci0JCXVuaW9uCXVuaXEJ
ZGF0YTsKLQl9IF9fcGFja2VkIHVuaXF0YWc7CiAJc3RydWN0ICBtYnVmICptMDsKIAlpbnQJZXJy
b3I7CiAKQEAgLTEwODAsMTEgKzEyNzQsOCBAQAogCW1lbWNweSgodm9pZCAqKSZuZWctPnBrdC0+
cGt0X2hlYWRlci5laCwgJnByaXZwLT5laCwKIAkgICAgc2l6ZW9mKHN0cnVjdCBldGhlcl9oZWFk
ZXIpKTsKIAluZWctPnBrdC0+cGt0X2hlYWRlci5waC5jb2RlID0gUEFESV9DT0RFOwotCXVuaXF0
YWcuaGRyLnRhZ190eXBlID0gUFRUX0hPU1RfVU5JUTsKLQl1bmlxdGFnLmhkci50YWdfbGVuID0g
aHRvbnMoKHVfaW50MTZfdClzaXplb2YodW5pcXRhZy5kYXRhKSk7Ci0JdW5pcXRhZy5kYXRhLnBv
aW50ZXIgPSBzcDsKIAlpbml0X3RhZ3Moc3ApOwotCWluc2VydF90YWcoc3AsICZ1bmlxdGFnLmhk
cik7CisJaW5zZXJ0X3RhZyhzcCwgJm5lZy0+aG9zdF91bmlxLmhkcik7CiAJaW5zZXJ0X3RhZyhz
cCwgJm5lZy0+c2VydmljZS5oZHIpOwogCWlmIChwcml2cC0+bWF4X3BheWxvYWQuZGF0YSAhPSAw
KQogCQlpbnNlcnRfdGFnKHNwLCAmcHJpdnAtPm1heF9wYXlsb2FkLmhkcik7CkBAIC0xMTYzLDYg
KzEzNTQsNTIgQEAKIAlyZXR1cm4gKGVycm9yKTsKIH0KIAorc3RhdGljIGludAorc2VuZF9odXJs
KHNlc3NwIHNwLCBjb25zdCBzdHJ1Y3QgcHBwb2VfdGFnICp0YWcpCit7CisJaW50IGVycm9yLCB0
bGVuOworCXN0cnVjdCBuZ19tZXNnICptc2c7CisJc3RydWN0IG5ncHBwb2VfcGFkbSAqcGFkbTsK
KworCUNUUjIoS1RSX05FVCwgIiUyMHM6IGNhbGxlZCAlZCIsIF9fZnVuY19fLCBzcC0+U2Vzc2lv
bl9JRCk7CisKKwlOR19NS01FU1NBR0UobXNnLCBOR01fUFBQT0VfQ09PS0lFLCBOR01fUFBQT0Vf
SFVSTCwKKwkgICAgc2l6ZW9mKHN0cnVjdCBuZ3BwcG9lX3BhZG0pLCBNX05PV0FJVCk7CisJaWYg
KG1zZyA9PSBOVUxMKQorCQlyZXR1cm4gKEVOT01FTSk7CisKKwlwYWRtID0gKHN0cnVjdCBuZ3Bw
cG9lX3BhZG0gKiltc2ctPmRhdGE7CisJdGxlbiA9IG1pbihQUFBPRV9QQURNX1ZBTFVFX1NJWkUg
LSAxLCBudG9ocyh0YWctPnRhZ19sZW4pKTsKKwlzdHJuY3B5KHBhZG0tPm1zZywgKGNvbnN0IGNo
YXIgKikodGFnICsgMSksIHRsZW4pOworCXBhZG0tPm1zZ1t0bGVuXSA9ICdcMCc7CisJTkdfU0VO
RF9NU0dfSUQoZXJyb3IsIE5HX0hPT0tfTk9ERShzcC0+aG9vayksIG1zZywgc3AtPmNyZWF0b3Is
IDApOworCisJcmV0dXJuIChlcnJvcik7Cit9CisKK3N0YXRpYyBpbnQKK3NlbmRfbW90bShzZXNz
cCBzcCwgY29uc3Qgc3RydWN0IHBwcG9lX3RhZyAqdGFnKQoreworCWludCBlcnJvciwgdGxlbjsK
KwlzdHJ1Y3QgbmdfbWVzZyAqbXNnOworCXN0cnVjdCBuZ3BwcG9lX3BhZG0gKnBhZG07CisKKwlD
VFIyKEtUUl9ORVQsICIlMjBzOiBjYWxsZWQgJWQiLCBfX2Z1bmNfXywgc3AtPlNlc3Npb25fSUQp
OworCisJTkdfTUtNRVNTQUdFKG1zZywgTkdNX1BQUE9FX0NPT0tJRSwgTkdNX1BQUE9FX01PVE0s
CisJICAgIHNpemVvZihzdHJ1Y3QgbmdwcHBvZV9wYWRtKSwgTV9OT1dBSVQpOworCWlmIChtc2cg
PT0gTlVMTCkKKwkJcmV0dXJuIChFTk9NRU0pOworCisJcGFkbSA9IChzdHJ1Y3QgbmdwcHBvZV9w
YWRtICopbXNnLT5kYXRhOworCXRsZW4gPSBtaW4oUFBQT0VfUEFETV9WQUxVRV9TSVpFIC0gMSwg
bnRvaHModGFnLT50YWdfbGVuKSk7CisJc3RybmNweShwYWRtLT5tc2csIChjb25zdCBjaGFyICop
KHRhZyArIDEpLCB0bGVuKTsKKwlwYWRtLT5tc2dbdGxlbl0gPSAnXDAnOworCU5HX1NFTkRfTVNH
X0lEKGVycm9yLCBOR19IT09LX05PREUoc3AtPmhvb2spLCBtc2csIHNwLT5jcmVhdG9yLCAwKTsK
KworCXJldHVybiAoZXJyb3IpOworfQorCiAvKgogICogUmVjZWl2ZSBkYXRhIGZyb20gc2Vzc2lv
biBob29rIGFuZCBkbyBzb21ldGhpbmcgd2l0aCBpdC4KICAqLwpAQCAtMTMyMCw2ICsxNTU3LDcg
QEAKIAljb25zdCBwcml2X3AJCXByaXZwID0gTkdfTk9ERV9QUklWQVRFKG5vZGUpOwogCXNlc3Nw
CQkJc3A7CiAJY29uc3Qgc3RydWN0IHBwcG9lX3RhZwkqdXRhZyA9IE5VTEwsICp0YWcgPSBOVUxM
OworCWNvbnN0IHN0cnVjdCBwcHBvZV90YWcJc250YWcgPSB7IFBUVF9TUlZfTkFNRSwgMCB9Owog
CWNvbnN0IHN0cnVjdCBwcHBvZV9mdWxsX2hkciAqd2g7CiAJY29uc3Qgc3RydWN0IHBwcG9lX2hk
cgkqcGg7CiAJbmVncAkJCW5lZyA9IE5VTEw7CkBAIC0xNDA5LDExICsxNjQ3LDggQEAKIAkJCSAq
IHByb2Nlc3NpbmcuCiAJCQkgKi8KIAkJCXRhZyA9IGdldF90YWcocGgsIFBUVF9TUlZfTkFNRSk7
Ci0JCQlpZiAodGFnID09IE5VTEwpIHsKLQkJCQlDVFIxKEtUUl9ORVQsICIlMjBzOiBQQURJIHcv
byBTZXJ2aWNlLU5hbWUiLAotCQkJCSAgICBfX2Z1bmNfXyk7Ci0JCQkJTEVBVkUoRU5FVFVOUkVB
Q0gpOwotCQkJfQorCQkJaWYgKHRhZyA9PSBOVUxMKQorCQkJCXRhZyA9ICZzbnRhZzsKIAogCQkJ
LyoKIAkJCSAqIEZpcnN0LCB0cnkgdG8gbWF0Y2ggU2VydmljZS1OYW1lIGFnYWluc3Qgb3VyIApA
QCAtMTQzOCw4ICsxNjczLDcgQEAKIAkJCSAqIEZvciBub3cgc2ltcGx5IGFjY2VwdCB0aGUgZmly
c3Qgd2UgcmVjZWl2ZS4KIAkJCSAqLwogCQkJdXRhZyA9IGdldF90YWcocGgsIFBUVF9IT1NUX1VO
SVEpOwotCQkJaWYgKCh1dGFnID09IE5VTEwpIHx8Ci0JCQkgICAgKG50b2hzKHV0YWctPnRhZ19s
ZW4pICE9IHNpemVvZihzcCkpKSB7CisJCQlpZiAodXRhZyA9PSBOVUxMKSB7CiAJCQkJbG9nKExP
R19OT1RJQ0UsICJuZ19wcHBvZVsleF06IG5vIGhvc3QgIgogCQkJCSAgICAidW5pcXVlIGZpZWxk
XG4iLCBub2RlLT5uZF9JRCk7CiAJCQkJTEVBVkUoRU5FVFVOUkVBQ0gpOwpAQCAtMTUyOSw3ICsx
NzYzLDcgQEAKIAkJCQlMRUFWRShFTkVUVU5SRUFDSCk7CiAJCQl9CiAKLQkJCXNlbmRob29rID0g
cHBwb2VfZmluZHVuaXEobm9kZSwgdXRhZyk7CisJCQlzZW5kaG9vayA9IHBwcG9lX2ZpbmRjb29r
aWUobm9kZSwgdXRhZyk7CiAJCQlpZiAoc2VuZGhvb2sgPT0gTlVMTCkKIAkJCQlMRUFWRShFTkVU
VU5SRUFDSCk7CiAKQEAgLTE2MDUsOCArMTgzOSw3IEBACiAJCQkgKiBzZXQgdXMgaW50byBTZXNz
aW9uIG1vZGUuCiAJCQkgKi8KIAkJCXV0YWcgPSBnZXRfdGFnKHBoLCBQVFRfSE9TVF9VTklRKTsK
LQkJCWlmICgodXRhZyA9PSBOVUxMKSB8fAotCQkJICAgIChudG9ocyh1dGFnLT50YWdfbGVuKSAh
PSBzaXplb2Yoc3ApKSkgeworCQkJaWYgKHV0YWcgPT0gTlVMTCkgewogCQkJCUxFQVZFIChFTkVU
VU5SRUFDSCk7CiAJCQl9CiAJCQlzZW5kaG9vayA9IHBwcG9lX2ZpbmR1bmlxKG5vZGUsIHV0YWcp
OwpAQCAtMTY1OSw2ICsxODkyLDE5IEBACiAJCQkvKiBEaXNjb25uZWN0IHRoYXQgaG9vay4gKi8K
IAkJCW5nX3JtaG9va19zZWxmKHNwLT5ob29rKTsKIAkJCWJyZWFrOworCQljYXNlCVBBRE1fQ09E
RToKKwkJCS8qCisJCQkgKiBXZSBhcmUgYSBjbGllbnQ6CisJCQkgKiBmaW5kIG1hdGNoaW5nIHBl
ZXIvc2Vzc2lvbiBjb21iaW5hdGlvbi4KKwkJCSAqLworCQkJc3AgPSBwcHBvZV9maW5kc2Vzc2lv
bihwcml2cCwgd2gpOworCQkJaWYgKHNwID09IE5VTEwpCisJCQkJTEVBVkUgKEVORVRVTlJFQUNI
KTsKKwkJCWlmICgodGFnID0gZ2V0X3RhZyhwaCwgUFRUX0hVUkwpKSkKKwkJCQlzZW5kX2h1cmwo
c3AsIHRhZyk7CisJCQlpZiAoKHRhZyA9IGdldF90YWcocGgsIFBUVF9NT1RNKSkpCisJCQkJc2Vu
ZF9tb3RtKHNwLCB0YWcpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQlMRUFWRShFUEZOT1NV
UFBPUlQpOwogCQl9CkBAIC0xOTMzLDYgKzIxNzksOCBAQAogCQljYXNlCVBUVF9TWVNfRVJSOgog
CQljYXNlCVBUVF9HRU5fRVJSOgogCQljYXNlCVBUVF9NQVhfUEFZTDoKKwkJY2FzZQlQVFRfSFVS
TDoKKwkJY2FzZQlQVFRfTU9UTToKIAkJCWJyZWFrOwogCQl9CiAJCXB0ID0gKGNvbnN0IHN0cnVj
dCBwcHBvZV90YWcqKXB0bjsKZGlmZiAtLWdpdCBhL3NoYXJlL21hbi9tYW40L25nX3BwcG9lLjQg
Yi9zaGFyZS9tYW4vbWFuNC9uZ19wcHBvZS40Ci0tLSBhL3NoYXJlL21hbi9tYW40L25nX3BwcG9l
LjQKKysrIGIvc2hhcmUvbWFuL21hbjQvbmdfcHBwb2UuNApAQCAtMzUsNyArMzUsNyBAQAogLlwi
ICRGcmVlQlNEJAogLlwiICRXaGlzdGxlOiBuZ19wcHBvZS44LHYgMS4xIDE5OTkvMDEvMjUgMjM6
NDY6MjcgYXJjaGllIEV4cCAkCiAuXCIKLS5EZCBTZXB0ZW1iZXIgMTUsIDIwMTUKKy5EZCBNYXJj
aCAxLCAyMDE3CiAuRHQgTkdfUFBQT0UgNAogLk9zCiAuU2ggTkFNRQpAQCAtMTA0LDEyICsxMDQs
MjIgQEAKIEl0IG11c3QgYmUgbmV3bHkgY3JlYXRlZCBhbmQgYSBzZXJ2aWNlIG5hbWUgY2FuIGJl
IGdpdmVuIGFzIGFuIGFyZ3VtZW50LgogSXQgaXMgbGVnYWwgdG8gc3BlY2lmeSBhIHplcm8tbGVu
Z3RoIHNlcnZpY2UgbmFtZSwgdGhpcyBpcyBjb21tb24KIG9uIHNvbWUgRFNMIHNldHVwcy4KLUl0
IGlzIHBvc3NpYmxlIHRvIHJlcXVlc3QgYSBjb25uZWN0aW9uIHRvIGEgc3BlY2lmaWMKLWFjY2Vz
cyBjb25jZW50cmF0b3IgYnkgaXRzIG5hbWUgdXNpbmcgdGhlICJBQy1OYW1lXFxTZXJ2aWNlLU5h
bWUiIHN5bnRheC4KK0l0IGlzIHBvc3NpYmxlIHRvIHJlcXVlc3QgYSBjb25uZWN0aW9uIHRvIGEg
c3BlY2lmaWMgYWNjZXNzIGNvbmNlbnRyYXRvciwKK2FuZC9vciBzZXQgYSBzcGVjaWZpYyBob3N0
IHVuaXEgdGFnLCByZXF1aXJlZCBieSBzb21lIEludGVybmV0IHByb3ZpZGVycywKK3VzaW5nIHRo
ZSAiW0FDLU5hbWVcXF1bSG9zdC1VbmlxfF1TZXJ2aWNlLU5hbWUiIHN5bnRheC4KK1RvIHNldCBh
IGJpbmFyeSBIb3N0LVVuaXEsIGl0IG11c3QgYmUgZW5jb2RlZCBhcyBhIGhleGFkZWNpbWFsIGxv
d2VyY2FzZQorc3RyaW5nIGFuZCBwcmVmaXhlZCB3aXRoICIweCIsIGVnLiAiMHg2ZDc5MmQ3NDYx
NjciIGlzIGVxdWl2YWxlbnQgdG8KKyJteS10YWciLgogQSBzZXNzaW9uIHJlcXVlc3QgcGFja2V0
IHdpbGwgYmUgYnJvYWRjYXN0ZWQgb24gdGhlIEV0aGVybmV0LgogVGhpcyBjb21tYW5kIHVzZXMg
dGhlCiAuRHYgbmdwcHBvZV9pbml0X2RhdGEKIHN0cnVjdHVyZSBzaG93biBiZWxvdy4KK0ZvciBl
eGFtcGxlLCB0aGUgZm9sbG93aW5nIGluaXQgZGF0YSBhcmd1bWVudCBjYW4gYmUgdXNlZCB0bwor
Y29ubmVjdCB0byAibXktaXNwIiBzZXJ2aWNlIHdpdGggIm15LWhvc3QiIHVuaXEgdGFnLCBhY2Nl
cHRpbmcgb25seQorInJlbW90ZS1hYyIgYXMgYWNjZXNzIGNvbmNlbnRyYXRvcjoKKy5CZCAtbGl0
ZXJhbCAtb2Zmc2V0IGluZGVudAorInJlbW90ZS1hY1xcbXktaG9zdHxteS1pc3AiCisuRWQKIC5J
dCBEdiBOR01fUFBQT0VfTElTVEVOIFBxIEljIHBwcG9lX2xpc3RlbgogVGVsbCBhIG5vbWluYXRl
ZCBuZXdseSBjcmVhdGVkIGhvb2sgdGhhdCBpdHMgc2Vzc2lvbiBzaG91bGQgZW50ZXIKIHRoZSBz
dGF0ZSBtYWNoaW5lIGFzIGEgc2VydmVyIGxpc3RlbmVyLgpAQCAtMjU4LDcgKzI2OCw0MSBAQAog
ICAgIHVpbnQxNl90IGRhdGE7CiB9OwogLkVkCisuSXQgRHYgTkdNX1BQUE9FX1NFTkRfSFVSTCBQ
cSBJYyBzZW5kX2h1cmwKK1RlbGwgYSBub21pbmF0ZWQgaG9vayB3aXRoIGFuIGFjdGl2ZSBzZXNz
aW9uIHRvIHNlbmQgYSBQQURNIG1lc3NhZ2Ugd2l0aAorYSBIVVJMIHRhZy4KK1RoZSBhcmd1bWVu
dCBnaXZlbiBpcyB0aGUgVVJMIHRoYXQgd2lsbCBiZSBkZWxpdmVyZWQgdG8gdGhlIGNsaWVudDoK
Ky5CZCAtbGl0ZXJhbCAtb2Zmc2V0IGluZGVudAorbmdjdGwgbXNnIGZ4cDA6b3JwaGFucyBzZW5k
X2h1cmwgJ3sgaG9vaz0ibXlIb29rIiBkYXRhPSJodHRwOi8vZXhhbXBsZS5uZXQvY3BlIiB9Jwor
LkVkCisuSXQgRHYgTkdNX1BQUE9FX1NFTkRfTU9UTSBQcSBJYyBzZW5kX21vdG0KK1RlbGwgYSBu
b21pbmF0ZWQgaG9vayB3aXRoIGFuIGFjdGl2ZSBzZXNzaW9uIHRvIHNlbmQgYSBQQURNIG1lc3Nh
Z2Ugd2l0aAorYSBNT1RNIHRhZy4KK1RoZSBhcmd1bWVudCBnaXZlbiBpcyB0aGUgbWVzc2FnZSB0
aGF0IHdpbGwgYmUgZGVsaXZlcmVkIHRvIHRoZSBjbGllbnQ6CisuQmQgLWxpdGVyYWwgLW9mZnNl
dCBpbmRlbnQKK25nY3RsIG1zZyBmeHAwOm9ycGhhbnMgc2VuZF9tb3RtICd7IGhvb2s9Im15SG9v
ayIgZGF0YT0iV2VsY29tZSBhYm9hcmQiIH0nCisuRWQKIC5FbAorLlBwCitUaGUgdHdvIGNvbW1h
bmRzIGFib3ZlIHVzZSB0aGUgc2FtZSBuZ3BwcG9lX2luaXRfZGF0YSBzdHJ1Y3R1cmUgZGVzY3Jp
YmVkCithYm92ZS4KKy5CbCAtdGFnIC13aWR0aCAzbgorLkl0IER2IE5HTV9QUFBPRV9IVVJMCitU
aGlzIGNvbW1hbmQgaXMgc2VudCB0byB0aGUgbm9kZSB0aGF0IHN0YXJ0ZWQgdGhpcyBzZXNzaW9u
IHdoZW4gYSBQQURNCittZXNzYWdlIHdpdGggYSBIVVJMIHRhZyBpcyByZWNlaXZlZCwgYW5kIGNv
bnRhaW5zIGEgVVJMIHRoYXQgdGhlIEhvc3QgbWF5CitwYXNzIHRvIGEgd2ViIGJyb3dzZXIgZm9y
IHByZXNlbnRhdGlvbiB0byB0aGUgdXNlci4KKy5JdCBEdiBOR01fUFBQT0VfTU9UTQorVGhpcyBj
b21tYW5kIGlzIHNlbnQgdG8gdGhlIG5vZGUgdGhhdCBzdGFydGVkIHRoaXMgc2Vzc2lvbiB3aGVu
IGEgUEFETQorbWVzc2FnZSB3aXRoIGEgTU9UTSB0YWcgaXMgcmVjZWl2ZWQsIGFuZCBjb250YWlu
cyBhIE1lc3NhZ2UgT2YgVGhlCitNaW51dGUgdGhhdCB0aGUgSG9zdCBtYXkgZGlzcGxheSB0byB0
aGUgdXNlci4KKy5FbAorLlBwCitUaGUgdHdvIGNvbW1hbmRzIGFib3ZlIHVzZSBhIGNvbW1vbiBk
YXRhIHN0cnVjdHVyZToKKy5CZCAtbGl0ZXJhbCAtb2Zmc2V0IDRuCitzdHJ1Y3QgbmdwcHBvZV9w
YWRtIHsKKyAgICBjaGFyICAgIG1zZ1tQUFBPRV9QQURNX1ZBTFVFX1NJWkVdOworfTsKKy5FZAog
LlNoIFNIVVRET1dOCiBUaGlzIG5vZGUgc2h1dHMgZG93biB1cG9uIHJlY2VpcHQgb2YgYQogLkR2
IE5HTV9TSFVURE9XTgoK


--b1_5d0d17fed4f7ff51825b42ccacdc7321--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5d0d17fed4f7ff51825b42ccacdc7321>