ELF2 for arm64 main programs

modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_lx_elf.cpp
	modified:   stub/Makefile
	modified:   stub/src/amd64-linux.elf-entry.S
	modified:   stub/src/amd64-linux.elf-main2.c
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/arm64-linux.elf-fold.lds
	new file:   stub/src/arm64-linux.elf-main2.c
           plus generated *.h *.dump *.map
This commit is contained in:
John Reiser 2024-06-24 14:38:53 -07:00
parent 4fa50b96ad
commit 6276a4a7c4
14 changed files with 1403 additions and 912 deletions

View File

@ -46,12 +46,12 @@ b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.
a0950546dc17fca9437219431d8ddb0249ce5b08e899e0c799a87ac982adee70 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
ac7093ea493bfa05e1229584029be585bf6042099fce41bb3f5b89279a41c8f6 *amd64-linux.elf/upx-3.91
7b49177bad3dfe076ded4fb661d601bf8c0a26f900686dee41425ff5af3407c1 *amd64-linux.elf/upx-3.95
1dcbac9b18093bc2cfa8180bc2f6ebf654decb322f9f90bc884f64446397599a *amd64-linux.elf/upx-3.91
f1df33ab1679203b3aa32ae79250bec646435bacb721388e0289947d7b387d88 *amd64-linux.elf/upx-3.95
1bd70a3cd3b34e635a3c947cacd46c4d66bf07e0fd350cc6d1f3cf60483f75b9 *amd64-win64.pe/upx-3.95.exe
c9d8d916100e1dd972a2a9a060e4213505b14c62e9705ab6c8b544a8f18e083d *arm-linux.elf/upx-3.95
94422a91473a467dfb534afa3f20247bc38691aeb386a42fb3e0fd18d3d0ae08 *arm-wince.pe/upx-3.91.exe
73264b5b85b3866e7d132a29745deff2fc3fe190b66e492fdb22df188d801cc8 *arm64-linux.elf/upx-3.95
fcdfb02749f51327bfef97369d4f4c95d3b87ef9534a3e6f8c3022aff3f667fa *arm64-linux.elf/upx-3.95
0a9d0d95822a7d645d67b61ebd5b86d8be07b8a36e0f29dbc9b55a8666ed67af *armeb-linux.elf/upx-3.91
6e4ff31a80809fc5058ae714ab10ad7810c310bd7d116fad8b198009b9872312 *armeb-linux.elf/upx-3.95
e17a126cebc32977991a292b7434d1435a7c95862ccece0e4acbf6e810bd3443 *i386-dos32.djgpp2.coff/upx-3.91.exe
@ -69,12 +69,12 @@ fcbd8b4709ee324eb772e5de45a85bac5b8e560460fb1d50d0958f2ce568be97 *mipsel-linux.e
d74c348bad0c1f3e776cf78282141492a58746c601f3f4288c9e675b7b425f82 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
4d50cd6cb9456f54533d98b217826077ec4afd23fe80acf35f52ab42d6dc63e6 *amd64-linux.elf/upx-3.91
269f04d0109a4eb160e9696998c60c9301927b504b110b023f07f03ba721202f *amd64-linux.elf/upx-3.95
6e5cdecceed30621f3cdd62dad279d027d6668311374917ae591de63b7a7857a *amd64-linux.elf/upx-3.91
3c9e7bc6a5fe039da7b56be80f8ee90a1cf3112b53080c0fdd059a61b1bed6be *amd64-linux.elf/upx-3.95
0314c6974f29d180e46e41a1004d46a3993fe96f03de7f78d45ad89ad3b2177e *amd64-win64.pe/upx-3.95.exe
0f781a70828dc3b939988b96e70c0734cef3f4a7693624e61f7a678b0c8667a6 *arm-linux.elf/upx-3.95
d7839b7dee866794e4ca3df32e2b1084b35aa22dee5f060fa14b5ca09c612ba3 *arm-wince.pe/upx-3.91.exe
0e1298896e6eac45ebe3610571fda980555c00a022e215d6fd7ab4af3a1fae2f *arm64-linux.elf/upx-3.95
20930d073fccb9730b8f1930a88cdcd822d7449a310cc5372cceaa0c52acffca *arm64-linux.elf/upx-3.95
7ebffb7cd7a0f95e82738cb58728334fe51b5174f54f807303d281e4594037cf *armeb-linux.elf/upx-3.91
4a9d498ec0df4923ebb475f634c25f9b47eea115998adfd9c46b7dc4a561cf47 *armeb-linux.elf/upx-3.95
4a434c3a14686786369c8bede8736d15e307ed7dd8c40cccb8f22003b05db968 *i386-dos32.djgpp2.coff/upx-3.91.exe
@ -92,12 +92,12 @@ d05786b4b729f13a9b325322c2ea41ca7db6f60fee9f82c58874a25ee7eca086 *powerpc-linux.
c4888e9ed7c587163b53246c2c0cb2c6118122feacfc5248f371d8f6c8783abd *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
6b0f012f0b412e9589cfb5180b5a54c4535b87d781ee0ea4d7ebd3877312f97f *amd64-linux.elf/upx-3.91
a20e7a2056834060632ad551381c73b8c5072ecca4f7af3df34c541878e29380 *amd64-linux.elf/upx-3.95
be909d6362b96620480ca307c05b28a6856714a113026d36c1e7470d207155d5 *amd64-linux.elf/upx-3.91
56166479df570e70c1a74b801096aa64d653c00a933ae9b11c06df580ba99d31 *amd64-linux.elf/upx-3.95
97bb5953405f3413d9ff9bdc272caf2858697168b3e85dab54213da356b5ea0f *amd64-win64.pe/upx-3.95.exe
0bf33b6b3f246093a7e15c4a51b0a15f40c7ec9c16fcd38613b8b66004a3b3cb *arm-linux.elf/upx-3.95
8c73f5acfc70e3c518be09978af87b9bec4906240cb457a166da0eba05bea4db *arm-wince.pe/upx-3.91.exe
8f21a05b2edfea21c0b3df2fd0b955e480bccc7bebc71fcc8918bf625d200dcf *arm64-linux.elf/upx-3.95
eb5e101d1299518212be474f27242f63fd495f9e6c930d40f38edb02fff86567 *arm64-linux.elf/upx-3.95
4be1831f03092f1c594115d95663f3d180c0066e10b9d8389f25a350a3976529 *armeb-linux.elf/upx-3.91
c3ec4a5148e25f74f6c8dca92b608f65dc5539f9c5a0f839f801612b13505bd1 *armeb-linux.elf/upx-3.95
d454dd376db342e7650a93bd4859546711c94f5da55336e5b969dbea996465d9 *i386-dos32.djgpp2.coff/upx-3.91.exe
@ -115,12 +115,12 @@ fa3be8f93006a88c7ad3d9fd13f600c4f69745859eb76f7eab317a5b87d256ea *mipsel-linux.e
cf8c7d3616c00e6709eea0ae335cc3959a8debdac3623076541f51724649a6cc *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t140_compress_lzma_2_no_filter="\
3bb0b0e781849c7b4c39b85eec13088479f4d01edfa62ea412a08456c6d578ab *amd64-linux.elf/upx-3.91
c414d7606ca9c58097fb987ac859f3fad6e1416c0b3934318e240708ed660e9f *amd64-linux.elf/upx-3.95
8f1a3bcfd3a3908c667970e3c2342e6421e49df985edb12a9f8d16a8636b13f1 *amd64-linux.elf/upx-3.91
255643b345ffb38904dfeb200e21a0f67802e299e05563ad3cd8240e207d279e *amd64-linux.elf/upx-3.95
b8815f95e92d6853a04a86069e9054115be2d9aa657fa2c8912d0f37e56c894f *amd64-win64.pe/upx-3.95.exe
7a832eb6c3c33a04053786334c9e1953796ba2debacc754b5a18632ec987aa40 *arm-linux.elf/upx-3.95
018242f330e19dd7ca2fb78687c0070ad88f1aa2e113be865c30ad3ff94a4ada *arm-wince.pe/upx-3.91.exe
ede34a26982566c5f04b43a112d6dfc2bdb817f1d81895e62c64520788300d5f *arm64-linux.elf/upx-3.95
e38062cc314a5a2e89c47ec4dadb888db07d7ac355e5523469ae75766f6068bc *arm64-linux.elf/upx-3.95
0a64b334793d1d6056241d0072afe8aa34d92ca5680192d05e1df90ca2f3c893 *armeb-linux.elf/upx-3.91
895a9facf830fbcf2953adc0d7cf364fc5ab716f03940fc6165b49343c5253de *armeb-linux.elf/upx-3.95
4e16bdab8b74ea5c7de4f255eec035189c24ac6374afef883c17696642c4fe16 *i386-dos32.djgpp2.coff/upx-3.91.exe
@ -138,12 +138,12 @@ a214c035d403c1dc7b5d80d6cfd8e00e2278f8600332875f2e53e1c61648fdc2 *powerpc-linux.
e614e62b002d3f8e900099d1683d17a932e8879c53de6b9a9d4a064f551afa8d *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t150_compress_ucl_2_all_filters="\
a60cc1b7b7734c3874fed17e8ff79f212b97c2eed15ee9e6c48600b19b9201cb *amd64-linux.elf/upx-3.91
b2fa0763c1635014e886c457b0263aef9ccc304db6c08ebc4451a91a7b9e2f4c *amd64-linux.elf/upx-3.95
afdac91bf87ea0399034adcc9b5744726d3d1c7173306f19ca6a3c86acd4c6bc *amd64-linux.elf/upx-3.91
4c61a6e47671d57391f61c5110c42092033a49e1fe0a950c8f85e1c7f797d09e *amd64-linux.elf/upx-3.95
434732efb16b89114162a1787a28c128e2c11edb9835411f2b707cac5cd475ae *amd64-win64.pe/upx-3.95.exe
acbb1628a4631ec5ded40ec286c55544839f57a671ef925c89f81a7fff937954 *arm-linux.elf/upx-3.95
93e2ead9e54732a1731896681d415e3ce60b7420ad7f3c57822ad7dbd061cdd3 *arm-wince.pe/upx-3.91.exe
83799cb0b2736bc0c38a23b0a37e127e6066e1cf87eaf9b65541861d8131ffa4 *arm64-linux.elf/upx-3.95
dee589677746210903d4c752da178cafe0ba6fddafc9beb566dfef1692dcf9b3 *arm64-linux.elf/upx-3.95
9d6b8ef721a9af947f8439c5e6805da9ecadf8e5e41f1e5ef54c40f3c8395db2 *armeb-linux.elf/upx-3.91
591f023a8c6506cf8113fcb8a8672d0044890d60c6b9372a7eeeb40c9f5af464 *armeb-linux.elf/upx-3.95
2957b481e67689a5ad43dcfdfde207b9eb16142c161f3e43fd0eeff5917fefbd *i386-dos32.djgpp2.coff/upx-3.91.exe
@ -161,12 +161,12 @@ e3825daa7fb8d509590c1db347a8403dbd899da453fb43850ebf1d31abbe0cba *powerpc-linux.
3b246002f2dff8e44cf3c2cd2c64701514a1354c27b616c9a704f542df30e04f *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
966ac969f6670e153d53262a83bfbbcaa696a7ffad884d514e51eab1ca3783b7 *amd64-linux.elf/upx-3.91
4d01dd4a8890f6fc23a26833ea36a7d9a00de276bbbcebfb1cb6a51475986722 *amd64-linux.elf/upx-3.95
f9e4463d20f5e5f2f359c8503d7846be3409d0eaabee2772b0c9aa6b843aec48 *amd64-linux.elf/upx-3.91
c6c01776f3f3a912abff169de5507ba4fa67bc045e9699d5a8a6f694796f7768 *amd64-linux.elf/upx-3.95
f38ff7edc916c1a3e82020035667de858c89d52c98d960dad0e21b4da444ed6c *amd64-win64.pe/upx-3.95.exe
2481a933d3f1bcaed047e9cbc81ae227351e86e7c6c761c4756faea0c525aeb6 *arm-linux.elf/upx-3.95
bb475839ec547696aaccf4da202b99be927c872e5de298a5eb1f0be0edc06d1d *arm-wince.pe/upx-3.91.exe
856c8e7c77318394baa9880ef794627114f8e2e31c72ca1098c7797b716d5fa8 *arm64-linux.elf/upx-3.95
7634941f1bd62cc5b42467ed26a1f9a85d317dad01fa55f3914848caf01f7375 *arm64-linux.elf/upx-3.95
d33a702da5d0c46e744056c24e8323360223ed8e1be07660eecc28ade7b5fc75 *armeb-linux.elf/upx-3.91
57790e4d030d32d19ae6ba2a485a5bc6f7244c7e65d3ec4c8b0afe395927dd83 *armeb-linux.elf/upx-3.95
8673a20ba4b83e25daab30431ed215dcb35f595fa0cabf67ff57368a07ba4c14 *i386-dos32.djgpp2.coff/upx-3.91.exe
@ -184,12 +184,12 @@ c37806b0d68697276cdd208ab37c92e01055bfbab73c6bbdf054c95fe9cef3b9 *powerpc-linux.
bdd174f8e00e1364fba1f821b56e0083fb9993d2bab9e3a93fced8f66ccc84c7 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
a00c0f98e790ab31600fdc918e76b35cd7f1f4b7bada42980b6d7ee8e963caa8 *amd64-linux.elf/upx-3.91
3a0dbc859768bee2213632ac0fb811562e282c183eccd2930b04378f583bd7dd *amd64-linux.elf/upx-3.95
276a901f5187f7e020f584451aae4a93d50fc1b93d79637725e16df9a5a65b32 *amd64-linux.elf/upx-3.91
4a52204ba45028280f7b3528c186e8f42145a51dfa7d081e24b70081b272bc27 *amd64-linux.elf/upx-3.95
5fccb0f5044baaa74d176efb25eefa3b5810dc737ed0f9d38084d275f7ebe7b8 *amd64-win64.pe/upx-3.95.exe
90e56eefcce87542dbbc65e54c83c7e921a747877cbe489089c6043165b4f334 *arm-linux.elf/upx-3.95
56be0b4046accdfadbe534ecb6e6452b9e3a18bb9eac39da0ee8893c31d24416 *arm-wince.pe/upx-3.91.exe
11994cbac13b0545049d35d331581ad7fb773075b619a378958d39c531aaa88a *arm64-linux.elf/upx-3.95
a921bfa806e2d5c987a2ad908c8a7132779e24d56da5210cce6304ea90c9f312 *arm64-linux.elf/upx-3.95
0925e9f13460111685bcf3e695a0e191a083f43149cb0a2e6f93ca68f414614b *armeb-linux.elf/upx-3.91
03e9bb54264382f17dc15e451b9aff634e41d0b3e14585350479bf143b612c09 *armeb-linux.elf/upx-3.95
6f9fbac216cd42aa370cb90965e74669daf33fd403bf0a250aaec06dd3439009 *i386-dos32.djgpp2.coff/upx-3.91.exe

View File

@ -1651,8 +1651,8 @@ PackLinuxElf64::buildLinuxLoader(
}
else if (0
|| this->e_machine==Elf64_Ehdr::EM_X86_64
|| this->e_machine==Elf64_Ehdr::EM_AARCH64
//ELF2 NYI || this->e_machine==Elf64_Ehdr::EM_PPC64
//ELF2 NYI || this->e_machine==Elf64_Ehdr::EM_AARCH64
) { // main program with ELF2 de-compressor
initLoader(fold, szfold);
char sec[120]; memset(sec, 0, sizeof(sec)); // debug convenience
@ -1719,15 +1719,16 @@ PackLinuxElf64::buildLinuxLoader(
if (xct_off
&& (0
|| this->e_machine==Elf64_Ehdr::EM_X86_64
|| this->e_machine==Elf64_Ehdr::EM_AARCH64
//ELF2 NYI || this->e_machine==Elf64_Ehdr::EM_PPC64
|| this->e_machine==Elf64_Ehdr::EM_AARCH64)
)
) {
addLoader("ELFMAINX,ELFMAINZ,FOLDEXEC,IDENTSTR");
} // shlib
else if (0
|| this->e_machine==Elf64_Ehdr::EM_X86_64
|| this->e_machine==Elf64_Ehdr::EM_AARCH64
//ELF2 NYI || this->e_machine==Elf64_Ehdr::EM_PPC64
//ELF2 NYI || this->e_machine==Elf64_Ehdr::EM_AARCH64
) { // main program with ELF2 de-compressor
addLoader("ELFMAINX,ELFMAINZ,FOLDEXEC,IDENTSTR");
if (this->e_machine==Elf64_Ehdr::EM_PPC64

View File

@ -700,6 +700,8 @@ tc.arm64-linux.elf.gcc = arm64-linux-gcc-4.9.2 -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-expand.gcc = $(tc.arm64-linux.elf.gcc)
tc.arm64-linux.elf-fold.ld = arm64-linux-ld-2.25
tc.arm64-linux.elf-so_fold.ld = arm64-linux-ld-2.25
@ -707,15 +709,16 @@ tc.arm64-linux.elf-entry.objcopy = arm64-linux-objcopy-2.25 -F elf64-littlea
tc.arm64-linux.elf-so_entry.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64
tc.arm64-linux.elf-fold.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64
tc.arm64-linux.elf-so_fold.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64
tc.arm64-linux.elf-main.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64
tc.arm64-linux.elf-main2.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64
tc.arm64-linux.elf-so_main.objcopy = arm64-linux-objcopy-2.25 -F elf64-littleaarch64
tc.arm64-linux.elf-entry.objdump = arm64-linux-objdump-2.25
tc.arm64-linux.elf-so_entry.objdump = arm64-linux-objdump-2.25
tc.arm64-linux.elf-fold.objdump = arm64-linux-objdump-2.25
tc.arm64-linux.elf-so_fold.objdump = arm64-linux-objdump-2.25
tc.arm64-linux.elf-main.objdump = arm64-linux-objdump-2.25
tc.arm64-linux.elf-main2.objdump = arm64-linux-objdump-2.25
tc.arm64-linux.elf-so_main.objdump = arm64-linux-objdump-2.25
tc.arm64-expand.objdump = arm64-linux-objdump-2.25
arm64-linux.elf-entry.h : $(srcdir)/src/$$T.S
$(call tc,gcc) -c $< -o tmp/$T.bin
@ -727,10 +730,13 @@ arm64-linux.elf-so_entry.h: $(srcdir)/src/$$T.S
$(call tc,f-embed_objinfo_without_xstrip,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
arm64-linux.elf-fold.h : $(srcdir)/src/$$T.lds \
tmp/$$T.o \
tmp/arm64-expand.o \
tmp/arm64-linux.elf-main2.o
$(call tc,ld) -r -T $(srcdir)/src/$T.lds -Map tmp/$T.map $(filter %.o,$^) -o tmp/$T.bin
$(call tc,objdump) -Dr $(tc_objdump_disasm_options) tmp/$T.bin | $(RTRIM) > tmp/$T.bin.disasm
$(call tc,f-embed_objinfo_without_xstrip_keep_dot_text,tmp/$T.bin)
$(call tc,bin2h) tmp/$T.bin $@
arm64-linux.elf-so_fold.h : tmp/$$T.o tmp/arm64-linux.elf-so_main.o $(srcdir)/src/$$T.lds tmp/arm64-expand.o
@ -749,8 +755,9 @@ tmp/arm64-linux.elf-so_fold.o : $(srcdir)/src/$$T.S
tmp/arm64-expand.o: $(srcdir)/src/$$T.S
$(call tc,gcc) -c $< -o $@
arm64-linux-objdump-2.25 -Dr $(tc_objdump_disasm_options) tmp/$T.o | $(RTRIM) > tmp/$T.o.disasm
tmp/arm64-linux.elf-main.o : $(srcdir)/src/$$T.c $(srcdir)/src/arm64-linux.elf-main.c
tmp/arm64-linux.elf-main2.o : $(srcdir)/src/$$T.c
$(call tc,gcc) -c -Os $< -o $@
$(call tc,f-objstrip,$@)

View File

@ -33,8 +33,8 @@
/* clang-format off */
#define STUB_AMD64_LINUX_ELF_ENTRY_SIZE 1105
#define STUB_AMD64_LINUX_ELF_ENTRY_ADLER32 0xbd0f3bb4
#define STUB_AMD64_LINUX_ELF_ENTRY_CRC32 0x69ac5629
#define STUB_AMD64_LINUX_ELF_ENTRY_ADLER32 0xb7253bb2
#define STUB_AMD64_LINUX_ELF_ENTRY_CRC32 0x1881def8
unsigned char stub_amd64_linux_elf_entry[1105] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
@ -58,7 +58,7 @@ unsigned char stub_amd64_linux_elf_entry[1105] = {
/* 0x0120 */ 141, 52, 47,243,164, 94,235,180, 93, 89, 72, 57,206,116, 1,244,
/* 0x0130 */ 72,139, 69, 48, 72,137, 4, 36, 72,139, 85, 32, 72,131,234, 16,
/* 0x0140 */ 84, 94, 76,137,231,106, 1, 88,232, 60, 0, 0, 0, 85, 92, 69,
/* 0x0150 */ 41,201, 77,137,224,106, 1, 65, 90, 82, 94,106, 7, 90, 41,255,
/* 0x0150 */ 41,201, 77,137,224,106, 1, 65, 90, 82, 94,106, 5, 90, 41,255,
/* 0x0160 */ 106, 9, 88,232, 33, 0, 0, 0, 80, 72,137, 69, 24, 65, 80, 95,
/* 0x0170 */ 106, 3, 88, 15, 5, 88, 72,131,192, 8,255,224, 72,139, 7, 72,
/* 0x0180 */ 131,199, 8, 72,133,192,117,244,195, 80, 15, 5, 89, 72, 61, 0,

View File

@ -1,5 +1,5 @@
/* arm64-linux.elf-entry.h
created from arm64-linux.elf-entry.bin, 7405 (0x1ced) bytes
created from arm64-linux.elf-entry.bin, 1646 (0x66e) bytes
This file is part of the UPX executable compressor.
@ -32,472 +32,112 @@
/* clang-format off */
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 7405
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0xbcad6a23
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x4f61097f
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 1646
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x3bf2c3a4
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x88b67ee4
unsigned char stub_arm64_linux_elf_entry[7405] = {
unsigned char stub_arm64_linux_elf_entry[1646] = {
/* 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, 24, 24, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 80, 4, 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,224, 7,191,169,211,255,255, 24, 0, 0, 0,148,
/* 0x0050 */ 254, 15, 31,248,226, 15,191,169, 7, 64, 33,139, 5, 0,128, 18,
/* 0x0060 */ 4, 0,176, 82, 45, 0, 0, 20,227, 19,193,168, 0, 0, 7,203,
/* 0x0070 */ 66, 0, 3,203,130, 0, 0,185,229, 3, 0,170,224, 3, 3,170,
/* 0x0080 */ 97, 0, 2,139, 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,
/* 0x0090 */ 100, 0,128,146,132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,
/* 0x00a0 */ 162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,
/* 0x00b0 */ 168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146,
/* 0x00c0 */ 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,
/* 0x00d0 */ 169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,
/* 0x00e0 */ 168,255,255, 84,159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,
/* 0x00f0 */ 254, 7, 65,248,192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,
/* 0x0100 */ 192, 3, 95,214, 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214,
/* 0x0110 */ 3, 20, 64, 56, 67, 20, 0, 56,248,255,255,151,162,255,255, 84,
/* 0x0120 */ 33, 0,128, 82, 4, 0, 0, 20, 33, 4, 0, 81,243,255,255,151,
/* 0x0130 */ 33, 0, 1, 26,241,255,255,151, 33, 0, 1, 26,239,255,255,151,
/* 0x0140 */ 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84,
/* 0x0150 */ 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,101,248,255, 52,
/* 0x0160 */ 191, 0, 0,114,165,124, 1, 19,161, 1, 0, 84, 3, 0, 0, 20,
/* 0x0170 */ 226,255,255,151, 66, 1, 0, 84, 33, 0,128, 82,223,255,255,151,
/* 0x0180 */ 226, 0, 0, 84,221,255,255,151, 33, 0, 1, 26,219,255,255,151,
/* 0x0190 */ 163,255,255, 84, 33, 16, 0, 17, 4, 0, 0, 20,215,255,255,151,
/* 0x01a0 */ 33, 0, 1, 26, 33, 8, 0, 17,191, 0, 20, 49, 33, 36,129, 26,
/* 0x01b0 */ 67, 64, 33,139, 99,240, 95, 56, 67,200,101, 56, 67, 20, 0, 56,
/* 0x01c0 */ 33, 4, 0,113,161,255,255, 84,212,255,255, 23,226, 15,190,169,
/* 0x01d0 */ 254, 11, 0,249, 7, 64, 33,139, 5, 0,128, 18, 4, 0,176, 82,
/* 0x01e0 */ 45, 0, 0, 20,227, 19,193,168, 0, 0, 7,203, 66, 0, 3,203,
/* 0x01f0 */ 130, 0, 0,185,229, 3, 0,170,224, 3, 3,170, 97, 0, 2,139,
/* 0x0200 */ 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,100, 0,128,146,
/* 0x0210 */ 132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,162, 0, 0, 84,
/* 0x0220 */ 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,168,255,255, 84,
/* 0x0230 */ 159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146, 98, 0,128,146,
/* 0x0240 */ 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,169, 0, 0, 84,
/* 0x0250 */ 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,168,255,255, 84,
/* 0x0260 */ 159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,254, 7, 65,248,
/* 0x0270 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214,
/* 0x0280 */ 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, 3, 20, 64, 56,
/* 0x0290 */ 67, 20, 0, 56,248,255,255,151,162,255,255, 84, 33, 0,128, 82,
/* 0x02a0 */ 4, 0, 0, 20, 33, 4, 0, 81,243,255,255,151, 33, 0, 1, 58,
/* 0x02b0 */ 241,255,255,151, 33, 0, 1, 58,239,255,255,151, 67,255,255, 84,
/* 0x02c0 */ 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84, 5, 20, 64, 56,
/* 0x02d0 */ 165, 32, 3, 42,229, 3, 37, 42,101,248,255, 52,163, 0, 1, 83,
/* 0x02e0 */ 165,124, 1, 19, 99, 0, 3, 43, 2, 0, 0, 20,226,255,255,151,
/* 0x02f0 */ 33, 0, 1, 58,224,255,255,151, 33, 0, 1, 58,225, 0, 0, 84,
/* 0x0300 */ 33, 0,128, 82,220,255,255,151, 33, 0, 1, 58,218,255,255,151,
/* 0x0310 */ 163,255,255, 84, 33, 8, 0, 17, 33, 4, 0, 17,191, 0, 20, 49,
/* 0x0320 */ 33, 36,129, 26, 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56,
/* 0x0330 */ 33, 4, 0,113,161,255,255, 84,215,255,255, 23, 1, 64, 33,139,
/* 0x0340 */ 225, 11,190,169,227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82,
/* 0x0350 */ 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, 0, 0, 1,203,
/* 0x0360 */ 66, 0, 3,203,130, 0, 0,185,229, 3, 0,170,224, 3, 3,170,
/* 0x0370 */ 97, 0, 2,139, 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,
/* 0x0380 */ 100, 0,128,146,132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,
/* 0x0390 */ 162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,
/* 0x03a0 */ 168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146,
/* 0x03b0 */ 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,
/* 0x03c0 */ 169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,
/* 0x03d0 */ 168,255,255, 84,159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,
/* 0x03e0 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214,
/* 0x03f0 */ 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, 33, 0,128, 82,
/* 0x0400 */ 240, 3, 30,170,248,255,255,151, 33, 0, 1, 58,246,255,255,151,
/* 0x0410 */ 163,255,255, 84, 0, 2, 31,214, 3, 20, 64, 56, 67, 20, 0, 56,
/* 0x0420 */ 241,255,255,151,162,255,255, 84,245,255,255,151, 35, 12, 0,113,
/* 0x0430 */ 1, 0,128, 82,163, 0, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,
/* 0x0440 */ 229, 3, 37, 42,133,248,255, 52,231,255,255,151, 33, 0, 1, 58,
/* 0x0450 */ 229,255,255,151, 33, 0, 1, 58, 97, 0, 0, 84,232,255,255,151,
/* 0x0460 */ 33, 8, 0, 17,191, 0, 52, 49, 33, 36,129, 26, 67,200,101, 56,
/* 0x0470 */ 33, 4, 0,113, 67, 20, 0, 56,162,255,255, 84,233,255,255, 23,
/* 0x0480 */ 159, 56, 0,113, 1, 0, 0, 84,226, 15,190,169,253,123, 1,169,
/* 0x0490 */ 253, 3, 0,145, 8, 0, 64, 57, 7,192,128, 82, 8,125, 3, 83,
/* 0x04a0 */ 231, 32,200, 26,231,192, 57, 17,232, 3, 0,145,255, 67, 39,203,
/* 0x04b0 */ 228, 3, 0,145,159,124,129,168,159, 0, 8,235,195,255,255, 84,
/* 0x04c0 */ 255,127,191,169,230, 3, 3,170,197, 0, 64,185,228, 3, 2,170,
/* 0x04d0 */ 227, 35, 0,145, 34, 8, 0, 81,225, 3, 0,170,224, 3, 0,145,
/* 0x04e0 */ 39, 20, 64, 56,231, 8, 0, 18, 7, 8, 0, 57, 39, 20, 64, 56,
/* 0x04f0 */ 232,124, 4, 83, 8, 4, 0, 57,231, 12, 0, 18, 7, 0, 0, 57,
/* 0x0500 */ 35, 0, 0,148,191, 3, 0,145,229, 3, 0,170,253,123, 65,169,
/* 0x0510 */ 224, 7,194,168, 33, 0, 64,249, 33, 0, 0,139, 35, 0, 59,213,
/* 0x0520 */ 99, 1,224, 55, 98, 76, 80,211,100, 0,128,146,132, 32,194,154,
/* 0x0530 */ 2, 0, 4,138, 95, 0, 1,235,162, 0, 0, 84, 34,123, 11,213,
/* 0x0540 */ 66, 0, 4,203, 63, 0, 2,235,168,255,255, 84,159, 59, 3,213,
/* 0x0550 */ 99, 1,232, 55, 99, 12, 64,146, 98, 0,128,146, 66, 32,195,154,
/* 0x0560 */ 0, 0, 2,138, 63, 0, 0,235,169, 0, 0, 84, 32,117, 11,213,
/* 0x0570 */ 0, 0, 2,203, 63, 0, 0,235,168,255,255, 84,159, 59, 3,213,
/* 0x0580 */ 223, 63, 3,213,224, 3, 5,170,192, 3, 95,214,255, 67, 1,209,
/* 0x0590 */ 39, 0,128, 82, 17, 16, 0,145, 9,128,128, 82,243, 83, 0,169,
/* 0x05a0 */ 245, 91, 1,169,247, 99, 2,169,249,107, 3,169,251,115, 4,169,
/* 0x05b0 */ 20, 8, 64, 57, 19, 4, 64, 57, 22, 0, 64, 57,244, 32,212, 26,
/* 0x05c0 */ 127, 0, 0,185,243, 32,211, 26,223, 0, 0,185, 7, 0,128,210,
/* 0x05d0 */ 148, 6, 0, 81, 8, 4, 64, 57, 10, 1, 22, 11,104, 6, 0, 81,
/* 0x05e0 */ 18, 1, 39, 30, 8, 96,128, 82, 8, 33,202, 26, 8,217, 28, 49,
/* 0x05f0 */ 160, 0, 0, 84, 41,122, 39,120,231, 4, 0,145, 31, 1, 7,107,
/* 0x0600 */ 168,255,255, 84, 34, 64, 34,139, 63, 0, 2,235, 64, 16, 0, 84,
/* 0x0610 */ 235, 3, 1,170, 40, 4, 0,145,103, 85, 64, 56, 31, 1, 2,235,
/* 0x0620 */ 160, 15, 0, 84, 9, 21, 64, 56, 31, 1, 11,235, 39, 33, 7, 42,
/* 0x0630 */ 97,255,255, 84,229, 69, 0, 52, 8, 1,128, 82, 53, 0,128, 82,
/* 0x0640 */ 18, 0,128, 82, 9, 0,128, 18, 20, 1, 39, 30,104, 0,128, 82,
/* 0x0650 */ 177, 2, 39, 30,247, 3, 21, 42, 7, 1, 39, 30, 8, 86,128,210,
/* 0x0660 */ 165, 2, 39, 30,252, 3, 21, 42, 3, 1,103,158,104, 1,128, 82,
/* 0x0670 */ 234, 3, 18, 42,240, 3, 18, 42, 0, 1, 39, 30, 8,176, 41,145,
/* 0x0680 */ 14,224,191, 18, 15, 0,129, 82, 1, 1,103,158, 40, 1,128, 82,
/* 0x0690 */ 2, 1, 39, 30,136, 2, 38, 30, 8, 1, 22, 75, 16, 1, 39, 30,
/* 0x06a0 */ 72,110, 28, 83, 63, 1, 14,107, 25, 2, 20, 10, 13,125, 64,147,
/* 0x06b0 */ 173,193, 57,139,173,249,127,211,232, 0, 0, 84,127, 1, 2,235,
/* 0x06c0 */ 160, 10, 0, 84,104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145,
/* 0x06d0 */ 7, 33, 7, 42, 59,106,109,120, 40,125, 11, 83, 8,125, 27, 27,
/* 0x06e0 */ 255, 0, 8,107,130, 10, 0, 84, 73, 2, 38, 30, 19, 62, 1, 14,
/* 0x06f0 */ 95, 26, 0,113, 12, 2, 9, 10, 73, 41,211, 26,140, 33,214, 26,
/* 0x0700 */ 234, 1, 27, 75, 41, 1, 12, 11,106, 23,138, 11, 42,106, 45,120,
/* 0x0710 */ 41, 5, 9, 11, 41, 93,120,211, 41,217, 28,145, 58, 6, 9,139,
/* 0x0720 */ 109, 31, 0, 84, 10, 2, 28, 75, 41, 0,128, 82,153,104,106, 56,
/* 0x0730 */ 7, 0, 0, 20, 91,107, 42,120, 41,121, 31, 83,232, 3, 13, 42,
/* 0x0740 */ 83, 57, 0, 53, 63,253, 3,113,236, 3, 0, 84, 57,123, 31, 83,
/* 0x0750 */ 31, 1, 14,107, 51, 3, 24, 18, 56,121, 31, 83,106,126, 64,147,
/* 0x0760 */ 74, 1, 4,145, 74,193, 41,139, 74,249,127,211,232, 0, 0, 84,
/* 0x0770 */ 127, 1, 2,235, 8, 93, 24, 83,224, 4, 0, 84,108, 1, 64, 57,
/* 0x0780 */ 107, 5, 0,145,135, 33, 7, 42, 76,107,106,120, 13,125, 11, 83,
/* 0x0790 */ 251, 1, 12, 75,173,125, 12, 27,155, 21,155, 11,140, 21, 76, 75,
/* 0x07a0 */ 255, 0, 13,107, 8, 1, 13, 75, 99,252,255, 84, 76,107, 42,120,
/* 0x07b0 */ 9, 7, 0, 17,231, 0, 13, 75,115,252,255, 53, 63,253, 3,113,
/* 0x07c0 */ 77, 27, 0, 84, 42, 29, 0, 83,233, 3, 8, 42,138, 72, 48, 56,
/* 0x07d0 */ 16, 6, 0, 17, 95, 38, 0,113,236, 49, 0, 84, 82, 14, 0, 81,
/* 0x07e0 */ 191, 0, 16,107,232,245,255, 84, 0,224,191, 18, 63, 1, 0,107,
/* 0x07f0 */ 136, 0, 0, 84,127, 1, 2,235,224, 0, 0, 84,107, 5, 0,145,
/* 0x0800 */ 97, 1, 1,203, 97, 0, 0,185,208, 0, 0,185, 0, 0,128, 82,
/* 0x0810 */ 2, 0, 0, 20, 32, 0,128, 82,243, 83, 64,169,245, 91, 65,169,
/* 0x0820 */ 247, 99, 66,169,249,107, 67,169,251,115, 68,169,255, 67, 1,145,
/* 0x0830 */ 192, 3, 95,214, 58, 1, 8, 75, 74,126, 64,147,105, 23, 91, 75,
/* 0x0840 */ 95, 3, 14,107, 41,106, 45,120, 76, 1, 3,145,231, 0, 8, 75,
/* 0x0850 */ 140,249,127,211,232, 0, 0, 84,127, 1, 2,235,192,253,255, 84,
/* 0x0860 */ 104, 1, 64, 57, 90, 95, 24, 83,107, 5, 0,145, 7, 33, 7, 42,
/* 0x0870 */ 40,106,108,120, 74,127, 11, 83, 74,125, 8, 27,255, 0, 10,107,
/* 0x0880 */ 130, 25, 0, 84,237, 0, 38, 30,233, 1, 8, 75, 95, 30, 0,113,
/* 0x0890 */ 53, 2, 38, 30, 8, 21,137, 11,241, 2, 39, 30, 40,106, 44,120,
/* 0x08a0 */ 242,179,141, 26, 12,160, 25,145,247, 3, 28, 42, 95, 1, 14,107,
/* 0x08b0 */ 232, 0, 0, 84,127, 1, 2,235,224,250,255, 84,104, 1, 64, 57,
/* 0x08c0 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,141, 1, 64,121,
/* 0x08d0 */ 73,125, 11, 83, 41,125, 13, 27,255, 0, 9,107, 98, 31, 0, 84,
/* 0x08e0 */ 40,115, 29, 83,115, 0,128, 82,234, 1, 13, 75, 8,125, 64,147,
/* 0x08f0 */ 8, 9, 0,145,173, 21,138, 11,228, 3, 39, 30,141, 1, 0,121,
/* 0x0900 */ 102, 2, 39, 30,153, 5, 8,139,218, 0, 38, 30, 44, 0,128, 82,
/* 0x0910 */ 6, 0, 0, 20, 13, 3, 0,121, 90, 7, 0,113,140,121, 31, 83,
/* 0x0920 */ 233, 3, 8, 42, 32, 3, 0, 84, 63, 1, 14,107,147,121, 31, 83,
/* 0x0930 */ 56,199, 44,139,232, 0, 0, 84,127, 1, 2,235, 41, 93, 24, 83,
/* 0x0940 */ 160,246,255, 84,104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,
/* 0x0950 */ 8, 3, 64,121, 42,125, 11, 83,237, 1, 8, 75, 27, 21, 72, 75,
/* 0x0960 */ 13, 21,141, 11, 72,125, 8, 27,255, 0, 8,107, 41, 1, 8, 75,
/* 0x0970 */ 35,253,255, 84, 27, 3, 0,121, 90, 7, 0,113,231, 0, 8, 75,
/* 0x0980 */ 108, 6, 0, 17, 33,253,255, 84,166, 68,166, 46,138, 0, 38, 30,
/* 0x0990 */ 95, 14, 0,113,200, 0, 38, 30, 72, 1, 8, 75, 8, 1, 12, 11,
/* 0x09a0 */ 6, 1, 39, 30,236, 22, 0, 84,234, 0, 38, 30, 31, 13, 0,113,
/* 0x09b0 */ 220, 0,128, 82, 10,209,138, 26, 40, 0,128, 82, 74,101, 26, 83,
/* 0x09c0 */ 74,125, 64,147, 74,193, 6,145, 91,249,127,211, 6, 0, 0, 20,
/* 0x09d0 */ 44,106, 57,120,156, 7, 0,113, 8,121, 31, 83,233, 3, 10, 42,
/* 0x09e0 */ 32, 3, 0, 84, 63, 1, 14,107, 19,121, 31, 83,121,199, 40,139,
/* 0x09f0 */ 232, 0, 0, 84,127, 1, 2,235, 41, 93, 24, 83,192,240,255, 84,
/* 0x0a00 */ 106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42, 42,106,121,120,
/* 0x0a10 */ 45,125, 11, 83,236, 1, 10, 75, 90, 21, 74, 75, 76, 21,140, 11,
/* 0x0a20 */ 170,125, 10, 27,255, 0, 10,107, 41, 1, 10, 75, 35,253,255, 84,
/* 0x0a30 */ 58,106, 57,120,156, 7, 0,113,231, 0, 10, 75,104, 6, 0, 17,
/* 0x0a40 */ 33,253,255, 84, 10, 1, 1, 81, 95, 13, 0,113, 45, 17, 0, 84,
/* 0x0a50 */ 95, 53, 0,113, 72, 1, 0, 18, 77,125, 1, 19, 12, 1, 31, 50,
/* 0x0a60 */ 140, 32, 0, 84,104, 0,102,158,187, 5, 0, 81,152, 33,219, 26,
/* 0x0a70 */ 8,193, 42,203, 8, 65, 56,139, 40, 6, 8,139, 8, 9, 0,209,
/* 0x0a80 */ 19, 1,103,158, 40, 0,128, 82,252, 3, 8, 42, 7, 0, 0, 20,
/* 0x0a90 */ 83, 3, 0,121, 8,121, 31, 83,233, 3, 10, 42,123, 7, 0,113,
/* 0x0aa0 */ 156,123, 31, 83,128, 14, 0, 84,106, 2,102,158, 63, 1, 14,107,
/* 0x0ab0 */ 25,121, 31, 83, 90,197, 40,139,232, 0, 0, 84,127, 1, 2,235,
/* 0x0ac0 */ 41, 93, 24, 83,128,234,255, 84,106, 1, 64, 57,107, 5, 0,145,
/* 0x0ad0 */ 71, 33, 7, 42, 74, 3, 64,121, 45,125, 11, 83,243, 1, 10, 75,
/* 0x0ae0 */ 76, 21, 74, 75, 83, 21,147, 11,170,125, 10, 27,255, 0, 10,107,
/* 0x0af0 */ 41, 1, 10, 75,227,252,255, 84, 76, 3, 0,121, 24, 3, 28, 42,
/* 0x0b00 */ 231, 0, 10, 75, 40, 7, 0, 17,229,255,255, 23, 41, 0,128, 82,
/* 0x0b10 */ 6, 0, 0, 20, 41,121, 31, 83, 74,107, 56,120, 63,253, 3,113,
/* 0x0b20 */ 232, 3, 12, 42, 44, 3, 0, 84, 31, 1, 14,107, 51,121, 31, 83,
/* 0x0b30 */ 56,125,127,147,232, 0, 0, 84,127, 1, 2,235, 8, 93, 24, 83,
/* 0x0b40 */ 160,230,255, 84,106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42,
/* 0x0b50 */ 74,107,120,120, 12,125, 11, 83,237, 1, 10, 75,140,125, 10, 27,
/* 0x0b60 */ 89, 21, 74, 75, 74, 21,141, 11,255, 0, 12,107, 8, 1, 12, 75,
/* 0x0b70 */ 35,253,255, 84,105, 6, 0, 17, 89,107, 56,120, 63,253, 3,113,
/* 0x0b80 */ 231, 0, 12, 75, 45,253,255, 84, 42, 29, 0, 83, 95, 14, 0,113,
/* 0x0b90 */ 138, 72, 48, 56,233, 3, 8, 42, 16, 6, 0, 17,204,225,255, 84,
/* 0x0ba0 */ 191, 0, 16,107, 18, 0,128, 82,200,215,255, 84, 15,255,255, 23,
/* 0x0bb0 */ 73, 3, 10, 75, 8, 21, 72, 75, 63, 1, 14,107, 40,106, 44,120,
/* 0x0bc0 */ 231, 0, 10, 75,154, 97, 0,145,232, 0, 0, 84,127, 1, 2,235,
/* 0x0bd0 */ 32,226,255, 84,104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145,
/* 0x0be0 */ 7, 33, 7, 42, 40,106,122,120, 42,125, 11, 83, 74,125, 8, 27,
/* 0x0bf0 */ 255, 0, 10,107, 66, 10, 0, 84,233, 1, 8, 75, 95, 1, 14,107,
/* 0x0c00 */ 173,129, 7,145, 8, 21,137, 11, 40,106, 58,120,232, 0, 0, 84,
/* 0x0c10 */ 127, 1, 2,235, 0,224,255, 84,104, 1, 64, 57, 74, 93, 24, 83,
/* 0x0c20 */ 107, 5, 0,145, 7, 33, 7, 42, 40,106,109,120, 73,125, 11, 83,
/* 0x0c30 */ 41,125, 8, 27,255, 0, 9,107,226, 16, 0, 84,234, 1, 8, 75,
/* 0x0c40 */ 8, 21,138, 11, 40,106, 45,120,112,222,255, 52, 74, 0, 38, 30,
/* 0x0c50 */ 8, 2, 28, 75, 12, 0, 38, 30, 95, 30, 0,113, 82,177,140, 26,
/* 0x0c60 */ 138,104,104, 56,138, 72, 48, 56, 16, 6, 0, 17,221,254,255, 23,
/* 0x0c70 */ 248, 3, 10, 42, 28, 7, 0, 49,128,219,255, 84, 82, 30, 0, 17,
/* 0x0c80 */ 200, 0, 38, 30,159, 3, 16,107, 12, 9, 0, 17, 72,220,255, 84,
/* 0x0c90 */ 232, 3, 16, 42, 2, 0, 0, 20, 76,218,255, 52, 10, 2, 28, 75,
/* 0x0ca0 */ 16, 6, 0, 17, 31, 2, 5,107,140, 5, 0, 81,138,104,106, 56,
/* 0x0cb0 */ 138, 72, 40, 56,232, 3, 16, 42, 3,255,255, 84,191, 0, 16,107,
/* 0x0cc0 */ 8,207,255, 84,201,254,255, 23, 74, 1, 9, 75,173, 21, 77, 75,
/* 0x0cd0 */ 95, 1, 14,107,141, 1, 0,121,231, 0, 9, 75,232, 0, 0, 84,
/* 0x0ce0 */ 127, 1, 2,235,128,217,255, 84,104, 1, 64, 57, 74, 93, 24, 83,
/* 0x0cf0 */ 107, 5, 0,145, 7, 33, 7, 42,141, 5, 64,121, 73,125, 11, 83,
/* 0x0d00 */ 41,125, 13, 27,255, 0, 9,107, 34, 7, 0, 84, 40,115, 29, 83,
/* 0x0d10 */ 19, 1,128, 82,234, 1, 13, 75, 8,125, 64,147,100, 2, 39, 30,
/* 0x0d20 */ 8, 9, 2,145,115, 0,128, 82,173, 21,138, 11,153, 5, 8,139,
/* 0x0d30 */ 141, 5, 0,121,102, 2, 39, 30,244,254,255, 23, 41, 1, 10, 75,
/* 0x0d40 */ 8, 21, 72, 75, 63, 1, 14,107, 40,106, 58,120,231, 0, 10, 75,
/* 0x0d50 */ 154,193, 0,145,232, 0, 0, 84,127, 1, 2,235,192,213,255, 84,
/* 0x0d60 */ 104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,
/* 0x0d70 */ 45,106,122,120, 40,125, 11, 83, 10,125, 13, 27,255, 0, 10,107,
/* 0x0d80 */ 35, 5, 0, 84, 41, 1, 10, 75,173, 21, 77, 75, 63, 1, 14,107,
/* 0x0d90 */ 45,106, 58,120,231, 0, 10, 75,140, 33, 1,145,232, 0, 0, 84,
/* 0x0da0 */ 127, 1, 2,235,128,211,255, 84,104, 1, 64, 57, 41, 93, 24, 83,
/* 0x0db0 */ 107, 5, 0,145, 7, 33, 7, 42, 45,106,108,120, 40,125, 11, 83,
/* 0x0dc0 */ 10,125, 13, 27,255, 0, 10,107, 2, 8, 0, 84,232, 1, 13, 75,
/* 0x0dd0 */ 233, 3, 28, 42, 60, 2, 38, 30,173, 21,136, 11, 45,106, 44,120,
/* 0x0de0 */ 241, 2, 39, 30,247, 3, 9, 42, 21, 0, 0, 20, 8, 2,128, 82,
/* 0x0df0 */ 231, 0, 9, 75,173, 21, 77, 75,153, 17, 8,145, 4, 1, 39, 30,
/* 0x0e00 */ 8, 1,128, 82,141, 5, 0,121, 73, 1, 9, 75, 6, 1, 39, 30,
/* 0x0e10 */ 190,254,255, 23,191, 0, 16,107, 82, 26, 0, 81, 40,196,255, 84,
/* 0x0e20 */ 114,254,255, 23,232, 1, 13, 75,233, 3, 28, 42,252, 3, 23, 42,
/* 0x0e30 */ 247, 3, 9, 42,173, 21,136, 11, 45,106, 58,120,136, 2, 38, 30,
/* 0x0e40 */ 95, 30, 0,113, 9, 0, 38, 30, 44, 0,102,158, 18,177,137, 26,
/* 0x0e50 */ 151,254,255, 23, 8, 21, 72, 75, 74, 1, 9, 75,231, 0, 9, 75,
/* 0x0e60 */ 40,106, 45,120,246,255,255, 23,232, 3, 13, 42, 84,254,255, 23,
/* 0x0e70 */ 170, 21, 0, 81, 63, 1, 14,107,140,121, 31, 83,232, 0, 0, 84,
/* 0x0e80 */ 127, 1, 2,235, 41, 93, 24, 83, 96,204,255, 84,104, 1, 64, 57,
/* 0x0e90 */ 107, 5, 0,145, 7, 33, 7, 42, 41,125, 1, 83,255, 0, 9,107,
/* 0x0ea0 */ 99, 0, 0, 84,231, 0, 9, 75,140, 1, 0, 50, 74, 5, 0,113,
/* 0x0eb0 */ 33,254,255, 84, 8, 32, 25,145,152,109, 28, 83,155, 0,128, 82,
/* 0x0ec0 */ 19, 1,103,158,240,254,255, 23,232, 3, 28, 42,231, 0, 10, 75,
/* 0x0ed0 */ 173, 21, 77, 75,252, 3, 21, 42, 45,106, 44,120, 42, 1, 10, 75,
/* 0x0ee0 */ 53, 2, 38, 30,241, 2, 39, 30,247, 3, 8, 42,212,255,255, 23,
/* 0x0ef0 */ 240, 3, 5, 42,227, 19,189,169,229, 27, 1,169,254, 19, 0,249,
/* 0x0f00 */ 232, 3, 1,170, 45, 64, 34,139,233, 3, 4,170,142, 64, 37,139,
/* 0x0f10 */ 11, 16, 0,145, 6, 0, 64, 57, 5, 4, 64, 57, 4, 8, 64, 57,
/* 0x0f20 */ 174, 0, 6, 11, 7, 0,128, 18,229, 32,197, 26,229, 3, 37, 42,
/* 0x0f30 */ 228, 32,196, 26,228, 3, 36, 42, 35, 0,128, 82, 34, 0,128, 82,
/* 0x0f40 */ 33, 0,128, 82, 32, 0,128, 82, 6, 0,128, 82,230, 31, 0,185,
/* 0x0f50 */ 2, 96,128, 82,192,230,128, 82, 66, 32,206, 26, 66, 0, 0, 11,
/* 0x0f60 */ 0,128,128,210,225, 3, 11,170, 0, 64, 0,170, 0,128, 0,170,
/* 0x0f70 */ 32,132, 0,248, 66, 16, 0,113,204,255,255, 84, 0, 21, 0,145,
/* 0x0f80 */ 232, 0, 0,148, 31, 0, 8,235,193,255,255, 84,227, 67, 66,248,
/* 0x0f90 */ 226, 19, 64,185, 36, 1, 3,203,128, 0, 2, 10,224, 47, 0,185,
/* 0x0fa0 */ 0, 16, 6, 11, 97, 1, 0,145,226, 0, 0,148,161, 5, 0, 84,
/* 0x0fb0 */ 227, 23, 64,185,226, 27, 64,185, 99, 0, 4, 10,224,115, 64, 57,
/* 0x0fc0 */ 99, 32,194, 26,226, 3, 2, 75, 66, 32, 0, 17, 2, 36,194, 26,
/* 0x0fd0 */ 99, 0, 2, 11,106,177, 57,145, 99, 4, 3, 11,227, 3, 3, 42,
/* 0x0fe0 */ 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113, 35, 2, 0, 84,
/* 0x0ff0 */ 227,125, 64,147,227, 3, 3,203, 37,105, 99, 56,165,120, 31, 83,
/* 0x1000 */ 65, 1, 8,145,164, 0, 24, 18,227, 3, 4, 42, 33, 4, 3,139,
/* 0x1010 */ 202, 0, 0,148, 3, 0, 0, 18,130,124, 8, 83,127, 0, 2,107,
/* 0x1020 */ 193, 0, 0, 84, 31, 0, 4,113,163,254,255, 84, 5, 0, 0, 20,
/* 0x1030 */ 225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113,163,255,255, 84,
/* 0x1040 */ 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26,
/* 0x1050 */ 223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20,
/* 0x1060 */ 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185,
/* 0x1070 */ 226, 7, 64,185,227, 15, 0,185,226, 11, 0,185,239, 7, 0,185,
/* 0x1080 */ 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82,102, 48,134, 26,
/* 0x1090 */ 106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148,
/* 0x10a0 */ 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11,
/* 0x10b0 */ 160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113,
/* 0x10c0 */ 102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203,
/* 0x10d0 */ 159, 0, 15,107,131, 17, 0, 84,227,125, 64,147,227, 3, 3,203,
/* 0x10e0 */ 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145,
/* 0x10f0 */ 143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145,
/* 0x1100 */ 139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185,
/* 0x1110 */ 228, 15, 64,185,227, 15, 0,185,227, 7, 64,185,227, 11, 0,185,
/* 0x1120 */ 239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113,
/* 0x1130 */ 102, 1,128, 82,102, 48,134, 26,106,161, 41,145, 65, 1, 0,145,
/* 0x1140 */ 125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145,
/* 0x1150 */ 227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82,
/* 0x1160 */ 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84,
/* 0x1170 */ 227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82,
/* 0x1180 */ 165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145,
/* 0x1190 */ 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82,
/* 0x11a0 */ 225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107,163,255,255, 84,
/* 0x11b0 */ 229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113,
/* 0x11c0 */ 194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113,
/* 0x11d0 */ 101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139,165,128, 13,145,
/* 0x11e0 */ 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148,
/* 0x11f0 */ 3, 0, 4,107,163,255,255, 84,227, 47, 0,185,127, 16, 0,113,
/* 0x1200 */ 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18,
/* 0x1210 */ 239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26,
/* 0x1220 */ 106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139,
/* 0x1230 */ 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83,
/* 0x1240 */ 131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113,
/* 0x1250 */ 65,255,255, 84,106, 17, 25,145,239,109, 28, 83,132, 0,128, 82,
/* 0x1260 */ 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148,
/* 0x1270 */ 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83,
/* 0x1280 */ 132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185,
/* 0x1290 */ 239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17,
/* 0x12a0 */ 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84,227,125, 64,147,
/* 0x12b0 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235,
/* 0x12c0 */ 194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84,224,115, 0, 57,
/* 0x12d0 */ 63, 1, 14,235,195,229,255, 84, 13, 0, 0,148, 0, 0,128, 82,
/* 0x12e0 */ 226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185,
/* 0x12f0 */ 226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185,
/* 0x1300 */ 255,243, 0,145, 32, 0,128, 82,246,255,255, 23,227,124, 24, 83,
/* 0x1310 */ 195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84,
/* 0x1320 */ 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42,
/* 0x1330 */ 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83,
/* 0x1340 */ 241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121,
/* 0x1350 */ 226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84,
/* 0x1360 */ 231, 3, 2, 42, 2, 0,129, 82, 66, 0, 3, 75, 0, 0, 0, 58,
/* 0x1370 */ 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75,
/* 0x1380 */ 231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121,
/* 0x1390 */ 32, 2, 95,214,194, 3,128, 82,225, 0, 0, 16, 64, 0,128, 82,
/* 0x13a0 */ 8, 8,128, 82, 1, 0, 0,212,224, 15,128, 82,168, 11,128, 82,
/* 0x13b0 */ 1, 0, 0,212, 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82,
/* 0x13c0 */ 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46,
/* 0x13d0 */ 10, 0, 0, 0, 5, 0,128,210, 98, 0,128, 82,200, 27,128, 82,
/* 0x13e0 */ 1, 0, 0,212,192, 3, 95,214,244, 3, 30,170, 0,195, 94,184,
/* 0x13f0 */ 25, 83, 0,209, 57, 3, 0,203,129, 6, 64,185, 4, 0,128, 18,
/* 0x1400 */ 67, 4,128, 82, 0, 0,128,210,243,255,255,151,224, 7,191,169,
/* 0x1410 */ 250,111,191,169,251, 3, 0,170,226, 3, 0,170,225, 15, 31,248,
/* 0x1420 */ 227, 3, 0,145,128, 66, 0,145,129, 10, 64,185,132, 50, 64, 57,
/* 0x1430 */ 0, 3, 63,214,232, 7, 65,248,122, 3, 0,249,115, 19, 0,185,
/* 0x1440 */ 162, 0,128, 82,225, 27, 64,185,224, 3, 27,170, 72, 28,128, 82,
/* 0x1450 */ 1, 0, 0,212,128, 2, 64,185, 0,116, 30, 18, 29,195, 94,184,
/* 0x1460 */ 60, 3, 0,139, 96, 83, 0,145, 0, 0, 31,214, 1,132, 64,248,
/* 0x1470 */ 225,255,255,181,192, 3, 95,214,248, 3, 30,170,224, 99, 0,145,
/* 0x1480 */ 251,255,255,151,250,255,255,151,246, 3, 0,170, 1, 8,193,168,
/* 0x1490 */ 63, 24, 0,113, 96, 0, 0, 84,161,255,255, 53, 34, 0,160,210,
/* 0x14a0 */ 250, 3, 2,203, 27, 0,128, 18,208,255,255,151, 0, 0, 0, 0,
/* 0x14b0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54,
/* 0x14c0 */ 52, 45,108,105,116,116,108,101, 97, 97,114, 99,104, 54, 52, 10,
/* 0x14d0 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78,
/* 0x14e0 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,
/* 0x14f0 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32,
/* 0x1500 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32,
/* 0x1510 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,
/* 0x1520 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115,
/* 0x1530 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32,
/* 0x1540 */ 32, 32, 32, 48, 49, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52,
/* 0x1550 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1560 */ 83, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32,
/* 0x1570 */ 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 48,
/* 0x1580 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x1590 */ 10, 32, 32, 50, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32,
/* 0x15a0 */ 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 48, 32,
/* 0x15b0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
/* 0x15c0 */ 32, 32, 51, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32,
/* 0x15d0 */ 32, 32, 48, 49, 55, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53,
/* 0x15e0 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x15f0 */ 83, 10, 32, 32, 52, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32,
/* 0x1600 */ 32, 32, 32, 32, 48, 49, 55, 48, 32, 32, 48, 32, 32, 48, 32, 32,
/* 0x1610 */ 48, 49, 99, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1620 */ 69, 78, 84, 83, 10, 32, 32, 53, 32, 78, 82, 86, 50, 66, 32, 32,
/* 0x1630 */ 32, 32, 32, 32, 32, 32, 32, 48, 49, 52, 52, 32, 32, 48, 32, 32,
/* 0x1640 */ 48, 32, 32, 48, 51, 51, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x1650 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 54, 32, 76, 90, 77, 65,
/* 0x1660 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 49, 48, 99, 32, 32,
/* 0x1670 */ 48, 32, 32, 48, 32, 32, 48, 52, 56, 48, 32, 32, 50, 42, 42, 48,
/* 0x1680 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 55, 32, 76,
/* 0x1690 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 57, 54,
/* 0x16a0 */ 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 56, 99, 32, 32, 50,
/* 0x16b0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32,
/* 0x16c0 */ 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32,
/* 0x16d0 */ 48, 52, 97, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48,101,102, 52,
/* 0x16e0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x16f0 */ 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32,
/* 0x1700 */ 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 57,
/* 0x1710 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1720 */ 83, 10, 32, 49, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32,
/* 0x1730 */ 32, 32, 32, 32, 48, 51,101, 32, 32, 48, 32, 32, 48, 32, 32, 48,
/* 0x1740 */ 49, 51, 57, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1750 */ 69, 78, 84, 83, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x1760 */ 90, 32, 32, 32, 32, 32, 32, 48,100, 99, 32, 32, 48, 32, 32, 48,
/* 0x1770 */ 32, 32, 48, 49, 51,100, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67,
/* 0x1780 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84,
/* 0x1790 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x17a0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76,
/* 0x17b0 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, 65,
/* 0x17c0 */ 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x17d0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x17e0 */ 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65,
/* 0x17f0 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1800 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70,
/* 0x1810 */ 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x1820 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1830 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69,
/* 0x1840 */ 65, 68, 32, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48,
/* 0x1850 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x1860 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32,
/* 0x1870 */ 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48,
/* 0x1880 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1890 */ 32,100, 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, 82, 86, 50,
/* 0x18a0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18b0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68,
/* 0x18c0 */ 32, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x18d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x18e0 */ 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, 78, 82, 86, 50, 66, 10,
/* 0x18f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1900 */ 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76,
/* 0x1910 */ 70, 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
/* 0x1920 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1930 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68,
/* 0x1940 */ 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50,
/* 0x1950 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1960 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95,
/* 0x1970 */ 68, 69, 67, 49, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
/* 0x1980 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1990 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x19a0 */ 65, 73, 78, 89, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10,
/* 0x19b0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x19c0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48,
/* 0x19d0 */ 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x19e0 */ 48, 48, 48, 48, 48, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 69,
/* 0x19f0 */ 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116,
/* 0x1a00 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a10 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 32,
/* 0x1a20 */ 48, 49, 55, 99, 32,117, 99,108, 95,110,114,118, 50,101, 95,100,
/* 0x1a30 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48,
/* 0x1a40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32,
/* 0x1a50 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 32, 48, 49, 55, 48,
/* 0x1a60 */ 32,117, 99,108, 95,110,114,118, 50,100, 95,100,101, 99,111,109,
/* 0x1a70 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a80 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32,
/* 0x1a90 */ 70, 32, 78, 82, 86, 50, 66, 32, 48, 49, 52, 52, 32,117, 99,108,
/* 0x1aa0 */ 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115,
/* 0x1ab0 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ac0 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90,
/* 0x1ad0 */ 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76,122,109, 97, 68,
/* 0x1ae0 */ 101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1af0 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69,
/* 0x1b00 */ 76, 70, 77, 65, 73, 78, 89, 32, 48, 32,101,110,100, 95,100,101,
/* 0x1b10 */ 99,111,109,112,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
/* 0x1b30 */ 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, 70,
/* 0x1b40 */ 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69,
/* 0x1b50 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65,
/* 0x1b60 */ 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32,
/* 0x1b70 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x1b80 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x1b90 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1ba0 */ 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32,
/* 0x1bb0 */ 32, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1bc0 */ 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 65, 65, 82, 67, 72, 54,
/* 0x1bd0 */ 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x1be0 */ 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1bf0 */ 48, 48, 48, 97, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
/* 0x1c00 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76,
/* 0x1c10 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83,
/* 0x1c20 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
/* 0x1c30 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
/* 0x1c40 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c50 */ 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95,
/* 0x1c60 */ 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65, 95, 68,
/* 0x1c70 */ 69, 67, 51, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x1c80 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x1c90 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x1ca0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x1cb0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x1cc0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1cd0 */ 100, 56, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83,
/* 0x1ce0 */ 51, 50, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
/* 0x0040 */ 0, 0, 0, 0,224, 7,191,169,211,255,255, 24,224, 99, 0,145,
/* 0x0050 */ 60, 0, 0,148, 59, 0, 0,148,246, 3, 0,170,255,131, 0,209,
/* 0x0060 */ 1, 8,193,168, 63, 24, 0,113, 96, 0, 0, 84,161,255,255, 53,
/* 0x0070 */ 34, 0,160,210,250, 3, 2,203,250, 3, 0,249, 0, 0, 0,148,
/* 0x0080 */ 244, 3, 30,170, 1, 0,128, 82,128, 98, 0,209,232, 34,128, 82,
/* 0x0090 */ 1, 0, 0,212,251, 3, 0, 42,128, 6, 64,185,253, 3, 0,145,
/* 0x00a0 */ 160, 3, 0,203, 0,236,124,146, 31, 0, 0,145,226, 3, 0,170,
/* 0x00b0 */ 225, 15, 31,248,227, 3, 0,145,128, 66, 0,145,129, 10, 64,185,
/* 0x00c0 */ 132, 50, 64, 57, 34, 0, 0,148,232, 7, 65,248,250, 3, 0,249,
/* 0x00d0 */ 130, 6, 64,185,225, 3, 0,145,224, 3, 27, 42, 8, 8,128, 82,
/* 0x00e0 */ 1, 0, 0,212,191, 3, 0,145, 5, 0,128,210,228, 3, 27, 42,
/* 0x00f0 */ 35, 0,128, 82,162, 0,128, 82,129, 6, 64,185,225, 15, 0,249,
/* 0x0100 */ 0, 0,128,210,200, 27,128, 82, 1, 0, 0,212,224, 11, 0,249,
/* 0x0110 */ 252, 3, 0,170,224, 3, 27, 42, 40, 7,128, 82, 1, 0, 0,212,
/* 0x0120 */ 253, 11, 64,185,129, 2, 64,185,158, 83, 0,145,189, 3, 1, 75,
/* 0x0130 */ 253, 7, 0,249, 33,120, 30, 18, 60, 3, 1,139,192, 3, 31,214,
/* 0x0140 */ 1,132, 64,248,225,255,255,181,192, 3, 95,214, 1, 64, 33,139,
/* 0x0150 */ 225, 11,190,169,227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82,
/* 0x0160 */ 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, 0, 0, 1,203,
/* 0x0170 */ 66, 0, 3,203,130, 0, 0,185,229, 3, 0,170,224, 3, 3,170,
/* 0x0180 */ 97, 0, 2,139, 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,
/* 0x0190 */ 100, 0,128,146,132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,
/* 0x01a0 */ 162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,
/* 0x01b0 */ 168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146,
/* 0x01c0 */ 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,
/* 0x01d0 */ 169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,
/* 0x01e0 */ 168,255,255, 84,159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,
/* 0x01f0 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214,
/* 0x0200 */ 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, 33, 0,128, 82,
/* 0x0210 */ 240, 3, 30,170,248,255,255,151, 33, 0, 1, 58,246,255,255,151,
/* 0x0220 */ 163,255,255, 84, 0, 2, 31,214, 3, 20, 64, 56, 67, 20, 0, 56,
/* 0x0230 */ 241,255,255,151,162,255,255, 84,245,255,255,151, 35, 12, 0,113,
/* 0x0240 */ 1, 0,128, 82,163, 0, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,
/* 0x0250 */ 229, 3, 37, 42,133,248,255, 52,231,255,255,151, 33, 0, 1, 58,
/* 0x0260 */ 229,255,255,151, 33, 0, 1, 58, 97, 0, 0, 84,232,255,255,151,
/* 0x0270 */ 33, 8, 0, 17,191, 0, 52, 49, 33, 36,129, 26, 67,200,101, 56,
/* 0x0280 */ 33, 4, 0,113, 67, 20, 0, 56,162,255,255, 84,233,255,255, 23,
/* 0x0290 */ 117,112,120, 0,217, 19, 1,209, 32, 3, 64,185, 57, 67, 32,203,
/* 0x02a0 */ 224, 7, 0,249,192, 3, 63,214, 0, 0, 0, 0,102,105,108,101,
/* 0x02b0 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,108,105,
/* 0x02c0 */ 116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99,
/* 0x02d0 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32,
/* 0x02e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32,
/* 0x02f0 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0300 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0310 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32,
/* 0x0320 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48,
/* 0x0330 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48,
/* 0x0340 */ 50, 53, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32,
/* 0x0350 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32,
/* 0x0360 */ 32, 49, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32,
/* 0x0370 */ 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 50, 57, 48, 32, 32,
/* 0x0380 */ 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32,
/* 0x0390 */ 32, 50, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32,
/* 0x03a0 */ 32, 48, 49, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 50, 57, 48,
/* 0x03b0 */ 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x03c0 */ 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48,
/* 0x03d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x03e0 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x03f0 */ 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48,
/* 0x0400 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x0410 */ 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
/* 0x0420 */ 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x0430 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x0440 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 48, 32, 69, 76, 70,
/* 0x0450 */ 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x0460 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
/* 0x0470 */ 85, 78, 68, 42, 32, 48, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48,
/* 0x0480 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52, 32,103, 32, 32,
/* 0x0490 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
/* 0x04a0 */ 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x04b0 */ 48, 48, 48, 48, 49, 48, 99, 32,103, 32, 32, 32, 32, 32, 70, 32,
/* 0x04c0 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 49, 52, 52, 32,117, 99,
/* 0x04d0 */ 108, 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,
/* 0x04e0 */ 115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x04f0 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69,
/* 0x0500 */ 76, 70, 77, 65, 73, 78, 89, 32, 48, 32,101,110,100, 95,100,101,
/* 0x0510 */ 99,111,109,112,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x0520 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
/* 0x0530 */ 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, 70,
/* 0x0540 */ 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69,
/* 0x0550 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65,
/* 0x0560 */ 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32,
/* 0x0570 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x0580 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x0590 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x05a0 */ 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32,
/* 0x05b0 */ 32, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x05c0 */ 48, 48, 48, 48, 48, 51, 99, 32, 82, 95, 65, 65, 82, 67, 72, 54,
/* 0x05d0 */ 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x05e0 */ 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x05f0 */ 48, 48, 48, 48, 52, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
/* 0x0600 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69,
/* 0x0610 */ 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84,
/* 0x0620 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32,
/* 0x0630 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
/* 0x0640 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x0650 */ 48, 49, 56, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66,
/* 0x0660 */ 83, 51, 50, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
};

File diff suppressed because it is too large Load Diff

View File

@ -249,7 +249,7 @@ eof_n2b:
mov %r12,%arg5 // mfd
push $MAP_SHARED; pop %sys4
push %arg3; pop %arg2 // LENU
push $PROT_WRITE|PROT_READ|PROT_EXEC; pop %arg3 // FIXME: add PROT_WRITE for DEBUG only
push $PROT_READ|PROT_EXEC; pop %arg3 // FIXME: add PROT_WRITE for DEBUG only
subl %edi,%edi // (%arg1)dst = 0; // kernel chooses addr
push $__NR_mmap; pop %rax; call sys_check
push %rax // MATCH_12

View File

@ -650,10 +650,10 @@ upx_main( // returns entry address
/*arg4*/ ElfW(auxv_t) *const av
#if defined(__x86_64) //{
/*arg5*/ , ElfW(Addr) elfaddr // In: &ElfW(Ehdr) for stub
#elif defined(__powerpc64__) //}{
/*arg5*/ , ElfW(Addr) *p_reloc // In: &ElfW(Ehdr) for stub; Out: 'slide' for PT_INTERP
#elif defined(__aarch64__) //}{
/*arg5*/ , ElfW(Addr) elfaddr
#elif defined(__powerpc64__) //}{
/*arg5*/ , ElfW(Addr) *p_reloc // In: &ElfW(Ehdr) for stub; Out: 'slide' for PT_INTERP
#endif //}
)
{

View File

@ -30,6 +30,7 @@
*/
#include "arch/arm64/v8/macros.S"
#define bkpt brk #0
NBPW= 8
sz_Elf64_Phdr= 56
@ -49,7 +50,6 @@ sz_b_info= 12
sz_cpr= 4
b_method= 8
is_ptinterp= (1<<0)
unmap_all_pages= (1<<1)
AT_NULL= 0 // <elf.h>
@ -66,6 +66,7 @@ PROT_READ= 1
PROT_WRITE= 2
PROT_EXEC= 4
MAP_SHARED= 1
MAP_PRIVATE= 2
MAP_FIXED= 0x10
MAP_ANONYMOUS= 0x20
@ -74,13 +75,28 @@ PAGE_SHIFT= 16 // 64KiB PAGE_SIZE
PAGE_SIZE = -(~0<<PAGE_SHIFT)
// /usr/include/asm-generic/unistd.h
__NR_close = 0x39 // 57
__NR_exit = 0x5d // 93
__NR_memfd_create= 0x117 // 279
__NR_mmap = 0xde // 222
__NR_mprotect = 0xe2 // 226
__NR_munmap = 0xd7 // 215
__NR_openat = 0x38 // 56
__NR_write = 0x40 // 64
arg1 .req x0
arg1w .req w0
arg2 .req x1
arg2w .req w1
arg3 .req x2
arg3w .req w2
arg4 .req x3
arg4w .req w3
arg5 .req x4
arg5w .req w4
arg6 .req x5
arg6w .req w5
#ifndef DEBUG /*{*/
#define DEBUG 0
#endif /*}*/
@ -92,26 +108,23 @@ __NR_write = 0x40 // 64
#define TRACE(arg) /*empty*/
#endif //}
//lr .req x30
//lr .req x30
//fp .req x29
wLENU .req w29 // un-folded fold_begin and upx_main
xLENU .req x29
xADRU .req x28
xADRC .req x28 // OVERLAPS xADRU
wfd .req w27 // file descriptor of /proc/self/exe
wLENC .req w29
xLENC .req x29
mfd .req w27 // file descriptor from memfd_create
xfd .req x27
xPMASK .req x26 // PAGE_MASK
// The above 4 registers are passed on stack to unfolded code.
// The above 4 registers are passed on *stack* to unfolded code.
xelfa .req x25 // hi &Elf64_Ehdr
xfexp .req x24 // de-compressor
// xPMASK, xelfa, xfexp still are used here.
wLENC .req w29 // compressed input OVERLAPS wLENU
xLENC .req x29
xADRC .req x28 // OVERLAPS xADRU
xADRM .req x27 // conveneinence; OVERLAPS wfd, xfd
wLENM .req w23
xLENM .req x23
// xPMASK, xelfa still are used here.
xauxv .req x22
wszuf .req w21
@ -129,60 +142,50 @@ wPrivAnon .req w19
section ELFMAINX
sz_pack2= .-4 // placed there by ::pack3()
mflg:
.int MFLG // MAP_{PRIVATE|ANONYMOUS} // QNX vs linux
mflg:
.long MFLG // MAP_{PRIVATE|ANONYMOUS} // QNX vs linux
_start: .globl _start
#if DEBUG /*{*/
bkpt // DEBUG 0xd4200000
TRACE(#0)
#endif /*}*/
stp x0,x1,[sp,#-2*NBPW]! // ABI: -static crt0 might pass data in x0,x1
ldr wPrivAnon,mflg
add x0,sp,#(1+ 2)*NBPW
call zfind // avoid feint of 0==argc; out: x0= &envp
call zfind; mov xauxv,x0 // &Elf64_auxv
sub sp,sp,#4*NBPW // space for PMASK, SZPK2, ADRU, LENU
F_PMASK= 0 * NBPW
F_SZPK2= 1 * NBPW
F_ADRU= 2 * NBPW
F_LENU= 3 * NBPW
// set xPMASK by finding actual page size in Elf64_auxv
1:
ldp x1,x2,[x0],#2*NBPW
cmp w1,#AT_PAGESZ; beq 2f
cbnz w1,1b // AT_NULL
mov x2,#PAGE_SIZE // default
2:
neg xPMASK,x2 // save for folded code
str xPMASK,[sp,#F_PMASK]
call main
L00:
mov xFOLD,lr
f_exp:
f_decompress:
mov w1,#0 // flags
add x0,xFOLD,#strupx - LxFOLD
do_sys __NR_memfd_create; mov mfd,w0
section NRV_HEAD
// empty
section NRV_TAIL
// empty
// FIXME
#define NO_METHOD_CHECK 1
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
.balign 4
mmapRW0:
mov x5,#0 // offset
mmapRW:
mov w2,#PROT_WRITE|PROT_READ
mmap:
do_sys __NR_mmap
ret
// alloca() for de-compressed stub
ldr w0,[xFOLD,#sz_unc + LBINFO - LxFOLD] // .sz_unc of fold
mov fp,sp
sub x0,fp,x0
and x0,x0,#-2*NBPW
mov sp,x0
src .req x0
lsrc .req w1
@ -190,49 +193,17 @@ dst .req x2
ldst .req x3
xmeth .req x4
wmeth .req w4
unfold:
mov xFOLD,lr
// Reserve enough space to decompress the folded code of the stub
ldr w0, [xfexp,#sz_pack2 - f_exp]
add xelfa,xfexp,#sz_pack2 - f_exp
sub xelfa,xelfa,x0 // &Elf64_Ehdr of stub
ldr w1,[xFOLD,#sz_unc + LBINFO - LxFOLD] // .sz_unc of fold
mov w4,#-1 // fd
mov w3,#MAP_PRIVATE|MAP_ANONYMOUS
mov x0,#0 // kernel chooses addr
call mmapRW0
PUSH2(x0,x1) // ADRU, LENU
PUSH2(xPMASK,xfd)
mov xADRM,x0 // convenience
// Decompress folded code
// Decompress folded code of this stub
mov dst,x0 // ADRU
PUSH1(x1); mov ldst,sp // &slot on stack; lzma uses for EOF
add src, xFOLD,#sz_b_info + LBINFO - LxFOLD // folded code
ldr lsrc, [XFOLD,#sz_cpr + LBINFO - LxFOLD]
ldrb wmeth,[xFOLD,#b_method + LBINFO - LxFOLD]
TRACE(#1)
callr xfexp // decompress it
call f_expand // decompress it
POP1(x8) // discard lzma EOF
// propagate PAGE_MASK and wPrivAnon
str xPMASK,[xADRM]
str wPrivAnon,[xADRM,#NBPW + 2*4] // bits_privanon in unfolded code
// PROT_EXEC
mov w2,#PROT_EXEC|PROT_READ
ldr w1,[sp,3*NBPW] // LENU
mov x0,xADRM // base
TRACE(#2)
do_sys __NR_mprotect
// Use the unfolded code
ldr w0,[xFOLD, #LOBINFO - LxFOLD] // O_BINFO
bic w0,w0,#is_ptinterp | unmap_all_pages
ldr wLENC,[xfexp,#sz_pack2 - f_exp]
add xADRC,xelfa,x0 // &b_info of compressed input data
add x0,xADRM,#NBPW + 3*4 // jmp over get_page_mask() and bits_privanon
jr x0
.unreq src
.unreq lsrc
.unreq dst
@ -240,6 +211,52 @@ unfold:
.unreq xmeth
.unreq wmeth
str xPMASK,[sp] // propagate PAGE_MASK
// Write de-compressed stub
ldr w2,[xFOLD,#sz_unc + LBINFO - LxFOLD] // .sz_unc of fold
mov x1,sp
mov w0,mfd
do_sys __NR_write
mov sp,fp
mov arg6,#0 // beginning of file
mov arg5w,mfd
mov arg4w,#MAP_SHARED // modes
mov arg3w,#PROT_READ|PROT_EXEC // FIXME: add PROT_WRITE for DEBUG only
ldr arg2w,[xFOLD,#sz_unc + LBINFO - LxFOLD]
str arg2,[sp,#F_LENU]
mov arg1,#0 // addr (kernel chooses)
do_sys __NR_mmap; str x0,[sp,#F_ADRU]; mov xADRU,x0
mov arg1w,mfd
do_sys __NR_close
// Use the unfolded stub
ldr wLENC,[sp,#F_SZPK2]
ldr w1,[xFOLD, #LOBINFO - LxFOLD] // O_BINFO
add lr,xADRU,#3*4 + NBPW // jmp to fold_begin
sub wLENC,wLENC,w1
str xLENC,[sp,#F_SZPK2]
bic w1,w1,#unmap_all_pages
add xADRC,xelfa,x1 // &b_info of compressed input data
jr lr // goto unfolded stub
zfind:
ldr x1,[x0],#NBPW; cbnz x1,zfind
ret
f_expand:
#define NO_METHOD_CHECK 1
#include "arch/arm64/v8/nrv2b_d32.S"
section ELFMAINY
end_decompress: .globl end_decompress
/* IDENTSTR goes here */
section ELFMAINZ
.balign 4
#if DEBUG //{
TRACE_BUFLEN=1024
trace: // preserves condition code (thank you, CBNZ) [if write() does!]
@ -334,33 +351,23 @@ hex:
.ascii "0123456789abcdef"
#endif //}
zfind:
ldr x1,[x0],#NBPW; cbnz x1,zfind
ret
strupx:
.asciz "upx"
.balign 4
main:
mov xfexp,lr
add x0,sp,#3*NBPW; call zfind // in: x0= &argv; out: x0= &envp
call zfind; mov xauxv,x0 // &Elf64_auxv
// set xPMASK by finding actual page size in Elf64_auxv
1:
ldp x1,x2,[x0],#sz_auxv
cmp w1,#AT_PAGESZ; beq 2f
cbnz w1,1b // AT_NULL
mov x2,#PAGE_SIZE // default
2:
neg xPMASK,x2 // save for folded code
mov wfd,#-1
call unfold
lr .req x30
add xelfa,lr,#sz_pack2 - L00 // &sz_pack2
ldr w0,[xelfa]
sub xelfa,xelfa,w0,uxtw
str x0,[sp,#F_SZPK2]
callr lr
LxFOLD:
LOBINFO:
.int O_BINFO // o_binfo | is_ptinterp | unmap_all_pages
.int O_BINFO
LBINFO:
// { b_info={sz_unc, sz_cpr, {4 char}}, folded_loader...}
/*
vi:ts=8:et:nowrap
vaddi:ts=8:et:nowrap
*/

View File

@ -95,7 +95,7 @@ fold_begin: // known offset (NBPW + 3*4)
//// brk #0 // DEBUG
b L10
// In: sp/ PMASK,fd,ADRU,LENU, x0,x1, argc,argv,...
// In: sp/ PMASK,LENC,ADRU,LENU, x0,x1, argc,argv,...
//lr .req x30
wLENC .req w29 // compressed input
xLENC .req x29
@ -140,7 +140,7 @@ mprotect: .globl mprotect
do_sys __NR_mprotect; ret
L10:
add sp,sp,#2*NBPW // toss xPMASK,xfd
add sp,sp,#2*NBPW // toss xPMASK,sz_pack2
POP2(xADRU,xLENU)
mov x7,sp // old_sp: x0,x1,argc,...
@ -213,11 +213,8 @@ no_buf_pse:
no_env_pse:
/* Construct arglist for upx_main */
ldr x7,PAGE_MASK
mov x6,xelfa // Elf64_Ehdr (reloc if ET_DYN and not pre-link)
mov x4,xelfa // Elf64_Ehdr (reloc if ET_DYN and not pre-link)
sub sp,sp,#MAX_ELF_HDR_64 + OVERHEAD // alloca
adr x5,f_unfilter
mov x4,xfexp // &f_decompress
mov x3,xauxv // new &Elf64_auxv_t
mov x2,sp // ehdr
mov w1,wLENC // total size of compressed data
@ -451,6 +448,8 @@ hex:
.unreq cto
.unreq fid
section SYSCALLS; .balign 4
__NR_SYSCALL_BASE= 0
__NR_exit = 0x5d + __NR_SYSCALL_BASE // 93
@ -466,6 +465,8 @@ __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
__NR_memfd_create= 0x117 + __NR_SYSCALL_BASE // 279
__NR_ftruncate= 0x2e + __NR_SYSCALL_BASE // 46
.globl my_bkpt
my_bkpt:
@ -477,28 +478,28 @@ exit:
do_sys __NR_exit
.globl read
read:
do_sys __NR_read; ret
read: do_sys __NR_read; ret
.globl write
write:
do_sys __NR_write; ret
write: do_sys __NR_write; ret
.globl close
close:
do_sys __NR_close; ret
close: do_sys __NR_close; ret
.globl getpid
getpid:
do_sys __NR_getpid; ret
getpid: do_sys __NR_getpid; ret
.globl brk
brk:
do_sys __NR_brk; ret
brk: do_sys __NR_brk; ret
.globl munmap
munmap:
do_sys __NR_munmap; ret
munmap: do_sys __NR_munmap; ret
.globl memfd_create
memfd_create: do_sys __NR_memfd_create; ret
.globl ftruncate
ftruncate: do_sys __NR_ftruncate; ret
.globl unlink
unlink:
@ -539,5 +540,15 @@ div10: .globl div10
ret
#endif /*}*/
memcpy: .globl memcpy // void *memcpy(void *dst, void const *src, size_t len)
ldrb w3,[x1],#1; sub x2,x2,#1
strb w3,[x0],#1; cbnz x2,memcpy
ret
memset: .globl memset // void *memset(void *dst, int c, size_t len);
strb w1,[x0],#1; sub x2,x2,#1
cbnz x2,memset
ret
// vi:ts=8:et:nowrap

View File

@ -30,19 +30,7 @@
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
. = SIZEOF_HEADERS + 12 ;
}

View File

@ -0,0 +1 @@
#include "amd64-linux.elf-main2.c"

View File

@ -2,49 +2,24 @@ file format elf64-littleaarch64
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 010 0 0 040 2**0 CONTENTS
1 NRV_HEAD 0 0 0 050 2**0 CONTENTS
2 NRV_TAIL 0 0 0 050 2**0 CONTENTS
3 NRV2E 017c 0 0 050 2**0 CONTENTS
4 NRV2D 0170 0 0 01cc 2**0 CONTENTS
5 NRV2B 0144 0 0 033c 2**0 CONTENTS
6 LZMA_ELF00 010c 0 0 0480 2**0 CONTENTS
7 LZMA_DEC20 0968 0 0 058c 2**0 CONTENTS
8 LZMA_DEC10 04a0 0 0 0ef4 2**0 CONTENTS
9 LZMA_DEC30 0 0 0 01394 2**0 CONTENTS
10 ELFMAINY 03e 0 0 01394 2**0 CONTENTS
11 ELFMAINZ 0dc 0 0 013d4 2**2 CONTENTS
0 ELFMAINX 0250 0 0 040 2**0 CONTENTS
1 ELFMAINY 0 0 0 0290 2**0 CONTENTS
2 ELFMAINZ 01c 0 0 0290 2**2 CONTENTS
SYMBOL TABLE:
0000000000000000 l d LZMA_DEC30 0 LZMA_DEC30
0000000000000000 l d ELFMAINZ 0 ELFMAINZ
0000000000000000 l d ELFMAINX 0 ELFMAINX
0000000000000000 l d NRV_HEAD 0 NRV_HEAD
0000000000000000 l d NRV_TAIL 0 NRV_TAIL
0000000000000000 l d NRV2E 0 NRV2E
0000000000000000 l d NRV2D 0 NRV2D
0000000000000000 l d NRV2B 0 NRV2B
0000000000000000 l d LZMA_ELF00 0 LZMA_ELF00
0000000000000000 l d LZMA_DEC20 0 LZMA_DEC20
0000000000000000 l d LZMA_DEC10 0 LZMA_DEC10
0000000000000000 l d ELFMAINY 0 ELFMAINY
0000000000000000 *UND* 0 MFLG
0000000000000004 g ELFMAINX 0 _start
0000000000000000 g F NRV2E 017c ucl_nrv2e_decompress_32
0000000000000000 g F NRV2D 0170 ucl_nrv2d_decompress_32
0000000000000000 g F NRV2B 0144 ucl_nrv2b_decompress_32
0000000000000000 g LZMA_DEC10 0 LzmaDecode
000000000000010c g F ELFMAINX 0144 ucl_nrv2b_decompress_32
0000000000000000 g ELFMAINY 0 end_decompress
0000000000000000 *UND* 0 O_BINFO
RELOCATION RECORDS FOR [ELFMAINX]:
OFFSET TYPE VALUE
0000000000000000 R_AARCH64_ABS32 MFLG
000000000000000c R_AARCH64_CALL26 ELFMAINZ+0x00000000000000a4
RELOCATION RECORDS FOR [LZMA_ELF00]:
OFFSET TYPE VALUE
0000000000000004 R_AARCH64_CONDBR19 LZMA_DEC30
000000000000003c R_AARCH64_CALL26 ELFMAINZ+0x0000000000000004
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE
00000000000000d8 R_AARCH64_ABS32 O_BINFO
0000000000000018 R_AARCH64_ABS32 O_BINFO

116
src/stub/tmp/arm64-linux.elf-fold.map generated vendored
View File

@ -6,48 +6,82 @@ Name Origin Length Attributes
Linker script and memory map
0x00000000001000bc . = ((0x100000 + SIZEOF_HEADERS) + 0xc)
.text 0x00000000001000bc 0xae4
*(.text)
.text 0x00000000001000bc 0x300 tmp/arm64-linux.elf-fold.o
0x00000000001000c4 get_page_mask
0x00000000001000d4 mmap_privanon
0x00000000001000e4 mmap
0x0000000000100100 Pprotect
0x0000000000100100 mprotect
0x0000000000100318 my_bkpt
0x0000000000100320 exit
0x0000000000100328 read
0x0000000000100334 write
0x0000000000100340 close
0x000000000010034c getpid
0x0000000000100358 brk
0x0000000000100364 munmap
0x0000000000100370 unlink
0x0000000000100384 readlink
0x000000000010038c open
0x00000000001003a8 __clear_cache
.text 0x00000000001003bc 0x7e4 tmp/arm64-linux.elf-main.o
0x0000000000100a38 upx_main
*(.data)
.data 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
.data 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-main.o
.iplt 0x0000000000100ba0 0x0
.iplt 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
.rela.dyn 0x0000000000100ba0 0x0
.rela.iplt 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
.data
0x000000000000004c . = (SIZEOF_HEADERS + 0xc)
LOAD tmp/arm64-linux.elf-fold.o
LOAD tmp/arm64-linux.elf-main.o
LOAD tmp/arm64-expand.o
LOAD tmp/arm64-linux.elf-main2.o
OUTPUT(tmp/arm64-linux.elf-fold.bin elf64-littleaarch64)
.igot.plt 0x0000000000100ba0 0x0
.igot.plt 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
.text 0x0000000000000000 0xaa8
.text 0x0000000000000000 0x250 tmp/arm64-linux.elf-fold.o
0x0000000000000008 get_page_mask
0x0000000000000018 mmap_privanon
0x0000000000000028 mmap
0x0000000000000044 Pprotect
0x0000000000000044 mprotect
.text 0x0000000000000250 0x0 tmp/arm64-expand.o
.text 0x0000000000000250 0x858 tmp/arm64-linux.elf-main2.o
0x0000000000000904 underlay
0x0000000000000970 upx_main
.bss 0x0000000000100ba0 0x0
.bss 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x0000000000100ba0 0x0 tmp/arm64-linux.elf-main.o
.data 0x0000000000000000 0x0
.data 0x0000000000000000 0x0 tmp/arm64-linux.elf-fold.o
.data 0x0000000000000000 0x0 tmp/arm64-expand.o
.data 0x0000000000000000 0x0 tmp/arm64-linux.elf-main2.o
.bss 0x0000000000000000 0x0
.bss 0x0000000000000000 0x0 tmp/arm64-linux.elf-fold.o
.bss 0x0000000000000000 0x0 tmp/arm64-expand.o
.bss 0x0000000000000000 0x0 tmp/arm64-linux.elf-main2.o
SYSCALLS 0x0000000000000000 0xe0
SYSCALLS 0x0000000000000000 0xe0 tmp/arm64-linux.elf-fold.o
0x0000000000000000 my_bkpt
0x0000000000000008 exit
0x0000000000000010 read
0x000000000000001c write
0x0000000000000028 close
0x0000000000000034 getpid
0x0000000000000040 brk
0x000000000000004c munmap
0x0000000000000058 memfd_create
0x0000000000000064 ftruncate
0x0000000000000070 unlink
0x0000000000000084 readlink
0x000000000000008c open
0x00000000000000a8 __clear_cache
0x00000000000000bc memcpy
0x00000000000000d0 memset
EXP_HEAD 0x0000000000000000 0x104
EXP_HEAD 0x0000000000000000 0x104 tmp/arm64-expand.o
0x0000000000000000 f_expand
EXP_TAIL 0x0000000000000000 0x20
EXP_TAIL 0x0000000000000000 0x20 tmp/arm64-expand.o
0x0000000000000000 eof
NRV2E 0x0000000000000000 0x17c
NRV2E 0x0000000000000000 0x17c tmp/arm64-expand.o
0x0000000000000000 ucl_nrv2e_decompress_32
NRV2D 0x0000000000000000 0x170
NRV2D 0x0000000000000000 0x170 tmp/arm64-expand.o
0x0000000000000000 ucl_nrv2d_decompress_32
NRV2B 0x0000000000000000 0x144
NRV2B 0x0000000000000000 0x144 tmp/arm64-expand.o
0x0000000000000000 ucl_nrv2b_decompress_32
LZMA_ELF00 0x0000000000000000 0x10c
LZMA_ELF00 0x0000000000000000 0x10c tmp/arm64-expand.o
LZMA_DEC20 0x0000000000000000 0x968
LZMA_DEC20 0x0000000000000000 0x968 tmp/arm64-expand.o
LZMA_DEC10 0x0000000000000000 0x4a0
LZMA_DEC10 0x0000000000000000 0x4a0 tmp/arm64-expand.o
0x0000000000000000 LzmaDecode
LZMA_DEC30 0x0000000000000000 0x0
LZMA_DEC30 0x0000000000000000 0x0 tmp/arm64-expand.o