c/5078: ICE in instantiate_virtual_regs_1, at function.c:3873

georg.wild@gmx.de georg.wild@gmx.de
Tue Dec 11 15:27:00 GMT 2001


>Number:         5078
>Category:       c
>Synopsis:       ICE in instantiate_virtual_regs_1, at function.c:3873
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Tue Dec 11 13:56:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator:     georg.wild@gmx.de
>Release:        latest cvs
>Organization:
>Environment:
glibc-2.2.90
>Description:
Compiling attachment produces ICE!

gcc decode_steim.i
decode_steim.c: In function `decode_steim':
decode_steim.c:231: warning: integer overflow in expression
decode_steim.c:231: warning: integer overflow in expression
decode_steim.c:305: Internal compiler error in instantiate_virtual_regs_1, at function.c:3873
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
>How-To-Repeat:
gcc decode_steim.i
>Fix:

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

IyAxICJkZWNvZGVfc3RlaW0uYyIKIyAxICI8YnVpbHRpbj4iCiMgMSAiPGNvbW1hbmQgbGluZT4i
CiMgMSAiZGVjb2RlX3N0ZWltLmMiCiMgMzUgImRlY29kZV9zdGVpbS5jIgojIDEgIi4uL0luY2x1
ZGUvcmRzZWVkLmgiIDEKIyAxMDUgIi4uL0luY2x1ZGUvcmRzZWVkLmgiCiMgMSAiL3Vzci9sb2Nh
bC9pbmNsdWRlL3N0ZGlvLmgiIDEgMwojIDI4ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RkaW8uaCIg
MwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9mZWF0dXJlcy5oIiAxIDMKIyAyOTEgIi91c3IvbG9j
YWwvaW5jbHVkZS9mZWF0dXJlcy5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N5cy9jZGVm
cy5oIiAxIDMKIyAyOTIgIi91c3IvbG9jYWwvaW5jbHVkZS9mZWF0dXJlcy5oIiAyIDMKIyAzMjAg
Ii91c3IvbG9jYWwvaW5jbHVkZS9mZWF0dXJlcy5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRl
L2dudS9zdHVicy5oIiAxIDMKIyAzMjEgIi91c3IvbG9jYWwvaW5jbHVkZS9mZWF0dXJlcy5oIiAy
IDMKIyAyOSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoKCgoKCiMgMSAiL3Vzci9s
b2NhbC9nY2MvMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVkZS9zdGRk
ZWYuaCIgMSAzCiMgMjAxICIvdXNyL2xvY2FsL2djYy8zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGlu
dXgtZ251LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAzCnR5cGVkZWYgdW5zaWduZWQgaW50IHNpemVf
dDsKIyAzNSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlvLmgiIDIgMwoKIyAxICIvdXNyL2xvY2Fs
L2luY2x1ZGUvYml0cy90eXBlcy5oIiAxIDMKIyAyOSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMv
dHlwZXMuaCIgMwojIDEgIi91c3IvbG9jYWwvZ2NjLzMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51
eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwojIDMwICIvdXNyL2xvY2FsL2luY2x1ZGUv
Yml0cy90eXBlcy5oIiAyIDMKCgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191X2NoYXI7CnR5cGVk
ZWYgdW5zaWduZWQgc2hvcnQgX191X3Nob3J0Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VfaW50
Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgX191X2xvbmc7CgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYg
dW5zaWduZWQgbG9uZyBsb25nIGludCBfX3VfcXVhZF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYg
bG9uZyBsb25nIGludCBfX3F1YWRfdDsKIyA0OSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvdHlw
ZXMuaCIgMwp0eXBlZGVmIHNpZ25lZCBjaGFyIF9faW50OF90Owp0eXBlZGVmIHVuc2lnbmVkIGNo
YXIgX191aW50OF90Owp0eXBlZGVmIHNpZ25lZCBzaG9ydCBpbnQgX19pbnQxNl90Owp0eXBlZGVm
IHVuc2lnbmVkIHNob3J0IGludCBfX3VpbnQxNl90Owp0eXBlZGVmIHNpZ25lZCBpbnQgX19pbnQz
Ml90Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VpbnQzMl90OwoKX19leHRlbnNpb25fXyB0eXBl
ZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50IF9faW50NjRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVm
IHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX191aW50NjRfdDsKCnR5cGVkZWYgX19xdWFkX3QgKl9f
cWFkZHJfdDsKCnR5cGVkZWYgX191X3F1YWRfdCBfX2Rldl90Owp0eXBlZGVmIF9fdV9pbnQgX191
aWRfdDsKdHlwZWRlZiBfX3VfaW50IF9fZ2lkX3Q7CnR5cGVkZWYgX191X2xvbmcgX19pbm9fdDsK
dHlwZWRlZiBfX3VfaW50IF9fbW9kZV90Owp0eXBlZGVmIF9fdV9pbnQgX19ubGlua190Owp0eXBl
ZGVmIGxvbmcgaW50IF9fb2ZmX3Q7CnR5cGVkZWYgX19xdWFkX3QgX19sb2ZmX3Q7CnR5cGVkZWYg
aW50IF9fcGlkX3Q7CnR5cGVkZWYgaW50IF9fc3NpemVfdDsKdHlwZWRlZiBfX3VfbG9uZyBfX3Js
aW1fdDsKdHlwZWRlZiBfX3VfcXVhZF90IF9fcmxpbTY0X3Q7CnR5cGVkZWYgX191X2ludCBfX2lk
X3Q7Cgp0eXBlZGVmIHN0cnVjdAogIHsKICAgIGludCBfX3ZhbFsyXTsKICB9IF9fZnNpZF90OwoK
CnR5cGVkZWYgaW50IF9fZGFkZHJfdDsKdHlwZWRlZiBjaGFyICpfX2NhZGRyX3Q7CnR5cGVkZWYg
bG9uZyBpbnQgX190aW1lX3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdXNlY29uZHNfdDsKdHlw
ZWRlZiBsb25nIGludCBfX3N1c2Vjb25kc190Owp0eXBlZGVmIGxvbmcgaW50IF9fc3dibGtfdDsK
CnR5cGVkZWYgbG9uZyBpbnQgX19jbG9ja190OwoKCnR5cGVkZWYgaW50IF9fY2xvY2tpZF90OwoK
CnR5cGVkZWYgaW50IF9fdGltZXJfdDsKCgoKCgoKdHlwZWRlZiBpbnQgX19rZXlfdDsKCgp0eXBl
ZGVmIHVuc2lnbmVkIHNob3J0IGludCBfX2lwY19waWRfdDsKCgoKdHlwZWRlZiBsb25nIGludCBf
X2Jsa3NpemVfdDsKCgoKCnR5cGVkZWYgbG9uZyBpbnQgX19ibGtjbnRfdDsKdHlwZWRlZiBfX3F1
YWRfdCBfX2Jsa2NudDY0X3Q7CgoKdHlwZWRlZiBfX3VfbG9uZyBfX2ZzYmxrY250X3Q7CnR5cGVk
ZWYgX191X3F1YWRfdCBfX2ZzYmxrY250NjRfdDsKCgp0eXBlZGVmIF9fdV9sb25nIF9fZnNmaWxj
bnRfdDsKdHlwZWRlZiBfX3VfcXVhZF90IF9fZnNmaWxjbnQ2NF90OwoKCnR5cGVkZWYgX191X3F1
YWRfdCBfX2lubzY0X3Q7CgoKdHlwZWRlZiBfX2xvZmZfdCBfX29mZjY0X3Q7CgoKdHlwZWRlZiBs
b25nIGludCBfX3Rfc2NhbGFyX3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgX190X3VzY2Fs
YXJfdDsKCgp0eXBlZGVmIGludCBfX2ludHB0cl90OwoKCnR5cGVkZWYgdW5zaWduZWQgaW50IF9f
c29ja2xlbl90OwoKCgoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMu
aCIgMSAzCiMgMjMgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAzCiMg
MSAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvc2NoZWQuaCIgMSAzCiMgNjggIi91c3IvbG9jYWwv
aW5jbHVkZS9iaXRzL3NjaGVkLmgiIDMKc3RydWN0IF9fc2NoZWRfcGFyYW0KICB7CiAgICBpbnQg
X19zY2hlZF9wcmlvcml0eTsKICB9OwojIDI0ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9wdGhy
ZWFkdHlwZXMuaCIgMiAzCgoKc3RydWN0IF9wdGhyZWFkX2Zhc3Rsb2NrCnsKICBsb25nIGludCBf
X3N0YXR1czsKICBpbnQgX19zcGlubG9jazsKCn07CgoKCnR5cGVkZWYgc3RydWN0IF9wdGhyZWFk
X2Rlc2NyX3N0cnVjdCAqX3B0aHJlYWRfZGVzY3I7CgoKCgoKdHlwZWRlZiBzdHJ1Y3QgX19wdGhy
ZWFkX2F0dHJfcwp7CiAgaW50IF9fZGV0YWNoc3RhdGU7CiAgaW50IF9fc2NoZWRwb2xpY3k7CiAg
c3RydWN0IF9fc2NoZWRfcGFyYW0gX19zY2hlZHBhcmFtOwogIGludCBfX2luaGVyaXRzY2hlZDsK
ICBpbnQgX19zY29wZTsKICBzaXplX3QgX19ndWFyZHNpemU7CiAgaW50IF9fc3RhY2thZGRyX3Nl
dDsKICB2b2lkICpfX3N0YWNrYWRkcjsKICBzaXplX3QgX19zdGFja3NpemU7Cn0gcHRocmVhZF9h
dHRyX3Q7CgoKCnR5cGVkZWYgc3RydWN0CnsKICBzdHJ1Y3QgX3B0aHJlYWRfZmFzdGxvY2sgX19j
X2xvY2s7CiAgX3B0aHJlYWRfZGVzY3IgX19jX3dhaXRpbmc7Cn0gcHRocmVhZF9jb25kX3Q7CgoK
CnR5cGVkZWYgc3RydWN0CnsKICBpbnQgX19kdW1teTsKfSBwdGhyZWFkX2NvbmRhdHRyX3Q7CgoK
dHlwZWRlZiB1bnNpZ25lZCBpbnQgcHRocmVhZF9rZXlfdDsKCgoKCgp0eXBlZGVmIHN0cnVjdAp7
CiAgaW50IF9fbV9yZXNlcnZlZDsKICBpbnQgX19tX2NvdW50OwogIF9wdGhyZWFkX2Rlc2NyIF9f
bV9vd25lcjsKICBpbnQgX19tX2tpbmQ7CiAgc3RydWN0IF9wdGhyZWFkX2Zhc3Rsb2NrIF9fbV9s
b2NrOwp9IHB0aHJlYWRfbXV0ZXhfdDsKCgoKdHlwZWRlZiBzdHJ1Y3QKewogIGludCBfX211dGV4
a2luZDsKfSBwdGhyZWFkX211dGV4YXR0cl90OwoKCgp0eXBlZGVmIGludCBwdGhyZWFkX29uY2Vf
dDsKIyAxNDAgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAzCnR5cGVk
ZWYgdW5zaWduZWQgbG9uZyBpbnQgcHRocmVhZF90OwojIDE0NCAiL3Vzci9sb2NhbC9pbmNsdWRl
L2JpdHMvdHlwZXMuaCIgMiAzCiMgMzcgIi91c3IvbG9jYWwvaW5jbHVkZS9zdGRpby5oIiAyIDMK
IyA0NSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlvLmgiIDMKdHlwZWRlZiBzdHJ1Y3QgX0lPX0ZJ
TEUgRklMRTsKIyA1NSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlvLmgiIDMKdHlwZWRlZiBzdHJ1
Y3QgX0lPX0ZJTEUgX19GSUxFOwojIDY1ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RkaW8uaCIgMwoj
IDEgIi91c3IvbG9jYWwvaW5jbHVkZS9saWJpby5oIiAxIDMKIyAzMiAiL3Vzci9sb2NhbC9pbmNs
dWRlL2xpYmlvLmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvX0dfY29uZmlnLmgiIDEgMwoj
IDE0ICIvdXNyL2xvY2FsL2luY2x1ZGUvX0dfY29uZmlnLmgiIDMKIyAxICIvdXNyL2xvY2FsL2dj
Yy8zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAx
IDMKIyAyOTMgIi91c3IvbG9jYWwvZ2NjLzMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUv
My4xL2luY2x1ZGUvc3RkZGVmLmgiIDMKdHlwZWRlZiBsb25nIGludCB3Y2hhcl90OwojIDMyMCAi
L3Vzci9sb2NhbC9nY2MvMy9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjEvaW5jbHVk
ZS9zdGRkZWYuaCIgMwp0eXBlZGVmIHVuc2lnbmVkIGludCB3aW50X3Q7CiMgMTUgIi91c3IvbG9j
YWwvaW5jbHVkZS9fR19jb25maWcuaCIgMiAzCiMgMjQgIi91c3IvbG9jYWwvaW5jbHVkZS9fR19j
b25maWcuaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS93Y2hhci5oIiAxIDMKIyA0OCAiL3Vz
ci9sb2NhbC9pbmNsdWRlL3djaGFyLmgiIDMKIyAxICIvdXNyL2xvY2FsL2djYy8zL2xpYi9nY2Mt
bGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKIyA0OSAiL3Vz
ci9sb2NhbC9pbmNsdWRlL3djaGFyLmgiIDIgMwoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0
cy93Y2hhci5oIiAxIDMKIyA1MSAiL3Vzci9sb2NhbC9pbmNsdWRlL3djaGFyLmgiIDIgMwojIDY3
ICIvdXNyL2xvY2FsL2luY2x1ZGUvd2NoYXIuaCIgMwp0eXBlZGVmIHN0cnVjdAp7CiAgaW50IF9f
Y291bnQ7CiAgdW5pb24KICB7CiAgICB3aW50X3QgX193Y2g7CiAgICBjaGFyIF9fd2NoYls0XTsK
ICB9IF9fdmFsdWU7Cn0gX19tYnN0YXRlX3Q7CiMgMjUgIi91c3IvbG9jYWwvaW5jbHVkZS9fR19j
b25maWcuaCIgMiAzCgp0eXBlZGVmIHN0cnVjdAp7CiAgX19vZmZfdCBfX3BvczsKICBfX21ic3Rh
dGVfdCBfX3N0YXRlOwp9IF9HX2Zwb3NfdDsKdHlwZWRlZiBzdHJ1Y3QKewogIF9fb2ZmNjRfdCBf
X3BvczsKICBfX21ic3RhdGVfdCBfX3N0YXRlOwp9IF9HX2Zwb3M2NF90OwojIDQ0ICIvdXNyL2xv
Y2FsL2luY2x1ZGUvX0dfY29uZmlnLmgiIDMKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvZ2NvbnYu
aCIgMSAzCiMgMjggIi91c3IvbG9jYWwvaW5jbHVkZS9nY29udi5oIiAzCiMgMSAiL3Vzci9sb2Nh
bC9pbmNsdWRlL3djaGFyLmgiIDEgMwojIDQ4ICIvdXNyL2xvY2FsL2luY2x1ZGUvd2NoYXIuaCIg
MwojIDEgIi91c3IvbG9jYWwvZ2NjLzMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4x
L2luY2x1ZGUvc3RkZGVmLmgiIDEgMwojIDQ5ICIvdXNyL2xvY2FsL2luY2x1ZGUvd2NoYXIuaCIg
MiAzCiMgMjkgIi91c3IvbG9jYWwvaW5jbHVkZS9nY29udi5oIiAyIDMKCgojIDEgIi91c3IvbG9j
YWwvZ2NjLzMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkZGVm
LmgiIDEgMwojIDMyICIvdXNyL2xvY2FsL2luY2x1ZGUvZ2NvbnYuaCIgMiAzCgoKCgoKZW51bQp7
CiAgX19HQ09OVl9PSyA9IDAsCiAgX19HQ09OVl9OT0NPTlYsCiAgX19HQ09OVl9OT0RCLAogIF9f
R0NPTlZfTk9NRU0sCgogIF9fR0NPTlZfRU1QVFlfSU5QVVQsCiAgX19HQ09OVl9GVUxMX09VVFBV
VCwKICBfX0dDT05WX0lMTEVHQUxfSU5QVVQsCiAgX19HQ09OVl9JTkNPTVBMRVRFX0lOUFVULAoK
ICBfX0dDT05WX0lMTEVHQUxfREVTQ1JJUFRPUiwKICBfX0dDT05WX0lOVEVSTkFMX0VSUk9SCn07
CgoKCmVudW0KewogIF9fR0NPTlZfSVNfTEFTVCA9IDB4MDAwMSwKICBfX0dDT05WX0lHTk9SRV9F
UlJPUlMgPSAweDAwMDIKfTsKCgoKc3RydWN0IF9fZ2NvbnZfc3RlcDsKc3RydWN0IF9fZ2NvbnZf
c3RlcF9kYXRhOwpzdHJ1Y3QgX19nY29udl9sb2FkZWRfb2JqZWN0OwpzdHJ1Y3QgX19nY29udl90
cmFuc19kYXRhOwoKCgp0eXBlZGVmIGludCAoKl9fZ2NvbnZfZmN0KSAoc3RydWN0IF9fZ2NvbnZf
c3RlcCAqLCBzdHJ1Y3QgX19nY29udl9zdGVwX2RhdGEgKiwKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIF9fY29uc3QgdW5zaWduZWQgY2hhciAqKiwgX19jb25zdCB1bnNpZ25lZCBjaGFyICos
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBjaGFyICoqLCBzaXplX3QgKiwg
aW50LCBpbnQpOwoKCnR5cGVkZWYgaW50ICgqX19nY29udl9pbml0X2ZjdCkgKHN0cnVjdCBfX2dj
b252X3N0ZXAgKik7CnR5cGVkZWYgdm9pZCAoKl9fZ2NvbnZfZW5kX2ZjdCkgKHN0cnVjdCBfX2dj
b252X3N0ZXAgKik7CgoKCnR5cGVkZWYgaW50ICgqX19nY29udl90cmFuc19mY3QpIChzdHJ1Y3Qg
X19nY29udl9zdGVwICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg
X19nY29udl9zdGVwX2RhdGEgKiwgdm9pZCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgX19jb25zdCB1bnNpZ25lZCBjaGFyICosCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiosCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgY2hhciAqKiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqKTsKCgp0eXBlZGVmIGludCAo
Kl9fZ2NvbnZfdHJhbnNfY29udGV4dF9mY3QpICh2b2lkICosIF9fY29uc3QgdW5zaWduZWQgY2hh
ciAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHVu
c2lnbmVkIGNoYXIgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dW5zaWduZWQgY2hhciAqLCB1bnNpZ25lZCBjaGFyICopOwoKCnR5cGVkZWYgaW50ICgqX19nY29u
dl90cmFuc19xdWVyeV9mY3QpIChfX2NvbnN0IGNoYXIgKiwgX19jb25zdCBjaGFyICoqKiwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqKTsKCgp0eXBlZGVm
IGludCAoKl9fZ2NvbnZfdHJhbnNfaW5pdF9mY3QpICh2b2lkICoqLCBjb25zdCBjaGFyICopOwp0
eXBlZGVmIHZvaWQgKCpfX2djb252X3RyYW5zX2VuZF9mY3QpICh2b2lkICopOwoKc3RydWN0IF9f
Z2NvbnZfdHJhbnNfZGF0YQp7CgogIF9fZ2NvbnZfdHJhbnNfZmN0IF9fdHJhbnNfZmN0OwogIF9f
Z2NvbnZfdHJhbnNfY29udGV4dF9mY3QgX190cmFuc19jb250ZXh0X2ZjdDsKICBfX2djb252X3Ry
YW5zX2VuZF9mY3QgX190cmFuc19lbmRfZmN0OwogIHZvaWQgKl9fZGF0YTsKICBzdHJ1Y3QgX19n
Y29udl90cmFuc19kYXRhICpfX25leHQ7Cn07CgoKCnN0cnVjdCBfX2djb252X3N0ZXAKewogIHN0
cnVjdCBfX2djb252X2xvYWRlZF9vYmplY3QgKl9fc2hsaWJfaGFuZGxlOwogIF9fY29uc3QgY2hh
ciAqX19tb2RuYW1lOwoKICBpbnQgX19jb3VudGVyOwoKICBjaGFyICpfX2Zyb21fbmFtZTsKICBj
aGFyICpfX3RvX25hbWU7CgogIF9fZ2NvbnZfZmN0IF9fZmN0OwogIF9fZ2NvbnZfaW5pdF9mY3Qg
X19pbml0X2ZjdDsKICBfX2djb252X2VuZF9mY3QgX19lbmRfZmN0OwoKCgogIGludCBfX21pbl9u
ZWVkZWRfZnJvbTsKICBpbnQgX19tYXhfbmVlZGVkX2Zyb207CiAgaW50IF9fbWluX25lZWRlZF90
bzsKICBpbnQgX19tYXhfbmVlZGVkX3RvOwoKCiAgaW50IF9fc3RhdGVmdWw7CgogIHZvaWQgKl9f
ZGF0YTsKfTsKCgoKc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRhCnsKICB1bnNpZ25lZCBjaGFyICpf
X291dGJ1ZjsKICB1bnNpZ25lZCBjaGFyICpfX291dGJ1ZmVuZDsKCgoKICBpbnQgX19mbGFnczsK
CgoKICBpbnQgX19pbnZvY2F0aW9uX2NvdW50ZXI7CgoKCiAgaW50IF9faW50ZXJuYWxfdXNlOwoK
ICBfX21ic3RhdGVfdCAqX19zdGF0ZXA7CiAgX19tYnN0YXRlX3QgX19zdGF0ZTsKCgoKICBzdHJ1
Y3QgX19nY29udl90cmFuc19kYXRhICpfX3RyYW5zOwp9OwoKCgp0eXBlZGVmIHN0cnVjdCBfX2dj
b252X2luZm8KewogIHNpemVfdCBfX25zdGVwczsKICBzdHJ1Y3QgX19nY29udl9zdGVwICpfX3N0
ZXBzOwogIF9fZXh0ZW5zaW9uX18gc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRhIF9fZGF0YSBbXTsK
fSAqX19nY29udl90OwojIDQ1ICIvdXNyL2xvY2FsL2luY2x1ZGUvX0dfY29uZmlnLmgiIDIgMwp0
eXBlZGVmIHVuaW9uCnsKICBzdHJ1Y3QgX19nY29udl9pbmZvIF9fY2Q7CiAgc3RydWN0CiAgewog
ICAgc3RydWN0IF9fZ2NvbnZfaW5mbyBfX2NkOwogICAgc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRh
IF9fZGF0YTsKICB9IF9fY29tYmluZWQ7Cn0gX0dfaWNvbnZfdDsKCnR5cGVkZWYgaW50IF9HX2lu
dDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CnR5cGVkZWYgaW50IF9H
X2ludDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJX18pKSk7CnR5cGVkZWYgdW5z
aWduZWQgaW50IF9HX3VpbnQxNl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkp
Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfR191aW50MzJfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2Rl
X18gKF9fU0lfXykpKTsKIyAzMyAiL3Vzci9sb2NhbC9pbmNsdWRlL2xpYmlvLmgiIDIgMwojIDUz
ICIvdXNyL2xvY2FsL2luY2x1ZGUvbGliaW8uaCIgMwojIDEgIi91c3IvbG9jYWwvZ2NjLzMvbGli
L2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUvc3RkYXJnLmgiIDEgMwojIDQz
ICIvdXNyL2xvY2FsL2djYy8zL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMS9pbmNs
dWRlL3N0ZGFyZy5oIiAzCnR5cGVkZWYgX19idWlsdGluX3ZhX2xpc3QgX19nbnVjX3ZhX2xpc3Q7
CiMgNTQgIi91c3IvbG9jYWwvaW5jbHVkZS9saWJpby5oIiAyIDMKIyAxNjAgIi91c3IvbG9jYWwv
aW5jbHVkZS9saWJpby5oIiAzCnN0cnVjdCBfSU9fanVtcF90OyBzdHJ1Y3QgX0lPX0ZJTEU7CiMg
MTcwICIvdXNyL2xvY2FsL2luY2x1ZGUvbGliaW8uaCIgMwp0eXBlZGVmIHZvaWQgX0lPX2xvY2tf
dDsKCgoKCgpzdHJ1Y3QgX0lPX21hcmtlciB7CiAgc3RydWN0IF9JT19tYXJrZXIgKl9uZXh0Owog
IHN0cnVjdCBfSU9fRklMRSAqX3NidWY7CgoKCiAgaW50IF9wb3M7CiMgMTkzICIvdXNyL2xvY2Fs
L2luY2x1ZGUvbGliaW8uaCIgMwp9OwoKCmVudW0gX19jb2RlY3Z0X3Jlc3VsdAp7CiAgX19jb2Rl
Y3Z0X29rLAogIF9fY29kZWN2dF9wYXJ0aWFsLAogIF9fY29kZWN2dF9lcnJvciwKICBfX2NvZGVj
dnRfbm9jb252Cn07CiMgMjYxICIvdXNyL2xvY2FsL2luY2x1ZGUvbGliaW8uaCIgMwpzdHJ1Y3Qg
X0lPX0ZJTEUgewogIGludCBfZmxhZ3M7CgoKCgogIGNoYXIqIF9JT19yZWFkX3B0cjsKICBjaGFy
KiBfSU9fcmVhZF9lbmQ7CiAgY2hhciogX0lPX3JlYWRfYmFzZTsKICBjaGFyKiBfSU9fd3JpdGVf
YmFzZTsKICBjaGFyKiBfSU9fd3JpdGVfcHRyOwogIGNoYXIqIF9JT193cml0ZV9lbmQ7CiAgY2hh
ciogX0lPX2J1Zl9iYXNlOwogIGNoYXIqIF9JT19idWZfZW5kOwoKICBjaGFyICpfSU9fc2F2ZV9i
YXNlOwogIGNoYXIgKl9JT19iYWNrdXBfYmFzZTsKICBjaGFyICpfSU9fc2F2ZV9lbmQ7CgogIHN0
cnVjdCBfSU9fbWFya2VyICpfbWFya2VyczsKCiAgc3RydWN0IF9JT19GSUxFICpfY2hhaW47Cgog
IGludCBfZmlsZW5vOwogIGludCBfYmxrc2l6ZTsKICBfX29mZl90IF9vbGRfb2Zmc2V0OwoKCgog
IHVuc2lnbmVkIHNob3J0IF9jdXJfY29sdW1uOwogIHNpZ25lZCBjaGFyIF92dGFibGVfb2Zmc2V0
OwogIGNoYXIgX3Nob3J0YnVmWzFdOwoKCgogIF9JT19sb2NrX3QgKl9sb2NrOwojIDMwNSAiL3Vz
ci9sb2NhbC9pbmNsdWRlL2xpYmlvLmgiIDMKICBfX29mZjY0X3QgX29mZnNldDsKCgoKCgogIHZv
aWQgKl9fcGFkMTsKICB2b2lkICpfX3BhZDI7CgogIGludCBfbW9kZTsKCiAgY2hhciBfdW51c2Vk
MlsxNSAqIHNpemVvZiAoaW50KSAtIDIgKiBzaXplb2YgKHZvaWQgKildOwoKfTsKCgp0eXBlZGVm
IHN0cnVjdCBfSU9fRklMRSBfSU9fRklMRTsKCgpzdHJ1Y3QgX0lPX0ZJTEVfcGx1czsKCmV4dGVy
biBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZGluXzsKZXh0ZXJuIHN0cnVjdCBfSU9f
RklMRV9wbHVzIF9JT18yXzFfc3Rkb3V0XzsKZXh0ZXJuIHN0cnVjdCBfSU9fRklMRV9wbHVzIF9J
T18yXzFfc3RkZXJyXzsKIyAzNDQgIi91c3IvbG9jYWwvaW5jbHVkZS9saWJpby5oIiAzCnR5cGVk
ZWYgX19zc2l6ZV90IF9faW9fcmVhZF9mbiAodm9pZCAqX19jb29raWUsIGNoYXIgKl9fYnVmLCBz
aXplX3QgX19uYnl0ZXMpOwoKCgoKCgoKdHlwZWRlZiBfX3NzaXplX3QgX19pb193cml0ZV9mbiAo
dm9pZCAqX19jb29raWUsIF9fY29uc3QgY2hhciAqX19idWYsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHNpemVfdCBfX24pOwoKCgoKCgoKdHlwZWRlZiBpbnQgX19pb19zZWVrX2Zu
ICh2b2lkICpfX2Nvb2tpZSwgX19vZmY2NF90ICpfX3BvcywgaW50IF9fdyk7CgoKdHlwZWRlZiBp
bnQgX19pb19jbG9zZV9mbiAodm9pZCAqX19jb29raWUpOwojIDM5NiAiL3Vzci9sb2NhbC9pbmNs
dWRlL2xpYmlvLmgiIDMKZXh0ZXJuIGludCBfX3VuZGVyZmxvdyAoX0lPX0ZJTEUgKikgOwpleHRl
cm4gaW50IF9fdWZsb3cgKF9JT19GSUxFICopIDsKZXh0ZXJuIGludCBfX292ZXJmbG93IChfSU9f
RklMRSAqLCBpbnQpIDsKZXh0ZXJuIHdpbnRfdCBfX3d1bmRlcmZsb3cgKF9JT19GSUxFICopIDsK
ZXh0ZXJuIHdpbnRfdCBfX3d1ZmxvdyAoX0lPX0ZJTEUgKikgOwpleHRlcm4gd2ludF90IF9fd292
ZXJmbG93IChfSU9fRklMRSAqLCB3aW50X3QpIDsKIyA0MjYgIi91c3IvbG9jYWwvaW5jbHVkZS9s
aWJpby5oIiAzCmV4dGVybiBpbnQgX0lPX2dldGMgKF9JT19GSUxFICpfX2ZwKSA7CmV4dGVybiBp
bnQgX0lPX3B1dGMgKGludCBfX2MsIF9JT19GSUxFICpfX2ZwKSA7CmV4dGVybiBpbnQgX0lPX2Zl
b2YgKF9JT19GSUxFICpfX2ZwKSA7CmV4dGVybiBpbnQgX0lPX2ZlcnJvciAoX0lPX0ZJTEUgKl9f
ZnApIDsKCmV4dGVybiBpbnQgX0lPX3BlZWtjX2xvY2tlZCAoX0lPX0ZJTEUgKl9fZnApIDsKCgoK
CgpleHRlcm4gdm9pZCBfSU9fZmxvY2tmaWxlIChfSU9fRklMRSAqKSA7CmV4dGVybiB2b2lkIF9J
T19mdW5sb2NrZmlsZSAoX0lPX0ZJTEUgKikgOwpleHRlcm4gaW50IF9JT19mdHJ5bG9ja2ZpbGUg
KF9JT19GSUxFICopIDsKIyA0NTYgIi91c3IvbG9jYWwvaW5jbHVkZS9saWJpby5oIiAzCmV4dGVy
biBpbnQgX0lPX3Zmc2NhbmYgKF9JT19GSUxFICogX19yZXN0cmljdCwgY29uc3QgY2hhciAqIF9f
cmVzdHJpY3QsCiAgICAgICAgICAgICAgICAgICAgICAgIF9fZ251Y192YV9saXN0LCBpbnQgKl9f
cmVzdHJpY3QpIDsKZXh0ZXJuIGludCBfSU9fdmZwcmludGYgKF9JT19GSUxFICpfX3Jlc3RyaWN0
LCBjb25zdCBjaGFyICpfX3Jlc3RyaWN0LAogICAgICAgICAgICAgICAgICAgICAgICAgX19nbnVj
X3ZhX2xpc3QpIDsKZXh0ZXJuIF9fc3NpemVfdCBfSU9fcGFkbiAoX0lPX0ZJTEUgKiwgaW50LCBf
X3NzaXplX3QpIDsKZXh0ZXJuIHNpemVfdCBfSU9fc2dldG4gKF9JT19GSUxFICosIHZvaWQgKiwg
c2l6ZV90KSA7CgpleHRlcm4gX19vZmY2NF90IF9JT19zZWVrb2ZmIChfSU9fRklMRSAqLCBfX29m
ZjY0X3QsIGludCwgaW50KSA7CmV4dGVybiBfX29mZjY0X3QgX0lPX3NlZWtwb3MgKF9JT19GSUxF
ICosIF9fb2ZmNjRfdCwgaW50KSA7CgpleHRlcm4gdm9pZCBfSU9fZnJlZV9iYWNrdXBfYXJlYSAo
X0lPX0ZJTEUgKikgOwojIDY2ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RkaW8uaCIgMiAzCiMgODAg
Ii91c3IvbG9jYWwvaW5jbHVkZS9zdGRpby5oIiAzCnR5cGVkZWYgX0dfZnBvc190IGZwb3NfdDsK
IyAxMjkgIi91c3IvbG9jYWwvaW5jbHVkZS9zdGRpby5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNs
dWRlL2JpdHMvc3RkaW9fbGltLmgiIDEgMwojIDEzMCAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlv
LmgiIDIgMwoKCgpleHRlcm4gRklMRSAqc3RkaW47CmV4dGVybiBGSUxFICpzdGRvdXQ7CmV4dGVy
biBGSUxFICpzdGRlcnI7CgoKCgoKCmV4dGVybiBpbnQgcmVtb3ZlIChfX2NvbnN0IGNoYXIgKl9f
ZmlsZW5hbWUpIDsKCmV4dGVybiBpbnQgcmVuYW1lIChfX2NvbnN0IGNoYXIgKl9fb2xkLCBfX2Nv
bnN0IGNoYXIgKl9fbmV3KSA7CgoKCgpleHRlcm4gRklMRSAqdG1wZmlsZSAodm9pZCkgOwojIDE2
MSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGNoYXIgKnRtcG5hbSAoY2hh
ciAqX19zKSA7CgoKCgpleHRlcm4gY2hhciAqdG1wbmFtX3IgKGNoYXIgKl9fcykgOwojIDE3OCAi
L3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGNoYXIgKnRlbXBuYW0gKF9fY29u
c3QgY2hhciAqX19kaXIsIF9fY29uc3QgY2hhciAqX19wZngpCiAgICAgX19hdHRyaWJ1dGVfXyAo
KF9fbWFsbG9jX18pKTsKCgoKCmV4dGVybiBpbnQgZmNsb3NlIChGSUxFICpfX3N0cmVhbSkgOwoK
ZXh0ZXJuIGludCBmZmx1c2ggKEZJTEUgKl9fc3RyZWFtKSA7CgoKCmV4dGVybiBpbnQgZmZsdXNo
X3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgOwojIDIwMSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0
ZGlvLmgiIDMKZXh0ZXJuIEZJTEUgKmZvcGVuIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19m
aWxlbmFtZSwKICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19t
b2RlcykgOwoKZXh0ZXJuIEZJTEUgKmZyZW9wZW4gKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X2ZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fbW9kZXMsCiAgICAgICAgICAgICAgICAgICAgICBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFt
KSA7CiMgMjMxICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gRklMRSAqZmRv
cGVuIChpbnQgX19mZCwgX19jb25zdCBjaGFyICpfX21vZGVzKSA7CiMgMjU0ICIvdXNyL2xvY2Fs
L2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gdm9pZCBzZXRidWYgKEZJTEUgKl9fcmVzdHJpY3Qg
X19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYpIDsKCgoKZXh0ZXJuIGludCBzZXR2YnVm
IChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLAogICAg
ICAgICAgICAgICAgICAgIGludCBfX21vZGVzLCBzaXplX3QgX19uKSA7CgoKCgpleHRlcm4gdm9p
ZCBzZXRidWZmZXIgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3Qg
X19idWYsCiAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fc2l6ZSkgOwoKCmV4dGVybiB2
b2lkIHNldGxpbmVidWYgKEZJTEUgKl9fc3RyZWFtKSA7CgoKCgpleHRlcm4gaW50IG15ZnByaW50
ZiAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwKICAgICAgICAgICAgICAgICAgICBfX2NvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwoKZXh0ZXJuIGludCBwcmludGYgKF9f
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7CgpleHRlcm4gaW50IHNwcmlu
dGYgKGNoYXIgKl9fcmVzdHJpY3QgX19zLAogICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7CgoKZXh0ZXJuIGludCB2ZnByaW50ZiAoRklM
RSAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwKICAg
ICAgICAgICAgICAgICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpIDsKCmV4dGVybiBpbnQgdnBy
aW50ZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCBf
X2FyZykKICAgICA7CgpleHRlcm4gaW50IHZzcHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywg
X19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICBf
X2dudWNfdmFfbGlzdCBfX2FyZykgOwoKCgpleHRlcm4gaW50IHNucHJpbnRmIChjaGFyICpfX3Jl
c3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4bGVuLAogICAgICAgICAgICAgICAgICAgICBfX2NvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19m
b3JtYXRfXyAoX19wcmludGZfXywgMywgNCkpKTsKCmV4dGVybiBpbnQgdnNucHJpbnRmIChjaGFy
ICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbWF4bGVuLAogICAgICAgICAgICAgICAgICAgICAg
X19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCBfX2dudWNfdmFfbGlzdCBfX2FyZykK
ICAgICBfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMywgMCkpKTsKIyAz
MjUgIi91c3IvbG9jYWwvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBpbnQgZnNjYW5mIChGSUxF
ICpfX3Jlc3RyaWN0IF9fc3RyZWFtLAogICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpf
X3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIDsKCmV4dGVybiBpbnQgc2NhbmYgKF9fY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7CgpleHRlcm4gaW50IHNzY2FuZiAoX19jb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fcywKICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAq
X19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7CiMgMzUxICIvdXNyL2xvY2FsL2luY2x1ZGUvc3Rk
aW8uaCIgMwpleHRlcm4gaW50IGZnZXRjIChGSUxFICpfX3N0cmVhbSkgOwpleHRlcm4gaW50IGdl
dGMgKEZJTEUgKl9fc3RyZWFtKSA7CgoKZXh0ZXJuIGludCBnZXRjaGFyICh2b2lkKSA7CgoKCgoK
CgpleHRlcm4gaW50IGdldGNfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSA7CmV4dGVybiBpbnQg
Z2V0Y2hhcl91bmxvY2tlZCAodm9pZCkgOwoKCgoKZXh0ZXJuIGludCBmZ2V0Y191bmxvY2tlZCAo
RklMRSAqX19zdHJlYW0pIDsKCgoKCmV4dGVybiBpbnQgZnB1dGMgKGludCBfX2MsIEZJTEUgKl9f
c3RyZWFtKSA7CmV4dGVybiBpbnQgcHV0YyAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pIDsKCgpl
eHRlcm4gaW50IHB1dGNoYXIgKGludCBfX2MpIDsKCgoKCgoKCmV4dGVybiBpbnQgZnB1dGNfdW5s
b2NrZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSA7CgoKCgpleHRlcm4gaW50IHB1dGNfdW5s
b2NrZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSA7CmV4dGVybiBpbnQgcHV0Y2hhcl91bmxv
Y2tlZCAoaW50IF9fYykgOwoKCgoKCmV4dGVybiBpbnQgZ2V0dyAoRklMRSAqX19zdHJlYW0pIDsK
CgpleHRlcm4gaW50IHB1dHcgKGludCBfX3csIEZJTEUgKl9fc3RyZWFtKSA7CgoKCgpleHRlcm4g
Y2hhciAqZmdldHMgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBpbnQgX19uLCBGSUxFICpfX3Jlc3Ry
aWN0IF9fc3RyZWFtKQogICAgIDsKIyA0MTcgIi91c3IvbG9jYWwvaW5jbHVkZS9zdGRpby5oIiAz
CmV4dGVybiBjaGFyICpnZXRzIChjaGFyICpfX3MpIDsKIyA0NDEgIi91c3IvbG9jYWwvaW5jbHVk
ZS9zdGRpby5oIiAzCmV4dGVybiBpbnQgZnB1dHMgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X3MsIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pCiAgICAgOwojIDQ1MSAiL3Vzci9sb2NhbC9p
bmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGludCBwdXRzIChfX2NvbnN0IGNoYXIgKl9fcykgOwoK
CgpleHRlcm4gaW50IHVuZ2V0YyAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pIDsKCgoKZXh0ZXJu
IHNpemVfdCBmcmVhZCAodm9pZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwKICAg
ICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkg
OwoKZXh0ZXJuIHNpemVfdCBmd3JpdGUgKF9fY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX3B0ciwg
c2l6ZV90IF9fc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX24sIEZJTEUgKl9f
cmVzdHJpY3QgX19zKSA7CgoKCmV4dGVybiBzaXplX3QgZnJlYWRfdW5sb2NrZWQgKHZvaWQgKl9f
cmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKZXh0ZXJuIHNpemVf
dCBmd3JpdGVfdW5sb2NrZWQgKF9fY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90
IF9fc2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBfX24sIEZJTEUg
Kl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKCgoKCmV4dGVybiBpbnQgZnNlZWsgKEZJTEUgKl9fc3Ry
ZWFtLCBsb25nIGludCBfX29mZiwgaW50IF9fd2hlbmNlKSA7CgpleHRlcm4gbG9uZyBpbnQgZnRl
bGwgKEZJTEUgKl9fc3RyZWFtKSA7CgpleHRlcm4gdm9pZCByZXdpbmQgKEZJTEUgKl9fc3RyZWFt
KSA7CiMgNDk1ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gaW50IGZnZXRw
b3MgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGZwb3NfdCAqX19yZXN0cmljdCBfX3BvcykK
ICAgICA7CgpleHRlcm4gaW50IGZzZXRwb3MgKEZJTEUgKl9fc3RyZWFtLCBfX2NvbnN0IGZwb3Nf
dCAqX19wb3MpIDsKIyA1MzEgIi91c3IvbG9jYWwvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiB2
b2lkIGNsZWFyZXJyIChGSUxFICpfX3N0cmVhbSkgOwoKZXh0ZXJuIGludCBmZW9mIChGSUxFICpf
X3N0cmVhbSkgOwoKZXh0ZXJuIGludCBmZXJyb3IgKEZJTEUgKl9fc3RyZWFtKSA7CgoKCmV4dGVy
biB2b2lkIGNsZWFyZXJyX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgOwpleHRlcm4gaW50IGZl
b2ZfdW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSA7CmV4dGVybiBpbnQgZmVycm9yX3VubG9ja2Vk
IChGSUxFICpfX3N0cmVhbSkgOwoKCgoKZXh0ZXJuIHZvaWQgcGVycm9yIChfX2NvbnN0IGNoYXIg
Kl9fcykgOwoKCgoKZXh0ZXJuIGludCBzeXNfbmVycjsKZXh0ZXJuIF9fY29uc3QgY2hhciAqX19j
b25zdCBzeXNfZXJybGlzdFtdOwojIDU2MiAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlvLmgiIDMK
ZXh0ZXJuIGludCBmaWxlbm8gKEZJTEUgKl9fc3RyZWFtKSA7CgoKCgpleHRlcm4gaW50IGZpbGVu
b191bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIDsKCgoKCgoKZXh0ZXJuIEZJTEUgKnBvcGVuIChf
X2NvbnN0IGNoYXIgKl9fY29tbWFuZCwgX19jb25zdCBjaGFyICpfX21vZGVzKSA7CgoKZXh0ZXJu
IGludCBwY2xvc2UgKEZJTEUgKl9fc3RyZWFtKSA7CgoKCgoKZXh0ZXJuIGNoYXIgKmN0ZXJtaWQg
KGNoYXIgKl9fcykgOwojIDYwOSAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJu
IHZvaWQgZmxvY2tmaWxlIChGSUxFICpfX3N0cmVhbSkgOwoKCgpleHRlcm4gaW50IGZ0cnlsb2Nr
ZmlsZSAoRklMRSAqX19zdHJlYW0pIDsKCgpleHRlcm4gdm9pZCBmdW5sb2NrZmlsZSAoRklMRSAq
X19zdHJlYW0pIDsKIyA2MzMgIi91c3IvbG9jYWwvaW5jbHVkZS9zdGRpby5oIiAzCgojIDEwNiAi
Li4vSW5jbHVkZS9yZHNlZWQuaCIgMgoKCgoKIyAxICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RyaW5n
LmgiIDEgMwojIDI4ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RyaW5nLmgiIDMKCgoKCgojIDEgIi91
c3IvbG9jYWwvZ2NjLzMvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4xL2luY2x1ZGUv
c3RkZGVmLmgiIDEgMwojIDM0ICIvdXNyL2xvY2FsL2luY2x1ZGUvc3RyaW5nLmgiIDIgMwoKCgpl
eHRlcm4gdm9pZCAqbWVtY3B5ICh2b2lkICpfX3Jlc3RyaWN0IF9fZGVzdCwKICAgICAgICAgICAg
ICAgICAgICAgX19jb25zdCB2b2lkICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19uKSA7CgoK
ZXh0ZXJuIHZvaWQgKm1lbW1vdmUgKHZvaWQgKl9fZGVzdCwgX19jb25zdCB2b2lkICpfX3NyYywg
c2l6ZV90IF9fbikKICAgICA7CgoKCgoKZXh0ZXJuIHZvaWQgKm1lbWNjcHkgKHZvaWQgKl9fcmVz
dHJpY3QgX19kZXN0LCBfX2NvbnN0IHZvaWQgKl9fcmVzdHJpY3QgX19zcmMsCiAgICAgICAgICAg
ICAgICAgICAgICBpbnQgX19jLCBzaXplX3QgX19uKQogICAgIDsKCgoKCmV4dGVybiB2b2lkICpt
ZW1zZXQgKHZvaWQgKl9fcywgaW50IF9fYywgc2l6ZV90IF9fbikgOwoKCmV4dGVybiBpbnQgbWVt
Y21wIChfX2NvbnN0IHZvaWQgKl9fczEsIF9fY29uc3Qgdm9pZCAqX19zMiwgc2l6ZV90IF9fbikK
ICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKCgpleHRlcm4gdm9pZCAqbWVtY2hyIChf
X2NvbnN0IHZvaWQgKl9fcywgaW50IF9fYywgc2l6ZV90IF9fbikKICAgICAgX19hdHRyaWJ1dGVf
XyAoKF9fcHVyZV9fKSk7CiMgNzcgIi91c3IvbG9jYWwvaW5jbHVkZS9zdHJpbmcuaCIgMwpleHRl
cm4gY2hhciAqc3RyY3B5IChjaGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwgX19jb25zdCBjaGFyICpf
X3Jlc3RyaWN0IF9fc3JjKQogICAgIDsKCmV4dGVybiBjaGFyICpzdHJuY3B5IChjaGFyICpfX3Jl
c3RyaWN0IF9fZGVzdCwKICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0
cmljdCBfX3NyYywgc2l6ZV90IF9fbikgOwoKCmV4dGVybiBjaGFyICpzdHJjYXQgKGNoYXIgKl9f
cmVzdHJpY3QgX19kZXN0LCBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMpCiAgICAgOwoK
ZXh0ZXJuIGNoYXIgKnN0cm5jYXQgKGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LCBfX2NvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19zcmMsCiAgICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19uKSA7
CgoKZXh0ZXJuIGludCBzdHJjbXAgKF9fY29uc3QgY2hhciAqX19zMSwgX19jb25zdCBjaGFyICpf
X3MyKQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKZXh0ZXJuIGludCBzdHJuY21w
IChfX2NvbnN0IGNoYXIgKl9fczEsIF9fY29uc3QgY2hhciAqX19zMiwgc2l6ZV90IF9fbikKICAg
ICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKCgpleHRlcm4gaW50IHN0cmNvbGwgKF9fY29u
c3QgY2hhciAqX19zMSwgX19jb25zdCBjaGFyICpfX3MyKQogICAgIF9fYXR0cmlidXRlX18gKChf
X3B1cmVfXykpOwoKZXh0ZXJuIHNpemVfdCBzdHJ4ZnJtIChjaGFyICpfX3Jlc3RyaWN0IF9fZGVz
dCwKICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zcmMs
IHNpemVfdCBfX24pIDsKIyAxMjAgIi91c3IvbG9jYWwvaW5jbHVkZS9zdHJpbmcuaCIgMwpleHRl
cm4gY2hhciAqc3RyZHVwIChfX2NvbnN0IGNoYXIgKl9fcykgX19hdHRyaWJ1dGVfXyAoKF9fbWFs
bG9jX18pKTsKIyAxNTUgIi91c3IvbG9jYWwvaW5jbHVkZS9zdHJpbmcuaCIgMwpleHRlcm4gY2hh
ciAqc3RyY2hyIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYykgX19hdHRyaWJ1dGVfXyAoKF9f
cHVyZV9fKSk7CgpleHRlcm4gY2hhciAqc3RycmNociAoX19jb25zdCBjaGFyICpfX3MsIGludCBf
X2MpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwojIDE2NyAiL3Vzci9sb2NhbC9pbmNsdWRl
L3N0cmluZy5oIiAzCmV4dGVybiBzaXplX3Qgc3RyY3NwbiAoX19jb25zdCBjaGFyICpfX3MsIF9f
Y29uc3QgY2hhciAqX19yZWplY3QpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7CgoK
ZXh0ZXJuIHNpemVfdCBzdHJzcG4gKF9fY29uc3QgY2hhciAqX19zLCBfX2NvbnN0IGNoYXIgKl9f
YWNjZXB0KQogICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKZXh0ZXJuIGNoYXIgKnN0
cnBicmsgKF9fY29uc3QgY2hhciAqX19zLCBfX2NvbnN0IGNoYXIgKl9fYWNjZXB0KQogICAgIF9f
YXR0cmlidXRlX18gKChfX3B1cmVfXykpOwoKZXh0ZXJuIGNoYXIgKnN0cnN0ciAoX19jb25zdCBj
aGFyICpfX2hheXN0YWNrLCBfX2NvbnN0IGNoYXIgKl9fbmVlZGxlKQogICAgIF9fYXR0cmlidXRl
X18gKChfX3B1cmVfXykpOwojIDE4NyAiL3Vzci9sb2NhbC9pbmNsdWRlL3N0cmluZy5oIiAzCmV4
dGVybiBjaGFyICpzdHJ0b2sgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBfX2NvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19kZWxpbSkKICAgICA7CgoKCmV4dGVybiBjaGFyICpfX3N0cnRva19yIChjaGFy
ICpfX3Jlc3RyaWN0IF9fcywKICAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAq
X19yZXN0cmljdCBfX2RlbGltLAogICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVz
dHJpY3QgX19zYXZlX3B0cikgOwoKZXh0ZXJuIGNoYXIgKnN0cnRva19yIChjaGFyICpfX3Jlc3Ry
aWN0IF9fcywgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZGVsaW0sCiAgICAgICAgICAgICAg
ICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19zYXZlX3B0cikgOwojIDIxOCAiL3Vzci9sb2Nh
bC9pbmNsdWRlL3N0cmluZy5oIiAzCmV4dGVybiBzaXplX3Qgc3RybGVuIChfX2NvbnN0IGNoYXIg
Kl9fcykgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7CiMgMjI5ICIvdXNyL2xvY2FsL2luY2x1
ZGUvc3RyaW5nLmgiIDMKZXh0ZXJuIGNoYXIgKnN0cmVycm9yIChpbnQgX19lcnJudW0pIDsKCgoK
ZXh0ZXJuIGNoYXIgKnN0cmVycm9yX3IgKGludCBfX2Vycm51bSwgY2hhciAqX19idWYsIHNpemVf
dCBfX2J1ZmxlbikgOwoKCgoKZXh0ZXJuIHZvaWQgX19iemVybyAodm9pZCAqX19zLCBzaXplX3Qg
X19uKSA7CgoKCmV4dGVybiB2b2lkIGJjb3B5IChfX2NvbnN0IHZvaWQgKl9fc3JjLCB2b2lkICpf
X2Rlc3QsIHNpemVfdCBfX24pIDsKCgpleHRlcm4gdm9pZCBiemVybyAodm9pZCAqX19zLCBzaXpl
X3QgX19uKSA7CgoKZXh0ZXJuIGludCBiY21wIChfX2NvbnN0IHZvaWQgKl9fczEsIF9fY29uc3Qg
dm9pZCAqX19zMiwgc2l6ZV90IF9fbikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsK
CgpleHRlcm4gY2hhciAqaW5kZXggKF9fY29uc3QgY2hhciAqX19zLCBpbnQgX19jKSBfX2F0dHJp
YnV0ZV9fICgoX19wdXJlX18pKTsKCgpleHRlcm4gY2hhciAqcmluZGV4IChfX2NvbnN0IGNoYXIg
Kl9fcywgaW50IF9fYykgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7CgoKCmV4dGVybiBpbnQg
ZmZzIChpbnQgX19pKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CiMgMjcyICIvdXNyL2xv
Y2FsL2luY2x1ZGUvc3RyaW5nLmgiIDMKZXh0ZXJuIGludCBzdHJjYXNlY21wIChfX2NvbnN0IGNo
YXIgKl9fczEsIF9fY29uc3QgY2hhciAqX19zMikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJl
X18pKTsKCgpleHRlcm4gaW50IHN0cm5jYXNlY21wIChfX2NvbnN0IGNoYXIgKl9fczEsIF9fY29u
c3QgY2hhciAqX19zMiwgc2l6ZV90IF9fbikKICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18p
KTsKIyAyOTQgIi91c3IvbG9jYWwvaW5jbHVkZS9zdHJpbmcuaCIgMwpleHRlcm4gY2hhciAqc3Ry
c2VwIChjaGFyICoqX19yZXN0cmljdCBfX3N0cmluZ3AsCiAgICAgICAgICAgICAgICAgICAgIF9f
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2RlbGltKSA7CiMgMzY0ICIvdXNyL2xvY2FsL2luY2x1
ZGUvc3RyaW5nLmgiIDMKCiMgMTExICIuLi9JbmNsdWRlL3Jkc2VlZC5oIiAyCgoKCgojIDEgIi91
c3IvbG9jYWwvaW5jbHVkZS9tYXRoLmgiIDEgMwojIDI5ICIvdXNyL2xvY2FsL2luY2x1ZGUvbWF0
aC5oIiAzCgoKCgojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL2h1Z2VfdmFsLmgiIDEgMwoj
IDM0ICIvdXNyL2xvY2FsL2luY2x1ZGUvbWF0aC5oIiAyIDMKCgoKCgoKIyAxICIvdXNyL2xvY2Fs
L2luY2x1ZGUvYml0cy9tYXRoZGVmLmgiIDEgMwojIDQxICIvdXNyL2xvY2FsL2luY2x1ZGUvbWF0
aC5oIiAyIDMKIyA2MyAiL3Vzci9sb2NhbC9pbmNsdWRlL21hdGguaCIgMwojIDEgIi91c3IvbG9j
YWwvaW5jbHVkZS9iaXRzL21hdGhjYWxscy5oIiAxIDMKIyA1NCAiL3Vzci9sb2NhbC9pbmNsdWRl
L2JpdHMvbWF0aGNhbGxzLmgiIDMKZXh0ZXJuIGRvdWJsZSBhY29zIChkb3VibGUgX194KSA7IGV4
dGVybiBkb3VibGUgX19hY29zIChkb3VibGUgX194KSA7CgpleHRlcm4gZG91YmxlIGFzaW4gKGRv
dWJsZSBfX3gpIDsgZXh0ZXJuIGRvdWJsZSBfX2FzaW4gKGRvdWJsZSBfX3gpIDsKCmV4dGVybiBk
b3VibGUgYXRhbiAoZG91YmxlIF9feCkgOyBleHRlcm4gZG91YmxlIF9fYXRhbiAoZG91YmxlIF9f
eCkgOwoKZXh0ZXJuIGRvdWJsZSBhdGFuMiAoZG91YmxlIF9feSwgZG91YmxlIF9feCkgOyBleHRl
cm4gZG91YmxlIF9fYXRhbjIgKGRvdWJsZSBfX3ksIGRvdWJsZSBfX3gpIDsKCgpleHRlcm4gZG91
YmxlIGNvcyAoZG91YmxlIF9feCkgOyBleHRlcm4gZG91YmxlIF9fY29zIChkb3VibGUgX194KSA7
CgpleHRlcm4gZG91YmxlIHNpbiAoZG91YmxlIF9feCkgOyBleHRlcm4gZG91YmxlIF9fc2luIChk
b3VibGUgX194KSA7CgpleHRlcm4gZG91YmxlIHRhbiAoZG91YmxlIF9feCkgOyBleHRlcm4gZG91
YmxlIF9fdGFuIChkb3VibGUgX194KSA7CiMgNzggIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL21h
dGhjYWxscy5oIiAzCmV4dGVybiBkb3VibGUgY29zaCAoZG91YmxlIF9feCkgOyBleHRlcm4gZG91
YmxlIF9fY29zaCAoZG91YmxlIF9feCkgOwoKZXh0ZXJuIGRvdWJsZSBzaW5oIChkb3VibGUgX194
KSA7IGV4dGVybiBkb3VibGUgX19zaW5oIChkb3VibGUgX194KSA7CgpleHRlcm4gZG91YmxlIHRh
bmggKGRvdWJsZSBfX3gpIDsgZXh0ZXJuIGRvdWJsZSBfX3RhbmggKGRvdWJsZSBfX3gpIDsKCgoK
ZXh0ZXJuIGRvdWJsZSBhY29zaCAoZG91YmxlIF9feCkgOyBleHRlcm4gZG91YmxlIF9fYWNvc2gg
KGRvdWJsZSBfX3gpIDsKCmV4dGVybiBkb3VibGUgYXNpbmggKGRvdWJsZSBfX3gpIDsgZXh0ZXJu
IGRvdWJsZSBfX2FzaW5oIChkb3VibGUgX194KSA7CgpleHRlcm4gZG91YmxlIGF0YW5oIChkb3Vi
bGUgX194KSA7IGV4dGVybiBkb3VibGUgX19hdGFuaCAoZG91YmxlIF9feCkgOwoKCgoKCmV4dGVy
biBkb3VibGUgZXhwIChkb3VibGUgX194KSA7IGV4dGVybiBkb3VibGUgX19leHAgKGRvdWJsZSBf
X3gpIDsKIyAxMDYgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL21hdGhjYWxscy5oIiAzCmV4dGVy
biBkb3VibGUgZnJleHAgKGRvdWJsZSBfX3gsIGludCAqX19leHBvbmVudCkgOyBleHRlcm4gZG91
YmxlIF9fZnJleHAgKGRvdWJsZSBfX3gsIGludCAqX19leHBvbmVudCkgOwoKCmV4dGVybiBkb3Vi
bGUgbGRleHAgKGRvdWJsZSBfX3gsIGludCBfX2V4cG9uZW50KSA7IGV4dGVybiBkb3VibGUgX19s
ZGV4cCAoZG91YmxlIF9feCwgaW50IF9fZXhwb25lbnQpIDsKCgpleHRlcm4gZG91YmxlIGxvZyAo
ZG91YmxlIF9feCkgOyBleHRlcm4gZG91YmxlIF9fbG9nIChkb3VibGUgX194KSA7CgoKZXh0ZXJu
IGRvdWJsZSBsb2cxMCAoZG91YmxlIF9feCkgOyBleHRlcm4gZG91YmxlIF9fbG9nMTAgKGRvdWJs
ZSBfX3gpIDsKCgpleHRlcm4gZG91YmxlIG1vZGYgKGRvdWJsZSBfX3gsIGRvdWJsZSAqX19pcHRy
KSA7IGV4dGVybiBkb3VibGUgX19tb2RmIChkb3VibGUgX194LCBkb3VibGUgKl9faXB0cikgOwoK
CgpleHRlcm4gZG91YmxlIGV4cG0xIChkb3VibGUgX194KSA7IGV4dGVybiBkb3VibGUgX19leHBt
MSAoZG91YmxlIF9feCkgOwoKCmV4dGVybiBkb3VibGUgbG9nMXAgKGRvdWJsZSBfX3gpIDsgZXh0
ZXJuIGRvdWJsZSBfX2xvZzFwIChkb3VibGUgX194KSA7CgoKZXh0ZXJuIGRvdWJsZSBsb2diIChk
b3VibGUgX194KSA7IGV4dGVybiBkb3VibGUgX19sb2diIChkb3VibGUgX194KSA7CiMgMTQzICIv
dXNyL2xvY2FsL2luY2x1ZGUvYml0cy9tYXRoY2FsbHMuaCIgMwpleHRlcm4gZG91YmxlIHBvdyAo
ZG91YmxlIF9feCwgZG91YmxlIF9feSkgOyBleHRlcm4gZG91YmxlIF9fcG93IChkb3VibGUgX194
LCBkb3VibGUgX195KSA7CgoKZXh0ZXJuIGRvdWJsZSBzcXJ0IChkb3VibGUgX194KSA7IGV4dGVy
biBkb3VibGUgX19zcXJ0IChkb3VibGUgX194KSA7CgoKCmV4dGVybiBkb3VibGUgaHlwb3QgKGRv
dWJsZSBfX3gsIGRvdWJsZSBfX3kpIDsgZXh0ZXJuIGRvdWJsZSBfX2h5cG90IChkb3VibGUgX194
LCBkb3VibGUgX195KSA7CgoKCgpleHRlcm4gZG91YmxlIGNicnQgKGRvdWJsZSBfX3gpIDsgZXh0
ZXJuIGRvdWJsZSBfX2NicnQgKGRvdWJsZSBfX3gpIDsKCgoKCgoKZXh0ZXJuIGRvdWJsZSBjZWls
IChkb3VibGUgX194KSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7IGV4dGVybiBkb3VibGUg
X19jZWlsIChkb3VibGUgX194KSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CgoKZXh0ZXJu
IGRvdWJsZSBmYWJzIChkb3VibGUgX194KSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7IGV4
dGVybiBkb3VibGUgX19mYWJzIChkb3VibGUgX194KSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9f
KSk7CgoKZXh0ZXJuIGRvdWJsZSBmbG9vciAoZG91YmxlIF9feCkgX19hdHRyaWJ1dGVfXyAoKF9f
Y29uc3RfXykpOyBleHRlcm4gZG91YmxlIF9fZmxvb3IgKGRvdWJsZSBfX3gpIF9fYXR0cmlidXRl
X18gKChfX2NvbnN0X18pKTsKCgpleHRlcm4gZG91YmxlIGZtb2QgKGRvdWJsZSBfX3gsIGRvdWJs
ZSBfX3kpIDsgZXh0ZXJuIGRvdWJsZSBfX2Ztb2QgKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIDsK
CgoKCmV4dGVybiBpbnQgX19pc2luZiAoZG91YmxlIF9fdmFsdWUpIF9fYXR0cmlidXRlX18gKChf
X2NvbnN0X18pKTsKCgpleHRlcm4gaW50IF9fZmluaXRlIChkb3VibGUgX192YWx1ZSkgX19hdHRy
aWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKCgoKZXh0ZXJuIGludCBpc2luZiAoZG91YmxlIF9fdmFs
dWUpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKCgpleHRlcm4gaW50IGZpbml0ZSAoZG91
YmxlIF9fdmFsdWUpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKCgpleHRlcm4gZG91Ymxl
IGRyZW0gKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIDsgZXh0ZXJuIGRvdWJsZSBfX2RyZW0gKGRv
dWJsZSBfX3gsIGRvdWJsZSBfX3kpIDsKCgoKZXh0ZXJuIGRvdWJsZSBzaWduaWZpY2FuZCAoZG91
YmxlIF9feCkgOyBleHRlcm4gZG91YmxlIF9fc2lnbmlmaWNhbmQgKGRvdWJsZSBfX3gpIDsKCgoK
CmV4dGVybiBkb3VibGUgY29weXNpZ24gKGRvdWJsZSBfX3gsIGRvdWJsZSBfX3kpIF9fYXR0cmli
dXRlX18gKChfX2NvbnN0X18pKTsgZXh0ZXJuIGRvdWJsZSBfX2NvcHlzaWduIChkb3VibGUgX194
LCBkb3VibGUgX195KSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CiMgMjA5ICIvdXNyL2xv
Y2FsL2luY2x1ZGUvYml0cy9tYXRoY2FsbHMuaCIgMwpleHRlcm4gaW50IF9faXNuYW4gKGRvdWJs
ZSBfX3ZhbHVlKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CgoKCmV4dGVybiBpbnQgaXNu
YW4gKGRvdWJsZSBfX3ZhbHVlKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CgoKZXh0ZXJu
IGRvdWJsZSBqMCAoZG91YmxlKSA7IGV4dGVybiBkb3VibGUgX19qMCAoZG91YmxlKSA7CmV4dGVy
biBkb3VibGUgajEgKGRvdWJsZSkgOyBleHRlcm4gZG91YmxlIF9fajEgKGRvdWJsZSkgOwpleHRl
cm4gZG91YmxlIGpuIChpbnQsIGRvdWJsZSkgOyBleHRlcm4gZG91YmxlIF9fam4gKGludCwgZG91
YmxlKSA7CmV4dGVybiBkb3VibGUgeTAgKGRvdWJsZSkgOyBleHRlcm4gZG91YmxlIF9feTAgKGRv
dWJsZSkgOwpleHRlcm4gZG91YmxlIHkxIChkb3VibGUpIDsgZXh0ZXJuIGRvdWJsZSBfX3kxIChk
b3VibGUpIDsKZXh0ZXJuIGRvdWJsZSB5biAoaW50LCBkb3VibGUpIDsgZXh0ZXJuIGRvdWJsZSBf
X3luIChpbnQsIGRvdWJsZSkgOwoKCgoKCmV4dGVybiBkb3VibGUgZXJmIChkb3VibGUpIDsgZXh0
ZXJuIGRvdWJsZSBfX2VyZiAoZG91YmxlKSA7CmV4dGVybiBkb3VibGUgZXJmYyAoZG91YmxlKSA7
IGV4dGVybiBkb3VibGUgX19lcmZjIChkb3VibGUpIDsKZXh0ZXJuIGRvdWJsZSBsZ2FtbWEgKGRv
dWJsZSkgOyBleHRlcm4gZG91YmxlIF9fbGdhbW1hIChkb3VibGUpIDsKIyAyMzggIi91c3IvbG9j
YWwvaW5jbHVkZS9iaXRzL21hdGhjYWxscy5oIiAzCmV4dGVybiBkb3VibGUgZ2FtbWEgKGRvdWJs
ZSkgOyBleHRlcm4gZG91YmxlIF9fZ2FtbWEgKGRvdWJsZSkgOwoKCgoKCgpleHRlcm4gZG91Ymxl
IGxnYW1tYV9yIChkb3VibGUsIGludCAqX19zaWduZ2FtcCkgOyBleHRlcm4gZG91YmxlIF9fbGdh
bW1hX3IgKGRvdWJsZSwgaW50ICpfX3NpZ25nYW1wKSA7CgoKCgoKCmV4dGVybiBkb3VibGUgcmlu
dCAoZG91YmxlIF9feCkgOyBleHRlcm4gZG91YmxlIF9fcmludCAoZG91YmxlIF9feCkgOwoKCmV4
dGVybiBkb3VibGUgbmV4dGFmdGVyIChkb3VibGUgX194LCBkb3VibGUgX195KSBfX2F0dHJpYnV0
ZV9fICgoX19jb25zdF9fKSk7IGV4dGVybiBkb3VibGUgX19uZXh0YWZ0ZXIgKGRvdWJsZSBfX3gs
IGRvdWJsZSBfX3kpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKCgoKCgpleHRlcm4gZG91
YmxlIHJlbWFpbmRlciAoZG91YmxlIF9feCwgZG91YmxlIF9feSkgOyBleHRlcm4gZG91YmxlIF9f
cmVtYWluZGVyIChkb3VibGUgX194LCBkb3VibGUgX195KSA7CgoKCmV4dGVybiBkb3VibGUgc2Nh
bGIgKGRvdWJsZSBfX3gsIGRvdWJsZSBfX24pIDsgZXh0ZXJuIGRvdWJsZSBfX3NjYWxiIChkb3Vi
bGUgX194LCBkb3VibGUgX19uKSA7CgoKCgpleHRlcm4gZG91YmxlIHNjYWxibiAoZG91YmxlIF9f
eCwgaW50IF9fbikgOyBleHRlcm4gZG91YmxlIF9fc2NhbGJuIChkb3VibGUgX194LCBpbnQgX19u
KSA7CgoKCmV4dGVybiBpbnQgaWxvZ2IgKGRvdWJsZSBfX3gpIDsgZXh0ZXJuIGludCBfX2lsb2di
IChkb3VibGUgX194KSA7CiMgNjQgIi91c3IvbG9jYWwvaW5jbHVkZS9tYXRoLmgiIDIgMwojIDgy
ICIvdXNyL2xvY2FsL2luY2x1ZGUvbWF0aC5oIiAzCiMgMSAiL3Vzci9sb2NhbC9pbmNsdWRlL2Jp
dHMvbWF0aGNhbGxzLmgiIDEgMwojIDU0ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9tYXRoY2Fs
bHMuaCIgMwpleHRlcm4gZmxvYXQgYWNvc2YgKGZsb2F0IF9feCkgOyBleHRlcm4gZmxvYXQgX19h
Y29zZiAoZmxvYXQgX194KSA7CgpleHRlcm4gZmxvYXQgYXNpbmYgKGZsb2F0IF9feCkgOyBleHRl
cm4gZmxvYXQgX19hc2luZiAoZmxvYXQgX194KSA7CgpleHRlcm4gZmxvYXQgYXRhbmYgKGZsb2F0
IF9feCkgOyBleHRlcm4gZmxvYXQgX19hdGFuZiAoZmxvYXQgX194KSA7CgpleHRlcm4gZmxvYXQg
YXRhbjJmIChmbG9hdCBfX3ksIGZsb2F0IF9feCkgOyBleHRlcm4gZmxvYXQgX19hdGFuMmYgKGZs
b2F0IF9feSwgZmxvYXQgX194KSA7CgoKZXh0ZXJuIGZsb2F0IGNvc2YgKGZsb2F0IF9feCkgOyBl
eHRlcm4gZmxvYXQgX19jb3NmIChmbG9hdCBfX3gpIDsKCmV4dGVybiBmbG9hdCBzaW5mIChmbG9h
dCBfX3gpIDsgZXh0ZXJuIGZsb2F0IF9fc2luZiAoZmxvYXQgX194KSA7CgpleHRlcm4gZmxvYXQg
dGFuZiAoZmxvYXQgX194KSA7IGV4dGVybiBmbG9hdCBfX3RhbmYgKGZsb2F0IF9feCkgOwojIDc4
ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9tYXRoY2FsbHMuaCIgMwpleHRlcm4gZmxvYXQgY29z
aGYgKGZsb2F0IF9feCkgOyBleHRlcm4gZmxvYXQgX19jb3NoZiAoZmxvYXQgX194KSA7CgpleHRl
cm4gZmxvYXQgc2luaGYgKGZsb2F0IF9feCkgOyBleHRlcm4gZmxvYXQgX19zaW5oZiAoZmxvYXQg
X194KSA7CgpleHRlcm4gZmxvYXQgdGFuaGYgKGZsb2F0IF9feCkgOyBleHRlcm4gZmxvYXQgX190
YW5oZiAoZmxvYXQgX194KSA7CgoKCmV4dGVybiBmbG9hdCBhY29zaGYgKGZsb2F0IF9feCkgOyBl
eHRlcm4gZmxvYXQgX19hY29zaGYgKGZsb2F0IF9feCkgOwoKZXh0ZXJuIGZsb2F0IGFzaW5oZiAo
ZmxvYXQgX194KSA7IGV4dGVybiBmbG9hdCBfX2FzaW5oZiAoZmxvYXQgX194KSA7CgpleHRlcm4g
ZmxvYXQgYXRhbmhmIChmbG9hdCBfX3gpIDsgZXh0ZXJuIGZsb2F0IF9fYXRhbmhmIChmbG9hdCBf
X3gpIDsKCgoKCgpleHRlcm4gZmxvYXQgZXhwZiAoZmxvYXQgX194KSA7IGV4dGVybiBmbG9hdCBf
X2V4cGYgKGZsb2F0IF9feCkgOwojIDEwNiAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvbWF0aGNh
bGxzLmgiIDMKZXh0ZXJuIGZsb2F0IGZyZXhwZiAoZmxvYXQgX194LCBpbnQgKl9fZXhwb25lbnQp
IDsgZXh0ZXJuIGZsb2F0IF9fZnJleHBmIChmbG9hdCBfX3gsIGludCAqX19leHBvbmVudCkgOwoK
CmV4dGVybiBmbG9hdCBsZGV4cGYgKGZsb2F0IF9feCwgaW50IF9fZXhwb25lbnQpIDsgZXh0ZXJu
IGZsb2F0IF9fbGRleHBmIChmbG9hdCBfX3gsIGludCBfX2V4cG9uZW50KSA7CgoKZXh0ZXJuIGZs
b2F0IGxvZ2YgKGZsb2F0IF9feCkgOyBleHRlcm4gZmxvYXQgX19sb2dmIChmbG9hdCBfX3gpIDsK
CgpleHRlcm4gZmxvYXQgbG9nMTBmIChmbG9hdCBfX3gpIDsgZXh0ZXJuIGZsb2F0IF9fbG9nMTBm
IChmbG9hdCBfX3gpIDsKCgpleHRlcm4gZmxvYXQgbW9kZmYgKGZsb2F0IF9feCwgZmxvYXQgKl9f
aXB0cikgOyBleHRlcm4gZmxvYXQgX19tb2RmZiAoZmxvYXQgX194LCBmbG9hdCAqX19pcHRyKSA7
CgoKCmV4dGVybiBmbG9hdCBleHBtMWYgKGZsb2F0IF9feCkgOyBleHRlcm4gZmxvYXQgX19leHBt
MWYgKGZsb2F0IF9feCkgOwoKCmV4dGVybiBmbG9hdCBsb2cxcGYgKGZsb2F0IF9feCkgOyBleHRl
cm4gZmxvYXQgX19sb2cxcGYgKGZsb2F0IF9feCkgOwoKCmV4dGVybiBmbG9hdCBsb2diZiAoZmxv
YXQgX194KSA7IGV4dGVybiBmbG9hdCBfX2xvZ2JmIChmbG9hdCBfX3gpIDsKIyAxNDMgIi91c3Iv
bG9jYWwvaW5jbHVkZS9iaXRzL21hdGhjYWxscy5oIiAzCmV4dGVybiBmbG9hdCBwb3dmIChmbG9h
dCBfX3gsIGZsb2F0IF9feSkgOyBleHRlcm4gZmxvYXQgX19wb3dmIChmbG9hdCBfX3gsIGZsb2F0
IF9feSkgOwoKCmV4dGVybiBmbG9hdCBzcXJ0ZiAoZmxvYXQgX194KSA7IGV4dGVybiBmbG9hdCBf
X3NxcnRmIChmbG9hdCBfX3gpIDsKCgoKZXh0ZXJuIGZsb2F0IGh5cG90ZiAoZmxvYXQgX194LCBm
bG9hdCBfX3kpIDsgZXh0ZXJuIGZsb2F0IF9faHlwb3RmIChmbG9hdCBfX3gsIGZsb2F0IF9feSkg
OwoKCgoKZXh0ZXJuIGZsb2F0IGNicnRmIChmbG9hdCBfX3gpIDsgZXh0ZXJuIGZsb2F0IF9fY2Jy
dGYgKGZsb2F0IF9feCkgOwoKCgoKCgpleHRlcm4gZmxvYXQgY2VpbGYgKGZsb2F0IF9feCkgX19h
dHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOyBleHRlcm4gZmxvYXQgX19jZWlsZiAoZmxvYXQgX194
KSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CgoKZXh0ZXJuIGZsb2F0IGZhYnNmIChmbG9h
dCBfX3gpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsgZXh0ZXJuIGZsb2F0IF9fZmFic2Yg
KGZsb2F0IF9feCkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKCmV4dGVybiBmbG9hdCBm
bG9vcmYgKGZsb2F0IF9feCkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOyBleHRlcm4gZmxv
YXQgX19mbG9vcmYgKGZsb2F0IF9feCkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKCmV4
dGVybiBmbG9hdCBmbW9kZiAoZmxvYXQgX194LCBmbG9hdCBfX3kpIDsgZXh0ZXJuIGZsb2F0IF9f
Zm1vZGYgKGZsb2F0IF9feCwgZmxvYXQgX195KSA7CgoKCgpleHRlcm4gaW50IF9faXNpbmZmIChm
bG9hdCBfX3ZhbHVlKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CgoKZXh0ZXJuIGludCBf
X2Zpbml0ZWYgKGZsb2F0IF9fdmFsdWUpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKCgoK
CmV4dGVybiBpbnQgaXNpbmZmIChmbG9hdCBfX3ZhbHVlKSBfX2F0dHJpYnV0ZV9fICgoX19jb25z
dF9fKSk7CgoKZXh0ZXJuIGludCBmaW5pdGVmIChmbG9hdCBfX3ZhbHVlKSBfX2F0dHJpYnV0ZV9f
ICgoX19jb25zdF9fKSk7CgoKZXh0ZXJuIGZsb2F0IGRyZW1mIChmbG9hdCBfX3gsIGZsb2F0IF9f
eSkgOyBleHRlcm4gZmxvYXQgX19kcmVtZiAoZmxvYXQgX194LCBmbG9hdCBfX3kpIDsKCgoKZXh0
ZXJuIGZsb2F0IHNpZ25pZmljYW5kZiAoZmxvYXQgX194KSA7IGV4dGVybiBmbG9hdCBfX3NpZ25p
ZmljYW5kZiAoZmxvYXQgX194KSA7CgoKCgpleHRlcm4gZmxvYXQgY29weXNpZ25mIChmbG9hdCBf
X3gsIGZsb2F0IF9feSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOyBleHRlcm4gZmxvYXQg
X19jb3B5c2lnbmYgKGZsb2F0IF9feCwgZmxvYXQgX195KSBfX2F0dHJpYnV0ZV9fICgoX19jb25z
dF9fKSk7CiMgMjA5ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9tYXRoY2FsbHMuaCIgMwpleHRl
cm4gaW50IF9faXNuYW5mIChmbG9hdCBfX3ZhbHVlKSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9f
KSk7CgoKCmV4dGVybiBpbnQgaXNuYW5mIChmbG9hdCBfX3ZhbHVlKSBfX2F0dHJpYnV0ZV9fICgo
X19jb25zdF9fKSk7CgoKZXh0ZXJuIGZsb2F0IGowZiAoZmxvYXQpIDsgZXh0ZXJuIGZsb2F0IF9f
ajBmIChmbG9hdCkgOwpleHRlcm4gZmxvYXQgajFmIChmbG9hdCkgOyBleHRlcm4gZmxvYXQgX19q
MWYgKGZsb2F0KSA7CmV4dGVybiBmbG9hdCBqbmYgKGludCwgZmxvYXQpIDsgZXh0ZXJuIGZsb2F0
IF9fam5mIChpbnQsIGZsb2F0KSA7CmV4dGVybiBmbG9hdCB5MGYgKGZsb2F0KSA7IGV4dGVybiBm
bG9hdCBfX3kwZiAoZmxvYXQpIDsKZXh0ZXJuIGZsb2F0IHkxZiAoZmxvYXQpIDsgZXh0ZXJuIGZs
b2F0IF9feTFmIChmbG9hdCkgOwpleHRlcm4gZmxvYXQgeW5mIChpbnQsIGZsb2F0KSA7IGV4dGVy
biBmbG9hdCBfX3luZiAoaW50LCBmbG9hdCkgOwoKCgoKCmV4dGVybiBmbG9hdCBlcmZmIChmbG9h
dCkgOyBleHRlcm4gZmxvYXQgX19lcmZmIChmbG9hdCkgOwpleHRlcm4gZmxvYXQgZXJmY2YgKGZs
b2F0KSA7IGV4dGVybiBmbG9hdCBfX2VyZmNmIChmbG9hdCkgOwpleHRlcm4gZmxvYXQgbGdhbW1h
ZiAoZmxvYXQpIDsgZXh0ZXJuIGZsb2F0IF9fbGdhbW1hZiAoZmxvYXQpIDsKIyAyMzggIi91c3Iv
bG9jYWwvaW5jbHVkZS9iaXRzL21hdGhjYWxscy5oIiAzCmV4dGVybiBmbG9hdCBnYW1tYWYgKGZs
b2F0KSA7IGV4dGVybiBmbG9hdCBfX2dhbW1hZiAoZmxvYXQpIDsKCgoKCgoKZXh0ZXJuIGZsb2F0
IGxnYW1tYWZfciAoZmxvYXQsIGludCAqX19zaWduZ2FtcCkgOyBleHRlcm4gZmxvYXQgX19sZ2Ft
bWFmX3IgKGZsb2F0LCBpbnQgKl9fc2lnbmdhbXApIDsKCgoKCgoKZXh0ZXJuIGZsb2F0IHJpbnRm
IChmbG9hdCBfX3gpIDsgZXh0ZXJuIGZsb2F0IF9fcmludGYgKGZsb2F0IF9feCkgOwoKCmV4dGVy
biBmbG9hdCBuZXh0YWZ0ZXJmIChmbG9hdCBfX3gsIGZsb2F0IF9feSkgX19hdHRyaWJ1dGVfXyAo
KF9fY29uc3RfXykpOyBleHRlcm4gZmxvYXQgX19uZXh0YWZ0ZXJmIChmbG9hdCBfX3gsIGZsb2F0
IF9feSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKCgoKCmV4dGVybiBmbG9hdCByZW1h
aW5kZXJmIChmbG9hdCBfX3gsIGZsb2F0IF9feSkgOyBleHRlcm4gZmxvYXQgX19yZW1haW5kZXJm
IChmbG9hdCBfX3gsIGZsb2F0IF9feSkgOwoKCgpleHRlcm4gZmxvYXQgc2NhbGJmIChmbG9hdCBf
X3gsIGZsb2F0IF9fbikgOyBleHRlcm4gZmxvYXQgX19zY2FsYmYgKGZsb2F0IF9feCwgZmxvYXQg
X19uKSA7CgoKCgpleHRlcm4gZmxvYXQgc2NhbGJuZiAoZmxvYXQgX194LCBpbnQgX19uKSA7IGV4
dGVybiBmbG9hdCBfX3NjYWxibmYgKGZsb2F0IF9feCwgaW50IF9fbikgOwoKCgpleHRlcm4gaW50
IGlsb2diZiAoZmxvYXQgX194KSA7IGV4dGVybiBpbnQgX19pbG9nYmYgKGZsb2F0IF9feCkgOwoj
IDgzICIvdXNyL2xvY2FsL2luY2x1ZGUvbWF0aC5oIiAyIDMKIyA5OSAiL3Vzci9sb2NhbC9pbmNs
dWRlL21hdGguaCIgMwojIDEgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL21hdGhjYWxscy5oIiAx
IDMKIyA1NCAiL3Vzci9sb2NhbC9pbmNsdWRlL2JpdHMvbWF0aGNhbGxzLmgiIDMKZXh0ZXJuIGxv
bmcgZG91YmxlIGFjb3NsIChsb25nIGRvdWJsZSBfX3gpIDsgZXh0ZXJuIGxvbmcgZG91YmxlIF9f
YWNvc2wgKGxvbmcgZG91YmxlIF9feCkgOwoKZXh0ZXJuIGxvbmcgZG91YmxlIGFzaW5sIChsb25n
IGRvdWJsZSBfX3gpIDsgZXh0ZXJuIGxvbmcgZG91YmxlIF9fYXNpbmwgKGxvbmcgZG91YmxlIF9f
eCkgOwoKZXh0ZXJuIGxvbmcgZG91YmxlIGF0YW5sIChsb25nIGRvdWJsZSBfX3gpIDsgZXh0ZXJu
IGxvbmcgZG91YmxlIF9fYXRhbmwgKGxvbmcgZG91YmxlIF9feCkgOwoKZXh0ZXJuIGxvbmcgZG91
YmxlIGF0YW4ybCAobG9uZyBkb3VibGUgX195LCBsb25nIGRvdWJsZSBfX3gpIDsgZXh0ZXJuIGxv
bmcgZG91YmxlIF9fYXRhbjJsIChsb25nIGRvdWJsZSBfX3ksIGxvbmcgZG91YmxlIF9feCkgOwoK
CmV4dGVybiBsb25nIGRvdWJsZSBjb3NsIChsb25nIGRvdWJsZSBfX3gpIDsgZXh0ZXJuIGxvbmcg
ZG91YmxlIF9fY29zbCAobG9uZyBkb3VibGUgX194KSA7CgpleHRlcm4gbG9uZyBkb3VibGUgc2lu
bCAobG9uZyBkb3VibGUgX194KSA7IGV4dGVybiBsb25nIGRvdWJsZSBfX3NpbmwgKGxvbmcgZG91
YmxlIF9feCkgOwoKZXh0ZXJuIGxvbmcgZG91YmxlIHRhbmwgKGxvbmcgZG91YmxlIF9feCkgOyBl
eHRlcm4gbG9uZyBkb3VibGUgX190YW5sIChsb25nIGRvdWJsZSBfX3gpIDsKIyA3OCAiL3Vzci9s
b2NhbC9pbmNsdWRlL2JpdHMvbWF0aGNhbGxzLmgiIDMKZXh0ZXJuIGxvbmcgZG91YmxlIGNvc2hs
IChsb25nIGRvdWJsZSBfX3gpIDsgZXh0ZXJuIGxvbmcgZG91YmxlIF9fY29zaGwgKGxvbmcgZG91
YmxlIF9feCkgOwoKZXh0ZXJuIGxvbmcgZG91YmxlIHNpbmhsIChsb25nIGRvdWJsZSBfX3gpIDsg
ZXh0ZXJuIGxvbmcgZG91YmxlIF9fc2luaGwgKGxvbmcgZG91YmxlIF9feCkgOwoKZXh0ZXJuIGxv
bmcgZG91YmxlIHRhbmhsIChsb25nIGRvdWJsZSBfX3gpIDsgZXh0ZXJuIGxvbmcgZG91YmxlIF9f
dGFuaGwgKGxvbmcgZG91YmxlIF9feCkgOwoKCgpleHRlcm4gbG9uZyBkb3VibGUgYWNvc2hsIChs
b25nIGRvdWJsZSBfX3gpIDsgZXh0ZXJuIGxvbmcgZG91YmxlIF9fYWNvc2hsIChsb25nIGRvdWJs
ZSBfX3gpIDsKCmV4dGVybiBsb25nIGRvdWJsZSBhc2luaGwgKGxvbmcgZG91YmxlIF9feCkgOyBl
eHRlcm4gbG9uZyBkb3VibGUgX19hc2luaGwgKGxvbmcgZG91YmxlIF9feCkgOwoKZXh0ZXJuIGxv
bmcgZG91YmxlIGF0YW5obCAobG9uZyBkb3VibGUgX194KSA7IGV4dGVybiBsb25nIGRvdWJsZSBf
X2F0YW5obCAobG9uZyBkb3VibGUgX194KSA7CgoKCgoKZXh0ZXJuIGxvbmcgZG91YmxlIGV4cGwg
KGxvbmcgZG91YmxlIF9feCkgOyBleHRlcm4gbG9uZyBkb3VibGUgX19leHBsIChsb25nIGRvdWJs
ZSBfX3gpIDsKIyAxMDYgIi91c3IvbG9jYWwvaW5jbHVkZS9iaXRzL21hdGhjYWxscy5oIiAzCmV4
dGVybiBsb25nIGRvdWJsZSBmcmV4cGwgKGxvbmcgZG91YmxlIF9feCwgaW50ICpfX2V4cG9uZW50
KSA7IGV4dGVybiBsb25nIGRvdWJsZSBfX2ZyZXhwbCAobG9uZyBkb3VibGUgX194LCBpbnQgKl9f
ZXhwb25lbnQpIDsKCgpleHRlcm4gbG9uZyBkb3VibGUgbGRleHBsIChsb25nIGRvdWJsZSBfX3gs
IGludCBfX2V4cG9uZW50KSA7IGV4dGVybiBsb25nIGRvdWJsZSBfX2xkZXhwbCAobG9uZyBkb3Vi
bGUgX194LCBpbnQgX19leHBvbmVudCkgOwoKCmV4dGVybiBsb25nIGRvdWJsZSBsb2dsIChsb25n
IGRvdWJsZSBfX3gpIDsgZXh0ZXJuIGxvbmcgZG91YmxlIF9fbG9nbCAobG9uZyBkb3VibGUgX194
KSA7CgoKZXh0ZXJuIGxvbmcgZG91YmxlIGxvZzEwbCAobG9uZyBkb3VibGUgX194KSA7IGV4dGVy
biBsb25nIGRvdWJsZSBfX2xvZzEwbCAobG9uZyBkb3VibGUgX194KSA7CgoKZXh0ZXJuIGxvbmcg
ZG91YmxlIG1vZGZsIChsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlICpfX2lwdHIpIDsgZXh0
ZXJuIGxvbmcgZG91YmxlIF9fbW9kZmwgKGxvbmcgZG91YmxlIF9feCwgbG9uZyBkb3VibGUgKl9f
aXB0cikgOwoKCgpleHRlcm4gbG9uZyBkb3VibGUgZXhwbTFsIChsb25nIGRvdWJsZSBfX3gpIDsg
ZXh0ZXJuIGxvbmcgZG91YmxlIF9fZXhwbTFsIChsb25nIGRvdWJsZSBfX3gpIDsKCgpleHRlcm4g
bG9uZyBkb3VibGUgbG9nMXBsIChsb25nIGRvdWJsZSBfX3gpIDsgZXh0ZXJuIGxvbmcgZG91Ymxl
IF9fbG9nMXBsIChsb25nIGRvdWJsZSBfX3gpIDsKCgpleHRlcm4gbG9uZyBkb3VibGUgbG9nYmwg
KGxvbmcgZG91YmxlIF9feCkgOyBleHRlcm4gbG9uZyBkb3VibGUgX19sb2dibCAobG9uZyBkb3Vi
bGUgX194KSA7CiMgMTQzICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9tYXRoY2FsbHMuaCIgMwpl
eHRlcm4gbG9uZyBkb3VibGUgcG93bCAobG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSBfX3kp
IDsgZXh0ZXJuIGxvbmcgZG91YmxlIF9fcG93bCAobG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJs
ZSBfX3kpIDsKCgpleHRlcm4gbG9uZyBkb3VibGUgc3FydGwgKGxvbmcgZG91YmxlIF9feCkgOyBl
eHRlcm4gbG9uZyBkb3VibGUgX19zcXJ0bCAobG9uZyBkb3VibGUgX194KSA7CgoKCmV4dGVybiBs
b25nIGRvdWJsZSBoeXBvdGwgKGxvbmcgZG91YmxlIF9feCwgbG9uZyBkb3VibGUgX195KSA7IGV4
dGVybiBsb25nIGRvdWJsZSBfX2h5cG90bCAobG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSBf
X3kpIDsKCgoKCmV4dGVybiBsb25nIGRvdWJsZSBjYnJ0bCAobG9uZyBkb3VibGUgX194KSA7IGV4
dGVybiBsb25nIGRvdWJsZSBfX2NicnRsIChsb25nIGRvdWJsZSBfX3gpIDsKCgoKCgoKZXh0ZXJu
IGxvbmcgZG91YmxlIGNlaWxsIChsb25nIGRvdWJsZSBfX3gpIF9fYXR0cmlidXRlX18gKChfX2Nv
bnN0X18pKTsgZXh0ZXJuIGxvbmcgZG91YmxlIF9fY2VpbGwgKGxvbmcgZG91YmxlIF9feCkgX19h
dHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKCmV4dGVybiBsb25nIGRvdWJsZSBmYWJzbCAobG9u
ZyBkb3VibGUgX194KSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7IGV4dGVybiBsb25nIGRv
dWJsZSBfX2ZhYnNsIChsb25nIGRvdWJsZSBfX3gpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18p
KTsKCgpleHRlcm4gbG9uZyBkb3VibGUgZmxvb3JsIChsb25nIGRvdWJsZSBfX3gpIF9fYXR0cmli
dXRlX18gKChfX2NvbnN0X18pKTsgZXh0ZXJuIGxvbmcgZG91YmxlIF9fZmxvb3JsIChsb25nIGRv
dWJsZSBfX3gpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKCgpleHRlcm4gbG9uZyBkb3Vi
bGUgZm1vZGwgKGxvbmcgZG91YmxlIF9feCwgbG9uZyBkb3VibGUgX195KSA7IGV4dGVybiBsb25n
IGRvdWJsZSBfX2Ztb2RsIChsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9feSkgOwoKCgoK
ZXh0ZXJuIGludCBfX2lzaW5mbCAobG9uZyBkb3VibGUgX192YWx1ZSkgX19hdHRyaWJ1dGVfXyAo
KF9fY29uc3RfXykpOwoKCmV4dGVybiBpbnQgX19maW5pdGVsIChsb25nIGRvdWJsZSBfX3ZhbHVl
KSBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7CgoKCgpleHRlcm4gaW50IGlzaW5mbCAobG9u
ZyBkb3VibGUgX192YWx1ZSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKCmV4dGVybiBp
bnQgZmluaXRlbCAobG9uZyBkb3VibGUgX192YWx1ZSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3Rf
XykpOwoKCmV4dGVybiBsb25nIGRvdWJsZSBkcmVtbCAobG9uZyBkb3VibGUgX194LCBsb25nIGRv
dWJsZSBfX3kpIDsgZXh0ZXJuIGxvbmcgZG91YmxlIF9fZHJlbWwgKGxvbmcgZG91YmxlIF9feCwg
bG9uZyBkb3VibGUgX195KSA7CgoKCmV4dGVybiBsb25nIGRvdWJsZSBzaWduaWZpY2FuZGwgKGxv
bmcgZG91YmxlIF9feCkgOyBleHRlcm4gbG9uZyBkb3VibGUgX19zaWduaWZpY2FuZGwgKGxvbmcg
ZG91YmxlIF9feCkgOwoKCgoKZXh0ZXJuIGxvbmcgZG91YmxlIGNvcHlzaWdubCAobG9uZyBkb3Vi
bGUgX194LCBsb25nIGRvdWJsZSBfX3kpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsgZXh0
ZXJuIGxvbmcgZG91YmxlIF9fY29weXNpZ25sIChsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91Ymxl
IF9feSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwojIDIwOSAiL3Vzci9sb2NhbC9pbmNs
dWRlL2JpdHMvbWF0aGNhbGxzLmgiIDMKZXh0ZXJuIGludCBfX2lzbmFubCAobG9uZyBkb3VibGUg
X192YWx1ZSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKCgpleHRlcm4gaW50IGlzbmFu
bCAobG9uZyBkb3VibGUgX192YWx1ZSkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKCmV4
dGVybiBsb25nIGRvdWJsZSBqMGwgKGxvbmcgZG91YmxlKSA7IGV4dGVybiBsb25nIGRvdWJsZSBf
X2owbCAobG9uZyBkb3VibGUpIDsKZXh0ZXJuIGxvbmcgZG91YmxlIGoxbCAobG9uZyBkb3VibGUp
IDsgZXh0ZXJuIGxvbmcgZG91YmxlIF9fajFsIChsb25nIGRvdWJsZSkgOwpleHRlcm4gbG9uZyBk
b3VibGUgam5sIChpbnQsIGxvbmcgZG91YmxlKSA7IGV4dGVybiBsb25nIGRvdWJsZSBfX2pubCAo
aW50LCBsb25nIGRvdWJsZSkgOwpleHRlcm4gbG9uZyBkb3VibGUgeTBsIChsb25nIGRvdWJsZSkg
OyBleHRlcm4gbG9uZyBkb3VibGUgX195MGwgKGxvbmcgZG91YmxlKSA7CmV4dGVybiBsb25nIGRv
dWJsZSB5MWwgKGxvbmcgZG91YmxlKSA7IGV4dGVybiBsb25nIGRvdWJsZSBfX3kxbCAobG9uZyBk
b3VibGUpIDsKZXh0ZXJuIGxvbmcgZG91YmxlIHlubCAoaW50LCBsb25nIGRvdWJsZSkgOyBleHRl
cm4gbG9uZyBkb3VibGUgX195bmwgKGludCwgbG9uZyBkb3VibGUpIDsKCgoKCgpleHRlcm4gbG9u
ZyBkb3VibGUgZXJmbCAobG9uZyBkb3VibGUpIDsgZXh0ZXJuIGxvbmcgZG91YmxlIF9fZXJmbCAo
bG9uZyBkb3VibGUpIDsKZXh0ZXJuIGxvbmcgZG91YmxlIGVyZmNsIChsb25nIGRvdWJsZSkgOyBl
eHRlcm4gbG9uZyBkb3VibGUgX19lcmZjbCAobG9uZyBkb3VibGUpIDsKZXh0ZXJuIGxvbmcgZG91
YmxlIGxnYW1tYWwgKGxvbmcgZG91YmxlKSA7IGV4dGVybiBsb25nIGRvdWJsZSBfX2xnYW1tYWwg
KGxvbmcgZG91YmxlKSA7CiMgMjM4ICIvdXNyL2xvY2FsL2luY2x1ZGUvYml0cy9tYXRoY2FsbHMu
aCIgMwpleHRlcm4gbG9uZyBkb3VibGUgZ2FtbWFsIChsb25nIGRvdWJsZSkgOyBleHRlcm4gbG9u
ZyBkb3VibGUgX19nYW1tYWwgKGxvbmcgZG91YmxlKSA7CgoKCgoKCmV4dGVybiBsb25nIGRvdWJs
ZSBsZ2FtbWFsX3IgKGxvbmcgZG91YmxlLCBpbnQgKl9fc2lnbmdhbXApIDsgZXh0ZXJuIGxvbmcg
ZG91YmxlIF9fbGdhbW1hbF9yIChsb25nIGRvdWJsZSwgaW50ICpfX3NpZ25nYW1wKSA7CgoKCgoK
CmV4dGVybiBsb25nIGRvdWJsZSByaW50bCAobG9uZyBkb3VibGUgX194KSA7IGV4dGVybiBsb25n
IGRvdWJsZSBfX3JpbnRsIChsb25nIGRvdWJsZSBfX3gpIDsKCgpleHRlcm4gbG9uZyBkb3VibGUg
bmV4dGFmdGVybCAobG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSBfX3kpIF9fYXR0cmlidXRl
X18gKChfX2NvbnN0X18pKTsgZXh0ZXJuIGxvbmcgZG91YmxlIF9fbmV4dGFmdGVybCAobG9uZyBk
b3VibGUgX194LCBsb25nIGRvdWJsZSBfX3kpIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsK
CgoKCgpleHRlcm4gbG9uZyBkb3VibGUgcmVtYWluZGVybCAobG9uZyBkb3VibGUgX194LCBsb25n
IGRvdWJsZSBfX3kpIDsgZXh0ZXJuIGxvbmcgZG91YmxlIF9fcmVtYWluZGVybCAobG9uZyBkb3Vi
bGUgX194LCBsb25nIGRvdWJsZSBfX3kpIDsKCgoKZXh0ZXJuIGxvbmcgZG91YmxlIHNjYWxibCAo
bG9uZyBkb3VibGUgX194LCBsb25nIGRvdWJsZSBfX24pIDsgZXh0ZXJuIGxvbmcgZG91YmxlIF9f
c2NhbGJsIChsb25nIGRvdWJsZSBfX3gsIGxvbmcgZG91YmxlIF9fbikgOwoKCgoKZXh0ZXJuIGxv
bmcgZG91YmxlIHNjYWxibmwgKGxvbmcgZG91YmxlIF9feCwgaW50IF9fbikgOyBleHRlcm4gbG9u
ZyBkb3VibGUgX19zY2FsYm5sIChsb25nIGRvdWJsZSBfX3gsIGludCBfX24pIDsKCgoKZXh0ZXJu
IGludCBpbG9nYmwgKGxvbmcgZG91YmxlIF9feCkgOyBleHRlcm4gaW50IF9faWxvZ2JsIChsb25n
IGRvdWJsZSBfX3gpIDsKIyAxMDAgIi91c3IvbG9jYWwvaW5jbHVkZS9tYXRoLmgiIDIgMwojIDEx
MyAiL3Vzci9sb2NhbC9pbmNsdWRlL21hdGguaCIgMwpleHRlcm4gaW50IHNpZ25nYW07CiMgMjQw
ICIvdXNyL2xvY2FsL2luY2x1ZGUvbWF0aC5oIiAzCnR5cGVkZWYgZW51bQp7CiAgX0lFRUVfID0g
LTEsCiAgX1NWSURfLAogIF9YT1BFTl8sCiAgX1BPU0lYXywKICBfSVNPQ18KfSBfTElCX1ZFUlNJ
T05fVFlQRTsKCgoKCmV4dGVybiBfTElCX1ZFUlNJT05fVFlQRSBfTElCX1ZFUlNJT047CiMgMjY1
ICIvdXNyL2xvY2FsL2luY2x1ZGUvbWF0aC5oIiAzCnN0cnVjdCBleGNlcHRpb24KCiAgewogICAg
aW50IHR5cGU7CiAgICBjaGFyICpuYW1lOwogICAgZG91YmxlIGFyZzE7CiAgICBkb3VibGUgYXJn
MjsKICAgIGRvdWJsZSByZXR2YWw7CiAgfTsKCgoKCmV4dGVybiBpbnQgbWF0aGVyciAoc3RydWN0
IGV4Y2VwdGlvbiAqX19leGMpOwojIDQxMSAiL3Vzci9sb2NhbC9pbmNsdWRlL21hdGguaCIgMwoK
IyAxMTYgIi4uL0luY2x1ZGUvcmRzZWVkLmgiIDIKCgoKIyAxICIuLi9JbmNsdWRlL21hY3Jvcy5o
IiAxCiMgMTIwICIuLi9JbmNsdWRlL3Jkc2VlZC5oIiAyCiMgMSAiLi4vSW5jbHVkZS9zdHJ1Y3R1
cmVzLmgiIDEKIyA0MCAiLi4vSW5jbHVkZS9zdHJ1Y3R1cmVzLmgiCnN0cnVjdCBvcHRzdHJ1Y3QK
ewogICAgICAgIGludCBudW1iZXJfb3B0aW9uczsKICAgICAgICBpbnQgbmV4dF9hcmc7CiAgICAg
ICAgY2hhciBvcHRpb25bMTAwXTsKICAgICAgICBjaGFyIG9wdGlvbl9wcmVzZW50WzEwMF07CiAg
ICAgICAgY2hhciBhcmd1bWVudFsxMDBdWzEwMF07Cn07CgoKCgoKc3RydWN0IHRpbWUKewogICAg
ICAgIGludCB5ZWFyOwogICAgICAgIGludCBkYXk7CiAgICAgICAgaW50IGhvdXI7CiAgICAgICAg
aW50IG1pbnV0ZTsKICAgICAgICBpbnQgc2Vjb25kOwogICAgICAgIGludCBmcmFjc2VjOwp9OwoK
CgoKc3RydWN0IHBoYXNlCnsKICAgICAgICBjaGFyIG5hbWVbMzBdOwogICAgICAgIGludCB5ZWFy
OwogICAgICAgIGludCBkYXk7CiAgICAgICAgaW50IGhvdXI7CiAgICAgICAgaW50IG1pbnV0ZTsK
ICAgICAgICBpbnQgc2Vjb25kOwogICAgICAgIGludCBmcmFjc2VjOwp9OwoKCgoKCnN0cnVjdCBs
b2dpY2FsX3JlY29yZAp7CiAgICAgICAgbG9uZyBpbnQgcmVjb3JkbnVtYmVyOwogICAgICAgIGNo
YXIgdHlwZTsKICAgICAgICBpbnQgY29udGludWF0aW9uOwogICAgICAgIGNoYXIgZGF0YVs0MDk2
IC04XTsKfTsKCgoKCgpzdHJ1Y3QgdHlwZTEwCnsKICAgICAgICBkb3VibGUgdmVyc2lvbjsKICAg
ICAgICBpbnQgbG9nMmxyZWNsOwogICAgICAgIGNoYXIgKmJvdjsKICAgICAgICBjaGFyICplb3Y7
CiAgICAgICAgY2hhciAqdm9sdW1lX3RpbWU7CiAgICAgICAgY2hhciAqb3JnYW5pemF0aW9uOwog
ICAgICAgIGNoYXIgKnZvbHVtZV9sYWJlbDsKfTsKCnN0cnVjdCB0eXBlMTFzdWIKewogICAgICAg
IGNoYXIgKnN0YXRpb25faWQ7CiAgICAgICAgbG9uZyBpbnQgc2VxdWVuY2VfbnVtYmVyOwp9OwoK
c3RydWN0IHR5cGUxMQp7CiAgICAgICAgaW50IG51bWJlcl9zdGF0aW9uczsKICAgICAgICBzdHJ1
Y3QgdHlwZTExc3ViICpzdGF0aW9uOwp9OwoKc3RydWN0IHR5cGUxMnN1Ygp7CiAgICAgICAgY2hh
ciAqYm9zOwogICAgICAgIGNoYXIgKmVvczsKICAgICAgICBsb25nIGludCBzZXF1ZW5jZV9udW1i
ZXI7Cn07CgpzdHJ1Y3QgdHlwZTEyCnsKICAgICAgICBpbnQgbnVtYmVyX3NwYW5zOwogICAgICAg
IHN0cnVjdCB0eXBlMTJzdWIgKnRpbWVzcGFuOwp9OwoKCgoKCnN0cnVjdCB0eXBlMzAKewogICAg
ICAgIGNoYXIgKm5hbWU7CiAgICAgICAgaW50IGNvZGU7CiAgICAgICAgaW50IGZhbWlseTsKICAg
ICAgICBpbnQgbnVtYmVyX2tleXM7CiAgICAgICAgY2hhciAqKmRlY29kZXJfa2V5OwogICAgICAg
IGNoYXIgKipkZWNvZGVyX2tleV9wcmltOwogICAgICAgIHN0cnVjdCB0eXBlMzAgKm5leHQ7Cn07
CgpzdHJ1Y3QgdHlwZTMxCnsKICAgICAgICBpbnQgY29kZTsKICAgICAgICBjaGFyICpjbGFzczsK
ICAgICAgICBjaGFyICpjb21tZW50OwogICAgICAgIGludCB1bml0czsKICAgICAgICBzdHJ1Y3Qg
dHlwZTMxICpuZXh0Owp9OwoKc3RydWN0IHR5cGUzMgp7CiAgICAgICAgaW50IGNvZGU7CiAgICAg
ICAgY2hhciAqYXV0aG9yOwogICAgICAgIGNoYXIgKmNhdGFsb2c7CiAgICAgICAgY2hhciAqcHVi
bGlzaGVyOwogICAgICAgIHN0cnVjdCB0eXBlMzIgKm5leHQ7Cn07CgpzdHJ1Y3QgdHlwZTMzCnsK
ICAgICAgICBpbnQgY29kZTsKICAgICAgICBjaGFyICphYmJyZXZpYXRpb247CiAgICAgICAgc3Ry
dWN0IHR5cGUzMyAqbmV4dDsKfTsKCnN0cnVjdCB0eXBlMzQKewogICAgICAgIGludCBjb2RlOwog
ICAgICAgIGNoYXIgKm5hbWU7CiAgICAgICAgY2hhciAqZGVzY3JpcHRpb247CiAgICAgICAgc3Ry
dWN0IHR5cGUzNCAqbmV4dDsKfTsKCnN0cnVjdCB0eXBlMzVzdWIKewogICAgICAgIGNoYXIgKnN0
YXRpb247CiAgICAgICAgY2hhciAqbG9jYXRpb247CiAgICAgICAgY2hhciAqY2hhbm5lbDsKICAg
ICAgICBpbnQgc3ViY2hhbm5lbDsKICAgICAgICBkb3VibGUgd2VpZ2h0Owp9OwoKc3RydWN0IHR5
cGUzNQp7CiAgICAgICAgaW50IGNvZGU7CiAgICAgICAgaW50IG51bWJlcl9iZWFtczsKICAgICAg
ICBzdHJ1Y3QgdHlwZTM1c3ViICpiZWFtOwogICAgICAgIHN0cnVjdCB0eXBlMzUgKm5leHQ7Cn07
CgoKCgoKc3RydWN0IHR5cGU0MQp7CiAgICAgICAgaW50IHJlc3BvbnNlX2NvZGU7CiAgICAgICAg
Y2hhciAqbmFtZTsKICAgICAgICBjaGFyIHN5bW1ldHJ5X2NvZGU7CiAgICAgICAgaW50IGlucHV0
X3VuaXRzX2NvZGU7CiAgICAgICAgaW50IG91dHB1dF91bml0c19jb2RlOwogICAgICAgIGludCBu
dW1iZXJfbnVtZXJhdG9yczsKICAgICAgICBkb3VibGUgKm51bWVyYXRvcjsKICAgICAgICBzdHJ1
Y3QgdHlwZTQxICpuZXh0Owp9OwoKc3RydWN0IHR5cGU0MnN1Ygp7CiAgICAgICAgZG91YmxlIGNv
ZWZmaWNpZW50OwogICAgICAgIGRvdWJsZSBlcnJvcjsKfTsKCnN0cnVjdCB0eXBlNDIKewogICAg
ICAgIGludCByZXNwb25zZV9jb2RlOwogICAgICAgIGNoYXIgKm5hbWU7CiAgICAgICAgY2hhciB0
cmFuc2Zlcl9mY3RfdHlwZTsKICAgICAgICBpbnQgaW5wdXRfdW5pdHNfY29kZTsKICAgICAgICBp
bnQgb3V0cHV0X3VuaXRzX2NvZGU7CiAgICAgICAgY2hhciBwb2x5X2FwcHJveF90eXBlOwogICAg
ICAgIGNoYXIgdmFsaWRfZnJlcV91bml0czsKICAgICAgICBkb3VibGUgbG93ZXJfdmFsaWRfZnJl
cTsKICAgICAgICBkb3VibGUgdXBwZXJfdmFsaWRfZnJlcTsKICAgICAgICBkb3VibGUgbG93ZXJf
Ym91bmRfYXBwcm94OwogICAgICAgIGRvdWJsZSB1cHBlcl9ib3VuZF9hcHByb3g7CiAgICAgICAg
ZG91YmxlIG1heF9hYnNfZXJyb3I7CiAgICAgICAgaW50IG51bWJlcl9jb2VmZmljaWVudHM7CiAg
ICAgICAgc3RydWN0IHR5cGU0MnN1YiAqY29lZmZpY2llbnQ7CiAgICAgICAgc3RydWN0IHR5cGU0
MiAqbmV4dDsKfTsKCnN0cnVjdCB0eXBlNDNzdWIKewogICAgICAgIGRvdWJsZSByZWFsOwogICAg
ICAgIGRvdWJsZSBpbWFnOwogICAgICAgIGRvdWJsZSByZWFsX2Vycm9yOwogICAgICAgIGRvdWJs
ZSBpbWFnX2Vycm9yOwp9OwoKc3RydWN0IHR5cGU0Mwp7CiAgICAgICAgaW50IHJlc3BvbnNlX2Nv
ZGU7CiAgICAgICAgY2hhciAqbmFtZTsKICAgICAgICBjaGFyIHJlc3BvbnNlX3R5cGU7CiAgICAg
ICAgaW50IGlucHV0X3VuaXRzX2NvZGU7CiAgICAgICAgaW50IG91dHB1dF91bml0c19jb2RlOwog
ICAgICAgIGRvdWJsZSBhb19ub3JtOwogICAgICAgIGRvdWJsZSBub3JtX2ZyZXE7CiAgICAgICAg
aW50IG51bWJlcl96ZXJvZXM7CiAgICAgICAgc3RydWN0IHR5cGU0M3N1YiAqemVybzsKICAgICAg
ICBpbnQgbnVtYmVyX3BvbGVzOwogICAgICAgIHN0cnVjdCB0eXBlNDNzdWIgKnBvbGU7CiAgICAg
ICAgc3RydWN0IHR5cGU0MyAqbmV4dDsKfTsKCnN0cnVjdCB0eXBlNDRzdWIKewogICAgICAgIGRv
dWJsZSBjb2VmZmljaWVudDsKICAgICAgICBkb3VibGUgZXJyb3I7Cn07CgpzdHJ1Y3QgdHlwZTQ0
CnsKICAgICAgICBpbnQgcmVzcG9uc2VfY29kZTsKICAgICAgICBjaGFyICpuYW1lOwogICAgICAg
IGNoYXIgcmVzcG9uc2VfdHlwZTsKICAgICAgICBpbnQgaW5wdXRfdW5pdHNfY29kZTsKICAgICAg
ICBpbnQgb3V0cHV0X3VuaXRzX2NvZGU7CiAgICAgICAgaW50IG51bWJlcl9udW1lcmF0b3JzOwog
ICAgICAgIHN0cnVjdCB0eXBlNDRzdWIgKm51bWVyYXRvcjsKICAgICAgICBpbnQgbnVtYmVyX2Rl
bm9taW5hdG9yczsKICAgICAgICBzdHJ1Y3QgdHlwZTQ0c3ViICpkZW5vbWluYXRvcjsKICAgICAg
ICBzdHJ1Y3QgdHlwZTQ0ICpuZXh0Owp9OwoKc3RydWN0IHR5cGU0NXN1Ygp7CiAgICAgICAgZG91
YmxlIGZyZXF1ZW5jeTsKICAgICAgICBkb3VibGUgYW1wbGl0dWRlOwogICAgICAgIGRvdWJsZSBh
bXBsaXR1ZGVfZXJyb3I7CiAgICAgICAgZG91YmxlIHBoYXNlOwogICAgICAgIGRvdWJsZSBwaGFz
ZV9lcnJvcjsKfTsKCnN0cnVjdCB0eXBlNDUKewogICAgICAgIGludCByZXNwb25zZV9jb2RlOwog
ICAgICAgIGNoYXIgKm5hbWU7CiAgICAgICAgaW50IGlucHV0X3VuaXRzX2NvZGU7CiAgICAgICAg
aW50IG91dHB1dF91bml0c19jb2RlOwogICAgICAgIGludCBudW1iZXJfcmVzcG9uc2VzOwogICAg
ICAgIHN0cnVjdCB0eXBlNDVzdWIgKnJlc3BvbnNlOwogICAgICAgIHN0cnVjdCB0eXBlNDUgKm5l
eHQ7Cn07CgpzdHJ1Y3QgdHlwZTQ2c3ViCnsKICAgICAgICBkb3VibGUgZnJlcXVlbmN5OwogICAg
ICAgIGRvdWJsZSBzbG9wZTsKfTsKCnN0cnVjdCB0eXBlNDYKewogICAgICAgIGludCByZXNwb25z
ZV9jb2RlOwogICAgICAgIGNoYXIgKm5hbWU7CiAgICAgICAgaW50IGlucHV0X3VuaXRzX2NvZGU7
CiAgICAgICAgaW50IG91dHB1dF91bml0c19jb2RlOwogICAgICAgIGludCBudW1iZXJfY29ybmVy
czsKICAgICAgICBzdHJ1Y3QgdHlwZTQ2c3ViICpjb3JuZXI7CiAgICAgICAgc3RydWN0IHR5cGU0
NiAqbmV4dDsKfTsKCnN0cnVjdCB0eXBlNDcKewogICAgICAgIGludCByZXNwb25zZV9jb2RlOwog
ICAgICAgIGNoYXIgKm5hbWU7CiAgICAgICAgZG91YmxlIGlucHV0X3NhbXBsZV9yYXRlOwogICAg
ICAgIGludCBkZWNpbWF0aW9uX2ZhY3RvcjsKICAgICAgICBpbnQgZGVjaW1hdGlvbl9vZmZzZXQ7
CiAgICAgICAgZG91YmxlIGRlbGF5OwogICAgICAgIGRvdWJsZSBjb3JyZWN0aW9uOwogICAgICAg
IHN0cnVjdCB0eXBlNDcgKm5leHQ7Cn07CgpzdHJ1Y3QgdHlwZTQ4c3ViCnsKICAgICAgICBkb3Vi
bGUgc2Vuc2l0aXZpdHk7CiAgICAgICAgZG91YmxlIGZyZXF1ZW5jeTsKICAgICAgICBjaGFyICp0
aW1lOwp9OwoKc3RydWN0IHR5cGU0OAp7CiAgICAgICAgaW50IHJlc3BvbnNlX2NvZGU7CiAgICAg
ICAgY2hhciAqbmFtZTsKICAgICAgICBkb3VibGUgc2Vuc2l0aXZpdHk7CiAgICAgICAgZG91Ymxl
IGZyZXF1ZW5jeTsKICAgICAgICBpbnQgbnVtYmVyX2NhbGlicmF0aW9uczsKICAgICAgICBzdHJ1
Y3QgdHlwZTQ4c3ViICpjYWxpYnJhdGlvbjsKICAgICAgICBzdHJ1Y3QgdHlwZTQ4ICpuZXh0Owp9
OwoKCgoKCnN0cnVjdCB0eXBlNTAKewogICAgICAgIGNoYXIgKnN0YXRpb247CiAgICAgICAgZG91
YmxlIGxhdGl0dWRlOwogICAgICAgIGRvdWJsZSBsb25naXR1ZGU7CiAgICAgICAgZG91YmxlIGVs
ZXZhdGlvbjsKCgogICAgICAgIGludCByZXNlcnZlZDE7CiAgICAgICAgaW50IHJlc2VydmVkMjsK
ICAgICAgICBjaGFyICpuYW1lOwogICAgICAgIGludCBvd25lcl9jb2RlOwogICAgICAgIGludCBs
b25nd29yZF9vcmRlcjsKICAgICAgICBpbnQgd29yZF9vcmRlcjsKICAgICAgICBjaGFyICpzdGFy
dDsKICAgICAgICBjaGFyICplbmQ7CiAgICAgICAgY2hhciAqdXBkYXRlOwogICAgICAgIGNoYXIg
Km5ldHdvcmtfY29kZTsKICAgICAgICBzdHJ1Y3QgdHlwZTUxICp0eXBlNTFfaGVhZDsKICAgICAg
ICBzdHJ1Y3QgdHlwZTUxICp0eXBlNTFfdGFpbDsKICAgICAgICBzdHJ1Y3QgdHlwZTUyICp0eXBl
NTJfaGVhZDsKICAgICAgICBzdHJ1Y3QgdHlwZTUyICp0eXBlNTJfdGFpbDsKICAgICAgICBzdHJ1
Y3QgdHlwZTUwICpzdGF0aW9uX3VwZGF0ZTsKICAgICAgICBzdHJ1Y3QgdHlwZTUwICpuZXh0Owp9
OwoKc3RydWN0IHR5cGU1MQp7CiAgICAgICAgY2hhciAqc3RhcnQ7CiAgICAgICAgY2hhciAqZW5k
OwogICAgICAgIGludCBjb21tZW50X2NvZGU7CiAgICAgICAgbG9uZyBpbnQgbGV2ZWxfY29kZTsK
ICAgICAgICBzdHJ1Y3QgdHlwZTUxICpuZXh0Owp9OwoKc3RydWN0IHR5cGU1Mgp7CiAgICAgICAg
Y2hhciAqbG9jYXRpb247CiAgICAgICAgY2hhciAqY2hhbm5lbDsKICAgICAgICBpbnQgc3ViY2hh
bm5lbDsKICAgICAgICBpbnQgaW5zdHJ1bWVudF9jb2RlOwogICAgICAgIGNoYXIgKmluc3RfY29t
bWVudDsKICAgICAgICBpbnQgc2lnbmFsX3VuaXRzX2NvZGU7CiAgICAgICAgaW50IGNhbGliX3Vu
aXRzX2NvZGU7CiAgICAgICAgZG91YmxlIGxhdGl0dWRlOwogICAgICAgIGRvdWJsZSBsb25naXR1
ZGU7CiAgICAgICAgZG91YmxlIGVsZXZhdGlvbjsKICAgICAgICBkb3VibGUgbG9jYWxfZGVwdGg7
CiAgICAgICAgZG91YmxlIGF6aW11dGg7CiAgICAgICAgZG91YmxlIGRpcDsKICAgICAgICBpbnQg
Zm9ybWF0X2NvZGU7CiAgICAgICAgaW50IGxvZzJkcmVjbDsKICAgICAgICBkb3VibGUgc2FtcGxl
cmF0ZTsKICAgICAgICBkb3VibGUgY2xvY2tfdG9sZXJhbmNlOwoKICAgICAgICBpbnQgcmVzZXJ2
ZWQxOwogICAgICAgIGNoYXIgKmNoYW5uZWxfZmxhZzsKICAgICAgICBjaGFyICpzdGFydDsKICAg
ICAgICBjaGFyICplbmQ7CiAgICAgICAgY2hhciAqdXBkYXRlOwogICAgICAgIHN0cnVjdCByZXNw
b25zZSAqcmVzcG9uc2VfaGVhZDsKICAgICAgICBzdHJ1Y3QgcmVzcG9uc2UgKnJlc3BvbnNlX3Rh
aWw7CiAgICAgICAgc3RydWN0IHR5cGU1OSAqdHlwZTU5X2hlYWQ7CiAgICAgICAgc3RydWN0IHR5
cGU1OSAqdHlwZTU5X3RhaWw7CiAgICAgICAgc3RydWN0IHR5cGU1MiAqY2hhbm5lbF91cGRhdGU7
CiAgICAgICAgc3RydWN0IHR5cGU1MiAqbmV4dDsKfTsKCnN0cnVjdCByZXNwb25zZQp7CiAgICAg
ICAgY2hhciB0eXBlOwogICAgICAgIHVuaW9uCiAgICAgICAgewogICAgICAgICAgICAgICAgc3Ry
dWN0IHR5cGU1MyAqdHlwZTUzOwogICAgICAgICAgICAgICAgc3RydWN0IHR5cGU1NCAqdHlwZTU0
OwogICAgICAgICAgICAgICAgc3RydWN0IHR5cGU1NSAqdHlwZTU1OwogICAgICAgICAgICAgICAg
c3RydWN0IHR5cGU1NiAqdHlwZTU2OwogICAgICAgICAgICAgICAgc3RydWN0IHR5cGU1NyAqdHlw
ZTU3OwogICAgICAgICAgICAgICAgc3RydWN0IHR5cGU1OCAqdHlwZTU4OwogICAgICAgICAgICAg
ICAgc3RydWN0IHR5cGU2MCAqdHlwZTYwOwogICAgICAgICAgICAgICAgc3RydWN0IHR5cGU2MSAq
dHlwZTYxOwogICAgICAgICAgICAgICAgc3RydWN0IHR5cGU2MiAqdHlwZTYyOwogICAgICAgIH0g
cHRyOwogICAgICAgIHN0cnVjdCByZXNwb25zZSAqbmV4dDsKfTsKCnN0cnVjdCB0eXBlNTNzdWIK
ewogICAgICAgIGRvdWJsZSByZWFsOwogICAgICAgIGRvdWJsZSBpbWFnOwogICAgICAgIGRvdWJs
ZSByZWFsX2Vycm9yOwogICAgICAgIGRvdWJsZSBpbWFnX2Vycm9yOwp9OwoKc3RydWN0IHR5cGU1
Mwp7CiAgICAgICAgY2hhciAqdHJhbnNmZXI7CiAgICAgICAgaW50IHN0YWdlOwogICAgICAgIGlu
dCBpbnB1dF91bml0c19jb2RlOwogICAgICAgIGludCBvdXRwdXRfdW5pdHNfY29kZTsKICAgICAg
ICBkb3VibGUgYW9fbm9ybTsKICAgICAgICBkb3VibGUgbm9ybV9mcmVxOwogICAgICAgIGludCBu
dW1iZXJfemVyb2VzOwogICAgICAgIHN0cnVjdCB0eXBlNTNzdWIgKnplcm87CiAgICAgICAgaW50
IG51bWJlcl9wb2xlczsKICAgICAgICBzdHJ1Y3QgdHlwZTUzc3ViICpwb2xlOwogICAgICAgIHN0
cnVjdCB0eXBlNTMgKm5leHQ7Cn07CgpzdHJ1Y3QgdHlwZTU0c3ViCnsKICAgICAgICBkb3VibGUg
Y29lZmZpY2llbnQ7CiAgICAgICAgZG91YmxlIGVycm9yOwp9OwoKc3RydWN0IHR5cGU1NAp7CiAg
ICAgICAgY2hhciAqdHJhbnNmZXI7CiAgICAgICAgaW50IHN0YWdlOwogICAgICAgIGludCBpbnB1
dF91bml0c19jb2RlOwogICAgICAgIGludCBvdXRwdXRfdW5pdHNfY29kZTsKICAgICAgICBpbnQg
bnVtYmVyX251bWVyYXRvcnM7CiAgICAgICAgc3RydWN0IHR5cGU1NHN1YiAqbnVtZXJhdG9yOwog
ICAgICAgIGludCBudW1iZXJfZGVub21pbmF0b3JzOwogICAgICAgIHN0cnVjdCB0eXBlNTRzdWIg
KmRlbm9taW5hdG9yOwogICAgICAgIHN0cnVjdCB0eXBlNTQgKm5leHQ7Cn07CgpzdHJ1Y3QgdHlw
ZTU1c3ViCnsKICAgICAgICBkb3VibGUgZnJlcXVlbmN5OwogICAgICAgIGRvdWJsZSBhbXBsaXR1
ZGU7CiAgICAgICAgZG91YmxlIGFtcGxpdHVkZV9lcnJvcjsKICAgICAgICBkb3VibGUgcGhhc2U7
CiAgICAgICAgZG91YmxlIHBoYXNlX2Vycm9yOwp9OwoKc3RydWN0IHR5cGU1NQp7CiAgICAgICAg
aW50IHN0YWdlOwogICAgICAgIGludCBpbnB1dF91bml0c19jb2RlOwogICAgICAgIGludCBvdXRw
dXRfdW5pdHNfY29kZTsKICAgICAgICBpbnQgbnVtYmVyX3Jlc3BvbnNlczsKICAgICAgICBzdHJ1
Y3QgdHlwZTU1c3ViICpyZXNwb25zZTsKICAgICAgICBzdHJ1Y3QgdHlwZTU1ICpuZXh0Owp9OwoK
c3RydWN0IHR5cGU1NnN1Ygp7CiAgICAgICAgZG91YmxlIGZyZXF1ZW5jeTsKICAgICAgICBkb3Vi
bGUgc2xvcGU7Cn07CgpzdHJ1Y3QgdHlwZTU2CnsKICAgICAgICBpbnQgc3RhZ2U7CiAgICAgICAg
aW50IGlucHV0X3VuaXRzX2NvZGU7CiAgICAgICAgaW50IG91dHB1dF91bml0c19jb2RlOwogICAg
ICAgIGludCBudW1iZXJfY29ybmVyczsKICAgICAgICBzdHJ1Y3QgdHlwZTU2c3ViICpjb3JuZXI7
CiAgICAgICAgc3RydWN0IHR5cGU1NiAqbmV4dDsKfTsKCnN0cnVjdCB0eXBlNTcKewogICAgICAg
IGludCBzdGFnZTsKICAgICAgICBkb3VibGUgaW5wdXRfc2FtcGxlX3JhdGU7CiAgICAgICAgaW50
IGRlY2ltYXRpb25fZmFjdG9yOwogICAgICAgIGludCBkZWNpbWF0aW9uX29mZnNldDsKICAgICAg
ICBkb3VibGUgZGVsYXk7CiAgICAgICAgZG91YmxlIGNvcnJlY3Rpb247CiAgICAgICAgc3RydWN0
IHR5cGU1NyAqbmV4dDsKfTsKCnN0cnVjdCB0eXBlNThzdWIKewogICAgICAgIGRvdWJsZSBzZW5z
aXRpdml0eTsKICAgICAgICBkb3VibGUgZnJlcXVlbmN5OwogICAgICAgIGNoYXIgKnRpbWU7Cn07
CgpzdHJ1Y3QgdHlwZTU4CnsKICAgICAgICBpbnQgc3RhZ2U7CiAgICAgICAgZG91YmxlIHNlbnNp
dGl2aXR5OwogICAgICAgIGRvdWJsZSBmcmVxdWVuY3k7CiAgICAgICAgaW50IG51bWJlcl9jYWxp
YnJhdGlvbnM7CiAgICAgICAgc3RydWN0IHR5cGU1OHN1YiAqY2FsaWJyYXRpb247CiAgICAgICAg
c3RydWN0IHR5cGU1OCAqbmV4dDsKfTsKCnN0cnVjdCB0eXBlNTkKewogICAgICAgIGNoYXIgKnN0
YXJ0OwogICAgICAgIGNoYXIgKmVuZDsKICAgICAgICBpbnQgY29tbWVudF9jb2RlOwogICAgICAg
IGxvbmcgaW50IGxldmVsX2NvZGU7CiAgICAgICAgc3RydWN0IHR5cGU1OSAqbmV4dDsKfTsKCnN0
cnVjdCB0eXBlNjBzdWIxCnsKICAgICAgICBpbnQgdmFsdWU7CiAgICAgICAgaW50IG51bWJlcl9y
ZXNwb25zZXM7CiAgICAgICAgc3RydWN0IHR5cGU2MHN1YjIgKnJlc3BvbnNlOwp9OwoKc3RydWN0
IHR5cGU2MHN1YjIKewogICAgICAgIGludCByZWZlcmVuY2U7Cn07CgpzdHJ1Y3QgdHlwZTYwCnsK
ICAgICAgICBpbnQgbnVtYmVyX3N0YWdlczsKICAgICAgICBzdHJ1Y3QgdHlwZTYwc3ViMSAqc3Rh
Z2U7CiAgICAgICAgc3RydWN0IHR5cGU2MCAqbmV4dDsKfTsKCnN0cnVjdCB0eXBlNjEKewogICAg
ICAgIGludCBzdGFnZTsKICAgICAgICBjaGFyICpuYW1lOwogICAgICAgIGNoYXIgc3ltbWV0cnlf
Y29kZTsKICAgICAgICBpbnQgaW5wdXRfdW5pdHNfY29kZTsKICAgICAgICBpbnQgb3V0cHV0X3Vu
aXRzX2NvZGU7CiAgICAgICAgaW50IG51bWJlcl9udW1lcmF0b3JzOwogICAgICAgIGRvdWJsZSAq
bnVtZXJhdG9yOwogICAgICAgIHN0cnVjdCB0eXBlNjEgKm5leHQ7Cn07CgpzdHJ1Y3QgdHlwZTYy
c3ViCnsKICAgICAgICBkb3VibGUgY29lZmZpY2llbnQ7CiAgICAgICAgZG91YmxlIGVycm9yOwp9
OwoKc3RydWN0IHR5cGU2Mgp7CiAgICAgICAgY2hhciB0cmFuc2Zlcl9mY3RfdHlwZTsKICAgICAg
ICBpbnQgc3RhZ2U7CiAgICAgICAgaW50IGlucHV0X3VuaXRzX2NvZGU7CiAgICAgICAgaW50IG91
dHB1dF91bml0c19jb2RlOwogICAgICAgIGNoYXIgcG9seV9hcHByb3hfdHlwZTsKICAgICAgICBj
aGFyIHZhbGlkX2ZyZXFfdW5pdHM7CiAgICAgICAgZG91YmxlIGxvd2VyX3ZhbGlkX2ZyZXE7CiAg
ICAgICAgZG91YmxlIHVwcGVyX3ZhbGlkX2ZyZXE7CiAgICAgICAgZG91YmxlIGxvd2VyX2JvdW5k
X2FwcHJveDsKICAgICAgICBkb3VibGUgdXBwZXJfYm91bmRfYXBwcm94OwogICAgICAgIGRvdWJs
ZSBtYXhfYWJzX2Vycm9yOwogICAgICAgIGludCBudW1iZXJfY29lZmZpY2llbnRzOwogICAgICAg
IHN0cnVjdCB0eXBlNjJzdWIgKmNvZWZmaWNpZW50OwogICAgICAgIHN0cnVjdCB0eXBlNjIgKm5l
eHQ7Cn07CgoKCgoKCnN0cnVjdCB0eXBlNzAKewogICAgICAgIGNoYXIgKmZsYWc7CiAgICAgICAg
Y2hhciAqc3RhcnRfb2ZfZGF0YTsKICAgICAgICBjaGFyICplbmRfb2ZfZGF0YTsKICAgICAgICBz
dHJ1Y3QgdHlwZTcwICpuZXh0Owp9OwoKc3RydWN0IHR5cGU3MXN1Ygp7CiAgICAgICAgZG91Ymxl
IG1hZ25pdHVkZTsKICAgICAgICBjaGFyICp0eXBlOwogICAgICAgIGludCBzb3VyY2VfY29kZTsK
fTsKCnN0cnVjdCB0eXBlNzEKewogICAgICAgIGNoYXIgKm9yaWdpbl90aW1lOwogICAgICAgIGlu
dCBzb3VyY2VfY29kZTsKICAgICAgICBkb3VibGUgbGF0aXR1ZGU7CiAgICAgICAgZG91YmxlIGxv
bmdpdHVkZTsKICAgICAgICBkb3VibGUgZGVwdGg7CiAgICAgICAgaW50IG51bWJlcl9tYWduaXR1
ZGVzOwogICAgICAgIHN0cnVjdCB0eXBlNzFzdWIgKm1hZ25pdHVkZTsKICAgICAgICBpbnQgc2Vp
c21pY19yZWdpb247CiAgICAgICAgaW50IHNlaXNtaWNfbG9jYXRpb247CiAgICAgICAgY2hhciAq
cmVnaW9uX25hbWU7CiAgICAgICAgc3RydWN0IHR5cGU3MiAqdHlwZTcyX2hlYWQ7CiAgICAgICAg
c3RydWN0IHR5cGU3MiAqdHlwZTcyX3RhaWw7CiAgICAgICAgc3RydWN0IHR5cGU3MSAqbmV4dDsK
fTsKCnN0cnVjdCB0eXBlNzIKewogICAgICAgIGNoYXIgKnN0YXRpb247CiAgICAgICAgY2hhciAq
bG9jYXRpb247CiAgICAgICAgY2hhciAqY2hhbm5lbDsKICAgICAgICBjaGFyICphcnJpdmFsX3Rp
bWU7CiAgICAgICAgZG91YmxlIGFtcGxpdHVkZTsKICAgICAgICBkb3VibGUgcGVyaW9kOwogICAg
ICAgIGRvdWJsZSBzaWcybm9pc2U7CiAgICAgICAgY2hhciAqcGhhc2VuYW1lOwogICAgICAgIGlu
dCBzb3VyY2VfY29kZTsKICAgICAgICBjaGFyICpuZXR3b3JrX2NvZGU7CiAgICAgICAgc3RydWN0
IHR5cGU3MiAqbmV4dDsKfTsKCnN0cnVjdCB0eXBlNzNzdWIKewogICAgICAgIGNoYXIgKnN0YXRp
b247CiAgICAgICAgY2hhciAqbG9jYXRpb247CiAgICAgICAgY2hhciAqY2hhbm5lbDsKICAgICAg
ICBjaGFyICp0aW1lOwogICAgICAgIGxvbmcgaW50IHNlcXVlbmNlX251bWJlcjsKICAgICAgICBp
bnQgc3Vic2VxdWVuY2U7Cn07CgpzdHJ1Y3QgdHlwZTczCnsKICAgICAgICBpbnQgbnVtYmVyX2Rh
dGFwaWVjZXM7CiAgICAgICAgc3RydWN0IHR5cGU3M3N1YiAqZGF0YXBpZWNlOwogICAgICAgIHN0
cnVjdCB0eXBlNzMgKm5leHQ7Cn07CgpzdHJ1Y3QgdHlwZTc0c3ViCnsKICAgICAgICBjaGFyICp0
aW1lOwogICAgICAgIGxvbmcgaW50IGluZGV4OwogICAgICAgIGludCBzdWJpbmRleDsKfTsKCnN0
cnVjdCB0eXBlNzQKewogICAgICAgIGNoYXIgKnN0YXRpb247CiAgICAgICAgY2hhciAqbG9jYXRp
b247CiAgICAgICAgY2hhciAqY2hhbm5lbDsKICAgICAgICBjaGFyICpzdGFydHRpbWU7CiAgICAg
ICAgbG9uZyBpbnQgc3RhcnRfaW5kZXg7CiAgICAgICAgaW50IHN0YXJ0X3N1YmluZGV4OwogICAg
ICAgIGNoYXIgKmVuZHRpbWU7CiAgICAgICAgbG9uZyBpbnQgZW5kX2luZGV4OwogICAgICAgIGlu
dCBlbmRfc3ViaW5kZXg7CiAgICAgICAgaW50IG51bWJlcl9hY2NlbGVyYXRvcnM7CiAgICAgICAg
Y2hhciAqbmV0d29ya19jb2RlOwogICAgICAgIHN0cnVjdCB0eXBlNzRzdWIgKmFjY2VsZXJhdG9y
OwogICAgICAgIHN0cnVjdCB0eXBlNzQgKm5leHQ7Cn07CgoKCgoKc3RydWN0IGlucHV0X3RpbWUK
ewogICAgICAgIHVuc2lnbmVkIHNob3J0IGludCB5ZWFyOwogICAgICAgIHVuc2lnbmVkIHNob3J0
IGludCBkYXk7CiAgICAgICAgY2hhciBob3VyOwogICAgICAgIGNoYXIgbWludXRlOwogICAgICAg
IGNoYXIgc2Vjb25kOwogICAgICAgIGNoYXIgdW51c2VkOwogICAgICAgIHVuc2lnbmVkIHNob3J0
IGludCBmcmFjc2VjOwp9OwoKc3RydWN0IGlucHV0X2RhdGFfaGRyCnsKICAgICAgICBjaGFyIHN0
YXRpb25bNV07CiAgICAgICAgY2hhciBsb2NhdGlvblsyXTsKICAgICAgICBjaGFyIGNoYW5uZWxb
M107CiAgICAgICAgY2hhciBuZXR3b3JrWzJdOwogICAgICAgIHN0cnVjdCBpbnB1dF90aW1lIHRp
bWU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgaW50IG5zYW1wbGVzOwogICAgICAgIHNob3J0IGlu
dCBzYW1wbGVfcmF0ZTsKICAgICAgICBzaG9ydCBpbnQgc2FtcGxlX3JhdGVfbXVsdGlwbGllcjsK
ICAgICAgICBjaGFyIGFjdGl2aXR5X2ZsYWdzOwogICAgICAgIGNoYXIgaW9fZmxhZ3M7CiAgICAg
ICAgY2hhciBkYXRhX3F1YWxpdHlfZmxhZ3M7CiAgICAgICAgY2hhciBudW1iZXJfYmxvY2tldHRl
czsKICAgICAgICBpbnQgbnVtYmVyX3RpbWVfY29ycmVjdGlvbnM7CiAgICAgICAgdW5zaWduZWQg
c2hvcnQgaW50IGJvZDsKICAgICAgICB1bnNpZ25lZCBzaG9ydCBpbnQgYm9mYjsKfTsKCnN0cnVj
dCBtaW5pX2RhdGFfaGRyCnsKICAgICAgICBzdHJ1Y3QgaW5wdXRfZGF0YV9oZHIgaGRyOwogICAg
ICAgIGNoYXIgYmxvY2tldHRlc1s1MjFdOwp9OwoKc3RydWN0IGRhdGFfaGRyCnsKICAgICAgICBj
aGFyICpzdGF0aW9uOwogICAgICAgIGNoYXIgKmxvY2F0aW9uOwogICAgICAgIGNoYXIgKmNoYW5u
ZWw7CiAgICAgICAgY2hhciBuZXR3b3JrWzNdOwogICAgICAgIHN0cnVjdCB0aW1lIHRpbWU7CiAg
ICAgICAgaW50IG5zYW1wbGVzOwogICAgICAgIGludCBudW1fbXV4X2NoYW47CiAgICAgICAgY2hh
ciBtdXhfY2hhbl9uYW1lWzE2XTsKICAgICAgICBkb3VibGUgc2FtcGxlX3JhdGU7CiAgICAgICAg
Y2hhciBhY3Rpdml0eV9mbGFnczsKICAgICAgICBjaGFyIGlvX2ZsYWdzOwogICAgICAgIGNoYXIg
ZGF0YV9xdWFsaXR5X2ZsYWdzOwogICAgICAgIGludCBudW1iZXJfYmxvY2tldHRlczsKICAgICAg
ICBsb25nIGludCBudW1iZXJfdGltZV9jb3JyZWN0aW9uczsKICAgICAgICBpbnQgYm9kOwogICAg
ICAgIGludCBib2ZiOwp9OwoKc3RydWN0IGRhdGFfYmxrX2hkcgp7CiAgICAgICAgdW5zaWduZWQg
c2hvcnQgaW50IHR5cGU7CiAgICAgICAgdW5zaWduZWQgc2hvcnQgaW50IG5leHRfYmxrX2J5dGU7
Cn07CgpzdHJ1Y3QgZGF0YV9ibGtfMTAwCnsKICAgICAgICBzdHJ1Y3QgZGF0YV9ibGtfaGRyIGhk
cjsKICAgICAgICBmbG9hdCBzYW1wbGVfcmF0ZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIGZsYWdz
OwogICAgICAgIHVuc2lnbmVkIGNoYXIgcmVzZXJ2ZWRbM107Cn07CgpzdHJ1Y3QgZGF0YV9ibGtf
MTAwMAp7CiAgICAgICAgc3RydWN0IGRhdGFfYmxrX2hkciBoZHI7CiAgICAgICAgdW5zaWduZWQg
Y2hhciBlbmNvZGluZ19mbXQ7CiAgICAgICAgdW5zaWduZWQgY2hhciB3b3JkX29yZGVyOwogICAg
ICAgIHVuc2lnbmVkIGNoYXIgcmVjX2xlbmd0aDsKICAgICAgICB1bnNpZ25lZCBjaGFyIHJlc2Vy
dmVkOwp9OwoKc3RydWN0IGRhdGFfYmxrXzIwMDAKewogICAgICAgIHNob3J0IGJsa19sZW5ndGg7
CiAgICAgICAgc2hvcnQgb3BhcXVlX29mZnNldDsKICAgICAgICBpbnQgcmVjX251bTsKICAgICAg
ICB1bnNpZ25lZCBjaGFyIHdvcmRfb3JkZXI7CiAgICAgICAgdW5zaWduZWQgY2hhciBkYXRhX2Zs
YWdzOwogICAgICAgIHVuc2lnbmVkIGNoYXIgbnVtYmVyX2hlYWRlcl9mbGRzOwogICAgICAgIGNo
YXIgKipkYXRhX2hlYWRlcl9mbGRzOwogICAgICAgIHVuc2lnbmVkIGNoYXIgKm9wYXF1ZV9idWZm
Owp9OwojIDEyMSAiLi4vSW5jbHVkZS9yZHNlZWQuaCIgMgoKCgoKCmV4dGVybiBGSUxFICppbnB1
dGZpbGU7CmV4dGVybiBGSUxFICphbHRfaGVhZGVyZmlsZTsKZXh0ZXJuIGludCBvdXRwdXRfZmxh
ZzsKZXh0ZXJuIGludCByZWFkaW5nX2FsdF9maWxlOwoKZXh0ZXJuIGludCBMUkVDTDsKZXh0ZXJu
IGludCBieXRlc3dhcDsKZXh0ZXJuIGludCBjaGVja19yZXZlcnNlOwpleHRlcm4gaW50IG1vcmVf
ZGF0YTsKZXh0ZXJuIGludCBvdXRyZXNwX29sZF9mbGFnOwpleHRlcm4gaW50IG91dHJlc3BfZmxh
ZzsKZXh0ZXJuIGludCBhdF92b2x1bWU7CmV4dGVybiBpbnQgZm91bmRfbHJlY2xfZmxhZzsKZXh0
ZXJuIGludCBpbnB1dF9maWxlX3R5cGU7CgpleHRlcm4gaW50IFNlZWRfZmxhZzsKCmV4dGVybiBp
bnQgc3RhdGlvbl92b2x1bWU7CmV4dGVybiBpbnQgdm9sdW1lX2NvdW50OwpleHRlcm4gaW50IHZv
bHVtZV9udW1iZXI7CmV4dGVybiBjaGFyIHByZWNvcmRbXTsKZXh0ZXJuIGNoYXIgKnByZWNvcmRf
cHRyOwpleHRlcm4gaW50IG9mZnNldDsKZXh0ZXJuIGNoYXIgKmxyZWNvcmRfcHRyOwpleHRlcm4g
aW50IG51bV9ieXRlc19yZWFkOwpleHRlcm4gaW50IHN0YXRpb25fY291bnQ7CmV4dGVybiBjaGFy
ICpzdGF0aW9uX3BvaW50WzE1MDBdOwpleHRlcm4gY2hhciBzdGF0aW9uX2xpc3RbMzUwMF07CmV4
dGVybiBpbnQgY2hhbm5lbF9jb3VudDsKZXh0ZXJuIGNoYXIgKmNoYW5uZWxfcG9pbnRbMjUwXTsK
CmV4dGVybiBpbnQgbmV0d29ya19jb3VudDsKZXh0ZXJuIGNoYXIgKm5ldHdvcmtfcG9pbnRbMjBd
OwpleHRlcm4gY2hhciBuZXR3b3JrX2xpc3RbODBdOwoKZXh0ZXJuIGludCBsb2NhdGlvbl9jb3Vu
dDsKZXh0ZXJuIGNoYXIgKmxvY2F0aW9uX3BvaW50WzIwXTsKZXh0ZXJuIGNoYXIgbG9jYXRpb25f
bGlzdFsyMDBdOwoKCmV4dGVybiBjaGFyIGNoYW5uZWxfbGlzdFsyMDBdOwpleHRlcm4gaW50IGFs
aWFzX2NvdW50OwpleHRlcm4gY2hhciAqYWxpYXNfcG9pbnRbNTBdOwpleHRlcm4gaW50IHN0YXJ0
X3RpbWVfY291bnQ7CmV4dGVybiBzdHJ1Y3QgdGltZSAqc3RhcnRfdGltZV9wb2ludDsKZXh0ZXJu
IGludCBlbmRfdGltZV9jb3VudDsKZXh0ZXJuIHN0cnVjdCB0aW1lICplbmRfdGltZV9wb2ludDsK
CmV4dGVybiBpbnQgZXZlbnRfc3RhcnRfdGltZV9jb3VudDsKZXh0ZXJuIHN0cnVjdCB0aW1lICpl
dmVudF9zdGFydF90aW1lX3BvaW50OwpleHRlcm4gaW50IGV2ZW50X2VuZF90aW1lX2NvdW50Owpl
eHRlcm4gc3RydWN0IHRpbWUgKmV2ZW50X2VuZF90aW1lX3BvaW50OwoKZXh0ZXJuIGludCBzdGFy
dF9waGFzZV9jb3VudDsKZXh0ZXJuIHN0cnVjdCBwaGFzZSAqc3RhcnRfcGhhc2VfcG9pbnQ7CmV4
dGVybiBpbnQgZW5kX3BoYXNlX2NvdW50OwpleHRlcm4gc3RydWN0IHBoYXNlICplbmRfcGhhc2Vf
cG9pbnQ7CgpleHRlcm4gY2hhciB0ZW1wX2NoYXJbXTsKZXh0ZXJuIGNoYXIgYmxvY2tldHRlW107
CmV4dGVybiBpbnQgYmxvY2tldHRlX3R5cGU7CmV4dGVybiBpbnQgYmxvY2tldHRlX2xlbmd0aDsK
CmV4dGVybiBzdHJ1Y3QgbG9naWNhbF9yZWNvcmQgaW5wdXQ7CgpleHRlcm4gY2hhciBvdXRwdXRm
b3JtYXRbXTsKZXh0ZXJuIGludCBvdXRwdXRfZm9ybWF0OwpleHRlcm4gRklMRSAqb3V0cHV0Zmls
ZTsKZXh0ZXJuIGNoYXIgY3NzX2ZpbGVuYW1lWzEwMF07CgpleHRlcm4gaW50IE91dHB1dF9Qblpz
OwoKCgoKCgpleHRlcm4gc3RydWN0IHR5cGUxMCB0eXBlMTA7CmV4dGVybiBzdHJ1Y3QgdHlwZTEx
IHR5cGUxMTsKZXh0ZXJuIHN0cnVjdCB0eXBlMTIgdHlwZTEyOwoKCmV4dGVybiBzdHJ1Y3QgdHlw
ZTMwICp0eXBlMzBfaGVhZCA7CmV4dGVybiBzdHJ1Y3QgdHlwZTMxICp0eXBlMzFfaGVhZCA7CmV4
dGVybiBzdHJ1Y3QgdHlwZTMyICp0eXBlMzJfaGVhZCA7CmV4dGVybiBzdHJ1Y3QgdHlwZTMzICp0
eXBlMzNfaGVhZCA7CmV4dGVybiBzdHJ1Y3QgdHlwZTM0ICp0eXBlMzRfaGVhZCA7CmV4dGVybiBz
dHJ1Y3QgdHlwZTM1ICp0eXBlMzVfaGVhZCA7CgoKZXh0ZXJuIHN0cnVjdCB0eXBlNDEgKnR5cGU0
MV9oZWFkIDsKZXh0ZXJuIHN0cnVjdCB0eXBlNDIgKnR5cGU0Ml9oZWFkIDsKZXh0ZXJuIHN0cnVj
dCB0eXBlNDMgKnR5cGU0M19oZWFkIDsKZXh0ZXJuIHN0cnVjdCB0eXBlNDQgKnR5cGU0NF9oZWFk
IDsKZXh0ZXJuIHN0cnVjdCB0eXBlNDUgKnR5cGU0NV9oZWFkIDsKZXh0ZXJuIHN0cnVjdCB0eXBl
NDYgKnR5cGU0Nl9oZWFkIDsKZXh0ZXJuIHN0cnVjdCB0eXBlNDcgKnR5cGU0N19oZWFkIDsKZXh0
ZXJuIHN0cnVjdCB0eXBlNDggKnR5cGU0OF9oZWFkIDsKCgpleHRlcm4gc3RydWN0IHR5cGU1MCAq
dHlwZTUwX2hlYWQgOwoKCgoKZXh0ZXJuIHN0cnVjdCB0eXBlNzAgKnR5cGU3MF9oZWFkIDsKZXh0
ZXJuIHN0cnVjdCB0eXBlNzEgKnR5cGU3MV9oZWFkIDsKZXh0ZXJuIHN0cnVjdCB0eXBlNzIgKnR5
cGU3Ml9oZWFkIDsKZXh0ZXJuIHN0cnVjdCB0eXBlNzMgKnR5cGU3M19oZWFkIDsKZXh0ZXJuIHN0
cnVjdCB0eXBlNzQgKnR5cGU3NF9oZWFkIDsKCgoKCgpleHRlcm4gc3RydWN0IHR5cGU1MCAqY3Vy
cmVudF9zdGF0aW9uIDsKZXh0ZXJuIHN0cnVjdCB0eXBlNTIgKmN1cnJlbnRfY2hhbm5lbCA7CmV4
dGVybiBzdHJ1Y3QgdHlwZTcxICpjdXJyZW50X29yaWdpbiA7CgpleHRlcm4gc3RydWN0IGRhdGFf
aGRyICpkYXRhX2hkcjsKZXh0ZXJuIHN0cnVjdCB0aW1lIGxhc3RfdGltZTsKZXh0ZXJuIGRvdWJs
ZSBsYXN0X3NhbXBsZV9yYXRlOwpleHRlcm4gaW50IGxhc3RfbnNhbXBsZXM7CmV4dGVybiBpbnQg
c2Vpc19idWZmZXJfbGVuZ3RoOwoKZXh0ZXJuIGZsb2F0ICpzZWlzbWljX2RhdGE7CmV4dGVybiBm
bG9hdCAqc2Vpc21pY19kYXRhX3B0cjsKZXh0ZXJuIGNoYXIgZGVjb2RlW107CgpleHRlcm4gaW50
IG51bWl0ZW1zOwpleHRlcm4gY2hhciAqaXRlbVtdOwpleHRlcm4gbG9uZyBpbnQgc3RhcnRfcmVj
b3JkOwpleHRlcm4gZG91YmxlIHNhbXBsZV9yYXRlX2FjY3VtOwpleHRlcm4gaW50IHNhbXBsZV9y
YXRlX2NvdW50OwpleHRlcm4gZG91YmxlIGFkal90b2xlcmFuY2U7CgoKCgoKCnZvaWQgcmVhZF9s
b2dpY2FsX3JlY29yZCAoKTsKaW50IG1lbW5jcHkgKCk7CnZvaWQgcmVhZF9ibG9ja2V0dGUgKCk7
CnZvaWQgcGFnZXRvcCAoKTsKdm9pZCBhbGxvY2F0aW9uX2Vycm9yICgpOwppbnQgcGFyc2VfaW50
ICgpOwpsb25nIGludCBwYXJzZV9sb25nICgpOwpkb3VibGUgcGFyc2VfZG91YmxlICgpOwpjaGFy
ICpwYXJzZV9uY2hhciAoKTsKY2hhciAqcGFyc2VfdmFybHN0ciAoKTsKc3RydWN0IHRpbWUgdGlt
ZWFkZCAoKTsKc3RydWN0IHRpbWUgdGltZXN1YigpOwoKc3RydWN0IHRpbWUgdGltZWFkZF9kb3Vi
bGUgKCk7CnN0cnVjdCB0aW1lIHRpbWVhZGRwaGFzZSAoKTsKaW50IHRpbWVjbXAgKCk7CmRvdWJs
ZSB0aW1lZGlmICgpOwp2b2lkIHNub29wICgpOwp2b2lkIHNub29wX2RhdGEgKCk7CnVuc2lnbmVk
IGxvbmcgaW50IHN3YXBfNGJ5dGUgKCk7CnVuc2lnbmVkIHNob3J0IGludCBzd2FwXzJieXRlICgp
OwppbnQgZmluZF93b3Jkb3JkZXIgKCk7CnN0cnVjdCBvcHRzdHJ1Y3QgKmNtZGxpbmVwcm9jICgp
OwoKCnZvaWQgcHJvY2Vzc192b2xoICgpOwp2b2lkIHBhcnNlX3R5cGUxMCAoKTsKdm9pZCBwYXJz
ZV90eXBlMTEgKCk7CnZvaWQgcGFyc2VfdHlwZTEyICgpOwp2b2lkIHByaW50X3ZvbGggKCk7CnZv
aWQgcHJpbnRfdHlwZTEwICgpOwp2b2lkIHByaW50X3R5cGUxMSAoKTsKdm9pZCBwcmludF90eXBl
MTIgKCk7CgoKdm9pZCBwcm9jZXNzX2JsYW5rICgpOwoKCnZvaWQgcHJvY2Vzc19hYnJ2ZCAoKTsK
dm9pZCBwYXJzZV90eXBlMzAgKCk7CnZvaWQgcGFyc2VfdHlwZTMxICgpOwp2b2lkIHBhcnNlX3R5
cGUzMiAoKTsKdm9pZCBwYXJzZV90eXBlMzMgKCk7CnZvaWQgcGFyc2VfdHlwZTM0ICgpOwp2b2lk
IHBhcnNlX3R5cGUzNSAoKTsKdm9pZCBwcmludF9hYnJ2ZCAoKTsKdm9pZCBwcmludF90eXBlMzAg
KCk7CnZvaWQgcHJpbnRfdHlwZTMxICgpOwp2b2lkIHByaW50X3R5cGUzMiAoKTsKdm9pZCBwcmlu
dF90eXBlMzMgKCk7CnZvaWQgcHJpbnRfdHlwZTM0ICgpOwp2b2lkIHByaW50X3R5cGUzNSAoKTsK
Cgp2b2lkIHBhcnNlX3R5cGU0MSAoKTsKdm9pZCBwYXJzZV90eXBlNDIgKCk7CnZvaWQgcGFyc2Vf
dHlwZTQzICgpOwp2b2lkIHBhcnNlX3R5cGU0NCAoKTsKdm9pZCBwYXJzZV90eXBlNDUgKCk7CnZv
aWQgcGFyc2VfdHlwZTQ2ICgpOwp2b2lkIHBhcnNlX3R5cGU0NyAoKTsKdm9pZCBwYXJzZV90eXBl
NDggKCk7CgoKaW50IHByb2Nlc3Nfc3RuaCAoKTsKaW50IHBhcnNlX3R5cGU1MCAoKTsKdm9pZCBw
YXJzZV90eXBlNTEgKCk7CmludCBwYXJzZV90eXBlNTIgKCk7CnN0cnVjdCByZXNwb25zZSAqZ2V0
X3Jlc3BvbnNlICgpOwp2b2lkIHBhcnNlX3R5cGU1MyAoKTsKdm9pZCBwYXJzZV90eXBlNTQgKCk7
CnZvaWQgcGFyc2VfdHlwZTU1ICgpOwp2b2lkIHBhcnNlX3R5cGU1NiAoKTsKdm9pZCBwYXJzZV90
eXBlNTcgKCk7CnZvaWQgcGFyc2VfdHlwZTU4ICgpOwp2b2lkIHBhcnNlX3R5cGU1OSAoKTsKdm9p
ZCBwYXJzZV90eXBlNjAgKCk7CnZvaWQgcGFyc2VfdHlwZTYxICgpOwp2b2lkIHBhcnNlX3R5cGU2
MiAoKTsKCnZvaWQgcHJpbnRfc3RuaCAoKTsKdm9pZCBwcmludF90eXBlNTAgKCk7CnZvaWQgcHJp
bnRfdHlwZTUxICgpOwp2b2lkIHByaW50X2NoYW5uZWwgKCk7CnZvaWQgcHJpbnRfdHlwZTUyICgp
Owp2b2lkIHByaW50X3Jlc3BvbnNlICgpOwp2b2lkIHByaW50X3R5cGU1MyAoKTsKdm9pZCBwcmlu
dF90eXBlNTQgKCk7CnZvaWQgcHJpbnRfdHlwZTU1ICgpOwp2b2lkIHByaW50X3R5cGU1NiAoKTsK
dm9pZCBwcmludF90eXBlNTcgKCk7CnZvaWQgcHJpbnRfdHlwZTU4ICgpOwp2b2lkIHByaW50X3R5
cGU1OSAoKTsKdm9pZCBwcmludF90eXBlNjAgKCk7CnZvaWQgcHJpbnRfdHlwZTYxICgpOwp2b2lk
IHByaW50X3R5cGU2MiAoKTsKCgp2b2lkIHByb2Nlc3NfdGltZWggKCk7CnZvaWQgcGFyc2VfdHlw
ZTcwICgpOwp2b2lkIHBhcnNlX3R5cGU3MSAoKTsKdm9pZCBwYXJzZV90eXBlNzIgKCk7CnZvaWQg
cGFyc2VfdHlwZTczICgpOwp2b2lkIHByaW50X3RpbWVoICgpOwp2b2lkIHByaW50X3R5cGU3MCAo
KTsKdm9pZCBwcmludF90eXBlNzEgKCk7CnZvaWQgcHJpbnRfdHlwZTcyICgpOwp2b2lkIHByaW50
X3R5cGU3MyAoKTsKCgp2b2lkIHByb2Nlc3NfZGF0YSAoKTsKdm9pZCBpbml0X2RhdGFfaGRyICgp
Owp2b2lkIGNvbnZlcnRfc2VlZGhkciAoKTsKdm9pZCBkZWNvZGVfYXNybyAoKTsKdm9pZCBkZWNv
ZGVfY2RzbiAoKTsKdm9pZCBkZWNvZGVfZHd3c3NuICgpOwp2b2lkIGRlY29kZV9zdGVpbSAoKTsK
dm9pZCBkZWNvZGVfc3JvICgpOwp2b2lkIGRlY29kZV8zMmJpdCAoKTsKdm9pZCBvdXRwdXRfZGF0
YSAoKTsKIyAzNiAiZGVjb2RlX3N0ZWltLmMiIDIKIyA0NCAiZGVjb2RlX3N0ZWltLmMiCnN0YXRp
YyBpbnQgc2FtcF9jbnRlcjsKCmV4dGVybiBzdHJ1Y3Qgc3RuX2xpc3QgKnN0bl9saXN0aGVhZDsK
CnZvaWQgZGVjb2RlX3N0ZWltIChkYXRhX3B0ciwgbnNhbXBsZXMsIGluZGV4KQpjaGFyICpkYXRh
X3B0cjsKaW50IG5zYW1wbGVzOwppbnQgaW5kZXg7Cgp7CiAgICAgICAgdW5zaWduZWQgc2hvcnQg
aW50ICp0ZW1wX3UyYnl0ZTsKICAgICAgICBzaG9ydCBpbnQgKnRlbXBfMmJ5dGU7CiAgICAgICAg
aW50ICp0ZW1wXzRieXRlOwogICAgICAgIGNoYXIgKnRlbXBfYnl0ZTsKICAgICAgICBpbnQgdGVt
cDsKICAgICAgICBmbG9hdCBzYW1wbGU7CiAgICAgICAgZG91YmxlIGxhc3RfdmFsdWU7CiAgICAg
ICAgaW50IGluaXRpYWxfdmFsdWU7CiAgICAgICAgaW50IGZpbmFsX3ZhbHVlOwoKICAgICAgICBp
bnQgaTsKICAgICAgICBpbnQgajsKICAgICAgICBpbnQgazsKICAgICAgICBpbnQgY29tcHJlc3Np
b25faW50OwogICAgICAgIGludCBjb21wcmVzc2lvbl9mbGFnWzE2XTsKICAgICAgICBpbnQgbnVt
X2ZyYW1lczsKICAgICAgICBpbnQgY291bnRlcjsKCiAgICAgICAgRklMRSAqZnA7CiAgICAgICAg
ZmxvYXQgKnNhdl9wdHI7CgppbnQgc2FtcDsKc3RhdGljIGludCBzYW1wbGVfY250ZXIgPSAwOwoj
IDg1ICJkZWNvZGVfc3RlaW0uYyIKICAgICAgICBpZiAoaW5kZXggIT0gMCkgbGFzdF92YWx1ZSA9
IChkb3VibGUpICooc2Vpc21pY19kYXRhX3B0ciAtIDEpOwogICAgICAgIGVsc2UgbGFzdF92YWx1
ZSA9IDA7CgoKICAgICAgICB0ZW1wXzRieXRlID0gKGludCAqKSAoZGF0YV9wdHIgKyA0KTsKICAg
ICAgICBpZiAoYnl0ZXN3YXAgPT0gITApICp0ZW1wXzRieXRlID0gc3dhcF80Ynl0ZSAoKnRlbXBf
NGJ5dGUpOwogICAgICAgIGluaXRpYWxfdmFsdWUgPSAoaW50KSAqdGVtcF80Ynl0ZTsKCiAgICAg
ICAgdGVtcF80Ynl0ZSA9IChpbnQgKikgKGRhdGFfcHRyICsgOCk7CiAgICAgICAgaWYgKGJ5dGVz
d2FwID09ICEwKSAqdGVtcF80Ynl0ZSA9IHN3YXBfNGJ5dGUgKCp0ZW1wXzRieXRlKTsKCiAgICAg
ICAgZmluYWxfdmFsdWUgPSAoaW50KSAqdGVtcF80Ynl0ZTsKCiAgICAgICAgbnVtX2ZyYW1lcyA9
IChMUkVDTCAtIGRhdGFfaGRyLT5ib2QpIC8gKDE2ICogNCk7CgoKCgoKICAgICAgICBjb3VudGVy
ID0gMDsKICAgICAgICBzYXZfcHRyID0gc2Vpc21pY19kYXRhX3B0cjsKIyAxMjEgImRlY29kZV9z
dGVpbS5jIgogICAgICAgIGZvciAoaSA9IDA7IGkgPCBudW1fZnJhbWVzOyBpKyspCiAgICAgICAg
ewoKCiAgICAgICAgICAgICAgICB0ZW1wXzRieXRlID0gKGludCAqKSBkYXRhX3B0cjsKICAgICAg
ICAgICAgICAgIGlmIChieXRlc3dhcCA9PSAhMCkgKnRlbXBfNGJ5dGUgPSBzd2FwXzRieXRlICgq
dGVtcF80Ynl0ZSk7CiAgICAgICAgICAgICAgICBjb21wcmVzc2lvbl9pbnQgPSAoaW50KSAqdGVt
cF80Ynl0ZTsKCiAgICAgICAgICAgICAgICBmb3IgKGogPSAxNTsgaiA+PSAwOyBqLS0pCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXByZXNzaW9uX2ZsYWdbal0g
PSAoY29tcHJlc3Npb25faW50ICYgMHgwMDAwMDAwMyk7CiAgICAgICAgICAgICAgICAgICAgICAg
IGNvbXByZXNzaW9uX2ludCA+Pj0gMjsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAg
ICBkYXRhX3B0ciArPSA0OwoKCgoKCgogICAgICAgICAgICAgICAgZm9yIChqID0gMTsgaiA8IDE2
OyBqKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHN3aXRjaCAo
Y29tcHJlc3Npb25fZmxhZ1tqXSkKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAg
ICAgICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9y
IChrID0gMDsgayA8IDQ7IGsrKywgZGF0YV9wdHIgKz0gMSkKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1w
X2J5dGUgPSAoY2hhciAqKSBkYXRhX3B0cjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRlbXAgPSAoaW50KSAqdGVtcF9ieXRlOwoKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGlmICh0ZW1wID4gMHg3ZikKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcCAtPSAyICogKDB4N2YgKyAxKTsKCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoKGkgPT0gMCkgJiYgKGogPT0g
MykgJiYgKGsgPT0gMCkpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGxhc3RfdmFsdWUgPQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGluaXRpYWxfdmFsdWUgLSB0ZW1wOwoKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNhbXBsZSA9IChkb3VibGUpIHRlbXAgKyBsYXN0X3Zh
bHVlOwojIDE2OCAiZGVjb2RlX3N0ZWltLmMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBpZiAoY291bnRlciA8IG5zYW1wbGVzKQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAqc2Vpc21pY19kYXRhX3B0ciA9IChmbG9hdCkgc2FtcGxlOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWlzbWljX2RhdGFfcHRyICs9
IDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYXN0X3ZhbHVlID0gc2FtcGxlOwogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY291bnRlcisrOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CgogICAgICAgICAgICAgICAgICAgICAgICBjYXNlIDI6CiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZm9yIChrID0gMDsgayA8IDI7IGsrKywgZGF0YV9wdHIgKz0gMikKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB0ZW1wXzJieXRlID0gKHNob3J0ICopIGRhdGFfcHRyOwogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGJ5dGVzd2FwID09ICEwKQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqdGVtcF8yYnl0ZSA9IHN3YXBf
MmJ5dGUgKCp0ZW1wXzJieXRlKTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB0ZW1wID0gKGludCkgKnRlbXBfMmJ5dGU7CgogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHRlbXAgPiAweDdmZmYpCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAgLT0gMiAqICgweDdmZmYgKyAxKTsKCgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChpID09IDApICYmIChqID09
IDMpICYmIChrID09IDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBsYXN0X3ZhbHVlID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBpbml0aWFsX3ZhbHVlIC0gdGVtcDsKCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzYW1wbGUgPSAoZG91YmxlKSB0ZW1wICsgbGFzdF92YWx1ZTsK
IyAyMDUgImRlY29kZV9zdGVpbS5jIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKGNvdW50ZXIgPCBuc2FtcGxlcykKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKnNlaXNtaWNfZGF0YV9wdHIgPSBzYW1wbGU7CgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZWlzbWljX2RhdGFfcHRyICs9IDE7CiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgbGFzdF92YWx1ZSA9IHNhbXBsZTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvdW50ZXIrKzsKCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKCiAgICAg
ICAgICAgICAgICAgICAgICAgIGNhc2UgMzoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmb3IgKGsgPSAwOyBrIDwgMTsgaysrLCBkYXRhX3B0ciArPSA0KQogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB0ZW1wXzRieXRlID0gKGludCAqKSBkYXRhX3B0cjsKCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpZiAoYnl0ZXN3YXAgPT0gITApCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICp0ZW1wXzRieXRlID0gc3dhcF80Ynl0ZSAoKnRl
bXBfNGJ5dGUpOwoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAg
PSAoaW50KSAqdGVtcF80Ynl0ZTsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBpZiAodGVtcCA+IDB4N2ZmZmZmZmYpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIHRlbXAgLT0gMiAqICgweDdmZmZmZmZmICsgMSk7CgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKChpID09IDApICYmIChqID09IDMp
ICYmIChrID09IDApKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBsYXN0X3ZhbHVlID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBpbml0aWFsX3ZhbHVlIC0gdGVtcDsKCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzYW1wbGUgPSAoZG91YmxlKSB0ZW1wICsgbGFzdF92YWx1
ZTsKCgoKCgoKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY291
bnRlciA8IG5zYW1wbGVzKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqc2Vpc21p
Y19kYXRhX3B0ciA9IChmbG9hdCkgc2FtcGxlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzZWlzbWljX2RhdGFfcHRyICs9IDE7CiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbGFzdF92YWx1ZSA9IHNhbXBsZTsKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvdW50ZXIrKzsKCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwoKICAgICAgICAgICAg
ICAgICAgICAgICAgY2FzZSAwOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1
bHQ6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhX3B0ciArPSA0
OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CgogICAgICAg
ICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgfQoKCiAgICAgICAgfQoKICAgICAg
ICBpZiAobnNhbXBsZXMgPCBjb3VudGVyKQogICAgICAgIHsKCgoKCgoKCiAgICAgICAgfQogICAg
ICAgIGVsc2UgaWYgKG5zYW1wbGVzID4gY291bnRlcikKICAgICAgICB7CiAgICAgICAgICAgICAg
ICBteWZwcmludGYoc3RkZXJyLCAiISEhIFdBUk5JTkcgISEhICBTdGVpbSBEZWNvbXByZXNzaW9u
IFNhbXBsZSBDb3VudCBFcnJvciBhdCBTYW1wbGU6ICVkXG4iLAppbmRleCtuc2FtcGxlcyk7CiAg
ICAgICAgICAgICAgICBteWZwcmludGYoc3RkZXJyLCAiRXhwZWN0ZWQgJWQsIGZvdW5kICVkIHNh
bXBsZXMuLi4gTG9zdCB2YWx1ZXMgd2lsbCBiZSBQYWRkZWQgd2l0aCBaZXJvc1xuIiwgbnNhbXBs
ZXMsIGNvdW50ZXIpOwoKICAgICAgICAgICAgICAgIGZvciAoaT0wO2k8KG5zYW1wbGVzLWNvdW50
ZXIpOyBpKyspICpzZWlzbWljX2RhdGFfcHRyKysgPSAwLjA7CiAgICAgICAgfQojIDMwNSAiZGVj
b2RlX3N0ZWltLmMiCn0K



More information about the Gcc-bugs mailing list