1
0
mirror of https://github.com/upx/upx synced 2025-09-28 19:06:07 +08:00

MIPS-linux.elf flush icache after moving decompressor

This commit is contained in:
John Reiser 2008-04-02 19:09:31 -07:00
parent ca368e0f9b
commit 3926ccccad
5 changed files with 405 additions and 394 deletions

View File

@ -1,5 +1,5 @@
/* mips.r3000-linux.elf-entry.h /* mips.r3000-linux.elf-entry.h
created from mips.r3000-linux.elf-entry.bin, 9819 (0x265b) bytes created from mips.r3000-linux.elf-entry.bin, 9839 (0x266f) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@ -28,16 +28,16 @@
*/ */
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_SIZE 9819 #define STUB_MIPS_R3000_LINUX_ELF_ENTRY_SIZE 9839
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_ADLER32 0xef594611 #define STUB_MIPS_R3000_LINUX_ELF_ENTRY_ADLER32 0x867947f3
#define STUB_MIPS_R3000_LINUX_ELF_ENTRY_CRC32 0x49a58062 #define STUB_MIPS_R3000_LINUX_ELF_ENTRY_CRC32 0x39e02ae7
unsigned char stub_mips_r3000_linux_elf_entry[9819] = { unsigned char stub_mips_r3000_linux_elf_entry[9839] = {
127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */
0, 1, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ 0, 1, 0, 8, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */
0, 0, 28, 40, 0, 0, 0, 1, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x 20 */ 0, 0, 28, 60, 0, 0, 0, 1, 0, 52, 0, 0, 0, 0, 0, 40, /* 0x 20 */
0, 22, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 30 */ 0, 22, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 30 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 0, 43, /* 0x 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 17, 0, 48, /* 0x 40 */
39,247, 0, 0, 60, 13,128, 0, 1,160, 72, 33, 16, 0, 0, 20, /* 0x 50 */ 39,247, 0, 0, 60, 13,128, 0, 1,160, 72, 33, 16, 0, 0, 20, /* 0x 50 */
36, 11, 0, 1,144,137, 0, 3,144,142, 0, 2, 0, 9, 74, 0, /* 0x 60 */ 36, 11, 0, 1,144,137, 0, 3,144,142, 0, 2, 0, 9, 74, 0, /* 0x 60 */
1, 46, 72, 37,144,142, 0, 1, 0, 9, 74, 0, 1, 46, 72, 37, /* 0x 70 */ 1, 46, 72, 37,144,142, 0, 1, 0, 9, 74, 0, 1, 46, 72, 37, /* 0x 70 */
@ -465,186 +465,187 @@ unsigned char stub_mips_r3000_linux_elf_entry[9819] = {
15,164, 0, 0, 0, 12, 36, 4, 0,127, 36, 2, 15,161, 0, 0, /* 0x1ad0 */ 15,164, 0, 0, 0, 12, 36, 4, 0,127, 36, 2, 15,161, 0, 0, /* 0x1ad0 */
0, 12, 39,189,255,224,142,228,255,224, 36, 6, 0, 7,142,229, /* 0x1ae0 */ 0, 12, 39,189,255,224,142,228,255,224, 36, 6, 0, 7,142,229, /* 0x1ae0 */
255,228, 36, 7, 8, 18,175,160, 0, 16, 36, 2, 15,250, 0, 0, /* 0x1af0 */ 255,228, 36, 7, 8, 18,175,160, 0, 16, 36, 2, 15,250, 0, 0, /* 0x1af0 */
0, 12, 20,224, 0, 27, 0, 64, 32, 33,142,229,255,236,142,243, /* 0x1b00 */ 0, 12, 20,224, 0, 32, 0, 64,128, 33,142,228,255,236,142,243, /* 0x1b00 */
255,232,142,242,255,240,142,241,255,244, 16,133, 0, 13, 0,133, /* 0x1b10 */ 255,232,142,242,255,240,142,241,255,244, 18, 4, 0, 18, 2, 4, /* 0x1b10 */
64, 35, 2,215, 48, 35, 0,213, 48, 33, 2,232,184, 33,140,168, /* 0x1b20 */ 64, 35, 2,215,160, 35, 2,149, 48, 33, 2,232,184, 33, 2, 0, /* 0x1b20 */
0, 0, 36,132, 0, 8,140,169, 0, 4, 36,198,255,248,172,136, /* 0x1b30 */ 40, 33,140,136, 0, 0, 36,165, 0, 8,140,137, 0, 4, 36,198, /* 0x1b30 */
255,248, 36,165, 0, 8, 28,192,255,249,172,137,255,252, 0,128, /* 0x1b40 */ 255,248,172,168,255,248, 36,132, 0, 8, 28,192,255,249,172,169, /* 0x1b40 */
16, 33,142,200, 0, 0, 3,160, 56, 33,175,168, 0, 0, 0, 64, /* 0x1b50 */ 255,252, 0,160,128, 33, 2,224, 32, 33, 36, 6, 0, 3, 36, 2, /* 0x1b50 */
48, 33,142,197, 0, 4, 38,196, 0, 12, 2,224, 0, 8, 0,192, /* 0x1b60 */ 16, 51, 0, 0, 0, 12,142,200, 0, 0, 3,160, 56, 33,175,168, /* 0x1b60 */
248, 33, 16, 0,255,255, 0, 0, 0, 0,142,245,255,220, 4, 17, /* 0x1b70 */ 0, 0, 2, 0, 48, 33,142,197, 0, 4, 38,196, 0, 12, 2,224, /* 0x1b70 */
255,216, 3,224,176, 33,102,105,108,101, 32,102,111,114,109, 97, /* 0x1b80 */ 0, 8, 0,192,248, 33, 16, 0,255,255, 0, 0, 0, 0,142,245, /* 0x1b80 */
116, 32,101,108,102, 51, 50, 45, 98,105,103,109,105,112,115, 10, /* 0x1b90 */ 255,220, 4, 17,255,211, 3,224,176, 33,102,105,108,101, 32,102, /* 0x1b90 */
10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, /* 0x1ba0 */ 111,114,109, 97,116, 32,101,108,102, 51, 50, 45, 98,105,103,109, /* 0x1ba0 */
97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122, /* 0x1bb0 */ 105,112,115, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73, /* 0x1bb0 */
101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, /* 0x1bc0 */ 100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1bc0 */
32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32, /* 0x1bd0 */ 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, /* 0x1bd0 */
111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, /* 0x1be0 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70, /* 0x1be0 */
10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, /* 0x1bf0 */ 105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70, /* 0x1bf0 */
32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, /* 0x1c00 */ 108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x1c00 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1c10 */ 88, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, /* 0x1c10 */
32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, /* 0x1c20 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1c20 */
32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x1c30 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, /* 0x1c30 */
44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, /* 0x1c40 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1c40 */
82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x1c50 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1c50 */
48, 48, 49, 53, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1c60 */ 32, 49, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1c60 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1c70 */ 32, 48, 48, 48, 48, 48, 49, 53, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1c70 */
48, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1c80 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1c80 */
78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, /* 0x1c90 */ 48, 48, 48, 48, 48, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1c90 */
79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, 32, /* 0x1ca0 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, /* 0x1ca0 */
32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 52, 48, 32, /* 0x1cb0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, /* 0x1cb0 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1cc0 */ 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1cc0 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 97, 52, 32, 32, 50, /* 0x1cd0 */ 49, 52, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1cd0 */
42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1ce0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 97, /* 0x1ce0 */
69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1cf0 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1cf0 */
32, 51, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1d00 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x1d00 */
32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, 48, 48, /* 0x1d10 */ 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, /* 0x1d10 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1d20 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, /* 0x1d20 */
48, 48, 48, 48, 50,101, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1d30 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1d30 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, /* 0x1d40 */ 48, 32, 32, 48, 48, 48, 48, 48, 50,101, 52, 32, 32, 50, 42, 42, /* 0x1d40 */
82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 76, 90, 77, /* 0x1d50 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, /* 0x1d50 */
65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1d60 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, /* 0x1d60 */
48, 57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1d70 */ 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, /* 0x1d70 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 48, /* 0x1d80 */ 48, 48, 48, 48, 48, 57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1d80 */
99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1d90 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x1d90 */
83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, /* 0x1da0 */ 48, 48, 52, 48, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x1da0 */
76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, /* 0x1db0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, /* 0x1db0 */
48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1dc0 */ 32, 32, 53, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, /* 0x1dc0 */
32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1dd0 */ 32, 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, /* 0x1dd0 */
48, 52, 97, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1de0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1de0 */
69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1df0 */ 48, 48, 48, 48, 48, 52, 97, 56, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x1df0 */
32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, /* 0x1e00 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, /* 0x1e00 */
32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, /* 0x1e10 */ 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, /* 0x1e10 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1e20 */ 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, /* 0x1e20 */
48, 48, 48, 48,102, 56, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1e30 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x1e30 */
79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1e40 */ 48, 32, 32, 48, 48, 48, 48, 48,102, 56, 48, 32, 32, 50, 42, 42, /* 0x1e40 */
89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, /* 0x1e50 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, /* 0x1e50 */
32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, /* 0x1e60 */ 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, /* 0x1e60 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1e70 */ 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, /* 0x1e70 */
32, 32, 48, 48, 48, 48, 49, 97, 53, 56, 32, 32, 50, 42, 42, 48, /* 0x1e80 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1e80 */
32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x1e90 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 53, 56, 32, 32, /* 0x1e90 */
79, 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, 95, 72, 69, 65, /* 0x1ea0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, /* 0x1ea0 */
68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, 48, 32, /* 0x1eb0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, /* 0x1eb0 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1ec0 */ 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, /* 0x1ec0 */
48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 53, 99, 32, 32, 50, /* 0x1ed0 */ 48, 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1ed0 */
42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 53, /* 0x1ee0 */
69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, /* 0x1ef0 */ 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, /* 0x1ef0 */
84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1f00 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, /* 0x1f00 */
49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1f10 */ 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x1f10 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 54, 99, /* 0x1f20 */ 48, 48, 48, 48, 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f20 */
32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1f30 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1f30 */
44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67, /* 0x1f40 */ 49, 97, 54, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1f40 */
70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x1f50 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1f50 */
48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1f60 */ 49, 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, /* 0x1f60 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, /* 0x1f70 */ 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, /* 0x1f70 */
97, 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1f80 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1f80 */
78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, /* 0x1f90 */ 48, 48, 48, 49, 97, 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1f90 */
49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, /* 0x1fa0 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1fa0 */
48, 48, 48, 48, 48, 48, 50, 97, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1fb0 */ 89, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, /* 0x1fb0 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1fc0 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 97, 32, 32, 48, 48, /* 0x1fc0 */
48, 48, 49, 97, 97, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1fd0 */
78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1fe0 */ 32, 32, 48, 48, 48, 48, 49, 97, 97, 48, 32, 32, 50, 42, 42, 48, /* 0x1fe0 */
69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77, /* 0x1ff0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x1ff0 */
65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2000 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, /* 0x2000 */
98, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x2010 */ 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, /* 0x2010 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 97, 99, 97, /* 0x2020 */ 48, 48, 48, 48,100, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2020 */
32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x2030 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x2030 */
44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, /* 0x2040 */ 49, 97, 99, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x2040 */
76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2050 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, /* 0x2050 */
48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, /* 0x2060 */ 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, /* 0x2060 */
73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, /* 0x2070 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, /* 0x2070 */
84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, /* 0x2080 */ 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2080 */
32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, /* 0x2090 */ 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2090 */
48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, /* 0x20a0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, /* 0x20a0 */
10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x20b0 */ 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, /* 0x20b0 */
32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, /* 0x20c0 */ 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, /* 0x20c0 */
48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, /* 0x20d0 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, /* 0x20d0 */
48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, /* 0x20e0 */ 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, /* 0x20e0 */
86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, /* 0x20f0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, /* 0x20f0 */
50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2100 */ 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2100 */
32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, /* 0x2110 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2110 */
48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x2120 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, /* 0x2120 */
48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, /* 0x2130 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, /* 0x2130 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, /* 0x2140 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, /* 0x2140 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2150 */ 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, /* 0x2150 */
76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, /* 0x2160 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2160 */
48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, /* 0x2170 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, /* 0x2170 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2180 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, /* 0x2180 */
76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, /* 0x2190 */ 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2190 */
48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, /* 0x21a0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, /* 0x21a0 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x21b0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x21b0 */
76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, /* 0x21c0 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x21c0 */
48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, /* 0x21d0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, /* 0x21d0 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x21e0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x21e0 */
76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, /* 0x21f0 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x21f0 */
48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, /* 0x2200 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, /* 0x2200 */
48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2210 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, /* 0x2210 */
78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2220 */ 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2220 */
48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, /* 0x2230 */ 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, /* 0x2230 */
48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70, 76, 85, /* 0x2240 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, /* 0x2240 */
83, 72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70, 76, 85, /* 0x2250 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, /* 0x2250 */
83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, /* 0x2260 */ 67, 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2260 */
32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, /* 0x2270 */ 67, 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2270 */
48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, /* 0x2280 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, /* 0x2280 */
48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2290 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, /* 0x2290 */
42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, /* 0x22a0 */ 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x22a0 */
68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, /* 0x22b0 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x22b0 */
32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, /* 0x22c0 */ 48, 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x22c0 */
48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48, 48, 48, /* 0x22d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x22d0 */
48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, /* 0x22e0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, /* 0x22e0 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 85, 10, 48, 48, /* 0x22f0 */ 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x22f0 */
48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x2300 */ 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, /* 0x2300 */
85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, /* 0x2310 */ 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x2310 */
82, 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x2320 */ 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2320 */
32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x2330 */ 48, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2330 */
48, 48, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2340 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x2340 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x2350 */ 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, /* 0x2350 */
48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 88, 10, 48, 48, 48, /* 0x2360 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, /* 0x2360 */
48, 48, 48, 49, 56, 32,103, 32, 32, 32, 32, 32, 79, 32, 69, 76, /* 0x2370 */ 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 88, /* 0x2370 */
70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2380 */ 10, 48, 48, 48, 48, 48, 48, 49, 56, 32,103, 32, 32, 32, 32, 32, /* 0x2380 */
95,115,116, 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, /* 0x2390 */ 79, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, /* 0x2390 */
79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, /* 0x23a0 */ 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 10, 82, 69, 76, 79, /* 0x23a0 */
69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, /* 0x23b0 */ 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x23b0 */
84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x23c0 */ 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, /* 0x23c0 */
32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, /* 0x23d0 */ 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, /* 0x23d0 */
48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, /* 0x23e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, /* 0x23e0 */
32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, /* 0x23f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x23f0 */
48, 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, /* 0x2400 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, /* 0x2400 */
32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, /* 0x2410 */ 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x2410 */
48, 48, 48, 56, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, /* 0x2420 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, /* 0x2420 */
32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 85, 10, 48, 48, 48, 48, /* 0x2430 */ 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x2430 */
48, 48, 48, 99, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, /* 0x2440 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 85, 10, /* 0x2440 */
32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, /* 0x2450 */ 48, 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x2450 */
48, 48, 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, /* 0x2460 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 67, 10, /* 0x2460 */
32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, /* 0x2470 */ 48, 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x2470 */
48, 48, 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, /* 0x2480 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, /* 0x2480 */
32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, /* 0x2490 */ 48, 48, 48, 48, 48, 48, 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x2490 */
48, 48, 49, 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, /* 0x24a0 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 88, 10, /* 0x24a0 */
32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, /* 0x24b0 */ 48, 48, 48, 48, 48, 48, 49, 56, 32, 82, 95, 77, 73, 80, 83, 95, /* 0x24b0 */
10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, /* 0x24c0 */ 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, /* 0x24c0 */
82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, /* 0x24d0 */ 73, 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, /* 0x24d0 */
10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x24e0 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, /* 0x24e0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x24f0 */ 50, 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x24f0 */
69, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, 95, 77, 73, 80, /* 0x2500 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2500 */
83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, /* 0x2510 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 99, 99, 32, 82, /* 0x2510 */
95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x2520 */ 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, /* 0x2520 */
78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, /* 0x2530 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, /* 0x2530 */
82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, /* 0x2540 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, /* 0x2540 */
84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2550 */ 82, 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, /* 0x2550 */
32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 99, 99, /* 0x2560 */ 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2560 */
32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, /* 0x2570 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, /* 0x2570 */
32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, /* 0x2580 */ 48, 48, 99, 99, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, /* 0x2580 */
79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, /* 0x2590 */ 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, /* 0x2590 */
70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, /* 0x25a0 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, /* 0x25a0 */
83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, /* 0x25b0 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, /* 0x25b0 */
32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, /* 0x25c0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, /* 0x25c0 */
48, 48, 48, 48, 98, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, /* 0x25d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, /* 0x25d0 */
49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, /* 0x25e0 */ 69, 10, 48, 48, 48, 48, 48, 48, 98, 52, 32, 82, 95, 77, 73, 80, /* 0x25e0 */
76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, /* 0x25f0 */ 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, /* 0x25f0 */
67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, /* 0x2600 */ 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x2600 */
73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x2610 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, /* 0x2610 */
89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2620 */ 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x2620 */
32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, /* 0x2630 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2630 */
82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, /* 0x2640 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, /* 0x2640 */
32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10 /* 0x2650 */ 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, /* 0x2650 */
32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10 /* 0x2660 */
}; };

View File

@ -1,5 +1,5 @@
/* mipsel.r3000-linux.elf-entry.h /* mipsel.r3000-linux.elf-entry.h
created from mipsel.r3000-linux.elf-entry.bin, 10330 (0x285a) bytes created from mipsel.r3000-linux.elf-entry.bin, 10350 (0x286e) bytes
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
@ -28,16 +28,16 @@
*/ */
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 10330 #define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_SIZE 10350
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0xf9179c9a #define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_ADLER32 0x7e9a9e7c
#define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0x24d5b17e #define STUB_MIPSEL_R3000_LINUX_ELF_ENTRY_CRC32 0x749cc664
unsigned char stub_mipsel_r3000_linux_elf_entry[10330] = { unsigned char stub_mipsel_r3000_linux_elf_entry[10350] = {
127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 0 */
1, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */ 1, 0, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 10 */
36, 30, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */ 56, 30, 0, 0, 1, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0, /* 0x 20 */
22, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 30 */ 22, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x 30 */
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 43, 0, 17, 4, /* 0x 40 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 0, 17, 4, /* 0x 40 */
0, 0,247, 39, 0,128, 13, 60, 33, 72,160, 1, 1, 0, 11, 36, /* 0x 50 */ 0, 0,247, 39, 0,128, 13, 60, 33, 72,160, 1, 1, 0, 11, 36, /* 0x 50 */
194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, /* 0x 60 */ 194,119, 9, 0, 7, 0,169, 21, 64, 72, 9, 0, 0, 0,137,152, /* 0x 60 */
3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 70 */ 3, 0,137,136, 4, 0,132, 36,194,119, 9, 0, 64, 72, 9, 0, /* 0x 70 */
@ -496,187 +496,188 @@ unsigned char stub_mipsel_r3000_linux_elf_entry[10330] = {
108,101,100, 46, 10, 0, 2, 0, 4, 36,164, 15, 2, 36, 12, 0, /* 0x1cc0 */ 108,101,100, 46, 10, 0, 2, 0, 4, 36,164, 15, 2, 36, 12, 0, /* 0x1cc0 */
0, 0,127, 0, 4, 36,161, 15, 2, 36, 12, 0, 0, 0,224,255, /* 0x1cd0 */ 0, 0,127, 0, 4, 36,161, 15, 2, 36, 12, 0, 0, 0,224,255, /* 0x1cd0 */
189, 39,224,255,228,142, 7, 0, 6, 36,228,255,229,142, 18, 8, /* 0x1ce0 */ 189, 39,224,255,228,142, 7, 0, 6, 36,228,255,229,142, 18, 8, /* 0x1ce0 */
7, 36, 16, 0,160,175,250, 15, 2, 36, 12, 0, 0, 0, 27, 0, /* 0x1cf0 */ 7, 36, 16, 0,160,175,250, 15, 2, 36, 12, 0, 0, 0, 32, 0, /* 0x1cf0 */
224, 20, 33, 32, 64, 0,236,255,229,142,232,255,243,142,240,255, /* 0x1d00 */ 224, 20, 33,128, 64, 0,236,255,228,142,232,255,243,142,240,255, /* 0x1d00 */
242,142,244,255,241,142, 13, 0,133, 16, 35, 64,133, 0, 35, 48, /* 0x1d10 */ 242,142,244,255,241,142, 18, 0, 4, 18, 35, 64, 4, 2, 35,160, /* 0x1d10 */
215, 2, 33, 48,213, 0, 33,184,232, 2, 0, 0,168,140, 8, 0, /* 0x1d20 */ 215, 2, 33, 48,149, 2, 33,184,232, 2, 33, 40, 0, 2, 0, 0, /* 0x1d20 */
132, 36, 4, 0,169,140,248,255,198, 36,248,255,136,172, 8, 0, /* 0x1d30 */ 136,140, 8, 0,165, 36, 4, 0,137,140,248,255,198, 36,248,255, /* 0x1d30 */
165, 36,249,255,192, 28,252,255,137,172, 33, 16,128, 0, 0, 0, /* 0x1d40 */ 168,172, 8, 0,132, 36,249,255,192, 28,252,255,169,172, 33,128, /* 0x1d40 */
200,142, 33, 56,160, 3, 0, 0,168,175, 33, 48, 64, 0, 4, 0, /* 0x1d50 */ 160, 0, 33, 32,224, 2, 3, 0, 6, 36, 51, 16, 2, 36, 12, 0, /* 0x1d50 */
197,142, 12, 0,196, 38, 8, 0,224, 2, 33,248,192, 0,255,255, /* 0x1d60 */ 0, 0, 0, 0,200,142, 33, 56,160, 3, 0, 0,168,175, 33, 48, /* 0x1d60 */
0, 16, 0, 0, 0, 0,220,255,245,142,216,255, 17, 4, 33,176, /* 0x1d70 */ 0, 2, 4, 0,197,142, 12, 0,196, 38, 8, 0,224, 2, 33,248, /* 0x1d70 */
224, 3,102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108, /* 0x1d80 */ 192, 0,255,255, 0, 16, 0, 0, 0, 0,220,255,245,142,211,255, /* 0x1d80 */
102, 51, 50, 45,108,105,116,116,108,101,109,105,112,115, 10, 10, /* 0x1d90 */ 17, 4, 33,176,224, 3,102,105,108,101, 32,102,111,114,109, 97, /* 0x1d90 */
83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97, /* 0x1da0 */ 116, 32,101,108,102, 51, 50, 45,108,105,116,116,108,101,109,105, /* 0x1da0 */
109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, /* 0x1db0 */ 112,115, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100, /* 0x1db0 */
32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, /* 0x1dc0 */ 120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1dc0 */
76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111, /* 0x1dd0 */ 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, /* 0x1dd0 */
102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, /* 0x1de0 */ 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105, /* 0x1de0 */
32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, /* 0x1df0 */ 108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, /* 0x1df0 */
32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, 48, 48, 48, 48, /* 0x1e00 */ 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, /* 0x1e00 */
48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1e10 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 48, 32, 32, /* 0x1e10 */
48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, /* 0x1e20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1e20 */
67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, /* 0x1e30 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 51, 52, 32, 32, 50, 42, /* 0x1e30 */
32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, /* 0x1e40 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x1e40 */
86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x1e50 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1e50 */
48, 50, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x1e60 */ 49, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1e60 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1e70 */ 48, 48, 48, 48, 48, 50, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1e70 */
53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x1e80 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1e80 */
84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, /* 0x1e90 */ 48, 48, 48, 48, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1e90 */
78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 68, 32, 32, 32, /* 0x1ea0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1ea0 */
32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49,102, 48, 32, 32, /* 0x1eb0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, /* 0x1eb0 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1ec0 */ 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, /* 0x1ec0 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 54, 99, 32, 32, 50, 42, /* 0x1ed0 */ 102, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1ed0 */
42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 54, 99, /* 0x1ee0 */
76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1ef0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1ef0 */
51, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x1f00 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x1f00 */
48, 48, 48, 48, 48, 49, 98, 52, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1f10 */ 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, /* 0x1f10 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1f20 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 98, 52, 32, 32, 48, 48, /* 0x1f20 */
48, 48, 48, 52, 53, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x1f30 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f30 */
78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, /* 0x1f40 */ 32, 32, 48, 48, 48, 48, 48, 52, 53, 99, 32, 32, 50, 42, 42, 48, /* 0x1f40 */
69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 76, 90, 77, 65, /* 0x1f50 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, /* 0x1f50 */
95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x1f60 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, /* 0x1f60 */
57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x1f70 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, /* 0x1f70 */
48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 54, 49, 48, /* 0x1f80 */ 48, 48, 48, 48, 57, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x1f80 */
32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x1f90 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, /* 0x1f90 */
44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, /* 0x1fa0 */ 48, 54, 49, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, /* 0x1fa0 */
90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, /* 0x1fb0 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, /* 0x1fb0 */
48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x1fc0 */ 32, 53, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, /* 0x1fc0 */
32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x1fd0 */ 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, /* 0x1fd0 */
54, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x1fe0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, /* 0x1fe0 */
78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, /* 0x1ff0 */ 48, 48, 48, 48, 54, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, /* 0x1ff0 */
54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, /* 0x2000 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, /* 0x2000 */
48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2010 */ 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, /* 0x2010 */
48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x2020 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 97,100, 56, 32, 32, 48, 48, /* 0x2020 */
48, 48, 49, 49, 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x2030 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2030 */
78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x2040 */ 32, 32, 48, 48, 48, 48, 49, 49, 56, 52, 32, 32, 50, 42, 42, 48, /* 0x2040 */
10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, /* 0x2050 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, /* 0x2050 */
32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, 32, 48, 48, 48, /* 0x2060 */ 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, /* 0x2060 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2070 */ 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 52, 32, /* 0x2070 */
32, 48, 48, 48, 48, 49, 99, 53, 99, 32, 32, 50, 42, 42, 48, 32, /* 0x2080 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, /* 0x2080 */
32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, /* 0x2090 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 53, 99, 32, 32, 50, /* 0x2090 */
78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, 95, 72, 69, 65, 68, /* 0x20a0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, /* 0x20a0 */
32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 56, 32, 32, /* 0x20b0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 78, 82, 86, 95, /* 0x20b0 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x20c0 */ 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x20c0 */
48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 54, 48, 32, 32, 50, 42, /* 0x20d0 */ 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x20d0 */
42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, /* 0x20e0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 54, 48, /* 0x20e0 */
65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, 82, 86, 95, 84, /* 0x20f0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, /* 0x20f0 */
65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 49, /* 0x2100 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, /* 0x2100 */
48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x2110 */ 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x2110 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 54, 56, 32, /* 0x2120 */ 48, 48, 48, 49, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2120 */
32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x2130 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, /* 0x2130 */
32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 67, 70, /* 0x2140 */ 99, 54, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x2140 */
76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, /* 0x2150 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, /* 0x2150 */
48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x2160 */ 48, 32, 67, 70, 76, 85, 83, 72, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2160 */
48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, /* 0x2170 */ 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48, 48, 48, 48, /* 0x2170 */
55, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, /* 0x2180 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, /* 0x2180 */
84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, /* 0x2190 */ 48, 48, 49, 99, 55, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, /* 0x2190 */
32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, /* 0x21a0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, /* 0x21a0 */
48, 48, 48, 48, 48, 50, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, /* 0x21b0 */ 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, /* 0x21b0 */
48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x21c0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 97, 32, 32, 48, 48, 48, /* 0x21c0 */
48, 49, 99, 57, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, /* 0x21d0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x21d0 */
84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, /* 0x21e0 */ 32, 48, 48, 48, 48, 49, 99, 57, 99, 32, 32, 50, 42, 42, 48, 32, /* 0x21e0 */
65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, 76, 70, 77, 65, /* 0x21f0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, /* 0x21f0 */
73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 98, /* 0x2200 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 50, 32, 69, /* 0x2200 */
99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, /* 0x2210 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, /* 0x2210 */
48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 99, 99, 54, 32, /* 0x2220 */ 48, 48, 48,100, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2220 */
32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, /* 0x2230 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, /* 0x2230 */
32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, /* 0x2240 */ 99, 99, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, /* 0x2240 */
32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2250 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, /* 0x2250 */
32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, /* 0x2260 */ 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, /* 0x2260 */
76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, /* 0x2270 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, /* 0x2270 */
65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x2280 */ 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, /* 0x2280 */
32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, /* 0x2290 */ 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2290 */
48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, /* 0x22a0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x22a0 */
48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x22b0 */ 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, /* 0x22b0 */
32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, /* 0x22c0 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, /* 0x22c0 */
48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, /* 0x22d0 */ 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, /* 0x22d0 */
48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, /* 0x22e0 */ 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, /* 0x22e0 */
50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, /* 0x22f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, /* 0x22f0 */
69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2300 */ 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2300 */
100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2310 */ 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2310 */
48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2320 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, /* 0x2320 */
32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, /* 0x2330 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, /* 0x2330 */
48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, /* 0x2340 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, /* 0x2340 */
48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, /* 0x2350 */ 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, /* 0x2350 */
90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, /* 0x2360 */ 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2360 */
48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, /* 0x2370 */ 100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, /* 0x2370 */
48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, /* 0x2380 */ 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, /* 0x2380 */
90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, /* 0x2390 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2390 */
48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, /* 0x23a0 */ 100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, /* 0x23a0 */
48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, /* 0x23b0 */ 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, /* 0x23b0 */
90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, /* 0x23c0 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x23c0 */
48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, /* 0x23d0 */ 100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, /* 0x23d0 */
48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, /* 0x23e0 */ 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, /* 0x23e0 */
90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, /* 0x23f0 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x23f0 */
48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, /* 0x2400 */ 100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, /* 0x2400 */
48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, /* 0x2410 */ 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, /* 0x2410 */
82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2420 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2420 */
32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, /* 0x2430 */ 100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, /* 0x2430 */
48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, 70, 76, 85, 83, /* 0x2440 */ 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, /* 0x2440 */
72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, 70, 76, 85, 83, /* 0x2450 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 67, /* 0x2450 */
72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, /* 0x2460 */ 70, 76, 85, 83, 72, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 67, /* 0x2460 */
100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, /* 0x2470 */ 70, 76, 85, 83, 72, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, /* 0x2470 */
48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, /* 0x2480 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, /* 0x2480 */
48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, /* 0x2490 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, /* 0x2490 */
85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, /* 0x24a0 */ 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x24a0 */
82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, /* 0x24b0 */ 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x24b0 */
32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, /* 0x24c0 */ 48, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x24c0 */
48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x24d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x24d0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, /* 0x24e0 */ 48, 48, 48, 48, 48, 48, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, /* 0x24e0 */
48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 85, 10, 48, 48, 48, /* 0x24f0 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, /* 0x24f0 */
48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, /* 0x2500 */ 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 85, /* 0x2500 */
78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, /* 0x2510 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, /* 0x2510 */
67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, /* 0x2520 */ 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, /* 0x2520 */
32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, /* 0x2530 */ 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, /* 0x2530 */
48, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, /* 0x2540 */ 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, /* 0x2540 */
32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, /* 0x2550 */ 48, 48, 48, 48, 48, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, /* 0x2550 */
48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, /* 0x2560 */ 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, /* 0x2560 */
48, 48, 49, 56, 32,103, 32, 32, 32, 32, 32, 79, 32, 69, 76, 70, /* 0x2570 */ 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68, 82, 88, 10, /* 0x2570 */
77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95, /* 0x2580 */ 48, 48, 48, 48, 48, 48, 49, 56, 32,103, 32, 32, 32, 32, 32, 79, /* 0x2580 */
115,116, 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, /* 0x2590 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, /* 0x2590 */
78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, /* 0x25a0 */ 48, 48, 32, 95,115,116, 97,114,116, 10, 10, 82, 69, 76, 79, 67, /* 0x25a0 */
76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x25b0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, /* 0x25b0 */
32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x25c0 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, /* 0x25c0 */
32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, /* 0x25d0 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, /* 0x25d0 */
48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x25e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, /* 0x25e0 */
32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, 48, 48, 48, 48, /* 0x25f0 */ 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, /* 0x25f0 */
48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2600 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 77, 10, 48, /* 0x2600 */
32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, 48, 48, 48, 48, /* 0x2610 */ 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, /* 0x2610 */
48, 48, 56, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2620 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 77, 10, 48, /* 0x2620 */
32, 32, 32, 32, 32, 32, 65, 68, 82, 85, 10, 48, 48, 48, 48, 48, /* 0x2630 */ 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 77, 73, 80, 83, 95, 51, /* 0x2630 */
48, 48, 99, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2640 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 85, 10, 48, /* 0x2640 */
32, 32, 32, 32, 32, 32, 65, 68, 82, 67, 10, 48, 48, 48, 48, 48, /* 0x2650 */ 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 77, 73, 80, 83, 95, 51, /* 0x2650 */
48, 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2660 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 67, 10, 48, /* 0x2660 */
32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, 48, 48, 48, 48, /* 0x2670 */ 48, 48, 48, 48, 48, 49, 48, 32, 82, 95, 77, 73, 80, 83, 95, 51, /* 0x2670 */
48, 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, 50, 32, 32, 32, /* 0x2680 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 69, 78, 85, 10, 48, /* 0x2680 */
32, 32, 32, 32, 32, 32, 65, 68, 82, 88, 10, 48, 48, 48, 48, 48, /* 0x2690 */ 48, 48, 48, 48, 48, 49, 52, 32, 82, 95, 77, 73, 80, 83, 95, 51, /* 0x2690 */
48, 49, 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, /* 0x26a0 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 65, 68, 82, 88, 10, 48, /* 0x26a0 */
32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, /* 0x26b0 */ 48, 48, 48, 48, 48, 49, 56, 32, 82, 95, 77, 73, 80, 83, 95, 80, /* 0x26b0 */
82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x26c0 */ 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, /* 0x26c0 */
68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, /* 0x26d0 */ 78, 90, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, /* 0x26d0 */
79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x26e0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, /* 0x26e0 */
32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x26f0 */ 69, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, /* 0x26f0 */
10, 48, 48, 48, 48, 48, 49, 49, 99, 32, 82, 95, 77, 73, 80, 83, /* 0x2700 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, /* 0x2700 */
95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, /* 0x2710 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 49, 49, 99, 32, 82, 95, /* 0x2710 */
84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, /* 0x2720 */ 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, /* 0x2720 */
32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, /* 0x2730 */ 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, /* 0x2730 */
86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, /* 0x2740 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, /* 0x2740 */
89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2750 */ 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, /* 0x2750 */
32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 49, 49, 99, 32, /* 0x2760 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2760 */
82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, /* 0x2770 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, /* 0x2770 */
32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, /* 0x2780 */ 49, 49, 99, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, /* 0x2780 */
67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, /* 0x2790 */ 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 10, /* 0x2790 */
79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, 70, 83, /* 0x27a0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, /* 0x27a0 */
69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, /* 0x27b0 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, /* 0x27b0 */
32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, /* 0x27c0 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, /* 0x27c0 */
48, 48, 48, 99, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, /* 0x27d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, /* 0x27d0 */
54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, /* 0x27e0 */ 10, 48, 48, 48, 48, 48, 48, 99, 52, 32, 82, 95, 77, 73, 80, 83, /* 0x27e0 */
10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, /* 0x27f0 */ 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, 32, 78, 82, 86, 95, /* 0x27f0 */
79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, /* 0x2800 */ 84, 65, 73, 76, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, /* 0x2800 */
78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, /* 0x2810 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, /* 0x2810 */
80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2820 */ 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, /* 0x2820 */
86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, /* 0x2830 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, /* 0x2830 */
95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, 32, 32, 32, 32, /* 0x2840 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, /* 0x2840 */
32, 69, 76, 70, 77, 65, 73, 78, 90, 10 /* 0x2850 */ 48, 52, 32, 82, 95, 77, 73, 80, 83, 95, 80, 67, 49, 54, 32, 32, /* 0x2850 */
32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10 /* 0x2860 */
}; };

View File

@ -297,29 +297,38 @@ unfold: // s7= &decompress; s6= &b_info(fold); s5= sz_pack2
li a3, MAP_PRIVATE | MAP_FIXED | MAP_ANONYMOUS li a3, MAP_PRIVATE | MAP_FIXED | MAP_ANONYMOUS
sw zero,a4_sys(sp) //; sw zero,a5_sys(sp) // MAP_ANON ==> ignore offset sw zero,a4_sys(sp) //; sw zero,a5_sys(sp) // MAP_ANON ==> ignore offset
li v0,__NR_mmap; syscall; bnez a3,err_syscall li v0,__NR_mmap; syscall; bnez a3,err_syscall
move a0,v0 // &new page(s) move s0,v0 // ADRM: &new page(s); &dst for unfold, or &copy of PT_LOAD[0]
lw a1,adrc - decompressor(s7) lw a0,adrc - decompressor(s7)
lw s3,adru - decompressor(s7) // for unmap in fold lw s3,adru - decompressor(s7) // for unmap in fold
lw s2,lenu - decompressor(s7) // for unmap in fold lw s2,lenu - decompressor(s7) // for unmap in fold
lw s1,adrx - decompressor(s7) // for upx_main lw s1,adrx - decompressor(s7) // for upx_main
beq a0,a1,L80 // no copy beq s0,a0,L80 // no copy
subu t0,a0,a1 // (ADRM - ADRC) == relocation amount subu t0,s0,a0 // (ADRM - ADRC) == relocation amount
subu a2,s6,s7 // &b_info(fold) - &decompress; >= sizeof(decompress) subu s4,s6,s7 // &b_info(fold) - &decompress; >= sizeof(decompress)
addu a2,a2,s5 // + sz_pack2; length to copy addu a2,s4,s5 // + sz_pack2; length to copy
addu s7,s7,t0 // update &decompress addu s7,s7,t0 // update &decompress
move_up: // memcpy(dst=a0, src=a1, len=round_up(a2, 8))
lw t0, 0(a1); addiu a0,a0, 8 move a1,s0
lw t1, 4(a1); addiu a2,a2,-8 // memcpy(dst=a1, src=a0, len=round_up(a2, 8))
sw t0,-8(a0); addiu a1,a1, 8 move_up:
lw t0, 0(a0); addiu a1,a1, 8
lw t1, 4(a0); addiu a2,a2,-8
sw t0,-8(a1); addiu a0,a0, 8
bgtz a2,move_up bgtz a2,move_up
sw t1,-4(a0) sw t1,-4(a1)
move v0,a0 // unfolded stub follows copied decompressor move s0,a1 // &dst for unfolding
move a0,s7 // moved &decompressor
// a1 already == &end of moved decompressor
li a2,ICACHE|DCACHE
li v0,__NR_cacheflush
syscall // moved decompressor
L80: L80:
// Decompress the folded part of this stub, then execute it. // Decompress the folded part of this stub, then execute it.
lw t0,sz_unc(s6); move a3,sp; sw t0,0(sp) // &dst_len lw t0,sz_unc(s6); move a3,sp; sw t0,0(sp) // &dst_len
move a2,v0 // &dst move a2,s0 // &dst
lw a1,sz_cpr(s6) // src_len lw a1,sz_cpr(s6) // src_len
addiu a0,s6,sz_b_info addiu a0,s6,sz_b_info
jr s7 // decompress(src, srclen, dst, &dstlen /*, method*/) jr s7 // decompress(src, srclen, dst, &dstlen /*, method*/)

View File

@ -14,7 +14,7 @@ Idx Name Size VMA LMA File off Algn Flags
9 NRV_TAIL 00000010 00000000 00000000 00001a6c 2**0 CONTENTS, READONLY 9 NRV_TAIL 00000010 00000000 00000000 00001a6c 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 00000000 00000000 00001a7c 2**0 CONTENTS, READONLY 10 CFLUSH 00000024 00000000 00000000 00001a7c 2**0 CONTENTS, READONLY
11 ELFMAINY 0000002a 00000000 00000000 00001aa0 2**0 CONTENTS, RELOC, READONLY 11 ELFMAINY 0000002a 00000000 00000000 00001aa0 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 000000bc 00000000 00000000 00001aca 2**0 CONTENTS, READONLY 12 ELFMAINZ 000000d0 00000000 00000000 00001aca 2**0 CONTENTS, READONLY
SYMBOL TABLE: SYMBOL TABLE:
00000000 l d NRV_TAIL 00000000 NRV_TAIL 00000000 l d NRV_TAIL 00000000 NRV_TAIL
00000000 l d ELFMAINZ 00000000 ELFMAINZ 00000000 l d ELFMAINZ 00000000 ELFMAINZ

View File

@ -14,7 +14,7 @@ Idx Name Size VMA LMA File off Algn Flags
9 NRV_TAIL 00000010 00000000 00000000 00001c68 2**0 CONTENTS, READONLY 9 NRV_TAIL 00000010 00000000 00000000 00001c68 2**0 CONTENTS, READONLY
10 CFLUSH 00000024 00000000 00000000 00001c78 2**0 CONTENTS, READONLY 10 CFLUSH 00000024 00000000 00000000 00001c78 2**0 CONTENTS, READONLY
11 ELFMAINY 0000002a 00000000 00000000 00001c9c 2**0 CONTENTS, RELOC, READONLY 11 ELFMAINY 0000002a 00000000 00000000 00001c9c 2**0 CONTENTS, RELOC, READONLY
12 ELFMAINZ 000000bc 00000000 00000000 00001cc6 2**0 CONTENTS, READONLY 12 ELFMAINZ 000000d0 00000000 00000000 00001cc6 2**0 CONTENTS, READONLY
SYMBOL TABLE: SYMBOL TABLE:
00000000 l d NRV_TAIL 00000000 NRV_TAIL 00000000 l d NRV_TAIL 00000000 NRV_TAIL
00000000 l d ELFMAINZ 00000000 ELFMAINZ 00000000 l d ELFMAINZ 00000000 ELFMAINZ