Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Oct 2010 21:20:55 -0700
From:      Garrett Cooper <gcooper@FreeBSD.org>
To:        =?ISO-8859-1?Q?Dag=2DErling_Sm=F8rgrav?= <des@des.no>
Cc:        freebsd-hackers@freebsd.org, Ivan Voras <ivoras@freebsd.org>
Subject:   Re: Why is TUNABLE_INT discouraged?
Message-ID:  <AANLkTimEejt2Gd%2BQEiGWXXsJfpUUY8ayygkMP48PcYpj@mail.gmail.com>
In-Reply-To: <AANLkTim-XVhm-RLUo7rwwJ%2B3=tCHMKNsk9DbtrSezxHo@mail.gmail.com>
References:  <AANLkTinKaiGFhKRgqQ%2BFjm=02VfWCxULe0a68y-PkJx6@mail.gmail.com> <86fwyq8rsc.fsf@ds4.des.no> <i3kbis$73l$1@dough.gmane.org> <86d3tujh72.fsf@ds4.des.no> <AANLkTi=puD%2B-WeZ%2BFGdtZtw1v%2BNnGD_htwNa%2BEn9fcML@mail.gmail.com> <864of680wv.fsf@ds4.des.no> <AANLkTinraF50O%2Bcp_h1m6TODnoz_7R3WXfjTanh-86mn@mail.gmail.com> <AANLkTikU6fLzWL-n6fCtvaTsXWGis7ydKM1qJaV=WRJ%2B@mail.gmail.com> <8662zkurx9.fsf@ds4.des.no> <AANLkTimbkTQiNgYCYFnTXMpRe9koJGrq1%2BYoq5-fVmFD@mail.gmail.com> <8662zg586z.fsf@ds4.des.no> <AANLkTim1E94qWq1TF1111-sYo2dj35Y-XnPq3DT4kpoL@mail.gmail.com> <AANLkTik-zV67LYAbwStXPJ5YoK2j-rDwvyEAc3H5nGD0@mail.gmail.com> <8662wz4twb.fsf@ds4.des.no> <AANLkTim-XVhm-RLUo7rwwJ%2B3=tCHMKNsk9DbtrSezxHo@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--0016364c7f13b16b8304935533e3
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

2010/10/23 Garrett Cooper <gcooper@freebsd.org>:
> 2010/10/18 Dag-Erling Sm=F8rgrav <des@des.no>:
>> Garrett Cooper <gcooper@FreeBSD.org> writes:
>>> PS I added uquad_t for consistency in the APIs, even though quad_t was
>>> deprecated, but I didn't bump __FreeBSD_version__ -- wasn't sure if I
>>> should have done that).
>>
>> You should bump __FreeBSD_version__ anyway so third-party or shared code
>> can use the new API if it is available and the old one if it isn't.
>>
>>> Let's try with the patch attached...
>>
>> Mailman strips binary attachments. =A0The correct MIME type is
>> text/x-patch.
>
> =A0 =A0Ok. Let's retry with a .patch extension and by bumping __FreeBSD_v=
ersion__.

Sorry.. forgot the uquad_t addition to sys/types.h :(...

--0016364c7f13b16b8304935533e3
Content-Type: text/x-patch; charset=US-ASCII; name="tunables-enhancement.patch"
Content-Disposition: attachment; filename="tunables-enhancement.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_gfnesoqj1

SW5kZXg6IHN5cy9rZXJuL2tlcm5fZW52aXJvbm1lbnQuYwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMva2Vy
bi9rZXJuX2Vudmlyb25tZW50LmMJKHJldmlzaW9uIDIxNDI1OCkKKysrIHN5cy9rZXJuL2tlcm5f
ZW52aXJvbm1lbnQuYwkod29ya2luZyBjb3B5KQpAQCAtNTAsNiArNTAsNyBAQAogI2luY2x1ZGUg
PHN5cy9zeXNlbnQuaD4KICNpbmNsdWRlIDxzeXMvc3lzcHJvdG8uaD4KICNpbmNsdWRlIDxzeXMv
bGlia2Vybi5oPgorI2luY2x1ZGUgPHN5cy9saW1pdHMuaD4KICNpbmNsdWRlIDxzeXMva2Vudi5o
PgogCiAjaW5jbHVkZSA8c2VjdXJpdHkvbWFjL21hY19mcmFtZXdvcmsuaD4KQEAgLTQ0MiwzMiAr
NDQzLDExNSBAQAogfQogCiAvKgotICogUmV0dXJuIGEgc3RyaW5nIHZhbHVlIGZyb20gYW4gZW52
aXJvbm1lbnQgdmFyaWFibGUuCisgKiBSZXR1cm4gdGhlIG11bHRpcGxpZXIgZm9yIGEgdXNlciBz
cGVjaWZpZWQgc3VmZml4IGZyb20gYSBnZXRlbnYgY2FsbC4KICAqLwordWludG1heF90CitnZXRl
bnZfcGFyc2Vfc3VmZml4KGNvbnN0IGNoYXIgc3VmZml4KQoreworCXVpbnRtYXhfdCBtdWx0aXBs
aWVyID0gMTsKKworCXN3aXRjaCAoc3VmZml4KSB7CisJY2FzZSAndCc6IGNhc2UgJ1QnOgorCQlt
dWx0aXBsaWVyICo9IDEwMjQ7CisJY2FzZSAnZyc6IGNhc2UgJ0cnOgorCQltdWx0aXBsaWVyICo9
IDEwMjQ7CisJY2FzZSAnbSc6IGNhc2UgJ00nOgorCQltdWx0aXBsaWVyICo9IDEwMjQ7CisJY2Fz
ZSAnayc6IGNhc2UgJ0snOgorCQltdWx0aXBsaWVyICo9IDEwMjQ7CisJY2FzZSAnXDAnOgorCQli
cmVhazsKKwlkZWZhdWx0OgorCQltdWx0aXBsaWVyID0gMDsKKwl9CisKKwlyZXR1cm4gKG11bHRp
cGxpZXIpOworfQorCisvKgorICogUmV0dXJuIGEgc2lnbmVkIHF1YW50aXR5IGZyb20gYW4gZW52
aXJvbm1lbnQgdmFyaWFibGUuCisgKi8KIGludAotZ2V0ZW52X3N0cmluZyhjb25zdCBjaGFyICpu
YW1lLCBjaGFyICpkYXRhLCBpbnQgc2l6ZSkKK2dldGVudl9zaWduZWQoY29uc3QgY2hhciAqbmFt
ZSwgaW50bWF4X3QgKmRhdGEsIGNvbnN0IGludG1heF90IG1pbiwKKyAgICBjb25zdCBpbnRtYXhf
dCBtYXgpCiB7Ci0JY2hhciAqdG1wOworCXVpbnRtYXhfdAltdWx0aXBsaWVyOworCWludG1heF90
CWl2OworCWludAkJcmV0X2NvZGU7CisJY2hhcgkJKnZhbHVlOworCWNoYXIJCSp2dHA7CiAKLQl0
bXAgPSBnZXRlbnYobmFtZSk7Ci0JaWYgKHRtcCAhPSBOVUxMKSB7Ci0JCXN0cmxjcHkoZGF0YSwg
dG1wLCBzaXplKTsKLQkJZnJlZWVudih0bXApOwotCQlyZXR1cm4gKDEpOwotCX0gZWxzZQotCQly
ZXR1cm4gKDApOworCXJldF9jb2RlID0gMDsKKworCXZhbHVlID0gZ2V0ZW52KG5hbWUpOworCWlm
ICh2YWx1ZSA9PSBOVUxMKQorCQlyZXR1cm4gKHJldF9jb2RlKTsKKwlpdiA9IHN0cnRvcSh2YWx1
ZSwgJnZ0cCwgMCk7CisJaWYgKHZ0cCA9PSB2YWx1ZSB8fCAodnRwWzBdICE9ICdcMCcgJiYgdnRw
WzFdICE9ICdcMCcpIHx8CisJICAgIChtdWx0aXBsaWVyID0gZ2V0ZW52X3BhcnNlX3N1ZmZpeCh2
dHBbMF0pKSA9PSAwKSB7CisJCS8qIAorCQkgKiBDYXRjaCBlcnJvcnMgaW4gcGFyc2luZyB0aGUg
bnVtYmVyLCBiYWQgaW5wdXQsIG9yIHRoZQorCQkgKiBzdWZmaXggaWYgb25lIHdhcyBzcGVjaWZp
ZWQuCisJCSAqLworCQk7CisJfSBlbHNlIHsKKwkJaXYgKj0gbXVsdGlwbGllcjsKKwkJaWYgKG1p
biA8PSBpdiAmJiBpdiA8PSBtYXgpIHsKKwkJCSpkYXRhID0gaXY7CisJCQlyZXRfY29kZSA9IDE7
CisJCX0KKwl9CisJZnJlZWVudih2YWx1ZSk7CisJcmV0dXJuIChyZXRfY29kZSk7CiB9CiAKIC8q
CisgKiBSZXR1cm4gYW4gdW5zaWduZWQgcXVhbnRpdHkgZnJvbSBhbiBlbnZpcm9ubWVudCB2YXJp
YWJsZS4KKyAqLworaW50CitnZXRlbnZfdW5zaWduZWQoY29uc3QgY2hhciAqbmFtZSwgdWludG1h
eF90ICpkYXRhLCBjb25zdCB1aW50bWF4X3QgbWluLAorICAgIGNvbnN0IHVpbnRtYXhfdCBtYXgp
Cit7CisJdWludG1heF90CW11bHRpcGxpZXI7CisJdWludG1heF90CXVpdjsKKwlpbnQJCXJldF9j
b2RlOworCWNoYXIJCSp2YWx1ZTsKKwljaGFyCQkqdnRwOworCisJcmV0X2NvZGUgPSAwOworCisJ
dmFsdWUgPSBnZXRlbnYobmFtZSk7CisJaWYgKHZhbHVlID09IE5VTEwpCisJCXJldHVybiAocmV0
X2NvZGUpOworCXVpdiA9IHN0cnRvdXEodmFsdWUsICZ2dHAsIDApOworCWlmICh2dHAgPT0gdmFs
dWUgfHwgKHZ0cFswXSAhPSAnXDAnICYmIHZ0cFsxXSAhPSAnXDAnKSB8fAorCSAgICAobXVsdGlw
bGllciA9IGdldGVudl9wYXJzZV9zdWZmaXgodnRwWzBdKSkgPT0gMCkgeworCQkvKiAKKwkJICog
Q2F0Y2ggZXJyb3JzIGluIHBhcnNpbmcgdGhlIG51bWJlciwgYmFkIGlucHV0LCBvciB0aGUKKwkJ
ICogc3VmZml4IGlmIG9uZSB3YXMgc3BlY2lmaWVkLgorCQkgKi8KKwkJOworCX0gZWxzZSB7CisJ
CXVpdiAqPSBtdWx0aXBsaWVyOworCQlpZiAobWluIDw9IHVpdiAmJiB1aXYgPD0gbWF4KSB7CisJ
CQkqZGF0YSA9IHVpdjsKKwkJCXJldF9jb2RlID0gMTsKKwkJfQorCX0KKwlmcmVlZW52KHZhbHVl
KTsKKwlyZXR1cm4gKHJldF9jb2RlKTsKK30KKworLyoKICAqIFJldHVybiBhbiBpbnRlZ2VyIHZh
bHVlIGZyb20gYW4gZW52aXJvbm1lbnQgdmFyaWFibGUuCiAgKi8KIGludAogZ2V0ZW52X2ludChj
b25zdCBjaGFyICpuYW1lLCBpbnQgKmRhdGEpCiB7Ci0JcXVhZF90IHRtcDsKKwlpbnRtYXhfdCB0
bXA7CiAJaW50IHJ2YWw7CiAKLQlydmFsID0gZ2V0ZW52X3F1YWQobmFtZSwgJnRtcCk7CisJcnZh
bCA9IGdldGVudl9zaWduZWQobmFtZSwgJnRtcCwgSU5UX01JTiwgSU5UX01BWCk7CiAJaWYgKHJ2
YWwpCiAJCSpkYXRhID0gKGludCkgdG1wOwogCXJldHVybiAocnZhbCk7CkBAIC00NzksMTAgKzU2
MywxMCBAQAogaW50CiBnZXRlbnZfdWludChjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25lZCBpbnQg
KmRhdGEpCiB7Ci0JcXVhZF90IHRtcDsKKwlpbnRtYXhfdCB0bXA7CiAJaW50IHJ2YWw7CiAKLQly
dmFsID0gZ2V0ZW52X3F1YWQobmFtZSwgJnRtcCk7CisJcnZhbCA9IGdldGVudl91bnNpZ25lZChu
YW1lLCAmdG1wLCAwLCBVSU5UX01BWCk7CiAJaWYgKHJ2YWwpCiAJCSpkYXRhID0gKHVuc2lnbmVk
IGludCkgdG1wOwogCXJldHVybiAocnZhbCk7CkBAIC00OTQsMTAgKzU3OCwxMCBAQAogaW50CiBn
ZXRlbnZfbG9uZyhjb25zdCBjaGFyICpuYW1lLCBsb25nICpkYXRhKQogewotCXF1YWRfdCB0bXA7
CisJaW50bWF4X3QgdG1wOwogCWludCBydmFsOwogCi0JcnZhbCA9IGdldGVudl9xdWFkKG5hbWUs
ICZ0bXApOworCXJ2YWwgPSBnZXRlbnZfc2lnbmVkKG5hbWUsICZ0bXAsIExPTkdfTUlOLCBMT05H
X01BWCk7CiAJaWYgKHJ2YWwpCiAJCSpkYXRhID0gKGxvbmcpIHRtcDsKIAlyZXR1cm4gKHJ2YWwp
OwpAQCAtNTA5LDUxICs1OTMsOTAgQEAKIGludAogZ2V0ZW52X3Vsb25nKGNvbnN0IGNoYXIgKm5h
bWUsIHVuc2lnbmVkIGxvbmcgKmRhdGEpCiB7Ci0JcXVhZF90IHRtcDsKKwlpbnRtYXhfdCB0bXA7
CiAJaW50IHJ2YWw7CiAKLQlydmFsID0gZ2V0ZW52X3F1YWQobmFtZSwgJnRtcCk7CisJcnZhbCA9
IGdldGVudl91bnNpZ25lZChuYW1lLCAmdG1wLCAwLCBVTE9OR19NQVgpOwogCWlmIChydmFsKQog
CQkqZGF0YSA9ICh1bnNpZ25lZCBsb25nKSB0bXA7CiAJcmV0dXJuIChydmFsKTsKIH0KIAogLyoK
KyAqIFJldHVybiBhIHBvaW50ZXIgZnJvbSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKyAqLwor
aW50CitnZXRlbnZfcG9pbnRlcihjb25zdCBjaGFyICpuYW1lLCB1aW50cHRyX3QgKmRhdGEpCit7
CisJaW50bWF4X3QgdG1wOworCWludCBydmFsOworCisJcnZhbCA9IGdldGVudl91bnNpZ25lZChu
YW1lLCAmdG1wLCAwLCBVSU5UUFRSX01BWCk7CisJaWYgKHJ2YWwpCisJCSpkYXRhID0gKHVpbnRw
dHJfdCkgdG1wOworCXJldHVybiAocnZhbCk7Cit9CisKKy8qCiAgKiBSZXR1cm4gYSBxdWFkX3Qg
dmFsdWUgZnJvbSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KICAqLwogaW50CiBnZXRlbnZfcXVh
ZChjb25zdCBjaGFyICpuYW1lLCBxdWFkX3QgKmRhdGEpCiB7Ci0JY2hhcgkqdmFsdWU7Ci0JY2hh
cgkqdnRwOwotCXF1YWRfdAlpdjsKKwlpbnRtYXhfdCB0bXA7CisJaW50IHJ2YWw7CiAKLQl2YWx1
ZSA9IGdldGVudihuYW1lKTsKLQlpZiAodmFsdWUgPT0gTlVMTCkKKwlydmFsID0gZ2V0ZW52X3Np
Z25lZChuYW1lLCAmdG1wLCBRVUFEX01JTiwgUVVBRF9NQVgpOworCWlmIChydmFsKQorCQkqZGF0
YSA9IChxdWFkX3QpIHRtcDsKKwlyZXR1cm4gKHJ2YWwpOworfQorCisvKgorICogUmV0dXJuIGEg
dXF1YWRfdCB2YWx1ZSBmcm9tIGFuIGVudmlyb25tZW50IHZhcmlhYmxlLgorICovCitpbnQKK2dl
dGVudl91cXVhZChjb25zdCBjaGFyICpuYW1lLCB1cXVhZF90ICpkYXRhKQoreworCWludG1heF90
IHRtcDsKKwlpbnQgcnZhbDsKKworCXJ2YWwgPSBnZXRlbnZfdW5zaWduZWQobmFtZSwgJnRtcCwg
MCwgVVFVQURfTUFYKTsKKwlpZiAocnZhbCkKKwkJKmRhdGEgPSAodXF1YWRfdCkgdG1wOworCXJl
dHVybiAocnZhbCk7Cit9CisKKy8qCisgKiBSZXR1cm4gYSBzaXplX3QgdmFsdWUgZnJvbSBhbiBl
bnZpcm9ubWVudCB2YXJpYWJsZS4KKyAqLworaW50CitnZXRlbnZfc2l6ZShjb25zdCBjaGFyICpu
YW1lLCBzaXplX3QgKmRhdGEpCit7CisJaW50bWF4X3QgdG1wOworCWludCBydmFsOworCisJcnZh
bCA9IGdldGVudl91bnNpZ25lZChuYW1lLCAmdG1wLCAwLCBTSVpFX01BWCk7CisJaWYgKHJ2YWwp
CisJCSpkYXRhID0gKHNpemVfdCkgdG1wOworCXJldHVybiAocnZhbCk7Cit9CisKKy8qCisgKiBS
ZXR1cm4gYSBzdHJpbmcgdmFsdWUgZnJvbSBhbiBlbnZpcm9ubWVudCB2YXJpYWJsZS4KKyAqLwor
aW50CitnZXRlbnZfc3RyaW5nKGNvbnN0IGNoYXIgKm5hbWUsIGNoYXIgKmRhdGEsIHNpemVfdCBz
aXplKQoreworCWNoYXIgKnRtcDsKKworCXRtcCA9IGdldGVudihuYW1lKTsKKwlpZiAodG1wICE9
IE5VTEwpIHsKKwkJc3RybGNweShkYXRhLCB0bXAsIHNpemUpOworCQlmcmVlZW52KHRtcCk7CisJ
CXJldHVybiAoMSk7CisJfSBlbHNlCiAJCXJldHVybiAoMCk7Ci0JaXYgPSBzdHJ0b3EodmFsdWUs
ICZ2dHAsIDApOwotCWlmICh2dHAgPT0gdmFsdWUgfHwgKHZ0cFswXSAhPSAnXDAnICYmIHZ0cFsx
XSAhPSAnXDAnKSkgewotCQlmcmVlZW52KHZhbHVlKTsKLQkJcmV0dXJuICgwKTsKLQl9Ci0Jc3dp
dGNoICh2dHBbMF0pIHsKLQljYXNlICd0JzogY2FzZSAnVCc6Ci0JCWl2ICo9IDEwMjQ7Ci0JY2Fz
ZSAnZyc6IGNhc2UgJ0cnOgotCQlpdiAqPSAxMDI0OwotCWNhc2UgJ20nOiBjYXNlICdNJzoKLQkJ
aXYgKj0gMTAyNDsKLQljYXNlICdrJzogY2FzZSAnSyc6Ci0JCWl2ICo9IDEwMjQ7Ci0JY2FzZSAn
XDAnOgotCQlicmVhazsKLQlkZWZhdWx0OgotCQlmcmVlZW52KHZhbHVlKTsKLQkJcmV0dXJuICgw
KTsKLQl9Ci0JKmRhdGEgPSBpdjsKLQlmcmVlZW52KHZhbHVlKTsKLQlyZXR1cm4gKDEpOwogfQog
CiAvKgpAQCAtNTgzLDYgKzcwNiwxNCBAQAogfQogCiB2b2lkCit0dW5hYmxlX3VpbnRfaW5pdCh2
b2lkICpkYXRhKQoreworCXN0cnVjdCB0dW5hYmxlX3VpbnQgKmQgPSAoc3RydWN0IHR1bmFibGVf
dWludCAqKWRhdGE7CisKKwlUVU5BQkxFX1VJTlRfRkVUQ0goZC0+cGF0aCwgZC0+dmFyKTsKK30K
Kwordm9pZAogdHVuYWJsZV9sb25nX2luaXQodm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgdHVuYWJs
ZV9sb25nICpkID0gKHN0cnVjdCB0dW5hYmxlX2xvbmcgKilkYXRhOwpAQCAtNTk5LDYgKzczMCwx
NCBAQAogfQogCiB2b2lkCit0dW5hYmxlX3BvaW50ZXJfaW5pdCh2b2lkICpkYXRhKQoreworCXN0
cnVjdCB0dW5hYmxlX3BvaW50ZXIgKmQgPSAoc3RydWN0IHR1bmFibGVfcG9pbnRlciAqKWRhdGE7
CisKKwlUVU5BQkxFX1BPSU5URVJfRkVUQ0goZC0+cGF0aCwgZC0+dmFyKTsKK30KKwordm9pZAog
dHVuYWJsZV9xdWFkX2luaXQodm9pZCAqZGF0YSkKIHsKIAlzdHJ1Y3QgdHVuYWJsZV9xdWFkICpk
ID0gKHN0cnVjdCB0dW5hYmxlX3F1YWQgKilkYXRhOwpAQCAtNjA3LDYgKzc0NiwyMiBAQAogfQog
CiB2b2lkCit0dW5hYmxlX3VxdWFkX2luaXQodm9pZCAqZGF0YSkKK3sKKwlzdHJ1Y3QgdHVuYWJs
ZV91cXVhZCAqZCA9IChzdHJ1Y3QgdHVuYWJsZV91cXVhZCAqKWRhdGE7CisKKwlUVU5BQkxFX1VR
VUFEX0ZFVENIKGQtPnBhdGgsIGQtPnZhcik7Cit9CisKK3ZvaWQKK3R1bmFibGVfc2l6ZV9pbml0
KHZvaWQgKmRhdGEpCit7CisJc3RydWN0IHR1bmFibGVfc2l6ZSAqZCA9IChzdHJ1Y3QgdHVuYWJs
ZV9zaXplICopZGF0YTsKKworCVRVTkFCTEVfU0laRV9GRVRDSChkLT5wYXRoLCBkLT52YXIpOwor
fQorCit2b2lkCiB0dW5hYmxlX3N0cl9pbml0KHZvaWQgKmRhdGEpCiB7CiAJc3RydWN0IHR1bmFi
bGVfc3RyICpkID0gKHN0cnVjdCB0dW5hYmxlX3N0ciAqKWRhdGE7CkluZGV4OiBzeXMvc3lzL2tl
cm5lbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9zeXMva2VybmVsLmgJKHJldmlzaW9uIDIxNDI1OCkK
KysrIHN5cy9zeXMva2VybmVsLmgJKHdvcmtpbmcgY29weSkKQEAgLTI3NSw3ICsyNzUsOSBAQAog
CiAvKgogICogaW50Ci0gKiBwbGVhc2UgYXZvaWQgdXNpbmcgZm9yIG5ldyB0dW5hYmxlcyEKKyAq
CisgKiBQbGVhc2UgZG8gbm90IHVzZSBmb3IgYWRkcmVzc2VzIG9yIHBvaW50ZXJzICh1c2UgdGhl
IHBvaW50ZXIgdHVuYWJsZQorICogaW5zdGVhZCksIG9yIHNpemVzICh1c2UgdGhlIHNpemUgdHVu
YWJsZSBpbnN0ZWFkKS4KICAqLwogZXh0ZXJuIHZvaWQgdHVuYWJsZV9pbnRfaW5pdCh2b2lkICop
Owogc3RydWN0IHR1bmFibGVfaW50IHsKQEAgLTI5NCw2ICsyOTYsMjggQEAKICNkZWZpbmUJVFVO
QUJMRV9JTlRfRkVUQ0gocGF0aCwgdmFyKQlnZXRlbnZfaW50KChwYXRoKSwgKHZhcikpCiAKIC8q
CisgKiB1bnNpZ25lZCBpbnQKKyAqCisgKiBQbGVhc2UgZG8gbm90IHVzZSBmb3IgYWRkcmVzc2Vz
IG9yIHBvaW50ZXJzICh1c2UgdGhlIHBvaW50ZXIgdHVuYWJsZQorICogaW5zdGVhZCksIG9yIHNp
emVzICh1c2UgdGhlIHNpemUgdHVuYWJsZSBpbnN0ZWFkKS4KKyAqLworZXh0ZXJuIHZvaWQgdHVu
YWJsZV91aW50X2luaXQodm9pZCAqKTsKK3N0cnVjdCB0dW5hYmxlX3VpbnQgeworCWNvbnN0IGNo
YXIgKnBhdGg7CisJdW5zaWduZWQgaW50ICp2YXI7Cit9OworI2RlZmluZQlUVU5BQkxFX1VJTlQo
cGF0aCwgdmFyKQkJCQkJXAorCXN0YXRpYyBzdHJ1Y3QgdHVuYWJsZV91aW50IF9fQ09OQ0FUKF9f
dHVuYWJsZV91aW50XywgX19MSU5FX18pID0geyBcCisJCShwYXRoKSwJCQkJCQlcCisJCSh2YXIp
LAkJCQkJCVwKKwl9OwkJCQkJCQlcCisJU1lTSU5JVChfX0NPTkNBVChfX1R1bmFibGVfaW5pdF8s
IF9fTElORV9fKSwJCVwKKwkgICAgU0lfU1VCX1RVTkFCTEVTLCBTSV9PUkRFUl9NSURETEUsIHR1
bmFibGVfdWludF9pbml0LCBcCisJICAgICZfX0NPTkNBVChfX3R1bmFibGVfdWludF8sIF9fTElO
RV9fKSkKKworI2RlZmluZQlUVU5BQkxFX1VJTlRfRkVUQ0gocGF0aCwgdmFyKQlnZXRlbnZfdWlu
dCgocGF0aCksICh2YXIpKQorCisvKgogICogbG9uZwogICovCiBleHRlcm4gdm9pZCB0dW5hYmxl
X2xvbmdfaW5pdCh2b2lkICopOwpAQCAtMzMyLDggKzM1NiwyOCBAQAogI2RlZmluZQlUVU5BQkxF
X1VMT05HX0ZFVENIKHBhdGgsIHZhcikJZ2V0ZW52X3Vsb25nKChwYXRoKSwgKHZhcikpCiAKIC8q
Ci0gKiBxdWFkCisgKiBwb2ludGVyCiAgKi8KK2V4dGVybiB2b2lkIHR1bmFibGVfcG9pbnRlcl9p
bml0KHZvaWQgKik7CitzdHJ1Y3QgdHVuYWJsZV9wb2ludGVyIHsKKwljb25zdCBjaGFyICpwYXRo
OworCXVpbnRwdHJfdCAqdmFyOworfTsKKyNkZWZpbmUJVFVOQUJMRV9QT0lOVEVSKHBhdGgsIHZh
cikJCQkJXAorCXN0YXRpYyBzdHJ1Y3QgdHVuYWJsZV9wb2ludGVyIF9fQ09OQ0FUKF9fdHVuYWJs
ZV9wb2ludGVyXywgX19MSU5FX18pID0geyBcCisJCShwYXRoKSwJCQkJCQlcCisJCSh2YXIpLAkJ
CQkJCVwKKwl9OwkJCQkJCQlcCisJU1lTSU5JVChfX0NPTkNBVChfX1R1bmFibGVfaW5pdF8sIF9f
TElORV9fKSwJCVwKKwkgICAgU0lfU1VCX1RVTkFCTEVTLCBTSV9PUkRFUl9NSURETEUsIHR1bmFi
bGVfcG9pbnRlcl9pbml0LCBcCisJICAgICZfX0NPTkNBVChfX3R1bmFibGVfcG9pbnRlcl8sIF9f
TElORV9fKSkKKworI2RlZmluZQlUVU5BQkxFX1BPSU5URVJfRkVUQ0gocGF0aCwgdmFyKQkJCVwK
KwlnZXRlbnZfcG9pbnRlcigocGF0aCksICh2YXIpKQorCisvKgorICogcXVhZF90CisgKi8KIGV4
dGVybiB2b2lkIHR1bmFibGVfcXVhZF9pbml0KHZvaWQgKik7CiBzdHJ1Y3QgdHVuYWJsZV9xdWFk
IHsKIAljb25zdCBjaGFyICpwYXRoOwpAQCAtMzUwLDYgKzM5NCwyOCBAQAogCiAjZGVmaW5lCVRV
TkFCTEVfUVVBRF9GRVRDSChwYXRoLCB2YXIpCWdldGVudl9xdWFkKChwYXRoKSwgKHZhcikpCiAK
Ky8qCisgKiBzaXplX3QKKyAqLworZXh0ZXJuIHZvaWQgdHVuYWJsZV9zaXplX2luaXQodm9pZCAq
KTsKK3N0cnVjdCB0dW5hYmxlX3NpemUgeworCWNvbnN0IGNoYXIgKnBhdGg7CisJc2l6ZV90ICp2
YXI7Cit9OworI2RlZmluZQlUVU5BQkxFX1NJWkUocGF0aCwgdmFyKQkJCQkJXAorCXN0YXRpYyBz
dHJ1Y3QgdHVuYWJsZV9zaXplIF9fQ09OQ0FUKF9fdHVuYWJsZV9zaXplXywgX19MSU5FX18pID0g
eyBcCisJCShwYXRoKSwJCQkJCQlcCisJCSh2YXIpLAkJCQkJCVwKKwl9OwkJCQkJCQlcCisJU1lT
SU5JVChfX0NPTkNBVChfX1R1bmFibGVfaW5pdF8sIF9fTElORV9fKSwJCVwKKwkgICAgU0lfU1VC
X1RVTkFCTEVTLCBTSV9PUkRFUl9NSURETEUsIHR1bmFibGVfc2l6ZV9pbml0LCBcCisJICAgICZf
X0NPTkNBVChfX3R1bmFibGVfc2l6ZV8sIF9fTElORV9fKSkKKworI2RlZmluZQlUVU5BQkxFX1NJ
WkVfRkVUQ0gocGF0aCwgdmFyKQlnZXRlbnZfc2l6ZSgocGF0aCksICh2YXIpKQorCisvKgorICog
c3RyaW5ncworICovCiBleHRlcm4gdm9pZCB0dW5hYmxlX3N0cl9pbml0KHZvaWQgKik7CiBzdHJ1
Y3QgdHVuYWJsZV9zdHIgewogCWNvbnN0IGNoYXIgKnBhdGg7CkBAIC0zNjksNiArNDM1LDI1IEBA
CiAjZGVmaW5lCVRVTkFCTEVfU1RSX0ZFVENIKHBhdGgsIHZhciwgc2l6ZSkJCQlcCiAJZ2V0ZW52
X3N0cmluZygocGF0aCksICh2YXIpLCAoc2l6ZSkpCiAKKy8qCisgKiB1cXVhZF90CisgKi8KK2V4
dGVybiB2b2lkIHR1bmFibGVfdXF1YWRfaW5pdCh2b2lkICopOworc3RydWN0IHR1bmFibGVfdXF1
YWQgeworCWNvbnN0IGNoYXIgKnBhdGg7CisJdXF1YWRfdCAqdmFyOworfTsKKyNkZWZpbmUJVFVO
QUJMRV9VUVVBRChwYXRoLCB2YXIpCQkJCQlcCisJc3RhdGljIHN0cnVjdCB0dW5hYmxlX3VxdWFk
IF9fQ09OQ0FUKF9fdHVuYWJsZV91cXVhZF8sIF9fTElORV9fKSA9IHsgXAorCQkocGF0aCksCQkJ
CQkJXAorCQkodmFyKSwJCQkJCQlcCisJfTsJCQkJCQkJXAorCVNZU0lOSVQoX19DT05DQVQoX19U
dW5hYmxlX2luaXRfLCBfX0xJTkVfXyksCQlcCisJICAgIFNJX1NVQl9UVU5BQkxFUywgU0lfT1JE
RVJfTUlERExFLCB0dW5hYmxlX3VxdWFkX2luaXQsIFwKKwkgICAgJl9fQ09OQ0FUKF9fdHVuYWJs
ZV91cXVhZF8sIF9fTElORV9fKSkKKworI2RlZmluZQlUVU5BQkxFX1VRVUFEX0ZFVENIKHBhdGgs
IHZhcikJZ2V0ZW52X3VxdWFkKChwYXRoKSwgKHZhcikpCisKIHN0cnVjdCBpbnRyX2NvbmZpZ19o
b29rIHsKIAlUQUlMUV9FTlRSWShpbnRyX2NvbmZpZ19ob29rKSBpY2hfbGlua3M7CiAJdm9pZAko
KmljaF9mdW5jKSh2b2lkICphcmcpOwpJbmRleDogc3lzL3N5cy9wYXJhbS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHN5cy9zeXMvcGFyYW0uaAkocmV2aXNpb24gMjE0MjU4KQorKysgc3lzL3N5cy9wYXJhbS5o
CSh3b3JraW5nIGNvcHkpCkBAIC01OCw3ICs1OCw3IEBACiAgKgkJaW4gdGhlIHJhbmdlIDUgdG8g
OS4KICAqLwogI3VuZGVmIF9fRnJlZUJTRF92ZXJzaW9uCi0jZGVmaW5lIF9fRnJlZUJTRF92ZXJz
aW9uIDkwMDAyMwkvKiBNYXN0ZXIsIHByb3BhZ2F0ZWQgdG8gbmV3dmVycyAqLworI2RlZmluZSBf
X0ZyZWVCU0RfdmVyc2lvbiA5MDAwMjQJLyogTWFzdGVyLCBwcm9wYWdhdGVkIHRvIG5ld3ZlcnMg
Ki8KIAogI2lmbmRlZiBMT0NPUkUKICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KSW5kZXg6IHN5cy9z
eXMvc3lzdG0uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBzeXMvc3lzL3N5c3RtLmgJKHJldmlzaW9uIDIxNDI1
OCkKKysrIHN5cy9zeXMvc3lzdG0uaAkod29ya2luZyBjb3B5KQpAQCAtMjYwLDEyICsyNjAsMjAg
QEAKIAogY2hhcgkqZ2V0ZW52KGNvbnN0IGNoYXIgKm5hbWUpOwogdm9pZAlmcmVlZW52KGNoYXIg
KmVudik7Cit1aW50bWF4X3QgZ2V0ZW52X3BhcnNlX3N1ZmZpeChjb25zdCBjaGFyIHN1ZmZpeCk7
CitpbnQJZ2V0ZW52X3NpZ25lZChjb25zdCBjaGFyICpuYW1lLCBpbnRtYXhfdCAqZGF0YSwgY29u
c3QgaW50bWF4X3QgbWluLAorCSAgICBjb25zdCBpbnRtYXhfdCBtYXgpOworaW50CWdldGVudl91
bnNpZ25lZChjb25zdCBjaGFyICpuYW1lLCB1aW50bWF4X3QgKmRhdGEsCisJICAgIGNvbnN0IHVp
bnRtYXhfdCBtaW4sIGNvbnN0IHVpbnRtYXhfdCBtYXgpOwogaW50CWdldGVudl9pbnQoY29uc3Qg
Y2hhciAqbmFtZSwgaW50ICpkYXRhKTsKIGludAlnZXRlbnZfdWludChjb25zdCBjaGFyICpuYW1l
LCB1bnNpZ25lZCBpbnQgKmRhdGEpOwogaW50CWdldGVudl9sb25nKGNvbnN0IGNoYXIgKm5hbWUs
IGxvbmcgKmRhdGEpOwogaW50CWdldGVudl91bG9uZyhjb25zdCBjaGFyICpuYW1lLCB1bnNpZ25l
ZCBsb25nICpkYXRhKTsKLWludAlnZXRlbnZfc3RyaW5nKGNvbnN0IGNoYXIgKm5hbWUsIGNoYXIg
KmRhdGEsIGludCBzaXplKTsKK2ludAlnZXRlbnZfcG9pbnRlcihjb25zdCBjaGFyICpuYW1lLCB1
aW50cHRyX3QgKmRhdGEpOwogaW50CWdldGVudl9xdWFkKGNvbnN0IGNoYXIgKm5hbWUsIHF1YWRf
dCAqZGF0YSk7CitpbnQJZ2V0ZW52X3VxdWFkKGNvbnN0IGNoYXIgKm5hbWUsIHVxdWFkX3QgKmRh
dGEpOworaW50CWdldGVudl9zaXplKGNvbnN0IGNoYXIgKm5hbWUsIHNpemVfdCAqZGF0YSk7Citp
bnQJZ2V0ZW52X3N0cmluZyhjb25zdCBjaGFyICpuYW1lLCBjaGFyICpkYXRhLCBzaXplX3Qgc2l6
ZSk7CiBpbnQJc2V0ZW52KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKIGlu
dAl1bnNldGVudihjb25zdCBjaGFyICpuYW1lKTsKIGludAl0ZXN0ZW52KGNvbnN0IGNoYXIgKm5h
bWUpOwpJbmRleDogc3lzL3N5cy90eXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHN5cy9zeXMvdHlwZXMu
aAkocmV2aXNpb24gMjE0MjU4KQorKysgc3lzL3N5cy90eXBlcy5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xMTIsNiArMTEyLDcgQEAKIHR5cGVkZWYgX191aW50NjRfdAl1X2ludDY0X3Q7CiAKIHR5cGVk
ZWYJX191aW50NjRfdAl1X3F1YWRfdDsJLyogcXVhZHMgKGRlcHJlY2F0ZWQpICovCit0eXBlZGVm
CV9fdWludDY0X3QJdXF1YWRfdDsKIHR5cGVkZWYJX19pbnQ2NF90CXF1YWRfdDsKIHR5cGVkZWYJ
cXVhZF90ICoJcWFkZHJfdDsKIApJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy91cXVh
ZC90ZXN0X3VxdWFkX3R1bmFibGUuc2gKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90
dW5hYmxlcy91cXVhZC90ZXN0X3VxdWFkX3R1bmFibGUuc2gJKHJldmlzaW9uIDApCisrKyB0b29s
cy9yZWdyZXNzaW9uL3R1bmFibGVzL3VxdWFkL3Rlc3RfdXF1YWRfdHVuYWJsZS5zaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwzOCBAQAorIyEvYmluL3NoCisjCisjIEV4cGVjdGVkIHZhbHVlczoK
KyMgKHVuc2V0KSAgICA6ICAgICAgICAgICAwCisjICAgICAgLTEgICAgOiAgIFVMT05HX01BWAor
IyAgICAgICAwICAgIDogICAgICAgICAgIDAKKyMgICAgICA0MiAgICA6ICAgICAgICAgIDQyCisj
IGFzZGYxMjM0ICAgOiAgICAgICAgICAgMCAocmVqZWN0KQorIyBMT05HX01BWCsxIDogIExPTkdf
TUFYKzEKKyMgVUxPTkdfTUFYLTE6IFVMT05HX01BWC0xCisjIFVMT05HX01BWCsxOiAgIFVMT05H
X01BWAorIworCitNT0ROQU1FPSIkKGJhc2VuYW1lICIkMCIgLnNoKSIKKwordGVzdF9tb2R1bGUo
KSB7CisJa2xkbG9hZCAuLyRNT0ROQU1FLmtvCisJa2xkdW5sb2FkIC4vJE1PRE5BTUUua28KK30K
KworY2FzZSAiJCgkKGRpcm5hbWUgIiQwIikvLi4vdG9vbHMvZ2V0d29yZHNpemUpIiBpbgorMzIp
CisJTE9OR19NQVhfUExVU18xPTIxNDc0ODM2NDkKKwlVTE9OR19NQVhfTUlOVVNfMT00Mjk0OTY3
Mjk1CisJVUxPTkdfTUFYX1BMVVNfMT00Mjk0OTY3Mjk3CisJOzsKKzY0KQorCUxPTkdfTUFYX1BM
VVNfMT05MjIzMzcyMDM2ODU0Nzc1ODA4CisJVUxPTkdfTUFYX01JTlVTXzE9MTg0NDY3NDQwNzM3
MDk1NTE2MTQKKwlVTE9OR19NQVhfUExVU18xPTE4NDQ2NzQ0MDczNzA5NTUxNjE2CisJOzsKK2Vz
YWMKK2tlbnYgLXUgJE1PRE5BTUUudHVuYWJsZSAyPi9kZXYvbnVsbAordGVzdF9tb2R1bGUKK2Zv
ciBpIGluIC0xIDAgNDIgYXNkZjEyMzQgJExPTkdfTUFYX1BMVVNfMSAkVUxPTkdfTUFYX01JTlVT
XzEgJFVMT05HX01BWF9QTFVTXzE7IGRvCisJa2VudiAkTU9ETkFNRS50dW5hYmxlPSIkaSIKKwl0
ZXN0X21vZHVsZQorZG9uZQpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy91cXVhZC90
ZXN0X3VxdWFkX3R1bmFibGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFi
bGVzL3VxdWFkL3Rlc3RfdXF1YWRfdHVuYWJsZS5jCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVn
cmVzc2lvbi90dW5hYmxlcy91cXVhZC90ZXN0X3VxdWFkX3R1bmFibGUuYwkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwzMSBAQAorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90
eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgor
I2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KKworI2RlZmlu
ZSBNT0RVTEVfTkFNRQkidGVzdF91cXVhZF90dW5hYmxlIgorCitzdGF0aWMgdXF1YWRfdCB0dW5h
YmxlID0gMDsKKworVFVOQUJMRV9VUVVBRCgidGVzdF91cXVhZF90dW5hYmxlLnR1bmFibGUiLCAm
dHVuYWJsZSk7CisKK3N0YXRpYyBpbnQKK2xvYWQgKG1vZHVsZV90IG0sIGludCB3aGF0LCB2b2lk
ICphcmcpCit7CisJc3dpdGNoICh3aGF0KSB7CisJY2FzZSBNT0RfTE9BRDoKKwkJcHJpbnRmKCIl
czogJWx1XG4iLCBNT0RVTEVfTkFNRSwgdHVuYWJsZSk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4g
KDApOworfQorCitzdGF0aWMgbW9kdWxlZGF0YV90IHRlc3RfdXF1YWRfdHVuYWJsZV9tb2QgPSB7
CisJTU9EVUxFX05BTUUsCisJbG9hZCwKK307CitERUNMQVJFX01PRFVMRSh0ZXN0X3VxdWFkX3R1
bmFibGUsIHRlc3RfdXF1YWRfdHVuYWJsZV9tb2QsIFNJX1NVQl9LTEQsCisgICAgU0lfT1JERVJf
QU5ZKTsKK01PRFVMRV9WRVJTSU9OKHRlc3RfdXF1YWRfdHVuYWJsZSwgMSk7CkluZGV4OiB0b29s
cy9yZWdyZXNzaW9uL3R1bmFibGVzL3VxdWFkL01ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xz
L3JlZ3Jlc3Npb24vdHVuYWJsZXMvdXF1YWQvTWFrZWZpbGUJKHJldmlzaW9uIDApCisrKyB0b29s
cy9yZWdyZXNzaW9uL3R1bmFibGVzL3VxdWFkL01ha2VmaWxlCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDQgQEAKK0tNT0Q9CXRlc3RfdXF1YWRfdHVuYWJsZQorU1JDUz0JdGVzdF91cXVhZF90dW5h
YmxlLmMKKworLmluY2x1ZGUgPGJzZC5rbW9kLm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90
dW5hYmxlcy91aW50L3Rlc3RfdWludF90dW5hYmxlLnNoCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3Jl
Z3Jlc3Npb24vdHVuYWJsZXMvdWludC90ZXN0X3VpbnRfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkK
KysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdWludC90ZXN0X3VpbnRfdHVuYWJsZS5zaAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwyOSBAQAorIyEvYmluL3NoCisjCisjIEV4cGVjdGVkIHZh
bHVlczoKKyMgKHVuc2V0KSAgIDogICAgICAgICAgMAorIyAgICAgIC0xICAgOiAgICAgICAgICAw
IChyZWplY3QpIAorIyAgICAgICAwICAgOiAgICAgICAgICAwCisjICAgICAgNDIgICA6ICAgICAg
ICAgNDIKKyMgYXNkZjEyMzQgIDogICAgICAgICAgMCAocmVqZWN0KQorIyBJTlRfTUFYKzEgOiAg
SU5UX01BWCsxCisjIFVJTlRfTUFYLTE6IFVJTlRfTUFYLTEKKyMgVUlOVF9NQVgrMTogICAgICAg
ICAgMCAocmVqZWN0KQorIworCitNT0ROQU1FPSIkKGJhc2VuYW1lICIkMCIgLnNoKSIKKwordGVz
dF9tb2R1bGUoKSB7CisJa2xkbG9hZCAuLyRNT0ROQU1FLmtvCisJa2xkdW5sb2FkIC4vJE1PRE5B
TUUua28KK30KKworSU5UX01BWF9QTFVTX09ORT0yMTQ3NDgzNjQ4CitVSU5UX01BWF9NSU5VU19P
TkU9NDI5NDk2NzI5NAorVUlOVF9NQVhfUExVU19PTkU9NDI5NDk2NzI5Ngora2VudiAtdSAkTU9E
TkFNRS50dW5hYmxlIDI+L2Rldi9udWxsCit0ZXN0X21vZHVsZQorZm9yIGkgaW4gLTEgMCA0MiBh
c2RmMTIzNCAkSU5UX01BWF9QTFVTX09ORSAkVUlOVF9NQVhfTUlOVVNfT05FICRVSU5UX01BWF9Q
TFVTX09ORTsgZG8KKwlrZW52ICRNT0ROQU1FLnR1bmFibGU9IiRpIgorCXRlc3RfbW9kdWxlCitk
b25lCkluZGV4OiB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3VpbnQvdGVzdF91aW50X3R1bmFi
bGUuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3VpbnQvdGVzdF91
aW50X3R1bmFibGUuYwkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMv
dWludC90ZXN0X3VpbnRfdHVuYWJsZS5jCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMxIEBACisj
aW5jbHVkZSA8c3lzL3BhcmFtLmg+CisjaW5jbHVkZSA8c3lzL3R5cGVzLmg+CisjaW5jbHVkZSA8
c3lzL3Byb2MuaD4KKyNpbmNsdWRlIDxzeXMvbW9kdWxlLmg+CisjaW5jbHVkZSA8c3lzL2tlcm5l
bC5oPgorI2luY2x1ZGUgPHN5cy9zeXN0bS5oPgorCisjZGVmaW5lIE1PRFVMRV9OQU1FCSJ0ZXN0
X3VpbnRfdHVuYWJsZSIKKworc3RhdGljIHVuc2lnbmVkIGludCB0dW5hYmxlID0gMDsKKworVFVO
QUJMRV9VSU5UKCJ0ZXN0X3VpbnRfdHVuYWJsZS50dW5hYmxlIiwgJnR1bmFibGUpOworCitzdGF0
aWMgaW50Citsb2FkIChtb2R1bGVfdCBtLCBpbnQgd2hhdCwgdm9pZCAqYXJnKQoreworCXN3aXRj
aCAod2hhdCkgeworCWNhc2UgTU9EX0xPQUQ6CisJCXByaW50ZigiJXM6ICV1XG4iLCBNT0RVTEVf
TkFNRSwgdHVuYWJsZSk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMg
bW9kdWxlZGF0YV90IHRlc3RfdWludF90dW5hYmxlX21vZCA9IHsKKwlNT0RVTEVfTkFNRSwKKwls
b2FkLAorfTsKK0RFQ0xBUkVfTU9EVUxFKHRlc3RfdWludF90dW5hYmxlLCB0ZXN0X3VpbnRfdHVu
YWJsZV9tb2QsIFNJX1NVQl9LTEQsCisgICAgU0lfT1JERVJfQU5ZKTsKK01PRFVMRV9WRVJTSU9O
KHRlc3RfdWludF90dW5hYmxlLCAxKTsKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMv
dWludC9NYWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3Vp
bnQvTWFrZWZpbGUJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3Vp
bnQvTWFrZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0JdGVzdF91aW50
X3R1bmFibGUKK1NSQ1M9CXRlc3RfdWludF90dW5hYmxlLmMKKworLmluY2x1ZGUgPGJzZC5rbW9k
Lm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy90b29scy9nZXR3b3Jkc2l6ZS5j
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdG9vbHMvZ2V0d29yZHNp
emUuYwkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdG9vbHMvZ2V0
d29yZHNpemUuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw5IEBACisjaW5jbHVkZSA8c3lzL2Vs
Zi5oPgorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2ludAorbWFpbih2b2lkKQoreworCXByaW50Zigi
JWRcbiIsIF9fRUxGX1dPUkRfU0laRSk7CisJcmV0dXJuICgwKTsKK30KSW5kZXg6IHRvb2xzL3Jl
Z3Jlc3Npb24vdHVuYWJsZXMvdG9vbHMvTWFrZWZpbGUKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVn
cmVzc2lvbi90dW5hYmxlcy90b29scy9NYWtlZmlsZQkocmV2aXNpb24gMCkKKysrIHRvb2xzL3Jl
Z3Jlc3Npb24vdHVuYWJsZXMvdG9vbHMvTWFrZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NyBAQAorUFJPRz0JCWdldHdvcmRzaXplCisKK1NSQ1M9CQlnZXR3b3Jkc2l6ZS5jCisKK05PX01B
Tj0JCTEKKworLmluY2x1ZGUgPGJzZC5wcm9nLm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90
dW5hYmxlcy91bG9uZy90ZXN0X3Vsb25nX3R1bmFibGUuc2gKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMv
cmVncmVzc2lvbi90dW5hYmxlcy91bG9uZy90ZXN0X3Vsb25nX3R1bmFibGUuc2gJKHJldmlzaW9u
IDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3Vsb25nL3Rlc3RfdWxvbmdfdHVuYWJs
ZS5zaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorIyEvYmluL3NoCisjCisjIEV4cGVj
dGVkIHZhbHVlczoKKyMgKHVuc2V0KSAgICA6ICAgICAgICAgICAwCisjICAgICAgLTEgICAgOiAg
IFVMT05HX01BWAorIyAgICAgICAwICAgIDogICAgICAgICAgIDAKKyMgICAgICA0MiAgICA6ICAg
ICAgICAgIDQyCisjIGFzZGYxMjM0ICAgOiAgICAgICAgICAgMCAocmVqZWN0KQorIyBMT05HX01B
WCsxIDogIExPTkdfTUFYKzEKKyMgVUxPTkdfTUFYLTE6IFVMT05HX01BWC0xCisjIFVMT05HX01B
WCsxOiAgIFVMT05HX01BWAorIworCitNT0ROQU1FPSIkKGJhc2VuYW1lICIkMCIgLnNoKSIKKwor
dGVzdF9tb2R1bGUoKSB7CisJa2xkbG9hZCAuLyRNT0ROQU1FLmtvCisJa2xkdW5sb2FkIC4vJE1P
RE5BTUUua28KK30KKworY2FzZSAiJCgkKGRpcm5hbWUgIiQwIikvLi4vdG9vbHMvZ2V0d29yZHNp
emUpIiBpbgorMzIpCisJTE9OR19NQVhfUExVU18xPTIxNDc0ODM2NDkKKwlVTE9OR19NQVhfTUlO
VVNfMT00Mjk0OTY3Mjk1CisJVUxPTkdfTUFYX1BMVVNfMT00Mjk0OTY3Mjk3CisJOzsKKzY0KQor
CUxPTkdfTUFYX1BMVVNfMT05MjIzMzcyMDM2ODU0Nzc1ODA4CisJVUxPTkdfTUFYX01JTlVTXzE9
MTg0NDY3NDQwNzM3MDk1NTE2MTQKKwlVTE9OR19NQVhfUExVU18xPTE4NDQ2NzQ0MDczNzA5NTUx
NjE2CisJOzsKK2VzYWMKK2tlbnYgLXUgJE1PRE5BTUUudHVuYWJsZSAyPi9kZXYvbnVsbAordGVz
dF9tb2R1bGUKK2ZvciBpIGluIC0xIDAgNDIgYXNkZjEyMzQgJExPTkdfTUFYX1BMVVNfMSAkVUxP
TkdfTUFYX01JTlVTXzEgJFVMT05HX01BWF9QTFVTXzE7IGRvCisJa2VudiAkTU9ETkFNRS50dW5h
YmxlPSIkaSIKKwl0ZXN0X21vZHVsZQorZG9uZQpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5h
Ymxlcy91bG9uZy9NYWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFi
bGVzL3Vsb25nL01ha2VmaWxlCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5h
Ymxlcy91bG9uZy9NYWtlZmlsZQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0IEBACitLTU9EPQl0
ZXN0X3Vsb25nX3R1bmFibGUKK1NSQ1M9CXRlc3RfdWxvbmdfdHVuYWJsZS5jCisKKy5pbmNsdWRl
IDxic2Qua21vZC5taz4KSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvdWxvbmcvdGVz
dF91bG9uZ190dW5hYmxlLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxl
cy91bG9uZy90ZXN0X3Vsb25nX3R1bmFibGUuYwkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jl
c3Npb24vdHVuYWJsZXMvdWxvbmcvdGVzdF91bG9uZ190dW5hYmxlLmMJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsMzEgQEAKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvdHlw
ZXMuaD4KKyNpbmNsdWRlIDxzeXMvcHJvYy5oPgorI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4KKyNp
bmNsdWRlIDxzeXMva2VybmVsLmg+CisjaW5jbHVkZSA8c3lzL3N5c3RtLmg+CisKKyNkZWZpbmUg
TU9EVUxFX05BTUUJInRlc3RfdWxvbmdfdHVuYWJsZSIKKworc3RhdGljIHVuc2lnbmVkIGxvbmcg
dHVuYWJsZSA9IDA7CisKK1RVTkFCTEVfVUxPTkcoInRlc3RfdWxvbmdfdHVuYWJsZS50dW5hYmxl
IiwgJnR1bmFibGUpOworCitzdGF0aWMgaW50Citsb2FkIChtb2R1bGVfdCBtLCBpbnQgd2hhdCwg
dm9pZCAqYXJnKQoreworCXN3aXRjaCAod2hhdCkgeworCWNhc2UgTU9EX0xPQUQ6CisJCXByaW50
ZigiJXM6ICVsdVxuIiwgTU9EVUxFX05BTUUsIHR1bmFibGUpOworCQlicmVhazsKKwl9CisJcmV0
dXJuICgwKTsKK30KKworc3RhdGljIG1vZHVsZWRhdGFfdCB0ZXN0X3Vsb25nX3R1bmFibGVfbW9k
ID0geworCU1PRFVMRV9OQU1FLAorCWxvYWQsCit9OworREVDTEFSRV9NT0RVTEUodGVzdF91bG9u
Z190dW5hYmxlLCB0ZXN0X3Vsb25nX3R1bmFibGVfbW9kLCBTSV9TVUJfS0xELAorICAgIFNJX09S
REVSX0FOWSk7CitNT0RVTEVfVkVSU0lPTih0ZXN0X3Vsb25nX3R1bmFibGUsIDEpOwpJbmRleDog
dG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdWZmaXgvdGVzdF90dW5hYmxlX3N1ZmZpeGVzLmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdWZmaXgvdGVzdF90dW5h
YmxlX3N1ZmZpeGVzLmMJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVz
L3N1ZmZpeC90ZXN0X3R1bmFibGVfc3VmZml4ZXMuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
MSBAQAorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2lu
Y2x1ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgorI2luY2x1ZGUgPHN5
cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KKworI2RlZmluZSBNT0RVTEVfTkFN
RQkidGVzdF90dW5hYmxlX3N1ZmZpeGVzIgorCitzdGF0aWMgbG9uZyB0dW5hYmxlID0gMDsKKwor
VFVOQUJMRV9MT05HKCJ0ZXN0X3R1bmFibGVfc3VmZml4ZXMudHVuYWJsZSIsICZ0dW5hYmxlKTsK
Kworc3RhdGljIGludAorbG9hZCAoc3RydWN0IG1vZHVsZSAqbSwgaW50IHdoYXQsIHZvaWQgKmFy
ZykKK3sKKwlzd2l0Y2ggKHdoYXQpIHsKKwljYXNlIE1PRF9MT0FEOgorCQlwcmludGYoIiVzOiAl
bGRcbiIsIE1PRFVMRV9OQU1FLCB0dW5hYmxlKTsKKwkJYnJlYWs7CisJfQorCXJldHVybiAoMCk7
Cit9CisKK3N0YXRpYyBtb2R1bGVkYXRhX3QgdGVzdF90dW5hYmxlX3N1ZmZpeGVzX21vZCA9IHsK
KwlNT0RVTEVfTkFNRSwKKwlsb2FkLAorfTsKK0RFQ0xBUkVfTU9EVUxFKHRlc3RfdHVuYWJsZV9z
dWZmaXhlcywgdGVzdF90dW5hYmxlX3N1ZmZpeGVzX21vZCwgU0lfU1VCX0tMRCwKKyAgICBTSV9P
UkRFUl9BTlkpOworTU9EVUxFX1ZFUlNJT04odGVzdF90dW5hYmxlX3N1ZmZpeGVzLCAxKTsKSW5k
ZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3VmZml4L01ha2VmaWxlCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3VmZml4L01ha2VmaWxlCShyZXZpc2lvbiAw
KQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdWZmaXgvTWFrZWZpbGUJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0JdGVzdF90dW5hYmxlX3N1ZmZpeGVzCitTUkNTPQl0
ZXN0X3R1bmFibGVfc3VmZml4ZXMuYworCisuaW5jbHVkZSA8YnNkLmttb2QubWs+CkluZGV4OiB0
b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3N1ZmZpeC90ZXN0X3R1bmFibGVfc3VmZml4ZXMuc2gK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdWZmaXgvdGVzdF90dW5h
YmxlX3N1ZmZpeGVzLnNoCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxl
cy9zdWZmaXgvdGVzdF90dW5hYmxlX3N1ZmZpeGVzLnNoCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDQxIEBACisjIS9iaW4vc2gKKyMKKyMgRXhwZWN0ZWQgdmFsdWVzOgorIyAodW5zZXQpICAgOiAg
ICAgICAgICAgMAorIyAgICAgICAgIC0xOiAgICAgICAgICAtMQorIyAgICAgICAgLTFnOiAgICAg
LTEwMjReMworIyAgICAgICAgLTFHOiAgICAgLTEwMjReMyAoc2FtZSBhcyAxZykgCisjICAgICAg
ICAtMWs6ICAgICAgIC0xMDI0CisjICAgICAgICAtMUs6ICAgICAgIC0xMDI0IChzYW1lIGFzIDFL
KQorIyAgICAgICAgLTFtOiAgICAgLTEwMjReMgorIyAgICAgICAgLTFNOiAgICAgLTEwMjReMiAo
c2FtZSBhcyAxbSkKKyMgICAgICAgIC0xdDogICAgIC0xMDI0XjQKKyMgICAgICAgIC0xVDogICAg
IC0xMDI0XjQgKHNhbWUgYXMgMXQpCisjICAgICAgICAtMXo6ICAgICAgICAgICAwIChyZWplY3Qp
CisjICAgICAgICAgIDE6ICAgICAgICAgICAxCisjICAgICAgICAgMWc6ICAgICAgMTAyNF4zCisj
ICAgICAgICAgMUc6ICAgICAgMTAyNF4zIChzYW1lIGFzIDFnKSAKKyMgICAgICAgICAxazogICAg
ICAgIDEwMjQKKyMgICAgICAgICAxSzogICAgICAgIDEwMjQgKHNhbWUgYXMgMUspCisjICAgICAg
ICAgMW06ICAgICAgMTAyNF4yCisjICAgICAgICAgMU06ICAgICAgMTAyNF4yIChzYW1lIGFzIDFt
KQorIyAgICAgICAgIDF0OiAgICAgIDEwMjReNAorIyAgICAgICAgIDFUOiAgICAgIDEwMjReNCAo
c2FtZSBhcyAxdCkKKyMgICAgICAgICAxejogICAgICAgICAgIDAgKHJlamVjdCkKKyMgICAgICAg
ICAxVDogICAgICAgICAgIDAgKHJlamVjdCkKKworTU9ETkFNRT0iJChiYXNlbmFtZSAiJDAiIC5z
aCkiCisKK3Rlc3RfbW9kdWxlKCkgeworCWtsZGxvYWQgLi8kTU9ETkFNRS5rbworCWtsZHVubG9h
ZCAuLyRNT0ROQU1FLmtvCit9CisKK2tlbnYgLXUgJE1PRE5BTUUudHVuYWJsZSAyPi9kZXYvbnVs
bAordGVzdF9tb2R1bGUKK2ZvciBpIGluIC0xIDAgMTsgZG8KKwlmb3IgaiBpbiAnJyBnIEcgayBL
IG0gTSB0IFQgeiBaOyBkbworCQlrZW52ICRNT0ROQU1FLnR1bmFibGU9IiRpJGoiCisJCXRlc3Rf
bW9kdWxlCisJZG9uZQorZG9uZQpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdHJp
bmcvdGVzdF9zdHJpbmdfdHVuYWJsZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24v
dHVuYWJsZXMvc3RyaW5nL3Rlc3Rfc3RyaW5nX3R1bmFibGUuYwkocmV2aXNpb24gMCkKKysrIHRv
b2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3RyaW5nL3Rlc3Rfc3RyaW5nX3R1bmFibGUuYwkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1
ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL21v
ZHVsZS5oPgorI2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4KKyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4K
KworI2RlZmluZSBNT0RVTEVfTkFNRQkidGVzdF9zdHJpbmdfdHVuYWJsZSIKKworc3RhdGljIGNo
YXIgdHVuYWJsZVsxMF07CisKK1RVTkFCTEVfU1RSKCJ0ZXN0X3N0cmluZ190dW5hYmxlLnR1bmFi
bGUiLCB0dW5hYmxlLCBzaXplb2YodHVuYWJsZSkpOworCitzdGF0aWMgaW50Citsb2FkIChtb2R1
bGVfdCBtLCBpbnQgd2hhdCwgdm9pZCAqYXJnKQoreworCXN3aXRjaCAod2hhdCkgeworCWNhc2Ug
TU9EX0xPQUQ6CisJCXByaW50ZigiJXM6ICVzXG4iLCBNT0RVTEVfTkFNRSwgdHVuYWJsZSk7CisJ
CWJyZWFrOworCX0KKwlyZXR1cm4gKDApOworfQorCitzdGF0aWMgbW9kdWxlZGF0YV90IHRlc3Rf
c3RyaW5nX3R1bmFibGVfbW9kID0geworCU1PRFVMRV9OQU1FLAorCWxvYWQsCit9OworREVDTEFS
RV9NT0RVTEUodGVzdF9zdHJpbmdfdHVuYWJsZSwgdGVzdF9zdHJpbmdfdHVuYWJsZV9tb2QsIFNJ
X1NVQl9LTEQsCisgICAgU0lfT1JERVJfQU5ZKTsKK01PRFVMRV9WRVJTSU9OKHRlc3Rfc3RyaW5n
X3R1bmFibGUsIDEpOwpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9zdHJpbmcvdGVz
dF9zdHJpbmdfdHVuYWJsZS5zaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFi
bGVzL3N0cmluZy90ZXN0X3N0cmluZ190dW5hYmxlLnNoCShyZXZpc2lvbiAwKQorKysgdG9vbHMv
cmVncmVzc2lvbi90dW5hYmxlcy9zdHJpbmcvdGVzdF9zdHJpbmdfdHVuYWJsZS5zaAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwyMiBAQAorIyEvYmluL3NoCisjCisjIEV4cGVjdGVkIHZhbHVlczoK
KyMgKHVuc2V0KSAgICAgICAgICAgICAgOiAgICAgICAgICAiIgorIyAiIiAgICAgICAgICAgICAg
ICAgICA6ICAgICAgICAgICIiCisjIGFzZGYxMjM0ICAgICAgICAgICAgIDogICAgYXNkZjEyMzQK
KyMgY2hhcmFjdGVyICAgICAgICAgICAgOiAgIGNoYXJhY3RlcgorIyBhc29ydG9mbG9uZ2lzaHN0
cmluZyA6ICAgYXNvcnRvZmxvCisjCisKK01PRE5BTUU9IiQoYmFzZW5hbWUgIiQwIiAuc2gpIgor
Cit0ZXN0X21vZHVsZSgpIHsKKwlrbGRsb2FkIC4vJE1PRE5BTUUua28KKwlrbGR1bmxvYWQgLi8k
TU9ETkFNRS5rbworfQorCit0ZXN0X21vZHVsZQorZm9yIGkgaW4gIiIgYXNkZjEyMzQgY2hhcmFj
dGVyIGFzb3J0b2Zsb25naXNoc3RyaW5nOyBkbworCWtlbnYgJE1PRE5BTUUudHVuYWJsZT0iJGki
CisJdGVzdF9tb2R1bGUKK2RvbmUKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3Ry
aW5nL01ha2VmaWxlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc3Ry
aW5nL01ha2VmaWxlCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9z
dHJpbmcvTWFrZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0JdGVzdF9z
dHJpbmdfdHVuYWJsZQorU1JDUz0JdGVzdF9zdHJpbmdfdHVuYWJsZS5jCisKKy5pbmNsdWRlIDxi
c2Qua21vZC5taz4KSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc2l6ZS90ZXN0X3Np
emVfdHVuYWJsZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc2l6
ZS90ZXN0X3NpemVfdHVuYWJsZS5jCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90
dW5hYmxlcy9zaXplL3Rlc3Rfc2l6ZV90dW5hYmxlLmMJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MzEgQEAKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KKyNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KKyNp
bmNsdWRlIDxzeXMvcHJvYy5oPgorI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4KKyNpbmNsdWRlIDxz
eXMva2VybmVsLmg+CisjaW5jbHVkZSA8c3lzL3N5c3RtLmg+CisKKyNkZWZpbmUgTU9EVUxFX05B
TUUJInRlc3Rfc2l6ZV90dW5hYmxlIgorCitzdGF0aWMgc2l6ZV90IHR1bmFibGUgPSAwOworCitU
VU5BQkxFX1NJWkUoInRlc3Rfc2l6ZV90dW5hYmxlLnR1bmFibGUiLCAmdHVuYWJsZSk7CisKK3N0
YXRpYyBpbnQKK2xvYWQgKG1vZHVsZV90IG0sIGludCB3aGF0LCB2b2lkICphcmcpCit7CisJc3dp
dGNoICh3aGF0KSB7CisJY2FzZSBNT0RfTE9BRDoKKwkJcHJpbnRmKCIlczogJXp1XG4iLCBNT0RV
TEVfTkFNRSwgdHVuYWJsZSk7CisJCWJyZWFrOworCX0KKwlyZXR1cm4gKDApOworfQorCitzdGF0
aWMgbW9kdWxlZGF0YV90IHRlc3Rfc2l6ZV90dW5hYmxlX21vZCA9IHsKKwlNT0RVTEVfTkFNRSwK
Kwlsb2FkLAorfTsKK0RFQ0xBUkVfTU9EVUxFKHRlc3Rfc2l6ZV90dW5hYmxlLCB0ZXN0X3NpemVf
dHVuYWJsZV9tb2QsIFNJX1NVQl9LTEQsCisgICAgU0lfT1JERVJfQU5ZKTsKK01PRFVMRV9WRVJT
SU9OKHRlc3Rfc2l6ZV90dW5hYmxlLCAxKTsKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJs
ZXMvc2l6ZS90ZXN0X3NpemVfdHVuYWJsZS5zaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNz
aW9uL3R1bmFibGVzL3NpemUvdGVzdF9zaXplX3R1bmFibGUuc2gJKHJldmlzaW9uIDApCisrKyB0
b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3NpemUvdGVzdF9zaXplX3R1bmFibGUuc2gJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMzggQEAKKyMhL2Jpbi9zaAorIworIyBFeHBlY3RlZCB2YWx1ZXM6
CisjICh1bnNldCkgICAgOiAgICAgICAgICAgMAorIyAgICAgIC0xICAgIDogICBVTE9OR19NQVgK
KyMgICAgICAgMCAgICA6ICAgICAgICAgICAwCisjICAgICAgNDIgICAgOiAgICAgICAgICA0Mgor
IyBhc2RmMTIzNCAgIDogICAgICAgICAgIDAgKHJlamVjdCkKKyMgTE9OR19NQVgrMSA6ICBMT05H
X01BWCsxCisjIFVMT05HX01BWC0xOiBVTE9OR19NQVgtMQorIyBVTE9OR19NQVgrMTogICBVTE9O
R19NQVgKKyMKKworTU9ETkFNRT0iJChiYXNlbmFtZSAiJDAiIC5zaCkiCisKK3Rlc3RfbW9kdWxl
KCkgeworCWtsZGxvYWQgLi8kTU9ETkFNRS5rbworCWtsZHVubG9hZCAuLyRNT0ROQU1FLmtvCit9
CisKK2Nhc2UgIiQoJChkaXJuYW1lICIkMCIpLy4uL3Rvb2xzL2dldHdvcmRzaXplKSIgaW4KKzMy
KQorCUxPTkdfTUFYX1BMVVNfMT0yMTQ3NDgzNjQ5CisJVUxPTkdfTUFYX01JTlVTXzE9NDI5NDk2
NzI5NQorCVVMT05HX01BWF9QTFVTXzE9NDI5NDk2NzI5NworCTs7Cis2NCkKKwlMT05HX01BWF9Q
TFVTXzE9OTIyMzM3MjAzNjg1NDc3NTgwOAorCVVMT05HX01BWF9NSU5VU18xPTE4NDQ2NzQ0MDcz
NzA5NTUxNjE0CisJVUxPTkdfTUFYX1BMVVNfMT0xODQ0Njc0NDA3MzcwOTU1MTYxNgorCTs7Citl
c2FjCitrZW52IC11ICRNT0ROQU1FLnR1bmFibGUgMj4vZGV2L251bGwKK3Rlc3RfbW9kdWxlCitm
b3IgaSBpbiAtMSAwIDQyIGFzZGYxMjM0ICRMT05HX01BWF9QTFVTXzEgJFVMT05HX01BWF9NSU5V
U18xICRVTE9OR19NQVhfUExVU18xOyBkbworCWtlbnYgJE1PRE5BTUUudHVuYWJsZT0iJGkiCisJ
dGVzdF9tb2R1bGUKK2RvbmUKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvc2l6ZS9N
YWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3NpemUvTWFr
ZWZpbGUJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3NpemUvTWFr
ZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0JdGVzdF9zaXplX3R1bmFi
bGUKK1NSQ1M9CXRlc3Rfc2l6ZV90dW5hYmxlLmMKKworLmluY2x1ZGUgPGJzZC5rbW9kLm1rPgpJ
bmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9xdWFkL3Rlc3RfcXVhZF90dW5hYmxlLmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9xdWFkL3Rlc3RfcXVhZF90
dW5hYmxlLmMJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL3F1YWQv
dGVzdF9xdWFkX3R1bmFibGUuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBAQAorI2luY2x1
ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1ZGUgPHN5cy9w
cm9jLmg+CisjaW5jbHVkZSA8c3lzL21vZHVsZS5oPgorI2luY2x1ZGUgPHN5cy9rZXJuZWwuaD4K
KyNpbmNsdWRlIDxzeXMvc3lzdG0uaD4KKworI2RlZmluZSBNT0RVTEVfTkFNRQkidGVzdF9xdWFk
X3R1bmFibGUiCisKK3N0YXRpYyBxdWFkX3QgdHVuYWJsZSA9IDA7CisKK1RVTkFCTEVfUVVBRCgi
dGVzdF9xdWFkX3R1bmFibGUudHVuYWJsZSIsICZ0dW5hYmxlKTsKKworc3RhdGljIGludAorbG9h
ZCAobW9kdWxlX3QgbSwgaW50IHdoYXQsIHZvaWQgKmFyZykKK3sKKwlzd2l0Y2ggKHdoYXQpIHsK
KwljYXNlIE1PRF9MT0FEOgorCQlwcmludGYoIiVzOiAlbGRcbiIsIE1PRFVMRV9OQU1FLCB0dW5h
YmxlKTsKKwkJYnJlYWs7CisJfQorCXJldHVybiAoMCk7Cit9CisKK3N0YXRpYyBtb2R1bGVkYXRh
X3QgdGVzdF9xdWFkX3R1bmFibGVfbW9kID0geworCU1PRFVMRV9OQU1FLAorCWxvYWQsCit9Owor
REVDTEFSRV9NT0RVTEUodGVzdF9xdWFkX3R1bmFibGUsIHRlc3RfcXVhZF90dW5hYmxlX21vZCwg
U0lfU1VCX0tMRCwKKyAgICBTSV9PUkRFUl9BTlkpOworTU9EVUxFX1ZFUlNJT04odGVzdF9xdWFk
X3R1bmFibGUsIDEpOwpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9xdWFkL3Rlc3Rf
cXVhZF90dW5hYmxlLnNoCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMv
cXVhZC90ZXN0X3F1YWRfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Np
b24vdHVuYWJsZXMvcXVhZC90ZXN0X3F1YWRfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw0MCBAQAorIyEvYmluL3NoCisjCisjIEV4cGVjdGVkIHZhbHVlczoKKyMgKHVuc2V0KSAg
ICA6ICAgICAgICAgICAwCisjICAgICAgIDAgICAgOiAgICAgICAgICAgMAorIyAgICAgIDQyICAg
IDogICAgICAgICAgNDIKKyMgYXNkZjEyMzQgICA6ICAgICAgICAgICAwIChyZWplY3QpCisjIExP
TkdfTUlOLTEgOiAgTE9OR19NSU4KKyMgTE9OR19NSU4rMSA6ICBMT05HX01JTisxCisjIExPTkdf
TUFYLTEgOiAgTE9OR19NQVgtMQorIyBMT05HX01BWCsxIDogIExPTkdfTUFYCisjCisKK01PRE5B
TUU9IiQoYmFzZW5hbWUgIiQwIiAuc2gpIgorCit0ZXN0X21vZHVsZSgpIHsKKwlrbGRsb2FkIC4v
JE1PRE5BTUUua28KKwlrbGR1bmxvYWQgLi8kTU9ETkFNRS5rbworfQorCitjYXNlICIkKCQoZGly
bmFtZSAiJDAiKS8uLi90b29scy9nZXR3b3Jkc2l6ZSkiIGluCiszMikKKwlMT05HX01JTl9NSU5V
U18xPSItMjE0NzQ4MzY0OSIKKwlMT05HX01JTl9QTFVTXzE9Ii0yMTQ3NDgzNjQ3IgorCUxPTkdf
TUFYX01JTlVTXzE9MjE0NzQ4MzY0NworCUxPTkdfTUFYX1BMVVNfMT0yMTQ3NDgzNjQ5CisJOzsK
KzY0KQorCUxPTkdfTUlOX01JTlVTXzE9Ii05MjIzMzcyMDM2ODU0Nzc1ODA5IgorCUxPTkdfTUlO
X1BMVVNfMT0iLTkyMjMzNzIwMzY4NTQ3NzU4MDciCisJTE9OR19NQVhfTUlOVVNfMT05MjIzMzcy
MDM2ODU0Nzc1ODA2CisJTE9OR19NQVhfUExVU18xPTkyMjMzNzIwMzY4NTQ3NzU4MDgKKwk7Owor
ZXNhYwora2VudiAtdSAkTU9ETkFNRS50dW5hYmxlIDI+L2Rldi9udWxsCit0ZXN0X21vZHVsZQor
Zm9yIGkgaW4gMCA0MiBhc2RmMTIzNCAkTE9OR19NSU5fTUlOVVNfMSAkTE9OR19NSU5fUExVU18x
ICRMT05HX01BWF9NSU5VU18xICRMT05HX01BWF9QTFVTXzEgOyBkbworCWtlbnYgJE1PRE5BTUUu
dHVuYWJsZT0iJGkiCisJdGVzdF9tb2R1bGUKK2RvbmUKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24v
dHVuYWJsZXMvcXVhZC9NYWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1
bmFibGVzL3F1YWQvTWFrZWZpbGUJKHJldmlzaW9uIDApCisrKyB0b29scy9yZWdyZXNzaW9uL3R1
bmFibGVzL3F1YWQvTWFrZWZpbGUJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNCBAQAorS01PRD0J
dGVzdF9xdWFkX3R1bmFibGUKK1NSQ1M9CXRlc3RfcXVhZF90dW5hYmxlLmMKKworLmluY2x1ZGUg
PGJzZC5rbW9kLm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9pbnQvdGVzdF9p
bnRfdHVuYWJsZS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvaW50
L3Rlc3RfaW50X3R1bmFibGUuYwkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVu
YWJsZXMvaW50L3Rlc3RfaW50X3R1bmFibGUuYwkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzMSBA
QAorI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgorI2luY2x1ZGUgPHN5cy90eXBlcy5oPgorI2luY2x1
ZGUgPHN5cy9wcm9jLmg+CisjaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgorI2luY2x1ZGUgPHN5cy9z
eXN0bS5oPgorI2luY2x1ZGUgPHN5cy9tb2R1bGUuaD4KKworI2RlZmluZSBNT0RVTEVfTkFNRQki
dGVzdF9pbnRfdHVuYWJsZSIKKworc3RhdGljIGludCB0dW5hYmxlID0gMDsKKworVFVOQUJMRV9J
TlQoInRlc3RfaW50X3R1bmFibGUudHVuYWJsZSIsICZ0dW5hYmxlKTsKKworc3RhdGljIGludAor
bG9hZCAobW9kdWxlX3QgbSwgaW50IHdoYXQsIHZvaWQgKmFyZykKK3sKKwlzd2l0Y2ggKHdoYXQp
IHsKKwljYXNlIE1PRF9MT0FEOgorCQlwcmludGYoIiVzOiAlZFxuIiwgTU9EVUxFX05BTUUsIHR1
bmFibGUpOworCQlicmVhazsKKwl9CisJcmV0dXJuICgwKTsKK30KKworc3RhdGljIG1vZHVsZWRh
dGFfdCB0ZXN0X2ludF90dW5hYmxlX21vZCA9IHsKKwlNT0RVTEVfTkFNRSwKKwlsb2FkLAorfTsK
K0RFQ0xBUkVfTU9EVUxFKHRlc3RfaW50X3R1bmFibGUsIHRlc3RfaW50X3R1bmFibGVfbW9kLCBT
SV9TVUJfS0xELAorICAgIFNJX09SREVSX0FOWSk7CitNT0RVTEVfVkVSU0lPTih0ZXN0X2ludF90
dW5hYmxlLCAxKTsKSW5kZXg6IHRvb2xzL3JlZ3Jlc3Npb24vdHVuYWJsZXMvaW50L3Rlc3RfaW50
X3R1bmFibGUuc2gKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9pbnQv
dGVzdF9pbnRfdHVuYWJsZS5zaAkocmV2aXNpb24gMCkKKysrIHRvb2xzL3JlZ3Jlc3Npb24vdHVu
YWJsZXMvaW50L3Rlc3RfaW50X3R1bmFibGUuc2gJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzEg
QEAKKyMhL2Jpbi9zaAorIworIyBFeHBlY3RlZCB2YWx1ZXM6CisjICh1bnNldCkgICA6ICAgICAg
ICAgICAwCisjICAgICAgLTEgICA6ICAgICAgICAgIC0xCisjICAgICAgIDAgICA6ICAgICAgICAg
ICAwCisjICAgICAgNDIgICA6ICAgICAgICAgIDQyCisjIGFzZGYxMjM0ICA6ICAgICAgICAgICAw
IChyZWplY3QpCisjIElOVF9NSU4rMSA6ICAgSU5UX01JTisxCisjIElOVF9NSU4tMSA6ICAgICAg
ICAgICAwIChyZWplY3QpCisjIElOVF9NQVgtMSA6ICAgSU5UX01BWC0xCisjIElOVF9NQVgrMSA6
ICAgICAgICAgICAwIChyZWplY3QpCisjCisKK01PRE5BTUU9IiQoYmFzZW5hbWUgIiQwIiAuc2gp
IgorCit0ZXN0X21vZHVsZSgpIHsKKwlrbGRsb2FkIC4vJE1PRE5BTUUua28KKwlrbGR1bmxvYWQg
Li8kTU9ETkFNRS5rbworfQorCitJTlRfTUlOX1BMVVNfT05FPS0yMTQ3NDgzNjQ3CitJTlRfTUlO
X01JTlVTX09ORT0tMjE0NzQ4MzY0OQorSU5UX01BWF9NSU5VU19PTkU9MjE0NzQ4MzY0NgorSU5U
X01BWF9QTFVTX09ORT0yMTQ3NDgzNjQ4CitrZW52IC11ICRNT0ROQU1FLnR1bmFibGUgMj4vZGV2
L251bGwKK3Rlc3RfbW9kdWxlCitmb3IgaSBpbiAtMSAwIDQyIGFzZGYxMjM0ICRJTlRfTUlOX1BM
VVNfT05FICRJTlRfTUlOX01JTlVTX09ORSAkSU5UX01BWF9NSU5VU19PTkUgJElOVF9NQVhfUExV
U19PTkU7IGRvCisJa2VudiAkTU9ETkFNRS50dW5hYmxlPSIkaSIKKwl0ZXN0X21vZHVsZQorZG9u
ZQpJbmRleDogdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9pbnQvTWFrZWZpbGUKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9pbnQvTWFrZWZpbGUJKHJldmlzaW9uIDAp
CisrKyB0b29scy9yZWdyZXNzaW9uL3R1bmFibGVzL2ludC9NYWtlZmlsZQkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw0IEBACitLTU9EPQl0ZXN0X2ludF90dW5hYmxlCitTUkNTPQl0ZXN0X2ludF90
dW5hYmxlLmMKKworLmluY2x1ZGUgPGJzZC5rbW9kLm1rPgpJbmRleDogdG9vbHMvcmVncmVzc2lv
bi90dW5hYmxlcy9NYWtlZmlsZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0b29scy9yZWdyZXNzaW9uL3R1bmFi
bGVzL01ha2VmaWxlCShyZXZpc2lvbiAwKQorKysgdG9vbHMvcmVncmVzc2lvbi90dW5hYmxlcy9N
YWtlZmlsZQkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorU1VCRElSPQkJdG9vbHMJCVwK
KwkJaW50IHVpbnQJXAorCQlsb25nIHVsb25nCVwKKwkJcG9pbnRlcgkJXAorCQlxdWFkIHVxdWFk
CVwKKwkJc2l6ZQkJXAorCQlzdHJpbmcJCVwKKwkJc3VmZml4CQlcCisKKy5pbmNsdWRlIDxic2Qu
c3ViZGlyLm1rPgo=
--0016364c7f13b16b8304935533e3--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?AANLkTimEejt2Gd%2BQEiGWXXsJfpUUY8ayygkMP48PcYpj>