From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31888 invoked by alias); 2 Oct 2002 08:26:04 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 31791 invoked by uid 71); 2 Oct 2002 08:26:03 -0000 Resent-Date: 2 Oct 2002 08:26:03 -0000 Resent-Message-ID: <20021002082603.31790.qmail@sources.redhat.com> Resent-From: gcc-gnats@gcc.gnu.org (GNATS Filer) Resent-Cc: gcc-prs@gcc.gnu.org, gcc-bugs@gcc.gnu.org Resent-Reply-To: gcc-gnats@gcc.gnu.org, aj@suse.de Received: (qmail 15781 invoked by uid 61); 2 Oct 2002 08:19:37 -0000 Message-Id: <20021002081937.15780.qmail@sources.redhat.com> Date: Wed, 02 Oct 2002 01:26:00 -0000 From: aj@suse.de Reply-To: aj@suse.de To: gcc-gnats@gcc.gnu.org X-Send-Pr-Version: gnatsweb-2.9.3 (1.1.1.1.2.31) Subject: debug/8119: -feliminate-dwarf2-dups -g broken on ix86 X-SW-Source: 2002-10/txt/msg00043.txt.bz2 List-Id: >Number: 8119 >Category: debug >Synopsis: -feliminate-dwarf2-dups -g broken on ix86 >Confidential: no >Severity: serious >Priority: medium >Responsible: unassigned >State: open >Class: ice-on-legal-code >Submitter-Id: net >Arrival-Date: Wed Oct 02 01:26:02 PDT 2002 >Closed-Date: >Last-Modified: >Originator: aj@suse.de >Release: gcc (GCC) 3.3 20020925 (experimental) (also gcc 3.2) >Organization: >Environment: SuSE Linux 8.0 on i686. >Description: gee:~/tmp:[1]$ /opt/gcc/3.2-devel/bin/gcc -O2 -g -feliminate-dwarf2-dups hello.c -save-temps -v Reading specs from /opt/gcc/3.2-devel/lib/gcc-lib/i686-pc-linux-gnu/3.3/specs Configured with: /cvs/gcc/configure --prefix=/opt/gcc/3.2-devel --enable-shared --enable-threads=posix --enable-clocale=gnu --disable-nls --enable-__cxa_atexit --enable-languages=c,c++,f77,java,objc,ada,treelang --enable-checking=misc,tree,gc,rtlflag --with-system-zlib Thread model: posix gcc version 3.3 20020925 (experimental) /opt/gcc/3.2-devel/lib/gcc-lib/i686-pc-linux-gnu/3.3/cc1 -E -quiet -v -D__GNUC__=3 -D__GNUC_MINOR__=3 -D__GNUC_PATCHLEVEL__=0 hello.c -feliminate-dwarf2-dups -O2 hello.i ignoring nonexistent directory "/opt/gcc/3.2-devel/i686-pc-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/local/include /opt/gcc/3.2-devel/include /opt/gcc/3.2-devel/lib/gcc-lib/i686-pc-linux-gnu/3.3/include /usr/include End of search list. /opt/gcc/3.2-devel/lib/gcc-lib/i686-pc-linux-gnu/3.3/cc1 -fpreprocessed hello.i -quiet -dumpbase hello.c -auxbase hello -g -O2 -version -feliminate-dwarf2-dups -o hello.s GNU C version 3.3 20020925 (experimental) (i686-pc-linux-gnu) compiled by GNU C version 3.3 20020925 (experimental). hello.c:10: internal compiler error: in build_abbrev_table, at dwarf2out.c:5787 Please submit a full bug report, with preprocessed source if appropriate. See for instructions. Note the same bug appears with GCC 3.2. The bug is reproduceable on x86 and x86-64. >How-To-Repeat: Just compile the attached file. >Fix: >Release-Note: >Audit-Trail: >Unformatted: ----gnatsweb-attachment---- Content-Type: application/octet-stream; name="hello.i" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="hello.i" IyAxICJoZWxsby5jIgojIDEgIjxidWlsdC1pbj4iCiMgMSAiPGNvbW1hbmQgbGluZT4iCiMgMSAi aGVsbG8uYyIKIyAxICIvb3B0L2djYy8zLjItZGV2ZWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51 eC1nbnUvMy4zL2luY2x1ZGUvc3RkaW8uaCIgMSAzIDQKIyAzNyAiL29wdC9nY2MvMy4yLWRldmVs L2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMy9pbmNsdWRlL3N0ZGlvLmgiIDMgNAoj IDEgIi91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAxIDMgNAojIDI4MyAiL3Vzci9pbmNsdWRlL2Zl YXR1cmVzLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9zeXMvY2RlZnMuaCIgMSAzIDQKIyAyODQg Ii91c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAyIDMgNAojIDMxMiAiL3Vzci9pbmNsdWRlL2ZlYXR1 cmVzLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9nbnUvc3R1YnMuaCIgMSAzIDQKIyAzMTMgIi91 c3IvaW5jbHVkZS9mZWF0dXJlcy5oIiAyIDMgNAojIDM4ICIvb3B0L2djYy8zLjItZGV2ZWwvbGli L2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4zL2luY2x1ZGUvc3RkaW8uaCIgMiAzIDQKCgoK CgojIDEgIi9vcHQvZ2NjLzMuMi1kZXZlbC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8z LjMvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKIyAyMDMgIi9vcHQvZ2NjLzMuMi1kZXZlbC9saWIv Z2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjMvaW5jbHVkZS9zdGRkZWYuaCIgMyA0CnR5cGVk ZWYgdW5zaWduZWQgaW50IHNpemVfdDsKIyA0NCAiL29wdC9nY2MvMy4yLWRldmVsL2xpYi9nY2Mt bGliL2k2ODYtcGMtbGludXgtZ251LzMuMy9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0CgojIDEgIi91 c3IvaW5jbHVkZS9iaXRzL3R5cGVzLmgiIDEgMyA0CiMgMjkgIi91c3IvaW5jbHVkZS9iaXRzL3R5 cGVzLmgiIDMgNAojIDEgIi9vcHQvZ2NjLzMuMi1kZXZlbC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxp bnV4LWdudS8zLjMvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKIyAzMCAiL3Vzci9pbmNsdWRlL2Jp dHMvdHlwZXMuaCIgMiAzIDQKCgp0eXBlZGVmIHVuc2lnbmVkIGNoYXIgX191X2NoYXI7CnR5cGVk ZWYgdW5zaWduZWQgc2hvcnQgX191X3Nob3J0Owp0eXBlZGVmIHVuc2lnbmVkIGludCBfX3VfaW50 Owp0eXBlZGVmIHVuc2lnbmVkIGxvbmcgX191X2xvbmc7CgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYg dW5zaWduZWQgbG9uZyBsb25nIGludCBfX3VfcXVhZF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYg bG9uZyBsb25nIGludCBfX3F1YWRfdDsKIyA0OSAiL3Vzci9pbmNsdWRlL2JpdHMvdHlwZXMuaCIg MyA0CnR5cGVkZWYgc2lnbmVkIGNoYXIgX19pbnQ4X3Q7CnR5cGVkZWYgdW5zaWduZWQgY2hhciBf X3VpbnQ4X3Q7CnR5cGVkZWYgc2lnbmVkIHNob3J0IGludCBfX2ludDE2X3Q7CnR5cGVkZWYgdW5z aWduZWQgc2hvcnQgaW50IF9fdWludDE2X3Q7CnR5cGVkZWYgc2lnbmVkIGludCBfX2ludDMyX3Q7 CnR5cGVkZWYgdW5zaWduZWQgaW50IF9fdWludDMyX3Q7CgpfX2V4dGVuc2lvbl9fIHR5cGVkZWYg c2lnbmVkIGxvbmcgbG9uZyBpbnQgX19pbnQ2NF90OwpfX2V4dGVuc2lvbl9fIHR5cGVkZWYgdW5z aWduZWQgbG9uZyBsb25nIGludCBfX3VpbnQ2NF90OwoKdHlwZWRlZiBfX3F1YWRfdCAqX19xYWRk cl90OwoKdHlwZWRlZiBfX3VfcXVhZF90IF9fZGV2X3Q7CnR5cGVkZWYgX191X2ludCBfX3VpZF90 Owp0eXBlZGVmIF9fdV9pbnQgX19naWRfdDsKdHlwZWRlZiBfX3VfbG9uZyBfX2lub190Owp0eXBl ZGVmIF9fdV9pbnQgX19tb2RlX3Q7CnR5cGVkZWYgX191X2ludCBfX25saW5rX3Q7CnR5cGVkZWYg bG9uZyBpbnQgX19vZmZfdDsKdHlwZWRlZiBfX3F1YWRfdCBfX2xvZmZfdDsKdHlwZWRlZiBpbnQg X19waWRfdDsKdHlwZWRlZiBpbnQgX19zc2l6ZV90Owp0eXBlZGVmIF9fdV9sb25nIF9fcmxpbV90 Owp0eXBlZGVmIF9fdV9xdWFkX3QgX19ybGltNjRfdDsKdHlwZWRlZiBfX3VfaW50IF9faWRfdDsK CnR5cGVkZWYgc3RydWN0CiAgewogICAgaW50IF9fdmFsWzJdOwogIH0gX19mc2lkX3Q7CgoKdHlw ZWRlZiBpbnQgX19kYWRkcl90Owp0eXBlZGVmIGNoYXIgKl9fY2FkZHJfdDsKdHlwZWRlZiBsb25n IGludCBfX3RpbWVfdDsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX191c2Vjb25kc190Owp0eXBlZGVm IGxvbmcgaW50IF9fc3VzZWNvbmRzX3Q7CnR5cGVkZWYgbG9uZyBpbnQgX19zd2Jsa190OwoKdHlw ZWRlZiBsb25nIGludCBfX2Nsb2NrX3Q7CgoKdHlwZWRlZiBpbnQgX19jbG9ja2lkX3Q7CgoKdHlw ZWRlZiBpbnQgX190aW1lcl90OwoKCgoKCgp0eXBlZGVmIGludCBfX2tleV90OwoKCnR5cGVkZWYg dW5zaWduZWQgc2hvcnQgaW50IF9faXBjX3BpZF90OwoKCgp0eXBlZGVmIGxvbmcgaW50IF9fYmxr c2l6ZV90OwoKCgoKdHlwZWRlZiBsb25nIGludCBfX2Jsa2NudF90Owp0eXBlZGVmIF9fcXVhZF90 IF9fYmxrY250NjRfdDsKCgp0eXBlZGVmIF9fdV9sb25nIF9fZnNibGtjbnRfdDsKdHlwZWRlZiBf X3VfcXVhZF90IF9fZnNibGtjbnQ2NF90OwoKCnR5cGVkZWYgX191X2xvbmcgX19mc2ZpbGNudF90 Owp0eXBlZGVmIF9fdV9xdWFkX3QgX19mc2ZpbGNudDY0X3Q7CgoKdHlwZWRlZiBfX3VfcXVhZF90 IF9faW5vNjRfdDsKCgp0eXBlZGVmIF9fbG9mZl90IF9fb2ZmNjRfdDsKCgp0eXBlZGVmIGxvbmcg aW50IF9fdF9zY2FsYXJfdDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBfX3RfdXNjYWxhcl90 OwoKCnR5cGVkZWYgaW50IF9faW50cHRyX3Q7CgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX19zb2Nr bGVuX3Q7CgoKCgojIDEgIi91c3IvaW5jbHVkZS9iaXRzL3B0aHJlYWR0eXBlcy5oIiAxIDMgNAoj IDIzICIvdXNyL2luY2x1ZGUvYml0cy9wdGhyZWFkdHlwZXMuaCIgMyA0CiMgMSAiL3Vzci9pbmNs dWRlL2JpdHMvc2NoZWQuaCIgMSAzIDQKIyA2OCAiL3Vzci9pbmNsdWRlL2JpdHMvc2NoZWQuaCIg MyA0CnN0cnVjdCBfX3NjaGVkX3BhcmFtCiAgewogICAgaW50IF9fc2NoZWRfcHJpb3JpdHk7CiAg fTsKIyAyNCAiL3Vzci9pbmNsdWRlL2JpdHMvcHRocmVhZHR5cGVzLmgiIDIgMyA0CgoKc3RydWN0 IF9wdGhyZWFkX2Zhc3Rsb2NrCnsKICBsb25nIGludCBfX3N0YXR1czsKICBpbnQgX19zcGlubG9j azsKCn07CgoKCnR5cGVkZWYgc3RydWN0IF9wdGhyZWFkX2Rlc2NyX3N0cnVjdCAqX3B0aHJlYWRf ZGVzY3I7CgoKCgoKdHlwZWRlZiBzdHJ1Y3QgX19wdGhyZWFkX2F0dHJfcwp7CiAgaW50IF9fZGV0 YWNoc3RhdGU7CiAgaW50IF9fc2NoZWRwb2xpY3k7CiAgc3RydWN0IF9fc2NoZWRfcGFyYW0gX19z Y2hlZHBhcmFtOwogIGludCBfX2luaGVyaXRzY2hlZDsKICBpbnQgX19zY29wZTsKICBzaXplX3Qg X19ndWFyZHNpemU7CiAgaW50IF9fc3RhY2thZGRyX3NldDsKICB2b2lkICpfX3N0YWNrYWRkcjsK ICBzaXplX3QgX19zdGFja3NpemU7Cn0gcHRocmVhZF9hdHRyX3Q7CgoKCnR5cGVkZWYgc3RydWN0 CnsKICBzdHJ1Y3QgX3B0aHJlYWRfZmFzdGxvY2sgX19jX2xvY2s7CiAgX3B0aHJlYWRfZGVzY3Ig X19jX3dhaXRpbmc7Cn0gcHRocmVhZF9jb25kX3Q7CgoKCnR5cGVkZWYgc3RydWN0CnsKICBpbnQg X19kdW1teTsKfSBwdGhyZWFkX2NvbmRhdHRyX3Q7CgoKdHlwZWRlZiB1bnNpZ25lZCBpbnQgcHRo cmVhZF9rZXlfdDsKCgoKCgp0eXBlZGVmIHN0cnVjdAp7CiAgaW50IF9fbV9yZXNlcnZlZDsKICBp bnQgX19tX2NvdW50OwogIF9wdGhyZWFkX2Rlc2NyIF9fbV9vd25lcjsKICBpbnQgX19tX2tpbmQ7 CiAgc3RydWN0IF9wdGhyZWFkX2Zhc3Rsb2NrIF9fbV9sb2NrOwp9IHB0aHJlYWRfbXV0ZXhfdDsK CgoKdHlwZWRlZiBzdHJ1Y3QKewogIGludCBfX211dGV4a2luZDsKfSBwdGhyZWFkX211dGV4YXR0 cl90OwoKCgp0eXBlZGVmIGludCBwdGhyZWFkX29uY2VfdDsKIyAxNDAgIi91c3IvaW5jbHVkZS9i aXRzL3B0aHJlYWR0eXBlcy5oIiAzIDQKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGludCBwdGhyZWFk X3Q7CiMgMTQ0ICIvdXNyL2luY2x1ZGUvYml0cy90eXBlcy5oIiAyIDMgNAojIDQ2ICIvb3B0L2dj Yy8zLjItZGV2ZWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4zL2luY2x1ZGUvc3Rk aW8uaCIgMiAzIDQKIyA1NCAiL29wdC9nY2MvMy4yLWRldmVsL2xpYi9nY2MtbGliL2k2ODYtcGMt bGludXgtZ251LzMuMy9pbmNsdWRlL3N0ZGlvLmgiIDMgNAp0eXBlZGVmIHN0cnVjdCBfSU9fRklM RSBGSUxFOwojIDY0ICIvb3B0L2djYy8zLjItZGV2ZWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51 eC1nbnUvMy4zL2luY2x1ZGUvc3RkaW8uaCIgMyA0CnR5cGVkZWYgc3RydWN0IF9JT19GSUxFIF9f RklMRTsKIyA3NCAiL29wdC9nY2MvMy4yLWRldmVsL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgt Z251LzMuMy9pbmNsdWRlL3N0ZGlvLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9saWJpby5oIiAx IDMgNAojIDMyICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL19H X2NvbmZpZy5oIiAxIDMgNAojIDE0ICIvdXNyL2luY2x1ZGUvX0dfY29uZmlnLmgiIDMgNAojIDEg Ii9vcHQvZ2NjLzMuMi1kZXZlbC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjMvaW5j bHVkZS9zdGRkZWYuaCIgMSAzIDQKIyAyOTkgIi9vcHQvZ2NjLzMuMi1kZXZlbC9saWIvZ2NjLWxp Yi9pNjg2LXBjLWxpbnV4LWdudS8zLjMvaW5jbHVkZS9zdGRkZWYuaCIgMyA0CnR5cGVkZWYgbG9u ZyBpbnQgd2NoYXJfdDsKIyAzMjcgIi9vcHQvZ2NjLzMuMi1kZXZlbC9saWIvZ2NjLWxpYi9pNjg2 LXBjLWxpbnV4LWdudS8zLjMvaW5jbHVkZS9zdGRkZWYuaCIgMyA0CnR5cGVkZWYgdW5zaWduZWQg aW50IHdpbnRfdDsKIyAxNSAiL3Vzci9pbmNsdWRlL19HX2NvbmZpZy5oIiAyIDMgNAojIDI0ICIv dXNyL2luY2x1ZGUvX0dfY29uZmlnLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS93Y2hhci5oIiAx IDMgNAojIDQ4ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMyA0CiMgMSAiL29wdC9nY2MvMy4yLWRl dmVsL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMy9pbmNsdWRlL3N0ZGRlZi5oIiAx IDMgNAojIDQ5ICIvdXNyL2luY2x1ZGUvd2NoYXIuaCIgMiAzIDQKCiMgMSAiL3Vzci9pbmNsdWRl L2JpdHMvd2NoYXIuaCIgMSAzIDQKIyA1MSAiL3Vzci9pbmNsdWRlL3djaGFyLmgiIDIgMyA0CiMg NjcgIi91c3IvaW5jbHVkZS93Y2hhci5oIiAzIDQKdHlwZWRlZiBzdHJ1Y3QKewogIGludCBfX2Nv dW50OwogIHVuaW9uCiAgewogICAgd2ludF90IF9fd2NoOwogICAgY2hhciBfX3djaGJbNF07CiAg fSBfX3ZhbHVlOwp9IF9fbWJzdGF0ZV90OwojIDI1ICIvdXNyL2luY2x1ZGUvX0dfY29uZmlnLmgi IDIgMyA0Cgp0eXBlZGVmIHN0cnVjdAp7CiAgX19vZmZfdCBfX3BvczsKICBfX21ic3RhdGVfdCBf X3N0YXRlOwp9IF9HX2Zwb3NfdDsKdHlwZWRlZiBzdHJ1Y3QKewogIF9fb2ZmNjRfdCBfX3BvczsK ICBfX21ic3RhdGVfdCBfX3N0YXRlOwp9IF9HX2Zwb3M2NF90OwojIDQ0ICIvdXNyL2luY2x1ZGUv X0dfY29uZmlnLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9nY29udi5oIiAxIDMgNAojIDI4ICIv dXNyL2luY2x1ZGUvZ2NvbnYuaCIgMyA0CiMgMSAiL3Vzci9pbmNsdWRlL3djaGFyLmgiIDEgMyA0 CiMgNDggIi91c3IvaW5jbHVkZS93Y2hhci5oIiAzIDQKIyAxICIvb3B0L2djYy8zLjItZGV2ZWwv bGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4zL2luY2x1ZGUvc3RkZGVmLmgiIDEgMyA0 CiMgNDkgIi91c3IvaW5jbHVkZS93Y2hhci5oIiAyIDMgNAojIDI5ICIvdXNyL2luY2x1ZGUvZ2Nv bnYuaCIgMiAzIDQKCgojIDEgIi9vcHQvZ2NjLzMuMi1kZXZlbC9saWIvZ2NjLWxpYi9pNjg2LXBj LWxpbnV4LWdudS8zLjMvaW5jbHVkZS9zdGRkZWYuaCIgMSAzIDQKIyAzMiAiL3Vzci9pbmNsdWRl L2djb252LmgiIDIgMyA0CgoKCgoKZW51bQp7CiAgX19HQ09OVl9PSyA9IDAsCiAgX19HQ09OVl9O T0NPTlYsCiAgX19HQ09OVl9OT0RCLAogIF9fR0NPTlZfTk9NRU0sCgogIF9fR0NPTlZfRU1QVFlf SU5QVVQsCiAgX19HQ09OVl9GVUxMX09VVFBVVCwKICBfX0dDT05WX0lMTEVHQUxfSU5QVVQsCiAg X19HQ09OVl9JTkNPTVBMRVRFX0lOUFVULAoKICBfX0dDT05WX0lMTEVHQUxfREVTQ1JJUFRPUiwK ICBfX0dDT05WX0lOVEVSTkFMX0VSUk9SCn07CgoKCmVudW0KewogIF9fR0NPTlZfSVNfTEFTVCA9 IDB4MDAwMSwKICBfX0dDT05WX0lHTk9SRV9FUlJPUlMgPSAweDAwMDIKfTsKCgoKc3RydWN0IF9f Z2NvbnZfc3RlcDsKc3RydWN0IF9fZ2NvbnZfc3RlcF9kYXRhOwpzdHJ1Y3QgX19nY29udl9sb2Fk ZWRfb2JqZWN0OwpzdHJ1Y3QgX19nY29udl90cmFuc19kYXRhOwoKCgp0eXBlZGVmIGludCAoKl9f Z2NvbnZfZmN0KSAoc3RydWN0IF9fZ2NvbnZfc3RlcCAqLCBzdHJ1Y3QgX19nY29udl9zdGVwX2Rh dGEgKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgdW5zaWduZWQgY2hhciAq KiwgX19jb25zdCB1bnNpZ25lZCBjaGFyICosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 bnNpZ25lZCBjaGFyICoqLCBzaXplX3QgKiwgaW50LCBpbnQpOwoKCnR5cGVkZWYgaW50ICgqX19n Y29udl9pbml0X2ZjdCkgKHN0cnVjdCBfX2djb252X3N0ZXAgKik7CnR5cGVkZWYgdm9pZCAoKl9f Z2NvbnZfZW5kX2ZjdCkgKHN0cnVjdCBfX2djb252X3N0ZXAgKik7CgoKCnR5cGVkZWYgaW50ICgq X19nY29udl90cmFuc19mY3QpIChzdHJ1Y3QgX19nY29udl9zdGVwICosCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgX19nY29udl9zdGVwX2RhdGEgKiwgdm9pZCAqLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX19jb25zdCB1bnNpZ25lZCBjaGFyICos CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIg KiosCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IHVuc2lnbmVkIGNo YXIgKiwgdW5zaWduZWQgY2hhciAqKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNpemVfdCAqKTsKCgp0eXBlZGVmIGludCAoKl9fZ2NvbnZfdHJhbnNfY29udGV4dF9mY3QpICh2 b2lkICosIF9fY29uc3QgdW5zaWduZWQgY2hhciAqLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBfX2NvbnN0IHVuc2lnbmVkIGNoYXIgKiwKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgY2hhciAqLCB1bnNpZ25lZCBjaGFy ICopOwoKCnR5cGVkZWYgaW50ICgqX19nY29udl90cmFuc19xdWVyeV9mY3QpIChfX2NvbnN0IGNo YXIgKiwgX19jb25zdCBjaGFyICoqKiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHNpemVfdCAqKTsKCgp0eXBlZGVmIGludCAoKl9fZ2NvbnZfdHJhbnNfaW5pdF9mY3Qp ICh2b2lkICoqLCBjb25zdCBjaGFyICopOwp0eXBlZGVmIHZvaWQgKCpfX2djb252X3RyYW5zX2Vu ZF9mY3QpICh2b2lkICopOwoKc3RydWN0IF9fZ2NvbnZfdHJhbnNfZGF0YQp7CgogIF9fZ2NvbnZf dHJhbnNfZmN0IF9fdHJhbnNfZmN0OwogIF9fZ2NvbnZfdHJhbnNfY29udGV4dF9mY3QgX190cmFu c19jb250ZXh0X2ZjdDsKICBfX2djb252X3RyYW5zX2VuZF9mY3QgX190cmFuc19lbmRfZmN0Owog IHZvaWQgKl9fZGF0YTsKICBzdHJ1Y3QgX19nY29udl90cmFuc19kYXRhICpfX25leHQ7Cn07CgoK CnN0cnVjdCBfX2djb252X3N0ZXAKewogIHN0cnVjdCBfX2djb252X2xvYWRlZF9vYmplY3QgKl9f c2hsaWJfaGFuZGxlOwogIF9fY29uc3QgY2hhciAqX19tb2RuYW1lOwoKICBpbnQgX19jb3VudGVy OwoKICBjaGFyICpfX2Zyb21fbmFtZTsKICBjaGFyICpfX3RvX25hbWU7CgogIF9fZ2NvbnZfZmN0 IF9fZmN0OwogIF9fZ2NvbnZfaW5pdF9mY3QgX19pbml0X2ZjdDsKICBfX2djb252X2VuZF9mY3Qg X19lbmRfZmN0OwoKCgogIGludCBfX21pbl9uZWVkZWRfZnJvbTsKICBpbnQgX19tYXhfbmVlZGVk X2Zyb207CiAgaW50IF9fbWluX25lZWRlZF90bzsKICBpbnQgX19tYXhfbmVlZGVkX3RvOwoKCiAg aW50IF9fc3RhdGVmdWw7CgogIHZvaWQgKl9fZGF0YTsKfTsKCgoKc3RydWN0IF9fZ2NvbnZfc3Rl cF9kYXRhCnsKICB1bnNpZ25lZCBjaGFyICpfX291dGJ1ZjsKICB1bnNpZ25lZCBjaGFyICpfX291 dGJ1ZmVuZDsKCgoKICBpbnQgX19mbGFnczsKCgoKICBpbnQgX19pbnZvY2F0aW9uX2NvdW50ZXI7 CgoKCiAgaW50IF9faW50ZXJuYWxfdXNlOwoKICBfX21ic3RhdGVfdCAqX19zdGF0ZXA7CiAgX19t YnN0YXRlX3QgX19zdGF0ZTsKCgoKICBzdHJ1Y3QgX19nY29udl90cmFuc19kYXRhICpfX3RyYW5z Owp9OwoKCgp0eXBlZGVmIHN0cnVjdCBfX2djb252X2luZm8KewogIHNpemVfdCBfX25zdGVwczsK ICBzdHJ1Y3QgX19nY29udl9zdGVwICpfX3N0ZXBzOwogIF9fZXh0ZW5zaW9uX18gc3RydWN0IF9f Z2NvbnZfc3RlcF9kYXRhIF9fZGF0YSBbXTsKfSAqX19nY29udl90OwojIDQ1ICIvdXNyL2luY2x1 ZGUvX0dfY29uZmlnLmgiIDIgMyA0CnR5cGVkZWYgdW5pb24KewogIHN0cnVjdCBfX2djb252X2lu Zm8gX19jZDsKICBzdHJ1Y3QKICB7CiAgICBzdHJ1Y3QgX19nY29udl9pbmZvIF9fY2Q7CiAgICBz dHJ1Y3QgX19nY29udl9zdGVwX2RhdGEgX19kYXRhOwogIH0gX19jb21iaW5lZDsKfSBfR19pY29u dl90OwoKdHlwZWRlZiBpbnQgX0dfaW50MTZfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18gKF9f SElfXykpKTsKdHlwZWRlZiBpbnQgX0dfaW50MzJfdCBfX2F0dHJpYnV0ZV9fICgoX19tb2RlX18g KF9fU0lfXykpKTsKdHlwZWRlZiB1bnNpZ25lZCBpbnQgX0dfdWludDE2X3QgX19hdHRyaWJ1dGVf XyAoKF9fbW9kZV9fIChfX0hJX18pKSk7CnR5cGVkZWYgdW5zaWduZWQgaW50IF9HX3VpbnQzMl90 IF9fYXR0cmlidXRlX18gKChfX21vZGVfXyAoX19TSV9fKSkpOwojIDMzICIvdXNyL2luY2x1ZGUv bGliaW8uaCIgMiAzIDQKIyA1MyAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNAojIDEgIi9vcHQv Z2NjLzMuMi1kZXZlbC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjMvaW5jbHVkZS9z dGRhcmcuaCIgMSAzIDQKIyA0MyAiL29wdC9nY2MvMy4yLWRldmVsL2xpYi9nY2MtbGliL2k2ODYt cGMtbGludXgtZ251LzMuMy9pbmNsdWRlL3N0ZGFyZy5oIiAzIDQKdHlwZWRlZiBfX2J1aWx0aW5f dmFfbGlzdCBfX2dudWNfdmFfbGlzdDsKIyA1NCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDIgMyA0 CiMgMTYwICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0CnN0cnVjdCBfSU9fanVtcF90OyBzdHJ1 Y3QgX0lPX0ZJTEU7CiMgMTcwICIvdXNyL2luY2x1ZGUvbGliaW8uaCIgMyA0CnR5cGVkZWYgdm9p ZCBfSU9fbG9ja190OwoKCgoKCnN0cnVjdCBfSU9fbWFya2VyIHsKICBzdHJ1Y3QgX0lPX21hcmtl ciAqX25leHQ7CiAgc3RydWN0IF9JT19GSUxFICpfc2J1ZjsKCgoKICBpbnQgX3BvczsKIyAxOTMg Ii91c3IvaW5jbHVkZS9saWJpby5oIiAzIDQKfTsKCgplbnVtIF9fY29kZWN2dF9yZXN1bHQKewog IF9fY29kZWN2dF9vaywKICBfX2NvZGVjdnRfcGFydGlhbCwKICBfX2NvZGVjdnRfZXJyb3IsCiAg X19jb2RlY3Z0X25vY29udgp9OwojIDI2MSAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNApzdHJ1 Y3QgX0lPX0ZJTEUgewogIGludCBfZmxhZ3M7CgoKCgogIGNoYXIqIF9JT19yZWFkX3B0cjsKICBj aGFyKiBfSU9fcmVhZF9lbmQ7CiAgY2hhciogX0lPX3JlYWRfYmFzZTsKICBjaGFyKiBfSU9fd3Jp dGVfYmFzZTsKICBjaGFyKiBfSU9fd3JpdGVfcHRyOwogIGNoYXIqIF9JT193cml0ZV9lbmQ7CiAg Y2hhciogX0lPX2J1Zl9iYXNlOwogIGNoYXIqIF9JT19idWZfZW5kOwoKICBjaGFyICpfSU9fc2F2 ZV9iYXNlOwogIGNoYXIgKl9JT19iYWNrdXBfYmFzZTsKICBjaGFyICpfSU9fc2F2ZV9lbmQ7Cgog IHN0cnVjdCBfSU9fbWFya2VyICpfbWFya2VyczsKCiAgc3RydWN0IF9JT19GSUxFICpfY2hhaW47 CgogIGludCBfZmlsZW5vOwogIGludCBfYmxrc2l6ZTsKICBfX29mZl90IF9vbGRfb2Zmc2V0OwoK CgogIHVuc2lnbmVkIHNob3J0IF9jdXJfY29sdW1uOwogIHNpZ25lZCBjaGFyIF92dGFibGVfb2Zm c2V0OwogIGNoYXIgX3Nob3J0YnVmWzFdOwoKCgogIF9JT19sb2NrX3QgKl9sb2NrOwojIDMwNSAi L3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNAogIF9fb2ZmNjRfdCBfb2Zmc2V0OwoKCgoKCiAgdm9p ZCAqX19wYWQxOwogIHZvaWQgKl9fcGFkMjsKCiAgaW50IF9tb2RlOwoKICBjaGFyIF91bnVzZWQy WzE1ICogc2l6ZW9mIChpbnQpIC0gMiAqIHNpemVvZiAodm9pZCAqKV07Cgp9OwoKCnR5cGVkZWYg c3RydWN0IF9JT19GSUxFIF9JT19GSUxFOwoKCnN0cnVjdCBfSU9fRklMRV9wbHVzOwoKZXh0ZXJu IHN0cnVjdCBfSU9fRklMRV9wbHVzIF9JT18yXzFfc3RkaW5fOwpleHRlcm4gc3RydWN0IF9JT19G SUxFX3BsdXMgX0lPXzJfMV9zdGRvdXRfOwpleHRlcm4gc3RydWN0IF9JT19GSUxFX3BsdXMgX0lP XzJfMV9zdGRlcnJfOwojIDM0NCAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNAp0eXBlZGVmIF9f c3NpemVfdCBfX2lvX3JlYWRfZm4gKHZvaWQgKl9fY29va2llLCBjaGFyICpfX2J1Ziwgc2l6ZV90 IF9fbmJ5dGVzKTsKCgoKCgoKCnR5cGVkZWYgX19zc2l6ZV90IF9faW9fd3JpdGVfZm4gKHZvaWQg Kl9fY29va2llLCBfX2NvbnN0IGNoYXIgKl9fYnVmLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBzaXplX3QgX19uKTsKCgoKCgoKCnR5cGVkZWYgaW50IF9faW9fc2Vla19mbiAodm9p ZCAqX19jb29raWUsIF9fb2ZmNjRfdCAqX19wb3MsIGludCBfX3cpOwoKCnR5cGVkZWYgaW50IF9f aW9fY2xvc2VfZm4gKHZvaWQgKl9fY29va2llKTsKIyAzOTYgIi91c3IvaW5jbHVkZS9saWJpby5o IiAzIDQKZXh0ZXJuIGludCBfX3VuZGVyZmxvdyAoX0lPX0ZJTEUgKikgOwpleHRlcm4gaW50IF9f dWZsb3cgKF9JT19GSUxFICopIDsKZXh0ZXJuIGludCBfX292ZXJmbG93IChfSU9fRklMRSAqLCBp bnQpIDsKZXh0ZXJuIHdpbnRfdCBfX3d1bmRlcmZsb3cgKF9JT19GSUxFICopIDsKZXh0ZXJuIHdp bnRfdCBfX3d1ZmxvdyAoX0lPX0ZJTEUgKikgOwpleHRlcm4gd2ludF90IF9fd292ZXJmbG93IChf SU9fRklMRSAqLCB3aW50X3QpIDsKIyA0MjYgIi91c3IvaW5jbHVkZS9saWJpby5oIiAzIDQKZXh0 ZXJuIGludCBfSU9fZ2V0YyAoX0lPX0ZJTEUgKl9fZnApIDsKZXh0ZXJuIGludCBfSU9fcHV0YyAo aW50IF9fYywgX0lPX0ZJTEUgKl9fZnApIDsKZXh0ZXJuIGludCBfSU9fZmVvZiAoX0lPX0ZJTEUg Kl9fZnApIDsKZXh0ZXJuIGludCBfSU9fZmVycm9yIChfSU9fRklMRSAqX19mcCkgOwoKZXh0ZXJu IGludCBfSU9fcGVla2NfbG9ja2VkIChfSU9fRklMRSAqX19mcCkgOwoKCgoKCmV4dGVybiB2b2lk IF9JT19mbG9ja2ZpbGUgKF9JT19GSUxFICopIDsKZXh0ZXJuIHZvaWQgX0lPX2Z1bmxvY2tmaWxl IChfSU9fRklMRSAqKSA7CmV4dGVybiBpbnQgX0lPX2Z0cnlsb2NrZmlsZSAoX0lPX0ZJTEUgKikg OwojIDQ1NiAiL3Vzci9pbmNsdWRlL2xpYmlvLmgiIDMgNApleHRlcm4gaW50IF9JT192ZnNjYW5m IChfSU9fRklMRSAqIF9fcmVzdHJpY3QsIGNvbnN0IGNoYXIgKiBfX3Jlc3RyaWN0LAogICAgICAg ICAgICAgICAgICAgICAgICBfX2dudWNfdmFfbGlzdCwgaW50ICpfX3Jlc3RyaWN0KSA7CmV4dGVy biBpbnQgX0lPX3ZmcHJpbnRmIChfSU9fRklMRSAqX19yZXN0cmljdCwgY29uc3QgY2hhciAqX19y ZXN0cmljdCwKICAgICAgICAgICAgICAgICAgICAgICAgIF9fZ251Y192YV9saXN0KSA7CmV4dGVy biBfX3NzaXplX3QgX0lPX3BhZG4gKF9JT19GSUxFICosIGludCwgX19zc2l6ZV90KSA7CmV4dGVy biBzaXplX3QgX0lPX3NnZXRuIChfSU9fRklMRSAqLCB2b2lkICosIHNpemVfdCkgOwoKZXh0ZXJu IF9fb2ZmNjRfdCBfSU9fc2Vla29mZiAoX0lPX0ZJTEUgKiwgX19vZmY2NF90LCBpbnQsIGludCkg OwpleHRlcm4gX19vZmY2NF90IF9JT19zZWVrcG9zIChfSU9fRklMRSAqLCBfX29mZjY0X3QsIGlu dCkgOwoKZXh0ZXJuIHZvaWQgX0lPX2ZyZWVfYmFja3VwX2FyZWEgKF9JT19GSUxFICopIDsKIyA3 NSAiL29wdC9nY2MvMy4yLWRldmVsL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMy9p bmNsdWRlL3N0ZGlvLmgiIDIgMyA0CiMgODkgIi9vcHQvZ2NjLzMuMi1kZXZlbC9saWIvZ2NjLWxp Yi9pNjg2LXBjLWxpbnV4LWdudS8zLjMvaW5jbHVkZS9zdGRpby5oIiAzIDQKdHlwZWRlZiBfR19m cG9zX3QgZnBvc190OwojIDEzOCAiL29wdC9nY2MvMy4yLWRldmVsL2xpYi9nY2MtbGliL2k2ODYt cGMtbGludXgtZ251LzMuMy9pbmNsdWRlL3N0ZGlvLmgiIDMgNAojIDEgIi91c3IvaW5jbHVkZS9i aXRzL3N0ZGlvX2xpbS5oIiAxIDMgNAojIDEzOSAiL29wdC9nY2MvMy4yLWRldmVsL2xpYi9nY2Mt bGliL2k2ODYtcGMtbGludXgtZ251LzMuMy9pbmNsdWRlL3N0ZGlvLmgiIDIgMyA0CgoKCmV4dGVy biBGSUxFICpzdGRpbjsKZXh0ZXJuIEZJTEUgKnN0ZG91dDsKZXh0ZXJuIEZJTEUgKnN0ZGVycjsK CgoKCgoKZXh0ZXJuIGludCByZW1vdmUgKF9fY29uc3QgY2hhciAqX19maWxlbmFtZSkgOwoKZXh0 ZXJuIGludCByZW5hbWUgKF9fY29uc3QgY2hhciAqX19vbGQsIF9fY29uc3QgY2hhciAqX19uZXcp IDsKCgoKCmV4dGVybiBGSUxFICp0bXBmaWxlICh2b2lkKSA7CiMgMTcwICIvb3B0L2djYy8zLjIt ZGV2ZWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4zL2luY2x1ZGUvc3RkaW8uaCIg MyA0CmV4dGVybiBjaGFyICp0bXBuYW0gKGNoYXIgKl9fcykgOwoKCgoKZXh0ZXJuIGNoYXIgKnRt cG5hbV9yIChjaGFyICpfX3MpIDsKIyAxODcgIi9vcHQvZ2NjLzMuMi1kZXZlbC9saWIvZ2NjLWxp Yi9pNjg2LXBjLWxpbnV4LWdudS8zLjMvaW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0ZXJuIGNoYXIg KnRlbXBuYW0gKF9fY29uc3QgY2hhciAqX19kaXIsIF9fY29uc3QgY2hhciAqX19wZngpCiAgICAg X19hdHRyaWJ1dGVfXyAoKF9fbWFsbG9jX18pKTsKCgoKCmV4dGVybiBpbnQgZmNsb3NlIChGSUxF ICpfX3N0cmVhbSkgOwoKZXh0ZXJuIGludCBmZmx1c2ggKEZJTEUgKl9fc3RyZWFtKSA7CgoKCmV4 dGVybiBpbnQgZmZsdXNoX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgOwojIDIxMCAiL29wdC9n Y2MvMy4yLWRldmVsL2xpYi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMy9pbmNsdWRlL3N0 ZGlvLmgiIDMgNApleHRlcm4gRklMRSAqZm9wZW4gKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf X2ZpbGVuYW1lLAogICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf X21vZGVzKSA7CgpleHRlcm4gRklMRSAqZnJlb3BlbiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0 IF9fZmlsZW5hbWUsCiAgICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJp Y3QgX19tb2RlcywKICAgICAgICAgICAgICAgICAgICAgIEZJTEUgKl9fcmVzdHJpY3QgX19zdHJl YW0pIDsKIyAyNDAgIi9vcHQvZ2NjLzMuMi1kZXZlbC9saWIvZ2NjLWxpYi9pNjg2LXBjLWxpbnV4 LWdudS8zLjMvaW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0ZXJuIEZJTEUgKmZkb3BlbiAoaW50IF9f ZmQsIF9fY29uc3QgY2hhciAqX19tb2RlcykgOwojIDI2MyAiL29wdC9nY2MvMy4yLWRldmVsL2xp Yi9nY2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMy9pbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRl cm4gdm9pZCBzZXRidWYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJp Y3QgX19idWYpIDsKCgoKZXh0ZXJuIGludCBzZXR2YnVmIChGSUxFICpfX3Jlc3RyaWN0IF9fc3Ry ZWFtLCBjaGFyICpfX3Jlc3RyaWN0IF9fYnVmLAogICAgICAgICAgICAgICAgICAgIGludCBfX21v ZGVzLCBzaXplX3QgX19uKSA7CgoKCgpleHRlcm4gdm9pZCBzZXRidWZmZXIgKEZJTEUgKl9fcmVz dHJpY3QgX19zdHJlYW0sIGNoYXIgKl9fcmVzdHJpY3QgX19idWYsCiAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZV90IF9fc2l6ZSkgOwoKCmV4dGVybiB2b2lkIHNldGxpbmVidWYgKEZJTEUgKl9f c3RyZWFtKSA7CgoKCgpleHRlcm4gaW50IGZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zdHJl YW0sCiAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0 LCAuLi4pIDsKCmV4dGVybiBpbnQgcHJpbnRmIChfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19m b3JtYXQsIC4uLikgOwoKZXh0ZXJuIGludCBzcHJpbnRmIChjaGFyICpfX3Jlc3RyaWN0IF9fcywK ICAgICAgICAgICAgICAgICAgICBfX2NvbnN0IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsIC4u LikgOwoKCmV4dGVybiBpbnQgdmZwcmludGYgKEZJTEUgKl9fcmVzdHJpY3QgX19zLCBfX2NvbnN0 IGNoYXIgKl9fcmVzdHJpY3QgX19mb3JtYXQsCiAgICAgICAgICAgICAgICAgICAgIF9fZ251Y192 YV9saXN0IF9fYXJnKSA7CgpleHRlcm4gaW50IHZwcmludGYgKF9fY29uc3QgY2hhciAqX19yZXN0 cmljdCBfX2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAgICAgOwoKZXh0ZXJuIGludCB2 c3ByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf X2Zvcm1hdCwKICAgICAgICAgICAgICAgICAgICAgX19nbnVjX3ZhX2xpc3QgX19hcmcpIDsKCgoK ZXh0ZXJuIGludCBzbnByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBfX21heGxl biwKICAgICAgICAgICAgICAgICAgICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0 LCAuLi4pCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9ybWF0X18gKF9fcHJpbnRmX18sIDMsIDQp KSk7CgpleHRlcm4gaW50IHZzbnByaW50ZiAoY2hhciAqX19yZXN0cmljdCBfX3MsIHNpemVfdCBf X21heGxlbiwKICAgICAgICAgICAgICAgICAgICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBf X2Zvcm1hdCwgX19nbnVjX3ZhX2xpc3QgX19hcmcpCiAgICAgX19hdHRyaWJ1dGVfXyAoKF9fZm9y bWF0X18gKF9fcHJpbnRmX18sIDMsIDApKSk7CiMgMzM0ICIvb3B0L2djYy8zLjItZGV2ZWwvbGli L2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4zL2luY2x1ZGUvc3RkaW8uaCIgMyA0CmV4dGVy biBpbnQgZnNjYW5mIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLAogICAgICAgICAgICAgICAg ICAgX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fZm9ybWF0LCAuLi4pIDsKCmV4dGVybiBpbnQg c2NhbmYgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7CgpleHRlcm4g aW50IHNzY2FuZiAoX19jb25zdCBjaGFyICpfX3Jlc3RyaWN0IF9fcywKICAgICAgICAgICAgICAg ICAgIF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX2Zvcm1hdCwgLi4uKSA7CiMgMzYwICIvb3B0 L2djYy8zLjItZGV2ZWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4zL2luY2x1ZGUv c3RkaW8uaCIgMyA0CmV4dGVybiBpbnQgZmdldGMgKEZJTEUgKl9fc3RyZWFtKSA7CmV4dGVybiBp bnQgZ2V0YyAoRklMRSAqX19zdHJlYW0pIDsKCgpleHRlcm4gaW50IGdldGNoYXIgKHZvaWQpIDsK CgoKCgoKCmV4dGVybiBpbnQgZ2V0Y191bmxvY2tlZCAoRklMRSAqX19zdHJlYW0pIDsKZXh0ZXJu IGludCBnZXRjaGFyX3VubG9ja2VkICh2b2lkKSA7CgoKCgpleHRlcm4gaW50IGZnZXRjX3VubG9j a2VkIChGSUxFICpfX3N0cmVhbSkgOwoKCgoKZXh0ZXJuIGludCBmcHV0YyAoaW50IF9fYywgRklM RSAqX19zdHJlYW0pIDsKZXh0ZXJuIGludCBwdXRjIChpbnQgX19jLCBGSUxFICpfX3N0cmVhbSkg OwoKCmV4dGVybiBpbnQgcHV0Y2hhciAoaW50IF9fYykgOwoKCgoKCgoKZXh0ZXJuIGludCBmcHV0 Y191bmxvY2tlZCAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pIDsKCgoKCmV4dGVybiBpbnQgcHV0 Y191bmxvY2tlZCAoaW50IF9fYywgRklMRSAqX19zdHJlYW0pIDsKZXh0ZXJuIGludCBwdXRjaGFy X3VubG9ja2VkIChpbnQgX19jKSA7CgoKCgoKZXh0ZXJuIGludCBnZXR3IChGSUxFICpfX3N0cmVh bSkgOwoKCmV4dGVybiBpbnQgcHV0dyAoaW50IF9fdywgRklMRSAqX19zdHJlYW0pIDsKCgoKCmV4 dGVybiBjaGFyICpmZ2V0cyAoY2hhciAqX19yZXN0cmljdCBfX3MsIGludCBfX24sIEZJTEUgKl9f cmVzdHJpY3QgX19zdHJlYW0pCiAgICAgOwojIDQyNiAiL29wdC9nY2MvMy4yLWRldmVsL2xpYi9n Y2MtbGliL2k2ODYtcGMtbGludXgtZ251LzMuMy9pbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4g Y2hhciAqZ2V0cyAoY2hhciAqX19zKSA7CiMgNDUwICIvb3B0L2djYy8zLjItZGV2ZWwvbGliL2dj Yy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4zL2luY2x1ZGUvc3RkaW8uaCIgMyA0CmV4dGVybiBp bnQgZnB1dHMgKF9fY29uc3QgY2hhciAqX19yZXN0cmljdCBfX3MsIEZJTEUgKl9fcmVzdHJpY3Qg X19zdHJlYW0pCiAgICAgOwojIDQ2MCAiL29wdC9nY2MvMy4yLWRldmVsL2xpYi9nY2MtbGliL2k2 ODYtcGMtbGludXgtZ251LzMuMy9pbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4gaW50IHB1dHMg KF9fY29uc3QgY2hhciAqX19zKSA7CgoKCmV4dGVybiBpbnQgdW5nZXRjIChpbnQgX19jLCBGSUxF ICpfX3N0cmVhbSkgOwoKCgpleHRlcm4gc2l6ZV90IGZyZWFkICh2b2lkICpfX3Jlc3RyaWN0IF9f cHRyLCBzaXplX3QgX19zaXplLAogICAgICAgICAgICAgICAgICAgICBzaXplX3QgX19uLCBGSUxF ICpfX3Jlc3RyaWN0IF9fc3RyZWFtKSA7CgpleHRlcm4gc2l6ZV90IGZ3cml0ZSAoX19jb25zdCB2 b2lkICpfX3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAogICAgICAgICAgICAgICAgICAg ICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3MpIDsKCgoKZXh0ZXJuIHNpemVfdCBm cmVhZF91bmxvY2tlZCAodm9pZCAqX19yZXN0cmljdCBfX3B0ciwgc2l6ZV90IF9fc2l6ZSwKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBf X3N0cmVhbSkgOwpleHRlcm4gc2l6ZV90IGZ3cml0ZV91bmxvY2tlZCAoX19jb25zdCB2b2lkICpf X3Jlc3RyaWN0IF9fcHRyLCBzaXplX3QgX19zaXplLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2l6ZV90IF9fbiwgRklMRSAqX19yZXN0cmljdCBfX3N0cmVhbSkgOwoKCgoKZXh0ZXJu IGludCBmc2VlayAoRklMRSAqX19zdHJlYW0sIGxvbmcgaW50IF9fb2ZmLCBpbnQgX193aGVuY2Up IDsKCmV4dGVybiBsb25nIGludCBmdGVsbCAoRklMRSAqX19zdHJlYW0pIDsKCmV4dGVybiB2b2lk IHJld2luZCAoRklMRSAqX19zdHJlYW0pIDsKIyA1MDQgIi9vcHQvZ2NjLzMuMi1kZXZlbC9saWIv Z2NjLWxpYi9pNjg2LXBjLWxpbnV4LWdudS8zLjMvaW5jbHVkZS9zdGRpby5oIiAzIDQKZXh0ZXJu IGludCBmZ2V0cG9zIChGSUxFICpfX3Jlc3RyaWN0IF9fc3RyZWFtLCBmcG9zX3QgKl9fcmVzdHJp Y3QgX19wb3MpCiAgICAgOwoKZXh0ZXJuIGludCBmc2V0cG9zIChGSUxFICpfX3N0cmVhbSwgX19j b25zdCBmcG9zX3QgKl9fcG9zKSA7CiMgNTQwICIvb3B0L2djYy8zLjItZGV2ZWwvbGliL2djYy1s aWIvaTY4Ni1wYy1saW51eC1nbnUvMy4zL2luY2x1ZGUvc3RkaW8uaCIgMyA0CmV4dGVybiB2b2lk IGNsZWFyZXJyIChGSUxFICpfX3N0cmVhbSkgOwoKZXh0ZXJuIGludCBmZW9mIChGSUxFICpfX3N0 cmVhbSkgOwoKZXh0ZXJuIGludCBmZXJyb3IgKEZJTEUgKl9fc3RyZWFtKSA7CgoKCmV4dGVybiB2 b2lkIGNsZWFyZXJyX3VubG9ja2VkIChGSUxFICpfX3N0cmVhbSkgOwpleHRlcm4gaW50IGZlb2Zf dW5sb2NrZWQgKEZJTEUgKl9fc3RyZWFtKSA7CmV4dGVybiBpbnQgZmVycm9yX3VubG9ja2VkIChG SUxFICpfX3N0cmVhbSkgOwoKCgoKZXh0ZXJuIHZvaWQgcGVycm9yIChfX2NvbnN0IGNoYXIgKl9f cykgOwoKCgoKZXh0ZXJuIGludCBzeXNfbmVycjsKZXh0ZXJuIF9fY29uc3QgY2hhciAqX19jb25z dCBzeXNfZXJybGlzdFtdOwojIDU3MSAiL29wdC9nY2MvMy4yLWRldmVsL2xpYi9nY2MtbGliL2k2 ODYtcGMtbGludXgtZ251LzMuMy9pbmNsdWRlL3N0ZGlvLmgiIDMgNApleHRlcm4gaW50IGZpbGVu byAoRklMRSAqX19zdHJlYW0pIDsKCgoKCmV4dGVybiBpbnQgZmlsZW5vX3VubG9ja2VkIChGSUxF ICpfX3N0cmVhbSkgOwoKCgoKCgpleHRlcm4gRklMRSAqcG9wZW4gKF9fY29uc3QgY2hhciAqX19j b21tYW5kLCBfX2NvbnN0IGNoYXIgKl9fbW9kZXMpIDsKCgpleHRlcm4gaW50IHBjbG9zZSAoRklM RSAqX19zdHJlYW0pIDsKCgoKCgpleHRlcm4gY2hhciAqY3Rlcm1pZCAoY2hhciAqX19zKSA7CiMg NjE4ICIvb3B0L2djYy8zLjItZGV2ZWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4z L2luY2x1ZGUvc3RkaW8uaCIgMyA0CmV4dGVybiB2b2lkIGZsb2NrZmlsZSAoRklMRSAqX19zdHJl YW0pIDsKCgoKZXh0ZXJuIGludCBmdHJ5bG9ja2ZpbGUgKEZJTEUgKl9fc3RyZWFtKSA7CgoKZXh0 ZXJuIHZvaWQgZnVubG9ja2ZpbGUgKEZJTEUgKl9fc3RyZWFtKSA7CiMgNjQyICIvb3B0L2djYy8z LjItZGV2ZWwvbGliL2djYy1saWIvaTY4Ni1wYy1saW51eC1nbnUvMy4zL2luY2x1ZGUvc3RkaW8u aCIgMyA0CgojIDIgImhlbGxvLmMiIDIKCmludAptYWluICh2b2lkKQp7CiAgcHJpbnRmICgiSGVs bG8gV29ybGQhXG4iKTsKCiAgcmV0dXJuIDA7Cn0K