--android-shlib for arm32 and i386

... including work-around if no memfd_create() on early Android 32-bit
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   p_elf_enum.h
	modified:   p_lx_elf.cpp
	modified:   stub/src/arm.v4a-linux.elf-so_entry.S
	modified:   stub/src/arm.v4a-linux.elf-so_fold.S
	modified:   stub/src/i386-linux.elf-so_main.c
	modified:   stub/src/upxfd_android.c
           plus generated *.h *.dump *.map
This commit is contained in:
John Reiser 2024-08-25 14:55:55 -07:00
parent 7f062c7ca5
commit 8065eebca3
29 changed files with 15751 additions and 16253 deletions

View File

@ -49,161 +49,161 @@ expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
c79510a06670a0d0afb197abe4941ecbfe5df6de45c2ace46954f6e0d31163c8 *amd64-linux.elf/upx-3.91
595fbf9fa3404521f19513aa87b92a7bb540f22fd812bc4006d8d06d5c17b400 *amd64-linux.elf/upx-3.95
be68107b41e5ac9fdfe919f6e26b0ed83807dbe1c8f20d9e391a836be445c4fd *amd64-win64.pe/upx-3.95.exe
da1b48ae514f13aa77d412fe23ed32ea8fa274e9b1ead802468b62159a7d6b24 *arm-linux.elf/upx-3.95
e49a6cd4701da031aa054202e94e5eae8faded1e3063e2648a1506d233f79d73 *arm-linux.elf/upx-3.95
94422a91473a467dfb534afa3f20247bc38691aeb386a42fb3e0fd18d3d0ae08 *arm-wince.pe/upx-3.91.exe
c8650187ad21cfa873d01cb2f8d3f920388ce256b5627eb46c7ea0b5d3594ae3 *arm64-linux.elf/upx-3.95
f0db9f1834d872731653e3635d8acd63b94f76f4d44eb2267bd74ef2fb76103b *armeb-linux.elf/upx-3.91
a2da5bc38c3839d143db30e212603352be3a2ba7db37888856cc1f3bf31875ce *armeb-linux.elf/upx-3.95
21c703ddac3c21c932d190474c5569bb42090d417157512c6ab32fca75406e87 *armeb-linux.elf/upx-3.91
bbd6ae84cbb5e0fb5eeca8b6503cb4435eab3ea833d3b4b214920d31b1cf94e8 *armeb-linux.elf/upx-3.95
e17a126cebc32977991a292b7434d1435a7c95862ccece0e4acbf6e810bd3443 *i386-dos32.djgpp2.coff/upx-3.91.exe
88c54fa6bda1bbee0317c839dd756458ebe9bf4b0f6d746139517c7e0c3c9c6f *i386-dos32.djgpp2.coff/upx-3.95.exe
8861c31dd9d5f081acddade77dfe470e7b7891fdb669ff3f019424a225ba90bc *i386-linux.elf/upx-3.91
afd71d8d2ad09d87b03651a3b16d162a8342ebfa4a9b7c4306fbda56810c266d *i386-linux.elf/upx-3.95
1551c44d02f759404ebc9920aa6640ca5ce968c84b9880682a62d568cbbf3389 *i386-linux.elf/upx-3.91
c5b01291f9d3baaf839366168cb8dea577999820732e99cd577e0f1fba32232d *i386-linux.elf/upx-3.95
9bc7ba34e675311527776726a98450722ac9faee73ef5df96a8e8dbd2943b734 *i386-win32.pe/upx-3.91.exe
0a33acc8fa5549c59a87897b318ab83d1eb2ffa7d6c156e92d71c4e9ab4c6483 *i386-win32.pe/upx-3.95.exe
22a6fe5e84dc759675c14314f1d72b84b64e22d106b4158969f5bc4f572288a1 *m68k-atari.tos/upx-3.91.ttp
d4b853c7cf10b96d437159769583cb47088773bb8df71f72105e74ad2135baf8 *mips-linux.elf/upx-3.95
919fa70e8ac8c4ab7ffac2cc4a37085aa2f5f45a8b26ab39486d612bb2711c0f *mipsel-linux.elf/upx-3.91
dd6c6828eec410ceb9be8c504ab9f59e29adc45511a2af5094a69430153b6f57 *mipsel-linux.elf/upx-3.95
648323ff120e8b1b4b47d8216e6a1a7bcebc8aab09725c0771f63f7130d0249c *powerpc-linux.elf/upx-3.91
9425ad2798809803d9d4ad1c918ef84faa84d5f65d47696a1d70705739f6bac5 *powerpc-linux.elf/upx-3.95
6df25ee62da0a0d1f8b51c8407db928d2ee499446bb57e35f8c4513aa1652fbe *mips-linux.elf/upx-3.95
0e1114ec29ae8d9183d0f832ee4188343c27c03c912e89fdc5ddfcabac113840 *mipsel-linux.elf/upx-3.91
02ad28155de7f927c0ec737e5a8bbff58adb6cd6946e2092bbf706abcb1879fc *mipsel-linux.elf/upx-3.95
5aa8fd7164aa18f81510157964445b0595516beb9fb37d75643b531896f16c78 *powerpc-linux.elf/upx-3.91
1f8b2c07980ff03e6465f8ba7cd185b99abb75503e6d4c8692a5d6cfd449f93e *powerpc-linux.elf/upx-3.95
3f5171426075f09d0adeb6df1494be8227ecab967018f848837a0f51376a39a8 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
2925ce2ff2cce151d5deeda7120d8d520bfe15a9c6a2a0825030d22d7e96b1a6 *amd64-linux.elf/upx-3.91
ff336b009719cd517ce9801bbadb6af6270af6cec4a94f4d29c39520b993a0f1 *amd64-linux.elf/upx-3.95
246079a063b098268c2c0c6237d7a4d0b7e18eaace45eff33a78400e1595f066 *amd64-win64.pe/upx-3.95.exe
dd52a453ca470b54df28254c16dffe59a40d9c3c14e946b9db3b0906b6ebfc92 *arm-linux.elf/upx-3.95
c1d75e01ef6304424412794aa84ec2ec1b8a00d89689e53f8b4804ce1092b9cf *arm-linux.elf/upx-3.95
d7839b7dee866794e4ca3df32e2b1084b35aa22dee5f060fa14b5ca09c612ba3 *arm-wince.pe/upx-3.91.exe
4612793b1bf941141e4c1d269a559c641d7ea31052cba55aafff5ee3448e0706 *arm64-linux.elf/upx-3.95
20041539aa768c84a0289430d995e1437766623926e022a73272fc1f657229b6 *armeb-linux.elf/upx-3.91
b9e1f817ed5bbc28dcb2789366a4d31dc39354ed1f42aa2045c711102964d5e6 *armeb-linux.elf/upx-3.95
c2961ab61c99744c5f7414387a3e4435b11b61f373559228c1cc21070d4e0f35 *armeb-linux.elf/upx-3.91
af098ae164113e685e88934a178be1087ddfeed14c9b905918358239f8f44f1b *armeb-linux.elf/upx-3.95
4a434c3a14686786369c8bede8736d15e307ed7dd8c40cccb8f22003b05db968 *i386-dos32.djgpp2.coff/upx-3.91.exe
4ec6858a6c453176db25de5317269fa973f07051a15c9ff146920153dda52350 *i386-dos32.djgpp2.coff/upx-3.95.exe
03eaca25a39c4898a57544f8464ab2cb51a605792afb0f29767f73c5ff452fc0 *i386-linux.elf/upx-3.91
a936f5627f7f9b9db867f25bf24f8b6d9e464b31d080e98eedb76767fbdfd760 *i386-linux.elf/upx-3.95
bb336e4fbb635d206cc301490c5088651984a79a69e0e1d3b73c28c49e967e23 *i386-linux.elf/upx-3.91
5f07ca481a92b8faed2554eaad2d629dbc18fb97a753d0c5b578b942855c88f3 *i386-linux.elf/upx-3.95
18c0e4fb6bf6b26b5c943c54571007b4aba4d0a4ba7391c149eeada54a0a404d *i386-win32.pe/upx-3.91.exe
8501c4a677eb66b482987122febc0360fc02f6720fd7c19d311cf60314d5705e *i386-win32.pe/upx-3.95.exe
b8d481769be7aa7768bb1bd8775e766512c5720813e5d8bab6decb200a916f11 *m68k-atari.tos/upx-3.91.ttp
306367f288715e455394040385b92baaead47c8b62c0806370c467c0cd4a8573 *mips-linux.elf/upx-3.95
1bc9597969605c2b0ebddd4e67efec207879bf06bd9a12c6a49478a8794f040f *mipsel-linux.elf/upx-3.91
d4d70c7b6c5ed95d3dbf86f124e8067290575304f204326fb4561388463dfac0 *mipsel-linux.elf/upx-3.95
0d545fcd0e450454bc7d5a7d5fc50165e70c9949ed32c839e6b6e72f35cda5bc *powerpc-linux.elf/upx-3.91
e9e59af299572607a6c65c50a596e7d76c968a59e1d429c1091966e17fde2ff1 *powerpc-linux.elf/upx-3.95
229e5e9fa1ecba28835b775258e30833ca9c4f4d635f54bbf163e2845bb045cf *mips-linux.elf/upx-3.95
1f809c5b98e0e540e660fd22bfad3306ff52496f44f4775c597eaedd853eaf15 *mipsel-linux.elf/upx-3.91
5197b7c4c859afe3ec8fe280f9cc33a13de3beb64c6d8ae71311983ddd82c90d *mipsel-linux.elf/upx-3.95
de55f950641172195dea3f820844a04a4548e38769d227997192cbfe150cd4eb *powerpc-linux.elf/upx-3.91
4a8431aa586174d2580627218515d9a03638df1cd05891125792b34cc69cff59 *powerpc-linux.elf/upx-3.95
1ca6dcfdf89dd86345953815ada92babe0b632acc39c244f8913a1f962e57898 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
402eb4bb9d31ed3603d3e9d98239f5e0cd6d966965bfae92b0ab493505bc7e49 *amd64-linux.elf/upx-3.91
2992935c6b2f7276d48be9d0d4527c4895f0feeaed74ee21e86faaadedddc793 *amd64-linux.elf/upx-3.95
6caf4df19cfe55fc33b31b4e77b6ce0a5665d090de9d4210c1994b62049c66c5 *amd64-win64.pe/upx-3.95.exe
77c35cb16334ff95fe30813811dcef579a5d413c10bd323a2c950f3b9750b1e7 *arm-linux.elf/upx-3.95
f02dd8281e9326cea8593324dd01c0f9ec4af01d5ac4062041ce78a049ccbb6d *arm-linux.elf/upx-3.95
8c73f5acfc70e3c518be09978af87b9bec4906240cb457a166da0eba05bea4db *arm-wince.pe/upx-3.91.exe
b9ee27852d845f5fe91a563c14a55c9ddf71d33b330df407464c19f164bf05ae *arm64-linux.elf/upx-3.95
fc881c2a27b95659e27a237970206d3452c132d193ed0ad36c42d42972deaffa *armeb-linux.elf/upx-3.91
feb691d213d1129bb68af165d0d9be93d9b2a8ecd4fd40e28f0bee94ceedd3b3 *armeb-linux.elf/upx-3.95
ddcacd227d84eb30c16eb2d228e8a70c7bf1f13b82f8cbcf4582d77205010f43 *armeb-linux.elf/upx-3.91
e9fda742f41804593ac90315c02f59b63789402ba74310573d9c275a8c9fb081 *armeb-linux.elf/upx-3.95
d454dd376db342e7650a93bd4859546711c94f5da55336e5b969dbea996465d9 *i386-dos32.djgpp2.coff/upx-3.91.exe
89fdaef155f19e1388412109c955b3368df7e39f13ae2ef5db5b0f0df3df81ab *i386-dos32.djgpp2.coff/upx-3.95.exe
a42bd2e4cc47c015dc20db70c872c928dfb270fe079c5f6d844e787f8c396cf5 *i386-linux.elf/upx-3.91
b3ef371c88303d4e912db1ddf43728b8681f8acffc96b766ade9eaf198647efa *i386-linux.elf/upx-3.95
61460b6daef8036fcf8009bab74053f305de0e9ef9708297eab189e47e0f2f73 *i386-linux.elf/upx-3.91
b1a1f3af6e5f91dfe05925d3fbecc6f27f8a0b91acd366e32d40638149d5aa1b *i386-linux.elf/upx-3.95
674216006959b78ef9bfeed682a6a858f657a860123c620dc77daf5d3c46c40d *i386-win32.pe/upx-3.91.exe
a47825b63e33e2ff5f07ec2b8e51991172a1e26e17fa1b2a19dc7857ab76db35 *i386-win32.pe/upx-3.95.exe
2fc38c89629269a6c5ec22113f6a84a8b91e04c861359125d1c8e44d17ac190a *m68k-atari.tos/upx-3.91.ttp
0c7c48fd9a35f068ed08c5c65d419089508b45dc8952713eb8f36a8be4e1a70e *mips-linux.elf/upx-3.95
e5bd5abfd71f19dd1c1bffe195f8414cea9f4d38d91bd601287f4e7a38af909d *mipsel-linux.elf/upx-3.91
6ccf1b70b078435ac5dac72cb5d82d09bea0e61a8ca5051ea82f6f2e55489740 *mipsel-linux.elf/upx-3.95
86bb3b1a04e9fc7ce93305fd7d58fdae8e16f51d205bd2780752e186cb2d755e *powerpc-linux.elf/upx-3.91
d57826eb570d83337195a49c187613fcec943f6e78e476fa03b2635cb4411ba5 *powerpc-linux.elf/upx-3.95
6fa50ab1b0a03bc0f38af6069e5b668e2887178ffa1d3b54608d4f8683d7cfa4 *mips-linux.elf/upx-3.95
386284dd179d890a30f44f6c7af7a0e9cd66aae6a4d9cdbb86514e5aed5e330e *mipsel-linux.elf/upx-3.91
8970d5ac1569c5f164aa20d603fc0450b7924f84d9f3b779dc3999f184b22a2d *mipsel-linux.elf/upx-3.95
56d439322422887c4fca2d0d8b8cbb9716437f76e78358ee6c9d619313e00c5f *powerpc-linux.elf/upx-3.91
612639e98978ceaff1b3f9036202e885903213bee42b614176d769f4cfea6e99 *powerpc-linux.elf/upx-3.95
c6473863d8058eab7ce2fdeaf376fe9ddd0f0732003fae7a166079a30b794cea *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t140_compress_lzma_2_no_filter="\
13a40034527eb0a5e4d5ee82135dccc95413bc3c159d5482b2bea9b96f673ff7 *amd64-linux.elf/upx-3.91
ee790dd4bfc2e1b2c3e749e9de7d70cd920f6340befecf0f5ac8ffa0556aa268 *amd64-linux.elf/upx-3.95
b8815f95e92d6853a04a86069e9054115be2d9aa657fa2c8912d0f37e56c894f *amd64-win64.pe/upx-3.95.exe
934c0bbdbd4a4de19430ecd48924ff964a93b6fd63ccc4107d65367763791e9b *arm-linux.elf/upx-3.95
56bf86fbc97d75aaab595cda2fa41ba72fc49bbdbaa41329ec523e745fc25f67 *arm-linux.elf/upx-3.95
018242f330e19dd7ca2fb78687c0070ad88f1aa2e113be865c30ad3ff94a4ada *arm-wince.pe/upx-3.91.exe
e821ad4e78ac0e14d6dfbae45d3d9d3a9391c8c7c1aef87cd95344a9ccbd2a0c *arm64-linux.elf/upx-3.95
429c69e14284546d1d4c2aefc7cdd613cbb9def4d67ac898bc7a37cb476412d4 *armeb-linux.elf/upx-3.91
5de21c68f98166ab4583a9a86e429ebaeb7d5958a1072c781d2d116e90f938ab *armeb-linux.elf/upx-3.95
931470c326e8397f1ddd65298d69d17bd1e873c14b3ff9a832064d32b195da77 *armeb-linux.elf/upx-3.91
93126b542ae533e0b7cbc9cdb796071c2c82f05a7a63b5dd8371fbef7f8b38b2 *armeb-linux.elf/upx-3.95
d87f0efee3de67a58d515acbea9789e6db99c47ba23bd33aa33992a0ef35bb67 *i386-dos32.djgpp2.coff/upx-3.91.exe
0039c6235cfa7d377594e7858ba24c5007379c33f57ca66f144687413d574ca6 *i386-dos32.djgpp2.coff/upx-3.95.exe
143d3cebc4a1b03a6155d835bfaa5070f9d65d1cbcc90b356fba202c0cdf9e37 *i386-linux.elf/upx-3.91
2289d2c8fc60dc32173644020dd69010ca1632221874d9d0eaf9620508e46e62 *i386-linux.elf/upx-3.95
98734a15bb98232bd457000eae1d8a91eaf083afee740e609cdb25f4b0d4012e *i386-linux.elf/upx-3.91
a623b0d84c3bad4a98a6e2ed43f6a6a214bcf5e29e60245aa71c1af3e6f02196 *i386-linux.elf/upx-3.95
a33d057a391218e62f427cdd31c5850d5637346106f23523d21addc60451e159 *i386-win32.pe/upx-3.91.exe
24ecb3b5fd2f8d81f7deeadbec1988dc62503345d36b60bd17b9a4a09f8cbfb6 *i386-win32.pe/upx-3.95.exe
d81bbba6a8ede3aa9bebcd28280914c1084dc0a9ff1d000389e3f52ff05a1ac7 *m68k-atari.tos/upx-3.91.ttp
16fe0c71887e11c10be8ff82d82e194596176e02dcd7d5f3b9c4b14b86657000 *mips-linux.elf/upx-3.95
1ad1ef3253cd4cd58b36c4dadd224017889872c2bd912d98666f9a686c950299 *mipsel-linux.elf/upx-3.91
67bb53c47d42e3dbe7329d09d6c1ecc5072b8e4b5a2dfd8dc6db6b25306455da *mipsel-linux.elf/upx-3.95
f73ac160bb9ed28b5285c7972128038a7f3a63ff41b4bb2d0a4f74c1f073ddf0 *powerpc-linux.elf/upx-3.91
3a6d6368d34c2af3c00c170863131d05a43fb2dc280f96d6df8ce32d99348845 *powerpc-linux.elf/upx-3.95
80af7830aeb1596e2584b7f9c085762b2b7573cae9c0acd2058df245d4de2385 *mips-linux.elf/upx-3.95
1b8dd4c51c72ef86f1eff84d1cbf7c23f8a2ce83937b483555724aed368ccada *mipsel-linux.elf/upx-3.91
aa142cb76b705ce2be1a60ffd1b19591cbe587cc7c56ce698612e67a8f48a666 *mipsel-linux.elf/upx-3.95
96047e72136f95a8f27bb89eee9e370a6728d3b78360d6cc4a8ddfd0127487d2 *powerpc-linux.elf/upx-3.91
45a5ca18ad0f6157e898bc4bf5117f905a3bfddf5507abe35ffaf06f2c4cc4be *powerpc-linux.elf/upx-3.95
ac98e187eab50233948891089657afb8c851301d0a7616d0cbc2fb6f140cd16d *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t150_compress_ucl_2_all_filters="\
800eca887d350638f8540b75fd950f350a808b6c4cb0a3516b61002979e7a953 *amd64-linux.elf/upx-3.91
82ca9ff37fa4648069a912808c7bc9471027a623d211907f8566fd2c135df4c6 *amd64-linux.elf/upx-3.95
fa8ba95a5fcc1a0d591e9b50d26772b3334815ffbf95d0127b4daa6c74ecc28d *amd64-win64.pe/upx-3.95.exe
f2459e3ec0ddfb5d301bdeb5989732a3fa3faf980470d9ec04db6a24fb87c73b *arm-linux.elf/upx-3.95
8f5189a42034b307486a9bca08767b93fd164048597f258b8475e52349c91e43 *arm-linux.elf/upx-3.95
93e2ead9e54732a1731896681d415e3ce60b7420ad7f3c57822ad7dbd061cdd3 *arm-wince.pe/upx-3.91.exe
e3dd795d6e61ce5900fa9fd30e88439179ae1ef383a8ee7e74e986bfc9379250 *arm64-linux.elf/upx-3.95
6ed3130b79cd846ad7bb36825dcb3330dc808fb0cf5d35c2cc8e9d91b0889c8f *armeb-linux.elf/upx-3.91
d7ff943ed1f652fc3b617683ae253aa2035aa38ebce4b26c4e1868f5e36ee4b2 *armeb-linux.elf/upx-3.95
1c6b940c246b709a62c1a14be26f19abc3bdbb2756779c52eb7d0e1d60351541 *armeb-linux.elf/upx-3.91
fa3c88832233e6ae352ac4110efec42acd2c81c1666e286b914d3503ed649f5f *armeb-linux.elf/upx-3.95
2957b481e67689a5ad43dcfdfde207b9eb16142c161f3e43fd0eeff5917fefbd *i386-dos32.djgpp2.coff/upx-3.91.exe
8f02dbfdbddad405ec599afba4ead6d300ab792f7188df7a32a9d7d3dc7d72c9 *i386-dos32.djgpp2.coff/upx-3.95.exe
a79c764b27962a514a9d76d973ec5e5fb0523cde11f16c9f5358882289d47938 *i386-linux.elf/upx-3.91
785c7bca36b67ae8e2866abfb140ba75a22812210757492ce32bbf8c30c83ecf *i386-linux.elf/upx-3.95
496102b4d269354b9e5bbb0c3210c2e0cd5abef2f169388608c3d0ba5201b9d5 *i386-linux.elf/upx-3.91
8f62f6cf88d8452352cb4c15b4eebbd653fc1f2faf147b5eb0c371fe070ffc5f *i386-linux.elf/upx-3.95
b233f8508a150a20dffaeb6da057ccfd1cf78fbb89d9bdf3fbdd1c21716665e3 *i386-win32.pe/upx-3.91.exe
57a4ff483773e64ab95963445049bff4044e055f31c13bd74c039fba1f113401 *i386-win32.pe/upx-3.95.exe
1c8973e104c93be98db7d5411b478d0badb7b6d5373f7d28e94f435fb31faa7e *m68k-atari.tos/upx-3.91.ttp
4a4c209e8f2abdfaac3d3870830cc88e8baeee8f7b208607ae2d6b0158a0310b *mips-linux.elf/upx-3.95
527b202689a3b69b8f5e8ab1306764ace39e994e18587d88bd2ea8ca59a1a948 *mipsel-linux.elf/upx-3.91
43db848ece4e2222305c2a1350aa1da7a9235a185896028fb7f232e7b4c33879 *mipsel-linux.elf/upx-3.95
6c9f2b2c62d4a1fb8a84827d7ec4afd42732e6573ef97f8033866bbdedbd4d76 *powerpc-linux.elf/upx-3.91
33d21bed66d8cf5adab2668fd1d67b3fa60bf17d34f095af9109cc04f4a79a0b *powerpc-linux.elf/upx-3.95
04004d7519730e202e3db6b6e5462aa1ae095aa94058d1274a208ea703205053 *mips-linux.elf/upx-3.95
23ce1fc5611e171abf8a041c09a1ae0d55c42b41bd68f165b8e12e8a5c3d83a8 *mipsel-linux.elf/upx-3.91
68cc9c5af634f555d153391ff8abcbab348fb61d8571c834e1f8db0fbfb1003b *mipsel-linux.elf/upx-3.95
c16031b7701630b1641e51d4ded0cc321221e7f5b282370cf12d01b6b8fc7645 *powerpc-linux.elf/upx-3.91
13f2a274cf48a1e56e4acfe6d45c4580e19159dfa9ea0fa22acfac63db586051 *powerpc-linux.elf/upx-3.95
65f68e7dbb6366476eb6b9aacde13b05e1b9f460dc833b45ce6ac2097cb55100 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
ed6fc641d8e958b9b39fcf2dd35c9acdf4af268393faf42a762183d0a384e894 *amd64-linux.elf/upx-3.91
517ce5e7ef22893234061879bbdec9e70d10351ebe270c1e6bf3fd76e73a1f8f *amd64-linux.elf/upx-3.95
f38ff7edc916c1a3e82020035667de858c89d52c98d960dad0e21b4da444ed6c *amd64-win64.pe/upx-3.95.exe
97d3764c08136a078c7f2fb67d89e21ecd27a8d9e0c9c668858d80ba8ce5e784 *arm-linux.elf/upx-3.95
10e23bcaec4ed303d1362d02521b776a8ed472c65a3156164301a82fd2b64a5e *arm-linux.elf/upx-3.95
bb475839ec547696aaccf4da202b99be927c872e5de298a5eb1f0be0edc06d1d *arm-wince.pe/upx-3.91.exe
b894f14b3ca9a806effdba402f8fab9e3f4cb571dc7731eafe3504afe3c5fe98 *arm64-linux.elf/upx-3.95
8ebbb6cd147cfceba6b609d835664fa66a4dc9c77d8a5c87d22259be9736a450 *armeb-linux.elf/upx-3.91
ceda66bb2defb68b23335627b989447c8fe9f9d95a4f336b25554f14d7b23192 *armeb-linux.elf/upx-3.95
be81a29a618f2ff181553d6a14b957cc2cc2f478dfea7ba6fbed9b9b7e8de6b0 *armeb-linux.elf/upx-3.91
0ede43e3e245faf452e8cba1c267101ee0179931c84b253d9eb6b22ae0341b89 *armeb-linux.elf/upx-3.95
6a5394bb8cc82863405b82d40cc92ea65af2125e48ad83591317a2526bb394e6 *i386-dos32.djgpp2.coff/upx-3.91.exe
7f9226941ef63ce50fd210b0da32f96053c029378c33c65f4e93c390ad5b0a85 *i386-dos32.djgpp2.coff/upx-3.95.exe
881d4af575f39d25c8140f2496ece75ef8ff9e8b96eb2c047045d7b4895bce56 *i386-linux.elf/upx-3.91
23044f890fca3ef4c317a52b91e5c3e0c465de865da7d160868db58871f603b1 *i386-linux.elf/upx-3.95
326a74e5199c866934223dcc81ec797c2a1543039ea19d449c5214eadc764112 *i386-linux.elf/upx-3.91
8df147efd31ffd32b14daf4efa4727d2c81a0b05992b49490fbdaec9de375ca8 *i386-linux.elf/upx-3.95
20c9fcde690091218f83c1f9fcb9a8d211f384569724801c89f3ce5d23356004 *i386-win32.pe/upx-3.91.exe
c99b42e740ca0fb80a06d2e76c0b5d9169fb76900521c5ccd8e2e5a46f5020d3 *i386-win32.pe/upx-3.95.exe
0bc481806564627f23125e3ab6fa59e8b90e35f0f117c3d185a728086ad02351 *m68k-atari.tos/upx-3.91.ttp
a5b8e2711679543fb5877a6962dc59688a63ada45c02bd7463547d92b2793300 *mips-linux.elf/upx-3.95
f3a3deb39199114f22694c27e60f0e4546aab3967d30cf701c0a201bf83ef705 *mipsel-linux.elf/upx-3.91
2b850d4d0a5fb6b1a4f4c563c370ca098e87de73c415432d79f698712759d876 *mipsel-linux.elf/upx-3.95
03d86256e44dc3b1c5877d0b8b5f977265e9d7609774c9bf0aa9ed992e32e8d3 *powerpc-linux.elf/upx-3.91
f20cb159b07531a48871b949ea3a50d1df5e618841b4cbdc8a93d276c352ee53 *powerpc-linux.elf/upx-3.95
00778f894b0ac328d0b9a41bd55e0978891662f9a07008028c7cf278d3199b38 *mips-linux.elf/upx-3.95
d00794432d3834bee2b51886603e23996a0309f1bfd8712aca377848d785d4cb *mipsel-linux.elf/upx-3.91
4aa17a07eaa135aad3ec9b38c5d209bac746b21050d035b60d29cd6fafa99444 *mipsel-linux.elf/upx-3.95
2b60e8dd14d7074e818a755bba489217c5ade5e38934953da16423c2143409e6 *powerpc-linux.elf/upx-3.91
22da393e979c29ef1293f3d23d65d6f828403e27cc2e55b2f96151e8798f3fa3 *powerpc-linux.elf/upx-3.95
1931b0dcb7484d04ed4e09e3b2b259278d9ad34328def738364dabb098518f56 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
c64127c7e014531a7d85141755afc2a68aa723a527ac162b1f1f28fe5b41fde4 *amd64-linux.elf/upx-3.91
740c9929ff8b5cb87d9946b5261c0a8e0ab7b142da9e0be2368b4337d4e8f3f9 *amd64-linux.elf/upx-3.95
fb362f2b3ea02f9c12de7e8f19f73ea6cfebfeb7b8c316003121a9ad13d3d8ae *amd64-win64.pe/upx-3.95.exe
83e6e04f5d95823246e27f97e67ad2211d7650e30d9d394369bc3e5b1ffec360 *arm-linux.elf/upx-3.95
07404165788c2f2283e9ab5be165614cc1325e4369c5f1ee7f16e5780e1f32b1 *arm-linux.elf/upx-3.95
56be0b4046accdfadbe534ecb6e6452b9e3a18bb9eac39da0ee8893c31d24416 *arm-wince.pe/upx-3.91.exe
3680ad002545d6fd38468a3d3984ad6e2fcdc38a1bcdeb991289e6f5457dd2d3 *arm64-linux.elf/upx-3.95
d9def76fcbe6625d0f9e7ec63ea75cfd370e67fdb2d5029578d8c5f94251da4c *armeb-linux.elf/upx-3.91
0706d6f0ca8419eb05a3fac57c4f7d01818b9e4441d105a167346ceed7d15340 *armeb-linux.elf/upx-3.95
add1e63acb02c97c631cb2641eca2f9f99754ed8585abe9e8ec241c28de8fc51 *armeb-linux.elf/upx-3.91
bb871eb3b7599203e61d0708de84a45c2396d60b74d0a08be5221070dba7adba *armeb-linux.elf/upx-3.95
6f9fbac216cd42aa370cb90965e74669daf33fd403bf0a250aaec06dd3439009 *i386-dos32.djgpp2.coff/upx-3.91.exe
902f1c5036680b0fadbebaef913c4062f0ce5ef0f2d537f7e6da31d23974139d *i386-dos32.djgpp2.coff/upx-3.95.exe
a1d4d4a98a7b384a7ad439566a41302de4b202ed53b196477ea823aa076ed02e *i386-linux.elf/upx-3.91
da4c93bcd2285a235a262b426d5955348728e29e54d33db47fff9396cd251daa *i386-linux.elf/upx-3.95
12a13b9ef64eb79c0dd5a221480040c3da25670c556a68663c748615088788be *i386-linux.elf/upx-3.91
48265b26701fdca592adf58dbedad23d4d09b323756722e507d25f1ffe727fff *i386-linux.elf/upx-3.95
63afac5307a2385757b3d29753c64e0026241ea2ca1324f53e8ccb4263cc9f62 *i386-win32.pe/upx-3.91.exe
eb01b6f27798690115cabb88314551579da509455232bbaa3276eddc25106d0d *i386-win32.pe/upx-3.95.exe
3a5fa857ff517e41386062a0fb2be4f8b6fa5cb79d5624b5a00947c1f2758afb *m68k-atari.tos/upx-3.91.ttp
e5165e4559cdb1cfa0e1e88af085d91cc43db8b727e293167684259ab22c0a2a *mips-linux.elf/upx-3.95
ee1aa0b01818be74e9d4112783d46eb0b6507d4a331817aacbea7a23dbebcf61 *mipsel-linux.elf/upx-3.91
005f6a36eadaa4e6fc767604763fe58832f98fbcbb95d0279416b1d544f8f85a *mipsel-linux.elf/upx-3.95
9b9bab06565f90882ad2dcdf0bb9c0294e160404dd489e55391b8ca2ef7a2205 *powerpc-linux.elf/upx-3.91
770186cb2e13f4d63a5f100936891b835800d5fa87ccb84bdf68b8a2f893a145 *powerpc-linux.elf/upx-3.95
5a264b88af458ae138c24031a0a3deda5512c45ad7320694572784681ff9ebdf *mips-linux.elf/upx-3.95
317055e0724b1e5076158771b1c5915dd4ef094e15aa6ccc34080165ca67a703 *mipsel-linux.elf/upx-3.91
75a37b8b346f2b4fb7c6fe6c69bbcba922d1acdffb0f717435d43484032eecd0 *mipsel-linux.elf/upx-3.95
b16dc07ecf8b9ac490e46c43aa42c610cbe07aab604710dde48c6aecb1fa02ff *powerpc-linux.elf/upx-3.91
f16b70a9dd44cb4109450f0fec101d98154775e94d61abdba47b3f7e67ddc8f7 *powerpc-linux.elf/upx-3.95
e8c9139050609ed541e3d881be853a15a99875ba01162b7fac071be9bd97fd94 *powerpc64le-linux.elf/upx-3.95
"
########## end .sha256sums.recreate

View File

@ -138,6 +138,7 @@ class Dummy {
SHT_PREINIT_ARRAY = 16, /* Array of pre-constructors */
SHT_GROUP = 17, /* Section group */
SHT_SYMTAB_SHNDX = 18, /* Extended section indices */
SHT_RELR = 19, /* RELR relative relocations */
SHT_GNU_HASH = 0x6ffffff6, /* GNU-style hash table. */
SHT_GNU_LIBLIST = 0x6ffffff7, /* Prelink library list */
SHT_GNU_verdef = 0x6ffffffd, /* Version definition section. */

View File

@ -5790,16 +5790,16 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
// Keep _Shdr for SHF_WRITE.
// Discard _Shdr with (0==sh_addr), except _Shdr[0]
// Keep ARM_ATTRIBUTES
unsigned const want_types_mask =
1u<<SHT_SYMTAB
| 1u<<SHT_RELA
| 1u<<SHT_PROGBITS // see comment above
unsigned const want_types_mask = 0
| 1u<<SHT_PROGBITS // see comment above, and special code below
| 1u<<SHT_HASH
| 1u<<SHT_DYNAMIC
| 1u<<SHT_NOTE
| 1u<<SHT_REL
| 1u<<SHT_DYNSYM
| 1u<<SHT_STRTAB // .shstrtab and .dynstr
| 1u<<SHT_RELA
| 1u<<SHT_RELR
| 1u<<SHT_DYNSYM // but not SHT_SYMTAB because compression confuses gdb
| 1u<<SHT_STRTAB // .shstrtab and DYNSYM.sh_link; not SYMTAB.sh_link
| 1u<<SHT_INIT_ARRAY
| 1u<<SHT_FINI_ARRAY
| 1u<<SHT_PREINIT_ARRAY
@ -5809,7 +5809,7 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
| 1u<<(0x1f & SHT_GNU_HASH);
u32_t xct_off_hi = 0;
Elf32_Phdr const *ptr = phdri, *ptr_end = &phdri[e_phnum];
Elf32_Phdr *ptr = phdri, *ptr_end = &phdri[e_phnum];
for (; ptr < ptr_end; ++ptr) {
if (PT_LOAD32 == get_te32(&ptr->p_type)) {
u32_t hi = get_te32(&ptr->p_filesz)
@ -5829,6 +5829,13 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
Elf32_Shdr *sh_out0 = (Elf32_Shdr *)mb_shdro.getVoidPtr();
Elf32_Shdr *sh_out = sh_out0;
Elf32_Shdr *sh_in = shdri;
Elf32_Shdr *n_shstrsec = nullptr;
// Some binutils does tail merging on section names; we don't.
// ".plt" == (4+ ".rel.plt"); ".hash" == (4+ ".gnu.hash")
MemBuffer mb_shstrings(100 + 2*get_te32(&sh_in[e_shstrndx].sh_size));
char *ptr_shstrings = (char *)&mb_shstrings[0];
*ptr_shstrings++ = '\0';
memset(sh_out, 0, sizeof(*sh_out)); // blank sh_out[0]
++sh_in; ++sh_out; unsigned n_sh_out = 1;
@ -5840,6 +5847,8 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
unsigned sh_addr = get_te32(&sh_in->sh_addr);
unsigned sh_offset = get_te32(&sh_in->sh_offset);
unsigned sh_size = get_te32(&sh_in->sh_size);
unsigned sh_name = get_te32(&sh_in->sh_name);
char const *name = &shstrtab[sh_name];
if (ask_for[j]) { // Some previous _Shdr requested me
// Tell them my new index
set_te32(&sh_out0[ask_for[j]].sh_info, n_sh_out); // sh_info vs st_shndx
@ -5853,7 +5862,7 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
|| (sec_arm_attr == sh_in)
|| (want_types_mask & (1<<(0x1f & sh_type)))
) {
*sh_out = *sh_in;
*sh_out = *sh_in; // *sh_in is a candidate for fowarding
if (sh_offset > xct_off) { // may slide down: earlier compression
if (sh_offset >= xct_off_hi) { // easy: so_slide down
if (sh_out->sh_addr) // change only if non-zero
@ -5861,6 +5870,8 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
set_te32(&sh_out->sh_offset, so_slide + sh_offset);
}
else { // somewhere in compressed; try proportional (aligned)
// But note that PROGBITS without SHF_ALLOC
// will be dropped below.
u32_t const slice = xct_off + (~0xFu & (unsigned)(
(sh_offset - xct_off) *
((sh_offset - xct_off) / (float)(xct_off_hi - xct_off))));
@ -5876,8 +5887,7 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
set_te16(&eho->e_shstrndx, sh_out -
(Elf32_Shdr *)mb_shdro.getVoidPtr());
}
if (j == e_shstrndx
|| sec_arm_attr == sh_in
if (sec_arm_attr == sh_in
|| (SHT_NOTE == sh_type && xct_off < sh_offset)
) { // append a copy
set_te32(&sh_out->sh_offset, total_out);
@ -5887,26 +5897,70 @@ unsigned PackLinuxElf32::forward_Shdrs(OutputFile *fo, Elf32_Ehdr *const eho)
total_out += sh_size;
} else
if (SHT_PROGBITS == sh_type) {
if (!(Elf32_Shdr::SHF_ALLOC & sh_flags)) {
// .debug_*, .gnu_debuglink etc. Typically compressed
// but not in RAM, and gdb (BFD) gets confused.
continue; // OMIT the commit: do not forward
} else
if (sh_offset <= xct_off
&& 0 == strcmp(".text", shstrtab + get_te32(&sh_in->sh_name)) ) {
&& 0 == strcmp(".text", name) ) {
// .text was compressed (but perhaps omitting some leading
// portion, if less than 4 PT_LOAD)
set_te32(&sh_out->sh_size, so_slide + sh_size);
// FIXME: so_slide is negative; avoid negative result
}
} else
if (SHT_STRTAB == sh_type) {
if (j == e_shstrndx) {
n_shstrsec = sh_out;
} else
if (0 == sh_in->sh_addr) { // .gnu_debuglink etc
set_te32(&sh_out->sh_offset, so_slide + sh_offset);
if (strcmp(".dynstr", name)) {
continue; // OMIT the commit of non-global symbol names
}
}
++sh_out; ++n_sh_out;
set_te32(&sh_out->sh_name, ptr_shstrings - (char *)mb_shstrings.getVoidPtr());
ptr_shstrings = 1+ stpcpy(ptr_shstrings, name); // past terminating '\0'
++sh_out; ++n_sh_out; // actually commit the fowarding
}
}
total_out = fpad4(fo, total_out);
unsigned len = ptr_shstrings - (char *)mb_shstrings.getVoidPtr();
set_te32(&n_shstrsec->sh_offset, total_out);
set_te32(&n_shstrsec->sh_size, len);
fo->write(mb_shstrings, len);
total_out += len;
total_out = fpad4(fo, total_out); // align _Shdr[]
set_te32(&eho->e_shoff, total_out);
unsigned len = (char *)sh_out - (char *)mb_shdro.getVoidPtr();
len = (char *)sh_out - (char *)mb_shdro.getVoidPtr();
set_te16(&eho->e_shnum, len / sizeof(*sh_out));
set_te16(&eho->e_shentsize, sizeof(Elf32_Shdr));
fo->write(mb_shdro, len);
total_out += len;
// Try to pacify gdb (before DT_INIT) by making it look like
// the compressed PT_LOAD extends all the way to the next PT_LOAD,
// with no gap in address space. Thus gdb should not complain about
// "Loadable section "..." [Shdr] outside of ELF segments [PT_LOAD]".
// gdb still "warning: section ... not found in .gnu_debugdata"
// because .gdb_debugdata is not present (or gets removed),
// but that is separate and "just" a warning.
ptr = (Elf32_Phdr *)(1+ eho);
for (ptr_end = &ptr[e_phnum]; ptr < ptr_end; ++ptr) {
if (PT_LOAD32 == get_te32(&ptr->p_type)) {
Elf32_Phdr *ptr2 = 1+ ptr;
for (; ptr2 < ptr_end; ++ptr2) {
if (PT_LOAD32 == get_te32(&ptr2->p_type)) {
unsigned pmask = 0u - get_te32(&ptr2->p_align);
set_te32(&ptr->p_memsz,
(pmask & get_te32(&ptr2->p_vaddr)) -
(pmask & get_te32(&ptr ->p_vaddr)) );
ptr = ptr_end; // force end of outer loop
ptr2 = ptr_end; // force end of inner loop
}
}
}
}
fo->seek(0, SEEK_SET);
fo->rewrite(eho, sizeof(*eho));
fo->seek(0, SEEK_END);
@ -5971,6 +6025,7 @@ unsigned PackLinuxElf64::forward_Shdrs(OutputFile *fo, Elf64_Ehdr *const eho)
| 1u<<SHT_DYNAMIC
| 1u<<SHT_NOTE
| 1u<<SHT_REL
| 1u<<SHT_RELR
| 1u<<SHT_DYNSYM
| 1u<<SHT_STRTAB // .shstrtab and .dynstr
| 1u<<SHT_INIT_ARRAY

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* i386-linux.elf-entry.h
created from i386-linux.elf-entry.bin, 3702 (0xe76) bytes
created from i386-linux.elf-entry.bin, 3947 (0xf6b) bytes
This file is part of the UPX executable compressor.
@ -32,14 +32,14 @@
/* clang-format off */
#define STUB_I386_LINUX_ELF_ENTRY_SIZE 3702
#define STUB_I386_LINUX_ELF_ENTRY_ADLER32 0x4fa4709a
#define STUB_I386_LINUX_ELF_ENTRY_CRC32 0xff4cbb95
#define STUB_I386_LINUX_ELF_ENTRY_SIZE 3947
#define STUB_I386_LINUX_ELF_ENTRY_ADLER32 0xf459be98
#define STUB_I386_LINUX_ELF_ENTRY_CRC32 0xbb08e4d7
unsigned char stub_i386_linux_elf_entry[3702] = {
unsigned char stub_i386_linux_elf_entry[3947] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 220, 6, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0020 */ 80, 7, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 8, 0, 5, 0,243, 15, 30,251,232,252,255,255,255, 1,219,116,
/* 0x0040 */ 2,243,195,139, 30,131,238,252, 17,219,195, 94,131,236, 28,141,
/* 0x0050 */ 124, 36, 32,232,198, 1, 0, 0,232,193, 1, 0, 0,139, 7,139,
@ -74,199 +74,214 @@ unsigned char stub_i386_linux_elf_entry[3702] = {
/* 0x0220 */ 131,199, 4,133,192,117,247,195,204,195, 0, 0, 85,137,229, 86,
/* 0x0230 */ 83,131,236, 72,106, 64,104,255, 0, 0, 0,141,117,184, 86,232,
/* 0x0240 */ 252,255,255,255,131,196, 12,139, 93, 8,137,241,106,106, 88,205,
/* 0x0250 */ 128,137,194,133,192,120, 21, 15,183, 69,192, 37, 0,240, 0, 0,
/* 0x0260 */ 185, 0, 0, 0, 0, 61, 0, 64, 0, 0,116, 39,131,250,254,117,
/* 0x0270 */ 32,185,192, 1, 0, 0,139, 93, 8,106, 39, 88,205,128,137,194,
/* 0x0280 */ 131,248,254,117, 12,187,255,255,255,255,106, 1, 88,205,128,235,
/* 0x0290 */ 254,137,209,137,200,141,101,248, 91, 94,201,195,139, 68, 36, 4,
/* 0x02a0 */ 137,194,131,226, 31,131,224, 63,131,250, 26,118, 12,168, 32,116,
/* 0x02b0 */ 5,131,232, 70,235, 3,131,232, 43,131,192, 64,195, 85,137,229,
/* 0x02c0 */ 87, 86, 83,131,236, 20,232, 12, 0, 0, 0, 47,100, 97,116, 97,
/* 0x02d0 */ 47,100, 97,116, 97, 47, 0, 90,139, 2,139, 77, 8,137, 1,139,
/* 0x02e0 */ 66, 4,137, 65, 4,102,139, 66, 8,102,137, 65, 8,138, 66, 10,
/* 0x02f0 */ 136, 65, 10,198, 65, 11, 0, 81,232, 47,255,255,255,131,196, 4,
/* 0x0300 */ 232, 19, 0, 0, 0, 47,112,114,111, 99, 47,115,101,108,102, 47,
/* 0x0310 */ 99,109,100,108,105,110,101, 0, 94,185, 0, 0, 0, 0,137,243,
/* 0x0320 */ 137,202,106, 5, 88,205,128,137, 69,232,139,117, 12,186,255, 15,
/* 0x0330 */ 0, 0,137,195,137,241,106, 3, 88,205,128,137,199,139, 93,232,
/* 0x0340 */ 106, 6, 88,205,128,137,248,133,255, 15,136,178, 0, 0, 0,198,
/* 0x0350 */ 4, 62, 0,128, 62, 0,116, 6, 70,128, 62, 0,117,250,137,240,
/* 0x0360 */ 128, 62, 47,116, 6, 78,128, 62, 47,117,250, 41,240, 80, 86,139,
/* 0x0370 */ 69, 8,131,192, 10, 80,232,252,255,255,255,137,195,198, 0, 0,
/* 0x0380 */ 255,117, 8,232,164,254,255,255,131,196, 16,232, 7, 0, 0, 0,
/* 0x0390 */ 47, 99, 97, 99,104,101, 0, 90,139, 2,137, 3,102,139, 66, 4,
/* 0x03a0 */ 102,137, 67, 4,131,195, 6,198, 3, 0,255,117, 8,232,122,254,
/* 0x03b0 */ 255,255,232, 5, 0, 0, 0, 47,117,112,120, 0, 88,139, 0,137,
/* 0x03c0 */ 3,141,115, 4,106, 20, 88,205,128,137,195,137, 4, 36,232,201,
/* 0x03d0 */ 254,255,255,136, 6,137,216,193,232, 6,137, 4, 36,232,186,254,
/* 0x03e0 */ 255,255,136, 70, 1,137,216,193,232, 12,137, 4, 36,232,170,254,
/* 0x03f0 */ 255,255,131,196, 4,136, 70, 2,198, 70, 3, 0,184, 0, 0, 0,
/* 0x0400 */ 0,141,101,244, 91, 94, 95,201,195, 86, 83,139,116, 36, 12,139,
/* 0x0410 */ 92, 36, 16,139, 76, 36, 20, 73,131,249,255,116, 30,138, 22,131,
/* 0x0420 */ 202, 32, 15,190,210,138, 3,131,200, 32, 15,190,192, 67, 70, 41,
/* 0x0430 */ 194,137,208,117, 11, 73,131,249,255,117,226,184, 0, 0, 0, 0,
/* 0x0440 */ 91, 94,195, 85,137,229, 87, 86, 83,129,236, 68, 16, 0, 0,186,
/* 0x0450 */ 0, 0, 0, 0,232, 4, 0, 0, 0,117,112,120, 0, 94,185, 16,
/* 0x0460 */ 0, 0, 0,184,100, 1, 0, 0,137,243,205,128,137,199,131,248,
/* 0x0470 */ 234,117, 13,184,100, 1, 0, 0,137,243,137,209,205,128,137,199,
/* 0x0480 */ 133,255,121, 68,232, 9, 0, 0, 0, 47,100,101,118, 47,115,104,
/* 0x0490 */ 109, 0, 95,185, 2, 0, 65, 0,190,192, 1, 0, 0,137,251,137,
/* 0x04a0 */ 242,106, 5, 88,205,128,137,199,133,192,121, 28,232, 13, 0, 0,
/* 0x04b0 */ 0,109,101,109,102,100, 95, 99,114,101, 97,116,101, 0, 88, 80,
/* 0x04c0 */ 232,252,255,255,255,131,196, 4,141,181,244,239,255,255,137,243,
/* 0x04d0 */ 106,122, 88,205,128,199,133,220,239,255,255, 0, 0, 0, 0,232,
/* 0x04e0 */ 4, 0, 0, 0, 97,110,100, 0, 88,106, 3, 86, 80,232, 23,255,
/* 0x04f0 */ 255,255,131,196, 12,133,192,116, 45,232, 4, 0, 0, 0, 76,105,
/* 0x0500 */ 110, 0, 88,106, 3, 86, 80,232,253,254,255,255,131,196, 12,133,
/* 0x0510 */ 192,117, 19,128,189,118,240,255,255, 52,126, 10,199,133,220,239,
/* 0x0520 */ 255,255, 1, 0, 0, 0,131,189,220,239,255,255, 0, 15,133,128,
/* 0x0530 */ 0, 0, 0,131,125, 16, 0,117, 28,232,252,255,255,255,137, 69,
/* 0x0540 */ 16,133,192,117, 16,141,133,244,239,255,255,137, 69, 16,198,133,
/* 0x0550 */ 244,239,255,255, 0,131,189,220,239,255,255, 0,117, 85,131,255,
/* 0x0560 */ 218,117, 80,131,125, 16, 0,116, 74,139, 85, 16,128, 58, 0,117,
/* 0x0570 */ 26,141,133,244,239,255,255, 80, 82,232, 63,253,255,255,131,196,
/* 0x0580 */ 8,137,193,133,192, 15,136, 6, 1, 0, 0,185,194, 0, 0, 0,
/* 0x0590 */ 190,192, 1, 0, 0,139, 93, 16,137,242,106, 5, 88,205,128,137,
/* 0x05a0 */ 199,137,193,133,192, 15,136,230, 0, 0, 0,139, 93, 16,106, 10,
/* 0x05b0 */ 88,205,128,131,125, 12, 0, 15,132,153, 0, 0, 0,131,189,220,
/* 0x05c0 */ 239,255,255, 0,116, 22,137,251,139, 77, 12,106, 93, 88,205,128,
/* 0x05d0 */ 137,193,133,192, 15,136,183, 0, 0, 0,235,122,141,133,244,239,
/* 0x05e0 */ 255,255,104, 0, 16, 0, 0,106, 0, 80,232,252,255,255,255,139,
/* 0x05f0 */ 69, 12,137,133,200,239,255,255,131,196, 12,133,192,116, 73,141,
/* 0x0600 */ 181,244,239,255,255,139,149,200,239,255,255,137,149,176,239,255,
/* 0x0610 */ 255,129,250, 0, 16, 0, 0,118, 10,199,133,176,239,255,255, 0,
/* 0x0620 */ 16, 0, 0,137,251,137,241,139,149,176,239,255,255,106, 4, 88,
/* 0x0630 */ 205,128, 59,133,176,239,255,255,117, 73,139,133,176,239,255,255,
/* 0x0640 */ 41,133,200,239,255,255,117,189,185, 0, 0, 0, 0,137,251,137,
/* 0x0650 */ 202,106, 19, 88,205,128,106, 0, 87,131,125, 8, 1, 25,192,131,
/* 0x0660 */ 224,240,131,192, 17, 80,106, 3,255,117, 12,255,117, 8,232,252,
/* 0x0670 */ 255,255,255,137,194,131,196, 24,137,193, 61, 0,240,255,255,119,
/* 0x0680 */ 16,235, 7,185,228,255,255,255,235, 7,141, 71, 1,137,193, 9,
/* 0x0690 */ 209,137,200,141,101,244, 91, 94, 95,201,195, 90,232, 19, 0, 0,
/* 0x06a0 */ 0, 0, 0, 0, 0, 0, 46,115,121,109,116, 97, 98, 0, 46,115,
/* 0x06b0 */ 116,114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0,
/* 0x06c0 */ 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0, 46,114,101,
/* 0x06d0 */ 108, 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0, 0, 0, 0,
/* 0x06e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x06f0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0700 */ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x0710 */ 0, 0, 0, 0, 52, 0, 0, 0,103, 6, 0, 0, 0, 0, 0, 0,
/* 0x0720 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
/* 0x0730 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 88, 9, 0, 0,
/* 0x0740 */ 72, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
/* 0x0750 */ 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0760 */ 0, 0, 0, 0,155, 6, 0, 0, 10, 0, 0, 0, 0, 0, 0, 0,
/* 0x0770 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0,
/* 0x0780 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,160, 9, 0, 0,
/* 0x0790 */ 16, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
/* 0x07a0 */ 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x07b0 */ 0, 0, 0, 0,165, 6, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0,
/* 0x07c0 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x07d0 */ 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 8, 0, 0,
/* 0x07e0 */ 224, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0,
/* 0x07f0 */ 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x0800 */ 0, 0, 0, 0,252, 8, 0, 0, 92, 0, 0, 0, 0, 0, 0, 0,
/* 0x0810 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0820 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0830 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0,
/* 0x0840 */ 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0, 1, 0, 0, 0,
/* 0x0850 */ 15, 4, 0, 0, 88, 2, 0, 0, 18, 0, 1, 0, 17, 0, 0, 0,
/* 0x0860 */ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 25, 0, 0, 0,
/* 0x0870 */ 212, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 33, 0, 0, 0,
/* 0x0880 */ 122, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 38, 0, 0, 0,
/* 0x0890 */ 157, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 44, 0, 0, 0,
/* 0x08a0 */ 136, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 59, 0, 0, 0,
/* 0x08b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 66, 0, 0, 0,
/* 0x08c0 */ 194, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 73, 0, 0, 0,
/* 0x08d0 */ 244, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 81, 0, 0, 0,
/* 0x08e0 */ 139, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 86, 0, 0, 0,
/* 0x08f0 */ 172, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0, 0,117,112,120,
/* 0x0900 */ 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 0, 79, 95, 66,
/* 0x0910 */ 73, 78, 70, 79, 0,109,101,109,112, 99,112,121, 0,109,109, 97,
/* 0x0920 */ 112, 0,117,110, 97,109,101, 0,103,101,116, 95,117,112,120,102,
/* 0x0930 */ 110, 95,112, 97,116,104, 0, 95,115,116, 97,114,116, 0,109,101,
/* 0x0940 */ 109,115,101,116, 0,109,121, 95, 98,107,112,116, 0,115,116, 97,
/* 0x0950 */ 116, 0,109,107,100,105,114, 0, 5, 0, 0, 0, 2, 2, 0, 0,
/* 0x0960 */ 165, 0, 0, 0, 2, 3, 0, 0, 82, 1, 0, 0, 2, 6, 0, 0,
/* 0x0970 */ 12, 2, 0, 0, 2, 10, 0, 0, 67, 3, 0, 0, 2, 5, 0, 0,
/* 0x0980 */ 141, 4, 0, 0, 2, 11, 0, 0, 6, 5, 0, 0, 2, 8, 0, 0,
/* 0x0990 */ 183, 5, 0, 0, 2, 10, 0, 0, 59, 6, 0, 0, 2, 6, 0, 0,
/* 0x09a0 */ 2, 0, 0, 0, 2, 1, 0, 0, 6, 0, 0, 0, 1, 4, 0, 0,
/* 0x09b0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51,
/* 0x09c0 */ 50, 45,105, 51, 56, 54, 10, 10, 83,101, 99,116,105,111,110,115,
/* 0x09d0 */ 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32,
/* 0x09e0 */ 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77,
/* 0x09f0 */ 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32,
/* 0x0a00 */ 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,110,
/* 0x0a10 */ 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77,
/* 0x0a20 */ 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 54, 54, 55, 32, 32,
/* 0x0a30 */ 48, 32, 32, 48, 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32,
/* 0x0a40 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76,
/* 0x0a50 */ 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 97, 32, 32,
/* 0x0a60 */ 48, 32, 32, 48, 32, 32, 48, 54, 57, 98, 32, 32, 50, 42, 42, 48,
/* 0x0a70 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79,
/* 0x0a80 */ 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x0a90 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x0aa0 */ 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48,
/* 0x0ab0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69,
/* 0x0ac0 */ 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73,
/* 0x0ad0 */ 78, 90, 10, 48, 48, 48, 48, 48, 52, 48,102, 32,103, 32, 32, 32,
/* 0x0ae0 */ 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 50, 53,
/* 0x0af0 */ 56, 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,
/* 0x0b00 */ 100, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32,
/* 0x0b10 */ 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78,
/* 0x0b20 */ 70, 79, 10, 48, 48, 48, 48, 48, 49,100, 52, 32,103, 32, 32, 32,
/* 0x0b30 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,109,
/* 0x0b40 */ 101,109,112, 99,112,121, 10, 48, 48, 48, 48, 48, 49, 55, 97, 32,
/* 0x0b50 */ 103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0b60 */ 32, 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 49, 57,100,
/* 0x0b70 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x0b80 */ 88, 32, 48, 32,117,110, 97,109,101, 10, 48, 48, 48, 48, 48, 49,
/* 0x0b90 */ 56, 56, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65,
/* 0x0ba0 */ 73, 78, 88, 32, 48, 32,103,101,116, 95,117,112,120,102,110, 95,
/* 0x0bb0 */ 112, 97,116,104, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32,
/* 0x0bc0 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48,
/* 0x0bd0 */ 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 49, 99, 50,
/* 0x0be0 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x0bf0 */ 88, 32, 48, 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48,
/* 0x0c00 */ 49,102, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0c10 */ 65, 73, 78, 88, 32, 48, 32,109,121, 95, 98,107,112,116, 10, 48,
/* 0x0c20 */ 48, 48, 48, 48, 49, 56, 98, 32,103, 32, 32, 32, 32, 32, 32, 32,
/* 0x0c30 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,115,116, 97,116, 10,
/* 0x0c40 */ 48, 48, 48, 48, 48, 49, 97, 99, 32,103, 32, 32, 32, 32, 32, 32,
/* 0x0c50 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,109,107,100,105,
/* 0x0c60 */ 114, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69,
/* 0x0c70 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65,
/* 0x0c80 */ 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84,
/* 0x0c90 */ 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0ca0 */ 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 53, 32,
/* 0x0cb0 */ 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32,
/* 0x0cc0 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48,
/* 0x0cd0 */ 48, 97, 53, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32,
/* 0x0ce0 */ 32, 32, 32, 32, 32, 32,117,112,120, 95,109,109, 97,112, 95, 97,
/* 0x0cf0 */ 110,100, 95,102,100, 10, 48, 48, 48, 48, 48, 49, 53, 50, 32, 82,
/* 0x0d00 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32,
/* 0x0d10 */ 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 50, 48, 99, 32, 82,
/* 0x0d20 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32,
/* 0x0d30 */ 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 51, 52, 51,
/* 0x0d40 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x0d50 */ 32, 32, 32,109,101,109,112, 99,112,121, 10, 48, 48, 48, 48, 48,
/* 0x0d60 */ 52, 56,100, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32,
/* 0x0d70 */ 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48,
/* 0x0d80 */ 48, 48, 48, 53, 48, 54, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51,
/* 0x0d90 */ 50, 32, 32, 32, 32, 32, 32, 32, 32,103,101,116, 95,117,112,120,
/* 0x0da0 */ 102,110, 95,112, 97,116,104, 10, 48, 48, 48, 48, 48, 53, 98, 55,
/* 0x0db0 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x0dc0 */ 32, 32, 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 54,
/* 0x0dd0 */ 51, 98, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x0de0 */ 32, 32, 32, 32, 32,109,109, 97,112, 10, 10, 82, 69, 76, 79, 67,
/* 0x0df0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x0e00 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70,
/* 0x0e10 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x0e20 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x0e30 */ 48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67,
/* 0x0e40 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x0e50 */ 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 54, 32, 82, 95, 51, 56,
/* 0x0e60 */ 54, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 79, 95,
/* 0x0e70 */ 66, 73, 78, 70, 79, 10
/* 0x0250 */ 128,137,198,133,192,120, 21, 15,183, 69,192, 37, 0,240, 0, 0,
/* 0x0260 */ 186, 0, 0, 0, 0, 61, 0, 64, 0, 0,116, 44,131,254,254,117,
/* 0x0270 */ 15,185,192, 1, 0, 0,139, 93, 8,106, 39, 88,205,128,137,198,
/* 0x0280 */ 133,246,121, 18,131,125, 12, 0,116, 12, 86,255,117, 8,232,252,
/* 0x0290 */ 255,255,255,131,196, 8,137,242,137,208,141,101,248, 91, 94,201,
/* 0x02a0 */ 195,139, 68, 36, 4,137,194,131,226, 31,131,224, 63,131,250, 26,
/* 0x02b0 */ 118, 12,168, 32,116, 5,131,232, 70,235, 3,131,232, 43,131,192,
/* 0x02c0 */ 64,195, 85,137,229, 87, 86, 83,131,236, 32,232, 12, 0, 0, 0,
/* 0x02d0 */ 47,100, 97,116, 97, 47,100, 97,116, 97, 47, 0, 90,139, 2,139,
/* 0x02e0 */ 77, 8,137, 1,139, 66, 4,137, 65, 4,102,139, 66, 8,102,137,
/* 0x02f0 */ 65, 8,138, 66, 10,136, 65, 10,198, 65, 11, 0,106, 1, 81,232,
/* 0x0300 */ 40,255,255,255,131,196, 8,232, 19, 0, 0, 0, 47,112,114,111,
/* 0x0310 */ 99, 47,115,101,108,102, 47, 99,109,100,108,105,110,101, 0, 91,
/* 0x0320 */ 137, 93,220,185, 0, 0, 0, 0,137,202,106, 5, 88,205,128,137,
/* 0x0330 */ 69,240,139,117, 12,186,255, 15, 0, 0,137,195,137,241,106, 3,
/* 0x0340 */ 88,205,128,137,199,139, 93,240,106, 6, 88,205,128,133,255,121,
/* 0x0350 */ 11,255,117,220,232,252,255,255,255,131,196, 4,198, 4, 62, 0,
/* 0x0360 */ 128, 62, 0,116, 6, 70,128, 62, 0,117,250,137,247,128, 62, 47,
/* 0x0370 */ 116, 6, 78,128, 62, 47,117,250,137,117,224,137,248, 41,240, 80,
/* 0x0380 */ 86,139, 69, 8,131,192, 10, 80,232,252,255,255,255,137,195,198,
/* 0x0390 */ 0, 0,106, 0,255,117, 8,232,144,254,255,255,131,196, 20,131,
/* 0x03a0 */ 248,243,117, 87,232, 17, 0, 0, 0, 99,111,109, 46,116,101,114,
/* 0x03b0 */ 109,117,120, 47,102,105,108,101,115, 0, 90,139, 2,139, 77, 8,
/* 0x03c0 */ 137, 65, 11,139, 66, 4,137, 65, 15,139, 66, 8,137, 65, 19,139,
/* 0x03d0 */ 66, 12,137, 65, 23,137,202,131,194, 27,137,248, 43, 69,224, 80,
/* 0x03e0 */ 255,117,224, 82,232,252,255,255,255,137,195,198, 0, 0,106, 1,
/* 0x03f0 */ 255,117, 8,232, 52,254,255,255,131,196, 20,232, 7, 0, 0, 0,
/* 0x0400 */ 47, 99, 97, 99,104,101, 0, 90,139, 2,137, 3,102,139, 66, 4,
/* 0x0410 */ 102,137, 67, 4,141,115, 6,198, 6, 0,106, 1,255,117, 8,232,
/* 0x0420 */ 8,254,255,255,131,196, 8,232, 5, 0, 0, 0, 47,117,112,120,
/* 0x0430 */ 0, 88,139, 0,137, 6,141,126, 4,106, 20, 88,205,128,137,198,
/* 0x0440 */ 80,232, 91,254,255,255,136, 7,137,240,193,232, 6,137, 4, 36,
/* 0x0450 */ 232, 76,254,255,255,136, 71, 1,137,240,193,232, 12,137, 4, 36,
/* 0x0460 */ 232, 60,254,255,255,131,196, 4,136, 71, 2,198, 71, 3, 0,184,
/* 0x0470 */ 0, 0, 0, 0,141,101,244, 91, 94, 95,201,195, 86, 83,139,116,
/* 0x0480 */ 36, 12,139, 92, 36, 16,139, 76, 36, 20, 73,131,249,255,116, 30,
/* 0x0490 */ 138, 22,131,202, 32, 15,190,210,138, 3,131,200, 32, 15,190,192,
/* 0x04a0 */ 67, 70, 41,194,137,208,117, 11, 73,131,249,255,117,226,184, 0,
/* 0x04b0 */ 0, 0, 0, 91, 94,195, 85,137,229, 87, 86, 83,129,236, 68, 16,
/* 0x04c0 */ 0, 0,186, 0, 0, 0, 0,232, 4, 0, 0, 0,117,112,120, 0,
/* 0x04d0 */ 94,185, 16, 0, 0, 0,184,100, 1, 0, 0,137,243,205,128,137,
/* 0x04e0 */ 199,131,248,234,117, 13,184,100, 1, 0, 0,137,243,137,209,205,
/* 0x04f0 */ 128,137,199,133,255,121, 68,232, 9, 0, 0, 0, 47,100,101,118,
/* 0x0500 */ 47,115,104,109, 0, 95,185, 2, 0, 65, 0,190,192, 1, 0, 0,
/* 0x0510 */ 137,251,137,242,106, 5, 88,205,128,137,199,133,192,121, 28,232,
/* 0x0520 */ 13, 0, 0, 0,109,101,109,102,100, 95, 99,114,101, 97,116,101,
/* 0x0530 */ 0, 88, 80,232,252,255,255,255,131,196, 4,141,181,244,239,255,
/* 0x0540 */ 255,137,243,106,122, 88,205,128,199,133,220,239,255,255, 0, 0,
/* 0x0550 */ 0, 0,232, 4, 0, 0, 0, 97,110,100, 0, 88,106, 3, 86, 80,
/* 0x0560 */ 232, 23,255,255,255,131,196, 12,133,192,116, 45,232, 4, 0, 0,
/* 0x0570 */ 0, 76,105,110, 0, 88,106, 3, 86, 80,232,253,254,255,255,131,
/* 0x0580 */ 196, 12,133,192,117, 19,128,189,118,240,255,255, 52,126, 10,199,
/* 0x0590 */ 133,220,239,255,255, 1, 0, 0, 0,131,189,220,239,255,255, 0,
/* 0x05a0 */ 15,133,128, 0, 0, 0,131,125, 16, 0,117, 28,232,252,255,255,
/* 0x05b0 */ 255,137, 69, 16,133,192,117, 16,141,133,244,239,255,255,137, 69,
/* 0x05c0 */ 16,198,133,244,239,255,255, 0,131,189,220,239,255,255, 0,117,
/* 0x05d0 */ 85,131,255,218,117, 80,131,125, 16, 0,116, 74,139, 85, 16,128,
/* 0x05e0 */ 58, 0,117, 26,141,133,244,247,255,255, 80, 82,232,209,252,255,
/* 0x05f0 */ 255,131,196, 8,137,193,133,192, 15,136, 6, 1, 0, 0,185,194,
/* 0x0600 */ 0, 0, 0,190,192, 1, 0, 0,139, 93, 16,137,242,106, 5, 88,
/* 0x0610 */ 205,128,137,199,137,193,133,192, 15,136,230, 0, 0, 0,139, 93,
/* 0x0620 */ 16,106, 10, 88,205,128,131,125, 12, 0, 15,132,153, 0, 0, 0,
/* 0x0630 */ 131,189,220,239,255,255, 0,116, 22,137,251,139, 77, 12,106, 93,
/* 0x0640 */ 88,205,128,137,193,133,192, 15,136,183, 0, 0, 0,235,122,141,
/* 0x0650 */ 133,244,239,255,255,104, 0, 16, 0, 0,106, 0, 80,232,252,255,
/* 0x0660 */ 255,255,139, 69, 12,137,133,200,239,255,255,131,196, 12,133,192,
/* 0x0670 */ 116, 73,141,181,244,239,255,255,139,149,200,239,255,255,137,149,
/* 0x0680 */ 176,239,255,255,129,250, 0, 16, 0, 0,118, 10,199,133,176,239,
/* 0x0690 */ 255,255, 0, 16, 0, 0,137,251,137,241,139,149,176,239,255,255,
/* 0x06a0 */ 106, 4, 88,205,128, 59,133,176,239,255,255,117, 73,139,133,176,
/* 0x06b0 */ 239,255,255, 41,133,200,239,255,255,117,189,185, 0, 0, 0, 0,
/* 0x06c0 */ 137,251,137,202,106, 19, 88,205,128,106, 0, 87,131,125, 8, 1,
/* 0x06d0 */ 25,192,131,224,240,131,192, 17, 80,106, 3,255,117, 12,255,117,
/* 0x06e0 */ 8,232,252,255,255,255,137,194,131,196, 24,137,193, 61, 0,240,
/* 0x06f0 */ 255,255,119, 16,235, 7,185,228,255,255,255,235, 7,141, 71, 1,
/* 0x0700 */ 137,193, 9,209,137,200,141,101,244, 91, 94, 95,201,195, 90,232,
/* 0x0710 */ 19, 0, 0, 0, 0, 0, 0, 0, 0, 46,115,121,109,116, 97, 98,
/* 0x0720 */ 0, 46,115,116,114,116, 97, 98, 0, 46,115,104,115,116,114,116,
/* 0x0730 */ 97, 98, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 88, 0,
/* 0x0740 */ 46,114,101,108, 69, 76, 70, 77, 65, 73, 78, 90, 0, 0, 0, 0,
/* 0x0750 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0760 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0770 */ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
/* 0x0780 */ 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,218, 6, 0, 0,
/* 0x0790 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x07a0 */ 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x07b0 */ 204, 9, 0, 0, 96, 0, 0, 0, 6, 0, 0, 0, 1, 0, 0, 0,
/* 0x07c0 */ 4, 0, 0, 0, 8, 0, 0, 0, 44, 0, 0, 0, 1, 0, 0, 0,
/* 0x07d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 14, 7, 0, 0, 10, 0, 0, 0,
/* 0x07e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x07f0 */ 40, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0800 */ 44, 10, 0, 0, 16, 0, 0, 0, 6, 0, 0, 0, 3, 0, 0, 0,
/* 0x0810 */ 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0, 3, 0, 0, 0,
/* 0x0820 */ 0, 0, 0, 0, 0, 0, 0, 0, 24, 7, 0, 0, 53, 0, 0, 0,
/* 0x0830 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0840 */ 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0850 */ 144, 8, 0, 0,224, 0, 0, 0, 7, 0, 0, 0, 3, 0, 0, 0,
/* 0x0860 */ 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0, 3, 0, 0, 0,
/* 0x0870 */ 0, 0, 0, 0, 0, 0, 0, 0,112, 9, 0, 0, 92, 0, 0, 0,
/* 0x0880 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0890 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x08a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0,
/* 0x08b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 3, 0,
/* 0x08c0 */ 1, 0, 0, 0,130, 4, 0, 0, 88, 2, 0, 0, 18, 0, 1, 0,
/* 0x08d0 */ 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0,
/* 0x08e0 */ 25, 0, 0, 0,212, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x08f0 */ 33, 0, 0, 0,122, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0900 */ 38, 0, 0, 0,157, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0910 */ 44, 0, 0, 0,136, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0920 */ 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0930 */ 66, 0, 0, 0,194, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0940 */ 73, 0, 0, 0,244, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0950 */ 81, 0, 0, 0,139, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0960 */ 86, 0, 0, 0,172, 1, 0, 0, 0, 0, 0, 0, 16, 0, 1, 0,
/* 0x0970 */ 0,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100,
/* 0x0980 */ 0, 79, 95, 66, 73, 78, 70, 79, 0,109,101,109,112, 99,112,121,
/* 0x0990 */ 0,109,109, 97,112, 0,117,110, 97,109,101, 0,103,101,116, 95,
/* 0x09a0 */ 117,112,120,102,110, 95,112, 97,116,104, 0, 95,115,116, 97,114,
/* 0x09b0 */ 116, 0,109,101,109,115,101,116, 0,109,121, 95, 98,107,112,116,
/* 0x09c0 */ 0,115,116, 97,116, 0,109,107,100,105,114, 0, 5, 0, 0, 0,
/* 0x09d0 */ 2, 2, 0, 0,165, 0, 0, 0, 2, 3, 0, 0, 82, 1, 0, 0,
/* 0x09e0 */ 2, 6, 0, 0, 12, 2, 0, 0, 2, 10, 0, 0, 91, 2, 0, 0,
/* 0x09f0 */ 2, 11, 0, 0, 33, 3, 0, 0, 2, 11, 0, 0, 85, 3, 0, 0,
/* 0x0a00 */ 2, 5, 0, 0,177, 3, 0, 0, 2, 5, 0, 0, 0, 5, 0, 0,
/* 0x0a10 */ 2, 11, 0, 0,121, 5, 0, 0, 2, 8, 0, 0, 42, 6, 0, 0,
/* 0x0a20 */ 2, 10, 0, 0,174, 6, 0, 0, 2, 6, 0, 0, 2, 0, 0, 0,
/* 0x0a30 */ 2, 1, 0, 0, 6, 0, 0, 0, 1, 4, 0, 0,102,105,108,101,
/* 0x0a40 */ 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,105, 51,
/* 0x0a50 */ 56, 54, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,
/* 0x0a60 */ 120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0a70 */ 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32,
/* 0x0a80 */ 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,
/* 0x0a90 */ 108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108,
/* 0x0aa0 */ 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0ab0 */ 32, 32, 32, 32, 32, 32, 48, 54,100, 97, 32, 32, 48, 32, 32, 48,
/* 0x0ac0 */ 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78,
/* 0x0ad0 */ 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73,
/* 0x0ae0 */ 78, 90, 32, 32, 32, 32, 32, 32, 48, 97, 32, 32, 48, 32, 32, 48,
/* 0x0af0 */ 32, 32, 48, 55, 48,101, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79,
/* 0x0b00 */ 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65,
/* 0x0b10 */ 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x0b20 */ 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48,
/* 0x0b30 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48,
/* 0x0b40 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65,
/* 0x0b50 */ 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48,
/* 0x0b60 */ 48, 48, 48, 48, 52, 56, 50, 32,103, 32, 32, 32, 32, 32, 70, 32,
/* 0x0b70 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 50, 53, 56, 32,117,112,
/* 0x0b80 */ 120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 10, 48, 48,
/* 0x0b90 */ 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42,
/* 0x0ba0 */ 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 48,
/* 0x0bb0 */ 48, 48, 48, 48, 49,100, 52, 32,103, 32, 32, 32, 32, 32, 32, 32,
/* 0x0bc0 */ 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,109,101,109,112, 99,
/* 0x0bd0 */ 112,121, 10, 48, 48, 48, 48, 48, 49, 55, 97, 32,103, 32, 32, 32,
/* 0x0be0 */ 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,109,
/* 0x0bf0 */ 109, 97,112, 10, 48, 48, 48, 48, 48, 49, 57,100, 32,103, 32, 32,
/* 0x0c00 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
/* 0x0c10 */ 117,110, 97,109,101, 10, 48, 48, 48, 48, 48, 49, 56, 56, 32,103,
/* 0x0c20 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32,
/* 0x0c30 */ 48, 32,103,101,116, 95,117,112,120,102,110, 95,112, 97,116,104,
/* 0x0c40 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32,
/* 0x0c50 */ 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116,
/* 0x0c60 */ 97,114,116, 10, 48, 48, 48, 48, 48, 49, 99, 50, 32,103, 32, 32,
/* 0x0c70 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
/* 0x0c80 */ 109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 49,102, 52, 32,
/* 0x0c90 */ 103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0ca0 */ 32, 48, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48,
/* 0x0cb0 */ 49, 56, 98, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0cc0 */ 65, 73, 78, 88, 32, 48, 32,115,116, 97,116, 10, 48, 48, 48, 48,
/* 0x0cd0 */ 48, 49, 97, 99, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70,
/* 0x0ce0 */ 77, 65, 73, 78, 88, 32, 48, 32,109,107,100,105,114, 10, 10, 82,
/* 0x0cf0 */ 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68,
/* 0x0d00 */ 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93,
/* 0x0d10 */ 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32,
/* 0x0d20 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76,
/* 0x0d30 */ 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 53, 32, 82, 95, 51, 56,
/* 0x0d40 */ 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76,
/* 0x0d50 */ 70, 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 97, 53, 32,
/* 0x0d60 */ 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32,
/* 0x0d70 */ 32, 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,
/* 0x0d80 */ 100, 10, 48, 48, 48, 48, 48, 49, 53, 50, 32, 82, 95, 51, 56, 54,
/* 0x0d90 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,109, 97,
/* 0x0da0 */ 112, 10, 48, 48, 48, 48, 48, 50, 48, 99, 32, 82, 95, 51, 56, 54,
/* 0x0db0 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,
/* 0x0dc0 */ 115,101,116, 10, 48, 48, 48, 48, 48, 50, 53, 98, 32, 82, 95, 51,
/* 0x0dd0 */ 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,
/* 0x0de0 */ 121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, 51, 50, 49, 32,
/* 0x0df0 */ 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32,
/* 0x0e00 */ 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, 51,
/* 0x0e10 */ 53, 53, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x0e20 */ 32, 32, 32, 32, 32,109,101,109,112, 99,112,121, 10, 48, 48, 48,
/* 0x0e30 */ 48, 48, 51, 98, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50,
/* 0x0e40 */ 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,112, 99,112,121, 10,
/* 0x0e50 */ 48, 48, 48, 48, 48, 53, 48, 48, 32, 82, 95, 51, 56, 54, 95, 80,
/* 0x0e60 */ 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,
/* 0x0e70 */ 112,116, 10, 48, 48, 48, 48, 48, 53, 55, 57, 32, 82, 95, 51, 56,
/* 0x0e80 */ 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,103,101,
/* 0x0e90 */ 116, 95,117,112,120,102,110, 95,112, 97,116,104, 10, 48, 48, 48,
/* 0x0ea0 */ 48, 48, 54, 50, 97, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50,
/* 0x0eb0 */ 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,115,101,116, 10, 48,
/* 0x0ec0 */ 48, 48, 48, 48, 54, 97,101, 32, 82, 95, 51, 56, 54, 95, 80, 67,
/* 0x0ed0 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,109, 97,112, 10, 10,
/* 0x0ee0 */ 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82,
/* 0x0ef0 */ 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x0f00 */ 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69,
/* 0x0f10 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65,
/* 0x0f20 */ 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 51,
/* 0x0f30 */ 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69,
/* 0x0f40 */ 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48, 48, 48, 54,
/* 0x0f50 */ 32, 82, 95, 51, 56, 54, 95, 51, 50, 32, 32, 32, 32, 32, 32, 32,
/* 0x0f60 */ 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
};

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,5 @@
/* i386-linux.elf-so_entry.h
created from i386-linux.elf-so_entry.bin, 3374 (0xd2e) bytes
created from i386-linux.elf-so_entry.bin, 3619 (0xe23) bytes
This file is part of the UPX executable compressor.
@ -32,14 +32,14 @@
/* clang-format off */
#define STUB_I386_LINUX_ELF_SO_ENTRY_SIZE 3374
#define STUB_I386_LINUX_ELF_SO_ENTRY_ADLER32 0x19a620f2
#define STUB_I386_LINUX_ELF_SO_ENTRY_CRC32 0xb8cf79df
#define STUB_I386_LINUX_ELF_SO_ENTRY_SIZE 3619
#define STUB_I386_LINUX_ELF_SO_ENTRY_ADLER32 0x07bc6de7
#define STUB_I386_LINUX_ELF_SO_ENTRY_CRC32 0xcee1e975
unsigned char stub_i386_linux_elf_so_entry[3374] = {
unsigned char stub_i386_linux_elf_so_entry[3619] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 196, 6, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0020 */ 56, 7, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 8, 0, 5, 0, 96,232, 71, 0, 0, 0, 1,219,116, 2,243,195,
/* 0x0040 */ 139, 30,131,238,252, 17,219,195, 94,102,131,126, 8, 2,116, 1,
/* 0x0050 */ 244,139, 14,141,137, 24, 1, 0, 0, 81,106, 90, 87,141, 66,234,
@ -61,191 +61,207 @@ unsigned char stub_i386_linux_elf_so_entry[3374] = {
/* 0x0150 */ 4,106, 90, 88,205,128, 61, 0,240,255,255,114, 1,244,194, 24,
/* 0x0160 */ 0, 0, 0, 0, 85,137,229, 86, 83,131,236, 72,106, 64,104,255,
/* 0x0170 */ 0, 0, 0,141,117,184, 86,232,252,255,255,255,131,196, 12,139,
/* 0x0180 */ 93, 8,137,241,106,106, 88,205,128,137,194,133,192,120, 21, 15,
/* 0x0190 */ 183, 69,192, 37, 0,240, 0, 0,185, 0, 0, 0, 0, 61, 0, 64,
/* 0x01a0 */ 0, 0,116, 39,131,250,254,117, 32,185,192, 1, 0, 0,139, 93,
/* 0x01b0 */ 8,106, 39, 88,205,128,137,194,131,248,254,117, 12,187,255,255,
/* 0x01c0 */ 255,255,106, 1, 88,205,128,235,254,137,209,137,200,141,101,248,
/* 0x01d0 */ 91, 94,201,195,139, 68, 36, 4,137,194,131,226, 31,131,224, 63,
/* 0x01e0 */ 131,250, 26,118, 12,168, 32,116, 5,131,232, 70,235, 3,131,232,
/* 0x01f0 */ 43,131,192, 64,195, 85,137,229, 87, 86, 83,131,236, 20,232, 12,
/* 0x0200 */ 0, 0, 0, 47,100, 97,116, 97, 47,100, 97,116, 97, 47, 0, 90,
/* 0x0210 */ 139, 2,139, 77, 8,137, 1,139, 66, 4,137, 65, 4,102,139, 66,
/* 0x0220 */ 8,102,137, 65, 8,138, 66, 10,136, 65, 10,198, 65, 11, 0, 81,
/* 0x0230 */ 232, 47,255,255,255,131,196, 4,232, 19, 0, 0, 0, 47,112,114,
/* 0x0240 */ 111, 99, 47,115,101,108,102, 47, 99,109,100,108,105,110,101, 0,
/* 0x0250 */ 94,185, 0, 0, 0, 0,137,243,137,202,106, 5, 88,205,128,137,
/* 0x0260 */ 69,232,139,117, 12,186,255, 15, 0, 0,137,195,137,241,106, 3,
/* 0x0270 */ 88,205,128,137,199,139, 93,232,106, 6, 88,205,128,137,248,133,
/* 0x0280 */ 255, 15,136,178, 0, 0, 0,198, 4, 62, 0,128, 62, 0,116, 6,
/* 0x0290 */ 70,128, 62, 0,117,250,137,240,128, 62, 47,116, 6, 78,128, 62,
/* 0x02a0 */ 47,117,250, 41,240, 80, 86,139, 69, 8,131,192, 10, 80,232,252,
/* 0x02b0 */ 255,255,255,137,195,198, 0, 0,255,117, 8,232,164,254,255,255,
/* 0x02c0 */ 131,196, 16,232, 7, 0, 0, 0, 47, 99, 97, 99,104,101, 0, 90,
/* 0x02d0 */ 139, 2,137, 3,102,139, 66, 4,102,137, 67, 4,131,195, 6,198,
/* 0x02e0 */ 3, 0,255,117, 8,232,122,254,255,255,232, 5, 0, 0, 0, 47,
/* 0x02f0 */ 117,112,120, 0, 88,139, 0,137, 3,141,115, 4,106, 20, 88,205,
/* 0x0300 */ 128,137,195,137, 4, 36,232,201,254,255,255,136, 6,137,216,193,
/* 0x0310 */ 232, 6,137, 4, 36,232,186,254,255,255,136, 70, 1,137,216,193,
/* 0x0320 */ 232, 12,137, 4, 36,232,170,254,255,255,131,196, 4,136, 70, 2,
/* 0x0330 */ 198, 70, 3, 0,184, 0, 0, 0, 0,141,101,244, 91, 94, 95,201,
/* 0x0340 */ 195, 86, 83,139,116, 36, 12,139, 92, 36, 16,139, 76, 36, 20, 73,
/* 0x0350 */ 131,249,255,116, 30,138, 22,131,202, 32, 15,190,210,138, 3,131,
/* 0x0360 */ 200, 32, 15,190,192, 67, 70, 41,194,137,208,117, 11, 73,131,249,
/* 0x0370 */ 255,117,226,184, 0, 0, 0, 0, 91, 94,195, 85,137,229, 87, 86,
/* 0x0380 */ 83,129,236, 68, 16, 0, 0,186, 0, 0, 0, 0,232, 4, 0, 0,
/* 0x0390 */ 0,117,112,120, 0, 94,185, 16, 0, 0, 0,184,100, 1, 0, 0,
/* 0x03a0 */ 137,243,205,128,137,199,131,248,234,117, 13,184,100, 1, 0, 0,
/* 0x03b0 */ 137,243,137,209,205,128,137,199,133,255,121, 68,232, 9, 0, 0,
/* 0x03c0 */ 0, 47,100,101,118, 47,115,104,109, 0, 95,185, 2, 0, 65, 0,
/* 0x03d0 */ 190,192, 1, 0, 0,137,251,137,242,106, 5, 88,205,128,137,199,
/* 0x03e0 */ 133,192,121, 28,232, 13, 0, 0, 0,109,101,109,102,100, 95, 99,
/* 0x03f0 */ 114,101, 97,116,101, 0, 88, 80,232,252,255,255,255,131,196, 4,
/* 0x0400 */ 141,181,244,239,255,255,137,243,106,122, 88,205,128,199,133,220,
/* 0x0410 */ 239,255,255, 0, 0, 0, 0,232, 4, 0, 0, 0, 97,110,100, 0,
/* 0x0420 */ 88,106, 3, 86, 80,232, 23,255,255,255,131,196, 12,133,192,116,
/* 0x0430 */ 45,232, 4, 0, 0, 0, 76,105,110, 0, 88,106, 3, 86, 80,232,
/* 0x0440 */ 253,254,255,255,131,196, 12,133,192,117, 19,128,189,118,240,255,
/* 0x0450 */ 255, 52,126, 10,199,133,220,239,255,255, 1, 0, 0, 0,131,189,
/* 0x0460 */ 220,239,255,255, 0, 15,133,128, 0, 0, 0,131,125, 16, 0,117,
/* 0x0470 */ 28,232,252,255,255,255,137, 69, 16,133,192,117, 16,141,133,244,
/* 0x0480 */ 239,255,255,137, 69, 16,198,133,244,239,255,255, 0,131,189,220,
/* 0x0490 */ 239,255,255, 0,117, 85,131,255,218,117, 80,131,125, 16, 0,116,
/* 0x04a0 */ 74,139, 85, 16,128, 58, 0,117, 26,141,133,244,239,255,255, 80,
/* 0x04b0 */ 82,232, 63,253,255,255,131,196, 8,137,193,133,192, 15,136, 6,
/* 0x04c0 */ 1, 0, 0,185,194, 0, 0, 0,190,192, 1, 0, 0,139, 93, 16,
/* 0x04d0 */ 137,242,106, 5, 88,205,128,137,199,137,193,133,192, 15,136,230,
/* 0x04e0 */ 0, 0, 0,139, 93, 16,106, 10, 88,205,128,131,125, 12, 0, 15,
/* 0x04f0 */ 132,153, 0, 0, 0,131,189,220,239,255,255, 0,116, 22,137,251,
/* 0x0500 */ 139, 77, 12,106, 93, 88,205,128,137,193,133,192, 15,136,183, 0,
/* 0x0510 */ 0, 0,235,122,141,133,244,239,255,255,104, 0, 16, 0, 0,106,
/* 0x0520 */ 0, 80,232,252,255,255,255,139, 69, 12,137,133,200,239,255,255,
/* 0x0530 */ 131,196, 12,133,192,116, 73,141,181,244,239,255,255,139,149,200,
/* 0x0540 */ 239,255,255,137,149,176,239,255,255,129,250, 0, 16, 0, 0,118,
/* 0x0550 */ 10,199,133,176,239,255,255, 0, 16, 0, 0,137,251,137,241,139,
/* 0x0560 */ 149,176,239,255,255,106, 4, 88,205,128, 59,133,176,239,255,255,
/* 0x0570 */ 117, 73,139,133,176,239,255,255, 41,133,200,239,255,255,117,189,
/* 0x0580 */ 185, 0, 0, 0, 0,137,251,137,202,106, 19, 88,205,128,106, 0,
/* 0x0590 */ 87,131,125, 8, 1, 25,192,131,224,240,131,192, 17, 80,106, 3,
/* 0x05a0 */ 255,117, 12,255,117, 8,232,252,255,255,255,137,194,131,196, 24,
/* 0x05b0 */ 137,193, 61, 0,240,255,255,119, 16,235, 7,185,228,255,255,255,
/* 0x05c0 */ 235, 7,141, 71, 1,137,193, 9,209,137,200,141,101,244, 91, 94,
/* 0x05d0 */ 95,201,195, 49,192,195, 85,137,229, 87,139, 77, 16,139, 69, 12,
/* 0x05e0 */ 139,125, 8,243,170, 95, 93,195, 85,137,229, 87, 86,139, 77, 16,
/* 0x05f0 */ 139,117, 12,139,125, 8,243,164,137,248, 94, 95, 93,195,204,195,
/* 0x0600 */ 83,141, 92, 36, 8,176, 90,232, 2, 0, 0, 0, 91,195, 15,182,
/* 0x0610 */ 192, 80,205,128, 90, 61, 0,240,255,255,115, 1,195,244,129,236,
/* 0x0620 */ 0, 2, 0, 0, 49,210,232, 16, 0, 0, 0, 47,112,114,111, 99,
/* 0x0630 */ 47,115,101,108,102, 47, 97,117,120,118, 0, 89,106,156, 91,184,
/* 0x0640 */ 39, 1, 0, 0,205,128,133,192,124, 40,137,197,186, 0, 2, 0,
/* 0x0650 */ 0,137,225,137,195,106, 3, 88,205,128,133,192,124, 20,137,193,
/* 0x0660 */ 137,230,173,133,192,116, 11,131,248, 6,173,116, 10,131,233, 8,
/* 0x0670 */ 117,240,184, 0, 16, 0, 0,247,216,129,196, 0, 2, 0, 0, 80,
/* 0x0680 */ 137,235,106, 6, 88,205,128, 95, 90,232, 16, 0, 0, 0, 0, 46,
/* 0x0690 */ 115,121,109,116, 97, 98, 0, 46,115,116,114,116, 97, 98, 0, 46,
/* 0x06a0 */ 115,104,115,116,114,116, 97, 98, 0, 46,114,101,108, 69, 76, 70,
/* 0x06b0 */ 77, 65, 73, 78, 88, 0, 46,114,101,108, 69, 76, 70, 77, 65, 73,
/* 0x06c0 */ 78, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x06d0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x06e0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
/* 0x06f0 */ 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0,
/* 0x0700 */ 159, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0,
/* 0x0710 */ 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x0720 */ 0, 0, 0, 0,232, 8, 0, 0, 64, 0, 0, 0, 6, 0, 0, 0,
/* 0x0730 */ 1, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 44, 0, 0, 0,
/* 0x0740 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,211, 5, 0, 0,
/* 0x0750 */ 187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0760 */ 0, 0, 0, 0, 40, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0,
/* 0x0770 */ 0, 0, 0, 0, 40, 9, 0, 0, 8, 0, 0, 0, 6, 0, 0, 0,
/* 0x0780 */ 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0, 17, 0, 0, 0,
/* 0x0790 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,142, 6, 0, 0,
/* 0x07a0 */ 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x07b0 */ 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x07c0 */ 0, 0, 0, 0, 4, 8, 0, 0,160, 0, 0, 0, 7, 0, 0, 0,
/* 0x07d0 */ 4, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0,
/* 0x07e0 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,164, 8, 0, 0,
/* 0x07f0 */ 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0800 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0810 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0820 */ 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0830 */ 3, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0840 */ 0, 0, 1, 0, 8, 0, 0, 0, 71, 3, 0, 0, 88, 2, 0, 0,
/* 0x0850 */ 18, 0, 1, 0, 24, 0, 0, 0, 21, 0, 0, 0, 0, 0, 0, 0,
/* 0x0860 */ 16, 0, 3, 0, 32, 0, 0, 0, 45, 0, 0, 0, 0, 0, 0, 0,
/* 0x0870 */ 16, 0, 3, 0, 37, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0880 */ 16, 0, 3, 0, 52, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0,
/* 0x0890 */ 16, 0, 3, 0, 59, 0, 0, 0, 43, 0, 0, 0, 0, 0, 0, 0,
/* 0x08a0 */ 16, 0, 3, 0, 0, 95,115,116, 97,114,116, 0,117,112,120, 95,
/* 0x08b0 */ 109,109, 97,112, 95, 97,110,100, 95,102,100, 0,109,101,109,112,
/* 0x08c0 */ 99,112,121, 0,109,109, 97,112, 0,103,101,116, 95,117,112,120,
/* 0x08d0 */ 102,110, 95,112, 97,116,104, 0,109,101,109,115,101,116, 0,109,
/* 0x08e0 */ 121, 95, 98,107,112,116, 0, 0, 2, 0, 0, 0, 2, 2, 0, 0,
/* 0x08f0 */ 67, 0, 0, 0, 2, 4, 0, 0, 68, 1, 0, 0, 2, 8, 0, 0,
/* 0x0900 */ 123, 2, 0, 0, 2, 5, 0, 0,197, 3, 0, 0, 2, 9, 0, 0,
/* 0x0910 */ 62, 4, 0, 0, 2, 7, 0, 0,239, 4, 0, 0, 2, 8, 0, 0,
/* 0x0920 */ 115, 5, 0, 0, 2, 6, 0, 0,183, 0, 0, 0, 2, 1, 0, 0,
/* 0x0930 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 51,
/* 0x0940 */ 50, 45,105, 51, 56, 54, 10, 10, 83,101, 99,116,105,111,110,115,
/* 0x0950 */ 58, 10, 73,100,120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32,
/* 0x0960 */ 32, 32, 32, 32, 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77,
/* 0x0970 */ 65, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32,
/* 0x0980 */ 32, 32, 70,105,108,101, 32,111,102,102, 32, 32, 65,108,103,110,
/* 0x0990 */ 32, 32, 70,108, 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77,
/* 0x09a0 */ 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48, 53, 57,102, 32, 32,
/* 0x09b0 */ 48, 32, 32, 48, 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32,
/* 0x09c0 */ 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76,
/* 0x09d0 */ 70, 77, 65, 73, 78, 90, 32, 32, 32, 32, 32, 32, 48, 98, 98, 32,
/* 0x09e0 */ 32, 48, 32, 32, 48, 32, 32, 48, 53,100, 51, 32, 32, 50, 42, 42,
/* 0x09f0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66,
/* 0x0a00 */ 79, 76, 32, 84, 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48,
/* 0x0a10 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65,
/* 0x0a20 */ 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48,
/* 0x0a30 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x0a40 */ 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65,
/* 0x0a50 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x0a60 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32,
/* 0x0a70 */ 95,115,116, 97,114,116, 10, 48, 48, 48, 48, 48, 51, 52, 55, 32,
/* 0x0a80 */ 103, 32, 32, 32, 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0a90 */ 32, 48, 50, 53, 56, 32,117,112,120, 95,109,109, 97,112, 95, 97,
/* 0x0aa0 */ 110,100, 95,102,100, 10, 48, 48, 48, 48, 48, 48, 49, 53, 32,103,
/* 0x0ab0 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x0ac0 */ 48, 32,109,101,109,112, 99,112,121, 10, 48, 48, 48, 48, 48, 48,
/* 0x0ad0 */ 50,100, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65,
/* 0x0ae0 */ 73, 78, 90, 32, 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48,
/* 0x0af0 */ 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77,
/* 0x0b00 */ 65, 73, 78, 90, 32, 48, 32,103,101,116, 95,117,112,120,102,110,
/* 0x0b10 */ 95,112, 97,116,104, 10, 48, 48, 48, 48, 48, 48, 48, 51, 32,103,
/* 0x0b20 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x0b30 */ 48, 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 48, 50,
/* 0x0b40 */ 98, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x0b50 */ 78, 90, 32, 48, 32,109,121, 95, 98,107,112,116, 10, 10, 82, 69,
/* 0x0b60 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x0b70 */ 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58,
/* 0x0b80 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x0b90 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x0ba0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, 56, 54,
/* 0x0bb0 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70,
/* 0x0bc0 */ 77, 65, 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 52, 51, 32, 82,
/* 0x0bd0 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32,
/* 0x0be0 */ 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100,
/* 0x0bf0 */ 10, 48, 48, 48, 48, 48, 49, 52, 52, 32, 82, 95, 51, 56, 54, 95,
/* 0x0c00 */ 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,115,
/* 0x0c10 */ 101,116, 10, 48, 48, 48, 48, 48, 50, 55, 98, 32, 82, 95, 51, 56,
/* 0x0c20 */ 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,
/* 0x0c30 */ 109,112, 99,112,121, 10, 48, 48, 48, 48, 48, 51, 99, 53, 32, 82,
/* 0x0c40 */ 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32,
/* 0x0c50 */ 32,109,121, 95, 98,107,112,116, 10, 48, 48, 48, 48, 48, 52, 51,
/* 0x0c60 */ 101, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32,
/* 0x0c70 */ 32, 32, 32, 32,103,101,116, 95,117,112,120,102,110, 95,112, 97,
/* 0x0c80 */ 116,104, 10, 48, 48, 48, 48, 48, 52,101,102, 32, 82, 95, 51, 56,
/* 0x0c90 */ 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,101,
/* 0x0ca0 */ 109,115,101,116, 10, 48, 48, 48, 48, 48, 53, 55, 51, 32, 82, 95,
/* 0x0cb0 */ 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0cc0 */ 109,109, 97,112, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x0cd0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x0ce0 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x0cf0 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0d00 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x0d10 */ 98, 55, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x0d20 */ 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10
/* 0x0180 */ 93, 8,137,241,106,106, 88,205,128,137,198,133,192,120, 21, 15,
/* 0x0190 */ 183, 69,192, 37, 0,240, 0, 0,186, 0, 0, 0, 0, 61, 0, 64,
/* 0x01a0 */ 0, 0,116, 44,131,254,254,117, 15,185,192, 1, 0, 0,139, 93,
/* 0x01b0 */ 8,106, 39, 88,205,128,137,198,133,246,121, 18,131,125, 12, 0,
/* 0x01c0 */ 116, 12, 86,255,117, 8,232,252,255,255,255,131,196, 8,137,242,
/* 0x01d0 */ 137,208,141,101,248, 91, 94,201,195,139, 68, 36, 4,137,194,131,
/* 0x01e0 */ 226, 31,131,224, 63,131,250, 26,118, 12,168, 32,116, 5,131,232,
/* 0x01f0 */ 70,235, 3,131,232, 43,131,192, 64,195, 85,137,229, 87, 86, 83,
/* 0x0200 */ 131,236, 32,232, 12, 0, 0, 0, 47,100, 97,116, 97, 47,100, 97,
/* 0x0210 */ 116, 97, 47, 0, 90,139, 2,139, 77, 8,137, 1,139, 66, 4,137,
/* 0x0220 */ 65, 4,102,139, 66, 8,102,137, 65, 8,138, 66, 10,136, 65, 10,
/* 0x0230 */ 198, 65, 11, 0,106, 1, 81,232, 40,255,255,255,131,196, 8,232,
/* 0x0240 */ 19, 0, 0, 0, 47,112,114,111, 99, 47,115,101,108,102, 47, 99,
/* 0x0250 */ 109,100,108,105,110,101, 0, 91,137, 93,220,185, 0, 0, 0, 0,
/* 0x0260 */ 137,202,106, 5, 88,205,128,137, 69,240,139,117, 12,186,255, 15,
/* 0x0270 */ 0, 0,137,195,137,241,106, 3, 88,205,128,137,199,139, 93,240,
/* 0x0280 */ 106, 6, 88,205,128,133,255,121, 11,255,117,220,232,252,255,255,
/* 0x0290 */ 255,131,196, 4,198, 4, 62, 0,128, 62, 0,116, 6, 70,128, 62,
/* 0x02a0 */ 0,117,250,137,247,128, 62, 47,116, 6, 78,128, 62, 47,117,250,
/* 0x02b0 */ 137,117,224,137,248, 41,240, 80, 86,139, 69, 8,131,192, 10, 80,
/* 0x02c0 */ 232,252,255,255,255,137,195,198, 0, 0,106, 0,255,117, 8,232,
/* 0x02d0 */ 144,254,255,255,131,196, 20,131,248,243,117, 87,232, 17, 0, 0,
/* 0x02e0 */ 0, 99,111,109, 46,116,101,114,109,117,120, 47,102,105,108,101,
/* 0x02f0 */ 115, 0, 90,139, 2,139, 77, 8,137, 65, 11,139, 66, 4,137, 65,
/* 0x0300 */ 15,139, 66, 8,137, 65, 19,139, 66, 12,137, 65, 23,137,202,131,
/* 0x0310 */ 194, 27,137,248, 43, 69,224, 80,255,117,224, 82,232,252,255,255,
/* 0x0320 */ 255,137,195,198, 0, 0,106, 1,255,117, 8,232, 52,254,255,255,
/* 0x0330 */ 131,196, 20,232, 7, 0, 0, 0, 47, 99, 97, 99,104,101, 0, 90,
/* 0x0340 */ 139, 2,137, 3,102,139, 66, 4,102,137, 67, 4,141,115, 6,198,
/* 0x0350 */ 6, 0,106, 1,255,117, 8,232, 8,254,255,255,131,196, 8,232,
/* 0x0360 */ 5, 0, 0, 0, 47,117,112,120, 0, 88,139, 0,137, 6,141,126,
/* 0x0370 */ 4,106, 20, 88,205,128,137,198, 80,232, 91,254,255,255,136, 7,
/* 0x0380 */ 137,240,193,232, 6,137, 4, 36,232, 76,254,255,255,136, 71, 1,
/* 0x0390 */ 137,240,193,232, 12,137, 4, 36,232, 60,254,255,255,131,196, 4,
/* 0x03a0 */ 136, 71, 2,198, 71, 3, 0,184, 0, 0, 0, 0,141,101,244, 91,
/* 0x03b0 */ 94, 95,201,195, 86, 83,139,116, 36, 12,139, 92, 36, 16,139, 76,
/* 0x03c0 */ 36, 20, 73,131,249,255,116, 30,138, 22,131,202, 32, 15,190,210,
/* 0x03d0 */ 138, 3,131,200, 32, 15,190,192, 67, 70, 41,194,137,208,117, 11,
/* 0x03e0 */ 73,131,249,255,117,226,184, 0, 0, 0, 0, 91, 94,195, 85,137,
/* 0x03f0 */ 229, 87, 86, 83,129,236, 68, 16, 0, 0,186, 0, 0, 0, 0,232,
/* 0x0400 */ 4, 0, 0, 0,117,112,120, 0, 94,185, 16, 0, 0, 0,184,100,
/* 0x0410 */ 1, 0, 0,137,243,205,128,137,199,131,248,234,117, 13,184,100,
/* 0x0420 */ 1, 0, 0,137,243,137,209,205,128,137,199,133,255,121, 68,232,
/* 0x0430 */ 9, 0, 0, 0, 47,100,101,118, 47,115,104,109, 0, 95,185, 2,
/* 0x0440 */ 0, 65, 0,190,192, 1, 0, 0,137,251,137,242,106, 5, 88,205,
/* 0x0450 */ 128,137,199,133,192,121, 28,232, 13, 0, 0, 0,109,101,109,102,
/* 0x0460 */ 100, 95, 99,114,101, 97,116,101, 0, 88, 80,232,252,255,255,255,
/* 0x0470 */ 131,196, 4,141,181,244,239,255,255,137,243,106,122, 88,205,128,
/* 0x0480 */ 199,133,220,239,255,255, 0, 0, 0, 0,232, 4, 0, 0, 0, 97,
/* 0x0490 */ 110,100, 0, 88,106, 3, 86, 80,232, 23,255,255,255,131,196, 12,
/* 0x04a0 */ 133,192,116, 45,232, 4, 0, 0, 0, 76,105,110, 0, 88,106, 3,
/* 0x04b0 */ 86, 80,232,253,254,255,255,131,196, 12,133,192,117, 19,128,189,
/* 0x04c0 */ 118,240,255,255, 52,126, 10,199,133,220,239,255,255, 1, 0, 0,
/* 0x04d0 */ 0,131,189,220,239,255,255, 0, 15,133,128, 0, 0, 0,131,125,
/* 0x04e0 */ 16, 0,117, 28,232,252,255,255,255,137, 69, 16,133,192,117, 16,
/* 0x04f0 */ 141,133,244,239,255,255,137, 69, 16,198,133,244,239,255,255, 0,
/* 0x0500 */ 131,189,220,239,255,255, 0,117, 85,131,255,218,117, 80,131,125,
/* 0x0510 */ 16, 0,116, 74,139, 85, 16,128, 58, 0,117, 26,141,133,244,247,
/* 0x0520 */ 255,255, 80, 82,232,209,252,255,255,131,196, 8,137,193,133,192,
/* 0x0530 */ 15,136, 6, 1, 0, 0,185,194, 0, 0, 0,190,192, 1, 0, 0,
/* 0x0540 */ 139, 93, 16,137,242,106, 5, 88,205,128,137,199,137,193,133,192,
/* 0x0550 */ 15,136,230, 0, 0, 0,139, 93, 16,106, 10, 88,205,128,131,125,
/* 0x0560 */ 12, 0, 15,132,153, 0, 0, 0,131,189,220,239,255,255, 0,116,
/* 0x0570 */ 22,137,251,139, 77, 12,106, 93, 88,205,128,137,193,133,192, 15,
/* 0x0580 */ 136,183, 0, 0, 0,235,122,141,133,244,239,255,255,104, 0, 16,
/* 0x0590 */ 0, 0,106, 0, 80,232,252,255,255,255,139, 69, 12,137,133,200,
/* 0x05a0 */ 239,255,255,131,196, 12,133,192,116, 73,141,181,244,239,255,255,
/* 0x05b0 */ 139,149,200,239,255,255,137,149,176,239,255,255,129,250, 0, 16,
/* 0x05c0 */ 0, 0,118, 10,199,133,176,239,255,255, 0, 16, 0, 0,137,251,
/* 0x05d0 */ 137,241,139,149,176,239,255,255,106, 4, 88,205,128, 59,133,176,
/* 0x05e0 */ 239,255,255,117, 73,139,133,176,239,255,255, 41,133,200,239,255,
/* 0x05f0 */ 255,117,189,185, 0, 0, 0, 0,137,251,137,202,106, 19, 88,205,
/* 0x0600 */ 128,106, 0, 87,131,125, 8, 1, 25,192,131,224,240,131,192, 17,
/* 0x0610 */ 80,106, 3,255,117, 12,255,117, 8,232,252,255,255,255,137,194,
/* 0x0620 */ 131,196, 24,137,193, 61, 0,240,255,255,119, 16,235, 7,185,228,
/* 0x0630 */ 255,255,255,235, 7,141, 71, 1,137,193, 9,209,137,200,141,101,
/* 0x0640 */ 244, 91, 94, 95,201,195, 49,192,195, 85,137,229, 87,139, 77, 16,
/* 0x0650 */ 139, 69, 12,139,125, 8,243,170, 95, 93,195, 85,137,229, 87, 86,
/* 0x0660 */ 139, 77, 16,139,117, 12,139,125, 8,243,164,137,248, 94, 95, 93,
/* 0x0670 */ 195,204,195, 83,141, 92, 36, 8,176, 90,232, 2, 0, 0, 0, 91,
/* 0x0680 */ 195, 15,182,192, 80,205,128, 90, 61, 0,240,255,255,115, 1,195,
/* 0x0690 */ 244,129,236, 0, 2, 0, 0, 49,210,232, 16, 0, 0, 0, 47,112,
/* 0x06a0 */ 114,111, 99, 47,115,101,108,102, 47, 97,117,120,118, 0, 89,106,
/* 0x06b0 */ 156, 91,184, 39, 1, 0, 0,205,128,133,192,124, 40,137,197,186,
/* 0x06c0 */ 0, 2, 0, 0,137,225,137,195,106, 3, 88,205,128,133,192,124,
/* 0x06d0 */ 20,137,193,137,230,173,133,192,116, 11,131,248, 6,173,116, 10,
/* 0x06e0 */ 131,233, 8,117,240,184, 0, 16, 0, 0,247,216,129,196, 0, 2,
/* 0x06f0 */ 0, 0, 80,137,235,106, 6, 88,205,128, 95, 90,232, 16, 0, 0,
/* 0x0700 */ 0, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,114,116, 97,
/* 0x0710 */ 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,114,101,108,
/* 0x0720 */ 69, 76, 70, 77, 65, 73, 78, 88, 0, 46,114,101,108, 69, 76, 70,
/* 0x0730 */ 77, 65, 73, 78, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0740 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0750 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0760 */ 31, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0,
/* 0x0770 */ 52, 0, 0, 0, 18, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0780 */ 4, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0, 9, 0, 0, 0,
/* 0x0790 */ 0, 0, 0, 0, 0, 0, 0, 0, 92, 9, 0, 0, 88, 0, 0, 0,
/* 0x07a0 */ 6, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,
/* 0x07b0 */ 44, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x07c0 */ 70, 6, 0, 0,187, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x07d0 */ 1, 0, 0, 0, 0, 0, 0, 0, 40, 0, 0, 0, 9, 0, 0, 0,
/* 0x07e0 */ 0, 0, 0, 0, 0, 0, 0, 0,180, 9, 0, 0, 8, 0, 0, 0,
/* 0x07f0 */ 6, 0, 0, 0, 3, 0, 0, 0, 4, 0, 0, 0, 8, 0, 0, 0,
/* 0x0800 */ 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0810 */ 1, 7, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0820 */ 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0,
/* 0x0830 */ 0, 0, 0, 0, 0, 0, 0, 0,120, 8, 0, 0,160, 0, 0, 0,
/* 0x0840 */ 7, 0, 0, 0, 4, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0,
/* 0x0850 */ 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0860 */ 24, 9, 0, 0, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0870 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0880 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0890 */ 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x08a0 */ 0, 0, 0, 0, 3, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x08b0 */ 0, 0, 0, 0, 0, 0, 1, 0, 8, 0, 0, 0,186, 3, 0, 0,
/* 0x08c0 */ 88, 2, 0, 0, 18, 0, 1, 0, 24, 0, 0, 0, 21, 0, 0, 0,
/* 0x08d0 */ 0, 0, 0, 0, 16, 0, 3, 0, 32, 0, 0, 0, 45, 0, 0, 0,
/* 0x08e0 */ 0, 0, 0, 0, 16, 0, 3, 0, 37, 0, 0, 0, 0, 0, 0, 0,
/* 0x08f0 */ 0, 0, 0, 0, 16, 0, 3, 0, 52, 0, 0, 0, 3, 0, 0, 0,
/* 0x0900 */ 0, 0, 0, 0, 16, 0, 3, 0, 59, 0, 0, 0, 43, 0, 0, 0,
/* 0x0910 */ 0, 0, 0, 0, 16, 0, 3, 0, 0, 95,115,116, 97,114,116, 0,
/* 0x0920 */ 117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 0,
/* 0x0930 */ 109,101,109,112, 99,112,121, 0,109,109, 97,112, 0,103,101,116,
/* 0x0940 */ 95,117,112,120,102,110, 95,112, 97,116,104, 0,109,101,109,115,
/* 0x0950 */ 101,116, 0,109,121, 95, 98,107,112,116, 0, 0, 2, 0, 0, 0,
/* 0x0960 */ 2, 2, 0, 0, 67, 0, 0, 0, 2, 4, 0, 0, 68, 1, 0, 0,
/* 0x0970 */ 2, 8, 0, 0,147, 1, 0, 0, 2, 9, 0, 0, 89, 2, 0, 0,
/* 0x0980 */ 2, 9, 0, 0,141, 2, 0, 0, 2, 5, 0, 0,233, 2, 0, 0,
/* 0x0990 */ 2, 5, 0, 0, 56, 4, 0, 0, 2, 9, 0, 0,177, 4, 0, 0,
/* 0x09a0 */ 2, 7, 0, 0, 98, 5, 0, 0, 2, 8, 0, 0,230, 5, 0, 0,
/* 0x09b0 */ 2, 6, 0, 0,183, 0, 0, 0, 2, 1, 0, 0,102,105,108,101,
/* 0x09c0 */ 32,102,111,114,109, 97,116, 32,101,108,102, 51, 50, 45,105, 51,
/* 0x09d0 */ 56, 54, 10, 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,
/* 0x09e0 */ 120, 32, 78, 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x09f0 */ 83,105,122,101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32,
/* 0x0a00 */ 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 70,105,
/* 0x0a10 */ 108,101, 32,111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108,
/* 0x0a20 */ 97,103,115, 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x0a30 */ 32, 32, 32, 32, 32, 32, 48, 54, 49, 50, 32, 32, 48, 32, 32, 48,
/* 0x0a40 */ 32, 32, 48, 51, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78,
/* 0x0a50 */ 84, 69, 78, 84, 83, 10, 32, 32, 49, 32, 69, 76, 70, 77, 65, 73,
/* 0x0a60 */ 78, 90, 32, 32, 32, 32, 32, 32, 48, 98, 98, 32, 32, 48, 32, 32,
/* 0x0a70 */ 48, 32, 32, 48, 54, 52, 54, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x0a80 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84,
/* 0x0a90 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x0aa0 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32,
/* 0x0ab0 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48, 48,
/* 0x0ac0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x0ad0 */ 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10,
/* 0x0ae0 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32, 32, 32,
/* 0x0af0 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,
/* 0x0b00 */ 114,116, 10, 48, 48, 48, 48, 48, 51, 98, 97, 32,103, 32, 32, 32,
/* 0x0b10 */ 32, 32, 70, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 48, 50, 53,
/* 0x0b20 */ 56, 32,117,112,120, 95,109,109, 97,112, 95, 97,110,100, 95,102,
/* 0x0b30 */ 100, 10, 48, 48, 48, 48, 48, 48, 49, 53, 32,103, 32, 32, 32, 32,
/* 0x0b40 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,109,101,
/* 0x0b50 */ 109,112, 99,112,121, 10, 48, 48, 48, 48, 48, 48, 50,100, 32,103,
/* 0x0b60 */ 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32,
/* 0x0b70 */ 48, 32,109,109, 97,112, 10, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x0b80 */ 103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90,
/* 0x0b90 */ 32, 48, 32,103,101,116, 95,117,112,120,102,110, 95,112, 97,116,
/* 0x0ba0 */ 104, 10, 48, 48, 48, 48, 48, 48, 48, 51, 32,103, 32, 32, 32, 32,
/* 0x0bb0 */ 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32,109,101,
/* 0x0bc0 */ 109,115,101,116, 10, 48, 48, 48, 48, 48, 48, 50, 98, 32,103, 32,
/* 0x0bd0 */ 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 48,
/* 0x0be0 */ 32,109,121, 95, 98,107,112,116, 10, 10, 82, 69, 76, 79, 67, 65,
/* 0x0bf0 */ 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82,
/* 0x0c00 */ 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58, 10, 79, 70, 70,
/* 0x0c10 */ 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32,
/* 0x0c20 */ 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48,
/* 0x0c30 */ 48, 48, 48, 48, 48, 50, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51,
/* 0x0c40 */ 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x0c50 */ 90, 10, 48, 48, 48, 48, 48, 48, 52, 51, 32, 82, 95, 51, 56, 54,
/* 0x0c60 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,117,112,120,
/* 0x0c70 */ 95,109,109, 97,112, 95, 97,110,100, 95,102,100, 10, 48, 48, 48,
/* 0x0c80 */ 48, 48, 49, 52, 52, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50,
/* 0x0c90 */ 32, 32, 32, 32, 32, 32, 32, 32,109,101,109,115,101,116, 10, 48,
/* 0x0ca0 */ 48, 48, 48, 48, 49, 57, 51, 32, 82, 95, 51, 56, 54, 95, 80, 67,
/* 0x0cb0 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,112,
/* 0x0cc0 */ 116, 10, 48, 48, 48, 48, 48, 50, 53, 57, 32, 82, 95, 51, 56, 54,
/* 0x0cd0 */ 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,109,121, 95,
/* 0x0ce0 */ 98,107,112,116, 10, 48, 48, 48, 48, 48, 50, 56,100, 32, 82, 95,
/* 0x0cf0 */ 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x0d00 */ 109,101,109,112, 99,112,121, 10, 48, 48, 48, 48, 48, 50,101, 57,
/* 0x0d10 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x0d20 */ 32, 32, 32,109,101,109,112, 99,112,121, 10, 48, 48, 48, 48, 48,
/* 0x0d30 */ 52, 51, 56, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32,
/* 0x0d40 */ 32, 32, 32, 32, 32, 32,109,121, 95, 98,107,112,116, 10, 48, 48,
/* 0x0d50 */ 48, 48, 48, 52, 98, 49, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51,
/* 0x0d60 */ 50, 32, 32, 32, 32, 32, 32, 32, 32,103,101,116, 95,117,112,120,
/* 0x0d70 */ 102,110, 95,112, 97,116,104, 10, 48, 48, 48, 48, 48, 53, 54, 50,
/* 0x0d80 */ 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32, 32, 32,
/* 0x0d90 */ 32, 32, 32,109,101,109,115,101,116, 10, 48, 48, 48, 48, 48, 53,
/* 0x0da0 */ 101, 54, 32, 82, 95, 51, 56, 54, 95, 80, 67, 51, 50, 32, 32, 32,
/* 0x0db0 */ 32, 32, 32, 32, 32,109,109, 97,112, 10, 10, 82, 69, 76, 79, 67,
/* 0x0dc0 */ 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79,
/* 0x0dd0 */ 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70,
/* 0x0de0 */ 70, 83, 69, 84, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x0df0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x0e00 */ 48, 48, 48, 48, 48, 98, 55, 32, 82, 95, 51, 56, 54, 95, 80, 67,
/* 0x0e10 */ 51, 50, 32, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x0e20 */ 78, 88, 10
};

File diff suppressed because it is too large Load Diff

View File

@ -202,13 +202,13 @@ L70_ret:
sub mfd,r0,arg3
sub mfd,mfd,#1 // mfd
mov arg1,r4 // src
call f_decompress
call f_decompress; cmp r0,#0; beq 0f; bkpt; 0:
ldr arg3,[sp,#F_LENU]
ldr arg2,[sp,#F_ADRU]
mov arg1,mfd
str rPMASK,[arg2,#0] // forward the PAGE_MASK
call write
call write; cmp r0,arg3; beq 0f; bkpt; 0:
mov arg6,#0 // beginning of file
mov arg5,mfd
@ -216,7 +216,7 @@ L70_ret:
mov arg3,#PROT_READ|PROT_EXEC // prot
ldr arg2,[sp,#F_LENU]
ldr arg1,[sp,#F_ADRU] // addr
do_sys __NR_mmap2
do_sys __NR_mmap2; ldr arg3,[sp,#F_ADRU]; cmp r0,arg3; beq 0f; bkpt; 0:
mov arg1,mfd
.unreq mfd
@ -290,6 +290,7 @@ mempcpy: .globl mempcpy // (dst, src, n)
// Because called from C, then r7 is live; cannot use do_sys7t.
.globl memfd_create; memfd_create: do_sys2 __NR_memfd_create; ret
.globl close; close: do_sys __NR_close; ret
.globl exit; exit: do_sys __NR_exit; ret
.globl fdatasync; fdatasync: do_sys __NR_fdatasync; ret
.globl fsync; fsync: do_sys __NR_fsync; ret
.globl ftruncate; ftruncate: do_sys __NR_ftruncate; ret

View File

@ -85,6 +85,7 @@ F_PMASK= 2 * NBPW // extra copy?
.globl upx_so_main // in arm.v?a-linux.elf-so_main.c
section SO_HEAD
ZERO:
PAGE_MASK: .word 0xfffff000 // default
qflg_data: .word 0 // QNX vs Linux: MAP_PRIVATE | MAP_ANONYMOUS
upxfn_path:.word 0 // displacement from "zero"
@ -97,7 +98,7 @@ get_page_mask: .globl get_page_mask
ret
get_upxfn_path: .globl get_upxfn_path // char * (*)(void)
adr r1,fold_begin-3*NBPW // "zero"
adr r1,ZERO
ldr r0,[r1,#1*NBPW] // offset(upxfn_path)
cmp r0,#0; beq 1f // nullptr
add r0,r0,r1 // &path

View File

@ -34,7 +34,7 @@
extern void my_bkpt(void const *arg1, ...);
#define DEBUG 1
#define DEBUG 0
// Pprotect is mprotect, but page-aligned on the lo end (Linux requirement)
unsigned Pprotect(void *, size_t, unsigned);
@ -484,7 +484,6 @@ upx_so_main( // returns &escape_hatch
Elf32_Ehdr *elf_tmp // scratch for Elf32_Ehdr and Elf32_Phdrs
)
{
my_bkpt((void *)0x1234, so_info, so_args, elf_tmp);
unsigned long const page_mask = get_page_mask();
char *const va_load = (char *)&so_info->off_reloc - so_info->off_reloc;
So_info so_infc; // So_info Copy

View File

@ -140,6 +140,7 @@ extern int fstatat(int dirfd, const char *restrict pathname,
struct stat *restrict statbuf, int flags);
#define ENOENT 2 /* no such name */
#define EACCES 13 /* permission denied */
#define EINVAL 22 /* invalid arguemnt */
#define ENOSPC 28 /* no space left on device */
#define ENOSYS 38 /* no such system call */
@ -151,7 +152,7 @@ extern int stat(char const *path, struct stat *statbuf);
extern int mkdir(char const *path, unsigned mode);
__attribute__((__noinline__))
static int dir_check(char const *path)
static int dir_check(char const *path, int fatal)
{
struct stat sb;
memset(&sb,0xff, sizeof(sb)); // DEBUG aid
@ -164,8 +165,8 @@ static int dir_check(char const *path)
if (-ENOENT == rv) {
rv = mkdir(path, S_IRWXU);
}
if (-ENOENT == rv) {
exit(-1);
if (rv < 0 && fatal) {
my_bkpt(path, rv); // required path not available
}
return rv;
}
@ -206,14 +207,15 @@ static int create_upxfn_path(char *name, char *buf)
// Construct path "/data/data/$APP_NAME/cache/upxAAA".
// Note 'mempcpy' [with 'p' in the middle!] returns the end-of-string.
char *p = mempcpy(&name[0], addr_string("/data/data/"), 11); // '/' sentinel at end
p[0] = '\0'; dir_check(name);
p[0] = '\0'; dir_check(name, 1);
// Append the name of the app
int fd = open(addr_string("/proc/self/cmdline"), O_RDONLY, 0);
char const *q = addr_string("/proc/self/cmdline");
int fd = open(q, O_RDONLY, 0);
int rlen = read(fd, p= buf, -1+ PATH_MAX);
close(fd);
if (rlen < 0) {
return rlen; // failure
my_bkpt(q);
}
p[rlen] = '\0'; // insurance sentinel
// Kernel-parsed arguments are separated by '\0'.
@ -223,12 +225,19 @@ static int create_upxfn_path(char *name, char *buf)
char *app_end = p;
// Sentinel '/' at name[10] provides safety for backing up.
while ('/' != *p) --p; // find last component of argv[0]
q = p;
p = mempcpy(&name[10], p, app_end - p);
p[0] = '\0'; dir_check(name);
p[0] = '\0';
if (-EACCES == dir_check(name, 0)) {
p = mempcpy(&name[11], addr_string("com.termux/files"), 16);
p = mempcpy(p, q, app_end - q);
p[0] = '\0';
dir_check(name, 1);
}
}
p = mempcpy(p, addr_string("/cache"), 6);
p[0] = '\0'; dir_check(name);
p[0] = '\0'; dir_check(name, 1);
p = mempcpy(p, addr_string("/upx"), 4);
pid_t pid = getpid();
p[0] = sixbit(pid >> 0*6);
@ -347,7 +356,7 @@ unsigned long upx_mmap_and_fd( // returns (mapped_addr | (1+ fd))
}
if (!not_android && -ENOSYS == fd && pathname) {
if ('\0' == pathname[0]) { // first time; create the pathname and file
int rv = create_upxfn_path(pathname, u.buf);
int rv = create_upxfn_path(pathname, &u.buf[BUFLEN / 2]);
if (rv < 0) {
return rv;
}

View File

@ -4,14 +4,14 @@ Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINY 0 0 0 034 2**0 CONTENTS
1 ELFMAINZ 01f0 0 0 034 2**0 CONTENTS
2 ELFMAINX 06d4 0 0 0224 2**2 CONTENTS
2 ELFMAINX 074c 0 0 0224 2**2 CONTENTS
SYMBOL TABLE:
00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINY 0 ELFMAINY
00000000 *UND* 0 MFLG
000000ec g ELFMAINZ 0 getpid
0000048c g F ELFMAINX 0248 upx_mmap_and_fd
00000500 g F ELFMAINX 024c upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
0000004c g ELFMAINZ 0 mempcpy
@ -84,75 +84,80 @@ OFFSET TYPE VALUE
000002bc R_ARM_PC24 memset
000002c8 R_ARM_PC24 stat
000002d0 R_ARM_PC24 ELFMAINX
000002e0 R_ARM_PC24 ELFMAINX
000002e4 R_ARM_PC24 ELFMAINX
000002ec R_ARM_PC24 ELFMAINX
000002f8 R_ARM_PC24 mkdir
00000300 R_ARM_PC24 ELFMAINX
00000308 R_ARM_PC24 exit
00000324 R_ARM_PC24 ELFMAINX
0000033c R_ARM_PC24 mempcpy
0000034c R_ARM_PC24 ELFMAINX
00000350 R_ARM_PC24 ELFMAINX
00000374 R_ARM_PC24 open
00000388 R_ARM_PC24 read
00000394 R_ARM_PC24 close
000003b8 R_ARM_PC24 ELFMAINX
000003c8 R_ARM_PC24 ELFMAINX
000003d0 R_ARM_PC24 ELFMAINX
00000314 R_ARM_PC24 my_bkpt
00000330 R_ARM_PC24 ELFMAINX
00000348 R_ARM_PC24 mempcpy
0000035c R_ARM_PC24 ELFMAINX
00000360 R_ARM_PC24 ELFMAINX
00000388 R_ARM_PC24 open
0000039c R_ARM_PC24 read
000003a8 R_ARM_PC24 close
000003b4 R_ARM_PC24 my_bkpt
000003cc R_ARM_PC24 ELFMAINX
000003dc R_ARM_PC24 ELFMAINX
000003ec R_ARM_PC24 mempcpy
00000400 R_ARM_PC24 ELFMAINX
00000404 R_ARM_PC24 ELFMAINX
0000041c R_ARM_PC24 mempcpy
0000042c R_ARM_PC24 ELFMAINX
00000430 R_ARM_PC24 ELFMAINX
000003e0 R_ARM_PC24 ELFMAINX
000003ec R_ARM_PC24 ELFMAINX
00000400 R_ARM_PC24 mempcpy
00000418 R_ARM_PC24 ELFMAINX
00000420 R_ARM_PC24 ELFMAINX
00000424 R_ARM_PC24 ELFMAINX
00000448 R_ARM_PC24 mempcpy
00000450 R_ARM_PC24 getpid
00000458 R_ARM_PC24 ELFMAINX
00000464 R_ARM_PC24 ELFMAINX
00000470 R_ARM_PC24 ELFMAINX
00000488 R_ARM_PC24 ELFMAINX
000004a4 R_ARM_PC24 ELFMAINX
000004b8 R_ARM_PC24 memfd_create
000004c4 R_ARM_PC24 ELFMAINX
000004d0 R_ARM_PC24 memfd_create
000004dc R_ARM_PC24 ELFMAINX
00000454 R_ARM_PC24 mempcpy
00000468 R_ARM_PC24 ELFMAINX
0000046c R_ARM_PC24 ELFMAINX
00000474 R_ARM_PC24 ELFMAINX
00000478 R_ARM_PC24 ELFMAINX
00000490 R_ARM_PC24 mempcpy
000004a8 R_ARM_PC24 ELFMAINX
000004ac R_ARM_PC24 ELFMAINX
000004c4 R_ARM_PC24 mempcpy
000004cc R_ARM_PC24 getpid
000004d4 R_ARM_PC24 ELFMAINX
000004e0 R_ARM_PC24 ELFMAINX
00000500 R_ARM_PC24 open
00000508 R_ARM_PC24 ELFMAINX
0000050c R_ARM_PC24 ELFMAINX
00000524 R_ARM_PC24 my_bkpt
00000530 R_ARM_PC24 uname
00000534 R_ARM_PC24 ELFMAINX
00000548 R_ARM_PC24 ELFMAINX
000004ec R_ARM_PC24 ELFMAINX
00000518 R_ARM_PC24 ELFMAINX
0000052c R_ARM_PC24 memfd_create
00000538 R_ARM_PC24 ELFMAINX
00000544 R_ARM_PC24 memfd_create
00000550 R_ARM_PC24 ELFMAINX
00000554 R_ARM_PC24 ELFMAINX
00000568 R_ARM_PC24 ELFMAINX
00000570 R_ARM_PC24 ELFMAINX
00000574 R_ARM_PC24 open
0000057c R_ARM_PC24 ELFMAINX
00000580 R_ARM_PC24 ELFMAINX
00000588 R_ARM_PC24 ELFMAINX
0000058c R_ARM_PC24 get_upxfn_path
000005ac R_ARM_PC24 ELFMAINX
000005b4 R_ARM_PC24 ELFMAINX
000005c0 R_ARM_PC24 ELFMAINX
000005cc R_ARM_PC24 ELFMAINX
000005d4 R_ARM_PC24 ELFMAINX
000005e4 R_ARM_PC24 open
000005f0 R_ARM_PC24 ELFMAINX
000005f8 R_ARM_PC24 unlink
00000600 R_ARM_PC24 ELFMAINX
0000060c R_ARM_PC24 ELFMAINX
00000614 R_ARM_PC24 ELFMAINX
00000620 R_ARM_PC24 ftruncate
00000598 R_ARM_PC24 my_bkpt
000005a4 R_ARM_PC24 uname
000005a8 R_ARM_PC24 ELFMAINX
000005bc R_ARM_PC24 ELFMAINX
000005c4 R_ARM_PC24 ELFMAINX
000005c8 R_ARM_PC24 ELFMAINX
000005dc R_ARM_PC24 ELFMAINX
000005e4 R_ARM_PC24 ELFMAINX
000005f4 R_ARM_PC24 ELFMAINX
000005fc R_ARM_PC24 ELFMAINX
00000600 R_ARM_PC24 get_upxfn_path
00000620 R_ARM_PC24 ELFMAINX
00000628 R_ARM_PC24 ELFMAINX
0000062c R_ARM_PC24 ELFMAINX
0000063c R_ARM_PC24 memset
0000065c R_ARM_PC24 write
00000664 R_ARM_PC24 ELFMAINX
0000066c R_ARM_PC24 ELFMAINX
0000067c R_ARM_PC24 lseek
00000688 R_ARM_PC24 ELFMAINX
00000634 R_ARM_PC24 ELFMAINX
00000644 R_ARM_PC24 ELFMAINX
0000064c R_ARM_PC24 ELFMAINX
0000065c R_ARM_PC24 open
00000668 R_ARM_PC24 ELFMAINX
00000670 R_ARM_PC24 unlink
00000678 R_ARM_PC24 ELFMAINX
00000684 R_ARM_PC24 ELFMAINX
0000068c R_ARM_PC24 ELFMAINX
00000694 R_ARM_PC24 ELFMAINX
000006b8 R_ARM_PC24 mmap
00000698 R_ARM_PC24 ftruncate
000006a0 R_ARM_PC24 ELFMAINX
000006a4 R_ARM_PC24 ELFMAINX
000006b4 R_ARM_PC24 memset
000006d4 R_ARM_PC24 write
000006dc R_ARM_PC24 ELFMAINX
000006e4 R_ARM_PC24 ELFMAINX
000006f4 R_ARM_PC24 lseek
00000700 R_ARM_PC24 ELFMAINX
00000704 R_ARM_PC24 ELFMAINX
0000070c R_ARM_PC24 ELFMAINX
00000730 R_ARM_PC24 mmap

View File

@ -7,7 +7,7 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0x10cc
.text 0x0000000000000000 0x1144
.text 0x0000000000000000 0x348 tmp/arm.v4a-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x00000000000002e8 memcpy
@ -19,12 +19,12 @@ Linker script and memory map
0x00000000fffffff4 page_mask
0x0000000000000024 Pprotect
0x0000000000000024 mprotect
.text 0x0000000000000348 0x498 tmp/arm.v4a-linux.elf-upxfd_android.o
0x0000000000000598 upx_mmap_and_fd
.text 0x00000000000007e0 0x0 tmp/arm.v4a-expand.o
.text 0x00000000000007e0 0x8ec tmp/arm.v4a-linux.elf-main2.o
0x0000000000001068 underlay
0x0000000000000f38 upx_main
.text 0x0000000000000348 0x510 tmp/arm.v4a-linux.elf-upxfd_android.o
0x000000000000060c upx_mmap_and_fd
.text 0x0000000000000858 0x0 tmp/arm.v4a-expand.o
.text 0x0000000000000858 0x8ec tmp/arm.v4a-linux.elf-main2.o
0x00000000000010e0 underlay
0x0000000000000fb0 upx_main
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/arm.v4a-linux.elf-fold.o

View File

@ -4,14 +4,14 @@ Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINY 0 0 0 034 2**0 CONTENTS
1 ELFMAINZ 01f0 0 0 034 2**0 CONTENTS
2 ELFMAINX 06d8 0 0 0224 2**2 CONTENTS
2 ELFMAINX 0758 0 0 0224 2**2 CONTENTS
SYMBOL TABLE:
00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINY 0 ELFMAINY
00000000 *UND* 0 MFLG
000000ec g ELFMAINZ 0 getpid
0000048c g F ELFMAINX 024c upx_mmap_and_fd
00000508 g F ELFMAINX 0250 upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
0000004c g ELFMAINZ 0 mempcpy
@ -84,75 +84,82 @@ OFFSET TYPE VALUE
000002bc R_ARM_PC24 memset
000002c8 R_ARM_PC24 stat
000002d0 R_ARM_PC24 ELFMAINX
000002e0 R_ARM_PC24 ELFMAINX
000002e4 R_ARM_PC24 ELFMAINX
000002ec R_ARM_PC24 ELFMAINX
000002f8 R_ARM_PC24 mkdir
00000300 R_ARM_PC24 ELFMAINX
00000308 R_ARM_PC24 exit
00000324 R_ARM_PC24 ELFMAINX
0000033c R_ARM_PC24 mempcpy
0000034c R_ARM_PC24 ELFMAINX
00000350 R_ARM_PC24 ELFMAINX
00000374 R_ARM_PC24 open
00000384 R_ARM_PC24 read
00000390 R_ARM_PC24 close
000003b4 R_ARM_PC24 ELFMAINX
000003c4 R_ARM_PC24 ELFMAINX
000003cc R_ARM_PC24 ELFMAINX
000003d8 R_ARM_PC24 ELFMAINX
000003e8 R_ARM_PC24 mempcpy
000003fc R_ARM_PC24 ELFMAINX
00000400 R_ARM_PC24 ELFMAINX
00000418 R_ARM_PC24 mempcpy
0000030c R_ARM_PC24 ELFMAINX
00000318 R_ARM_PC24 my_bkpt
00000334 R_ARM_PC24 ELFMAINX
0000034c R_ARM_PC24 mempcpy
00000360 R_ARM_PC24 ELFMAINX
00000364 R_ARM_PC24 ELFMAINX
0000038c R_ARM_PC24 open
0000039c R_ARM_PC24 read
000003a8 R_ARM_PC24 close
000003b0 R_ARM_PC24 ELFMAINX
000003b8 R_ARM_PC24 my_bkpt
000003d0 R_ARM_PC24 ELFMAINX
000003e0 R_ARM_PC24 ELFMAINX
000003e4 R_ARM_PC24 ELFMAINX
000003f0 R_ARM_PC24 ELFMAINX
00000404 R_ARM_PC24 mempcpy
0000041c R_ARM_PC24 ELFMAINX
00000424 R_ARM_PC24 ELFMAINX
00000428 R_ARM_PC24 ELFMAINX
0000042c R_ARM_PC24 ELFMAINX
00000444 R_ARM_PC24 mempcpy
0000044c R_ARM_PC24 getpid
00000454 R_ARM_PC24 ELFMAINX
00000460 R_ARM_PC24 ELFMAINX
0000044c R_ARM_PC24 mempcpy
00000458 R_ARM_PC24 mempcpy
0000046c R_ARM_PC24 ELFMAINX
00000484 R_ARM_PC24 ELFMAINX
000004a4 R_ARM_PC24 ELFMAINX
000004b8 R_ARM_PC24 memfd_create
000004c4 R_ARM_PC24 ELFMAINX
000004d0 R_ARM_PC24 memfd_create
000004dc R_ARM_PC24 ELFMAINX
000004e0 R_ARM_PC24 ELFMAINX
000004fc R_ARM_PC24 open
00000504 R_ARM_PC24 ELFMAINX
00000508 R_ARM_PC24 ELFMAINX
00000520 R_ARM_PC24 my_bkpt
0000052c R_ARM_PC24 uname
00000530 R_ARM_PC24 ELFMAINX
00000544 R_ARM_PC24 ELFMAINX
0000054c R_ARM_PC24 ELFMAINX
00000550 R_ARM_PC24 ELFMAINX
00000564 R_ARM_PC24 ELFMAINX
0000056c R_ARM_PC24 ELFMAINX
0000057c R_ARM_PC24 ELFMAINX
00000470 R_ARM_PC24 ELFMAINX
00000478 R_ARM_PC24 ELFMAINX
0000047c R_ARM_PC24 ELFMAINX
00000494 R_ARM_PC24 mempcpy
000004ac R_ARM_PC24 ELFMAINX
000004b0 R_ARM_PC24 ELFMAINX
000004c8 R_ARM_PC24 mempcpy
000004d0 R_ARM_PC24 getpid
000004d8 R_ARM_PC24 ELFMAINX
000004e4 R_ARM_PC24 ELFMAINX
000004f0 R_ARM_PC24 ELFMAINX
00000520 R_ARM_PC24 ELFMAINX
00000534 R_ARM_PC24 memfd_create
00000540 R_ARM_PC24 ELFMAINX
0000054c R_ARM_PC24 memfd_create
00000558 R_ARM_PC24 ELFMAINX
0000055c R_ARM_PC24 ELFMAINX
00000578 R_ARM_PC24 open
00000580 R_ARM_PC24 ELFMAINX
00000584 R_ARM_PC24 ELFMAINX
00000588 R_ARM_PC24 get_upxfn_path
000005a8 R_ARM_PC24 ELFMAINX
000005b0 R_ARM_PC24 ELFMAINX
000005bc R_ARM_PC24 ELFMAINX
0000059c R_ARM_PC24 my_bkpt
000005a8 R_ARM_PC24 uname
000005ac R_ARM_PC24 ELFMAINX
000005c0 R_ARM_PC24 ELFMAINX
000005c8 R_ARM_PC24 ELFMAINX
000005d0 R_ARM_PC24 ELFMAINX
000005e0 R_ARM_PC24 open
000005ec R_ARM_PC24 ELFMAINX
000005f4 R_ARM_PC24 unlink
000005fc R_ARM_PC24 ELFMAINX
00000608 R_ARM_PC24 ELFMAINX
00000610 R_ARM_PC24 ELFMAINX
0000061c R_ARM_PC24 ftruncate
000005cc R_ARM_PC24 ELFMAINX
000005e0 R_ARM_PC24 ELFMAINX
000005e8 R_ARM_PC24 ELFMAINX
000005f8 R_ARM_PC24 ELFMAINX
00000600 R_ARM_PC24 ELFMAINX
00000604 R_ARM_PC24 get_upxfn_path
00000624 R_ARM_PC24 ELFMAINX
00000628 R_ARM_PC24 ELFMAINX
00000638 R_ARM_PC24 memset
00000658 R_ARM_PC24 write
00000660 R_ARM_PC24 ELFMAINX
00000668 R_ARM_PC24 ELFMAINX
00000678 R_ARM_PC24 lseek
00000684 R_ARM_PC24 ELFMAINX
0000062c R_ARM_PC24 ELFMAINX
00000638 R_ARM_PC24 ELFMAINX
00000648 R_ARM_PC24 ELFMAINX
00000650 R_ARM_PC24 ELFMAINX
00000660 R_ARM_PC24 open
0000066c R_ARM_PC24 ELFMAINX
00000674 R_ARM_PC24 unlink
0000067c R_ARM_PC24 ELFMAINX
00000688 R_ARM_PC24 ELFMAINX
00000690 R_ARM_PC24 ELFMAINX
000006b4 R_ARM_PC24 mmap
0000069c R_ARM_PC24 ftruncate
000006a4 R_ARM_PC24 ELFMAINX
000006a8 R_ARM_PC24 ELFMAINX
000006b8 R_ARM_PC24 memset
000006d8 R_ARM_PC24 write
000006e0 R_ARM_PC24 ELFMAINX
000006e8 R_ARM_PC24 ELFMAINX
000006f8 R_ARM_PC24 lseek
00000704 R_ARM_PC24 ELFMAINX
00000708 R_ARM_PC24 ELFMAINX
00000710 R_ARM_PC24 ELFMAINX
00000734 R_ARM_PC24 mmap

View File

@ -8,7 +8,7 @@ Linker script and memory map
TARGET(elf32-littlearm)
.text 0x0000000000000000 0x10d0
.text 0x0000000000000000 0x1150
*(.text)
.text 0x0000000000000000 0x348 tmp/arm.v5a-linux.elf-fold.o
0x0000000000000004 get_page_mask
@ -21,17 +21,17 @@ TARGET(elf32-littlearm)
0x00000000fffffff4 page_mask
0x0000000000000024 Pprotect
0x0000000000000024 mprotect
.text 0x0000000000000348 0x49c tmp/arm.v5a-linux.elf-upxfd_android.o
0x0000000000000598 upx_mmap_and_fd
.text 0x00000000000007e4 0x0 tmp/arm.v5a-expand.o
.text 0x00000000000007e4 0x8ec tmp/arm.v5a-linux.elf-main2.o
0x000000000000106c underlay
0x0000000000000f3c upx_main
.text 0x0000000000000348 0x51c tmp/arm.v5a-linux.elf-upxfd_android.o
0x0000000000000614 upx_mmap_and_fd
.text 0x0000000000000864 0x0 tmp/arm.v5a-expand.o
.text 0x0000000000000864 0x8ec tmp/arm.v5a-linux.elf-main2.o
0x00000000000010ec underlay
0x0000000000000fbc upx_main
*(.data)
.data 0x00000000000010d0 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x00000000000010d0 0x0 tmp/arm.v5a-linux.elf-upxfd_android.o
.data 0x00000000000010d0 0x0 tmp/arm.v5a-expand.o
.data 0x00000000000010d0 0x0 tmp/arm.v5a-linux.elf-main2.o
.data 0x0000000000001150 0x0 tmp/arm.v5a-linux.elf-fold.o
.data 0x0000000000001150 0x0 tmp/arm.v5a-linux.elf-upxfd_android.o
.data 0x0000000000001150 0x0 tmp/arm.v5a-expand.o
.data 0x0000000000001150 0x0 tmp/arm.v5a-linux.elf-main2.o
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/arm.v5a-linux.elf-fold.o

View File

@ -4,14 +4,14 @@ Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINY 0 0 0 034 2**0 CONTENTS
1 ELFMAINZ 01f0 0 0 034 2**0 CONTENTS
2 ELFMAINX 06d4 0 0 0224 2**2 CONTENTS
2 ELFMAINX 074c 0 0 0224 2**2 CONTENTS
SYMBOL TABLE:
00000000 l d ELFMAINZ 0 ELFMAINZ
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINY 0 ELFMAINY
00000000 *UND* 0 MFLG
000000ec g ELFMAINZ 0 getpid
0000048c g F ELFMAINX 0248 upx_mmap_and_fd
00000500 g F ELFMAINX 024c upx_mmap_and_fd
00000008 g ELFMAINZ 0 memcpy
00000000 *UND* 0 O_BINFO
0000004c g ELFMAINZ 0 mempcpy
@ -84,75 +84,80 @@ OFFSET TYPE VALUE
000002bc R_ARM_PC24 memset
000002c8 R_ARM_PC24 stat
000002d0 R_ARM_PC24 ELFMAINX
000002e0 R_ARM_PC24 ELFMAINX
000002e4 R_ARM_PC24 ELFMAINX
000002ec R_ARM_PC24 ELFMAINX
000002f8 R_ARM_PC24 mkdir
00000300 R_ARM_PC24 ELFMAINX
00000308 R_ARM_PC24 exit
00000324 R_ARM_PC24 ELFMAINX
0000033c R_ARM_PC24 mempcpy
0000034c R_ARM_PC24 ELFMAINX
00000350 R_ARM_PC24 ELFMAINX
00000374 R_ARM_PC24 open
00000388 R_ARM_PC24 read
00000394 R_ARM_PC24 close
000003b8 R_ARM_PC24 ELFMAINX
000003c8 R_ARM_PC24 ELFMAINX
000003d0 R_ARM_PC24 ELFMAINX
00000314 R_ARM_PC24 my_bkpt
00000330 R_ARM_PC24 ELFMAINX
00000348 R_ARM_PC24 mempcpy
0000035c R_ARM_PC24 ELFMAINX
00000360 R_ARM_PC24 ELFMAINX
00000388 R_ARM_PC24 open
0000039c R_ARM_PC24 read
000003a8 R_ARM_PC24 close
000003b4 R_ARM_PC24 my_bkpt
000003cc R_ARM_PC24 ELFMAINX
000003dc R_ARM_PC24 ELFMAINX
000003ec R_ARM_PC24 mempcpy
00000400 R_ARM_PC24 ELFMAINX
00000404 R_ARM_PC24 ELFMAINX
0000041c R_ARM_PC24 mempcpy
0000042c R_ARM_PC24 ELFMAINX
00000430 R_ARM_PC24 ELFMAINX
000003e0 R_ARM_PC24 ELFMAINX
000003ec R_ARM_PC24 ELFMAINX
00000400 R_ARM_PC24 mempcpy
00000418 R_ARM_PC24 ELFMAINX
00000420 R_ARM_PC24 ELFMAINX
00000424 R_ARM_PC24 ELFMAINX
00000448 R_ARM_PC24 mempcpy
00000450 R_ARM_PC24 getpid
00000458 R_ARM_PC24 ELFMAINX
00000464 R_ARM_PC24 ELFMAINX
00000470 R_ARM_PC24 ELFMAINX
00000488 R_ARM_PC24 ELFMAINX
000004a4 R_ARM_PC24 ELFMAINX
000004b8 R_ARM_PC24 memfd_create
000004c4 R_ARM_PC24 ELFMAINX
000004d0 R_ARM_PC24 memfd_create
000004dc R_ARM_PC24 ELFMAINX
00000454 R_ARM_PC24 mempcpy
00000468 R_ARM_PC24 ELFMAINX
0000046c R_ARM_PC24 ELFMAINX
00000474 R_ARM_PC24 ELFMAINX
00000478 R_ARM_PC24 ELFMAINX
00000490 R_ARM_PC24 mempcpy
000004a8 R_ARM_PC24 ELFMAINX
000004ac R_ARM_PC24 ELFMAINX
000004c4 R_ARM_PC24 mempcpy
000004cc R_ARM_PC24 getpid
000004d4 R_ARM_PC24 ELFMAINX
000004e0 R_ARM_PC24 ELFMAINX
00000500 R_ARM_PC24 open
00000508 R_ARM_PC24 ELFMAINX
0000050c R_ARM_PC24 ELFMAINX
00000524 R_ARM_PC24 my_bkpt
00000530 R_ARM_PC24 uname
00000534 R_ARM_PC24 ELFMAINX
00000548 R_ARM_PC24 ELFMAINX
000004ec R_ARM_PC24 ELFMAINX
00000518 R_ARM_PC24 ELFMAINX
0000052c R_ARM_PC24 memfd_create
00000538 R_ARM_PC24 ELFMAINX
00000544 R_ARM_PC24 memfd_create
00000550 R_ARM_PC24 ELFMAINX
00000554 R_ARM_PC24 ELFMAINX
00000568 R_ARM_PC24 ELFMAINX
00000570 R_ARM_PC24 ELFMAINX
00000574 R_ARM_PC24 open
0000057c R_ARM_PC24 ELFMAINX
00000580 R_ARM_PC24 ELFMAINX
00000588 R_ARM_PC24 ELFMAINX
0000058c R_ARM_PC24 get_upxfn_path
000005ac R_ARM_PC24 ELFMAINX
000005b4 R_ARM_PC24 ELFMAINX
000005c0 R_ARM_PC24 ELFMAINX
000005cc R_ARM_PC24 ELFMAINX
000005d4 R_ARM_PC24 ELFMAINX
000005e4 R_ARM_PC24 open
000005f0 R_ARM_PC24 ELFMAINX
000005f8 R_ARM_PC24 unlink
00000600 R_ARM_PC24 ELFMAINX
0000060c R_ARM_PC24 ELFMAINX
00000614 R_ARM_PC24 ELFMAINX
00000620 R_ARM_PC24 ftruncate
00000598 R_ARM_PC24 my_bkpt
000005a4 R_ARM_PC24 uname
000005a8 R_ARM_PC24 ELFMAINX
000005bc R_ARM_PC24 ELFMAINX
000005c4 R_ARM_PC24 ELFMAINX
000005c8 R_ARM_PC24 ELFMAINX
000005dc R_ARM_PC24 ELFMAINX
000005e4 R_ARM_PC24 ELFMAINX
000005f4 R_ARM_PC24 ELFMAINX
000005fc R_ARM_PC24 ELFMAINX
00000600 R_ARM_PC24 get_upxfn_path
00000620 R_ARM_PC24 ELFMAINX
00000628 R_ARM_PC24 ELFMAINX
0000062c R_ARM_PC24 ELFMAINX
0000063c R_ARM_PC24 memset
0000065c R_ARM_PC24 write
00000664 R_ARM_PC24 ELFMAINX
0000066c R_ARM_PC24 ELFMAINX
0000067c R_ARM_PC24 lseek
00000688 R_ARM_PC24 ELFMAINX
00000634 R_ARM_PC24 ELFMAINX
00000644 R_ARM_PC24 ELFMAINX
0000064c R_ARM_PC24 ELFMAINX
0000065c R_ARM_PC24 open
00000668 R_ARM_PC24 ELFMAINX
00000670 R_ARM_PC24 unlink
00000678 R_ARM_PC24 ELFMAINX
00000684 R_ARM_PC24 ELFMAINX
0000068c R_ARM_PC24 ELFMAINX
00000694 R_ARM_PC24 ELFMAINX
000006b8 R_ARM_PC24 mmap
00000698 R_ARM_PC24 ftruncate
000006a0 R_ARM_PC24 ELFMAINX
000006a4 R_ARM_PC24 ELFMAINX
000006b4 R_ARM_PC24 memset
000006d4 R_ARM_PC24 write
000006dc R_ARM_PC24 ELFMAINX
000006e4 R_ARM_PC24 ELFMAINX
000006f4 R_ARM_PC24 lseek
00000700 R_ARM_PC24 ELFMAINX
00000704 R_ARM_PC24 ELFMAINX
0000070c R_ARM_PC24 ELFMAINX
00000730 R_ARM_PC24 mmap

View File

@ -7,7 +7,7 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0x10e0
.text 0x0000000000000000 0x1158
.text 0x0000000000000000 0x348 tmp/armeb.v4a-linux.elf-fold.o
0x0000000000000004 get_page_mask
0x00000000000002e8 memcpy
@ -19,12 +19,12 @@ Linker script and memory map
0x00000000fffffff4 page_mask
0x0000000000000024 Pprotect
0x0000000000000024 mprotect
.text 0x0000000000000348 0x498 tmp/armeb.v4a-linux.elf-upxfd_android.o
0x0000000000000598 upx_mmap_and_fd
.text 0x00000000000007e0 0x0 tmp/armeb.v4a-expand.o
.text 0x00000000000007e0 0x900 tmp/armeb.v4a-linux.elf-main2.o
0x000000000000107c underlay
0x0000000000000f48 upx_main
.text 0x0000000000000348 0x510 tmp/armeb.v4a-linux.elf-upxfd_android.o
0x000000000000060c upx_mmap_and_fd
.text 0x0000000000000858 0x0 tmp/armeb.v4a-expand.o
.text 0x0000000000000858 0x900 tmp/armeb.v4a-linux.elf-main2.o
0x00000000000010f4 underlay
0x0000000000000fc0 upx_main
SYSCALLS 0x0000000000000000 0x214
SYSCALLS 0x0000000000000000 0x214 tmp/armeb.v4a-linux.elf-fold.o

View File

@ -2,12 +2,12 @@ file format elf32-i386
Sections:
Idx Name Size VMA LMA File off Algn Flags
0 ELFMAINX 0667 0 0 034 2**2 CONTENTS
1 ELFMAINZ 0a 0 0 069b 2**0 CONTENTS
0 ELFMAINX 06da 0 0 034 2**2 CONTENTS
1 ELFMAINZ 0a 0 0 070e 2**0 CONTENTS
SYMBOL TABLE:
00000000 l d ELFMAINX 0 ELFMAINX
00000000 l d ELFMAINZ 0 ELFMAINZ
0000040f g F ELFMAINX 0258 upx_mmap_and_fd
00000482 g F ELFMAINX 0258 upx_mmap_and_fd
00000000 *UND* 0 O_BINFO
000001d4 g ELFMAINX 0 mempcpy
0000017a g ELFMAINX 0 mmap
@ -25,11 +25,14 @@ OFFSET TYPE VALUE
000000a5 R_386_PC32 upx_mmap_and_fd
00000152 R_386_PC32 mmap
0000020c R_386_PC32 memset
00000343 R_386_PC32 mempcpy
0000048d R_386_PC32 my_bkpt
00000506 R_386_PC32 get_upxfn_path
000005b7 R_386_PC32 memset
0000063b R_386_PC32 mmap
0000025b R_386_PC32 my_bkpt
00000321 R_386_PC32 my_bkpt
00000355 R_386_PC32 mempcpy
000003b1 R_386_PC32 mempcpy
00000500 R_386_PC32 my_bkpt
00000579 R_386_PC32 get_upxfn_path
0000062a R_386_PC32 memset
000006ae R_386_PC32 mmap
RELOCATION RECORDS FOR [ELFMAINZ]:
OFFSET TYPE VALUE

16
src/stub/tmp/i386-linux.elf-fold.map generated vendored
View File

@ -7,17 +7,17 @@ Name Origin Length Attributes
Linker script and memory map
.text 0x0000000000000000 0xdf6
.text 0x0000000000000000 0xe6a
.text 0x0000000000000000 0x190 tmp/i386-linux.elf-fold.o
0x0000000000000008 get_page_mask
0x0000000000000015 get_upxfn_path
.text 0x0000000000000190 0x46f tmp/i386-linux.elf-upxfd_android.o
0x00000000000003a7 upx_mmap_and_fd
*fill* 0x00000000000005ff 0x1 00
.text 0x0000000000000600 0x0 tmp/i386-expand.o
.text 0x0000000000000600 0x7f6 tmp/i386-linux.elf-main2.o
0x0000000000000755 underlay
0x0000000000000ca2 upx_main
.text 0x0000000000000190 0x4e2 tmp/i386-linux.elf-upxfd_android.o
0x000000000000041a upx_mmap_and_fd
*fill* 0x0000000000000672 0x2 00
.text 0x0000000000000674 0x0 tmp/i386-expand.o
.text 0x0000000000000674 0x7f6 tmp/i386-linux.elf-main2.o
0x00000000000007c9 underlay
0x0000000000000d16 upx_main
.data 0x0000000000000000 0x0
.data 0x0000000000000000 0x0 tmp/i386-linux.elf-fold.o