diff --git a/src/stub/fold_elf86.asm b/src/stub/fold_elf86.asm index b80aee6b..cec26544 100644 --- a/src/stub/fold_elf86.asm +++ b/src/stub/fold_elf86.asm @@ -203,24 +203,5 @@ mmap: pop ebx ret - global die_SELinux -die_SELinux: - push ebx - push byte L71 - L70 - pop edx - call L71 -L70: - db "SELinux enforcing mode inhibits execution.",10 -L71: - pop ecx - push byte 2 - pop ebx -%define __NR_write 4 - push byte __NR_write - pop eax - int 0x80 - pop ebx - ret - ; vi:ts=8:et:nowrap diff --git a/src/stub/fold_elf86.h b/src/stub/fold_elf86.h index af49ce0b..60254394 100644 --- a/src/stub/fold_elf86.h +++ b/src/stub/fold_elf86.h @@ -1,4 +1,4 @@ -/* fold_elf86.h -- created from fold_elf86.bin, 1709 (0x6ad) bytes +/* fold_elf86.h -- created from fold_elf86.bin, 1603 (0x643) bytes This file is part of the UPX executable compressor. @@ -27,116 +27,110 @@ */ -#define LINUX_I386ELF_FOLD_SIZE 1709 -#define LINUX_I386ELF_FOLD_ADLER32 0x22cbe748 -#define LINUX_I386ELF_FOLD_CRC32 0xddb64ae3 +#define LINUX_I386ELF_FOLD_SIZE 1603 +#define LINUX_I386ELF_FOLD_ADLER32 0x34baaf28 +#define LINUX_I386ELF_FOLD_CRC32 0xd41e0330 -unsigned char linux_i386elf_fold[1709] = { +unsigned char linux_i386elf_fold[1603] = { 127, 69, 76, 70, 1, 1, 1, 0, 76,105,110,117,120, 0, 0, 0, /* 0x 0 */ - 2, 0, 3, 0, 1, 0, 0, 0,128, 0,192, 0, 52, 0, 0, 0, /* 0x 10 */ + 2, 0, 3, 0, 1, 0, 0, 0,128, 16,192, 0, 52, 0, 0, 0, /* 0x 10 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0, /* 0x 20 */ - 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,192, 0, /* 0x 30 */ - 0, 0,192, 0,173, 6, 0, 0,176, 6, 0, 0, 5, 0, 0, 0, /* 0x 40 */ - 0, 16, 0, 0, 1, 0, 0, 0,173, 6, 0, 0,176, 6,192, 0, /* 0x 50 */ -176, 6,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, /* 0x 60 */ + 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16,192, 0, /* 0x 30 */ + 0, 16,192, 0, 67, 6, 0, 0, 68, 6, 0, 0, 5, 0, 0, 0, /* 0x 40 */ + 0, 16, 0, 0, 1, 0, 0, 0, 67, 6, 0, 0, 68, 22,192, 0, /* 0x 50 */ + 68, 22,192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0, /* 0x 60 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 70 */ 41,201,186,120, 2, 0, 0,137,230,137,231,232,115, 0, 0, 0, /* 0x 80 */ 137,230,209,234, 25,192, 41,193,141, 36,196,133,210,117,243,137, /* 0x 90 */ 231,232, 93, 0, 0, 0,129,236, 0, 10, 0, 0, 83,139, 83, 72, /* 0x a0 */ 141,148, 26, 0, 16, 0, 0, 82, 41,192,102,131,123, 16, 3,117, /* 0x b0 */ 1,146, 80,139,115, 24,141,131,140, 0, 0, 0, 41,198,139, 24, /* 0x c0 */ -139, 72, 4,131,193, 12,141, 84, 36, 12, 96, 71,232,198, 4, 0, /* 0x d0 */ +139, 72, 4,131,193, 12,141, 84, 36, 12, 96, 71,232, 92, 4, 0, /* 0x d0 */ 0,131,196, 36, 89, 91,129,196, 0, 10, 0, 0, 80, 79, 41,192, /* 0x e0 */ 60,175,175,117,252, 80, 80, 80, 80, 80, 80, 80, 80, 41,217,176, /* 0x f0 */ 91,255, 39,173,171,133,192,117,250,173,171,133,192,117,250, 87, /* 0x 100 */ 173,171,131,248, 32,115, 3, 15,179,194,133,192,173,171,117,240, /* 0x 110 */ 131,239, 8, 1,201, 64,243,171, 72,171,171, 95,195, 83,141, 92, /* 0x 120 */ - 36, 8,106, 90, 88,205,128, 91,195, 83,106, 43, 90,232, 43, 0, /* 0x 130 */ - 0, 0, 83, 69, 76,105,110,117,120, 32,101,110,102,111,114, 99, /* 0x 140 */ -105,110,103, 32,109,111,100,101, 32,105,110,104,105, 98,105,116, /* 0x 150 */ -115, 32,101,120,101, 99,117,116,105,111,110, 46, 10, 89,106, 2, /* 0x 160 */ - 91,106, 4, 88,205,128, 91,195, 87, 86,137,206, 83,137,195, 57, /* 0x 170 */ - 8,139,120, 4,115, 10,106,127, 91,106, 1, 88,205,128,235,254, /* 0x 180 */ -133,201,116, 8,138, 7, 71,136, 2, 66,226,248, 1,115, 4, 41, /* 0x 190 */ - 51, 91, 94, 95,195, 85,137,229, 87, 86,137,198, 83,137,211,131, /* 0x 1a0 */ -236, 24,139, 69, 8,139,125, 12,137, 69,220,131, 58, 0, 15,132, /* 0x 1b0 */ -184, 0, 0, 0,141, 85,228,185, 12, 0, 0, 0,137,240,232,165, /* 0x 1c0 */ -255,255,255,139, 69,228,139, 77,232,133,192,117, 19,129,249, 85, /* 0x 1d0 */ - 80, 88, 33,117, 15,131, 62, 0, 15,132,142, 0, 0, 0,235, 4, /* 0x 1e0 */ -133,201,117, 10,106,127, 91,106, 1, 88,205,128,235,254, 57,193, /* 0x 1f0 */ -119,242, 59, 3,119,238, 57,193,115, 85, 15,182, 69,236, 80,141, /* 0x 200 */ - 69,224, 80,255,115, 4, 81,255,118, 4,255, 85,220,131,196, 20, /* 0x 210 */ -133,192,117,208,139, 85,224, 59, 85,228,117,200,138, 69,237,132, /* 0x 220 */ -192,116, 34,133,255,116, 30,129,250, 0, 2, 0, 0,119, 4, 57, /* 0x 230 */ - 19,117, 18, 15,182,192, 80, 15,182, 69,238, 80, 82,255,115, 4, /* 0x 240 */ -255,215,131,196, 16,139, 69,232, 1, 70, 4, 41, 6,235, 10,139, /* 0x 250 */ - 83, 4,137,240,232, 15,255,255,255,139, 85,228,139, 3, 1, 83, /* 0x 260 */ - 4, 41,208,133,192,137, 3,233, 66,255,255,255,141,101,244, 91, /* 0x 270 */ - 94, 95,201,195,133,210,137,209,116, 6,198, 0, 0, 64,226,250, /* 0x 280 */ -195,133,192, 83,137,211,116, 29,168, 1,117, 25,139, 16, 57,218, /* 0x 290 */ -116, 7, 74,117, 11,133,219,116, 7,137, 24,137, 72, 4,235, 5, /* 0x 2a0 */ -131,192, 8,235,231, 91,195, 85,137,229, 87, 86, 83,131,236, 80, /* 0x 2b0 */ -137, 85,224,139, 93,224,137, 69,228,139, 77,224,139, 69, 8, 3, /* 0x 2c0 */ - 73, 28,137, 69,220, 49,192,102,131,123, 16, 2,139, 85, 12,137, /* 0x 2d0 */ - 77,212, 15,148,192,137, 85,216,137,202, 15,183, 75, 44,193,224, /* 0x 2e0 */ - 4,131,192, 34,131,206,255,137, 69,184,137,200, 49,219, 49,255, /* 0x 2f0 */ - 72,120, 31,131, 58, 1,117, 21,139, 66, 8, 57,240,115, 5,137, /* 0x 300 */ -198,139,122, 16, 3, 66, 20, 57,195,115, 2,137,195,131,194, 32, /* 0x 310 */ -226,225,137,240,129,230, 0,240,255,255,106, 0, 41,243,106,255, /* 0x 320 */ - 37,255, 15, 0, 0,137,117,188,141,179,255, 15, 0, 0,255,117, /* 0x 330 */ -184,129,230, 0,240,255,255,106, 0, 86,255,117,188,141,188, 7, /* 0x 340 */ -255, 15, 0, 0,232,212,253,255,255,129,231, 0,240,255,255,137, /* 0x 350 */ -194,137,195, 1,242, 41,254,131,196, 24,137, 69,176,137, 85,240, /* 0x 360 */ - 1,251,137,241,106, 91, 88,205,128,139, 69,224,199, 69,200, 0, /* 0x 370 */ - 0, 0, 0,139, 93,176, 43, 93,188,102,131,120, 44, 0,137, 93, /* 0x 380 */ -208, 15,132,200, 1, 0, 0,139, 85,212,139, 2,131,248, 6,117, /* 0x 390 */ - 24,139, 77,208, 3, 74, 8,186, 3, 0, 0, 0,139, 69,216,232, /* 0x 3a0 */ -221,254,255,255,233,143, 1, 0, 0, 72, 15,133,136, 1, 0, 0, /* 0x 3b0 */ -139, 93,212,199, 69,196, 64, 98, 81,115,139, 69,208,139, 75, 24, /* 0x 3c0 */ - 3, 67, 8,131,225, 7,139, 83, 16,193,225, 2,211,109,196,137, /* 0x 3d0 */ -198,139, 75, 20,137,195,129,227,255, 15, 0, 0,137, 85,232,141, /* 0x 3e0 */ - 60, 26,139, 85,212, 1,193,137, 69,236,139, 66, 4, 41,222,131, /* 0x 3f0 */ -101,196, 7, 41,216,131,125,220, 1, 80,255,117,228, 25,192,137, /* 0x 400 */ - 77,192,131,224,224,131,192, 50,131,125,220, 0, 80,137,248,106, /* 0x 410 */ - 3,116, 3,141, 71, 3, 80, 86,232, 0,253,255,255,131,196, 24, /* 0x 420 */ - 57,198, 15,133,193, 0, 0, 0,131,125,220, 0,116, 34,139, 77, /* 0x 430 */ -212, 49,192,246, 65, 24, 1,116, 6,139, 69,228,131,192, 2, 80, /* 0x 440 */ -139, 69,220,255,117,228,141, 85,232,232, 71,253,255,255, 88, 90, /* 0x 450 */ -137,218,137,251,137,240,247,219,232, 23,254,255,255,129,227,255, /* 0x 460 */ - 15, 0, 0,141, 4, 62,137,218,137, 93,180,232, 4,254,255,255, /* 0x 470 */ -131,125,220, 0,116, 94,139, 69,212,131, 56, 1,117, 86,246, 64, /* 0x 480 */ - 24, 1,116, 80,139, 80, 20,139, 88, 8,141, 12, 26, 3, 77,208, /* 0x 490 */ - 59, 80, 16,117, 14,137,200,247,216, 37,255, 15, 0, 0,131,248, /* 0x 4a0 */ - 3,119, 17,139, 85,212,107, 69,208, 52,131,122, 4, 0,141, 76, /* 0x 4b0 */ - 3, 12,117, 15,139, 1, 61,205,128, 97,195,116, 6,199, 1,205, /* 0x 4c0 */ -128, 97,195,133,201,116, 13,139, 69,216, 49,210,131,224,254,232, /* 0x 4d0 */ -173,253,255,255,137,243,137,249,139, 85,196,106,125, 88,205,128, /* 0x 4e0 */ -133,192,116, 15,232, 64,252,255,255,106,127, 91,106, 1, 88,205, /* 0x 4f0 */ -128,235,254,139, 85,180,141, 4, 23,141, 28, 6, 59, 93,192,115, /* 0x 500 */ - 30,106, 0,106,255,106, 50,255,117,196, 41, 93,192,255,117,192, /* 0x 510 */ - 83,232, 7,252,255,255,131,196, 24, 57,195,116, 27,235,202,131, /* 0x 520 */ -125,220, 0,116, 19,141, 79, 3,129,225,255, 15, 0, 0,131,249, /* 0x 530 */ - 3,119, 5,106, 91, 88,205,128,139, 77,224,255, 69,200, 15,183, /* 0x 540 */ - 65, 44,131, 69,212, 32, 57, 69,200, 15,140, 56,254,255,255,131, /* 0x 550 */ -125,220, 0,117, 14,139, 93,228,106, 6, 88,205,128,133,192,116, /* 0x 560 */ - 20,235,134,139, 69,224,102,131,120, 16, 3,116, 8,139, 93,240, /* 0x 570 */ -106, 45, 88,205,128,131,125, 16, 0,116, 8,139, 77,208,139, 85, /* 0x 580 */ - 16,137, 10,139, 93,224,139, 91, 24, 1, 93,208,139, 69,208,141, /* 0x 590 */ -101,244, 91, 94, 95,201,195, 85,137,229, 87, 86, 83,131,236, 24, /* 0x 5a0 */ -139,125, 28,106, 0,139, 69, 16,141, 87, 52,139,117, 8, 80,139, /* 0x 5b0 */ - 93, 32,137, 69,236,137, 85,232,141, 69, 32,141, 85, 24,232,210, /* 0x 5c0 */ -251,255,255,139, 69, 12, 15,183, 79, 44,186, 5, 0, 0, 0,137, /* 0x 5d0 */ - 69, 32,137,240, 41, 93, 36,232,165,252,255,255, 15,183, 79, 42, /* 0x 5e0 */ -186, 4, 0, 0, 0,137,240,232,149,252,255,255,139, 93,232,139, /* 0x 5f0 */ - 77, 40,186, 3, 0, 0, 0, 3, 75, 8,137,240,131,193, 52,232, /* 0x 600 */ -125,252,255,255,141, 69,240,137,250, 80,141, 69, 32, 86, 80,139, /* 0x 610 */ - 69,236,232,144,252,255,255,186, 9, 0, 0, 0,137,193,137,195, /* 0x 620 */ -137,240,232, 90,252,255,255,102,139, 79, 44,131,196, 20, 49,210, /* 0x 630 */ -102,133,201,116, 94,139, 69,232,131, 56, 3,117, 74,139, 93,240, /* 0x 640 */ - 49,201, 3, 88, 8,137,202,106, 5, 88,205,128,133,192,137,198, /* 0x 650 */ -120, 21,186, 0, 2, 0, 0,137,195,137,249,106, 3, 88,205,128, /* 0x 660 */ - 61, 0, 2, 0, 0,116, 10,106,127, 91,106, 1, 88,205,128,235, /* 0x 670 */ -254,106, 0,137,250,106, 0,137,240,106, 0,232, 39,252,255,255, /* 0x 680 */ -131,196, 12,137,195,235, 12, 66, 15,183,193,131, 69,232, 32, 57, /* 0x 690 */ -194,124,162,141,101,244,137,216, 91, 94, 95,201,195 /* 0x 6a0 */ + 36, 8,106, 90, 88,205,128, 91,195, 0, 0, 0, 87, 86,137,206, /* 0x 130 */ + 83,137,195, 57, 8,139,120, 4,115, 10,106,127, 91,106, 1, 88, /* 0x 140 */ +205,128,235,254,133,201,116, 8,138, 7, 71,136, 2, 66,226,248, /* 0x 150 */ + 1,115, 4, 41, 51, 91, 94, 95,195, 85,137,229, 87, 86,137,198, /* 0x 160 */ + 83,137,211,131,236, 24,139, 69, 8,139,125, 12,137, 69,220,131, /* 0x 170 */ + 58, 0, 15,132,184, 0, 0, 0,141, 85,228,185, 12, 0, 0, 0, /* 0x 180 */ +137,240,232,165,255,255,255,139, 69,228,139, 77,232,133,192,117, /* 0x 190 */ + 19,129,249, 85, 80, 88, 33,117, 15,131, 62, 0, 15,132,142, 0, /* 0x 1a0 */ + 0, 0,235, 4,133,201,117, 10,106,127, 91,106, 1, 88,205,128, /* 0x 1b0 */ +235,254, 57,193,119,242, 59, 3,119,238, 57,193,115, 85, 15,182, /* 0x 1c0 */ + 69,236, 80,141, 69,224, 80,255,115, 4, 81,255,118, 4,255, 85, /* 0x 1d0 */ +220,131,196, 20,133,192,117,208,139, 85,224, 59, 85,228,117,200, /* 0x 1e0 */ +138, 69,237,132,192,116, 34,133,255,116, 30,129,250, 0, 2, 0, /* 0x 1f0 */ + 0,119, 4, 57, 19,117, 18, 15,182,192, 80, 15,182, 69,238, 80, /* 0x 200 */ + 82,255,115, 4,255,215,131,196, 16,139, 69,232, 1, 70, 4, 41, /* 0x 210 */ + 6,235, 10,139, 83, 4,137,240,232, 15,255,255,255,139, 85,228, /* 0x 220 */ +139, 3, 1, 83, 4, 41,208,133,192,137, 3,233, 66,255,255,255, /* 0x 230 */ +141,101,244, 91, 94, 95,201,195,133,192, 83,137,211,116, 29,168, /* 0x 240 */ + 1,117, 25,139, 16, 57,218,116, 7, 74,117, 11,133,219,116, 7, /* 0x 250 */ +137, 24,137, 72, 4,235, 5,131,192, 8,235,231, 91,195, 85,137, /* 0x 260 */ +229, 87, 86, 83,131,236, 64,137, 85,224,139, 77,224,137, 69,228, /* 0x 270 */ +139, 85, 12, 3, 73, 28,139, 69, 8,137, 85,216,139, 93,224,139, /* 0x 280 */ + 85,224,137, 69,220, 49,192,102,131,123, 16, 2,137, 77,212,137, /* 0x 290 */ +203, 15,183, 74, 44, 15,148,192,131,207,255,193,224, 4,137,202, /* 0x 2a0 */ + 49,246,131,192, 34, 74,120, 28,131, 59, 1,117, 18,139, 83, 8, /* 0x 2b0 */ + 57,250,115, 2,137,215, 3, 83, 20, 57,214,115, 2,137,214,131, /* 0x 2c0 */ +195, 32,226,228,137,251,106, 0,129,227, 0,240,255,255,106,255, /* 0x 2d0 */ + 41,222, 80,129,198,255, 15, 0, 0,106, 0,129,230, 0,240,255, /* 0x 2e0 */ +255, 86, 83,232, 53,254,255,255,139, 77,224,141, 52, 48,131,196, /* 0x 2f0 */ + 24, 41,216,102,131,121, 44, 0,137,117,240,137, 69,208,199, 69, /* 0x 300 */ +204, 0, 0, 0, 0, 15,132,218, 1, 0, 0,139, 93,212,139, 3, /* 0x 310 */ +131,248, 6,117, 24,139, 77,208,186, 3, 0, 0, 0, 3, 75, 8, /* 0x 320 */ +139, 69,216,232, 16,255,255,255,233,161, 1, 0, 0, 72, 15,133, /* 0x 330 */ +154, 1, 0, 0,139, 69,212,199, 69,200, 64, 98, 81,115,139, 85, /* 0x 340 */ +212,139, 72, 24,139, 90, 20,131,225, 7,193,225, 2,211,109,200, /* 0x 350 */ +139, 72, 16,139, 69,208, 3, 66, 8,137, 77,232,131,101,200, 7, /* 0x 360 */ +137,194, 1,195,129,226,255, 15, 0, 0,137,199,141, 52, 17,139, /* 0x 370 */ + 77,212,137, 69,236, 41,215,139, 65, 4,137, 93,196, 41,208,131, /* 0x 380 */ +125,220, 0, 80,139, 69,228,116, 3,131,200,255,131,125,220, 1, /* 0x 390 */ + 80, 25,192,131,224,224,131,192, 50,131,125,220, 0, 80,139, 69, /* 0x 3a0 */ +200,116, 3,131,200, 2,131,125,220, 0, 80,137,240,116, 3,141, /* 0x 3b0 */ + 70, 3, 80, 87,232,100,253,255,255,131,196, 24, 57,199, 15,133, /* 0x 3c0 */ +187, 0, 0, 0,131,125,220, 0,116, 31, 49,192,246, 69,200, 4, /* 0x 3d0 */ +116, 6,139, 69,228,131,192, 2, 80,139, 69,220,255,117,228,141, /* 0x 3e0 */ + 85,232,232,114,253,255,255, 88, 90,137,243,247,219,129,227,255, /* 0x 3f0 */ + 15, 0, 0,246, 69,200, 2,137, 93,192,116, 15,133,219,141, 4, /* 0x 400 */ + 55,116, 8,137,217,198, 0, 0, 64,226,250,131,125,220, 0,116, /* 0x 410 */ +120,139, 69,212,131, 56, 1,117, 86,246, 64, 24, 1,116, 80,139, /* 0x 420 */ + 80, 20,139, 88, 8,141, 12, 26, 3, 77,208, 59, 80, 16,117, 14, /* 0x 430 */ +137,200,247,216, 37,255, 15, 0, 0,131,248, 3,119, 17,139, 85, /* 0x 440 */ +212,107, 69,208, 52,131,122, 4, 0,141, 76, 3, 12,117, 15,139, /* 0x 450 */ + 1, 61,205,128, 97,195,116, 6,199, 1,205,128, 97,195,133,201, /* 0x 460 */ +116, 13,139, 69,216, 49,210,131,224,254,232,201,253,255,255,137, /* 0x 470 */ +251,137,241,139, 85,200,106,125, 88,205,128,133,192,116, 10,106, /* 0x 480 */ +127, 91,106, 1, 88,205,128,235,254,139, 85,192,141, 4, 22,141, /* 0x 490 */ + 28, 7, 59, 93,196,115, 30,106, 0,106,255,106, 50,255,117,200, /* 0x 4a0 */ + 41, 93,196,255,117,196, 83,232,113,252,255,255,131,196, 24, 57, /* 0x 4b0 */ +195,116, 27,235,202,131,125,220, 0,116, 19,141, 78, 3,129,225, /* 0x 4c0 */ +255, 15, 0, 0,131,249, 3,119, 5,106, 91, 88,205,128,139, 77, /* 0x 4d0 */ +224,255, 69,204, 15,183, 65, 44,131, 69,212, 32, 57, 69,204, 15, /* 0x 4e0 */ +140, 38,254,255,255,131,125,220, 0,117, 14,139, 93,228,106, 6, /* 0x 4f0 */ + 88,205,128,133,192,116, 20,235,134,139, 69,224,102,131,120, 16, /* 0x 500 */ + 3,116, 8,139, 93,240,106, 45, 88,205,128,131,125, 16, 0,116, /* 0x 510 */ + 8,139, 77,208,139, 85, 16,137, 10,139, 93,224,139, 91, 24, 1, /* 0x 520 */ + 93,208,139, 69,208,141,101,244, 91, 94, 95,201,195, 85,137,229, /* 0x 530 */ + 87, 86, 83,131,236, 24,139,125, 28,106, 0,139, 69, 16,141, 87, /* 0x 540 */ + 52,139,117, 8, 80,139, 93, 32,137, 69,236,137, 85,232,141, 69, /* 0x 550 */ + 32,141, 85, 24,232, 0,252,255,255,139, 69, 12, 15,183, 79, 44, /* 0x 560 */ +186, 5, 0, 0, 0,137, 69, 32,137,240, 41, 93, 36,232,198,252, /* 0x 570 */ +255,255, 15,183, 79, 42,186, 4, 0, 0, 0,137,240,232,182,252, /* 0x 580 */ +255,255,139, 93,232,139, 77, 40,186, 3, 0, 0, 0, 3, 75, 8, /* 0x 590 */ +137,240,131,193, 52,232,158,252,255,255,141, 69,240,137,250, 80, /* 0x 5a0 */ +141, 69, 32, 86, 80,139, 69,236,232,177,252,255,255,186, 9, 0, /* 0x 5b0 */ + 0, 0,137,193,137,195,137,240,232,123,252,255,255,102,139, 79, /* 0x 5c0 */ + 44,131,196, 20, 49,210,102,133,201,116, 94,139, 69,232,131, 56, /* 0x 5d0 */ + 3,117, 74,139, 93,240, 49,201, 3, 88, 8,137,202,106, 5, 88, /* 0x 5e0 */ +205,128,133,192,137,198,120, 21,186, 0, 2, 0, 0,137,195,137, /* 0x 5f0 */ +249,106, 3, 88,205,128, 61, 0, 2, 0, 0,116, 10,106,127, 91, /* 0x 600 */ +106, 1, 88,205,128,235,254,106, 0,137,250,106, 0,137,240,106, /* 0x 610 */ + 0,232, 72,252,255,255,131,196, 12,137,195,235, 12, 66, 15,183, /* 0x 620 */ +193,131, 69,232, 32, 57,194,124,162,141,101,244,137,216, 91, 94, /* 0x 630 */ + 95,201,195 /* 0x 640 */ }; diff --git a/src/stub/l_lx_elf.c b/src/stub/l_lx_elf.c index ef25df2f..ab0e54d1 100644 --- a/src/stub/l_lx_elf.c +++ b/src/stub/l_lx_elf.c @@ -90,8 +90,6 @@ err_exit(int a) __attribute__ ((__noreturn__)); } #endif //} -extern void die_SELinux(); - static void * do_brk(void *addr) { @@ -270,9 +268,9 @@ xfind_pages(unsigned mflags, Elf32_Phdr const *phdr, int phnum, lo -= ~PAGE_MASK & lo; // round down to page boundary hi = PAGE_MASK & (hi - lo - PAGE_MASK -1); // page length szlo = PAGE_MASK & (szlo - PAGE_MASK -1); // page length - addr = mmap((void *)lo, hi, PROT_NONE, mflags, -1, 0 ); // just reserve address space + addr = mmap((void *)lo, hi, PROT_NONE, mflags, -1, 0); *p_brk = hi + addr; // the logical value of brk(0) - munmap(szlo + addr, hi - szlo); // desirable if PT_LOAD non-contiguous + //mprotect(szlo + addr, hi - szlo, PROT_NONE); // no access, but keep the frames! return (unsigned long)addr - lo; } @@ -301,29 +299,33 @@ do_xmap(int const fdi, Elf32_Ehdr const *const ehdr, struct Extent *const xi, addr -= frag; // Decompressor can overrun the destination by 3 bytes. - if (addr != mmap(addr, mlen + (xi ? 3 : 0), PROT_READ | PROT_WRITE, + if (addr != mmap(addr, mlen + (xi ? 3 : 0), prot | (xi ? PROT_WRITE : 0), MAP_FIXED | MAP_PRIVATE | (xi ? MAP_ANONYMOUS : 0), - fdi, phdr->p_offset - frag) ) { + (xi ? -1 : fdi), phdr->p_offset - frag) ) { err_exit(8); } if (xi) { unpackExtent(xi, &xo, (f_expand *)fdi, - ((phdr->p_flags & PF_X) ? (f_unfilter *)(2+ fdi) : 0)); + ((PROT_EXEC & prot) ? (f_unfilter *)(2+ fdi) : 0)); } - bzero(addr, frag); // fragment at lo end + // Linux does not fixup the low end, so neither do we. + //if (PROT_WRITE & prot) { + // bzero(addr, frag); // fragment at lo end + //} frag = (-mlen) &~ PAGE_MASK; // distance to next page boundary - bzero(mlen+addr, frag); // fragment at hi end + if (PROT_WRITE & prot) { // note: read-only .bss not supported here + bzero(mlen+addr, frag); // fragment at hi end + } if (xi) { void *const hatch = make_hatch(phdr, reloc); if (0!=hatch) { /* always update AT_NULL, especially for compressed PT_INTERP */ auxv_up((Elf32_auxv_t *)(~1 & (int)av), AT_NULL, (unsigned)hatch); } - } - if (0!=mprotect(addr, mlen, prot)) { - die_SELinux(); - err_exit(10); + if (0!=mprotect(addr, mlen, prot)) { + err_exit(10); ERR_LAB + } } addr += mlen + frag; /* page boundary on hi end */ if (addr < haddr) { // need pages for .bss diff --git a/src/stub/l_lx_elf86.asm b/src/stub/l_lx_elf86.asm index 77f62d63..136f0935 100644 --- a/src/stub/l_lx_elf86.asm +++ b/src/stub/l_lx_elf86.asm @@ -136,6 +136,28 @@ decompress: %define szElf32_Ehdr 0x34 %define p_memsz 5*4 +%define __NR_write 4 +%define __NR_exit 1 + +msg_SELinux: + push byte L71 - L70 + pop edx ; length + call L71 +L70: + db "SELinux denied execmem.",10 +L71: + pop ecx ; message text + push byte 2 ; fd stderr + pop ebx + push byte __NR_write + pop eax + int 0x80 +die: + mov bl, byte 127 ; only low 7 bits matter! + push byte __NR_exit + pop eax ; write to stderr could fail, leaving eax as -EBADF etc. + int 0x80 + ; Decompress the rest of this loader, and jump to it unfold: pop esi ; &{ b_info:{sz_unc, sz_cpr, 4{byte}}, compressed_data...} @@ -150,7 +172,7 @@ unfold: xor ecx, ecx ; %ecx= 0 ; MAP_ANONYMOUS ==>offset is ignored, so do not push! ; push ecx ; offset - push ecx ; fd must be in valid range, but then ignored + push byte -1 ; *BSD demands -1==fd for mmap(,,,MAP_ANON,,) push byte MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS mov ch, PAGE_SIZE >> 8 ; %ecx= PAGE_SIZE push byte PROT_READ | PROT_WRITE | PROT_EXEC @@ -160,6 +182,8 @@ unfold: push byte __NR_mmap pop eax int 0x80 ; changes only %eax; %edx is live + test eax,eax + js msg_SELinux xchg eax, edx ; %edx= page after .text; %eax= &Elf32_Ehdr of this program xchg eax, ebx ; %ebx= &Elf32_Ehdr of this program @@ -178,7 +202,7 @@ unfold: main: pop ebp ; &decompress call unfold - + ; compressed fold_elf86 follows eof: ; __XTHEENDX__ section .data diff --git a/src/stub/l_lx_elf86.h b/src/stub/l_lx_elf86.h index ed3da7e5..c2600165 100644 --- a/src/stub/l_lx_elf86.h +++ b/src/stub/l_lx_elf86.h @@ -1,4 +1,4 @@ -/* l_lx_elf86.h -- created from l_lx_elf86.bin, 5285 (0x14a5) bytes +/* l_lx_elf86.h -- created from l_lx_elf86.bin, 5341 (0x14dd) bytes This file is part of the UPX executable compressor. @@ -27,11 +27,11 @@ */ -#define LINUX_I386ELF_LOADER_SIZE 5285 -#define LINUX_I386ELF_LOADER_ADLER32 0xe35db8a7 -#define LINUX_I386ELF_LOADER_CRC32 0x6f1175f8 +#define LINUX_I386ELF_LOADER_SIZE 5341 +#define LINUX_I386ELF_LOADER_ADLER32 0x1c76cd81 +#define LINUX_I386ELF_LOADER_CRC32 0x1aa8519f -unsigned char linux_i386elf_loader[5285] = { +unsigned char linux_i386elf_loader[5341] = { 232, 0, 0, 0, 0, 96,106, 63,139,116, 36, 40,139,124, 36, 48, /* 0x 0 */ 131,205,255,235, 0,164,235, 0,138, 6, 70,136, 7, 71, 1,219, /* 0x 10 */ 117, 7,139, 30,131,238,252, 17,219,114, 0, 49,192, 64,138, 7, /* 0x 20 */ @@ -110,257 +110,260 @@ unsigned char linux_i386elf_loader[5285] = { 119, 6,128,127,254, 15,116, 0, 44,232, 60, 1,119, 0, 56, 23, /* 0x 4b0 */ 117, 0,139, 7,102,193,232, 8,193,192, 16,134,196, 41,248, 1, /* 0x 4c0 */ 240,137, 7,131,199, 4,131,233, 4,138, 7,131,199, 1,226, 0, /* 0x 4d0 */ -131,233, 1,127, 0, 97,195, 94,141, 69,247, 43, 0,137,194, 3, /* 0x 4e0 */ - 64, 72, 80, 49,201, 81,106, 50,181, 16,106, 7, 81, 80,137,227, /* 0x 4f0 */ -106, 90, 88,205,128,146,147,252,173, 80, 84, 82,173, 80,173, 86, /* 0x 500 */ -255,213,131,196, 40,195, 93,232,203,255,255,255, 76, 69, 88, 69, /* 0x 510 */ - 67, 48, 48, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, /* 0x 520 */ - 0, 76, 69, 88, 69, 67, 48, 50, 48, 0, 47, 0, 0, 0, 76, 69, /* 0x 530 */ - 88, 69, 67, 48, 48, 57, 0, 5, 0, 0, 0, 76, 69, 88, 69, 67, /* 0x 540 */ - 48, 49, 48, 0, 5, 0, 0, 0, 78, 50, 66, 83, 77, 65, 49, 48, /* 0x 550 */ - 0, 19, 0, 0, 0, 0, 0, 0, 0, 21, 0, 0, 0, 78, 50, 66, /* 0x 560 */ - 68, 69, 67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 66, 70, 65, 83, /* 0x 570 */ - 49, 48, 0, 22, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 78, /* 0x 580 */ - 50, 66, 68, 69, 67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 66, 70, /* 0x 590 */ - 65, 83, 49, 49, 0, 24, 0, 0, 0, 78, 50, 66, 68, 69, 67, 49, /* 0x 5a0 */ - 48, 0, 30, 0, 0, 0, 78, 50, 66, 83, 77, 65, 50, 48, 0, 41, /* 0x 5b0 */ - 0, 0, 0, 0, 0, 0, 0, 43, 0, 0, 0, 78, 50, 66, 83, 77, /* 0x 5c0 */ - 65, 49, 48, 0, 2, 0, 0, 0, 78, 50, 66, 70, 65, 83, 50, 48, /* 0x 5d0 */ - 0, 46, 0, 0, 0, 0, 0, 0, 0, 50, 0, 0, 0, 78, 50, 66, /* 0x 5e0 */ - 70, 65, 83, 49, 49, 0, 0, 0, 0, 0, 78, 50, 66, 68, 69, 67, /* 0x 5f0 */ - 50, 48, 0, 55, 0, 0, 0, 78, 50, 66, 83, 77, 65, 51, 48, 0, /* 0x 600 */ - 68, 0, 0, 0, 0, 0, 0, 0, 81, 0, 0, 0, 78, 50, 66, 68, /* 0x 610 */ - 69, 67, 50, 48, 0, 0, 0, 0, 0, 78, 50, 66, 70, 65, 83, 51, /* 0x 620 */ - 48, 0, 81, 0, 0, 0, 0, 0, 0, 0, 85, 0, 0, 0, 78, 50, /* 0x 630 */ - 66, 68, 69, 67, 50, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 96, /* 0x 640 */ - 0, 0, 0, 78, 50, 66, 68, 69, 67, 50, 48, 0, 0, 0, 0, 0, /* 0x 650 */ - 78, 50, 66, 68, 69, 67, 51, 48, 0, 96, 0, 0, 0, 0, 0, 0, /* 0x 660 */ - 0,114, 0, 0, 0, 78, 50, 66, 68, 69, 67, 54, 48, 0, 0, 0, /* 0x 670 */ - 0, 0, 0, 0, 0, 0,144, 0, 0, 0, 78, 50, 66, 68, 69, 67, /* 0x 680 */ - 53, 48, 0, 0, 0, 0, 0, 78, 50, 66, 83, 77, 65, 52, 48, 0, /* 0x 690 */ -158, 0, 0, 0, 0, 0, 0, 0,171, 0, 0, 0, 78, 50, 66, 68, /* 0x 6a0 */ - 69, 67, 51, 48, 0, 49, 0, 0, 0, 78, 50, 66, 70, 65, 83, 52, /* 0x 6b0 */ - 48, 0,171, 0, 0, 0, 0, 0, 0, 0,175, 0, 0, 0, 78, 50, /* 0x 6c0 */ - 66, 68, 69, 67, 51, 48, 0, 49, 0, 0, 0, 0, 0, 0, 0,186, /* 0x 6d0 */ - 0, 0, 0, 78, 50, 66, 68, 69, 67, 51, 48, 0, 49, 0, 0, 0, /* 0x 6e0 */ - 78, 50, 66, 68, 85, 77, 77, 49, 0,186, 0, 0, 0, 78, 50, 66, /* 0x 6f0 */ - 83, 77, 65, 53, 48, 0,186, 0, 0, 0, 78, 50, 66, 70, 65, 83, /* 0x 700 */ - 53, 48, 0,188, 0, 0, 0, 78, 50, 66, 68, 69, 67, 53, 48, 0, /* 0x 710 */ -191, 0, 0, 0, 78, 50, 66, 83, 77, 65, 54, 48, 0,200, 0, 0, /* 0x 720 */ - 0, 0, 0, 0, 0,212, 0, 0, 0, 78, 50, 66, 68, 69, 67, 49, /* 0x 730 */ - 48, 0, 0, 0, 0, 0, 78, 50, 66, 70, 65, 83, 54, 48, 0,212, /* 0x 740 */ - 0, 0, 0, 0, 0, 0, 0,223, 0, 0, 0, 78, 50, 66, 70, 65, /* 0x 750 */ - 83, 54, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,237, 0, 0, 0, /* 0x 760 */ - 78, 50, 66, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 66, /* 0x 770 */ - 70, 65, 83, 54, 49, 0,237, 0, 0, 0, 0, 0, 0, 0, 3, 1, /* 0x 780 */ - 0, 0, 78, 50, 66, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, /* 0x 790 */ - 50, 66, 68, 69, 67, 54, 48, 0, 3, 1, 0, 0, 78, 82, 86, 50, /* 0x 7a0 */ - 66, 69, 78, 68, 0, 3, 1, 0, 0, 78, 50, 68, 83, 77, 65, 49, /* 0x 7b0 */ - 48, 0, 3, 1, 0, 0, 0, 0, 0, 0, 5, 1, 0, 0, 78, 50, /* 0x 7c0 */ - 68, 68, 69, 67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 68, 70, 65, /* 0x 7d0 */ - 83, 49, 48, 0, 6, 1, 0, 0, 0, 0, 0, 0, 8, 1, 0, 0, /* 0x 7e0 */ - 78, 50, 68, 68, 69, 67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 68, /* 0x 7f0 */ - 70, 65, 83, 49, 49, 0, 8, 1, 0, 0, 78, 50, 68, 68, 69, 67, /* 0x 800 */ - 49, 48, 0, 14, 1, 0, 0, 78, 50, 68, 83, 77, 65, 50, 48, 0, /* 0x 810 */ - 25, 1, 0, 0, 0, 0, 0, 0, 27, 1, 0, 0, 78, 50, 68, 83, /* 0x 820 */ - 77, 65, 49, 48, 0, 2, 0, 0, 0, 78, 50, 68, 70, 65, 83, 50, /* 0x 830 */ - 48, 0, 30, 1, 0, 0, 0, 0, 0, 0, 34, 1, 0, 0, 78, 50, /* 0x 840 */ - 68, 70, 65, 83, 49, 49, 0, 0, 0, 0, 0, 78, 50, 68, 68, 69, /* 0x 850 */ - 67, 50, 48, 0, 39, 1, 0, 0, 78, 50, 68, 83, 77, 65, 51, 48, /* 0x 860 */ - 0, 52, 1, 0, 0, 0, 0, 0, 0, 65, 1, 0, 0, 78, 50, 68, /* 0x 870 */ - 68, 69, 67, 51, 48, 0, 16, 0, 0, 0, 78, 50, 68, 70, 65, 83, /* 0x 880 */ - 51, 48, 0, 65, 1, 0, 0, 0, 0, 0, 0, 71, 1, 0, 0, 78, /* 0x 890 */ - 50, 68, 68, 69, 67, 51, 48, 0, 16, 0, 0, 0, 0, 0, 0, 0, /* 0x 8a0 */ - 80, 1, 0, 0, 78, 50, 68, 68, 69, 67, 51, 48, 0, 16, 0, 0, /* 0x 8b0 */ - 0, 78, 50, 68, 68, 69, 67, 51, 48, 0, 80, 1, 0, 0, 0, 0, /* 0x 8c0 */ - 0, 0, 96, 1, 0, 0, 78, 50, 68, 68, 69, 67, 50, 48, 0, 0, /* 0x 8d0 */ - 0, 0, 0, 0, 0, 0, 0,114, 1, 0, 0, 78, 50, 68, 68, 69, /* 0x 8e0 */ - 67, 54, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,148, 1, 0, 0, /* 0x 8f0 */ - 78, 50, 68, 68, 69, 67, 53, 48, 0, 0, 0, 0, 0, 78, 50, 68, /* 0x 900 */ - 83, 77, 65, 52, 48, 0,162, 1, 0, 0, 0, 0, 0, 0,175, 1, /* 0x 910 */ - 0, 0, 78, 50, 68, 68, 69, 67, 51, 48, 0, 69, 0, 0, 0, 78, /* 0x 920 */ - 50, 68, 70, 65, 83, 52, 48, 0,175, 1, 0, 0, 0, 0, 0, 0, /* 0x 930 */ -179, 1, 0, 0, 78, 50, 68, 68, 69, 67, 51, 48, 0, 69, 0, 0, /* 0x 940 */ - 0, 0, 0, 0, 0,190, 1, 0, 0, 78, 50, 68, 68, 69, 67, 51, /* 0x 950 */ - 48, 0, 69, 0, 0, 0, 78, 50, 68, 68, 85, 77, 77, 49, 0,190, /* 0x 960 */ - 1, 0, 0, 78, 50, 68, 83, 77, 65, 53, 48, 0,190, 1, 0, 0, /* 0x 970 */ - 78, 50, 68, 70, 65, 83, 53, 48, 0,192, 1, 0, 0, 78, 50, 68, /* 0x 980 */ - 68, 69, 67, 53, 48, 0,195, 1, 0, 0, 78, 50, 68, 83, 77, 65, /* 0x 990 */ - 54, 48, 0,204, 1, 0, 0, 0, 0, 0, 0,216, 1, 0, 0, 78, /* 0x 9a0 */ - 50, 68, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 68, 70, /* 0x 9b0 */ - 65, 83, 54, 48, 0,216, 1, 0, 0, 0, 0, 0, 0,227, 1, 0, /* 0x 9c0 */ - 0, 78, 50, 68, 70, 65, 83, 54, 49, 0, 0, 0, 0, 0, 0, 0, /* 0x 9d0 */ - 0, 0,241, 1, 0, 0, 78, 50, 68, 68, 69, 67, 49, 48, 0, 0, /* 0x 9e0 */ - 0, 0, 0, 78, 50, 68, 70, 65, 83, 54, 49, 0,241, 1, 0, 0, /* 0x 9f0 */ - 0, 0, 0, 0, 7, 2, 0, 0, 78, 50, 68, 68, 69, 67, 49, 48, /* 0x a00 */ - 0, 0, 0, 0, 0, 78, 50, 68, 68, 69, 67, 54, 48, 0, 7, 2, /* 0x a10 */ - 0, 0, 78, 82, 86, 50, 68, 69, 78, 68, 0, 7, 2, 0, 0, 78, /* 0x a20 */ - 50, 69, 83, 77, 65, 49, 48, 0, 7, 2, 0, 0, 0, 0, 0, 0, /* 0x a30 */ - 9, 2, 0, 0, 78, 50, 69, 68, 69, 67, 49, 48, 0, 4, 0, 0, /* 0x a40 */ - 0, 78, 50, 69, 70, 65, 83, 49, 48, 0, 10, 2, 0, 0, 0, 0, /* 0x a50 */ - 0, 0, 12, 2, 0, 0, 78, 50, 69, 68, 69, 67, 49, 48, 0, 4, /* 0x a60 */ - 0, 0, 0, 78, 50, 69, 70, 65, 83, 49, 49, 0, 12, 2, 0, 0, /* 0x a70 */ - 78, 50, 69, 68, 69, 67, 49, 48, 0, 18, 2, 0, 0, 78, 50, 69, /* 0x a80 */ - 83, 77, 65, 50, 48, 0, 29, 2, 0, 0, 0, 0, 0, 0, 31, 2, /* 0x a90 */ - 0, 0, 78, 50, 69, 83, 77, 65, 49, 48, 0, 2, 0, 0, 0, 78, /* 0x aa0 */ - 50, 69, 70, 65, 83, 50, 48, 0, 34, 2, 0, 0, 0, 0, 0, 0, /* 0x ab0 */ - 38, 2, 0, 0, 78, 50, 69, 70, 65, 83, 49, 49, 0, 0, 0, 0, /* 0x ac0 */ - 0, 78, 50, 69, 68, 69, 67, 50, 48, 0, 43, 2, 0, 0, 78, 50, /* 0x ad0 */ - 69, 83, 77, 65, 51, 48, 0, 56, 2, 0, 0, 0, 0, 0, 0, 69, /* 0x ae0 */ - 2, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0, 31, 0, 0, 0, /* 0x af0 */ - 78, 50, 69, 70, 65, 83, 51, 48, 0, 69, 2, 0, 0, 0, 0, 0, /* 0x b00 */ - 0, 75, 2, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0, 31, 0, /* 0x b10 */ - 0, 0, 0, 0, 0, 0, 84, 2, 0, 0, 78, 50, 69, 68, 69, 67, /* 0x b20 */ - 51, 48, 0, 31, 0, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0, /* 0x b30 */ - 84, 2, 0, 0, 0, 0, 0, 0,100, 2, 0, 0, 78, 50, 69, 68, /* 0x b40 */ - 69, 67, 50, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,115, 2, 0, /* 0x b50 */ - 0, 78, 50, 69, 68, 69, 67, 53, 48, 0, 0, 0, 0, 0, 0, 0, /* 0x b60 */ - 0, 0,133, 2, 0, 0, 78, 50, 69, 68, 69, 67, 54, 48, 0, 0, /* 0x b70 */ - 0, 0, 0, 78, 50, 69, 83, 77, 65, 52, 48, 0,179, 2, 0, 0, /* 0x b80 */ - 0, 0, 0, 0,192, 2, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, /* 0x b90 */ - 0, 82, 0, 0, 0, 78, 50, 69, 70, 65, 83, 52, 48, 0,192, 2, /* 0x ba0 */ - 0, 0, 0, 0, 0, 0,196, 2, 0, 0, 78, 50, 69, 68, 69, 67, /* 0x bb0 */ - 51, 48, 0, 82, 0, 0, 0, 0, 0, 0, 0,207, 2, 0, 0, 78, /* 0x bc0 */ - 50, 69, 68, 69, 67, 51, 48, 0, 82, 0, 0, 0, 78, 50, 69, 68, /* 0x bd0 */ - 85, 77, 77, 49, 0,207, 2, 0, 0, 78, 50, 69, 83, 77, 65, 53, /* 0x be0 */ - 48, 0,207, 2, 0, 0, 78, 50, 69, 70, 65, 83, 53, 48, 0,209, /* 0x bf0 */ - 2, 0, 0, 78, 50, 69, 68, 69, 67, 53, 48, 0,212, 2, 0, 0, /* 0x c00 */ - 78, 50, 69, 83, 77, 65, 54, 48, 0,221, 2, 0, 0, 0, 0, 0, /* 0x c10 */ - 0,233, 2, 0, 0, 78, 50, 69, 68, 69, 67, 49, 48, 0, 0, 0, /* 0x c20 */ - 0, 0, 78, 50, 69, 70, 65, 83, 54, 48, 0,233, 2, 0, 0, 0, /* 0x c30 */ - 0, 0, 0,244, 2, 0, 0, 78, 50, 69, 70, 65, 83, 54, 49, 0, /* 0x c40 */ - 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 0, 78, 50, 69, 68, /* 0x c50 */ - 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 69, 70, 65, 83, 54, /* 0x c60 */ - 49, 0, 2, 3, 0, 0, 0, 0, 0, 0, 24, 3, 0, 0, 78, 50, /* 0x c70 */ - 69, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 69, 68, 69, /* 0x c80 */ - 67, 54, 48, 0, 24, 3, 0, 0, 78, 82, 86, 50, 69, 69, 78, 68, /* 0x c90 */ - 0, 24, 3, 0, 0, 67, 65, 76, 76, 84, 82, 48, 48, 0, 24, 3, /* 0x ca0 */ - 0, 0, 67, 84, 67, 76, 69, 86, 69, 49, 0, 38, 3, 0, 0, 0, /* 0x cb0 */ - 0, 0, 0, 43, 3, 0, 0, 67, 65, 76, 76, 84, 82, 48, 48, 0, /* 0x cc0 */ - 5, 0, 0, 0, 67, 65, 76, 76, 84, 82, 48, 49, 0, 43, 3, 0, /* 0x cd0 */ - 0, 67, 84, 68, 85, 77, 77, 89, 49, 0, 48, 3, 0, 0, 67, 84, /* 0x ce0 */ - 66, 83, 72, 82, 48, 49, 0, 48, 3, 0, 0, 67, 84, 66, 82, 79, /* 0x cf0 */ - 82, 48, 49, 0, 52, 3, 0, 0, 67, 84, 66, 83, 87, 65, 48, 49, /* 0x d00 */ - 0, 54, 3, 0, 0, 67, 65, 76, 76, 84, 82, 48, 50, 0, 59, 3, /* 0x d10 */ - 0, 0, 0, 0, 0, 0, 73, 3, 0, 0, 67, 65, 76, 76, 84, 82, /* 0x d20 */ - 48, 48, 0, 10, 0, 0, 0, 67, 65, 76, 76, 84, 82, 49, 48, 0, /* 0x d30 */ - 73, 3, 0, 0, 67, 65, 76, 76, 84, 82, 69, 56, 0, 78, 3, 0, /* 0x d40 */ - 0, 67, 65, 76, 76, 84, 82, 69, 57, 0, 80, 3, 0, 0, 67, 65, /* 0x d50 */ - 76, 76, 84, 82, 49, 49, 0, 82, 3, 0, 0, 0, 0, 0, 0, 86, /* 0x d60 */ - 3, 0, 0, 67, 65, 76, 76, 84, 82, 49, 51, 0, 5, 0, 0, 0, /* 0x d70 */ - 67, 84, 67, 76, 69, 86, 69, 50, 0, 86, 3, 0, 0, 0, 0, 0, /* 0x d80 */ - 0, 91, 3, 0, 0, 67, 65, 76, 76, 84, 82, 49, 49, 0, 0, 0, /* 0x d90 */ - 0, 0, 67, 65, 76, 76, 84, 82, 49, 50, 0, 91, 3, 0, 0, 67, /* 0x da0 */ - 84, 68, 85, 77, 77, 89, 50, 0, 93, 3, 0, 0, 67, 84, 66, 83, /* 0x db0 */ - 72, 82, 49, 49, 0, 93, 3, 0, 0, 67, 84, 66, 82, 79, 82, 49, /* 0x dc0 */ - 49, 0, 97, 3, 0, 0, 67, 84, 66, 83, 87, 65, 49, 49, 0, 99, /* 0x dd0 */ - 3, 0, 0, 67, 65, 76, 76, 84, 82, 49, 51, 0,104, 3, 0, 0, /* 0x de0 */ - 0, 0, 0, 0,109, 3, 0, 0, 67, 65, 76, 76, 84, 82, 49, 48, /* 0x df0 */ - 0, 5, 0, 0, 0, 67, 84, 84, 72, 69, 69, 78, 68, 0,109, 3, /* 0x e00 */ - 0, 0, 76, 69, 88, 69, 67, 48, 49, 53, 0,109, 3, 0, 0, 76, /* 0x e10 */ - 88, 85, 78, 70, 48, 48, 48, 0,139, 3, 0, 0, 0, 0, 0, 0, /* 0x e20 */ -141, 3, 0, 0, 76, 88, 85, 78, 70, 48, 49, 48, 0, 5, 0, 0, /* 0x e30 */ - 0, 76, 88, 85, 78, 70, 48, 48, 50, 0,141, 3, 0, 0, 77, 82, /* 0x e40 */ - 85, 66, 89, 84, 69, 48, 0,146, 3, 0, 0, 76, 88, 77, 82, 85, /* 0x e50 */ - 48, 48, 53, 0,148, 3, 0, 0, 76, 88, 77, 82, 85, 48, 48, 54, /* 0x e60 */ - 0,153, 3, 0, 0, 76, 88, 77, 82, 85, 48, 48, 55, 0,160, 3, /* 0x e70 */ - 0, 0, 76, 88, 85, 78, 70, 48, 48, 56, 0,167, 3, 0, 0, 76, /* 0x e80 */ - 88, 85, 78, 70, 48, 49, 48, 0,171, 3, 0, 0, 0, 0, 0, 0, /* 0x e90 */ -176, 3, 0, 0, 76, 88, 85, 78, 70, 48, 52, 50, 0, 0, 0, 0, /* 0x ea0 */ - 0, 76, 88, 74, 67, 67, 48, 49, 48, 0,176, 3, 0, 0, 76, 88, /* 0x eb0 */ - 77, 82, 85, 48, 52, 53, 0,179, 3, 0, 0, 76, 88, 77, 82, 85, /* 0x ec0 */ - 48, 52, 54, 0,182, 3, 0, 0, 76, 88, 74, 67, 67, 48, 50, 48, /* 0x ed0 */ - 0,184, 3, 0, 0, 0, 0, 0, 0,186, 3, 0, 0, 76, 88, 85, /* 0x ee0 */ - 78, 70, 48, 51, 52, 0, 0, 0, 0, 0, 76, 88, 74, 67, 67, 48, /* 0x ef0 */ - 50, 49, 0,186, 3, 0, 0, 0, 0, 0, 0,191, 3, 0, 0, 76, /* 0x f00 */ - 88, 85, 78, 70, 48, 51, 52, 0, 0, 0, 0, 0, 76, 88, 74, 67, /* 0x f10 */ - 67, 48, 50, 51, 0,191, 3, 0, 0, 76, 88, 85, 78, 70, 48, 51, /* 0x f20 */ - 55, 0,198, 3, 0, 0, 76, 88, 85, 78, 70, 51, 56, 54, 0,200, /* 0x f30 */ - 3, 0, 0, 76, 88, 85, 78, 70, 51, 56, 55, 0,201, 3, 0, 0, /* 0x f40 */ - 76, 88, 85, 78, 70, 51, 56, 56, 0,210, 3, 0, 0, 0, 0, 0, /* 0x f50 */ - 0,213, 3, 0, 0, 76, 88, 85, 78, 70, 48, 52, 48, 0, 0, 0, /* 0x f60 */ - 0, 0, 76, 88, 85, 78, 70, 52, 56, 54, 0,213, 3, 0, 0, 76, /* 0x f70 */ - 88, 85, 78, 70, 52, 56, 55, 0,217, 3, 0, 0, 0, 0, 0, 0, /* 0x f80 */ -219, 3, 0, 0, 76, 88, 85, 78, 70, 48, 52, 48, 0, 0, 0, 0, /* 0x f90 */ - 0, 76, 88, 77, 82, 85, 48, 54, 53, 0,219, 3, 0, 0, 0, 0, /* 0x fa0 */ - 0, 0,223, 3, 0, 0, 76, 88, 77, 82, 85, 48, 55, 48, 0, 5, /* 0x fb0 */ - 0, 0, 0, 77, 82, 85, 66, 89, 84, 69, 51, 0,223, 3, 0, 0, /* 0x fc0 */ - 77, 82, 85, 65, 82, 66, 51, 48, 0,225, 3, 0, 0, 77, 82, 85, /* 0x fd0 */ - 66, 73, 84, 83, 51, 0,226, 3, 0, 0, 77, 82, 85, 65, 82, 66, /* 0x fe0 */ - 52, 48, 0,228, 3, 0, 0, 76, 88, 77, 82, 85, 48, 55, 48, 0, /* 0x ff0 */ -232, 3, 0, 0, 0, 0, 0, 0,237, 3, 0, 0, 76, 88, 85, 78, /* 0x1000 */ - 70, 48, 52, 48, 0, 0, 0, 0, 0, 77, 82, 85, 66, 89, 84, 69, /* 0x1010 */ - 52, 0,240, 3, 0, 0, 77, 82, 85, 66, 73, 84, 83, 52, 0,243, /* 0x1020 */ - 3, 0, 0, 77, 82, 85, 65, 82, 66, 53, 48, 0,245, 3, 0, 0, /* 0x1030 */ - 76, 88, 77, 82, 85, 48, 56, 48, 0,251, 3, 0, 0, 77, 82, 85, /* 0x1040 */ - 66, 89, 84, 69, 53, 0,254, 3, 0, 0, 77, 82, 85, 65, 82, 66, /* 0x1050 */ - 54, 48, 0, 0, 4, 0, 0, 77, 82, 85, 66, 73, 84, 83, 53, 0, /* 0x1060 */ - 1, 4, 0, 0, 77, 82, 85, 65, 82, 66, 55, 48, 0, 3, 4, 0, /* 0x1070 */ - 0, 76, 88, 77, 82, 85, 48, 57, 48, 0, 7, 4, 0, 0, 0, 0, /* 0x1080 */ - 0, 0, 14, 4, 0, 0, 76, 88, 77, 82, 85, 49, 48, 48, 0, 10, /* 0x1090 */ - 0, 0, 0, 77, 82, 85, 66, 89, 84, 69, 54, 0, 18, 4, 0, 0, /* 0x10a0 */ - 77, 82, 85, 65, 82, 66, 56, 48, 0, 20, 4, 0, 0, 77, 82, 85, /* 0x10b0 */ - 66, 73, 84, 83, 54, 0, 21, 4, 0, 0, 77, 82, 85, 65, 82, 66, /* 0x10c0 */ - 57, 48, 0, 23, 4, 0, 0, 76, 88, 77, 82, 85, 49, 48, 48, 0, /* 0x10d0 */ - 27, 4, 0, 0, 76, 88, 85, 78, 70, 48, 52, 48, 0, 43, 4, 0, /* 0x10e0 */ - 0, 76, 88, 77, 82, 85, 49, 49, 48, 0, 48, 4, 0, 0, 76, 88, /* 0x10f0 */ - 77, 82, 85, 49, 49, 49, 0, 51, 4, 0, 0, 76, 88, 85, 78, 70, /* 0x1100 */ - 48, 52, 49, 0, 53, 4, 0, 0, 0, 0, 0, 0, 60, 4, 0, 0, /* 0x1110 */ - 76, 88, 85, 78, 70, 48, 51, 52, 0, 0, 0, 0, 0, 76, 88, 85, /* 0x1120 */ - 78, 70, 48, 52, 50, 0, 60, 4, 0, 0, 76, 69, 88, 69, 67, 48, /* 0x1130 */ - 49, 54, 0, 60, 4, 0, 0, 0, 0, 0, 0, 62, 4, 0, 0, 76, /* 0x1140 */ - 88, 85, 78, 70, 48, 52, 50, 0, 0, 0, 0, 0, 76, 88, 77, 82, /* 0x1150 */ - 85, 48, 49, 48, 0, 62, 4, 0, 0, 76, 88, 74, 77, 80, 65, 48, /* 0x1160 */ - 48, 0, 63, 4, 0, 0, 76, 88, 67, 65, 76, 76, 66, 48, 0, 65, /* 0x1170 */ - 4, 0, 0, 76, 88, 85, 78, 70, 48, 50, 49, 0, 67, 4, 0, 0, /* 0x1180 */ - 76, 88, 77, 82, 85, 48, 50, 50, 0, 73, 4, 0, 0, 76, 88, 74, /* 0x1190 */ - 77, 80, 65, 48, 49, 0, 76, 4, 0, 0, 76, 88, 67, 65, 76, 76, /* 0x11a0 */ - 66, 49, 0, 78, 4, 0, 0, 77, 82, 85, 66, 73, 84, 83, 49, 0, /* 0x11b0 */ - 80, 4, 0, 0, 76, 88, 77, 82, 85, 48, 51, 48, 0, 81, 4, 0, /* 0x11c0 */ - 0, 77, 82, 85, 66, 89, 84, 69, 49, 0, 83, 4, 0, 0, 77, 82, /* 0x11d0 */ - 85, 65, 82, 66, 49, 48, 0, 85, 4, 0, 0, 76, 88, 77, 82, 85, /* 0x11e0 */ - 48, 52, 48, 0, 86, 4, 0, 0, 0, 0, 0, 0, 88, 4, 0, 0, /* 0x11f0 */ - 76, 88, 77, 82, 85, 48, 51, 48, 0, 0, 0, 0, 0, 76, 88, 85, /* 0x1200 */ - 78, 70, 48, 51, 48, 0, 88, 4, 0, 0, 76, 88, 74, 67, 67, 48, /* 0x1210 */ - 48, 48, 0, 94, 4, 0, 0, 0, 0, 0, 0,102, 4, 0, 0, 76, /* 0x1220 */ - 88, 74, 67, 67, 48, 49, 48, 0, 0, 0, 0, 0, 76, 88, 67, 74, /* 0x1230 */ - 48, 77, 82, 85, 0,102, 4, 0, 0, 76, 88, 67, 74, 49, 77, 82, /* 0x1240 */ - 85, 0,104, 4, 0, 0, 76, 88, 67, 65, 76, 74, 77, 80, 0,107, /* 0x1250 */ - 4, 0, 0, 76, 88, 67, 65, 76, 76, 48, 48, 0,110, 4, 0, 0, /* 0x1260 */ - 0, 0, 0, 0,112, 4, 0, 0, 76, 88, 85, 78, 70, 48, 51, 55, /* 0x1270 */ - 0, 0, 0, 0, 0, 76, 88, 67, 65, 76, 76, 48, 49, 0,112, 4, /* 0x1280 */ - 0, 0, 76, 88, 67, 74, 50, 77, 82, 85, 0,115, 4, 0, 0, 0, /* 0x1290 */ - 0, 0, 0,117, 4, 0, 0, 76, 88, 85, 78, 70, 48, 51, 55, 0, /* 0x12a0 */ - 0, 0, 0, 0, 76, 88, 67, 74, 52, 77, 82, 85, 0,117, 4, 0, /* 0x12b0 */ - 0, 0, 0, 0, 0,119, 4, 0, 0, 76, 88, 85, 78, 70, 48, 51, /* 0x12c0 */ - 52, 0, 0, 0, 0, 0, 76, 88, 67, 74, 54, 77, 82, 85, 0,119, /* 0x12d0 */ - 4, 0, 0, 0, 0, 0, 0,121, 4, 0, 0, 76, 88, 67, 74, 56, /* 0x12e0 */ - 77, 82, 85, 0, 1, 0, 0, 0, 76, 88, 67, 74, 55, 77, 82, 85, /* 0x12f0 */ - 0,121, 4, 0, 0, 0, 0, 0, 0,123, 4, 0, 0, 76, 88, 67, /* 0x1300 */ - 74, 56, 77, 82, 85, 0, 1, 0, 0, 0, 76, 88, 67, 74, 56, 77, /* 0x1310 */ - 82, 85, 0,123, 4, 0, 0, 0, 0, 0, 0,126, 4, 0, 0, 76, /* 0x1320 */ - 88, 85, 78, 70, 48, 51, 55, 0, 0, 0, 0, 0, 76, 88, 85, 78, /* 0x1330 */ - 70, 48, 51, 52, 0,126, 4, 0, 0, 0, 0, 0, 0,131, 4, 0, /* 0x1340 */ - 0, 76, 88, 85, 78, 70, 48, 51, 48, 0, 0, 0, 0, 0, 76, 88, /* 0x1350 */ - 77, 82, 85, 48, 53, 53, 0,131, 4, 0, 0, 77, 82, 85, 66, 89, /* 0x1360 */ - 84, 69, 50, 0,133, 4, 0, 0, 77, 82, 85, 66, 73, 84, 83, 50, /* 0x1370 */ - 0,138, 4, 0, 0, 77, 82, 85, 65, 82, 66, 50, 48, 0,143, 4, /* 0x1380 */ - 0, 0, 76, 88, 77, 82, 85, 48, 53, 55, 0,148, 4, 0, 0, 76, /* 0x1390 */ - 88, 77, 82, 85, 48, 53, 56, 0,154, 4, 0, 0, 76, 88, 85, 78, /* 0x13a0 */ - 70, 48, 51, 53, 0,155, 4, 0, 0, 67, 75, 76, 76, 84, 82, 48, /* 0x13b0 */ - 48, 0,161, 4, 0, 0, 0, 0, 0, 0,165, 4, 0, 0, 67, 75, /* 0x13c0 */ - 76, 76, 84, 82, 50, 48, 0, 30, 0, 0, 0, 67, 75, 76, 76, 84, /* 0x13d0 */ - 82, 49, 48, 0,170, 4, 0, 0, 0, 0, 0, 0,184, 4, 0, 0, /* 0x13e0 */ - 67, 75, 76, 76, 84, 82, 50, 48, 0, 6, 0, 0, 0, 67, 75, 76, /* 0x13f0 */ - 76, 84, 82, 50, 48, 0,184, 4, 0, 0, 0, 0, 0, 0,190, 4, /* 0x1400 */ - 0, 0, 67, 75, 76, 76, 84, 82, 52, 48, 0, 0, 0, 0, 0, 0, /* 0x1410 */ - 0, 0, 0,194, 4, 0, 0, 67, 75, 76, 76, 84, 82, 52, 48, 0, /* 0x1420 */ - 0, 0, 0, 0, 67, 75, 76, 76, 84, 82, 51, 48, 0,217, 4, 0, /* 0x1430 */ - 0, 0, 0, 0, 0,224, 4, 0, 0, 67, 75, 76, 76, 84, 82, 49, /* 0x1440 */ - 48, 0, 14, 0, 0, 0, 67, 75, 76, 76, 84, 82, 52, 48, 0,224, /* 0x1450 */ - 4, 0, 0, 0, 0, 0, 0,229, 4, 0, 0, 67, 75, 76, 76, 84, /* 0x1460 */ - 82, 48, 48, 0, 4, 0, 0, 0, 76, 69, 88, 69, 67, 48, 49, 55, /* 0x1470 */ - 0,229, 4, 0, 0, 76, 69, 88, 69, 67, 48, 50, 48, 0,231, 4, /* 0x1480 */ - 0, 0, 88, 84, 72, 69, 69, 78, 68, 88, 0, 28, 5, 0, 0,255, /* 0x1490 */ -255,255,255, 28, 5 /* 0x14a0 */ +131,233, 1,127, 0, 97,195,106, 24, 90,232, 24, 0, 0, 0, 83, /* 0x 4e0 */ + 69, 76,105,110,117,120, 32,100,101,110,105,101,100, 32,101,120, /* 0x 4f0 */ +101, 99,109,101,109, 46, 10, 89,106, 2, 91,106, 4, 88,205,128, /* 0x 500 */ +179,127,106, 1, 88,205,128, 94,141, 69,247, 43, 0,137,194, 3, /* 0x 510 */ + 64, 72, 80, 49,201,106,255,106, 50,181, 16,106, 7, 81, 80,137, /* 0x 520 */ +227,106, 90, 88,205,128,133,192,120,173,146,147,252,173, 80, 84, /* 0x 530 */ + 82,173, 80,173, 86,255,213,131,196, 40,195, 93,232,198,255,255, /* 0x 540 */ +255, 0, 0, 0, 76, 69, 88, 69, 67, 48, 48, 48, 0, 0, 0, 0, /* 0x 550 */ + 0, 0, 0, 0, 0, 5, 0, 0, 0, 76, 69, 88, 69, 67, 48, 50, /* 0x 560 */ + 48, 0,100, 0, 0, 0, 76, 69, 88, 69, 67, 48, 48, 57, 0, 5, /* 0x 570 */ + 0, 0, 0, 76, 69, 88, 69, 67, 48, 49, 48, 0, 5, 0, 0, 0, /* 0x 580 */ + 78, 50, 66, 83, 77, 65, 49, 48, 0, 19, 0, 0, 0, 0, 0, 0, /* 0x 590 */ + 0, 21, 0, 0, 0, 78, 50, 66, 68, 69, 67, 49, 48, 0, 4, 0, /* 0x 5a0 */ + 0, 0, 78, 50, 66, 70, 65, 83, 49, 48, 0, 22, 0, 0, 0, 0, /* 0x 5b0 */ + 0, 0, 0, 24, 0, 0, 0, 78, 50, 66, 68, 69, 67, 49, 48, 0, /* 0x 5c0 */ + 4, 0, 0, 0, 78, 50, 66, 70, 65, 83, 49, 49, 0, 24, 0, 0, /* 0x 5d0 */ + 0, 78, 50, 66, 68, 69, 67, 49, 48, 0, 30, 0, 0, 0, 78, 50, /* 0x 5e0 */ + 66, 83, 77, 65, 50, 48, 0, 41, 0, 0, 0, 0, 0, 0, 0, 43, /* 0x 5f0 */ + 0, 0, 0, 78, 50, 66, 83, 77, 65, 49, 48, 0, 2, 0, 0, 0, /* 0x 600 */ + 78, 50, 66, 70, 65, 83, 50, 48, 0, 46, 0, 0, 0, 0, 0, 0, /* 0x 610 */ + 0, 50, 0, 0, 0, 78, 50, 66, 70, 65, 83, 49, 49, 0, 0, 0, /* 0x 620 */ + 0, 0, 78, 50, 66, 68, 69, 67, 50, 48, 0, 55, 0, 0, 0, 78, /* 0x 630 */ + 50, 66, 83, 77, 65, 51, 48, 0, 68, 0, 0, 0, 0, 0, 0, 0, /* 0x 640 */ + 81, 0, 0, 0, 78, 50, 66, 68, 69, 67, 50, 48, 0, 0, 0, 0, /* 0x 650 */ + 0, 78, 50, 66, 70, 65, 83, 51, 48, 0, 81, 0, 0, 0, 0, 0, /* 0x 660 */ + 0, 0, 85, 0, 0, 0, 78, 50, 66, 68, 69, 67, 50, 48, 0, 0, /* 0x 670 */ + 0, 0, 0, 0, 0, 0, 0, 96, 0, 0, 0, 78, 50, 66, 68, 69, /* 0x 680 */ + 67, 50, 48, 0, 0, 0, 0, 0, 78, 50, 66, 68, 69, 67, 51, 48, /* 0x 690 */ + 0, 96, 0, 0, 0, 0, 0, 0, 0,114, 0, 0, 0, 78, 50, 66, /* 0x 6a0 */ + 68, 69, 67, 54, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,144, 0, /* 0x 6b0 */ + 0, 0, 78, 50, 66, 68, 69, 67, 53, 48, 0, 0, 0, 0, 0, 78, /* 0x 6c0 */ + 50, 66, 83, 77, 65, 52, 48, 0,158, 0, 0, 0, 0, 0, 0, 0, /* 0x 6d0 */ +171, 0, 0, 0, 78, 50, 66, 68, 69, 67, 51, 48, 0, 49, 0, 0, /* 0x 6e0 */ + 0, 78, 50, 66, 70, 65, 83, 52, 48, 0,171, 0, 0, 0, 0, 0, /* 0x 6f0 */ + 0, 0,175, 0, 0, 0, 78, 50, 66, 68, 69, 67, 51, 48, 0, 49, /* 0x 700 */ + 0, 0, 0, 0, 0, 0, 0,186, 0, 0, 0, 78, 50, 66, 68, 69, /* 0x 710 */ + 67, 51, 48, 0, 49, 0, 0, 0, 78, 50, 66, 68, 85, 77, 77, 49, /* 0x 720 */ + 0,186, 0, 0, 0, 78, 50, 66, 83, 77, 65, 53, 48, 0,186, 0, /* 0x 730 */ + 0, 0, 78, 50, 66, 70, 65, 83, 53, 48, 0,188, 0, 0, 0, 78, /* 0x 740 */ + 50, 66, 68, 69, 67, 53, 48, 0,191, 0, 0, 0, 78, 50, 66, 83, /* 0x 750 */ + 77, 65, 54, 48, 0,200, 0, 0, 0, 0, 0, 0, 0,212, 0, 0, /* 0x 760 */ + 0, 78, 50, 66, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, /* 0x 770 */ + 66, 70, 65, 83, 54, 48, 0,212, 0, 0, 0, 0, 0, 0, 0,223, /* 0x 780 */ + 0, 0, 0, 78, 50, 66, 70, 65, 83, 54, 49, 0, 0, 0, 0, 0, /* 0x 790 */ + 0, 0, 0, 0,237, 0, 0, 0, 78, 50, 66, 68, 69, 67, 49, 48, /* 0x 7a0 */ + 0, 0, 0, 0, 0, 78, 50, 66, 70, 65, 83, 54, 49, 0,237, 0, /* 0x 7b0 */ + 0, 0, 0, 0, 0, 0, 3, 1, 0, 0, 78, 50, 66, 68, 69, 67, /* 0x 7c0 */ + 49, 48, 0, 0, 0, 0, 0, 78, 50, 66, 68, 69, 67, 54, 48, 0, /* 0x 7d0 */ + 3, 1, 0, 0, 78, 82, 86, 50, 66, 69, 78, 68, 0, 3, 1, 0, /* 0x 7e0 */ + 0, 78, 50, 68, 83, 77, 65, 49, 48, 0, 3, 1, 0, 0, 0, 0, /* 0x 7f0 */ + 0, 0, 5, 1, 0, 0, 78, 50, 68, 68, 69, 67, 49, 48, 0, 4, /* 0x 800 */ + 0, 0, 0, 78, 50, 68, 70, 65, 83, 49, 48, 0, 6, 1, 0, 0, /* 0x 810 */ + 0, 0, 0, 0, 8, 1, 0, 0, 78, 50, 68, 68, 69, 67, 49, 48, /* 0x 820 */ + 0, 4, 0, 0, 0, 78, 50, 68, 70, 65, 83, 49, 49, 0, 8, 1, /* 0x 830 */ + 0, 0, 78, 50, 68, 68, 69, 67, 49, 48, 0, 14, 1, 0, 0, 78, /* 0x 840 */ + 50, 68, 83, 77, 65, 50, 48, 0, 25, 1, 0, 0, 0, 0, 0, 0, /* 0x 850 */ + 27, 1, 0, 0, 78, 50, 68, 83, 77, 65, 49, 48, 0, 2, 0, 0, /* 0x 860 */ + 0, 78, 50, 68, 70, 65, 83, 50, 48, 0, 30, 1, 0, 0, 0, 0, /* 0x 870 */ + 0, 0, 34, 1, 0, 0, 78, 50, 68, 70, 65, 83, 49, 49, 0, 0, /* 0x 880 */ + 0, 0, 0, 78, 50, 68, 68, 69, 67, 50, 48, 0, 39, 1, 0, 0, /* 0x 890 */ + 78, 50, 68, 83, 77, 65, 51, 48, 0, 52, 1, 0, 0, 0, 0, 0, /* 0x 8a0 */ + 0, 65, 1, 0, 0, 78, 50, 68, 68, 69, 67, 51, 48, 0, 16, 0, /* 0x 8b0 */ + 0, 0, 78, 50, 68, 70, 65, 83, 51, 48, 0, 65, 1, 0, 0, 0, /* 0x 8c0 */ + 0, 0, 0, 71, 1, 0, 0, 78, 50, 68, 68, 69, 67, 51, 48, 0, /* 0x 8d0 */ + 16, 0, 0, 0, 0, 0, 0, 0, 80, 1, 0, 0, 78, 50, 68, 68, /* 0x 8e0 */ + 69, 67, 51, 48, 0, 16, 0, 0, 0, 78, 50, 68, 68, 69, 67, 51, /* 0x 8f0 */ + 48, 0, 80, 1, 0, 0, 0, 0, 0, 0, 96, 1, 0, 0, 78, 50, /* 0x 900 */ + 68, 68, 69, 67, 50, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,114, /* 0x 910 */ + 1, 0, 0, 78, 50, 68, 68, 69, 67, 54, 48, 0, 0, 0, 0, 0, /* 0x 920 */ + 0, 0, 0, 0,148, 1, 0, 0, 78, 50, 68, 68, 69, 67, 53, 48, /* 0x 930 */ + 0, 0, 0, 0, 0, 78, 50, 68, 83, 77, 65, 52, 48, 0,162, 1, /* 0x 940 */ + 0, 0, 0, 0, 0, 0,175, 1, 0, 0, 78, 50, 68, 68, 69, 67, /* 0x 950 */ + 51, 48, 0, 69, 0, 0, 0, 78, 50, 68, 70, 65, 83, 52, 48, 0, /* 0x 960 */ +175, 1, 0, 0, 0, 0, 0, 0,179, 1, 0, 0, 78, 50, 68, 68, /* 0x 970 */ + 69, 67, 51, 48, 0, 69, 0, 0, 0, 0, 0, 0, 0,190, 1, 0, /* 0x 980 */ + 0, 78, 50, 68, 68, 69, 67, 51, 48, 0, 69, 0, 0, 0, 78, 50, /* 0x 990 */ + 68, 68, 85, 77, 77, 49, 0,190, 1, 0, 0, 78, 50, 68, 83, 77, /* 0x 9a0 */ + 65, 53, 48, 0,190, 1, 0, 0, 78, 50, 68, 70, 65, 83, 53, 48, /* 0x 9b0 */ + 0,192, 1, 0, 0, 78, 50, 68, 68, 69, 67, 53, 48, 0,195, 1, /* 0x 9c0 */ + 0, 0, 78, 50, 68, 83, 77, 65, 54, 48, 0,204, 1, 0, 0, 0, /* 0x 9d0 */ + 0, 0, 0,216, 1, 0, 0, 78, 50, 68, 68, 69, 67, 49, 48, 0, /* 0x 9e0 */ + 0, 0, 0, 0, 78, 50, 68, 70, 65, 83, 54, 48, 0,216, 1, 0, /* 0x 9f0 */ + 0, 0, 0, 0, 0,227, 1, 0, 0, 78, 50, 68, 70, 65, 83, 54, /* 0x a00 */ + 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,241, 1, 0, 0, 78, 50, /* 0x a10 */ + 68, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 68, 70, 65, /* 0x a20 */ + 83, 54, 49, 0,241, 1, 0, 0, 0, 0, 0, 0, 7, 2, 0, 0, /* 0x a30 */ + 78, 50, 68, 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 68, /* 0x a40 */ + 68, 69, 67, 54, 48, 0, 7, 2, 0, 0, 78, 82, 86, 50, 68, 69, /* 0x a50 */ + 78, 68, 0, 7, 2, 0, 0, 78, 50, 69, 83, 77, 65, 49, 48, 0, /* 0x a60 */ + 7, 2, 0, 0, 0, 0, 0, 0, 9, 2, 0, 0, 78, 50, 69, 68, /* 0x a70 */ + 69, 67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 69, 70, 65, 83, 49, /* 0x a80 */ + 48, 0, 10, 2, 0, 0, 0, 0, 0, 0, 12, 2, 0, 0, 78, 50, /* 0x a90 */ + 69, 68, 69, 67, 49, 48, 0, 4, 0, 0, 0, 78, 50, 69, 70, 65, /* 0x aa0 */ + 83, 49, 49, 0, 12, 2, 0, 0, 78, 50, 69, 68, 69, 67, 49, 48, /* 0x ab0 */ + 0, 18, 2, 0, 0, 78, 50, 69, 83, 77, 65, 50, 48, 0, 29, 2, /* 0x ac0 */ + 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 78, 50, 69, 83, 77, 65, /* 0x ad0 */ + 49, 48, 0, 2, 0, 0, 0, 78, 50, 69, 70, 65, 83, 50, 48, 0, /* 0x ae0 */ + 34, 2, 0, 0, 0, 0, 0, 0, 38, 2, 0, 0, 78, 50, 69, 70, /* 0x af0 */ + 65, 83, 49, 49, 0, 0, 0, 0, 0, 78, 50, 69, 68, 69, 67, 50, /* 0x b00 */ + 48, 0, 43, 2, 0, 0, 78, 50, 69, 83, 77, 65, 51, 48, 0, 56, /* 0x b10 */ + 2, 0, 0, 0, 0, 0, 0, 69, 2, 0, 0, 78, 50, 69, 68, 69, /* 0x b20 */ + 67, 51, 48, 0, 31, 0, 0, 0, 78, 50, 69, 70, 65, 83, 51, 48, /* 0x b30 */ + 0, 69, 2, 0, 0, 0, 0, 0, 0, 75, 2, 0, 0, 78, 50, 69, /* 0x b40 */ + 68, 69, 67, 51, 48, 0, 31, 0, 0, 0, 0, 0, 0, 0, 84, 2, /* 0x b50 */ + 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0, 31, 0, 0, 0, 78, /* 0x b60 */ + 50, 69, 68, 69, 67, 51, 48, 0, 84, 2, 0, 0, 0, 0, 0, 0, /* 0x b70 */ +100, 2, 0, 0, 78, 50, 69, 68, 69, 67, 50, 48, 0, 0, 0, 0, /* 0x b80 */ + 0, 0, 0, 0, 0,115, 2, 0, 0, 78, 50, 69, 68, 69, 67, 53, /* 0x b90 */ + 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,133, 2, 0, 0, 78, 50, /* 0x ba0 */ + 69, 68, 69, 67, 54, 48, 0, 0, 0, 0, 0, 78, 50, 69, 83, 77, /* 0x bb0 */ + 65, 52, 48, 0,179, 2, 0, 0, 0, 0, 0, 0,192, 2, 0, 0, /* 0x bc0 */ + 78, 50, 69, 68, 69, 67, 51, 48, 0, 82, 0, 0, 0, 78, 50, 69, /* 0x bd0 */ + 70, 65, 83, 52, 48, 0,192, 2, 0, 0, 0, 0, 0, 0,196, 2, /* 0x be0 */ + 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0, 82, 0, 0, 0, 0, /* 0x bf0 */ + 0, 0, 0,207, 2, 0, 0, 78, 50, 69, 68, 69, 67, 51, 48, 0, /* 0x c00 */ + 82, 0, 0, 0, 78, 50, 69, 68, 85, 77, 77, 49, 0,207, 2, 0, /* 0x c10 */ + 0, 78, 50, 69, 83, 77, 65, 53, 48, 0,207, 2, 0, 0, 78, 50, /* 0x c20 */ + 69, 70, 65, 83, 53, 48, 0,209, 2, 0, 0, 78, 50, 69, 68, 69, /* 0x c30 */ + 67, 53, 48, 0,212, 2, 0, 0, 78, 50, 69, 83, 77, 65, 54, 48, /* 0x c40 */ + 0,221, 2, 0, 0, 0, 0, 0, 0,233, 2, 0, 0, 78, 50, 69, /* 0x c50 */ + 68, 69, 67, 49, 48, 0, 0, 0, 0, 0, 78, 50, 69, 70, 65, 83, /* 0x c60 */ + 54, 48, 0,233, 2, 0, 0, 0, 0, 0, 0,244, 2, 0, 0, 78, /* 0x c70 */ + 50, 69, 70, 65, 83, 54, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x c80 */ + 2, 3, 0, 0, 78, 50, 69, 68, 69, 67, 49, 48, 0, 0, 0, 0, /* 0x c90 */ + 0, 78, 50, 69, 70, 65, 83, 54, 49, 0, 2, 3, 0, 0, 0, 0, /* 0x ca0 */ + 0, 0, 24, 3, 0, 0, 78, 50, 69, 68, 69, 67, 49, 48, 0, 0, /* 0x cb0 */ + 0, 0, 0, 78, 50, 69, 68, 69, 67, 54, 48, 0, 24, 3, 0, 0, /* 0x cc0 */ + 78, 82, 86, 50, 69, 69, 78, 68, 0, 24, 3, 0, 0, 67, 65, 76, /* 0x cd0 */ + 76, 84, 82, 48, 48, 0, 24, 3, 0, 0, 67, 84, 67, 76, 69, 86, /* 0x ce0 */ + 69, 49, 0, 38, 3, 0, 0, 0, 0, 0, 0, 43, 3, 0, 0, 67, /* 0x cf0 */ + 65, 76, 76, 84, 82, 48, 48, 0, 5, 0, 0, 0, 67, 65, 76, 76, /* 0x d00 */ + 84, 82, 48, 49, 0, 43, 3, 0, 0, 67, 84, 68, 85, 77, 77, 89, /* 0x d10 */ + 49, 0, 48, 3, 0, 0, 67, 84, 66, 83, 72, 82, 48, 49, 0, 48, /* 0x d20 */ + 3, 0, 0, 67, 84, 66, 82, 79, 82, 48, 49, 0, 52, 3, 0, 0, /* 0x d30 */ + 67, 84, 66, 83, 87, 65, 48, 49, 0, 54, 3, 0, 0, 67, 65, 76, /* 0x d40 */ + 76, 84, 82, 48, 50, 0, 59, 3, 0, 0, 0, 0, 0, 0, 73, 3, /* 0x d50 */ + 0, 0, 67, 65, 76, 76, 84, 82, 48, 48, 0, 10, 0, 0, 0, 67, /* 0x d60 */ + 65, 76, 76, 84, 82, 49, 48, 0, 73, 3, 0, 0, 67, 65, 76, 76, /* 0x d70 */ + 84, 82, 69, 56, 0, 78, 3, 0, 0, 67, 65, 76, 76, 84, 82, 69, /* 0x d80 */ + 57, 0, 80, 3, 0, 0, 67, 65, 76, 76, 84, 82, 49, 49, 0, 82, /* 0x d90 */ + 3, 0, 0, 0, 0, 0, 0, 86, 3, 0, 0, 67, 65, 76, 76, 84, /* 0x da0 */ + 82, 49, 51, 0, 5, 0, 0, 0, 67, 84, 67, 76, 69, 86, 69, 50, /* 0x db0 */ + 0, 86, 3, 0, 0, 0, 0, 0, 0, 91, 3, 0, 0, 67, 65, 76, /* 0x dc0 */ + 76, 84, 82, 49, 49, 0, 0, 0, 0, 0, 67, 65, 76, 76, 84, 82, /* 0x dd0 */ + 49, 50, 0, 91, 3, 0, 0, 67, 84, 68, 85, 77, 77, 89, 50, 0, /* 0x de0 */ + 93, 3, 0, 0, 67, 84, 66, 83, 72, 82, 49, 49, 0, 93, 3, 0, /* 0x df0 */ + 0, 67, 84, 66, 82, 79, 82, 49, 49, 0, 97, 3, 0, 0, 67, 84, /* 0x e00 */ + 66, 83, 87, 65, 49, 49, 0, 99, 3, 0, 0, 67, 65, 76, 76, 84, /* 0x e10 */ + 82, 49, 51, 0,104, 3, 0, 0, 0, 0, 0, 0,109, 3, 0, 0, /* 0x e20 */ + 67, 65, 76, 76, 84, 82, 49, 48, 0, 5, 0, 0, 0, 67, 84, 84, /* 0x e30 */ + 72, 69, 69, 78, 68, 0,109, 3, 0, 0, 76, 69, 88, 69, 67, 48, /* 0x e40 */ + 49, 53, 0,109, 3, 0, 0, 76, 88, 85, 78, 70, 48, 48, 48, 0, /* 0x e50 */ +139, 3, 0, 0, 0, 0, 0, 0,141, 3, 0, 0, 76, 88, 85, 78, /* 0x e60 */ + 70, 48, 49, 48, 0, 5, 0, 0, 0, 76, 88, 85, 78, 70, 48, 48, /* 0x e70 */ + 50, 0,141, 3, 0, 0, 77, 82, 85, 66, 89, 84, 69, 48, 0,146, /* 0x e80 */ + 3, 0, 0, 76, 88, 77, 82, 85, 48, 48, 53, 0,148, 3, 0, 0, /* 0x e90 */ + 76, 88, 77, 82, 85, 48, 48, 54, 0,153, 3, 0, 0, 76, 88, 77, /* 0x ea0 */ + 82, 85, 48, 48, 55, 0,160, 3, 0, 0, 76, 88, 85, 78, 70, 48, /* 0x eb0 */ + 48, 56, 0,167, 3, 0, 0, 76, 88, 85, 78, 70, 48, 49, 48, 0, /* 0x ec0 */ +171, 3, 0, 0, 0, 0, 0, 0,176, 3, 0, 0, 76, 88, 85, 78, /* 0x ed0 */ + 70, 48, 52, 50, 0, 0, 0, 0, 0, 76, 88, 74, 67, 67, 48, 49, /* 0x ee0 */ + 48, 0,176, 3, 0, 0, 76, 88, 77, 82, 85, 48, 52, 53, 0,179, /* 0x ef0 */ + 3, 0, 0, 76, 88, 77, 82, 85, 48, 52, 54, 0,182, 3, 0, 0, /* 0x f00 */ + 76, 88, 74, 67, 67, 48, 50, 48, 0,184, 3, 0, 0, 0, 0, 0, /* 0x f10 */ + 0,186, 3, 0, 0, 76, 88, 85, 78, 70, 48, 51, 52, 0, 0, 0, /* 0x f20 */ + 0, 0, 76, 88, 74, 67, 67, 48, 50, 49, 0,186, 3, 0, 0, 0, /* 0x f30 */ + 0, 0, 0,191, 3, 0, 0, 76, 88, 85, 78, 70, 48, 51, 52, 0, /* 0x f40 */ + 0, 0, 0, 0, 76, 88, 74, 67, 67, 48, 50, 51, 0,191, 3, 0, /* 0x f50 */ + 0, 76, 88, 85, 78, 70, 48, 51, 55, 0,198, 3, 0, 0, 76, 88, /* 0x f60 */ + 85, 78, 70, 51, 56, 54, 0,200, 3, 0, 0, 76, 88, 85, 78, 70, /* 0x f70 */ + 51, 56, 55, 0,201, 3, 0, 0, 76, 88, 85, 78, 70, 51, 56, 56, /* 0x f80 */ + 0,210, 3, 0, 0, 0, 0, 0, 0,213, 3, 0, 0, 76, 88, 85, /* 0x f90 */ + 78, 70, 48, 52, 48, 0, 0, 0, 0, 0, 76, 88, 85, 78, 70, 52, /* 0x fa0 */ + 56, 54, 0,213, 3, 0, 0, 76, 88, 85, 78, 70, 52, 56, 55, 0, /* 0x fb0 */ +217, 3, 0, 0, 0, 0, 0, 0,219, 3, 0, 0, 76, 88, 85, 78, /* 0x fc0 */ + 70, 48, 52, 48, 0, 0, 0, 0, 0, 76, 88, 77, 82, 85, 48, 54, /* 0x fd0 */ + 53, 0,219, 3, 0, 0, 0, 0, 0, 0,223, 3, 0, 0, 76, 88, /* 0x fe0 */ + 77, 82, 85, 48, 55, 48, 0, 5, 0, 0, 0, 77, 82, 85, 66, 89, /* 0x ff0 */ + 84, 69, 51, 0,223, 3, 0, 0, 77, 82, 85, 65, 82, 66, 51, 48, /* 0x1000 */ + 0,225, 3, 0, 0, 77, 82, 85, 66, 73, 84, 83, 51, 0,226, 3, /* 0x1010 */ + 0, 0, 77, 82, 85, 65, 82, 66, 52, 48, 0,228, 3, 0, 0, 76, /* 0x1020 */ + 88, 77, 82, 85, 48, 55, 48, 0,232, 3, 0, 0, 0, 0, 0, 0, /* 0x1030 */ +237, 3, 0, 0, 76, 88, 85, 78, 70, 48, 52, 48, 0, 0, 0, 0, /* 0x1040 */ + 0, 77, 82, 85, 66, 89, 84, 69, 52, 0,240, 3, 0, 0, 77, 82, /* 0x1050 */ + 85, 66, 73, 84, 83, 52, 0,243, 3, 0, 0, 77, 82, 85, 65, 82, /* 0x1060 */ + 66, 53, 48, 0,245, 3, 0, 0, 76, 88, 77, 82, 85, 48, 56, 48, /* 0x1070 */ + 0,251, 3, 0, 0, 77, 82, 85, 66, 89, 84, 69, 53, 0,254, 3, /* 0x1080 */ + 0, 0, 77, 82, 85, 65, 82, 66, 54, 48, 0, 0, 4, 0, 0, 77, /* 0x1090 */ + 82, 85, 66, 73, 84, 83, 53, 0, 1, 4, 0, 0, 77, 82, 85, 65, /* 0x10a0 */ + 82, 66, 55, 48, 0, 3, 4, 0, 0, 76, 88, 77, 82, 85, 48, 57, /* 0x10b0 */ + 48, 0, 7, 4, 0, 0, 0, 0, 0, 0, 14, 4, 0, 0, 76, 88, /* 0x10c0 */ + 77, 82, 85, 49, 48, 48, 0, 10, 0, 0, 0, 77, 82, 85, 66, 89, /* 0x10d0 */ + 84, 69, 54, 0, 18, 4, 0, 0, 77, 82, 85, 65, 82, 66, 56, 48, /* 0x10e0 */ + 0, 20, 4, 0, 0, 77, 82, 85, 66, 73, 84, 83, 54, 0, 21, 4, /* 0x10f0 */ + 0, 0, 77, 82, 85, 65, 82, 66, 57, 48, 0, 23, 4, 0, 0, 76, /* 0x1100 */ + 88, 77, 82, 85, 49, 48, 48, 0, 27, 4, 0, 0, 76, 88, 85, 78, /* 0x1110 */ + 70, 48, 52, 48, 0, 43, 4, 0, 0, 76, 88, 77, 82, 85, 49, 49, /* 0x1120 */ + 48, 0, 48, 4, 0, 0, 76, 88, 77, 82, 85, 49, 49, 49, 0, 51, /* 0x1130 */ + 4, 0, 0, 76, 88, 85, 78, 70, 48, 52, 49, 0, 53, 4, 0, 0, /* 0x1140 */ + 0, 0, 0, 0, 60, 4, 0, 0, 76, 88, 85, 78, 70, 48, 51, 52, /* 0x1150 */ + 0, 0, 0, 0, 0, 76, 88, 85, 78, 70, 48, 52, 50, 0, 60, 4, /* 0x1160 */ + 0, 0, 76, 69, 88, 69, 67, 48, 49, 54, 0, 60, 4, 0, 0, 0, /* 0x1170 */ + 0, 0, 0, 62, 4, 0, 0, 76, 88, 85, 78, 70, 48, 52, 50, 0, /* 0x1180 */ + 0, 0, 0, 0, 76, 88, 77, 82, 85, 48, 49, 48, 0, 62, 4, 0, /* 0x1190 */ + 0, 76, 88, 74, 77, 80, 65, 48, 48, 0, 63, 4, 0, 0, 76, 88, /* 0x11a0 */ + 67, 65, 76, 76, 66, 48, 0, 65, 4, 0, 0, 76, 88, 85, 78, 70, /* 0x11b0 */ + 48, 50, 49, 0, 67, 4, 0, 0, 76, 88, 77, 82, 85, 48, 50, 50, /* 0x11c0 */ + 0, 73, 4, 0, 0, 76, 88, 74, 77, 80, 65, 48, 49, 0, 76, 4, /* 0x11d0 */ + 0, 0, 76, 88, 67, 65, 76, 76, 66, 49, 0, 78, 4, 0, 0, 77, /* 0x11e0 */ + 82, 85, 66, 73, 84, 83, 49, 0, 80, 4, 0, 0, 76, 88, 77, 82, /* 0x11f0 */ + 85, 48, 51, 48, 0, 81, 4, 0, 0, 77, 82, 85, 66, 89, 84, 69, /* 0x1200 */ + 49, 0, 83, 4, 0, 0, 77, 82, 85, 65, 82, 66, 49, 48, 0, 85, /* 0x1210 */ + 4, 0, 0, 76, 88, 77, 82, 85, 48, 52, 48, 0, 86, 4, 0, 0, /* 0x1220 */ + 0, 0, 0, 0, 88, 4, 0, 0, 76, 88, 77, 82, 85, 48, 51, 48, /* 0x1230 */ + 0, 0, 0, 0, 0, 76, 88, 85, 78, 70, 48, 51, 48, 0, 88, 4, /* 0x1240 */ + 0, 0, 76, 88, 74, 67, 67, 48, 48, 48, 0, 94, 4, 0, 0, 0, /* 0x1250 */ + 0, 0, 0,102, 4, 0, 0, 76, 88, 74, 67, 67, 48, 49, 48, 0, /* 0x1260 */ + 0, 0, 0, 0, 76, 88, 67, 74, 48, 77, 82, 85, 0,102, 4, 0, /* 0x1270 */ + 0, 76, 88, 67, 74, 49, 77, 82, 85, 0,104, 4, 0, 0, 76, 88, /* 0x1280 */ + 67, 65, 76, 74, 77, 80, 0,107, 4, 0, 0, 76, 88, 67, 65, 76, /* 0x1290 */ + 76, 48, 48, 0,110, 4, 0, 0, 0, 0, 0, 0,112, 4, 0, 0, /* 0x12a0 */ + 76, 88, 85, 78, 70, 48, 51, 55, 0, 0, 0, 0, 0, 76, 88, 67, /* 0x12b0 */ + 65, 76, 76, 48, 49, 0,112, 4, 0, 0, 76, 88, 67, 74, 50, 77, /* 0x12c0 */ + 82, 85, 0,115, 4, 0, 0, 0, 0, 0, 0,117, 4, 0, 0, 76, /* 0x12d0 */ + 88, 85, 78, 70, 48, 51, 55, 0, 0, 0, 0, 0, 76, 88, 67, 74, /* 0x12e0 */ + 52, 77, 82, 85, 0,117, 4, 0, 0, 0, 0, 0, 0,119, 4, 0, /* 0x12f0 */ + 0, 76, 88, 85, 78, 70, 48, 51, 52, 0, 0, 0, 0, 0, 76, 88, /* 0x1300 */ + 67, 74, 54, 77, 82, 85, 0,119, 4, 0, 0, 0, 0, 0, 0,121, /* 0x1310 */ + 4, 0, 0, 76, 88, 67, 74, 56, 77, 82, 85, 0, 1, 0, 0, 0, /* 0x1320 */ + 76, 88, 67, 74, 55, 77, 82, 85, 0,121, 4, 0, 0, 0, 0, 0, /* 0x1330 */ + 0,123, 4, 0, 0, 76, 88, 67, 74, 56, 77, 82, 85, 0, 1, 0, /* 0x1340 */ + 0, 0, 76, 88, 67, 74, 56, 77, 82, 85, 0,123, 4, 0, 0, 0, /* 0x1350 */ + 0, 0, 0,126, 4, 0, 0, 76, 88, 85, 78, 70, 48, 51, 55, 0, /* 0x1360 */ + 0, 0, 0, 0, 76, 88, 85, 78, 70, 48, 51, 52, 0,126, 4, 0, /* 0x1370 */ + 0, 0, 0, 0, 0,131, 4, 0, 0, 76, 88, 85, 78, 70, 48, 51, /* 0x1380 */ + 48, 0, 0, 0, 0, 0, 76, 88, 77, 82, 85, 48, 53, 53, 0,131, /* 0x1390 */ + 4, 0, 0, 77, 82, 85, 66, 89, 84, 69, 50, 0,133, 4, 0, 0, /* 0x13a0 */ + 77, 82, 85, 66, 73, 84, 83, 50, 0,138, 4, 0, 0, 77, 82, 85, /* 0x13b0 */ + 65, 82, 66, 50, 48, 0,143, 4, 0, 0, 76, 88, 77, 82, 85, 48, /* 0x13c0 */ + 53, 55, 0,148, 4, 0, 0, 76, 88, 77, 82, 85, 48, 53, 56, 0, /* 0x13d0 */ +154, 4, 0, 0, 76, 88, 85, 78, 70, 48, 51, 53, 0,155, 4, 0, /* 0x13e0 */ + 0, 67, 75, 76, 76, 84, 82, 48, 48, 0,161, 4, 0, 0, 0, 0, /* 0x13f0 */ + 0, 0,165, 4, 0, 0, 67, 75, 76, 76, 84, 82, 50, 48, 0, 30, /* 0x1400 */ + 0, 0, 0, 67, 75, 76, 76, 84, 82, 49, 48, 0,170, 4, 0, 0, /* 0x1410 */ + 0, 0, 0, 0,184, 4, 0, 0, 67, 75, 76, 76, 84, 82, 50, 48, /* 0x1420 */ + 0, 6, 0, 0, 0, 67, 75, 76, 76, 84, 82, 50, 48, 0,184, 4, /* 0x1430 */ + 0, 0, 0, 0, 0, 0,190, 4, 0, 0, 67, 75, 76, 76, 84, 82, /* 0x1440 */ + 52, 48, 0, 0, 0, 0, 0, 0, 0, 0, 0,194, 4, 0, 0, 67, /* 0x1450 */ + 75, 76, 76, 84, 82, 52, 48, 0, 0, 0, 0, 0, 67, 75, 76, 76, /* 0x1460 */ + 84, 82, 51, 48, 0,217, 4, 0, 0, 0, 0, 0, 0,224, 4, 0, /* 0x1470 */ + 0, 67, 75, 76, 76, 84, 82, 49, 48, 0, 14, 0, 0, 0, 67, 75, /* 0x1480 */ + 76, 76, 84, 82, 52, 48, 0,224, 4, 0, 0, 0, 0, 0, 0,229, /* 0x1490 */ + 4, 0, 0, 67, 75, 76, 76, 84, 82, 48, 48, 0, 4, 0, 0, 0, /* 0x14a0 */ + 76, 69, 88, 69, 67, 48, 49, 55, 0,229, 4, 0, 0, 76, 69, 88, /* 0x14b0 */ + 69, 67, 48, 50, 48, 0,231, 4, 0, 0, 88, 84, 72, 69, 69, 78, /* 0x14c0 */ + 68, 88, 0, 81, 5, 0, 0,255,255,255,255, 81, 5 /* 0x14d0 */ }; diff --git a/src/stub/l_lx_elf86.lds b/src/stub/l_lx_elf86.lds index c85319e6..b6bd9d9e 100644 --- a/src/stub/l_lx_elf86.lds +++ b/src/stub/l_lx_elf86.lds @@ -38,8 +38,8 @@ PHDRS } SECTIONS { - /* 0x00c00000: 12MB */ - . = 0x00c00000 + SIZEOF_HEADERS + 12; /* 12==sizeof(l_info) */ + /* 0x00c01000: 12MB+4KB for Fedora Core 5 vDSO at 0xc00000 */ + . = 0x00c01000 + SIZEOF_HEADERS + 12; /* 12==sizeof(l_info) */ .text : { *(.text) *(.data)