optimization/935: potimization broken for : conversion : intmax_t -> double -> intmax_t
amgastineau@voonoo.net
amgastineau@voonoo.net
Thu Nov 30 02:46:00 GMT 2000
>Number: 935
>Category: optimization
>Synopsis: potimization broken for : conversion : intmax_t -> double -> intmax_t
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: unassigned
>State: open
>Class: ice-on-legal-code
>Submitter-Id: net
>Arrival-Date: Thu Nov 30 02:46:01 PST 2000
>Closed-Date:
>Last-Modified:
>Originator: mickael gastineau
>Release: 2.95.3
>Organization:
>Environment:
Linux localhost.localdomain 2.2.15-4mdk #4 mer sep 20 21:02:27 CEST 2000
i586 unknown
>Description:
I reproduce this bug with the last experimental gcc version (20001120).
With large integer (which hasnot an exact double representation) and optimization , the conversion from intmax_t to double and double to intmax_t assumes that there are no conversion. The optimization should take care about this conversion. I add the keyword volatile but it doesn't do anything.
Example of run :
[bdl@localhost user]$ gcc -O0 toto.c -o toto
[bdl@localhost user]$ ./toto
v=2305843009213693952
v=2305843009213693953
l>l1
v=2305843009213693951
l<l1
[bdl@localhost user]$ gcc -O2 toto.c -o toto
[bdl@localhost user]$ ./toto
v=2305843009213693952
v=2305843009213693953
v=2305843009213693951
>How-To-Repeat:
You should only compile with -O0 and after -O3 this program.
#include <stdio.h>
#include <inttypes.h>
void LONGLONG22DBL(intmax_t l)
{
double d1, d2;
volatile intmax_t l1;
d1 = l;
d2 = d1;
l1 = d1;
if ( l<l1 )
{
printf("l<l1\n");
}
else if ( l>l1 )
{
printf("l>l1\n");
}
}
int main()
{
intmax_t v=1;
v <<=61;
printf("v=%"PRIiMAX"\n",v);
LONGLONG22DBL(v);
v+=1;
printf("v=%"PRIiMAX"\n",v);
LONGLONG22DBL(v);
v-=2;
printf("v=%"PRIiMAX"\n",v);
LONGLONG22DBL(v);
return 0;
}
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: text/x-usenet-faq; name="toto.o0.i"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="toto.o0.i"
DQ0jIDEgInRvdG8uYyINIyAxICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMSAzDSANDQ0NDQ0NDQ0N
DQ0NDQ0NDQ0gDQ0NDQ0NDQ0jIDEgIi91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAxIDMNIA0NDQ0N
DQ0NDQ0NDQ0NDQ0NDQ0NDSANDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
DQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0gDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0gDQ0NDQ0NIA0NDQ0gDQ0N
DQ0NDQ0gDSMgMTM4ICIvdXNyL2luY2x1ZGUvZmVhdHVyZXMuaCIgMw0NDSANDQ0NDQ0NDQ0NIA0N
DQ0NDSANDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NIyAxOTYgIi91c3IvaW5jbHVkZS9mZWF0
dXJlcy5oIiAzDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0gDQ0NDSANDQ0NDQ0N
DQ0gDQ0NDQ0gDQ0jIDEgIi91c3IvaW5jbHVkZS9zeXMvY2RlZnMuaCIgMSAzDSANDQ0NDQ0NDQ0N
DQ0NDQ0NDQ0NDQ0gDQ0NDQ0gDQ0NDQ0NIA0NDQ0NDQ0NDSANDQ0NDSMgNzEgIi91c3IvaW5jbHVk
ZS9zeXMvY2RlZnMuaCIgMw0NDSANDQ0NDQ0NDSANDQ0NIyAxMDMgIi91c3IvaW5jbHVkZS9zeXMv
Y2RlZnMuaCIgMw0NDQ0gDQ0NDQ0NDQ0NIA0NDQ0NDQ0NDQ0NDQ0NDQ0gDQ0NDQ0NDQ0NIA0NDQ0N
DQ0NDSANDQ0NDQ0NDQ0NIA0NDQ0NDQ0NIyAyNTAgIi91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAy
IDMNDQ0gDQ0NDQ0NDQ0NIA0NDQ0NDSANDSANDQ0NDQ0NDQ0jIDEgIi91c3IvaW5jbHVkZS9nbnUv
c3R1YnMuaCIgMSAzDSANDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0jIDI3
OCAiL3Vzci9pbmNsdWRlL2ZlYXR1cmVzLmgiIDIgMw0NDQ0NIyAyNyAiL3Vzci9pbmNsdWRlL3N0
ZGlvLmgiIDIgMw0NDSANDQ0NIyAxICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGlu
dXgvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDEgMw0NDQ0NDQ0gDQ0NIyAxOSAiL3Vzci9saWIv
Z2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzDQ0N
DSANDQ0gDQ0NDQ0NIA0NDSMgNjEgIi91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51
eC8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMw0NDSANDQ0NDQ0gDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
DSANDQ0NDQ0gDQ0gDQ0jIDEzMSAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4
LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzDQ0NIA0NIA0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
DQ0NDQ0NDQ0NDQ0NdHlwZWRlZiB1bnNpZ25lZCBpbnQgc2l6ZV90Ow0NDQ0NDQ0NDQ0NDQ0NDQ0N
DQ0NDQ0NIA0NDQ0NIA0NIyAyNzEgIi91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51
eC8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMw0NDSMgMjgzICIvdXNyL2xpYi9nY2MtbGliL2k1
ODYtbWFuZHJha2UtbGludXgvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMNDQ0gDQ0gDQ0jIDMx
NyAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUuMy9pbmNsdWRlL3N0
ZGRlZi5oIiAzDQ0NDQ0gDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDSMgMzMgIi91c3IvaW5jbHVkZS9z
dGRpby5oIiAyIDMNDQ0NDQ0jIDEgIi91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51
eC8yLjk1LjMvaW5jbHVkZS9zdGRhcmcuaCIgMSAzDSANDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
DQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDSANDQ0NDQ0NdHlwZWRlZiB2
b2lkICpfX2dudWNfdmFfbGlzdDsNDQ0NIA0NIyAxMjIgIi91c3IvbGliL2djYy1saWIvaTU4Ni1t
YW5kcmFrZS1saW51eC8yLjk1LjMvaW5jbHVkZS9zdGRhcmcuaCIgMw0NDQ0NDQ0NDQ0NDQ0NDQ0N
DQ0NDSMgMjA5ICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45NS4zL2lu
Y2x1ZGUvc3RkYXJnLmgiIDMNDQ0NDSMgMzggIi91c3IvaW5jbHVkZS9zdGRpby5oIiAyIDMNDQ0j
IDEgIi91c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDEgMw0gDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NIA0N
DQ0NDQ0NDQ0jIDEgIi91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51eC8yLjk1LjMv
aW5jbHVkZS9zdGRkZWYuaCIgMSAzDQ0NDQ0NDSANDQ0jIDE5ICIvdXNyL2xpYi9nY2MtbGliL2k1
ODYtbWFuZHJha2UtbGludXgvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMNDQ0NIA0NDSANDQ0N
DQ0gDQ0NIyA2MSAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUuMy9p
bmNsdWRlL3N0ZGRlZi5oIiAzDQ0NIA0NDQ0NDSANDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NIA0NDQ0NDSAN
DSANDSMgMTMxICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45NS4zL2lu
Y2x1ZGUvc3RkZGVmLmgiIDMNDQ0gDQ0gDQ0NIyAxODggIi91c3IvbGliL2djYy1saWIvaTU4Ni1t
YW5kcmFrZS1saW51eC8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMw0NDQ0NDSANDQ0NDSANDSMg
MjcxICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45NS4zL2luY2x1ZGUv
c3RkZGVmLmgiIDMNDQ0jIDI4MyAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4
LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzDQ0NIA0NIA0NIyAzMTcgIi91c3IvbGliL2djYy1s
aWIvaTU4Ni1tYW5kcmFrZS1saW51eC8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMw0NDQ0NIA0N
DQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0jIDI5ICIvdXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIiAyIDMN
DQ0gDXR5cGVkZWYgdW5zaWduZWQgY2hhciBfX3VfY2hhcjsNdHlwZWRlZiB1bnNpZ25lZCBzaG9y
dCBfX3Vfc2hvcnQ7DXR5cGVkZWYgdW5zaWduZWQgaW50IF9fdV9pbnQ7DXR5cGVkZWYgdW5zaWdu
ZWQgbG9uZyBfX3VfbG9uZzsNDV9fZXh0ZW5zaW9uX18gdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxv
bmcgaW50IF9fdV9xdWFkX3Q7DV9fZXh0ZW5zaW9uX18gdHlwZWRlZiBsb25nIGxvbmcgaW50IF9f
cXVhZF90Ow0jIDQ4ICIvdXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIiAzDQ10eXBlZGVmIHNpZ25l
ZCBjaGFyIF9faW50OF90Ow10eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191aW50OF90Ow10eXBlZGVm
IHNpZ25lZCBzaG9ydCBpbnQgX19pbnQxNl90Ow10eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCBf
X3VpbnQxNl90Ow10eXBlZGVmIHNpZ25lZCBpbnQgX19pbnQzMl90Ow10eXBlZGVmIHVuc2lnbmVk
IGludCBfX3VpbnQzMl90Ow0NX19leHRlbnNpb25fXyB0eXBlZGVmIHNpZ25lZCBsb25nIGxvbmcg
aW50IF9faW50NjRfdDsNX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBp
bnQgX191aW50NjRfdDsNDXR5cGVkZWYgX19xdWFkX3QgKl9fcWFkZHJfdDsNDXR5cGVkZWYgX191
X3F1YWRfdCBfX2Rldl90OwkJIA10eXBlZGVmIF9fdV9pbnQgX191aWRfdDsJCSANdHlwZWRlZiBf
X3VfaW50IF9fZ2lkX3Q7CQkgDXR5cGVkZWYgX191X2xvbmcgX19pbm9fdDsJCSANdHlwZWRlZiBf
X3VfaW50IF9fbW9kZV90OwkJIA10eXBlZGVmIF9fdV9pbnQgX19ubGlua190OyAJCSANdHlwZWRl
ZiBsb25nIGludCBfX29mZl90OwkJIA10eXBlZGVmIF9fcXVhZF90IF9fbG9mZl90OwkJIA10eXBl
ZGVmIGludCBfX3BpZF90OwkJCSANdHlwZWRlZiBpbnQgX19zc2l6ZV90OwkJCSANdHlwZWRlZiBs
b25nIGludCBfX3JsaW1fdDsJCSANdHlwZWRlZiBfX3F1YWRfdCBfX3JsaW02NF90OwkJIA10eXBl
ZGVmIF9fdV9pbnQgX19pZF90OwkJCSANDXR5cGVkZWYgc3RydWN0DSAgew0gICAgaW50IF9fdmFs
WzJdOw0gIH0gX19mc2lkX3Q7CQkJCSANDSANdHlwZWRlZiBpbnQgX19kYWRkcl90OwkJCSANdHlw
ZWRlZiBjaGFyICpfX2NhZGRyX3Q7DXR5cGVkZWYgbG9uZyBpbnQgX190aW1lX3Q7DXR5cGVkZWYg
bG9uZyBpbnQgX19zd2Jsa190OwkJIA0NdHlwZWRlZiBsb25nIGludCBfX2Nsb2NrX3Q7DQ0gDXR5
cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgX19mZF9tYXNrOw0NIA0NDSANDQ0NDSANdHlwZWRlZiBz
dHJ1Y3QNICB7DSAgICAgDQ0NDQ0NICAgIF9fZmRfbWFzayBfX2Zkc19iaXRzWzEwMjQgIC8gKDgg
KiBzaXplb2YgKF9fZmRfbWFzaykpIF07DQ0NICB9IF9fZmRfc2V0Ow0NDXR5cGVkZWYgaW50IF9f
a2V5X3Q7DQ0gDXR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IF9faXBjX3BpZF90Ow0NDSANDSAN
dHlwZWRlZiBsb25nIGludCBfX2Jsa2NudF90Ow10eXBlZGVmIF9fcXVhZF90IF9fYmxrY250NjRf
dDsNDSANdHlwZWRlZiBfX3VfbG9uZyBfX2ZzYmxrY250X3Q7DXR5cGVkZWYgX191X3F1YWRfdCBf
X2ZzYmxrY250NjRfdDsNDSANdHlwZWRlZiBfX3VfbG9uZyBfX2ZzZmlsY250X3Q7DXR5cGVkZWYg
X191X3F1YWRfdCBfX2ZzZmlsY250NjRfdDsNDSANdHlwZWRlZiBfX3VfbG9uZyBfX2lubzY0X3Q7
DQ0gDXR5cGVkZWYgX19sb2ZmX3QgX19vZmY2NF90Ow0NIA10eXBlZGVmIGxvbmcgaW50IF9fdF9z
Y2FsYXJfdDsNdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX3RfdXNjYWxhcl90Ow0NIA10eXBl
ZGVmIGludCBfX2ludHB0cl90Ow0NDSANDQ0NDQ0jIDQwICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIg
MiAzDQ0NDQ0NDQ0gDXR5cGVkZWYgc3RydWN0IF9JT19GSUxFIEZJTEU7DQ0NDQ0NDQ0NIyAxICIv
dXNyL2luY2x1ZGUvbGliaW8uaCIgMSAzDSANDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDSMg
MSAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAxIDMNIA0NDQ0NDSANDQ0NDQ0NIyAxICIvdXNy
L2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgi
IDEgMw0NDQ0NDQ0gDQ0NIyAxOSAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4
LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzDQ0NDSANDQ0gDQ0NDQ0NIA0NDSMgNjEgIi91c3Iv
bGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51eC8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIg
Mw0NDSANDQ0NDQ0gDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDSANDQ0NDQ0gDQ0gDQ0jIDEzMSAiL3Vzci9s
aWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAz
DQ0NIA0NIA0NDSMgMTg4ICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45
NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMNDQ0NDQ0gDQ0NDQ0gDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
DQ0NDQ0NDQ0NIA0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDXR5cGVkZWYgbG9uZyBpbnQgd2No
YXJfdDsNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NdHlwZWRlZiB1bnNpZ25lZCBpbnQgIHdpbnRf
dDsNDQ0NDSANDSANDSMgMzE3ICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgv
Mi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMNDQ0NDSANDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NIyAx
NCAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAyIDMNDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NdHlw
ZWRlZiBpbnQgX0dfaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fSElfXykpKTsN
dHlwZWRlZiBpbnQgX0dfaW50MzJfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9fU0lfXykp
KTsNdHlwZWRlZiB1bnNpZ25lZCBpbnQgX0dfdWludDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9k
ZV9fIChfX0hJX18pKSk7DXR5cGVkZWYgdW5zaWduZWQgaW50IF9HX3VpbnQzMl90IF9fYXR0cmli
dXRlX18gKChfX21vZGVfXyAoX19TSV9fKSkpOw0NDQ0NIA0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0gDQ0N
DQ0gDQ0NDQ0NDQ0NDQ0NDQ0NIyAzMCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDIgMw0NDQ0NDQ0N
DQ0NDQ0NDQ0NIA0NIyAxICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45
NS4zL2luY2x1ZGUvc3RkYXJnLmgiIDEgMw0gDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
DQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0gDQ0NDQ0NDQ0NDQ0gDQ0jIDEyMiAi
L3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUuMy9pbmNsdWRlL3N0ZGFy
Zy5oIiAzDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NIyAyMDkgIi91c3IvbGliL2djYy1saWIvaTU4Ni1t
YW5kcmFrZS1saW51eC8yLjk1LjMvaW5jbHVkZS9zdGRhcmcuaCIgMw0NDQ0NIyA0OCAiL3Vzci9p
bmNsdWRlL2xpYmlvLmgiIDIgMw0NDQ0NDQ0NIyA2NyAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMN
DQ0gDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NIyA5OCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMNDQ0NDQ0N
DQ0NDQ0gDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDSANDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDXN0cnVj
dCBfSU9fanVtcF90OyAgc3RydWN0IF9JT19GSUxFOw0NIA0NDQ0NDQ0NdHlwZWRlZiB2b2lkIF9J
T19sb2NrX3Q7DQ0NDSANDXN0cnVjdCBfSU9fbWFya2VyIHsNICBzdHJ1Y3QgX0lPX21hcmtlciAq
X25leHQ7DSAgc3RydWN0IF9JT19GSUxFICpfc2J1ZjsNICAgDQ0gICANICBpbnQgX3BvczsNIyAx
ODYgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzDQ19Ow0Nc3RydWN0IF9JT19GSUxFIHsNICBpbnQg
X2ZsYWdzOwkJIA0NDSAgIA0gICANICBjaGFyKiBfSU9fcmVhZF9wdHI7CSANICBjaGFyKiBfSU9f
cmVhZF9lbmQ7CSANICBjaGFyKiBfSU9fcmVhZF9iYXNlOwkgDSAgY2hhciogX0lPX3dyaXRlX2Jh
c2U7CSANICBjaGFyKiBfSU9fd3JpdGVfcHRyOwkgDSAgY2hhciogX0lPX3dyaXRlX2VuZDsJIA0g
IGNoYXIqIF9JT19idWZfYmFzZTsJIA0gIGNoYXIqIF9JT19idWZfZW5kOwkgDSAgIA0gIGNoYXIg
Kl9JT19zYXZlX2Jhc2U7ICANICBjaGFyICpfSU9fYmFja3VwX2Jhc2U7ICAgDSAgY2hhciAqX0lP
X3NhdmVfZW5kOyAgDQ0gIHN0cnVjdCBfSU9fbWFya2VyICpfbWFya2VyczsNDSAgc3RydWN0IF9J
T19GSUxFICpfY2hhaW47DQ0gIGludCBfZmlsZW5vOw0gIGludCBfYmxrc2l6ZTsNICBfX29mZl90
ICAgX29sZF9vZmZzZXQ7ICANDQ0gICANICB1bnNpZ25lZCBzaG9ydCBfY3VyX2NvbHVtbjsNICBz
aWduZWQgY2hhciBfdnRhYmxlX29mZnNldDsNICBjaGFyIF9zaG9ydGJ1ZlsxXTsNDSAgIA0NICBf
SU9fbG9ja190ICpfbG9jazsNDQ0NDQ0NDQ0gIF9fb2ZmNjRfdCAgIF9vZmZzZXQ7DSAgIA0gIGlu
dCBfdW51c2VkMlsxNl07DQ19Ow0NDXR5cGVkZWYgc3RydWN0IF9JT19GSUxFIF9JT19GSUxFOw0N
DXN0cnVjdCBfSU9fRklMRV9wbHVzOw1leHRlcm4gc3RydWN0IF9JT19GSUxFX3BsdXMgX0lPXzJf
MV9zdGRpbl87DWV4dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZG91dF87DWV4
dGVybiBzdHJ1Y3QgX0lPX0ZJTEVfcGx1cyBfSU9fMl8xX3N0ZGVycl87DQ0NDQ0NDQ0NDQ0NIA0N
IA0NdHlwZWRlZiBfX3NzaXplX3QgX19pb19yZWFkX2ZuICAodm9pZCAqICBfX2Nvb2tpZSwgY2hh
ciAqX19idWYsDQkJCQkgICAgICAgc2l6ZV90IF9fbmJ5dGVzKSAgOw0NIA0NDQ0NDXR5cGVkZWYg
X19zc2l6ZV90IF9faW9fd3JpdGVfZm4gICh2b2lkICogIF9fY29va2llLCBfX2NvbnN0IGNoYXIg
Kl9fYnVmLA0JCQkJICAgICAgc2l6ZV90IF9fbikgIDsNDSANDQ0NDQ10eXBlZGVmIGludCBfX2lv
X3NlZWtfZm4gICh2b2lkICogIF9fY29va2llLCBfX29mZl90ICAgX19wb3MsIGludCBfX3cpICA7
DQ0gDXR5cGVkZWYgaW50IF9faW9fY2xvc2VfZm4gICh2b2lkICogIF9fY29va2llKSAgOw0NDSMg
MzExICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMw0NDQ0NDQ0NZXh0ZXJuIGludCBfX3VuZGVyZmxv
dyAgKF9JT19GSUxFICopICAgIDsNZXh0ZXJuIGludCBfX3VmbG93ICAoX0lPX0ZJTEUgKikgICAg
Ow1leHRlcm4gaW50IF9fb3ZlcmZsb3cgIChfSU9fRklMRSAqLCBpbnQpICAgIDsNDQ0NDQ0NDQ0N
DQ0NDQ0NDWV4dGVybiBpbnQgX0lPX2dldGMgIChfSU9fRklMRSAqX19mcCkgICAgOw1leHRlcm4g
aW50IF9JT19wdXRjICAoaW50IF9fYywgX0lPX0ZJTEUgKl9fZnApICAgIDsNZXh0ZXJuIGludCBf
SU9fZmVvZiAgKF9JT19GSUxFICpfX2ZwKSAgICA7DWV4dGVybiBpbnQgX0lPX2ZlcnJvciAgKF9J
T19GSUxFICpfX2ZwKSAgICA7DQ1leHRlcm4gaW50IF9JT19wZWVrY19sb2NrZWQgIChfSU9fRklM
RSAqX19mcCkgICAgOw0NIA0NDQ1leHRlcm4gdm9pZCBfSU9fZmxvY2tmaWxlICAoX0lPX0ZJTEUg
KikgICAgOw1leHRlcm4gdm9pZCBfSU9fZnVubG9ja2ZpbGUgIChfSU9fRklMRSAqKSAgICA7DWV4
dGVybiBpbnQgX0lPX2Z0cnlsb2NrZmlsZSAgKF9JT19GSUxFICopICAgIDsNDQ0NDQ0NDQ0NDQ0N
ZXh0ZXJuIGludCBfSU9fdmZzY2FuZiAgKF9JT19GSUxFICogX19yZXN0cmljdCwgY29uc3QgY2hh
ciAqIF9fcmVzdHJpY3QsDQkJCSAgICAgX19nbnVjX3ZhX2xpc3QgLCBpbnQgKl9fcmVzdHJpY3Qp
ICAgIDsNZXh0ZXJuIGludCBfSU9fdmZwcmludGYgIChfSU9fRklMRSAqX19yZXN0cmljdCwgY29u
c3QgY2hhciAqX19yZXN0cmljdCwNCQkJICAgICAgX19nbnVjX3ZhX2xpc3QgKSAgICA7DWV4dGVy
biBfX3NzaXplX3QgICBfSU9fcGFkbiAgKF9JT19GSUxFICosIGludCwgX19zc2l6ZV90ICApICAg
IDsNZXh0ZXJuIHNpemVfdCAgIF9JT19zZ2V0biAgKF9JT19GSUxFICosIHZvaWQgKiwgc2l6ZV90
ICApICAgIDsNDWV4dGVybiBfX29mZjY0X3QgICBfSU9fc2Vla29mZiAgKF9JT19GSUxFICosIF9f
b2ZmNjRfdCAgLCBpbnQsIGludCkgICAgOw1leHRlcm4gX19vZmY2NF90ICAgX0lPX3NlZWtwb3Mg
IChfSU9fRklMRSAqLCBfX29mZjY0X3QgICwgaW50KSAgICA7DQ1leHRlcm4gdm9pZCBfSU9fZnJl
ZV9iYWNrdXBfYXJlYSAgKF9JT19GSUxFICopICAgIDsNDQ0NDQ0NIyA1NyAiL3Vzci9pbmNsdWRl
L3N0ZGlvLmgiIDIgMw0NDSANDXR5cGVkZWYgX19vZmZfdCAgZnBvc190Ow0NDQ0NDQ0NIA0NDQ0N
DSANDQ0NDQ0gDQ0NDQ0NDSANDQ0NDQ0NDSANDQ0NDSANDQ0NDQ0NDQ0jIDEgIi91c3IvaW5jbHVk
ZS9iaXRzL3N0ZGlvX2xpbS5oIiAxIDMNIA0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
DQ0NDQ0jIDExMCAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDIgMw0NDQ0gDWV4dGVybiBGSUxFICpz
dGRpbjsJCSANZXh0ZXJuIEZJTEUgKnN0ZG91dDsJCSANZXh0ZXJuIEZJTEUgKnN0ZGVycjsJCSAN
IA0NDQ0NDSANZXh0ZXJuIGludCByZW1vdmUgIChfX2NvbnN0IGNoYXIgKl9fZmlsZW5hbWUpICAg
IDsNIA1leHRlcm4gaW50IHJlbmFtZSAgKF9fY29uc3QgY2hhciAqX19vbGQsIF9fY29uc3QgY2hh
ciAqX19uZXcpICAgIDsNDQ0gDQ1leHRlcm4gRklMRSAqdG1wZmlsZSAgKHZvaWQpICAgIDsNDQ0N
DQ0NDQ0NDSANZXh0ZXJuIGNoYXIgKnRtcG5hbSAgKGNoYXIgKl9fcykgICAgOw0NDSANDWV4dGVy
biBjaGFyICp0bXBuYW1fciAgKGNoYXIgKl9fcykgICAgOw0NDQ0NIA0NDQ0NDQ1leHRlcm4gY2hh
ciAqdGVtcG5hbSAgKF9fY29uc3QgY2hhciAqX19kaXIsIF9fY29uc3QgY2hhciAqX19wZngpICAg
IDsNDQ0NIA1leHRlcm4gaW50IGZjbG9zZSAgKEZJTEUgKl9fc3RyZWFtKSAgICA7DSANZXh0ZXJu
IGludCBmZmx1c2ggIChGSUxFICpfX3N0cmVhbSkgICAgOw0NDSANZXh0ZXJuIGludCBmZmx1c2hf
dW5sb2NrZWQgIChGSUxFICpfX3N0cmVhbSkgICAgOw0NDQ0NDQ0NDQ0gDWV4dGVybiBGSUxFICpm
b3BlbiAgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZpbGVuYW1lLA0JCQkgX19jb25zdCBj
aGFyICpfX3Jlc3RyaWN0IF9fbW9kZXMpICAgIDsNIA1leHRlcm4gRklMRSAqZnJlb3BlbiAgKF9f
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX2ZpbGVuYW1lLA0JCQkgICBfX2NvbnN0IGNoYXIgKl9f
cmVzdHJpY3QgX19tb2RlcywNCQkJICAgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgICAgOw0j
IDIwMSAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMNDQ0NDQ0NDQ0NDSANZXh0ZXJuIEZJTEUgKmZk
b3BlbiAgKGludCBfX2ZkLCBfX2NvbnN0IGNoYXIgKl9fbW9kZXMpICAgIDsNDQ0jIDIyNyAiL3Vz
ci9pbmNsdWRlL3N0ZGlvLmgiIDMNDQ0NIA0NZXh0ZXJuIHZvaWQgc2V0YnVmICAoRklMRSAqX19y
ZXN0cmljdCBfX3N0cmVhbSwgY2hhciAqX19yZXN0cmljdCBfX2J1ZikgICAgOw0gDQ0NZXh0ZXJu
IGludCBzZXR2YnVmICAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwgY2hhciAqX19yZXN0cmlj
dCBfX2J1ZiwNCQkJIGludCBfX21vZGVzLCBzaXplX3QgX19uKSAgICA7DQ0NIA0NZXh0ZXJuIHZv
aWQgc2V0YnVmZmVyICAoRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSwgY2hhciAqX19yZXN0cmlj
dCBfX2J1ZiwNCQkJICAgIHNpemVfdCBfX3NpemUpICAgIDsNDSANZXh0ZXJuIHZvaWQgc2V0bGlu
ZWJ1ZiAgKEZJTEUgKl9fc3RyZWFtKSAgICA7DQ0NDSANZXh0ZXJuIGludCBmcHJpbnRmICAoRklM
RSAqX19yZXN0cmljdCBfX3N0cmVhbSwNCQkJIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zv
cm1hdCwgLi4uKSAgICA7DSANZXh0ZXJuIGludCBwcmludGYgIChfX2NvbnN0IGNoYXIgKl9fcmVz
dHJpY3QgX19mb3JtYXQsIC4uLikgICAgOw0gDWV4dGVybiBpbnQgc3ByaW50ZiAgKGNoYXIgKl9f
cmVzdHJpY3QgX19zLA0JCQkgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4p
ICAgIDsNDSANZXh0ZXJuIGludCB2ZnByaW50ZiAgKEZJTEUgKl9fcmVzdHJpY3QgX19zLA0JCQkg
IF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwNCQkJICBfX2dudWNfdmFfbGlzdCAg
X19hcmcpICAgIDsNIA1leHRlcm4gaW50IHZwcmludGYgIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJp
Y3QgX19mb3JtYXQsDQkJCSBfX2dudWNfdmFfbGlzdCAgX19hcmcpICAgIDsNIA1leHRlcm4gaW50
IHZzcHJpbnRmICAoY2hhciAqX19yZXN0cmljdCBfX3MsDQkJCSAgX19jb25zdCBjaGFyICpfX3Jl
c3RyaWN0IF9fZm9ybWF0LA0JCQkgIF9fZ251Y192YV9saXN0ICBfX2FyZykgICAgOw0NDSANZXh0
ZXJuIGludCBzbnByaW50ZiAgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19tYXhsZW4s
DQkJCSAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pICAgIA0gICAgIF9f
YXR0cmlidXRlX18gKChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAzLCA0KSkpOw0NZXh0ZXJuIGlu
dCBfX3ZzbnByaW50ZiAgKGNoYXIgKl9fcmVzdHJpY3QgX19zLCBzaXplX3QgX19tYXhsZW4sDQkJ
CSAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LA0JCQkgICAgIF9fZ251Y192
YV9saXN0ICBfX2FyZykgICAgDSAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJp
bnRmX18sIDMsIDApKSk7DWV4dGVybiBpbnQgdnNucHJpbnRmICAoY2hhciAqX19yZXN0cmljdCBf
X3MsIHNpemVfdCBfX21heGxlbiwNCQkJICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9y
bWF0LA0JCQkgICBfX2dudWNfdmFfbGlzdCAgX19hcmcpICAgIA0gICAgIF9fYXR0cmlidXRlX18g
KChfX2Zvcm1hdF9fIChfX3ByaW50Zl9fLCAzLCAwKSkpOw0NDSMgMzA2ICIvdXNyL2luY2x1ZGUv
c3RkaW8uaCIgMw0NDQ0gDWV4dGVybiBpbnQgZnNjYW5mICAoRklMRSAqX19yZXN0cmljdCBfX3N0
cmVhbSwNCQkJX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pICAgIDsNIA1l
eHRlcm4gaW50IHNjYW5mICAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4p
ICAgIDsNIA1leHRlcm4gaW50IHNzY2FuZiAgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3Ms
DQkJCV9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSAgICA7DQ0jIDMzNCAi
L3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMNDQ0NIA1leHRlcm4gaW50IGZnZXRjICAoRklMRSAqX19z
dHJlYW0pICAgIDsNZXh0ZXJuIGludCBnZXRjICAoRklMRSAqX19zdHJlYW0pICAgIDsNDSANZXh0
ZXJuIGludCBnZXRjaGFyICAodm9pZCkgICAgOw0NIA0NDQ0NIA1leHRlcm4gaW50IGdldGNfdW5s
b2NrZWQgIChGSUxFICpfX3N0cmVhbSkgICAgOw1leHRlcm4gaW50IGdldGNoYXJfdW5sb2NrZWQg
ICh2b2lkKSAgICA7DQ0NDSANZXh0ZXJuIGludCBmZ2V0Y191bmxvY2tlZCAgKEZJTEUgKl9fc3Ry
ZWFtKSAgICA7DQ0NDSANZXh0ZXJuIGludCBmcHV0YyAgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFt
KSAgICA7DWV4dGVybiBpbnQgcHV0YyAgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSAgICA7DQ0g
DWV4dGVybiBpbnQgcHV0Y2hhciAgKGludCBfX2MpICAgIDsNDSANDQ0NDSANZXh0ZXJuIGludCBm
cHV0Y191bmxvY2tlZCAgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSAgICA7DQ0NDSANZXh0ZXJu
IGludCBwdXRjX3VubG9ja2VkICAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pICAgIDsNZXh0ZXJu
IGludCBwdXRjaGFyX3VubG9ja2VkICAoaW50IF9fYykgICAgOw0NDQ0NIA1leHRlcm4gaW50IGdl
dHcgIChGSUxFICpfX3N0cmVhbSkgICAgOw0NIA1leHRlcm4gaW50IHB1dHcgIChpbnQgX193LCBG
SUxFICpfX3N0cmVhbSkgICAgOw0NDQ0gDWV4dGVybiBjaGFyICpmZ2V0cyAgKGNoYXIgKl9fcmVz
dHJpY3QgX19zLCBpbnQgX19uLA0JCQkgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgICAgOw0N
DQ0NDQ0NIA0NZXh0ZXJuIGNoYXIgKmdldHMgIChjaGFyICpfX3MpICAgIDsNDQ0jIDQyNCAiL3Vz
ci9pbmNsdWRlL3N0ZGlvLmgiIDMNDQ0NIA1leHRlcm4gaW50IGZwdXRzICAoX19jb25zdCBjaGFy
ICpfX3Jlc3RyaWN0IF9fcywNCQkgICAgICAgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgICAg
Ow0NDQ0NDQ0NIA1leHRlcm4gaW50IHB1dHMgIChfX2NvbnN0IGNoYXIgKl9fcykgICAgOw0NDSAN
ZXh0ZXJuIGludCB1bmdldGMgIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkgICAgOw0NDSANZXh0
ZXJuIHNpemVfdCBmcmVhZCAgKHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNpemVfdCBfX3NpemUs
DQkJCSAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgICAgOw0gDWV4dGVy
biBzaXplX3QgZndyaXRlICAoX19jb25zdCB2b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3Qg
X19zaXplLA0JCQkgICBzaXplX3QgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fcykgICAgOw0NDSAN
ZXh0ZXJuIHNpemVfdCBmcmVhZF91bmxvY2tlZCAgKHZvaWQgKl9fcmVzdHJpY3QgX19wdHIsIHNp
emVfdCBfX3NpemUsDQkJCQkgICBzaXplX3QgX19uLCBGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFt
KSAgICA7DWV4dGVybiBzaXplX3QgZndyaXRlX3VubG9ja2VkICAoX19jb25zdCB2b2lkICpfX3Jl
c3RyaWN0IF9fcHRyLA0JCQkJICAgIHNpemVfdCBfX3NpemUsIHNpemVfdCBfX24sDQkJCQkgICAg
RklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgICAgOw0NDQ0gDWV4dGVybiBpbnQgZnNlZWsgIChG
SUxFICpfX3N0cmVhbSwgbG9uZyBpbnQgX19vZmYsIGludCBfX3doZW5jZSkgICAgOw0gDWV4dGVy
biBsb25nIGludCBmdGVsbCAgKEZJTEUgKl9fc3RyZWFtKSAgICA7DSANZXh0ZXJuIHZvaWQgcmV3
aW5kICAoRklMRSAqX19zdHJlYW0pICAgIDsNDSANDQ0NDSANDQ10eXBlZGVmIF9fb2ZmX3Qgb2Zm
X3Q7DQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NIA1leHRlcm4gaW50IGZnZXRwb3MgIChGSUxFICpfX3Jl
c3RyaWN0IF9fc3RyZWFtLA0JCQkgZnBvc190ICpfX3Jlc3RyaWN0IF9fcG9zKSAgICA7DSANZXh0
ZXJuIGludCBmc2V0cG9zICAoRklMRSAqX19zdHJlYW0sIF9fY29uc3QgZnBvc190ICpfX3Bvcykg
ICAgOw0jIDUyMyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMNDQ0jIDUzMyAiL3Vzci9pbmNsdWRl
L3N0ZGlvLmgiIDMNDQ0gDWV4dGVybiB2b2lkIGNsZWFyZXJyICAoRklMRSAqX19zdHJlYW0pICAg
IDsNIA1leHRlcm4gaW50IGZlb2YgIChGSUxFICpfX3N0cmVhbSkgICAgOw0gDWV4dGVybiBpbnQg
ZmVycm9yICAoRklMRSAqX19zdHJlYW0pICAgIDsNDQ0gDWV4dGVybiB2b2lkIGNsZWFyZXJyX3Vu
bG9ja2VkICAoRklMRSAqX19zdHJlYW0pICAgIDsNZXh0ZXJuIGludCBmZW9mX3VubG9ja2VkICAo
RklMRSAqX19zdHJlYW0pICAgIDsNZXh0ZXJuIGludCBmZXJyb3JfdW5sb2NrZWQgIChGSUxFICpf
X3N0cmVhbSkgICAgOw0NDQ0gDWV4dGVybiB2b2lkIHBlcnJvciAgKF9fY29uc3QgY2hhciAqX19z
KSAgICA7DQ0gDQ0NZXh0ZXJuIGludCBzeXNfbmVycjsNZXh0ZXJuIF9fY29uc3QgY2hhciAqX19j
b25zdCBzeXNfZXJybGlzdFtdOw0NDQ0NDQ0NDSANZXh0ZXJuIGludCBmaWxlbm8gIChGSUxFICpf
X3N0cmVhbSkgICAgOw0NDQ0gDWV4dGVybiBpbnQgZmlsZW5vX3VubG9ja2VkICAoRklMRSAqX19z
dHJlYW0pICAgIDsNDQ0NDQ0gDWV4dGVybiBGSUxFICpwb3BlbiAgKF9fY29uc3QgY2hhciAqX19j
b21tYW5kLCBfX2NvbnN0IGNoYXIgKl9fbW9kZXMpICAgIDsNDSANZXh0ZXJuIGludCBwY2xvc2Ug
IChGSUxFICpfX3N0cmVhbSkgICAgOw0NDQ0NIA1leHRlcm4gY2hhciAqY3Rlcm1pZCAgKGNoYXIg
Kl9fcykgICAgOw0NDQ0NDQ0NDQ0jIDYwNyAiL3Vzci9pbmNsdWRlL3N0ZGlvLmgiIDMNDQ0NDSAN
DSANZXh0ZXJuIHZvaWQgZmxvY2tmaWxlICAoRklMRSAqX19zdHJlYW0pICAgIDsNDSANDWV4dGVy
biBpbnQgZnRyeWxvY2tmaWxlICAoRklMRSAqX19zdHJlYW0pICAgIDsNDSANZXh0ZXJuIHZvaWQg
ZnVubG9ja2ZpbGUgIChGSUxFICpfX3N0cmVhbSkgICAgOw0NDQ0NDQ0NDQ0NIA0NDSMgMSAiL3Vz
ci9pbmNsdWRlL2JpdHMvc3RkaW8uaCIgMSAzDSANDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
DQ0gDWV4dGVybiBfX2lubGluZSAgaW50DXZwcmludGYgKF9fY29uc3QgY2hhciAqX19yZXN0cmlj
dCBfX2ZtdCwgX19nbnVjX3ZhX2xpc3QgIF9fYXJnKSAgDXsNICByZXR1cm4gdmZwcmludGYgKHN0
ZG91dCAsIF9fZm10LCBfX2FyZyk7DX0NDSANZXh0ZXJuIF9faW5saW5lICBpbnQNZ2V0Y2hhciAo
dm9pZCkgIA17DSAgcmV0dXJuIF9JT19nZXRjIChzdGRpbiApOw19DQ0NDSANZXh0ZXJuIF9faW5s
aW5lICBpbnQNZ2V0Y191bmxvY2tlZCAoRklMRSAqX19mcCkgIA17DSAgcmV0dXJuICgoIF9fZnAg
KS0+X0lPX3JlYWRfcHRyID49ICggX19mcCApLT5fSU9fcmVhZF9lbmQgPyBfX3VmbG93ICggX19m
cCApIDogKih1bnNpZ25lZCBjaGFyICopICggX19mcCApLT5fSU9fcmVhZF9wdHIrKykgOw19DQ0g
DWV4dGVybiBfX2lubGluZSAgaW50DWdldGNoYXJfdW5sb2NrZWQgKHZvaWQpICANew0gIHJldHVy
biAoKCBzdGRpbiAgKS0+X0lPX3JlYWRfcHRyID49ICggc3RkaW4gICktPl9JT19yZWFkX2VuZCA/
IF9fdWZsb3cgKCBzdGRpbiAgKSA6ICoodW5zaWduZWQgY2hhciAqKSAoIHN0ZGluICApLT5fSU9f
cmVhZF9wdHIrKykgOw19DQ0NDSANZXh0ZXJuIF9faW5saW5lICBpbnQNcHV0Y2hhciAoaW50IF9f
YykgIA17DSAgcmV0dXJuIF9JT19wdXRjIChfX2MsIHN0ZG91dCApOw19DQ0NDSANZXh0ZXJuIF9f
aW5saW5lICBpbnQNZnB1dGNfdW5sb2NrZWQgKGludCBfX2MsIEZJTEUgKl9fc3RyZWFtKSAgDXsN
ICByZXR1cm4gKCgoICBfX3N0cmVhbSApLT5fSU9fd3JpdGVfcHRyID49ICggIF9fc3RyZWFtICkt
Pl9JT193cml0ZV9lbmQpID8gX19vdmVyZmxvdyAoICBfX3N0cmVhbSAsICh1bnNpZ25lZCBjaGFy
KSAoIF9fYyApKSA6ICh1bnNpZ25lZCBjaGFyKSAoKiggIF9fc3RyZWFtICktPl9JT193cml0ZV9w
dHIrKyA9ICggX19jICkpKSA7DX0NDQ0NDSANZXh0ZXJuIF9faW5saW5lICBpbnQNcHV0Y191bmxv
Y2tlZCAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pICANew0gIHJldHVybiAoKCggIF9fc3RyZWFt
ICktPl9JT193cml0ZV9wdHIgPj0gKCAgX19zdHJlYW0gKS0+X0lPX3dyaXRlX2VuZCkgPyBfX292
ZXJmbG93ICggIF9fc3RyZWFtICwgKHVuc2lnbmVkIGNoYXIpICggX19jICkpIDogKHVuc2lnbmVk
IGNoYXIpICgqKCAgX19zdHJlYW0gKS0+X0lPX3dyaXRlX3B0cisrID0gKCBfX2MgKSkpIDsNfQ0N
IA1leHRlcm4gX19pbmxpbmUgIGludA1wdXRjaGFyX3VubG9ja2VkIChpbnQgX19jKSAgDXsNICBy
ZXR1cm4gKCgoICBzdGRvdXQgICktPl9JT193cml0ZV9wdHIgPj0gKCAgc3Rkb3V0ICApLT5fSU9f
d3JpdGVfZW5kKSA/IF9fb3ZlcmZsb3cgKCAgc3Rkb3V0ICAsICh1bnNpZ25lZCBjaGFyKSAoIF9f
YyApKSA6ICh1bnNpZ25lZCBjaGFyKSAoKiggIHN0ZG91dCAgKS0+X0lPX3dyaXRlX3B0cisrID0g
KCBfX2MgKSkpIDsNfQ0NDQ0NDQ0NDQ0NDQ0NDSANZXh0ZXJuIF9faW5saW5lICBpbnQNZmVvZl91
bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pICANew0gIHJldHVybiAoKCggX19zdHJlYW0gKS0+X2Zs
YWdzICYgMHgxMCApICE9IDApIDsNfQ0NIA1leHRlcm4gX19pbmxpbmUgIGludA1mZXJyb3JfdW5s
b2NrZWQgKEZJTEUgKl9fc3RyZWFtKSAgDXsNICByZXR1cm4gKCgoIF9fc3RyZWFtICktPl9mbGFn
cyAmIDB4MjAgKSAhPSAwKSA7DX0NDQ0NDQ0NIA0NIyAxNDkgIi91c3IvaW5jbHVkZS9iaXRzL3N0
ZGlvLmgiIDMNDQ0jIDE2NSAiL3Vzci9pbmNsdWRlL2JpdHMvc3RkaW8uaCIgMw0NDSANDSMgNjM1
ICIvdXNyL2luY2x1ZGUvc3RkaW8uaCIgMiAzDQ0NDSANDQ0NDSMgMSAidG90by5jIiAyDQ0jIDEg
Ii91c3IvaW5jbHVkZS9pbnR0eXBlcy5oIiAxIDMNIA0NDQ0NDQ0NDQ0NDQ0NDQ0NDSANDQ0NDQ0N
DSANIyAxICIvdXNyL2luY2x1ZGUvc3RkaW50LmgiIDEgMw0gDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NIA0N
DQ0NDQ0NDSMgMSAiL3Vzci9saWIvZ2NjLWxpYi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUuMy9p
bmNsdWRlL3N0ZGRlZi5oIiAxIDMNDQ0NDQ0NIA0NDSMgMTkgIi91c3IvbGliL2djYy1saWIvaTU4
Ni1tYW5kcmFrZS1saW51eC8yLjk1LjMvaW5jbHVkZS9zdGRkZWYuaCIgMw0NDQ0gDQ0NIA0NDQ0N
DSANDQ0jIDYxICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45NS4zL2lu
Y2x1ZGUvc3RkZGVmLmgiIDMNDQ0gDQ0NDQ0NIA0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0gDQ0NDQ0NIA0N
IA0NIyAxMzEgIi91c3IvbGliL2djYy1saWIvaTU4Ni1tYW5kcmFrZS1saW51eC8yLjk1LjMvaW5j
bHVkZS9zdGRkZWYuaCIgMw0NDSANDSANDSMgMTkwICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFu
ZHJha2UtbGludXgvMi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMNDQ0NIA0NDQ0NIA0NDSMgMjY5
ICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgvMi45NS4zL2luY2x1ZGUvc3Rk
ZGVmLmgiIDMNDQ0NDSMgMjgzICIvdXNyL2xpYi9nY2MtbGliL2k1ODYtbWFuZHJha2UtbGludXgv
Mi45NS4zL2luY2x1ZGUvc3RkZGVmLmgiIDMNDQ0gDQ0gDQ0jIDMxNyAiL3Vzci9saWIvZ2NjLWxp
Yi9pNTg2LW1hbmRyYWtlLWxpbnV4LzIuOTUuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzDQ0NDQ0gDQ0N
DQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDSMgMjggIi91c3IvaW5jbHVkZS9zdGRpbnQuaCIgMiAzDQ0jIDEg
Ii91c3IvaW5jbHVkZS9iaXRzL3dvcmRzaXplLmgiIDEgMw0gDQ0NDQ0NDQ0NDQ0NDQ0NDQ0NDSMg
MjkgIi91c3IvaW5jbHVkZS9zdGRpbnQuaCIgMiAzDQ0NIA0NIA0NIA0NDXR5cGVkZWYgc2lnbmVk
IGNoYXIJCWludDhfdDsNdHlwZWRlZiBzaG9ydCBpbnQJCWludDE2X3Q7DXR5cGVkZWYgaW50CQkJ
aW50MzJfdDsNDQ0NX19leHRlbnNpb25fXw10eXBlZGVmIGxvbmcgbG9uZyBpbnQJCWludDY0X3Q7
DQ0NDSANdHlwZWRlZiB1bnNpZ25lZCBjaGFyCQl1aW50OF90Ow10eXBlZGVmIHVuc2lnbmVkIHNo
b3J0IGludAl1aW50MTZfdDsNdHlwZWRlZiB1bnNpZ25lZCBpbnQJCXVpbnQzMl90Ow0NDQ1fX2V4
dGVuc2lvbl9fDXR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludAl1aW50NjRfdDsNDQ0NIA0N
IA10eXBlZGVmIHNpZ25lZCBjaGFyCQlpbnRfbGVhc3Q4X3Q7DXR5cGVkZWYgc2hvcnQgaW50CQlp
bnRfbGVhc3QxNl90Ow10eXBlZGVmIGludAkJCWludF9sZWFzdDMyX3Q7DQ0NDV9fZXh0ZW5zaW9u
X18NdHlwZWRlZiBsb25nIGxvbmcgaW50CQlpbnRfbGVhc3Q2NF90Ow0NDSANdHlwZWRlZiB1bnNp
Z25lZCBjaGFyCQl1aW50X2xlYXN0OF90Ow10eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludAl1aW50
X2xlYXN0MTZfdDsNdHlwZWRlZiB1bnNpZ25lZCBpbnQJCXVpbnRfbGVhc3QzMl90Ow0NDQ1fX2V4
dGVuc2lvbl9fDXR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25nIGludAl1aW50X2xlYXN0NjRfdDsN
DQ0NIA0NIA10eXBlZGVmIHNpZ25lZCBjaGFyCQlpbnRfZmFzdDhfdDsNDQ0NDQ10eXBlZGVmIGlu
dAkJCWludF9mYXN0MTZfdDsNdHlwZWRlZiBpbnQJCQlpbnRfZmFzdDMyX3Q7DV9fZXh0ZW5zaW9u
X18NdHlwZWRlZiBsb25nIGxvbmcgaW50CQlpbnRfZmFzdDY0X3Q7DQ0NIA10eXBlZGVmIHVuc2ln
bmVkIGNoYXIJCXVpbnRfZmFzdDhfdDsNDQ0NDQ10eXBlZGVmIHVuc2lnbmVkIGludAkJdWludF9m
YXN0MTZfdDsNdHlwZWRlZiB1bnNpZ25lZCBpbnQJCXVpbnRfZmFzdDMyX3Q7DV9fZXh0ZW5zaW9u
X18NdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgaW50CXVpbnRfZmFzdDY0X3Q7DQ0NDSANDQ0N
DQ0NDQ10eXBlZGVmIGludAkJCWludHB0cl90Ow0NDXR5cGVkZWYgdW5zaWduZWQgaW50CQl1aW50
cHRyX3Q7DQ0NDSANDQ0NDV9fZXh0ZW5zaW9uX18NdHlwZWRlZiBsb25nIGxvbmcgaW50CQlpbnRt
YXhfdDsNX19leHRlbnNpb25fXw10eXBlZGVmIHVuc2lnbmVkIGxvbmcgbG9uZyBpbnQJdWludG1h
eF90Ow0NDQ0gDQ0NDQ0NDQ0NDQ0NIA0NIA0NDQ0NIA0NDQ0NDSANDQ0NDQ0NIA0NDQ0NIA0NDQ0N
DSANDQ0NDQ0NIA0NDQ0NDQ0NDQ0gDQ0NDQ0NDQ0NDQ0gDQ0NDQ0NDQ0NDQ0NIA0NDQ0NDQ0NDQ0N
DSANDSANDQ0gDQ0NDSANDSANDQ0NDQ0NDQ0gDQ0NDSANDQ0NDQ0NIA0NIA0NDQ0NIA0NDQ0NDQ0g
DQ0NDSANDQ0NDQ0NDQ0NIA0NDQ0NDQ0NDQ0gDQ0NDQ0NDQ0NDQ0NIyAyOCAiL3Vzci9pbmNsdWRl
L2ludHR5cGVzLmgiIDIgMw0NDQ0gDQ0NDQ0NDQ0NDQ0NIA0NIA0NDQ0NDQ0NDQ0NDQ0NDQ0NDQ0N
DQ0NDQ0NDQ0NDQ0NIA0NDQ0NDQ0NDQ0NDQ0NDQ0gDQ0NDQ0NDQ0NDQ0NDQ0NDSANDQ0NDQ0NDQ0N
DQ0NDQ0NIA0NDQ0NDQ0NDQ0NDQ0NDQ0NIA0NDQ0NDQ0NDSANDQ0NDQ0NDQ0gDQ0gDQ0NDQ0NDQ0N
DQ0NDQ0NDSANDQ0NDQ0NDQ0NDQ0NDQ0NIA0NDQ0NDQ0NDQ0NDQ0NDQ0gDQ0NDQ0NDQ0NDQ0NDQ0N
DSANDQ0NDQ0NDQ0NDQ0NDQ0NDSANDQ0NDQ0NIA0NDQ0NDQ0NDQ0gDQ0jIDI3OCAiL3Vzci9pbmNs
dWRlL2ludHR5cGVzLmgiIDMNDQ0gDQ0gDV9fZXh0ZW5zaW9uX18gdHlwZWRlZiBzdHJ1Y3QNICB7
DSAgICBsb25nIGxvbmcgaW50IHF1b3Q7CQkgDSAgICBsb25nIGxvbmcgaW50IHJlbTsJCSANICB9
IGxsZGl2X3Q7DQ0NDSANdHlwZWRlZiBsbGRpdl90IGltYXhkaXZfdDsNDQ0NDSANZXh0ZXJuIGlu
dG1heF90IGltYXhhYnMgIChpbnRtYXhfdCBfX24pICAgICBfX2F0dHJpYnV0ZV9fICgoX19jb25z
dF9fKSk7DQ0gDWV4dGVybiBpbWF4ZGl2X3QgaW1heGRpdiAgKGludG1heF90IF9fbnVtZXIsIGlu
dG1heF90IF9fZGVub20pICAgIA0gICAgIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsNDSAN
ZXh0ZXJuIGludG1heF90IHN0cnRvaW1heCAgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25w
dHIsDQkJCQljaGFyICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fYmFzZSkgICAgOw0NIA1l
eHRlcm4gdWludG1heF90IHN0cnRvdW1heCAgKF9fY29uc3QgY2hhciAqIF9fcmVzdHJpY3QgX19u
cHRyLA0JCQkJIGNoYXIgKiogX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fYmFzZSkgICAgOw0N
IA1leHRlcm4gaW50bWF4X3Qgd2NzdG9pbWF4ICAoX19jb25zdCB3Y2hhcl90ICogX19yZXN0cmlj
dCBfX25wdHIsDQkJCQl3Y2hhcl90ICoqX19yZXN0cmljdCBfX2VuZHB0ciwgaW50IF9fYmFzZSkg
ICAgOw0NIA1leHRlcm4gdWludG1heF90IHdjc3RvdW1heCAgKF9fY29uc3Qgd2NoYXJfdCAqIF9f
cmVzdHJpY3QgX19ucHRyLA0JCQkJIHdjaGFyX3QgKiogX19yZXN0cmljdCBfX2VuZHB0ciwgaW50
IF9fYmFzZSkgICAgOw0NDQ0jIDQwNiAiL3Vzci9pbmNsdWRlL2ludHR5cGVzLmgiIDMNDQ0gDQ1f
X2V4dGVuc2lvbl9fIGV4dGVybiBsb25nIGxvbmcgaW50IGxsYWJzICAobG9uZyBsb25nIGludCBf
X3gpICAgIA0gICAgIF9fYXR0cmlidXRlX18gKChfX2NvbnN0X18pKTsNX19leHRlbnNpb25fXyBl
eHRlcm4gbGxkaXZfdCBsbGRpdiAgKGxvbmcgbG9uZyBpbnQgX19udW1lciwNCQkJCQkgbG9uZyBs
b25nIGludCBfX2Rlbm9tKSAgICANICAgICBfX2F0dHJpYnV0ZV9fICgoX19jb25zdF9fKSk7DQ0N
IA1leHRlcm4gX19pbmxpbmUgaW50bWF4X3QNaW1heGFicyAoaW50bWF4X3QgX19uKSAgDXsNICBy
ZXR1cm4gbGxhYnMgKF9fbik7DX0NDSANZXh0ZXJuIF9faW5saW5lIGltYXhkaXZfdA1pbWF4ZGl2
IChpbnRtYXhfdCBfX251bWVyLCBpbnRtYXhfdCBfX2Rlbm9tKSAgDXsNICByZXR1cm4gbGxkaXYg
KF9fbnVtZXIsIF9fZGVub20pOw19DQ0gDQ1fX2V4dGVuc2lvbl9fDWV4dGVybiBsb25nIGxvbmcg
aW50IF9fc3RydG9sbF9pbnRlcm5hbCAgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX25wdHIs
DQkJCQkJICAgICAgY2hhciAqKl9fcmVzdHJpY3QgX19lbmRwdHIsDQkJCQkJICAgICAgaW50IF9f
YmFzZSwgaW50IF9fZ3JvdXApICAgIDsNDQ1leHRlcm4gX19pbmxpbmUgaW50bWF4X3QNc3RydG9p
bWF4IChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgbnB0ciwgY2hhciAqKl9fcmVzdHJpY3QgZW5k
cHRyLA0JICAgaW50IGJhc2UpICANew0gIHJldHVybiBfX3N0cnRvbGxfaW50ZXJuYWwgKG5wdHIs
IGVuZHB0ciwgYmFzZSwgMCk7DX0NDSANDV9fZXh0ZW5zaW9uX18NZXh0ZXJuIHVuc2lnbmVkIGxv
bmcgbG9uZyBpbnQgX19zdHJ0b3VsbF9pbnRlcm5hbCAgKF9fY29uc3QgY2hhciAqDQkJCQkJCQlf
X3Jlc3RyaWN0IF9fbnB0ciwNCQkJCQkJCWNoYXIgKioNCQkJCQkJCV9fcmVzdHJpY3QgX19lbmRw
dHIsDQkJCQkJCQlpbnQgX19iYXNlLA0JCQkJCQkJaW50IF9fZ3JvdXApICAgIDsNDQ1leHRlcm4g
X19pbmxpbmUgdWludG1heF90DXN0cnRvdW1heCAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IG5w
dHIsIGNoYXIgKipfX3Jlc3RyaWN0IGVuZHB0ciwNCSAgIGludCBiYXNlKSAgDXsNICByZXR1cm4g
X19zdHJ0b3VsbF9pbnRlcm5hbCAobnB0ciwgZW5kcHRyLCBiYXNlLCAwKTsNfQ0NIA0NX19leHRl
bnNpb25fXw1leHRlcm4gbG9uZyBsb25nIGludCBfX3djc3RvbGxfaW50ZXJuYWwgIChfX2NvbnN0
IHdjaGFyX3QgKg0JCQkJCSAgICAgIF9fcmVzdHJpY3QgX19ucHRyLA0JCQkJCSAgICAgIHdjaGFy
X3QgKipfX3Jlc3RyaWN0IF9fZW5kcHRyLA0JCQkJCSAgICAgIGludCBfX2Jhc2UsIGludCBfX2dy
b3VwKSAgICA7DQ0NZXh0ZXJuIF9faW5saW5lIGludG1heF90DXdjc3RvaW1heCAoX19jb25zdCB3
Y2hhcl90ICpfX3Jlc3RyaWN0IG5wdHIsIHdjaGFyX3QgKipfX3Jlc3RyaWN0IGVuZHB0ciwNCSAg
IGludCBiYXNlKSAgDXsNICByZXR1cm4gX193Y3N0b2xsX2ludGVybmFsIChucHRyLCBlbmRwdHIs
IGJhc2UsIDApOw19DQ0NIA0NX19leHRlbnNpb25fXw1leHRlcm4gdW5zaWduZWQgbG9uZyBsb25n
IGludCBfX3djc3RvdWxsX2ludGVybmFsICAoX19jb25zdCB3Y2hhcl90ICoNCQkJCQkJCV9fcmVz
dHJpY3QgX19ucHRyLA0JCQkJCQkJd2NoYXJfdCAqKg0JCQkJCQkJX19yZXN0cmljdCBfX2VuZHB0
ciwNCQkJCQkJCWludCBfX2Jhc2UsDQkJCQkJCQlpbnQgX19ncm91cCkgICAgOw0NDWV4dGVybiBf
X2lubGluZSB1aW50bWF4X3QNd2NzdG91bWF4IChfX2NvbnN0IHdjaGFyX3QgKl9fcmVzdHJpY3Qg
bnB0ciwgd2NoYXJfdCAqKl9fcmVzdHJpY3QgZW5kcHRyLA0JICAgaW50IGJhc2UpICANew0gIHJl
dHVybiBfX3djc3RvdWxsX2ludGVybmFsIChucHRyLCBlbmRwdHIsIGJhc2UsIDApOw19DQ0NDQ0g
DQ0NIyAyICJ0b3RvLmMiIDINDQ12b2lkICBMT05HTE9ORzIyREJMKGludG1heF90IGwpDXsNIGRv
dWJsZSBkMSwgZDI7DSB2b2xhdGlsZSBpbnRtYXhfdCBsMTsNIGQxID0gbDsNIGQyID0gZDE7DSBs
MSA9IGQxOw0gaWYgKCBsPGwxICkNIHsNICAgcHJpbnRmKCJsPGwxXG4iKTsNIH0NIGVsc2UgaWYg
KCBsPmwxICkNIHsNICBwcmludGYoImw+bDFcbiIpOw0gfQ19DQ0NaW50IG1haW4oKQ17DSBpbnRt
YXhfdCB2PTE7DSB2IDw8PTYxOw0gcHJpbnRmKCJ2PSUiImxsIiAgImkiICJcbiIsdik7DSBMT05H
TE9ORzIyREJMKHYpOw0gdis9MTsNIHByaW50Zigidj0lIiJsbCIgICJpIiAiXG4iLHYpOw0gTE9O
R0xPTkcyMkRCTCh2KTsNIHYtPTI7DSBwcmludGYoInY9JSIibGwiICAiaSIgIlxuIix2KTsNIExP
TkdMT05HMjJEQkwodik7DSByZXR1cm4gMDsNfQ0=
More information about the Gcc-bugs
mailing list