diff --git a/src/Makefile b/src/Makefile index 66ce6286..f3cf0af5 100644 --- a/src/Makefile +++ b/src/Makefile @@ -5,7 +5,7 @@ # # build configuration options for this Makefile -BUILD_TYPE_DEBUG ?= 0 +BUILD_TYPE_DEBUG ?= 1 BUILD_TYPE_SANITIZE ?= 0 BUILD_USE_DEPEND ?= 1 diff --git a/src/p_lx_elf.cpp b/src/p_lx_elf.cpp index fb3506bc..3fa87aad 100644 --- a/src/p_lx_elf.cpp +++ b/src/p_lx_elf.cpp @@ -366,14 +366,33 @@ off_t PackLinuxElf::pack3(OutputFile *fo, Filter &ft) // return length of output return fpad4(fo); // MATCH03 } +// C_BASE covers the convex hull of the PT_LOAD of the uncompressed module. +// It has (PF_W & .p_flags), and is ".bss": empty (0==.p_filesz, except a bug +// in Linux kernel forces 0x1000==.p_filesz) with .p_memsz equal to the brk(0). +// It is first in order to reserve all // pages, in particular so that if +// (64K == .p_align) but at runtime (4K == PAGE_SIZE) then the Linux kernel +// does not put [vdso] and [vvar] into alignment holes that the UPX runtime stub +// will overwrite. +// +// Note that C_TEXT[.p_vaddr, +.p_memsz) is a subset of C_BASE. +// This requires that the kernel process the ELFxx_Phdr in ascending order, +// and does not mind the overlap. The UPX runtime stub will "re-program" +// the memory regions anyway. +enum { // ordinals in ELFxx_Phdr[] of compressed output + C_BASE = 0 // reserve address space + , C_TEXT = 1 // compressed data and stub + , C_NOTE = 2 // PT_NOTE copied from input + , C_GSTK = 3 // PT_GNU_STACK; will be 2 if no PT_NOTE +}; + off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft) { off_t flen = super::pack3(fo, ft); // loader follows compressed PT_LOADs // NOTE: PackLinuxElf::pack3 adjusted xct_off for the extra page unsigned v_hole = sz_pack2 + lsize; - set_te32(&elfout.phdr[0].p_filesz, v_hole); - set_te32(&elfout.phdr[0].p_memsz, v_hole); + set_te32(&elfout.phdr[C_TEXT].p_filesz, v_hole); + set_te32(&elfout.phdr[C_TEXT].p_memsz, v_hole); // Then compressed gaps (including debuginfo.) unsigned total_in = 0, total_out = 0; for (unsigned k = 0; k < e_phnum; ++k) { @@ -391,8 +410,8 @@ off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft) fo->write(&hdr, sizeof(hdr)); flen = fpad4(fo); - set_te32(&elfout.phdr[0].p_filesz, sz_pack2 + lsize); - set_te32(&elfout.phdr[0].p_memsz, sz_pack2 + lsize); + set_te32(&elfout.phdr[C_TEXT].p_filesz, sz_pack2 + lsize); + set_te32(&elfout.phdr[C_TEXT].p_memsz, sz_pack2 + lsize); if (0==xct_off) { // not shared library; adjust PT_LOAD // .p_align can be big for segments, but Linux uses 4KiB pages. // This allows [vvar], [vdso], etc to sneak into the gap @@ -403,13 +422,13 @@ off_t PackLinuxElf32::pack3(OutputFile *fo, Filter &ft) ? page_mask // reducing to 4KiB DOES NOT WORK ?? : ((~(unsigned)0)<<12); pm = page_mask; // Revert until consequences can be analyzed - v_hole = pm & (~pm + v_hole + get_te32(&elfout.phdr[0].p_vaddr)); - set_te32(&elfout.phdr[1].p_vaddr, v_hole); - set_te32(&elfout.phdr[1].p_align, ((unsigned)0) - pm); - elfout.phdr[1].p_paddr = elfout.phdr[1].p_vaddr; - elfout.phdr[1].p_offset = 0; - set_te32(&elfout.phdr[1].p_memsz, getbrk(phdri, e_phnum) - v_hole); - set_te32(&elfout.phdr[1].p_flags, Elf32_Phdr::PF_W|Elf32_Phdr::PF_R); + v_hole = pm & (~pm + v_hole + get_te32(&elfout.phdr[C_TEXT].p_vaddr)); + set_te32(&elfout.phdr[C_BASE].p_vaddr, v_hole); + set_te32(&elfout.phdr[C_BASE].p_align, ((unsigned)0) - pm); + elfout.phdr[C_BASE].p_paddr = elfout.phdr[C_BASE].p_vaddr; + elfout.phdr[C_BASE].p_offset = 0; + set_te32(&elfout.phdr[C_BASE].p_memsz, getbrk(phdri, e_phnum) - v_hole); + set_te32(&elfout.phdr[C_BASE].p_flags, Elf32_Phdr::PF_W|Elf32_Phdr::PF_R); } if (0!=xct_off) { // shared library unsigned word = (Elf32_Ehdr::EM_ARM==e_machine) + load_va + sz_pack2; // Thumb mode @@ -500,8 +519,8 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft) // NOTE: PackLinuxElf::pack3 adjusted xct_off for the extra page unsigned v_hole = sz_pack2 + lsize; - set_te64(&elfout.phdr[0].p_filesz, v_hole); - set_te64(&elfout.phdr[0].p_memsz, v_hole); + set_te64(&elfout.phdr[C_TEXT].p_filesz, v_hole); + set_te64(&elfout.phdr[C_TEXT].p_memsz, v_hole); // Then compressed gaps (including debuginfo.) unsigned total_in = 0, total_out = 0; for (unsigned k = 0; k < e_phnum; ++k) { @@ -519,28 +538,19 @@ off_t PackLinuxElf64::pack3(OutputFile *fo, Filter &ft) fo->write(&hdr, sizeof(hdr)); flen = fpad4(fo); - set_te64(&elfout.phdr[0].p_filesz, sz_pack2 + lsize); - set_te64(&elfout.phdr[0].p_memsz, sz_pack2 + lsize); - if (0==xct_off) { // not shared library; adjust PT_LOAD - // On amd64: (2<<20)==.p_align, but Linux uses 4KiB pages. - // This allows [vvar], [vdso], etc to sneak into the gap - // between end_text and data, which we wish to prevent - // because the expanded program will use that space. - // So: pretend 4KiB pages. - upx_uint64_t const pm = ( - Elf64_Ehdr::EM_X86_64 ==e_machine - //|| Elf64_Ehdr::EM_AARCH64==e_machine - //|| Elf64_Ehdr::EM_PPC64 ==e_machine /* DOES NOT WORK! */ - ) - ? ((~(upx_uint64_t)0)<<12) - : page_mask; - v_hole = pm & (~pm + v_hole + get_te64(&elfout.phdr[0].p_vaddr)); - set_te64(&elfout.phdr[1].p_vaddr, v_hole); - set_te64(&elfout.phdr[1].p_align, ((upx_uint64_t)0) - pm); - elfout.phdr[1].p_paddr = elfout.phdr[1].p_vaddr; - elfout.phdr[1].p_offset = 0; - set_te64(&elfout.phdr[1].p_memsz, getbrk(phdri, e_phnum) - v_hole); - set_te32(&elfout.phdr[1].p_flags, Elf32_Phdr::PF_W|Elf32_Phdr::PF_R); + set_te64(&elfout.phdr[C_TEXT].p_filesz, sz_pack2 + lsize); + set_te64(&elfout.phdr[C_TEXT].p_memsz, sz_pack2 + lsize); + if (0==xct_off) { // not shared library + set_te64(&elfout.phdr[C_BASE].p_align, ((upx_uint64_t)0) - page_mask); + elfout.phdr[C_BASE].p_paddr = elfout.phdr[C_BASE].p_vaddr; + elfout.phdr[C_BASE].p_offset = 0; + upx_uint64_t abrk = getbrk(phdri, e_phnum); + set_te64(&elfout.phdr[C_BASE].p_filesz, 0x1000); // Linux kernel SIGSEGV if (0==.p_filesz) + set_te64(&elfout.phdr[C_BASE].p_memsz, abrk); + set_te32(&elfout.phdr[C_BASE].p_flags, Elf32_Phdr::PF_W|Elf32_Phdr::PF_R); + set_te64(&elfout.phdr[C_TEXT].p_vaddr, abrk= (page_mask & (~page_mask + abrk))); + elfout.phdr[C_TEXT].p_paddr = elfout.phdr[C_TEXT].p_vaddr; + set_te64(&elfout.ehdr.e_entry, abrk + get_te64(&elfout.ehdr.e_entry)); } if (0!=xct_off) { // shared library upx_uint64_t word = load_va + sz_pack2; @@ -896,7 +906,7 @@ void PackLinuxElf32::ARM_updateLoader(OutputFile * /*fo*/) { set_te32(&elfout.ehdr.e_entry, sz_pack2 + linker->getSymbolOffset("_start") + - get_te32(&elfout.phdr[0].p_vaddr)); + get_te32(&elfout.phdr[C_TEXT].p_vaddr)); } void PackLinuxElf32armLe::updateLoader(OutputFile *fo) @@ -922,7 +932,7 @@ void PackLinuxElf32mipseb::updateLoader(OutputFile *fo) void PackLinuxElf32::updateLoader(OutputFile * /*fo*/) { unsigned start = linker->getSymbolOffset("_start"); - unsigned vbase = get_te32(&elfout.phdr[0].p_vaddr); + unsigned vbase = get_te32(&elfout.phdr[C_TEXT].p_vaddr); set_te32(&elfout.ehdr.e_entry, start + sz_pack2 + vbase); } @@ -931,7 +941,7 @@ void PackLinuxElf64::updateLoader(OutputFile * /*fo*/) if (xct_off) { return; // FIXME elfout has no values at all } - upx_uint64_t const vbase = get_te64(&elfout.phdr[0].p_vaddr); + upx_uint64_t const vbase = get_te64(&elfout.phdr[C_TEXT].p_vaddr); unsigned start = linker->getSymbolOffset("_start"); if (get_te16(&elfout.ehdr.e_machine)==Elf64_Ehdr::EM_PPC64 @@ -1057,7 +1067,7 @@ void PackLinuxElf32x86::addStubEntrySections(Filter const *ft) // sizeof(l_info) + // // PT_DYNAMIC with DT_NEEDED "forwarded" from original file // ((get_te16(&elfout.ehdr.e_phnum)==3) -// ? (unsigned) get_te32(&elfout.phdr[2].p_memsz) +// ? (unsigned) get_te32(&elfout.phdr[C_NOTE].p_memsz) // : 0) + // // p_progid, p_filesize, p_blocksize // sizeof(p_info) + @@ -2745,8 +2755,8 @@ PackLinuxElf32::generateElfHdr( set_te16(&h2->ehdr.e_phnum, phnum_o); } o_binfo = sizeof(Elf32_Ehdr) + sizeof(Elf32_Phdr)*phnum_o + sizeof(l_info) + sizeof(p_info); - set_te32(&h2->phdr[0].p_filesz, sizeof(*h2)); // + identsize; - h2->phdr[0].p_memsz = h2->phdr[0].p_filesz; + set_te32(&h2->phdr[C_TEXT].p_filesz, sizeof(*h2)); // + identsize; + h2->phdr[C_TEXT].p_memsz = h2->phdr[C_TEXT].p_filesz; for (unsigned j=0; j < phnum_o; ++j) { if (PT_LOAD32==get_te32(&h3->phdr[j].p_type)) { @@ -2768,21 +2778,21 @@ PackLinuxElf32::generateElfHdr( } } } - set_te32(&h2->phdr[0].p_paddr, lo_va_user); - set_te32(&h2->phdr[0].p_vaddr, lo_va_user); + set_te32(&h2->phdr[C_TEXT].p_paddr, lo_va_user); + set_te32(&h2->phdr[C_TEXT].p_vaddr, lo_va_user); unsigned const brkb = page_mask & (~page_mask + - get_te32(&h2->phdr[0].p_vaddr) + memsz); - set_te32(&h2->phdr[1].p_type, PT_LOAD32); // be sure - h2->phdr[1].p_offset = 0; - set_te32(&h2->phdr[1].p_vaddr, brkb); - set_te32(&h2->phdr[1].p_paddr, brkb); - h2->phdr[1].p_filesz = 0; - set_te32(&h2->phdr[1].p_memsz, brka - brkb); - set_te32(&h2->phdr[1].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W); + get_te32(&h2->phdr[C_TEXT].p_vaddr) + memsz); + set_te32(&h2->phdr[C_BASE].p_type, PT_LOAD32); // be sure + h2->phdr[C_BASE].p_offset = 0; + set_te32(&h2->phdr[C_BASE].p_vaddr, brkb); + set_te32(&h2->phdr[C_BASE].p_paddr, brkb); + h2->phdr[C_BASE].p_filesz = 0; + set_te32(&h2->phdr[C_BASE].p_memsz, brka - brkb); + set_te32(&h2->phdr[C_BASE].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W); } if (ph.format==getFormat()) { assert((2u+ !!gnu_stack) == phnum_o); - set_te32(&h2->phdr[0].p_flags, ~Elf32_Phdr::PF_W & get_te32(&h2->phdr[0].p_flags)); + set_te32(&h2->phdr[C_TEXT].p_flags, ~Elf32_Phdr::PF_W & get_te32(&h2->phdr[C_TEXT].p_flags)); if (!gnu_stack) { memset(&h2->linfo, 0, sizeof(h2->linfo)); fo->write(h2, sizeof(*h2)); @@ -2841,7 +2851,7 @@ PackNetBSDElf32x86::generateElfHdr( // Add PT_NOTE for the NetBSD note and PaX note, if any. note_offset += (np_NetBSD ? sizeof(Elf32_Phdr) : 0); note_offset += (np_PaX ? sizeof(Elf32_Phdr) : 0); - Elf32_Phdr *phdr = &elfout.phdr[2]; + Elf32_Phdr *phdr = &elfout.phdr[C_NOTE]; if (np_NetBSD) { set_te32(&phdr->p_type, PT_NOTE32); set_te32(&phdr->p_offset, note_offset); @@ -2877,8 +2887,8 @@ PackNetBSDElf32x86::generateElfHdr( note_offset += sz_PaX; ++phdr; } - set_te32(&h2->phdr[0].p_filesz, note_offset); - h2->phdr[0].p_memsz = h2->phdr[0].p_filesz; + set_te32(&h2->phdr[C_TEXT].p_filesz, note_offset); + h2->phdr[C_TEXT].p_memsz = h2->phdr[C_TEXT].p_filesz; if (ph.format==getFormat()) { set_te16(&h2->ehdr.e_phnum, !!sz_NetBSD + !!sz_PaX + @@ -2893,8 +2903,8 @@ PackNetBSDElf32x86::generateElfHdr( if (sz_NetBSD) memcpy(&((char *)phdr)[0], np_NetBSD, sz_NetBSD); if (sz_PaX) memcpy(&((char *)phdr)[sz_NetBSD], np_PaX, sz_PaX); - fo->write(&elfout.phdr[2], - &((char *)phdr)[sz_PaX + sz_NetBSD] - (char *)&elfout.phdr[2]); + fo->write(&elfout.phdr[C_NOTE], + &((char *)phdr)[sz_PaX + sz_NetBSD] - (char *)&elfout.phdr[C_NOTE]); l_info foo; memset(&foo, 0, sizeof(foo)); fo->rewrite(&foo, sizeof(foo)); @@ -2934,14 +2944,14 @@ PackOpenBSDElf32x86::generateElfHdr( unsigned const note_offset = sizeof(*h3) - sizeof(linfo); sz_elf_hdrs = sizeof(elfnote) + note_offset; - set_te32(&h3->phdr[2].p_type, PT_NOTE32); - set_te32(&h3->phdr[2].p_offset, note_offset); - set_te32(&h3->phdr[2].p_vaddr, note_offset); - set_te32(&h3->phdr[2].p_paddr, note_offset); - set_te32(&h3->phdr[2].p_filesz, sizeof(elfnote)); - set_te32(&h3->phdr[2].p_memsz, sizeof(elfnote)); - set_te32(&h3->phdr[2].p_flags, Elf32_Phdr::PF_R); - set_te32(&h3->phdr[2].p_align, 4); + set_te32(&h3->phdr[C_NOTE].p_type, PT_NOTE32); + set_te32(&h3->phdr[C_NOTE].p_offset, note_offset); + set_te32(&h3->phdr[C_NOTE].p_vaddr, note_offset); + set_te32(&h3->phdr[C_NOTE].p_paddr, note_offset); + set_te32(&h3->phdr[C_NOTE].p_filesz, sizeof(elfnote)); + set_te32(&h3->phdr[C_NOTE].p_memsz, sizeof(elfnote)); + set_te32(&h3->phdr[C_NOTE].p_flags, Elf32_Phdr::PF_R); + set_te32(&h3->phdr[C_NOTE].p_align, 4); // Q: Same as this->note_body[0 .. this->note_size-1] ? set_te32(&elfnote.nhdr.namesz, 8); @@ -2950,18 +2960,18 @@ PackOpenBSDElf32x86::generateElfHdr( memcpy(elfnote.name, "OpenBSD", sizeof(elfnote.name)); elfnote.body = 0; - set_te32(&h3->phdr[0].p_filesz, sz_elf_hdrs); - h3->phdr[0].p_memsz = h3->phdr[0].p_filesz; + set_te32(&h3->phdr[C_TEXT].p_filesz, sz_elf_hdrs); + h3->phdr[C_TEXT].p_memsz = h3->phdr[C_TEXT].p_filesz; unsigned const brkb = brka | ((0==(~page_mask & brka)) ? 0x20 : 0); - set_te32(&h3->phdr[1].p_type, PT_LOAD32); // be sure - set_te32(&h3->phdr[1].p_offset, ~page_mask & brkb); - set_te32(&h3->phdr[1].p_vaddr, brkb); - set_te32(&h3->phdr[1].p_paddr, brkb); - h3->phdr[1].p_filesz = 0; + set_te32(&h3->phdr[C_BASE].p_type, PT_LOAD32); // be sure + set_te32(&h3->phdr[C_BASE].p_offset, ~page_mask & brkb); + set_te32(&h3->phdr[C_BASE].p_vaddr, brkb); + set_te32(&h3->phdr[C_BASE].p_paddr, brkb); + h3->phdr[C_BASE].p_filesz = 0; // Too many kernels have bugs when 0==.p_memsz - set_te32(&h3->phdr[1].p_memsz, 1); - set_te32(&h3->phdr[1].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W); + set_te32(&h3->phdr[C_BASE].p_memsz, 1); + set_te32(&h3->phdr[C_BASE].p_flags, Elf32_Phdr::PF_R | Elf32_Phdr::PF_W); if (ph.format==getFormat()) { memset(&h3->linfo, 0, sizeof(h3->linfo)); @@ -2983,7 +2993,11 @@ PackLinuxElf64::generateElfHdr( { cprElfHdr2 *const h2 = (cprElfHdr2 *)(void *)&elfout; cprElfHdr3 *const h3 = (cprElfHdr3 *)(void *)&elfout; - memcpy(h3, proto, sizeof(*h3)); // reads beyond, but OK + h3->ehdr = ((cprElfHdr3 const *)proto)->ehdr; + h3->phdr[C_BASE] = ((cprElfHdr3 const *)proto)->phdr[1]; // .data; .p_align + h3->phdr[C_TEXT] = ((cprElfHdr3 const *)proto)->phdr[0]; // .text + memset(&h3->linfo, 0, sizeof(h3->linfo)); + h3->ehdr.e_type = ehdri.e_type; // ET_EXEC vs ET_DYN (gcc -pie -fPIC) h3->ehdr.e_ident[Elf64_Ehdr::EI_OSABI] = ei_osabi; if (Elf64_Ehdr::ELFOSABI_LINUX == ei_osabi // proper @@ -3018,8 +3032,8 @@ PackLinuxElf64::generateElfHdr( set_te16(&h2->ehdr.e_phnum, phnum_o); } o_binfo = sizeof(Elf64_Ehdr) + sizeof(Elf64_Phdr)*phnum_o + sizeof(l_info) + sizeof(p_info); - set_te64(&h2->phdr[0].p_filesz, sizeof(*h2)); // + identsize; - h2->phdr[0].p_memsz = h2->phdr[0].p_filesz; + set_te64(&h2->phdr[C_TEXT].p_filesz, sizeof(*h2)); // + identsize; + h2->phdr[C_TEXT].p_memsz = h2->phdr[C_TEXT].p_filesz; for (unsigned j=0; j < 4; ++j) { if (PT_LOAD64==get_te32(&h3->phdr[j].p_type)) { @@ -3037,18 +3051,18 @@ PackLinuxElf64::generateElfHdr( lo_va_user = umin64(lo_va_user, vaddr); } } - set_te64(&h2->phdr[0].p_paddr, lo_va_user); - set_te64(&h2->phdr[0].p_vaddr, lo_va_user); - set_te32(&h2->phdr[1].p_type, PT_LOAD64); // be sure - h2->phdr[1].p_offset = 0; - h2->phdr[1].p_filesz = 0; + set_te64(&h2->phdr[C_TEXT].p_paddr, lo_va_user); + set_te64(&h2->phdr[C_TEXT].p_vaddr, lo_va_user); + set_te32(&h2->phdr[C_BASE].p_type, PT_LOAD64); // be sure + h2->phdr[C_BASE].p_offset = 0; + h2->phdr[C_BASE].p_filesz = 0; // .p_memsz = brka; temporary until sz_pack2 - set_te64(&h2->phdr[1].p_memsz, brka); - set_te32(&h2->phdr[1].p_flags, Elf64_Phdr::PF_R | Elf64_Phdr::PF_W); + set_te64(&h2->phdr[C_BASE].p_memsz, brka); + set_te32(&h2->phdr[C_BASE].p_flags, Elf64_Phdr::PF_R | Elf64_Phdr::PF_W); } if (ph.format==getFormat()) { assert((2u+ !!gnu_stack) == phnum_o); - set_te32(&h2->phdr[0].p_flags, ~Elf64_Phdr::PF_W & get_te32(&h2->phdr[0].p_flags)); + set_te32(&h2->phdr[C_TEXT].p_flags, ~Elf64_Phdr::PF_W & get_te32(&h2->phdr[C_TEXT].p_flags)); if (!gnu_stack) { memset(&h2->linfo, 0, sizeof(h2->linfo)); fo->write(h2, sizeof(*h2)); @@ -4264,8 +4278,8 @@ void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft) // Cannot pre-round .p_memsz. If .p_filesz < .p_memsz, then kernel // tries to make .bss, which requires PF_W. // But strict SELinux (or PaX, grSecurity) disallows PF_W with PF_X. - set_te32(&elfout.phdr[0].p_filesz, sz_pack2 + lsize); - elfout.phdr[0].p_memsz = elfout.phdr[0].p_filesz; + set_te32(&elfout.phdr[C_TEXT].p_filesz, sz_pack2 + lsize); + elfout.phdr[C_TEXT].p_memsz = elfout.phdr[C_TEXT].p_filesz; super::pack4(fo, ft); // write PackHeader and overlay_offset fo->seek(0, SEEK_SET); @@ -4275,7 +4289,7 @@ void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft) fo->rewrite(&linfo, sizeof(linfo)); if (jni_onload_va) { - unsigned tmp = sz_pack2 + get_te32(&elfout.phdr[0].p_vaddr); + unsigned tmp = sz_pack2 + get_te32(&elfout.phdr[C_TEXT].p_vaddr); tmp |= (Elf32_Ehdr::EM_ARM==e_machine); // THUMB mode set_te32(&tmp, tmp); fo->seek(ptr_udiff(&jni_onload_sym->st_value, file_image), SEEK_SET); @@ -4283,8 +4297,8 @@ void PackLinuxElf32::pack4(OutputFile *fo, Filter &ft) } } else { - unsigned const reloc = get_te32(&elfout.phdr[0].p_vaddr); - Elf32_Phdr *phdr = &elfout.phdr[2]; + unsigned const reloc = get_te32(&elfout.phdr[C_TEXT].p_vaddr); + Elf32_Phdr *phdr = &elfout.phdr[C_NOTE]; unsigned const o_phnum = get_te16(&elfout.ehdr.e_phnum); for (unsigned j = 2; j < o_phnum; ++j, ++phdr) { if (PT_NOTE32 == get_te32(&phdr->p_type)) { @@ -4325,8 +4339,8 @@ void PackLinuxElf64::pack4(OutputFile *fo, Filter &ft) // Cannot pre-round .p_memsz. If .p_filesz < .p_memsz, then kernel // tries to make .bss, which requires PF_W. // But strict SELinux (or PaX, grSecurity) disallows PF_W with PF_X. - set_te64(&elfout.phdr[0].p_filesz, sz_pack2 + lsize); - elfout.phdr[0].p_memsz = elfout.phdr[0].p_filesz; + set_te64(&elfout.phdr[C_TEXT].p_filesz, sz_pack2 + lsize); + elfout.phdr[C_TEXT].p_memsz = elfout.phdr[C_TEXT].p_filesz; super::pack4(fo, ft); // write PackHeader and overlay_offset fo->seek(0, SEEK_SET); @@ -4336,12 +4350,12 @@ void PackLinuxElf64::pack4(OutputFile *fo, Filter &ft) fo->rewrite(&linfo, sizeof(linfo)); } else { - if (PT_NOTE64 == get_te64(&elfout.phdr[2].p_type)) { - upx_uint64_t const reloc = get_te64(&elfout.phdr[0].p_vaddr); - set_te64( &elfout.phdr[2].p_vaddr, - reloc + get_te64(&elfout.phdr[2].p_vaddr)); - set_te64( &elfout.phdr[2].p_paddr, - reloc + get_te64(&elfout.phdr[2].p_paddr)); + if (PT_NOTE64 == get_te64(&elfout.phdr[C_NOTE].p_type)) { + upx_uint64_t const reloc = get_te64(&elfout.phdr[C_TEXT].p_vaddr); + set_te64( &elfout.phdr[C_NOTE].p_vaddr, + reloc + get_te64(&elfout.phdr[C_NOTE].p_vaddr)); + set_te64( &elfout.phdr[C_NOTE].p_paddr, + reloc + get_te64(&elfout.phdr[C_NOTE].p_paddr)); fo->rewrite(&elfout, sz_elf_hdrs); // FIXME fo->rewrite(&elfnote, sizeof(elfnote)); } diff --git a/src/stub/amd64-linux.elf-entry.h b/src/stub/amd64-linux.elf-entry.h index 0f6a95ac..25ff5947 100644 --- a/src/stub/amd64-linux.elf-entry.h +++ b/src/stub/amd64-linux.elf-entry.h @@ -1,5 +1,5 @@ /* amd64-linux.elf-entry.h - created from amd64-linux.elf-entry.bin, 9547 (0x254b) bytes + created from amd64-linux.elf-entry.bin, 9485 (0x250d) bytes This file is part of the UPX executable compressor. @@ -31,14 +31,14 @@ */ -#define STUB_AMD64_LINUX_ELF_ENTRY_SIZE 9547 -#define STUB_AMD64_LINUX_ELF_ENTRY_ADLER32 0x2d4db3d3 -#define STUB_AMD64_LINUX_ELF_ENTRY_CRC32 0x3ab292c4 +#define STUB_AMD64_LINUX_ELF_ENTRY_SIZE 9485 +#define STUB_AMD64_LINUX_ELF_ENTRY_ADLER32 0x42ca99ef +#define STUB_AMD64_LINUX_ELF_ENTRY_CRC32 0x44f5e317 -unsigned char stub_amd64_linux_elf_entry[9547] = { +unsigned char stub_amd64_linux_elf_entry[9485] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,224, 24, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,168, 24, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, /* 0x0040 */ 80, 82,232, 0, 0, 0, 0, 85, 83, 81, 82, 72, 1,254, 86, 72, /* 0x0050 */ 137,254, 72,137,215, 49,219, 49,201, 72,131,205,255,232, 80, 0, @@ -411,226 +411,222 @@ unsigned char stub_amd64_linux_elf_entry[9547] = { /* 0x1740 */ 105,108,101,100, 46, 10, 0,106, 14, 90, 87, 94,235, 1, 94,106, /* 0x1750 */ 2, 95,106, 1, 88, 15, 5,106,127, 95,106, 60, 88, 15, 5, 95, /* 0x1760 */ 41,246,106, 2, 88, 15, 5,133,192,120,220, 80, 72,141,183, 15, -/* 0x1770 */ 0, 0, 0,173,131,224,254, 65,137,198, 86, 91,173,146, 72, 1, -/* 0x1780 */ 218,173, 65,149,173, 73, 1,245, 72,141,141,245,255,255,255, 68, -/* 0x1790 */ 139, 57, 76, 41,249, 69, 41,247, 95, 72, 41,202, 82, 80, 73, 41, -/* 0x17a0 */ 205, 87, 81, 77, 41,201, 65,131,200,255,106, 34, 65, 90, 82, 94, -/* 0x17b0 */ 106, 3, 90, 41,255,106, 9, 88, 15, 5, 73, 1,198, 72,137, 68, -/* 0x17c0 */ 36, 16, 72,151, 68,139, 68, 36, 8,106, 18, 65, 90, 76,137,238, -/* 0x17d0 */ 106, 9, 88, 15, 5, 72,139, 84, 36, 24, 89, 81, 72, 1,194, 72, -/* 0x17e0 */ 41,200, 73,137,196, 72, 1,232, 80, 72, 37, 0,240,255,255, 80, -/* 0x17f0 */ 72, 41,194, 82, 72,137,222,173, 80, 72,137,225, 74,141, 20, 35, -/* 0x1800 */ 73,137,213,173, 80,173, 65,144, 72,137,247, 94,255,213, 89, 94, -/* 0x1810 */ 95, 93,106, 5, 90,106, 10, 88, 15, 5, 65,255,229, 93,232, 60, -/* 0x1820 */ 255,255,255, 47,112,114,111, 99, 47,115,101,108,102, 47,101,120, -/* 0x1830 */ 101, 0, 0, 0, 0, 0,102,105,108,101, 32,102,111,114,109, 97, -/* 0x1840 */ 116, 32,101,108,102, 54, 52, 45,120, 56, 54, 45, 54, 52, 10, 10, -/* 0x1850 */ 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97, -/* 0x1860 */ 109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, -/* 0x1870 */ 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, -/* 0x1880 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, -/* 0x1890 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111, -/* 0x18a0 */ 102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, -/* 0x18b0 */ 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, -/* 0x18c0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48,102, 32, 32, 48, 48, 48, 48, -/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x18e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x18f0 */ 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, -/* 0x1900 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, -/* 0x1910 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, -/* 0x1920 */ 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, -/* 0x1930 */ 48, 48, 54, 54, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1940 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1950 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1960 */ 52,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, -/* 0x1970 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, -/* 0x1980 */ 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, -/* 0x1990 */ 48, 48, 48, 48, 48, 98, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x19c0 */ 48, 48, 48, 98, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, -/* 0x19d0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, -/* 0x19e0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, -/* 0x19f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 97, -/* 0x1a00 */ 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a10 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a20 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 54,102, 32, -/* 0x1a30 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, -/* 0x1a40 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, -/* 0x1a50 */ 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, -/* 0x1a60 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 51, 32, 32, 48, 48, 48, -/* 0x1a70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x1a80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1a90 */ 32, 48, 48, 48, 48, 48, 50, 49, 48, 32, 32, 50, 42, 42, 48, 32, -/* 0x1aa0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, -/* 0x1ab0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, -/* 0x1ac0 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, -/* 0x1ad0 */ 48, 48, 48, 54, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ae0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x1b00 */ 50, 97, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x1b10 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, -/* 0x1b20 */ 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x1b30 */ 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102, 55, 32, -/* 0x1b40 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b50 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1b60 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 48, 55, 32, 32, 50, -/* 0x1b70 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, -/* 0x1b80 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, -/* 0x1b90 */ 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, -/* 0x1ba0 */ 102, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1bb0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 99,102,101, -/* 0x1bd0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1be0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, -/* 0x1bf0 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, -/* 0x1c00 */ 48, 48, 48, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c10 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, -/* 0x1c30 */ 54,102, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x1c40 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, -/* 0x1c50 */ 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, -/* 0x1c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1c70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x1c80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x1c90 */ 48, 48, 49, 55, 48,100, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x1ca0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, -/* 0x1cb0 */ 10, 32, 49, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, -/* 0x1cc0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 51, 97, 32, 32, 48, 48, 48, -/* 0x1cd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, -/* 0x1ce0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1cf0 */ 32, 48, 48, 48, 48, 49, 55, 48,100, 32, 32, 50, 42, 42, 48, 32, -/* 0x1d00 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, -/* 0x1d10 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, -/* 0x1d20 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, -/* 0x1d30 */ 48, 48, 48,101,102, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1d40 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x1d50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, -/* 0x1d60 */ 55, 52, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x1d70 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, -/* 0x1d80 */ 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, -/* 0x1d90 */ 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1da0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, -/* 0x1db0 */ 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1dc0 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, -/* 0x1dd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1de0 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, -/* 0x1df0 */ 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e00 */ 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, -/* 0x1e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1e20 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, -/* 0x1e30 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e40 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, -/* 0x1e50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x1e60 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, -/* 0x1e70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, -/* 0x1e80 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e90 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, -/* 0x1ea0 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x1eb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, -/* 0x1ec0 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ed0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, -/* 0x1ee0 */ 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ef0 */ 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x1f10 */ 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, -/* 0x1f30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1f40 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, -/* 0x1f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, -/* 0x1f60 */ 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f70 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, -/* 0x1f80 */ 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, -/* 0x1fa0 */ 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1fb0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, -/* 0x1fc0 */ 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, -/* 0x1fe0 */ 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ff0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, -/* 0x2000 */ 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x2010 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, -/* 0x2020 */ 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2030 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, -/* 0x2040 */ 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2050 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, -/* 0x2060 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2070 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, -/* 0x2080 */ 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2090 */ 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, -/* 0x20a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, -/* 0x20b0 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, -/* 0x20c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95, 66, 73, 78, -/* 0x20d0 */ 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x20e0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, -/* 0x20f0 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, -/* 0x2100 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, -/* 0x2110 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, -/* 0x2120 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 51, -/* 0x2130 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, -/* 0x2140 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, -/* 0x2150 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,100, 50, 10, 10, -/* 0x2160 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, -/* 0x2170 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, -/* 0x2180 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2190 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x21a0 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x21b0 */ 48, 48, 48, 48, 48, 48, 48, 97,102, 32, 82, 95, 88, 56, 54, 95, -/* 0x21c0 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, -/* 0x21d0 */ 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x21e0 */ 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x21f0 */ 48, 48, 48, 48, 48, 48, 53, 99, 32, 82, 95, 88, 56, 54, 95, 54, -/* 0x2200 */ 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, -/* 0x2210 */ 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102,102,102, -/* 0x2220 */ 102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, -/* 0x2230 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, -/* 0x2240 */ 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, -/* 0x2250 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, -/* 0x2260 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, -/* 0x2270 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, -/* 0x2280 */ 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, -/* 0x2290 */ 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,120, 48, -/* 0x22a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, -/* 0x22b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 99, -/* 0x22c0 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, -/* 0x22d0 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 43, 48,120,102,102, -/* 0x22e0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, 10, -/* 0x22f0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, -/* 0x2300 */ 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, -/* 0x2310 */ 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2320 */ 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2330 */ 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x2340 */ 48, 48, 48, 48, 48, 48, 48, 56, 98, 32, 82, 95, 88, 56, 54, 95, -/* 0x2350 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, -/* 0x2360 */ 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2370 */ 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2380 */ 48, 48, 48, 48, 48, 48, 53, 51, 32, 82, 95, 88, 56, 54, 95, 54, -/* 0x2390 */ 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, -/* 0x23a0 */ 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102,102,102, -/* 0x23b0 */ 102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, -/* 0x23c0 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, -/* 0x23d0 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, -/* 0x23e0 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, -/* 0x23f0 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2400 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2410 */ 48, 48, 48, 48, 48, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, -/* 0x2420 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x2430 */ 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2440 */ 48, 48, 48, 48, 49, 50, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, -/* 0x2450 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, -/* 0x2460 */ 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, -/* 0x2470 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, -/* 0x2480 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, -/* 0x2490 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x24a0 */ 48, 48, 49, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, -/* 0x24b0 */ 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, -/* 0x24c0 */ 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x24d0 */ 48, 51, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, -/* 0x24e0 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, -/* 0x24f0 */ 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, -/* 0x2500 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, -/* 0x2510 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, -/* 0x2520 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,101, 98, -/* 0x2530 */ 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 32, 32, 32, 32, -/* 0x2540 */ 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10 +/* 0x1770 */ 0, 0, 0,173,131,224,254, 65,137,198, 86, 91,139, 22, 72,141, +/* 0x1780 */ 141,245,255,255,255, 68,139, 57, 76, 41,249, 69, 41,247, 73, 1, +/* 0x1790 */ 206, 95, 82, 80, 87, 81, 77, 41,201, 65,131,200,255,106, 34, 65, +/* 0x17a0 */ 90, 82, 94,106, 3, 90, 41,255,106, 9, 88, 15, 5, 72,137, 68, +/* 0x17b0 */ 36, 16, 80, 90, 83, 94,173, 80, 72,137,225, 73,137,213,173, 80, +/* 0x17c0 */ 173, 65,144, 72,137,247, 94,255,213, 89, 72,139,116, 36, 24, 72, +/* 0x17d0 */ 139,124, 36, 16,106, 5, 90,106, 10, 88, 15, 5, 65,255,229, 93, +/* 0x17e0 */ 232,122,255,255,255, 47,112,114,111, 99, 47,115,101,108,102, 47, +/* 0x17f0 */ 101,120,101, 0, 0, 0, 0, 0,102,105,108,101, 32,102,111,114, +/* 0x1800 */ 109, 97,116, 32,101,108,102, 54, 52, 45,120, 56, 54, 45, 54, 52, +/* 0x1810 */ 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, +/* 0x1820 */ 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105, +/* 0x1830 */ 122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, +/* 0x1840 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, +/* 0x1850 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, +/* 0x1860 */ 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103, +/* 0x1870 */ 115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, +/* 0x1880 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48,102, 32, 32, 48, 48, +/* 0x1890 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x18a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x18b0 */ 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, +/* 0x18c0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, +/* 0x18d0 */ 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, +/* 0x18e0 */ 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, +/* 0x18f0 */ 48, 48, 48, 48, 54, 54, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1900 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1910 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x1920 */ 48, 48, 52,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, +/* 0x1930 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, +/* 0x1940 */ 32, 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x1950 */ 32, 48, 48, 48, 48, 48, 48, 98, 97, 32, 32, 48, 48, 48, 48, 48, +/* 0x1960 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x1970 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1980 */ 48, 48, 48, 48, 48, 98, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67, +/* 0x1990 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, +/* 0x19a0 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, +/* 0x19b0 */ 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, +/* 0x19c0 */ 48, 97, 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19d0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x19e0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 54, +/* 0x19f0 */ 102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, +/* 0x1a00 */ 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, +/* 0x1a10 */ 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, +/* 0x1a20 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 51, 32, 32, 48, +/* 0x1a30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1a40 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a50 */ 48, 32, 32, 48, 48, 48, 48, 48, 50, 49, 48, 32, 32, 50, 42, 42, +/* 0x1a60 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, +/* 0x1a70 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, +/* 0x1a80 */ 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, +/* 0x1a90 */ 48, 48, 48, 48, 48, 54, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1aa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1ab0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x1ac0 */ 48, 48, 50, 97, 51, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x1ad0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, +/* 0x1ae0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, +/* 0x1af0 */ 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102, +/* 0x1b00 */ 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b10 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b20 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 48, 55, 32, +/* 0x1b30 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x1b40 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, +/* 0x1b50 */ 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x1b60 */ 48, 57,102, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1b80 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 99, +/* 0x1b90 */ 102,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x1ba0 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, +/* 0x1bb0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, +/* 0x1bc0 */ 48, 48, 48, 48, 48, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1be0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x1bf0 */ 48, 49, 54,102, 53, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x1c00 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, +/* 0x1c10 */ 32, 32, 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, +/* 0x1c20 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x1c30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1c40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x1c50 */ 48, 48, 48, 48, 49, 55, 48,100, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x1c60 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, +/* 0x1c70 */ 76, 89, 10, 32, 49, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, +/* 0x1c80 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 51, 97, 32, 32, 48, +/* 0x1c90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1ca0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cb0 */ 48, 32, 32, 48, 48, 48, 48, 49, 55, 48,100, 32, 32, 50, 42, 42, +/* 0x1cc0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, +/* 0x1cd0 */ 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, +/* 0x1ce0 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, +/* 0x1cf0 */ 48, 48, 48, 48, 48, 98, 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1d10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x1d20 */ 48, 49, 55, 52, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x1d30 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, +/* 0x1d40 */ 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, +/* 0x1d50 */ 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d60 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, +/* 0x1d70 */ 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1d80 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, +/* 0x1d90 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1da0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x1db0 */ 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1dc0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, +/* 0x1dd0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1de0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, +/* 0x1df0 */ 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e00 */ 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, +/* 0x1e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, +/* 0x1e20 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, +/* 0x1e30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1e40 */ 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, +/* 0x1e60 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, +/* 0x1e70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, +/* 0x1e80 */ 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e90 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, +/* 0x1ea0 */ 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1eb0 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, +/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, +/* 0x1ed0 */ 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, +/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, +/* 0x1ef0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f00 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, +/* 0x1f10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f20 */ 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f30 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x1f40 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, +/* 0x1f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, +/* 0x1f60 */ 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f70 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x1f80 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, +/* 0x1f90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, +/* 0x1fa0 */ 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1fb0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x1fc0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, +/* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, +/* 0x1fe0 */ 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ff0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, +/* 0x2000 */ 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, +/* 0x2010 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, +/* 0x2020 */ 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2030 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x2040 */ 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2050 */ 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, +/* 0x2060 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, +/* 0x2070 */ 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, +/* 0x2080 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 79, 95, 66, +/* 0x2090 */ 73, 78, 70, 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x20a0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, +/* 0x20b0 */ 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x20c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, +/* 0x20d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, +/* 0x20e0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x20f0 */ 48, 51, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, +/* 0x2100 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120, +/* 0x2110 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 52, +/* 0x2120 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, +/* 0x2130 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, +/* 0x2140 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2150 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2160 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, +/* 0x2170 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 97,102, 32, 82, 95, 88, 56, +/* 0x2180 */ 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, +/* 0x2190 */ 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, +/* 0x21a0 */ 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, +/* 0x21b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 53, 99, 32, 82, 95, 88, 56, 54, +/* 0x21c0 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, +/* 0x21d0 */ 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102, +/* 0x21e0 */ 102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, +/* 0x21f0 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, +/* 0x2200 */ 32, 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, +/* 0x2210 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, +/* 0x2220 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, +/* 0x2230 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2240 */ 48, 57, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, +/* 0x2250 */ 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, 48, +/* 0x2260 */ 120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, +/* 0x2270 */ 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2280 */ 53, 99, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, +/* 0x2290 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 43, 48,120, +/* 0x22a0 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, +/* 0x22b0 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, +/* 0x22c0 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, +/* 0x22d0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x22e0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x22f0 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, +/* 0x2300 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 98, 32, 82, 95, 88, 56, +/* 0x2310 */ 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, +/* 0x2320 */ 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, +/* 0x2330 */ 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, +/* 0x2340 */ 48, 48, 48, 48, 48, 48, 48, 48, 53, 51, 32, 82, 95, 88, 56, 54, +/* 0x2350 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, +/* 0x2360 */ 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102, +/* 0x2370 */ 102,102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, +/* 0x2380 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, +/* 0x2390 */ 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, +/* 0x23a0 */ 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x23b0 */ 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x23c0 */ 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x23d0 */ 48, 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 88, 56, 54, 95, 54, +/* 0x23e0 */ 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, +/* 0x23f0 */ 68, 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2400 */ 48, 48, 48, 48, 48, 48, 49, 50, 10, 10, 82, 69, 76, 79, 67, 65, +/* 0x2410 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, +/* 0x2420 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, +/* 0x2430 */ 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, +/* 0x2440 */ 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2450 */ 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2460 */ 48, 48, 48, 48, 49, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, +/* 0x2470 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, +/* 0x2480 */ 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2490 */ 48, 48, 48, 51, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, +/* 0x24a0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, +/* 0x24b0 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x24c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, +/* 0x24d0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, +/* 0x24e0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x24f0 */ 97,100, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 51, 50, 32, 32, +/* 0x2500 */ 32, 32, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10 }; diff --git a/src/stub/amd64-linux.elf-fold.h b/src/stub/amd64-linux.elf-fold.h index 4e55a408..88b0d08a 100644 --- a/src/stub/amd64-linux.elf-fold.h +++ b/src/stub/amd64-linux.elf-fold.h @@ -1,5 +1,5 @@ /* amd64-linux.elf-fold.h - created from amd64-linux.elf-fold.bin, 2251 (0x8cb) bytes + created from amd64-linux.elf-fold.bin, 2322 (0x912) bytes This file is part of the UPX executable compressor. @@ -31,150 +31,155 @@ */ -#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 2251 -#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0x50e34b76 -#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0xba67b7de +#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 2322 +#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0xd23464e1 +#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0x725dafa1 -unsigned char stub_amd64_linux_elf_fold[2251] = { +unsigned char stub_amd64_linux_elf_fold[2322] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0, 62, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, -/* 0x0060 */ 203, 8, 0, 0, 0, 0, 0, 0,204, 8, 0, 0, 0, 0, 0, 0, +/* 0x0060 */ 18, 9, 0, 0, 0, 0, 0, 0, 20, 9, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -/* 0x0080 */ 203, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0080 */ 18, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, -/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 74, 0, 0, -/* 0x00c0 */ 0,131,249, 73,117, 68, 83, 87, 72,141, 76, 55,253, 94, 86, 91, -/* 0x00d0 */ 235, 47, 72, 57,206,115, 50, 86, 94,172, 60,128,114, 10, 60,143, -/* 0x00e0 */ 119, 6,128,126,254, 15,116, 6, 44,232, 60, 1,119,228, 72, 57, -/* 0x00f0 */ 206,115, 22, 86,173, 40,208,117,223, 95, 15,200, 41,248, 1,216, -/* 0x0100 */ 171, 72, 57,206,115, 3,172,235,223, 91,195, 88, 65, 86, 65, 87, -/* 0x0110 */ 80, 72,137,230, 72,129,236, 0, 16, 0, 0, 84, 95,106, 10, 89, -/* 0x0120 */ 243, 72,165, 72,131, 62, 0, 72,165,117,248, 73,137,254, 72,171, -/* 0x0130 */ 72,131, 62, 0, 72,165,117,248, 73,137,252, 72,131, 62, 0, 72, -/* 0x0140 */ 165, 72,165,117,246, 73,137,255, 73,137,245, 77, 41,252,186,255, -/* 0x0150 */ 15, 0, 0, 87, 94, 72,141,123,237,106, 89, 88, 15, 5,133,192, -/* 0x0160 */ 121, 5, 87, 94,106, 15, 88,145,253, 73,141,125,255,176, 0,170, -/* 0x0170 */ 72,141,116, 14,255,243,164, 72,131,239, 3,199, 7, 32, 32, 32, -/* 0x0180 */ 61, 73,137, 62, 72,131,231,248, 76,137,249, 72, 41,225,137,200, -/* 0x0190 */ 49,248,131,240, 8,131,224, 8, 72, 41,199, 73,137,254, 72,131, -/* 0x01a0 */ 239, 8, 73,141,119,248, 72,193,233, 3,243, 72,165, 72,141,103, -/* 0x01b0 */ 8,252, 75,141, 12, 38,139, 67,252,131,224, 1, 72, 1,193, 65, -/* 0x01c0 */ 89, 94, 95, 88, 72,129,236, 0, 8, 0, 0, 72,137,226, 80, 73, -/* 0x01d0 */ 137,232,232,172, 5, 0, 0, 72,129,196, 8, 8, 0, 0, 72,137, -/* 0x01e0 */ 68, 36, 32, 91, 69, 41,201, 65,137,216,106, 2, 65, 90,106, 1, -/* 0x01f0 */ 90,190, 0, 16, 0, 0,106, 0, 95,106, 9, 88, 15, 5,137,223, -/* 0x0200 */ 106, 3, 88, 15, 5, 95, 94,106, 11, 88, 65,255,102,248,176, 9, -/* 0x0210 */ 73,137,202, 15,182,192, 15, 5, 72, 61, 0,240,255,255,114, 4, -/* 0x0220 */ 72,131,200,255,195,176, 60,235, 2,176, 12,235, 2,176, 3,235, -/* 0x0230 */ 2,176, 2,235, 2,176, 11,235, 2,176, 10,235, 2,176, 1,235, -/* 0x0240 */ 2,176, 0,235,206, 0, 0, 0, 81, 72, 57, 23, 76,139, 71, 8, -/* 0x0250 */ 72,141, 74,255,115, 10,191,127, 0, 0, 0,232,197,255,255,255, -/* 0x0260 */ 72,131,249,255,116, 17, 65, 15,182, 0, 72,255,201, 73,255,192, -/* 0x0270 */ 136, 6, 72,255,198,235,233, 72, 1, 87, 8, 72, 41, 23, 88,195, -/* 0x0280 */ 65, 85, 73,137,213, 65, 84, 73,137,204, 85, 72,137,253, 83, 72, -/* 0x0290 */ 137,243, 72,131,236, 40, 72,131, 62, 0, 15,132,230, 0, 0, 0, -/* 0x02a0 */ 72,141,116, 36, 16,186, 12, 0, 0, 0, 72,137,239,232,150,255, -/* 0x02b0 */ 255,255,139, 68, 36, 16,139,116, 36, 20,133,192,117, 21,129,254, -/* 0x02c0 */ 85, 80, 88, 33,117, 17, 72,131,125, 0, 0, 15,132,181, 0, 0, -/* 0x02d0 */ 0,235, 4,133,246,117, 10,191,127, 0, 0, 0,232, 68,255,255, -/* 0x02e0 */ 255, 57,198,119,242,137,194, 72, 59, 19,119,235, 57,198, 72,139, -/* 0x02f0 */ 67, 8,115,108, 72,137, 84, 36, 8, 72,139,125, 8, 72,141, 76, -/* 0x0300 */ 36, 8, 68,139, 68, 36, 24, 72,137,194, 65,255,213,133,192,117, -/* 0x0310 */ 198,139, 68, 36, 16, 72,139,116, 36, 8, 72, 57,198,117,184, 15, -/* 0x0320 */ 182, 76, 36, 25,132,201, 15,149,194, 49,192, 77,133,228, 15,149, -/* 0x0330 */ 192,133,194,116, 29, 72,129,254, 0, 2, 0, 0,119, 5, 72, 57, -/* 0x0340 */ 51,117, 15, 15,182, 84, 36, 26, 15,182,201, 72,139,123, 8, 65, -/* 0x0350 */ 255,212,139, 68, 36, 20, 72, 1, 69, 8, 72, 41, 69, 0,235, 13, -/* 0x0360 */ 137,242, 72,137,239, 72,137,198,232,219,254,255,255,139, 84, 36, -/* 0x0370 */ 16, 72,139, 3, 72, 1, 83, 8, 72, 41,208, 72,133,192, 72,137, -/* 0x0380 */ 3,233, 20,255,255,255, 72,131,196, 40, 91, 93, 65, 92, 65, 93, -/* 0x0390 */ 195, 72,133,255, 73,137,209,116, 54, 64,246,199, 1,117, 48, 72, -/* 0x03a0 */ 139, 15, 65,137,240, 76, 57,193,116, 18, 72,131,249, 1, 15,148, -/* 0x03b0 */ 194, 49,192,133,246, 15,149,192,133,194,116, 8, 76,137, 7, 76, -/* 0x03c0 */ 137, 79, 8,195, 72,133,201,116, 6, 72,131,199, 16,235,208,195, -/* 0x03d0 */ 65, 87,184, 0, 0, 0, 0, 73,137,255, 65, 86, 65, 85, 73,137, -/* 0x03e0 */ 253, 65, 84, 85, 83, 72,131,236,104, 76, 3,111, 32,102,131,127, -/* 0x03f0 */ 16, 3, 72,137, 76, 36, 48,185, 16, 0, 0, 0, 76,137, 68, 36, -/* 0x0400 */ 40, 72,137,116, 36, 64,137, 84, 36, 60, 76,137, 76, 36, 32, 15, -/* 0x0410 */ 183, 87, 56, 15, 68,200, 72,139,132, 36,160, 0, 0, 0, 76,137, -/* 0x0420 */ 238, 72,131,205,255, 49,219, 49,255,131,193, 34, 76,139, 0,255, -/* 0x0430 */ 202,120, 33,131, 62, 1,117, 22, 72,139, 70, 16, 72, 57,232, 72, -/* 0x0440 */ 15, 66,232, 72, 3, 70, 40, 72, 57,195, 72, 15, 66,216, 72,131, -/* 0x0450 */ 198, 56,235,219, 72,129,229, 0,240,255,255, 72, 41,235, 72,129, -/* 0x0460 */ 195,255, 15, 0, 0, 72,129,227, 0,240,255,255,246,193, 16,116, -/* 0x0470 */ 5, 72,137,239,235, 19, 72,133,237,117, 14,137,200, 76,137,199, -/* 0x0480 */ 131,200, 16, 77,133,192, 15, 69,200, 69, 49,201, 65,131,200,255, -/* 0x0490 */ 49,210, 72,137,222,232,116,253,255,255, 72,137,199, 72,141, 4, -/* 0x04a0 */ 3,199, 68, 36, 28, 0, 0, 0, 0, 73,137,254, 73, 41,238,102, -/* 0x04b0 */ 65,131,127, 56, 0, 72,137, 68, 36, 72, 15,132,162, 2, 0, 0, -/* 0x04c0 */ 72,131,124, 36, 64, 0,116, 34, 65,131,125, 0, 6,117, 27, 73, -/* 0x04d0 */ 139, 85, 16, 72,139,124, 36, 48,190, 3, 0, 0, 0, 76, 1,242, -/* 0x04e0 */ 232,172,254,255,255,233, 97, 2, 0, 0, 65,131,125, 0, 1, 15, -/* 0x04f0 */ 133, 86, 2, 0, 0, 72,131,124, 36, 64, 0,116, 73, 73,131,125, -/* 0x0500 */ 8, 0,117, 66, 73,139, 85, 16, 72,139,124, 36, 48,190, 3, 0, -/* 0x0510 */ 0, 0, 76, 1,242, 73, 3, 87, 32,232,115,254,255,255, 73, 15, -/* 0x0520 */ 183, 87, 56, 72,139,124, 36, 48,190, 5, 0, 0, 0,232, 95,254, -/* 0x0530 */ 255,255, 73, 15,183, 87, 54, 72,139,124, 36, 48,190, 4, 0, 0, -/* 0x0540 */ 0,232, 75,254,255,255, 73,139, 69, 16, 65,139, 77, 4, 65,131, -/* 0x0550 */ 200,255, 73,139, 85, 32,199, 68, 36, 24, 64, 98, 81,115, 76, 1, -/* 0x0560 */ 240,131,225, 7, 73,137,196, 72,137, 68, 36, 88, 73,139, 69, 40, -/* 0x0570 */ 76,137,229,193,225, 2,211,108, 36, 24,129,229,255, 15, 0, 0, -/* 0x0580 */ 131,100, 36, 24, 7, 72,137, 84, 36, 80, 76, 1,224, 72, 1,234, -/* 0x0590 */ 73, 41,236, 72,137, 68, 36, 8,185, 50, 0, 0, 0, 73,139, 69, -/* 0x05a0 */ 8, 72,137, 84, 36, 16, 72, 41,232, 72,131,124, 36, 64, 0,117, -/* 0x05b0 */ 7, 68,139, 68, 36, 60,177, 18,139, 84, 36, 24, 72,139,116, 36, -/* 0x05c0 */ 16, 73,137,193, 76,137,231,131,202, 2, 72,131,124, 36, 64, 0, -/* 0x05d0 */ 15, 68, 84, 36, 24,232, 52,252,255,255, 73, 57,196, 15,133, 37, -/* 0x05e0 */ 1, 0, 0, 72,131,124, 36, 64, 0,116, 25, 72,139, 76, 36, 32, -/* 0x05f0 */ 72,139, 84, 36, 40, 72,141,116, 36, 80, 72,139,124, 36, 64,232, -/* 0x0600 */ 124,252,255,255, 72,139,108, 36, 16, 72,247,221,129,229,255, 15, -/* 0x0610 */ 0, 0,246, 68, 36, 24, 2,116, 17, 72,139, 68, 36, 16, 72,137, -/* 0x0620 */ 233,252, 73,141, 60, 4, 49,192,243,170, 72,131,124, 36, 64, 0, -/* 0x0630 */ 15,132,220, 0, 0, 0,199, 68, 36, 4, 0, 0, 0, 0, 72,184, -/* 0x0640 */ 255,255,255,255, 1, 0, 0, 0, 73, 35, 69, 0, 72,186, 1, 0, -/* 0x0650 */ 0, 0, 1, 0, 0, 0, 72, 57,208, 15,133,148, 0, 0, 0, 73, -/* 0x0660 */ 139, 85, 40, 73,139, 77, 16, 73, 59, 85, 32, 72,141, 4, 10, 74, -/* 0x0670 */ 141, 28, 48,117, 14,137,216,247,216, 37,255, 15, 0, 0,131,248, -/* 0x0680 */ 3,119, 57, 73,131,125, 8, 0, 74,141, 92, 49, 12,116, 45, 69, -/* 0x0690 */ 49,201, 65,131,200,255, 49,255,185, 34, 0, 0, 0,186, 3, 0, -/* 0x06a0 */ 0, 0,190, 0, 16, 0, 0,199, 68, 36, 4, 1, 0, 0, 0,232, -/* 0x06b0 */ 90,251,255,255, 72,133,192, 72,137,195,116, 55,131,124, 36, 4, -/* 0x06c0 */ 0,199, 3, 15, 5, 90,195,116, 18,186, 5, 0, 0, 0,190, 4, -/* 0x06d0 */ 0, 0, 0, 72,137,223,232, 94,251,255,255, 72,133,219,116, 19, -/* 0x06e0 */ 72,139,124, 36, 48, 72,137,218, 49,246, 72,131,231,254,232,158, -/* 0x06f0 */ 252,255,255,139, 84, 36, 24, 72,139,116, 36, 16, 76,137,231,232, -/* 0x0700 */ 53,251,255,255,133,192,116, 10,191,127, 0, 0, 0,232, 19,251, -/* 0x0710 */ 255,255, 72,139, 68, 36, 16, 72, 1,232, 73, 1,196, 76, 59,100, -/* 0x0720 */ 36, 8,115, 39, 76, 41,100, 36, 8,139, 84, 36, 24, 69, 49,201, -/* 0x0730 */ 72,139,116, 36, 8, 65,131,200,255,185, 50, 0, 0, 0, 76,137, -/* 0x0740 */ 231,232,200,250,255,255, 73, 57,196,117,189,255, 68, 36, 28, 65, -/* 0x0750 */ 15,183, 71, 56, 73,131,197, 56, 57, 68, 36, 28, 15,140, 94,253, -/* 0x0760 */ 255,255, 72,139,132, 36,160, 0, 0, 0, 76,137, 48, 77, 3,119, -/* 0x0770 */ 24, 72,131,196,104, 91, 93, 65, 92, 65, 93, 76,137,240, 65, 94, -/* 0x0780 */ 65, 95,195, 65, 87, 65, 86, 73,137,206, 49,201, 65, 85, 65, 84, -/* 0x0790 */ 77,137,204, 85, 72,137,213, 76,141,109, 64, 83, 76,137,195, 72, -/* 0x07a0 */ 131,236, 72,139, 7, 72,137,124, 36, 24, 72,137,124, 36, 40, 76, -/* 0x07b0 */ 141,188, 36,128, 0, 0, 0, 72,137,116, 36, 32, 72,141,116, 36, -/* 0x07c0 */ 48, 72,137, 84, 36, 56, 76,137,194, 72,137, 68, 36, 48,139, 71, -/* 0x07d0 */ 4, 72,141,124, 36, 16, 72,131,192, 12, 72,137, 68, 36, 16,232, -/* 0x07e0 */ 156,250,255,255, 65, 83, 77,137,225, 49,210, 73,137,216, 76,137, -/* 0x07f0 */ 241, 72,137,239, 72,141,116, 36, 40, 65, 87,232,208,251,255,255, -/* 0x0800 */ 190, 9, 0, 0, 0, 72,137,194, 76,137,247, 73,137,196,232,126, -/* 0x0810 */ 251,255,255, 65, 89, 65, 90,102,131,125, 56, 0,199, 68, 36, 12, -/* 0x0820 */ 0, 0, 0, 0, 15,132,143, 0, 0, 0, 65,131,125, 0, 3,117, -/* 0x0830 */ 114, 73,139, 63, 73, 3,125, 16, 49,210, 49,246,232,240,249,255, -/* 0x0840 */ 255,133,192,137,195,120, 23,186, 0, 4, 0, 0, 72,137,238,137, -/* 0x0850 */ 199,232,235,249,255,255, 72, 61, 0, 4, 0, 0,116, 10,191,127, -/* 0x0860 */ 0, 0, 0,232,189,249,255,255, 73,199, 7, 0, 0, 0, 0, 65, -/* 0x0870 */ 80, 69, 49,201, 69, 49,192, 49,201, 65, 87,137,218, 49,246, 72, -/* 0x0880 */ 137,239,232, 73,251,255,255, 73,139, 23,190, 7, 0, 0, 0, 76, -/* 0x0890 */ 137,247, 73,137,196,232,247,250,255,255,137,223,232,140,249,255, -/* 0x08a0 */ 255, 94, 95,255, 68, 36, 12, 15,183, 69, 56, 73,131,197, 56, 57, -/* 0x08b0 */ 68, 36, 12, 15,130,113,255,255,255, 72,131,196, 72, 76,137,224, -/* 0x08c0 */ 91, 93, 65, 92, 65, 93, 65, 94, 65, 95,195 +/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,204,232, 74, 0, +/* 0x00c0 */ 0, 0,131,249, 73,117, 68, 83, 87, 72,141, 76, 55,253, 94, 86, +/* 0x00d0 */ 91,235, 47, 72, 57,206,115, 50, 86, 94,172, 60,128,114, 10, 60, +/* 0x00e0 */ 143,119, 6,128,126,254, 15,116, 6, 44,232, 60, 1,119,228, 72, +/* 0x00f0 */ 57,206,115, 22, 86,173, 40,208,117,223, 95, 15,200, 41,248, 1, +/* 0x0100 */ 216,171, 72, 57,206,115, 3,172,235,223, 91,195, 88, 65, 86, 65, +/* 0x0110 */ 87, 80, 72,137,230, 72,129,236, 0, 16, 0, 0, 84, 95,106, 10, +/* 0x0120 */ 89,243, 72,165, 72,131, 62, 0, 72,165,117,248, 73,137,254, 72, +/* 0x0130 */ 171, 72,131, 62, 0, 72,165,117,248, 73,137,252, 72,131, 62, 0, +/* 0x0140 */ 72,165, 72,165,117,246, 73,137,255, 73,137,245, 77, 41,252,186, +/* 0x0150 */ 255, 15, 0, 0, 87, 94, 72,141,123,237,106, 89, 88, 15, 5,133, +/* 0x0160 */ 192,121, 5, 87, 94,106, 15, 88,145,253, 73,141,125,255,176, 0, +/* 0x0170 */ 170, 72,141,116, 14,255,243,164, 72,131,239, 3,199, 7, 32, 32, +/* 0x0180 */ 32, 61, 73,137, 62, 72,131,231,248, 76,137,249, 72, 41,225,137, +/* 0x0190 */ 200, 49,248,131,240, 8,131,224, 8, 72, 41,199, 73,137,254, 72, +/* 0x01a0 */ 131,239, 8, 73,141,119,248, 72,193,233, 3,243, 72,165, 72,141, +/* 0x01b0 */ 103, 8,252, 75,141, 12, 38,139, 67,252,131,224, 1, 72, 1,193, +/* 0x01c0 */ 65, 89, 94, 95, 88, 72,129,236, 0, 8, 0, 0, 72,137,226, 80, +/* 0x01d0 */ 73,137,232,204,232,241, 5, 0, 0,204, 72,129,196, 8, 8, 0, +/* 0x01e0 */ 0, 72,137, 68, 36, 32, 91, 69, 41,201, 65,137,216,106, 2, 65, +/* 0x01f0 */ 90,106, 1, 90,190, 0, 16, 0, 0,106, 0, 95,106, 9, 88, 15, +/* 0x0200 */ 5,137,223,106, 3, 88, 15, 5, 95, 94,106, 11, 88, 65,255,102, +/* 0x0210 */ 248,204,176, 9, 73,137,202, 15,182,192, 15, 5, 72, 61, 0,240, +/* 0x0220 */ 255,255,114, 4, 72,131,200,255,195,176, 60,235, 2,176, 12,235, +/* 0x0230 */ 2,176, 3,235, 2,176, 2,235, 2,176, 11,235, 2,176, 10,235, +/* 0x0240 */ 2,176, 1,235, 2,176, 0,235,206, 0, 0, 0, 81, 72, 57, 23, +/* 0x0250 */ 76,139, 71, 8, 72,141, 74,255,115, 10,191,127, 0, 0, 0,232, +/* 0x0260 */ 197,255,255,255, 72,131,249,255,116, 17, 65, 15,182, 0, 72,255, +/* 0x0270 */ 201, 73,255,192,136, 6, 72,255,198,235,233, 72, 1, 87, 8, 72, +/* 0x0280 */ 41, 23, 88,195, 65, 85, 73,137,213, 65, 84, 73,137,204, 85, 72, +/* 0x0290 */ 137,253, 83, 72,137,243, 72,131,236, 40, 72,131, 62, 0, 15,132, +/* 0x02a0 */ 230, 0, 0, 0, 72,141,116, 36, 16,186, 12, 0, 0, 0, 72,137, +/* 0x02b0 */ 239,232,150,255,255,255,139, 68, 36, 16,139,116, 36, 20,133,192, +/* 0x02c0 */ 117, 21,129,254, 85, 80, 88, 33,117, 17, 72,131,125, 0, 0, 15, +/* 0x02d0 */ 132,181, 0, 0, 0,235, 4,133,246,117, 10,191,127, 0, 0, 0, +/* 0x02e0 */ 232, 68,255,255,255, 57,198,119,242,137,194, 72, 59, 19,119,235, +/* 0x02f0 */ 57,198, 72,139, 67, 8,115,108, 72,137, 84, 36, 8, 72,139,125, +/* 0x0300 */ 8, 72,141, 76, 36, 8, 68,139, 68, 36, 24, 72,137,194, 65,255, +/* 0x0310 */ 213,133,192,117,198,139, 68, 36, 16, 72,139,116, 36, 8, 72, 57, +/* 0x0320 */ 198,117,184, 15,182, 76, 36, 25,132,201, 15,149,194, 49,192, 77, +/* 0x0330 */ 133,228, 15,149,192,133,194,116, 29, 72,129,254, 0, 2, 0, 0, +/* 0x0340 */ 119, 5, 72, 57, 51,117, 15, 15,182, 84, 36, 26, 15,182,201, 72, +/* 0x0350 */ 139,123, 8, 65,255,212,139, 68, 36, 20, 72, 1, 69, 8, 72, 41, +/* 0x0360 */ 69, 0,235, 13,137,242, 72,137,239, 72,137,198,232,219,254,255, +/* 0x0370 */ 255,139, 84, 36, 16, 72,139, 3, 72, 1, 83, 8, 72, 41,208, 72, +/* 0x0380 */ 133,192, 72,137, 3,233, 20,255,255,255, 72,131,196, 40, 91, 93, +/* 0x0390 */ 65, 92, 65, 93,195, 72,133,255, 73,137,209,116, 54, 64,246,199, +/* 0x03a0 */ 1,117, 48, 72,139, 15, 65,137,240, 76, 57,193,116, 18, 72,131, +/* 0x03b0 */ 249, 1, 15,148,194, 49,192,133,246, 15,149,192,133,194,116, 8, +/* 0x03c0 */ 76,137, 7, 76,137, 79, 8,195, 72,133,201,116, 6, 72,131,199, +/* 0x03d0 */ 16,235,208,195, 65, 87, 73,137,255, 65, 86, 65, 85, 73,137,253, +/* 0x03e0 */ 65, 84, 85, 83, 72,131,236,104, 76, 3,111, 32, 72,133,246, 72, +/* 0x03f0 */ 137,116, 36, 64,137, 84, 36, 60, 72,137, 76, 36, 48, 76,137, 68, +/* 0x0400 */ 36, 40, 76,137, 76, 36, 32,116, 62, 72,139,132, 36,160, 0, 0, +/* 0x0410 */ 0, 69, 49,201, 65,131,200,255,185, 50, 0, 0, 0, 49,210, 72, +/* 0x0420 */ 139, 56, 72,139, 71, 32, 72, 1,248, 72, 43,120, 72, 72,139,112, +/* 0x0430 */ 40, 72,141, 4, 62, 72,137, 68, 36, 72,232,210,253,255,255, 73, +/* 0x0440 */ 137,198,233,172, 0, 0, 0,102,131,127, 16, 3,184, 0, 0, 0, +/* 0x0450 */ 0,185, 16, 0, 0, 0, 15,183, 87, 56, 76,137,238, 15, 68,200, +/* 0x0460 */ 72,139,132, 36,160, 0, 0, 0, 72,131,205,255, 49,219, 49,255, +/* 0x0470 */ 131,193, 34, 76,139, 0,255,202,120, 33,131, 62, 1,117, 22, 72, +/* 0x0480 */ 139, 70, 16, 72, 57,232, 72, 15, 66,232, 72, 3, 70, 40, 72, 57, +/* 0x0490 */ 195, 72, 15, 66,216, 72,131,198, 56,235,219, 72,129,229, 0,240, +/* 0x04a0 */ 255,255, 72, 41,235, 72,129,195,255, 15, 0, 0, 72,129,227, 0, +/* 0x04b0 */ 240,255,255,246,193, 16,116, 5, 72,137,239,235, 19, 72,133,237, +/* 0x04c0 */ 117, 14,137,200, 76,137,199,131,200, 16, 77,133,192, 15, 69,200, +/* 0x04d0 */ 69, 49,201, 65,131,200,255, 49,210, 72,137,222,232, 48,253,255, +/* 0x04e0 */ 255, 72,137,199, 72,141, 4, 3, 73,137,254, 72,137, 68, 36, 72, +/* 0x04f0 */ 73, 41,238,102, 65,131,127, 56, 0,199, 68, 36, 28, 0, 0, 0, +/* 0x0500 */ 0, 15,132,162, 2, 0, 0, 72,131,124, 36, 64, 0,116, 34, 65, +/* 0x0510 */ 131,125, 0, 6,117, 27, 73,139, 85, 16, 72,139,124, 36, 48,190, +/* 0x0520 */ 3, 0, 0, 0, 76, 1,242,232,105,254,255,255,233, 97, 2, 0, +/* 0x0530 */ 0, 65,131,125, 0, 1, 15,133, 86, 2, 0, 0, 72,131,124, 36, +/* 0x0540 */ 64, 0,116, 73, 73,131,125, 8, 0,117, 66, 73,139, 85, 16, 72, +/* 0x0550 */ 139,124, 36, 48,190, 3, 0, 0, 0, 76, 1,242, 73, 3, 87, 32, +/* 0x0560 */ 232, 48,254,255,255, 73, 15,183, 87, 56, 72,139,124, 36, 48,190, +/* 0x0570 */ 5, 0, 0, 0,232, 28,254,255,255, 73, 15,183, 87, 54, 72,139, +/* 0x0580 */ 124, 36, 48,190, 4, 0, 0, 0,232, 8,254,255,255, 73,139, 69, +/* 0x0590 */ 16, 65,139, 77, 4, 65,131,200,255, 73,139, 85, 32,199, 68, 36, +/* 0x05a0 */ 24, 64, 98, 81,115, 76, 1,240,131,225, 7, 73,137,196, 72,137, +/* 0x05b0 */ 68, 36, 88, 73,139, 69, 40, 76,137,229,193,225, 2,211,108, 36, +/* 0x05c0 */ 24,129,229,255, 15, 0, 0,131,100, 36, 24, 7, 72,137, 84, 36, +/* 0x05d0 */ 80, 76, 1,224, 72, 1,234, 73, 41,236, 72,137, 68, 36, 8,185, +/* 0x05e0 */ 50, 0, 0, 0, 73,139, 69, 8, 72,137, 84, 36, 16, 72, 41,232, +/* 0x05f0 */ 72,131,124, 36, 64, 0,117, 7, 68,139, 68, 36, 60,177, 18,139, +/* 0x0600 */ 84, 36, 24, 72,139,116, 36, 16, 73,137,193, 76,137,231,131,202, +/* 0x0610 */ 2, 72,131,124, 36, 64, 0, 15, 68, 84, 36, 24,232,240,251,255, +/* 0x0620 */ 255, 73, 57,196, 15,133, 37, 1, 0, 0, 72,131,124, 36, 64, 0, +/* 0x0630 */ 116, 25, 72,139, 76, 36, 32, 72,139, 84, 36, 40, 72,141,116, 36, +/* 0x0640 */ 80, 72,139,124, 36, 64,232, 57,252,255,255, 72,139,108, 36, 16, +/* 0x0650 */ 72,247,221,129,229,255, 15, 0, 0,246, 68, 36, 24, 2,116, 17, +/* 0x0660 */ 72,139, 68, 36, 16, 72,137,233,252, 73,141, 60, 4, 49,192,243, +/* 0x0670 */ 170, 72,131,124, 36, 64, 0, 15,132,220, 0, 0, 0,199, 68, 36, +/* 0x0680 */ 4, 0, 0, 0, 0, 72,184,255,255,255,255, 1, 0, 0, 0, 73, +/* 0x0690 */ 35, 69, 0, 72,186, 1, 0, 0, 0, 1, 0, 0, 0, 72, 57,208, +/* 0x06a0 */ 15,133,148, 0, 0, 0, 73,139, 85, 40, 73,139, 77, 16, 73, 59, +/* 0x06b0 */ 85, 32, 72,141, 4, 10, 74,141, 28, 48,117, 14,137,216,247,216, +/* 0x06c0 */ 37,255, 15, 0, 0,131,248, 3,119, 57, 73,131,125, 8, 0, 74, +/* 0x06d0 */ 141, 92, 49, 12,116, 45, 69, 49,201, 65,131,200,255, 49,255,185, +/* 0x06e0 */ 34, 0, 0, 0,186, 3, 0, 0, 0,190, 0, 16, 0, 0,199, 68, +/* 0x06f0 */ 36, 4, 1, 0, 0, 0,232, 22,251,255,255, 72,133,192, 72,137, +/* 0x0700 */ 195,116, 55,131,124, 36, 4, 0,199, 3, 15, 5, 90,195,116, 18, +/* 0x0710 */ 186, 5, 0, 0, 0,190, 4, 0, 0, 0, 72,137,223,232, 27,251, +/* 0x0720 */ 255,255, 72,133,219,116, 19, 72,139,124, 36, 48, 72,137,218, 49, +/* 0x0730 */ 246, 72,131,231,254,232, 91,252,255,255,139, 84, 36, 24, 72,139, +/* 0x0740 */ 116, 36, 16, 76,137,231,232,242,250,255,255,133,192,116, 10,191, +/* 0x0750 */ 127, 0, 0, 0,232,208,250,255,255, 72,139, 68, 36, 16, 72, 1, +/* 0x0760 */ 232, 73, 1,196, 76, 59,100, 36, 8,115, 39, 76, 41,100, 36, 8, +/* 0x0770 */ 139, 84, 36, 24, 69, 49,201, 72,139,116, 36, 8, 65,131,200,255, +/* 0x0780 */ 185, 50, 0, 0, 0, 76,137,231,232,132,250,255,255, 73, 57,196, +/* 0x0790 */ 117,189,255, 68, 36, 28, 65, 15,183, 71, 56, 73,131,197, 56, 57, +/* 0x07a0 */ 68, 36, 28, 15,140, 94,253,255,255, 72,139,132, 36,160, 0, 0, +/* 0x07b0 */ 0, 76,137, 48, 77, 3,119, 24, 72,131,196,104, 91, 93, 65, 92, +/* 0x07c0 */ 65, 93, 76,137,240, 65, 94, 65, 95,195, 65, 87, 65, 86, 73,137, +/* 0x07d0 */ 206, 49,201, 65, 85, 65, 84, 77,137,204, 85, 72,137,213, 76,141, +/* 0x07e0 */ 109, 64, 83, 76,137,195, 72,131,236, 72,139, 7, 72,137,124, 36, +/* 0x07f0 */ 24, 72,137,124, 36, 40, 76,141,188, 36,128, 0, 0, 0, 72,137, +/* 0x0800 */ 116, 36, 32, 72,141,116, 36, 48, 72,137, 84, 36, 56, 76,137,194, +/* 0x0810 */ 72,137, 68, 36, 48,139, 71, 4, 72,141,124, 36, 16, 72,131,192, +/* 0x0820 */ 12, 72,137, 68, 36, 16,232, 89,250,255,255, 65, 83, 77,137,225, +/* 0x0830 */ 49,210, 73,137,216, 76,137,241, 72,137,239, 72,141,116, 36, 40, +/* 0x0840 */ 65, 87,232,141,251,255,255,190, 9, 0, 0, 0, 72,137,194, 76, +/* 0x0850 */ 137,247, 73,137,196,232, 59,251,255,255, 65, 89, 65, 90,102,131, +/* 0x0860 */ 125, 56, 0,199, 68, 36, 12, 0, 0, 0, 0, 15,132,143, 0, 0, +/* 0x0870 */ 0, 65,131,125, 0, 3,117,114, 73,139, 63, 73, 3,125, 16, 49, +/* 0x0880 */ 210, 49,246,232,173,249,255,255,133,192,137,195,120, 23,186, 0, +/* 0x0890 */ 4, 0, 0, 72,137,238,137,199,232,168,249,255,255, 72, 61, 0, +/* 0x08a0 */ 4, 0, 0,116, 10,191,127, 0, 0, 0,232,122,249,255,255, 73, +/* 0x08b0 */ 199, 7, 0, 0, 0, 0, 65, 80, 69, 49,201, 69, 49,192, 49,201, +/* 0x08c0 */ 65, 87,137,218, 49,246, 72,137,239,232, 6,251,255,255, 73,139, +/* 0x08d0 */ 23,190, 7, 0, 0, 0, 76,137,247, 73,137,196,232,180,250,255, +/* 0x08e0 */ 255,137,223,232, 73,249,255,255, 94, 95,255, 68, 36, 12, 15,183, +/* 0x08f0 */ 69, 56, 73,131,197, 56, 57, 68, 36, 12, 15,130,113,255,255,255, +/* 0x0900 */ 72,131,196, 72, 76,137,224, 91, 93, 65, 92, 65, 93, 65, 94, 65, +/* 0x0910 */ 95,195 }; diff --git a/src/stub/amd64-linux.shlib-init.h b/src/stub/amd64-linux.shlib-init.h index 87ac874c..7fd7cda8 100644 --- a/src/stub/amd64-linux.shlib-init.h +++ b/src/stub/amd64-linux.shlib-init.h @@ -1,5 +1,5 @@ /* amd64-linux.shlib-init.h - created from amd64-linux.shlib-init.bin, 9569 (0x2561) bytes + created from amd64-linux.shlib-init.bin, 9572 (0x2564) bytes This file is part of the UPX executable compressor. @@ -31,608 +31,608 @@ */ -#define STUB_AMD64_LINUX_SHLIB_INIT_SIZE 9569 -#define STUB_AMD64_LINUX_SHLIB_INIT_ADLER32 0x5cfdec03 -#define STUB_AMD64_LINUX_SHLIB_INIT_CRC32 0x7b17ca0f +#define STUB_AMD64_LINUX_SHLIB_INIT_SIZE 9572 +#define STUB_AMD64_LINUX_SHLIB_INIT_ADLER32 0xed53ee12 +#define STUB_AMD64_LINUX_SHLIB_INIT_CRC32 0x31a6648b -unsigned char stub_amd64_linux_shlib_init[9569] = { +unsigned char stub_amd64_linux_shlib_init[9572] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 1, 0, 62, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,168, 25, 0, 0, 0, 0, 0, 0, +/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,176, 25, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, -/* 0x0040 */ 80, 86, 87, 80, 82, 85, 72,137,229,232, 0, 0, 0, 0, 85, 83, -/* 0x0050 */ 81, 82, 72, 1,254, 86, 72,137,254, 72,137,215, 49,219, 49,201, -/* 0x0060 */ 72,131,205,255,232, 80, 0, 0, 0, 1,219,116, 2,243,195,139, -/* 0x0070 */ 30, 72,131,238,252, 17,219,138, 22,243,195, 72,141, 4, 47,131, -/* 0x0080 */ 249, 5,138, 16,118, 33, 72,131,253,252,119, 27,131,233, 4,139, -/* 0x0090 */ 16, 72,131,192, 4,131,233, 4,137, 23, 72,141,127, 4,115,239, -/* 0x00a0 */ 131,193, 4,138, 16,116, 16, 72,255,192,136, 23,131,233, 1,138, -/* 0x00b0 */ 16, 72,141,127, 1,117,240,243,195,252, 65, 91, 65,128,248, 8, -/* 0x00c0 */ 15,133,174, 0, 0, 0,235, 8, 72,255,198,136, 23, 72,255,199, -/* 0x00d0 */ 138, 22, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, -/* 0x00e0 */ 114,230,141, 65, 1,235, 7,255,200, 65,255,211, 17,192, 65,255, -/* 0x00f0 */ 211, 17,192, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, -/* 0x0100 */ 22,115,228,131,232, 3,114, 29,193,224, 8, 15,182,210, 9,208, -/* 0x0110 */ 72,255,198,131,240,255, 15,132, 0, 0, 0, 0,209,248, 72, 99, -/* 0x0120 */ 232,114, 56,235, 14, 1,219,117, 8,139, 30, 72,131,238,252, 17, -/* 0x0130 */ 219,114, 40,255,193, 1,219,117, 8,139, 30, 72,131,238,252, 17, -/* 0x0140 */ 219,114, 24, 65,255,211, 17,201, 1,219,117, 8,139, 30, 72,131, -/* 0x0150 */ 238,252, 17,219,115,237,131,193, 2,235, 5, 65,255,211, 17,201, -/* 0x0160 */ 72,129,253, 0,251,255,255,131,209, 2,232, 0, 0, 0, 0,233, -/* 0x0170 */ 92,255,255,255, 87, 94, 65,128,248, 5, 15,133,149, 0, 0, 0, -/* 0x0180 */ 235, 8, 72,255,198,136, 23, 72,255,199,138, 22, 1,219,117, 10, -/* 0x0190 */ 139, 30, 72,131,238,252, 17,219,138, 22,114,230,141, 65, 1,235, -/* 0x01a0 */ 7,255,200, 65,255,211, 17,192, 65,255,211, 17,192, 1,219,117, -/* 0x01b0 */ 10,139, 30, 72,131,238,252, 17,219,138, 22,115,228,131,232, 3, -/* 0x01c0 */ 114, 27,193,224, 8, 15,182,210, 9,208, 72,255,198,131,240,255, -/* 0x01d0 */ 15,132, 0, 0, 0, 0,209,248, 72, 99,232,235, 3, 65,255,211, -/* 0x01e0 */ 17,201, 65,255,211, 17,201,117, 24,255,193, 65,255,211, 17,201, -/* 0x01f0 */ 1,219,117, 8,139, 30, 72,131,238,252, 17,219,115,237,131,193, -/* 0x0200 */ 2, 72,129,253, 0,251,255,255,131,209, 1,232, 0, 0, 0, 0, -/* 0x0210 */ 233,117,255,255,255, 87, 94, 65,128,248, 2, 15,133,135, 0, 0, -/* 0x0220 */ 0,235, 8, 72,255,198,136, 23, 72,255,199,138, 22, 1,219,117, -/* 0x0230 */ 10,139, 30, 72,131,238,252, 17,219,138, 22,114,230,141, 65, 1, -/* 0x0240 */ 65,255,211, 17,192, 1,219,117, 10,139, 30, 72,131,238,252, 17, -/* 0x0250 */ 219,138, 22,115,235,131,232, 3,114, 23,193,224, 8, 15,182,210, -/* 0x0260 */ 9,208, 72,255,198,131,240,255, 15,132, 0, 0, 0, 0, 72, 99, -/* 0x0270 */ 232,141, 65, 1, 65,255,211, 17,201, 65,255,211, 17,201,117, 24, -/* 0x0280 */ 137,193,131,192, 2, 65,255,211, 17,201, 1,219,117, 8,139, 30, -/* 0x0290 */ 72,131,238,252, 17,219,115,237, 72,129,253, 0,243,255,255, 17, -/* 0x02a0 */ 193,232, 0, 0, 0, 0,235,131, 87, 94, 65,128,248, 14, 15,133, -/* 0x02b0 */ 0, 0, 0, 0, 85, 72,137,229, 68,139, 9, 73,137,208, 72,137, -/* 0x02c0 */ 242, 72,141,119, 2, 86,138, 7,255,202,136,193, 36, 7,192,233, -/* 0x02d0 */ 3, 72,199,195, 0,253,255,255, 72,211,227,136,193, 72,141,156, -/* 0x02e0 */ 92,136,241,255,255, 72,131,227,192,106, 0, 72, 57,220,117,249, -/* 0x02f0 */ 83, 72,141,123, 8,138, 78,255,255,202,136, 71, 2,136,200,192, -/* 0x0300 */ 233, 4,136, 79, 1, 36, 15,136, 7, 72,141, 79,252, 80, 65, 87, -/* 0x0310 */ 72,141, 71, 4, 69, 49,255, 65, 86, 65,190, 1, 0, 0, 0, 65, -/* 0x0320 */ 85, 69, 49,237, 65, 84, 85, 83, 72,137, 76, 36,240, 72,137, 68, -/* 0x0330 */ 36,216,184, 1, 0, 0, 0, 72,137,116, 36,248, 76,137, 68, 36, -/* 0x0340 */ 232,137,195, 68,137, 76, 36,228, 15,182, 79, 2,211,227,137,217, -/* 0x0350 */ 72,139, 92, 36, 56,255,201,137, 76, 36,212, 15,182, 79, 1,211, -/* 0x0360 */ 224, 72,139, 76, 36,240,255,200,137, 68, 36,208, 15,182, 7,199, -/* 0x0370 */ 1, 0, 0, 0, 0,199, 68, 36,200, 0, 0, 0, 0,199, 68, 36, -/* 0x0380 */ 196, 1, 0, 0, 0,199, 68, 36,192, 1, 0, 0, 0,199, 68, 36, -/* 0x0390 */ 188, 1, 0, 0, 0,199, 3, 0, 0, 0, 0,137, 68, 36,204, 15, -/* 0x03a0 */ 182, 79, 1, 1,193,184, 0, 3, 0, 0,211,224, 49,201,141,184, -/* 0x03b0 */ 54, 7, 0, 0, 65, 57,255,115, 19, 72,139, 92, 36,216,137,200, -/* 0x03c0 */ 255,193, 57,249,102,199, 4, 67, 0, 4,235,235, 72,139,124, 36, -/* 0x03d0 */ 248,137,208, 69, 49,210, 65,131,203,255, 49,210, 73,137,252, 73, -/* 0x03e0 */ 1,196, 76, 57,231, 15,132,239, 8, 0, 0, 15,182, 7, 65,193, -/* 0x03f0 */ 226, 8,255,194, 72,255,199, 65, 9,194,131,250, 4,126,227, 68, -/* 0x0400 */ 59,124, 36,228, 15,131,218, 8, 0, 0,139, 68, 36,212, 72, 99, -/* 0x0410 */ 92, 36,200, 72,139, 84, 36,216, 68, 33,248,137, 68, 36,184, 72, -/* 0x0420 */ 99,108, 36,184, 72,137,216, 72,193,224, 4, 72, 1,232, 65,129, -/* 0x0430 */ 251,255,255,255, 0, 76,141, 12, 66,119, 26, 76, 57,231, 15,132, -/* 0x0440 */ 150, 8, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72, -/* 0x0450 */ 255,199, 65, 9,194, 65, 15,183, 17, 68,137,216,193,232, 11, 15, -/* 0x0460 */ 183,202, 15,175,193, 65, 57,194, 15,131,197, 1, 0, 0, 65,137, -/* 0x0470 */ 195,184, 0, 8, 0, 0, 72,139, 92, 36,216, 41,200, 15,182, 76, -/* 0x0480 */ 36,204,190, 1, 0, 0, 0,193,248, 5,141, 4, 2, 65, 15,182, -/* 0x0490 */ 213,102, 65,137, 1,139, 68, 36,208, 68, 33,248,211,224,185, 8, -/* 0x04a0 */ 0, 0, 0, 43, 76, 36,204,211,250, 1,208,105,192, 0, 3, 0, -/* 0x04b0 */ 0,131,124, 36,200, 6,137,192, 76,141,140, 67,108, 14, 0, 0, -/* 0x04c0 */ 15,142,184, 0, 0, 0, 72,139, 84, 36,232, 68,137,248, 68, 41, -/* 0x04d0 */ 240, 15,182, 44, 2, 1,237, 72, 99,214,137,235,129,227, 0, 1, -/* 0x04e0 */ 0, 0, 65,129,251,255,255,255, 0, 72, 99,195, 73,141, 4, 65, -/* 0x04f0 */ 76,141, 4, 80,119, 26, 76, 57,231, 15,132,219, 7, 0, 0, 15, -/* 0x0500 */ 182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, -/* 0x0510 */ 65, 15,183,144, 0, 2, 0, 0, 68,137,216,193,232, 11, 15,183, -/* 0x0520 */ 202, 15,175,193, 65, 57,194,115, 32, 65,137,195,184, 0, 8, 0, -/* 0x0530 */ 0, 1,246, 41,200,193,248, 5,133,219,141, 4, 2,102, 65,137, -/* 0x0540 */ 128, 0, 2, 0, 0,116, 33,235, 45, 65, 41,195, 65, 41,194,137, -/* 0x0550 */ 208,102,193,232, 5,141,116, 54, 1,102, 41,194,133,219,102, 65, -/* 0x0560 */ 137,144, 0, 2, 0, 0,116, 14,129,254,255, 0, 0, 0, 15,142, -/* 0x0570 */ 97,255,255,255,235,120,129,254,255, 0, 0, 0,127,112, 72, 99, -/* 0x0580 */ 198, 65,129,251,255,255,255, 0, 77,141, 4, 65,119, 26, 76, 57, -/* 0x0590 */ 231, 15,132, 67, 7, 0, 0, 15,182, 7, 65,193,226, 8, 65,193, -/* 0x05a0 */ 227, 8, 72,255,199, 65, 9,194, 65, 15,183, 16, 68,137,216,193, -/* 0x05b0 */ 232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 24, 65,137,195, -/* 0x05c0 */ 184, 0, 8, 0, 0, 1,246, 41,200,193,248, 5,141, 4, 2,102, -/* 0x05d0 */ 65,137, 0,235,161, 65, 41,195, 65, 41,194,137,208,102,193,232, -/* 0x05e0 */ 5,141,116, 54, 1,102, 41,194,102, 65,137, 16,235,136, 72,139, -/* 0x05f0 */ 76, 36,232, 68,137,248, 65,255,199, 65,137,245, 64,136, 52, 1, -/* 0x0600 */ 131,124, 36,200, 3,127, 13,199, 68, 36,200, 0, 0, 0, 0,233, -/* 0x0610 */ 166, 6, 0, 0,139, 84, 36,200,139, 68, 36,200,131,234, 3,131, -/* 0x0620 */ 232, 6,131,124, 36,200, 9, 15, 79,208,137, 84, 36,200,233,135, -/* 0x0630 */ 6, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, -/* 0x0640 */ 41,194, 72,139, 68, 36,216, 65,129,251,255,255,255, 0,102, 65, -/* 0x0650 */ 137, 17, 72,141, 52, 88,119, 26, 76, 57,231, 15,132,121, 6, 0, -/* 0x0660 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, -/* 0x0670 */ 9,194, 15,183,150,128, 1, 0, 0, 68,137,216,193,232, 11, 15, -/* 0x0680 */ 183,202, 15,175,193, 65, 57,194,115, 78, 65,137,195,184, 0, 8, -/* 0x0690 */ 0, 0, 76,139, 76, 36,216, 41,200,139, 76, 36,196, 68,137,116, -/* 0x06a0 */ 36,196,193,248, 5,141, 4, 2,139, 84, 36,192,137, 76, 36,192, -/* 0x06b0 */ 102,137,134,128, 1, 0, 0, 49,192,131,124, 36,200, 6,137, 84, -/* 0x06c0 */ 36,188, 15,159,192, 73,129,193,100, 6, 0, 0,141, 4, 64,137, -/* 0x06d0 */ 68, 36,200,233, 84, 2, 0, 0, 65, 41,195, 65, 41,194,137,208, -/* 0x06e0 */ 102,193,232, 5,102, 41,194, 65,129,251,255,255,255, 0,102,137, -/* 0x06f0 */ 150,128, 1, 0, 0,119, 26, 76, 57,231, 15,132,218, 5, 0, 0, -/* 0x0700 */ 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9, -/* 0x0710 */ 194, 15,183,150,152, 1, 0, 0, 68,137,216,193,232, 11, 15,183, -/* 0x0720 */ 202, 15,175,193, 65, 57,194, 15,131,208, 0, 0, 0, 65,184, 0, -/* 0x0730 */ 8, 0, 0, 65,137,195, 72,193,227, 5, 68,137,192, 41,200,193, -/* 0x0740 */ 248, 5,141, 4, 2,102,137,134,152, 1, 0, 0, 72,139, 68, 36, -/* 0x0750 */ 216, 72, 1,216, 65,129,251,255,255,255, 0, 72,141, 52,104,119, -/* 0x0760 */ 26, 76, 57,231, 15,132,112, 5, 0, 0, 15,182, 7, 65,193,226, -/* 0x0770 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,224, 1, -/* 0x0780 */ 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57, -/* 0x0790 */ 194,115, 79, 65, 41,200, 65,137,195, 65,193,248, 5, 69,133,255, -/* 0x07a0 */ 66,141, 4, 2,102,137,134,224, 1, 0, 0, 15,132, 41, 5, 0, -/* 0x07b0 */ 0, 49,192,131,124, 36,200, 6, 72,139, 92, 36,232, 15,159,192, -/* 0x07c0 */ 141, 68, 0, 9,137, 68, 36,200, 68,137,248, 68, 41,240, 68, 15, -/* 0x07d0 */ 182, 44, 3, 68,137,248, 65,255,199, 68,136, 44, 3,233,216, 4, -/* 0x07e0 */ 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41, -/* 0x07f0 */ 194,102,137,150,224, 1, 0, 0,233, 17, 1, 0, 0, 65, 41,195, -/* 0x0800 */ 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65,129,251,255, -/* 0x0810 */ 255,255, 0,102,137,150,152, 1, 0, 0,119, 26, 76, 57,231, 15, -/* 0x0820 */ 132,181, 4, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, -/* 0x0830 */ 72,255,199, 65, 9,194, 15,183,150,176, 1, 0, 0, 68,137,216, -/* 0x0840 */ 193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 32, 65,137, -/* 0x0850 */ 195,184, 0, 8, 0, 0, 41,200,193,248, 5,141, 4, 2,102,137, -/* 0x0860 */ 134,176, 1, 0, 0,139, 68, 36,196,233,152, 0, 0, 0, 65, 41, -/* 0x0870 */ 195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65,129,251, -/* 0x0880 */ 255,255,255, 0,102,137,150,176, 1, 0, 0,119, 26, 76, 57,231, -/* 0x0890 */ 15,132, 68, 4, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, -/* 0x08a0 */ 8, 72,255,199, 65, 9,194, 15,183,150,200, 1, 0, 0, 68,137, -/* 0x08b0 */ 216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 29, 65, -/* 0x08c0 */ 137,195,184, 0, 8, 0, 0, 41,200,193,248, 5,141, 4, 2,102, -/* 0x08d0 */ 137,134,200, 1, 0, 0,139, 68, 36,192,235, 34, 65, 41,195, 65, -/* 0x08e0 */ 41,194,137,208,102,193,232, 5,102, 41,194,139, 68, 36,188,102, -/* 0x08f0 */ 137,150,200, 1, 0, 0,139, 84, 36,192,137, 84, 36,188,139, 76, -/* 0x0900 */ 36,196,137, 76, 36,192, 68,137,116, 36,196, 65,137,198, 49,192, -/* 0x0910 */ 131,124, 36,200, 6, 76,139, 76, 36,216, 15,159,192, 73,129,193, -/* 0x0920 */ 104, 10, 0, 0,141, 68, 64, 8,137, 68, 36,200, 65,129,251,255, -/* 0x0930 */ 255,255, 0,119, 26, 76, 57,231, 15,132,156, 3, 0, 0, 15,182, -/* 0x0940 */ 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, -/* 0x0950 */ 15,183, 17, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, -/* 0x0960 */ 57,194,115, 39, 65,137,195,184, 0, 8, 0, 0, 69, 49,237, 41, -/* 0x0970 */ 200,193,248, 5,141, 4, 2,102, 65,137, 1, 72, 99, 68, 36,184, -/* 0x0980 */ 72,193,224, 4, 77,141, 68, 1, 4,235,120, 65, 41,195, 65, 41, -/* 0x0990 */ 194,137,208,102,193,232, 5,102, 41,194, 65,129,251,255,255,255, -/* 0x09a0 */ 0,102, 65,137, 17,119, 26, 76, 57,231, 15,132, 42, 3, 0, 0, -/* 0x09b0 */ 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9, -/* 0x09c0 */ 194, 65, 15,183, 81, 2, 68,137,216,193,232, 11, 15,183,202, 15, -/* 0x09d0 */ 175,193, 65, 57,194,115, 52, 65,137,195,184, 0, 8, 0, 0, 65, -/* 0x09e0 */ 189, 8, 0, 0, 0, 41,200,193,248, 5,141, 4, 2,102, 65,137, -/* 0x09f0 */ 65, 2, 72, 99, 68, 36,184, 72,193,224, 4, 77,141,132, 1, 4, -/* 0x0a00 */ 1, 0, 0, 65,185, 3, 0, 0, 0,235, 39, 65, 41,195, 65, 41, -/* 0x0a10 */ 194,137,208,102,193,232, 5, 77,141,129, 4, 2, 0, 0, 65,189, -/* 0x0a20 */ 16, 0, 0, 0,102, 41,194,102, 65,137, 81, 2, 65,185, 8, 0, -/* 0x0a30 */ 0, 0, 68,137,203,189, 1, 0, 0, 0, 72, 99,197, 65,129,251, -/* 0x0a40 */ 255,255,255, 0, 73,141, 52, 64,119, 26, 76, 57,231, 15,132,135, -/* 0x0a50 */ 2, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255, -/* 0x0a60 */ 199, 65, 9,194, 15,183, 14, 68,137,216,193,232, 11, 15,183,209, -/* 0x0a70 */ 15,175,194, 65, 57,194,115, 23, 65,137,195,184, 0, 8, 0, 0, -/* 0x0a80 */ 1,237, 41,208,193,248, 5,141, 4, 1,102,137, 6,235, 22, 65, -/* 0x0a90 */ 41,195, 65, 41,194,137,200,102,193,232, 5,141,108, 45, 1,102, -/* 0x0aa0 */ 41,193,102,137, 14,255,203,117,145,184, 1, 0, 0, 0, 68,137, -/* 0x0ab0 */ 201,211,224, 41,197, 68, 1,237,131,124, 36,200, 3, 15,143,194, -/* 0x0ac0 */ 1, 0, 0,131, 68, 36,200, 7,184, 3, 0, 0, 0,131,253, 4, -/* 0x0ad0 */ 15, 76,197, 72,139, 92, 36,216, 65,184, 1, 0, 0, 0, 72,152, -/* 0x0ae0 */ 72,193,224, 7, 76,141,140, 3, 96, 3, 0, 0,187, 6, 0, 0, -/* 0x0af0 */ 0, 73, 99,192, 65,129,251,255,255,255, 0, 73,141, 52, 65,119, -/* 0x0b00 */ 26, 76, 57,231, 15,132,208, 1, 0, 0, 15,182, 7, 65,193,226, -/* 0x0b10 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, 22, 68,137, -/* 0x0b20 */ 216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 24, 65, -/* 0x0b30 */ 137,195,184, 0, 8, 0, 0, 69, 1,192, 41,200,193,248, 5,141, -/* 0x0b40 */ 4, 2,102,137, 6,235, 23, 65, 41,195, 65, 41,194,137,208,102, -/* 0x0b50 */ 193,232, 5, 71,141, 68, 0, 1,102, 41,194,102,137, 22,255,203, -/* 0x0b60 */ 117,143, 65,131,232, 64, 65,131,248, 3, 69,137,198, 15,142, 13, -/* 0x0b70 */ 1, 0, 0, 65,131,230, 1, 68,137,192,209,248, 65,131,206, 2, -/* 0x0b80 */ 65,131,248, 13,141,112,255,127, 35,137,241, 72,139, 92, 36,216, -/* 0x0b90 */ 73, 99,192, 65,211,230, 72, 1,192, 68,137,242, 72,141, 20, 83, -/* 0x0ba0 */ 72, 41,194, 76,141,138, 94, 5, 0, 0,235, 81,141,112,251, 65, -/* 0x0bb0 */ 129,251,255,255,255, 0,119, 26, 76, 57,231, 15,132, 25, 1, 0, -/* 0x0bc0 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, -/* 0x0bd0 */ 9,194, 65,209,235, 69, 1,246, 69, 57,218,114, 7, 69, 41,218, -/* 0x0be0 */ 65,131,206, 1,255,206,117,199, 76,139, 76, 36,216, 65,193,230, -/* 0x0bf0 */ 4,190, 4, 0, 0, 0, 73,129,193, 68, 6, 0, 0, 65,189, 1, -/* 0x0c00 */ 0, 0, 0,187, 1, 0, 0, 0, 72, 99,195, 65,129,251,255,255, -/* 0x0c10 */ 255, 0, 77,141, 4, 65,119, 26, 76, 57,231, 15,132,185, 0, 0, -/* 0x0c20 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, -/* 0x0c30 */ 9,194, 65, 15,183, 16, 68,137,216,193,232, 11, 15,183,202, 15, -/* 0x0c40 */ 175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0, 0, 1, -/* 0x0c50 */ 219, 41,200,193,248, 5,141, 4, 2,102, 65,137, 0,235, 26, 65, -/* 0x0c60 */ 41,195, 65, 41,194,137,208,102,193,232, 5,141, 92, 27, 1, 69, -/* 0x0c70 */ 9,238,102, 41,194,102, 65,137, 16, 69, 1,237,255,206,117,136, -/* 0x0c80 */ 65,255,198,116, 64,131,197, 2, 69, 57,254,119, 77, 72,139, 84, -/* 0x0c90 */ 36,232, 68,137,248, 68, 41,240, 68, 15,182, 44, 2, 68,137,248, -/* 0x0ca0 */ 65,255,199,255,205, 68,136, 44, 2, 15,149,194, 49,192, 68, 59, -/* 0x0cb0 */ 124, 36,228, 15,146,192,133,194,117,211, 68, 59,124, 36,228, 15, -/* 0x0cc0 */ 130, 69,247,255,255, 65,129,251,255,255,255, 0,119, 22, 76, 57, -/* 0x0cd0 */ 231,184, 1, 0, 0, 0,116, 35,235, 7,184, 1, 0, 0, 0,235, -/* 0x0ce0 */ 26, 72,255,199,137,248, 43, 68, 36,248, 72,139, 76, 36,240, 72, -/* 0x0cf0 */ 139, 92, 36, 56,137, 1, 68,137, 59, 49,192, 91, 93, 65, 92, 65, -/* 0x0d00 */ 93, 65, 94, 65, 95, 65, 87, 72,141, 71, 4, 69, 49,255, 65, 86, -/* 0x0d10 */ 65,190, 1, 0, 0, 0, 65, 85, 69, 49,237, 65, 84, 85, 83, 72, -/* 0x0d20 */ 137, 76, 36,240, 72,137, 68, 36,216,184, 1, 0, 0, 0, 72,137, -/* 0x0d30 */ 116, 36,248, 76,137, 68, 36,232,137,195, 68,137, 76, 36,228, 15, -/* 0x0d40 */ 182, 79, 2,211,227,137,217, 72,139, 92, 36, 56,255,201,137, 76, -/* 0x0d50 */ 36,212, 15,182, 79, 1,211,224, 72,139, 76, 36,240,255,200,137, -/* 0x0d60 */ 68, 36,208, 15,182, 7,199, 1, 0, 0, 0, 0,199, 68, 36,200, -/* 0x0d70 */ 0, 0, 0, 0,199, 68, 36,196, 1, 0, 0, 0,199, 68, 36,192, -/* 0x0d80 */ 1, 0, 0, 0,199, 68, 36,188, 1, 0, 0, 0,199, 3, 0, 0, -/* 0x0d90 */ 0, 0,137, 68, 36,204, 15,182, 79, 1, 1,193,184, 0, 3, 0, -/* 0x0da0 */ 0,211,224, 49,201,141,184, 54, 7, 0, 0, 65, 57,255,115, 19, -/* 0x0db0 */ 72,139, 92, 36,216,137,200,255,193, 57,249,102,199, 4, 67, 0, -/* 0x0dc0 */ 4,235,235, 72,139,124, 36,248,137,208, 69, 49,210, 65,131,203, -/* 0x0dd0 */ 255, 49,210, 73,137,252, 73, 1,196, 76, 57,231, 15,132,239, 8, -/* 0x0de0 */ 0, 0, 15,182, 7, 65,193,226, 8,255,194, 72,255,199, 65, 9, -/* 0x0df0 */ 194,131,250, 4,126,227, 68, 59,124, 36,228, 15,131,218, 8, 0, -/* 0x0e00 */ 0,139, 68, 36,212, 72, 99, 92, 36,200, 72,139, 84, 36,216, 68, -/* 0x0e10 */ 33,248,137, 68, 36,184, 72, 99,108, 36,184, 72,137,216, 72,193, -/* 0x0e20 */ 224, 4, 72, 1,232, 65,129,251,255,255,255, 0, 76,141, 12, 66, -/* 0x0e30 */ 119, 26, 76, 57,231, 15,132,150, 8, 0, 0, 15,182, 7, 65,193, -/* 0x0e40 */ 226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 17, -/* 0x0e50 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194, 15, -/* 0x0e60 */ 131,197, 1, 0, 0, 65,137,195,184, 0, 8, 0, 0, 72,139, 92, -/* 0x0e70 */ 36,216, 41,200, 15,182, 76, 36,204,190, 1, 0, 0, 0,193,248, -/* 0x0e80 */ 5,141, 4, 2, 65, 15,182,213,102, 65,137, 1,139, 68, 36,208, -/* 0x0e90 */ 68, 33,248,211,224,185, 8, 0, 0, 0, 43, 76, 36,204,211,250, -/* 0x0ea0 */ 1,208,105,192, 0, 3, 0, 0,131,124, 36,200, 6,137,192, 76, -/* 0x0eb0 */ 141,140, 67,108, 14, 0, 0, 15,142,184, 0, 0, 0, 72,139, 84, -/* 0x0ec0 */ 36,232, 68,137,248, 68, 41,240, 15,182, 44, 2, 1,237, 72, 99, -/* 0x0ed0 */ 214,137,235,129,227, 0, 1, 0, 0, 65,129,251,255,255,255, 0, -/* 0x0ee0 */ 72, 99,195, 73,141, 4, 65, 76,141, 4, 80,119, 26, 76, 57,231, -/* 0x0ef0 */ 15,132,219, 7, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, -/* 0x0f00 */ 8, 72,255,199, 65, 9,194, 65, 15,183,144, 0, 2, 0, 0, 68, -/* 0x0f10 */ 137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 32, -/* 0x0f20 */ 65,137,195,184, 0, 8, 0, 0, 1,246, 41,200,193,248, 5,133, -/* 0x0f30 */ 219,141, 4, 2,102, 65,137,128, 0, 2, 0, 0,116, 33,235, 45, -/* 0x0f40 */ 65, 41,195, 65, 41,194,137,208,102,193,232, 5,141,116, 54, 1, -/* 0x0f50 */ 102, 41,194,133,219,102, 65,137,144, 0, 2, 0, 0,116, 14,129, -/* 0x0f60 */ 254,255, 0, 0, 0, 15,142, 97,255,255,255,235,120,129,254,255, -/* 0x0f70 */ 0, 0, 0,127,112, 72, 99,198, 65,129,251,255,255,255, 0, 77, -/* 0x0f80 */ 141, 4, 65,119, 26, 76, 57,231, 15,132, 67, 7, 0, 0, 15,182, -/* 0x0f90 */ 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, -/* 0x0fa0 */ 15,183, 16, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, -/* 0x0fb0 */ 57,194,115, 24, 65,137,195,184, 0, 8, 0, 0, 1,246, 41,200, -/* 0x0fc0 */ 193,248, 5,141, 4, 2,102, 65,137, 0,235,161, 65, 41,195, 65, -/* 0x0fd0 */ 41,194,137,208,102,193,232, 5,141,116, 54, 1,102, 41,194,102, -/* 0x0fe0 */ 65,137, 16,235,136, 72,139, 76, 36,232, 68,137,248, 65,255,199, -/* 0x0ff0 */ 65,137,245, 64,136, 52, 1,131,124, 36,200, 3,127, 13,199, 68, -/* 0x1000 */ 36,200, 0, 0, 0, 0,233,166, 6, 0, 0,139, 84, 36,200,139, -/* 0x1010 */ 68, 36,200,131,234, 3,131,232, 6,131,124, 36,200, 9, 15, 79, -/* 0x1020 */ 208,137, 84, 36,200,233,135, 6, 0, 0, 65, 41,195, 65, 41,194, -/* 0x1030 */ 137,208,102,193,232, 5,102, 41,194, 72,139, 68, 36,216, 65,129, -/* 0x1040 */ 251,255,255,255, 0,102, 65,137, 17, 72,141, 52, 88,119, 26, 76, -/* 0x1050 */ 57,231, 15,132,121, 6, 0, 0, 15,182, 7, 65,193,226, 8, 65, -/* 0x1060 */ 193,227, 8, 72,255,199, 65, 9,194, 15,183,150,128, 1, 0, 0, -/* 0x1070 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, -/* 0x1080 */ 78, 65,137,195,184, 0, 8, 0, 0, 76,139, 76, 36,216, 41,200, -/* 0x1090 */ 139, 76, 36,196, 68,137,116, 36,196,193,248, 5,141, 4, 2,139, -/* 0x10a0 */ 84, 36,192,137, 76, 36,192,102,137,134,128, 1, 0, 0, 49,192, -/* 0x10b0 */ 131,124, 36,200, 6,137, 84, 36,188, 15,159,192, 73,129,193,100, -/* 0x10c0 */ 6, 0, 0,141, 4, 64,137, 68, 36,200,233, 84, 2, 0, 0, 65, -/* 0x10d0 */ 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65,129, -/* 0x10e0 */ 251,255,255,255, 0,102,137,150,128, 1, 0, 0,119, 26, 76, 57, -/* 0x10f0 */ 231, 15,132,218, 5, 0, 0, 15,182, 7, 65,193,226, 8, 65,193, -/* 0x1100 */ 227, 8, 72,255,199, 65, 9,194, 15,183,150,152, 1, 0, 0, 68, -/* 0x1110 */ 137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194, 15,131, -/* 0x1120 */ 208, 0, 0, 0, 65,184, 0, 8, 0, 0, 65,137,195, 72,193,227, -/* 0x1130 */ 5, 68,137,192, 41,200,193,248, 5,141, 4, 2,102,137,134,152, -/* 0x1140 */ 1, 0, 0, 72,139, 68, 36,216, 72, 1,216, 65,129,251,255,255, -/* 0x1150 */ 255, 0, 72,141, 52,104,119, 26, 76, 57,231, 15,132,112, 5, 0, -/* 0x1160 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, -/* 0x1170 */ 9,194, 15,183,150,224, 1, 0, 0, 68,137,216,193,232, 11, 15, -/* 0x1180 */ 183,202, 15,175,193, 65, 57,194,115, 79, 65, 41,200, 65,137,195, -/* 0x1190 */ 65,193,248, 5, 69,133,255, 66,141, 4, 2,102,137,134,224, 1, -/* 0x11a0 */ 0, 0, 15,132, 41, 5, 0, 0, 49,192,131,124, 36,200, 6, 72, -/* 0x11b0 */ 139, 92, 36,232, 15,159,192,141, 68, 0, 9,137, 68, 36,200, 68, -/* 0x11c0 */ 137,248, 68, 41,240, 68, 15,182, 44, 3, 68,137,248, 65,255,199, -/* 0x11d0 */ 68,136, 44, 3,233,216, 4, 0, 0, 65, 41,195, 65, 41,194,137, -/* 0x11e0 */ 208,102,193,232, 5,102, 41,194,102,137,150,224, 1, 0, 0,233, -/* 0x11f0 */ 17, 1, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, 5, -/* 0x1200 */ 102, 41,194, 65,129,251,255,255,255, 0,102,137,150,152, 1, 0, -/* 0x1210 */ 0,119, 26, 76, 57,231, 15,132,181, 4, 0, 0, 15,182, 7, 65, -/* 0x1220 */ 193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150, -/* 0x1230 */ 176, 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, -/* 0x1240 */ 65, 57,194,115, 32, 65,137,195,184, 0, 8, 0, 0, 41,200,193, -/* 0x1250 */ 248, 5,141, 4, 2,102,137,134,176, 1, 0, 0,139, 68, 36,196, -/* 0x1260 */ 233,152, 0, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, -/* 0x1270 */ 5,102, 41,194, 65,129,251,255,255,255, 0,102,137,150,176, 1, -/* 0x1280 */ 0, 0,119, 26, 76, 57,231, 15,132, 68, 4, 0, 0, 15,182, 7, -/* 0x1290 */ 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, -/* 0x12a0 */ 150,200, 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175, -/* 0x12b0 */ 193, 65, 57,194,115, 29, 65,137,195,184, 0, 8, 0, 0, 41,200, -/* 0x12c0 */ 193,248, 5,141, 4, 2,102,137,134,200, 1, 0, 0,139, 68, 36, -/* 0x12d0 */ 192,235, 34, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, -/* 0x12e0 */ 41,194,139, 68, 36,188,102,137,150,200, 1, 0, 0,139, 84, 36, -/* 0x12f0 */ 192,137, 84, 36,188,139, 76, 36,196,137, 76, 36,192, 68,137,116, -/* 0x1300 */ 36,196, 65,137,198, 49,192,131,124, 36,200, 6, 76,139, 76, 36, -/* 0x1310 */ 216, 15,159,192, 73,129,193,104, 10, 0, 0,141, 68, 64, 8,137, -/* 0x1320 */ 68, 36,200, 65,129,251,255,255,255, 0,119, 26, 76, 57,231, 15, -/* 0x1330 */ 132,156, 3, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, -/* 0x1340 */ 72,255,199, 65, 9,194, 65, 15,183, 17, 68,137,216,193,232, 11, -/* 0x1350 */ 15,183,202, 15,175,193, 65, 57,194,115, 39, 65,137,195,184, 0, -/* 0x1360 */ 8, 0, 0, 69, 49,237, 41,200,193,248, 5,141, 4, 2,102, 65, -/* 0x1370 */ 137, 1, 72, 99, 68, 36,184, 72,193,224, 4, 77,141, 68, 1, 4, -/* 0x1380 */ 235,120, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41, -/* 0x1390 */ 194, 65,129,251,255,255,255, 0,102, 65,137, 17,119, 26, 76, 57, -/* 0x13a0 */ 231, 15,132, 42, 3, 0, 0, 15,182, 7, 65,193,226, 8, 65,193, -/* 0x13b0 */ 227, 8, 72,255,199, 65, 9,194, 65, 15,183, 81, 2, 68,137,216, -/* 0x13c0 */ 193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 52, 65,137, -/* 0x13d0 */ 195,184, 0, 8, 0, 0, 65,189, 8, 0, 0, 0, 41,200,193,248, -/* 0x13e0 */ 5,141, 4, 2,102, 65,137, 65, 2, 72, 99, 68, 36,184, 72,193, -/* 0x13f0 */ 224, 4, 77,141,132, 1, 4, 1, 0, 0, 65,185, 3, 0, 0, 0, -/* 0x1400 */ 235, 39, 65, 41,195, 65, 41,194,137,208,102,193,232, 5, 77,141, -/* 0x1410 */ 129, 4, 2, 0, 0, 65,189, 16, 0, 0, 0,102, 41,194,102, 65, -/* 0x1420 */ 137, 81, 2, 65,185, 8, 0, 0, 0, 68,137,203,189, 1, 0, 0, -/* 0x1430 */ 0, 72, 99,197, 65,129,251,255,255,255, 0, 73,141, 52, 64,119, -/* 0x1440 */ 26, 76, 57,231, 15,132,135, 2, 0, 0, 15,182, 7, 65,193,226, -/* 0x1450 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, 14, 68,137, -/* 0x1460 */ 216,193,232, 11, 15,183,209, 15,175,194, 65, 57,194,115, 23, 65, -/* 0x1470 */ 137,195,184, 0, 8, 0, 0, 1,237, 41,208,193,248, 5,141, 4, -/* 0x1480 */ 1,102,137, 6,235, 22, 65, 41,195, 65, 41,194,137,200,102,193, -/* 0x1490 */ 232, 5,141,108, 45, 1,102, 41,193,102,137, 14,255,203,117,145, -/* 0x14a0 */ 184, 1, 0, 0, 0, 68,137,201,211,224, 41,197, 68, 1,237,131, -/* 0x14b0 */ 124, 36,200, 3, 15,143,194, 1, 0, 0,131, 68, 36,200, 7,184, -/* 0x14c0 */ 3, 0, 0, 0,131,253, 4, 15, 76,197, 72,139, 92, 36,216, 65, -/* 0x14d0 */ 184, 1, 0, 0, 0, 72,152, 72,193,224, 7, 76,141,140, 3, 96, -/* 0x14e0 */ 3, 0, 0,187, 6, 0, 0, 0, 73, 99,192, 65,129,251,255,255, -/* 0x14f0 */ 255, 0, 73,141, 52, 65,119, 26, 76, 57,231, 15,132,208, 1, 0, -/* 0x1500 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, -/* 0x1510 */ 9,194, 15,183, 22, 68,137,216,193,232, 11, 15,183,202, 15,175, -/* 0x1520 */ 193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0, 0, 69, 1, -/* 0x1530 */ 192, 41,200,193,248, 5,141, 4, 2,102,137, 6,235, 23, 65, 41, -/* 0x1540 */ 195, 65, 41,194,137,208,102,193,232, 5, 71,141, 68, 0, 1,102, -/* 0x1550 */ 41,194,102,137, 22,255,203,117,143, 65,131,232, 64, 65,131,248, -/* 0x1560 */ 3, 69,137,198, 15,142, 13, 1, 0, 0, 65,131,230, 1, 68,137, -/* 0x1570 */ 192,209,248, 65,131,206, 2, 65,131,248, 13,141,112,255,127, 35, -/* 0x1580 */ 137,241, 72,139, 92, 36,216, 73, 99,192, 65,211,230, 72, 1,192, -/* 0x1590 */ 68,137,242, 72,141, 20, 83, 72, 41,194, 76,141,138, 94, 5, 0, -/* 0x15a0 */ 0,235, 81,141,112,251, 65,129,251,255,255,255, 0,119, 26, 76, -/* 0x15b0 */ 57,231, 15,132, 25, 1, 0, 0, 15,182, 7, 65,193,226, 8, 65, -/* 0x15c0 */ 193,227, 8, 72,255,199, 65, 9,194, 65,209,235, 69, 1,246, 69, -/* 0x15d0 */ 57,218,114, 7, 69, 41,218, 65,131,206, 1,255,206,117,199, 76, -/* 0x15e0 */ 139, 76, 36,216, 65,193,230, 4,190, 4, 0, 0, 0, 73,129,193, -/* 0x15f0 */ 68, 6, 0, 0, 65,189, 1, 0, 0, 0,187, 1, 0, 0, 0, 72, -/* 0x1600 */ 99,195, 65,129,251,255,255,255, 0, 77,141, 4, 65,119, 26, 76, -/* 0x1610 */ 57,231, 15,132,185, 0, 0, 0, 15,182, 7, 65,193,226, 8, 65, -/* 0x1620 */ 193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 16, 68,137,216, -/* 0x1630 */ 193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 24, 65,137, -/* 0x1640 */ 195,184, 0, 8, 0, 0, 1,219, 41,200,193,248, 5,141, 4, 2, -/* 0x1650 */ 102, 65,137, 0,235, 26, 65, 41,195, 65, 41,194,137,208,102,193, -/* 0x1660 */ 232, 5,141, 92, 27, 1, 69, 9,238,102, 41,194,102, 65,137, 16, -/* 0x1670 */ 69, 1,237,255,206,117,136, 65,255,198,116, 64,131,197, 2, 69, -/* 0x1680 */ 57,254,119, 77, 72,139, 84, 36,232, 68,137,248, 68, 41,240, 68, -/* 0x1690 */ 15,182, 44, 2, 68,137,248, 65,255,199,255,205, 68,136, 44, 2, -/* 0x16a0 */ 15,149,194, 49,192, 68, 59,124, 36,228, 15,146,192,133,194,117, -/* 0x16b0 */ 211, 68, 59,124, 36,228, 15,130, 69,247,255,255, 65,129,251,255, -/* 0x16c0 */ 255,255, 0,119, 22, 76, 57,231,184, 1, 0, 0, 0,116, 35,235, -/* 0x16d0 */ 7,184, 1, 0, 0, 0,235, 26, 72,255,199,137,248, 43, 68, 36, -/* 0x16e0 */ 248, 72,139, 76, 36,240, 72,139, 92, 36, 56,137, 1, 68,137, 59, -/* 0x16f0 */ 49,192, 91, 93, 65, 92, 65, 93, 65, 94, 65, 95, 72,139,117,248, -/* 0x1700 */ 72,139,125, 16,139, 75, 4, 72, 1,206,139, 19, 72, 1,215,201, -/* 0x1710 */ 235, 2, 87, 94, 89, 72,137,240, 72, 41,200, 90, 72, 41,215, 89, -/* 0x1720 */ 137, 57, 91, 93,195,104, 30, 0, 0, 0, 90,232, 0, 0, 0, 0, -/* 0x1730 */ 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, -/* 0x1740 */ 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, 10, 0, 94,106, -/* 0x1750 */ 2, 95,106, 1, 88, 15, 5,106,127, 95,106, 60, 88, 15, 5, 90, -/* 0x1760 */ 72,141,114,226, 72,137,241,173, 72, 41,193,173, 72, 1,200, 72, -/* 0x1770 */ 137, 69, 40,173, 72, 1,200, 72,137, 69, 16,173, 72,141, 60, 1, -/* 0x1780 */ 72,141,119, 24, 80, 80,173,173, 72, 1,198,173,173, 72,137,249, -/* 0x1790 */ 129,225,255, 15, 0, 0, 72, 1,200, 80, 72, 41,207, 87, 72, 41, -/* 0x17a0 */ 200, 72, 1,207, 81,232, 74, 0, 0, 0,131,249, 73,117, 68, 83, -/* 0x17b0 */ 87, 72,141, 76, 55,253, 94, 86, 91,235, 47, 72, 57,206,115, 50, -/* 0x17c0 */ 86, 94,172, 60,128,114, 10, 60,143,119, 6,128,126,254, 15,116, -/* 0x17d0 */ 6, 44,232, 60, 1,119,228, 72, 57,206,115, 22, 86,173, 40,208, -/* 0x17e0 */ 117,223, 95, 15,200, 41,248, 1,216,171, 72, 57,206,115, 3,172, -/* 0x17f0 */ 235,223, 91,195, 15,182, 78, 5, 81, 15,182, 78, 6, 81, 80, 72, -/* 0x1800 */ 137,225, 87, 82,173,137,194,173, 80, 81, 87, 82, 86, 72,139, 69, -/* 0x1810 */ 168, 3, 80,252, 72,139, 69,208, 3, 80,252,232,110, 0, 0, 0, -/* 0x1820 */ 106, 0, 65, 89,106, 0, 65, 88,106, 50, 65, 90,106, 3, 90, 72, -/* 0x1830 */ 139,117,232, 72,139,125,224,106, 9, 88, 15, 5, 72, 57,248,116, -/* 0x1840 */ 1,244,139, 77,216, 72,137,199, 72,139,117,240,131,193, 3,193, -/* 0x1850 */ 233, 2,243,165, 95, 94, 90, 89, 65, 88, 88,255,208, 95, 94, 72, -/* 0x1860 */ 141, 4, 55,199, 0, 15, 5, 95, 94,198, 64, 4,195, 72,137, 69, -/* 0x1870 */ 16, 90, 89, 88, 72,133,201,116, 2,255,208, 89, 95, 94,106, 5, -/* 0x1880 */ 90,106, 10, 88, 15, 5, 95, 94,106, 11, 88, 93, 90,195,139,117, -/* 0x1890 */ 216, 1,214, 88, 80, 3,112,252,106, 0, 65, 89,106, 0, 65, 88, -/* 0x18a0 */ 106, 34, 65, 90,106, 7, 90, 72,137,117,248,106, 0, 95,106, 9, -/* 0x18b0 */ 88, 15, 5, 72, 61, 0,240,255,255,114, 1,244, 72,137, 69,240, -/* 0x18c0 */ 72,137,199, 88,139, 77,216, 72,139,117,224,131,193, 3,193,233, -/* 0x18d0 */ 2,243,165, 94, 89, 81, 87,131,193, 3,193,233, 2,243,165, 72, -/* 0x18e0 */ 139,117,168, 72,137,125,168,139, 78,252,243,164, 72,139,117,208, -/* 0x18f0 */ 72,137,125,208,139, 78,252,243,164, 72,137,198, 87,139, 78,252, -/* 0x1900 */ 243,164,195,102,105,108,101, 32,102,111,114,109, 97,116, 32,101, -/* 0x1910 */ 108,102, 54, 52, 45,120, 56, 54, 45, 54, 52, 10, 10, 83,101, 99, -/* 0x1920 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, -/* 0x1930 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, -/* 0x1940 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1950 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1960 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, -/* 0x1970 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, -/* 0x1980 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, -/* 0x1990 */ 48, 48, 48, 48, 48, 49, 54, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, -/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, -/* 0x19c0 */ 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, -/* 0x19d0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, -/* 0x19e0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, -/* 0x19f0 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 54, -/* 0x1a00 */ 54, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a10 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a20 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 53, 54, 32, -/* 0x1a30 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, -/* 0x1a40 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82, -/* 0x1a50 */ 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, -/* 0x1a60 */ 48, 48, 98, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a70 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1a80 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1a90 */ 98, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, -/* 0x1aa0 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, -/* 0x1ab0 */ 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32, 32, -/* 0x1ac0 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 97, 49, 32, 32, -/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ae0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1af0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 55, 54, 32, 32, 50, 42, -/* 0x1b00 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, -/* 0x1b10 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, -/* 0x1b20 */ 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x1b30 */ 48, 48, 48, 48, 48, 48, 57, 51, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1b40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x1b50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x1b60 */ 48, 48, 48, 50, 49, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x1b70 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, -/* 0x1b80 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, 90, 77, 65, -/* 0x1b90 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1ba0 */ 54, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1bb0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 97, 97, -/* 0x1bd0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1be0 */ 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, -/* 0x1bf0 */ 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, -/* 0x1c00 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102, 55, 32, 32, 48, 48, -/* 0x1c10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, -/* 0x1c20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c30 */ 32, 32, 48, 48, 48, 48, 48, 51, 48,101, 32, 32, 50, 42, 42, 48, -/* 0x1c40 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, -/* 0x1c50 */ 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, -/* 0x1c60 */ 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102, 55, 32, -/* 0x1c70 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c80 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1c90 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 48, 53, 32, 32, 50, -/* 0x1ca0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, -/* 0x1cb0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, -/* 0x1cc0 */ 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1cd0 */ 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ce0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1cf0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 54,102, 99, -/* 0x1d00 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1d10 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 78, -/* 0x1d20 */ 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, -/* 0x1d30 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1d40 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, -/* 0x1d50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, -/* 0x1d60 */ 55, 49, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, -/* 0x1d70 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, -/* 0x1d80 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, -/* 0x1d90 */ 48, 48, 48, 48, 48, 48, 51, 97, 32, 32, 48, 48, 48, 48, 48, 48, -/* 0x1da0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, -/* 0x1db0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, -/* 0x1dc0 */ 48, 48, 49, 55, 49, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, -/* 0x1dd0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, -/* 0x1de0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, 76, 70, 77, -/* 0x1df0 */ 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, -/* 0x1e00 */ 98, 53, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e10 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e20 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 55, 52,101, -/* 0x1e30 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, -/* 0x1e40 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77, 66, 79, -/* 0x1e50 */ 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1e60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x1e70 */ 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48, -/* 0x1e80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, -/* 0x1e90 */ 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ea0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, -/* 0x1eb0 */ 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, -/* 0x1ed0 */ 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1ee0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, -/* 0x1ef0 */ 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f00 */ 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, -/* 0x1f10 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f20 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, -/* 0x1f30 */ 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f40 */ 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, -/* 0x1f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, -/* 0x1f60 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, -/* 0x1f70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1f80 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, -/* 0x1f90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, -/* 0x1fa0 */ 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x1fb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, -/* 0x1fc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x1fd0 */ 108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, -/* 0x1fe0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, -/* 0x1ff0 */ 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2000 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, -/* 0x2010 */ 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2020 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, -/* 0x2030 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x2040 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 9, 48, -/* 0x2050 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x2060 */ 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48, 48, -/* 0x2070 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x2080 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, -/* 0x2090 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x20a0 */ 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, 48, 48, 48, -/* 0x20b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x20c0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 9, 48, -/* 0x20d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, -/* 0x20e0 */ 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48, 48, 48, -/* 0x20f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, -/* 0x2100 */ 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, -/* 0x2110 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, -/* 0x2120 */ 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2130 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, -/* 0x2140 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, -/* 0x2150 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, -/* 0x2160 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, -/* 0x2170 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, -/* 0x2180 */ 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, -/* 0x2190 */ 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, -/* 0x21a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, -/* 0x21b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 97, 32, 82, -/* 0x21c0 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, -/* 0x21d0 */ 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120, 48, 48, 48, 48, -/* 0x21e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,100, 10, 10, 82, 69, -/* 0x21f0 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, -/* 0x2200 */ 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, 10, 79, 70, -/* 0x2210 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, -/* 0x2220 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x2230 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2240 */ 48, 48, 48, 48, 48, 97,102, 32, 82, 95, 88, 56, 54, 95, 54, 52, -/* 0x2250 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, -/* 0x2260 */ 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2270 */ 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2280 */ 48, 48, 48, 48, 53, 99, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, -/* 0x2290 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x22a0 */ 89, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102, -/* 0x22b0 */ 102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, -/* 0x22c0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, -/* 0x22d0 */ 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, -/* 0x22e0 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, -/* 0x22f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, -/* 0x2300 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 57, 54, 32, -/* 0x2310 */ 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, -/* 0x2320 */ 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, -/* 0x2330 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, -/* 0x2340 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, 99, 32, 82, -/* 0x2350 */ 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, -/* 0x2360 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 43, 48,120,102,102,102,102, -/* 0x2370 */ 102,102,102,102,102,102,102,102,102,102,102, 99, 10, 10, 82, 69, -/* 0x2380 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, -/* 0x2390 */ 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, 10, 79, 70, -/* 0x23a0 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, -/* 0x23b0 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, -/* 0x23c0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x23d0 */ 48, 48, 48, 48, 48, 56, 98, 32, 82, 95, 88, 56, 54, 95, 54, 52, -/* 0x23e0 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, -/* 0x23f0 */ 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2400 */ 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2410 */ 48, 48, 48, 48, 53, 51, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, -/* 0x2420 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, -/* 0x2430 */ 89, 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102, -/* 0x2440 */ 102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, -/* 0x2450 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, -/* 0x2460 */ 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, -/* 0x2470 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, -/* 0x2480 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, -/* 0x2490 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x24a0 */ 48, 48, 48, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, -/* 0x24b0 */ 51, 50, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, -/* 0x24c0 */ 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x24d0 */ 48, 48, 49, 50, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, -/* 0x24e0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, -/* 0x24f0 */ 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, -/* 0x2500 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, -/* 0x2510 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, -/* 0x2520 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, -/* 0x2530 */ 49, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, -/* 0x2540 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120, -/* 0x2550 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, -/* 0x2560 */ 10 +/* 0x0040 */ 144,204,204, 80, 86, 87, 80, 82, 85, 72,137,229,232, 0, 0, 0, +/* 0x0050 */ 0, 85, 83, 81, 82, 72, 1,254, 86, 72,137,254, 72,137,215, 49, +/* 0x0060 */ 219, 49,201, 72,131,205,255,232, 80, 0, 0, 0, 1,219,116, 2, +/* 0x0070 */ 243,195,139, 30, 72,131,238,252, 17,219,138, 22,243,195, 72,141, +/* 0x0080 */ 4, 47,131,249, 5,138, 16,118, 33, 72,131,253,252,119, 27,131, +/* 0x0090 */ 233, 4,139, 16, 72,131,192, 4,131,233, 4,137, 23, 72,141,127, +/* 0x00a0 */ 4,115,239,131,193, 4,138, 16,116, 16, 72,255,192,136, 23,131, +/* 0x00b0 */ 233, 1,138, 16, 72,141,127, 1,117,240,243,195,252, 65, 91, 65, +/* 0x00c0 */ 128,248, 8, 15,133,174, 0, 0, 0,235, 8, 72,255,198,136, 23, +/* 0x00d0 */ 72,255,199,138, 22, 1,219,117, 10,139, 30, 72,131,238,252, 17, +/* 0x00e0 */ 219,138, 22,114,230,141, 65, 1,235, 7,255,200, 65,255,211, 17, +/* 0x00f0 */ 192, 65,255,211, 17,192, 1,219,117, 10,139, 30, 72,131,238,252, +/* 0x0100 */ 17,219,138, 22,115,228,131,232, 3,114, 29,193,224, 8, 15,182, +/* 0x0110 */ 210, 9,208, 72,255,198,131,240,255, 15,132, 0, 0, 0, 0,209, +/* 0x0120 */ 248, 72, 99,232,114, 56,235, 14, 1,219,117, 8,139, 30, 72,131, +/* 0x0130 */ 238,252, 17,219,114, 40,255,193, 1,219,117, 8,139, 30, 72,131, +/* 0x0140 */ 238,252, 17,219,114, 24, 65,255,211, 17,201, 1,219,117, 8,139, +/* 0x0150 */ 30, 72,131,238,252, 17,219,115,237,131,193, 2,235, 5, 65,255, +/* 0x0160 */ 211, 17,201, 72,129,253, 0,251,255,255,131,209, 2,232, 0, 0, +/* 0x0170 */ 0, 0,233, 92,255,255,255, 87, 94, 65,128,248, 5, 15,133,149, +/* 0x0180 */ 0, 0, 0,235, 8, 72,255,198,136, 23, 72,255,199,138, 22, 1, +/* 0x0190 */ 219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22,114,230,141, +/* 0x01a0 */ 65, 1,235, 7,255,200, 65,255,211, 17,192, 65,255,211, 17,192, +/* 0x01b0 */ 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22,115,228, +/* 0x01c0 */ 131,232, 3,114, 27,193,224, 8, 15,182,210, 9,208, 72,255,198, +/* 0x01d0 */ 131,240,255, 15,132, 0, 0, 0, 0,209,248, 72, 99,232,235, 3, +/* 0x01e0 */ 65,255,211, 17,201, 65,255,211, 17,201,117, 24,255,193, 65,255, +/* 0x01f0 */ 211, 17,201, 1,219,117, 8,139, 30, 72,131,238,252, 17,219,115, +/* 0x0200 */ 237,131,193, 2, 72,129,253, 0,251,255,255,131,209, 1,232, 0, +/* 0x0210 */ 0, 0, 0,233,117,255,255,255, 87, 94, 65,128,248, 2, 15,133, +/* 0x0220 */ 135, 0, 0, 0,235, 8, 72,255,198,136, 23, 72,255,199,138, 22, +/* 0x0230 */ 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22,114,230, +/* 0x0240 */ 141, 65, 1, 65,255,211, 17,192, 1,219,117, 10,139, 30, 72,131, +/* 0x0250 */ 238,252, 17,219,138, 22,115,235,131,232, 3,114, 23,193,224, 8, +/* 0x0260 */ 15,182,210, 9,208, 72,255,198,131,240,255, 15,132, 0, 0, 0, +/* 0x0270 */ 0, 72, 99,232,141, 65, 1, 65,255,211, 17,201, 65,255,211, 17, +/* 0x0280 */ 201,117, 24,137,193,131,192, 2, 65,255,211, 17,201, 1,219,117, +/* 0x0290 */ 8,139, 30, 72,131,238,252, 17,219,115,237, 72,129,253, 0,243, +/* 0x02a0 */ 255,255, 17,193,232, 0, 0, 0, 0,235,131, 87, 94, 65,128,248, +/* 0x02b0 */ 14, 15,133, 0, 0, 0, 0, 85, 72,137,229, 68,139, 9, 73,137, +/* 0x02c0 */ 208, 72,137,242, 72,141,119, 2, 86,138, 7,255,202,136,193, 36, +/* 0x02d0 */ 7,192,233, 3, 72,199,195, 0,253,255,255, 72,211,227,136,193, +/* 0x02e0 */ 72,141,156, 92,136,241,255,255, 72,131,227,192,106, 0, 72, 57, +/* 0x02f0 */ 220,117,249, 83, 72,141,123, 8,138, 78,255,255,202,136, 71, 2, +/* 0x0300 */ 136,200,192,233, 4,136, 79, 1, 36, 15,136, 7, 72,141, 79,252, +/* 0x0310 */ 80, 65, 87, 72,141, 71, 4, 69, 49,255, 65, 86, 65,190, 1, 0, +/* 0x0320 */ 0, 0, 65, 85, 69, 49,237, 65, 84, 85, 83, 72,137, 76, 36,240, +/* 0x0330 */ 72,137, 68, 36,216,184, 1, 0, 0, 0, 72,137,116, 36,248, 76, +/* 0x0340 */ 137, 68, 36,232,137,195, 68,137, 76, 36,228, 15,182, 79, 2,211, +/* 0x0350 */ 227,137,217, 72,139, 92, 36, 56,255,201,137, 76, 36,212, 15,182, +/* 0x0360 */ 79, 1,211,224, 72,139, 76, 36,240,255,200,137, 68, 36,208, 15, +/* 0x0370 */ 182, 7,199, 1, 0, 0, 0, 0,199, 68, 36,200, 0, 0, 0, 0, +/* 0x0380 */ 199, 68, 36,196, 1, 0, 0, 0,199, 68, 36,192, 1, 0, 0, 0, +/* 0x0390 */ 199, 68, 36,188, 1, 0, 0, 0,199, 3, 0, 0, 0, 0,137, 68, +/* 0x03a0 */ 36,204, 15,182, 79, 1, 1,193,184, 0, 3, 0, 0,211,224, 49, +/* 0x03b0 */ 201,141,184, 54, 7, 0, 0, 65, 57,255,115, 19, 72,139, 92, 36, +/* 0x03c0 */ 216,137,200,255,193, 57,249,102,199, 4, 67, 0, 4,235,235, 72, +/* 0x03d0 */ 139,124, 36,248,137,208, 69, 49,210, 65,131,203,255, 49,210, 73, +/* 0x03e0 */ 137,252, 73, 1,196, 76, 57,231, 15,132,239, 8, 0, 0, 15,182, +/* 0x03f0 */ 7, 65,193,226, 8,255,194, 72,255,199, 65, 9,194,131,250, 4, +/* 0x0400 */ 126,227, 68, 59,124, 36,228, 15,131,218, 8, 0, 0,139, 68, 36, +/* 0x0410 */ 212, 72, 99, 92, 36,200, 72,139, 84, 36,216, 68, 33,248,137, 68, +/* 0x0420 */ 36,184, 72, 99,108, 36,184, 72,137,216, 72,193,224, 4, 72, 1, +/* 0x0430 */ 232, 65,129,251,255,255,255, 0, 76,141, 12, 66,119, 26, 76, 57, +/* 0x0440 */ 231, 15,132,150, 8, 0, 0, 15,182, 7, 65,193,226, 8, 65,193, +/* 0x0450 */ 227, 8, 72,255,199, 65, 9,194, 65, 15,183, 17, 68,137,216,193, +/* 0x0460 */ 232, 11, 15,183,202, 15,175,193, 65, 57,194, 15,131,197, 1, 0, +/* 0x0470 */ 0, 65,137,195,184, 0, 8, 0, 0, 72,139, 92, 36,216, 41,200, +/* 0x0480 */ 15,182, 76, 36,204,190, 1, 0, 0, 0,193,248, 5,141, 4, 2, +/* 0x0490 */ 65, 15,182,213,102, 65,137, 1,139, 68, 36,208, 68, 33,248,211, +/* 0x04a0 */ 224,185, 8, 0, 0, 0, 43, 76, 36,204,211,250, 1,208,105,192, +/* 0x04b0 */ 0, 3, 0, 0,131,124, 36,200, 6,137,192, 76,141,140, 67,108, +/* 0x04c0 */ 14, 0, 0, 15,142,184, 0, 0, 0, 72,139, 84, 36,232, 68,137, +/* 0x04d0 */ 248, 68, 41,240, 15,182, 44, 2, 1,237, 72, 99,214,137,235,129, +/* 0x04e0 */ 227, 0, 1, 0, 0, 65,129,251,255,255,255, 0, 72, 99,195, 73, +/* 0x04f0 */ 141, 4, 65, 76,141, 4, 80,119, 26, 76, 57,231, 15,132,219, 7, +/* 0x0500 */ 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, +/* 0x0510 */ 65, 9,194, 65, 15,183,144, 0, 2, 0, 0, 68,137,216,193,232, +/* 0x0520 */ 11, 15,183,202, 15,175,193, 65, 57,194,115, 32, 65,137,195,184, +/* 0x0530 */ 0, 8, 0, 0, 1,246, 41,200,193,248, 5,133,219,141, 4, 2, +/* 0x0540 */ 102, 65,137,128, 0, 2, 0, 0,116, 33,235, 45, 65, 41,195, 65, +/* 0x0550 */ 41,194,137,208,102,193,232, 5,141,116, 54, 1,102, 41,194,133, +/* 0x0560 */ 219,102, 65,137,144, 0, 2, 0, 0,116, 14,129,254,255, 0, 0, +/* 0x0570 */ 0, 15,142, 97,255,255,255,235,120,129,254,255, 0, 0, 0,127, +/* 0x0580 */ 112, 72, 99,198, 65,129,251,255,255,255, 0, 77,141, 4, 65,119, +/* 0x0590 */ 26, 76, 57,231, 15,132, 67, 7, 0, 0, 15,182, 7, 65,193,226, +/* 0x05a0 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 16, 68, +/* 0x05b0 */ 137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 24, +/* 0x05c0 */ 65,137,195,184, 0, 8, 0, 0, 1,246, 41,200,193,248, 5,141, +/* 0x05d0 */ 4, 2,102, 65,137, 0,235,161, 65, 41,195, 65, 41,194,137,208, +/* 0x05e0 */ 102,193,232, 5,141,116, 54, 1,102, 41,194,102, 65,137, 16,235, +/* 0x05f0 */ 136, 72,139, 76, 36,232, 68,137,248, 65,255,199, 65,137,245, 64, +/* 0x0600 */ 136, 52, 1,131,124, 36,200, 3,127, 13,199, 68, 36,200, 0, 0, +/* 0x0610 */ 0, 0,233,166, 6, 0, 0,139, 84, 36,200,139, 68, 36,200,131, +/* 0x0620 */ 234, 3,131,232, 6,131,124, 36,200, 9, 15, 79,208,137, 84, 36, +/* 0x0630 */ 200,233,135, 6, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193, +/* 0x0640 */ 232, 5,102, 41,194, 72,139, 68, 36,216, 65,129,251,255,255,255, +/* 0x0650 */ 0,102, 65,137, 17, 72,141, 52, 88,119, 26, 76, 57,231, 15,132, +/* 0x0660 */ 121, 6, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72, +/* 0x0670 */ 255,199, 65, 9,194, 15,183,150,128, 1, 0, 0, 68,137,216,193, +/* 0x0680 */ 232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 78, 65,137,195, +/* 0x0690 */ 184, 0, 8, 0, 0, 76,139, 76, 36,216, 41,200,139, 76, 36,196, +/* 0x06a0 */ 68,137,116, 36,196,193,248, 5,141, 4, 2,139, 84, 36,192,137, +/* 0x06b0 */ 76, 36,192,102,137,134,128, 1, 0, 0, 49,192,131,124, 36,200, +/* 0x06c0 */ 6,137, 84, 36,188, 15,159,192, 73,129,193,100, 6, 0, 0,141, +/* 0x06d0 */ 4, 64,137, 68, 36,200,233, 84, 2, 0, 0, 65, 41,195, 65, 41, +/* 0x06e0 */ 194,137,208,102,193,232, 5,102, 41,194, 65,129,251,255,255,255, +/* 0x06f0 */ 0,102,137,150,128, 1, 0, 0,119, 26, 76, 57,231, 15,132,218, +/* 0x0700 */ 5, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255, +/* 0x0710 */ 199, 65, 9,194, 15,183,150,152, 1, 0, 0, 68,137,216,193,232, +/* 0x0720 */ 11, 15,183,202, 15,175,193, 65, 57,194, 15,131,208, 0, 0, 0, +/* 0x0730 */ 65,184, 0, 8, 0, 0, 65,137,195, 72,193,227, 5, 68,137,192, +/* 0x0740 */ 41,200,193,248, 5,141, 4, 2,102,137,134,152, 1, 0, 0, 72, +/* 0x0750 */ 139, 68, 36,216, 72, 1,216, 65,129,251,255,255,255, 0, 72,141, +/* 0x0760 */ 52,104,119, 26, 76, 57,231, 15,132,112, 5, 0, 0, 15,182, 7, +/* 0x0770 */ 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, +/* 0x0780 */ 150,224, 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175, +/* 0x0790 */ 193, 65, 57,194,115, 79, 65, 41,200, 65,137,195, 65,193,248, 5, +/* 0x07a0 */ 69,133,255, 66,141, 4, 2,102,137,134,224, 1, 0, 0, 15,132, +/* 0x07b0 */ 41, 5, 0, 0, 49,192,131,124, 36,200, 6, 72,139, 92, 36,232, +/* 0x07c0 */ 15,159,192,141, 68, 0, 9,137, 68, 36,200, 68,137,248, 68, 41, +/* 0x07d0 */ 240, 68, 15,182, 44, 3, 68,137,248, 65,255,199, 68,136, 44, 3, +/* 0x07e0 */ 233,216, 4, 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, +/* 0x07f0 */ 5,102, 41,194,102,137,150,224, 1, 0, 0,233, 17, 1, 0, 0, +/* 0x0800 */ 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65, +/* 0x0810 */ 129,251,255,255,255, 0,102,137,150,152, 1, 0, 0,119, 26, 76, +/* 0x0820 */ 57,231, 15,132,181, 4, 0, 0, 15,182, 7, 65,193,226, 8, 65, +/* 0x0830 */ 193,227, 8, 72,255,199, 65, 9,194, 15,183,150,176, 1, 0, 0, +/* 0x0840 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, +/* 0x0850 */ 32, 65,137,195,184, 0, 8, 0, 0, 41,200,193,248, 5,141, 4, +/* 0x0860 */ 2,102,137,134,176, 1, 0, 0,139, 68, 36,196,233,152, 0, 0, +/* 0x0870 */ 0, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, +/* 0x0880 */ 65,129,251,255,255,255, 0,102,137,150,176, 1, 0, 0,119, 26, +/* 0x0890 */ 76, 57,231, 15,132, 68, 4, 0, 0, 15,182, 7, 65,193,226, 8, +/* 0x08a0 */ 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,200, 1, 0, +/* 0x08b0 */ 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194, +/* 0x08c0 */ 115, 29, 65,137,195,184, 0, 8, 0, 0, 41,200,193,248, 5,141, +/* 0x08d0 */ 4, 2,102,137,134,200, 1, 0, 0,139, 68, 36,192,235, 34, 65, +/* 0x08e0 */ 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41,194,139, 68, +/* 0x08f0 */ 36,188,102,137,150,200, 1, 0, 0,139, 84, 36,192,137, 84, 36, +/* 0x0900 */ 188,139, 76, 36,196,137, 76, 36,192, 68,137,116, 36,196, 65,137, +/* 0x0910 */ 198, 49,192,131,124, 36,200, 6, 76,139, 76, 36,216, 15,159,192, +/* 0x0920 */ 73,129,193,104, 10, 0, 0,141, 68, 64, 8,137, 68, 36,200, 65, +/* 0x0930 */ 129,251,255,255,255, 0,119, 26, 76, 57,231, 15,132,156, 3, 0, +/* 0x0940 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, +/* 0x0950 */ 9,194, 65, 15,183, 17, 68,137,216,193,232, 11, 15,183,202, 15, +/* 0x0960 */ 175,193, 65, 57,194,115, 39, 65,137,195,184, 0, 8, 0, 0, 69, +/* 0x0970 */ 49,237, 41,200,193,248, 5,141, 4, 2,102, 65,137, 1, 72, 99, +/* 0x0980 */ 68, 36,184, 72,193,224, 4, 77,141, 68, 1, 4,235,120, 65, 41, +/* 0x0990 */ 195, 65, 41,194,137,208,102,193,232, 5,102, 41,194, 65,129,251, +/* 0x09a0 */ 255,255,255, 0,102, 65,137, 17,119, 26, 76, 57,231, 15,132, 42, +/* 0x09b0 */ 3, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255, +/* 0x09c0 */ 199, 65, 9,194, 65, 15,183, 81, 2, 68,137,216,193,232, 11, 15, +/* 0x09d0 */ 183,202, 15,175,193, 65, 57,194,115, 52, 65,137,195,184, 0, 8, +/* 0x09e0 */ 0, 0, 65,189, 8, 0, 0, 0, 41,200,193,248, 5,141, 4, 2, +/* 0x09f0 */ 102, 65,137, 65, 2, 72, 99, 68, 36,184, 72,193,224, 4, 77,141, +/* 0x0a00 */ 132, 1, 4, 1, 0, 0, 65,185, 3, 0, 0, 0,235, 39, 65, 41, +/* 0x0a10 */ 195, 65, 41,194,137,208,102,193,232, 5, 77,141,129, 4, 2, 0, +/* 0x0a20 */ 0, 65,189, 16, 0, 0, 0,102, 41,194,102, 65,137, 81, 2, 65, +/* 0x0a30 */ 185, 8, 0, 0, 0, 68,137,203,189, 1, 0, 0, 0, 72, 99,197, +/* 0x0a40 */ 65,129,251,255,255,255, 0, 73,141, 52, 64,119, 26, 76, 57,231, +/* 0x0a50 */ 15,132,135, 2, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, +/* 0x0a60 */ 8, 72,255,199, 65, 9,194, 15,183, 14, 68,137,216,193,232, 11, +/* 0x0a70 */ 15,183,209, 15,175,194, 65, 57,194,115, 23, 65,137,195,184, 0, +/* 0x0a80 */ 8, 0, 0, 1,237, 41,208,193,248, 5,141, 4, 1,102,137, 6, +/* 0x0a90 */ 235, 22, 65, 41,195, 65, 41,194,137,200,102,193,232, 5,141,108, +/* 0x0aa0 */ 45, 1,102, 41,193,102,137, 14,255,203,117,145,184, 1, 0, 0, +/* 0x0ab0 */ 0, 68,137,201,211,224, 41,197, 68, 1,237,131,124, 36,200, 3, +/* 0x0ac0 */ 15,143,194, 1, 0, 0,131, 68, 36,200, 7,184, 3, 0, 0, 0, +/* 0x0ad0 */ 131,253, 4, 15, 76,197, 72,139, 92, 36,216, 65,184, 1, 0, 0, +/* 0x0ae0 */ 0, 72,152, 72,193,224, 7, 76,141,140, 3, 96, 3, 0, 0,187, +/* 0x0af0 */ 6, 0, 0, 0, 73, 99,192, 65,129,251,255,255,255, 0, 73,141, +/* 0x0b00 */ 52, 65,119, 26, 76, 57,231, 15,132,208, 1, 0, 0, 15,182, 7, +/* 0x0b10 */ 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, +/* 0x0b20 */ 22, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194, +/* 0x0b30 */ 115, 24, 65,137,195,184, 0, 8, 0, 0, 69, 1,192, 41,200,193, +/* 0x0b40 */ 248, 5,141, 4, 2,102,137, 6,235, 23, 65, 41,195, 65, 41,194, +/* 0x0b50 */ 137,208,102,193,232, 5, 71,141, 68, 0, 1,102, 41,194,102,137, +/* 0x0b60 */ 22,255,203,117,143, 65,131,232, 64, 65,131,248, 3, 69,137,198, +/* 0x0b70 */ 15,142, 13, 1, 0, 0, 65,131,230, 1, 68,137,192,209,248, 65, +/* 0x0b80 */ 131,206, 2, 65,131,248, 13,141,112,255,127, 35,137,241, 72,139, +/* 0x0b90 */ 92, 36,216, 73, 99,192, 65,211,230, 72, 1,192, 68,137,242, 72, +/* 0x0ba0 */ 141, 20, 83, 72, 41,194, 76,141,138, 94, 5, 0, 0,235, 81,141, +/* 0x0bb0 */ 112,251, 65,129,251,255,255,255, 0,119, 26, 76, 57,231, 15,132, +/* 0x0bc0 */ 25, 1, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72, +/* 0x0bd0 */ 255,199, 65, 9,194, 65,209,235, 69, 1,246, 69, 57,218,114, 7, +/* 0x0be0 */ 69, 41,218, 65,131,206, 1,255,206,117,199, 76,139, 76, 36,216, +/* 0x0bf0 */ 65,193,230, 4,190, 4, 0, 0, 0, 73,129,193, 68, 6, 0, 0, +/* 0x0c00 */ 65,189, 1, 0, 0, 0,187, 1, 0, 0, 0, 72, 99,195, 65,129, +/* 0x0c10 */ 251,255,255,255, 0, 77,141, 4, 65,119, 26, 76, 57,231, 15,132, +/* 0x0c20 */ 185, 0, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72, +/* 0x0c30 */ 255,199, 65, 9,194, 65, 15,183, 16, 68,137,216,193,232, 11, 15, +/* 0x0c40 */ 183,202, 15,175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, +/* 0x0c50 */ 0, 0, 1,219, 41,200,193,248, 5,141, 4, 2,102, 65,137, 0, +/* 0x0c60 */ 235, 26, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,141, 92, +/* 0x0c70 */ 27, 1, 69, 9,238,102, 41,194,102, 65,137, 16, 69, 1,237,255, +/* 0x0c80 */ 206,117,136, 65,255,198,116, 64,131,197, 2, 69, 57,254,119, 77, +/* 0x0c90 */ 72,139, 84, 36,232, 68,137,248, 68, 41,240, 68, 15,182, 44, 2, +/* 0x0ca0 */ 68,137,248, 65,255,199,255,205, 68,136, 44, 2, 15,149,194, 49, +/* 0x0cb0 */ 192, 68, 59,124, 36,228, 15,146,192,133,194,117,211, 68, 59,124, +/* 0x0cc0 */ 36,228, 15,130, 69,247,255,255, 65,129,251,255,255,255, 0,119, +/* 0x0cd0 */ 22, 76, 57,231,184, 1, 0, 0, 0,116, 35,235, 7,184, 1, 0, +/* 0x0ce0 */ 0, 0,235, 26, 72,255,199,137,248, 43, 68, 36,248, 72,139, 76, +/* 0x0cf0 */ 36,240, 72,139, 92, 36, 56,137, 1, 68,137, 59, 49,192, 91, 93, +/* 0x0d00 */ 65, 92, 65, 93, 65, 94, 65, 95, 65, 87, 72,141, 71, 4, 69, 49, +/* 0x0d10 */ 255, 65, 86, 65,190, 1, 0, 0, 0, 65, 85, 69, 49,237, 65, 84, +/* 0x0d20 */ 85, 83, 72,137, 76, 36,240, 72,137, 68, 36,216,184, 1, 0, 0, +/* 0x0d30 */ 0, 72,137,116, 36,248, 76,137, 68, 36,232,137,195, 68,137, 76, +/* 0x0d40 */ 36,228, 15,182, 79, 2,211,227,137,217, 72,139, 92, 36, 56,255, +/* 0x0d50 */ 201,137, 76, 36,212, 15,182, 79, 1,211,224, 72,139, 76, 36,240, +/* 0x0d60 */ 255,200,137, 68, 36,208, 15,182, 7,199, 1, 0, 0, 0, 0,199, +/* 0x0d70 */ 68, 36,200, 0, 0, 0, 0,199, 68, 36,196, 1, 0, 0, 0,199, +/* 0x0d80 */ 68, 36,192, 1, 0, 0, 0,199, 68, 36,188, 1, 0, 0, 0,199, +/* 0x0d90 */ 3, 0, 0, 0, 0,137, 68, 36,204, 15,182, 79, 1, 1,193,184, +/* 0x0da0 */ 0, 3, 0, 0,211,224, 49,201,141,184, 54, 7, 0, 0, 65, 57, +/* 0x0db0 */ 255,115, 19, 72,139, 92, 36,216,137,200,255,193, 57,249,102,199, +/* 0x0dc0 */ 4, 67, 0, 4,235,235, 72,139,124, 36,248,137,208, 69, 49,210, +/* 0x0dd0 */ 65,131,203,255, 49,210, 73,137,252, 73, 1,196, 76, 57,231, 15, +/* 0x0de0 */ 132,239, 8, 0, 0, 15,182, 7, 65,193,226, 8,255,194, 72,255, +/* 0x0df0 */ 199, 65, 9,194,131,250, 4,126,227, 68, 59,124, 36,228, 15,131, +/* 0x0e00 */ 218, 8, 0, 0,139, 68, 36,212, 72, 99, 92, 36,200, 72,139, 84, +/* 0x0e10 */ 36,216, 68, 33,248,137, 68, 36,184, 72, 99,108, 36,184, 72,137, +/* 0x0e20 */ 216, 72,193,224, 4, 72, 1,232, 65,129,251,255,255,255, 0, 76, +/* 0x0e30 */ 141, 12, 66,119, 26, 76, 57,231, 15,132,150, 8, 0, 0, 15,182, +/* 0x0e40 */ 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, +/* 0x0e50 */ 15,183, 17, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, +/* 0x0e60 */ 57,194, 15,131,197, 1, 0, 0, 65,137,195,184, 0, 8, 0, 0, +/* 0x0e70 */ 72,139, 92, 36,216, 41,200, 15,182, 76, 36,204,190, 1, 0, 0, +/* 0x0e80 */ 0,193,248, 5,141, 4, 2, 65, 15,182,213,102, 65,137, 1,139, +/* 0x0e90 */ 68, 36,208, 68, 33,248,211,224,185, 8, 0, 0, 0, 43, 76, 36, +/* 0x0ea0 */ 204,211,250, 1,208,105,192, 0, 3, 0, 0,131,124, 36,200, 6, +/* 0x0eb0 */ 137,192, 76,141,140, 67,108, 14, 0, 0, 15,142,184, 0, 0, 0, +/* 0x0ec0 */ 72,139, 84, 36,232, 68,137,248, 68, 41,240, 15,182, 44, 2, 1, +/* 0x0ed0 */ 237, 72, 99,214,137,235,129,227, 0, 1, 0, 0, 65,129,251,255, +/* 0x0ee0 */ 255,255, 0, 72, 99,195, 73,141, 4, 65, 76,141, 4, 80,119, 26, +/* 0x0ef0 */ 76, 57,231, 15,132,219, 7, 0, 0, 15,182, 7, 65,193,226, 8, +/* 0x0f00 */ 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183,144, 0, 2, +/* 0x0f10 */ 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57, +/* 0x0f20 */ 194,115, 32, 65,137,195,184, 0, 8, 0, 0, 1,246, 41,200,193, +/* 0x0f30 */ 248, 5,133,219,141, 4, 2,102, 65,137,128, 0, 2, 0, 0,116, +/* 0x0f40 */ 33,235, 45, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,141, +/* 0x0f50 */ 116, 54, 1,102, 41,194,133,219,102, 65,137,144, 0, 2, 0, 0, +/* 0x0f60 */ 116, 14,129,254,255, 0, 0, 0, 15,142, 97,255,255,255,235,120, +/* 0x0f70 */ 129,254,255, 0, 0, 0,127,112, 72, 99,198, 65,129,251,255,255, +/* 0x0f80 */ 255, 0, 77,141, 4, 65,119, 26, 76, 57,231, 15,132, 67, 7, 0, +/* 0x0f90 */ 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, +/* 0x0fa0 */ 9,194, 65, 15,183, 16, 68,137,216,193,232, 11, 15,183,202, 15, +/* 0x0fb0 */ 175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0, 0, 1, +/* 0x0fc0 */ 246, 41,200,193,248, 5,141, 4, 2,102, 65,137, 0,235,161, 65, +/* 0x0fd0 */ 41,195, 65, 41,194,137,208,102,193,232, 5,141,116, 54, 1,102, +/* 0x0fe0 */ 41,194,102, 65,137, 16,235,136, 72,139, 76, 36,232, 68,137,248, +/* 0x0ff0 */ 65,255,199, 65,137,245, 64,136, 52, 1,131,124, 36,200, 3,127, +/* 0x1000 */ 13,199, 68, 36,200, 0, 0, 0, 0,233,166, 6, 0, 0,139, 84, +/* 0x1010 */ 36,200,139, 68, 36,200,131,234, 3,131,232, 6,131,124, 36,200, +/* 0x1020 */ 9, 15, 79,208,137, 84, 36,200,233,135, 6, 0, 0, 65, 41,195, +/* 0x1030 */ 65, 41,194,137,208,102,193,232, 5,102, 41,194, 72,139, 68, 36, +/* 0x1040 */ 216, 65,129,251,255,255,255, 0,102, 65,137, 17, 72,141, 52, 88, +/* 0x1050 */ 119, 26, 76, 57,231, 15,132,121, 6, 0, 0, 15,182, 7, 65,193, +/* 0x1060 */ 226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,128, +/* 0x1070 */ 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, +/* 0x1080 */ 57,194,115, 78, 65,137,195,184, 0, 8, 0, 0, 76,139, 76, 36, +/* 0x1090 */ 216, 41,200,139, 76, 36,196, 68,137,116, 36,196,193,248, 5,141, +/* 0x10a0 */ 4, 2,139, 84, 36,192,137, 76, 36,192,102,137,134,128, 1, 0, +/* 0x10b0 */ 0, 49,192,131,124, 36,200, 6,137, 84, 36,188, 15,159,192, 73, +/* 0x10c0 */ 129,193,100, 6, 0, 0,141, 4, 64,137, 68, 36,200,233, 84, 2, +/* 0x10d0 */ 0, 0, 65, 41,195, 65, 41,194,137,208,102,193,232, 5,102, 41, +/* 0x10e0 */ 194, 65,129,251,255,255,255, 0,102,137,150,128, 1, 0, 0,119, +/* 0x10f0 */ 26, 76, 57,231, 15,132,218, 5, 0, 0, 15,182, 7, 65,193,226, +/* 0x1100 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183,150,152, 1, +/* 0x1110 */ 0, 0, 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57, +/* 0x1120 */ 194, 15,131,208, 0, 0, 0, 65,184, 0, 8, 0, 0, 65,137,195, +/* 0x1130 */ 72,193,227, 5, 68,137,192, 41,200,193,248, 5,141, 4, 2,102, +/* 0x1140 */ 137,134,152, 1, 0, 0, 72,139, 68, 36,216, 72, 1,216, 65,129, +/* 0x1150 */ 251,255,255,255, 0, 72,141, 52,104,119, 26, 76, 57,231, 15,132, +/* 0x1160 */ 112, 5, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72, +/* 0x1170 */ 255,199, 65, 9,194, 15,183,150,224, 1, 0, 0, 68,137,216,193, +/* 0x1180 */ 232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 79, 65, 41,200, +/* 0x1190 */ 65,137,195, 65,193,248, 5, 69,133,255, 66,141, 4, 2,102,137, +/* 0x11a0 */ 134,224, 1, 0, 0, 15,132, 41, 5, 0, 0, 49,192,131,124, 36, +/* 0x11b0 */ 200, 6, 72,139, 92, 36,232, 15,159,192,141, 68, 0, 9,137, 68, +/* 0x11c0 */ 36,200, 68,137,248, 68, 41,240, 68, 15,182, 44, 3, 68,137,248, +/* 0x11d0 */ 65,255,199, 68,136, 44, 3,233,216, 4, 0, 0, 65, 41,195, 65, +/* 0x11e0 */ 41,194,137,208,102,193,232, 5,102, 41,194,102,137,150,224, 1, +/* 0x11f0 */ 0, 0,233, 17, 1, 0, 0, 65, 41,195, 65, 41,194,137,208,102, +/* 0x1200 */ 193,232, 5,102, 41,194, 65,129,251,255,255,255, 0,102,137,150, +/* 0x1210 */ 152, 1, 0, 0,119, 26, 76, 57,231, 15,132,181, 4, 0, 0, 15, +/* 0x1220 */ 182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, +/* 0x1230 */ 15,183,150,176, 1, 0, 0, 68,137,216,193,232, 11, 15,183,202, +/* 0x1240 */ 15,175,193, 65, 57,194,115, 32, 65,137,195,184, 0, 8, 0, 0, +/* 0x1250 */ 41,200,193,248, 5,141, 4, 2,102,137,134,176, 1, 0, 0,139, +/* 0x1260 */ 68, 36,196,233,152, 0, 0, 0, 65, 41,195, 65, 41,194,137,208, +/* 0x1270 */ 102,193,232, 5,102, 41,194, 65,129,251,255,255,255, 0,102,137, +/* 0x1280 */ 150,176, 1, 0, 0,119, 26, 76, 57,231, 15,132, 68, 4, 0, 0, +/* 0x1290 */ 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9, +/* 0x12a0 */ 194, 15,183,150,200, 1, 0, 0, 68,137,216,193,232, 11, 15,183, +/* 0x12b0 */ 202, 15,175,193, 65, 57,194,115, 29, 65,137,195,184, 0, 8, 0, +/* 0x12c0 */ 0, 41,200,193,248, 5,141, 4, 2,102,137,134,200, 1, 0, 0, +/* 0x12d0 */ 139, 68, 36,192,235, 34, 65, 41,195, 65, 41,194,137,208,102,193, +/* 0x12e0 */ 232, 5,102, 41,194,139, 68, 36,188,102,137,150,200, 1, 0, 0, +/* 0x12f0 */ 139, 84, 36,192,137, 84, 36,188,139, 76, 36,196,137, 76, 36,192, +/* 0x1300 */ 68,137,116, 36,196, 65,137,198, 49,192,131,124, 36,200, 6, 76, +/* 0x1310 */ 139, 76, 36,216, 15,159,192, 73,129,193,104, 10, 0, 0,141, 68, +/* 0x1320 */ 64, 8,137, 68, 36,200, 65,129,251,255,255,255, 0,119, 26, 76, +/* 0x1330 */ 57,231, 15,132,156, 3, 0, 0, 15,182, 7, 65,193,226, 8, 65, +/* 0x1340 */ 193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 17, 68,137,216, +/* 0x1350 */ 193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, 39, 65,137, +/* 0x1360 */ 195,184, 0, 8, 0, 0, 69, 49,237, 41,200,193,248, 5,141, 4, +/* 0x1370 */ 2,102, 65,137, 1, 72, 99, 68, 36,184, 72,193,224, 4, 77,141, +/* 0x1380 */ 68, 1, 4,235,120, 65, 41,195, 65, 41,194,137,208,102,193,232, +/* 0x1390 */ 5,102, 41,194, 65,129,251,255,255,255, 0,102, 65,137, 17,119, +/* 0x13a0 */ 26, 76, 57,231, 15,132, 42, 3, 0, 0, 15,182, 7, 65,193,226, +/* 0x13b0 */ 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 81, 2, +/* 0x13c0 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, +/* 0x13d0 */ 52, 65,137,195,184, 0, 8, 0, 0, 65,189, 8, 0, 0, 0, 41, +/* 0x13e0 */ 200,193,248, 5,141, 4, 2,102, 65,137, 65, 2, 72, 99, 68, 36, +/* 0x13f0 */ 184, 72,193,224, 4, 77,141,132, 1, 4, 1, 0, 0, 65,185, 3, +/* 0x1400 */ 0, 0, 0,235, 39, 65, 41,195, 65, 41,194,137,208,102,193,232, +/* 0x1410 */ 5, 77,141,129, 4, 2, 0, 0, 65,189, 16, 0, 0, 0,102, 41, +/* 0x1420 */ 194,102, 65,137, 81, 2, 65,185, 8, 0, 0, 0, 68,137,203,189, +/* 0x1430 */ 1, 0, 0, 0, 72, 99,197, 65,129,251,255,255,255, 0, 73,141, +/* 0x1440 */ 52, 64,119, 26, 76, 57,231, 15,132,135, 2, 0, 0, 15,182, 7, +/* 0x1450 */ 65,193,226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 15,183, +/* 0x1460 */ 14, 68,137,216,193,232, 11, 15,183,209, 15,175,194, 65, 57,194, +/* 0x1470 */ 115, 23, 65,137,195,184, 0, 8, 0, 0, 1,237, 41,208,193,248, +/* 0x1480 */ 5,141, 4, 1,102,137, 6,235, 22, 65, 41,195, 65, 41,194,137, +/* 0x1490 */ 200,102,193,232, 5,141,108, 45, 1,102, 41,193,102,137, 14,255, +/* 0x14a0 */ 203,117,145,184, 1, 0, 0, 0, 68,137,201,211,224, 41,197, 68, +/* 0x14b0 */ 1,237,131,124, 36,200, 3, 15,143,194, 1, 0, 0,131, 68, 36, +/* 0x14c0 */ 200, 7,184, 3, 0, 0, 0,131,253, 4, 15, 76,197, 72,139, 92, +/* 0x14d0 */ 36,216, 65,184, 1, 0, 0, 0, 72,152, 72,193,224, 7, 76,141, +/* 0x14e0 */ 140, 3, 96, 3, 0, 0,187, 6, 0, 0, 0, 73, 99,192, 65,129, +/* 0x14f0 */ 251,255,255,255, 0, 73,141, 52, 65,119, 26, 76, 57,231, 15,132, +/* 0x1500 */ 208, 1, 0, 0, 15,182, 7, 65,193,226, 8, 65,193,227, 8, 72, +/* 0x1510 */ 255,199, 65, 9,194, 15,183, 22, 68,137,216,193,232, 11, 15,183, +/* 0x1520 */ 202, 15,175,193, 65, 57,194,115, 24, 65,137,195,184, 0, 8, 0, +/* 0x1530 */ 0, 69, 1,192, 41,200,193,248, 5,141, 4, 2,102,137, 6,235, +/* 0x1540 */ 23, 65, 41,195, 65, 41,194,137,208,102,193,232, 5, 71,141, 68, +/* 0x1550 */ 0, 1,102, 41,194,102,137, 22,255,203,117,143, 65,131,232, 64, +/* 0x1560 */ 65,131,248, 3, 69,137,198, 15,142, 13, 1, 0, 0, 65,131,230, +/* 0x1570 */ 1, 68,137,192,209,248, 65,131,206, 2, 65,131,248, 13,141,112, +/* 0x1580 */ 255,127, 35,137,241, 72,139, 92, 36,216, 73, 99,192, 65,211,230, +/* 0x1590 */ 72, 1,192, 68,137,242, 72,141, 20, 83, 72, 41,194, 76,141,138, +/* 0x15a0 */ 94, 5, 0, 0,235, 81,141,112,251, 65,129,251,255,255,255, 0, +/* 0x15b0 */ 119, 26, 76, 57,231, 15,132, 25, 1, 0, 0, 15,182, 7, 65,193, +/* 0x15c0 */ 226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65,209,235, 69, +/* 0x15d0 */ 1,246, 69, 57,218,114, 7, 69, 41,218, 65,131,206, 1,255,206, +/* 0x15e0 */ 117,199, 76,139, 76, 36,216, 65,193,230, 4,190, 4, 0, 0, 0, +/* 0x15f0 */ 73,129,193, 68, 6, 0, 0, 65,189, 1, 0, 0, 0,187, 1, 0, +/* 0x1600 */ 0, 0, 72, 99,195, 65,129,251,255,255,255, 0, 77,141, 4, 65, +/* 0x1610 */ 119, 26, 76, 57,231, 15,132,185, 0, 0, 0, 15,182, 7, 65,193, +/* 0x1620 */ 226, 8, 65,193,227, 8, 72,255,199, 65, 9,194, 65, 15,183, 16, +/* 0x1630 */ 68,137,216,193,232, 11, 15,183,202, 15,175,193, 65, 57,194,115, +/* 0x1640 */ 24, 65,137,195,184, 0, 8, 0, 0, 1,219, 41,200,193,248, 5, +/* 0x1650 */ 141, 4, 2,102, 65,137, 0,235, 26, 65, 41,195, 65, 41,194,137, +/* 0x1660 */ 208,102,193,232, 5,141, 92, 27, 1, 69, 9,238,102, 41,194,102, +/* 0x1670 */ 65,137, 16, 69, 1,237,255,206,117,136, 65,255,198,116, 64,131, +/* 0x1680 */ 197, 2, 69, 57,254,119, 77, 72,139, 84, 36,232, 68,137,248, 68, +/* 0x1690 */ 41,240, 68, 15,182, 44, 2, 68,137,248, 65,255,199,255,205, 68, +/* 0x16a0 */ 136, 44, 2, 15,149,194, 49,192, 68, 59,124, 36,228, 15,146,192, +/* 0x16b0 */ 133,194,117,211, 68, 59,124, 36,228, 15,130, 69,247,255,255, 65, +/* 0x16c0 */ 129,251,255,255,255, 0,119, 22, 76, 57,231,184, 1, 0, 0, 0, +/* 0x16d0 */ 116, 35,235, 7,184, 1, 0, 0, 0,235, 26, 72,255,199,137,248, +/* 0x16e0 */ 43, 68, 36,248, 72,139, 76, 36,240, 72,139, 92, 36, 56,137, 1, +/* 0x16f0 */ 68,137, 59, 49,192, 91, 93, 65, 92, 65, 93, 65, 94, 65, 95, 72, +/* 0x1700 */ 139,117,248, 72,139,125, 16,139, 75, 4, 72, 1,206,139, 19, 72, +/* 0x1710 */ 1,215,201,235, 2, 87, 94, 89, 72,137,240, 72, 41,200, 90, 72, +/* 0x1720 */ 41,215, 89,137, 57, 91, 93,195,104, 30, 0, 0, 0, 90,232, 0, +/* 0x1730 */ 0, 0, 0, 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, 79, +/* 0x1740 */ 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, 10, +/* 0x1750 */ 0, 94,106, 2, 95,106, 1, 88, 15, 5,106,127, 95,106, 60, 88, +/* 0x1760 */ 15, 5, 90, 72,141,114,223, 72,137,241,173, 72, 41,193,173, 72, +/* 0x1770 */ 1,200, 72,137, 69, 40,173, 72, 1,200, 72,137, 69, 16,173, 72, +/* 0x1780 */ 141, 60, 1, 72,141,119, 24, 80, 80,173,173, 72, 1,198,173,173, +/* 0x1790 */ 72,137,249,129,225,255, 15, 0, 0, 72, 1,200, 80, 72, 41,207, +/* 0x17a0 */ 87, 72, 41,200, 72, 1,207, 81,232, 74, 0, 0, 0,131,249, 73, +/* 0x17b0 */ 117, 68, 83, 87, 72,141, 76, 55,253, 94, 86, 91,235, 47, 72, 57, +/* 0x17c0 */ 206,115, 50, 86, 94,172, 60,128,114, 10, 60,143,119, 6,128,126, +/* 0x17d0 */ 254, 15,116, 6, 44,232, 60, 1,119,228, 72, 57,206,115, 22, 86, +/* 0x17e0 */ 173, 40,208,117,223, 95, 15,200, 41,248, 1,216,171, 72, 57,206, +/* 0x17f0 */ 115, 3,172,235,223, 91,195, 15,182, 78, 5, 81, 15,182, 78, 6, +/* 0x1800 */ 81, 80, 72,137,225, 87, 82,173,137,194,173, 80, 81, 87, 82, 86, +/* 0x1810 */ 72,139, 69,168, 3, 80,252, 72,139, 69,208, 3, 80,252,232,110, +/* 0x1820 */ 0, 0, 0,106, 0, 65, 89,106, 0, 65, 88,106, 50, 65, 90,106, +/* 0x1830 */ 3, 90, 72,139,117,232, 72,139,125,224,106, 9, 88, 15, 5, 72, +/* 0x1840 */ 57,248,116, 1,244,139, 77,216, 72,137,199, 72,139,117,240,131, +/* 0x1850 */ 193, 3,193,233, 2,243,165, 95, 94, 90, 89, 65, 88, 88,255,208, +/* 0x1860 */ 95, 94, 72,141, 4, 55,199, 0, 15, 5, 95, 94,198, 64, 4,195, +/* 0x1870 */ 72,137, 69, 16, 90, 89, 88, 72,133,201,116, 2,255,208, 89, 95, +/* 0x1880 */ 94,106, 5, 90,106, 10, 88, 15, 5, 95, 94,106, 11, 88, 93, 90, +/* 0x1890 */ 195,139,117,216, 1,214, 88, 80, 3,112,252,106, 0, 65, 89,106, +/* 0x18a0 */ 0, 65, 88,106, 34, 65, 90,106, 7, 90, 72,137,117,248,106, 0, +/* 0x18b0 */ 95,106, 9, 88, 15, 5, 72, 61, 0,240,255,255,114, 1,244, 72, +/* 0x18c0 */ 137, 69,240, 72,137,199, 88,139, 77,216, 72,139,117,224,131,193, +/* 0x18d0 */ 3,193,233, 2,243,165, 94, 89, 81, 87,131,193, 3,193,233, 2, +/* 0x18e0 */ 243,165, 72,139,117,168, 72,137,125,168,139, 78,252,243,164, 72, +/* 0x18f0 */ 139,117,208, 72,137,125,208,139, 78,252,243,164, 72,137,198, 87, +/* 0x1900 */ 139, 78,252,243,164,195,102,105,108,101, 32,102,111,114,109, 97, +/* 0x1910 */ 116, 32,101,108,102, 54, 52, 45,120, 56, 54, 45, 54, 52, 10, 10, +/* 0x1920 */ 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97, +/* 0x1930 */ 109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, +/* 0x1940 */ 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, +/* 0x1950 */ 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, +/* 0x1960 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111, +/* 0x1970 */ 102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, +/* 0x1980 */ 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, +/* 0x1990 */ 32, 32, 48, 48, 48, 48, 48, 48, 49, 57, 32, 32, 48, 48, 48, 48, +/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, +/* 0x19c0 */ 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, +/* 0x19d0 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, +/* 0x19e0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, +/* 0x19f0 */ 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, +/* 0x1a00 */ 48, 48, 54, 54, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a10 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1a30 */ 53, 57, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, +/* 0x1a40 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, +/* 0x1a50 */ 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, +/* 0x1a60 */ 48, 48, 48, 48, 48, 98, 97, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1a70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1a80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, +/* 0x1a90 */ 48, 48, 48, 98,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, +/* 0x1aa0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, +/* 0x1ab0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, +/* 0x1ac0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 97, +/* 0x1ad0 */ 49, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ae0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1af0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 55, 57, 32, +/* 0x1b00 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, +/* 0x1b10 */ 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x1b20 */ 10, 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, +/* 0x1b30 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 57, 51, 32, 32, 48, 48, 48, +/* 0x1b40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1b50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1b60 */ 32, 48, 48, 48, 48, 48, 50, 49, 97, 32, 32, 50, 42, 42, 48, 32, +/* 0x1b70 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, +/* 0x1b80 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 76, +/* 0x1b90 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, +/* 0x1ba0 */ 48, 48, 48, 54, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bb0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, +/* 0x1bd0 */ 50, 97,100, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x1be0 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, +/* 0x1bf0 */ 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 68, 69, +/* 0x1c00 */ 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57,102, 55, 32, +/* 0x1c10 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c20 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c30 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 49, 49, 32, 32, 50, +/* 0x1c40 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, +/* 0x1c50 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, +/* 0x1c60 */ 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, +/* 0x1c70 */ 102, 55, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c80 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1c90 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 48, 56, +/* 0x1ca0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, +/* 0x1cb0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, +/* 0x1cc0 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, +/* 0x1cd0 */ 48, 48, 48, 49, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ce0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1cf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, +/* 0x1d00 */ 54,102,102, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x1d10 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, +/* 0x1d20 */ 57, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, +/* 0x1d30 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, +/* 0x1d40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, +/* 0x1d50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, +/* 0x1d60 */ 48, 48, 49, 55, 49, 55, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, +/* 0x1d70 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, +/* 0x1d80 */ 10, 32, 49, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, +/* 0x1d90 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 51, 97, 32, 32, 48, 48, 48, +/* 0x1da0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, +/* 0x1db0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, +/* 0x1dc0 */ 32, 48, 48, 48, 48, 49, 55, 49, 55, 32, 32, 50, 42, 42, 48, 32, +/* 0x1dd0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, +/* 0x1de0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32, 69, +/* 0x1df0 */ 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, +/* 0x1e00 */ 48, 48, 49, 98, 53, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e10 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, +/* 0x1e20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, +/* 0x1e30 */ 55, 53, 49, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, +/* 0x1e40 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, +/* 0x1e50 */ 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, +/* 0x1e60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, +/* 0x1e70 */ 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, +/* 0x1e80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, +/* 0x1e90 */ 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ea0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x1eb0 */ 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48, 48, 48, 48, +/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, +/* 0x1ed0 */ 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x1ef0 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, +/* 0x1f00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, +/* 0x1f10 */ 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f20 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, +/* 0x1f30 */ 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f40 */ 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, +/* 0x1f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f60 */ 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, +/* 0x1f70 */ 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1f80 */ 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, +/* 0x1f90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, +/* 0x1fa0 */ 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, +/* 0x1fb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, +/* 0x1fc0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1fd0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, +/* 0x1fe0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x1ff0 */ 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2000 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, +/* 0x2010 */ 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2020 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, +/* 0x2030 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x2040 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, +/* 0x2050 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2060 */ 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, +/* 0x2070 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x2080 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, +/* 0x2090 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x20a0 */ 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48, +/* 0x20b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x20c0 */ 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, +/* 0x20d0 */ 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x20e0 */ 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, +/* 0x20f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, +/* 0x2100 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, +/* 0x2110 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2120 */ 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, +/* 0x2130 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, +/* 0x2140 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, +/* 0x2150 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, +/* 0x2160 */ 97,114,116, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, +/* 0x2170 */ 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, +/* 0x2180 */ 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, +/* 0x2190 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, +/* 0x21a0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, +/* 0x21b0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x21c0 */ 100, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, +/* 0x21d0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120, 48, +/* 0x21e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,100, 10, +/* 0x21f0 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, +/* 0x2200 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 69, 93, 58, +/* 0x2210 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2220 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2230 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x2240 */ 48, 48, 48, 48, 48, 48, 48, 48, 97,102, 32, 82, 95, 88, 56, 54, +/* 0x2250 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x2260 */ 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2270 */ 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x2280 */ 48, 48, 48, 48, 48, 48, 48, 53, 99, 32, 82, 95, 88, 56, 54, 95, +/* 0x2290 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x22a0 */ 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102,102, +/* 0x22b0 */ 102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, +/* 0x22c0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, +/* 0x22d0 */ 91, 78, 82, 86, 50, 68, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, +/* 0x22e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, +/* 0x22f0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, +/* 0x2300 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2310 */ 57, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, +/* 0x2320 */ 32, 32, 32, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 43, 48,120, +/* 0x2330 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 49, +/* 0x2340 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 53, +/* 0x2350 */ 99, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, 67, 51, 50, 32, +/* 0x2360 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 43, 48,120,102, +/* 0x2370 */ 102,102,102,102,102,102,102,102,102,102,102,102,102,102, 99, 10, +/* 0x2380 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, +/* 0x2390 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 78, 82, 86, 50, 66, 93, 58, +/* 0x23a0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x23b0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x23c0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, +/* 0x23d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 56, 98, 32, 82, 95, 88, 56, 54, +/* 0x23e0 */ 95, 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 78, 82, 86, +/* 0x23f0 */ 95, 72, 69, 65, 68, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2400 */ 48, 48, 48, 48, 48, 48, 50, 49, 10, 48, 48, 48, 48, 48, 48, 48, +/* 0x2410 */ 48, 48, 48, 48, 48, 48, 48, 53, 51, 32, 82, 95, 88, 56, 54, 95, +/* 0x2420 */ 54, 52, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, +/* 0x2430 */ 65, 73, 78, 89, 43, 48,120,102,102,102,102,102,102,102,102,102, +/* 0x2440 */ 102,102,102,102,102,102, 99, 10, 10, 82, 69, 76, 79, 67, 65, 84, +/* 0x2450 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, +/* 0x2460 */ 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, +/* 0x2470 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, +/* 0x2480 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, +/* 0x2490 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x24a0 */ 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 88, 56, 54, 95, 54, 52, +/* 0x24b0 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, +/* 0x24c0 */ 69, 67, 51, 48, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x24d0 */ 48, 48, 48, 48, 48, 49, 50, 10, 10, 82, 69, 76, 79, 67, 65, 84, +/* 0x24e0 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, +/* 0x24f0 */ 91, 69, 76, 70, 77, 65, 73, 78, 89, 93, 58, 10, 79, 70, 70, 83, +/* 0x2500 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, +/* 0x2510 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, +/* 0x2520 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, +/* 0x2530 */ 48, 48, 48, 49, 56, 32, 82, 95, 88, 56, 54, 95, 54, 52, 95, 80, +/* 0x2540 */ 67, 51, 50, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, +/* 0x2550 */ 43, 48,120,102,102,102,102,102,102,102,102,102,102,102,102,102, +/* 0x2560 */ 102,102, 99, 10 }; diff --git a/src/stub/arm64-linux.elf-fold.h b/src/stub/arm64-linux.elf-fold.h index c3a2d5c4..ab6ef797 100644 --- a/src/stub/arm64-linux.elf-fold.h +++ b/src/stub/arm64-linux.elf-fold.h @@ -1,5 +1,5 @@ /* arm64-linux.elf-fold.h - created from arm64-linux.elf-fold.bin, 2608 (0xa30) bytes + created from arm64-linux.elf-fold.bin, 2672 (0xa70) bytes This file is part of the UPX executable compressor. @@ -31,20 +31,20 @@ */ -#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2608 -#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0xe9f98e42 -#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0x309ddfb4 +#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2672 +#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0x3b16a767 +#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0x456496b0 -unsigned char stub_arm64_linux_elf_fold[2608] = { +unsigned char stub_arm64_linux_elf_fold[2672] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0010 */ 2, 0,183, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, -/* 0x0060 */ 48, 10, 0, 0, 0, 0, 0, 0, 48, 10, 0, 0, 0, 0, 0, 0, +/* 0x0060 */ 112, 10, 0, 0, 0, 0, 0, 0,112, 10, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, -/* 0x0080 */ 48, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, +/* 0x0080 */ 112, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,128,146, @@ -61,7 +61,7 @@ unsigned char stub_arm64_linux_elf_fold[2608] = { /* 0x0160 */ 31, 4, 64,177, 66, 0, 0, 84, 95,104, 32, 56,231, 3, 20,170, /* 0x0170 */ 230, 3, 25,170,255, 3, 40,209,165, 3, 0, 16,228, 3, 24,170, /* 0x0180 */ 227, 3, 22,170,226, 3, 0,145,225, 3, 29, 42,224, 3, 28,170, -/* 0x0190 */ 206, 1, 0,148,255, 3, 40,145,248, 3, 0,170, 5, 0,128,210, +/* 0x0190 */ 222, 1, 0,148,255, 3, 40,145,248, 3, 0,170, 5, 0,128,210, /* 0x01a0 */ 228, 3, 21, 42, 67, 0,128, 82, 34, 0,128, 82, 1, 0,130,210, /* 0x01b0 */ 0, 0,128,210, 58, 0, 0,148,224, 3, 21, 42, 37, 0, 0,148, /* 0x01c0 */ 254, 3, 24,170,224, 3, 26,170,225, 3, 27, 42,226,130, 95,248, @@ -114,89 +114,93 @@ unsigned char stub_arm64_linux_elf_fold[2608] = { /* 0x04b0 */ 4, 0, 0,249, 2, 4, 0,249, 8, 0, 0, 20,127, 4, 0,241, /* 0x04c0 */ 97, 0, 0, 84, 97, 0, 0, 52,250,255,255, 23, 99, 0, 0,180, /* 0x04d0 */ 0, 64, 0,145,244,255,255, 23,192, 3, 95,214,253,123,181,169, -/* 0x04e0 */ 253, 3, 0,145,236, 55, 8,109,204, 0,103,158, 6, 16, 64,249, -/* 0x04f0 */ 238, 63, 9,109,251,115, 5,169,232, 39, 6,109, 27, 0, 6,139, -/* 0x0500 */ 234, 47, 7,109,245, 91, 2,169,246, 3, 0,170, 0, 32, 64,121, -/* 0x0510 */ 247, 99, 3,169, 31, 12, 0,113,248, 3, 3,170,128, 1,102,158, -/* 0x0520 */ 3, 2,128, 82,142, 0,103,158, 99, 16,159, 26,175, 0,103,158, -/* 0x0530 */ 197,114, 64,121,243, 83, 1,169, 0, 0, 64,249,247, 3, 1,170, -/* 0x0540 */ 77, 0, 39, 30,252, 3, 7,170,249,107, 4,169, 99,136, 0, 17, -/* 0x0550 */ 226, 3, 27,170, 1, 0,128,210, 19, 0,128,146,165, 4, 0, 81, -/* 0x0560 */ 191, 4, 0, 49,160, 1, 0, 84, 68, 0, 64,185,159, 4, 0,113, -/* 0x0570 */ 1, 1, 0, 84, 71, 8, 64,249, 68, 20, 64,249,127, 2, 7,235, -/* 0x0580 */ 228, 0, 4,139,115,146,135,154, 63, 0, 4,235, 33, 32,132,154, -/* 0x0590 */ 66,224, 0,145,242,255,255, 23,226, 3, 60,170,115, 2, 28,138, -/* 0x05a0 */ 65, 0, 1,139, 33, 0, 19,203, 74, 0,103,158, 33, 0, 28,138, -/* 0x05b0 */ 163, 0, 32, 55, 83, 0, 0,181,160, 0, 0,181, 0, 0,128,210, -/* 0x05c0 */ 4, 0, 0, 20,224, 3, 19,170, 2, 0, 0, 20, 67, 6,128, 82, -/* 0x05d0 */ 2, 0,128, 82, 4, 0,128, 18, 5, 0,128,210, 48,255,255,151, -/* 0x05e0 */ 19, 0, 19,203,232, 3, 39, 30, 1, 1, 38, 30,192,114, 64,121, -/* 0x05f0 */ 63, 0, 0,107,202, 20, 0, 84, 96, 3, 64,185, 55, 1, 0,180, -/* 0x0600 */ 31, 24, 0,113,225, 0, 0, 84, 98, 11, 64,249,224, 3, 24,170, -/* 0x0610 */ 97, 0,128, 82, 98, 2, 2,139,160,255,255,151,148, 0, 0, 20, -/* 0x0620 */ 31, 4, 0,113, 65, 18, 0, 84, 87, 2, 0,180, 96, 7, 64,249, -/* 0x0630 */ 0, 2, 0,181,194, 18, 64,249,224, 3, 24,170, 99, 11, 64,249, -/* 0x0640 */ 97, 0,128, 82, 98, 2, 2,139, 66, 0, 3,139,147,255,255,151, -/* 0x0650 */ 194,114, 64,121,224, 3, 24,170,161, 0,128, 82,143,255,255,151, -/* 0x0660 */ 194,110, 64,121,224, 3, 24,170,129, 0,128, 82,139,255,255,151, -/* 0x0670 */ 122, 7, 64,185, 0, 72,140, 82, 32,106,174,114,117, 11, 64,249, -/* 0x0680 */ 90, 11, 30, 83,255, 2, 31,235, 26, 36,218, 26,117, 2, 21,139, -/* 0x0690 */ 64, 11, 0, 18,116, 19, 64,249,103, 7, 64,249, 70, 6,128, 82, -/* 0x06a0 */ 9, 0, 39, 30, 96, 23, 64,249,180, 83, 0,249,160, 2, 0,139, -/* 0x06b0 */ 181, 87, 0,249, 11, 0,103,158, 64, 1,102,158, 35, 1, 38, 30, -/* 0x06c0 */ 165, 2, 0,138, 64, 0,128, 82, 2, 16,159, 26,255, 2, 31,235, -/* 0x06d0 */ 160, 1, 38, 30,181, 2, 5,203,180, 0, 20,139, 66, 0, 3, 42, -/* 0x06e0 */ 67, 2,128, 82,225, 3, 20,170,229, 0, 5,203, 4, 0,159, 90, -/* 0x06f0 */ 255, 2, 31,235,195, 16,131, 26,224, 3, 21,170,232,254,255,151, -/* 0x0700 */ 191, 2, 0,235, 96, 0, 0, 84,224, 15,128, 82,201,254,255,151, -/* 0x0710 */ 215, 0, 0,180,194, 1,102,158,224, 3, 23,170,227, 1,102,158, -/* 0x0720 */ 161,131, 2,145, 11,255,255,151, 64, 1,102,158,249, 3, 20,203, -/* 0x0730 */ 57, 3, 0,138,122, 0, 8, 55, 87, 1, 0,181, 61, 0, 0, 20, -/* 0x0740 */ 217,255,255,180,161, 2, 20,139, 0, 0,128,210, 63,104, 32, 56, -/* 0x0750 */ 0, 4, 0,145, 31, 0, 25,235,161,255,255, 84,247,255,255, 23, -/* 0x0760 */ 96, 3, 64,249,225, 3, 0,178, 0,128, 64,146, 31, 0, 1,235, -/* 0x0770 */ 97, 5, 0, 84, 96, 23, 64,249, 98, 19, 64,249, 97, 11, 64,249, -/* 0x0780 */ 31, 0, 2,235, 97, 1, 0, 84,122, 14, 0,145, 90, 3, 0,139, -/* 0x0790 */ 90, 3, 1,139, 90,247,126,146,224, 3, 26, 75, 0, 0, 60, 10, -/* 0x07a0 */ 31, 28, 0,113,105, 0, 0, 84, 0, 0,128, 82, 13, 0, 0, 20, -/* 0x07b0 */ 96, 7, 64,249, 96, 6, 0,180, 0, 0,128,210, 1, 0,130,210, -/* 0x07c0 */ 98, 0,128, 82, 67, 4,128, 82, 4, 0,128, 18,229, 3, 0,170, -/* 0x07d0 */ 179,254,255,151,250, 3, 0,170, 32, 2, 0,180, 32, 0,128, 82, -/* 0x07e0 */ 33, 0,128, 82, 1,128,186,114, 65, 3, 0,185, 1,120,128, 82, -/* 0x07f0 */ 225,203,186,114, 65, 7, 0,185,160, 0, 0, 52,224, 3, 26,170, -/* 0x0800 */ 1, 1,128,210,162, 0,128, 82,158,254,255,151, 0,251,127,146, -/* 0x0810 */ 1, 0,128, 82,226, 3, 26,170, 32,255,255,151, 34, 1, 38, 30, -/* 0x0820 */ 224, 3, 21,170,225, 3, 20,170,150,254,255,151,224,246,255, 53, -/* 0x0830 */ 96, 1,102,158, 52, 3, 20,139,181, 2, 20,139,191, 2, 0,235, -/* 0x0840 */ 98, 1, 0, 84, 97, 1,102,158,224, 3, 21,170, 34, 1, 38, 30, -/* 0x0850 */ 67, 6,128, 82, 4, 0,128, 18, 5, 0,128,210, 33, 0, 21,203, -/* 0x0860 */ 143,254,255,151,191, 2, 0,235, 1,245,255, 84, 0, 1, 38, 30, -/* 0x0870 */ 123,227, 0,145, 0, 4, 0, 17, 8, 0, 39, 30, 91,255,255, 23, -/* 0x0880 */ 58, 0, 19,139, 90, 35, 0,145,214,255,255, 23,128, 1,102,158, -/* 0x0890 */ 232, 39, 70,109,247, 99, 67,169,234, 47, 71,109,249,107, 68,169, -/* 0x08a0 */ 236, 55, 72,109,251,115, 69,169,238, 63, 73,109, 19, 0, 0,249, -/* 0x08b0 */ 192, 14, 64,249,245, 91, 66,169, 96, 2, 0,139,243, 83, 65,169, -/* 0x08c0 */ 253,123,203,168,192, 3, 95,214,253,123,182,169,253, 3, 0,145, -/* 0x08d0 */ 247, 99, 3,169,247, 3, 3,170, 3, 4, 64,185,243, 83, 1,169, -/* 0x08e0 */ 162, 63, 0,249,243, 3, 2,170, 99, 48, 0,145, 2, 0, 64,185, -/* 0x08f0 */ 162, 59, 0,249,226, 3, 4,170,160, 79, 0,249,116, 2, 1,145, -/* 0x0900 */ 163, 75, 0,249, 3, 0,128,210,160, 71, 0,249,160, 67, 2,145, -/* 0x0910 */ 161, 67, 0,249,161,195, 1,145,245, 91, 2,169,249, 35, 0,249, -/* 0x0920 */ 249, 3, 7,170,165, 47, 0,249, 22, 0,128, 82,166, 55, 0,249, -/* 0x0930 */ 164, 51, 0,249,135,254,255,151,164, 51, 64,249,161, 3, 2,145, -/* 0x0940 */ 165, 47, 64,249, 2, 0,128, 82,227, 3, 23,170,166,163, 1,145, -/* 0x0950 */ 231, 3, 25,170,224, 3, 19,170,225,254,255,151,245, 3, 0,170, -/* 0x0960 */ 33, 1,128, 82,224, 3, 23,170,226, 3, 21,170,203,254,255,151, -/* 0x0970 */ 96,114, 64,121,223, 2, 0,107,226, 4, 0, 84,128, 2, 64,185, -/* 0x0980 */ 31, 12, 0,113, 33, 4, 0, 84,129, 10, 64,249,160, 55, 64,249, -/* 0x0990 */ 32, 0, 0,139, 1, 0,128, 82,226, 3, 1, 42, 74,254,255,151, -/* 0x09a0 */ 248, 3, 0, 42, 96, 0,248, 54,224, 15,128, 82, 33,254,255,151, -/* 0x09b0 */ 225, 3, 19,170, 2,128,128,210, 32,254,255,151, 31, 0, 16,241, -/* 0x09c0 */ 65,255,255, 84, 1, 0,128,210,226, 3, 24, 42,227, 3, 1,170, -/* 0x09d0 */ 228, 3, 1,170,229, 3, 1,170,166,163, 1,145,231, 3, 25,170, -/* 0x09e0 */ 224, 3, 19,170,191, 55, 0,249,189,254,255,151,245, 3, 0,170, -/* 0x09f0 */ 162, 55, 64,249,224, 3, 23,170,225, 0,128, 82,167,254,255,151, -/* 0x0a00 */ 224, 3, 24, 42, 19,254,255,151,148,226, 0,145,214, 6, 0, 17, -/* 0x0a10 */ 216,255,255, 23,224, 3, 21,170,249, 35, 64,249,243, 83, 65,169, -/* 0x0a20 */ 245, 91, 66,169,247, 99, 67,169,253,123,202,168,192, 3, 95,214 +/* 0x04e0 */ 253, 3, 0,145,234, 47, 7,109,202, 0,103,158, 6, 16, 64,249, +/* 0x04f0 */ 238, 63, 9,109,247, 99, 3,169,236, 55, 8,109,251,115, 5,169, +/* 0x0500 */ 232, 39, 6,109,247, 3, 0,170, 28, 0, 6,139, 64, 1,102,158, +/* 0x0510 */ 248, 3, 3,170,245, 91, 2,169,249,107, 4,169,243, 83, 1,169, +/* 0x0520 */ 77, 0, 39, 30,246, 3, 1,170,142, 0,103,158,250, 3, 7,170, +/* 0x0530 */ 175, 0,103,158, 2, 0, 64,249,161, 1, 0,180, 65, 16, 64,249, +/* 0x0540 */ 67, 6,128, 82, 4, 0,128, 18, 5, 0,128,210, 65, 0, 1,139, +/* 0x0550 */ 32, 36, 64,249, 33, 20, 64,249, 64, 0, 0,203, 2, 0,128, 82, +/* 0x0560 */ 79,255,255,151,243, 3, 0,170, 43, 0, 0, 20,224, 34, 64,121, +/* 0x0570 */ 3, 2,128, 82,231,114, 64,121,228, 3, 28,170, 31, 12, 0,113, +/* 0x0580 */ 19, 0,128,146, 99, 16,159, 26,224, 3, 2,170, 99,136, 0, 17, +/* 0x0590 */ 231, 4, 0, 81,255, 4, 0, 49,160, 1, 0, 84,133, 0, 64,185, +/* 0x05a0 */ 191, 4, 0,113, 1, 1, 0, 84,136, 8, 64,249,133, 20, 64,249, +/* 0x05b0 */ 127, 2, 8,235, 5, 1, 5,139,115,146,136,154, 63, 0, 5,235, +/* 0x05c0 */ 33, 32,133,154,132,224, 0,145,242,255,255, 23,228, 3, 58,170, +/* 0x05d0 */ 115, 2, 26,138,129, 0, 1,139, 33, 0, 19,203, 33, 0, 26,138, +/* 0x05e0 */ 163, 0, 32, 55, 83, 0, 0,181,162, 0, 0,181, 0, 0,128,210, +/* 0x05f0 */ 4, 0, 0, 20,224, 3, 19,170, 2, 0, 0, 20, 67, 6,128, 82, +/* 0x0600 */ 2, 0,128, 82, 4, 0,128, 18, 5, 0,128,210, 36,255,255,151, +/* 0x0610 */ 19, 0, 19,203,224, 3, 58,170,232, 3, 39, 30, 12, 0,103,158, +/* 0x0620 */ 1, 1, 38, 30,224,114, 64,121, 63, 0, 0,107,106, 20, 0, 84, +/* 0x0630 */ 128, 3, 64,185, 54, 1, 0,180, 31, 24, 0,113,225, 0, 0, 84, +/* 0x0640 */ 130, 11, 64,249,224, 3, 24,170, 97, 0,128, 82, 98, 2, 2,139, +/* 0x0650 */ 146,255,255,151,148, 0, 0, 20, 31, 4, 0,113, 65, 18, 0, 84, +/* 0x0660 */ 86, 2, 0,180,128, 7, 64,249, 0, 2, 0,181,226, 18, 64,249, +/* 0x0670 */ 224, 3, 24,170,131, 11, 64,249, 97, 0,128, 82, 98, 2, 2,139, +/* 0x0680 */ 66, 0, 3,139,133,255,255,151,226,114, 64,121,224, 3, 24,170, +/* 0x0690 */ 161, 0,128, 82,129,255,255,151,226,110, 64,121,224, 3, 24,170, +/* 0x06a0 */ 129, 0,128, 82,125,255,255,151,155, 7, 64,185, 0, 72,140, 82, +/* 0x06b0 */ 32,106,174,114,149, 11, 64,249,123, 11, 30, 83,223, 2, 31,235, +/* 0x06c0 */ 27, 36,219, 26,117, 2, 21,139, 96, 11, 0, 18,148, 19, 64,249, +/* 0x06d0 */ 135, 7, 64,249, 67, 6,128, 82, 9, 0, 39, 30,128, 23, 64,249, +/* 0x06e0 */ 180, 83, 0,249,160, 2, 0,139,181, 87, 0,249, 11, 0,103,158, +/* 0x06f0 */ 128, 1,102,158, 36, 1, 38, 30,165, 2, 0,138, 64, 0,128, 82, +/* 0x0700 */ 2, 16,159, 26,223, 2, 31,235, 66, 0, 4, 42, 64, 2,128, 82, +/* 0x0710 */ 164, 1, 38, 30,181, 2, 5,203, 3, 0,131, 26,180, 0, 20,139, +/* 0x0720 */ 223, 2, 31,235,224, 3, 21,170,225, 3, 20,170,229, 0, 5,203, +/* 0x0730 */ 132, 0,159, 90,218,254,255,151,191, 2, 0,235, 96, 0, 0, 84, +/* 0x0740 */ 224, 15,128, 82,187,254,255,151,214, 0, 0,180,194, 1,102,158, +/* 0x0750 */ 224, 3, 22,170,227, 1,102,158,161,131, 2,145,253,254,255,151, +/* 0x0760 */ 128, 1,102,158,249, 3, 20,203, 57, 3, 0,138,123, 0, 8, 55, +/* 0x0770 */ 86, 1, 0,181, 61, 0, 0, 20,217,255,255,180,161, 2, 20,139, +/* 0x0780 */ 0, 0,128,210, 63,104, 32, 56, 0, 4, 0,145, 31, 0, 25,235, +/* 0x0790 */ 161,255,255, 84,247,255,255, 23,128, 3, 64,249,225, 3, 0,178, +/* 0x07a0 */ 0,128, 64,146, 31, 0, 1,235, 97, 5, 0, 84,128, 23, 64,249, +/* 0x07b0 */ 130, 19, 64,249,129, 11, 64,249, 31, 0, 2,235, 97, 1, 0, 84, +/* 0x07c0 */ 123, 14, 0,145,123, 3, 0,139,123, 3, 1,139,123,247,126,146, +/* 0x07d0 */ 224, 3, 27, 75, 0, 0, 58, 10, 31, 28, 0,113,105, 0, 0, 84, +/* 0x07e0 */ 0, 0,128, 82, 13, 0, 0, 20,128, 7, 64,249,224, 6, 0,180, +/* 0x07f0 */ 0, 0,128,210, 1, 0,130,210, 98, 0,128, 82, 67, 4,128, 82, +/* 0x0800 */ 4, 0,128, 18,229, 3, 0,170,165,254,255,151,251, 3, 0,170, +/* 0x0810 */ 32, 2, 0,180, 32, 0,128, 82, 33, 0,128, 82, 1,128,186,114, +/* 0x0820 */ 97, 3, 0,185, 1,120,128, 82,225,203,186,114, 97, 7, 0,185, +/* 0x0830 */ 160, 0, 0, 52,224, 3, 27,170, 1, 1,128,210,162, 0,128, 82, +/* 0x0840 */ 144,254,255,151, 0,251,127,146, 1, 0,128, 82,226, 3, 27,170, +/* 0x0850 */ 18,255,255,151, 34, 1, 38, 30,224, 3, 21,170,225, 3, 20,170, +/* 0x0860 */ 136,254,255,151,224,246,255, 53, 96, 1,102,158, 52, 3, 20,139, +/* 0x0870 */ 181, 2, 20,139,191, 2, 0,235, 98, 1, 0, 84, 97, 1,102,158, +/* 0x0880 */ 224, 3, 21,170, 34, 1, 38, 30, 67, 6,128, 82, 4, 0,128, 18, +/* 0x0890 */ 5, 0,128,210, 33, 0, 21,203,129,254,255,151,191, 2, 0,235, +/* 0x08a0 */ 1,245,255, 84, 0, 1, 38, 30,156,227, 0,145, 0, 4, 0, 17, +/* 0x08b0 */ 8, 0, 39, 30, 91,255,255, 23, 64, 1,102,158,192, 0, 0,180, +/* 0x08c0 */ 19, 0, 0,249, 4, 0, 0, 20, 59, 0, 19,139,123, 35, 0,145, +/* 0x08d0 */ 210,255,255, 23,224, 14, 64,249,232, 39, 70,109,245, 91, 66,169, +/* 0x08e0 */ 234, 47, 71,109, 96, 2, 0,139,236, 55, 72,109,243, 83, 65,169, +/* 0x08f0 */ 238, 63, 73,109,247, 99, 67,169,249,107, 68,169,251,115, 69,169, +/* 0x0900 */ 253,123,203,168,192, 3, 95,214,253,123,182,169,253, 3, 0,145, +/* 0x0910 */ 247, 99, 3,169,247, 3, 3,170, 3, 4, 64,185,243, 83, 1,169, +/* 0x0920 */ 162, 63, 0,249,243, 3, 2,170, 99, 48, 0,145, 2, 0, 64,185, +/* 0x0930 */ 162, 59, 0,249,226, 3, 4,170,160, 79, 0,249,116, 2, 1,145, +/* 0x0940 */ 163, 75, 0,249, 3, 0,128,210,160, 71, 0,249,160, 67, 2,145, +/* 0x0950 */ 161, 67, 0,249,161,195, 1,145,245, 91, 2,169,249, 35, 0,249, +/* 0x0960 */ 249, 3, 7,170,165, 47, 0,249, 22, 0,128, 82,166, 55, 0,249, +/* 0x0970 */ 164, 51, 0,249,119,254,255,151,164, 51, 64,249,161, 3, 2,145, +/* 0x0980 */ 165, 47, 64,249, 2, 0,128, 82,227, 3, 23,170,166,163, 1,145, +/* 0x0990 */ 231, 3, 25,170,224, 3, 19,170,209,254,255,151,245, 3, 0,170, +/* 0x09a0 */ 33, 1,128, 82,224, 3, 23,170,226, 3, 21,170,187,254,255,151, +/* 0x09b0 */ 96,114, 64,121,223, 2, 0,107,226, 4, 0, 84,128, 2, 64,185, +/* 0x09c0 */ 31, 12, 0,113, 33, 4, 0, 84,129, 10, 64,249,160, 55, 64,249, +/* 0x09d0 */ 32, 0, 0,139, 1, 0,128, 82,226, 3, 1, 42, 58,254,255,151, +/* 0x09e0 */ 248, 3, 0, 42, 96, 0,248, 54,224, 15,128, 82, 17,254,255,151, +/* 0x09f0 */ 225, 3, 19,170, 2,128,128,210, 16,254,255,151, 31, 0, 16,241, +/* 0x0a00 */ 65,255,255, 84, 1, 0,128,210,226, 3, 24, 42,227, 3, 1,170, +/* 0x0a10 */ 228, 3, 1,170,229, 3, 1,170,166,163, 1,145,231, 3, 25,170, +/* 0x0a20 */ 224, 3, 19,170,191, 55, 0,249,173,254,255,151,245, 3, 0,170, +/* 0x0a30 */ 162, 55, 64,249,224, 3, 23,170,225, 0,128, 82,151,254,255,151, +/* 0x0a40 */ 224, 3, 24, 42, 3,254,255,151,148,226, 0,145,214, 6, 0, 17, +/* 0x0a50 */ 216,255,255, 23,224, 3, 21,170,249, 35, 64,249,243, 83, 65,169, +/* 0x0a60 */ 245, 91, 66,169,247, 99, 67,169,253,123,202,168,192, 3, 95,214 }; diff --git a/src/stub/powerpc64-linux.elf-fold.h b/src/stub/powerpc64-linux.elf-fold.h index 339c12f3..f645e3e4 100644 --- a/src/stub/powerpc64-linux.elf-fold.h +++ b/src/stub/powerpc64-linux.elf-fold.h @@ -1,5 +1,5 @@ /* powerpc64-linux.elf-fold.h - created from powerpc64-linux.elf-fold.bin, 3256 (0xcb8) bytes + created from powerpc64-linux.elf-fold.bin, 3328 (0xd00) bytes This file is part of the UPX executable compressor. @@ -31,21 +31,21 @@ */ -#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 3256 -#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0xc74d6188 -#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x728a945d +#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 3328 +#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0xa80f84a4 +#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x0c970d6e -unsigned char stub_powerpc64_linux_elf_fold[3256] = { +unsigned char stub_powerpc64_linux_elf_fold[3328] = { /* 0x0000 */ 127, 69, 76, 70, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 12,104, +/* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 12,176, /* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 0, 0, 0, 1, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, -/* 0x0060 */ 0, 0, 0, 0, 0, 0, 12,100, 0, 0, 0, 0, 0, 0, 12,100, +/* 0x0060 */ 0, 0, 0, 0, 0, 0, 12,172, 0, 0, 0, 0, 0, 0, 12,172, /* 0x0070 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, -/* 0x0080 */ 0, 0, 0, 0, 0, 0, 12,104, 0, 0, 0, 0, 0, 16, 12,104, -/* 0x0090 */ 0, 0, 0, 0, 0, 16, 12,104, 0, 0, 0, 0, 0, 0, 0, 80, +/* 0x0080 */ 0, 0, 0, 0, 0, 0, 12,176, 0, 0, 0, 0, 0, 16, 12,176, +/* 0x0090 */ 0, 0, 0, 0, 0, 16, 12,176, 0, 0, 0, 0, 0, 0, 0, 80, /* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 1, 0, 0, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 96,255,248, /* 0x00c0 */ 120, 99, 77,164, 78,128, 0, 32, 96, 0, 0, 0, 72, 0, 0,125, @@ -75,7 +75,7 @@ unsigned char stub_powerpc64_linux_elf_fold[3256] = { /* 0x0240 */ 126,228,187,120, 56,161, 0,144,127, 70,211,120,127,231,251,120, /* 0x0250 */ 126,200,179,120, 56, 0, 0, 0,248,225, 0,112, 56,225, 0,112, /* 0x0260 */ 248, 1, 0,120,249, 1, 0,128, 57, 1, 0,128,248, 1, 0,136, -/* 0x0270 */ 127,202,243,120, 72, 0, 7,217, 56, 33, 8,144,126,162,171,120, +/* 0x0270 */ 127,202,243,120, 72, 0, 8, 33, 56, 33, 8,144,126,162,171,120, /* 0x0280 */ 112, 96, 0, 7, 64,130, 0, 36,128, 3, 0, 0, 40, 0, 0, 0, /* 0x0290 */ 64,130, 0, 24,232, 1, 1,136,232, 67, 0, 8,124, 66, 2, 20, /* 0x02a0 */ 232, 99, 0, 0,124, 99, 2, 20,248,117, 0, 0,124,127, 27,120, @@ -104,7 +104,7 @@ unsigned char stub_powerpc64_linux_elf_fold[3256] = { /* 0x0410 */ 233, 67, 0, 8,125, 74, 74, 20,249, 67, 0, 8,233, 67, 0, 0, /* 0x0420 */ 125, 41, 80, 80,249, 35, 0, 0, 78,128, 0, 32, 0, 0, 0, 0, /* 0x0430 */ 0, 0, 0, 1,128, 0, 0, 0,125,128, 0, 38,124, 8, 2,166, -/* 0x0440 */ 145,129, 0, 8, 72, 0, 7,181,248, 33,255, 81,124,126, 27,120, +/* 0x0440 */ 145,129, 0, 8, 72, 0, 7,253,248, 33,255, 81,124,126, 27,120, /* 0x0450 */ 124,159, 35,120,124,189, 43,120,124,220, 51,120, 46, 38, 0, 0, /* 0x0460 */ 233, 63, 0, 0, 47,169, 0, 0, 65,158, 1, 84,127,195,243,120, /* 0x0470 */ 56,129, 0,112, 56,160, 0, 12, 75,255,255, 81,129, 65, 0,112, @@ -128,116 +128,120 @@ unsigned char stub_powerpc64_linux_elf_fold[3256] = { /* 0x0590 */ 127,195,243,120,125, 37, 75,120, 75,255,254, 49,129, 1, 0,112, /* 0x05a0 */ 233, 95, 0, 8,233, 63, 0, 0,125, 74, 66, 20,125, 40, 72, 80, /* 0x05b0 */ 249, 95, 0, 8,249, 63, 0, 0, 75,255,254,168, 56, 33, 0,176, -/* 0x05c0 */ 129,129, 0, 8,125,144,129, 32, 72, 0, 6,128, 0, 0, 0, 0, +/* 0x05c0 */ 129,129, 0, 8,125,144,129, 32, 72, 0, 6,200, 0, 0, 0, 0, /* 0x05d0 */ 0, 0, 0, 3,128, 4, 0, 0, 44, 35, 0, 0, 77,130, 0, 32, /* 0x05e0 */ 120,105, 7,225, 76,130, 0, 32, 47, 36, 0, 0,233, 67, 0, 0, /* 0x05f0 */ 127,170, 32, 64, 64,158, 0, 16,248,131, 0, 0,248,163, 0, 8, /* 0x0600 */ 78,128, 0, 32, 43,170, 0, 1, 64,158, 0, 12, 65,154, 0, 16, /* 0x0610 */ 75,255,255,232, 47,170, 0, 0, 77,158, 0, 32, 56, 99, 0, 16, /* 0x0620 */ 75,255,255,204, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0630 */ 125,128, 0, 38,124, 8, 2,166,145,129, 0, 8, 72, 0, 5,133, -/* 0x0640 */ 248, 33,254,225,125, 14, 67,120,161, 3, 0, 16,125, 49, 75,120, -/* 0x0650 */ 233, 35, 0, 32,125, 90, 83,120,124,124, 27,120,124,146, 35,120, -/* 0x0660 */ 47,136, 0, 3,248,161, 1, 96,124,215, 51,120,124,239, 59,120, -/* 0x0670 */ 126, 3, 74, 20, 57, 64, 0, 16, 64,158, 0, 8, 57, 64, 0, 0, -/* 0x0680 */ 161, 28, 0, 56,232,113, 0, 0, 57, 74, 0, 34,126, 7,131,120, -/* 0x0690 */ 121, 70, 0, 32, 56,128, 0, 0, 57, 8, 0, 1, 59,192,255,255, -/* 0x06a0 */ 125, 9, 3,166, 66, 64, 0, 60,129, 7, 0, 0, 47,136, 0, 1, -/* 0x06b0 */ 64,158, 0, 40,232,167, 0, 16,127,190, 40, 64, 64,157, 0, 8, -/* 0x06c0 */ 124,190, 43,120,233, 7, 0, 40,125, 5, 66, 20,127,164, 64, 64, -/* 0x06d0 */ 64,156, 0, 8,125, 4, 67,120, 56,231, 0, 56, 75,255,255,200, -/* 0x06e0 */ 127, 84,208,248,127,222,208, 56,124,148, 34, 20,121, 73,231,227, -/* 0x06f0 */ 124,158, 32, 80,124,132,208, 56, 64,130, 0, 28, 47,190, 0, 0, -/* 0x0700 */ 64,158, 0, 28, 47,163, 0, 0, 65,158, 0, 24, 56,192, 0, 50, -/* 0x0710 */ 72, 0, 0, 16,127,195,243,120, 72, 0, 0, 8, 56, 96, 0, 0, -/* 0x0720 */ 56,160, 0, 0,124,198, 7,180, 56,224,255,255, 57, 0, 0, 0, -/* 0x0730 */ 75,255,252, 57, 96, 0, 0, 0, 62,192, 0, 1, 59, 32, 0, 0, -/* 0x0740 */ 122,214,131,228,127,222, 24, 80, 46, 50, 0, 0, 57, 62, 0,120, -/* 0x0750 */ 98,214, 0, 1,249, 33, 0,128,122,233, 7,164,127, 90,208,248, -/* 0x0760 */ 249, 33, 0,136,161, 92, 0, 56,127,138,200, 0, 64,157, 2,168, -/* 0x0770 */ 129, 80, 0, 0, 65,146, 0, 36, 47,138, 0, 6, 64,158, 0, 28, -/* 0x0780 */ 232,176, 0, 16,126,227,187,120, 56,128, 0, 3,124,190, 42, 20, -/* 0x0790 */ 75,255,254, 73, 72, 0, 2,112, 47,138, 0, 1, 64,158, 2,104, -/* 0x07a0 */ 65,146, 0, 76,233, 80, 0, 8, 47,170, 0, 0, 64,158, 0, 64, -/* 0x07b0 */ 233, 92, 0, 32,232,176, 0, 16,126,227,187,120, 56,128, 0, 3, -/* 0x07c0 */ 125, 94, 82, 20,124,170, 42, 20, 75,255,254, 17,160,188, 0, 56, -/* 0x07d0 */ 126,227,187,120, 56,128, 0, 5, 75,255,254, 1,160,188, 0, 54, -/* 0x07e0 */ 126,227,187,120, 56,128, 0, 4, 75,255,253,241,131,112, 0, 4, -/* 0x07f0 */ 235,176, 0, 16, 61, 32,115, 81, 97, 41, 98, 64,235,240, 0, 32, -/* 0x0800 */ 234,176, 0, 40, 87,123, 22,250,127,190,234, 20,251,225, 0,112, -/* 0x0810 */ 125, 59,220, 48,127,170,160, 56,251,161, 0,120,126,189,170, 20, -/* 0x0820 */ 127,234,250, 20,127,170,232, 80, 87,115, 7,126, 64,146, 0, 12, -/* 0x0830 */ 56,160, 0, 0, 72, 0, 0, 8, 56,160, 0, 2,124,165,155,120, -/* 0x0840 */ 124,165, 7,180, 64,146, 0, 16,232,225, 1, 96, 56,192, 0, 18, -/* 0x0850 */ 72, 0, 0, 12, 56,192, 0, 50, 56,224,255,255,233, 16, 0, 8, -/* 0x0860 */ 127,163,235,120,127,228,251,120,125, 10, 64, 80, 75,255,250,253, -/* 0x0870 */ 96, 0, 0, 0,127,189, 24, 0, 65,254, 0, 16, 56, 96, 0,127, -/* 0x0880 */ 75,255,251, 1, 96, 0, 0, 0, 65,146, 0, 24,126, 67,147,120, -/* 0x0890 */ 56,129, 0,112,125,229,123,120,125,198,115,120, 75,255,251,157, -/* 0x08a0 */ 127, 31, 0,208,123,105,255,227,127, 24,160, 56, 64,130, 0, 12, -/* 0x08b0 */ 64,146, 0, 48, 72, 0, 1, 24, 47,184, 0, 0, 65,158,255,244, -/* 0x08c0 */ 127, 9, 3,166,125, 29,250, 20, 57, 64, 0, 0, 57, 32, 0, 0, -/* 0x08d0 */ 125, 40, 81,174, 57, 74, 0, 1, 66, 0,255,244, 75,255,255,212, -/* 0x08e0 */ 233, 80, 0, 0,121, 74, 7,194,121, 74, 0, 2,127,170,176, 0, -/* 0x08f0 */ 64,158, 0,192,235,112, 0, 40,233, 80, 0, 32,233, 16, 0, 16, -/* 0x0900 */ 127,187, 80, 0, 64,158, 0, 36,127,123, 66, 20,127,123,242, 20, -/* 0x0910 */ 125, 91, 0,208,125, 74,208, 56, 43,138, 0, 11, 64,157, 0, 12, -/* 0x0920 */ 57, 64, 0, 0, 72, 0, 0, 60,233, 80, 0, 8, 47,170, 0, 0, -/* 0x0930 */ 65,158, 1, 0, 56, 96, 0, 0, 56,128, 16, 0, 56,160, 0, 3, -/* 0x0940 */ 56,192, 0, 34, 56,224,255,255, 57, 0, 0, 0, 75,255,250, 29, -/* 0x0950 */ 96, 0, 0, 0,124,123, 27,121, 65,130, 0, 88, 57, 64, 0, 1, -/* 0x0960 */ 61, 32, 68, 0, 47,170, 0, 0, 97, 41, 0, 2,145, 59, 0, 0, -/* 0x0970 */ 61, 32,127,236, 97, 41,251,120,145, 59, 0, 4, 61, 32, 78,128, -/* 0x0980 */ 97, 41, 0, 32,145, 59, 0, 8, 65,158, 0, 24,127, 99,219,120, -/* 0x0990 */ 56,128, 0, 12, 56,160, 0, 5, 75,255,250, 25, 96, 0, 0, 0, -/* 0x09a0 */ 232, 97, 0,136, 56,128, 0, 0,127,101,219,120, 75,255,252, 45, -/* 0x09b0 */ 127,163,235,120,127,228,251,120,126,101, 7,180, 75,255,249,245, -/* 0x09c0 */ 96, 0, 0, 0, 47,163, 0, 0, 64,222,254,180,127,248,250, 20, -/* 0x09d0 */ 127,189,250, 20,127,189,168, 64, 64,156, 0, 44,127,163,235,120, -/* 0x09e0 */ 124,157,168, 80,126,101, 7,180, 56,192, 0, 50, 56,224,255,255, -/* 0x09f0 */ 57, 0, 0, 0, 75,255,249,117, 96, 0, 0, 0,127,189, 24, 0, -/* 0x0a00 */ 64,222,254,124, 59, 57, 0, 1, 58, 16, 0, 56,127, 57, 7,180, -/* 0x0a10 */ 75,255,253, 84,251,209, 0, 0, 56, 33, 1, 32,129,129, 0, 8, -/* 0x0a20 */ 125,144,129, 32,232,124, 0, 24,124,126, 26, 20, 72, 0, 1,228, -/* 0x0a30 */ 233, 33, 0,128,127,105, 66, 20, 59,123, 0, 24, 75,255,255, 36, -/* 0x0a40 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,124, 8, 2,166, -/* 0x0a50 */ 72, 0, 1,153,248, 33,255, 17,125, 61, 75,120,129, 35, 0, 0, -/* 0x0a60 */ 124,191, 43,120,124,218, 51,120, 56,192, 0, 0,125, 88, 83,120, -/* 0x0a70 */ 249, 33, 0,144,248,161, 0,152,124,229, 59,120, 59,159, 0, 64, -/* 0x0a80 */ 129, 35, 0, 4,248, 97, 0,120, 59,192, 0, 0,248, 97, 0,136, -/* 0x0a90 */ 248,129, 0,128, 57, 41, 0, 12,248,225, 0,160,249, 1, 0,168, -/* 0x0aa0 */ 249, 33, 0,112, 56, 97, 0,112, 56,129, 0,144, 75,255,249,141, -/* 0x0ab0 */ 232,225, 0,160,233, 1, 0,168, 56,129, 0,128, 56,160, 0, 0, -/* 0x0ac0 */ 127, 70,211,120,127,169,235,120,127, 10,195,120,127,227,251,120, -/* 0x0ad0 */ 75,255,251, 97, 56,128, 0, 9,124,123, 27,120,127, 67,211,120, -/* 0x0ae0 */ 127,101,219,120, 75,255,250,245,161, 63, 0, 56,127,137,240, 64, -/* 0x0af0 */ 64,157, 0,184,129, 60, 0, 0, 47,137, 0, 3, 64,158, 0,156, -/* 0x0b00 */ 232,124, 0, 16,233, 61, 0, 0, 56,128, 0, 0, 56,160, 0, 0, -/* 0x0b10 */ 124, 99, 74, 20, 75,255,248,141, 96, 0, 0, 0, 47,131, 0, 0, -/* 0x0b20 */ 124,121, 27,120, 64,252, 0, 16, 56, 96, 0,127, 75,255,248, 85, -/* 0x0b30 */ 96, 0, 0, 0,127,228,251,120, 56,160, 4, 0, 75,255,248, 93, -/* 0x0b40 */ 96, 0, 0, 0, 47,163, 4, 0, 64,222,255,224, 57, 32, 0, 0, -/* 0x0b50 */ 56,128, 0, 0,249, 61, 0, 0,127, 37,203,120, 56,192, 0, 0, -/* 0x0b60 */ 56,224, 0, 0, 57, 0, 0, 0,127,169,235,120,127, 10,195,120, -/* 0x0b70 */ 127,227,251,120, 75,255,250,189,232,189, 0, 0, 56,128, 0, 7, -/* 0x0b80 */ 124,123, 27,120,127, 67,211,120, 75,255,250, 81,127, 35,203,120, -/* 0x0b90 */ 75,255,248, 25, 96, 0, 0, 0, 59,222, 0, 1, 59,156, 0, 56, -/* 0x0ba0 */ 123,222, 0, 32, 75,255,255, 68, 56, 33, 0,240,127, 99,219,120, -/* 0x0bb0 */ 72, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 1,128, 8, 0, 0, -/* 0x0bc0 */ 249,193,255,112,249,225,255,120,250, 1,255,128,250, 33,255,136, -/* 0x0bd0 */ 250, 65,255,144,250, 97,255,152,250,129,255,160,250,161,255,168, -/* 0x0be0 */ 250,193,255,176,250,225,255,184,251, 1,255,192,251, 33,255,200, -/* 0x0bf0 */ 251, 65,255,208,251, 97,255,216,251,129,255,224,251,161,255,232, -/* 0x0c00 */ 251,193,255,240,251,225,255,248,248, 1, 0, 16, 78,128, 0, 32, -/* 0x0c10 */ 233,193,255,112,233,225,255,120,234, 1,255,128,234, 33,255,136, -/* 0x0c20 */ 234, 65,255,144,234, 97,255,152,234,129,255,160,234,161,255,168, -/* 0x0c30 */ 234,193,255,176,234,225,255,184,235, 1,255,192,235, 33,255,200, -/* 0x0c40 */ 235, 65,255,208,235, 97,255,216,235,129,255,224,232, 1, 0, 16, -/* 0x0c50 */ 235,161,255,232,124, 8, 3,166,235,193,255,240,235,225,255,248, -/* 0x0c60 */ 78,128, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 3,200, -/* 0x0c70 */ 0, 0, 0, 0, 0, 16,140,104, 0, 0, 0, 0, 0, 16, 4, 56, -/* 0x0c80 */ 0, 0, 0, 0, 0, 16,140,104, 0, 0, 0, 0, 0, 16, 5,216, -/* 0x0c90 */ 0, 0, 0, 0, 0, 16,140,104, 0, 0, 0, 0, 0, 16, 6, 48, -/* 0x0ca0 */ 0, 0, 0, 0, 0, 16,140,104, 0, 0, 0, 0, 0, 16, 10, 76, -/* 0x0cb0 */ 0, 0, 0, 0, 0, 16,140,104 +/* 0x0630 */ 125,128, 0, 38,124, 8, 2,166,145,129, 0, 8, 72, 0, 5,205, +/* 0x0640 */ 125, 52, 75,120,233, 35, 0, 32, 46, 36, 0, 0,248, 33,254,209, +/* 0x0650 */ 125, 90, 83,120,124,124, 27,120,124,176, 43,120,124,215, 51,120, +/* 0x0660 */ 124,239, 59,120,233, 84, 0, 0,125, 14, 67,120,126, 35, 74, 20, +/* 0x0670 */ 248,129, 0,128, 65,146, 0, 56,233, 10, 0, 32, 56,160, 0, 0, +/* 0x0680 */ 56,192, 0, 50, 56,224,255,255,125, 10, 66, 20,232,104, 0, 72, +/* 0x0690 */ 232,136, 0, 40, 57, 0, 0, 0,124, 99, 80, 80, 75,255,252,205, +/* 0x06a0 */ 96, 0, 0, 0,124,127, 27,120, 72, 0, 0,212,161, 3, 0, 16, +/* 0x06b0 */ 56,224, 0, 16, 47,136, 0, 3, 64,158, 0, 8, 56,224, 0, 0, +/* 0x06c0 */ 160,188, 0, 56, 56,231, 0, 34,125, 67, 83,120,120,230, 0, 32, +/* 0x06d0 */ 126, 36,139,120, 56,165, 0, 1, 57, 0, 0, 0,124,169, 3,166, +/* 0x06e0 */ 59,224,255,255, 66, 64, 0, 60,128,164, 0, 0, 47,133, 0, 1, +/* 0x06f0 */ 64,158, 0, 40,233,100, 0, 16,127,191, 88, 64, 64,157, 0, 8, +/* 0x0700 */ 125,127, 91,120,232,164, 0, 40,124,171, 42, 20,127,168, 40, 64, +/* 0x0710 */ 64,156, 0, 8,124,168, 43,120, 56,132, 0, 56, 75,255,255,200, +/* 0x0720 */ 127, 68,208,248,127,255,208, 56,125, 4, 66, 20,120,233,231,227, +/* 0x0730 */ 125, 31, 64, 80,125, 4,208, 56, 64,130, 0, 28, 47,191, 0, 0, +/* 0x0740 */ 64,158, 0, 28, 47,170, 0, 0, 65,158, 0, 24, 56,192, 0, 50, +/* 0x0750 */ 72, 0, 0, 16,127,227,251,120, 72, 0, 0, 8, 56, 96, 0, 0, +/* 0x0760 */ 56,160, 0, 0,124,198, 7,180, 56,224,255,255, 57, 0, 0, 0, +/* 0x0770 */ 75,255,251,249, 96, 0, 0, 0,127,255, 24, 80, 57, 63, 0,120, +/* 0x0780 */ 62,192, 0, 1,249, 33, 0,136,122,233, 7,164,122,214,131,228, +/* 0x0790 */ 249, 33, 0,144,127, 82,208,248, 59, 32, 0, 0, 98,214, 0, 1, +/* 0x07a0 */ 127, 90,208,248,161, 92, 0, 56,127,138,200, 0, 64,157, 2,168, +/* 0x07b0 */ 129, 81, 0, 0, 65,146, 0, 36, 47,138, 0, 6, 64,158, 0, 28, +/* 0x07c0 */ 232,177, 0, 16,126,227,187,120, 56,128, 0, 3,124,191, 42, 20, +/* 0x07d0 */ 75,255,254, 9, 72, 0, 2,112, 47,138, 0, 1, 64,158, 2,104, +/* 0x07e0 */ 65,146, 0, 76,233, 81, 0, 8, 47,170, 0, 0, 64,158, 0, 64, +/* 0x07f0 */ 233, 92, 0, 32,232,177, 0, 16,126,227,187,120, 56,128, 0, 3, +/* 0x0800 */ 125, 95, 82, 20,124,170, 42, 20, 75,255,253,209,160,188, 0, 56, +/* 0x0810 */ 126,227,187,120, 56,128, 0, 5, 75,255,253,193,160,188, 0, 54, +/* 0x0820 */ 126,227,187,120, 56,128, 0, 4, 75,255,253,177,131,113, 0, 4, +/* 0x0830 */ 235,177, 0, 16, 61, 32,115, 81, 97, 41, 98, 64,235,209, 0, 32, +/* 0x0840 */ 234,177, 0, 40, 87,123, 22,250,127,191,234, 20,251,193, 0,112, +/* 0x0850 */ 125, 59,220, 48,127,170,144, 56,251,161, 0,120,126,189,170, 20, +/* 0x0860 */ 127,202,242, 20,127,170,232, 80, 87,115, 7,126, 64,146, 0, 12, +/* 0x0870 */ 56,160, 0, 0, 72, 0, 0, 8, 56,160, 0, 2,124,165,155,120, +/* 0x0880 */ 124,165, 7,180, 65,146, 0, 16, 56,192, 0, 50, 56,224,255,255, +/* 0x0890 */ 72, 0, 0, 12,126, 7,131,120, 56,192, 0, 18,233, 17, 0, 8, +/* 0x08a0 */ 127,163,235,120,127,196,243,120,125, 10, 64, 80, 75,255,250,189, +/* 0x08b0 */ 96, 0, 0, 0,127,189, 24, 0, 65,254, 0, 16, 56, 96, 0,127, +/* 0x08c0 */ 75,255,250,193, 96, 0, 0, 0, 65,146, 0, 24,232, 97, 0,128, +/* 0x08d0 */ 56,129, 0,112,125,229,123,120,125,198,115,120, 75,255,251, 93, +/* 0x08e0 */ 127, 30, 0,208,123,105,255,227,127, 24,144, 56, 64,130, 0, 12, +/* 0x08f0 */ 64,146, 0, 48, 72, 0, 1, 24, 47,184, 0, 0, 65,158,255,244, +/* 0x0900 */ 127, 9, 3,166,125, 29,242, 20, 57, 64, 0, 0, 57, 32, 0, 0, +/* 0x0910 */ 125, 40, 81,174, 57, 74, 0, 1, 66, 0,255,244, 75,255,255,212, +/* 0x0920 */ 233, 81, 0, 0,121, 74, 7,194,121, 74, 0, 2,127,170,176, 0, +/* 0x0930 */ 64,158, 0,192,235,113, 0, 40,233, 81, 0, 32,233, 17, 0, 16, +/* 0x0940 */ 127,187, 80, 0, 64,158, 0, 36,127,123, 66, 20,127,123,250, 20, +/* 0x0950 */ 125, 91, 0,208,125, 74,208, 56, 43,138, 0, 11, 64,157, 0, 12, +/* 0x0960 */ 57, 64, 0, 0, 72, 0, 0, 60,233, 81, 0, 8, 47,170, 0, 0, +/* 0x0970 */ 65,158, 1, 8, 56, 96, 0, 0, 56,128, 16, 0, 56,160, 0, 3, +/* 0x0980 */ 56,192, 0, 34, 56,224,255,255, 57, 0, 0, 0, 75,255,249,221, +/* 0x0990 */ 96, 0, 0, 0,124,123, 27,121, 65,130, 0, 88, 57, 64, 0, 1, +/* 0x09a0 */ 61, 32, 68, 0, 47,170, 0, 0, 97, 41, 0, 2,145, 59, 0, 0, +/* 0x09b0 */ 61, 32,127,236, 97, 41,251,120,145, 59, 0, 4, 61, 32, 78,128, +/* 0x09c0 */ 97, 41, 0, 32,145, 59, 0, 8, 65,158, 0, 24,127, 99,219,120, +/* 0x09d0 */ 56,128, 0, 12, 56,160, 0, 5, 75,255,249,217, 96, 0, 0, 0, +/* 0x09e0 */ 232, 97, 0,144, 56,128, 0, 0,127,101,219,120, 75,255,251,237, +/* 0x09f0 */ 127,163,235,120,127,196,243,120,126,101, 7,180, 75,255,249,181, +/* 0x0a00 */ 96, 0, 0, 0, 47,163, 0, 0, 64,222,254,180,127,216,242, 20, +/* 0x0a10 */ 127,189,242, 20,127,189,168, 64, 64,156, 0, 44,127,163,235,120, +/* 0x0a20 */ 124,157,168, 80,126,101, 7,180, 56,192, 0, 50, 56,224,255,255, +/* 0x0a30 */ 57, 0, 0, 0, 75,255,249, 53, 96, 0, 0, 0,127,189, 24, 0, +/* 0x0a40 */ 64,222,254,124, 59, 57, 0, 1, 58, 49, 0, 56,127, 57, 7,180, +/* 0x0a50 */ 75,255,253, 84, 47,180, 0, 0, 65,158, 0, 8,251,244, 0, 0, +/* 0x0a60 */ 56, 33, 1, 48,232,124, 0, 24,124,127, 26, 20,129,129, 0, 8, +/* 0x0a70 */ 125,144,129, 32, 72, 0, 1,228,233, 33, 0,136,127,105, 66, 20, +/* 0x0a80 */ 59,123, 0, 24, 75,255,255, 28, 0, 0, 0, 0, 0, 0, 0, 3, +/* 0x0a90 */ 128, 18, 0, 0,124, 8, 2,166, 72, 0, 1,153,248, 33,255, 17, +/* 0x0aa0 */ 125, 61, 75,120,129, 35, 0, 0,124,191, 43,120,124,218, 51,120, +/* 0x0ab0 */ 56,192, 0, 0,125, 88, 83,120,249, 33, 0,144,248,161, 0,152, +/* 0x0ac0 */ 124,229, 59,120, 59,159, 0, 64,129, 35, 0, 4,248, 97, 0,120, +/* 0x0ad0 */ 59,192, 0, 0,248, 97, 0,136,248,129, 0,128, 57, 41, 0, 12, +/* 0x0ae0 */ 248,225, 0,160,249, 1, 0,168,249, 33, 0,112, 56, 97, 0,112, +/* 0x0af0 */ 56,129, 0,144, 75,255,249, 69,232,225, 0,160,233, 1, 0,168, +/* 0x0b00 */ 56,129, 0,128, 56,160, 0, 0,127, 70,211,120,127,169,235,120, +/* 0x0b10 */ 127, 10,195,120,127,227,251,120, 75,255,251, 25, 56,128, 0, 9, +/* 0x0b20 */ 124,123, 27,120,127, 67,211,120,127,101,219,120, 75,255,250,173, +/* 0x0b30 */ 161, 63, 0, 56,127,137,240, 64, 64,157, 0,184,129, 60, 0, 0, +/* 0x0b40 */ 47,137, 0, 3, 64,158, 0,156,232,124, 0, 16,233, 61, 0, 0, +/* 0x0b50 */ 56,128, 0, 0, 56,160, 0, 0,124, 99, 74, 20, 75,255,248, 69, +/* 0x0b60 */ 96, 0, 0, 0, 47,131, 0, 0,124,121, 27,120, 64,252, 0, 16, +/* 0x0b70 */ 56, 96, 0,127, 75,255,248, 13, 96, 0, 0, 0,127,228,251,120, +/* 0x0b80 */ 56,160, 4, 0, 75,255,248, 21, 96, 0, 0, 0, 47,163, 4, 0, +/* 0x0b90 */ 64,222,255,224, 57, 32, 0, 0, 56,128, 0, 0,249, 61, 0, 0, +/* 0x0ba0 */ 127, 37,203,120, 56,192, 0, 0, 56,224, 0, 0, 57, 0, 0, 0, +/* 0x0bb0 */ 127,169,235,120,127, 10,195,120,127,227,251,120, 75,255,250,117, +/* 0x0bc0 */ 232,189, 0, 0, 56,128, 0, 7,124,123, 27,120,127, 67,211,120, +/* 0x0bd0 */ 75,255,250, 9,127, 35,203,120, 75,255,247,209, 96, 0, 0, 0, +/* 0x0be0 */ 59,222, 0, 1, 59,156, 0, 56,123,222, 0, 32, 75,255,255, 68, +/* 0x0bf0 */ 56, 33, 0,240,127, 99,219,120, 72, 0, 0,136, 0, 0, 0, 0, +/* 0x0c00 */ 0, 0, 0, 1,128, 8, 0, 0,249,193,255,112,249,225,255,120, +/* 0x0c10 */ 250, 1,255,128,250, 33,255,136,250, 65,255,144,250, 97,255,152, +/* 0x0c20 */ 250,129,255,160,250,161,255,168,250,193,255,176,250,225,255,184, +/* 0x0c30 */ 251, 1,255,192,251, 33,255,200,251, 65,255,208,251, 97,255,216, +/* 0x0c40 */ 251,129,255,224,251,161,255,232,251,193,255,240,251,225,255,248, +/* 0x0c50 */ 248, 1, 0, 16, 78,128, 0, 32,233,193,255,112,233,225,255,120, +/* 0x0c60 */ 234, 1,255,128,234, 33,255,136,234, 65,255,144,234, 97,255,152, +/* 0x0c70 */ 234,129,255,160,234,161,255,168,234,193,255,176,234,225,255,184, +/* 0x0c80 */ 235, 1,255,192,235, 33,255,200,235, 65,255,208,235, 97,255,216, +/* 0x0c90 */ 235,129,255,224,232, 1, 0, 16,235,161,255,232,124, 8, 3,166, +/* 0x0ca0 */ 235,193,255,240,235,225,255,248, 78,128, 0, 32, 0, 0, 0, 0, +/* 0x0cb0 */ 0, 0, 0, 0, 0, 16, 3,200, 0, 0, 0, 0, 0, 16,140,176, +/* 0x0cc0 */ 0, 0, 0, 0, 0, 16, 4, 56, 0, 0, 0, 0, 0, 16,140,176, +/* 0x0cd0 */ 0, 0, 0, 0, 0, 16, 5,216, 0, 0, 0, 0, 0, 16,140,176, +/* 0x0ce0 */ 0, 0, 0, 0, 0, 16, 6, 48, 0, 0, 0, 0, 0, 16,140,176, +/* 0x0cf0 */ 0, 0, 0, 0, 0, 16, 10,148, 0, 0, 0, 0, 0, 16,140,176 }; diff --git a/src/stub/powerpc64le-linux.elf-fold.h b/src/stub/powerpc64le-linux.elf-fold.h index fe87768b..a9814d94 100644 --- a/src/stub/powerpc64le-linux.elf-fold.h +++ b/src/stub/powerpc64le-linux.elf-fold.h @@ -1,5 +1,5 @@ /* powerpc64le-linux.elf-fold.h - created from powerpc64le-linux.elf-fold.bin, 3243 (0xcab) bytes + created from powerpc64le-linux.elf-fold.bin, 3315 (0xcf3) bytes This file is part of the UPX executable compressor. @@ -31,21 +31,21 @@ */ -#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 3243 -#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0xfe54608b -#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0x5332aff2 +#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 3315 +#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0x282983a7 +#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0x731943b3 -unsigned char stub_powerpc64le_linux_elf_fold[3243] = { +unsigned char stub_powerpc64le_linux_elf_fold[3315] = { /* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0, 96, 12, 16, 0, 0, 0, 0, 0, +/* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0,168, 12, 16, 0, 0, 0, 0, 0, /* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0030 */ 1, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0, /* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, -/* 0x0060 */ 96, 12, 0, 0, 0, 0, 0, 0, 96, 12, 0, 0, 0, 0, 0, 0, +/* 0x0060 */ 168, 12, 0, 0, 0, 0, 0, 0,168, 12, 0, 0, 0, 0, 0, 0, /* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, -/* 0x0080 */ 96, 12, 0, 0, 0, 0, 0, 0, 96, 12, 16, 0, 0, 0, 0, 0, -/* 0x0090 */ 96, 12, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, +/* 0x0080 */ 168, 12, 0, 0, 0, 0, 0, 0,168, 12, 16, 0, 0, 0, 0, 0, +/* 0x0090 */ 168, 12, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, /* 0x00a0 */ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, /* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,255, 96, 56, /* 0x00c0 */ 164, 77, 99,120, 32, 0,128, 78, 0, 0, 0, 96,125, 0, 0, 72, @@ -75,7 +75,7 @@ unsigned char stub_powerpc64le_linux_elf_fold[3243] = { /* 0x0240 */ 120,187,228,126,144, 0,161, 56,120,211, 70,127,120,251,231,127, /* 0x0250 */ 120,179,200,126, 0, 0, 0, 56,112, 0,225,248,112, 0,225, 56, /* 0x0260 */ 120, 0, 1,248,128, 0, 1,249,128, 0, 1, 57,136, 0, 1,248, -/* 0x0270 */ 120,243,202,127,213, 7, 0, 72,144, 8, 33, 56,120,171,162,126, +/* 0x0270 */ 120,243,202,127, 29, 8, 0, 72,144, 8, 33, 56,120,171,162,126, /* 0x0280 */ 7, 0, 96,112, 36, 0,130, 64, 0, 0, 3,128, 0, 0, 0, 40, /* 0x0290 */ 24, 0,130, 64,136, 1, 1,232, 8, 0, 67,232, 20, 2, 66,124, /* 0x02a0 */ 0, 0, 99,232, 20, 2, 99,124, 0, 0,117,248,120, 27,127,124, @@ -104,7 +104,7 @@ unsigned char stub_powerpc64le_linux_elf_fold[3243] = { /* 0x0410 */ 8, 0, 67,233, 20, 74, 74,125, 8, 0, 67,249, 0, 0, 67,233, /* 0x0420 */ 80, 80, 41,125, 0, 0, 35,249, 32, 0,128, 78, 0, 0, 0, 0, /* 0x0430 */ 0, 0, 0, 1,128, 0, 0, 0, 38, 0,128,125,166, 2, 8,124, -/* 0x0440 */ 8, 0,129,145,177, 7, 0, 72, 81,255, 33,248,120, 27,126,124, +/* 0x0440 */ 8, 0,129,145,249, 7, 0, 72, 81,255, 33,248,120, 27,126,124, /* 0x0450 */ 120, 35,159,124,120, 43,189,124,120, 51,220,124, 0, 0, 38, 46, /* 0x0460 */ 0, 0, 63,233, 0, 0,169, 47, 84, 1,158, 65,120,243,195,127, /* 0x0470 */ 112, 0,129, 56, 12, 0,160, 56, 81,255,255, 75,112, 0, 65,129, @@ -128,115 +128,120 @@ unsigned char stub_powerpc64le_linux_elf_fold[3243] = { /* 0x0590 */ 120,243,195,127,120, 75, 37,125, 49,254,255, 75,112, 0, 1,129, /* 0x05a0 */ 8, 0, 95,233, 0, 0, 63,233, 20, 66, 74,125, 80, 72, 40,125, /* 0x05b0 */ 8, 0, 95,249, 0, 0, 63,249,168,254,255, 75,176, 0, 33, 56, -/* 0x05c0 */ 8, 0,129,129, 32,129,144,125,124, 6, 0, 72, 0, 0, 0, 0, +/* 0x05c0 */ 8, 0,129,129, 32,129,144,125,196, 6, 0, 72, 0, 0, 0, 0, /* 0x05d0 */ 0, 0, 0, 3,128, 4, 0, 0, 0, 0, 35, 44, 32, 0,130, 77, /* 0x05e0 */ 225, 7,105,120, 32, 0,130, 76, 0, 0, 36, 47, 0, 0, 67,233, /* 0x05f0 */ 64, 32,170,127, 16, 0,158, 64, 0, 0,131,248, 8, 0,163,248, /* 0x0600 */ 32, 0,128, 78, 1, 0,170, 43, 12, 0,158, 64, 16, 0,154, 65, /* 0x0610 */ 232,255,255, 75, 0, 0,170, 47, 32, 0,158, 77, 16, 0, 99, 56, /* 0x0620 */ 204,255,255, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -/* 0x0630 */ 38, 0,128,125,166, 2, 8,124, 8, 0,129,145,129, 5, 0, 72, -/* 0x0640 */ 225,254, 33,248,120, 67, 14,125, 16, 0, 3,161,120, 75, 49,125, -/* 0x0650 */ 32, 0, 35,233,120, 83, 90,125,120, 27,124,124,120, 35,146,124, -/* 0x0660 */ 3, 0,136, 47, 96, 1,161,248,120, 51,215,124,120, 59,239,124, -/* 0x0670 */ 20, 74, 3,126, 16, 0, 64, 57, 8, 0,158, 64, 0, 0, 64, 57, -/* 0x0680 */ 56, 0, 28,161, 0, 0,113,232, 34, 0, 74, 57,120,131, 7,126, -/* 0x0690 */ 32, 0, 70,121, 0, 0,128, 56, 1, 0, 8, 57,255,255,192, 59, -/* 0x06a0 */ 166, 3, 9,125, 60, 0, 64, 66, 0, 0, 7,129, 1, 0,136, 47, -/* 0x06b0 */ 40, 0,158, 64, 16, 0,167,232, 64, 40,190,127, 8, 0,157, 64, -/* 0x06c0 */ 120, 43,190,124, 40, 0, 7,233, 20, 66, 5,125, 64, 64,164,127, -/* 0x06d0 */ 8, 0,156, 64,120, 67, 4,125, 56, 0,231, 56,200,255,255, 75, -/* 0x06e0 */ 248,208, 84,127, 56,208,222,127, 20, 34,148,124,227,231, 73,121, -/* 0x06f0 */ 80, 32,158,124, 56,208,132,124, 28, 0,130, 64, 0, 0,190, 47, -/* 0x0700 */ 28, 0,158, 64, 0, 0,163, 47, 24, 0,158, 65, 50, 0,192, 56, -/* 0x0710 */ 16, 0, 0, 72,120,243,195,127, 8, 0, 0, 72, 0, 0, 96, 56, -/* 0x0720 */ 0, 0,160, 56,180, 7,198,124,255,255,224, 56, 0, 0, 0, 57, -/* 0x0730 */ 57,252,255, 75, 0, 0, 0, 96, 1, 0,192, 62, 0, 0, 32, 59, -/* 0x0740 */ 228,131,214,122, 80, 24,222,127, 0, 0, 50, 46,120, 0, 62, 57, -/* 0x0750 */ 1, 0,214, 98,128, 0, 33,249,164, 7,233,122,248,208, 90,127, -/* 0x0760 */ 136, 0, 33,249, 56, 0, 92,161, 0,200,138,127,164, 2,157, 64, -/* 0x0770 */ 0, 0, 80,129, 36, 0,146, 65, 6, 0,138, 47, 28, 0,158, 64, -/* 0x0780 */ 16, 0,176,232,120,187,227,126, 3, 0,128, 56, 20, 42,190,124, -/* 0x0790 */ 73,254,255, 75,108, 2, 0, 72, 1, 0,138, 47,100, 2,158, 64, -/* 0x07a0 */ 76, 0,146, 65, 8, 0, 80,233, 0, 0,170, 47, 64, 0,158, 64, -/* 0x07b0 */ 32, 0, 92,233, 16, 0,176,232,120,187,227,126, 3, 0,128, 56, -/* 0x07c0 */ 20, 82, 94,125, 20, 42,170,124, 17,254,255, 75, 56, 0,188,160, -/* 0x07d0 */ 120,187,227,126, 5, 0,128, 56, 1,254,255, 75, 54, 0,188,160, -/* 0x07e0 */ 120,187,227,126, 4, 0,128, 56,241,253,255, 75, 4, 0,112,131, -/* 0x07f0 */ 16, 0,176,235, 81,115, 32, 61, 64, 98, 41, 97, 32, 0,240,235, -/* 0x0800 */ 40, 0,176,234,250, 22,123, 87, 20,234,190,127,112, 0,225,251, -/* 0x0810 */ 48,220, 59,125, 56,160,170,127,120, 0,161,251, 20,170,189,126, -/* 0x0820 */ 20,250,234,127, 80,232,170,127,126, 7,115, 87, 12, 0,146, 64, -/* 0x0830 */ 0, 0,160, 56, 8, 0, 0, 72, 2, 0,160, 56,120,155,165,124, -/* 0x0840 */ 180, 7,165,124, 16, 0,146, 64, 96, 1,225,232, 18, 0,192, 56, -/* 0x0850 */ 12, 0, 0, 72, 50, 0,192, 56,255,255,224, 56, 8, 0, 16,233, -/* 0x0860 */ 120,235,163,127,120,251,228,127, 80, 64, 10,125,253,250,255, 75, -/* 0x0870 */ 0, 0, 0, 96, 0, 24,189,127, 16, 0,254, 65,127, 0, 96, 56, -/* 0x0880 */ 1,251,255, 75, 0, 0, 0, 96, 24, 0,146, 65,120,147, 67,126, -/* 0x0890 */ 112, 0,129, 56,120,123,229,125,120,115,198,125,157,251,255, 75, -/* 0x08a0 */ 208, 0, 31,127,227,255,105,123, 56,160, 24,127, 12, 0,130, 64, -/* 0x08b0 */ 48, 0,146, 64, 20, 1, 0, 72, 0, 0,184, 47,244,255,158, 65, -/* 0x08c0 */ 166, 3, 9,127, 20,250, 29,125, 0, 0, 64, 57, 0, 0, 32, 57, -/* 0x08d0 */ 174, 81, 40,125, 1, 0, 74, 57,244,255, 0, 66,212,255,255, 75, -/* 0x08e0 */ 0, 0, 80,233,192, 7, 74,121, 0,176,170,127,192, 0,158, 64, -/* 0x08f0 */ 40, 0,112,235, 32, 0, 80,233, 16, 0, 16,233, 0, 80,187,127, -/* 0x0900 */ 36, 0,158, 64, 20, 66,123,127, 20,242,123,127,208, 0, 91,125, -/* 0x0910 */ 56,208, 74,125, 11, 0,138, 43, 12, 0,157, 64, 0, 0, 64, 57, -/* 0x0920 */ 60, 0, 0, 72, 8, 0, 80,233, 0, 0,170, 47, 0, 1,158, 65, -/* 0x0930 */ 0, 0, 96, 56, 0, 16,128, 56, 3, 0,160, 56, 34, 0,192, 56, -/* 0x0940 */ 255,255,224, 56, 0, 0, 0, 57, 33,250,255, 75, 0, 0, 0, 96, -/* 0x0950 */ 121, 27,123,124, 88, 0,130, 65, 1, 0, 64, 57, 0, 68, 32, 61, -/* 0x0960 */ 0, 0,170, 47, 2, 0, 41, 97, 0, 0, 59,145,236,127, 32, 61, -/* 0x0970 */ 120,251, 41, 97, 4, 0, 59,145,128, 78, 32, 61, 32, 0, 41, 97, -/* 0x0980 */ 8, 0, 59,145, 24, 0,158, 65,120,219, 99,127, 12, 0,128, 56, -/* 0x0990 */ 5, 0,160, 56, 29,250,255, 75, 0, 0, 0, 96,136, 0, 97,232, -/* 0x09a0 */ 0, 0,128, 56,120,219,101,127, 49,252,255, 75,120,235,163,127, -/* 0x09b0 */ 120,251,228,127,180, 7,101,126,249,249,255, 75, 0, 0, 0, 96, -/* 0x09c0 */ 0, 0,163, 47,184,254,222, 64, 20,250,248,127, 20,250,189,127, -/* 0x09d0 */ 64,168,189,127, 44, 0,156, 64,120,235,163,127, 80,168,157,124, -/* 0x09e0 */ 180, 7,101,126, 50, 0,192, 56,255,255,224, 56, 0, 0, 0, 57, -/* 0x09f0 */ 121,249,255, 75, 0, 0, 0, 96, 0, 24,189,127,128,254,222, 64, -/* 0x0a00 */ 1, 0, 57, 59, 56, 0, 16, 58,180, 7, 57,127, 88,253,255, 75, -/* 0x0a10 */ 0, 0,209,251, 32, 1, 33, 56, 8, 0,129,129, 32,129,144,125, -/* 0x0a20 */ 24, 0,124,232, 20, 26,126,124,228, 1, 0, 72,128, 0, 33,233, -/* 0x0a30 */ 20, 66,105,127, 24, 0,123, 59, 36,255,255, 75, 0, 0, 0, 0, -/* 0x0a40 */ 0, 0, 0, 3,128, 18, 0, 0,166, 2, 8,124,153, 1, 0, 72, -/* 0x0a50 */ 17,255, 33,248,120, 75, 61,125, 0, 0, 35,129,120, 43,191,124, -/* 0x0a60 */ 120, 51,218,124, 0, 0,192, 56,120, 83, 88,125,144, 0, 33,249, -/* 0x0a70 */ 152, 0,161,248,120, 59,229,124, 64, 0,159, 59, 4, 0, 35,129, -/* 0x0a80 */ 120, 0, 97,248, 0, 0,192, 59,136, 0, 97,248,128, 0,129,248, -/* 0x0a90 */ 12, 0, 41, 57,160, 0,225,248,168, 0, 1,249,112, 0, 33,249, -/* 0x0aa0 */ 112, 0, 97, 56,144, 0,129, 56,145,249,255, 75,160, 0,225,232, -/* 0x0ab0 */ 168, 0, 1,233,128, 0,129, 56, 0, 0,160, 56,120,211, 70,127, -/* 0x0ac0 */ 120,235,169,127,120,195, 10,127,120,251,227,127,101,251,255, 75, -/* 0x0ad0 */ 9, 0,128, 56,120, 27,123,124,120,211, 67,127,120,219,101,127, -/* 0x0ae0 */ 249,250,255, 75, 56, 0, 63,161, 64,240,137,127,184, 0,157, 64, -/* 0x0af0 */ 0, 0, 60,129, 3, 0,137, 47,156, 0,158, 64, 16, 0,124,232, -/* 0x0b00 */ 0, 0, 61,233, 0, 0,128, 56, 0, 0,160, 56, 20, 74, 99,124, -/* 0x0b10 */ 145,248,255, 75, 0, 0, 0, 96, 0, 0,131, 47,120, 27,121,124, -/* 0x0b20 */ 16, 0,252, 64,127, 0, 96, 56, 89,248,255, 75, 0, 0, 0, 96, -/* 0x0b30 */ 120,251,228,127, 0, 4,160, 56, 97,248,255, 75, 0, 0, 0, 96, -/* 0x0b40 */ 0, 4,163, 47,224,255,222, 64, 0, 0, 32, 57, 0, 0,128, 56, -/* 0x0b50 */ 0, 0, 61,249,120,203, 37,127, 0, 0,192, 56, 0, 0,224, 56, -/* 0x0b60 */ 0, 0, 0, 57,120,235,169,127,120,195, 10,127,120,251,227,127, -/* 0x0b70 */ 193,250,255, 75, 0, 0,189,232, 7, 0,128, 56,120, 27,123,124, -/* 0x0b80 */ 120,211, 67,127, 85,250,255, 75,120,203, 35,127, 29,248,255, 75, -/* 0x0b90 */ 0, 0, 0, 96, 1, 0,222, 59, 56, 0,156, 59, 32, 0,222,123, -/* 0x0ba0 */ 68,255,255, 75,240, 0, 33, 56,120,219, 99,127,136, 0, 0, 72, -/* 0x0bb0 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 8, 0, 0,112,255,193,249, -/* 0x0bc0 */ 120,255,225,249,128,255, 1,250,136,255, 33,250,144,255, 65,250, -/* 0x0bd0 */ 152,255, 97,250,160,255,129,250,168,255,161,250,176,255,193,250, -/* 0x0be0 */ 184,255,225,250,192,255, 1,251,200,255, 33,251,208,255, 65,251, -/* 0x0bf0 */ 216,255, 97,251,224,255,129,251,232,255,161,251,240,255,193,251, -/* 0x0c00 */ 248,255,225,251, 16, 0, 1,248, 32, 0,128, 78,112,255,193,233, -/* 0x0c10 */ 120,255,225,233,128,255, 1,234,136,255, 33,234,144,255, 65,234, -/* 0x0c20 */ 152,255, 97,234,160,255,129,234,168,255,161,234,176,255,193,234, -/* 0x0c30 */ 184,255,225,234,192,255, 1,235,200,255, 33,235,208,255, 65,235, -/* 0x0c40 */ 216,255, 97,235,224,255,129,235, 16, 0, 1,232,232,255,161,235, -/* 0x0c50 */ 166, 3, 8,124,240,255,193,235,248,255,225,235, 32, 0,128, 78, -/* 0x0c60 */ 200, 3, 16, 0, 0, 0, 0, 0, 96,140, 16, 0, 0, 0, 0, 0, -/* 0x0c70 */ 56, 4, 16, 0, 0, 0, 0, 0, 96,140, 16, 0, 0, 0, 0, 0, -/* 0x0c80 */ 216, 5, 16, 0, 0, 0, 0, 0, 96,140, 16, 0, 0, 0, 0, 0, -/* 0x0c90 */ 48, 6, 16, 0, 0, 0, 0, 0, 96,140, 16, 0, 0, 0, 0, 0, -/* 0x0ca0 */ 72, 10, 16, 0, 0, 0, 0, 0, 96,140, 16 +/* 0x0630 */ 38, 0,128,125,166, 2, 8,124, 8, 0,129,145,201, 5, 0, 72, +/* 0x0640 */ 120, 75, 52,125, 32, 0, 35,233, 0, 0, 36, 46,209,254, 33,248, +/* 0x0650 */ 120, 83, 90,125,120, 27,124,124,120, 43,176,124,120, 51,215,124, +/* 0x0660 */ 120, 59,239,124, 0, 0, 84,233,120, 67, 14,125, 20, 74, 35,126, +/* 0x0670 */ 128, 0,129,248, 56, 0,146, 65, 32, 0, 10,233, 0, 0,160, 56, +/* 0x0680 */ 50, 0,192, 56,255,255,224, 56, 20, 66, 10,125, 72, 0,104,232, +/* 0x0690 */ 40, 0,136,232, 0, 0, 0, 57, 80, 80, 99,124,205,252,255, 75, +/* 0x06a0 */ 0, 0, 0, 96,120, 27,127,124,212, 0, 0, 72, 16, 0, 3,161, +/* 0x06b0 */ 16, 0,224, 56, 3, 0,136, 47, 8, 0,158, 64, 0, 0,224, 56, +/* 0x06c0 */ 56, 0,188,160, 34, 0,231, 56,120, 83, 67,125, 32, 0,230,120, +/* 0x06d0 */ 120,139, 36,126, 1, 0,165, 56, 0, 0, 0, 57,166, 3,169,124, +/* 0x06e0 */ 255,255,224, 59, 60, 0, 64, 66, 0, 0,164,128, 1, 0,133, 47, +/* 0x06f0 */ 40, 0,158, 64, 16, 0,100,233, 64, 88,191,127, 8, 0,157, 64, +/* 0x0700 */ 120, 91,127,125, 40, 0,164,232, 20, 42,171,124, 64, 40,168,127, +/* 0x0710 */ 8, 0,156, 64,120, 43,168,124, 56, 0,132, 56,200,255,255, 75, +/* 0x0720 */ 248,208, 68,127, 56,208,255,127, 20, 66, 4,125,227,231,233,120, +/* 0x0730 */ 80, 64, 31,125, 56,208, 4,125, 28, 0,130, 64, 0, 0,191, 47, +/* 0x0740 */ 28, 0,158, 64, 0, 0,170, 47, 24, 0,158, 65, 50, 0,192, 56, +/* 0x0750 */ 16, 0, 0, 72,120,251,227,127, 8, 0, 0, 72, 0, 0, 96, 56, +/* 0x0760 */ 0, 0,160, 56,180, 7,198,124,255,255,224, 56, 0, 0, 0, 57, +/* 0x0770 */ 249,251,255, 75, 0, 0, 0, 96, 80, 24,255,127,120, 0, 63, 57, +/* 0x0780 */ 1, 0,192, 62,136, 0, 33,249,164, 7,233,122,228,131,214,122, +/* 0x0790 */ 144, 0, 33,249,248,208, 82,127, 0, 0, 32, 59, 1, 0,214, 98, +/* 0x07a0 */ 248,208, 90,127, 56, 0, 92,161, 0,200,138,127,164, 2,157, 64, +/* 0x07b0 */ 0, 0, 81,129, 36, 0,146, 65, 6, 0,138, 47, 28, 0,158, 64, +/* 0x07c0 */ 16, 0,177,232,120,187,227,126, 3, 0,128, 56, 20, 42,191,124, +/* 0x07d0 */ 9,254,255, 75,108, 2, 0, 72, 1, 0,138, 47,100, 2,158, 64, +/* 0x07e0 */ 76, 0,146, 65, 8, 0, 81,233, 0, 0,170, 47, 64, 0,158, 64, +/* 0x07f0 */ 32, 0, 92,233, 16, 0,177,232,120,187,227,126, 3, 0,128, 56, +/* 0x0800 */ 20, 82, 95,125, 20, 42,170,124,209,253,255, 75, 56, 0,188,160, +/* 0x0810 */ 120,187,227,126, 5, 0,128, 56,193,253,255, 75, 54, 0,188,160, +/* 0x0820 */ 120,187,227,126, 4, 0,128, 56,177,253,255, 75, 4, 0,113,131, +/* 0x0830 */ 16, 0,177,235, 81,115, 32, 61, 64, 98, 41, 97, 32, 0,209,235, +/* 0x0840 */ 40, 0,177,234,250, 22,123, 87, 20,234,191,127,112, 0,193,251, +/* 0x0850 */ 48,220, 59,125, 56,144,170,127,120, 0,161,251, 20,170,189,126, +/* 0x0860 */ 20,242,202,127, 80,232,170,127,126, 7,115, 87, 12, 0,146, 64, +/* 0x0870 */ 0, 0,160, 56, 8, 0, 0, 72, 2, 0,160, 56,120,155,165,124, +/* 0x0880 */ 180, 7,165,124, 16, 0,146, 65, 50, 0,192, 56,255,255,224, 56, +/* 0x0890 */ 12, 0, 0, 72,120,131, 7,126, 18, 0,192, 56, 8, 0, 17,233, +/* 0x08a0 */ 120,235,163,127,120,243,196,127, 80, 64, 10,125,189,250,255, 75, +/* 0x08b0 */ 0, 0, 0, 96, 0, 24,189,127, 16, 0,254, 65,127, 0, 96, 56, +/* 0x08c0 */ 193,250,255, 75, 0, 0, 0, 96, 24, 0,146, 65,128, 0, 97,232, +/* 0x08d0 */ 112, 0,129, 56,120,123,229,125,120,115,198,125, 93,251,255, 75, +/* 0x08e0 */ 208, 0, 30,127,227,255,105,123, 56,144, 24,127, 12, 0,130, 64, +/* 0x08f0 */ 48, 0,146, 64, 20, 1, 0, 72, 0, 0,184, 47,244,255,158, 65, +/* 0x0900 */ 166, 3, 9,127, 20,242, 29,125, 0, 0, 64, 57, 0, 0, 32, 57, +/* 0x0910 */ 174, 81, 40,125, 1, 0, 74, 57,244,255, 0, 66,212,255,255, 75, +/* 0x0920 */ 0, 0, 81,233,192, 7, 74,121, 0,176,170,127,192, 0,158, 64, +/* 0x0930 */ 40, 0,113,235, 32, 0, 81,233, 16, 0, 17,233, 0, 80,187,127, +/* 0x0940 */ 36, 0,158, 64, 20, 66,123,127, 20,250,123,127,208, 0, 91,125, +/* 0x0950 */ 56,208, 74,125, 11, 0,138, 43, 12, 0,157, 64, 0, 0, 64, 57, +/* 0x0960 */ 60, 0, 0, 72, 8, 0, 81,233, 0, 0,170, 47, 8, 1,158, 65, +/* 0x0970 */ 0, 0, 96, 56, 0, 16,128, 56, 3, 0,160, 56, 34, 0,192, 56, +/* 0x0980 */ 255,255,224, 56, 0, 0, 0, 57,225,249,255, 75, 0, 0, 0, 96, +/* 0x0990 */ 121, 27,123,124, 88, 0,130, 65, 1, 0, 64, 57, 0, 68, 32, 61, +/* 0x09a0 */ 0, 0,170, 47, 2, 0, 41, 97, 0, 0, 59,145,236,127, 32, 61, +/* 0x09b0 */ 120,251, 41, 97, 4, 0, 59,145,128, 78, 32, 61, 32, 0, 41, 97, +/* 0x09c0 */ 8, 0, 59,145, 24, 0,158, 65,120,219, 99,127, 12, 0,128, 56, +/* 0x09d0 */ 5, 0,160, 56,221,249,255, 75, 0, 0, 0, 96,144, 0, 97,232, +/* 0x09e0 */ 0, 0,128, 56,120,219,101,127,241,251,255, 75,120,235,163,127, +/* 0x09f0 */ 120,243,196,127,180, 7,101,126,185,249,255, 75, 0, 0, 0, 96, +/* 0x0a00 */ 0, 0,163, 47,184,254,222, 64, 20,242,216,127, 20,242,189,127, +/* 0x0a10 */ 64,168,189,127, 44, 0,156, 64,120,235,163,127, 80,168,157,124, +/* 0x0a20 */ 180, 7,101,126, 50, 0,192, 56,255,255,224, 56, 0, 0, 0, 57, +/* 0x0a30 */ 57,249,255, 75, 0, 0, 0, 96, 0, 24,189,127,128,254,222, 64, +/* 0x0a40 */ 1, 0, 57, 59, 56, 0, 49, 58,180, 7, 57,127, 88,253,255, 75, +/* 0x0a50 */ 0, 0,180, 47, 8, 0,158, 65, 0, 0,244,251, 48, 1, 33, 56, +/* 0x0a60 */ 24, 0,124,232, 20, 26,127,124, 8, 0,129,129, 32,129,144,125, +/* 0x0a70 */ 228, 1, 0, 72,136, 0, 33,233, 20, 66,105,127, 24, 0,123, 59, +/* 0x0a80 */ 28,255,255, 75, 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0, +/* 0x0a90 */ 166, 2, 8,124,153, 1, 0, 72, 17,255, 33,248,120, 75, 61,125, +/* 0x0aa0 */ 0, 0, 35,129,120, 43,191,124,120, 51,218,124, 0, 0,192, 56, +/* 0x0ab0 */ 120, 83, 88,125,144, 0, 33,249,152, 0,161,248,120, 59,229,124, +/* 0x0ac0 */ 64, 0,159, 59, 4, 0, 35,129,120, 0, 97,248, 0, 0,192, 59, +/* 0x0ad0 */ 136, 0, 97,248,128, 0,129,248, 12, 0, 41, 57,160, 0,225,248, +/* 0x0ae0 */ 168, 0, 1,249,112, 0, 33,249,112, 0, 97, 56,144, 0,129, 56, +/* 0x0af0 */ 73,249,255, 75,160, 0,225,232,168, 0, 1,233,128, 0,129, 56, +/* 0x0b00 */ 0, 0,160, 56,120,211, 70,127,120,235,169,127,120,195, 10,127, +/* 0x0b10 */ 120,251,227,127, 29,251,255, 75, 9, 0,128, 56,120, 27,123,124, +/* 0x0b20 */ 120,211, 67,127,120,219,101,127,177,250,255, 75, 56, 0, 63,161, +/* 0x0b30 */ 64,240,137,127,184, 0,157, 64, 0, 0, 60,129, 3, 0,137, 47, +/* 0x0b40 */ 156, 0,158, 64, 16, 0,124,232, 0, 0, 61,233, 0, 0,128, 56, +/* 0x0b50 */ 0, 0,160, 56, 20, 74, 99,124, 73,248,255, 75, 0, 0, 0, 96, +/* 0x0b60 */ 0, 0,131, 47,120, 27,121,124, 16, 0,252, 64,127, 0, 96, 56, +/* 0x0b70 */ 17,248,255, 75, 0, 0, 0, 96,120,251,228,127, 0, 4,160, 56, +/* 0x0b80 */ 25,248,255, 75, 0, 0, 0, 96, 0, 4,163, 47,224,255,222, 64, +/* 0x0b90 */ 0, 0, 32, 57, 0, 0,128, 56, 0, 0, 61,249,120,203, 37,127, +/* 0x0ba0 */ 0, 0,192, 56, 0, 0,224, 56, 0, 0, 0, 57,120,235,169,127, +/* 0x0bb0 */ 120,195, 10,127,120,251,227,127,121,250,255, 75, 0, 0,189,232, +/* 0x0bc0 */ 7, 0,128, 56,120, 27,123,124,120,211, 67,127, 13,250,255, 75, +/* 0x0bd0 */ 120,203, 35,127,213,247,255, 75, 0, 0, 0, 96, 1, 0,222, 59, +/* 0x0be0 */ 56, 0,156, 59, 32, 0,222,123, 68,255,255, 75,240, 0, 33, 56, +/* 0x0bf0 */ 120,219, 99,127,136, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 1, +/* 0x0c00 */ 128, 8, 0, 0,112,255,193,249,120,255,225,249,128,255, 1,250, +/* 0x0c10 */ 136,255, 33,250,144,255, 65,250,152,255, 97,250,160,255,129,250, +/* 0x0c20 */ 168,255,161,250,176,255,193,250,184,255,225,250,192,255, 1,251, +/* 0x0c30 */ 200,255, 33,251,208,255, 65,251,216,255, 97,251,224,255,129,251, +/* 0x0c40 */ 232,255,161,251,240,255,193,251,248,255,225,251, 16, 0, 1,248, +/* 0x0c50 */ 32, 0,128, 78,112,255,193,233,120,255,225,233,128,255, 1,234, +/* 0x0c60 */ 136,255, 33,234,144,255, 65,234,152,255, 97,234,160,255,129,234, +/* 0x0c70 */ 168,255,161,234,176,255,193,234,184,255,225,234,192,255, 1,235, +/* 0x0c80 */ 200,255, 33,235,208,255, 65,235,216,255, 97,235,224,255,129,235, +/* 0x0c90 */ 16, 0, 1,232,232,255,161,235,166, 3, 8,124,240,255,193,235, +/* 0x0ca0 */ 248,255,225,235, 32, 0,128, 78,200, 3, 16, 0, 0, 0, 0, 0, +/* 0x0cb0 */ 168,140, 16, 0, 0, 0, 0, 0, 56, 4, 16, 0, 0, 0, 0, 0, +/* 0x0cc0 */ 168,140, 16, 0, 0, 0, 0, 0,216, 5, 16, 0, 0, 0, 0, 0, +/* 0x0cd0 */ 168,140, 16, 0, 0, 0, 0, 0, 48, 6, 16, 0, 0, 0, 0, 0, +/* 0x0ce0 */ 168,140, 16, 0, 0, 0, 0, 0,144, 10, 16, 0, 0, 0, 0, 0, +/* 0x0cf0 */ 168,140, 16 }; diff --git a/src/stub/src/amd64-linux.elf-entry.S b/src/stub/src/amd64-linux.elf-entry.S index 9183ddf4..54de5f3d 100644 --- a/src/stub/src/amd64-linux.elf-entry.S +++ b/src/stub/src/amd64-linux.elf-entry.S @@ -239,21 +239,20 @@ unfold: // IN: rbp= &f_exp; rsp/ &proc_self_exe,%entry lea -4+ FOLD - proc_self_exe(%arg1),%rsi // &O_BINFO | is_ptinterp lodsl; and $~1,%eax; movl %eax,%r14d // O_BINFO push %rsi; pop %rbx // &b_info of folded decompressor - lodsl; xchg %eax,%edx; add %rbx,%rdx // .sz_unc; last of unfolded - lodsl; xchg %eax,%r13d; lodsl; add %rsi,%r13 // .sz_cpr; last of folded + movl (%rsi),%edx // .sz_unc lea sz_pack2 - f_exp(%rbp),%rcx // &sz_pack2 movl (%rcx),%r15d // sz_pack2: length before stub subq %r15,%rcx // elfaddr= &Elf64_Ehdr of this stub subl %r14d,%r15d // LENX= sz_pack2 - O_BINFO + addq %rcx,%r14 // ADRX= elfaddr + O_BINFO pop %rdi // fd - subq %rcx,%rdx; push %rdx // LENU + push %rdx // LENU push %rax // %ADRU - subq %rcx,%r13 // LENF push %rdi // fd push %rcx // elfaddr -// Reserve space for input file and unfolded stub. +// Reserve space for unfolded stub. subq %arg6,%arg6 // 0 offset orl $-1,%arg5l // fd push $MAP_PRIVATE|MAP_ANONYMOUS; pop %sys4 @@ -261,44 +260,23 @@ unfold: // IN: rbp= &f_exp; rsp/ &proc_self_exe,%entry push $PROT_READ|PROT_WRITE; pop %arg3 subl %arg1l,%arg1l // 0; kernel chooses addr push $__NR_mmap; pop %rax; syscall - addq %rax,%r14 // + O_BINFO = ADRX movq %rax,2*8(%rsp) // ADRU -// Duplicate the input data. - xchgq %rax,%arg1 // same address - //subq %arg6,%arg6 // 0 offset - movl 1*8(%rsp),%arg5l // fd - push $MAP_PRIVATE|MAP_FIXED; pop %sys4 - //push $PROT_READ|PROT_WRITE; pop %arg3 - movq %r13,%arg2 // len - push $__NR_mmap; pop %rax; syscall - -// Remember new f_exp region for PROT_EXEC. - movq 3*8(%rsp),%rdx // LENU - pop %rcx; push %rcx // elfaddr - addq %rax,%rdx // new last of unfoded - subq %rcx,%rax // new - old - movq %rax,%r12 // relocation constant - addq %rbp,%rax; push %rax // P_10 new f_exp - andq $PAGE_MASK,%rax; push %rax // P_11 address - subq %rax,%rdx; push %rdx // P_12 length - // Unfold - movq %rbx,%rsi + push %rax; pop %arg3 // dst= new unfold + push %rbx; pop %rsi lodsl; push %rax; movq %rsp,%arg4 // P_13 .sz_unc; &dstlen - lea (%rbx,%r12),%arg3 // dst= new unfold movq %arg3,%r13 // execute here lodsl; push %rax // P_14 tmp= .sz_cpr lodsl; xchg %eax,%arg5l // .b_method movq %rsi,%arg1 // src pop %arg2 // P_14 srclen - call *%rbp // old f_exp + call *%rbp // f_exp pop %rcx // P_13 toss .sz_unc // PROT_EXEC - pop %arg2 // P_12 length - pop %arg1 // P_11 addr - pop %rbp // P_10 new f_exp + movq 3*8(%rsp),%arg2 // LENU + movq 2*8(%rsp),%arg1 // ADRU push $PROT_READ|PROT_EXEC; pop %arg3 push $__NR_mprotect; pop %rax; syscall diff --git a/src/stub/src/amd64-linux.elf-fold.S b/src/stub/src/amd64-linux.elf-fold.S index e5d8b8dd..9f3e10cc 100644 --- a/src/stub/src/amd64-linux.elf-fold.S +++ b/src/stub/src/amd64-linux.elf-fold.S @@ -68,11 +68,11 @@ __NR_exit= 60 __NR_readlink= 89 // IN: -// %rbx= &O_BINFO; %rbp= f_exp; %r14= ADRX; %r15= LENX; +// %rbx= 4+ &O_BINFO; %rbp= f_exp; %r14= ADRX; %r15= LENX; // rsp/ elfaddr,fd,ADRU,LENU,rdx,%entry, argc,argv,0,envp,0,auxv,0,strings fold_begin: -//// int3 // DEBUG only + int3 // DEBUG only call L90 #include "arch/amd64/bxx.S" L90: @@ -142,11 +142,13 @@ L90: push %rax # elfaddr 7th arg movq %rbp,%arg5 # &decompress: f_expand +int3 call upx_main # Out: %rax= entry /* entry= upx_main(b_info *arg1, total_size arg2, Elf64_Ehdr *arg3, Elf32_Auxv_t *arg4, f_decompr arg5, f_unf arg6, Elf64_Addr elfaddr ) */ +int3 addq $1*NBPW+OVERHEAD,%rsp # toss elfaddr, too movq %rax,4*NBPW(%rsp) # entry pop %rbx # fd @@ -169,8 +171,8 @@ L90: jmp *-8(%r14) # goto: syscall; pop %rdx; ret mmap: .globl mmap + int3 movb $ __NR_mmap,%al -sysarg4: movq %arg4,%sys4 sysgo: # NOTE: kernel demands 4th arg in %sys4, NOT %arg4 movzbl %al,%eax diff --git a/src/stub/src/amd64-linux.elf-main.c b/src/stub/src/amd64-linux.elf-main.c index 4e3e05f3..2903f78e 100644 --- a/src/stub/src/amd64-linux.elf-main.c +++ b/src/stub/src/amd64-linux.elf-main.c @@ -458,13 +458,25 @@ do_xmap( Elf64_Phdr const *phdr = (Elf64_Phdr const *)(void const *)(ehdr->e_phoff + (char const *)ehdr); Elf64_Addr v_brk; - Elf64_Addr const reloc = xfind_pages( - ((ET_DYN!=ehdr->e_type) ? MAP_FIXED : 0), phdr, ehdr->e_phnum, &v_brk - , *p_reloc + Elf64_Addr reloc; + if (xi) { // compressed main program: + // C_BASE space reservation, C_TEXT compressed data and stub + Elf64_Addr ehdr0 = *p_reloc; // the 'hi' copy! + Elf64_Phdr *phdr0 = (Elf64_Phdr *)(((Elf64_Ehdr *)ehdr0)->e_phoff + ehdr0); + // Clear the 'lo' space reservation for use by PT_LOADs + ehdr0 -= phdr0[1].p_vaddr; // the 'lo' copy + v_brk = phdr0->p_memsz + ehdr0; + reloc = (Elf64_Addr)mmap((void *)ehdr0, phdr0->p_memsz, PROT_NONE, + MAP_FIXED|MAP_ANONYMOUS|MAP_PRIVATE, -1, 0); + } + else { // PT_INTERP + reloc = xfind_pages( + ((ET_DYN!=ehdr->e_type) ? MAP_FIXED : 0), phdr, ehdr->e_phnum, &v_brk, *p_reloc #if defined(__powerpc64__) || defined(__aarch64__) - , PAGE_MASK + , PAGE_MASK #endif - ); + ); + } DPRINTF("do_xmap reloc=%%p\\n", reloc); int j; for (j=0; j < ehdr->e_phnum; ++phdr, ++j) diff --git a/src/stub/src/amd64-linux.shlib-init.S b/src/stub/src/amd64-linux.shlib-init.S index 412a0999..1ac3441c 100644 --- a/src/stub/src/amd64-linux.shlib-init.S +++ b/src/stub/src/amd64-linux.shlib-init.S @@ -75,7 +75,7 @@ M_NRV2E_LE32=8 // .long offset({l_info; p_info; b_info; compressed data}) section ELFMAINX _start: .globl _start -//// nop; int3; int3 + nop; int3; int3 push %rax // space for &DT_INIT o_uinit= 5*8 push %arg2; push %arg1 // save first two args to DT_INIT() diff --git a/src/stub/tmp/amd64-linux.elf-entry.bin.dump b/src/stub/tmp/amd64-linux.elf-entry.bin.dump index cbe8585d..77c78241 100644 --- a/src/stub/tmp/amd64-linux.elf-entry.bin.dump +++ b/src/stub/tmp/amd64-linux.elf-entry.bin.dump @@ -13,7 +13,7 @@ Idx Name Size VMA LMA File off Algn 8 LZMA_DEC30 00000018 0000000000000000 0000000000000000 000016f5 2**0 CONTENTS, READONLY 9 NRV_TAIL 00000000 0000000000000000 0000000000000000 0000170d 2**0 CONTENTS, READONLY 10 ELFMAINY 0000003a 0000000000000000 0000000000000000 0000170d 2**0 CONTENTS, RELOC, READONLY - 11 ELFMAINZ 000000ef 0000000000000000 0000000000000000 00001747 2**0 CONTENTS, RELOC, READONLY + 11 ELFMAINZ 000000b1 0000000000000000 0000000000000000 00001747 2**0 CONTENTS, RELOC, READONLY SYMBOL TABLE: 0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD 0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 @@ -32,7 +32,7 @@ SYMBOL TABLE: RELOCATION RECORDS FOR [ELFMAINX]: OFFSET TYPE VALUE -0000000000000003 R_X86_64_PC32 ELFMAINZ+0x00000000000000d2 +0000000000000003 R_X86_64_PC32 ELFMAINZ+0x0000000000000094 RELOCATION RECORDS FOR [NRV2E]: OFFSET TYPE VALUE @@ -59,4 +59,4 @@ OFFSET TYPE VALUE RELOCATION RECORDS FOR [ELFMAINZ]: OFFSET TYPE VALUE -00000000000000eb R_X86_64_32 O_BINFO +00000000000000ad R_X86_64_32 O_BINFO diff --git a/src/stub/tmp/amd64-linux.elf-fold.map b/src/stub/tmp/amd64-linux.elf-fold.map index 1380f982..ac1a126d 100644 --- a/src/stub/tmp/amd64-linux.elf-fold.map +++ b/src/stub/tmp/amd64-linux.elf-fold.map @@ -8,33 +8,33 @@ Linker script and memory map 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) -.text 0x00000000001000bc 0x810 +.text 0x00000000001000bc 0x858 *(.text) - .text 0x00000000001000bc 0x189 tmp/amd64-linux.elf-fold.o - 0x0000000000100235 munmap - 0x000000000010020e mmap - 0x000000000010023d write - 0x0000000000100241 read - 0x0000000000100225 exit - 0x0000000000100229 brk - 0x0000000000100231 open - 0x0000000000100239 mprotect - 0x000000000010022d close - *fill* 0x0000000000100245 0x3 00 - .text 0x0000000000100248 0x683 tmp/amd64-linux.elf-main.o - 0x0000000000100783 upx_main + .text 0x00000000001000bc 0x18d tmp/amd64-linux.elf-fold.o + 0x0000000000100239 munmap + 0x0000000000100211 mmap + 0x0000000000100241 write + 0x0000000000100245 read + 0x0000000000100229 exit + 0x000000000010022d brk + 0x0000000000100235 open + 0x000000000010023d mprotect + 0x0000000000100231 close + *fill* 0x0000000000100249 0x3 00 + .text 0x000000000010024c 0x6c6 tmp/amd64-linux.elf-main.o + 0x00000000001007ca upx_main *(.data) - *fill* 0x00000000001008cb 0x1 00 - .data 0x00000000001008cc 0x0 tmp/amd64-linux.elf-fold.o - .data 0x00000000001008cc 0x0 tmp/amd64-linux.elf-main.o + *fill* 0x0000000000100912 0x2 00 + .data 0x0000000000100914 0x0 tmp/amd64-linux.elf-fold.o + .data 0x0000000000100914 0x0 tmp/amd64-linux.elf-main.o .data -.bss 0x00000000001008cc 0x0 - .bss 0x00000000001008cc 0x0 tmp/amd64-linux.elf-fold.o - .bss 0x00000000001008cc 0x0 tmp/amd64-linux.elf-main.o +.bss 0x0000000000100914 0x0 + .bss 0x0000000000100914 0x0 tmp/amd64-linux.elf-fold.o + .bss 0x0000000000100914 0x0 tmp/amd64-linux.elf-main.o -.rela.dyn 0x00000000001008d0 0x0 +.rela.dyn 0x0000000000100918 0x0 .rela.text 0x0000000000000000 0x0 tmp/amd64-linux.elf-fold.o LOAD tmp/amd64-linux.elf-fold.o LOAD tmp/amd64-linux.elf-main.o diff --git a/src/stub/tmp/amd64-linux.shlib-init.bin.dump b/src/stub/tmp/amd64-linux.shlib-init.bin.dump index 0895fb92..3cce3e01 100644 --- a/src/stub/tmp/amd64-linux.shlib-init.bin.dump +++ b/src/stub/tmp/amd64-linux.shlib-init.bin.dump @@ -2,18 +2,18 @@ file format elf64-x86-64 Sections: Idx Name Size VMA LMA File off Algn Flags - 0 ELFMAINX 00000016 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY - 1 NRV_HEAD 00000066 0000000000000000 0000000000000000 00000056 2**0 CONTENTS, READONLY - 2 NRV2E 000000ba 0000000000000000 0000000000000000 000000bc 2**0 CONTENTS, RELOC, READONLY - 3 NRV2D 000000a1 0000000000000000 0000000000000000 00000176 2**0 CONTENTS, RELOC, READONLY - 4 NRV2B 00000093 0000000000000000 0000000000000000 00000217 2**0 CONTENTS, RELOC, READONLY - 5 LZMA_ELF00 00000064 0000000000000000 0000000000000000 000002aa 2**0 CONTENTS, RELOC, READONLY - 6 LZMA_DEC10 000009f7 0000000000000000 0000000000000000 0000030e 2**0 CONTENTS, READONLY - 7 LZMA_DEC20 000009f7 0000000000000000 0000000000000000 00000d05 2**0 CONTENTS, READONLY - 8 LZMA_DEC30 00000018 0000000000000000 0000000000000000 000016fc 2**0 CONTENTS, READONLY - 9 NRV_TAIL 00000000 0000000000000000 0000000000000000 00001714 2**0 CONTENTS, READONLY - 10 ELFMAINY 0000003a 0000000000000000 0000000000000000 00001714 2**0 CONTENTS, RELOC, READONLY - 11 ELFMAINZ 000001b5 0000000000000000 0000000000000000 0000174e 2**0 CONTENTS, READONLY + 0 ELFMAINX 00000019 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY + 1 NRV_HEAD 00000066 0000000000000000 0000000000000000 00000059 2**0 CONTENTS, READONLY + 2 NRV2E 000000ba 0000000000000000 0000000000000000 000000bf 2**0 CONTENTS, RELOC, READONLY + 3 NRV2D 000000a1 0000000000000000 0000000000000000 00000179 2**0 CONTENTS, RELOC, READONLY + 4 NRV2B 00000093 0000000000000000 0000000000000000 0000021a 2**0 CONTENTS, RELOC, READONLY + 5 LZMA_ELF00 00000064 0000000000000000 0000000000000000 000002ad 2**0 CONTENTS, RELOC, READONLY + 6 LZMA_DEC10 000009f7 0000000000000000 0000000000000000 00000311 2**0 CONTENTS, READONLY + 7 LZMA_DEC20 000009f7 0000000000000000 0000000000000000 00000d08 2**0 CONTENTS, READONLY + 8 LZMA_DEC30 00000018 0000000000000000 0000000000000000 000016ff 2**0 CONTENTS, READONLY + 9 NRV_TAIL 00000000 0000000000000000 0000000000000000 00001717 2**0 CONTENTS, READONLY + 10 ELFMAINY 0000003a 0000000000000000 0000000000000000 00001717 2**0 CONTENTS, RELOC, READONLY + 11 ELFMAINZ 000001b5 0000000000000000 0000000000000000 00001751 2**0 CONTENTS, READONLY SYMBOL TABLE: 0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD 0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30 @@ -31,7 +31,7 @@ SYMBOL TABLE: RELOCATION RECORDS FOR [ELFMAINX]: OFFSET TYPE VALUE -000000000000000a R_X86_64_PC32 ELFMAINZ+0x000000000000000d +000000000000000d R_X86_64_PC32 ELFMAINZ+0x000000000000000d RELOCATION RECORDS FOR [NRV2E]: OFFSET TYPE VALUE diff --git a/src/stub/tmp/arm64-linux.elf-fold.map b/src/stub/tmp/arm64-linux.elf-fold.map index 8f4440c6..942acb9a 100644 --- a/src/stub/tmp/arm64-linux.elf-fold.map +++ b/src/stub/tmp/arm64-linux.elf-fold.map @@ -8,7 +8,7 @@ Linker script and memory map 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) -.text 0x00000000001000bc 0x974 +.text 0x00000000001000bc 0x9b4 *(.text) .text 0x00000000001000bc 0x238 tmp/arm64-linux.elf-fold.o 0x0000000000100228 my_bkpt @@ -26,26 +26,26 @@ Linker script and memory map 0x00000000001002bc readlink 0x00000000001002c4 open 0x00000000001002e0 __clear_cache - .text 0x00000000001002f4 0x73c tmp/arm64-linux.elf-main.o - 0x00000000001008c8 upx_main + .text 0x00000000001002f4 0x77c tmp/arm64-linux.elf-main.o + 0x0000000000100908 upx_main *(.data) - .data 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o - .data 0x0000000000100a30 0x0 tmp/arm64-linux.elf-main.o + .data 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o + .data 0x0000000000100a70 0x0 tmp/arm64-linux.elf-main.o -.iplt 0x0000000000100a30 0x0 - .iplt 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o +.iplt 0x0000000000100a70 0x0 + .iplt 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o -.rela.dyn 0x0000000000100a30 0x0 - .rela.iplt 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o +.rela.dyn 0x0000000000100a70 0x0 + .rela.iplt 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o .data LOAD tmp/arm64-linux.elf-fold.o LOAD tmp/arm64-linux.elf-main.o OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64) -.igot.plt 0x0000000000100a30 0x0 - .igot.plt 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o +.igot.plt 0x0000000000100a70 0x0 + .igot.plt 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o -.bss 0x0000000000100a30 0x0 - .bss 0x0000000000100a30 0x0 tmp/arm64-linux.elf-fold.o - .bss 0x0000000000100a30 0x0 tmp/arm64-linux.elf-main.o +.bss 0x0000000000100a70 0x0 + .bss 0x0000000000100a70 0x0 tmp/arm64-linux.elf-fold.o + .bss 0x0000000000100a70 0x0 tmp/arm64-linux.elf-main.o diff --git a/src/stub/tmp/powerpc64-linux.elf-fold.map b/src/stub/tmp/powerpc64-linux.elf-fold.map index 405e7998..b7819654 100644 --- a/src/stub/tmp/powerpc64-linux.elf-fold.map +++ b/src/stub/tmp/powerpc64-linux.elf-fold.map @@ -9,7 +9,7 @@ Linker script and memory map TARGET(elf64-powerpc) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) -.text 0x00000000001000bc 0xb04 +.text 0x00000000001000bc 0xb4c *(.text) .text 0x00000000001000bc 0x30c tmp/powerpc64-linux.elf-fold.o 0x00000000001000bc get_page_mask @@ -23,47 +23,47 @@ TARGET(elf64-powerpc) 0x00000000001003b0 mprotect 0x00000000001003b8 munmap 0x00000000001003c0 my_bkpt - .text 0x00000000001003c8 0x7f8 tmp/powerpc64-linux.elf-main.o + .text 0x00000000001003c8 0x840 tmp/powerpc64-linux.elf-main.o *(.data) - .data 0x0000000000100bc0 0x0 tmp/powerpc64-linux.elf-fold.o - .data 0x0000000000100bc0 0x0 tmp/powerpc64-linux.elf-main.o + .data 0x0000000000100c08 0x0 tmp/powerpc64-linux.elf-fold.o + .data 0x0000000000100c08 0x0 tmp/powerpc64-linux.elf-main.o -.sfpr 0x0000000000100bc0 0xa4 - .sfpr 0x0000000000100bc0 0xa4 linker stubs - 0x0000000000100bc0 _savegpr0_14 - 0x0000000000100be8 _savegpr0_24 - 0x0000000000100bf8 _savegpr0_28 - 0x0000000000100c10 _restgpr0_14 - 0x0000000000100c38 _restgpr0_24 - 0x0000000000100c48 _restgpr0_28 +.sfpr 0x0000000000100c08 0xa4 + .sfpr 0x0000000000100c08 0xa4 linker stubs + 0x0000000000100c08 _savegpr0_14 + 0x0000000000100c30 _savegpr0_24 + 0x0000000000100c40 _savegpr0_28 + 0x0000000000100c58 _restgpr0_14 + 0x0000000000100c80 _restgpr0_24 + 0x0000000000100c90 _restgpr0_28 -.glink 0x0000000000100c68 0x0 - .glink 0x0000000000100c68 0x0 linker stubs +.glink 0x0000000000100cb0 0x0 + .glink 0x0000000000100cb0 0x0 linker stubs -.eh_frame 0x0000000000100c64 0x0 - .eh_frame 0x0000000000100c64 0x0 linker stubs +.eh_frame 0x0000000000100cac 0x0 + .eh_frame 0x0000000000100cac 0x0 linker stubs -.rela.dyn 0x0000000000100c68 0x0 - .rela.iplt 0x0000000000100c68 0x0 linker stubs +.rela.dyn 0x0000000000100cb0 0x0 + .rela.iplt 0x0000000000100cb0 0x0 linker stubs .data LOAD tmp/powerpc64-linux.elf-fold.o LOAD tmp/powerpc64-linux.elf-main.o OUTPUT(tmp/powerpc64-linux.elf-fold.bin elf64-powerpc) -.branch_lt 0x0000000000100c68 0x0 - .branch_lt 0x0000000000100c68 0x0 linker stubs +.branch_lt 0x0000000000100cb0 0x0 + .branch_lt 0x0000000000100cb0 0x0 linker stubs -.toc 0x0000000000100c68 0x0 - .toc 0x0000000000100c68 0x0 tmp/powerpc64-linux.elf-main.o +.toc 0x0000000000100cb0 0x0 + .toc 0x0000000000100cb0 0x0 tmp/powerpc64-linux.elf-main.o -.opd 0x0000000000100c68 0x58 - .opd 0x0000000000100c68 0x58 tmp/powerpc64-linux.elf-main.o - 0x0000000000100ca8 upx_main +.opd 0x0000000000100cb0 0x58 + .opd 0x0000000000100cb0 0x58 tmp/powerpc64-linux.elf-main.o + 0x0000000000100cf0 upx_main -.iplt 0x0000000000100cc0 0x0 - .iplt 0x0000000000100cc0 0x0 linker stubs +.iplt 0x0000000000100d08 0x0 + .iplt 0x0000000000100d08 0x0 linker stubs -.bss 0x0000000000100cc0 0x0 - .bss 0x0000000000100cc0 0x0 tmp/powerpc64-linux.elf-fold.o - .bss 0x0000000000100cc0 0x0 tmp/powerpc64-linux.elf-main.o +.bss 0x0000000000100d08 0x0 + .bss 0x0000000000100d08 0x0 tmp/powerpc64-linux.elf-fold.o + .bss 0x0000000000100d08 0x0 tmp/powerpc64-linux.elf-main.o diff --git a/src/stub/tmp/powerpc64le-linux.elf-fold.map b/src/stub/tmp/powerpc64le-linux.elf-fold.map index fd9c1e7f..c2803cef 100644 --- a/src/stub/tmp/powerpc64le-linux.elf-fold.map +++ b/src/stub/tmp/powerpc64le-linux.elf-fold.map @@ -9,7 +9,7 @@ Linker script and memory map TARGET(elf64-powerpcle) 0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc) -.text 0x00000000001000bc 0xb00 +.text 0x00000000001000bc 0xb48 *(.text) .text 0x00000000001000bc 0x30c tmp/powerpc64le-linux.elf-fold.o 0x00000000001000bc get_page_mask @@ -23,47 +23,47 @@ TARGET(elf64-powerpcle) 0x00000000001003b0 mprotect 0x00000000001003b8 munmap 0x00000000001003c0 my_bkpt - .text 0x00000000001003c8 0x7f4 tmp/powerpc64le-linux.elf-main.o + .text 0x00000000001003c8 0x83c tmp/powerpc64le-linux.elf-main.o *(.data) - .data 0x0000000000100bbc 0x0 tmp/powerpc64le-linux.elf-fold.o - .data 0x0000000000100bbc 0x0 tmp/powerpc64le-linux.elf-main.o + .data 0x0000000000100c04 0x0 tmp/powerpc64le-linux.elf-fold.o + .data 0x0000000000100c04 0x0 tmp/powerpc64le-linux.elf-main.o -.sfpr 0x0000000000100bbc 0xa4 - .sfpr 0x0000000000100bbc 0xa4 linker stubs - 0x0000000000100bbc _savegpr0_14 - 0x0000000000100be4 _savegpr0_24 - 0x0000000000100bf4 _savegpr0_28 - 0x0000000000100c0c _restgpr0_14 - 0x0000000000100c34 _restgpr0_24 - 0x0000000000100c44 _restgpr0_28 +.sfpr 0x0000000000100c04 0xa4 + .sfpr 0x0000000000100c04 0xa4 linker stubs + 0x0000000000100c04 _savegpr0_14 + 0x0000000000100c2c _savegpr0_24 + 0x0000000000100c3c _savegpr0_28 + 0x0000000000100c54 _restgpr0_14 + 0x0000000000100c7c _restgpr0_24 + 0x0000000000100c8c _restgpr0_28 -.glink 0x0000000000100c60 0x0 - .glink 0x0000000000100c60 0x0 linker stubs +.glink 0x0000000000100ca8 0x0 + .glink 0x0000000000100ca8 0x0 linker stubs -.eh_frame 0x0000000000100c60 0x0 - .eh_frame 0x0000000000100c60 0x0 linker stubs +.eh_frame 0x0000000000100ca8 0x0 + .eh_frame 0x0000000000100ca8 0x0 linker stubs -.rela.dyn 0x0000000000100c60 0x0 - .rela.iplt 0x0000000000100c60 0x0 linker stubs +.rela.dyn 0x0000000000100ca8 0x0 + .rela.iplt 0x0000000000100ca8 0x0 linker stubs .data LOAD tmp/powerpc64le-linux.elf-fold.o LOAD tmp/powerpc64le-linux.elf-main.o OUTPUT(tmp/powerpc64le-linux.elf-fold.bin elf64-powerpcle) -.branch_lt 0x0000000000100c60 0x0 - .branch_lt 0x0000000000100c60 0x0 linker stubs +.branch_lt 0x0000000000100ca8 0x0 + .branch_lt 0x0000000000100ca8 0x0 linker stubs -.toc 0x0000000000100c60 0x0 - .toc 0x0000000000100c60 0x0 tmp/powerpc64le-linux.elf-main.o +.toc 0x0000000000100ca8 0x0 + .toc 0x0000000000100ca8 0x0 tmp/powerpc64le-linux.elf-main.o -.opd 0x0000000000100c60 0x58 - .opd 0x0000000000100c60 0x58 tmp/powerpc64le-linux.elf-main.o - 0x0000000000100ca0 upx_main +.opd 0x0000000000100ca8 0x58 + .opd 0x0000000000100ca8 0x58 tmp/powerpc64le-linux.elf-main.o + 0x0000000000100ce8 upx_main -.iplt 0x0000000000100cb8 0x0 - .iplt 0x0000000000100cb8 0x0 linker stubs +.iplt 0x0000000000100d00 0x0 + .iplt 0x0000000000100d00 0x0 linker stubs -.bss 0x0000000000100cb8 0x0 - .bss 0x0000000000100cb8 0x0 tmp/powerpc64le-linux.elf-fold.o - .bss 0x0000000000100cb8 0x0 tmp/powerpc64le-linux.elf-main.o +.bss 0x0000000000100d00 0x0 + .bss 0x0000000000100d00 0x0 tmp/powerpc64le-linux.elf-fold.o + .bss 0x0000000000100d00 0x0 tmp/powerpc64le-linux.elf-main.o