arm64 (aarch64)
Tested and working: nrv2b and nrv2e for ET_EXE on linux. NOT TESTED: lzma, ET_DYN on linux; any Mach-O modified: bele.h modified: conf.h modified: filter/ct.h modified: filteri.cpp modified: linker.cpp modified: linker.h modified: miniacc.h modified: p_elf_enum.h modified: p_lx_elf.cpp modified: p_lx_elf.h modified: packmast.cpp modified: stub/Makefile modified: stub/arm64-darwin.macho-entry.h modified: stub/arm64-darwin.macho-fold.h new file: stub/arm64-linux.elf-entry.h new file: stub/arm64-linux.elf-fold.h new file: stub/arm64-linux.shlib-init.h new file: stub/src/arch/arm64/v8/Makefile.extra modified: stub/src/arch/arm64/v8/lzma_d-arm.S modified: stub/src/arch/arm64/v8/lzma_d.S modified: stub/src/arch/arm64/v8/lzma_d_cf.S new file: stub/src/arch/arm64/v8/lzma_d_cs.S modified: stub/src/arch/arm64/v8/macros.S renamed: stub/src/arch/arm64/v8/nrv2b_d8.S -> stub/src/arch/arm64/v8/nrv2b_d32.S renamed: stub/src/arch/arm64/v8/nrv2d_d8.S -> stub/src/arch/arm64/v8/nrv2d_d32.S modified: stub/src/arch/arm64/v8/nrv2e_d32.S deleted: stub/src/arch/arm64/v8/nrv2e_d8.S modified: stub/src/arm64-darwin.macho-entry.S modified: stub/src/arm64-darwin.macho-fold.S new file: stub/src/arm64-linux.elf-entry.S new file: stub/src/arm64-linux.elf-fold.S new file: stub/src/arm64-linux.elf-fold.lds new file: stub/src/arm64-linux.elf-main.c new file: stub/src/arm64-linux.shlib-init.S modified: stub/src/include/linux.h modified: stub/tmp/arm64-darwin.macho-entry.bin.dump modified: stub/tmp/arm64-darwin.macho-fold.map new file: stub/tmp/arm64-linux.elf-entry.bin.dump new file: stub/tmp/arm64-linux.elf-fold.map new file: stub/tmp/arm64-linux.shlib-init.bin.dump
This commit is contained in:
parent
0e154cc759
commit
b818e2c4b8
18
src/bele.h
18
src/bele.h
@ -142,6 +142,24 @@ inline void set_le24(void *p, unsigned v)
|
||||
#endif
|
||||
}
|
||||
|
||||
inline unsigned get_le26(const void *p)
|
||||
{
|
||||
#if defined(ACC_UA_GET_LE26)
|
||||
return ACC_UA_GET_LE26(p);
|
||||
#else
|
||||
return acc_ua_get_le26(p);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void set_le26(void *p, unsigned v)
|
||||
{
|
||||
#if defined(ACC_UA_SET_LE26)
|
||||
ACC_UA_SET_LE26(p, v);
|
||||
#else
|
||||
acc_ua_set_le26(p, v);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline unsigned get_le32(const void *p)
|
||||
{
|
||||
#if defined(ACC_UA_GET_LE32)
|
||||
|
||||
@ -403,6 +403,8 @@ private:
|
||||
#define UPX_F_VMLINUX_PPC64LE 40
|
||||
#define UPX_F_DYLIB_PPC64LE 41
|
||||
|
||||
#define UPX_F_LINUX_ELF64_ARM 42
|
||||
|
||||
#define UPX_F_ATARI_TOS 129
|
||||
#define UPX_F_SOLARIS_SPARC 130 // NOT IMPLEMENTED
|
||||
#define UPX_F_MACH_PPC32 131
|
||||
|
||||
@ -459,4 +459,45 @@ static int s_ct24arm_be(Filter *f)
|
||||
#undef CT24ARM_BE
|
||||
#undef ARMCT_COND
|
||||
|
||||
/*************************************************************************
|
||||
// 26-bit ARM calltrick ("naive")
|
||||
**************************************************************************/
|
||||
|
||||
#define CT26ARM_LE(f, cond, addvalue, get, set) \
|
||||
upx_byte *b = f->buf; \
|
||||
upx_byte *b_end = b + f->buf_len - 4; \
|
||||
do { \
|
||||
if (cond) \
|
||||
{ \
|
||||
unsigned a = (unsigned) (b - f->buf); \
|
||||
f->lastcall = a; \
|
||||
set(b, get(b) + (addvalue)); \
|
||||
f->calls++; \
|
||||
} \
|
||||
b += 4; \
|
||||
} while (b < b_end); \
|
||||
if (f->lastcall) f->lastcall += 4; \
|
||||
return 0;
|
||||
|
||||
|
||||
#define ARMCT_COND (((b[3] & 0x7C) == 0x14))
|
||||
|
||||
static int f_ct26arm_le(Filter *f)
|
||||
{
|
||||
CT26ARM_LE(f, ARMCT_COND, a / 4 + f->addvalue, get_le26, set_le26)
|
||||
}
|
||||
|
||||
static int u_ct26arm_le(Filter *f)
|
||||
{
|
||||
CT26ARM_LE(f, ARMCT_COND, 0 - a / 4 - f->addvalue, get_le26, set_le26)
|
||||
}
|
||||
|
||||
static int s_ct26arm_le(Filter *f)
|
||||
{
|
||||
CT26ARM_LE(f, ARMCT_COND, a + f->addvalue, get_le26, set_dummy)
|
||||
}
|
||||
|
||||
#undef CT26ARM_LE
|
||||
#undef ARMCT_COND
|
||||
|
||||
/* vim:set ts=4 sw=4 et: */
|
||||
|
||||
@ -228,6 +228,9 @@ const FilterImp::FilterEntry FilterImp::filters[] = {
|
||||
{ 0x50, 8, 0x01ffffff, f_ct24arm_le, u_ct24arm_le, s_ct24arm_le },
|
||||
{ 0x51, 8, 0x01ffffff, f_ct24arm_be, u_ct24arm_be, s_ct24arm_be },
|
||||
|
||||
// 26-bit calltrick for arm64
|
||||
{ 0x52, 8, 0x03ffffff, f_ct26arm_le, u_ct26arm_le, s_ct26arm_le },
|
||||
|
||||
// 32-bit cto calltrick with jmp and jcc(swap 0x0f/0x8Y) and relative renumbering
|
||||
{ 0x80, 8, 0x00ffffff, f_ctojr32_e8e9_bswap_le, u_ctojr32_e8e9_bswap_le, s_ctojr32_e8e9_bswap_le },
|
||||
{ 0x81, 8, 0x00ffffff, f_ctojr32_e8e9_bswap_le, u_ctojr32_e8e9_bswap_le, s_ctojr32_e8e9_bswap_le },
|
||||
|
||||
@ -472,9 +472,9 @@ void ElfLinker::relocate() {
|
||||
value = rel->value->section->offset + rel->value->offset + rel->add;
|
||||
}
|
||||
upx_byte *location = rel->section->output + rel->offset;
|
||||
// printf("%-28s %-28s %-10s 0x%16llx 0x%16llx\n", rel->section->name, rel->value->name,
|
||||
// printf("%-28s %-28s %-10s %#16llx %#16llx\n", rel->section->name, rel->value->name,
|
||||
// rel->type, (long long) value, (long long) value - rel->section->offset - rel->offset);
|
||||
// printf(" %llx %d %llx %d %llx : %d\n", (long long) value, rel->value->section->offset,
|
||||
// printf(" %llx %d %llx %d %llx : %d\n", (long long) value, (int)rel->value->section->offset,
|
||||
// rel->value->offset, rel->offset, (long long) rel->add, *location);
|
||||
relocate1(rel, location, value, rel->type);
|
||||
}
|
||||
@ -541,7 +541,7 @@ void ElfLinker::alignWithByte(unsigned len, unsigned char b) {
|
||||
}
|
||||
|
||||
void ElfLinker::relocate1(const Relocation *rel, upx_byte *, upx_uint64_t, const char *) {
|
||||
internal_error("unknown relocation type '%s\n", rel->type);
|
||||
internal_error("unknown relocation type '%s\n'", rel->type);
|
||||
}
|
||||
|
||||
/*************************************************************************
|
||||
@ -591,6 +591,37 @@ void ElfLinkerAMD64::relocate1(const Relocation *rel, upx_byte *location, upx_ui
|
||||
super::relocate1(rel, location, value, type);
|
||||
}
|
||||
|
||||
void ElfLinkerARM64::relocate1(const Relocation *rel, upx_byte *location, upx_uint64_t value,
|
||||
const char *type) {
|
||||
if (strncmp(type, "R_AARCH64_", 10))
|
||||
return super::relocate1(rel, location, value, type);
|
||||
type += 10;
|
||||
|
||||
if (!strncmp(type, "PREL", 4)) {
|
||||
value -= rel->section->offset + rel->offset;
|
||||
type += 4;
|
||||
|
||||
if (!strcmp(type, "16"))
|
||||
set_le16(location, get_le16(location) + value);
|
||||
else if (!strncmp(type, "32", 2)) // for "32" and "32S"
|
||||
set_le32(location, get_le32(location) + value);
|
||||
else if (!strcmp(type, "64"))
|
||||
set_le64(location, get_le64(location) + value);
|
||||
} else if (!strcmp(type, "ABS32")) {
|
||||
set_le32(location, get_le32(location) + value);
|
||||
} else if (!strcmp(type, "ABS64")) {
|
||||
set_le64(location, get_le64(location) + value);
|
||||
}
|
||||
else if (!strcmp(type, "CONDBR19")) {
|
||||
value -= rel->section->offset + rel->offset;
|
||||
uint32_t const m19 = ~(~0u << 19);
|
||||
uint32_t w = get_le32(location);
|
||||
set_le32(location, (w &~(m19<<5)) | ((((w>>5) + (value>>2)) & m19) << 5) );
|
||||
}
|
||||
else
|
||||
super::relocate1(rel, location, value, type);
|
||||
}
|
||||
|
||||
void ElfLinkerArmBE::relocate1(const Relocation *rel, upx_byte *location, upx_uint64_t value,
|
||||
const char *type) {
|
||||
if (strcmp(type, "R_ARM_PC24") == 0) {
|
||||
|
||||
@ -160,6 +160,15 @@ protected:
|
||||
const char *type);
|
||||
};
|
||||
|
||||
class ElfLinkerARM64 : public ElfLinker {
|
||||
typedef ElfLinker super;
|
||||
|
||||
protected:
|
||||
virtual void alignCode(unsigned len) { alignWithByte(len, 0x90); }
|
||||
virtual void relocate1(const Relocation *, upx_byte *location, upx_uint64_t value,
|
||||
const char *type);
|
||||
};
|
||||
|
||||
class ElfLinkerArmBE : public ElfLinker {
|
||||
typedef ElfLinker super;
|
||||
|
||||
|
||||
@ -5103,9 +5103,11 @@ ACCLIB_EXTERN(void, acc_ua_set_be24) (acc_hvoid_p, acc_uint32l_t);
|
||||
ACCLIB_EXTERN(void, acc_ua_set_be32) (acc_hvoid_p, acc_uint32l_t);
|
||||
ACCLIB_EXTERN(unsigned, acc_ua_get_le16) (const acc_hvoid_p);
|
||||
ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_le24) (const acc_hvoid_p);
|
||||
ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_le26) (const acc_hvoid_p);
|
||||
ACCLIB_EXTERN(acc_uint32l_t, acc_ua_get_le32) (const acc_hvoid_p);
|
||||
ACCLIB_EXTERN(void, acc_ua_set_le16) (acc_hvoid_p, unsigned);
|
||||
ACCLIB_EXTERN(void, acc_ua_set_le24) (acc_hvoid_p, acc_uint32l_t);
|
||||
ACCLIB_EXTERN(void, acc_ua_set_le26) (acc_hvoid_p, acc_uint32l_t);
|
||||
ACCLIB_EXTERN(void, acc_ua_set_le32) (acc_hvoid_p, acc_uint32l_t);
|
||||
#if defined(acc_int64l_t)
|
||||
ACCLIB_EXTERN(acc_uint64l_t, acc_ua_get_be64) (const acc_hvoid_p);
|
||||
@ -6095,6 +6097,12 @@ ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le24) (const acc_hvoid_p p)
|
||||
const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
|
||||
return ACC_ICONV(acc_uint32l_t, b[0]) | (ACC_ICONV(acc_uint32l_t, b[1]) << 8) | (ACC_ICONV(acc_uint32l_t, b[2]) << 16);
|
||||
}
|
||||
ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le26) (const acc_hvoid_p p)
|
||||
{
|
||||
const acc_hbyte_p b = ACC_CCAST(const acc_hbyte_p, p);
|
||||
return ACC_ICONV(acc_uint32l_t, b[0] ) | ( ACC_ICONV(acc_uint32l_t, b[1]) << 8) |
|
||||
(ACC_ICONV(acc_uint32l_t, b[2]) << 16) | (((ACC_ICONV(acc_uint32l_t, b[3]) & 3)<< 24));
|
||||
}
|
||||
ACCLIB_PUBLIC(acc_uint32l_t, acc_ua_get_le32) (const acc_hvoid_p p)
|
||||
{
|
||||
#if defined(ACC_UA_GET_LE32)
|
||||
@ -6121,6 +6129,14 @@ ACCLIB_PUBLIC(void, acc_ua_set_le24) (acc_hvoid_p p, acc_uint32l_t v)
|
||||
b[1] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
|
||||
b[2] = ACC_ICONV(unsigned char, (v >> 16) & 0xff);
|
||||
}
|
||||
ACCLIB_PUBLIC(void, acc_ua_set_le26) (acc_hvoid_p p, acc_uint32l_t v)
|
||||
{
|
||||
acc_hbyte_p b = ACC_PCAST(acc_hbyte_p, p);
|
||||
b[0] = ACC_ICONV(unsigned char, (v >> 0) & 0xff);
|
||||
b[1] = ACC_ICONV(unsigned char, (v >> 8) & 0xff);
|
||||
b[2] = ACC_ICONV(unsigned char, (v >> 16) & 0xff);
|
||||
b[3] = ACC_ICONV(unsigned char, (v >> 24) & 0x03) | (0xFC & b[3]);
|
||||
}
|
||||
ACCLIB_PUBLIC(void, acc_ua_set_le32) (acc_hvoid_p p, acc_uint32l_t v)
|
||||
{
|
||||
#if defined(ACC_UA_SET_LE32)
|
||||
|
||||
@ -73,7 +73,8 @@
|
||||
EM_PPC = 20,
|
||||
EM_PPC64 = 21,
|
||||
EM_ARM = 40,
|
||||
EM_X86_64 = 62
|
||||
EM_X86_64 = 62,
|
||||
EM_AARCH64 = 183
|
||||
|
||||
};
|
||||
enum { // e_version
|
||||
|
||||
296
src/p_lx_elf.cpp
296
src/p_lx_elf.cpp
@ -650,6 +650,11 @@ Linker* PackLinuxElf64amd::newLinker() const
|
||||
return new ElfLinkerAMD64;
|
||||
}
|
||||
|
||||
Linker* PackLinuxElf64arm::newLinker() const
|
||||
{
|
||||
return new ElfLinkerARM64;
|
||||
}
|
||||
|
||||
int const *
|
||||
PackLinuxElf::getCompressionMethods(int method, int level) const
|
||||
{
|
||||
@ -696,6 +701,15 @@ PackLinuxElf64amd::getFilters() const
|
||||
return filters;
|
||||
}
|
||||
|
||||
int const *
|
||||
PackLinuxElf64arm::getFilters() const
|
||||
{
|
||||
static const int filters[] = {
|
||||
0x52,
|
||||
FT_END };
|
||||
return filters;
|
||||
}
|
||||
|
||||
void PackLinuxElf32::patchLoader()
|
||||
{
|
||||
}
|
||||
@ -740,6 +754,7 @@ void PackLinuxElf32::updateLoader(OutputFile * /*fo*/)
|
||||
void PackLinuxElf64::updateLoader(OutputFile * /*fo*/)
|
||||
{
|
||||
set_te64(&elfout.ehdr.e_entry, sz_pack2 +
|
||||
linker->getSymbolOffset("_start") +
|
||||
get_te64(&elfout.phdr[0].p_vaddr));
|
||||
}
|
||||
|
||||
@ -788,10 +803,23 @@ PackLinuxElf64amd::PackLinuxElf64amd(InputFile *f)
|
||||
ei_osabi = Elf32_Ehdr::ELFOSABI_LINUX;
|
||||
}
|
||||
|
||||
PackLinuxElf64arm::PackLinuxElf64arm(InputFile *f)
|
||||
: super(f)
|
||||
{
|
||||
e_machine = Elf64_Ehdr::EM_AARCH64;
|
||||
ei_class = Elf64_Ehdr::ELFCLASS64;
|
||||
ei_data = Elf64_Ehdr::ELFDATA2LSB;
|
||||
ei_osabi = Elf32_Ehdr::ELFOSABI_LINUX;
|
||||
}
|
||||
|
||||
PackLinuxElf64amd::~PackLinuxElf64amd()
|
||||
{
|
||||
}
|
||||
|
||||
PackLinuxElf64arm::~PackLinuxElf64arm()
|
||||
{
|
||||
}
|
||||
|
||||
static unsigned
|
||||
umax(unsigned a, unsigned b)
|
||||
{
|
||||
@ -1052,6 +1080,7 @@ PackLinuxElf64amd::defineSymbols(Filter const *)
|
||||
len += (7&-lsize) + lsize;
|
||||
is_big = (lo_va_user < (lo_va_stub + len + 2*page_size));
|
||||
if (is_big && ehdri.ET_EXEC==get_te16(&ehdri.e_type)) {
|
||||
// .e_entry is set later by PackLinuxElf64::updateLoader
|
||||
set_te64( &elfout.ehdr.e_entry,
|
||||
get_te64(&elfout.ehdr.e_entry) + lo_va_user - lo_va_stub);
|
||||
set_te64(&elfout.phdr[0].p_vaddr, lo_va_user);
|
||||
@ -1347,6 +1376,28 @@ PackLinuxElf64amd::buildLoader(const Filter *ft)
|
||||
stub_amd64_linux_elf_fold, sizeof(stub_amd64_linux_elf_fold), ft);
|
||||
}
|
||||
|
||||
static const
|
||||
#include "stub/arm64-linux.elf-entry.h"
|
||||
static const
|
||||
#include "stub/arm64-linux.elf-fold.h"
|
||||
//static const
|
||||
//#include "stub/arm64-linux.shlib-init.h"
|
||||
|
||||
void
|
||||
PackLinuxElf64arm::buildLoader(const Filter *ft)
|
||||
{
|
||||
if (0!=xct_off) { // shared library
|
||||
abort(); // FIXME
|
||||
//buildLinuxLoader(
|
||||
// stub_arm64_linux_shlib_init, sizeof(stub_arm64_linux_shlib_init),
|
||||
// NULL, 0, ft );
|
||||
//return;
|
||||
}
|
||||
buildLinuxLoader(
|
||||
stub_arm64_linux_elf_entry, sizeof(stub_arm64_linux_elf_entry),
|
||||
stub_arm64_linux_elf_fold, sizeof(stub_arm64_linux_elf_fold), ft);
|
||||
}
|
||||
|
||||
Elf32_Shdr const *PackLinuxElf32::elf_find_section_name(
|
||||
char const *const name
|
||||
) const
|
||||
@ -2005,6 +2056,198 @@ proceed: ;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool
|
||||
PackLinuxElf64arm::canPack()
|
||||
{
|
||||
union {
|
||||
unsigned char buf[sizeof(Elf64_Ehdr) + 14*sizeof(Elf64_Phdr)];
|
||||
//struct { Elf64_Ehdr ehdr; Elf64_Phdr phdr; } e;
|
||||
} u;
|
||||
COMPILE_TIME_ASSERT(sizeof(u) <= 1024)
|
||||
|
||||
fi->readx(u.buf, sizeof(u.buf));
|
||||
fi->seek(0, SEEK_SET);
|
||||
Elf64_Ehdr const *const ehdr = (Elf64_Ehdr *) u.buf;
|
||||
|
||||
// now check the ELF header
|
||||
if (checkEhdr(ehdr) != 0)
|
||||
return false;
|
||||
|
||||
// additional requirements for linux/elf386
|
||||
if (get_te16(&ehdr->e_ehsize) != sizeof(*ehdr)) {
|
||||
throwCantPack("invalid Ehdr e_ehsize; try '--force-execve'");
|
||||
return false;
|
||||
}
|
||||
if (e_phoff != sizeof(*ehdr)) {// Phdrs not contiguous with Ehdr
|
||||
throwCantPack("non-contiguous Ehdr/Phdr; try '--force-execve'");
|
||||
return false;
|
||||
}
|
||||
|
||||
// The first PT_LOAD64 must cover the beginning of the file (0==p_offset).
|
||||
Elf64_Phdr const *phdr = phdri;
|
||||
for (unsigned j=0; j < e_phnum; ++phdr, ++j) {
|
||||
if (j >= 14)
|
||||
return false;
|
||||
if (phdr->PT_LOAD64 == get_te32(&phdr->p_type)) {
|
||||
load_va = get_te64(&phdr->p_vaddr);
|
||||
upx_uint64_t file_offset = get_te64(&phdr->p_offset);
|
||||
if (~page_mask & file_offset) {
|
||||
if ((~page_mask & load_va) == file_offset) {
|
||||
throwCantPack("Go-language PT_LOAD: try hemfix.c, or try '--force-execve'");
|
||||
// Fixing it inside upx fails because packExtent() reads original file.
|
||||
}
|
||||
else {
|
||||
throwCantPack("invalid Phdr p_offset; try '--force-execve'");
|
||||
}
|
||||
return false;
|
||||
}
|
||||
exetype = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
// We want to compress position-independent executable (gcc -pie)
|
||||
// main programs, but compressing a shared library must be avoided
|
||||
// because the result is no longer usable. In theory, there is no way
|
||||
// to tell them apart: both are just ET_DYN. Also in theory,
|
||||
// neither the presence nor the absence of any particular symbol name
|
||||
// can be used to tell them apart; there are counterexamples.
|
||||
// However, we will use the following heuristic suggested by
|
||||
// Peter S. Mazinger <ps.m@gmx.net> September 2005:
|
||||
// If a ET_DYN has __libc_start_main as a global undefined symbol,
|
||||
// then the file is a position-independent executable main program
|
||||
// (that depends on libc.so.6) and is eligible to be compressed.
|
||||
// Otherwise (no __libc_start_main as global undefined): skip it.
|
||||
// Also allow __uClibc_main and __uClibc_start_main .
|
||||
|
||||
if (Elf32_Ehdr::ET_DYN==get_te16(&ehdr->e_type)) {
|
||||
// The DT_STRTAB has no designated length. Read the whole file.
|
||||
alloc_file_image(file_image, file_size);
|
||||
fi->seek(0, SEEK_SET);
|
||||
fi->readx(file_image, file_size);
|
||||
memcpy(&ehdri, ehdr, sizeof(Elf64_Ehdr));
|
||||
phdri= (Elf64_Phdr *)((size_t)e_phoff + file_image); // do not free() !!
|
||||
shdri= (Elf64_Shdr const *)((size_t)e_shoff + file_image); // do not free() !!
|
||||
|
||||
//sec_strndx = &shdri[ehdr->e_shstrndx];
|
||||
//shstrtab = (char const *)(sec_strndx->sh_offset + file_image);
|
||||
sec_dynsym = elf_find_section_type(Elf64_Shdr::SHT_DYNSYM);
|
||||
if (sec_dynsym)
|
||||
sec_dynstr = get_te64(&sec_dynsym->sh_link) + shdri;
|
||||
|
||||
int j= e_phnum;
|
||||
phdr= phdri;
|
||||
for (; --j>=0; ++phdr)
|
||||
if (Elf64_Phdr::PT_DYNAMIC==get_te32(&phdr->p_type)) {
|
||||
dynseg= (Elf64_Dyn const *)(get_te64(&phdr->p_offset) + file_image);
|
||||
break;
|
||||
}
|
||||
// elf_find_dynamic() returns 0 if 0==dynseg.
|
||||
dynstr= (char const *)elf_find_dynamic(Elf64_Dyn::DT_STRTAB);
|
||||
dynsym= (Elf64_Sym const *)elf_find_dynamic(Elf64_Dyn::DT_SYMTAB);
|
||||
|
||||
// Modified 2009-10-10 to detect a ProgramLinkageTable relocation
|
||||
// which references the symbol, because DT_GNU_HASH contains only
|
||||
// defined symbols, and there might be no DT_HASH.
|
||||
|
||||
Elf64_Rela const *
|
||||
rela= (Elf64_Rela const *)elf_find_dynamic(Elf64_Dyn::DT_RELA);
|
||||
Elf64_Rela const *
|
||||
jmprela= (Elf64_Rela const *)elf_find_dynamic(Elf64_Dyn::DT_JMPREL);
|
||||
for ( int sz = elf_unsigned_dynamic(Elf64_Dyn::DT_PLTRELSZ);
|
||||
0 < sz;
|
||||
(sz -= sizeof(Elf64_Rela)), ++jmprela
|
||||
) {
|
||||
unsigned const symnum = get_te64(&jmprela->r_info) >> 32;
|
||||
char const *const symnam = get_te32(&dynsym[symnum].st_name) + dynstr;
|
||||
if (0==strcmp(symnam, "__libc_start_main")
|
||||
|| 0==strcmp(symnam, "__uClibc_main")
|
||||
|| 0==strcmp(symnam, "__uClibc_start_main"))
|
||||
goto proceed;
|
||||
}
|
||||
|
||||
// 2016-10-09 DT_JMPREL is no more (binutils-2.26.1)?
|
||||
// Check the general case, too.
|
||||
for ( int sz = elf_unsigned_dynamic(Elf64_Dyn::DT_RELASZ);
|
||||
0 < sz;
|
||||
(sz -= sizeof(Elf64_Rela)), ++rela
|
||||
) {
|
||||
unsigned const symnum = get_te64(&rela->r_info) >> 32;
|
||||
char const *const symnam = get_te32(&dynsym[symnum].st_name) + dynstr;
|
||||
if (0==strcmp(symnam, "__libc_start_main")
|
||||
|| 0==strcmp(symnam, "__uClibc_main")
|
||||
|| 0==strcmp(symnam, "__uClibc_start_main"))
|
||||
goto proceed;
|
||||
}
|
||||
|
||||
// Heuristic HACK for shared libraries (compare Darwin (MacOS) Dylib.)
|
||||
// If there is an existing DT_INIT, and if everything that the dynamic
|
||||
// linker ld-linux needs to perform relocations before calling DT_INIT
|
||||
// resides below the first SHT_EXECINSTR Section in one PT_LOAD, then
|
||||
// compress from the first executable Section to the end of that PT_LOAD.
|
||||
// We must not alter anything that ld-linux might touch before it calls
|
||||
// the DT_INIT function.
|
||||
//
|
||||
// Obviously this hack requires that the linker script put pieces
|
||||
// into good positions when building the original shared library,
|
||||
// and also requires ld-linux to behave.
|
||||
|
||||
if (elf_find_dynamic(Elf64_Dyn::DT_INIT)) {
|
||||
if (elf_has_dynamic(Elf64_Dyn::DT_TEXTREL)) {
|
||||
throwCantPack("DT_TEXTREL found; re-compile with -fPIC");
|
||||
goto abandon;
|
||||
}
|
||||
Elf64_Shdr const *shdr = shdri;
|
||||
xct_va = ~0ull;
|
||||
for (j= e_shnum; --j>=0; ++shdr) {
|
||||
if (Elf64_Shdr::SHF_EXECINSTR & get_te32(&shdr->sh_flags)) {
|
||||
xct_va = umin64(xct_va, get_te64(&shdr->sh_addr));
|
||||
}
|
||||
}
|
||||
// Rely on 0==elf_unsigned_dynamic(tag) if no such tag.
|
||||
upx_uint64_t const va_gash = elf_unsigned_dynamic(Elf64_Dyn::DT_GNU_HASH);
|
||||
upx_uint64_t const va_hash = elf_unsigned_dynamic(Elf64_Dyn::DT_HASH);
|
||||
if (xct_va < va_gash || (0==va_gash && xct_va < va_hash)
|
||||
|| xct_va < elf_unsigned_dynamic(Elf64_Dyn::DT_STRTAB)
|
||||
|| xct_va < elf_unsigned_dynamic(Elf64_Dyn::DT_SYMTAB)
|
||||
|| xct_va < elf_unsigned_dynamic(Elf64_Dyn::DT_REL)
|
||||
|| xct_va < elf_unsigned_dynamic(Elf64_Dyn::DT_RELA)
|
||||
|| xct_va < elf_unsigned_dynamic(Elf64_Dyn::DT_JMPREL)
|
||||
|| xct_va < elf_unsigned_dynamic(Elf64_Dyn::DT_VERDEF)
|
||||
|| xct_va < elf_unsigned_dynamic(Elf64_Dyn::DT_VERSYM)
|
||||
|| xct_va < elf_unsigned_dynamic(Elf64_Dyn::DT_VERNEEDED) ) {
|
||||
throwCantPack("DT_ tag above stub");
|
||||
goto abandon;
|
||||
}
|
||||
for ((shdr= shdri), (j= e_shnum); --j>=0; ++shdr) {
|
||||
upx_uint64_t const sh_addr = get_te64(&shdr->sh_addr);
|
||||
if ( sh_addr==va_gash
|
||||
|| (sh_addr==va_hash && 0==va_gash) ) {
|
||||
shdr= &shdri[get_te32(&shdr->sh_link)]; // the associated SHT_SYMTAB
|
||||
hatch_off = (char *)&ehdri.e_ident[11] - (char *)&ehdri;
|
||||
break;
|
||||
}
|
||||
}
|
||||
ACC_UNUSED(shdr);
|
||||
xct_off = elf_get_offset_from_address(xct_va);
|
||||
goto proceed; // But proper packing depends on checking xct_va.
|
||||
}
|
||||
abandon:
|
||||
return false;
|
||||
proceed: ;
|
||||
}
|
||||
// XXX Theoretically the following test should be first,
|
||||
// but PackUnix::canPack() wants 0!=exetype ?
|
||||
if (!super::canPack())
|
||||
return false;
|
||||
assert(exetype == 1);
|
||||
|
||||
exetype = 0;
|
||||
|
||||
// set options
|
||||
opt->o_unix.blocksize = blocksize = file_size;
|
||||
return true;
|
||||
}
|
||||
|
||||
off_t
|
||||
PackLinuxElf32::getbrk(const Elf32_Phdr *phdr, int nph) const
|
||||
{
|
||||
@ -2675,6 +2918,14 @@ void PackLinuxElf64amd::pack1(OutputFile *fo, Filter &ft)
|
||||
generateElfHdr(fo, stub_amd64_linux_elf_fold, getbrk(phdri, e_phnum) );
|
||||
}
|
||||
|
||||
void PackLinuxElf64arm::pack1(OutputFile *fo, Filter &ft)
|
||||
{
|
||||
super::pack1(fo, ft);
|
||||
if (0!=xct_off) // shared library
|
||||
return;
|
||||
generateElfHdr(fo, stub_arm64_linux_elf_fold, getbrk(phdri, e_phnum) );
|
||||
}
|
||||
|
||||
// Determine length of gap between PT_LOAD phdr[k] and closest PT_LOAD
|
||||
// which follows in the file (or end-of-file). Optimize for common case
|
||||
// where the PT_LOAD are adjacent ascending by .p_offset. Assume no overlap.
|
||||
@ -3013,6 +3264,51 @@ void PackLinuxElf32armBe::defineSymbols(Filter const *ft)
|
||||
ARM_defineSymbols(ft);
|
||||
}
|
||||
|
||||
void PackLinuxElf64arm::defineSymbols(Filter const * /*ft*/)
|
||||
{
|
||||
lsize = /*getLoaderSize()*/ 4 * 1024; // upper bound; avoid circularity
|
||||
upx_uint64_t lo_va_user = ~0ul; // infinity
|
||||
for (int j= e_phnum; --j>=0; ) {
|
||||
if (PT_LOAD64 == get_te32(&phdri[j].p_type)) {
|
||||
upx_uint64_t const va = get_te64(&phdri[j].p_vaddr);
|
||||
if (va < lo_va_user) {
|
||||
lo_va_user = va;
|
||||
}
|
||||
}
|
||||
}
|
||||
upx_uint64_t lo_va_stub = get_te64(&elfout.phdr[0].p_vaddr);
|
||||
upx_uint64_t adrc = 0; // init: pacify c++-analyzer
|
||||
upx_uint64_t adrm = 0; // init: pacify c++-analyzer
|
||||
|
||||
is_big = true; // kernel disallows mapping below 0x8000.
|
||||
if (is_big) {
|
||||
set_te64( &elfout.ehdr.e_entry, linker->getSymbolOffset("_start") +
|
||||
get_te64(&elfout.ehdr.e_entry) + lo_va_user - lo_va_stub);
|
||||
set_te64(&elfout.phdr[0].p_vaddr, lo_va_user);
|
||||
set_te64(&elfout.phdr[0].p_paddr, lo_va_user);
|
||||
lo_va_stub = lo_va_user;
|
||||
adrc = lo_va_stub;
|
||||
adrm = getbrk(phdri, e_phnum);
|
||||
}
|
||||
adrc = page_mask & (~page_mask + adrc); // round up to page boundary
|
||||
adrm = page_mask & (~page_mask + adrm); // round up to page boundary
|
||||
adrm += page_size; // Try: hole so that kernel does not extend the brk(0)
|
||||
linker->defineSymbol("ADRM", adrm); // addr for map
|
||||
|
||||
linker->defineSymbol("CPR0", 4+ linker->getSymbolOffset("cpr0"));
|
||||
linker->defineSymbol("LENF", 4+ linker->getSymbolOffset("end_decompress"));
|
||||
ACC_UNUSED(adrc);
|
||||
|
||||
#define MAP_PRIVATE 2 /* UNIX standard */
|
||||
#define MAP_FIXED 0x10 /* UNIX standard */
|
||||
#define MAP_ANONYMOUS 0x20 /* UNIX standard */
|
||||
#define MAP_PRIVANON 3 /* QNX anonymous private memory */
|
||||
unsigned mflg = MAP_PRIVATE | MAP_ANONYMOUS;
|
||||
//if (ARM_is_QNX())
|
||||
// mflg = MAP_PRIVANON;
|
||||
linker->defineSymbol("MFLG", mflg);
|
||||
}
|
||||
|
||||
void PackLinuxElf32mipseb::defineSymbols(Filter const * /*ft*/)
|
||||
{
|
||||
unsigned const hlen = sz_elf_hdrs + sizeof(l_info) + sizeof(p_info);
|
||||
|
||||
@ -387,6 +387,25 @@ protected:
|
||||
virtual void defineSymbols(Filter const *);
|
||||
};
|
||||
|
||||
class PackLinuxElf64arm : public PackLinuxElf64Le
|
||||
{
|
||||
typedef PackLinuxElf64Le super;
|
||||
public:
|
||||
PackLinuxElf64arm(InputFile *f);
|
||||
virtual ~PackLinuxElf64arm();
|
||||
virtual int getFormat() const { return UPX_F_LINUX_ELF64_ARM; }
|
||||
virtual const char *getName() const { return "linux/arm64"; }
|
||||
virtual const char *getFullName(const options_t *) const { return "arm64-linux.elf"; }
|
||||
virtual const int *getFilters() const;
|
||||
virtual bool canPack();
|
||||
protected:
|
||||
virtual void pack1(OutputFile *, Filter &); // generate executable header
|
||||
//virtual void pack3(OutputFile *, Filter &); // append loader
|
||||
virtual void buildLoader(const Filter *);
|
||||
virtual Linker* newLinker() const;
|
||||
virtual void defineSymbols(Filter const *);
|
||||
};
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
// linux/elf32ppc
|
||||
|
||||
@ -250,6 +250,9 @@ Packer* PackMaster::visitAllPackers(visit_func_t func, InputFile *f, const optio
|
||||
if ((p = func(new PackLinuxElf32armBe(f), user)) != NULL)
|
||||
return p;
|
||||
delete p; p = NULL;
|
||||
if ((p = func(new PackLinuxElf64arm(f), user)) != NULL)
|
||||
return p;
|
||||
delete p; p = NULL;
|
||||
if ((p = func(new PackLinuxElf32ppc(f), user)) != NULL)
|
||||
return p;
|
||||
delete p; p = NULL;
|
||||
|
||||
@ -72,12 +72,14 @@ STUBS += arm.v5a-linux.kernel.vmlinux.h
|
||||
STUBS += arm.v5a-linux.kernel.vmlinuz-head.h
|
||||
STUBS += arm.v5a-linux.kernel.vmlinuz.h
|
||||
STUBS += arm.v5a-linux.shlib-init.h
|
||||
STUBS += arm.v5a-linux.shlib-init.h
|
||||
STUBS += arm.v5t-linux.shlib-init.h
|
||||
STUBS += armeb.v4a-linux.elf-entry.h
|
||||
STUBS += armeb.v4a-linux.elf-fold.h
|
||||
STUBS += armeb.v5a-linux.kernel.vmlinux-head.h
|
||||
STUBS += armeb.v5a-linux.kernel.vmlinux.h
|
||||
STUBS += arm64-linux.elf-entry.h
|
||||
STUBS += arm64-linux.elf-fold.h
|
||||
STUBS += arm64-linux.shlib-init.h
|
||||
STUBS += arm64-darwin.macho-entry.h
|
||||
STUBS += arm64-darwin.macho-fold.h
|
||||
STUBS += i086-dos16.com.h
|
||||
@ -533,6 +535,61 @@ tmp/armel-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/i386-linux.elf-ma
|
||||
$(call tc,f-objstrip,$@)
|
||||
|
||||
|
||||
# /***********************************************************************
|
||||
# // arm64-linux.elf (arm64)
|
||||
# ************************************************************************/
|
||||
|
||||
arm64-linux.elf%.h : tc_list = arm64-linux.elf default
|
||||
arm64-linux.elf%.h : tc_bfdname = elf64-littleaarch64
|
||||
|
||||
tc.arm64-linux.elf.gcc = /usr/bin/aarch64-linux-gnu-gcc -nostdinc -MMD -MT $@
|
||||
tc.arm64-linux.elf.gcc += -fno-exceptions -fno-asynchronous-unwind-tables
|
||||
tc.arm64-linux.elf.gcc += -Wall -W -Wcast-align -Wcast-qual -Wstrict-prototypes -Wwrite-strings -Werror
|
||||
|
||||
tc.arm64-linux.elf-fold.ld = /usr/bin/aarch64-linux-gnu-ld
|
||||
|
||||
tc.arm64-linux.elf-entry.objcopy = /usr/bin/aarch64-linux-gnu-objcopy -F elf64-littleaarch64
|
||||
tc.arm64-linux.elf-fold.objcopy = /usr/bin/aarch64-linux-gnu-objcopy -F elf64-littleaarch64
|
||||
tc.arm64-linux.elf-main.objcopy = /usr/bin/aarch64-linux-gnu-objcopy -F elf64-littleaarch64
|
||||
|
||||
tc.arm64-linux.elf-entry.objdump = /usr/bin/aarch64-linux-gnu-objdump
|
||||
tc.arm64-linux.elf-fold.objdump = /usr/bin/aarch64-linux-gnu-objdump
|
||||
tc.arm64-linux.elf-main.objdump = /usr/bin/aarch64-linux-gnu-objdump
|
||||
|
||||
arm64-linux.elf-entry.h : $(srcdir)/src/$$T.S
|
||||
$(call tc,gcc) -c $< -o tmp/$T.bin
|
||||
$(call tc,f-embed_objinfo,tmp/$T.bin)
|
||||
$(call tc,bin2h) tmp/$T.bin $@
|
||||
|
||||
arm64-linux.elf-fold.h : tmp/$$T.o tmp/arm64-linux.elf-main.o $(srcdir)/src/arm64-linux.elf-fold.lds
|
||||
$(call tc,ld) --strip-all -T $(srcdir)/src/arm64-linux.elf-fold.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin
|
||||
$(call tc,f-objstrip,tmp/$T.bin)
|
||||
$(call tc,sstrip) tmp/$T.bin
|
||||
$(call tc,bin2h) tmp/$T.bin $@
|
||||
|
||||
tmp/arm64-linux.elf-fold.o : $(srcdir)/src/$$T.S
|
||||
$(call tc,gcc) -c $< -o $@
|
||||
$(call tc,f-objstrip,$@)
|
||||
|
||||
tmp/arm64-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/arm64-linux.elf-main.c
|
||||
$(call tc,gcc) -c -Os $< -o $@
|
||||
$(call tc,f-objstrip,$@)
|
||||
|
||||
# /***********************************************************************
|
||||
# // arm64-linux.shlib arm64
|
||||
# ************************************************************************/
|
||||
|
||||
arm64-linux.shlib%.h : tc_list = arm64-linux.elf default
|
||||
arm64-linux.shlib%.h : tc_bfdname = elf64-littleaarch64
|
||||
tc.arm64-linux.shlib-init.objcopy = /usr/bin/aarch64-linux-gnu-objcopy -F elf64-littleaarch64
|
||||
tc.arm64-linux.shlib-init.objdump = /usr/bin/aarch64-linux-gnu-objdump
|
||||
|
||||
arm64-linux.shlib%.h : $(srcdir)/src/$$T.S
|
||||
$(call tc,gcc) -c -x assembler-with-cpp $< -o tmp/$T.bin
|
||||
$(call tc,f-embed_objinfo,tmp/$T.bin)
|
||||
$(call tc,bin2h-c) tmp/$T.bin $@
|
||||
|
||||
|
||||
# /***********************************************************************
|
||||
# // arm.v5a-linux.shlib (arm.v5a)
|
||||
# ************************************************************************/
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/* arm64-darwin.macho-entry.h
|
||||
created from arm64-darwin.macho-entry.bin, 4261 (0x10a5) bytes
|
||||
created from arm64-darwin.macho-entry.bin, 7524 (0x1d64) bytes
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
@ -31,276 +31,480 @@
|
||||
*/
|
||||
|
||||
|
||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 4261
|
||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0xaa67ad09
|
||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0x5553c968
|
||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_SIZE 7524
|
||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_ADLER32 0xe8d2735e
|
||||
#define STUB_ARM64_DARWIN_MACHO_ENTRY_CRC32 0x4030fbb8
|
||||
|
||||
unsigned char stub_arm64_darwin_macho_entry[4261] = {
|
||||
unsigned char stub_arm64_darwin_macho_entry[7524] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 80, 11, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,168, 21, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
|
||||
/* 0x0040 */ 255, 19, 0,209,224, 7,177,169,226, 15, 1,169,228, 23, 2,169,
|
||||
/* 0x0050 */ 230, 31, 3,169,232, 39, 4,169,234, 47, 5,169,236, 55, 6,169,
|
||||
/* 0x0060 */ 238, 63, 7,169,240, 71, 8,169,242, 79, 9,169,244, 87, 10,169,
|
||||
/* 0x0070 */ 246, 95, 11,169,248,103, 12,169,250,111, 13,169,252,119, 14,169,
|
||||
/* 0x0080 */ 0, 0, 0,148,226,143,190,169,254, 11, 0,249, 7, 64, 33,139,
|
||||
/* 0x0090 */ 5, 0,128, 18, 4, 0,176, 82, 29, 0, 0, 20,227, 19,193,168,
|
||||
/* 0x0080 */ 0, 0, 0,148,254, 15, 31,248,226, 15,191,169, 7, 64, 33,139,
|
||||
/* 0x0090 */ 5, 0,128, 18, 4, 0,176, 82, 24, 0, 0, 20,227, 19,193,168,
|
||||
/* 0x00a0 */ 0, 0, 7,203, 66, 0, 3,203,130, 0, 0,185,228, 3, 0,170,
|
||||
/* 0x00b0 */ 224, 3, 3,170,225, 3, 2,170,224, 7,191,169, 35, 0,128, 82,
|
||||
/* 0x00c0 */ 8, 0,176, 82, 0, 16, 32,212,224, 7,193,168, 3, 0,128, 82,
|
||||
/* 0x00d0 */ 8, 0,176, 82, 0, 16, 32,212,224, 3, 4,170,254,135, 64,248,
|
||||
/* 0x00e0 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214,
|
||||
/* 0x00f0 */ 4, 20, 64, 56,132, 0, 4, 58,132, 32, 9, 83,132, 0, 4, 43,
|
||||
/* 0x0100 */ 192, 3, 95,214, 3, 20, 64, 56, 67, 20, 0, 56,246,255,255,151,
|
||||
/* 0x0110 */ 162,255,255, 84, 33, 0,128, 82, 4, 0, 0, 20, 33, 4, 0, 81,
|
||||
/* 0x0120 */ 241,255,255,151, 33, 0, 1, 26,239,255,255,151, 33, 0, 1, 26,
|
||||
/* 0x0130 */ 237,255,255,151, 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82,
|
||||
/* 0x0140 */ 35, 1, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,
|
||||
/* 0x0150 */ 101,250,255, 52,191, 0, 0,114,165,124, 1, 19,161, 1, 0, 84,
|
||||
/* 0x0160 */ 3, 0, 0, 20,224,255,255,151, 66, 1, 0, 84, 33, 0,128, 82,
|
||||
/* 0x0170 */ 221,255,255,151,226, 0, 0, 84,219,255,255,151, 33, 0, 1, 26,
|
||||
/* 0x0180 */ 217,255,255,151,163,255,255, 84, 33, 16, 0, 17, 4, 0, 0, 20,
|
||||
/* 0x0190 */ 213,255,255,151, 33, 0, 1, 26, 33, 8, 0, 17,191, 0, 20, 49,
|
||||
/* 0x01a0 */ 33, 52,129, 26, 67,192, 33,139, 99,240, 95, 56, 67,200,101, 56,
|
||||
/* 0x01b0 */ 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,212,255,255, 23,
|
||||
/* 0x01c0 */ 226,143,190,169,254, 11, 0,249, 7, 64, 33,139, 5, 0,128, 18,
|
||||
/* 0x01d0 */ 4, 0,176, 82, 29, 0, 0, 20,227, 19,193,168, 0, 0, 7,203,
|
||||
/* 0x01e0 */ 66, 0, 3,203,130, 0, 0,185,228, 3, 0,170,224, 3, 3,170,
|
||||
/* 0x01f0 */ 225, 3, 2,170,224, 7,191,169, 35, 0,128, 82, 8, 0,176, 82,
|
||||
/* 0x0200 */ 0, 16, 32,212,224, 7,193,168, 3, 0,128, 82, 8, 0,176, 82,
|
||||
/* 0x0210 */ 0, 16, 32,212,224, 3, 4,170,254,135, 64,248,192, 3, 95,214,
|
||||
/* 0x0220 */ 132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214, 4, 20, 64, 56,
|
||||
/* 0x0230 */ 132, 0, 4, 58,132, 32, 9, 83,132, 0, 4, 43,192, 3, 95,214,
|
||||
/* 0x0240 */ 3, 20, 64, 56, 67, 20, 0, 56,246,255,255,151,162,255,255, 84,
|
||||
/* 0x0250 */ 33, 0,128, 82, 4, 0, 0, 20, 33, 4, 0, 81,241,255,255,151,
|
||||
/* 0x0260 */ 33, 0, 1, 58,239,255,255,151, 33, 0, 1, 58,237,255,255,151,
|
||||
/* 0x0270 */ 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84,
|
||||
/* 0x0280 */ 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,101,250,255, 52,
|
||||
/* 0x0290 */ 163, 0, 1, 83,165,124, 1, 83, 99, 0, 3, 43, 2, 0, 0, 20,
|
||||
/* 0x02a0 */ 224,255,255,151, 33, 0, 1, 58,222,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x02b0 */ 225, 0, 0, 84, 33, 0,128, 82,218,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x02c0 */ 216,255,255,151,163,255,255, 84, 33, 8, 0, 17, 33, 4, 0, 17,
|
||||
/* 0x02d0 */ 191, 0, 20, 49, 33, 52,129, 26, 67, 0, 64, 57, 67,200,101, 56,
|
||||
/* 0x02e0 */ 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,215,255,255, 23,
|
||||
/* 0x02f0 */ 1, 64, 33,139,225, 11,190,169,227,123, 1,169, 5, 0,128, 18,
|
||||
/* 0x0300 */ 4, 0,176, 82, 37, 0, 0, 20,228, 11, 64,249,225,143,193,168,
|
||||
/* 0x0310 */ 0, 0, 1,203, 66, 0, 3,203,130, 0, 0,185,228, 3, 0,170,
|
||||
/* 0x0320 */ 224, 3, 3,170,225, 3, 2,170,224, 7,191,169, 35, 0,128, 82,
|
||||
/* 0x0330 */ 8, 0,176, 82, 0, 16, 32,212,224, 7,193,168, 3, 0,128, 82,
|
||||
/* 0x0340 */ 8, 0,176, 82, 0, 16, 32,212,224, 3, 4,170,254,135, 64,248,
|
||||
/* 0x0350 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214,
|
||||
/* 0x0360 */ 4, 20, 64, 56,132, 0, 4, 26,132, 32, 9, 83,132, 0, 4, 43,
|
||||
/* 0x0370 */ 192, 3, 95,214, 33, 0,128, 82,240, 3, 30,170,246,255,255,151,
|
||||
/* 0x0380 */ 33, 0, 1, 58,244,255,255,151,163,255,255, 84, 0, 2, 31,214,
|
||||
/* 0x0390 */ 3, 20, 64, 56, 67, 20, 0, 56,239,255,255,151,162,255,255, 84,
|
||||
/* 0x03a0 */ 245,255,255,151, 35, 12, 0,113, 1, 0,128, 82,163, 0, 0, 84,
|
||||
/* 0x03b0 */ 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,101,250,255, 52,
|
||||
/* 0x03c0 */ 229,255,255,151, 33, 0, 1, 58,227,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x03d0 */ 97, 0, 0, 84,232,255,255,151, 33, 8, 0, 17,191, 0, 52, 49,
|
||||
/* 0x03e0 */ 33, 36,129, 26, 67,200,101, 56, 33, 4, 0,113, 67, 20, 0, 56,
|
||||
/* 0x03f0 */ 162,255,255, 84,233,255,255, 23,230,123,191,169,227,147,190,169,
|
||||
/* 0x0400 */ 229, 11, 0,249,232, 3, 1,170, 45, 64, 34,139,233, 3, 4,170,
|
||||
/* 0x0410 */ 142, 64, 37,139,235, 3, 0,170, 6, 21, 64, 56,160, 5,128, 82,
|
||||
/* 0x0420 */ 196, 8,192, 26, 0,124, 4, 27,198, 0, 0, 75, 32, 1,128, 82,
|
||||
/* 0x0430 */ 197, 8,192, 26, 0,124, 5, 27,198, 0, 0, 75,174, 0, 6, 11,
|
||||
/* 0x0440 */ 7, 0,128, 18,229, 32,197, 26,229, 3, 37, 42,228, 32,196, 26,
|
||||
/* 0x0450 */ 228, 3, 36, 42, 35, 0,128, 82, 34, 0,128, 82, 33, 0,128, 82,
|
||||
/* 0x0460 */ 32, 0,128, 82, 6, 0,128, 82,230, 31, 0,185, 2, 96,128, 82,
|
||||
/* 0x0470 */ 192,230,128, 82, 66, 32,206, 26, 66, 0, 0, 11, 0,128,128,210,
|
||||
/* 0x0480 */ 225, 3, 11,170, 0, 64, 0,170, 0,128, 0,170, 32,132, 0,248,
|
||||
/* 0x0490 */ 66, 16, 0,113,204,255,255, 84, 0, 21, 0,145,231, 0, 0,148,
|
||||
/* 0x04a0 */ 31, 0, 8,235,193,255,255, 84,227, 67, 66,248,226, 19, 64,185,
|
||||
/* 0x04b0 */ 36, 1, 3,203,128, 0, 2, 10,224, 47, 0,185, 0, 16, 6, 11,
|
||||
/* 0x04c0 */ 97, 1, 0,145,225, 0, 0,148,129, 5, 0, 84,227, 23, 64,185,
|
||||
/* 0x04d0 */ 226, 27, 64,185, 99, 0, 4, 10,224,115, 64, 57, 99, 32,194, 26,
|
||||
/* 0x04e0 */ 226, 3, 2, 75, 66, 32, 0, 17, 2, 36,194, 26, 99, 0, 2, 11,
|
||||
/* 0x04f0 */ 106,177, 57,145, 99, 4, 3, 11,227, 3, 3, 42, 32, 0,128, 82,
|
||||
/* 0x0500 */ 74, 37, 3,139,223, 28, 0,113, 3, 2, 0, 84,227,125, 64,147,
|
||||
/* 0x0510 */ 227, 3, 3,203, 37,105, 99, 56,165,120, 31, 83, 65, 1, 8,145,
|
||||
/* 0x0520 */ 164, 0, 24, 18,227, 3, 4, 42, 33, 4, 3,139,201, 0, 0,148,
|
||||
/* 0x0530 */ 3, 0, 0, 18,127, 32, 68,107,193, 0, 0, 84, 31, 0, 4,113,
|
||||
/* 0x0540 */ 195,254,255, 84, 5, 0, 0, 20,225, 3, 10,170,193, 0, 0,148,
|
||||
/* 0x0550 */ 31, 0, 4,113,163,255,255, 84, 98, 0,128, 82,195, 0,128, 82,
|
||||
/* 0x0560 */ 223, 40, 0,113, 67, 48,131, 26,223, 16, 0,113,195, 48,131, 26,
|
||||
/* 0x0570 */ 198, 0, 3, 75, 34, 0, 0, 20, 97, 1, 6,145,178, 0, 0,148,
|
||||
/* 0x0580 */ 129, 1, 0, 84,227, 11, 64,185,226, 7, 64,185,227, 15, 0,185,
|
||||
/* 0x0590 */ 226, 11, 0,185,239, 7, 0,185, 3, 0,128, 82,223, 28, 0,113,
|
||||
/* 0x05a0 */ 102, 0,128, 82,102, 48,134, 26,106,145, 25,145, 42, 0, 0, 20,
|
||||
/* 0x05b0 */ 97, 97, 6,145,164, 0, 0,148, 97, 2, 0, 84,227, 47, 64,185,
|
||||
/* 0x05c0 */ 97,129, 7,145, 96, 16, 6, 11,160, 0, 0,148,161, 3, 0, 84,
|
||||
/* 0x05d0 */ 35, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26,
|
||||
/* 0x05e0 */ 227, 67, 66,248, 36, 1, 3,203,159, 0, 15,107,131, 17, 0, 84,
|
||||
/* 0x05f0 */ 227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56,
|
||||
/* 0x0600 */ 121, 0, 0, 20, 97,193, 6,145,143, 0, 0,148,228, 7, 64,185,
|
||||
/* 0x0610 */ 64, 1, 0, 84, 97, 33, 7,145,139, 0, 0,148,228, 11, 64,185,
|
||||
/* 0x0620 */ 128, 0, 0, 84,227, 11, 64,185,228, 15, 64,185,227, 15, 0,185,
|
||||
/* 0x0630 */ 227, 7, 64,185,227, 11, 0,185,239, 7, 0,185,239, 3, 4, 42,
|
||||
/* 0x0640 */ 3, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26,
|
||||
/* 0x0650 */ 106,161, 41,145, 65, 1, 0,145,125, 0, 0,148, 1, 1, 0, 84,
|
||||
/* 0x0660 */ 227, 47, 64,185, 69, 17, 0,145,227, 3, 3, 42, 2, 0,128, 82,
|
||||
/* 0x0670 */ 165, 16, 3,139, 4, 1,128, 82, 14, 0, 0, 20, 65, 9, 0,145,
|
||||
/* 0x0680 */ 115, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 4,145,
|
||||
/* 0x0690 */ 227, 3, 3, 42, 2, 1,128, 82,165, 16, 3,139, 4, 1,128, 82,
|
||||
/* 0x06a0 */ 4, 0, 0, 20, 69, 17, 8,145, 2, 2,128, 82, 4, 32,128, 82,
|
||||
/* 0x06b0 */ 226, 55, 0,185, 32, 0,128, 82,225, 3, 5,170,101, 0, 0,148,
|
||||
/* 0x06c0 */ 3, 0, 4,107,163,255,255, 84,229, 55, 64,185,165, 0, 3, 11,
|
||||
/* 0x06d0 */ 229, 55, 0,185,223, 16, 0,113,194, 6, 0, 84,198, 28, 0, 17,
|
||||
/* 0x06e0 */ 99, 0,128, 82,191, 16, 0,113,101, 32,133, 26,227, 3, 5, 42,
|
||||
/* 0x06f0 */ 101, 29, 3,139,165,128, 13,145, 32, 0,128, 82, 4, 8,128, 82,
|
||||
/* 0x0700 */ 225, 3, 5,170, 83, 0, 0,148, 3, 0, 4,107,163,255,255, 84,
|
||||
/* 0x0710 */ 227, 47, 0,185,127, 16, 0,113, 99, 4, 0, 84,100,124, 1, 83,
|
||||
/* 0x0720 */ 132, 4, 0, 81,111, 0, 0, 18,239, 1, 31, 50,127, 56, 0,113,
|
||||
/* 0x0730 */ 226, 0, 0, 84,239, 33,196, 26,106,121, 21,145,227, 1, 3, 75,
|
||||
/* 0x0740 */ 227, 3, 3, 42, 74, 5, 3,139, 12, 0, 0, 20,132, 16, 0, 81,
|
||||
/* 0x0750 */ 53, 0, 0,148,231,124, 1, 83,131, 1, 7,107,108, 32,140, 26,
|
||||
/* 0x0760 */ 239, 1, 15, 26,132, 4, 0,113, 65,255,255, 84,106, 17, 25,145,
|
||||
/* 0x0770 */ 239,109, 28, 83,132, 0,128, 82, 37, 0,128, 82, 32, 0,128, 82,
|
||||
/* 0x0780 */ 225, 3, 10,170, 51, 0, 0,148, 31, 0, 0,114, 64, 0, 0, 84,
|
||||
/* 0x0790 */ 239, 1, 5, 42,165,120, 31, 83,132, 4, 0,113, 33,255,255, 84,
|
||||
/* 0x07a0 */ 2, 0, 0, 20,239, 47, 64,185,239, 5, 0, 49,229, 55, 64,185,
|
||||
/* 0x07b0 */ 227, 67, 66,248,165, 8, 0, 17, 35, 1, 3,203,255, 1, 3,107,
|
||||
/* 0x07c0 */ 232, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 32,105, 99, 56,
|
||||
/* 0x07d0 */ 32, 21, 0, 56, 63, 1, 14,235,194, 0, 0, 84,165, 4, 0,113,
|
||||
/* 0x07e0 */ 97,255,255, 84,224,115, 0, 57, 63, 1, 14,235,227,229,255, 84,
|
||||
/* 0x07f0 */ 13, 0, 0,148, 0, 0,128, 82,226, 19, 64,249, 3, 1, 2,203,
|
||||
/* 0x0800 */ 226, 31, 64,249, 67, 0, 0,185,226, 67, 66,248, 35, 1, 2,203,
|
||||
/* 0x0810 */ 226, 55, 64,249, 67, 0, 0,185,255,243, 0,145, 32, 0,128, 82,
|
||||
/* 0x0820 */ 246,255,255, 23,227,124, 24, 83,195, 0, 0, 53, 31, 1, 13,235,
|
||||
/* 0x0830 */ 231, 92, 24, 83, 66,255,255, 84, 3, 21, 64, 56,108, 32, 12, 42,
|
||||
/* 0x0840 */ 192, 3, 95,214,224, 3, 6, 42, 33, 68, 32,139, 0, 0,128, 82,
|
||||
/* 0x0850 */ 33, 68, 32,139,227,124, 24, 83,241, 3, 30,170, 94, 0, 0, 16,
|
||||
/* 0x0860 */ 99,254,255, 52, 35, 0, 64,121,226,124, 11, 83, 98,124, 2, 27,
|
||||
/* 0x0870 */ 159, 1, 2,107, 2, 1, 0, 84, 2, 0,129, 82,231, 3, 2, 42,
|
||||
/* 0x0880 */ 66, 0, 3, 75, 0, 0, 0, 58, 99, 20, 66, 11, 35, 0, 0,121,
|
||||
/* 0x0890 */ 32, 2, 95,214,140, 1, 2, 75,231, 0, 2, 75, 99, 20, 67, 75,
|
||||
/* 0x08a0 */ 0, 0, 0, 58, 35, 0, 0,121, 32, 2, 95,214,195, 3, 64,185,
|
||||
/* 0x08b0 */ 193, 7, 64,185,194, 67, 33,139, 66, 48, 0,145,192, 67, 35,139,
|
||||
/* 0x08c0 */ 0, 0, 3,145,228, 3, 1, 42, 73,204, 95,184,132, 16, 0, 81,
|
||||
/* 0x08d0 */ 9,204, 31,184,164,255,255, 53,196, 11, 64,185,222, 3, 2,145,
|
||||
/* 0x08e0 */ 227,143, 31,184,227, 3, 0,145,226, 3, 30,170,171, 32, 1,209,
|
||||
/* 0x08f0 */ 234, 3, 30,170,160, 0, 63,214, 64, 1, 31,214,229, 3, 30,170,
|
||||
/* 0x0900 */ 235,255,255,151,102,105,108,101, 32,102,111,114,109, 97,116, 32,
|
||||
/* 0x0910 */ 101,108,102, 54, 52, 45,108,105,116,116,108,101, 97, 97,114, 99,
|
||||
/* 0x0920 */ 104, 54, 52, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,
|
||||
/* 0x0930 */ 100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x0940 */ 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32,
|
||||
/* 0x0950 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65,
|
||||
/* 0x0960 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,
|
||||
/* 0x0970 */ 105,108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,
|
||||
/* 0x0980 */ 108, 97,103,115, 10, 32, 32, 48, 32, 77, 65, 67, 72, 77, 65, 73,
|
||||
/* 0x0990 */ 78, 88, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 52, 52, 32,
|
||||
/* 0x09a0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x09b0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x09c0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50,
|
||||
/* 0x09d0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
|
||||
/* 0x09e0 */ 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32,
|
||||
/* 0x09f0 */ 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32,
|
||||
/* 0x0a00 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x0a10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
|
||||
/* 0x0a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
|
||||
/* 0x0a30 */ 48, 48, 48, 48, 48, 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67,
|
||||
/* 0x0a40 */ 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76,
|
||||
/* 0x0a50 */ 89, 10, 32, 32, 50, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32,
|
||||
/* 0x0a60 */ 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 51, 99, 32, 32, 48, 48,
|
||||
/* 0x0a70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x0a80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0a90 */ 32, 32, 48, 48, 48, 48, 48, 48, 56, 52, 32, 32, 50, 42, 42, 48,
|
||||
/* 0x0aa0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68,
|
||||
/* 0x0ab0 */ 79, 78, 76, 89, 10, 32, 32, 51, 32, 78, 82, 86, 50, 68, 32, 32,
|
||||
/* 0x0ac0 */ 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 51, 48, 32,
|
||||
/* 0x0ad0 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0ae0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0af0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 99, 48, 32, 32, 50,
|
||||
/* 0x0b00 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
|
||||
/* 0x0b10 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50,
|
||||
/* 0x0b20 */ 66, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49,
|
||||
/* 0x0b30 */ 48, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0b40 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0b50 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50,102, 48,
|
||||
/* 0x0b60 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
||||
/* 0x0b70 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 78,
|
||||
/* 0x0b80 */ 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48,
|
||||
/* 0x0b90 */ 48, 48, 52, 98, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0ba0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0bb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x0bc0 */ 51,102, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
|
||||
/* 0x0bd0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32,
|
||||
/* 0x0be0 */ 54, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32,
|
||||
/* 0x0bf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0c00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x0c10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x0c20 */ 48, 48, 48, 56, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
|
||||
/* 0x0c30 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
|
||||
/* 0x0c40 */ 10, 32, 32, 55, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 32, 32,
|
||||
/* 0x0c50 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 53, 56, 32, 32, 48, 48, 48,
|
||||
/* 0x0c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
|
||||
/* 0x0c70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x0c80 */ 32, 48, 48, 48, 48, 48, 56, 97, 99, 32, 32, 50, 42, 42, 48, 32,
|
||||
/* 0x0c90 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79,
|
||||
/* 0x0ca0 */ 78, 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69,
|
||||
/* 0x0cb0 */ 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0cc0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77,
|
||||
/* 0x0cd0 */ 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0ce0 */ 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10,
|
||||
/* 0x0cf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0d00 */ 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73,
|
||||
/* 0x0d10 */ 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0d20 */ 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 10, 48, 48,
|
||||
/* 0x0d30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
|
||||
/* 0x0d40 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9,
|
||||
/* 0x0d50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0d60 */ 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0d70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,
|
||||
/* 0x0d80 */ 100, 32, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0d90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10,
|
||||
/* 0x0da0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0db0 */ 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48,
|
||||
/* 0x0dc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x0dd0 */ 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0de0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78,
|
||||
/* 0x0df0 */ 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0e00 */ 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48,
|
||||
/* 0x0e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
|
||||
/* 0x0e20 */ 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48,
|
||||
/* 0x0e30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78,
|
||||
/* 0x0e40 */ 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0e50 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32,
|
||||
/* 0x0e60 */ 32, 77, 65, 67, 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48,
|
||||
/* 0x0e70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72,
|
||||
/* 0x0e80 */ 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0e90 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77,
|
||||
/* 0x0ea0 */ 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0eb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116,
|
||||
/* 0x0ec0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0ed0 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 9,
|
||||
/* 0x0ee0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 51, 99,
|
||||
/* 0x0ef0 */ 32,117, 99,108, 95,110,114,118, 50,101, 95,100,101, 99,111,109,
|
||||
/* 0x0f00 */ 112,114,101,115,115, 95, 56, 10, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0f10 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70,
|
||||
/* 0x0f20 */ 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0f30 */ 48, 48, 48, 48, 49, 51, 48, 32,117, 99,108, 95,110,114,118, 50,
|
||||
/* 0x0f40 */ 100, 95,100,101, 99,111,109,112,114,101,115,115, 95, 56, 10, 48,
|
||||
/* 0x0f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x0f60 */ 103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 9, 48, 48,
|
||||
/* 0x0f70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 48, 56, 32,117,
|
||||
/* 0x0f80 */ 99,108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,
|
||||
/* 0x0f90 */ 101,115,115, 95, 56, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0fa0 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 78,
|
||||
/* 0x0fb0 */ 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0fc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,122,109, 97, 68,101, 99,
|
||||
/* 0x0fd0 */ 111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x0fe0 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67,
|
||||
/* 0x0ff0 */ 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1000 */ 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95,100,101, 99,111,
|
||||
/* 0x1010 */ 109,112,114,101,115,115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
|
||||
/* 0x1020 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
|
||||
/* 0x1030 */ 77, 65, 67, 72, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83,
|
||||
/* 0x1040 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
|
||||
/* 0x1050 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
|
||||
/* 0x1060 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1070 */ 48, 48, 48, 52, 48, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95,
|
||||
/* 0x1080 */ 67, 65, 76, 76, 50, 54, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78,
|
||||
/* 0x1090 */ 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x10a0 */ 48, 48, 53, 48, 10
|
||||
/* 0x00b0 */ 224, 3, 3,170, 97, 0, 2,139, 32,123, 11,213, 32,117, 11,213,
|
||||
/* 0x00c0 */ 0, 0, 1,145, 31, 0, 1,235,131,255,255, 84,224, 3, 4,170,
|
||||
/* 0x00d0 */ 254, 7, 65,248,192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,
|
||||
/* 0x00e0 */ 192, 3, 95,214, 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214,
|
||||
/* 0x00f0 */ 3, 20, 64, 56, 67, 20, 0, 56,248,255,255,151,162,255,255, 84,
|
||||
/* 0x0100 */ 33, 0,128, 82, 4, 0, 0, 20, 33, 4, 0, 81,243,255,255,151,
|
||||
/* 0x0110 */ 33, 0, 1, 26,241,255,255,151, 33, 0, 1, 26,239,255,255,151,
|
||||
/* 0x0120 */ 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84,
|
||||
/* 0x0130 */ 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42, 5,251,255, 52,
|
||||
/* 0x0140 */ 191, 0, 0,114,165,124, 1, 19,161, 1, 0, 84, 3, 0, 0, 20,
|
||||
/* 0x0150 */ 226,255,255,151, 66, 1, 0, 84, 33, 0,128, 82,223,255,255,151,
|
||||
/* 0x0160 */ 226, 0, 0, 84,221,255,255,151, 33, 0, 1, 26,219,255,255,151,
|
||||
/* 0x0170 */ 163,255,255, 84, 33, 16, 0, 17, 4, 0, 0, 20,215,255,255,151,
|
||||
/* 0x0180 */ 33, 0, 1, 26, 33, 8, 0, 17,191, 0, 20, 49, 33, 36,129, 26,
|
||||
/* 0x0190 */ 67, 64, 33,139, 99,240, 95, 56, 67,200,101, 56, 67, 20, 0, 56,
|
||||
/* 0x01a0 */ 33, 4, 0,113,161,255,255, 84,212,255,255, 23,226, 15,190,169,
|
||||
/* 0x01b0 */ 254, 11, 0,249, 7, 64, 33,139, 5, 0,128, 18, 4, 0,176, 82,
|
||||
/* 0x01c0 */ 24, 0, 0, 20,227, 19,193,168, 0, 0, 7,203, 66, 0, 3,203,
|
||||
/* 0x01d0 */ 130, 0, 0,185,228, 3, 0,170,224, 3, 3,170, 97, 0, 2,139,
|
||||
/* 0x01e0 */ 32,123, 11,213, 32,117, 11,213, 0, 0, 1,145, 31, 0, 1,235,
|
||||
/* 0x01f0 */ 131,255,255, 84,224, 3, 4,170,254, 7, 65,248,192, 3, 95,214,
|
||||
/* 0x0200 */ 132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214, 4, 68, 64,184,
|
||||
/* 0x0210 */ 132, 0, 4, 58,192, 3, 95,214, 3, 20, 64, 56, 67, 20, 0, 56,
|
||||
/* 0x0220 */ 248,255,255,151,162,255,255, 84, 33, 0,128, 82, 4, 0, 0, 20,
|
||||
/* 0x0230 */ 33, 4, 0, 81,243,255,255,151, 33, 0, 1, 58,241,255,255,151,
|
||||
/* 0x0240 */ 33, 0, 1, 58,239,255,255,151, 67,255,255, 84, 35, 12, 0,113,
|
||||
/* 0x0250 */ 1, 0,128, 82, 35, 1, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,
|
||||
/* 0x0260 */ 229, 3, 37, 42, 5,251,255, 52,163, 0, 1, 83,165,124, 1, 83,
|
||||
/* 0x0270 */ 99, 0, 3, 43, 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x0280 */ 224,255,255,151, 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,
|
||||
/* 0x0290 */ 220,255,255,151, 33, 0, 1, 58,218,255,255,151,163,255,255, 84,
|
||||
/* 0x02a0 */ 33, 8, 0, 17, 33, 4, 0, 17,191, 0, 20, 49, 33, 52,129, 26,
|
||||
/* 0x02b0 */ 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,
|
||||
/* 0x02c0 */ 161,255,255, 84,215,255,255, 23, 1, 64, 33,139,225, 11,190,169,
|
||||
/* 0x02d0 */ 227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82, 31, 0, 0, 20,
|
||||
/* 0x02e0 */ 228,123, 65,169,225, 15,194,168, 0, 0, 1,203, 66, 0, 3,203,
|
||||
/* 0x02f0 */ 130, 0, 0,185,228, 3, 0,170,224, 3, 3,170, 97, 0, 2,139,
|
||||
/* 0x0300 */ 32,123, 11,213, 32,117, 11,213, 0, 0, 1,145, 31, 0, 1,235,
|
||||
/* 0x0310 */ 131,255,255, 84,224, 3, 4,170,192, 3, 95,214,132, 0, 4, 43,
|
||||
/* 0x0320 */ 68, 0, 0, 52,192, 3, 95,214, 4, 68, 64,184,132, 0, 4, 58,
|
||||
/* 0x0330 */ 192, 3, 95,214, 33, 0,128, 82,240, 3, 30,170,248,255,255,151,
|
||||
/* 0x0340 */ 33, 0, 1, 58,246,255,255,151,163,255,255, 84, 0, 2, 31,214,
|
||||
/* 0x0350 */ 3, 20, 64, 56, 67, 20, 0, 56,241,255,255,151,162,255,255, 84,
|
||||
/* 0x0360 */ 245,255,255,151, 35, 12, 0,113, 1, 0,128, 82,163, 0, 0, 84,
|
||||
/* 0x0370 */ 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42, 37,251,255, 52,
|
||||
/* 0x0380 */ 231,255,255,151, 33, 0, 1, 58,229,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x0390 */ 97, 0, 0, 84,232,255,255,151, 33, 8, 0, 17,191, 0, 52, 49,
|
||||
/* 0x03a0 */ 33, 36,129, 26, 67,200,101, 56, 33, 4, 0,113, 67, 20, 0, 56,
|
||||
/* 0x03b0 */ 162,255,255, 84,233,255,255, 23,159, 56, 0,113, 1, 0, 0, 84,
|
||||
/* 0x03c0 */ 1, 64, 33,139, 4, 0,128,210,225, 11,190,169,227,123, 1,169,
|
||||
/* 0x03d0 */ 228, 19,191,169,224, 3, 0,145,227, 35, 0,145,230, 51, 0,145,
|
||||
/* 0x03e0 */ 8, 0, 64, 57, 7,192,128, 82, 8,125, 3, 83,231, 32,200, 26,
|
||||
/* 0x03f0 */ 253, 3, 0,145,231,192, 57, 17,232, 3, 0,145,255, 67, 39,203,
|
||||
/* 0x0400 */ 100, 16,129,168,127, 0, 8,235,195,255,255, 84,230, 3, 3,170,
|
||||
/* 0x0410 */ 229, 3, 7, 42,228, 3, 2,170, 34, 8, 0, 81,225, 3, 0,170,
|
||||
/* 0x0420 */ 39, 20, 64, 56,231, 8, 0, 18,231, 11, 0, 57, 39, 20, 64, 56,
|
||||
/* 0x0430 */ 232,124, 4, 83,232, 7, 0, 57,231, 12, 0, 18,231, 3, 0, 57,
|
||||
/* 0x0440 */ 224, 3, 0,145, 17, 0, 0,148,191, 3, 0,145,228,123, 65,169,
|
||||
/* 0x0450 */ 225, 15,194,168, 0, 0, 1,203, 66, 0, 3,203,130, 0, 0,185,
|
||||
/* 0x0460 */ 228, 3, 0,170,224, 3, 3,170, 97, 0, 2,139, 32,123, 11,213,
|
||||
/* 0x0470 */ 32,117, 11,213, 0, 0, 1,145, 31, 0, 1,235,131,255,255, 84,
|
||||
/* 0x0480 */ 224, 3, 4,170,192, 3, 95,214,243, 83,184,169, 39, 0,128, 82,
|
||||
/* 0x0490 */ 20, 16, 0,145,245, 91, 1,169,247, 99, 2,169,249,107, 3,169,
|
||||
/* 0x04a0 */ 251,115, 4,169,254, 43, 0,249, 8, 4, 64, 57, 26, 8, 64, 57,
|
||||
/* 0x04b0 */ 28, 0, 64, 57,127, 0, 0,185,250, 32,218, 26,223, 0, 0,185,
|
||||
/* 0x04c0 */ 231, 32,200, 26,231, 4, 0, 81,231,111, 0,185, 8, 4, 64, 57,
|
||||
/* 0x04d0 */ 7, 96,128, 82, 90, 7, 0, 81, 8, 1, 28, 11,232, 32,200, 26,
|
||||
/* 0x04e0 */ 8,217, 28, 49,224, 0, 0, 84, 7, 0,128,210, 9,128,128, 82,
|
||||
/* 0x04f0 */ 137,122, 39,120,231, 4, 0,145, 31, 1, 7,107,168,255,255, 84,
|
||||
/* 0x0500 */ 51, 64, 34,139,127, 2, 1,235, 0, 15, 0, 84,235, 3, 1,170,
|
||||
/* 0x0510 */ 34, 4, 0,145,103, 85, 64, 56,127, 2, 2,235, 96, 14, 0, 84,
|
||||
/* 0x0520 */ 72, 20, 64, 56,127, 1, 2,235, 7, 33, 7, 42, 97,255,255, 84,
|
||||
/* 0x0530 */ 37, 68, 0, 52, 9,176, 41,145, 59, 0,128, 82,233, 63, 0,249,
|
||||
/* 0x0540 */ 9, 1,128, 82, 41, 1, 28, 75, 10, 0,128, 18,245, 3, 27, 42,
|
||||
/* 0x0550 */ 25, 0,128, 82, 8, 0,128, 82, 2, 0,128, 82, 16,224,191, 18,
|
||||
/* 0x0560 */ 17, 0,129, 82,251,107, 0,185,251,115, 0,185,233,119, 0,185,
|
||||
/* 0x0570 */ 78, 0, 26, 10, 44,111, 28, 83, 95, 1, 16,107,201,125, 64,147,
|
||||
/* 0x0580 */ 44,193, 44,139,143,249,127,211,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0590 */ 192, 10, 0, 84,105, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x05a0 */ 39, 33, 7, 42,141,122,108,120, 73,125, 11, 83,169,125, 9, 27,
|
||||
/* 0x05b0 */ 255, 0, 9,107,162, 10, 0, 84,234,211, 65, 57, 63, 27, 0,113,
|
||||
/* 0x05c0 */ 8, 41,202, 26,234,111, 64,185, 79, 0, 10, 10,239, 33,220, 26,
|
||||
/* 0x05d0 */ 239, 1, 8, 11, 40, 2, 13, 75,234,117, 30, 83, 79, 1, 15, 75,
|
||||
/* 0x05e0 */ 173, 21,136, 11,239, 93,120,211,141,122, 44,120,239,217, 28,145,
|
||||
/* 0x05f0 */ 143, 6, 15,139, 45, 31, 0, 84, 72, 0, 21, 75,146,104,104, 56,
|
||||
/* 0x0600 */ 40, 0,128, 82, 7, 0, 0, 20,236,121, 42,120, 8,121, 31, 83,
|
||||
/* 0x0610 */ 233, 3, 14, 42,205, 56, 0, 53, 31,253, 3,113,204, 3, 0, 84,
|
||||
/* 0x0620 */ 82,122, 31, 83, 63, 1, 16,107, 77, 2, 24, 18, 22,121, 31, 83,
|
||||
/* 0x0630 */ 170,125, 64,147, 74, 1, 4,145, 74,193, 40,139,232, 0, 0, 84,
|
||||
/* 0x0640 */ 127, 1, 19,235, 41, 93, 24, 83, 0, 5, 0, 84,108, 1, 64, 57,
|
||||
/* 0x0650 */ 107, 5, 0,145,135, 33, 7, 42,236,121,106,120, 46,125, 11, 83,
|
||||
/* 0x0660 */ 55, 2, 12, 75,142,125, 14, 27,152, 21, 76, 75,140, 21,151, 11,
|
||||
/* 0x0670 */ 255, 0, 14,107, 41, 1, 14, 75,131,252,255, 84,248,121, 42,120,
|
||||
/* 0x0680 */ 200, 6, 0, 17,231, 0, 14, 75,141,252,255, 53, 31,253, 3,113,
|
||||
/* 0x0690 */ 45, 27, 0, 84, 8, 29, 0, 83,234, 3, 9, 42,136, 72, 34, 56,
|
||||
/* 0x06a0 */ 66, 4, 0, 17, 63, 39, 0,113,140, 49, 0, 84, 57, 15, 0, 81,
|
||||
/* 0x06b0 */ 191, 0, 2,107,232,245,255, 84, 0,224,191, 18, 95, 1, 0,107,
|
||||
/* 0x06c0 */ 136, 0, 0, 84,127, 2, 11,235, 0, 1, 0, 84,107, 5, 0,145,
|
||||
/* 0x06d0 */ 97, 1, 1,203, 97, 0, 0,185, 0, 0,128, 82,194, 0, 0,185,
|
||||
/* 0x06e0 */ 3, 0, 0, 20, 31, 32, 3,213, 32, 0,128, 82,245, 91, 65,169,
|
||||
/* 0x06f0 */ 247, 99, 66,169,249,107, 67,169,251,115, 68,169,254, 43, 64,249,
|
||||
/* 0x0700 */ 243, 83,200,168,192, 3, 95,214, 74, 1, 9, 75,173, 21, 77, 75,
|
||||
/* 0x0710 */ 231, 0, 9, 75,141,122, 44,120, 41,127, 64,147, 95, 1, 16,107,
|
||||
/* 0x0720 */ 41, 1, 3,145, 45,249,127,211,232, 0, 0, 84,127, 1, 19,235,
|
||||
/* 0x0730 */ 192,253,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x0740 */ 7, 33, 7, 42,140,122,105,120, 72,125, 11, 83,136,125, 8, 27,
|
||||
/* 0x0750 */ 255, 0, 8,107, 98, 25, 0, 84,234,107, 64,185, 63, 31, 0,113,
|
||||
/* 0x0760 */ 251,115, 64,185,234,115, 0,185, 42, 2, 12, 75,245,107, 0,185,
|
||||
/* 0x0770 */ 140, 21,138, 11,140,122, 41,120,105, 0,128, 82,249,179,137, 26,
|
||||
/* 0x0780 */ 9,160, 25,145, 31, 1, 16,107,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0790 */ 192,250,255, 84,106, 1, 64, 57, 8, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x07a0 */ 71, 33, 7, 42, 44, 1, 64,121, 10,125, 11, 83,138,125, 10, 27,
|
||||
/* 0x07b0 */ 255, 0, 10,107,226, 30, 0, 84,210,113, 29, 83, 40, 2, 12, 75,
|
||||
/* 0x07c0 */ 22, 0,128, 82,126, 0,128, 82, 82,126, 64,147,140, 21,136, 11,
|
||||
/* 0x07d0 */ 82, 10, 0,145, 44, 1, 0,121, 50, 5, 18,139,238, 3, 30, 42,
|
||||
/* 0x07e0 */ 45, 0,128, 82, 6, 0, 0, 20,232, 1, 0,121,206, 5, 0,113,
|
||||
/* 0x07f0 */ 173,121, 31, 83,234, 3, 9, 42, 32, 3, 0, 84, 95, 1, 16,107,
|
||||
/* 0x0800 */ 183,121, 31, 83, 79,198, 45,139,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0810 */ 74, 93, 24, 83,160,246,255, 84,104, 1, 64, 57,107, 5, 0,145,
|
||||
/* 0x0820 */ 7, 33, 7, 42,232, 1, 64,121, 73,125, 11, 83, 44, 2, 8, 75,
|
||||
/* 0x0830 */ 9,125, 9, 27, 24, 21, 72, 75, 8, 21,140, 11,255, 0, 9,107,
|
||||
/* 0x0840 */ 74, 1, 9, 75, 35,253,255, 84,248, 1, 0,121,206, 5, 0,113,
|
||||
/* 0x0850 */ 231, 0, 9, 75,237, 6, 0, 17, 33,253,255, 84, 40, 0,128, 82,
|
||||
/* 0x0860 */ 63, 15, 0,113, 30, 33,222, 26,222, 2, 30, 75,205, 3, 13, 11,
|
||||
/* 0x0870 */ 236, 22, 0, 84,191, 13, 0,113,104, 0,128, 82,181,209,136, 26,
|
||||
/* 0x0880 */ 207, 0,128, 82,181,102, 26, 83, 46, 0,128, 82,181,126, 64,147,
|
||||
/* 0x0890 */ 181,194, 6,145,181,250,127,211, 7, 0, 0, 20, 31, 32, 3,213,
|
||||
/* 0x08a0 */ 136,106, 50,120,239, 5, 0,113,206,121, 31, 83,234, 3, 9, 42,
|
||||
/* 0x08b0 */ 32, 3, 0, 84, 95, 1, 16,107,214,121, 31, 83,178,198, 46,139,
|
||||
/* 0x08c0 */ 232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,224,240,255, 84,
|
||||
/* 0x08d0 */ 104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,136,106,114,120,
|
||||
/* 0x08e0 */ 73,125, 11, 83, 44, 2, 8, 75, 9,125, 9, 27, 23, 21, 72, 75,
|
||||
/* 0x08f0 */ 8, 21,140, 11,255, 0, 9,107, 74, 1, 9, 75, 35,253,255, 84,
|
||||
/* 0x0900 */ 151,106, 50,120,239, 5, 0,113,231, 0, 9, 75,206, 6, 0, 17,
|
||||
/* 0x0910 */ 33,253,255, 84,213, 1, 1, 81,191, 14, 0,113, 45, 17, 0, 84,
|
||||
/* 0x0920 */ 191, 54, 0,113,168, 2, 0, 18, 8, 1, 31, 50,169,126, 1, 19,
|
||||
/* 0x0930 */ 44, 32, 0, 84, 47, 5, 0, 81, 9, 86,128,210, 46,193, 53,203,
|
||||
/* 0x0940 */ 21, 33,207, 26,206, 65, 53,139,142, 6, 14,139,206, 9, 0,209,
|
||||
/* 0x0950 */ 50, 0,128, 82,247, 3, 18, 42, 8, 0, 0, 20, 31, 32, 3,213,
|
||||
/* 0x0960 */ 200, 2, 0,121, 82,122, 31, 83,234, 3, 9, 42,239, 5, 0,113,
|
||||
/* 0x0970 */ 247,122, 31, 83, 96, 14, 0, 84, 95, 1, 16,107, 88,122, 31, 83,
|
||||
/* 0x0980 */ 214,197, 50,139,232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,
|
||||
/* 0x0990 */ 192,234,255, 84,104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,
|
||||
/* 0x09a0 */ 200, 2, 64,121, 73,125, 11, 83, 44, 2, 8, 75, 9,125, 9, 27,
|
||||
/* 0x09b0 */ 30, 21, 72, 75, 8, 21,140, 11,255, 0, 9,107, 74, 1, 9, 75,
|
||||
/* 0x09c0 */ 3,253,255, 84,222, 2, 0,121,231, 0, 9, 75,181, 2, 23, 42,
|
||||
/* 0x09d0 */ 18, 7, 0, 17,230,255,255, 23, 40, 0,128, 82, 6, 0, 0, 20,
|
||||
/* 0x09e0 */ 8,121, 31, 83,234,121, 46,120, 31,253, 3,113,233, 3, 12, 42,
|
||||
/* 0x09f0 */ 44, 3, 0, 84, 63, 1, 16,107, 18,121, 31, 83, 14,125, 64,147,
|
||||
/* 0x0a00 */ 232, 0, 0, 84,127, 2, 11,235, 41, 93, 24, 83,224,230,255, 84,
|
||||
/* 0x0a10 */ 106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42,234,121,110,120,
|
||||
/* 0x0a20 */ 44,125, 11, 83, 45, 2, 10, 75, 76,125, 12, 27, 86, 21, 74, 75,
|
||||
/* 0x0a30 */ 74, 21,141, 11,255, 0, 12,107, 41, 1, 12, 75, 35,253,255, 84,
|
||||
/* 0x0a40 */ 72, 6, 0, 17,246,121, 46,120, 31,253, 3,113,231, 0, 12, 75,
|
||||
/* 0x0a50 */ 45,253,255, 84, 8, 29, 0, 83, 63, 15, 0,113,136, 72, 34, 56,
|
||||
/* 0x0a60 */ 234, 3, 9, 42, 66, 4, 0, 17,236,225,255, 84,191, 0, 2,107,
|
||||
/* 0x0a70 */ 25, 0,128, 82,232,215,255, 84, 16,255,255, 23, 31, 32, 3,213,
|
||||
/* 0x0a80 */ 74, 1, 8, 75,140, 21, 76, 75, 95, 1, 16,107,140,122, 41,120,
|
||||
/* 0x0a90 */ 231, 0, 8, 75,169, 97, 0,145,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0aa0 */ 64,226,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x0ab0 */ 7, 33, 7, 42,140,106,105,120, 72,125, 11, 83,136,125, 8, 27,
|
||||
/* 0x0ac0 */ 255, 0, 8,107,226, 9, 0, 84, 42, 2, 12, 75, 31, 1, 16,107,
|
||||
/* 0x0ad0 */ 239,129, 7,145,140, 21,138, 11,140,106, 41,120,232, 0, 0, 84,
|
||||
/* 0x0ae0 */ 127, 2, 11,235, 32,224,255, 84,105, 1, 64, 57, 8, 93, 24, 83,
|
||||
/* 0x0af0 */ 107, 5, 0,145, 39, 33, 7, 42,137,106,111,120, 10,125, 11, 83,
|
||||
/* 0x0b00 */ 42,125, 10, 27,255, 0, 10,107,130, 16, 0, 84, 40, 2, 9, 75,
|
||||
/* 0x0b10 */ 41, 21,136, 11,137,106, 47,120,130,222,255, 52, 72, 0, 21, 75,
|
||||
/* 0x0b20 */ 63, 31, 0,113, 41, 1,128, 82,108, 1,128, 82, 57,177,140, 26,
|
||||
/* 0x0b30 */ 136,104,104, 56,136, 72, 34, 56, 66, 4, 0, 17,221,254,255, 23,
|
||||
/* 0x0b40 */ 181, 6, 0, 49,160,219,255, 84, 57, 31, 0, 17,191, 2, 2,107,
|
||||
/* 0x0b50 */ 173, 9, 0, 17,168,220,255, 84,233, 3, 2, 42, 72, 0, 21, 75,
|
||||
/* 0x0b60 */ 173, 5, 0, 81, 66, 4, 0, 17,191, 1, 31,107,160, 16, 66,122,
|
||||
/* 0x0b70 */ 136,104,104, 56,136, 72, 41, 56,233, 3, 2, 42, 8,255,255, 84,
|
||||
/* 0x0b80 */ 191, 0, 2,107,104,207,255, 84,204,254,255, 23, 31, 32, 3,213,
|
||||
/* 0x0b90 */ 8, 1, 10, 75,140, 21, 76, 75, 31, 1, 16,107, 44, 1, 0,121,
|
||||
/* 0x0ba0 */ 231, 0, 10, 75,232, 0, 0, 84,127, 2, 11,235,224,217,255, 84,
|
||||
/* 0x0bb0 */ 106, 1, 64, 57, 8, 93, 24, 83,107, 5, 0,145, 71, 33, 7, 42,
|
||||
/* 0x0bc0 */ 44, 5, 64,121, 10,125, 11, 83,138,125, 10, 27,255, 0, 10,107,
|
||||
/* 0x0bd0 */ 66, 7, 0, 84,210,113, 29, 83, 40, 2, 12, 75, 22, 1,128, 82,
|
||||
/* 0x0be0 */ 126, 0,128, 82, 82,126, 64,147,136, 21,136, 11, 82, 10, 2,145,
|
||||
/* 0x0bf0 */ 40, 5, 0,121, 50, 5, 18,139,249,254,255, 23, 31, 32, 3,213,
|
||||
/* 0x0c00 */ 74, 1, 8, 75,231, 0, 8, 75, 95, 1, 16,107,136, 21, 76, 75,
|
||||
/* 0x0c10 */ 136,106, 41,120,172,193, 0,145,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0c20 */ 64,214,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x0c30 */ 7, 33, 7, 42,137,106,108,120, 72,125, 11, 83, 40,125, 8, 27,
|
||||
/* 0x0c40 */ 255, 0, 8,107, 35, 5, 0, 84, 74, 1, 8, 75, 41, 21, 73, 75,
|
||||
/* 0x0c50 */ 95, 1, 16,107,137,106, 44,120,231, 0, 8, 75,173, 33, 1,145,
|
||||
/* 0x0c60 */ 232, 0, 0, 84,127, 2, 11,235, 0,212,255, 84,104, 1, 64, 57,
|
||||
/* 0x0c70 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,137,106,109,120,
|
||||
/* 0x0c80 */ 72,125, 11, 83, 40,125, 8, 27,255, 0, 8,107,226, 7, 0, 84,
|
||||
/* 0x0c90 */ 234, 3, 21, 42,236,107, 64,185,234,107, 0,185, 42, 2, 9, 75,
|
||||
/* 0x0ca0 */ 245,115, 64,185, 41, 21,138, 11,236,115, 0,185,137,106, 45,120,
|
||||
/* 0x0cb0 */ 20, 0, 0, 20, 31, 32, 3,213,231, 0, 10, 75, 50, 17, 8,145,
|
||||
/* 0x0cc0 */ 10, 1, 10, 75, 22, 2,128, 82,136, 21, 76, 75, 30, 1,128, 82,
|
||||
/* 0x0cd0 */ 40, 5, 0,121,194,254,255, 23,191, 0, 2,107, 57, 27, 0, 81,
|
||||
/* 0x0ce0 */ 136,196,255, 84,117,254,255, 23,234, 3, 21, 42,245,107, 64,185,
|
||||
/* 0x0cf0 */ 234,107, 0,185, 42, 2, 9, 75, 41, 21,138, 11,137,106, 44,120,
|
||||
/* 0x0d00 */ 63, 31, 0,113, 10, 1,128, 82,108, 1,128, 82,233, 63, 64,249,
|
||||
/* 0x0d10 */ 89,177,140, 26,156,254,255, 23, 41, 21, 73, 75, 8, 1, 10, 75,
|
||||
/* 0x0d20 */ 137,106, 47,120,231, 0, 10, 75,246,255,255, 23,233, 3, 14, 42,
|
||||
/* 0x0d30 */ 87,254,255, 23, 41, 21, 0, 81, 95, 1, 16,107, 8,121, 31, 83,
|
||||
/* 0x0d40 */ 232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,224,204,255, 84,
|
||||
/* 0x0d50 */ 108, 1, 64, 57,107, 5, 0,145,135, 33, 7, 42, 74,125, 1, 83,
|
||||
/* 0x0d60 */ 255, 0, 10,107, 99, 0, 0, 84,231, 0, 10, 75, 8, 1, 0, 50,
|
||||
/* 0x0d70 */ 41, 5, 0,113, 33,254,255, 84, 21,109, 28, 83, 14, 32, 25,145,
|
||||
/* 0x0d80 */ 143, 0,128, 82,243,254,255, 23, 41, 21, 73, 75,137,106, 45,120,
|
||||
/* 0x0d90 */ 233,107, 64,185,236, 3, 21, 42,231, 0, 8, 75,245, 3, 27, 42,
|
||||
/* 0x0da0 */ 72, 1, 8, 75,251,115, 64,185,236,107, 0,185,233,115, 0,185,
|
||||
/* 0x0db0 */ 212,255,255, 23, 2, 0,128, 82,227, 19,189,169,229, 27, 1,169,
|
||||
/* 0x0dc0 */ 254, 19, 0,249,232, 3, 1,170, 45, 64, 34,139,233, 3, 4,170,
|
||||
/* 0x0dd0 */ 142, 64, 37,139, 11, 16, 0,145, 6, 0, 64, 57, 5, 4, 64, 57,
|
||||
/* 0x0de0 */ 4, 8, 64, 57,174, 0, 6, 11, 7, 0,128, 18,229, 32,197, 26,
|
||||
/* 0x0df0 */ 229, 3, 37, 42,228, 32,196, 26,228, 3, 36, 42, 35, 0,128, 82,
|
||||
/* 0x0e00 */ 34, 0,128, 82, 33, 0,128, 82, 32, 0,128, 82, 6, 0,128, 82,
|
||||
/* 0x0e10 */ 230, 31, 0,185, 2, 96,128, 82,192,230,128, 82, 66, 32,206, 26,
|
||||
/* 0x0e20 */ 66, 0, 0, 11, 0,128,128,210,225, 3, 11,170, 0, 64, 0,170,
|
||||
/* 0x0e30 */ 0,128, 0,170, 32,132, 0,248, 66, 16, 0,113,204,255,255, 84,
|
||||
/* 0x0e40 */ 0, 21, 0,145,231, 0, 0,148, 31, 0, 8,235,193,255,255, 84,
|
||||
/* 0x0e50 */ 227, 67, 66,248,226, 19, 64,185, 36, 1, 3,203,128, 0, 2, 10,
|
||||
/* 0x0e60 */ 224, 47, 0,185, 0, 16, 6, 11, 97, 1, 0,145,225, 0, 0,148,
|
||||
/* 0x0e70 */ 129, 5, 0, 84,227, 23, 64,185,226, 27, 64,185, 99, 0, 4, 10,
|
||||
/* 0x0e80 */ 224,115, 64, 57, 99, 32,194, 26,226, 3, 2, 75, 66, 32, 0, 17,
|
||||
/* 0x0e90 */ 2, 36,194, 26, 99, 0, 2, 11,106,177, 57,145, 99, 4, 3, 11,
|
||||
/* 0x0ea0 */ 227, 3, 3, 42, 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113,
|
||||
/* 0x0eb0 */ 3, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 37,105, 99, 56,
|
||||
/* 0x0ec0 */ 165,120, 31, 83, 65, 1, 8,145,164, 0, 24, 18,227, 3, 4, 42,
|
||||
/* 0x0ed0 */ 33, 4, 3,139,201, 0, 0,148, 3, 0, 0, 18,127, 32, 68,107,
|
||||
/* 0x0ee0 */ 193, 0, 0, 84, 31, 0, 4,113,195,254,255, 84, 5, 0, 0, 20,
|
||||
/* 0x0ef0 */ 225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113,163,255,255, 84,
|
||||
/* 0x0f00 */ 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26,
|
||||
/* 0x0f10 */ 223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20,
|
||||
/* 0x0f20 */ 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185,
|
||||
/* 0x0f30 */ 226, 7, 64,185,227, 15, 0,185,226, 11, 0,185,239, 7, 0,185,
|
||||
/* 0x0f40 */ 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82,102, 48,134, 26,
|
||||
/* 0x0f50 */ 106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148,
|
||||
/* 0x0f60 */ 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11,
|
||||
/* 0x0f70 */ 160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113,
|
||||
/* 0x0f80 */ 102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203,
|
||||
/* 0x0f90 */ 159, 0, 15,107,131, 17, 0, 84,227,125, 64,147,227, 3, 3,203,
|
||||
/* 0x0fa0 */ 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145,
|
||||
/* 0x0fb0 */ 143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145,
|
||||
/* 0x0fc0 */ 139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185,
|
||||
/* 0x0fd0 */ 228, 15, 64,185,227, 15, 0,185,227, 7, 64,185,227, 11, 0,185,
|
||||
/* 0x0fe0 */ 239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113,
|
||||
/* 0x0ff0 */ 102, 1,128, 82,102, 48,134, 26,106,161, 41,145, 65, 1, 0,145,
|
||||
/* 0x1000 */ 125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145,
|
||||
/* 0x1010 */ 227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82,
|
||||
/* 0x1020 */ 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84,
|
||||
/* 0x1030 */ 227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82,
|
||||
/* 0x1040 */ 165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145,
|
||||
/* 0x1050 */ 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82,
|
||||
/* 0x1060 */ 225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107,163,255,255, 84,
|
||||
/* 0x1070 */ 229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113,
|
||||
/* 0x1080 */ 194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113,
|
||||
/* 0x1090 */ 101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139,165,128, 13,145,
|
||||
/* 0x10a0 */ 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148,
|
||||
/* 0x10b0 */ 3, 0, 4,107,163,255,255, 84,227, 47, 0,185,127, 16, 0,113,
|
||||
/* 0x10c0 */ 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18,
|
||||
/* 0x10d0 */ 239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26,
|
||||
/* 0x10e0 */ 106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139,
|
||||
/* 0x10f0 */ 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83,
|
||||
/* 0x1100 */ 131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113,
|
||||
/* 0x1110 */ 65,255,255, 84,106, 17, 25,145,239,109, 28, 83,132, 0,128, 82,
|
||||
/* 0x1120 */ 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148,
|
||||
/* 0x1130 */ 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83,
|
||||
/* 0x1140 */ 132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185,
|
||||
/* 0x1150 */ 239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17,
|
||||
/* 0x1160 */ 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84,227,125, 64,147,
|
||||
/* 0x1170 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235,
|
||||
/* 0x1180 */ 194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84,224,115, 0, 57,
|
||||
/* 0x1190 */ 63, 1, 14,235,227,229,255, 84, 13, 0, 0,148, 0, 0,128, 82,
|
||||
/* 0x11a0 */ 226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185,
|
||||
/* 0x11b0 */ 226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185,
|
||||
/* 0x11c0 */ 255,243, 0,145, 32, 0,128, 82,246,255,255, 23,227,124, 24, 83,
|
||||
/* 0x11d0 */ 195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84,
|
||||
/* 0x11e0 */ 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42,
|
||||
/* 0x11f0 */ 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83,
|
||||
/* 0x1200 */ 241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121,
|
||||
/* 0x1210 */ 226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84,
|
||||
/* 0x1220 */ 2, 0,129, 82,231, 3, 2, 42, 66, 0, 3, 75, 0, 0, 0, 58,
|
||||
/* 0x1230 */ 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75,
|
||||
/* 0x1240 */ 231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121,
|
||||
/* 0x1250 */ 32, 2, 95,214,195, 3, 64,185,193, 7, 64,185,194, 67, 33,139,
|
||||
/* 0x1260 */ 66, 48, 0,145,192, 67, 35,139, 0, 0, 3,145,228, 3, 1, 42,
|
||||
/* 0x1270 */ 73,204, 95,184,132, 16, 0, 81, 9,204, 31,184,164,255,255, 53,
|
||||
/* 0x1280 */ 196, 11, 64,185,222, 3, 2,145,227, 15, 31,184,227, 3, 0,145,
|
||||
/* 0x1290 */ 226, 3, 30,170,171, 32, 1,209,234, 3, 30,170,160, 0, 63,214,
|
||||
/* 0x12a0 */ 64, 1, 31,214,229, 3, 30,170,235,255,255,151,102,105,108,101,
|
||||
/* 0x12b0 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,108,105,
|
||||
/* 0x12c0 */ 116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99,
|
||||
/* 0x12d0 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32,
|
||||
/* 0x12e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32,
|
||||
/* 0x12f0 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1300 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1310 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32,
|
||||
/* 0x1320 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48,
|
||||
/* 0x1330 */ 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 48,
|
||||
/* 0x1340 */ 48, 48, 48, 48, 48, 52, 52, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1350 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x1360 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
|
||||
/* 0x1370 */ 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
|
||||
/* 0x1380 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69,
|
||||
/* 0x1390 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72,
|
||||
/* 0x13a0 */ 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x13b0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x13c0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x13d0 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 56, 52, 32,
|
||||
/* 0x13e0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
|
||||
/* 0x13f0 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 78, 82,
|
||||
/* 0x1400 */ 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x1410 */ 48, 49, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1420 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1430 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1440 */ 56, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
|
||||
/* 0x1450 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51,
|
||||
/* 0x1460 */ 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48,
|
||||
/* 0x1470 */ 48, 48, 48, 48, 49, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1480 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x1490 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
|
||||
/* 0x14a0 */ 48, 48, 49, 97, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
|
||||
/* 0x14b0 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
|
||||
/* 0x14c0 */ 32, 32, 52, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x14d0 */ 32, 32, 48, 48, 48, 48, 48, 48,102, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x14e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x14f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x1500 */ 48, 48, 48, 48, 48, 50, 99, 56, 32, 32, 50, 42, 42, 48, 32, 32,
|
||||
/* 0x1510 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
|
||||
/* 0x1520 */ 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32,
|
||||
/* 0x1530 */ 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
|
||||
/* 0x1540 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1550 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1560 */ 48, 32, 32, 48, 48, 48, 48, 48, 51, 98, 56, 32, 32, 50, 42, 42,
|
||||
/* 0x1570 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
|
||||
/* 0x1580 */ 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 69,
|
||||
/* 0x1590 */ 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,100, 48,
|
||||
/* 0x15a0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x15b0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x15c0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51, 98, 56, 32, 32,
|
||||
/* 0x15d0 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
|
||||
/* 0x15e0 */ 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
|
||||
/* 0x15f0 */ 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32,
|
||||
/* 0x1600 */ 32, 32, 48, 48, 48, 48, 48, 57, 51, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x1610 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x1620 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x1630 */ 48, 48, 48, 48, 48, 52, 56, 56, 32, 32, 50, 42, 42, 48, 32, 32,
|
||||
/* 0x1640 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
|
||||
/* 0x1650 */ 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49,
|
||||
/* 0x1660 */ 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 52, 57, 99, 32, 32, 48,
|
||||
/* 0x1670 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1680 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1690 */ 48, 32, 32, 48, 48, 48, 48, 48,100, 98, 56, 32, 32, 50, 42, 42,
|
||||
/* 0x16a0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65,
|
||||
/* 0x16b0 */ 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 68,
|
||||
/* 0x16c0 */ 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x16d0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x16e0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x16f0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, 53, 52, 32, 32,
|
||||
/* 0x1700 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32,
|
||||
/* 0x1710 */ 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48, 32, 77, 65, 67,
|
||||
/* 0x1720 */ 72, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x1730 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1740 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1750 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50, 53,
|
||||
/* 0x1760 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
|
||||
/* 0x1770 */ 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 49, 32,
|
||||
/* 0x1780 */ 77, 65, 67, 72, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 48, 48,
|
||||
/* 0x1790 */ 48, 48, 48, 48, 53, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x17a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x17b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x17c0 */ 49, 50, 53, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
|
||||
/* 0x17d0 */ 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83,
|
||||
/* 0x17e0 */ 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48,
|
||||
/* 0x17f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
|
||||
/* 0x1800 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48,
|
||||
/* 0x1810 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1820 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48,
|
||||
/* 0x1830 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
|
||||
/* 0x1840 */ 32, 32, 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 9,
|
||||
/* 0x1850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1860 */ 32, 77, 65, 67, 72, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x1870 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x1880 */ 32,100, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78, 88, 9, 48, 48,
|
||||
/* 0x1890 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 77,
|
||||
/* 0x18a0 */ 65, 67, 72, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x18b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
|
||||
/* 0x18c0 */ 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48,
|
||||
/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95,
|
||||
/* 0x18e0 */ 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x18f0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82,
|
||||
/* 0x1900 */ 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1910 */ 48, 48, 48, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x1920 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x1930 */ 32,100, 32, 32, 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1940 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68,
|
||||
/* 0x1950 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1960 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9,
|
||||
/* 0x1970 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1980 */ 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1990 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x19a0 */ 78, 82, 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65,
|
||||
/* 0x19c0 */ 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x19d0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65,
|
||||
/* 0x19e0 */ 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x19f0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70,
|
||||
/* 0x1a00 */ 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a10 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65,
|
||||
/* 0x1a20 */ 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a30 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
||||
/* 0x1a40 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a50 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65,
|
||||
/* 0x1a60 */ 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a70 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
||||
/* 0x1a80 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a90 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 77, 65, 67, 72,
|
||||
/* 0x1aa0 */ 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ab0 */ 48, 48, 48, 48, 48, 48, 32, 77, 65, 67, 72, 77, 65, 73, 78, 89,
|
||||
/* 0x1ac0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ad0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67, 72, 77, 65,
|
||||
/* 0x1ae0 */ 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1af0 */ 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48,
|
||||
/* 0x1b00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32,
|
||||
/* 0x1b10 */ 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48,
|
||||
/* 0x1b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, 56, 32,117, 99,108, 95,
|
||||
/* 0x1b30 */ 110,114,118, 50,101, 95,100,101, 99,111,109,112,114,101,115,115,
|
||||
/* 0x1b40 */ 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b50 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86,
|
||||
/* 0x1b60 */ 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b70 */ 49, 49, 99, 32,117, 99,108, 95,110,114,118, 50,100, 95,100,101,
|
||||
/* 0x1b80 */ 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48,
|
||||
/* 0x1b90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32,
|
||||
/* 0x1ba0 */ 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48,
|
||||
/* 0x1bb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 48, 32,117, 99,108, 95,
|
||||
/* 0x1bc0 */ 110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115,115,
|
||||
/* 0x1bd0 */ 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1be0 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77,
|
||||
/* 0x1bf0 */ 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,122,109, 97, 68,101, 99,
|
||||
/* 0x1c10 */ 111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c20 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 77, 65, 67,
|
||||
/* 0x1c30 */ 72, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c40 */ 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95,100,101, 99,111,
|
||||
/* 0x1c50 */ 109,112,114,101,115,115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73,
|
||||
/* 0x1c60 */ 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91,
|
||||
/* 0x1c70 */ 77, 65, 67, 72, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83,
|
||||
/* 0x1c80 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
|
||||
/* 0x1c90 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
|
||||
/* 0x1ca0 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1cb0 */ 48, 48, 48, 52, 48, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95,
|
||||
/* 0x1cc0 */ 67, 65, 76, 76, 50, 54, 32, 32, 77, 65, 67, 72, 77, 65, 73, 78,
|
||||
/* 0x1cd0 */ 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ce0 */ 48, 48, 53, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
|
||||
/* 0x1cf0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90,
|
||||
/* 0x1d00 */ 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69,
|
||||
/* 0x1d10 */ 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69,
|
||||
/* 0x1d20 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
|
||||
/* 0x1d30 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d40 */ 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67,
|
||||
/* 0x1d50 */ 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65, 95, 68, 69,
|
||||
/* 0x1d60 */ 67, 51, 48, 10
|
||||
};
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/* arm64-darwin.macho-fold.h
|
||||
created from arm64-darwin.macho-fold.bin, 1960 (0x7a8) bytes
|
||||
created from arm64-darwin.macho-fold.bin, 1920 (0x780) bytes
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
@ -31,14 +31,14 @@
|
||||
*/
|
||||
|
||||
|
||||
#define STUB_ARM64_DARWIN_MACHO_FOLD_SIZE 1960
|
||||
#define STUB_ARM64_DARWIN_MACHO_FOLD_ADLER32 0xe297dee4
|
||||
#define STUB_ARM64_DARWIN_MACHO_FOLD_CRC32 0xa720f497
|
||||
#define STUB_ARM64_DARWIN_MACHO_FOLD_SIZE 1920
|
||||
#define STUB_ARM64_DARWIN_MACHO_FOLD_ADLER32 0x2900c991
|
||||
#define STUB_ARM64_DARWIN_MACHO_FOLD_CRC32 0xcc0bdf2e
|
||||
|
||||
unsigned char stub_arm64_darwin_macho_fold[1960] = {
|
||||
unsigned char stub_arm64_darwin_macho_fold[1920] = {
|
||||
/* 0x0000 */ 97, 1, 64,249,231, 3, 4,145, 96, 65, 33,203, 3, 24, 64,185,
|
||||
/* 0x0010 */ 9, 0,132, 82,127, 0, 9,107, 99,128,137, 26,255, 67, 35,203,
|
||||
/* 0x0020 */ 226, 3, 0,145,101, 2, 0, 16, 54, 1, 0,148, 30,120, 64,249,
|
||||
/* 0x0020 */ 226, 3, 0,145,101, 2, 0, 16, 44, 1, 0,148, 30,120, 64,249,
|
||||
/* 0x0030 */ 252,119, 78,169,250,111, 77,169,248,103, 76,169,246, 95, 75,169,
|
||||
/* 0x0040 */ 244, 87, 74,169,242, 79, 73,169,240, 71, 72,169,238, 63, 71,169,
|
||||
/* 0x0050 */ 236, 55, 70,169,234, 47, 69,169,232, 39, 68,169,230, 31, 67,169,
|
||||
@ -48,115 +48,112 @@ unsigned char stub_arm64_darwin_macho_fold[1960] = {
|
||||
/* 0x0090 */ 67,124, 26, 83,127,148, 0,113,193, 0, 0, 84, 67, 20, 6, 18,
|
||||
/* 0x00a0 */ 66, 0, 1, 75, 66,100, 0, 18, 66, 0, 3, 42, 2, 88, 33,184,
|
||||
/* 0x00b0 */ 63, 0, 0,113,161,254,255, 84,192, 3, 95,214,192, 3, 95,214,
|
||||
/* 0x00c0 */ 40, 0,128, 82, 0, 16, 32,212,192, 3, 95,214,104, 0,128, 82,
|
||||
/* 0x00d0 */ 0, 16, 32,212,192, 3, 95,214,192, 3, 95,214,136, 0,128, 82,
|
||||
/* 0x00e0 */ 0, 16, 32,212,192, 3, 95,214,192, 3, 95,214,168, 0,128, 82,
|
||||
/* 0x00f0 */ 0, 16, 32,212,192, 3, 95,214,192, 3, 95,214,200, 0,128, 82,
|
||||
/* 0x0100 */ 0, 16, 32,212,192, 3, 95,214,192, 3, 95,214,168, 5,128, 82,
|
||||
/* 0x0110 */ 0, 16, 32,212,192, 3, 95,214,192, 3, 95,214, 40, 9,128, 82,
|
||||
/* 0x0120 */ 0, 16, 32,212,192, 3, 95,214,192, 3, 95,214, 72, 9,128, 82,
|
||||
/* 0x0130 */ 0, 16, 32,212,192, 3, 95,214,192, 3, 95,214,168, 24,128, 82,
|
||||
/* 0x0140 */ 0, 16, 32,212,192, 3, 95,214,192, 3, 95,214, 40, 19,128, 82,
|
||||
/* 0x0150 */ 0, 16, 32,212,192, 3, 95,214,192, 3, 95,214,233, 31,128, 82,
|
||||
/* 0x0160 */ 41, 29, 16, 50, 6, 0, 0, 20, 2, 0, 64,185, 35, 1, 2, 10,
|
||||
/* 0x0170 */ 34, 97,194, 10, 66, 32,195, 42, 2, 68, 0,184, 33, 16, 0,113,
|
||||
/* 0x0180 */ 74,255,255, 84,192, 3, 95,214,253,123,191,169, 3, 0,128,210,
|
||||
/* 0x0190 */ 253, 3, 0,145, 5, 0, 64,249, 4, 4, 64,249,191, 0, 2,235,
|
||||
/* 0x01a0 */ 98, 0, 0, 84,224, 15,128, 82,198,255,255,151,127, 0, 2,235,
|
||||
/* 0x01b0 */ 160, 0, 0, 84,133,104, 99, 56, 37,104, 35, 56, 99, 4, 0,145,
|
||||
/* 0x01c0 */ 251,255,255, 23, 1, 4, 64,249, 33, 0, 3,139, 1, 4, 0,249,
|
||||
/* 0x01d0 */ 1, 0, 64,249, 35, 0, 3,203, 3, 0, 0,249,253,123,193,168,
|
||||
/* 0x01e0 */ 192, 3, 95,214,253,123,187,169,253, 3, 0,145,243, 83, 1,169,
|
||||
/* 0x01f0 */ 245, 91, 2,169,244, 3, 0,170,243, 3, 1,170,246, 3, 2,170,
|
||||
/* 0x0200 */ 245, 3, 3,170, 96, 2, 64,249,224, 7, 0,180,224, 3, 20,170,
|
||||
/* 0x0210 */ 130, 1,128,210,161, 3, 1,145,220,255,255,151,160, 67, 64,185,
|
||||
/* 0x0220 */ 162, 71, 64,185, 0, 1, 0, 53,160, 10,138, 82, 0, 43,164,114,
|
||||
/* 0x0230 */ 95, 0, 0,107,225, 0, 0, 84,128, 2, 64,249, 64, 6, 0,180,
|
||||
/* 0x0240 */ 4, 0, 0, 20, 98, 0, 0, 52, 95, 0, 0,107,105, 0, 0, 84,
|
||||
/* 0x0250 */ 224, 15,128, 82,155,255,255,151, 97, 2, 64,249, 63, 64, 32,235,
|
||||
/* 0x0260 */ 131,255,255, 84, 95, 0, 0,107, 98, 3, 0, 84,160, 63, 0,185,
|
||||
/* 0x0270 */ 225, 3, 2, 42,128, 6, 64,249,163,243, 0,145, 98, 6, 64,249,
|
||||
/* 0x0280 */ 164, 35, 65, 57,192, 2, 63,214, 64,254,255, 53,161, 63, 64,185,
|
||||
/* 0x0290 */ 160, 67, 64,185, 63, 0, 0,107,193,253,255, 84,163, 39, 65, 57,
|
||||
/* 0x02a0 */ 181, 0, 0,180,131, 0, 0, 52, 96, 6, 64,249,162, 43, 65, 57,
|
||||
/* 0x02b0 */ 160, 2, 63,214,163, 71, 64,185,129, 6, 64,249,128, 2, 64,249,
|
||||
/* 0x02c0 */ 33, 0, 3,139,129, 6, 0,249, 0, 0, 3,203,128, 2, 0,249,
|
||||
/* 0x02d0 */ 5, 0, 0, 20, 97, 6, 64,249,224, 3, 20,170,226, 3, 2, 42,
|
||||
/* 0x02e0 */ 170,255,255,151,163, 67, 64,185, 97, 6, 64,249, 96, 2, 64,249,
|
||||
/* 0x02f0 */ 33, 0, 3,139, 97, 6, 0,249, 0, 0, 3,203, 96, 2, 0,249,
|
||||
/* 0x0300 */ 193,255,255, 23,243, 83, 65,169,245, 91, 66,169,253,123,197,168,
|
||||
/* 0x0310 */ 192, 3, 95,214,253,123,182,169,253, 3, 0,145,232, 39, 6,109,
|
||||
/* 0x0320 */ 234, 59, 0,253, 40, 0, 39, 30,169, 0,103,158,202, 0,103,158,
|
||||
/* 0x0330 */ 247, 99, 3,169,249,107, 4,169,243, 83, 1,169,245, 91, 2,169,
|
||||
/* 0x0340 */ 251,115, 5,169,249, 3, 0,170,245, 3, 2,170,250, 3, 3, 42,
|
||||
/* 0x0350 */ 252, 3, 4,170, 20,112, 0,145, 24, 0,128, 82, 23, 0,128,210,
|
||||
/* 0x0360 */ 32, 19, 64,185, 31, 3, 0,107,130, 11, 0, 84,128, 2, 64,185,
|
||||
/* 0x0370 */ 31,100, 0,113, 33, 9, 0, 84,150, 18, 64,249,246, 8, 0,180,
|
||||
/* 0x0380 */ 147, 14, 64,249,128, 26, 64,249,179, 79, 0,249,118, 2, 22,139,
|
||||
/* 0x0390 */ 123,206,116,146,115, 46, 64,146,160, 75, 0,249,115, 2, 0,171,
|
||||
/* 0x03a0 */ 96, 9, 0, 84, 31, 0, 31,235, 67, 2,130, 82, 68, 19,159, 90,
|
||||
/* 0x03b0 */ 181, 0, 0,181, 31, 0, 31,235, 65, 2,128, 82, 64, 2,130, 82,
|
||||
/* 0x03c0 */ 3, 0,129, 26, 6, 1, 38, 30,133, 22, 64,249,224, 3, 27,170,
|
||||
/* 0x03d0 */ 225, 3, 19,170, 98, 0,128, 82,197, 0, 5, 11, 88,255,255,151,
|
||||
/* 0x03e0 */ 127, 3, 0,235, 96, 0, 0, 84,224, 15,128, 82, 53,255,255,151,
|
||||
/* 0x03f0 */ 117, 1, 0,180,128, 26, 64,249, 32, 1, 0,180,128, 22, 64,249,
|
||||
/* 0x0400 */ 64, 0, 0,181,155, 3, 0,249, 34, 1,102,158,224, 3, 21,170,
|
||||
/* 0x0410 */ 67, 1,102,158,161, 67, 2,145,115,255,255,151,227, 3, 19,203,
|
||||
/* 0x0420 */ 99, 44, 64,242,224, 0, 0, 84, 97, 3, 19,139, 0, 0,128,210,
|
||||
/* 0x0430 */ 63,104, 32, 56, 0, 4, 0,145, 31, 0, 3,235,161,255,255, 84,
|
||||
/* 0x0440 */ 19, 1, 0,180,130, 62, 64,185,224, 3, 27,170,225, 3, 19,170,
|
||||
/* 0x0450 */ 163, 71, 0,249, 54,255,255,151,163, 71, 64,249, 96,252,255, 53,
|
||||
/* 0x0460 */ 115, 0, 19,139,115, 3, 19,139,127, 2, 22,235,130, 2, 0, 84,
|
||||
/* 0x0470 */ 130, 62, 64,185,224, 3, 19,170,193, 2, 19,203, 67, 2,130, 82,
|
||||
/* 0x0480 */ 4, 0,128, 18, 5, 0,128, 82, 45,255,255,151,127, 2, 0,235,
|
||||
/* 0x0490 */ 96, 1, 0, 84,213,255,255, 23, 0, 16, 0, 81, 31, 4, 0,113,
|
||||
/* 0x04a0 */ 232, 0, 0, 84,130, 6, 64,249, 33, 0,128,210,129, 8,192,242,
|
||||
/* 0x04b0 */ 128, 66, 0,145, 95, 0, 1,235,247, 18,128,154,128, 6, 64,185,
|
||||
/* 0x04c0 */ 24, 7, 0, 17,148, 2, 0,139,166,255,255, 23,227, 3, 21,170,
|
||||
/* 0x04d0 */ 53,249,255,181,227,255,255, 23,224, 3, 23,170,232, 39, 70,109,
|
||||
/* 0x04e0 */ 243, 83, 65,169,245, 91, 66,169,247, 99, 67,169,249,107, 68,169,
|
||||
/* 0x04f0 */ 251,115, 69,169,234, 59, 64,253,253,123,202,168,192, 3, 95,214,
|
||||
/* 0x0500 */ 253,123,184,169,253, 3, 0,145,243, 83, 1,169,244, 3, 4,170,
|
||||
/* 0x0510 */ 243, 3, 2,170,161, 39, 0,249, 1, 96, 0,145,161, 47, 0,249,
|
||||
/* 0x0520 */ 161, 39, 64,249, 0, 24, 64,185, 33, 96, 0,209,161, 43, 0,249,
|
||||
/* 0x0530 */ 160, 51, 0,249,160, 7, 69,169,160, 7, 7,169,247, 99, 3,169,
|
||||
/* 0x0540 */ 162, 55, 0,249,160, 67, 1,145,161,131, 1,145,226, 3, 20,170,
|
||||
/* 0x0550 */ 247, 3, 3,170, 3, 0,128,210,245, 91, 2,169,166, 35, 0,249,
|
||||
/* 0x0560 */ 245, 3, 5,170, 32,255,255,151,164, 35, 64,249, 1, 0,128, 82,
|
||||
/* 0x0570 */ 230, 3, 21,170,224, 3, 19,170,162,195, 1,145, 3, 0,128, 18,
|
||||
/* 0x0580 */ 229, 3, 20,170,100,255,255,151,245, 3, 0,170, 96, 18, 64,185,
|
||||
/* 0x0590 */ 97,114, 0,145, 4, 0,128, 82,159, 0, 0,107,160, 7, 0, 84,
|
||||
/* 0x05a0 */ 34, 0, 64,185, 95, 56, 0,113,193, 6, 0, 84, 32, 4, 64,249,
|
||||
/* 0x05b0 */ 22, 0,128, 82,152, 2,128, 82, 32, 0, 0,139, 1, 0,128, 82,
|
||||
/* 0x05c0 */ 226, 3, 1, 42,202,254,255,151,244, 3, 0, 42,212, 2,248, 54,
|
||||
/* 0x05d0 */ 224, 15,128, 82,187,254,255,151, 97, 2, 64,185,192, 87,151, 82,
|
||||
/* 0x05e0 */ 192, 95,185,114, 63, 0, 0,107, 65, 3, 0, 84, 97, 30, 64, 57,
|
||||
/* 0x05f0 */ 224, 3, 19,170,117, 34, 0,145, 33,124, 24, 27, 33, 32, 0, 17,
|
||||
/* 0x0600 */ 215,254,255,151, 97, 6, 64,185, 0, 0,128, 82, 31, 0, 1,107,
|
||||
/* 0x0610 */ 0, 2, 0, 84,162, 2, 64,185, 95, 48, 0,113, 65, 1, 0, 84,
|
||||
/* 0x0620 */ 182, 10, 64,185,224, 3, 20, 42,225, 3, 19,170,226, 3, 23,170,
|
||||
/* 0x0630 */ 227, 3, 22, 42,198,254,255,151,255, 2, 0,235,224,252,255, 84,
|
||||
/* 0x0640 */ 228,255,255, 23, 0, 4, 0, 17,181, 82, 0,145,240,255,255, 23,
|
||||
/* 0x0650 */ 2, 0,128,210,224, 3, 19,170,225, 3, 22, 42,227, 3, 20, 42,
|
||||
/* 0x0660 */ 228, 3, 2,170,229, 3, 2,170,230, 3, 2,170, 42,255,255,151,
|
||||
/* 0x0670 */ 245, 3, 0,170,224, 3, 20, 42,161,254,255,151, 5, 0, 0, 20,
|
||||
/* 0x0680 */ 34, 4, 64,185,132, 4, 0, 17, 33, 0, 2,139,195,255,255, 23,
|
||||
/* 0x0690 */ 224, 3, 21,170,243, 83, 65,169,245, 91, 66,169,247, 99, 67,169,
|
||||
/* 0x06a0 */ 253,123,200,168,192, 3, 95,214, 20, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x06b0 */ 1,122, 82, 0, 4,120, 30, 1, 27, 12, 31, 0, 0, 0, 0, 0,
|
||||
/* 0x06c0 */ 36, 0, 0, 0, 28, 0, 0, 0,192,250,255,255, 92, 0, 0, 0,
|
||||
/* 0x06d0 */ 0, 65, 14, 16,157, 2,158, 1, 66, 13, 29, 83,222,221, 12, 31,
|
||||
/* 0x06e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 44, 0, 0, 0, 68, 0, 0, 0,
|
||||
/* 0x06f0 */ 244,250,255,255, 48, 1, 0, 0, 0, 65, 14, 80,157, 10,158, 9,
|
||||
/* 0x0700 */ 65, 13, 29, 66,147, 8,148, 7,149, 6,150, 5, 2, 71,222,221,
|
||||
/* 0x0710 */ 214,213,212,211, 12, 31, 0, 0, 84, 0, 0, 0,116, 0, 0, 0,
|
||||
/* 0x0720 */ 244,251,255,255,236, 1, 0, 0, 0, 65, 14,160, 1,157, 20,158,
|
||||
/* 0x0730 */ 19, 65, 13, 29, 66, 5, 72, 8, 5, 73, 7, 5, 74, 6, 72,151,
|
||||
/* 0x0740 */ 14,152, 13,153, 12,154, 11,147, 18,148, 17,149, 16,150, 15,155,
|
||||
/* 0x0750 */ 10,156, 9, 2,110,222,221, 6, 74, 6, 73, 6, 72,220,219,218,
|
||||
/* 0x0760 */ 217,216,215,214,213,212,211, 12, 31, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0770 */ 52, 0, 0, 0,204, 0, 0, 0,136,253,255,255,168, 1, 0, 0,
|
||||
/* 0x0780 */ 0, 65, 14,128, 1,157, 16,158, 15, 65, 13, 29, 65,147, 14,148,
|
||||
/* 0x0790 */ 13, 81,151, 10,152, 9, 67,149, 12,150, 11, 2, 82,222,221,216,
|
||||
/* 0x07a0 */ 215,214,213,212,211, 12, 31, 0
|
||||
/* 0x00c0 */ 40, 0,128, 82, 1, 0, 0,212,104, 0,128, 82, 1, 0, 0,212,
|
||||
/* 0x00d0 */ 192, 3, 95,214,136, 0,128, 82, 1, 0, 0,212,192, 3, 95,214,
|
||||
/* 0x00e0 */ 168, 0,128, 82, 1, 0, 0,212,192, 3, 95,214,200, 0,128, 82,
|
||||
/* 0x00f0 */ 1, 0, 0,212,192, 3, 95,214,168, 5,128, 82, 1, 0, 0,212,
|
||||
/* 0x0100 */ 192, 3, 95,214, 40, 9,128, 82, 1, 0, 0,212,192, 3, 95,214,
|
||||
/* 0x0110 */ 72, 9,128, 82, 1, 0, 0,212,192, 3, 95,214,168, 24,128, 82,
|
||||
/* 0x0120 */ 1, 0, 0,212,192, 3, 95,214, 40, 19,128, 82, 1, 0, 0,212,
|
||||
/* 0x0130 */ 192, 3, 95,214,233, 31,128, 82, 41, 29, 16, 50, 6, 0, 0, 20,
|
||||
/* 0x0140 */ 2, 0, 64,185, 35, 1, 2, 10, 34, 97,194, 10, 66, 32,195, 42,
|
||||
/* 0x0150 */ 2, 68, 0,184, 33, 16, 0,113, 74,255,255, 84,192, 3, 95,214,
|
||||
/* 0x0160 */ 253,123,191,169, 3, 0,128,210,253, 3, 0,145, 5, 0, 64,249,
|
||||
/* 0x0170 */ 4, 4, 64,249,191, 0, 2,235, 98, 0, 0, 84,224, 15,128, 82,
|
||||
/* 0x0180 */ 208,255,255,151,127, 0, 2,235,160, 0, 0, 84,133,104, 99, 56,
|
||||
/* 0x0190 */ 37,104, 35, 56, 99, 4, 0,145,251,255,255, 23, 1, 4, 64,249,
|
||||
/* 0x01a0 */ 33, 0, 3,139, 1, 4, 0,249, 1, 0, 64,249, 35, 0, 3,203,
|
||||
/* 0x01b0 */ 3, 0, 0,249,253,123,193,168,192, 3, 95,214,253,123,187,169,
|
||||
/* 0x01c0 */ 253, 3, 0,145,243, 83, 1,169,245, 91, 2,169,244, 3, 0,170,
|
||||
/* 0x01d0 */ 243, 3, 1,170,246, 3, 2,170,245, 3, 3,170, 96, 2, 64,249,
|
||||
/* 0x01e0 */ 224, 7, 0,180,224, 3, 20,170,130, 1,128,210,161, 3, 1,145,
|
||||
/* 0x01f0 */ 220,255,255,151,160, 67, 64,185,162, 71, 64,185, 0, 1, 0, 53,
|
||||
/* 0x0200 */ 160, 10,138, 82, 0, 43,164,114, 95, 0, 0,107,225, 0, 0, 84,
|
||||
/* 0x0210 */ 128, 2, 64,249, 64, 6, 0,180, 4, 0, 0, 20, 98, 0, 0, 52,
|
||||
/* 0x0220 */ 95, 0, 0,107,105, 0, 0, 84,224, 15,128, 82,165,255,255,151,
|
||||
/* 0x0230 */ 97, 2, 64,249, 63, 64, 32,235,131,255,255, 84, 95, 0, 0,107,
|
||||
/* 0x0240 */ 98, 3, 0, 84,160, 63, 0,185,225, 3, 2, 42,128, 6, 64,249,
|
||||
/* 0x0250 */ 163,243, 0,145, 98, 6, 64,249,164, 35, 65, 57,192, 2, 63,214,
|
||||
/* 0x0260 */ 64,254,255, 53,161, 63, 64,185,160, 67, 64,185, 63, 0, 0,107,
|
||||
/* 0x0270 */ 193,253,255, 84,163, 39, 65, 57,181, 0, 0,180,131, 0, 0, 52,
|
||||
/* 0x0280 */ 96, 6, 64,249,162, 43, 65, 57,160, 2, 63,214,163, 71, 64,185,
|
||||
/* 0x0290 */ 129, 6, 64,249,128, 2, 64,249, 33, 0, 3,139,129, 6, 0,249,
|
||||
/* 0x02a0 */ 0, 0, 3,203,128, 2, 0,249, 5, 0, 0, 20, 97, 6, 64,249,
|
||||
/* 0x02b0 */ 224, 3, 20,170,226, 3, 2, 42,170,255,255,151,163, 67, 64,185,
|
||||
/* 0x02c0 */ 97, 6, 64,249, 96, 2, 64,249, 33, 0, 3,139, 97, 6, 0,249,
|
||||
/* 0x02d0 */ 0, 0, 3,203, 96, 2, 0,249,193,255,255, 23,243, 83, 65,169,
|
||||
/* 0x02e0 */ 245, 91, 66,169,253,123,197,168,192, 3, 95,214,253,123,182,169,
|
||||
/* 0x02f0 */ 253, 3, 0,145,232, 39, 6,109,234, 59, 0,253, 40, 0, 39, 30,
|
||||
/* 0x0300 */ 169, 0,103,158,202, 0,103,158,247, 99, 3,169,249,107, 4,169,
|
||||
/* 0x0310 */ 243, 83, 1,169,245, 91, 2,169,251,115, 5,169,249, 3, 0,170,
|
||||
/* 0x0320 */ 245, 3, 2,170,250, 3, 3, 42,252, 3, 4,170, 20,112, 0,145,
|
||||
/* 0x0330 */ 24, 0,128, 82, 23, 0,128,210, 32, 19, 64,185, 31, 3, 0,107,
|
||||
/* 0x0340 */ 130, 11, 0, 84,128, 2, 64,185, 31,100, 0,113, 33, 9, 0, 84,
|
||||
/* 0x0350 */ 150, 18, 64,249,246, 8, 0,180,147, 14, 64,249,128, 26, 64,249,
|
||||
/* 0x0360 */ 179, 79, 0,249,118, 2, 22,139,123,206,116,146,115, 46, 64,146,
|
||||
/* 0x0370 */ 160, 75, 0,249,115, 2, 0,171, 96, 9, 0, 84, 31, 0, 31,235,
|
||||
/* 0x0380 */ 67, 2,130, 82, 68, 19,159, 90,181, 0, 0,181, 31, 0, 31,235,
|
||||
/* 0x0390 */ 65, 2,128, 82, 64, 2,130, 82, 3, 0,129, 26, 6, 1, 38, 30,
|
||||
/* 0x03a0 */ 133, 22, 64,249,224, 3, 27,170,225, 3, 19,170, 98, 0,128, 82,
|
||||
/* 0x03b0 */ 197, 0, 5, 11, 90,255,255,151,127, 3, 0,235, 96, 0, 0, 84,
|
||||
/* 0x03c0 */ 224, 15,128, 82, 63,255,255,151,117, 1, 0,180,128, 26, 64,249,
|
||||
/* 0x03d0 */ 32, 1, 0,180,128, 22, 64,249, 64, 0, 0,181,155, 3, 0,249,
|
||||
/* 0x03e0 */ 34, 1,102,158,224, 3, 21,170, 67, 1,102,158,161, 67, 2,145,
|
||||
/* 0x03f0 */ 115,255,255,151,227, 3, 19,203, 99, 44, 64,242,224, 0, 0, 84,
|
||||
/* 0x0400 */ 97, 3, 19,139, 0, 0,128,210, 63,104, 32, 56, 0, 4, 0,145,
|
||||
/* 0x0410 */ 31, 0, 3,235,161,255,255, 84, 19, 1, 0,180,130, 62, 64,185,
|
||||
/* 0x0420 */ 224, 3, 27,170,225, 3, 19,170,163, 71, 0,249, 57,255,255,151,
|
||||
/* 0x0430 */ 163, 71, 64,249, 96,252,255, 53,115, 0, 19,139,115, 3, 19,139,
|
||||
/* 0x0440 */ 127, 2, 22,235,130, 2, 0, 84,130, 62, 64,185,224, 3, 19,170,
|
||||
/* 0x0450 */ 193, 2, 19,203, 67, 2,130, 82, 4, 0,128, 18, 5, 0,128, 82,
|
||||
/* 0x0460 */ 47,255,255,151,127, 2, 0,235, 96, 1, 0, 84,213,255,255, 23,
|
||||
/* 0x0470 */ 0, 16, 0, 81, 31, 4, 0,113,232, 0, 0, 84,130, 6, 64,249,
|
||||
/* 0x0480 */ 33, 0,128,210,129, 8,192,242,128, 66, 0,145, 95, 0, 1,235,
|
||||
/* 0x0490 */ 247, 18,128,154,128, 6, 64,185, 24, 7, 0, 17,148, 2, 0,139,
|
||||
/* 0x04a0 */ 166,255,255, 23,227, 3, 21,170, 53,249,255,181,227,255,255, 23,
|
||||
/* 0x04b0 */ 224, 3, 23,170,232, 39, 70,109,243, 83, 65,169,245, 91, 66,169,
|
||||
/* 0x04c0 */ 247, 99, 67,169,249,107, 68,169,251,115, 69,169,234, 59, 64,253,
|
||||
/* 0x04d0 */ 253,123,202,168,192, 3, 95,214,253,123,184,169,253, 3, 0,145,
|
||||
/* 0x04e0 */ 243, 83, 1,169,244, 3, 4,170,243, 3, 2,170,161, 39, 0,249,
|
||||
/* 0x04f0 */ 1, 96, 0,145,161, 47, 0,249,161, 39, 64,249, 0, 24, 64,185,
|
||||
/* 0x0500 */ 33, 96, 0,209,161, 43, 0,249,160, 51, 0,249,160, 7, 69,169,
|
||||
/* 0x0510 */ 160, 7, 7,169,247, 99, 3,169,162, 55, 0,249,160, 67, 1,145,
|
||||
/* 0x0520 */ 161,131, 1,145,226, 3, 20,170,247, 3, 3,170, 3, 0,128,210,
|
||||
/* 0x0530 */ 245, 91, 2,169,166, 35, 0,249,245, 3, 5,170, 32,255,255,151,
|
||||
/* 0x0540 */ 164, 35, 64,249, 1, 0,128, 82,230, 3, 21,170,224, 3, 19,170,
|
||||
/* 0x0550 */ 162,195, 1,145, 3, 0,128, 18,229, 3, 20,170,100,255,255,151,
|
||||
/* 0x0560 */ 245, 3, 0,170, 96, 18, 64,185, 97,114, 0,145, 4, 0,128, 82,
|
||||
/* 0x0570 */ 159, 0, 0,107,160, 7, 0, 84, 34, 0, 64,185, 95, 56, 0,113,
|
||||
/* 0x0580 */ 193, 6, 0, 84, 32, 4, 64,249, 22, 0,128, 82,152, 2,128, 82,
|
||||
/* 0x0590 */ 32, 0, 0,139, 1, 0,128, 82,226, 3, 1, 42,209,254,255,151,
|
||||
/* 0x05a0 */ 244, 3, 0, 42,212, 2,248, 54,224, 15,128, 82,197,254,255,151,
|
||||
/* 0x05b0 */ 97, 2, 64,185,192, 87,151, 82,192, 95,185,114, 63, 0, 0,107,
|
||||
/* 0x05c0 */ 65, 3, 0, 84, 97, 30, 64, 57,224, 3, 19,170,117, 34, 0,145,
|
||||
/* 0x05d0 */ 33,124, 24, 27, 33, 32, 0, 17,215,254,255,151, 97, 6, 64,185,
|
||||
/* 0x05e0 */ 0, 0,128, 82, 31, 0, 1,107, 0, 2, 0, 84,162, 2, 64,185,
|
||||
/* 0x05f0 */ 95, 48, 0,113, 65, 1, 0, 84,182, 10, 64,185,224, 3, 20, 42,
|
||||
/* 0x0600 */ 225, 3, 19,170,226, 3, 23,170,227, 3, 22, 42,199,254,255,151,
|
||||
/* 0x0610 */ 255, 2, 0,235,224,252,255, 84,228,255,255, 23, 0, 4, 0, 17,
|
||||
/* 0x0620 */ 181, 82, 0,145,240,255,255, 23, 2, 0,128,210,224, 3, 19,170,
|
||||
/* 0x0630 */ 225, 3, 22, 42,227, 3, 20, 42,228, 3, 2,170,229, 3, 2,170,
|
||||
/* 0x0640 */ 230, 3, 2,170, 42,255,255,151,245, 3, 0,170,224, 3, 20, 42,
|
||||
/* 0x0650 */ 167,254,255,151, 5, 0, 0, 20, 34, 4, 64,185,132, 4, 0, 17,
|
||||
/* 0x0660 */ 33, 0, 2,139,195,255,255, 23,224, 3, 21,170,243, 83, 65,169,
|
||||
/* 0x0670 */ 245, 91, 66,169,247, 99, 67,169,253,123,200,168,192, 3, 95,214,
|
||||
/* 0x0680 */ 20, 0, 0, 0, 0, 0, 0, 0, 1,122, 82, 0, 4,120, 30, 1,
|
||||
/* 0x0690 */ 27, 12, 31, 0, 0, 0, 0, 0, 36, 0, 0, 0, 28, 0, 0, 0,
|
||||
/* 0x06a0 */ 192,250,255,255, 92, 0, 0, 0, 0, 65, 14, 16,157, 2,158, 1,
|
||||
/* 0x06b0 */ 66, 13, 29, 83,222,221, 12, 31, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x06c0 */ 44, 0, 0, 0, 68, 0, 0, 0,244,250,255,255, 48, 1, 0, 0,
|
||||
/* 0x06d0 */ 0, 65, 14, 80,157, 10,158, 9, 65, 13, 29, 66,147, 8,148, 7,
|
||||
/* 0x06e0 */ 149, 6,150, 5, 2, 71,222,221,214,213,212,211, 12, 31, 0, 0,
|
||||
/* 0x06f0 */ 84, 0, 0, 0,116, 0, 0, 0,244,251,255,255,236, 1, 0, 0,
|
||||
/* 0x0700 */ 0, 65, 14,160, 1,157, 20,158, 19, 65, 13, 29, 66, 5, 72, 8,
|
||||
/* 0x0710 */ 5, 73, 7, 5, 74, 6, 72,151, 14,152, 13,153, 12,154, 11,147,
|
||||
/* 0x0720 */ 18,148, 17,149, 16,150, 15,155, 10,156, 9, 2,110,222,221, 6,
|
||||
/* 0x0730 */ 74, 6, 73, 6, 72,220,219,218,217,216,215,214,213,212,211, 12,
|
||||
/* 0x0740 */ 31, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,204, 0, 0, 0,
|
||||
/* 0x0750 */ 136,253,255,255,168, 1, 0, 0, 0, 65, 14,128, 1,157, 16,158,
|
||||
/* 0x0760 */ 15, 65, 13, 29, 65,147, 14,148, 13, 81,151, 10,152, 9, 67,149,
|
||||
/* 0x0770 */ 12,150, 11, 2, 82,222,221,216,215,214,213,212,211, 12, 31, 0
|
||||
};
|
||||
|
||||
578
src/stub/arm64-linux.elf-entry.h
Normal file
578
src/stub/arm64-linux.elf-entry.h
Normal file
@ -0,0 +1,578 @@
|
||||
/* arm64-linux.elf-entry.h
|
||||
created from arm64-linux.elf-entry.bin, 8615 (0x21a7) bytes
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996-2017 Laszlo Molnar
|
||||
Copyright (C) 2000-2017 John F. Reiser
|
||||
All Rights Reserved.
|
||||
|
||||
UPX and the UCL library are free software; you can redistribute them
|
||||
and/or modify them under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
<markus@oberhumer.com> <ezerotven+github@gmail.com>
|
||||
|
||||
John F. Reiser
|
||||
<jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 8615
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0xdca24898
|
||||
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0xf3ff5dfd
|
||||
|
||||
unsigned char stub_arm64_linux_elf_entry[8615] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0,136, 23, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
|
||||
/* 0x0040 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0050 */ 0, 0, 0, 0, 76,255,255, 16,129, 41, 64, 41,139, 53, 65, 41,
|
||||
/* 0x0060 */ 107, 1, 12,139, 74, 1, 12,139, 99, 1, 64,185,137, 1, 1,203,
|
||||
/* 0x0070 */ 33, 0, 3, 11,128, 9, 64,249, 33, 4, 64,145,224, 7,190,169,
|
||||
/* 0x0080 */ 226, 55, 1,169,226, 0,128, 82,163, 1, 28, 50, 5, 0,128,210,
|
||||
/* 0x0090 */ 4, 0,128, 18,200, 27,128, 82, 1, 0, 0,212, 31, 4, 64,177,
|
||||
/* 0x00a0 */ 2, 0, 0, 84, 5, 0, 1,145, 33, 9,193,168, 35, 17,193,168,
|
||||
/* 0x00b0 */ 1, 8,129,168, 3, 16,129,168, 33, 9,193,168, 35, 17,193,168,
|
||||
/* 0x00c0 */ 1, 8,129,168, 3, 16,129,168, 63, 1, 10,235, 37, 1, 1,209,
|
||||
/* 0x00d0 */ 163,254,255, 84, 4, 0, 9,203,225, 35, 64,185, 15, 2, 0, 16,
|
||||
/* 0x00e0 */ 1, 68, 0,184,254, 3, 0,170,239, 1, 4,139,137, 1, 64,185,
|
||||
/* 0x00f0 */ 41, 33, 3, 81,138, 1, 9,203, 74, 1, 4,139,100, 9, 64,185,
|
||||
/* 0x0100 */ 99, 1, 64,185, 96, 49, 0,145, 97, 5, 64,185,226, 3, 30,170,
|
||||
/* 0x0110 */ 227, 19, 0,185,227, 67, 0,145,224, 1, 31,214,254, 15, 31,248,
|
||||
/* 0x0120 */ 226, 15,191,169, 7, 64, 33,139, 5, 0,128, 18, 4, 0,176, 82,
|
||||
/* 0x0130 */ 24, 0, 0, 20,227, 19,193,168, 0, 0, 7,203, 66, 0, 3,203,
|
||||
/* 0x0140 */ 130, 0, 0,185,228, 3, 0,170,224, 3, 3,170, 97, 0, 2,139,
|
||||
/* 0x0150 */ 32,123, 11,213, 32,117, 11,213, 0, 0, 1,145, 31, 0, 1,235,
|
||||
/* 0x0160 */ 131,255,255, 84,224, 3, 4,170,254, 7, 65,248,192, 3, 95,214,
|
||||
/* 0x0170 */ 132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214, 4, 68, 64,184,
|
||||
/* 0x0180 */ 132, 0, 4, 58,192, 3, 95,214, 3, 20, 64, 56, 67, 20, 0, 56,
|
||||
/* 0x0190 */ 248,255,255,151,162,255,255, 84, 33, 0,128, 82, 4, 0, 0, 20,
|
||||
/* 0x01a0 */ 33, 4, 0, 81,243,255,255,151, 33, 0, 1, 26,241,255,255,151,
|
||||
/* 0x01b0 */ 33, 0, 1, 26,239,255,255,151, 67,255,255, 84, 35, 12, 0,113,
|
||||
/* 0x01c0 */ 1, 0,128, 82, 35, 1, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,
|
||||
/* 0x01d0 */ 229, 3, 37, 42, 5,251,255, 52,191, 0, 0,114,165,124, 1, 19,
|
||||
/* 0x01e0 */ 161, 1, 0, 84, 3, 0, 0, 20,226,255,255,151, 66, 1, 0, 84,
|
||||
/* 0x01f0 */ 33, 0,128, 82,223,255,255,151,226, 0, 0, 84,221,255,255,151,
|
||||
/* 0x0200 */ 33, 0, 1, 26,219,255,255,151,163,255,255, 84, 33, 16, 0, 17,
|
||||
/* 0x0210 */ 4, 0, 0, 20,215,255,255,151, 33, 0, 1, 26, 33, 8, 0, 17,
|
||||
/* 0x0220 */ 191, 0, 20, 49, 33, 36,129, 26, 67, 64, 33,139, 99,240, 95, 56,
|
||||
/* 0x0230 */ 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,
|
||||
/* 0x0240 */ 212,255,255, 23,226, 15,190,169,254, 11, 0,249, 7, 64, 33,139,
|
||||
/* 0x0250 */ 5, 0,128, 18, 4, 0,176, 82, 24, 0, 0, 20,227, 19,193,168,
|
||||
/* 0x0260 */ 0, 0, 7,203, 66, 0, 3,203,130, 0, 0,185,228, 3, 0,170,
|
||||
/* 0x0270 */ 224, 3, 3,170, 97, 0, 2,139, 32,123, 11,213, 32,117, 11,213,
|
||||
/* 0x0280 */ 0, 0, 1,145, 31, 0, 1,235,131,255,255, 84,224, 3, 4,170,
|
||||
/* 0x0290 */ 254, 7, 65,248,192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,
|
||||
/* 0x02a0 */ 192, 3, 95,214, 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214,
|
||||
/* 0x02b0 */ 3, 20, 64, 56, 67, 20, 0, 56,248,255,255,151,162,255,255, 84,
|
||||
/* 0x02c0 */ 33, 0,128, 82, 4, 0, 0, 20, 33, 4, 0, 81,243,255,255,151,
|
||||
/* 0x02d0 */ 33, 0, 1, 58,241,255,255,151, 33, 0, 1, 58,239,255,255,151,
|
||||
/* 0x02e0 */ 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84,
|
||||
/* 0x02f0 */ 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42, 5,251,255, 52,
|
||||
/* 0x0300 */ 163, 0, 1, 83,165,124, 1, 83, 99, 0, 3, 43, 2, 0, 0, 20,
|
||||
/* 0x0310 */ 226,255,255,151, 33, 0, 1, 58,224,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x0320 */ 225, 0, 0, 84, 33, 0,128, 82,220,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x0330 */ 218,255,255,151,163,255,255, 84, 33, 8, 0, 17, 33, 4, 0, 17,
|
||||
/* 0x0340 */ 191, 0, 20, 49, 33, 52,129, 26, 67, 0, 64, 57, 67,200,101, 56,
|
||||
/* 0x0350 */ 67, 20, 0, 56, 33, 4, 0,113,161,255,255, 84,215,255,255, 23,
|
||||
/* 0x0360 */ 1, 64, 33,139,225, 11,190,169,227,123, 1,169, 5, 0,128, 18,
|
||||
/* 0x0370 */ 4, 0,176, 82, 31, 0, 0, 20,228,123, 65,169,225, 15,194,168,
|
||||
/* 0x0380 */ 0, 0, 1,203, 66, 0, 3,203,130, 0, 0,185,228, 3, 0,170,
|
||||
/* 0x0390 */ 224, 3, 3,170, 97, 0, 2,139, 32,123, 11,213, 32,117, 11,213,
|
||||
/* 0x03a0 */ 0, 0, 1,145, 31, 0, 1,235,131,255,255, 84,224, 3, 4,170,
|
||||
/* 0x03b0 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214,
|
||||
/* 0x03c0 */ 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, 33, 0,128, 82,
|
||||
/* 0x03d0 */ 240, 3, 30,170,248,255,255,151, 33, 0, 1, 58,246,255,255,151,
|
||||
/* 0x03e0 */ 163,255,255, 84, 0, 2, 31,214, 3, 20, 64, 56, 67, 20, 0, 56,
|
||||
/* 0x03f0 */ 241,255,255,151,162,255,255, 84,245,255,255,151, 35, 12, 0,113,
|
||||
/* 0x0400 */ 1, 0,128, 82,163, 0, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,
|
||||
/* 0x0410 */ 229, 3, 37, 42, 37,251,255, 52,231,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x0420 */ 229,255,255,151, 33, 0, 1, 58, 97, 0, 0, 84,232,255,255,151,
|
||||
/* 0x0430 */ 33, 8, 0, 17,191, 0, 52, 49, 33, 36,129, 26, 67,200,101, 56,
|
||||
/* 0x0440 */ 33, 4, 0,113, 67, 20, 0, 56,162,255,255, 84,233,255,255, 23,
|
||||
/* 0x0450 */ 159, 56, 0,113, 1, 0, 0, 84, 1, 64, 33,139, 4, 0,128,210,
|
||||
/* 0x0460 */ 225, 11,190,169,227,123, 1,169,228, 19,191,169,224, 3, 0,145,
|
||||
/* 0x0470 */ 227, 35, 0,145,230, 51, 0,145, 8, 0, 64, 57, 7,192,128, 82,
|
||||
/* 0x0480 */ 8,125, 3, 83,231, 32,200, 26,253, 3, 0,145,231,192, 57, 17,
|
||||
/* 0x0490 */ 232, 3, 0,145,255, 67, 39,203,100, 16,129,168,127, 0, 8,235,
|
||||
/* 0x04a0 */ 195,255,255, 84,230, 3, 3,170,229, 3, 7, 42,228, 3, 2,170,
|
||||
/* 0x04b0 */ 34, 8, 0, 81,225, 3, 0,170, 39, 20, 64, 56,231, 8, 0, 18,
|
||||
/* 0x04c0 */ 231, 11, 0, 57, 39, 20, 64, 56,232,124, 4, 83,232, 7, 0, 57,
|
||||
/* 0x04d0 */ 231, 12, 0, 18,231, 3, 0, 57,224, 3, 0,145, 17, 0, 0,148,
|
||||
/* 0x04e0 */ 191, 3, 0,145,228,123, 65,169,225, 15,194,168, 0, 0, 1,203,
|
||||
/* 0x04f0 */ 66, 0, 3,203,130, 0, 0,185,228, 3, 0,170,224, 3, 3,170,
|
||||
/* 0x0500 */ 97, 0, 2,139, 32,123, 11,213, 32,117, 11,213, 0, 0, 1,145,
|
||||
/* 0x0510 */ 31, 0, 1,235,131,255,255, 84,224, 3, 4,170,192, 3, 95,214,
|
||||
/* 0x0520 */ 243, 83,184,169, 39, 0,128, 82, 20, 16, 0,145,245, 91, 1,169,
|
||||
/* 0x0530 */ 247, 99, 2,169,249,107, 3,169,251,115, 4,169,254, 43, 0,249,
|
||||
/* 0x0540 */ 8, 4, 64, 57, 26, 8, 64, 57, 28, 0, 64, 57,127, 0, 0,185,
|
||||
/* 0x0550 */ 250, 32,218, 26,223, 0, 0,185,231, 32,200, 26,231, 4, 0, 81,
|
||||
/* 0x0560 */ 231,111, 0,185, 8, 4, 64, 57, 7, 96,128, 82, 90, 7, 0, 81,
|
||||
/* 0x0570 */ 8, 1, 28, 11,232, 32,200, 26, 8,217, 28, 49,224, 0, 0, 84,
|
||||
/* 0x0580 */ 7, 0,128,210, 9,128,128, 82,137,122, 39,120,231, 4, 0,145,
|
||||
/* 0x0590 */ 31, 1, 7,107,168,255,255, 84, 51, 64, 34,139,127, 2, 1,235,
|
||||
/* 0x05a0 */ 0, 15, 0, 84,235, 3, 1,170, 34, 4, 0,145,103, 85, 64, 56,
|
||||
/* 0x05b0 */ 127, 2, 2,235, 96, 14, 0, 84, 72, 20, 64, 56,127, 1, 2,235,
|
||||
/* 0x05c0 */ 7, 33, 7, 42, 97,255,255, 84, 37, 68, 0, 52, 9,176, 41,145,
|
||||
/* 0x05d0 */ 59, 0,128, 82,233, 63, 0,249, 9, 1,128, 82, 41, 1, 28, 75,
|
||||
/* 0x05e0 */ 10, 0,128, 18,245, 3, 27, 42, 25, 0,128, 82, 8, 0,128, 82,
|
||||
/* 0x05f0 */ 2, 0,128, 82, 16,224,191, 18, 17, 0,129, 82,251,107, 0,185,
|
||||
/* 0x0600 */ 251,115, 0,185,233,119, 0,185, 78, 0, 26, 10, 44,111, 28, 83,
|
||||
/* 0x0610 */ 95, 1, 16,107,201,125, 64,147, 44,193, 44,139,143,249,127,211,
|
||||
/* 0x0620 */ 232, 0, 0, 84,127, 2, 11,235,192, 10, 0, 84,105, 1, 64, 57,
|
||||
/* 0x0630 */ 74, 93, 24, 83,107, 5, 0,145, 39, 33, 7, 42,141,122,108,120,
|
||||
/* 0x0640 */ 73,125, 11, 83,169,125, 9, 27,255, 0, 9,107,162, 10, 0, 84,
|
||||
/* 0x0650 */ 234,211, 65, 57, 63, 27, 0,113, 8, 41,202, 26,234,111, 64,185,
|
||||
/* 0x0660 */ 79, 0, 10, 10,239, 33,220, 26,239, 1, 8, 11, 40, 2, 13, 75,
|
||||
/* 0x0670 */ 234,117, 30, 83, 79, 1, 15, 75,173, 21,136, 11,239, 93,120,211,
|
||||
/* 0x0680 */ 141,122, 44,120,239,217, 28,145,143, 6, 15,139, 45, 31, 0, 84,
|
||||
/* 0x0690 */ 72, 0, 21, 75,146,104,104, 56, 40, 0,128, 82, 7, 0, 0, 20,
|
||||
/* 0x06a0 */ 236,121, 42,120, 8,121, 31, 83,233, 3, 14, 42,205, 56, 0, 53,
|
||||
/* 0x06b0 */ 31,253, 3,113,204, 3, 0, 84, 82,122, 31, 83, 63, 1, 16,107,
|
||||
/* 0x06c0 */ 77, 2, 24, 18, 22,121, 31, 83,170,125, 64,147, 74, 1, 4,145,
|
||||
/* 0x06d0 */ 74,193, 40,139,232, 0, 0, 84,127, 1, 19,235, 41, 93, 24, 83,
|
||||
/* 0x06e0 */ 0, 5, 0, 84,108, 1, 64, 57,107, 5, 0,145,135, 33, 7, 42,
|
||||
/* 0x06f0 */ 236,121,106,120, 46,125, 11, 83, 55, 2, 12, 75,142,125, 14, 27,
|
||||
/* 0x0700 */ 152, 21, 76, 75,140, 21,151, 11,255, 0, 14,107, 41, 1, 14, 75,
|
||||
/* 0x0710 */ 131,252,255, 84,248,121, 42,120,200, 6, 0, 17,231, 0, 14, 75,
|
||||
/* 0x0720 */ 141,252,255, 53, 31,253, 3,113, 45, 27, 0, 84, 8, 29, 0, 83,
|
||||
/* 0x0730 */ 234, 3, 9, 42,136, 72, 34, 56, 66, 4, 0, 17, 63, 39, 0,113,
|
||||
/* 0x0740 */ 140, 49, 0, 84, 57, 15, 0, 81,191, 0, 2,107,232,245,255, 84,
|
||||
/* 0x0750 */ 0,224,191, 18, 95, 1, 0,107,136, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0760 */ 0, 1, 0, 84,107, 5, 0,145, 97, 1, 1,203, 97, 0, 0,185,
|
||||
/* 0x0770 */ 0, 0,128, 82,194, 0, 0,185, 3, 0, 0, 20, 31, 32, 3,213,
|
||||
/* 0x0780 */ 32, 0,128, 82,245, 91, 65,169,247, 99, 66,169,249,107, 67,169,
|
||||
/* 0x0790 */ 251,115, 68,169,254, 43, 64,249,243, 83,200,168,192, 3, 95,214,
|
||||
/* 0x07a0 */ 74, 1, 9, 75,173, 21, 77, 75,231, 0, 9, 75,141,122, 44,120,
|
||||
/* 0x07b0 */ 41,127, 64,147, 95, 1, 16,107, 41, 1, 3,145, 45,249,127,211,
|
||||
/* 0x07c0 */ 232, 0, 0, 84,127, 1, 19,235,192,253,255, 84,104, 1, 64, 57,
|
||||
/* 0x07d0 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,140,122,105,120,
|
||||
/* 0x07e0 */ 72,125, 11, 83,136,125, 8, 27,255, 0, 8,107, 98, 25, 0, 84,
|
||||
/* 0x07f0 */ 234,107, 64,185, 63, 31, 0,113,251,115, 64,185,234,115, 0,185,
|
||||
/* 0x0800 */ 42, 2, 12, 75,245,107, 0,185,140, 21,138, 11,140,122, 41,120,
|
||||
/* 0x0810 */ 105, 0,128, 82,249,179,137, 26, 9,160, 25,145, 31, 1, 16,107,
|
||||
/* 0x0820 */ 232, 0, 0, 84,127, 2, 11,235,192,250,255, 84,106, 1, 64, 57,
|
||||
/* 0x0830 */ 8, 93, 24, 83,107, 5, 0,145, 71, 33, 7, 42, 44, 1, 64,121,
|
||||
/* 0x0840 */ 10,125, 11, 83,138,125, 10, 27,255, 0, 10,107,226, 30, 0, 84,
|
||||
/* 0x0850 */ 210,113, 29, 83, 40, 2, 12, 75, 22, 0,128, 82,126, 0,128, 82,
|
||||
/* 0x0860 */ 82,126, 64,147,140, 21,136, 11, 82, 10, 0,145, 44, 1, 0,121,
|
||||
/* 0x0870 */ 50, 5, 18,139,238, 3, 30, 42, 45, 0,128, 82, 6, 0, 0, 20,
|
||||
/* 0x0880 */ 232, 1, 0,121,206, 5, 0,113,173,121, 31, 83,234, 3, 9, 42,
|
||||
/* 0x0890 */ 32, 3, 0, 84, 95, 1, 16,107,183,121, 31, 83, 79,198, 45,139,
|
||||
/* 0x08a0 */ 232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,160,246,255, 84,
|
||||
/* 0x08b0 */ 104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,232, 1, 64,121,
|
||||
/* 0x08c0 */ 73,125, 11, 83, 44, 2, 8, 75, 9,125, 9, 27, 24, 21, 72, 75,
|
||||
/* 0x08d0 */ 8, 21,140, 11,255, 0, 9,107, 74, 1, 9, 75, 35,253,255, 84,
|
||||
/* 0x08e0 */ 248, 1, 0,121,206, 5, 0,113,231, 0, 9, 75,237, 6, 0, 17,
|
||||
/* 0x08f0 */ 33,253,255, 84, 40, 0,128, 82, 63, 15, 0,113, 30, 33,222, 26,
|
||||
/* 0x0900 */ 222, 2, 30, 75,205, 3, 13, 11,236, 22, 0, 84,191, 13, 0,113,
|
||||
/* 0x0910 */ 104, 0,128, 82,181,209,136, 26,207, 0,128, 82,181,102, 26, 83,
|
||||
/* 0x0920 */ 46, 0,128, 82,181,126, 64,147,181,194, 6,145,181,250,127,211,
|
||||
/* 0x0930 */ 7, 0, 0, 20, 31, 32, 3,213,136,106, 50,120,239, 5, 0,113,
|
||||
/* 0x0940 */ 206,121, 31, 83,234, 3, 9, 42, 32, 3, 0, 84, 95, 1, 16,107,
|
||||
/* 0x0950 */ 214,121, 31, 83,178,198, 46,139,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0960 */ 74, 93, 24, 83,224,240,255, 84,104, 1, 64, 57,107, 5, 0,145,
|
||||
/* 0x0970 */ 7, 33, 7, 42,136,106,114,120, 73,125, 11, 83, 44, 2, 8, 75,
|
||||
/* 0x0980 */ 9,125, 9, 27, 23, 21, 72, 75, 8, 21,140, 11,255, 0, 9,107,
|
||||
/* 0x0990 */ 74, 1, 9, 75, 35,253,255, 84,151,106, 50,120,239, 5, 0,113,
|
||||
/* 0x09a0 */ 231, 0, 9, 75,206, 6, 0, 17, 33,253,255, 84,213, 1, 1, 81,
|
||||
/* 0x09b0 */ 191, 14, 0,113, 45, 17, 0, 84,191, 54, 0,113,168, 2, 0, 18,
|
||||
/* 0x09c0 */ 8, 1, 31, 50,169,126, 1, 19, 44, 32, 0, 84, 47, 5, 0, 81,
|
||||
/* 0x09d0 */ 9, 86,128,210, 46,193, 53,203, 21, 33,207, 26,206, 65, 53,139,
|
||||
/* 0x09e0 */ 142, 6, 14,139,206, 9, 0,209, 50, 0,128, 82,247, 3, 18, 42,
|
||||
/* 0x09f0 */ 8, 0, 0, 20, 31, 32, 3,213,200, 2, 0,121, 82,122, 31, 83,
|
||||
/* 0x0a00 */ 234, 3, 9, 42,239, 5, 0,113,247,122, 31, 83, 96, 14, 0, 84,
|
||||
/* 0x0a10 */ 95, 1, 16,107, 88,122, 31, 83,214,197, 50,139,232, 0, 0, 84,
|
||||
/* 0x0a20 */ 127, 2, 11,235, 74, 93, 24, 83,192,234,255, 84,104, 1, 64, 57,
|
||||
/* 0x0a30 */ 107, 5, 0,145, 7, 33, 7, 42,200, 2, 64,121, 73,125, 11, 83,
|
||||
/* 0x0a40 */ 44, 2, 8, 75, 9,125, 9, 27, 30, 21, 72, 75, 8, 21,140, 11,
|
||||
/* 0x0a50 */ 255, 0, 9,107, 74, 1, 9, 75, 3,253,255, 84,222, 2, 0,121,
|
||||
/* 0x0a60 */ 231, 0, 9, 75,181, 2, 23, 42, 18, 7, 0, 17,230,255,255, 23,
|
||||
/* 0x0a70 */ 40, 0,128, 82, 6, 0, 0, 20, 8,121, 31, 83,234,121, 46,120,
|
||||
/* 0x0a80 */ 31,253, 3,113,233, 3, 12, 42, 44, 3, 0, 84, 63, 1, 16,107,
|
||||
/* 0x0a90 */ 18,121, 31, 83, 14,125, 64,147,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0aa0 */ 41, 93, 24, 83,224,230,255, 84,106, 1, 64, 57,107, 5, 0,145,
|
||||
/* 0x0ab0 */ 71, 33, 7, 42,234,121,110,120, 44,125, 11, 83, 45, 2, 10, 75,
|
||||
/* 0x0ac0 */ 76,125, 12, 27, 86, 21, 74, 75, 74, 21,141, 11,255, 0, 12,107,
|
||||
/* 0x0ad0 */ 41, 1, 12, 75, 35,253,255, 84, 72, 6, 0, 17,246,121, 46,120,
|
||||
/* 0x0ae0 */ 31,253, 3,113,231, 0, 12, 75, 45,253,255, 84, 8, 29, 0, 83,
|
||||
/* 0x0af0 */ 63, 15, 0,113,136, 72, 34, 56,234, 3, 9, 42, 66, 4, 0, 17,
|
||||
/* 0x0b00 */ 236,225,255, 84,191, 0, 2,107, 25, 0,128, 82,232,215,255, 84,
|
||||
/* 0x0b10 */ 16,255,255, 23, 31, 32, 3,213, 74, 1, 8, 75,140, 21, 76, 75,
|
||||
/* 0x0b20 */ 95, 1, 16,107,140,122, 41,120,231, 0, 8, 75,169, 97, 0,145,
|
||||
/* 0x0b30 */ 232, 0, 0, 84,127, 2, 11,235, 64,226,255, 84,104, 1, 64, 57,
|
||||
/* 0x0b40 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,140,106,105,120,
|
||||
/* 0x0b50 */ 72,125, 11, 83,136,125, 8, 27,255, 0, 8,107,226, 9, 0, 84,
|
||||
/* 0x0b60 */ 42, 2, 12, 75, 31, 1, 16,107,239,129, 7,145,140, 21,138, 11,
|
||||
/* 0x0b70 */ 140,106, 41,120,232, 0, 0, 84,127, 2, 11,235, 32,224,255, 84,
|
||||
/* 0x0b80 */ 105, 1, 64, 57, 8, 93, 24, 83,107, 5, 0,145, 39, 33, 7, 42,
|
||||
/* 0x0b90 */ 137,106,111,120, 10,125, 11, 83, 42,125, 10, 27,255, 0, 10,107,
|
||||
/* 0x0ba0 */ 130, 16, 0, 84, 40, 2, 9, 75, 41, 21,136, 11,137,106, 47,120,
|
||||
/* 0x0bb0 */ 130,222,255, 52, 72, 0, 21, 75, 63, 31, 0,113, 41, 1,128, 82,
|
||||
/* 0x0bc0 */ 108, 1,128, 82, 57,177,140, 26,136,104,104, 56,136, 72, 34, 56,
|
||||
/* 0x0bd0 */ 66, 4, 0, 17,221,254,255, 23,181, 6, 0, 49,160,219,255, 84,
|
||||
/* 0x0be0 */ 57, 31, 0, 17,191, 2, 2,107,173, 9, 0, 17,168,220,255, 84,
|
||||
/* 0x0bf0 */ 233, 3, 2, 42, 72, 0, 21, 75,173, 5, 0, 81, 66, 4, 0, 17,
|
||||
/* 0x0c00 */ 191, 1, 31,107,160, 16, 66,122,136,104,104, 56,136, 72, 41, 56,
|
||||
/* 0x0c10 */ 233, 3, 2, 42, 8,255,255, 84,191, 0, 2,107,104,207,255, 84,
|
||||
/* 0x0c20 */ 204,254,255, 23, 31, 32, 3,213, 8, 1, 10, 75,140, 21, 76, 75,
|
||||
/* 0x0c30 */ 31, 1, 16,107, 44, 1, 0,121,231, 0, 10, 75,232, 0, 0, 84,
|
||||
/* 0x0c40 */ 127, 2, 11,235,224,217,255, 84,106, 1, 64, 57, 8, 93, 24, 83,
|
||||
/* 0x0c50 */ 107, 5, 0,145, 71, 33, 7, 42, 44, 5, 64,121, 10,125, 11, 83,
|
||||
/* 0x0c60 */ 138,125, 10, 27,255, 0, 10,107, 66, 7, 0, 84,210,113, 29, 83,
|
||||
/* 0x0c70 */ 40, 2, 12, 75, 22, 1,128, 82,126, 0,128, 82, 82,126, 64,147,
|
||||
/* 0x0c80 */ 136, 21,136, 11, 82, 10, 2,145, 40, 5, 0,121, 50, 5, 18,139,
|
||||
/* 0x0c90 */ 249,254,255, 23, 31, 32, 3,213, 74, 1, 8, 75,231, 0, 8, 75,
|
||||
/* 0x0ca0 */ 95, 1, 16,107,136, 21, 76, 75,136,106, 41,120,172,193, 0,145,
|
||||
/* 0x0cb0 */ 232, 0, 0, 84,127, 2, 11,235, 64,214,255, 84,104, 1, 64, 57,
|
||||
/* 0x0cc0 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,137,106,108,120,
|
||||
/* 0x0cd0 */ 72,125, 11, 83, 40,125, 8, 27,255, 0, 8,107, 35, 5, 0, 84,
|
||||
/* 0x0ce0 */ 74, 1, 8, 75, 41, 21, 73, 75, 95, 1, 16,107,137,106, 44,120,
|
||||
/* 0x0cf0 */ 231, 0, 8, 75,173, 33, 1,145,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0d00 */ 0,212,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x0d10 */ 7, 33, 7, 42,137,106,109,120, 72,125, 11, 83, 40,125, 8, 27,
|
||||
/* 0x0d20 */ 255, 0, 8,107,226, 7, 0, 84,234, 3, 21, 42,236,107, 64,185,
|
||||
/* 0x0d30 */ 234,107, 0,185, 42, 2, 9, 75,245,115, 64,185, 41, 21,138, 11,
|
||||
/* 0x0d40 */ 236,115, 0,185,137,106, 45,120, 20, 0, 0, 20, 31, 32, 3,213,
|
||||
/* 0x0d50 */ 231, 0, 10, 75, 50, 17, 8,145, 10, 1, 10, 75, 22, 2,128, 82,
|
||||
/* 0x0d60 */ 136, 21, 76, 75, 30, 1,128, 82, 40, 5, 0,121,194,254,255, 23,
|
||||
/* 0x0d70 */ 191, 0, 2,107, 57, 27, 0, 81,136,196,255, 84,117,254,255, 23,
|
||||
/* 0x0d80 */ 234, 3, 21, 42,245,107, 64,185,234,107, 0,185, 42, 2, 9, 75,
|
||||
/* 0x0d90 */ 41, 21,138, 11,137,106, 44,120, 63, 31, 0,113, 10, 1,128, 82,
|
||||
/* 0x0da0 */ 108, 1,128, 82,233, 63, 64,249, 89,177,140, 26,156,254,255, 23,
|
||||
/* 0x0db0 */ 41, 21, 73, 75, 8, 1, 10, 75,137,106, 47,120,231, 0, 10, 75,
|
||||
/* 0x0dc0 */ 246,255,255, 23,233, 3, 14, 42, 87,254,255, 23, 41, 21, 0, 81,
|
||||
/* 0x0dd0 */ 95, 1, 16,107, 8,121, 31, 83,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0de0 */ 74, 93, 24, 83,224,204,255, 84,108, 1, 64, 57,107, 5, 0,145,
|
||||
/* 0x0df0 */ 135, 33, 7, 42, 74,125, 1, 83,255, 0, 10,107, 99, 0, 0, 84,
|
||||
/* 0x0e00 */ 231, 0, 10, 75, 8, 1, 0, 50, 41, 5, 0,113, 33,254,255, 84,
|
||||
/* 0x0e10 */ 21,109, 28, 83, 14, 32, 25,145,143, 0,128, 82,243,254,255, 23,
|
||||
/* 0x0e20 */ 41, 21, 73, 75,137,106, 45,120,233,107, 64,185,236, 3, 21, 42,
|
||||
/* 0x0e30 */ 231, 0, 8, 75,245, 3, 27, 42, 72, 1, 8, 75,251,115, 64,185,
|
||||
/* 0x0e40 */ 236,107, 0,185,233,115, 0,185,212,255,255, 23, 2, 0,128, 82,
|
||||
/* 0x0e50 */ 227, 19,189,169,229, 27, 1,169,254, 19, 0,249,232, 3, 1,170,
|
||||
/* 0x0e60 */ 45, 64, 34,139,233, 3, 4,170,142, 64, 37,139, 11, 16, 0,145,
|
||||
/* 0x0e70 */ 6, 0, 64, 57, 5, 4, 64, 57, 4, 8, 64, 57,174, 0, 6, 11,
|
||||
/* 0x0e80 */ 7, 0,128, 18,229, 32,197, 26,229, 3, 37, 42,228, 32,196, 26,
|
||||
/* 0x0e90 */ 228, 3, 36, 42, 35, 0,128, 82, 34, 0,128, 82, 33, 0,128, 82,
|
||||
/* 0x0ea0 */ 32, 0,128, 82, 6, 0,128, 82,230, 31, 0,185, 2, 96,128, 82,
|
||||
/* 0x0eb0 */ 192,230,128, 82, 66, 32,206, 26, 66, 0, 0, 11, 0,128,128,210,
|
||||
/* 0x0ec0 */ 225, 3, 11,170, 0, 64, 0,170, 0,128, 0,170, 32,132, 0,248,
|
||||
/* 0x0ed0 */ 66, 16, 0,113,204,255,255, 84, 0, 21, 0,145,231, 0, 0,148,
|
||||
/* 0x0ee0 */ 31, 0, 8,235,193,255,255, 84,227, 67, 66,248,226, 19, 64,185,
|
||||
/* 0x0ef0 */ 36, 1, 3,203,128, 0, 2, 10,224, 47, 0,185, 0, 16, 6, 11,
|
||||
/* 0x0f00 */ 97, 1, 0,145,225, 0, 0,148,129, 5, 0, 84,227, 23, 64,185,
|
||||
/* 0x0f10 */ 226, 27, 64,185, 99, 0, 4, 10,224,115, 64, 57, 99, 32,194, 26,
|
||||
/* 0x0f20 */ 226, 3, 2, 75, 66, 32, 0, 17, 2, 36,194, 26, 99, 0, 2, 11,
|
||||
/* 0x0f30 */ 106,177, 57,145, 99, 4, 3, 11,227, 3, 3, 42, 32, 0,128, 82,
|
||||
/* 0x0f40 */ 74, 37, 3,139,223, 28, 0,113, 3, 2, 0, 84,227,125, 64,147,
|
||||
/* 0x0f50 */ 227, 3, 3,203, 37,105, 99, 56,165,120, 31, 83, 65, 1, 8,145,
|
||||
/* 0x0f60 */ 164, 0, 24, 18,227, 3, 4, 42, 33, 4, 3,139,201, 0, 0,148,
|
||||
/* 0x0f70 */ 3, 0, 0, 18,127, 32, 68,107,193, 0, 0, 84, 31, 0, 4,113,
|
||||
/* 0x0f80 */ 195,254,255, 84, 5, 0, 0, 20,225, 3, 10,170,193, 0, 0,148,
|
||||
/* 0x0f90 */ 31, 0, 4,113,163,255,255, 84, 98, 0,128, 82,195, 0,128, 82,
|
||||
/* 0x0fa0 */ 223, 40, 0,113, 67, 48,131, 26,223, 16, 0,113,195, 48,131, 26,
|
||||
/* 0x0fb0 */ 198, 0, 3, 75, 34, 0, 0, 20, 97, 1, 6,145,178, 0, 0,148,
|
||||
/* 0x0fc0 */ 129, 1, 0, 84,227, 11, 64,185,226, 7, 64,185,227, 15, 0,185,
|
||||
/* 0x0fd0 */ 226, 11, 0,185,239, 7, 0,185, 3, 0,128, 82,223, 28, 0,113,
|
||||
/* 0x0fe0 */ 102, 0,128, 82,102, 48,134, 26,106,145, 25,145, 42, 0, 0, 20,
|
||||
/* 0x0ff0 */ 97, 97, 6,145,164, 0, 0,148, 97, 2, 0, 84,227, 47, 64,185,
|
||||
/* 0x1000 */ 97,129, 7,145, 96, 16, 6, 11,160, 0, 0,148,161, 3, 0, 84,
|
||||
/* 0x1010 */ 35, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26,
|
||||
/* 0x1020 */ 227, 67, 66,248, 36, 1, 3,203,159, 0, 15,107,131, 17, 0, 84,
|
||||
/* 0x1030 */ 227,125, 64,147,227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56,
|
||||
/* 0x1040 */ 121, 0, 0, 20, 97,193, 6,145,143, 0, 0,148,228, 7, 64,185,
|
||||
/* 0x1050 */ 64, 1, 0, 84, 97, 33, 7,145,139, 0, 0,148,228, 11, 64,185,
|
||||
/* 0x1060 */ 128, 0, 0, 84,227, 11, 64,185,228, 15, 64,185,227, 15, 0,185,
|
||||
/* 0x1070 */ 227, 7, 64,185,227, 11, 0,185,239, 7, 0,185,239, 3, 4, 42,
|
||||
/* 0x1080 */ 3, 1,128, 82,223, 28, 0,113,102, 1,128, 82,102, 48,134, 26,
|
||||
/* 0x1090 */ 106,161, 41,145, 65, 1, 0,145,125, 0, 0,148, 1, 1, 0, 84,
|
||||
/* 0x10a0 */ 227, 47, 64,185, 69, 17, 0,145,227, 3, 3, 42, 2, 0,128, 82,
|
||||
/* 0x10b0 */ 165, 16, 3,139, 4, 1,128, 82, 14, 0, 0, 20, 65, 9, 0,145,
|
||||
/* 0x10c0 */ 115, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 4,145,
|
||||
/* 0x10d0 */ 227, 3, 3, 42, 2, 1,128, 82,165, 16, 3,139, 4, 1,128, 82,
|
||||
/* 0x10e0 */ 4, 0, 0, 20, 69, 17, 8,145, 2, 2,128, 82, 4, 32,128, 82,
|
||||
/* 0x10f0 */ 226, 55, 0,185, 32, 0,128, 82,225, 3, 5,170,101, 0, 0,148,
|
||||
/* 0x1100 */ 3, 0, 4,107,163,255,255, 84,229, 55, 64,185,165, 0, 3, 11,
|
||||
/* 0x1110 */ 229, 55, 0,185,223, 16, 0,113,194, 6, 0, 84,198, 28, 0, 17,
|
||||
/* 0x1120 */ 99, 0,128, 82,191, 16, 0,113,101, 32,133, 26,227, 3, 5, 42,
|
||||
/* 0x1130 */ 101, 29, 3,139,165,128, 13,145, 32, 0,128, 82, 4, 8,128, 82,
|
||||
/* 0x1140 */ 225, 3, 5,170, 83, 0, 0,148, 3, 0, 4,107,163,255,255, 84,
|
||||
/* 0x1150 */ 227, 47, 0,185,127, 16, 0,113, 99, 4, 0, 84,100,124, 1, 83,
|
||||
/* 0x1160 */ 132, 4, 0, 81,111, 0, 0, 18,239, 1, 31, 50,127, 56, 0,113,
|
||||
/* 0x1170 */ 226, 0, 0, 84,239, 33,196, 26,106,121, 21,145,227, 1, 3, 75,
|
||||
/* 0x1180 */ 227, 3, 3, 42, 74, 5, 3,139, 12, 0, 0, 20,132, 16, 0, 81,
|
||||
/* 0x1190 */ 53, 0, 0,148,231,124, 1, 83,131, 1, 7,107,108, 32,140, 26,
|
||||
/* 0x11a0 */ 239, 1, 15, 26,132, 4, 0,113, 65,255,255, 84,106, 17, 25,145,
|
||||
/* 0x11b0 */ 239,109, 28, 83,132, 0,128, 82, 37, 0,128, 82, 32, 0,128, 82,
|
||||
/* 0x11c0 */ 225, 3, 10,170, 51, 0, 0,148, 31, 0, 0,114, 64, 0, 0, 84,
|
||||
/* 0x11d0 */ 239, 1, 5, 42,165,120, 31, 83,132, 4, 0,113, 33,255,255, 84,
|
||||
/* 0x11e0 */ 2, 0, 0, 20,239, 47, 64,185,239, 5, 0, 49,229, 55, 64,185,
|
||||
/* 0x11f0 */ 227, 67, 66,248,165, 8, 0, 17, 35, 1, 3,203,255, 1, 3,107,
|
||||
/* 0x1200 */ 232, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 32,105, 99, 56,
|
||||
/* 0x1210 */ 32, 21, 0, 56, 63, 1, 14,235,194, 0, 0, 84,165, 4, 0,113,
|
||||
/* 0x1220 */ 97,255,255, 84,224,115, 0, 57, 63, 1, 14,235,227,229,255, 84,
|
||||
/* 0x1230 */ 13, 0, 0,148, 0, 0,128, 82,226, 19, 64,249, 3, 1, 2,203,
|
||||
/* 0x1240 */ 226, 31, 64,249, 67, 0, 0,185,226, 67, 66,248, 35, 1, 2,203,
|
||||
/* 0x1250 */ 226, 55, 64,249, 67, 0, 0,185,255,243, 0,145, 32, 0,128, 82,
|
||||
/* 0x1260 */ 246,255,255, 23,227,124, 24, 83,195, 0, 0, 53, 31, 1, 13,235,
|
||||
/* 0x1270 */ 231, 92, 24, 83, 66,255,255, 84, 3, 21, 64, 56,108, 32, 12, 42,
|
||||
/* 0x1280 */ 192, 3, 95,214,224, 3, 6, 42, 33, 68, 32,139, 0, 0,128, 82,
|
||||
/* 0x1290 */ 33, 68, 32,139,227,124, 24, 83,241, 3, 30,170, 94, 0, 0, 16,
|
||||
/* 0x12a0 */ 99,254,255, 52, 35, 0, 64,121,226,124, 11, 83, 98,124, 2, 27,
|
||||
/* 0x12b0 */ 159, 1, 2,107, 2, 1, 0, 84, 2, 0,129, 82,231, 3, 2, 42,
|
||||
/* 0x12c0 */ 66, 0, 3, 75, 0, 0, 0, 58, 99, 20, 66, 11, 35, 0, 0,121,
|
||||
/* 0x12d0 */ 32, 2, 95,214,140, 1, 2, 75,231, 0, 2, 75, 99, 20, 67, 75,
|
||||
/* 0x12e0 */ 0, 0, 0, 58, 35, 0, 0,121, 32, 2, 95,214,194, 3,128, 82,
|
||||
/* 0x12f0 */ 225, 0, 0, 16, 64, 0,128, 82, 8, 8,128, 82, 1, 0, 0,212,
|
||||
/* 0x1300 */ 224, 15,128, 82,168, 11,128, 82, 1, 0, 0,212, 80, 82, 79, 84,
|
||||
/* 0x1310 */ 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87, 82, 73, 84, 69,
|
||||
/* 0x1320 */ 32,102, 97,105,108,101,100, 46, 10, 0,102,105,108,101, 32,102,
|
||||
/* 0x1330 */ 111,114,109, 97,116, 32,101,108,102, 54, 52, 45,108,105,116,116,
|
||||
/* 0x1340 */ 108,101, 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99,116,105,
|
||||
/* 0x1350 */ 111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32,
|
||||
/* 0x1360 */ 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32,
|
||||
/* 0x1370 */ 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1380 */ 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1390 */ 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,
|
||||
/* 0x13a0 */ 108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69,
|
||||
/* 0x13b0 */ 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 48, 48,
|
||||
/* 0x13c0 */ 48, 48, 48, 51, 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x13d0 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x13e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x13f0 */ 48, 52, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69,
|
||||
/* 0x1400 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68,
|
||||
/* 0x1410 */ 79, 78, 76, 89, 10, 32, 32, 49, 32, 76, 85, 78, 77, 80, 48, 48,
|
||||
/* 0x1420 */ 48, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1430 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1440 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1450 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, 99, 32, 32, 50,
|
||||
/* 0x1460 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
|
||||
/* 0x1470 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 50, 32, 76, 85, 78, 77,
|
||||
/* 0x1480 */ 80, 48, 48, 49, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1490 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x14a0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x14b0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 55, 99,
|
||||
/* 0x14c0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
||||
/* 0x14d0 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 51, 32, 69,
|
||||
/* 0x14e0 */ 76, 70, 77, 65, 73, 78, 88,117, 32, 32, 32, 32, 32, 48, 48, 48,
|
||||
/* 0x14f0 */ 48, 48, 48, 97, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1500 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1510 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x1520 */ 48, 55, 99, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69,
|
||||
/* 0x1530 */ 78, 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68,
|
||||
/* 0x1540 */ 79, 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 95, 72, 69, 65,
|
||||
/* 0x1550 */ 68, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1560 */ 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1570 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1580 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, 50,
|
||||
/* 0x1590 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82,
|
||||
/* 0x15a0 */ 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 95,
|
||||
/* 0x15b0 */ 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x15c0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x15d0 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x15e0 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 49, 99,
|
||||
/* 0x15f0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
|
||||
/* 0x1600 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 78,
|
||||
/* 0x1610 */ 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48,
|
||||
/* 0x1620 */ 48, 48, 49, 50, 56, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1630 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1640 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x1650 */ 49, 49, 99, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69,
|
||||
/* 0x1660 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32,
|
||||
/* 0x1670 */ 55, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1680 */ 48, 48, 48, 48, 48, 49, 49, 99, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1690 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x16a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x16b0 */ 48, 48, 48, 50, 52, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79,
|
||||
/* 0x16c0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
|
||||
/* 0x16d0 */ 10, 32, 32, 56, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x16e0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48,102, 48, 32, 32, 48, 48, 48,
|
||||
/* 0x16f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
|
||||
/* 0x1700 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1710 */ 32, 48, 48, 48, 48, 48, 51, 54, 48, 32, 32, 50, 42, 42, 50, 32,
|
||||
/* 0x1720 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79,
|
||||
/* 0x1730 */ 78, 76, 89, 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 69, 76, 70,
|
||||
/* 0x1740 */ 48, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,100, 48, 32, 32,
|
||||
/* 0x1750 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1760 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1770 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 53, 48, 32, 32, 50, 42,
|
||||
/* 0x1780 */ 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
|
||||
/* 0x1790 */ 76, 79, 67, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49,
|
||||
/* 0x17a0 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32,
|
||||
/* 0x17b0 */ 48, 48, 48, 48, 48, 57, 51, 48, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x17c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x17d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x17e0 */ 48, 48, 48, 53, 50, 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
|
||||
/* 0x17f0 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
|
||||
/* 0x1800 */ 10, 32, 49, 49, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32,
|
||||
/* 0x1810 */ 32, 32, 32, 48, 48, 48, 48, 48, 52, 57, 99, 32, 32, 48, 48, 48,
|
||||
/* 0x1820 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
|
||||
/* 0x1830 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1840 */ 32, 48, 48, 48, 48, 48,101, 53, 48, 32, 32, 50, 42, 42, 50, 32,
|
||||
/* 0x1850 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79,
|
||||
/* 0x1860 */ 78, 76, 89, 10, 32, 49, 50, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
||||
/* 0x1870 */ 51, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x1880 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1890 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x18a0 */ 48, 48, 32, 32, 48, 48, 48, 48, 49, 50,101, 99, 32, 32, 50, 42,
|
||||
/* 0x18b0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
|
||||
/* 0x18c0 */ 65, 68, 79, 78, 76, 89, 10, 32, 49, 51, 32, 69, 76, 70, 77, 65,
|
||||
/* 0x18d0 */ 73, 78, 89, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48, 51,
|
||||
/* 0x18e0 */ 101, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x18f0 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1900 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50,101, 99, 32,
|
||||
/* 0x1910 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
|
||||
/* 0x1920 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 52, 32, 69, 76,
|
||||
/* 0x1930 */ 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x1940 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1950 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1960 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 51,
|
||||
/* 0x1970 */ 50, 97, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
|
||||
/* 0x1980 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 83, 89, 77,
|
||||
/* 0x1990 */ 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x19b0 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 9, 48,
|
||||
/* 0x19c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x19d0 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x19e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x19f0 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 9, 48, 48, 48,
|
||||
/* 0x1a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76,
|
||||
/* 0x1a10 */ 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a20 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x1a30 */ 69, 76, 70, 77, 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73,
|
||||
/* 0x1a50 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a60 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 85, 78, 77,
|
||||
/* 0x1a70 */ 80, 48, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1a80 */ 48, 48, 48, 48, 48, 32, 76, 85, 78, 77, 80, 48, 48, 48, 10, 48,
|
||||
/* 0x1a90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1aa0 */ 108, 32, 32, 32, 32,100, 32, 32, 76, 85, 78, 77, 80, 48, 48, 49,
|
||||
/* 0x1ab0 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ac0 */ 48, 32, 76, 85, 78, 77, 80, 48, 48, 49, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
|
||||
/* 0x1ae0 */ 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,117, 9, 48, 48,
|
||||
/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 69,
|
||||
/* 0x1b00 */ 76, 70, 77, 65, 73, 78, 88,117, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
|
||||
/* 0x1b20 */ 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48,
|
||||
/* 0x1b30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95,
|
||||
/* 0x1b40 */ 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b50 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82,
|
||||
/* 0x1b60 */ 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b70 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76,
|
||||
/* 0x1b80 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b90 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9,
|
||||
/* 0x1ba0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1bb0 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x1bd0 */ 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1be0 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48,
|
||||
/* 0x1bf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
|
||||
/* 0x1c00 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48,
|
||||
/* 0x1c10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86,
|
||||
/* 0x1c20 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c30 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65,
|
||||
/* 0x1c40 */ 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c50 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70,
|
||||
/* 0x1c60 */ 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c70 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65,
|
||||
/* 0x1c80 */ 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c90 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
||||
/* 0x1ca0 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1cb0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65,
|
||||
/* 0x1cc0 */ 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1cd0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
||||
/* 0x1ce0 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1cf0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
|
||||
/* 0x1d00 */ 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d10 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48,
|
||||
/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1d30 */ 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48,
|
||||
/* 0x1d40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,
|
||||
/* 0x1d50 */ 69, 78, 70, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d60 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78,
|
||||
/* 0x1d70 */ 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d80 */ 48, 48, 48, 32, 67, 80, 82, 48, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1da0 */ 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1db0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 77, 70, 76, 71, 10, 48, 48,
|
||||
/* 0x1dc0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x1dd0 */ 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 9, 48, 48, 48,
|
||||
/* 0x1de0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 65, 68,
|
||||
/* 0x1df0 */ 82, 77, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e00 */ 48, 49, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
|
||||
/* 0x1e10 */ 65, 73, 78, 88, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e20 */ 48, 48, 48, 48, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48,
|
||||
/* 0x1e30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32,
|
||||
/* 0x1e40 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48,
|
||||
/* 0x1e50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 50, 56, 32,117, 99,108,
|
||||
/* 0x1e60 */ 95,110,114,118, 50,101, 95,100,101, 99,111,109,112,114,101,115,
|
||||
/* 0x1e70 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e80 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82,
|
||||
/* 0x1e90 */ 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ea0 */ 48, 49, 49, 99, 32,117, 99,108, 95,110,114,118, 50,100, 95,100,
|
||||
/* 0x1eb0 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48,
|
||||
/* 0x1ec0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32,
|
||||
/* 0x1ed0 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48,
|
||||
/* 0x1ee0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 48, 32,117, 99,108,
|
||||
/* 0x1ef0 */ 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115,
|
||||
/* 0x1f00 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f10 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90,
|
||||
/* 0x1f20 */ 77, 65, 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f30 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 76,122,109, 97, 68,101,
|
||||
/* 0x1f40 */ 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f50 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76,
|
||||
/* 0x1f60 */ 70, 77, 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f70 */ 48, 48, 48, 48, 48, 48, 48, 32,101,110,100, 95,100,101, 99,111,
|
||||
/* 0x1f80 */ 109,112,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1f90 */ 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1fa0 */ 69, 76, 70, 77, 65, 73, 78, 90, 9, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1fb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 99,112,114, 48, 10, 10,
|
||||
/* 0x1fc0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
|
||||
/* 0x1fd0 */ 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88,
|
||||
/* 0x1fe0 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1ff0 */ 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2000 */ 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48,
|
||||
/* 0x2010 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 65,
|
||||
/* 0x2020 */ 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32, 32, 32, 76,
|
||||
/* 0x2030 */ 69, 78, 70, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2040 */ 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65,
|
||||
/* 0x2050 */ 66, 83, 51, 50, 32, 32, 32, 67, 80, 82, 48, 10, 48, 48, 48, 48,
|
||||
/* 0x2060 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 56, 32, 82, 95, 65,
|
||||
/* 0x2070 */ 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32, 32, 32, 77,
|
||||
/* 0x2080 */ 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2090 */ 48, 48, 48, 99, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65,
|
||||
/* 0x20a0 */ 66, 83, 54, 52, 32, 32, 32, 65, 68, 82, 77, 10, 10, 82, 69, 76,
|
||||
/* 0x20b0 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
|
||||
/* 0x20c0 */ 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88,117, 93, 58,
|
||||
/* 0x20d0 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x20e0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x20f0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2100 */ 48, 48, 48, 48, 48, 48, 48, 48, 50, 52, 32, 82, 95, 65, 65, 82,
|
||||
/* 0x2110 */ 67, 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 69,
|
||||
/* 0x2120 */ 76, 70, 77, 65, 73, 78, 89, 10, 10, 82, 69, 76, 79, 67, 65, 84,
|
||||
/* 0x2130 */ 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32,
|
||||
/* 0x2140 */ 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70,
|
||||
/* 0x2150 */ 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84,
|
||||
/* 0x2160 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x2170 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x2180 */ 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54,
|
||||
/* 0x2190 */ 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65,
|
||||
/* 0x21a0 */ 95, 68, 69, 67, 51, 48, 10
|
||||
};
|
||||
187
src/stub/arm64-linux.elf-fold.h
Normal file
187
src/stub/arm64-linux.elf-fold.h
Normal file
@ -0,0 +1,187 @@
|
||||
/* arm64-linux.elf-fold.h
|
||||
created from arm64-linux.elf-fold.bin, 2356 (0x934) bytes
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996-2017 Laszlo Molnar
|
||||
Copyright (C) 2000-2017 John F. Reiser
|
||||
All Rights Reserved.
|
||||
|
||||
UPX and the UCL library are free software; you can redistribute them
|
||||
and/or modify them under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
<markus@oberhumer.com> <ezerotven+github@gmail.com>
|
||||
|
||||
John F. Reiser
|
||||
<jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
|
||||
#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2356
|
||||
#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0xde69440e
|
||||
#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0xf9178fcb
|
||||
|
||||
unsigned char stub_arm64_linux_elf_fold[2356] = {
|
||||
/* 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 */ 52, 9, 0, 0, 0, 0, 0, 0, 52, 9, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0080 */ 52, 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, 1, 0, 0, 0, 0, 0,
|
||||
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,229, 35, 65,169,
|
||||
/* 0x00c0 */ 227, 19,194,168,231, 3, 64,249,224, 3, 0,145,225, 67, 0,145,
|
||||
/* 0x00d0 */ 33, 12, 7,139, 34,132, 64,248,226,255,255,181, 34, 4, 65,248,
|
||||
/* 0x00e0 */ 226,255,255,181, 32, 4, 64,209, 0, 16, 0,209, 33, 0, 0,203,
|
||||
/* 0x00f0 */ 0,252, 76,211, 0, 4, 0,209, 6,204,116,211,192, 0, 1,203,
|
||||
/* 0x0100 */ 0, 32, 0,209, 0,236,124,146,225, 35, 0,145, 31, 0, 0,145,
|
||||
/* 0x0110 */ 227, 19,190,169,229, 11, 0,249, 7,132, 0,248, 34,132, 64,248,
|
||||
/* 0x0120 */ 2,132, 0,248,194,255,255,181, 34,132, 64,248, 2,132, 0,248,
|
||||
/* 0x0130 */ 194,255,255,181, 4, 32, 0,209, 2,132, 0,248,231, 3, 0,170,
|
||||
/* 0x0140 */ 34, 12,193,168, 2, 12,129,168,194,255,255,181,224, 11, 0,249,
|
||||
/* 0x0150 */ 193, 4, 64,145,129, 0, 0,249, 34, 4, 0, 24, 34, 68, 0,184,
|
||||
/* 0x0160 */ 226,255,129, 82,224, 3, 0, 16, 91, 0, 0,148,160, 3, 0, 16,
|
||||
/* 0x0170 */ 1, 0,128, 82, 81, 0, 0,148,228, 3, 0, 42,224, 3, 6,170,
|
||||
/* 0x0180 */ 5, 0,128,210, 67, 2,128, 82, 34, 0,128, 82, 1, 0,130,210,
|
||||
/* 0x0190 */ 68, 0, 0,148,224, 3, 4, 42, 47, 0, 0,148,230, 99, 0,145,
|
||||
/* 0x01a0 */ 255, 3, 40,209,101, 2, 0, 16,228, 3, 15,170,227, 3, 7,170,
|
||||
/* 0x01b0 */ 226, 3, 0,145,225, 3, 9, 42,224, 3, 10,170,130, 1, 0,148,
|
||||
/* 0x01c0 */ 255, 3, 40,145,254, 3, 0,170,226, 15, 65,169,224, 7,194,168,
|
||||
/* 0x01d0 */ 67,128, 95,248,232, 26,128, 82, 96, 0, 31,214, 32, 32, 32, 61,
|
||||
/* 0x01e0 */ 47,112,114,111, 99, 47,115,101,108,102, 47,101,120,101, 0, 0,
|
||||
/* 0x01f0 */ 99, 28, 0, 18,127, 72, 1,113,129, 1, 0, 84, 33,252, 66,211,
|
||||
/* 0x0200 */ 65, 1, 0,180, 33, 4, 0,209, 2,120, 97,184, 67,120, 26, 83,
|
||||
/* 0x0210 */ 127, 20, 0,113,129, 0, 0, 84, 67, 0, 1, 75, 98,100, 0, 51,
|
||||
/* 0x0220 */ 2,120, 33,184, 1,255,255,181,192, 3, 95,214, 0, 0, 32,212,
|
||||
/* 0x0230 */ 192, 3, 95,214,200, 11,128, 82, 1, 0, 0,212,232, 7,128, 82,
|
||||
/* 0x0240 */ 1, 0, 0,212,192, 3, 95,214, 8, 8,128, 82, 1, 0, 0,212,
|
||||
/* 0x0250 */ 192, 3, 95,214, 40, 7,128, 82, 1, 0, 0,212,192, 3, 95,214,
|
||||
/* 0x0260 */ 168, 21,128, 82, 1, 0, 0,212,192, 3, 95,214,200, 26,128, 82,
|
||||
/* 0x0270 */ 1, 0, 0,212,192, 3, 95,214,232, 26,128, 82, 1, 0, 0,212,
|
||||
/* 0x0280 */ 192, 3, 95,214, 72, 28,128, 82, 1, 0, 0,212,192, 3, 95,214,
|
||||
/* 0x0290 */ 70,241,255, 24, 5, 0,128,210, 4, 0,128,146, 99, 0, 6, 42,
|
||||
/* 0x02a0 */ 200, 27,128, 82, 1, 0, 0,212,192, 3, 95,214, 1, 0,128,210,
|
||||
/* 0x02b0 */ 104, 4,128, 82, 2, 0, 0, 20, 8, 7,128, 82,227, 3, 2,170,
|
||||
/* 0x02c0 */ 226, 3, 1,170,225, 3, 0,170, 96, 12,128,146, 1, 0, 0,212,
|
||||
/* 0x02d0 */ 192, 3, 95,214,200, 9,128, 82,227, 3, 2,170,226, 3, 1,170,
|
||||
/* 0x02e0 */ 225, 3, 0,170, 96, 12,128,146, 1, 0, 0,212, 31, 4, 64,177,
|
||||
/* 0x02f0 */ 98, 0, 0, 84, 3, 0,128, 82, 67,104, 32, 56,192, 3, 95,214,
|
||||
/* 0x0300 */ 0, 0, 64,212, 2, 0,128, 82, 8, 0,128, 82, 1, 0, 0,212,
|
||||
/* 0x0310 */ 192, 3, 95,214,128, 1, 0,180, 3, 0, 64,249,228, 3, 1, 42,
|
||||
/* 0x0320 */ 127, 0, 4,235, 97, 0, 0, 84, 4, 8, 0,169,192, 3, 95,214,
|
||||
/* 0x0330 */ 63, 0, 31,107, 96, 24, 65,250,128,255,255, 84, 0, 64, 0,145,
|
||||
/* 0x0340 */ 246,255,255, 23,192, 3, 95,214, 3, 16, 64,169,127, 0, 2,235,
|
||||
/* 0x0350 */ 99, 0, 0, 84, 3, 0,128,210, 5, 0, 0, 20,253,123,191,169,
|
||||
/* 0x0360 */ 224, 15,128, 82,253, 3, 0,145,179,255,255,151, 95, 0, 3,235,
|
||||
/* 0x0370 */ 160, 0, 0, 84,133,104, 99, 56, 37,104, 35, 56, 99, 4, 0,145,
|
||||
/* 0x0380 */ 251,255,255, 23, 1, 4, 64,249, 33, 0, 2,139, 1, 4, 0,249,
|
||||
/* 0x0390 */ 1, 0, 64,249, 34, 0, 2,203, 2, 0, 0,249,192, 3, 95,214,
|
||||
/* 0x03a0 */ 253,123,187,169,253, 3, 0,145,243, 83, 1,169,245, 91, 2,169,
|
||||
/* 0x03b0 */ 244, 3, 0,170,243, 3, 1,170,246, 3, 2,170,245, 3, 3,170,
|
||||
/* 0x03c0 */ 96, 2, 64,249,192, 7, 0,180,161, 3, 1,145,224, 3, 20,170,
|
||||
/* 0x03d0 */ 130, 1,128,210,221,255,255,151,160, 7, 72, 41, 0, 1, 0, 53,
|
||||
/* 0x03e0 */ 160, 10,138, 82, 0, 43,164,114, 63, 0, 0,107,225, 0, 0, 84,
|
||||
/* 0x03f0 */ 128, 2, 64,249, 64, 6, 0,180, 4, 0, 0, 20, 31, 0, 1,107,
|
||||
/* 0x0400 */ 36, 32, 95,122, 97, 0, 0, 84,224, 15,128, 82,138,255,255,151,
|
||||
/* 0x0410 */ 98, 2, 64,249, 95, 64, 32,235,131,255,255, 84, 31, 0, 1,107,
|
||||
/* 0x0420 */ 169, 3, 0, 84,160, 63, 0,185,163,243, 0,145,164, 35, 65, 57,
|
||||
/* 0x0430 */ 98, 6, 64,249,128, 6, 64,249,192, 2, 63,214, 96,254,255, 53,
|
||||
/* 0x0440 */ 160,135, 71, 41, 63, 0, 0,107, 1,254,255, 84,163, 39, 65, 57,
|
||||
/* 0x0450 */ 191, 2, 31,235,100, 16, 95,122, 32, 1, 0, 84, 63, 0, 8,113,
|
||||
/* 0x0460 */ 136, 0, 0, 84, 96, 2, 64,249, 31, 64, 33,235,129, 0, 0, 84,
|
||||
/* 0x0470 */ 162, 43, 65, 57, 96, 6, 64,249,160, 2, 63,214,128, 6, 64,169,
|
||||
/* 0x0480 */ 162, 71, 64,185, 33, 0, 2,139, 0, 0, 2,203,128, 6, 0,169,
|
||||
/* 0x0490 */ 5, 0, 0, 20,226, 3, 1, 42, 97, 6, 64,249,224, 3, 20,170,
|
||||
/* 0x04a0 */ 170,255,255,151, 96, 6, 64,169,162, 67, 64,185, 33, 0, 2,139,
|
||||
/* 0x04b0 */ 0, 0, 2,203, 96, 6, 0,169,194,255,255, 23,243, 83, 65,169,
|
||||
/* 0x04c0 */ 245, 91, 66,169,253,123,197,168,192, 3, 95,214,253,123,180,169,
|
||||
/* 0x04d0 */ 253, 3, 0,145,247, 99, 3,169,247, 3, 0,170,166, 75, 0,249,
|
||||
/* 0x04e0 */ 6, 16, 64,249,249,107, 4,169, 25, 0, 6,139, 0, 32, 64,121,
|
||||
/* 0x04f0 */ 243, 83, 1,169, 31, 12, 0,113,224,114, 64,121,244, 3, 2, 42,
|
||||
/* 0x0500 */ 2, 7,128, 82,251,115, 5,169, 2,124,162,155,252, 3, 3,170,
|
||||
/* 0x0510 */ 3, 2,128, 82, 99, 16,159, 26, 19, 0,128,146,245, 91, 2,169,
|
||||
/* 0x0520 */ 165,147, 6,169,246, 3, 1,170, 99,136, 0, 17, 1, 0,128,210,
|
||||
/* 0x0530 */ 34, 3, 2,139,224, 3, 25,170, 31, 0, 2,235,160, 1, 0, 84,
|
||||
/* 0x0540 */ 4, 0, 64,185,159, 4, 0,113, 1, 1, 0, 84, 5, 8, 64,249,
|
||||
/* 0x0550 */ 4, 20, 64,249,127, 2, 5,235,164, 0, 4,139,115,146,133,154,
|
||||
/* 0x0560 */ 63, 0, 4,235, 33, 32,132,154, 0,224, 0,145,243,255,255, 23,
|
||||
/* 0x0570 */ 115,206,116,146, 33,252, 63,145, 33, 0, 19,203,224, 3, 19,170,
|
||||
/* 0x0580 */ 33,204,116,146, 5, 0,128,210, 4, 0,128, 18, 2, 0,128, 82,
|
||||
/* 0x0590 */ 26, 0,128, 82, 67,255,255,151, 19, 0, 19,203, 96, 14, 0,145,
|
||||
/* 0x05a0 */ 223, 2, 31,235,160, 67, 0,249, 64, 0,128, 82, 0, 16,159, 26,
|
||||
/* 0x05b0 */ 160,143, 0,185,128, 2,159, 90, 65, 6,128, 82,160,139, 0,185,
|
||||
/* 0x05c0 */ 64, 2,128, 82, 32, 16,128, 26,160,127, 0,185,224,114, 64,121,
|
||||
/* 0x05d0 */ 95, 3, 0,107,170, 12, 0, 84, 32, 3, 64,185, 54, 1, 0,180,
|
||||
/* 0x05e0 */ 31, 24, 0,113,225, 0, 0, 84, 34, 11, 64,249, 97, 0,128, 82,
|
||||
/* 0x05f0 */ 224, 3, 28,170, 98, 2, 2,139, 71,255,255,151, 88, 0, 0, 20,
|
||||
/* 0x0600 */ 31, 4, 0,113,193, 10, 0, 84, 56, 7, 64,185, 1, 72,140, 82,
|
||||
/* 0x0610 */ 33,106,174,114, 53, 19, 64,249, 24, 11, 30, 83,163,127, 64,185,
|
||||
/* 0x0620 */ 32, 36,216, 26,160,163, 0,185, 37,211, 64,169, 27, 8, 0, 18,
|
||||
/* 0x0630 */ 32, 23, 64,249,116, 2, 20,139,164,139, 64,185,128, 2, 0,139,
|
||||
/* 0x0640 */ 160, 79, 0,249,128, 46, 64,146,181, 83, 11,169,165, 0, 0,203,
|
||||
/* 0x0650 */ 181, 2, 0,139,160,143, 64,185,148,206,116,146,225, 3, 21,170,
|
||||
/* 0x0660 */ 2, 0, 27, 42,224, 3, 20,170, 14,255,255,151,159, 2, 0,235,
|
||||
/* 0x0670 */ 96, 0, 0, 84,224, 15,128, 82,239,254,255,151,182, 0, 0,180,
|
||||
/* 0x0680 */ 163,139, 70,169,161,195, 2,145,224, 3, 22,170, 69,255,255,151,
|
||||
/* 0x0690 */ 160, 83, 64,249,227, 3, 21,203,120, 44, 64,146, 96, 0, 8, 55,
|
||||
/* 0x06a0 */ 86, 1, 0,181, 32, 0, 0, 20,216,255,255,180,129, 2, 21,139,
|
||||
/* 0x06b0 */ 0, 0,128,210, 63,104, 32, 56, 0, 4, 0,145, 31, 0, 24,235,
|
||||
/* 0x06c0 */ 161,255,255, 84,247,255,255, 23, 32, 3, 64,249,225, 3, 0,178,
|
||||
/* 0x06d0 */ 0,128, 64,146, 31, 0, 1,235,193, 1, 0, 84, 32, 23, 64,249,
|
||||
/* 0x06e0 */ 34, 11, 64,249,161, 67, 64,249, 2, 0, 2,139, 66, 0, 1,139,
|
||||
/* 0x06f0 */ 33, 19, 64,249, 66,244,126,146, 31, 0, 1,235,161, 0, 0, 84,
|
||||
/* 0x0700 */ 224, 3, 2,203, 0, 44, 64,146, 31, 28, 0,241,104, 3, 0, 84,
|
||||
/* 0x0710 */ 226, 3, 27, 42,225, 3, 21,170,224, 3, 20,170,218,254,255,151,
|
||||
/* 0x0720 */ 160,250,255, 53,181, 2, 24,139,160, 79, 64,249,148, 2, 21,139,
|
||||
/* 0x0730 */ 31, 0, 20,235, 73, 1, 0, 84, 1, 0, 20,203, 5, 0,128,210,
|
||||
/* 0x0740 */ 4, 0,128, 18, 67, 6,128, 82,226, 3, 27, 42,224, 3, 20,170,
|
||||
/* 0x0750 */ 212,254,255,151,159, 2, 0,235,225,248,255, 84, 57,227, 0,145,
|
||||
/* 0x0760 */ 90, 7, 0, 17,154,255,255, 23,160, 75, 64,249,160, 1, 0,180,
|
||||
/* 0x0770 */ 19, 0, 0,249, 11, 0, 0, 20, 32, 0,128, 82, 1, 0,128, 82,
|
||||
/* 0x0780 */ 0,128,186,114, 64, 0, 0,185, 0,120,128, 82,224,203,186,114,
|
||||
/* 0x0790 */ 64, 4, 0,185,224, 3, 28,170,223,254,255,151,221,255,255, 23,
|
||||
/* 0x07a0 */ 224, 14, 64,249,245, 91, 66,169,249,107, 68,169,251,115, 69,169,
|
||||
/* 0x07b0 */ 96, 2, 0,139,243, 83, 65,169,247, 99, 67,169,253,123,204,168,
|
||||
/* 0x07c0 */ 192, 3, 95,214,253,123,183,169,253, 3, 0,145,243, 83, 1,169,
|
||||
/* 0x07d0 */ 243, 3, 2,170, 84, 0, 1,145,162,135, 6,169, 2, 0, 64,185,
|
||||
/* 0x07e0 */ 245, 91, 2,169,160,135, 7,169,245, 3, 3,170,160, 71, 0,249,
|
||||
/* 0x07f0 */ 3, 0,128,210,161,131, 1,145,160, 3, 2,145,162, 51, 0,249,
|
||||
/* 0x0800 */ 226, 3, 4,170,246, 3, 4,170,247, 99, 3,169,249, 35, 0,249,
|
||||
/* 0x0810 */ 247, 3, 5,170,249, 3, 6,170,226,254,255,151,130, 10, 64,249,
|
||||
/* 0x0820 */ 97, 0,128, 82,224, 3, 21,170, 66, 0, 1,145,186,254,255,151,
|
||||
/* 0x0830 */ 98,114, 64,121,161, 0,128, 82,224, 3, 21,170,182,254,255,151,
|
||||
/* 0x0840 */ 229, 3, 23,170,228, 3, 22,170,230, 3, 25,170,227, 3, 21,170,
|
||||
/* 0x0850 */ 2, 0,128, 82,161,195, 1,145,224, 3, 19,170, 23, 0,128, 82,
|
||||
/* 0x0860 */ 27,255,255,151,226, 3, 0,170,246, 3, 0,170, 33, 1,128, 82,
|
||||
/* 0x0870 */ 224, 3, 21,170,168,254,255,151, 96,114, 64,121,255, 2, 0,107,
|
||||
/* 0x0880 */ 202, 4, 0, 84,128, 2, 64,185, 31, 12, 0,113, 1, 4, 0, 84,
|
||||
/* 0x0890 */ 128, 10, 64,249, 2, 0,128, 82, 35, 3, 64,249, 1, 0,128, 82,
|
||||
/* 0x08a0 */ 96, 0, 0,139,133,254,255,151,248, 3, 0, 42, 96, 0,248, 54,
|
||||
/* 0x08b0 */ 224, 15,128, 82, 96,254,255,151, 2,128,128,210,225, 3, 19,170,
|
||||
/* 0x08c0 */ 95,254,255,151, 31, 0, 16,241, 65,255,255, 84,166, 99, 1,145,
|
||||
/* 0x08d0 */ 5, 0,128,210, 4, 0,128,210, 3, 0,128,210,226, 3, 24, 42,
|
||||
/* 0x08e0 */ 1, 0,128,210,224, 3, 19,170,191, 47, 0,249,248,254,255,151,
|
||||
/* 0x08f0 */ 246, 3, 0,170,162, 47, 64,249,224, 3, 21,170,225, 0,128, 82,
|
||||
/* 0x0900 */ 133,254,255,151,224, 3, 24, 42, 83,254,255,151,148,226, 0,145,
|
||||
/* 0x0910 */ 247, 6, 0, 17,217,255,255, 23,224, 3, 22,170,249, 35, 64,249,
|
||||
/* 0x0920 */ 243, 83, 65,169,245, 91, 66,169,247, 99, 67,169,253,123,201,168,
|
||||
/* 0x0930 */ 192, 3, 95,214
|
||||
};
|
||||
551
src/stub/arm64-linux.shlib-init.h
Normal file
551
src/stub/arm64-linux.shlib-init.h
Normal file
@ -0,0 +1,551 @@
|
||||
/* arm64-linux.shlib-init.h
|
||||
created from arm64-linux.shlib-init.bin, 8187 (0x1ffb) bytes
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996-2017 Laszlo Molnar
|
||||
Copyright (C) 2000-2017 John F. Reiser
|
||||
All Rights Reserved.
|
||||
|
||||
UPX and the UCL library are free software; you can redistribute them
|
||||
and/or modify them under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
<markus@oberhumer.com> <ezerotven+github@gmail.com>
|
||||
|
||||
John F. Reiser
|
||||
<jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
|
||||
#define STUB_ARM64_LINUX_SHLIB_INIT_SIZE 8187
|
||||
#define STUB_ARM64_LINUX_SHLIB_INIT_ADLER32 0x5a8b7b3c
|
||||
#define STUB_ARM64_LINUX_SHLIB_INIT_CRC32 0x3a7d7f09
|
||||
|
||||
unsigned char stub_arm64_linux_shlib_init[8187] = {
|
||||
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 88, 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 */ 0, 0, 32,212,253,123,190,169,224, 11, 0,249,227, 19,190,169,
|
||||
/* 0x0050 */ 230, 31, 1,169,224, 7,190,169,226, 11, 0,249,253, 3, 0,145,
|
||||
/* 0x0060 */ 0, 0, 0,148,254, 15, 31,248,226, 15,191,169, 7, 64, 33,139,
|
||||
/* 0x0070 */ 5, 0,128, 18, 4, 0,176, 82, 24, 0, 0, 20,227, 19,193,168,
|
||||
/* 0x0080 */ 0, 0, 7,203, 66, 0, 3,203,130, 0, 0,185,228, 3, 0,170,
|
||||
/* 0x0090 */ 224, 3, 3,170, 97, 0, 2,139, 32,123, 11,213, 32,117, 11,213,
|
||||
/* 0x00a0 */ 0, 0, 1,145, 31, 0, 1,235,131,255,255, 84,224, 3, 4,170,
|
||||
/* 0x00b0 */ 254, 7, 65,248,192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,
|
||||
/* 0x00c0 */ 192, 3, 95,214, 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214,
|
||||
/* 0x00d0 */ 3, 20, 64, 56, 67, 20, 0, 56,248,255,255,151,162,255,255, 84,
|
||||
/* 0x00e0 */ 33, 0,128, 82, 4, 0, 0, 20, 33, 4, 0, 81,243,255,255,151,
|
||||
/* 0x00f0 */ 33, 0, 1, 26,241,255,255,151, 33, 0, 1, 26,239,255,255,151,
|
||||
/* 0x0100 */ 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84,
|
||||
/* 0x0110 */ 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42, 5,251,255, 52,
|
||||
/* 0x0120 */ 191, 0, 0,114,165,124, 1, 19,161, 1, 0, 84, 3, 0, 0, 20,
|
||||
/* 0x0130 */ 226,255,255,151, 66, 1, 0, 84, 33, 0,128, 82,223,255,255,151,
|
||||
/* 0x0140 */ 226, 0, 0, 84,221,255,255,151, 33, 0, 1, 26,219,255,255,151,
|
||||
/* 0x0150 */ 163,255,255, 84, 33, 16, 0, 17, 4, 0, 0, 20,215,255,255,151,
|
||||
/* 0x0160 */ 33, 0, 1, 26, 33, 8, 0, 17,191, 0, 20, 49, 33, 36,129, 26,
|
||||
/* 0x0170 */ 67, 64, 33,139, 99,240, 95, 56, 67,200,101, 56, 67, 20, 0, 56,
|
||||
/* 0x0180 */ 33, 4, 0,113,161,255,255, 84,212,255,255, 23,226, 15,190,169,
|
||||
/* 0x0190 */ 254, 11, 0,249, 7, 64, 33,139, 5, 0,128, 18, 4, 0,176, 82,
|
||||
/* 0x01a0 */ 24, 0, 0, 20,227, 19,193,168, 0, 0, 7,203, 66, 0, 3,203,
|
||||
/* 0x01b0 */ 130, 0, 0,185,228, 3, 0,170,224, 3, 3,170, 97, 0, 2,139,
|
||||
/* 0x01c0 */ 32,123, 11,213, 32,117, 11,213, 0, 0, 1,145, 31, 0, 1,235,
|
||||
/* 0x01d0 */ 131,255,255, 84,224, 3, 4,170,254, 7, 65,248,192, 3, 95,214,
|
||||
/* 0x01e0 */ 132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214, 4, 68, 64,184,
|
||||
/* 0x01f0 */ 132, 0, 4, 58,192, 3, 95,214, 3, 20, 64, 56, 67, 20, 0, 56,
|
||||
/* 0x0200 */ 248,255,255,151,162,255,255, 84, 33, 0,128, 82, 4, 0, 0, 20,
|
||||
/* 0x0210 */ 33, 4, 0, 81,243,255,255,151, 33, 0, 1, 58,241,255,255,151,
|
||||
/* 0x0220 */ 33, 0, 1, 58,239,255,255,151, 67,255,255, 84, 35, 12, 0,113,
|
||||
/* 0x0230 */ 1, 0,128, 82, 35, 1, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,
|
||||
/* 0x0240 */ 229, 3, 37, 42, 5,251,255, 52,163, 0, 1, 83,165,124, 1, 83,
|
||||
/* 0x0250 */ 99, 0, 3, 43, 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x0260 */ 224,255,255,151, 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,
|
||||
/* 0x0270 */ 220,255,255,151, 33, 0, 1, 58,218,255,255,151,163,255,255, 84,
|
||||
/* 0x0280 */ 33, 8, 0, 17, 33, 4, 0, 17,191, 0, 20, 49, 33, 52,129, 26,
|
||||
/* 0x0290 */ 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,
|
||||
/* 0x02a0 */ 161,255,255, 84,215,255,255, 23, 1, 64, 33,139,225, 11,190,169,
|
||||
/* 0x02b0 */ 227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82, 31, 0, 0, 20,
|
||||
/* 0x02c0 */ 228,123, 65,169,225, 15,194,168, 0, 0, 1,203, 66, 0, 3,203,
|
||||
/* 0x02d0 */ 130, 0, 0,185,228, 3, 0,170,224, 3, 3,170, 97, 0, 2,139,
|
||||
/* 0x02e0 */ 32,123, 11,213, 32,117, 11,213, 0, 0, 1,145, 31, 0, 1,235,
|
||||
/* 0x02f0 */ 131,255,255, 84,224, 3, 4,170,192, 3, 95,214,132, 0, 4, 43,
|
||||
/* 0x0300 */ 68, 0, 0, 52,192, 3, 95,214, 4, 68, 64,184,132, 0, 4, 58,
|
||||
/* 0x0310 */ 192, 3, 95,214, 33, 0,128, 82,240, 3, 30,170,248,255,255,151,
|
||||
/* 0x0320 */ 33, 0, 1, 58,246,255,255,151,163,255,255, 84, 0, 2, 31,214,
|
||||
/* 0x0330 */ 3, 20, 64, 56, 67, 20, 0, 56,241,255,255,151,162,255,255, 84,
|
||||
/* 0x0340 */ 245,255,255,151, 35, 12, 0,113, 1, 0,128, 82,163, 0, 0, 84,
|
||||
/* 0x0350 */ 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42, 37,251,255, 52,
|
||||
/* 0x0360 */ 231,255,255,151, 33, 0, 1, 58,229,255,255,151, 33, 0, 1, 58,
|
||||
/* 0x0370 */ 97, 0, 0, 84,232,255,255,151, 33, 8, 0, 17,191, 0, 52, 49,
|
||||
/* 0x0380 */ 33, 36,129, 26, 67,200,101, 56, 33, 4, 0,113, 67, 20, 0, 56,
|
||||
/* 0x0390 */ 162,255,255, 84,233,255,255, 23,159, 56, 0,113, 1, 0, 0, 84,
|
||||
/* 0x03a0 */ 1, 64, 33,139, 4, 0,128,210,225, 11,190,169,227,123, 1,169,
|
||||
/* 0x03b0 */ 228, 19,191,169,224, 3, 0,145,227, 35, 0,145,230, 51, 0,145,
|
||||
/* 0x03c0 */ 8, 0, 64, 57, 7,192,128, 82, 8,125, 3, 83,231, 32,200, 26,
|
||||
/* 0x03d0 */ 253, 3, 0,145,231,192, 57, 17,232, 3, 0,145,255, 67, 39,203,
|
||||
/* 0x03e0 */ 100, 16,129,168,127, 0, 8,235,195,255,255, 84,230, 3, 3,170,
|
||||
/* 0x03f0 */ 229, 3, 7, 42,228, 3, 2,170, 34, 8, 0, 81,225, 3, 0,170,
|
||||
/* 0x0400 */ 39, 20, 64, 56,231, 8, 0, 18,231, 11, 0, 57, 39, 20, 64, 56,
|
||||
/* 0x0410 */ 232,124, 4, 83,232, 7, 0, 57,231, 12, 0, 18,231, 3, 0, 57,
|
||||
/* 0x0420 */ 224, 3, 0,145, 17, 0, 0,148,191, 3, 0,145,228,123, 65,169,
|
||||
/* 0x0430 */ 225, 15,194,168, 0, 0, 1,203, 66, 0, 3,203,130, 0, 0,185,
|
||||
/* 0x0440 */ 228, 3, 0,170,224, 3, 3,170, 97, 0, 2,139, 32,123, 11,213,
|
||||
/* 0x0450 */ 32,117, 11,213, 0, 0, 1,145, 31, 0, 1,235,131,255,255, 84,
|
||||
/* 0x0460 */ 224, 3, 4,170,192, 3, 95,214,243, 83,184,169, 39, 0,128, 82,
|
||||
/* 0x0470 */ 20, 16, 0,145,245, 91, 1,169,247, 99, 2,169,249,107, 3,169,
|
||||
/* 0x0480 */ 251,115, 4,169,254, 43, 0,249, 8, 4, 64, 57, 26, 8, 64, 57,
|
||||
/* 0x0490 */ 28, 0, 64, 57,127, 0, 0,185,250, 32,218, 26,223, 0, 0,185,
|
||||
/* 0x04a0 */ 231, 32,200, 26,231, 4, 0, 81,231,111, 0,185, 8, 4, 64, 57,
|
||||
/* 0x04b0 */ 7, 96,128, 82, 90, 7, 0, 81, 8, 1, 28, 11,232, 32,200, 26,
|
||||
/* 0x04c0 */ 8,217, 28, 49,224, 0, 0, 84, 7, 0,128,210, 9,128,128, 82,
|
||||
/* 0x04d0 */ 137,122, 39,120,231, 4, 0,145, 31, 1, 7,107,168,255,255, 84,
|
||||
/* 0x04e0 */ 51, 64, 34,139,127, 2, 1,235, 0, 15, 0, 84,235, 3, 1,170,
|
||||
/* 0x04f0 */ 34, 4, 0,145,103, 85, 64, 56,127, 2, 2,235, 96, 14, 0, 84,
|
||||
/* 0x0500 */ 72, 20, 64, 56,127, 1, 2,235, 7, 33, 7, 42, 97,255,255, 84,
|
||||
/* 0x0510 */ 37, 68, 0, 52, 9,176, 41,145, 59, 0,128, 82,233, 63, 0,249,
|
||||
/* 0x0520 */ 9, 1,128, 82, 41, 1, 28, 75, 10, 0,128, 18,245, 3, 27, 42,
|
||||
/* 0x0530 */ 25, 0,128, 82, 8, 0,128, 82, 2, 0,128, 82, 16,224,191, 18,
|
||||
/* 0x0540 */ 17, 0,129, 82,251,107, 0,185,251,115, 0,185,233,119, 0,185,
|
||||
/* 0x0550 */ 78, 0, 26, 10, 44,111, 28, 83, 95, 1, 16,107,201,125, 64,147,
|
||||
/* 0x0560 */ 44,193, 44,139,143,249,127,211,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0570 */ 192, 10, 0, 84,105, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x0580 */ 39, 33, 7, 42,141,122,108,120, 73,125, 11, 83,169,125, 9, 27,
|
||||
/* 0x0590 */ 255, 0, 9,107,162, 10, 0, 84,234,211, 65, 57, 63, 27, 0,113,
|
||||
/* 0x05a0 */ 8, 41,202, 26,234,111, 64,185, 79, 0, 10, 10,239, 33,220, 26,
|
||||
/* 0x05b0 */ 239, 1, 8, 11, 40, 2, 13, 75,234,117, 30, 83, 79, 1, 15, 75,
|
||||
/* 0x05c0 */ 173, 21,136, 11,239, 93,120,211,141,122, 44,120,239,217, 28,145,
|
||||
/* 0x05d0 */ 143, 6, 15,139, 45, 31, 0, 84, 72, 0, 21, 75,146,104,104, 56,
|
||||
/* 0x05e0 */ 40, 0,128, 82, 7, 0, 0, 20,236,121, 42,120, 8,121, 31, 83,
|
||||
/* 0x05f0 */ 233, 3, 14, 42,205, 56, 0, 53, 31,253, 3,113,204, 3, 0, 84,
|
||||
/* 0x0600 */ 82,122, 31, 83, 63, 1, 16,107, 77, 2, 24, 18, 22,121, 31, 83,
|
||||
/* 0x0610 */ 170,125, 64,147, 74, 1, 4,145, 74,193, 40,139,232, 0, 0, 84,
|
||||
/* 0x0620 */ 127, 1, 19,235, 41, 93, 24, 83, 0, 5, 0, 84,108, 1, 64, 57,
|
||||
/* 0x0630 */ 107, 5, 0,145,135, 33, 7, 42,236,121,106,120, 46,125, 11, 83,
|
||||
/* 0x0640 */ 55, 2, 12, 75,142,125, 14, 27,152, 21, 76, 75,140, 21,151, 11,
|
||||
/* 0x0650 */ 255, 0, 14,107, 41, 1, 14, 75,131,252,255, 84,248,121, 42,120,
|
||||
/* 0x0660 */ 200, 6, 0, 17,231, 0, 14, 75,141,252,255, 53, 31,253, 3,113,
|
||||
/* 0x0670 */ 45, 27, 0, 84, 8, 29, 0, 83,234, 3, 9, 42,136, 72, 34, 56,
|
||||
/* 0x0680 */ 66, 4, 0, 17, 63, 39, 0,113,140, 49, 0, 84, 57, 15, 0, 81,
|
||||
/* 0x0690 */ 191, 0, 2,107,232,245,255, 84, 0,224,191, 18, 95, 1, 0,107,
|
||||
/* 0x06a0 */ 136, 0, 0, 84,127, 2, 11,235, 0, 1, 0, 84,107, 5, 0,145,
|
||||
/* 0x06b0 */ 97, 1, 1,203, 97, 0, 0,185, 0, 0,128, 82,194, 0, 0,185,
|
||||
/* 0x06c0 */ 3, 0, 0, 20, 31, 32, 3,213, 32, 0,128, 82,245, 91, 65,169,
|
||||
/* 0x06d0 */ 247, 99, 66,169,249,107, 67,169,251,115, 68,169,254, 43, 64,249,
|
||||
/* 0x06e0 */ 243, 83,200,168,192, 3, 95,214, 74, 1, 9, 75,173, 21, 77, 75,
|
||||
/* 0x06f0 */ 231, 0, 9, 75,141,122, 44,120, 41,127, 64,147, 95, 1, 16,107,
|
||||
/* 0x0700 */ 41, 1, 3,145, 45,249,127,211,232, 0, 0, 84,127, 1, 19,235,
|
||||
/* 0x0710 */ 192,253,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x0720 */ 7, 33, 7, 42,140,122,105,120, 72,125, 11, 83,136,125, 8, 27,
|
||||
/* 0x0730 */ 255, 0, 8,107, 98, 25, 0, 84,234,107, 64,185, 63, 31, 0,113,
|
||||
/* 0x0740 */ 251,115, 64,185,234,115, 0,185, 42, 2, 12, 75,245,107, 0,185,
|
||||
/* 0x0750 */ 140, 21,138, 11,140,122, 41,120,105, 0,128, 82,249,179,137, 26,
|
||||
/* 0x0760 */ 9,160, 25,145, 31, 1, 16,107,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0770 */ 192,250,255, 84,106, 1, 64, 57, 8, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x0780 */ 71, 33, 7, 42, 44, 1, 64,121, 10,125, 11, 83,138,125, 10, 27,
|
||||
/* 0x0790 */ 255, 0, 10,107,226, 30, 0, 84,210,113, 29, 83, 40, 2, 12, 75,
|
||||
/* 0x07a0 */ 22, 0,128, 82,126, 0,128, 82, 82,126, 64,147,140, 21,136, 11,
|
||||
/* 0x07b0 */ 82, 10, 0,145, 44, 1, 0,121, 50, 5, 18,139,238, 3, 30, 42,
|
||||
/* 0x07c0 */ 45, 0,128, 82, 6, 0, 0, 20,232, 1, 0,121,206, 5, 0,113,
|
||||
/* 0x07d0 */ 173,121, 31, 83,234, 3, 9, 42, 32, 3, 0, 84, 95, 1, 16,107,
|
||||
/* 0x07e0 */ 183,121, 31, 83, 79,198, 45,139,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x07f0 */ 74, 93, 24, 83,160,246,255, 84,104, 1, 64, 57,107, 5, 0,145,
|
||||
/* 0x0800 */ 7, 33, 7, 42,232, 1, 64,121, 73,125, 11, 83, 44, 2, 8, 75,
|
||||
/* 0x0810 */ 9,125, 9, 27, 24, 21, 72, 75, 8, 21,140, 11,255, 0, 9,107,
|
||||
/* 0x0820 */ 74, 1, 9, 75, 35,253,255, 84,248, 1, 0,121,206, 5, 0,113,
|
||||
/* 0x0830 */ 231, 0, 9, 75,237, 6, 0, 17, 33,253,255, 84, 40, 0,128, 82,
|
||||
/* 0x0840 */ 63, 15, 0,113, 30, 33,222, 26,222, 2, 30, 75,205, 3, 13, 11,
|
||||
/* 0x0850 */ 236, 22, 0, 84,191, 13, 0,113,104, 0,128, 82,181,209,136, 26,
|
||||
/* 0x0860 */ 207, 0,128, 82,181,102, 26, 83, 46, 0,128, 82,181,126, 64,147,
|
||||
/* 0x0870 */ 181,194, 6,145,181,250,127,211, 7, 0, 0, 20, 31, 32, 3,213,
|
||||
/* 0x0880 */ 136,106, 50,120,239, 5, 0,113,206,121, 31, 83,234, 3, 9, 42,
|
||||
/* 0x0890 */ 32, 3, 0, 84, 95, 1, 16,107,214,121, 31, 83,178,198, 46,139,
|
||||
/* 0x08a0 */ 232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,224,240,255, 84,
|
||||
/* 0x08b0 */ 104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,136,106,114,120,
|
||||
/* 0x08c0 */ 73,125, 11, 83, 44, 2, 8, 75, 9,125, 9, 27, 23, 21, 72, 75,
|
||||
/* 0x08d0 */ 8, 21,140, 11,255, 0, 9,107, 74, 1, 9, 75, 35,253,255, 84,
|
||||
/* 0x08e0 */ 151,106, 50,120,239, 5, 0,113,231, 0, 9, 75,206, 6, 0, 17,
|
||||
/* 0x08f0 */ 33,253,255, 84,213, 1, 1, 81,191, 14, 0,113, 45, 17, 0, 84,
|
||||
/* 0x0900 */ 191, 54, 0,113,168, 2, 0, 18, 8, 1, 31, 50,169,126, 1, 19,
|
||||
/* 0x0910 */ 44, 32, 0, 84, 47, 5, 0, 81, 9, 86,128,210, 46,193, 53,203,
|
||||
/* 0x0920 */ 21, 33,207, 26,206, 65, 53,139,142, 6, 14,139,206, 9, 0,209,
|
||||
/* 0x0930 */ 50, 0,128, 82,247, 3, 18, 42, 8, 0, 0, 20, 31, 32, 3,213,
|
||||
/* 0x0940 */ 200, 2, 0,121, 82,122, 31, 83,234, 3, 9, 42,239, 5, 0,113,
|
||||
/* 0x0950 */ 247,122, 31, 83, 96, 14, 0, 84, 95, 1, 16,107, 88,122, 31, 83,
|
||||
/* 0x0960 */ 214,197, 50,139,232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,
|
||||
/* 0x0970 */ 192,234,255, 84,104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,
|
||||
/* 0x0980 */ 200, 2, 64,121, 73,125, 11, 83, 44, 2, 8, 75, 9,125, 9, 27,
|
||||
/* 0x0990 */ 30, 21, 72, 75, 8, 21,140, 11,255, 0, 9,107, 74, 1, 9, 75,
|
||||
/* 0x09a0 */ 3,253,255, 84,222, 2, 0,121,231, 0, 9, 75,181, 2, 23, 42,
|
||||
/* 0x09b0 */ 18, 7, 0, 17,230,255,255, 23, 40, 0,128, 82, 6, 0, 0, 20,
|
||||
/* 0x09c0 */ 8,121, 31, 83,234,121, 46,120, 31,253, 3,113,233, 3, 12, 42,
|
||||
/* 0x09d0 */ 44, 3, 0, 84, 63, 1, 16,107, 18,121, 31, 83, 14,125, 64,147,
|
||||
/* 0x09e0 */ 232, 0, 0, 84,127, 2, 11,235, 41, 93, 24, 83,224,230,255, 84,
|
||||
/* 0x09f0 */ 106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42,234,121,110,120,
|
||||
/* 0x0a00 */ 44,125, 11, 83, 45, 2, 10, 75, 76,125, 12, 27, 86, 21, 74, 75,
|
||||
/* 0x0a10 */ 74, 21,141, 11,255, 0, 12,107, 41, 1, 12, 75, 35,253,255, 84,
|
||||
/* 0x0a20 */ 72, 6, 0, 17,246,121, 46,120, 31,253, 3,113,231, 0, 12, 75,
|
||||
/* 0x0a30 */ 45,253,255, 84, 8, 29, 0, 83, 63, 15, 0,113,136, 72, 34, 56,
|
||||
/* 0x0a40 */ 234, 3, 9, 42, 66, 4, 0, 17,236,225,255, 84,191, 0, 2,107,
|
||||
/* 0x0a50 */ 25, 0,128, 82,232,215,255, 84, 16,255,255, 23, 31, 32, 3,213,
|
||||
/* 0x0a60 */ 74, 1, 8, 75,140, 21, 76, 75, 95, 1, 16,107,140,122, 41,120,
|
||||
/* 0x0a70 */ 231, 0, 8, 75,169, 97, 0,145,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0a80 */ 64,226,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x0a90 */ 7, 33, 7, 42,140,106,105,120, 72,125, 11, 83,136,125, 8, 27,
|
||||
/* 0x0aa0 */ 255, 0, 8,107,226, 9, 0, 84, 42, 2, 12, 75, 31, 1, 16,107,
|
||||
/* 0x0ab0 */ 239,129, 7,145,140, 21,138, 11,140,106, 41,120,232, 0, 0, 84,
|
||||
/* 0x0ac0 */ 127, 2, 11,235, 32,224,255, 84,105, 1, 64, 57, 8, 93, 24, 83,
|
||||
/* 0x0ad0 */ 107, 5, 0,145, 39, 33, 7, 42,137,106,111,120, 10,125, 11, 83,
|
||||
/* 0x0ae0 */ 42,125, 10, 27,255, 0, 10,107,130, 16, 0, 84, 40, 2, 9, 75,
|
||||
/* 0x0af0 */ 41, 21,136, 11,137,106, 47,120,130,222,255, 52, 72, 0, 21, 75,
|
||||
/* 0x0b00 */ 63, 31, 0,113, 41, 1,128, 82,108, 1,128, 82, 57,177,140, 26,
|
||||
/* 0x0b10 */ 136,104,104, 56,136, 72, 34, 56, 66, 4, 0, 17,221,254,255, 23,
|
||||
/* 0x0b20 */ 181, 6, 0, 49,160,219,255, 84, 57, 31, 0, 17,191, 2, 2,107,
|
||||
/* 0x0b30 */ 173, 9, 0, 17,168,220,255, 84,233, 3, 2, 42, 72, 0, 21, 75,
|
||||
/* 0x0b40 */ 173, 5, 0, 81, 66, 4, 0, 17,191, 1, 31,107,160, 16, 66,122,
|
||||
/* 0x0b50 */ 136,104,104, 56,136, 72, 41, 56,233, 3, 2, 42, 8,255,255, 84,
|
||||
/* 0x0b60 */ 191, 0, 2,107,104,207,255, 84,204,254,255, 23, 31, 32, 3,213,
|
||||
/* 0x0b70 */ 8, 1, 10, 75,140, 21, 76, 75, 31, 1, 16,107, 44, 1, 0,121,
|
||||
/* 0x0b80 */ 231, 0, 10, 75,232, 0, 0, 84,127, 2, 11,235,224,217,255, 84,
|
||||
/* 0x0b90 */ 106, 1, 64, 57, 8, 93, 24, 83,107, 5, 0,145, 71, 33, 7, 42,
|
||||
/* 0x0ba0 */ 44, 5, 64,121, 10,125, 11, 83,138,125, 10, 27,255, 0, 10,107,
|
||||
/* 0x0bb0 */ 66, 7, 0, 84,210,113, 29, 83, 40, 2, 12, 75, 22, 1,128, 82,
|
||||
/* 0x0bc0 */ 126, 0,128, 82, 82,126, 64,147,136, 21,136, 11, 82, 10, 2,145,
|
||||
/* 0x0bd0 */ 40, 5, 0,121, 50, 5, 18,139,249,254,255, 23, 31, 32, 3,213,
|
||||
/* 0x0be0 */ 74, 1, 8, 75,231, 0, 8, 75, 95, 1, 16,107,136, 21, 76, 75,
|
||||
/* 0x0bf0 */ 136,106, 41,120,172,193, 0,145,232, 0, 0, 84,127, 2, 11,235,
|
||||
/* 0x0c00 */ 64,214,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145,
|
||||
/* 0x0c10 */ 7, 33, 7, 42,137,106,108,120, 72,125, 11, 83, 40,125, 8, 27,
|
||||
/* 0x0c20 */ 255, 0, 8,107, 35, 5, 0, 84, 74, 1, 8, 75, 41, 21, 73, 75,
|
||||
/* 0x0c30 */ 95, 1, 16,107,137,106, 44,120,231, 0, 8, 75,173, 33, 1,145,
|
||||
/* 0x0c40 */ 232, 0, 0, 84,127, 2, 11,235, 0,212,255, 84,104, 1, 64, 57,
|
||||
/* 0x0c50 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,137,106,109,120,
|
||||
/* 0x0c60 */ 72,125, 11, 83, 40,125, 8, 27,255, 0, 8,107,226, 7, 0, 84,
|
||||
/* 0x0c70 */ 234, 3, 21, 42,236,107, 64,185,234,107, 0,185, 42, 2, 9, 75,
|
||||
/* 0x0c80 */ 245,115, 64,185, 41, 21,138, 11,236,115, 0,185,137,106, 45,120,
|
||||
/* 0x0c90 */ 20, 0, 0, 20, 31, 32, 3,213,231, 0, 10, 75, 50, 17, 8,145,
|
||||
/* 0x0ca0 */ 10, 1, 10, 75, 22, 2,128, 82,136, 21, 76, 75, 30, 1,128, 82,
|
||||
/* 0x0cb0 */ 40, 5, 0,121,194,254,255, 23,191, 0, 2,107, 57, 27, 0, 81,
|
||||
/* 0x0cc0 */ 136,196,255, 84,117,254,255, 23,234, 3, 21, 42,245,107, 64,185,
|
||||
/* 0x0cd0 */ 234,107, 0,185, 42, 2, 9, 75, 41, 21,138, 11,137,106, 44,120,
|
||||
/* 0x0ce0 */ 63, 31, 0,113, 10, 1,128, 82,108, 1,128, 82,233, 63, 64,249,
|
||||
/* 0x0cf0 */ 89,177,140, 26,156,254,255, 23, 41, 21, 73, 75, 8, 1, 10, 75,
|
||||
/* 0x0d00 */ 137,106, 47,120,231, 0, 10, 75,246,255,255, 23,233, 3, 14, 42,
|
||||
/* 0x0d10 */ 87,254,255, 23, 41, 21, 0, 81, 95, 1, 16,107, 8,121, 31, 83,
|
||||
/* 0x0d20 */ 232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,224,204,255, 84,
|
||||
/* 0x0d30 */ 108, 1, 64, 57,107, 5, 0,145,135, 33, 7, 42, 74,125, 1, 83,
|
||||
/* 0x0d40 */ 255, 0, 10,107, 99, 0, 0, 84,231, 0, 10, 75, 8, 1, 0, 50,
|
||||
/* 0x0d50 */ 41, 5, 0,113, 33,254,255, 84, 21,109, 28, 83, 14, 32, 25,145,
|
||||
/* 0x0d60 */ 143, 0,128, 82,243,254,255, 23, 41, 21, 73, 75,137,106, 45,120,
|
||||
/* 0x0d70 */ 233,107, 64,185,236, 3, 21, 42,231, 0, 8, 75,245, 3, 27, 42,
|
||||
/* 0x0d80 */ 72, 1, 8, 75,251,115, 64,185,236,107, 0,185,233,115, 0,185,
|
||||
/* 0x0d90 */ 212,255,255, 23, 2, 0,128, 82,227, 19,189,169,229, 27, 1,169,
|
||||
/* 0x0da0 */ 254, 19, 0,249,232, 3, 1,170, 45, 64, 34,139,233, 3, 4,170,
|
||||
/* 0x0db0 */ 142, 64, 37,139, 11, 16, 0,145, 6, 0, 64, 57, 5, 4, 64, 57,
|
||||
/* 0x0dc0 */ 4, 8, 64, 57,174, 0, 6, 11, 7, 0,128, 18,229, 32,197, 26,
|
||||
/* 0x0dd0 */ 229, 3, 37, 42,228, 32,196, 26,228, 3, 36, 42, 35, 0,128, 82,
|
||||
/* 0x0de0 */ 34, 0,128, 82, 33, 0,128, 82, 32, 0,128, 82, 6, 0,128, 82,
|
||||
/* 0x0df0 */ 230, 31, 0,185, 2, 96,128, 82,192,230,128, 82, 66, 32,206, 26,
|
||||
/* 0x0e00 */ 66, 0, 0, 11, 0,128,128,210,225, 3, 11,170, 0, 64, 0,170,
|
||||
/* 0x0e10 */ 0,128, 0,170, 32,132, 0,248, 66, 16, 0,113,204,255,255, 84,
|
||||
/* 0x0e20 */ 0, 21, 0,145,231, 0, 0,148, 31, 0, 8,235,193,255,255, 84,
|
||||
/* 0x0e30 */ 227, 67, 66,248,226, 19, 64,185, 36, 1, 3,203,128, 0, 2, 10,
|
||||
/* 0x0e40 */ 224, 47, 0,185, 0, 16, 6, 11, 97, 1, 0,145,225, 0, 0,148,
|
||||
/* 0x0e50 */ 129, 5, 0, 84,227, 23, 64,185,226, 27, 64,185, 99, 0, 4, 10,
|
||||
/* 0x0e60 */ 224,115, 64, 57, 99, 32,194, 26,226, 3, 2, 75, 66, 32, 0, 17,
|
||||
/* 0x0e70 */ 2, 36,194, 26, 99, 0, 2, 11,106,177, 57,145, 99, 4, 3, 11,
|
||||
/* 0x0e80 */ 227, 3, 3, 42, 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113,
|
||||
/* 0x0e90 */ 3, 2, 0, 84,227,125, 64,147,227, 3, 3,203, 37,105, 99, 56,
|
||||
/* 0x0ea0 */ 165,120, 31, 83, 65, 1, 8,145,164, 0, 24, 18,227, 3, 4, 42,
|
||||
/* 0x0eb0 */ 33, 4, 3,139,201, 0, 0,148, 3, 0, 0, 18,127, 32, 68,107,
|
||||
/* 0x0ec0 */ 193, 0, 0, 84, 31, 0, 4,113,195,254,255, 84, 5, 0, 0, 20,
|
||||
/* 0x0ed0 */ 225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113,163,255,255, 84,
|
||||
/* 0x0ee0 */ 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26,
|
||||
/* 0x0ef0 */ 223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20,
|
||||
/* 0x0f00 */ 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185,
|
||||
/* 0x0f10 */ 226, 7, 64,185,227, 15, 0,185,226, 11, 0,185,239, 7, 0,185,
|
||||
/* 0x0f20 */ 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82,102, 48,134, 26,
|
||||
/* 0x0f30 */ 106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148,
|
||||
/* 0x0f40 */ 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11,
|
||||
/* 0x0f50 */ 160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113,
|
||||
/* 0x0f60 */ 102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203,
|
||||
/* 0x0f70 */ 159, 0, 15,107,131, 17, 0, 84,227,125, 64,147,227, 3, 3,203,
|
||||
/* 0x0f80 */ 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145,
|
||||
/* 0x0f90 */ 143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145,
|
||||
/* 0x0fa0 */ 139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185,
|
||||
/* 0x0fb0 */ 228, 15, 64,185,227, 15, 0,185,227, 7, 64,185,227, 11, 0,185,
|
||||
/* 0x0fc0 */ 239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113,
|
||||
/* 0x0fd0 */ 102, 1,128, 82,102, 48,134, 26,106,161, 41,145, 65, 1, 0,145,
|
||||
/* 0x0fe0 */ 125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145,
|
||||
/* 0x0ff0 */ 227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82,
|
||||
/* 0x1000 */ 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84,
|
||||
/* 0x1010 */ 227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82,
|
||||
/* 0x1020 */ 165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145,
|
||||
/* 0x1030 */ 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82,
|
||||
/* 0x1040 */ 225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107,163,255,255, 84,
|
||||
/* 0x1050 */ 229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113,
|
||||
/* 0x1060 */ 194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113,
|
||||
/* 0x1070 */ 101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139,165,128, 13,145,
|
||||
/* 0x1080 */ 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148,
|
||||
/* 0x1090 */ 3, 0, 4,107,163,255,255, 84,227, 47, 0,185,127, 16, 0,113,
|
||||
/* 0x10a0 */ 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18,
|
||||
/* 0x10b0 */ 239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26,
|
||||
/* 0x10c0 */ 106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139,
|
||||
/* 0x10d0 */ 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83,
|
||||
/* 0x10e0 */ 131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113,
|
||||
/* 0x10f0 */ 65,255,255, 84,106, 17, 25,145,239,109, 28, 83,132, 0,128, 82,
|
||||
/* 0x1100 */ 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148,
|
||||
/* 0x1110 */ 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83,
|
||||
/* 0x1120 */ 132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185,
|
||||
/* 0x1130 */ 239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17,
|
||||
/* 0x1140 */ 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84,227,125, 64,147,
|
||||
/* 0x1150 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235,
|
||||
/* 0x1160 */ 194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84,224,115, 0, 57,
|
||||
/* 0x1170 */ 63, 1, 14,235,227,229,255, 84, 13, 0, 0,148, 0, 0,128, 82,
|
||||
/* 0x1180 */ 226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185,
|
||||
/* 0x1190 */ 226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185,
|
||||
/* 0x11a0 */ 255,243, 0,145, 32, 0,128, 82,246,255,255, 23,227,124, 24, 83,
|
||||
/* 0x11b0 */ 195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84,
|
||||
/* 0x11c0 */ 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42,
|
||||
/* 0x11d0 */ 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83,
|
||||
/* 0x11e0 */ 241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121,
|
||||
/* 0x11f0 */ 226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84,
|
||||
/* 0x1200 */ 2, 0,129, 82,231, 3, 2, 42, 66, 0, 3, 75, 0, 0, 0, 58,
|
||||
/* 0x1210 */ 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75,
|
||||
/* 0x1220 */ 231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121,
|
||||
/* 0x1230 */ 32, 2, 95,214,194, 3,128, 82,225, 0, 0, 16, 64, 0,128, 82,
|
||||
/* 0x1240 */ 8, 8,128, 82, 1, 0, 0,212,224, 15,128, 82,168, 11,128, 82,
|
||||
/* 0x1250 */ 1, 0, 0,212, 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82,
|
||||
/* 0x1260 */ 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46,
|
||||
/* 0x1270 */ 10, 0, 0, 0,226, 3, 30,170, 65,208, 0,209,229, 3, 1,170,
|
||||
/* 0x1280 */ 36, 68, 64,184,165, 0, 4,203, 36, 68, 64,184,164, 0, 4,139,
|
||||
/* 0x1290 */ 164, 75, 0,185, 36, 68, 64,184,164, 0, 4,139,228,207, 31,248,
|
||||
/* 0x12a0 */ 36, 68, 64,184,160, 0, 4, 11, 1, 96, 0, 17,255, 35, 0,209,
|
||||
/* 0x12b0 */ 36, 4, 64,185, 33, 48, 0,145, 33, 0, 4,139, 36, 68, 64,184,
|
||||
/* 0x12c0 */ 5, 44, 12, 83,165,124, 22, 83,132, 8, 5, 11,228,207, 31,184,
|
||||
/* 0x12d0 */ 0, 8, 5, 75,224,207, 31,184,132, 8, 5, 75, 0, 8, 5, 11,
|
||||
/* 0x12e0 */ 229,207, 31,184, 16, 0, 0,148, 99, 28, 0, 18,127, 64, 1,113,
|
||||
/* 0x12f0 */ 129, 1, 0, 84, 33,252, 66,211, 65, 1, 0,180, 33, 4, 0,209,
|
||||
/* 0x1300 */ 2,120, 97,184, 67,120, 26, 83,127, 20, 0,113,129, 0, 0, 84,
|
||||
/* 0x1310 */ 66, 0, 1, 75, 98, 20, 26, 83, 2,120, 33,184, 1,255,255,181,
|
||||
/* 0x1320 */ 192, 3, 95,214,254,207, 31,248, 35, 20, 64, 57,227,207, 31,248,
|
||||
/* 0x1330 */ 35, 24, 64, 57,227,207, 31,248,228,207, 31,248,224,207, 31,248,
|
||||
/* 0x1340 */ 36, 68, 64,184,229, 3, 4, 42, 36, 68, 64,184,228,207, 31,248,
|
||||
/* 0x1350 */ 226,207, 31,248,163, 83, 1,209,227,207, 31,248,224,207, 31,248,
|
||||
/* 0x1360 */ 229,207, 31,248,225,207, 31,248, 35, 4, 64,146,165, 12, 0,145,
|
||||
/* 0x1370 */ 165, 0, 3,139,163, 3, 93,184, 98, 8, 69,139,163,131, 89,184,
|
||||
/* 0x1380 */ 115, 0, 0,148,163,131, 92,184,113, 0, 0,148, 67, 0, 0,148,
|
||||
/* 0x1390 */ 4, 0,128,146, 67, 6,128,210, 98, 0,128,210,161,195, 93,248,
|
||||
/* 0x13a0 */ 160,131, 93,248,230, 3, 0,170,200, 27,128, 82, 1, 0, 0,212,
|
||||
/* 0x13b0 */ 31, 0, 6,235, 64, 0, 0, 84, 0, 0, 32,212,165, 3, 93,184,
|
||||
/* 0x13c0 */ 161, 67, 95,248, 44, 0, 0,148,226, 15, 65,169,224, 7,194,168,
|
||||
/* 0x13d0 */ 228, 7, 65,248,128, 0, 63,214,255, 35, 0,145, 10, 0, 0,148,
|
||||
/* 0x13e0 */ 232, 26,128, 82, 1, 0, 0,212,226, 11, 64,249,224, 7,194,168,
|
||||
/* 0x13f0 */ 230, 31, 65,169,228, 23,194,168,225, 11, 64,249,253,123,194,168,
|
||||
/* 0x1400 */ 32, 0, 31,214,164,195, 95,184,192, 7, 64,169,128, 4, 0,169,
|
||||
/* 0x1410 */ 226, 15, 65,169,224, 7,194,168,228, 51,193,168, 67, 0, 0,180,
|
||||
/* 0x1420 */ 128, 0, 63,214,224, 3, 64,249,225, 67, 64,248, 2, 0,128,210,
|
||||
/* 0x1430 */ 33, 0, 0,139, 33, 32, 0,145, 8, 0,176, 82, 1, 0, 0,212,
|
||||
/* 0x1440 */ 224, 7,193,168,162, 0,128,210, 72, 28,128, 82, 1, 0, 0,212,
|
||||
/* 0x1450 */ 254, 11, 64,249,224, 7,194,168,192, 3, 31,214, 37,192, 95,184,
|
||||
/* 0x1460 */ 165, 92, 0, 18,165, 4, 0, 17, 35, 68, 64,184,165, 4, 0, 81,
|
||||
/* 0x1470 */ 3, 68, 0,184,191, 8, 0,114,129,255,255, 84,165,124, 3, 83,
|
||||
/* 0x1480 */ 165, 0, 0, 52, 34, 12,193,168,165, 4, 0,113, 2, 12,129,168,
|
||||
/* 0x1490 */ 165,255,255, 53,192, 3, 95,214,254,207, 31,248,227, 3, 30,170,
|
||||
/* 0x14a0 */ 43, 0, 0,148, 65,244,126,211, 4, 0,128,146, 67, 4,128,210,
|
||||
/* 0x14b0 */ 226, 0,128,210,161,195, 31,248, 0, 0,128,210,200, 27,128, 82,
|
||||
/* 0x14c0 */ 1, 0, 0,212, 31, 4, 64,177, 67, 0, 0, 84, 0, 0, 32,212,
|
||||
/* 0x14d0 */ 160, 67, 31,248,161,131, 93,184,165, 3, 93,184,230,255,255,151,
|
||||
/* 0x14e0 */ 161,131, 87,184,165,195, 87,184, 35, 4, 0, 18, 33, 0, 3, 75,
|
||||
/* 0x14f0 */ 165, 0, 3, 11, 99, 0, 0, 11,163,131, 23,184,165, 28, 0, 17,
|
||||
/* 0x1500 */ 165,124, 3, 83,220,255,255,151,226, 3, 0,170,161,131, 89,248,
|
||||
/* 0x1510 */ 160,131, 25,248,210,255,255,151,161,131, 92,248,160,131, 28,248,
|
||||
/* 0x1520 */ 207,255,255,151,225, 71, 64,248,224,207, 31,248,204,255,255,151,
|
||||
/* 0x1530 */ 225, 3, 0,170,224, 3, 2,170, 2, 0,128,210, 8, 0,176, 82,
|
||||
/* 0x1540 */ 1, 0, 0,212,254, 71, 64,248,192, 3, 31,214, 99,192, 95,184,
|
||||
/* 0x1550 */ 99, 92, 0, 18, 99, 4, 0, 17, 66, 0, 3,139,192, 3, 95,214,
|
||||
/* 0x1560 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54,
|
||||
/* 0x1570 */ 52, 45,108,105,116,116,108,101, 97, 97,114, 99,104, 54, 52, 10,
|
||||
/* 0x1580 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78,
|
||||
/* 0x1590 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,
|
||||
/* 0x15a0 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x15b0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32,
|
||||
/* 0x15c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,
|
||||
/* 0x15d0 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115,
|
||||
/* 0x15e0 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32,
|
||||
/* 0x15f0 */ 32, 32, 32, 48, 48, 48, 48, 48, 48, 50, 52, 32, 32, 48, 48, 48,
|
||||
/* 0x1600 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
|
||||
/* 0x1610 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1620 */ 32, 48, 48, 48, 48, 48, 48, 52, 48, 32, 32, 50, 42, 42, 50, 32,
|
||||
/* 0x1630 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 76, 79, 67,
|
||||
/* 0x1640 */ 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 49, 32, 78,
|
||||
/* 0x1650 */ 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48, 48, 48,
|
||||
/* 0x1660 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1670 */ 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1680 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x1690 */ 48, 54, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69,
|
||||
/* 0x16a0 */ 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32,
|
||||
/* 0x16b0 */ 50, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x16c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x16d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x16e0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x16f0 */ 48, 48, 48, 48, 54, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
|
||||
/* 0x1700 */ 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89,
|
||||
/* 0x1710 */ 10, 32, 32, 51, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1720 */ 32, 32, 32, 48, 48, 48, 48, 48, 49, 50, 56, 32, 32, 48, 48, 48,
|
||||
/* 0x1730 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48,
|
||||
/* 0x1740 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1750 */ 32, 48, 48, 48, 48, 48, 48, 54, 52, 32, 32, 50, 42, 42, 50, 32,
|
||||
/* 0x1760 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79,
|
||||
/* 0x1770 */ 78, 76, 89, 10, 32, 32, 52, 32, 78, 82, 86, 50, 68, 32, 32, 32,
|
||||
/* 0x1780 */ 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 49, 49, 99, 32, 32,
|
||||
/* 0x1790 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x17a0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x17b0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 49, 56, 99, 32, 32, 50, 42,
|
||||
/* 0x17c0 */ 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
|
||||
/* 0x17d0 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 53, 32, 78, 82, 86, 50, 66,
|
||||
/* 0x17e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 48, 48, 48, 48, 48,102,
|
||||
/* 0x17f0 */ 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1800 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1810 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 50, 97, 56, 32,
|
||||
/* 0x1820 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
|
||||
/* 0x1830 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 54, 32, 76, 90,
|
||||
/* 0x1840 */ 77, 65, 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x1850 */ 48, 48,100, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1860 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1870 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 51,
|
||||
/* 0x1880 */ 57, 56, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78,
|
||||
/* 0x1890 */ 84, 83, 44, 32, 82, 69, 76, 79, 67, 44, 32, 82, 69, 65, 68, 79,
|
||||
/* 0x18a0 */ 78, 76, 89, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
||||
/* 0x18b0 */ 50, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 57, 51, 48, 32, 32,
|
||||
/* 0x18c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x18d0 */ 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x18e0 */ 48, 48, 32, 32, 48, 48, 48, 48, 48, 52, 54, 56, 32, 32, 50, 42,
|
||||
/* 0x18f0 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69,
|
||||
/* 0x1900 */ 65, 68, 79, 78, 76, 89, 10, 32, 32, 56, 32, 76, 90, 77, 65, 95,
|
||||
/* 0x1910 */ 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 48, 48, 48, 48, 52, 57,
|
||||
/* 0x1920 */ 99, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1930 */ 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1940 */ 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,100, 57, 56, 32,
|
||||
/* 0x1950 */ 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 44,
|
||||
/* 0x1960 */ 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 32, 57, 32, 76, 90,
|
||||
/* 0x1970 */ 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x1980 */ 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1990 */ 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 49, 50,
|
||||
/* 0x19b0 */ 51, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
|
||||
/* 0x19c0 */ 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10, 32, 49, 48,
|
||||
/* 0x19d0 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48,
|
||||
/* 0x19e0 */ 48, 48, 48, 48, 48, 51,101, 32, 32, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x19f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48, 48, 48,
|
||||
/* 0x1a00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48, 48,
|
||||
/* 0x1a10 */ 48, 49, 50, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78,
|
||||
/* 0x1a20 */ 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78, 76, 89, 10,
|
||||
/* 0x1a30 */ 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32,
|
||||
/* 0x1a40 */ 32, 32, 48, 48, 48, 48, 48, 50,101, 99, 32, 32, 48, 48, 48, 48,
|
||||
/* 0x1a50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 48, 48,
|
||||
/* 0x1a60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32,
|
||||
/* 0x1a70 */ 48, 48, 48, 48, 49, 50, 55, 52, 32, 32, 50, 42, 42, 50, 32, 32,
|
||||
/* 0x1a80 */ 67, 79, 78, 84, 69, 78, 84, 83, 44, 32, 82, 69, 65, 68, 79, 78,
|
||||
/* 0x1a90 */ 76, 89, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58,
|
||||
/* 0x1aa0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ab0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68,
|
||||
/* 0x1ac0 */ 69, 67, 51, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ad0 */ 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48,
|
||||
/* 0x1ae0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1af0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73,
|
||||
/* 0x1b00 */ 78, 90, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b10 */ 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48,
|
||||
/* 0x1b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
|
||||
/* 0x1b30 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 9, 48,
|
||||
/* 0x1b40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1b50 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1b60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
|
||||
/* 0x1b70 */ 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 9, 48, 48, 48, 48, 48,
|
||||
/* 0x1b80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95,
|
||||
/* 0x1b90 */ 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ba0 */ 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82,
|
||||
/* 0x1bb0 */ 86, 95, 84, 65, 73, 76, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 95, 84, 65, 73, 76,
|
||||
/* 0x1bd0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1be0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 69, 9,
|
||||
/* 0x1bf0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c00 */ 32, 78, 82, 86, 50, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c10 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
|
||||
/* 0x1c20 */ 78, 82, 86, 50, 68, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c30 */ 48, 48, 48, 48, 48, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48,
|
||||
/* 0x1c40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
|
||||
/* 0x1c50 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48,
|
||||
/* 0x1c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 78, 82, 86,
|
||||
/* 0x1c70 */ 50, 66, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1c80 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65,
|
||||
/* 0x1c90 */ 95, 69, 76, 70, 48, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ca0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70,
|
||||
/* 0x1cb0 */ 48, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1cc0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65,
|
||||
/* 0x1cd0 */ 95, 68, 69, 67, 50, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ce0 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
||||
/* 0x1cf0 */ 50, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d00 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65,
|
||||
/* 0x1d10 */ 95, 68, 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d20 */ 48, 48, 48, 48, 48, 48, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
|
||||
/* 0x1d30 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d40 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
|
||||
/* 0x1d50 */ 65, 73, 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1d60 */ 48, 48, 48, 48, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48,
|
||||
/* 0x1d70 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
|
||||
/* 0x1d80 */ 103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
|
||||
/* 0x1d90 */ 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1da0 */ 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1db0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32,
|
||||
/* 0x1dc0 */ 70, 32, 78, 82, 86, 50, 69, 9, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1dd0 */ 48, 48, 48, 48, 48, 49, 50, 56, 32,117, 99,108, 95,110,114,118,
|
||||
/* 0x1de0 */ 50,101, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50,
|
||||
/* 0x1df0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e00 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 9,
|
||||
/* 0x1e10 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 49, 49, 99,
|
||||
/* 0x1e20 */ 32,117, 99,108, 95,110,114,118, 50,100, 95,100,101, 99,111,109,
|
||||
/* 0x1e30 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32,
|
||||
/* 0x1e50 */ 70, 32, 78, 82, 86, 50, 66, 9, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e60 */ 48, 48, 48, 48, 48, 48,102, 48, 32,117, 99,108, 95,110,114,118,
|
||||
/* 0x1e70 */ 50, 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50,
|
||||
/* 0x1e80 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1e90 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68,
|
||||
/* 0x1ea0 */ 69, 67, 49, 48, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1eb0 */ 48, 48, 48, 48, 48, 32, 76,122,109, 97, 68,101, 99,111,100,101,
|
||||
/* 0x1ec0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ed0 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
|
||||
/* 0x1ee0 */ 78, 89, 9, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
|
||||
/* 0x1ef0 */ 48, 48, 48, 32,101,110,100, 95,100,101, 99,111,109,112,114,101,
|
||||
/* 0x1f00 */ 115,115, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82,
|
||||
/* 0x1f10 */ 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77,
|
||||
/* 0x1f20 */ 65, 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
|
||||
/* 0x1f30 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
|
||||
/* 0x1f40 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
|
||||
/* 0x1f50 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 50, 48,
|
||||
/* 0x1f60 */ 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76, 76, 50,
|
||||
/* 0x1f70 */ 54, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 10, 82, 69, 76,
|
||||
/* 0x1f80 */ 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32,
|
||||
/* 0x1f90 */ 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 93,
|
||||
/* 0x1fa0 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1fb0 */ 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32,
|
||||
/* 0x1fc0 */ 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48,
|
||||
/* 0x1fd0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32, 82, 95, 65, 65,
|
||||
/* 0x1fe0 */ 82, 67, 72, 54, 52, 95, 67, 79, 78, 68, 66, 82, 49, 57, 32, 32,
|
||||
/* 0x1ff0 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10
|
||||
};
|
||||
58
src/stub/src/arch/arm64/v8/Makefile.extra
Normal file
58
src/stub/src/arch/arm64/v8/Makefile.extra
Normal file
@ -0,0 +1,58 @@
|
||||
MAKEFLAGS += -rR
|
||||
.SUFFIXES:
|
||||
.SECONDEXPANSION:
|
||||
|
||||
ifndef top_srcdir
|
||||
__dir_list = . .. ../.. ../../.. ../../../.. ../../../../..
|
||||
__dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../..
|
||||
__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3)
|
||||
top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND)
|
||||
endif
|
||||
include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local)
|
||||
vpath %.c $(top_srcdir)/src/stub/src/c
|
||||
|
||||
STUBS =
|
||||
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
|
||||
ifneq ($(UPX_LZMA_VERSION),)
|
||||
STUBS += lzma_d_cf.S lzma_d_cs.S
|
||||
endif
|
||||
|
||||
default.targets = all
|
||||
ifeq ($(strip $(STUBS)),)
|
||||
STUBS = NO_STUBS
|
||||
all.targets =
|
||||
endif
|
||||
include $(top_srcdir)/src/stub/Makefile
|
||||
|
||||
|
||||
# /***********************************************************************
|
||||
# // method-lzma
|
||||
# ************************************************************************/
|
||||
|
||||
lzma_d_c%.S : tc_list = method-lzma arm64-linux.elf default
|
||||
lzma_d_c%.S : tc_bfdname = elf64-littleaarch64
|
||||
|
||||
c := tc.method-lzma.gcc
|
||||
$c = $(tc.arm64-linux.elf.gcc)
|
||||
$c += -fomit-frame-pointer
|
||||
$c += -fno-unit-at-a-time
|
||||
$c += -ffunction-sections
|
||||
$c += -fwrapv
|
||||
$c += -DWITH_LZMA=$(UPX_LZMA_VERSION)
|
||||
$c += -I$(UPX_LZMADIR)
|
||||
$c += -I$(top_srcdir)/src
|
||||
$c += -Wno-error
|
||||
|
||||
tc.method-lzma.objcopy = /usr/bin/aarch64-linux-gnu-objcopy
|
||||
tc.method-lzma.objdump = /usr/bin/aarch64-linux-gnu-objdump
|
||||
|
||||
lzma_d_c%.S : lzma_d_c.c
|
||||
$(call tc,gcc) $(PP_FLAGS) -c $< -o tmp/$T.o
|
||||
$(call tc,f-objstrip,tmp/$T.o)
|
||||
$(call tc,objcopy) -O binary --only-section .text.LzmaDecode tmp/$T.o tmp/$T.bin
|
||||
head -c-4 tmp/$T.bin > tmp/$T.out
|
||||
$(call tc,objdump) -b binary -m aarch64 -D tmp/$T.out | $(RTRIM) > tmp/$T.out.disasm
|
||||
$(call tc,bin2h) --mode=gas tmp/$T.out $@
|
||||
|
||||
lzma_d_cf.% : PP_FLAGS = -DFAST -O2
|
||||
lzma_d_cs.% : PP_FLAGS = -DSMALL -Os
|
||||
@ -71,8 +71,9 @@ Align= (SpecPos + kNumFullDistances - kEndPosModelIndex)
|
||||
RepLenCoder= (LenCoder + kNumLenProbs)
|
||||
Literal= (RepLenCoder + kNumLenProbs)
|
||||
|
||||
LZMA_BASE_SIZE= Literal /* 1846 */
|
||||
LZMA_LIT_SIZE= 768
|
||||
// Already #define in lzma_d.S
|
||||
//LZMA_BASE_SIZE= Literal
|
||||
//LZMA_LIT_SIZE= 768
|
||||
|
||||
#define call bl /* subroutine call */
|
||||
|
||||
@ -137,7 +138,7 @@ vs_lc= 0
|
||||
*/
|
||||
LzmaDecode: .globl LzmaDecode
|
||||
// save &inSizeProcesesed and caller registers
|
||||
PUSH5(x3,x4,x5,x6, x30)
|
||||
PUSH5(x3,x4,x5,x6, lr)
|
||||
mov inPtr,x1
|
||||
add inLim,x1,w2, uxtw
|
||||
mov outPtr,x4
|
||||
@ -489,8 +490,8 @@ rcGetBit_mi: // rcGetBit(mi, mi + p_in)
|
||||
add p_in,p_in,mi, uxtw #1
|
||||
rcGetBit: // Out: CC set on mo
|
||||
lsr t0,Range,#kNumTopBits
|
||||
mov t2x,x30 // save lr if need rcLoad
|
||||
adr x30,rcGetBitCont; cbz t0,rcLoad // conditional subroutine call
|
||||
mov t2x,lr // save lr if need rcLoad
|
||||
adr lr,rcGetBitCont; cbz t0,rcLoad // conditional subroutine call
|
||||
rcGetBitCont:
|
||||
#define starp t0
|
||||
#define bound t1
|
||||
|
||||
@ -1,525 +1,165 @@
|
||||
// In LZMA SDK 4.63 file lzma.txt (2008-12-30):
|
||||
// LZMA SDK is written and placed in the public domain by Igor Pavlov.
|
||||
// The creative expression of this hand compilation into assembly language,
|
||||
// including (but not limited to) code organization and register assignment,
|
||||
// remains copyright by John F. Reiser and licensed under GNU Lesser General
|
||||
// Public License (GNU LGPL).
|
||||
/* lzma_d.S -- arm64 decompressor for LZMA
|
||||
|
||||
// Hand compiled Copyright (c) 2006-2017 John F. Reiser (2007-06-18)
|
||||
// from modified LzmaDecode.c.
|
||||
// LZMA SDK 4.40 Copyright (c) 1999-2017 Igor Pavlov (2006-05-01)
|
||||
//
|
||||
// This file is licensed under either of these two licenses:
|
||||
// 1) GNU Lesser General Public License (GNU LGPL)
|
||||
// 2) Common Public License (CPL)
|
||||
// See files LGPL.txt and CPL.html for the text of the licenses.
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
#include "macros.S"
|
||||
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996-2017 Laszlo Molnar
|
||||
Copyright (C) 2000-2017 John F. Reiser
|
||||
All Rights Reserved.
|
||||
|
||||
kLzmaStreamWasFinishedId= (-1)
|
||||
UPX and the UCL library are free software; you can redistribute them
|
||||
and/or modify them under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
kNumTopBits= 24
|
||||
kTopValue= 1<<kNumTopBits
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
kNumBitModelTotalBits= 11
|
||||
kBitModelTotal= (1 << kNumBitModelTotalBits)
|
||||
kNumMoveBits= 5
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
kNumPosBitsMax= 4
|
||||
kNumPosStatesMax= (1 << kNumPosBitsMax)
|
||||
Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
<markus@oberhumer.com> <ezerotven+github@gmail.com>
|
||||
|
||||
kLenNumLowBits= 3
|
||||
kLenNumLowSymbols= (1 << kLenNumLowBits)
|
||||
kLenNumMidBits= 3
|
||||
kLenNumMidSymbols= (1 << kLenNumMidBits)
|
||||
kLenNumHighBits= 8
|
||||
kLenNumHighSymbols= (1 << kLenNumHighBits)
|
||||
|
||||
LenChoice= 0
|
||||
LenChoice2= (LenChoice + 1)
|
||||
LenLow= (LenChoice2 + 1)
|
||||
LenMid= (LenLow + (kNumPosStatesMax << kLenNumLowBits))
|
||||
LenHigh= (LenMid + (kNumPosStatesMax << kLenNumMidBits))
|
||||
kNumLenProbs= (LenHigh + kLenNumHighSymbols)
|
||||
|
||||
kNumStates= 12
|
||||
kNumLitStates= 7
|
||||
|
||||
kStartPosModelIndex= 4
|
||||
kEndPosModelIndex= 14
|
||||
kNumFullDistances= (1 << (kEndPosModelIndex >> 1))
|
||||
|
||||
kNumPosSlotBits= 6
|
||||
kNumLenToPosStates= 4
|
||||
|
||||
kNumAlignBits= 4
|
||||
kAlignTableSize= (1 << kNumAlignBits)
|
||||
|
||||
kMatchMinLen= 2
|
||||
|
||||
IsMatch= 0
|
||||
IsRep= (IsMatch + (kNumStates << kNumPosBitsMax))
|
||||
IsRepG0= (IsRep + kNumStates)
|
||||
IsRepG1= (IsRepG0 + kNumStates)
|
||||
IsRepG2= (IsRepG1 + kNumStates)
|
||||
IsRep0Long= (IsRepG2 + kNumStates)
|
||||
PosSlot= (IsRep0Long + (kNumStates << kNumPosBitsMax))
|
||||
SpecPos= (PosSlot + (kNumLenToPosStates << kNumPosSlotBits))
|
||||
Align= (SpecPos + kNumFullDistances - kEndPosModelIndex)
|
||||
|
||||
LenCoder= (Align + kAlignTableSize)
|
||||
RepLenCoder= (LenCoder + kNumLenProbs)
|
||||
Literal= (RepLenCoder + kNumLenProbs)
|
||||
|
||||
LZMA_BASE_SIZE= Literal /* 1846 */
|
||||
LZMA_LIT_SIZE= 768
|
||||
|
||||
#define call bl /* subroutine call */
|
||||
|
||||
#define symbol mi
|
||||
#define mo mi
|
||||
|
||||
#define mi w0
|
||||
#define p_in x1
|
||||
#define t1 w2
|
||||
#define t1x x2
|
||||
#define t0 w3
|
||||
#define t0x x3
|
||||
|
||||
#define bit w4
|
||||
#define bitx x4
|
||||
#define i w5
|
||||
#define ix x5
|
||||
#define state w6
|
||||
#define Range w7
|
||||
|
||||
#define inPtr x8
|
||||
#define outPtr x9
|
||||
#define prob x10
|
||||
#define p x11
|
||||
|
||||
#define Code w12
|
||||
#define inLim x13
|
||||
#define outLim x14
|
||||
|
||||
#define rep0 w15
|
||||
|
||||
#define t2x x17
|
||||
|
||||
#define nowPos bit /* temporary only */
|
||||
#define nowPosx bitx /* temporary only */
|
||||
#define distance bit
|
||||
#define numDirectBits bit
|
||||
#define hibit bit
|
||||
#define matchB i
|
||||
#define probLen ix
|
||||
#define probLit ix
|
||||
#define posSlot posState
|
||||
#define r_posSlot t0
|
||||
|
||||
#define r_len i
|
||||
|
||||
#define vs x0
|
||||
vs_ps= 2
|
||||
vs_lp= 1
|
||||
vs_lc= 0
|
||||
|
||||
#if !defined(PARAMETER_STYLE) /*{*/
|
||||
#define PARAMETER_STYLE 1
|
||||
// Possible choices:
|
||||
// 1 /* 0 bytes; 1-byte encoding of pb,lp,lc [default] */
|
||||
// 2 /* -24 bytes; 2-byte encoding requires no division */
|
||||
// 3 /* -32 bytes; separate bytes lc,lp,pb,xx at -4+ probs */
|
||||
#endif /*}*/
|
||||
|
||||
/* LzmaDecode(x0=vs, x1=inStream, w2=inSize, x3= &inSizeProcessed,
|
||||
x4= outStream, w5= outSize, x6= &outSizeProcessed)
|
||||
John F. Reiser
|
||||
<jreiser@users.sourceforge.net>
|
||||
*/
|
||||
LzmaDecode: .globl LzmaDecode
|
||||
// save &inSizeProcesesed and caller registers
|
||||
PUSH5(x3,x4,x5,x6, x30)
|
||||
mov inPtr,x1
|
||||
add inLim,x1,w2, uxtw
|
||||
mov outPtr,x4
|
||||
add outLim,x4,w5, uxtw
|
||||
|
||||
#if 1==PARAMETER_STYLE /*{ [0]: pb*45 + lp*9 + lc */
|
||||
mov p,vs
|
||||
ldrb w6,[inPtr],#1
|
||||
#define section .section
|
||||
|
||||
mov w0,#45; udiv w4,w6,w0 // w4 = quo(w6, 45) = pb
|
||||
mul w0,w0,w4; sub w6,w6,w0 // w6 = rem(w6, 45)
|
||||
section LZMA_ELF00
|
||||
//decompress: // (uchar const *src, size_t lsrc, uchar *dst, u32 &ldst, uint method)
|
||||
/* Arguments according to calling convention */
|
||||
src .req x0
|
||||
#define lsrc w1
|
||||
dst .req x2
|
||||
#define ldst x3 /* Out: actually a reference: &len_dst */
|
||||
#define meth w4
|
||||
|
||||
mov w0,#9; udiv w5,w6,w0 // w5 = quo(w6, 9) = lp
|
||||
mul w0,w0,w5; sub w6,w6,w0 // w6 = rem(w6, 9) = lc
|
||||
#endif /*}*/
|
||||
#define M_LZMA 14
|
||||
cmp meth,#M_LZMA; bne not_lzma
|
||||
|
||||
#if 2==PARAMETER_STYLE /*{ [0]: ((lc + lp)<<3) | pb; [1]: (lp<<4) | lc */
|
||||
mov p,vs
|
||||
ldrb w4,[inPtr],#1; and w4,w4,#7 // pb
|
||||
ldrb w6,[inPtr],#1; mov w5,w6,lsr #4 // lp
|
||||
and w6,w6,#0xf // lc
|
||||
add x1,src,len,uxtw // x1= eof_src;
|
||||
mov x4,#0
|
||||
PUSH4(x1,x2,x3, lr)
|
||||
|
||||
#endif /*}*/
|
||||
PUSH2(x4,x4) // clear CLzmaDecoderState, inSizeProcessed, outSizeProcessed
|
||||
State= 0
|
||||
#define a0 x0 /* &CLzmaDecoderState */
|
||||
add a0,sp,#State
|
||||
#define a1 x1 /* inp */
|
||||
#define a2 w2 /* inSize */
|
||||
#define a3 x3 /* &inSizeProcessed */
|
||||
add a3,sp,#8
|
||||
#define a4 x4 /* outp */
|
||||
#define a5 w5 /* outSize */
|
||||
#define a6 x6 /* &outSizeProcessed */
|
||||
add a6,sp,#12
|
||||
|
||||
#if 3==PARAMETER_STYLE /*{ lc,lp,pb,xx in separate bytes before probs[] */
|
||||
add p,vs,#4
|
||||
ldrb w6,[vs, #vs_lc]
|
||||
ldrb w5,[vs, #vs_lp]
|
||||
ldrb w4,[vs, #vs_ps]
|
||||
#endif /*}*/
|
||||
#undef vs
|
||||
#define t0 w7
|
||||
#define t1 w8
|
||||
#define t1x x8
|
||||
|
||||
add w14,w5,w6 // lp + lc
|
||||
mov Range,#~0
|
||||
lsl w5,Range,w5; mvn w5,w5 // ~(~0<<lp) == litPosMask
|
||||
lsl w4,Range,w4; mvn w4,w4 // ~(~0<<ps) == posStateMask
|
||||
mov w3,#1
|
||||
mov w2,#1
|
||||
mov w1,#1
|
||||
mov w0,#1
|
||||
// FIXME stmdb sp!,{r0,r1,r2,r3, r4,r5,r6,r7, r8,r9,r10,r11, r12,r14}
|
||||
//#define rep0 [sp, #0*4]
|
||||
#define rep1 [sp, #1*4]
|
||||
#define rep2 [sp, #2*4]
|
||||
#define rep3 [sp, #3*4]
|
||||
#define posStateMask [sp, #4*4]
|
||||
#define litPosMask [sp, #5*4]
|
||||
#define lc [sp, #6*4]
|
||||
#define prevB [sp, #7*4]
|
||||
#define inBuf [sp, #8*4]
|
||||
#define outBuf [sp, #9*4]
|
||||
//#define outLim [sp, #10*4]
|
||||
#define posState [sp, #11*4]
|
||||
//#define inLim [sp, #12*4]
|
||||
#define m_len [sp, #13*4]
|
||||
#define fp x29
|
||||
|
||||
#define inSizeProcessed [sp, #(14 )*4]
|
||||
#define outSizeProcessed [sp, #(14+10+2)*4]
|
||||
//The target is:
|
||||
//LzmaDecode( // from lzmaSDK/C/7zip/Compress/LZMA_C/LzmaDecode.h
|
||||
// a0= &CLzmaDecoderState,
|
||||
// a1= inp, a2= inSize, a3= &inSizeProcessed,
|
||||
// a4= outp, a5= outSize, a6= &outSizeProcessed
|
||||
//)
|
||||
#define LZMA_BASE_SIZE 1846
|
||||
#define LZMA_LIT_SIZE 768
|
||||
|
||||
mov state,#0
|
||||
str state,prevB
|
||||
ldrb t1,[src,#0] // first byte, replaces LzmaDecodeProperties()
|
||||
mov t0,#2*LZMA_LIT_SIZE
|
||||
lsr t1,t1,#3 // lit_context_bits + lit_pos_bits
|
||||
lslv t0,t0,t1 // 2*LZMA_LIT_SIZE << (lit_context_bits + lit_pos_bits)
|
||||
mov fp,sp
|
||||
#define W 4 /* even #bits to round up so that 8 bits span all the 1's */
|
||||
add t0,t0,#((~(~0<<W) + 2*LZMA_BASE_SIZE)>>W)<<W
|
||||
|
||||
mov t1x,sp
|
||||
sub sp,sp,t0,uxtw
|
||||
|
||||
mov w2,#LZMA_LIT_SIZE
|
||||
mov w0,#LZMA_BASE_SIZE
|
||||
lsl w2,w2,w14 // LZMA_LIT_SIZE << (lp + lc)
|
||||
add w2,w2,w0
|
||||
mov x0,#(kBitModelTotal>>1) // 0.5 starting probability
|
||||
mov x1,p
|
||||
orr x0,x0,x0,lsl #16
|
||||
orr x0,x0,x0,lsl #32
|
||||
L10:
|
||||
str x0,[x1],#4*2 // 4 at a time
|
||||
subs w2,w2,#4; bgt L10
|
||||
1: // clear inSizeProcessed and CLzmaDecoderState
|
||||
stp x4,x4,[x3],#2*8
|
||||
cmp x3,t1x
|
||||
blo 1b
|
||||
|
||||
add x0,inPtr,#5 // sentinel
|
||||
L14:
|
||||
call rcInit2; cmp x0,inPtr; bne L14
|
||||
mov a6,ldst // &outSizeProcessed
|
||||
mov a5,t0 // outSize
|
||||
mov a4,dst // outp
|
||||
sub w2,lsrc,#2 // inSize
|
||||
mov a1,src // inp
|
||||
|
||||
L200: // main loop
|
||||
ldr t0x,outBuf
|
||||
ldr t1,posStateMask
|
||||
sub nowPosx,outPtr,t0x
|
||||
and mi,nowPos,t1
|
||||
str mi,posState
|
||||
add mi,mi,state, lsl #kNumPosBitsMax
|
||||
add p_in,p,#IsMatch<<1
|
||||
call rcGetBit_mi0; bne L270
|
||||
ldrb t0,[a1],#1 // first byte, replaces LzmaDecodeProperties()
|
||||
and t0,t0,#7 // posBits
|
||||
strb t0,[sp,#2 + State]
|
||||
ldrb t0,[a1],#1 // second byte, replaces LzmaDecodeProperties()
|
||||
lsr t1,t0,#4 // lit_pos_bits
|
||||
strb t1,[sp,#1 + State]
|
||||
and t0,t0,#0xf // lib_context_bits
|
||||
strb t0,[sp,#0 + State]
|
||||
|
||||
ldr t0,litPosMask
|
||||
ldr t1,lc
|
||||
and t0,t0,nowPos
|
||||
ldrb mi,prevB
|
||||
lsl t0,t0,t1 // (nowPos & litPosMask)<<lc
|
||||
neg t1,t1; add t1,t1,#8 // rsb t1,t1,#8
|
||||
lsr t1,mi,t1 // prevB >> (8- lc)
|
||||
add t0,t0,t1
|
||||
add prob, p,#Literal<<1
|
||||
add t0,t0,t0,lsl #1 // *3
|
||||
uxtw t0x,t0
|
||||
mov symbol,#1
|
||||
add prob,prob,t0x,lsl #1+ 8 // *768 *2
|
||||
add a0,sp,#State
|
||||
bl 1f // the call
|
||||
mov sp,fp
|
||||
|
||||
cmp state,#kNumLitStates; blo L240
|
||||
L205:
|
||||
sxtw t0x,rep0
|
||||
neg t0x,t0x
|
||||
ldrb matchB,[outPtr,t0x]
|
||||
L210: // symbol === mi === mo
|
||||
lsl matchB,matchB,#1
|
||||
add p_in,prob,#0x100<<1
|
||||
and bit,matchB,#0x100
|
||||
uxtw t0x,bit
|
||||
add p_in,p_in,t0x,lsl #1
|
||||
call rcGetBit_mi
|
||||
and t0,symbol,#1
|
||||
cmp t0,bit,lsr #8; bne L243 // break
|
||||
cmp symbol,#0x100; blo L210
|
||||
b L245
|
||||
L240: // symbol === mi === mo
|
||||
mov p_in,prob
|
||||
call rcGetBit_mi
|
||||
L243:
|
||||
cmp symbol,#0x100; blo L240
|
||||
L245:
|
||||
mov t1,#3; mov t0,#6
|
||||
cmp state,#10; csel t0,t1, t0,lo
|
||||
cmp state,# 4; csel t0,state,t0,lo
|
||||
sub state,state,t0
|
||||
b L298 // assumes symbol===w0
|
||||
L270:
|
||||
add p_in,p,#IsRep<<1
|
||||
call rcGetBit_state0; bne L290
|
||||
ldr t0,rep2
|
||||
ldr t1,rep1
|
||||
str t0,rep3
|
||||
str t1,rep2
|
||||
str rep0,rep1
|
||||
mov t0,#0
|
||||
cmp state,#kNumLitStates
|
||||
mov state,#3
|
||||
csel state,t0,state,lo
|
||||
add prob, p,#LenCoder<<1
|
||||
b L350
|
||||
L290:
|
||||
add p_in,p,#IsRepG0<<1
|
||||
call rcGetBit_state0; bne L300
|
||||
L293:
|
||||
ldr t0,posState
|
||||
add p_in,p,#IsRep0Long<<1
|
||||
add mi,t0,state,lsl #kNumPosBitsMax
|
||||
call rcGetBit_mi0; bne L340
|
||||
L295:
|
||||
mov t0,#9
|
||||
cmp state,#kNumLitStates
|
||||
mov state,#11
|
||||
csel state,t0,state,lo
|
||||
L297:
|
||||
ldr t0x,outBuf
|
||||
sub nowPosx,outPtr,t0x
|
||||
cmp nowPos,rep0; blo lzmaDataError
|
||||
sxtw t0x,rep0
|
||||
neg t0x,t0x
|
||||
ldrb w0,[outPtr,t0x]
|
||||
L298:
|
||||
strb w0,[outPtr],#1
|
||||
b L519
|
||||
L300:
|
||||
add p_in,p,#IsRepG1<<1
|
||||
call rcGetBit_state0; ldr distance,rep1; beq L330
|
||||
L310:
|
||||
add p_in,p,#IsRepG2<<1
|
||||
call rcGetBit_state0; ldr distance,rep2; beq L325
|
||||
L320:
|
||||
ldr t0,rep2
|
||||
ldr distance,rep3
|
||||
str t0,rep3
|
||||
L325:
|
||||
ldr t0,rep1
|
||||
str t0,rep2
|
||||
L330:
|
||||
str rep0,rep1
|
||||
mov rep0,distance
|
||||
L340:
|
||||
mov t0,#8
|
||||
cmp state,#kNumLitStates
|
||||
mov state,#11
|
||||
csel state,t0,state,lo
|
||||
add prob, p,#RepLenCoder<<1
|
||||
L350:
|
||||
add p_in,prob,#LenChoice<<1
|
||||
call rcGetBit_0; bne L360
|
||||
ldr t0,posState
|
||||
add probLen,prob,#LenLow<<1
|
||||
uxtw t0x,t0
|
||||
mov t1,#0
|
||||
add probLen,probLen,t0x,lsl #1+ kLenNumLowBits
|
||||
mov hibit,#1<<kLenNumLowBits
|
||||
b L390
|
||||
L360:
|
||||
add p_in,prob,#LenChoice2<<1
|
||||
call rcGetBit_0; bne L370
|
||||
ldr t0,posState
|
||||
add probLen,prob,#LenMid<<1
|
||||
uxtw t0x,t0
|
||||
mov t1,#kLenNumLowSymbols
|
||||
add probLen,probLen,t0x,lsl #1+ kLenNumMidBits
|
||||
mov hibit,#1<<kLenNumMidBits
|
||||
b L390
|
||||
L370:
|
||||
add probLen,prob,#LenHigh<<1
|
||||
mov t1,#kLenNumLowSymbols + kLenNumMidSymbols
|
||||
mov hibit,#1<<kLenNumHighBits
|
||||
L390:
|
||||
str t1,m_len
|
||||
mov mi,#1
|
||||
L395: // RangeDecoderBitTreeDecode
|
||||
mov p_in,probLen
|
||||
call rcGetBit_mi; subs t0,mo,hibit; blo L395
|
||||
ldr r_len,m_len
|
||||
add r_len,r_len,t0
|
||||
str r_len,m_len
|
||||
cmp state,#4; bhs L500
|
||||
/*L400:*/
|
||||
add state,state,#kNumLitStates
|
||||
mov t0,#kNumLenToPosStates -1
|
||||
cmp r_len,#kNumLenToPosStates
|
||||
csel r_len,t0,r_len,hs
|
||||
uxtw t0x,r_len
|
||||
add probLit,p,t0x,lsl #1+ kNumPosSlotBits
|
||||
add probLit,probLit,#PosSlot<<1
|
||||
mov mi,#1
|
||||
mov hibit,#1<<kNumPosSlotBits
|
||||
L403: // RangeDecoderBitTreeDecode
|
||||
mov p_in,probLit
|
||||
call rcGetBit_mi; subs r_posSlot,mo,hibit; blo L403
|
||||
str r_posSlot,posSlot
|
||||
eof_lzma:
|
||||
POP4(x1,x3,x4, lr) // x1= eof_src; r3= orig_dst; r4= plen_dst
|
||||
SUB2(src,x1) // 0 if actual src length equals expected length
|
||||
SUB2(dst,x3) // actual dst length
|
||||
str dstw,[x4]
|
||||
mov x4,x0 // save result value
|
||||
|
||||
cmp r_posSlot,#kStartPosModelIndex; blo L460
|
||||
L405:
|
||||
lsr numDirectBits,r_posSlot,#1
|
||||
sub numDirectBits,numDirectBits,#1
|
||||
and rep0,r_posSlot,#1
|
||||
orr rep0,rep0,#2
|
||||
cmp r_posSlot,#kEndPosModelIndex; bhs L410
|
||||
L407:
|
||||
lsl rep0,rep0,numDirectBits
|
||||
add prob,p, #(SpecPos -1)<<1
|
||||
sub t0,rep0,r_posSlot // r_posSlot dies
|
||||
uxtw t0x,t0
|
||||
add prob,prob,t0x,lsl #1
|
||||
b L438
|
||||
L410:
|
||||
sub numDirectBits,numDirectBits,#kNumAlignBits
|
||||
L420:
|
||||
call rcNormalize
|
||||
lsr Range,Range,#1
|
||||
subs t0,Code,Range
|
||||
csel Code,t0,Code,hs // if (Code>=Range) Code-=Range;
|
||||
adc rep0,rep0,rep0 // rep0 = (rep0<<1) + (Code>=Range)
|
||||
L430:
|
||||
subs numDirectBits,numDirectBits,#1; bne L420
|
||||
add prob,p, #Align<<1
|
||||
lsl rep0,rep0,#kNumAlignBits
|
||||
mov numDirectBits,#kNumAlignBits
|
||||
L438:
|
||||
mov i,#1
|
||||
mov mi,#1
|
||||
L440:
|
||||
mov p_in,prob; call rcGetBit_mi
|
||||
tst mo,#1; beq L445
|
||||
orr rep0,rep0,i
|
||||
L445:
|
||||
lsl i,i,#1
|
||||
subs numDirectBits,numDirectBits,#1; bne L440
|
||||
b L465
|
||||
L450:
|
||||
L460:
|
||||
ldr rep0,posSlot
|
||||
L465:
|
||||
adds rep0,rep0,#1
|
||||
#if 0 /*{ only for the stream version */
|
||||
bne L470
|
||||
mov t0,#kLzmaStreamWasFinishedId
|
||||
str t0,m_len
|
||||
b L530
|
||||
L470:
|
||||
#endif /*}*/
|
||||
ldr r_len,m_len
|
||||
L500:
|
||||
ldr t0x,outBuf
|
||||
add r_len,r_len,#kMatchMinLen
|
||||
sub t0x,outPtr,t0x // nowPos
|
||||
cmp rep0,t0; bhi lzmaDataError
|
||||
sxtw t0x,rep0
|
||||
neg t0x,t0x
|
||||
L510: // const t0x= -rep0;
|
||||
ldrb w0,[outPtr,t0x]
|
||||
strb w0,[outPtr],#1
|
||||
cmp outPtr,outLim; bhs L530
|
||||
subs r_len,r_len,#1; bne L510
|
||||
// FIXME: prfm PLDL1KEEP,outPtr,#32 // fetch next cache line
|
||||
L519:
|
||||
strb w0,prevB // implicit &0xFF
|
||||
L520: // bottom of while loop
|
||||
cmp outPtr,outLim; blo L200
|
||||
L530:
|
||||
call rcNormalize
|
||||
mov w0,#0 // success
|
||||
lzmaExit:
|
||||
ldr t1x,inBuf
|
||||
sub t0x,inPtr,t1x
|
||||
ldr t1x,inSizeProcessed
|
||||
str t0,[t1x]
|
||||
mov x0,x3 // orig_dst
|
||||
add x1,x3,dst // orig_dst + dst_len
|
||||
cache_lzma:
|
||||
dc cvau,x0 // Clean by VA to point of Unification
|
||||
ic ivau,x0 // Invalidate by VA to point of Unification
|
||||
add x0,x0,#64 // next line
|
||||
cmp x0,x1; blo cache_lzma
|
||||
|
||||
ldr t1x,outBuf
|
||||
sub t0x,outPtr,t1x
|
||||
ldr t1x,outSizeProcessed
|
||||
str t0,[t1x]
|
||||
|
||||
add sp,sp,#(14+1)*4
|
||||
// FIXME ldmia sp!,{r4,r5,r6,r7, r8,r9,r10,r11, pc}
|
||||
|
||||
lzmaDataError:
|
||||
mov w0,#1 // failure
|
||||
b lzmaExit
|
||||
|
||||
|
||||
rcNormalize:
|
||||
lsr t0,Range,#kNumTopBits
|
||||
cbnz t0,retNorm
|
||||
rcLoad:
|
||||
cmp inPtr,inLim
|
||||
lsl Range,Range,#8
|
||||
bhs lzmaDataError
|
||||
rcInit2:
|
||||
ldrb t0,[inPtr],#1
|
||||
orr Code,t0,Code, lsl #8
|
||||
retNorm:
|
||||
mov x0,x4 // result value
|
||||
ret
|
||||
|
||||
rcGetBit_state0: // rcGetBit(0, state + p_in)
|
||||
mov mi,state
|
||||
rcGetBit_mi0: // rcGetBit(0, mi + p_in)
|
||||
add p_in,p_in,mi, uxtw #1
|
||||
rcGetBit_0: // rcGetBit(0, p_in)
|
||||
mov mi,#0
|
||||
rcGetBit_mi: // rcGetBit(mi, mi + p_in)
|
||||
add p_in,p_in,mi, uxtw #1
|
||||
rcGetBit: // Out: CC set on mo
|
||||
lsr t0,Range,#kNumTopBits
|
||||
mov t2x,x30 // save lr if need rcLoad
|
||||
adr x30,rcGetBitCont; cbz t0,rcLoad // conditional subroutine call
|
||||
rcGetBitCont:
|
||||
#define starp t0
|
||||
#define bound t1
|
||||
#define y0tmp t1
|
||||
ldrh starp,[p_in]
|
||||
lsr y0tmp,Range,#kNumBitModelTotalBits
|
||||
mul bound,starp,y0tmp
|
||||
cmp Code,bound; bhs rcGB1
|
||||
rcGB0: // Code < bound
|
||||
mov y0tmp,#kBitModelTotal
|
||||
mov Range,bound
|
||||
sub y0tmp,y0tmp,starp
|
||||
adcs mo,mi,mi // mo = (mi<<1) | (Code >= bound); set CC
|
||||
add starp,starp,y0tmp, lsr #kNumMoveBits
|
||||
strh starp,[p_in]
|
||||
ret t2x
|
||||
rcGB1: // Code >= bound
|
||||
sub Code,Code,bound
|
||||
sub Range,Range,bound
|
||||
sub starp,starp,starp, lsr #kNumMoveBits
|
||||
adcs mo,mi,mi // mo = (mi<<1) | (Code >= bound); set CC
|
||||
strh starp,[p_in]
|
||||
ret t2x
|
||||
#undef y0tmp
|
||||
#undef bound
|
||||
#undef starp
|
||||
#undef t1x
|
||||
#undef t1
|
||||
#undef t0x
|
||||
#undef t0
|
||||
#undef t1
|
||||
#undef t1x
|
||||
|
||||
#undef lsrc
|
||||
#undef ldst
|
||||
#undef meth
|
||||
|
||||
#undef a0
|
||||
#undef a1
|
||||
#undef a2
|
||||
#undef a3
|
||||
#undef a4
|
||||
#undef a5
|
||||
#undef a6
|
||||
|
||||
1: // entry to C-lang LzmaDecode
|
||||
|
||||
section LZMA_DEC20
|
||||
#include "lzma_d_cf.S"
|
||||
|
||||
section LZMA_DEC10
|
||||
#if 0 /*{*/
|
||||
#include "lzma_d_cs.S"
|
||||
#else /*}{*/
|
||||
#define PARAMETER_STYLE 3
|
||||
#include "lzma_d-arm.S"
|
||||
#endif /*}*/
|
||||
|
||||
section LZMA_DEC30
|
||||
|
||||
not_lzma:
|
||||
|
||||
// vi:ts=8:et
|
||||
|
||||
|
||||
@ -1,441 +1,147 @@
|
||||
// .section .text.LzmaDecode,"ax",%progbits
|
||||
// .align 2
|
||||
// .global LzmaDecode
|
||||
// .type LzmaDecode, %function
|
||||
//LzmaDecode:
|
||||
stp x29, x30, [sp, -112]!
|
||||
mov w8, 1024
|
||||
add x29, sp, 0
|
||||
stp x19, x20, [sp, 16]
|
||||
stp x21, x22, [sp, 32]
|
||||
stp x23, x24, [sp, 48]
|
||||
stp x25, x26, [sp, 64]
|
||||
ldp w19, w15, [x0]
|
||||
ldr w14, [x0, 8]
|
||||
ldr x11, [x0, 16]
|
||||
str wzr, [x3]
|
||||
str wzr, [x6]
|
||||
ldr w7, [x0, 4]
|
||||
mov w0, 768
|
||||
add w7, w19, w7
|
||||
lsl w7, w0, w7
|
||||
mov w0, 1
|
||||
adds w7, w7, 1846
|
||||
lsl w14, w0, w14
|
||||
lsl w0, w0, w15
|
||||
sub w14, w14, #1
|
||||
sub w15, w0, #1
|
||||
mov x0, 0
|
||||
beq .L22
|
||||
.L79:
|
||||
strh w8, [x11, x0, lsl 1]
|
||||
add x0, x0, 1
|
||||
cmp w7, w0
|
||||
bhi .L79
|
||||
.L22:
|
||||
add x2, x1, x2, uxtw
|
||||
mov w27, 0
|
||||
str x2, [x29, 96]
|
||||
mov w28, -1
|
||||
add x0, x1, 1
|
||||
add x10, x1, 6
|
||||
add x2, x2, 1
|
||||
.L20:
|
||||
cmp x0, x2
|
||||
mov x8, x0
|
||||
beq .L41
|
||||
str x0, [x29, 104]
|
||||
add x0, x0, 1
|
||||
cmp x0, x10
|
||||
ldrb w7, [x0, -2]
|
||||
orr w27, w7, w27, lsl 8
|
||||
bne .L20
|
||||
stp x1, x6, [x29, 80]
|
||||
mov x9, x4
|
||||
mov x25, x3
|
||||
cbz w5, .L63
|
||||
mov w23, 1
|
||||
mov w26, 8
|
||||
mov w22, w23
|
||||
mov w21, w23
|
||||
mov w7, w23
|
||||
mov w10, 0
|
||||
mov w13, 0
|
||||
mov w6, 0
|
||||
sub w20, w26, w19
|
||||
.L60:
|
||||
and w12, w14, w6
|
||||
lsl w8, w10, 4
|
||||
add x18, x29, 96
|
||||
mov w0, 0
|
||||
sxtw x1, w12
|
||||
add x8, x1, x8, sxtw
|
||||
lsl x8, x8, 1
|
||||
add x1, x11, x8
|
||||
bl rcGetBit.2736
|
||||
cbnz w0, .L26
|
||||
and w0, w15, w6
|
||||
asr w8, w13, w20
|
||||
lsl w0, w0, w19
|
||||
cmp w10, 6
|
||||
add w8, w0, w8
|
||||
lsl w0, w8, 2
|
||||
sub w8, w0, w8
|
||||
ubfiz x8, x8, 8, 24
|
||||
add x8, x8, 1846
|
||||
add x8, x11, x8, lsl 1
|
||||
ble .L64
|
||||
sub w0, w6, w7
|
||||
mov w2, 1
|
||||
ldrb w12, [x9, x0]
|
||||
b .L32
|
||||
.L96:
|
||||
cbnz w13, .L29
|
||||
.L30:
|
||||
cmp w2, 255
|
||||
bgt .L31
|
||||
.L32:
|
||||
lsl w12, w12, 1
|
||||
mov w0, w2
|
||||
and w13, w12, 256
|
||||
add x18, x29, 96
|
||||
sxtw x1, w13
|
||||
add x1, x1, 256
|
||||
add x1, x1, x2, sxtw
|
||||
add x1, x8, x1, lsl 1
|
||||
bl rcGetBit.2736
|
||||
mov w2, w0
|
||||
tbz x2, 0, .L96
|
||||
cbnz w13, .L30
|
||||
.L29:
|
||||
cmp w2, 255
|
||||
bgt .L31
|
||||
.L33:
|
||||
add x1, x8, x2, sxtw 1
|
||||
mov w0, w2
|
||||
add x18, x29, 96
|
||||
bl rcGetBit.2736
|
||||
cmp w0, 255
|
||||
mov w2, w0
|
||||
ble .L33
|
||||
uxtb w13, w0
|
||||
cmp w10, 3
|
||||
strb w13, [x9, w6, uxtw]
|
||||
add w6, w6, 1
|
||||
bgt .L62
|
||||
mov w10, 0
|
||||
.L34:
|
||||
cmp w5, w6
|
||||
bhi .L60
|
||||
.L58:
|
||||
mov w1, 16777215
|
||||
cmp w28, w1
|
||||
bhi .L97
|
||||
ldp x2, x1, [x29, 96]
|
||||
cmp x1, x2
|
||||
beq .L41
|
||||
add x8, x1, 1
|
||||
str x8, [x29, 104]
|
||||
lsl w28, w28, 8
|
||||
ldrb w0, [x1]
|
||||
orr w27, w0, w27, lsl 8
|
||||
.L25:
|
||||
ldr x0, [x29, 80]
|
||||
ldp x19, x20, [sp, 16]
|
||||
sub x8, x8, x0
|
||||
ldr x0, [x29, 88]
|
||||
str w8, [x25]
|
||||
ldp x21, x22, [sp, 32]
|
||||
str w6, [x0]
|
||||
mov w0, 0
|
||||
ldp x23, x24, [sp, 48]
|
||||
ldp x25, x26, [sp, 64]
|
||||
ldp x29, x30, [sp], 112
|
||||
ret
|
||||
.L64:
|
||||
mov w2, 1
|
||||
b .L33
|
||||
.L31:
|
||||
uxtb w13, w2
|
||||
strb w13, [x9, w6, uxtw]
|
||||
add w6, w6, 1
|
||||
.L62:
|
||||
cmp w10, 9
|
||||
bgt .L35
|
||||
sub w10, w10, #3
|
||||
b .L34
|
||||
.L26:
|
||||
sxtw x13, w10
|
||||
add x18, x29, 96
|
||||
add x13, x13, 192
|
||||
mov w0, 0
|
||||
lsl x13, x13, 1
|
||||
add x1, x11, x13
|
||||
bl rcGetBit.2736
|
||||
cbnz w0, .L36
|
||||
mov w0, 3
|
||||
cmp w10, 6
|
||||
mov w23, w22
|
||||
csel w10, w0, wzr, gt
|
||||
mov w22, w21
|
||||
add x24, x11, 1636
|
||||
mov w21, w7
|
||||
.L38:
|
||||
add x18, x29, 96
|
||||
mov x1, x24
|
||||
mov w0, 0
|
||||
bl rcGetBit.2736
|
||||
cbnz w0, .L44
|
||||
lsl w12, w12, 3
|
||||
mov w8, -8
|
||||
mov w13, 3
|
||||
sxtw x12, w12
|
||||
add x12, x12, 2
|
||||
add x12, x24, x12, lsl 1
|
||||
.L45:
|
||||
mov w0, 1
|
||||
.L47:
|
||||
add x18, x29, 96
|
||||
add x1, x12, x0, uxtw 1
|
||||
bl rcGetBit.2736
|
||||
subs w13, w13, #1
|
||||
bne .L47
|
||||
cmp w10, 3
|
||||
add w8, w0, w8
|
||||
bgt .L48
|
||||
mov w7, 3
|
||||
mov w12, 6
|
||||
cmp w8, w7
|
||||
mov w0, 1
|
||||
csel w7, w8, w7, le
|
||||
lsl w7, w7, 6
|
||||
sxtw x7, w7
|
||||
add x7, x7, 432
|
||||
lsl x7, x7, 1
|
||||
.L49:
|
||||
add x1, x7, x0, uxtw 1
|
||||
add x18, x29, 96
|
||||
add x1, x11, x1
|
||||
bl rcGetBit.2736
|
||||
subs w12, w12, #1
|
||||
bne .L49
|
||||
sub w7, w0, #64
|
||||
add w10, w10, 7
|
||||
cmp w7, 3
|
||||
mov w12, w7
|
||||
ble .L50
|
||||
cmp w7, 13
|
||||
and w0, w7, 1
|
||||
asr w1, w7, 1
|
||||
orr w7, w0, 2
|
||||
bgt .L51
|
||||
sub w13, w1, #1
|
||||
mov x0, 688
|
||||
lsl w7, w7, w13
|
||||
sub x12, x0, x12, sxtw
|
||||
add x12, x12, x7, uxtw
|
||||
add x12, x11, x12, lsl 1
|
||||
sub x12, x12, #2
|
||||
.L52:
|
||||
mov w0, 1
|
||||
mov w24, w0
|
||||
.L57:
|
||||
add x1, x12, x0, sxtw 1
|
||||
add x18, x29, 96
|
||||
bl rcGetBit.2736
|
||||
and w3, w0, 1
|
||||
orr w1, w7, w24
|
||||
cmp w3, wzr
|
||||
csel w7, w1, w7, ne
|
||||
subs w13, w13, #1
|
||||
lsl w24, w24, 1
|
||||
bne .L57
|
||||
.L50:
|
||||
adds w7, w7, 1
|
||||
beq .L58
|
||||
.L48:
|
||||
cmp w7, w6
|
||||
add w0, w8, 2
|
||||
bhi .L41
|
||||
mov w1, w6
|
||||
.L59:
|
||||
sub w2, w6, w7
|
||||
sub w0, w0, #1
|
||||
add w6, w6, 1
|
||||
cmp w0, wzr
|
||||
ccmp w5, w6, 0, ne
|
||||
ldrb w13, [x9, x2]
|
||||
strb w13, [x9, w1, uxtw]
|
||||
mov w1, w6
|
||||
bhi .L59
|
||||
b .L34
|
||||
.L35:
|
||||
sub w10, w10, #6
|
||||
b .L34
|
||||
.L36:
|
||||
add x1, x13, 24
|
||||
add x18, x29, 96
|
||||
add x1, x11, x1
|
||||
mov w0, 0
|
||||
bl rcGetBit.2736
|
||||
cbnz w0, .L39
|
||||
add x1, x8, 480
|
||||
add x18, x29, 96
|
||||
add x1, x11, x1
|
||||
bl rcGetBit.2736
|
||||
cbnz w0, .L67
|
||||
cbz w6, .L41
|
||||
sub w0, w6, w7
|
||||
cmp w10, 6
|
||||
mov w10, 11
|
||||
ldrb w13, [x9, x0]
|
||||
mov w0, 9
|
||||
strb w13, [x9, w6, uxtw]
|
||||
csel w10, w10, w0, gt
|
||||
add w6, w6, 1
|
||||
b .L34
|
||||
.L44:
|
||||
add x18, x29, 96
|
||||
add x1, x24, 2
|
||||
mov w0, 0
|
||||
bl rcGetBit.2736
|
||||
mov w8, w0
|
||||
cbnz w0, .L46
|
||||
lsl w0, w12, 3
|
||||
mov w13, 3
|
||||
sxtw x0, w0
|
||||
add x0, x0, 130
|
||||
add x12, x24, x0, lsl 1
|
||||
b .L45
|
||||
.L39:
|
||||
add x1, x13, 48
|
||||
add x18, x29, 96
|
||||
add x1, x11, x1
|
||||
mov w0, 0
|
||||
bl rcGetBit.2736
|
||||
cbnz w0, .L98
|
||||
.L40:
|
||||
cmp w10, 6
|
||||
mov w0, w7
|
||||
mov w10, 11
|
||||
mov w7, w21
|
||||
csel w10, w10, w26, gt
|
||||
mov w21, w0
|
||||
add x24, x11, 2664
|
||||
b .L38
|
||||
.L46:
|
||||
add x12, x24, 516
|
||||
mov w8, -240
|
||||
mov w13, 8
|
||||
b .L45
|
||||
.L41:
|
||||
ldp x19, x20, [sp, 16]
|
||||
ldp x21, x22, [sp, 32]
|
||||
ldp x23, x24, [sp, 48]
|
||||
ldp x25, x26, [sp, 64]
|
||||
mov w0, 1
|
||||
ldp x29, x30, [sp], 112
|
||||
ret
|
||||
.L51:
|
||||
ldr x12, [x29, 96]
|
||||
sub w1, w1, #5
|
||||
mov w3, 16777215
|
||||
.L55:
|
||||
cmp w28, w3
|
||||
lsl w7, w7, 1
|
||||
bhi .L53
|
||||
ldr x2, [x29, 104]
|
||||
cmp x2, x12
|
||||
add x4, x2, 1
|
||||
beq .L41
|
||||
str x4, [x29, 104]
|
||||
lsl w28, w28, 8
|
||||
ldrb w0, [x2]
|
||||
orr w27, w0, w27, lsl 8
|
||||
.L53:
|
||||
lsr w0, w28, 1
|
||||
cmp w0, w27
|
||||
mov w28, w0
|
||||
bhi .L54
|
||||
sub w27, w27, w0
|
||||
orr w7, w7, 1
|
||||
.L54:
|
||||
subs w1, w1, #1
|
||||
bne .L55
|
||||
lsl w7, w7, 4
|
||||
add x12, x11, 1604
|
||||
mov w13, 4
|
||||
b .L52
|
||||
.L67:
|
||||
mov w0, w21
|
||||
mov w21, w7
|
||||
mov w7, w0
|
||||
b .L40
|
||||
.L98:
|
||||
add x1, x13, 72
|
||||
add x18, x29, 96
|
||||
add x1, x11, x1
|
||||
mov w0, 0
|
||||
bl rcGetBit.2736
|
||||
cbnz w0, .L69
|
||||
mov w0, w21
|
||||
mov w21, w22
|
||||
mov w22, w0
|
||||
b .L40
|
||||
.L69:
|
||||
mov w0, w21
|
||||
mov w21, w23
|
||||
mov w23, w22
|
||||
mov w22, w0
|
||||
b .L40
|
||||
.L97:
|
||||
ldr x8, [x29, 104]
|
||||
b .L25
|
||||
.L63:
|
||||
mov w6, 0
|
||||
b .L25
|
||||
// .size LzmaDecode, .-LzmaDecode
|
||||
|
||||
// .section .text.rcGetBit.2736,"ax",%progbits
|
||||
// .align 2
|
||||
// .type rcGetBit.2736, %function
|
||||
rcGetBit.2736:
|
||||
mov w3, 16777215
|
||||
cmp w28, w3
|
||||
bhi .L2
|
||||
ldp x4, x3, [x18]
|
||||
cmp x3, x4
|
||||
beq .L5
|
||||
add x4, x3, 1
|
||||
str x4, [x18, 8]
|
||||
lsl w28, w28, 8
|
||||
ldrb w2, [x3]
|
||||
orr w27, w2, w27, lsl 8
|
||||
.L2:
|
||||
ldrh w3, [x1]
|
||||
lsr w2, w28, 11
|
||||
mul w2, w2, w3
|
||||
cmp w2, w27
|
||||
bhi .L7
|
||||
lsl w0, w0, 1
|
||||
sub w3, w3, w3, lsr 5
|
||||
sub w27, w27, w2
|
||||
sub w28, w28, w2
|
||||
strh w3, [x1]
|
||||
add w0, w0, 1
|
||||
ret
|
||||
.L7:
|
||||
mov w4, 2048
|
||||
mov w28, w2
|
||||
sub w2, w4, w3
|
||||
lsl w0, w0, 1
|
||||
add w3, w3, w2, asr 5
|
||||
strh w3, [x1]
|
||||
ret
|
||||
.L5:
|
||||
mov w0, 1
|
||||
ret
|
||||
// .size rcGetBit.2736, .-rcGetBit.2736
|
||||
|
||||
// .ident "GCC: (GNU) 5.2.1 20151104 (Red Hat Cross 5.2.1-4)"
|
||||
// .section .note.GNU-stack,"",%progbits
|
||||
/* 0x0000 */ .byte 243, 83,184,169, 39, 0,128, 82, 20, 16, 0,145,245, 91, 1,169
|
||||
/* 0x0010 */ .byte 247, 99, 2,169,249,107, 3,169,251,115, 4,169,254, 43, 0,249
|
||||
/* 0x0020 */ .byte 8, 4, 64, 57, 26, 8, 64, 57, 28, 0, 64, 57,127, 0, 0,185
|
||||
/* 0x0030 */ .byte 250, 32,218, 26,223, 0, 0,185,231, 32,200, 26,231, 4, 0, 81
|
||||
/* 0x0040 */ .byte 231,111, 0,185, 8, 4, 64, 57, 7, 96,128, 82, 90, 7, 0, 81
|
||||
/* 0x0050 */ .byte 8, 1, 28, 11,232, 32,200, 26, 8,217, 28, 49,224, 0, 0, 84
|
||||
/* 0x0060 */ .byte 7, 0,128,210, 9,128,128, 82,137,122, 39,120,231, 4, 0,145
|
||||
/* 0x0070 */ .byte 31, 1, 7,107,168,255,255, 84, 51, 64, 34,139,127, 2, 1,235
|
||||
/* 0x0080 */ .byte 0, 15, 0, 84,235, 3, 1,170, 34, 4, 0,145,103, 85, 64, 56
|
||||
/* 0x0090 */ .byte 127, 2, 2,235, 96, 14, 0, 84, 72, 20, 64, 56,127, 1, 2,235
|
||||
/* 0x00a0 */ .byte 7, 33, 7, 42, 97,255,255, 84, 37, 68, 0, 52, 9,176, 41,145
|
||||
/* 0x00b0 */ .byte 59, 0,128, 82,233, 63, 0,249, 9, 1,128, 82, 41, 1, 28, 75
|
||||
/* 0x00c0 */ .byte 10, 0,128, 18,245, 3, 27, 42, 25, 0,128, 82, 8, 0,128, 82
|
||||
/* 0x00d0 */ .byte 2, 0,128, 82, 16,224,191, 18, 17, 0,129, 82,251,107, 0,185
|
||||
/* 0x00e0 */ .byte 251,115, 0,185,233,119, 0,185, 78, 0, 26, 10, 44,111, 28, 83
|
||||
/* 0x00f0 */ .byte 95, 1, 16,107,201,125, 64,147, 44,193, 44,139,143,249,127,211
|
||||
/* 0x0100 */ .byte 232, 0, 0, 84,127, 2, 11,235,192, 10, 0, 84,105, 1, 64, 57
|
||||
/* 0x0110 */ .byte 74, 93, 24, 83,107, 5, 0,145, 39, 33, 7, 42,141,122,108,120
|
||||
/* 0x0120 */ .byte 73,125, 11, 83,169,125, 9, 27,255, 0, 9,107,162, 10, 0, 84
|
||||
/* 0x0130 */ .byte 234,211, 65, 57, 63, 27, 0,113, 8, 41,202, 26,234,111, 64,185
|
||||
/* 0x0140 */ .byte 79, 0, 10, 10,239, 33,220, 26,239, 1, 8, 11, 40, 2, 13, 75
|
||||
/* 0x0150 */ .byte 234,117, 30, 83, 79, 1, 15, 75,173, 21,136, 11,239, 93,120,211
|
||||
/* 0x0160 */ .byte 141,122, 44,120,239,217, 28,145,143, 6, 15,139, 45, 31, 0, 84
|
||||
/* 0x0170 */ .byte 72, 0, 21, 75,146,104,104, 56, 40, 0,128, 82, 7, 0, 0, 20
|
||||
/* 0x0180 */ .byte 236,121, 42,120, 8,121, 31, 83,233, 3, 14, 42,205, 56, 0, 53
|
||||
/* 0x0190 */ .byte 31,253, 3,113,204, 3, 0, 84, 82,122, 31, 83, 63, 1, 16,107
|
||||
/* 0x01a0 */ .byte 77, 2, 24, 18, 22,121, 31, 83,170,125, 64,147, 74, 1, 4,145
|
||||
/* 0x01b0 */ .byte 74,193, 40,139,232, 0, 0, 84,127, 1, 19,235, 41, 93, 24, 83
|
||||
/* 0x01c0 */ .byte 0, 5, 0, 84,108, 1, 64, 57,107, 5, 0,145,135, 33, 7, 42
|
||||
/* 0x01d0 */ .byte 236,121,106,120, 46,125, 11, 83, 55, 2, 12, 75,142,125, 14, 27
|
||||
/* 0x01e0 */ .byte 152, 21, 76, 75,140, 21,151, 11,255, 0, 14,107, 41, 1, 14, 75
|
||||
/* 0x01f0 */ .byte 131,252,255, 84,248,121, 42,120,200, 6, 0, 17,231, 0, 14, 75
|
||||
/* 0x0200 */ .byte 141,252,255, 53, 31,253, 3,113, 45, 27, 0, 84, 8, 29, 0, 83
|
||||
/* 0x0210 */ .byte 234, 3, 9, 42,136, 72, 34, 56, 66, 4, 0, 17, 63, 39, 0,113
|
||||
/* 0x0220 */ .byte 140, 49, 0, 84, 57, 15, 0, 81,191, 0, 2,107,232,245,255, 84
|
||||
/* 0x0230 */ .byte 0,224,191, 18, 95, 1, 0,107,136, 0, 0, 84,127, 2, 11,235
|
||||
/* 0x0240 */ .byte 0, 1, 0, 84,107, 5, 0,145, 97, 1, 1,203, 97, 0, 0,185
|
||||
/* 0x0250 */ .byte 0, 0,128, 82,194, 0, 0,185, 3, 0, 0, 20, 31, 32, 3,213
|
||||
/* 0x0260 */ .byte 32, 0,128, 82,245, 91, 65,169,247, 99, 66,169,249,107, 67,169
|
||||
/* 0x0270 */ .byte 251,115, 68,169,254, 43, 64,249,243, 83,200,168,192, 3, 95,214
|
||||
/* 0x0280 */ .byte 74, 1, 9, 75,173, 21, 77, 75,231, 0, 9, 75,141,122, 44,120
|
||||
/* 0x0290 */ .byte 41,127, 64,147, 95, 1, 16,107, 41, 1, 3,145, 45,249,127,211
|
||||
/* 0x02a0 */ .byte 232, 0, 0, 84,127, 1, 19,235,192,253,255, 84,104, 1, 64, 57
|
||||
/* 0x02b0 */ .byte 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,140,122,105,120
|
||||
/* 0x02c0 */ .byte 72,125, 11, 83,136,125, 8, 27,255, 0, 8,107, 98, 25, 0, 84
|
||||
/* 0x02d0 */ .byte 234,107, 64,185, 63, 31, 0,113,251,115, 64,185,234,115, 0,185
|
||||
/* 0x02e0 */ .byte 42, 2, 12, 75,245,107, 0,185,140, 21,138, 11,140,122, 41,120
|
||||
/* 0x02f0 */ .byte 105, 0,128, 82,249,179,137, 26, 9,160, 25,145, 31, 1, 16,107
|
||||
/* 0x0300 */ .byte 232, 0, 0, 84,127, 2, 11,235,192,250,255, 84,106, 1, 64, 57
|
||||
/* 0x0310 */ .byte 8, 93, 24, 83,107, 5, 0,145, 71, 33, 7, 42, 44, 1, 64,121
|
||||
/* 0x0320 */ .byte 10,125, 11, 83,138,125, 10, 27,255, 0, 10,107,226, 30, 0, 84
|
||||
/* 0x0330 */ .byte 210,113, 29, 83, 40, 2, 12, 75, 22, 0,128, 82,126, 0,128, 82
|
||||
/* 0x0340 */ .byte 82,126, 64,147,140, 21,136, 11, 82, 10, 0,145, 44, 1, 0,121
|
||||
/* 0x0350 */ .byte 50, 5, 18,139,238, 3, 30, 42, 45, 0,128, 82, 6, 0, 0, 20
|
||||
/* 0x0360 */ .byte 232, 1, 0,121,206, 5, 0,113,173,121, 31, 83,234, 3, 9, 42
|
||||
/* 0x0370 */ .byte 32, 3, 0, 84, 95, 1, 16,107,183,121, 31, 83, 79,198, 45,139
|
||||
/* 0x0380 */ .byte 232, 0, 0, 84,127, 2, 11,235, 74, 93, 24, 83,160,246,255, 84
|
||||
/* 0x0390 */ .byte 104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,232, 1, 64,121
|
||||
/* 0x03a0 */ .byte 73,125, 11, 83, 44, 2, 8, 75, 9,125, 9, 27, 24, 21, 72, 75
|
||||
/* 0x03b0 */ .byte 8, 21,140, 11,255, 0, 9,107, 74, 1, 9, 75, 35,253,255, 84
|
||||
/* 0x03c0 */ .byte 248, 1, 0,121,206, 5, 0,113,231, 0, 9, 75,237, 6, 0, 17
|
||||
/* 0x03d0 */ .byte 33,253,255, 84, 40, 0,128, 82, 63, 15, 0,113, 30, 33,222, 26
|
||||
/* 0x03e0 */ .byte 222, 2, 30, 75,205, 3, 13, 11,236, 22, 0, 84,191, 13, 0,113
|
||||
/* 0x03f0 */ .byte 104, 0,128, 82,181,209,136, 26,207, 0,128, 82,181,102, 26, 83
|
||||
/* 0x0400 */ .byte 46, 0,128, 82,181,126, 64,147,181,194, 6,145,181,250,127,211
|
||||
/* 0x0410 */ .byte 7, 0, 0, 20, 31, 32, 3,213,136,106, 50,120,239, 5, 0,113
|
||||
/* 0x0420 */ .byte 206,121, 31, 83,234, 3, 9, 42, 32, 3, 0, 84, 95, 1, 16,107
|
||||
/* 0x0430 */ .byte 214,121, 31, 83,178,198, 46,139,232, 0, 0, 84,127, 2, 11,235
|
||||
/* 0x0440 */ .byte 74, 93, 24, 83,224,240,255, 84,104, 1, 64, 57,107, 5, 0,145
|
||||
/* 0x0450 */ .byte 7, 33, 7, 42,136,106,114,120, 73,125, 11, 83, 44, 2, 8, 75
|
||||
/* 0x0460 */ .byte 9,125, 9, 27, 23, 21, 72, 75, 8, 21,140, 11,255, 0, 9,107
|
||||
/* 0x0470 */ .byte 74, 1, 9, 75, 35,253,255, 84,151,106, 50,120,239, 5, 0,113
|
||||
/* 0x0480 */ .byte 231, 0, 9, 75,206, 6, 0, 17, 33,253,255, 84,213, 1, 1, 81
|
||||
/* 0x0490 */ .byte 191, 14, 0,113, 45, 17, 0, 84,191, 54, 0,113,168, 2, 0, 18
|
||||
/* 0x04a0 */ .byte 8, 1, 31, 50,169,126, 1, 19, 44, 32, 0, 84, 47, 5, 0, 81
|
||||
/* 0x04b0 */ .byte 9, 86,128,210, 46,193, 53,203, 21, 33,207, 26,206, 65, 53,139
|
||||
/* 0x04c0 */ .byte 142, 6, 14,139,206, 9, 0,209, 50, 0,128, 82,247, 3, 18, 42
|
||||
/* 0x04d0 */ .byte 8, 0, 0, 20, 31, 32, 3,213,200, 2, 0,121, 82,122, 31, 83
|
||||
/* 0x04e0 */ .byte 234, 3, 9, 42,239, 5, 0,113,247,122, 31, 83, 96, 14, 0, 84
|
||||
/* 0x04f0 */ .byte 95, 1, 16,107, 88,122, 31, 83,214,197, 50,139,232, 0, 0, 84
|
||||
/* 0x0500 */ .byte 127, 2, 11,235, 74, 93, 24, 83,192,234,255, 84,104, 1, 64, 57
|
||||
/* 0x0510 */ .byte 107, 5, 0,145, 7, 33, 7, 42,200, 2, 64,121, 73,125, 11, 83
|
||||
/* 0x0520 */ .byte 44, 2, 8, 75, 9,125, 9, 27, 30, 21, 72, 75, 8, 21,140, 11
|
||||
/* 0x0530 */ .byte 255, 0, 9,107, 74, 1, 9, 75, 3,253,255, 84,222, 2, 0,121
|
||||
/* 0x0540 */ .byte 231, 0, 9, 75,181, 2, 23, 42, 18, 7, 0, 17,230,255,255, 23
|
||||
/* 0x0550 */ .byte 40, 0,128, 82, 6, 0, 0, 20, 8,121, 31, 83,234,121, 46,120
|
||||
/* 0x0560 */ .byte 31,253, 3,113,233, 3, 12, 42, 44, 3, 0, 84, 63, 1, 16,107
|
||||
/* 0x0570 */ .byte 18,121, 31, 83, 14,125, 64,147,232, 0, 0, 84,127, 2, 11,235
|
||||
/* 0x0580 */ .byte 41, 93, 24, 83,224,230,255, 84,106, 1, 64, 57,107, 5, 0,145
|
||||
/* 0x0590 */ .byte 71, 33, 7, 42,234,121,110,120, 44,125, 11, 83, 45, 2, 10, 75
|
||||
/* 0x05a0 */ .byte 76,125, 12, 27, 86, 21, 74, 75, 74, 21,141, 11,255, 0, 12,107
|
||||
/* 0x05b0 */ .byte 41, 1, 12, 75, 35,253,255, 84, 72, 6, 0, 17,246,121, 46,120
|
||||
/* 0x05c0 */ .byte 31,253, 3,113,231, 0, 12, 75, 45,253,255, 84, 8, 29, 0, 83
|
||||
/* 0x05d0 */ .byte 63, 15, 0,113,136, 72, 34, 56,234, 3, 9, 42, 66, 4, 0, 17
|
||||
/* 0x05e0 */ .byte 236,225,255, 84,191, 0, 2,107, 25, 0,128, 82,232,215,255, 84
|
||||
/* 0x05f0 */ .byte 16,255,255, 23, 31, 32, 3,213, 74, 1, 8, 75,140, 21, 76, 75
|
||||
/* 0x0600 */ .byte 95, 1, 16,107,140,122, 41,120,231, 0, 8, 75,169, 97, 0,145
|
||||
/* 0x0610 */ .byte 232, 0, 0, 84,127, 2, 11,235, 64,226,255, 84,104, 1, 64, 57
|
||||
/* 0x0620 */ .byte 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,140,106,105,120
|
||||
/* 0x0630 */ .byte 72,125, 11, 83,136,125, 8, 27,255, 0, 8,107,226, 9, 0, 84
|
||||
/* 0x0640 */ .byte 42, 2, 12, 75, 31, 1, 16,107,239,129, 7,145,140, 21,138, 11
|
||||
/* 0x0650 */ .byte 140,106, 41,120,232, 0, 0, 84,127, 2, 11,235, 32,224,255, 84
|
||||
/* 0x0660 */ .byte 105, 1, 64, 57, 8, 93, 24, 83,107, 5, 0,145, 39, 33, 7, 42
|
||||
/* 0x0670 */ .byte 137,106,111,120, 10,125, 11, 83, 42,125, 10, 27,255, 0, 10,107
|
||||
/* 0x0680 */ .byte 130, 16, 0, 84, 40, 2, 9, 75, 41, 21,136, 11,137,106, 47,120
|
||||
/* 0x0690 */ .byte 130,222,255, 52, 72, 0, 21, 75, 63, 31, 0,113, 41, 1,128, 82
|
||||
/* 0x06a0 */ .byte 108, 1,128, 82, 57,177,140, 26,136,104,104, 56,136, 72, 34, 56
|
||||
/* 0x06b0 */ .byte 66, 4, 0, 17,221,254,255, 23,181, 6, 0, 49,160,219,255, 84
|
||||
/* 0x06c0 */ .byte 57, 31, 0, 17,191, 2, 2,107,173, 9, 0, 17,168,220,255, 84
|
||||
/* 0x06d0 */ .byte 233, 3, 2, 42, 72, 0, 21, 75,173, 5, 0, 81, 66, 4, 0, 17
|
||||
/* 0x06e0 */ .byte 191, 1, 31,107,160, 16, 66,122,136,104,104, 56,136, 72, 41, 56
|
||||
/* 0x06f0 */ .byte 233, 3, 2, 42, 8,255,255, 84,191, 0, 2,107,104,207,255, 84
|
||||
/* 0x0700 */ .byte 204,254,255, 23, 31, 32, 3,213, 8, 1, 10, 75,140, 21, 76, 75
|
||||
/* 0x0710 */ .byte 31, 1, 16,107, 44, 1, 0,121,231, 0, 10, 75,232, 0, 0, 84
|
||||
/* 0x0720 */ .byte 127, 2, 11,235,224,217,255, 84,106, 1, 64, 57, 8, 93, 24, 83
|
||||
/* 0x0730 */ .byte 107, 5, 0,145, 71, 33, 7, 42, 44, 5, 64,121, 10,125, 11, 83
|
||||
/* 0x0740 */ .byte 138,125, 10, 27,255, 0, 10,107, 66, 7, 0, 84,210,113, 29, 83
|
||||
/* 0x0750 */ .byte 40, 2, 12, 75, 22, 1,128, 82,126, 0,128, 82, 82,126, 64,147
|
||||
/* 0x0760 */ .byte 136, 21,136, 11, 82, 10, 2,145, 40, 5, 0,121, 50, 5, 18,139
|
||||
/* 0x0770 */ .byte 249,254,255, 23, 31, 32, 3,213, 74, 1, 8, 75,231, 0, 8, 75
|
||||
/* 0x0780 */ .byte 95, 1, 16,107,136, 21, 76, 75,136,106, 41,120,172,193, 0,145
|
||||
/* 0x0790 */ .byte 232, 0, 0, 84,127, 2, 11,235, 64,214,255, 84,104, 1, 64, 57
|
||||
/* 0x07a0 */ .byte 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,137,106,108,120
|
||||
/* 0x07b0 */ .byte 72,125, 11, 83, 40,125, 8, 27,255, 0, 8,107, 35, 5, 0, 84
|
||||
/* 0x07c0 */ .byte 74, 1, 8, 75, 41, 21, 73, 75, 95, 1, 16,107,137,106, 44,120
|
||||
/* 0x07d0 */ .byte 231, 0, 8, 75,173, 33, 1,145,232, 0, 0, 84,127, 2, 11,235
|
||||
/* 0x07e0 */ .byte 0,212,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145
|
||||
/* 0x07f0 */ .byte 7, 33, 7, 42,137,106,109,120, 72,125, 11, 83, 40,125, 8, 27
|
||||
/* 0x0800 */ .byte 255, 0, 8,107,226, 7, 0, 84,234, 3, 21, 42,236,107, 64,185
|
||||
/* 0x0810 */ .byte 234,107, 0,185, 42, 2, 9, 75,245,115, 64,185, 41, 21,138, 11
|
||||
/* 0x0820 */ .byte 236,115, 0,185,137,106, 45,120, 20, 0, 0, 20, 31, 32, 3,213
|
||||
/* 0x0830 */ .byte 231, 0, 10, 75, 50, 17, 8,145, 10, 1, 10, 75, 22, 2,128, 82
|
||||
/* 0x0840 */ .byte 136, 21, 76, 75, 30, 1,128, 82, 40, 5, 0,121,194,254,255, 23
|
||||
/* 0x0850 */ .byte 191, 0, 2,107, 57, 27, 0, 81,136,196,255, 84,117,254,255, 23
|
||||
/* 0x0860 */ .byte 234, 3, 21, 42,245,107, 64,185,234,107, 0,185, 42, 2, 9, 75
|
||||
/* 0x0870 */ .byte 41, 21,138, 11,137,106, 44,120, 63, 31, 0,113, 10, 1,128, 82
|
||||
/* 0x0880 */ .byte 108, 1,128, 82,233, 63, 64,249, 89,177,140, 26,156,254,255, 23
|
||||
/* 0x0890 */ .byte 41, 21, 73, 75, 8, 1, 10, 75,137,106, 47,120,231, 0, 10, 75
|
||||
/* 0x08a0 */ .byte 246,255,255, 23,233, 3, 14, 42, 87,254,255, 23, 41, 21, 0, 81
|
||||
/* 0x08b0 */ .byte 95, 1, 16,107, 8,121, 31, 83,232, 0, 0, 84,127, 2, 11,235
|
||||
/* 0x08c0 */ .byte 74, 93, 24, 83,224,204,255, 84,108, 1, 64, 57,107, 5, 0,145
|
||||
/* 0x08d0 */ .byte 135, 33, 7, 42, 74,125, 1, 83,255, 0, 10,107, 99, 0, 0, 84
|
||||
/* 0x08e0 */ .byte 231, 0, 10, 75, 8, 1, 0, 50, 41, 5, 0,113, 33,254,255, 84
|
||||
/* 0x08f0 */ .byte 21,109, 28, 83, 14, 32, 25,145,143, 0,128, 82,243,254,255, 23
|
||||
/* 0x0900 */ .byte 41, 21, 73, 75,137,106, 45,120,233,107, 64,185,236, 3, 21, 42
|
||||
/* 0x0910 */ .byte 231, 0, 8, 75,245, 3, 27, 42, 72, 1, 8, 75,251,115, 64,185
|
||||
/* 0x0920 */ .byte 236,107, 0,185,233,115, 0,185,212,255,255, 23, 2, 0,128, 82
|
||||
|
||||
140
src/stub/src/arch/arm64/v8/lzma_d_cs.S
Normal file
140
src/stub/src/arch/arm64/v8/lzma_d_cs.S
Normal file
@ -0,0 +1,140 @@
|
||||
/* 0x0000 */ .byte 243, 83,184,169, 39, 0,128, 82, 12, 16, 0,145,245, 91, 1,169
|
||||
/* 0x0010 */ .byte 247, 99, 2,169,249,107, 3,169,251,115, 4,169,254, 43, 0,249
|
||||
/* 0x0020 */ .byte 9,128,128, 82, 8, 8, 64, 57, 23, 0, 64, 57,232, 32,200, 26
|
||||
/* 0x0030 */ .byte 8, 5, 0, 81,232,111, 0,185, 8, 4, 64, 57,127, 0, 0,185
|
||||
/* 0x0040 */ .byte 231, 32,200, 26,223, 0, 0,185,231, 4, 0, 81,231,123, 0,185
|
||||
/* 0x0050 */ .byte 7, 4, 64, 57, 8, 96,128, 82,231, 0, 23, 11, 7, 33,199, 26
|
||||
/* 0x0060 */ .byte 8, 0,128,210,231,216, 28, 17,255, 0, 8,107,137, 0, 0, 84
|
||||
/* 0x0070 */ .byte 137,121, 40,120, 8, 5, 0,145,252,255,255, 23, 34, 64, 34,139
|
||||
/* 0x0080 */ .byte 41, 20, 0,145,231, 3, 1,170, 8, 0,128, 82, 95, 0, 7,235
|
||||
/* 0x0090 */ .byte 97, 0, 0, 84, 32, 0,128, 82, 1, 2, 0, 20,234, 20, 64, 56
|
||||
/* 0x00a0 */ .byte 63, 1, 7,235, 72, 33, 8, 42, 33,255,255, 84, 53, 0,128, 82
|
||||
/* 0x00b0 */ .byte 11,176, 41,145, 24, 1,128, 82,235, 59, 0,249, 7, 0,128, 18
|
||||
/* 0x00c0 */ .byte 11, 3, 23, 75,254, 3, 21, 42,243, 3, 21, 42,234, 3, 21, 42
|
||||
/* 0x00d0 */ .byte 13, 0,128, 82, 26, 0,128, 82, 14, 0,128, 82, 17,224,191, 18
|
||||
/* 0x00e0 */ .byte 18, 0,129, 82,121, 1,128, 82,235,127, 0,185,223, 1, 5,107
|
||||
/* 0x00f0 */ .byte 34, 60, 0, 84,235,111, 64,185,175,109, 28, 83,255, 0, 17,107
|
||||
/* 0x0100 */ .byte 212, 1, 11, 10,139,126, 64,147,111,193, 47,139,239,249,127,211
|
||||
/* 0x0110 */ .byte 232, 0, 0, 84, 63, 1, 2,235,224,251,255, 84, 43, 1, 64, 57
|
||||
/* 0x0120 */ .byte 231, 92, 24, 83, 41, 5, 0,145,104, 33, 8, 42,150,105,111,120
|
||||
/* 0x0130 */ .byte 240,124, 11, 83,208,126, 16, 27, 31, 1, 16,107,130, 12, 0, 84
|
||||
/* 0x0140 */ .byte 71, 2, 22, 75,191, 25, 0,113,214, 22,135, 11,231,123, 64,185
|
||||
/* 0x0150 */ .byte 150,105, 47,120,239,243, 65, 57,199, 1, 7, 10,231, 32,215, 26
|
||||
/* 0x0160 */ .byte 75, 43,207, 26,246, 0, 11, 11, 7, 96,128, 82,214,126, 7, 27
|
||||
/* 0x0170 */ .byte 214,218, 28,145,150, 5, 22,139,108, 0, 0, 84, 43, 0,128, 82
|
||||
/* 0x0180 */ .byte 26, 0, 0, 20,199, 1, 10, 75, 43, 0,128, 82,154,104,103, 56
|
||||
/* 0x0190 */ .byte 231, 3, 16, 42, 90,123, 31, 83,255, 0, 17,107, 91, 3, 24, 18
|
||||
/* 0x01a0 */ .byte 111,127, 64,147,239, 1, 4,145,239,193, 43,139,239,249,127,211
|
||||
/* 0x01b0 */ .byte 9, 2, 0, 84,212,106,111,120,240,124, 11, 83,107,121, 31, 83
|
||||
/* 0x01c0 */ .byte 144,126, 16, 27, 31, 1, 16,107, 35, 2, 0, 84,148, 22, 84, 75
|
||||
/* 0x01d0 */ .byte 212,106, 47,120,231, 0, 16, 75, 8, 1, 16, 75,107, 5, 0, 17
|
||||
/* 0x01e0 */ .byte 27, 2, 0, 53,240, 3, 7, 42,231, 3, 16, 42, 29, 0, 0, 20
|
||||
/* 0x01f0 */ .byte 63, 1, 2,235, 0,245,255, 84, 48, 1, 64, 57,231, 92, 24, 83
|
||||
/* 0x0200 */ .byte 41, 5, 0,145, 8, 34, 8, 42,235,255,255, 23, 71, 2, 20, 75
|
||||
/* 0x0210 */ .byte 148, 22,135, 11,212,106, 47,120,155,254,255, 53,231, 3, 16, 42
|
||||
/* 0x0220 */ .byte 127,253, 3,113,141,251,255, 84, 30, 0, 0, 20,255, 0, 17,107
|
||||
/* 0x0230 */ .byte 116,125,127,147,201, 1, 0, 84,208,106,116,120,239,124, 11, 83
|
||||
/* 0x0240 */ .byte 107,121, 31, 83, 15,126, 15, 27, 31, 1, 15,107,226, 1, 0, 84
|
||||
/* 0x0250 */ .byte 71, 2, 16, 75, 16, 22,135, 11,208,106, 52,120,231, 3, 15, 42
|
||||
/* 0x0260 */ .byte 127,253, 3,113, 77,254,255, 84, 14, 0, 0, 20, 63, 1, 2,235
|
||||
/* 0x0270 */ .byte 32,241,255, 84, 47, 1, 64, 57,231, 92, 24, 83, 41, 5, 0,145
|
||||
/* 0x0280 */ .byte 232, 33, 8, 42,237,255,255, 23, 8, 1, 15, 75, 16, 22, 80, 75
|
||||
/* 0x0290 */ .byte 107, 5, 0, 17,208,106, 52,120,239, 0, 15, 75,240,255,255, 23
|
||||
/* 0x02a0 */ .byte 122, 29, 0, 83,191, 13, 0,113,154, 72, 46, 56,207, 5, 0, 17
|
||||
/* 0x02b0 */ .byte 205, 45, 0, 84,191, 37, 0,113,108, 0, 0, 84,173, 13, 0, 81
|
||||
/* 0x02c0 */ .byte 107, 1, 0, 20,173, 25, 0, 81,105, 1, 0, 20,231, 0, 16, 75
|
||||
/* 0x02d0 */ .byte 8, 1, 16, 75,214, 22, 86, 75,176,125, 64,147,150,105, 47,120
|
||||
/* 0x02e0 */ .byte 255, 0, 17,107, 16, 2, 3,145, 16,250,127,211,232, 0, 0, 84
|
||||
/* 0x02f0 */ .byte 63, 1, 2,235, 0,237,255, 84, 43, 1, 64, 57,231, 92, 24, 83
|
||||
/* 0x0300 */ .byte 41, 5, 0,145,104, 33, 8, 42,150,105,112,120,235,124, 11, 83
|
||||
/* 0x0310 */ .byte 203,126, 11, 27, 31, 1, 11,107,130, 1, 0, 84, 71, 2, 22, 75
|
||||
/* 0x0320 */ .byte 191, 29, 0,113,245, 3, 30, 42, 15,160, 25,145,214, 22,135, 11
|
||||
/* 0x0330 */ .byte 103, 0,128, 82,254, 3, 19, 42,150,105, 48,120,237,179,135, 26
|
||||
/* 0x0340 */ .byte 243, 3, 10, 42,117, 0, 0, 20,231, 0, 11, 75,214, 22, 86, 75
|
||||
/* 0x0350 */ .byte 255, 0, 17,107,150,105, 48,120, 8, 1, 11, 75, 26, 98, 0,145
|
||||
/* 0x0360 */ .byte 232, 0, 0, 84, 63, 1, 2,235, 96,233,255, 84, 43, 1, 64, 57
|
||||
/* 0x0370 */ .byte 231, 92, 24, 83, 41, 5, 0,145,104, 33, 8, 42,150,105,122,120
|
||||
/* 0x0380 */ .byte 235,124, 11, 83,203,126, 11, 27, 31, 1, 11,107,194, 4, 0, 84
|
||||
/* 0x0390 */ .byte 71, 2, 22, 75,127, 1, 17,107,239,129, 7,145,214, 22,135, 11
|
||||
/* 0x03a0 */ .byte 150,105, 58,120,232, 0, 0, 84, 63, 1, 2,235, 64,231,255, 84
|
||||
/* 0x03b0 */ .byte 39, 1, 64, 57,107, 93, 24, 83, 41, 5, 0,145,232, 32, 8, 42
|
||||
/* 0x03c0 */ .byte 144,105,111,120,103,125, 11, 83, 7,126, 7, 27, 31, 1, 7,107
|
||||
/* 0x03d0 */ .byte 162, 1, 0, 84, 75, 2, 16, 75, 16, 22,139, 11,144,105, 47,120
|
||||
/* 0x03e0 */ .byte 174,229,255, 52, 43, 1,128, 82,191, 29, 0,113,109,177,153, 26
|
||||
/* 0x03f0 */ .byte 203, 1, 10, 75,207, 5, 0, 17,154,104,107, 56,154, 72, 46, 56
|
||||
/* 0x0400 */ .byte 27, 1, 0, 20,107, 1, 7, 75, 8, 1, 7, 75, 16, 22, 80, 75
|
||||
/* 0x0410 */ .byte 231, 3, 30, 42,144,105, 47,120,254, 3, 10, 42,234, 3, 19, 42
|
||||
/* 0x0420 */ .byte 24, 0, 0, 20,231, 0, 11, 75,214, 22, 86, 75,255, 0, 17,107
|
||||
/* 0x0430 */ .byte 150,105, 58,120, 8, 1, 11, 75, 22,194, 0,145,232, 0, 0, 84
|
||||
/* 0x0440 */ .byte 63, 1, 2,235,128,226,255, 84, 43, 1, 64, 57,231, 92, 24, 83
|
||||
/* 0x0450 */ .byte 41, 5, 0,145,104, 33, 8, 42,143,105,118,120,235,124, 11, 83
|
||||
/* 0x0460 */ .byte 235,125, 11, 27, 31, 1, 11,107, 2, 1, 0, 84, 71, 2, 15, 75
|
||||
/* 0x0470 */ .byte 239, 21,135, 11,231, 3, 30, 42,143,105, 54,120,254, 3, 19, 42
|
||||
/* 0x0480 */ .byte 243, 3, 7, 42, 30, 0, 0, 20,231, 0, 11, 75,239, 21, 79, 75
|
||||
/* 0x0490 */ .byte 255, 0, 17,107,143,105, 54,120, 8, 1, 11, 75, 16, 34, 1,145
|
||||
/* 0x04a0 */ .byte 232, 0, 0, 84, 63, 1, 2,235, 96,223,255, 84, 43, 1, 64, 57
|
||||
/* 0x04b0 */ .byte 231, 92, 24, 83, 41, 5, 0,145,104, 33, 8, 42,143,105,112,120
|
||||
/* 0x04c0 */ .byte 235,124, 11, 83,235,125, 11, 27, 31, 1, 11,107,162, 0, 0, 84
|
||||
/* 0x04d0 */ .byte 71, 2, 15, 75,239, 21,135, 11,143,105, 48,120, 8, 0, 0, 20
|
||||
/* 0x04e0 */ .byte 8, 1, 11, 75,235, 0, 11, 75,231, 3, 30, 42,239, 21, 79, 75
|
||||
/* 0x04f0 */ .byte 254, 3, 21, 42,143,105, 48,120,245, 3, 7, 42,231, 3, 10, 42
|
||||
/* 0x0500 */ .byte 191, 29, 0,113,239, 59, 64,249,234, 3, 30, 42, 13,179,153, 26
|
||||
/* 0x0510 */ .byte 254, 3, 19, 42,243, 3, 7, 42,127, 1, 17,107,232, 0, 0, 84
|
||||
/* 0x0520 */ .byte 63, 1, 2,235,128,219,255, 84, 39, 1, 64, 57,107, 93, 24, 83
|
||||
/* 0x0530 */ .byte 41, 5, 0,145,232, 32, 8, 42,240, 1, 64,121,103,125, 11, 83
|
||||
/* 0x0540 */ .byte 7,126, 7, 27, 31, 1, 7,107, 66, 1, 0, 84,148,114, 29, 83
|
||||
/* 0x0550 */ .byte 75, 2, 16, 75,148,126, 64,147, 16, 22,139, 11,148, 10, 0,145
|
||||
/* 0x0560 */ .byte 240, 1, 0,121, 16, 0,128, 82,239, 5, 20,139, 26, 0, 0, 20
|
||||
/* 0x0570 */ .byte 107, 1, 7, 75, 16, 22, 80, 75,127, 1, 17,107,240, 1, 0,121
|
||||
/* 0x0580 */ .byte 8, 1, 7, 75,232, 0, 0, 84, 63, 1, 2,235, 64,216,255, 84
|
||||
/* 0x0590 */ .byte 39, 1, 64, 57,107, 93, 24, 83, 41, 5, 0,145,232, 32, 8, 42
|
||||
/* 0x05a0 */ .byte 240, 5, 64,121,103,125, 11, 83, 7,126, 7, 27, 31, 1, 7,107
|
||||
/* 0x05b0 */ .byte 98, 1, 0, 84,148,114, 29, 83, 75, 2, 16, 75,148,126, 64,147
|
||||
/* 0x05c0 */ .byte 16, 22,139, 11,148, 10, 2,145,240, 5, 0,121, 16, 1,128, 82
|
||||
/* 0x05d0 */ .byte 239, 5, 20,139,122, 0,128, 82, 8, 0, 0, 20, 16, 22, 80, 75
|
||||
/* 0x05e0 */ .byte 8, 1, 7, 75,240, 5, 0,121,103, 1, 7, 75,239, 17, 8,145
|
||||
/* 0x05f0 */ .byte 16, 2,128, 82, 26, 1,128, 82,251, 3, 26, 42, 43, 0,128, 82
|
||||
/* 0x0600 */ .byte 255, 0, 17,107,252,197, 43,139,232, 0, 0, 84, 63, 1, 2,235
|
||||
/* 0x0610 */ .byte 32,212,255, 84, 52, 1, 64, 57,231, 92, 24, 83, 41, 5, 0,145
|
||||
/* 0x0620 */ .byte 136, 34, 8, 42,150, 3, 64,121,244,124, 11, 83,107,121, 31, 83
|
||||
/* 0x0630 */ .byte 212,126, 20, 27, 31, 1, 20,107,194, 0, 0, 84, 71, 2, 22, 75
|
||||
/* 0x0640 */ .byte 214, 22,135, 11,231, 3, 20, 42,150, 3, 0,121, 6, 0, 0, 20
|
||||
/* 0x0650 */ .byte 214, 22, 86, 75,231, 0, 20, 75, 8, 1, 20, 75,150, 3, 0,121
|
||||
/* 0x0660 */ .byte 107, 5, 0, 17,123, 7, 0,113,193,252,255, 84, 47, 0,128, 82
|
||||
/* 0x0670 */ .byte 191, 13, 0,113,250, 33,218, 26, 16, 2, 26, 75, 16, 2, 11, 11
|
||||
/* 0x0680 */ .byte 172, 13, 0, 84,106, 0,128, 82, 31, 14, 0,113, 11,210,138, 26
|
||||
/* 0x0690 */ .byte 214, 0,128, 82,107,101, 26, 83,234, 3, 15, 42,107,125, 64,147
|
||||
/* 0x06a0 */ .byte 107,193, 6,145,107,249,127,211,255, 0, 17,107,122,197, 42,139
|
||||
/* 0x06b0 */ .byte 232, 0, 0, 84, 63, 1, 2,235,224,206,255, 84, 47, 1, 64, 57
|
||||
/* 0x06c0 */ .byte 231, 92, 24, 83, 41, 5, 0,145,232, 33, 8, 42,148,105,122,120
|
||||
/* 0x06d0 */ .byte 239,124, 11, 83, 74,121, 31, 83,143,126, 15, 27, 31, 1, 15,107
|
||||
/* 0x06e0 */ .byte 194, 0, 0, 84, 71, 2, 20, 75,148, 22,135, 11,231, 3, 15, 42
|
||||
/* 0x06f0 */ .byte 148,105, 58,120, 6, 0, 0, 20,148, 22, 84, 75,231, 0, 15, 75
|
||||
/* 0x0700 */ .byte 8, 1, 15, 75,148,105, 58,120, 74, 5, 0, 17,214, 6, 0,113
|
||||
/* 0x0710 */ .byte 193,252,255, 84, 75, 1, 1, 81,127, 13, 0,113, 77, 8, 0, 84
|
||||
/* 0x0720 */ .byte 127, 53, 0,113,106, 1, 0, 18,111,125, 1, 19, 74, 1, 31, 50
|
||||
/* 0x0730 */ .byte 44, 1, 0, 84,239, 5, 0, 81, 20, 86,128,210, 74, 33,207, 26
|
||||
/* 0x0740 */ .byte 139,194, 43,203,107, 65, 42,139,139, 5, 11,139,107, 9, 0,209
|
||||
/* 0x0750 */ .byte 21, 0, 0, 20,239, 21, 0, 81,255, 0, 17,107,232, 0, 0, 84
|
||||
/* 0x0760 */ .byte 63, 1, 2,235,128,201,255, 84, 43, 1, 64, 57,231, 92, 24, 83
|
||||
/* 0x0770 */ .byte 41, 5, 0,145,104, 33, 8, 42,231,124, 1, 83, 74,121, 31, 83
|
||||
/* 0x0780 */ .byte 31, 1, 7,107, 99, 0, 0, 84, 8, 1, 7, 75, 74, 1, 0, 50
|
||||
/* 0x0790 */ .byte 239, 5, 0,113, 33,254,255, 84, 11, 32, 25,145, 74,109, 28, 83
|
||||
/* 0x07a0 */ .byte 143, 0,128, 82, 52, 0,128, 82,251, 3, 20, 42,255, 0, 17,107
|
||||
/* 0x07b0 */ .byte 124,197, 52,139,232, 0, 0, 84, 63, 1, 2,235,192,198,255, 84
|
||||
/* 0x07c0 */ .byte 54, 1, 64, 57,231, 92, 24, 83, 41, 5, 0,145,200, 34, 8, 42
|
||||
/* 0x07d0 */ .byte 154, 3, 64,121,246,124, 11, 83,148,122, 31, 83, 86,127, 22, 27
|
||||
/* 0x07e0 */ .byte 31, 1, 22,107,194, 0, 0, 84, 71, 2, 26, 75, 90, 23,135, 11
|
||||
/* 0x07f0 */ .byte 231, 3, 22, 42,154, 3, 0,121, 7, 0, 0, 20, 90, 23, 90, 75
|
||||
/* 0x0800 */ .byte 231, 0, 22, 75, 8, 1, 22, 75,154, 3, 0,121,148, 6, 0, 17
|
||||
/* 0x0810 */ .byte 74, 1, 27, 42,239, 5, 0,113,123,123, 31, 83,129,252,255, 84
|
||||
/* 0x0820 */ .byte 2, 0, 0, 20,234, 3, 11, 42, 74, 5, 0, 49, 64, 2, 0, 84
|
||||
/* 0x0830 */ .byte 173, 29, 0, 17,223, 1, 10,107, 11, 10, 0, 17,195,194,255, 84
|
||||
/* 0x0840 */ .byte 207, 1, 10, 75,107, 5, 0, 81,127, 1, 31,107,154,104,111, 56
|
||||
/* 0x0850 */ .byte 207, 5, 0, 17,154, 72, 46, 56,160, 16, 79,122,238, 3, 15, 42
|
||||
/* 0x0860 */ .byte 8,255,255, 84, 2, 0, 0, 20, 13, 0,128, 82,238, 3, 15, 42
|
||||
/* 0x0870 */ .byte 31,254,255, 23, 0,224,191, 18,255, 0, 0,107,136, 0, 0, 84
|
||||
/* 0x0880 */ .byte 63, 1, 2,235,128,192,255, 84, 41, 5, 0,145, 33, 1, 1,203
|
||||
/* 0x0890 */ .byte 97, 0, 0,185, 0, 0,128, 82,206, 0, 0,185,245, 91, 65,169
|
||||
/* 0x08a0 */ .byte 247, 99, 66,169,249,107, 67,169,251,115, 68,169,254, 43, 64,249
|
||||
/* 0x08b0 */ .byte 243, 83,200,168
|
||||
@ -30,96 +30,47 @@
|
||||
#define __MACROS_S__ 1
|
||||
|
||||
.altmacro
|
||||
lr .req x30
|
||||
fp .req x29
|
||||
|
||||
#define PUSH1(r1) str r1, [sp,#-1*8]!
|
||||
#define PUSH2(r1,r2) stp r1,r2,[sp,#-2*8]!
|
||||
#define PUSH3(r1,r2,r3) stp r1,r2,[sp,#-3*8]!; str r3, [sp,#2*8]
|
||||
#define PUSH4(r1,r2,r3,r4) stp r1,r2,[sp,#-4*8]!; stp r3,r4,[sp,#2*8]
|
||||
#define PUSH5(r1,r2,r3,r4,r5) PUSH2(r4,r5); PUSH3(r1,r2,r3)
|
||||
// ARM64 (AARCH64) REQUIRES 16-BYTE ALIGNED STACK POINTER (SP)
|
||||
// Therefore PUSH of an odd number of registers, inserts an 8-byte hole.
|
||||
|
||||
#define POP1(r1) ldr r1, [sp],#1*8
|
||||
#define PUSH1(r1) str r1, [sp,#-2*8]! /* HOLE */
|
||||
#define PUSH2(r1,r2) stp r1,r2,[sp,#-2*8]!
|
||||
#define PUSH3(r1,r2,r3) stp r1,r2,[sp,#-4*8]!;\
|
||||
str r3, [sp,# 2*8] /* HOLE */
|
||||
#define PUSH4(r1,r2,r3,r4) stp r1,r2,[sp,#-4*8]!; \
|
||||
stp r3,r4,[sp,# 2*8]
|
||||
#define PUSH5(r1,r2,r3,r4,r5) stp r1,r2,[sp,#-6*8]!;\
|
||||
stp r3,r4,[sp,# 2*8];\
|
||||
str r5, [sp,# 4*8] /* HOLE */
|
||||
|
||||
#define POP1(r1) ldr r1, [sp],#2*8
|
||||
#define POP2(r1,r2) ldp r1,r2,[sp],#2*8
|
||||
#define POP3(r1,r2,r3) ldr r3, [sp,#2*8]; ldp r1,r2,[sp],#3*8
|
||||
#define POP3(r1,r2,r3) ldr r3, [sp,#2*8]; ldp r1,r2,[sp],#4*8
|
||||
#define POP4(r1,r2,r3,r4) ldp r3,r4,[sp,#2*8]; ldp r1,r2,[sp],#4*8
|
||||
|
||||
.macro section name
|
||||
.section \name
|
||||
.endm
|
||||
|
||||
/* The order of #if-#elif matters: ARMEL_EABI4 takes precedence over ARM_OLDABI */
|
||||
#if defined(ARMEL_DARWIN) /*{*/
|
||||
__NR_SYSCALL_BASE = 0
|
||||
.macro do_sys N
|
||||
mov w8,#\N
|
||||
brk #0x80 // sets Carry iff error
|
||||
svc #0 // sets Carry iff error
|
||||
// orrcs r0,r0,#(1<<31) // force negative on error; FIXME: needed?
|
||||
ret
|
||||
.endm
|
||||
.macro do_sys7t N
|
||||
do_sys \N
|
||||
.endm
|
||||
|
||||
.macro do_dcache_flush // In: r0=addr; r1=len
|
||||
mov w3,#1 // _sys_dcache_flush
|
||||
mov w8,#(1<<31) // syscall number?
|
||||
brk #0x80
|
||||
svc #0
|
||||
.endm
|
||||
|
||||
.macro do_icache_invalidate // In: r0=addr; r1=len
|
||||
mov w3,#0 // _sys_icache_invalidate
|
||||
mov w8,#(1<<31) // syscall number?
|
||||
brk #0x80
|
||||
.endm
|
||||
#elif defined(ARMEL_EABI4) /*}{*/
|
||||
|
||||
__NR_SYSCALL_BASE = 0
|
||||
.macro do_sys7t N
|
||||
mov r7,#\N // syscall number
|
||||
brk #0
|
||||
.endm
|
||||
.macro do_sys N
|
||||
mov r12,r7 // save r7 in ip
|
||||
do_sys7t \N
|
||||
mov r7,r12 // restore r7 from ip
|
||||
.endm
|
||||
.macro do_sys7t2 N
|
||||
mov r7, #(\N) & 0xff // syscall number
|
||||
orr r7,r7,#(\N) &~0xff // high bits
|
||||
brk #0
|
||||
.endm
|
||||
.macro do_sys2 N
|
||||
mov r12,r7 // save r7 in ip
|
||||
do_sys7t2 \N
|
||||
mov r7,r12 // restore r7 from ip
|
||||
.endm
|
||||
|
||||
#elif defined(ARM_OLDABI) /*}{*/
|
||||
|
||||
__NR_SYSCALL_BASE = 0x900000
|
||||
.macro do_sys N
|
||||
brk #\N
|
||||
.endm
|
||||
.macro do_sys7t N
|
||||
do_sys \N
|
||||
.endm
|
||||
.macro do_sys2 N
|
||||
brk #\N
|
||||
.endm
|
||||
.macro do_sys7t2 N
|
||||
do_sys2 \N
|
||||
.endm
|
||||
|
||||
#else /*}{*/
|
||||
.macro do_sys N
|
||||
error \N // ARM_OLDABI, ARMEL_EABI4, ARMEL_DARWIN ?
|
||||
.endm
|
||||
.macro do_sys2 N
|
||||
error \N // ARM_OLDABI, ARMEL_EABI4, ARMEL_DARWIN ?
|
||||
.endm
|
||||
#endif /*}*/
|
||||
|
||||
.macro loadcon8 reg,val8
|
||||
.long (0xe3<<24)|(0xa0<<16)|((\reg<<4)<<8)+(\val8) /* mov \reg,#\val8 */
|
||||
svc #0
|
||||
.endm
|
||||
|
||||
#endif //}
|
||||
|
||||
@ -57,9 +57,9 @@
|
||||
#define jnextb0 GETBIT; bcc
|
||||
#define jnextb1 GETBIT; bcs
|
||||
|
||||
ucl_nrv2b_decompress_8: .globl ucl_nrv2b_decompress_8 // ARM mode
|
||||
.type ucl_nrv2b_decompress_8, %function
|
||||
/* error = (*)(char const *src, int len_src, char *dst, int *plen_dst) */
|
||||
ucl_nrv2b_decompress_32: .globl ucl_nrv2b_decompress_32 // ARM mode
|
||||
.type ucl_nrv2b_decompress_32, %function
|
||||
/* error = (*)(char const *src, uint32_t len_src, char *dst, uint32_t *plen_dst) */
|
||||
add x1,src,len,uxtw // x1= eof_src;
|
||||
PUSH4(x1,x2,x3, lr)
|
||||
mov off,#-1 // off= -1 initial condition
|
||||
@ -67,38 +67,28 @@ ucl_nrv2b_decompress_8: .globl ucl_nrv2b_decompress_8 // ARM mode
|
||||
b top_n2b
|
||||
|
||||
eof_n2b:
|
||||
POP3(x1,x3,x4) // x1= eof_src; r3= orig_dst; r4= plen_dst
|
||||
POP4(x1,x3,x4, lr) // x1= eof_src; r3= orig_dst; r4= plen_dst
|
||||
SUB2(src,x1) // 0 if actual src length equals expected length
|
||||
SUB2(dst,x3) // actual dst length
|
||||
str dstw,[x4]
|
||||
|
||||
#if defined(LINUX_ARM_CACHEFLUSH) /*{*/
|
||||
mov x4,x0 // save result value
|
||||
|
||||
mov x0,x3 // orig_dst
|
||||
add x1,x3,dst // orig_dst + dst_len
|
||||
mov w2,#0
|
||||
do_sys2 __ARM_NR_cacheflush // decompressed region
|
||||
mov x0,x4 // result value
|
||||
#endif /*}*/
|
||||
#if defined(DARWIN_ARM_CACHEFLUSH) /*{*/
|
||||
mov x4,x0 // save result value
|
||||
mov x0,x3 // orig_dst
|
||||
mov x1,dst // dst_len
|
||||
PUSH2(x0,x1); do_dcache_flush
|
||||
POP2 (x0,x1); do_icache_invalidate
|
||||
mov x0,x4 // result value
|
||||
#endif /*}*/
|
||||
cache_n2b:
|
||||
dc cvau,x0 // Clean by VA to point of Unification
|
||||
ic ivau,x0 // Invalidate by VA to point of Unification
|
||||
add x0,x0,#64 // next line
|
||||
cmp x0,x1; blo cache_n2b
|
||||
|
||||
ldr lr,[sp],#8
|
||||
mov x0,x4 // result value
|
||||
ret
|
||||
|
||||
get1_n2b:
|
||||
ADD2S(bits,bits); cbz bits,get8_n2b; ret
|
||||
get8_n2b: // In: Carry set [from adding 0x80000000 (1<<31) to itself]
|
||||
LDRB3(bits,[src],#1) // zero-extend next byte
|
||||
ADC2(bits,bits) // double and insert CarryIn as low bit
|
||||
lsl bits,bits,#23 // top 9 bits
|
||||
ADD2S(bits,bits) // top 8 bits; CarryOut from doubling
|
||||
ADD2S(bits,bits); cbz bits,get32_n2b; ret
|
||||
get32_n2b: // In: Carry set [from adding 0x80000000 (1<<31) to itself]
|
||||
LDR3(bits,[src],#4)
|
||||
ADC2S(bits,bits) // left shift 1 bit with CarryIn and CarryOut
|
||||
ret
|
||||
|
||||
ss11_n2b: // return len= [2..)
|
||||
@ -135,7 +125,7 @@ copy_n2b: // copy 1+len bytes
|
||||
STRB3(tmp,[dst],#1); bhs copy_n2b
|
||||
b top_n2b // exit with -1==len
|
||||
|
||||
.size ucl_nrv2b_decompress_8, .-ucl_nrv2b_decompress_8
|
||||
.size ucl_nrv2b_decompress_32, .-ucl_nrv2b_decompress_32
|
||||
/*
|
||||
vi:ts=8:et:nowrap
|
||||
*/
|
||||
@ -1,4 +1,4 @@
|
||||
/* nrv2d_d8.S -- ARM decompressor for NRV2D
|
||||
/* nrv2d_d32.S -- ARM64 decompressor for NRV2D
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
@ -55,11 +55,12 @@
|
||||
#define ADC2S(dst,src) adcs dst,dst,src
|
||||
#define SUB2( dst,src) sub dst,dst,src
|
||||
#define SUB2S(dst,src) subs dst,dst,src
|
||||
#define LDR3( reg,psrc,incr) ldr reg,psrc,incr
|
||||
#define LDRB3(reg,psrc,incr) ldrb reg,psrc,incr
|
||||
#define STRB3(reg,pdst,incr) strb reg,pdst,incr
|
||||
|
||||
#if 1==SAFE /*{*/
|
||||
#define CHECK_SRC cmp srclim,src; bls bad_src_n2d /* Out: 1==Carry for get8_n2d */
|
||||
#define CHECK_SRC cmp srclim,src; bls bad_src_n2d /* Out: 1==Carry for get32_n2d */
|
||||
#define CHECK_DST cmp dst,dstlim; bhs bad_dst_n2d
|
||||
#else /*}{*/
|
||||
#define CHECK_SRC /*empty*/
|
||||
@ -82,8 +83,8 @@
|
||||
#define jnextb0 GETBIT; bcc
|
||||
#define jnextb1 GETBIT; bcs
|
||||
|
||||
ucl_nrv2d_decompress_8: .globl ucl_nrv2d_decompress_8 // ARM mode
|
||||
.type ucl_nrv2d_decompress_8, %function
|
||||
ucl_nrv2d_decompress_32: .globl ucl_nrv2d_decompress_32 // ARM mode
|
||||
.type ucl_nrv2d_decompress_32, %function
|
||||
/* error = (*)(char const *src, int len_src, char *dst, int *plen_dst)
|
||||
Actual decompressed length is stored through plen_dst.
|
||||
For SAFE mode: at call, *plen_dst must be allowed length of output buffer.
|
||||
@ -111,34 +112,25 @@ eof_n2d:
|
||||
SUB2(src,srclim) // 0 if actual src length equals expected length
|
||||
SUB2(dst,x3) // actual dst length
|
||||
str dstw,[x4]
|
||||
|
||||
#if defined(LINUX_ARM_CACHEFLUSH) /*{*/
|
||||
mov x4,x0 // save result value
|
||||
|
||||
mov x0,x3 // orig_dst
|
||||
add x1,x3,dst // orig_dst + dst_len
|
||||
mov w2,#0
|
||||
do_sys2 __ARM_NR_cacheflush // decompressed region
|
||||
mov x0,x4 // result value
|
||||
#endif /*}*/
|
||||
#if defined(DARWIN_ARM_CACHEFLUSH) /*{*/
|
||||
mov x4,x0 // save result value
|
||||
mov x0,x3 // orig_dst
|
||||
mov x1,dst // dst_len
|
||||
PUSH2(x0,x1); do_dcache_flush
|
||||
POP2 (x0,x1); do_icache_invalidate
|
||||
mov x0,x4 // result value
|
||||
#endif /*}*/
|
||||
cache_n2d:
|
||||
dc cvau,x0 // Clean by VA to point of Unification
|
||||
ic ivau,x0 // Invalidate by VA to point of Unification
|
||||
add x0,x0,#64 // next line
|
||||
cmp x0,x1; blo cache_n2d
|
||||
|
||||
ldr lr,[sp],#8
|
||||
mov x0,x4 // result value
|
||||
POP1(lr)
|
||||
ret
|
||||
|
||||
get1_n2d:
|
||||
ADD2S(bits,bits); cbz bits,get8_n2d; ret
|
||||
get8_n2d: // In: Carry set [from adding 0x80000000 (1<<31) to itself]
|
||||
CHECK_SRC; LDRB3(bits,[src],#1) // zero-extend next byte
|
||||
ADC2S(bits,bits) // double and insert CarryIn as low bit
|
||||
lsl bits,bits,#23 // top 9 bits
|
||||
ADD2S(bits,bits) // top 8 bits; CarryOut from doubling
|
||||
ADD2S(bits,bits); cbz bits,get32_n2d; ret
|
||||
get32_n2d: // In: Carry set [from adding 0x80000000 (1<<31) to itself]
|
||||
CHECK_SRC; LDR3(bits,[src],#4)
|
||||
ADC2S(bits,bits) // left shift one bit with CarryIn and CarryOut
|
||||
ret
|
||||
|
||||
lit_n2d:
|
||||
@ -194,7 +186,7 @@ copy_n2d:
|
||||
SUB2S(len,#1); bne copy_n2d
|
||||
b top_n2d
|
||||
|
||||
.size ucl_nrv2d_decompress_8, .-ucl_nrv2d_decompress_8
|
||||
.size ucl_nrv2d_decompress_32, .-ucl_nrv2d_decompress_32
|
||||
|
||||
/*
|
||||
vi:ts=8:et:nowrap
|
||||
@ -69,7 +69,7 @@
|
||||
#if 0 /*{ DEBUG only: check newly-decompressed against original dst */
|
||||
#define CHECK_BYTE \
|
||||
ldrb w6,[dst]; \
|
||||
cmp w6,tmp; beq 0f; bkpt; 0:
|
||||
cmp w6,tmp; beq 0f; brk #0; 0:
|
||||
#else /*}{*/
|
||||
#define CHECK_BYTE /*empty*/
|
||||
#endif /*}*/
|
||||
@ -84,11 +84,12 @@
|
||||
|
||||
ucl_nrv2e_decompress_32: .globl ucl_nrv2e_decompress_32 // ARM mode
|
||||
.type ucl_nrv2e_decompress_32, %function
|
||||
/* error = (*)(char const *src, int len_src, char *dst, int *plen_dst)
|
||||
/* error = (*)(char const *src, uint32_t len_src, char *dst, uint32_t *plen_dst)
|
||||
Actual decompressed length is stored through plen_dst.
|
||||
For SAFE mode: at call, *plen_dst must be allowed length of output buffer.
|
||||
*/
|
||||
PUSH3(x2,x3, lr)
|
||||
PUSH1(lr)
|
||||
PUSH2(x2,x3)
|
||||
#define sp_DST0 0 /* stack offset of original dst */
|
||||
add srclim,src,len,uxtw // srclim= eof_src;
|
||||
#if 1==SAFE /*{*/
|
||||
@ -101,7 +102,6 @@ ucl_nrv2e_decompress_32: .globl ucl_nrv2e_decompress_32 // ARM mode
|
||||
|
||||
#if 1==SAFE /*{*/
|
||||
bad_dst_n2e: # return value will be 2
|
||||
bkpt
|
||||
add src,srclim,#1
|
||||
bad_src_n2e: # return value will be 1
|
||||
ADD2(src,#1)
|
||||
@ -111,31 +111,25 @@ eof_n2e:
|
||||
SUB2(src,srclim) // 0 if actual src length equals expected length
|
||||
SUB2(dst,x3) // actual dst length
|
||||
str dstw,[x4]
|
||||
|
||||
#if defined(LINUX_ARM_CACHEFLUSH) /*{*/
|
||||
mov x4,x0 // save result value
|
||||
|
||||
mov x0,x3 // orig_dst
|
||||
add x1,x3,dst // orig_dst + dst_len
|
||||
mov w2,#0
|
||||
do_sys2 __ARM_NR_cacheflush // decompressed region
|
||||
mov x0,x4 // result value
|
||||
#endif /*}*/
|
||||
#if defined(DARWIN_ARM_CACHEFLUSH) /*{*/
|
||||
mov x4,x0 // save result value
|
||||
mov x0,x3 // orig_dst
|
||||
mov x1,dst // dst_len
|
||||
PUSH2(x0,x1); do_dcache_flush
|
||||
POP {x0,x1}; do_icache_invalidate
|
||||
mov x0,x4 // result value
|
||||
#endif /*}*/
|
||||
cache_n2e:
|
||||
dc cvau,x0 // Clean by VA to point of Unification
|
||||
ic ivau,x0 // Invalidate by VA to point of Unification
|
||||
add x0,x0,#64 // next line
|
||||
cmp x0,x1; blo cache_n2e
|
||||
|
||||
ldr lr,[sp],#8; br lr
|
||||
mov x0,x4 // result value
|
||||
POP1(lr)
|
||||
ret
|
||||
|
||||
get1_n2e:
|
||||
ADD2S(bits,bits); cbz bits,get32_n2e; ret
|
||||
get32_n2e: // In: Carry set [from adding 0x80000000 (1<<31) to itself]
|
||||
CHECK_SRC; ldr bits,[src],#4
|
||||
ADC2S(bits,bits) // double, insert CarryIn as low bit, record CarryOut
|
||||
ADC2S(bits,bits) // left shift 1 bit with CarryIn and CarryOut
|
||||
ret
|
||||
|
||||
lit_n2e:
|
||||
|
||||
@ -1,209 +0,0 @@
|
||||
/* armv4_n2e_d8.S -- ARM decompressor for NRV2E
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996-2017 Laszlo Molnar
|
||||
Copyright (C) 2000-2017 John F. Reiser
|
||||
All Rights Reserved.
|
||||
|
||||
UPX and the UCL library are free software; you can redistribute them
|
||||
and/or modify them under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
<markus@oberhumer.com> <ezerotven+github@gmail.com>
|
||||
|
||||
John F. Reiser
|
||||
<jreiser@users.sourceforge.net>
|
||||
*/
|
||||
#define SAFE 0 /* 1 for src+dst bounds checking: cost 76 bytes */
|
||||
|
||||
#define lr x30
|
||||
|
||||
#define src x0
|
||||
#define len w1 /* overlaps 'cnt' */
|
||||
#define dst x2
|
||||
#define dstw w2
|
||||
#define tmp w3
|
||||
#define tmpx x3
|
||||
#define bits w4
|
||||
#define off w5
|
||||
/* r6 UNUSED in ARM code unless DEBUG mode */
|
||||
#define srclim x7
|
||||
#if 1==SAFE /*{*/
|
||||
#define dstlim x12 /* FIXME */
|
||||
#endif /*}*/
|
||||
|
||||
#define cnt w1 /* overlaps 'len' while reading an offset */
|
||||
|
||||
/* macros reduce "noise" when comparing this ARM code to corresponding THUMB code */
|
||||
#define ADD2( dst,src) add dst,dst,src
|
||||
#define ADD2S(dst,src) adds dst,dst,src
|
||||
#define ADC2( dst,src) adc dst,dst,src
|
||||
#define ADC2S(dst,src) adcs dst,dst,src
|
||||
#define SUB2( dst,src) sub dst,dst,src
|
||||
#define SUB2S(dst,src) subs dst,dst,src
|
||||
#define LDRB3(reg,psrc,incr) ldrb reg,psrc,incr
|
||||
#define STRB3(reg,pdst,incr) strb reg,pdst,incr
|
||||
|
||||
#if 1==SAFE /*{*/
|
||||
#define CHECK_SRC cmp srclim,src; bls bad_src_n2e /* Out: 1==Carry for get8_n2e */
|
||||
#define CHECK_DST cmp dst,dstlim; bhs bad_dst_n2e
|
||||
#else /*}{*/
|
||||
#define CHECK_SRC /*empty*/
|
||||
#define CHECK_DST /*empty*/
|
||||
#endif /*}*/
|
||||
|
||||
#if 0 /*{ DEBUG only: check newly-decompressed against original dst */
|
||||
#define CHECK_BYTE \
|
||||
ldrb w6,[dst]; \
|
||||
cmp w6,tmp; beq 0f; bkpt; 0:
|
||||
#else /*}{*/
|
||||
#define CHECK_BYTE /*empty*/
|
||||
#endif /*}*/
|
||||
|
||||
#undef GETBIT
|
||||
#define GETBIT bl get1_n2e
|
||||
|
||||
#undef getnextb
|
||||
#define getnextb(reg) GETBIT; ADC2(reg,reg) /* Out: condition code not changed */
|
||||
#define jnextb0 GETBIT; bcc
|
||||
#define jnextb1 GETBIT; bcs
|
||||
|
||||
ucl_nrv2e_decompress_8: .globl ucl_nrv2e_decompress_8 // ARM mode
|
||||
.type ucl_nrv2e_decompress_8, %function
|
||||
/* error = (*)(char const *src, int len_src, char *dst, int *plen_dst)
|
||||
Actual decompressed length is stored through plen_dst.
|
||||
For SAFE mode: at call, *plen_dst must be allowed length of output buffer.
|
||||
*/
|
||||
PUSH3(x2,x3, lr)
|
||||
#define sp_DST0 0 /* stack offset of original dst */
|
||||
add srclim,src,len,uxtw // srclim= eof_src;
|
||||
#if 1==SAFE /*{*/
|
||||
ldr tmp,[r3] // len_dst
|
||||
add dstlim,tmp,dst
|
||||
#endif /*}*/
|
||||
mov off,#-1 // off= -1 initial condition
|
||||
mov bits,#1<<31 // refill next time
|
||||
b top_n2e
|
||||
|
||||
#if 1==SAFE /*{*/
|
||||
bad_dst_n2e: # return value will be 2
|
||||
bkpt
|
||||
add src,srclim,#1
|
||||
bad_src_n2e: # return value will be 1
|
||||
ADD2(src,#1)
|
||||
#endif /*}*/
|
||||
eof_n2e:
|
||||
POP2(x3,x4) // r3= orig_dst; r4= plen_dst
|
||||
SUB2(src,srclim) // 0 if actual src length equals expected length
|
||||
SUB2(dst,x3) // actual dst length
|
||||
str dstw,[x4]
|
||||
|
||||
#if defined(LINUX_ARM_CACHEFLUSH) /*{*/
|
||||
mov x4,x0 // save result value
|
||||
mov x0,x3 // orig_dst
|
||||
add x1,x3,dst // orig_dst + dst_len
|
||||
mov x2,#0
|
||||
do_sys2 __ARM_NR_cacheflush // decompressed region
|
||||
mov x0,x4 // result value
|
||||
#endif /*}*/
|
||||
#if defined(DARWIN_ARM_CACHEFLUSH) /*{*/
|
||||
mov x4,x0 // save result value
|
||||
mov x0,x3 // orig_dst
|
||||
mov x1,dst // dst_len
|
||||
PUSH2(x0,x1); do_dcache_flush
|
||||
POP2 (x0,x1); do_icache_invalidate
|
||||
mov x0,x4 // result value
|
||||
#endif /*}*/
|
||||
|
||||
POP1(lr)
|
||||
ret
|
||||
|
||||
get1_n2e:
|
||||
ADD2S(bits,bits); cbz bits,get8_n2e; ret
|
||||
get8_n2e:
|
||||
// In: Carry set [from adding 0x80000000 (1<<31) to itself]
|
||||
CHECK_SRC; LDRB3(bits,[src],#1) // zero-extend next byte
|
||||
ADC2S(bits,bits) // double and insert CarryIn as low bit
|
||||
lsl bits,bits,#23 // top 9 bits
|
||||
ADD2S(bits,bits) // top 8 bits; CarryOut from doubling
|
||||
ret
|
||||
|
||||
lit_n2e:
|
||||
CHECK_SRC; LDRB3(tmp,[src],#1)
|
||||
CHECK_BYTE
|
||||
CHECK_DST; STRB3(tmp,[dst],#1)
|
||||
top_n2e:
|
||||
jnextb1 lit_n2e
|
||||
mov cnt,#1; b getoff_n2e
|
||||
|
||||
off_n2e:
|
||||
SUB2(cnt,#1)
|
||||
getnextb(cnt)
|
||||
getoff_n2e:
|
||||
getnextb(cnt)
|
||||
jnextb0 off_n2e
|
||||
|
||||
subs tmp,cnt,#3 // set Carry
|
||||
mov len,#0 // Carry unaffected
|
||||
blo offprev_n2e // cnt was 2; tests Carry only
|
||||
CHECK_SRC; LDRB3(off,[src],#1) // low 7+1 bits
|
||||
orr off,off,tmp,lsl #8
|
||||
mvn off,off; cbz off,eof_n2e // off= ~off
|
||||
tst off,#1; asr off,off,#1; bne lenlast_n2e // branch on former bottom bit
|
||||
b lenmore_n2e
|
||||
|
||||
offprev_n2e:
|
||||
jnextb1 lenlast_n2e
|
||||
lenmore_n2e:
|
||||
mov len,#1
|
||||
jnextb1 lenlast_n2e
|
||||
len_n2e:
|
||||
getnextb(len)
|
||||
jnextb0 len_n2e
|
||||
ADD2(len,#6-2)
|
||||
b gotlen_n2e
|
||||
|
||||
lenlast_n2e:
|
||||
getnextb(len) // 0,1,2,3
|
||||
ADD2(len,#2)
|
||||
gotlen_n2e: // 'cmn': add the inputs, set condition codes, discard the sum
|
||||
cmn off,#5<<8 // within M2_MAX_OFFSET
|
||||
csinc len,len,len,cc // too far away, so minimum match length is 3
|
||||
near_n2e:
|
||||
#if 1==SAFE /*{*/
|
||||
ldr tmp,[sp,#sp_DST0]
|
||||
SUB2( tmp,dst)
|
||||
SUB2S(tmp,off); bhi bad_dst_n2e // reaching back too far
|
||||
|
||||
add tmp,dst,cnt
|
||||
cmp tmp,dstlim; bhi bad_dst_n2e // too much output
|
||||
#endif /*}*/
|
||||
add tmpx,dst,len,sxtw
|
||||
ldrb tmp,[tmpx,#-1] // force cacheline allocate
|
||||
copy_n2e:
|
||||
ldrb tmp,[dst,off,sxtw]
|
||||
CHECK_BYTE
|
||||
STRB3(tmp,[dst],#1)
|
||||
SUB2S(len,#1); bne copy_n2e
|
||||
b top_n2e
|
||||
|
||||
.size ucl_nrv2e_decompress_8, .-ucl_nrv2e_decompress_8
|
||||
|
||||
/*
|
||||
vi:ts=8:et:nowrap
|
||||
*/
|
||||
|
||||
@ -29,19 +29,6 @@
|
||||
* <jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
//#define SIMULATE_ON_DEBIAN_EABI4 1
|
||||
#undef SIMULATE_ON_DEBIAN_EABI4
|
||||
|
||||
#ifdef SIMULATE_ON_DEBIAN_EABI4 /*{*/
|
||||
#define LINUX_ARM_CACHEFLUSH 1 /* SIMULATE_ON_DEBIAN_EABI4 */
|
||||
#define ARMEL_EABI4 1 /* SIMULATE_ON_DEBIAN_EABI4 */
|
||||
#else /*}{ usual case */
|
||||
#define DARWIN_ARM_CACHEFLUSH 1
|
||||
#define ARMEL_DARWIN 1
|
||||
#endif /*}*/
|
||||
|
||||
#define lr x30
|
||||
|
||||
#include "arch/arm64/v8/macros.S"
|
||||
|
||||
sz_b_info= 12
|
||||
@ -97,13 +84,13 @@ f_decompress:
|
||||
// empty
|
||||
|
||||
section NRV2E
|
||||
#include "arch/arm64/v8/nrv2e_d8.S"
|
||||
#include "arch/arm64/v8/nrv2e_d32.S"
|
||||
|
||||
section NRV2D
|
||||
#include "arch/arm64/v8/nrv2d_d8.S"
|
||||
#include "arch/arm64/v8/nrv2d_d32.S"
|
||||
|
||||
section NRV2B
|
||||
#include "arch/arm64/v8/nrv2b_d8.S"
|
||||
#include "arch/arm64/v8/nrv2b_d32.S"
|
||||
|
||||
section NRV_TAIL
|
||||
// empty
|
||||
@ -116,9 +103,9 @@ end_decompress: .globl end_decompress
|
||||
/* IDENTSTR goes here */
|
||||
|
||||
section MACHMAINZ
|
||||
#define lsrc w1
|
||||
#define ldst w3
|
||||
#define ldstx x3
|
||||
lsrc .req w1
|
||||
ldst .req w3
|
||||
ldstx .req x3
|
||||
unfold: // lr= &L100
|
||||
ldr ldst,[lr,#sz_unc]
|
||||
ldr lsrc,[lr,#sz_cpr]
|
||||
@ -126,7 +113,7 @@ unfold: // lr= &L100
|
||||
add src,lr,ldst,uxtw; add src,src,#GAP+NO_LAP // defend against prefetch and overlap
|
||||
|
||||
mov w4,lsrc // loop count
|
||||
#define t0 w9
|
||||
t0 .req w9
|
||||
movup: // descending copy folded_loader to higher address
|
||||
ldr t0,[dst,#-4]!; sub w4,w4,#4
|
||||
str t0,[src,#-4]!; cbnz w4,movup
|
||||
@ -149,7 +136,4 @@ L100:
|
||||
GAP= 128 // > farthest prefetch; must match ../../p_mach.cpp
|
||||
NO_LAP= 64 // avoid overlap for folded loader; must match ../../p_mach.cpp
|
||||
|
||||
#undef ldstx
|
||||
#undef ldst
|
||||
|
||||
/* vim:set ts=8 sw=8 et: */
|
||||
|
||||
@ -59,7 +59,6 @@ fold_begin:
|
||||
sp/ junk1,junk2,{30 original regs (omit sp,lr)},junk3,original_stack...
|
||||
*/
|
||||
#define t0w w9 /* scratch value */
|
||||
lr .req x30
|
||||
ldr x1,[x11] // sz_pack2
|
||||
add x7,sp,#8*(2+(32-2)) // &junk3; will become &mhdrp
|
||||
sub x0,x11,x1,uxtw // &{l_info; p_info; b_info}
|
||||
@ -134,23 +133,23 @@ unf_ret:
|
||||
spin: .globl spin
|
||||
ret
|
||||
|
||||
__NR_exit = 1 + __NR_SYSCALL_BASE
|
||||
__NR_read = 3 + __NR_SYSCALL_BASE
|
||||
__NR_write = 4 + __NR_SYSCALL_BASE
|
||||
__NR_open = 5 + __NR_SYSCALL_BASE
|
||||
__NR_close = 6 + __NR_SYSCALL_BASE
|
||||
__NR_brk = 45 + __NR_SYSCALL_BASE
|
||||
__NR_exit = 1
|
||||
__NR_read = 3
|
||||
__NR_write = 4
|
||||
__NR_open = 5
|
||||
__NR_close = 6
|
||||
__NR_brk = 45
|
||||
|
||||
__NR_mmap = 197 + __NR_SYSCALL_BASE
|
||||
__NR_munmap = 73 + __NR_SYSCALL_BASE
|
||||
__NR_mprotect = 74 + __NR_SYSCALL_BASE
|
||||
__NR_pread = 153 + __NR_SYSCALL_BASE
|
||||
__NR_mmap = 197
|
||||
__NR_munmap = 73
|
||||
__NR_mprotect = 74
|
||||
__NR_pread = 153
|
||||
|
||||
#ifdef SIMULATE_ON_DEBIAN_EABI4 /*{*/
|
||||
__NR_mmap = 192 + __NR_SYSCALL_BASE // mmap2
|
||||
__NR_munmap = 91 + __NR_SYSCALL_BASE
|
||||
__NR_mprotect = 125 + __NR_SYSCALL_BASE
|
||||
__NR_pread = 180 + __NR_SYSCALL_BASE
|
||||
__NR_mmap = 192 // mmap2
|
||||
__NR_munmap = 91
|
||||
__NR_mprotect = 125
|
||||
__NR_pread = 180
|
||||
#endif /*}*/
|
||||
|
||||
.globl exit
|
||||
|
||||
245
src/stub/src/arm64-linux.elf-entry.S
Normal file
245
src/stub/src/arm64-linux.elf-entry.S
Normal file
@ -0,0 +1,245 @@
|
||||
/* aarch64-linux.elf-entry.S -- Linux program entry point & decompressor (Elf binary)
|
||||
*
|
||||
* This file is part of the UPX executable compressor.
|
||||
*
|
||||
* Copyright (C) 1996-2015 Markus Franz Xaver Johannes Oberhumer
|
||||
* Copyright (C) 1996-2015 Laszlo Molnar
|
||||
* Copyright (C) 2000-2015 John F. Reiser
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* UPX and the UCL library are free software; you can redistribute them
|
||||
* and/or modify them under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; see the file COPYING.
|
||||
* If not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
* <markus@oberhumer.com> <ml1050@users.sourceforge.net>
|
||||
*
|
||||
* John F. Reiser
|
||||
* <jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
#include "arch/arm64/v8/macros.S"
|
||||
|
||||
sz_Elf64_Ehdr= 64
|
||||
sz_Elf64_Phdr= 56
|
||||
|
||||
sz_b_info= 12
|
||||
sz_unc= 0
|
||||
sz_cpr= 4
|
||||
b_method= 8
|
||||
sz_l_info= 12
|
||||
sz_p_info= 12
|
||||
|
||||
PROT_READ= 1
|
||||
PROT_WRITE= 2
|
||||
PROT_EXEC= 4
|
||||
|
||||
MAP_FIXED= 0x10
|
||||
|
||||
PAGE_SHIFT= 12
|
||||
PAGE_SIZE = -(~0<<PAGE_SHIFT)
|
||||
|
||||
__NR_exit = 93
|
||||
__NR_write = 64
|
||||
__NR_mmap64 = 222
|
||||
|
||||
__ARM_NR_cacheflush = 255 // FIXME
|
||||
|
||||
#ifndef DEBUG /*{*/
|
||||
#define DEBUG 0
|
||||
#endif /*}*/
|
||||
|
||||
//.long sz_pack2 // placed there by ::pack3()
|
||||
section ELFMAINX
|
||||
start_params:
|
||||
.long LENF // end_decompress - (start_params -4)
|
||||
.long CPR0 // cpr0 - (start_params -4)
|
||||
mflg:
|
||||
.long MFLG // MAP_{PRIVATE|ANONYMOUS} // QNX vs linux
|
||||
.xword ADRM // dst for map
|
||||
_start: .globl _start
|
||||
/* Get some pages: enough
|
||||
to duplicate the entire compressed PT_LOAD, plus 1 page, located just after
|
||||
the brk() of the _un_compressed program. The address is pre-calculated
|
||||
calculated by PackLinuxElf64arm::addLinkerSymbols().
|
||||
*/
|
||||
|
||||
#if DEBUG /*{*/
|
||||
#define TRACE_REGS r0-r12,r14,r15
|
||||
// sp (r13) is not included because the write-back might cause UNDEFINED behavior
|
||||
// if the write-back register is not first or last. The actual value of sp
|
||||
// usually does not matter. Just remember that lr (r14) and pc (r15) are stored
|
||||
// one word closer to the stack pointer because r13 has been omitted.
|
||||
|
||||
stmdb sp!,{TRACE_REGS}; mov r0,#1; bl trace
|
||||
#endif /*}*/
|
||||
|
||||
adr x12,start_params -4 // &sz_pack2
|
||||
ldp w1,w10,[x12] // w1= sz_pack2; w10= LENF
|
||||
ldp w11,w13,[x12,#2*4] // w11= CPRO; w13= MFLG
|
||||
add x11,x11,x12 // cpr0
|
||||
add x10,x10,x12 // end_decompress
|
||||
ldr w3,[x11,# sz_unc]
|
||||
sub x9,x12,x1 // &our_Elf64_Ehdr
|
||||
add w1,w1,w3 // sz_pack2 + cpr0.sz_unc
|
||||
ldr x0,[x12,#4*4] // ADRM
|
||||
add x1,x1,# PAGE_SIZE
|
||||
section LUNMP000
|
||||
// unused
|
||||
section LUNMP001
|
||||
// unused
|
||||
section ELFMAINXu
|
||||
PUSH4(x0,x1,x2,x13) // ADRU, LENU, space for sz_unc, MFLG
|
||||
SP_MFLG= 4*8
|
||||
D_sz_unc=2*8 // stack displacement to sz_unc
|
||||
mov w2,#PROT_READ | PROT_WRITE | PROT_EXEC
|
||||
orr w3,w13,#MAP_FIXED // MFLG: MAP_{PRIVATE|ANON}
|
||||
mov x5,#0 // offset= 0
|
||||
mov w4,#-1 // fd= -1; cater to *BSD for fd when MAP_ANON
|
||||
do_sys __NR_mmap64
|
||||
#if DEBUG /*{*/
|
||||
stmdb sp!,{TRACE_REGS}; mov r0,#2; bl trace
|
||||
#endif /*}*/
|
||||
cmn x0,#4096
|
||||
bcs msg_SELinux
|
||||
copy_cl: // copy decompressor and folded code
|
||||
add x5,x0,#64; // FIXME(memcheck) dc zva,x5 // clear FOLLOWING 64-byte line
|
||||
ldp x1,x2,[x9],#2*8
|
||||
ldp x3,x4,[x9],#2*8
|
||||
stp x1,x2,[x0],#2*8
|
||||
stp x3,x4,[x0],#2*8
|
||||
|
||||
ldp x1,x2,[x9],#2*8
|
||||
ldp x3,x4,[x9],#2*8
|
||||
stp x1,x2,[x0],#2*8
|
||||
stp x3,x4,[x0],#2*8
|
||||
cmp x9,x10
|
||||
sub x5,x9,#64; // FIXME(memcheck) dc cvau,x5 // clean 64-byte line
|
||||
blo copy_cl // all source lines
|
||||
|
||||
sub x4,x0,x9 // relocation amount
|
||||
ldr w1,[sp,#SP_MFLG]
|
||||
adr x15,f_decompress
|
||||
str w1,[x0],#4 // MFLG at -4+ fold_begin
|
||||
mov lr,x0 // dst for unfolded code
|
||||
add x15,x15,x4 // relocated f_decompress
|
||||
|
||||
ldr w9,[x12] // sz_pack2
|
||||
sub w9,w9,#sz_Elf64_Ehdr + 2*sz_Elf64_Phdr + sz_l_info + sz_p_info
|
||||
sub x10,x12,x9 // &b_info
|
||||
add x10,x10,x4 // relocated &b_info
|
||||
|
||||
ldr w4,[x11,# b_method ] // 5th param (whole word: endian issues!)
|
||||
D_stm1=0*8
|
||||
ldr w3,[x11,# sz_unc]
|
||||
add x0, x11,# sz_b_info
|
||||
ldr w1,[x11,# sz_cpr ]
|
||||
mov x2,lr // dst
|
||||
str w3,[sp,#D_stm1 + D_sz_unc] // sz_unc; lzma needs for EOF
|
||||
add x3, sp,#D_stm1 + D_sz_unc // &sz_unc
|
||||
#if DEBUG /*{*/
|
||||
stmdb sp!,{TRACE_REGS}; mov r0,#3; bl trace
|
||||
#endif /*}*/
|
||||
br x15 // decompress folded code, return to *lr
|
||||
|
||||
#if DEBUG /*{*/
|
||||
TRACE_BUFLEN=512
|
||||
trace:
|
||||
str lr,[sp,#(-1+ 15)*4] @ return pc; [remember: sp is not stored]
|
||||
mov r4,sp @ &saved_r0
|
||||
sub sp,sp,#TRACE_BUFLEN
|
||||
mov r2,sp @ output string
|
||||
|
||||
mov r1,#'\n'; bl trace_hex @ In: r0 as label
|
||||
mov r1,#'>'; strb r1,[r2],#1
|
||||
|
||||
mov r5,#3 @ rows to print
|
||||
L600: @ each row
|
||||
sub r0,r4,#TRACE_BUFLEN
|
||||
sub r0,r0,sp
|
||||
mov r0,r0,lsr #2; mov r1,#'\n'; bl trace_hex @ which block of 8
|
||||
|
||||
mov r6,#8 @ words per row
|
||||
L610: @ each word
|
||||
ldr r0,[r4],#4; mov r1,#' '; bl trace_hex @ next word
|
||||
subs r6,r6,#1; bgt L610
|
||||
|
||||
subs r5,r5,#1; bgt L600
|
||||
|
||||
mov r0,#'\n'; strb r0,[r2],#1
|
||||
sub r2,r2,sp @ count
|
||||
mov r1,sp @ buf
|
||||
mov r0,#2 @ FD_STDERR
|
||||
do_sys __NR_write
|
||||
add sp,sp,#TRACE_BUFLEN
|
||||
ldmia sp!,{TRACE_REGS}
|
||||
|
||||
trace_hex: // In: r0=val, r1=punctuation before, r2=ptr; Uses: r3, ip
|
||||
strb r1,[r2],#1 @ punctuation
|
||||
mov r3,#4*(8 -1) @ shift count
|
||||
adr ip,hex
|
||||
L620:
|
||||
mov r1,r0,lsr r3
|
||||
and r1,r1,#0xf
|
||||
ldrb r1,[ip, r1]
|
||||
strb r1,[r2],#1
|
||||
subs r3,r3,#4; bge L620
|
||||
ret
|
||||
hex:
|
||||
.ascii "0123456789abcdef"
|
||||
#endif /*}*/
|
||||
|
||||
f_decompress:
|
||||
#define LINUX_ARM_CACHEFLUSH 1
|
||||
|
||||
section NRV_HEAD
|
||||
// empty
|
||||
section NRV_TAIL
|
||||
// empty
|
||||
|
||||
section NRV2E
|
||||
#include "arch/arm64/v8/nrv2e_d32.S"
|
||||
|
||||
section NRV2D
|
||||
#include "arch/arm64/v8/nrv2d_d32.S"
|
||||
|
||||
section NRV2B
|
||||
#include "arch/arm64/v8/nrv2b_d32.S"
|
||||
|
||||
#include "arch/arm64/v8/lzma_d.S"
|
||||
|
||||
section ELFMAINY
|
||||
end_decompress: .globl end_decompress
|
||||
|
||||
msg_SELinux:
|
||||
mov w2,#L71 - L70 // length
|
||||
adr x1,L70 // message text
|
||||
mov w0,#2 // fd stderr
|
||||
do_sys __NR_write
|
||||
die:
|
||||
mov w0,#127
|
||||
do_sys __NR_exit
|
||||
L70:
|
||||
.asciz "PROT_EXEC|PROT_WRITE failed.\n"
|
||||
L71:
|
||||
/* IDENTSTR goes here */
|
||||
|
||||
section ELFMAINZ
|
||||
cpr0: .globl cpr0
|
||||
/* { b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...} */
|
||||
|
||||
/*
|
||||
vi:ts=8:et:nowrap
|
||||
*/
|
||||
|
||||
384
src/stub/src/arm64-linux.elf-fold.S
Normal file
384
src/stub/src/arm64-linux.elf-fold.S
Normal file
@ -0,0 +1,384 @@
|
||||
// aarch64-linux.elf-fold.S -- linkage to C code to process Elf binary
|
||||
//
|
||||
// This file is part of the UPX executable compressor.
|
||||
//
|
||||
// Copyright (C) 2000-2015 John F. Reiser
|
||||
// All Rights Reserved.
|
||||
//
|
||||
// UPX and the UCL library are free software; you can redistribute them
|
||||
// and/or modify them under the terms of the GNU General Public License as
|
||||
// published by the Free Software Foundation; either version 2 of
|
||||
// the License, or (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; see the file COPYING.
|
||||
// If not, write to the Free Software Foundation, Inc.,
|
||||
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
//
|
||||
// Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
// <markus@oberhumer.com> <ml1050@users.sourceforge.net>
|
||||
//
|
||||
// John F. Reiser
|
||||
// <jreiser@users.sourceforge.net>
|
||||
//
|
||||
|
||||
#define ARM_OLDABI 1
|
||||
#include "arch/arm64/v8/macros.S"
|
||||
|
||||
sz_Elf64_Ehdr= 64
|
||||
sz_Elf64_Phdr= 56
|
||||
sz_l_info = 12
|
||||
sz_p_info = 12
|
||||
sz_b_info = 12
|
||||
sz_unc= 0
|
||||
sz_cpr= 4
|
||||
b_method= 8
|
||||
|
||||
MAP_PRIVATE= 0x02
|
||||
MAP_FIXED= 0x10
|
||||
|
||||
PROT_READ= 0x1
|
||||
|
||||
O_RDONLY= 0
|
||||
|
||||
AT_FDCWD= -100
|
||||
|
||||
PAGE_SHIFT= 12
|
||||
PAGE_SIZE = -(~0<<PAGE_SHIFT)
|
||||
|
||||
#ifndef DEBUG /*{*/
|
||||
#define DEBUG 0
|
||||
#endif /*}*/
|
||||
|
||||
//@ control just falls through, after this part and compiled C code
|
||||
//@ are uncompressed.
|
||||
|
||||
#define OVERHEAD 2048
|
||||
#define MAX_ELF_HDR 512
|
||||
|
||||
fold_begin:
|
||||
/* In:
|
||||
r15= f_decompress
|
||||
r10= &b_info of first compressed block (after move)
|
||||
r9= total size of compressed data
|
||||
sp/ ADRU,LENU,sz_unc,MFLG, argc,argv...
|
||||
*/
|
||||
POP4(x3,x4,x5,x8) // x3= ADRU; x4= LENU; x5= sz_unc; x8= MFLG
|
||||
ldr x7,[sp,#0] // argc
|
||||
mov x0,sp // current stack pointer
|
||||
|
||||
add x1,sp,#2*8 // skip argc and terminator of argv
|
||||
add x1,x1,x7,lsl #3 // skip argv
|
||||
.L10: // skip env
|
||||
ldr x2,[x1],#8
|
||||
cbnz x2,.L10
|
||||
.L20: // skip auxv
|
||||
ldr x2,[x1],#2*8
|
||||
cbnz x2,.L20 // AT_NULL
|
||||
|
||||
sub x0,x1,#4096 // buffer for readlink
|
||||
sub x0,x0,#4 // space for copy of space3eq
|
||||
sub x1,x1,x0 // amount needed for argc,argv,env,auxv
|
||||
lsr x0,x0,#PAGE_SHIFT // round down
|
||||
sub x0,x0,#1 // one page
|
||||
lsl x6,x0,#PAGE_SHIFT // page address
|
||||
sub x0,x6,x1 // space for argc,argv,env,auxv
|
||||
sub x0,x0,#8 // room for added env ptr
|
||||
and x0,x0,#~0<<4 // sp must be 16-byte aligned
|
||||
add x1,sp,#8 // old_argv; avoid 0==argc impostor for terminator of argv
|
||||
mov sp,x0 // new_argc
|
||||
PUSH3(x3,x4,x5) // ADRU, LENU, sz_unc
|
||||
SP_sz_unc= 2*8
|
||||
SP_argc= 4*8 // remember the hole from PUSH3
|
||||
|
||||
str x7,[x0],#8 // argc
|
||||
|
||||
.Larg: // copy argv
|
||||
ldr x2,[x1],#8
|
||||
str x2,[x0],#8
|
||||
cbnz x2,.Larg
|
||||
|
||||
.Lenv: // copy env
|
||||
ldr x2,[x1],#8
|
||||
str x2,[x0],#8
|
||||
cbnz x2,.Lenv
|
||||
|
||||
sub x4,x0,#8 // added env ptr goes here
|
||||
str x2,[x0],#8 // terminator after added ptr
|
||||
mov x7,x0 // new &Elf64_auxv_t
|
||||
|
||||
.Laux: // copy auxv
|
||||
ldp x2,x3,[x1],#2*8 // .a_type, .a_val
|
||||
stp x2,x3,[x0],#2*8
|
||||
cbnz x2,.Laux // AT_NULL
|
||||
|
||||
str x0,[sp,#SP_sz_unc] // clobber sz_unc with 1+ &Elf64_auxv_t[AT_NULL@.a_type]
|
||||
|
||||
add x1,x6,#1<<PAGE_SHIFT // after the mmap'ed page
|
||||
str x1,[x4] // new env ptr
|
||||
ldr w2,space3eq
|
||||
str w2,[x1],#4 // " =" of new env var
|
||||
|
||||
mov w2,#4096-1 // buffer length and null terminator
|
||||
adr x0,proc_self_exe
|
||||
bl readlink
|
||||
/* Preserve symlink /proc/self/exe by mapping one page into stack */
|
||||
adr x0,proc_self_exe
|
||||
mov w1,#O_RDONLY
|
||||
bl open // no error check: cannot recover
|
||||
|
||||
mov w4,w0 // fd
|
||||
mov x0,x6 // page address
|
||||
|
||||
mov x5,#0 // offset
|
||||
mov w3,#MAP_PRIVATE|MAP_FIXED
|
||||
mov w2,#PROT_READ
|
||||
mov x1,#PAGE_SIZE
|
||||
bl mmap // no error check: cannot recover
|
||||
mov w0,w4 // fd
|
||||
bl close
|
||||
|
||||
/* Construct arglist for upx_main */
|
||||
add x6,sp,#3*8 // &reloc
|
||||
sub sp,sp,#MAX_ELF_HDR + OVERHEAD // alloca
|
||||
adr x5,f_unfilter
|
||||
mov x4,x15 // f_decompress
|
||||
mov x3,x7 // new &Elf64_auxv_t
|
||||
mov x2,sp // ehdr
|
||||
mov w1,w9 // total size of compressed data
|
||||
mov x0,x10 // &b_info
|
||||
bl upx_main
|
||||
add sp,sp,#MAX_ELF_HDR + OVERHEAD // un-alloca
|
||||
mov lr,x0 // entry address
|
||||
|
||||
POP4(x0,x1,x2,x3) // x0= ADRU; x1= LENU; x2= 1+ &Elf64_auxv_t[AT_NULL@.atype]; x3= reloc
|
||||
|
||||
#if DEBUG /*{*/
|
||||
ldr x4,[x2,#8 -2*8] // Elf64_auxv_t[AT_NULL@.a_type].a_val
|
||||
ldr w5,[x4,#0] // 1st instr
|
||||
ldr w6,[x4,#4] // 2nd instr
|
||||
#define TRACE_REGS r0-r12,r14,r15
|
||||
stmdb sp!,{TRACE_REGS}; mov r0,#4; bl trace
|
||||
#endif /*}*/
|
||||
|
||||
ldr x3,[x2,#8 -2*8] // Elf64_auxv_t[AT_NULL@.a_type].a_val
|
||||
mov w8,#__NR_munmap
|
||||
br x3
|
||||
|
||||
space3eq:
|
||||
.ascii " ="
|
||||
proc_self_exe:
|
||||
.asciz "/proc/self/exe"
|
||||
.balign 4
|
||||
|
||||
f_unfilter: // (char *ptr, uint len, uint cto, uint fid)
|
||||
ptr .req x0
|
||||
len .req x1
|
||||
lenw .req w1
|
||||
cto .req w2 // unused
|
||||
fid .req w3
|
||||
|
||||
t1 .req w2
|
||||
t2 .req w3
|
||||
|
||||
#ifndef FILTER_ID /*{*/
|
||||
#define FILTER_ID 0x52 /* little-endian */
|
||||
#endif /*}*/
|
||||
and fid,fid,#0xff
|
||||
cmp fid,#FILTER_ID // last use of fid
|
||||
bne unfret
|
||||
lsr len,len,#2 // word count
|
||||
cbz len,unfret
|
||||
top_unf:
|
||||
sub len,len,#1
|
||||
ldr t1,[ptr,len,lsl #2]
|
||||
ubfx t2,t1,#26,#5
|
||||
cmp t2,#5; bne tst_unf // not unconditional branch
|
||||
sub t2,t1,lenw // word displ
|
||||
bfi t1,t2,#0,#26 // replace
|
||||
str t1,[ptr,len,lsl #2]
|
||||
tst_unf:
|
||||
cbnz len,top_unf
|
||||
unfret:
|
||||
ret
|
||||
|
||||
#if DEBUG /*{*/
|
||||
TRACE_BUFLEN=512
|
||||
trace:
|
||||
str lr,[sp,#(-1+ 15)*4] // return pc; [remember: sp is not stored]
|
||||
mov r4,sp // &saved_r0
|
||||
sub sp,sp,#TRACE_BUFLEN
|
||||
mov r2,sp // output string
|
||||
|
||||
mov r1,#'\n'; bl trace_hex // In: r0 as label
|
||||
mov r1,#'>'; strb r1,[r2],#1
|
||||
|
||||
mov r5,#3 // rows to print
|
||||
L600: // each row
|
||||
sub r0,r4,#TRACE_BUFLEN
|
||||
sub r0,r0,sp
|
||||
mov r0,r0,lsr #2; mov r1,#'\n'; bl trace_hex // which block of 8
|
||||
|
||||
mov r6,#8 // words per row
|
||||
L610: // each word
|
||||
ldr r0,[r4],#4; mov r1,#' '; bl trace_hex // next word
|
||||
subs r6,r6,#1; bgt L610
|
||||
|
||||
subs r5,r5,#1; bgt L600
|
||||
|
||||
mov r0,#'\n'; strb r0,[r2],#1
|
||||
sub r2,r2,sp // count
|
||||
mov r1,sp // buf
|
||||
mov r0,#2 // FD_STDERR
|
||||
#if defined(ARMEL_EABI4) /*{*/
|
||||
mov r7,#__NR_write
|
||||
swi 0
|
||||
#else /*}{*/
|
||||
swi __NR_write
|
||||
#endif /*}*/
|
||||
add sp,sp,#TRACE_BUFLEN
|
||||
ldmia sp!,{TRACE_REGS}
|
||||
|
||||
trace_hex: // In: r0=val, r1=punctuation before, r2=ptr; Uses: r3, ip
|
||||
strb r1,[r2],#1 // punctuation
|
||||
mov r3,#4*(8 -1) // shift count
|
||||
adr ip,hex
|
||||
L620:
|
||||
mov r1,r0,lsr r3
|
||||
and r1,r1,#0xf
|
||||
ldrb r1,[ip, r1]
|
||||
strb r1,[r2],#1
|
||||
subs r3,r3,#4; bge L620
|
||||
ret
|
||||
hex:
|
||||
.ascii "0123456789abcdef"
|
||||
#endif /*}*/
|
||||
.unreq ptr
|
||||
.unreq len
|
||||
.unreq cto
|
||||
.unreq fid
|
||||
|
||||
__NR_SYSCALL_BASE= 0
|
||||
|
||||
__NR_exit = 0x5e + __NR_SYSCALL_BASE // 94 exit_group
|
||||
__NR_read = 0x3f + __NR_SYSCALL_BASE // 63
|
||||
__NR_write = 0x40 + __NR_SYSCALL_BASE // 64
|
||||
__NR_open = 0x38 + __NR_SYSCALL_BASE // 56
|
||||
__NR_close = 0x39 + __NR_SYSCALL_BASE // 57
|
||||
__NR_unlink= 0x23 + __NR_SYSCALL_BASE // 35
|
||||
__NR_getpid= 0xad + __NR_SYSCALL_BASE // 172
|
||||
__NR_brk = 0xd6 + __NR_SYSCALL_BASE // 214
|
||||
__NR_readlink=0x4e+ __NR_SYSCALL_BASE // 78
|
||||
|
||||
|
||||
__NR_mmap = 0xde + __NR_SYSCALL_BASE // 222
|
||||
__NR_mprotect = 0xe2 + __NR_SYSCALL_BASE // 226
|
||||
__NR_munmap = 0xd7 + __NR_SYSCALL_BASE // 215
|
||||
|
||||
__ARM_NR_BASE = 0x0f0000 + __NR_SYSCALL_BASE
|
||||
__ARM_NR_cacheflush = 2 + __ARM_NR_BASE
|
||||
|
||||
.globl my_bkpt
|
||||
my_bkpt:
|
||||
brk #0
|
||||
ret
|
||||
|
||||
.globl exit
|
||||
exit:
|
||||
do_sys __NR_exit
|
||||
|
||||
.globl read
|
||||
read:
|
||||
do_sys __NR_read; ret
|
||||
|
||||
.globl write
|
||||
write:
|
||||
do_sys __NR_write; ret
|
||||
|
||||
.globl close
|
||||
close:
|
||||
do_sys __NR_close; ret
|
||||
|
||||
.globl getpid
|
||||
getpid:
|
||||
do_sys __NR_getpid; ret
|
||||
|
||||
.globl brk
|
||||
brk:
|
||||
do_sys __NR_brk; ret
|
||||
|
||||
.globl munmap
|
||||
munmap:
|
||||
do_sys __NR_munmap; ret
|
||||
|
||||
.globl mprotect
|
||||
mprotect:
|
||||
do_sys __NR_mprotect; ret
|
||||
|
||||
bits_privanon= -4+ fold_begin // entry stores: MAP_{PRIVATE|ANON} QNX vs linux
|
||||
|
||||
mmap_privanon: .globl mmap_privanon
|
||||
ldr w6,bits_privanon // r12 === ip
|
||||
mov x5,#0 // offset= 0
|
||||
mov x4,#-1 // fd= -1
|
||||
orr w3,w3,w6 // flags |= MAP_{PRIVATE|ANON} [QNX vs Linux]
|
||||
// FALL THROUGH to mmap
|
||||
|
||||
.globl mmap
|
||||
mmap:
|
||||
do_sys __NR_mmap; ret
|
||||
|
||||
.globl unlink
|
||||
unlink:
|
||||
mov x1,#0 // flags as last arg
|
||||
mov w8,#__NR_unlink
|
||||
b svc_AT
|
||||
|
||||
.globl open
|
||||
open:
|
||||
mov w8,#__NR_open
|
||||
svc_AT:
|
||||
//mov x4,x3
|
||||
mov x3,x2 // mode
|
||||
mov x2,x1 // flags
|
||||
mov x1,x0 // fname
|
||||
mov x0,#AT_FDCWD
|
||||
svc #0; ret
|
||||
|
||||
.globl readlink
|
||||
readlink:
|
||||
mov w8,#__NR_readlink
|
||||
mov x3,x2 // buflen
|
||||
mov x2,x1 // buffer
|
||||
mov x1,x0 // fname
|
||||
mov x0,#AT_FDCWD
|
||||
svc #0
|
||||
|
||||
cmn x0,#4096; bcs 0f // error
|
||||
mov w3,#0
|
||||
strb w3,[x2,x0] // null terminate pathname
|
||||
0:
|
||||
ret
|
||||
|
||||
.globl __clear_cache
|
||||
__clear_cache:
|
||||
hlt #0
|
||||
mov w2,#0
|
||||
do_sys 0; ret // FIXME
|
||||
|
||||
|
||||
#if DEBUG /*{*/
|
||||
|
||||
div10: .globl div10
|
||||
mov x1,#10
|
||||
udiv x0,x0,x1
|
||||
ret
|
||||
#endif /*}*/
|
||||
|
||||
// vi:ts=8:et:nowrap
|
||||
|
||||
48
src/stub/src/arm64-linux.elf-fold.lds
Normal file
48
src/stub/src/arm64-linux.elf-fold.lds
Normal file
@ -0,0 +1,48 @@
|
||||
/* arm64-linux.elf-fold.lds -- static linker script to build arm64-linux.elf-fold.bin
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
Copyright (C) 2000-2017 John F. Reiser
|
||||
All Rights Reserved.
|
||||
|
||||
UPX and the UCL library are free software; you can redistribute them
|
||||
and/or modify them under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
<markus@oberhumer.com> <ezerotven+github@gmail.com>
|
||||
|
||||
John F. Reiser
|
||||
<jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
|
||||
OUTPUT_FORMAT("elf64-littleaarch64", "elf64-bigaarch64", "elf64-littleaarch64")
|
||||
OUTPUT_ARCH(aarch64)
|
||||
/*ENTRY(_start)*/
|
||||
PHDRS
|
||||
{
|
||||
text PT_LOAD FILEHDR PHDRS FLAGS ( 5 ) ; /* r-x (no -w-) */
|
||||
data PT_LOAD ; /* for setting brk(0) */
|
||||
}
|
||||
SECTIONS
|
||||
{
|
||||
. = 0x00100000 + SIZEOF_HEADERS + 12; /* 12==sizeof(l_info) */
|
||||
.text : {
|
||||
*(.text)
|
||||
*(.data)
|
||||
} : text
|
||||
.data : {
|
||||
} : data
|
||||
}
|
||||
406
src/stub/src/arm64-linux.elf-main.c
Normal file
406
src/stub/src/arm64-linux.elf-main.c
Normal file
@ -0,0 +1,406 @@
|
||||
/* arm64-linux.elf-main.c -- stub loader for Linux 64-bit ELF executable
|
||||
|
||||
This file is part of the UPX executable compressor.
|
||||
|
||||
Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||
Copyright (C) 1996-2017 Laszlo Molnar
|
||||
Copyright (C) 2000-2017 John F. Reiser
|
||||
All Rights Reserved.
|
||||
|
||||
UPX and the UCL library are free software; you can redistribute them
|
||||
and/or modify them under the terms of the GNU General Public License as
|
||||
published by the Free Software Foundation; either version 2 of
|
||||
the License, or (at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program; see the file COPYING.
|
||||
If not, write to the Free Software Foundation, Inc.,
|
||||
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
<markus@oberhumer.com> <ezerotven+github@gmail.com>
|
||||
|
||||
John F. Reiser
|
||||
<jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
|
||||
#include "include/linux.h"
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
// configuration section
|
||||
**************************************************************************/
|
||||
|
||||
// In order to make it much easier to move this code at runtime and execute
|
||||
// it at an address different from it load address: there must be no
|
||||
// static data, and no string constants.
|
||||
|
||||
#define MAX_ELF_HDR 1024 // Elf64_Ehdr + n*Elf64_Phdr must fit in this
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
// "file" util
|
||||
**************************************************************************/
|
||||
|
||||
typedef struct {
|
||||
size_t size; // must be first to match size[0] uncompressed size
|
||||
char *buf;
|
||||
} Extent;
|
||||
|
||||
|
||||
static void
|
||||
xread(Extent *x, char *buf, size_t count)
|
||||
{
|
||||
char *p=x->buf, *q=buf;
|
||||
size_t j;
|
||||
if (x->size < count) {
|
||||
exit(127);
|
||||
}
|
||||
for (j = count; 0!=j--; ++p, ++q) {
|
||||
*q = *p;
|
||||
}
|
||||
x->buf += count;
|
||||
x->size -= count;
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
// util
|
||||
**************************************************************************/
|
||||
|
||||
#if 1 //{ save space
|
||||
#define ERR_LAB error: exit(127);
|
||||
#define err_exit(a) goto error
|
||||
#else //}{ save debugging time
|
||||
#define ERR_LAB /*empty*/
|
||||
static void
|
||||
err_exit(int a)
|
||||
{
|
||||
(void)a; // debugging convenience
|
||||
exit(127);
|
||||
}
|
||||
#endif //}
|
||||
|
||||
/*************************************************************************
|
||||
// UPX & NRV stuff
|
||||
**************************************************************************/
|
||||
|
||||
typedef void f_unfilter(
|
||||
nrv_byte *, // also addvalue
|
||||
nrv_uint,
|
||||
unsigned cto8, // junk in high 24 bits
|
||||
unsigned ftid
|
||||
);
|
||||
typedef int f_expand(
|
||||
const nrv_byte *, nrv_uint,
|
||||
nrv_byte *, nrv_uint *, unsigned );
|
||||
|
||||
static void
|
||||
unpackExtent(
|
||||
Extent *const xi, // input
|
||||
Extent *const xo, // output
|
||||
f_expand *const f_decompress,
|
||||
f_unfilter *f_unf
|
||||
)
|
||||
{
|
||||
while (xo->size) {
|
||||
struct b_info h;
|
||||
// Note: if h.sz_unc == h.sz_cpr then the block was not
|
||||
// compressible and is stored in its uncompressed form.
|
||||
|
||||
// Read and check block sizes.
|
||||
xread(xi, (char *)&h, sizeof(h));
|
||||
if (h.sz_unc == 0) { // uncompressed size 0 -> EOF
|
||||
if (h.sz_cpr != UPX_MAGIC_LE32) // h.sz_cpr must be h->magic
|
||||
err_exit(2);
|
||||
if (xi->size != 0) // all bytes must be written
|
||||
err_exit(3);
|
||||
break;
|
||||
}
|
||||
if (h.sz_cpr <= 0) {
|
||||
err_exit(4);
|
||||
ERR_LAB
|
||||
}
|
||||
if (h.sz_cpr > h.sz_unc
|
||||
|| h.sz_unc > xo->size ) {
|
||||
err_exit(5);
|
||||
}
|
||||
// Now we have:
|
||||
// assert(h.sz_cpr <= h.sz_unc);
|
||||
// assert(h.sz_unc > 0 && h.sz_unc <= blocksize);
|
||||
// assert(h.sz_cpr > 0 && h.sz_cpr <= blocksize);
|
||||
|
||||
if (h.sz_cpr < h.sz_unc) { // Decompress block
|
||||
nrv_uint out_len = h.sz_unc; // EOF for lzma
|
||||
int const j = (*f_decompress)((unsigned char *)xi->buf, h.sz_cpr,
|
||||
(unsigned char *)xo->buf, &out_len, h.b_method );
|
||||
if (j != 0 || out_len != (nrv_uint)h.sz_unc)
|
||||
err_exit(7);
|
||||
// Skip Ehdr+Phdrs: separate 1st block, not filtered
|
||||
if (h.b_ftid!=0 && f_unf // have filter
|
||||
&& ((512 < out_len) // this block is longer than Ehdr+Phdrs
|
||||
|| (xo->size==(unsigned)h.sz_unc) ) // block is last in Extent
|
||||
) {
|
||||
(*f_unf)((unsigned char *)xo->buf, out_len, h.b_cto8, h.b_ftid);
|
||||
}
|
||||
xi->buf += h.sz_cpr;
|
||||
xi->size -= h.sz_cpr;
|
||||
}
|
||||
else { // copy literal block
|
||||
xread(xi, xo->buf, h.sz_cpr);
|
||||
}
|
||||
xo->buf += h.sz_unc;
|
||||
xo->size -= h.sz_unc;
|
||||
}
|
||||
}
|
||||
|
||||
//DEBUG_STRCON(STR_make_hatch, "make_hatch %%p %%x\\n");
|
||||
|
||||
static void *
|
||||
make_hatch_arm64(
|
||||
Elf64_Phdr const *const phdr,
|
||||
uint64_t const reloc
|
||||
)
|
||||
{
|
||||
unsigned *hatch = 0;
|
||||
//DPRINTF((STR_make_hatch(),phdr,reloc));
|
||||
if (phdr->p_type==PT_LOAD && phdr->p_flags & PF_X) {
|
||||
// The format of the 'if' is
|
||||
// if ( ( (hatch = loc1), test_loc1 )
|
||||
// || ( (hatch = loc2), test_loc2 ) ) {
|
||||
// action
|
||||
// }
|
||||
// which uses the comma to save bytes when test_locj involves locj
|
||||
// and the action is the same when either test succeeds.
|
||||
|
||||
// Try page fragmentation just beyond .text .
|
||||
if ( ( (hatch = (void *)(~3ul & (3+ phdr->p_memsz + phdr->p_vaddr + reloc))),
|
||||
( phdr->p_memsz==phdr->p_filesz // don't pollute potential .bss
|
||||
&& (2*4)<=(~PAGE_MASK & -(uint64_t)hatch) ) ) // space left on page
|
||||
) {
|
||||
hatch[0]= 0xd4000001; // svc #0
|
||||
hatch[1]= 0xd65f03c0; // ret (jmp *lr)
|
||||
}
|
||||
else {
|
||||
hatch = 0;
|
||||
}
|
||||
}
|
||||
return hatch;
|
||||
}
|
||||
|
||||
#if 1 /*{*/
|
||||
static void
|
||||
upx_bzero(char *p, size_t len)
|
||||
{
|
||||
if (len) do {
|
||||
*p++= 0;
|
||||
} while (--len);
|
||||
}
|
||||
#define bzero upx_bzero
|
||||
#else
|
||||
#define bzero(a,b) __builtin_memset(a,0,b)
|
||||
#endif /*}*/
|
||||
|
||||
static void
|
||||
auxv_up(Elf64_auxv_t *av, unsigned const type, uint64_t const value)
|
||||
{
|
||||
if (av)
|
||||
for (;; ++av) {
|
||||
if (av->a_type==type || (av->a_type==AT_IGNORE && type!=AT_NULL)) {
|
||||
av->a_type = type;
|
||||
av->a_un.a_val = value;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// The PF_* and PROT_* bits are {1,2,4}; the conversion table fits in 32 bits.
|
||||
#define REP8(x) \
|
||||
((x)|((x)<<4)|((x)<<8)|((x)<<12)|((x)<<16)|((x)<<20)|((x)<<24)|((x)<<28))
|
||||
#define EXP8(y) \
|
||||
((1&(y)) ? 0xf0f0f0f0 : (2&(y)) ? 0xff00ff00 : (4&(y)) ? 0xffff0000 : 0)
|
||||
#define PF_TO_PROT(pf) \
|
||||
((PROT_READ|PROT_WRITE|PROT_EXEC) & ( \
|
||||
( (REP8(PROT_EXEC ) & EXP8(PF_X)) \
|
||||
|(REP8(PROT_READ ) & EXP8(PF_R)) \
|
||||
|(REP8(PROT_WRITE) & EXP8(PF_W)) \
|
||||
) >> ((pf & (PF_R|PF_W|PF_X))<<2) ))
|
||||
|
||||
|
||||
// Find convex hull of PT_LOAD (the minimal interval which covers all PT_LOAD),
|
||||
// and mmap that much, to be sure that a kernel using exec-shield-randomize
|
||||
// won't place the first piece in a way that leaves no room for the rest.
|
||||
static unsigned long // returns relocation constant
|
||||
xfind_pages(unsigned mflags, Elf64_Phdr const *phdr, int phnum,
|
||||
char **const p_brk
|
||||
)
|
||||
{
|
||||
size_t lo= ~0, hi= 0, szlo= 0;
|
||||
char *addr;
|
||||
mflags += MAP_PRIVATE | MAP_ANONYMOUS; // '+' can optimize better than '|'
|
||||
for (; --phnum>=0; ++phdr) if (PT_LOAD==phdr->p_type) {
|
||||
if (phdr->p_vaddr < lo) {
|
||||
lo = phdr->p_vaddr;
|
||||
szlo = phdr->p_filesz;
|
||||
}
|
||||
if (hi < (phdr->p_memsz + phdr->p_vaddr)) {
|
||||
hi = phdr->p_memsz + phdr->p_vaddr;
|
||||
}
|
||||
}
|
||||
szlo += ~PAGE_MASK & lo; // page fragment on lo edge
|
||||
lo -= ~PAGE_MASK & lo; // round down to page boundary
|
||||
hi = PAGE_MASK & (hi - lo - PAGE_MASK -1); // page length
|
||||
szlo = PAGE_MASK & (szlo - PAGE_MASK -1); // page length
|
||||
addr = mmap((void *)lo, hi, PROT_NONE, mflags, -1, 0);
|
||||
*p_brk = hi + addr; // the logical value of brk(0)
|
||||
//mprotect(szlo + addr, hi - szlo, PROT_NONE); // no access, but keep the frames!
|
||||
return (unsigned long)addr - lo;
|
||||
}
|
||||
|
||||
static Elf64_Addr // entry address
|
||||
do_xmap(
|
||||
Elf64_Ehdr const *const ehdr,
|
||||
Extent *const xi,
|
||||
int const fdi,
|
||||
Elf64_auxv_t *const av,
|
||||
f_expand *const f_decompress,
|
||||
f_unfilter *const f_unf,
|
||||
Elf64_Addr *p_reloc
|
||||
)
|
||||
{
|
||||
Elf64_Phdr const *phdr = (Elf64_Phdr const *) (ehdr->e_phoff +
|
||||
(char const *)ehdr);
|
||||
char *v_brk;
|
||||
unsigned long const reloc = xfind_pages(
|
||||
((ET_DYN!=ehdr->e_type) ? MAP_FIXED : 0), phdr, ehdr->e_phnum, &v_brk);
|
||||
int j;
|
||||
for (j=0; j < ehdr->e_phnum; ++phdr, ++j)
|
||||
if (xi && PT_PHDR==phdr->p_type) {
|
||||
auxv_up(av, AT_PHDR, phdr->p_vaddr + reloc);
|
||||
} else
|
||||
if (PT_LOAD==phdr->p_type) {
|
||||
unsigned const prot = PF_TO_PROT(phdr->p_flags);
|
||||
Extent xo;
|
||||
size_t mlen = xo.size = phdr->p_filesz;
|
||||
char *addr = xo.buf = reloc + (char *)phdr->p_vaddr;
|
||||
char *haddr = phdr->p_memsz + addr;
|
||||
size_t frag = (long)addr &~ PAGE_MASK;
|
||||
mlen += frag;
|
||||
addr -= frag;
|
||||
|
||||
if (addr != mmap(addr, mlen, prot | (xi ? PROT_WRITE : 0),
|
||||
MAP_FIXED | MAP_PRIVATE | (xi ? MAP_ANONYMOUS : 0),
|
||||
(xi ? -1 : fdi), phdr->p_offset - frag) ) {
|
||||
err_exit(8);
|
||||
}
|
||||
if (xi) {
|
||||
unpackExtent(xi, &xo, f_decompress, f_unf);
|
||||
}
|
||||
// Linux does not fixup the low end, so neither do we.
|
||||
//if (PROT_WRITE & prot) {
|
||||
// bzero(addr, frag); // fragment at lo end
|
||||
//}
|
||||
frag = (-mlen) &~ PAGE_MASK; // distance to next page boundary
|
||||
if (PROT_WRITE & prot) { // note: read-only .bss not supported here
|
||||
bzero(mlen+addr, frag); // fragment at hi end
|
||||
}
|
||||
if (xi) {
|
||||
void *const hatch = make_hatch_arm64(phdr, reloc);
|
||||
if (0!=hatch) {
|
||||
auxv_up(av, AT_NULL, (uint64_t)hatch);
|
||||
}
|
||||
if (0!=mprotect(addr, mlen, prot)) {
|
||||
err_exit(10);
|
||||
ERR_LAB
|
||||
}
|
||||
}
|
||||
addr += mlen + frag; /* page boundary on hi end */
|
||||
if (addr < haddr) { // need pages for .bss
|
||||
if (addr != mmap(addr, haddr - addr, prot,
|
||||
MAP_FIXED | MAP_PRIVATE | MAP_ANONYMOUS, -1, 0 ) ) {
|
||||
err_exit(9);
|
||||
}
|
||||
}
|
||||
}
|
||||
if (xi) { // 1st call (main); also have (0!=av) here
|
||||
if (ET_DYN!=ehdr->e_type) {
|
||||
// Needed only if compressed shell script invokes compressed shell.
|
||||
// brk(v_brk); // SIGSEGV when is_big [unmaps ourself!]
|
||||
}
|
||||
}
|
||||
if (0!=p_reloc) {
|
||||
*p_reloc = reloc;
|
||||
}
|
||||
return ehdr->e_entry + reloc;
|
||||
}
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
// upx_main - called by our entry code
|
||||
//
|
||||
// This function is optimized for size.
|
||||
**************************************************************************/
|
||||
|
||||
void *
|
||||
upx_main( // returns entry address
|
||||
/*x0*/ struct b_info const *const bi, // 1st block header
|
||||
/*x1*/ size_t const sz_compressed, // total length
|
||||
/*x2*/ Elf64_Ehdr *const ehdr, // temp char[sz_ehdr] for decompressing
|
||||
/*x3*/ Elf64_auxv_t *const av,
|
||||
/*x4*/ f_expand *const f_decompress,
|
||||
/*x5*/ f_unfilter *const f_unf,
|
||||
/*x6*/ Elf64_Addr *preloc // IN OUT; value result for ET_DYN
|
||||
)
|
||||
{
|
||||
Elf64_Phdr const *phdr = (Elf64_Phdr const *)(1+ ehdr);
|
||||
Elf64_Addr entry;
|
||||
|
||||
Extent xo, xi1, xi2;
|
||||
xo.buf = (char *)ehdr;
|
||||
xo.size = bi->sz_unc;
|
||||
xi2.buf = CONST_CAST(char *, bi); xi2.size = sz_compressed;
|
||||
xi1.buf = CONST_CAST(char *, bi); xi1.size = sz_compressed;
|
||||
|
||||
// ehdr = Uncompress Ehdr and Phdrs
|
||||
unpackExtent(&xi2, &xo, f_decompress, 0); // never filtered?
|
||||
|
||||
// AT_PHDR.a_un.a_val is set again by do_xmap if PT_PHDR is present.
|
||||
auxv_up(av, AT_PHDR , (unsigned long)(1+(Elf64_Ehdr *)phdr->p_vaddr));
|
||||
auxv_up(av, AT_PHNUM , ehdr->e_phnum);
|
||||
//auxv_up(av, AT_PHENT , ehdr->e_phentsize); /* this can never change */
|
||||
//auxv_up(av, AT_PAGESZ, PAGE_SIZE); /* ld-linux.so.2 does not need this */
|
||||
|
||||
entry = do_xmap(ehdr, &xi1, 0, av, f_decompress, f_unf, preloc); // "rewind"
|
||||
auxv_up(av, AT_ENTRY , entry);
|
||||
|
||||
{ // Map PT_INTERP program interpreter
|
||||
int j;
|
||||
for (j=0; j < ehdr->e_phnum; ++phdr, ++j) if (PT_INTERP==phdr->p_type) {
|
||||
char const *const iname = *preloc + (char const *)phdr->p_vaddr;
|
||||
int const fdi = open(iname, O_RDONLY, 0);
|
||||
if (0 > fdi) {
|
||||
err_exit(18);
|
||||
}
|
||||
if (MAX_ELF_HDR!=read(fdi, (void *)ehdr, MAX_ELF_HDR)) {
|
||||
ERR_LAB
|
||||
err_exit(19);
|
||||
}
|
||||
{
|
||||
Elf64_Addr i_reloc = 0;
|
||||
entry = do_xmap(ehdr, 0, fdi, 0, 0, 0, &i_reloc);
|
||||
auxv_up(av, AT_BASE, i_reloc);
|
||||
}
|
||||
close(fdi);
|
||||
}
|
||||
}
|
||||
|
||||
return (void *)entry;
|
||||
}
|
||||
|
||||
/* vim:set ts=4 sw=4 et: */
|
||||
400
src/stub/src/arm64-linux.shlib-init.S
Normal file
400
src/stub/src/arm64-linux.shlib-init.S
Normal file
@ -0,0 +1,400 @@
|
||||
/* arm-linux.shlib-init.S -- Linux Elf shared library init & decompressor
|
||||
*
|
||||
* This file is part of the UPX executable compressor.
|
||||
*
|
||||
* Copyright (C) 1996-2017 Markus Franz Xaver Johannes Oberhumer
|
||||
* Copyright (C) 1996-2017 Laszlo Molnar
|
||||
* Copyright (C) 2000-2017 John F. Reiser
|
||||
* All Rights Reserved.
|
||||
*
|
||||
* UPX and the UCL library are free software; you can redistribute them
|
||||
* and/or modify them under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation; either version 2 of
|
||||
* the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; see the file COPYING.
|
||||
* If not, write to the Free Software Foundation, Inc.,
|
||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Markus F.X.J. Oberhumer Laszlo Molnar
|
||||
* <markus@oberhumer.com> <ezerotven+github@gmail.com>
|
||||
*
|
||||
* John F. Reiser
|
||||
* <jreiser@users.sourceforge.net>
|
||||
*/
|
||||
|
||||
#include "arch/arm64/v8/macros.S"
|
||||
|
||||
sz_Elf64_Ehdr = 16 + 2*2 + 4 + 3*8 + 4 + 6*2
|
||||
sz_Elf64_Phdr = 2*4 + 6*8
|
||||
|
||||
sz_b_info= 12
|
||||
sz_unc= 0
|
||||
sz_cpr= 4
|
||||
b_method= 8
|
||||
sz_l_info= 12
|
||||
sz_p_info= 12
|
||||
|
||||
PROT_READ= 1
|
||||
PROT_WRITE= 2
|
||||
PROT_EXEC= 4
|
||||
|
||||
MAP_PRIVATE= 2
|
||||
MAP_FIXED= 0x10
|
||||
MAP_ANONYMOUS= 0x20
|
||||
|
||||
PAGE_SHIFT= 12
|
||||
PAGE_MASK= (~0<<PAGE_SHIFT)
|
||||
PAGE_SIZE= -PAGE_MASK
|
||||
|
||||
__NR_exit = 93
|
||||
__NR_write = 64
|
||||
__NR_mmap64 = 0xde // 222
|
||||
__NR_munmap = 0xd7 // 215
|
||||
__NR_mprotect = 0xe2 // 226
|
||||
|
||||
__ARM_NR_cacheflush = (1<<31) // FIXME
|
||||
|
||||
#define arg1 x0
|
||||
#define arg2 x1
|
||||
#define arg3 x2
|
||||
#define arg4 x3
|
||||
#define arg5 x4
|
||||
|
||||
#define edi w0
|
||||
#define esi w1
|
||||
#define edx w2
|
||||
#define tmp w3
|
||||
#define eax w4
|
||||
#define ecx w5
|
||||
|
||||
#define rdi x0
|
||||
#define rsi x1
|
||||
#define rdx x2
|
||||
|
||||
#define rax x4
|
||||
#define rcx x5
|
||||
|
||||
#define lr x30
|
||||
#define fp x29
|
||||
|
||||
#define src x0
|
||||
#define len w1
|
||||
#define dst x2
|
||||
#define dstw w2
|
||||
#define tmp w3
|
||||
#define tmpx x3
|
||||
#define bits w4
|
||||
#define off w5
|
||||
|
||||
section ELFMAINX
|
||||
// .long offset(.) // detect relocation
|
||||
// .long offset(user DT_INIT)
|
||||
// .long offset(escape_hatch)
|
||||
// .long offset({p_info; b_info; compressed data})
|
||||
|
||||
_start: .globl _start
|
||||
brk #0 // for debugging
|
||||
PUSH3(x29,x30,x0)
|
||||
PUSH4(arg4,arg5,x6,x7)
|
||||
PUSH3(arg1,arg2,arg3)
|
||||
mov fp,sp
|
||||
o_uinit= (3+4+2)*8 // pc
|
||||
|
||||
bl main // push &f_decompress
|
||||
f_decompress:
|
||||
#define LINUX_ARM_CACHEFLUSH 1
|
||||
|
||||
section NRV_HEAD
|
||||
// empty
|
||||
section NRV_TAIL
|
||||
// empty
|
||||
|
||||
section NRV2E
|
||||
#include "arch/arm64/v8/nrv2e_d32.S"
|
||||
|
||||
section NRV2D
|
||||
#include "arch/arm64/v8/nrv2d_d32.S"
|
||||
|
||||
section NRV2B
|
||||
#include "arch/arm64/v8/nrv2b_d32.S"
|
||||
|
||||
#include "arch/arm64/v8/lzma_d.S"
|
||||
|
||||
section ELFMAINY
|
||||
end_decompress: .globl end_decompress
|
||||
|
||||
msg_SELinux:
|
||||
mov w2,#L71 - L70 // length
|
||||
adr x1,L70 // message text
|
||||
mov w0,#2 // fd stderr
|
||||
do_sys __NR_write
|
||||
die:
|
||||
mov w0,#127
|
||||
do_sys __NR_exit
|
||||
L70:
|
||||
.asciz "PROT_EXEC|PROT_WRITE failed.\n"
|
||||
L71:
|
||||
/* IDENTSTR goes here */
|
||||
|
||||
section ELFMAINZ
|
||||
.macro push reg
|
||||
str \reg,[sp,#-4]!
|
||||
.endm
|
||||
.macro pop reg
|
||||
ldr \reg,[sp],#4
|
||||
.endm
|
||||
|
||||
#define lodsl ldr eax,[rsi],#4
|
||||
#define lodslu lodsl
|
||||
|
||||
main:
|
||||
// 1. allocate temporary pages
|
||||
// 2. copy to temporary pages:
|
||||
// fragment of page below dst; compressed src;
|
||||
// decompress+unfilter; supervise
|
||||
// 3. mmap destination pages for decompressed data
|
||||
// 4. create escape hatch
|
||||
// 5. jump to temporary pages
|
||||
// 6. uncompress
|
||||
// 7. unfilter
|
||||
// 8. mprotect decompressed pages
|
||||
// 9 setup args for unmap of temp pages
|
||||
// 10. jump to escape hatch
|
||||
// 11. unmap temporary pages
|
||||
// 12. goto user DT_INIT
|
||||
|
||||
mov rdx,lr // &f_decompress
|
||||
|
||||
add rsi,rdx,# _start - f_decompress - 4*4
|
||||
mov rcx,rsi
|
||||
lodsl; sub rcx,rcx,rax; //str ecx,[fp,#o_reloc]
|
||||
lodsl; add rax,rcx,rax; str eax,[fp,#o_uinit] // reloc DT_INIT for step 12
|
||||
lodsl; add rax,rcx,rax; push rax // reloc &hatch for step 10
|
||||
o_hatch= -1*4
|
||||
lodsl; add edi,ecx,eax // &l_info; also destination for decompress
|
||||
add esi,edi,#sz_l_info + sz_p_info // &b_info
|
||||
|
||||
sub sp,sp,#2*4 // param space: munmap temp pages step 9
|
||||
p_unmap= -3*4
|
||||
|
||||
ldr eax,[rsi,#4]; add rsi,rsi,#3*4 // sz_cpr
|
||||
add rsi,rsi,rax // skip unpack helper block
|
||||
|
||||
lodslu // eax=dstlen
|
||||
lsl ecx,edi,# (32-PAGE_SHIFT)
|
||||
lsr ecx,ecx,#2+(32-PAGE_SHIFT) // ecx= w_fragment
|
||||
add eax,eax,ecx,lsl #2; push eax // params: mprotect restored pages step 8
|
||||
sub edi,edi,ecx,lsl #2; push edi
|
||||
p_mprot= -5*8
|
||||
sub eax,eax,ecx,lsl #2 // dstlen
|
||||
add edi,edi,ecx,lsl #2 // dst
|
||||
push ecx // w_fragment
|
||||
o_wfrag= -6*8
|
||||
|
||||
bl L610
|
||||
f_unfilter: // (char *ptr, uint len, uint cto, uint fid)
|
||||
ptr .req x0
|
||||
fid .req w3
|
||||
|
||||
#ifndef FILTER_ID /*{*/
|
||||
#define FILTER_ID 0x50 /* little-endian */
|
||||
#endif /*}*/
|
||||
and fid,fid,#0xff
|
||||
cmp fid,#FILTER_ID // last use of fid
|
||||
bne unfret
|
||||
lsr x1,x1,#2 // word count
|
||||
cbz x1,unfret
|
||||
top_unf:
|
||||
sub x1,x1,#1
|
||||
ldr w2,[ptr,x1,lsl #2]
|
||||
ubfx w3,w2,#26,#5
|
||||
cmp w3,#5; bne tst_unf // not unconditional branch
|
||||
sub w2,w2,w1 // word displ; hi 0b.00101 preserves bit 31
|
||||
ubfm w2,w3,#26,#5
|
||||
str w2,[ptr,x1,lsl #2]
|
||||
tst_unf:
|
||||
cbnz x1,top_unf
|
||||
unfret:
|
||||
ret
|
||||
|
||||
L610:
|
||||
push lr
|
||||
o_unflt= -7*8
|
||||
ldrb tmp,[rsi,#b_method-4+1]; push tmpx // ftid
|
||||
ldrb tmp,[rsi,#b_method-4+2]; push tmpx // cto8
|
||||
push rax // dstlen also for unfilter step 7
|
||||
push rdi // dst param for unfilter step 7
|
||||
p_unflt= -11*8
|
||||
|
||||
lodslu; mov ecx,eax // ecx= srclen
|
||||
lodslu; push rax // method,filter,cto,junk
|
||||
push rdx // &decompress
|
||||
o_uncpr= -13*8
|
||||
add tmpx,fp,#p_unflt+1*4; push tmpx // &dstlen
|
||||
push rdi // dst
|
||||
push rcx // srclen
|
||||
push rsi // src; arglist ready for decompress step 6
|
||||
p_uncpr= -17*8
|
||||
|
||||
and tmpx,rsi,#3 // length of prefix alignment
|
||||
add rcx,rcx,#3 // allow suffix alignment
|
||||
add rcx,rcx,tmpx // prefix increases byte length
|
||||
ldr tmp,[fp,#o_wfrag]; add rdx,tmpx,rcx,lsr #2 // w_srclen + w_frag
|
||||
ldr tmp,[fp,#o_uncpr]; bl wlen_subr
|
||||
ldr tmp,[fp,#o_unflt]; bl wlen_subr
|
||||
|
||||
bl L220
|
||||
supervise:
|
||||
// Allocate pages for result of decompressing.
|
||||
// These replace the compressed source and the following hole.
|
||||
mov arg5,#-1 // cater to *BSD for fd of MAP_ANON
|
||||
mov arg4,#MAP_PRIVATE|MAP_ANONYMOUS|MAP_FIXED
|
||||
mov arg3,#PROT_READ|PROT_WRITE
|
||||
ldr arg2,[fp,#p_mprot+4] // dstlen
|
||||
ldr arg1,[fp,#p_mprot ] // dst
|
||||
mov x6,arg1 // required result
|
||||
do_sys __NR_mmap64; cmp x0,x6; beq 0f; brk #0; 0:
|
||||
|
||||
// Restore fragment of page below dst
|
||||
ldr ecx,[fp,#o_wfrag]
|
||||
//mov edi,r0 // NOP: edi==r0
|
||||
ldr rsi,[fp,#p_unmap]
|
||||
bl movsl
|
||||
|
||||
POP4(arg1,arg2,arg3,arg4)
|
||||
POP1(rax)
|
||||
blr rax // decompress
|
||||
add sp,sp,#8 // toss arg5
|
||||
|
||||
bl L620
|
||||
//hatch:
|
||||
do_sys __NR_munmap
|
||||
POP3(arg1,arg2,arg3)
|
||||
POP4(rax,rcx,x6,x7)
|
||||
POP3(fp,lr,x1)
|
||||
br x1
|
||||
|
||||
L620: // Implant escape hatch at end of .text
|
||||
ldr eax,[fp,#o_hatch]
|
||||
ldp arg1,arg2,[lr]
|
||||
stp arg1,arg2,[rax]
|
||||
|
||||
//p_unflt
|
||||
POP4(arg1,arg2,arg3,arg4)
|
||||
POP2(rax,x12) // x12= w_fragment [toss]
|
||||
cbz arg4,0f // 0==ftid ==> no filter
|
||||
blr rax // unfilter
|
||||
0:
|
||||
//p_mprot
|
||||
ldr arg1,[sp,#0*4] // lo(dst)
|
||||
ldr arg2,[sp,#1*4] // len
|
||||
mov arg3,#0
|
||||
add arg2,arg2,arg1 // hi(dst)
|
||||
add arg2,arg2,#2*4 // len(hatch)
|
||||
do_sys __ARM_NR_cacheflush
|
||||
|
||||
POP2(arg1,arg2)
|
||||
mov arg3,#PROT_READ|PROT_EXEC
|
||||
do_sys __NR_mprotect
|
||||
|
||||
//p_unmap
|
||||
#if defined(ARMEL_EABI4) //{
|
||||
// first part of do_sys7t __NR_munmap
|
||||
.if __NR_munmap <= 0xff
|
||||
mov r7,#__NR_munmap
|
||||
.else
|
||||
mov r7,#__NR_munmap>>16
|
||||
lsl r7,r7,#16
|
||||
add r7,r7,#__NR_munmap - ((__NR_munmap>>16)<<16)
|
||||
.endif
|
||||
#endif //}
|
||||
POP3(arg1,arg2,lr)
|
||||
br lr // togo hatch
|
||||
|
||||
movsl_subr:
|
||||
ldr ecx,[rsi,#-4] // 'bl <over>' instruction word
|
||||
bic ecx,ecx,#0xff<<24 // displacment field
|
||||
add ecx,ecx,#1 // displ omits one word
|
||||
// FALL THROUGH to the part of 'movsl' that trims to a multiple of 8 words.
|
||||
// 7/8 of the time this is faster; 1/8 of the time it's slower.
|
||||
9:
|
||||
ldr tmp,[rsi],#4; sub ecx,ecx,#1
|
||||
str tmp,[rdi],#4
|
||||
movsl: // rdi= 4-byte aligned dst; esi= 4-byte aligned src; ecx= word count
|
||||
tst ecx,#7; bne 9b // work ecx down to multiple of 8
|
||||
lsr ecx,ecx,#3; cbz ecx,9f
|
||||
7:
|
||||
ldp x2,x3,[rsi],#2*8; subs ecx,ecx,#1
|
||||
stp x2,x3,[rdi],#2*8; cbnz ecx,7b
|
||||
9:
|
||||
ret
|
||||
|
||||
L220:
|
||||
push lr // &supervise
|
||||
o_super= -18*8
|
||||
mov tmpx,lr; bl wlen_subr // wlen_supervise
|
||||
lsl arg2,rdx,#2 // convert to bytes
|
||||
|
||||
// Allocate pages to hold temporary copy.
|
||||
mov arg5,#-1 // cater to *BSD for fd of MAP_ANON
|
||||
mov arg4,#MAP_PRIVATE|MAP_ANONYMOUS
|
||||
mov arg3,#PROT_READ|PROT_WRITE|PROT_EXEC
|
||||
str arg2,[fp,#p_unmap+1*8] // length to unmap
|
||||
mov arg1,#0 // any addr
|
||||
do_sys __NR_mmap64; cmn x0,#4096; bcc 0f; brk #0; 0:
|
||||
str x0,[fp,#p_unmap+0*8] // address to unmap
|
||||
|
||||
ldr esi,[fp,#p_mprot]
|
||||
//mov edi,r0 // edi= dst NOP: edi==r0
|
||||
ldr ecx,[fp,#o_wfrag] // w_fragment
|
||||
bl movsl // copy the fragment
|
||||
|
||||
ldr esi,[fp,#p_uncpr+0*4] // src
|
||||
ldr ecx,[fp,#p_uncpr+1*4] // len
|
||||
and tmp,esi,#3 // length of prefix alignment
|
||||
sub esi,esi,tmp // down to word aligned
|
||||
add ecx,ecx,tmp // prefix increases byte length
|
||||
add tmp,tmp,edi // skip prefix at destination
|
||||
str tmp,[fp,#p_uncpr+0*4] // dst
|
||||
add ecx,ecx,#7 // round up to full words
|
||||
lsr ecx,ecx,#3
|
||||
bl movsl // copy all aligned words that contain compressed data
|
||||
|
||||
mov rdx,rdi // lo(dst) of copied code
|
||||
|
||||
ldr rsi,[fp,#o_uncpr]
|
||||
str rdi,[fp,#o_uncpr]
|
||||
bl movsl_subr // copy decompressor
|
||||
|
||||
ldr rsi,[fp,#o_unflt]
|
||||
str rdi,[fp,#o_unflt]
|
||||
bl movsl_subr // copy unfilter
|
||||
|
||||
pop rsi // &supervise
|
||||
push rdi // &copied
|
||||
bl movsl_subr // copy supervisor
|
||||
|
||||
mov arg2,rdi // hi(dst) of copied code
|
||||
mov arg1,rdx // lo(dst) of copied code
|
||||
mov arg3,#0
|
||||
do_sys __ARM_NR_cacheflush
|
||||
|
||||
pop lr; br lr // goto copied supervisor
|
||||
|
||||
wlen_subr: // edx+= nwords of inline subr at *tmp
|
||||
ldr tmp,[tmpx,#-4] // 'bl <over>' instruction word
|
||||
bic tmp,tmp,#0xff<<24 // displacment field
|
||||
add tmp,tmp,#1 // displ omits one word
|
||||
add rdx,rdx,tmpx
|
||||
ret
|
||||
|
||||
/*__XTHEENDX__*/
|
||||
|
||||
/* vim:set ts=8 sw=8 et: */
|
||||
@ -96,7 +96,7 @@ struct timespec {
|
||||
#elif defined(__amd64__)
|
||||
#define PAGE_MASK (~0ul<<12) // discards the offset, keeps the page
|
||||
#define PAGE_SIZE ( 1ul<<12)
|
||||
#elif defined(__i386__) || defined(__powerpc__) || defined(__arm__)
|
||||
#elif defined(__i386__) || defined(__powerpc__) || defined(__arm__) || defined(__AARCH64EL__)
|
||||
#define PAGE_MASK (~0ul<<12) // discards the offset, keeps the page
|
||||
#define PAGE_SIZE ( 1ul<<12)
|
||||
#endif
|
||||
|
||||
@ -4,13 +4,18 @@ Sections:
|
||||
Idx Name Size VMA LMA File off Algn Flags
|
||||
0 MACHMAINX 00000044 0000000000000000 0000000000000000 00000040 2**0 CONTENTS, RELOC, READONLY
|
||||
1 NRV_HEAD 00000000 0000000000000000 0000000000000000 00000084 2**0 CONTENTS, READONLY
|
||||
2 NRV2E 0000013c 0000000000000000 0000000000000000 00000084 2**0 CONTENTS, READONLY
|
||||
3 NRV2D 00000130 0000000000000000 0000000000000000 000001c0 2**0 CONTENTS, READONLY
|
||||
4 NRV2B 00000108 0000000000000000 0000000000000000 000002f0 2**0 CONTENTS, READONLY
|
||||
5 NRV_TAIL 000004b4 0000000000000000 0000000000000000 000003f8 2**0 CONTENTS, READONLY
|
||||
6 MACHMAINY 00000000 0000000000000000 0000000000000000 000008ac 2**0 CONTENTS, READONLY
|
||||
7 MACHMAINZ 00000058 0000000000000000 0000000000000000 000008ac 2**0 CONTENTS, READONLY
|
||||
2 NRV2E 00000128 0000000000000000 0000000000000000 00000084 2**0 CONTENTS, READONLY
|
||||
3 NRV2D 0000011c 0000000000000000 0000000000000000 000001ac 2**0 CONTENTS, READONLY
|
||||
4 NRV2B 000000f0 0000000000000000 0000000000000000 000002c8 2**0 CONTENTS, READONLY
|
||||
5 NRV_TAIL 00000000 0000000000000000 0000000000000000 000003b8 2**0 CONTENTS, READONLY
|
||||
6 LZMA_ELF00 000000d0 0000000000000000 0000000000000000 000003b8 2**0 CONTENTS, RELOC, READONLY
|
||||
7 LZMA_DEC20 00000930 0000000000000000 0000000000000000 00000488 2**0 CONTENTS, READONLY
|
||||
8 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000db8 2**0 CONTENTS, READONLY
|
||||
9 LZMA_DEC30 00000000 0000000000000000 0000000000000000 00001254 2**0 CONTENTS, READONLY
|
||||
10 MACHMAINY 00000000 0000000000000000 0000000000000000 00001254 2**0 CONTENTS, READONLY
|
||||
11 MACHMAINZ 00000058 0000000000000000 0000000000000000 00001254 2**0 CONTENTS, READONLY
|
||||
SYMBOL TABLE:
|
||||
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
|
||||
0000000000000000 l d MACHMAINZ 0000000000000000 MACHMAINZ
|
||||
0000000000000000 l d MACHMAINX 0000000000000000 MACHMAINX
|
||||
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
|
||||
@ -18,14 +23,21 @@ SYMBOL TABLE:
|
||||
0000000000000000 l d NRV2D 0000000000000000 NRV2D
|
||||
0000000000000000 l d NRV2B 0000000000000000 NRV2B
|
||||
0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL
|
||||
0000000000000000 l d LZMA_ELF00 0000000000000000 LZMA_ELF00
|
||||
0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20
|
||||
0000000000000000 l d LZMA_DEC10 0000000000000000 LZMA_DEC10
|
||||
0000000000000000 l d MACHMAINY 0000000000000000 MACHMAINY
|
||||
0000000000000000 g MACHMAINX 0000000000000000 _start
|
||||
0000000000000000 g F NRV2E 000000000000013c ucl_nrv2e_decompress_8
|
||||
0000000000000000 g F NRV2D 0000000000000130 ucl_nrv2d_decompress_8
|
||||
0000000000000000 g F NRV2B 0000000000000108 ucl_nrv2b_decompress_8
|
||||
0000000000000000 g NRV_TAIL 0000000000000000 LzmaDecode
|
||||
0000000000000000 g F NRV2E 0000000000000128 ucl_nrv2e_decompress_32
|
||||
0000000000000000 g F NRV2D 000000000000011c ucl_nrv2d_decompress_32
|
||||
0000000000000000 g F NRV2B 00000000000000f0 ucl_nrv2b_decompress_32
|
||||
0000000000000000 g LZMA_DEC10 0000000000000000 LzmaDecode
|
||||
0000000000000000 g MACHMAINY 0000000000000000 end_decompress
|
||||
|
||||
RELOCATION RECORDS FOR [MACHMAINX]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000040 R_AARCH64_CALL26 MACHMAINZ+0x0000000000000050
|
||||
|
||||
RELOCATION RECORDS FOR [LZMA_ELF00]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000004 R_AARCH64_CONDBR19 LZMA_DEC30
|
||||
|
||||
@ -67,35 +67,35 @@ LOAD tmp/arm64-darwin.macho-main.o
|
||||
*(.iplt)
|
||||
.iplt 0x0000000000400080 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
|
||||
.text 0x0000000000400078 0x6a8
|
||||
.text 0x0000000000400078 0x680
|
||||
*(.text.unlikely .text.*_unlikely .text.unlikely.*)
|
||||
*(.text.exit .text.exit.*)
|
||||
*(.text.startup .text.startup.*)
|
||||
*(.text.hot .text.hot.*)
|
||||
*(.text .stub .text.* .gnu.linkonce.t.*)
|
||||
.text 0x0000000000400078 0x188 tmp/arm64-darwin.macho-fold.o
|
||||
.text 0x0000000000400078 0x160 tmp/arm64-darwin.macho-fold.o
|
||||
0x0000000000400078 _start
|
||||
0x0000000000400134 spin
|
||||
0x0000000000400138 exit
|
||||
0x0000000000400144 read
|
||||
0x0000000000400154 write
|
||||
0x0000000000400164 open
|
||||
0x0000000000400174 close
|
||||
0x0000000000400184 brk
|
||||
0x0000000000400194 munmap
|
||||
0x00000000004001a4 mprotect
|
||||
0x00000000004001b4 mmap
|
||||
0x00000000004001c4 pread
|
||||
0x00000000004001d4 bswap
|
||||
.text 0x0000000000400200 0x520 tmp/arm64-darwin.macho-main.o
|
||||
0x0000000000400578 upx_main
|
||||
0x0000000000400140 read
|
||||
0x000000000040014c write
|
||||
0x0000000000400158 open
|
||||
0x0000000000400164 close
|
||||
0x0000000000400170 brk
|
||||
0x000000000040017c munmap
|
||||
0x0000000000400188 mprotect
|
||||
0x0000000000400194 mmap
|
||||
0x00000000004001a0 pread
|
||||
0x00000000004001ac bswap
|
||||
.text 0x00000000004001d8 0x520 tmp/arm64-darwin.macho-main.o
|
||||
0x0000000000400550 upx_main
|
||||
*(.gnu.warning)
|
||||
|
||||
.fini
|
||||
*(SORT(.fini))
|
||||
0x0000000000400720 PROVIDE (__etext, .)
|
||||
0x0000000000400720 PROVIDE (_etext, .)
|
||||
0x0000000000400720 PROVIDE (etext, .)
|
||||
0x00000000004006f8 PROVIDE (__etext, .)
|
||||
0x00000000004006f8 PROVIDE (_etext, .)
|
||||
0x00000000004006f8 PROVIDE (etext, .)
|
||||
|
||||
.rodata
|
||||
*(.rodata .rodata.* .gnu.linkonce.r.*)
|
||||
@ -106,9 +106,9 @@ LOAD tmp/arm64-darwin.macho-main.o
|
||||
.eh_frame_hdr
|
||||
*(.eh_frame_hdr)
|
||||
|
||||
.eh_frame 0x0000000000400720 0x100
|
||||
.eh_frame 0x00000000004006f8 0x100
|
||||
*(.eh_frame)
|
||||
.eh_frame 0x0000000000400720 0x100 tmp/arm64-darwin.macho-main.o
|
||||
.eh_frame 0x00000000004006f8 0x100 tmp/arm64-darwin.macho-main.o
|
||||
0xf8 (size before relaxing)
|
||||
|
||||
.gcc_except_table
|
||||
@ -116,8 +116,8 @@ LOAD tmp/arm64-darwin.macho-main.o
|
||||
|
||||
.exception_ranges
|
||||
*(.exception_ranges .exception_ranges*)
|
||||
0x0000000000400820 . = (ALIGN (0x10000) - ((0x10000 - .) & 0xffff))
|
||||
0x0000000000410820 . = DATA_SEGMENT_ALIGN (0x10000, 0x1000)
|
||||
0x00000000004007f8 . = (ALIGN (0x10000) - ((0x10000 - .) & 0xffff))
|
||||
0x00000000004107f8 . = DATA_SEGMENT_ALIGN (0x10000, 0x1000)
|
||||
|
||||
.eh_frame
|
||||
*(.eh_frame)
|
||||
@ -135,22 +135,22 @@ LOAD tmp/arm64-darwin.macho-main.o
|
||||
*(.tbss .tbss.* .gnu.linkonce.tb.*)
|
||||
*(.tcommon)
|
||||
|
||||
.preinit_array 0x0000000000410820 0x0
|
||||
0x0000000000410820 PROVIDE (__preinit_array_start, .)
|
||||
.preinit_array 0x00000000004107f8 0x0
|
||||
0x00000000004107f8 PROVIDE (__preinit_array_start, .)
|
||||
*(.preinit_array)
|
||||
0x0000000000410820 PROVIDE (__preinit_array_end, .)
|
||||
0x00000000004107f8 PROVIDE (__preinit_array_end, .)
|
||||
|
||||
.init_array 0x0000000000410820 0x0
|
||||
0x0000000000410820 PROVIDE (__init_array_start, .)
|
||||
.init_array 0x00000000004107f8 0x0
|
||||
0x00000000004107f8 PROVIDE (__init_array_start, .)
|
||||
*(SORT(.init_array.*))
|
||||
*(.init_array)
|
||||
0x0000000000410820 PROVIDE (__init_array_end, .)
|
||||
0x00000000004107f8 PROVIDE (__init_array_end, .)
|
||||
|
||||
.fini_array 0x0000000000410820 0x0
|
||||
0x0000000000410820 PROVIDE (__fini_array_start, .)
|
||||
.fini_array 0x00000000004107f8 0x0
|
||||
0x00000000004107f8 PROVIDE (__fini_array_start, .)
|
||||
*(SORT(.fini_array.*))
|
||||
*(.fini_array)
|
||||
0x0000000000410820 PROVIDE (__fini_array_end, .)
|
||||
0x00000000004107f8 PROVIDE (__fini_array_end, .)
|
||||
|
||||
.ctors
|
||||
*crtbegin.o(.ctors)
|
||||
@ -179,43 +179,43 @@ LOAD tmp/arm64-darwin.macho-main.o
|
||||
.got
|
||||
*(.got)
|
||||
*(.igot)
|
||||
0x0000000000410820 . = DATA_SEGMENT_RELRO_END (., 0x18)
|
||||
0x00000000004107f8 . = DATA_SEGMENT_RELRO_END (., 0x18)
|
||||
|
||||
.got.plt 0x0000000000410820 0x0
|
||||
.got.plt 0x00000000004107f8 0x0
|
||||
*(.got.plt)
|
||||
*(.igot.plt)
|
||||
.igot.plt 0x0000000000410820 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
.igot.plt 0x00000000004107f8 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
|
||||
.data 0x0000000000410820 0x0
|
||||
0x0000000000410820 PROVIDE (__data_start, .)
|
||||
.data 0x00000000004107f8 0x0
|
||||
0x00000000004107f8 PROVIDE (__data_start, .)
|
||||
*(.data .data.* .gnu.linkonce.d.*)
|
||||
.data 0x0000000000410820 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
.data 0x0000000000410820 0x0 tmp/arm64-darwin.macho-main.o
|
||||
.data 0x00000000004107f8 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
.data 0x00000000004107f8 0x0 tmp/arm64-darwin.macho-main.o
|
||||
|
||||
.data1
|
||||
*(.data1)
|
||||
0x0000000000410820 _edata = .
|
||||
0x0000000000410820 PROVIDE (edata, .)
|
||||
0x0000000000410820 . = .
|
||||
0x0000000000410820 __bss_start = .
|
||||
0x0000000000410820 __bss_start__ = .
|
||||
0x00000000004107f8 _edata = .
|
||||
0x00000000004107f8 PROVIDE (edata, .)
|
||||
0x00000000004107f8 . = .
|
||||
0x00000000004107f8 __bss_start = .
|
||||
0x00000000004107f8 __bss_start__ = .
|
||||
|
||||
.bss 0x0000000000410820 0x0
|
||||
.bss 0x00000000004107f8 0x0
|
||||
*(.dynbss)
|
||||
*(.bss .bss.* .gnu.linkonce.b.*)
|
||||
.bss 0x0000000000410820 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
.bss 0x0000000000410820 0x0 tmp/arm64-darwin.macho-main.o
|
||||
.bss 0x00000000004107f8 0x0 tmp/arm64-darwin.macho-fold.o
|
||||
.bss 0x00000000004107f8 0x0 tmp/arm64-darwin.macho-main.o
|
||||
*(COMMON)
|
||||
0x0000000000410820 . = ALIGN ((. != 0x0)?0x8:0x1)
|
||||
0x0000000000410820 _bss_end__ = .
|
||||
0x0000000000410820 __bss_end__ = .
|
||||
0x0000000000410820 . = ALIGN (0x8)
|
||||
0x0000000000410820 . = SEGMENT_START ("ldata-segment", .)
|
||||
0x0000000000410820 . = ALIGN (0x8)
|
||||
0x0000000000410820 __end__ = .
|
||||
0x0000000000410820 _end = .
|
||||
0x0000000000410820 PROVIDE (end, .)
|
||||
0x0000000000410820 . = DATA_SEGMENT_END (.)
|
||||
0x00000000004107f8 . = ALIGN ((. != 0x0)?0x8:0x1)
|
||||
0x00000000004107f8 _bss_end__ = .
|
||||
0x00000000004107f8 __bss_end__ = .
|
||||
0x00000000004107f8 . = ALIGN (0x8)
|
||||
0x00000000004107f8 . = SEGMENT_START ("ldata-segment", .)
|
||||
0x00000000004107f8 . = ALIGN (0x8)
|
||||
0x00000000004107f8 __end__ = .
|
||||
0x00000000004107f8 _end = .
|
||||
0x00000000004107f8 PROVIDE (end, .)
|
||||
0x00000000004107f8 . = DATA_SEGMENT_END (.)
|
||||
|
||||
.stab
|
||||
*(.stab)
|
||||
|
||||
61
src/stub/tmp/arm64-linux.elf-entry.bin.dump
Normal file
61
src/stub/tmp/arm64-linux.elf-entry.bin.dump
Normal file
@ -0,0 +1,61 @@
|
||||
file format elf64-littleaarch64
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn Flags
|
||||
0 ELFMAINX 0000003c 0000000000000000 0000000000000000 00000040 2**2 CONTENTS, RELOC, READONLY
|
||||
1 LUNMP000 00000000 0000000000000000 0000000000000000 0000007c 2**0 CONTENTS, READONLY
|
||||
2 LUNMP001 00000000 0000000000000000 0000000000000000 0000007c 2**0 CONTENTS, READONLY
|
||||
3 ELFMAINXu 000000a0 0000000000000000 0000000000000000 0000007c 2**2 CONTENTS, RELOC, READONLY
|
||||
4 NRV_HEAD 00000000 0000000000000000 0000000000000000 0000011c 2**0 CONTENTS, READONLY
|
||||
5 NRV_TAIL 00000000 0000000000000000 0000000000000000 0000011c 2**0 CONTENTS, READONLY
|
||||
6 NRV2E 00000128 0000000000000000 0000000000000000 0000011c 2**2 CONTENTS, READONLY
|
||||
7 NRV2D 0000011c 0000000000000000 0000000000000000 00000244 2**2 CONTENTS, READONLY
|
||||
8 NRV2B 000000f0 0000000000000000 0000000000000000 00000360 2**2 CONTENTS, READONLY
|
||||
9 LZMA_ELF00 000000d0 0000000000000000 0000000000000000 00000450 2**2 CONTENTS, RELOC, READONLY
|
||||
10 LZMA_DEC20 00000930 0000000000000000 0000000000000000 00000520 2**0 CONTENTS, READONLY
|
||||
11 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000e50 2**2 CONTENTS, READONLY
|
||||
12 LZMA_DEC30 00000000 0000000000000000 0000000000000000 000012ec 2**0 CONTENTS, READONLY
|
||||
13 ELFMAINY 0000003e 0000000000000000 0000000000000000 000012ec 2**2 CONTENTS, READONLY
|
||||
14 ELFMAINZ 00000000 0000000000000000 0000000000000000 0000132a 2**0 CONTENTS, READONLY
|
||||
SYMBOL TABLE:
|
||||
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
|
||||
0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY
|
||||
0000000000000000 l d ELFMAINX 0000000000000000 ELFMAINX
|
||||
0000000000000000 l d LUNMP000 0000000000000000 LUNMP000
|
||||
0000000000000000 l d LUNMP001 0000000000000000 LUNMP001
|
||||
0000000000000000 l d ELFMAINXu 0000000000000000 ELFMAINXu
|
||||
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
|
||||
0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL
|
||||
0000000000000000 l d NRV2E 0000000000000000 NRV2E
|
||||
0000000000000000 l d NRV2D 0000000000000000 NRV2D
|
||||
0000000000000000 l d NRV2B 0000000000000000 NRV2B
|
||||
0000000000000000 l d LZMA_ELF00 0000000000000000 LZMA_ELF00
|
||||
0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20
|
||||
0000000000000000 l d LZMA_DEC10 0000000000000000 LZMA_DEC10
|
||||
0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ
|
||||
0000000000000000 *UND* 0000000000000000 LENF
|
||||
0000000000000000 *UND* 0000000000000000 CPR0
|
||||
0000000000000000 *UND* 0000000000000000 MFLG
|
||||
0000000000000000 *UND* 0000000000000000 ADRM
|
||||
0000000000000014 g ELFMAINX 0000000000000000 _start
|
||||
0000000000000000 g F NRV2E 0000000000000128 ucl_nrv2e_decompress_32
|
||||
0000000000000000 g F NRV2D 000000000000011c ucl_nrv2d_decompress_32
|
||||
0000000000000000 g F NRV2B 00000000000000f0 ucl_nrv2b_decompress_32
|
||||
0000000000000000 g LZMA_DEC10 0000000000000000 LzmaDecode
|
||||
0000000000000000 g ELFMAINY 0000000000000000 end_decompress
|
||||
0000000000000000 g ELFMAINZ 0000000000000000 cpr0
|
||||
|
||||
RELOCATION RECORDS FOR [ELFMAINX]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000000 R_AARCH64_ABS32 LENF
|
||||
0000000000000004 R_AARCH64_ABS32 CPR0
|
||||
0000000000000008 R_AARCH64_ABS32 MFLG
|
||||
000000000000000c R_AARCH64_ABS64 ADRM
|
||||
|
||||
RELOCATION RECORDS FOR [ELFMAINXu]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000024 R_AARCH64_CONDBR19 ELFMAINY
|
||||
|
||||
RELOCATION RECORDS FOR [LZMA_ELF00]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000004 R_AARCH64_CONDBR19 LZMA_DEC30
|
||||
51
src/stub/tmp/arm64-linux.elf-fold.map
Normal file
51
src/stub/tmp/arm64-linux.elf-fold.map
Normal file
@ -0,0 +1,51 @@
|
||||
|
||||
Memory Configuration
|
||||
|
||||
Name Origin Length Attributes
|
||||
*default* 0x0000000000000000 0xffffffffffffffff
|
||||
|
||||
Linker script and memory map
|
||||
|
||||
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
|
||||
|
||||
.text 0x00000000001000bc 0x878
|
||||
*(.text)
|
||||
.text 0x00000000001000bc 0x258 tmp/arm64-linux.elf-fold.o
|
||||
0x000000000010022c my_bkpt
|
||||
0x0000000000100234 exit
|
||||
0x000000000010023c read
|
||||
0x0000000000100248 write
|
||||
0x0000000000100254 close
|
||||
0x0000000000100260 getpid
|
||||
0x000000000010026c brk
|
||||
0x0000000000100278 munmap
|
||||
0x0000000000100284 mprotect
|
||||
0x0000000000100290 mmap_privanon
|
||||
0x00000000001002a0 mmap
|
||||
0x00000000001002ac unlink
|
||||
0x00000000001002b8 open
|
||||
0x00000000001002d4 readlink
|
||||
0x0000000000100300 __clear_cache
|
||||
.text 0x0000000000100314 0x620 tmp/arm64-linux.elf-main.o
|
||||
0x00000000001007c4 upx_main
|
||||
*(.data)
|
||||
.data 0x0000000000100934 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.data 0x0000000000100934 0x0 tmp/arm64-linux.elf-main.o
|
||||
|
||||
.iplt 0x0000000000100934 0x0
|
||||
.iplt 0x0000000000100934 0x0 tmp/arm64-linux.elf-fold.o
|
||||
|
||||
.rela.dyn 0x0000000000100938 0x0
|
||||
.rela.iplt 0x0000000000100938 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 0x0000000000100938 0x0
|
||||
.igot.plt 0x0000000000100938 0x0 tmp/arm64-linux.elf-fold.o
|
||||
|
||||
.bss 0x0000000000100934 0x0
|
||||
.bss 0x0000000000100934 0x0 tmp/arm64-linux.elf-fold.o
|
||||
.bss 0x0000000000100934 0x0 tmp/arm64-linux.elf-main.o
|
||||
43
src/stub/tmp/arm64-linux.shlib-init.bin.dump
Normal file
43
src/stub/tmp/arm64-linux.shlib-init.bin.dump
Normal file
@ -0,0 +1,43 @@
|
||||
file format elf64-littleaarch64
|
||||
|
||||
Sections:
|
||||
Idx Name Size VMA LMA File off Algn Flags
|
||||
0 ELFMAINX 00000024 0000000000000000 0000000000000000 00000040 2**2 CONTENTS, RELOC, READONLY
|
||||
1 NRV_HEAD 00000000 0000000000000000 0000000000000000 00000064 2**0 CONTENTS, READONLY
|
||||
2 NRV_TAIL 00000000 0000000000000000 0000000000000000 00000064 2**0 CONTENTS, READONLY
|
||||
3 NRV2E 00000128 0000000000000000 0000000000000000 00000064 2**2 CONTENTS, READONLY
|
||||
4 NRV2D 0000011c 0000000000000000 0000000000000000 0000018c 2**2 CONTENTS, READONLY
|
||||
5 NRV2B 000000f0 0000000000000000 0000000000000000 000002a8 2**2 CONTENTS, READONLY
|
||||
6 LZMA_ELF00 000000d0 0000000000000000 0000000000000000 00000398 2**2 CONTENTS, RELOC, READONLY
|
||||
7 LZMA_DEC20 00000930 0000000000000000 0000000000000000 00000468 2**0 CONTENTS, READONLY
|
||||
8 LZMA_DEC10 0000049c 0000000000000000 0000000000000000 00000d98 2**2 CONTENTS, READONLY
|
||||
9 LZMA_DEC30 00000000 0000000000000000 0000000000000000 00001234 2**0 CONTENTS, READONLY
|
||||
10 ELFMAINY 0000003e 0000000000000000 0000000000000000 00001234 2**2 CONTENTS, READONLY
|
||||
11 ELFMAINZ 000002ec 0000000000000000 0000000000000000 00001274 2**2 CONTENTS, READONLY
|
||||
SYMBOL TABLE:
|
||||
0000000000000000 l d LZMA_DEC30 0000000000000000 LZMA_DEC30
|
||||
0000000000000000 l d ELFMAINZ 0000000000000000 ELFMAINZ
|
||||
0000000000000000 l d ELFMAINX 0000000000000000 ELFMAINX
|
||||
0000000000000000 l d NRV_HEAD 0000000000000000 NRV_HEAD
|
||||
0000000000000000 l d NRV_TAIL 0000000000000000 NRV_TAIL
|
||||
0000000000000000 l d NRV2E 0000000000000000 NRV2E
|
||||
0000000000000000 l d NRV2D 0000000000000000 NRV2D
|
||||
0000000000000000 l d NRV2B 0000000000000000 NRV2B
|
||||
0000000000000000 l d LZMA_ELF00 0000000000000000 LZMA_ELF00
|
||||
0000000000000000 l d LZMA_DEC20 0000000000000000 LZMA_DEC20
|
||||
0000000000000000 l d LZMA_DEC10 0000000000000000 LZMA_DEC10
|
||||
0000000000000000 l d ELFMAINY 0000000000000000 ELFMAINY
|
||||
0000000000000000 g ELFMAINX 0000000000000000 _start
|
||||
0000000000000000 g F NRV2E 0000000000000128 ucl_nrv2e_decompress_32
|
||||
0000000000000000 g F NRV2D 000000000000011c ucl_nrv2d_decompress_32
|
||||
0000000000000000 g F NRV2B 00000000000000f0 ucl_nrv2b_decompress_32
|
||||
0000000000000000 g LZMA_DEC10 0000000000000000 LzmaDecode
|
||||
0000000000000000 g ELFMAINY 0000000000000000 end_decompress
|
||||
|
||||
RELOCATION RECORDS FOR [ELFMAINX]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000020 R_AARCH64_CALL26 ELFMAINZ
|
||||
|
||||
RELOCATION RECORDS FOR [LZMA_ELF00]:
|
||||
OFFSET TYPE VALUE
|
||||
0000000000000004 R_AARCH64_CONDBR19 LZMA_DEC30
|
||||
Loading…
Reference in New Issue
Block a user