Pprotect: mprotect but enlarge the interval to start on page boundary

https://github.com/upx/upx/issues/609
	modified:   src/stub/src/amd64-linux.elf-fold.S
	modified:   src/stub/src/amd64-linux.elf-main.c
	modified:   src/stub/src/amd64-linux.elf-so_fold.S
	modified:   src/stub/src/amd64-linux.elf-so_main.c
	modified:   src/stub/src/arm.v4a-linux.elf-fold.S
	modified:   src/stub/src/arm.v4a-linux.elf-so_fold.S
	modified:   src/stub/src/arm64-linux.elf-fold.S
	modified:   src/stub/src/arm64-linux.elf-so_fold.S
	modified:   src/stub/src/i386-linux.elf-fold.S
	modified:   src/stub/src/i386-linux.elf-main.c
	modified:   src/stub/src/i386-linux.elf-so_fold.S
	modified:   src/stub/src/i386-linux.elf-so_main.c
	modified:   src/stub/src/mipsel.r3000-linux.elf-fold.S
	modified:   src/stub/src/powerpc-linux.elf-fold.S
	modified:   src/stub/src/powerpc64le-linux.elf-fold.S

	modified:   src/stub/amd64-linux.elf-fold.h
	modified:   src/stub/amd64-linux.elf-so_fold.h
	modified:   src/stub/arm.v4a-linux.elf-fold.h
	modified:   src/stub/arm.v4a-linux.elf-so_fold.h
	modified:   src/stub/arm.v5a-linux.elf-fold.h
	modified:   src/stub/arm.v5a-linux.elf-so_fold.h
	modified:   src/stub/arm64-linux.elf-fold.h
	modified:   src/stub/arm64-linux.elf-so_fold.h
	modified:   src/stub/armeb.v4a-linux.elf-fold.h
	modified:   src/stub/i386-linux.elf-fold.h
	modified:   src/stub/i386-linux.elf-so_fold.h
	modified:   src/stub/mips.r3000-linux.elf-fold.h
	modified:   src/stub/mipsel.r3000-linux.elf-fold.h
	modified:   src/stub/powerpc-linux.elf-fold.h
	modified:   src/stub/powerpc64-linux.elf-fold.h
	modified:   src/stub/powerpc64le-linux.elf-fold.h

	modified:   src/stub/tmp/amd64-linux.elf-fold.map
	modified:   src/stub/tmp/amd64-linux.elf-so_fold.bin.dump
	modified:   src/stub/tmp/arm.v4a-linux.elf-fold.map
	modified:   src/stub/tmp/arm.v5a-linux.elf-fold.map
	modified:   src/stub/tmp/arm64-linux.elf-fold.map
	modified:   src/stub/tmp/armeb.v4a-linux.elf-fold.map
	modified:   src/stub/tmp/i386-linux.elf-fold.map
	modified:   src/stub/tmp/mips.r3000-linux.elf-fold.map
	modified:   src/stub/tmp/mipsel.r3000-linux.elf-fold.map
	modified:   src/stub/tmp/powerpc-linux.elf-fold.map
	modified:   src/stub/tmp/powerpc64-linux.elf-fold.map
	modified:   src/stub/tmp/powerpc64le-linux.elf-fold.map
This commit is contained in:
John Reiser
2023-03-29 15:46:58 -07:00
parent c72ceaa979
commit 4df68aafd2
43 changed files with 5842 additions and 5699 deletions
+146 -145
View File
@@ -1,5 +1,5 @@
/* arm.v5a-linux.elf-fold.h
created from arm.v5a-linux.elf-fold.bin, 3020 (0xbcc) bytes
created from arm.v5a-linux.elf-fold.bin, 3040 (0xbe0) bytes
This file is part of the UPX executable compressor.
@@ -31,17 +31,17 @@
*/
#define STUB_ARM_V5A_LINUX_ELF_FOLD_SIZE 3020
#define STUB_ARM_V5A_LINUX_ELF_FOLD_ADLER32 0x3df6e584
#define STUB_ARM_V5A_LINUX_ELF_FOLD_CRC32 0x3bac7d70
#define STUB_ARM_V5A_LINUX_ELF_FOLD_SIZE 3040
#define STUB_ARM_V5A_LINUX_ELF_FOLD_ADLER32 0x036ced7e
#define STUB_ARM_V5A_LINUX_ELF_FOLD_CRC32 0xc77519f1
unsigned char stub_arm_v5a_linux_elf_fold[3020] = {
unsigned char stub_arm_v5a_linux_elf_fold[3040] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 40, 0, 1, 0, 0, 0,128,128, 0, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 2, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,
/* 0x0040 */ 0,128, 0, 0,204, 11, 0, 0,204, 11, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0,204, 11, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0,128, 0, 0,224, 11, 0, 0,224, 11, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0,224, 11, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 34, 0, 0, 0,192, 31,189,232, 13, 16,160,225, 1,218, 77,226,
@@ -61,11 +61,11 @@ unsigned char stub_arm_v5a_linux_elf_fold[3020] = {
/* 0x0160 */ 24, 0,141,229, 4, 32, 49,229, 13, 0, 81,225, 4, 32, 32,229,
/* 0x0170 */ 251,255,255, 26, 0,208,160,225, 16, 12,189,232, 10,220, 77,226,
/* 0x0180 */ 4,144,154,229, 13,128,160,225, 0,112,154,229,176, 96,143,226,
/* 0x0190 */ 12,144,137,226,248, 15, 45,233, 15, 0,189,232, 61, 2, 0,235,
/* 0x0190 */ 12,144,137,226,248, 15, 45,233, 15, 0,189,232, 66, 2, 0,235,
/* 0x01a0 */ 20,208,141,226, 10,220,141,226, 16, 0,141,229, 92, 16,155,229,
/* 0x01b0 */ 60, 32,155,229, 11, 0,160,225, 2, 16, 65,224, 97, 0, 0,235,
/* 0x01c0 */ 4, 64,157,228, 0, 80,160,227, 48, 0, 45,233, 2, 48,160,227,
/* 0x01d0 */ 1, 32,160,227, 1, 26,160,227, 0, 0,160,227,106, 0, 0,235,
/* 0x01d0 */ 1, 32,160,227, 1, 26,160,227, 0, 0,160,227,111, 0, 0,235,
/* 0x01e0 */ 3, 0,189,232, 62, 0, 0,235, 7, 64,189,232, 0, 48,160,227,
/* 0x01f0 */ 0, 64,160,227, 0, 80,160,227, 0, 96,160,227, 0,128,160,227,
/* 0x0200 */ 0,144,160,227, 0,160,160,227, 0,176,160,227, 1,199, 77,226,
@@ -89,140 +89,141 @@ unsigned char stub_arm_v5a_linux_elf_fold[3020] = {
/* 0x0320 */ 7,192,160,225, 45,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0330 */ 14,240,160,225, 7,192,160,225, 85,112,160,227, 0, 0, 0,239,
/* 0x0340 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 91,112,160,227,
/* 0x0350 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x0360 */ 125,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0370 */ 0, 32,160,227, 7,192,160,225, 2,112,160,227, 15,120,135,227,
/* 0x0380 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 48, 64, 45,233,
/* 0x0390 */ 16, 80,157,229, 12, 64,157,229, 37, 86,160,225, 7,192,160,225,
/* 0x03a0 */ 192,112,160,227, 0, 0, 0,239, 12,112,160,225, 48,128,189,232,
/* 0x03b0 */ 104, 0, 31,229, 14,240,160,225, 48, 64, 45,233, 68, 67, 31,229,
/* 0x03c0 */ 0, 80,160,227, 4, 48,131,225, 0, 64,224,227,242,255,255,234,
/* 0x03d0 */ 0,192,160,225, 1, 16, 65,224, 0, 32,160,225,128, 1,144,224,
/* 0x03e0 */ 129, 17,161,224,162, 30,129,224, 0, 32,160,225, 0, 2,144,224,
/* 0x03f0 */ 1, 18,161,224, 34, 30,129,224, 0, 32,160,225, 0, 4,144,224,
/* 0x0400 */ 1, 20,161,224, 34, 28,129,224, 0, 32,160,225, 0, 8,144,224,
/* 0x0410 */ 1, 24,161,224, 34, 24,129,224,140, 15, 80,224,172, 16,193,224,
/* 0x0420 */ 12, 0,144,224, 0, 0,161,226, 14,240,160,225, 0, 0, 80,227,
/* 0x0430 */ 30,255, 47, 1, 0, 48,144,229, 1, 0, 83,225, 8, 0,128, 18,
/* 0x0440 */ 251,255,255, 26, 4, 32,128,229, 30,255, 47,225, 0, 0,159,229,
/* 0x0450 */ 30,255, 47,225, 0,240,255,255, 0, 48,144,229, 4,224, 45,229,
/* 0x0460 */ 2, 0, 83,225, 4, 48,144,229, 2,224,160,225, 3,192,160, 33,
/* 0x0470 */ 2, 32,160, 33, 3, 0, 0, 42,127, 0,160,227,133,255,255,235,
/* 0x0480 */ 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226, 1, 0,114,227,
/* 0x0490 */ 1,192,140,226, 1, 16,129,226,248,255,255, 26, 4, 32,144,229,
/* 0x04a0 */ 0, 48,144,229, 14, 32,130,224, 3, 48,110,224, 0, 48,128,229,
/* 0x04b0 */ 4, 32,128,229, 4,240,157,228,240, 64, 45,233, 0, 80,160,225,
/* 0x04c0 */ 20,208, 77,226, 1, 64,160,225, 2,112,160,225, 3, 96,160,225,
/* 0x04d0 */ 66, 0, 0,234, 4, 16,141,226, 5, 0,160,225, 12, 32,160,227,
/* 0x04e0 */ 220,255,255,235, 4,224,157,229, 8, 16,157,229, 0, 0, 94,227,
/* 0x04f0 */ 6, 0, 0, 26,248, 48,159,229, 3, 0, 81,225, 5, 0, 0, 26,
/* 0x0500 */ 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26, 54, 0, 0,234,
/* 0x0510 */ 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227, 93,255,255,235,
/* 0x0520 */ 14, 0, 81,225,251,255,255,138, 0, 48,148,229, 3, 0, 94,225,
/* 0x0530 */ 248,255,255,138, 14, 0, 81,225, 31, 0, 0, 42, 12,192,221,229,
/* 0x0540 */ 4, 0,149,229, 4, 32,148,229, 16, 48,141,226, 16,224,141,229,
/* 0x0550 */ 0,192,141,229, 55,255, 47,225, 0, 0, 80,227,237,255,255, 26,
/* 0x0560 */ 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225,233,255,255, 26,
/* 0x0570 */ 13, 32,221,229, 0, 0, 82,227, 0, 0, 86, 19, 8, 0, 0, 10,
/* 0x0580 */ 2, 12, 81,227, 2, 0, 0,138, 0, 48,148,229, 1, 0, 83,225,
/* 0x0590 */ 3, 0, 0, 26, 2, 48,160,225, 4, 0,148,229, 14, 32,221,229,
/* 0x05a0 */ 54,255, 47,225, 8, 48,157,229, 6, 0,149,232, 3, 32,130,224,
/* 0x05b0 */ 1, 16, 99,224, 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225,
/* 0x05c0 */ 5, 0,160,225, 4, 16,148,229,162,255,255,235, 4, 48,157,229,
/* 0x05d0 */ 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232,
/* 0x05e0 */ 0, 48,148,229, 0, 0, 83,227,185,255,255, 26, 20,208,141,226,
/* 0x05f0 */ 240,128,189,232, 85, 80, 88, 33,240, 79, 45,233, 1,128,160,225,
/* 0x0600 */ 28, 16,145,229, 52,208, 77,226, 0,144, 82,226, 12, 0,141,229,
/* 0x0610 */ 8, 48,141,229, 1, 96,136,224, 18, 0, 0, 10, 88, 32,157,229,
/* 0x0620 */ 0, 0,146,229,176, 49,208,225, 52, 16,128,226, 2, 0, 83,227,
/* 0x0630 */ 40, 48,145, 21, 0, 48,160, 3, 0, 0, 99, 16, 8, 80,145, 5,
/* 0x0640 */ 24, 48,141, 5, 20, 48,145,229, 0, 80,160, 17, 24, 0,141, 21,
/* 0x0650 */ 3, 16,160,225, 5, 0,160,225, 5, 48,131,224, 20, 48,141,229,
/* 0x0660 */ 56,255,255,235, 41, 0, 0,234,176, 49,216,225,188, 34,216,225,
/* 0x0670 */ 3, 0, 83,227, 16,192,160, 19, 0,192,160, 3, 1, 0, 66,226,
/* 0x0680 */ 6, 16,160,225, 0, 64,224,227, 9, 80,160,225, 13, 0, 0,234,
/* 0x0690 */ 0, 48,145,229, 1, 0, 83,227, 8, 0, 0, 26, 20, 48,145,229,
/* 0x06a0 */ 0, 0, 83,227, 5, 0, 0, 10, 8, 32,145,229, 2, 48,131,224,
/* 0x06b0 */ 3, 0, 85,225, 3, 80,160, 49, 2, 0, 84,225, 2, 64,160, 33,
/* 0x06c0 */ 32, 16,129,226, 1, 0, 64,226, 0, 0, 80,227,239,255,255,170,
/* 0x06d0 */ 255, 78,196,227, 15, 64,196,227, 5, 80,100,224,255, 94,133,226,
/* 0x06e0 */ 15, 80,133,226,255, 94,197,227, 15, 80,197,227, 4, 0,160,225,
/* 0x06f0 */ 5, 16,160,225, 12, 48,160,225, 0, 32,160,227, 45,255,255,235,
/* 0x0700 */ 0, 64,100,224, 0, 80,133,224, 24, 64,141,229, 20, 80,141,229,
/* 0x0710 */ 24,192,157,229, 52, 48,160,227,147, 12, 12,224, 0, 0,160,227,
/* 0x0720 */ 32, 80,134,226, 36,192,141,229, 28, 0,141,229,173, 0, 0,234,
/* 0x0730 */ 0, 0, 89,227, 9, 0, 0, 10, 32, 48, 21,229, 6, 0, 83,227,
/* 0x0740 */ 6, 0, 0, 26, 24, 32, 21,229, 24, 48,157,229, 8, 0,157,229,
/* 0x0750 */ 2, 32,131,224, 3, 16,160,227, 51,255,255,235,157, 0, 0,234,
/* 0x0760 */ 32, 48, 21,229, 1, 0, 83,227,154, 0, 0, 26, 12, 48, 21,229,
/* 0x0770 */ 0, 0, 83,227,151, 0, 0, 10, 0, 0, 89,227, 18, 0, 0, 10,
/* 0x0780 */ 28, 48, 21,229, 0, 0, 83,227, 15, 0, 0, 26, 28, 48,152,229,
/* 0x0790 */ 24, 32, 21,229, 24,192,157,229, 3, 32,130,224, 2, 32,140,224,
/* 0x07a0 */ 3, 16,160,227, 8, 0,157,229, 31,255,255,235, 8, 0,157,229,
/* 0x07b0 */ 5, 16,160,227,188, 34,216,225, 27,255,255,235, 8, 0,157,229,
/* 0x07c0 */ 4, 16,160,227,186, 34,216,225, 23,255,255,235, 8, 16, 21,229,
/* 0x07d0 */ 184, 34,159,229, 7, 48, 1,226, 3, 49,160,225, 50, 67,160,225,
/* 0x07e0 */ 24, 0,157,229, 24, 48, 21,229, 16, 32, 21,229, 3, 48,128,224,
/* 0x07f0 */ 16, 48,141,229, 16,192,157,229, 3, 58,160,225, 12, 0, 21,229,
/* 0x0800 */ 35, 58,160,225, 0, 0, 89,227, 44, 32,141,229, 48,192,141,229,
/* 0x0810 */ 3,160,130,224, 7,176, 4,226, 40, 0,141,229, 12, 96, 99,224,
/* 0x0820 */ 16, 0, 0, 10, 1, 0, 17,227, 3, 32,160, 3, 7, 32,160, 19,
/* 0x0830 */ 6, 0,160,225, 10, 16,160,225, 16, 48,160,227,221,254,255,235,
/* 0x0840 */ 0, 0, 86,225, 82, 0, 0, 26, 92, 32,157,229, 4, 48, 20,226,
/* 0x0850 */ 2, 48,160, 17, 9, 0,160,225, 44, 16,141,226, 12, 32,157,229,
/* 0x0860 */ 20,255,255,235, 11, 0, 0,234, 28,192, 21,229, 6, 0,160,225,
/* 0x0870 */ 12,192, 99,224, 4,192,141,229, 12,192,157,229, 10, 16,160,225,
/* 0x0880 */ 11, 32,160,225, 18, 48,160,227, 0,192,141,229,190,254,255,235,
/* 0x0890 */ 0, 0, 86,225, 62, 0, 0, 26, 0, 48,106,226, 3,122,160,225,
/* 0x08a0 */ 2, 0, 27,227, 39,122,160,225, 7, 0, 0, 10, 0, 0, 87,227,
/* 0x08b0 */ 5, 0, 0, 10, 10, 16,134,224, 7, 32,160,225, 0, 48,160,227,
/* 0x08c0 */ 1, 32, 82,226, 1, 48,193,228,251,255,255, 26, 0, 0, 89,227,
/* 0x08d0 */ 49, 0, 0, 10,181,254,255,235, 32, 48, 21,229, 32, 0,141,229,
/* 0x08e0 */ 1, 0, 83,227, 36, 0, 0, 26, 8, 48, 21,229, 1, 0, 19,227,
/* 0x08f0 */ 33, 0, 0, 10, 12, 32, 21,229, 16, 48, 21,229, 24, 16, 21,229,
/* 0x0900 */ 3, 0, 82,225, 75, 0, 0, 26, 1, 48,130,224, 24, 0,157,229,
/* 0x0910 */ 3, 48,131,226, 3, 48,128,224, 3, 64,195,227, 0, 48,100,226,
/* 0x0920 */ 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227, 65, 0, 0,154,
/* 0x0930 */ 10, 0, 0,234, 0,224,160,227, 7, 32,160,227, 0,192,224,227,
/* 0x0940 */ 14, 0,160,225, 1, 26,160,227, 34, 48,160,227, 0, 80,141,232,
/* 0x0950 */ 141,254,255,235, 0, 32, 80,226, 61, 0, 0, 26, 6, 0, 0,234,
/* 0x0960 */ 32, 32,157,229, 40, 49,159,229, 12, 0,132,232, 4, 0,160,225,
/* 0x0970 */ 8, 16,132,226,125,254,255,235, 63, 0, 0,234, 6, 0,160,225,
/* 0x0980 */ 10, 16,160,225, 11, 32,160,225,115,254,255,235, 0, 0, 80,227,
/* 0x0990 */ 1, 0, 0, 10,127, 0,160,227, 62,254,255,235, 16,192,157,229,
/* 0x09a0 */ 40, 0,157,229, 7, 48,138,224, 0, 16,140,224, 3, 64,134,224,
/* 0x09b0 */ 1, 0, 84,225, 7, 0, 0, 42, 1, 16,100,224, 11, 32,160,225,
/* 0x09c0 */ 4, 0,160,225, 16, 48,160,227,122,254,255,235, 0, 0, 84,225,
/* 0x09d0 */ 0, 0, 0, 10,254,255,255,234, 28, 32,157,229, 32, 80,133,226,
/* 0x09e0 */ 1, 32,130,226, 28, 32,141,229,188, 50,216,225, 28,192,157,229,
/* 0x09f0 */ 3, 0, 92,225, 77,255,255,186, 0, 0, 89,227, 4, 0, 0, 10,
/* 0x0a00 */ 176, 49,216,225, 3, 0, 83,227, 1, 0, 0, 10, 20, 0,157,229,
/* 0x0a10 */ 66,254,255,235, 88, 0,157,229, 24, 48,157,229, 0, 0, 80,227,
/* 0x0a20 */ 24, 32,157, 21, 0, 32,128, 21, 24, 0,152,229, 0, 0,131,224,
/* 0x0a30 */ 52,208,141,226,240,143,189,232, 28, 48, 21,229, 0, 0, 83,227,
/* 0x0a40 */ 36,192,157, 5, 12, 48,129, 0, 8, 64,131, 2,195,255,255, 10,
/* 0x0a50 */ 183,255,255,234, 2, 64,160,225, 52, 48,159,229, 32, 32,157,229,
/* 0x0a60 */ 8, 16,132,226, 12, 0,132,232, 64,254,255,235, 4, 0,160,225,
/* 0x0a70 */ 8, 16,160,227, 5, 32,160,227, 55,254,255,235, 4, 32,160,225,
/* 0x0a80 */ 8, 0,157,229, 0, 16,160,227,103,254,255,235,186,255,255,234,
/* 0x0a90 */ 64, 98, 81,115, 14,240,160,225,240, 71, 45,233, 12,208, 77,226,
/* 0x0aa0 */ 52, 96,141,226, 0,144,160,225, 1,112,160,225, 3,128,160,225,
/* 0x0ab0 */ 6, 0,160,225, 44, 16,141,226, 0, 48,160,227, 48,160,157,229,
/* 0x0ac0 */ 2, 80,160,225, 52, 64,157,229,122,254,255,235, 60, 48,157,229,
/* 0x0ad0 */ 56,192,157,229, 12,224,141,226, 4, 48, 46,229, 12,192,100,224,
/* 0x0ae0 */ 6, 32,160,225, 10, 16,160,225, 9, 48,160,225, 5, 0,160,225,
/* 0x0af0 */ 56,192,141,229, 0,224,141,229, 52,112,141,229, 4,128,141,229,
/* 0x0b00 */ 188,254,255,235, 0, 64,160,225, 9, 16,160,227, 9, 0,160,225,
/* 0x0b10 */ 4, 32,160,225, 68,254,255,235,188, 2,218,225, 52, 32,138,226,
/* 0x0b20 */ 0, 16,160,227, 35, 0, 0,234, 0, 48,146,229, 3, 0, 83,227,
/* 0x0b30 */ 30, 0, 0, 26, 8, 48,146,229, 8, 0,157,229, 0, 16,160,227,
/* 0x0b40 */ 0, 0,131,224, 1, 32,160,225,224,253,255,235, 0, 80, 80,226,
/* 0x0b50 */ 4, 0, 0,186, 10, 16,160,225, 2, 44,160,227,209,253,255,235,
/* 0x0b60 */ 2, 12, 80,227, 1, 0, 0, 10,127, 0,160,227,201,253,255,235,
/* 0x0b70 */ 0,224,160,227, 14, 32,160,225, 8,192,141,226, 10, 16,160,225,
/* 0x0b80 */ 9, 48,160,225, 5, 0,160,225, 0, 80,141,232,153,254,255,235,
/* 0x0b90 */ 7, 16,160,227, 0, 64,160,225, 8, 32,157,229, 9, 0,160,225,
/* 0x0ba0 */ 33,254,255,235, 5, 0,160,225,205,253,255,235, 3, 0, 0,234,
/* 0x0bb0 */ 32, 32,130,226, 1, 16,129,226, 0, 0, 81,225,217,255,255,186,
/* 0x0bc0 */ 4, 0,160,225, 12,208,141,226,240,135,189,232
/* 0x0350 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 28,192,159,229,
/* 0x0360 */ 0,192, 12,224, 12, 0, 64,224, 12, 16,129,224, 7,192,160,225,
/* 0x0370 */ 125,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0380 */ 255, 15, 0, 0, 0, 32,160,227, 7,192,160,225, 2,112,160,227,
/* 0x0390 */ 15,120,135,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x03a0 */ 48, 64, 45,233, 16, 80,157,229, 12, 64,157,229, 37, 86,160,225,
/* 0x03b0 */ 7,192,160,225,192,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x03c0 */ 48,128,189,232,124, 0, 31,229, 14,240,160,225, 48, 64, 45,233,
/* 0x03d0 */ 88, 67, 31,229, 0, 80,160,227, 4, 48,131,225, 0, 64,224,227,
/* 0x03e0 */ 242,255,255,234, 0,192,160,225, 1, 16, 65,224, 0, 32,160,225,
/* 0x03f0 */ 128, 1,144,224,129, 17,161,224,162, 30,129,224, 0, 32,160,225,
/* 0x0400 */ 0, 2,144,224, 1, 18,161,224, 34, 30,129,224, 0, 32,160,225,
/* 0x0410 */ 0, 4,144,224, 1, 20,161,224, 34, 28,129,224, 0, 32,160,225,
/* 0x0420 */ 0, 8,144,224, 1, 24,161,224, 34, 24,129,224,140, 15, 80,224,
/* 0x0430 */ 172, 16,193,224, 12, 0,144,224, 0, 0,161,226, 14,240,160,225,
/* 0x0440 */ 0, 0, 80,227, 30,255, 47, 1, 0, 48,144,229, 1, 0, 83,225,
/* 0x0450 */ 8, 0,128, 18,251,255,255, 26, 4, 32,128,229, 30,255, 47,225,
/* 0x0460 */ 0, 0,159,229, 30,255, 47,225, 0,240,255,255, 0, 48,144,229,
/* 0x0470 */ 4,224, 45,229, 2, 0, 83,225, 4, 48,144,229, 2,224,160,225,
/* 0x0480 */ 3,192,160, 33, 2, 32,160, 33, 3, 0, 0, 42,127, 0,160,227,
/* 0x0490 */ 128,255,255,235, 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226,
/* 0x04a0 */ 1, 0,114,227, 1,192,140,226, 1, 16,129,226,248,255,255, 26,
/* 0x04b0 */ 4, 32,144,229, 0, 48,144,229, 14, 32,130,224, 3, 48,110,224,
/* 0x04c0 */ 0, 48,128,229, 4, 32,128,229, 4,240,157,228,240, 64, 45,233,
/* 0x04d0 */ 0, 80,160,225, 20,208, 77,226, 1, 64,160,225, 2,112,160,225,
/* 0x04e0 */ 3, 96,160,225, 66, 0, 0,234, 4, 16,141,226, 5, 0,160,225,
/* 0x04f0 */ 12, 32,160,227,220,255,255,235, 4,224,157,229, 8, 16,157,229,
/* 0x0500 */ 0, 0, 94,227, 6, 0, 0, 26,248, 48,159,229, 3, 0, 81,225,
/* 0x0510 */ 5, 0, 0, 26, 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26,
/* 0x0520 */ 54, 0, 0,234, 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227,
/* 0x0530 */ 88,255,255,235, 14, 0, 81,225,251,255,255,138, 0, 48,148,229,
/* 0x0540 */ 3, 0, 94,225,248,255,255,138, 14, 0, 81,225, 31, 0, 0, 42,
/* 0x0550 */ 12,192,221,229, 4, 0,149,229, 4, 32,148,229, 16, 48,141,226,
/* 0x0560 */ 16,224,141,229, 0,192,141,229, 55,255, 47,225, 0, 0, 80,227,
/* 0x0570 */ 237,255,255, 26, 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225,
/* 0x0580 */ 233,255,255, 26, 13, 32,221,229, 0, 0, 82,227, 0, 0, 86, 19,
/* 0x0590 */ 8, 0, 0, 10, 2, 12, 81,227, 2, 0, 0,138, 0, 48,148,229,
/* 0x05a0 */ 1, 0, 83,225, 3, 0, 0, 26, 2, 48,160,225, 4, 0,148,229,
/* 0x05b0 */ 14, 32,221,229, 54,255, 47,225, 8, 48,157,229, 6, 0,149,232,
/* 0x05c0 */ 3, 32,130,224, 1, 16, 99,224, 6, 0,133,232, 3, 0, 0,234,
/* 0x05d0 */ 1, 32,160,225, 5, 0,160,225, 4, 16,148,229,162,255,255,235,
/* 0x05e0 */ 4, 48,157,229, 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224,
/* 0x05f0 */ 6, 0,132,232, 0, 48,148,229, 0, 0, 83,227,185,255,255, 26,
/* 0x0600 */ 20,208,141,226,240,128,189,232, 85, 80, 88, 33,240, 79, 45,233,
/* 0x0610 */ 1,128,160,225, 28, 16,145,229, 52,208, 77,226, 0,144, 82,226,
/* 0x0620 */ 12, 0,141,229, 8, 48,141,229, 1, 96,136,224, 18, 0, 0, 10,
/* 0x0630 */ 88, 32,157,229, 0, 0,146,229,176, 49,208,225, 52, 16,128,226,
/* 0x0640 */ 2, 0, 83,227, 40, 48,145, 21, 0, 48,160, 3, 0, 0, 99, 16,
/* 0x0650 */ 8, 80,145, 5, 24, 48,141, 5, 20, 48,145,229, 0, 80,160, 17,
/* 0x0660 */ 24, 0,141, 21, 3, 16,160,225, 5, 0,160,225, 5, 48,131,224,
/* 0x0670 */ 20, 48,141,229, 51,255,255,235, 41, 0, 0,234,176, 49,216,225,
/* 0x0680 */ 188, 34,216,225, 3, 0, 83,227, 16,192,160, 19, 0,192,160, 3,
/* 0x0690 */ 1, 0, 66,226, 6, 16,160,225, 0, 64,224,227, 9, 80,160,225,
/* 0x06a0 */ 13, 0, 0,234, 0, 48,145,229, 1, 0, 83,227, 8, 0, 0, 26,
/* 0x06b0 */ 20, 48,145,229, 0, 0, 83,227, 5, 0, 0, 10, 8, 32,145,229,
/* 0x06c0 */ 2, 48,131,224, 3, 0, 85,225, 3, 80,160, 49, 2, 0, 84,225,
/* 0x06d0 */ 2, 64,160, 33, 32, 16,129,226, 1, 0, 64,226, 0, 0, 80,227,
/* 0x06e0 */ 239,255,255,170,255, 78,196,227, 15, 64,196,227, 5, 80,100,224,
/* 0x06f0 */ 255, 94,133,226, 15, 80,133,226,255, 94,197,227, 15, 80,197,227,
/* 0x0700 */ 4, 0,160,225, 5, 16,160,225, 12, 48,160,225, 0, 32,160,227,
/* 0x0710 */ 45,255,255,235, 0, 64,100,224, 0, 80,133,224, 24, 64,141,229,
/* 0x0720 */ 20, 80,141,229, 24,192,157,229, 52, 48,160,227,147, 12, 12,224,
/* 0x0730 */ 0, 0,160,227, 32, 80,134,226, 36,192,141,229, 28, 0,141,229,
/* 0x0740 */ 173, 0, 0,234, 0, 0, 89,227, 9, 0, 0, 10, 32, 48, 21,229,
/* 0x0750 */ 6, 0, 83,227, 6, 0, 0, 26, 24, 32, 21,229, 24, 48,157,229,
/* 0x0760 */ 8, 0,157,229, 2, 32,131,224, 3, 16,160,227, 51,255,255,235,
/* 0x0770 */ 157, 0, 0,234, 32, 48, 21,229, 1, 0, 83,227,154, 0, 0, 26,
/* 0x0780 */ 12, 48, 21,229, 0, 0, 83,227,151, 0, 0, 10, 0, 0, 89,227,
/* 0x0790 */ 18, 0, 0, 10, 28, 48, 21,229, 0, 0, 83,227, 15, 0, 0, 26,
/* 0x07a0 */ 28, 48,152,229, 24, 32, 21,229, 24,192,157,229, 3, 32,130,224,
/* 0x07b0 */ 2, 32,140,224, 3, 16,160,227, 8, 0,157,229, 31,255,255,235,
/* 0x07c0 */ 8, 0,157,229, 5, 16,160,227,188, 34,216,225, 27,255,255,235,
/* 0x07d0 */ 8, 0,157,229, 4, 16,160,227,186, 34,216,225, 23,255,255,235,
/* 0x07e0 */ 8, 16, 21,229,184, 34,159,229, 7, 48, 1,226, 3, 49,160,225,
/* 0x07f0 */ 50, 67,160,225, 24, 0,157,229, 24, 48, 21,229, 16, 32, 21,229,
/* 0x0800 */ 3, 48,128,224, 16, 48,141,229, 16,192,157,229, 3, 58,160,225,
/* 0x0810 */ 12, 0, 21,229, 35, 58,160,225, 0, 0, 89,227, 44, 32,141,229,
/* 0x0820 */ 48,192,141,229, 3,160,130,224, 7,176, 4,226, 40, 0,141,229,
/* 0x0830 */ 12, 96, 99,224, 16, 0, 0, 10, 1, 0, 17,227, 3, 32,160, 3,
/* 0x0840 */ 7, 32,160, 19, 6, 0,160,225, 10, 16,160,225, 16, 48,160,227,
/* 0x0850 */ 221,254,255,235, 0, 0, 86,225, 82, 0, 0, 26, 92, 32,157,229,
/* 0x0860 */ 4, 48, 20,226, 2, 48,160, 17, 9, 0,160,225, 44, 16,141,226,
/* 0x0870 */ 12, 32,157,229, 20,255,255,235, 11, 0, 0,234, 28,192, 21,229,
/* 0x0880 */ 6, 0,160,225, 12,192, 99,224, 4,192,141,229, 12,192,157,229,
/* 0x0890 */ 10, 16,160,225, 11, 32,160,225, 18, 48,160,227, 0,192,141,229,
/* 0x08a0 */ 190,254,255,235, 0, 0, 86,225, 62, 0, 0, 26, 0, 48,106,226,
/* 0x08b0 */ 3,122,160,225, 2, 0, 27,227, 39,122,160,225, 7, 0, 0, 10,
/* 0x08c0 */ 0, 0, 87,227, 5, 0, 0, 10, 10, 16,134,224, 7, 32,160,225,
/* 0x08d0 */ 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228,251,255,255, 26,
/* 0x08e0 */ 0, 0, 89,227, 49, 0, 0, 10,181,254,255,235, 32, 48, 21,229,
/* 0x08f0 */ 32, 0,141,229, 1, 0, 83,227, 36, 0, 0, 26, 8, 48, 21,229,
/* 0x0900 */ 1, 0, 19,227, 33, 0, 0, 10, 12, 32, 21,229, 16, 48, 21,229,
/* 0x0910 */ 24, 16, 21,229, 3, 0, 82,225, 75, 0, 0, 26, 1, 48,130,224,
/* 0x0920 */ 24, 0,157,229, 3, 48,131,226, 3, 48,128,224, 3, 64,195,227,
/* 0x0930 */ 0, 48,100,226, 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227,
/* 0x0940 */ 65, 0, 0,154, 10, 0, 0,234, 0,224,160,227, 7, 32,160,227,
/* 0x0950 */ 0,192,224,227, 14, 0,160,225, 1, 26,160,227, 34, 48,160,227,
/* 0x0960 */ 0, 80,141,232,141,254,255,235, 0, 32, 80,226, 61, 0, 0, 26,
/* 0x0970 */ 6, 0, 0,234, 32, 32,157,229, 40, 49,159,229, 12, 0,132,232,
/* 0x0980 */ 4, 0,160,225, 8, 16,132,226,125,254,255,235, 63, 0, 0,234,
/* 0x0990 */ 6, 0,160,225, 10, 16,160,225, 11, 32,160,225,110,254,255,235,
/* 0x09a0 */ 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227, 57,254,255,235,
/* 0x09b0 */ 16,192,157,229, 40, 0,157,229, 7, 48,138,224, 0, 16,140,224,
/* 0x09c0 */ 3, 64,134,224, 1, 0, 84,225, 7, 0, 0, 42, 1, 16,100,224,
/* 0x09d0 */ 11, 32,160,225, 4, 0,160,225, 16, 48,160,227,122,254,255,235,
/* 0x09e0 */ 0, 0, 84,225, 0, 0, 0, 10,254,255,255,234, 28, 32,157,229,
/* 0x09f0 */ 32, 80,133,226, 1, 32,130,226, 28, 32,141,229,188, 50,216,225,
/* 0x0a00 */ 28,192,157,229, 3, 0, 92,225, 77,255,255,186, 0, 0, 89,227,
/* 0x0a10 */ 4, 0, 0, 10,176, 49,216,225, 3, 0, 83,227, 1, 0, 0, 10,
/* 0x0a20 */ 20, 0,157,229, 61,254,255,235, 88, 0,157,229, 24, 48,157,229,
/* 0x0a30 */ 0, 0, 80,227, 24, 32,157, 21, 0, 32,128, 21, 24, 0,152,229,
/* 0x0a40 */ 0, 0,131,224, 52,208,141,226,240,143,189,232, 28, 48, 21,229,
/* 0x0a50 */ 0, 0, 83,227, 36,192,157, 5, 12, 48,129, 0, 8, 64,131, 2,
/* 0x0a60 */ 195,255,255, 10,183,255,255,234, 2, 64,160,225, 52, 48,159,229,
/* 0x0a70 */ 32, 32,157,229, 8, 16,132,226, 12, 0,132,232, 64,254,255,235,
/* 0x0a80 */ 4, 0,160,225, 8, 16,160,227, 5, 32,160,227, 50,254,255,235,
/* 0x0a90 */ 4, 32,160,225, 8, 0,157,229, 0, 16,160,227,103,254,255,235,
/* 0x0aa0 */ 186,255,255,234, 64, 98, 81,115, 14,240,160,225,240, 71, 45,233,
/* 0x0ab0 */ 12,208, 77,226, 52, 96,141,226, 0,144,160,225, 1,112,160,225,
/* 0x0ac0 */ 3,128,160,225, 6, 0,160,225, 44, 16,141,226, 0, 48,160,227,
/* 0x0ad0 */ 48,160,157,229, 2, 80,160,225, 52, 64,157,229,122,254,255,235,
/* 0x0ae0 */ 60, 48,157,229, 56,192,157,229, 12,224,141,226, 4, 48, 46,229,
/* 0x0af0 */ 12,192,100,224, 6, 32,160,225, 10, 16,160,225, 9, 48,160,225,
/* 0x0b00 */ 5, 0,160,225, 56,192,141,229, 0,224,141,229, 52,112,141,229,
/* 0x0b10 */ 4,128,141,229,188,254,255,235, 0, 64,160,225, 9, 16,160,227,
/* 0x0b20 */ 9, 0,160,225, 4, 32,160,225, 68,254,255,235,188, 2,218,225,
/* 0x0b30 */ 52, 32,138,226, 0, 16,160,227, 35, 0, 0,234, 0, 48,146,229,
/* 0x0b40 */ 3, 0, 83,227, 30, 0, 0, 26, 8, 48,146,229, 8, 0,157,229,
/* 0x0b50 */ 0, 16,160,227, 0, 0,131,224, 1, 32,160,225,219,253,255,235,
/* 0x0b60 */ 0, 80, 80,226, 4, 0, 0,186, 10, 16,160,225, 2, 44,160,227,
/* 0x0b70 */ 204,253,255,235, 2, 12, 80,227, 1, 0, 0, 10,127, 0,160,227,
/* 0x0b80 */ 196,253,255,235, 0,224,160,227, 14, 32,160,225, 8,192,141,226,
/* 0x0b90 */ 10, 16,160,225, 9, 48,160,225, 5, 0,160,225, 0, 80,141,232,
/* 0x0ba0 */ 153,254,255,235, 7, 16,160,227, 0, 64,160,225, 8, 32,157,229,
/* 0x0bb0 */ 9, 0,160,225, 33,254,255,235, 5, 0,160,225,200,253,255,235,
/* 0x0bc0 */ 3, 0, 0,234, 32, 32,130,226, 1, 16,129,226, 0, 0, 81,225,
/* 0x0bd0 */ 217,255,255,186, 4, 0,160,225, 12,208,141,226,240,135,189,232
};