c/2090: Internal error: Segmentation fault when compiling wref.c with -Os
gilles.rajaobelina@wanadoo.fr
gilles.rajaobelina@wanadoo.fr
Sun Feb 25 10:46:00 GMT 2001
>Number: 2090
>Category: c
>Synopsis: Internal error: Segmentation fault when compiling wref.c with -Os
>Confidential: no
>Severity: serious
>Priority: high
>Responsible: unassigned
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Sun Feb 25 10:46:01 PST 2001
>Closed-Date:
>Last-Modified:
>Originator: Gilles-Claude Rajaobelina
>Release: current snapshots
>Organization:
>Environment:
building current snapshots with -Os in CFLAGS on an i686-pc-linux-gnu
>Description:
$ /opt/gnu-new/lib/gcc-lib/i686-pc-linux-gnu/3.1/cc1 -Os -fpreprocessed -o foo.s wref.i
wrt_E
wref.i: In function `wrt_E':
wref.i:1199: Internal error: Segmentation fault
Please submit a full bug report, with preprocessed source if appropriate.
See <URL: http://www.gnu.org/software/gcc/bugs.html > for instructions.
Current directory is /opt/gnu-new/lib/gcc-lib/i686-pc-linux-gnu/3.1/
GNU gdb 5.0
Copyright 2000 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i686-pc-linux-gnu"...
(gdb) cd /obj/GNU/src/BUILD/gcc/i686-pc-linux-gnu/libf2c/libI77
Working directory /obj/GNU/src/BUILD/gcc/i686-pc-linux-gnu/libf2c/libI77
(canonically /opt/obj/GNU/src/BUILD/gcc/i686-pc-linux-gnu/libf2c/libI77).
(gdb) set height 10000
(gdb) set print pretty
(gdb) r -Os -fpreprocessed -o foo.s wref.i
Starting program: /opt/gnu-new/lib/gcc-lib/i686-pc-linux-gnu/3.1/cc1 -Os -fpreprocessed -o foo.s wref.i
wrt_E
Program received signal SIGSEGV, Segmentation fault.
0x8188fe2 in handle_avail_expr (insn=0x2ac87240, expr=0x83e2100)
at /obj/GNU/src/gcc/gcc/gcse.c:3149
(gdb) where
#0 0x8188fe2 in handle_avail_expr (insn=0x2ac87240, expr=0x83e2100)
at /obj/GNU/src/gcc/gcc/gcse.c:3149
#1 0x81893e0 in classic_gcse () at /obj/GNU/src/gcc/gcc/gcse.c:3323
#2 0x8189529 in one_classic_gcse_pass (pass=1)
at /obj/GNU/src/gcc/gcc/gcse.c:3364
#3 0x8185847 in gcse_main (f=0x2ac81a40, file=0x0)
at /obj/GNU/src/gcc/gcc/gcse.c:743
#4 0x809f13d in rest_of_compilation (decl=0x2ac79680)
at /obj/GNU/src/gcc/gcc/toplev.c:3120
#5 0x80651ac in c_expand_body (fndecl=0x2ac79680, nested_p=0)
at /obj/GNU/src/gcc/gcc/c-decl.c:6740
#6 0x8064e6e in finish_function (nested=0)
at /obj/GNU/src/gcc/gcc/c-decl.c:6661
#7 0x804a447 in yyparse_1 () at //usr/lib/bison.simple:359
#8 0x809dd93 in compile_file (name=0x7ffff37c "wref.i")
at /obj/GNU/src/gcc/gcc/toplev.c:2354
#9 0x80a21fe in main (argc=6, argv=0x7ffff124)
at /obj/GNU/src/gcc/gcc/toplev.c:4942
#10 0x2aadfe26 in __libc_start_main (main=0x80a1d30 <main>, argc=6,
ubp_av=0x7ffff124, init=0x80491a4 <_init>, fini=0x82a4c1c <_fini>,
rtld_fini=0x2aab7e04 <_dl_fini>, stack_end=0x7ffff11c)
at ../sysdeps/generic/libc-start.c:129
(gdb) b handle_avail_expr
Breakpoint 1 at 0x8188fb9: file /obj/GNU/src/gcc/gcc/gcse.c, line 3139.
(gdb) command 1
Type commands for when breakpoint 1 is hit, one per line.
End with a line saying just "end".
>How-To-Repeat:
gcc -c -Os wref.i
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
>silent
>p *insn
>p *expr
>c
>end
(gdb) r
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /opt/gnu-new/lib/gcc-lib/i686-pc-linux-gnu/3.1/cc1 -Os -fpreprocessed -o foo.s wref.i
wrt_E$1 = {
code = INSN,
mode = VOIDmode,
jump = 0,
call = 0,
unchanging = 0,
volatil = 0,
in_struct = 0,
used = 0,
integrated = 0,
frame_related = 0,
fld = {{
rtwint = 115,
rtint = 115,
rtuint = 115,
rtstr = 0x73 <Address 0x73 out of bounds>,
rtx = 0x73,
rtvec = 0x73,
rttype = 115,
rt_addr_diff_vec_flags = {
min_align = 115,
base_after_vec = 0,
min_after_vec = 0,
max_after_vec = 0,
min_after_base = 0,
max_after_base = 0,
offset_unsigned = 0,
0,
scale = 0
},
rt_cselib = 0x73,
rtbit = 0x73,
rttree = 0x73,
bb = 0x73
}}
}
$2 = {
expr = 0x2ac834a0,
bitmap_index = 11,
next_same_hash = 0x83e222c,
antic_occr = 0x83e1f2c,
avail_occr = 0x83e1f38,
reaching_reg = 0x0
}
$3 = {
code = INSN,
mode = VOIDmode,
jump = 0,
call = 0,
unchanging = 0,
volatil = 0,
in_struct = 0,
used = 0,
integrated = 0,
frame_related = 0,
fld = {{
rtwint = 136,
rtint = 136,
rtuint = 136,
rtstr = 0x88 <Address 0x88 out of bounds>,
rtx = 0x88,
rtvec = 0x88,
rttype = 136,
rt_addr_diff_vec_flags = {
min_align = 136,
base_after_vec = 0,
min_after_vec = 0,
max_after_vec = 0,
min_after_base = 0,
max_after_base = 0,
offset_unsigned = 0,
0,
scale = 0
},
rt_cselib = 0x88,
rtbit = 0x88,
rttree = 0x88,
bb = 0x88
}}
}
$4 = {
expr = 0x2ac49bb0,
bitmap_index = 5,
next_same_hash = 0x0,
antic_occr = 0x83e1e24,
avail_occr = 0x83e1e30,
reaching_reg = 0x0
}
$5 = {
code = INSN,
mode = VOIDmode,
jump = 0,
call = 0,
unchanging = 0,
volatil = 0,
in_struct = 0,
used = 0,
integrated = 0,
frame_related = 0,
fld = {{
rtwint = 197,
rtint = 197,
rtuint = 197,
rtstr = 0xc5 <Address 0xc5 out of bounds>,
rtx = 0xc5,
rtvec = 0xc5,
rttype = 197,
rt_addr_diff_vec_flags = {
min_align = 197,
base_after_vec = 0,
min_after_vec = 0,
max_after_vec = 0,
min_after_base = 0,
max_after_base = 0,
offset_unsigned = 0,
0,
scale = 0
},
rt_cselib = 0xc5,
rtbit = 0xc5,
rttree = 0xc5,
bb = 0xc5
}}
}
$6 = {
expr = 0x2ac49bb0,
bitmap_index = 5,
next_same_hash = 0x0,
antic_occr = 0x83e1e24,
avail_occr = 0x83e1e30,
reaching_reg = 0x0
}
$7 = {
code = INSN,
mode = VOIDmode,
jump = 0,
call = 0,
unchanging = 0,
volatil = 0,
in_struct = 0,
used = 0,
integrated = 0,
frame_related = 0,
fld = {{
rtwint = 296,
rtint = 296,
rtuint = 296,
rtstr = 0x128 <Address 0x128 out of bounds>,
rtx = 0x128,
rtvec = 0x128,
rttype = 296,
rt_addr_diff_vec_flags = {
min_align = 40,
base_after_vec = 1,
min_after_vec = 0,
max_after_vec = 0,
min_after_base = 0,
max_after_base = 0,
offset_unsigned = 0,
0,
scale = 0
},
rt_cselib = 0x128,
rtbit = 0x128,
rttree = 0x128,
bb = 0x128
}}
}
$8 = {
expr = 0x2ac86280,
bitmap_index = 21,
next_same_hash = 0x0,
antic_occr = 0x83e2118,
avail_occr = 0x83e2124,
reaching_reg = 0x83d6f80
}
Program received signal SIGSEGV, Segmentation fault.
0x8188fe2 in handle_avail_expr (insn=0x2ac87240, expr=0x83e2100)
at /obj/GNU/src/gcc/gcc/gcse.c:3149
(gdb)
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="wref.i"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="wref.i"
Ly8jIDEgIi9vYmovR05VL3NyYy9nY2MvbGliZjJjL2xpYkk3Ny93cmVmLmMiCi8vIyAxICIvb2Jq
L0dOVS9zcmMvZ2NjL2xpYmYyYy9mMmMuaCIgMQovLyMgMzUgIi9vYmovR05VL3NyYy9nY2MvbGli
ZjJjL2YyYy5oIgovLyMgMSAiLi4vZzJjLmgiIDEKLy8jIDIxICIuLi9nMmMuaCIKdHlwZWRlZiBf
X2c3N19pbnRlZ2VyIGludGVnZXI7CnR5cGVkZWYgX19nNzdfdWludGVnZXIgdWludGVnZXI7CnR5
cGVkZWYgY2hhciAqYWRkcmVzczsKdHlwZWRlZiBzaG9ydCBpbnQgc2hvcnRpbnQ7CnR5cGVkZWYg
ZmxvYXQgcmVhbDsKdHlwZWRlZiBkb3VibGUgZG91YmxlcmVhbDsKdHlwZWRlZiBzdHJ1Y3QgeyBy
ZWFsIHIsIGk7IH0gY29tcGxleDsKdHlwZWRlZiBzdHJ1Y3QgeyBkb3VibGVyZWFsIHIsIGk7IH0g
ZG91YmxlY29tcGxleDsKdHlwZWRlZiBfX2c3N19pbnRlZ2VyIGxvZ2ljYWw7CnR5cGVkZWYgc2hv
cnQgaW50IHNob3J0bG9naWNhbDsKdHlwZWRlZiBjaGFyIGxvZ2ljYWwxOwp0eXBlZGVmIGNoYXIg
aW50ZWdlcjE7CnR5cGVkZWYgX19nNzdfbG9uZ2ludCBsb25naW50Owp0eXBlZGVmIF9fZzc3X3Vs
b25naW50IHVsb25naW50OwovLyMgNTUgIi4uL2cyYy5oIgp0eXBlZGVmIF9fZzc3X2ludGVnZXIg
ZmxhZzsKdHlwZWRlZiBfX2c3N19pbnRlZ2VyIGZ0bmxlbjsKdHlwZWRlZiBfX2c3N19pbnRlZ2Vy
IGZ0bmludDsKIAp0eXBlZGVmIHN0cnVjdAp7IGZsYWcgY2llcnI7CiAgICAgICAgZnRuaW50IGNp
dW5pdDsKICAgICAgICBmbGFnIGNpZW5kOwogICAgICAgIGNoYXIgKmNpZm10OwogICAgICAgIGZ0
bmludCBjaXJlYzsKfSBjaWxpc3Q7CiAKdHlwZWRlZiBzdHJ1Y3QKeyBmbGFnIGljaWVycjsKICAg
ICAgICBjaGFyICppY2l1bml0OwogICAgICAgIGZsYWcgaWNpZW5kOwogICAgICAgIGNoYXIgKmlj
aWZtdDsKICAgICAgICBmdG5pbnQgaWNpcmxlbjsKICAgICAgICBmdG5pbnQgaWNpcm51bTsKfSBp
Y2lsaXN0OwogCnR5cGVkZWYgc3RydWN0CnsgZmxhZyBvZXJyOwogICAgICAgIGZ0bmludCBvdW5p
dDsKICAgICAgICBjaGFyICpvZm5tOwogICAgICAgIGZ0bmxlbiBvZm5tbGVuOwogICAgICAgIGNo
YXIgKm9zdGE7CiAgICAgICAgY2hhciAqb2FjYzsKICAgICAgICBjaGFyICpvZm07CiAgICAgICAg
ZnRuaW50IG9ybDsKICAgICAgICBjaGFyICpvYmxuazsKfSBvbGlzdDsKIAp0eXBlZGVmIHN0cnVj
dAp7IGZsYWcgY2VycjsKICAgICAgICBmdG5pbnQgY3VuaXQ7CiAgICAgICAgY2hhciAqY3N0YTsK
fSBjbGxpc3Q7CiAKdHlwZWRlZiBzdHJ1Y3QKeyBmbGFnIGFlcnI7CiAgICAgICAgZnRuaW50IGF1
bml0Owp9IGFsaXN0OwogCnR5cGVkZWYgc3RydWN0CnsgZmxhZyBpbmVycjsKICAgICAgICBmdG5p
bnQgaW51bml0OwogICAgICAgIGNoYXIgKmluZmlsZTsKICAgICAgICBmdG5sZW4gaW5maWxlbjsK
ICAgICAgICBmdG5pbnQgKmluZXg7CiAgICAgICAgZnRuaW50ICppbm9wZW47CiAgICAgICAgZnRu
aW50ICppbm51bTsKICAgICAgICBmdG5pbnQgKmlubmFtZWQ7CiAgICAgICAgY2hhciAqaW5uYW1l
OwogICAgICAgIGZ0bmxlbiBpbm5hbWxlbjsKICAgICAgICBjaGFyICppbmFjYzsKICAgICAgICBm
dG5sZW4gaW5hY2NsZW47CiAgICAgICAgY2hhciAqaW5zZXE7CiAgICAgICAgZnRubGVuIGluc2Vx
bGVuOwogICAgICAgIGNoYXIgKmluZGlyOwogICAgICAgIGZ0bmxlbiBpbmRpcmxlbjsKICAgICAg
ICBjaGFyICppbmZtdDsKICAgICAgICBmdG5sZW4gaW5mbXRsZW47CiAgICAgICAgY2hhciAqaW5m
b3JtOwogICAgICAgIGZ0bmludCBpbmZvcm1sZW47CiAgICAgICAgY2hhciAqaW51bmY7CiAgICAg
ICAgZnRubGVuIGludW5mbGVuOwogICAgICAgIGZ0bmludCAqaW5yZWNsOwogICAgICAgIGZ0bmlu
dCAqaW5ucmVjOwogICAgICAgIGNoYXIgKmluYmxhbms7CiAgICAgICAgZnRubGVuIGluYmxhbmts
ZW47Cn0gaW5saXN0OwogCnVuaW9uIE11bHRpdHlwZSB7CiAgICAgICAgaW50ZWdlcjEgZzsKICAg
ICAgICBzaG9ydGludCBoOwogICAgICAgIGludGVnZXIgaTsKIAogICAgICAgIHJlYWwgcjsKICAg
ICAgICBkb3VibGVyZWFsIGQ7CiAgICAgICAgY29tcGxleCBjOwogICAgICAgIGRvdWJsZWNvbXBs
ZXggejsKICAgICAgICB9OwogCnR5cGVkZWYgdW5pb24gTXVsdGl0eXBlIE11bHRpdHlwZTsKIApz
dHJ1Y3QgVmFyZGVzYyB7CiAgICAgICAgY2hhciAqbmFtZTsKICAgICAgICBjaGFyICphZGRyOwog
ICAgICAgIGZ0bmxlbiAqZGltczsKICAgICAgICBpbnQgdHlwZTsKICAgICAgICB9Owp0eXBlZGVm
IHN0cnVjdCBWYXJkZXNjIFZhcmRlc2M7CiAKc3RydWN0IE5hbWVsaXN0IHsKICAgICAgICBjaGFy
ICpuYW1lOwogICAgICAgIFZhcmRlc2MgKip2YXJzOwogICAgICAgIGludCBudmFyczsKICAgICAg
ICB9Owp0eXBlZGVmIHN0cnVjdCBOYW1lbGlzdCBOYW1lbGlzdDsKLy8jIDE5MyAiLi4vZzJjLmgi
CnR5cGVkZWYgaW50ICgqVV9mcCkoKTsKdHlwZWRlZiBzaG9ydGludCAoKkpfZnApKCk7CnR5cGVk
ZWYgaW50ZWdlciAoKklfZnApKCk7CnR5cGVkZWYgcmVhbCAoKlJfZnApKCk7CnR5cGVkZWYgZG91
YmxlcmVhbCAoKkRfZnApKCksICgqRV9mcCkoKTsKdHlwZWRlZiB2b2lkICgqQ19mcCkoKTsKdHlw
ZWRlZiB2b2lkICgqWl9mcCkoKTsKdHlwZWRlZiBsb2dpY2FsICgqTF9mcCkoKTsKdHlwZWRlZiBz
aG9ydGxvZ2ljYWwgKCpLX2ZwKSgpOwp0eXBlZGVmIHZvaWQgKCpIX2ZwKSgpOwp0eXBlZGVmIGlu
dCAoKlNfZnApKCk7CiAKdHlwZWRlZiB2b2lkIENfZjsKdHlwZWRlZiB2b2lkIEhfZjsKdHlwZWRl
ZiB2b2lkIFpfZjsKdHlwZWRlZiBkb3VibGVyZWFsIEVfZjsKLy8jIDM2ICIvb2JqL0dOVS9zcmMv
Z2NjL2xpYmYyYy9mMmMuaCIgMgovLyMgMiAiL29iai9HTlUvc3JjL2djYy9saWJmMmMvbGliSTc3
L3dyZWYuYyIgMgovLyMgMSAiL29iai9HTlUvc3JjL2djYy9saWJmMmMvbGliSTc3L2Zpby5oIiAx
Ci8vIyAxICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRpby5oIiAx
IDMKLy8jIDI3ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRpby5o
IiAzCi8vIyAxICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9mZWF0dXJl
cy5oIiAxIDMKLy8jIDI4MyAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUv
ZmVhdHVyZXMuaCIgMwovLyMgMSAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1
ZGUvc3lzL2NkZWZzLmgiIDEgMwovLyMgMjg0ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1n
bnUvaW5jbHVkZS9mZWF0dXJlcy5oIiAyIDMKLy8jIDMxMSAiL29wdC9nbnUtbmV3L2k2ODYtcGMt
bGludXgtZ251L2luY2x1ZGUvZmVhdHVyZXMuaCIgMwovLyMgMSAiL29wdC9nbnUtbmV3L2k2ODYt
cGMtbGludXgtZ251L2luY2x1ZGUvZ251L3N0dWJzLmgiIDEgMwovLyMgMzEyICIvb3B0L2dudS1u
ZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9mZWF0dXJlcy5oIiAyIDMKLy8jIDI4ICIvb3B0
L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRpby5oIiAyIDMKIAovLyMgMSAi
L29iai9HTlUvc3JjL0JVSUxEL2djYy9nY2MvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCi8vIyAxOTkg
Ii9vYmovR05VL3NyYy9CVUlMRC9nY2MvZ2NjL2luY2x1ZGUvc3RkZGVmLmgiIDMKdHlwZWRlZiB1
bnNpZ25lZCBpbnQgc2l6ZV90OwovLyMgMzQgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdu
dS9pbmNsdWRlL3N0ZGlvLmgiIDIgMwogCi8vIyAxICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51
eC1nbnUvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDEgMwovLyMgMjYgIi9vcHQvZ251LW5ldy9pNjg2
LXBjLWxpbnV4LWdudS9pbmNsdWRlL2JpdHMvdHlwZXMuaCIgMwovLyMgMSAiL29wdC9nbnUtbmV3
L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvZmVhdHVyZXMuaCIgMSAzCi8vIyAyNyAiL29wdC9n
bnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvYml0cy90eXBlcy5oIiAyIDMKIAovLyMg
MSAiL29iai9HTlUvc3JjL0JVSUxEL2djYy9nY2MvaW5jbHVkZS9zdGRkZWYuaCIgMSAzCi8vIyAz
MCAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvYml0cy90eXBlcy5oIiAy
IDMKIAp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191X2NoYXI7CnR5cGVkZWYgdW5zaWduZWQgc2hv
cnQgX191X3Nob3J0Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VfaW50Owp0eXBlZGVmIHVuc2ln
bmVkIGxvbmcgX191X2xvbmc7CiAKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcg
bG9uZyBpbnQgX191X3F1YWRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIGxvbmcgbG9uZyBpbnQg
X19xdWFkX3Q7Ci8vIyA0OSAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUv
Yml0cy90eXBlcy5oIiAzCnR5cGVkZWYgc2lnbmVkIGNoYXIgX19pbnQ4X3Q7CnR5cGVkZWYgdW5z
aWduZWQgY2hhciBfX3VpbnQ4X3Q7CnR5cGVkZWYgc2lnbmVkIHNob3J0IGludCBfX2ludDE2X3Q7
CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IF9fdWludDE2X3Q7CnR5cGVkZWYgc2lnbmVkIGlu
dCBfX2ludDMyX3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdWludDMyX3Q7CiAKX19leHRlbnNp
b25fXyB0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcgaW50IF9faW50NjRfdDsKX19leHRlbnNpb25f
XyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQgX191aW50NjRfdDsKIAp0eXBlZGVmIF9f
cXVhZF90ICpfX3FhZGRyX3Q7CiAKdHlwZWRlZiBfX3VfcXVhZF90IF9fZGV2X3Q7CnR5cGVkZWYg
X191X2ludCBfX3VpZF90Owp0eXBlZGVmIF9fdV9pbnQgX19naWRfdDsKdHlwZWRlZiBfX3VfbG9u
ZyBfX2lub190Owp0eXBlZGVmIF9fdV9pbnQgX19tb2RlX3Q7CnR5cGVkZWYgX191X2ludCBfX25s
aW5rX3Q7CnR5cGVkZWYgbG9uZyBpbnQgX19vZmZfdDsKdHlwZWRlZiBfX3F1YWRfdCBfX2xvZmZf
dDsKdHlwZWRlZiBpbnQgX19waWRfdDsKdHlwZWRlZiBpbnQgX19zc2l6ZV90Owp0eXBlZGVmIF9f
dV9sb25nIF9fcmxpbV90Owp0eXBlZGVmIF9fdV9xdWFkX3QgX19ybGltNjRfdDsKdHlwZWRlZiBf
X3VfaW50IF9faWRfdDsKIAp0eXBlZGVmIHN0cnVjdAogIHsKICAgIGludCBfX3ZhbFsyXTsKICB9
IF9fZnNpZF90OwogCnR5cGVkZWYgaW50IF9fZGFkZHJfdDsKdHlwZWRlZiBjaGFyICpfX2NhZGRy
X3Q7CnR5cGVkZWYgbG9uZyBpbnQgX190aW1lX3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdXNl
Y29uZHNfdDsKdHlwZWRlZiBsb25nIGludCBfX3N1c2Vjb25kc190Owp0eXBlZGVmIGxvbmcgaW50
IF9fc3dibGtfdDsKIAp0eXBlZGVmIGxvbmcgaW50IF9fY2xvY2tfdDsKIAp0eXBlZGVmIGludCBf
X2Nsb2NraWRfdDsKIAp0eXBlZGVmIGludCBfX3RpbWVyX3Q7CiAKdHlwZWRlZiBpbnQgX19rZXlf
dDsKIAp0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCBfX2lwY19waWRfdDsKIAp0eXBlZGVmIGxv
bmcgaW50IF9fYmxrc2l6ZV90OwogCnR5cGVkZWYgbG9uZyBpbnQgX19ibGtjbnRfdDsKdHlwZWRl
ZiBfX3F1YWRfdCBfX2Jsa2NudDY0X3Q7CiAKdHlwZWRlZiBfX3VfbG9uZyBfX2ZzYmxrY250X3Q7
CnR5cGVkZWYgX191X3F1YWRfdCBfX2ZzYmxrY250NjRfdDsKIAp0eXBlZGVmIF9fdV9sb25nIF9f
ZnNmaWxjbnRfdDsKdHlwZWRlZiBfX3VfcXVhZF90IF9fZnNmaWxjbnQ2NF90OwogCnR5cGVkZWYg
X191X3F1YWRfdCBfX2lubzY0X3Q7CiAKdHlwZWRlZiBfX2xvZmZfdCBfX29mZjY0X3Q7CiAKdHlw
ZWRlZiBsb25nIGludCBfX3Rfc2NhbGFyX3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgX190
X3VzY2FsYXJfdDsKIAp0eXBlZGVmIGludCBfX2ludHB0cl90OwogCnR5cGVkZWYgdW5zaWduZWQg
aW50IF9fc29ja2xlbl90OwovLyMgMzYgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9p
bmNsdWRlL3N0ZGlvLmgiIDIgMwovLyMgNDQgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdu
dS9pbmNsdWRlL3N0ZGlvLmgiIDMKdHlwZWRlZiBzdHJ1Y3QgX0lPX0ZJTEUgRklMRTsKLy8jIDU0
ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRpby5oIiAzCnR5cGVk
ZWYgc3RydWN0IF9JT19GSUxFIF9fRklMRTsKLy8jIDY0ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1s
aW51eC1nbnUvaW5jbHVkZS9zdGRpby5oIiAzCi8vIyAxICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1s
aW51eC1nbnUvaW5jbHVkZS9saWJpby5oIiAxIDMKLy8jIDMwICIvb3B0L2dudS1uZXcvaTY4Ni1w
Yy1saW51eC1nbnUvaW5jbHVkZS9saWJpby5oIiAzCi8vIyAxICIvb3B0L2dudS1uZXcvaTY4Ni1w
Yy1saW51eC1nbnUvaW5jbHVkZS9fR19jb25maWcuaCIgMSAzCi8vIyA5ICIvb3B0L2dudS1uZXcv
aTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9fR19jb25maWcuaCIgMwovLyMgMSAiL29wdC9nbnUt
bmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvYml0cy90eXBlcy5oIiAxIDMKLy8jIDEwICIv
b3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9fR19jb25maWcuaCIgMiAzCiAK
Ly8jIDEgIi9vYmovR05VL3NyYy9CVUlMRC9nY2MvZ2NjL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwov
LyMgMjg3ICIvb2JqL0dOVS9zcmMvQlVJTEQvZ2NjL2djYy9pbmNsdWRlL3N0ZGRlZi5oIiAzCnR5
cGVkZWYgbG9uZyBpbnQgd2NoYXJfdDsKLy8jIDMxMiAiL29iai9HTlUvc3JjL0JVSUxEL2djYy9n
Y2MvaW5jbHVkZS9zdGRkZWYuaCIgMwp0eXBlZGVmIHVuc2lnbmVkIGludCB3aW50X3Q7Ci8vIyAx
NSAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvX0dfY29uZmlnLmgiIDIg
MwovLyMgMjQgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL19HX2NvbmZp
Zy5oIiAzCi8vIyAxICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS93Y2hh
ci5oIiAxIDMKLy8jIDQ4ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS93
Y2hhci5oIiAzCi8vIyAxICIvb2JqL0dOVS9zcmMvQlVJTEQvZ2NjL2djYy9pbmNsdWRlL3N0ZGRl
Zi5oIiAxIDMKLy8jIDQ5ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS93
Y2hhci5oIiAyIDMKIAovLyMgMSAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1
ZGUvYml0cy93Y2hhci5oIiAxIDMKLy8jIDUxICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1n
bnUvaW5jbHVkZS93Y2hhci5oIiAyIDMKLy8jIDY3ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51
eC1nbnUvaW5jbHVkZS93Y2hhci5oIiAzCnR5cGVkZWYgc3RydWN0CnsKICBpbnQgX19jb3VudDsK
ICB1bmlvbgogIHsKICAgIHdpbnRfdCBfX3djaDsKICAgIGNoYXIgX193Y2hiWzRdOwogIH0gX192
YWx1ZTsKfSBfX21ic3RhdGVfdDsKLy8jIDI1ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1n
bnUvaW5jbHVkZS9fR19jb25maWcuaCIgMiAzCiAKdHlwZWRlZiBzdHJ1Y3QKewogIF9fb2ZmX3Qg
X19wb3M7CiAgX19tYnN0YXRlX3QgX19zdGF0ZTsKfSBfR19mcG9zX3Q7CnR5cGVkZWYgc3RydWN0
CnsKICBfX29mZjY0X3QgX19wb3M7CiAgX19tYnN0YXRlX3QgX19zdGF0ZTsKfSBfR19mcG9zNjRf
dDsKLy8jIDQ0ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9fR19jb25m
aWcuaCIgMwovLyMgMSAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvZ2Nv
bnYuaCIgMSAzCi8vIyAyNiAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUv
Z2NvbnYuaCIgMwovLyMgMSAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUv
ZmVhdHVyZXMuaCIgMSAzCi8vIyAyNyAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2lu
Y2x1ZGUvZ2NvbnYuaCIgMiAzCiAKLy8jIDEgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdu
dS9pbmNsdWRlL3djaGFyLmgiIDEgMwovLyMgNDggIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4
LWdudS9pbmNsdWRlL3djaGFyLmgiIDMKLy8jIDEgIi9vYmovR05VL3NyYy9CVUlMRC9nY2MvZ2Nj
L2luY2x1ZGUvc3RkZGVmLmgiIDEgMwovLyMgNDkgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4
LWdudS9pbmNsdWRlL3djaGFyLmgiIDIgMwogCi8vIyAxICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1s
aW51eC1nbnUvaW5jbHVkZS9iaXRzL3djaGFyLmgiIDEgMwovLyMgNTEgIi9vcHQvZ251LW5ldy9p
Njg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL3djaGFyLmgiIDIgMwovLyMgMjkgIi9vcHQvZ251LW5l
dy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL2djb252LmgiIDIgMwogCi8vIyAxICIvb2JqL0dO
VS9zcmMvQlVJTEQvZ2NjL2djYy9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKLy8jIDMxICIvb3B0L2du
dS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9nY29udi5oIiAyIDMKIAplbnVtCnsKICBf
X0dDT05WX09LID0gMCwKICBfX0dDT05WX05PQ09OViwKICBfX0dDT05WX05PREIsCiAgX19HQ09O
Vl9OT01FTSwKIAogIF9fR0NPTlZfRU1QVFlfSU5QVVQsCiAgX19HQ09OVl9GVUxMX09VVFBVVCwK
ICBfX0dDT05WX0lMTEVHQUxfSU5QVVQsCiAgX19HQ09OVl9JTkNPTVBMRVRFX0lOUFVULAogCiAg
X19HQ09OVl9JTExFR0FMX0RFU0NSSVBUT1IsCiAgX19HQ09OVl9JTlRFUk5BTF9FUlJPUgp9Owog
CmVudW0KewogIF9fR0NPTlZfSVNfTEFTVCA9IDB4MDAwMSwKICBfX0dDT05WX0lHTk9SRV9FUlJP
UlMgPSAweDAwMDIKfTsKIApzdHJ1Y3QgX19nY29udl9zdGVwOwpzdHJ1Y3QgX19nY29udl9zdGVw
X2RhdGE7CnN0cnVjdCBfX2djb252X2xvYWRlZF9vYmplY3Q7CnN0cnVjdCBfX2djb252X3RyYW5z
X2RhdGE7CiAKdHlwZWRlZiBpbnQgKCpfX2djb252X2ZjdCkgKHN0cnVjdCBfX2djb252X3N0ZXAg
Kiwgc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRhICosCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiosIF9fY29uc3QgdW5zaWduZWQgY2hhciAqLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqKiwgc2l6ZV90ICosIGludCwg
aW50KTsKIAp0eXBlZGVmIGludCAoKl9fZ2NvbnZfaW5pdF9mY3QpIChzdHJ1Y3QgX19nY29udl9z
dGVwICopOwp0eXBlZGVmIHZvaWQgKCpfX2djb252X2VuZF9mY3QpIChzdHJ1Y3QgX19nY29udl9z
dGVwICopOwogCnR5cGVkZWYgaW50ICgqX19nY29udl90cmFuc19mY3QpIChzdHJ1Y3QgX19nY29u
dl9zdGVwICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgX19nY29u
dl9zdGVwX2RhdGEgKiwgdm9pZCAqLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
X19jb25zdCB1bnNpZ25lZCBjaGFyICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiwgdW5zaWduZWQgY2hhciAqKiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqKTsKIAp0eXBlZGVmIGludCAoKl9fZ2Nv
bnZfdHJhbnNfY29udGV4dF9mY3QpICh2b2lkICosIF9fY29uc3QgdW5zaWduZWQgY2hhciAqLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHVuc2lnbmVk
IGNoYXIgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWdu
ZWQgY2hhciAqLCB1bnNpZ25lZCBjaGFyICopOwogCnR5cGVkZWYgaW50ICgqX19nY29udl90cmFu
c19xdWVyeV9mY3QpIChfX2NvbnN0IGNoYXIgKiwgX19jb25zdCBjaGFyICoqKiwKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCAqKTsKIAp0eXBlZGVmIGludCAo
Kl9fZ2NvbnZfdHJhbnNfaW5pdF9mY3QpICh2b2lkICoqLCBjb25zdCBjaGFyICopOwp0eXBlZGVm
IHZvaWQgKCpfX2djb252X3RyYW5zX2VuZF9mY3QpICh2b2lkICopOwogCnN0cnVjdCBfX2djb252
X3RyYW5zX2RhdGEKewogCiAgX19nY29udl90cmFuc19mY3QgX190cmFuc19mY3Q7CiAgX19nY29u
dl90cmFuc19jb250ZXh0X2ZjdCBfX3RyYW5zX2NvbnRleHRfZmN0OwogIF9fZ2NvbnZfdHJhbnNf
ZW5kX2ZjdCBfX3RyYW5zX2VuZF9mY3Q7CiAgdm9pZCAqX19kYXRhOwogIHN0cnVjdCBfX2djb252
X3RyYW5zX2RhdGEgKl9fbmV4dDsKfTsKIApzdHJ1Y3QgX19nY29udl9zdGVwCnsKICBzdHJ1Y3Qg
X19nY29udl9sb2FkZWRfb2JqZWN0ICpfX3NobGliX2hhbmRsZTsKICBfX2NvbnN0IGNoYXIgKl9f
bW9kbmFtZTsKIAogIGludCBfX2NvdW50ZXI7CiAKICBjaGFyICpfX2Zyb21fbmFtZTsKICBjaGFy
ICpfX3RvX25hbWU7CiAKICBfX2djb252X2ZjdCBfX2ZjdDsKICBfX2djb252X2luaXRfZmN0IF9f
aW5pdF9mY3Q7CiAgX19nY29udl9lbmRfZmN0IF9fZW5kX2ZjdDsKIAogIGludCBfX21pbl9uZWVk
ZWRfZnJvbTsKICBpbnQgX19tYXhfbmVlZGVkX2Zyb207CiAgaW50IF9fbWluX25lZWRlZF90bzsK
ICBpbnQgX19tYXhfbmVlZGVkX3RvOwogCiAgaW50IF9fc3RhdGVmdWw7CiAKICB2b2lkICpfX2Rh
dGE7Cn07CiAKc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRhCnsKICB1bnNpZ25lZCBjaGFyICpfX291
dGJ1ZjsKICB1bnNpZ25lZCBjaGFyICpfX291dGJ1ZmVuZDsKIAogIGludCBfX2ZsYWdzOwogCiAg
aW50IF9faW52b2NhdGlvbl9jb3VudGVyOwogCiAgaW50IF9faW50ZXJuYWxfdXNlOwogCiAgX19t
YnN0YXRlX3QgKl9fc3RhdGVwOwogIF9fbWJzdGF0ZV90IF9fc3RhdGU7CiAKICBzdHJ1Y3QgX19n
Y29udl90cmFuc19kYXRhICpfX3RyYW5zOwp9OwogCnR5cGVkZWYgc3RydWN0IF9fZ2NvbnZfaW5m
bwp7CiAgc2l6ZV90IF9fbnN0ZXBzOwogIHN0cnVjdCBfX2djb252X3N0ZXAgKl9fc3RlcHM7CiAg
X19leHRlbnNpb25fXyBzdHJ1Y3QgX19nY29udl9zdGVwX2RhdGEgX19kYXRhIFtdOwp9ICpfX2dj
b252X3Q7Ci8vIyA0NSAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvX0df
Y29uZmlnLmgiIDIgMwp0eXBlZGVmIHVuaW9uCnsKICBzdHJ1Y3QgX19nY29udl9pbmZvIF9fY2Q7
CiAgc3RydWN0CiAgewogICAgc3RydWN0IF9fZ2NvbnZfaW5mbyBfX2NkOwogICAgc3RydWN0IF9f
Z2NvbnZfc3RlcF9kYXRhIF9fZGF0YTsKICB9IF9fY29tYmluZWQ7Cn0gX0dfaWNvbnZfdDsKIAp0
eXBlZGVmIGludCBfR19pbnQxNl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19ISV9fKSkp
Owp0eXBlZGVmIGludCBfR19pbnQzMl90IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19TSV9f
KSkpOwp0eXBlZGVmIHVuc2lnbmVkIGludCBfR191aW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19t
b2RlX18gKF9fSElfXykpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX0dfdWludDMyX3QgX19hdHRy
aWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJX18pKSk7Ci8vIyAzMSAiL29wdC9nbnUtbmV3L2k2ODYt
cGMtbGludXgtZ251L2luY2x1ZGUvbGliaW8uaCIgMiAzCi8vIyA1MSAiL29wdC9nbnUtbmV3L2k2
ODYtcGMtbGludXgtZ251L2luY2x1ZGUvbGliaW8uaCIgMwovLyMgMSAiL29iai9HTlUvc3JjL0JV
SUxEL2djYy9nY2MvaW5jbHVkZS9zdGRhcmcuaCIgMSAzCi8vIyA0MyAiL29iai9HTlUvc3JjL0JV
SUxEL2djYy9nY2MvaW5jbHVkZS9zdGRhcmcuaCIgMwp0eXBlZGVmIF9fYnVpbHRpbl92YV9saXN0
IF9fZ251Y192YV9saXN0OwovLyMgNTIgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9p
bmNsdWRlL2xpYmlvLmgiIDIgMwovLyMgMTU4ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1n
bnUvaW5jbHVkZS9saWJpby5oIiAzCnN0cnVjdCBfSU9fanVtcF90OyBzdHJ1Y3QgX0lPX0ZJTEU7
Ci8vIyAxNjggIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL2xpYmlvLmgi
IDMKdHlwZWRlZiB2b2lkIF9JT19sb2NrX3Q7CiAKc3RydWN0IF9JT19tYXJrZXIgewogIHN0cnVj
dCBfSU9fbWFya2VyICpfbmV4dDsKICBzdHJ1Y3QgX0lPX0ZJTEUgKl9zYnVmOwogCiAgaW50IF9w
b3M7Ci8vIyAxOTEgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL2xpYmlv
LmgiIDMKfTsKIAplbnVtIF9fY29kZWN2dF9yZXN1bHQKewogIF9fY29kZWN2dF9vaywKICBfX2Nv
ZGVjdnRfcGFydGlhbCwKICBfX2NvZGVjdnRfZXJyb3IsCiAgX19jb2RlY3Z0X25vY29udgp9Owov
LyMgMjU5ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9saWJpby5oIiAz
CnN0cnVjdCBfSU9fRklMRSB7CiAgaW50IF9mbGFnczsKIAogIGNoYXIqIF9JT19yZWFkX3B0cjsK
ICBjaGFyKiBfSU9fcmVhZF9lbmQ7CiAgY2hhciogX0lPX3JlYWRfYmFzZTsKICBjaGFyKiBfSU9f
d3JpdGVfYmFzZTsKICBjaGFyKiBfSU9fd3JpdGVfcHRyOwogIGNoYXIqIF9JT193cml0ZV9lbmQ7
CiAgY2hhciogX0lPX2J1Zl9iYXNlOwogIGNoYXIqIF9JT19idWZfZW5kOwogCiAgY2hhciAqX0lP
X3NhdmVfYmFzZTsKICBjaGFyICpfSU9fYmFja3VwX2Jhc2U7CiAgY2hhciAqX0lPX3NhdmVfZW5k
OwogCiAgc3RydWN0IF9JT19tYXJrZXIgKl9tYXJrZXJzOwogCiAgc3RydWN0IF9JT19GSUxFICpf
Y2hhaW47CiAKICBpbnQgX2ZpbGVubzsKICBpbnQgX2Jsa3NpemU7CiAgX19vZmZfdCBfb2xkX29m
ZnNldDsKIAogIHVuc2lnbmVkIHNob3J0IF9jdXJfY29sdW1uOwogIHNpZ25lZCBjaGFyIF92dGFi
bGVfb2Zmc2V0OwogIGNoYXIgX3Nob3J0YnVmWzFdOwogCiAgX0lPX2xvY2tfdCAqX2xvY2s7Ci8v
IyAzMDMgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL2xpYmlvLmgiIDMK
ICBfX29mZjY0X3QgX29mZnNldDsKIAogIHZvaWQgKl9fcGFkMTsKICB2b2lkICpfX3BhZDI7CiAK
ICBpbnQgX21vZGU7CiAKICBjaGFyIF91bnVzZWQyWzE1ICogc2l6ZW9mIChpbnQpIC0gMiAqIHNp
emVvZiAodm9pZCAqKV07CiAKfTsKIAp0eXBlZGVmIHN0cnVjdCBfSU9fRklMRSBfSU9fRklMRTsK
IApzdHJ1Y3QgX0lPX0ZJTEVfcGx1czsKIApleHRlcm4gc3RydWN0IF9JT19GSUxFX3BsdXMgX0lP
XzJfMV9zdGRpbl87CmV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZG91dF87
CmV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZGVycl87Ci8vIyAzNDIgIi9v
cHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL2xpYmlvLmgiIDMKdHlwZWRlZiBf
X3NzaXplX3QgX19pb19yZWFkX2ZuICh2b2lkICpfX2Nvb2tpZSwgY2hhciAqX19idWYsIHNpemVf
dCBfX25ieXRlcyk7CiAKdHlwZWRlZiBfX3NzaXplX3QgX19pb193cml0ZV9mbiAodm9pZCAqX19j
b29raWUsIF9fY29uc3QgY2hhciAqX19idWYsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHNpemVfdCBfX24pOwogCnR5cGVkZWYgaW50IF9faW9fc2Vla19mbiAodm9pZCAqX19jb29r
aWUsIF9fb2ZmNjRfdCAqX19wb3MsIGludCBfX3cpOwogCnR5cGVkZWYgaW50IF9faW9fY2xvc2Vf
Zm4gKHZvaWQgKl9fY29va2llKTsKLy8jIDM5NCAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgt
Z251L2luY2x1ZGUvbGliaW8uaCIgMwpleHRlcm4gaW50IF9fdW5kZXJmbG93IChfSU9fRklMRSAq
KSA7CmV4dGVybiBpbnQgX191ZmxvdyAoX0lPX0ZJTEUgKikgOwpleHRlcm4gaW50IF9fb3ZlcmZs
b3cgKF9JT19GSUxFICosIGludCkgOwpleHRlcm4gd2ludF90IF9fd3VuZGVyZmxvdyAoX0lPX0ZJ
TEUgKikgOwpleHRlcm4gd2ludF90IF9fd3VmbG93IChfSU9fRklMRSAqKSA7CmV4dGVybiB3aW50
X3QgX193b3ZlcmZsb3cgKF9JT19GSUxFICosIHdpbnRfdCkgOwovLyMgNDI0ICIvb3B0L2dudS1u
ZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9saWJpby5oIiAzCmV4dGVybiBpbnQgX0lPX2dl
dGMgKF9JT19GSUxFICpfX2ZwKSA7CmV4dGVybiBpbnQgX0lPX3B1dGMgKGludCBfX2MsIF9JT19G
SUxFICpfX2ZwKSA7CmV4dGVybiBpbnQgX0lPX2Zlb2YgKF9JT19GSUxFICpfX2ZwKSA7CmV4dGVy
biBpbnQgX0lPX2ZlcnJvciAoX0lPX0ZJTEUgKl9fZnApIDsKIApleHRlcm4gaW50IF9JT19wZWVr
Y19sb2NrZWQgKF9JT19GSUxFICpfX2ZwKSA7CiAKZXh0ZXJuIHZvaWQgX0lPX2Zsb2NrZmlsZSAo
X0lPX0ZJTEUgKikgOwpleHRlcm4gdm9pZCBfSU9fZnVubG9ja2ZpbGUgKF9JT19GSUxFICopIDsK
ZXh0ZXJuIGludCBfSU9fZnRyeWxvY2tmaWxlIChfSU9fRklMRSAqKSA7Ci8vIyA0NTQgIi9vcHQv
Z251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL2xpYmlvLmgiIDMKZXh0ZXJuIGludCBf
SU9fdmZzY2FuZiAoX0lPX0ZJTEUgKiBfX3Jlc3RyaWN0LCBjb25zdCBjaGFyICogX19yZXN0cmlj
dCwKICAgICAgICAgICAgICAgICAgICAgICAgX19nbnVjX3ZhX2xpc3QsIGludCAqX19yZXN0cmlj
dCkgOwpleHRlcm4gaW50IF9JT192ZnByaW50ZiAoX0lPX0ZJTEUgKl9fcmVzdHJpY3QsIGNvbnN0
IGNoYXIgKl9fcmVzdHJpY3QsCiAgICAgICAgICAgICAgICAgICAgICAgICBfX2dudWNfdmFfbGlz
dCkgOwpleHRlcm4gX19zc2l6ZV90IF9JT19wYWRuIChfSU9fRklMRSAqLCBpbnQsIF9fc3NpemVf
dCkgOwpleHRlcm4gc2l6ZV90IF9JT19zZ2V0biAoX0lPX0ZJTEUgKiwgdm9pZCAqLCBzaXplX3Qp
IDsKIApleHRlcm4gX19vZmY2NF90IF9JT19zZWVrb2ZmIChfSU9fRklMRSAqLCBfX29mZjY0X3Qs
IGludCwgaW50KSA7CmV4dGVybiBfX29mZjY0X3QgX0lPX3NlZWtwb3MgKF9JT19GSUxFICosIF9f
b2ZmNjRfdCwgaW50KSA7CiAKZXh0ZXJuIHZvaWQgX0lPX2ZyZWVfYmFja3VwX2FyZWEgKF9JT19G
SUxFICopIDsKLy8jIDY1ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9z
dGRpby5oIiAyIDMKLy8jIDc5ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVk
ZS9zdGRpby5oIiAzCnR5cGVkZWYgX0dfZnBvc190IGZwb3NfdDsKLy8jIDEyOCAiL29wdC9nbnUt
bmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvc3RkaW8uaCIgMwovLyMgMSAiL29wdC9nbnUt
bmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvYml0cy9zdGRpb19saW0uaCIgMSAzCi8vIyAx
MjkgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL3N0ZGlvLmgiIDIgMwog
CmV4dGVybiBGSUxFICpzdGRpbjsKZXh0ZXJuIEZJTEUgKnN0ZG91dDsKZXh0ZXJuIEZJTEUgKnN0
ZGVycjsKIApleHRlcm4gaW50IHJlbW92ZSAoX19jb25zdCBjaGFyICpfX2ZpbGVuYW1lKSA7CiAK
ZXh0ZXJuIGludCByZW5hbWUgKF9fY29uc3QgY2hhciAqX19vbGQsIF9fY29uc3QgY2hhciAqX19u
ZXcpIDsKIApleHRlcm4gRklMRSAqdG1wZmlsZSAodm9pZCkgOwovLyMgMTYwICIvb3B0L2dudS1u
ZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBjaGFyICp0bXBu
YW0gKGNoYXIgKl9fcykgOwovLyMgMTgzICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUv
aW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBpbnQgZmNsb3NlIChGSUxFICpfX3N0cmVhbSkgOwog
CmV4dGVybiBpbnQgZmZsdXNoIChGSUxFICpfX3N0cmVhbSkgOwovLyMgMjAwICIvb3B0L2dudS1u
ZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBGSUxFICpmb3Bl
biAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAg
ICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbW9kZXMpIDsKIApleHRlcm4gRklMRSAqZnJl
b3BlbiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZmlsZW5hbWUsCiAgICAgICAgICAgICAg
ICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19tb2RlcywKICAgICAgICAgICAgICAg
ICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKLy8jIDIzMCAiL29wdC9nbnUtbmV3
L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gRklMRSAqZmRvcGVu
IChpbnQgX19mZCwgX19jb25zdCBjaGFyICpfX21vZGVzKSA7Ci8vIyAyNTMgIi9vcHQvZ251LW5l
dy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIHZvaWQgc2V0YnVm
IChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmKSA7CiAK
ZXh0ZXJuIGludCBzZXR2YnVmIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBjaGFyICpfX3Jl
c3RyaWN0IF9fYnVmLAogICAgICAgICAgICAgICAgICAgIGludCBfX21vZGVzLCBzaXplX3QgX19u
KSA7Ci8vIyAyNzIgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL3N0ZGlv
LmgiIDMKZXh0ZXJuIGludCBmcHJpbnRmIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLAogICAg
ICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7
CiAKZXh0ZXJuIGludCBwcmludGYgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwg
Li4uKSA7CiAKZXh0ZXJuIGludCBzcHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywKICAgICAg
ICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4uLikgOwog
CmV4dGVybiBpbnQgdmZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zLCBfX2NvbnN0IGNoYXIg
Kl9fcmVzdHJpY3QgX19mb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgIF9fZ251Y192YV9saXN0
IF9fYXJnKSA7CiAKZXh0ZXJuIGludCB2cHJpbnRmIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3Qg
X19mb3JtYXQsIF9fZ251Y192YV9saXN0IF9fYXJnKQogICAgICAgICAgICA7CiAKZXh0ZXJuIGlu
dCB2c3ByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hhciAqX19yZXN0cmlj
dCBfX2Zvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpIDsK
Ly8jIDMyNyAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvc3RkaW8uaCIg
MwpleHRlcm4gaW50IGZzY2FuZiAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwKICAgICAgICAg
ICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7CiAKZXh0
ZXJuIGludCBzY2FuZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIDsK
IApleHRlcm4gaW50IHNzY2FuZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywKICAgICAg
ICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7Ci8v
IyAzNTMgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL3N0ZGlvLmgiIDMK
ZXh0ZXJuIGludCBmZ2V0YyAoRklMRSAqX19zdHJlYW0pIDsKZXh0ZXJuIGludCBnZXRjIChGSUxF
ICpfX3N0cmVhbSkgOwogCmV4dGVybiBpbnQgZ2V0Y2hhciAodm9pZCkgOwogCmV4dGVybiBpbnQg
Z2V0Y191bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIDsKZXh0ZXJuIGludCBnZXRjaGFyX3VubG9j
a2VkICh2b2lkKSA7Ci8vIyAzNzYgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNs
dWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGludCBmcHV0YyAoaW50IF9fYywgRklMRSAqX19zdHJlYW0p
IDsKZXh0ZXJuIGludCBwdXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkgOwogCmV4dGVybiBp
bnQgcHV0Y2hhciAoaW50IF9fYykgOwovLyMgMzkzICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51
eC1nbnUvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBpbnQgcHV0Y191bmxvY2tlZCAoaW50IF9f
YywgRklMRSAqX19zdHJlYW0pIDsKZXh0ZXJuIGludCBwdXRjaGFyX3VubG9ja2VkIChpbnQgX19j
KSA7Ci8vIyA0MDggIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL3N0ZGlv
LmgiIDMKZXh0ZXJuIGNoYXIgKmZnZXRzIChjaGFyICpfX3Jlc3RyaWN0IF9fcywgaW50IF9fbiwg
RklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkKICAgICAgICAgICAgOwovLyMgNDE5ICIvb3B0L2du
dS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBjaGFyICpn
ZXRzIChjaGFyICpfX3MpIDsKLy8jIDQ0MyAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251
L2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gaW50IGZwdXRzIChfX2NvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19zLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtKQogICAgICAgICAgICA7Ci8vIyA0
NTMgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0
ZXJuIGludCBwdXRzIChfX2NvbnN0IGNoYXIgKl9fcykgOwogCmV4dGVybiBpbnQgdW5nZXRjIChp
bnQgX19jLCBGSUxFICpfX3N0cmVhbSkgOwogCmV4dGVybiBzaXplX3QgZnJlYWQgKHZvaWQgKl9f
cmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUsCiAgICAgICAgICAgICAgICAgICAgIHNpemVf
dCBfX24sIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0pIDsKIApleHRlcm4gc2l6ZV90IGZ3cml0
ZSAoX19jb25zdCB2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAogICAgICAg
ICAgICAgICAgICAgICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3MpIDsKLy8jIDQ3
NyAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvc3RkaW8uaCIgMwpleHRl
cm4gaW50IGZzZWVrIChGSUxFICpfX3N0cmVhbSwgbG9uZyBpbnQgX19vZmYsIGludCBfX3doZW5j
ZSkgOwogCmV4dGVybiBsb25nIGludCBmdGVsbCAoRklMRSAqX19zdHJlYW0pIDsKIApleHRlcm4g
dm9pZCByZXdpbmQgKEZJTEUgKl9fc3RyZWFtKSA7Ci8vIyA0OTcgIi9vcHQvZ251LW5ldy9pNjg2
LXBjLWxpbnV4LWdudS9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIGludCBmZ2V0cG9zIChGSUxF
ICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBmcG9zX3QgKl9fcmVzdHJpY3QgX19wb3MpCiAgICAgICAg
ICAgIDsKIApleHRlcm4gaW50IGZzZXRwb3MgKEZJTEUgKl9fc3RyZWFtLCBfX2NvbnN0IGZwb3Nf
dCAqX19wb3MpIDsKLy8jIDUzMyAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1
ZGUvc3RkaW8uaCIgMwpleHRlcm4gdm9pZCBjbGVhcmVyciAoRklMRSAqX19zdHJlYW0pIDsKIApl
eHRlcm4gaW50IGZlb2YgKEZJTEUgKl9fc3RyZWFtKSA7CiAKZXh0ZXJuIGludCBmZXJyb3IgKEZJ
TEUgKl9fc3RyZWFtKSA7Ci8vIyA1NDggIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9p
bmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIHZvaWQgcGVycm9yIChfX2NvbnN0IGNoYXIgKl9fcykg
OwovLyMgNTY0ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRpby5o
IiAzCmV4dGVybiBpbnQgZmlsZW5vIChGSUxFICpfX3N0cmVhbSkgOwovLyMgNTg1ICIvb3B0L2du
dS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRpby5oIiAzCmV4dGVybiBjaGFyICpj
dGVybWlkIChjaGFyICpfX3MpIDsKLy8jIDYxMSAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgt
Z251L2luY2x1ZGUvc3RkaW8uaCIgMwpleHRlcm4gdm9pZCBmbG9ja2ZpbGUgKEZJTEUgKl9fc3Ry
ZWFtKSA7CiAKZXh0ZXJuIGludCBmdHJ5bG9ja2ZpbGUgKEZJTEUgKl9fc3RyZWFtKSA7CiAKZXh0
ZXJuIHZvaWQgZnVubG9ja2ZpbGUgKEZJTEUgKl9fc3RyZWFtKSA7Ci8vIyAyICIvb2JqL0dOVS9z
cmMvZ2NjL2xpYmYyYy9saWJJNzcvZmlvLmgiIDIKLy8jIDEgIi9vcHQvZ251LW5ldy9pNjg2LXBj
LWxpbnV4LWdudS9pbmNsdWRlL2Vycm5vLmgiIDEgMwovLyMgMjkgIi9vcHQvZ251LW5ldy9pNjg2
LXBjLWxpbnV4LWdudS9pbmNsdWRlL2Vycm5vLmgiIDMKLy8jIDEgIi9vcHQvZ251LW5ldy9pNjg2
LXBjLWxpbnV4LWdudS9pbmNsdWRlL2ZlYXR1cmVzLmgiIDEgMwovLyMgMzAgIi9vcHQvZ251LW5l
dy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL2Vycm5vLmgiIDIgMwogCi8vIyAxICIvb3B0L2du
dS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9iaXRzL2Vycm5vLmgiIDEgMwovLyMgMjUg
Ii9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL2JpdHMvZXJybm8uaCIgMwov
LyMgMSAiL3Vzci9pbmNsdWRlL2xpbnV4L2Vycm5vLmgiIDEgMwogCi8vIyAxICIvdXNyL2luY2x1
ZGUvYXNtL2Vycm5vLmgiIDEgMwovLyMgNSAiL3Vzci9pbmNsdWRlL2xpbnV4L2Vycm5vLmgiIDIg
MwovLyMgMjYgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL2JpdHMvZXJy
bm8uaCIgMiAzCi8vIyAzNiAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUv
Yml0cy9lcnJuby5oIiAzCmV4dGVybiBpbnQgZXJybm87CiAKZXh0ZXJuIGludCAqX19lcnJub19s
b2NhdGlvbiAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwovLyMgMzcgIi9vcHQv
Z251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL2Vycm5vLmgiIDIgMwovLyMgMyAiL29i
ai9HTlUvc3JjL2djYy9saWJmMmMvbGliSTc3L2Zpby5oIiAyCiAKLy8jIDEgIi9vcHQvZ251LW5l
dy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL3N0cmluZy5oIiAxIDMKLy8jIDI2ICIvb3B0L2du
dS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdHJpbmcuaCIgMwovLyMgMSAiL29wdC9n
bnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvZmVhdHVyZXMuaCIgMSAzCi8vIyAyNyAi
L29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvc3RyaW5nLmgiIDIgMwogCi8v
IyAxICIvb2JqL0dOVS9zcmMvQlVJTEQvZ2NjL2djYy9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMKLy8j
IDM0ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdHJpbmcuaCIgMiAz
CiAKZXh0ZXJuIHZvaWQgKm1lbWNweSAodm9pZCAqX19yZXN0cmljdCBfX2Rlc3QsCiAgICAgICAg
ICAgICAgICAgICAgIF9fY29uc3Qgdm9pZCAqX19yZXN0cmljdCBfX3NyYywgc2l6ZV90IF9fbikg
OwogCmV4dGVybiB2b2lkICptZW1tb3ZlICh2b2lkICpfX2Rlc3QsIF9fY29uc3Qgdm9pZCAqX19z
cmMsIHNpemVfdCBfX24pCiAgICAgICAgICAgIDsKLy8jIDU1ICIvb3B0L2dudS1uZXcvaTY4Ni1w
Yy1saW51eC1nbnUvaW5jbHVkZS9zdHJpbmcuaCIgMwpleHRlcm4gdm9pZCAqbWVtc2V0ICh2b2lk
ICpfX3MsIGludCBfX2MsIHNpemVfdCBfX24pIDsKIApleHRlcm4gaW50IG1lbWNtcCAoX19jb25z
dCB2b2lkICpfX3MxLCBfX2NvbnN0IHZvaWQgKl9fczIsIHNpemVfdCBfX24pCiAgICAgICAgICAg
ICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKIApleHRlcm4gdm9pZCAqbWVtY2hyIChfX2Nv
bnN0IHZvaWQgKl9fcywgaW50IF9fYywgc2l6ZV90IF9fbikKICAgICAgICAgICAgICBfX2F0dHJp
YnV0ZV9fICgoX19wdXJlX18pKTsKLy8jIDc3ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1n
bnUvaW5jbHVkZS9zdHJpbmcuaCIgMwpleHRlcm4gY2hhciAqc3RyY3B5IChjaGFyICpfX3Jlc3Ry
aWN0IF9fZGVzdCwgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjKQogICAgICAgICAgICA7
CiAKZXh0ZXJuIGNoYXIgKnN0cm5jcHkgKGNoYXIgKl9fcmVzdHJpY3QgX19kZXN0LAogICAgICAg
ICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fc3JjLCBzaXplX3QgX19u
KSA7CiAKZXh0ZXJuIGNoYXIgKnN0cmNhdCAoY2hhciAqX19yZXN0cmljdCBfX2Rlc3QsIF9fY29u
c3QgY2hhciAqX19yZXN0cmljdCBfX3NyYykKICAgICAgICAgICAgOwogCmV4dGVybiBjaGFyICpz
dHJuY2F0IChjaGFyICpfX3Jlc3RyaWN0IF9fZGVzdCwgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0
IF9fc3JjLAogICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fbikgOwogCmV4dGVybiBpbnQg
c3RyY21wIChfX2NvbnN0IGNoYXIgKl9fczEsIF9fY29uc3QgY2hhciAqX19zMikKICAgICAgICAg
ICAgIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwogCmV4dGVybiBpbnQgc3RybmNtcCAoX19j
b25zdCBjaGFyICpfX3MxLCBfX2NvbnN0IGNoYXIgKl9fczIsIHNpemVfdCBfX24pCiAgICAgICAg
ICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKIApleHRlcm4gaW50IHN0cmNvbGwgKF9f
Y29uc3QgY2hhciAqX19zMSwgX19jb25zdCBjaGFyICpfX3MyKQogICAgICAgICAgICAgX19hdHRy
aWJ1dGVfXyAoKF9fcHVyZV9fKSk7CiAKZXh0ZXJuIHNpemVfdCBzdHJ4ZnJtIChjaGFyICpfX3Jl
c3RyaWN0IF9fZGVzdCwKICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19zcmMsIHNpemVfdCBfX24pIDsKLy8jIDE1NSAiL29wdC9nbnUtbmV3L2k2ODYtcGMt
bGludXgtZ251L2luY2x1ZGUvc3RyaW5nLmgiIDMKZXh0ZXJuIGNoYXIgKnN0cmNociAoX19jb25z
dCBjaGFyICpfX3MsIGludCBfX2MpIF9fYXR0cmlidXRlX18gKChfX3B1cmVfXykpOwogCmV4dGVy
biBjaGFyICpzdHJyY2hyIChfX2NvbnN0IGNoYXIgKl9fcywgaW50IF9fYykgX19hdHRyaWJ1dGVf
XyAoKF9fcHVyZV9fKSk7Ci8vIyAxNjcgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9p
bmNsdWRlL3N0cmluZy5oIiAzCmV4dGVybiBzaXplX3Qgc3RyY3NwbiAoX19jb25zdCBjaGFyICpf
X3MsIF9fY29uc3QgY2hhciAqX19yZWplY3QpCiAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fICgo
X19wdXJlX18pKTsKIApleHRlcm4gc2l6ZV90IHN0cnNwbiAoX19jb25zdCBjaGFyICpfX3MsIF9f
Y29uc3QgY2hhciAqX19hY2NlcHQpCiAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJl
X18pKTsKIApleHRlcm4gY2hhciAqc3RycGJyayAoX19jb25zdCBjaGFyICpfX3MsIF9fY29uc3Qg
Y2hhciAqX19hY2NlcHQpCiAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsK
IApleHRlcm4gY2hhciAqc3Ryc3RyIChfX2NvbnN0IGNoYXIgKl9faGF5c3RhY2ssIF9fY29uc3Qg
Y2hhciAqX19uZWVkbGUpCiAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsK
Ly8jIDE4NyAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvc3RyaW5nLmgi
IDMKZXh0ZXJuIGNoYXIgKnN0cnRvayAoY2hhciAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hh
ciAqX19yZXN0cmljdCBfX2RlbGltKQogICAgICAgICAgICA7CiAKZXh0ZXJuIGNoYXIgKl9fc3Ry
dG9rX3IgKGNoYXIgKl9fcmVzdHJpY3QgX19zLAogICAgICAgICAgICAgICAgICAgICAgICAgX19j
b25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZGVsaW0sCiAgICAgICAgICAgICAgICAgICAgICAgICBj
aGFyICoqX19yZXN0cmljdCBfX3NhdmVfcHRyKSA7CiAKZXh0ZXJuIGNoYXIgKnN0cnRva19yIChj
aGFyICpfX3Jlc3RyaWN0IF9fcywgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZGVsaW0sCiAg
ICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19zYXZlX3B0cikgOwovLyMg
MjE4ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdHJpbmcuaCIgMwpl
eHRlcm4gc2l6ZV90IHN0cmxlbiAoX19jb25zdCBjaGFyICpfX3MpIF9fYXR0cmlidXRlX18gKChf
X3B1cmVfXykpOwovLyMgMjI5ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVk
ZS9zdHJpbmcuaCIgMwpleHRlcm4gY2hhciAqc3RyZXJyb3IgKGludCBfX2Vycm51bSkgOwovLyMg
MjM5ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdHJpbmcuaCIgMwpl
eHRlcm4gdm9pZCBfX2J6ZXJvICh2b2lkICpfX3MsIHNpemVfdCBfX24pIDsKLy8jIDkgIi9vYmov
R05VL3NyYy9nY2MvbGliZjJjL2xpYkk3Ny9maW8uaCIgMgovLyMgMjYgIi9vYmovR05VL3NyYy9n
Y2MvbGliZjJjL2xpYkk3Ny9maW8uaCIKdHlwZWRlZiBsb25nIHVpb2xlbjsKIAp0eXBlZGVmIHN0
cnVjdAp7IEZJTEUgKnVmZDsKICAgICAgICBjaGFyICp1Zm5tOwogCiAgICAgICAgbG9uZyB1aW5v
ZGU7CiAgICAgICAgaW50IHVkZXY7CiAKICAgICAgICBpbnQgdXJsOwogICAgICAgIGZsYWcgdXNl
ZWs7CiAgICAgICAgZmxhZyB1Zm10OwogICAgICAgIGZsYWcgdXJ3OwogICAgICAgIGZsYWcgdWJs
bms7CiAgICAgICAgZmxhZyB1ZW5kOwogICAgICAgIGZsYWcgdXdydDsKICAgICAgICBmbGFnIHVz
Y3J0Y2g7Cn0gdW5pdDsKIApleHRlcm4gaW50IGZfX2luaXQ7CmV4dGVybiBjaWxpc3QgKmZfX2Vs
aXN0OwpleHRlcm4gZmxhZyBmX19yZWFkaW5nLGZfX2V4dGVybmFsLGZfX3NlcXVlbnRpYWwsZl9f
Zm9ybWF0dGVkOwovLyMgNjUgIi9vYmovR05VL3NyYy9nY2MvbGliZjJjL2xpYkk3Ny9maW8uaCIK
ZXh0ZXJuIGludCAoKmZfX2dldG4pKHZvaWQpOwpleHRlcm4gdm9pZCAoKmZfX3B1dG4pKGludCk7
CmV4dGVybiB2b2lkIHhfcHV0YyhpbnQpOwpleHRlcm4gbG9uZyBmX19pbm9kZShjaGFyKixpbnQq
KTsKZXh0ZXJuIHZvaWQgc2lnX2RpZShjaGFyKixpbnQpOwpleHRlcm4gdm9pZCBmX19mYXRhbChp
bnQsY2hhciopOwpleHRlcm4gaW50IHRfcnVuYyhhbGlzdCopOwpleHRlcm4gaW50IGZfX25vd3Jl
YWRpbmcodW5pdCopLCBmX19ub3d3cml0aW5nKHVuaXQqKTsKZXh0ZXJuIGludCBma19vcGVuKGlu
dCxpbnQsZnRuaW50KTsKZXh0ZXJuIGludCBlbl9maW8odm9pZCk7CmV4dGVybiB2b2lkIGZfaW5p
dCh2b2lkKTsKZXh0ZXJuIGludCAoKmZfX2RvbmV3cmVjKSh2b2lkKSwgdF9wdXRjKGludCksIHhf
d1NMKHZvaWQpOwpleHRlcm4gdm9pZCBiX2NoYXIoY2hhciosY2hhciosZnRubGVuKSwgZ19jaGFy
KGNoYXIqLGZ0bmxlbixjaGFyKik7CmV4dGVybiBpbnQgY19zZmUoY2lsaXN0KiksIHpfcm5ldyh2
b2lkKTsKZXh0ZXJuIGludCBpc2F0dHkoaW50KTsKZXh0ZXJuIGludCBlcnJfX2ZsKGludCxpbnQs
Y2hhciopOwpleHRlcm4gaW50IHhyZF9TTCh2b2lkKTsKZXh0ZXJuIGludCBmX19wdXRidWYoaW50
KTsKIApleHRlcm4gaW50ICgqZl9fZG9lbmQpKHZvaWQpOwpleHRlcm4gRklMRSAqZl9fY2Y7CmV4
dGVybiB1bml0ICpmX19jdXJ1bml0OwpleHRlcm4gdW5pdCBmX191bml0c1tdOwogCmV4dGVybiBp
bnQgZl9fcmVjcG9zOwpleHRlcm4gaW50IGZfX2N1cnNvcjsKZXh0ZXJuIGludCBmX19oaXdhdGVy
OwovLyMgMyAiL29iai9HTlUvc3JjL2djYy9saWJmMmMvbGliSTc3L3dyZWYuYyIgMgogCi8vIyAx
ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9jdHlwZS5oIiAxIDMKLy8j
IDI2ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9jdHlwZS5oIiAzCi8v
IyAxICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9mZWF0dXJlcy5oIiAx
IDMKLy8jIDI3ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9jdHlwZS5o
IiAyIDMKLy8jIDEgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL2JpdHMv
dHlwZXMuaCIgMSAzCi8vIyAyOCAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1
ZGUvY3R5cGUuaCIgMiAzCi8vIyA0MCAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2lu
Y2x1ZGUvY3R5cGUuaCIgMwovLyMgMSAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2lu
Y2x1ZGUvZW5kaWFuLmgiIDEgMwovLyMgMjIgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdu
dS9pbmNsdWRlL2VuZGlhbi5oIiAzCi8vIyAxICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1n
bnUvaW5jbHVkZS9mZWF0dXJlcy5oIiAxIDMKLy8jIDIzICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1s
aW51eC1nbnUvaW5jbHVkZS9lbmRpYW4uaCIgMiAzCi8vIyAzNyAiL29wdC9nbnUtbmV3L2k2ODYt
cGMtbGludXgtZ251L2luY2x1ZGUvZW5kaWFuLmgiIDMKLy8jIDEgIi9vcHQvZ251LW5ldy9pNjg2
LXBjLWxpbnV4LWdudS9pbmNsdWRlL2JpdHMvZW5kaWFuLmgiIDEgMwovLyMgMzggIi9vcHQvZ251
LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRlL2VuZGlhbi5oIiAyIDMKLy8jIDQxICIvb3B0
L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9jdHlwZS5oIiAyIDMKIAplbnVtCnsK
ICBfSVN1cHBlciA9ICgoMCkgPCA4ID8gKCgxIDw8ICgwKSkgPDwgOCkgOiAoKDEgPDwgKDApKSA+
PiA4KSksCiAgX0lTbG93ZXIgPSAoKDEpIDwgOCA/ICgoMSA8PCAoMSkpIDw8IDgpIDogKCgxIDw8
ICgxKSkgPj4gOCkpLAogIF9JU2FscGhhID0gKCgyKSA8IDggPyAoKDEgPDwgKDIpKSA8PCA4KSA6
ICgoMSA8PCAoMikpID4+IDgpKSwKICBfSVNkaWdpdCA9ICgoMykgPCA4ID8gKCgxIDw8ICgzKSkg
PDwgOCkgOiAoKDEgPDwgKDMpKSA+PiA4KSksCiAgX0lTeGRpZ2l0ID0gKCg0KSA8IDggPyAoKDEg
PDwgKDQpKSA8PCA4KSA6ICgoMSA8PCAoNCkpID4+IDgpKSwKICBfSVNzcGFjZSA9ICgoNSkgPCA4
ID8gKCgxIDw8ICg1KSkgPDwgOCkgOiAoKDEgPDwgKDUpKSA+PiA4KSksCiAgX0lTcHJpbnQgPSAo
KDYpIDwgOCA/ICgoMSA8PCAoNikpIDw8IDgpIDogKCgxIDw8ICg2KSkgPj4gOCkpLAogIF9JU2dy
YXBoID0gKCg3KSA8IDggPyAoKDEgPDwgKDcpKSA8PCA4KSA6ICgoMSA8PCAoNykpID4+IDgpKSwK
ICBfSVNibGFuayA9ICgoOCkgPCA4ID8gKCgxIDw8ICg4KSkgPDwgOCkgOiAoKDEgPDwgKDgpKSA+
PiA4KSksCiAgX0lTY250cmwgPSAoKDkpIDwgOCA/ICgoMSA8PCAoOSkpIDw8IDgpIDogKCgxIDw8
ICg5KSkgPj4gOCkpLAogIF9JU3B1bmN0ID0gKCgxMCkgPCA4ID8gKCgxIDw8ICgxMCkpIDw8IDgp
IDogKCgxIDw8ICgxMCkpID4+IDgpKSwKICBfSVNhbG51bSA9ICgoMTEpIDwgOCA/ICgoMSA8PCAo
MTEpKSA8PCA4KSA6ICgoMSA8PCAoMTEpKSA+PiA4KSkKfTsKLy8jIDc1ICIvb3B0L2dudS1uZXcv
aTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9jdHlwZS5oIiAzCmV4dGVybiBfX2NvbnN0IHVuc2ln
bmVkIHNob3J0IGludCAqX19jdHlwZV9iOwpleHRlcm4gX19jb25zdCBfX2ludDMyX3QgKl9fY3R5
cGVfdG9sb3dlcjsKZXh0ZXJuIF9fY29uc3QgX19pbnQzMl90ICpfX2N0eXBlX3RvdXBwZXI7Ci8v
IyA5MSAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvY3R5cGUuaCIgMwpl
eHRlcm4gaW50IGlzYWxudW0gKGludCkgOwpleHRlcm4gaW50IGlzYWxwaGEgKGludCkgOwpleHRl
cm4gaW50IGlzY250cmwgKGludCkgOwpleHRlcm4gaW50IGlzZGlnaXQgKGludCkgOwpleHRlcm4g
aW50IGlzbG93ZXIgKGludCkgOwpleHRlcm4gaW50IGlzZ3JhcGggKGludCkgOwpleHRlcm4gaW50
IGlzcHJpbnQgKGludCkgOwpleHRlcm4gaW50IGlzcHVuY3QgKGludCkgOwpleHRlcm4gaW50IGlz
c3BhY2UgKGludCkgOwpleHRlcm4gaW50IGlzdXBwZXIgKGludCkgOwpleHRlcm4gaW50IGlzeGRp
Z2l0IChpbnQpIDsKIApleHRlcm4gaW50IHRvbG93ZXIgKGludCBfX2MpIDsKIApleHRlcm4gaW50
IHRvdXBwZXIgKGludCBfX2MpIDsKLy8jIDUgIi9vYmovR05VL3NyYy9nY2MvbGliZjJjL2xpYkk3
Ny93cmVmLmMiIDIKIAovLyMgMSAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1
ZGUvc3RkbGliLmgiIDEgMwovLyMgMjUgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9p
bmNsdWRlL3N0ZGxpYi5oIiAzCi8vIyAxICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUv
aW5jbHVkZS9mZWF0dXJlcy5oIiAxIDMKLy8jIDI2ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51
eC1nbnUvaW5jbHVkZS9zdGRsaWIuaCIgMiAzCiAKLy8jIDEgIi9vYmovR05VL3NyYy9CVUlMRC9n
Y2MvZ2NjL2luY2x1ZGUvc3RkZGVmLmgiIDEgMwovLyMgMzQgIi9vcHQvZ251LW5ldy9pNjg2LXBj
LWxpbnV4LWdudS9pbmNsdWRlL3N0ZGxpYi5oIiAyIDMKLy8jIDk0ICIvb3B0L2dudS1uZXcvaTY4
Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRsaWIuaCIgMwp0eXBlZGVmIHN0cnVjdAogIHsKICAg
IGludCBxdW90OwogICAgaW50IHJlbTsKICB9IGRpdl90OwogCnR5cGVkZWYgc3RydWN0CiAgewog
ICAgbG9uZyBpbnQgcXVvdDsKICAgIGxvbmcgaW50IHJlbTsKICB9IGxkaXZfdDsKLy8jIDEzMyAi
L29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvc3RkbGliLmgiIDMKZXh0ZXJu
IHNpemVfdCBfX2N0eXBlX2dldF9tYl9jdXJfbWF4ICh2b2lkKSA7CiAKZXh0ZXJuIGRvdWJsZSBh
dG9mIChfX2NvbnN0IGNoYXIgKl9fbnB0cikgX19hdHRyaWJ1dGVfXyAoKF9fcHVyZV9fKSk7CiAK
ZXh0ZXJuIGludCBhdG9pIChfX2NvbnN0IGNoYXIgKl9fbnB0cikgX19hdHRyaWJ1dGVfXyAoKF9f
cHVyZV9fKSk7CiAKZXh0ZXJuIGxvbmcgaW50IGF0b2wgKF9fY29uc3QgY2hhciAqX19ucHRyKSBf
X2F0dHJpYnV0ZV9fICgoX19wdXJlX18pKTsKLy8jIDE1MCAiL29wdC9nbnUtbmV3L2k2ODYtcGMt
bGludXgtZ251L2luY2x1ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIGRvdWJsZSBzdHJ0b2QgKF9fY29u
c3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIsCiAgICAgICAgICAgICAgICAgICAgICBjaGFyICoq
X19yZXN0cmljdCBfX2VuZHB0cikgOwovLyMgMTYzICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51
eC1nbnUvaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRlcm4gbG9uZyBpbnQgc3RydG9sIChfX2NvbnN0
IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoq
X19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fYmFzZSkgOwogCmV4dGVybiB1bnNpZ25lZCBsb25n
IGludCBzdHJ0b3VsIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBf
X2Jhc2UpCiAgICAgICAgICAgIDsKLy8jIDI1MCAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgt
Z251L2luY2x1ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIGRvdWJsZSBfX3N0cnRvZF9pbnRlcm5hbCAo
X19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsIGludCBfX2dyb3VwKQogICAgICAg
ICAgICA7CmV4dGVybiBmbG9hdCBfX3N0cnRvZl9pbnRlcm5hbCAoX19jb25zdCBjaGFyICpfX3Jl
c3RyaWN0IF9fbnB0ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoqX19y
ZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fZ3JvdXApCiAgICAgICAgICAgIDsKZXh0ZXJuIGxvbmcg
ZG91YmxlIF9fc3RydG9sZF9pbnRlcm5hbCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0
ciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVzdHJp
Y3QgX19lbmRwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBf
X2dyb3VwKSA7CiAKZXh0ZXJuIGxvbmcgaW50IF9fc3RydG9sX2ludGVybmFsIChfX2NvbnN0IGNo
YXIgKl9fcmVzdHJpY3QgX19ucHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNoYXIgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGludCBfX2Jhc2UsIGludCBfX2dyb3VwKSA7CiAKZXh0ZXJuIHVuc2lnbmVkIGxvbmcg
aW50IF9fc3RydG91bF9pbnRlcm5hbCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fbnB0ciwK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9fcmVz
dHJpY3QgX19lbmRwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGludCBfX2Jhc2UsIGludCBfX2dyb3VwKSA7CiAKX19leHRlbnNpb25fXwpleHRlcm4gbG9u
ZyBsb25nIGludCBfX3N0cnRvbGxfaW50ZXJuYWwgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf
X25wdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hhciAqKl9f
cmVzdHJpY3QgX19lbmRwdHIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgaW50IF9fYmFzZSwgaW50IF9fZ3JvdXApIDsKIApfX2V4dGVuc2lvbl9fCmV4dGVybiB1bnNp
Z25lZCBsb25nIGxvbmcgaW50IF9fc3RydG91bGxfaW50ZXJuYWwgKF9fY29uc3QgY2hhciAqCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fcmVzdHJp
Y3QgX19ucHRyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IF9fYmFzZSwgaW50IF9fZ3JvdXApCiAgICAg
ICAgICAgIDsKLy8jIDQ0NyAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUv
c3RkbGliLmgiIDMKZXh0ZXJuIGludCByYW5kICh2b2lkKSA7CiAKZXh0ZXJuIHZvaWQgc3JhbmQg
KHVuc2lnbmVkIGludCBfX3NlZWQpIDsKIApleHRlcm4gaW50IHJhbmRfciAodW5zaWduZWQgaW50
ICpfX3NlZWQpIDsKLy8jIDUyOCAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1
ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIHZvaWQgKm1hbGxvYyAoc2l6ZV90IF9fc2l6ZSkgX19hdHRy
aWJ1dGVfXyAoKF9fbWFsbG9jX18pKTsKIApleHRlcm4gdm9pZCAqY2FsbG9jIChzaXplX3QgX19u
bWVtYiwgc2l6ZV90IF9fc2l6ZSkKICAgICAgICAgICAgIF9fYXR0cmlidXRlX18gKChfX21hbGxv
Y19fKSk7CiAKZXh0ZXJuIHZvaWQgKnJlYWxsb2MgKHZvaWQgKl9fcHRyLCBzaXplX3QgX19zaXpl
KSBfX2F0dHJpYnV0ZV9fICgoX19tYWxsb2NfXykpOwogCmV4dGVybiB2b2lkIGZyZWUgKHZvaWQg
Kl9fcHRyKSA7Ci8vIyA1NjIgIi9vcHQvZ251LW5ldy9pNjg2LXBjLWxpbnV4LWdudS9pbmNsdWRl
L3N0ZGxpYi5oIiAzCmV4dGVybiB2b2lkIGFib3J0ICh2b2lkKSBfX2F0dHJpYnV0ZV9fICgoX19u
b3JldHVybl9fKSk7CiAKZXh0ZXJuIGludCBhdGV4aXQgKHZvaWQgKCpfX2Z1bmMpICh2b2lkKSkg
OwovLyMgNTgwICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRsaWIu
aCIgMwpleHRlcm4gdm9pZCBleGl0IChpbnQgX19zdGF0dXMpIF9fYXR0cmlidXRlX18gKChfX25v
cmV0dXJuX18pKTsKLy8jIDU5MCAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1
ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIGNoYXIgKmdldGVudiAoX19jb25zdCBjaGFyICpfX25hbWUp
IDsKIApleHRlcm4gY2hhciAqX19zZWN1cmVfZ2V0ZW52IChfX2NvbnN0IGNoYXIgKl9fbmFtZSkg
OwovLyMgNjU4ICIvb3B0L2dudS1uZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRsaWIu
aCIgMwpleHRlcm4gaW50IHN5c3RlbSAoX19jb25zdCBjaGFyICpfX2NvbW1hbmQpIDsKLy8jIDY4
MyAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvc3RkbGliLmgiIDMKdHlw
ZWRlZiBpbnQgKCpfX2NvbXBhcl9mbl90KSAoX19jb25zdCB2b2lkICosIF9fY29uc3Qgdm9pZCAq
KTsKLy8jIDY5MiAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvc3RkbGli
LmgiIDMKZXh0ZXJuIHZvaWQgKmJzZWFyY2ggKF9fY29uc3Qgdm9pZCAqX19rZXksIF9fY29uc3Qg
dm9pZCAqX19iYXNlLAogICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fbm1lbWIsIHNpemVf
dCBfX3NpemUsIF9fY29tcGFyX2ZuX3QgX19jb21wYXIpOwogCmV4dGVybiB2b2lkIHFzb3J0ICh2
b2lkICpfX2Jhc2UsIHNpemVfdCBfX25tZW1iLCBzaXplX3QgX19zaXplLAogICAgICAgICAgICAg
ICAgICAgX19jb21wYXJfZm5fdCBfX2NvbXBhcik7CiAKZXh0ZXJuIGludCBhYnMgKGludCBfX3gp
IF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKZXh0ZXJuIGxvbmcgaW50IGxhYnMgKGxvbmcg
aW50IF9feCkgX19hdHRyaWJ1dGVfXyAoKF9fY29uc3RfXykpOwovLyMgNzEzICIvb3B0L2dudS1u
ZXcvaTY4Ni1wYy1saW51eC1nbnUvaW5jbHVkZS9zdGRsaWIuaCIgMwpleHRlcm4gZGl2X3QgZGl2
IChpbnQgX19udW1lciwgaW50IF9fZGVub20pCiAgICAgICAgICAgICBfX2F0dHJpYnV0ZV9fICgo
X19jb25zdF9fKSk7CmV4dGVybiBsZGl2X3QgbGRpdiAobG9uZyBpbnQgX19udW1lciwgbG9uZyBp
bnQgX19kZW5vbSkKICAgICAgICAgICAgIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsKLy8j
IDc3NiAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvc3RkbGliLmgiIDMK
ZXh0ZXJuIGludCBtYmxlbiAoX19jb25zdCBjaGFyICpfX3MsIHNpemVfdCBfX24pIDsKIApleHRl
cm4gaW50IG1idG93YyAod2NoYXJfdCAqX19yZXN0cmljdCBfX3B3YywKICAgICAgICAgICAgICAg
ICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX24pIDsKIApleHRlcm4g
aW50IHdjdG9tYiAoY2hhciAqX19zLCB3Y2hhcl90IF9fd2NoYXIpIDsKIApleHRlcm4gc2l6ZV90
IG1ic3Rvd2NzICh3Y2hhcl90ICpfX3Jlc3RyaWN0IF9fcHdjcywKICAgICAgICAgICAgICAgICAg
ICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywgc2l6ZV90IF9fbikgOwogCmV4dGVy
biBzaXplX3Qgd2NzdG9tYnMgKGNoYXIgKl9fcmVzdHJpY3QgX19zLAogICAgICAgICAgICAgICAg
ICAgICAgICBfX2NvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3QgX19wd2NzLCBzaXplX3QgX19uKQog
ICAgICAgICAgICA7Ci8vIyAxMiAiL29iai9HTlUvc3JjL2djYy9saWJmMmMvbGliSTc3L3dyZWYu
YyIgMgovLyMgMSAiL29wdC9nbnUtbmV3L2k2ODYtcGMtbGludXgtZ251L2luY2x1ZGUvc3RyaW5n
LmgiIDEgMwovLyMgMTMgIi9vYmovR05VL3NyYy9nY2MvbGliZjJjL2xpYkk3Ny93cmVmLmMiIDIK
IAovLyMgMSAiL29iai9HTlUvc3JjL2djYy9saWJmMmMvbGliSTc3L2ZtdC5oIiAxCnN0cnVjdCBz
eWwKeyBpbnQgb3A7CiAgICAgICAgaW50IHAxOwogICAgICAgIHVuaW9uIHsgaW50IGlbMl07IGNo
YXIgKnM7fSBwMjsKICAgICAgICB9OwovLyMgNDIgIi9vYmovR05VL3NyYy9nY2MvbGliZjJjL2xp
Ykk3Ny9mbXQuaCIKZXh0ZXJuIGludCBmX19wYyxmX19wYXJlbmx2bCxmX19yZXZsb2M7CnR5cGVk
ZWYgdW5pb24KeyByZWFsIHBmOwogICAgICAgIGRvdWJsZXJlYWwgcGQ7Cn0gdWZsb2F0Owp0eXBl
ZGVmIHVuaW9uCnsgc2hvcnQgaXM7CiAKICAgICAgICBzaWduZWQKIAogICAgICAgICAgICAgICAg
Y2hhciBpYzsKICAgICAgICBpbnRlZ2VyIGlsOwogCiAgICAgICAgbG9uZ2ludCBpbGk7CiAKfSBV
aW50OwovLyMgNjcgIi9vYmovR05VL3NyYy9nY2MvbGliZjJjL2xpYkk3Ny9mbXQuaCIKZXh0ZXJu
IGludCAoKmZfX2RvZWQpKHN0cnVjdCBzeWwqLCBjaGFyKiwgZnRubGVuKSwoKmZfX2RvbmVkKShz
dHJ1Y3Qgc3lsKik7CmV4dGVybiBpbnQgKCpmX19kb3JldmVydCkodm9pZCk7CmV4dGVybiB2b2lk
IGZtdF9iZyh2b2lkKTsKZXh0ZXJuIGludCBwYXJzX2YoY2hhciopOwpleHRlcm4gaW50IHJkX2Vk
KHN0cnVjdCBzeWwqLCBjaGFyKiwgZnRubGVuKSxyZF9uZWQoc3RydWN0IHN5bCopOwpleHRlcm4g
aW50IHdfZWQoc3RydWN0IHN5bCosIGNoYXIqLCBmdG5sZW4pLHdfbmVkKHN0cnVjdCBzeWwqKTsK
ZXh0ZXJuIGludCB3cnRfRSh1ZmxvYXQqLCBpbnQsIGludCwgaW50LCBmdG5sZW4pOwpleHRlcm4g
aW50IHdydF9GKHVmbG9hdCosIGludCwgaW50LCBmdG5sZW4pOwpleHRlcm4gaW50IHdydF9MKFVp
bnQqLCBpbnQsIGZ0bmxlbik7CiAKZXh0ZXJuIGZsYWcgZl9fY2JsYW5rLGZfX2NwbHVzLGZfX3dv
cmtkb25lLCBmX19ub25sOwpleHRlcm4gY2hhciAqZl9fZm10YnVmOwpleHRlcm4gaW50IGZfX2Zt
dGxlbjsKZXh0ZXJuIGludCBmX19zY2FsZTsKIApleHRlcm4gaW50IGZfX2N1cnNvcjsKLy8jIDEw
MCAiL29iai9HTlUvc3JjL2djYy9saWJmMmMvbGliSTc3L2ZtdC5oIgpleHRlcm4gY2hhciAqZl9f
aWN2dChsb25naW50LCBpbnQqLCBpbnQqLCBpbnQpOwovLyMgMTYgIi9vYmovR05VL3NyYy9nY2Mv
bGliZjJjL2xpYkk3Ny93cmVmLmMiIDIKLy8jIDEgIi9vYmovR05VL3NyYy9nY2MvbGliZjJjL2xp
Ykk3Ny9mcC5oIiAxCi8vIyAxNyAiL29iai9HTlUvc3JjL2djYy9saWJmMmMvbGliSTc3L3dyZWYu
YyIgMgogCndydF9FKHVmbG9hdCAqcCwgaW50IHcsIGludCBkLCBpbnQgZSwgZnRubGVuIGxlbikK
IAp7CiAgICAgICAgY2hhciBidWZbNDAgKzggKzRdLCAqcywgKnNlOwogICAgICAgIGludCBkMSwg
ZGVsdGEsIGUxLCBpLCBzaWduLCBzaWduc3BhY2U7CiAgICAgICAgZG91YmxlIGRkOwogCiAgICAg
ICAgaW50IGluc2VydDAgPSAwOwogCiAgICAgICAgaW50IGUwID0gZTsKIAogICAgICAgIGlmKGUg
PD0gMCkKICAgICAgICAgICAgICAgIGUgPSAyOwogICAgICAgIGlmKGZfX3NjYWxlKSB7CiAgICAg
ICAgICAgICAgICBpZihmX19zY2FsZSA+PSBkICsgMiB8fCBmX19zY2FsZSA8PSAtZCkKICAgICAg
ICAgICAgICAgICAgICAgICAgZ290byBub2dvb2Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAg
aWYoZl9fc2NhbGUgPD0gMCkKICAgICAgICAgICAgICAgIC0tZDsKICAgICAgICBpZiAobGVuID09
IHNpemVvZihyZWFsKSkKICAgICAgICAgICAgICAgIGRkID0gcC0+cGY7CiAgICAgICAgZWxzZQog
ICAgICAgICAgICAgICAgZGQgPSBwLT5wZDsKICAgICAgICBpZiAoZGQgPCAwLikgewogICAgICAg
ICAgICAgICAgc2lnbnNwYWNlID0gc2lnbiA9IDE7CiAgICAgICAgICAgICAgICBkZCA9IC1kZDsK
ICAgICAgICAgICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIHNpZ24gPSAw
OwogICAgICAgICAgICAgICAgc2lnbnNwYWNlID0gKGludClmX19jcGx1czsKIAogICAgICAgICAg
ICAgICAgaWYgKCFkZCkKICAgICAgICAgICAgICAgICAgICAgICAgZGQgPSAwLjsKIAogICAgICAg
ICAgICAgICAgfQogICAgICAgIGRlbHRhID0gdyAtICgyCiAgICAgICAgICAgICAgICAgICAgICAg
ICsgMiArIHNpZ25zcGFjZSArIGQgKyBlKTsKIAogICAgICAgIGlmIChmX19zY2FsZSA8PSAwICYm
IGRlbHRhID4gMCkgewogICAgICAgICAgICAgICAgZGVsdGEtLTsKICAgICAgICAgICAgICAgIGlu
c2VydDAgPSAxOwogICAgICAgICAgICAgICAgfQogICAgICAgIGVsc2UKIAogICAgICAgIGlmIChk
ZWx0YSA8IDApIHsKbm9nb29kOgogICAgICAgICAgICAgICAgd2hpbGUoLS13ID49IDApCiAgICAg
ICAgICAgICAgICAgICAgICAgICgqZl9fcHV0bikoJyonKTsKICAgICAgICAgICAgICAgIHJldHVy
bigwKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICBpZiAoZl9fc2NhbGUgPCAwKQogICAgICAg
ICAgICAgICAgZCArPSBmX19zY2FsZTsKICAgICAgICBpZiAoZCA+IDQwKSB7CiAgICAgICAgICAg
ICAgICBkMSA9IGQgLSA0MDsKICAgICAgICAgICAgICAgIGQgPSA0MDsKICAgICAgICAgICAgICAg
IH0KICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBkMSA9IDA7CiAgICAgICAgc3ByaW50Zihi
dWYsIiUjLipFIiwgZCwgZGQpOwogCiAgICAgICAgaWYgKCEoX19jdHlwZV9iWyhpbnQpICgoYnVm
WzBdKSldICYgKHVuc2lnbmVkIHNob3J0IGludCkgX0lTZGlnaXQpKSB7CiAgICAgICAgICAgICAg
ICBzd2l0Y2goYnVmWzBdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ24nOgogICAg
ICAgICAgICAgICAgICAgICAgICBjYXNlICdOJzoKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaWduc3BhY2UgPSAwOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICBkZWx0YSA9IHcgLSBzdHJsZW4oYnVmKSAtIHNpZ25zcGFjZTsKICAgICAgICAgICAgICAg
IGlmIChkZWx0YSA8IDApCiAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gbm9nb29kOwogICAg
ICAgICAgICAgICAgd2hpbGUoLS1kZWx0YSA+PSAwKQogICAgICAgICAgICAgICAgICAgICAgICAo
KmZfX3B1dG4pKCcgJyk7CiAgICAgICAgICAgICAgICBpZiAoc2lnbnNwYWNlKQogICAgICAgICAg
ICAgICAgICAgICAgICAoKmZfX3B1dG4pKHNpZ24gPyAnLScgOiAnKycpOwogICAgICAgICAgICAg
ICAgZm9yKHMgPSBidWY7ICpzOyBzKyspCiAgICAgICAgICAgICAgICAgICAgICAgICgqZl9fcHV0
bikoKnMpOwogICAgICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgICAgICAgICB9CiAKICAg
ICAgICBzZSA9IGJ1ZiArIGQgKyAzOwogCiAgICAgICAgaWYgKGRkKQogICAgICAgICAgICAgICAg
c3ByaW50ZihzZSwgIiUrLjJkIiwgYXRvaShzZSkgKyAxIC0gZl9fc2NhbGUpOwogICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgIHN0cmNweShzZSwgIiswMCIpOwogCiAgICAgICAgcyA9ICsrc2U7
CiAgICAgICAgaWYgKGUgPCAyKSB7CiAgICAgICAgICAgICAgICBpZiAoKnMgIT0gJzAnKQogICAg
ICAgICAgICAgICAgICAgICAgICBnb3RvIG5vZ29vZDsKICAgICAgICAgICAgICAgIH0KIAogICAg
ICAgIGlmIChzWzJdKSB7Ci8vIyAxMzAgIi9vYmovR05VL3NyYy9nY2MvbGliZjJjL2xpYkk3Ny93
cmVmLmMiCiAgICAgICAgICAgICAgICBpZiAoIWUwKSB7CiAgICAgICAgICAgICAgICAgICAgICAg
IGZvcihzIC09IDIsIGUxID0gMjsgc1swXSA9IHNbMV07IHMrKykKIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAg
ICAgICBlbHNlIGlmIChlMCA+PSAwKQogICAgICAgICAgICAgICAgICAgICAgICBnb3RvIHNoaWZ0
OwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICAgICBlMSA9IGU7CiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgZWxzZQogc2hpZnQ6CiAKICAgICAgICAgICAgICAgIGZv
cihzICs9IDIsIGUxID0gMjsgKnM7ICsrZTEsICsrcykKICAgICAgICAgICAgICAgICAgICAgICAg
aWYgKGUxID49IGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ290byBub2dvb2Q7
CiAgICAgICAgd2hpbGUoLS1kZWx0YSA+PSAwKQogICAgICAgICAgICAgICAgKCpmX19wdXRuKSgn
ICcpOwogICAgICAgIGlmIChzaWduc3BhY2UpCiAgICAgICAgICAgICAgICAoKmZfX3B1dG4pKHNp
Z24gPyAnLScgOiAnKycpOwogICAgICAgIHMgPSBidWY7CiAgICAgICAgaSA9IGZfX3NjYWxlOwog
ICAgICAgIGlmIChmX19zY2FsZSA8PSAwKSB7CiAKICAgICAgICAgICAgICAgIGlmIChpbnNlcnQw
KQogICAgICAgICAgICAgICAgICAgICAgICAoKmZfX3B1dG4pKCcwJyk7CiAKICAgICAgICAgICAg
ICAgICgqZl9fcHV0bikoJy4nKTsKICAgICAgICAgICAgICAgIGZvcig7IGkgPCAwOyArK2kpCiAg
ICAgICAgICAgICAgICAgICAgICAgICgqZl9fcHV0bikoJzAnKTsKICAgICAgICAgICAgICAgICgq
Zl9fcHV0bikoKnMpOwogICAgICAgICAgICAgICAgcyArPSAyOwogICAgICAgICAgICAgICAgfQog
ICAgICAgIGVsc2UgaWYgKGZfX3NjYWxlID4gMSkgewogICAgICAgICAgICAgICAgKCpmX19wdXRu
KSgqcyk7CiAgICAgICAgICAgICAgICBzICs9IDI7CiAgICAgICAgICAgICAgICB3aGlsZSgtLWkg
PiAwKQogICAgICAgICAgICAgICAgICAgICAgICAoKmZfX3B1dG4pKCpzKyspOwogICAgICAgICAg
ICAgICAgKCpmX19wdXRuKSgnLicpOwogICAgICAgICAgICAgICAgfQogICAgICAgIGlmIChkMSkg
ewogICAgICAgICAgICAgICAgc2UgLT0gMjsKICAgICAgICAgICAgICAgIHdoaWxlKHMgPCBzZSkg
KCpmX19wdXRuKSgqcysrKTsKICAgICAgICAgICAgICAgIHNlICs9IDI7CiAgICAgICAgICAgICAg
ICBkbyAoKmZfX3B1dG4pKCcwJyk7IHdoaWxlKC0tZDEgPiAwKTsKICAgICAgICAgICAgICAgIH0K
ICAgICAgICB3aGlsZShzIDwgc2UpCiAgICAgICAgICAgICAgICAoKmZfX3B1dG4pKCpzKyspOwog
ICAgICAgIGlmIChlIDwgMikKICAgICAgICAgICAgICAgICgqZl9fcHV0bikoc1sxXSk7CiAgICAg
ICAgZWxzZSB7CiAgICAgICAgICAgICAgICB3aGlsZSgrK2UxIDw9IGUpCiAgICAgICAgICAgICAg
ICAgICAgICAgICgqZl9fcHV0bikoJzAnKTsKICAgICAgICAgICAgICAgIHdoaWxlKCpzKQogICAg
ICAgICAgICAgICAgICAgICAgICAoKmZfX3B1dG4pKCpzKyspOwogICAgICAgICAgICAgICAgfQog
ICAgICAgIHJldHVybiAwOwogICAgICAgIH0KIAp3cnRfRih1ZmxvYXQgKnAsIGludCB3LCBpbnQg
ZCwgZnRubGVuIGxlbikKIAp7CiAgICAgICAgaW50IGQxLCBzaWduLCBuOwogICAgICAgIGRvdWJs
ZSB4OwogICAgICAgIGNoYXIgKmIsIGJ1ZlszMDggKzM0NCArNF0sICpzOwogCiAgICAgICAgeD0g
KGxlbj09c2l6ZW9mKHJlYWwpP3AtPnBmOnAtPnBkKTsKICAgICAgICBpZiAoZCA8IDM0NCkKICAg
ICAgICAgICAgICAgIGQxID0gMDsKICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGQxID0g
ZCAtIDM0NDsKICAgICAgICAgICAgICAgIGQgPSAzNDQ7CiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgaWYgKHggPCAwLikKICAgICAgICAgICAgICAgIHsgeCA9IC14OyBzaWduID0gMTsgfQogICAg
ICAgIGVsc2UgewogICAgICAgICAgICAgICAgc2lnbiA9IDA7CiAKICAgICAgICAgICAgICAgIGlm
ICgheCkKICAgICAgICAgICAgICAgICAgICAgICAgeCA9IDAuOwogCiAgICAgICAgICAgICAgICB9
CiAKICAgICAgICBpZiAobiA9IGZfX3NjYWxlKQogICAgICAgICAgICAgICAgaWYgKG4gPiAwKQog
ICAgICAgICAgICAgICAgICAgICAgICBkbyB4ICo9IDEwLjsgd2hpbGUoLS1uID4gMCk7CiAgICAg
ICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIGRvIHggKj0gMC4xOyB3aGls
ZSgrK24gPCAwKTsKIAogICAgICAgIG4gPSBzcHJpbnRmKGIgPSBidWYsICIlIy4qZiIsIGQsIHgp
ICsgZDE7CiAKICAgICAgICBpZiAoc2lnbikgewogCiAgICAgICAgICAgICAgICBmb3IocyA9IGI7
OykgewogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSgqcyA9PSAnMCcpIHMrKzsKICAgICAg
ICAgICAgICAgICAgICAgICAgc3dpdGNoKCpzKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY2FzZSAnLic6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz
Kys7IGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMDoKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpZ24gPSAwOwogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICBpZiAoc2ln
biB8fCBmX19jcGx1cykKICAgICAgICAgICAgICAgICsrbjsKICAgICAgICBpZiAobiA+IHcpIHsK
IAogICAgICAgICAgICAgICAgaWYgKGJ1ZlswXSA9PSAnMCcgJiYgLS1uID09IHcpCiAgICAgICAg
ICAgICAgICAgICAgICAgICsrYjsKICAgICAgICAgICAgICAgIGVsc2UKIAogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSgtLXcgPj0gMCkKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoKmZfX3B1dG4pKCcqJyk7CiAgICAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiAwOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9
CiAgICAgICAgZm9yKHcgLT0gbjsgLS13ID49IDA7ICkKICAgICAgICAgICAgICAgICgqZl9fcHV0
bikoJyAnKTsKICAgICAgICBpZiAoc2lnbikKICAgICAgICAgICAgICAgICgqZl9fcHV0bikoJy0n
KTsKICAgICAgICBlbHNlIGlmIChmX19jcGx1cykKICAgICAgICAgICAgICAgICgqZl9fcHV0biko
JysnKTsKICAgICAgICB3aGlsZShuID0gKmIrKykKICAgICAgICAgICAgICAgICgqZl9fcHV0biko
bik7CiAgICAgICAgd2hpbGUoLS1kMSA+PSAwKQogICAgICAgICAgICAgICAgKCpmX19wdXRuKSgn
MCcpOwogICAgICAgIHJldHVybiAwOwogICAgICAgIH0K
More information about the Gcc-bugs
mailing list