other/5814: error in subst_stack_regs_pat

trevorw@oes.edu trevorw@oes.edu
Sat Mar 2 18:46:00 GMT 2002


>Number:         5814
>Category:       other
>Synopsis:       error in subst_stack_regs_pat
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Mar 02 18:46:02 PST 2002
>Closed-Date:
>Last-Modified:
>Originator:     Trevor Wilson
>Release:        gcc version 3.0
>Organization:
>Environment:
i686-pc-linux-gnu
>Description:
I don't know exactly what triggers it, but I get this:

Internal compiler error in subst_stack_regs_pat, at reg-stack.c:1568
>How-To-Repeat:
gcc -o noise noise.i ft.i -O6 -std=c99 -pedantic -W -Wall
>Fix:

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

IyAxICJub2lzZS5jIgojIDEgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAxIDMKIyAyNyAiL3Vzci9p
bmNsdWRlL3N0ZGlvLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMSAzCiMgMjUw
ICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMwojIDEgIi91c3IvaW5jbHVkZS9zeXMvY2RlZnMu
aCIgMSAzCiMgMjUxICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMiAzCiMgMjc4ICIvdXNyL2lu
Y2x1ZGUvZmVhdHVyZXMuaCIgMwojIDEgIi91c3IvaW5jbHVkZS9nbnUvc3R1YnMuaCIgMSAzCiMg
Mjc5ICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMiAzCiMgMjggIi91c3IvaW5jbHVkZS9zdGRp
by5oIiAyIDMKCgoKCgojIDEgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1n
bnUvMy4wL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwojIDE5OSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxp
Yi9pNjg2LXBjLWxpbnV4LWdudS8zLjAvaW5jbHVkZS9zdGRkZWYuaCIgMwp0eXBlZGVmIHVuc2ln
bmVkIGludCBzaXplX3Q7CiMgMzQgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMKCgoKCiMgMSAi
L3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjAvaW5jbHVkZS9zdGRh
cmcuaCIgMSAzCiMgNDMgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUv
My4wL2luY2x1ZGUvc3RkYXJnLmgiIDMKdHlwZWRlZiBfX2J1aWx0aW5fdmFfbGlzdCBfX2dudWNf
dmFfbGlzdDsKIyAzOSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoKIyAxICIvdXNyL2luY2x1
ZGUvYml0cy90eXBlcy5oIiAxIDMKIyAyNiAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMwoj
IDEgIi91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAxIDMKIyAyNyAiL3Vzci9pbmNsdWRlL2JpdHMv
dHlwZXMuaCIgMiAzCgoKIyAxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgt
Z251LzMuMC9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAzMCAiL3Vzci9pbmNsdWRlL2JpdHMvdHlw
ZXMuaCIgMiAzCgoKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdV9jaGFyOwp0eXBlZGVmIHVuc2ln
bmVkIHNob3J0IF9fdV9zaG9ydDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191X2ludDsKdHlwZWRl
ZiB1bnNpZ25lZCBsb25nIF9fdV9sb25nOwoKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVk
IGxvbmcgbG9uZyBpbnQgX191X3F1YWRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIGxvbmcgbG9u
ZyBpbnQgX19xdWFkX3Q7CiMgNDkgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDMKdHlwZWRl
ZiBzaWduZWQgY2hhciBfX2ludDhfdDsKdHlwZWRlZiB1bnNpZ25lZCBjaGFyIF9fdWludDhfdDsK
dHlwZWRlZiBzaWduZWQgc2hvcnQgaW50IF9faW50MTZfdDsKdHlwZWRlZiB1bnNpZ25lZCBzaG9y
dCBpbnQgX191aW50MTZfdDsKdHlwZWRlZiBzaWduZWQgaW50IF9faW50MzJfdDsKdHlwZWRlZiB1
bnNpZ25lZCBpbnQgX191aW50MzJfdDsKCl9fZXh0ZW5zaW9uX18gdHlwZWRlZiBzaWduZWQgbG9u
ZyBsb25nIGludCBfX2ludDY0X3Q7Cl9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25n
IGxvbmcgaW50IF9fdWludDY0X3Q7Cgp0eXBlZGVmIF9fcXVhZF90ICpfX3FhZGRyX3Q7Cgp0eXBl
ZGVmIF9fdV9xdWFkX3QgX19kZXZfdDsKdHlwZWRlZiBfX3VfaW50IF9fdWlkX3Q7CnR5cGVkZWYg
X191X2ludCBfX2dpZF90Owp0eXBlZGVmIF9fdV9sb25nIF9faW5vX3Q7CnR5cGVkZWYgX191X2lu
dCBfX21vZGVfdDsKdHlwZWRlZiBfX3VfaW50IF9fbmxpbmtfdDsKdHlwZWRlZiBsb25nIGludCBf
X29mZl90Owp0eXBlZGVmIF9fcXVhZF90IF9fbG9mZl90Owp0eXBlZGVmIGludCBfX3BpZF90Owp0
eXBlZGVmIGludCBfX3NzaXplX3Q7CnR5cGVkZWYgbG9uZyBpbnQgX19ybGltX3Q7CnR5cGVkZWYg
X19xdWFkX3QgX19ybGltNjRfdDsKdHlwZWRlZiBfX3VfaW50IF9faWRfdDsKCnR5cGVkZWYgc3Ry
dWN0CiAgewogICAgaW50IF9fdmFsWzJdOwogIH0gX19mc2lkX3Q7CgoKdHlwZWRlZiBpbnQgX19k
YWRkcl90Owp0eXBlZGVmIGNoYXIgKl9fY2FkZHJfdDsKdHlwZWRlZiBsb25nIGludCBfX3RpbWVf
dDsKdHlwZWRlZiBsb25nIGludCBfX3N3YmxrX3Q7Cgp0eXBlZGVmIGxvbmcgaW50IF9fY2xvY2tf
dDsKCgp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgaW50IF9fZmRfbWFzazsKIyAxMDAgIi91c3IvaW5j
bHVkZS9iaXRzL3R5cGVzLmgiIDMKdHlwZWRlZiBzdHJ1Y3QKICB7CgoKCgoKCiAgICBfX2ZkX21h
c2sgX19mZHNfYml0c1sxMDI0IC8gKDggKiBzaXplb2YgKF9fZmRfbWFzaykpXTsKCgogIH0gX19m
ZF9zZXQ7CgoKdHlwZWRlZiBpbnQgX19rZXlfdDsKCgp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGlu
dCBfX2lwY19waWRfdDsKCgoKCgp0eXBlZGVmIGxvbmcgaW50IF9fYmxrY250X3Q7CnR5cGVkZWYg
X19xdWFkX3QgX19ibGtjbnQ2NF90OwoKCnR5cGVkZWYgX191X2xvbmcgX19mc2Jsa2NudF90Owp0
eXBlZGVmIF9fdV9xdWFkX3QgX19mc2Jsa2NudDY0X3Q7CgoKdHlwZWRlZiBfX3VfbG9uZyBfX2Zz
ZmlsY250X3Q7CnR5cGVkZWYgX191X3F1YWRfdCBfX2ZzZmlsY250NjRfdDsKCgp0eXBlZGVmIF9f
dV9sb25nIF9faW5vNjRfdDsKCgp0eXBlZGVmIF9fbG9mZl90IF9fb2ZmNjRfdDsKCgp0eXBlZGVm
IGxvbmcgaW50IF9fdF9zY2FsYXJfdDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX3RfdXNj
YWxhcl90OwoKCnR5cGVkZWYgaW50IF9faW50cHRyX3Q7CiMgNDEgIi91c3IvaW5jbHVkZS9zdGRp
by5oIiAyIDMKCgoKCgoKCnR5cGVkZWYgc3RydWN0IF9JT19GSUxFIEZJTEU7CiMgNTcgIi91c3Iv
aW5jbHVkZS9zdGRpby5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDEgMwojIDMwICIv
dXNyL2luY2x1ZGUvbGliaW8uaCIgMwojIDEgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMSAz
CiMgOSAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMv
dHlwZXMuaCIgMSAzCiMgMTAgIi91c3IvaW5jbHVkZS9fR19jb25maWcuaCIgMiAzCgoKCgojIDEg
Ii91c3IvbG9jYWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvc3Rk
ZGVmLmgiIDEgMwojIDI4NyAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdu
dS8zLjAvaW5jbHVkZS9zdGRkZWYuaCIgMwp0eXBlZGVmIGxvbmcgaW50IHdjaGFyX3Q7CiMgMzEy
ICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMC9pbmNsdWRlL3N0
ZGRlZi5oIiAzCnR5cGVkZWYgdW5zaWduZWQgaW50IHdpbnRfdDsKIyAxNSAiL3Vzci9pbmNsdWRl
L19HX2NvbmZpZy5oIiAyIDMKIyAzNSAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAzCnR5cGVk
ZWYgaW50IF9HX2ludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CnR5
cGVkZWYgaW50IF9HX2ludDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJX18pKSk7
CnR5cGVkZWYgdW5zaWduZWQgaW50IF9HX3VpbnQxNl90IF9fYXR0cmlidXRlX18gKChfX21vZGVf
XyAoX19ISV9fKSkpOwp0eXBlZGVmIHVuc2lnbmVkIGludCBfR191aW50MzJfdCBfX2F0dHJpYnV0
ZV9fICgoX19tb2RlX18gKF9fU0lfXykpKTsKIyAzMSAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDIg
MwojIDQ4ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMwojIDEgIi91c3IvbG9jYWwvbGliL2djYy1s
aWIvaTY4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvc3RkYXJnLmgiIDEgMwojIDQ5ICIvdXNy
L2luY2x1ZGUvbGliaW8uaCIgMiAzCiMgMTU0ICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMwpzdHJ1
Y3QgX0lPX2p1bXBfdDsgc3RydWN0IF9JT19GSUxFOwojIDE2NCAiL3Vzci9pbmNsdWRlL2xpYmlv
LmgiIDMKdHlwZWRlZiB2b2lkIF9JT19sb2NrX3Q7CgoKCgoKc3RydWN0IF9JT19tYXJrZXIgewog
IHN0cnVjdCBfSU9fbWFya2VyICpfbmV4dDsKICBzdHJ1Y3QgX0lPX0ZJTEUgKl9zYnVmOwoKCgog
IGludCBfcG9zOwojIDE4NyAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKfTsKCnN0cnVjdCBfSU9f
RklMRSB7CiAgaW50IF9mbGFnczsKCgoKCiAgY2hhciogX0lPX3JlYWRfcHRyOwogIGNoYXIqIF9J
T19yZWFkX2VuZDsKICBjaGFyKiBfSU9fcmVhZF9iYXNlOwogIGNoYXIqIF9JT193cml0ZV9iYXNl
OwogIGNoYXIqIF9JT193cml0ZV9wdHI7CiAgY2hhciogX0lPX3dyaXRlX2VuZDsKICBjaGFyKiBf
SU9fYnVmX2Jhc2U7CiAgY2hhciogX0lPX2J1Zl9lbmQ7CgogIGNoYXIgKl9JT19zYXZlX2Jhc2U7
CiAgY2hhciAqX0lPX2JhY2t1cF9iYXNlOwogIGNoYXIgKl9JT19zYXZlX2VuZDsKCiAgc3RydWN0
IF9JT19tYXJrZXIgKl9tYXJrZXJzOwoKICBzdHJ1Y3QgX0lPX0ZJTEUgKl9jaGFpbjsKCiAgaW50
IF9maWxlbm87CiAgaW50IF9ibGtzaXplOwogIF9fb2ZmX3QgX29sZF9vZmZzZXQ7CgoKCiAgdW5z
aWduZWQgc2hvcnQgX2N1cl9jb2x1bW47CiAgc2lnbmVkIGNoYXIgX3Z0YWJsZV9vZmZzZXQ7CiAg
Y2hhciBfc2hvcnRidWZbMV07CgoKCiAgX0lPX2xvY2tfdCAqX2xvY2s7CiMgMjMzICIvdXNyL2lu
Y2x1ZGUvbGliaW8uaCIgMwogIF9fb2ZmNjRfdCBfb2Zmc2V0OwoKICBpbnQgX3VudXNlZDJbMTZd
OwoKfTsKCgp0eXBlZGVmIHN0cnVjdCBfSU9fRklMRSBfSU9fRklMRTsKCgpzdHJ1Y3QgX0lPX0ZJ
TEVfcGx1czsKZXh0ZXJuIHN0cnVjdCBfSU9fRklMRV9wbHVzIF9JT18yXzFfc3RkaW5fOwpleHRl
cm4gc3RydWN0IF9JT19GSUxFX3BsdXMgX0lPXzJfMV9zdGRvdXRfOwpleHRlcm4gc3RydWN0IF9J
T19GSUxFX3BsdXMgX0lPXzJfMV9zdGRlcnJfOwojIDI2MiAiL3Vzci9pbmNsdWRlL2xpYmlvLmgi
IDMKdHlwZWRlZiBfX3NzaXplX3QgX19pb19yZWFkX2ZuICh2b2lkICogX19jb29raWUsIGNoYXIg
Kl9fYnVmLCBzaXplX3QgX19uYnl0ZXMpOwojIDI3MSAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMK
dHlwZWRlZiBfX3NzaXplX3QgX19pb193cml0ZV9mbiAodm9pZCAqIF9fY29va2llLCBfX2NvbnN0
IGNoYXIgKl9fYnVmLCBzaXplX3QgX19uKTsKIyAyODAgIi91c3IvaW5jbHVkZS9saWJpby5oIiAz
CnR5cGVkZWYgaW50IF9faW9fc2Vla19mbiAodm9pZCAqIF9fY29va2llLCBfX29mZl90IF9fcG9z
LCBpbnQgX193KTsKCgp0eXBlZGVmIGludCBfX2lvX2Nsb3NlX2ZuICh2b2lkICogX19jb29raWUp
OwojIDMxOCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMKZXh0ZXJuIGludCBfX3VuZGVyZmxvdyAo
X0lPX0ZJTEUgKikgOwpleHRlcm4gaW50IF9fdWZsb3cgKF9JT19GSUxFICopIDsKZXh0ZXJuIGlu
dCBfX292ZXJmbG93IChfSU9fRklMRSAqLCBpbnQpIDsKIyAzMzcgIi91c3IvaW5jbHVkZS9saWJp
by5oIiAzCmV4dGVybiBpbnQgX0lPX2dldGMgKF9JT19GSUxFICpfX2ZwKSA7CmV4dGVybiBpbnQg
X0lPX3B1dGMgKGludCBfX2MsIF9JT19GSUxFICpfX2ZwKSA7CmV4dGVybiBpbnQgX0lPX2Zlb2Yg
KF9JT19GSUxFICpfX2ZwKSA7CmV4dGVybiBpbnQgX0lPX2ZlcnJvciAoX0lPX0ZJTEUgKl9fZnAp
IDsKCmV4dGVybiBpbnQgX0lPX3BlZWtjX2xvY2tlZCAoX0lPX0ZJTEUgKl9fZnApIDsKCgoKCgpl
eHRlcm4gdm9pZCBfSU9fZmxvY2tmaWxlIChfSU9fRklMRSAqKSA7CmV4dGVybiB2b2lkIF9JT19m
dW5sb2NrZmlsZSAoX0lPX0ZJTEUgKikgOwpleHRlcm4gaW50IF9JT19mdHJ5bG9ja2ZpbGUgKF9J
T19GSUxFICopIDsKIyAzNjMgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzCmV4dGVybiBpbnQgX0lP
X3Zmc2NhbmYgKF9JT19GSUxFICogX19yZXN0cmljdCwgY29uc3QgY2hhciAqIF9fcmVzdHJpY3Qs
IF9fZ251Y192YV9saXN0LCBpbnQgKl9fcmVzdHJpY3QpIDsKCmV4dGVybiBpbnQgX0lPX3ZmcHJp
bnRmIChfSU9fRklMRSAqX19yZXN0cmljdCwgY29uc3QgY2hhciAqX19yZXN0cmljdCwgX19nbnVj
X3ZhX2xpc3QpIDsKCmV4dGVybiBfX3NzaXplX3QgX0lPX3BhZG4gKF9JT19GSUxFICosIGludCwg
X19zc2l6ZV90KSA7CmV4dGVybiBzaXplX3QgX0lPX3NnZXRuIChfSU9fRklMRSAqLCB2b2lkICos
IHNpemVfdCkgOwoKZXh0ZXJuIF9fb2ZmNjRfdCBfSU9fc2Vla29mZiAoX0lPX0ZJTEUgKiwgX19v
ZmY2NF90LCBpbnQsIGludCkgOwpleHRlcm4gX19vZmY2NF90IF9JT19zZWVrcG9zIChfSU9fRklM
RSAqLCBfX29mZjY0X3QsIGludCkgOwoKZXh0ZXJuIHZvaWQgX0lPX2ZyZWVfYmFja3VwX2FyZWEg
KF9JT19GSUxFICopIDsKIyA1OCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoKCgp0eXBlZGVm
IF9fb2ZmX3QgZnBvc190OwojIDExMCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKIyAxICIvdXNy
L2luY2x1ZGUvYml0cy9zdGRpb19saW0uaCIgMSAzCiMgMTExICIvdXNyL2luY2x1ZGUvc3RkaW8u
aCIgMiAzCgoKCmV4dGVybiBGSUxFICpzdGRpbjsKZXh0ZXJuIEZJTEUgKnN0ZG91dDsKZXh0ZXJu
IEZJTEUgKnN0ZGVycjsKCgoKCgoKCmV4dGVybiBpbnQgcmVtb3ZlIChfX2NvbnN0IGNoYXIgKl9f
ZmlsZW5hbWUpIDsKCmV4dGVybiBpbnQgcmVuYW1lIChfX2NvbnN0IGNoYXIgKl9fb2xkLCBfX2Nv
bnN0IGNoYXIgKl9fbmV3KSA7CgoKCgpleHRlcm4gRklMRSAqdG1wZmlsZSAodm9pZCkgOwojIDE0
MyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGNoYXIgKnRtcG5hbSAoY2hhciAqX19z
KSA7CiMgMTY1ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gaW50IGZjbG9zZSAoRklM
RSAqX19zdHJlYW0pIDsKCmV4dGVybiBpbnQgZmZsdXNoIChGSUxFICpfX3N0cmVhbSkgOwojIDE4
MiAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIEZJTEUgKmZvcGVuIChfX2NvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19maWxlbmFtZSwgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbW9k
ZXMpIDsKCgpleHRlcm4gRklMRSAqZnJlb3BlbiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9f
ZmlsZW5hbWUsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX21vZGVzLCBGSUxFICpfX3Jlc3Ry
aWN0IF9fc3RyZWFtKSA7CiMgMjMyICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gdm9p
ZCBzZXRidWYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19i
dWYpIDsKCgoKZXh0ZXJuIGludCBzZXR2YnVmIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBj
aGFyICpfX3Jlc3RyaWN0IF9fYnVmLCBpbnQgX19tb2Rlcywgc2l6ZV90IF9fbikgOwojIDI1MSAi
L3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGludCBmcHJpbnRmIChGSUxFICpfX3Jlc3Ry
aWN0IF9fc3RyZWFtLCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwoK
CmV4dGVybiBpbnQgcHJpbnRmIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4u
LikgOwoKZXh0ZXJuIGludCBzcHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgX19jb25zdCBj
aGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIDsKCgoKZXh0ZXJuIGludCB2ZnByaW50ZiAo
RklMRSAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwg
X19nbnVjX3ZhX2xpc3QgX19hcmcpIDsKCgoKZXh0ZXJuIGludCB2cHJpbnRmIChfX2NvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXJnKSA7CgoKZXh0ZXJu
IGludCB2c3ByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hhciAqX19yZXN0
cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpIDsKIyAzMTAgIi91c3IvaW5jbHVk
ZS9zdGRpby5oIiAzCmV4dGVybiBpbnQgZnNjYW5mIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFt
LCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwoKCmV4dGVybiBpbnQg
c2NhbmYgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7CgpleHRlcm4g
aW50IHNzY2FuZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywgX19jb25zdCBjaGFyICpf
X3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIDsKIyAzMzggIi91c3IvaW5jbHVkZS9zdGRpby5oIiAz
CmV4dGVybiBpbnQgZmdldGMgKEZJTEUgKl9fc3RyZWFtKSA7CmV4dGVybiBpbnQgZ2V0YyAoRklM
RSAqX19zdHJlYW0pIDsKCgpleHRlcm4gaW50IGdldGNoYXIgKHZvaWQpIDsKIyAzNjEgIi91c3Iv
aW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBpbnQgZnB1dGMgKGludCBfX2MsIEZJTEUgKl9fc3Ry
ZWFtKSA7CmV4dGVybiBpbnQgcHV0YyAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pIDsKCgpleHRl
cm4gaW50IHB1dGNoYXIgKGludCBfX2MpIDsKIyAzOTMgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAz
CmV4dGVybiBjaGFyICpmZ2V0cyAoY2hhciAqX19yZXN0cmljdCBfX3MsIGludCBfX24sIEZJTEUg
Kl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKIyA0MDQgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzCmV4
dGVybiBjaGFyICpnZXRzIChjaGFyICpfX3MpIDsKIyA0MjggIi91c3IvaW5jbHVkZS9zdGRpby5o
IiAzCmV4dGVybiBpbnQgZnB1dHMgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsIEZJTEUg
Kl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKIyA0MzggIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzCmV4
dGVybiBpbnQgcHV0cyAoX19jb25zdCBjaGFyICpfX3MpIDsKCgoKZXh0ZXJuIGludCB1bmdldGMg
KGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSA7CgoKCmV4dGVybiBzaXplX3QgZnJlYWQgKHZvaWQg
Kl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsIHNpemVfdCBfX24sIEZJTEUgKl9fcmVz
dHJpY3QgX19zdHJlYW0pIDsKCgpleHRlcm4gc2l6ZV90IGZ3cml0ZSAoX19jb25zdCB2b2lkICpf
X3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLCBzaXplX3QgX19uLCBGSUxFICpfX3Jlc3Ry
aWN0IF9fcykgOwojIDQ2MyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGludCBmc2Vl
ayAoRklMRSAqX19zdHJlYW0sIGxvbmcgaW50IF9fb2ZmLCBpbnQgX193aGVuY2UpIDsKCmV4dGVy
biBsb25nIGludCBmdGVsbCAoRklMRSAqX19zdHJlYW0pIDsKCmV4dGVybiB2b2lkIHJld2luZCAo
RklMRSAqX19zdHJlYW0pIDsKIyA0NzcgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzCnR5cGVkZWYg
X19vZmZfdCBvZmZfdDsKIyA0OTkgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBpbnQg
ZmdldHBvcyAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwgZnBvc190ICpfX3Jlc3RyaWN0IF9f
cG9zKSA7CgoKZXh0ZXJuIGludCBmc2V0cG9zIChGSUxFICpfX3N0cmVhbSwgX19jb25zdCBmcG9z
X3QgKl9fcG9zKSA7CiMgNTM2ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gdm9pZCBj
bGVhcmVyciAoRklMRSAqX19zdHJlYW0pIDsKCmV4dGVybiBpbnQgZmVvZiAoRklMRSAqX19zdHJl
YW0pIDsKCmV4dGVybiBpbnQgZmVycm9yIChGSUxFICpfX3N0cmVhbSkgOwojIDU1MSAiL3Vzci9p
bmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIHZvaWQgcGVycm9yIChfX2NvbnN0IGNoYXIgKl9fcykg
OwojIDYzNSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvYml0cy9z
dGRpby5oIiAxIDMKIyAzMiAiL3Vzci9pbmNsdWRlL2JpdHMvc3RkaW8uaCIgMwpleHRlcm4gX19p
bmxpbmUgaW50CnZwcmludGYgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZtdCwgX19nbnVj
X3ZhX2xpc3QgX19hcmcpCnsKICByZXR1cm4gdmZwcmludGYgKHN0ZG91dCwgX19mbXQsIF9fYXJn
KTsKfQoKCmV4dGVybiBfX2lubGluZSBpbnQKZ2V0Y2hhciAodm9pZCkKewogIHJldHVybiBfSU9f
Z2V0YyAoc3RkaW4pOwp9CiMgNjQgIi91c3IvaW5jbHVkZS9iaXRzL3N0ZGlvLmgiIDMKZXh0ZXJu
IF9faW5saW5lIGludApwdXRjaGFyIChpbnQgX19jKQp7CiAgcmV0dXJuIF9JT19wdXRjIChfX2Ms
IHN0ZG91dCk7Cn0KIyA2MzYgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMKIyAyICJub2lzZS5j
IiAyCiMgMSAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAxIDMKIyAyNSAiL3Vzci9pbmNsdWRlL3N0
ZGxpYi5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDEgMwojIDI2ICIvdXNyL2lu
Y2x1ZGUvc3RkbGliLmgiIDIgMwoKCgoKCgoKIyAxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k2
ODYtcGMtbGludXgtZ251LzMuMC9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAzNCAiL3Vzci9pbmNs
dWRlL3N0ZGxpYi5oIiAyIDMKCgoKCgoKCnR5cGVkZWYgc3RydWN0CiAgewogICAgaW50IHF1b3Q7
CiAgICBpbnQgcmVtOwogIH0gZGl2X3Q7CgoKCnR5cGVkZWYgc3RydWN0CiAgewogICAgbG9uZyBp
bnQgcXVvdDsKICAgIGxvbmcgaW50IHJlbTsKICB9IGxkaXZfdDsKIyA4MCAiL3Vzci9pbmNsdWRl
L3N0ZGxpYi5oIiAzCmV4dGVybiBzaXplX3QgX19jdHlwZV9nZXRfbWJfY3VyX21heCAodm9pZCkg
OwoKCgpleHRlcm4gZG91YmxlIGF0b2YgKF9fY29uc3QgY2hhciAqX19ucHRyKSA7CgpleHRlcm4g
aW50IGF0b2kgKF9fY29uc3QgY2hhciAqX19ucHRyKSA7CgpleHRlcm4gbG9uZyBpbnQgYXRvbCAo
X19jb25zdCBjaGFyICpfX25wdHIpIDsKCgoKCgoKCmV4dGVybiBkb3VibGUgc3RydG9kIChfX2Nv
bnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLCBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0cikg
OwojIDEwOSAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzCmV4dGVybiBsb25nIGludCBzdHJ0b2wg
KF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5k
cHRyLCBpbnQgX19iYXNlKSA7CgoKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW50IHN0cnRvdWwgKF9f
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRy
LCBpbnQgX19iYXNlKSA7CiMgMTk2ICIvdXNyL2luY2x1ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIGRv
dWJsZSBfX3N0cnRvZF9pbnRlcm5hbCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwg
Y2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2dyb3VwKSA7CgoKZXh0ZXJuIGZsb2F0
IF9fc3RydG9mX2ludGVybmFsIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLCBjaGFy
ICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fZ3JvdXApIDsKCmV4dGVybiBsb25nIGRvdWJs
ZSBfX3N0cnRvbGRfaW50ZXJuYWwgKF9fY29uc3QgY2hhciAqIF9fcmVzdHJpY3QgX19ucHRyLCBj
aGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fZ3JvdXApIDsKCgoKCmV4dGVybiBsb25n
IGludCBfX3N0cnRvbF9pbnRlcm5hbCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwg
Y2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2Jhc2UsIGludCBfX2dyb3VwKSA7CgoK
CgoKZXh0ZXJuIHVuc2lnbmVkIGxvbmcgaW50IF9fc3RydG91bF9pbnRlcm5hbCAoX19jb25zdCBj
aGFyICogX19yZXN0cmljdCBfX25wdHIsIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQg
X19iYXNlLCBpbnQgX19ncm91cCkgOwoKCgoKCgoKX19leHRlbnNpb25fXwpleHRlcm4gbG9uZyBs
b25nIGludCBfX3N0cnRvbGxfaW50ZXJuYWwgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25w
dHIsIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLCBpbnQgX19iYXNlLCBpbnQgX19ncm91cCkg
OwoKCgoKCl9fZXh0ZW5zaW9uX18KZXh0ZXJuIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX19zdHJ0
b3VsbF9pbnRlcm5hbCAoX19jb25zdCBjaGFyICogX19yZXN0cmljdCBfX25wdHIsIGNoYXIgKiog
X19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fYmFzZSwgaW50IF9fZ3JvdXApIDsKIyAyNDIgIi91
c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRlcm4gX19pbmxpbmUgZG91YmxlCnN0cnRvZCAoX19j
b25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIp
CnsKICByZXR1cm4gX19zdHJ0b2RfaW50ZXJuYWwgKF9fbnB0ciwgX19lbmRwdHIsIDApOwp9CmV4
dGVybiBfX2lubGluZSBsb25nIGludApzdHJ0b2wgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X25wdHIsIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLAogICAgICAgIGludCBfX2Jhc2UpCnsK
ICByZXR1cm4gX19zdHJ0b2xfaW50ZXJuYWwgKF9fbnB0ciwgX19lbmRwdHIsIF9fYmFzZSwgMCk7
Cn0KZXh0ZXJuIF9faW5saW5lIHVuc2lnbmVkIGxvbmcgaW50CnN0cnRvdWwgKF9fY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX25wdHIsIGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLAogICAgICAg
ICBpbnQgX19iYXNlKQp7CiAgcmV0dXJuIF9fc3RydG91bF9pbnRlcm5hbCAoX19ucHRyLCBfX2Vu
ZHB0ciwgX19iYXNlLCAwKTsKfQojIDMwMyAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzCmV4dGVy
biBfX2lubGluZSBkb3VibGUKYXRvZiAoX19jb25zdCBjaGFyICpfX25wdHIpCnsKICByZXR1cm4g
c3RydG9kIChfX25wdHIsIChjaGFyICoqKSAoKHZvaWQgKikwKSk7Cn0KZXh0ZXJuIF9faW5saW5l
IGludAphdG9pIChfX2NvbnN0IGNoYXIgKl9fbnB0cikKewogIHJldHVybiAoaW50KSBzdHJ0b2wg
KF9fbnB0ciwgKGNoYXIgKiopICgodm9pZCAqKTApLCAxMCk7Cn0KZXh0ZXJuIF9faW5saW5lIGxv
bmcgaW50CmF0b2wgKF9fY29uc3QgY2hhciAqX19ucHRyKQp7CiAgcmV0dXJuIHN0cnRvbCAoX19u
cHRyLCAoY2hhciAqKikgKCh2b2lkICopMCksIDEwKTsKfQojIDM5NiAiL3Vzci9pbmNsdWRlL3N0
ZGxpYi5oIiAzCmV4dGVybiBpbnQgcmFuZCAodm9pZCkgOwoKZXh0ZXJuIHZvaWQgc3JhbmQgKHVu
c2lnbmVkIGludCBfX3NlZWQpIDsKIyA0NzQgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRl
cm4gdm9pZCAqIG1hbGxvYyAoc2l6ZV90IF9fc2l6ZSkgOwoKZXh0ZXJuIHZvaWQgKiBjYWxsb2Mg
KHNpemVfdCBfX25tZW1iLCBzaXplX3QgX19zaXplKSA7CgoKCgoKZXh0ZXJuIHZvaWQgKiByZWFs
bG9jICh2b2lkICogX19wdHIsIHNpemVfdCBfX3NpemUpIDsKCmV4dGVybiB2b2lkIGZyZWUgKHZv
aWQgKiBfX3B0cikgOwojIDUwMiAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzCmV4dGVybiB2b2lk
IGFib3J0ICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19ub3JldHVybl9fKSk7CgoKCmV4dGVybiBp
bnQgYXRleGl0ICh2b2lkICgqX19mdW5jKSAodm9pZCkpIDsKIyA1MjAgIi91c3IvaW5jbHVkZS9z
dGRsaWIuaCIgMwpleHRlcm4gdm9pZCBleGl0IChpbnQgX19zdGF0dXMpIF9fYXR0cmlidXRlX18g
KChfX25vcmV0dXJuX18pKTsKIyA1MzAgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRlcm4g
Y2hhciAqZ2V0ZW52IChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgOwoKCgpleHRlcm4gY2hhciAqX19z
ZWN1cmVfZ2V0ZW52IChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgOwojIDU3OCAiL3Vzci9pbmNsdWRl
L3N0ZGxpYi5oIiAzCmV4dGVybiBpbnQgc3lzdGVtIChfX2NvbnN0IGNoYXIgKl9fY29tbWFuZCkg
OwojIDYwMyAiL3Vzci9pbmNsdWRlL3N0ZGxpYi5oIiAzCnR5cGVkZWYgaW50ICgqX19jb21wYXJf
Zm5fdCkgKF9fY29uc3Qgdm9pZCAqLCBfX2NvbnN0IHZvaWQgKik7CiMgNjEyICIvdXNyL2luY2x1
ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIHZvaWQgKiBic2VhcmNoIChfX2NvbnN0IHZvaWQgKiBfX2tl
eSwgX19jb25zdCB2b2lkICogX19iYXNlLCBzaXplX3QgX19ubWVtYiwgc2l6ZV90IF9fc2l6ZSwg
X19jb21wYXJfZm5fdCBfX2NvbXBhcik7CgoKCgoKZXh0ZXJuIHZvaWQgcXNvcnQgKHZvaWQgKiBf
X2Jhc2UsIHNpemVfdCBfX25tZW1iLCBzaXplX3QgX19zaXplLCBfX2NvbXBhcl9mbl90IF9fY29t
cGFyKTsKCgoKCmV4dGVybiBpbnQgYWJzIChpbnQgX194KSBfX2F0dHJpYnV0ZV9fICgoX19jb25z
dF9fKSk7CmV4dGVybiBsb25nIGludCBsYWJzIChsb25nIGludCBfX3gpIF9fYXR0cmlidXRlX18g
KChfX2NvbnN0X18pKTsKIyA2MzQgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRlcm4gZGl2
X3QgZGl2IChpbnQgX19udW1lciwgaW50IF9fZGVub20pIF9fYXR0cmlidXRlX18gKChfX2NvbnN0
X18pKTsKZXh0ZXJuIGxkaXZfdCBsZGl2IChsb25nIGludCBfX251bWVyLCBsb25nIGludCBfX2Rl
bm9tKQogICAgIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKIyA2OTUgIi91c3IvaW5jbHVk
ZS9zdGRsaWIuaCIgMwpleHRlcm4gaW50IG1ibGVuIChfX2NvbnN0IGNoYXIgKl9fcywgc2l6ZV90
IF9fbikgOwoKCmV4dGVybiBpbnQgbWJ0b3djICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcHdjLCBf
X2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19uKSA7CgoKCmV4dGVybiBpbnQg
d2N0b21iIChjaGFyICpfX3MsIHdjaGFyX3QgX193Y2hhcikgOwoKCgpleHRlcm4gc2l6ZV90IG1i
c3Rvd2NzICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcHdjcywgX19jb25zdCBjaGFyICpfX3Jlc3Ry
aWN0IF9fcywgc2l6ZV90IF9fbikgOwoKCmV4dGVybiBzaXplX3Qgd2NzdG9tYnMgKGNoYXIgKl9f
cmVzdHJpY3QgX19zLCBfX2NvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19wd2NzLCBzaXplX3Qg
X19uKSA7CiMgMyAibm9pc2UuYyIgMgojIDEgIi91c3IvaW5jbHVkZS9tYXRoLmgiIDEgMwojIDI3
ICIvdXNyL2luY2x1ZGUvbWF0aC5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDEg
MwojIDI4ICIvdXNyL2luY2x1ZGUvbWF0aC5oIiAyIDMKCgoKCgojIDEgIi91c3IvaW5jbHVkZS9i
aXRzL2h1Z2VfdmFsLmgiIDEgMwojIDI1ICIvdXNyL2luY2x1ZGUvYml0cy9odWdlX3ZhbC5oIiAz
CiMgMSAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDEgMwojIDI2ICIvdXNyL2luY2x1ZGUvYml0
cy9odWdlX3ZhbC5oIiAyIDMKIyAzNCAiL3Vzci9pbmNsdWRlL21hdGguaCIgMiAzCgoKCgoKCiMg
MSAiL3Vzci9pbmNsdWRlL2JpdHMvbWF0aGRlZi5oIiAxIDMKIyA0MSAiL3Vzci9pbmNsdWRlL21h
dGguaCIgMiAzCiMgNjMgIi91c3IvaW5jbHVkZS9tYXRoLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUv
Yml0cy9tYXRoY2FsbHMuaCIgMSAzCiMgNTQgIi91c3IvaW5jbHVkZS9iaXRzL21hdGhjYWxscy5o
IiAzCmV4dGVybiBkb3VibGUgYWNvcyAoZG91YmxlIF9feCk7IGV4dGVybiBkb3VibGUgX19hY29z
IChkb3VibGUgX194KTsKCmV4dGVybiBkb3VibGUgYXNpbiAoZG91YmxlIF9feCk7IGV4dGVybiBk
b3VibGUgX19hc2luIChkb3VibGUgX194KTsKCmV4dGVybiBkb3VibGUgYXRhbiAoZG91YmxlIF9f
eCk7IGV4dGVybiBkb3VibGUgX19hdGFuIChkb3VibGUgX194KTsKCmV4dGVybiBkb3VibGUgYXRh
bjIgKGRvdWJsZSBfX3ksIGRvdWJsZSBfX3gpOyBleHRlcm4gZG91YmxlIF9fYXRhbjIgKGRvdWJs
ZSBfX3ksIGRvdWJsZSBfX3gpOwoKCmV4dGVybiBkb3VibGUgY29zIChkb3VibGUgX194KTsgZXh0
ZXJuIGRvdWJsZSBfX2NvcyAoZG91YmxlIF9feCk7CgpleHRlcm4gZG91YmxlIHNpbiAoZG91Ymxl
IF9feCk7IGV4dGVybiBkb3VibGUgX19zaW4gKGRvdWJsZSBfX3gpOwoKZXh0ZXJuIGRvdWJsZSB0
YW4gKGRvdWJsZSBfX3gpOyBleHRlcm4gZG91YmxlIF9fdGFuIChkb3VibGUgX194KTsKIyA3OCAi
L3Vzci9pbmNsdWRlL2JpdHMvbWF0aGNhbGxzLmgiIDMKZXh0ZXJuIGRvdWJsZSBjb3NoIChkb3Vi
bGUgX194KTsgZXh0ZXJuIGRvdWJsZSBfX2Nvc2ggKGRvdWJsZSBfX3gpOwoKZXh0ZXJuIGRvdWJs
ZSBzaW5oIChkb3VibGUgX194KTsgZXh0ZXJuIGRvdWJsZSBfX3NpbmggKGRvdWJsZSBfX3gpOwoK
ZXh0ZXJuIGRvdWJsZSB0YW5oIChkb3VibGUgX194KTsgZXh0ZXJuIGRvdWJsZSBfX3RhbmggKGRv
dWJsZSBfX3gpOwojIDk2ICIvdXNyL2luY2x1ZGUvYml0cy9tYXRoY2FsbHMuaCIgMwpleHRlcm4g
ZG91YmxlIGV4cCAoZG91YmxlIF9feCk7IGV4dGVybiBkb3VibGUgX19leHAgKGRvdWJsZSBfX3gp
OwojIDEwNiAiL3Vzci9pbmNsdWRlL2JpdHMvbWF0aGNhbGxzLmgiIDMKZXh0ZXJuIGRvdWJsZSBm
cmV4cCAoZG91YmxlIF9feCwgaW50ICpfX2V4cG9uZW50KTsgZXh0ZXJuIGRvdWJsZSBfX2ZyZXhw
IChkb3VibGUgX194LCBpbnQgKl9fZXhwb25lbnQpOwoKCmV4dGVybiBkb3VibGUgbGRleHAgKGRv
dWJsZSBfX3gsIGludCBfX2V4cG9uZW50KTsgZXh0ZXJuIGRvdWJsZSBfX2xkZXhwIChkb3VibGUg
X194LCBpbnQgX19leHBvbmVudCk7CgoKZXh0ZXJuIGRvdWJsZSBsb2cgKGRvdWJsZSBfX3gpOyBl
eHRlcm4gZG91YmxlIF9fbG9nIChkb3VibGUgX194KTsKCgpleHRlcm4gZG91YmxlIGxvZzEwIChk
b3VibGUgX194KTsgZXh0ZXJuIGRvdWJsZSBfX2xvZzEwIChkb3VibGUgX194KTsKCgpleHRlcm4g
ZG91YmxlIG1vZGYgKGRvdWJsZSBfX3gsIGRvdWJsZSAqX19pcHRyKTsgZXh0ZXJuIGRvdWJsZSBf
X21vZGYgKGRvdWJsZSBfX3gsIGRvdWJsZSAqX19pcHRyKTsKIyAxNDMgIi91c3IvaW5jbHVkZS9i
aXRzL21hdGhjYWxscy5oIiAzCmV4dGVybiBkb3VibGUgcG93IChkb3VibGUgX194LCBkb3VibGUg
X195KTsgZXh0ZXJuIGRvdWJsZSBfX3BvdyAoZG91YmxlIF9feCwgZG91YmxlIF9feSk7CgoKZXh0
ZXJuIGRvdWJsZSBzcXJ0IChkb3VibGUgX194KTsgZXh0ZXJuIGRvdWJsZSBfX3NxcnQgKGRvdWJs
ZSBfX3gpOwojIDE2MiAiL3Vzci9pbmNsdWRlL2JpdHMvbWF0aGNhbGxzLmgiIDMKZXh0ZXJuIGRv
dWJsZSBjZWlsIChkb3VibGUgX194KTsgZXh0ZXJuIGRvdWJsZSBfX2NlaWwgKGRvdWJsZSBfX3gp
OwoKCmV4dGVybiBkb3VibGUgZmFicyAoZG91YmxlIF9feCkgX19hdHRyaWJ1dGVfXyAoKF9fY29u
c3RfXykpOyBleHRlcm4gZG91YmxlIF9fZmFicyAoZG91YmxlIF9feCkgX19hdHRyaWJ1dGVfXyAo
KF9fY29uc3RfXykpOwoKCmV4dGVybiBkb3VibGUgZmxvb3IgKGRvdWJsZSBfX3gpOyBleHRlcm4g
ZG91YmxlIF9fZmxvb3IgKGRvdWJsZSBfX3gpOwoKCmV4dGVybiBkb3VibGUgZm1vZCAoZG91Ymxl
IF9feCwgZG91YmxlIF9feSk7IGV4dGVybiBkb3VibGUgX19mbW9kIChkb3VibGUgX194LCBkb3Vi
bGUgX195KTsKCgoKCmV4dGVybiBpbnQgX19pc2luZiAoZG91YmxlIF9fdmFsdWUpIF9fYXR0cmli
dXRlX18gKChfX2NvbnN0X18pKTsKCgpleHRlcm4gaW50IF9fZmluaXRlIChkb3VibGUgX192YWx1
ZSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwojIDIxNyAiL3Vzci9pbmNsdWRlL2JpdHMv
bWF0aGNhbGxzLmgiIDMKZXh0ZXJuIGludCBfX2lzbmFuIChkb3VibGUgX192YWx1ZSkgX19hdHRy
aWJ1dGVfXyAoKF9fY29uc3RfXykpOwojIDY0ICIvdXNyL2luY2x1ZGUvbWF0aC5oIiAyIDMKIyAz
NDggIi91c3IvaW5jbHVkZS9tYXRoLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvYml0cy9tYXRoaW5s
aW5lLmgiIDEgMwojIDM0OSAiL3Vzci9pbmNsdWRlL21hdGguaCIgMiAzCiMgNCAibm9pc2UuYyIg
MgojIDEgImZ0LmgiIDEKCgojIDEgIi91c3IvaW5jbHVkZS9zdGRpby5oIiAxIDMKIyA0ICJmdC5o
IiAyCiMgMSAiL3Vzci9pbmNsdWRlL21hdGguaCIgMSAzCiMgNSAiZnQuaCIgMgoKCgoKCmV4dGVy
biBkb3VibGUgbXNpbmVbMTZdLGNvc2luZVsxNl07CnZvaWQgZnRpbml0KCk7CnZvaWQgZmZ0KGRv
dWJsZSAqeCxkb3VibGUgKnkpOwp2b2lkIHJmdChkb3VibGUgKngsZG91YmxlICp5KTsKdm9pZCBm
dDNkKGRvdWJsZSAqeCxkb3VibGUgKmZ4KTsKdm9pZCBmZnQzZChkb3VibGUgKngsZG91YmxlICpm
eCk7CnZvaWQgYnQzZChkb3VibGUgKngsZG91YmxlICpmeCk7CnZvaWQgZmJ0M2QoZG91YmxlICpm
eCxkb3VibGUgKngpOwojIDUgIm5vaXNlLmMiIDIKIyAxICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgi
IDEgMwojIDI2ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvZmVh
dHVyZXMuaCIgMSAzCiMgMjcgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMiAzCiMgMTc1ICIvdXNy
L2luY2x1ZGUvdW5pc3RkLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvYml0cy9wb3NpeF9vcHQuaCIg
MSAzCiMgMTc2ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDIgMwojIDE5MCAiL3Vzci9pbmNsdWRl
L3VuaXN0ZC5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMSAzCiMgMTkxICIv
dXNyL2luY2x1ZGUvdW5pc3RkLmgiIDIgMwoKCnR5cGVkZWYgX19zc2l6ZV90IHNzaXplX3Q7CgoK
CgoKIyAxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMC9pbmNs
dWRlL3N0ZGRlZi5oIiAxIDMKIyAyMDAgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMiAzCiMgMjQ4
ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMKZXh0ZXJuIGludCBhY2Nlc3MgKF9fY29uc3QgY2hh
ciAqX19uYW1lLCBpbnQgX190eXBlKSA7CiMgMjc3ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMK
ZXh0ZXJuIF9fb2ZmX3QgX19sc2VlayAoaW50IF9fZmQsIF9fb2ZmX3QgX19vZmZzZXQsIGludCBf
X3doZW5jZSkgOwoKZXh0ZXJuIF9fb2ZmX3QgbHNlZWsgKGludCBfX2ZkLCBfX29mZl90IF9fb2Zm
c2V0LCBpbnQgX193aGVuY2UpIDsKIyAyOTUgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMwpleHRl
cm4gaW50IF9fY2xvc2UgKGludCBfX2ZkKSA7CmV4dGVybiBpbnQgY2xvc2UgKGludCBfX2ZkKSA7
CgoKCmV4dGVybiBzc2l6ZV90IF9fcmVhZCAoaW50IF9fZmQsIHZvaWQgKiBfX2J1Ziwgc2l6ZV90
IF9fbmJ5dGVzKSA7CmV4dGVybiBzc2l6ZV90IHJlYWQgKGludCBfX2ZkLCB2b2lkICogX19idWYs
IHNpemVfdCBfX25ieXRlcykgOwoKCmV4dGVybiBzc2l6ZV90IF9fd3JpdGUgKGludCBfX2ZkLCBf
X2NvbnN0IHZvaWQgKiBfX2J1Ziwgc2l6ZV90IF9fbikgOwpleHRlcm4gc3NpemVfdCB3cml0ZSAo
aW50IF9fZmQsIF9fY29uc3Qgdm9pZCAqIF9fYnVmLCBzaXplX3QgX19uKSA7CiMgMzQ5ICIvdXNy
L2luY2x1ZGUvdW5pc3RkLmgiIDMKZXh0ZXJuIGludCBwaXBlIChpbnQgX19waXBlZGVzWzJdKSA7
CiMgMzU4ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMKZXh0ZXJuIHVuc2lnbmVkIGludCBhbGFy
bSAodW5zaWduZWQgaW50IF9fc2Vjb25kcykgOwojIDM2NyAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5o
IiAzCmV4dGVybiB1bnNpZ25lZCBpbnQgc2xlZXAgKHVuc2lnbmVkIGludCBfX3NlY29uZHMpIDsK
IyAzODUgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMwpleHRlcm4gaW50IHBhdXNlICh2b2lkKSA7
CgoKCmV4dGVybiBpbnQgY2hvd24gKF9fY29uc3QgY2hhciAqX19maWxlLCBfX3VpZF90IF9fb3du
ZXIsIF9fZ2lkX3QgX19ncm91cCkgOwojIDQwNSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzCmV4
dGVybiBpbnQgY2hkaXIgKF9fY29uc3QgY2hhciAqX19wYXRoKSA7CiMgNDE5ICIvdXNyL2luY2x1
ZGUvdW5pc3RkLmgiIDMKZXh0ZXJuIGNoYXIgKmdldGN3ZCAoY2hhciAqX19idWYsIHNpemVfdCBf
X3NpemUpIDsKIyA0MzcgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMwpleHRlcm4gaW50IGR1cCAo
aW50IF9fZmQpIDsKCgpleHRlcm4gaW50IGR1cDIgKGludCBfX2ZkLCBpbnQgX19mZDIpIDsKCgpl
eHRlcm4gY2hhciAqKl9fZW52aXJvbjsKCgoKCgoKCmV4dGVybiBpbnQgZXhlY3ZlIChfX2NvbnN0
IGNoYXIgKl9fcGF0aCwgY2hhciAqX19jb25zdCBfX2FyZ3ZbXSwgY2hhciAqX19jb25zdCBfX2Vu
dnBbXSkgOwojIDQ2NCAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzCmV4dGVybiBpbnQgZXhlY3Yg
KF9fY29uc3QgY2hhciAqX19wYXRoLCBjaGFyICpfX2NvbnN0IF9fYXJndltdKSA7CgoKCmV4dGVy
biBpbnQgZXhlY2xlIChfX2NvbnN0IGNoYXIgKl9fcGF0aCwgX19jb25zdCBjaGFyICpfX2FyZywg
Li4uKSA7CgoKCmV4dGVybiBpbnQgZXhlY2wgKF9fY29uc3QgY2hhciAqX19wYXRoLCBfX2NvbnN0
IGNoYXIgKl9fYXJnLCAuLi4pIDsKCgoKZXh0ZXJuIGludCBleGVjdnAgKF9fY29uc3QgY2hhciAq
X19maWxlLCBjaGFyICpfX2NvbnN0IF9fYXJndltdKSA7CgoKCgpleHRlcm4gaW50IGV4ZWNscCAo
X19jb25zdCBjaGFyICpfX2ZpbGUsIF9fY29uc3QgY2hhciAqX19hcmcsIC4uLikgOwojIDQ5MSAi
L3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzCmV4dGVybiB2b2lkIF9leGl0IChpbnQgX19zdGF0dXMp
IF9fYXR0cmlidXRlX18gKChfX25vcmV0dXJuX18pKTsKCgoKCgojIDEgIi91c3IvaW5jbHVkZS9i
aXRzL2NvbmZuYW1lLmgiIDEgMwojIDI1ICIvdXNyL2luY2x1ZGUvYml0cy9jb25mbmFtZS5oIiAz
CmVudW0KICB7CiAgICBfUENfTElOS19NQVgsCgogICAgX1BDX01BWF9DQU5PTiwKCiAgICBfUENf
TUFYX0lOUFVULAoKICAgIF9QQ19OQU1FX01BWCwKCiAgICBfUENfUEFUSF9NQVgsCgogICAgX1BD
X1BJUEVfQlVGLAoKICAgIF9QQ19DSE9XTl9SRVNUUklDVEVELAoKICAgIF9QQ19OT19UUlVOQywK
CiAgICBfUENfVkRJU0FCTEUsCgogICAgX1BDX1NZTkNfSU8sCgogICAgX1BDX0FTWU5DX0lPLAoK
ICAgIF9QQ19QUklPX0lPLAoKICAgIF9QQ19TT0NLX01BWEJVRiwKCiAgICBfUENfRklMRVNJWkVC
SVRTCgogIH07CgoKZW51bQogIHsKICAgIF9TQ19BUkdfTUFYLAoKICAgIF9TQ19DSElMRF9NQVgs
CgogICAgX1NDX0NMS19UQ0ssCgogICAgX1NDX05HUk9VUFNfTUFYLAoKICAgIF9TQ19PUEVOX01B
WCwKCiAgICBfU0NfU1RSRUFNX01BWCwKCiAgICBfU0NfVFpOQU1FX01BWCwKCiAgICBfU0NfSk9C
X0NPTlRST0wsCgogICAgX1NDX1NBVkVEX0lEUywKCiAgICBfU0NfUkVBTFRJTUVfU0lHTkFMUywK
CiAgICBfU0NfUFJJT1JJVFlfU0NIRURVTElORywKCiAgICBfU0NfVElNRVJTLAoKICAgIF9TQ19B
U1lOQ0hST05PVVNfSU8sCgogICAgX1NDX1BSSU9SSVRJWkVEX0lPLAoKICAgIF9TQ19TWU5DSFJP
TklaRURfSU8sCgogICAgX1NDX0ZTWU5DLAoKICAgIF9TQ19NQVBQRURfRklMRVMsCgogICAgX1ND
X01FTUxPQ0ssCgogICAgX1NDX01FTUxPQ0tfUkFOR0UsCgogICAgX1NDX01FTU9SWV9QUk9URUNU
SU9OLAoKICAgIF9TQ19NRVNTQUdFX1BBU1NJTkcsCgogICAgX1NDX1NFTUFQSE9SRVMsCgogICAg
X1NDX1NIQVJFRF9NRU1PUllfT0JKRUNUUywKCiAgICBfU0NfQUlPX0xJU1RJT19NQVgsCgogICAg
X1NDX0FJT19NQVgsCgogICAgX1NDX0FJT19QUklPX0RFTFRBX01BWCwKCiAgICBfU0NfREVMQVlU
SU1FUl9NQVgsCgogICAgX1NDX01RX09QRU5fTUFYLAoKICAgIF9TQ19NUV9QUklPX01BWCwKCiAg
ICBfU0NfVkVSU0lPTiwKCiAgICBfU0NfUEFHRVNJWkUsCgoKICAgIF9TQ19SVFNJR19NQVgsCgog
ICAgX1NDX1NFTV9OU0VNU19NQVgsCgogICAgX1NDX1NFTV9WQUxVRV9NQVgsCgogICAgX1NDX1NJ
R1FVRVVFX01BWCwKCiAgICBfU0NfVElNRVJfTUFYLAoKCgoKICAgIF9TQ19CQ19CQVNFX01BWCwK
CiAgICBfU0NfQkNfRElNX01BWCwKCiAgICBfU0NfQkNfU0NBTEVfTUFYLAoKICAgIF9TQ19CQ19T
VFJJTkdfTUFYLAoKICAgIF9TQ19DT0xMX1dFSUdIVFNfTUFYLAoKICAgIF9TQ19FUVVJVl9DTEFT
U19NQVgsCgogICAgX1NDX0VYUFJfTkVTVF9NQVgsCgogICAgX1NDX0xJTkVfTUFYLAoKICAgIF9T
Q19SRV9EVVBfTUFYLAoKICAgIF9TQ19DSEFSQ0xBU1NfTkFNRV9NQVgsCgoKICAgIF9TQ18yX1ZF
UlNJT04sCgogICAgX1NDXzJfQ19CSU5ELAoKICAgIF9TQ18yX0NfREVWLAoKICAgIF9TQ18yX0ZP
UlRfREVWLAoKICAgIF9TQ18yX0ZPUlRfUlVOLAoKICAgIF9TQ18yX1NXX0RFViwKCiAgICBfU0Nf
Ml9MT0NBTEVERUYsCgoKICAgIF9TQ19QSUksCgogICAgX1NDX1BJSV9YVEksCgogICAgX1NDX1BJ
SV9TT0NLRVQsCgogICAgX1NDX1BJSV9JTlRFUk5FVCwKCiAgICBfU0NfUElJX09TSSwKCiAgICBf
U0NfUE9MTCwKCiAgICBfU0NfU0VMRUNULAoKICAgIF9TQ19VSU9fTUFYSU9WLAoKICAgIF9TQ19Q
SUlfSU5URVJORVRfU1RSRUFNLAoKICAgIF9TQ19QSUlfSU5URVJORVRfREdSQU0sCgogICAgX1ND
X1BJSV9PU0lfQ09UUywKCiAgICBfU0NfUElJX09TSV9DTFRTLAoKICAgIF9TQ19QSUlfT1NJX00s
CgogICAgX1NDX1RfSU9WX01BWCwKCgoKICAgIF9TQ19USFJFQURTLAoKICAgIF9TQ19USFJFQURf
U0FGRV9GVU5DVElPTlMsCgogICAgX1NDX0dFVEdSX1JfU0laRV9NQVgsCgogICAgX1NDX0dFVFBX
X1JfU0laRV9NQVgsCgogICAgX1NDX0xPR0lOX05BTUVfTUFYLAoKICAgIF9TQ19UVFlfTkFNRV9N
QVgsCgogICAgX1NDX1RIUkVBRF9ERVNUUlVDVE9SX0lURVJBVElPTlMsCgogICAgX1NDX1RIUkVB
RF9LRVlTX01BWCwKCiAgICBfU0NfVEhSRUFEX1NUQUNLX01JTiwKCiAgICBfU0NfVEhSRUFEX1RI
UkVBRFNfTUFYLAoKICAgIF9TQ19USFJFQURfQVRUUl9TVEFDS0FERFIsCgogICAgX1NDX1RIUkVB
RF9BVFRSX1NUQUNLU0laRSwKCiAgICBfU0NfVEhSRUFEX1BSSU9SSVRZX1NDSEVEVUxJTkcsCgog
ICAgX1NDX1RIUkVBRF9QUklPX0lOSEVSSVQsCgogICAgX1NDX1RIUkVBRF9QUklPX1BST1RFQ1Qs
CgogICAgX1NDX1RIUkVBRF9QUk9DRVNTX1NIQVJFRCwKCgogICAgX1NDX05QUk9DRVNTT1JTX0NP
TkYsCgogICAgX1NDX05QUk9DRVNTT1JTX09OTE4sCgogICAgX1NDX1BIWVNfUEFHRVMsCgogICAg
X1NDX0FWUEhZU19QQUdFUywKCiAgICBfU0NfQVRFWElUX01BWCwKCiAgICBfU0NfUEFTU19NQVgs
CgoKICAgIF9TQ19YT1BFTl9WRVJTSU9OLAoKICAgIF9TQ19YT1BFTl9YQ1VfVkVSU0lPTiwKCiAg
ICBfU0NfWE9QRU5fVU5JWCwKCiAgICBfU0NfWE9QRU5fQ1JZUFQsCgogICAgX1NDX1hPUEVOX0VO
SF9JMThOLAoKICAgIF9TQ19YT1BFTl9TSE0sCgoKICAgIF9TQ18yX0NIQVJfVEVSTSwKCiAgICBf
U0NfMl9DX1ZFUlNJT04sCgogICAgX1NDXzJfVVBFLAoKCiAgICBfU0NfWE9QRU5fWFBHMiwKCiAg
ICBfU0NfWE9QRU5fWFBHMywKCiAgICBfU0NfWE9QRU5fWFBHNCwKCgogICAgX1NDX0NIQVJfQklU
LAoKICAgIF9TQ19DSEFSX01BWCwKCiAgICBfU0NfQ0hBUl9NSU4sCgogICAgX1NDX0lOVF9NQVgs
CgogICAgX1NDX0lOVF9NSU4sCgogICAgX1NDX0xPTkdfQklULAoKICAgIF9TQ19XT1JEX0JJVCwK
CiAgICBfU0NfTUJfTEVOX01BWCwKCiAgICBfU0NfTlpFUk8sCgogICAgX1NDX1NTSVpFX01BWCwK
CiAgICBfU0NfU0NIQVJfTUFYLAoKICAgIF9TQ19TQ0hBUl9NSU4sCgogICAgX1NDX1NIUlRfTUFY
LAoKICAgIF9TQ19TSFJUX01JTiwKCiAgICBfU0NfVUNIQVJfTUFYLAoKICAgIF9TQ19VSU5UX01B
WCwKCiAgICBfU0NfVUxPTkdfTUFYLAoKICAgIF9TQ19VU0hSVF9NQVgsCgoKICAgIF9TQ19OTF9B
UkdNQVgsCgogICAgX1NDX05MX0xBTkdNQVgsCgogICAgX1NDX05MX01TR01BWCwKCiAgICBfU0Nf
TkxfTk1BWCwKCiAgICBfU0NfTkxfU0VUTUFYLAoKICAgIF9TQ19OTF9URVhUTUFYLAoKCiAgICBf
U0NfWEJTNV9JTFAzMl9PRkYzMiwKCiAgICBfU0NfWEJTNV9JTFAzMl9PRkZCSUcsCgogICAgX1ND
X1hCUzVfTFA2NF9PRkY2NCwKCiAgICBfU0NfWEJTNV9MUEJJR19PRkZCSUcsCgoKICAgIF9TQ19Y
T1BFTl9MRUdBQ1ksCgogICAgX1NDX1hPUEVOX1JFQUxUSU1FLAoKICAgIF9TQ19YT1BFTl9SRUFM
VElNRV9USFJFQURTCgogIH07CiMgNDk4ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDIgMwoKCmV4
dGVybiBsb25nIGludCBwYXRoY29uZiAoX19jb25zdCBjaGFyICpfX3BhdGgsIGludCBfX25hbWUp
IDsKCgpleHRlcm4gbG9uZyBpbnQgZnBhdGhjb25mIChpbnQgX19mZCwgaW50IF9fbmFtZSkgOwoK
CmV4dGVybiBsb25nIGludCBzeXNjb25mIChpbnQgX19uYW1lKSA7CiMgNTE1ICIvdXNyL2luY2x1
ZGUvdW5pc3RkLmgiIDMKZXh0ZXJuIF9fcGlkX3QgX19nZXRwaWQgKHZvaWQpIDsKZXh0ZXJuIF9f
cGlkX3QgZ2V0cGlkICh2b2lkKSA7CgoKZXh0ZXJuIF9fcGlkX3QgZ2V0cHBpZCAodm9pZCkgOwoK
CgoKZXh0ZXJuIF9fcGlkX3QgZ2V0cGdycCAodm9pZCkgOwojIDUzNCAiL3Vzci9pbmNsdWRlL3Vu
aXN0ZC5oIiAzCmV4dGVybiBfX3BpZF90IF9fZ2V0cGdpZCAoX19waWRfdCBfX3BpZCkgOwojIDU0
MyAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzCmV4dGVybiBpbnQgX19zZXRwZ2lkIChfX3BpZF90
IF9fcGlkLCBfX3BpZF90IF9fcGdpZCkgOwpleHRlcm4gaW50IHNldHBnaWQgKF9fcGlkX3QgX19w
aWQsIF9fcGlkX3QgX19wZ2lkKSA7CiMgNTc5ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMKZXh0
ZXJuIF9fcGlkX3Qgc2V0c2lkICh2b2lkKSA7CgoKCgoKCgpleHRlcm4gX191aWRfdCBnZXR1aWQg
KHZvaWQpIDsKCgpleHRlcm4gX191aWRfdCBnZXRldWlkICh2b2lkKSA7CgoKZXh0ZXJuIF9fZ2lk
X3QgZ2V0Z2lkICh2b2lkKSA7CgoKZXh0ZXJuIF9fZ2lkX3QgZ2V0ZWdpZCAodm9pZCkgOwoKCgoK
ZXh0ZXJuIGludCBnZXRncm91cHMgKGludCBfX3NpemUsIF9fZ2lkX3QgX19saXN0W10pIDsKIyA2
MTIgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMwpleHRlcm4gaW50IHNldHVpZCAoX191aWRfdCBf
X3VpZCkgOwojIDYyOSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzCmV4dGVybiBpbnQgc2V0Z2lk
IChfX2dpZF90IF9fZ2lkKSA7CiMgNjQ2ICIvdXNyL2luY2x1ZGUvdW5pc3RkLmgiIDMKZXh0ZXJu
IF9fcGlkX3QgX19mb3JrICh2b2lkKSA7CmV4dGVybiBfX3BpZF90IGZvcmsgKHZvaWQpIDsKIyA2
NjAgIi91c3IvaW5jbHVkZS91bmlzdGQuaCIgMwpleHRlcm4gY2hhciAqdHR5bmFtZSAoaW50IF9f
ZmQpIDsKCgoKZXh0ZXJuIGludCB0dHluYW1lX3IgKGludCBfX2ZkLCBjaGFyICpfX2J1Ziwgc2l6
ZV90IF9fYnVmbGVuKSA7CgoKCmV4dGVybiBpbnQgaXNhdHR5IChpbnQgX19mZCkgOwojIDY3OCAi
L3Vzci9pbmNsdWRlL3VuaXN0ZC5oIiAzCmV4dGVybiBpbnQgbGluayAoX19jb25zdCBjaGFyICpf
X2Zyb20sIF9fY29uc3QgY2hhciAqX190bykgOwojIDY5MSAiL3Vzci9pbmNsdWRlL3VuaXN0ZC5o
IiAzCmV4dGVybiBpbnQgdW5saW5rIChfX2NvbnN0IGNoYXIgKl9fbmFtZSkgOwoKCmV4dGVybiBp
bnQgcm1kaXIgKF9fY29uc3QgY2hhciAqX19wYXRoKSA7CgoKCmV4dGVybiBfX3BpZF90IHRjZ2V0
cGdycCAoaW50IF9fZmQpIDsKCgpleHRlcm4gaW50IHRjc2V0cGdycCAoaW50IF9fZmQsIF9fcGlk
X3QgX19wZ3JwX2lkKSA7CgoKCmV4dGVybiBjaGFyICpnZXRsb2dpbiAodm9pZCkgOwojIDYgIm5v
aXNlLmMiIDIKIyAxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMu
MC9pbmNsdWRlL2xpbWl0cy5oIiAxIDMKIyAxMSAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pNjg2
LXBjLWxpbnV4LWdudS8zLjAvaW5jbHVkZS9saW1pdHMuaCIgMwojIDEgIi91c3IvbG9jYWwvbGli
L2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvc3lzbGltaXRzLmgiIDEgMwoK
CgoKCgojIDEgIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4wL2lu
Y2x1ZGUvbGltaXRzLmgiIDEgMwojIDEzMCAiL3Vzci9sb2NhbC9saWIvZ2NjLWxpYi9pNjg2LXBj
LWxpbnV4LWdudS8zLjAvaW5jbHVkZS9saW1pdHMuaCIgMwojIDEgIi91c3IvaW5jbHVkZS9saW1p
dHMuaCIgMSAzCiMgMjYgIi91c3IvaW5jbHVkZS9saW1pdHMuaCIgMwojIDEgIi91c3IvaW5jbHVk
ZS9mZWF0dXJlcy5oIiAxIDMKIyAyNyAiL3Vzci9pbmNsdWRlL2xpbWl0cy5oIiAyIDMKIyAxMzEg
Ii91c3IvbG9jYWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvbGlt
aXRzLmgiIDIgMwojIDggIi91c3IvbG9jYWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUv
My4wL2luY2x1ZGUvc3lzbGltaXRzLmgiIDIgMwojIDEyICIvdXNyL2xvY2FsL2xpYi9nY2MtbGli
L2k2ODYtcGMtbGludXgtZ251LzMuMC9pbmNsdWRlL2xpbWl0cy5oIiAyIDMKIyA3ICJub2lzZS5j
IiAyCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9pb2N0bC5oIiAxIDMKIyAyMiAiL3Vzci9pbmNsdWRl
L3N5cy9pb2N0bC5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDEgMwojIDIzICIv
dXNyL2luY2x1ZGUvc3lzL2lvY3RsLmgiIDIgMwoKCgoKIyAxICIvdXNyL2luY2x1ZGUvYml0cy9p
b2N0bHMuaCIgMSAzCiMgMjQgIi91c3IvaW5jbHVkZS9iaXRzL2lvY3Rscy5oIiAzCiMgMSAiL3Vz
ci9pbmNsdWRlL2FzbS9pb2N0bHMuaCIgMSAzCgoKCiMgMSAiL3Vzci9pbmNsdWRlL2FzbS9pb2N0
bC5oIiAxIDMKIyA1ICIvdXNyL2luY2x1ZGUvYXNtL2lvY3Rscy5oIiAyIDMKIyAyNSAiL3Vzci9p
bmNsdWRlL2JpdHMvaW9jdGxzLmgiIDIgMwojIDI4ICIvdXNyL2luY2x1ZGUvc3lzL2lvY3RsLmgi
IDIgMwoKCiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvaW9jdGwtdHlwZXMuaCIgMSAzCiMgMjUgIi91
c3IvaW5jbHVkZS9iaXRzL2lvY3RsLXR5cGVzLmgiIDMKIyAxICIvdXNyL2luY2x1ZGUvYXNtL2lv
Y3Rscy5oIiAxIDMKIyAyNiAiL3Vzci9pbmNsdWRlL2JpdHMvaW9jdGwtdHlwZXMuaCIgMiAzCgoK
c3RydWN0IHdpbnNpemUKICB7CiAgICB1bnNpZ25lZCBzaG9ydCBpbnQgd3Nfcm93OwogICAgdW5z
aWduZWQgc2hvcnQgaW50IHdzX2NvbDsKICAgIHVuc2lnbmVkIHNob3J0IGludCB3c194cGl4ZWw7
CiAgICB1bnNpZ25lZCBzaG9ydCBpbnQgd3NfeXBpeGVsOwogIH07CgoKc3RydWN0IHRlcm1pbwog
IHsKICAgIHVuc2lnbmVkIHNob3J0IGludCBjX2lmbGFnOwogICAgdW5zaWduZWQgc2hvcnQgaW50
IGNfb2ZsYWc7CiAgICB1bnNpZ25lZCBzaG9ydCBpbnQgY19jZmxhZzsKICAgIHVuc2lnbmVkIHNo
b3J0IGludCBjX2xmbGFnOwogICAgdW5zaWduZWQgY2hhciBjX2xpbmU7CiAgICB1bnNpZ25lZCBj
aGFyIGNfY2NbOF07Cn07CiMgMzEgIi91c3IvaW5jbHVkZS9zeXMvaW9jdGwuaCIgMiAzCgoKCgoK
CiMgMSAiL3Vzci9pbmNsdWRlL3N5cy90dHlkZWZhdWx0cy5oIiAxIDMKIyAzOCAiL3Vzci9pbmNs
dWRlL3N5cy9pb2N0bC5oIiAyIDMKCgoKCmV4dGVybiBpbnQgaW9jdGwgKGludCBfX2ZkLCB1bnNp
Z25lZCBsb25nIGludCBfX3JlcXVlc3QsIC4uLikgOwojIDggIm5vaXNlLmMiIDIKIyAxICIvdXNy
L2luY2x1ZGUvc3lzL3NvdW5kY2FyZC5oIiAxIDMKIyAxICIvdXNyL2luY2x1ZGUvbGludXgvc291
bmRjYXJkLmgiIDEgMwojIDQwICIvdXNyL2luY2x1ZGUvbGludXgvc291bmRjYXJkLmgiIDMKIyAx
ICIvdXNyL2luY2x1ZGUvbGludXgvaW9jdGwuaCIgMSAzCgoKCiMgMSAiL3Vzci9pbmNsdWRlL2Fz
bS9pb2N0bC5oIiAxIDMKIyA1ICIvdXNyL2luY2x1ZGUvbGludXgvaW9jdGwuaCIgMiAzCiMgNDEg
Ii91c3IvaW5jbHVkZS9saW51eC9zb3VuZGNhcmQuaCIgMiAzCiMgMTQ2ICIvdXNyL2luY2x1ZGUv
bGludXgvc291bmRjYXJkLmgiIDMKdHlwZWRlZiBzdHJ1Y3Qgc3ludGhfY29udHJvbAp7CiAgICAg
ICAgaW50IGRldm5vOwogICAgICAgIGNoYXIgZGF0YVs0MDAwXTsKfXN5bnRoX2NvbnRyb2w7Cgp0
eXBlZGVmIHN0cnVjdCByZW1vdmVfc2FtcGxlCnsKICAgICAgICBpbnQgZGV2bm87CiAgICAgICAg
aW50IGJhbmtubzsKICAgICAgICBpbnQgaW5zdHJubzsKfSByZW1vdmVfc2FtcGxlOwoKdHlwZWRl
ZiBzdHJ1Y3Qgc2VxX2V2ZW50X3JlYyB7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGFy
cls4XTsKfSBzZXFfZXZlbnRfcmVjOwojIDIwMSAiL3Vzci9pbmNsdWRlL2xpbnV4L3NvdW5kY2Fy
ZC5oIiAzCnN0cnVjdCBwYXRjaF9pbmZvIHsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIHNob3J0
IGtleTsKCgoKCiAgICAgICAgICAgICAgICBzaG9ydCBkZXZpY2Vfbm87CiAgICAgICAgICAgICAg
ICBzaG9ydCBpbnN0cl9ubzsKCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgbW9kZTsKIyAy
MzQgIi91c3IvaW5jbHVkZS9saW51eC9zb3VuZGNhcmQuaCIgMwogICAgICAgICAgICAgICAgaW50
IGxlbjsKICAgICAgICAgICAgICAgIGludCBsb29wX3N0YXJ0LCBsb29wX2VuZDsKIyAyNTMgIi91
c3IvaW5jbHVkZS9saW51eC9zb3VuZGNhcmQuaCIgMwogICAgICAgICAgICAgICAgdW5zaWduZWQg
aW50IGJhc2VfZnJlcTsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBiYXNlX25vdGU7CiAg
ICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgaGlnaF9ub3RlOwogICAgICAgICAgICAgICAgdW5z
aWduZWQgaW50IGxvd19ub3RlOwogICAgICAgICAgICAgICAgaW50IHBhbm5pbmc7CiAgICAgICAg
ICAgICAgICBpbnQgZGV0dW5pbmc7CgoKCgogICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBl
bnZfcmF0ZVsgNiBdOwogICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBlbnZfb2Zmc2V0WyA2
IF07CgoKCgoKCgogICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB0cmVtb2xvX3N3ZWVwOwog
ICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB0cmVtb2xvX3JhdGU7CiAgICAgICAgICAgICAg
ICB1bnNpZ25lZCBjaGFyIHRyZW1vbG9fZGVwdGg7CgogICAgICAgICAgICAgICAgdW5zaWduZWQg
Y2hhciB2aWJyYXRvX3N3ZWVwOwogICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciB2aWJyYXRv
X3JhdGU7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIHZpYnJhdG9fZGVwdGg7CgogICAg
ICAgICAgICAgICAgaW50IHNjYWxlX2ZyZXF1ZW5jeTsKICAgICAgICAgICAgICAgIHVuc2lnbmVk
IGludCBzY2FsZV9mYWN0b3I7CgogICAgICAgICAgICAgICAgaW50IHZvbHVtZTsKICAgICAgICAg
ICAgICAgIGludCBmcmFjdGlvbnM7CiAgICAgICAgICAgICAgICBpbnQgcmVzZXJ2ZWQxOwogICAg
ICAgICAgICAgICAgaW50IHNwYXJlWzJdOwogICAgICAgICAgICAgICAgY2hhciBkYXRhWzFdOwog
ICAgICAgIH07CgpzdHJ1Y3Qgc3lzZXhfaW5mbyB7CiAgICAgICAgICAgICAgICBzaG9ydCBrZXk7
CgoKICAgICAgICAgICAgICAgIHNob3J0IGRldmljZV9ubzsKICAgICAgICAgICAgICAgIGludCBs
ZW47CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyIGRhdGFbMV07CiAgICAgICAgfTsKIyA0
NTcgIi91c3IvaW5jbHVkZS9saW51eC9zb3VuZGNhcmQuaCIgMwp0eXBlZGVmIHVuc2lnbmVkIGNo
YXIgc2JpX2luc3RyX2RhdGFbMzJdOwoKc3RydWN0IHNiaV9pbnN0cnVtZW50IHsKICAgICAgICAg
ICAgICAgIHVuc2lnbmVkIHNob3J0IGtleTsKCgogICAgICAgICAgICAgICAgc2hvcnQgZGV2aWNl
OwogICAgICAgICAgICAgICAgaW50IGNoYW5uZWw7CiAgICAgICAgICAgICAgICBzYmlfaW5zdHJf
ZGF0YSBvcGVyYXRvcnM7CiAgICAgICAgfTsKCnN0cnVjdCBzeW50aF9pbmZvIHsKICAgICAgICAg
ICAgICAgIGNoYXIgbmFtZVszMF07CiAgICAgICAgICAgICAgICBpbnQgZGV2aWNlOwogICAgICAg
ICAgICAgICAgaW50IHN5bnRoX3R5cGU7CgoKCgogICAgICAgICAgICAgICAgaW50IHN5bnRoX3N1
YnR5cGU7CiMgNDg1ICIvdXNyL2luY2x1ZGUvbGludXgvc291bmRjYXJkLmgiIDMKICAgICAgICAg
ICAgICAgIGludCBwZXJjX21vZGU7CiAgICAgICAgICAgICAgICBpbnQgbnJfdm9pY2VzOwogICAg
ICAgICAgICAgICAgaW50IG5yX2RydW1zOwogICAgICAgICAgICAgICAgaW50IGluc3RyX2Jhbmtf
c2l6ZTsKICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBjYXBhYmlsaXRpZXM7CgoKCiAgICAg
ICAgICAgICAgICBpbnQgZHVtbWllc1sxOV07CiAgICAgICAgfTsKCnN0cnVjdCBzb3VuZF90aW1l
cl9pbmZvIHsKICAgICAgICAgICAgICAgIGNoYXIgbmFtZVszMl07CiAgICAgICAgICAgICAgICBp
bnQgY2FwczsKICAgICAgICB9OwoKCgpzdHJ1Y3QgbWlkaV9pbmZvIHsKICAgICAgICAgICAgICAg
IGNoYXIgbmFtZVszMF07CiAgICAgICAgICAgICAgICBpbnQgZGV2aWNlOwogICAgICAgICAgICAg
ICAgdW5zaWduZWQgaW50IGNhcGFiaWxpdGllczsKICAgICAgICAgICAgICAgIGludCBkZXZfdHlw
ZTsKICAgICAgICAgICAgICAgIGludCBkdW1taWVzWzE4XTsKICAgICAgICB9OwoKCgoKdHlwZWRl
ZiBzdHJ1Y3QgewogICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciBjbWQ7CiAgICAgICAgICAg
ICAgICBjaGFyIG5yX2FyZ3MsIG5yX3JldHVybnM7CiAgICAgICAgICAgICAgICB1bnNpZ25lZCBj
aGFyIGRhdGFbMzBdOwogICAgICAgIH0gbXB1X2NvbW1hbmRfcmVjOwojIDU1OSAiL3Vzci9pbmNs
dWRlL2xpbnV4L3NvdW5kY2FyZC5oIiAzCnR5cGVkZWYgc3RydWN0IGF1ZGlvX2J1Zl9pbmZvIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZyYWdtZW50czsKICAgICAgICAgICAgICAgICAg
ICAgICAgaW50IGZyYWdzdG90YWw7CiAgICAgICAgICAgICAgICAgICAgICAgIGludCBmcmFnc2l6
ZTsKCiAgICAgICAgICAgICAgICAgICAgICAgIGludCBieXRlczsKCiAgICAgICAgICAgICAgICB9
IGF1ZGlvX2J1Zl9pbmZvOwojIDU5MCAiL3Vzci9pbmNsdWRlL2xpbnV4L3NvdW5kY2FyZC5oIiAz
CnR5cGVkZWYgc3RydWN0IGNvdW50X2luZm8gewogICAgICAgICAgICAgICAgaW50IGJ5dGVzOwog
ICAgICAgICAgICAgICAgaW50IGJsb2NrczsKICAgICAgICAgICAgICAgIGludCBwdHI7CiAgICAg
ICAgfSBjb3VudF9pbmZvOwoKCgoKdHlwZWRlZiBzdHJ1Y3QgYnVmZm1lbV9kZXNjIHsKICAgICAg
ICAgICAgICAgIHVuc2lnbmVkICpidWZmZXI7CiAgICAgICAgICAgICAgICBpbnQgc2l6ZTsKICAg
ICAgICB9IGJ1ZmZtZW1fZGVzYzsKIyA2NTcgIi91c3IvaW5jbHVkZS9saW51eC9zb3VuZGNhcmQu
aCIgMwp0eXBlZGVmIHN0cnVjdCBjb3ByX2J1ZmZlciB7CiAgICAgICAgICAgICAgICBpbnQgY29t
bWFuZDsKICAgICAgICAgICAgICAgIGludCBmbGFnczsKCgoKICAgICAgICAgICAgICAgIGludCBs
ZW47CiAgICAgICAgICAgICAgICBpbnQgb2ZmczsKCiAgICAgICAgICAgICAgICB1bnNpZ25lZCBj
aGFyIGRhdGFbNDAwMF07CiAgICAgICAgfSBjb3ByX2J1ZmZlcjsKCnR5cGVkZWYgc3RydWN0IGNv
cHJfZGVidWdfYnVmIHsKICAgICAgICAgICAgICAgIGludCBjb21tYW5kOwogICAgICAgICAgICAg
ICAgaW50IHBhcm0xOwogICAgICAgICAgICAgICAgaW50IHBhcm0yOwogICAgICAgICAgICAgICAg
aW50IGZsYWdzOwogICAgICAgICAgICAgICAgaW50IGxlbjsKICAgICAgICB9IGNvcHJfZGVidWdf
YnVmOwoKdHlwZWRlZiBzdHJ1Y3QgY29wcl9tc2cgewogICAgICAgICAgICAgICAgaW50IGxlbjsK
ICAgICAgICAgICAgICAgIHVuc2lnbmVkIGNoYXIgZGF0YVs0MDAwXTsKICAgICAgICB9IGNvcHJf
bXNnOwojIDg2NiAiL3Vzci9pbmNsdWRlL2xpbnV4L3NvdW5kY2FyZC5oIiAzCnR5cGVkZWYgc3Ry
dWN0IG1peGVyX2luZm8KewogIGNoYXIgaWRbMTZdOwogIGNoYXIgbmFtZVszMl07CiAgaW50IG1v
ZGlmeV9jb3VudGVyOwogIGludCBmaWxsZXJzWzEwXTsKfSBtaXhlcl9pbmZvOwoKdHlwZWRlZiBz
dHJ1Y3QgX29sZF9taXhlcl9pbmZvCnsKICBjaGFyIGlkWzE2XTsKICBjaGFyIG5hbWVbMzJdOwp9
IF9vbGRfbWl4ZXJfaW5mbzsKIyA4ODkgIi91c3IvaW5jbHVkZS9saW51eC9zb3VuZGNhcmQuaCIg
Mwp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgbWl4ZXJfcmVjb3JkWzEyOF07CiMgOTExICIvdXNyL2lu
Y2x1ZGUvbGludXgvc291bmRjYXJkLmgiIDMKdHlwZWRlZiBzdHJ1Y3QgbWl4ZXJfdm9sX3RhYmxl
IHsKICBpbnQgbnVtOwogIGNoYXIgbmFtZVszMl07CiAgaW50IGxldmVsc1szMl07Cn0gbWl4ZXJf
dm9sX3RhYmxlOwojIDEwMDMgIi91c3IvaW5jbHVkZS9saW51eC9zb3VuZGNhcmQuaCIgMwp2b2lk
IHNlcWJ1Zl9kdW1wKHZvaWQpOwoKZXh0ZXJuIGludCBPU1NfaW5pdChpbnQgc2VxZmQsIGludCBi
dWZsZW4pOwpleHRlcm4gdm9pZCBPU1Nfc2VxYnVmX2R1bXAoaW50IGZkLCB1bnNpZ25lZCBjaGFy
ICpidWYsIGludCBidWZsZW4pOwpleHRlcm4gdm9pZCBPU1Nfc2VxX2FkdmJ1ZihpbnQgbGVuLCBp
bnQgZmQsIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGJ1Zmxlbik7CmV4dGVybiB2b2lkIE9TU19z
ZXFfbmVlZGJ1ZihpbnQgbGVuLCBpbnQgZmQsIHVuc2lnbmVkIGNoYXIgKmJ1ZiwgaW50IGJ1Zmxl
bik7CmV4dGVybiB2b2lkIE9TU19wYXRjaF9jYWNoaW5nKGludCBkZXYsIGludCBjaG4sIGludCBw
YXRjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZkLCB1bnNpZ25lZCBjaGFy
ICpidWYsIGludCBidWZsZW4pOwpleHRlcm4gdm9pZCBPU1NfZHJ1bV9jYWNoaW5nKGludCBkZXYs
IGludCBjaG4sIGludCBwYXRjaCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGZk
LCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBidWZsZW4pOwpleHRlcm4gdm9pZCBPU1Nfd3JpdGVf
cGF0Y2goaW50IGZkLCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBsZW4pOwpleHRlcm4gaW50IE9T
U193cml0ZV9wYXRjaDIoaW50IGZkLCB1bnNpZ25lZCBjaGFyICpidWYsIGludCBsZW4pOwojIDIg
Ii91c3IvaW5jbHVkZS9zeXMvc291bmRjYXJkLmgiIDIgMwojIDkgIm5vaXNlLmMiIDIKIyAxICIv
dXNyL2luY2x1ZGUvc3RkbGliLmgiIDEgMwojIDEwICJub2lzZS5jIiAyCiMgMSAiL3Vzci9pbmNs
dWRlL2ZjbnRsLmgiIDEgMwojIDI2ICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMwojIDEgIi91c3Iv
aW5jbHVkZS9mZWF0dXJlcy5oIiAxIDMKIyAyNyAiL3Vzci9pbmNsdWRlL2ZjbnRsLmgiIDIgMwoK
CgoKCgojIDEgIi91c3IvaW5jbHVkZS9iaXRzL2ZjbnRsLmgiIDEgMwojIDI1ICIvdXNyL2luY2x1
ZGUvYml0cy9mY250bC5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAxIDMKIyAy
NiAiL3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVz
LmgiIDEgMwojIDI3ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIgMwoKCgojIDEgIi91c3Iv
aW5jbHVkZS9iaXRzL3R5cGVzLmgiIDEgMwojIDMxICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgi
IDIgMwojIDQyICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMKdHlwZWRlZiBfX2xvZmZfdCBs
b2ZmX3Q7CgoKCnR5cGVkZWYgX19pbm9fdCBpbm9fdDsKIyA1OCAiL3Vzci9pbmNsdWRlL3N5cy90
eXBlcy5oIiAzCnR5cGVkZWYgX19kZXZfdCBkZXZfdDsKCgoKCnR5cGVkZWYgX19naWRfdCBnaWRf
dDsKCgoKCnR5cGVkZWYgX19tb2RlX3QgbW9kZV90OwoKCgoKdHlwZWRlZiBfX25saW5rX3Qgbmxp
bmtfdDsKCgoKCnR5cGVkZWYgX191aWRfdCB1aWRfdDsKIyA5NiAiL3Vzci9pbmNsdWRlL3N5cy90
eXBlcy5oIiAzCnR5cGVkZWYgX19waWRfdCBwaWRfdDsKIyAxMjMgIi91c3IvaW5jbHVkZS9zeXMv
dHlwZXMuaCIgMwojIDEgIi91c3IvaW5jbHVkZS90aW1lLmgiIDEgMwojIDY4ICIvdXNyL2luY2x1
ZGUvdGltZS5oIiAzCiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMSAzCiMgNjkgIi91
c3IvaW5jbHVkZS90aW1lLmgiIDIgMwoKCnR5cGVkZWYgX190aW1lX3QgdGltZV90OwojIDEyNCAi
L3Vzci9pbmNsdWRlL3N5cy90eXBlcy5oIiAyIDMKCgojIDEgIi91c3IvbG9jYWwvbGliL2djYy1s
aWIvaTY4Ni1wYy1saW51eC1nbnUvMy4wL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwojIDEyNyAiL3Vz
ci9pbmNsdWRlL3N5cy90eXBlcy5oIiAyIDMKIyAxNzAgIi91c3IvaW5jbHVkZS9zeXMvdHlwZXMu
aCIgMwp0eXBlZGVmIGludCBpbnQ4X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1FJX18p
KSk7CnR5cGVkZWYgaW50IGludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18p
KSk7CnR5cGVkZWYgaW50IGludDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJX18p
KSk7CnR5cGVkZWYgaW50IGludDY0X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0RJX18p
KSk7CgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQ4X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9k
ZV9fIChfX1FJX18pKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IHVfaW50MTZfdCBfX2F0dHJpYnV0
ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQzMl90
IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19TSV9fKSkpOwp0eXBlZGVmIHVuc2lnbmVkIGlu
dCB1X2ludDY0X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0RJX18pKSk7Cgp0eXBlZGVm
IGludCByZWdpc3Rlcl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX193b3JkX18pKSk7CiMg
MjA0ICIvdXNyL2luY2x1ZGUvc3lzL3R5cGVzLmgiIDMKdHlwZWRlZiBfX2Jsa2NudF90IGJsa2Nu
dF90Owp0eXBlZGVmIF9fZnNibGtjbnRfdCBmc2Jsa2NudF90Owp0eXBlZGVmIF9fZnNmaWxjbnRf
dCBmc2ZpbGNudF90OwojIDI2ICIvdXNyL2luY2x1ZGUvYml0cy9mY250bC5oIiAyIDMKIyAxMDgg
Ii91c3IvaW5jbHVkZS9iaXRzL2ZjbnRsLmgiIDMKc3RydWN0IGZsb2NrCiAgewogICAgc2hvcnQg
aW50IGxfdHlwZTsKICAgIHNob3J0IGludCBsX3doZW5jZTsKCiAgICBfX29mZl90IGxfc3RhcnQ7
CiAgICBfX29mZl90IGxfbGVuOwoKCgoKICAgIF9fcGlkX3QgbF9waWQ7CiAgfTsKIyAzNCAiL3Vz
ci9pbmNsdWRlL2ZjbnRsLmgiIDIgMwojIDYwICIvdXNyL2luY2x1ZGUvZmNudGwuaCIgMwpleHRl
cm4gaW50IF9fZmNudGwgKGludCBfX2ZkLCBpbnQgX19jbWQsIC4uLikgOwpleHRlcm4gaW50IGZj
bnRsIChpbnQgX19mZCwgaW50IF9fY21kLCAuLi4pIDsKCgoKCmV4dGVybiBpbnQgX19vcGVuIChf
X2NvbnN0IGNoYXIgKl9fZmlsZSwgaW50IF9fb2ZsYWcsIC4uLikgOwoKZXh0ZXJuIGludCBvcGVu
IChfX2NvbnN0IGNoYXIgKl9fZmlsZSwgaW50IF9fb2ZsYWcsIC4uLikgOwojIDg1ICIvdXNyL2lu
Y2x1ZGUvZmNudGwuaCIgMwpleHRlcm4gaW50IGNyZWF0IChfX2NvbnN0IGNoYXIgKl9fZmlsZSwg
X19tb2RlX3QgX19tb2RlKSA7CiMgMTEgIm5vaXNlLmMiIDIKIyAxICIvdXNyL2luY2x1ZGUvdGlt
ZS5oIiAxIDMKIyAyOCAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMwojIDEgIi91c3IvaW5jbHVkZS9m
ZWF0dXJlcy5oIiAxIDMKIyAyOSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMiAzCiMgMzggIi91c3Iv
aW5jbHVkZS90aW1lLmgiIDMKIyAxICIvdXNyL2xvY2FsL2xpYi9nY2MtbGliL2k2ODYtcGMtbGlu
dXgtZ251LzMuMC9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyAzOSAiL3Vzci9pbmNsdWRlL3RpbWUu
aCIgMiAzCgoKCiMgMSAiL3Vzci9pbmNsdWRlL2JpdHMvdGltZS5oIiAxIDMKIyA0MyAiL3Vzci9p
bmNsdWRlL3RpbWUuaCIgMiAzCiMgNTcgIi91c3IvaW5jbHVkZS90aW1lLmgiIDMKIyAxICIvdXNy
L2luY2x1ZGUvYml0cy90eXBlcy5oIiAxIDMKIyA1OCAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMiAz
CgoKdHlwZWRlZiBfX2Nsb2NrX3QgY2xvY2tfdDsKIyA5NSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIg
MwpzdHJ1Y3QgdG0KewogIGludCB0bV9zZWM7CiAgaW50IHRtX21pbjsKICBpbnQgdG1faG91cjsK
ICBpbnQgdG1fbWRheTsKICBpbnQgdG1fbW9uOwogIGludCB0bV95ZWFyOwogIGludCB0bV93ZGF5
OwogIGludCB0bV95ZGF5OwogIGludCB0bV9pc2RzdDsKCgoKCgogIGxvbmcgaW50IF9fdG1fZ210
b2ZmOwogIF9fY29uc3QgY2hhciAqX190bV96b25lOwoKfTsKCgoKCmV4dGVybiBjbG9ja190IGNs
b2NrICh2b2lkKSA7CgoKZXh0ZXJuIHRpbWVfdCB0aW1lICh0aW1lX3QgKl9fdGltZXIpIDsKCgpl
eHRlcm4gZG91YmxlIGRpZmZ0aW1lICh0aW1lX3QgX190aW1lMSwgdGltZV90IF9fdGltZTApCiAg
ICAgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKCmV4dGVybiB0aW1lX3QgbWt0aW1lIChz
dHJ1Y3QgdG0gKl9fdHApIDsKCgoKCgpleHRlcm4gc2l6ZV90IHN0cmZ0aW1lIChjaGFyICpfX3Jl
c3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4c2l6ZSwgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9f
Zm9ybWF0LCBfX2NvbnN0IHN0cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwKSA7CiMgMTQ5ICIvdXNy
L2luY2x1ZGUvdGltZS5oIiAzCmV4dGVybiBzdHJ1Y3QgdG0gKmdtdGltZSAoX19jb25zdCB0aW1l
X3QgKl9fdGltZXIpIDsKCgoKZXh0ZXJuIHN0cnVjdCB0bSAqbG9jYWx0aW1lIChfX2NvbnN0IHRp
bWVfdCAqX190aW1lcikgOwojIDE3MSAiL3Vzci9pbmNsdWRlL3RpbWUuaCIgMwpleHRlcm4gY2hh
ciAqYXNjdGltZSAoX19jb25zdCBzdHJ1Y3QgdG0gKl9fdHApIDsKCgpleHRlcm4gY2hhciAqY3Rp
bWUgKF9fY29uc3QgdGltZV90ICpfX3RpbWVyKSA7CiMgMTkxICIvdXNyL2luY2x1ZGUvdGltZS5o
IiAzCmV4dGVybiBjaGFyICpfX3R6bmFtZVsyXTsKZXh0ZXJuIGludCBfX2RheWxpZ2h0OwpleHRl
cm4gbG9uZyBpbnQgX190aW1lem9uZTsKIyAxMiAibm9pc2UuYyIgMgoKZG91YmxlIGYoaW50IGkp
CnsKCgoKICAgIHByaW50ZigiJWkgIiwgMSk7Cgp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAq
YXJndltdKQp7CiAgICBzcmFuZCh0aW1lKCgodm9pZCAqKTApKSk7CiAgICBzcmFuZDQ4KHRpbWUo
KCh2b2lkICopMCkpKTsKCiAgICBpZiAoYXJnYyAhPSAxKSB7CiAgICAgICAgZXhpdCgxKTsKICAg
IH0KCiAgICBpbnQgZmRvdXQgPSBvcGVuKCIvZGV2L2RzcCIsIDAyKTsKICAgIGlmIChmZG91dCA9
PSAtMSkgewogICAgICAgIHBlcnJvcigib3BlbiIpOwogICAgICAgIGV4aXQoMSk7CiAgICB9CgoK
ICAgIHsKICAgICAgICBpbnQgc2FtcGxlX3JhdGUgPSA0NDAwMDsKICAgICAgICBpbnQgZm9ybWF0
ID0gMHgwMDAwMDAxMDsKICAgICAgICBpbnQgY2hhbm5lbHMgPSAxOwoKICAgICAgICBpZiAoaW9j
dGwoZmRvdXQsICgoKDJVfDFVKSA8PCAoKCgwICs4KSs4KSsxNCkpIHwgKCgoJ1AnKSkgPDwgKDAg
KzgpKSB8ICgoKDIpKSA8PCAwKSB8ICgoc2l6ZW9mKGludCkpIDw8ICgoMCArOCkrOCkpKSwgJnNh
bXBsZV9yYXRlKSB8fAogICAgICAgICAgICBpb2N0bChmZG91dCwgKCgoMlV8MVUpIDw8ICgoKDAg
KzgpKzgpKzE0KSkgfCAoKCgnUCcpKSA8PCAoMCArOCkpIHwgKCgoNSkpIDw8IDApIHwgKChzaXpl
b2YoaW50KSkgPDwgKCgwICs4KSs4KSkpLCAmZm9ybWF0KSB8fAogICAgICAgICAgICBpb2N0bChm
ZG91dCwgKCgoMlV8MVUpIDw8ICgoKDAgKzgpKzgpKzE0KSkgfCAoKCgnUCcpKSA8PCAoMCArOCkp
IHwgKCgoNikpIDw8IDApIHwgKChzaXplb2YoaW50KSkgPDwgKCgwICs4KSs4KSkpLCAmY2hhbm5l
bHMpKSB7CiAgICAgICAgICAgIHBlcnJvcigiaW9jdGwiKTsKICAgICAgICAgICAgZXhpdCgxKTsK
ICAgICAgICB9CiAgICB9CgogICAgc2hvcnQgYnVmWzY1NTM2XTsKCgoKCiAgICBmdGluaXQoKTsK
CiAgICBkb3VibGUgeFs2NTUzNl0sIHlbNjU1MzZdOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCA2
NTUzNjsgaSsrKSB7CiAgICAgICAgeFtpXSA9IChkb3VibGUpIChyYW5kKCkgKiAyIC0gMjE0NzQ4
MzY0NykgLyAyMTQ3NDgzNjQ3OwoKICAgICAgICB5W2ldID0gMC47CiAgICB9CiAgICBmZnQoeCwg
eSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IDY1NTM2OyBpKyspIHsKICAgICAgICB4W2ldICo9
IGYoaSk7CiAgICAgICAgeVtpXSAqPSBmKGkpOwogICAgfQogICAgcmZ0KHgsIHkpOwogICAgZm9y
IChpbnQgaSA9IDA7IGkgPCA2NTUzNjsgaSsrKSB7CiAgICAgICAgYnVmW2ldID0gKHNob3J0KSAo
eFtpXSAqIDMyNzY3KTsKICAgIH0KCiAgICBwcmludGYoIlBsYXlpbmcuLi5cbiIpOwogICAgZm9y
KDs7KXdyaXRlKGZkb3V0LCBidWYsIHNpemVvZiBidWYpOwp9Cg==



More information about the Gcc-bugs mailing list