This is the mail archive of the gcc-prs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

optimization/7930: ICE in ARM backend


>Number:         7930
>Category:       optimization
>Synopsis:       ICE in ARM backend
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    unassigned
>State:          open
>Class:          ice-on-legal-code
>Submitter-Id:   net
>Arrival-Date:   Mon Sep 16 07:16:02 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Scott Bambrough
>Release:        GCC 3.3 mainline
>Organization:
>Environment:
Reading specs from /usr/lib/gcc-lib/armv4l-unknown-linux-gnu/3.3/specs
Configured with: ../mainline/configure --prefix=/usr --enable-shared --with-cpu=strongarm
Thread model: posix
gcc version 3.3 20020912 (experimental)
>Description:
gcc version 3.3 20020912 (experimental)
 /usr/lib/gcc-lib/armv4l-unknown-linux-gnu/3.3/cc1 -fpreprocessed mktime.i -quiet -dumpbase mktime.i -auxbase mktime -O3 -version -o /tmp/cc12eOs6.s
GNU C version 3.3 20020912 (experimental) (armv4l-unknown-linux-gnu)
	compiled by GNU C version 3.3 20020912 (experimental).
mktime.c: In function `__mktime_internal':
mktime.c:385: internal compiler error: in arm_rtx_costs, at config/arm/arm.c:2857

The code is trying to evaluate the cost of the following rtx:

(sign_extend:DI (const_int 492 [0x1ec]))

The docs say that for all conversions like sign_extend:M X, X must not be VOIDmode.  const_int have mode VOIDmode however.  Thus the above rtx is invalid.

I haven't been able to track down how the above rtx is generated.
>How-To-Repeat:
Compile the attached file with -O3 to get the error.  Compilation at -O2 or less will succeed.
>Fix:

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

IyAxICJta3RpbWUuYyIKIyAxICI8YnVpbHQtaW4+IgojIDEgIjxjb21tYW5kIGxpbmU+IgoKCgoK
CgojIDEgIi4uL2luY2x1ZGUvbGliYy1zeW1ib2xzLmgiIDEKIyA1NCAiLi4vaW5jbHVkZS9saWJj
LXN5bWJvbHMuaCIKIyAxICIvdXNyL3NyYy9yZWRoYXQvQlVJTEQvZ2xpYmMtMi4yLjkwL2J1aWxk
LWFybXY0bC1saW51eC9jb25maWcuaCIgMQojIDU1ICIuLi9pbmNsdWRlL2xpYmMtc3ltYm9scy5o
IiAyCiMgOCAiPGNvbW1hbmQgbGluZT4iIDIKIyAxICJta3RpbWUuYyIKIyA0MSAibWt0aW1lLmMi
CiMgMSAiLi4vaW5jbHVkZS9zeXMvdHlwZXMuaCIgMQojIDEgIi4uL3Bvc2l4L3N5cy90eXBlcy5o
IiAxCiMgMjYgIi4uL3Bvc2l4L3N5cy90eXBlcy5oIgojIDEgIi4uL2luY2x1ZGUvZmVhdHVyZXMu
aCIgMQojIDI5MSAiLi4vaW5jbHVkZS9mZWF0dXJlcy5oIgojIDEgIi4uL2luY2x1ZGUvc3lzL2Nk
ZWZzLmgiIDEKIyAxICIuLi9taXNjL3N5cy9jZGVmcy5oIiAxCiMgMiAiLi4vaW5jbHVkZS9zeXMv
Y2RlZnMuaCIgMgojIDI5MiAiLi4vaW5jbHVkZS9mZWF0dXJlcy5oIiAyCiMgMjcgIi4uL3Bvc2l4
L3N5cy90eXBlcy5oIiAyCgoKCiMgMSAiLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgvYml0cy90
eXBlcy5oIiAxCiMgMjkgIi4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvdHlwZXMuaCIK
IyAxICIvdXNyL2xpYi9nY2MtbGliL2FybXY0bC11bmtub3duLWxpbnV4LWdudS8zLjMvaW5jbHVk
ZS9zdGRkZWYuaCIgMSAzIDQKIyAyMDMgIi91c3IvbGliL2djYy1saWIvYXJtdjRsLXVua25vd24t
bGludXgtZ251LzMuMy9pbmNsdWRlL3N0ZGRlZi5oIiAzIDQKdHlwZWRlZiB1bnNpZ25lZCBpbnQg
c2l6ZV90OwojIDMwICIuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9iaXRzL3R5cGVzLmgiIDIK
Cgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191X2NoYXI7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQg
X191X3Nob3J0Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VfaW50Owp0eXBlZGVmIHVuc2lnbmVk
IGxvbmcgX191X2xvbmc7CgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5zaWduZWQgbG9uZyBsb25n
IGludCBfX3VfcXVhZF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgbG9uZyBsb25nIGludCBfX3F1
YWRfdDsKIyA0OSAiLi4vc3lzZGVwcy91bml4L3N5c3YvbGludXgvYml0cy90eXBlcy5oIgp0eXBl
ZGVmIHNpZ25lZCBjaGFyIF9faW50OF90Owp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191aW50OF90
Owp0eXBlZGVmIHNpZ25lZCBzaG9ydCBpbnQgX19pbnQxNl90Owp0eXBlZGVmIHVuc2lnbmVkIHNo
b3J0IGludCBfX3VpbnQxNl90Owp0eXBlZGVmIHNpZ25lZCBpbnQgX19pbnQzMl90Owp0eXBlZGVm
IHVuc2lnbmVkIGludCBfX3VpbnQzMl90OwoKX19leHRlbnNpb25fXyB0eXBlZGVmIHNpZ25lZCBs
b25nIGxvbmcgaW50IF9faW50NjRfdDsKX19leHRlbnNpb25fXyB0eXBlZGVmIHVuc2lnbmVkIGxv
bmcgbG9uZyBpbnQgX191aW50NjRfdDsKCnR5cGVkZWYgX19xdWFkX3QgKl9fcWFkZHJfdDsKCnR5
cGVkZWYgX191X3F1YWRfdCBfX2Rldl90Owp0eXBlZGVmIF9fdV9pbnQgX191aWRfdDsKdHlwZWRl
ZiBfX3VfaW50IF9fZ2lkX3Q7CnR5cGVkZWYgX191X2xvbmcgX19pbm9fdDsKdHlwZWRlZiBfX3Vf
aW50IF9fbW9kZV90Owp0eXBlZGVmIF9fdV9pbnQgX19ubGlua190Owp0eXBlZGVmIGxvbmcgaW50
IF9fb2ZmX3Q7CnR5cGVkZWYgX19xdWFkX3QgX19sb2ZmX3Q7CnR5cGVkZWYgaW50IF9fcGlkX3Q7
CnR5cGVkZWYgaW50IF9fc3NpemVfdDsKdHlwZWRlZiBfX3VfbG9uZyBfX3JsaW1fdDsKdHlwZWRl
ZiBfX3VfcXVhZF90IF9fcmxpbTY0X3Q7CnR5cGVkZWYgX191X2ludCBfX2lkX3Q7Cgp0eXBlZGVm
IHN0cnVjdAogIHsKICAgIGludCBfX3ZhbFsyXTsKICB9IF9fZnNpZF90OwoKCnR5cGVkZWYgaW50
IF9fZGFkZHJfdDsKdHlwZWRlZiBjaGFyICpfX2NhZGRyX3Q7CnR5cGVkZWYgbG9uZyBpbnQgX190
aW1lX3Q7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdXNlY29uZHNfdDsKdHlwZWRlZiBsb25nIGlu
dCBfX3N1c2Vjb25kc190Owp0eXBlZGVmIGxvbmcgaW50IF9fc3dibGtfdDsKCnR5cGVkZWYgbG9u
ZyBpbnQgX19jbG9ja190OwoKCnR5cGVkZWYgaW50IF9fY2xvY2tpZF90OwoKCnR5cGVkZWYgaW50
IF9fdGltZXJfdDsKCgoKCgoKdHlwZWRlZiBpbnQgX19rZXlfdDsKCgp0eXBlZGVmIHVuc2lnbmVk
IHNob3J0IGludCBfX2lwY19waWRfdDsKCgoKdHlwZWRlZiBsb25nIGludCBfX2Jsa3NpemVfdDsK
CgoKCnR5cGVkZWYgbG9uZyBpbnQgX19ibGtjbnRfdDsKdHlwZWRlZiBfX3F1YWRfdCBfX2Jsa2Nu
dDY0X3Q7CgoKdHlwZWRlZiBfX3VfbG9uZyBfX2ZzYmxrY250X3Q7CnR5cGVkZWYgX191X3F1YWRf
dCBfX2ZzYmxrY250NjRfdDsKCgp0eXBlZGVmIF9fdV9sb25nIF9fZnNmaWxjbnRfdDsKdHlwZWRl
ZiBfX3VfcXVhZF90IF9fZnNmaWxjbnQ2NF90OwoKCnR5cGVkZWYgX191X3F1YWRfdCBfX2lubzY0
X3Q7CgoKdHlwZWRlZiBfX2xvZmZfdCBfX29mZjY0X3Q7CgoKdHlwZWRlZiBsb25nIGludCBfX3Rf
c2NhbGFyX3Q7CnR5cGVkZWYgdW5zaWduZWQgbG9uZyBpbnQgX190X3VzY2FsYXJfdDsKCgp0eXBl
ZGVmIGludCBfX2ludHB0cl90OwoKCnR5cGVkZWYgdW5zaWduZWQgaW50IF9fc29ja2xlbl90OwoK
CgoKIyAxICIuLi9saW51eHRocmVhZHMvc3lzZGVwcy9wdGhyZWFkL2JpdHMvcHRocmVhZHR5cGVz
LmgiIDEKIyAyMyAiLi4vbGludXh0aHJlYWRzL3N5c2RlcHMvcHRocmVhZC9iaXRzL3B0aHJlYWR0
eXBlcy5oIgojIDEgIi4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvc2NoZWQuaCIgMQoj
IDY4ICIuLi9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9iaXRzL3NjaGVkLmgiCnN0cnVjdCBfX3Nj
aGVkX3BhcmFtCiAgewogICAgaW50IF9fc2NoZWRfcHJpb3JpdHk7CiAgfTsKIyAyNCAiLi4vbGlu
dXh0aHJlYWRzL3N5c2RlcHMvcHRocmVhZC9iaXRzL3B0aHJlYWR0eXBlcy5oIiAyCgoKc3RydWN0
IF9wdGhyZWFkX2Zhc3Rsb2NrCnsKICBsb25nIGludCBfX3N0YXR1czsKICBpbnQgX19zcGlubG9j
azsKCn07CgoKCnR5cGVkZWYgc3RydWN0IF9wdGhyZWFkX2Rlc2NyX3N0cnVjdCAqX3B0aHJlYWRf
ZGVzY3I7CgoKCgoKdHlwZWRlZiBzdHJ1Y3QgX19wdGhyZWFkX2F0dHJfcwp7CiAgaW50IF9fZGV0
YWNoc3RhdGU7CiAgaW50IF9fc2NoZWRwb2xpY3k7CiAgc3RydWN0IF9fc2NoZWRfcGFyYW0gX19z
Y2hlZHBhcmFtOwogIGludCBfX2luaGVyaXRzY2hlZDsKICBpbnQgX19zY29wZTsKICBzaXplX3Qg
X19ndWFyZHNpemU7CiAgaW50IF9fc3RhY2thZGRyX3NldDsKICB2b2lkICpfX3N0YWNrYWRkcjsK
ICBzaXplX3QgX19zdGFja3NpemU7Cn0gcHRocmVhZF9hdHRyX3Q7CgoKCnR5cGVkZWYgc3RydWN0
CnsKICBzdHJ1Y3QgX3B0aHJlYWRfZmFzdGxvY2sgX19jX2xvY2s7CiAgX3B0aHJlYWRfZGVzY3Ig
X19jX3dhaXRpbmc7Cn0gcHRocmVhZF9jb25kX3Q7CgoKCnR5cGVkZWYgc3RydWN0CnsKICBpbnQg
X19kdW1teTsKfSBwdGhyZWFkX2NvbmRhdHRyX3Q7CgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgcHRo
cmVhZF9rZXlfdDsKCgoKCgp0eXBlZGVmIHN0cnVjdAp7CiAgaW50IF9fbV9yZXNlcnZlZDsKICBp
bnQgX19tX2NvdW50OwogIF9wdGhyZWFkX2Rlc2NyIF9fbV9vd25lcjsKICBpbnQgX19tX2tpbmQ7
CiAgc3RydWN0IF9wdGhyZWFkX2Zhc3Rsb2NrIF9fbV9sb2NrOwp9IHB0aHJlYWRfbXV0ZXhfdDsK
CgoKdHlwZWRlZiBzdHJ1Y3QKewogIGludCBfX211dGV4a2luZDsKfSBwdGhyZWFkX211dGV4YXR0
cl90OwoKCgp0eXBlZGVmIGludCBwdGhyZWFkX29uY2VfdDsKCgoKCnR5cGVkZWYgc3RydWN0IF9w
dGhyZWFkX3J3bG9ja190CnsKICBzdHJ1Y3QgX3B0aHJlYWRfZmFzdGxvY2sgX19yd19sb2NrOwog
IGludCBfX3J3X3JlYWRlcnM7CiAgX3B0aHJlYWRfZGVzY3IgX19yd193cml0ZXI7CiAgX3B0aHJl
YWRfZGVzY3IgX19yd19yZWFkX3dhaXRpbmc7CiAgX3B0aHJlYWRfZGVzY3IgX19yd193cml0ZV93
YWl0aW5nOwogIGludCBfX3J3X2tpbmQ7CiAgaW50IF9fcndfcHNoYXJlZDsKfSBwdGhyZWFkX3J3
bG9ja190OwoKCgp0eXBlZGVmIHN0cnVjdAp7CiAgaW50IF9fbG9ja2tpbmQ7CiAgaW50IF9fcHNo
YXJlZDsKfSBwdGhyZWFkX3J3bG9ja2F0dHJfdDsKCgoKCnR5cGVkZWYgdm9sYXRpbGUgaW50IHB0
aHJlYWRfc3BpbmxvY2tfdDsKCgp0eXBlZGVmIHN0cnVjdCB7CiAgc3RydWN0IF9wdGhyZWFkX2Zh
c3Rsb2NrIF9fYmFfbG9jazsKICBpbnQgX19iYV9yZXF1aXJlZDsKICBpbnQgX19iYV9wcmVzZW50
OwogIF9wdGhyZWFkX2Rlc2NyIF9fYmFfd2FpdGluZzsKfSBwdGhyZWFkX2JhcnJpZXJfdDsKCgp0
eXBlZGVmIHN0cnVjdCB7CiAgaW50IF9fcHNoYXJlZDsKfSBwdGhyZWFkX2JhcnJpZXJhdHRyX3Q7
CgoKCgoKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBwdGhyZWFkX3Q7CiMgMTQ0ICIuLi9zeXNk
ZXBzL3VuaXgvc3lzdi9saW51eC9iaXRzL3R5cGVzLmgiIDIKIyAzMSAiLi4vcG9zaXgvc3lzL3R5
cGVzLmgiIDIKCgoKdHlwZWRlZiBfX3VfY2hhciB1X2NoYXI7CnR5cGVkZWYgX191X3Nob3J0IHVf
c2hvcnQ7CnR5cGVkZWYgX191X2ludCB1X2ludDsKdHlwZWRlZiBfX3VfbG9uZyB1X2xvbmc7CnR5
cGVkZWYgX19xdWFkX3QgcXVhZF90Owp0eXBlZGVmIF9fdV9xdWFkX3QgdV9xdWFkX3Q7CnR5cGVk
ZWYgX19mc2lkX3QgZnNpZF90OwoKCgoKdHlwZWRlZiBfX2xvZmZfdCBsb2ZmX3Q7CgoKCnR5cGVk
ZWYgX19pbm9fdCBpbm9fdDsKCgoKCgoKdHlwZWRlZiBfX2lubzY0X3QgaW5vNjRfdDsKCgoKCnR5
cGVkZWYgX19kZXZfdCBkZXZfdDsKCgoKCnR5cGVkZWYgX19naWRfdCBnaWRfdDsKCgoKCnR5cGVk
ZWYgX19tb2RlX3QgbW9kZV90OwoKCgoKdHlwZWRlZiBfX25saW5rX3QgbmxpbmtfdDsKCgoKCnR5
cGVkZWYgX191aWRfdCB1aWRfdDsKCgoKCgp0eXBlZGVmIF9fb2ZmX3Qgb2ZmX3Q7CgoKCgoKCnR5
cGVkZWYgX19vZmY2NF90IG9mZjY0X3Q7CgoKCgp0eXBlZGVmIF9fcGlkX3QgcGlkX3Q7CgoKCgp0
eXBlZGVmIF9faWRfdCBpZF90OwoKCgoKdHlwZWRlZiBfX3NzaXplX3Qgc3NpemVfdDsKCgoKCgp0
eXBlZGVmIF9fZGFkZHJfdCBkYWRkcl90Owp0eXBlZGVmIF9fY2FkZHJfdCBjYWRkcl90OwoKCgoK
CnR5cGVkZWYgX19rZXlfdCBrZXlfdDsKIyAxMzIgIi4uL3Bvc2l4L3N5cy90eXBlcy5oIgojIDEg
Ii4uL2luY2x1ZGUvdGltZS5oIiAxCgoKIyAxICIuLi90aW1lL3RpbWUuaCIgMQojIDU5ICIuLi90
aW1lL3RpbWUuaCIKdHlwZWRlZiBfX2Nsb2NrX3QgY2xvY2tfdDsKIyA3MCAiLi4vdGltZS90aW1l
LmgiCnR5cGVkZWYgX190aW1lX3QgdGltZV90OwojIDgyICIuLi90aW1lL3RpbWUuaCIKdHlwZWRl
ZiBfX2Nsb2NraWRfdCBjbG9ja2lkX3Q7CiMgOTQgIi4uL3RpbWUvdGltZS5oIgp0eXBlZGVmIF9f
dGltZXJfdCB0aW1lcl90OwojIDQgIi4uL2luY2x1ZGUvdGltZS5oIiAyCiMgMTMzICIuLi9wb3Np
eC9zeXMvdHlwZXMuaCIgMgoKCgp0eXBlZGVmIF9fdXNlY29uZHNfdCB1c2Vjb25kc190OwoKCgp0
eXBlZGVmIF9fc3VzZWNvbmRzX3Qgc3VzZWNvbmRzX3Q7CgoKCgoKIyAxICIvdXNyL2xpYi9nY2Mt
bGliL2FybXY0bC11bmtub3duLWxpbnV4LWdudS8zLjMvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQK
IyAxNDcgIi4uL3Bvc2l4L3N5cy90eXBlcy5oIiAyCgoKCnR5cGVkZWYgdW5zaWduZWQgbG9uZyBp
bnQgdWxvbmc7CnR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IHVzaG9ydDsKdHlwZWRlZiB1bnNp
Z25lZCBpbnQgdWludDsKIyAxOTAgIi4uL3Bvc2l4L3N5cy90eXBlcy5oIgp0eXBlZGVmIGludCBp
bnQ4X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1FJX18pKSk7CnR5cGVkZWYgaW50IGlu
dDE2X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CnR5cGVkZWYgaW50IGlu
dDMyX3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1NJX18pKSk7CnR5cGVkZWYgaW50IGlu
dDY0X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX0RJX18pKSk7CgoKdHlwZWRlZiB1bnNp
Z25lZCBpbnQgdV9pbnQ4X3QgX19hdHRyaWJ1dGVfXyAoKF9fbW9kZV9fIChfX1FJX18pKSk7CnR5
cGVkZWYgdW5zaWduZWQgaW50IHVfaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9f
SElfXykpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgdV9pbnQzMl90IF9fYXR0cmlidXRlX18gKChf
X21vZGVfXyAoX19TSV9fKSkpOwp0eXBlZGVmIHVuc2lnbmVkIGludCB1X2ludDY0X3QgX19hdHRy
aWJ1dGVfXyAoKF9fbW9kZV9fIChfX0RJX18pKSk7Cgp0eXBlZGVmIGludCByZWdpc3Rlcl90IF9f
YXR0cmlidXRlX18gKChfX21vZGVfXyAoX193b3JkX18pKSk7CiMgMjEyICIuLi9wb3NpeC9zeXMv
dHlwZXMuaCIKIyAxICIuLi9pbmNsdWRlL2VuZGlhbi5oIiAxCiMgMSAiLi4vc3RyaW5nL2VuZGlh
bi5oIiAxCiMgMzcgIi4uL3N0cmluZy9lbmRpYW4uaCIKIyAxICIuLi9zeXNkZXBzL2FybS9iaXRz
L2VuZGlhbi5oIiAxCiMgMzggIi4uL3N0cmluZy9lbmRpYW4uaCIgMgojIDIgIi4uL2luY2x1ZGUv
ZW5kaWFuLmgiIDIKIyAyMTMgIi4uL3Bvc2l4L3N5cy90eXBlcy5oIiAyCgoKIyAxICIuLi9pbmNs
dWRlL3N5cy9zZWxlY3QuaCIgMQoKIyAxICIuLi9taXNjL3N5cy9zZWxlY3QuaCIgMQojIDMxICIu
Li9taXNjL3N5cy9zZWxlY3QuaCIKIyAxICIuLi9zeXNkZXBzL2dlbmVyaWMvYml0cy9zZWxlY3Qu
aCIgMQojIDMyICIuLi9taXNjL3N5cy9zZWxlY3QuaCIgMgoKCiMgMSAiLi4vc3lzZGVwcy91bml4
L3N5c3YvbGludXgvYml0cy9zaWdzZXQuaCIgMQojIDIzICIuLi9zeXNkZXBzL3VuaXgvc3lzdi9s
aW51eC9iaXRzL3NpZ3NldC5oIgp0eXBlZGVmIGludCBfX3NpZ19hdG9taWNfdDsKCgoKCnR5cGVk
ZWYgc3RydWN0CiAgewogICAgdW5zaWduZWQgbG9uZyBpbnQgX192YWxbKDEwMjQgLyAoOCAqIHNp
emVvZiAodW5zaWduZWQgbG9uZyBpbnQpKSldOwogIH0gX19zaWdzZXRfdDsKIyAzNSAiLi4vbWlz
Yy9zeXMvc2VsZWN0LmgiIDIKCgoKdHlwZWRlZiBfX3NpZ3NldF90IHNpZ3NldF90OwoKCgoKCiMg
MSAiLi4vaW5jbHVkZS90aW1lLmgiIDEKCgojIDEgIi4uL3RpbWUvdGltZS5oIiAxCiMgMTA2ICIu
Li90aW1lL3RpbWUuaCIKc3RydWN0IHRpbWVzcGVjCiAgewogICAgX190aW1lX3QgdHZfc2VjOwog
ICAgbG9uZyBpbnQgdHZfbnNlYzsKICB9OwojIDQgIi4uL2luY2x1ZGUvdGltZS5oIiAyCiMgNDUg
Ii4uL21pc2Mvc3lzL3NlbGVjdC5oIiAyCgojIDEgIi4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4
L2JpdHMvdGltZS5oIiAxCiMgNjMgIi4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvdGlt
ZS5oIgpzdHJ1Y3QgdGltZXZhbAogIHsKICAgIF9fdGltZV90IHR2X3NlYzsKICAgIF9fc3VzZWNv
bmRzX3QgdHZfdXNlYzsKICB9OwojIDQ3ICIuLi9taXNjL3N5cy9zZWxlY3QuaCIgMgojIDU1ICIu
Li9taXNjL3N5cy9zZWxlY3QuaCIKdHlwZWRlZiBsb25nIGludCBfX2ZkX21hc2s7CiMgNjcgIi4u
L21pc2Mvc3lzL3NlbGVjdC5oIgp0eXBlZGVmIHN0cnVjdAogIHsKCgoKICAgIF9fZmRfbWFzayBm
ZHNfYml0c1sxMDI0IC8gKDggKiBzaXplb2YgKF9fZmRfbWFzaykpXTsKCgoKCgogIH0gZmRfc2V0
OwoKCgoKCgp0eXBlZGVmIF9fZmRfbWFzayBmZF9tYXNrOwojIDk5ICIuLi9taXNjL3N5cy9zZWxl
Y3QuaCIKCgoKCgoKCmV4dGVybiBpbnQgc2VsZWN0IChpbnQgX19uZmRzLCBmZF9zZXQgKl9fcmVz
dHJpY3QgX19yZWFkZmRzLAogICAgICAgICAgICAgICAgICAgZmRfc2V0ICpfX3Jlc3RyaWN0IF9f
d3JpdGVmZHMsCiAgICAgICAgICAgICAgICAgICBmZF9zZXQgKl9fcmVzdHJpY3QgX19leGNlcHRm
ZHMsCiAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdGltZXZhbCAqX19yZXN0cmljdCBfX3RpbWVv
dXQpIDsKCgoKCgpleHRlcm4gaW50IHBzZWxlY3QgKGludCBfX25mZHMsIGZkX3NldCAqX19yZXN0
cmljdCBfX3JlYWRmZHMsCiAgICAgICAgICAgICAgICAgICAgZmRfc2V0ICpfX3Jlc3RyaWN0IF9f
d3JpdGVmZHMsCiAgICAgICAgICAgICAgICAgICAgZmRfc2V0ICpfX3Jlc3RyaWN0IF9fZXhjZXB0
ZmRzLAogICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqX19yZXN0cmlj
dCBfX3RpbWVvdXQsCiAgICAgICAgICAgICAgICAgICAgY29uc3QgX19zaWdzZXRfdCAqX19yZXN0
cmljdCBfX3NpZ21hc2spIDsKCgoKIyAzICIuLi9pbmNsdWRlL3N5cy9zZWxlY3QuaCIgMgoKCmV4
dGVybiBpbnQgX19wc2VsZWN0IChpbnQgX19uZmRzLCBmZF9zZXQgKl9fcmVhZGZkcywKICAgICAg
ICAgICAgICAgICAgICAgIGZkX3NldCAqX193cml0ZWZkcywgZmRfc2V0ICpfX2V4Y2VwdGZkcywK
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0cnVjdCB0aW1lc3BlYyAqX190aW1lb3V0LAog
ICAgICAgICAgICAgICAgICAgICAgY29uc3QgX19zaWdzZXRfdCAqX19zaWdtYXNrKTsKCmV4dGVy
biBpbnQgX19zZWxlY3QgKGludCBfX25mZHMsIGZkX3NldCAqX19yZXN0cmljdCBfX3JlYWRmZHMs
CiAgICAgICAgICAgICAgICAgICAgIGZkX3NldCAqX19yZXN0cmljdCBfX3dyaXRlZmRzLAogICAg
ICAgICAgICAgICAgICAgICBmZF9zZXQgKl9fcmVzdHJpY3QgX19leGNlcHRmZHMsCiAgICAgICAg
ICAgICAgICAgICAgIHN0cnVjdCB0aW1ldmFsICpfX3Jlc3RyaWN0IF9fdGltZW91dCk7CgojIDIx
NiAiLi4vcG9zaXgvc3lzL3R5cGVzLmgiIDIKCgojIDEgIi4uL3N5c2RlcHMvdW5peC9zeXN2L2xp
bnV4L3N5cy9zeXNtYWNyb3MuaCIgMQojIDIxOSAiLi4vcG9zaXgvc3lzL3R5cGVzLmgiIDIKCgoK
CnR5cGVkZWYgX19ibGtzaXplX3QgYmxrc2l6ZV90OwoKCgoKCgp0eXBlZGVmIF9fYmxrY250X3Qg
YmxrY250X3Q7CgoKCnR5cGVkZWYgX19mc2Jsa2NudF90IGZzYmxrY250X3Q7CgoKCnR5cGVkZWYg
X19mc2ZpbGNudF90IGZzZmlsY250X3Q7CiMgMjU3ICIuLi9wb3NpeC9zeXMvdHlwZXMuaCIKdHlw
ZWRlZiBfX2Jsa2NudDY0X3QgYmxrY250NjRfdDsKdHlwZWRlZiBfX2ZzYmxrY250NjRfdCBmc2Js
a2NudDY0X3Q7CnR5cGVkZWYgX19mc2ZpbGNudDY0X3QgZnNmaWxjbnQ2NF90OwoKCgojIDIgIi4u
L2luY2x1ZGUvc3lzL3R5cGVzLmgiIDIKIyA0MiAibWt0aW1lLmMiIDIKIyAxICIuLi9pbmNsdWRl
L3RpbWUuaCIgMQoKCgoKIyAxICIuLi90aW1lL3RpbWUuaCIgMQojIDMwICIuLi90aW1lL3RpbWUu
aCIKCgoKCgoKCgojIDEgIi91c3IvbGliL2djYy1saWIvYXJtdjRsLXVua25vd24tbGludXgtZ251
LzMuMy9pbmNsdWRlL3N0ZGRlZi5oIiAxIDMgNAojIDM5ICIuLi90aW1lL3RpbWUuaCIgMgoKCgoj
IDEgIi4uL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvdGltZS5oIiAxCiMgNDMgIi4uL3Rp
bWUvdGltZS5oIiAyCiMgMTE4ICIuLi90aW1lL3RpbWUuaCIKc3RydWN0IHRtCnsKICBpbnQgdG1f
c2VjOwogIGludCB0bV9taW47CiAgaW50IHRtX2hvdXI7CiAgaW50IHRtX21kYXk7CiAgaW50IHRt
X21vbjsKICBpbnQgdG1feWVhcjsKICBpbnQgdG1fd2RheTsKICBpbnQgdG1feWRheTsKICBpbnQg
dG1faXNkc3Q7CgoKICBsb25nIGludCB0bV9nbXRvZmY7CiAgX19jb25zdCBjaGFyICp0bV96b25l
OwoKCgoKfTsKCgoKCnN0cnVjdCBpdGltZXJzcGVjCiAgewogICAgc3RydWN0IHRpbWVzcGVjIGl0
X2ludGVydmFsOwogICAgc3RydWN0IHRpbWVzcGVjIGl0X3ZhbHVlOwogIH07CgoKc3RydWN0IHNp
Z2V2ZW50OwojIDE2MyAiLi4vdGltZS90aW1lLmgiCmV4dGVybiBjbG9ja190IGNsb2NrICh2b2lk
KSA7CgoKZXh0ZXJuIHRpbWVfdCB0aW1lICh0aW1lX3QgKl9fdGltZXIpIDsKCgpleHRlcm4gZG91
YmxlIGRpZmZ0aW1lICh0aW1lX3QgX190aW1lMSwgdGltZV90IF9fdGltZTApCiAgICAgX19hdHRy
aWJ1dGVfXyAoKF9fY29uc3RfXykpOwoKCmV4dGVybiB0aW1lX3QgbWt0aW1lIChzdHJ1Y3QgdG0g
Kl9fdHApIDsKCgoKCgpleHRlcm4gc2l6ZV90IHN0cmZ0aW1lIChjaGFyICpfX3Jlc3RyaWN0IF9f
cywgc2l6ZV90IF9fbWF4c2l6ZSwKICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFy
ICpfX3Jlc3RyaWN0IF9fZm9ybWF0LAogICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHN0
cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwKSA7CgoKCgpleHRlcm4gY2hhciAqc3RycHRpbWUgKF9f
Y29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsCiAgICAgICAgICAgICAgICAgICAgICAgX19jb25z
dCBjaGFyICpfX3Jlc3RyaWN0IF9fZm10LCBzdHJ1Y3QgdG0gKl9fdHApCiAgICAgOwoKCgoKCmV4
dGVybiBzdHJ1Y3QgdG0gKmdtdGltZSAoX19jb25zdCB0aW1lX3QgKl9fdGltZXIpIDsKCgoKZXh0
ZXJuIHN0cnVjdCB0bSAqbG9jYWx0aW1lIChfX2NvbnN0IHRpbWVfdCAqX190aW1lcikgOwoKCgoK
ZXh0ZXJuIHN0cnVjdCB0bSAqZ210aW1lX3IgKF9fY29uc3QgdGltZV90ICpfX3Jlc3RyaWN0IF9f
dGltZXIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdG0gKl9fcmVzdHJpY3Qg
X190cCkgOwoKCgpleHRlcm4gc3RydWN0IHRtICpsb2NhbHRpbWVfciAoX19jb25zdCB0aW1lX3Qg
Kl9fcmVzdHJpY3QgX190aW1lciwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVj
dCB0bSAqX19yZXN0cmljdCBfX3RwKSA7CgoKCgpleHRlcm4gY2hhciAqYXNjdGltZSAoX19jb25z
dCBzdHJ1Y3QgdG0gKl9fdHApIDsKCgpleHRlcm4gY2hhciAqY3RpbWUgKF9fY29uc3QgdGltZV90
ICpfX3RpbWVyKSA7CgoKCgoKCmV4dGVybiBjaGFyICphc2N0aW1lX3IgKF9fY29uc3Qgc3RydWN0
IHRtICpfX3Jlc3RyaWN0IF9fdHAsCiAgICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKl9fcmVz
dHJpY3QgX19idWYpIDsKCgpleHRlcm4gY2hhciAqY3RpbWVfciAoX19jb25zdCB0aW1lX3QgKl9f
cmVzdHJpY3QgX190aW1lciwKICAgICAgICAgICAgICAgICAgICAgIGNoYXIgKl9fcmVzdHJpY3Qg
X19idWYpIDsKCgoKCmV4dGVybiBjaGFyICpfX3R6bmFtZVsyXTsKZXh0ZXJuIGludCBfX2RheWxp
Z2h0OwpleHRlcm4gbG9uZyBpbnQgX190aW1lem9uZTsKCgoKCmV4dGVybiBjaGFyICp0em5hbWVb
Ml07CgoKCmV4dGVybiB2b2lkIHR6c2V0ICh2b2lkKSA7CgoKCmV4dGVybiBpbnQgZGF5bGlnaHQ7
CmV4dGVybiBsb25nIGludCB0aW1lem9uZTsKCgoKCgpleHRlcm4gaW50IHN0aW1lIChfX2NvbnN0
IHRpbWVfdCAqX193aGVuKSA7CiMgMjcxICIuLi90aW1lL3RpbWUuaCIKZXh0ZXJuIHRpbWVfdCB0
aW1lZ20gKHN0cnVjdCB0bSAqX190cCkgOwoKCmV4dGVybiB0aW1lX3QgdGltZWxvY2FsIChzdHJ1
Y3QgdG0gKl9fdHApIDsKCgpleHRlcm4gaW50IGR5c2l6ZSAoaW50IF9feWVhcikgX19hdHRyaWJ1
dGVfXyAoKF9fY29uc3RfXykpOwoKCgoKCmV4dGVybiBpbnQgbmFub3NsZWVwIChfX2NvbnN0IHN0
cnVjdCB0aW1lc3BlYyAqX19yZXF1ZXN0ZWRfdGltZSwKICAgICAgICAgICAgICAgICAgICAgIHN0
cnVjdCB0aW1lc3BlYyAqX19yZW1haW5pbmcpIDsKCgoKZXh0ZXJuIGludCBjbG9ja19nZXRyZXMg
KGNsb2NraWRfdCBfX2Nsb2NrX2lkLCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVzKSA7CgoKZXh0ZXJu
IGludCBjbG9ja19nZXR0aW1lIChjbG9ja2lkX3QgX19jbG9ja19pZCwgc3RydWN0IHRpbWVzcGVj
ICpfX3RwKSA7CgoKZXh0ZXJuIGludCBjbG9ja19zZXR0aW1lIChjbG9ja2lkX3QgX19jbG9ja19p
ZCwgX19jb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fdHApCiAgICAgOwoKCgpleHRlcm4gaW50IGNs
b2NrX25hbm9zbGVlcCAoY2xvY2tpZF90IF9fY2xvY2tfaWQsIGludCBfX2ZsYWdzLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBzdHJ1Y3QgdGltZXNwZWMgKl9fcmVxLAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHRpbWVzcGVjICpfX3JlbSkgOwoKCmV4dGVy
biBpbnQgY2xvY2tfZ2V0Y3B1Y2xvY2tpZCAocGlkX3QgX19waWQsIGNsb2NraWRfdCAqX19jbG9j
a19pZCkgOwoKCgoKZXh0ZXJuIGludCB0aW1lcl9jcmVhdGUgKGNsb2NraWRfdCBfX2Nsb2NrX2lk
LAogICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHNpZ2V2ZW50ICpfX3Jlc3RyaWN0IF9f
ZXZwLAogICAgICAgICAgICAgICAgICAgICAgICAgdGltZXJfdCAqX19yZXN0cmljdCBfX3RpbWVy
aWQpIDsKCgpleHRlcm4gaW50IHRpbWVyX2RlbGV0ZSAodGltZXJfdCBfX3RpbWVyaWQpIDsKCgpl
eHRlcm4gaW50IHRpbWVyX3NldHRpbWUgKHRpbWVyX3QgX190aW1lcmlkLCBpbnQgX19mbGFncywK
ICAgICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHN0cnVjdCBpdGltZXJzcGVjICpfX3Jl
c3RyaWN0IF9fdmFsdWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGl0aW1lcnNw
ZWMgKl9fcmVzdHJpY3QgX19vdmFsdWUpIDsKCgpleHRlcm4gaW50IHRpbWVyX2dldHRpbWUgKHRp
bWVyX3QgX190aW1lcmlkLCBzdHJ1Y3QgaXRpbWVyc3BlYyAqX192YWx1ZSkKICAgICA7CgoKZXh0
ZXJuIGludCB0aW1lcl9nZXRvdmVycnVuICh0aW1lcl90IF9fdGltZXJpZCkgOwojIDM0MiAiLi4v
dGltZS90aW1lLmgiCmV4dGVybiBpbnQgZ2V0ZGF0ZV9lcnI7CgoKCgoKZXh0ZXJuIHN0cnVjdCB0
bSAqZ2V0ZGF0ZSAoX19jb25zdCBjaGFyICpfX3N0cmluZykgOwojIDM1NyAiLi4vdGltZS90aW1l
LmgiCmV4dGVybiBpbnQgZ2V0ZGF0ZV9yIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19zdHJp
bmcsCiAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdG0gKl9fcmVzdHJpY3QgX19yZXNidWZw
KSA7CgoKCgojIDYgIi4uL2luY2x1ZGUvdGltZS5oIiAyCgoKCgoKCgoKCgpzdHJ1Y3QgdG07CgoK
ZXh0ZXJuIGNvbnN0IHVuc2lnbmVkIHNob3J0IGludCBfX21vbl95ZGF5WzJdWzEzXSA7CgoKZXh0
ZXJuIHN0cnVjdCB0bSBfdG1idWYgOwoKCmV4dGVybiBjaGFyICpfX3R6c3RyaW5nIChjb25zdCBj
aGFyICpzdHJpbmcpOwoKCmV4dGVybiBzaXplX3QgX190em5hbWVfY3VyX21heCA7CgoKZXh0ZXJu
IGludCBfX3VzZV90emZpbGUgOwoKZXh0ZXJuIHZvaWQgX190emZpbGVfcmVhZCAoY29uc3QgY2hh
ciAqZmlsZSwgc2l6ZV90IGV4dHJhLAogICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFyICoq
ZXh0cmFwKTsKZXh0ZXJuIGludCBfX3R6ZmlsZV9jb21wdXRlICh0aW1lX3QgdGltZXIsIGludCB1
c2VfbG9jYWx0aW1lLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvbmcgaW50ICpsZWFw
X2NvcnJlY3QsIGludCAqbGVhcF9oaXQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ry
dWN0IHRtICp0cCk7CmV4dGVybiB2b2lkIF9fdHpmaWxlX2RlZmF1bHQgKGNvbnN0IGNoYXIgKnN0
ZCwgY29uc3QgY2hhciAqZHN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb25nIGlu
dCBzdGRvZmYsIGxvbmcgaW50IGRzdG9mZik7CgoKCgpleHRlcm4gdGltZV90IF9fbWt0aW1lX2lu
dGVybmFsIChzdHJ1Y3QgdG0gKl9fdHAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHN0cnVjdCB0bSAqKCpfX2Z1bmMpIChjb25zdCB0aW1lX3QgKiwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0bSAqKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgdGltZV90ICpfX29mZnNldCk7CmV4dGVybiBzdHJ1
Y3QgdG0gKl9fbG9jYWx0aW1lX3IgKF9fY29uc3QgdGltZV90ICpfX3RpbWVyLAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdG0gKl9fdHApIDsKCmV4dGVybiBzdHJ1Y3Qg
dG0gKl9fZ210aW1lX3IgKF9fY29uc3QgdGltZV90ICpfX3Jlc3RyaWN0IF9fdGltZXIsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCB0bSAqX19yZXN0cmljdCBfX3RwKTsKCgoK
CgoKZXh0ZXJuIGludCBfX29mZnRpbWUgKF9fY29uc3QgdGltZV90ICpfX3RpbWVyLAogICAgICAg
ICAgICAgICAgICAgICAgbG9uZyBpbnQgX19vZmZzZXQsCiAgICAgICAgICAgICAgICAgICAgICBz
dHJ1Y3QgdG0gKl9fdHApOwoKZXh0ZXJuIGNoYXIgKl9fYXNjdGltZV9yIChfX2NvbnN0IHN0cnVj
dCB0bSAqX190cCwgY2hhciAqX19idWYpOwpleHRlcm4gdm9pZCBfX3R6c2V0ICh2b2lkKTsKCgpl
eHRlcm4gc3RydWN0IHRtICpfX3R6X2NvbnZlcnQgKGNvbnN0IHRpbWVfdCAqdGltZXIsIGludCB1
c2VfbG9jYWx0aW1lLCBzdHJ1Y3QgdG0gKnRwKTsKCgoKZXh0ZXJuIGxvbmcgaW50IF9fdHpuYW1l
X21heCAodm9pZCk7CgpleHRlcm4gaW50IF9fbmFub3NsZWVwIChfX2NvbnN0IHN0cnVjdCB0aW1l
c3BlYyAqX19yZXF1ZXN0ZWRfdGltZSwKICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHRp
bWVzcGVjICpfX3JlbWFpbmluZyk7CmV4dGVybiBpbnQgX19nZXRkYXRlX3IgKF9fY29uc3QgY2hh
ciAqX19zdHJpbmcsIHN0cnVjdCB0bSAqX19yZXNidWZwKTsKCgoKZXh0ZXJuIGludCBfX2dldGNs
a3RjayAodm9pZCk7CiMgNDMgIm1rdGltZS5jIiAyCgoKIyAxICIuLi9pbmNsdWRlL2xpbWl0cy5o
IiAxCiMgMTI0ICIuLi9pbmNsdWRlL2xpbWl0cy5oIgojIDEgIi91c3IvbGliL2djYy1saWIvYXJt
djRsLXVua25vd24tbGludXgtZ251LzMuMy9pbmNsdWRlL2xpbWl0cy5oIiAxIDMgNAojIDEyNSAi
Li4vaW5jbHVkZS9saW1pdHMuaCIgMgojIDE0NCAiLi4vaW5jbHVkZS9saW1pdHMuaCIKIyAxICIu
Li9pbmNsdWRlL2JpdHMvcG9zaXgxX2xpbS5oIiAxCiMgMSAiLi4vcG9zaXgvYml0cy9wb3NpeDFf
bGltLmgiIDEKIyAxMjYgIi4uL3Bvc2l4L2JpdHMvcG9zaXgxX2xpbS5oIgojIDEgIi4uL2xpbnV4
dGhyZWFkcy9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9iaXRzL2xvY2FsX2xpbS5oIiAxCiMgMzYg
Ii4uL2xpbnV4dGhyZWFkcy9zeXNkZXBzL3VuaXgvc3lzdi9saW51eC9iaXRzL2xvY2FsX2xpbS5o
IgojIDEgIi91c3IvaW5jbHVkZS9saW51eC9saW1pdHMuaCIgMSAzIDQKIyAzNyAiLi4vbGludXh0
aHJlYWRzL3N5c2RlcHMvdW5peC9zeXN2L2xpbnV4L2JpdHMvbG9jYWxfbGltLmgiIDIKIyAxMjcg
Ii4uL3Bvc2l4L2JpdHMvcG9zaXgxX2xpbS5oIiAyCiMgMiAiLi4vaW5jbHVkZS9iaXRzL3Bvc2l4
MV9saW0uaCIgMgojIDE0NSAiLi4vaW5jbHVkZS9saW1pdHMuaCIgMgoKCgojIDEgIi4uL2luY2x1
ZGUvYml0cy9wb3NpeDJfbGltLmgiIDEKIyAxICIuLi9wb3NpeC9iaXRzL3Bvc2l4Ml9saW0uaCIg
MQojIDIgIi4uL2luY2x1ZGUvYml0cy9wb3NpeDJfbGltLmgiIDIKIyAxNDkgIi4uL2luY2x1ZGUv
bGltaXRzLmgiIDIKCgoKIyAxICIuLi9pbmNsdWRlL2JpdHMveG9wZW5fbGltLmgiIDEKIyAzNCAi
Li4vaW5jbHVkZS9iaXRzL3hvcGVuX2xpbS5oIgojIDEgIi91c3Ivc3JjL3JlZGhhdC9CVUlMRC9n
bGliYy0yLjIuOTAvYnVpbGQtYXJtdjRsLWxpbnV4L2JpdHMvc3RkaW9fbGltLmgiIDEKIyAzNSAi
Li4vaW5jbHVkZS9iaXRzL3hvcGVuX2xpbS5oIiAyCiMgMTUzICIuLi9pbmNsdWRlL2xpbWl0cy5o
IiAyCiMgNDYgIm1rdGltZS5jIiAyCiMgMTAzICJta3RpbWUuYyIKY29uc3QgdW5zaWduZWQgc2hv
cnQgaW50IF9fbW9uX3lkYXlbMl1bMTNdID0KICB7CgogICAgeyAwLCAzMSwgNTksIDkwLCAxMjAs
IDE1MSwgMTgxLCAyMTIsIDI0MywgMjczLCAzMDQsIDMzNCwgMzY1IH0sCgogICAgeyAwLCAzMSwg
NjAsIDkxLCAxMjEsIDE1MiwgMTgyLCAyMTMsIDI0NCwgMjc0LCAzMDUsIDMzNSwgMzY2IH0KICB9
OwojIDEzNiAibWt0aW1lLmMiCnN0YXRpYyB0aW1lX3QKeWRobXNfdG1fZGlmZiAoaW50IHllYXIs
IGludCB5ZGF5LCBpbnQgaG91ciwgaW50IG1pbiwgaW50IHNlYywKICAgICAgICAgICAgICAgY29u
c3Qgc3RydWN0IHRtICp0cCkKewogIGlmICghdHApCiAgICByZXR1cm4gMTsKICBlbHNlCiAgICB7
CgoKCgoKICAgICAgaW50IGE0ID0gKHllYXIgPj4gMikgKyAoMTkwMCA+PiAyKSAtICEgKHllYXIg
JiAzKTsKICAgICAgaW50IGI0ID0gKHRwLT50bV95ZWFyID4+IDIpICsgKDE5MDAgPj4gMikgLSAh
ICh0cC0+dG1feWVhciAmIDMpOwogICAgICBpbnQgYTEwMCA9IGE0IC8gMjUgLSAoYTQgJSAyNSA8
IDApOwogICAgICBpbnQgYjEwMCA9IGI0IC8gMjUgLSAoYjQgJSAyNSA8IDApOwogICAgICBpbnQg
YTQwMCA9IGExMDAgPj4gMjsKICAgICAgaW50IGI0MDAgPSBiMTAwID4+IDI7CiAgICAgIGludCBp
bnRlcnZlbmluZ19sZWFwX2RheXMgPSAoYTQgLSBiNCkgLSAoYTEwMCAtIGIxMDApICsgKGE0MDAg
LSBiNDAwKTsKICAgICAgdGltZV90IHllYXJzID0geWVhciAtICh0aW1lX3QpIHRwLT50bV95ZWFy
OwogICAgICB0aW1lX3QgZGF5cyA9ICgzNjUgKiB5ZWFycyArIGludGVydmVuaW5nX2xlYXBfZGF5
cwogICAgICAgICAgICAgICAgICAgICArICh5ZGF5IC0gdHAtPnRtX3lkYXkpKTsKICAgICAgcmV0
dXJuICg2MCAqICg2MCAqICgyNCAqIGRheXMgKyAoaG91ciAtIHRwLT50bV9ob3VyKSkKICAgICAg
ICAgICAgICAgICAgICArIChtaW4gLSB0cC0+dG1fbWluKSkKICAgICAgICAgICAgICArIChzZWMg
LSB0cC0+dG1fc2VjKSk7CiAgICB9Cn0KCgoKCnN0YXRpYyBzdHJ1Y3QgdG0gKgpyYW5nZWRfY29u
dmVydCAoc3RydWN0IHRtICooKmNvbnZlcnQpIChjb25zdCB0aW1lX3QgKiwgc3RydWN0IHRtICop
LAogICAgICAgICAgICAgICAgdGltZV90ICp0LCBzdHJ1Y3QgdG0gKnRwKQp7CiAgc3RydWN0IHRt
ICpyOwoKICBpZiAoISAociA9ICgqY29udmVydCkgKHQsIHRwKSkgJiYgKnQpCiAgICB7CiAgICAg
IHRpbWVfdCBiYWQgPSAqdDsKICAgICAgdGltZV90IG9rID0gMDsKICAgICAgc3RydWN0IHRtIHRt
OwoKCgoKICAgICAgd2hpbGUgKGJhZCAhPSBvayArIChiYWQgPCAwID8gLTEgOiAxKSkKICAgICAg
ICB7CiAgICAgICAgICB0aW1lX3QgbWlkID0gKnQgPSAoYmFkIDwgMAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgID8gYmFkICsgKChvayAtIGJhZCkgPj4gMSkKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICA6IG9rICsgKChiYWQgLSBvaykgPj4gMSkpOwogICAgICAgICAgaWYgKChyID0g
KCpjb252ZXJ0KSAodCwgdHApKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgIHRtID0gKnI7
CiAgICAgICAgICAgICAgb2sgPSBtaWQ7CiAgICAgICAgICAgIH0KICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgYmFkID0gbWlkOwogICAgICAgIH0KCiAgICAgIGlmICghciAmJiBvaykKICAgICAg
ICB7CgoKICAgICAgICAgICp0ID0gb2s7CiAgICAgICAgICAqdHAgPSB0bTsKICAgICAgICAgIHIg
PSB0cDsKICAgICAgICB9CiAgICB9CgogIHJldHVybiByOwp9CgoKCgoKCgp0aW1lX3QKX19ta3Rp
bWVfaW50ZXJuYWwgKHN0cnVjdCB0bSAqdHAsCiAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgdG0g
KigqY29udmVydCkgKGNvbnN0IHRpbWVfdCAqLCBzdHJ1Y3QgdG0gKiksCiAgICAgICAgICAgICAg
ICAgICB0aW1lX3QgKm9mZnNldCkKewogIHRpbWVfdCB0LCBkdCwgdDAsIHQxLCB0MjsKICBzdHJ1
Y3QgdG0gdG07CgoKCgoKICBpbnQgcmVtYWluaW5nX3Byb2JlcyA9IDY7CgoKCiAgaW50IHNlYyA9
IHRwLT50bV9zZWM7CiAgaW50IG1pbiA9IHRwLT50bV9taW47CiAgaW50IGhvdXIgPSB0cC0+dG1f
aG91cjsKICBpbnQgbWRheSA9IHRwLT50bV9tZGF5OwogIGludCBtb24gPSB0cC0+dG1fbW9uOwog
IGludCB5ZWFyX3JlcXVlc3RlZCA9IHRwLT50bV95ZWFyOwogIGludCBpc2RzdCA9IHRwLT50bV9p
c2RzdDsKCgogIGludCBkc3QyOwoKCiAgaW50IG1vbl9yZW1haW5kZXIgPSBtb24gJSAxMjsKICBp
bnQgbmVnYXRpdmVfbW9uX3JlbWFpbmRlciA9IG1vbl9yZW1haW5kZXIgPCAwOwogIGludCBtb25f
eWVhcnMgPSBtb24gLyAxMiAtIG5lZ2F0aXZlX21vbl9yZW1haW5kZXI7CiAgaW50IHllYXIgPSB5
ZWFyX3JlcXVlc3RlZCArIG1vbl95ZWFyczsKIyAyNTYgIm1rdGltZS5jIgogIGludCB5ZGF5ID0g
KChfX21vbl95ZGF5WygoeWVhciArIDE5MDApICUgNCA9PSAwICYmICgoeWVhciArIDE5MDApICUg
MTAwICE9IDAgfHwgKHllYXIgKyAxOTAwKSAlIDQwMCA9PSAwKSldCiAgICAgICAgICAgICAgIFtt
b25fcmVtYWluZGVyICsgMTIgKiBuZWdhdGl2ZV9tb25fcmVtYWluZGVyXSkKICAgICAgICAgICAg
ICArIG1kYXkgLSAxKTsKCiAgaW50IHNlY19yZXF1ZXN0ZWQgPSBzZWM7CgoKCgogIGlmICh5ZWFy
IDwgNjkpCiAgICByZXR1cm4gLTE7CgoKCgogIGlmIChzZWMgPCAwKQogICAgc2VjID0gMDsKICBp
ZiAoNTkgPCBzZWMpCiAgICBzZWMgPSA1OTsKCgoKCgogIHRtLnRtX3llYXIgPSAxOTcwIC0gMTkw
MDsKICB0bS50bV95ZGF5ID0gdG0udG1faG91ciA9IHRtLnRtX21pbiA9IHRtLnRtX3NlYyA9IDA7
CiAgdDAgPSB5ZGhtc190bV9kaWZmICh5ZWFyLCB5ZGF5LCBob3VyLCBtaW4sIHNlYywgJnRtKTsK
CiAgZm9yICh0ID0gdDEgPSB0MiA9IHQwICsgKm9mZnNldCwgZHN0MiA9IDA7CiAgICAgICAoZHQg
PSB5ZGhtc190bV9kaWZmICh5ZWFyLCB5ZGF5LCBob3VyLCBtaW4sIHNlYywKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHJhbmdlZF9jb252ZXJ0IChjb252ZXJ0LCAmdCwgJnRtKSkpOwogICAg
ICAgdDEgPSB0MiwgdDIgPSB0LCB0ICs9IGR0LCBkc3QyID0gdG0udG1faXNkc3QgIT0gMCkKICAg
IGlmICh0ID09IHQxICYmIHQgIT0gdDIKICAgICAgICAmJiAodG0udG1faXNkc3QgPCAwCiAgICAg
ICAgICAgIHx8IChpc2RzdCA8IDAKICAgICAgICAgICAgICAgID8gZHN0MiA8PSAodG0udG1faXNk
c3QgIT0gMCkKICAgICAgICAgICAgICAgIDogKGlzZHN0ICE9IDApICE9ICh0bS50bV9pc2RzdCAh
PSAwKSkpKQojIDMwMiAibWt0aW1lLmMiCiAgICAgIGJyZWFrOwogICAgZWxzZSBpZiAoLS1yZW1h
aW5pbmdfcHJvYmVzID09IDApCiAgICAgIHJldHVybiAtMTsKCgoKICBpZiAoZHQgPT0gMCAmJiBp
c2RzdCAhPSB0bS50bV9pc2RzdCAmJiAwIDw9IGlzZHN0ICYmIDAgPD0gdG0udG1faXNkc3QpCiAg
ICB7CgoKCgoKICAgICAgaW50IHF1YXJ0ZXIgPSA3ODg5MjM4OwogICAgICBpbnQgaTsKCgogICAg
ICBpZiAodCA8ICgodGltZV90KSAoKCEgKCh0aW1lX3QpIDAgPCAodGltZV90KSAtMSkpID8gfiAo
dGltZV90KSAwIDw8IChzaXplb2YgKHRpbWVfdCkgKiA4IC0gMSkgOiAodGltZV90KSAwKSkgKyAz
ICogcXVhcnRlcikKICAgICAgICBxdWFydGVyID0gLXF1YXJ0ZXI7CgogICAgICBmb3IgKGkgPSAx
OyBpIDw9IDM7IGkrKykKICAgICAgICB7CiAgICAgICAgICB0aW1lX3Qgb3QgPSB0IC0gaSAqIHF1
YXJ0ZXI7CiAgICAgICAgICBzdHJ1Y3QgdG0gb3RtOwogICAgICAgICAgcmFuZ2VkX2NvbnZlcnQg
KGNvbnZlcnQsICZvdCwgJm90bSk7CiAgICAgICAgICBpZiAob3RtLnRtX2lzZHN0ID09IGlzZHN0
KQogICAgICAgICAgICB7CgoKICAgICAgICAgICAgICB0ID0gb3QgKyB5ZGhtc190bV9kaWZmICh5
ZWFyLCB5ZGF5LCBob3VyLCBtaW4sIHNlYywgJm90bSk7CiAgICAgICAgICAgICAgcmFuZ2VkX2Nv
bnZlcnQgKGNvbnZlcnQsICZ0LCAmdG0pOwogICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICB9CiAgICAgICAgfQogICAgfQoKICAqb2Zmc2V0ID0gdCAtIHQwOwoKCiAgaWYgKHNlY19yZXF1
ZXN0ZWQgIT0gdG0udG1fc2VjKQogICAgewoKCiAgICAgIHQgKz0gc2VjX3JlcXVlc3RlZCAtIHNl
YyArIChzZWMgPT0gMCAmJiB0bS50bV9zZWMgPT0gNjApOwogICAgICBpZiAoISAoKmNvbnZlcnQp
ICgmdCwgJnRtKSkKICAgICAgICByZXR1cm4gLTE7CiAgICB9CgoKICBpZiAoKCh0aW1lX3QpICh+
ICh0aW1lX3QpIDAgLSAoKHRpbWVfdCkgKCghICgodGltZV90KSAwIDwgKHRpbWVfdCkgLTEpKSA/
IH4gKHRpbWVfdCkgMCA8PCAoc2l6ZW9mICh0aW1lX3QpICogOCAtIDEpIDogKHRpbWVfdCkgMCkp
KSkgLyAyMTQ3NDgzNjQ3IC8gMzY2IC8gMjQgLyA2MCAvIDYwIDwgMykKICAgIHsKCgoKCgoKICAg
ICAgZG91YmxlIGR5ZWFyID0gKGRvdWJsZSkgeWVhcl9yZXF1ZXN0ZWQgKyBtb25feWVhcnMgLSB0
bS50bV95ZWFyOwogICAgICBkb3VibGUgZGRheSA9IDM2NiAqIGR5ZWFyICsgbWRheTsKICAgICAg
ZG91YmxlIGRzZWMgPSA2MCAqICg2MCAqICgyNCAqIGRkYXkgKyBob3VyKSArIG1pbikgKyBzZWNf
cmVxdWVzdGVkOwoKCgoKCgogICAgICBjb25zdCB0aW1lX3QgdGltZV90X21heCA9ICgodGltZV90
KSAofiAodGltZV90KSAwIC0gKCh0aW1lX3QpICgoISAoKHRpbWVfdCkgMCA8ICh0aW1lX3QpIC0x
KSkgPyB+ICh0aW1lX3QpIDAgPDwgKHNpemVvZiAodGltZV90KSAqIDggLSAxKSA6ICh0aW1lX3Qp
IDApKSkpOwogICAgICBjb25zdCB0aW1lX3QgdGltZV90X21pbiA9ICgodGltZV90KSAoKCEgKCh0
aW1lX3QpIDAgPCAodGltZV90KSAtMSkpID8gfiAodGltZV90KSAwIDw8IChzaXplb2YgKHRpbWVf
dCkgKiA4IC0gMSkgOiAodGltZV90KSAwKSk7CgogICAgICBpZiAodGltZV90X21heCAvIDMgLSB0
aW1lX3RfbWluIC8gMyA8IChkc2VjIDwgMCA/IC0gZHNlYyA6IGRzZWMpKQogICAgICAgIHJldHVy
biAtMTsKICAgIH0KCiAgaWYgKHllYXIgPT0gNjkpCiAgICB7CgoKICAgICAgaWYgKHQgPCAwIHx8
IHQgPiAyICogMjQgKiA2MCAqIDYwKQogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgKnRwID0g
dG07CiAgcmV0dXJuIHQ7Cn0KCgpzdGF0aWMgdGltZV90IGxvY2FsdGltZV9vZmZzZXQ7CgoKdGlt
ZV90Cm1rdGltZSAodHApCiAgICAgc3RydWN0IHRtICp0cDsKewoKCgoKICBfX3R6c2V0ICgpOwoK
CiAgcmV0dXJuIF9fbWt0aW1lX2ludGVybmFsICh0cCwgX19sb2NhbHRpbWVfciwgJmxvY2FsdGlt
ZV9vZmZzZXQpOwp9CgoKZXh0ZXJuIF9fdHlwZW9mIChta3RpbWUpIHRpbWVsb2NhbCBfX2F0dHJp
YnV0ZV9fICgod2VhaywgYWxpYXMgKCJta3RpbWUiKSkpOwoKCgoKCg==


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]