public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
* Re: optimization/4330: Optimizer generates illegal assembly code
@ 2002-04-03 7:46 Peter van Hoof
0 siblings, 0 replies; 5+ messages in thread
From: Peter van Hoof @ 2002-04-03 7:46 UTC (permalink / raw)
To: nobody; +Cc: gcc-prs
The following reply was made to PR optimization/4330; it has been noted by GNATS.
From: Peter van Hoof <p.van-hoof@qub.ac.uk>
To: rth@gcc.gnu.org, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org,
nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org
Cc:
Subject: Re: optimization/4330: Optimizer generates illegal assembly code
Date: Wed, 03 Apr 2002 15:31:09 +0100
This is a multi-part message in MIME format.
--------------060208020305070509010903
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: 7bit
The file in question has been attached, this time not compressed.
rth@gcc.gnu.org wrote:
> Synopsis: Optimizer generates illegal assembly code
>
> State-Changed-From-To: open->feedback
> State-Changed-By: rth
> State-Changed-When: Wed Apr 3 00:48:26 2002
> State-Changed-Why:
> bunzip2: Compressed file ends unexpectedly; perhaps it is corrupted?
>
> Could you re-send the file please?
>
> http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4330
>
--
Peter van Hoof
APS Division - Physics Department
Queen's University Belfast
Belfast, BT7 1NN
Northern Ireland
Home Page: http://star.pst.qub.ac.uk/~pvh
--------------060208020305070509010903
Content-Type: application/vnd.sun.xml.impress;
name="rauch.i"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="rauch.i"
IyA0ICJyYXVjaC5jIgojIDEgIi4uLy4uL3NvdXJjZS9jZGRlZmluZXMuaCIgMQoKIyAxICIv
b3B0L2xvY2FsL2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1
ZGUvc3RkaW8uaCIgMSAzCiMgMTQgIi9vcHQvbG9jYWwvbGliL2djYy1saWIvc3BhcmMtc3Vu
LXNvbGFyaXMyLjgvMy4wLjEvaW5jbHVkZS9zdGRpby5oIiAzCiMgMSAiL29wdC9sb2NhbC9s
aWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL3N0ZGFyZy5o
IiAxIDMKIyA0MyAiL29wdC9sb2NhbC9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIu
OC8zLjAuMS9pbmNsdWRlL3N0ZGFyZy5oIiAzCnR5cGVkZWYgX19idWlsdGluX3ZhX2xpc3Qg
X19nbnVjX3ZhX2xpc3Q7CiMgMTUgIi9vcHQvbG9jYWwvbGliL2djYy1saWIvc3BhcmMtc3Vu
LXNvbGFyaXMyLjgvMy4wLjEvaW5jbHVkZS9zdGRpby5oIiAyIDMKIyAzNCAiL29wdC9sb2Nh
bC9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL3N0ZGlv
LmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKXN0ZGlvLmgJMS43OAk5OS8xMi8wOCBTTUkiCgoj
IDEgIi91c3IvaW5jbHVkZS9pc28vc3RkaW9faXNvLmgiIDEgMwojIDMyICIvdXNyL2luY2x1
ZGUvaXNvL3N0ZGlvX2lzby5oIiAzCiNwcmFnbWEgaWRlbnQgIkAoIylzdGRpb19pc28uaAkx
LjIJOTkvMTAvMjUgU01JIgoKCiMgMSAiL3Vzci9pbmNsdWRlL3N5cy9mZWF0dXJlX3Rlc3Rz
LmgiIDEgMwojIDEzICIvdXNyL2luY2x1ZGUvc3lzL2ZlYXR1cmVfdGVzdHMuaCIgMwojcHJh
Z21hIGlkZW50ICJAKCMpZmVhdHVyZV90ZXN0cy5oCTEuMTgJOTkvMDcvMjYgU01JIgoKIyAx
ICIvdXNyL2luY2x1ZGUvc3lzL2lzYV9kZWZzLmgiIDEgMwojIDkgIi91c3IvaW5jbHVkZS9z
eXMvaXNhX2RlZnMuaCIgMwojcHJhZ21hIGlkZW50ICJAKCMpaXNhX2RlZnMuaAkxLjIwCTk5
LzA1LzA0IFNNSSIKIyAxNiAiL3Vzci9pbmNsdWRlL3N5cy9mZWF0dXJlX3Rlc3RzLmgiIDIg
MwojIDM2ICIvdXNyL2luY2x1ZGUvaXNvL3N0ZGlvX2lzby5oIiAyIDMKIyAxICIvdXNyL2lu
Y2x1ZGUvc3lzL3ZhX2xpc3QuaCIgMSAzCiMgOSAiL3Vzci9pbmNsdWRlL3N5cy92YV9saXN0
LmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKXZhX2xpc3QuaAkxLjEyCTk5LzA1LzA0IFNNSSIK
IyAyNiAiL3Vzci9pbmNsdWRlL3N5cy92YV9saXN0LmgiIDMKdHlwZWRlZiB2b2lkICpfX3Zh
X2xpc3Q7CiMgMzcgIi91c3IvaW5jbHVkZS9pc28vc3RkaW9faXNvLmgiIDIgMwojIDEgIi91
c3IvaW5jbHVkZS9zdGRpb190YWcuaCIgMSAzCiMgOSAiL3Vzci9pbmNsdWRlL3N0ZGlvX3Rh
Zy5oIiAzCiNwcmFnbWEgaWRlbnQgIkAoIylzdGRpb190YWcuaAkxLjMJOTgvMDQvMjAgU01J
IgojIDIxICIvdXNyL2luY2x1ZGUvc3RkaW9fdGFnLmgiIDMKdHlwZWRlZiBzdHJ1Y3QgX19G
SUxFIF9fRklMRTsKIyAzOCAiL3Vzci9pbmNsdWRlL2lzby9zdGRpb19pc28uaCIgMiAzCiMg
MSAiL3Vzci9pbmNsdWRlL3N0ZGlvX2ltcGwuaCIgMSAzCiMgOSAiL3Vzci9pbmNsdWRlL3N0
ZGlvX2ltcGwuaCIgMwojcHJhZ21hIGlkZW50ICJAKCMpc3RkaW9faW1wbC5oCTEuOAk5OS8w
Ni8xMCBTTUkiCgojIDEgIi91c3IvaW5jbHVkZS9zeXMvaXNhX2RlZnMuaCIgMSAzCiMgMTIg
Ii91c3IvaW5jbHVkZS9zdGRpb19pbXBsLmgiIDIgMwojIDIyICIvdXNyL2luY2x1ZGUvc3Rk
aW9faW1wbC5oIiAzCnR5cGVkZWYgaW50IHNzaXplX3Q7CiMgMzggIi91c3IvaW5jbHVkZS9z
dGRpb19pbXBsLmgiIDMKc3RydWN0IF9fRklMRQp7CgoKCgogICAgICAgIHNzaXplX3QgX2Nu
dDsKICAgICAgICB1bnNpZ25lZCBjaGFyICpfcHRyOwoKICAgICAgICB1bnNpZ25lZCBjaGFy
ICpfYmFzZTsKICAgICAgICB1bnNpZ25lZCBjaGFyIF9mbGFnOwogICAgICAgIHVuc2lnbmVk
IGNoYXIgX2ZpbGU7CiAgICAgICAgdW5zaWduZWQgX19vcmllbnRhdGlvbjoyOwogICAgICAg
IHVuc2lnbmVkIF9faW9ub2xvY2s6MTsKICAgICAgICB1bnNpZ25lZCBfX2ZpbGxlcjo1Owp9
OwojIDM5ICIvdXNyL2luY2x1ZGUvaXNvL3N0ZGlvX2lzby5oIiAyIDMKIyA3NSAiL3Vzci9p
bmNsdWRlL2lzby9zdGRpb19pc28uaCIgMwp0eXBlZGVmIF9fRklMRSBGSUxFOwoKCgoKCgoK
dHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90OwoKCgoKdHlwZWRlZiBsb25nIGZwb3NfdDsK
IyAxNDcgIi91c3IvaW5jbHVkZS9pc28vc3RkaW9faXNvLmgiIDMKZXh0ZXJuIF9fRklMRSBf
X2lvYlsyMF07CiMgMTY0ICIvdXNyL2luY2x1ZGUvaXNvL3N0ZGlvX2lzby5oIiAzCmV4dGVy
biBpbnQgcmVtb3ZlKGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgcmVuYW1lKGNvbnN0IGNo
YXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIEZJTEUgKnRtcGZpbGUodm9pZCk7CmV4dGVy
biBjaGFyICp0bXBuYW0oY2hhciAqKTsKZXh0ZXJuIGludCBmY2xvc2UoRklMRSAqKTsKZXh0
ZXJuIGludCBmZmx1c2goRklMRSAqKTsKZXh0ZXJuIEZJTEUgKmZvcGVuKGNvbnN0IGNoYXIg
KiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIEZJTEUgKmZyZW9wZW4oY29uc3QgY2hhciAqLCBj
b25zdCBjaGFyICosIEZJTEUgKik7CmV4dGVybiB2b2lkIHNldGJ1ZihGSUxFICosIGNoYXIg
Kik7CmV4dGVybiBpbnQgc2V0dmJ1ZihGSUxFICosIGNoYXIgKiwgaW50LCBzaXplX3QpOwoK
ZXh0ZXJuIGludCBmcHJpbnRmKEZJTEUgKiwgY29uc3QgY2hhciAqLCAuLi4pOwoKZXh0ZXJu
IGludCBmc2NhbmYoRklMRSAqLCBjb25zdCBjaGFyICosIC4uLik7CgpleHRlcm4gaW50IHBy
aW50Zihjb25zdCBjaGFyICosIC4uLik7CgpleHRlcm4gaW50IHNjYW5mKGNvbnN0IGNoYXIg
KiwgLi4uKTsKCmV4dGVybiBpbnQgc3ByaW50ZihjaGFyICosIGNvbnN0IGNoYXIgKiwgLi4u
KTsKCmV4dGVybiBpbnQgc3NjYW5mKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCAuLi4p
OwpleHRlcm4gaW50IHZmcHJpbnRmKEZJTEUgKiwgY29uc3QgY2hhciAqLCBfX3ZhX2xpc3Qp
OwpleHRlcm4gaW50IHZwcmludGYoY29uc3QgY2hhciAqLCBfX3ZhX2xpc3QpOwpleHRlcm4g
aW50IHZzcHJpbnRmKGNoYXIgKiwgY29uc3QgY2hhciAqLCBfX3ZhX2xpc3QpOwpleHRlcm4g
aW50IGZnZXRjKEZJTEUgKik7CmV4dGVybiBjaGFyICpmZ2V0cyhjaGFyICosIGludCwgRklM
RSAqKTsKZXh0ZXJuIGludCBmcHV0YyhpbnQsIEZJTEUgKik7CmV4dGVybiBpbnQgZnB1dHMo
Y29uc3QgY2hhciAqLCBGSUxFICopOwoKCmV4dGVybiBpbnQgZ2V0YyhGSUxFICopOwpleHRl
cm4gaW50IHB1dGMoaW50LCBGSUxFICopOwoKCgpleHRlcm4gaW50IGdldGNoYXIodm9pZCk7
CmV4dGVybiBpbnQgcHV0Y2hhcihpbnQpOwoKZXh0ZXJuIGNoYXIgKmdldHMoY2hhciAqKTsK
ZXh0ZXJuIGludCBwdXRzKGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgdW5nZXRjKGludCwg
RklMRSAqKTsKZXh0ZXJuIHNpemVfdCBmcmVhZCh2b2lkICosIHNpemVfdCwgc2l6ZV90LCBG
SUxFICopOwpleHRlcm4gc2l6ZV90IGZ3cml0ZShjb25zdCB2b2lkICosIHNpemVfdCwgc2l6
ZV90LCBGSUxFICopOwpleHRlcm4gaW50IGZnZXRwb3MoRklMRSAqLCBmcG9zX3QgKik7CmV4
dGVybiBpbnQgZnNlZWsoRklMRSAqLCBsb25nLCBpbnQpOwpleHRlcm4gaW50IGZzZXRwb3Mo
RklMRSAqLCBjb25zdCBmcG9zX3QgKik7CmV4dGVybiBsb25nIGZ0ZWxsKEZJTEUgKik7CmV4
dGVybiB2b2lkIHJld2luZChGSUxFICopOwoKCmV4dGVybiB2b2lkIGNsZWFyZXJyKEZJTEUg
Kik7CmV4dGVybiBpbnQgZmVvZihGSUxFICopOwpleHRlcm4gaW50IGZlcnJvcihGSUxFICop
OwoKZXh0ZXJuIHZvaWQgcGVycm9yKGNvbnN0IGNoYXIgKik7CgoKZXh0ZXJuIGludCBfX2Zp
bGJ1ZihGSUxFICopOwpleHRlcm4gaW50IF9fZmxzYnVmKGludCwgRklMRSAqKTsKIyAzNyAi
L29wdC9sb2NhbC9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNs
dWRlL3N0ZGlvLmgiIDIgMwojIDE1MSAiL29wdC9sb2NhbC9saWIvZ2NjLWxpYi9zcGFyYy1z
dW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJuIHVuc2lnbmVk
IGNoYXIgX3NpYnVmW10sIF9zb2J1ZltdOwojIDE5MyAiL29wdC9sb2NhbC9saWIvZ2NjLWxp
Yi9zcGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL3N0ZGlvLmgiIDMKZXh0ZXJu
IHVuc2lnbmVkIGNoYXIgKl9idWZlbmR0YWJbXTsKZXh0ZXJuIEZJTEUgKl9sYXN0YnVmOwoj
IDMgIi4uLy4uL3NvdXJjZS9jZGRlZmluZXMuaCIgMgojIDEgIi91c3IvaW5jbHVkZS9zdGRs
aWIuaCIgMSAzCiMgMTYgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMwojcHJhZ21hIGlkZW50
ICJAKCMpc3RkbGliLmgJMS40Nwk5OS8xMS8wMyBTTUkiCgojIDEgIi9vcHQvbG9jYWwvbGli
L2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjgvMy4wLjEvaW5jbHVkZS9pc28vc3RkbGli
X2lzby5oIiAxIDMKIyAzNyAiL29wdC9sb2NhbC9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29s
YXJpczIuOC8zLjAuMS9pbmNsdWRlL2lzby9zdGRsaWJfaXNvLmgiIDMKI3ByYWdtYSBpZGVu
dCAiQCgjKXN0ZGxpYl9pc28uaAkxLjIJOTkvMTIvMjEgU01JIgoKIyAxICIvdXNyL2luY2x1
ZGUvc3lzL2ZlYXR1cmVfdGVzdHMuaCIgMSAzCiMgNDAgIi9vcHQvbG9jYWwvbGliL2djYy1s
aWIvc3BhcmMtc3VuLXNvbGFyaXMyLjgvMy4wLjEvaW5jbHVkZS9pc28vc3RkbGliX2lzby5o
IiAyIDMKCgoKCgoKZXh0ZXJuIHVuc2lnbmVkIGNoYXIgX19jdHlwZVtdOwojIDU3ICIvb3B0
L2xvY2FsL2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1ZGUv
aXNvL3N0ZGxpYl9pc28uaCIgMwp0eXBlZGVmIHN0cnVjdCB7CiAgICAgICAgaW50IHF1b3Q7
CiAgICAgICAgaW50IHJlbTsKfSBkaXZfdDsKCnR5cGVkZWYgc3RydWN0IHsKICAgICAgICBs
b25nIHF1b3Q7CiAgICAgICAgbG9uZyByZW07Cn0gbGRpdl90OwojIDk2ICIvb3B0L2xvY2Fs
L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1ZGUvaXNvL3N0
ZGxpYl9pc28uaCIgMwp0eXBlZGVmIGxvbmcgd2NoYXJfdDsKCgoKCgoKZXh0ZXJuIHZvaWQg
YWJvcnQodm9pZCk7CmV4dGVybiBpbnQgYWJzKGludCk7CmV4dGVybiBpbnQgYXRleGl0KHZv
aWQgKCopKHZvaWQpKTsKZXh0ZXJuIGRvdWJsZSBhdG9mKGNvbnN0IGNoYXIgKik7CmV4dGVy
biBpbnQgYXRvaShjb25zdCBjaGFyICopOwpleHRlcm4gbG9uZyBpbnQgYXRvbChjb25zdCBj
aGFyICopOwpleHRlcm4gdm9pZCAqYnNlYXJjaChjb25zdCB2b2lkICosIGNvbnN0IHZvaWQg
Kiwgc2l6ZV90LCBzaXplX3QsCiAgICAgICAgaW50ICgqKShjb25zdCB2b2lkICosIGNvbnN0
IHZvaWQgKikpOwpleHRlcm4gdm9pZCAqY2FsbG9jKHNpemVfdCwgc2l6ZV90KTsKZXh0ZXJu
IGRpdl90IGRpdihpbnQsIGludCk7CmV4dGVybiB2b2lkIGV4aXQoaW50KTsKZXh0ZXJuIHZv
aWQgZnJlZSh2b2lkICopOwpleHRlcm4gY2hhciAqZ2V0ZW52KGNvbnN0IGNoYXIgKik7CmV4
dGVybiBsb25nIGludCBsYWJzKGxvbmcpOwpleHRlcm4gbGRpdl90IGxkaXYobG9uZywgbG9u
Zyk7CmV4dGVybiB2b2lkICptYWxsb2Moc2l6ZV90KTsKZXh0ZXJuIGludCBtYmxlbihjb25z
dCBjaGFyICosIHNpemVfdCk7CmV4dGVybiBzaXplX3QgbWJzdG93Y3Mod2NoYXJfdCAqLCBj
b25zdCBjaGFyICosIHNpemVfdCk7CmV4dGVybiBpbnQgbWJ0b3djKHdjaGFyX3QgKiwgY29u
c3QgY2hhciAqLCBzaXplX3QpOwpleHRlcm4gdm9pZCBxc29ydCh2b2lkICosIHNpemVfdCwg
c2l6ZV90LAogICAgICAgIGludCAoKikoY29uc3Qgdm9pZCAqLCBjb25zdCB2b2lkICopKTsK
ZXh0ZXJuIGludCByYW5kKHZvaWQpOwpleHRlcm4gdm9pZCAqcmVhbGxvYyh2b2lkICosIHNp
emVfdCk7CmV4dGVybiB2b2lkIHNyYW5kKHVuc2lnbmVkIGludCk7CmV4dGVybiBkb3VibGUg
c3RydG9kKGNvbnN0IGNoYXIgKiwgY2hhciAqKik7CmV4dGVybiBsb25nIGludCBzdHJ0b2wo
Y29uc3QgY2hhciAqLCBjaGFyICoqLCBpbnQpOwpleHRlcm4gdW5zaWduZWQgbG9uZyBpbnQg
c3RydG91bChjb25zdCBjaGFyICosIGNoYXIgKiosIGludCk7CmV4dGVybiBpbnQgc3lzdGVt
KGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgd2N0b21iKGNoYXIgKiwgd2NoYXJfdCk7CmV4
dGVybiBzaXplX3Qgd2NzdG9tYnMoY2hhciAqLCBjb25zdCB3Y2hhcl90ICosIHNpemVfdCk7
CiMgMTkgIi91c3IvaW5jbHVkZS9zdGRsaWIuaCIgMiAzCiMgNzkgIi91c3IvaW5jbHVkZS9z
dGRsaWIuaCIgMwp0eXBlZGVmIGxvbmcgdWlkX3Q7CiMgMTEyICIvdXNyL2luY2x1ZGUvc3Rk
bGliLmgiIDMKZXh0ZXJuIHZvaWQgX2V4aXRoYW5kbGUodm9pZCk7CiMgMTUwICIvdXNyL2lu
Y2x1ZGUvc3RkbGliLmgiIDMKZXh0ZXJuIGludCBta3N0ZW1wKGNoYXIgKik7CiMgNCAiLi4v
Li4vc291cmNlL2NkZGVmaW5lcy5oIiAyCiMgMSAiL29wdC9sb2NhbC9saWIvZ2NjLWxpYi9z
cGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL21hdGguaCIgMSAzCiMgMjMgIi9v
cHQvbG9jYWwvbGliL2djYy1saWIvc3BhcmMtc3VuLXNvbGFyaXMyLjgvMy4wLjEvaW5jbHVk
ZS9tYXRoLmgiIDMKI3ByYWdtYSBpZGVudCAiQCgjKW1hdGguaAkyLjEwCTk5LzA3LzI5IFNN
SSIKCiMgMSAiL3Vzci9pbmNsdWRlL2lzby9tYXRoX2lzby5oIiAxIDMKCgoKCgoKCiNwcmFn
bWEgaWRlbnQgIkAoIyltYXRoX2lzby5oCTEuMQk5OS8wNy8zMCBTTUkiCiMgMjAgIi91c3Iv
aW5jbHVkZS9pc28vbWF0aF9pc28uaCIgMwp0eXBlZGVmIHVuaW9uIF9oX3ZhbCB7CiAgICAg
ICAgdW5zaWduZWQgbG9uZyBfaVtzaXplb2YoZG91YmxlKSAvIHNpemVvZih1bnNpZ25lZCBs
b25nKV07CiAgICAgICAgZG91YmxlIF9kOwp9IF9oX3ZhbDsKCgpleHRlcm4gY29uc3QgX2hf
dmFsIF9faHVnZV92YWw7CiMgMzcgIi91c3IvaW5jbHVkZS9pc28vbWF0aF9pc28uaCIgMwpl
eHRlcm4gZG91YmxlIGFjb3MgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgYXNpbiAoZG91Ymxl
KTsKZXh0ZXJuIGRvdWJsZSBhdGFuIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGF0YW4yIChk
b3VibGUsIGRvdWJsZSk7CmV4dGVybiBkb3VibGUgY29zIChkb3VibGUpOwpleHRlcm4gZG91
YmxlIHNpbiAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSB0YW4gKGRvdWJsZSk7CgpleHRlcm4g
ZG91YmxlIGNvc2ggKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgc2luaCAoZG91YmxlKTsKZXh0
ZXJuIGRvdWJsZSB0YW5oIChkb3VibGUpOwoKZXh0ZXJuIGRvdWJsZSBleHAgKGRvdWJsZSk7
CmV4dGVybiBkb3VibGUgZnJleHAgKGRvdWJsZSwgaW50ICopOwpleHRlcm4gZG91YmxlIGxk
ZXhwIChkb3VibGUsIGludCk7CmV4dGVybiBkb3VibGUgbG9nIChkb3VibGUpOwpleHRlcm4g
ZG91YmxlIGxvZzEwIChkb3VibGUpOwpleHRlcm4gZG91YmxlIG1vZGYgKGRvdWJsZSwgZG91
YmxlICopOwoKZXh0ZXJuIGRvdWJsZSBwb3cgKGRvdWJsZSwgZG91YmxlKTsKZXh0ZXJuIGRv
dWJsZSBzcXJ0IChkb3VibGUpOwoKZXh0ZXJuIGRvdWJsZSBjZWlsIChkb3VibGUpOwpleHRl
cm4gZG91YmxlIGZhYnMgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgZmxvb3IgKGRvdWJsZSk7
CmV4dGVybiBkb3VibGUgZm1vZCAoZG91YmxlLCBkb3VibGUpOwojIDI2ICIvb3B0L2xvY2Fs
L2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1ZGUvbWF0aC5o
IiAyIDMKIyA1ICIuLi8uLi9zb3VyY2UvY2RkZWZpbmVzLmgiIDIKIyAxICIvdXNyL2luY2x1
ZGUvYXNzZXJ0LmgiIDEgMwojIDExICIvdXNyL2luY2x1ZGUvYXNzZXJ0LmgiIDMKI3ByYWdt
YSBpZGVudCAiQCgjKWFzc2VydC5oCTEuOQk5Mi8wNy8xNCBTTUkiCgoKCgoKCmV4dGVybiB2
b2lkIF9fYXNzZXJ0KGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqLCBpbnQpOwojIDYgIi4u
Ly4uL3NvdXJjZS9jZGRlZmluZXMuaCIgMgojIDEgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIg
MSAzCiMgMTYgIi91c3IvaW5jbHVkZS9zdHJpbmcuaCIgMwojcHJhZ21hIGlkZW50ICJAKCMp
c3RyaW5nLmgJMS4yNAk5OS8wOC8xMCBTTUkiCgojIDEgIi91c3IvaW5jbHVkZS9pc28vc3Ry
aW5nX2lzby5oIiAxIDMKIyAyOCAiL3Vzci9pbmNsdWRlL2lzby9zdHJpbmdfaXNvLmgiIDMK
I3ByYWdtYSBpZGVudCAiQCgjKXN0cmluZ19pc28uaAkxLjIJOTkvMTEvMDkgU01JIgoKCiMg
MSAiL3Vzci9pbmNsdWRlL3N5cy9mZWF0dXJlX3Rlc3RzLmgiIDEgMwojIDMyICIvdXNyL2lu
Y2x1ZGUvaXNvL3N0cmluZ19pc28uaCIgMiAzCiMgNjAgIi91c3IvaW5jbHVkZS9pc28vc3Ry
aW5nX2lzby5oIiAzCmV4dGVybiBpbnQgbWVtY21wKGNvbnN0IHZvaWQgKiwgY29uc3Qgdm9p
ZCAqLCBzaXplX3QpOwpleHRlcm4gdm9pZCAqbWVtY3B5KHZvaWQgKiwgY29uc3Qgdm9pZCAq
LCBzaXplX3QpOwpleHRlcm4gdm9pZCAqbWVtbW92ZSh2b2lkICosIGNvbnN0IHZvaWQgKiwg
c2l6ZV90KTsKZXh0ZXJuIHZvaWQgKm1lbXNldCh2b2lkICosIGludCwgc2l6ZV90KTsKZXh0
ZXJuIGNoYXIgKnN0cmNhdChjaGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgc3Ry
Y21wKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKnN0cmNweShj
aGFyICosIGNvbnN0IGNoYXIgKik7CmV4dGVybiBpbnQgc3RyY29sbChjb25zdCBjaGFyICos
IGNvbnN0IGNoYXIgKik7CmV4dGVybiBzaXplX3Qgc3RyY3Nwbihjb25zdCBjaGFyICosIGNv
bnN0IGNoYXIgKik7CmV4dGVybiBjaGFyICpzdHJlcnJvcihpbnQpOwpleHRlcm4gc2l6ZV90
IHN0cmxlbihjb25zdCBjaGFyICopOwpleHRlcm4gY2hhciAqc3RybmNhdChjaGFyICosIGNv
bnN0IGNoYXIgKiwgc2l6ZV90KTsKZXh0ZXJuIGludCBzdHJuY21wKGNvbnN0IGNoYXIgKiwg
Y29uc3QgY2hhciAqLCBzaXplX3QpOwpleHRlcm4gY2hhciAqc3RybmNweShjaGFyICosIGNv
bnN0IGNoYXIgKiwgc2l6ZV90KTsKZXh0ZXJuIHNpemVfdCBzdHJzcG4oY29uc3QgY2hhciAq
LCBjb25zdCBjaGFyICopOwpleHRlcm4gY2hhciAqc3RydG9rKGNoYXIgKiwgY29uc3QgY2hh
ciAqKTsKZXh0ZXJuIHNpemVfdCBzdHJ4ZnJtKGNoYXIgKiwgY29uc3QgY2hhciAqLCBzaXpl
X3QpOwojIDExMiAiL3Vzci9pbmNsdWRlL2lzby9zdHJpbmdfaXNvLmgiIDMKZXh0ZXJuIHZv
aWQgKm1lbWNocihjb25zdCB2b2lkICosIGludCwgc2l6ZV90KTsKZXh0ZXJuIGNoYXIgKnN0
cmNocihjb25zdCBjaGFyICosIGludCk7CmV4dGVybiBjaGFyICpzdHJwYnJrKGNvbnN0IGNo
YXIgKiwgY29uc3QgY2hhciAqKTsKZXh0ZXJuIGNoYXIgKnN0cnJjaHIoY29uc3QgY2hhciAq
LCBpbnQpOwpleHRlcm4gY2hhciAqc3Ryc3RyKGNvbnN0IGNoYXIgKiwgY29uc3QgY2hhciAq
KTsKIyAxOSAiL3Vzci9pbmNsdWRlL3N0cmluZy5oIiAyIDMKIyA3ICIuLi8uLi9zb3VyY2Uv
Y2RkZWZpbmVzLmgiIDIKIyAxICIvdXNyL2luY2x1ZGUvZmxvYXQuaCIgMSAzCiMgMTYgIi91
c3IvaW5jbHVkZS9mbG9hdC5oIiAzCiNwcmFnbWEgaWRlbnQgIkAoIylmbG9hdC5oCTEuMTgJ
OTkvMDUvMDQgU01JIgojIDI1ICIvdXNyL2luY2x1ZGUvZmxvYXQuaCIgMwpleHRlcm4gaW50
IF9fZmx0X3JvdW5kcyh2b2lkKTsKIyA4ICIuLi8uLi9zb3VyY2UvY2RkZWZpbmVzLmgiIDIK
IyAxICIvb3B0L2xvY2FsL2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi44LzMuMC4x
L2luY2x1ZGUvbGltaXRzLmgiIDEgMwojIDExICIvb3B0L2xvY2FsL2xpYi9nY2MtbGliL3Nw
YXJjLXN1bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1ZGUvbGltaXRzLmgiIDMKIyAxICIvb3B0
L2xvY2FsL2xpYi9nY2MtbGliL3NwYXJjLXN1bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1ZGUv
c3lzbGltaXRzLmgiIDEgMwojIDI1ICIvb3B0L2xvY2FsL2xpYi9nY2MtbGliL3NwYXJjLXN1
bi1zb2xhcmlzMi44LzMuMC4xL2luY2x1ZGUvc3lzbGltaXRzLmgiIDMKI3ByYWdtYSBpZGVu
dCAiQCgjKWxpbWl0cy5oCTEuNTEJOTkvMTAvMDggU01JIgoKIyAxICIvdXNyL2luY2x1ZGUv
c3lzL2ZlYXR1cmVfdGVzdHMuaCIgMSAzCiMgMjggIi9vcHQvbG9jYWwvbGliL2djYy1saWIv
c3BhcmMtc3VuLXNvbGFyaXMyLjgvMy4wLjEvaW5jbHVkZS9zeXNsaW1pdHMuaCIgMiAzCiMg
MSAiL3Vzci9pbmNsdWRlL3N5cy9pc2FfZGVmcy5oIiAxIDMKIyAyOSAiL29wdC9sb2NhbC9s
aWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL3N5c2xpbWl0
cy5oIiAyIDMKIyAxICIvdXNyL2luY2x1ZGUvaXNvL2xpbWl0c19pc28uaCIgMSAzCiMgMjgg
Ii91c3IvaW5jbHVkZS9pc28vbGltaXRzX2lzby5oIiAzCiNwcmFnbWEgaWRlbnQgIkAoIyls
aW1pdHNfaXNvLmgJMS4xCTk5LzA4LzA5IFNNSSIKIyAzMCAiL29wdC9sb2NhbC9saWIvZ2Nj
LWxpYi9zcGFyYy1zdW4tc29sYXJpczIuOC8zLjAuMS9pbmNsdWRlL3N5c2xpbWl0cy5oIiAy
IDMKIyAxMiAiL29wdC9sb2NhbC9saWIvZ2NjLWxpYi9zcGFyYy1zdW4tc29sYXJpczIuOC8z
LjAuMS9pbmNsdWRlL2xpbWl0cy5oIiAyIDMKIyA5ICIuLi8uLi9zb3VyY2UvY2RkZWZpbmVz
LmgiIDIKIyAxNyAiLi4vLi4vc291cmNlL2NkZGVmaW5lcy5oIgp2b2lkIGNkRGVmaW5lcyh2
b2lkKTsKCgpkb3VibGUgZnVkZ2UobG9uZyBpbnQgaXBudCk7CgoKdm9pZCBicm9rZW4odm9p
ZCk7CgoKCnZvaWQgZml4aXQodm9pZCk7CgoKdm9pZCB0ZXN0Y29kZSh2b2lkKTsKCgp2b2lk
ICpteV9tYWxsb2MoCiAgICAgICAgc2l6ZV90IHNpemUKICAgICAgICApOwoKCnZvaWQgYmFk
X21hbGxvYyh2b2lkKTsKIyA2MyAiLi4vLi4vc291cmNlL2NkZGVmaW5lcy5oIgp0eXBlZGVm
IHN0cnVjdAp7CiMgNzMgIi4uLy4uL3NvdXJjZS9jZGRlZmluZXMuaCIKICAgICAgICBpbnQg
aVJlZGlzRnVuIDsKCgoKICAgICAgICBpbnQgaXBDb250OwoKCiAgICAgICAgaW50IElvblN0
ZzsKCgogICAgICAgIGludCBuZWxlbTsKCgogICAgICAgIGZsb2F0IFRhdUNvbiA7CgoKICAg
ICAgICBmbG9hdCBDb2xVTDsKCgogICAgICAgIGZsb2F0IFRhdUluOwoKCiAgICAgICAgZmxv
YXQgVGF1VG90IDsKCgogICAgICAgIGZsb2F0IEZyYWNJbndkOwoKCgogICAgICAgIGZsb2F0
IHB1bXAgOwoKCiAgICAgICAgZG91YmxlIHhJbnRlbnNpdHkgOwoKCiAgICAgICAgZG91Ymxl
IHBob3RzOwoKCiAgICAgICAgZmxvYXQgZ2YgOwoKCiAgICAgICAgZmxvYXQgUGVzYyAsIFBk
ZXN0OwoKCiAgICAgICAgZmxvYXQgZGFtcCwgZGFtcHJlbCA7CgoKICAgICAgICBmbG9hdCBk
VGF1OwoKCiAgICAgICAgZG91YmxlIGNvb2wgLCBoZWF0IDsKCgogICAgICAgIGZsb2F0IENv
bE92VG90IDsKCgogICAgICAgIGZsb2F0IGNzOwoKCiAgICAgICAgZmxvYXQgV0xBbmc7CgoK
ICAgICAgICBmbG9hdCBFbmVyZ3lLOwoKCiAgICAgICAgZmxvYXQgRW5lcmd5UnlkOwoKCiAg
ICAgICAgZmxvYXQgRW5lcmd5RXJnOwoKCiAgICAgICAgZmxvYXQgRW5lcmd5V047CgoKCiAg
ICAgICAgZmxvYXQgb3BhY2l0eTsKCgogICAgICAgIGZsb2F0IGdMbyAsIGdIaSA7CgoKICAg
ICAgICBmbG9hdCBQb3BMbyAsIFBvcEhpICwgUG9wT3BjIDsKCgogICAgICAgIGZsb2F0IEF1
bCA7CgoKICAgICAgICBmbG9hdCBBb3ZUb3QgOwoKCgoKICAgICAgICBmbG9hdCBjczE7CgoK
ICAgICAgICBmbG9hdCBvdHM7Cgp9RW1MaW5lOwoKCgoKdm9pZCBEdW1wTGluZShFbUxpbmUg
KiB0KTsKCgp2b2lkIGNkRVhJVChpbnQpOwojIDE5MCAiLi4vLi4vc291cmNlL2NkZGVmaW5l
cy5oIgpleHRlcm4gRklMRSAqaW9RUVE7CgpleHRlcm4gRklMRSAqaW9NQVA7CgoKCmV4dGVy
biBGSUxFKiBpb1BybkVycjsKCgpleHRlcm4gaW50IGxnUHJuRXJyOwoKCmV4dGVybiBsb25n
IGludCBuem9uZTsKCgoKZXh0ZXJuIGxvbmcgaW50IGl0ZXJhdGlvbjsKCgpleHRlcm4gaW50
IG5DYWxsZWQ7CgoKCgpleHRlcm4gY29uc3QgaW50IGlwUmVjRXNjIDsKCmV4dGVybiBjb25z
dCBpbnQgaXBSZWNOZXRFc2MgOwoKZXh0ZXJuIGNvbnN0IGludCBpcFJlY1JhZCA7CgoKCmV4
dGVybiBjb25zdCBpbnQgaXBQUkQ7CgpleHRlcm4gY29uc3QgaW50IGlwQ1JEOwoKZXh0ZXJu
IGNvbnN0IGludCBpcENSRFc7CgoKCmV4dGVybiBjb25zdCBpbnQgaXBIMXM7CmV4dGVybiBj
b25zdCBpbnQgaXBIMnM7CmV4dGVybiBjb25zdCBpbnQgaXBIMnA7CgoKCgoKCmV4dGVybiBj
b25zdCBpbnQgaXBIZTFzMVM7CgoKZXh0ZXJuIGNvbnN0IGludCBpcEhlMnMzUzsKZXh0ZXJu
IGNvbnN0IGludCBpcEhlMnMxUzsKZXh0ZXJuIGNvbnN0IGludCBpcEhlMnAzUDA7CmV4dGVy
biBjb25zdCBpbnQgaXBIZTJwM1AxOwpleHRlcm4gY29uc3QgaW50IGlwSGUycDNQMjsKZXh0
ZXJuIGNvbnN0IGludCBpcEhlMnAxUDsKCgpleHRlcm4gY29uc3QgaW50IGlwSGUzczNTOwpl
eHRlcm4gY29uc3QgaW50IGlwSGUzczFTOwpleHRlcm4gY29uc3QgaW50IGlwSGUzcDNQOwpl
eHRlcm4gY29uc3QgaW50IGlwSGUzZDNEOwpleHRlcm4gY29uc3QgaW50IGlwSGUzZDFEOwpl
eHRlcm4gY29uc3QgaW50IGlwSGUzcDFQOwoKCmV4dGVybiBjb25zdCBpbnQgaXBIZTRzM1M7
CmV4dGVybiBjb25zdCBpbnQgaXBIZTRzMVM7CmV4dGVybiBjb25zdCBpbnQgaXBIZTRwM1A7
CmV4dGVybiBjb25zdCBpbnQgaXBIZTRkM0Q7CmV4dGVybiBjb25zdCBpbnQgaXBIZTRkMUQ7
CmV4dGVybiBjb25zdCBpbnQgaXBIZTRmM0Y7CmV4dGVybiBjb25zdCBpbnQgaXBIZTRmMUY7
CmV4dGVybiBjb25zdCBpbnQgaXBIZTRwMVA7CgoKCmV4dGVybiBjb25zdCBpbnQgaXBIZUx5
bWFuWzVdOwoKCgpleHRlcm4gY29uc3QgaW50IGlwSFlEUk9HRU4gOwpleHRlcm4gY29uc3Qg
aW50IGlwSEVMSVVNIDsKZXh0ZXJuIGNvbnN0IGludCBpcExJVEhJVU0gOwpleHRlcm4gY29u
c3QgaW50IGlwQkVSWUxMSVVNIDsKZXh0ZXJuIGNvbnN0IGludCBpcEJPUk9OIDsKZXh0ZXJu
IGNvbnN0IGludCBpcENBUkJPTiA7CmV4dGVybiBjb25zdCBpbnQgaXBOSVRST0dFTiA7CmV4
dGVybiBjb25zdCBpbnQgaXBPWFlHRU4gOwpleHRlcm4gY29uc3QgaW50IGlwRkxVT1JJTkUg
OwpleHRlcm4gY29uc3QgaW50IGlwTkVPTiA7CmV4dGVybiBjb25zdCBpbnQgaXBTT0RJVU0g
OwpleHRlcm4gY29uc3QgaW50IGlwTUFHTkVTSVVNIDsKZXh0ZXJuIGNvbnN0IGludCBpcEFM
VU1JTklVTSA7CmV4dGVybiBjb25zdCBpbnQgaXBTSUxJQ09OIDsKZXh0ZXJuIGNvbnN0IGlu
dCBpcFBIT1NQSE9SVVMgOwpleHRlcm4gY29uc3QgaW50IGlwU1VMUEhVUiA7CmV4dGVybiBj
b25zdCBpbnQgaXBDSExPUklORSA7CmV4dGVybiBjb25zdCBpbnQgaXBBUkdPTiA7CmV4dGVy
biBjb25zdCBpbnQgaXBQT1RBU0lVTSA7CmV4dGVybiBjb25zdCBpbnQgaXBDQUxDSVVNIDsK
ZXh0ZXJuIGNvbnN0IGludCBpcFNDQU5ESVVNIDsKZXh0ZXJuIGNvbnN0IGludCBpcFRJVEFO
SVVNIDsKZXh0ZXJuIGNvbnN0IGludCBpcFZBTkFESVVNIDsKZXh0ZXJuIGNvbnN0IGludCBp
cENIUk9NSVVNIDsKZXh0ZXJuIGNvbnN0IGludCBpcE1BTkdBTkVTRSA7CmV4dGVybiBjb25z
dCBpbnQgaXBJUk9OIDsKZXh0ZXJuIGNvbnN0IGludCBpcENPQkFMVCA7CmV4dGVybiBjb25z
dCBpbnQgaXBOSUNLRUwgOwpleHRlcm4gY29uc3QgaW50IGlwQ09QUEVSIDsKZXh0ZXJuIGNv
bnN0IGludCBpcFpJTkMgOwojIDM2MSAiLi4vLi4vc291cmNlL2NkZGVmaW5lcy5oIgpleHRl
cm4gY29uc3QgZG91YmxlIFplcm9OdW07CiMgMzg4ICIuLi8uLi9zb3VyY2UvY2RkZWZpbmVz
LmgiCiAgICAgICAgZXh0ZXJuIEZJTEUgKmRlYnVnX2ZwOwojIDUxNSAiLi4vLi4vc291cmNl
L2NkZGVmaW5lcy5oIgpkb3VibGUgQW51VW5pdChmbG9hdCBlbmVyZ3kpOwoKCnZvaWQgU2hv
d01lKHZvaWQpOwoKCnZvaWQgVG90YWxJbnNhbml0eSh2b2lkKTsKCgp2b2lkIGNhcDQoCiAg
ICAgICAgICAgICAgICBjaGFyICpjaENBUCAsCgogICAgICAgICAgICAgICAgY2hhciAqY2hM
YWIpOwoKCnZvaWQgY2FwcyhjaGFyICpjaENhcmQgKTsKCgpkb3VibGUgZTIoZG91YmxlIHQs
CiAgICAgICAgICBkb3VibGUgdGxuKTsKCgpkb3VibGUgZWUxKGRvdWJsZSB4KTsKCgpkb3Vi
bGUgRkZtdFJlYWQoY2hhciAqY2hDYXJkLAogICAgICAgICAgbG9uZyBpbnQgKmlwbnQsCiAg
ICAgICAgICBsb25nIGludCBsYXN0LAogICAgICAgICAgaW50ICpsZ0VPTCk7CgoKdm9pZCBp
bnNhbmUodm9pZCk7CgoKCmludCBsZ01hdGNoKGNoYXIgKmNoS2V5LAogICAgICAgICAgY2hh
ciAqY2hDYXJkKTsKCgp2b2lkIEdldEVsZW0oY2hhciAqY2hDYXJkLAogIGxvbmcgaW50ICpq
KTsKCgoKdm9pZCBHZXRRdW90ZShjaGFyICpjaExhYmVsLAogICAgICAgICAgICAgIGNoYXIg
KmNoQ2FyZCApOwojIDU2OSAiLi4vLi4vc291cmNlL2NkZGVmaW5lcy5oIgpkb3VibGUgcG93
aSggZG91YmxlICwgbG9uZyBpbnQgKTsKCgpsb25nIGludCBpcG93KCBsb25nLCBsb25nICk7
CgoKCnZvaWQgUHJpbnRFODIoIEZJTEUqLCBkb3VibGUgKTsKCnZvaWQgUHJpbnRFNzEoIEZJ
TEUqLCBkb3VibGUgKTsKCnZvaWQgUHJpbnRFOTMoIEZJTEUqLCBkb3VibGUgKTsKCgpjaGFy
ICpQcmludEVmbXQoY29uc3QgY2hhciAqZm10LCBkb3VibGUgdmFsICk7CgoKdm9pZCBOb051
bWIoY2hhciAqY2hDYXJkKTsKCgpkb3VibGUgc2V4cChkb3VibGUgeCk7CgoKZG91YmxlIHNp
Z24oZG91YmxlIGEsZG91YmxlIGIgKTsKIyA2MjAgIi4uLy4uL3NvdXJjZS9jZGRlZmluZXMu
aCIKbG9uZyBtaW4obG9uZyxsb25nKTsKc2hvcnQgc21heChzaG9ydCxzaG9ydCk7CmRvdWJs
ZSBmbWF4KGRvdWJsZSxkb3VibGUpOwpkb3VibGUgZm1pbihkb3VibGUsZG91YmxlKTsKCgpk
b3VibGUgdmZtYXgoIGRvdWJsZSwuLi4gKTsKCgpkb3VibGUgdmZtaW4oIGRvdWJsZSwuLi4g
KTsKIyA2NDQgIi4uLy4uL3NvdXJjZS9jZGRlZmluZXMuaCIKdm9pZCBkYmdfcHJpbnRmKGlu
dCBkZWJ1ZywgY29uc3QgY2hhciAqZm10LCAuLi4pOwoKZG91YmxlIHFnMzIoCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZG91YmxlLAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRvdWJsZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3Vi
bGUoKikoZG91YmxlKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7CgoKCgoK
dm9pZCBzcHNvcnQoCgogICAgICAgICAgZmxvYXQgeFtdLAoKICAgICAgICAgIGxvbmcgaW50
IG4sCgogICAgICAgICAgbG9uZyBpbnQgaXBlcm1bXSwKCgogICAgICAgICAgaW50IGtmbGFn
LAoKICAgICAgICAgIGludCAqaWVyKTsKCgp2b2lkIGNoSW9uTGJsKCBjaGFyKiwgRW1MaW5l
ICogdCApOwoKCgpjaGFyKiBjaExpbmVMYmwoRW1MaW5lICogdCApOwojIDUgInJhdWNoLmMi
IDIKIyAxICIuLi8uLi9zb3VyY2UvcGh5c2NvbnN0LmgiIDEKIyA2ICJyYXVjaC5jIiAyCiMg
MSAiLi4vLi4vc291cmNlL29wYWNpdHkuaCIgMQoKCgp2b2lkIE9wYWNpdHlDcmVhdGVBbGwo
dm9pZCk7CgoKdm9pZCBPcGFjaXR5QWRkMVN1YnNoZWxsKGxvbmcgaW50IGlwLAogIGxvbmcg
aW50IGssCiAgbG9uZyBpbnQgaiwKICBmbG9hdCBhYnVuZGFuY2UsCiAgY2hhciBjaFN0YXQg
KTsKCgp2b2lkIE9wYWNpdHlBZGRUb3RhbCh2b2lkKTsKCgp2b2lkIFB1bk9wYWMoRklMRSAq
IGlvLAogIGxvbmcgaW50IG5wKTsKCgoKdm9pZCBPcGFjaXR5QWRkMUVsZW1lbnQoCgogICAg
ICAgICAgICAgICAgbG9uZyBpbnQgaXBaKTsKCgoKdm9pZCBPcGFjaXR5WmVybyh2b2lkKTsK
Cgp2b2lkIE9wYWNpdHlaZXJvT2xkKHZvaWQpOwoKCnZvaWQgT3BhY2l0eUFkZDFTdWJzaGVs
bEluZHVjKAoKICBsb25nIGludCBpcE9wYWMsCgogIGxvbmcgaW50IGxvdywKCiAgbG9uZyBp
bnQgaWhpLAoKICBmbG9hdCBhLAoKICBkb3VibGUgYiwKCiAgY2hhciBjaFN0YXQgKTsKCgoK
CgoKCmV4dGVybiBzdHJ1Y3QgdF9vcGFjQ29tIHsKCgoKCgoKICAgICAgICBmbG9hdCBUYXVB
YnNHZW9bMl1bNDAwMExdOwogICAgICAgIGZsb2F0IFRhdVNjYXRHZW9bMl1bNDAwMExdOwoK
CgogICAgICAgIGZsb2F0IFRhdVRvdGFsR2VvWzJdWzQwMDBMXTsKCgoKICAgICAgICBmbG9h
dCBUYXVBYnNGYWNlWzQwMDBMXSwKICAgICAgICAgIFRhdVNjYXRGYWNlWzQwMDBMXTsKCgog
ICAgICAgIGRvdWJsZSBvcGFjWzQwMDBMXTsKCgogICAgICAgIGRvdWJsZSBvcGFjc3ZbNDAw
MExdOwoKCiAgICAgICAgZG91YmxlIE9sZE9wYWNTYXZlWzQwMDBMXTsKCgogICAgICAgIGRv
dWJsZSBzY2F0b3BbNDAwMExdICwKCgogICAgICAgICAgYWxiZWRvWzQwMDBMXSwKCgogICAg
ICAgICAgc2N0c2F2WzQwMDBMXTsKCgoKICAgICAgICBkb3VibGUgT3BhY1N0YXRpY1s0MDAw
TF07CgoKICAgICAgICBkb3VibGUgRnJlZUZyZWVPcGFjaXR5WzQwMDBMXTsKCgogICAgICAg
IGRvdWJsZSBFeHBab25lWzQwMDBMXTsKCgoKICAgICAgICBmbG9hdCBlMlRhdUFic1s0MDAw
TF07CgoKICAgICAgICBmbG9hdCBFeHBtVGF1WzQwMDBMXTsKCgoKICAgICAgICBmbG9hdCB0
bW5bNDAwMExdOwoKCgoKICAgICAgICBpbnQgbGdPcGFjU3RhdGljOwoKCgoKCgogICAgICAg
IGludCBsZ1JlZG9TdGF0aWM7CgoKCgogICAgICAgIGRvdWJsZSAqT3BhY1N0YWNrIDsKCgog
ICAgICAgIGZsb2F0IHRwY2FoWzJdOwoKCiAgICAgICAgZmxvYXQgdGF1bWluOwoKCgogICAg
ICAgIGZsb2F0IHRsYW1pbjsKCgogICAgICAgIGludCBsZ0Nhc2VCOwoKCiAgICAgICAgaW50
IGxnQ2FzZUJfSHVtbWVyU3RvcmV5OwoKCiAgICAgICAgZmxvYXQgdGVsZWMsCiAgICAgICAg
ICB0aG1pbjsKCgogICAgICAgIGludCBsZ09wYWNOZWc7CgoKCiAgICAgICAgaW50IGxnU2Nh
dE9OOwoKCiAgICAgICAgaW50IGxnTmVnT3BhY0lPOwoKCgoKCiAgICAgICAgaW50IGxnQ29t
cGlsZU9wYWM7CgoKICAgICAgICBpbnQgbGdPcGFjRXhpc3Q7CgoKCiAgICAgICAgaW50IGxn
VXNlRmlsZU9wYWMgOwoKCgogICAgICAgIGludCBsZ1RhdU91dE9uOwoKCiAgICAgICAgY2hh
ciBjaE9wY1R5cFs1XTsKCgoKCiAgICAgICAgbG9uZyBpbnQgbk9wYWNUb3Q7CiMgMTkxICIu
Li8uLi9zb3VyY2Uvb3BhY2l0eS5oIgogICAgICAgIGxvbmcgaW50IGlwSE9wYWNbMzBMXVsx
MF0sCgoKICAgICAgICBpcFJheVNjYXQsCgoKICAgICAgICBpb3Bjb20sCgoKICAgICAgICBp
cHByLAogICAgICAgIGlvcHByLAoKCiAgICAgICAgaXBCcmVtcywKCgogICAgICAgIGlwaG1y
YSwKCgogICAgICAgIGlwaG1vcCwKCgogICAgICAgIGloMnBudFsyXSwKICAgICAgICBpaDJw
b2YsCgoKICAgICAgICBpb3BoZTFbOV0sCgoKICAgICAgICBpb3B0cmksCiMgMjUzICIuLi8u
Li9zb3VyY2Uvb3BhY2l0eS5oIgogICAgICAgIGlwRWxlbWVudFszXVs3XVszMExdWzMwTF0s
CgoKICAgICAgICBpbjFbM10sCgoKICAgICAgICBpcG8zZXhjWzNdLAogICAgICAgIGlwbzNl
eGMzWzNdLAogICAgICAgIGlwbzFleGNbM10sCgoKICAgICAgICBpb3BvMmQsCgoKICAgICAg
ICBpcG1nZXgsCiAgICAgICAgaXBPcE1nRXgsCgoKICAgICAgICBpY2EyZXhbMl0sCiAgICAg
ICAgaWNhMm9wOwoKCiAgICAgICAgbG9uZyBpbnQgaXBDS3NoZWxsOwoKICAgICAgICB9IG9w
YWM7CiMgNyAicmF1Y2guYyIgMgojIDEgIi4uLy4uL3NvdXJjZS9wYXRoLmgiIDEKCgoKCmV4
dGVybiBjaGFyIGNoRGF0YVBhdGhbODFdOwoKCmV4dGVybiBpbnQgbGdEYXRhUGF0aFNldDsK
IyA4ICJyYXVjaC5jIiAyCiMgMSAiLi4vLi4vc291cmNlL2NhbGxlZC5oIiAxCgpleHRlcm4g
c3RydWN0IHRfY2FsbGVkIHsKCgoKICAgICAgICBpbnQgbGdCdXN0ZWQ7CgoKCiAgICAgICAg
aW50IGxnVGFsazsKCgoKICAgICAgICBpbnQgbGdUYWxrRm9yY2U7CgoKCiAgICAgICAgaW50
IGxnVGFsa0lzT0s7CgogICAgICAgIH0gY2FsbGVkOwojIDkgInJhdWNoLmMiIDIKIyAxICIu
Li8uLi9zb3VyY2UvcmZpZWxkLmgiIDEKCgoKdm9pZCByZmllbGRfemVybyggbG9uZyBsbyAs
IGxvbmcgaWhpICk7CgoKZXh0ZXJuIGludCBsZ1JmaWVsZE1hbGxvY2VkOwoKZXh0ZXJuIHN0
cnVjdCB0X3JmaWVsZCB7CiMgMTkgIi4uLy4uL3NvdXJjZS9yZmllbGQuaCIKICAgICAgICBs
b25nIGludCBuZmx1eDsKCgogICAgICAgIGxvbmcgaW50IG51cHBlcjsKCgogICAgICAgIGZs
b2F0IGVtbTsKCgogICAgICAgIGZsb2F0IGVnYW1yeTsKCgogICAgICAgIGZsb2F0IEZsdXhG
YWludDsKCgogICAgICAgIGZsb2F0ICphbnUgOwoKCgogICAgICAgIGZsb2F0ICpBbnVPcmcg
OwoKCiAgICAgICAgZmxvYXQgKndpZGZseCA7CgoKICAgICAgICBmbG9hdCAqYW51bG9nICwK
ICAgICAgICAgICphbnVzcXIgLAogICAgICAgICAgKmFudTIgLAogICAgICAgICAgKmFudTMg
OwoKCgoKCiAgICAgICAgZmxvYXQgKmZsdXggOwoKCiAgICAgICAgZmxvYXQgKmNvbnZvYyA7
CgoKICAgICAgICBmbG9hdCAqT2NjTnVtYkluY2lkQ29udCA7CgoKICAgICAgICBmbG9hdCAq
T2NjTnVtYkRpZmZDb250IDsKCgoKICAgICAgICBkb3VibGUgKkNvbnRCb2x0eiA7CgoKCiAg
ICAgICAgZmxvYXQgKkNvbkVtaXRMb2NhbCA7CgoKICAgICAgICBmbG9hdCAqQ29uRW1pdFJl
ZmxlYyA7CgoKCgogICAgICAgIGZsb2F0ICpDb25FbWl0T3V0IDsKCgogICAgICAgIGZsb2F0
ICpDb25JbnRlck91dCA7CgoKICAgICAgICBmbG9hdCAqQ29uUmVmSW5jaWQgOwoKCgoKICAg
ICAgICBmbG9hdCAqVGhyb3dPdXQgOwoKCgogICAgICAgIGZsb2F0ICpTdW1tZWRDb24gOwog
ICAgICAgIGZsb2F0ICpTdW1tZWREaWYgOwogICAgICAgIGZsb2F0ICpTdW1tZWRPY2MgOwoK
CgogICAgICAgIGZsb2F0ICpDb25PVFNfbG9jYWxfcGhvdG9ucyAsCgogICAgICAgICAgICAg
ICAgKkNvbk9UU19sb2NhbF9PVFNfcmF0ZSA7CgoKCiAgICAgICAgZmxvYXQKCiAgICAgICAg
ICAgICAgICAqb3RzbGluICwKCiAgICAgICAgICAgICAgICAqb3RzY29uICwKCgoKICAgICAg
ICAgICAgICAgICAqb3RzbGluTmV3ICwKICAgICAgICAgICAgICAgICAqb3RzY29uTmV3ICwK
CiAgICAgICAgICAgICAgICAqb3V0bGluICwKICAgICAgICAgICAgICAgICoqb3Rzc2F2IDsK
CgogICAgICAgIGZsb2F0ICpyZWZsaW4gOwoKCiAgICAgICAgZmxvYXQgKkZsdXhTYXZlIDsK
CgoKICAgICAgICBmbG9hdCBTdW1PdXRDb24sCiAgICAgICAgICBTdW1JbmNDb24sCgogICAg
ICAgICAgKlNhdk91dENvbiAsCiAgICAgICAgICBTdW1IT3V0Q29uLAogICAgICAgICAgU3Vt
SEluY0NvbiwKCiAgICAgICAgICBTdW1PdXRNYXg7CgogICAgICAgIGxvbmcgaW50IGlwU3Vt
T3V0TWF4OwoKCgogICAgICAgIGZsb2F0IERpZmZQdW1wT247CgoKICAgICAgICBjaGFyICoq
Y2hMaW5lTGFiZWwgOwoKCiAgICAgICAgY2hhciAqKmNoQ29udExhYmVsIDsKCgogICAgICAg
IGZsb2F0ICpnZmYgLAogICAgICAgICAgKmdmZmhlMiA7CgoKCiAgICAgICAgY2hhciBjaERm
ZlRybnNbNF07CgoKCgogICAgICAgIGludCBsZ091dE9ubHk7CgoKCiAgICAgICAgbG9uZyBp
bnQgaXBFbmVyZ3lCcmVtc1RoaW47CiAgICAgICAgZmxvYXQgRW5lcmd5QnJlbXNUaGluOwoK
CiAgICAgICAgbG9uZyBpbnQgaXBNYXhCb2x0OwoKCgogICAgICAgIGRvdWJsZSAqY29tdXAg
LAogICAgICAgICAgKmNvbWRuIDsKCgoKICAgICAgICBmbG9hdCAqY3NpZ2ggLAogICAgICAg
ICAgKmNzaWdjIDsKCiAgICAgICAgZG91YmxlIGNvbXRvdCwKICAgICAgICAgIGNtaGVhdCwK
ICAgICAgICAgIGNtY29vbCwKICAgICAgICAgIGNvbW9mZiwKICAgICAgICAgIGNpbnJhdDsK
CgogICAgICAgIGludCBsZ0NvbVVuZHI7CgoKCgoKICAgICAgICBkb3VibGUgdG90cG93WzEw
XSwKICAgICAgICAgIHNsb3BlWzEwXSwKICAgICAgICAgIGN1dG9mZlszXVsxMF0sCiAgICAg
ICAgICBzcGZhY1sxMF07CiAgICAgICAgbG9uZyBpbnQgbnNwZWMsCiAgICAgICAgICBpcHNw
ZWM7CgoKCiAgICAgICAgZG91YmxlICoqdE51UnlkICwKICAgICAgICAgICoqdHNsb3AgLAoK
ICAgICAgICAgICoqdEZsdXhMb2cgLAoKCiAgICAgICAgICByYW5nZVsyXVsxMF07CgoKICAg
ICAgICBmbG9hdCAqQ29uVGFiUmVhZCA7CgoKCiAgICAgICAgY2hhciBjaFNwTm9ybVsxMF1b
NV0sCiAgICAgICAgICBjaFJTcGVjWzEwXVs1XSwKICAgICAgICAgIGNoU3BUeXBlWzEwXVs2
XTsKCgogICAgICAgIEZJTEUgKmlvVGFibGVSZWFkWzEwXTsKCn0gcmZpZWxkOwojIDEwICJy
YXVjaC5jIiAyCiMgMSAiLi4vLi4vc291cmNlL3JlYmluYXRtb3NwaGVyZS5oIiAxCgoKdm9p
ZCBSZWJpbkF0bW9zcGhlcmUoCgogIGxvbmcgbkNvbnQgLAoKICAgICAgICAgICBmbG9hdCBT
dGFyRW5lcltdICwKCiAgICAgICAgICAgZmxvYXQgU3RhckZsdXhbXSAsCgogICAgICAgICAg
ICBmbG9hdCBDbG91ZHlGbHV4W10gLAoKICBsb25nIG5FZGdlICwKCiAgICAgICAgICAgZmxv
YXQgQWJzb3JiRWRnZVtdICk7CiMgMTEgInJhdWNoLmMiIDIKIyAxICIuLi8uLi9zb3VyY2Uv
cmF1Y2guaCIgMQoKCnZvaWQgQ29uY2F0UmF1Y2godm9pZCk7CgoKCmludCBHZXRSYXVjaCh2
b2lkKTsKCgp2b2lkIERvUmF1Y2gobG9uZyBpbnQgKm5zdGFyLAogIGRvdWJsZSB0ZW1wLAog
IGRvdWJsZSBhbG9nZywKICBsb25nIGludCBpYWJ1bmQpOwojIDEyICJyYXVjaC5jIiAyCiMg
MjcgInJhdWNoLmMiCnZvaWQgRG9SYXVjaChsb25nIGludCAqbnN0YXIsCiAgZG91YmxlIHRl
bXAsCiAgZG91YmxlIGFsb2dnLAogIGxvbmcgaW50IGlhYnVuZCkKewoKICAgICAgICBGSUxF
ICppb0lOIDsKICAgICAgICBjaGFyIGNoTGluZVs4MV07CgogICAgICAgIGxvbmcgaW50IGks
CiAgICAgICAgICBpcEdyYXYsCiAgICAgICAgICBpcEdyYXZVcCwKICAgICAgICAgIGosCiAg
ICAgICAgICBpcFRlZmYgLAogICAgICAgICAgaXBUZWZmVXAsCiAgICAgICAgICBrOwoKCgog
ICAgICAgIGZsb2F0CiAgICAgICAgICAqZmx1eDEgLAogICAgICAgICAgKmZsdXgyIDsKCiAg
ICAgICAgZG91YmxlIGZhY3QxLAogICAgICAgICAgZmFjdDIsCiAgICAgICAgICBmcjEsCiAg
ICAgICAgICBmcjIsCiAgICAgICAgICBmcjMsCiAgICAgICAgICBmcjQsCiAgICAgICAgICBs
dW1pLAogICAgICAgICAgY2hrLAogICAgICAgICAgeHZhbDsKCiAgICAgICAgc3RhdGljIGRv
dWJsZSB0ZWZmWzY2XT17NTAwMDAuLDUwMDAwLiw1MDAwMC4sNTAwMDAuLDYwMDAwLiw2MDAw
MC4sCiAgICAgICAgICA2MDAwMC4sNjAwMDAuLDcwMDAwLiw3MDAwMC4sNzAwMDAuLDcwMDAw
Liw4MDAwMC4sODAwMDAuLDgwMDAwLiwKICAgICAgICAgIDgwMDAwLiw5MDAwMC4sOTAwMDAu
LDkwMDAwLiw5MDAwMC4sMTAwMDAwLiwxMDAwMDAuLDEwMDAwMC4sMTAwMDAwLiwKICAgICAg
ICAgIDExMDAwMC4sMTEwMDAwLiwxMTAwMDAuLDEyMDAwMC4sMTIwMDAwLiwxMjAwMDAuLDEz
MDAwMC4sMTMwMDAwLiwKICAgICAgICAgIDEzMDAwMC4sMTQwMDAwLiwxNDAwMDAuLDE0MDAw
MC4sMTUwMDAwLiwxNTAwMDAuLDE1MDAwMC4sMTYwMDAwLiwKICAgICAgICAgIDE2MDAwMC4s
MTYwMDAwLiwxNzAwMDAuLDE3MDAwMC4sMTcwMDAwLiwxODAwMDAuLDE4MDAwMC4sMTgwMDAw
LiwKICAgICAgICAgIDE5MDAwMC4sMTkwMDAwLiwxOTAwMDAuLDIwMDAwMC4sMjAwMDAwLiwy
MDAwMDAuLDMwMDAwMC4sMzAwMDAwLiwKICAgICAgICAgIDMwMDAwMC4sNDAwMDAwLiw0MDAw
MDAuLDUwMDAwMC4sNTAwMDAwLiw2MDAwMDAuLDcwMDAwMC4sODAwMDAwLiwKICAgICAgICAg
IDkwMDAwMC4sMTAwMDAwMC59OwoKICAgICAgICBzdGF0aWMgZG91YmxlIHhsb2dnWzY2XT17
NS4sNi4sNy4sOC4sNS4sNi4sNy4sOC4sNS4sNi4sNy4sOC4sCiAgICAgICAgICA1Liw2Liw3
Liw4Liw1Liw2Liw3Liw4Liw1Liw2Liw3Liw4Liw2Liw3Liw4Liw2Liw3Liw4Liw2Liw3LiwK
ICAgICAgICAgIDguLDYuLDcuLDguLDYuLDcuLDguLDYuLDcuLDguLDYuLDcuLDguLDYuLDcu
LDguLDYuLDcuLDguLDcuLAogICAgICAgICAgOC4sOS4sNy4sOC4sOS4sOC4sOS4sOC4sOS4s
OS4sOS4sOS4sOS4sOS59OwoKICAgICAgICBzdGF0aWMgZG91YmxlIHR2YWxbMjRdPXs1MDAw
MC4sNjAwMDAuLDcwMDAwLiw4MDAwMC4sOTAwMDAuLDEwMDAwMC4sCiAgICAgICAgICAxMTAw
MDAuLDEyMDAwMC4sMTMwMDAwLiwxNDAwMDAuLDE1MDAwMC4sMTYwMDAwLiwxNzAwMDAuLDE4
MDAwMC4sCiAgICAgICAgICAxOTAwMDAuLDIwMDAwMC4sMzAwMDAwLiw0MDAwMDAuLDUwMDAw
MC4sNjAwMDAwLiw3MDAwMDAuLDgwMDAwMC4sCiAgICAgICAgICA5MDAwMDAuLDEwMDAwMDAu
fTsKCgoKCiAgICAgICAgc3RhdGljIGxvbmcganZhbFsyNF1bNV09ewogICAgICAgICAgICAg
ICAgezIsMyw0LDUsNX0sCiAgICAgICAgICAgICAgICB7Niw3LDgsOSw5fSwKICAgICAgICAg
ICAgICAgIHsxMCwxMSwxMiwxMywxM30sCiAgICAgICAgICAgICAgICB7MTQsMTUsMTYsMTcs
MTd9LAogICAgICAgICAgICAgICAgezE4LDE5LDIwLDIxLDIxfSwKICAgICAgICAgICAgICAg
IHsyMiwyMywyNCwyNSwyNX0sCiAgICAgICAgICAgICAgICB7MjYsMjYsMjcsMjgsMjh9LAog
ICAgICAgICAgICAgICAgezI5LDI5LDMwLDMxLDMxfSwKICAgICAgICAgICAgICAgIHszMiwz
MiwzMywzNCwzNH0sCiAgICAgICAgICAgICAgICB7MzUsMzUsMzYsMzcsMzd9LAogICAgICAg
ICAgICAgICAgezM4LDM4LDM5LDQwLDQwfSwKICAgICAgICAgICAgICAgIHs0MSw0MSw0Miw0
Myw0M30sCiAgICAgICAgICAgICAgICB7NDQsNDQsNDUsNDYsNDZ9LAogICAgICAgICAgICAg
ICAgezQ3LDQ3LDQ4LDQ5LDQ5fSwKICAgICAgICAgICAgICAgIHs1MCw1MCw1MSw1Miw1Mn0s
CiAgICAgICAgICAgICAgICB7NTMsNTMsNTMsNTQsNTV9LAogICAgICAgICAgICAgICAgezU2
LDU2LDU2LDU3LDU4fSwKICAgICAgICAgICAgICAgIHs1OSw1OSw1OSw1OSw2MH0sCiAgICAg
ICAgICAgICAgICB7NjEsNjEsNjEsNjEsNjJ9LAogICAgICAgICAgICAgICAgezYzLDYzLDYz
LDYzLDYzfSwKICAgICAgICAgICAgICAgIHs2NCw2NCw2NCw2NCw2NH0sCiAgICAgICAgICAg
ICAgICB7NjUsNjUsNjUsNjUsNjV9LAogICAgICAgICAgICAgICAgezY2LDY2LDY2LDY2LDY2
fSwKICAgICAgICAgICAgICAgIHs2Nyw2Nyw2Nyw2Nyw2N30KICAgICAgICB9OwoKICAgICAg
ICBzaXplX3QgbkJsb2Nrc2l6ZSA9IChzaXplX3QpcmZpZWxkLm51cHBlcipzaXplb2YoZmxv
YXQgKTsKIyAxMjEgInJhdWNoLmMiCiAgICAgICAgaWYoIChmbHV4MSA9IChmbG9hdCopbWFs
bG9jKG5CbG9ja3NpemUgKSApID09IDAgKQogICAgICAgICAgICAgICAgYmFkX21hbGxvYygp
OwogICAgICAgIGlmKCAoZmx1eDIgPSAoZmxvYXQqKW1hbGxvYyhuQmxvY2tzaXplICkgKSA9
PSAwICkKICAgICAgICAgICAgICAgIGJhZF9tYWxsb2MoKTsKCiAgICAgICAgaWYoIGxnRGF0
YVBhdGhTZXQgKQogICAgICAgIHsKCiAgICAgICAgICAgICAgICBzdHJjcHkoIGNoTGluZSAs
IGNoRGF0YVBhdGggKTsKICAgICAgICAgICAgICAgIGlmKCBpYWJ1bmQgPT0gMCApCiAgICAg
ICAgICAgICAgICB7CgogICAgICAgICAgICAgICAgICAgICAgICBzdHJjYXQoIGNoTGluZSwg
InJhdWNoX3NvbGFyLm1vZCIgKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAg
IGVsc2UKICAgICAgICAgICAgICAgIHsKCiAgICAgICAgICAgICAgICAgICAgICAgIHN0cmNh
dCggY2hMaW5lLCAicmF1Y2hfaGFsby5tb2QiICk7CiAgICAgICAgICAgICAgICB9CiAgICAg
ICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CgogICAgICAgICAgICAgICAgaWYoIGlhYnVu
ZCA9PSAwICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgc3Ry
Y3B5KCBjaExpbmUsICJyYXVjaF9zb2xhci5tb2QiICk7CiAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAg
ICAgICAgIHN0cmNweSggY2hMaW5lLCAicmF1Y2hfaGFsby5tb2QiICk7CiAgICAgICAgICAg
ICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiggKGlvSU4gPSBmb3BlbiggY2hMaW5lICwg
InJiIiApKSA9PSAwICkKICAgICAgICB7CgogICAgICAgICAgICAgICAgZnByaW50ZiggaW9R
UVEsICJFcnJvcjogUmF1Y2ggc3RlbGxhciBhdG1vc3BoZXJlIGZpbGUgcmF1Y2hfc29sYXIu
bW9kIG9yIHJhdWNoX2hhbG8ubW9kIG5vdCBmb3VuZC5cbiIgKTsKICAgICAgICAgICAgICAg
IGZwcmludGYoIGlvUVFRLCAiIFRoZSBwYXRoIEkgdHJpZWQ6ID09JXM9PVxuIiwgY2hMaW5l
ICk7CiAgICAgICAgICAgICAgICBmcHJpbnRmKCBpb1FRUSwgIiBBbmQgaGVyZSBjb21lcyBp
dHMgaGV4YWRlY2ltYWwgcmVwcmVzZW50YXRpb246XG4iICk7CiAgICAgICAgICAgICAgICBm
b3IoIGk9MDsgaSA8IDgxOyBpKysgKQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAg
ICAgICAgICAgICBmcHJpbnRmKCBpb1FRUSwgIiAnJWMnPSUjMDJ4IiwgY2hMaW5lW2ldLCAo
dW5zaWduZWQgaW50KWNoTGluZVtpXSApOwogICAgICAgICAgICAgICAgICAgICAgICBpZigg
Y2hMaW5lW2ldID09ICdcMCcgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgICAgIGZwcmludGYoIGlvUVFRLCAiXG4iICk7CiAgICAgICAgICAgICAgICBw
dXRzKCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAgICAgICAgICAgICBjZEVYSVQoMSk7
CiAgICAgICAgfQoKCiAgICAgICAgaWYoIGFicyggZnJlYWQoIGZsdXgxLCAxLCBuQmxvY2tz
aXplLGlvSU4gKSAtIChpbnQpbkJsb2Nrc2l6ZSApICE9MCApCiAgICAgICAgewogICAgICAg
ICAgICAgICAgZnByaW50ZiggaW9RUVEsICIgcHJvYmxlbSB0cnlpbmcgdG8gcmVhZCByYXVj
aC5tb2Qgd2F2ZWxlbmd0aHMgXG4iICk7CiAgICAgICAgICAgICAgICBmcHJpbnRmKCBpb1FR
USwgIiBJIGV4cGVjdGVkIHRvIHJlYWQgJWxpIHdvcmRzLCBidXQgZnJlYWQgd2FzIHNob3J0
XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAobG9uZyluQmxvY2tzaXplICk7CiAgICAg
ICAgICAgICAgICBwdXRzKCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAgICAgICAgICAg
ICBjZEVYSVQoMSk7CiAgICAgICAgfQoKICAgICAgICBmb3IoIGo9MDsgaiA8IHJmaWVsZC5u
dXBwZXI7IGorKyApCiAgICAgICAgewoKCiAgICAgICAgICAgICAgICByZmllbGQudE51Unlk
W2pdW3JmaWVsZC5uc3BlY10gPSBmbHV4MVtqXTsKICAgICAgICB9CgoKICAgICAgICBpZigg
MCApIHsKICAgICAgICAgICAgICAgIGZvciggaj0wOyBqIDwgNjY7IGorKyApIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgaWYoIGFicyggZnJlYWQoIHJmaWVsZC5mbHV4LCAxLCBuQmxv
Y2tzaXplLCBpb0lOICkgLQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW50
KW5CbG9ja3NpemUgKSAhPSAwICkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGZwcmludGYoIGlvUVFRLCAiIHByb2JsZW0gdHJ5aW5nIHRvIHJlYWQgcmF1Y2ggbW9kZWwg
JWxpXG4iLCBqKzEgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRm
KCBpb1FRUSwgIiBJIGV4cGVjdGVkIHRvIHJlYWQgJWxpIHdvcmRzLCBidXQgZnJlYWQgd2Fz
IHNob3J0XG4iLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChs
b25nKW5CbG9ja3NpemUgKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXRz
KCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY2RFWElUKDEpOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgICAgICAgIGx1bWkgPSAwLjsKCiAgICAgICAgICAgICAgICAgICAgICAgIGZvciggaz0x
OyBrIDwgcmZpZWxkLm51cHBlcjsgaysrICkgewogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGx1bWkgKz0gKHJmaWVsZC50TnVSeWRba11bcmZpZWxkLm5zcGVjXSAtIHJmaWVs
ZC50TnVSeWRbay0xXVtyZmllbGQubnNwZWNdKSoKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChyZmllbGQuZmx1eFtrXSArIHJmaWVsZC5mbHV4W2stMV0pLzIu
OwogICAgICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICAgICBj
aGsgPSBwb3cobHVtaSooMi45OTc5MjQ1OGUxMCoxLjA5NzM3MzE1Njg1NDllNSkvKDMuMTQx
NTkyNjUzNTg5NzkzMjM4NDYyNjQzKjMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzLzYwLiox
LjM4MDY1MDNlLTE2KjEuMzgwNjUwM2UtMTYqMS4zODA2NTAzZS0xNioxLjM4MDY1MDNlLTE2
Lyg2LjYyNjA2ODc2ZS0yNy8oMi4qMy4xNDE1OTI2NTM1ODk3OTMyMzg0NjI2NDMpKS8oNi42
MjYwNjg3NmUtMjcvKDIuKjMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzKSkvKDYuNjI2MDY4
NzZlLTI3LygyLiozLjE0MTU5MjY1MzU4OTc5MzIzODQ2MjY0MykpLzIuOTk3OTI0NThlMTAv
Mi45OTc5MjQ1OGUxMCksMC4yNSk7CgogICAgICAgICAgICAgICAgICAgICAgICBpZiggZmFi
cygodGVmZltqXS1jaGspL3RlZmZbal0pID4gMC4wMiApIHsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwcmludGYoICIqKiogV0FSTklORywgVF9lZmYgZGlzY3JlcGFuY3kg
Zm9yIG1vZGVsICVsaSwgZXhwZWN0ZWQgdGVmZiAlLjJmLCAiLAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgaisxLCB0ZWZmW2pdKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBwcmludGYoImxvZyhnKSAlLjJmLCBpbnRlZ3JhdGlvbiB5aWVs
ZGVkIHRlZmYgJS4yZlxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHhsb2dnW2pdLCBjaGsgKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgfQogICAgICAgIH0KCgogICAgICAgIGlwVGVmZiA9IC0xOwogICAgICAgIGZv
ciggaj0wOyBqIDwgMjM7IGorKyApCiAgICAgICAgewogICAgICAgICAgICAgICAgaWYoIHR2
YWxbal0gPD0gdGVtcCAmJiB0dmFsW2orMV0gPiB0ZW1wICkKICAgICAgICAgICAgICAgIHsK
CiAgICAgICAgICAgICAgICAgICAgICAgIGlwVGVmZiA9IGo7CiAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgfQogICAgICAgIH0KCgogICAgICAgIGlm
KCBpcFRlZmY8MCApCiAgICAgICAgewoKICAgICAgICAgICAgICAgIGlmKCB0dmFsWzIzXSA9
PSB0ZW1wICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaXBU
ZWZmID0gMjM7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoIGlvUVFRLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgUmVxdWVzdGVkIHRlbXBlcmF0dXJl
IG9mJTExLjJlIGlzIG5vdCB3aXRoaW4gdGhlIHJhbmdlIgogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIlMTAuMmUgdG8gZSUxMC4yZVxuIiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICB0ZW1wLCB0dmFsWzBdLCB0dmFsWzIzXSApOwogICAgICAgICAgICAgICAgICAg
ICAgICBwdXRzKCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAgICAgICAgICAgICAgICAg
ICAgIGNkRVhJVCgxKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICB9CgoKICAgICAgICBp
cFRlZmZVcCA9ICgoKGlwVGVmZisxKTwoMjMpKSA/IChpcFRlZmYrMSkgOiAoMjMpKTsKCgoK
CgoKCiAgICAgICAgeHZhbCA9IChhbG9nZyAtIDUuMCk7CgogICAgICAgIGlwR3JhdiA9IChs
b25nKSh4dmFsKTsKICAgICAgICBpcEdyYXYgPSAoKCgwKT4oaXBHcmF2KSkgPyAoMCkgOiAo
aXBHcmF2KSk7CiAgICAgICAgaXBHcmF2ID0gKCgoaXBHcmF2KTwoNCkpID8gKGlwR3Jhdikg
OiAoNCkpOwogICAgICAgIGlwR3JhdlVwID0gKCgoaXBHcmF2KzEpPCg0KSkgPyAoaXBHcmF2
KzEpIDogKDQpKTsKIyAyODAgInJhdWNoLmMiCiAgICAgICAgZnIxID0geHZhbCAtIChmbG9h
dCkoaXBHcmF2KTsKICAgICAgICBmcjIgPSAoMS4gLSBmcjEpOwoKCiAgICAgICAgaWYoIGlw
VGVmZlVwID09IGlwVGVmZiApCiAgICAgICAgewogICAgICAgICAgICAgICAgZnIzID0gMC47
CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgICAgICBmcjMg
PSAoKHRlbXAgLSB0dmFsW2lwVGVmZl0pLyh0dmFsW2lwVGVmZlVwXSAtIHR2YWxbaXBUZWZm
XSkpOwogICAgICAgIH0KICAgICAgICBmcjQgPSAxLiAtIGZyMzsKCiAgICAgICAgaWYoIGZy
Mz4xLiB8fCBmcjMgPCAwLiApCiAgICAgICAgewogICAgICAgICAgICAgICAgZnByaW50Zigg
aW9RUVEsCiAgICAgICAgICAgICAgICAgICAgICAgICIgZnIzIGluc2FuaXR5IGluIERvUmF1
Y2hcbiIgKTsKICAgICAgICAgICAgICAgIFNob3dNZSgpOwogICAgICAgICAgICAgICAgcHV0
cyggIltTdG9wIGluIERvUmF1Y2hdIiApOwogICAgICAgICAgICAgICAgY2RFWElUKDEpOwog
ICAgICAgIH0KCiAgICAgICAgaWYoIGZyMj4xLiB8fCBmcjIgPCAwLiApCiAgICAgICAgewog
ICAgICAgICAgICAgICAgZnByaW50ZiggaW9RUVEsCiAgICAgICAgICAgICAgICAgICAgICAg
ICIgZnIyIGluc2FuaXR5IGluIERvUmF1Y2hcbiIgKTsKICAgICAgICAgICAgICAgIFNob3dN
ZSgpOwogICAgICAgICAgICAgICAgcHV0cyggIltTdG9wIGluIERvUmF1Y2hdIiApOwogICAg
ICAgICAgICAgICAgY2RFWElUKDEpOwogICAgICAgIH0KCgogICAgICAgIGlmKCBmc2Vlayhp
b0lOLCAoanZhbFtpcFRlZmZdW2lwR3Jhdl0tMSkqbkJsb2Nrc2l6ZSwgMCApIT0gMCApCiAg
ICAgICAgewogICAgICAgICAgICAgICAgZnByaW50ZiggaW9RUVEsICIgRXJyb3IxIHNlZWtp
bmcgUmF1Y2ggYXRtb3NwaGVyZSU0bGRcbiIsCiAgICAgICAgICAgICAgICAgIGp2YWxbaXBU
ZWZmXVtpcEdyYXZdICk7CiAgICAgICAgICAgICAgICBwdXRzKCAiW1N0b3AgaW4gRG9SYXVj
aF0iICk7CiAgICAgICAgICAgICAgICBjZEVYSVQoMSk7CiAgICAgICAgfQoKICAgICAgICBp
ZiggYWJzKCBmcmVhZCggZmx1eDEsIDEgLCBuQmxvY2tzaXplLCBpb0lOICkgLQogICAgICAg
ICAgICAgICAgKGludCluQmxvY2tzaXplKSAhPSAwICkKICAgICAgICB7CiAgICAgICAgICAg
ICAgICBmcHJpbnRmKCBpb1FRUSwgIiBFcnJvcjEgdHJ5aW5nIHRvIHJlYWQgUmF1Y2ggYXRt
b3NwaGVyZSU0bGRcbiIsCiAgICAgICAgICAgICAgICAgIGp2YWxbaXBUZWZmXVtpcEdyYXZd
ICk7CiAgICAgICAgICAgICAgICBwdXRzKCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAg
ICAgICAgICAgICBjZEVYSVQoMSk7CiAgICAgICAgfQoKICAgICAgICBpZiggY2FsbGVkLmxn
VGFsayApCiAgICAgICAgewoKICAgICAgICAgICAgICAgIGZwcmludGYoIGlvUVFRLAogICAg
ICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAqIDw8PCBSYXVj
aCBtb2RlbCAlM2xkIHJlYWQgaW4iCiAgICAgICAgICAgICAgICAgICAgICAgICIuICBUX2Vm
ZiA9ICUxMC4yZiBsb2coZykgPSAlOC41ZiAgPj4+ICAgICAgICAgKlxuIiwKCiAgICAgICAg
ICAgICAgICAgIGp2YWxbaXBUZWZmXVtpcEdyYXZdLTEsCiAgICAgICAgICAgICAgICAgICB0
ZWZmW2p2YWxbaXBUZWZmXVtpcEdyYXZdLTJdLAogICAgICAgICAgICAgICAgICB4bG9nZ1tq
dmFsW2lwVGVmZl1baXBHcmF2XS0yXSApOwogICAgICAgIH0KCiAgICAgICAgaWYoIGZzZWVr
KGlvSU4sIChqdmFsW2lwVGVmZlVwXVtpcEdyYXZdLTEpKm5CbG9ja3NpemUsIDAgKSE9IDAg
KQogICAgICAgIHsKICAgICAgICAgICAgICAgIGZwcmludGYoIGlvUVFRLCAiIEVycm9yMiBz
ZWVraW5nIFJhdWNoIGF0bW9zcGhlcmUlNGxkXG4iLAogICAgICAgICAgICAgICAgICBqdmFs
W2lwVGVmZlVwXVtpcEdyYXZdICk7CiAgICAgICAgICAgICAgICBwdXRzKCAiW1N0b3AgaW4g
RG9SYXVjaF0iICk7CiAgICAgICAgICAgICAgICBjZEVYSVQoMSk7CiAgICAgICAgfQoKICAg
ICAgICBpZiggYWJzKCBmcmVhZCggZmx1eDIsIDEgLCBuQmxvY2tzaXplLCBpb0lOICkgLQog
ICAgICAgICAgICAgICAgKGludCluQmxvY2tzaXplKSAhPSAwICkKICAgICAgICB7CiAgICAg
ICAgICAgICAgICBmcHJpbnRmKCBpb1FRUSwgIiBFcnJvcjIgdHJ5aW5nIHRvIHJlYWQgUmF1
Y2ggYXRtb3NwaGVyZSU0bGRcbiIsCiAgICAgICAgICAgICAgICAgIGp2YWxbaXBUZWZmVXBd
W2lwR3Jhdl0gKTsKICAgICAgICAgICAgICAgIHB1dHMoICJbU3RvcCBpbiBEb1JhdWNoXSIg
KTsKICAgICAgICAgICAgICAgIGNkRVhJVCgxKTsKICAgICAgICB9CgoKICAgICAgICBmb3Io
IGk9MDsgaTxyZmllbGQubnVwcGVyOyArK2kgKQogICAgICAgIHsKICAgICAgICAgICAgICAg
IGZsdXgxW2ldID0gKGZsb2F0KWxvZzEwKCAoKCgxZS0zNyk+KGZsdXgxW2ldKSkgPyAoMWUt
MzcpIDogKGZsdXgxW2ldKSkgKTsKICAgICAgICAgICAgICAgIGZsdXgyW2ldID0gKGZsb2F0
KWxvZzEwKCAoKCgxZS0zNyk+KGZsdXgyW2ldKSkgPyAoMWUtMzcpIDogKGZsdXgyW2ldKSkg
KTsKICAgICAgICB9CgogICAgICAgIGlmKCBjYWxsZWQubGdUYWxrICkKICAgICAgICB7CiAg
ICAgICAgICAgICAgICBmcHJpbnRmKCBpb1FRUSwgIiAgICAgICAgICAgICAgICAgICAgICAg
KiA8PDwgUmF1Y2ggbW9kZWwgJTNsZCByZWFkIGluLiAgVF9lZmYgPSAlMTAuMmYgbG9nKGcp
ID0gJTguNWYgID4+PiAgICAgICAgICpcbiIsCiAgICAgICAgICAgICAgICAgIGp2YWxbaXBU
ZWZmVXBdW2lwR3Jhdl0tMSwKICAgICAgICAgICAgICAgICAgIHRlZmZbanZhbFtpcFRlZmZV
cF1baXBHcmF2XS0yXSwKICAgICAgICAgICAgICAgICAgeGxvZ2dbanZhbFtpcFRlZmZVcF1b
aXBHcmF2XS0yXSApOwogICAgICAgIH0KIyAzODQgInJhdWNoLmMiCiAgICAgICAgaWYoIHRl
bXAgPiAyMDAwMDAuICkKICAgICAgICB7CiAgICAgICAgICAgICAgICBmYWN0MSA9IGxvZzEw
KHRlbXAvdHZhbFtpcFRlZmZdKSo0LjsKICAgICAgICAgICAgICAgIGZhY3QyID0gbG9nMTAo
dGVtcC90dmFsW2lwVGVmZlVwXSkqNC47CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAg
ICB7CiAgICAgICAgICAgICAgICBmYWN0MSA9IDAuOwogICAgICAgICAgICAgICAgZmFjdDIg
PSAwLjsKICAgICAgICB9CgoKICAgICAgICBmb3IoIGo9MDsgaiA8IHJmaWVsZC5udXBwZXI7
IGorKyApCiAgICAgICAgewogICAgICAgICAgICAgICAgcmZpZWxkLmZsdXhbal0gPQogICAg
ICAgICAgICAgICAgICAgICAgICAoZmxvYXQpKGZyNCooZmx1eDFbal0gKyBmYWN0MSkgKyBm
cjMqKGZsdXgyW2pdICsgZmFjdDIpKTsKICAgICAgICB9CgoKICAgICAgICBpZiggaXBHcmF2
IDwgNCApCiAgICAgICAgewoKCiAgICAgICAgICAgICAgICBpZiggZnNlZWsoaW9JTiwgKGp2
YWxbaXBUZWZmXVtpcEdyYXZVcF0tMSkqbkJsb2Nrc2l6ZSwgMCApIT0gMCApCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZwcmludGYoIGlvUVFRLCAiIEVy
cm9yMyBzZWVraW5nIFJhdWNoIGF0bW9zcGhlcmUlNGxkXG4iLAogICAgICAgICAgICAgICAg
ICAgICAgICAgIGp2YWxbaXBUZWZmXVtpcEdyYXZVcF0gKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgcHV0cyggIltTdG9wIGluIERvUmF1Y2hdIiApOwogICAgICAgICAgICAgICAgICAg
ICAgICBjZEVYSVQoMSk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYo
IGFicyggZnJlYWQoIGZsdXgxLCAxICwgbkJsb2Nrc2l6ZSwgaW9JTiApIC0KICAgICAgICAg
ICAgICAgICAgICAgICAgKGludCluQmxvY2tzaXplKSAhPSAwICkKICAgICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZiggaW9RUVEsICIgRXJyb3IzIHRy
eWluZyB0byByZWFkIFJhdWNoIGF0bW9zcGhlcmUlNGxkXG4iLAogICAgICAgICAgICAgICAg
ICAgICAgICAgIGp2YWxbaXBUZWZmXVtpcEdyYXZdICk7CiAgICAgICAgICAgICAgICAgICAg
ICAgIHB1dHMoICJbU3RvcCBpbiBEb1JhdWNoXSIgKTsKICAgICAgICAgICAgICAgICAgICAg
ICAgY2RFWElUKDEpOwogICAgICAgICAgICAgICAgfQoKCiAgICAgICAgICAgICAgICBmb3Io
IGk9MDsgaTxyZmllbGQubnVwcGVyOyArK2kgKQogICAgICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgICAgICAgICBmbHV4MVtpXSA9IChmbG9hdClsb2cxMCggKCgoMWUtMzcpPihm
bHV4MVtpXSkpID8gKDFlLTM3KSA6IChmbHV4MVtpXSkpICk7CiAgICAgICAgICAgICAgICB9
CgogICAgICAgICAgICAgICAgaWYoIGNhbGxlZC5sZ1RhbGsgKQogICAgICAgICAgICAgICAg
ewogICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKCBpb1FRUSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiICAgICAgICAgICAgICAgICAgICAgICAqIDw8PCBSYXVj
aCBtb2RlbCAlM2xkIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgcmVhZCBp
bi4gIFRfZWZmID0gJTEwLjJmIGxvZyhnKSA9ICU4LjVmICA+Pj4gICAgICAgICAqXG4iLAog
ICAgICAgICAgICAgICAgICAgICAgICAgIGp2YWxbaXBUZWZmXVtpcEdyYXZVcF0tMSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdGVmZltqdmFsW2lwVGVmZl1baXBHcmF2VXBdLTJd
LAogICAgICAgICAgICAgICAgICAgICAgICAgIHhsb2dnW2p2YWxbaXBUZWZmXVtpcEdyYXZV
cF0tMl0gKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiggZnNlZWso
aW9JTiwgKGp2YWxbaXBUZWZmVXBdW2lwR3JhdlVwXS0xKSpuQmxvY2tzaXplLCAwICkhPSAw
ICkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50Zigg
aW9RUVEsICIgRXJyb3IyIHNlZWtpbmcgUmF1Y2ggYXRtb3NwaGVyZSU0bGRcbiIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAganZhbFtpcFRlZmZVcF1baXBHcmF2XSApOwogICAgICAg
ICAgICAgICAgICAgICAgICBwdXRzKCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAgICAg
ICAgICAgICAgICAgICAgIGNkRVhJVCgxKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAg
ICAgICAgICBpZiggYWJzKCBmcmVhZCggZmx1eDIsIDEgLCBuQmxvY2tzaXplLCBpb0lOICkg
LQogICAgICAgICAgICAgICAgICAgICAgICAoaW50KW5CbG9ja3NpemUpICE9IDAgKQogICAg
ICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBmcHJpbnRmKCBpb1FRUSwg
IiBFcnJvcjIgdHJ5aW5nIHRvIHJlYWQgUmF1Y2ggYXRtb3NwaGVyZSU0bGRcbiIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAganZhbFtpcFRlZmZVcF1baXBHcmF2XSApOwogICAgICAg
ICAgICAgICAgICAgICAgICBwdXRzKCAiW1N0b3AgaW4gRG9SYXVjaF0iICk7CiAgICAgICAg
ICAgICAgICAgICAgICAgIGNkRVhJVCgxKTsKICAgICAgICAgICAgICAgIH0KCgogICAgICAg
ICAgICAgICAgZm9yKCBpPTA7IGk8cmZpZWxkLm51cHBlcjsgKytpICkKICAgICAgICAgICAg
ICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZmx1eDJbaV0gPSAoZmxvYXQpbG9nMTAo
ICgoKDFlLTM3KT4oZmx1eDJbaV0pKSA/ICgxZS0zNykgOiAoZmx1eDJbaV0pKSApOwogICAg
ICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmKCBjYWxsZWQubGdUYWxrICkKICAg
ICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgZnByaW50ZiggaW9RUVEs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAgICAgICAgICAgICAgICAgICAg
ICAgKiA8PDwgUmF1Y2ggbW9kZWwgJTNsZCIKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiIHJlYWQgaW4uICBUX2VmZiA9ICUxMC4yZiBsb2coZykgPSAlOC41ZiAgPj4+ICAg
ICAgICAgKlxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgICBqdmFsW2lwVGVmZlVwXVtp
cEdyYXZVcF0tMSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgdGVmZltqdmFsW2lwVGVm
ZlVwXVtpcEdyYXZVcF0tMl0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgeGxvZ2dbanZh
bFtpcFRlZmZVcF1baXBHcmF2VXBdLTJdICk7CiAgICAgICAgICAgICAgICB9CgoKCiAgICAg
ICAgICAgICAgICBmb3IoIGo9MDsgaiA8IHJmaWVsZC5udXBwZXI7IGorKyApCiAgICAgICAg
ICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGZsdXgxW2pdID0gKGZsb2F0KSgo
Zmx1eDFbal0gKyBmYWN0MSkqZnI0ICsgKGZsdXgyW2pdICsgZmFjdDIpKmZyMyk7CiAgICAg
ICAgICAgICAgICB9CgoKCiAgICAgICAgICAgICAgICBmb3IoIGo9MDsgaiA8IHJmaWVsZC5u
dXBwZXI7IGorKyApCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAg
IHJmaWVsZC5mbHV4W2pdID0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmxv
YXQpcG93KDEwLixmcjIqcmZpZWxkLmZsdXhbal0gKyBmcjEqZmx1eDFbal0pOwogICAgICAg
ICAgICAgICAgICAgICAgICBpZiggcmZpZWxkLmZsdXhbal0gPCAxZS0zNyApCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmZpZWxkLmZsdXhbal0gPSAwLjsKICAgICAgICAg
ICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKCgogICAgICAgICAg
ICAgICAgZm9yKCBqPTA7IGogPCByZmllbGQubnVwcGVyOyBqKysgKQogICAgICAgICAgICAg
ICAgewogICAgICAgICAgICAgICAgICAgICAgICByZmllbGQuZmx1eFtqXSA9IChmbG9hdClw
b3coMTAuLHJmaWVsZC5mbHV4W2pdKTsKICAgICAgICAgICAgICAgICAgICAgICAgaWYoIHJm
aWVsZC5mbHV4W2pdIDwgMWUtMzcgKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJmaWVsZC5mbHV4W2pdID0gMC47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgfQoKCiAg
ICAgICAgbHVtaSA9IDAuOwoKICAgICAgICBmb3IoIGs9MTsgayA8IHJmaWVsZC5udXBwZXI7
IGsrKyApIHsKICAgICAgICAgICAgICAgIGx1bWkgKz0gKHJmaWVsZC50TnVSeWRba11bcmZp
ZWxkLm5zcGVjXSAtIHJmaWVsZC50TnVSeWRbay0xXVtyZmllbGQubnNwZWNdKSoKICAgICAg
ICAgICAgICAgICAgICAgICAgKHJmaWVsZC5mbHV4W2tdICsgcmZpZWxkLmZsdXhbay0xXSkv
Mi47CiAgICAgICAgfQoKICAgICAgICBjaGsgPSBwb3cobHVtaSooMi45OTc5MjQ1OGUxMCox
LjA5NzM3MzE1Njg1NDllNSkvKDMuMTQxNTkyNjUzNTg5NzkzMjM4NDYyNjQzKjMuMTQxNTky
NjUzNTg5NzkzMjM4NDYyNjQzLzYwLioxLjM4MDY1MDNlLTE2KjEuMzgwNjUwM2UtMTYqMS4z
ODA2NTAzZS0xNioxLjM4MDY1MDNlLTE2Lyg2LjYyNjA2ODc2ZS0yNy8oMi4qMy4xNDE1OTI2
NTM1ODk3OTMyMzg0NjI2NDMpKS8oNi42MjYwNjg3NmUtMjcvKDIuKjMuMTQxNTkyNjUzNTg5
NzkzMjM4NDYyNjQzKSkvKDYuNjI2MDY4NzZlLTI3LygyLiozLjE0MTU5MjY1MzU4OTc5MzIz
ODQ2MjY0MykpLzIuOTk3OTI0NThlMTAvMi45OTc5MjQ1OGUxMCksMC4yNSk7CgoKCiAgICAg
ICAgaWYoIGZhYnMoKHRlbXAtY2hrKS90ZW1wKSA+IDAuMTAgJiYgY2FsbGVkLmxnVGFsayAp
CiAgICAgICAgewoKCgogICAgICAgICAgICAgICAgZnByaW50ZiggaW9RUVEsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAiKioqIFdBUk5JTkcsIFRfZWZmIGRpc2NyZXBhbmN5IGZvciB0
aGlzIG1vZGVsLCBleHBlY3RlZCB0ZWZmICUuMmYsICIKICAgICAgICAgICAgICAgICAgICAg
ICAgICJsb2coZykgJS4yZiwgaW50ZWdyYXRpb24geWllbGRlZCB0ZWZmICUuMmYsIGRlbHRh
ICUuMmYlJVxuIiwKICAgICAgICAgICAgICAgICAgICAgICAgIHRlbXAsIGFsb2dnLCBjaGss
IChjaGstdGVtcCkvdGVtcCoxMDAuICk7CiAgICAgICAgICAgICAgICBpbnNhbmUoKTsKICAg
ICAgICAgICAgICAgIFNob3dNZSgpOwogICAgICAgICAgICAgICAgcHV0cyggIltTdG9wIGlu
IERvUmF1Y2hdIiApOwogICAgICAgICAgICAgICAgY2RFWElUKDEpOwogICAgICAgIH0KIyA1
NTkgInJhdWNoLmMiCiAgICAgICAgZm9yKCBqPTA7IGogPCByZmllbGQubnVwcGVyOyBqKysg
KQogICAgICAgIHsKCiAgICAgICAgICAgICAgICByZmllbGQudHNsb3Bbal1bcmZpZWxkLm5z
cGVjXSA9IHJmaWVsZC5mbHV4W2pdOwogICAgICAgIH0KCiAgICAgICAgKm5zdGFyID0gcmZp
ZWxkLm51cHBlciA7CiAgICAgICAgZmNsb3NlKCBpb0lOICk7CgogICAgICAgIGZyZWUoZmx1
eDEpOwogICAgICAgIGZyZWUoZmx1eDIpOwoKCgoKCgogICAgICAgIHJldHVybjsKfQo=
--------------060208020305070509010903--
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: optimization/4330: Optimizer generates illegal assembly code
@ 2002-04-03 15:28 rth
0 siblings, 0 replies; 5+ messages in thread
From: rth @ 2002-04-03 15:28 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, rth, vanhoof
Synopsis: Optimizer generates illegal assembly code
State-Changed-From-To: open->closed
State-Changed-By: rth
State-Changed-When: Wed Apr 3 15:28:55 2002
State-Changed-Why:
Fixed for gcc 3.1.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4330
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: optimization/4330: Optimizer generates illegal assembly code
@ 2002-04-03 14:10 rth
0 siblings, 0 replies; 5+ messages in thread
From: rth @ 2002-04-03 14:10 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, nobody, rth, vanhoof
Synopsis: Optimizer generates illegal assembly code
Responsible-Changed-From-To: unassigned->rth
Responsible-Changed-By: rth
Responsible-Changed-When: Wed Apr 3 14:10:13 2002
Responsible-Changed-Why:
.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4330
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: optimization/4330: Optimizer generates illegal assembly code
@ 2002-04-03 10:53 rth
0 siblings, 0 replies; 5+ messages in thread
From: rth @ 2002-04-03 10:53 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, nobody, vanhoof
Synopsis: Optimizer generates illegal assembly code
State-Changed-From-To: feedback->open
State-Changed-By: rth
State-Changed-When: Wed Apr 3 10:53:47 2002
State-Changed-Why:
Replacement file received.
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4330
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: optimization/4330: Optimizer generates illegal assembly code
@ 2002-04-03 0:48 rth
0 siblings, 0 replies; 5+ messages in thread
From: rth @ 2002-04-03 0:48 UTC (permalink / raw)
To: gcc-bugs, gcc-prs, nobody, vanhoof
Synopsis: Optimizer generates illegal assembly code
State-Changed-From-To: open->feedback
State-Changed-By: rth
State-Changed-When: Wed Apr 3 00:48:26 2002
State-Changed-Why:
bunzip2: Compressed file ends unexpectedly; perhaps it is corrupted?
Could you re-send the file please?
http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=4330
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2002-04-03 23:28 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-04-03 7:46 optimization/4330: Optimizer generates illegal assembly code Peter van Hoof
-- strict thread matches above, loose matches on Subject: below --
2002-04-03 15:28 rth
2002-04-03 14:10 rth
2002-04-03 10:53 rth
2002-04-03 0:48 rth
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).