optimization/4297: Internal compiler error in change_address, at emit-rtl.c:1635

orsatti@istar.fr orsatti@istar.fr
Tue Sep 11 02:56:00 GMT 2001


>Number:         4297
>Category:       optimization
>Synopsis:       Internal compiler error in change_address, at emit-rtl.c:1635
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Sep 11 02:56:01 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     orsatti@istar.fr
>Release:        3.0.1
>Organization:
>Environment:
Solaris 2.7 optimisation flag -O
>Description:
Internal compiler error in change_address, at emit-rtl.c:1635
Impossible to compile with flag -O the attached file.
>How-To-Repeat:

>Fix:

>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="main.E"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="main.E"

IyAxICJtYWluLmMiCnN0YXRpYyBjaGFyIHJjc2lkW109IiRIZWFkZXI6IC9uZXQvaG9tZS9zcG90
M2QvY3Zzcm9vdC9TUE9UM0QvR1JBUEgvR19TRVRIL21haW4uYyx2IDEuNyAxOTk3LzExLzA2IDE2
OjE0OjQ0IHNwb3QzZCBFeHAgJCI7CiMgMzkgIm1haW4uYyIKIyAxICIvb3B0L2djYy0zLjAuMS9z
cGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAu
MS9pbmNsdWRlL3N0ZGlvLmgiIDEgMwojIDE0ICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29s
YXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N0
ZGlvLmgiIDMKIyAxICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2Nj
LWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N0ZGFyZy5oIiAxIDMKIyA0
MyAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMt
c3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zdGRhcmcuaCIgMwp0eXBlZGVmIF9fYnVpbHRp
bl92YV9saXN0IF9fZ251Y192YV9saXN0OwojIDE1ICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4t
c29sYXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRl
L3N0ZGlvLmgiIDIgMwojIDM0ICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9s
aWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N0ZGlvLmgiIDMK
I3ByYWdtYSBpZGVudCAiQCgjKXN0ZGlvLmgJMS42OQk5OC8wNy8xMyBTTUkiCgojIDEgIi91c3Iv
aW5jbHVkZS9zeXMvZmVhdHVyZV90ZXN0cy5oIiAxIDMKIyAxMyAiL3Vzci9pbmNsdWRlL3N5cy9m
ZWF0dXJlX3Rlc3RzLmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKWZlYXR1cmVfdGVzdHMuaAkxLjE3
CTk3LzEyLzA0IFNNSSIKCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9pc2FfZGVmcy5oIiAxIDMKIyA5
ICIvdXNyL2luY2x1ZGUvc3lzL2lzYV9kZWZzLmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKWlzYV9k
ZWZzLmgJMS4xNQk5Ny8xMS8yMiBTTUkiCiMgMTYgIi91c3IvaW5jbHVkZS9zeXMvZmVhdHVyZV90
ZXN0cy5oIiAyIDMKIyAzNyAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGli
L2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zdGRpby5oIiAyIDMK
IyAxICIvdXNyL2luY2x1ZGUvc3lzL3ZhX2xpc3QuaCIgMSAzCiMgOSAiL3Vzci9pbmNsdWRlL3N5
cy92YV9saXN0LmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKXZhX2xpc3QuaAkxLjExCTk3LzExLzIy
IFNNSSIKIyAyNiAiL3Vzci9pbmNsdWRlL3N5cy92YV9saXN0LmgiIDMKdHlwZWRlZiB2b2lkICpf
X3ZhX2xpc3Q7CiMgMzggIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9n
Y2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1ZGUvc3RkaW8uaCIgMiAzCiMg
MSAiL3Vzci9pbmNsdWRlL3N0ZGlvX3RhZy5oIiAxIDMKIyA5ICIvdXNyL2luY2x1ZGUvc3RkaW9f
dGFnLmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKXN0ZGlvX3RhZy5oCTEuMwk5OC8wNC8yMCBTTUki
CiMgMjEgIi91c3IvaW5jbHVkZS9zdGRpb190YWcuaCIgMwp0eXBlZGVmIHN0cnVjdCBfX0ZJTEUg
X19GSUxFOwojIDM5ICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2Nj
LWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N0ZGlvLmgiIDIgMwojIDEg
Ii91c3IvaW5jbHVkZS9zdGRpb19pbXBsLmgiIDEgMwojIDkgIi91c3IvaW5jbHVkZS9zdGRpb19p
bXBsLmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKXN0ZGlvX2ltcGwuaAkxLjcJOTgvMDQvMTcgU01J
IgoKIyAxICIvdXNyL2luY2x1ZGUvc3lzL2lzYV9kZWZzLmgiIDEgMwojIDEyICIvdXNyL2luY2x1
ZGUvc3RkaW9faW1wbC5oIiAyIDMKIyAyMiAiL3Vzci9pbmNsdWRlL3N0ZGlvX2ltcGwuaCIgMwp0
eXBlZGVmIGludCBzc2l6ZV90OwojIDM4ICIvdXNyL2luY2x1ZGUvc3RkaW9faW1wbC5oIiAzCnN0
cnVjdCBfX0ZJTEUKewoKCgoKICAgICAgICBzc2l6ZV90IF9jbnQ7CiAgICAgICAgdW5zaWduZWQg
Y2hhciAqX3B0cjsKCiAgICAgICAgdW5zaWduZWQgY2hhciAqX2Jhc2U7CiAgICAgICAgdW5zaWdu
ZWQgY2hhciBfZmxhZzsKICAgICAgICB1bnNpZ25lZCBjaGFyIF9maWxlOwogICAgICAgIHVuc2ln
bmVkIF9fb3JpZW50YXRpb246MjsKICAgICAgICB1bnNpZ25lZCBfX2ZpbGxlcjo2Owp9OwojIDQw
ICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1z
dW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N0ZGlvLmgiIDIgMwojIDU1ICIvb3B0L2djYy0z
LjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIu
Ny8zLjAuMS9pbmNsdWRlL3N0ZGlvLmgiIDMKdHlwZWRlZiBfX0ZJTEUgRklMRTsKCgoKCgoKCnR5
cGVkZWYgdW5zaWduZWQgaW50IHNpemVfdDsKIyA3NCAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3Vu
LXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVk
ZS9zdGRpby5oIiAzCnR5cGVkZWYgbG9uZyBsb25nIF9fbG9uZ2xvbmdfdDsKIyA5MCAiL29wdC9n
Y2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFy
aXMyLjcvMy4wLjEvaW5jbHVkZS9zdGRpby5oIiAzCnR5cGVkZWYgX19sb25nbG9uZ190IG9mZl90
OwoKCgoKCnR5cGVkZWYgX19sb25nbG9uZ190IG9mZjY0X3Q7CiMgMTA1ICIvb3B0L2djYy0zLjAu
MS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8z
LjAuMS9pbmNsdWRlL3N0ZGlvLmgiIDMKdHlwZWRlZiBfX2xvbmdsb25nX3QgZnBvc190OwoKCgoK
CnR5cGVkZWYgX19sb25nbG9uZ190IGZwb3M2NF90OwojIDIwMyAiL29wdC9nY2MtMy4wLjEvc3Bh
cmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEv
aW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBGSUxFIF9faW9iWzIwXTsKIyAyMTUgIi9vcHQvZ2Nj
LTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlz
Mi43LzMuMC4xL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gdW5zaWduZWQgY2hhciBfc2lidWZb
XSwgX3NvYnVmW107CiMgMjQ0ICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9s
aWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N0ZGlvLmgiIDMK
ZXh0ZXJuIHVuc2lnbmVkIGNoYXIgKl9idWZlbmR0YWJbXTsKZXh0ZXJuIEZJTEUgKl9sYXN0YnVm
OwojIDI3NSAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIv
c3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBpbnQg
cmVtb3ZlKGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgcmVuYW1lKGNvbnN0IGNoYXIgKiwgY29u
c3QgY2hhciAqKTsKZXh0ZXJuIEZJTEUgKnRtcGZpbGU2NCh2b2lkKTsKZXh0ZXJuIGNoYXIgKnRt
cG5hbShjaGFyICopOwoKCgpleHRlcm4gaW50IGZjbG9zZShGSUxFICopOwpleHRlcm4gaW50IGZm
bHVzaChGSUxFICopOwpleHRlcm4gRklMRSAqZm9wZW42NChjb25zdCBjaGFyICosIGNvbnN0IGNo
YXIgKik7CmV4dGVybiBGSUxFICpmcmVvcGVuNjQoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICos
IEZJTEUgKik7CmV4dGVybiB2b2lkIHNldGJ1ZihGSUxFICosIGNoYXIgKik7CgoKZXh0ZXJuIHZv
aWQgc2V0YnVmZmVyKEZJTEUgKiwgY2hhciAqLCBzaXplX3QpOwpleHRlcm4gaW50IHNldGxpbmVi
dWYoRklMRSAqKTsKCmV4dGVybiBpbnQgc2V0dmJ1ZihGSUxFICosIGNoYXIgKiwgaW50LCBzaXpl
X3QpOwoKZXh0ZXJuIGludCBmcHJpbnRmKEZJTEUgKiwgY29uc3QgY2hhciAqLCAuLi4pOwoKZXh0
ZXJuIGludCBmc2NhbmYoRklMRSAqLCBjb25zdCBjaGFyICosIC4uLik7CgpleHRlcm4gaW50IHBy
aW50Zihjb25zdCBjaGFyICosIC4uLik7CgpleHRlcm4gaW50IHNjYW5mKGNvbnN0IGNoYXIgKiwg
Li4uKTsKCgoKCmV4dGVybiBpbnQgc25wcmludGYoY2hhciAqLCBzaXplX3QsIGNvbnN0IGNoYXIg
KiwgLi4uKTsKCgpleHRlcm4gaW50IHNwcmludGYoY2hhciAqLCBjb25zdCBjaGFyICosIC4uLik7
CgpleHRlcm4gaW50IHNzY2FuZihjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4uKTsKZXh0
ZXJuIGludCB2ZnByaW50ZihGSUxFICosIGNvbnN0IGNoYXIgKiwgX19nbnVjX3ZhX2xpc3QpOwpl
eHRlcm4gaW50IHZwcmludGYoY29uc3QgY2hhciAqLCBfX2dudWNfdmFfbGlzdCk7CgoKCmV4dGVy
biBpbnQgdnNucHJpbnRmKGNoYXIgKiwgc2l6ZV90LCBjb25zdCBjaGFyICosIF9fZ251Y192YV9s
aXN0KTsKCmV4dGVybiBpbnQgdnNwcmludGYoY2hhciAqLCBjb25zdCBjaGFyICosIF9fZ251Y192
YV9saXN0KTsKZXh0ZXJuIGludCBmZ2V0YyhGSUxFICopOwpleHRlcm4gY2hhciAqZmdldHMoY2hh
ciAqLCBpbnQsIEZJTEUgKik7CmV4dGVybiBpbnQgZnB1dGMoaW50LCBGSUxFICopOwpleHRlcm4g
aW50IGZwdXRzKGNvbnN0IGNoYXIgKiwgRklMRSAqKTsKZXh0ZXJuIGludCBnZXRjKEZJTEUgKik7
CmV4dGVybiBpbnQgZ2V0Y2hhcih2b2lkKTsKZXh0ZXJuIGNoYXIgKmdldHMoY2hhciAqKTsKZXh0
ZXJuIGludCBwdXRjKGludCwgRklMRSAqKTsKZXh0ZXJuIGludCBwdXRjaGFyKGludCk7CmV4dGVy
biBpbnQgcHV0cyhjb25zdCBjaGFyICopOwpleHRlcm4gaW50IHVuZ2V0YyhpbnQsIEZJTEUgKik7
CmV4dGVybiBzaXplX3QgZnJlYWQodm9pZCAqLCBzaXplX3QsIHNpemVfdCwgRklMRSAqKTsKZXh0
ZXJuIHNpemVfdCBmd3JpdGUoY29uc3Qgdm9pZCAqLCBzaXplX3QsIHNpemVfdCwgRklMRSAqKTsK
ZXh0ZXJuIGludCBmZ2V0cG9zNjQoRklMRSAqLCBmcG9zX3QgKik7CmV4dGVybiBpbnQgZnNlZWso
RklMRSAqLCBsb25nLCBpbnQpOwpleHRlcm4gaW50IGZzZXRwb3M2NChGSUxFICosIGNvbnN0IGZw
b3NfdCAqKTsKZXh0ZXJuIGxvbmcgZnRlbGwoRklMRSAqKTsKZXh0ZXJuIHZvaWQgcmV3aW5kKEZJ
TEUgKik7CmV4dGVybiB2b2lkIGNsZWFyZXJyKEZJTEUgKik7CmV4dGVybiBpbnQgZmVvZihGSUxF
ICopOwpleHRlcm4gaW50IGZlcnJvcihGSUxFICopOwpleHRlcm4gdm9pZCBwZXJyb3IoY29uc3Qg
Y2hhciAqKTsKCgpleHRlcm4gaW50IF9fZmlsYnVmKEZJTEUgKik7CmV4dGVybiBpbnQgX19mbHNi
dWYoaW50LCBGSUxFICopOwojIDM1MyAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMy
LjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zdGRpby5o
IiAzCmV4dGVybiBGSUxFICpmZG9wZW4oaW50LCBjb25zdCBjaGFyICopOwpleHRlcm4gY2hhciAq
Y3Rlcm1pZChjaGFyICopOwpleHRlcm4gaW50IGZpbGVubyhGSUxFICopOwojIDM3OSAiL29wdC9n
Y2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFy
aXMyLjcvMy4wLjEvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBGSUxFICpwb3Blbihjb25zdCBj
aGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBjaGFyICpjdXNlcmlkKGNoYXIgKik7CmV4dGVy
biBjaGFyICp0ZW1wbmFtKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIGludCBn
ZXRvcHQoaW50LCBjaGFyICpjb25zdCAqLCBjb25zdCBjaGFyICopOwoKZXh0ZXJuIGludCBnZXRz
dWJvcHQoY2hhciAqKiwgY2hhciAqY29uc3QgKiwgY2hhciAqKik7CgpleHRlcm4gY2hhciAqb3B0
YXJnOwpleHRlcm4gaW50IG9wdGluZCwgb3B0ZXJyLCBvcHRvcHQ7CmV4dGVybiBpbnQgZ2V0dyhG
SUxFICopOwpleHRlcm4gaW50IHB1dHcoaW50LCBGSUxFICopOwpleHRlcm4gaW50IHBjbG9zZShG
SUxFICopOwoKCgoKCgoKZXh0ZXJuIGludCBmc2Vla282NChGSUxFICosIG9mZl90LCBpbnQpOwpl
eHRlcm4gb2ZmX3QgZnRlbGxvNjQoRklMRSAqKTsKIyA0MCAibWFpbi5jIiAyCiMgMSAiL3Vzci9p
bmNsdWRlL21hbGxvYy5oIiAxIDMKIyAxMSAiL3Vzci9pbmNsdWRlL21hbGxvYy5oIiAzCiNwcmFn
bWEgaWRlbnQgIkAoIyltYWxsb2MuaAkxLjExCTk3LzA4LzIzIFNNSSIKCiMgMSAiL29wdC9nY2Mt
My4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMy
LjcvMy4wLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMSAzCiMgMjUgIi9vcHQvZ2NjLTMuMC4xL3Nw
YXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4x
L2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKXR5cGVzLmgJMS42Mwk5
OC8wNC8yOCBTTUkiCgojIDEgIi91c3IvaW5jbHVkZS9zeXMvaXNhX2RlZnMuaCIgMSAzCiMgMjgg
Ii9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1
bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMwojIDEgIi91c3IvaW5j
bHVkZS9zeXMvZmVhdHVyZV90ZXN0cy5oIiAxIDMKIyAyOSAiL29wdC9nY2MtMy4wLjEvc3BhcmMt
c3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5j
bHVkZS9zeXMvdHlwZXMuaCIgMiAzCgoKCgojIDEgIi91c3IvaW5jbHVkZS9zeXMvbWFjaHR5cGVz
LmgiIDEgMwojIDE2ICIvdXNyL2luY2x1ZGUvc3lzL21hY2h0eXBlcy5oIiAzCiNwcmFnbWEgaWRl
bnQgIkAoIyltYWNodHlwZXMuaAkxLjEyCTk2LzA4LzAxIFNNSSIKCiMgMSAiL3Vzci9pbmNsdWRl
L3N5cy9mZWF0dXJlX3Rlc3RzLmgiIDEgMwojIDE5ICIvdXNyL2luY2x1ZGUvc3lzL21hY2h0eXBl
cy5oIiAyIDMKIyAzMyAiL3Vzci9pbmNsdWRlL3N5cy9tYWNodHlwZXMuaCIgMwp0eXBlZGVmIHN0
cnVjdCBfcGh5c2Fkcl90IHsgaW50IHJbMV07IH0gKnBoeXNhZHJfdDsKCnR5cGVkZWYgc3RydWN0
IF9sYWJlbF90IHsgbG9uZyB2YWxbMl07IH0gbGFiZWxfdDsKCgoKdHlwZWRlZiB1bnNpZ25lZCBj
aGFyIGxvY2tfdDsKIyAzNCAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGli
L2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIg
MiAzCiMgNDUgIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGli
L3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMKIyAxICIv
dXNyL2luY2x1ZGUvc3lzL2ludF90eXBlcy5oIiAxIDMKIyA5ICIvdXNyL2luY2x1ZGUvc3lzL2lu
dF90eXBlcy5oIiAzCiNwcmFnbWEgaWRlbnQgIkAoIylpbnRfdHlwZXMuaAkxLjYJOTcvMDgvMjAg
U01JIgojIDQyICIvdXNyL2luY2x1ZGUvc3lzL2ludF90eXBlcy5oIiAzCiMgMSAiL3Vzci9pbmNs
dWRlL3N5cy9pc2FfZGVmcy5oIiAxIDMKIyA0MyAiL3Vzci9pbmNsdWRlL3N5cy9pbnRfdHlwZXMu
aCIgMiAzCiMgNjIgIi91c3IvaW5jbHVkZS9zeXMvaW50X3R5cGVzLmgiIDMKdHlwZWRlZiBjaGFy
IGludDhfdDsKCgoKCgp0eXBlZGVmIHNob3J0IGludDE2X3Q7CnR5cGVkZWYgaW50IGludDMyX3Q7
CgoKCgp0eXBlZGVmIGxvbmcgbG9uZyBpbnQ2NF90OwoKCgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIg
dWludDhfdDsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1aW50MTZfdDsKdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgdWludDMyX3Q7CgoKCgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyB1aW50NjRfdDsK
IyA5NCAiL3Vzci9pbmNsdWRlL3N5cy9pbnRfdHlwZXMuaCIgMwp0eXBlZGVmIGludDY0X3QgaW50
bWF4X3Q7CnR5cGVkZWYgdWludDY0X3QgdWludG1heF90OwojIDExMCAiL3Vzci9pbmNsdWRlL3N5
cy9pbnRfdHlwZXMuaCIgMwp0eXBlZGVmIGludCBpbnRwdHJfdDsKdHlwZWRlZiB1bnNpZ25lZCBp
bnQgdWludHB0cl90OwoKCgoKCgoKdHlwZWRlZiBjaGFyIGludF9sZWFzdDhfdDsKCgoKCgp0eXBl
ZGVmIHNob3J0IGludF9sZWFzdDE2X3Q7CnR5cGVkZWYgaW50IGludF9sZWFzdDMyX3Q7CgoKCgp0
eXBlZGVmIGxvbmcgbG9uZyBpbnRfbGVhc3Q2NF90OwoKCgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIg
dWludF9sZWFzdDhfdDsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCB1aW50X2xlYXN0MTZfdDsKdHlw
ZWRlZiB1bnNpZ25lZCBpbnQgdWludF9sZWFzdDMyX3Q7CgoKCgp0eXBlZGVmIHVuc2lnbmVkIGxv
bmcgbG9uZyB1aW50X2xlYXN0NjRfdDsKIyA0NiAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNv
bGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9z
eXMvdHlwZXMuaCIgMiAzCiMgNjIgIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43
L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1ZGUvc3lzL3R5cGVz
LmgiIDMKdHlwZWRlZiBsb25nIGxvbmcgbG9uZ2xvbmdfdDsKdHlwZWRlZiB1bnNpZ25lZCBsb25n
IGxvbmcgdV9sb25nbG9uZ190OwojIDg1ICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJp
czIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N5cy90
eXBlcy5oIiAzCnR5cGVkZWYgbG9uZyB0X3NjYWxhcl90Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcg
dF91c2NhbGFyX3Q7CgoKCgoKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHVjaGFyX3Q7CnR5cGVkZWYg
dW5zaWduZWQgc2hvcnQgdXNob3J0X3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVpbnRfdDsKdHlw
ZWRlZiB1bnNpZ25lZCBsb25nIHVsb25nX3Q7Cgp0eXBlZGVmIGNoYXIgKmNhZGRyX3Q7CnR5cGVk
ZWYgbG9uZyBkYWRkcl90Owp0eXBlZGVmIHNob3J0IGNudF90OwoKCnR5cGVkZWYgdWxvbmdfdCBw
YWRkcl90OwojIDExNiAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2dj
Yy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMwp0
eXBlZGVmIGludCBwdHJkaWZmX3Q7CiMgMTI1ICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29s
YXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N5
cy90eXBlcy5oIiAzCnR5cGVkZWYgdWxvbmdfdCBwZm5fdDsKdHlwZWRlZiB1bG9uZ190IHBnY250
X3Q7CnR5cGVkZWYgbG9uZyBzcGdjbnRfdDsKCnR5cGVkZWYgdWNoYXJfdCB1c2VfdDsKdHlwZWRl
ZiBzaG9ydCBzeXNpZF90Owp0eXBlZGVmIHNob3J0IGluZGV4X3Q7CnR5cGVkZWYgdm9pZCAqdGlt
ZW91dF9pZF90Owp0eXBlZGVmIHZvaWQgKmJ1ZmNhbGxfaWRfdDsKIyAxNjggIi9vcHQvZ2NjLTMu
MC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43
LzMuMC4xL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMKdHlwZWRlZiB1X2xvbmdsb25nX3QgaW5vX3Q7
CnR5cGVkZWYgbG9uZ2xvbmdfdCBibGtjbnRfdDsKdHlwZWRlZiB1X2xvbmdsb25nX3QgZnNibGtj
bnRfdDsKdHlwZWRlZiB1X2xvbmdsb25nX3QgZnNmaWxjbnRfdDsKIyAxODEgIi9vcHQvZ2NjLTMu
MC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43
LzMuMC4xL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMKdHlwZWRlZiB1X2xvbmdsb25nX3QgaW5vNjRf
dDsKdHlwZWRlZiBsb25nbG9uZ190IGJsa2NudDY0X3Q7CnR5cGVkZWYgdV9sb25nbG9uZ190IGZz
YmxrY250NjRfdDsKdHlwZWRlZiB1X2xvbmdsb25nX3QgZnNmaWxjbnQ2NF90OwoKCgoKCgp0eXBl
ZGVmIGxvbmcgYmxrc2l6ZV90OwoKCgoKCnR5cGVkZWYgZW51bSB7IEJfRkFMU0UsIEJfVFJVRSB9
IGJvb2xlYW5fdDsKIyAyMDggIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xp
Yi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1ZGUvc3lzL3R5cGVzLmgi
IDMKdHlwZWRlZiBpbnQ2NF90IHBhZDY0X3Q7CnR5cGVkZWYgdWludDY0X3QgdXBhZDY0X3Q7CiMg
MjIxICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2NjLWxpYi9zcGFy
Yy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N5cy90eXBlcy5oIiAzCnR5cGVkZWYgbG9u
Z2xvbmdfdCBvZmZzZXRfdDsKdHlwZWRlZiB1X2xvbmdsb25nX3QgdV9vZmZzZXRfdDsKdHlwZWRl
ZiB1X2xvbmdsb25nX3QgbGVuX3Q7CnR5cGVkZWYgbG9uZ2xvbmdfdCBkaXNrYWRkcl90OwojIDI0
MiAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMt
c3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMwp0eXBlZGVmIHVuaW9u
IHsKICAgICAgICBvZmZzZXRfdCBfZjsKICAgICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAg
aW50MzJfdCBfdTsKICAgICAgICAgICAgICAgIGludDMyX3QgX2w7CiAgICAgICAgfSBfcDsKfSBs
bG9mZl90OwojIDI2MiAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2dj
Yy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMwp0
eXBlZGVmIHVuaW9uIHsKICAgICAgICBkaXNrYWRkcl90IF9mOwogICAgICAgIHN0cnVjdCB7CiAg
ICAgICAgICAgICAgICBpbnQzMl90IF91OwogICAgICAgICAgICAgICAgaW50MzJfdCBfbDsKICAg
ICAgICB9IF9wOwp9IGxsZGFkZHJfdDsKCgp0eXBlZGVmIHVpbnRfdCBrX2ZsdHNldF90OwojIDI4
NyAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMt
c3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMwp0eXBlZGVmIGxvbmcg
aWRfdDsKCgoKCgoKdHlwZWRlZiB1aW50X3QgdXNlY29uZHNfdDsKCgoKdHlwZWRlZiBsb25nIHN1
c2Vjb25kc190OwojIDMwOCAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGli
L2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIg
Mwp0eXBlZGVmIHVsb25nX3QgbWFqb3JfdDsKdHlwZWRlZiB1bG9uZ190IG1pbm9yX3Q7CgoKCgoK
dHlwZWRlZiBzaG9ydCBwcmlfdDsKIyAzMjggIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xh
cmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1ZGUvc3lz
L3R5cGVzLmgiIDMKdHlwZWRlZiB1c2hvcnRfdCBvX21vZGVfdDsKdHlwZWRlZiBzaG9ydCBvX2Rl
dl90Owp0eXBlZGVmIHVzaG9ydF90IG9fdWlkX3Q7CnR5cGVkZWYgb191aWRfdCBvX2dpZF90Owp0
eXBlZGVmIHNob3J0IG9fbmxpbmtfdDsKdHlwZWRlZiBzaG9ydCBvX3BpZF90Owp0eXBlZGVmIHVz
aG9ydF90IG9faW5vX3Q7CgoKCgoKdHlwZWRlZiBpbnQga2V5X3Q7CgoKCnR5cGVkZWYgdWxvbmdf
dCBtb2RlX3Q7CgoKCgoKCgp0eXBlZGVmIGxvbmcgdWlkX3Q7CgoKCnR5cGVkZWYgdWlkX3QgZ2lk
X3Q7CgoKCgoKCnR5cGVkZWYgdW5zaWduZWQgaW50IHB0aHJlYWRfdDsKdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgcHRocmVhZF9rZXlfdDsKCnR5cGVkZWYgc3RydWN0IF9wdGhyZWFkX211dGV4IHsKICAg
ICAgICBzdHJ1Y3QgewogICAgICAgICAgICAgICAgdWludDhfdCBfX3B0aHJlYWRfbXV0ZXhfZmxh
Z1s0XTsKICAgICAgICAgICAgICAgIHVpbnQzMl90IF9fcHRocmVhZF9tdXRleF90eXBlOwogICAg
ICAgIH0gX19wdGhyZWFkX211dGV4X2ZsYWdzOwogICAgICAgIHVuaW9uIHsKICAgICAgICAgICAg
ICAgIHN0cnVjdCB7CiAgICAgICAgICAgICAgICAgICAgICAgIHVpbnQ4X3QgX19wdGhyZWFkX211
dGV4X3BhZFs4XTsKICAgICAgICAgICAgICAgIH0gX19wdGhyZWFkX211dGV4X2xvY2s2NDsKICAg
ICAgICAgICAgICAgIHVwYWQ2NF90IF9fcHRocmVhZF9tdXRleF9vd25lcjY0OwogICAgICAgIH0g
X19wdGhyZWFkX211dGV4X2xvY2s7CiAgICAgICAgdXBhZDY0X3QgX19wdGhyZWFkX211dGV4X2Rh
dGE7Cn0gcHRocmVhZF9tdXRleF90OwoKdHlwZWRlZiBzdHJ1Y3QgX3B0aHJlYWRfY29uZCB7CiAg
ICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgIHVpbnQ4X3QgX19wdGhyZWFkX2NvbmRfZmxh
Z1s0XTsKICAgICAgICAgICAgICAgIHVpbnQzMl90IF9fcHRocmVhZF9jb25kX3R5cGU7CiAgICAg
ICAgfSBfX3B0aHJlYWRfY29uZF9mbGFnczsKICAgICAgICB1cGFkNjRfdCBfX3B0aHJlYWRfY29u
ZF9kYXRhOwp9IHB0aHJlYWRfY29uZF90OwoKCgoKdHlwZWRlZiBzdHJ1Y3QgX3B0aHJlYWRfcnds
b2NrIHsKICAgICAgICBpbnQzMl90IF9fcHRocmVhZF9yd2xvY2tfcmVhZGVyczsKICAgICAgICB1
aW50MTZfdCBfX3B0aHJlYWRfcndsb2NrX3R5cGU7CiAgICAgICAgdWludDE2X3QgX19wdGhyZWFk
X3J3bG9ja19tYWdpYzsKICAgICAgICB1cGFkNjRfdCBfX3B0aHJlYWRfcndsb2NrX3BhZDFbM107
CiAgICAgICAgdXBhZDY0X3QgX19wdGhyZWFkX3J3bG9ja19wYWQyWzJdOwogICAgICAgIHVwYWQ2
NF90IF9fcHRocmVhZF9yd2xvY2tfcGFkM1syXTsKfSBwdGhyZWFkX3J3bG9ja190OwoKCgoKdHlw
ZWRlZiBzdHJ1Y3QgX3B0aHJlYWRfYXR0ciB7CiAgICAgICAgdm9pZCAqX19wdGhyZWFkX2F0dHJw
Owp9IHB0aHJlYWRfYXR0cl90OwoKCgoKCnR5cGVkZWYgc3RydWN0IF9wdGhyZWFkX211dGV4YXR0
ciB7CiAgICAgICAgdm9pZCAqX19wdGhyZWFkX211dGV4YXR0cnA7Cn0gcHRocmVhZF9tdXRleGF0
dHJfdDsKCgoKCgp0eXBlZGVmIHN0cnVjdCBfcHRocmVhZF9jb25kYXR0ciB7CiAgICAgICAgdm9p
ZCAqX19wdGhyZWFkX2NvbmRhdHRycDsKfSBwdGhyZWFkX2NvbmRhdHRyX3Q7CgoKCgp0eXBlZGVm
IHN0cnVjdCBfb25jZSB7CiAgICAgICAgdXBhZDY0X3QgX19wdGhyZWFkX29uY2VfcGFkWzRdOwp9
IHB0aHJlYWRfb25jZV90OwoKCgoKCnR5cGVkZWYgc3RydWN0IF9wdGhyZWFkX3J3bG9ja2F0dHIg
ewogICAgICAgIHZvaWQgKl9fcHRocmVhZF9yd2xvY2thdHRycDsKfSBwdGhyZWFkX3J3bG9ja2F0
dHJfdDsKCnR5cGVkZWYgdWxvbmdfdCBkZXZfdDsKCgoKCgp0eXBlZGVmIHVsb25nX3Qgbmxpbmtf
dDsKdHlwZWRlZiBsb25nIHBpZF90OwojIDQ3NiAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNv
bGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9z
eXMvdHlwZXMuaCIgMwp0eXBlZGVmIGxvbmcgdGltZV90OwoKCgoKdHlwZWRlZiBsb25nIGNsb2Nr
X3Q7CgoKCgp0eXBlZGVmIGludCBjbG9ja2lkX3Q7CgoKCgp0eXBlZGVmIGludCB0aW1lcl90OwoK
CgoKCgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgdW5jaGFyOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0
IHVzaG9ydDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdWludDsKdHlwZWRlZiB1bnNpZ25lZCBsb25n
IHVsb25nOwojIDU1MiAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2dj
Yy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zeXMvdHlwZXMuaCIgMwp0
eXBlZGVmIHVuc2lnbmVkIGNoYXIgdV9jaGFyOwp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IHVfc2hv
cnQ7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVfaW50Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgdV9s
b25nOwp0eXBlZGVmIHN0cnVjdCBfcXVhZCB7IGludCB2YWxbMl07IH0gcXVhZF90Owp0eXBlZGVm
IHF1YWRfdCBxdWFkOwoKCgoKCgojIDEgIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0LmgiIDEgMwoj
IDEyICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzCiNwcmFnbWEgaWRlbnQgIkAoIylzZWxl
Y3QuaAkxLjE2CTk4LzA0LzI3IFNNSSIKCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9mZWF0dXJlX3Rl
c3RzLmgiIDEgMwojIDE1ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAyIDMKCgojIDEgIi91
c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAxIDMKIyAyMiAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgi
IDMKI3ByYWdtYSBpZGVudCAiQCgjKXRpbWUuaAkyLjYyCTk4LzAyLzA0IFNNSSIKCiMgMSAiL3Vz
ci9pbmNsdWRlL3N5cy9mZWF0dXJlX3Rlc3RzLmgiIDEgMwojIDI1ICIvdXNyL2luY2x1ZGUvc3lz
L3RpbWUuaCIgMiAzCiMgNDkgIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAzCnN0cnVjdCB0aW1l
dmFsIHsKICAgICAgICB0aW1lX3QgdHZfc2VjOwogICAgICAgIHN1c2Vjb25kc190IHR2X3VzZWM7
Cn07CiMgODIgIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAzCnN0cnVjdCB0aW1lem9uZSB7CiAg
ICAgICAgaW50IHR6X21pbnV0ZXN3ZXN0OwogICAgICAgIGludCB0el9kc3R0aW1lOwp9OwojIDEw
MCAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMKIyAxICIvb3B0L2djYy0zLjAuMS9zcGFyYy1z
dW4tc29sYXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNs
dWRlL3N5cy90eXBlcy5oIiAxIDMKIyAxMDEgIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAyIDMK
IyAxNTUgIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAzCnN0cnVjdCBpdGltZXJ2YWwgewogICAg
ICAgIHN0cnVjdCB0aW1ldmFsIGl0X2ludGVydmFsOwogICAgICAgIHN0cnVjdCB0aW1ldmFsIGl0
X3ZhbHVlOwp9OwojIDIwMyAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMKdHlwZWRlZiBsb25n
bG9uZ190IGhydGltZV90OwojIDMxNSAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMKaW50IGFk
anRpbWUoc3RydWN0IHRpbWV2YWwgKiwgc3RydWN0IHRpbWV2YWwgKik7CiMgMzI2ICIvdXNyL2lu
Y2x1ZGUvc3lzL3RpbWUuaCIgMwppbnQgZ2V0aXRpbWVyKGludCwgc3RydWN0IGl0aW1lcnZhbCAq
KTsKaW50IHV0aW1lcyhjb25zdCBjaGFyICosIGNvbnN0IHN0cnVjdCB0aW1ldmFsICopOwoKCgpp
bnQgc2V0aXRpbWVyKGludCwgc3RydWN0IGl0aW1lcnZhbCAqLCBzdHJ1Y3QgaXRpbWVydmFsICop
OwojIDM2NCAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMKaW50IHNldHRpbWVvZmRheShzdHJ1
Y3QgdGltZXZhbCAqLCB2b2lkICopOwoKaHJ0aW1lX3QgZ2V0aHJ0aW1lKHZvaWQpOwpocnRpbWVf
dCBnZXRocnZ0aW1lKHZvaWQpOwojIDM4NCAiL3Vzci9pbmNsdWRlL3N5cy90aW1lLmgiIDMKaW50
IGdldHRpbWVvZmRheShzdHJ1Y3QgdGltZXZhbCAqLCB2b2lkICopOwojIDQwNSAiL3Vzci9pbmNs
dWRlL3N5cy90aW1lLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAxIDMKIyAxNiAiL3Vz
ci9pbmNsdWRlL3RpbWUuaCIgMwojcHJhZ21hIGlkZW50ICJAKCMpdGltZS5oCTEuMzYJOTgvMDMv
MjcgU01JIgoKIyAxICIvdXNyL2luY2x1ZGUvc3lzL2ZlYXR1cmVfdGVzdHMuaCIgMSAzCiMgMTkg
Ii91c3IvaW5jbHVkZS90aW1lLmgiIDIgMwojIDEgIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1bi1z
b2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1ZGUv
c3lzL3R5cGVzLmgiIDEgMwojIDIwICIvdXNyL2luY2x1ZGUvdGltZS5oIiAyIDMKIyA2NCAiL3Vz
ci9pbmNsdWRlL3RpbWUuaCIgMwpzdHJ1Y3QgdG0gewogICAgICAgIGludCB0bV9zZWM7CiAgICAg
ICAgaW50IHRtX21pbjsKICAgICAgICBpbnQgdG1faG91cjsKICAgICAgICBpbnQgdG1fbWRheTsK
ICAgICAgICBpbnQgdG1fbW9uOwogICAgICAgIGludCB0bV95ZWFyOwogICAgICAgIGludCB0bV93
ZGF5OwogICAgICAgIGludCB0bV95ZGF5OwogICAgICAgIGludCB0bV9pc2RzdDsKfTsKCgoKZXh0
ZXJuIGNsb2NrX3QgY2xvY2sodm9pZCk7CmV4dGVybiBkb3VibGUgZGlmZnRpbWUodGltZV90LCB0
aW1lX3QpOwpleHRlcm4gdGltZV90IG1rdGltZShzdHJ1Y3QgdG0gKik7CmV4dGVybiB0aW1lX3Qg
dGltZSh0aW1lX3QgKik7CmV4dGVybiBjaGFyICphc2N0aW1lKGNvbnN0IHN0cnVjdCB0bSAqKTsK
ZXh0ZXJuIGNoYXIgKmN0aW1lKGNvbnN0IHRpbWVfdCAqKTsKZXh0ZXJuIHN0cnVjdCB0bSAqZ210
aW1lKGNvbnN0IHRpbWVfdCAqKTsKZXh0ZXJuIHN0cnVjdCB0bSAqbG9jYWx0aW1lKGNvbnN0IHRp
bWVfdCAqKTsKZXh0ZXJuIHNpemVfdCBzdHJmdGltZShjaGFyICosIHNpemVfdCwgY29uc3QgY2hh
ciAqLCBjb25zdCBzdHJ1Y3QgdG0gKik7CiMgOTcgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMKZXh0
ZXJuIGNoYXIgKnN0cnB0aW1lKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBzdHJ1Y3QgdG0g
Kik7CgoKCgoKIyAxICIvdXNyL2luY2x1ZGUvc3lzL3RpbWVfaW1wbC5oIiAxIDMKIyAxNSAiL3Vz
ci9pbmNsdWRlL3N5cy90aW1lX2ltcGwuaCIgMwojcHJhZ21hIGlkZW50ICJAKCMpdGltZV9pbXBs
LmgJMS4zCTk4LzAyLzEzIFNNSSIKCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9mZWF0dXJlX3Rlc3Rz
LmgiIDEgMwojIDE4ICIvdXNyL2luY2x1ZGUvc3lzL3RpbWVfaW1wbC5oIiAyIDMKIyAzNiAiL3Vz
ci9pbmNsdWRlL3N5cy90aW1lX2ltcGwuaCIgMwp0eXBlZGVmIHN0cnVjdCB0aW1lc3BlYyB7CiAg
ICAgICAgdGltZV90IHR2X3NlYzsKICAgICAgICBsb25nIHR2X25zZWM7Cn0gdGltZXNwZWNfdDsK
IyA2MCAiL3Vzci9pbmNsdWRlL3N5cy90aW1lX2ltcGwuaCIgMwp0eXBlZGVmIHN0cnVjdCB0aW1l
c3BlYyB0aW1lc3RydWNfdDsKIyA3OSAiL3Vzci9pbmNsdWRlL3N5cy90aW1lX2ltcGwuaCIgMwp0
eXBlZGVmIHN0cnVjdCBpdGltZXJzcGVjIHsKICAgICAgICBzdHJ1Y3QgdGltZXNwZWMgaXRfaW50
ZXJ2YWw7CiAgICAgICAgc3RydWN0IHRpbWVzcGVjIGl0X3ZhbHVlOwp9IGl0aW1lcnNwZWNfdDsK
IyAxMDQgIi91c3IvaW5jbHVkZS90aW1lLmgiIDIgMwojIDExOCAiL3Vzci9pbmNsdWRlL3RpbWUu
aCIgMwp1bmlvbiBzaWd2YWwgewogICAgICAgIGludCBzaXZhbF9pbnQ7CiAgICAgICAgdm9pZCAq
c2l2YWxfcHRyOwp9OwoKCgoKc3RydWN0IHNpZ2V2ZW50IHsKICAgICAgICBpbnQgc2lnZXZfbm90
aWZ5OwogICAgICAgIGludCBzaWdldl9zaWdubzsKICAgICAgICB1bmlvbiBzaWd2YWwgc2lnZXZf
dmFsdWU7CiAgICAgICAgdm9pZCAoKnNpZ2V2X25vdGlmeV9mdW5jdGlvbikodW5pb24gc2lndmFs
KTsKICAgICAgICBwdGhyZWFkX2F0dHJfdCAqc2lnZXZfbm90aWZ5X2F0dHJpYnV0ZXM7CiAgICAg
ICAgaW50IF9fc2lnZXZfcGFkMjsKfTsKCgpleHRlcm4gaW50IGNsb2NrX2dldHJlcyhjbG9ja2lk
X3QsIHN0cnVjdCB0aW1lc3BlYyAqKTsKZXh0ZXJuIGludCBjbG9ja19nZXR0aW1lKGNsb2NraWRf
dCwgc3RydWN0IHRpbWVzcGVjICopOwpleHRlcm4gaW50IGNsb2NrX3NldHRpbWUoY2xvY2tpZF90
LCBjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKik7CmV4dGVybiBpbnQgdGltZXJfY3JlYXRlKGNsb2Nr
aWRfdCwgc3RydWN0IHNpZ2V2ZW50ICosIHRpbWVyX3QgKik7CmV4dGVybiBpbnQgdGltZXJfZGVs
ZXRlKHRpbWVyX3QpOwpleHRlcm4gaW50IHRpbWVyX2dldG92ZXJydW4odGltZXJfdCk7CmV4dGVy
biBpbnQgdGltZXJfZ2V0dGltZSh0aW1lcl90LCBzdHJ1Y3QgaXRpbWVyc3BlYyAqKTsKZXh0ZXJu
IGludCB0aW1lcl9zZXR0aW1lKHRpbWVyX3QsIGludCwgY29uc3Qgc3RydWN0IGl0aW1lcnNwZWMg
KiwKICAgICAgICAgICAgICAgIHN0cnVjdCBpdGltZXJzcGVjICopOwpleHRlcm4gaW50IG5hbm9z
bGVlcChjb25zdCBzdHJ1Y3QgdGltZXNwZWMgKiwgc3RydWN0IHRpbWVzcGVjICopOwoKCgoKZXh0
ZXJuIHZvaWQgdHpzZXQodm9pZCk7CgpleHRlcm4gY2hhciAqdHpuYW1lWzJdOwoKCmV4dGVybiBs
b25nIF9zeXNjb25mKGludCk7CgoKCgoKCmV4dGVybiBsb25nIHRpbWV6b25lOwpleHRlcm4gaW50
IGRheWxpZ2h0OwoKCgoKCmV4dGVybiBpbnQgY2Z0aW1lKGNoYXIgKiwgY2hhciAqLCBjb25zdCB0
aW1lX3QgKik7CmV4dGVybiBpbnQgYXNjZnRpbWUoY2hhciAqLCBjb25zdCBjaGFyICosIGNvbnN0
IHN0cnVjdCB0bSAqKTsKZXh0ZXJuIGxvbmcgYWx0em9uZTsKCgoKCmV4dGVybiBzdHJ1Y3QgdG0g
KmdldGRhdGUoY29uc3QgY2hhciAqKTsKCgoKCgoKZXh0ZXJuIGludCBnZXRkYXRlX2VycjsKIyA0
MDYgIi91c3IvaW5jbHVkZS9zeXMvdGltZS5oIiAyIDMKIyA0MTggIi91c3IvaW5jbHVkZS9zeXMv
dGltZS5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMSAzCiMgNDE5ICIvdXNy
L2luY2x1ZGUvc3lzL3RpbWUuaCIgMiAzCiMgMTggIi91c3IvaW5jbHVkZS9zeXMvc2VsZWN0Lmgi
IDIgMwojIDQ1ICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVjdC5oIiAzCnR5cGVkZWYgbG9uZyBmZF9t
YXNrOwoKdHlwZWRlZiBsb25nIGZkc19tYXNrOwojIDczICIvdXNyL2luY2x1ZGUvc3lzL3NlbGVj
dC5oIiAzCnR5cGVkZWYgc3RydWN0IGZkX3NldCB7CgoKCiAgICAgICAgbG9uZyBmZHNfYml0c1so
KCgxMDI0KSsoKChzaXplb2YgKGZkc19tYXNrKSAqIDgpKS0xKSkvKChzaXplb2YgKGZkc19tYXNr
KSAqIDgpKSldOwp9IGZkX3NldDsKIyA5NyAiL3Vzci9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMwpl
eHRlcm4gaW50IHNlbGVjdChpbnQsIGZkX3NldCAqLCBmZF9zZXQgKiwgZmRfc2V0ICosIHN0cnVj
dCB0aW1ldmFsICopOwojIDU2NSAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcv
bGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zeXMvdHlwZXMu
aCIgMiAzCiMgMTQgIi91c3IvaW5jbHVkZS9tYWxsb2MuaCIgMiAzCiMgMzEgIi91c3IvaW5jbHVk
ZS9tYWxsb2MuaCIgMwpzdHJ1Y3QgbWFsbGluZm8gewogICAgICAgIHVuc2lnbmVkIGxvbmcgYXJl
bmE7CiAgICAgICAgdW5zaWduZWQgbG9uZyBvcmRibGtzOwogICAgICAgIHVuc2lnbmVkIGxvbmcg
c21ibGtzOwogICAgICAgIHVuc2lnbmVkIGxvbmcgaGJsa3M7CiAgICAgICAgdW5zaWduZWQgbG9u
ZyBoYmxraGQ7CiAgICAgICAgdW5zaWduZWQgbG9uZyB1c21ibGtzOwogICAgICAgIHVuc2lnbmVk
IGxvbmcgZnNtYmxrczsKICAgICAgICB1bnNpZ25lZCBsb25nIHVvcmRibGtzOwogICAgICAgIHVu
c2lnbmVkIGxvbmcgZm9yZGJsa3M7CiAgICAgICAgdW5zaWduZWQgbG9uZyBrZWVwY29zdDsKfTsK
CgoKdm9pZCAqbWFsbG9jKHNpemVfdCk7CnZvaWQgZnJlZSh2b2lkICopOwp2b2lkICpyZWFsbG9j
KHZvaWQgKiwgc2l6ZV90KTsKaW50IG1hbGxvcHQoaW50LCBpbnQpOwpzdHJ1Y3QgbWFsbGluZm8g
bWFsbGluZm8odm9pZCk7CnZvaWQgKmNhbGxvYyhzaXplX3QsIHNpemVfdCk7CiMgNDEgIm1haW4u
YyIgMgojIDEgIi85L29yc2F0dGkvU1BPVDNEX0NPTVBJTF9URVNUX0VOVi9TUE9UM0QvSU5DTFVE
RS9hcmdzLmgiIDEKIyAyNiAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1Qz
RC9JTkNMVURFL2FyZ3MuaCIKIyAxICIvdXNyL2luY2x1ZGUvbGliZ2VuLmgiIDEgMwojIDE5ICIv
dXNyL2luY2x1ZGUvbGliZ2VuLmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKWxpYmdlbi5oCTEuMTUJ
OTcvMDIvMTIgU01JIgoKIyAxICIvdXNyL2luY2x1ZGUvc3lzL2ZlYXR1cmVfdGVzdHMuaCIgMSAz
CiMgMjIgIi91c3IvaW5jbHVkZS9saWJnZW4uaCIgMiAzCgojIDEgIi9vcHQvZ2NjLTMuMC4xL3Nw
YXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4x
L2luY2x1ZGUvc3lzL3R5cGVzLmgiIDEgMwojIDI0ICIvdXNyL2luY2x1ZGUvbGliZ2VuLmgiIDIg
MwoKIyAxICIvdXNyL2luY2x1ZGUvdGltZS5oIiAxIDMKIyAyNiAiL3Vzci9pbmNsdWRlL2xpYmdl
bi5oIiAyIDMKIyAxICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2Nj
LWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N0ZGlvLmgiIDEgMwojIDI3
ICIvdXNyL2luY2x1ZGUvbGliZ2VuLmgiIDIgMwoKCgoKCgoKZXh0ZXJuIGNoYXIgKiBiYXNlbmFt
ZShjaGFyICopOwoKCgoKCmV4dGVybiBjaGFyICogcmVnY21wKGNvbnN0IGNoYXIgKiwgLi4uKTsK
CgoKCgpleHRlcm4gY2hhciAqIGRpcm5hbWUoY2hhciAqKTsKCgoKCgpleHRlcm4gY2hhciAqIHJl
Z2V4KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4pOwojIDY1ICIvdXNyL2luY2x1ZGUv
bGliZ2VuLmgiIDMKZXh0ZXJuIGNoYXIgKl9fbG9jMTsKCgoKCgpleHRlcm4gY2hhciAqIGJnZXRz
KGNoYXIgKiwgc2l6ZV90LCBGSUxFICosIGNoYXIgKik7CgoKCgoKZXh0ZXJuIHNpemVfdCBidWZz
cGxpdChjaGFyICosIHNpemVfdCwgY2hhciAqKik7CiMgOTkgIi91c3IvaW5jbHVkZS9saWJnZW4u
aCIgMwpleHRlcm4gY2hhciAqIGNvcHlsaXN0NjQoY29uc3QgY2hhciAqLCBvZmZfdCAqKTsKIyAx
MTUgIi91c3IvaW5jbHVkZS9saWJnZW4uaCIgMwpleHRlcm4gaW50IGVhY2Nlc3MoY29uc3QgY2hh
ciAqLCBpbnQpOwoKCgoKCmV4dGVybiBpbnQgZ21hdGNoKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hh
ciAqKTsKCgoKCgpleHRlcm4gaW50IGlzZW5jcnlwdChjb25zdCBjaGFyICosIHNpemVfdCk7CgoK
CgoKZXh0ZXJuIGludCBta2RpcnAoY29uc3QgY2hhciAqLCBtb2RlX3QpOwoKCgoKCmV4dGVybiBp
bnQgcDJvcGVuKGNvbnN0IGNoYXIgKiwgRklMRSAqWzJdKTsKCgoKCgpleHRlcm4gaW50IHAyY2xv
c2UoRklMRSAqWzJdKTsKCgoKCgpleHRlcm4gY2hhciAqIHBhdGhmaW5kKGNvbnN0IGNoYXIgKiwg
Y29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwoKCgoKCgoKZXh0ZXJuIGludCBfX2lfc2l6ZTsK
CgoKZXh0ZXJuIGludCBybWRpcnAoY2hhciAqLCBjaGFyICopOwoKCgoKCmV4dGVybiBjaGFyICog
c3RyY2FkZChjaGFyICosIGNvbnN0IGNoYXIgKik7CgoKCgoKZXh0ZXJuIGNoYXIgKiBzdHJjY3B5
KGNoYXIgKiwgY29uc3QgY2hhciAqKTsKCgoKCgpleHRlcm4gY2hhciAqIHN0cmVhZGQoY2hhciAq
LCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CgoKCgoKZXh0ZXJuIGNoYXIgKiBzdHJlY3B5
KGNoYXIgKiwgY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICopOwoKCgoKCmV4dGVybiBpbnQgc3Ry
ZmluZChjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKik7CgoKCgoKZXh0ZXJuIGNoYXIgKiBzdHJy
c3BuKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKCgoKCgpleHRlcm4gY2hhciAqIHN0cnRy
bnMoY29uc3QgY2hhciAqLCBjb25zdCBjaGFyICosIGNvbnN0IGNoYXIgKiwgY2hhciAqKTsKIyAy
NyAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL2FyZ3Mu
aCIgMgojIDUzICIvOS9vcnNhdHRpL1NQT1QzRF9DT01QSUxfVEVTVF9FTlYvU1BPVDNEL0lOQ0xV
REUvYXJncy5oIgpleHRlcm4gdm9pZCBnZXRfaW1hZ2VfbmFtZXMoY2hhcioqIG5hbWUsIGludCB0
eXBlLCAuLi4pOwpleHRlcm4gdm9pZCBnZXRfZ2VuZXJpY19hcmdzKHZvaWQpOwpleHRlcm4gaW50
IGdldGFyZyhjaGFyKiwgY2hhciosIHZvaWQqLCBjaGFyKiwgdm9pZCosIGNoYXIqLCB2b2lkKik7
CmV4dGVybiBpbnQgdGVzdG9wdCh2b2lkKTsKZXh0ZXJuIGludCB1bnVzZWRfYXJncyh2b2lkKTsK
ZXh0ZXJuIGludCBmYXRhbChpbnQgY29kZSwgY2hhciogZm10LCAuLi4pOwpleHRlcm4gaW50IEdl
dENhcnRvQ29vcmRGcm9tRmlsZU5hbWUoY2hhciosIGRvdWJsZSosIGRvdWJsZSosIGRvdWJsZSop
OwpleHRlcm4gY2hhciAqc3VyZV9tYWxsb2ModW5zaWduZWQgaW50IHNpemUsIC4uLik7CmV4dGVy
biBpbnQgKCpzdXJlX21hbGxvY19zdHJhdGVneShpbnQgKCpmdW5jKSh1bnNpZ25lZCBpbnQpKSkg
KCk7CmV4dGVybiBjaGFyICpzdXJlX21hbGxvY19iemVybyh1bnNpZ25lZCBpbnQgc2l6ZSwgLi4u
KTsKZXh0ZXJuIHZvaWQgZXJyb3JfbXNnIChpbnQgY29kZSwgLi4uKTsKCmV4dGVybiB2b2lkIFBy
aW50VmVyc2lvbihpbnQgdmVyLCBpbnQgc3ZlciwgaW50IHJlbCwgY29uc3QgY2hhciogb3duZXIp
OwojIDQyICJtYWluLmMiIDIKCiMgMSAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5W
L1NQT1QzRC9JTkNMVURFL2dyYXBoaWMuaCIgMQojIDI1ICIvOS9vcnNhdHRpL1NQT1QzRF9DT01Q
SUxfVEVTVF9FTlYvU1BPVDNEL0lOQ0xVREUvZ3JhcGhpYy5oIgojIDEgIi9vcHQvZ2NjLTMuMC4x
L3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMu
MC4xL2luY2x1ZGUvc3RkaW8uaCIgMSAzCiMgMjYgIi85L29yc2F0dGkvU1BPVDNEX0NPTVBJTF9U
RVNUX0VOVi9TUE9UM0QvSU5DTFVERS9ncmFwaGljLmgiIDIKCiMgMSAiLzkvb3JzYXR0aS9TUE9U
M0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL2dyX29iamV0LmgiIDEKIyAzMCAiLzkv
b3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL2dyX29iamV0Lmgi
CiMgMSAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL2Jv
eC5oIiAxCiMgMzYgIi85L29yc2F0dGkvU1BPVDNEX0NPTVBJTF9URVNUX0VOVi9TUE9UM0QvSU5D
TFVERS9ib3guaCIKdHlwZWRlZiBzdHJ1Y3QgewogICBpbnQgeCwgeSwgejsKICAgaW50IGx4LCBs
eSwgbHo7Cn0gYm94OwoKCgoKdHlwZWRlZiBzdHJ1Y3QgewogICBmbG9hdCB4LCB5LCB6OwogICBm
bG9hdCBseCwgbHksIGx6Owp9IGZib3g7Cgp0eXBlZGVmIHN0cnVjdCB7CiAgIGRvdWJsZSB4LCB5
LCB6OwogICBkb3VibGUgbHgsIGx5LCBsejsKfSBkYm94OwojIDMxICIvOS9vcnNhdHRpL1NQT1Qz
RF9DT01QSUxfVEVTVF9FTlYvU1BPVDNEL0lOQ0xVREUvZ3Jfb2JqZXQuaCIgMgojIDEgIi9vcHQv
Z2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xh
cmlzMi43LzMuMC4xL2luY2x1ZGUvbWF0aC5oIiAxIDMKIyAyNyAiL29wdC9nY2MtMy4wLjEvc3Bh
cmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEv
aW5jbHVkZS9tYXRoLmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKW1hdGguaAkyLjcJOTgvMDEvMjci
CiMgNDYgIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3Nw
YXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1ZGUvbWF0aC5oIiAzCnR5cGVkZWYgdW5pb24g
X2hfdmFsIHsKICAgICAgICB1bnNpZ25lZCBsb25nIF9pW3NpemVvZihkb3VibGUpIC8gc2l6ZW9m
KHVuc2lnbmVkIGxvbmcpXTsKICAgICAgICBkb3VibGUgX2Q7Cn0gX2hfdmFsOwoKCmV4dGVybiBj
b25zdCBfaF92YWwgX19odWdlX3ZhbDsKIyA4MCAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNv
bGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9t
YXRoLmgiIDMKZXh0ZXJuIGludCBzaWduZ2FtOwoKCgoKCgoKZW51bSB2ZXJzaW9uIHtsaWJtX2ll
ZWUgPSAtMSwgY19pc3N1ZV80LCBhbnNpXzEsIHN0cmljdF9hbnNpfTsKCgpleHRlcm4gY29uc3Qg
ZW51bSB2ZXJzaW9uIF9saWJfdmVyc2lvbjsKCgoKCnN0cnVjdCBleGNlcHRpb24gewogICAgICAg
IGludCB0eXBlOwogICAgICAgIGNoYXIgKm5hbWU7CiAgICAgICAgZG91YmxlIGFyZzE7CiAgICAg
ICAgZG91YmxlIGFyZzI7CiAgICAgICAgZG91YmxlIHJldHZhbDsKfTsKIyAxMzQgIi9vcHQvZ2Nj
LTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlz
Mi43LzMuMC4xL2luY2x1ZGUvbWF0aC5oIiAzCmV4dGVybiBkb3VibGUgYWNvcyAoZG91YmxlKTsK
ZXh0ZXJuIGRvdWJsZSBhc2luIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGF0YW4gKGRvdWJsZSk7
CmV4dGVybiBkb3VibGUgYXRhbjIgKGRvdWJsZSwgZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBjb3Mg
KGRvdWJsZSk7CmV4dGVybiBkb3VibGUgc2luIChkb3VibGUpOwpleHRlcm4gZG91YmxlIHRhbiAo
ZG91YmxlKTsKCmV4dGVybiBkb3VibGUgY29zaCAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBzaW5o
IChkb3VibGUpOwpleHRlcm4gZG91YmxlIHRhbmggKGRvdWJsZSk7CgpleHRlcm4gZG91YmxlIGV4
cCAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBmcmV4cCAoZG91YmxlLCBpbnQgKik7CmV4dGVybiBk
b3VibGUgbGRleHAgKGRvdWJsZSwgaW50KTsKZXh0ZXJuIGRvdWJsZSBsb2cgKGRvdWJsZSk7CmV4
dGVybiBkb3VibGUgbG9nMTAgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgbW9kZiAoZG91YmxlLCBk
b3VibGUgKik7CgpleHRlcm4gZG91YmxlIHBvdyAoZG91YmxlLCBkb3VibGUpOwpleHRlcm4gZG91
YmxlIHNxcnQgKGRvdWJsZSk7CgpleHRlcm4gZG91YmxlIGNlaWwgKGRvdWJsZSk7CmV4dGVybiBk
b3VibGUgZmFicyAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBmbG9vciAoZG91YmxlKTsKZXh0ZXJu
IGRvdWJsZSBmbW9kIChkb3VibGUsIGRvdWJsZSk7CgoKCgoKCmV4dGVybiBkb3VibGUgZXJmIChk
b3VibGUpOwpleHRlcm4gZG91YmxlIGVyZmMgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgZ2FtbWEg
KGRvdWJsZSk7CmV4dGVybiBkb3VibGUgaHlwb3QgKGRvdWJsZSwgZG91YmxlKTsKZXh0ZXJuIGlu
dCBpc25hbiAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBqMCAoZG91YmxlKTsKZXh0ZXJuIGRvdWJs
ZSBqMSAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBqbiAoaW50LCBkb3VibGUpOwpleHRlcm4gZG91
YmxlIGxnYW1tYSAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSB5MCAoZG91YmxlKTsKZXh0ZXJuIGRv
dWJsZSB5MSAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSB5biAoaW50LCBkb3VibGUpOwoKCgoKCgoK
ZXh0ZXJuIGRvdWJsZSBhY29zaCAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBhc2luaCAoZG91Ymxl
KTsKZXh0ZXJuIGRvdWJsZSBhdGFuaCAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBjYnJ0IChkb3Vi
bGUpOwpleHRlcm4gZG91YmxlIGxvZ2IgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgbmV4dGFmdGVy
IChkb3VibGUsIGRvdWJsZSk7CmV4dGVybiBkb3VibGUgcmVtYWluZGVyIChkb3VibGUsIGRvdWJs
ZSk7CmV4dGVybiBkb3VibGUgc2NhbGIgKGRvdWJsZSwgZG91YmxlKTsKCgoKCmV4dGVybiBkb3Vi
bGUgZXhwbTEgKGRvdWJsZSk7CmV4dGVybiBpbnQgaWxvZ2IgKGRvdWJsZSk7CmV4dGVybiBkb3Vi
bGUgbG9nMXAgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgcmludCAoZG91YmxlKTsKCgoKCgoKZXh0
ZXJuIGludCBtYXRoZXJyIChzdHJ1Y3QgZXhjZXB0aW9uICopOwoKCgoKZXh0ZXJuIGRvdWJsZSBz
aWduaWZpY2FuZCAoZG91YmxlKTsKCgoKCmV4dGVybiBkb3VibGUgY29weXNpZ24gKGRvdWJsZSwg
ZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBzY2FsYm4gKGRvdWJsZSwgaW50KTsKIyAyMzIgIi9vcHQv
Z2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xh
cmlzMi43LzMuMC4xL2luY2x1ZGUvbWF0aC5oIiAzCmV4dGVybiBmbG9hdCBtb2RmZiAoZmxvYXQs
IGZsb2F0ICopOwoKIyAxICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIv
Z2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL2Zsb2F0aW5ncG9pbnQu
aCIgMSAzCiMgMjQgIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2Mt
bGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1ZGUvZmxvYXRpbmdwb2ludC5oIiAz
CiNwcmFnbWEgaWRlbnQgIkAoIylmbG9hdGluZ3BvaW50LmgJMi40IDk0LzA2LzA5IgojIDQyICIv
b3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4t
c29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL2Zsb2F0aW5ncG9pbnQuaCIgMwojIDEgIi9vcHQvZ2Nj
LTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlz
Mi43LzMuMC4xL2luY2x1ZGUvc3RkaW8uaCIgMSAzCiMgNDMgIi9vcHQvZ2NjLTMuMC4xL3NwYXJj
LXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2lu
Y2x1ZGUvZmxvYXRpbmdwb2ludC5oIiAyIDMKCiMgMSAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3Vu
LXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVk
ZS9zeXMvaWVlZWZwLmgiIDEgMwojIDE3ICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJp
czIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N5cy9p
ZWVlZnAuaCIgMwojcHJhZ21hIGlkZW50ICJAKCMpaWVlZWZwLmgJMi43IDk0LzExLzA5IgojIDI3
ICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1z
dW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N5cy9pZWVlZnAuaCIgMwplbnVtIGZwX2RpcmVj
dGlvbl90eXBlIHsKICAgICAgICBmcF9uZWFyZXN0ID0gMCwKICAgICAgICBmcF90b3plcm8gPSAx
LAogICAgICAgIGZwX3Bvc2l0aXZlID0gMiwKICAgICAgICBmcF9uZWdhdGl2ZSA9IDMKfTsKCmVu
dW0gZnBfcHJlY2lzaW9uX3R5cGUgewogICAgICAgIGZwX2V4dGVuZGVkID0gMCwKICAgICAgICBm
cF9zaW5nbGUgPSAxLAogICAgICAgIGZwX2RvdWJsZSA9IDIsCiAgICAgICAgZnBfcHJlY2lzaW9u
XzMgPSAzCn07CgplbnVtIGZwX2V4Y2VwdGlvbl90eXBlIHsKICAgICAgICBmcF9pbmV4YWN0ID0g
MCwKICAgICAgICBmcF9kaXZpc2lvbiA9IDEsCiAgICAgICAgZnBfdW5kZXJmbG93ID0gMiwKICAg
ICAgICBmcF9vdmVyZmxvdyA9IDMsCiAgICAgICAgZnBfaW52YWxpZCA9IDQKfTsKCmVudW0gZnBf
dHJhcF9lbmFibGVfdHlwZSB7CiAgICAgICAgZnBfdHJhcF9pbmV4YWN0ID0gMCwKICAgICAgICBm
cF90cmFwX2RpdmlzaW9uID0gMSwKICAgICAgICBmcF90cmFwX3VuZGVyZmxvdyA9IDIsCiAgICAg
ICAgZnBfdHJhcF9vdmVyZmxvdyA9IDMsCiAgICAgICAgZnBfdHJhcF9pbnZhbGlkID0gNAp9Owoj
IDEzMyAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3Bh
cmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVkZS9zeXMvaWVlZWZwLmgiIDMKZW51bSBmcF9j
bGFzc190eXBlIHsKICAgICAgICBmcF96ZXJvID0gMCwKICAgICAgICBmcF9zdWJub3JtYWwgPSAx
LAogICAgICAgIGZwX25vcm1hbCA9IDIsCiAgICAgICAgZnBfaW5maW5pdHkgPSAzLAogICAgICAg
IGZwX3F1aWV0ID0gNCwKICAgICAgICBmcF9zaWduYWxpbmcgPSA1Cn07CiMgNDUgIi9vcHQvZ2Nj
LTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlz
Mi43LzMuMC4xL2luY2x1ZGUvZmxvYXRpbmdwb2ludC5oIiAyIDMKIyA1OCAiL29wdC9nY2MtMy4w
LjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcv
My4wLjEvaW5jbHVkZS9mbG9hdGluZ3BvaW50LmgiIDMKdHlwZWRlZiBpbnQgc2lnZnBlX2NvZGVf
dHlwZTsKCnR5cGVkZWYgdm9pZCAoKnNpZ2ZwZV9oYW5kbGVyX3R5cGUpKCk7CgoKCgoKZXh0ZXJu
IHNpZ2ZwZV9oYW5kbGVyX3R5cGUgc2lnZnBlIChzaWdmcGVfY29kZV90eXBlLCBzaWdmcGVfaGFu
ZGxlcl90eXBlKTsKCgoKCnR5cGVkZWYgZmxvYXQgc2luZ2xlOwoKCgp0eXBlZGVmIHVuc2lnbmVk
IGV4dGVuZGVkWzNdOwoKCnR5cGVkZWYgbG9uZyBkb3VibGUgcXVhZHJ1cGxlOwoKdHlwZWRlZiB1
bnNpZ25lZCBmcF9leGNlcHRpb25fZmllbGRfdHlwZTsKIyA5MCAiL29wdC9nY2MtMy4wLjEvc3Bh
cmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEv
aW5jbHVkZS9mbG9hdGluZ3BvaW50LmgiIDMKdHlwZWRlZiBjaGFyIGRlY2ltYWxfc3RyaW5nWzUx
Ml07CgoKdHlwZWRlZiBzdHJ1Y3QgewogICAgICAgIGVudW0gZnBfY2xhc3NfdHlwZSBmcGNsYXNz
OwogICAgICAgIGludCBzaWduOwogICAgICAgIGludCBleHBvbmVudDsKICAgICAgICBkZWNpbWFs
X3N0cmluZyBkczsKCgogICAgICAgIGludCBtb3JlOwoKCiAgICAgICAgaW50IG5kaWdpdHM7CgoK
fSBkZWNpbWFsX3JlY29yZDsKCmVudW0gZGVjaW1hbF9mb3JtIHsKICAgICAgICBmaXhlZF9mb3Jt
LAoKCiAgICAgICAgZmxvYXRpbmdfZm9ybQoKfTsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBl
bnVtIGZwX2RpcmVjdGlvbl90eXBlIHJkOwoKICAgICAgICBlbnVtIGRlY2ltYWxfZm9ybSBkZjsK
CiAgICAgICAgaW50IG5kaWdpdHM7Cn0gZGVjaW1hbF9tb2RlOwoKZW51bSBkZWNpbWFsX3N0cmlu
Z19mb3JtIHsKICAgICAgICBpbnZhbGlkX2Zvcm0sCiAgICAgICAgd2hpdGVzcGFjZV9mb3JtLAog
ICAgICAgIGZpeGVkX2ludF9mb3JtLAogICAgICAgIGZpeGVkX2ludGRvdF9mb3JtLAogICAgICAg
IGZpeGVkX2RvdGZyYWNfZm9ybSwKICAgICAgICBmaXhlZF9pbnRkb3RmcmFjX2Zvcm0sCiAgICAg
ICAgZmxvYXRpbmdfaW50X2Zvcm0sCiAgICAgICAgZmxvYXRpbmdfaW50ZG90X2Zvcm0sCiAgICAg
ICAgZmxvYXRpbmdfZG90ZnJhY19mb3JtLAogICAgICAgIGZsb2F0aW5nX2ludGRvdGZyYWNfZm9y
bSwKICAgICAgICBpbmZfZm9ybSwKICAgICAgICBpbmZpbml0eV9mb3JtLAogICAgICAgIG5hbl9m
b3JtLAogICAgICAgIG5hbnN0cmluZ19mb3JtCn07CgpleHRlcm4gdm9pZCBzaW5nbGVfdG9fZGVj
aW1hbCAoc2luZ2xlICosIGRlY2ltYWxfbW9kZSAqLCBkZWNpbWFsX3JlY29yZCAqLCBmcF9leGNl
cHRpb25fZmllbGRfdHlwZSAqKTsKCmV4dGVybiB2b2lkIGRvdWJsZV90b19kZWNpbWFsIChkb3Vi
bGUgKiwgZGVjaW1hbF9tb2RlICosIGRlY2ltYWxfcmVjb3JkICosIGZwX2V4Y2VwdGlvbl9maWVs
ZF90eXBlICopOwoKZXh0ZXJuIHZvaWQgZXh0ZW5kZWRfdG9fZGVjaW1hbCAoZXh0ZW5kZWQgKiwg
ZGVjaW1hbF9tb2RlICosIGRlY2ltYWxfcmVjb3JkICosIGZwX2V4Y2VwdGlvbl9maWVsZF90eXBl
ICopOwoKZXh0ZXJuIHZvaWQgcXVhZHJ1cGxlX3RvX2RlY2ltYWwgKHF1YWRydXBsZSAqLCBkZWNp
bWFsX21vZGUgKiwgZGVjaW1hbF9yZWNvcmQgKiwgZnBfZXhjZXB0aW9uX2ZpZWxkX3R5cGUgKik7
CgoKZXh0ZXJuIHZvaWQgZGVjaW1hbF90b19zaW5nbGUgKHNpbmdsZSAqLCBkZWNpbWFsX21vZGUg
KiwgZGVjaW1hbF9yZWNvcmQgKiwgZnBfZXhjZXB0aW9uX2ZpZWxkX3R5cGUgKik7CgpleHRlcm4g
dm9pZCBkZWNpbWFsX3RvX2RvdWJsZSAoZG91YmxlICosIGRlY2ltYWxfbW9kZSAqLCBkZWNpbWFs
X3JlY29yZCAqLCBmcF9leGNlcHRpb25fZmllbGRfdHlwZSAqKTsKCmV4dGVybiB2b2lkIGRlY2lt
YWxfdG9fZXh0ZW5kZWQgKGV4dGVuZGVkICosIGRlY2ltYWxfbW9kZSAqLCBkZWNpbWFsX3JlY29y
ZCAqLCBmcF9leGNlcHRpb25fZmllbGRfdHlwZSAqKTsKCmV4dGVybiB2b2lkIGRlY2ltYWxfdG9f
cXVhZHJ1cGxlIChxdWFkcnVwbGUgKiwgZGVjaW1hbF9tb2RlICosIGRlY2ltYWxfcmVjb3JkICos
IGZwX2V4Y2VwdGlvbl9maWVsZF90eXBlICopOwoKCmV4dGVybiB2b2lkIHN0cmluZ190b19kZWNp
bWFsIChjaGFyICoqLCBpbnQsIGludCwgZGVjaW1hbF9yZWNvcmQgKiwgZW51bSBkZWNpbWFsX3N0
cmluZ19mb3JtICosIGNoYXIgKiopOwoKZXh0ZXJuIHZvaWQgZnVuY190b19kZWNpbWFsIChjaGFy
ICoqLCBpbnQsIGludCwgZGVjaW1hbF9yZWNvcmQgKiwgZW51bSBkZWNpbWFsX3N0cmluZ19mb3Jt
ICosIGNoYXIgKiosIGludCAoKikodm9pZCksIGludCAqLCBpbnQgKCopKGludCkpOwoKCmV4dGVy
biB2b2lkIGZpbGVfdG9fZGVjaW1hbCAoY2hhciAqKiwgaW50LCBpbnQsIGRlY2ltYWxfcmVjb3Jk
ICosIGVudW0gZGVjaW1hbF9zdHJpbmdfZm9ybSAqLCBjaGFyICoqLCBGSUxFICosIGludCAqKTsK
CgoKZXh0ZXJuIGNoYXIgKnNlY29udmVydCAoc2luZ2xlICosIGludCwgaW50ICosIGludCAqLCBj
aGFyICopOwpleHRlcm4gY2hhciAqc2Zjb252ZXJ0IChzaW5nbGUgKiwgaW50LCBpbnQgKiwgaW50
ICosIGNoYXIgKik7CmV4dGVybiBjaGFyICpzZ2NvbnZlcnQgKHNpbmdsZSAqLCBpbnQsIGludCwg
Y2hhciAqKTsKZXh0ZXJuIGNoYXIgKmVjb252ZXJ0IChkb3VibGUsIGludCwgaW50ICosIGludCAq
LCBjaGFyICopOwpleHRlcm4gY2hhciAqZmNvbnZlcnQgKGRvdWJsZSwgaW50LCBpbnQgKiwgaW50
ICosIGNoYXIgKik7CmV4dGVybiBjaGFyICpnY29udmVydCAoZG91YmxlLCBpbnQsIGludCwgY2hh
ciAqKTsKZXh0ZXJuIGNoYXIgKnFlY29udmVydCAocXVhZHJ1cGxlICosIGludCwgaW50ICosIGlu
dCAqLCBjaGFyICopOwpleHRlcm4gY2hhciAqcWZjb252ZXJ0IChxdWFkcnVwbGUgKiwgaW50LCBp
bnQgKiwgaW50ICosIGNoYXIgKik7CmV4dGVybiBjaGFyICpxZ2NvbnZlcnQgKHF1YWRydXBsZSAq
LCBpbnQsIGludCwgY2hhciAqKTsKCmV4dGVybiBjaGFyICplY3Z0IChkb3VibGUsIGludCwgaW50
ICosIGludCAqKTsKZXh0ZXJuIGNoYXIgKmZjdnQgKGRvdWJsZSwgaW50LCBpbnQgKiwgaW50ICop
OwpleHRlcm4gY2hhciAqZ2N2dCAoZG91YmxlLCBpbnQsIGNoYXIgKik7CgoKCgoKZXh0ZXJuIGRv
dWJsZSBhdG9mIChjb25zdCBjaGFyICopOwpleHRlcm4gZG91YmxlIHN0cnRvZCAoY29uc3QgY2hh
ciAqLCBjaGFyICoqKTsKIyAyMzUgIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43
L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1ZGUvbWF0aC5oIiAy
IDMKIyAzMiAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURF
L2dyX29iamV0LmgiIDIKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvZ2xpYi5oIiAxCiMgNjYgIi91
c3IvbG9jYWwvaW5jbHVkZS9nbGliLmgiCiMgMSAiL3Vzci9sb2NhbC9saWIvZ2xpYi9pbmNsdWRl
L2dsaWJjb25maWcuaCIgMQojIDEzICIvdXNyL2xvY2FsL2xpYi9nbGliL2luY2x1ZGUvZ2xpYmNv
bmZpZy5oIgojIDEgIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2Mt
bGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1ZGUvbGltaXRzLmgiIDEgMwojIDEx
ICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1z
dW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL2xpbWl0cy5oIiAzCiMgMSAiL29wdC9nY2MtMy4w
LjEvc3BhcmMtc3VuLXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcv
My4wLjEvaW5jbHVkZS9zeXNsaW1pdHMuaCIgMSAzCiMgMjUgIi9vcHQvZ2NjLTMuMC4xL3NwYXJj
LXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2lu
Y2x1ZGUvc3lzbGltaXRzLmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKWxpbWl0cy5oCTEuNDgJOTgv
MDcvMjAgU01JIgoKIyAxICIvdXNyL2luY2x1ZGUvc3lzL2ZlYXR1cmVfdGVzdHMuaCIgMSAzCiMg
MjggIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJj
LXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1ZGUvc3lzbGltaXRzLmgiIDIgMwojIDEgIi91c3Iv
aW5jbHVkZS9zeXMvaXNhX2RlZnMuaCIgMSAzCiMgMjkgIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1
bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1
ZGUvc3lzbGltaXRzLmgiIDIgMwojIDQwICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJp
czIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL3N5c2xp
bWl0cy5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9pbnRfbGltaXRzLmgiIDEgMwojIDkgIi91
c3IvaW5jbHVkZS9zeXMvaW50X2xpbWl0cy5oIiAzCiNwcmFnbWEgaWRlbnQgIkAoIylpbnRfbGlt
aXRzLmgJMS41CTk4LzAxLzA2IFNNSSIKIyA0NCAiL3Vzci9pbmNsdWRlL3N5cy9pbnRfbGltaXRz
LmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvc3lzL2lzYV9kZWZzLmgiIDEgMwojIDQ1ICIvdXNyL2lu
Y2x1ZGUvc3lzL2ludF9saW1pdHMuaCIgMiAzCiMgNDEgIi9vcHQvZ2NjLTMuMC4xL3NwYXJjLXN1
bi1zb2xhcmlzMi43L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi43LzMuMC4xL2luY2x1
ZGUvc3lzbGltaXRzLmgiIDIgMwojIDEyICIvb3B0L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJp
czIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8zLjAuMS9pbmNsdWRlL2xpbWl0
cy5oIiAyIDMKIyAxNCAiL3Vzci9sb2NhbC9saWIvZ2xpYi9pbmNsdWRlL2dsaWJjb25maWcuaCIg
MgojIDEgIi91c3IvaW5jbHVkZS9mbG9hdC5oIiAxIDMKIyAxNiAiL3Vzci9pbmNsdWRlL2Zsb2F0
LmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKWZsb2F0LmgJMS4xNQk5Ny8xMS8yMiBTTUkiCiMgMjUg
Ii91c3IvaW5jbHVkZS9mbG9hdC5oIiAzCmV4dGVybiBpbnQgX19mbHRfcm91bmRzKHZvaWQpOwoj
IDE1ICIvdXNyL2xvY2FsL2xpYi9nbGliL2luY2x1ZGUvZ2xpYmNvbmZpZy5oIiAyCiMgMjggIi91
c3IvbG9jYWwvbGliL2dsaWIvaW5jbHVkZS9nbGliY29uZmlnLmgiCnR5cGVkZWYgc2lnbmVkIGNo
YXIgZ2ludDg7CnR5cGVkZWYgdW5zaWduZWQgY2hhciBndWludDg7CnR5cGVkZWYgc2lnbmVkIHNo
b3J0IGdpbnQxNjsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBndWludDE2Owp0eXBlZGVmIHNpZ25l
ZCBpbnQgZ2ludDMyOwp0eXBlZGVmIHVuc2lnbmVkIGludCBndWludDMyOwojIDQzICIvdXNyL2xv
Y2FsL2xpYi9nbGliL2luY2x1ZGUvZ2xpYmNvbmZpZy5oIgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYg
c2lnbmVkIGxvbmcgbG9uZyBnaW50NjQ7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBs
b25nIGxvbmcgZ3VpbnQ2NDsKIyA3OSAiL3Vzci9sb2NhbC9saWIvZ2xpYi9pbmNsdWRlL2dsaWJj
b25maWcuaCIKdHlwZWRlZiBzdHJ1Y3QgX0dTdGF0aWNNdXRleCBHU3RhdGljTXV0ZXg7CnN0cnVj
dCBfR1N0YXRpY011dGV4CnsKICBzdHJ1Y3QgX0dNdXRleCAqcnVudGltZV9tdXRleDsKICB1bmlv
biB7CiAgICBjaGFyIHBhZFsyNF07CiAgICBkb3VibGUgZHVtbXlfZG91YmxlOwogICAgdm9pZCAq
ZHVtbXlfcG9pbnRlcjsKICAgIGxvbmcgZHVtbXlfbG9uZzsKICB9IGFsaWduZWRfcGFkX3U7Cn07
CiMgNjcgIi91c3IvbG9jYWwvaW5jbHVkZS9nbGliLmgiIDIKCgoKIyAxICIvb3B0L2djYy0zLjAu
MS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuNy8z
LjAuMS9pbmNsdWRlL3N0ZGFyZy5oIiAxIDMKIyA5MCAiL29wdC9nY2MtMy4wLjEvc3BhcmMtc3Vu
LXNvbGFyaXMyLjcvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjcvMy4wLjEvaW5jbHVk
ZS9zdGRhcmcuaCIgMwp0eXBlZGVmIF9fZ251Y192YV9saXN0IHZhX2xpc3Q7CiMgNzEgIi91c3Iv
bG9jYWwvaW5jbHVkZS9nbGliLmgiIDIKIyA0NzMgIi91c3IvbG9jYWwvaW5jbHVkZS9nbGliLmgi
CnR5cGVkZWYgY2hhciBnY2hhcjsKdHlwZWRlZiBzaG9ydCBnc2hvcnQ7CnR5cGVkZWYgbG9uZyBn
bG9uZzsKdHlwZWRlZiBpbnQgZ2ludDsKdHlwZWRlZiBnaW50IGdib29sZWFuOwoKdHlwZWRlZiB1
bnNpZ25lZCBjaGFyIGd1Y2hhcjsKdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBndXNob3J0Owp0eXBl
ZGVmIHVuc2lnbmVkIGxvbmcgZ3Vsb25nOwp0eXBlZGVmIHVuc2lnbmVkIGludCBndWludDsKCnR5
cGVkZWYgZmxvYXQgZ2Zsb2F0Owp0eXBlZGVmIGRvdWJsZSBnZG91YmxlOwojIDQ5OCAiL3Vzci9s
b2NhbC9pbmNsdWRlL2dsaWIuaCIKdHlwZWRlZiB2b2lkKiBncG9pbnRlcjsKdHlwZWRlZiBjb25z
dCB2b2lkICpnY29uc3Rwb2ludGVyOwoKCnR5cGVkZWYgZ2ludDMyIGdzc2l6ZTsKdHlwZWRlZiBn
dWludDMyIGdzaXplOwp0eXBlZGVmIGd1aW50MzIgR1F1YXJrOwp0eXBlZGVmIGdpbnQzMiBHVGlt
ZTsKIyA2NzYgIi91c3IvbG9jYWwvaW5jbHVkZS9nbGliLmgiCmV4dGVybiBjb25zdCBndWludCBn
bGliX21ham9yX3ZlcnNpb247CmV4dGVybiBjb25zdCBndWludCBnbGliX21pbm9yX3ZlcnNpb247
CmV4dGVybiBjb25zdCBndWludCBnbGliX21pY3JvX3ZlcnNpb247CmV4dGVybiBjb25zdCBndWlu
dCBnbGliX2ludGVyZmFjZV9hZ2U7CmV4dGVybiBjb25zdCBndWludCBnbGliX2JpbmFyeV9hZ2U7
CiMgNjkwICIvdXNyL2xvY2FsL2luY2x1ZGUvZ2xpYi5oIgp0eXBlZGVmIHN0cnVjdCBfR0FsbG9j
YXRvciBHQWxsb2NhdG9yOwp0eXBlZGVmIHN0cnVjdCBfR0FycmF5IEdBcnJheTsKdHlwZWRlZiBz
dHJ1Y3QgX0dCeXRlQXJyYXkgR0J5dGVBcnJheTsKdHlwZWRlZiBzdHJ1Y3QgX0dDYWNoZSBHQ2Fj
aGU7CnR5cGVkZWYgc3RydWN0IF9HQ29tcGxldGlvbiBHQ29tcGxldGlvbjsKdHlwZWRlZiBzdHJ1
Y3QgX0dEYXRhIEdEYXRhOwp0eXBlZGVmIHN0cnVjdCBfR0RlYnVnS2V5IEdEZWJ1Z0tleTsKdHlw
ZWRlZiBzdHJ1Y3QgX0dIYXNoVGFibGUgR0hhc2hUYWJsZTsKdHlwZWRlZiBzdHJ1Y3QgX0dIb29r
IEdIb29rOwp0eXBlZGVmIHN0cnVjdCBfR0hvb2tMaXN0IEdIb29rTGlzdDsKdHlwZWRlZiBzdHJ1
Y3QgX0dMaXN0IEdMaXN0Owp0eXBlZGVmIHN0cnVjdCBfR01lbUNodW5rIEdNZW1DaHVuazsKdHlw
ZWRlZiBzdHJ1Y3QgX0dOb2RlIEdOb2RlOwp0eXBlZGVmIHN0cnVjdCBfR1B0ckFycmF5IEdQdHJB
cnJheTsKdHlwZWRlZiBzdHJ1Y3QgX0dSZWxhdGlvbiBHUmVsYXRpb247CnR5cGVkZWYgc3RydWN0
IF9HU2Nhbm5lciBHU2Nhbm5lcjsKdHlwZWRlZiBzdHJ1Y3QgX0dTY2FubmVyQ29uZmlnIEdTY2Fu
bmVyQ29uZmlnOwp0eXBlZGVmIHN0cnVjdCBfR1NMaXN0IEdTTGlzdDsKdHlwZWRlZiBzdHJ1Y3Qg
X0dTdHJpbmcgR1N0cmluZzsKdHlwZWRlZiBzdHJ1Y3QgX0dTdHJpbmdDaHVuayBHU3RyaW5nQ2h1
bms7CnR5cGVkZWYgc3RydWN0IF9HVGltZXIgR1RpbWVyOwp0eXBlZGVmIHN0cnVjdCBfR1RyZWUg
R1RyZWU7CnR5cGVkZWYgc3RydWN0IF9HVHVwbGVzIEdUdXBsZXM7CnR5cGVkZWYgdW5pb24gX0dU
b2tlblZhbHVlIEdUb2tlblZhbHVlOwp0eXBlZGVmIHN0cnVjdCBfR0lPQ2hhbm5lbCBHSU9DaGFu
bmVsOwoKCnR5cGVkZWYgZW51bQp7CiAgR19UUkFWRVJTRV9MRUFGUyA9IDEgPDwgMCwKICBHX1RS
QVZFUlNFX05PTl9MRUFGUyA9IDEgPDwgMSwKICBHX1RSQVZFUlNFX0FMTCA9IEdfVFJBVkVSU0Vf
TEVBRlMgfCBHX1RSQVZFUlNFX05PTl9MRUFGUywKICBHX1RSQVZFUlNFX01BU0sgPSAweDAzCn0g
R1RyYXZlcnNlRmxhZ3M7CgoKdHlwZWRlZiBlbnVtCnsKICBHX0lOX09SREVSLAogIEdfUFJFX09S
REVSLAogIEdfUE9TVF9PUkRFUiwKICBHX0xFVkVMX09SREVSCn0gR1RyYXZlcnNlVHlwZTsKIyA3
NDEgIi91c3IvbG9jYWwvaW5jbHVkZS9nbGliLmgiCnR5cGVkZWYgZW51bQp7CgogIEdfTE9HX0ZM
QUdfUkVDVVJTSU9OID0gMSA8PCAwLAogIEdfTE9HX0ZMQUdfRkFUQUwgPSAxIDw8IDEsCgoKICBH
X0xPR19MRVZFTF9FUlJPUiA9IDEgPDwgMiwKICBHX0xPR19MRVZFTF9DUklUSUNBTCA9IDEgPDwg
MywKICBHX0xPR19MRVZFTF9XQVJOSU5HID0gMSA8PCA0LAogIEdfTE9HX0xFVkVMX01FU1NBR0Ug
PSAxIDw8IDUsCiAgR19MT0dfTEVWRUxfSU5GTyA9IDEgPDwgNiwKICBHX0xPR19MRVZFTF9ERUJV
RyA9IDEgPDwgNywKCiAgR19MT0dfTEVWRUxfTUFTSyA9IH4oR19MT0dfRkxBR19SRUNVUlNJT04g
fCBHX0xPR19GTEFHX0ZBVEFMKQp9IEdMb2dMZXZlbEZsYWdzOwoKCgoKCnR5cGVkZWYgZ3BvaW50
ZXIgKCpHQ2FjaGVOZXdGdW5jKSAoZ3BvaW50ZXIga2V5KTsKdHlwZWRlZiBncG9pbnRlciAoKkdD
YWNoZUR1cEZ1bmMpIChncG9pbnRlciB2YWx1ZSk7CnR5cGVkZWYgdm9pZCAoKkdDYWNoZURlc3Ry
b3lGdW5jKSAoZ3BvaW50ZXIgdmFsdWUpOwp0eXBlZGVmIGdpbnQgKCpHQ29tcGFyZUZ1bmMpIChn
Y29uc3Rwb2ludGVyIGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnY29uc3Rwb2ludGVyIGIpOwp0eXBlZGVmIGdjaGFyKiAoKkdDb21wbGV0aW9uRnVu
YykgKGdwb2ludGVyKTsKdHlwZWRlZiB2b2lkICgqR0Rlc3Ryb3lOb3RpZnkpIChncG9pbnRlciBk
YXRhKTsKdHlwZWRlZiB2b2lkICgqR0RhdGFGb3JlYWNoRnVuYykgKEdRdWFyayBrZXlfaWQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBk
YXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Bv
aW50ZXIgdXNlcl9kYXRhKTsKdHlwZWRlZiB2b2lkICgqR0Z1bmMpIChncG9pbnRlciBkYXRhLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIg
dXNlcl9kYXRhKTsKdHlwZWRlZiBndWludCAoKkdIYXNoRnVuYykgKGdjb25zdHBvaW50ZXIga2V5
KTsKdHlwZWRlZiB2b2lkICgqR0ZyZWVGdW5jKSAoZ3BvaW50ZXIgZGF0YSk7CnR5cGVkZWYgdm9p
ZCAoKkdIRnVuYykgKGdwb2ludGVyIGtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhKTsKdHlwZWRlZiBn
Ym9vbGVhbiAoKkdIUkZ1bmMpIChncG9pbnRlciBrZXksCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciB2YWx1ZSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSk7CnR5
cGVkZWYgZ2ludCAoKkdIb29rQ29tcGFyZUZ1bmMpIChHSG9vayAqbmV3X2hvb2ssCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSG9vayAqc2libGluZyk7
CnR5cGVkZWYgZ2Jvb2xlYW4gKCpHSG9va0ZpbmRGdW5jKSAoR0hvb2sgKmhvb2ssCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBkYXRhKTsK
dHlwZWRlZiB2b2lkICgqR0hvb2tNYXJzaGFsbGVyKSAoR0hvb2sgKmhvb2ssCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBkYXRhKTsKdHlw
ZWRlZiBnYm9vbGVhbiAoKkdIb29rQ2hlY2tNYXJzaGFsbGVyKSAoR0hvb2sgKmhvb2ssCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBkYXRh
KTsKdHlwZWRlZiB2b2lkICgqR0hvb2tGdW5jKSAoZ3BvaW50ZXIgZGF0YSk7CnR5cGVkZWYgZ2Jv
b2xlYW4gKCpHSG9va0NoZWNrRnVuYykgKGdwb2ludGVyIGRhdGEpOwp0eXBlZGVmIHZvaWQgKCpH
SG9va0ZyZWVGdW5jKSAoR0hvb2tMaXN0ICpob29rX2xpc3QsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSG9vayAqaG9vayk7CnR5cGVkZWYgdm9pZCAo
KkdMb2dGdW5jKSAoY29uc3QgZ2NoYXIgKmxvZ19kb21haW4sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTG9nTGV2ZWxGbGFncyBsb2dfbGV2ZWwsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hh
ciAqbWVzc2FnZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdwb2ludGVyIHVzZXJfZGF0YSk7CnR5cGVkZWYgZ2Jvb2xlYW4gKCpHTm9kZVRyYXZlcnNl
RnVuYykgKEdOb2RlICpub2RlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3BvaW50ZXIgZGF0YSk7CnR5cGVkZWYgdm9pZCAoKkdOb2RlRm9yZWFjaEZ1
bmMpIChHTm9kZSAqbm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdwb2ludGVyIGRhdGEpOwp0eXBlZGVmIGdpbnQgKCpHU2VhcmNoRnVuYykgKGdw
b2ludGVyIGtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdwb2ludGVyIGRhdGEpOwp0eXBlZGVmIHZvaWQgKCpHU2Nhbm5lck1zZ0Z1bmMpIChHU2Nh
bm5lciAqc2Nhbm5lciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdjaGFyICptZXNzYWdlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ2ludCBlcnJvcik7CnR5cGVkZWYgZ2ludCAoKkdUcmF2ZXJzZUZ1bmMp
IChncG9pbnRlciBrZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBncG9pbnRlciB2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEpOwp0eXBlZGVmIHZvaWQgKCpHVm9pZEZ1bmMp
ICh2b2lkKTsKCgpzdHJ1Y3QgX0dMaXN0CnsKICBncG9pbnRlciBkYXRhOwogIEdMaXN0ICpuZXh0
OwogIEdMaXN0ICpwcmV2Owp9OwoKc3RydWN0IF9HU0xpc3QKewogIGdwb2ludGVyIGRhdGE7CiAg
R1NMaXN0ICpuZXh0Owp9OwoKc3RydWN0IF9HU3RyaW5nCnsKICBnY2hhciAqc3RyOwogIGdpbnQg
bGVuOwp9OwoKc3RydWN0IF9HQXJyYXkKewogIGdjaGFyICpkYXRhOwogIGd1aW50IGxlbjsKfTsK
CnN0cnVjdCBfR0J5dGVBcnJheQp7CiAgZ3VpbnQ4ICpkYXRhOwogIGd1aW50IGxlbjsKfTsKCnN0
cnVjdCBfR1B0ckFycmF5CnsKICBncG9pbnRlciAqcGRhdGE7CiAgZ3VpbnQgbGVuOwp9OwoKc3Ry
dWN0IF9HVHVwbGVzCnsKICBndWludCBsZW47Cn07CgpzdHJ1Y3QgX0dEZWJ1Z0tleQp7CiAgZ2No
YXIgKmtleTsKICBndWludCB2YWx1ZTsKfTsKCgoKCnZvaWQgZ19saXN0X3B1c2hfYWxsb2NhdG9y
IChHQWxsb2NhdG9yICphbGxvY2F0b3IpOwp2b2lkIGdfbGlzdF9wb3BfYWxsb2NhdG9yICh2b2lk
KTsKR0xpc3QqIGdfbGlzdF9hbGxvYyAodm9pZCk7CnZvaWQgZ19saXN0X2ZyZWUgKEdMaXN0ICps
aXN0KTsKdm9pZCBnX2xpc3RfZnJlZV8xIChHTGlzdCAqbGlzdCk7CkdMaXN0KiBnX2xpc3RfYXBw
ZW5kIChHTGlzdCAqbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50
ZXIgZGF0YSk7CkdMaXN0KiBnX2xpc3RfcHJlcGVuZCAoR0xpc3QgKmxpc3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEpOwpHTGlzdCogZ19saXN0X2luc2Vy
dCAoR0xpc3QgKmxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVy
IGRhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgcG9zaXRpb24pOwpH
TGlzdCogZ19saXN0X2luc2VydF9zb3J0ZWQgKEdMaXN0ICpsaXN0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBncG9pbnRlciBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHQ29tcGFyZUZ1bmMgZnVuYyk7CkdMaXN0KiBnX2xpc3RfY29uY2F0IChHTGlzdCAq
bGlzdDEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaXN0ICpsaXN0Mik7CkdM
aXN0KiBnX2xpc3RfcmVtb3ZlIChHTGlzdCAqbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ3BvaW50ZXIgZGF0YSk7CkdMaXN0KiBnX2xpc3RfcmVtb3ZlX2xpbmsgKEdMaXN0
ICpsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGlzdCAqbGxpbmspOwpH
TGlzdCogZ19saXN0X3JldmVyc2UgKEdMaXN0ICpsaXN0KTsKR0xpc3QqIGdfbGlzdF9jb3B5IChH
TGlzdCAqbGlzdCk7CkdMaXN0KiBnX2xpc3RfbnRoIChHTGlzdCAqbGlzdCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgbik7CkdMaXN0KiBnX2xpc3RfZmluZCAoR0xpc3Qg
Kmxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEpOwpH
TGlzdCogZ19saXN0X2ZpbmRfY3VzdG9tIChHTGlzdCAqbGlzdCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ3BvaW50ZXIgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgR0NvbXBhcmVGdW5jIGZ1bmMpOwpnaW50IGdfbGlzdF9wb3NpdGlvbiAoR0xpc3QgKmxp
c3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMaXN0ICpsbGluayk7CmdpbnQg
Z19saXN0X2luZGV4IChHTGlzdCAqbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ3BvaW50ZXIgZGF0YSk7CkdMaXN0KiBnX2xpc3RfbGFzdCAoR0xpc3QgKmxpc3QpOwpHTGlz
dCogZ19saXN0X2ZpcnN0IChHTGlzdCAqbGlzdCk7Cmd1aW50IGdfbGlzdF9sZW5ndGggKEdMaXN0
ICpsaXN0KTsKdm9pZCBnX2xpc3RfZm9yZWFjaCAoR0xpc3QgKmxpc3QsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIEdGdW5jIGZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSk7CkdMaXN0KiBnX2xpc3Rfc29ydCAoR0xpc3QgKmxp
c3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDb21wYXJlRnVuYyBjb21wYXJl
X2Z1bmMpOwpncG9pbnRlciBnX2xpc3RfbnRoX2RhdGEgKEdMaXN0ICpsaXN0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBndWludCBuKTsKCgoKCgoKdm9pZCBnX3NsaXN0X3B1c2hf
YWxsb2NhdG9yIChHQWxsb2NhdG9yICphbGxvY2F0b3IpOwp2b2lkIGdfc2xpc3RfcG9wX2FsbG9j
YXRvciAodm9pZCk7CkdTTGlzdCogZ19zbGlzdF9hbGxvYyAodm9pZCk7CnZvaWQgZ19zbGlzdF9m
cmVlIChHU0xpc3QgKmxpc3QpOwp2b2lkIGdfc2xpc3RfZnJlZV8xIChHU0xpc3QgKmxpc3QpOwpH
U0xpc3QqIGdfc2xpc3RfYXBwZW5kIChHU0xpc3QgKmxpc3QsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEpOwpHU0xpc3QqIGdfc2xpc3RfcHJlcGVuZCAoR1NM
aXN0ICpsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBkYXRh
KTsKR1NMaXN0KiBnX3NsaXN0X2luc2VydCAoR1NMaXN0ICpsaXN0LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBncG9pbnRlciBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnaW50IHBvc2l0aW9uKTsKR1NMaXN0KiBnX3NsaXN0X2luc2VydF9zb3J0ZWQgKEdT
TGlzdCAqbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgZGF0
YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0NvbXBhcmVGdW5jIGZ1bmMpOwpH
U0xpc3QqIGdfc2xpc3RfY29uY2F0IChHU0xpc3QgKmxpc3QxLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHU0xpc3QgKmxpc3QyKTsKR1NMaXN0KiBnX3NsaXN0X3JlbW92ZSAoR1NM
aXN0ICpsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBkYXRh
KTsKR1NMaXN0KiBnX3NsaXN0X3JlbW92ZV9saW5rIChHU0xpc3QgKmxpc3QsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdTTGlzdCAqbGxpbmspOwpHU0xpc3QqIGdfc2xpc3RfcmV2
ZXJzZSAoR1NMaXN0ICpsaXN0KTsKR1NMaXN0KiBnX3NsaXN0X2NvcHkgKEdTTGlzdCAqbGlzdCk7
CkdTTGlzdCogZ19zbGlzdF9udGggKEdTTGlzdCAqbGlzdCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3VpbnQgbik7CkdTTGlzdCogZ19zbGlzdF9maW5kIChHU0xpc3QgKmxpc3Qs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEpOwpHU0xpc3Qq
IGdfc2xpc3RfZmluZF9jdXN0b20gKEdTTGlzdCAqbGlzdCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3BvaW50ZXIgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR0NvbXBhcmVGdW5jIGZ1bmMpOwpnaW50IGdfc2xpc3RfcG9zaXRpb24gKEdTTGlzdCAqbGlz
dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NMaXN0ICpsbGluayk7CmdpbnQg
Z19zbGlzdF9pbmRleCAoR1NMaXN0ICpsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBncG9pbnRlciBkYXRhKTsKR1NMaXN0KiBnX3NsaXN0X2xhc3QgKEdTTGlzdCAqbGlzdCk7
Cmd1aW50IGdfc2xpc3RfbGVuZ3RoIChHU0xpc3QgKmxpc3QpOwp2b2lkIGdfc2xpc3RfZm9yZWFj
aCAoR1NMaXN0ICpsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRnVuYyBm
dW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEp
OwpHU0xpc3QqIGdfc2xpc3Rfc29ydCAoR1NMaXN0ICpsaXN0LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBHQ29tcGFyZUZ1bmMgY29tcGFyZV9mdW5jKTsKZ3BvaW50ZXIgZ19zbGlz
dF9udGhfZGF0YSAoR1NMaXN0ICpsaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBndWludCBuKTsKCgoKCgpHSGFzaFRhYmxlKiBnX2hhc2hfdGFibGVfbmV3IChHSGFzaEZ1bmMg
aGFzaF9mdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDb21w
YXJlRnVuYyBrZXlfY29tcGFyZV9mdW5jKTsKdm9pZCBnX2hhc2hfdGFibGVfZGVzdHJveSAoR0hh
c2hUYWJsZSAqaGFzaF90YWJsZSk7CnZvaWQgZ19oYXNoX3RhYmxlX2luc2VydCAoR0hhc2hUYWJs
ZSAqaGFzaF90YWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
cG9pbnRlciBrZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Bv
aW50ZXIgdmFsdWUpOwp2b2lkIGdfaGFzaF90YWJsZV9yZW1vdmUgKEdIYXNoVGFibGUgKmhhc2hf
dGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NvbnN0cG9p
bnRlciBrZXkpOwpncG9pbnRlciBnX2hhc2hfdGFibGVfbG9va3VwIChHSGFzaFRhYmxlICpoYXNo
X3RhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjb25zdHBv
aW50ZXIga2V5KTsKZ2Jvb2xlYW4gZ19oYXNoX3RhYmxlX2xvb2t1cF9leHRlbmRlZChHSGFzaFRh
YmxlICpoYXNoX3RhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdjb25zdHBvaW50ZXIgbG9va3VwX2tleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBncG9pbnRlciAqb3JpZ19rZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ3BvaW50ZXIgKnZhbHVlKTsKdm9pZCBnX2hhc2hfdGFibGVfZnJlZXpl
IChHSGFzaFRhYmxlICpoYXNoX3RhYmxlKTsKdm9pZCBnX2hhc2hfdGFibGVfdGhhdyAoR0hhc2hU
YWJsZSAqaGFzaF90YWJsZSk7CnZvaWQgZ19oYXNoX3RhYmxlX2ZvcmVhY2ggKEdIYXNoVGFibGUg
Kmhhc2hfdGFibGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0hG
dW5jIGZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50
ZXIgdXNlcl9kYXRhKTsKZ3VpbnQgZ19oYXNoX3RhYmxlX2ZvcmVhY2hfcmVtb3ZlIChHSGFzaFRh
YmxlICpoYXNoX3RhYmxlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdIUkZ1bmMgZnVuYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
cG9pbnRlciB1c2VyX2RhdGEpOwpndWludCBnX2hhc2hfdGFibGVfc2l6ZSAoR0hhc2hUYWJsZSAq
aGFzaF90YWJsZSk7CgoKCgpHQ2FjaGUqIGdfY2FjaGVfbmV3IChHQ2FjaGVOZXdGdW5jIHZhbHVl
X25ld19mdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdDYWNoZURlc3Ryb3lG
dW5jIHZhbHVlX2Rlc3Ryb3lfZnVuYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
Q2FjaGVEdXBGdW5jIGtleV9kdXBfZnVuYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBHQ2FjaGVEZXN0cm95RnVuYyBrZXlfZGVzdHJveV9mdW5jLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdIYXNoRnVuYyBoYXNoX2tleV9mdW5jLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdIYXNoRnVuYyBoYXNoX3ZhbHVlX2Z1bmMsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0NvbXBhcmVGdW5jIGtleV9jb21wYXJlX2Z1bmMpOwp2b2lkIGdfY2Fj
aGVfZGVzdHJveSAoR0NhY2hlICpjYWNoZSk7Cmdwb2ludGVyIGdfY2FjaGVfaW5zZXJ0IChHQ2Fj
aGUgKmNhY2hlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGtleSk7
CnZvaWQgZ19jYWNoZV9yZW1vdmUgKEdDYWNoZSAqY2FjaGUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3BvaW50ZXIgdmFsdWUpOwp2b2lkIGdfY2FjaGVfa2V5X2ZvcmVhY2ggKEdD
YWNoZSAqY2FjaGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0hGdW5jIGZ1bmMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhKTsKdm9p
ZCBnX2NhY2hlX3ZhbHVlX2ZvcmVhY2ggKEdDYWNoZSAqY2FjaGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgR0hGdW5jIGZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ3BvaW50ZXIgdXNlcl9kYXRhKTsKCgoKCkdUcmVlKiBnX3RyZWVfbmV3IChHQ29tcGFyZUZ1
bmMga2V5X2NvbXBhcmVfZnVuYyk7CnZvaWQgZ190cmVlX2Rlc3Ryb3kgKEdUcmVlICp0cmVlKTsK
dm9pZCBnX3RyZWVfaW5zZXJ0IChHVHJlZSAqdHJlZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICBncG9pbnRlciBrZXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgdmFsdWUp
Owp2b2lkIGdfdHJlZV9yZW1vdmUgKEdUcmVlICp0cmVlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIGdwb2ludGVyIGtleSk7Cmdwb2ludGVyIGdfdHJlZV9sb29rdXAgKEdUcmVlICp0cmVlLAog
ICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGtleSk7CnZvaWQgZ190cmVlX3RyYXZl
cnNlIChHVHJlZSAqdHJlZSwKICAgICAgICAgICAgICAgICAgICAgICAgICBHVHJhdmVyc2VGdW5j
IHRyYXZlcnNlX2Z1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgR1RyYXZlcnNlVHlwZSB0
cmF2ZXJzZV90eXBlLAogICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEpOwpn
cG9pbnRlciBnX3RyZWVfc2VhcmNoIChHVHJlZSAqdHJlZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICBHU2VhcmNoRnVuYyBzZWFyY2hfZnVuYywKICAgICAgICAgICAgICAgICAgICAgICAgICBn
cG9pbnRlciBkYXRhKTsKZ2ludCBnX3RyZWVfaGVpZ2h0IChHVHJlZSAqdHJlZSk7CmdpbnQgZ190
cmVlX25ub2RlcyAoR1RyZWUgKnRyZWUpOwoKCgoKCnN0cnVjdCBfR05vZGUKewogIGdwb2ludGVy
IGRhdGE7CiAgR05vZGUgKm5leHQ7CiAgR05vZGUgKnByZXY7CiAgR05vZGUgKnBhcmVudDsKICBH
Tm9kZSAqY2hpbGRyZW47Cn07CgoKCgoKCnZvaWQgZ19ub2RlX3B1c2hfYWxsb2NhdG9yIChHQWxs
b2NhdG9yICphbGxvY2F0b3IpOwp2b2lkIGdfbm9kZV9wb3BfYWxsb2NhdG9yICh2b2lkKTsKR05v
ZGUqIGdfbm9kZV9uZXcgKGdwb2ludGVyIGRhdGEpOwp2b2lkIGdfbm9kZV9kZXN0cm95IChHTm9k
ZSAqcm9vdCk7CnZvaWQgZ19ub2RlX3VubGluayAoR05vZGUgKm5vZGUpOwpHTm9kZSogZ19ub2Rl
X2luc2VydCAoR05vZGUgKnBhcmVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2ludCBwb3NpdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR05vZGUgKm5v
ZGUpOwpHTm9kZSogZ19ub2RlX2luc2VydF9iZWZvcmUgKEdOb2RlICpwYXJlbnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdOb2RlICpzaWJsaW5nLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBHTm9kZSAqbm9kZSk7CkdOb2RlKiBnX25vZGVfcHJlcGVuZCAoR05v
ZGUgKnBhcmVudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR05vZGUgKm5vZGUp
OwpndWludCBnX25vZGVfbl9ub2RlcyAoR05vZGUgKnJvb3QsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIEdUcmF2ZXJzZUZsYWdzIGZsYWdzKTsKR05vZGUqIGdfbm9kZV9nZXRfcm9v
dCAoR05vZGUgKm5vZGUpOwpnYm9vbGVhbiBnX25vZGVfaXNfYW5jZXN0b3IgKEdOb2RlICpub2Rl
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTm9kZSAqZGVzY2VuZGFudCk7Cmd1
aW50IGdfbm9kZV9kZXB0aCAoR05vZGUgKm5vZGUpOwpHTm9kZSogZ19ub2RlX2ZpbmQgKEdOb2Rl
ICpyb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVHJhdmVyc2VUeXBlIG9y
ZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVHJhdmVyc2VGbGFncyBmbGFn
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgZGF0YSk7CiMgMTA4
OSAiL3Vzci9sb2NhbC9pbmNsdWRlL2dsaWIuaCIKdm9pZCBnX25vZGVfdHJhdmVyc2UgKEdOb2Rl
ICpyb290LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVHJhdmVyc2VUeXBlIG9y
ZGVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVHJhdmVyc2VGbGFncyBmbGFn
cywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBtYXhfZGVwdGgsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdOb2RlVHJhdmVyc2VGdW5jIGZ1bmMsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEpOwoKCgoKCgpndWludCBn
X25vZGVfbWF4X2hlaWdodCAoR05vZGUgKnJvb3QpOwoKdm9pZCBnX25vZGVfY2hpbGRyZW5fZm9y
ZWFjaCAoR05vZGUgKm5vZGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHVHJh
dmVyc2VGbGFncyBmbGFncywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdOb2Rl
Rm9yZWFjaEZ1bmMgZnVuYywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2lu
dGVyIGRhdGEpOwp2b2lkIGdfbm9kZV9yZXZlcnNlX2NoaWxkcmVuIChHTm9kZSAqbm9kZSk7Cmd1
aW50IGdfbm9kZV9uX2NoaWxkcmVuIChHTm9kZSAqbm9kZSk7CkdOb2RlKiBnX25vZGVfbnRoX2No
aWxkIChHTm9kZSAqbm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50
IG4pOwpHTm9kZSogZ19ub2RlX2xhc3RfY2hpbGQgKEdOb2RlICpub2RlKTsKR05vZGUqIGdfbm9k
ZV9maW5kX2NoaWxkIChHTm9kZSAqbm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdUcmF2ZXJzZUZsYWdzIGZsYWdzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ3BvaW50ZXIgZGF0YSk7CmdpbnQgZ19ub2RlX2NoaWxkX3Bvc2l0aW9uIChHTm9kZSAqbm9k
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdOb2RlICpjaGlsZCk7CmdpbnQg
Z19ub2RlX2NoaWxkX2luZGV4IChHTm9kZSAqbm9kZSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGdwb2ludGVyIGRhdGEpOwoKR05vZGUqIGdfbm9kZV9maXJzdF9zaWJsaW5nIChH
Tm9kZSAqbm9kZSk7CkdOb2RlKiBnX25vZGVfbGFzdF9zaWJsaW5nIChHTm9kZSAqbm9kZSk7CiMg
MTEzNCAiL3Vzci9sb2NhbC9pbmNsdWRlL2dsaWIuaCIKdHlwZWRlZiBlbnVtCnsKICBHX0hPT0tf
RkxBR19BQ1RJVkUgPSAxIDw8IDAsCiAgR19IT09LX0ZMQUdfSU5fQ0FMTCA9IDEgPDwgMSwKICBH
X0hPT0tfRkxBR19NQVNLID0gMHgwZgp9IEdIb29rRmxhZ01hc2s7CgoKCnN0cnVjdCBfR0hvb2tM
aXN0CnsKICBndWludCBzZXFfaWQ7CiAgZ3VpbnQgaG9va19zaXplOwogIGd1aW50IGlzX3NldHVw
IDogMTsKICBHSG9vayAqaG9va3M7CiAgR01lbUNodW5rICpob29rX21lbWNodW5rOwogIEdIb29r
RnJlZUZ1bmMgaG9va19mcmVlOwogIEdIb29rRnJlZUZ1bmMgaG9va19kZXN0cm95Owp9OwoKc3Ry
dWN0IF9HSG9vawp7CiAgZ3BvaW50ZXIgZGF0YTsKICBHSG9vayAqbmV4dDsKICBHSG9vayAqcHJl
djsKICBndWludCByZWZfY291bnQ7CiAgZ3VpbnQgaG9va19pZDsKICBndWludCBmbGFnczsKICBn
cG9pbnRlciBmdW5jOwogIEdEZXN0cm95Tm90aWZ5IGRlc3Ryb3k7Cn07CiMgMTE3NyAiL3Vzci9s
b2NhbC9pbmNsdWRlL2dsaWIuaCIKdm9pZCBnX2hvb2tfbGlzdF9pbml0IChHSG9va0xpc3QgKmhv
b2tfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCBo
b29rX3NpemUpOwp2b2lkIGdfaG9va19saXN0X2NsZWFyIChHSG9va0xpc3QgKmhvb2tfbGlzdCk7
CkdIb29rKiBnX2hvb2tfYWxsb2MgKEdIb29rTGlzdCAqaG9va19saXN0KTsKdm9pZCBnX2hvb2tf
ZnJlZSAoR0hvb2tMaXN0ICpob29rX2xpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0hvb2sgKmhvb2spOwp2b2lkIGdfaG9va19yZWYgKEdIb29rTGlzdCAqaG9v
a19saXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdIb29rICpo
b29rKTsKdm9pZCBnX2hvb2tfdW5yZWYgKEdIb29rTGlzdCAqaG9va19saXN0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdIb29rICpob29rKTsKZ2Jvb2xlYW4gZ19o
b29rX2Rlc3Ryb3kgKEdIb29rTGlzdCAqaG9va19saXN0LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGd1aW50IGhvb2tfaWQpOwp2b2lkIGdfaG9va19kZXN0cm95X2xp
bmsgKEdIb29rTGlzdCAqaG9va19saXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdIb29rICpob29rKTsKdm9pZCBnX2hvb2tfcHJlcGVuZCAoR0hvb2tMaXN0ICpo
b29rX2xpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0hvb2sg
Kmhvb2spOwp2b2lkIGdfaG9va19pbnNlcnRfYmVmb3JlIChHSG9va0xpc3QgKmhvb2tfbGlzdCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSG9vayAqc2libGluZywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSG9vayAqaG9vayk7CnZv
aWQgZ19ob29rX2luc2VydF9zb3J0ZWQgKEdIb29rTGlzdCAqaG9va19saXN0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdIb29rICpob29rLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdIb29rQ29tcGFyZUZ1bmMgZnVuYyk7CkdIb29r
KiBnX2hvb2tfZ2V0IChHSG9va0xpc3QgKmhvb2tfbGlzdCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBndWludCBob29rX2lkKTsKR0hvb2sqIGdfaG9va19maW5kIChH
SG9va0xpc3QgKmhvb2tfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnYm9vbGVhbiBuZWVkX3ZhbGlkcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBHSG9va0ZpbmRGdW5jIGZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgZ3BvaW50ZXIgZGF0YSk7CkdIb29rKiBnX2hvb2tfZmluZF9kYXRhIChH
SG9va0xpc3QgKmhvb2tfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBnYm9vbGVhbiBuZWVkX3ZhbGlkcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBncG9pbnRlciBkYXRhKTsKR0hvb2sqIGdfaG9va19maW5kX2Z1bmMgKEdIb29r
TGlzdCAqaG9va19saXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdib29sZWFuIG5lZWRfdmFsaWRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdwb2ludGVyIGZ1bmMpOwpHSG9vayogZ19ob29rX2ZpbmRfZnVuY19kYXRhIChHSG9v
a0xpc3QgKmhvb2tfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnYm9vbGVhbiBuZWVkX3ZhbGlkcywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBncG9pbnRlciBmdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGdwb2ludGVyIGRhdGEpOwoKR0hvb2sqIGdfaG9va19maXJzdF92YWxpZCAoR0hvb2tM
aXN0ICpob29rX2xpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z2Jvb2xlYW4gbWF5X2JlX2luX2NhbGwpOwoKCgpHSG9vayogZ19ob29rX25leHRfdmFsaWQgKEdI
b29rTGlzdCAqaG9va19saXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEdIb29rICpob29rLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGdib29sZWFuIG1heV9iZV9pbl9jYWxsKTsKCgpnaW50IGdfaG9va19jb21wYXJlX2lkcyAoR0hv
b2sgKm5ld19ob29rLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdI
b29rICpzaWJsaW5nKTsKCgoKCgoKCnZvaWQgZ19ob29rX2xpc3RfaW52b2tlIChHSG9va0xpc3Qg
Kmhvb2tfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9v
bGVhbiBtYXlfcmVjdXJzZSk7CgoKCnZvaWQgZ19ob29rX2xpc3RfaW52b2tlX2NoZWNrIChHSG9v
a0xpc3QgKmhvb2tfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnYm9vbGVhbiBtYXlfcmVjdXJzZSk7CgoKdm9pZCBnX2hvb2tfbGlzdF9tYXJzaGFsIChHSG9v
a0xpc3QgKmhvb2tfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnYm9vbGVhbiBtYXlfcmVjdXJzZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHSG9va01hcnNoYWxsZXIgbWFyc2hhbGxlciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBkYXRhKTsKdm9pZCBnX2hvb2tfbGlzdF9tYXJz
aGFsX2NoZWNrIChHSG9va0xpc3QgKmhvb2tfbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnYm9vbGVhbiBtYXlfcmVjdXJzZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBHSG9va0NoZWNrTWFyc2hhbGxlciBtYXJzaGFsbGVyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEpOwoj
IDEyNjMgIi91c3IvbG9jYWwvaW5jbHVkZS9nbGliLmgiCnZvaWQgZ19vbl9lcnJvcl9xdWVyeSAo
Y29uc3QgZ2NoYXIgKnByZ19uYW1lKTsKdm9pZCBnX29uX2Vycm9yX3N0YWNrX3RyYWNlIChjb25z
dCBnY2hhciAqcHJnX25hbWUpOwoKCgoKZXh0ZXJuIGNvbnN0IGdjaGFyICpnX2xvZ19kb21haW5f
Z2xpYjsKZ3VpbnQgZ19sb2dfc2V0X2hhbmRsZXIgKGNvbnN0IGdjaGFyICpsb2dfZG9tYWluLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMb2dMZXZlbEZsYWdzIGxv
Z19sZXZlbHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0xvZ0Z1
bmMgbG9nX2Z1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Bv
aW50ZXIgdXNlcl9kYXRhKTsKdm9pZCBnX2xvZ19yZW1vdmVfaGFuZGxlciAoY29uc3QgZ2NoYXIg
KmxvZ19kb21haW4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Vp
bnQgaGFuZGxlcl9pZCk7CnZvaWQgZ19sb2dfZGVmYXVsdF9oYW5kbGVyIChjb25zdCBnY2hhciAq
bG9nX2RvbWFpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTG9n
TGV2ZWxGbGFncyBsb2dfbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIgKm1lc3NhZ2UsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3BvaW50ZXIgdW51c2VkX2RhdGEpOwp2b2lkIGdfbG9nIChjb25zdCBnY2hh
ciAqbG9nX2RvbWFpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBH
TG9nTGV2ZWxGbGFncyBsb2dfbGV2ZWwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgZ2NoYXIgKmZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAuLi4pIF9fYXR0cmlidXRlX18oKGZvcm1hdCAocHJpbnRmLCAzLCA0KSkp
Owp2b2lkIGdfbG9ndiAoY29uc3QgZ2NoYXIgKmxvZ19kb21haW4sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0xvZ0xldmVsRmxhZ3MgbG9nX2xldmVsLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpmb3JtYXQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFfbGlzdCBhcmdzKTsKR0xv
Z0xldmVsRmxhZ3MgZ19sb2dfc2V0X2ZhdGFsX21hc2sgKGNvbnN0IGdjaGFyICpsb2dfZG9tYWlu
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdMb2dMZXZlbEZsYWdz
IGZhdGFsX21hc2spOwpHTG9nTGV2ZWxGbGFncyBnX2xvZ19zZXRfYWx3YXlzX2ZhdGFsIChHTG9n
TGV2ZWxGbGFncyBmYXRhbF9tYXNrKTsKIyAxMzM0ICIvdXNyL2xvY2FsL2luY2x1ZGUvZ2xpYi5o
Igp0eXBlZGVmIHZvaWQgKCpHUHJpbnRGdW5jKSAoY29uc3QgZ2NoYXIgKnN0cmluZyk7CnZvaWQg
Z19wcmludCAoY29uc3QgZ2NoYXIgKmZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAuLi4pIF9fYXR0cmlidXRlX18oKGZvcm1hdCAocHJpbnRmLCAxLCAyKSkp
OwpHUHJpbnRGdW5jIGdfc2V0X3ByaW50X2hhbmRsZXIgKEdQcmludEZ1bmMgZnVuYyk7CnZvaWQg
Z19wcmludGVyciAoY29uc3QgZ2NoYXIgKmZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAuLi4pIF9fYXR0cmlidXRlX18oKGZvcm1hdCAocHJpbnRmLCAxLCAy
KSkpOwpHUHJpbnRGdW5jIGdfc2V0X3ByaW50ZXJyX2hhbmRsZXIgKEdQcmludEZ1bmMgZnVuYyk7
CgoKdHlwZWRlZiB2b2lkICgqR0Vycm9yRnVuYykgKGNvbnN0IGdjaGFyICpzdHIpOwp0eXBlZGVm
IHZvaWQgKCpHV2FybmluZ0Z1bmMpIChjb25zdCBnY2hhciAqc3RyKTsKR0Vycm9yRnVuYyBnX3Nl
dF9lcnJvcl9oYW5kbGVyIChHRXJyb3JGdW5jIGZ1bmMpOwpHV2FybmluZ0Z1bmMgZ19zZXRfd2Fy
bmluZ19oYW5kbGVyIChHV2FybmluZ0Z1bmMgZnVuYyk7CkdQcmludEZ1bmMgZ19zZXRfbWVzc2Fn
ZV9oYW5kbGVyIChHUHJpbnRGdW5jIGZ1bmMpOwojIDEzNjEgIi91c3IvbG9jYWwvaW5jbHVkZS9n
bGliLmgiCmdwb2ludGVyIGdfbWFsbG9jIChndWxvbmcgc2l6ZSk7Cmdwb2ludGVyIGdfbWFsbG9j
MCAoZ3Vsb25nIHNpemUpOwpncG9pbnRlciBnX3JlYWxsb2MgKGdwb2ludGVyIG1lbSwKICAgICAg
ICAgICAgICAgICAgICAgICAgZ3Vsb25nIHNpemUpOwp2b2lkIGdfZnJlZSAoZ3BvaW50ZXIgbWVt
KTsKCgoKdm9pZCBnX21lbV9wcm9maWxlICh2b2lkKTsKdm9pZCBnX21lbV9jaGVjayAoZ3BvaW50
ZXIgbWVtKTsKCgoKR0FsbG9jYXRvciogZ19hbGxvY2F0b3JfbmV3IChjb25zdCBnY2hhciAqbmFt
ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50IG5fcHJlYWxsb2NzKTsKdm9p
ZCBnX2FsbG9jYXRvcl9mcmVlIChHQWxsb2NhdG9yICphbGxvY2F0b3IpOwojIDE0MDUgIi91c3Iv
bG9jYWwvaW5jbHVkZS9nbGliLmgiCkdNZW1DaHVuayogZ19tZW1fY2h1bmtfbmV3IChnY2hhciAq
bmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50IGF0b21fc2l6ZSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWxvbmcgYXJlYV9zaXplLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdpbnQgdHlwZSk7CnZvaWQgZ19tZW1fY2h1bmtfZGVzdHJv
eSAoR01lbUNodW5rICptZW1fY2h1bmspOwpncG9pbnRlciBnX21lbV9jaHVua19hbGxvYyAoR01l
bUNodW5rICptZW1fY2h1bmspOwpncG9pbnRlciBnX21lbV9jaHVua19hbGxvYzAgKEdNZW1DaHVu
ayAqbWVtX2NodW5rKTsKdm9pZCBnX21lbV9jaHVua19mcmVlIChHTWVtQ2h1bmsgKm1lbV9jaHVu
aywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBtZW0pOwp2b2lkIGdf
bWVtX2NodW5rX2NsZWFuIChHTWVtQ2h1bmsgKm1lbV9jaHVuayk7CnZvaWQgZ19tZW1fY2h1bmtf
cmVzZXQgKEdNZW1DaHVuayAqbWVtX2NodW5rKTsKdm9pZCBnX21lbV9jaHVua19wcmludCAoR01l
bUNodW5rICptZW1fY2h1bmspOwp2b2lkIGdfbWVtX2NodW5rX2luZm8gKHZvaWQpOwojIDE0Mjcg
Ii91c3IvbG9jYWwvaW5jbHVkZS9nbGliLmgiCnZvaWQgZ19ibG93X2NodW5rcyAodm9pZCk7CgoK
CgpHVGltZXIqIGdfdGltZXJfbmV3ICh2b2lkKTsKdm9pZCBnX3RpbWVyX2Rlc3Ryb3kgKEdUaW1l
ciAqdGltZXIpOwp2b2lkIGdfdGltZXJfc3RhcnQgKEdUaW1lciAqdGltZXIpOwp2b2lkIGdfdGlt
ZXJfc3RvcCAoR1RpbWVyICp0aW1lcik7CnZvaWQgZ190aW1lcl9yZXNldCAoR1RpbWVyICp0aW1l
cik7Cmdkb3VibGUgZ190aW1lcl9lbGFwc2VkIChHVGltZXIgKnRpbWVyLAogICAgICAgICAgICAg
ICAgICAgICAgICAgZ3Vsb25nICptaWNyb3NlY29uZHMpOwoKCgoKCgpnY2hhciogZ19zdHJkZWxp
bWl0IChnY2hhciAqc3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25z
dCBnY2hhciAqZGVsaW1pdGVycywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2No
YXIgbmV3X2RlbGltaXRlcik7Cmdkb3VibGUgZ19zdHJ0b2QgKGNvbnN0IGdjaGFyICpucHRyLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2hhciAqKmVuZHB0cik7CmdjaGFyKiBn
X3N0cmVycm9yIChnaW50IGVycm51bSk7CmdjaGFyKiBnX3N0cnNpZ25hbCAoZ2ludCBzaWdudW0p
OwpnaW50IGdfc3RyY2FzZWNtcCAoY29uc3QgZ2NoYXIgKnMxLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBjb25zdCBnY2hhciAqczIpOwpnaW50IGdfc3RybmNhc2VjbXAgKGNvbnN0
IGdjaGFyICpzMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIg
KnMyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCBuKTsKdm9pZCBnX3N0
cmRvd24gKGdjaGFyICpzdHJpbmcpOwp2b2lkIGdfc3RydXAgKGdjaGFyICpzdHJpbmcpOwp2b2lk
IGdfc3RycmV2ZXJzZSAoZ2NoYXIgKnN0cmluZyk7CgpnY2hhciogZ19zdHJjaHVnIChnY2hhciAq
c3RyaW5nKTsKCmdjaGFyKiBnX3N0cmNob21wIChnY2hhciAqc3RyaW5nKTsKCgoKCgoKZ2NoYXIq
IGdfc3RyZHVwIChjb25zdCBnY2hhciAqc3RyKTsKZ2NoYXIqIGdfc3RyZHVwX3ByaW50ZiAoY29u
c3QgZ2NoYXIgKmZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSBf
X2F0dHJpYnV0ZV9fKChmb3JtYXQgKHByaW50ZiwgMSwgMikpKTsKZ2NoYXIqIGdfc3RyZHVwX3Zw
cmludGYgKGNvbnN0IGdjaGFyICpmb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHZhX2xpc3QgYXJncyk7CmdjaGFyKiBnX3N0cm5kdXAgKGNvbnN0IGdjaGFyICpzdHIsCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50IG4pOwpnY2hhciogZ19zdHJuZmls
bCAoZ3VpbnQgbGVuZ3RoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY2hhciBm
aWxsX2NoYXIpOwpnY2hhciogZ19zdHJjb25jYXQgKGNvbnN0IGdjaGFyICpzdHJpbmcxLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4pOwpnY2hhciogZ19zdHJqb2luIChjb25z
dCBnY2hhciAqc2VwYXJhdG9yLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi4p
OwpnY2hhciogZ19zdHJlc2NhcGUgKGdjaGFyICpzdHJpbmcpOwpncG9pbnRlciBnX21lbWR1cCAo
Z2NvbnN0cG9pbnRlciBtZW0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50
IGJ5dGVfc2l6ZSk7CiMgMTQ5NCAiL3Vzci9sb2NhbC9pbmNsdWRlL2dsaWIuaCIKZ2NoYXIqKiBn
X3N0cnNwbGl0IChjb25zdCBnY2hhciAqc3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBnY2hhciAqZGVsaW1pdGVyLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBnaW50IG1heF90b2tlbnMpOwpnY2hhciogZ19zdHJqb2ludiAoY29uc3QgZ2NoYXIg
KnNlcGFyYXRvciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgKipzdHJf
YXJyYXkpOwp2b2lkIGdfc3RyZnJlZXYgKGdjaGFyICoqc3RyX2FycmF5KTsKCgoKCgpndWludCBn
X3ByaW50Zl9zdHJpbmdfdXBwZXJfYm91bmQgKGNvbnN0IGdjaGFyKiBmb3JtYXQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3MpOwoKCgoKZ2NoYXIqIGdf
Z2V0X3VzZXJfbmFtZSAodm9pZCk7CmdjaGFyKiBnX2dldF9yZWFsX25hbWUgKHZvaWQpOwpnY2hh
ciogZ19nZXRfaG9tZV9kaXIgKHZvaWQpOwpnY2hhciogZ19nZXRfdG1wX2RpciAodm9pZCk7Cmdj
aGFyKiBnX2dldF9wcmduYW1lICh2b2lkKTsKdm9pZCBnX3NldF9wcmduYW1lIChjb25zdCBnY2hh
ciAqcHJnbmFtZSk7CgoKCgpndWludCBnX3BhcnNlX2RlYnVnX3N0cmluZyAoY29uc3QgZ2NoYXIg
KnN0cmluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0RlYnVnS2V5ICprZXlz
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCBua2V5cyk7CmdpbnQgZ19z
bnByaW50ZiAoZ2NoYXIgKnN0cmluZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3Vsb25nIG4sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjaGFyIGNvbnN0ICpm
b3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLikgX19hdHRyaWJ1dGVf
XygoZm9ybWF0IChwcmludGYsIDMsIDQpKSk7CmdpbnQgZ192c25wcmludGYgKGdjaGFyICpzdHJp
bmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1bG9uZyBuLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnY2hhciBjb25zdCAqZm9ybWF0LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2YV9saXN0IGFyZ3MpOwpnY2hhciogZ19iYXNlbmFtZSAoY29u
c3QgZ2NoYXIgKmZpbGVfbmFtZSk7CgpnYm9vbGVhbiBnX3BhdGhfaXNfYWJzb2x1dGUgKGNvbnN0
IGdjaGFyICpmaWxlX25hbWUpOwoKZ2NoYXIqIGdfcGF0aF9za2lwX3Jvb3QgKGdjaGFyICpmaWxl
X25hbWUpOwoKCmdjaGFyKiBnX2Rpcm5hbWUgKGNvbnN0IGdjaGFyICpmaWxlX25hbWUpOwpnY2hh
ciogZ19nZXRfY3VycmVudF9kaXIgKHZvaWQpOwpnY2hhciogZ19nZXRlbnYgKGNvbnN0IGdjaGFy
ICp2YXJpYWJsZSk7CgoKCgoKCgp2b2lkIGdfYXRleGl0IChHVm9pZEZ1bmMgZnVuYyk7CgoKCgpl
eHRlcm4gaW5saW5lIGdpbnQgZ19iaXRfbnRoX2xzZiAoZ3VpbnQzMiBtYXNrLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50IG50aF9iaXQpOwoKZXh0ZXJuIGlubGlu
ZSBnaW50CmdfYml0X250aF9sc2YgKGd1aW50MzIgbWFzaywKICAgICAgICAgICAgICAgZ2ludCBu
dGhfYml0KQp7CiAgZG8KICAgIHsKICAgICAgbnRoX2JpdCsrOwogICAgICBpZiAobWFzayAmICgx
IDw8IChndWludCkgbnRoX2JpdCkpCiAgICAgICAgcmV0dXJuIG50aF9iaXQ7CiAgICB9CiAgd2hp
bGUgKG50aF9iaXQgPCAzMik7CiAgcmV0dXJuIC0xOwp9CgoKZXh0ZXJuIGlubGluZSBnaW50IGdf
Yml0X250aF9tc2YgKGd1aW50MzIgbWFzaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2ludCBudGhfYml0KTsKCmV4dGVybiBpbmxpbmUgZ2ludApnX2JpdF9udGhfbXNm
IChndWludDMyIG1hc2ssCiAgICAgICAgICAgICAgIGdpbnQgbnRoX2JpdCkKewogIGlmIChudGhf
Yml0IDwgMCkKICAgIG50aF9iaXQgPSAzMjsKICBkbwogICAgewogICAgICBudGhfYml0LS07CiAg
ICAgIGlmIChtYXNrICYgKDEgPDwgKGd1aW50KSBudGhfYml0KSkKICAgICAgICByZXR1cm4gbnRo
X2JpdDsKICAgIH0KICB3aGlsZSAobnRoX2JpdCA+IDApOwogIHJldHVybiAtMTsKfQoKCmV4dGVy
biBpbmxpbmUgZ3VpbnQgZ19iaXRfc3RvcmFnZSAoZ3VpbnQgbnVtYmVyKTsKCmV4dGVybiBpbmxp
bmUgZ3VpbnQKZ19iaXRfc3RvcmFnZSAoZ3VpbnQgbnVtYmVyKQp7CiAgcmVnaXN0ZXIgZ3VpbnQg
bl9iaXRzID0gMDsKCiAgZG8KICAgIHsKICAgICAgbl9iaXRzKys7CiAgICAgIG51bWJlciA+Pj0g
MTsKICAgIH0KICB3aGlsZSAobnVtYmVyKTsKICByZXR1cm4gbl9iaXRzOwp9CgoKCgpHU3RyaW5n
Q2h1bmsqIGdfc3RyaW5nX2NodW5rX25ldyAoZ2ludCBzaXplKTsKdm9pZCBnX3N0cmluZ19jaHVu
a19mcmVlIChHU3RyaW5nQ2h1bmsgKmNodW5rKTsKZ2NoYXIqIGdfc3RyaW5nX2NodW5rX2luc2Vy
dCAoR1N0cmluZ0NodW5rICpjaHVuaywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAqc3RyaW5nKTsKZ2NoYXIqIGdfc3RyaW5nX2NodW5rX2lu
c2VydF9jb25zdCAoR1N0cmluZ0NodW5rICpjaHVuaywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqc3RyaW5nKTsKCgoKCkdTdHJpbmcqIGdf
c3RyaW5nX25ldyAoY29uc3QgZ2NoYXIgKmluaXQpOwpHU3RyaW5nKiBnX3N0cmluZ19zaXplZF9u
ZXcgKGd1aW50IGRmbF9zaXplKTsKdm9pZCBnX3N0cmluZ19mcmVlIChHU3RyaW5nICpzdHJpbmcs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBmcmVlX3NlZ21lbnQpOwpHU3RyaW5n
KiBnX3N0cmluZ19hc3NpZ24gKEdTdHJpbmcgKmx2YWwsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgZ2NoYXIgKnJ2YWwpOwpHU3RyaW5nKiBnX3N0cmluZ190cnVuY2F0ZSAoR1N0
cmluZyAqc3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgbGVuKTsKR1N0
cmluZyogZ19zdHJpbmdfYXBwZW5kIChHU3RyaW5nICpzdHJpbmcsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnZhbCk7CkdTdHJpbmcqIGdfc3RyaW5nX2FwcGVuZF9j
IChHU3RyaW5nICpzdHJpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgYyk7
CkdTdHJpbmcqIGdfc3RyaW5nX3ByZXBlbmQgKEdTdHJpbmcgKnN0cmluZywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqdmFsKTsKR1N0cmluZyogZ19zdHJpbmdfcHJl
cGVuZF9jIChHU3RyaW5nICpzdHJpbmcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2No
YXIgYyk7CkdTdHJpbmcqIGdfc3RyaW5nX2luc2VydCAoR1N0cmluZyAqc3RyaW5nLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdpbnQgcG9zLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IGdjaGFyICp2YWwpOwpHU3RyaW5nKiBnX3N0cmluZ19pbnNlcnRfYyAoR1N0cmlu
ZyAqc3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgcG9zLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdjaGFyIGMpOwpHU3RyaW5nKiBnX3N0cmluZ19lcmFzZSAo
R1N0cmluZyAqc3RyaW5nLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgcG9zLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgbGVuKTsKR1N0cmluZyogZ19zdHJpbmdf
ZG93biAoR1N0cmluZyAqc3RyaW5nKTsKR1N0cmluZyogZ19zdHJpbmdfdXAgKEdTdHJpbmcgKnN0
cmluZyk7CnZvaWQgZ19zdHJpbmdfc3ByaW50ZiAoR1N0cmluZyAqc3RyaW5nLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpmb3JtYXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLi4uKSBfX2F0dHJpYnV0ZV9fKChmb3JtYXQgKHByaW50ZiwgMiwgMykpKTsK
dm9pZCBnX3N0cmluZ19zcHJpbnRmYSAoR1N0cmluZyAqc3RyaW5nLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpmb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLi4uKSBfX2F0dHJpYnV0ZV9fKChmb3JtYXQgKHByaW50ZiwgMiwgMykpKTsKIyAxNjY2
ICIvdXNyL2xvY2FsL2luY2x1ZGUvZ2xpYi5oIgpHQXJyYXkqIGdfYXJyYXlfbmV3IChnYm9vbGVh
biB6ZXJvX3Rlcm1pbmF0ZWQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jv
b2xlYW4gY2xlYXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgZWxl
bWVudF9zaXplKTsKdm9pZCBnX2FycmF5X2ZyZWUgKEdBcnJheSAqYXJyYXksCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gZnJlZV9zZWdtZW50KTsKR0FycmF5KiBn
X2FycmF5X2FwcGVuZF92YWxzIChHQXJyYXkgKmFycmF5LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGdjb25zdHBvaW50ZXIgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBndWludCBsZW4pOwpHQXJyYXkqIGdfYXJyYXlfcHJlcGVuZF92YWxzIChHQXJy
YXkgKmFycmF5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjb25zdHBvaW50
ZXIgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCBsZW4pOwpH
QXJyYXkqIGdfYXJyYXlfaW5zZXJ0X3ZhbHMgKEdBcnJheSAqYXJyYXksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgaW5kZXgsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2NvbnN0cG9pbnRlciBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGd1aW50IGxlbik7CkdBcnJheSogZ19hcnJheV9zZXRfc2l6ZSAoR0FycmF5ICph
cnJheSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCBsZW5ndGgpOwpH
QXJyYXkqIGdfYXJyYXlfcmVtb3ZlX2luZGV4IChHQXJyYXkgKmFycmF5LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGd1aW50IGluZGV4KTsKR0FycmF5KiBnX2FycmF5X3JlbW92
ZV9pbmRleF9mYXN0IChHQXJyYXkgKmFycmF5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGd1aW50IGluZGV4KTsKCgoKCgoKCkdQdHJBcnJheSogZ19wdHJfYXJyYXlfbmV3ICh2
b2lkKTsKdm9pZCBnX3B0cl9hcnJheV9mcmVlIChHUHRyQXJyYXkgKmFycmF5LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGZyZWVfc2VnKTsKdm9p
ZCBnX3B0cl9hcnJheV9zZXRfc2l6ZSAoR1B0ckFycmF5ICphcnJheSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50IGxlbmd0aCk7Cmdwb2ludGVyIGdfcHRy
X2FycmF5X3JlbW92ZV9pbmRleCAoR1B0ckFycmF5ICphcnJheSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCBpbmRleCk7Cmdwb2ludGVyIGdfcHRyX2Fy
cmF5X3JlbW92ZV9pbmRleF9mYXN0IChHUHRyQXJyYXkgKmFycmF5LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50IGluZGV4KTsKZ2Jvb2xlYW4gZ19wdHJf
YXJyYXlfcmVtb3ZlIChHUHRyQXJyYXkgKmFycmF5LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEpOwpnYm9vbGVhbiBnX3B0cl9hcnJheV9y
ZW1vdmVfZmFzdCAoR1B0ckFycmF5ICphcnJheSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBncG9pbnRlciBkYXRhKTsKdm9pZCBnX3B0cl9hcnJheV9hZGQgKEdQ
dHJBcnJheSAqYXJyYXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ3BvaW50ZXIgZGF0YSk7CgoKCgoKR0J5dGVBcnJheSogZ19ieXRlX2FycmF5X25ldyAodm9p
ZCk7CnZvaWQgZ19ieXRlX2FycmF5X2ZyZWUgKEdCeXRlQXJyYXkgKmFycmF5LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGZyZWVfc2VnbWVudCk7
CkdCeXRlQXJyYXkqIGdfYnl0ZV9hcnJheV9hcHBlbmQgKEdCeXRlQXJyYXkgKmFycmF5LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGd1aW50OCAqZGF0
YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCBsZW4p
OwpHQnl0ZUFycmF5KiBnX2J5dGVfYXJyYXlfcHJlcGVuZCAoR0J5dGVBcnJheSAqYXJyYXksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ3VpbnQ4ICpk
YXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50IGxl
bik7CkdCeXRlQXJyYXkqIGdfYnl0ZV9hcnJheV9zZXRfc2l6ZSAoR0J5dGVBcnJheSAqYXJyYXks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgbGVuZ3Ro
KTsKR0J5dGVBcnJheSogZ19ieXRlX2FycmF5X3JlbW92ZV9pbmRleCAoR0J5dGVBcnJheSAqYXJy
YXksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgaW5k
ZXgpOwpHQnl0ZUFycmF5KiBnX2J5dGVfYXJyYXlfcmVtb3ZlX2luZGV4X2Zhc3QgKEdCeXRlQXJy
YXkgKmFycmF5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1
aW50IGluZGV4KTsKCgoKCmdpbnQgZ19zdHJfZXF1YWwgKGdjb25zdHBvaW50ZXIgdiwKICAgICAg
ICAgICAgICAgICAgIGdjb25zdHBvaW50ZXIgdjIpOwpndWludCBnX3N0cl9oYXNoIChnY29uc3Rw
b2ludGVyIHYpOwoKZ2ludCBnX2ludF9lcXVhbCAoZ2NvbnN0cG9pbnRlciB2LAogICAgICAgICAg
ICAgICAgICAgZ2NvbnN0cG9pbnRlciB2Mik7Cmd1aW50IGdfaW50X2hhc2ggKGdjb25zdHBvaW50
ZXIgdik7CgoKCgoKCgpndWludCBnX2RpcmVjdF9oYXNoIChnY29uc3Rwb2ludGVyIHYpOwpnaW50
IGdfZGlyZWN0X2VxdWFsIChnY29uc3Rwb2ludGVyIHYsCiAgICAgICAgICAgICAgICAgICAgICBn
Y29uc3Rwb2ludGVyIHYyKTsKCgoKCkdRdWFyayBnX3F1YXJrX3RyeV9zdHJpbmcgKGNvbnN0IGdj
aGFyICpzdHJpbmcpOwpHUXVhcmsgZ19xdWFya19mcm9tX3N0YXRpY19zdHJpbmcgKGNvbnN0IGdj
aGFyICpzdHJpbmcpOwpHUXVhcmsgZ19xdWFya19mcm9tX3N0cmluZyAoY29uc3QgZ2NoYXIgKnN0
cmluZyk7CmdjaGFyKiBnX3F1YXJrX3RvX3N0cmluZyAoR1F1YXJrIHF1YXJrKTsKCgoKCgp2b2lk
IGdfZGF0YWxpc3RfaW5pdCAoR0RhdGEgKipkYXRhbGlzdCk7CnZvaWQgZ19kYXRhbGlzdF9jbGVh
ciAoR0RhdGEgKipkYXRhbGlzdCk7Cmdwb2ludGVyIGdfZGF0YWxpc3RfaWRfZ2V0X2RhdGEgKEdE
YXRhICoqZGF0YWxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdRdWFyayBrZXlfaWQpOwp2b2lkIGdfZGF0YWxpc3RfaWRfc2V0X2RhdGFfZnVsbCAoR0RhdGEg
KipkYXRhbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1F1
YXJrIGtleV9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3Bv
aW50ZXIgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Rl
c3Ryb3lOb3RpZnkgZGVzdHJveV9mdW5jKTsKdm9pZCBnX2RhdGFsaXN0X2lkX3JlbW92ZV9ub19u
b3RpZnkgKEdEYXRhICoqZGF0YWxpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdRdWFyayBrZXlfaWQpOwp2b2lkIGdfZGF0YWxpc3RfZm9yZWFjaCAoR0RhdGEg
KipkYXRhbGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Rh
dGFGb3JlYWNoRnVuYyBmdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBncG9pbnRlciB1c2VyX2RhdGEpOwojIDE3OTUgIi91c3IvbG9jYWwvaW5jbHVkZS9nbGli
LmgiCnZvaWQgZ19kYXRhc2V0X2Rlc3Ryb3kgKGdjb25zdHBvaW50ZXIgZGF0YXNldF9sb2NhdGlv
bik7Cmdwb2ludGVyIGdfZGF0YXNldF9pZF9nZXRfZGF0YSAoZ2NvbnN0cG9pbnRlciBkYXRhc2V0
X2xvY2F0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdRdWFy
ayBrZXlfaWQpOwp2b2lkIGdfZGF0YXNldF9pZF9zZXRfZGF0YV9mdWxsIChnY29uc3Rwb2ludGVy
IGRhdGFzZXRfbG9jYXRpb24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgR1F1YXJrIGtleV9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBncG9pbnRlciBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IEdEZXN0cm95Tm90aWZ5IGRlc3Ryb3lfZnVuYyk7CnZvaWQgZ19kYXRhc2V0X2lkX3JlbW92ZV9u
b19ub3RpZnkgKGdjb25zdHBvaW50ZXIgZGF0YXNldF9sb2NhdGlvbiwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHUXVhcmsga2V5X2lkKTsKdm9pZCBnX2RhdGFzZXRf
Zm9yZWFjaCAoZ2NvbnN0cG9pbnRlciBkYXRhc2V0X2xvY2F0aW9uLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdEYXRhRm9yZWFjaEZ1bmMgZnVuYywKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciB1c2VyX2RhdGEpOwojIDE4
MzkgIi91c3IvbG9jYWwvaW5jbHVkZS9nbGliLmgiCnR5cGVkZWYgZW51bQp7CiAgR19FUlJfVU5L
Tk9XTiwKICBHX0VSUl9VTkVYUF9FT0YsCiAgR19FUlJfVU5FWFBfRU9GX0lOX1NUUklORywKICBH
X0VSUl9VTkVYUF9FT0ZfSU5fQ09NTUVOVCwKICBHX0VSUl9OT05fRElHSVRfSU5fQ09OU1QsCiAg
R19FUlJfRElHSVRfUkFESVgsCiAgR19FUlJfRkxPQVRfUkFESVgsCiAgR19FUlJfRkxPQVRfTUFM
Rk9STUVECn0gR0Vycm9yVHlwZTsKCgp0eXBlZGVmIGVudW0KewogIEdfVE9LRU5fRU9GID0gMCwK
CiAgR19UT0tFTl9MRUZUX1BBUkVOID0gJygnLAogIEdfVE9LRU5fUklHSFRfUEFSRU4gPSAnKScs
CiAgR19UT0tFTl9MRUZUX0NVUkxZID0gJ3snLAogIEdfVE9LRU5fUklHSFRfQ1VSTFkgPSAnfScs
CiAgR19UT0tFTl9MRUZUX0JSQUNFID0gJ1snLAogIEdfVE9LRU5fUklHSFRfQlJBQ0UgPSAnXScs
CiAgR19UT0tFTl9FUVVBTF9TSUdOID0gJz0nLAogIEdfVE9LRU5fQ09NTUEgPSAnLCcsCgogIEdf
VE9LRU5fTk9ORSA9IDI1NiwKCiAgR19UT0tFTl9FUlJPUiwKCiAgR19UT0tFTl9DSEFSLAogIEdf
VE9LRU5fQklOQVJZLAogIEdfVE9LRU5fT0NUQUwsCiAgR19UT0tFTl9JTlQsCiAgR19UT0tFTl9I
RVgsCiAgR19UT0tFTl9GTE9BVCwKICBHX1RPS0VOX1NUUklORywKCiAgR19UT0tFTl9TWU1CT0ws
CiAgR19UT0tFTl9JREVOVElGSUVSLAogIEdfVE9LRU5fSURFTlRJRklFUl9OVUxMLAoKICBHX1RP
S0VOX0NPTU1FTlRfU0lOR0xFLAogIEdfVE9LRU5fQ09NTUVOVF9NVUxUSSwKICBHX1RPS0VOX0xB
U1QKfSBHVG9rZW5UeXBlOwoKdW5pb24gX0dUb2tlblZhbHVlCnsKICBncG9pbnRlciB2X3N5bWJv
bDsKICBnY2hhciAqdl9pZGVudGlmaWVyOwogIGd1bG9uZyB2X2JpbmFyeTsKICBndWxvbmcgdl9v
Y3RhbDsKICBndWxvbmcgdl9pbnQ7CiAgZ2RvdWJsZSB2X2Zsb2F0OwogIGd1bG9uZyB2X2hleDsK
ICBnY2hhciAqdl9zdHJpbmc7CiAgZ2NoYXIgKnZfY29tbWVudDsKICBndWNoYXIgdl9jaGFyOwog
IGd1aW50IHZfZXJyb3I7Cn07CgpzdHJ1Y3QgX0dTY2FubmVyQ29uZmlnCnsKCgogIGdjaGFyICpj
c2V0X3NraXBfY2hhcmFjdGVyczsKICBnY2hhciAqY3NldF9pZGVudGlmaWVyX2ZpcnN0OwogIGdj
aGFyICpjc2V0X2lkZW50aWZpZXJfbnRoOwogIGdjaGFyICpjcGFpcl9jb21tZW50X3NpbmdsZTsK
CgoKICBndWludCBjYXNlX3NlbnNpdGl2ZSA6IDE7CgoKCgogIGd1aW50IHNraXBfY29tbWVudF9t
dWx0aSA6IDE7CiAgZ3VpbnQgc2tpcF9jb21tZW50X3NpbmdsZSA6IDE7CiAgZ3VpbnQgc2Nhbl9j
b21tZW50X211bHRpIDogMTsKICBndWludCBzY2FuX2lkZW50aWZpZXIgOiAxOwogIGd1aW50IHNj
YW5faWRlbnRpZmllcl8xY2hhciA6IDE7CiAgZ3VpbnQgc2Nhbl9pZGVudGlmaWVyX05VTEwgOiAx
OwogIGd1aW50IHNjYW5fc3ltYm9scyA6IDE7CiAgZ3VpbnQgc2Nhbl9iaW5hcnkgOiAxOwogIGd1
aW50IHNjYW5fb2N0YWwgOiAxOwogIGd1aW50IHNjYW5fZmxvYXQgOiAxOwogIGd1aW50IHNjYW5f
aGV4IDogMTsKICBndWludCBzY2FuX2hleF9kb2xsYXIgOiAxOwogIGd1aW50IHNjYW5fc3RyaW5n
X3NxIDogMTsKICBndWludCBzY2FuX3N0cmluZ19kcSA6IDE7CiAgZ3VpbnQgbnVtYmVyc18yX2lu
dCA6IDE7CiAgZ3VpbnQgaW50XzJfZmxvYXQgOiAxOwogIGd1aW50IGlkZW50aWZpZXJfMl9zdHJp
bmcgOiAxOwogIGd1aW50IGNoYXJfMl90b2tlbiA6IDE7CiAgZ3VpbnQgc3ltYm9sXzJfdG9rZW4g
OiAxOwogIGd1aW50IHNjb3BlXzBfZmFsbGJhY2sgOiAxOwp9OwoKc3RydWN0IF9HU2Nhbm5lcgp7
CgogIGdwb2ludGVyIHVzZXJfZGF0YTsKICBndWludCBtYXhfcGFyc2VfZXJyb3JzOwoKCiAgZ3Vp
bnQgcGFyc2VfZXJyb3JzOwoKCiAgY29uc3QgZ2NoYXIgKmlucHV0X25hbWU7CgoKICBncG9pbnRl
ciBkZXJpdmVkX2RhdGE7CgoKICBHU2Nhbm5lckNvbmZpZyAqY29uZmlnOwoKCiAgR1Rva2VuVHlw
ZSB0b2tlbjsKICBHVG9rZW5WYWx1ZSB2YWx1ZTsKICBndWludCBsaW5lOwogIGd1aW50IHBvc2l0
aW9uOwoKCiAgR1Rva2VuVHlwZSBuZXh0X3Rva2VuOwogIEdUb2tlblZhbHVlIG5leHRfdmFsdWU7
CiAgZ3VpbnQgbmV4dF9saW5lOwogIGd1aW50IG5leHRfcG9zaXRpb247CgoKICBHSGFzaFRhYmxl
ICpzeW1ib2xfdGFibGU7CiAgZ2ludCBpbnB1dF9mZDsKICBjb25zdCBnY2hhciAqdGV4dDsKICBj
b25zdCBnY2hhciAqdGV4dF9lbmQ7CiAgZ2NoYXIgKmJ1ZmZlcjsKICBndWludCBzY29wZV9pZDsK
CgogIEdTY2FubmVyTXNnRnVuYyBtc2dfaGFuZGxlcjsKfTsKCkdTY2FubmVyKiBnX3NjYW5uZXJf
bmV3IChHU2Nhbm5lckNvbmZpZyAqY29uZmlnX3RlbXBsKTsKdm9pZCBnX3NjYW5uZXJfZGVzdHJv
eSAoR1NjYW5uZXIgKnNjYW5uZXIpOwp2b2lkIGdfc2Nhbm5lcl9pbnB1dF9maWxlIChHU2Nhbm5l
ciAqc2Nhbm5lciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdpbnQgaW5wdXRfZmQpOwp2b2lkIGdfc2Nhbm5lcl9zeW5jX2ZpbGVfb2Zmc2V0IChHU2Nh
bm5lciAqc2Nhbm5lcik7CnZvaWQgZ19zY2FubmVyX2lucHV0X3RleHQgKEdTY2FubmVyICpzY2Fu
bmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29u
c3QgZ2NoYXIgKnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBndWludCB0ZXh0X2xlbik7CkdUb2tlblR5cGUgZ19zY2FubmVyX2dldF9uZXh0X3Rv
a2VuIChHU2Nhbm5lciAqc2Nhbm5lcik7CkdUb2tlblR5cGUgZ19zY2FubmVyX3BlZWtfbmV4dF90
b2tlbiAoR1NjYW5uZXIgKnNjYW5uZXIpOwpHVG9rZW5UeXBlIGdfc2Nhbm5lcl9jdXJfdG9rZW4g
KEdTY2FubmVyICpzY2FubmVyKTsKR1Rva2VuVmFsdWUgZ19zY2FubmVyX2N1cl92YWx1ZSAoR1Nj
YW5uZXIgKnNjYW5uZXIpOwpndWludCBnX3NjYW5uZXJfY3VyX2xpbmUgKEdTY2FubmVyICpzY2Fu
bmVyKTsKZ3VpbnQgZ19zY2FubmVyX2N1cl9wb3NpdGlvbiAoR1NjYW5uZXIgKnNjYW5uZXIpOwpn
Ym9vbGVhbiBnX3NjYW5uZXJfZW9mIChHU2Nhbm5lciAqc2Nhbm5lcik7Cmd1aW50IGdfc2Nhbm5l
cl9zZXRfc2NvcGUgKEdTY2FubmVyICpzY2FubmVyLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgc2NvcGVfaWQpOwp2b2lkIGdfc2Nhbm5lcl9z
Y29wZV9hZGRfc3ltYm9sIChHU2Nhbm5lciAqc2Nhbm5lciwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50IHNjb3BlX2lkLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2NoYXIgKnN5bWJvbCwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVy
IHZhbHVlKTsKdm9pZCBnX3NjYW5uZXJfc2NvcGVfcmVtb3ZlX3N5bWJvbCAoR1NjYW5uZXIgKnNj
YW5uZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn
dWludCBzY29wZV9pZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnN0IGdjaGFyICpzeW1ib2wpOwpncG9pbnRlciBnX3NjYW5uZXJfc2NvcGVfbG9v
a3VwX3N5bWJvbCAoR1NjYW5uZXIgKnNjYW5uZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBndWludCBzY29wZV9pZCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICpzeW1ib2wpOwp2b2lk
IGdfc2Nhbm5lcl9zY29wZV9mb3JlYWNoX3N5bWJvbCAoR1NjYW5uZXIgKnNjYW5uZXIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCBzY29wZV9p
ZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdIRnVu
YyBmdW5jLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3BvaW50ZXIgdXNlcl9kYXRhKTsKZ3BvaW50ZXIgZ19zY2FubmVyX2xvb2t1cF9zeW1ib2wgKEdT
Y2FubmVyICpzY2FubmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgZ2NoYXIgKnN5bWJvbCk7CnZvaWQgZ19zY2FubmVyX2ZyZWV6ZV9zeW1i
b2xfdGFibGUgKEdTY2FubmVyICpzY2FubmVyKTsKdm9pZCBnX3NjYW5uZXJfdGhhd19zeW1ib2xf
dGFibGUgKEdTY2FubmVyICpzY2FubmVyKTsKdm9pZCBnX3NjYW5uZXJfdW5leHBfdG9rZW4gKEdT
Y2FubmVyICpzY2FubmVyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR1Rva2VuVHlwZSBleHBlY3RlZF90b2tlbiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGdjaGFyICppZGVudGlmaWVyX3NwZWMs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBn
Y2hhciAqc3ltYm9sX3NwZWMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAqc3ltYm9sX25hbWUsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqbWVzc2FnZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgaXNfZXJyb3Ip
Owp2b2lkIGdfc2Nhbm5lcl9lcnJvciAoR1NjYW5uZXIgKnNjYW5uZXIsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAqZm9ybWF0LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSBfX2F0
dHJpYnV0ZV9fKChmb3JtYXQgKHByaW50ZiwgMiwgMykpKTsKdm9pZCBnX3NjYW5uZXJfd2FybiAo
R1NjYW5uZXIgKnNjYW5uZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBnY2hhciAqZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgLi4uKSBfX2F0dHJpYnV0ZV9fKChmb3JtYXQgKHByaW50
ZiwgMiwgMykpKTsKZ2ludCBnX3NjYW5uZXJfc3RhdF9tb2RlIChjb25zdCBnY2hhciAqZmlsZW5h
bWUpOwojIDIwNDUgIi91c3IvbG9jYWwvaW5jbHVkZS9nbGliLmgiCnN0cnVjdCBfR0NvbXBsZXRp
b24KewogIEdMaXN0KiBpdGVtczsKICBHQ29tcGxldGlvbkZ1bmMgZnVuYzsKCiAgZ2NoYXIqIHBy
ZWZpeDsKICBHTGlzdCogY2FjaGU7Cn07CgpHQ29tcGxldGlvbiogZ19jb21wbGV0aW9uX25ldyAo
R0NvbXBsZXRpb25GdW5jIGZ1bmMpOwp2b2lkIGdfY29tcGxldGlvbl9hZGRfaXRlbXMgKEdDb21w
bGV0aW9uKiBjbXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGlz
dCogaXRlbXMpOwp2b2lkIGdfY29tcGxldGlvbl9yZW1vdmVfaXRlbXMgKEdDb21wbGV0aW9uKiBj
bXAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTGlzdCogaXRlbXMp
Owp2b2lkIGdfY29tcGxldGlvbl9jbGVhcl9pdGVtcyAoR0NvbXBsZXRpb24qIGNtcCk7CkdMaXN0
KiBnX2NvbXBsZXRpb25fY29tcGxldGUgKEdDb21wbGV0aW9uKiBjbXAsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBnY2hhciogcHJlZml4LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIqKiBuZXdfcHJlZml4KTsKdm9pZCBnX2NvbXBs
ZXRpb25fZnJlZSAoR0NvbXBsZXRpb24qIGNtcCk7CiMgMjA3NSAiL3Vzci9sb2NhbC9pbmNsdWRl
L2dsaWIuaCIKdHlwZWRlZiBndWludDE2IEdEYXRlWWVhcjsKdHlwZWRlZiBndWludDggR0RhdGVE
YXk7CnR5cGVkZWYgc3RydWN0IF9HRGF0ZSBHRGF0ZTsKCnN0cnVjdCB0bTsKCgp0eXBlZGVmIGVu
dW0KewogIEdfREFURV9EQVkgPSAwLAogIEdfREFURV9NT05USCA9IDEsCiAgR19EQVRFX1lFQVIg
PSAyCn0gR0RhdGVETVk7CgoKdHlwZWRlZiBlbnVtCnsKICBHX0RBVEVfQkFEX1dFRUtEQVkgPSAw
LAogIEdfREFURV9NT05EQVkgPSAxLAogIEdfREFURV9UVUVTREFZID0gMiwKICBHX0RBVEVfV0VE
TkVTREFZID0gMywKICBHX0RBVEVfVEhVUlNEQVkgPSA0LAogIEdfREFURV9GUklEQVkgPSA1LAog
IEdfREFURV9TQVRVUkRBWSA9IDYsCiAgR19EQVRFX1NVTkRBWSA9IDcKfSBHRGF0ZVdlZWtkYXk7
CnR5cGVkZWYgZW51bQp7CiAgR19EQVRFX0JBRF9NT05USCA9IDAsCiAgR19EQVRFX0pBTlVBUlkg
PSAxLAogIEdfREFURV9GRUJSVUFSWSA9IDIsCiAgR19EQVRFX01BUkNIID0gMywKICBHX0RBVEVf
QVBSSUwgPSA0LAogIEdfREFURV9NQVkgPSA1LAogIEdfREFURV9KVU5FID0gNiwKICBHX0RBVEVf
SlVMWSA9IDcsCiAgR19EQVRFX0FVR1VTVCA9IDgsCiAgR19EQVRFX1NFUFRFTUJFUiA9IDksCiAg
R19EQVRFX09DVE9CRVIgPSAxMCwKICBHX0RBVEVfTk9WRU1CRVIgPSAxMSwKICBHX0RBVEVfREVD
RU1CRVIgPSAxMgp9IEdEYXRlTW9udGg7CiMgMjEyNyAiL3Vzci9sb2NhbC9pbmNsdWRlL2dsaWIu
aCIKc3RydWN0IF9HRGF0ZQp7CiAgZ3VpbnQganVsaWFuX2RheXMgOiAzMjsKCgoKCgogIGd1aW50
IGp1bGlhbiA6IDE7CiAgZ3VpbnQgZG15IDogMTsKCgogIGd1aW50IGRheSA6IDY7CiAgZ3VpbnQg
bW9udGggOiA0OwogIGd1aW50IHllYXIgOiAxNjsKfTsKCgoKCgpHRGF0ZSogZ19kYXRlX25ldyAo
dm9pZCk7CkdEYXRlKiBnX2RhdGVfbmV3X2RteSAoR0RhdGVEYXkgZGF5LAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0RhdGVNb250aCBtb250aCwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEYXRlWWVhciB5ZWFyKTsKR0RhdGUq
IGdfZGF0ZV9uZXdfanVsaWFuIChndWludDMyIGp1bGlhbl9kYXkpOwp2b2lkIGdfZGF0ZV9mcmVl
IChHRGF0ZSAqZGF0ZSk7CgoKCgoKCmdib29sZWFuIGdfZGF0ZV92YWxpZCAoR0RhdGUgKmRhdGUp
OwpnYm9vbGVhbiBnX2RhdGVfdmFsaWRfZGF5IChHRGF0ZURheSBkYXkpOwpnYm9vbGVhbiBnX2Rh
dGVfdmFsaWRfbW9udGggKEdEYXRlTW9udGggbW9udGgpOwpnYm9vbGVhbiBnX2RhdGVfdmFsaWRf
eWVhciAoR0RhdGVZZWFyIHllYXIpOwpnYm9vbGVhbiBnX2RhdGVfdmFsaWRfd2Vla2RheSAoR0Rh
dGVXZWVrZGF5IHdlZWtkYXkpOwpnYm9vbGVhbiBnX2RhdGVfdmFsaWRfanVsaWFuIChndWludDMy
IGp1bGlhbl9kYXRlKTsKZ2Jvb2xlYW4gZ19kYXRlX3ZhbGlkX2RteSAoR0RhdGVEYXkgZGF5LAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0RhdGVNb250aCBtb250
aCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEYXRlWWVhciB5
ZWFyKTsKCkdEYXRlV2Vla2RheSBnX2RhdGVfd2Vla2RheSAoR0RhdGUgKmRhdGUpOwpHRGF0ZU1v
bnRoIGdfZGF0ZV9tb250aCAoR0RhdGUgKmRhdGUpOwpHRGF0ZVllYXIgZ19kYXRlX3llYXIgKEdE
YXRlICpkYXRlKTsKR0RhdGVEYXkgZ19kYXRlX2RheSAoR0RhdGUgKmRhdGUpOwpndWludDMyIGdf
ZGF0ZV9qdWxpYW4gKEdEYXRlICpkYXRlKTsKZ3VpbnQgZ19kYXRlX2RheV9vZl95ZWFyIChHRGF0
ZSAqZGF0ZSk7CgoKCgoKCgpndWludCBnX2RhdGVfbW9uZGF5X3dlZWtfb2ZfeWVhciAoR0RhdGUg
KmRhdGUpOwpndWludCBnX2RhdGVfc3VuZGF5X3dlZWtfb2ZfeWVhciAoR0RhdGUgKmRhdGUpOwoK
CgoKCnZvaWQgZ19kYXRlX2NsZWFyIChHRGF0ZSAqZGF0ZSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGd1aW50IG5fZGF0ZXMpOwoKCgoKCnZvaWQgZ19kYXRlX3Nl
dF9wYXJzZSAoR0RhdGUgKmRhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdCBnY2hhciAqc3RyKTsKdm9pZCBnX2RhdGVfc2V0X3RpbWUgKEdEYXRlICpk
YXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1RpbWUgdGlt
ZSk7CnZvaWQgZ19kYXRlX3NldF9tb250aCAoR0RhdGUgKmRhdGUsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBHRGF0ZU1vbnRoIG1vbnRoKTsKdm9pZCBnX2RhdGVf
c2V0X2RheSAoR0RhdGUgKmRhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBHRGF0ZURheSBkYXkpOwp2b2lkIGdfZGF0ZV9zZXRfeWVhciAoR0RhdGUgKmRhdGUs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHRGF0ZVllYXIgeWVh
cik7CnZvaWQgZ19kYXRlX3NldF9kbXkgKEdEYXRlICpkYXRlLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0RhdGVEYXkgZGF5LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgR0RhdGVNb250aCBtb250aCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdEYXRlWWVhciB5KTsKdm9pZCBnX2RhdGVfc2V0
X2p1bGlhbiAoR0RhdGUgKmRhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBndWludDMyIGp1bGlhbl9kYXRlKTsKZ2Jvb2xlYW4gZ19kYXRlX2lzX2ZpcnN0X29m
X21vbnRoIChHRGF0ZSAqZGF0ZSk7Cmdib29sZWFuIGdfZGF0ZV9pc19sYXN0X29mX21vbnRoIChH
RGF0ZSAqZGF0ZSk7CgoKdm9pZCBnX2RhdGVfYWRkX2RheXMgKEdEYXRlICpkYXRlLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgbl9kYXlzKTsKdm9pZCBn
X2RhdGVfc3VidHJhY3RfZGF5cyAoR0RhdGUgKmRhdGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBndWludCBuX2RheXMpOwoKCnZvaWQgZ19kYXRlX2FkZF9tb250
aHMgKEdEYXRlICpkYXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZ3VpbnQgbl9tb250aHMpOwp2b2lkIGdfZGF0ZV9zdWJ0cmFjdF9tb250aHMgKEdEYXRlICpk
YXRlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgbl9t
b250aHMpOwoKCnZvaWQgZ19kYXRlX2FkZF95ZWFycyAoR0RhdGUgKmRhdGUsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBndWludCBuX3llYXJzKTsKdm9pZCBnX2Rh
dGVfc3VidHJhY3RfeWVhcnMgKEdEYXRlICpkYXRlLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ3VpbnQgbl95ZWFycyk7Cmdib29sZWFuIGdfZGF0ZV9pc19sZWFw
X3llYXIgKEdEYXRlWWVhciB5ZWFyKTsKZ3VpbnQ4IGdfZGF0ZV9kYXlzX2luX21vbnRoIChHRGF0
ZU1vbnRoIG1vbnRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
R0RhdGVZZWFyIHllYXIpOwpndWludDggZ19kYXRlX21vbmRheV93ZWVrc19pbl95ZWFyIChHRGF0
ZVllYXIgeWVhcik7Cmd1aW50OCBnX2RhdGVfc3VuZGF5X3dlZWtzX2luX3llYXIgKEdEYXRlWWVh
ciB5ZWFyKTsKCgpnaW50IGdfZGF0ZV9jb21wYXJlIChHRGF0ZSAqbGhzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0RhdGUgKnJocyk7CnZvaWQgZ19kYXRlX3Rv
X3N0cnVjdF90bSAoR0RhdGUgKmRhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBzdHJ1Y3QgdG0gKnRtKTsKCgoKCmdzaXplIGdfZGF0ZV9zdHJmdGltZSAoZ2No
YXIgKnMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnc2l6ZSBz
bGVuLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No
YXIgKmZvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdE
YXRlICpkYXRlKTsKIyAyMjc3ICIvdXNyL2xvY2FsL2luY2x1ZGUvZ2xpYi5oIgpHUmVsYXRpb24q
IGdfcmVsYXRpb25fbmV3IChnaW50IGZpZWxkcyk7CnZvaWQgZ19yZWxhdGlvbl9kZXN0cm95IChH
UmVsYXRpb24gKnJlbGF0aW9uKTsKdm9pZCBnX3JlbGF0aW9uX2luZGV4IChHUmVsYXRpb24gKnJl
bGF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBmaWVsZCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdIYXNoRnVuYyBoYXNoX2Z1bmMsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBHQ29tcGFyZUZ1bmMga2V5X2NvbXBhcmVfZnVuYyk7CnZvaWQg
Z19yZWxhdGlvbl9pbnNlcnQgKEdSZWxhdGlvbiAqcmVsYXRpb24sCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAuLi4pOwpnaW50IGdfcmVsYXRpb25fZGVsZXRlIChHUmVsYXRpb24gKnJl
bGF0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NvbnN0cG9pbnRlciBrZXks
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50IGZpZWxkKTsKR1R1cGxlcyogZ19y
ZWxhdGlvbl9zZWxlY3QgKEdSZWxhdGlvbiAqcmVsYXRpb24sCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBnY29uc3Rwb2ludGVyIGtleSwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdpbnQgZmllbGQpOwpnaW50IGdfcmVsYXRpb25fY291bnQgKEdSZWxhdGlvbiAqcmVsYXRp
b24sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY29uc3Rwb2ludGVyIGtleSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdpbnQgZmllbGQpOwpnYm9vbGVhbiBnX3JlbGF0
aW9uX2V4aXN0cyAoR1JlbGF0aW9uICpyZWxhdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIC4uLik7CnZvaWQgZ19yZWxhdGlvbl9wcmludCAoR1JlbGF0aW9uICpyZWxhdGlvbik7
Cgp2b2lkIGdfdHVwbGVzX2Rlc3Ryb3kgKEdUdXBsZXMgKnR1cGxlcyk7Cmdwb2ludGVyIGdfdHVw
bGVzX2luZGV4IChHVHVwbGVzICp0dXBsZXMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnaW50IGluZGV4LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBmaWVsZCk7
CiMgMjMxMyAiL3Vzci9sb2NhbC9pbmNsdWRlL2dsaWIuaCIKZ3VpbnQgZ19zcGFjZWRfcHJpbWVz
X2Nsb3Nlc3QgKGd1aW50IG51bSk7CgoKCgoKdHlwZWRlZiBzdHJ1Y3QgX0dJT0Z1bmNzIEdJT0Z1
bmNzOwp0eXBlZGVmIGVudW0KewogIEdfSU9fRVJST1JfTk9ORSwKICBHX0lPX0VSUk9SX0FHQUlO
LAogIEdfSU9fRVJST1JfSU5WQUwsCiAgR19JT19FUlJPUl9VTktOT1dOCn0gR0lPRXJyb3I7CnR5
cGVkZWYgZW51bQp7CiAgR19TRUVLX0NVUiwKICBHX1NFRUtfU0VULAogIEdfU0VFS19FTkQKfSBH
U2Vla1R5cGU7CnR5cGVkZWYgZW51bQp7CiAgR19JT19JTiA9MSwKICBHX0lPX09VVCA9NCwKICBH
X0lPX1BSSSA9MiwKICBHX0lPX0VSUiA9OCwKICBHX0lPX0hVUCA9MTYsCiAgR19JT19OVkFMID0z
Mgp9IEdJT0NvbmRpdGlvbjsKCnN0cnVjdCBfR0lPQ2hhbm5lbAp7CiAgZ3VpbnQgY2hhbm5lbF9m
bGFnczsKICBndWludCByZWZfY291bnQ7CiAgR0lPRnVuY3MgKmZ1bmNzOwp9OwoKdHlwZWRlZiBn
Ym9vbGVhbiAoKkdJT0Z1bmMpIChHSU9DaGFubmVsICpzb3VyY2UsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgR0lPQ29uZGl0aW9uIGNvbmRpdGlvbiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBncG9pbnRlciBkYXRhKTsKc3RydWN0IF9HSU9GdW5jcwp7CiAgR0lPRXJyb3IgKCpp
b19yZWFkKSAoR0lPQ2hhbm5lbCAqY2hhbm5lbCwKICAgICAgICAgICAgICAgICAgICAgICAgIGdj
aGFyICpidWYsCiAgICAgICAgICAgICAgICAgICAgICAgICBndWludCBjb3VudCwKICAgICAgICAg
ICAgICAgICAgICAgICAgIGd1aW50ICpieXRlc19yZWFkKTsKICBHSU9FcnJvciAoKmlvX3dyaXRl
KSAoR0lPQ2hhbm5lbCAqY2hhbm5lbCwKICAgICAgICAgICAgICAgICAgICAgICAgIGdjaGFyICpi
dWYsCiAgICAgICAgICAgICAgICAgICAgICAgICBndWludCBjb3VudCwKICAgICAgICAgICAgICAg
ICAgICAgICAgIGd1aW50ICpieXRlc193cml0dGVuKTsKICBHSU9FcnJvciAoKmlvX3NlZWspIChH
SU9DaGFubmVsICpjaGFubmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBvZmZzZXQs
CiAgICAgICAgICAgICAgICAgICAgICAgICBHU2Vla1R5cGUgdHlwZSk7CiAgdm9pZCAoKmlvX2Ns
b3NlKSAoR0lPQ2hhbm5lbCAqY2hhbm5lbCk7CiAgZ3VpbnQgKCppb19hZGRfd2F0Y2gpIChHSU9D
aGFubmVsICpjaGFubmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBwcmlvcml0eSwK
ICAgICAgICAgICAgICAgICAgICAgICAgIEdJT0NvbmRpdGlvbiBjb25kaXRpb24sCiAgICAgICAg
ICAgICAgICAgICAgICAgICBHSU9GdW5jIGZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICBn
cG9pbnRlciB1c2VyX2RhdGEsCiAgICAgICAgICAgICAgICAgICAgICAgICBHRGVzdHJveU5vdGlm
eSBub3RpZnkpOwogIHZvaWQgKCppb19mcmVlKSAoR0lPQ2hhbm5lbCAqY2hhbm5lbCk7Cn07Cgp2
b2lkIGdfaW9fY2hhbm5lbF9pbml0IChHSU9DaGFubmVsICpjaGFubmVsKTsKdm9pZCBnX2lvX2No
YW5uZWxfcmVmIChHSU9DaGFubmVsICpjaGFubmVsKTsKdm9pZCBnX2lvX2NoYW5uZWxfdW5yZWYg
KEdJT0NoYW5uZWwgKmNoYW5uZWwpOwpHSU9FcnJvciBnX2lvX2NoYW5uZWxfcmVhZCAoR0lPQ2hh
bm5lbCAqY2hhbm5lbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NoYXIgKmJ1
ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgY291bnQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGd1aW50ICpieXRlc19yZWFkKTsKR0lPRXJyb3IgZ19p
b19jaGFubmVsX3dyaXRlIChHSU9DaGFubmVsICpjaGFubmVsLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBnY2hhciAqYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBndWludCBjb3VudCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3VpbnQgKmJ5
dGVzX3dyaXR0ZW4pOwpHSU9FcnJvciBnX2lvX2NoYW5uZWxfc2VlayAoR0lPQ2hhbm5lbCAqY2hh
bm5lbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2ludCBvZmZzZXQsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdTZWVrVHlwZSB0eXBlKTsKdm9pZCBnX2lvX2No
YW5uZWxfY2xvc2UgKEdJT0NoYW5uZWwgKmNoYW5uZWwpOwpndWludCBnX2lvX2FkZF93YXRjaF9m
dWxsIChHSU9DaGFubmVsICpjaGFubmVsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBnaW50IHByaW9yaXR5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSU9Db25k
aXRpb24gY29uZGl0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHSU9GdW5j
IGZ1bmMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0
YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Rlc3Ryb3lOb3RpZnkgbm90aWZ5
KTsKZ3VpbnQgZ19pb19hZGRfd2F0Y2ggKEdJT0NoYW5uZWwgKmNoYW5uZWwsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdJT0NvbmRpdGlvbiBjb25kaXRpb24sCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIEdJT0Z1bmMgZnVuYywKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhKTsKCgoKCnR5cGVkZWYgc3RydWN0IF9HVGlt
ZVZhbCBHVGltZVZhbDsKdHlwZWRlZiBzdHJ1Y3QgX0dTb3VyY2VGdW5jcyBHU291cmNlRnVuY3M7
CnR5cGVkZWYgc3RydWN0IF9HTWFpbkxvb3AgR01haW5Mb29wOwoKc3RydWN0IF9HVGltZVZhbAp7
CiAgZ2xvbmcgdHZfc2VjOwogIGdsb25nIHR2X3VzZWM7Cn07CnN0cnVjdCBfR1NvdXJjZUZ1bmNz
CnsKICBnYm9vbGVhbiAoKnByZXBhcmUpIChncG9pbnRlciBzb3VyY2VfZGF0YSwKICAgICAgICAg
ICAgICAgICAgICAgICAgR1RpbWVWYWwgKmN1cnJlbnRfdGltZSwKICAgICAgICAgICAgICAgICAg
ICAgICAgZ2ludCAqdGltZW91dCwKICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNl
cl9kYXRhKTsKICBnYm9vbGVhbiAoKmNoZWNrKSAoZ3BvaW50ZXIgc291cmNlX2RhdGEsCiAgICAg
ICAgICAgICAgICAgICAgICAgIEdUaW1lVmFsICpjdXJyZW50X3RpbWUsCiAgICAgICAgICAgICAg
ICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSk7CiAgZ2Jvb2xlYW4gKCpkaXNwYXRjaCkgKGdw
b2ludGVyIHNvdXJjZV9kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICBHVGltZVZhbCAqZGlz
cGF0Y2hfdGltZSwKICAgICAgICAgICAgICAgICAgICAgICAgZ3BvaW50ZXIgdXNlcl9kYXRhKTsK
ICBHRGVzdHJveU5vdGlmeSBkZXN0cm95Owp9OwojIDI0MzcgIi91c3IvbG9jYWwvaW5jbHVkZS9n
bGliLmgiCnR5cGVkZWYgZ2Jvb2xlYW4gKCpHU291cmNlRnVuYykgKGdwb2ludGVyIGRhdGEpOwoK
Cmd1aW50IGdfc291cmNlX2FkZCAoZ2ludCBwcmlvcml0eSwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuIGNhbl9yZWN1cnNlLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR1NvdXJjZUZ1bmNzICpmdW5jcywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHNv
dXJjZV9kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Z3BvaW50ZXIgdXNlcl9kYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgR0Rlc3Ryb3lOb3RpZnkgbm90aWZ5KTsKZ2Jvb2xlYW4gZ19zb3VyY2VfcmVtb3Zl
IChndWludCB0YWcpOwpnYm9vbGVhbiBnX3NvdXJjZV9yZW1vdmVfYnlfdXNlcl9kYXRhIChncG9p
bnRlciB1c2VyX2RhdGEpOwpnYm9vbGVhbiBnX3NvdXJjZV9yZW1vdmVfYnlfc291cmNlX2RhdGEg
KGdwb2ludGVyIHNvdXJjZV9kYXRhKTsKZ2Jvb2xlYW4gZ19zb3VyY2VfcmVtb3ZlX2J5X2Z1bmNz
X3VzZXJfZGF0YSAoR1NvdXJjZUZ1bmNzICpmdW5jcywKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIHVzZXJfZGF0YSk7Cgp2b2lkIGdfZ2V0X2N1
cnJlbnRfdGltZSAoR1RpbWVWYWwgKnJlc3VsdCk7CgoKR01haW5Mb29wKiBnX21haW5fbmV3IChn
Ym9vbGVhbiBpc19ydW5uaW5nKTsKdm9pZCBnX21haW5fcnVuIChHTWFpbkxvb3AgKmxvb3ApOwp2
b2lkIGdfbWFpbl9xdWl0IChHTWFpbkxvb3AgKmxvb3ApOwp2b2lkIGdfbWFpbl9kZXN0cm95IChH
TWFpbkxvb3AgKmxvb3ApOwpnYm9vbGVhbiBnX21haW5faXNfcnVubmluZyAoR01haW5Mb29wICps
b29wKTsKCgoKCmdib29sZWFuIGdfbWFpbl9pdGVyYXRpb24gKGdib29sZWFuIG1heV9ibG9jayk7
CgoKZ2Jvb2xlYW4gZ19tYWluX3BlbmRpbmcgKHZvaWQpOwoKCmd1aW50IGdfdGltZW91dF9hZGRf
ZnVsbCAoZ2ludCBwcmlvcml0eSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBndWludCBpbnRlcnZhbCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBHU291cmNlRnVuYyBmdW5jdGlvbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBncG9pbnRlciBkYXRhLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdEZXN0cm95Tm90aWZ5IG5vdGlmeSk7Cmd1aW50IGdfdGltZW91dF9hZGQgKGd1
aW50IGludGVydmFsLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdT
b3VyY2VGdW5jIGZ1bmN0aW9uLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdwb2ludGVyIGRhdGEpOwpndWludCBnX2lkbGVfYWRkIChHU291cmNlRnVuYyBmdW5jdGlv
biwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBncG9pbnRlciBkYXRh
KTsKZ3VpbnQgZ19pZGxlX2FkZF9mdWxsIChnaW50IHByaW9yaXR5LAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIEdTb3VyY2VGdW5jIGZ1bmN0aW9uLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEsCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgR0Rlc3Ryb3lOb3RpZnkgZGVzdHJveSk7Cmdi
b29sZWFuIGdfaWRsZV9yZW1vdmVfYnlfZGF0YSAoZ3BvaW50ZXIgZGF0YSk7CiMgMjUxMCAiL3Vz
ci9sb2NhbC9pbmNsdWRlL2dsaWIuaCIKdHlwZWRlZiBzdHJ1Y3QgX0dQb2xsRkQgR1BvbGxGRDsK
dHlwZWRlZiBnaW50ICgqR1BvbGxGdW5jKSAoR1BvbGxGRCAqdWZkcywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ3VpbnQgbmZzZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2ludCB0aW1lb3V0KTsKc3RydWN0IF9HUG9sbEZECnsKICBnaW50IGZkOwogIGd1c2hv
cnQgZXZlbnRzOwogIGd1c2hvcnQgcmV2ZW50czsKfTsKCnZvaWQgZ19tYWluX2FkZF9wb2xsIChH
UG9sbEZEICpmZCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnaW50IHBy
aW9yaXR5KTsKdm9pZCBnX21haW5fcmVtb3ZlX3BvbGwgKEdQb2xsRkQgKmZkKTsKdm9pZCBnX21h
aW5fc2V0X3BvbGxfZnVuYyAoR1BvbGxGdW5jIGZ1bmMpOwojIDI1MzcgIi91c3IvbG9jYWwvaW5j
bHVkZS9nbGliLmgiCkdJT0NoYW5uZWwqIGdfaW9fY2hhbm5lbF91bml4X25ldyAoaW50IGZkKTsK
Z2ludCBnX2lvX2NoYW5uZWxfdW5peF9nZXRfZmQgKEdJT0NoYW5uZWwgKmNoYW5uZWwpOwojIDI2
NTggIi91c3IvbG9jYWwvaW5jbHVkZS9nbGliLmgiCnR5cGVkZWYgc3RydWN0IF9HTXV0ZXggR011
dGV4Owp0eXBlZGVmIHN0cnVjdCBfR0NvbmQgR0NvbmQ7CnR5cGVkZWYgc3RydWN0IF9HUHJpdmF0
ZSBHUHJpdmF0ZTsKdHlwZWRlZiBzdHJ1Y3QgX0dTdGF0aWNQcml2YXRlIEdTdGF0aWNQcml2YXRl
Owp0eXBlZGVmIHN0cnVjdCBfR1RocmVhZEZ1bmN0aW9ucyBHVGhyZWFkRnVuY3Rpb25zOwpzdHJ1
Y3QgX0dUaHJlYWRGdW5jdGlvbnMKewogIEdNdXRleCogKCptdXRleF9uZXcpICh2b2lkKTsKICB2
b2lkICgqbXV0ZXhfbG9jaykgKEdNdXRleCAqbXV0ZXgpOwogIGdib29sZWFuICgqbXV0ZXhfdHJ5
bG9jaykgKEdNdXRleCAqbXV0ZXgpOwogIHZvaWQgKCptdXRleF91bmxvY2spIChHTXV0ZXggKm11
dGV4KTsKICB2b2lkICgqbXV0ZXhfZnJlZSkgKEdNdXRleCAqbXV0ZXgpOwogIEdDb25kKiAoKmNv
bmRfbmV3KSAodm9pZCk7CiAgdm9pZCAoKmNvbmRfc2lnbmFsKSAoR0NvbmQgKmNvbmQpOwogIHZv
aWQgKCpjb25kX2Jyb2FkY2FzdCkgKEdDb25kICpjb25kKTsKICB2b2lkICgqY29uZF93YWl0KSAo
R0NvbmQgKmNvbmQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBHTXV0ZXggKm11dGV4
KTsKICBnYm9vbGVhbiAoKmNvbmRfdGltZWRfd2FpdCkgKEdDb25kICpjb25kLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgR011dGV4ICptdXRleCwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIEdUaW1lVmFsICplbmRfdGltZSk7CiAgdm9pZCAoKmNvbmRfZnJlZSkgKEdDb25k
ICpjb25kKTsKICBHUHJpdmF0ZSogKCpwcml2YXRlX25ldykgKEdEZXN0cm95Tm90aWZ5IGRlc3Ry
dWN0b3IpOwogIGdwb2ludGVyICgqcHJpdmF0ZV9nZXQpIChHUHJpdmF0ZSAqcHJpdmF0ZV9rZXkp
OwogIHZvaWQgKCpwcml2YXRlX3NldCkgKEdQcml2YXRlICpwcml2YXRlX2tleSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGdwb2ludGVyIGRhdGEpOwp9OwoKZXh0ZXJuIEdUaHJlYWRG
dW5jdGlvbnMgZ190aHJlYWRfZnVuY3Rpb25zX2Zvcl9nbGliX3VzZTsKZXh0ZXJuIGdib29sZWFu
IGdfdGhyZWFkX3VzZV9kZWZhdWx0X2ltcGw7CmV4dGVybiBnYm9vbGVhbiBnX3RocmVhZHNfZ290
X2luaXRpYWxpemVkOwoKCgoKCnZvaWQgZ190aHJlYWRfaW5pdCAoR1RocmVhZEZ1bmN0aW9ucyAq
dnRhYmxlKTsKCgpHTXV0ZXgqIGdfc3RhdGljX211dGV4X2dldF9tdXRleF9pbXBsIChHTXV0ZXgg
KiptdXRleCk7CiMgMjc0MSAiL3Vzci9sb2NhbC9pbmNsdWRlL2dsaWIuaCIKc3RydWN0IF9HU3Rh
dGljUHJpdmF0ZQp7CiAgZ3VpbnQgaW5kZXg7Cn07CgpncG9pbnRlciBnX3N0YXRpY19wcml2YXRl
X2dldCAoR1N0YXRpY1ByaXZhdGUgKnByaXZhdGVfa2V5KTsKdm9pZCBnX3N0YXRpY19wcml2YXRl
X3NldCAoR1N0YXRpY1ByaXZhdGUgKnByaXZhdGVfa2V5LAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ3BvaW50ZXIgZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEdE
ZXN0cm95Tm90aWZ5IG5vdGlmeSk7CiMgMjc2MCAiL3Vzci9sb2NhbC9pbmNsdWRlL2dsaWIuaCIK
ZXh0ZXJuIHZvaWQgZ2xpYl9kdW1teV9kZWNsICh2b2lkKTsKIyAzMyAiLzkvb3JzYXR0aS9TUE9U
M0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL2dyX29iamV0LmgiIDIKIyAxNzQgIi85
L29yc2F0dGkvU1BPVDNEX0NPTVBJTF9URVNUX0VOVi9TUE9UM0QvSU5DTFVERS9ncl9vYmpldC5o
IgpzdHJ1Y3QgcGxhbiB7CiAgaW50IGVkaXRfZmxhZzsKICBpbnQgYmFja3VwX2ZsYWc7CiAgY2hh
ciBub21bMjU2XTsKICBpbnQgY291bGV1cjsKICBpbnQgdHlwZTsKICBpbnQgdHlwZV9wcm9qOwog
IGludCBtb2RlX2FmZmljaGFnZTsKICBpbnQgbmJfb2JqZXRzOwogIHN0cnVjdCBvYmpldCAqbGlz
dGVfb2JqZXQ7CiAgc3RydWN0IHBsYW4gKmluZGV4Owp9Owp0eXBlZGVmIHN0cnVjdCBwbGFuIHBs
YW5fdDsKCnN0cnVjdCBncmFwaGlxdWVfaW1hZ2UgewogIGNoYXIgdmVyc2lvblsyNTZdOwogIGNo
YXIgKmVudGV0ZTsKICBpbnQgZWRpdF9mbGFnOwogIGZsb2F0IHhfdW5pdF9zaXplLCB5X3VuaXRf
c2l6ZTsKICBmbG9hdCB4X29yaWdpbiwgeV9vcmlnaW47CiAgaW50IHBsYW5fY291cmFudDsKICBp
bnQgcGxhbnNfdmlzaWJsZXNbMTAyNF07CiAgaW50IG5iX3Zpc2libGVzOwogIGNoYXIgbm9tX2Zp
Y2hpZXJbMjU2XTsKICBpbnQgbmJfcGxhbjsKICBzdHJ1Y3QgcGxhbiAqKnBsYW47CiAgc3RydWN0
IGluZm9fYWN0aWYgKmFjdGlmOwogIGludCBuYl9hY3RpZjsKfTsKdHlwZWRlZiBzdHJ1Y3QgZ3Jh
cGhpcXVlX2ltYWdlIGdyYXBoaXF1ZV9pbWFnZV90OwoKc3RydWN0IHJlZl9ncmFwaGlxdWUgewog
IGludCAqcG9pbnRldXI7Cn07CnR5cGVkZWYgc3RydWN0IHJlZl9ncmFwaGlxdWUgcmVmX2dyYXBo
aXF1ZV90OwoKc3RydWN0IHB0IHsKICBzdHJ1Y3Qgb2JqZXQgKm9iamV0X3BlcmU7CiAgZmxvYXQg
eCwgeSwgejsKICBzdHJ1Y3QgcHQgKnB0X3N1aXY7CiAgc3RydWN0IHB0ICpwdF9wcmVjOwp9Owp0
eXBlZGVmIHN0cnVjdCBwdCBwdF90OwoKc3RydWN0IHBvaW50IHsKICBzdHJ1Y3QgcHQgKnB0Owp9
Owp0eXBlZGVmIHN0cnVjdCBwb2ludCBwb2ludF90OwoKc3RydWN0IG5vZXVkIHsKICBpbnQgdHlw
ZTsKICBzdHJ1Y3QgcHQgKnB0Owp9Owp0eXBlZGVmIHN0cnVjdCBub2V1ZCBub2V1ZF90OwoKc3Ry
dWN0IGNoYWluZSB7CiAgc3RydWN0IHB0ICpwdDsKICBzdHJ1Y3QgcHQgKnB0X3RldGU7CiAgc3Ry
dWN0IHB0ICpwdF9xdWV1ZTsKfTsKdHlwZWRlZiBzdHJ1Y3QgY2hhaW5lIGNoYWluZV90OwoKc3Ry
dWN0IGZvbmN0IHsKICBpbnQgYSwgYiwgYzsKICBzdHJ1Y3QgcHQgKnB0X3RldGU7CiAgc3RydWN0
IHB0ICpwdF9xdWV1ZTsKfTsKdHlwZWRlZiBzdHJ1Y3QgZm9uY3QgZm9uY3RfdDsKCnN0cnVjdCBw
b2x5IHsKICBpbnQgdHlwZTsKICBmbG9hdCB6Owp9Owp0eXBlZGVmIHN0cnVjdCBwb2x5IHBvbHlf
dDsKCnN0cnVjdCBwb2x5Y29tcCB7CiAgaW50IHR5cGU7Cn07CnR5cGVkZWYgc3RydWN0IHBvbHlj
b21wIHBvbHljb21wX3Q7CgpzdHJ1Y3QgbGlhaXNvbiB7CiAgaW50IGNvdGU7CiAgc3RydWN0IG9i
amV0ICpvYmpldDsKfTsKdHlwZWRlZiBzdHJ1Y3QgbGlhaXNvbiBsaWFpc29uX3Q7CgpzdHJ1Y3Qg
cmVsYXRpb24gewogIHN0cnVjdCBvYmpldCAqb2JqZXQ7CiAgaW50IGNvdGU7CiAgfTsKdHlwZWRl
ZiBzdHJ1Y3QgcmVsYXRpb24gcmVsYXRpb25fdDsKCnN0cnVjdCBvYmpldCB7CiAgaW50IGluX2Vj
cmFuOwogIGZib3ggZW5nbG9iYW50OwogIGZib3ggZW5nbG9iYW50X2xpYWlzb247CiAgaW50IHR5
cGU7CiAgaW50IG5iX3BlcmU7CiAgc3RydWN0IHJlbGF0aW9uICpyZWxhdGlvbl9wZXJlOwogIGlu
dCBuYl9maWxzOwogIHN0cnVjdCByZWxhdGlvbiAqcmVsYXRpb25fZmlsczsKICBpbnQgbmJfbGlh
aXNvblsyXTsKICBzdHJ1Y3QgbGlhaXNvbiAqbGlzdGVfbGlhaXNvblsyXTsKICBzdHJ1Y3QgcGxh
biAqcGxhbl9wZXJlOwogIHN0cnVjdCByZWZfZ3JhcGhpcXVlICpncmFwaGlxdWU7CiAgc3RydWN0
IHBvaW50ICpwb2ludDsKICBzdHJ1Y3Qgbm9ldWQgKm5vZXVkOwogIHN0cnVjdCBjaGFpbmUgKmNo
YWluZTsKICBzdHJ1Y3QgZm9uY3QgKmZvbmN0OwogIHN0cnVjdCBwb2x5ICpwb2x5OwogIHN0cnVj
dCBwb2x5Y29tcCAqcG9seWNvbXA7CiAgc3RydWN0IG9iamV0ICpvYmpldF9zdWl2OwogIHN0cnVj
dCBvYmpldCAqb2JqZXRfcHJlYzsKICBzdHJ1Y3Qgb2JqZXQgKmluZGV4Owp9Owp0eXBlZGVmIHN0
cnVjdCBvYmpldCBvYmpldF90OwoKCgoKCmV4dGVybiBzdHJ1Y3QgZ3JhcGhpcXVlX2ltYWdlICps
aXN0ZV9ncmFwaGlxdWU7CmV4dGVybiBpbnQgbmJfZ3JhcGhpcXVlOwojIDI4ICIvOS9vcnNhdHRp
L1NQT1QzRF9DT01QSUxfVEVTVF9FTlYvU1BPVDNEL0lOQ0xVREUvZ3JhcGhpYy5oIiAyCiMgMSAi
Lzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL2dyX2FjdGlm
LmgiIDEKIyAzOCAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNM
VURFL2dyX2FjdGlmLmgiCnN0cnVjdCBpbmZvX2FjdGlmIHsKICBpbnQgdHlwZTsKICBzdHJ1Y3Qg
b2JqZXQgKm9iamV0X2FjdGlmOwogIHN0cnVjdCBwdCAqcHRfYWN0aWY7CiAgaW50IGV0YXQ7CiAg
aW50IGNvdGU7Cn07CnR5cGVkZWYgc3RydWN0IGluZm9fYWN0aWYgaW5mb19hY3RpZl90OwoKCgoK
ZXh0ZXJuIGludCBSRUZSRVNIOwojIDI5ICIvOS9vcnNhdHRpL1NQT1QzRF9DT01QSUxfVEVTVF9F
TlYvU1BPVDNEL0lOQ0xVREUvZ3JhcGhpYy5oIiAyCgojIDEgIi85L29yc2F0dGkvU1BPVDNEX0NP
TVBJTF9URVNUX0VOVi9TUE9UM0QvSU5DTFVERS9maWxlX3R5cGVzLmgiIDEKIyAzMSAiLzkvb3Jz
YXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL2dyYXBoaWMuaCIgMgoj
IDEgIi85L29yc2F0dGkvU1BPVDNEX0NPTVBJTF9URVNUX0VOVi9TUE9UM0QvSU5DTFVERS9jb29y
ZC5oIiAxCgoKCgoKc3RydWN0IGNvb3JkIHsKICBpbnQgeCwgeSwgejsKfTsKCnR5cGVkZWYgc3Ry
dWN0IGNvb3JkIGNvb3JkOwoKc3RydWN0IGZjb29yZCB7CiAgZmxvYXQgeCwgeSwgejsKfTsKCnR5
cGVkZWYgc3RydWN0IGZjb29yZCBmY29vcmQ7CgpzdHJ1Y3QgZGNvb3JkIHsKICBkb3VibGUgeCwg
eSwgejsKfTsKCnR5cGVkZWYgc3RydWN0IGRjb29yZCBkY29vcmQ7CiMgMzIgIi85L29yc2F0dGkv
U1BPVDNEX0NPTVBJTF9URVNUX0VOVi9TUE9UM0QvSU5DTFVERS9ncmFwaGljLmgiIDIKIyA1MiAi
Lzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL2dyYXBoaWMu
aCIKZXh0ZXJuIGNoYXIgKmFsbG9jYXRpb25fbGlzdGUoaW50IHNpemUpOwpleHRlcm4gY2hhciAq
cmVhbGxvY2F0aW9uX2xpc3RlKGNoYXIgKnB0ciwgaW50IHNpemUpOwpleHRlcm4gY2hhciAqbXlf
bWFsbG9jKGludCBzaXplKTsKCmV4dGVybiBpbnQgZWNyaXR1cmVfZ3JhcGhpcXVlKGNoYXIgKm5v
bSwgc3RydWN0IGdyYXBoaXF1ZV9pbWFnZSAqZ3JhcGhpcXVlKTsKZXh0ZXJuIHZvaWQgY2FsY3Vs
X2luZGV4KHN0cnVjdCBwbGFuICpwbGFuKTsKZXh0ZXJuIEZJTEUgKm9wZW5fZ3JhcGhpcXVlKGNo
YXIgKm5vbSwgY2hhciAqdHlwZSk7CmV4dGVybiBpbnQgY2FsY3VsX25iX3B0KHN0cnVjdCBvYmpl
dCAqb2JqZXQpOwpleHRlcm4gaW50IGlzdGFyX2FzY2lpX3ZlY3RvcnNfZmlsZShjaGFyICpub20p
OwpleHRlcm4gaW50IHRlc3RfZ3JhcGhpY19maWxlKGNoYXIgKm5vbSk7CmV4dGVybiBpbnQgbGVj
dHVyZV9ncmFwaGlxdWUoY2hhciAqbm9tLCBzdHJ1Y3QgZ3JhcGhpcXVlX2ltYWdlICpncmFwaGlx
dWUpOwpleHRlcm4gaW50IFJlYWRBc2NpaUdyYXBoaWMoY2hhciAqbm9tLCBGSUxFICpmaWNoaWVy
LCBzdHJ1Y3QgZ3JhcGhpcXVlX2ltYWdlICpncmFwaGlxdWUpOwpleHRlcm4gdm9pZCByZWZlcmVu
Y2VzX3BsYW4oc3RydWN0IHBsYW4gKnBsYW4pOwpleHRlcm4gdm9pZCBlbmdsb2JhbnRlc19wbGFu
KHN0cnVjdCBwbGFuICpwbGFuKTsKZXh0ZXJuIHZvaWQgc2V0X29yaWdpbmVfcGxhbnMoc3RydWN0
IHBsYW4gKipwbGFuKTsKZXh0ZXJuIHZvaWQgQWxsb2NPYmplY3RBZGRyKHBsYW5fdCopOwpleHRl
cm4gdm9pZCBTZXRPYmplY3RBZGRyKHBsYW5fdCosIGludCwgb2JqZXRfdCopOwpleHRlcm4gb2Jq
ZXRfdCAqR2V0T2JqZWN0QWRkcihwbGFuX3QqLCBpbnQpOwpleHRlcm4gdm9pZCBGcmVlT2JqZWN0
QWRkcihncmFwaGlxdWVfaW1hZ2VfdCopOwoKCmV4dGVybiBpbnQgV3JpdGVCaW5HcmFwaGljKGNo
YXIgKm5vbSwgc3RydWN0IGdyYXBoaXF1ZV9pbWFnZSAqZ3JhcGhpcXVlKTsKZXh0ZXJuIGludCBp
c3Rhcl9iaW5fdmVjdG9yc19maWxlKGNoYXIgKm5vbSk7CmV4dGVybiBpbnQgUmVhZEJpbkdyYXBo
aWModm9pZCAqcHRyLCBzdHJ1Y3QgZ3JhcGhpcXVlX2ltYWdlICpncmFwaGlxdWUpOwpleHRlcm4g
aW50IG15X2ZjbG9zZSh2b2lkICpwdHIpOwpleHRlcm4gdm9pZCBDcmVhdGVNeVN0cmVhbShjaGFy
IG5vbVtdLCBGSUxFICpmaWNoaWVyLCBjaGFyICp0eXBlLCB2b2lkICoqcHRfbXlfc3RyZWFtKTsK
CmV4dGVybiB2b2lkIGNsZWFuX2dyYXBoaXF1ZShzdHJ1Y3QgZ3JhcGhpcXVlX2ltYWdlICpncmFw
aGlxdWUpOwpleHRlcm4gaW50IG9iamV0X2RlZ2VuZXJlKHN0cnVjdCBvYmpldCAqb2JqZXQpOwpl
eHRlcm4gdm9pZCBjbGVhbl9jaGFpbihvYmpldF90ICpjaGFpbik7CgpleHRlcm4gaW50IGRlc3Ry
b3lfZ3JhcGhpYyhzdHJ1Y3QgZ3JhcGhpcXVlX2ltYWdlICpncmFwaGljKTsKZXh0ZXJuIGludCBk
ZXN0cm95X3BsYW4oc3RydWN0IGdyYXBoaXF1ZV9pbWFnZSAqZ3JhcGhpYywgc3RydWN0IHBsYW4g
KnBsYW4pOwpleHRlcm4gdm9pZCBkZXN0cm95X29iamV0KHN0cnVjdCBvYmpldCAqb2JqZXQpOwpl
eHRlcm4gdm9pZCByX2Rlc3Ryb3lfb2JqZXQoc3RydWN0IG9iamV0ICpvYmpldCk7CmV4dGVybiB2
b2lkIGRlc3Ryb3lfcHQoc3RydWN0IHB0ICpwdCk7CmV4dGVybiB2b2lkIHN1cHByaW1lX3B0KHN0
cnVjdCBwdCAqcHQpOwpleHRlcm4gdm9pZCBkZXN0cm95X29iamV0X3NhZmUoc3RydWN0IG9iamV0
ICpvYmpldCwgc3RydWN0IG9iamV0ICoqb2JqZXRzdWl2KTsKCmV4dGVybiB2b2lkIGdldF9mYm94
X2dyYXBoaXF1ZShncmFwaGlxdWVfaW1hZ2VfdCAqZ3JhcGhpcXVlLCBmYm94ICpmYik7CmV4dGVy
biB2b2lkIGFjdHVhbGlzZV9lbmdsb2JhbnRlX29iamV0KG9iamV0X3QgKm9iamV0LCBkb3VibGUg
eCwgZG91YmxlIHksIGRvdWJsZSB6KTsKZXh0ZXJuIHZvaWQgZGVjYWxlX2VuZ2xvYmFudGVfb2Jq
ZXQob2JqZXRfdCAqb2JqZXQsIGRvdWJsZSB4LCBkb3VibGUgeSwgZG91YmxlIHopOwpleHRlcm4g
dm9pZCBpbml0X2VuZ2xvYmFudGVfb2JqZXQob2JqZXRfdCAqb2JqZXQsIGRvdWJsZSB4LCBkb3Vi
bGUgeSwgZG91YmxlIHopOwpleHRlcm4gdm9pZCBpbml0X2VuZ2xvYmFudGUoZmJveCAqZmIsIGZs
b2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOwpleHRlcm4gdm9pZCBjYWxjdWxfZW5nbG9iYW50ZV9v
YmpldChvYmpldF90ICpvYmpldCwgaW50IG9ic29sZXRlKTsKZXh0ZXJuIHZvaWQgYWN0dWFsaXNl
X2VuZ2xvYmFudGUoZmJveCAqZmIsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOwpleHRlcm4g
dm9pZCBkZWNhbGVfZW5nbG9iYW50ZShmYm94ICpmYiwgZmxvYXQgeCwgZmxvYXQgeSwgZmxvYXQg
eik7CmV4dGVybiB2b2lkIGNvX2VuZ2xvYmFudF9vYmpldChvYmpldF90ICpvYmpldCwgZmJveCAq
ZmIpOwpleHRlcm4gdm9pZCBjb19lbmdsb2JhbnRfb2JqZXRfbWF4KG9iamV0X3QgKm9iamV0LCBm
Ym94ICpmYik7CmV4dGVybiB2b2lkIGNvX2VuZ2xvYmFudF9wdChwdF90ICpwdCwgZmJveCAqZmIp
OwpleHRlcm4gdm9pZCBjaV9lbmdsb2JhbnRfb2JqZXRfbGlhaXNvbnMob2JqZXRfdCAqb2JqZXQp
OwpleHRlcm4gdm9pZCBjb19lbmdsb2JhbnRfb2JqZXRfbGlhaXNvbnMob2JqZXRfdCAqb2JqZXQs
IGZib3ggKmZiKTsKZXh0ZXJuIHZvaWQgY29fZW5nbG9iYW50X3B0X2xpYWlzb25zKHB0X3QgKnB0
LCBmYm94ICpmYik7CmV4dGVybiB2b2lkIGNvX2VuZ2xvYmFudF9wdF9tYXgocHRfdCAqcHQsIGZi
b3ggKmZiKTsKZXh0ZXJuIGludCBjb194eXpfaW5fZW5nbG9iYW50KGZib3ggKmZiLCBmbG9hdCB4
LCBmbG9hdCB5LCBmbG9hdCB6KTsKZXh0ZXJuIGludCBvYmpldF9pbl9lY3JhbihvYmpldF90ICpv
YmpldCwgZmJveCAqZmIpOwpleHRlcm4gaW50IGludGVyX2VuZ2xvYmUoZmJveCAqZmIxLCBmYm94
ICpmYjIpOwpleHRlcm4gaW50IGludGVyX2VuZ2xvYmVfc2VnbWVudHMocHRfdCAqcHQxMSwgcHRf
dCAqcHQxMiwgcHRfdCAqcHQyMSwgcHRfdCAqcHQyMik7CmV4dGVybiBpbnQgaW5jbHVzaW9uX2Vu
Z2xvYmFudChzdHJ1Y3Qgb2JqZXQgKm9iamV0MSwgc3RydWN0IG9iamV0ICpvYmpldDIpOwpleHRl
cm4gaW50IGluY2x1c2lvbl9lbmdsb2JhbnQyRChzdHJ1Y3Qgb2JqZXQgKm9iamV0MSwgc3RydWN0
IG9iamV0ICpvYmpldDIpOwpleHRlcm4gdm9pZCBjYWxjdWxfem9uZShvYmpldF90ICpvYmpldCwg
cHRfdCAqcHQsIHB0X3QgKnB0MSwgcHRfdCAqcHQyLCBmYm94ICp6b25lX29iamV0KTsKZXh0ZXJu
IHZvaWQgY2FsY3VsX3pvbmVfcGVyZShvYmpldF90ICpvYmpldCwgcHRfdCAqcHQsIHB0X3QgKnB0
MSwgcHRfdCAqcHQyLCBmYm94ICp6b25lX29iamV0KTsKZXh0ZXJuIHZvaWQgY29fdW5pb25fZW5n
bG9iYW50KGZib3ggKmZiMSwgZmJveCAqZmIyLCBmYm94ICpmYik7CmV4dGVybiB2b2lkIGluaXRf
emVyb19lbmdsb2JlKGZib3ggKmZiKTsKZXh0ZXJuIGZsb2F0IGRpc3RhbmNlX2Zib3goZmJveCAq
ZmIsIGZsb2F0IHgsIGZsb2F0IHksIGZsb2F0IHopOwpleHRlcm4gaW50IEdSaXNFbmdsb2JlWmVy
byhmYm94ICpmYik7CgpleHRlcm4gaW50IGZpc3Npb24oc3RydWN0IGluZm9fYWN0aWYgaW5mbywg
c3RydWN0IGluZm9fYWN0aWYgKmluZm9fY2hhaW5lMSwgc3RydWN0IGluZm9fYWN0aWYgKmluZm9f
Y2hhaW5lMiwgc3RydWN0IHBsYW4gKnBsYW4pOwoKZXh0ZXJuIHN0cnVjdCBwdCAqY29fcHRfcG91
YmVsbGUodm9pZCk7CmV4dGVybiB2b2lkIGNpX3B0X3BvdWJlbGxlKHN0cnVjdCBwdCAqcHQpOwpl
eHRlcm4gdm9pZCBpbml0X3BvdWJlbGxlKHZvaWQpOwoKZXh0ZXJuIHZvaWQgb3JpZW50YXRpb25f
Z3JhcGhpcXVlKHN0cnVjdCBncmFwaGlxdWVfaW1hZ2UgKmdyYXBoaXF1ZSk7CmV4dGVybiBpbnQg
b3JpZW50YXRpb25fbm9ldWRzKHN0cnVjdCBpbmZvX2FjdGlmICppbmZvX25vZXVkcywgaW50IG5i
X25vZXVkcyk7CmV4dGVybiBpbnQgb3JpZW50YXRpb25fbGlhaXNvbnMoc3RydWN0IG9iamV0ICpu
b2V1ZCk7CmV4dGVybiBpbnQgRGVsZXRlTnVsbExpbmtzKHN0cnVjdCBvYmpldCAqbm9ldWQpOwpl
eHRlcm4gaW50IE1lcmdlTm9kZXMob2JqZXRfdCAqbm9kZTEsIG9iamV0X3QgKm5vZGUyKTsKZXh0
ZXJuIGludCBpbnRlcnNlY3Rpb24oc3RydWN0IGluZm9fYWN0aWYgKmluZm8xLCBzdHJ1Y3QgaW5m
b19hY3RpZiAqaW5mbzIsIGZjb29yZCAqcG9zaXRpb24pOwpleHRlcm4gaW50IGludGVyc2VjdGlv
bl9zZWdtZW50cyhzdHJ1Y3QgcHQgKnB0MTEsIHN0cnVjdCBwdCAqcHQxMiwgc3RydWN0IHB0ICpw
dDIxLCBzdHJ1Y3QgcHQgKnB0MjIsIGZjb29yZCAqcG9zaXRpb24pOwpleHRlcm4gaW50IGV4dGVu
c2lvbl9leHRyZW1pdGVzKHN0cnVjdCBpbmZvX2FjdGlmICppbmZvLCBmY29vcmQgKnBvc2l0aW9u
KTsKZXh0ZXJuIGludCBNb3ZlU2VsZWN0aW9uRnJvbShzdHJ1Y3QgaW5mb19hY3RpZiAqaW5mbywg
ZmNvb3JkICpmYyk7CmV4dGVybiBpbnQgc2VsZWN0aW9uX3NlZ21lbnQoc3RydWN0IGluZm9fYWN0
aWYgKmluZm8sIHN0cnVjdCBwdCAqKnB0MSwgc3RydWN0IHB0ICoqcHQyKTsKZXh0ZXJuIGludCBs
aWFpc29uX2xpYnJlKHN0cnVjdCBvYmpldCAqb2JqZXQsIGludCAqY290ZSk7CmV4dGVybiBpbnQg
YWN0aWZfb3V0KHN0cnVjdCBpbmZvX2FjdGlmICppbmZvKTsKZXh0ZXJuIGludCBleHRyZW1pdGVf
bGlicmUoc3RydWN0IGluZm9fYWN0aWYgKmluZm8pOwoKZXh0ZXJuIGludCBlZGl0X2xpYWlzb24o
c3RydWN0IGluZm9fYWN0aWYgKmluZm9fY2hhaW5lLCBpbnQgbmJfY2hhaW5lLCBzdHJ1Y3QgaW5m
b19hY3RpZiAqaW5mb19ub2V1ZCwgaW50IG5iX25vZXVkKTsKZXh0ZXJuIGludCBjcmVhdGlvbl9s
aWFpc29uKHN0cnVjdCBpbmZvX2FjdGlmICppbmZvX2NoYWluLCBzdHJ1Y3QgaW5mb19hY3RpZiAq
aW5mb19ub2V1ZCwgc3RydWN0IG9iamV0ICoqY2hhaW4sIHN0cnVjdCBvYmpldCAqKm5vZXVkKTsK
ZXh0ZXJuIGludCBkZXRydWl0X2xpYWlzb24oc3RydWN0IGluZm9fYWN0aWYgKmluZm9fY2hhaW5l
LCBpbnQgbmJfY2hhaW5lLCBzdHJ1Y3QgaW5mb19hY3RpZiAqaW5mb19ub2V1ZCwgaW50IG5iX25v
ZXVkKTsKZXh0ZXJuIGludCBjaGFuZ2VfbGlhaXNvbihzdHJ1Y3Qgb2JqZXQgKm5vZXVkLCBpbnQg
Y290ZV9ub2V1ZCwgc3RydWN0IG9iamV0ICpjaGFpbmVfaW5pLCBpbnQgY290ZV9pbmksIHN0cnVj
dCBvYmpldCAqY2hhaW5lX2ZpbiwgaW50IGNvdGVfZmluKTsKZXh0ZXJuIGludCBkZWNhbGVfbGlz
dGVfbGlhaXNvbihzdHJ1Y3QgbGlhaXNvbiAqbGlzdGVfbGlhaXNvbiwgaW50ICpuYl9saXN0ZSwg
aW50IG51bWVybyk7CmV4dGVybiBpbnQgYWxsb3VlX2xpc3RlX2xpYWlzb24oc3RydWN0IG9iamV0
ICpvYmpldCwgaW50IGNvdGUpOwpleHRlcm4gaW50IGNvX2xpYWlzb24oc3RydWN0IGluZm9fYWN0
aWYgKmluZm8xLCBzdHJ1Y3QgaW5mb19hY3RpZiAqaW5mbzIsIGludCAqbjEsIGludCAqbjIpOwpl
eHRlcm4gaW50IHJlY2hlcmNoZV9yZWZfbGlhaXNvbihzdHJ1Y3Qgb2JqZXQgKm9iamV0LCBpbnQg
Y290ZSwgc3RydWN0IGxpYWlzb24gKmxpc3RlX2xpYWlzb24sIGludCBuYl9saXN0ZSwgaW50ICpu
dW1lcm8pOwpleHRlcm4gaW50IGNvX2xpc3RlX2xpYWlzb25fcHQoc3RydWN0IHB0ICpwdCwgaW50
ICpuYiwgc3RydWN0IHB0ICoqKmxpc3RlKTsKZXh0ZXJuIGludCBjb19saWFpc29uX29iamV0KHN0
cnVjdCBvYmpldCAqb2JqMSwgaW50IGNvdGUxLCBzdHJ1Y3Qgb2JqZXQgKipvYmoyKTsKZXh0ZXJu
IGludCBjb19jaGFpbmVzX25vZXVkKHN0cnVjdCBvYmpldCAqY2hhaW4xLCBpbnQgY290ZV8xLCBz
dHJ1Y3Qgb2JqZXQgKmNoYWluMiwgaW50IGNvdGVfMiwgc3RydWN0IG9iamV0ICoqbm9ldWQpOwpl
eHRlcm4gaW50IGVubGV2ZV9yZWZfbGlhaXNvbihzdHJ1Y3Qgb2JqZXQgKm9iaik7CmV4dGVybiBp
bnQgb2JqZXRfbGlhaXNvbl9jaGFpbmUoc3RydWN0IGluZm9fYWN0aWYgaW5mbywgc3RydWN0IGlu
Zm9fYWN0aWYgKippbmZvX2NoYWluZSwgaW50ICpuYl9jaGFpbmUpOwpleHRlcm4gaW50IG9iamV0
X2xpYWlzb25fbm9ldWQoc3RydWN0IGluZm9fYWN0aWYgaW5mbywgc3RydWN0IGluZm9fYWN0aWYg
KippbmZvX25vZXVkLCBpbnQgKm5iX25vZXVkKTsKZXh0ZXJuIGludCBjcmVlcl9vYmpldF9saWFp
c29uX25vZXVkKHN0cnVjdCBpbmZvX2FjdGlmICppbmZvX2NoYWluZSwgaW50IG5iX2NoYWluZSwg
c3RydWN0IGluZm9fYWN0aWYgKippbmZvX25vZXVkLCBpbnQgKm5iX25vZXVkKTsKCmV4dGVybiBp
bnQgY29fZmljaGllcl9ncmFwaGlxdWUoRklMRSAqc3RyZWFtKTsKZXh0ZXJuIGludCBjaV9maWNo
aWVyX2dyYXBoaXF1ZShGSUxFICpzdHJlYW0pOwpleHRlcm4gaW50IEdldE1hZ2ljKEZJTEUgKnN0
cmVhbSk7CgpleHRlcm4gZmxvYXQgbG9uZ3VldXJfb2JqZXQoc3RydWN0IG9iamV0ICpvYmpldCk7
CmV4dGVybiBmbG9hdCBsb25ndWV1cl9jaGFpbmUoc3RydWN0IG9iamV0ICpvYmpldCk7CmV4dGVy
biBmbG9hdCBsb25ndWV1cl9zZWdtZW50KHN0cnVjdCBwdCAqcHQxLCBzdHJ1Y3QgcHQgKnB0Mik7
CmV4dGVybiBpbnQgYmFyeWNlbnRyZV9vYmpldChzdHJ1Y3Qgb2JqZXQgKm9iamV0LCBmbG9hdCAq
eCwgZmxvYXQgKnksIGZsb2F0ICp6KTsKZXh0ZXJuIGZsb2F0IHN1cmZhY2Vfb2JqZXQoc3RydWN0
IG9iamV0ICpvYmpldCwgZmxvYXQgKngsIGZsb2F0ICp5KTsKZXh0ZXJuIGZsb2F0IHN1cmZhY2Vf
cG9seShzdHJ1Y3Qgb2JqZXQgKm9iamV0LCBmbG9hdCAqeCwgZmxvYXQgKnkpOwpleHRlcm4gZmxv
YXQgc3VyZmFjZV9jb29yZChmY29vcmQgKmxpc3QsIGludCBzaXplLCBmbG9hdCAqeCwgZmxvYXQg
KnkpOwoKZXh0ZXJuIHN0cnVjdCBwbGFuICoqZ2V0X3ByZW1pZXJfcGxhbihzdHJ1Y3QgZ3JhcGhp
cXVlX2ltYWdlICpncmFwaGlxdWUpOwpleHRlcm4gaW50IHBvbHlnb25lX2V4dGVybmUob2JqZXRf
dCAqb2JqZXQpOwpleHRlcm4gb2JqZXRfdCAqZ2V0X3BvbHlnb25lX2V4dGVybmUob2JqZXRfdCAq
b2JqZXQpOwpleHRlcm4gcHRfdCAqR2V0SGVhZFB0KG9iamV0X3QgKmNoYWluKTsKZXh0ZXJuIHB0
X3QgKkdldE5leHRQdChwdF90ICpwdCwgb2JqZXRfdCAqY2hhaW4pOwpleHRlcm4gcHRfdCAqR2V0
UHJldmlvdXNQdChwdF90ICpwdCwgb2JqZXRfdCAqY2hhaW4pOwoKZXh0ZXJuIG9iamV0X3QgKmNy
ZWF0ZV9vYmpldChpbnQgdHlwZSwgZmNvb3JkICpmYywgcGxhbl90ICpwbGFuKTsKZXh0ZXJuIG9i
amV0X3QgKmluc2VydF9vYmpldChpbnQgdHlwZSwgZmNvb3JkICpmYywgcGxhbl90ICpwbGFuLCBv
YmpldF90ICpvYmpldF9wcmVjZWRlbnQpOwpleHRlcm4gcHRfdCAqY3JlYXRlX3B0X29iamV0KGZj
b29yZCAqZmMsIGludCB0eXBlLCBpbmZvX2FjdGlmX3QgKmluZm8pOwpleHRlcm4gdm9pZCBpbml0
X3BsYW4oZ3JhcGhpcXVlX2ltYWdlX3QgKmdyYXBoaXF1ZSwgY2hhciAqbm9tX3BsYW4pOwpleHRl
cm4gcHRfdCAqaW5pdF9vYmpldChwbGFuX3QgKnBsYW4sIG9iamV0X3QgKm9iamV0LCBpbnQgdHlw
ZSk7CmV4dGVybiB2b2lkIGluaXRfcHQocHRfdCAqcHQsIG9iamV0X3QgKm9iamV0LCBmY29vcmQg
KmZjKTsKZXh0ZXJuIHB0X3QgKmNvX2Nob2lzaV9wdChwdF90ICpwdCwgaW50ICpldGF0LCBpbnQg
KmNvdGUpOwpleHRlcm4gcHRfdCAqY29fb2JqZXRfcHQoaW50IHR5cGUsIG9iamV0X3QgKm9iamV0
KTsKZXh0ZXJuIGludCBjb19wbGFuX251bXBsYW4oaW50IG51bV9ncmFwaCwgcGxhbl90ICpwbGFu
KTsKZXh0ZXJuIHZvaWQgY2lfeHl6X3B0KHB0X3QgKnB0LCBmbG9hdCB4LCBmbG9hdCB5LCBmbG9h
dCB6KTsKZXh0ZXJuIGludCBwdF9pbl9vYmpldChwdF90ICpwdCwgb2JqZXRfdCAqb2JqZXQpOwpl
eHRlcm4gaW50IG9iamV0X2luX29iamV0KG9iamV0X3QgKm9iamV0MSwgb2JqZXRfdCAqb2JqZXQy
KTsKZXh0ZXJuIHZvaWQgdHJhbnNmZXJlX2xpc3RlX1BUKG9iamV0X3QgKm9iamV0X2RlcCwgcHRf
dCAqcHQsIG9iamV0X3QgKm9iamV0X2Fycik7CmV4dGVybiBpbnQgaW52ZXJzZV9saXN0ZShvYmpl
dF90ICpvYmpldCk7CmV4dGVybiB2b2lkIGNpX29iamV0X3BsYW4ocGxhbl90ICpwbGFuLCBvYmpl
dF90ICpvYmpldCk7CmV4dGVybiBpbnQgbXZfb2JqZWN0KG9iamV0X3QgKm9iamV0LCBwbGFuX3Qg
KnBsYW4pOwpleHRlcm4gb2JqZXRfdCAqY29fcGxhbl9vYmpldChwbGFuX3QgKnBsYW4pOwpleHRl
cm4gb2JqZXRfdCAqYWxsb2NhdGlvbl9vYmpldCh2b2lkKTsKZXh0ZXJuIHB0X3QgKmFsbG9jYXRp
b25fcHQodm9pZCk7CmV4dGVybiB2b2lkIGFjdHVhbGlzZV9leHRyZW1fb2JqZXQocHRfdCAqcHQs
IGluZm9fYWN0aWZfdCAqaW5mbyk7CmV4dGVybiB2b2lkIGFjdHVhbGlzZV9leHRyZW1fb2JqZXRf
ZGVzdHJveShwdF90ICpwdCk7CmV4dGVybiBpbnQgY29fcHRfYXByZXNfcHQocHRfdCAqcHQyLCBw
dF90ICpwdDEpOwpleHRlcm4gaW50IHB0X2luX3NlZ21lbnQocHRfdCAqcHQsIHB0X3QgKnB0MSwg
cHRfdCAqcHQyKTsKZXh0ZXJuIHBsYW5fdCAqY29fZ3JhcGhfcGxhbihpbnQgbnVtX2dyYXBoLCBp
bnQgbnVtX3BsYW4pOwpleHRlcm4gaW50IGNvX25iX3BsYW4oaW50IG51bV9ncmFwaGlxdWUpOwpl
eHRlcm4gY2hhciAqY29fbm9tX2dyYXBoaXF1ZShpbnQgbnVtX2dyYXBoKTsKZXh0ZXJuIHN0cnVj
dCByZWZfZ3JhcGhpcXVlICpjb19ncmFwaGlxdWVfcHQocHRfdCAqcHQpOwpleHRlcm4gaW50IGNv
X3BsYW5faW5fZ3JhcGhpcXVlKGludCBudW1fZ3JhcGgsIGNoYXIgKm5vbV9wbGFuLCBpbnQgKm51
bV9wbGFuKTsKZXh0ZXJuIGNoYXIgKmNvX25vbV9wbGFuKHBsYW5fdCAqcGxhbik7CmV4dGVybiB2
b2lkIGNpX25vbV9wbGFuKHBsYW5fdCAqcGxhbiwgY2hhciAqbm9tKTsKZXh0ZXJuIGNoYXIgKmNv
X25vbV9udW1wbGFuKGludCBudW1fZ3JhcGhpcXVlLCBpbnQgbnVtX3BsYW4pOwpleHRlcm4gaW50
IGNvX3R5cGVfcGxhbihpbnQgbnVtX2dyYXBoaXF1ZSwgaW50IG51bV9wbGFuKTsKZXh0ZXJuIHZv
aWQgY2lfdHlwZV9wbGFuKGludCBudW1fZ3JhcGhpcXVlLCBpbnQgbnVtX3BsYW4sIGludCB0eXBl
KTsKZXh0ZXJuIGludCBjb19jb3VsZXVyX3BsYW4oaW50IG51bV9ncmFwaGlxdWUsIGludCBudW1f
cGxhbik7CmV4dGVybiBpbnQgY29fdHlwZV9wcm9qX3BsYW4oaW50IG51bV9ncmFwaGlxdWUsIGlu
dCBudW1fcGxhbik7CmV4dGVybiB2b2lkIGNpX2NvdWxldXJfcGxhbihpbnQgbnVtX2dyYXBoaXF1
ZSwgaW50IG51bV9wbGFuLCBpbnQgbnVtX2NvdWxldXIpOwpleHRlcm4gdm9pZCBjaV90eXBlX3By
b2pfcGxhbihpbnQgbnVtX2dyYXBoaXF1ZSwgaW50IG51bV9wbGFuLCBpbnQgbnVtX3R5cGUpOwpl
eHRlcm4gb2JqZXRfdCAqY29fb2JqZXRfcGVyZShvYmpldF90ICpvYmpldCwgaW50IG51bSk7CmV4
dGVybiBvYmpldF90ICpjb19vYmpldF9maWxzKG9iamV0X3QgKm9iamV0LCBpbnQgbnVtKTsKZXh0
ZXJuIGludCBjb19jb3RlX29iamV0X2ZpbHMob2JqZXRfdCAqb2JqZXQsIGludCBudW0pOwpleHRl
cm4gaW50IGRlcm5pZXJfcHQocHRfdCAqcHQpOwpleHRlcm4gaW50IGNvX25iX3B0X29iamV0KG9i
amV0X3QgKm9iamV0KTsKZXh0ZXJuIGludCBpbnRlcnNlY3Rpb25fZWNyYW4ob2JqZXRfdCAqb2Jq
ZXQpOwpleHRlcm4gaW50IGdyYXBoaWNfb2Jzb2xldGUoZ3JhcGhpcXVlX2ltYWdlX3QgKmdyYXBo
aXF1ZSk7CmV4dGVybiBpbnQgYmFja3VwX29ic29sZXRlKGdyYXBoaXF1ZV9pbWFnZV90ICpncmFw
aGlxdWUpOwpleHRlcm4gdm9pZCBzZXRfYmFja3VwX2ZsYWdzKGdyYXBoaXF1ZV9pbWFnZV90ICpn
cmFwaGlxdWUsIGludCBmbGFnKTsKZXh0ZXJuIHZvaWQgc2V0X29iamV0X3oob2JqZXRfdCAqb2Jq
ZXQsIGZsb2F0IHopOwpleHRlcm4gZmxvYXQgZ2V0X29iamV0X3oob2JqZXRfdCAqb2JqZXQpOwoK
CmV4dGVybiBpbnQgdGVzdF9jaGFpbmVfcG9seShpbmZvX2FjdGlmX3QgKmluZm8sIGludCBuYik7
CmV4dGVybiBpbnQgZGVmaW5pdGlvbl9lbGVtZW50X3BvbHlnb25lKGluZm9fYWN0aWZfdCAqaW5m
byk7CmV4dGVybiBpbnQgZWxlbWVudF9zdWl2YW50X3BvbHlnb25lKGluZm9fYWN0aWZfdCAqaW5m
byk7CmV4dGVybiBpbnQgc3RvY2tlX2VsZW1lbnRfcG9seWdvbmUoaW5mb19hY3RpZl90ICppbmZv
LCBpbmZvX2FjdGlmX3QgKippbmZvX29iamV0LCBpbnQgKm5iX29iamV0KTsKZXh0ZXJuIGludCBi
b3JkX3BvbHlnb25lKG9iamV0X3QgKmNoYWluZSwgaW50IHNlbnMpOwpleHRlcm4gaW50IGluc2Vy
dGlvbl9wb2x5KG9iamV0X3QgKm9iamV0X25ldywgaW50IHNlbnMsIGludCBjb3RlX2luc2VydGlv
biwgb2JqZXRfdCAqb2JqZXRfb2xkLCBvYmpldF90ICpwb2x5KTsKZXh0ZXJuIGludCB0ZXN0X29y
aWVudGF0aW9uX3BvbHkoaW5mb19hY3RpZl90ICppbmZvX29iamV0cywgaW50IG5iX29iamV0cyk7
CmV4dGVybiBvYmpldF90ICpwb2x5Z29uZV9hX2dhdWNoZShpbmZvX2FjdGlmX3QgKmluZm8pOwpl
eHRlcm4gaW50IG1ha2VfYm91bmRhcnlfbGlzdChvYmpldF90ICpjaGFpbmUsIGludCBzZW5zLCBp
bmZvX2FjdGlmX3QgKipsaXN0ZSwgaW50ICpuYl9vYmpldHMpOwpleHRlcm4gb2JqZXRfdCAqY3Jl
YXRlX3BvbHlnb24oaW50IHR5cGUsIG9iamV0X3QgKm9iamV0LCBpbnQgc2VucywgcGxhbl90ICpw
bGFuKTsKZXh0ZXJuIGludCBnZXRfcG9seWNvbXBfYm91bmRhcmllcyhvYmpldF90ICpvYmpldCwg
aW50ICoqbm9iaiwgcmVsYXRpb25fdCAqKnJsaXN0KTsKZXh0ZXJuIGludCBvcmllbnRhdGlvbl9w
b2x5Z29uZXMoZ3JhcGhpcXVlX2ltYWdlX3QgKmdyYXBoaWMpOwpleHRlcm4gaW50IHRlc3RfcG9s
eWdvbl9vcmllbnRhdGlvbihvYmpldF90ICpvYmpldCk7CmV4dGVybiBpbnQgaW52ZXJzZV9wb2x5
Z29uZShvYmpldF90ICpvYmpldCk7CmV4dGVybiBpbnQgaW52ZXJzZV9yZWxhdGlvbl9yZWNpcHJv
cXVlKHJlbGF0aW9uX3QgKmZpbHMsIG9iamV0X3QgKm9iamV0KTsKCmV4dGVybiBvYmpldF90ICpl
ZGl0X3BvbHlnb25lKGludCB0eXBlLCBpbmZvX2FjdGlmX3QgKmluZm9fb2JqZXQsIGludCBuYl9v
YmpldCwgcGxhbl90ICpwbGFuKTsKZXh0ZXJuIGludCBvYmpldF9wb2x5Z29uZV9jaGFpbmUoaW5m
b19hY3RpZl90IGluZm8sIGluZm9fYWN0aWZfdCAqKmluZm9fb2JqZXQsIGludCAqbmJfb2JqZXQp
OwpleHRlcm4gaW50IG9iamV0X3BvbHlnb25lX25vZXVkKGluZm9fYWN0aWZfdCBpbmZvLCBpbmZv
X2FjdGlmX3QgKippbmZvX29iamV0LCBpbnQgKm5iX29iamV0KTsKZXh0ZXJuIGludCBvcmdhbmlz
ZV9wb2x5Z29uZShpbmZvX2FjdGlmX3QgKippbmZvX29iamV0LCBpbnQgKm5iX29iamV0KTsKZXh0
ZXJuIHZvaWQgb3JnYW5pc2VfcG9seWdvbmVfMV9vYmpldChpbmZvX2FjdGlmX3QgKippbmZvX29i
amV0LCBpbnQgKm5iX29iamV0KTsKZXh0ZXJuIHZvaWQgb3JnYW5pc2VfcG9seWdvbmVfMl9vYmpl
dChpbmZvX2FjdGlmX3QgKippbmZvX29iamV0LCBpbnQgKm5iX29iamV0KTsKZXh0ZXJuIHZvaWQg
b3JnYW5pc2VfcG9seWdvbmVfcGx1czJfb2JqZXQoaW5mb19hY3RpZl90ICoqaW5mb19vYmpldCwg
aW50ICpuYl9vYmpldCk7CmV4dGVybiB2b2lkIG9yaWVudGVfMl9vYmpldHMob2JqZXRfdCAqb2Jq
ZXRfMSwgaW50IG51bV8xLCBvYmpldF90ICpvYmpldF8yLCBpbnQgbnVtXzIsIGluZm9fYWN0aWZf
dCAqKmluZm9fb2JqZXQsIGludCAqbmJfb2JqZXQpOwpleHRlcm4gdm9pZCBvcmllbnRlXzJfY2hh
aW5lcyhvYmpldF90ICpvYmpldF8xLCBpbnQgbnVtXzEsIG9iamV0X3QgKm9iamV0XzIsIGludCBu
dW1fMiwgaW5mb19hY3RpZl90ICoqaW5mb19vYmpldCwgaW50ICpuYl9vYmpldCk7CmV4dGVybiB2
b2lkIG9yaWVudGVfMl9jaGFpbmVzX2Rpc3RhbmNlKG9iamV0X3QgKm9iamV0XzEsIGludCBudW1f
MSwgb2JqZXRfdCAqb2JqZXRfMiwgaW50IG51bV8yLCBpbmZvX2FjdGlmX3QgKippbmZvX29iamV0
LCBpbnQgKm5iX29iamV0KTsKZXh0ZXJuIHZvaWQgb3JpZW50ZV8yX29iamV0X2Rpc3RhbmNlKG9i
amV0X3QgKm9iamV0XzEsIGludCBudW1fMSwgb2JqZXRfdCAqb2JqZXRfMiwgaW50IG51bV8yLCBp
bmZvX2FjdGlmX3QgKippbmZvX29iamV0LCBpbnQgKm5iX29iamV0KTsKZXh0ZXJuIHZvaWQgY2Fs
Y3VsX2Rpc19wdChwdF90ICpwdF8xLCBwdF90ICpwdF8yLCBpbnQgKmRpcyk7CmV4dGVybiB2b2lk
IGNhbGN1bF9kcm9pdGVfb2JqZXQob2JqZXRfdCAqb2JqZXRfMSwgaW50IGNvdGVfMSwgb2JqZXRf
dCAqb2JqZXRfMiwgaW50IGNvdGVfMiwgZmxvYXQgKmEsIGZsb2F0ICpiLCBmbG9hdCAqeDEsIGZs
b2F0ICp5MSwgZmxvYXQgKngyLCBmbG9hdCAqeTIpOwpleHRlcm4gb2JqZXRfdCAqZWRpdF9wb2x5
Z29uZV9jb21wKGluZm9fYWN0aWZfdCAqaW5mb19vYmpldCwgaW50IG5iX29iamV0LCBwbGFuX3Qg
KnBsYW4pOwpleHRlcm4gaW50IG9iamV0X3BvbHlnb25lX3BvbHkoaW5mb19hY3RpZl90IGluZm8s
IGluZm9fYWN0aWZfdCAqKmluZm9fb2JqZXQsIGludCAqbmJfb2JqZXQpOwpleHRlcm4gdm9pZCBj
aV9vYmpldHNfcG9seWdvbmUob2JqZXRfdCAqb2JqZXQsIGluZm9fYWN0aWZfdCAqaW5mb19vYmpl
dCwgaW50IG5iX29iamV0KTsKZXh0ZXJuIHZvaWQgY2lfb2JqZXRfcG9seWdvbmUob2JqZXRfdCAq
b2JqZXQsIGludCBjb3RlLCBvYmpldF90ICpvYmpldF9wb2x5KTsKZXh0ZXJuIHZvaWQgY2lfcmVs
YXRpb25fZmlsc19vYmpldChvYmpldF90ICpvYmpldCwgb2JqZXRfdCAqb2JqZXRfcmVmZXJlbmNl
LCBpbnQgY290ZV9yZWZlcmVuY2UpOwpleHRlcm4gdm9pZCBkZXN0cm95X3JlbGF0aW9uX29iamV0
X2luX3BlcmUob2JqZXRfdCAqb2JqZXQsIG9iamV0X3QgKm9iamV0X3BlcmUpOwpleHRlcm4gdm9p
ZCBkZXN0cm95X3JlbGF0aW9uX29iamV0X2luX2ZpbHMob2JqZXRfdCAqb2JqZXQsIG9iamV0X3Qg
Km9iamV0X2ZpbHMpOwpleHRlcm4gdm9pZCBkZWNhbGVfbGlzdGVfcmVsYXRpb24oc3RydWN0IHJl
bGF0aW9uICpsaXN0ZSwgaW50ICpuYl9saXN0ZSwgaW50IG51bWVybyk7CmV4dGVybiB2b2lkIGNp
X3JlbGF0aW9uX3BlcmVfb2JqZXQob2JqZXRfdCAqb2JqZXQsIG9iamV0X3QgKm9iamV0X3JlZmVy
ZW5jZSwgaW50IGNvdGVfcmVmZXJlbmNlKTsKZXh0ZXJuIGludCBjb19vYmpldF9pbl9saXN0ZShv
YmpldF90ICpvYmpldCwgaW5mb19hY3RpZl90ICoqaW5mb19vYmpldCwgaW50ICpuYl9vYmpldCk7
CmV4dGVybiBpbnQgY2lfb2JqZXRfaW5fbGlzdGUob2JqZXRfdCAqb2JqZXQsIGludCBjb3RlLCBp
bnQgbnVtZXJvLCBpbmZvX2FjdGlmX3QgKippbmZvX29iamV0LCBpbnQgKm5iX29iamV0KTsKZXh0
ZXJuIGludCBjaV9jb3RlX29iamV0X2luX2xpc3RlKG9iamV0X3QgKm9iamV0LCBpbnQgY290ZSwg
aW50IG51bWVybywgaW5mb19hY3RpZl90ICoqaW5mb19vYmpldCwgaW50ICpuYl9vYmpldCk7CmV4
dGVybiB2b2lkIGRlY2FsZV9kcm9pdGUoaW50IG51bWVybywgaW5mb19hY3RpZl90ICppbmZvX29i
amV0LCBpbnQgbmJfb2JqZXQpOwpleHRlcm4gb2JqZXRfdCAqY29fb2JqZXRfbGlzdGUoaW5mb19h
Y3RpZl90ICppbmZvX29iamV0LCBpbnQgbmJfb2JqZXQsIGludCBudW0pOwpleHRlcm4gaW50IGNv
X2NvdGVfb2JqZXRfbGlzdGUoaW5mb19hY3RpZl90ICppbmZvX29iamV0LCBpbnQgbmJfb2JqZXQs
IGludCBudW0pOwpleHRlcm4gdm9pZCBham91dF9jaGFpbmVfZmlzc2lvbl90b19wb2x5KG9iamV0
X3QgKmNoYWluZV9vbGQsIG9iamV0X3QgKmNoYWluZV9uZXcsIG9iamV0X3QgKnBvbHkpOwpleHRl
cm4gdm9pZCBham91dF9uZXdfZmlzc2lvbl9pbl9saXN0ZShvYmpldF90ICpjaGFpbmVfb2xkLCBp
bnQgY290ZV9vbGQsIGludCBudW1fb2xkLCBvYmpldF90ICpjaGFpbmVfbmV3LCBpbmZvX2FjdGlm
X3QgKippbmZvX29iamV0LCBpbnQgKm5iX29iamV0KTsKCgpzdHJ1Y3QgcmVhZF9ncmFwaGljX2Rh
dGE7CnR5cGVkZWYgc3RydWN0IHJlYWRfZ3JhcGhpY19kYXRhIHJlYWRfZ3JhcGhpY19kYXRhX3Q7
CgpleHRlcm4gcmVhZF9ncmFwaGljX2RhdGFfdCAqb3Blbl9ncmFwaGljKGNvbnN0IGNoYXIgKmZp
bGVuYW1lKTsKZXh0ZXJuIHZvaWQgY2xvc2VfZ3JhcGhpYyhyZWFkX2dyYXBoaWNfZGF0YV90ICpk
YXRhKTsKZXh0ZXJuIHN0cnVjdCBwbGFuICpuZXh0X3BsYW5lKHJlYWRfZ3JhcGhpY19kYXRhX3Qg
KmRhdGEpOwpleHRlcm4gc3RydWN0IG9iamV0ICpuZXh0X3BvaW50X29mX2N1cnJlbnRfcGxhbmUo
cmVhZF9ncmFwaGljX2RhdGFfdCAqZGF0YSk7CmV4dGVybiBzdHJ1Y3Qgb2JqZXQgKm5leHRfY2hh
aW5fb2ZfY3VycmVudF9wbGFuZShyZWFkX2dyYXBoaWNfZGF0YV90ICpkYXRhKTsKZXh0ZXJuIHN0
cnVjdCBwdCAqbmV4dF9wdF9vZl9jdXJyZW50X2NoYWluKHJlYWRfZ3JhcGhpY19kYXRhX3QgKmRh
dGEpOwpleHRlcm4gaW50IG5iX3B0X29mX2N1cnJlbnRfY2hhaW4ocmVhZF9ncmFwaGljX2RhdGFf
dCAqZGF0YSk7CmV4dGVybiBzdHJ1Y3Qgb2JqZXQgKm5leHRfcG9seWdvbl9vZl9jdXJyZW50X3Bs
YW5lKHJlYWRfZ3JhcGhpY19kYXRhX3QgKmRhdGEpOwpleHRlcm4gc3RydWN0IHB0ICpuZXh0X3B0
X29mX2N1cnJlbnRfcG9seWdvbihyZWFkX2dyYXBoaWNfZGF0YV90ICpkYXRhKTsKZXh0ZXJuIGlu
dCBuYl9wdF9vZl9jdXJyZW50X3BvbHlnb24ocmVhZF9ncmFwaGljX2RhdGFfdCAqZGF0YSk7CmV4
dGVybiBzdHJ1Y3Qgb2JqZXQgKm5leHRfY29tcF9wb2x5X29mX2N1cnJlbnRfcGxhbmUocmVhZF9n
cmFwaGljX2RhdGFfdCAqZGF0YSk7CmV4dGVybiBzdHJ1Y3Qgb2JqZXQgKm5leHRfcG9seV9vZl9j
dXJyZW50X2NvbXBfcG9seShyZWFkX2dyYXBoaWNfZGF0YV90ICpkYXRhKTsKZXh0ZXJuIGZsb2F0
IHhfb2ZfY3VycmVudF9wdChyZWFkX2dyYXBoaWNfZGF0YV90ICpkYXRhKTsKZXh0ZXJuIGZsb2F0
IHlfb2ZfY3VycmVudF9wdChyZWFkX2dyYXBoaWNfZGF0YV90ICpkYXRhKTsKZXh0ZXJuIGZsb2F0
IHpfb2ZfY3VycmVudF9wdChyZWFkX2dyYXBoaWNfZGF0YV90ICpkYXRhKTsKZXh0ZXJuIHN0cnVj
dCBvYmpldCAqbmV4dF9jaGFpbihyZWFkX2dyYXBoaWNfZGF0YV90ICpkYXRhKTsKZXh0ZXJuIHN0
cnVjdCBwdCAqbmV4dF9wdChyZWFkX2dyYXBoaWNfZGF0YV90ICpkYXRhKTsKZXh0ZXJuIGludCBu
Yl9wb2ludHNfaW5fY2hhaW4ocmVhZF9ncmFwaGljX2RhdGFfdCAqZGF0YSk7CmV4dGVybiB2b2lk
IHJlc2V0KHJlYWRfZ3JhcGhpY19kYXRhX3QgKmRhdGEpOwoKCgpzdHJ1Y3Qgd3JpdGVfZ3JhcGhp
Y19kYXRhOwp0eXBlZGVmIHN0cnVjdCB3cml0ZV9ncmFwaGljX2RhdGEgd3JpdGVfZ3JhcGhpY19k
YXRhX3Q7CgpleHRlcm4gd3JpdGVfZ3JhcGhpY19kYXRhX3QgKmNyZWF0ZV9ncmFwaGljKGNoYXIg
KmdyYXBoaWNfbmFtZSk7CmV4dGVybiB2b2lkIHNhdmVfZ3JhcGhpYyh3cml0ZV9ncmFwaGljX2Rh
dGFfdCAqZGF0YSk7CmV4dGVybiB2b2lkIGFkZF9wbGFuZSh3cml0ZV9ncmFwaGljX2RhdGFfdCAq
ZGF0YSwgY2hhciAqcGxhbmVfbmFtZSk7CmV4dGVybiB2b2lkIGFkZF9wb2ludF9pbl9jdXJyZW50
X3BsYW5lKHdyaXRlX2dyYXBoaWNfZGF0YV90ICpkYXRhLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBmbG9hdCB4LCBmbG9hdCB5ICxmbG9hdCB6KTsKZXh0ZXJuIHZvaWQg
YWRkX2NoYWluX2luX2N1cnJlbnRfcGxhbmUod3JpdGVfZ3JhcGhpY19kYXRhX3QgKmRhdGEpOwpl
eHRlcm4gc3RydWN0IHB0KiBhZGRfcG9pbnRfaW5fY3VycmVudF9jaGFpbih3cml0ZV9ncmFwaGlj
X2RhdGFfdCAqZGF0YSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZmxvYXQgeCwgZmxvYXQgeSAsZmxvYXQgeik7CmV4dGVybiB2b2lkIHRyYW5zZm9ybV9jaGFp
bnNfdG9fcG9seWdvbnMod3JpdGVfZ3JhcGhpY19kYXRhX3QgKmRhdGEsIGludCBtb2RlKTsKCgpl
eHRlcm4gdm9pZCBnZXRfYm94X29mX3BsYW5lKHN0cnVjdCBwbGFuICpwbGFuZSwgZmJveCAqYm94
KTsKZXh0ZXJuIGludCBpc19lbXB0eV9wbGFuZShzdHJ1Y3QgcGxhbiAqcGxhbmUpOwpleHRlcm4g
aW50IHBsYW5lX2hhc19jaGFpbihzdHJ1Y3QgcGxhbiAqcGxhbmUpOwpleHRlcm4gY2hhciAqY2hh
bmdlX3NwYWNlX3RvKGNoYXIgKnN0cmluZywgY2hhciBjKTsKZXh0ZXJuIHZvaWQgY29tcHV0ZV9z
aGlmdChncmFwaGlxdWVfaW1hZ2VfdCAqZywgaW50IG5iRGlnaXQsCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgZG91YmxlICpkeCwgZG91YmxlICpkeSk7CmV4dGVybiB2b2lkIHVwZGF0ZV9aX3Bv
bHkoZ3JhcGhpcXVlX2ltYWdlX3QgKmcpOwpleHRlcm4gdm9pZCBkZWxldGVfcG9seWdvbihzdHJ1
Y3Qgb2JqZXQgKnBvbHkpOwojIDQ0ICJtYWluLmMiIDIKIyAxICIvOS9vcnNhdHRpL1NQT1QzRF9D
T01QSUxfVEVTVF9FTlYvU1BPVDNEL0lOQ0xVREUvaW1hZ2UuaCIgMQojIDI5ICIvOS9vcnNhdHRp
L1NQT1QzRF9DT01QSUxfVEVTVF9FTlYvU1BPVDNEL0lOQ0xVREUvaW1hZ2UuaCIKIyAxICIvb3B0
L2djYy0zLjAuMS9zcGFyYy1zdW4tc29sYXJpczIuNy9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29s
YXJpczIuNy8zLjAuMS9pbmNsdWRlL3N5cy90eXBlcy5oIiAxIDMKIyAzMCAiLzkvb3JzYXR0aS9T
UE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL2ltYWdlLmgiIDIKCiMgMSAiLzkv
b3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL3JlY3QuaCIgMQoK
CgoKCnN0cnVjdCByZWN0IHsKICBpbnQgeCx5OwogIGludCB3LGg7Cn07CgpzdHJ1Y3QgZnJlY3Qg
ewogIGZsb2F0IHgseTsKICBmbG9hdCB3LGg7Cn07CgpzdHJ1Y3QgZHJlY3QgewogIGRvdWJsZSB4
LHk7CiAgZG91YmxlIHcsaDsKfTsKCnR5cGVkZWYgc3RydWN0IHJlY3QgcmVjdDsKdHlwZWRlZiBy
ZWN0ICpSZWN0Owp0eXBlZGVmIHN0cnVjdCBmcmVjdCBmcmVjdDsKdHlwZWRlZiBmcmVjdCAqRlJl
Y3Q7CnR5cGVkZWYgc3RydWN0IGRyZWN0IGRyZWN0Owp0eXBlZGVmIGRyZWN0ICpEUmVjdDsKIyAz
MiAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL2ltYWdl
LmgiIDIKIyAxICIvOS9vcnNhdHRpL1NQT1QzRF9DT01QSUxfVEVTVF9FTlYvU1BPVDNEL0lOQ0xV
REUvaW1hZ2VfZXJyLmgiIDEKCgoKCgoKCmV4dGVybiBpbnQgcmV0X3B0cl87CgoKCgpleHRlcm4g
aW50IGNvZF9yZXRfOwojIDMzICIvOS9vcnNhdHRpL1NQT1QzRF9DT01QSUxfVEVTVF9FTlYvU1BP
VDNEL0lOQ0xVREUvaW1hZ2UuaCIgMgojIDEgIi85L29yc2F0dGkvU1BPVDNEX0NPTVBJTF9URVNU
X0VOVi9TUE9UM0QvSU5DTFVERS9hcmdzLmgiIDEKIyAzNCAiLzkvb3JzYXR0aS9TUE9UM0RfQ09N
UElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL2ltYWdlLmgiIDIKCgoKCnR5cGVkZWYgdW5zaWdu
ZWQgY2hhciBDSEFSOwojIDExOSAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQ
T1QzRC9JTkNMVURFL2ltYWdlLmgiCnN0cnVjdCBpbnRfZGVzY3JpcHRldXIgewogICAgICAgIGlu
dCBkaW14OwogICAgICAgIGludCBuZGlteTsKICAgICAgICBpbnQgYnNpemU7CiAgICAgICAgaW50
IGZsYWc7CiAgICAgICAgaW50IG5kaW16OwogICAgICAgIGludCBuZGltdjsKICAgICAgICBpbnQg
bmRpbXg7CiAgICAgICAgZmxvYXQgbWF4aW11bTsKICAgICAgICBmbG9hdCBtaW5pbXVtOwogICAg
ICAgIGZsb2F0IG1veWVubmU7CiAgICAgICAgaW50IGV4cG9zYW50OwogICAgICAgIGNoYXIgcmVz
Wzg0XTsKICAgICAgICBjaGFyIGNvbW1lbnRbMTI4XTsKICAgICAgICB9IDsKCgpzdHJ1Y3QgaW1h
Z2UgewogICAgICAgIGNoYXIgKm5vbTsKICAgICAgICBpbnQgZmQ7CiAgICAgICAgaW50IGxmbXRb
OV07CiAgICAgICAgaW50IG5vX2xpZ25lOwogICAgICAgIGludCBtb2RlOwogICAgICAgIG9mZl90
IGJ5dGVfcG50OwogICAgICAgIGludCBub19waXhlbDsKICAgICAgICBzdHJ1Y3QgaW1hZ2Vfc3Bs
aXQgKm5mX3NwbGl0OwogICAgICAgIGludCBzYW1wbGVfZmFjdG9yOwoKICAgICAgICBzdHJ1Y3Qg
ZWxlbWVudF9saXN0ICoqYW5JbWFnZUxpc3Q7CiAgICAgICAgaW50IG5iX2xpc3Q7CiAgICAgICAg
aW50IG11bHRpX3JlczsKICAgICAgICBkb3VibGUgWF9PcmlnaW5fbGlzdDsKICAgICAgICBkb3Vi
bGUgWV9PcmlnaW5fbGlzdDsKICAgICAgICBkb3VibGUgU3RlcDsKICAgICAgICB9OwoKCnN0cnVj
dCBlbGVtZW50X2xpc3QgewogICAgICAgIGRvdWJsZSBYX09yaWdpbjsKICAgICAgICBkb3VibGUg
WV9PcmlnaW47CiAgICAgICAgZG91YmxlIFhfU0U7CiAgICAgICAgZG91YmxlIFlfU0U7CiAgICAg
ICAgc3RydWN0IGltYWdlICphbkltYWdlUHQ7CiAgICAgICAgfTsKCgoKCnN0cnVjdCBzcGxpdF9o
ZWFkZXIgewogIGludCBtYWdpYzsKICBpbnQgbGZtdFs5XTsKICBpbnQgdGlsZV93aWR0aDsKICBp
bnQgdGlsZV9oZWlnaHQ7CiAgaW50IGRhdGFfb2Zmc2V0OwogIGludCBzdWJfc2FtcGxlczsKICBp
bnQgdmVyc2lvbl9tYWdpYzsKfSA7CgpzdHJ1Y3QgaW1hZ2Vfc3BsaXQgewogIHN0cnVjdCBpbWFn
ZSAqbmY7CiAgc3RydWN0IHNwbGl0X2hlYWRlciAqaGVhZDsKICBvZmZfdCBzaXplOwogIGludCBw
aXhlbF9zaXplOwogIGludCB0aWxlX2xpbmVieXRlczsKICBvZmZfdCAqc3ViX3NhbXBsZV9vZmZz
ZXQ7CiAgY2hhciAqYnVmX21hcHBlZDsKICBpbnQgYnVmX21hcHBlZF9wcm90Owp9IDsKCnN0cnVj
dCB1bml0ZXMgewogICAgICAgIGludCBsdXNbMTZdOwogICAgICAgIGludCBsdXRlazsKICAgICAg
ICBpbnQgaXJlc1sxMV07CiAgICAgICAgaW50IG5vbXNbNV07CiAgICAgICAgc2hvcnQgaXZ0WzJd
OwogICAgICAgIH07CgoKCnN0cnVjdCBzcGxpdF9zdWJfc2FtcGxlcyB7CiAgb2ZmX3QgZmlsZV9v
ZmZzZXQ7CiAgb2ZmX3QgcmVtYWluaW5nX3NsaWNlczsKICBvZmZfdCBsaW5lczsKICBvZmZfdCBs
aW5lYnl0ZXM7CiAgb2ZmX3QgbGluZXRpbGVzOwogIG9mZl90IGxhc3RfdGlsZV9zaXplOwogIGNo
YXIgKnRpbGVfYnVmZmVyOwp9Owp0eXBlZGVmIHN0cnVjdCBzcGxpdF9zdWJfc2FtcGxlcyAqU3Vi
X3NhbXBsZXM7CgpzdHJ1Y3Qgd3JpdGVfc3BsaXRfZGF0YSB7CiAgU3ViX3NhbXBsZXMgRGF0YTsK
ICBpbnQgY3VycmVudF9pbnB1dF9saW5lOwogIHN0cnVjdCBzcGxpdF9oZWFkZXIgaGVhZGVyOwog
IGludCBmZDsKICBjaGFyICpzYW1wbGVkX2xpbmVfYnVmZmVyOwp9Owp0eXBlZGVmIHN0cnVjdCB3
cml0ZV9zcGxpdF9kYXRhIHdyaXRlX3NwbGl0X2RhdGFfdDsKCgoKCgoKCmV4dGVybiBpbnQgZGVi
dWdfOwoKZXh0ZXJuIHN0cnVjdCB1bml0ZXMgdW5pdGVzXzsKZXh0ZXJuIGludCB4YXJnYzsKZXh0
ZXJuIGNoYXIgKip4YXJndjsKCiMgMSAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5W
L1NQT1QzRC9JTkNMVURFL3ZzeXNsYy5oIiAxCiMgMjggIi85L29yc2F0dGkvU1BPVDNEX0NPTVBJ
TF9URVNUX0VOVi9TUE9UM0QvSU5DTFVERS92c3lzbGMuaCIKIyAxICIvOS9vcnNhdHRpL1NQT1Qz
RF9DT01QSUxfVEVTVF9FTlYvU1BPVDNEL0lOQ0xVREUvaW1hZ2UuaCIgMQojIDI5ICIvOS9vcnNh
dHRpL1NQT1QzRF9DT01QSUxfVEVTVF9FTlYvU1BPVDNEL0lOQ0xVREUvdnN5c2xjLmgiIDIKIyA0
NiAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL3ZzeXNs
Yy5oIgp1bmlvbiBmbCB7CiAgICAgICAgZmxvYXQgbG9jYWw7CiAgICAgICAgaW50IGJpdHM7CiAg
ICAgICAgc3RydWN0IHsKICAgICAgICAgICAgICAgIGludAogICAgICAgICAgICAgICAgICAgICAg
ICBzaWduIDogMSwKICAgICAgICAgICAgICAgICAgICAgICAgZXhwb25lbnQgOiA3LAogICAgICAg
ICAgICAgICAgICAgICAgICBtYW50aXNzYSA6IDI0OwogICAgICAgIH0gUGVya2luOwogICAgICAg
IHN0cnVjdCB7CiAgICAgICAgICAgICAgICBpbnQKICAgICAgICAgICAgICAgICAgICAgICAgc2ln
biA6IDEsCiAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9uZW50IDogNywKICAgICAgICAgICAg
ICAgICAgICAgICAgbWFudGlzc2EgOiAyNDsKICAgICAgICB9IEdvdWxkOwogICAgICAgIHN0cnVj
dCB7CiAgICAgICAgICAgICAgICBpbnQKICAgICAgICAgICAgICAgICAgICAgICAgc2lnbiA6IDEs
CiAgICAgICAgICAgICAgICAgICAgICAgIGV4cG9uZW50IDogOCwKICAgICAgICAgICAgICAgICAg
ICAgICAgbWFudGlzc2EgOiAyMzsKICAgICAgICB9IEllZWU7CiAgICAgICAgc3RydWN0IHsKICAg
ICAgICAgICAgICAgIGludAogICAgICAgICAgICAgICAgICAgICAgICBzaWduIDogMSwKICAgICAg
ICAgICAgICAgICAgICAgICAgZXhwb25lbnQgOiA4LAogICAgICAgICAgICAgICAgICAgICAgICBt
YW50aXNzYSA6IDIzOwogICAgICAgIH0gQ29udmV4Owp9OwojIDg2ICIvOS9vcnNhdHRpL1NQT1Qz
RF9DT01QSUxfVEVTVF9FTlYvU1BPVDNEL0lOQ0xVREUvdnN5c2xjLmgiCmV4dGVybiBpbnQgSV9s
aW5lc2l6ZShzdHJ1Y3QgaW1hZ2UgKm5mLCBpbnQgdyk7CgpleHRlcm4gZG91YmxlIElhbmludChk
b3VibGUgZHZhbCk7CmV4dGVybiBpbnQgSW5pbnQoZG91YmxlIGR2YWwpOwoKZXh0ZXJuIGludCAq
YWRyZXNzXyhpbnQgKnZhcik7CgpleHRlcm4gdm9pZCBhc3NibXBfKHZvaWQpOwoKZXh0ZXJuIHZv
aWQgYXNzY2l0Xyh2b2lkKTsKZXh0ZXJuIHZvaWQgZmVyY2l0Xyh2b2lkKTsKZXh0ZXJuIHZvaWQg
bGVtZWN0Xyh2b2lkKTsKZXh0ZXJuIHZvaWQgbGVwYWN0Xyh2b2lkKTsKZXh0ZXJuIHZvaWQgZWNt
ZWN0Xyh2b2lkKTsKCmV4dGVybiB2b2lkIGFzc3Rla18odm9pZCk7CmV4dGVybiB2b2lkIGZlcnRl
a18odm9pZCk7CgpleHRlcm4gdm9pZCBiaXRjYXJfKENIQVIgKmluLCBDSEFSICpvdXQsIGludCAq
bmJwdCk7CgpleHRlcm4gdm9pZCBiaXRpbnRfKENIQVIgKmluLCBpbnQgKm91dCwgaW50ICpuYnB0
KTsKCmV4dGVybiB2b2lkIGJzZXRfKHJlZ2lzdGVyIENIQVIgYVtdLCByZWdpc3RlciBpbnQgKmsp
OwpleHRlcm4gdm9pZCBiY2xyXyhyZWdpc3RlciBDSEFSIGFbXSwgcmVnaXN0ZXIgaW50ICprKTsK
ZXh0ZXJuIGludCBidGVzdF8ocmVnaXN0ZXIgQ0hBUiBhW10sIHJlZ2lzdGVyIGludCAqayk7Cgpl
eHRlcm4gdm9pZCBjYXJiaXRfKENIQVIgKmluLCBDSEFSICpvdXQsIGludCAqbmJwdCk7CgpleHRl
cm4gdm9pZCBjYXJmbG9fKENIQVIgKmluLCBmbG9hdCAqb3V0LCBpbnQgKm5icHQpOwoKZXh0ZXJu
IHZvaWQgY2FyaW50XyhDSEFSICppbiwgaW50ICpvdXQsIGludCAqbmJwdCk7CgpleHRlcm4gbG9u
ZyBjaHJvbm8odm9pZCk7CgpleHRlcm4gdm9pZCBjbG9zZWZfKGludCAqbik7CgpleHRlcm4gdm9p
ZCBjbnZmbHRfKHVuaW9uIGZsICpidWYsIGludCAqbmJwdCwgaW50ICpmX2NvZGUpOwpleHRlcm4g
dm9pZCBjbnZmbHRfSWVlZSh1bmlvbiBmbCAqYnVmLCBpbnQgbmIpOwpleHRlcm4gdm9pZCBjbnZm
bHRfQ29udmV4KHVuaW9uIGZsICpidWYsIGludCBuYik7CmV4dGVybiB2b2lkIGNudmZsdF9Hb3Vs
ZCh1bmlvbiBmbCAqYnVmLCBpbnQgbmIpOwpleHRlcm4gdm9pZCBjbnZmbHRfUGVya2luKHVuaW9u
IGZsICpidWYsIGludCBuYik7CgpleHRlcm4gdm9pZCBjbnZ0YmdfKENIQVIgKmluLCBDSEFSICpv
dXQsIGludCAqbmJwdCwgaW50IGljb2RpWzJdLCBpbnQgaWNvZG9bMl0sIGludCBpZXhwaVsyXSwg
aW50IGlleHBvWzJdKTsKZXh0ZXJuIGZsb2F0IHB1aXNzYW5jZShpbnQgYSwgaW50IG0pOwpleHRl
cm4gdm9pZCBjbnZ0YmdlcnIoaW50IHR5cGUsIGludCBleHBvc2FudCwgaW50IGJpdHMpOwoKZXh0
ZXJuIHZvaWQgY29weV90aWxlcyhjaGFyICpzcmMsIGNoYXIgKmRzdCwgaW50IHcsIGludCBoLCBp
bnQgbGluZWJ5dGVzLCBpbnQgdGlsZWJ5dGVzLCBpbnQgcGl4ZWxfc2l6ZSk7CgpleHRlcm4gdm9p
ZCBjcHlmbWdfKHN0cnVjdCBpbWFnZSAqKm5mLCBpbnQgbGZtdFtdKTsKCmV4dGVybiB2b2lkIGNw
eWZtdF8oc3RydWN0IGltYWdlICoqbmYsIGludCBpZm10W10pOwoKZXh0ZXJuIHZvaWQgY3B5bm9t
XyhzdHJ1Y3QgaW1hZ2UgKipuZiwgY2hhciAqbm9tKTsKCmV4dGVybiBpbnQgY3JlYXRfaW1hZ2Uo
c3RydWN0IGltYWdlICpuZiwgaW50IG1vZGUpOwoKZXh0ZXJuIHN0cnVjdCB3cml0ZV9zcGxpdF9k
YXRhKiBjcmVhdGVfc3BsaXRfaW1hZ2UoY29uc3QgY2hhciAqc3BsaXRfbmFtZSwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGxmbXRbOV0sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCB0aWxl
X3dpZHRoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBpbnQgdGlsZV9oZWlnaHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGludCB0aWxlX21pbl9zaXplKTsKZXh0ZXJuIGludCB3cml0ZV9zcGxpdF9s
aW5lcyhzdHJ1Y3Qgd3JpdGVfc3BsaXRfZGF0YSAqZGF0YSwgaW50IG5iLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNoYXIgKmJ1ZmYpOwpleHRlcm4gaW50IGNsb3NlX3NwbGl0X2ltYWdl
KHN0cnVjdCB3cml0ZV9zcGxpdF9kYXRhICpkYXRhKTsKCmV4dGVybiBpbnQgZGVzY19mbXQoc3Ry
dWN0IGltYWdlICpuZiwgc3RydWN0IGludF9kZXNjcmlwdGV1ciAqZGVzYyk7CgpleHRlcm4gdm9p
ZCBkZXRzZmNfKGNoYXIgbnZvbFtdLCBjaGFyIG5maWNbXSwgaW50ICpuc2YpOwpleHRlcm4gdm9p
ZCBkZXRmaWNfKGNoYXIgbmZpY1tdKTsKCmV4dGVybiBpbnQgZG9pbXJ3XyhpbnQgKmlzZW5zLCBz
dHJ1Y3QgaW1hZ2UgKipuZiwgaW50ICppdHlwLCBpbnQgKm5zZWMsIGNoYXIgKmlidWYsIGludCAq
bmJ5dCwgaW50ICpuYmx1LCBpbnQgKmlzdCk7CgpleHRlcm4gaW50IGRvcmR3cl8oaW50ICppc2Vu
cywgaW50ICpsdSwgaW50ICppdHlwLCBpbnQgKm5zZWMsIGNoYXIgKmlidWYsIGludCAqbmJ5dCwg
aW50ICpuYmx1LCBpbnQgKmlzdCk7CgpleHRlcm4gaW50IGVjcihzdHJ1Y3QgaW1hZ2UgKm5mLCBp
bnQgbmxpZywgY2hhciBhW10pOwpleHRlcm4gaW50IGVjcl8oc3RydWN0IGltYWdlICoqbmYsIGlu
dCAqbmxpZywgY2hhciBhW10pOwoKZXh0ZXJuIHZvaWQgZWNyZmx0XyhzdHJ1Y3QgaW1hZ2UgKipu
ZiwgaW50ICpubGlnLCBjaGFyIGFbXSk7CmV4dGVybiB2b2lkIGVjcmZsdChzdHJ1Y3QgaW1hZ2Ug
Km5mLCBpbnQgbmxpZywgY2hhciBhW10pOwoKZXh0ZXJuIHZvaWQgZWNyaXR1XyhzdHJ1Y3QgaW1h
Z2UgKipuZiwgaW50IGR1bSwgaW50IGZtdFtdLCBpbnQgKm5saWcsIGNoYXIgYVtdKTsKCmV4dGVy
biBpbnQgZXJtZXNmXyhpbnQgKm4pOwoKZXh0ZXJuIGludCBlcm1lc3NfKGludCAqaXMxLCBpbnQg
KmlzMik7CgpleHRlcm4gdm9pZCBlcnJldXJfKHZvaWQpOwoKZXh0ZXJuIHZvaWQgZXhlY18oaW50
ICphc3RhY2ssIGludCAqbmJmaXhlLCBpbnQgZGltZml4ZVtdLCBpbnQgKm5idmFyLCBpbnQgcGRz
dmFyW10sIGludCAoKnByb2MpKCksIGludCBwMSk7CmV4dGVybiBpbnQgKmlzdGFja18oaW50IHBh
cik7CgpleHRlcm4gaW50IGY3N19hYm9ydCh2b2lkKTsKCmV4dGVybiBpbnQgZmF0YWwoaW50IGNv
ZGUsIGNoYXIgKmZtdCwgLi4uKTsKCmV4dGVybiBpbnQgZmRfaXNwaXBlKGludCBmZCk7CgpleHRl
cm4gdm9pZCBmZG5vdXZfKGludCAqbiwgaW50ICppdGFpbCwgaW50ICppdHlwLCBjaGFyIGlmZFtd
LCBpbnQgKmx1KTsKCmV4dGVybiB2b2lkIGZlcm1uZl8oc3RydWN0IGltYWdlICoqbmYpOwpleHRl
cm4gdm9pZCBmZXJtbmYoc3RydWN0IGltYWdlICpuZik7CgpleHRlcm4gdm9pZCBmbXRfZGVzYyhz
dHJ1Y3QgaW1hZ2UgKm5mLCBzdHJ1Y3QgaW50X2Rlc2NyaXB0ZXVyICpkZXNjKTsKCmV4dGVybiB2
b2lkIGZtdHNldChzdHJ1Y3QgaW1hZ2UgKm5mLCBpbnQgbGZtdFtdKTsKZXh0ZXJuIHZvaWQgZm10
c2V0XyhzdHJ1Y3QgaW1hZ2UgKipuZiwgaW50IGxmbXRbXSk7CgpleHRlcm4gdm9pZCBmcGFuaWNf
KHZvaWQpOwoKZXh0ZXJuIHZvaWQgZ2V0X2dlbmVyaWNfYXJncyh2b2lkKTsKCmV4dGVybiBpbnQg
Z2V0YXJnKGNoYXIgKm9wdCwgY2hhciAqZm9wdCwgdm9pZCAqdmFyb3B0LCBjaGFyICpmMSwgdm9p
ZCAqdjEsIGNoYXIgKmYyLCB2b2lkICp2Mik7CmV4dGVybiBpbnQgdGVzdG9wdCh2b2lkKTsKZXh0
ZXJuIGludCB1bnVzZWRfYXJncyh2b2lkKTsKCmV4dGVybiB2b2lkIGdldGZtZ18oc3RydWN0IGlt
YWdlICoqbmYsIGludCBkdW0sIGludCBsZm10W10pOwoKZXh0ZXJuIHZvaWQgZ2V0Zm10XyhzdHJ1
Y3QgaW1hZ2UgKipuZiwgaW50IGR1bSwgaW50IGlmbXRbXSk7CgpleHRlcm4gdm9pZCBnZXRzZl8o
dm9pZCk7CgpleHRlcm4gdm9pZCBnZXR2b2xfKHZvaWQpOwoKZXh0ZXJuIHZvaWQgZ3JwbWVzXyhp
bnQgKmksIGNoYXIgKnMsIGludCAqbik7CmV4dGVybiB2b2lkIHRyY21lc18oaW50ICppLCBmbG9h
dCAqeCwgZmxvYXQgKnkpOwoKZXh0ZXJuIGludCBpYWNjZXNfKGNoYXIgZmlsZVtdKTsKCmV4dGVy
biBpbnQgaWFuZF8oaW50ICppLCBpbnQgKmopOwpleHRlcm4gaW50IGlvcl8oaW50ICppLCBpbnQg
KmopOwpleHRlcm4gaW50IGllb3JfKGludCAqaSwgaW50ICpqKTsKZXh0ZXJuIGludCBub3RfKGlu
dCAqaSk7CmV4dGVybiBpbnQgaXNoZnRfKHVuc2lnbmVkIGludCAqaSwgaW50ICpqKTsKZXh0ZXJu
IHNob3J0IGlzaGZ0Ml8odW5zaWduZWQgc2hvcnQgKmksIGludCAqaik7CgpleHRlcm4gaW50IGll
eHN0XyhpbnQgKnZvbCwgY2hhciBmaWxlW10sIGludCAqc2YpOwoKZXh0ZXJuIGludCBpZmF0dHJf
KGludCAqbHUsIGNoYXIgKm5vbVtdLCBpbnQgKml0eXAsIGludCAqaXRhaWwsIGludCAqaXN0KTsK
CmV4dGVybiB2b2lkIGlsYnl0ZV8oaW50ICprLCBDSEFSIGxbXSwgaW50ICptKTsKZXh0ZXJuIHZv
aWQgaXNieXRlXyhpbnQgKmssIENIQVIgbFtdLCBpbnQgKm0pOwoKZXh0ZXJuIGludCBpbWFnZV9z
cGxpdChzdHJ1Y3QgaW1hZ2UgKm5mKTsKZXh0ZXJuIHZvaWQgZnJlZV9pbWFnZV9zcGxpdChzdHJ1
Y3QgaW1hZ2Vfc3BsaXQgKm5mX3NwbGl0KTsKCmV4dGVybiB2b2lkIHN3YWJfZGVzYyhzdHJ1Y3Qg
aW50X2Rlc2NyaXB0ZXVyICpkZXNjKTsKZXh0ZXJuIHZvaWQgc3dhYl9oZWFkZXJfc3BsaXQoc3Ry
dWN0IHNwbGl0X2hlYWRlciAqc3BfaGQpOwpleHRlcm4gdm9pZCBzd2FiXzJiKGNoYXIgKmJ5dGVz
KTsKZXh0ZXJuIHZvaWQgc3dhYl80YihjaGFyICpieXRlcyk7CmV4dGVybiB2b2lkIHN3YWJfOGIo
Y2hhciAqYnl0ZXMpOwpleHRlcm4gdm9pZCBzd2FiX2J1ZmZlcl8yYihjaGFyICpidWYsIGludCBu
Yl9ieXRlcyk7CmV4dGVybiB2b2lkIHN3YWJfYnVmZmVyXzRiKGNoYXIgKmJ1ZiwgaW50IG5iX2J5
dGVzKTsKZXh0ZXJuIHZvaWQgc3dhYl9idWZmZXJfOGIoY2hhciAqYnVmLCBpbnQgbmJfYnl0ZXMp
OwpleHRlcm4gdm9pZCBzd2FiX2RhdGFfYnVmZmVyKGludCwgY2hhciogYnVmLCBpbnQgbmJfYnl0
ZSk7CmV4dGVybiB2b2lkIHN3YWJfZGF0YV9uZihzdHJ1Y3QgaW1hZ2UqbmYsIGNoYXIqIGJ1Ziwg
aW50IG5iX2J5dGUpOwoKZXh0ZXJuIHZvaWQgaW1uYW1lXyhzdHJ1Y3QgaW1hZ2UgKipuZiwgY2hh
ciAqbmFtZSk7CgpleHRlcm4gdm9pZCBpbXBlcnJfKGludCAqaWVyKTsKCmV4dGVybiB2b2lkIGlu
dGJpdF8oaW50ICppbiwgQ0hBUiAqb3V0LCBpbnQgKm5icHQpOwoKZXh0ZXJuIHZvaWQgaW50Y2Fy
XyhpbnQgKmluLCBDSEFSICpvdXQsIGludCAqbmJwdCk7CgpleHRlcm4gaW50IGlzcGlwZShzdHJ1
Y3QgaW1hZ2UgKm5mKTsKZXh0ZXJuIGludCBpc3BpcGVfKHN0cnVjdCBpbWFnZSAqKm5mKTsKCmV4
dGVybiBpbnQgaXRzdG5mXyhzdHJ1Y3QgaW1hZ2UgKipuZiwgaW50ICppc2YsIGludCAqaSwgaW50
ICpsdSwgaW50ICppcHRyLCBpbnQgKmlmbGFnKTsKCmV4dGVybiB2b2lkIGxlY2ZsdChzdHJ1Y3Qg
aW1hZ2UgKm5mLCBpbnQgbmxpZywgY2hhciBhW10pOwpleHRlcm4gdm9pZCBsZWNmbHRfKHN0cnVj
dCBpbWFnZSAqKm5mLCBpbnQgKm5saWcsIGNoYXIgYVtdKTsKCmV4dGVybiB2b2lkIGxlY3Qoc3Ry
dWN0IGltYWdlICpuZiwgaW50IG5saWcsIENIQVIgYVtdKTsKZXh0ZXJuIHZvaWQgbGVjdF8oc3Ry
dWN0IGltYWdlICoqbmYsIGludCAqbmxpZywgQ0hBUiBhW10pOwpleHRlcm4gaW50IHJlYWRfcGFk
KGludCBmZCwgQ0hBUiBhW10sIGludCBubGlnLCBpbnQgYml0c19saWduZSk7CgpleHRlcm4gdm9p
ZCBsZWN0dXJfKHN0cnVjdCBpbWFnZSAqKm5mLCBpbnQgZHVtLCBpbnQgZm10W10sIGludCAqbmxp
ZywgY2hhciBhW10pOwoKZXh0ZXJuIHZvaWQgbHB0c2V0XyhzdHJ1Y3QgaW1hZ2UgKipuZiwgaW50
ICpuKTsKZXh0ZXJuIHZvaWQgbHB0c2V0KHN0cnVjdCBpbWFnZSAqbmYsIGludCBuKTsKZXh0ZXJu
IGludCBscHRnZXRfKHN0cnVjdCBpbWFnZSAqKm5mKTsKZXh0ZXJuIGludCBscHRnZXQoc3RydWN0
IGltYWdlICpuZik7CgpleHRlcm4gdm9pZCBsdGNhcmFfKGludCAqaWNhcik7CgpleHRlcm4gdm9p
ZCBpbml0YmQodm9pZCk7CmV4dGVybiB2b2lkIGx0Y2hhaV8oY2hhciBpdGFiW10sIGludCAqbm14
LCBpbnQgKm5jaHIsIGNoYXIgYnJrW10sIGludCAqbmJyaywgY2hhciAqaWJya2NoKTsKZXh0ZXJu
IHZvaWQgbGNoaW50KHZvaWQpOwpleHRlcm4gdm9pZCBsdGNoYWlfcmVzZXQodm9pZCk7CgpleHRl
cm4gaW50IG1lc2Vycl8oY2hhciAqbWVzcywgaW50ICppczEpOwoKZXh0ZXJuIHZvaWQgbXZiaXRz
XyhDSEFSICppbiwgQ0hBUiAqb3V0LCBpbnQgKmlfaW4sIGludCAqaV9vdXQsIGludCAqbmJpdHMp
OwpleHRlcm4gdm9pZCBtdmJfZmluKENIQVIgKmluLCBDSEFSICpvdXQsIGludCBmYl9pbiwgaW50
IGZiX291dCwgaW50IG5iX2JpdHMpOwpleHRlcm4gdm9pZCBtdmJfZGVidXQoQ0hBUiAqaW4sIENI
QVIgKm91dCwgaW50IGZiX2luLCBpbnQgZmJfb3V0LCBpbnQgbmJfYml0cyk7CgpleHRlcm4gdm9p
ZCBtdmJ5dGVfKENIQVIgKmluLCBDSEFSICpvdXQsIGludCAqaV9pbiwgaW50ICppX291dCwgaW50
ICpuYnl0ZXMpOwoKZXh0ZXJuIHZvaWQgbXZtb3RzXyhpbnQgKmluLCBpbnQgKm91dCwgaW50ICpu
bW90cyk7CgpleHRlcm4gaW50IG5pdm1hY18oaW50ICpuaXYpOwoKZXh0ZXJuIGludCBvcGVuX2lt
YWdlKHN0cnVjdCBpbWFnZSAqbmYsIGludCBtb2RlKTsKZXh0ZXJuIHZvaWQgZHVtYmQodm9pZCk7
CmV4dGVybiB2b2lkIGZyZWVfaW1hZ2VfbGlzdChzdHJ1Y3QgZWxlbWVudF9saXN0ICplbGVtZW50
X2xpc3QpOwoKZXh0ZXJuIGludCBvcHRmbXRfKGludCBsZm10W10sIGludCAqaW9wdCk7CmV4dGVy
biBpbnQgb3B0Zm10KGludCBsZm10W10sIGludCBpb3B0KTsKZXh0ZXJuIGludCBtb2RmbXQoaW50
IGxmbXRbXSwgaW50IGlvcHQpOwoKZXh0ZXJuIHZvaWQgb3V0c3RyXyhpbnQgKmNybGYsIGNoYXIg
KnRleHQpOwoKZXh0ZXJuIHZvaWQgb3V2bnNfKGludCAqbnZvbCwgY2hhciBuZmljaFtdLCBzdHJ1
Y3QgaW1hZ2UgKipuZiwgaW50ICppc2YsIGludCBpZm10W10sIGludCBuZm10W10sIGludCAqaWFn
biwgaW50ICppYWdzLCBpbnQgKmlwcm90KTsKZXh0ZXJuIHZvaWQgZnJlZV9pbWFnZShzdHJ1Y3Qg
aW1hZ2UgKm5mKTsKCmV4dGVybiB2b2lkIHBja2J0KENIQVIgKmluLCBDSEFSICpvdXQsIGludCBu
YiwgaW50IGJzaXplKTsKZXh0ZXJuIHZvaWQgcGNrYnRfKENIQVIgKmluLCBDSEFSICpvdXQsIGlu
dCAqbmIsIGludCAqYnNpemUpOwoKZXh0ZXJuIHZvaWQgcGl4X2NvcHkoY2hhciAqc3JjLCBjaGFy
ICpkc3QsIGludCBzeCwgaW50IHN5LCBpbnQgZHgsIGludCBkeSwgaW50IHNsZW4sIGludCBkbGVu
LCBpbnQgdywgaW50IGgsIGludCBwaXhlbF9zaXplKTsKZXh0ZXJuIHZvaWQgZmlsdGVyX3BpeF9j
b3B5KGNoYXIgKnNyYywgY2hhciAqZHN0LCBpbnQgc3gsIGludCBzeSwgaW50IGR4LCBpbnQgZHks
IGludCBzbGVuLCBpbnQgZGxlbiwgaW50IHcsIGludCBoLCBpbnQgcGl4ZWxfc2l6ZSwgaW50IG5v
X2NvcHkpOwpleHRlcm4gdm9pZCBmaWx0ZXJfYmNvcHkocmVnaXN0ZXIgY2hhciAqc3JjLCByZWdp
c3RlciBjaGFyICpkc3QsIGludCB3aWR0aCwgaW50IHBpeGVsX3NpemUsIGludCBub19jb3B5KTsK
ZXh0ZXJuIHZvaWQgc2FtcGxlX3BpeF9jb3B5KGNoYXIgKnNyYywgY2hhciAqZHN0LCBpbnQgc3gs
IGludCBzeSwgaW50IGR4LCBpbnQgZHksIGludCBzbGVuLCBpbnQgZGxlbiwgaW50IHcsIGludCBo
LCBpbnQgcGl4ZWxfc2l6ZSwgaW50IHN0ZXApOwpleHRlcm4gdm9pZCBwaXhfZ3JhcGhpY19jb3B5
KGNoYXIgKnNyYywgY2hhciAqZHN0LCBpbnQgc3gsIGludCBzeSwgaW50IGR4LCBpbnQgZHksIGlu
dCBzbGVuLCBpbnQgZGxlbiwgaW50IHcsIGludCBoLCBpbnQgc3JjX3BpeGVsX3NpemUsIGludCBk
c3RfcGl4ZWxfc2l6ZSwgY2hhciAqbHV0KTsKZXh0ZXJuIHZvaWQgcGl4X3NldChpbnQgdmFsdWUs
IGNoYXIgKmRzdCwgaW50IGR4LCBpbnQgZHksIGludCBkbGVuLCBpbnQgdywgaW50IGgsIGludCBw
aXhlbF9zaXplKTsKCmV4dGVybiBpbnQgb3Blbl9TdGRpbihpbnQgKngsIGludCAqeSwgaW50ICpi
KTsKZXh0ZXJuIHZvaWQgY2xvc2VfU3RkaW4odm9pZCk7CmV4dGVybiBpbnQgcmVhZF9TdGRpbl9s
aW5lKGNoYXIgKipidWZfbGluZSk7CgpleHRlcm4gaW50IHJlYWRfYWxsKGludCBmZCwgY2hhciAq
YnVmLCBpbnQgbGVuKTsKCmV4dGVybiBpbnQgR2V0Q2FydG9Db29yZEZyb21GaWxlTmFtZShjaGFy
ICpmaWxlX25hbWUsIGRvdWJsZSAqZHZhbDEsIGRvdWJsZSAqZHZhbDIsIGRvdWJsZSAqZHZhbDMp
OwoKZXh0ZXJuIHZvaWQgcmVhZF9yZWN0KHN0cnVjdCBpbWFnZSAqbmYsIHVuc2lnbmVkIGNoYXIg
KmxpbmVfYnVmLCBpbnQgbGluZWJ5dGVzLCByZWN0IHJfc3JjLCBpbnQgZHgsIGludCBkeSk7CmV4
dGVybiB2b2lkIHJlYWRfcmVjdF9zYW1wbGUoc3RydWN0IGltYWdlICpuZiwgdW5zaWduZWQgY2hh
ciAqbGluZV9idWYsIGludCBsaW5lYnl0ZXMsIHJlY3Qgcl9zcmMsIGludCBkeCwgaW50IGR5LGlu
dCBzYW1wbGUpOwpleHRlcm4gdm9pZCByZWFkX3Vuc3BsaXRfcmVjdChzdHJ1Y3QgaW1hZ2UgKm5m
LCB1bnNpZ25lZCBjaGFyICpsaW5lX2J1ZiwgaW50IGxpbmVieXRlcywgcmVjdCByX3NyYywgaW50
IGR4LCBpbnQgZHkpOwoKZXh0ZXJuIGludCByZWFkX3NhbXBsZV9zcGxpdF9yZWN0KHN0cnVjdCBp
bWFnZV9zcGxpdCAqLCB1bnNpZ25lZCBjaGFyICosIGludCAsIHJlY3QgLCBpbnQgLCBpbnQgLCBp
bnQgKTsKZXh0ZXJuIGludCByZWFkX3NwbGl0X3JlY3Qoc3RydWN0IGltYWdlX3NwbGl0ICosIHVu
c2lnbmVkIGNoYXIgKiwgaW50ICwgcmVjdCAsIGludCAsIGludCAsIGludCApOwoKZXh0ZXJuIHZv
aWQgc2hvd19yZWN0KHJlY3Qgcik7CmV4dGVybiB2b2lkIHNob3dfZnJlY3QoZnJlY3Qgcik7CmV4
dGVybiBmcmVjdCByZWN0X3JlY3RfdG9fZnJlY3QocmVjdCByKTsKZXh0ZXJuIHJlY3QgcmVjdF9h
YnMocmVjdCBzcmMsIHJlY3Qgcik7CmV4dGVybiByZWN0IHJlY3RfcmVsKHJlY3Qgc3JjLCByZWN0
IHIpOwpleHRlcm4gcmVjdCByZWN0X2NlbnRlcmVkKGludCB4YywgaW50IHljLCBpbnQgeF9jb3Ju
ZXIsIGludCB5X2Nvcm5lcik7CmV4dGVybiBpbnQgcmVjdF9jaGVja19zYW1wbGUocmVjdCByLCBp
bnQgc2FtcGxlKTsKZXh0ZXJuIHJlY3QgcmVjdF9yb3VuZChyZWN0IHIsIGludCBzeCwgaW50IHN5
KTsKZXh0ZXJuIHJlY3QgcmVjdF96b29tKHJlY3QgciwgaW50IHpvb21fZmFjdG9yKTsKZXh0ZXJu
IHJlY3QgcmVjdF9kaWwocmVjdCByLCBpbnQgZGlsKTsKZXh0ZXJuIHJlY3QgcmVjdF91bmRpbChy
ZWN0IHIsIGludCBkaWwpOwpleHRlcm4gcmVjdCByZWN0X3NhbXBsZShyZWN0IHIsIGludCBzYW1w
bGVfZmFjdG9yKTsKZXh0ZXJuIHJlY3QgcmVjdF9zY2FsZShyZWN0IHIsIGZsb2F0IHNjYWxlKTsK
ZXh0ZXJuIHJlY3QgcmVjdF9jb25zdHJhaW4ocmVjdCByZWYsIHJlY3Qgcik7CmV4dGVybiByZWN0
IHJlY3RfY29tbW9uKHJlY3QgYSwgcmVjdCBiKTsKZXh0ZXJuIGludCByZWN0X2VtcHR5KHJlY3Qg
YSk7CmV4dGVybiBpbnQgcmVjdF9lcShyZWN0IGEsIHJlY3QgYik7CmV4dGVybiByZWN0IHJlY3Rf
Y2hhbmdlX3JlZihyZWN0IHJlZiwgcmVjdCByKTsKZXh0ZXJuIHZvaWQgcmVjdF9jb21wbGVtZW50
KHJlY3QgYSwgcmVjdCBiLCByZWN0IGNbNF0pOwpleHRlcm4gaW50IGluX3JlY3QoaW50IHgsIGlu
dCB5LCByZWN0IHIpOwpleHRlcm4gZnJlY3QgYWxpZ25lX2ZyZWN0KGZyZWN0IGZyLCBmbG9hdCBk
aWwpOwpleHRlcm4gZnJlY3QgcmVjdF90b19mcmVjdChyZWN0IHIpOwpleHRlcm4gcmVjdCByZWN0
X3VuaW9uKHJlY3QgYSwgcmVjdCBiKTsKZXh0ZXJuIHJlY3QgZnJlY3RfdG9fZGlsX3JlY3QoZnJl
Y3QgZnIsIGZsb2F0IGRpbCk7CmV4dGVybiBmcmVjdCBmcmVjdF9jb21tb24oZnJlY3QgYSwgZnJl
Y3QgYik7CmV4dGVybiBpbnQgZnJlY3RfZW1wdHkoZnJlY3QgYSk7CmV4dGVybiBpbnQgZnJlY3Rf
ZXEocmVjdCBhLCBmcmVjdCBiKTsKZXh0ZXJuIHZvaWQgZnJlY3RfY29tcGxlbWVudChmcmVjdCBh
LCBmcmVjdCBiLCBmcmVjdCBjWzRdKTsKZXh0ZXJuIGZyZWN0IGZyZWN0X2NvbnN0cmFpbihmcmVj
dCByZWYsIGZyZWN0IHIpOwpleHRlcm4gZnJlY3QgZnJlY3Rfc2NhbGUoZnJlY3QgZnIsIGZsb2F0
IHNjYWxlKTsKZXh0ZXJuIGludCBwcmludF9yZWN0KHJlY3QgYSwgaW50IGMpOwoKZXh0ZXJuIHZv
aWQgcmVtb3ZlXyhjaGFyIG5maWNbXSk7CgpleHRlcm4gdm9pZCBybW5mXyhzdHJ1Y3QgaW1hZ2Ug
KipuZik7CgpleHRlcm4gdm9pZCBzZXRmbXRfKHN0cnVjdCBpbWFnZSAqKm5mLCBpbnQgKmR1bSwg
aW50IGxmbXRbXSk7CgpleHRlcm4gdm9pZCBzZXRwbnRfKHN0cnVjdCBpbWFnZSAqKm5mLCBpbnQg
ZHVtLCBpbnQgKm4pOwpleHRlcm4gaW50IGlnZXRwbl8oc3RydWN0IGltYWdlICoqbmYsIGludCAq
ZHVtKTsKCmV4dGVybiBpbnQgc3BsaXRfZWNyKHN0cnVjdCBpbWFnZSAqbmYsIGludCBubGlnLCBj
aGFyIGFbXSk7CgpleHRlcm4gdm9pZCBzcGxpdF9sZWN0KHN0cnVjdCBpbWFnZSAqbmYsIGludCBu
bGlnLCBDSEFSIGFbXSk7CmV4dGVybiB2b2lkIHNwbGl0X2xlY3RfKHN0cnVjdCBpbWFnZSAqKm5m
LCBpbnQgKm5saWcsIENIQVIgYVtdKTsKCmV4dGVybiBpbnQgc3ByaW50XyhjaGFyICpzLCBjaGFy
ICpmb3JtYXQsIGludCAqdmFsKTsKCmV4dGVybiBpbnQgc3RybGVuXyhjaGFyICpzKTsKCmV4dGVy
biB2b2lkIHVucGtidChDSEFSICppbiwgQ0hBUiAqb3V0LCBpbnQgbmIsIGludCBic2l6ZSk7CmV4
dGVybiB2b2lkIHVucGtidF8oQ0hBUiAqaW4sIENIQVIgKm91dCwgaW50ICpuYiwgaW50ICpic2l6
ZSk7CmV4dGVybiB2b2lkIHByYml0c18oY2hhciAqYSwgaW50ICpiaXQsIGludCAqbik7CgpleHRl
cm4gaW50IHRlc3RzZG1fKHZvaWQpOwpleHRlcm4gaW50IGFzc3ZjeF8odm9pZCk7CmV4dGVybiBp
bnQgc3RydmN4XyhpbnQgKm51bSk7CmV4dGVybiBpbnQgc3Rydm5kXyhpbnQgKm51bSwgaW50ICp2
aXMpOwpleHRlcm4gaW50IHN0cHZjeF8odm9pZCk7CmV4dGVybiBpbnQgY21kdmljXyhjaGFyIGNt
ZFtdKTsKZXh0ZXJuIGludCBjbWR2Y21fKGNoYXIgY21kW10sIGludCAqbGd3LCBjaGFyIHJlcFtd
LCBpbnQgKmxnciwgaW50ICpsZ3J2KTsKZXh0ZXJuIGludCBmZXJ2Y3hfKHZvaWQpOwpleHRlcm4g
aW50IHdydmljXyhjaGFyICphLCBpbnQgKm5wdCk7CmV4dGVybiBpbnQgcmR2aWNfKGNoYXIgKmEs
IGludCAqbnB0KTsKCmV4dGVybiB2b2lkIHdyZm1nZ18oaW50IGxmbXRbXSwgaW50ICppb3B0LCBp
bnQgKmx1KTsKCmV4dGVybiB2b2lkIHdyaXRlX3JlY3Qoc3RydWN0IGltYWdlICpuZiwgdW5zaWdu
ZWQgY2hhciAqbGluZV9idWYsIGludCBsaW5lYnl0ZXMsIHJlY3Qgcl9zcmMsIGludCBkeCwgaW50
IGR5KTsKZXh0ZXJuIHZvaWQgd3JpdGVfdW5zcGxpdF9yZWN0KHN0cnVjdCBpbWFnZSAqbmYsIHVu
c2lnbmVkIGNoYXIgKmxpbmVfYnVmLCBpbnQgbGluZWJ5dGVzLCByZWN0IHJfc3JjLCBpbnQgZHgs
IGludCBkeSk7CgpleHRlcm4gdm9pZCB3cml0ZV9zcGxpdF9yZWN0KHN0cnVjdCBpbWFnZV9zcGxp
dCAqbmZfc3BsaXQsIHVuc2lnbmVkIGNoYXIgKmxpbmVfYnVmLCBpbnQgbGluZWJ5dGVzLCByZWN0
IHJfc3JjLCBpbnQgZHgsIGludCBkeSwgaW50IGZpbHRlciwgaW50IG5vX2NvcHkpOwpleHRlcm4g
dm9pZCB3cml0ZV9zYW1wbGVfc3BsaXRfcmVjdChzdHJ1Y3QgaW1hZ2Vfc3BsaXQgKm5mX3NwbGl0
LCB1bnNpZ25lZCBjaGFyICpsaW5lX2J1ZiwgaW50IGxpbmVieXRlcywgcmVjdCByX3NyYywgaW50
IGR4LCBpbnQgZHksIGludCBmaWx0ZXIsIGludCBub19jb3B5LCBpbnQgc2FtcGxlX2ZhY3Rvcik7
CgpleHRlcm4gdm9pZCB3cmxvZ18oY2hhciBpdGFiW10sIGludCAqbGdyLCBpbnQgKmlicik7Cgpl
eHRlcm4gdm9pZCB3cnN0cmdfKGludCAqaWNybGYsIGNoYXIgKnRleHQsIGludCAqbHUpOwoKZXh0
ZXJuIHZvaWQgc2FtcGxlX3JlY3QoY2hhciAqc3JjLCBjaGFyICpkc3QsIGludCB4X3N0ZXAsIGlu
dCB5X3N0ZXAsIGludCB3aWR0aCwgaW50IGhlaWdodCwgaW50IHNyY19saW5lYnl0ZXMsIGludCBk
c3RfbGluZWJ5dGVzLCBpbnQgcGl4ZWxfc2l6ZSk7CmV4dGVybiB2b2lkIHNhbXBsZV9saW5lKGNo
YXIgKnNyYywgY2hhciAqZHN0LCBpbnQgc3RlcCwgaW50IHdpZHRoLCBpbnQgcGl4ZWxfc2l6ZSk7
CgoKCgoKCmV4dGVybiB2b2lkIGR1bWJkXyh2b2lkKTsKZXh0ZXJuIHZvaWQgdHh0MmRfKGNoYXIq
LCBpbnQqLCBmbG9hdCosIGZsb2F0Kik7CgoKZXh0ZXJuIHZvaWQgX2R1bWJkXyh2b2lkKTsKIyAy
MzEgIi85L29yc2F0dGkvU1BPVDNEX0NPTVBJTF9URVNUX0VOVi9TUE9UM0QvSU5DTFVERS9pbWFn
ZS5oIiAyCiMgMSAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNM
VURFL3ZzeXNsNy5oIiAxCiMgMjggIi85L29yc2F0dGkvU1BPVDNEX0NPTVBJTF9URVNUX0VOVi9T
UE9UM0QvSU5DTFVERS92c3lzbDcuaCIKIyAxICIvOS9vcnNhdHRpL1NQT1QzRF9DT01QSUxfVEVT
VF9FTlYvU1BPVDNEL0lOQ0xVREUvaW1hZ2UuaCIgMQojIDI5ICIvOS9vcnNhdHRpL1NQT1QzRF9D
T01QSUxfVEVTVF9FTlYvU1BPVDNEL0lOQ0xVREUvdnN5c2w3LmgiIDIKIyA0OCAiLzkvb3JzYXR0
aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL3ZzeXNsNy5oIgpleHRlcm4g
dm9pZCBlY3JwbF8oc3RydWN0IGltYWdlICoqbmYsIGludCAqaXksIGludCAqaXosIGludCAqbnBs
LCBpbnQgKm5saWcsIGNoYXIgYVtdKTsKCmV4dGVybiBpbnQgaWNtcGZnXyhzdHJ1Y3QgaW1hZ2Ug
KipuZjEsIHN0cnVjdCBpbWFnZSAqKm5mMik7CgpleHRlcm4gaW50IGljbXBmdF8oc3RydWN0IGlt
YWdlICoqbmYxLCBzdHJ1Y3QgaW1hZ2UgKipuZjIpOwoKZXh0ZXJuIHN0cnVjdCBpbWFnZSAqaW1h
Z2VfKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKm1vZGUsIGNvbnN0IGNoYXIgKnZlcmlm
LCBpbnQgbGZtdFtdKTsKZXh0ZXJuIHN0cnVjdCBpbWFnZSAqaW1hZ2UoY29uc3QgY2hhciAqbmFt
ZSwgY29uc3QgY2hhciAqbW9kZSwgY29uc3QgY2hhciAqdmVyaWYsIGludCBsZm10W10pOwpleHRl
cm4gaW50IGdldF9pbWFnZV9mbGFnKCk7CgpleHRlcm4gc3RydWN0IGltYWdlICppbWFnZV9wcm9j
KGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKm1vZGUsIGNvbnN0IGNoYXIgKnZlcmlmLCBp
bnQgbGZtdFtdKTsKCmV4dGVybiBpbnQgaXF1ZWxfKHVuc2lnbmVkIGNoYXIgKmxpc3RlLCB1bnNp
Z25lZCBjaGFyICpicmssIGludCAqbmJyaywgdW5zaWduZWQgY2hhciAqcHJvbXB0KTsKCmV4dGVy
biB2b2lkIGxlY3RwbF8oc3RydWN0IGltYWdlICoqbmYsIGludCAqaXksIGludCAqaXosIGludCAq
bnBsLCBpbnQgKm5saWcsIGNoYXIgYVtdKTsKCmV4dGVybiBzdHJ1Y3QgaW1hZ2UgKnJpbWFnZV8o
Y29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqbW9kZSwgY29uc3QgY2hhciAqdmVyaWYsIGlu
dCBsZm10W10pOwpleHRlcm4gc3RydWN0IGltYWdlICpyaW1hZ2UoY29uc3QgY2hhciAqbmFtZSwg
Y29uc3QgY2hhciAqbW9kZSwgY29uc3QgY2hhciAqdmVyaWYsIGludCBsZm10W10pOwpleHRlcm4g
Y2hhciogcmVhZF9pbWFnZV9saXN0X2ZpbGUoY2hhciAqYUZpbGVOYW1lUHQsY2hhciAqYUtleVZl
cnNpb25QdCxpbnQgKmFOYkVsZW1lbnRQdCk7CgoKZXh0ZXJuIGludCBpc3RSZWFkTFVUKGNoYXIg
KnRhYmxlX25hbWUsdW5zaWduZWQgY2hhciAqKnB0X2NvbG9yX3RhYmxlKTsKCgoKCmV4dGVybiB2
b2lkIGVjcm5wbF8oc3RydWN0IGltYWdlKiosIGludCosIGludFtdLCBpbnQqLCBpbnQqLCBpbnQq
LCBpbnQqLCBjaGFyW10pOwpleHRlcm4gaW50IGljcGZtZ18oaW50W10sIGludFtdKTsKZXh0ZXJu
IGludCBpY29tcGZfKGludFtdLCBpbnRbXSk7CmV4dGVybiB2b2lkIGltb3V2Z18oaW50KiwgY29u
c3QgY2hhciosIHN0cnVjdCBpbWFnZSAqKiwgaW50KiwgaW50W10sIGludCopOwpleHRlcm4gdm9p
ZCBsZWNucGxfKHN0cnVjdCBpbWFnZSoqLCBpbnQqLCBpbnRbXSwgaW50KiwgaW50KiwgaW50Kiwg
aW50KiwgY2hhcltdKTsKIyAyMzIgIi85L29yc2F0dGkvU1BPVDNEX0NPTVBJTF9URVNUX0VOVi9T
UE9UM0QvSU5DTFVERS9pbWFnZS5oIiAyCiMgMSAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RF
U1RfRU5WL1NQT1QzRC9JTkNMVURFL2ltYWdsYjcuaCIgMQojIDMwICIvOS9vcnNhdHRpL1NQT1Qz
RF9DT01QSUxfVEVTVF9FTlYvU1BPVDNEL0lOQ0xVREUvaW1hZ2xiNy5oIgojIDEgIi85L29yc2F0
dGkvU1BPVDNEX0NPTVBJTF9URVNUX0VOVi9TUE9UM0QvSU5DTFVERS9pbWFnZS5oIiAxCiMgMzEg
Ii85L29yc2F0dGkvU1BPVDNEX0NPTVBJTF9URVNUX0VOVi9TUE9UM0QvSU5DTFVERS9pbWFnbGI3
LmgiIDIKIyA1MCAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNM
VURFL2ltYWdsYjcuaCIKZXh0ZXJuIHZvaWQgYmNmbW95XyhmbG9hdCBpbWFnW10sIGZsb2F0IGlz
b3J0W10sIGZsb2F0IHNjb2xbXSwgaW50ICpubGl0LCBpbnQgKm5saWduLCBpbnQgKm1jb2xvLCBp
bnQgKmlkaW0sIGludCAqa2RpbSwgZmxvYXQgKmNhcnJlKTsKZXh0ZXJuIHZvaWQgemVyZmlsXyhm
bG9hdCBzb3J0aVtdLCBpbnQgKm1jb2xvLCBpbnQgKm5saWduLCBpbnQgKmtkaW0yKTsKCmV4dGVy
biB2b2lkIGNhbHBhcl8oZmxvYXQgKmJ1ZiwgaW50ICpkaW0sIHN0cnVjdCBpbWFnZSAqKm5mLCBm
bG9hdCAqbW95ZW5uZSwgZmxvYXQgKm1heCwgZmxvYXQgKm1pbik7CgpleHRlcm4gdm9pZCBjcGlt
YWcoY2hhciAqYnVmLCBpbnQgZGltLCBzdHJ1Y3QgaW1hZ2UgKm5maSwgc3RydWN0IGltYWdlICpu
Zm8pOwpleHRlcm4gdm9pZCBjcGltYWdfKGludCAqYnVmLCBpbnQgKmRpbSwgc3RydWN0IGltYWdl
ICoqbmZpLCBzdHJ1Y3QgaW1hZ2UgKipuZm8pOwoKZXh0ZXJuIHZvaWQgZXh0KHN0cnVjdCBpbWFn
ZSAqbmZpLCBzdHJ1Y3QgaW1hZ2UgKm5mbywgaW50IGl4LCBpbnQgaXkpOwoKZXh0ZXJuIHZvaWQg
bWVsXyhzdHJ1Y3QgaW1hZ2UgKipuZmksIHN0cnVjdCBpbWFnZSAqKm5mbywgaW50ICppeGksIGlu
dCAqaXlpLCBpbnQgKml4bywgaW50ICppeW8sIGludCAqaWR4LCBpbnQgKmlkeSwgaW50ICpmaWx0
ZXIsIGludCAqbm9fY29weSwgaW50ICpzYW1wbGUsIGludCAqc2FtcGxlX2ZhY3Rvcik7CmV4dGVy
biB2b2lkIG1lbChzdHJ1Y3QgaW1hZ2UgKm5maSwgc3RydWN0IGltYWdlICpuZm8sIGludCBpeGks
IGludCBpeWksIGludCBpeG8sIGludCBpeW8sIGludCBpZHgsIGludCBpZHksIGludCBmaWx0ZXIs
IGludCBub19jb3B5LCBpbnQgc2FtcGxlLCBpbnQgc2FtcGxlX2ZhY3Rvcik7CgpleHRlcm4gdm9p
ZCBub3JtaW1fKGZsb2F0ICpidWYsIGludCAqZGltLCBzdHJ1Y3QgaW1hZ2UgKipuZmksIHN0cnVj
dCBpbWFnZSAqKm5mbywgc3RydWN0IGltYWdlICoqbmZ0KTsKZXh0ZXJuIHZvaWQgY3Z4X3NjYWxl
KGludCBuLCBmbG9hdCAqYnVmLCBmbG9hdCBmYWN0b3IsIGZsb2F0IGJpYXMpOwoKZXh0ZXJuIHZv
aWQgc3BsaXRfZXh0KHN0cnVjdCBpbWFnZSAqbmZpLCBzdHJ1Y3QgaW1hZ2UgKm5mbywgaW50IGl4
LCBpbnQgaXkpOwoKZXh0ZXJuIHZvaWQgc3BsaXRfbWVsKHN0cnVjdCBpbWFnZSAqbmZpLCBzdHJ1
Y3QgaW1hZ2UgKm5mbywgaW50IGl4aSwgaW50IGl5aSwgaW50IGl4bywgaW50IGl5bywgaW50IGlk
eCwgaW50IGlkeSwgaW50IGZpbHRlciwgaW50IG5vX2NvcHksIGludCBzYW1wbGUsIGludCBzYW1w
bGVfZmFjdG9yKTsKCgoKCmV4dGVybiB2b2lkIG1lbGFuXyhjaGFyKiwgaW50Kiwgc3RydWN0IGlt
YWdlKiosIHN0cnVjdCBpbWFnZSoqLCBpbnQqLCBpbnQqLCBpbnQqLCBpbnQqLCBpbnQqLCBpbnQq
KTsKZXh0ZXJuIHZvaWQgZXh0aW1fKGNoYXIqLCBpbnQqLCBzdHJ1Y3QgaW1hZ2UqKiwgc3RydWN0
IGltYWdlKiosIGludCosIGludCopOwpleHRlcm4gdm9pZCBzZXR1cF8oaW50KiwgaW50W10sIGlu
dCosIGludCosIGludCopOwojIDIzMyAiLzkvb3JzYXR0aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5W
L1NQT1QzRC9JTkNMVURFL2ltYWdlLmgiIDIKIyA0NSAibWFpbi5jIiAyCiMgMSAiLzkvb3JzYXR0
aS9TUE9UM0RfQ09NUElMX1RFU1RfRU5WL1NQT1QzRC9JTkNMVURFL2Nvb3JkLmgiIDEKIyA0NiAi
bWFpbi5jIiAyCgojIDEgImdfdG9vbHMuaCIgMQojIDQwICJnX3Rvb2xzLmgiCmludCBjaGFpbl90
b19zdXJmYWNlKCBzdHJ1Y3QgZ3JhcGhpcXVlX2ltYWdlICosCiAgICAgICAgICAgICAgICAgICAg
ICBzdHJ1Y3QgZ3JhcGhpcXVlX2ltYWdlICosIGludCApOwppbnQgbGlzdF9wdF9vYmpldChzdHJ1
Y3Qgb2JqZXQgKiwgaW50LCBmY29vcmQgKiosIGludCAqICk7CnZvaWQgc2V0X3pfdG9fb2JqZXQo
IGZsb2F0ICosIGZsb2F0LCBzdHJ1Y3Qgb2JqZXQgKiApOwp2b2lkIHNldF96M2RfdG9fb2JqZXQo
IGRvdWJsZSAqLCBmbG9hdCwgc3RydWN0IG9iamV0ICogKTsKaW50IGdfbWFrZV9wb2x5Z29ucygg
c3RydWN0IGdyYXBoaXF1ZV9pbWFnZSAqICk7CnZvaWQgY3JlYXRlX2xpc3RfcG9pbnQoIHN0cnVj
dCBvYmpldCAqLCBmY29vcmQgKiosIGludCAqICk7CiMgNDggIm1haW4uYyIgMgojIDEgImluY2wu
aCIgMQojIDM2ICJpbmNsLmgiCnN0cnVjdCBpbmNsdXNpb24gewogIGludCBuYm9iamV0OwogIHN0
cnVjdCBvYmpldCAqZnJvbnRpZXI7CiAgc3RydWN0IG9iamV0ICoqaW5zaWRlOwogIHN0cnVjdCBp
bmNsdXNpb24gKm5leHQ7Cn07CnR5cGVkZWYgc3RydWN0IGluY2x1c2lvbiBpbmNsdXNpb25fdDsK
CnN0cnVjdCBhdXRvaW5jbHVzaW9uIHsKICBpbnQgbmJvYmpldDsKICBzdHJ1Y3Qgb2JqZXQgKmZy
b250aWVyOwogIHN0cnVjdCBvYmpldCAqKmluc2lkZTsKICBpbnQgKmxldmVsOwogIHN0cnVjdCBh
dXRvaW5jbHVzaW9uICpuZXh0Owp9Owp0eXBlZGVmIHN0cnVjdCBhdXRvaW5jbHVzaW9uIGF1dG9p
bmNsdXNpb25fdDsKCgoKCmludCBjb21wdXRlX2luY2x1c2lvbiggaW5jbHVzaW9uX3QgKiosIHN0
cnVjdCBncmFwaGlxdWVfaW1hZ2UgKiApOwppbnQgY29tcHV0ZV9hdXRvaW5jbHVzaW9uKCBhdXRv
aW5jbHVzaW9uX3QgKiosIHN0cnVjdCBncmFwaGlxdWVfaW1hZ2UgKiApOwppbnQgb2JqZXRfaW5j
bHVzX2FsbCggc3RydWN0IG9iamV0ICosIHN0cnVjdCBvYmpldCAqICk7CiMgNDkgIm1haW4uYyIg
MgojIDEgInNldHouaCIgMQojIDQ2ICJzZXR6LmgiCnZvaWQgYWZmZWN0X1ooIGNoYXIgKiwgaW5j
bHVzaW9uX3QgKiwgc3RydWN0IGdyYXBoaXF1ZV9pbWFnZSAqLAogICAgICAgICAgICAgICBpbnQs
IGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsCiAgICAgICAg
ICAgICAgIGRvdWJsZSwgZG91YmxlLCBkb3VibGUsIGRvdWJsZSApOwojIDUwICJtYWluLmMiIDIK
IyAxICJvdXQuaCIgMQojIDQzICJvdXQuaCIKdm9pZCBjb252ZXJ0X2dyYXBoKCBzdHJ1Y3QgZ3Jh
cGhpcXVlX2ltYWdlICogKTsKdm9pZCBleGNsdWRlX25veiggc3RydWN0IGdyYXBoaXF1ZV9pbWFn
ZSAqLCBzdHJ1Y3QgZ3JhcGhpcXVlX2ltYWdlICogKTsKdm9pZCBleGNsdWRlX2luc2lkZSggc3Ry
dWN0IGdyYXBoaXF1ZV9pbWFnZSAqLCBzdHJ1Y3QgZ3JhcGhpcXVlX2ltYWdlICogKTsKIyA1MSAi
bWFpbi5jIiAyCiMgNjkgIm1haW4uYyIKaW50IHhhcmdjOwpjaGFyICoqeGFyZ3Y7CgoKCgpzdGF0
aWMgdm9pZCB1c2FnZSh2b2lkKTsKIyA5MyAibWFpbi5jIgppbnQgbWFpbiggaW50IGFyZ2MsIGNo
YXIgKmFyZ3ZbXSApCnsKICBjaGFyICptbnQsICppbiwgKm91dDsKCiAgaW5jbHVzaW9uX3QgKmxp
c3RfaW5jbHVkZWQ7CgogIHN0cnVjdCBncmFwaGlxdWVfaW1hZ2UgZ19pbjsKICBzdHJ1Y3QgZ3Jh
cGhpcXVlX2ltYWdlIGdfdG1wOwogIHN0cnVjdCBncmFwaGlxdWVfaW1hZ2UgZ19pbnNpZGU7CiAg
c3RydWN0IGdyYXBoaXF1ZV9pbWFnZSBnX25vejsKCgogIGRvdWJsZSBpeCA9IDAsIGl5ID0gMCwg
aXogPSAtMTAwMDAuMCwgZCA9IDEsIHV6ID0gMC4xLCB1bmRlZiA9IDAsIHNlbnMgPSAxOwogIGRv
dWJsZSBzZCA9IDMuMCwgcGVyY2VudCA9IDAuNSwgcmFuayA9IDAuNTsKICBpbnQgc2VsZWN0X21v
ZGUgPSAyLCBncmFwaF9tb2RlID0gMSwgZXhjbHVkZV9jb3VydCA9IDA7CgogIGNoYXIgYnVmWzEw
MjRdOwogIGludCBuOwoKCiAgeGFyZ2MgPSBhcmdjOwogIHhhcmd2ID0gYXJndjsKCgoKCgp7CiMg
MSAidmVyc2lvbi5oIiAxCiMgMTIyICJtYWluLmMiIDIKIGV4dGVybiB2b2lkIFByaW50VmVyc2lv
bihpbnQsIGludCwgaW50LCBjb25zdCBjaGFyKik7CiAgaWYgKGdldGFyZygiLXZlcnNpb24iLCAi
IiwgMCwgIiIsIDAsICIiLCAwKSkgewogICAgUHJpbnRWZXJzaW9uKDUsIDMsIDMsICJzcG90M2Qi
KTsKICAgIHJldHVybigxKTsKICB9Cn0KCgogIGlmIChnZXRhcmcoIi0/IiwgIiIsIDAsICIiLCAw
LCAiIiwgMCkpIHsKICAgIHVzYWdlKCk7CiAgICByZXR1cm4oMCk7CiAgfQoKCiAgZ2V0YXJnKCIt
aXgiLCAiIiwgMCwgIiVsZiIsICZpeCwgIiIsIDApOwogIGdldGFyZygiLWl5IiwgIiIsIDAsICIl
bGYiLCAmaXksICIiLCAwKTsKICBnZXRhcmcoIi1peiIsICIiLCAwLCAiJWxmIiwgJml6LCAiIiwg
MCk7CiAgZ2V0YXJnKCItdXoiLCAiIiwgMCwgIiVsZiIsICZ1eiwgIiIsIDApOwogIGdldGFyZygi
LWQiLCAiIiwgMCwgIiVsZiIsICZkLCAiIiwgMCk7CiAgZ2V0YXJnKCItdW5kZWYiLCAiIiwgMCwg
IiVsZiIsICZ1bmRlZiwgIiIsIDApOwogIGlmKCBnZXRhcmcoIi1uIiwgIiIsIDAsICIiLCAwLCAi
IiwgMCkgKSBzZW5zID0gLTE7CiAgaWYoIGdldGFyZygiLWNvdXJ0IiwgIiIsIDAsICIiLCAwLCAi
IiwgMCkgKQogICAgZXhjbHVkZV9jb3VydCA9IDE7CgoKCiAgaWYoIGdldGFyZygiLW91dGxpZXJz
IiwgIiIsIDAsICIiLCAwLCAiIiwgMCkgKQogICAgc2VsZWN0X21vZGUgPSAxOwogIGlmKCBnZXRh
cmcoIi1tb3kiLCAiIiwgMCwgIiIsIDAsICIiLCAwKSApCiAgICBzZWxlY3RfbW9kZSA9IDI7CiAg
aWYoIGdldGFyZygiLXJhbmsiLCAiIiwgMCwgIiIsIDAsICIiLCAwKSApCiAgICBzZWxlY3RfbW9k
ZSA9IDM7CiAgZ2V0YXJnKCItbmJyYW5rIiwgIiIsIDAsICIlbGYiLCAmcmFuaywgIiIsIDAgKTsK
ICBpZiggZ2V0YXJnKCItcGxhbmUiLCAiIiwgMCwgIiIsIDAsICIiLCAwKSApCiAgICBzZWxlY3Rf
bW9kZSA9IDQ7CgogIGlmKCBnZXRhcmcoIi1wb2x5IiwgIiIsIDAsICIiLCAwLCAiIiwgMCkgKQog
ICAgZ3JhcGhfbW9kZSA9IDA7CgoKCiAgZ2V0YXJnKCItc2QiLCAiIiwgMCwgIiVsZiIsICZzZCwg
IiIsIDApOwogIGdldGFyZygiLXBlcmNlbnQiLCAiIiwgMCwgIiVsZiIsICZwZXJjZW50LCAiIiwg
MCk7CgoKICBnZXRfaW1hZ2VfbmFtZXMoICZtbnQsIDAsICZpbiwgMCwgJm91dCwgMSwgMCk7Cgog
IGlmKCAoc3RyY21wKChtbnQpLCAiPCIpID09IDApICkgewogICAgZnByaW50ZiggKCZfX2lvYlsy
XSksICJUaGUgaW1hZ2UgZmlsZSBjYW4ndCBiZSBpbiBpbnB1dCBmaWxlXG4iICk7CiAgICBleGl0
KDEpOwogIH0KCgogIGlmICh0ZXN0b3B0KCkgPT0gMCkgcmV0dXJuKDEpOwoKCgoKICBpZiggIWxl
Y3R1cmVfZ3JhcGhpcXVlKCBpbiwgJmdfaW4gKSApIHsKICAgIGZwcmludGYoICgmX19pb2JbMl0p
LCAiRXJyb3Igd2hlbiByZWFkaW5nIGZpbGUgJXNcbiIsIGluICk7CiAgICBleGl0KDEpOwogIH0K
CgoKCgogIHByaW50ZiggIkNvbXB1dGUgcG9seWdvbnMgZnJvbSBjaGFpbnNcbiIgKTsKICAoKCZn
X3RtcCktPmVudGV0ZT0wLCAoJmdfdG1wKS0+bmJfcGxhbj0wKTsKICBuID0gY2hhaW5fdG9fc3Vy
ZmFjZSggJmdfaW4sICZnX3RtcCwgMCApOwoKCgoKICBwcmludGYoICJDb21wdXRlIGluY2x1c2lv
biBvZiBjaGFpbnNcbiIgKTsKICBjb21wdXRlX2luY2x1c2lvbiggJmxpc3RfaW5jbHVkZWQsICZn
X3RtcCApOwojIDIwNyAibWFpbi5jIgogIHByaW50ZiggIkNvbXB1dGUgaGVpZ2h0IGZvciBlYWNo
IHBvbHlnb25zXG4iICk7CiAgYWZmZWN0X1ooIG1udCwgbGlzdF9pbmNsdWRlZCwgJmdfdG1wLAog
ICAgICAgICAgICBzZWxlY3RfbW9kZSwgcmFuaywgc2QsIHBlcmNlbnQsCiAgICAgICAgICAgIGl4
LCBpeSwgaXosCiAgICAgICAgICAgIGQsIHV6LCB1bmRlZiwgc2VucyApOwoKCgoKICBpZiggZ3Jh
cGhfbW9kZSA9PSAxICkgewogICAgKCgmZ19ub3opLT5lbnRldGU9MCwgKCZnX25veiktPm5iX3Bs
YW49MCk7CiAgICBwcmludGYoICJDcmVhdGUgZ3JhcGhpYyBmaWxlIHdpdGggdW5zZXQgaGVpZ2h0
IHZhbHVlIHBvbHlnb25zXG4iICk7CiAgICBleGNsdWRlX25veiggJmdfdG1wLCAmZ19ub3ogKTsK
ICAgIGlmKCBleGNsdWRlX2NvdXJ0ICkgewogICAgICAoKCZnX2luc2lkZSktPmVudGV0ZT0wLCAo
JmdfaW5zaWRlKS0+bmJfcGxhbj0wKTsKICAgICAgcHJpbnRmKCAiQ3JlYXRlIGdyYXBoaWMgZmls
ZSB3aXRoIGluc2lkZSBjb3VydFxuIiApOwogICAgICBleGNsdWRlX2luc2lkZSggJmdfdG1wLCAm
Z19pbnNpZGUgKTsKICAgIH0KICAgIHByaW50ZiggIkNvbXB1dGUgY29tcGxleCBwb2x5Z29uc1xu
IiApOwogICAgY29udmVydF9ncmFwaCggJmdfdG1wICk7CiAgfQoKCgoKICBwcmludGYoICJTYXZl
IHRoZSBncmFwaGljIGZpbGVzXG4iICk7CiAgZWNyaXR1cmVfZ3JhcGhpcXVlKCBvdXQsICZnX3Rt
cCApOwogIGlmKCBleGNsdWRlX2NvdXJ0ICkgewogICAgc3ByaW50ZiggYnVmLCAiY291cnRfJXMi
LCBvdXQgKTsKICAgIGVjcml0dXJlX2dyYXBoaXF1ZSggYnVmLCAmZ19pbnNpZGUgKTsKICB9CiAg
c3ByaW50ZiggYnVmLCAibm96XyVzIiwgb3V0ICk7CiAgZWNyaXR1cmVfZ3JhcGhpcXVlKCBidWYs
ICZnX25veiApOwojIDI0OCAibWFpbi5jIgogIGV4aXQoMCk7Cn0KCgoKCnN0YXRpYyB2b2lkCnVz
YWdlKHZvaWQpCnsKICBmcHJpbnRmKCAoJl9faW9iWzJdKSwKICAgICAgICAgICAiR+lu6HJlIHVu
IGZpY2hpZXIgZ3JhcGhpcXVlIHRlbCBxdWU6XG4iCiAgICAgICAgICAgIlx0LSBjaGFxdWUgcG9s
eWdvbmUgZXN0IGTpY3JpdCBwYXIgdW5lIHNldWxlIGNoYWluZSxcbiIKICAgICAgICAgICAiXHQt
IGwnYWx0aXR1ZGUgZGUgY2hhcXVlIHBvbHlnb25lIGVzdCBleHRyYWl0IGRlIGwnaW1hZ2UgZm91
cm5pZVxuIgogICAgICAgICAgICJcdCBlbiBlbnRy6WVcbiIKICAgICAgICAgICAiXHQtIHVuIGZp
Y2hpZXIgbm9tbellIG5vel9zb3J0aWUuZyBjb250aWVudCB1bmUgY29waWUgZGVzIFxuIgogICAg
ICAgICAgICJcdCBwb2x5Z29uZXMgZG9udCBsJ2FsdGl0dWRlIG4nYSBwYXMg6XTpIGFmZmVjdOll
XG4iCiAgICAgICAgICAgIlxuU3ludGF4ZTogZ19zZXRoIFtvcHRpb25zXSBpbWFnZSBlbnRyZWUu
ZyBzb3J0aWUuZ1xuXG4iCiAgICAgICAgICAgIk9wdGlvbnM6XG4iCiAgICAgICAgICAgIlx0LWl4
IFtmbHRdICAgOiBvcmlnaW5lIFggZGUgbCdpbWFnZSAoZOlmYXV0IDApXG4iCiAgICAgICAgICAg
Ilx0LWl5IFtmbHRdICAgOiBvcmlnaW5lIFkgZGUgbCdpbWFnZSAoZOlmYXV0IDApXG4iCiAgICAg
ICAgICAgIlx0LWl6IFtmbHRdICAgOiBvcmlnaW5lIFogZGUgbCdpbWFnZSAoZOlmYXV0IC0xMDAw
MClcbiIKICAgICAgICAgICAiXHQtdXogW2ZsdF0gICA6IOljaGVsbGUgZGVzIHZhbGV1cnMgc3Vy
IGwnYWx0aXR1ZGUgKGTpZmF1dCAwLjEpXG4iCiAgICAgICAgICAgIlx0LWQgW2ZsdF0gICAgOiBy
6XNvbHV0aW9uIGRlIGwnaW1hZ2UgKGTpZmF1dCAxKVxuIgogICAgICAgICAgICJcdC11bmRlZiBb
Zmx0XTogdmFsZXVyIGluZOlmaW5pZSBkYW5zIGwnaW1hZ2UgKGTpZmF1dCAwKVxuIgogICAgICAg
ICAgICJcdC1uICAgICAgICAgIDogb3JpZW50YXRpb24gZHUgZ3JhcGhpcXVlIGludmVyc+llIChk
6WZhdXQgbm9uKVxuXG4iCgogICAgICAgICAgICJcdC1zZCBbZmx0XSA6IOljYXJ0LXR5cGUgbWF4
IGF1dG9yaXPpIHN1ciBsZXMgZG9ubullcyAoZOlmYXV0IDMpXG4iCiAgICAgICAgICAgIlx0LXBl
cmNlbnQgIDogcG91cmNlbnRhZ2UgbWF4IGRlIHZhbGV1ciBpbnZhbGlkZSAoZOlmYXV0IDAuNSlc
blxuIgoKICAgICAgICAgICAiXHQtb3V0bGllcnMgOiBzdGF0aXN0aXF1ZSByb2J1c3RlIChk6WZh
dXQgbm9uKVxuXG4iCgogICAgICAgICAgICJcdC1tb3kgOiBtb3llbm5lIChk6WZhdXQgb3VpKVxu
XG4iCgogICAgICAgICAgICJcdC1yYW5rIDogY2hvaXNpdCBsYSB2YWxldXIgZGUgcmFuZyBuYnJh
bmcgKGTpZmF1dCBub24pXG4iCiAgICAgICAgICAgIlx0LW5icmFuayBbZmx0XTogaW5kaWNlIGR1
IHJhbmcgKGTpZmF1dCAwLjUpXG5cbiIKCiAgICAgICAgICAgIlx0LXBsYW5lIDogYXBwcm94aW1l
IGwnYWx0aXR1ZGUgcGFyIHVuIHBsYW4gKGTpZmF1dCBub24pXG5cbiIKCiAgICAgICAgICAgIlx0
LXBvbHkgOiBn6W7ocmUgdW5pcXVlbWVudCBkZXMgY2hhaW5lcyAoZOlmYXV0IG5vbilcbiIKICAg
ICAgICAgICAiXHQtY291cnQ6IGfpbuhyZSB1biBncmFwaCBjb3VydF9zb3J0aWUuZyBjb250ZW5h
bnQgbGVzIGNvdXJzXG4iCiAgICAgICAgICAgIlx0ICAgICAgIGludOlyaWV1cmVzIChk6WZhdXQg
bm9uKVxuXG4iCgogICAgICAgICAgICk7Cgp9Cg==



More information about the Gcc-bugs mailing list