Compare commits

...

60 Commits

Author SHA1 Message Date
Markus F.X.J. Oberhumer 5bef968068 all: prepare for release 2024-03-27 13:57:30 +01:00
Markus F.X.J. Oberhumer 543cfe0a73 submodules: update for new versions 2024-03-26 15:46:48 +01:00
Markus F.X.J. Oberhumer 3ba91b8072 cmake update 2024-03-26 15:38:20 +01:00
Markus F.X.J. Oberhumer a27a9e6000 all: and yet more cleanups; NFCI 2024-03-25 11:07:40 +01:00
Markus F.X.J. Oberhumer 7e839e6962 all: more cleanups; NFCI 2024-03-23 20:18:28 +01:00
Markus F.X.J. Oberhumer 809a1b3dae submodules: update for new versions 2024-03-22 01:40:51 +01:00
Markus F.X.J. Oberhumer 9b80628f84 src/pefile.cpp: support relocs of large files
Use 5-byte entries instead of 4-byte entries to fully preserve "pos".

And add some symbolic constants.

Partially based on a patch by John.
2024-03-22 00:46:17 +01:00
Markus F.X.J. Oberhumer a21a006fe9 all: yet more minor cleanups 2024-03-19 16:03:37 +01:00
Markus F.X.J. Oberhumer 54d16a458a CI updates; cleanups 2024-03-16 17:46:40 +01:00
Markus F.X.J. Oberhumer cfc5f42ef2 testsuite: update checksums caused by version change 2024-03-12 18:16:52 +01:00
Markus F.X.J. Oberhumer e3d24238e4 all: update version 2024-03-12 18:12:43 +01:00
Markus F.X.J. Oberhumer 56e7b36959 src: new ACC version 2024-03-12 18:11:46 +01:00
Markus F.X.J. Oberhumer f29791470f all: yet more cleanups 2024-03-10 16:23:06 +01:00
Markus F.X.J. Oberhumer 52d9b53b74 all: minor cleanups 2024-03-08 11:52:44 +01:00
Markus F.X.J. Oberhumer 839a78f2e0 Better fix for previous commit to avoid out-of-bounds pointer. 2024-02-27 11:20:29 +01:00
John Reiser 680ce0a7af find_dt_ndx defends against overrun
https://github.com/upx/upx/issues/790
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66344&q=label%3AProj-upx
	modified:   p_lx_elf.cpp
2024-02-26 14:32:02 -08:00
Markus F.X.J. Oberhumer 06b0de9c77 CI: work-around zig cc mips bad codegen for hard-float 2024-02-17 16:34:11 +01:00
Markus F.X.J. Oberhumer 76b0b7b1ae all: clang-format 2024-02-14 21:29:51 +01:00
John Reiser fabda4df3a R_PPC64_REL24 is reallly "PC-rel. 26 bit, word aligned:
Just like R_PPC_REL24
	modified:   linker.cpp
2024-02-14 11:43:20 -08:00
Markus F.X.J. Oberhumer fdcdaf596a all: pacify clang-tidy, CI and cmake updates 2024-02-14 15:14:47 +01:00
Markus F.X.J. Oberhumer be44cefbe7 CI updates 2024-02-13 18:29:07 +01:00
Markus F.X.J. Oberhumer c1050e624b submodules: update for new versions 2024-02-13 16:49:08 +01:00
Markus F.X.J. Oberhumer ae6d3b9bff all: more assorted cleanups 2024-02-09 14:48:47 +01:00
John Reiser 25aa0e2e46 un_asl_dynsym() should skip when !dynstr
https://github.com/upx/upx/issues/785
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66302
	modified:   p_lx_elf.cpp
2024-02-08 19:32:03 -08:00
Markus F.X.J. Oberhumer 8f7578eef1 CI: enable valgrind 2024-02-04 13:54:37 +01:00
Markus F.X.J. Oberhumer 29ce4807fb all: minor updates 2024-02-04 13:37:00 +01:00
John Reiser 41f6945be1 Fix auxv_up() to avoid SIGSEGV under valgrind
https://github.com/upx/upx/issues/784
	modified:   stub/src/amd64-linux.elf-main.c
	modified:   stub/src/i386-linux.elf-main.c
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
           plus all generated stub/*-linux.elf-fold.{h,map}
2024-02-03 13:58:53 -08:00
Markus F.X.J. Oberhumer 718ec468ff all: more assorted cleanups; NFCI 2024-02-02 10:17:16 +01:00
John Reiser d429801498 Avoid &file_image[file_size] because some Standards object
modified:   p_lx_elf.cpp
2024-02-01 11:41:04 -08:00
Markus F.X.J. Oberhumer 024091e6b5 src: fix previous bounds checking commit 2024-01-31 20:52:19 +01:00
Markus F.X.J. Oberhumer d849e9de98 src: add some bounds checking to MemBufferBase 2024-01-31 16:48:55 +01:00
John Reiser c0e40da2ab more checking of Mach_header when unpacking for MachOS
https://github.com/upx/upx/issues/783
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65532
	modified:   p_mach.cpp
2024-01-27 14:16:53 -08:00
John Reiser dff3766501 Detect too-large bit-shift in elf_lookup of DT_GNUHASH
https://github.com/upx/upx/issues/782
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65776
	modified:   p_lx_elf.cpp
2024-01-27 13:38:25 -08:00
John Reiser 2767ec54e1 more checking of PackUnix::p_info at unpack
https://github.com/upx/upx/issues/781
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65864
	modified:   p_unix.cpp
2024-01-27 13:06:59 -08:00
John Reiser ac72c02793 check nbucket earlier in DT_HASH on ELF
https://github.com/upx/upx/issues/780
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66079
	modified:   p_lx_elf.cpp
2024-01-27 11:42:25 -08:00
John Reiser 69c51eee4d better checking of DT_STRSZ for ELF
https://github.com/upx/upx/issues/779
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=66064
	modified:   p_lx_elf.cpp
	modified:   p_lx_elf.h
2024-01-27 11:11:07 -08:00
John Reiser ff5a4eeb96 ELF versus --brute: addStubEntrySections() needs ph_forced_method()
https://github.com/upx/upx/issues/770
	modified:   p_lx_elf.cpp
2024-01-25 17:17:32 -08:00
John Reiser b48f870701 Detect circular DT_HASH and DT_GNUHASH lookup
https://github.com/upx/upx/issues/775
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65811&q=label%3AProj-upx
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65840&q=label%3AProj-upx
2024-01-25 15:05:53 -08:00
John Reiser 10807ebdc2 Unpack 8-byte b_info only if (ph.version <= 11): 2001 or earlier
*x86 only: .e_entry too low
https://github.com/upx/upx/issues/774
	modified:   p_lx_elf.cpp
2024-01-25 09:06:46 -08:00
Markus F.X.J. Oberhumer 5d649f83ec all: assorted cleanups 2024-01-24 20:53:14 +01:00
Markus F.X.J. Oberhumer 65b25adceb submodules: update for new versions 2024-01-24 20:49:33 +01:00
John Reiser d615985b8a elf_find_table_size() did not check for empty table
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65765&q=label%3AProj-upx
https://github.com/upx/upx/issues/771
	modified:   p_lx_elf.cpp
2024-01-18 19:11:12 -08:00
Markus F.X.J. Oberhumer b019440980 testsuite: update checksums caused by version year bump 2024-01-13 20:08:08 +01:00
John Reiser 38ed4b2017 arm32, arm64 ABI for -static must preserve register 0
Also arm32 forgot to unmap the expanded de-compressor via the escape hatch.

https://github.com/upx/upx/issues/758
https://github.com/upx/upx/issues/768
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/src/arm.v4a-linux.elf-entry.S
	modified:   stub/src/arm.v4a-linux.elf-fold.S
	modified:   stub/src/arm64-linux.elf-entry.S
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/src/i386-linux.elf-main.c
	modified:   stub/src/amd64-linux.elf-main.c
          plus associated *.h *.map *.dump
2024-01-12 15:39:18 -08:00
John Reiser 2ad0d51226 PeFile::rebuildImports(): Allow strlen() up to the very end of a logical block
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65650
https://github.com/upx/upx/issues/769
	modified:   pefile.cpp
2024-01-11 09:57:57 -08:00
John Reiser e4a611bcae PeFile ::readPeHeader should check ih.subsystem.
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65526
https://github.com/upx/upx/issues/767
	modified:   pefile.cpp
2024-01-10 16:28:17 -08:00
John Reiser f3728d99b9 Check ph.method in PackMachBase::unpack
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65553
https://github.com/upx/upx/issues/766
	modified:   p_mach.cpp
2024-01-10 16:04:08 -08:00
John Reiser b87f60a917 Check Mach_fat_arch.align
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65558
https://github.com/upx/upx/issues/765
	modified:   p_mach.cpp
2024-01-10 15:31:37 -08:00
John Reiser 28f26da6ab Need more care in PackMachBase::canUnpack()
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65532
https://github.com/upx/upx/issues/764
	modified:   p_mach.cpp
2024-01-10 15:14:54 -08:00
John Reiser d3e780d617 Unpacking ELF requires e_phnum at least 2
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65535
https://github.com/upx/upx/issues/763
	modified:   p_lx_elf.cpp
2024-01-10 14:07:58 -08:00
John Reiser d549c2b5c9 More care when recovering from slid b_info
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65531
https://github.com/upx/upx/issues/762
	modified:   p_lx_elf.cpp
2024-01-10 13:38:18 -08:00
John Reiser f310ce376e Beware fuzzer setting compressed size too small
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65519
https://github.com/upx/upx/issues/761
	modified:   p_unix.cpp
2024-01-10 11:20:47 -08:00
John Reiser 553fc9b1fb invert_pt_dynamic: Compilers differ, unsigned vs. signed
modified:   p_lx_elf.cpp
2024-01-10 10:33:33 -08:00
John Reiser 6dde9f7dc0 find_overlay_offset() did not check carefully enough
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65518
https://github.com/upx/upx/issues/760
	modified:   p_unix.cpp
2024-01-10 10:05:28 -08:00
John Reiser 3dca1175e5 invert_pt_dynamic() needs better checking for malformed input
https://github.com/upx/upx/issues/759
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=65510
	modified:   p_lx_elf.cpp
2024-01-10 09:41:12 -08:00
John Reiser 09c5e38322 arm64-linux.elf ABI owns x0 at execve()?
https://github.com/upx/upx/issues/758
	modified:   ../misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   stub/arm64-linux.elf-fold.h
	modified:   stub/src/amd64-linux.elf-main.c
	modified:   stub/src/arm64-linux.elf-fold.S
	modified:   stub/tmp/arm64-linux.elf-fold.map
2024-01-09 12:17:01 -08:00
John Reiser fe6f1f0bb6 arm64-linux.elf-fold.S typo (eyesight)
https://github.com/upx/upx/issues/743
	modified:   misc/testsuite/upx_testsuite_1-expected_sha256sums.sh
	modified:   src/stub/arm64-linux.elf-fold.h
	modified:   src/stub/src/arm64-linux.elf-fold.S
2024-01-09 10:01:07 -08:00
Markus F.X.J. Oberhumer 250c656b9e testsuite: update checksums caused by version bump 2024-01-04 03:18:19 +01:00
Markus F.X.J. Oberhumer 9a0b5b65b8 all: remove unused scripts 2024-01-04 03:09:48 +01:00
Markus F.X.J. Oberhumer 57b2fb4c62 all: post-release version bump 2024-01-04 02:52:22 +01:00
140 changed files with 7690 additions and 9415 deletions
+6 -2
View File
@@ -1,11 +1,14 @@
# "Gofmt's style is nobody's favourite, but gofmt is everybody's favourite." --Rob Pike
#
# vim:set ft=yaml ts=2 sw=2 et:
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
# for clang-format-15.0.6 from https://github.com/upx/upx-stubtools/releases
#
# "Gofmt's style is nobody's favourite, but gofmt is everybody's favourite." --Rob Pike
---
BasedOnStyle: LLVM
ColumnLimit: 100
IndentWidth: 4
---
# settings for C and C++
Language: Cpp
AccessModifierOffset: -4
AlignConsecutiveMacros: AcrossComments
@@ -15,6 +18,7 @@ AttributeMacros:
- XSPAN_DELETED_FUNCTION
- may_throw
EmptyLineBeforeAccessModifier: Leave
# IndentPPDirectives: AfterHash # TODO later
SortIncludes: false
SpaceAfterCStyleCast: true
Standard: Cpp03
+3 -1
View File
@@ -1,4 +1,6 @@
# for clang-tidy-16 from https://clang.llvm.org/extra/clang-tidy/
# vim:set ft=yaml ts=2 sw=2 et:
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
---
Checks: >
-*,
+43
View File
@@ -0,0 +1,43 @@
# vim:set ft=yaml ts=2 sw=2 et:
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
# for clangd from https://clangd.llvm.org/
---
# treat *.h files as C++ source code
If:
PathMatch: src/.*\.h
PathExclude: vendor/.*
CompileFlags:
Add:
- -xc++
---
# C++ flags
If:
PathMatch: [ src/.*\.h, src/.*\.cpp ]
PathExclude: vendor/.*
CompileFlags:
Add:
- -std=gnu++17
# -std=gnu++20 # requires clang >= 10.0
---
# common flags for all C/C++ files
If:
PathMatch: [ src/.*\.h, src/.*\.c, src/.*\.cpp ]
PathExclude: vendor/.*
CompileFlags:
Add:
# see https://github.com/clangd/clangd/issues/1038 : Support deterministic relative include path
- -Ivendor
- -I../vendor
- -I../../vendor
- -DDEBUG
- -fno-strict-aliasing
- -fno-strict-overflow
- -funsigned-char
Diagnostics:
Includes:
# IgnoreHeader: A list of regexes. Include Cleaner will not produce diagnostics
# for headers whose path is a suffix match for any of these.
IgnoreHeader:
- src/.*\.h
UnusedIncludes: None
...
+3 -2
View File
@@ -1,3 +1,4 @@
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
# see https://editorconfig.org/
root = true
@@ -14,8 +15,8 @@ trim_trailing_whitespace = true
indent_size = 8
indent_style = tab
[*.S]
[{*.asm,*.S}]
indent_size = 8
[*.yml]
[{*.yaml,*.yml}]
indent_size = 2
+1
View File
@@ -1,3 +1,4 @@
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
# see https://github.com/github-linguist/linguist
#
# HINT: check settings with
+134 -68
View File
@@ -15,8 +15,9 @@ env:
DEBIAN_FRONTEND: noninteractive
UPX_CMAKE_BUILD_FLAGS: --verbose
UPX_CMAKE_CONFIG_FLAGS: -Wdev --warn-uninitialized
# 2023-11-08
ZIG_DIST_VERSION: 0.12.0-dev.1502+b3462b7ce
UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO: 1
# 2024-03-23
ZIG_DIST_VERSION: 0.12.0-dev.3429+13a9d94a8
jobs:
job-rebuild-and-verify-stubs:
@@ -53,16 +54,16 @@ jobs:
git status || true
make -C src/stub extra-all all
if ! git diff --quiet; then git diff; exit 1; fi
- run: bash ./misc/scripts/check_whitespace_git.sh
- name: 'Check source code formatting'
run: |
bash ./misc/scripts/check_whitespace_git.sh
UPX_CLANG_FORMAT="$PWD/../deps/bin-upx-20221212/clang-format-15.0.6" make -C src clang-format
if ! git diff --quiet; then git diff; exit 1; fi
job-linux-cmake: # uses cmake + make
if: true
needs: [ job-rebuild-and-verify-stubs ]
name: ${{ format('{0} cmake', matrix.os) }}
name: ${{ format('{0}', matrix.os) }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
@@ -83,29 +84,30 @@ jobs:
for f in i686-w64-mingw32-g++ i686-w64-mingw32-gcc x86_64-w64-mingw32-g++ x86_64-w64-mingw32-gcc; do
if test -f /usr/bin/$f-posix; then sudo update-alternatives --set $f /usr/bin/$f-posix; fi
done
sudo apt-get install libc6-dbg:i386 valgrind
- name: 'Check out code'
uses: actions/checkout@v4
with: { submodules: true }
- name: 'Check out test suite'
run: 'git clone --depth=1 https://github.com/upx/upx-testsuite ../deps/upx-testsuite'
- name: 'Build cmake extra/gcc/debug'
- name: 'Build extra/gcc/debug'
run: 'make build/extra/gcc/debug'
- name: 'Build cmake extra/gcc/release'
- name: 'Build extra/gcc/release'
run: 'make build/extra/gcc/release'
- name: 'Build cmake extra/clang/debug'
- name: 'Build extra/clang/debug'
run: 'make build/extra/clang/debug'
- name: 'Build cmake extra/clang/release'
- name: 'Build extra/clang/release'
run: 'make build/extra/clang/release'
- name: 'Build cmake extra/gcc-m32/debug'
- name: 'Build extra/gcc-m32/debug'
if: ${{ matrix.use_m32 }}
run: 'make build/extra/gcc-m32/debug'
- name: 'Build cmake extra/gcc-m32/release'
- name: 'Build extra/gcc-m32/release'
if: ${{ matrix.use_m32 && (success() || failure()) }} # run this step even if the previous step failed
run: 'make build/extra/gcc-m32/release'
- name: 'Build cmake extra/cross-windows-mingw32/release'
- name: 'Build extra/cross-windows-mingw32/release'
if: ${{ matrix.use_m32 && (success() || failure()) }} # run this step even if the previous step failed
run: 'make build/extra/cross-windows-mingw32/release'
- name: 'Build cmake extra/cross-windows-mingw64/release'
- name: 'Build extra/cross-windows-mingw64/release'
if: ${{ matrix.use_m32 && (success() || failure()) }} # run this step even if the previous step failed
run: 'make build/extra/cross-windows-mingw64/release'
- name: 'Make artifact'
@@ -123,8 +125,8 @@ jobs:
path: tmp/artifact
- name: 'Run install tests'
run: |
(cd build/extra/gcc/release && DESTDIR=$PWD/Install-with-cmake cmake --install .)
(cd build/extra/gcc/release && DESTDIR=$PWD/Install-with-make make install)
(cd build/extra/gcc/release && DESTDIR="$PWD/Install with cmake" cmake --install .)
(cd build/extra/gcc/release && DESTDIR="$PWD/Install with make" make install)
- name: 'Run ctest tests'
run: |
make -C build/extra/gcc/debug test
@@ -147,9 +149,33 @@ jobs:
run: |
env -C build/extra/gcc-m32/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
env -C build/extra/gcc-m32/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
- name: 'Mimic ctest tests with Valgrind'
run: |
if command -v valgrind >/dev/null; then
export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet --gen-suppressions=all"
env -C build/extra/gcc/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
env -C build/extra/gcc/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
# clang/debug does not work before valgrind-3.20, see https://bugs.kde.org/show_bug.cgi?id=452758
##env -C build/extra/clang/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
env -C build/extra/clang/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
fi
- name: 'Mimic ctest tests 32-bit with Valgrind'
if: ${{ matrix.use_m32 }}
run: |
if command -v valgrind >/dev/null; then
export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet --gen-suppressions=all"
env -C build/extra/gcc-m32/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
env -C build/extra/gcc-m32/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
fi
- name: 'Run file system test suite'
run: |
env -C build/extra/gcc/release bash "$PWD"/misc/testsuite/test_symlinks.sh
- name: 'Run file system test suite with Valgrind'
run: |
if command -v valgrind >/dev/null; then
export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet --gen-suppressions=all"
env -C build/extra/gcc/release bash "$PWD"/misc/testsuite/test_symlinks.sh
fi
- name: 'Run test suite build/extra/gcc/release'
run: |
export upx_testsuite_SRCDIR="$(readlink -en ../deps/upx-testsuite)"
@@ -158,7 +184,7 @@ jobs:
job-macos-cmake: # uses cmake + make
if: true
needs: [ job-rebuild-and-verify-stubs ]
name: ${{ format('{0} cmake', matrix.os) }}
name: ${{ format('{0} {1}', matrix.os, matrix.xcode_version) }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
@@ -168,46 +194,62 @@ jobs:
# NOTE: macos-11 does not have "readlink -f"; only on macos >= 12 or with brew coreutils
- { os: macos-11, gcc: gcc-10, gxx: 'g++-10', testsuite: true }
- { os: macos-12, gcc: gcc-11, gxx: 'g++-11', testsuite: true }
- { os: macos-13, gcc: gcc-12, gxx: 'g++-12', testsuite: true }
- { os: macos-13, gcc: gcc-12, gxx: 'g++-12', testsuite: true, xcode_version: 14.3.1 }
- { os: macos-13, testsuite: true } # use default Xcode-15
# { os: macos-14, gcc: gcc-13, gxx: 'g++-13', testsuite: true } # gcc-13: INTERNAL ERROR in ld64
# { os: macos-14, gcc: gcc-13, gxx: 'g++-13', testsuite: true, xcode_version: 14.3.1 } # gcc-13: MISSING HEADER FILES
- { os: macos-14, gcc: gcc-12, gxx: 'g++-12', testsuite: true } # => use gcc-12 for now
env:
UPX_CONFIG_EXPECT_THREADS: 'ON'
steps:
- uses: maxim-lobanov/setup-xcode@v1
if: matrix.xcode_version # NOTE: gcc-12 on macos-13 does not work with Xcode-15
with:
xcode-version: ${{ matrix.xcode_version }}
- name: 'Install brew packages'
if: ${{ matrix.testsuite }}
run: |
test -z "$HOMEBREW_PREFIX" && HOMEBREW_PREFIX="$(brew --prefix)"
echo "HOMEBREW_PREFIX=$HOMEBREW_PREFIX" >> $GITHUB_ENV
# testsuite needs working "readlink -en" and "sha256sum -b"
if ! test -e /usr/local/opt/coreutils/libexec/gnubin/readlink; then
if ! test -e "$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin/readlink"; then
echo "===== brew leaves:"; brew leaves; echo "===== brew list:"; brew list --versions
# only run "brew update" if needed
if ! brew install coreutils; then brew update && brew install coreutils; fi
fi
case "${{ matrix.os }}" in
macos-11 | macos-12) echo "UPX_DEBUG_FORCE_PACK_MACOS=1" >> $GITHUB_ENV ;;
# FIXME: UPX on macos-13+ is broken => disable self-test for now
macos-13 | macos-14) echo "UPX_CONFIG_DISABLE_SELF_PACK_TEST=ON" >> $GITHUB_ENV ;;
esac
- name: 'Check out code'
uses: actions/checkout@v4
with: { submodules: true }
- name: 'Check out test suite'
if: ${{ matrix.testsuite }}
run: 'git clone --depth=1 https://github.com/upx/upx-testsuite ../deps/upx-testsuite'
- name: 'Build cmake extra/clang/debug'
- name: 'Build extra/clang/debug'
run: 'make build/extra/clang/debug'
- name: 'Build cmake extra/clang/release'
- name: 'Build extra/clang/release'
run: 'make build/extra/clang/release'
- name: 'Build cmake extra/gcc/debug'
- name: 'Build extra/gcc/debug'
if: ${{ matrix.gcc != '' }}
run: 'make build/extra/gcc/debug CC="${{ matrix.gcc }} -static-libgcc" CXX="${{ matrix.gxx }} -static-libgcc -static-libstdc++"'
- name: 'Build cmake extra/gcc/release'
- name: 'Build extra/gcc/release'
if: ${{ matrix.gcc != '' }}
run: 'make build/extra/gcc/release CC="${{ matrix.gcc }} -static-libgcc" CXX="${{ matrix.gxx }} -static-libgcc -static-libstdc++"'
- name: 'Build cmake xtarget/cross-darwin-arm64/debug'
- name: 'Build xtarget/cross-darwin-arm64/debug'
run: |
CC="clang -target arm64-apple-darwin" CXX="clang++ -target arm64-apple-darwin" \
make UPX_XTARGET=cross-darwin-arm64 xtarget/debug
- name: 'Build cmake xtarget/cross-darwin-arm64/release'
make UPX_XTARGET=xtarget/cross-darwin-arm64 xtarget/debug \
CC="clang -target arm64-apple-darwin" CXX="clang++ -target arm64-apple-darwin"
- name: 'Build xtarget/cross-darwin-arm64/release'
run: |
CC="clang -target arm64-apple-darwin" CXX="clang++ -target arm64-apple-darwin" \
make UPX_XTARGET=cross-darwin-arm64 xtarget/release
make UPX_XTARGET=xtarget/cross-darwin-arm64 xtarget/release \
CC="clang -target arm64-apple-darwin" CXX="clang++ -target arm64-apple-darwin"
- name: 'Make artifact'
run: |
N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-${{ matrix.os }}" | sed 's/[^0-9a-zA-Z_.-]/-/g')
X="${{ matrix.xcode_version }}"; test -n "$X" && X="-xcode-$X"
N=$(echo "upx-${GITHUB_REF_NAME}-${GITHUB_SHA:0:7}-${{ matrix.os }}$X" | sed 's/[^0-9a-zA-Z_.-]/-/g')
mkdir -p "tmp/artifact/$N"
(cd build && rsync -R -a */*/*/upx "../tmp/artifact/$N/")
(cd tmp/artifact && gtar --sort=name -czf "$N.tar.gz" "$N" && rm -rf "./$N")
@@ -220,36 +262,34 @@ jobs:
path: tmp/artifact
- name: 'Run install tests'
run: |
(cd build/extra/clang/release && DESTDIR=$PWD/Install-with-cmake cmake --install .)
(cd build/extra/clang/release && DESTDIR=$PWD/Install-with-make make install)
(cd build/extra/clang/release && DESTDIR="$PWD/Install with cmake" cmake --install .)
(cd build/extra/clang/release && DESTDIR="$PWD/Install with make" make install)
- name: 'Run ctest tests'
if: ${{ !contains(matrix.os, 'macos-13') }} # FIXME: UPX on macos-13 is broken => disable self-test for now
run: |
make -C build/extra/clang/debug test
#make -C build/extra/clang/release test
make -C build/extra/clang/release test
for f in ./build/extra/*/*/upx; do echo "===== $f"; $f --sysinfo -v; done
- name: 'Mimic ctest tests'
if: ${{ !contains(matrix.os, 'macos-13') }} # FIXME: UPX on macos-13 is broken => disable self-test for now
run: |
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
env -C build/extra/clang/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
#env -C build/extra/clang/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
env -C build/extra/clang/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
- name: 'Run file system test suite'
if: ${{ matrix.testsuite }} # for coreutils readlink
run: |
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
env -C build/extra/clang/release bash "$PWD"/misc/testsuite/test_symlinks.sh
- name: 'Run test suite build/extra/clang/release'
if: ${{ matrix.testsuite }}
run: |
export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
export PATH="$HOMEBREW_PREFIX/opt/coreutils/libexec/gnubin:$PATH"
export upx_testsuite_SRCDIR="$(readlink -en ../deps/upx-testsuite)"
env -C build/extra/clang/release bash "$PWD"/misc/testsuite/upx_testsuite_1.sh
job-windows-cmake: # uses cmake + msbuild
if: true
needs: [ job-rebuild-and-verify-stubs ]
name: ${{ format('{0} cmake', matrix.name) }}
name: ${{ format('{0}', matrix.name) }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
@@ -271,9 +311,9 @@ jobs:
with:
vsversion: ${{ matrix.vsversion }}
arch: ${{ matrix.arch }}
- name: 'Build cmake debug'
- name: 'Build debug'
run: 'make build/debug'
- name: 'Build cmake release'
- name: 'Build release'
run: 'make build/release'
- name: 'Make artifact'
shell: bash
@@ -345,7 +385,7 @@ jobs:
set RUN_CL=cl ${{ matrix.cl_machine_flags }} -MT
set RUN_LIB=link -lib ${{ matrix.link_machine_flags }}
@rem UPX only uses the very basic Windows API
set DEFS=-D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0400
set DEFS=-D_CRT_NONSTDC_NO_WARNINGS -D_CRT_SECURE_NO_WARNINGS -DWIN32_LEAN_AND_MEAN -D_WIN32_WINNT=0x0501
set BDIR=%H%\build\%C%\%B%
git rev-parse --short=12 HEAD > %BDIR%\upx\.GITREV.txt
@REM ===== build bzip2 =====
@@ -415,38 +455,41 @@ jobs:
needs: [ job-rebuild-and-verify-stubs ]
name: ${{ format('zigcc {0} {1}', matrix.zig_target, matrix.zig_pic) }}
runs-on: ubuntu-latest
container: 'alpine:3.19' # older versions such as alpine:3.12 also work; no-container also works
container: 'alpine:3.19'
strategy:
fail-fast: false
matrix:
include:
# only build a few targets => more targets are tested in the Weekly CI
- { zig_target: aarch64-linux-musl }
# { zig_target: aarch64-linux-musl, zig_pic: -fPIE }
- { zig_target: aarch64-linux-musl, qemu: qemu-aarch64 }
# { zig_target: aarch64-linux-musl, qemu: qemu-aarch64, zig_pic: -fPIE }
# { zig_target: aarch64-macos-none }
- { zig_target: aarch64-macos.11.0-none }
# { zig_target: aarch64-macos.12.0-none }
# { zig_target: aarch64-macos.13.0-none }
- { zig_target: aarch64-windows-gnu }
- { zig_target: arm-linux-musleabihf }
# { zig_target: arm-linux-musleabihf, zig_pic: -fPIE }
- { zig_target: i386-linux-musl }
# { zig_target: i386-linux-musl, zig_pic: -fPIE }
- { zig_target: arm-linux-musleabihf, qemu: qemu-arm }
# { zig_target: arm-linux-musleabihf, qemu: qemu-arm, zig_pic: -fPIE }
- { zig_target: i386-linux-musl, qemu: qemu-i386 -cpu Conroe }
# { zig_target: i386-linux-musl, qemu: qemu-i386 -cpu Conroe, zig_pic: -fPIE }
- { zig_target: i386-windows-gnu }
# { zig_target: mips-linux-musl }
# { zig_target: mipsel-linux-musl }
# { zig_target: powerpc-linux-musl }
# { zig_target: powerpc64-linux-musl }
# { zig_target: powerpc64le-linux-musl }
- { zig_target: x86_64-linux-musl }
# { zig_target: x86_64-linux-musl, zig_pic: -fPIE }
# mips and mipsel: bad hard-float code generation(??); or QEMU bug; or UPX bug; see https://github.com/upx/upx/issues/788
- { zig_target: mips-linux-musl, zig_flags: -msoft-float, qemu: qemu-mips }
- { zig_target: mipsel-linux-musl, zig_flags: -msoft-float, qemu: qemu-mipsel }
- { zig_target: powerpc-linux-musl, qemu: qemu-ppc }
- { zig_target: powerpc64-linux-musl, qemu: qemu-ppc64 }
- { zig_target: powerpc64le-linux-musl, qemu: qemu-ppc64le }
- { zig_target: x86_64-linux-musl, qemu: qemu-x86_64 }
# { zig_target: x86_64-linux-musl, qemu: qemu-x86_64, zig_pic: -fPIE }
# { zig_target: x86_64-macos-none }
- { zig_target: x86_64-macos.11.0-none }
# { zig_target: x86_64-macos.12.0-none }
# { zig_target: x86_64-macos.13.0-none }
- { zig_target: x86_64-windows-gnu }
env:
UPX_CONFIG_EXPECT_THREADS: 'ON'
##UPX_CONFIG_EXPECT_THREADS: 'ON'
# zig is currently missing winpthreads; see https://github.com/ziglang/zig/issues/10989
UPX_CONFIG_EXPECT_THREADS: ${{ contains(matrix.zig_target, '-windows-') && 'OFF' || 'ON' }}
# for zig-cc wrapper scripts (see below):
ZIG_CPPFLAGS: -DUPX_DOCTEST_CONFIG_MULTITHREADING
ZIG_FLAGS: ${{ matrix.zig_flags }}
@@ -494,18 +537,14 @@ jobs:
ls -la; head zig-ar zig-cc zig-cxx zig-ranlib
- name: ${{ format('Build Release with zig-cc -target {0} {1}', env.ZIG_TARGET, env.ZIG_PIC) }}
run: |
mkdir -p build/zig/${ZIG_TARGET}${ZIG_PIC}/release
cd build/zig/${ZIG_TARGET}${ZIG_PIC}/release
cmake ../../../.. -DCMAKE_BUILD_TYPE=Release -DCMAKE_AR=$HOME/.local/bin/zig-ar -DCMAKE_C_COMPILER=zig-cc -DCMAKE_CXX_COMPILER=zig-cxx -DCMAKE_RANLIB=$HOME/.local/bin/zig-ranlib $EXTRA_CMAKE_CONFIG_FLAGS_RELEASE
cmake --build . --config Release --parallel --verbose
file ./upx*
make UPX_XTARGET=zig/${ZIG_TARGET}${ZIG_PIC} xtarget/release \
CC="zig-cc" CXX="zig-cxx" CMAKE_AR="$HOME/.local/bin/zig-ar" CMAKE_RANLIB="$HOME/.local/bin/zig-ranlib"
file build/zig/${ZIG_TARGET}${ZIG_PIC}/release/upx*
- name: ${{ format('Build Debug with zig-cc -target {0} {1}', env.ZIG_TARGET, env.ZIG_PIC) }}
run: |
mkdir -p build/zig/${ZIG_TARGET}${ZIG_PIC}/debug
cd build/zig/${ZIG_TARGET}${ZIG_PIC}/debug
cmake ../../../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_AR=$HOME/.local/bin/zig-ar -DCMAKE_C_COMPILER=zig-cc -DCMAKE_CXX_COMPILER=zig-cxx -DCMAKE_RANLIB=$HOME/.local/bin/zig-ranlib $EXTRA_CMAKE_CONFIG_FLAGS_DEBUG
cmake --build . --config Debug --parallel --verbose
file ./upx*
make UPX_XTARGET=zig/${ZIG_TARGET}${ZIG_PIC} xtarget/debug \
CC="zig-cc" CXX="zig-cxx" CMAKE_AR="$HOME/.local/bin/zig-ar" CMAKE_RANLIB="$HOME/.local/bin/zig-ranlib"
file build/zig/${ZIG_TARGET}${ZIG_PIC}/debug/upx*
- name: ${{ format('Make artifact from upx-{0}-{1}', github.ref_name, env.UPX_GITREV_SHORT) }}
shell: bash
run: |
@@ -523,5 +562,32 @@ jobs:
- name: 'Run install tests'
if: ${{ contains(matrix.zig_target, '-linux') }}
run: |
(cd build/zig/${ZIG_TARGET}${ZIG_PIC}/release && DESTDIR=$PWD/Install-with-cmake cmake --install .)
(cd build/zig/${ZIG_TARGET}${ZIG_PIC}/release && DESTDIR=$PWD/Install-with-make make install)
(cd build/zig/${ZIG_TARGET}${ZIG_PIC}/release && DESTDIR="$PWD/Install with cmake" cmake --install .)
(cd build/zig/${ZIG_TARGET}${ZIG_PIC}/release && DESTDIR="$PWD/Install with make" make install)
- name: 'Run ctest tests'
if: ${{ matrix.zig_target == 'i386-linux-musl' || matrix.zig_target == 'x86_64-linux-musl' }}
run: |
make -C build/zig/${ZIG_TARGET}${ZIG_PIC}/debug test
make -C build/zig/${ZIG_TARGET}${ZIG_PIC}/release test
- name: 'Mimic ctest tests'
if: ${{ matrix.zig_target == 'i386-linux-musl' || matrix.zig_target == 'x86_64-linux-musl' }}
run: |
apk add coreutils
env -C build/zig/${ZIG_TARGET}${ZIG_PIC}/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
env -C build/zig/${ZIG_TARGET}${ZIG_PIC}/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
- name: ${{ format('Mimic ctest tests with QEMU {0}', matrix.qemu) }}
if: ${{ matrix.qemu }}
run: |
qemu="${{ matrix.qemu }}"
apk add coreutils "${qemu%% *}"
export upx_exe_runner="$qemu"
env -C build/zig/${ZIG_TARGET}${ZIG_PIC}/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
env -C build/zig/${ZIG_TARGET}${ZIG_PIC}/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
- name: 'Mimic ctest tests with Valgrind'
if: ${{ matrix.zig_target == 'x86_64-linux-musl' }}
run: |
apk add coreutils valgrind
export upx_exe_runner="valgrind --leak-check=no --error-exitcode=1 --quiet --gen-suppressions=all"
upx_exe_runner="$upx_exe_runner --suppressions=$PWD/misc/valgrind/musl.supp"
env -C build/zig/${ZIG_TARGET}${ZIG_PIC}/debug bash "$PWD"/misc/testsuite/mimic_ctest.sh
env -C build/zig/${ZIG_TARGET}${ZIG_PIC}/release bash "$PWD"/misc/testsuite/mimic_ctest.sh
+3 -2
View File
@@ -1,6 +1,6 @@
/.hg*
/.vscode*
/Makevars.global*
/Makevars[.-]global*
/Testing*
/build*
/maint*
@@ -8,7 +8,7 @@
GNUmakefile*
MMakefile*
Makevars.local*
Makevars[.-]local*
compile_flags*.txt
Tmp*
tmp*
@@ -16,6 +16,7 @@ tmp*
*.a
*.bz2
*.d
*.diff
*.dll
*.dylib
*.exe
+25 -15
View File
@@ -58,7 +58,7 @@ option(UPX_CONFIG_DISABLE_SELF_PACK_TEST "Do not test packing UPX with itself" O
# init
#***********************************************************************
set(UPX_VERSION_STRING "4.3.0")
set(UPX_VERSION_STRING "4.2.3") # this should match src/version.h
upx_cmake_include_hook(2_init)
@@ -85,6 +85,7 @@ upx_cache_bool_vars(OFF
UPX_CONFIG_DISABLE_C_STANDARD UPX_CONFIG_DISABLE_CXX_STANDARD
UPX_CONFIG_EXPECT_THREADS UPX_CONFIG_REQUIRE_THREADS
)
upx_print_env_var(CC CXX)
# determine Git revision
set(GITREV_SHORT "")
@@ -129,7 +130,7 @@ else()
endif()
# CMake init
upx_default_build_type(Release)
upx_set_default_build_type(Release) # default is CMAKE_BUILD_TYPE=Release
project(upx VERSION "${UPX_VERSION_STRING}" LANGUAGES C CXX)
upx_apply_build_type()
@@ -254,9 +255,15 @@ endif()
if(Threads_FOUND)
foreach(f std_lock_guard.cpp)
set(CMAKE_TRY_COMPILE_TARGET_TYPE "EXECUTABLE")
if(NOT UPX_CONFIG_DISABLE_CXX_STANDARD)
try_compile(result "${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/try_compile/${f}"
OUTPUT_VARIABLE output CXX_STANDARD 17)
else()
try_compile(result "${CMAKE_CURRENT_BINARY_DIR}"
"${CMAKE_CURRENT_SOURCE_DIR}/misc/cmake/try_compile/${f}"
OUTPUT_VARIABLE output)
endif()
if(NOT result)
# failed; under MinGW be sure to use the posix-threads and NOT the win32-threads version
#message(STATUS "Threads FAILED: ${output}") # debug output from try_compile
@@ -326,6 +333,7 @@ if(MSVC_FRONTEND)
else()
target_compile_options(${t} PRIVATE ${warn_Wall} ${warn_Werror})
endif()
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_BZIP2)
endif() # UPX_CONFIG_DISABLE_BZIP2
set(t upx_vendor_ucl)
@@ -337,6 +345,7 @@ if(MSVC_FRONTEND)
else()
target_compile_options(${t} PRIVATE ${warn_Wall} ${warn_Werror})
endif()
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UCL)
set(t upx_vendor_zlib)
upx_compile_target_debug_with_O2(${t})
@@ -348,9 +357,9 @@ endif()
if(MSVC_FRONTEND)
target_compile_options(${t} PRIVATE -W3 ${warn_WX})
else()
##target_compile_options(${t} PRIVATE -Wall ${warn_Werror})
target_compile_options(${t} PRIVATE ${warn_Wall} -Wno-cast-align -Wno-cast-qual ${warn_Werror})
endif()
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZLIB)
if(NOT UPX_CONFIG_DISABLE_ZSTD)
set(t upx_vendor_zstd)
@@ -362,6 +371,7 @@ if(MSVC_FRONTEND)
else()
target_compile_options(${t} PRIVATE ${warn_Wall} ${warn_Werror})
endif()
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZSTD)
endif() # UPX_CONFIG_DISABLE_ZSTD
set(t upx)
@@ -404,6 +414,7 @@ if(MSVC_FRONTEND)
else()
target_compile_options(${t} PRIVATE ${warn_Wall} ${warn_Werror})
endif()
upx_add_target_extra_compile_options(${t} UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UPX)
#***********************************************************************
# test
@@ -486,12 +497,17 @@ upx_cmake_include_hook(8_summary)
upx_print_var(CMAKE_VERSION UPX_CONFIG_CMAKE_MINIMUM_REQUIRED_VERSION CMAKE_GENERATOR)
if(NOT UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO)
upx_print_var(CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_VERSION)
upx_print_var(CMAKE_SYSTEM_NAME CMAKE_SYSTEM_VERSION CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR)
if(NOT ",${CMAKE_BINARY_DIR}," STREQUAL ",${CMAKE_CURRENT_BINARY_DIR}," OR NOT ",${CMAKE_SOURCE_DIR}," STREQUAL ",${CMAKE_CURRENT_SOURCE_DIR},")
upx_print_var(CMAKE_BINARY_DIR CMAKE_SOURCE_DIR CMAKE_CURRENT_BINARY_DIR CMAKE_CURRENT_SOURCE_DIR)
endif()
upx_print_var(CMAKE_HOST_SYSTEM_NAME CMAKE_HOST_SYSTEM_VERSION CMAKE_HOST_SYSTEM_PROCESSOR CMAKE_APPLE_SILICON_PROCESSOR)
upx_print_var(CMAKE_SYSTEM_NAME CMAKE_SYSTEM_VERSION CMAKE_SYSTEM_PROCESSOR CMAKE_CROSSCOMPILING CMAKE_CROSSCOMPILING_EMULATOR)
upx_print_var(CMAKE_OSX_DEPLOYMENT_TARGET CMAKE_OSX_SYSROOT)
upx_print_var(CMAKE_C_COMPILER CMAKE_CXX_COMPILER CMAKE_AR CMAKE_RANLIB)
upx_print_var(CMAKE_C_COMPILER_ID CMAKE_C_COMPILER_VERSION CMAKE_C_COMPILER_FRONTEND_VARIANT CMAKE_C_COMPILER_ARCHITECTURE_ID CMAKE_C_PLATFORM_ID CMAKE_C_COMPILER_ABI)
upx_print_var(CMAKE_CXX_COMPILER_ID CMAKE_CXX_COMPILER_VERSION CMAKE_CXX_COMPILER_FRONTEND_VARIANT CMAKE_CXX_COMPILER_ARCHITECTURE_ID CMAKE_CXX_PLATFORM_ID CMAKE_CXX_COMPILER_ABI)
upx_print_var(CMAKE_INTERPROCEDURAL_OPTIMIZATION CMAKE_POSITION_INDEPENDENT_CODE CMAKE_TRY_COMPILE_CONFIGURATION)
upx_print_var(CYGWIN GNUC MINGW MSVC MSVC_FRONTEND MSVC_IDE WIN32 WIN64)
upx_print_var(APPLE CYGWIN GNUC MINGW MSVC MSVC_FRONTEND MSVC_IDE UNIX WIN32 WIN64)
endif() # UPX_CONFIG_CMAKE_DISABLE_PRINT_INFO
upx_print_var(CMAKE_INSTALL_PREFIX CMAKE_CONFIGURATION_TYPES CMAKE_BUILD_TYPE)
if(Threads_FOUND)
@@ -507,15 +523,9 @@ endif()
# extra sanity checks to detect incompatible C vs CXX settings
if(NOT UPX_CONFIG_CMAKE_DISABLE_PLATFORM_CHECK)
if(NOT ",${CMAKE_C_PLATFORM_ID}," STREQUAL ",${CMAKE_CXX_PLATFORM_ID},")
message(FATAL_ERROR "ERROR: CMAKE_C_PLATFORM_ID CMAKE_CXX_PLATFORM_ID mismatch")
endif()
if(NOT ",${CMAKE_C_COMPILER_ABI}," STREQUAL ",${CMAKE_CXX_COMPILER_ABI},")
message(FATAL_ERROR "ERROR: CMAKE_C_COMPILER_ABI CMAKE_CXX_COMPILER_ABI mismatch")
endif()
if(NOT ",${CMAKE_C_COMPILER_FRONTEND_VARIANT}," STREQUAL ",${CMAKE_CXX_COMPILER_FRONTEND_VARIANT},")
message(FATAL_ERROR "ERROR: CMAKE_C_COMPILER_FRONTEND_VARIANT CMAKE_CXX_COMPILER_FRONTEND_VARIANT mismatch")
endif()
upx_platform_check_mismatch(CMAKE_C_PLATFORM_ID CMAKE_CXX_PLATFORM_ID)
upx_platform_check_mismatch(CMAKE_C_COMPILER_ABI CMAKE_CXX_COMPILER_ABI)
upx_platform_check_mismatch(CMAKE_C_COMPILER_FRONTEND_VARIANT CMAKE_CXX_COMPILER_FRONTEND_VARIANT)
endif() # UPX_CONFIG_CMAKE_DISABLE_PLATFORM_CHECK
upx_cmake_include_hook(9_finish)
+5 -7
View File
@@ -46,10 +46,10 @@ build/release: PHONY
.SUFFIXES:
# shortcuts (all => debug + release)
debug: build/debug
release: build/release
all build/all: build/debug build/release
build/%/all: $$(dir $$@)debug $$(dir $$@)release ;
debug: build/debug PHONY
release: build/release PHONY
all build/all: build/debug build/release PHONY
build/%/all: $$(dir $$@)debug $$(dir $$@)release PHONY ;
#
# END of Makefile
@@ -63,9 +63,7 @@ include ./misc/make/Makefile-extra.mk
endif
# developer convenience
CTEST = ctest
test:: $(.DEFAULT_GOAL) PHONY
cd $(.DEFAULT_GOAL) && $(CTEST)
test:: build/all+test PHONY
ifneq ($(wildcard /usr/bin/env),) # need Unix utils like bash, perl, sed, xargs, etc.
ifneq ($(wildcard ./misc/scripts/.),)
check-whitespace clang-format run-testsuite run-testsuite-debug run-testsuite-release: src/Makefile PHONY
+3
View File
@@ -2,6 +2,9 @@
User visible changes for UPX
==================================================================
Changes in 4.2.3 (27 Mar 2024):
* bug fixes - see https://github.com/upx/upx/milestone/16
Changes in 4.2.2 (03 Jan 2024):
* bug fixes - see https://github.com/upx/upx/milestone/15
Generated
+1 -1
View File
@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "UPX 1"
.TH UPX 1 "2024-01-03" "upx 4.2.2" " "
.TH UPX 1 "2024-03-27" "upx 4.2.3" " "
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
+1 -1
View File
@@ -1,4 +1,4 @@
# for clang-tidy-16 from https://clang.llvm.org/extra/clang-tidy/
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
---
Checks: >
-*,
+1 -1
View File
@@ -1,4 +1,4 @@
# for clang-tidy-16 from https://clang.llvm.org/extra/clang-tidy/
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
---
Checks: >
-*,
+1 -1
View File
@@ -1,4 +1,4 @@
# for clang-tidy-16 from https://clang.llvm.org/extra/clang-tidy/
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
---
Checks: >
-*,
+1 -1
View File
@@ -1,4 +1,4 @@
# for clang-tidy-16 from https://clang.llvm.org/extra/clang-tidy/
# for clang-tidy from https://clang.llvm.org/extra/clang-tidy/
---
Checks: >
-*,
+68 -7
View File
@@ -27,7 +27,7 @@ macro(upx_disallow_in_source_build)
endmacro()
# set the default build type; must be called before project() cmake init
macro(upx_default_build_type type)
macro(upx_set_default_build_type type)
set(upx_global_default_build_type "${type}")
get_property(upx_global_is_multi_config GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(NOT upx_global_is_multi_config AND NOT CMAKE_BUILD_TYPE)
@@ -72,6 +72,16 @@ function(upx_print_var) # ARGV
endforeach()
endfunction()
function(upx_print_env_var) # ARGV
foreach(var_name ${ARGV})
if(DEFINED ENV{${var_name}})
if(NOT ",$ENV{${var_name}}," STREQUAL ",,")
message(STATUS "ENV{${var_name}} = $ENV{${var_name}}")
endif()
endif()
endforeach()
endfunction()
function(upx_print_have_symbol) # ARGV; needs include(CheckSymbolExists)
foreach(symbol ${ARGV})
set(cache_var_name "HAVE_symbol_${symbol}")
@@ -87,7 +97,7 @@ function(upx_print_mingw_symbols)
if(WIN32 OR MINGW OR CYGWIN)
if(CMAKE_C_COMPILER_ID MATCHES "(Clang|GNU)")
# runtime library: msvcrt vs ucrt vs cygwin
upx_print_have_symbol(__CRTDLL__ __CYGWIN__ __CYGWIN32__ __CYGWIN64__ __MINGW32__ __MINGW64__ __MINGW64_VERSION_MAJOR __MSVCRT__ _UCRT _WIN32 _WIN64)
upx_print_have_symbol(__CRTDLL__ __CYGWIN__ __CYGWIN32__ __CYGWIN64__ __MINGW32__ __MINGW64__ __MINGW64_VERSION_MAJOR __MSVCRT__ __MSVCRT_VERSION__ _UCRT _WIN32 _WIN64)
# exception handing: SJLJ (setjmp/longjmp) vs DWARF vs SEH
upx_print_have_symbol(__GCC_HAVE_DWARF2_CFI_ASM __SEH__ __USING_SJLJ_EXCEPTIONS__)
# threads: win32 vs posix/pthread/winpthreads vs mcfgthread
@@ -108,7 +118,25 @@ function(upx_add_glob_files) # ARGV
list(APPEND result "${files}")
list(SORT result)
list(REMOVE_DUPLICATES result)
##message(STATUS "upx_add_glob_files: ${var_name} = ${result}")
#message(STATUS "upx_add_glob_files: ${var_name} = ${result}")
set(${var_name} "${result}" PARENT_SCOPE) # return value
endfunction()
# remove wildcard expansions from a variable
function(upx_remove_glob_files) # ARGV
set(var_name ${ARGV0})
list(REMOVE_AT ARGV 0)
file(GLOB files ${ARGV})
set(result "")
if(DEFINED ${var_name})
set(result "${${var_name}}")
foreach(file ${files})
list(REMOVE_ITEM result "${file}")
endforeach()
list(SORT result)
list(REMOVE_DUPLICATES result)
endif()
#message(STATUS "upx_remove_glob_files: ${var_name} = ${result}")
set(${var_name} "${result}" PARENT_SCOPE) # return value
endfunction()
@@ -122,10 +150,10 @@ function(upx_cache_bool_vars) # ARGV
set(value "${UPX_CACHE_VALUE_${var_name}}")
elseif(DEFINED ${var_name}) # defined via "cmake -DXXX=YYY"
set(value "${${var_name}}")
elseif(DEFINED ENV{${var_name}})
if("$ENV{${var_name}}" MATCHES "^(0|1|OFF|ON|FALSE|TRUE)$") # check environment
elseif(DEFINED ENV{${var_name}}) # check environment
if("$ENV{${var_name}}" MATCHES "^(0|1|OFF|ON|FALSE|TRUE)$")
set(value "$ENV{${var_name}}")
set(UPX_CACHE_ORIGIN_FROM_ENV_${var_name} TRUE CACHE INTERNAL "" FORCE) # for info below
set(UPX_CACHE_ORIGIN_FROM_ENV_${var_name} TRUE CACHE INTERNAL "" FORCE) # for status message below
endif()
endif()
# convert to bool
@@ -143,6 +171,18 @@ function(upx_cache_bool_vars) # ARGV
endforeach()
endfunction()
function(upx_platform_check_mismatch var_name_1 var_name_2)
if(DEFINED ${var_name_1} OR DEFINED ${var_name_2})
if(NOT ",${${var_name_1}}," STREQUAL ",${${var_name_2}},")
if(UPX_CONFIG_DISABLE_WERROR)
message(WARNING "WARNING: '${var_name_1}' '${var_name_2}' mismatch")
else()
message(FATAL_ERROR "FATAL ERROR: '${var_name_1}' '${var_name_2}' mismatch")
endif()
endif()
endif()
endfunction()
#***********************************************************************
# compilation flags
#***********************************************************************
@@ -179,6 +219,27 @@ function(upx_add_definitions) # ARGV; needs include(CheckCCompilerFlag)
endif()
endfunction()
# useful for CI jobs: allow target extra compile options
function(upx_add_target_extra_compile_options) # ARGV
set(t "${ARGV0}")
list(REMOVE_AT ARGV 0)
foreach(var_name ${ARGV})
if(NOT DEFINED ${var_name})
elseif(",${${var_name}}," STREQUAL ",,")
else()
set(flags "${${var_name}}")
if(NOT flags MATCHES ";") # NOTE: split into list from string only if not already a list
if(${CMAKE_VERSION} VERSION_GREATER "3.8.99")
separate_arguments(flags NATIVE_COMMAND "${flags}")
else()
separate_arguments(flags)
endif()
endif()
target_compile_options(${t} PRIVATE "${flags}")
endif()
endforeach()
endfunction()
# compile a target with -O2 optimization even in Debug build
function(upx_compile_target_debug_with_O2) # ARGV
foreach(t ${ARGV})
@@ -218,7 +279,7 @@ function(upx_compile_source_debug_with_O2) # ARGV
endforeach()
endfunction()
# sanitize a target: this needs proper support from your compiler AND toolchain
# sanitize a target; note that this may require special run-time support libs from your toolchain
function(upx_sanitize_target) # ARGV
foreach(t ${ARGV})
if(UPX_CONFIG_DISABLE_SANITIZE)
+64 -17
View File
@@ -11,6 +11,23 @@ override check_undefined = $(foreach 1,$1,$(if $(filter undefined,$(origin $1)),
$(call check_defined,run_config run_build)
$(call check_undefined,run_config_and_build)
#***********************************************************************
# build and test
#***********************************************************************
CTEST = ctest
build/debug+test: $$(dir $$@)debug PHONY; cd "$(dir $@)debug" && $(CTEST)
build/%/debug+test: $$(dir $$@)debug PHONY; cd "$(dir $@)debug" && $(CTEST)
build/release+test: $$(dir $$@)release PHONY; cd "$(dir $@)release" && $(CTEST)
build/%/release+test: $$(dir $$@)release PHONY; cd "$(dir $@)release" && $(CTEST)
build/%/all+test: $$(dir $$@)debug+test $$(dir $$@)release+test PHONY ;
# shortcuts
debug+test: build/debug+test PHONY
release+test: build/release+test PHONY
all+test build/all+test: build/debug+test build/release+test PHONY
#***********************************************************************
# extra builds: some pre-defined build configurations
#***********************************************************************
@@ -50,6 +67,12 @@ build/extra/clang-static/release: PHONY; $(call run_config_and_build,$@,Release)
build/extra/clang-static/%: export CC = clang -static
build/extra/clang-static/%: export CXX = clang++ -static
# force building with clang/clang++ -static-pie
build/extra/clang-static-pie/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/clang-static-pie/release: PHONY; $(call run_config_and_build,$@,Release)
build/extra/clang-static-pie/%: export CC = clang -static-pie -fPIE -Wno-unused-command-line-argument
build/extra/clang-static-pie/%: export CXX = clang++ -static-pie -fPIE -Wno-unused-command-line-argument
# force building with clang/clang++ -static -flto
build/extra/clang-static-lto/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/clang-static-lto/release: PHONY; $(call run_config_and_build,$@,Release)
@@ -102,6 +125,12 @@ build/extra/gcc-static/release: PHONY; $(call run_config_and_build,$@,Release)
build/extra/gcc-static/%: export CC = gcc -static
build/extra/gcc-static/%: export CXX = g++ -static
# force building with gcc/g++ -static-pie
build/extra/gcc-static-pie/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/gcc-static-pie/release: PHONY; $(call run_config_and_build,$@,Release)
build/extra/gcc-static-pie/%: export CC = gcc -static-pie -fPIE
build/extra/gcc-static-pie/%: export CXX = g++ -static-pie -fPIE
# force building with gcc/g++ -static -flto
build/extra/gcc-static-lto/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/gcc-static-lto/release: PHONY; $(call run_config_and_build,$@,Release)
@@ -143,17 +172,19 @@ build/extra/cross-linux-gnu-arm-eabihf/%: CMAKE_CROSSCOMPILING_EMULATOR ?= qemu-
# cross compiler: Windows x86 win32 MinGW (i386)
build/extra/cross-windows-mingw32/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/cross-windows-mingw32/release: PHONY; $(call run_config_and_build,$@,Release)
build/extra/cross-windows-mingw32/%: export CC = i686-w64-mingw32-gcc -static -D_WIN32_WINNT=0x0400
build/extra/cross-windows-mingw32/%: export CXX = i686-w64-mingw32-g++ -static -D_WIN32_WINNT=0x0400
build/extra/cross-windows-mingw32/%: export CC = i686-w64-mingw32-gcc -static -D_WIN32_WINNT=0x0501
build/extra/cross-windows-mingw32/%: export CXX = i686-w64-mingw32-g++ -static -D_WIN32_WINNT=0x0501
build/extra/cross-windows-mingw32/%: CMAKE_SYSTEM_NAME ?= Windows
build/extra/cross-windows-mingw32/%: CMAKE_SYSTEM_PROCESSOR ?= X86
build/extra/cross-windows-mingw32/%: CMAKE_CROSSCOMPILING_EMULATOR ?= wine
# cross compiler: Windows x64 win64 MinGW (amd64)
build/extra/cross-windows-mingw64/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/extra/cross-windows-mingw64/release: PHONY; $(call run_config_and_build,$@,Release)
build/extra/cross-windows-mingw64/%: export CC = x86_64-w64-mingw32-gcc -static -D_WIN32_WINNT=0x0400
build/extra/cross-windows-mingw64/%: export CXX = x86_64-w64-mingw32-g++ -static -D_WIN32_WINNT=0x0400
build/extra/cross-windows-mingw64/%: export CC = x86_64-w64-mingw32-gcc -static -D_WIN32_WINNT=0x0501
build/extra/cross-windows-mingw64/%: export CXX = x86_64-w64-mingw32-g++ -static -D_WIN32_WINNT=0x0501
build/extra/cross-windows-mingw64/%: CMAKE_SYSTEM_NAME ?= Windows
build/extra/cross-windows-mingw64/%: CMAKE_SYSTEM_PROCESSOR ?= AMD64
build/extra/cross-windows-mingw64/%: CMAKE_CROSSCOMPILING_EMULATOR ?= wine64
# cross compiler: macOS arm64 (aarch64)
@@ -162,6 +193,7 @@ build/extra/cross-darwin-arm64/release: PHONY; $(call run_config_and_build,$@,Re
build/extra/cross-darwin-arm64/%: export CC = clang -target arm64-apple-darwin
build/extra/cross-darwin-arm64/%: export CXX = clang++ -target arm64-apple-darwin
build/extra/cross-darwin-arm64/%: CMAKE_SYSTEM_NAME ?= Darwin
build/extra/cross-darwin-arm64/%: CMAKE_SYSTEM_PROCESSOR ?= arm64
# cross compiler: macOS x86_64 (amd64)
build/extra/cross-darwin-x86_64/debug: PHONY; $(call run_config_and_build,$@,Debug)
@@ -169,6 +201,7 @@ build/extra/cross-darwin-x86_64/release: PHONY; $(call run_config_and_build,$@,R
build/extra/cross-darwin-x86_64/%: export CC = clang -target x86_64-apple-darwin
build/extra/cross-darwin-x86_64/%: export CXX = clang++ -target x86_64-apple-darwin
build/extra/cross-darwin-x86_64/%: CMAKE_SYSTEM_NAME ?= Darwin
build/extra/cross-darwin-x86_64/%: CMAKE_SYSTEM_PROCESSOR ?= x86_64
#***********************************************************************
# C/C++ static analyzers
@@ -219,16 +252,19 @@ ifneq ($(CC),)
ifneq ($(CXX),)
UPX_XTARGET := $(UPX_XTARGET)
build/xtarget/$(UPX_XTARGET)/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/xtarget/$(UPX_XTARGET)/release: PHONY; $(call run_config_and_build,$@,Release)
build/xtarget/$(UPX_XTARGET)/%: export CC := $(CC)
build/xtarget/$(UPX_XTARGET)/%: export CXX := $(CXX)
build/$(UPX_XTARGET)/debug: PHONY; $(call run_config_and_build,$@,Debug)
build/$(UPX_XTARGET)/release: PHONY; $(call run_config_and_build,$@,Release)
build/$(UPX_XTARGET)/%: export CC := $(CC)
build/$(UPX_XTARGET)/%: export CXX := $(CXX)
# shortcuts
xtarget/all: xtarget/debug xtarget/release
xtarget/debug: build/xtarget/$(UPX_XTARGET)/debug
xtarget/release: build/xtarget/$(UPX_XTARGET)/release
xtarget/all: xtarget/debug xtarget/release PHONY
xtarget/debug: build/$(UPX_XTARGET)/debug PHONY
xtarget/release: build/$(UPX_XTARGET)/release PHONY
xtarget/all+test: xtarget/debug+test xtarget/release+test PHONY
xtarget/debug+test: build/$(UPX_XTARGET)/debug+test PHONY
xtarget/release+test: build/$(UPX_XTARGET)/release+test PHONY
# set new default
.DEFAULT_GOAL = build/xtarget/$(UPX_XTARGET)/release
.DEFAULT_GOAL := build/$(UPX_XTARGET)/release
endif
endif
@@ -236,12 +272,16 @@ endif
#***********************************************************************
# assemble cmake config flags; useful for CI jobs
#***********************************************************************
ifneq ($(origin UPX_CMAKE_CONFIG_FLAGS),command line) # needed to work around a GNU make bug
#
# info: by default CMake only honors the CC and CXX environment variables; make
# it easy to set other variables like CMAKE_AR or CMAKE_RANLIB
#***********************************************************************
ifneq ($(origin UPX_CMAKE_CONFIG_FLAGS),command line) # GNU make bug work-around
# GNU make bug, see https://savannah.gnu.org/bugs/index.php?64822
# and commit https://git.savannah.gnu.org/cgit/make.git/commit/?id=07187db947ba25e6c59b55f10660a04f8e9c5229
$(call check_undefined,__add_cmake_config)
__add_cmake_config = $(and $($1),-D$1="$($1)")
# pass common CMake settings from environment/make to cmake
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_VERBOSE_MAKEFILE)
@@ -264,6 +304,7 @@ build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_CXX_COMPILER_
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_CXX_COMPILER_RANLIB)
# pass common CMake cross compilation settings from environment/make to cmake
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_SYSTEM_NAME)
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_SYSTEM_PROCESSOR)
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,CMAKE_CROSSCOMPILING_EMULATOR)
# pass UPX config options from environment/make to cmake; see CMakeLists.txt
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_GITREV)
@@ -271,8 +312,14 @@ build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_WSTRICT)
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_WERROR)
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_DISABLE_SELF_PACK_TEST)
# pass UPX extra compile options from environment/make to cmake; see CMakeLists.txt
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_BZIP2)
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UCL)
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UPX)
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZLIB)
build/%: UPX_CMAKE_CONFIG_FLAGS += $(call __add_cmake_config,UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZSTD)
endif # bug work-around
endif # GNU make bug work-around
#***********************************************************************
# check git submodules
@@ -1,19 +0,0 @@
#! /usr/bin/env bash
## vim:set ts=4 sw=4 et:
set -e; set -o pipefail
argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
# create the image from Dockerfile
# using a rootless Podman container
# NOTE: this image is based on rebuild-stubs/upx-stubtools-20221212-v7,
# so you have to create that image first
# WARNING: we install many packages, so the resulting image needs A LOT of disk space!
image=upx-cross-compile-ubuntu2204-20230721-v3
[[ $1 == --print-image ]] && echo "$image" && exit 0
podman build -t "$image" -f "$argv0dir/Dockerfile" "$argv0dir"
podman image list "$image"
echo
podman image tree "$image"
@@ -1,40 +0,0 @@
#! /usr/bin/env bash
## vim:set ts=4 sw=4 et:
set -e; set -o pipefail
argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
# list all system packages that are installed in the image
# using a rootless Podman container
image="$("$argv0dir/10-create-image.sh" --print-image)"
podman image list "$image"
echo
podman image tree "$image"
echo 'Packages:'
flags=( --read-only --rm --pull=never )
flags+=( --cap-drop=all ) # drop all capabilities
flags+=( --network=none ) # no network needed
podman run "${flags[@]}" "$image" bash -c $'dpkg -l | sed \'s/ *$//\' | LC_ALL=C sort'
echo
echo 'Packages sorted by Installed-Size:'
podman run "${flags[@]}" "$image" bash -c $'awk \'
BEGIN {
arch = "UNKNOWN"; size = 0; package = "UNKNOWN";
}
{
if ($1 == "Architecture:") arch = $2;
if ($1 == "Installed-Size:") size = $2;
if ($1 == "Package:") package = $2;
if ($1 == "") {
printf("%9d %-40s %s\\n", size, package, arch);
count += 1; total += size;
arch = "UNKNOWN"; size = 0; package = "UNKNOWN";
}
}
END {
printf("%9d ===== TOTAL (%d packages)\\n", total, count);
}
\' /var/lib/dpkg/status | LC_ALL=C sort -rn'
@@ -1,60 +0,0 @@
#! /usr/bin/env bash
## vim:set ts=4 sw=4 et:
set -e; set -o pipefail
argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
# run an interactive shell in the image
# using a rootless Podman container
image="$("$argv0dir/10-create-image.sh" --print-image)"
flags=( --read-only --rm --pull=never )
flags+=( --cap-drop=all ) # drop all capabilities
flags+=( --network=none ) # no network needed
flags+=( -ti -e TERM="$TERM" ) # allocate an interactive pseudo-tty and pass $TERM
if [[ 1 == 1 ]]; then
# run as user upx 2000:2000
flags+=( --user 2000 )
# map container users 0..999 to subuid-users 1..1000, and map container user 2000 to current host user
flags+=( --uidmap=0:1:1000 --uidmap=2000:0:1 )
# map container groups 0..999 to subgid-groups 1..1000, and map container group 2000 to current host group
flags+=( --gidmap=0:1:1000 --gidmap=2000:0:1 )
# NOTE: we mount the upx top-level directory read-write under /home/upx/src/upx
# INFO: SELinux users *may* have to add ":z" to the volume mount flags; check the docs!
flags+=( -v "${argv0dir}/../../..:/home/upx/src/upx" )
flags+=( -w /home/upx/src/upx ) # set working directory
flags+=( --tmpfs /home/upx/.cache:rw,exec ) # mount a writeable tmpfs
flags+=( --tmpfs /home/upx/.local:rw,exec ) # mount a writeable tmpfs
else
# run as user root 0:0
# ONLY FOR DEBUGGING THE IMAGE
# map container user/group 0 to current host user/group
flags+=( --user 0 )
fi
if [[ $# == 0 ]]; then
podman run "${flags[@]}" "$image" bash -l
else
podman run "${flags[@]}" "$image" "$@"
fi
# now we can cross-compile UPX for Windows:
# cd /home/upx/src/upx
# rm -rf ./build/extra/cross-windows-mingw64/release
# make build/extra/cross-windows-mingw64/release
# and we can run the clang Static Analyzer (scan-build)
# cd /home/upx/src/upx
# rm -rf ./build/extra/scan-build/release
# make build/extra/scan-build/release
# and lots of other cross-compilers are installed; see "ls /usr/bin/*g++*"
# and finally see
# ./misc/podman/cross-compile-upx-ubuntu/build-all-inside-container.sh
# after running that script we can do cool things like:
# cd /home/upx/src/upx/build/cross-compile-upx-ubuntu2204/alpha-linux-gnu/debug
# qemu-alpha -L /usr/alpha-linux-gnu ./upx --version
# cd /home/upx/src/upx/build/cross-compile-upx-ubuntu2204/hppa-linux-gnu/debug
# qemu-hppa -L /usr/hppa-linux-gnu ./upx --version
# (similar for many other architectures/builds)
@@ -1,56 +0,0 @@
# NOTE: this image is based on rebuild-stubs/upx-stubtools-20221212-v7,
# so you have to create that image first
# WARNING: we install many packages, so the resulting image needs A LOT of disk space!
FROM localhost/upx-stubtools-20221212-v7
ENV UPX_CONTAINER_IMAGE_NAME=upx-cross-compile-ubuntu2204-20230721-v3
ARG DEBIAN_FRONTEND=noninteractive
USER root
# Ubuntu 22.04
RUN apt-get update && apt-get upgrade -y \
&& apt-get install -y \
# Linux glibc cross compilers
g++-aarch64-linux-gnu \
g++-alpha-linux-gnu \
g++-arm-linux-gnueabi \
g++-arm-linux-gnueabihf \
g++-hppa-linux-gnu \
g++-i686-linux-gnu \
g++-m68k-linux-gnu \
g++-mips-linux-gnu \
g++-mipsel-linux-gnu \
g++-mips64-linux-gnuabi64 \
g++-mips64el-linux-gnuabi64 \
g++-powerpc-linux-gnu \
g++-powerpc64-linux-gnu \
g++-powerpc64le-linux-gnu \
g++-riscv64-linux-gnu \
g++-s390x-linux-gnu \
g++-sh4-linux-gnu \
g++-sparc64-linux-gnu \
# Linux glibc cross compilers - ILP32 on 64-bit CPUs
g++-x86-64-linux-gnux32 \
# Windows cross compilers
g++-mingw-w64-i686 \
g++-mingw-w64-x86-64 \
# make sure that we use posix-threads (pthread/winpthreads) and NOT win32-threads
&& for f in i686-w64-mingw32-g++ i686-w64-mingw32-gcc x86_64-w64-mingw32-g++ x86_64-w64-mingw32-gcc; do update-alternatives --set $f /usr/bin/$f-posix; done \
&& true
RUN apt-get install -y \
# clang-14 and tools
clang-14 clang-format-14 clang-tidy-14 clang-tools-14 lldb-14 llvm-14 \
# QEMU and Wine
qemu-system qemu-user wine wine32:i386 wine64 \
# misc
gdb lsb-release valgrind \
&& true
RUN cd /usr/bin \
# create unversioned clang symlinks in /usr/local/bin
&& for f in clang*-14 llvm-*-14 scan-*-14; do ln -s -v ../../bin/$f /usr/local/bin/${f%-14}; done \
&& ln -s -v ../../bin/obj2yaml-14 /usr/local/bin/llvm-obj2yaml \
&& ln -s -v ../../bin/yaml2obj-14 /usr/local/bin/llvm-yaml2obj \
&& true
# switch back to default user upx:upx 2000:2000
USER upx
@@ -1,99 +0,0 @@
#! /usr/bin/env bash
## vim:set ts=4 sw=4 et:
set -e; set -o pipefail
argv0=$0; argv0abs="$(readlink -fn "$argv0")"; argv0dir="$(dirname "$argv0abs")"
# build UPX for 21 targets; must be run inside the container!
# using a rootless Podman container
# simple sanity check that we are indeed running inside the container
if [[ $UPX_CONTAINER_IMAGE_NAME != upx-cross-compile-* ]]; then
echo "$argv0: NOTE: please run this script *inside* the container"
exit 1
fi
# go to upx top-level directory
cd "$argv0dir/../../.." || exit 1
pwd
test -f doc/upx.pod || exit 1 # sanity check
test -f src/version.h || exit 1 # sanity check
function run_config_and_build {
# requires: AR CC CXX RANLIB
local toolchain=$1
local cmake_config_flags build_type bdir
# cmake flags
cmake_config_flags=
case $toolchain in
# these old architectures do not support sanitize
alpha-linux-gnu) cmake_config_flags=-DUPX_CONFIG_DISABLE_SANITIZE=ON ;;
hppa-linux-gnu) cmake_config_flags=-DUPX_CONFIG_DISABLE_SANITIZE=ON ;;
# avoid sanitize link errors with current MinGW-w64 versions; link libstdc++ statically
i686-w64-mingw32)
cmake_config_flags=-DUPX_CONFIG_DISABLE_SANITIZE=ON
CC="$CC -static"; CXX="$CXX -static" ;;
x86_64-w64-mingw32)
cmake_config_flags=-DUPX_CONFIG_DISABLE_SANITIZE=ON
CC="$CC -static"; CXX="$CXX -static" ;;
# avoid warnings about arm libstdc++ ABI change in gcc-7
arm-linux-*) CXX="$CXX -Wno-psabi" ;;
esac
if [[ 1 == 1 ]]; then
# prefer building with Ninja (ninja-build)
cmake_config_flags="$cmake_config_flags -G Ninja -DUPX_CONFIG_CMAKE_DISABLE_INSTALL=ON"
fi
# for all build types
for build_type in Debug Release; do
bdir="build/cross-compile-upx-ubuntu2204/$toolchain/${build_type,,}"
mkdir -p "$bdir"
# run_config
if [[ ! -f $bdir/CMakeCache.txt ]]; then
export CMAKE_REQUIRED_QUIET=OFF
cmake -S . -B "$bdir" -DCMAKE_BUILD_TYPE=$build_type -DCMAKE_AR="$AR" -DCMAKE_RANLIB="$RANLIB" $cmake_config_flags
fi
# run_build
cmake --build "$bdir" --config $build_type --parallel
done
}
# see Dockerfile for packages
for package in \
g++-aarch64-linux-gnu \
g++-alpha-linux-gnu \
g++-arm-linux-gnueabi \
g++-arm-linux-gnueabihf \
g++-hppa-linux-gnu \
g++-i686-linux-gnu \
g++-m68k-linux-gnu \
g++-mips-linux-gnu \
g++-mipsel-linux-gnu \
g++-mips64-linux-gnuabi64 \
g++-mips64el-linux-gnuabi64 \
g++-powerpc-linux-gnu \
g++-powerpc64-linux-gnu \
g++-powerpc64le-linux-gnu \
g++-riscv64-linux-gnu \
g++-s390x-linux-gnu \
g++-sh4-linux-gnu \
g++-sparc64-linux-gnu \
g++-x86-64-linux-gnux32 \
g++-mingw-w64-i686 \
g++-mingw-w64-x86-64
do
# setup toolchain and environment variables
toolchain=$package
toolchain=${toolchain/-x86-64/-x86_64}
toolchain=${toolchain/g++-/}
case $toolchain in
mingw-w64-i686) toolchain=i686-w64-mingw32 ;;
mingw-w64-x86_64) toolchain=x86_64-w64-mingw32 ;;
esac
echo "========== $toolchain"
export AR=/usr/bin/${toolchain}-ar
export CC=/usr/bin/${toolchain}-gcc
export CXX=/usr/bin/${toolchain}-g++
export RANLIB=/usr/bin/${toolchain}-ranlib
ls -l "$AR" "$CC" "$CXX" "$RANLIB"
run_config_and_build $toolchain
unset AR CC CXX RANLIB
done
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -18,7 +18,7 @@ RUN dpkg --add-architecture i386 \
mksh moreutils ninja-build p7zip parallel patch patchelf patchutils pax-utils paxctl \
python3 python3-pyasn1 python3-pycryptodome python3-zstd \
re2c ripgrep rsync screen universal-ctags unzip vim yash zip zlib1g-dev zsh zstd \
# extra packages for compiling with "gcc -m32" and and "gcc -mx32":
# extra packages for compiling with "gcc -m32" and "gcc -mx32":
g++-multilib gcc-multilib \
&& true
@@ -45,7 +45,7 @@ RUN cd /root \
# install official UPX release binaries into /usr/local/bin; not required but convenient for testing
RUN cd /root \
&& wget -q https://github.com/upx/upx/releases/download/v3.91/upx-3.91-amd64_linux.tar.bz2 \
&& xzlist="3.92 3.93 3.94 3.95 3.96 4.0.0 4.0.1 4.0.2 4.1.0 4.2.0 4.2.1" \
&& xzlist="3.92 3.93 3.94 3.95 3.96 4.0.0 4.0.1 4.0.2 4.1.0 4.2.0 4.2.1 4.2.2" \
&& for v in $xzlist; do wget -q https://github.com/upx/upx/releases/download/v${v}/upx-${v}-amd64_linux.tar.xz; done \
&& for f in ./upx-*.tar.*; do tar -xoaf $f; done \
&& for v in 3.91 $xzlist; do d=upx-${v}-amd64_linux; ./$d/upx -qq -d $d/upx -o /usr/local/bin/upx-${v}; done \
+59 -59
View File
@@ -5,14 +5,14 @@ ii 7zip 21.07+dfsg-4 amd64
ii adduser 3.118ubuntu5 all add and remove users and groups
ii apt 2.4.11 amd64 commandline package manager
ii aria2 1.36.0-1 amd64 High speed download utility
ii base-files 12ubuntu4.4 amd64 Debian base system miscellaneous files
ii base-files 12ubuntu4.6 amd64 Debian base system miscellaneous files
ii base-passwd 3.5.52build1 amd64 Debian base system master password and group files
ii bash 5.1-6ubuntu1 amd64 GNU Bourne Again SHell
ii bash-completion 1:2.11-5ubuntu1 all programmable completion for the bash shell
ii bfs 2.3.1-1 amd64 Breadth-first version of find(1)
ii binutils 2.38-4ubuntu2.4 amd64 GNU assembler, linker and binary utilities
ii binutils-common:amd64 2.38-4ubuntu2.4 amd64 Common files for the GNU assembler, linker and binary utilities
ii binutils-x86-64-linux-gnu 2.38-4ubuntu2.4 amd64 GNU binary utilities, for x86-64-linux-gnu target
ii binutils 2.38-4ubuntu2.6 amd64 GNU assembler, linker and binary utilities
ii binutils-common:amd64 2.38-4ubuntu2.6 amd64 Common files for the GNU assembler, linker and binary utilities
ii binutils-x86-64-linux-gnu 2.38-4ubuntu2.6 amd64 GNU binary utilities, for x86-64-linux-gnu target
ii bsdutils 1:2.37.2-4ubuntu3 amd64 basic utilities from 4.4BSD-Lite
ii busybox 1:1.30.1-7ubuntu3 amd64 Tiny utilities for small and embedded systems
ii bzip2 1.0.8-5build1 amd64 high-quality block-sorting file compressor - utilities
@@ -20,9 +20,9 @@ ii ca-certificates 20230311ubuntu0.22.04.1 all
ii cabextract 1.9-3 amd64 Microsoft Cabinet file unpacker
ii ccache 4.5.1-1 amd64 Compiler cache for fast recompilation of C/C++ code
ii chrpath 0.16-2 amd64 Tool to edit the rpath in ELF binaries
ii cmake 3.22.1-1ubuntu1.22.04.1 amd64 cross-platform, open-source make system
ii cmake-data 3.22.1-1ubuntu1.22.04.1 all CMake data files (modules, templates and documentation)
ii coreutils 8.32-4.1ubuntu1 amd64 GNU core utilities
ii cmake 3.22.1-1ubuntu1.22.04.2 amd64 cross-platform, open-source make system
ii cmake-data 3.22.1-1ubuntu1.22.04.2 all CMake data files (modules, templates and documentation)
ii coreutils 8.32-4.1ubuntu1.1 amd64 GNU core utilities
ii cpio 2.13+dfsg-7 amd64 GNU cpio -- a program to manage archives of files
ii cpp 4:11.2.0-1ubuntu1 amd64 GNU C preprocessor (cpp)
ii cpp-11 11.4.0-1ubuntu1~22.04 amd64 GNU C preprocessor
@@ -33,7 +33,7 @@ ii debianutils 5.5-1ubuntu2 amd64
ii dh-elpa-helper 2.0.9ubuntu1 all helper package for emacs lisp extensions
ii diffutils 1:3.8-0ubuntu2 amd64 File comparison utilities
ii distro-info-data 0.52ubuntu0.6 all information about the distributions' releases (data files)
ii dpkg 1.21.1ubuntu2.2 amd64 Debian package management system
ii dpkg 1.21.1ubuntu2.3 amd64 Debian package management system
ii e2fsprogs 1.46.5-2ubuntu1.1 amd64 ext2/ext3/ext4 file system utilities
ii elfutils 0.186-1build1 amd64 collection of utilities to handle ELF objects
ii emacsen-common 3.0.4 all Common facilities for all emacsen
@@ -66,7 +66,7 @@ ii htop 3.0.5-7build2 amd64
ii hyperfine 1.12.0-3ubuntu0.1 amd64 Command-line benchmarking tool
ii init-system-helpers 1.62 all helper tools for all init systems
ii jq 1.6-2.1ubuntu3 amd64 lightweight and flexible command-line JSON processor
ii less 590-1ubuntu0.22.04.1 amd64 pager program similar to more
ii less 590-1ubuntu0.22.04.2 amd64 pager program similar to more
ii lib32asan6 11.4.0-1ubuntu1~22.04 amd64 AddressSanitizer -- a fast memory error detector (32bit)
ii lib32atomic1 12.3.0-1ubuntu1~22.04 amd64 support library providing __atomic built-in functions (32bit)
ii lib32gcc-11-dev 11.4.0-1ubuntu1~22.04 amd64 GCC support library (32 bit development files)
@@ -88,22 +88,22 @@ ii libattr1:amd64 1:2.5.1-1build1 amd64
ii libaudit-common 1:3.0.7-1build1 all Dynamic library for security auditing - common files
ii libaudit1:amd64 1:3.0.7-1build1 amd64 Dynamic library for security auditing
ii libbabeltrace1:amd64 1.5.8-2build1 amd64 Babeltrace conversion libraries
ii libbinutils:amd64 2.38-4ubuntu2.4 amd64 GNU binary utilities (private shared library)
ii libbinutils:amd64 2.38-4ubuntu2.6 amd64 GNU binary utilities (private shared library)
ii libblkid1:amd64 2.37.2-4ubuntu3 amd64 block device ID library
ii libboost-regex1.74.0:amd64 1.74.0-14ubuntu3 amd64 regular expression library for C++
ii libbrotli1:amd64 1.0.9-2build6 amd64 library implementing brotli encoder and decoder (shared libraries)
ii libbsd0:amd64 0.11.5-1 amd64 utility functions from BSD systems - shared library
ii libbz2-1.0:amd64 1.0.8-5build1 amd64 high-quality block-sorting file compressor library - runtime
ii libc-ares2:amd64 1.18.1-1ubuntu0.22.04.2 amd64 asynchronous name resolver
ii libc-bin 2.35-0ubuntu3.5 amd64 GNU C Library: Binaries
ii libc-dev-bin 2.35-0ubuntu3.5 amd64 GNU C Library: Development binaries
ii libc6-dev-i386 2.35-0ubuntu3.5 amd64 GNU C Library: 32-bit development libraries for AMD64
ii libc6-dev-x32 2.35-0ubuntu3.5 amd64 GNU C Library: X32 ABI Development Libraries for AMD64
ii libc6-dev:amd64 2.35-0ubuntu3.5 amd64 GNU C Library: Development Libraries and Header Files
ii libc6-i386 2.35-0ubuntu3.5 amd64 GNU C Library: 32-bit shared libraries for AMD64
ii libc6-x32 2.35-0ubuntu3.5 amd64 GNU C Library: X32 ABI Shared libraries for AMD64
ii libc6:amd64 2.35-0ubuntu3.5 amd64 GNU C Library: Shared libraries
ii libc6:i386 2.35-0ubuntu3.5 i386 GNU C Library: Shared libraries
ii libc-ares2:amd64 1.18.1-1ubuntu0.22.04.3 amd64 asynchronous name resolver
ii libc-bin 2.35-0ubuntu3.6 amd64 GNU C Library: Binaries
ii libc-dev-bin 2.35-0ubuntu3.6 amd64 GNU C Library: Development binaries
ii libc6-dev-i386 2.35-0ubuntu3.6 amd64 GNU C Library: 32-bit development libraries for AMD64
ii libc6-dev-x32 2.35-0ubuntu3.6 amd64 GNU C Library: X32 ABI Development Libraries for AMD64
ii libc6-dev:amd64 2.35-0ubuntu3.6 amd64 GNU C Library: Development Libraries and Header Files
ii libc6-i386 2.35-0ubuntu3.6 amd64 GNU C Library: 32-bit shared libraries for AMD64
ii libc6-x32 2.35-0ubuntu3.6 amd64 GNU C Library: X32 ABI Shared libraries for AMD64
ii libc6:amd64 2.35-0ubuntu3.6 amd64 GNU C Library: Shared libraries
ii libc6:i386 2.35-0ubuntu3.6 i386 GNU C Library: Shared libraries
ii libcap-ng0:amd64 0.7.9-2.2build3 amd64 An alternate POSIX capabilities library
ii libcap2:amd64 1:2.44-1ubuntu0.22.04.1 amd64 POSIX 1003.1e capabilities (library)
ii libcc1-0:amd64 12.3.0-1ubuntu1~22.04 amd64 GCC cc1 plugin for GDB
@@ -111,8 +111,8 @@ ii libcom-err2:amd64 1.46.5-2ubuntu1.1 amd64
ii libcrypt-dev:amd64 1:4.4.27-1 amd64 libcrypt development files
ii libcrypt1:amd64 1:4.4.27-1 amd64 libcrypt shared library
ii libcrypt1:i386 1:4.4.27-1 i386 libcrypt shared library
ii libctf-nobfd0:amd64 2.38-4ubuntu2.4 amd64 Compact C Type Format library (runtime, no BFD dependency)
ii libctf0:amd64 2.38-4ubuntu2.4 amd64 Compact C Type Format library (runtime, BFD dependency)
ii libctf-nobfd0:amd64 2.38-4ubuntu2.6 amd64 Compact C Type Format library (runtime, no BFD dependency)
ii libctf0:amd64 2.38-4ubuntu2.6 amd64 Compact C Type Format library (runtime, BFD dependency)
ii libcurl3-gnutls:amd64 7.81.0-1ubuntu1.15 amd64 easy-to-use client-side URL transfer library (GnuTLS flavour)
ii libcurl4:amd64 7.81.0-1ubuntu1.15 amd64 easy-to-use client-side URL transfer library (OpenSSL flavour)
ii libdb5.3:amd64 5.3.28+dfsg1-0.8ubuntu3 amd64 Berkeley v5.3 Database Libraries [runtime]
@@ -122,7 +122,7 @@ ii libdebuginfod1:amd64 0.186-1build1 amd64
ii libdw1:amd64 0.186-1build1 amd64 library that provides access to the DWARF debug information
ii libelf1:amd64 0.186-1build1 amd64 library to read and write ELF files
ii liberror-perl 0.17029-1 all Perl module for error/exception handling in an OO-ish way
ii libexpat1:amd64 2.4.7-1ubuntu0.2 amd64 XML parsing C library - runtime library
ii libexpat1:amd64 2.4.7-1ubuntu0.3 amd64 XML parsing C library - runtime library
ii libext2fs2:amd64 1.46.5-2ubuntu1.1 amd64 ext2/ext3/ext4 file system libraries
ii libffi8:amd64 3.4.2-4 amd64 Foreign Function Interface library runtime
ii libgcc-11-dev:amd64 11.4.0-1ubuntu1~22.04 amd64 GCC support library (development files)
@@ -133,7 +133,7 @@ ii libgdbm-compat4:amd64 1.23-1 amd64
ii libgdbm6:amd64 1.23-1 amd64 GNU dbm database routines (runtime version)
ii libglib2.0-0:amd64 2.72.4-0ubuntu2.2 amd64 GLib library of C routines
ii libgmp10:amd64 2:6.2.1+dfsg-3ubuntu1 amd64 Multiprecision arithmetic library
ii libgnutls30:amd64 3.7.3-4ubuntu1.3 amd64 GNU TLS library - main runtime library
ii libgnutls30:amd64 3.7.3-4ubuntu1.4 amd64 GNU TLS library - main runtime library
ii libgomp1:amd64 12.3.0-1ubuntu1~22.04 amd64 GCC OpenMP (GOMP) support library
ii libgpg-error0:amd64 1.43-3 amd64 GnuPG development runtime library
ii libgpm2:amd64 1.20.7-10build1 amd64 General Purpose Mouse - shared library
@@ -154,7 +154,7 @@ ii libk5crypto3:amd64 1.19.2-2ubuntu0.3 amd64
ii libkeyutils1:amd64 1.6.1-2ubuntu3 amd64 Linux Key Management Utilities (library)
ii libkrb5-3:amd64 1.19.2-2ubuntu0.3 amd64 MIT Kerberos runtime libraries
ii libkrb5support0:amd64 1.19.2-2ubuntu0.3 amd64 MIT Kerberos runtime libraries - Support library
ii libldap-2.5-0:amd64 2.5.16+dfsg-0ubuntu0.22.04.1 amd64 OpenLDAP libraries
ii libldap-2.5-0:amd64 2.5.17+dfsg-0ubuntu0.22.04.1 amd64 OpenLDAP libraries
ii liblsan0:amd64 12.3.0-1ubuntu1~22.04 amd64 LeakSanitizer -- a memory leak detector (runtime)
ii liblz4-1:amd64 1.9.3-2build2 amd64 Fast LZ compression algorithm library - runtime
ii liblzma5:amd64 5.2.5-2ubuntu1 amd64 XZ-format compression library
@@ -178,17 +178,17 @@ ii libnsl-dev:amd64 1.3.0-2build2 amd64
ii libnsl2:amd64 1.3.0-2build2 amd64 Public client interface for NIS(YP) and NIS+
ii libonig5:amd64 6.9.7.1-2build1 amd64 regular expressions library
ii libp11-kit0:amd64 0.24.0-6build1 amd64 library for loading and coordinating access to PKCS#11 modules - runtime
ii libpam-modules-bin 1.4.0-11ubuntu2.3 amd64 Pluggable Authentication Modules for PAM - helper binaries
ii libpam-modules:amd64 1.4.0-11ubuntu2.3 amd64 Pluggable Authentication Modules for PAM
ii libpam-runtime 1.4.0-11ubuntu2.3 all Runtime support for the PAM library
ii libpam0g:amd64 1.4.0-11ubuntu2.3 amd64 Pluggable Authentication Modules library
ii libpam-modules-bin 1.4.0-11ubuntu2.4 amd64 Pluggable Authentication Modules for PAM - helper binaries
ii libpam-modules:amd64 1.4.0-11ubuntu2.4 amd64 Pluggable Authentication Modules for PAM
ii libpam-runtime 1.4.0-11ubuntu2.4 all Runtime support for the PAM library
ii libpam0g:amd64 1.4.0-11ubuntu2.4 amd64 Pluggable Authentication Modules library
ii libpcre2-8-0:amd64 10.39-3ubuntu0.1 amd64 New Perl Compatible Regular Expression Library- 8 bit runtime files
ii libpcre3:amd64 2:8.39-13ubuntu0.22.04.1 amd64 Old Perl 5 Compatible Regular Expression Library - runtime files
ii libperl5.34:amd64 5.34.0-3ubuntu1.3 amd64 shared Perl library
ii libpopt0:amd64 1.18-3build1 amd64 lib for parsing cmdline parameters
ii libprocps8:amd64 2:3.3.17-6ubuntu2.1 amd64 library for accessing process information from /proc
ii libpsl5:amd64 0.21.0-1.2build2 amd64 Library for Public Suffix List (shared libraries)
ii libpython2.7-minimal:amd64 2.7.18-13ubuntu1.1 amd64 Minimal subset of the Python language (version 2.7)
ii libpython2.7-minimal:amd64 2.7.18-13ubuntu1.2 amd64 Minimal subset of the Python language (version 2.7)
ii libpython3-stdlib:amd64 3.10.6-1~22.04 amd64 interactive high-level object-oriented language (default python3 version)
ii libpython3.10-minimal:amd64 3.10.12-1~22.04.3 amd64 Minimal subset of the Python language (version 3.10)
ii libpython3.10-stdlib:amd64 3.10.12-1~22.04.3 amd64 Interactive high-level object-oriented language (standard library, version 3.10)
@@ -211,14 +211,14 @@ ii libsmartcols1:amd64 2.37.2-4ubuntu3 amd64
ii libsodium23:amd64 1.0.18-1build2 amd64 Network communication, cryptography and signaturing library
ii libsource-highlight-common 3.1.9-4.1build2 all architecture-independent files for source highlighting library
ii libsource-highlight4v5 3.1.9-4.1build2 amd64 source highlighting library
ii libsqlite3-0:amd64 3.37.2-2ubuntu0.1 amd64 SQLite 3 shared library
ii libsqlite3-0:amd64 3.37.2-2ubuntu0.3 amd64 SQLite 3 shared library
ii libss2:amd64 1.46.5-2ubuntu1.1 amd64 command-line interface parsing library
ii libssh-4:amd64 0.9.6-2ubuntu0.22.04.2 amd64 tiny C SSH library (OpenSSL flavor)
ii libssh-4:amd64 0.9.6-2ubuntu0.22.04.3 amd64 tiny C SSH library (OpenSSL flavor)
ii libssh2-1:amd64 1.10.0-3 amd64 SSH2 client-side library
ii libssl3:amd64 3.0.2-0ubuntu1.12 amd64 Secure Sockets Layer toolkit - shared libraries
ii libssl3:amd64 3.0.2-0ubuntu1.15 amd64 Secure Sockets Layer toolkit - shared libraries
ii libstdc++-11-dev:amd64 11.4.0-1ubuntu1~22.04 amd64 GNU Standard C++ Library v3 (development files)
ii libstdc++6:amd64 12.3.0-1ubuntu1~22.04 amd64 GNU Standard C++ Library v3
ii libsystemd0:amd64 249.11-0ubuntu3.11 amd64 systemd utility library
ii libsystemd0:amd64 249.11-0ubuntu3.12 amd64 systemd utility library
ii libtasn1-6:amd64 4.18.0-4build1 amd64 Manage ASN.1 structures (runtime)
ii libtime-duration-perl 1.21-1 all module for rounded or exact English expression of durations
ii libtimedate-perl 2.3300-2 all collection of modules to manipulate date/time information
@@ -229,11 +229,11 @@ ii libtirpc-dev:amd64 1.3.2-2ubuntu0.1 amd64
ii libtirpc3:amd64 1.3.2-2ubuntu0.1 amd64 transport-independent RPC library
ii libtsan0:amd64 11.4.0-1ubuntu1~22.04 amd64 ThreadSanitizer -- a Valgrind-based detector of data races (runtime)
ii libubsan1:amd64 12.3.0-1ubuntu1~22.04 amd64 UBSan -- undefined behaviour sanitizer (runtime)
ii libudev1:amd64 249.11-0ubuntu3.11 amd64 libudev shared library
ii libudev1:amd64 249.11-0ubuntu3.12 amd64 libudev shared library
ii libunistring2:amd64 1.0-1 amd64 Unicode string library for C
ii libutempter0:amd64 1.2.1-2build2 amd64 privileged helper for utmp/wtmp updates (runtime)
ii libuuid1:amd64 2.37.2-4ubuntu3 amd64 Universally Unique ID library
ii libuv1:amd64 1.43.0-1 amd64 asynchronous event notification library - runtime library
ii libuv1:amd64 1.43.0-1ubuntu0.1 amd64 asynchronous event notification library - runtime library
ii libx11-6:amd64 2:1.7.5-1ubuntu0.3 amd64 X11 client-side library
ii libx11-data 2:1.7.5-1ubuntu0.3 all X11 client-side library
ii libx32asan6 11.4.0-1ubuntu1~22.04 amd64 AddressSanitizer -- a fast memory error detector (x32)
@@ -249,13 +249,13 @@ ii libx32ubsan1 12.3.0-1ubuntu1~22.04 amd64
ii libxau6:amd64 1:1.0.9-1build5 amd64 X11 authorisation library
ii libxcb1:amd64 1.14-3ubuntu3 amd64 X C Binding
ii libxdmcp6:amd64 1:1.1.3-0ubuntu5 amd64 X11 Display Manager Control Protocol library
ii libxml2:amd64 2.9.13+dfsg-1ubuntu0.3 amd64 GNOME XML library
ii libxml2:amd64 2.9.13+dfsg-1ubuntu0.4 amd64 GNOME XML library
ii libxxhash0:amd64 0.8.1-1 amd64 shared library for xxhash
ii libyaml-0-2:amd64 0.2.2-1build2 amd64 Fast YAML 1.1 parser and emitter library
ii libzstd-dev:amd64 1.4.8+dfsg-3build1 amd64 fast lossless compression algorithm -- development files
ii libzstd1:amd64 1.4.8+dfsg-3build1 amd64 fast lossless compression algorithm
ii linux-libc-dev:amd64 5.15.0-91.101 amd64 Linux Kernel Headers for development
ii login 1:4.8.1-2ubuntu2.1 amd64 system login tools
ii linux-libc-dev:amd64 5.15.0-100.110 amd64 Linux Kernel Headers for development
ii login 1:4.8.1-2ubuntu2.2 amd64 system login tools
ii logsave 1.46.5-2ubuntu1.1 amd64 save the output of a command in a log file
ii lsb-base 11.1.0ubuntu4 all Linux Standard Base init script functionality
ii lsb-release 11.1.0ubuntu4 all Linux Standard Base version reporting utility
@@ -272,10 +272,10 @@ ii ncurses-base 6.3-2ubuntu0.1 all
ii ncurses-bin 6.3-2ubuntu0.1 amd64 terminal-related programs and man pages
ii ncurses-term 6.3-2ubuntu0.1 all additional terminal type definitions
ii ninja-build 1.10.1-1 amd64 small build system closest in spirit to Make
ii openssl 3.0.2-0ubuntu1.12 amd64 Secure Sockets Layer toolkit - cryptographic utility
ii openssl 3.0.2-0ubuntu1.15 amd64 Secure Sockets Layer toolkit - cryptographic utility
ii p7zip 16.02+dfsg-8 amd64 7zr file archiver with high compression ratio
ii parallel 20210822+ds-2 all build and execute command lines from standard input in parallel
ii passwd 1:4.8.1-2ubuntu2.1 amd64 change and administer password and group data
ii passwd 1:4.8.1-2ubuntu2.2 amd64 change and administer password and group data
ii patch 2.7.6-7build2 amd64 Apply a diff file to an original
ii patchelf 0.14.3-1 amd64 modify properties of ELF executables
ii patchutils 0.4.2-1build2 amd64 Utilities to work with patches
@@ -286,11 +286,11 @@ ii perl-base 5.34.0-3ubuntu1.3 amd64
ii perl-modules-5.34 5.34.0-3ubuntu1.3 all Core Perl modules
ii procps 2:3.3.17-6ubuntu2.1 amd64 /proc file system utilities
ii python2-minimal 2.7.18-3 amd64 minimal subset of the Python2 language
ii python2.7-minimal 2.7.18-13ubuntu1.1 amd64 Minimal subset of the Python language (version 2.7)
ii python2.7-minimal 2.7.18-13ubuntu1.2 amd64 Minimal subset of the Python language (version 2.7)
ii python3 3.10.6-1~22.04 amd64 interactive high-level object-oriented language (default python3 version)
ii python3-minimal 3.10.6-1~22.04 amd64 minimal subset of the Python language (default python3 version)
ii python3-pyasn1 0.4.8-1 all ASN.1 library for Python (Python 3 module)
ii python3-pycryptodome 3.11.0+dfsg1-3build1 amd64 cryptographic Python library (Python 3)
ii python3-pycryptodome 3.11.0+dfsg1-3ubuntu0.1 amd64 cryptographic Python library (Python 3)
ii python3-zstd 1.5.0.2-1build1 amd64 python bindings to Yann Collet ZSTD compression library
ii python3.10 3.10.12-1~22.04.3 amd64 Interactive high-level object-oriented language (version 3.10)
ii python3.10-minimal 3.10.12-1~22.04.3 amd64 Minimal subset of the Python language (version 3.10)
@@ -309,7 +309,7 @@ ii time 1.9-0.1build2 amd64
ii ubuntu-keyring 2021.03.26 all GnuPG keys of the Ubuntu archive
ii ucf 3.0043 all Update Configuration File(s): preserve user changes to config files
ii universal-ctags 5.9.20210829.0-1 amd64 build tag file indexes of source code definitions
ii unzip 6.0-26ubuntu3.1 amd64 De-archiver for .zip files
ii unzip 6.0-26ubuntu3.2 amd64 De-archiver for .zip files
ii usrmerge 25ubuntu2 all Convert the system to the merged /usr directories scheme
ii util-linux 2.37.2-4ubuntu3 amd64 miscellaneous system utilities
ii vim 2:8.2.3995-1ubuntu2.15 amd64 Vi IMproved - enhanced vi editor
@@ -331,7 +331,7 @@ ii zstd 1.4.8+dfsg-3build1 amd64
||/ Name Version Architecture Description
Packages sorted by Installed-Size:
754338 ===== TOTAL (325 packages)
754392 ===== TOTAL (325 packages)
52747 gcc-11 amd64
34444 libicu70 amd64
32783 vim-runtime all
@@ -344,32 +344,32 @@ Packages sorted by Installed-Size:
17671 perl-modules-5.34 all
15293 zsh-common all
13895 libgcc-11-dev amd64
13593 libc6 amd64
13037 libc6-dev amd64
13597 libc6 amd64
13038 libc6-dev amd64
12562 libc6-x32 amd64
12480 libc6 i386
12201 libc6-i386 amd64
11311 gdb amd64
10877 lib32stdc++-11-dev amd64
10439 binutils-x86-64-linux-gnu amd64
10431 binutils-x86-64-linux-gnu amd64
10390 libx32stdc++-11-dev amd64
9866 cmake-data all
8249 libc6-dev-x32 amd64
8250 libc6-dev-x32 amd64
8119 libpython3.10-stdlib amd64
7948 lib32gcc-11-dev amd64
7734 perl-base amd64
7518 libasan6 amd64
7262 libc6-dev-i386 amd64
7263 libc6-dev-i386 amd64
7255 libtsan0 amd64
7128 libmagic-mgc amd64
7112 coreutils amd64
7104 coreutils amd64
6988 libx32gcc-11-dev amd64
6810 linux-libc-dev amd64
6858 linux-libc-dev amd64
6733 dpkg amd64
6667 lib32asan6 amd64
6570 libx32asan6 amd64
5898 python3.10-minimal amd64
5828 libssl3 amd64
5833 libssl3 amd64
5768 libpython3.10 amd64
5106 libpython3.10-minimal amd64
4249 ncurses-term all
@@ -377,8 +377,8 @@ Packages sorted by Installed-Size:
4141 apt amd64
4082 libglib2.0-0 amd64
3931 vim amd64
3643 python2.7-minimal amd64
3542 python3-pycryptodome amd64
3639 python2.7-minimal amd64
3552 python3-pycryptodome amd64
3506 re2c amd64
3487 gojq amd64
3405 libmpfr6 amd64
@@ -433,7 +433,7 @@ Packages sorted by Installed-Size:
1138 libpam-modules amd64
1052 libkrb5-3 amd64
1005 screen amd64
995 libsystemd0 amd64
996 libsystemd0 amd64
990 p7zip amd64
984 wget amd64
960 tar amd64
@@ -486,12 +486,12 @@ Packages sorted by Installed-Size:
389 mount amd64
382 vim-common all
382 libmount1 amd64
376 unzip amd64
377 unzip amd64
372 xz-utils amd64
368 libssh2-1 amd64
356 libnettle8 amd64
350 ninja-build amd64
347 libudev1 amd64
348 libudev1 amd64
347 libnsl-dev amd64
347 libjq1 amd64
336 libhogweed6 amd64
@@ -522,7 +522,7 @@ Packages sorted by Installed-Size:
273 gcc-11-base amd64
272 gcc-12-base i386
272 gcc-12-base amd64
252 libuv1 amd64
253 libuv1 amd64
252 libipc-run-perl all
252 libcrypt1 i386
250 libmpdec3 amd64
-149
View File
@@ -1,149 +0,0 @@
#! /bin/sh
## vim:set ts=4 sw=4 et:
set -e
#
# build UPX "by hand", using a POSIX-compliant shell and
# a minimal number of compilation flags
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
#
# uses optional environment variables: AR, CC, CXX, OPTIMIZE, VERBOSE
# and optional settings for top_srcdir, obj_suffix and XXX_extra_flags
# shell init
### set -x # enable logging
DUALCASE=1; export DUALCASE # for MKS sh
test -n "${ZSH_VERSION+set}" && emulate sh # for zsh
my_argv0="$0"
# toolchain settings and compilation flags
AR="${AR:-ar}"
CC="${CC:-cc}"
CXX="${CXX:-c++ -std=gnu++17}"
# HINT: use "export AR=false" if "$AR rcs" does not work on your system; see below
if test "x$AR" = "x0" || test "x$AR" = "xfalse" || test "x$AR" = "x/bin/false"; then
AR="" # do not use $AR
fi
if test -z "${mandatory_flags+set}"; then
# protect against security threats caused by misguided compiler "optimizations"
mandatory_flags="-fno-strict-aliasing -fno-strict-overflow -funsigned-char"
fi
if test -z "${sensible_flags+set}"; then
# not mandatory but good practice when using <windows.h>:
sensible_flags="-DWIN32_LEAN_AND_MEAN"
if test "x$OPTIMIZE" != "x" && test "x$OPTIMIZE" != "x0"; then
# not mandatory and not minimal, but usually a good idea:
sensible_flags="-Wall -O2 $sensible_flags"
fi
fi
CC="$CC $sensible_flags $mandatory_flags"
CXX="$CXX $sensible_flags $mandatory_flags"
# go to upx top-level directory
# HINT: set "top_srcdir" manually if your system does not have "readlink -f"
if test "x$top_srcdir" = "x"; then
my_argv0abs="$(readlink -fn "$my_argv0")"
test "x$my_argv0abs" = "x" && exit 1
my_argv0dir="$(dirname "$my_argv0abs")"
test "x$my_argv0dir" = "x" && exit 1
cd "$my_argv0dir/../.." || exit 1
else
cd "$top_srcdir" || exit 1
fi
top_srcdir="$(pwd)" # absolute
rel_top_srcdir=. # relative top_srcdir
echo "# current directory: '$(pwd)'"
test -f doc/upx.pod || exit 1 # sanity check
test -f src/version.h || exit 1 # sanity check
rm -rf ./build/by-hand # WARNING: existing build-directory gets deleted!
# helper function
run() {
if test 0 = 1; then
# DEBUG dry-run: print command, but don't actually run unless $1 is "+"
if test "x$1" = "x+"; then
shift; echo "$@"; "$@"; return
fi
shift; echo "$@"; return
fi
# print short info and run command
test "x$1" != "x" && test "x$1" != "x+" && echo "$1"
shift
if test "x$VERBOSE" != "x" && test "x$VERBOSE" != "x0"; then
# print full command
echo " $@"
fi
"$@"
}
# helper function
check_submodule() {
#local ff # "local" seems unsupported by some versions of ksh
for ff in COPYING LICENSE LICENSE.txt; do
if test -f "$rel_top_srcdir/vendor/$1/$ff"; then
# create and enter build directory; updates global $rel_top_srcdir
run "+" cd "$rel_top_srcdir" || exit 1
rel_top_srcdir=.
echo "#===== build $1 ====="
run "+" mkdir "build/by-hand/$1"
run "+" cd "build/by-hand/$1" || exit 1
rel_top_srcdir=../../..
return 0
fi
done
return 1
}
# build
upx_submodule_defs=
run "+" mkdir -p "build/by-hand"
if check_submodule bzip2; then
upx_submodule_defs="$upx_submodule_defs -DWITH_BZIP2"
test -z "${bzip2_extra_flags+set}" && bzip2_extra_flags="-DBZ_NO_STDIO"
for f in "$rel_top_srcdir"/vendor/bzip2/*.c; do
run "CC $f" $CC $bzip2_extra_flags -c "$f"
done
fi
if check_submodule ucl; then
#upx_submodule_defs="$upx_submodule_defs -DWITH_UCL"
test -z "${ucl_extra_flags+set}" && ucl_extra_flags=
for f in "$rel_top_srcdir"/vendor/ucl/src/*.c; do
run "CC $f" $CC -I"$rel_top_srcdir"/vendor/ucl/include -I"$rel_top_srcdir"/vendor/ucl $ucl_extra_flags -c "$f"
done
fi
if check_submodule zlib; then
#upx_submodule_defs="$upx_submodule_defs -DWITH_ZLIB"
test -z "${zlib_extra_flags+set}" && zlib_extra_flags="-DHAVE_UNISTD_H -DHAVE_VSNPRINTF"
for f in "$rel_top_srcdir"/vendor/zlib/*.c; do
run "CC $f" $CC $zlib_extra_flags -c "$f"
done
fi
if check_submodule zstd; then
upx_submodule_defs="$upx_submodule_defs -DWITH_ZSTD"
test -z "${zstd_extra_flags+set}" && zstd_extra_flags="-DDYNAMIC_BMI2=0 -DZSTD_DISABLE_ASM"
for f in "$rel_top_srcdir"/vendor/zstd/lib/*/*.c; do
run "CC $f" $CC $zstd_extra_flags -c "$f"
done
fi
run "+" cd "$rel_top_srcdir" || exit 1
rel_top_srcdir=.
echo "#===== build UPX ====="
run "+" cd "build/by-hand" || exit 1
rel_top_srcdir=../..
for f in "$rel_top_srcdir"/src/*.cpp "$rel_top_srcdir"/src/*/*.cpp; do
run "CXX $f" $CXX -I"$rel_top_srcdir"/vendor $upx_submodule_defs -c "$f"
done
# echo "#===== link UPX ====="
test "x$obj_suffix" = "x" && obj_suffix=.o
if test "x$AR" = "x"; then
# link without using $AR
run "CXX upx" $CXX -o upx *${obj_suffix} */*${obj_suffix}
else
run "AR libupx" $AR rcs ${AR_LIBFILE:-libupx_submodules.a} */*${obj_suffix}
run "CXX upx" $CXX -o upx *${obj_suffix} -L. -lupx_submodules
fi
echo "# current directory: '$(pwd)'"
ls -l upx*
echo "# All done."
+41
View File
@@ -0,0 +1,41 @@
#! /usr/bin/env bash
## vim:set ts=4 sw=4 et:
set -e; set -o pipefail
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
# assemble cmake config flags; useful for CI jobs
# also see misc/make/Makefile-extra.mk
cmake_config_flags=()
__add_cmake_config() {
[[ -z "${!1}" ]] || cmake_config_flags+=( -D$1="${!1}" )
}
# pass common CMake settings from environment to cmake
for v in CMAKE_VERBOSE_MAKEFILE; do
__add_cmake_config $v
done
# pass common CMake toolchain settings from environment to cmake
for v in CMAKE_ADDR2LINE CMAKE_AR CMAKE_DLLTOOL CMAKE_LINKER CMAKE_NM CMAKE_OBJCOPY CMAKE_OBJDUMP CMAKE_RANLIB CMAKE_READELF CMAKE_STRIP CMAKE_TAPI; do
__add_cmake_config $v
done
# pass common CMake LTO toolchain settings from environment to cmake (for use with "-flto")
for v in CMAKE_C_COMPILER_AR CMAKE_C_COMPILER_RANLIB CMAKE_CXX_COMPILER_AR CMAKE_CXX_COMPILER_RANLIB; do
__add_cmake_config $v
done
# pass common CMake cross compilation settings from environment to cmake
for v in CMAKE_SYSTEM_NAME CMAKE_SYSTEM_PROCESSOR CMAKE_CROSSCOMPILING_EMULATOR; do
__add_cmake_config $v
done
# pass UPX config options from environment to cmake; see CMakeLists.txt
for v in UPX_CONFIG_DISABLE_GITREV UPX_CONFIG_DISABLE_SANITIZE UPX_CONFIG_DISABLE_WSTRICT UPX_CONFIG_DISABLE_WERROR UPX_CONFIG_DISABLE_SELF_PACK_TEST; do
__add_cmake_config $v
done
# pass UPX extra compile options from environment to cmake; see CMakeLists.txt
for v in UPX_CONFIG_EXTRA_COMPILE_OPTIONS_BZIP2 UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UCL UPX_CONFIG_EXTRA_COMPILE_OPTIONS_UPX UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZLIB UPX_CONFIG_EXTRA_COMPILE_OPTIONS_ZSTD; do
__add_cmake_config $v
done
exec "${CMAKE:-cmake}" $UPX_CMAKE_CONFIG_FLAGS "${cmake_config_flags[@]}" "$@"
exit 99
+2 -1
View File
@@ -2,13 +2,14 @@
## vim:set ts=4 sw=4 et:
set -e; set -o pipefail
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
#
# "Gofmt's style is nobody's favourite, but gofmt is everybody's favourite." --Rob Pike
#
# NOTE: we are using clang-format-15.0.6 from upx-stubtools
# see https://github.com/upx/upx-stubtools/releases
#
# NOTE: we use .clang-format config from upx.git/.clang-format
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
if [[ ! -f $UPX_CLANG_FORMAT ]]; then
UPX_CLANG_FORMAT="$HOME/local/bin/bin-upx/clang-format-15.0.6"
+5
View File
@@ -53,6 +53,11 @@ export UPX="--no-color --no-progress"
"${upx_run[@]}" --help
"${upx_run[@]}" --sysinfo -v
case "$UPX_CONFIG_DISABLE_SELF_PACK_TEST" in
"" | "0" | "FALSE" | "OFF") ;;
*) echo "Self-pack test disabled. All done."; exit 0 ;;
esac
exe=".out"
upx_self_exe=$upx_exe
fo="--force-overwrite"
+3 -2
View File
@@ -18,8 +18,9 @@ umask 0022
# disable on macOS for now, see https://github.com/upx/upx/issues/612
if [[ "$(uname)" == Darwin ]]; then
echo "$0: SKIPPED"
exit 0
case "$UPX_DEBUG_FORCE_PACK_MACOS" in
"" | "0") echo "$0: SKIPPED"; exit 0 ;;
esac
fi
id || true
+147 -147
View File
@@ -46,164 +46,164 @@ b8c35fa2956da17ca505956e9f5017bb5f3a746322647e24ccb8ff28059cafa4 *powerpc-linux.
a0950546dc17fca9437219431d8ddb0249ce5b08e899e0c799a87ac982adee70 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t110_compress_ucl_nrv2b_3_no_filter="\
d11ff80ef4e663679699d92bfd5d9ed8421dc2def0a91b104697cdb2ef0a1ffe *amd64-linux.elf/upx-3.91
14d9ecc398a3b1863b19371387cadc434b8bb9a7da9225c58d3df2ab624cbf9e *amd64-linux.elf/upx-3.95
3c161ae654b290be806a38be271a4e9498404e038d5ef163543b072077b29859 *amd64-win64.pe/upx-3.95.exe
dc1927ca0317cdefe2c07b0a76f0c2d45cf02079ee163c1ced26688277a22be3 *arm-linux.elf/upx-3.95
c5a65ebda6db5f619afad9a0c0e9ece6cb025c5fdfdec57affa26120255b5e73 *arm-wince.pe/upx-3.91.exe
4a76cf662f29ef93cb674d9dd8ec144e2388d3b05d33abd89cb0416f760330c5 *arm64-linux.elf/upx-3.95
bfca960388f228846091c7124d49e9bb1504c7696ee0b359278009fa17dfa9a7 *armeb-linux.elf/upx-3.91
35b09fdbd0f9977172ebaff8231d8e00f68a8475dcba2f75b6d05c36a39f4bb4 *armeb-linux.elf/upx-3.95
5434fa28036a14abf19e4c24fe1f8bdc4cff132ed9080cb34ef1dd3c596ebce8 *i386-dos32.djgpp2.coff/upx-3.91.exe
a194bd54d3058fd97871b96a14ede16b337241e912cd51456d2a8e5b3dfa6a39 *i386-dos32.djgpp2.coff/upx-3.95.exe
a57e4e0d72e8e5ace0e045192150c4b4e9889c0ac7630c885f8cecab8280ecda *i386-linux.elf/upx-3.91
b150460b6061cfca7ec76e868626bb33a92e2558fe1f1fc8baab8c528cd1dde4 *i386-linux.elf/upx-3.95
c9a92aa8099262b5174b50f37c4f2995ceff79a8c9ba4c755a4fd1dc98bb0f23 *i386-win32.pe/upx-3.91.exe
4f15940af27173ee18aa4fdf96b79ed4c5b563141b7362b398424366e3f51dca *i386-win32.pe/upx-3.95.exe
81539760603ca5abbc5f6f0e9f0df922129fad624643d6cfc10d820205519650 *m68k-atari.tos/upx-3.91.ttp
648378e19d72bc85950e6244d837475e21008dbf470a4cb3484fda10677b8afd *mips-linux.elf/upx-3.95
3eb9a06b68617499a0c7994b6b300e4fbe9ca3cf0c3601948ab129d9e181b345 *mipsel-linux.elf/upx-3.91
5a188e4aa04e98def8294e21a587a5e958fdd745cafa52fe584976c8b62a96e9 *mipsel-linux.elf/upx-3.95
557a255deb0250ea1d0db01b07b40603817b97b9e645328bc01aaf1c51742cae *powerpc-linux.elf/upx-3.91
0751e651da9809deea7926c4125527677d7034fbbbb4d5ae10dd692c37a47074 *powerpc-linux.elf/upx-3.95
08a46dffd447f0b1f723613bfb31d14154c1a31cc3e7982263ec4b242724410c *powerpc64le-linux.elf/upx-3.95
afd8b4ec4379b013887e2dbb9cb07ed8e19942c6c5b72bd42fa20d2d43e35d52 *amd64-linux.elf/upx-3.91
320f5819d96f575ea4abad04c5a1bac53274a5d4704ff530ee778acfa261376c *amd64-linux.elf/upx-3.95
a8804bce00be8e2f9d3874c8fc884e69c19efc2f0fd07272e7d0749efd36f381 *amd64-win64.pe/upx-3.95.exe
80ff4e72220302cdccbdce753981d9a36596941ffcd9231317c5cb53f988ac72 *arm-linux.elf/upx-3.95
4e3db49fb086c4293b8a5809c166546d3a33f731b6ef5565cc0566d491f91cf2 *arm-wince.pe/upx-3.91.exe
71a27b41a763fab594ed953f3bf543489554b509bce488e7c5533e312c953e30 *arm64-linux.elf/upx-3.95
8a84b2161d83358c824de200ed480e9cb9cb7557138d710808ec44a19165c898 *armeb-linux.elf/upx-3.91
09b92d07b30b16321301aa2faf46576da2587c1334e7a842742fed36aadef5fa *armeb-linux.elf/upx-3.95
a418a4df498f55e86a7f2788c6e0fe0324d60a9032d4841569c7e4e2694410df *i386-dos32.djgpp2.coff/upx-3.91.exe
0aecdd97242054dcd390317e97a539a2e35f53a28a71d0148b703141d21345b0 *i386-dos32.djgpp2.coff/upx-3.95.exe
09a748c65d2a26975a5c829dd3d9f36e96607b1d9728d64068731815d8b82c36 *i386-linux.elf/upx-3.91
5189d860ddc1edc7e9b524aa09bd9677548d83efb788627cdbac27941f509262 *i386-linux.elf/upx-3.95
0b51fd861dd2b574bfed6ab3998b01333ae173fd76b7fd0d30187e75b09ab316 *i386-win32.pe/upx-3.91.exe
05568f9b47da0c8949080f66437f7a8d08c3c11f3ee5fb9e5d20a1324f2ab829 *i386-win32.pe/upx-3.95.exe
f6fb2f10a4f2b2d327c9868bb06241c3143771b0371ca564b8dfaeb180026298 *m68k-atari.tos/upx-3.91.ttp
196fb37ba72d7b0e081386a8110cf193678934ae1a0f16cd9d071b18c034a3f2 *mips-linux.elf/upx-3.95
e528a2c33b2ab882c6e18fab4662d612ffc71c0261c367fa9c0282b23ad53b3c *mipsel-linux.elf/upx-3.91
4b44c1b60f8eea0f40bcd2cdbc1e7217afee6d1cb054856e2791339aa7c31a78 *mipsel-linux.elf/upx-3.95
ae73bba4db8413a7a287b2a61dc9829ee3a66f9d93940ad7f08aa93b09770f4f *powerpc-linux.elf/upx-3.91
c7a8bba27dbd09c8f73ae2cd11d893187b15b298dd7d857cbd2c676670ff0a80 *powerpc-linux.elf/upx-3.95
6075bc28ac64f865d0e93cb16629c02331fb4abbea8da931288a60a6350cf635 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t120_compress_ucl_nrv2d_3_no_filter="\
c7b05335f178c5c550e3d1d0d90fb6d921a4c0c66c16e215114483ade78d9b5f *amd64-linux.elf/upx-3.91
9cedd104b3bdd11c6933ecb21e0c47bda7362909905e7e63e950984825650950 *amd64-linux.elf/upx-3.95
d96be2f6f5fb0088736ff7a83a8854844ae41d61aff7862e91f09222755a56b0 *amd64-win64.pe/upx-3.95.exe
cf7c02b78bb85e9426b01aaf31a99c65944822d65eaac461de1b3db0c718625d *arm-linux.elf/upx-3.95
c05c9d17f6d74f760d0c9cdbf7c8d0f29b9059ec0048a160579d9d40ee6dde46 *arm-wince.pe/upx-3.91.exe
91c4f7d3485e53a5b9cfadc2dda610ad5507c02b2d75f70d9628e336eaf154c8 *arm64-linux.elf/upx-3.95
e4b2f54fcacc320e4a7e45b49a499b58ebf8c4ad35232e4982144c817dee19a5 *armeb-linux.elf/upx-3.91
2a0b9e1cf234ed0746b74f8e63e15bd52f74082705ee74647899da238c7cebb3 *armeb-linux.elf/upx-3.95
0d16d4489ba249636541134471ac6dca6c78874c9201dc12a7825747cd095767 *i386-dos32.djgpp2.coff/upx-3.91.exe
49671cdfa344b6d259ba339e764f0a196b190eb7a3979771b83704d26766ed63 *i386-dos32.djgpp2.coff/upx-3.95.exe
f9bde637fa12497a02d38e52fd7acba5b7220eaa3888434fc18dcbf224c14af9 *i386-linux.elf/upx-3.91
11ef9a08ea0aba3ed8d2043be6b2297e0b41f10fc5d73f9b9299fea00eb36426 *i386-linux.elf/upx-3.95
48984390e36e8b6dd133a372570d215a49e1bf2b5d8304ba060e1088149eb603 *i386-win32.pe/upx-3.91.exe
0f9d2325e0d8930b72629c37dbb333a3ac1e3d0be0f00245a376fceb287dfff6 *i386-win32.pe/upx-3.95.exe
e87f9d09fdd313c3cf552030e9596dea67cdd6178bdf6cefb0b33f1fc893339f *m68k-atari.tos/upx-3.91.ttp
d31a35f3fae92984df28dd26c90a525038be74a54714948b96914af885902fdb *mips-linux.elf/upx-3.95
26de609a6eda26fcf93273d6a95abfe211b7080abdbbdc6fd4f793ea59bb8aa6 *mipsel-linux.elf/upx-3.91
0bd931fa89c1cc5b6f0c2425f0d564808caf5223e3214fd718b6a6df2c42ca2b *mipsel-linux.elf/upx-3.95
98dc5a8995b36bca8873a41414245db7a608d644b7a75d43bdecf9d6c8660817 *powerpc-linux.elf/upx-3.91
42d0fce35d881b90986b6de32b6dd231c310023c1e3a33f16affe5b36503b663 *powerpc-linux.elf/upx-3.95
e5db79bd3323df67afc53eed8621cae8de8c57522230cb18463d0a38ef8e0e2b *powerpc64le-linux.elf/upx-3.95
f23ea1c7cea84e5edf136b2b3a0a8740e9d6bf3552ef1f460aa4508c2f27df6d *amd64-linux.elf/upx-3.91
e725f00542f605851cfe03aee2042fbccf04e0a01bbf5a4aaecd04ad59c80077 *amd64-linux.elf/upx-3.95
57af8f45cef9e5c9f63387a15b8cf1b96426ab8dc73c303bd4caaa95b093bf92 *amd64-win64.pe/upx-3.95.exe
a01ad023431e05287be77f160ea1a491489416e34de0d5ce194665e99f12e483 *arm-linux.elf/upx-3.95
a711a73bfd20ccc012507c3f07ed98ee025f55e441156efb5fdbaa1815640c63 *arm-wince.pe/upx-3.91.exe
4a341330a44845a10521d5acaa91eda3b7602367b1c77f6a5cf0731b528e478f *arm64-linux.elf/upx-3.95
d4a8653134f16f91b8fcdb0ed0d71ae3a31199af2ec42bf5dbe97e3344eceb74 *armeb-linux.elf/upx-3.91
a7da82c93f93a842a2876a54bba85cbb380eb7c79fc123ff30f31d99be3eca5c *armeb-linux.elf/upx-3.95
f1caf28b7500b14ca1405b31b8e18a226bf682c619982ea2712b5631cc61d0d8 *i386-dos32.djgpp2.coff/upx-3.91.exe
2c5ab68a6a23d460fab8def92a4cd32a54f084811584c1472c07dbe9429a503a *i386-dos32.djgpp2.coff/upx-3.95.exe
8f227074f8bc7682fd8e71bf96c60cb42fba7d3038acb8e500c6b075df50b732 *i386-linux.elf/upx-3.91
3df0f160a7d58a1f1368450c9db2d6911818e00b11ab819edbc56afeb84e3fb8 *i386-linux.elf/upx-3.95
31aaff6332ea65bb4c386de0bb75553cae77becd9a587dcbb51e38719c8a3b7a *i386-win32.pe/upx-3.91.exe
221a2c5c07d6c0a0127b3ce27d924fc36ee4b5af52fc4f47bc172e60ef0b244a *i386-win32.pe/upx-3.95.exe
9b280a1d2b82185339a4aea0c9338d9ae6c34d1a68da84a4a173d9010d092feb *m68k-atari.tos/upx-3.91.ttp
410335b935535fab6852d4b9677a24d016a9fb47d1b71d5a7967e99d1300ac15 *mips-linux.elf/upx-3.95
52746060c4c7971a4e786ba618896eebe9592f1b443c0d217d4e2cdb8b34fa8d *mipsel-linux.elf/upx-3.91
7367c89786c15b2d8305f41980b84addfddff69f2dae0f0572a88ffee6abe884 *mipsel-linux.elf/upx-3.95
4504c03dcc84be9f5ffc2279c4638c47a435a70c4748f1e25a738af33dc20720 *powerpc-linux.elf/upx-3.91
ef410a9cbd01c7c046f888417cb451aad8ebe4288aeb98319f689a030517d181 *powerpc-linux.elf/upx-3.95
da073cf9edf9d6efd0495d3f09101972541cdccd9df3c5a07df97e47ce1f77c3 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t130_compress_ucl_nrv2e_3_no_filter="\
bb7df16340f56a859b10b5c591e69435b72443c4b9387b4c0afc4f3362217c5c *amd64-linux.elf/upx-3.91
bf45e190f7dfce9eec13163ccc7da85c51420736b15ef679290af7f4662e5850 *amd64-linux.elf/upx-3.95
cedb3c199f6b37c2993c2f6beaff327bebfcef0d1dd904b655f79c7261e374f6 *amd64-win64.pe/upx-3.95.exe
6887322866a5b77058c1b7ecc229fb43c80ea4d88e965dd34ad8a562604f5f4c *arm-linux.elf/upx-3.95
8b12ec425233a4f2e00769f2106a804d64100ac3d32f38db2383a0f51ab0c8fb *arm-wince.pe/upx-3.91.exe
13410a318f80b193f75b26388c45f603e62ab7e30392b248f89409f73f59dcc3 *arm64-linux.elf/upx-3.95
bf60d3e917be3abe66f15d8e61c93e2451f241e5b7e55de8c68d0a5eea4ab474 *armeb-linux.elf/upx-3.91
8b0ae4260e24398e479a6e220625f50158ab3142c565cc4929350a298437e6a8 *armeb-linux.elf/upx-3.95
8b5739273e1565e031c4335ceb76e5efc00830074093f092ab3ac2942b1f756e *i386-dos32.djgpp2.coff/upx-3.91.exe
27875bd06a68b56d4ecf4b1aac7cd088f6fd3c358970b0c0fe881026b83a4603 *i386-dos32.djgpp2.coff/upx-3.95.exe
018137b520e22511d67d6768ec57a9bc053bc7927a87fd51d60521042d2a26f2 *i386-linux.elf/upx-3.91
b9f6b51798e239c881174a9a93391ea27020fb6632f9cbf6040d2c7c43798f74 *i386-linux.elf/upx-3.95
38229e4a2d830568ed2b25f3d23cb20b7b78e912227da45fe1bae57e131470df *i386-win32.pe/upx-3.91.exe
f55a0c8f3197977bfe9bca325fb86e1a3f5effe82f4efaa062554b8dc7093e10 *i386-win32.pe/upx-3.95.exe
e08fb4722915ea11259084c1483e2f40f0a047be600e7a9f2607c44582849ef0 *m68k-atari.tos/upx-3.91.ttp
e452be5c3f9310879626387cbe60a7bd4465f0efc9b31e711733b964ab9286b8 *mips-linux.elf/upx-3.95
bca2e642253157d4e004a53cb393cecf34df82f2072bedf4c46bf32f1302da74 *mipsel-linux.elf/upx-3.91
849469774baf909c7470f5306f75e91fbed4664475d4f7d60910ce07101a0ce8 *mipsel-linux.elf/upx-3.95
59a21be192ac75bdf5ed882a53c3e2560380dd46c1af36d256c6329bbed7c2b7 *powerpc-linux.elf/upx-3.91
fa8f8f063ae7eedb936d0774485451b785387b435b9bcbe2fc0c9fbe7ed4eced *powerpc-linux.elf/upx-3.95
64ade3a0badb4357bf7714e5192be73ef03678260ac31ac729fc68d639495c56 *powerpc64le-linux.elf/upx-3.95
1777841250f6b34fe7b75e2931b5154918abea5e7c47047f523ab15ed59e0658 *amd64-linux.elf/upx-3.91
9fefd378d92d1e370c450dd8d3f826248594ca7234aa6fccc83d20aa37694cdd *amd64-linux.elf/upx-3.95
b5a9eee9a774712899148a339cb8326e51a120355cb0dbb5a59f07ef4a149562 *amd64-win64.pe/upx-3.95.exe
e56b71096f08c30448f560ccd60e5bffcb1f14d5b84948005d9d707600e50311 *arm-linux.elf/upx-3.95
9e1c47059e892f73a4fa118a6b435d455613e4ff4b4ab3fb432dd45adcc06809 *arm-wince.pe/upx-3.91.exe
615437bd5f987fae39502999fc1fd6a8857cdbffa4001cba1b485a8ddd0dbd14 *arm64-linux.elf/upx-3.95
37dec03e64c74da1e194fb129231c5e87fb3398f4a4f1d269de9bc2487068a6a *armeb-linux.elf/upx-3.91
e45e09fca25c28cbd458c636ac1d060bc08bab37a6571880b6f32a6e26ecaff8 *armeb-linux.elf/upx-3.95
b941187968c86db8a01f106098996f2c0cd227da66003856c19e8b24438f446a *i386-dos32.djgpp2.coff/upx-3.91.exe
8194a6a0de66019d8aa7f49504ec7303f155a2dbcf29489300428fb1bb5d1b4a *i386-dos32.djgpp2.coff/upx-3.95.exe
4380ef64efadd605bc0908ac2d56ee7597e665850d2291f40f5acd978f4ecbf8 *i386-linux.elf/upx-3.91
f9bacd9bf3a1f84455f0c647f615827606fba5608996cbae65c07a06b7b9ef42 *i386-linux.elf/upx-3.95
71b7880ee783da6182fa1dcc5cc8662eb15b82c2e96ea827f2dca3c83d4040c2 *i386-win32.pe/upx-3.91.exe
629624e02dfa11c295e22989a09d5938c415ab2d32b7b4fdb009d3cc50c63933 *i386-win32.pe/upx-3.95.exe
5215eb51b80d7d0f428da49c3249eb2b5e937f8b3487f2e59eb31e7f1b9155ee *m68k-atari.tos/upx-3.91.ttp
e393bb54cb21d93d1b4ade1048204e4a9ed1bb0ca0517e54f42fddf8dc09a89d *mips-linux.elf/upx-3.95
7fd4a440ffa128a455b6e4a7864f75953a16fb593b5dc1b890c1ed111e80b021 *mipsel-linux.elf/upx-3.91
24357e6c79022919f181286d6ae5a8316078f30c01bbbb83169cd2794c7204ec *mipsel-linux.elf/upx-3.95
e37070c89617e9d155507662ee98d9f97a7c506317fdbe22797769a5738e75c5 *powerpc-linux.elf/upx-3.91
e2af43ea9cdc9f2e75de4c9a03ace0fabac9dcbfb54ea1b57031f2c860318663 *powerpc-linux.elf/upx-3.95
d7cf1e60f962094ce5b28e3e920ed4ba0b8b84daee896043f915ab036ed774c7 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t140_compress_lzma_2_no_filter="\
ba01763526328e15b34441891b4bfbfded4488cfc0221bd923fc33c17cd94f26 *amd64-linux.elf/upx-3.91
401dba7e1d660d732006a7b3b39d0b8806ac90530090141c583ad7037482b637 *amd64-linux.elf/upx-3.95
0afff19522cd3480f13170f6f56ad1df918ff6427fdd1f76e0014adbc492112c *amd64-win64.pe/upx-3.95.exe
a7d7457b0dc5105297f070db66bac8e581c3901efa5b4c89c991cc652edd1c58 *arm-linux.elf/upx-3.95
a2178a2be4b595adb32e11c0dcdcf6af701a3f1fc41cc4019dee00a96c997860 *arm-wince.pe/upx-3.91.exe
2e45b63d7a9897c8316436cd73ea30c788b9cc873374f572ab4119ccd4585f62 *arm64-linux.elf/upx-3.95
c77b62df69a4e0e712e7ceab519bb5e8760b6dde3b609be5422258fe8c5464a3 *armeb-linux.elf/upx-3.91
abe0d09a0e3aa9b483ba652face53718480c3a928d0cb0be183e41eb2c64f1aa *armeb-linux.elf/upx-3.95
46c1aceafa1e3a2fcf224bf6e50d1dfac2dc1519671387cb066e3454b3207635 *i386-dos32.djgpp2.coff/upx-3.91.exe
170c70a9fb257ca845bbbef5f8da0062b4197a8b3f5cf9a29f472751ab38879a *i386-dos32.djgpp2.coff/upx-3.95.exe
3a5d6531b1f1ce021282592dd645fe66affd86b36ccb72c3a4f43976fb150606 *i386-linux.elf/upx-3.91
c073fe95891b83015e7d778a44562d057d5b3bc787e37f794f0e2b9867d83d76 *i386-linux.elf/upx-3.95
3e1fcbdb6267e99c50c20c3d0e6ca7795b3c35282bd127e3f09c13ae4a9ef6d0 *i386-win32.pe/upx-3.91.exe
7618f249a922b7e504a389eb1c5c640b3bc5678ca1b4575900a778453c2666fc *i386-win32.pe/upx-3.95.exe
b1a481020f6afc2601dac02bba1582f47719c964fbb3e63090cd2ae19caf2c28 *m68k-atari.tos/upx-3.91.ttp
64574681a2cbef2e5ecd4c290e8c4ed482a1a34438e3b7151eda097c593195df *mips-linux.elf/upx-3.95
0a9f789949135858acebd4da834a2d904bbc722adc599d59ae41382475988d6a *mipsel-linux.elf/upx-3.91
69faa554496af25239a5fea6f7941c0424d8f40d8078a7e40012ba284bf7b678 *mipsel-linux.elf/upx-3.95
224cc6a5336f768457c92a317a4f7e47188779ff459b821f49d2ef2188b5674b *powerpc-linux.elf/upx-3.91
8da438605f0be0e9a00c4f169d66b4639468f8e3922ed63320f33b91d0a6b099 *powerpc-linux.elf/upx-3.95
efa063be5c8a488b16f0d03598b96e144a0c0d317c462a58a3e32585b68403a7 *powerpc64le-linux.elf/upx-3.95
0744ab571ee5d8ca76d0be11d474611771e417a99598b051f1d8a3a791a91533 *amd64-linux.elf/upx-3.91
90660071ddb63165bf77f9175d3f9862d8626c085d932af2c2d66459a73cf409 *amd64-linux.elf/upx-3.95
9781094badb6013e8fd29caad2d7f369e79f60d5a5f66b547c2260e98b1c7d92 *amd64-win64.pe/upx-3.95.exe
9224db1973129ab654bfa9154689e2f1e99c7e5118dad9f143fa7b3e49abcb82 *arm-linux.elf/upx-3.95
961d61207958be48cccb37e5c0a111d85ff3e5d8fb6d5e0ca92e8681320a6f4b *arm-wince.pe/upx-3.91.exe
f044f8755d43dfd753327b6a5d1e69c8b73095fc12b3208be720ca2286a258c0 *arm64-linux.elf/upx-3.95
85e460829c5bc3bad8a7a7c82b2dfcd64594980b443972de1e52d15f644225cb *armeb-linux.elf/upx-3.91
4829edc4b97d2011e789272a4b8ad254d7df573a476bae5a71832e9aecbf0e7b *armeb-linux.elf/upx-3.95
902a9f177818e680042911e77d17de3f4bd3846fac210581ccaa7643dd1426f2 *i386-dos32.djgpp2.coff/upx-3.91.exe
665d3c278bb9a8e0cb28cffdf6a17c3c920052a2bf7d05b74413186b043ede28 *i386-dos32.djgpp2.coff/upx-3.95.exe
5ffc9d683e2e2050a7f4d6e03332de3754bb48efaf800e3dcd96678fcff6d15a *i386-linux.elf/upx-3.91
fbc487cf2343a2b277e5a1d469ea34b6b70ce609b2966ce6a372e004ae70a125 *i386-linux.elf/upx-3.95
9c35de99b53620cb09617061e7d01c31ff7a60f4bda7c4560b294ef18300c7f6 *i386-win32.pe/upx-3.91.exe
9430239c9d12e7d796fe2fa2de10bef21985841a0adf2357a4ca6b08cf08f989 *i386-win32.pe/upx-3.95.exe
e3d224960f13424eb4083a547eefd907e3384cfd2ebe6e8d6a8bd56181f5339b *m68k-atari.tos/upx-3.91.ttp
fa9c411562d1d580944274e744d5d63c2268b334ef754fef89a666938c8601ee *mips-linux.elf/upx-3.95
dd71cec3b4c14c462f58f26077193c8ec2a302aa37b4ae59a6c92ce2d493cccc *mipsel-linux.elf/upx-3.91
29c04c30ee8b3c2b4353d92b3e9ad5327af3d9f4439f2a93a08801bb456b7a2a *mipsel-linux.elf/upx-3.95
2c109762689cf8691dcc6ad952f27863dd0fc79bfa74883702dc3a4601784aa5 *powerpc-linux.elf/upx-3.91
2ad4441667860519efbd0cd60744ceadcce73e3019acd80e593917ce76b3cbf1 *powerpc-linux.elf/upx-3.95
970fe74533bd7b7c3bd7ddb300f982cde77227f2b1a69155a8dfb30366574d76 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t150_compress_ucl_2_all_filters="\
19d81859acc5322e7610e44aee84eed65974650d7a7afb5fb9731d11dad70144 *amd64-linux.elf/upx-3.91
9663a26ee5367181ad8d8cc0d8df0573d4cfcff0aa5c8f014e56963b80007146 *amd64-linux.elf/upx-3.95
1e2dd8689c3e7d4bd484eb53490ab0a9764c1ba4022145e309873537d63765f5 *amd64-win64.pe/upx-3.95.exe
4bf9b45b89d5668e41caf176f34b32336cbd4f858b71ed03385f69b722192796 *arm-linux.elf/upx-3.95
b94e8887f7901239b1fb4aa926c96d4dd5d935a653e619c3ab4c4124dad7380c *arm-wince.pe/upx-3.91.exe
6138f52201f283e64816f77380da10dc422d1689031fb6c72054647e48f55188 *arm64-linux.elf/upx-3.95
72c31db3472141f44f6034c9eaec3352c4f4391560a3d81fc63cb2fe45778d32 *armeb-linux.elf/upx-3.91
8cfb3a15c6d795e0be95c92791081573d5987633b52c51e044ab3baa7436c8d5 *armeb-linux.elf/upx-3.95
ef96852c3865b3e6682e345954568acdf7ef2e3f59f3aaec5477142097b029b7 *i386-dos32.djgpp2.coff/upx-3.91.exe
c2c11ca8450b0cf61eb2e4d5ee54692ca0f308be4b61c544e03bfc108a79cb0d *i386-dos32.djgpp2.coff/upx-3.95.exe
a595b6d76204351340a2f6eff0cfb7b3f64c40866fc11e6bb7ff9d534f097bee *i386-linux.elf/upx-3.91
8b1929b7753b56274c136648359a01a862ae994f291b2f511fdb1d2268bccbbc *i386-linux.elf/upx-3.95
10f32132ca0a218c069185834ace32447d4cf33c4ab7766141c4c08d967606a1 *i386-win32.pe/upx-3.91.exe
c1146e9c9b1c4e755822fbd5486c53e905b9d16028b97c55d0430bbcec467793 *i386-win32.pe/upx-3.95.exe
e217c1613fe848e6126f6a05b32aceaeda777e4d4a3755405118e3586b1bd93d *m68k-atari.tos/upx-3.91.ttp
e2ef44ac8519d9aadf99469c8c387503d8737827f840ef5e5b5695529d4de8f6 *mips-linux.elf/upx-3.95
23ebde2dc0d11ab32c056683edca55b8ece7f429cea28520653ed367f16a8b26 *mipsel-linux.elf/upx-3.91
354c349f1504b3403ca922fb275f25835a173268a58a2ca5b17b0632220bb6c8 *mipsel-linux.elf/upx-3.95
6f3197a3e460b23dde39522a12d734d3dddb1515645931e4fad622d8ffbe37b8 *powerpc-linux.elf/upx-3.91
66bc0f51d3a2905cdf39d599ec609565fbee3afc962cdb74caa431b71a0f5ee6 *powerpc-linux.elf/upx-3.95
f47a2f1d67f37af7087c94fc7a3fd3cd81ec3ed8149df79774250a4ace793768 *powerpc64le-linux.elf/upx-3.95
62e5a3fe8a9e2f7934194904ebfebd445e194b17fe3171c07d22017b3aa09419 *amd64-linux.elf/upx-3.91
351c778baa6826faf9661c7c5b8e8c0dd49a8aa5899f0107b2f5f7a4e3a69f3e *amd64-linux.elf/upx-3.95
3b943c943fe91b948e159c5687db6ff1b22acae0552d1cbf50a181750873f8d4 *amd64-win64.pe/upx-3.95.exe
cda2ba38e20f75623cea46cd75f604cd5466edd63cb9eafca64ea0fe765c69eb *arm-linux.elf/upx-3.95
dea0d13ec7b3f1208988d25c30e3bcd60bc013186a88cc82c998e86f320cad99 *arm-wince.pe/upx-3.91.exe
b748ca51f52811112aeea21aba9d0e59b67512d98b1e01f71c22bf4fe755304d *arm64-linux.elf/upx-3.95
57686ad3f48c7d950f866f534232693ecc3489f322bb8f1eaf78fbcbbc3bba4d *armeb-linux.elf/upx-3.91
c50c2f015491e40a8b687ae91827cf502e46e47dff21382b19c8e626388e5fe3 *armeb-linux.elf/upx-3.95
d597d829ef4beca9759c51b135f3cfd1e17c17c1d7cda04e9cb453e76742c9dc *i386-dos32.djgpp2.coff/upx-3.91.exe
ac0cc4beea08af6a39ec037d0b2a4e77d0951776e0f9ac945e8b0033b227cc30 *i386-dos32.djgpp2.coff/upx-3.95.exe
9204e3fabb4cca148a0d545f9ae3d7facd199edc570d4ce9b9794c4c7d8f46e3 *i386-linux.elf/upx-3.91
7953f12209c9838707898a73a79962764c01d7106c9c743e7437d996042811b5 *i386-linux.elf/upx-3.95
2e6dbebbae2997ae689c616221f7eecf72117d148783025363b99580df79fdad *i386-win32.pe/upx-3.91.exe
8d549e43950072ce5d271ecad25331e29a9886c4f034f150260af20f8a57feb9 *i386-win32.pe/upx-3.95.exe
d4eabc9adebd7edd40483f34ceb4081157c7542cdcea0f6b4b4dec640084fc6f *m68k-atari.tos/upx-3.91.ttp
d03d5702382fd391c61736a3dda350737590c05de07837aa3ac0eb23ff9e6d7a *mips-linux.elf/upx-3.95
431e8d80da56f51339a914c5bc4cf00242a7a8afbc4a77837888c42fb4888c3b *mipsel-linux.elf/upx-3.91
8a9722f82e89c2d83437503765b9e0798854b960839d3fa57e6ccd2f581ed352 *mipsel-linux.elf/upx-3.95
2bcf9a0b0245e807a4728f84ca134ab30371a91a2d247ed63ea80fbf4f6a44be *powerpc-linux.elf/upx-3.91
37b3f5e0a7973ca5143dea5fc7d116d759f662780ee0b809357554b21fd4bbb0 *powerpc-linux.elf/upx-3.95
04c9a8dfb2bc25327894045cc5b5f8325fb7fe90d77473ad08c5491c58b28988 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t160_compress_all_methods_1_no_filter="\
a4e92543a5cf5e692823d0bc2a75a995570358ba899e273d67c1df0709d5f41d *amd64-linux.elf/upx-3.91
77e7f8b07304c8acbf55a4755854c51f5d1582558f15ec74585fc471379c81f3 *amd64-linux.elf/upx-3.95
c8c19d2e24cd9c5b416888cff1828ef7a5b09236b0c423adbc3d2215977d4756 *amd64-win64.pe/upx-3.95.exe
0aa2cd95ed88fd3e220d14e429068269556ad7dc22ef740d07faf5288fc10189 *arm-linux.elf/upx-3.95
876f3e8c159f744db0ec8bc9d9afe51be7dac4c18da744c82550d9cc8abfae64 *arm-wince.pe/upx-3.91.exe
0853acc0af2991a5c87d54215cabc46db588d2626b468559b052418fa90b40f9 *arm64-linux.elf/upx-3.95
af0cef4cd954d3eed8218c92434ab351c4d071293223361b12f10381117798c8 *armeb-linux.elf/upx-3.91
6fb686656901a4db12cdf6ffd050be225d74e1123aecea3e45d7604f0eb1104d *armeb-linux.elf/upx-3.95
f2e94193758f32cab6b11e7d72d6c35339170e7db7f2fffb828e528a2a8a9611 *i386-dos32.djgpp2.coff/upx-3.91.exe
4ff2bbd08158a94f2d3e7aff2b681b9314704aa9724319c4ea3f2ad554b97edc *i386-dos32.djgpp2.coff/upx-3.95.exe
49e38b822d774cfe637a61a36d18ce0d6b402a80cfbfe2ca16f2d63d0ea05cdf *i386-linux.elf/upx-3.91
2ffc13b1515ad20846cca5b2d1c7d5ae0d2b3410fe14ea97fbeb9da46332b7c9 *i386-linux.elf/upx-3.95
76b29c91e9429d4587192584ee8b15a2fc40f00ae6a3c83c220c245a780e31a2 *i386-win32.pe/upx-3.91.exe
5c5b5148f679341301776689d41205d746ea96c530721a64edf8c10e8876ae35 *i386-win32.pe/upx-3.95.exe
cacdad81fb8a39c08f656f07a370c2c21e0c2aa7b3a81bcac22bb114078c478a *m68k-atari.tos/upx-3.91.ttp
d9cbddf0e48f870dca28ccb394f2077d49fb7da3c7244a4c132627bc7b2c1a89 *mips-linux.elf/upx-3.95
27fad7afdbf8fdce8b9729ed9bac4e2a1fe501ebd9dda00630c7717c504eccbb *mipsel-linux.elf/upx-3.91
b11fa6e0a609bbf3222f342951cbb77b214602168bd37ddadae23afa479c2ade *mipsel-linux.elf/upx-3.95
b7e4c9b02c30dc7436ef6cc133342b93c75ba71779b564e21dc2cb88749bc113 *powerpc-linux.elf/upx-3.91
920090c1e5147f10e1be0de3ea99a8a3140a6271c260cb90eeff6549e2855828 *powerpc-linux.elf/upx-3.95
29c6854869fd0a4e95cb3d434f8b93e7728c126ce2a8f9d7163506f1271b2af0 *powerpc64le-linux.elf/upx-3.95
0c2dedc98ac535a39c4166db713ed6feb02680869d23cc734c40e4d4ee36c6b4 *amd64-linux.elf/upx-3.91
dc87386b6afd2a36ab6ca67139399f9de6b3d29edb1741b523236e596c625043 *amd64-linux.elf/upx-3.95
b75527ed6cfd8fa9b48a68e021545833790bc2817c2155cc5eeb97cb9d43cd5c *amd64-win64.pe/upx-3.95.exe
56416fe7d9100ebb3dddee598ce0844d1abfc6f006178b5fa05fc6d1d15e9a8c *arm-linux.elf/upx-3.95
3ea0a4cafa457a1bf86ddf659a57c5737c4fa79b4a0d161df1c55c7ff0fa5ad5 *arm-wince.pe/upx-3.91.exe
0fe74c52794dc63e8e92590413eea6aceb73a9cb9f34bed3eae9a8fc34aa5ef2 *arm64-linux.elf/upx-3.95
5eb71685d564fdc4e99d939e5b2d58d8a8341288bcde5eac06f465c68a61a40a *armeb-linux.elf/upx-3.91
08516cb6655f58965c4dea7c9227aac78e3bcffd8113062dd72118e074b3380e *armeb-linux.elf/upx-3.95
2a98332d1e82db93f7025dcf792d0e8924caf38fa9b4c22963841ab5e86d22ce *i386-dos32.djgpp2.coff/upx-3.91.exe
6939a695082de59e8993886c8213aaff1ca2ed1d7687404dd242796e27275a42 *i386-dos32.djgpp2.coff/upx-3.95.exe
0a866faf423e2c134f26ec705916b7ded0cdcb4c11fcb4e3b1ff75291d0b9d71 *i386-linux.elf/upx-3.91
523d569a0682728fa84312db03930d290b7f6ef71eb2222fd81ebeb4bcc16ffa *i386-linux.elf/upx-3.95
e1f8df77bb4591b1a68f7c110ed36ad778fef240ed52f9d3e511318a2d091e66 *i386-win32.pe/upx-3.91.exe
265f4c7045bae686897dd9981575a5ebeb99ab28233d66e9a8164789359f00d8 *i386-win32.pe/upx-3.95.exe
55732af6251cc6aa7bbb9c52415424a8cc4074288004a6064d9311a2ee01fddb *m68k-atari.tos/upx-3.91.ttp
138f3f2798f0cac9235011f14910ef6b079b908746d570a2ec631bb62d0f5917 *mips-linux.elf/upx-3.95
4f740937696b2d86a4bd89ec61d52338db4c739c71a8dde5cc6ff67f675304c6 *mipsel-linux.elf/upx-3.91
18b3320462c479420723407cc3aea2b07911a4c725b0c334e1d9585a51c86bf0 *mipsel-linux.elf/upx-3.95
c8f8974ebc401286910894d6751b0a13cd908d09b51e186e49e0c309ace3d282 *powerpc-linux.elf/upx-3.91
ad08eb6c4339cd8ec63c12dd8551ef10851dcce66be27d0f9fbb251003ef0f4b *powerpc-linux.elf/upx-3.95
fb0fa7d60c542653e7d3448f2aa69e7c2ed5aaebf3845d5aa5f10c5bff2ee279 *powerpc64le-linux.elf/upx-3.95
"
expected_sha256sums__t170_compress_all_methods_no_lzma_5_no_filter="\
f11151a8eea22872544062dcab0190e26d63073c0e0b9e1356f31a336e7a56e4 *amd64-linux.elf/upx-3.91
047ad308483a6f2789de768f8de86a35b9a9c92d9ec4d04efeae55c7ea5c643c *amd64-linux.elf/upx-3.95
bd559454e3c5ad2e4afd145c2e366aed0e6bb6e8e059e7bd0bc72962cfd1f2ad *amd64-win64.pe/upx-3.95.exe
e1966d2e2056dc0af5bd18b880039cca83c70b5c370f3869e013384bdf8c853a *arm-linux.elf/upx-3.95
ef0a4b9341aacd4b9962f9e77c019c5e641616f4f5d713af93263cbf67e32a0f *arm-wince.pe/upx-3.91.exe
45700ca243888ec22cf84018d7b4ec47f2ee6e36edfc4a16056ea81e99eee9d0 *arm64-linux.elf/upx-3.95
fd5697370dca17662f271530af4a164790c63b164cc3160d7d8be317e624af8d *armeb-linux.elf/upx-3.91
c09ecb409692d91fc4710896f6fe934066d4bdff778c675c99e27b5c624d1d63 *armeb-linux.elf/upx-3.95
4766485709641cbbe06b09e64d0c77b66afa45eadf3ee11c0e92e5a0a97e5bc1 *i386-dos32.djgpp2.coff/upx-3.91.exe
f4de30c9fb6b695264db098790d189b01f1df950c75e34f8f445d8fa49b69755 *i386-dos32.djgpp2.coff/upx-3.95.exe
a25c10adb376e932191aeb2e11d1020e71b56a9c82ea0d7f8af71b4e05cffbf1 *i386-linux.elf/upx-3.91
4dca2d0bdc78d5d8fc582f6638c4595ee45c03ee2523e1da0cd914576ba7a5dd *i386-linux.elf/upx-3.95
f4500b64adb382552152c737880a3cd55c172d023437c996ccae5b07414dcb0e *i386-win32.pe/upx-3.91.exe
8922ab742e9641ca533af2693c85fd5121bbac677b12a2c67a33a49b6e4eb939 *i386-win32.pe/upx-3.95.exe
f95d3a1811be7665fc6cb9479eeb4e94b64d4b1f16187b06fa6c9f0c54782564 *m68k-atari.tos/upx-3.91.ttp
e637eb6b7c4c9c06488e79c26f8910cc8c40196a962339c849457e6b6a59b964 *mips-linux.elf/upx-3.95
8c1c4fe3430f1524e70c68f2c10ab67f356c94ea79cf7726a24931d29388458c *mipsel-linux.elf/upx-3.91
572283b261f90bd2b13f5a65c94f065f7a7e40ed32c2d048f314ec8a9656e365 *mipsel-linux.elf/upx-3.95
0a7c32c5b3cda6e7c90e21227f1b5af14d169d56d074644c431dbf367b308cdb *powerpc-linux.elf/upx-3.91
fe6e2d1c1b8e9119713863997f52735a4814d35c3bfba0a6ef1cd9e218510383 *powerpc-linux.elf/upx-3.95
cbeb988b78e3edd3f0d9526998b700c0b1c3c4bb29ef9e2591c4083a40126c50 *powerpc64le-linux.elf/upx-3.95
3a5098207aa95f40fd8a62a6a79f416837f69bf0a1ac729264fbee72d1fae0f6 *amd64-linux.elf/upx-3.91
4748b6f0bb08e1417dc62cff1c049eb2ee993717be4f9f5359fc7454e736def2 *amd64-linux.elf/upx-3.95
9fc18a2ec177ff3b48b5d299828e3275be1585db6c205ec5652e3d13f4d91eda *amd64-win64.pe/upx-3.95.exe
d90b9a2f71107025885e289633ef9e7942f494a7f8aa0e0597e79664b09ad034 *arm-linux.elf/upx-3.95
f03a3f07787765e499ad5a60f7c576598f433ba9a1f4d7158b0923f510929142 *arm-wince.pe/upx-3.91.exe
d01b573be7bb79257c3e0637f38a7fe8940e9302c7391fbc4a75664219a5522c *arm64-linux.elf/upx-3.95
085600cfffbe1d9e0c1bc25a3e48bbf3130b023b49ccbca001db27b4881e6246 *armeb-linux.elf/upx-3.91
a7923c6b78b9d3d58ee4f1bc42861476a57bb9935af47d2a15e048efb642f5d4 *armeb-linux.elf/upx-3.95
0970d5a8ee6c819e11b2bd889c7ee908403af2adf3542f7670ed92eb51090485 *i386-dos32.djgpp2.coff/upx-3.91.exe
e2d6b3c8de85bdc7b0262f64c1a16c9d41695a92e6f374cc9f12e87ca78fd956 *i386-dos32.djgpp2.coff/upx-3.95.exe
9e28e20b115e4a671b3f4006934b94fd59fcd48dc36311a479dda6bc1ccebe07 *i386-linux.elf/upx-3.91
910401db763c9a0bcb8e4d1b9cf1ee476c034b94b54a9350bcd303a5487085ef *i386-linux.elf/upx-3.95
0a413298c461facb93048106cfd261d72192443e6d2d313f2b48dbdf6537b22a *i386-win32.pe/upx-3.91.exe
684a0e0309d062e3fb7a1fabbdb7b2be45d3bde6a9a030f8a45fcc369a066efa *i386-win32.pe/upx-3.95.exe
3ea4fe59d58b92fe0b0e41662c15c40130d72ed30425871d572a8c06c3c27bbf *m68k-atari.tos/upx-3.91.ttp
e098036f912764f9dcef7377d17fe15b4f21439303306f9c84838d35fe655530 *mips-linux.elf/upx-3.95
df4106be954d5233644a3d761a9f899132f052741d16e1d793ae481aafd51caa *mipsel-linux.elf/upx-3.91
4c87f94f926aedbe17bf2d7ef72873506bbae75b8abf51a6775eb4b2e0ac0d96 *mipsel-linux.elf/upx-3.95
4c6b2ca8ed7bbe6b9705f02a26781e6d93ab2a1011c119283130a738df5e47eb *powerpc-linux.elf/upx-3.91
ccecc0acef4c430a8871704f93280a17bff518267499f05ba89a5290ba654a89 *powerpc-linux.elf/upx-3.95
86123a78b0ff91321acbc837874034c099443f77ff62848e338bb61c0888e1c6 *powerpc64le-linux.elf/upx-3.95
"
########## end .sha256sums.recreate
+41
View File
@@ -0,0 +1,41 @@
#
# valgrind suppressions for musl libc
# Copyright (C) Markus Franz Xaver Johannes Oberhumer
#
# musl malloc
{
musl-malloc-enframe
Memcheck:Cond
fun:enframe
}
# these are only needed for older musl versions
{
musl-malloc-mal0_clear
Memcheck:Cond
fun:mal0_clear
fun:calloc
}
{
musl-string-memchr
Memcheck:Cond
fun:memchr
}
{
musl-string-stpcpy
Memcheck:Cond
fun:stpcpy
}
{
musl-string-strchrnul
Memcheck:Cond
fun:strchrnul
}
{
musl-string-strlen
Memcheck:Cond
fun:strlen
}
+36 -36
View File
@@ -13,42 +13,36 @@ ifndef top_srcdir
top_srcdir := $(srcdir)/..
endif
#
#***********************************************************************
# redirect to top-level CMake build
#
#***********************************************************************
# NOTE that top-level Makefile .DEFAULT_GOAL is build/release
# NOTE that the top-level Makefile .DEFAULT_GOAL is build/release
.DEFAULT_GOAL = build/all
build/debug: $(top_srcdir)/build/debug
build/release: $(top_srcdir)/build/release
.NOTPARALLEL: # because the actual builds use "cmake --parallel"
.PHONY: PHONY
.SECONDEXPANSION:
.SUFFIXES:
# shortcuts (all => debug + release)
debug: build/debug
release: build/release
all build/all: build/debug build/release
build/debug build/release build/all: PHONY; $(MAKE) -C $(top_srcdir) $@
build/debug+test build/release+test build/all+test: PHONY; $(MAKE) -C $(top_srcdir) $@
# shortcuts
debug release all: PHONY; $(MAKE) -C $(top_srcdir) $@
debug+test release+test all+test: PHONY; $(MAKE) -C $(top_srcdir) $@
# actual rules - redirect to top-level
$(top_srcdir)/build/debug: PHONY; $(MAKE) -C $(top_srcdir) build/debug
$(top_srcdir)/build/release: PHONY; $(MAKE) -C $(top_srcdir) build/release
test:: build/all+test PHONY
# convenience
CTEST = ctest
test:: $(top_srcdir)/build/debug PHONY; cd $< && $(CTEST)
test:: $(top_srcdir)/build/release PHONY; cd $< && $(CTEST)
# OLD target names [deprecated]
$(top_srcdir)/build/debug: build/debug PHONY
$(top_srcdir)/build/release: build/release PHONY
#
# "make run-testsuite"
#***********************************************************************
# make run-testsuite
# git clone https://github.com/upx/upx-testsuite.git
#
#***********************************************************************
# search for the UPX testsuite
# you also can override upx_testsuite_SRCDIR
# search for the UPX testsuite; you can override by setting "upx_testsuite_SRCDIR"
ifndef upx_testsuite_SRCDIR
# search standard locations below $(top_srcdir)
ifneq ($(wildcard $(top_srcdir)/../upx--upx-testsuite.git/files/packed/.),)
@@ -65,47 +59,53 @@ endif
# The actual (new) checksums are in ./tmp-upx-testsuite-*/testsuite_1/.sha256sums.recreate
ifneq ($(wildcard $(upx_testsuite_SRCDIR)/files/packed/.),)
ifneq ($(wildcard $(top_srcdir)/misc/testsuite/upx_testsuite_1.sh),)
run-testsuite: run-testsuite-release
run-testsuite: run-testsuite-release PHONY
run-testsuite-%: export upx_testsuite_SRCDIR := $(upx_testsuite_SRCDIR)
run-testsuite-debug: export upx_testsuite_BUILDDIR := ./tmp-upx-testsuite-debug
run-testsuite-debug: export upx_exe := $(top_srcdir)/build/debug/upx
run-testsuite-debug: $(top_srcdir)/build/debug PHONY
run-testsuite-debug: build/debug PHONY
time -p bash $(top_srcdir)/misc/testsuite/upx_testsuite_1.sh
run-testsuite-release: export upx_testsuite_BUILDDIR := ./tmp-upx-testsuite-release
run-testsuite-release: export upx_exe := $(top_srcdir)/build/release/upx
run-testsuite-release: $(top_srcdir)/build/release PHONY
run-testsuite-release: build/release PHONY
time -p bash $(top_srcdir)/misc/testsuite/upx_testsuite_1.sh
endif
endif
#
# "make check-whitespace"
#
#***********************************************************************
# make check-whitespace
#***********************************************************************
ifneq ($(wildcard /usr/bin/env),) # need Unix utils like bash, perl, sed, xargs, etc.
CHECK_WHITESPACE = bash $(top_srcdir)/misc/scripts/check_whitespace.sh $(top_srcdir)
ifneq ($(wildcard $(top_srcdir)/.git/.),)
CHECK_WHITESPACE = bash $(top_srcdir)/misc/scripts/check_whitespace_git.sh $(top_srcdir)
endif
check-whitespace: PHONY; $(CHECK_WHITESPACE)
endif
#
# "make clang-format"
#
endif # /usr/bin/env
#***********************************************************************
# make clang-format
#***********************************************************************
# automatically format some C++ source code files
ifneq ($(wildcard /usr/bin/env),)
ifeq ($(shell uname),Linux)
# Markus loves clang-format, but John hates it; find a compromise
CLANG_FORMAT_EXCLUDE_FILES += miniacc.h stub/%.h
CLANG_FORMAT_EXCLUDE_FILES += stub/%.h util/miniacc.h
CLANG_FORMAT_EXCLUDE_FILES += p_lx_% p_mach% p_unix% p_vmlin%
CLANG_FORMAT_FILES := $(sort $(wildcard *.[ch]* ../maint/src/*.[ch]* */*.[ch]*))
CLANG_FORMAT_FILES += $(sort $(wildcard stub/tools/*/*.[ch]*))
CLANG_FORMAT_FILES += $(sort $(wildcard ../misc/cmake/try_compile/*.[ch]*))
CLANG_FORMAT_FILES := $(filter-out $(CLANG_FORMAT_EXCLUDE_FILES),$(CLANG_FORMAT_FILES))
CLANG_FORMAT_FILES := $(sort $(filter-out $(CLANG_FORMAT_EXCLUDE_FILES),$(CLANG_FORMAT_FILES)))
clang-format: $(CLANG_FORMAT_FILES) PHONY
@echo "running upx-clang-format"
@$(top_srcdir)/misc/scripts/upx-clang-format.sh -i $(CLANG_FORMAT_FILES)
endif
@bash $(top_srcdir)/misc/scripts/upx-clang-format.sh -i $(CLANG_FORMAT_FILES)
endif # Linux
endif # /usr/bin/env
# vim:set ts=8 sw=8 noet:
+53 -21
View File
@@ -47,8 +47,9 @@
// try to detect XX16 vs XX32 vs XX64 size mismatches
**************************************************************************/
#if 0 // permissive version using "void *"
#if !(DEBUG)
// permissive version using "void *"
#define REQUIRE_XE16 /*empty*/
#define REQUIRE_XE24 /*empty*/
#define REQUIRE_XE32 /*empty*/
@@ -73,15 +74,15 @@ struct LE64;
// char is explicitly allowed
// byte is explicitly allowed
template <class T>
static inline constexpr bool is_xe16_type =
inline constexpr bool is_xe16_type =
upx::is_same_any_v<T, void, char, byte, upx_int16_t, upx_uint16_t, BE16, LE16>;
template <class T>
static inline constexpr bool is_xe24_type = upx::is_same_any_v<T, void, char, byte>;
inline constexpr bool is_xe24_type = upx::is_same_any_v<T, void, char, byte>;
template <class T>
static inline constexpr bool is_xe32_type =
inline constexpr bool is_xe32_type =
upx::is_same_any_v<T, void, char, byte, upx_int32_t, upx_uint32_t, BE32, LE32>;
template <class T>
static inline constexpr bool is_xe64_type =
inline constexpr bool is_xe64_type =
upx::is_same_any_v<T, void, char, byte, upx_int64_t, upx_uint64_t, BE64, LE64>;
template <class T>
@@ -152,11 +153,15 @@ static forceinline void set_ne64(XE64 *p, upx_uint64_t vv) noexcept {
ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4)
// unfortunately *not* constexpr with current MSVC
static forceinline unsigned bswap16(unsigned v) noexcept {
static forceinline /*constexpr*/ unsigned bswap16(unsigned v) noexcept {
return (unsigned) _byteswap_ulong(v << 16);
}
static forceinline unsigned bswap32(unsigned v) noexcept { return (unsigned) _byteswap_ulong(v); }
static forceinline upx_uint64_t bswap64(upx_uint64_t v) noexcept { return _byteswap_uint64(v); }
static forceinline /*constexpr*/ unsigned bswap32(unsigned v) noexcept {
return (unsigned) _byteswap_ulong(v);
}
static forceinline /*constexpr*/ upx_uint64_t bswap64(upx_uint64_t v) noexcept {
return _byteswap_uint64(v);
}
#else
@@ -266,21 +271,27 @@ inline void set_le24(XE24 *p, unsigned v) noexcept {
b[2] = ACC_ICONV(byte, (v >> 16) & 0xff);
}
inline unsigned get_le26(const void *p) noexcept { return get_le32(p) & 0x03ffffff; }
inline unsigned get_le19_5(const void *p) noexcept { return (get_le32(p) >> 5) & 0x0007ffff; }
inline unsigned get_le14_5(const void *p) noexcept { return (get_le32(p) >> 5) & 0x00003fff; }
REQUIRE_XE32
inline unsigned get_le26(const XE32 *p) noexcept { return get_le32(p) & 0x03ffffff; }
REQUIRE_XE32
inline unsigned get_le19_5(const XE32 *p) noexcept { return (get_le32(p) >> 5) & 0x0007ffff; }
REQUIRE_XE32
inline unsigned get_le14_5(const XE32 *p) noexcept { return (get_le32(p) >> 5) & 0x00003fff; }
inline void set_le26(void *p, unsigned v) noexcept {
REQUIRE_XE32
inline void set_le26(XE32 *p, unsigned v) noexcept {
// preserve the top 6 bits
// set_le32(p, (get_le32(p) & 0xfc000000) | (v & 0x03ffffff));
// optimized version, saving a runtime bswap32
set_ne32(p, (get_ne32(p) & ne32_to_le32(0xfc000000)) |
(ne32_to_le32(v) & ne32_to_le32(0x03ffffff)));
}
inline void set_le19_5(void *p, unsigned v) noexcept {
REQUIRE_XE32
inline void set_le19_5(XE32 *p, unsigned v) noexcept {
set_le32(p, (get_le32(p) & 0xff00001f) | ((v & 0x0007ffff) << 5));
}
inline void set_le14_5(void *p, unsigned v) noexcept {
REQUIRE_XE32
inline void set_le14_5(XE32 *p, unsigned v) noexcept {
set_le32(p, (get_le32(p) & 0xfff8001f) | ((v & 0x00003fff) << 5));
}
@@ -289,17 +300,21 @@ inline void set_le14_5(void *p, unsigned v) noexcept {
**************************************************************************/
static forceinline constexpr int sign_extend(unsigned v, unsigned bits) noexcept {
#if (ACC_ARCH_M68K) // no barrel shifter
const unsigned sign_bit = 1u << (bits - 1);
v &= sign_bit | (sign_bit - 1);
v |= 0u - (v & sign_bit);
return ACC_ICAST(int, v);
return ACC_ICAST(int, (v & (sign_bit - 1)) - (v & sign_bit));
#else
return ACC_ICAST(int, v << (32 - bits)) >> (32 - bits);
#endif
}
static forceinline constexpr upx_int64_t sign_extend(upx_uint64_t v, unsigned bits) noexcept {
#if (ACC_ARCH_M68K) // no barrel shifter
const upx_uint64_t sign_bit = 1ull << (bits - 1);
v &= sign_bit | (sign_bit - 1);
v |= 0ull - (v & sign_bit);
return ACC_ICAST(upx_int64_t, v);
return ACC_ICAST(upx_int64_t, (v & (sign_bit - 1)) - (v & sign_bit));
#else
return ACC_ICAST(upx_int64_t, v << (64 - bits)) >> (64 - bits);
#endif
}
REQUIRE_XE16
@@ -714,10 +729,27 @@ T *operator+(T *ptr, const LE64 &v) noexcept DELETED_FUNCTION;
template <class T>
T *operator-(T *ptr, const LE64 &v) noexcept DELETED_FUNCTION;
#if !ALLOW_INT_PLUS_MEMBUFFER
template <class T>
T *operator+(const BE16 &v, T *ptr) noexcept DELETED_FUNCTION;
template <class T>
T *operator+(const BE32 &v, T *ptr) noexcept DELETED_FUNCTION;
template <class T>
T *operator+(const LE16 &v, T *ptr) noexcept DELETED_FUNCTION;
template <class T>
T *operator+(const LE32 &v, T *ptr) noexcept DELETED_FUNCTION;
#endif // ALLOW_INT_PLUS_MEMBUFFER
template <class T>
T *operator+(const BE64 &v, T *ptr) noexcept DELETED_FUNCTION;
template <class T>
T *operator+(const LE64 &v, T *ptr) noexcept DELETED_FUNCTION;
/*************************************************************************
// global overloads
**************************************************************************/
// TODO later: move these to upx namespace in util/cxxlib.h; see conf.h
inline unsigned ALIGN_DOWN(unsigned a, const BE32 &b) { return ALIGN_DOWN(a, unsigned(b)); }
inline unsigned ALIGN_DOWN(const BE32 &a, unsigned b) { return ALIGN_DOWN(unsigned(a), b); }
inline unsigned ALIGN_UP(unsigned a, const BE32 &b) { return ALIGN_UP(a, unsigned(b)); }
@@ -728,7 +760,7 @@ inline unsigned ALIGN_DOWN(const LE32 &a, unsigned b) { return ALIGN_DOWN(unsign
inline unsigned ALIGN_UP(unsigned a, const LE32 &b) { return ALIGN_UP(a, unsigned(b)); }
inline unsigned ALIGN_UP(const LE32 &a, unsigned b) { return ALIGN_UP(unsigned(a), b); }
// TODO: introduce upx::umax() and upx::umin()
// TODO later: introduce upx::umax() and upx::umin()
inline unsigned UPX_MAX(unsigned a, const BE16 &b) { return UPX_MAX(a, unsigned(b)); }
inline unsigned UPX_MAX(const BE16 &a, unsigned b) { return UPX_MAX(unsigned(a), b); }
inline unsigned UPX_MIN(unsigned a, const BE16 &b) { return UPX_MIN(a, unsigned(b)); }
+7 -4
View File
@@ -34,11 +34,13 @@
#if defined(BELE_CTP)
// CTP - Compile-Time Polymorphism (templates)
#define V static inline
#define VV static forceinline_constexpr
#define S static int __acc_cdecl_qsort
#define C noexcept
#elif defined(BELE_RTP)
// RTP - Run-Time Polymorphism (virtual functions)
#define V virtual
#define VV virtual
#define S virtual int
#define C const noexcept
#else
@@ -101,8 +103,8 @@ struct BEPolicy
#elif defined(BELE_RTP)
typedef N_BELE_CTP::BEPolicy CTP_Policy;
#endif
V bool isBE() C { return true; }
V bool isLE() C { return false; }
VV bool isBE() C { return true; }
VV bool isLE() C { return false; }
typedef BE16 U16;
typedef BE32 U32;
@@ -160,8 +162,8 @@ struct LEPolicy
#elif defined(BELE_RTP)
typedef N_BELE_CTP::LEPolicy CTP_Policy;
#endif
V bool isBE() C { return false; }
V bool isLE() C { return true; }
VV bool isBE() C { return false; }
VV bool isLE() C { return true; }
typedef LE16 U16;
typedef LE32 U32;
@@ -220,6 +222,7 @@ typedef LEPolicy HostPolicy;
#endif
#undef V
#undef VV
#undef S
#undef C
+127 -13
View File
@@ -24,6 +24,8 @@
<markus@oberhumer.com>
*/
#include "../util/system_headers.h"
#include <cmath> // std::isinf std::isnan
#include "../conf.h"
/*************************************************************************
@@ -42,10 +44,7 @@ int upx_doctest_check(int argc, char **argv) {
UNUSED(argv);
return 0;
#else
const char *e = getenv("UPX_DEBUG_DOCTEST_DISABLE");
if (!e)
e = getenv("UPX_DEBUG_DISABLE_DOCTEST"); // allow alternate spelling
if (e && e[0] && strcmp(e, "0") != 0)
if (is_envvar_true("UPX_DEBUG_DOCTEST_DISABLE", "UPX_DEBUG_DISABLE_DOCTEST"))
return 0;
bool minimal = true; // don't show summary
bool duration = false; // don't show timings
@@ -54,7 +53,7 @@ int upx_doctest_check(int argc, char **argv) {
// default for debug builds: do show the [doctest] summary
minimal = false;
#endif
e = getenv("UPX_DEBUG_DOCTEST_VERBOSE");
const char *e = getenv("UPX_DEBUG_DOCTEST_VERBOSE");
if (e && e[0]) {
if (strcmp(e, "0") == 0) {
minimal = true;
@@ -125,6 +124,8 @@ ACC_COMPILE_TIME_ASSERT_HEADER(sign_extend(0u + 257, 8) == 1)
ACC_COMPILE_TIME_ASSERT_HEADER(sign_extend(0u + 383, 8) == 127)
ACC_COMPILE_TIME_ASSERT_HEADER(sign_extend(0u + 384, 8) == -128)
ACC_COMPILE_TIME_ASSERT_HEADER(sign_extend(0u + 511, 8) == -1)
ACC_COMPILE_TIME_ASSERT_HEADER(sign_extend(0ull + 0, 1) == 0)
ACC_COMPILE_TIME_ASSERT_HEADER(sign_extend(0ull + 1, 1) == -1)
ACC_COMPILE_TIME_ASSERT_HEADER(CHAR_BIT == 8)
#if 0 // does not work with MSVC
@@ -321,6 +322,10 @@ struct TestIntegerWrap {
static inline bool neg_eq(const T x) noexcept { return T(0) - x == x; }
};
//
// basic exception handling checks to early catch toolchain/qemu/wine/etc problems
//
static noinline void throwSomeValue(int x) may_throw {
if (x < 0)
throw int(x);
@@ -340,28 +345,97 @@ static noinline void check_basic_cxx_exception_handling(void (*func)(int)) noexc
assert_noexcept(cxx_exception_handling_works);
}
//
// basic floating point checks to early catch toolchain/qemu/wine/etc problems
//
static noinline float i64_f32_add_div(upx_int64_t a, upx_int64_t b) { return (a + b) / 1000000.0f; }
static noinline float u64_f32_add_div(upx_uint64_t a, upx_uint64_t b) {
return (a + b) / 1000000.0f;
}
static noinline float i64_f32_sub_div(upx_int64_t a, upx_int64_t b) { return (a - b) / 1000000.0f; }
static noinline float u64_f32_sub_div(upx_uint64_t a, upx_uint64_t b) {
return (a - b) / 1000000.0f;
}
static noinline double i64_f64_add_div(upx_int64_t a, upx_int64_t b) { return (a + b) / 1000000.0; }
static noinline double u64_f64_add_div(upx_uint64_t a, upx_uint64_t b) {
return (a + b) / 1000000.0;
}
static noinline double i64_f64_sub_div(upx_int64_t a, upx_int64_t b) { return (a - b) / 1000000.0; }
static noinline double u64_f64_sub_div(upx_uint64_t a, upx_uint64_t b) {
return (a - b) / 1000000.0;
}
template <class Int, class Float>
struct TestFloat {
static constexpr Int X = 1000000;
static noinline Float div(Int a, Float f) { return a / f; }
static noinline Float add_div(Int a, Int b, Float f) { return Float(a + b) / f; }
static noinline Float sub_div(Int a, Int b, Float f) { return Float(a - b) / f; }
static noinline Float add_div_x(Int a, Int b) { return Float(a + b) / Float(X); }
static noinline Float sub_div_x(Int a, Int b) { return Float(a - b) / Float(X); }
static noinline void check() noexcept {
assert_noexcept(add_div(X, X, Float(X)) == Float(2));
assert_noexcept(add_div_x(X, X) == Float(2));
assert_noexcept(sub_div(3 * X, X, Float(X)) == Float(2));
assert_noexcept(sub_div_x(3 * X, X) == Float(2));
// extra debugging; floating point edge cases cause portability problems in practice
if (is_envvar_true("UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO")) {
#if defined(__clang__) && defined(__FAST_MATH__) && defined(__INTEL_LLVM_COMPILER)
// warning: comparison with NaN always evaluates to false in fast floating point modes
fprintf(stderr, "upx: WARNING: ignoring UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO\n");
#elif defined(__clang__) && (__clang_major__ < 9) && defined(__SANITIZE_UNDEFINED_BEHAVIOR__)
// @COMPILER_BUG @CLANG_BUG
fprintf(stderr, "upx: WARNING: ignoring UPX_DEBUG_TEST_FLOAT_DIVISION_BY_ZERO\n");
#else
assert_noexcept(std::isnan(div(0, Float(0))));
assert_noexcept(std::isinf(div(1, Float(0))));
#endif
}
}
};
static noinline void check_basic_floating_point(void) noexcept {
assert_noexcept(i64_f32_add_div(1000000, 1000000) == 2.0f);
assert_noexcept(u64_f32_add_div(1000000, 1000000) == 2.0f);
assert_noexcept(i64_f32_sub_div(3000000, 1000000) == 2.0f);
assert_noexcept(u64_f32_sub_div(3000000, 1000000) == 2.0f);
assert_noexcept(i64_f64_add_div(1000000, 1000000) == 2.0);
assert_noexcept(u64_f64_add_div(1000000, 1000000) == 2.0);
assert_noexcept(i64_f64_sub_div(3000000, 1000000) == 2.0);
assert_noexcept(u64_f64_sub_div(3000000, 1000000) == 2.0);
TestFloat<upx_int32_t, float>::check();
TestFloat<upx_uint32_t, float>::check();
TestFloat<upx_int64_t, float>::check();
TestFloat<upx_uint64_t, float>::check();
TestFloat<upx_int32_t, double>::check();
TestFloat<upx_uint32_t, double>::check();
TestFloat<upx_int64_t, double>::check();
TestFloat<upx_uint64_t, double>::check();
}
} // namespace
#define ACC_WANT_ACC_CHK_CH 1
#undef ACCCHK_ASSERT
#include "../miniacc.h"
#include "../util/miniacc.h"
void upx_compiler_sanity_check(void) noexcept {
const char *e = getenv("UPX_DEBUG_DOCTEST_DISABLE");
if (!e)
e = getenv("UPX_DEBUG_DISABLE_DOCTEST"); // allow alternate spelling
if (e && e[0] && strcmp(e, "0") != 0) {
if (is_envvar_true("UPX_DEBUG_DOCTEST_DISABLE", "UPX_DEBUG_DISABLE_DOCTEST")) {
// If UPX_DEBUG_DOCTEST_DISABLE is set then we don't want to throw any
// exceptions in order to improve debugging experience.
} else {
// check working C++ exception handling to catch toolchain/qemu/wine/etc problems
// check working C++ exception handling to early catch toolchain/qemu/wine/etc problems
check_basic_cxx_exception_handling(throwSomeValue);
}
check_basic_floating_point();
#define ACC_WANT_ACC_CHK_CH 1
#undef ACCCHK_ASSERT
#define ACCCHK_ASSERT(expr) ACC_COMPILE_TIME_ASSERT(expr)
#include "../miniacc.h"
#include "../util/miniacc.h"
#undef ACCCHK_ASSERT
COMPILE_TIME_ASSERT(sizeof(char) == 1)
@@ -468,6 +542,38 @@ void upx_compiler_sanity_check(void) noexcept {
assert_noexcept(get_be32_signed(d) == 2138996092);
assert_noexcept(get_be64_signed(d) == 9186918263483431288LL);
}
#if DEBUG >= 1
{
for (int i = 0; i < 256; i++) {
{
const unsigned u = i;
assert_noexcept(sign_extend(u, 1) == ((i & 1) ? -1 : 0));
assert_noexcept(sign_extend(u, 2) == ((i & 2) ? -2 + (i & 1) : (i & 1)));
assert_noexcept(sign_extend(u, 3) == ((i & 4) ? -4 + (i & 3) : (i & 3)));
assert_noexcept(sign_extend(u, 4) == ((i & 8) ? -8 + (i & 7) : (i & 7)));
assert_noexcept(sign_extend(u, 5) == ((i & 16) ? -16 + (i & 15) : (i & 15)));
assert_noexcept(sign_extend(u, 6) == ((i & 32) ? -32 + (i & 31) : (i & 31)));
assert_noexcept(sign_extend(u, 7) == ((i & 64) ? -64 + (i & 63) : (i & 63)));
assert_noexcept(sign_extend(u, 8) == ((i & 128) ? -128 + (i & 127) : (i & 127)));
assert_noexcept(sign_extend(u, 32) == i);
assert_noexcept(sign_extend(0u - u, 32) == -i);
}
{
const upx_uint64_t u = i;
assert_noexcept(sign_extend(u, 1) == ((i & 1) ? -1 : 0));
assert_noexcept(sign_extend(u, 2) == ((i & 2) ? -2 + (i & 1) : (i & 1)));
assert_noexcept(sign_extend(u, 3) == ((i & 4) ? -4 + (i & 3) : (i & 3)));
assert_noexcept(sign_extend(u, 4) == ((i & 8) ? -8 + (i & 7) : (i & 7)));
assert_noexcept(sign_extend(u, 5) == ((i & 16) ? -16 + (i & 15) : (i & 15)));
assert_noexcept(sign_extend(u, 6) == ((i & 32) ? -32 + (i & 31) : (i & 31)));
assert_noexcept(sign_extend(u, 7) == ((i & 64) ? -64 + (i & 63) : (i & 63)));
assert_noexcept(sign_extend(u, 8) == ((i & 128) ? -128 + (i & 127) : (i & 127)));
assert_noexcept(sign_extend(u, 64) == i);
assert_noexcept(sign_extend(0ull - u, 64) == -i);
}
}
}
#endif
{
unsigned dd;
void *const d = &dd;
@@ -569,7 +675,7 @@ TEST_CASE("ptr_invalidate_and_poison") {
ptr_invalidate_and_poison(ip);
assert(ip != nullptr);
(void) ip;
double *dp;
double *dp; // not initialized
ptr_invalidate_and_poison(dp);
assert(dp != nullptr);
(void) dp;
@@ -635,6 +741,14 @@ TEST_CASE("libc snprintf") {
CHECK_EQ(strcmp(buf, "-6.0.0.0.0.0.0.0.6.ffffffffffffffff"), 0);
snprintf(buf, sizeof(buf), "%d.%d.%d.%d.%d.%d.%d.%d.%d.%#jx", -7, 0, 0, 0, 0, 0, 0, 0, 7, um);
CHECK_EQ(strcmp(buf, "-7.0.0.0.0.0.0.0.7.0xffffffffffffffff"), 0);
snprintf(buf, sizeof(buf), "%#X %#lx %#llx", 26u, 27ul, 28ull);
CHECK_EQ(strcmp(buf, "0X1A 0x1b 0x1c"), 0);
snprintf(buf, sizeof(buf), "%#06x %#06lX %#06llx", 26u, 27ul, 28ull);
CHECK_EQ(strcmp(buf, "0x001a 0X001B 0x001c"), 0);
snprintf(buf, sizeof(buf), "%#6x %#6lx %#6llX", 26u, 27ul, 28ull);
CHECK_EQ(strcmp(buf, " 0x1a 0x1b 0X1C"), 0);
snprintf(buf, sizeof(buf), "%#-6X %#-6lx %#-6llx", 26u, 27ul, 28ull);
CHECK_EQ(strcmp(buf, "0X1A 0x1b 0x1c "), 0);
}
#if 0
+83 -4
View File
@@ -27,6 +27,24 @@
// lots of tests (and probably quite a number of redundant tests)
// modern compilers will optimize away much of this code
#if 0 // TODO later
// libc++ hardenining
#if defined(__clang__) && defined(__clang_major__) && (__clang_major__ + 0 >= 18)
#if DEBUG
#define _LIBCPP_HARDENING_MODE _LIBCPP_HARDENING_MODE_DEBUG
#else
#define _LIBCPP_HARDENING_MODE _LIBCPP_HARDENING_MODE_EXTENSIVE
#endif
#endif
#if defined(__clang__) && defined(__clang_major__) && (__clang_major__ + 0 < 18)
#if DEBUG
#define _LIBCPP_ENABLE_ASSERTIONS 1
#endif
#endif
#endif // TODO later
#include "../util/system_headers.h"
#include <vector>
#include "../conf.h"
/*************************************************************************
@@ -49,6 +67,12 @@ ACC_COMPILE_TIME_ASSERT_HEADER((!upx::is_same_any_v<int, char>) )
ACC_COMPILE_TIME_ASSERT_HEADER((!upx::is_same_any_v<int, char, char>) )
ACC_COMPILE_TIME_ASSERT_HEADER((!upx::is_same_any_v<int, char, long>) )
ACC_COMPILE_TIME_ASSERT_HEADER((upx::is_same_any_v<ptrdiff_t, int, long, long long>) )
ACC_COMPILE_TIME_ASSERT_HEADER(
(upx::is_same_any_v<size_t, unsigned, unsigned long, unsigned long long>) )
ACC_COMPILE_TIME_ASSERT_HEADER(
(upx::is_same_any_v<upx_uintptr_t, unsigned, unsigned long, unsigned long long>) )
ACC_COMPILE_TIME_ASSERT_HEADER(usizeof(int) == sizeof(int))
ACC_COMPILE_TIME_ASSERT_HEADER(usizeof('a') == sizeof(char))
ACC_COMPILE_TIME_ASSERT_HEADER(usizeof("") == 1)
@@ -97,6 +121,24 @@ ACC_COMPILE_TIME_ASSERT_HEADER(!compile_time::string_gt("abc", "abz"))
ACC_COMPILE_TIME_ASSERT_HEADER(!compile_time::string_ge("abc", "abz"))
ACC_COMPILE_TIME_ASSERT_HEADER(compile_time::string_le("abc", "abz"))
/*************************************************************************
//
**************************************************************************/
TEST_CASE("libc++") {
constexpr size_t N = 16;
std::vector<int> v(N);
CHECK(v.end() - v.begin() == N);
CHECK(&v[0] == &(*(v.begin())));
// CHECK(&v[0] + N == &(*(v.end()))); // TODO later: is this legal??
// TODO later: make sure that this throws
#if defined(_LIBCPP_HARDENING_MODE_DEBUG) && \
(_LIBCPP_HARDENING_MODE == _LIBCPP_HARDENING_MODE_DEBUG)
CHECK_THROWS((void) &v[N]);
#endif
UNUSED(v);
}
/*************************************************************************
// UPX_CXX_DISABLE_xxx
**************************************************************************/
@@ -134,7 +176,7 @@ struct MyVType2 {
UPX_CXX_DISABLE_ADDRESS(Self)
UPX_CXX_DISABLE_NEW_DELETE(Self)
};
TEST_CASE("upx_cxx_disable") {
TEST_CASE("UPX_CXX_DISABLE_xxx") {
MyType1<char, int, 1> dummy1;
MyType2<char, int, 2> dummy2;
MyVType1<char, int, 1> vdummy1;
@@ -218,7 +260,44 @@ struct Z2_X2 : public X2 {
// util
**************************************************************************/
TEST_CASE("ptr_static_cast") {
TEST_CASE("upx::ObjectDeleter 1") {
LE16 *o = nullptr; // object
LE32 *a = nullptr; // array
{
const upx::ObjectDeleter<LE16 **> o_deleter{&o, 1};
o = new LE16;
assert(o != nullptr);
const upx::ArrayDeleter<LE32 **> a_deleter{&a, 1};
a = New(LE32, 1);
assert(a != nullptr);
}
assert(o == nullptr);
assert(a == nullptr);
}
TEST_CASE("upx::ObjectDeleter 2") {
constexpr size_t N = 2;
BE16 *o[N]; // multiple objects
BE32 *a[N]; // multiple arrays
{
upx::ObjectDeleter<BE16 **> o_deleter{o, 0};
upx::ArrayDeleter<BE32 **> a_deleter{a, 0};
for (size_t i = 0; i < N; i++) {
o[i] = new BE16;
assert(o[i] != nullptr);
o_deleter.count += 1;
a[i] = New(BE32, 1 + i);
assert(a[i] != nullptr);
a_deleter.count += 1;
}
}
for (size_t i = 0; i < N; i++) {
assert(o[i] == nullptr);
assert(a[i] == nullptr);
}
}
TEST_CASE("upx::ptr_static_cast") {
// check that we don't trigger any -Wcast-align warnings
using upx::ptr_static_cast;
void *vp = nullptr;
@@ -258,7 +337,7 @@ TEST_CASE("ptr_static_cast") {
assert((ic == ptr_static_cast<const int *>(ic)));
}
TEST_CASE("noncopyable") {
TEST_CASE("upx::noncopyable") {
struct Test : private upx::noncopyable {
int v = 1;
};
@@ -381,7 +460,7 @@ struct TestTriBool {
};
} // namespace
TEST_CASE("TriBool") {
TEST_CASE("upx::TriBool") {
using upx::TriBool, upx::tribool;
static_assert(!tribool(false));
static_assert(tribool(true));
+7 -1
View File
@@ -24,6 +24,9 @@
<markus@oberhumer.com>
*/
#include "../util/system_defs.h"
#include "../util/system_features.h"
/*************************************************************************
// doctest support code implementation
**************************************************************************/
@@ -33,7 +36,10 @@
#if !defined(DOCTEST_CONFIG_DISABLE)
#if defined(__i386__) && defined(__MSDOS__) && defined(__DJGPP__) && defined(__GNUC__)
#if defined(__wasi__)
#define DOCTEST_CONFIG_NO_MULTITHREADING
#define DOCTEST_CONFIG_NO_POSIX_SIGNALS
#elif defined(__i386__) && defined(__MSDOS__) && defined(__DJGPP__) && defined(__GNUC__)
#define DOCTEST_CONFIG_NO_MULTITHREADING
#define DOCTEST_CONFIG_NO_POSIX_SIGNALS
#elif defined(__m68k__) && defined(__atarist__) && defined(__GNUC__)
+32
View File
@@ -241,6 +241,35 @@ TEST_CASE("basic xspan usage") {
}
}
TEST_CASE("xspan array access") {
const size_t N = 16;
char buf[N];
memset(buf, 0, sizeof(buf));
XSPAN_0_VAR(char, c0, buf, sizeof(buf));
XSPAN_P_VAR(char, cp, buf, sizeof(buf));
XSPAN_S_VAR(char, cs, buf, sizeof(buf));
for (size_t i = 0; i != N; ++i)
c0[i] += 1;
for (size_t i = 0; i != N; ++i)
cp[i] += 1;
for (size_t i = 0; i != N; ++i)
cs[i] += 1;
#if __cplusplus >= 201103L
for (auto ptr = c0; ptr != c0 + N; ++ptr)
*ptr += 1;
for (auto ptr = c0 + 0; ptr < c0 + N; ++ptr)
*ptr += 1;
for (auto ptr = cp; ptr != cp + N; ++ptr)
*ptr += 1;
for (auto ptr = cp + 0; ptr < cp + N; ++ptr)
*ptr += 1;
for (auto ptr = cs; ptr != cs + N; ++ptr)
*ptr += 1;
for (auto ptr = cs + 0; ptr < cs + N; ++ptr)
*ptr += 1;
#endif
}
/*************************************************************************
//
**************************************************************************/
@@ -658,6 +687,9 @@ TEST_CASE("Span subspan") {
CHECK((as + 2).subspan(0, -2)[0] == 0);
CHECK_THROWS(as.subspan(1, 0)[0]);
CHECK_THROWS(as.subspan(1, 1)[-1]);
CHECK(as.subspan(1)[0] == 1);
CHECK(as.subspan(2)[0] == 2);
CHECK(as.subspan(3)[0] == 3);
}
TEST_CASE("Span constness") {
+4 -1
View File
@@ -24,6 +24,10 @@
<markus@oberhumer.com>
*/
#include "../util/system_headers.h"
#if WITH_BZIP2
#include <bzip2/bzlib.h>
#endif
#include "../conf.h"
void bzip2_compress_config_t::reset() noexcept { mem_clear(this); }
@@ -31,7 +35,6 @@ void bzip2_compress_config_t::reset() noexcept { mem_clear(this); }
#if WITH_BZIP2
#include "compress.h"
#include "../util/membuffer.h"
#include <bzip2/bzlib.h>
#if defined(BZ_NO_STDIO) || 1
// we need to supply bz_internal_error() when building with BZ_NO_STDIO
+6 -3
View File
@@ -24,6 +24,12 @@
<markus@oberhumer.com>
*/
#include "../util/system_headers.h"
#if WITH_ZSTD
#include <zstd/lib/zstd.h>
#include <zstd/lib/zstd_errors.h>
#include <zstd/lib/compress/hist.h>
#endif
#include "../conf.h"
void zstd_compress_config_t::reset() noexcept { mem_clear(this); }
@@ -31,9 +37,6 @@ void zstd_compress_config_t::reset() noexcept { mem_clear(this); }
#if WITH_ZSTD
#include "compress.h"
#include "../util/membuffer.h"
#include <zstd/lib/zstd.h>
#include <zstd/lib/zstd_errors.h>
#include <zstd/lib/compress/hist.h>
static int convert_errno_from_zstd(size_t zr) {
const ZSTD_ErrorCode ze = ZSTD_getErrorCode(zr);
+36 -17
View File
@@ -31,7 +31,7 @@
// init
**************************************************************************/
#include "headers.h"
#include "util/system_headers.h"
#include "version.h"
#if !defined(__has_attribute)
@@ -70,7 +70,7 @@ ACC_COMPILE_TIME_ASSERT_HEADER((char) (-1) == 255)
#pragma GCC diagnostic error "-Wsuggest-override"
#endif
#if (ACC_CC_CLANG >= 0x080000)
// don't enable before clang-8 because of stddef.h issues
// don't enable before clang-8 because of <stddef.h> issues
#pragma clang diagnostic error "-Wzero-as-null-pointer-constant"
#elif (ACC_CC_GNUC >= 0x040700) && defined(__GLIBC__)
// Some non-GLIBC toolchains do not use 'nullptr' everywhere when C++:
@@ -145,15 +145,16 @@ typedef acc_int64_t upx_int64_t;
typedef acc_uint64_t upx_uint64_t;
typedef acc_uintptr_t upx_uintptr_t;
// convention: use "byte" when dealing with data; use "char/uchar" when dealing
// UPX convention: use "byte" when dealing with data; use "char/uchar" when dealing
// with strings; use "upx_uint8_t" when dealing with small integers
typedef unsigned char byte;
#define upx_byte byte
#define upx_bytep byte *
typedef unsigned char uchar;
// convention: use "charptr" when dealing with abstract pointer arithmetics
// UPX convention: use "charptr" when dealing with abstract pointer arithmetics
#define charptr upx_charptr_unit_type *
// upx_charptr_unit_type is some opaque type with sizeof(type) == 1
//// typedef char upx_charptr_unit_type; // also works
struct alignas(1) upx_charptr_unit_type final { char hidden__; };
ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(upx_charptr_unit_type) == 1)
@@ -169,18 +170,30 @@ typedef upx_int64_t upx_off_t;
// shortcuts
#define forceinline __acc_forceinline
#if _MSC_VER
#if (ACC_CC_MSC)
#define noinline __declspec(noinline)
#undef __acc_noinline
#define __acc_noinline noinline
#else
#define noinline __acc_noinline
#endif
#if defined(__clang__) || defined(__GNUC__)
#define noreturn noinline __attribute__((__noreturn__))
#elif (ACC_CC_MSC)
// do not use, generates annoying "warning C4702: unreachable code"
////#define noreturn noinline __declspec(noreturn)
#define noreturn noinline
#else
#define noreturn noinline
#endif
#define forceinline_constexpr forceinline constexpr
#define likely __acc_likely
#define unlikely __acc_unlikely
#define very_likely __acc_very_likely
#define very_unlikely __acc_very_unlikely
// cosmetic: explicitly annotate some functions which may throw exceptions
// note: noexcept(false) is the default for all C++ functions anyway
#define may_throw noexcept(false)
#define COMPILE_TIME_ASSERT(e) ACC_COMPILE_TIME_ASSERT(e)
@@ -198,6 +211,8 @@ typedef upx_int64_t upx_off_t;
#undef dos
#undef large
#undef linux
#undef PAGE_MASK
#undef PAGE_SIZE
#undef small
#undef SP
#undef SS
@@ -216,6 +231,7 @@ typedef upx_int64_t upx_off_t;
#endif
#if defined(HAVE_DUP) && (HAVE_DUP + 0 == 0)
// TODO later: add upx_fd_dup() util
#undef dup
#define dup(x) (-1)
#endif
@@ -286,9 +302,6 @@ typedef upx_int64_t upx_off_t;
#define index upx_renamed_index
#define outp upx_renamed_outp
#undef PAGE_MASK
#undef PAGE_SIZE
#if !defined(O_BINARY) || (O_BINARY + 0 == 0)
#if (ACC_OS_CYGWIN || ACC_OS_DOS16 || ACC_OS_DOS32 || ACC_OS_EMX || ACC_OS_OS2 || ACC_OS_OS216 || \
ACC_OS_WIN16 || ACC_OS_WIN32 || ACC_OS_WIN64)
@@ -341,15 +354,17 @@ inline void NO_fprintf(FILE *, const char *, ...) noexcept {}
#define upx_memcpy_inline __builtin_memcpy_inline
#elif __has_builtin(__builtin_memcpy)
#define upx_memcpy_inline __builtin_memcpy
#elif defined(__GNUC__)
#elif defined(__clang__) || defined(__GNUC__)
#define upx_memcpy_inline __builtin_memcpy
#else
#define upx_memcpy_inline memcpy
#endif
#if __has_builtin(__builtin_return_address)
#if defined(__wasi__)
#define upx_return_address() nullptr
#elif __has_builtin(__builtin_return_address)
#define upx_return_address() __builtin_return_address(0)
#elif defined(__GNUC__)
#elif defined(__clang__) || defined(__GNUC__)
#define upx_return_address() __builtin_return_address(0)
#elif (ACC_CC_MSC)
#define upx_return_address() _ReturnAddress()
@@ -357,9 +372,11 @@ inline void NO_fprintf(FILE *, const char *, ...) noexcept {}
#define upx_return_address() nullptr
#endif
// TODO cleanup: we now require C++17, so remove all packed_struct usage
// TODO later cleanup: we now require C++17, so remove all packed_struct usage
#define packed_struct(s) struct alignas(1) s
// TODO later cleanup: this was needed in the old days to catch compiler problems/bugs;
// we now require C++17, so remove this
#define COMPILE_TIME_ASSERT_ALIGNOF_USING_SIZEOF__(a, b) \
{ \
typedef a acc_tmp_a_t; \
@@ -383,6 +400,7 @@ inline void NO_fprintf(FILE *, const char *, ...) noexcept {}
#define TABLESIZE(table) ((sizeof(table) / sizeof((table)[0])))
// TODO later: move these to upx namespace in util/cxxlib.h; also see bele.h
template <class T>
inline T ALIGN_DOWN(const T &a, const T &b) {
T r;
@@ -440,9 +458,9 @@ inline void mem_clear(T (&array)[N]) noexcept DELETED_FUNCTION;
#define ByteArray(var, n) Array(byte, var, (n))
// assert_noexcept()
noinline void assertFailed(const char *expr, const char *file, int line, const char *func) noexcept;
noinline void throwAssertFailed(const char *expr, const char *file, int line, const char *func);
#if defined(__GNUC__)
noreturn void assertFailed(const char *expr, const char *file, int line, const char *func) noexcept;
noreturn void throwAssertFailed(const char *expr, const char *file, int line, const char *func);
#if defined(__clang__) || defined(__GNUC__)
#undef assert
#if DEBUG || 0
// generate a warning if assert() is used inside a "noexcept" context
@@ -459,6 +477,7 @@ noinline void throwAssertFailed(const char *expr, const char *file, int line, co
#define assert_noexcept assert
#endif
// C++ support library
#include "util/cxxlib.h"
using upx::is_same_any_v;
using upx::noncopyable;
@@ -576,8 +595,8 @@ using upx::tribool;
// #define M_CL1B_LE16 13
#define M_LZMA 14
#define M_DEFLATE 15 // zlib
#define M_ZSTD 16
#define M_BZIP2 17
#define M_ZSTD 16 // NOT YET USED
#define M_BZIP2 17 // NOT YET USED
// compression methods internal usage
#define M_ALL (-1)
#define M_END (-2)
+5 -5
View File
@@ -25,6 +25,11 @@
<markus@oberhumer.com> <ezerotven+github@gmail.com>
*/
#define WANT_WINDOWS_LEAN_H 1
#include "../util/system_headers.h"
#if (HAVE_CONIO_H)
#include <conio.h>
#endif
#include "../conf.h"
#if (USE_SCREEN_WIN32)
@@ -33,11 +38,6 @@
// direct screen access
**************************************************************************/
#include "../util/windows_lean.h"
#if (HAVE_CONIO_H)
#include <conio.h>
#endif
#include "screen.h"
#define this self
+19 -17
View File
@@ -31,39 +31,41 @@
//
**************************************************************************/
/*static*/ upx_std_atomic(size_t) Throwable::debug_counter;
/*static*/ Throwable::Stats Throwable::stats;
Throwable::Throwable(const char *m, int e, bool w) noexcept : super(),
msg(nullptr),
err(e),
is_warning(w) {
if (m)
if (m != nullptr) {
msg = strdup(m);
#if 0
fprintf(stderr, "construct exception: %s %zu\n", msg, debug_counter);
debug_counter += 1;
#endif
assert_noexcept(msg != nullptr);
}
NO_fprintf(stderr, "construct exception: %zu %zu %s\n", size_t(stats.counter_current),
size_t(stats.counter_total), (const char *) msg);
stats.counter_current += 1;
stats.counter_total += 1;
}
Throwable::Throwable(const Throwable &other) noexcept : super(other),
msg(nullptr),
err(other.err),
is_warning(other.is_warning) {
if (other.msg)
if (other.msg != nullptr) {
msg = strdup(other.msg);
#if 0
fprintf(stderr, "copy exception: %s %zu\n", msg, debug_counter);
debug_counter += 1;
#endif
assert_noexcept(msg != nullptr);
}
NO_fprintf(stderr, "copy construct exception: %zu %zu %s\n", size_t(stats.counter_current),
size_t(stats.counter_total), (const char *) msg);
stats.counter_current += 1;
stats.counter_total += 1;
}
Throwable::~Throwable() noexcept {
#if 0
debug_counter -= 1;
fprintf(stderr, "destruct exception: %s %zu\n", msg, debug_counter);
#endif
if (msg)
free(msg);
stats.counter_current -= 1;
NO_fprintf(stderr, "destruct exception: %zu %zu %s\n", size_t(stats.counter_current),
size_t(stats.counter_total), (const char *) msg);
upx::owner_free(msg);
}
/*************************************************************************
+28 -35
View File
@@ -27,11 +27,6 @@
#pragma once
const char *prettyName(const char *n) noexcept;
noinline void assertFailed(const char *expr, const char *file, int line, const char *func) noexcept;
noinline void throwAssertFailed(const char *expr, const char *file, int line, const char *func);
/*************************************************************************
// exceptions
**************************************************************************/
@@ -50,7 +45,7 @@ public:
bool isWarning() const noexcept { return is_warning; }
private:
char *msg = nullptr;
OwningPointer(char) msg = nullptr;
int err = 0;
protected:
bool is_warning = false; // can be set by subclasses
@@ -66,7 +61,12 @@ private:
UPX_CXX_DISABLE_ADDRESS(Throwable)
private:
static upx_std_atomic(size_t) debug_counter; // for debugging
// static debug stats
struct Stats {
upx_std_atomic(size_t) counter_total;
upx_std_atomic(size_t) counter_current;
};
static Stats stats;
};
// Exceptions can/should be caught
@@ -84,7 +84,7 @@ public:
};
/*************************************************************************
// system exception
// system exceptions
**************************************************************************/
class OutOfMemoryException final : public Exception {
@@ -178,44 +178,37 @@ public:
// util
**************************************************************************/
#undef NORET
#if 1 && defined(__GNUC__)
#define NORET noinline __attribute__((__noreturn__))
#else
#define NORET noinline
#endif
const char *prettyName(const char *n) noexcept;
NORET void throwCantPack(const char *msg) may_throw;
NORET void throwCantPackExact() may_throw;
NORET void throwUnknownExecutableFormat(const char *msg = nullptr, bool warn = false) may_throw;
NORET void throwNotCompressible(const char *msg = nullptr) may_throw;
NORET void throwAlreadyPacked(const char *msg = nullptr) may_throw;
NORET void throwAlreadyPackedByUPX(const char *msg = nullptr) may_throw;
NORET void throwCantUnpack(const char *msg) may_throw;
NORET void throwNotPacked(const char *msg = nullptr) may_throw;
NORET void throwFilterException() may_throw;
NORET void throwBadLoader() may_throw;
NORET void throwChecksumError() may_throw;
NORET void throwCompressedDataViolation() may_throw;
NORET void throwInternalError(const char *msg) may_throw;
NORET void throwOutOfMemoryException(const char *msg = nullptr) may_throw;
NORET void throwIOException(const char *msg = nullptr, int e = 0) may_throw;
NORET void throwEOFException(const char *msg = nullptr, int e = 0) may_throw;
noreturn void throwCantPack(const char *msg) may_throw;
noreturn void throwCantPackExact() may_throw;
noreturn void throwUnknownExecutableFormat(const char *msg = nullptr, bool warn = false) may_throw;
noreturn void throwNotCompressible(const char *msg = nullptr) may_throw;
noreturn void throwAlreadyPacked(const char *msg = nullptr) may_throw;
noreturn void throwAlreadyPackedByUPX(const char *msg = nullptr) may_throw;
noreturn void throwCantUnpack(const char *msg) may_throw;
noreturn void throwNotPacked(const char *msg = nullptr) may_throw;
noreturn void throwFilterException() may_throw;
noreturn void throwBadLoader() may_throw;
noreturn void throwChecksumError() may_throw;
noreturn void throwCompressedDataViolation() may_throw;
noreturn void throwInternalError(const char *msg) may_throw;
noreturn void throwOutOfMemoryException(const char *msg = nullptr) may_throw;
noreturn void throwIOException(const char *msg = nullptr, int e = 0) may_throw;
noreturn void throwEOFException(const char *msg = nullptr, int e = 0) may_throw;
// some C++ template wizardry is needed to overload throwCantPack() for varargs
template <class T>
void throwCantPack(const T *, ...) DELETED_FUNCTION;
template <>
NORET void throwCantPack(const char *format, ...) may_throw attribute_format(1, 2);
noreturn void throwCantPack(const char *format, ...) may_throw attribute_format(1, 2);
template <class T>
void throwCantUnpack(const T *, ...) DELETED_FUNCTION;
template <>
NORET void throwCantUnpack(const char *format, ...) may_throw attribute_format(1, 2);
noreturn void throwCantUnpack(const char *format, ...) may_throw attribute_format(1, 2);
template <class T>
void throwInternalError(const T *, ...) DELETED_FUNCTION;
template <>
NORET void throwInternalError(const char *format, ...) may_throw attribute_format(1, 2);
#undef NORET
noreturn void throwInternalError(const char *format, ...) may_throw attribute_format(1, 2);
/* vim:set ts=4 sw=4 et: */
+22 -8
View File
@@ -96,16 +96,18 @@ void show_usage(void) {
namespace {
struct PackerNames {
PackerNames() noexcept = default;
~PackerNames() noexcept = default;
struct Entry {
const char *fname;
const char *sname;
};
Entry names[64];
size_t names_count;
const Options *o;
PackerNames() : names_count(0), o(nullptr) {}
static constexpr size_t MAX_NAMES = 64;
Entry names[MAX_NAMES];
size_t names_count = 0;
const Options *o = nullptr;
void add(const PackerBase *pb) {
assert_noexcept(names_count < 64);
assert_noexcept(names_count < MAX_NAMES);
names[names_count].fname = pb->getFullName(o);
names[names_count].sname = pb->getName();
names_count++;
@@ -425,14 +427,14 @@ void show_version(bool one_line) {
fprintf(f, "Copyright (C) 2000-2024 John F. Reiser\n");
fprintf(f, "Copyright (C) 2002-2024 Jens Medoch\n");
#if (WITH_ZLIB)
fprintf(f, "Copyright (C) 1995" "-2023 Jean-loup Gailly and Mark Adler\n");
fprintf(f, "Copyright (C) 1995" "-2024 Jean-loup Gailly and Mark Adler\n");
#endif
#if (WITH_LZMA)
fprintf(f, "Copyright (C) 1999" "-2006 Igor Pavlov\n");
#endif
#if (WITH_ZSTD)
// see vendor/zstd/LICENSE; main author is Yann Collet
fprintf(f, "Copyright (C) 2015" "-2023 Meta Platforms, Inc. and affiliates\n");
fprintf(f, "Copyright (C) 2015" "-2024 Meta Platforms, Inc. and affiliates\n");
#endif
#if (WITH_BZIP2)
fprintf(f, "Copyright (C) 1996" "-2010 Julian Seward\n"); // see <bzlib.h>
@@ -496,11 +498,20 @@ void show_sysinfo(const char *options_var) {
#if defined(__clang_major__)
cf_print("__clang_major__", "%lld", __clang_major__ + 0);
#endif
#if defined(__clang_minor__)
cf_print("__clang_minor__", "%lld", __clang_minor__ + 0, 3);
#endif
#if defined(__clang_patchlevel__)
cf_print("__clang_patchlevel__", "%lld", __clang_patchlevel__ + 0, 3);
#endif
#if defined(__GNUC__)
cf_print("__GNUC__", "%lld", __GNUC__ + 0);
#endif
#if defined(__GNUC_MINOR__)
cf_print("__GNUC_MINOR__", "%lld", __GNUC_MINOR__ + 0);
cf_print("__GNUC_MINOR__", "%lld", __GNUC_MINOR__ + 0, 3);
#endif
#if defined(__GNUC_PATCHLEVEL__)
cf_print("__GNUC_PATCHLEVEL__", "%lld", __GNUC_PATCHLEVEL__ + 0, 3);
#endif
#if defined(_MSC_VER)
cf_print("_MSC_VER", "%lld", _MSC_VER + 0);
@@ -524,6 +535,9 @@ void show_sysinfo(const char *options_var) {
#if defined(__USE_MINGW_ANSI_STDIO)
cf_print("__USE_MINGW_ANSI_STDIO", "%lld", __USE_MINGW_ANSI_STDIO + 0, 3);
#endif
#if defined(__ELF__)
cf_print("__ELF__", "%lld", __ELF__ + 0, 3);
#endif
#if defined(__GLIBC__)
cf_print("__GLIBC__", "%lld", __GLIBC__ + 0);
#endif
+8 -7
View File
@@ -144,7 +144,7 @@ unsigned LeFile::getImageSize() const {
}
void LeFile::readImage() {
soimage = pages * mps;
soimage = mem_size(mps, pages); // assert size
if (!soimage) // late detection, but protect against .alloc(0)
throwCantPack("no soimage");
mb_iimage.alloc(soimage);
@@ -157,7 +157,7 @@ void LeFile::readImage() {
fif->seek(ih.data_pages_offset + exe_offset +
(ipm_entries[ic].m * 0x100 + ipm_entries[ic].l - 1) * mps,
SEEK_SET);
auto bytes = ic != pages - 1 ? mps : ih.bytes_on_last_page;
unsigned bytes = ic != pages - 1 ? mps : ih.bytes_on_last_page;
fif->readx(iimage + jc, bytes);
}
jc += mps;
@@ -184,7 +184,7 @@ void LeFile::writeNonResidentNames() {
}
bool LeFile::readFileHeader() {
#define H(x) get_le16(header + 2 * (x))
#define H(x) get_le16(header + (2 * (x)))
byte header[0x40];
le_offset = exe_offset = 0;
int ic;
@@ -208,7 +208,7 @@ bool LeFile::readFileHeader() {
} else if (memcmp(header, "BW", 2) == 0) // used in dos4gw.exe
le_offset += H(2) * 512 + H(1);
else if (memcmp(header, "LE", 2) == 0)
break;
break; // success
else if (memcmp(header, "PMW1", 4) == 0)
throwCantPack("already packed with PMWLITE");
else
@@ -219,10 +219,11 @@ bool LeFile::readFileHeader() {
fif->seek(le_offset, SEEK_SET);
fif->readx(&ih, sizeof(ih));
if (mps < 512 || mps > 2097152 || (mps & (mps - 1)) != 0)
throwCantPack("file header invalid page size");
throwCantPack("LE file header invalid page size %u", (unsigned) mps);
if (ih.bytes_on_last_page > mps || pages == 0)
throwCantPack("bad file header");
(void) mem_size(mps, pages); // assert size
throwCantPack("bad LE file header");
if (!mem_size_valid(mps, pages) || exe_offset > le_offset)
throwCantPack("bad LE file header");
return true;
#undef H
}
+1 -4
View File
@@ -223,10 +223,7 @@ protected:
private:
// disable copy and move
LeFile(const LeFile &) DELETED_FUNCTION;
LeFile &operator=(const LeFile &) DELETED_FUNCTION;
LeFile(LeFile &&) noexcept DELETED_FUNCTION;
LeFile &operator=(LeFile &&) noexcept DELETED_FUNCTION;
UPX_CXX_DISABLE_COPY_MOVE(LeFile)
};
/* vim:set ts=4 sw=4 et: */
+36 -10
View File
@@ -835,18 +835,24 @@ void ElfLinkerPpc64le::relocate1(const Relocation *rel, byte *location, upx_uint
/* value will hold relative displacement */
value -= rel->section->offset + rel->offset;
if (strcmp(type, "8") == 0) {
if (strncmp(type, "14", 2) == 0) { // for "14" and "14S"
if (3 & value)
internal_error("unaligned word displacement");
// FIXME: displacement overflow?
set_le32(location, (0xffff0003 & get_le32(location)) + (0x0000fffc & value));
} else if (strncmp(type, "24", 2) == 0) { // for "24" and "24S"
if (3 & value)
internal_error("unaligned word displacement");
// FIXME: displacement overflow?
set_le32(location, (0xfc000003 & get_le32(location)) + (0x03fffffc & value));
} else if (strcmp(type, "8") == 0) {
int displ = (signed char) *location + (int) value;
if (range_check && (displ < -128 || displ > 127))
internal_error("target out of range (%d) in reloc %s:%x\n", displ, rel->section->name,
rel->offset);
*location += value;
} else if (strncmp(type, "14", 2) == 0) // for "14" and "14S"
} else if (strcmp(type, "16") == 0)
set_le16(location, get_le16(location) + value);
else if (strcmp(type, "16") == 0)
set_le16(location, get_le16(location) + value);
else if (strncmp(type, "24", 2) == 0) // for "24" and "24S"
set_le24(location, get_le24(location) + value);
else if (strncmp(type, "32", 2) == 0) // for "32" and "32S"
set_le32(location, get_le32(location) + value);
else if (strcmp(type, "64") == 0)
@@ -869,18 +875,38 @@ void ElfLinkerPpc64::relocate1(const Relocation *rel, byte *location, upx_uint64
return super::relocate1(rel, location, value, type);
type += 11;
bool range_check = false;
if (strncmp(type, "PC", 2) == 0) {
type += 2;
range_check = true;
}
// We have "R_PPC64_REL" or "R_PPC64_RELPC" as a prefix.
/* value will hold relative displacement */
value -= rel->section->offset + rel->offset;
if (strncmp(type, "14", 2) == 0) // for "14" and "14S"
set_be16(2 + location, get_be16(2 + location) + value);
else if (strncmp(type, "24", 2) == 0) // for "24" and "24S"
set_be24(1 + location, get_be24(1 + location) + value);
if (strncmp(type, "14", 2) == 0) { // for "14" and "14S"
if (3 & value)
internal_error("unaligned word displacement");
// FIXME: displacement overflow?
set_be32(location, (0xffff0003 & get_be32(location)) + (0x0000fffc & value));
} else if (strncmp(type, "24", 2) == 0) { // for "24" and "24S"
if (3 & value)
internal_error("unaligned word displacement");
// FIXME: displacement overflow?
set_be32(location, (0xfc000003 & get_be32(location)) + (0x03fffffc & value));
} else if (strcmp(type, "8") == 0) {
int displ = (signed char) *location + (int) value;
if (range_check && (displ < -128 || displ > 127))
internal_error("target out of range (%d) in reloc %s:%x\n", displ, rel->section->name,
rel->offset);
*location += value;
} else if (strcmp(type, "16") == 0)
set_be16(location, get_be16(location) + value);
else if (strncmp(type, "32", 2) == 0) // for "32" and "32S"
set_be32(location, get_be32(location) + value);
else if (strcmp(type, "64") == 0)
set_be64(location, get_be64(location) + value);
else
super::relocate1(rel, location, value, type);
}
+1 -1
View File
@@ -142,7 +142,7 @@ struct ElfLinker::Relocation : private noncopyable {
unsigned offset = 0;
const char *type = nullptr;
const Symbol *value = nullptr;
upx_uint64_t add; // used in .rela relocations
upx_uint64_t add = 0; // used in .rela relocations
explicit Relocation(const Section *s, unsigned o, const char *t, const Symbol *v,
upx_uint64_t a);
+5 -3
View File
@@ -1306,8 +1306,7 @@ int upx_main(int argc, char *argv[]) may_throw {
if (gitrev[0]) {
// also see UPX_CONFIG_DISABLE_GITREV in CMakeLists.txt
bool warn_gitrev = true;
const char *ee = getenv("UPX_DEBUG_DISABLE_GITREV_WARNING");
if (ee && ee[0] && strcmp(ee, "1") == 0)
if (is_envvar_true("UPX_DEBUG_DISABLE_GITREV_WARNING"))
warn_gitrev = false;
if (warn_gitrev) {
FILE *f = stdout;
@@ -1355,8 +1354,11 @@ int __acc_cdecl_main main(int argc, char *argv[]) /*noexcept*/ {
_set_abort_behavior(_WRITE_ABORT_MSG, _WRITE_ABORT_MSG | _CALL_REPORTFAULT);
#endif
acc_wildargv(&argc, &argv);
// srand((int) time(nullptr));
#if defined(__wasi__)
srand((int) time(nullptr));
#else
srand((int) clock());
#endif
// info: main() is implicitly "noexcept", so we need a try block
#if 0
+6 -6
View File
@@ -25,7 +25,7 @@
<markus@oberhumer.com> <ezerotven+github@gmail.com>
*/
#include "headers.h"
#include "util/system_headers.h"
#include <typeinfo> // typeid()
#include "conf.h"
@@ -82,10 +82,10 @@ static void pr_error(const char *iname, const char *msg, bool is_warning) noexce
bool c = acc_isatty(STDERR_FILENO) ? 1 : 0;
int fg = con_fg(stderr, FG_BRTRED);
snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%s: ", progname);
upx_safe_snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%s: ", progname);
pr_print(c, buf);
//(void)con_fg(stderr,FG_RED);
snprintf(buf, sizeof(buf), "%s: ", iname);
upx_safe_snprintf(buf, sizeof(buf), "%s: ", iname);
pr_print(c, buf);
//(void)con_fg(stderr,FG_BRTRED);
pr_print(c, msg);
@@ -102,13 +102,13 @@ void printErr(const char *iname, const Throwable &e) noexcept {
char buf[1024];
size_t l;
snprintf(buf, sizeof(buf), "%s", prettyName(typeid(e).name()));
upx_safe_snprintf(buf, sizeof(buf), "%s", prettyName(typeid(e).name()));
l = strlen(buf);
if (l < sizeof(buf) && e.getMsg())
snprintf(buf + l, sizeof(buf) - l, ": %s", e.getMsg());
upx_safe_snprintf(buf + l, sizeof(buf) - l, ": %s", e.getMsg());
l = strlen(buf);
if (l < sizeof(buf) && e.getErrno()) {
snprintf(buf + l, sizeof(buf) - l, ": %s", strerror(e.getErrno()));
upx_safe_snprintf(buf + l, sizeof(buf) - l, ": %s", strerror(e.getErrno()));
#if 1
// some compilers (e.g. Borland C++) put a trailing '\n'
// into the strerror() result
+2 -2
View File
@@ -39,7 +39,7 @@ std::mutex opt_lock_mutex;
**************************************************************************/
void Options::reset() noexcept {
#define opt ERROR_DO_NOT_USE_opt // protect against using the wrong variable
#define opt ERROR_DO_NOT_USE_opt // self-protect against using the wrong variable
Options *const o = this;
mem_clear(o);
o->crp.reset();
@@ -90,7 +90,7 @@ void Options::reset() noexcept {
**************************************************************************/
TEST_CASE("Options::reset") {
#define opt ERROR_DO_NOT_USE_opt // protect against using the wrong variable
#define opt ERROR_DO_NOT_USE_opt // self-protect against using the wrong variable
COMPILE_TIME_ASSERT(std::is_standard_layout<Options>::value)
COMPILE_TIME_ASSERT(std::is_nothrow_default_constructible<Options>::value)
COMPILE_TIME_ASSERT(std::is_trivially_copyable<Options>::value)
+1 -1
View File
@@ -31,7 +31,7 @@
// dos/com
**************************************************************************/
class PackCom : public Packer {
class PackCom /*not_final*/ : public Packer {
typedef Packer super;
public:
+6 -6
View File
@@ -178,9 +178,9 @@ packed_struct(Sym) {
#define WANT_SYM_ENUM 1
#include "p_elf_enum.h"
static unsigned int get_st_bind(unsigned x) { return 0xf & (x >> 4); }
static unsigned int get_st_type(unsigned x) { return 0xf & x; }
static unsigned char make_st_info(unsigned bind, unsigned type) {
static constexpr unsigned get_st_bind(unsigned x) noexcept { return 0xf & (x >> 4); }
static constexpr unsigned get_st_type(unsigned x) noexcept { return 0xf & x; }
static constexpr unsigned char make_st_info(unsigned bind, unsigned type) noexcept {
return (unsigned char) (((bind << 4) + (0xf & type)) & 0xff);
}
};
@@ -252,9 +252,9 @@ packed_struct(Sym) {
#define WANT_SYM_ENUM 1
#include "p_elf_enum.h"
static unsigned int get_st_bind(unsigned x) { return 0xf & (x >> 4); }
static unsigned int get_st_type(unsigned x) { return 0xf & x; }
static unsigned char make_st_info(unsigned bind, unsigned type) {
static constexpr unsigned get_st_bind(unsigned x) noexcept { return 0xf & (x >> 4); }
static constexpr unsigned get_st_type(unsigned x) noexcept { return 0xf & x; }
static constexpr unsigned char make_st_info(unsigned bind, unsigned type) noexcept {
return (unsigned char) (((bind << 4) + (0xf & type)) & 0xff);
}
};
+28 -18
View File
@@ -33,22 +33,26 @@
// - that older compilers do not correctly perform EBCO
**************************************************************************/
#if CLANG_FORMAT_DUMMY_CLASS
class Dummy {
#endif
#ifdef WANT_EHDR_ENUM
#undef WANT_EHDR_ENUM
enum { // indices for e_ident[16]
EI_CLASS = 4,
EI_DATA = 5, /* Data encoding */
EI_DATA = 5, // Data encoding
EI_VERSION = 6,
EI_OSABI = 7,
EI_ABIVERSION = 8,
};
enum { // e_ident[EI_CLASS]
ELFCLASS32 = 1, /* 32-bit objects */
ELFCLASS64 = 2, /* 64-bit objects */
ELFCLASS32 = 1, // 32-bit objects
ELFCLASS64 = 2, // 64-bit objects
};
enum { // e_ident[EI_DATA]
ELFDATA2LSB = 1, /* 2's complement, little endian */
ELFDATA2MSB = 2, /* 2's complement, big endian */
ELFDATA2LSB = 1, // 2's complement, little endian
ELFDATA2MSB = 2, // 2's complement, big endian
};
enum { // e_ident[EI_OSABI]
ELFOSABI_NONE = 0, // == ELFOSABI_SYSV
@@ -85,7 +89,7 @@ enum { // e_machine
enum { // e_version
EV_CURRENT = 1,
};
#endif
#endif // WANT_EHDR_ENUM
#ifdef WANT_PHDR_ENUM
#undef WANT_PHDR_ENUM
@@ -106,7 +110,7 @@ enum { // p_flags
PF_W = 2, /* Segment is writable */
PF_R = 4, /* Segment is readable */
};
#endif
#endif // WANT_PHDR_ENUM
#ifdef WANT_SHDR_ENUM
#undef WANT_SHDR_ENUM
@@ -149,7 +153,7 @@ enum { // sh_flags
SHF_INFO_LINK = (1 << 6), /* 'sh_info' contains SHT index */
SHF_LINK_ORDER = (1 << 7), /* Preserve order after combining */
};
#endif
#endif // WANT_SHDR_ENUM
#ifdef WANT_DYN_ENUM
#undef WANT_DYN_ENUM
@@ -194,7 +198,7 @@ enum { // DT_FLAGS_1
DF_1_NOW = 0x00000001, /* Set RTLD_NOW for this object. */
DF_1_PIE = 0x08000000, // Position-Independent Executable (main program)
};
#endif
#endif // WANT_DYN_ENUM
#ifdef WANT_SYM_ENUM
#undef WANT_SYM_ENUM
@@ -226,18 +230,20 @@ enum { // st_shndx
SHN_ABS = 0xfff1, /* Associated symbol is absolute */
SHN_COMMON = 0xfff2, /* Associated symbol is common */
};
#endif
#endif // WANT_SYM_ENUM
#ifdef WANT_REL_ENUM //{
#ifdef WANT_REL_ENUM
#undef WANT_REL_ENUM
static inline unsigned ELF32_R_TYPE(unsigned x) { return 0xff & x; }
static inline unsigned ELF64_R_TYPE(upx_uint64_t x) { return 0xffffffff & (unsigned) x; }
static inline unsigned ELF32_R_SYM(unsigned x) { return x >> 8; }
static inline unsigned ELF64_R_SYM(upx_uint64_t x) { return x >> 32; }
static inline unsigned ELF32_R_INFO(unsigned sym, unsigned type) {
static constexpr inline unsigned ELF32_R_TYPE(unsigned x) noexcept { return 0xff & x; }
static constexpr inline unsigned ELF64_R_TYPE(upx_uint64_t x) noexcept {
return 0xffffffff & (unsigned) x;
}
static constexpr inline unsigned ELF32_R_SYM(unsigned x) noexcept { return x >> 8; }
static constexpr inline unsigned ELF64_R_SYM(upx_uint64_t x) noexcept { return x >> 32; }
static constexpr inline unsigned ELF32_R_INFO(unsigned sym, unsigned type) noexcept {
return (sym << 8) + (type & 0xff);
}
static inline upx_int64_t ELF64_R_INFO(unsigned sym, unsigned type) {
static constexpr inline upx_int64_t ELF64_R_INFO(unsigned sym, unsigned type) {
return ((upx_uint64_t) sym << 32) + type;
}
@@ -271,7 +277,7 @@ enum { // relocation types
R_AARCH64_GLOB_DAT = 1025,
};
#endif //}
#endif // WANT_REL_ENUM
#ifdef WANT_NHDR_ENUM
#undef WANT_NHDR_ENUM
@@ -320,6 +326,10 @@ enum { // NetBSD PaX bit values
PAX_ASLR = (1 << 4), /* force enable ASLR */
PAX_NOASLR = (1 << 5), /* force disable ASLR */
};
#endif // WANT_NHDR_ENUM
#if CLANG_FORMAT_DUMMY_CLASS
}; // class
#endif
/* vim:set ts=4 sw=4 et: */
+98 -43
View File
@@ -259,7 +259,7 @@ PackLinuxElf::PackLinuxElf(InputFile *f)
o_elf_shnum(0)
{
memset(dt_table, 0, sizeof(dt_table));
symnum_end = 0;
symnum_max = 0;
user_init_rp = nullptr;
}
@@ -903,10 +903,10 @@ PackLinuxElf::addStubEntrySections(Filter const *, unsigned m_decompr)
addLoader("ELFMAINXu", nullptr);
}
addLoader(
( M_IS_NRV2E(ph.method) ? "NRV_HEAD,NRV2E,NRV_TAIL"
: M_IS_NRV2D(ph.method) ? "NRV_HEAD,NRV2D,NRV_TAIL"
: M_IS_NRV2B(ph.method) ? "NRV_HEAD,NRV2B,NRV_TAIL"
: M_IS_LZMA(ph.method) ? "LZMA_ELF00,LZMA_DEC20,LZMA_DEC30"
( M_IS_NRV2E(ph_forced_method(ph.method)) ? "NRV_HEAD,NRV2E,NRV_TAIL"
: M_IS_NRV2D(ph_forced_method(ph.method)) ? "NRV_HEAD,NRV2D,NRV_TAIL"
: M_IS_NRV2B(ph_forced_method(ph.method)) ? "NRV_HEAD,NRV2B,NRV_TAIL"
: M_IS_LZMA(ph_forced_method(ph.method)) ? "LZMA_ELF00,LZMA_DEC20,LZMA_DEC30"
: nullptr), nullptr);
if (hasLoaderSection("CFLUSH"))
addLoader("CFLUSH");
@@ -2028,7 +2028,8 @@ PackLinuxElf32::sort_DT32_offsets(Elf32_Dyn const *const dynp0)
unsigned PackLinuxElf32::find_dt_ndx(unsigned rva)
{
unsigned *const dto = (unsigned *)mb_dt_offsets.getVoidPtr();
for (unsigned j = 0; dto[j]; ++j) { // linear search of short table
unsigned const dto_size = mb_dt_offsets.getSize() / sizeof(*dto);
for (unsigned j = 0; j < dto_size && dto[j]; ++j) { // linear search of short table
if (rva == dto[j]) {
return j;
}
@@ -2046,6 +2047,9 @@ unsigned PackLinuxElf32::elf_find_table_size(unsigned dt_type, unsigned sh_type)
unsigned x_rva;
if (dt_type < DT_NUM) {
unsigned const x_ndx = dt_table[dt_type];
if (!x_ndx) { // no such entry
return 0;
}
x_rva = get_te32(&dynseg[-1+ x_ndx].d_val);
}
else {
@@ -2099,15 +2103,21 @@ PackLinuxElf32::invert_pt_dynamic(Elf32_Dyn const *dynp, u32_t headway)
else if (dt_table[Elf32_Dyn::DT_INIT_ARRAY]) upx_dt_init = Elf32_Dyn::DT_INIT_ARRAY;
unsigned const z_str = dt_table[Elf32_Dyn::DT_STRSZ];
strtab_end = !z_str ? 0 : get_te32(&dynp0[-1+ z_str].d_val);
if (!z_str || (u32_t)file_size <= strtab_end) { // FIXME: weak
strtab_max = !z_str ? 0 : get_te32(&dynp0[-1+ z_str].d_val);
unsigned const z_tab = dt_table[Elf32_Dyn::DT_STRTAB];
unsigned const strtab_beg = !z_tab ? 0 : get_te32(&dynp0[-1+ z_tab].d_val);
if (!z_str || !z_tab
|| (this->file_size - strtab_beg) < strtab_max // strtab overlaps EOF
// last string in table must have terminating NUL
|| '\0' != ((char *)file_image.getVoidPtr())[-1+ strtab_max + strtab_beg]
) {
char msg[50]; snprintf(msg, sizeof(msg),
"bad DT_STRSZ %#x", strtab_end);
"bad DT_STRSZ %#x", strtab_max);
throwCantPack(msg);
}
// Find end of DT_SYMTAB
symnum_end = elf_find_table_size(
symnum_max = elf_find_table_size(
Elf32_Dyn::DT_SYMTAB, Elf32_Shdr::SHT_DYNSYM) / sizeof(Elf32_Sym);
unsigned const x_sym = dt_table[Elf32_Dyn::DT_SYMTAB];
@@ -2126,9 +2136,15 @@ PackLinuxElf32::invert_pt_dynamic(Elf32_Dyn const *dynp, u32_t headway)
unsigned const nbucket = get_te32(&hashtab[0]);
unsigned const *const buckets = &hashtab[2];
unsigned const *const chains = &buckets[nbucket]; (void)chains;
if ((unsigned)(file_size - ((char const *)buckets - (char const *)(void const *)file_image))
<= sizeof(unsigned)*nbucket ) {
char msg[80]; snprintf(msg, sizeof(msg),
"bad nbucket %#x\n", nbucket);
throwCantPack(msg);
}
unsigned const v_sym = !x_sym ? 0 : get_te32(&dynp0[-1+ x_sym].d_val);
if ((unsigned)file_size <= nbucket/sizeof(*buckets) // FIXME: weak
if ((unsigned)(hashend - buckets) < nbucket
|| !v_sym || (unsigned)file_size <= v_sym
|| ((v_hsh < v_sym) && (v_sym - v_hsh) < sizeof(*buckets)*(2+ nbucket))
) {
@@ -2170,11 +2186,18 @@ PackLinuxElf32::invert_pt_dynamic(Elf32_Dyn const *dynp, u32_t headway)
unsigned const *const buckets = (unsigned const *)&bitmask[n_bitmask];
unsigned const *const hasharr = &buckets[n_bucket]; (void)hasharr;
if (!n_bucket || (1u<<31) <= n_bucket /* fie on fuzzers */
|| (void const *)&file_image[file_size] <= (void const *)hasharr) {
|| (unsigned)(gashend - buckets) < n_bucket
|| (file_size + file_image) <= (void const *)hasharr) {
char msg[80]; snprintf(msg, sizeof(msg),
"bad n_bucket %#x\n", n_bucket);
throwCantPack(msg);
}
// It would be better to detect zeroes shifted into low 5 bits of:
// (037 & (hash_32 >> gnu_shift))
// but compilers can be stupid.
if (31 < gnu_shift) {
throwCantPack("bad gnu_shift %d", gnu_shift);
}
// unsigned const *const gashend = &hasharr[n_bucket];
// minimum, except:
// Rust and Android trim unused zeroes from high end of hasharr[]
@@ -2342,7 +2365,7 @@ Elf64_Shdr *PackLinuxElf64::elf_find_section_type(
char const *PackLinuxElf64::get_str_name(unsigned st_name, unsigned symnum) const
{
if (strtab_end <= st_name) {
if (strtab_max <= st_name) {
char msg[70]; snprintf(msg, sizeof(msg),
"bad .st_name %#x in DT_SYMTAB[%d]", st_name, symnum);
throwCantPack(msg);
@@ -2352,7 +2375,7 @@ char const *PackLinuxElf64::get_str_name(unsigned st_name, unsigned symnum) cons
char const *PackLinuxElf64::get_dynsym_name(unsigned symnum, unsigned relnum) const
{
if (symnum_end <= symnum) {
if (symnum_max <= symnum) {
char msg[70]; snprintf(msg, sizeof(msg),
"bad symnum %#x in Elf64_Rel[%d]", symnum, relnum);
throwCantPack(msg);
@@ -2379,7 +2402,7 @@ bool PackLinuxElf64::calls_crt1(Elf64_Rela const *rela, int sz)
char const *PackLinuxElf32::get_str_name(unsigned st_name, unsigned symnum) const
{
if (strtab_end <= st_name) {
if (strtab_max <= st_name) {
char msg[70]; snprintf(msg, sizeof(msg),
"bad .st_name %#x in DT_SYMTAB[%d]\n", st_name, symnum);
throwCantPack(msg);
@@ -2389,7 +2412,7 @@ char const *PackLinuxElf32::get_str_name(unsigned st_name, unsigned symnum) cons
char const *PackLinuxElf32::get_dynsym_name(unsigned symnum, unsigned relnum) const
{
if (symnum_end <= symnum) {
if (symnum_max <= symnum) {
char msg[70]; snprintf(msg, sizeof(msg),
"bad symnum %#x in Elf32_Rel[%d]\n", symnum, relnum);
throwCantPack(msg);
@@ -2419,6 +2442,9 @@ tribool PackLinuxElf32::canUnpack() // bool, except -1: format known, but not pa
if (checkEhdr(&ehdri)) {
return false;
}
if (get_te16(&ehdri.e_phnum) < 2) {
throwCantUnpack("e_phnum must be >= 2");
}
if (Elf32_Ehdr::ET_DYN==get_te16(&ehdri.e_type)) {
PackLinuxElf32help1(fi);
}
@@ -2965,6 +2991,9 @@ tribool PackLinuxElf64::canUnpack() // bool, except -1: format known, but not pa
if (checkEhdr(&ehdri)) {
return false;
}
if (get_te16(&ehdri.e_phnum) < 2) {
throwCantUnpack("e_phnum must be >= 2");
}
if (Elf64_Ehdr::ET_DYN==get_te16(&ehdri.e_type)) {
PackLinuxElf64help1(fi);
}
@@ -6306,7 +6335,7 @@ PackLinuxElf64::un_asl_dynsym( // ibuf has the input
// un-Relocate dynsym (DT_SYMTAB) which is below xct_off
dynstr = (char const *)elf_find_dynamic(Elf64_Dyn::DT_STRTAB);
sec_dynsym = elf_find_section_type(Elf64_Shdr::SHT_DYNSYM);
if (sec_dynsym) {
if (dynstr && sec_dynsym) {
upx_uint64_t const off_dynsym = get_te64(&sec_dynsym->sh_offset);
upx_uint64_t const sz_dynsym = get_te64(&sec_dynsym->sh_size);
if (orig_file_size < sz_dynsym
@@ -6347,7 +6376,7 @@ PackLinuxElf32::un_asl_dynsym( // ibuf has the input
// un-Relocate dynsym (DT_SYMTAB) which is below xct_off
dynstr = (char const *)elf_find_dynamic(Elf32_Dyn::DT_STRTAB);
sec_dynsym = elf_find_section_type(Elf32_Shdr::SHT_DYNSYM);
if (sec_dynsym) {
if (dynstr && sec_dynsym) {
upx_uint32_t const off_dynsym = get_te32(&sec_dynsym->sh_offset);
upx_uint32_t const sz_dynsym = get_te32(&sec_dynsym->sh_size);
if (orig_file_size < sz_dynsym
@@ -7160,7 +7189,10 @@ void PackLinuxElf64::unpack(OutputFile *fo)
upx_uint64_t old_dtinit = 0;
if (Elf64_Ehdr::ET_EXEC == get_te16(&ehdri.e_type)) {
if (get_te64(&ehdri.e_entry) < 0x401180
// 40fddf17153ee3db73a04ff1bf288b91676138d6 2001-02-01 ph.version 11; b_info 12 bytes
// df9db96bd1c013c07da1d7ec740021d588ab2815 2001-01-17 ph.version 11; no b_info (==> 8 bytes)
if (ph.version <= 11
&& get_te64(&ehdri.e_entry) < 0x401180
&& get_te16(&ehdri.e_machine)==Elf64_Ehdr::EM_X86_64) {
// old style, 8-byte b_info:
// sizeof(b_info.sz_unc) + sizeof(b_info.sz_cpr);
@@ -7404,7 +7436,8 @@ void PackLinuxElf64::unpack(OutputFile *fo)
}
}
int boff = find_le32(peek_arr, sizeof(peek_arr), size);
if (boff < 0) {
if (boff < 0
|| sizeof(peek_arr) < (boff + sizeof(b_info))) {
throwCantUnpack("b_info corrupted");
}
bp = (b_info *)(void *)&peek_arr[boff];
@@ -7909,7 +7942,8 @@ PackLinuxElf64::sort_DT64_offsets(Elf64_Dyn const *const dynp0)
unsigned PackLinuxElf64::find_dt_ndx(u64_t rva)
{
unsigned *const dto = (unsigned *)mb_dt_offsets.getVoidPtr();
for (unsigned j = 0; dto[j]; ++j) { // linear search of short table
unsigned const dto_size = mb_dt_offsets.getSize() / sizeof(*dto);
for (unsigned j = 0; j < dto_size && dto[j]; ++j) { // linear search of short table
if (rva == dto[j]) {
return j;
}
@@ -7927,6 +7961,9 @@ unsigned PackLinuxElf64::elf_find_table_size(unsigned dt_type, unsigned sh_type)
unsigned x_rva;
if (dt_type < DT_NUM) {
unsigned const x_ndx = dt_table[dt_type];
if (!x_ndx) { // no such entry
return 0;
}
x_rva = get_te64(&dynseg[-1+ x_ndx].d_val);
}
else {
@@ -7985,15 +8022,21 @@ PackLinuxElf64::invert_pt_dynamic(Elf64_Dyn const *dynp, upx_uint64_t headway)
else if (dt_table[Elf64_Dyn::DT_INIT_ARRAY]) upx_dt_init = Elf64_Dyn::DT_INIT_ARRAY;
unsigned const z_str = dt_table[Elf64_Dyn::DT_STRSZ];
strtab_end = !z_str ? 0 : get_te64(&dynp0[-1+ z_str].d_val);
if (!z_str || (u64_t)file_size <= strtab_end) { // FIXME: weak
strtab_max = !z_str ? 0 : get_te64(&dynp0[-1+ z_str].d_val);
unsigned const z_tab = dt_table[Elf64_Dyn::DT_STRTAB];
unsigned const strtab_beg = !z_tab ? 0 : get_te64(&dynp0[-1+ z_tab].d_val);
if (!z_str || !z_tab
|| (this->file_size - strtab_beg) < strtab_max // strtab overlaps EOF
// last string in table must have terminating NUL
|| '\0' != ((char *)file_image.getVoidPtr())[-1+ strtab_max + strtab_beg]
) {
char msg[50]; snprintf(msg, sizeof(msg),
"bad DT_STRSZ %#x", strtab_end);
"bad DT_STRSZ %#x", strtab_max);
throwCantPack(msg);
}
// Find end of DT_SYMTAB
symnum_end = elf_find_table_size(
symnum_max = elf_find_table_size(
Elf64_Dyn::DT_SYMTAB, Elf64_Shdr::SHT_DYNSYM) / sizeof(Elf64_Sym);
unsigned const x_sym = dt_table[Elf64_Dyn::DT_SYMTAB];
@@ -8012,9 +8055,15 @@ PackLinuxElf64::invert_pt_dynamic(Elf64_Dyn const *dynp, upx_uint64_t headway)
unsigned const nbucket = get_te32(&hashtab[0]);
unsigned const *const buckets = &hashtab[2];
unsigned const *const chains = &buckets[nbucket]; (void)chains;
if ((unsigned)(file_size - ((char const *)buckets - (char const *)(void const *)file_image))
<= sizeof(unsigned)*nbucket ) {
char msg[80]; snprintf(msg, sizeof(msg),
"bad nbucket %#x\n", nbucket);
throwCantPack(msg);
}
unsigned const v_sym = !x_sym ? 0 : get_te64(&dynp0[-1+ x_sym].d_val); // UPX_RSIZE_MAX_MEM
if ((unsigned)file_size <= nbucket/sizeof(*buckets) // FIXME: weak
if ((unsigned)(hashend - buckets) < nbucket
|| !v_sym || (unsigned)file_size <= v_sym
|| ((v_hsh < v_sym) && (v_sym - v_hsh) < sizeof(*buckets)*(2+ nbucket))
) {
@@ -8056,11 +8105,18 @@ PackLinuxElf64::invert_pt_dynamic(Elf64_Dyn const *dynp, upx_uint64_t headway)
unsigned const *const buckets = (unsigned const *)&bitmask[n_bitmask];
unsigned const *const hasharr = &buckets[n_bucket]; (void)hasharr;
if (!n_bucket || (1u<<31) <= n_bucket /* fie on fuzzers */
|| (void const *)&file_image[file_size] <= (void const *)hasharr) {
|| (unsigned)(gashend - buckets) < n_bucket
|| (file_size + file_image) <= (void const *)hasharr) {
char msg[80]; snprintf(msg, sizeof(msg),
"bad n_bucket %#x\n", n_bucket);
throwCantPack(msg);
}
// It would be better to detect zeroes shifted into low 6 bits of:
// (077 & (hash_32 >> gnu_shift))
// but compilers can be stupid.
if (31 < gnu_shift) {
throwCantPack("bad gnu_shift %d", gnu_shift);
}
// unsigned const *const gashend = &hasharr[n_bucket];
// minimum, except:
// Rust and Android trim unused zeroes from high end of hasharr[]
@@ -8153,20 +8209,18 @@ Elf32_Sym const *PackLinuxElf32::elf_lookup(char const *name) const
unsigned const nbucket = get_te32(&hashtab[0]);
unsigned const *const buckets = &hashtab[2];
unsigned const *const chains = &buckets[nbucket];
if ((unsigned)(file_size - ((char const *)buckets - (char const *)(void const *)file_image))
<= sizeof(unsigned)*nbucket ) {
char msg[80]; snprintf(msg, sizeof(msg),
"bad nbucket %#x\n", nbucket);
throwCantPack(msg);
}
if (nbucket) {
unsigned const m = elf_hash(name) % nbucket;
unsigned nvisit = 0;
unsigned si;
for (si= get_te32(&buckets[m]); 0!=si; si= get_te32(&chains[si])) {
char const *const p= get_dynsym_name(si, (unsigned)-1);
if (0==strcmp(name, p)) {
return &dynsym[si];
}
if (nbucket <= ++nvisit) {
throwCantPack("circular DT_HASH chain %d\n", si);
}
}
}
}
@@ -8178,7 +8232,7 @@ Elf32_Sym const *PackLinuxElf32::elf_lookup(char const *name) const
unsigned const *const bitmask = &gashtab[4];
unsigned const *const buckets = &bitmask[n_bitmask];
unsigned const *const hasharr = &buckets[n_bucket];
if ((void const *)&file_image[file_size] <= (void const *)hasharr) {
if ((file_size + file_image) <= (void const *)hasharr) {
char msg[80]; snprintf(msg, sizeof(msg),
"bad n_bucket %#x\n", n_bucket);
throwCantPack(msg);
@@ -8214,7 +8268,7 @@ Elf32_Sym const *PackLinuxElf32::elf_lookup(char const *name) const
return dsp;
}
} while (++dsp,
(char const *)hp < (char const *)&file_image[file_size]
((char const *)hp < (char const *)(file_size + file_image))
&& 0==(1u& get_te32(hp++)));
}
}
@@ -8235,20 +8289,18 @@ Elf64_Sym const *PackLinuxElf64::elf_lookup(char const *name) const
unsigned const nbucket = get_te32(&hashtab[0]);
unsigned const *const buckets = &hashtab[2];
unsigned const *const chains = &buckets[nbucket];
if ((unsigned)(file_size - ((char const *)buckets - (char const *)(void const *)file_image))
<= sizeof(unsigned)*nbucket ) {
char msg[80]; snprintf(msg, sizeof(msg),
"bad nbucket %#x\n", nbucket);
throwCantPack(msg);
}
if (nbucket) { // -rust-musl can have "empty" hashtab
unsigned const m = elf_hash(name) % nbucket;
unsigned nvisit = 0;
unsigned si;
for (si= get_te32(&buckets[m]); 0!=si; si= get_te32(&chains[si])) {
char const *const p= get_dynsym_name(si, (unsigned)-1);
if (0==strcmp(name, p)) {
return &dynsym[si];
}
if (nbucket <= ++nvisit) {
throwCantPack("circular DT_HASH chain %d\n", si);
}
}
}
}
@@ -8261,7 +8313,7 @@ Elf64_Sym const *PackLinuxElf64::elf_lookup(char const *name) const
unsigned const *const buckets = (unsigned const *)&bitmask[n_bitmask];
unsigned const *const hasharr = &buckets[n_bucket];
if ((void const *)&file_image[file_size] <= (void const *)hasharr) {
if ((file_size + file_image) <= (void const *)hasharr) {
char msg[80]; snprintf(msg, sizeof(msg),
"bad n_bucket %#x\n", n_bucket);
throwCantPack(msg);
@@ -8323,7 +8375,10 @@ void PackLinuxElf32::unpack(OutputFile *fo)
upx_uint32_t old_dtinit = 0;
if (Elf32_Ehdr::ET_EXEC == get_te16(&ehdri.e_type)) {
if (get_te32(&ehdri.e_entry) < 0x401180
// 40fddf17153ee3db73a04ff1bf288b91676138d6 2001-02-01 ph.version 11; b_info 12 bytes
// df9db96bd1c013c07da1d7ec740021d588ab2815 2001-01-17 ph.version 11; no b_info (==> 8 bytes)
if (ph.version <= 11
&& get_te32(&ehdri.e_entry) < 0x401180
&& get_te16(&ehdri.e_machine)==Elf32_Ehdr::EM_386) {
// old style, 8-byte b_info:
// sizeof(b_info.sz_unc) + sizeof(b_info.sz_cpr);
+3 -3
View File
@@ -44,7 +44,7 @@ public:
PackLinuxElf(InputFile *f);
virtual ~PackLinuxElf();
/*virtual void buildLoader(const Filter *);*/
virtual int getVersion() const override { return 14; } // upx-3.96 cannot upack, for instance
virtual int getVersion() const override { return 14; } // upx-3.96 cannot unpack, for instance
virtual bool canUnpackVersion(int version) const override { return (version >= 11); }
virtual tribool canUnpack() override { return super::canUnpack(); } // bool, except -1: format known, but not packed
@@ -84,8 +84,8 @@ protected:
MemBuffer mb_shdr; // Shdr might not be near Phdr
MemBuffer mb_dt_offsets; // file offset of various DT_ tables
unsigned *dt_offsets; // index by dt_table[]
unsigned symnum_end;
unsigned strtab_end;
unsigned symnum_max;
unsigned strtab_max;
char const *dynstr; // from DT_STRTAB
unsigned sz_phdrs; // sizeof Phdr[]
+40 -19
View File
@@ -1468,6 +1468,8 @@ umin(unsigned a, unsigned b)
return (a <= b) ? a : b;
}
#define MAX_N_CMDS 256
template <class T>
void PackMachBase<T>::unpack(OutputFile *fo)
{
@@ -1512,6 +1514,9 @@ void PackMachBase<T>::unpack(OutputFile *fo)
if ((unsigned)file_size < ph.c_len || ph.c_len == 0 || ph.u_len == 0)
throwCantUnpack("file header corrupted");
ph.method = bhdr.b_method;
if (ph.method < M_NRV2B_LE32
|| ph.method > M_BZIP2)
throwCantUnpack("file header bad method");
ph.filter = bhdr.b_ftid;
ph.filter_cto = bhdr.b_cto8;
@@ -1526,7 +1531,7 @@ void PackMachBase<T>::unpack(OutputFile *fo)
|| mhdri.filetype != mhdr->filetype)
throwCantUnpack("file header corrupted");
unsigned const ncmds = mhdr->ncmds;
if (!ncmds || 256 < ncmds) { // arbitrary limit
if (!ncmds || MAX_N_CMDS < ncmds) { // arbitrary limit
char msg[40]; snprintf(msg, sizeof(msg),
"bad Mach_header.ncmds = %d", ncmds);
throwCantUnpack(msg);
@@ -1640,6 +1645,11 @@ tribool PackMachBase<T>::canUnpack()
unsigned const ncmds = mhdri.ncmds;
int headway = (int)mhdri.sizeofcmds;
if (!ncmds || MAX_N_CMDS < ncmds || file_size < headway) {
char msg[80]; snprintf(msg, sizeof(msg),
"bad Mach_header ncmds=%d sizeofcmds=0x%x", ncmds, headway);
throwCantUnpack(msg);
}
// old style: LC_SEGMENT + LC_UNIXTHREAD [smaller, varies by $ARCH]
// new style: 3*LC_SEGMENT + LC_MAIN [larger]
if ((2 == ncmds
@@ -1673,11 +1683,20 @@ tribool PackMachBase<T>::canUnpack()
unsigned const cmd = ptr->cmd;
unsigned const cmdsize = ptr->cmdsize;
if (is_bad_linker_command(cmd, cmdsize, headway, lc_seg, sizeof(Addr))) {
infoWarning("bad Mach_command[%u]{@0x%zx,+0x%x}: file_size=0x%lx cmdsize=0x%lx",
opt->info_mode += 1;
infoWarning("bad Mach_command[%u]{@0x%zx,+0x%x}=0x%x: file_size=0x%lx cmdsize=0x%lx",
j, (sizeof(mhdri) + ((char const *)ptr - (char const *)rawmseg)), headway,
(unsigned long) file_size, (unsigned long)ptr->cmdsize);
cmd, (unsigned long) file_size, (unsigned long)ptr->cmdsize);
opt->info_mode -= 1;
throwCantUnpack("file corrupted");
}
headway -= cmdsize;
if (headway < 0) {
infoWarning("Mach_command[%u]{@%lu}.cmdsize = %u", j,
(unsigned long) (sizeof(mhdri) + mhdri.sizeofcmds - (headway + ptr->cmdsize)),
(unsigned)ptr->cmdsize);
throwCantUnpack("sum(.cmdsize) exceeds .sizeofcmds");
}
if (lc_seg == ptr->cmd) {
Mach_segment_command const *const segptr = (Mach_segment_command const *)ptr;
if ((unsigned long)file_size < segptr->filesize
@@ -1713,12 +1732,6 @@ tribool PackMachBase<T>::canUnpack()
}
}
pos_next = segptr->filesize + segptr->fileoff;
if ((headway -= ptr->cmdsize) < 0) {
infoWarning("Mach_command[%u]{@%lu}.cmdsize = %u", j,
(unsigned long) (sizeof(mhdri) + mhdri.sizeofcmds - (headway + ptr->cmdsize)),
(unsigned)ptr->cmdsize);
throwCantUnpack("sum(.cmdsize) exceeds .sizeofcmds");
}
}
else if (Mach_command::LC_UNIXTHREAD==ptr->cmd) {
rip = entryVMA = threadc_getPC(ptr);
@@ -1948,8 +1961,8 @@ tribool PackMachBase<T>::canPack()
my_cpusubtype = mhdri.cpusubtype;
unsigned const ncmds = mhdri.ncmds;
if (!ncmds || 256 < ncmds) { // arbitrary, but guard against garbage
throwCantPack("256 < Mach_header.ncmds");
if (!ncmds || MAX_N_CMDS < ncmds) { // arbitrary, but guard against garbage
throwCantPack("%d < Mach_header.ncmds", MAX_N_CMDS);
}
unsigned const sz_mhcmds = (unsigned)mhdri.sizeofcmds;
unsigned headway = umin(sz_mhcmds, file_size - sizeof(mhdri));
@@ -1973,9 +1986,10 @@ tribool PackMachBase<T>::canPack()
unsigned const cmd = segptr->cmd &~ LC_REQ_DYLD;
unsigned const cmdsize = segptr->cmdsize;
if (is_bad_linker_command(cmd, cmdsize, headway, lc_seg, sizeof(Addr))) {
char buf[80]; snprintf(buf, sizeof(buf),
"bad Mach_command[%d]{cmd=%#x, size=%#x}", j,
cmd, cmdsize);
char buf[200]; snprintf(buf, sizeof(buf),
"bad Mach_command[%u]{@0x%zx,+0x%x}=0x%x: file_size=0x%lx cmdsize=0x%x",
j, (sizeof(mhdri) + ((char const *)segptr - (char const *)rawmseg)), headway,
cmd, (unsigned long) file_size, cmdsize);
throwCantPack(buf);
}
headway -= cmdsize;
@@ -2229,17 +2243,19 @@ tribool PackMachBase<T>::canPack()
break;
}
}
#if !defined(DEBUG)
// disable macOS packing in Release builds until we do support macOS 13+
// disable macOS packing until we do support macOS 13+
// https://github.com/upx/upx/issues/612
if (my_cputype == CPU_TYPE_X86_64 || my_cputype == CPU_TYPE_ARM64)
if (!opt->darwin_macho.force_macos)
if (my_cputype == CPU_TYPE_X86_64 || my_cputype == CPU_TYPE_ARM64) {
bool force = opt->darwin_macho.force_macos || is_envvar_true("UPX_DEBUG_FORCE_PACK_MACOS");
if (!force)
throwCantPack("macOS is currently not supported (try --force-macos)");
#endif
}
return true;
}
// instantiate instances
template class PackMachBase<MachClass_BE32>;
// template class PackMachBase<MachClass_BE64>; // currently not used
template class PackMachBase<MachClass_LE32>;
template class PackMachBase<MachClass_LE64>;
@@ -2263,6 +2279,11 @@ unsigned PackMachFat::check_fat_head()
}
for (unsigned j=0; j < nfat; ++j) {
unsigned const align = arch[j].align;
if (24 < align) {
char msg[80]; snprintf(msg, sizeof(msg),
"bad fat_arch alignment 0x%x > 24", align);
throwCantPack(msg);
}
unsigned const mask = ~(~0u<<align);
unsigned const size = arch[j].size;
unsigned const offset = arch[j].offset;
+8 -1
View File
@@ -24,7 +24,6 @@
<jreiser@users.sourceforge.net>
*/
/*************************************************************************
// Use the preprocessor to work around
// - that the types embedding these enums have to be PODs, and
@@ -33,6 +32,10 @@
// - that older compilers do not correctly perform EBCO
**************************************************************************/
#if CLANG_FORMAT_DUMMY_CLASS
class Dummy {
#endif
#ifdef WANT_MACH_HEADER_ENUM /*{*/
#undef WANT_MACH_HEADER_ENUM
enum : unsigned { // magic
@@ -168,4 +171,8 @@
};
#endif /*}*/
#if CLANG_FORMAT_DUMMY_CLASS
}; // class
#endif
/* vim:set ts=4 sw=4 et: */
+14 -3
View File
@@ -581,7 +581,7 @@ int PackUnix::find_overlay_offset(MemBuffer const &buf)
return false;
int l = ph.buf_offset + ph.getPackHeaderSize();
if (l < 0 || l + 4 > bufsize)
if (l < 0 || i + l + 4 > bufsize)
throwCantUnpack("file corrupted");
overlay_offset = get_te32(buf + i + l);
if ((off_t)overlay_offset >= file_size)
@@ -597,6 +597,8 @@ int PackUnix::find_overlay_offset(MemBuffer const &buf)
// See notes there.
**************************************************************************/
static unsigned umax(unsigned a, unsigned b) {return (a < b) ? b : a;}
void PackUnix::unpack(OutputFile *fo)
{
b_info bhdr;
@@ -617,10 +619,15 @@ void PackUnix::unpack(OutputFile *fo)
fi->readx(&hbuf, sizeof(hbuf));
orig_file_size = get_te32(&hbuf.p_filesize);
blocksize = get_te32(&hbuf.p_blocksize);
off_t max_inflated = file_size * 273; // zlib limit (256 + 16 + 1)
if (file_size > (off_t)orig_file_size || blocksize > orig_file_size)
if (max_inflated < orig_file_size
|| max_inflated < blocksize
|| file_size > (off_t)orig_file_size
|| blocksize > orig_file_size) {
throwCantUnpack("file header corrupted");
}
}
else
{
// skip 4 bytes (program id)
@@ -658,7 +665,11 @@ void PackUnix::unpack(OutputFile *fo)
if (sz_cpr > sz_unc || sz_unc > blocksize)
throwCompressedDataViolation();
i = blocksize + OVERHEAD - sz_cpr;
// Compressed output has control bytes such as the 32-bit
// first flag bits of NRV_d32, the 5-byte info of LZMA, etc.
// Fuzzers may try sz_cpr shorter than possible.
// Use some OVERHEAD for safety.
i = blocksize + OVERHEAD - umax(12, sz_cpr);
if (i < 0)
throwCantUnpack("corrupt b_info");
fi->readx(buf+i, sz_cpr);
+2 -1
View File
@@ -30,6 +30,7 @@
*/
#define ALLOW_INT_PLUS_MEMBUFFER 1
#include "conf.h"
#include "file.h"
@@ -1239,7 +1240,7 @@ Linker* PackVmlinuxAMD64::newLinker() const
// instantiate instances
template class PackVmlinuxBase<ElfClass_BE32>;
// template class PackVmlinuxBase<ElfClass_BE64>; // not used
// template class PackVmlinuxBase<ElfClass_BE64>; // currently not used
template class PackVmlinuxBase<ElfClass_LE32>;
template class PackVmlinuxBase<ElfClass_LE64>;
+2 -1
View File
@@ -235,7 +235,8 @@ void PackW32PeI386::defineSymbols(unsigned ncsection, unsigned upxsection, unsig
void PackW32PeI386::addNewRelocations(Reloc &rel, unsigned upxsection) {
if (use_stub_relocs)
rel.add(upxsection + linker->getSymbolOffset("PESOCREL") + 1, 3);
rel.add_reloc(upxsection + linker->getSymbolOffset("PESOCREL") + 1,
IMAGE_REL_BASED_HIGHLOW);
}
void PackW32PeI386::setOhDataBase(const pe_section_t *osection) { oh.database = osection[2].vaddr; }
+1 -1
View File
@@ -190,7 +190,7 @@ void PackWinCeArm::addNewRelocations(Reloc &rel, unsigned upxsection) {
for (unsigned s2r = 0; s2r < TABLESIZE(symbols_to_relocate); s2r++) {
unsigned off = linker->getSymbolOffset(symbols_to_relocate[s2r]);
if (off != 0xdeaddead)
rel.add(off + upxsection, 3);
rel.add_reloc(off + upxsection, IMAGE_REL_BASED_HIGHLOW);
}
}
+1 -1
View File
@@ -481,7 +481,7 @@ unsigned Packer::getRandomId() const {
}
#endif
while (id == 0) {
#if !(HAVE_GETTIMEOFDAY) || ((ACC_OS_DOS32) && defined(__DJGPP__))
#if (!(HAVE_GETTIMEOFDAY) || ((ACC_OS_DOS32) && defined(__DJGPP__))) && !defined(__wasi__)
id ^= (unsigned) time(nullptr);
id ^= ((unsigned) clock()) << 12;
#else
+3 -3
View File
@@ -36,7 +36,7 @@ class UiPacker;
class Filter;
/*************************************************************************
// PackerBase: purely abstract minimal base class for all packers
// PackerBase: abstract minimal base class for all packers
//
// clients: PackMaster, UiPacker
**************************************************************************/
@@ -80,7 +80,7 @@ protected:
InputFile *const fi; // reference
union { // unnamed union
const upx_int64_t file_size; // must get set by constructor
const upx_uint64_t file_size_u; // (explicitly unsigned to avoid casts)
const upx_uint64_t file_size_u; // (explicitly unsigned to avoid -Wsign-compare casts)
};
PackHeader ph; // must be filled by canUnpack(); also used by UiPacker
};
@@ -245,7 +245,7 @@ protected:
unsigned image_size, int bits, bool bswap);
// TE - Target Endianness abstraction
#if 0
#if !(DEBUG)
// permissive version using "void *"
inline unsigned get_te16(const void *p) const noexcept { return bele->get16(p); }
inline unsigned get_te32(const void *p) const noexcept { return bele->get32(p); }
+1 -1
View File
@@ -219,7 +219,7 @@ const char *Packer::getDecompressorSections() const {
"LZMA_ELF00,LZMA_DEC20,LZMA_DEC30";
// clang-format on
unsigned const method = ph_forced_method(ph.method);
const unsigned method = ph_forced_method(ph.method);
if (method == M_NRV2B_LE32)
return opt->small ? nrv2b_le32_small : nrv2b_le32_fast;
if (method == M_NRV2D_LE32)
+3 -3
View File
@@ -30,7 +30,7 @@
/*************************************************************************
// sort and delta-compress relocations with optional bswap within image
// returns number of bytes written to 'out'
// returns number of **bytes** written to 'out'
**************************************************************************/
/*static*/
@@ -102,7 +102,7 @@ unsigned Packer::optimizeReloc(unsigned relocnum, SPAN_P(byte) relocs, SPAN_S(by
/*************************************************************************
// delta-decompress relocations
// advances 'in'
// allocates 'out' and returns number of relocs written to 'out'
// allocates 'out' and returns number of **relocs** written to 'out'
**************************************************************************/
/*static*/
@@ -132,7 +132,7 @@ unsigned Packer::unoptimizeReloc(SPAN_S(const byte) & in, MemBuffer &out, SPAN_P
upx_adler32(image, image_size));
}
out.alloc(4 * (relocnum + 1)); // one extra entry
out.alloc(mem_size(4, relocnum + 1)); // one extra entry
SPAN_S_VAR(LE32, relocs, out);
fix = in;
+3 -3
View File
@@ -49,7 +49,7 @@ void PackHeader::reset() noexcept {
// extremely simple checksum for the header itself (since version 10)
**************************************************************************/
static byte get_packheader_checksum(SPAN_S(const byte) buf, int blen) {
static upx_uint8_t get_packheader_checksum(SPAN_S(const byte) buf, int blen) {
assert(blen >= 4);
assert(get_le32(buf) == UPX_MAGIC_LE32);
buf += 4;
@@ -58,7 +58,7 @@ static byte get_packheader_checksum(SPAN_S(const byte) buf, int blen) {
while (blen-- > 0)
c += *buf++;
c %= 251;
return (byte) c;
return (upx_uint8_t) c;
}
/*************************************************************************
@@ -108,7 +108,7 @@ void PackHeader::putPackHeader(SPAN_S(byte) p) const {
}
int size = 0;
int old_chksum = 0;
upx_uint8_t old_chksum = 0;
// the new variable length header
if (format < 128) { // little endian
-2
View File
@@ -25,8 +25,6 @@
<markus@oberhumer.com> <ezerotven+github@gmail.com>
*/
#include "headers.h"
#include <memory> // std::unique_ptr
#include "conf.h"
#include "file.h"
#include "packmast.h"
+180 -165
View File
@@ -213,18 +213,10 @@ int PeFile::readFileHeader() {
// interval handling
**************************************************************************/
PeFile::Interval::Interval(void *b) : capacity(0), base(b), ivarr(nullptr), ivnum(0) {}
PeFile::Interval::Interval(SPAN_P(byte) b) : base(b) {}
PeFile::Interval::~Interval() noexcept { free(ivarr); }
void PeFile::Interval::add(const void *start, unsigned len) {
add(ptr_diff_bytes(start, base), len);
}
void PeFile::Interval::add(const void *start, const void *end) {
add(ptr_diff_bytes(start, base), ptr_diff_bytes(end, start));
}
int __acc_cdecl_qsort PeFile::Interval::compare(const void *p1, const void *p2) {
const interval *i1 = (const interval *) p1;
const interval *i2 = (const interval *) p2;
@@ -239,16 +231,28 @@ int __acc_cdecl_qsort PeFile::Interval::compare(const void *p1, const void *p2)
return 0;
}
void PeFile::Interval::add(unsigned start, unsigned len) {
if (ivnum == capacity)
ivarr = (interval *) realloc(ivarr, (capacity += 15) * sizeof(interval));
void PeFile::Interval::add_interval(unsigned start, unsigned len) {
if (ivnum == ivcapacity) {
ivcapacity += 15;
ivarr = (interval *) realloc(ivarr, mem_size(sizeof(interval), ivcapacity));
assert(ivarr != nullptr);
}
ivarr[ivnum].start = start;
ivarr[ivnum++].len = len;
ivarr[ivnum].len = len;
ivnum += 1;
}
void PeFile::Interval::add(const Interval *iv) {
for (unsigned ic = 0; ic < iv->ivnum; ic++)
add(iv->ivarr[ic].start, iv->ivarr[ic].len);
void PeFile::Interval::add_interval(const void *start, unsigned len) {
add_interval(ptr_udiff_bytes(start, base), len);
}
void PeFile::Interval::add_interval(const void *start, const void *end) {
add_interval(ptr_udiff_bytes(start, base), ptr_udiff_bytes(end, start));
}
void PeFile::Interval::add_interval(const Interval *other) {
for (unsigned ic = 0; ic < other->ivnum; ic++)
add_interval(other->ivarr[ic].start, other->ivarr[ic].len);
}
void PeFile::Interval::flatten() {
@@ -269,7 +273,7 @@ void PeFile::Interval::flatten() {
void PeFile::Interval::clear() {
for (unsigned ic = 0; ic < ivnum; ic++)
memset((char *) base + ivarr[ic].start, 0, ivarr[ic].len);
memset(base + ivarr[ic].start, 0, ivarr[ic].len);
}
void PeFile::Interval::dump() const {
@@ -282,26 +286,38 @@ void PeFile::Interval::dump() const {
// relocation handling
**************************************************************************/
namespace {
struct FixDeleter final { // helper so we don't leak memory on exceptions
LE32 **fix;
size_t count;
~FixDeleter() noexcept {
for (size_t i = 0; i < count; i++) {
delete[] fix[i];
fix[i] = nullptr;
}
}
};
} // namespace
void PeFile::Reloc::RelocationBlock::reset() noexcept {
rel = nullptr; // SPAN_0
rel1 = nullptr; // SPAN_0
count = 0;
}
static constexpr unsigned RELOC_INPLACE_OFFSET = 64 * 1024;
// TODO later: remove this in-place memory optimization hack and use an extra array
static constexpr size_t RELOC_INPLACE_OFFSET = 64 * 1024;
static constexpr size_t RELOC_ENTRY_SIZE = 5; // encoded size in bytes; actual encoding is private
static void reloc_entry_encode(SPAN_P(byte) buf, unsigned pos, unsigned reloc_type) {
if (reloc_type == 0 || reloc_type >= 16)
throwCantPack("bad reloc_type %#x %u", pos, reloc_type);
set_ne32(buf, pos);
buf[4] = (upx_uint8_t) reloc_type;
}
static void reloc_entry_decode(SPAN_P(const byte) buf, unsigned *pos, unsigned *reloc_type) {
*pos = get_ne32(buf);
*reloc_type = buf[4];
assert(*reloc_type > 0 && *reloc_type < 16);
}
static int __acc_cdecl_qsort reloc_entry_compare(const void *a, const void *b) {
const unsigned pos1 = get_ne32(a);
const unsigned pos2 = get_ne32(b);
if (pos1 != pos2)
return pos1 < pos2 ? -1 : 1;
const unsigned reloc_type1 = ((const byte *) a)[4];
const unsigned reloc_type2 = ((const byte *) b)[4];
if (reloc_type1 != reloc_type2)
return reloc_type1 < reloc_type2 ? -1 : 1;
return 0;
}
PeFile::Reloc::~Reloc() noexcept {
COMPILE_TIME_ASSERT(sizeof(BaseReloc) == 8)
@@ -311,18 +327,19 @@ PeFile::Reloc::~Reloc() noexcept {
}
// constructor for compression only
PeFile::Reloc::Reloc(byte *ptr, unsigned bytes) : start(ptr) {
PeFile::Reloc::Reloc(byte *ptr, unsigned bytes) {
assert(opt->cmd == CMD_COMPRESS);
start_size_in_bytes = mem_size(1, bytes);
start = ptr;
initSpans();
// fill counts
unsigned pos, type;
while (next(pos, type))
counts[type]++;
unsigned pos, reloc_type;
while (next(pos, reloc_type))
counts[reloc_type]++;
}
PeFile::Reloc::Reloc(unsigned relocnum) {
start_size_in_bytes = mem_size(4, relocnum, RELOC_INPLACE_OFFSET, 8192);
start_size_in_bytes = mem_size(RELOC_ENTRY_SIZE, relocnum, RELOC_INPLACE_OFFSET, 8192);
start = new byte[start_size_in_bytes]; // => transfer to oxrelocs[] in finish()
start_did_alloc = true;
initSpans();
@@ -335,7 +352,7 @@ void PeFile::Reloc::initSpans() {
rb.reset();
}
// check values so that we have better error messages (instead of getting a cryptic SPAN failure)
// explicitly check values so that we get better error messages (instead of a cryptic SPAN failure)
bool PeFile::Reloc::readFromRelocationBlock(byte *next_rb) { // set rb
assert(!start_did_alloc);
const unsigned off = ptr_udiff_bytes(next_rb, start);
@@ -366,7 +383,7 @@ bool PeFile::Reloc::readFromRelocationBlock(byte *next_rb) { // set rb
return true;
}
bool PeFile::Reloc::next(unsigned &result_pos, unsigned &result_type) {
bool PeFile::Reloc::next(unsigned &result_pos, unsigned &result_reloc_type) {
assert(!start_did_alloc);
for (;;) {
// search current block
@@ -374,9 +391,9 @@ bool PeFile::Reloc::next(unsigned &result_pos, unsigned &result_type) {
rb.count -= 1;
const unsigned value = *rb.rel1++;
result_pos = rb.rel->virtual_address + (value & 0xfff);
result_type = (value >> 12) & 0xf;
NO_printf("%x %d\n", result_pos, result_type);
if (result_type != 0)
result_reloc_type = (value >> 12) & 0xf;
NO_printf("Reloc::next %#x %d\n", result_pos, result_reloc_type);
if (result_reloc_type != IMAGE_REL_BASED_IGNORE)
return true; // success
}
// advance to next block
@@ -388,25 +405,28 @@ bool PeFile::Reloc::next(unsigned &result_pos, unsigned &result_type) {
}
}
void PeFile::Reloc::add(unsigned pos, unsigned type) {
void PeFile::Reloc::add_reloc(unsigned pos, unsigned reloc_type) {
assert(start_did_alloc);
if ((pos << 4) >> 4 != pos || type > 0xf)
throwCantPack("relocation overflow %u %u", pos, type);
set_le32(start_buf + (RELOC_INPLACE_OFFSET + 4 * counts[0]), (pos << 4) + (type & 0xf));
// assert(reloc_type != IMAGE_REL_BASED_IGNORE);
if (reloc_type == IMAGE_REL_BASED_IGNORE)
return;
auto entry_ptr = start_buf + mem_size(RELOC_ENTRY_SIZE, counts[0], RELOC_INPLACE_OFFSET);
reloc_entry_encode(entry_ptr, pos, reloc_type);
counts[0] += 1;
}
void PeFile::Reloc::finish(byte *(&result_ptr), unsigned &result_size) {
assert(start_did_alloc);
upx_qsort(raw_index_bytes(start_buf, RELOC_INPLACE_OFFSET, 4 * counts[0]), counts[0], 4,
le32_compare);
// sort in-place relocs
upx_qsort(raw_index_bytes(start_buf, RELOC_INPLACE_OFFSET, RELOC_ENTRY_SIZE * counts[0]),
counts[0], RELOC_ENTRY_SIZE, reloc_entry_compare);
auto finish_block = [](SPAN_S(BaseReloc) rel) -> byte * {
unsigned sob = rel->size_of_block;
assert(sob >= 10 && (sob & 1) == 0);
auto end = SPAN_TYPE_CAST(byte, rel) + sob;
while ((sob & 3) != 0) { // UPX: we want align by 4 here
*end++ = 0; // clear byte
*end++ = 0; // clear byte (i.e. write IMAGE_REL_BASED_IGNORE)
sob += 1;
}
rel->size_of_block = sob;
@@ -414,28 +434,32 @@ void PeFile::Reloc::finish(byte *(&result_ptr), unsigned &result_size) {
};
rb.reset();
unsigned prev = 0;
unsigned prev_pos = 0;
unsigned current_page = 0;
for (unsigned ic = 0; ic < counts[0]; ic++) {
const auto pos_ptr = start_buf + (RELOC_INPLACE_OFFSET + 4 * ic);
const unsigned pos = get_le32(pos_ptr);
if (ic > 0 && get_le32(pos_ptr - 4) == pos)
const auto entry_ptr = start_buf + mem_size(RELOC_ENTRY_SIZE, ic, RELOC_INPLACE_OFFSET);
unsigned pos, reloc_type;
reloc_entry_decode(entry_ptr, &pos, &reloc_type);
if (ic > 0 && pos == prev_pos)
if (!opt->force)
throwCantPack("duplicate relocs (try --force)");
if (ic == 0 || (pos ^ prev) >= 0x10000) {
prev = pos;
prev_pos = pos;
if (ic == 0 || pos - current_page >= 0x1000) {
current_page = pos & ~0xfff; // page start
// prepare next block for writing
byte *next_rb = (rb.rel == nullptr) ? start : finish_block(rb.rel);
rb.rel = (BaseReloc *) next_rb;
rb.rel1 = (LE16 *) (next_rb + 8);
rb.rel->virtual_address = (pos >> 4) & ~0xfff; // page start
rb.rel->virtual_address = current_page;
rb.rel->size_of_block = 8;
}
// write entry
if (ptr_diff_bytes(rb.rel1, pos_ptr) >= 0) {
// check for in-place overflow
if (ptr_diff_bytes(rb.rel1, entry_ptr) >= 0) {
// info: if this is indeed a valid file we must increase RELOC_INPLACE_OFFSET
throwCantPack("too many inplace relocs");
}
*rb.rel1++ = ((pos & 0xf) << 12) + ((pos >> 4) & 0xfff);
// write LE16 IMAGE_BASE_RELOCATION relocation
*rb.rel1++ = (reloc_type << 12) | (pos & 0xfff);
rb.rel->size_of_block += 2;
}
result_size = 0; // result_size can be 0 in 64-bit mode
@@ -446,7 +470,7 @@ void PeFile::Reloc::finish(byte *(&result_ptr), unsigned &result_size) {
assert(start_did_alloc);
result_ptr = start;
start_did_alloc = false;
#if 1 // safety, as we are really finished
#if DEBUG || 1 // safety, as we are really finished
ptr_invalidate_and_poison(start);
start_size_in_bytes = 0;
SPAN_INVALIDATE(start_buf);
@@ -466,10 +490,9 @@ void PeFile32::processRelocs() // pass1
const unsigned *const counts = rel.getcounts();
unsigned relocnum = 0;
unsigned ic;
for (ic = 1; ic < 16; ic++)
for (unsigned ic = 1; ic < 16; ic++)
relocnum += counts[ic];
for (ic = 0; ic < 16; ic++)
for (unsigned ic = 0; ic < 16; ic++)
NO_printf("reloc counts[%u] %u\n", ic, counts[ic]);
if (opt->win32_pe.strip_relocs || relocnum == 0) {
@@ -484,13 +507,13 @@ void PeFile32::processRelocs() // pass1
return;
}
for (ic = 4; ic < 16; ic++)
for (unsigned ic = IMAGE_REL_BASED_HIGHADJ; ic < 16; ic++)
if (counts[ic])
infoWarning("skipping unsupported relocation type %d (%d)", ic, counts[ic]);
LE32 *fix[4];
FixDeleter fixdel{fix, 0}; // don't leak memory
for (ic = 0; ic < 4; ic++) {
upx::ArrayDeleter<LE32 **> fixdel{fix, 0}; // don't leak memory
for (unsigned ic = 0; ic <= IMAGE_REL_BASED_HIGHLOW; ic++) {
fix[ic] = New(LE32, counts[ic]);
fixdel.count += 1;
}
@@ -499,18 +522,18 @@ void PeFile32::processRelocs() // pass1
memset(xcounts, 0, sizeof(xcounts));
// prepare sorting
unsigned pos, type;
while (rel.next(pos, type)) {
unsigned pos, reloc_type;
while (rel.next(pos, reloc_type)) {
// FIXME add check for relocations which try to modify the
// PE header or other relocation records
if (pos >= ih.imagesize)
continue; // skip out-of-bounds record
if (type < 4)
fix[type][xcounts[type]++] = pos - rvamin;
if (reloc_type <= IMAGE_REL_BASED_HIGHLOW)
fix[reloc_type][xcounts[reloc_type]++] = pos - rvamin;
}
// remove duplicated records
for (ic = 1; ic <= 3; ic++) {
for (unsigned ic = 1; ic <= IMAGE_REL_BASED_HIGHLOW; ic++) {
upx_qsort(fix[ic], xcounts[ic], 4, le32_compare);
unsigned prev = ~0u;
unsigned jc = 0;
@@ -523,7 +546,7 @@ void PeFile32::processRelocs() // pass1
}
// preprocess "type 3" relocation records
for (ic = 0; ic < xcounts[3]; ic++) {
for (unsigned ic = 0; ic < xcounts[IMAGE_REL_BASED_HIGHLOW]; ic++) {
pos = fix[3][ic] + rvamin;
unsigned w = get_le32(ibuf.subref("bad reloc type 3 %#x", pos, sizeof(LE32)));
set_le32(ibuf + pos, w - ih.imagebase - rvamin);
@@ -539,20 +562,21 @@ void PeFile32::processRelocs() // pass1
// deliberately corrupt. Sometimes it is even tuned to cause us trouble!
// Use an extra check to avoid AccessViolation (SIGSEGV) when appending
// the relocs into one array.
if ((4 * relocnum + 8192) < (sorelocs + 4 * (2 + xcounts[2] + xcounts[1])))
if ((4 * relocnum + 8192) <
(sorelocs + 4 * (2 + xcounts[IMAGE_REL_BASED_LOW] + xcounts[IMAGE_REL_BASED_HIGH])))
throwCantUnpack("Invalid relocs");
// append relocs type "LOW" then "HIGH"
for (ic = 2; ic; ic--) {
for (unsigned ic = IMAGE_REL_BASED_LOW; ic >= IMAGE_REL_BASED_HIGH; ic--) {
memcpy(orelocs + sorelocs, fix[ic], 4 * xcounts[ic]);
sorelocs += 4 * xcounts[ic];
set_le32(orelocs + sorelocs, 0);
if (xcounts[ic]) {
sorelocs += 4;
big_relocs |= 2 * ic;
}
}
info("Relocations: original size: %u bytes, preprocessed size: %u bytes",
(unsigned) IDSIZE(PEDIR_BASERELOC), sorelocs);
}
@@ -568,10 +592,9 @@ void PeFile64::processRelocs() // pass1
const unsigned *const counts = rel.getcounts();
unsigned relocnum = 0;
unsigned ic;
for (ic = 1; ic < 16; ic++)
for (unsigned ic = 1; ic < 16; ic++)
relocnum += counts[ic];
for (ic = 0; ic < 16; ic++)
for (unsigned ic = 0; ic < 16; ic++)
NO_printf("reloc counts[%u] %u\n", ic, counts[ic]);
if (opt->win32_pe.strip_relocs || relocnum == 0) {
@@ -586,13 +609,13 @@ void PeFile64::processRelocs() // pass1
return;
}
for (ic = 0; ic < 16; ic++)
if (ic != 10 && counts[ic])
for (unsigned ic = 0; ic < 16; ic++)
if (ic != IMAGE_REL_BASED_DIR64 && counts[ic])
infoWarning("skipping unsupported relocation type %d (%d)", ic, counts[ic]);
LE32 *fix[16];
FixDeleter fixdel{fix, 0}; // don't leak memory
for (ic = 0; ic < 16; ic++) {
upx::ArrayDeleter<LE32 **> fixdel{fix, 0}; // don't leak memory
for (unsigned ic = 0; ic < 16; ic++) {
fix[ic] = New(LE32, counts[ic]);
fixdel.count += 1;
}
@@ -601,18 +624,18 @@ void PeFile64::processRelocs() // pass1
memset(xcounts, 0, sizeof(xcounts));
// prepare sorting
unsigned pos, type;
while (rel.next(pos, type)) {
unsigned pos, reloc_type;
while (rel.next(pos, reloc_type)) {
// FIXME add check for relocations which try to modify the
// PE header or other relocation records
if (pos >= ih.imagesize)
continue; // skip out-of-bounds record
if (type < 16)
fix[type][xcounts[type]++] = pos - rvamin;
if (reloc_type < 16)
fix[reloc_type][xcounts[reloc_type]++] = pos - rvamin;
}
// remove duplicated records
for (ic = 1; ic < 16; ic++) {
for (unsigned ic = 1; ic < 16; ic++) {
upx_qsort(fix[ic], xcounts[ic], 4, le32_compare);
unsigned prev = ~0u;
unsigned jc = 0;
@@ -625,8 +648,8 @@ void PeFile64::processRelocs() // pass1
}
// preprocess "type 10" relocation records
for (ic = 0; ic < xcounts[10]; ic++) {
pos = fix[10][ic] + rvamin;
for (unsigned ic = 0; ic < xcounts[IMAGE_REL_BASED_DIR64]; ic++) {
pos = fix[IMAGE_REL_BASED_DIR64][ic] + rvamin;
upx_uint64_t w = get_le64(ibuf.subref("bad reloc 10 %#x", pos, sizeof(LE64)));
set_le64(ibuf + pos, w - ih.imagebase - rvamin);
}
@@ -634,29 +657,9 @@ void PeFile64::processRelocs() // pass1
ibuf.fill(IDADDR(PEDIR_BASERELOC), IDSIZE(PEDIR_BASERELOC), FILLVAL);
mb_orelocs.alloc(mem_size(4, relocnum, 8192)); // 8192 - safety
orelocs = mb_orelocs; // => orelocs now is a SPAN_S
sorelocs = optimizeReloc(xcounts[10], (byte *) fix[10], orelocs, ibuf + rvamin,
ibufgood - rvamin, 64, true, &big_relocs);
sorelocs = optimizeReloc(xcounts[IMAGE_REL_BASED_DIR64], (byte *) fix[IMAGE_REL_BASED_DIR64],
orelocs, ibuf + rvamin, ibufgood - rvamin, 64, true, &big_relocs);
#if 0
// Malware that hides behind UPX often has PE header info that is
// deliberately corrupt. Sometimes it is even tuned to cause us trouble!
// Use an extra check to avoid AccessViolation (SIGSEGV) when appending
// the relocs into one array.
if ((4 * relocnum + 8192) < (sorelocs + 4 * (2 + xcounts[2] + xcounts[1])))
throwCantUnpack("Invalid relocs");
// append relocs type "LOW" then "HIGH"
for (ic = 2; ic; ic--) {
memcpy(orelocs + sorelocs, fix[ic], 4 * xcounts[ic]);
sorelocs += 4 * xcounts[ic];
set_le32(orelocs + sorelocs, 0);
if (xcounts[ic]) {
sorelocs += 4;
big_relocs |= 2 * ic;
}
}
#endif
info("Relocations: original size: %u bytes, preprocessed size: %u bytes",
(unsigned) IDSIZE(PEDIR_BASERELOC), sorelocs);
}
@@ -751,7 +754,7 @@ class PeFile::ImportLinker final : public ElfLinkerAMD64 {
unsigned thunk_size; // 4 or 8 bytes
void add(const char *dll, const char *proc, unsigned ordinal) {
void add_import(const char *dll, const char *proc, unsigned ordinal) {
TStr sdll(name_for_dll(dll, dll_name_id));
TStr desc_name(name_for_dll(dll, descriptor_id));
@@ -830,20 +833,20 @@ public:
}
template <typename C>
void add(const C *dll, unsigned ordinal) {
void add_import(const C *dll, unsigned ordinal) {
ACC_COMPILE_TIME_ASSERT(sizeof(C) == 1) // "char" or "byte"
assert(ordinal < 0x10000);
char ord[1 + 5 + 1];
upx_safe_snprintf(ord, sizeof(ord), "%c%05u", ordinal_id, ordinal);
add((const char *) dll, ordinal ? ord : nullptr, ordinal);
add_import((const char *) dll, ordinal ? ord : nullptr, ordinal);
}
template <typename C1, typename C2>
void add(const C1 *dll, const C2 *proc) {
void add_import(const C1 *dll, const C2 *proc) {
ACC_COMPILE_TIME_ASSERT(sizeof(C1) == 1) // "char" or "byte"
ACC_COMPILE_TIME_ASSERT(sizeof(C2) == 1) // "char" or "byte"
assert(proc);
add((const char *) dll, (const char *) proc, 0);
add_import((const char *) dll, (const char *) proc, 0);
}
unsigned build() {
@@ -914,7 +917,7 @@ public:
};
/*static*/ const char PeFile::ImportLinker::zeros[sizeof(import_desc)] = {0};
void PeFile::addKernelImport(const char *name) { ilinker->add(kernelDll(), name); }
void PeFile::addKernelImport(const char *name) { ilinker->add_import(kernelDll(), name); }
void PeFile::addStubImports() {
addKernelImport("LoadLibraryA");
@@ -1059,14 +1062,14 @@ unsigned PeFile::processImports0(ord_mask_t ord_mask) // pass 1
if (idlls[ic]->ordinal)
for (const LEXX *tarr = idlls[ic]->lookupt; *tarr; tarr++)
if (*tarr & ord_mask) {
ilinker->add(kernelDll(), *tarr & 0xffff);
ilinker->add_import(kernelDll(), *tarr & 0xffff);
kernel32ordinal = true;
}
} else if (!ilinker->hasDll(idlls[ic]->name)) {
if (idlls[ic]->shname && !idlls[ic]->ordinal)
ilinker->add(idlls[ic]->name, idlls[ic]->shname);
ilinker->add_import(idlls[ic]->name, idlls[ic]->shname);
else
ilinker->add(idlls[ic]->name, idlls[ic]->ordinal);
ilinker->add_import(idlls[ic]->name, idlls[ic]->ordinal);
}
}
@@ -1099,19 +1102,19 @@ unsigned PeFile::processImports0(ord_mask_t ord_mask) // pass 1
const unsigned take2 = 1 + strlen(ibuf.subref("bad import name %#x", skip2, 1));
memcpy(ppi, ibuf.subref("bad import name %#x", skip2, take2), take2);
ppi += take2;
names.add(*tarr, 2 + take2);
names.add_interval(*tarr, 2 + take2);
}
ppi++;
const unsigned esize = ptr_udiff_bytes(tarr, idlls[ic]->lookupt);
lookups.add(idlls[ic]->lookupt, esize);
lookups.add_interval(idlls[ic]->lookupt, esize);
if (ptr_diff_bytes(ibuf.subref("bad import name %#x", idlls[ic]->iat, 1),
idlls[ic]->lookupt) != 0) {
memcpy(ibuf.subref("bad import name %#x", idlls[ic]->iat, esize), idlls[ic]->lookupt,
esize);
iats.add(idlls[ic]->iat, esize);
iats.add_interval(idlls[ic]->iat, esize);
}
names.add(idlls[ic]->name, strlen(idlls[ic]->name) + 1 + 1);
names.add_interval(idlls[ic]->name, strlen(idlls[ic]->name) + 1 + 1);
}
ppi += 4;
assert(ppi < oimport + soimport);
@@ -1141,15 +1144,15 @@ unsigned PeFile::processImports0(ord_mask_t ord_mask) // pass 1
im->dllname = ptr_udiff_bytes(dlls[idlls[ic]->original_position].name, ibuf);
}
} else {
iats.add(im_start, sizeof(import_desc) * dllnum);
iats.add_interval(im_start, sizeof(import_desc) * dllnum);
// zero unneeded data
iats.clear();
lookups.clear();
}
names.clear();
iats.add(&names);
iats.add(&lookups);
iats.add_interval(&names);
iats.add_interval(&lookups);
iats.flatten();
for (unsigned ic = 0; ic < iats.ivnum; ic++)
ilen += iats.ivarr[ic].len;
@@ -1162,7 +1165,7 @@ unsigned PeFile::processImports0(ord_mask_t ord_mask) // pass 1
// export handling
**************************************************************************/
PeFile::Export::Export(char *_base) : base(_base), iv(_base) {
PeFile::Export::Export(char *_base) : base(_base), iv((byte *) _base) {
COMPILE_TIME_ASSERT(sizeof(export_dir_t) == 40)
COMPILE_TIME_ASSERT_ALIGNED1(export_dir_t)
ename = functionptrs = ordinals = nullptr;
@@ -1187,7 +1190,7 @@ PeFile::Export::~Export() noexcept {
void PeFile::Export::convert(unsigned eoffs, unsigned esize) {
memcpy(&edir, base + eoffs, sizeof(export_dir_t));
size = sizeof(export_dir_t);
iv.add(eoffs, size);
iv.add_interval(eoffs, size);
if (!edir.name || eoffs + esize <= (unsigned) edir.name) {
char msg[50];
@@ -1197,13 +1200,13 @@ void PeFile::Export::convert(unsigned eoffs, unsigned esize) {
unsigned len = strlen(base + edir.name) + 1;
ename = strdup(base + edir.name);
size += len;
iv.add(edir.name, len);
iv.add_interval(edir.name, len);
len = 4 * edir.functions;
functionptrs = New(char, len + 1);
memcpy(functionptrs, base + edir.addrtable, len);
size += len;
iv.add(edir.addrtable, len);
iv.add_interval(edir.addrtable, len);
unsigned ic;
names = New(char *, edir.names + edir.functions + 1);
@@ -1212,9 +1215,9 @@ void PeFile::Export::convert(unsigned eoffs, unsigned esize) {
len = strlen(n) + 1;
names[ic] = strdup(n);
size += len;
iv.add(get_le32(base + edir.nameptrtable + ic * 4), len);
iv.add_interval(get_le32(base + edir.nameptrtable + ic * 4), len);
}
iv.add(edir.nameptrtable, 4 * edir.names);
iv.add_interval(edir.nameptrtable, 4 * edir.names);
size += 4 * edir.names;
LE32 *fp = (LE32 *) functionptrs;
@@ -1223,7 +1226,7 @@ void PeFile::Export::convert(unsigned eoffs, unsigned esize) {
if (fp[ic] >= eoffs && fp[ic] < eoffs + esize) {
char *forw = base + fp[ic];
len = strlen(forw) + 1;
iv.add(forw, len);
iv.add_interval(forw, len);
size += len;
names[ic + edir.names] = strdup(forw);
} else
@@ -1233,7 +1236,7 @@ void PeFile::Export::convert(unsigned eoffs, unsigned esize) {
ordinals = New(char, len + 1);
memcpy(ordinals, base + edir.ordinaltable, len);
size += len;
iv.add(edir.ordinaltable, len);
iv.add_interval(edir.ordinaltable, len);
iv.flatten();
if (iv.ivnum == 1)
iv.clear();
@@ -1252,6 +1255,7 @@ void PeFile::Export::build(char *newbase, unsigned newoffs) {
edir.addrtable = newoffs + ptr_diff_bytes(functionp, newbase);
edir.ordinaltable = newoffs + ptr_diff_bytes(ordinalp, newbase);
assert(ordinals != nullptr); // pacify clang-tidy
memcpy(ordinalp, ordinals, 2 * edir.names);
edir.name = newoffs + ptr_diff_bytes(enamep, newbase);
@@ -1322,11 +1326,11 @@ struct PeFile::tls_traits<LE32> final {
byte _[8]; // zero init, characteristics
};
static const unsigned sotls = 24;
static const unsigned cb_size = 4;
static constexpr unsigned sotls = 24;
static constexpr unsigned cb_size = 4;
typedef unsigned cb_value_t;
static const unsigned reloc_type = 3;
static const int tls_handler_offset_reloc = 4;
static constexpr unsigned reloc_type = IMAGE_REL_BASED_HIGHLOW;
static constexpr int tls_handler_offset_reloc = 4;
};
template <>
@@ -1339,11 +1343,11 @@ struct PeFile::tls_traits<LE64> final {
byte _[8]; // zero init, characteristics
};
static const unsigned sotls = 40;
static const unsigned cb_size = 8;
static constexpr unsigned sotls = 40;
static constexpr unsigned cb_size = 8;
typedef upx_uint64_t cb_value_t;
static const unsigned reloc_type = 10;
static const int tls_handler_offset_reloc = -1; // no need to relocate
static constexpr unsigned reloc_type = IMAGE_REL_BASED_DIR64;
static constexpr int tls_handler_offset_reloc = -1; // no need to relocate
};
template <typename LEXX>
@@ -1352,7 +1356,7 @@ void PeFile::processTls1(Interval *iv, typename tls_traits<LEXX>::cb_value_t ima
{
typedef typename tls_traits<LEXX>::tls tls;
typedef typename tls_traits<LEXX>::cb_value_t cb_value_t;
const unsigned cb_size = tls_traits<LEXX>::cb_size;
constexpr unsigned cb_size = tls_traits<LEXX>::cb_size;
COMPILE_TIME_ASSERT(sizeof(tls) == tls_traits<LEXX>::sotls)
COMPILE_TIME_ASSERT_ALIGNED1(tls)
@@ -1404,7 +1408,7 @@ void PeFile::processTls1(Interval *iv, typename tls_traits<LEXX>::cb_value_t ima
unsigned pos, type;
while (rel.next(pos, type))
if (pos >= tlsdatastart && pos < tlsdataend)
iv->add(pos, type);
iv->add_interval(pos, type);
sotls = sizeof(tls) + tlsdataend - tlsdatastart;
// if TLS callbacks are used, we need two more {D|Q}WORDS at the end of the TLS
@@ -1439,21 +1443,22 @@ void PeFile::processTls2(Reloc *const rel, const Interval *const iv, unsigned ne
{
typedef typename tls_traits<LEXX>::tls tls;
typedef typename tls_traits<LEXX>::cb_value_t cb_value_t;
const unsigned cb_size = tls_traits<LEXX>::cb_size;
const unsigned reloc_type = tls_traits<LEXX>::reloc_type;
const int tls_handler_offset_reloc = tls_traits<LEXX>::tls_handler_offset_reloc;
constexpr unsigned cb_size = tls_traits<LEXX>::cb_size;
constexpr unsigned reloc_type = tls_traits<LEXX>::reloc_type;
static_assert(reloc_type > IMAGE_REL_BASED_IGNORE && reloc_type < 16);
constexpr int tls_handler_offset_reloc = tls_traits<LEXX>::tls_handler_offset_reloc;
if (sotls == 0)
return;
// add new relocation entries
if (tls_handler_offset > 0 && tls_handler_offset_reloc > 0)
rel->add(tls_handler_offset + tls_handler_offset_reloc, reloc_type);
rel->add_reloc(tls_handler_offset + tls_handler_offset_reloc, reloc_type);
unsigned ic;
// NEW: if TLS callbacks are used, relocate the VA of the callback chain, too - Stefan Widmann
for (ic = 0; ic < (use_tls_callbacks ? 4 * cb_size : 3 * cb_size); ic += cb_size)
rel->add(newaddr + ic, reloc_type);
rel->add_reloc(newaddr + ic, reloc_type);
SPAN_S_VAR(tls, const tlsp, mb_otls);
// now the relocation entries in the tls data area
@@ -1465,9 +1470,9 @@ void PeFile::processTls2(Reloc *const rel, const Interval *const iv, unsigned ne
if (kc < tlsp->dataend && kc >= tlsp->datastart) {
kc += newaddr + sizeof(tls) - tlsp->datastart;
*p = kc + imagebase;
rel->add(kc, iv->ivarr[ic].len);
rel->add_reloc(kc, iv->ivarr[ic].len);
} else
rel->add(kc - imagebase, iv->ivarr[ic].len);
rel->add_reloc(kc - imagebase, iv->ivarr[ic].len);
}
const unsigned tls_data_size = tlsp->dataend - tlsp->datastart;
@@ -1486,7 +1491,7 @@ void PeFile::processTls2(Reloc *const rel, const Interval *const iv, unsigned ne
pp = otls + (sotls - 1 * cb_size);
*(LEXX *) raw_bytes(pp, sizeof(LEXX)) = 0; // end of one-item list
// add relocation for TLS handler offset
rel->add(newaddr + sotls - 2 * cb_size, reloc_type);
rel->add_reloc(newaddr + sotls - 2 * cb_size, reloc_type);
}
}
@@ -1504,7 +1509,7 @@ void PeFile::processLoadConf(Interval *iv) // pass 1
soloadconf = get_le32(loadconf);
if (soloadconf == 0)
return;
static const unsigned MAX_SOLOADCONF = 256; // XXX FIXME: Why?
static constexpr unsigned MAX_SOLOADCONF = 256; // XXX FIXME: Why?
if (soloadconf > MAX_SOLOADCONF)
info("Load Configuration directory %u > %u", soloadconf, MAX_SOLOADCONF);
@@ -1516,7 +1521,7 @@ void PeFile::processLoadConf(Interval *iv) // pass 1
unsigned pos, type;
while (rel.next(pos, type))
if (pos >= lcaddr && pos < lcaddr + soloadconf) {
iv->add(pos - lcaddr, type);
iv->add_interval(pos - lcaddr, type);
NO_printf("loadconf reloc detected: %x\n", pos);
}
@@ -1531,7 +1536,7 @@ void PeFile::processLoadConf(Reloc *rel, const Interval *iv,
// now we have the address of the new load config table
// so we can create the new relocation entries
for (unsigned ic = 0; ic < iv->ivnum; ic++) {
rel->add(iv->ivarr[ic].start + newaddr, iv->ivarr[ic].len);
rel->add_reloc(iv->ivarr[ic].start + newaddr, iv->ivarr[ic].len);
NO_printf("loadconf reloc added: %x %d\n", iv->ivarr[ic].start + newaddr,
iv->ivarr[ic].len);
}
@@ -1815,14 +1820,14 @@ void PeFile::Resource::dump(const upx_rnode *node, unsigned level) const {
void PeFile::Resource::clear(byte *node, unsigned level, Interval *iv) {
if (level == 3)
iv->add(node, sizeof(res_data));
iv->add_interval(node, sizeof(res_data));
else {
const res_dir *const rd = (res_dir *) node;
const unsigned n = rd->identr + rd->namedentr;
const res_dir_entry *rde = rd->entries;
for (unsigned ic = 0; ic < n; ic++, rde++)
clear(newstart + (rde->child & 0x7fffffff), level + 1, iv);
iv->add(rd, rd->Sizeof());
iv->add_interval(rd, rd->Sizeof());
}
}
@@ -1919,11 +1924,14 @@ void PeFile::processResources(Resource *res) {
SPAN_S_VAR(byte, ores, oresources + res->dirsize());
char *keep_icons = nullptr; // icon ids in the first icon group
upx::ArrayDeleter<char **> keep_icons_deleter{&keep_icons, 1}; // don't leak memory
unsigned iconsin1stdir = 0;
if (opt->win32_pe.compress_icons == 2)
while (res->next()) // there is no rewind() in Resource
if (res->itype() == RT_GROUP_ICON && iconsin1stdir == 0) {
iconsin1stdir = get_le16(ibuf.subref("bad resoff %#x", res->offs() + 4, 2));
delete[] keep_icons;
keep_icons = nullptr;
keep_icons = New(char, 1 + iconsin1stdir * 9);
*keep_icons = 0;
for (unsigned ic = 0; ic < iconsin1stdir; ic++)
@@ -2007,8 +2015,6 @@ void PeFile::processResources(Resource *res) {
}
soresources = ptr_diff_bytes(ores, oresources);
delete[] keep_icons;
keep_icons = nullptr;
if (!res->clear()) {
// The area occupied by the resource directory is not continuous
// so to still support uncompression, I can't zero this area.
@@ -2196,7 +2202,7 @@ unsigned PeFile::readSections(unsigned objs, unsigned usize, unsigned ih_fileali
isection[ic].vsize = isection[ic].size;
if ((isection[ic].flags & IMAGE_SCN_CNT_UNINITIALIZED_DATA) ||
isection[ic].rawdataptr == 0 || (isection[ic].flags & IMAGE_SCN_LNK_INFO)) {
// holes.add(isection[ic].vaddr,isection[ic].vsize);
// holes.add_interval(isection[ic].vaddr, isection[ic].vsize);
continue;
}
if (isection[ic].vaddr + isection[ic].size > usize)
@@ -2724,10 +2730,10 @@ void PeFile::rebuildRelocs(SPAN_S(byte) & extra_info, unsigned bits, unsigned fl
if (big & 6) { // add 16-bit relocations
SPAN_S_VAR(const LE32, q, SPAN_TYPE_CAST(const LE32, rdata));
while (*q)
rel.add(*q++ + rvamin, (big & 4) ? 2 : 1);
rel.add_reloc(*q++ + rvamin, (big & 4) ? IMAGE_REL_BASED_LOW : IMAGE_REL_BASED_HIGH);
if ((big & 6) == 6)
while (*++q)
rel.add(*q + rvamin, 1);
rel.add_reloc(*q + rvamin, IMAGE_REL_BASED_HIGH);
// rdata = (const byte *) raw_bytes(q, 0); // advance rdata
}
@@ -2738,7 +2744,8 @@ void PeFile::rebuildRelocs(SPAN_S(byte) & extra_info, unsigned bits, unsigned fl
set_le32(p, get_le32(p) + imagebase + rvamin);
else
set_le64(p, get_le64(p) + imagebase + rvamin);
rel.add(rvamin + get_le32(wrkmem + 4 * ic), bits == 32 ? 3 : 10);
rel.add_reloc(rvamin + get_le32(wrkmem + 4 * ic),
bits == 32 ? IMAGE_REL_BASED_HIGHLOW : IMAGE_REL_BASED_DIR64);
}
rel.finish(oxrelocs, soxrelocs);
@@ -2948,10 +2955,12 @@ void PeFile::unpack0(OutputFile *fo, const ht &ih, ht &oh, ord_mask_t ord_mask,
if (iobjs > 2) {
// read the noncompressed section
const unsigned size = isection[2].size;
ibuf.dealloc();
ibuf.alloc(isection[2].size);
ibuf.alloc(size + 1);
fi->seek(isection[2].rawdataptr, SEEK_SET);
fi->readx(ibuf, ibufgood = isection[2].size);
fi->readx(ibuf, ibufgood = size);
ibuf[size] = 0; // allow strlen() up to 'size'
}
// unfilter
@@ -3106,6 +3115,9 @@ PeFile32::~PeFile32() noexcept {}
void PeFile32::readPeHeader() {
fi->readx(&ih, sizeof(ih));
if (31 < (unsigned) ih.subsystem) {
throwCantPack("bad ih.subsystem 0x%x", (unsigned) ih.subsystem);
}
isefi = ((1u << ih.subsystem) &
((1u << IMAGE_SUBSYSTEM_EFI_APPLICATION) |
(1u << IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER) |
@@ -3159,6 +3171,9 @@ PeFile64::~PeFile64() noexcept {}
void PeFile64::readPeHeader() {
fi->readx(&ih, sizeof(ih));
if (31 < (unsigned) ih.subsystem) {
throwCantPack("bad ih.subsystem 0x%x", (unsigned) ih.subsystem);
}
isefi = ((1u << ih.subsystem) &
((1u << IMAGE_SUBSYSTEM_EFI_APPLICATION) |
(1u << IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER) |
+25 -10
View File
@@ -356,9 +356,24 @@ protected:
RT_LAST
};
enum { // 4-bit reloc_type in IMAGE_BASE_RELOCATION relocations
IMAGE_REL_BASED_ABSOLUTE = 0, // this relocation is ignored
IMAGE_REL_BASED_IGNORE = 0, // (unofficial UPX name)
IMAGE_REL_BASED_HIGH = 1,
IMAGE_REL_BASED_LOW = 2,
IMAGE_REL_BASED_HIGHLOW = 3,
IMAGE_REL_BASED_HIGHADJ = 4,
IMAGE_REL_BASED_MIPS_JMPADDR = 5,
IMAGE_REL_BASED_ARM_MOV32 = 5,
IMAGE_REL_BASED_THUMB_MOV32 = 7,
IMAGE_REL_BASED_MIPS_JMPADDR16 = 9,
IMAGE_REL_BASED_IA64_IMM64 = 9,
IMAGE_REL_BASED_DIR64 = 10,
};
class Interval final : private noncopyable {
unsigned capacity = 0;
void *base = nullptr;
SPAN_0(byte) base = nullptr;
unsigned ivcapacity = 0; // for ivarr
public:
struct interval {
unsigned start, len;
@@ -366,13 +381,13 @@ protected:
struct interval *ivarr = nullptr;
unsigned ivnum = 0;
explicit Interval(void *b);
explicit Interval(SPAN_P(byte));
~Interval() noexcept;
void add(unsigned start, unsigned len);
void add(const void *start, unsigned len);
void add(const void *start, const void *end);
void add(const Interval *iv);
void add_interval(unsigned start, unsigned len);
void add_interval(const void *start, unsigned len);
void add_interval(const void *start, const void *end);
void add_interval(const Interval *other);
void flatten();
void clear();
@@ -392,7 +407,7 @@ protected:
struct alignas(1) BaseReloc { // IMAGE_BASE_RELOCATION
LE32 virtual_address;
LE32 size_of_block;
// LE16 rel1[COUNT]; // COUNT == (size_of_block - 8) / 2
// LE16 rel1[COUNT]; // actual relocations; COUNT == (size_of_block - 8) / 2
};
struct RelocationBlock {
SPAN_0(BaseReloc) rel = nullptr;
@@ -411,10 +426,10 @@ protected:
explicit Reloc(unsigned relocnum);
~Reloc() noexcept;
//
bool next(unsigned &result_pos, unsigned &result_type);
bool next(unsigned &result_pos, unsigned &result_reloc_type);
const unsigned *getcounts() const { return counts; }
//
void add(unsigned pos, unsigned type);
void add_reloc(unsigned pos, unsigned reloc_type);
void finish(byte *(&result_ptr), unsigned &result_size); // => transfer ownership
};
+1 -1
View File
@@ -25,7 +25,7 @@ endif
ifndef top_srcdir
top_srcdir := $(srcdir)/../..
endif
include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local)
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
# update $PATH for our special stub build tools
ifneq ($(wildcard $(HOME)/local/bin/bin-upx/upx-stubtools-check-version),)
+155 -154
View File
@@ -1,5 +1,5 @@
/* amd64-linux.elf-fold.h
created from amd64-linux.elf-fold.bin, 3281 (0xcd1) bytes
created from amd64-linux.elf-fold.bin, 3305 (0xce9) bytes
This file is part of the UPX executable compressor.
@@ -32,20 +32,20 @@
/* clang-format off */
#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 3281
#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0x4d0b30b2
#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0x1e37e8f7
#define STUB_AMD64_LINUX_ELF_FOLD_SIZE 3305
#define STUB_AMD64_LINUX_ELF_FOLD_ADLER32 0x23863cda
#define STUB_AMD64_LINUX_ELF_FOLD_CRC32 0xb35fe724
unsigned char stub_amd64_linux_elf_fold[3281] = {
unsigned char stub_amd64_linux_elf_fold[3305] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 62, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0,
/* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
/* 0x0060 */ 209, 12, 0, 0, 0, 0, 0, 0,209, 12, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 233, 12, 0, 0, 0, 0, 0, 0,233, 12, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 209, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 233, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,232, 74, 0, 0,
@@ -66,7 +66,7 @@ unsigned char stub_amd64_linux_elf_fold[3281] = {
/* 0x01a0 */ 239, 8, 73,141,119,248, 72,193,233, 3,243, 72,165, 72,141,103,
/* 0x01b0 */ 8,252, 75,141, 12, 38,139, 67,252,131,224, 1, 72, 1,193, 65,
/* 0x01c0 */ 89, 94, 95, 88, 72,129,236, 0, 8, 0, 0, 72,137,226, 80, 73,
/* 0x01d0 */ 137,197, 73,137,232,232, 80, 6, 0, 0, 72,129,196, 8, 8, 0,
/* 0x01d0 */ 137,197, 73,137,232,232,106, 6, 0, 0, 72,129,196, 8, 8, 0,
/* 0x01e0 */ 0, 72,137, 68, 36, 32, 91, 73,139,181,160, 0, 0, 0, 76,137,
/* 0x01f0 */ 239,232, 97, 0, 0, 0, 76,137,239,232,101, 0, 0, 0,133,219,
/* 0x0200 */ 120, 31, 77, 41,201, 65,137,216,106, 2, 89,106, 1, 90,190, 0,
@@ -97,150 +97,151 @@ unsigned char stub_amd64_linux_elf_fold[3281] = {
/* 0x0390 */ 137,242, 72,137,239, 72,137,198,232,219,254,255,255,139, 84, 36,
/* 0x03a0 */ 16, 72,139, 3, 72, 1, 83, 8, 72, 41,208, 72,133,192, 72,137,
/* 0x03b0 */ 3,233, 20,255,255,255, 72,131,196, 40, 91, 93, 65, 92, 65, 93,
/* 0x03c0 */ 195, 72,133,255, 73,137,209,116, 54, 64,246,199, 1,117, 48, 72,
/* 0x03d0 */ 139, 15, 65,137,240, 76, 57,193,116, 18, 72,131,249, 1, 15,148,
/* 0x03e0 */ 194, 49,192,133,246, 15,149,192,133,194,116, 8, 76,137, 7, 76,
/* 0x03f0 */ 137, 79, 8,195, 72,133,201,116, 6, 72,131,199, 16,235,208,195,
/* 0x0400 */ 65, 87, 73,137,255, 65, 86, 65, 85, 65, 84, 73,137,252, 85, 83,
/* 0x0410 */ 72,131,236,104, 76, 3,103, 32, 72,133,246, 72,139,132, 36,160,
/* 0x0420 */ 0, 0, 0,137, 84, 36, 60, 72,137,116, 36, 64, 72,137, 76, 36,
/* 0x0430 */ 48, 76,137, 68, 36, 40, 76,137, 76, 36, 32, 72,139, 56, 65, 15,
/* 0x0440 */ 183, 87, 16,116, 76, 72,139, 71, 32, 72, 1,248, 72, 43,120, 72,
/* 0x0450 */ 102,131,250, 2,117, 4, 72,139,120, 16, 72,139,112, 40, 69, 49,
/* 0x0460 */ 201, 65,131,200,255, 49,210,185, 50, 0, 0, 0, 72,141, 4, 62,
/* 0x0470 */ 72,137, 68, 36, 72,232,176,253,255,255,102, 65,131,127, 16, 2,
/* 0x0480 */ 73,137,198, 15,133,172, 0, 0, 0, 69, 49,246,233,164, 0, 0,
/* 0x0490 */ 0,102,131,250, 3, 65, 15,183, 87, 56,185, 16, 0, 0, 0,184,
/* 0x04a0 */ 0, 0, 0, 0, 73,137,248, 76,137,230, 15, 68,200, 72,131,205,
/* 0x04b0 */ 255, 49,219, 49,255,131,193, 34,255,202,120, 33,131, 62, 1,117,
/* 0x04c0 */ 22, 72,139, 70, 16, 72, 57,232, 72, 15, 66,232, 72, 3, 70, 40,
/* 0x04d0 */ 72, 57,195, 72, 15, 66,216, 72,131,198, 56,235,219, 72,129,229,
/* 0x04e0 */ 0,240,255,255, 72, 41,235, 72,129,195,255, 15, 0, 0, 72,129,
/* 0x04f0 */ 227, 0,240,255,255,246,193, 16,116, 5, 72,137,239,235, 19, 72,
/* 0x0500 */ 133,237,117, 14,137,200, 76,137,199,131,200, 16, 77,133,192, 15,
/* 0x0510 */ 69,200, 69, 49,201, 65,131,200,255, 49,210, 72,137,222,232, 7,
/* 0x0520 */ 253,255,255, 72,137,199, 72,141, 4, 3, 73,137,254, 72,137, 68,
/* 0x0530 */ 36, 72, 73, 41,238,102, 65,131,127, 56, 0,199, 68, 36, 28, 0,
/* 0x0540 */ 0, 0, 0, 15,132,192, 2, 0, 0, 72,131,124, 36, 64, 0,116,
/* 0x0550 */ 35, 65,131, 60, 36, 6,117, 28, 73,139, 84, 36, 16, 72,139,124,
/* 0x0560 */ 36, 48,190, 3, 0, 0, 0, 76, 1,242,232, 82,254,255,255,233,
/* 0x0570 */ 126, 2, 0, 0, 65,131, 60, 36, 1, 15,133,115, 2, 0, 0, 73,
/* 0x0580 */ 131,124, 36, 40, 0, 15,132,103, 2, 0, 0, 65,139, 76, 36, 4,
/* 0x0590 */ 199, 68, 36, 24, 64, 98, 81,115,131,225, 7,193,225, 2,211,108,
/* 0x05a0 */ 36, 24,131,100, 36, 24, 7, 72,131,124, 36, 64, 0,116, 75, 73,
/* 0x05b0 */ 131,124, 36, 8, 0,117, 67, 73,139, 84, 36, 16, 72,139,124, 36,
/* 0x05c0 */ 48,190, 3, 0, 0, 0, 76, 1,242, 73, 3, 87, 32,232,239,253,
/* 0x05d0 */ 255,255, 73, 15,183, 87, 56, 72,139,124, 36, 48,190, 5, 0, 0,
/* 0x05e0 */ 0,232,219,253,255,255, 73, 15,183, 87, 54, 72,139,124, 36, 48,
/* 0x05f0 */ 190, 4, 0, 0, 0,232,199,253,255,255, 73,139,124, 36, 16, 73,
/* 0x0600 */ 139, 68, 36, 40,185, 50, 0, 0, 0, 73,139,116, 36, 32, 76, 1,
/* 0x0610 */ 247, 72, 1,248, 72,137,250, 72,137,253,129,226,255, 15, 0, 0,
/* 0x0620 */ 72,137, 68, 36, 8, 72,137,240, 72, 1,208, 72, 41,213, 72,137,
/* 0x0630 */ 116, 36, 80, 72,137, 68, 36, 16,139, 68, 36, 24, 76,141, 44, 55,
/* 0x0640 */ 139,116, 36, 24, 72,137,124, 36, 88,131,200, 2, 72,131,124, 36,
/* 0x0650 */ 64, 0, 15, 69,240,137,240,131,224,251, 72,131,124, 36, 64, 0,
/* 0x0660 */ 15, 69,240, 73,139, 68, 36, 8, 72, 41,208,131,202,255, 72,131,
/* 0x0670 */ 124, 36, 64, 0,117, 6,139, 84, 36, 60,177, 18, 65,137,208,137,
/* 0x0680 */ 242, 72,139,116, 36, 16, 73,137,193, 72,137,239,232,153,251,255,
/* 0x0690 */ 255, 72, 57,197, 15,133, 32, 1, 0, 0, 72,131,124, 36, 64, 0,
/* 0x06a0 */ 116, 25, 72,139, 76, 36, 32, 72,139, 84, 36, 40, 72,141,116, 36,
/* 0x06b0 */ 80, 72,139,124, 36, 64,232,245,251,255,255,246, 68, 36, 24, 2,
/* 0x06c0 */ 116, 22, 68,137,233, 76,137,239, 49,192,247,217,252,129,225,255,
/* 0x06d0 */ 15, 0, 0,243,170, 73,137,253, 72,131,124, 36, 64, 0, 15,132,
/* 0x06e0 */ 224, 0, 0, 0,199, 68, 36, 4, 0, 0, 0, 0, 72,184,255,255,
/* 0x06f0 */ 255,255, 1, 0, 0, 0, 73, 35, 4, 36, 72,186, 1, 0, 0, 0,
/* 0x0700 */ 1, 0, 0, 0, 72, 57,208, 15,133,152, 0, 0, 0, 73,139, 84,
/* 0x0710 */ 36, 40, 73,139, 76, 36, 16, 73, 59, 84, 36, 32, 72,141, 4, 10,
/* 0x0720 */ 74,141, 28, 48,117, 14,137,216,247,216, 37,255, 15, 0, 0,131,
/* 0x0730 */ 248, 3,119, 58, 73,131,124, 36, 8, 0, 74,141, 92, 49, 12,116,
/* 0x0740 */ 45, 69, 49,201, 65,131,200,255, 49,255,185, 34, 0, 0, 0,186,
/* 0x0750 */ 3, 0, 0, 0,190, 0, 16, 0, 0,199, 68, 36, 4, 1, 0, 0,
/* 0x0760 */ 0,232,196,250,255,255, 72,133,192, 72,137,195,116, 55,131,124,
/* 0x0770 */ 36, 4, 0,199, 3, 15, 5, 90,195,116, 18,186, 5, 0, 0, 0,
/* 0x0780 */ 190, 4, 0, 0, 0, 72,137,223,232,180,250,255,255, 72,133,219,
/* 0x0790 */ 116, 19, 72,139,124, 36, 48, 72,137,218, 49,246, 72,131,231,254,
/* 0x07a0 */ 232, 28,252,255,255,139, 84, 36, 24, 72,139,116, 36, 16, 72,137,
/* 0x07b0 */ 239,232,139,250,255,255,133,192,116, 10,191,127, 0, 0, 0,232,
/* 0x07c0 */ 143,250,255,255, 76, 59,108, 36, 8,115, 39, 76, 41,108, 36, 8,
/* 0x07d0 */ 139, 84, 36, 24, 69, 49,201, 72,139,116, 36, 8, 65,131,200,255,
/* 0x07e0 */ 185, 50, 0, 0, 0, 76,137,239,232, 61,250,255,255, 73, 57,197,
/* 0x07f0 */ 117,200,255, 68, 36, 28, 65, 15,183, 71, 56, 73,131,196, 56, 57,
/* 0x0800 */ 68, 36, 28, 15,140, 64,253,255,255, 72,139,132, 36,160, 0, 0,
/* 0x0810 */ 0, 76,137, 48, 77, 3,119, 24, 72,131,196,104, 91, 93, 65, 92,
/* 0x0820 */ 65, 93, 76,137,240, 65, 94, 65, 95,195, 65, 87, 65, 86, 73,137,
/* 0x0830 */ 206, 49,201, 65, 85, 65, 84, 77,137,204, 85, 72,137,213, 76,141,
/* 0x0840 */ 109, 64, 83, 76,137,195, 72,131,236, 72,139, 7, 72,137,124, 36,
/* 0x0850 */ 24, 72,137,124, 36, 40, 76,141,188, 36,128, 0, 0, 0, 72,137,
/* 0x0860 */ 116, 36, 32, 72,141,116, 36, 48, 72,137, 84, 36, 56, 76,137,194,
/* 0x0870 */ 72,137, 68, 36, 48,139, 71, 4, 72,141,124, 36, 16, 72,131,192,
/* 0x0880 */ 12, 72,137, 68, 36, 16,232, 37,250,255,255, 65, 83, 77,137,225,
/* 0x0890 */ 49,210, 73,137,216, 76,137,241, 72,137,239, 72,141,116, 36, 40,
/* 0x08a0 */ 65, 87,232, 89,251,255,255,190, 9, 0, 0, 0, 72,137,194, 76,
/* 0x08b0 */ 137,247, 73,137,196,232, 7,251,255,255, 65, 89, 65, 90,102,131,
/* 0x08c0 */ 125, 56, 0,199, 68, 36, 12, 0, 0, 0, 0, 15,132,143, 0, 0,
/* 0x08d0 */ 0, 65,131,125, 0, 3,117,114, 73,139, 63, 73, 3,125, 16, 49,
/* 0x08e0 */ 210, 49,246,232,119,249,255,255,133,192,137,195,120, 23,186, 0,
/* 0x08f0 */ 4, 0, 0, 72,137,238,137,199,232,114,249,255,255, 72, 61, 0,
/* 0x0900 */ 4, 0, 0,116, 10,191,127, 0, 0, 0,232, 68,249,255,255, 73,
/* 0x0910 */ 199, 7, 0, 0, 0, 0, 65, 80, 69, 49,201, 69, 49,192, 49,201,
/* 0x0920 */ 65, 87,137,218, 49,246, 72,137,239,232,210,250,255,255, 73,139,
/* 0x0930 */ 23,190, 7, 0, 0, 0, 76,137,247, 73,137,196,232,128,250,255,
/* 0x0940 */ 255,137,223,232, 19,249,255,255, 94, 95,255, 68, 36, 12, 15,183,
/* 0x0950 */ 69, 56, 73,131,197, 56, 57, 68, 36, 12, 15,130,113,255,255,255,
/* 0x0960 */ 72,131,196, 72, 76,137,224, 91, 93, 65, 92, 65, 93, 65, 94, 65,
/* 0x0970 */ 95,195, 0, 0, 85, 72,137,229, 83, 82, 86, 87,232,101, 0, 0,
/* 0x0980 */ 0, 91, 95, 94, 80, 15,182, 75, 9,133,201,116, 11, 15,182, 83,
/* 0x0990 */ 10,139, 54,232, 4, 0, 0, 0, 88, 91, 93,195,131,249, 73,117,
/* 0x09a0 */ 68, 83, 87, 72,141, 76, 55,253, 94, 86, 91,235, 47, 72, 57,206,
/* 0x09b0 */ 115, 50, 86, 94,172, 60,128,114, 10, 60,143,119, 6,128,126,254,
/* 0x09c0 */ 15,116, 6, 44,232, 60, 1,119,228, 72, 57,206,115, 22, 86,173,
/* 0x09d0 */ 40,208,117,223, 95, 15,200, 41,248, 1,216,171, 72, 57,206,115,
/* 0x09e0 */ 3,172,235,223, 91,195, 82, 15,182, 87, 8, 87, 86, 95, 94,139,
/* 0x09f0 */ 70, 4, 72,131,198, 12, 72, 1,240, 80, 87, 49,219, 49,201, 72,
/* 0x0a00 */ 131,205,255,235, 78,139, 30, 72,131,238,252, 17,219,138, 22,243,
/* 0x0a10 */ 195, 1,219,116,240,243,195, 72,141, 4, 47,131,249, 5,138, 16,
/* 0x0a20 */ 118, 32,131,253,252,119, 27,131,233, 4,139, 16, 72,131,192, 4,
/* 0x0a30 */ 131,233, 4,137, 23, 72,141,127, 4,115,239,131,193, 4,138, 16,
/* 0x0a40 */ 116, 15, 72,255,192,136, 23,255,201,138, 16, 72,141,127, 1,117,
/* 0x0a50 */ 241,243,195,252,128,250, 8, 15,133,218, 0, 0, 0,235, 8, 72,
/* 0x0a60 */ 255,198,136, 23, 72,255,199,138, 22, 1,219,117, 10,139, 30, 72,
/* 0x0a70 */ 131,238,252, 17,219,138, 22,114,230,141, 65, 1,235, 18,255,200,
/* 0x0a80 */ 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,192,
/* 0x0a90 */ 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,192,
/* 0x0aa0 */ 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22,115,206,
/* 0x0ab0 */ 131,232, 3,114, 29,193,224, 8, 15,182,210, 9,208, 72,255,198,
/* 0x0ac0 */ 131,240,255, 15,132, 55,245,239,255,209,248, 72, 99,232,114, 67,
/* 0x0ad0 */ 235, 14, 1,219,117, 8,139, 30, 72,131,238,252, 17,219,114, 51,
/* 0x0ae0 */ 255,193, 1,219,117, 8,139, 30, 72,131,238,252, 17,219,114, 35,
/* 0x0af0 */ 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201,
/* 0x0b00 */ 1,219,117, 8,139, 30, 72,131,238,252, 17,219,115,226,131,193,
/* 0x0b10 */ 2,235, 16, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138,
/* 0x0b20 */ 22, 17,201, 72,129,253, 0,251,255,255,131,209, 2,232,229,254,
/* 0x0b30 */ 255,255,233, 48,255,255,255, 87, 94,128,250, 5, 15,133,204, 0,
/* 0x0b40 */ 0, 0,235, 8, 72,255,198,136, 23, 72,255,199,138, 22, 1,219,
/* 0x0b50 */ 117, 10,139, 30, 72,131,238,252, 17,219,138, 22,114,230,141, 65,
/* 0x0b60 */ 1,235, 18,255,200, 1,219,117, 10,139, 30, 72,131,238,252, 17,
/* 0x0b70 */ 219,138, 22, 17,192, 1,219,117, 10,139, 30, 72,131,238,252, 17,
/* 0x0b80 */ 219,138, 22, 17,192, 1,219,117, 10,139, 30, 72,131,238,252, 17,
/* 0x0b90 */ 219,138, 22,115,206,131,232, 3,114, 27,193,224, 8, 15,182,210,
/* 0x0ba0 */ 9,208, 72,255,198,131,240,255, 15,132, 82,244,239,255,209,248,
/* 0x0bb0 */ 72, 99,232,235, 14, 1,219,117, 10,139, 30, 72,131,238,252, 17,
/* 0x0bc0 */ 219,138, 22, 17,201, 1,219,117, 10,139, 30, 72,131,238,252, 17,
/* 0x0bd0 */ 219,138, 22, 17,201,117, 35,255,193, 1,219,117, 10,139, 30, 72,
/* 0x0be0 */ 131,238,252, 17,219,138, 22, 17,201, 1,219,117, 8,139, 30, 72,
/* 0x0bf0 */ 131,238,252, 17,219,115,226,131,193, 2, 72,129,253, 0,251,255,
/* 0x0c00 */ 255,131,209, 1,232, 14,254,255,255,233, 62,255,255,255, 87, 94,
/* 0x0c10 */ 128,250, 2, 15,133,182, 0, 0, 0,235, 8, 72,255,198,136, 23,
/* 0x0c20 */ 72,255,199,138, 22, 1,219,117, 10,139, 30, 72,131,238,252, 17,
/* 0x0c30 */ 219,138, 22,114,230,141, 65, 1, 1,219,117, 10,139, 30, 72,131,
/* 0x0c40 */ 238,252, 17,219,138, 22, 17,192, 1,219,117, 10,139, 30, 72,131,
/* 0x0c50 */ 238,252, 17,219,138, 22,115,224,131,232, 3,114, 23,193,224, 8,
/* 0x0c60 */ 15,182,210, 9,208, 72,255,198,131,240,255, 15,132,143,243,239,
/* 0x0c70 */ 255, 72, 99,232,141, 65, 1, 1,219,117, 10,139, 30, 72,131,238,
/* 0x0c80 */ 252, 17,219,138, 22, 17,201, 1,219,117, 10,139, 30, 72,131,238,
/* 0x0c90 */ 252, 17,219,138, 22, 17,201,117, 35,137,193,131,192, 2, 1,219,
/* 0x0ca0 */ 117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201, 1,219,
/* 0x0cb0 */ 117, 8,139, 30, 72,131,238,252, 17,219,115,226, 72,129,253, 0,
/* 0x0cc0 */ 243,255,255, 17,193,232, 77,253,255,255,233, 84,255,255,255, 87,
/* 0x0cd0 */ 94
/* 0x03c0 */ 195, 72,133,255, 65, 80,116, 80, 64,246,199, 1,117, 74, 69, 49,
/* 0x03d0 */ 192, 49,201, 72,139, 7, 65,137,241, 76, 57,200,117, 8,255,193,
/* 0x03e0 */ 72,137, 87, 8,235, 11, 72,131,248, 1,117, 5, 73,137,248,235,
/* 0x03f0 */ 33, 72,133,192,117, 28,133,201,117, 30, 77,133,192,116, 9, 77,
/* 0x0400 */ 137, 8, 73,137, 80, 8,235, 16,191,127, 0, 0, 0,232, 65,254,
/* 0x0410 */ 255,255, 72,131,199, 16,235,187, 94,195, 65, 87, 73,137,255, 65,
/* 0x0420 */ 86, 65, 85, 65, 84, 73,137,252, 85, 83, 72,131,236,104, 76, 3,
/* 0x0430 */ 103, 32, 72,133,246, 72,139,132, 36,160, 0, 0, 0,137, 84, 36,
/* 0x0440 */ 60, 72,137,116, 36, 64, 72,137, 76, 36, 48, 76,137, 68, 36, 40,
/* 0x0450 */ 76,137, 76, 36, 32, 72,139, 56, 65, 15,183, 87, 16,116, 76, 72,
/* 0x0460 */ 139, 71, 32, 72, 1,248, 72, 43,120, 72,102,131,250, 2,117, 4,
/* 0x0470 */ 72,139,120, 16, 72,139,112, 40, 69, 49,201, 65,131,200,255, 49,
/* 0x0480 */ 210,185, 50, 0, 0, 0, 72,141, 4, 62, 72,137, 68, 36, 72,232,
/* 0x0490 */ 150,253,255,255,102, 65,131,127, 16, 2, 73,137,198, 15,133,172,
/* 0x04a0 */ 0, 0, 0, 69, 49,246,233,164, 0, 0, 0,102,131,250, 3, 65,
/* 0x04b0 */ 15,183, 87, 56,185, 16, 0, 0, 0,184, 0, 0, 0, 0, 73,137,
/* 0x04c0 */ 248, 76,137,230, 15, 68,200, 72,131,205,255, 49,219, 49,255,131,
/* 0x04d0 */ 193, 34,255,202,120, 33,131, 62, 1,117, 22, 72,139, 70, 16, 72,
/* 0x04e0 */ 57,232, 72, 15, 66,232, 72, 3, 70, 40, 72, 57,195, 72, 15, 66,
/* 0x04f0 */ 216, 72,131,198, 56,235,219, 72,129,229, 0,240,255,255, 72, 41,
/* 0x0500 */ 235, 72,129,195,255, 15, 0, 0, 72,129,227, 0,240,255,255,246,
/* 0x0510 */ 193, 16,116, 5, 72,137,239,235, 19, 72,133,237,117, 14,137,200,
/* 0x0520 */ 76,137,199,131,200, 16, 77,133,192, 15, 69,200, 69, 49,201, 65,
/* 0x0530 */ 131,200,255, 49,210, 72,137,222,232,237,252,255,255, 72,137,199,
/* 0x0540 */ 72,141, 4, 3, 73,137,254, 72,137, 68, 36, 72, 73, 41,238,102,
/* 0x0550 */ 65,131,127, 56, 0,199, 68, 36, 28, 0, 0, 0, 0, 15,132,192,
/* 0x0560 */ 2, 0, 0, 72,131,124, 36, 64, 0,116, 35, 65,131, 60, 36, 6,
/* 0x0570 */ 117, 28, 73,139, 84, 36, 16, 72,139,124, 36, 48,190, 3, 0, 0,
/* 0x0580 */ 0, 76, 1,242,232, 56,254,255,255,233,126, 2, 0, 0, 65,131,
/* 0x0590 */ 60, 36, 1, 15,133,115, 2, 0, 0, 73,131,124, 36, 40, 0, 15,
/* 0x05a0 */ 132,103, 2, 0, 0, 65,139, 76, 36, 4,199, 68, 36, 24, 64, 98,
/* 0x05b0 */ 81,115,131,225, 7,193,225, 2,211,108, 36, 24,131,100, 36, 24,
/* 0x05c0 */ 7, 72,131,124, 36, 64, 0,116, 75, 73,131,124, 36, 8, 0,117,
/* 0x05d0 */ 67, 73,139, 84, 36, 16, 72,139,124, 36, 48,190, 3, 0, 0, 0,
/* 0x05e0 */ 76, 1,242, 73, 3, 87, 32,232,213,253,255,255, 73, 15,183, 87,
/* 0x05f0 */ 56, 72,139,124, 36, 48,190, 5, 0, 0, 0,232,193,253,255,255,
/* 0x0600 */ 73, 15,183, 87, 54, 72,139,124, 36, 48,190, 4, 0, 0, 0,232,
/* 0x0610 */ 173,253,255,255, 73,139,124, 36, 16, 73,139, 68, 36, 40,185, 50,
/* 0x0620 */ 0, 0, 0, 73,139,116, 36, 32, 76, 1,247, 72, 1,248, 72,137,
/* 0x0630 */ 250, 72,137,253,129,226,255, 15, 0, 0, 72,137, 68, 36, 8, 72,
/* 0x0640 */ 137,240, 72, 1,208, 72, 41,213, 72,137,116, 36, 80, 72,137, 68,
/* 0x0650 */ 36, 16,139, 68, 36, 24, 76,141, 44, 55,139,116, 36, 24, 72,137,
/* 0x0660 */ 124, 36, 88,131,200, 2, 72,131,124, 36, 64, 0, 15, 69,240,137,
/* 0x0670 */ 240,131,224,251, 72,131,124, 36, 64, 0, 15, 69,240, 73,139, 68,
/* 0x0680 */ 36, 8, 72, 41,208,131,202,255, 72,131,124, 36, 64, 0,117, 6,
/* 0x0690 */ 139, 84, 36, 60,177, 18, 65,137,208,137,242, 72,139,116, 36, 16,
/* 0x06a0 */ 73,137,193, 72,137,239,232,127,251,255,255, 72, 57,197, 15,133,
/* 0x06b0 */ 32, 1, 0, 0, 72,131,124, 36, 64, 0,116, 25, 72,139, 76, 36,
/* 0x06c0 */ 32, 72,139, 84, 36, 40, 72,141,116, 36, 80, 72,139,124, 36, 64,
/* 0x06d0 */ 232,219,251,255,255,246, 68, 36, 24, 2,116, 22, 68,137,233, 76,
/* 0x06e0 */ 137,239, 49,192,247,217,252,129,225,255, 15, 0, 0,243,170, 73,
/* 0x06f0 */ 137,253, 72,131,124, 36, 64, 0, 15,132,224, 0, 0, 0,199, 68,
/* 0x0700 */ 36, 4, 0, 0, 0, 0, 72,184,255,255,255,255, 1, 0, 0, 0,
/* 0x0710 */ 73, 35, 4, 36, 72,186, 1, 0, 0, 0, 1, 0, 0, 0, 72, 57,
/* 0x0720 */ 208, 15,133,152, 0, 0, 0, 73,139, 84, 36, 40, 73,139, 76, 36,
/* 0x0730 */ 16, 73, 59, 84, 36, 32, 72,141, 4, 10, 74,141, 28, 48,117, 14,
/* 0x0740 */ 137,216,247,216, 37,255, 15, 0, 0,131,248, 3,119, 58, 73,131,
/* 0x0750 */ 124, 36, 8, 0, 74,141, 92, 49, 12,116, 45, 69, 49,201, 65,131,
/* 0x0760 */ 200,255, 49,255,185, 34, 0, 0, 0,186, 3, 0, 0, 0,190, 0,
/* 0x0770 */ 16, 0, 0,199, 68, 36, 4, 1, 0, 0, 0,232,170,250,255,255,
/* 0x0780 */ 72,133,192, 72,137,195,116, 55,131,124, 36, 4, 0,199, 3, 15,
/* 0x0790 */ 5, 90,195,116, 18,186, 5, 0, 0, 0,190, 4, 0, 0, 0, 72,
/* 0x07a0 */ 137,223,232,154,250,255,255, 72,133,219,116, 19, 72,139,124, 36,
/* 0x07b0 */ 48, 72,137,218, 49,246, 72,131,231,254,232, 2,252,255,255,139,
/* 0x07c0 */ 84, 36, 24, 72,139,116, 36, 16, 72,137,239,232,113,250,255,255,
/* 0x07d0 */ 133,192,116, 10,191,127, 0, 0, 0,232,117,250,255,255, 76, 59,
/* 0x07e0 */ 108, 36, 8,115, 39, 76, 41,108, 36, 8,139, 84, 36, 24, 69, 49,
/* 0x07f0 */ 201, 72,139,116, 36, 8, 65,131,200,255,185, 50, 0, 0, 0, 76,
/* 0x0800 */ 137,239,232, 35,250,255,255, 73, 57,197,117,200,255, 68, 36, 28,
/* 0x0810 */ 65, 15,183, 71, 56, 73,131,196, 56, 57, 68, 36, 28, 15,140, 64,
/* 0x0820 */ 253,255,255, 72,139,132, 36,160, 0, 0, 0, 76,137, 48, 77, 3,
/* 0x0830 */ 119, 24, 72,131,196,104, 91, 93, 65, 92, 65, 93, 76,137,240, 65,
/* 0x0840 */ 94, 65, 95,195, 65, 87, 65, 86, 73,137,206, 49,201, 65, 85, 65,
/* 0x0850 */ 84, 77,137,204, 85, 72,137,213, 76,141,109, 64, 83, 76,137,195,
/* 0x0860 */ 72,131,236, 72,139, 7, 72,137,124, 36, 24, 72,137,124, 36, 40,
/* 0x0870 */ 76,141,188, 36,128, 0, 0, 0, 72,137,116, 36, 32, 72,141,116,
/* 0x0880 */ 36, 48, 72,137, 84, 36, 56, 76,137,194, 72,137, 68, 36, 48,139,
/* 0x0890 */ 71, 4, 72,141,124, 36, 16, 72,131,192, 12, 72,137, 68, 36, 16,
/* 0x08a0 */ 232, 11,250,255,255, 80, 77,137,225, 73,137,216, 49,210, 76,137,
/* 0x08b0 */ 241, 72,137,239, 72,141,116, 36, 40, 65, 87,232, 90,251,255,255,
/* 0x08c0 */ 190, 9, 0, 0, 0, 72,137,194, 76,137,247, 73,137,196,232,238,
/* 0x08d0 */ 250,255,255, 91, 88,102,131,125, 56, 0,199, 68, 36, 12, 0, 0,
/* 0x08e0 */ 0, 0, 15,132,145, 0, 0, 0, 65,131,125, 0, 3,117,116, 73,
/* 0x08f0 */ 139, 63, 73, 3,125, 16, 49,210, 49,246,232, 96,249,255,255,133,
/* 0x0900 */ 192,137,195,120, 23,186, 0, 4, 0, 0, 72,137,238,137,199,232,
/* 0x0910 */ 91,249,255,255, 72, 61, 0, 4, 0, 0,116, 10,191,127, 0, 0,
/* 0x0920 */ 0,232, 45,249,255,255, 73,199, 7, 0, 0, 0, 0, 65, 83, 69,
/* 0x0930 */ 49,201, 69, 49,192, 49,201, 65, 87,137,218, 49,246, 72,137,239,
/* 0x0940 */ 232,213,250,255,255, 73,139, 23,190, 7, 0, 0, 0, 76,137,247,
/* 0x0950 */ 73,137,196,232,105,250,255,255,137,223,232,252,248,255,255, 65,
/* 0x0960 */ 89, 65, 90,255, 68, 36, 12, 15,183, 69, 56, 73,131,197, 56, 57,
/* 0x0970 */ 68, 36, 12, 15,130,111,255,255,255, 72,131,196, 72, 76,137,224,
/* 0x0980 */ 91, 93, 65, 92, 65, 93, 65, 94, 65, 95,195, 0, 85, 72,137,229,
/* 0x0990 */ 83, 82, 86, 87,232,101, 0, 0, 0, 91, 95, 94, 80, 15,182, 75,
/* 0x09a0 */ 9,133,201,116, 11, 15,182, 83, 10,139, 54,232, 4, 0, 0, 0,
/* 0x09b0 */ 88, 91, 93,195,131,249, 73,117, 68, 83, 87, 72,141, 76, 55,253,
/* 0x09c0 */ 94, 86, 91,235, 47, 72, 57,206,115, 50, 86, 94,172, 60,128,114,
/* 0x09d0 */ 10, 60,143,119, 6,128,126,254, 15,116, 6, 44,232, 60, 1,119,
/* 0x09e0 */ 228, 72, 57,206,115, 22, 86,173, 40,208,117,223, 95, 15,200, 41,
/* 0x09f0 */ 248, 1,216,171, 72, 57,206,115, 3,172,235,223, 91,195, 82, 15,
/* 0x0a00 */ 182, 87, 8, 87, 86, 95, 94,139, 70, 4, 72,131,198, 12, 72, 1,
/* 0x0a10 */ 240, 80, 87, 49,219, 49,201, 72,131,205,255,235, 78,139, 30, 72,
/* 0x0a20 */ 131,238,252, 17,219,138, 22,243,195, 1,219,116,240,243,195, 72,
/* 0x0a30 */ 141, 4, 47,131,249, 5,138, 16,118, 32,131,253,252,119, 27,131,
/* 0x0a40 */ 233, 4,139, 16, 72,131,192, 4,131,233, 4,137, 23, 72,141,127,
/* 0x0a50 */ 4,115,239,131,193, 4,138, 16,116, 15, 72,255,192,136, 23,255,
/* 0x0a60 */ 201,138, 16, 72,141,127, 1,117,241,243,195,252,128,250, 8, 15,
/* 0x0a70 */ 133,218, 0, 0, 0,235, 8, 72,255,198,136, 23, 72,255,199,138,
/* 0x0a80 */ 22, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22,114,
/* 0x0a90 */ 230,141, 65, 1,235, 18,255,200, 1,219,117, 10,139, 30, 72,131,
/* 0x0aa0 */ 238,252, 17,219,138, 22, 17,192, 1,219,117, 10,139, 30, 72,131,
/* 0x0ab0 */ 238,252, 17,219,138, 22, 17,192, 1,219,117, 10,139, 30, 72,131,
/* 0x0ac0 */ 238,252, 17,219,138, 22,115,206,131,232, 3,114, 29,193,224, 8,
/* 0x0ad0 */ 15,182,210, 9,208, 72,255,198,131,240,255, 15,132, 31,245,239,
/* 0x0ae0 */ 255,209,248, 72, 99,232,114, 67,235, 14, 1,219,117, 8,139, 30,
/* 0x0af0 */ 72,131,238,252, 17,219,114, 51,255,193, 1,219,117, 8,139, 30,
/* 0x0b00 */ 72,131,238,252, 17,219,114, 35, 1,219,117, 10,139, 30, 72,131,
/* 0x0b10 */ 238,252, 17,219,138, 22, 17,201, 1,219,117, 8,139, 30, 72,131,
/* 0x0b20 */ 238,252, 17,219,115,226,131,193, 2,235, 16, 1,219,117, 10,139,
/* 0x0b30 */ 30, 72,131,238,252, 17,219,138, 22, 17,201, 72,129,253, 0,251,
/* 0x0b40 */ 255,255,131,209, 2,232,229,254,255,255,233, 48,255,255,255, 87,
/* 0x0b50 */ 94,128,250, 5, 15,133,204, 0, 0, 0,235, 8, 72,255,198,136,
/* 0x0b60 */ 23, 72,255,199,138, 22, 1,219,117, 10,139, 30, 72,131,238,252,
/* 0x0b70 */ 17,219,138, 22,114,230,141, 65, 1,235, 18,255,200, 1,219,117,
/* 0x0b80 */ 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,192, 1,219,117,
/* 0x0b90 */ 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,192, 1,219,117,
/* 0x0ba0 */ 10,139, 30, 72,131,238,252, 17,219,138, 22,115,206,131,232, 3,
/* 0x0bb0 */ 114, 27,193,224, 8, 15,182,210, 9,208, 72,255,198,131,240,255,
/* 0x0bc0 */ 15,132, 58,244,239,255,209,248, 72, 99,232,235, 14, 1,219,117,
/* 0x0bd0 */ 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201, 1,219,117,
/* 0x0be0 */ 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201,117, 35,255,
/* 0x0bf0 */ 193, 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,
/* 0x0c00 */ 201, 1,219,117, 8,139, 30, 72,131,238,252, 17,219,115,226,131,
/* 0x0c10 */ 193, 2, 72,129,253, 0,251,255,255,131,209, 1,232, 14,254,255,
/* 0x0c20 */ 255,233, 62,255,255,255, 87, 94,128,250, 2, 15,133,182, 0, 0,
/* 0x0c30 */ 0,235, 8, 72,255,198,136, 23, 72,255,199,138, 22, 1,219,117,
/* 0x0c40 */ 10,139, 30, 72,131,238,252, 17,219,138, 22,114,230,141, 65, 1,
/* 0x0c50 */ 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,192,
/* 0x0c60 */ 1,219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22,115,224,
/* 0x0c70 */ 131,232, 3,114, 23,193,224, 8, 15,182,210, 9,208, 72,255,198,
/* 0x0c80 */ 131,240,255, 15,132,119,243,239,255, 72, 99,232,141, 65, 1, 1,
/* 0x0c90 */ 219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201, 1,
/* 0x0ca0 */ 219,117, 10,139, 30, 72,131,238,252, 17,219,138, 22, 17,201,117,
/* 0x0cb0 */ 35,137,193,131,192, 2, 1,219,117, 10,139, 30, 72,131,238,252,
/* 0x0cc0 */ 17,219,138, 22, 17,201, 1,219,117, 8,139, 30, 72,131,238,252,
/* 0x0cd0 */ 17,219,115,226, 72,129,253, 0,243,255,255, 17,193,232, 77,253,
/* 0x0ce0 */ 255,255,233, 84,255,255,255, 87, 94
};
+868 -867
View File
File diff suppressed because it is too large Load Diff
+424 -416
View File
@@ -1,5 +1,5 @@
/* arm.v4a-linux.elf-fold.h
created from arm.v4a-linux.elf-fold.bin, 6604 (0x19cc) bytes
created from arm.v4a-linux.elf-fold.bin, 6724 (0x1a44) bytes
This file is part of the UPX executable compressor.
@@ -32,422 +32,430 @@
/* clang-format off */
#define STUB_ARM_V4A_LINUX_ELF_FOLD_SIZE 6604
#define STUB_ARM_V4A_LINUX_ELF_FOLD_ADLER32 0xcdf8ae14
#define STUB_ARM_V4A_LINUX_ELF_FOLD_CRC32 0x3bba7f4c
#define STUB_ARM_V4A_LINUX_ELF_FOLD_SIZE 6724
#define STUB_ARM_V4A_LINUX_ELF_FOLD_ADLER32 0xeecde528
#define STUB_ARM_V4A_LINUX_ELF_FOLD_CRC32 0xccec9b98
unsigned char stub_arm_v4a_linux_elf_fold[6604] = {
unsigned char stub_arm_v4a_linux_elf_fold[6724] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0, 40, 0, 1, 0, 0, 0, 64,128, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 16, 11, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 7, 0, 4, 0, 34, 0, 0, 0,192, 31,189,232, 13, 16,160,225,
/* 0x0040 */ 1,218, 77,226, 13, 0,160,225,240, 31, 45,233, 4, 48,145,228,
/* 0x0050 */ 0, 0, 83,227, 4, 48,128,228, 4, 0, 0, 26, 0, 64,160,225,
/* 0x0060 */ 4, 48,128,228, 4, 48,145,228, 0, 0, 83,227, 4, 48,128,228,
/* 0x0070 */ 10, 0, 0, 26, 1, 80,160,225, 12, 0,177,232, 0, 0, 82,227,
/* 0x0080 */ 12, 0,160,232, 15, 0, 0, 26, 1, 96,160,225, 0,144,160,225,
/* 0x0090 */ 1, 42,160,227, 0, 16,160,225, 14, 0,160,225, 1, 32, 66,226,
/* 0x00a0 */ 254,255,255,235, 1, 10,112,227, 14, 16,160, 33, 14, 0,160, 35,
/* 0x00b0 */ 0, 32,129,224, 6, 0,160,225, 0, 48,160,227, 1, 48, 96,229,
/* 0x00c0 */ 1, 48,114,229, 1, 48, 96,229, 2, 0, 81,225, 33, 0, 0, 26,
/* 0x00d0 */ 61, 48,160,227, 1, 48, 96,229, 32, 48,160,227, 1, 48, 96,229,
/* 0x00e0 */ 1, 48, 96,229, 1, 48, 96,229, 0, 0,132,229, 32, 1,160,225,
/* 0x00f0 */ 0, 1,160,225, 0, 48, 38,224, 4, 48, 3,226, 4, 48, 35,226,
/* 0x0100 */ 3, 0, 64,224, 6, 48, 64,224, 5, 48,131,224, 9, 16,160,225,
/* 0x0110 */ 24, 80,157,229, 24, 0,141,229, 4, 32, 49,229, 13, 0, 81,225,
/* 0x0120 */ 4, 32, 32,229, 55, 0, 0, 26, 0,208,160,225, 16, 12,189,232,
/* 0x0130 */ 10,220, 77,226, 4,144,154,229, 13,128,160,225, 0,112,154,229,
/* 0x0140 */ 184, 96,143,226, 12,144,137,226,248, 15, 45,233, 15, 0,189,232,
/* 0x0150 */ 254,255,255,235, 20,208,141,226, 10,220,141,226, 16, 0,141,229,
/* 0x0160 */ 104, 16,155,229, 11, 0,160,225,254,255,255,235, 11, 0,160,225,
/* 0x0170 */ 254,255,255,235, 4, 64,157,228, 0, 0, 84,227, 90, 0, 0,186,
/* 0x0180 */ 0, 80,160,227, 48, 0, 45,233, 2, 48,160,227, 1, 32,160,227,
/* 0x0190 */ 1, 26,160,227, 0, 0,160,227,254,255,255,235, 3, 0,189,232,
/* 0x01a0 */ 254,255,255,235, 7, 64,189,232, 0, 48,160,227, 0, 64,160,227,
/* 0x01b0 */ 0, 80,160,227, 0, 96,160,227, 0,128,160,227, 0,144,160,227,
/* 0x01c0 */ 0,160,160,227, 0,176,160,227, 1,199, 77,226, 32,112, 29,228,
/* 0x01d0 */ 0,112,141,229, 0,112,157,229, 13, 0, 92,225,100, 0, 0, 58,
/* 0x01e0 */ 1,215,141,226, 0,112,160,227, 0,192,160,227, 14,240,160,225,
/* 0x01f0 */ 47,112,114,111, 99, 47,115,101,108,102, 47,101,120,101, 0, 0,
/* 0x0200 */ 255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17, 33, 17,176,225,
/* 0x0210 */ 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226, 1, 33,144,231,
/* 0x0220 */ 15, 52, 2,226, 11, 4, 83,227,129, 0, 0, 26,255, 52, 2,226,
/* 0x0230 */ 1, 32, 66,224,255, 36,194,227, 3, 32,130,225, 1, 33,128,231,
/* 0x0240 */ 0, 0, 81,227,119, 0, 0, 26, 14,240,160,225,240, 1,240,231,
/* 0x0250 */ 14,240,160,225, 1, 0,144,239, 3, 0,144,239, 14,240,160,225,
/* 0x0260 */ 4, 0,144,239, 14,240,160,225, 5, 0,144,239, 14,240,160,225,
/* 0x0270 */ 6, 0,144,239, 14,240,160,225, 10, 0,144,239, 14,240,160,225,
/* 0x0280 */ 20, 0,144,239, 14,240,160,225, 45, 0,144,239, 14,240,160,225,
/* 0x0290 */ 85, 0,144,239, 14,240,160,225, 91, 0,144,239, 14,240,160,225,
/* 0x02a0 */ 56,192,159,229, 0,192, 12,224, 12, 0, 64,224, 12, 16,129,224,
/* 0x02b0 */ 125, 0,144,239, 14,240,160,225, 48, 64, 45,233, 16, 80,157,229,
/* 0x02c0 */ 12, 64,157,229, 37, 86,160,225, 16,192,159,229, 0,192, 12,224,
/* 0x02d0 */ 12, 0, 64,224, 12, 16,129,224,192, 0,144,239, 48,128,189,232,
/* 0x02e0 */ 255, 15, 0, 0,192, 0,144,239, 48,128,189,232, 0, 32,160,227,
/* 0x02f0 */ 2, 0,159,239, 14,240,160,225,104, 0, 31,229, 14,240,160,225,
/* 0x0300 */ 48, 64, 45,233,216, 66, 31,229, 0, 80,160,227, 4, 48,131,225,
/* 0x0310 */ 0, 64,224,227,163, 0, 0,234, 0,192,160,225, 1, 16, 65,224,
/* 0x0320 */ 0, 32,160,225,128, 1,144,224,129, 17,161,224,162, 30,129,224,
/* 0x0330 */ 0, 32,160,225, 0, 2,144,224, 1, 18,161,224, 34, 30,129,224,
/* 0x0340 */ 0, 32,160,225, 0, 4,144,224, 1, 20,161,224, 34, 28,129,224,
/* 0x0350 */ 0, 32,160,225, 0, 8,144,224, 1, 24,161,224, 34, 24,129,224,
/* 0x0360 */ 140, 15, 80,224,172, 16,193,224, 12, 0,144,224, 0, 0,161,226,
/* 0x0370 */ 14,240,160,225, 0, 0, 80,227, 30,255, 47, 1, 0, 48,144,229,
/* 0x0380 */ 1, 0, 83,225, 8, 0,128, 18,208, 0, 0, 26, 4, 32,128,229,
/* 0x0390 */ 30,255, 47,225, 0, 0,159,229, 30,255, 47,225, 0,240,255,255,
/* 0x03a0 */ 0, 48,144,229, 2, 0, 83,225, 4, 48,144,229, 4,224, 45,229,
/* 0x03b0 */ 3,192,160, 33, 2,224,160,225, 2, 32,160, 33,229, 0, 0, 42,
/* 0x03c0 */ 127, 0,160,227,254,255,255,235, 1, 48, 92,229, 1, 48, 65,229,
/* 0x03d0 */ 1, 32, 66,226, 1, 0,114,227, 1,192,140,226, 1, 16,129,226,
/* 0x03e0 */ 227, 0, 0, 26, 4, 32,144,229, 0, 48,144,229, 14, 32,130,224,
/* 0x03f0 */ 3, 48,110,224, 0, 48,128,229, 4, 32,128,229, 4,240,157,228,
/* 0x0400 */ 240, 64, 45,233, 0, 80,160,225, 20,208, 77,226, 1, 64,160,225,
/* 0x0410 */ 2,112,160,225, 3, 96,160,225, 61, 1, 0,234, 4, 16,141,226,
/* 0x0420 */ 5, 0,160,225, 12, 32,160,227,217, 0, 0,235, 4,224,157,229,
/* 0x0430 */ 0, 0, 94,227, 8, 16,157,229, 7, 1, 0, 26, 0, 49,159,229,
/* 0x0440 */ 3, 0, 81,225, 9, 1, 0, 26, 0, 48,149,229, 0, 0, 83,227,
/* 0x0450 */ 9, 1, 0, 26, 64, 1, 0,234, 0, 0, 81,227, 11, 1, 0, 26,
/* 0x0460 */ 127, 0,160,227,254,255,255,235, 14, 0, 81,225, 9, 1, 0,138,
/* 0x0470 */ 0, 48,148,229, 3, 0, 94,225, 9, 1, 0,138, 14, 0, 81,225,
/* 0x0480 */ 52, 1, 0, 42, 12,192,221,229, 4, 0,149,229, 4, 32,148,229,
/* 0x0490 */ 16, 48,141,226, 16,224,141,229, 0,192,141,229, 15,224,160,225,
/* 0x04a0 */ 23,255, 47,225, 0, 0, 80,227, 9, 1, 0, 26, 16, 16,157,229,
/* 0x04b0 */ 4, 48,157,229, 3, 0, 81,225, 9, 1, 0, 26, 13, 32,221,229,
/* 0x04c0 */ 0, 0, 82,227, 0, 0, 86, 19, 46, 1, 0, 10, 2, 12, 81,227,
/* 0x04d0 */ 41, 1, 0,138, 0, 48,148,229, 1, 0, 83,225, 46, 1, 0, 26,
/* 0x04e0 */ 2, 48,160,225, 4, 0,148,229, 14, 32,221,229, 15,224,160,225,
/* 0x04f0 */ 22,255, 47,225, 8, 48,157,229, 6, 0,149,232, 3, 32,130,224,
/* 0x0500 */ 1, 16, 99,224, 6, 0,133,232, 56, 1, 0,234, 1, 32,160,225,
/* 0x0510 */ 5, 0,160,225, 4, 16,148,229,217, 0, 0,235, 4, 48,157,229,
/* 0x0520 */ 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232,
/* 0x0530 */ 0, 48,148,229, 0, 0, 83,227,248, 0, 0, 26, 20,208,141,226,
/* 0x0540 */ 240,128,189,232, 85, 80, 88, 33,240, 79, 45,233, 1,128,160,225,
/* 0x0550 */ 28, 16,145,229, 48,208, 77,226, 0, 0, 82,227, 12, 32,141,229,
/* 0x0560 */ 16, 0,141,229, 8, 48,141,229, 1, 80,136,224, 90, 1, 0, 10,
/* 0x0570 */ 84, 32,157,229, 0, 0,146,229,176, 49,208,225, 52, 16,128,226,
/* 0x0580 */ 2, 0, 83,227, 40, 48,145, 21, 0,176, 99, 16, 8, 0,145, 5,
/* 0x0590 */ 11, 0,160, 17, 20, 16,145,229, 0,176,160, 3,254,255,255,235,
/* 0x05a0 */ 128, 1, 0,234,176, 49,216,225,188, 34,216,225, 3, 0, 83,227,
/* 0x05b0 */ 12, 16,157,229, 16,224,160, 19, 0,224,160, 3, 1,192, 66,226,
/* 0x05c0 */ 5, 0,160,225, 0, 64,224,227,114, 1, 0,234, 0, 48,144,229,
/* 0x05d0 */ 1, 0, 83,227,112, 1, 0, 26, 20, 48,144,229, 0, 0, 83,227,
/* 0x05e0 */ 112, 1, 0, 10, 8, 32,144,229, 2, 48,131,224, 3, 0, 81,225,
/* 0x05f0 */ 3, 16,160, 49, 2, 0, 84,225, 2, 64,160, 33, 32, 0,128,226,
/* 0x0600 */ 1,192, 76,226, 0, 0, 92,227,100, 1, 0,170,255, 78,196,227,
/* 0x0610 */ 15, 64,196,227, 1, 16,100,224,255, 30,129,226, 15, 16,129,226,
/* 0x0620 */ 255, 30,193,227, 15, 16,193,227, 14, 48,160,225, 4, 0,160,225,
/* 0x0630 */ 0, 32,160,227,254,255,255,235, 0,176,100,224, 52, 48,160,227,
/* 0x0640 */ 155, 3, 3,224, 32, 80,133,226, 32, 48,141,229, 0, 48,160,227,
/* 0x0650 */ 24, 48,141,229, 55, 2, 0,234, 12,192,157,229, 0, 0, 92,227,
/* 0x0660 */ 147, 1, 0, 10, 32, 48, 21,229, 6, 0, 83,227,147, 1, 0, 26,
/* 0x0670 */ 24, 32, 21,229, 8, 0,157,229, 2, 32,139,224, 3, 16,160,227,
/* 0x0680 */ 206, 0, 0,235, 51, 2, 0,234, 32, 48, 21,229, 1, 0, 83,227,
/* 0x0690 */ 51, 2, 0, 26, 12, 48, 21,229, 0, 0, 83,227, 51, 2, 0, 10,
/* 0x06a0 */ 12, 0,157,229, 0, 0, 80,227,174, 1, 0, 10, 28, 48, 21,229,
/* 0x06b0 */ 0, 0, 83,227,174, 1, 0, 26, 28, 48,152,229, 24, 32, 21,229,
/* 0x06c0 */ 3, 32,130,224, 2, 32,139,224, 3, 16,160,227, 8, 0,157,229,
/* 0x06d0 */ 206, 0, 0,235, 8, 0,157,229, 5, 16,160,227,188, 34,216,225,
/* 0x06e0 */ 206, 0, 0,235, 8, 0,157,229, 4, 16,160,227,186, 34,216,225,
/* 0x06f0 */ 206, 0, 0,235, 8, 16, 21,229,168, 34,159,229, 7, 48, 1,226,
/* 0x0700 */ 3, 49,160,225, 50, 67,160,225, 24, 48, 21,229, 3, 48,139,224,
/* 0x0710 */ 20, 48,141,229, 20,192,157,229, 16, 48, 21,229, 12, 42,160,225,
/* 0x0720 */ 34, 42,160,225, 12, 0,157,229, 40, 48,141,229, 2,160,131,224,
/* 0x0730 */ 12, 48, 21,229, 0, 0, 80,227, 44,192,141,229, 7,144, 4,226,
/* 0x0740 */ 36, 48,141,229, 12, 96, 98,224,213, 1, 0, 10, 1, 0, 17,227,
/* 0x0750 */ 3, 32,160, 3, 7, 32,160, 19, 6, 0,160,225, 10, 16,160,225,
/* 0x0760 */ 16, 48,160,227,254,255,255,235, 0, 0, 86,225, 34, 2, 0, 26,
/* 0x0770 */ 88,192,157,229, 4, 48, 20,226, 12, 48,160, 17, 12, 0,157,229,
/* 0x0780 */ 40, 16,141,226, 16, 32,157,229,241, 0, 0,235,225, 1, 0,234,
/* 0x0790 */ 28,192, 21,229, 12,192, 98,224, 4,192,141,229, 16,192,157,229,
/* 0x07a0 */ 6, 0,160,225, 10, 16,160,225, 9, 32,160,225, 18, 48,160,227,
/* 0x07b0 */ 0,192,141,229,254,255,255,235, 0, 0, 86,225, 34, 2, 0, 26,
/* 0x07c0 */ 0, 48,106,226, 3,122,160,225, 2, 0, 25,227, 39,122,160,225,
/* 0x07d0 */ 238, 1, 0, 10, 0, 0, 87,227,238, 1, 0, 10, 10, 16,134,224,
/* 0x07e0 */ 7, 32,160,225, 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228,
/* 0x07f0 */ 234, 1, 0, 26, 12, 0,157,229, 0, 0, 80,227, 36, 2, 0, 10,
/* 0x0800 */ 254,255,255,235, 32, 48, 21,229, 1, 0, 83,227, 28, 0,141,229,
/* 0x0810 */ 28, 2, 0, 26, 8, 48, 21,229, 1, 0, 19,227, 28, 2, 0, 10,
/* 0x0820 */ 12, 32, 21,229, 16, 48, 21,229, 3, 0, 82,225, 24, 16, 21,229,
/* 0x0830 */ 66, 2, 0, 26, 1, 48,130,224, 3, 48,131,226, 3, 48,139,224,
/* 0x0840 */ 3, 32,195,227, 0, 48, 98,226, 3, 58,160,225, 35, 58,160,225,
/* 0x0850 */ 7, 0, 83,227, 66, 2, 0,154, 19, 2, 0,234, 0,224,160,227,
/* 0x0860 */ 0,192,224,227, 14, 0,160,225, 1, 26,160,227, 7, 32,160,227,
/* 0x0870 */ 34, 48,160,227, 0, 80,141,232,254,255,255,235, 0, 0, 80,227,
/* 0x0880 */ 73, 2, 0, 26, 28, 2, 0,234, 3, 48,130,226, 3, 64,195,227,
/* 0x0890 */ 28, 32,157,229, 16, 49,159,229, 12, 0,132,232, 4, 0,160,225,
/* 0x08a0 */ 8, 16,132,226,254,255,255,235, 86, 2, 0,234, 6, 0,160,225,
/* 0x08b0 */ 10, 16,160,225, 9, 32,160,225,254,255,255,235, 0, 0, 80,227,
/* 0x08c0 */ 36, 2, 0, 10,127, 0,160,227,254,255,255,235, 20,192,157,229,
/* 0x08d0 */ 36, 0,157,229, 7, 48,138,224, 0, 16,140,224, 3, 64,134,224,
/* 0x08e0 */ 1, 0, 84,225, 51, 2, 0, 42, 1, 16,100,224, 9, 32,160,225,
/* 0x08f0 */ 4, 0,160,225, 16, 48,160,227,254,255,255,235, 0, 0, 84,225,
/* 0x0900 */ 51, 2, 0, 10, 50, 2, 0,234, 24, 32,157,229, 1, 32,130,226,
/* 0x0910 */ 24, 32,141,229, 32, 80,133,226,188, 50,216,225, 24,192,157,229,
/* 0x0920 */ 3, 0, 92,225,135, 1, 0,186, 84, 0,157,229, 0, 0, 80,227,
/* 0x0930 */ 0,176,128, 21, 24, 0,152,229, 0, 0,139,224, 48,208,141,226,
/* 0x0940 */ 240,143,189,232, 28, 48, 21,229, 0, 0, 83,227, 32, 32,157, 5,
/* 0x0950 */ 2, 48,129, 0, 8, 32,131, 2, 19, 2, 0, 10, 8, 2, 0,234,
/* 0x0960 */ 3, 48,128,226, 3, 64,195,227, 28, 48,157,229, 0, 48,132,229,
/* 0x0970 */ 52, 48,159,229, 8, 16,132,226, 4, 0,160,225, 4, 48,132,229,
/* 0x0980 */ 254,255,255,235, 4, 0,160,225, 8, 16,160,227, 5, 32,160,227,
/* 0x0990 */ 254,255,255,235, 4, 32,160,225, 8, 0,157,229, 0, 16,160,227,
/* 0x09a0 */ 206, 0, 0,235, 28, 2, 0,234, 64, 98, 81,115, 14,240,160,225,
/* 0x09b0 */ 240, 71, 45,233, 12,208, 77,226, 52, 96,141,226, 0,144,160,225,
/* 0x09c0 */ 1,112,160,225, 3,128,160,225, 6, 0,160,225, 44, 16,141,226,
/* 0x09d0 */ 0, 48,160,227, 48,160,157,229, 2, 80,160,225, 52, 64,157,229,
/* 0x09e0 */ 241, 0, 0,235, 60, 48,157,229, 12,224,141,226, 56,192,157,229,
/* 0x09f0 */ 4, 48, 46,229, 12,192,100,224, 6, 32,160,225, 10, 16,160,225,
/* 0x0a00 */ 9, 48,160,225, 5, 0,160,225, 56,192,141,229, 0,224,141,229,
/* 0x0a10 */ 52,112,141,229, 4,128,141,229, 67, 1, 0,235, 0, 64,160,225,
/* 0x0a20 */ 9, 16,160,227, 9, 0,160,225, 4, 32,160,225,206, 0, 0,235,
/* 0x0a30 */ 188, 2,218,225, 52, 32,138,226, 0, 16,160,227,165, 2, 0,234,
/* 0x0a40 */ 0, 48,146,229, 3, 0, 83,227,163, 2, 0, 26, 8, 48,146,229,
/* 0x0a50 */ 8, 0,157,229, 0, 16,160,227, 0, 0,131,224, 1, 32,160,225,
/* 0x0a60 */ 254,255,255,235, 0, 80, 80,226,145, 2, 0,186, 10, 16,160,225,
/* 0x0a70 */ 2, 44,160,227,254,255,255,235, 2, 12, 80,227,147, 2, 0, 10,
/* 0x0a80 */ 127, 0,160,227,254,255,255,235, 0,224,160,227, 14, 32,160,225,
/* 0x0a90 */ 8,192,141,226, 10, 16,160,225, 9, 48,160,225, 5, 0,160,225,
/* 0x0aa0 */ 0, 80,141,232, 67, 1, 0,235, 7, 16,160,227, 0, 64,160,225,
/* 0x0ab0 */ 8, 32,157,229, 9, 0,160,225,206, 0, 0,235, 5, 0,160,225,
/* 0x0ac0 */ 254,255,255,235,167, 2, 0,234, 32, 32,130,226, 1, 16,129,226,
/* 0x0ad0 */ 0, 0, 81,225,129, 2, 0,186, 4, 0,160,225, 12,208,141,226,
/* 0x0ae0 */ 240,135,189,232, 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,
/* 0x0af0 */ 114,116, 97, 98, 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,
/* 0x0b00 */ 114,101,108, 46,116,101,120,116, 0, 46, 98,115,115, 0, 0, 0,
/* 0x0b10 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b20 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b30 */ 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0,
/* 0x0b40 */ 7, 0, 0, 0, 64,128, 0, 0, 52, 0, 0, 0,176, 10, 0, 0,
/* 0x0b50 */ 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b60 */ 27, 0, 0, 0, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b70 */ 92, 22, 0, 0,112, 3, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0,
/* 0x0b80 */ 4, 0, 0, 0, 8, 0, 0, 0, 37, 0, 0, 0, 8, 0, 0, 0,
/* 0x0b90 */ 3, 0, 0, 0, 0, 0, 0, 0,228, 10, 0, 0, 0, 0, 0, 0,
/* 0x0ba0 */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0bb0 */ 17, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0bc0 */ 228, 10, 0, 0, 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0bd0 */ 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0,
/* 0x0be0 */ 0, 0, 0, 0, 0, 0, 0, 0, 40, 12, 0, 0,176, 6, 0, 0,
/* 0x0bf0 */ 6, 0, 0, 0, 86, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0,
/* 0x0c00 */ 9, 0, 0, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c10 */ 216, 18, 0, 0,131, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c20 */ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c30 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c40 */ 0, 0, 0, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c50 */ 0, 0, 0, 0, 3, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c60 */ 0, 0, 0, 0, 4, 0,241,255, 30, 0, 0, 0, 4, 0, 0, 0,
/* 0x0c70 */ 0, 0, 0, 0, 0, 0,241,255, 35, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c80 */ 0, 0, 0, 0, 2, 0, 1, 0, 38, 0, 0, 0, 0, 0,144, 0,
/* 0x0c90 */ 0, 0, 0, 0, 0, 0,241,255, 56, 0, 0, 0, 52, 0, 0, 0,
/* 0x0ca0 */ 0, 0, 0, 0, 0, 0,241,255, 70, 0, 0, 0, 16, 0, 0, 0,
/* 0x0cb0 */ 0, 0, 0, 0, 0, 0,241,255, 77, 0, 0, 0, 2, 0, 0, 0,
/* 0x0cc0 */ 0, 0, 0, 0, 0, 0,241,255, 85, 0, 0, 0, 32, 0, 0, 0,
/* 0x0cd0 */ 0, 0, 0, 0, 0, 0,241,255, 99, 0, 0, 0, 8, 0, 0, 0,
/* 0x0ce0 */ 0, 0, 0, 0, 0, 0,241,255,107, 0, 0, 0, 20, 0, 0, 0,
/* 0x0cf0 */ 0, 0, 0, 0, 0, 0,241,255,115, 0, 0, 0, 12, 0, 0, 0,
/* 0x0d00 */ 0, 0, 0, 0, 0, 0,241,255,125, 0, 0, 0, 12, 0, 0, 0,
/* 0x0d10 */ 0, 0, 0, 0, 0, 0,241,255,135, 0, 0, 0, 12, 0, 0, 0,
/* 0x0d20 */ 0, 0, 0, 0, 0, 0,241,255,145, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d30 */ 0, 0, 0, 0, 0, 0,241,255,152, 0, 0, 0, 4, 0, 0, 0,
/* 0x0d40 */ 0, 0, 0, 0, 0, 0,241,255,159, 0, 0, 0, 8, 0, 0, 0,
/* 0x0d50 */ 0, 0, 0, 0, 0, 0,241,255,168, 0, 0, 0, 32, 0, 0, 0,
/* 0x0d60 */ 0, 0, 0, 0, 0, 0,241,255,182, 0, 0, 0, 2, 0, 0, 0,
/* 0x0d70 */ 0, 0, 0, 0, 0, 0,241,255,194, 0, 0, 0, 16, 0, 0, 0,
/* 0x0d80 */ 0, 0, 0, 0, 0, 0,241,255,204, 0, 0, 0, 1, 0, 0, 0,
/* 0x0d90 */ 0, 0, 0, 0, 0, 0,241,255,214, 0, 0, 0, 0, 0, 0, 0,
/* 0x0da0 */ 0, 0, 0, 0, 0, 0,241,255,223, 0, 0, 0, 12, 0, 0, 0,
/* 0x0db0 */ 0, 0, 0, 0, 0, 0,241,255,234, 0, 0, 0, 0, 16, 0, 0,
/* 0x0dc0 */ 0, 0, 0, 0, 0, 0,241,255,244, 0, 0, 0, 0, 16, 0, 0,
/* 0x0dd0 */ 0, 0, 0, 0, 0, 0,241,255,252, 0, 0, 0, 0, 16, 0, 0,
/* 0x0de0 */ 0, 0, 0, 0, 0, 0,241,255, 5, 1, 0, 0, 0, 2, 0, 0,
/* 0x0df0 */ 0, 0, 0, 0, 0, 0,241,255, 20, 1, 0, 0, 0, 4, 0, 0,
/* 0x0e00 */ 0, 0, 0, 0, 0, 0,241,255, 35, 1, 0, 0, 0, 0, 0, 0,
/* 0x0e10 */ 0, 0, 0, 0, 0, 0, 1, 0, 45, 1, 0, 0, 12, 0, 0, 0,
/* 0x0e20 */ 0, 0, 0, 0, 0, 0,241,255, 51, 1, 0, 0, 4, 0, 0, 0,
/* 0x0e30 */ 0, 0, 0, 0, 0, 0, 1, 0, 62, 1, 0, 0, 0, 0, 0, 0,
/* 0x0e40 */ 0, 0, 0, 0, 0, 0,241,255, 69, 1, 0, 0, 4, 0, 0, 0,
/* 0x0e50 */ 0, 0, 0, 0, 0, 0,241,255, 76, 1, 0, 0, 8, 0, 0, 0,
/* 0x0e60 */ 0, 0, 0, 0, 0, 0,241,255, 86, 1, 0, 0, 12, 0, 0, 0,
/* 0x0e70 */ 0, 0, 0, 0, 0, 0,241,255, 91, 1, 0, 0, 16, 0, 0, 0,
/* 0x0e80 */ 0, 0, 0, 0, 0, 0,241,255, 98, 1, 0, 0, 20, 0, 0, 0,
/* 0x0e90 */ 0, 0, 0, 0, 0, 0,241,255,105, 1, 0, 0, 24, 0, 0, 0,
/* 0x0ea0 */ 0, 0, 0, 0, 0, 0,241,255,113, 1, 0, 0, 24, 0, 0, 0,
/* 0x0eb0 */ 0, 0, 0, 0, 0, 0,241,255,122, 1, 0, 0, 28, 0, 0, 0,
/* 0x0ec0 */ 0, 0, 0, 0, 0, 0,241,255,130, 1, 0, 0,124, 0, 0, 0,
/* 0x0ed0 */ 0, 0, 0, 0, 0, 0, 1, 0,138, 1, 0, 0, 12, 0, 0, 0,
/* 0x0ee0 */ 0, 0, 0, 0, 0, 0,241,255,146, 1, 0, 0,204, 1, 0, 0,
/* 0x0ef0 */ 0, 0, 0, 0, 0, 0, 1, 0,157, 1, 0, 0,112, 1, 0, 0,
/* 0x0f00 */ 0, 0, 0, 0, 0, 0, 1, 0,168, 1, 0, 0,152, 1, 0, 0,
/* 0x0f10 */ 0, 0, 0, 0, 0, 0, 1, 0,174, 1, 0, 0,188, 1, 0, 0,
/* 0x0f20 */ 0, 0, 0, 0, 0, 0, 1, 0,188, 1, 0, 0,202, 1, 0, 0,
/* 0x0f30 */ 0, 0, 0, 0, 0, 0, 1, 0,204, 1, 0, 0,228, 1, 0, 0,
/* 0x0f40 */ 0, 0, 0, 0, 0, 0, 1, 0,212, 1, 0, 0, 12, 2, 0, 0,
/* 0x0f50 */ 0, 0, 0, 0, 0, 0, 1, 0,220, 1, 0, 0, 1, 0,144, 0,
/* 0x0f60 */ 0, 0, 0, 0, 0, 0,241,255,230, 1, 0, 0, 3, 0,144, 0,
/* 0x0f70 */ 0, 0, 0, 0, 0, 0,241,255,240, 1, 0, 0, 4, 0,144, 0,
/* 0x0f80 */ 0, 0, 0, 0, 0, 0,241,255,251, 1, 0, 0, 5, 0,144, 0,
/* 0x0f90 */ 0, 0, 0, 0, 0, 0,241,255, 5, 2, 0, 0, 6, 0,144, 0,
/* 0x0fa0 */ 0, 0, 0, 0, 0, 0,241,255, 16, 2, 0, 0, 10, 0,144, 0,
/* 0x0fb0 */ 0, 0, 0, 0, 0, 0,241,255, 28, 2, 0, 0, 20, 0,144, 0,
/* 0x0fc0 */ 0, 0, 0, 0, 0, 0,241,255, 40, 2, 0, 0, 45, 0,144, 0,
/* 0x0fd0 */ 0, 0, 0, 0, 0, 0,241,255, 49, 2, 0, 0, 85, 0,144, 0,
/* 0x0fe0 */ 0, 0, 0, 0, 0, 0,241,255, 63, 2, 0, 0,192, 0,144, 0,
/* 0x0ff0 */ 0, 0, 0, 0, 0, 0,241,255, 74, 2, 0, 0,125, 0,144, 0,
/* 0x1000 */ 0, 0, 0, 0, 0, 0,241,255, 88, 2, 0, 0, 91, 0,144, 0,
/* 0x1010 */ 0, 0, 0, 0, 0, 0,241,255,100, 2, 0, 0, 0, 0,159, 0,
/* 0x1020 */ 0, 0, 0, 0, 0, 0,241,255,114, 2, 0, 0, 2, 0,159, 0,
/* 0x1030 */ 0, 0, 0, 0, 0, 0,241,255,134, 2, 0, 0, 24, 2, 0, 0,
/* 0x1040 */ 0, 0, 0, 0, 1, 0, 1, 0, 35, 0, 0, 0, 28, 2, 0, 0,
/* 0x1050 */ 0, 0, 0, 0, 2, 0, 1, 0,137, 2, 0, 0,172, 2, 0, 0,
/* 0x1060 */ 0, 0, 0, 0, 0, 0, 1, 0,145, 2, 0, 0,148, 2, 0, 0,
/* 0x1070 */ 0, 0, 0, 0, 0, 0, 1, 0,134, 2, 0, 0,172, 2, 0, 0,
/* 0x1080 */ 0, 0, 0, 0, 1, 0, 1, 0, 35, 0, 0, 0,176, 2, 0, 0,
/* 0x1090 */ 0, 0, 0, 0, 2, 0, 1, 0,153, 2, 0, 0, 0, 0, 0, 0,
/* 0x10a0 */ 0, 0, 0, 0, 4, 0,241,255,178, 2, 0, 0, 64, 3, 0, 0,
/* 0x10b0 */ 32, 0, 0, 0, 2, 0, 1, 0, 35, 0, 0, 0, 64, 3, 0, 0,
/* 0x10c0 */ 0, 0, 0, 0, 2, 0, 1, 0,134, 2, 0, 0,104, 3, 0, 0,
/* 0x10d0 */ 0, 0, 0, 0, 1, 0, 1, 0,186, 2, 0, 0,108, 3, 0, 0,
/* 0x10e0 */ 96, 0, 0, 0, 2, 0, 1, 0, 35, 0, 0, 0,108, 3, 0, 0,
/* 0x10f0 */ 0, 0, 0, 0, 2, 0, 1, 0,192, 2, 0, 0,204, 3, 0, 0,
/* 0x1100 */ 72, 1, 0, 0, 2, 0, 1, 0,134, 2, 0, 0, 16, 5, 0, 0,
/* 0x1110 */ 0, 0, 0, 0, 1, 0, 1, 0,205, 2, 0, 0, 20, 5, 0, 0,
/* 0x1120 */ 104, 4, 0, 0, 2, 0, 1, 0, 35, 0, 0, 0, 20, 5, 0, 0,
/* 0x1130 */ 0, 0, 0, 0, 2, 0, 1, 0,134, 2, 0, 0,116, 9, 0, 0,
/* 0x1140 */ 0, 0, 0, 0, 1, 0, 1, 0, 35, 0, 0, 0,124, 9, 0, 0,
/* 0x1150 */ 0, 0, 0, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x1160 */ 0, 0, 0, 0, 4, 0,241,255,134, 2, 0, 0, 64,128, 0, 0,
/* 0x1170 */ 0, 0, 0, 0, 0, 0, 1, 0,134, 2, 0, 0,128,131, 0, 0,
/* 0x1180 */ 0, 0, 0, 0, 0, 0, 1, 0,213, 2, 0, 0, 96, 3, 0, 0,
/* 0x1190 */ 12, 0, 0, 0, 18, 0, 1, 0,227, 2, 0, 0,100, 2, 0, 0,
/* 0x11a0 */ 0, 0, 0, 0, 16, 0, 1, 0,234, 2, 0, 0,196, 2, 0, 0,
/* 0x11b0 */ 0, 0, 0, 0, 16, 0, 1, 0,249, 2, 0, 0, 76, 2, 0, 0,
/* 0x11c0 */ 0, 0, 0, 0, 16, 0, 1, 0, 0, 3, 0, 0, 92, 2, 0, 0,
/* 0x11d0 */ 0, 0, 0, 0, 16, 0, 1, 0, 9, 3, 0, 0,228, 2, 0, 0,
/* 0x11e0 */ 0, 0, 0, 0, 16, 0, 1, 0, 19, 3, 0, 0,132, 2, 0, 0,
/* 0x11f0 */ 0, 0, 0, 0, 16, 0, 1, 0, 24, 3, 0, 0,184, 2, 0, 0,
/* 0x1200 */ 0, 0, 0, 0, 16, 0, 1, 0, 38, 3, 0, 0,204, 2, 0, 0,
/* 0x1210 */ 0, 0, 0, 0, 16, 0, 1, 0, 52, 3, 0, 0, 44, 2, 0, 0,
/* 0x1220 */ 0, 0, 0, 0, 16, 0, 1, 0, 58, 3, 0, 0, 36, 2, 0, 0,
/* 0x1230 */ 0, 0, 0, 0, 16, 0, 1, 0, 63, 3, 0, 0, 68, 2, 0, 0,
/* 0x1240 */ 0, 0, 0, 0, 16, 0, 1, 0, 70, 3, 0, 0, 24, 2, 0, 0,
/* 0x1250 */ 0, 0, 0, 0, 16, 0, 1, 0, 78, 3, 0, 0,108, 2, 0, 0,
/* 0x1260 */ 0, 0, 0, 0, 16, 0, 1, 0, 87, 3, 0, 0, 32, 2, 0, 0,
/* 0x1270 */ 0, 0, 0, 0, 16, 0, 1, 0, 92, 3, 0, 0,124, 9, 0, 0,
/* 0x1280 */ 52, 1, 0, 0, 18, 0, 1, 0,101, 3, 0, 0, 84, 2, 0, 0,
/* 0x1290 */ 0, 0, 0, 0, 16, 0, 1, 0,105, 3, 0, 0, 52, 2, 0, 0,
/* 0x12a0 */ 0, 0, 0, 0, 16, 0, 1, 0,110, 3, 0, 0,228, 2, 0, 0,
/* 0x12b0 */ 0, 0, 0, 0, 16, 0, 1, 0,116, 3, 0, 0,108, 2, 0, 0,
/* 0x12c0 */ 0, 0, 0, 0, 16, 0, 1, 0,125, 3, 0, 0, 60, 2, 0, 0,
/* 0x12d0 */ 0, 0, 0, 0, 16, 0, 1, 0, 0,115,114, 99, 47, 97,114,109,
/* 0x12e0 */ 46,118, 52, 97, 45,108,105,110,117,120, 46,101,108,102, 45,102,
/* 0x12f0 */ 111,108,100, 46, 83, 0, 78, 66, 80, 87, 0, 36, 97, 0, 95, 95,
/* 0x1300 */ 78, 82, 95, 83, 89, 83, 67, 65, 76, 76, 95, 66, 65, 83, 69, 0,
/* 0x1310 */ 115,122, 95, 69,108,102, 51, 50, 95, 69,104,100,114, 0,101, 95,
/* 0x1320 */ 116,121,112,101, 0, 69, 84, 95, 69, 88, 69, 67, 0,115,122, 95,
/* 0x1330 */ 69,108,102, 51, 50, 95, 80,104,100,114, 0,112, 95,118, 97,100,
/* 0x1340 */ 100,114, 0,112, 95,109,101,109,115,122, 0,115,122, 95,108, 95,
/* 0x1350 */ 105,110,102,111, 0,115,122, 95,112, 95,105,110,102,111, 0,115,
/* 0x1360 */ 122, 95, 98, 95,105,110,102,111, 0,115,122, 95,117,110, 99, 0,
/* 0x1370 */ 115,122, 95, 99,112,114, 0, 98, 95,109,101,116,104,111,100, 0,
/* 0x1380 */ 77, 65, 80, 95, 65, 78, 79, 78, 89, 77, 79, 85, 83, 0, 77, 65,
/* 0x1390 */ 80, 95, 80, 82, 73, 86, 65, 84, 69, 0, 77, 65, 80, 95, 70, 73,
/* 0x13a0 */ 88, 69, 68, 0, 80, 82, 79, 84, 95, 82, 69, 65, 68, 0, 79, 95,
/* 0x13b0 */ 82, 68, 79, 78, 76, 89, 0, 80, 65, 71, 69, 95, 83, 72, 73, 70,
/* 0x13c0 */ 84, 0, 80, 65, 71, 69, 95, 83, 73, 90, 69, 0, 80, 65, 84, 72,
/* 0x13d0 */ 77, 65, 88, 0, 80, 65, 84, 72, 95, 77, 65, 88, 0, 77, 65, 88,
/* 0x13e0 */ 95, 69, 76, 70, 95, 72, 68, 82, 95, 51, 50, 0, 77, 65, 88, 95,
/* 0x13f0 */ 69, 76, 70, 95, 72, 68, 82, 95, 54, 52, 0,109,102,108,103, 95,
/* 0x1400 */ 100, 97,116, 97, 0, 83, 80, 95,102,100, 0,102,111,108,100, 95,
/* 0x1410 */ 98,101,103,105,110, 0, 70, 95, 76, 69, 78, 88, 0, 70, 95, 65,
/* 0x1420 */ 68, 82, 88, 0, 70, 95,101,108,102, 97,100,100,114, 0, 70, 95,
/* 0x1430 */ 102,100, 0, 70, 95, 65, 68, 82, 85, 0, 70, 95, 76, 69, 78, 85,
/* 0x1440 */ 0, 70, 95,102, 95,101,120,112, 0, 70, 95,101, 95, 97,117,120,
/* 0x1450 */ 118, 0, 70, 95,101,110,116,114,121, 0,108,105,110,107, 95,111,
/* 0x1460 */ 107, 0, 70, 95,100,101,108,116, 97, 0,102, 95,117,110,102,105,
/* 0x1470 */ 108,116,101,114, 0,110,111, 95,109, 97,112, 95,112,115,101, 0,
/* 0x1480 */ 115,119,101,101,112, 0,112,114,111, 99, 95,115,101,108,102, 95,
/* 0x1490 */ 101,120,101, 0,112,114,111, 99, 95,115,101,108,102, 95, 97,108,
/* 0x14a0 */ 105,103,110, 0,116,111,112, 95,117,110,102, 0,116,115,116, 95,
/* 0x14b0 */ 117,110,102, 0, 95, 95, 78, 82, 95,101,120,105,116, 0, 95, 95,
/* 0x14c0 */ 78, 82, 95,114,101, 97,100, 0, 95, 95, 78, 82, 95,119,114,105,
/* 0x14d0 */ 116,101, 0, 95, 95, 78, 82, 95,111,112,101,110, 0, 95, 95, 78,
/* 0x14e0 */ 82, 95, 99,108,111,115,101, 0, 95, 95, 78, 82, 95,117,110,108,
/* 0x14f0 */ 105,110,107, 0, 95, 95, 78, 82, 95,103,101,116,112,105,100, 0,
/* 0x1500 */ 95, 95, 78, 82, 95, 98,114,107, 0, 95, 95, 78, 82, 95,114,101,
/* 0x1510 */ 97,100,108,105,110,107, 0, 95, 95, 78, 82, 95,109,109, 97,112,
/* 0x1520 */ 50, 0, 95, 95, 78, 82, 95,109,112,114,111,116,101, 99,116, 0,
/* 0x1530 */ 95, 95, 78, 82, 95,109,117,110,109, 97,112, 0, 95, 95, 65, 82,
/* 0x1540 */ 77, 95, 78, 82, 95, 66, 65, 83, 69, 0, 95, 95, 65, 82, 77, 95,
/* 0x1550 */ 78, 82, 95, 99, 97, 99,104,101,102,108,117,115,104, 0, 36,100,
/* 0x1560 */ 0,109, 95,111,102,102, 52,107, 0,109,109, 97,112, 95,100,111,
/* 0x1570 */ 0, 97,114,109, 46,118, 52, 97, 45,108,105,110,117,120, 46,101,
/* 0x1580 */ 108,102, 45,109, 97,105,110, 46, 99, 0, 97,117,120,118, 95,117,
/* 0x1590 */ 112, 0,120,114,101, 97,100, 0,117,110,112, 97, 99,107, 69,120,
/* 0x15a0 */ 116,101,110,116, 0,100,111, 95,120,109, 97,112, 0,103,101,116,
/* 0x15b0 */ 95,112, 97,103,101, 95,109, 97,115,107, 0,109,117,110,109, 97,
/* 0x15c0 */ 112, 0,103,101,116, 95,115,121,115, 95,109,117,110,109, 97,112,
/* 0x15d0 */ 0,103,101,116,112,105,100, 0,114,101, 97,100,108,105,110,107,
/* 0x15e0 */ 0, 95, 95,117,100,105,118,115,105, 51, 0,109,109, 97,112, 0,
/* 0x15f0 */ 95, 95, 99,108,101, 97,114, 95, 99, 97, 99,104,101, 0,109,109,
/* 0x1600 */ 97,112, 95,112,114,105,118, 97,110,111,110, 0,119,114,105,116,
/* 0x1610 */ 101, 0,114,101, 97,100, 0,117,110,108,105,110,107, 0,109,121,
/* 0x1620 */ 95, 98,107,112,116, 0, 80,112,114,111,116,101, 99,116, 0,101,
/* 0x1630 */ 120,105,116, 0,117,112,120, 95,109, 97,105,110, 0, 98,114,107,
/* 0x1640 */ 0,111,112,101,110, 0,100,105,118, 49, 48, 0,109,112,114,111,
/* 0x1650 */ 116,101, 99,116, 0, 99,108,111,115,101, 0, 0, 36, 0, 0, 0,
/* 0x1660 */ 1, 1, 0, 0, 60, 0, 0, 0, 1, 1, 0, 0, 80, 0, 0, 0,
/* 0x1670 */ 1, 1, 0, 0,108, 0, 0, 0, 1, 90, 0, 0,152, 0, 0, 0,
/* 0x1680 */ 1, 1, 0, 0,240, 0, 0, 0, 1, 1, 0, 0, 28, 1, 0, 0,
/* 0x1690 */ 1,101, 0, 0, 52, 1, 0, 0, 1,102, 0, 0, 60, 1, 0, 0,
/* 0x16a0 */ 1, 87, 0, 0, 72, 1, 0, 0, 1, 1, 0, 0,100, 1, 0, 0,
/* 0x16b0 */ 1, 92, 0, 0,108, 1, 0, 0, 1,106, 0, 0,168, 1, 0, 0,
/* 0x16c0 */ 1, 1, 0, 0,244, 1, 0, 0, 1, 1, 0, 0, 16, 2, 0, 0,
/* 0x16d0 */ 1, 1, 0, 0,224, 2, 0, 0, 1, 1, 0, 0, 84, 3, 0, 0,
/* 0x16e0 */ 1, 1, 0, 0,136, 3, 0, 0, 1, 1, 0, 0,144, 3, 0, 0,
/* 0x16f0 */ 1,100, 0, 0,172, 3, 0, 0, 1, 1, 0, 0,228, 3, 0, 0,
/* 0x1700 */ 1, 1, 0, 0,244, 3, 0, 0, 1, 1, 0, 0, 4, 4, 0, 0,
/* 0x1710 */ 1, 1, 0, 0, 16, 4, 0, 0, 1, 1, 0, 0, 28, 4, 0, 0,
/* 0x1720 */ 1, 1, 0, 0, 32, 4, 0, 0, 1, 1, 0, 0, 40, 4, 0, 0,
/* 0x1730 */ 1, 1, 0, 0, 48, 4, 0, 0, 1,100, 0, 0, 56, 4, 0, 0,
/* 0x1740 */ 1, 1, 0, 0, 68, 4, 0, 0, 1, 1, 0, 0, 76, 4, 0, 0,
/* 0x1750 */ 1, 1, 0, 0,116, 4, 0, 0, 1, 1, 0, 0,132, 4, 0, 0,
/* 0x1760 */ 1, 1, 0, 0,148, 4, 0, 0, 1, 1, 0, 0,156, 4, 0, 0,
/* 0x1770 */ 1, 1, 0, 0,168, 4, 0, 0, 1, 1, 0, 0,212, 4, 0, 0,
/* 0x1780 */ 1, 1, 0, 0,228, 4, 0, 0, 1, 1, 0, 0, 4, 5, 0, 0,
/* 0x1790 */ 1, 1, 0, 0, 56, 5, 0, 0, 1, 1, 0, 0,104, 5, 0, 0,
/* 0x17a0 */ 1, 87, 0, 0,108, 5, 0, 0, 1, 1, 0, 0,148, 5, 0, 0,
/* 0x17b0 */ 1, 1, 0, 0,160, 5, 0, 0, 1, 1, 0, 0,172, 5, 0, 0,
/* 0x17c0 */ 1, 1, 0, 0,212, 5, 0, 0, 1, 1, 0, 0, 0, 6, 0, 0,
/* 0x17d0 */ 1, 94, 0, 0, 32, 6, 0, 0, 1, 1, 0, 0, 44, 6, 0, 0,
/* 0x17e0 */ 1, 1, 0, 0, 56, 6, 0, 0, 1, 1, 0, 0, 76, 6, 0, 0,
/* 0x17f0 */ 1, 1, 0, 0, 80, 6, 0, 0, 1, 1, 0, 0, 92, 6, 0, 0,
/* 0x1800 */ 1, 1, 0, 0,104, 6, 0, 0, 1, 1, 0, 0,116, 6, 0, 0,
/* 0x1810 */ 1, 1, 0, 0,128, 6, 0, 0, 1, 1, 0, 0,156, 6, 0, 0,
/* 0x1820 */ 1, 1, 0, 0,172, 6, 0, 0, 1, 1, 0, 0,188, 6, 0, 0,
/* 0x1830 */ 1, 1, 0, 0, 20, 7, 0, 0, 1, 1, 0, 0, 48, 7, 0, 0,
/* 0x1840 */ 1, 94, 0, 0, 56, 7, 0, 0, 1, 1, 0, 0, 84, 7, 0, 0,
/* 0x1850 */ 1, 1, 0, 0, 88, 7, 0, 0, 1, 1, 0, 0,128, 7, 0, 0,
/* 0x1860 */ 1, 92, 0, 0,136, 7, 0, 0, 1, 1, 0, 0,156, 7, 0, 0,
/* 0x1870 */ 1, 1, 0, 0,164, 7, 0, 0, 1, 1, 0, 0,188, 7, 0, 0,
/* 0x1880 */ 1, 1, 0, 0,200, 7, 0, 0, 1, 1, 0, 0,204, 7, 0, 0,
/* 0x1890 */ 1, 88, 0, 0,220, 7, 0, 0, 1, 1, 0, 0,232, 7, 0, 0,
/* 0x18a0 */ 1, 1, 0, 0,252, 7, 0, 0, 1, 1, 0, 0, 32, 8, 0, 0,
/* 0x18b0 */ 1, 1, 0, 0, 36, 8, 0, 0, 1, 1, 0, 0, 68, 8, 0, 0,
/* 0x18c0 */ 1, 92, 0, 0, 76, 8, 0, 0, 1, 1, 0, 0, 80, 8, 0, 0,
/* 0x18d0 */ 1, 1, 0, 0,112, 8, 0, 0, 1, 93, 0, 0,116, 8, 0, 0,
/* 0x18e0 */ 1, 1, 0, 0,132, 8, 0, 0, 1, 99, 0, 0,140, 8, 0, 0,
/* 0x18f0 */ 1, 1, 0, 0,148, 8, 0, 0, 1,100, 0, 0,176, 8, 0, 0,
/* 0x1900 */ 1, 1, 0, 0,196, 8, 0, 0, 1, 94, 0, 0,204, 8, 0, 0,
/* 0x1910 */ 1, 1, 0, 0,208, 8, 0, 0, 1, 1, 0, 0,240, 8, 0, 0,
/* 0x1920 */ 1, 1, 0, 0, 36, 9, 0, 0, 1, 1, 0, 0, 40, 9, 0, 0,
/* 0x1930 */ 1, 1, 0, 0, 76, 9, 0, 0, 1, 93, 0, 0, 92, 9, 0, 0,
/* 0x1940 */ 1, 99, 0, 0,108, 9, 0, 0, 1, 1, 0, 0,112, 9, 0, 0,
/* 0x1950 */ 1, 1, 0, 0,172, 9, 0, 0, 1, 1, 0, 0,228, 9, 0, 0,
/* 0x1960 */ 1, 1, 0, 0,248, 9, 0, 0, 1, 1, 0, 0, 8, 10, 0, 0,
/* 0x1970 */ 1, 1, 0, 0, 20, 10, 0, 0, 1, 1, 0, 0, 44, 10, 0, 0,
/* 0x1980 */ 1,103, 0, 0, 52, 10, 0, 0, 1, 1, 0, 0, 64, 10, 0, 0,
/* 0x1990 */ 1, 96, 0, 0, 72, 10, 0, 0, 1, 1, 0, 0, 80, 10, 0, 0,
/* 0x19a0 */ 1,100, 0, 0,112, 10, 0, 0, 1, 1, 0, 0,132, 10, 0, 0,
/* 0x19b0 */ 1, 1, 0, 0,140, 10, 0, 0, 1,106, 0, 0,144, 10, 0, 0,
/* 0x19c0 */ 1, 1, 0, 0,160, 10, 0, 0, 1, 1, 0, 0
/* 0x0020 */ 92, 11, 0, 0, 0, 0, 0, 0, 52, 0, 0, 0, 0, 0, 40, 0,
/* 0x0030 */ 7, 0, 4, 0, 34, 0, 0, 0, 4, 32,160,225, 5, 48,160,225,
/* 0x0040 */ 240, 31,189,232, 13, 16,160,225, 1,218, 77,226, 13, 0,160,225,
/* 0x0050 */ 252, 31, 45,233, 4, 48,145,228, 0, 0, 83,227, 4, 48,128,228,
/* 0x0060 */ 6, 0, 0, 26, 0, 64,160,225, 4, 48,128,228, 4, 48,145,228,
/* 0x0070 */ 0, 0, 83,227, 4, 48,128,228, 12, 0, 0, 26, 1, 80,160,225,
/* 0x0080 */ 12, 0,177,232, 0, 0, 82,227, 12, 0,160,232, 17, 0, 0, 26,
/* 0x0090 */ 1, 96,160,225, 0,144,160,225, 1, 42,160,227, 0, 16,160,225,
/* 0x00a0 */ 14, 0,160,225, 1, 32, 66,226,254,255,255,235, 1, 10,112,227,
/* 0x00b0 */ 14, 16,160, 33, 14, 0,160, 35, 0, 32,129,224, 6, 0,160,225,
/* 0x00c0 */ 0, 48,160,227, 1, 48, 96,229, 1, 48,114,229, 1, 48, 96,229,
/* 0x00d0 */ 2, 0, 81,225, 35, 0, 0, 26, 61, 48,160,227, 1, 48, 96,229,
/* 0x00e0 */ 32, 48,160,227, 1, 48, 96,229, 1, 48, 96,229, 1, 48, 96,229,
/* 0x00f0 */ 0, 0,132,229, 32, 1,160,225, 0, 1,160,225, 0, 48, 38,224,
/* 0x0100 */ 4, 48, 3,226, 4, 48, 35,226, 3, 0, 64,224, 6, 48, 64,224,
/* 0x0110 */ 5, 48,131,224, 9, 16,160,225, 24, 80,157,229, 24, 0,141,229,
/* 0x0120 */ 4, 32, 49,229, 13, 0, 81,225, 4, 32, 32,229, 57, 0, 0, 26,
/* 0x0130 */ 0,208,160,225, 16, 12,189,232, 10,220, 77,226, 4,144,154,229,
/* 0x0140 */ 13,128,160,225, 0,112,154,229,184, 96,143,226, 12,144,137,226,
/* 0x0150 */ 248, 15, 45,233, 15, 0,189,232,254,255,255,235, 20,208,141,226,
/* 0x0160 */ 10,220,141,226, 16, 0,141,229,104, 16,155,229, 11, 0,160,225,
/* 0x0170 */ 254,255,255,235, 11, 0,160,225,254,255,255,235, 4, 64,157,228,
/* 0x0180 */ 0, 0, 84,227, 92, 0, 0,186, 0, 80,160,227, 48, 0, 45,233,
/* 0x0190 */ 2, 48,160,227, 1, 32,160,227, 1, 26,160,227, 0, 0,160,227,
/* 0x01a0 */ 254,255,255,235, 3, 0,189,232,254,255,255,235, 7, 64,189,232,
/* 0x01b0 */ 0, 48,160,227, 0, 64,160,227, 0, 80,160,227, 0, 96,160,227,
/* 0x01c0 */ 0,128,160,227, 0,144,160,227, 0,160,160,227, 0,176,160,227,
/* 0x01d0 */ 1,199, 77,226, 32,112, 29,228, 0,112,141,229, 0,112,157,229,
/* 0x01e0 */ 13, 0, 92,225,102, 0, 0, 58, 1,215,141,226, 0,112,160,227,
/* 0x01f0 */ 0,192,160,227, 4,240, 18,229, 47,112,114,111, 99, 47,115,101,
/* 0x0200 */ 108,102, 47,101,120,101, 0, 0,255, 48, 3,226, 80, 0, 83,227,
/* 0x0210 */ 14,240,160, 17, 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1,
/* 0x0220 */ 1, 16, 65,226, 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227,
/* 0x0230 */ 131, 0, 0, 26,255, 52, 2,226, 1, 32, 66,224,255, 36,194,227,
/* 0x0240 */ 3, 32,130,225, 1, 33,128,231, 0, 0, 81,227,121, 0, 0, 26,
/* 0x0250 */ 14,240,160,225,240, 1,240,231, 14,240,160,225, 1, 0,144,239,
/* 0x0260 */ 3, 0,144,239, 14,240,160,225, 4, 0,144,239, 14,240,160,225,
/* 0x0270 */ 5, 0,144,239, 14,240,160,225, 6, 0,144,239, 14,240,160,225,
/* 0x0280 */ 10, 0,144,239, 14,240,160,225, 20, 0,144,239, 14,240,160,225,
/* 0x0290 */ 45, 0,144,239, 14,240,160,225, 85, 0,144,239, 14,240,160,225,
/* 0x02a0 */ 91, 0,144,239, 14,240,160,225, 56,192,159,229, 0,192, 12,224,
/* 0x02b0 */ 12, 0, 64,224, 12, 16,129,224,125, 0,144,239, 14,240,160,225,
/* 0x02c0 */ 48, 64, 45,233, 16, 80,157,229, 12, 64,157,229, 37, 86,160,225,
/* 0x02d0 */ 16,192,159,229, 0,192, 12,224, 12, 0, 64,224, 12, 16,129,224,
/* 0x02e0 */ 192, 0,144,239, 48,128,189,232,255, 15, 0, 0,192, 0,144,239,
/* 0x02f0 */ 48,128,189,232, 0, 32,160,227, 2, 0,159,239, 14,240,160,225,
/* 0x0300 */ 104, 0, 31,229, 14,240,160,225, 48, 64, 45,233,224, 66, 31,229,
/* 0x0310 */ 0, 80,160,227, 4, 48,131,225, 0, 64,224,227,165, 0, 0,234,
/* 0x0320 */ 0,192,160,225, 1, 16, 65,224, 0, 32,160,225,128, 1,144,224,
/* 0x0330 */ 129, 17,161,224,162, 30,129,224, 0, 32,160,225, 0, 2,144,224,
/* 0x0340 */ 1, 18,161,224, 34, 30,129,224, 0, 32,160,225, 0, 4,144,224,
/* 0x0350 */ 1, 20,161,224, 34, 28,129,224, 0, 32,160,225, 0, 8,144,224,
/* 0x0360 */ 1, 24,161,224, 34, 24,129,224,140, 15, 80,224,172, 16,193,224,
/* 0x0370 */ 12, 0,144,224, 0, 0,161,226, 14,240,160,225, 0, 0,159,229,
/* 0x0380 */ 30,255, 47,225, 0,240,255,255, 0, 0, 80,227, 4,224, 45,229,
/* 0x0390 */ 4,240,157, 4, 1, 48, 16,226, 4,240,157, 20, 3,192,160,225,
/* 0x03a0 */ 3,224,160,225, 0, 48,144,229, 1, 0, 83,225, 1,224,142, 2,
/* 0x03b0 */ 4, 32,128, 5,225, 0, 0, 10, 1, 0, 83,227,236, 0, 0, 10,
/* 0x03c0 */ 0, 48,144,229, 0, 0, 83,227,237, 0, 0, 26, 0, 0, 94,227,
/* 0x03d0 */ 4,240,157, 20, 0, 0, 92,227, 4, 32,140, 21, 0, 16,140, 21,
/* 0x03e0 */ 4,240,157, 20,127, 0,160,227,254,255,255,235, 0,192,160,225,
/* 0x03f0 */ 8, 0,128,226,218, 0, 0,234, 0, 48,144,229, 2, 0, 83,225,
/* 0x0400 */ 4, 48,144,229, 4,224, 45,229, 3,192,160, 33, 2,224,160,225,
/* 0x0410 */ 2, 32,160, 33,251, 0, 0, 42,127, 0,160,227,254,255,255,235,
/* 0x0420 */ 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226, 1, 0,114,227,
/* 0x0430 */ 1,192,140,226, 1, 16,129,226,249, 0, 0, 26, 4, 32,144,229,
/* 0x0440 */ 0, 48,144,229, 14, 32,130,224, 3, 48,110,224, 0, 48,128,229,
/* 0x0450 */ 4, 32,128,229, 4,240,157,228,240, 64, 45,233, 0, 80,160,225,
/* 0x0460 */ 20,208, 77,226, 1, 64,160,225, 2,112,160,225, 3, 96,160,225,
/* 0x0470 */ 83, 1, 0,234, 4, 16,141,226, 5, 0,160,225, 12, 32,160,227,
/* 0x0480 */ 239, 0, 0,235, 4,224,157,229, 0, 0, 94,227, 8, 16,157,229,
/* 0x0490 */ 29, 1, 0, 26, 0, 49,159,229, 3, 0, 81,225, 31, 1, 0, 26,
/* 0x04a0 */ 0, 48,149,229, 0, 0, 83,227, 31, 1, 0, 26, 86, 1, 0,234,
/* 0x04b0 */ 0, 0, 81,227, 33, 1, 0, 26,127, 0,160,227,254,255,255,235,
/* 0x04c0 */ 14, 0, 81,225, 31, 1, 0,138, 0, 48,148,229, 3, 0, 94,225,
/* 0x04d0 */ 31, 1, 0,138, 14, 0, 81,225, 74, 1, 0, 42, 12,192,221,229,
/* 0x04e0 */ 4, 0,149,229, 4, 32,148,229, 16, 48,141,226, 16,224,141,229,
/* 0x04f0 */ 0,192,141,229, 15,224,160,225, 23,255, 47,225, 0, 0, 80,227,
/* 0x0500 */ 31, 1, 0, 26, 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225,
/* 0x0510 */ 31, 1, 0, 26, 13, 32,221,229, 0, 0, 82,227, 0, 0, 86, 19,
/* 0x0520 */ 68, 1, 0, 10, 2, 12, 81,227, 63, 1, 0,138, 0, 48,148,229,
/* 0x0530 */ 1, 0, 83,225, 68, 1, 0, 26, 2, 48,160,225, 4, 0,148,229,
/* 0x0540 */ 14, 32,221,229, 15,224,160,225, 22,255, 47,225, 8, 48,157,229,
/* 0x0550 */ 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,133,232,
/* 0x0560 */ 78, 1, 0,234, 1, 32,160,225, 5, 0,160,225, 4, 16,148,229,
/* 0x0570 */ 239, 0, 0,235, 4, 48,157,229, 6, 0,148,232, 3, 32,130,224,
/* 0x0580 */ 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229, 0, 0, 83,227,
/* 0x0590 */ 14, 1, 0, 26, 20,208,141,226,240,128,189,232, 85, 80, 88, 33,
/* 0x05a0 */ 240, 79, 45,233, 1,160,160,225, 28, 16,145,229, 44,208, 77,226,
/* 0x05b0 */ 0, 0, 82,227, 12, 32,141,229, 16, 0,141,229, 8, 48,141,229,
/* 0x05c0 */ 1, 80,138,224,113, 1, 0, 10, 80, 32,157,229, 0, 0,146,229,
/* 0x05d0 */ 176, 49,208,225, 52, 16,128,226, 2, 0, 83,227, 40, 48,145, 21,
/* 0x05e0 */ 8, 0,145, 5, 0, 48,160, 3, 0, 0, 99, 16, 20, 16,145,229,
/* 0x05f0 */ 20, 48,141, 5, 20, 0,141, 21,254,255,255,235,152, 1, 0,234,
/* 0x0600 */ 176, 49,218,225,188, 34,218,225, 3, 0, 83,227, 12, 16,157,229,
/* 0x0610 */ 16,224,160, 19, 0,224,160, 3, 1,192, 66,226, 5, 0,160,225,
/* 0x0620 */ 0, 64,224,227,137, 1, 0,234, 0, 48,144,229, 1, 0, 83,227,
/* 0x0630 */ 135, 1, 0, 26, 20, 48,144,229, 0, 0, 83,227,135, 1, 0, 10,
/* 0x0640 */ 8, 32,144,229, 2, 48,131,224, 3, 0, 81,225, 3, 16,160, 49,
/* 0x0650 */ 2, 0, 84,225, 2, 64,160, 33, 32, 0,128,226, 1,192, 76,226,
/* 0x0660 */ 0, 0, 92,227,123, 1, 0,170,255, 78,196,227, 15, 64,196,227,
/* 0x0670 */ 1, 16,100,224,255, 30,129,226, 15, 16,129,226,255, 30,193,227,
/* 0x0680 */ 15, 16,193,227, 14, 48,160,225, 4, 0,160,225, 0, 32,160,227,
/* 0x0690 */ 254,255,255,235, 0, 0,100,224, 20, 0,141,229, 0,192,160,227,
/* 0x06a0 */ 32, 80,133,226, 24,192,141,229, 66, 2, 0,234, 12, 0,157,229,
/* 0x06b0 */ 0, 0, 80,227,169, 1, 0, 10, 32, 48, 21,229, 6, 0, 83,227,
/* 0x06c0 */ 169, 1, 0, 26, 24, 32, 21,229, 20, 48,157,229, 8, 0,157,229,
/* 0x06d0 */ 2, 32,131,224, 3, 16,160,227,211, 0, 0,235, 62, 2, 0,234,
/* 0x06e0 */ 32, 48, 21,229, 1, 0, 83,227, 62, 2, 0, 26, 12, 48, 21,229,
/* 0x06f0 */ 0, 0, 83,227, 62, 2, 0, 10, 12,192,157,229, 0, 0, 92,227,
/* 0x0700 */ 197, 1, 0, 10, 28, 48, 21,229, 0, 0, 83,227,197, 1, 0, 26,
/* 0x0710 */ 28, 48,154,229, 24, 32, 21,229, 20, 0,157,229, 3, 32,130,224,
/* 0x0720 */ 2, 32,128,224, 3, 16,160,227, 8, 0,157,229,211, 0, 0,235,
/* 0x0730 */ 8, 0,157,229, 5, 16,160,227,188, 34,218,225,211, 0, 0,235,
/* 0x0740 */ 8, 0,157,229, 4, 16,160,227,186, 34,218,225,211, 0, 0,235,
/* 0x0750 */ 8, 16, 21,229,148, 34,159,229, 7, 48, 1,226, 3, 49,160,225,
/* 0x0760 */ 50, 67,160,225, 24, 48, 21,229, 20, 32,157,229, 12,192,157,229,
/* 0x0770 */ 3,176,130,224, 11, 42,160,225, 16, 48, 21,229, 12, 0, 21,229,
/* 0x0780 */ 34, 42,160,225, 0, 0, 92,227, 36, 48,141,229, 40,176,141,229,
/* 0x0790 */ 2,128,131,224, 7,144, 4,226, 32, 0,141,229, 11, 96, 98,224,
/* 0x07a0 */ 235, 1, 0, 10, 1, 0, 17,227, 3, 32,160, 3, 7, 32,160, 19,
/* 0x07b0 */ 6, 0,160,225, 8, 16,160,225, 16, 48,160,227,254,255,255,235,
/* 0x07c0 */ 0, 0, 86,225, 46, 2, 0, 26, 84, 32,157,229, 4, 48, 20,226,
/* 0x07d0 */ 2, 48,160, 17, 12, 0,157,229, 36, 16,141,226, 16, 32,157,229,
/* 0x07e0 */ 7, 1, 0,235,247, 1, 0,234, 28,192, 21,229, 12,192, 98,224,
/* 0x07f0 */ 4,192,141,229, 16,192,157,229, 6, 0,160,225, 8, 16,160,225,
/* 0x0800 */ 9, 32,160,225, 18, 48,160,227, 0,192,141,229,254,255,255,235,
/* 0x0810 */ 0, 0, 86,225, 46, 2, 0, 26, 0, 48,104,226, 3,122,160,225,
/* 0x0820 */ 2, 0, 25,227, 39,122,160,225, 4, 2, 0, 10, 0, 0, 87,227,
/* 0x0830 */ 4, 2, 0, 10, 8, 16,134,224, 7, 32,160,225, 0, 48,160,227,
/* 0x0840 */ 1, 32, 82,226, 1, 48,193,228, 0, 2, 0, 26, 12, 0,157,229,
/* 0x0850 */ 0, 0, 80,227, 48, 2, 0, 10,254,255,255,235, 32, 48, 21,229,
/* 0x0860 */ 1, 0, 83,227, 28, 0,141,229, 40, 2, 0, 26, 8, 48, 21,229,
/* 0x0870 */ 1, 0, 19,227, 40, 2, 0, 10, 16, 48, 21,229, 12, 32, 21,229,
/* 0x0880 */ 3, 0, 82,225, 24, 48, 21,229, 79, 2, 0, 26, 3, 48,130,224,
/* 0x0890 */ 20, 32,157,229, 3, 48,131,226, 3, 48,130,224, 3, 0,195,227,
/* 0x08a0 */ 0, 48, 96,226, 3, 58,160,225, 35, 58,160,225, 11, 0, 83,227,
/* 0x08b0 */ 79, 2, 0,154, 28, 48,157,229, 0, 48,128,229, 48, 49,159,229,
/* 0x08c0 */ 4, 48,128,229, 44, 49,159,229, 12, 16,128,226, 8, 48,128,229,
/* 0x08d0 */ 0, 64,160,225,254,255,255,235,104, 2, 0,234, 6, 0,160,225,
/* 0x08e0 */ 8, 16,160,225, 9, 32,160,225,254,255,255,235, 0, 0, 80,227,
/* 0x08f0 */ 48, 2, 0, 10,127, 0,160,227,254,255,255,235, 32,192,157,229,
/* 0x0900 */ 7, 48,136,224, 12, 16,139,224, 3, 64,134,224, 1, 0, 84,225,
/* 0x0910 */ 62, 2, 0, 42, 1, 16,100,224, 9, 32,160,225, 4, 0,160,225,
/* 0x0920 */ 16, 48,160,227,254,255,255,235, 0, 0, 84,225, 62, 2, 0, 10,
/* 0x0930 */ 61, 2, 0,234, 24, 0,157,229, 1, 0,128,226, 24, 0,141,229,
/* 0x0940 */ 32, 80,133,226,188, 50,218,225, 24, 32,157,229, 3, 0, 82,225,
/* 0x0950 */ 156, 1, 0,186, 80, 48,157,229, 0, 0, 83,227, 20,192,157, 21,
/* 0x0960 */ 0,192,131, 21, 20, 32,157,229, 24, 0,154,229, 0, 0,130,224,
/* 0x0970 */ 44,208,141,226,240,143,189,232, 0,224,160,227, 0,192,224,227,
/* 0x0980 */ 14, 0,160,225, 1, 26,160,227, 7, 32,160,227, 34, 48,160,227,
/* 0x0990 */ 0, 80,141,232,254,255,255,235, 0, 0, 80,227, 40, 2, 0, 10,
/* 0x09a0 */ 3, 48,128,226, 3, 64,195,227, 68, 48,159,229, 28, 0,157,229,
/* 0x09b0 */ 4, 48,132,229, 60, 48,159,229, 0, 0,132,229, 12, 16,132,226,
/* 0x09c0 */ 4, 0,160,225, 8, 48,132,229,254,255,255,235, 4, 0,160,225,
/* 0x09d0 */ 12, 16,160,227, 5, 32,160,227,254,255,255,235, 4, 32,160,225,
/* 0x09e0 */ 8, 0,157,229, 0, 16,160,227,211, 0, 0,235, 40, 2, 0,234,
/* 0x09f0 */ 64, 98, 81,115, 3, 0,189,232, 14,240,160,225,240, 71, 45,233,
/* 0x0a00 */ 12,208, 77,226, 52, 96,141,226, 0,144,160,225, 1,112,160,225,
/* 0x0a10 */ 3,128,160,225, 6, 0,160,225, 44, 16,141,226, 0, 48,160,227,
/* 0x0a20 */ 48,160,157,229, 2, 80,160,225, 52, 64,157,229, 7, 1, 0,235,
/* 0x0a30 */ 60, 48,157,229, 12,224,141,226, 56,192,157,229, 4, 48, 46,229,
/* 0x0a40 */ 12,192,100,224, 6, 32,160,225, 10, 16,160,225, 9, 48,160,225,
/* 0x0a50 */ 5, 0,160,225, 56,192,141,229, 0,224,141,229, 52,112,141,229,
/* 0x0a60 */ 4,128,141,229, 89, 1, 0,235, 0, 64,160,225, 9, 16,160,227,
/* 0x0a70 */ 9, 0,160,225, 4, 32,160,225,211, 0, 0,235,188, 2,218,225,
/* 0x0a80 */ 52, 32,138,226, 0, 16,160,227,184, 2, 0,234, 0, 48,146,229,
/* 0x0a90 */ 3, 0, 83,227,182, 2, 0, 26, 8, 48,146,229, 8, 0,157,229,
/* 0x0aa0 */ 0, 16,160,227, 0, 0,131,224, 1, 32,160,225,254,255,255,235,
/* 0x0ab0 */ 0, 80, 80,226,164, 2, 0,186, 10, 16,160,225, 2, 44,160,227,
/* 0x0ac0 */ 254,255,255,235, 2, 12, 80,227,166, 2, 0, 10,127, 0,160,227,
/* 0x0ad0 */ 254,255,255,235, 0,224,160,227, 14, 32,160,225, 8,192,141,226,
/* 0x0ae0 */ 10, 16,160,225, 9, 48,160,225, 5, 0,160,225, 0, 80,141,232,
/* 0x0af0 */ 89, 1, 0,235, 7, 16,160,227, 0, 64,160,225, 8, 32,157,229,
/* 0x0b00 */ 9, 0,160,225,211, 0, 0,235, 5, 0,160,225,254,255,255,235,
/* 0x0b10 */ 186, 2, 0,234, 32, 32,130,226, 1, 16,129,226, 0, 0, 81,225,
/* 0x0b20 */ 148, 2, 0,186, 4, 0,160,225, 12,208,141,226,240,135,189,232,
/* 0x0b30 */ 0, 46,115,121,109,116, 97, 98, 0, 46,115,116,114,116, 97, 98,
/* 0x0b40 */ 0, 46,115,104,115,116,114,116, 97, 98, 0, 46,114,101,108, 46,
/* 0x0b50 */ 116,101,120,116, 0, 46, 98,115,115, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b60 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0b80 */ 0, 0, 0, 0, 31, 0, 0, 0, 1, 0, 0, 0, 7, 0, 0, 0,
/* 0x0b90 */ 64,128, 0, 0, 52, 0, 0, 0,252, 10, 0, 0, 0, 0, 0, 0,
/* 0x0ba0 */ 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0, 27, 0, 0, 0,
/* 0x0bb0 */ 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,212, 22, 0, 0,
/* 0x0bc0 */ 112, 3, 0, 0, 5, 0, 0, 0, 1, 0, 0, 0, 4, 0, 0, 0,
/* 0x0bd0 */ 8, 0, 0, 0, 37, 0, 0, 0, 8, 0, 0, 0, 3, 0, 0, 0,
/* 0x0be0 */ 0, 0, 0, 0, 48, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0bf0 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0,
/* 0x0c00 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 48, 11, 0, 0,
/* 0x0c10 */ 42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0c20 */ 0, 0, 0, 0, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c30 */ 0, 0, 0, 0,116, 12, 0, 0,208, 6, 0, 0, 6, 0, 0, 0,
/* 0x0c40 */ 88, 0, 0, 0, 4, 0, 0, 0, 16, 0, 0, 0, 9, 0, 0, 0,
/* 0x0c50 */ 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 68, 19, 0, 0,
/* 0x0c60 */ 141, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0,
/* 0x0c70 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c80 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0c90 */ 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0ca0 */ 3, 0, 3, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0cb0 */ 4, 0,241,255, 30, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x0cc0 */ 0, 0,241,255, 35, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0cd0 */ 2, 0, 1, 0, 38, 0, 0, 0, 0, 0,144, 0, 0, 0, 0, 0,
/* 0x0ce0 */ 0, 0,241,255, 56, 0, 0, 0, 52, 0, 0, 0, 0, 0, 0, 0,
/* 0x0cf0 */ 0, 0,241,255, 70, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d00 */ 0, 0,241,255, 77, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d10 */ 0, 0,241,255, 85, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d20 */ 0, 0,241,255, 99, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d30 */ 0, 0,241,255,107, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d40 */ 0, 0,241,255,115, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d50 */ 0, 0,241,255,125, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d60 */ 0, 0,241,255,135, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d70 */ 0, 0,241,255,145, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d80 */ 0, 0,241,255,152, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x0d90 */ 0, 0,241,255,159, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
/* 0x0da0 */ 0, 0,241,255,168, 0, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
/* 0x0db0 */ 0, 0,241,255,182, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x0dc0 */ 0, 0,241,255,194, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
/* 0x0dd0 */ 0, 0,241,255,204, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0de0 */ 0, 0,241,255,214, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0df0 */ 0, 0,241,255,223, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
/* 0x0e00 */ 0, 0,241,255,234, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
/* 0x0e10 */ 0, 0,241,255,244, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
/* 0x0e20 */ 0, 0,241,255,252, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0,
/* 0x0e30 */ 0, 0,241,255, 5, 1, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,
/* 0x0e40 */ 0, 0,241,255, 20, 1, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0,
/* 0x0e50 */ 0, 0,241,255, 35, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0e60 */ 0, 0, 1, 0, 45, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
/* 0x0e70 */ 0, 0,241,255, 51, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x0e80 */ 0, 0, 1, 0, 62, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0e90 */ 0, 0,241,255, 69, 1, 0, 0, 4, 0, 0, 0, 0, 0, 0, 0,
/* 0x0ea0 */ 0, 0,241,255, 76, 1, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
/* 0x0eb0 */ 0, 0,241,255, 86, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
/* 0x0ec0 */ 0, 0,241,255, 91, 1, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
/* 0x0ed0 */ 0, 0,241,255, 98, 1, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0,
/* 0x0ee0 */ 0, 0,241,255,105, 1, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
/* 0x0ef0 */ 0, 0,241,255,113, 1, 0, 0, 24, 0, 0, 0, 0, 0, 0, 0,
/* 0x0f00 */ 0, 0,241,255,122, 1, 0, 0, 28, 0, 0, 0, 0, 0, 0, 0,
/* 0x0f10 */ 0, 0,241,255,130, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0,
/* 0x0f20 */ 0, 0,241,255,135, 1, 0, 0, 36, 0, 0, 0, 0, 0, 0, 0,
/* 0x0f30 */ 0, 0,241,255,140, 1, 0, 0,132, 0, 0, 0, 0, 0, 0, 0,
/* 0x0f40 */ 0, 0, 1, 0,148, 1, 0, 0, 12, 0, 0, 0, 0, 0, 0, 0,
/* 0x0f50 */ 0, 0,241,255,156, 1, 0, 0,212, 1, 0, 0, 0, 0, 0, 0,
/* 0x0f60 */ 0, 0, 1, 0,167, 1, 0, 0,120, 1, 0, 0, 0, 0, 0, 0,
/* 0x0f70 */ 0, 0, 1, 0,178, 1, 0, 0,160, 1, 0, 0, 0, 0, 0, 0,
/* 0x0f80 */ 0, 0, 1, 0,184, 1, 0, 0,196, 1, 0, 0, 0, 0, 0, 0,
/* 0x0f90 */ 0, 0, 1, 0,198, 1, 0, 0,210, 1, 0, 0, 0, 0, 0, 0,
/* 0x0fa0 */ 0, 0, 1, 0,214, 1, 0, 0,236, 1, 0, 0, 0, 0, 0, 0,
/* 0x0fb0 */ 0, 0, 1, 0,222, 1, 0, 0, 20, 2, 0, 0, 0, 0, 0, 0,
/* 0x0fc0 */ 0, 0, 1, 0,230, 1, 0, 0, 1, 0,144, 0, 0, 0, 0, 0,
/* 0x0fd0 */ 0, 0,241,255,240, 1, 0, 0, 3, 0,144, 0, 0, 0, 0, 0,
/* 0x0fe0 */ 0, 0,241,255,250, 1, 0, 0, 4, 0,144, 0, 0, 0, 0, 0,
/* 0x0ff0 */ 0, 0,241,255, 5, 2, 0, 0, 5, 0,144, 0, 0, 0, 0, 0,
/* 0x1000 */ 0, 0,241,255, 15, 2, 0, 0, 6, 0,144, 0, 0, 0, 0, 0,
/* 0x1010 */ 0, 0,241,255, 26, 2, 0, 0, 10, 0,144, 0, 0, 0, 0, 0,
/* 0x1020 */ 0, 0,241,255, 38, 2, 0, 0, 20, 0,144, 0, 0, 0, 0, 0,
/* 0x1030 */ 0, 0,241,255, 50, 2, 0, 0, 45, 0,144, 0, 0, 0, 0, 0,
/* 0x1040 */ 0, 0,241,255, 59, 2, 0, 0, 85, 0,144, 0, 0, 0, 0, 0,
/* 0x1050 */ 0, 0,241,255, 73, 2, 0, 0,192, 0,144, 0, 0, 0, 0, 0,
/* 0x1060 */ 0, 0,241,255, 84, 2, 0, 0,125, 0,144, 0, 0, 0, 0, 0,
/* 0x1070 */ 0, 0,241,255, 98, 2, 0, 0, 91, 0,144, 0, 0, 0, 0, 0,
/* 0x1080 */ 0, 0,241,255,110, 2, 0, 0, 0, 0,159, 0, 0, 0, 0, 0,
/* 0x1090 */ 0, 0,241,255,124, 2, 0, 0, 2, 0,159, 0, 0, 0, 0, 0,
/* 0x10a0 */ 0, 0,241,255,144, 2, 0, 0, 32, 2, 0, 0, 0, 0, 0, 0,
/* 0x10b0 */ 1, 0, 1, 0, 35, 0, 0, 0, 36, 2, 0, 0, 0, 0, 0, 0,
/* 0x10c0 */ 2, 0, 1, 0,147, 2, 0, 0,180, 2, 0, 0, 0, 0, 0, 0,
/* 0x10d0 */ 0, 0, 1, 0,155, 2, 0, 0,156, 2, 0, 0, 0, 0, 0, 0,
/* 0x10e0 */ 0, 0, 1, 0,144, 2, 0, 0,180, 2, 0, 0, 0, 0, 0, 0,
/* 0x10f0 */ 1, 0, 1, 0, 35, 0, 0, 0,184, 2, 0, 0, 0, 0, 0, 0,
/* 0x1100 */ 2, 0, 1, 0,163, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x1110 */ 4, 0,241,255, 35, 0, 0, 0, 72, 3, 0, 0, 0, 0, 0, 0,
/* 0x1120 */ 2, 0, 1, 0,144, 2, 0, 0, 80, 3, 0, 0, 0, 0, 0, 0,
/* 0x1130 */ 1, 0, 1, 0,188, 2, 0, 0, 84, 3, 0, 0,112, 0, 0, 0,
/* 0x1140 */ 2, 0, 1, 0, 35, 0, 0, 0, 84, 3, 0, 0, 0, 0, 0, 0,
/* 0x1150 */ 2, 0, 1, 0,196, 2, 0, 0,196, 3, 0, 0, 96, 0, 0, 0,
/* 0x1160 */ 2, 0, 1, 0,202, 2, 0, 0, 36, 4, 0, 0, 72, 1, 0, 0,
/* 0x1170 */ 2, 0, 1, 0,144, 2, 0, 0,104, 5, 0, 0, 0, 0, 0, 0,
/* 0x1180 */ 1, 0, 1, 0,215, 2, 0, 0,108, 5, 0, 0, 92, 4, 0, 0,
/* 0x1190 */ 2, 0, 1, 0, 35, 0, 0, 0,108, 5, 0, 0, 0, 0, 0, 0,
/* 0x11a0 */ 2, 0, 1, 0,144, 2, 0, 0,188, 9, 0, 0, 0, 0, 0, 0,
/* 0x11b0 */ 1, 0, 1, 0, 35, 0, 0, 0,200, 9, 0, 0, 0, 0, 0, 0,
/* 0x11c0 */ 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x11d0 */ 4, 0,241,255,144, 2, 0, 0, 64,128, 0, 0, 0, 0, 0, 0,
/* 0x11e0 */ 0, 0, 1, 0,144, 2, 0, 0,136,131, 0, 0, 0, 0, 0, 0,
/* 0x11f0 */ 0, 0, 1, 0,223, 2, 0, 0, 72, 3, 0, 0, 12, 0, 0, 0,
/* 0x1200 */ 18, 0, 1, 0,237, 2, 0, 0,108, 2, 0, 0, 0, 0, 0, 0,
/* 0x1210 */ 16, 0, 1, 0,244, 2, 0, 0,204, 2, 0, 0, 0, 0, 0, 0,
/* 0x1220 */ 16, 0, 1, 0, 3, 3, 0, 0, 84, 2, 0, 0, 0, 0, 0, 0,
/* 0x1230 */ 16, 0, 1, 0, 10, 3, 0, 0,100, 2, 0, 0, 0, 0, 0, 0,
/* 0x1240 */ 16, 0, 1, 0, 19, 3, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,
/* 0x1250 */ 16, 0, 1, 0, 29, 3, 0, 0,140, 2, 0, 0, 0, 0, 0, 0,
/* 0x1260 */ 16, 0, 1, 0, 34, 3, 0, 0,192, 2, 0, 0, 0, 0, 0, 0,
/* 0x1270 */ 16, 0, 1, 0, 48, 3, 0, 0,212, 2, 0, 0, 0, 0, 0, 0,
/* 0x1280 */ 16, 0, 1, 0, 62, 3, 0, 0, 52, 2, 0, 0, 0, 0, 0, 0,
/* 0x1290 */ 16, 0, 1, 0, 68, 3, 0, 0, 44, 2, 0, 0, 0, 0, 0, 0,
/* 0x12a0 */ 16, 0, 1, 0, 73, 3, 0, 0, 76, 2, 0, 0, 0, 0, 0, 0,
/* 0x12b0 */ 16, 0, 1, 0, 80, 3, 0, 0, 32, 2, 0, 0, 0, 0, 0, 0,
/* 0x12c0 */ 16, 0, 1, 0, 88, 3, 0, 0,116, 2, 0, 0, 0, 0, 0, 0,
/* 0x12d0 */ 16, 0, 1, 0, 97, 3, 0, 0, 40, 2, 0, 0, 0, 0, 0, 0,
/* 0x12e0 */ 16, 0, 1, 0,102, 3, 0, 0,200, 9, 0, 0, 52, 1, 0, 0,
/* 0x12f0 */ 18, 0, 1, 0,111, 3, 0, 0, 92, 2, 0, 0, 0, 0, 0, 0,
/* 0x1300 */ 16, 0, 1, 0,115, 3, 0, 0, 60, 2, 0, 0, 0, 0, 0, 0,
/* 0x1310 */ 16, 0, 1, 0,120, 3, 0, 0,236, 2, 0, 0, 0, 0, 0, 0,
/* 0x1320 */ 16, 0, 1, 0,126, 3, 0, 0,116, 2, 0, 0, 0, 0, 0, 0,
/* 0x1330 */ 16, 0, 1, 0,135, 3, 0, 0, 68, 2, 0, 0, 0, 0, 0, 0,
/* 0x1340 */ 16, 0, 1, 0, 0,115,114, 99, 47, 97,114,109, 46,118, 52, 97,
/* 0x1350 */ 45,108,105,110,117,120, 46,101,108,102, 45,102,111,108,100, 46,
/* 0x1360 */ 83, 0, 78, 66, 80, 87, 0, 36, 97, 0, 95, 95, 78, 82, 95, 83,
/* 0x1370 */ 89, 83, 67, 65, 76, 76, 95, 66, 65, 83, 69, 0,115,122, 95, 69,
/* 0x1380 */ 108,102, 51, 50, 95, 69,104,100,114, 0,101, 95,116,121,112,101,
/* 0x1390 */ 0, 69, 84, 95, 69, 88, 69, 67, 0,115,122, 95, 69,108,102, 51,
/* 0x13a0 */ 50, 95, 80,104,100,114, 0,112, 95,118, 97,100,100,114, 0,112,
/* 0x13b0 */ 95,109,101,109,115,122, 0,115,122, 95,108, 95,105,110,102,111,
/* 0x13c0 */ 0,115,122, 95,112, 95,105,110,102,111, 0,115,122, 95, 98, 95,
/* 0x13d0 */ 105,110,102,111, 0,115,122, 95,117,110, 99, 0,115,122, 95, 99,
/* 0x13e0 */ 112,114, 0, 98, 95,109,101,116,104,111,100, 0, 77, 65, 80, 95,
/* 0x13f0 */ 65, 78, 79, 78, 89, 77, 79, 85, 83, 0, 77, 65, 80, 95, 80, 82,
/* 0x1400 */ 73, 86, 65, 84, 69, 0, 77, 65, 80, 95, 70, 73, 88, 69, 68, 0,
/* 0x1410 */ 80, 82, 79, 84, 95, 82, 69, 65, 68, 0, 79, 95, 82, 68, 79, 78,
/* 0x1420 */ 76, 89, 0, 80, 65, 71, 69, 95, 83, 72, 73, 70, 84, 0, 80, 65,
/* 0x1430 */ 71, 69, 95, 83, 73, 90, 69, 0, 80, 65, 84, 72, 77, 65, 88, 0,
/* 0x1440 */ 80, 65, 84, 72, 95, 77, 65, 88, 0, 77, 65, 88, 95, 69, 76, 70,
/* 0x1450 */ 95, 72, 68, 82, 95, 51, 50, 0, 77, 65, 88, 95, 69, 76, 70, 95,
/* 0x1460 */ 72, 68, 82, 95, 54, 52, 0,109,102,108,103, 95,100, 97,116, 97,
/* 0x1470 */ 0, 83, 80, 95,102,100, 0,102,111,108,100, 95, 98,101,103,105,
/* 0x1480 */ 110, 0, 70, 95, 76, 69, 78, 88, 0, 70, 95, 65, 68, 82, 88, 0,
/* 0x1490 */ 70, 95,101,108,102, 97,100,100,114, 0, 70, 95,102,100, 0, 70,
/* 0x14a0 */ 95, 65, 68, 82, 85, 0, 70, 95, 76, 69, 78, 85, 0, 70, 95,102,
/* 0x14b0 */ 95,101,120,112, 0, 70, 95,101, 95, 97,117,120,118, 0, 70, 95,
/* 0x14c0 */ 101,110,116,114,121, 0, 70, 95,114, 48, 0, 70, 95,114, 49, 0,
/* 0x14d0 */ 108,105,110,107, 95,111,107, 0, 70, 95,100,101,108,116, 97, 0,
/* 0x14e0 */ 102, 95,117,110,102,105,108,116,101,114, 0,110,111, 95,109, 97,
/* 0x14f0 */ 112, 95,112,115,101, 0,115,119,101,101,112, 0,112,114,111, 99,
/* 0x1500 */ 95,115,101,108,102, 95,101,120,101, 0,112,114,111, 99, 95,115,
/* 0x1510 */ 101,108,102, 95, 97,108,105,103,110, 0,116,111,112, 95,117,110,
/* 0x1520 */ 102, 0,116,115,116, 95,117,110,102, 0, 95, 95, 78, 82, 95,101,
/* 0x1530 */ 120,105,116, 0, 95, 95, 78, 82, 95,114,101, 97,100, 0, 95, 95,
/* 0x1540 */ 78, 82, 95,119,114,105,116,101, 0, 95, 95, 78, 82, 95,111,112,
/* 0x1550 */ 101,110, 0, 95, 95, 78, 82, 95, 99,108,111,115,101, 0, 95, 95,
/* 0x1560 */ 78, 82, 95,117,110,108,105,110,107, 0, 95, 95, 78, 82, 95,103,
/* 0x1570 */ 101,116,112,105,100, 0, 95, 95, 78, 82, 95, 98,114,107, 0, 95,
/* 0x1580 */ 95, 78, 82, 95,114,101, 97,100,108,105,110,107, 0, 95, 95, 78,
/* 0x1590 */ 82, 95,109,109, 97,112, 50, 0, 95, 95, 78, 82, 95,109,112,114,
/* 0x15a0 */ 111,116,101, 99,116, 0, 95, 95, 78, 82, 95,109,117,110,109, 97,
/* 0x15b0 */ 112, 0, 95, 95, 65, 82, 77, 95, 78, 82, 95, 66, 65, 83, 69, 0,
/* 0x15c0 */ 95, 95, 65, 82, 77, 95, 78, 82, 95, 99, 97, 99,104,101,102,108,
/* 0x15d0 */ 117,115,104, 0, 36,100, 0,109, 95,111,102,102, 52,107, 0,109,
/* 0x15e0 */ 109, 97,112, 95,100,111, 0, 97,114,109, 46,118, 52, 97, 45,108,
/* 0x15f0 */ 105,110,117,120, 46,101,108,102, 45,109, 97,105,110, 46, 99, 0,
/* 0x1600 */ 97,117,120,118, 95,117,112, 0,120,114,101, 97,100, 0,117,110,
/* 0x1610 */ 112, 97, 99,107, 69,120,116,101,110,116, 0,100,111, 95,120,109,
/* 0x1620 */ 97,112, 0,103,101,116, 95,112, 97,103,101, 95,109, 97,115,107,
/* 0x1630 */ 0,109,117,110,109, 97,112, 0,103,101,116, 95,115,121,115, 95,
/* 0x1640 */ 109,117,110,109, 97,112, 0,103,101,116,112,105,100, 0,114,101,
/* 0x1650 */ 97,100,108,105,110,107, 0, 95, 95,117,100,105,118,115,105, 51,
/* 0x1660 */ 0,109,109, 97,112, 0, 95, 95, 99,108,101, 97,114, 95, 99, 97,
/* 0x1670 */ 99,104,101, 0,109,109, 97,112, 95,112,114,105,118, 97,110,111,
/* 0x1680 */ 110, 0,119,114,105,116,101, 0,114,101, 97,100, 0,117,110,108,
/* 0x1690 */ 105,110,107, 0,109,121, 95, 98,107,112,116, 0, 80,112,114,111,
/* 0x16a0 */ 116,101, 99,116, 0,101,120,105,116, 0,117,112,120, 95,109, 97,
/* 0x16b0 */ 105,110, 0, 98,114,107, 0,111,112,101,110, 0,100,105,118, 49,
/* 0x16c0 */ 48, 0,109,112,114,111,116,101, 99,116, 0, 99,108,111,115,101,
/* 0x16d0 */ 0, 0, 0, 0, 44, 0, 0, 0, 1, 1, 0, 0, 68, 0, 0, 0,
/* 0x16e0 */ 1, 1, 0, 0, 88, 0, 0, 0, 1, 1, 0, 0,116, 0, 0, 0,
/* 0x16f0 */ 1, 92, 0, 0,160, 0, 0, 0, 1, 1, 0, 0,248, 0, 0, 0,
/* 0x1700 */ 1, 1, 0, 0, 36, 1, 0, 0, 1,103, 0, 0, 60, 1, 0, 0,
/* 0x1710 */ 1,104, 0, 0, 68, 1, 0, 0, 1, 89, 0, 0, 80, 1, 0, 0,
/* 0x1720 */ 1, 1, 0, 0,108, 1, 0, 0, 1, 94, 0, 0,116, 1, 0, 0,
/* 0x1730 */ 1,108, 0, 0,176, 1, 0, 0, 1, 1, 0, 0,252, 1, 0, 0,
/* 0x1740 */ 1, 1, 0, 0, 24, 2, 0, 0, 1, 1, 0, 0,232, 2, 0, 0,
/* 0x1750 */ 1, 1, 0, 0,128, 3, 0, 0, 1, 1, 0, 0,136, 3, 0, 0,
/* 0x1760 */ 1, 1, 0, 0,148, 3, 0, 0, 1, 1, 0, 0,180, 3, 0, 0,
/* 0x1770 */ 1,102, 0, 0,192, 3, 0, 0, 1, 1, 0, 0,224, 3, 0, 0,
/* 0x1780 */ 1, 1, 0, 0,232, 3, 0, 0, 1,102, 0, 0, 4, 4, 0, 0,
/* 0x1790 */ 1, 1, 0, 0, 60, 4, 0, 0, 1, 1, 0, 0, 76, 4, 0, 0,
/* 0x17a0 */ 1, 1, 0, 0, 92, 4, 0, 0, 1, 1, 0, 0,104, 4, 0, 0,
/* 0x17b0 */ 1, 1, 0, 0,116, 4, 0, 0, 1, 1, 0, 0,120, 4, 0, 0,
/* 0x17c0 */ 1, 1, 0, 0,128, 4, 0, 0, 1, 1, 0, 0,136, 4, 0, 0,
/* 0x17d0 */ 1,102, 0, 0,144, 4, 0, 0, 1, 1, 0, 0,156, 4, 0, 0,
/* 0x17e0 */ 1, 1, 0, 0,164, 4, 0, 0, 1, 1, 0, 0,204, 4, 0, 0,
/* 0x17f0 */ 1, 1, 0, 0,220, 4, 0, 0, 1, 1, 0, 0,236, 4, 0, 0,
/* 0x1800 */ 1, 1, 0, 0,244, 4, 0, 0, 1, 1, 0, 0, 0, 5, 0, 0,
/* 0x1810 */ 1, 1, 0, 0, 44, 5, 0, 0, 1, 1, 0, 0, 60, 5, 0, 0,
/* 0x1820 */ 1, 1, 0, 0, 92, 5, 0, 0, 1, 1, 0, 0,144, 5, 0, 0,
/* 0x1830 */ 1, 1, 0, 0,196, 5, 0, 0, 1, 89, 0, 0,200, 5, 0, 0,
/* 0x1840 */ 1, 1, 0, 0,240, 5, 0, 0, 1, 1, 0, 0,252, 5, 0, 0,
/* 0x1850 */ 1, 1, 0, 0, 8, 6, 0, 0, 1, 1, 0, 0, 48, 6, 0, 0,
/* 0x1860 */ 1, 1, 0, 0, 92, 6, 0, 0, 1, 96, 0, 0,116, 6, 0, 0,
/* 0x1870 */ 1, 1, 0, 0,128, 6, 0, 0, 1, 1, 0, 0,140, 6, 0, 0,
/* 0x1880 */ 1, 1, 0, 0,164, 6, 0, 0, 1, 1, 0, 0,168, 6, 0, 0,
/* 0x1890 */ 1, 1, 0, 0,180, 6, 0, 0, 1, 1, 0, 0,192, 6, 0, 0,
/* 0x18a0 */ 1, 1, 0, 0,204, 6, 0, 0, 1, 1, 0, 0,216, 6, 0, 0,
/* 0x18b0 */ 1, 1, 0, 0,248, 6, 0, 0, 1, 1, 0, 0, 8, 7, 0, 0,
/* 0x18c0 */ 1, 1, 0, 0, 24, 7, 0, 0, 1, 1, 0, 0,108, 7, 0, 0,
/* 0x18d0 */ 1, 1, 0, 0,136, 7, 0, 0, 1, 96, 0, 0,144, 7, 0, 0,
/* 0x18e0 */ 1, 1, 0, 0,172, 7, 0, 0, 1, 1, 0, 0,176, 7, 0, 0,
/* 0x18f0 */ 1, 1, 0, 0,216, 7, 0, 0, 1, 94, 0, 0,224, 7, 0, 0,
/* 0x1900 */ 1, 1, 0, 0,244, 7, 0, 0, 1, 1, 0, 0,252, 7, 0, 0,
/* 0x1910 */ 1, 1, 0, 0, 20, 8, 0, 0, 1, 1, 0, 0, 32, 8, 0, 0,
/* 0x1920 */ 1, 1, 0, 0, 36, 8, 0, 0, 1, 90, 0, 0, 52, 8, 0, 0,
/* 0x1930 */ 1, 1, 0, 0, 64, 8, 0, 0, 1, 1, 0, 0, 84, 8, 0, 0,
/* 0x1940 */ 1, 1, 0, 0,124, 8, 0, 0, 1, 1, 0, 0,160, 8, 0, 0,
/* 0x1950 */ 1, 95, 0, 0,164, 8, 0, 0, 1, 1, 0, 0,180, 8, 0, 0,
/* 0x1960 */ 1,101, 0, 0,188, 8, 0, 0, 1, 1, 0, 0,196, 8, 0, 0,
/* 0x1970 */ 1,102, 0, 0,220, 8, 0, 0, 1, 1, 0, 0,240, 8, 0, 0,
/* 0x1980 */ 1, 96, 0, 0,248, 8, 0, 0, 1, 1, 0, 0,252, 8, 0, 0,
/* 0x1990 */ 1, 1, 0, 0, 28, 9, 0, 0, 1, 1, 0, 0, 96, 9, 0, 0,
/* 0x19a0 */ 1, 94, 0, 0,104, 9, 0, 0, 1, 1, 0, 0,148, 9, 0, 0,
/* 0x19b0 */ 1, 95, 0, 0,164, 9, 0, 0, 1,101, 0, 0,180, 9, 0, 0,
/* 0x19c0 */ 1, 1, 0, 0,184, 9, 0, 0, 1, 1, 0, 0,248, 9, 0, 0,
/* 0x19d0 */ 1, 1, 0, 0, 48, 10, 0, 0, 1, 1, 0, 0, 68, 10, 0, 0,
/* 0x19e0 */ 1, 1, 0, 0, 84, 10, 0, 0, 1, 1, 0, 0, 96, 10, 0, 0,
/* 0x19f0 */ 1, 1, 0, 0,120, 10, 0, 0, 1,105, 0, 0,128, 10, 0, 0,
/* 0x1a00 */ 1, 1, 0, 0,140, 10, 0, 0, 1, 98, 0, 0,148, 10, 0, 0,
/* 0x1a10 */ 1, 1, 0, 0,156, 10, 0, 0, 1,102, 0, 0,188, 10, 0, 0,
/* 0x1a20 */ 1, 1, 0, 0,208, 10, 0, 0, 1, 1, 0, 0,216, 10, 0, 0,
/* 0x1a30 */ 1,108, 0, 0,220, 10, 0, 0, 1, 1, 0, 0,236, 10, 0, 0,
/* 0x1a40 */ 1, 1, 0, 0
};
+874 -874
View File
File diff suppressed because it is too large Load Diff
+194 -189
View File
@@ -1,5 +1,5 @@
/* arm.v5a-linux.elf-fold.h
created from arm.v5a-linux.elf-fold.bin, 3036 (0xbdc) bytes
created from arm.v5a-linux.elf-fold.bin, 3112 (0xc28) bytes
This file is part of the UPX executable compressor.
@@ -32,199 +32,204 @@
/* clang-format off */
#define STUB_ARM_V5A_LINUX_ELF_FOLD_SIZE 3036
#define STUB_ARM_V5A_LINUX_ELF_FOLD_ADLER32 0xd9bbf0b1
#define STUB_ARM_V5A_LINUX_ELF_FOLD_CRC32 0x0d61dcce
#define STUB_ARM_V5A_LINUX_ELF_FOLD_SIZE 3112
#define STUB_ARM_V5A_LINUX_ELF_FOLD_ADLER32 0x00e10a4f
#define STUB_ARM_V5A_LINUX_ELF_FOLD_CRC32 0x40179cdb
unsigned char stub_arm_v5a_linux_elf_fold[3036] = {
unsigned char stub_arm_v5a_linux_elf_fold[3112] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 40, 0, 1, 0, 0, 0,128,128, 0, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 2, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0,128, 0, 0,
/* 0x0040 */ 0,128, 0, 0,220, 11, 0, 0,220, 11, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0,220, 11, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0,128, 0, 0, 40, 12, 0, 0, 40, 12, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0,128, 0, 0, 1, 0, 0, 0, 40, 12, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 34, 0, 0, 0,192, 31,189,232, 13, 16,160,225, 1,218, 77,226,
/* 0x0090 */ 13, 0,160,225,240, 31, 45,233, 4, 48,145,228, 0, 0, 83,227,
/* 0x00a0 */ 4, 48,128,228,251,255,255, 26, 0, 64,160,225, 4, 48,128,228,
/* 0x00b0 */ 4, 48,145,228, 0, 0, 83,227, 4, 48,128,228,251,255,255, 26,
/* 0x00c0 */ 1, 80,160,225, 12, 0,177,232, 0, 0, 82,227, 12, 0,160,232,
/* 0x00d0 */ 251,255,255, 26, 1, 96,160,225, 0,144,160,225, 1, 42,160,227,
/* 0x00e0 */ 0, 16,160,225, 14, 0,160,225, 1, 32, 66,226,146, 0, 0,235,
/* 0x00f0 */ 1, 10,112,227, 14, 16,160, 33, 14, 0,160, 35, 0, 32,129,224,
/* 0x0100 */ 6, 0,160,225, 0, 48,160,227, 1, 48, 96,229, 1, 48,114,229,
/* 0x0110 */ 1, 48, 96,229, 2, 0, 81,225,251,255,255, 26, 61, 48,160,227,
/* 0x0120 */ 1, 48, 96,229, 32, 48,160,227, 1, 48, 96,229, 1, 48, 96,229,
/* 0x0130 */ 1, 48, 96,229, 0, 0,132,229, 32, 1,160,225, 0, 1,160,225,
/* 0x0140 */ 0, 48, 38,224, 4, 48, 3,226, 4, 48, 35,226, 3, 0, 64,224,
/* 0x0150 */ 6, 48, 64,224, 5, 48,131,224, 9, 16,160,225, 24, 80,157,229,
/* 0x0160 */ 24, 0,141,229, 4, 32, 49,229, 13, 0, 81,225, 4, 32, 32,229,
/* 0x0170 */ 251,255,255, 26, 0,208,160,225, 16, 12,189,232, 10,220, 77,226,
/* 0x0180 */ 4,144,154,229, 13,128,160,225, 0,112,154,229,184, 96,143,226,
/* 0x0190 */ 12,144,137,226,248, 15, 45,233, 15, 0,189,232, 65, 2, 0,235,
/* 0x01a0 */ 20,208,141,226, 10,220,141,226, 16, 0,141,229,104, 16,155,229,
/* 0x01b0 */ 11, 0,160,225, 91, 0, 0,235, 11, 0,160,225, 99, 0, 0,235,
/* 0x01c0 */ 4, 64,157,228, 0, 0, 84,227, 8, 0, 0,186, 0, 80,160,227,
/* 0x01d0 */ 48, 0, 45,233, 2, 48,160,227, 1, 32,160,227, 1, 26,160,227,
/* 0x01e0 */ 0, 0,160,227,103, 0, 0,235, 3, 0,189,232, 62, 0, 0,235,
/* 0x01f0 */ 7, 64,189,232, 0, 48,160,227, 0, 64,160,227, 0, 80,160,227,
/* 0x0200 */ 0, 96,160,227, 0,128,160,227, 0,144,160,227, 0,160,160,227,
/* 0x0210 */ 0,176,160,227, 1,199, 77,226, 32,112, 29,228, 0,112,141,229,
/* 0x0220 */ 0,112,157,229, 13, 0, 92,225,250,255,255, 58, 1,215,141,226,
/* 0x0230 */ 0,192,160,227, 91,112,160,227, 14,240,160,225, 47,112,114,111,
/* 0x0240 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0,255, 48, 3,226,
/* 0x0250 */ 80, 0, 83,227, 14,240,160, 17, 33, 17,176,225, 0, 0, 80, 19,
/* 0x0260 */ 14,240,160, 1, 1, 16, 65,226, 1, 33,144,231, 15, 52, 2,226,
/* 0x0270 */ 11, 4, 83,227, 4, 0, 0, 26,255, 52, 2,226, 1, 32, 66,224,
/* 0x0280 */ 255, 36,194,227, 3, 32,130,225, 1, 33,128,231, 0, 0, 81,227,
/* 0x0290 */ 243,255,255, 26, 14,240,160,225,240, 1,240,231, 14,240,160,225,
/* 0x02a0 */ 7,192,160,225, 1,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x02b0 */ 7,192,160,225, 3,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x02c0 */ 14,240,160,225, 7,192,160,225, 4,112,160,227, 0, 0, 0,239,
/* 0x02d0 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 5,112,160,227,
/* 0x02e0 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x02f0 */ 6,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0300 */ 7,192,160,225, 10,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0310 */ 14,240,160,225, 7,192,160,225, 20,112,160,227, 0, 0, 0,239,
/* 0x0320 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 45,112,160,227,
/* 0x0330 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x0340 */ 85,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0350 */ 7,192,160,225, 91,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0360 */ 14,240,160,225, 80,192,159,229, 0,192, 12,224, 12, 0, 64,224,
/* 0x0370 */ 12, 16,129,224, 7,192,160,225,125,112,160,227, 0, 0, 0,239,
/* 0x0380 */ 12,112,160,225, 14,240,160,225, 48, 64, 45,233, 16, 80,157,229,
/* 0x0390 */ 12, 64,157,229, 37, 86,160,225, 28,192,159,229, 0,192, 12,224,
/* 0x03a0 */ 12, 0, 64,224, 12, 16,129,224, 7,192,160,225,192,112,160,227,
/* 0x03b0 */ 0, 0, 0,239, 12,112,160,225, 48,128,189,232,255, 15, 0, 0,
/* 0x03c0 */ 7,192,160,225,192,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x03d0 */ 48,128,189,232, 0, 32,160,227, 7,192,160,225, 7,192,160,225,
/* 0x03e0 */ 2,112,160,227, 15,120,135,227, 0, 0, 0,239, 12,112,160,225,
/* 0x03f0 */ 12,112,160,225, 14,240,160,225,168, 0, 31,229, 14,240,160,225,
/* 0x0400 */ 48, 64, 45,233,140, 67, 31,229, 0, 80,160,227, 4, 48,131,225,
/* 0x0410 */ 0, 64,224,227,223,255,255,234, 0,192,160,225, 1, 16, 65,224,
/* 0x0420 */ 0, 32,160,225,128, 1,144,224,129, 17,161,224,162, 30,129,224,
/* 0x0430 */ 0, 32,160,225, 0, 2,144,224, 1, 18,161,224, 34, 30,129,224,
/* 0x0440 */ 0, 32,160,225, 0, 4,144,224, 1, 20,161,224, 34, 28,129,224,
/* 0x0450 */ 0, 32,160,225, 0, 8,144,224, 1, 24,161,224, 34, 24,129,224,
/* 0x0460 */ 140, 15, 80,224,172, 16,193,224, 12, 0,144,224, 0, 0,161,226,
/* 0x0470 */ 14,240,160,225, 0, 0, 80,227, 30,255, 47, 1, 0, 48,144,229,
/* 0x0480 */ 1, 0, 83,225, 8, 0,128, 18,251,255,255, 26, 4, 32,128,229,
/* 0x0490 */ 30,255, 47,225, 0, 0,159,229, 30,255, 47,225, 0,240,255,255,
/* 0x04a0 */ 0, 48,144,229, 4,224, 45,229, 2, 0, 83,225, 4, 48,144,229,
/* 0x04b0 */ 2,224,160,225, 3,192,160, 33, 2, 32,160, 33, 3, 0, 0, 42,
/* 0x04c0 */ 127, 0,160,227,117,255,255,235, 1, 48, 92,229, 1, 48, 65,229,
/* 0x04d0 */ 1, 32, 66,226, 1, 0,114,227, 1,192,140,226, 1, 16,129,226,
/* 0x04e0 */ 248,255,255, 26, 4, 32,144,229, 0, 48,144,229, 14, 32,130,224,
/* 0x04f0 */ 3, 48,110,224, 0, 48,128,229, 4, 32,128,229, 4,240,157,228,
/* 0x0500 */ 240, 64, 45,233, 0, 80,160,225, 20,208, 77,226, 1, 64,160,225,
/* 0x0510 */ 2,112,160,225, 3, 96,160,225, 66, 0, 0,234, 4, 16,141,226,
/* 0x0520 */ 5, 0,160,225, 12, 32,160,227,220,255,255,235, 4,224,157,229,
/* 0x0530 */ 8, 16,157,229, 0, 0, 94,227, 6, 0, 0, 26,248, 48,159,229,
/* 0x0540 */ 3, 0, 81,225, 5, 0, 0, 26, 0, 48,149,229, 0, 0, 83,227,
/* 0x0550 */ 2, 0, 0, 26, 54, 0, 0,234, 0, 0, 81,227, 1, 0, 0, 26,
/* 0x0560 */ 127, 0,160,227, 77,255,255,235, 14, 0, 81,225,251,255,255,138,
/* 0x0570 */ 0, 48,148,229, 3, 0, 94,225,248,255,255,138, 14, 0, 81,225,
/* 0x0580 */ 31, 0, 0, 42, 12,192,221,229, 4, 0,149,229, 4, 32,148,229,
/* 0x0590 */ 16, 48,141,226, 16,224,141,229, 0,192,141,229, 55,255, 47,225,
/* 0x05a0 */ 0, 0, 80,227,237,255,255, 26, 16, 16,157,229, 4, 48,157,229,
/* 0x05b0 */ 3, 0, 81,225,233,255,255, 26, 13, 32,221,229, 0, 0, 82,227,
/* 0x05c0 */ 0, 0, 86, 19, 8, 0, 0, 10, 2, 12, 81,227, 2, 0, 0,138,
/* 0x05d0 */ 0, 48,148,229, 1, 0, 83,225, 3, 0, 0, 26, 2, 48,160,225,
/* 0x05e0 */ 4, 0,148,229, 14, 32,221,229, 54,255, 47,225, 8, 48,157,229,
/* 0x05f0 */ 6, 0,149,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,133,232,
/* 0x0600 */ 3, 0, 0,234, 1, 32,160,225, 5, 0,160,225, 4, 16,148,229,
/* 0x0610 */ 162,255,255,235, 4, 48,157,229, 6, 0,148,232, 3, 32,130,224,
/* 0x0620 */ 1, 16, 99,224, 6, 0,132,232, 0, 48,148,229, 0, 0, 83,227,
/* 0x0630 */ 185,255,255, 26, 20,208,141,226,240,128,189,232, 85, 80, 88, 33,
/* 0x0640 */ 240, 79, 45,233, 1,128,160,225, 28, 16,145,229, 48,208, 77,226,
/* 0x0650 */ 0, 0, 82,227, 12, 32,141,229, 16, 0,141,229, 8, 48,141,229,
/* 0x0660 */ 1, 80,136,224, 12, 0, 0, 10, 84, 32,157,229, 0, 0,146,229,
/* 0x0670 */ 176, 49,208,225, 52, 16,128,226, 2, 0, 83,227, 40, 48,145, 21,
/* 0x0680 */ 8, 0,145, 5, 0,176, 99, 16, 11, 0,160, 17, 20, 16,145,229,
/* 0x0690 */ 0,176,160, 3, 45,255,255,235, 37, 0, 0,234,176, 49,216,225,
/* 0x06a0 */ 188, 34,216,225, 3, 0, 83,227, 12, 16,157,229, 16,224,160, 19,
/* 0x06b0 */ 0,224,160, 3, 1,192, 66,226, 5, 0,160,225, 0, 64,224,227,
/* 0x06c0 */ 13, 0, 0,234, 0, 48,144,229, 1, 0, 83,227, 8, 0, 0, 26,
/* 0x06d0 */ 20, 48,144,229, 0, 0, 83,227, 5, 0, 0, 10, 8, 32,144,229,
/* 0x06e0 */ 2, 48,131,224, 3, 0, 81,225, 3, 16,160, 49, 2, 0, 84,225,
/* 0x06f0 */ 2, 64,160, 33, 32, 0,128,226, 1,192, 76,226, 0, 0, 92,227,
/* 0x0700 */ 239,255,255,170,255, 78,196,227, 15, 64,196,227, 1, 16,100,224,
/* 0x0710 */ 255, 30,129,226, 15, 16,129,226,255, 30,193,227, 15, 16,193,227,
/* 0x0720 */ 14, 48,160,225, 4, 0,160,225, 0, 32,160,227, 51,255,255,235,
/* 0x0730 */ 0,176,100,224, 52, 48,160,227,155, 3, 3,224, 32, 80,133,226,
/* 0x0740 */ 32, 48,141,229, 0, 48,160,227, 24, 48,141,229,175, 0, 0,234,
/* 0x0750 */ 12,192,157,229, 0, 0, 92,227, 8, 0, 0, 10, 32, 48, 21,229,
/* 0x0760 */ 6, 0, 83,227, 5, 0, 0, 26, 24, 32, 21,229, 8, 0,157,229,
/* 0x0770 */ 2, 32,139,224, 3, 16,160,227, 61,255,255,235,159, 0, 0,234,
/* 0x0780 */ 32, 48, 21,229, 1, 0, 83,227,156, 0, 0, 26, 12, 48, 21,229,
/* 0x0790 */ 0, 0, 83,227,153, 0, 0, 10, 12, 0,157,229, 0, 0, 80,227,
/* 0x07a0 */ 17, 0, 0, 10, 28, 48, 21,229, 0, 0, 83,227, 14, 0, 0, 26,
/* 0x07b0 */ 28, 48,152,229, 24, 32, 21,229, 3, 16,160,227, 3, 32,130,224,
/* 0x07c0 */ 2, 32,139,224, 8, 0,157,229, 41,255,255,235, 8, 0,157,229,
/* 0x07d0 */ 5, 16,160,227,188, 34,216,225, 37,255,255,235, 8, 0,157,229,
/* 0x07e0 */ 4, 16,160,227,186, 34,216,225, 33,255,255,235, 8, 16, 21,229,
/* 0x07f0 */ 168, 34,159,229, 7, 48, 1,226, 3, 49,160,225, 50, 67,160,225,
/* 0x0800 */ 24, 48, 21,229, 16, 32, 21,229, 3, 48,139,224, 20, 48,141,229,
/* 0x0810 */ 3, 58,160,225, 35, 58,160,225, 12,192,157,229, 20, 0,157,229,
/* 0x0820 */ 40, 32,141,229, 3,160,130,224, 12, 32, 21,229, 0, 0, 92,227,
/* 0x0830 */ 44, 0,141,229, 7,144, 4,226, 36, 32,141,229, 0, 96, 99,224,
/* 0x0840 */ 16, 0, 0, 10, 1, 0, 17,227, 3, 32,160, 3, 7, 32,160, 19,
/* 0x0850 */ 6, 0,160,225, 10, 16,160,225, 16, 48,160,227,231,254,255,235,
/* 0x0860 */ 0, 0, 86,225, 84, 0, 0, 26, 88,192,157,229, 4, 48, 20,226,
/* 0x0870 */ 12, 48,160, 17, 12, 0,157,229, 40, 16,141,226, 16, 32,157,229,
/* 0x0880 */ 30,255,255,235, 11, 0, 0,234, 28,192, 21,229, 6, 0,160,225,
/* 0x0890 */ 12,192, 99,224, 4,192,141,229, 16,192,157,229, 10, 16,160,225,
/* 0x08a0 */ 9, 32,160,225, 18, 48,160,227, 0,192,141,229,181,254,255,235,
/* 0x08b0 */ 0, 0, 86,225, 64, 0, 0, 26, 0, 48,106,226, 3,122,160,225,
/* 0x08c0 */ 2, 0, 25,227, 39,122,160,225, 7, 0, 0, 10, 0, 0, 87,227,
/* 0x08d0 */ 5, 0, 0, 10, 10, 16,134,224, 7, 32,160,225, 0, 48,160,227,
/* 0x08e0 */ 1, 32, 82,226, 1, 48,193,228,251,255,255, 26, 12, 0,157,229,
/* 0x08f0 */ 0, 0, 80,227, 50, 0, 0, 10,190,254,255,235, 32, 48, 21,229,
/* 0x0900 */ 28, 0,141,229, 1, 0, 83,227, 37, 0, 0, 26, 8, 48, 21,229,
/* 0x0910 */ 1, 0, 19,227, 34, 0, 0, 10, 12, 32, 21,229, 16, 48, 21,229,
/* 0x0920 */ 24, 16, 21,229, 3, 0, 82,225, 67, 0, 0, 26, 1, 48,130,224,
/* 0x0930 */ 3, 48,131,226, 3, 48,139,224, 3, 32,195,227, 0, 48, 98,226,
/* 0x0940 */ 3, 58,160,225, 35, 58,160,225, 7, 0, 83,227, 58, 0, 0,154,
/* 0x0950 */ 10, 0, 0,234, 0,224,160,227, 0,192,224,227, 14, 0,160,225,
/* 0x0960 */ 1, 26,160,227, 7, 32,160,227, 34, 48,160,227, 0, 80,141,232,
/* 0x0970 */ 132,254,255,235, 0, 0, 80,227, 54, 0, 0, 26, 8, 0, 0,234,
/* 0x0980 */ 3, 48,130,226, 3, 64,195,227, 28, 32,157,229, 16, 49,159,229,
/* 0x0990 */ 12, 0,132,232, 4, 0,160,225, 8, 16,132,226,140,254,255,235,
/* 0x09a0 */ 57, 0, 0,234, 6, 0,160,225, 10, 16,160,225, 9, 32,160,225,
/* 0x09b0 */ 107,254,255,235, 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227,
/* 0x09c0 */ 54,254,255,235, 20,192,157,229, 36, 0,157,229, 7, 48,138,224,
/* 0x09d0 */ 0, 16,140,224, 3, 64,134,224, 1, 0, 84,225, 7, 0, 0, 42,
/* 0x09e0 */ 1, 16,100,224, 9, 32,160,225, 4, 0,160,225, 16, 48,160,227,
/* 0x09f0 */ 130,254,255,235, 0, 0, 84,225, 0, 0, 0, 10,254,255,255,234,
/* 0x0a00 */ 24, 32,157,229, 32, 80,133,226, 1, 32,130,226, 24, 32,141,229,
/* 0x0a10 */ 188, 50,216,225, 24,192,157,229, 3, 0, 92,225, 75,255,255,186,
/* 0x0a20 */ 84, 0,157,229, 0, 0, 80,227, 0,176,128, 21, 24, 0,152,229,
/* 0x0a30 */ 0, 0,139,224, 48,208,141,226,240,143,189,232, 28, 48, 21,229,
/* 0x0a40 */ 0, 0, 83,227, 32, 32,157, 5, 2, 48,129, 0, 8, 32,131, 2,
/* 0x0a50 */ 202,255,255, 10,190,255,255,234, 3, 48,128,226, 3, 64,195,227,
/* 0x0a60 */ 28, 48,157,229, 8, 16,132,226, 0, 48,132,229, 48, 48,159,229,
/* 0x0a70 */ 4, 0,160,225, 4, 48,132,229, 85,254,255,235, 4, 0,160,225,
/* 0x0a80 */ 8, 16,160,227, 5, 32,160,227, 53,254,255,235, 4, 32,160,225,
/* 0x0a90 */ 8, 0,157,229, 0, 16,160,227,117,254,255,235,192,255,255,234,
/* 0x0aa0 */ 64, 98, 81,115, 14,240,160,225,240, 71, 45,233, 12,208, 77,226,
/* 0x0ab0 */ 52, 96,141,226, 0,144,160,225, 1,112,160,225, 3,128,160,225,
/* 0x0ac0 */ 6, 0,160,225, 44, 16,141,226, 0, 48,160,227, 48,160,157,229,
/* 0x0ad0 */ 2, 80,160,225, 52, 64,157,229,136,254,255,235, 60, 48,157,229,
/* 0x0ae0 */ 56,192,157,229, 12,224,141,226, 4, 48, 46,229, 12,192,100,224,
/* 0x0af0 */ 6, 32,160,225, 10, 16,160,225, 9, 48,160,225, 5, 0,160,225,
/* 0x0b00 */ 56,192,141,229, 0,224,141,229, 52,112,141,229, 4,128,141,229,
/* 0x0b10 */ 202,254,255,235, 0, 64,160,225, 9, 16,160,227, 9, 0,160,225,
/* 0x0b20 */ 4, 32,160,225, 82,254,255,235,188, 2,218,225, 52, 32,138,226,
/* 0x0b30 */ 0, 16,160,227, 35, 0, 0,234, 0, 48,146,229, 3, 0, 83,227,
/* 0x0b40 */ 30, 0, 0, 26, 8, 48,146,229, 8, 0,157,229, 0, 16,160,227,
/* 0x0b50 */ 0, 0,131,224, 1, 32,160,225,222,253,255,235, 0, 80, 80,226,
/* 0x0b60 */ 4, 0, 0,186, 10, 16,160,225, 2, 44,160,227,207,253,255,235,
/* 0x0b70 */ 2, 12, 80,227, 1, 0, 0, 10,127, 0,160,227,199,253,255,235,
/* 0x0b80 */ 0,224,160,227, 14, 32,160,225, 8,192,141,226, 10, 16,160,225,
/* 0x0b90 */ 9, 48,160,225, 5, 0,160,225, 0, 80,141,232,167,254,255,235,
/* 0x0ba0 */ 7, 16,160,227, 0, 64,160,225, 8, 32,157,229, 9, 0,160,225,
/* 0x0bb0 */ 47,254,255,235, 5, 0,160,225,203,253,255,235, 3, 0, 0,234,
/* 0x0bc0 */ 32, 32,130,226, 1, 16,129,226, 0, 0, 81,225,217,255,255,186,
/* 0x0bd0 */ 4, 0,160,225, 12,208,141,226,240,135,189,232
/* 0x0080 */ 34, 0, 0, 0, 4, 32,160,225, 5, 48,160,225,240, 31,189,232,
/* 0x0090 */ 13, 16,160,225, 1,218, 77,226, 13, 0,160,225,252, 31, 45,233,
/* 0x00a0 */ 4, 48,145,228, 0, 0, 83,227, 4, 48,128,228,251,255,255, 26,
/* 0x00b0 */ 0, 64,160,225, 4, 48,128,228, 4, 48,145,228, 0, 0, 83,227,
/* 0x00c0 */ 4, 48,128,228,251,255,255, 26, 1, 80,160,225, 12, 0,177,232,
/* 0x00d0 */ 0, 0, 82,227, 12, 0,160,232,251,255,255, 26, 1, 96,160,225,
/* 0x00e0 */ 0,144,160,225, 1, 42,160,227, 0, 16,160,225, 14, 0,160,225,
/* 0x00f0 */ 1, 32, 66,226,146, 0, 0,235, 1, 10,112,227, 14, 16,160, 33,
/* 0x0100 */ 14, 0,160, 35, 0, 32,129,224, 6, 0,160,225, 0, 48,160,227,
/* 0x0110 */ 1, 48, 96,229, 1, 48,114,229, 1, 48, 96,229, 2, 0, 81,225,
/* 0x0120 */ 251,255,255, 26, 61, 48,160,227, 1, 48, 96,229, 32, 48,160,227,
/* 0x0130 */ 1, 48, 96,229, 1, 48, 96,229, 1, 48, 96,229, 0, 0,132,229,
/* 0x0140 */ 32, 1,160,225, 0, 1,160,225, 0, 48, 38,224, 4, 48, 3,226,
/* 0x0150 */ 4, 48, 35,226, 3, 0, 64,224, 6, 48, 64,224, 5, 48,131,224,
/* 0x0160 */ 9, 16,160,225, 24, 80,157,229, 24, 0,141,229, 4, 32, 49,229,
/* 0x0170 */ 13, 0, 81,225, 4, 32, 32,229,251,255,255, 26, 0,208,160,225,
/* 0x0180 */ 16, 12,189,232, 10,220, 77,226, 4,144,154,229, 13,128,160,225,
/* 0x0190 */ 0,112,154,229,184, 96,143,226, 12,144,137,226,248, 15, 45,233,
/* 0x01a0 */ 15, 0,189,232, 82, 2, 0,235, 20,208,141,226, 10,220,141,226,
/* 0x01b0 */ 16, 0,141,229,104, 16,155,229, 11, 0,160,225, 91, 0, 0,235,
/* 0x01c0 */ 11, 0,160,225, 99, 0, 0,235, 4, 64,157,228, 0, 0, 84,227,
/* 0x01d0 */ 8, 0, 0,186, 0, 80,160,227, 48, 0, 45,233, 2, 48,160,227,
/* 0x01e0 */ 1, 32,160,227, 1, 26,160,227, 0, 0,160,227,103, 0, 0,235,
/* 0x01f0 */ 3, 0,189,232, 62, 0, 0,235, 7, 64,189,232, 0, 48,160,227,
/* 0x0200 */ 0, 64,160,227, 0, 80,160,227, 0, 96,160,227, 0,128,160,227,
/* 0x0210 */ 0,144,160,227, 0,160,160,227, 0,176,160,227, 1,199, 77,226,
/* 0x0220 */ 32,112, 29,228, 0,112,141,229, 0,112,157,229, 13, 0, 92,225,
/* 0x0230 */ 250,255,255, 58, 1,215,141,226, 0,192,160,227, 91,112,160,227,
/* 0x0240 */ 4,240, 18,229, 47,112,114,111, 99, 47,115,101,108,102, 47,101,
/* 0x0250 */ 120,101, 0, 0,255, 48, 3,226, 80, 0, 83,227, 14,240,160, 17,
/* 0x0260 */ 33, 17,176,225, 0, 0, 80, 19, 14,240,160, 1, 1, 16, 65,226,
/* 0x0270 */ 1, 33,144,231, 15, 52, 2,226, 11, 4, 83,227, 4, 0, 0, 26,
/* 0x0280 */ 255, 52, 2,226, 1, 32, 66,224,255, 36,194,227, 3, 32,130,225,
/* 0x0290 */ 1, 33,128,231, 0, 0, 81,227,243,255,255, 26, 14,240,160,225,
/* 0x02a0 */ 240, 1,240,231, 14,240,160,225, 7,192,160,225, 1,112,160,227,
/* 0x02b0 */ 0, 0, 0,239, 12,112,160,225, 7,192,160,225, 3,112,160,227,
/* 0x02c0 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x02d0 */ 4,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x02e0 */ 7,192,160,225, 5,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x02f0 */ 14,240,160,225, 7,192,160,225, 6,112,160,227, 0, 0, 0,239,
/* 0x0300 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 10,112,160,227,
/* 0x0310 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 7,192,160,225,
/* 0x0320 */ 20,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0330 */ 7,192,160,225, 45,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x0340 */ 14,240,160,225, 7,192,160,225, 85,112,160,227, 0, 0, 0,239,
/* 0x0350 */ 12,112,160,225, 14,240,160,225, 7,192,160,225, 91,112,160,227,
/* 0x0360 */ 0, 0, 0,239, 12,112,160,225, 14,240,160,225, 80,192,159,229,
/* 0x0370 */ 0,192, 12,224, 12, 0, 64,224, 12, 16,129,224, 7,192,160,225,
/* 0x0380 */ 125,112,160,227, 0, 0, 0,239, 12,112,160,225, 14,240,160,225,
/* 0x0390 */ 48, 64, 45,233, 16, 80,157,229, 12, 64,157,229, 37, 86,160,225,
/* 0x03a0 */ 28,192,159,229, 0,192, 12,224, 12, 0, 64,224, 12, 16,129,224,
/* 0x03b0 */ 7,192,160,225,192,112,160,227, 0, 0, 0,239, 12,112,160,225,
/* 0x03c0 */ 48,128,189,232,255, 15, 0, 0, 7,192,160,225,192,112,160,227,
/* 0x03d0 */ 0, 0, 0,239, 12,112,160,225, 48,128,189,232, 0, 32,160,227,
/* 0x03e0 */ 7,192,160,225, 7,192,160,225, 2,112,160,227, 15,120,135,227,
/* 0x03f0 */ 0, 0, 0,239, 12,112,160,225, 12,112,160,225, 14,240,160,225,
/* 0x0400 */ 168, 0, 31,229, 14,240,160,225, 48, 64, 45,233,148, 67, 31,229,
/* 0x0410 */ 0, 80,160,227, 4, 48,131,225, 0, 64,224,227,223,255,255,234,
/* 0x0420 */ 0,192,160,225, 1, 16, 65,224, 0, 32,160,225,128, 1,144,224,
/* 0x0430 */ 129, 17,161,224,162, 30,129,224, 0, 32,160,225, 0, 2,144,224,
/* 0x0440 */ 1, 18,161,224, 34, 30,129,224, 0, 32,160,225, 0, 4,144,224,
/* 0x0450 */ 1, 20,161,224, 34, 28,129,224, 0, 32,160,225, 0, 8,144,224,
/* 0x0460 */ 1, 24,161,224, 34, 24,129,224,140, 15, 80,224,172, 16,193,224,
/* 0x0470 */ 12, 0,144,224, 0, 0,161,226, 14,240,160,225, 0, 0,159,229,
/* 0x0480 */ 30,255, 47,225, 0,240,255,255, 0, 0, 80,227, 4,224, 45,229,
/* 0x0490 */ 4,240,157, 4, 1, 48, 16,226, 4,240,157, 20, 3,192,160,225,
/* 0x04a0 */ 3,224,160,225, 0, 48,144,229, 1, 0, 83,225, 1,224,142, 2,
/* 0x04b0 */ 4, 32,128, 5, 1, 0, 0, 10, 1, 0, 83,227, 10, 0, 0, 10,
/* 0x04c0 */ 0, 48,144,229, 0, 0, 83,227, 8, 0, 0, 26, 0, 0, 94,227,
/* 0x04d0 */ 4,240,157, 20, 0, 0, 92,227, 4, 32,140, 21, 0, 16,140, 21,
/* 0x04e0 */ 4,240,157, 20,127, 0,160,227,110,255,255,235, 0,192,160,225,
/* 0x04f0 */ 8, 0,128,226,234,255,255,234, 0, 48,144,229, 4,224, 45,229,
/* 0x0500 */ 2, 0, 83,225, 4, 48,144,229, 2,224,160,225, 3,192,160, 33,
/* 0x0510 */ 2, 32,160, 33, 3, 0, 0, 42,127, 0,160,227, 97,255,255,235,
/* 0x0520 */ 1, 48, 92,229, 1, 48, 65,229, 1, 32, 66,226, 1, 0,114,227,
/* 0x0530 */ 1,192,140,226, 1, 16,129,226,248,255,255, 26, 4, 32,144,229,
/* 0x0540 */ 0, 48,144,229, 14, 32,130,224, 3, 48,110,224, 0, 48,128,229,
/* 0x0550 */ 4, 32,128,229, 4,240,157,228,240, 64, 45,233, 0, 80,160,225,
/* 0x0560 */ 20,208, 77,226, 1, 64,160,225, 2,112,160,225, 3, 96,160,225,
/* 0x0570 */ 66, 0, 0,234, 4, 16,141,226, 5, 0,160,225, 12, 32,160,227,
/* 0x0580 */ 220,255,255,235, 4,224,157,229, 8, 16,157,229, 0, 0, 94,227,
/* 0x0590 */ 6, 0, 0, 26,248, 48,159,229, 3, 0, 81,225, 5, 0, 0, 26,
/* 0x05a0 */ 0, 48,149,229, 0, 0, 83,227, 2, 0, 0, 26, 54, 0, 0,234,
/* 0x05b0 */ 0, 0, 81,227, 1, 0, 0, 26,127, 0,160,227, 57,255,255,235,
/* 0x05c0 */ 14, 0, 81,225,251,255,255,138, 0, 48,148,229, 3, 0, 94,225,
/* 0x05d0 */ 248,255,255,138, 14, 0, 81,225, 31, 0, 0, 42, 12,192,221,229,
/* 0x05e0 */ 4, 0,149,229, 4, 32,148,229, 16, 48,141,226, 16,224,141,229,
/* 0x05f0 */ 0,192,141,229, 55,255, 47,225, 0, 0, 80,227,237,255,255, 26,
/* 0x0600 */ 16, 16,157,229, 4, 48,157,229, 3, 0, 81,225,233,255,255, 26,
/* 0x0610 */ 13, 32,221,229, 0, 0, 82,227, 0, 0, 86, 19, 8, 0, 0, 10,
/* 0x0620 */ 2, 12, 81,227, 2, 0, 0,138, 0, 48,148,229, 1, 0, 83,225,
/* 0x0630 */ 3, 0, 0, 26, 2, 48,160,225, 4, 0,148,229, 14, 32,221,229,
/* 0x0640 */ 54,255, 47,225, 8, 48,157,229, 6, 0,149,232, 3, 32,130,224,
/* 0x0650 */ 1, 16, 99,224, 6, 0,133,232, 3, 0, 0,234, 1, 32,160,225,
/* 0x0660 */ 5, 0,160,225, 4, 16,148,229,162,255,255,235, 4, 48,157,229,
/* 0x0670 */ 6, 0,148,232, 3, 32,130,224, 1, 16, 99,224, 6, 0,132,232,
/* 0x0680 */ 0, 48,148,229, 0, 0, 83,227,185,255,255, 26, 20,208,141,226,
/* 0x0690 */ 240,128,189,232, 85, 80, 88, 33,240, 79, 45,233, 1,160,160,225,
/* 0x06a0 */ 28, 16,145,229, 44,208, 77,226, 0, 0, 82,227, 12, 32,141,229,
/* 0x06b0 */ 16, 0,141,229, 8, 48,141,229, 1, 80,138,224, 13, 0, 0, 10,
/* 0x06c0 */ 80, 32,157,229, 0, 0,146,229,176, 49,208,225, 52, 16,128,226,
/* 0x06d0 */ 2, 0, 83,227, 40, 48,145, 21, 8, 0,145, 5, 0, 48,160, 3,
/* 0x06e0 */ 0, 0, 99, 16, 20, 16,145,229, 20, 48,141, 5, 20, 0,141, 21,
/* 0x06f0 */ 24,255,255,235, 38, 0, 0,234,176, 49,218,225,188, 34,218,225,
/* 0x0700 */ 3, 0, 83,227, 12, 16,157,229, 16,224,160, 19, 0,224,160, 3,
/* 0x0710 */ 1,192, 66,226, 5, 0,160,225, 0, 64,224,227, 13, 0, 0,234,
/* 0x0720 */ 0, 48,144,229, 1, 0, 83,227, 8, 0, 0, 26, 20, 48,144,229,
/* 0x0730 */ 0, 0, 83,227, 5, 0, 0, 10, 8, 32,144,229, 2, 48,131,224,
/* 0x0740 */ 3, 0, 81,225, 3, 16,160, 49, 2, 0, 84,225, 2, 64,160, 33,
/* 0x0750 */ 32, 0,128,226, 1,192, 76,226, 0, 0, 92,227,239,255,255,170,
/* 0x0760 */ 255, 78,196,227, 15, 64,196,227, 1, 16,100,224,255, 30,129,226,
/* 0x0770 */ 15, 16,129,226,255, 30,193,227, 15, 16,193,227, 14, 48,160,225,
/* 0x0780 */ 4, 0,160,225, 0, 32,160,227, 30,255,255,235, 0, 0,100,224,
/* 0x0790 */ 20, 0,141,229, 0,192,160,227, 32, 80,133,226, 24,192,141,229,
/* 0x07a0 */ 165, 0, 0,234, 12, 0,157,229, 0, 0, 80,227, 9, 0, 0, 10,
/* 0x07b0 */ 32, 48, 21,229, 6, 0, 83,227, 6, 0, 0, 26, 24, 32, 21,229,
/* 0x07c0 */ 20, 48,157,229, 8, 0,157,229, 2, 32,131,224, 3, 16,160,227,
/* 0x07d0 */ 44,255,255,235,148, 0, 0,234, 32, 48, 21,229, 1, 0, 83,227,
/* 0x07e0 */ 145, 0, 0, 26, 12, 48, 21,229, 0, 0, 83,227,142, 0, 0, 10,
/* 0x07f0 */ 12,192,157,229, 0, 0, 92,227, 18, 0, 0, 10, 28, 48, 21,229,
/* 0x0800 */ 0, 0, 83,227, 15, 0, 0, 26, 28, 48,154,229, 24, 32, 21,229,
/* 0x0810 */ 20, 0,157,229, 3, 32,130,224, 2, 32,128,224, 3, 16,160,227,
/* 0x0820 */ 8, 0,157,229, 23,255,255,235, 8, 0,157,229, 5, 16,160,227,
/* 0x0830 */ 188, 34,218,225, 19,255,255,235, 8, 0,157,229, 4, 16,160,227,
/* 0x0840 */ 186, 34,218,225, 15,255,255,235, 8, 16, 21,229,148, 34,159,229,
/* 0x0850 */ 7, 48, 1,226, 3, 49,160,225, 50, 67,160,225, 20,192,157,229,
/* 0x0860 */ 24, 48, 21,229, 16, 32, 21,229, 3,176,140,224, 11, 58,160,225,
/* 0x0870 */ 35, 58,160,225, 12, 0,157,229, 36, 32,141,229, 3,128,130,224,
/* 0x0880 */ 12, 32, 21,229, 0, 0, 80,227, 40,176,141,229, 7,144, 4,226,
/* 0x0890 */ 32, 32,141,229, 11, 96, 99,224, 16, 0, 0, 10, 1, 0, 17,227,
/* 0x08a0 */ 3, 32,160, 3, 7, 32,160, 19, 6, 0,160,225, 8, 16,160,225,
/* 0x08b0 */ 16, 48,160,227,211,254,255,235, 0, 0, 86,225, 74, 0, 0, 26,
/* 0x08c0 */ 84,192,157,229, 4, 48, 20,226, 12, 48,160, 17, 12, 0,157,229,
/* 0x08d0 */ 36, 16,141,226, 16, 32,157,229, 30,255,255,235, 11, 0, 0,234,
/* 0x08e0 */ 28,192, 21,229, 6, 0,160,225, 12,192, 99,224, 4,192,141,229,
/* 0x08f0 */ 16,192,157,229, 8, 16,160,225, 9, 32,160,225, 18, 48,160,227,
/* 0x0900 */ 0,192,141,229,161,254,255,235, 0, 0, 86,225, 54, 0, 0, 26,
/* 0x0910 */ 0, 48,104,226, 3,122,160,225, 2, 0, 25,227, 39,122,160,225,
/* 0x0920 */ 7, 0, 0, 10, 0, 0, 87,227, 5, 0, 0, 10, 8, 16,134,224,
/* 0x0930 */ 7, 32,160,225, 0, 48,160,227, 1, 32, 82,226, 1, 48,193,228,
/* 0x0940 */ 251,255,255, 26, 12, 0,157,229, 0, 0, 80,227, 40, 0, 0, 10,
/* 0x0950 */ 170,254,255,235, 32, 48, 21,229, 28, 0,141,229, 1, 0, 83,227,
/* 0x0960 */ 27, 0, 0, 26, 8, 48, 21,229, 1, 0, 19,227, 24, 0, 0, 10,
/* 0x0970 */ 12, 32, 21,229, 16, 48, 21,229, 24, 16, 21,229, 3, 0, 82,225,
/* 0x0980 */ 58, 0, 0, 26, 1, 48,130,224, 20, 32,157,229, 3, 48,131,226,
/* 0x0990 */ 3, 48,130,224, 3, 0,195,227, 0, 48, 96,226, 3, 58,160,225,
/* 0x09a0 */ 35, 58,160,225, 11, 0, 83,227, 48, 0, 0,154, 28, 48,157,229,
/* 0x09b0 */ 12, 16,128,226, 0, 48,128,229, 44, 49,159,229, 0, 64,160,225,
/* 0x09c0 */ 4, 48,128,229, 36, 49,159,229, 8, 48,128,229,130,254,255,235,
/* 0x09d0 */ 63, 0, 0,234, 6, 0,160,225, 8, 16,160,225, 9, 32,160,225,
/* 0x09e0 */ 97,254,255,235, 0, 0, 80,227, 1, 0, 0, 10,127, 0,160,227,
/* 0x09f0 */ 44,254,255,235, 32,192,157,229, 7, 48,136,224, 12, 16,139,224,
/* 0x0a00 */ 3, 64,134,224, 1, 0, 84,225, 7, 0, 0, 42, 1, 16,100,224,
/* 0x0a10 */ 9, 32,160,225, 4, 0,160,225, 16, 48,160,227,121,254,255,235,
/* 0x0a20 */ 0, 0, 84,225, 0, 0, 0, 10,254,255,255,234, 24, 0,157,229,
/* 0x0a30 */ 32, 80,133,226, 1, 0,128,226, 24, 0,141,229,188, 50,218,225,
/* 0x0a40 */ 24, 32,157,229, 3, 0, 82,225, 85,255,255,186, 80, 48,157,229,
/* 0x0a50 */ 20, 32,157,229, 0, 0, 83,227, 20,192,157, 21, 0,192,131, 21,
/* 0x0a60 */ 24, 0,154,229, 0, 0,130,224, 44,208,141,226,240,143,189,232,
/* 0x0a70 */ 0,224,160,227, 0,192,224,227, 14, 0,160,225, 1, 26,160,227,
/* 0x0a80 */ 7, 32,160,227, 34, 48,160,227, 0, 80,141,232, 63,254,255,235,
/* 0x0a90 */ 0, 0, 80,227,206,255,255, 10, 3, 48,128,226, 3, 64,195,227,
/* 0x0aa0 */ 68, 48,159,229, 28, 0,157,229, 4, 48,132,229, 60, 48,159,229,
/* 0x0ab0 */ 0, 0,132,229, 12, 16,132,226, 4, 0,160,225, 8, 48,132,229,
/* 0x0ac0 */ 69,254,255,235, 4, 0,160,225, 12, 16,160,227, 5, 32,160,227,
/* 0x0ad0 */ 37,254,255,235, 4, 32,160,225, 8, 0,157,229, 0, 16,160,227,
/* 0x0ae0 */ 104,254,255,235,186,255,255,234, 64, 98, 81,115, 3, 0,189,232,
/* 0x0af0 */ 14,240,160,225,240, 71, 45,233, 12,208, 77,226, 52, 96,141,226,
/* 0x0b00 */ 0,144,160,225, 1,112,160,225, 3,128,160,225, 6, 0,160,225,
/* 0x0b10 */ 44, 16,141,226, 0, 48,160,227, 48,160,157,229, 2, 80,160,225,
/* 0x0b20 */ 52, 64,157,229,139,254,255,235, 60, 48,157,229, 56,192,157,229,
/* 0x0b30 */ 12,224,141,226, 4, 48, 46,229, 12,192,100,224, 6, 32,160,225,
/* 0x0b40 */ 10, 16,160,225, 9, 48,160,225, 5, 0,160,225, 56,192,141,229,
/* 0x0b50 */ 0,224,141,229, 52,112,141,229, 4,128,141,229,205,254,255,235,
/* 0x0b60 */ 0, 64,160,225, 9, 16,160,227, 9, 0,160,225, 4, 32,160,225,
/* 0x0b70 */ 68,254,255,235,188, 2,218,225, 52, 32,138,226, 0, 16,160,227,
/* 0x0b80 */ 35, 0, 0,234, 0, 48,146,229, 3, 0, 83,227, 30, 0, 0, 26,
/* 0x0b90 */ 8, 48,146,229, 8, 0,157,229, 0, 16,160,227, 0, 0,131,224,
/* 0x0ba0 */ 1, 32,160,225,205,253,255,235, 0, 80, 80,226, 4, 0, 0,186,
/* 0x0bb0 */ 10, 16,160,225, 2, 44,160,227,190,253,255,235, 2, 12, 80,227,
/* 0x0bc0 */ 1, 0, 0, 10,127, 0,160,227,182,253,255,235, 0,224,160,227,
/* 0x0bd0 */ 14, 32,160,225, 8,192,141,226, 10, 16,160,225, 9, 48,160,225,
/* 0x0be0 */ 5, 0,160,225, 0, 80,141,232,170,254,255,235, 7, 16,160,227,
/* 0x0bf0 */ 0, 64,160,225, 8, 32,157,229, 9, 0,160,225, 33,254,255,235,
/* 0x0c00 */ 5, 0,160,225,186,253,255,235, 3, 0, 0,234, 32, 32,130,226,
/* 0x0c10 */ 1, 16,129,226, 0, 0, 81,225,217,255,255,186, 4, 0,160,225,
/* 0x0c20 */ 12,208,141,226,240,135,189,232
};
+466 -466
View File
@@ -1,5 +1,5 @@
/* arm64-linux.elf-entry.h
created from arm64-linux.elf-entry.bin, 7432 (0x1d08) bytes
created from arm64-linux.elf-entry.bin, 7437 (0x1d0d) bytes
This file is part of the UPX executable compressor.
@@ -32,474 +32,474 @@
/* clang-format off */
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 7432
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x0f8c71b6
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x75d49525
#define STUB_ARM64_LINUX_ELF_ENTRY_SIZE 7437
#define STUB_ARM64_LINUX_ELF_ENTRY_ADLER32 0x1aee75c5
#define STUB_ARM64_LINUX_ELF_ENTRY_CRC32 0x63fb282c
unsigned char stub_arm64_linux_elf_entry[7432] = {
unsigned char stub_arm64_linux_elf_entry[7437] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 1, 0,183, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 56, 24, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 0, 0, 0,243,255,255, 24, 0, 0, 0,148,254, 15, 31,248,
/* 0x0050 */ 226, 15,191,169, 7, 64, 33,139, 5, 0,128, 18, 4, 0,176, 82,
/* 0x0060 */ 45, 0, 0, 20,227, 19,193,168, 0, 0, 7,203, 66, 0, 3,203,
/* 0x0070 */ 130, 0, 0,185,229, 3, 0,170,224, 3, 3,170, 97, 0, 2,139,
/* 0x0080 */ 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,100, 0,128,146,
/* 0x0090 */ 132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,162, 0, 0, 84,
/* 0x00a0 */ 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,168,255,255, 84,
/* 0x00b0 */ 159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146, 98, 0,128,146,
/* 0x00c0 */ 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,169, 0, 0, 84,
/* 0x00d0 */ 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,168,255,255, 84,
/* 0x00e0 */ 159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,254, 7, 65,248,
/* 0x00f0 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214,
/* 0x0100 */ 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, 3, 20, 64, 56,
/* 0x0110 */ 67, 20, 0, 56,248,255,255,151,162,255,255, 84, 33, 0,128, 82,
/* 0x0120 */ 4, 0, 0, 20, 33, 4, 0, 81,243,255,255,151, 33, 0, 1, 26,
/* 0x0130 */ 241,255,255,151, 33, 0, 1, 26,239,255,255,151, 67,255,255, 84,
/* 0x0140 */ 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84, 5, 20, 64, 56,
/* 0x0150 */ 165, 32, 3, 42,229, 3, 37, 42,101,248,255, 52,191, 0, 0,114,
/* 0x0160 */ 165,124, 1, 19,161, 1, 0, 84, 3, 0, 0, 20,226,255,255,151,
/* 0x0170 */ 66, 1, 0, 84, 33, 0,128, 82,223,255,255,151,226, 0, 0, 84,
/* 0x0180 */ 221,255,255,151, 33, 0, 1, 26,219,255,255,151,163,255,255, 84,
/* 0x0190 */ 33, 16, 0, 17, 4, 0, 0, 20,215,255,255,151, 33, 0, 1, 26,
/* 0x01a0 */ 33, 8, 0, 17,191, 0, 20, 49, 33, 36,129, 26, 67, 64, 33,139,
/* 0x01b0 */ 99,240, 95, 56, 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,
/* 0x01c0 */ 161,255,255, 84,212,255,255, 23,226, 15,190,169,254, 11, 0,249,
/* 0x01d0 */ 7, 64, 33,139, 5, 0,128, 18, 4, 0,176, 82, 45, 0, 0, 20,
/* 0x01e0 */ 227, 19,193,168, 0, 0, 7,203, 66, 0, 3,203,130, 0, 0,185,
/* 0x01f0 */ 229, 3, 0,170,224, 3, 3,170, 97, 0, 2,139, 35, 0, 59,213,
/* 0x0200 */ 99, 1,224, 55, 98, 76, 80,211,100, 0,128,146,132, 32,194,154,
/* 0x0210 */ 2, 0, 4,138, 95, 0, 1,235,162, 0, 0, 84, 34,123, 11,213,
/* 0x0220 */ 66, 0, 4,203, 63, 0, 2,235,168,255,255, 84,159, 59, 3,213,
/* 0x0230 */ 99, 1,232, 55, 99, 12, 64,146, 98, 0,128,146, 66, 32,195,154,
/* 0x0240 */ 0, 0, 2,138, 63, 0, 0,235,169, 0, 0, 84, 32,117, 11,213,
/* 0x0250 */ 0, 0, 2,203, 63, 0, 0,235,168,255,255, 84,159, 59, 3,213,
/* 0x0260 */ 223, 63, 3,213,224, 3, 5,170,254, 7, 65,248,192, 3, 95,214,
/* 0x0270 */ 132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214, 4, 68, 64,184,
/* 0x0280 */ 132, 0, 4, 58,192, 3, 95,214, 3, 20, 64, 56, 67, 20, 0, 56,
/* 0x0290 */ 248,255,255,151,162,255,255, 84, 33, 0,128, 82, 4, 0, 0, 20,
/* 0x02a0 */ 33, 4, 0, 81,243,255,255,151, 33, 0, 1, 58,241,255,255,151,
/* 0x02b0 */ 33, 0, 1, 58,239,255,255,151, 67,255,255, 84, 35, 12, 0,113,
/* 0x02c0 */ 1, 0,128, 82, 35, 1, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,
/* 0x02d0 */ 229, 3, 37, 42,101,248,255, 52,163, 0, 1, 83,165,124, 1, 83,
/* 0x02e0 */ 99, 0, 3, 43, 2, 0, 0, 20,226,255,255,151, 33, 0, 1, 58,
/* 0x02f0 */ 224,255,255,151, 33, 0, 1, 58,225, 0, 0, 84, 33, 0,128, 82,
/* 0x0300 */ 220,255,255,151, 33, 0, 1, 58,218,255,255,151,163,255,255, 84,
/* 0x0310 */ 33, 8, 0, 17, 33, 4, 0, 17,191, 0, 20, 49, 33, 52,129, 26,
/* 0x0320 */ 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56, 33, 4, 0,113,
/* 0x0330 */ 161,255,255, 84,215,255,255, 23, 1, 64, 33,139,225, 11,190,169,
/* 0x0340 */ 227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82, 52, 0, 0, 20,
/* 0x0350 */ 228,123, 65,169,225, 15,194,168, 0, 0, 1,203, 66, 0, 3,203,
/* 0x0360 */ 130, 0, 0,185,229, 3, 0,170,224, 3, 3,170, 97, 0, 2,139,
/* 0x0370 */ 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,100, 0,128,146,
/* 0x0380 */ 132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,162, 0, 0, 84,
/* 0x0390 */ 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,168,255,255, 84,
/* 0x03a0 */ 159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146, 98, 0,128,146,
/* 0x03b0 */ 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,169, 0, 0, 84,
/* 0x03c0 */ 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,168,255,255, 84,
/* 0x03d0 */ 159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,192, 3, 95,214,
/* 0x03e0 */ 132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214, 4, 68, 64,184,
/* 0x03f0 */ 132, 0, 4, 58,192, 3, 95,214, 33, 0,128, 82,240, 3, 30,170,
/* 0x0400 */ 248,255,255,151, 33, 0, 1, 58,246,255,255,151,163,255,255, 84,
/* 0x0410 */ 0, 2, 31,214, 3, 20, 64, 56, 67, 20, 0, 56,241,255,255,151,
/* 0x0420 */ 162,255,255, 84,245,255,255,151, 35, 12, 0,113, 1, 0,128, 82,
/* 0x0430 */ 163, 0, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,
/* 0x0440 */ 133,248,255, 52,231,255,255,151, 33, 0, 1, 58,229,255,255,151,
/* 0x0450 */ 33, 0, 1, 58, 97, 0, 0, 84,232,255,255,151, 33, 8, 0, 17,
/* 0x0460 */ 191, 0, 52, 49, 33, 36,129, 26, 67,200,101, 56, 33, 4, 0,113,
/* 0x0470 */ 67, 20, 0, 56,162,255,255, 84,233,255,255, 23,159, 56, 0,113,
/* 0x0480 */ 1, 0, 0, 84,226, 15,190,169,253,123, 1,169,253, 3, 0,145,
/* 0x0490 */ 8, 0, 64, 57, 7,192,128, 82, 8,125, 3, 83,231, 32,200, 26,
/* 0x04a0 */ 231,192, 57, 17,232, 3, 0,145,255, 67, 39,203,228, 3, 0,145,
/* 0x04b0 */ 159,124,129,168,159, 0, 8,235,195,255,255, 84,255,127,191,169,
/* 0x04c0 */ 230, 3, 3,170,197, 0, 64,185,228, 3, 2,170,227, 35, 0,145,
/* 0x04d0 */ 34, 8, 0, 81,225, 3, 0,170,224, 3, 0,145, 39, 20, 64, 56,
/* 0x04e0 */ 231, 8, 0, 18, 7, 8, 0, 57, 39, 20, 64, 56,232,124, 4, 83,
/* 0x04f0 */ 8, 4, 0, 57,231, 12, 0, 18, 7, 0, 0, 57, 35, 0, 0,148,
/* 0x0500 */ 191, 3, 0,145,229, 3, 0,170,253,123, 65,169,224, 7,194,168,
/* 0x0510 */ 33, 0, 64,249, 33, 0, 0,139, 35, 0, 59,213, 99, 1,224, 55,
/* 0x0520 */ 98, 76, 80,211,100, 0,128,146,132, 32,194,154, 2, 0, 4,138,
/* 0x0530 */ 95, 0, 1,235,162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203,
/* 0x0540 */ 63, 0, 2,235,168,255,255, 84,159, 59, 3,213, 99, 1,232, 55,
/* 0x0550 */ 99, 12, 64,146, 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138,
/* 0x0560 */ 63, 0, 0,235,169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203,
/* 0x0570 */ 63, 0, 0,235,168,255,255, 84,159, 59, 3,213,223, 63, 3,213,
/* 0x0580 */ 224, 3, 5,170,192, 3, 95,214,255, 67, 1,209, 39, 0,128, 82,
/* 0x0590 */ 17, 16, 0,145, 9,128,128, 82,243, 83, 0,169,245, 91, 1,169,
/* 0x05a0 */ 247, 99, 2,169,249,107, 3,169,251,115, 4,169, 20, 8, 64, 57,
/* 0x05b0 */ 19, 4, 64, 57, 22, 0, 64, 57,244, 32,212, 26,127, 0, 0,185,
/* 0x05c0 */ 243, 32,211, 26,223, 0, 0,185, 7, 0,128,210,148, 6, 0, 81,
/* 0x05d0 */ 8, 4, 64, 57, 10, 1, 22, 11,104, 6, 0, 81, 18, 1, 39, 30,
/* 0x05e0 */ 8, 96,128, 82, 8, 33,202, 26, 8,217, 28, 49,160, 0, 0, 84,
/* 0x05f0 */ 41,122, 39,120,231, 4, 0,145, 31, 1, 7,107,168,255,255, 84,
/* 0x0600 */ 34, 64, 34,139, 63, 0, 2,235, 64, 16, 0, 84,235, 3, 1,170,
/* 0x0610 */ 40, 4, 0,145,103, 85, 64, 56, 31, 1, 2,235,160, 15, 0, 84,
/* 0x0620 */ 9, 21, 64, 56, 31, 1, 11,235, 39, 33, 7, 42, 97,255,255, 84,
/* 0x0630 */ 229, 69, 0, 52, 8, 1,128, 82, 53, 0,128, 82, 18, 0,128, 82,
/* 0x0640 */ 9, 0,128, 18, 20, 1, 39, 30,104, 0,128, 82,177, 2, 39, 30,
/* 0x0650 */ 247, 3, 21, 42, 7, 1, 39, 30, 8, 86,128,210,165, 2, 39, 30,
/* 0x0660 */ 252, 3, 21, 42, 3, 1,103,158,104, 1,128, 82,234, 3, 18, 42,
/* 0x0670 */ 240, 3, 18, 42, 0, 1, 39, 30, 8,176, 41,145, 14,224,191, 18,
/* 0x0680 */ 15, 0,129, 82, 1, 1,103,158, 40, 1,128, 82, 2, 1, 39, 30,
/* 0x0690 */ 136, 2, 38, 30, 8, 1, 22, 75, 16, 1, 39, 30, 72,110, 28, 83,
/* 0x06a0 */ 63, 1, 14,107, 25, 2, 20, 10, 13,125, 64,147,173,193, 57,139,
/* 0x06b0 */ 173,249,127,211,232, 0, 0, 84,127, 1, 2,235,160, 10, 0, 84,
/* 0x06c0 */ 104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,
/* 0x06d0 */ 59,106,109,120, 40,125, 11, 83, 8,125, 27, 27,255, 0, 8,107,
/* 0x06e0 */ 130, 10, 0, 84, 73, 2, 38, 30, 19, 62, 1, 14, 95, 26, 0,113,
/* 0x06f0 */ 12, 2, 9, 10, 73, 41,211, 26,140, 33,214, 26,234, 1, 27, 75,
/* 0x0700 */ 41, 1, 12, 11,106, 23,138, 11, 42,106, 45,120, 41, 5, 9, 11,
/* 0x0710 */ 41, 93,120,211, 41,217, 28,145, 58, 6, 9,139,109, 31, 0, 84,
/* 0x0720 */ 10, 2, 28, 75, 41, 0,128, 82,153,104,106, 56, 7, 0, 0, 20,
/* 0x0730 */ 91,107, 42,120, 41,121, 31, 83,232, 3, 13, 42, 83, 57, 0, 53,
/* 0x0740 */ 63,253, 3,113,236, 3, 0, 84, 57,123, 31, 83, 31, 1, 14,107,
/* 0x0750 */ 51, 3, 24, 18, 56,121, 31, 83,106,126, 64,147, 74, 1, 4,145,
/* 0x0760 */ 74,193, 41,139, 74,249,127,211,232, 0, 0, 84,127, 1, 2,235,
/* 0x0770 */ 8, 93, 24, 83,224, 4, 0, 84,108, 1, 64, 57,107, 5, 0,145,
/* 0x0780 */ 135, 33, 7, 42, 76,107,106,120, 13,125, 11, 83,251, 1, 12, 75,
/* 0x0790 */ 173,125, 12, 27,155, 21,155, 11,140, 21, 76, 75,255, 0, 13,107,
/* 0x07a0 */ 8, 1, 13, 75, 99,252,255, 84, 76,107, 42,120, 9, 7, 0, 17,
/* 0x07b0 */ 231, 0, 13, 75,115,252,255, 53, 63,253, 3,113, 77, 27, 0, 84,
/* 0x07c0 */ 42, 29, 0, 83,233, 3, 8, 42,138, 72, 48, 56, 16, 6, 0, 17,
/* 0x07d0 */ 95, 38, 0,113,236, 49, 0, 84, 82, 14, 0, 81,191, 0, 16,107,
/* 0x07e0 */ 232,245,255, 84, 0,224,191, 18, 63, 1, 0,107,136, 0, 0, 84,
/* 0x07f0 */ 127, 1, 2,235,224, 0, 0, 84,107, 5, 0,145, 97, 1, 1,203,
/* 0x0800 */ 97, 0, 0,185,208, 0, 0,185, 0, 0,128, 82, 2, 0, 0, 20,
/* 0x0810 */ 32, 0,128, 82,243, 83, 64,169,245, 91, 65,169,247, 99, 66,169,
/* 0x0820 */ 249,107, 67,169,251,115, 68,169,255, 67, 1,145,192, 3, 95,214,
/* 0x0830 */ 58, 1, 8, 75, 74,126, 64,147,105, 23, 91, 75, 95, 3, 14,107,
/* 0x0840 */ 41,106, 45,120, 76, 1, 3,145,231, 0, 8, 75,140,249,127,211,
/* 0x0850 */ 232, 0, 0, 84,127, 1, 2,235,192,253,255, 84,104, 1, 64, 57,
/* 0x0860 */ 90, 95, 24, 83,107, 5, 0,145, 7, 33, 7, 42, 40,106,108,120,
/* 0x0870 */ 74,127, 11, 83, 74,125, 8, 27,255, 0, 10,107,130, 25, 0, 84,
/* 0x0880 */ 237, 0, 38, 30,233, 1, 8, 75, 95, 30, 0,113, 53, 2, 38, 30,
/* 0x0890 */ 8, 21,137, 11,241, 2, 39, 30, 40,106, 44,120,242,179,141, 26,
/* 0x08a0 */ 12,160, 25,145,247, 3, 28, 42, 95, 1, 14,107,232, 0, 0, 84,
/* 0x08b0 */ 127, 1, 2,235,224,250,255, 84,104, 1, 64, 57, 74, 93, 24, 83,
/* 0x08c0 */ 107, 5, 0,145, 7, 33, 7, 42,141, 1, 64,121, 73,125, 11, 83,
/* 0x08d0 */ 41,125, 13, 27,255, 0, 9,107, 98, 31, 0, 84, 40,115, 29, 83,
/* 0x08e0 */ 115, 0,128, 82,234, 1, 13, 75, 8,125, 64,147, 8, 9, 0,145,
/* 0x08f0 */ 173, 21,138, 11,228, 3, 39, 30,141, 1, 0,121,102, 2, 39, 30,
/* 0x0900 */ 153, 5, 8,139,218, 0, 38, 30, 44, 0,128, 82, 6, 0, 0, 20,
/* 0x0910 */ 13, 3, 0,121, 90, 7, 0,113,140,121, 31, 83,233, 3, 8, 42,
/* 0x0920 */ 32, 3, 0, 84, 63, 1, 14,107,147,121, 31, 83, 56,199, 44,139,
/* 0x0930 */ 232, 0, 0, 84,127, 1, 2,235, 41, 93, 24, 83,160,246,255, 84,
/* 0x0940 */ 104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42, 8, 3, 64,121,
/* 0x0950 */ 42,125, 11, 83,237, 1, 8, 75, 27, 21, 72, 75, 13, 21,141, 11,
/* 0x0960 */ 72,125, 8, 27,255, 0, 8,107, 41, 1, 8, 75, 35,253,255, 84,
/* 0x0970 */ 27, 3, 0,121, 90, 7, 0,113,231, 0, 8, 75,108, 6, 0, 17,
/* 0x0980 */ 33,253,255, 84,166, 68,166, 46,138, 0, 38, 30, 95, 14, 0,113,
/* 0x0990 */ 200, 0, 38, 30, 72, 1, 8, 75, 8, 1, 12, 11, 6, 1, 39, 30,
/* 0x09a0 */ 236, 22, 0, 84,234, 0, 38, 30, 31, 13, 0,113,220, 0,128, 82,
/* 0x09b0 */ 10,209,138, 26, 40, 0,128, 82, 74,101, 26, 83, 74,125, 64,147,
/* 0x09c0 */ 74,193, 6,145, 91,249,127,211, 6, 0, 0, 20, 44,106, 57,120,
/* 0x09d0 */ 156, 7, 0,113, 8,121, 31, 83,233, 3, 10, 42, 32, 3, 0, 84,
/* 0x09e0 */ 63, 1, 14,107, 19,121, 31, 83,121,199, 40,139,232, 0, 0, 84,
/* 0x09f0 */ 127, 1, 2,235, 41, 93, 24, 83,192,240,255, 84,106, 1, 64, 57,
/* 0x0a00 */ 107, 5, 0,145, 71, 33, 7, 42, 42,106,121,120, 45,125, 11, 83,
/* 0x0a10 */ 236, 1, 10, 75, 90, 21, 74, 75, 76, 21,140, 11,170,125, 10, 27,
/* 0x0a20 */ 255, 0, 10,107, 41, 1, 10, 75, 35,253,255, 84, 58,106, 57,120,
/* 0x0a30 */ 156, 7, 0,113,231, 0, 10, 75,104, 6, 0, 17, 33,253,255, 84,
/* 0x0a40 */ 10, 1, 1, 81, 95, 13, 0,113, 45, 17, 0, 84, 95, 53, 0,113,
/* 0x0a50 */ 72, 1, 0, 18, 77,125, 1, 19, 12, 1, 31, 50,140, 32, 0, 84,
/* 0x0a60 */ 104, 0,102,158,187, 5, 0, 81,152, 33,219, 26, 8,193, 42,203,
/* 0x0a70 */ 8, 65, 56,139, 40, 6, 8,139, 8, 9, 0,209, 19, 1,103,158,
/* 0x0a80 */ 40, 0,128, 82,252, 3, 8, 42, 7, 0, 0, 20, 83, 3, 0,121,
/* 0x0a90 */ 8,121, 31, 83,233, 3, 10, 42,123, 7, 0,113,156,123, 31, 83,
/* 0x0aa0 */ 128, 14, 0, 84,106, 2,102,158, 63, 1, 14,107, 25,121, 31, 83,
/* 0x0ab0 */ 90,197, 40,139,232, 0, 0, 84,127, 1, 2,235, 41, 93, 24, 83,
/* 0x0ac0 */ 128,234,255, 84,106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42,
/* 0x0ad0 */ 74, 3, 64,121, 45,125, 11, 83,243, 1, 10, 75, 76, 21, 74, 75,
/* 0x0ae0 */ 83, 21,147, 11,170,125, 10, 27,255, 0, 10,107, 41, 1, 10, 75,
/* 0x0af0 */ 227,252,255, 84, 76, 3, 0,121, 24, 3, 28, 42,231, 0, 10, 75,
/* 0x0b00 */ 40, 7, 0, 17,229,255,255, 23, 41, 0,128, 82, 6, 0, 0, 20,
/* 0x0b10 */ 41,121, 31, 83, 74,107, 56,120, 63,253, 3,113,232, 3, 12, 42,
/* 0x0b20 */ 44, 3, 0, 84, 31, 1, 14,107, 51,121, 31, 83, 56,125,127,147,
/* 0x0b30 */ 232, 0, 0, 84,127, 1, 2,235, 8, 93, 24, 83,160,230,255, 84,
/* 0x0b40 */ 106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42, 74,107,120,120,
/* 0x0b50 */ 12,125, 11, 83,237, 1, 10, 75,140,125, 10, 27, 89, 21, 74, 75,
/* 0x0b60 */ 74, 21,141, 11,255, 0, 12,107, 8, 1, 12, 75, 35,253,255, 84,
/* 0x0b70 */ 105, 6, 0, 17, 89,107, 56,120, 63,253, 3,113,231, 0, 12, 75,
/* 0x0b80 */ 45,253,255, 84, 42, 29, 0, 83, 95, 14, 0,113,138, 72, 48, 56,
/* 0x0b90 */ 233, 3, 8, 42, 16, 6, 0, 17,204,225,255, 84,191, 0, 16,107,
/* 0x0ba0 */ 18, 0,128, 82,200,215,255, 84, 15,255,255, 23, 73, 3, 10, 75,
/* 0x0bb0 */ 8, 21, 72, 75, 63, 1, 14,107, 40,106, 44,120,231, 0, 10, 75,
/* 0x0bc0 */ 154, 97, 0,145,232, 0, 0, 84,127, 1, 2,235, 32,226,255, 84,
/* 0x0bd0 */ 104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,
/* 0x0be0 */ 40,106,122,120, 42,125, 11, 83, 74,125, 8, 27,255, 0, 10,107,
/* 0x0bf0 */ 66, 10, 0, 84,233, 1, 8, 75, 95, 1, 14,107,173,129, 7,145,
/* 0x0c00 */ 8, 21,137, 11, 40,106, 58,120,232, 0, 0, 84,127, 1, 2,235,
/* 0x0c10 */ 0,224,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145,
/* 0x0c20 */ 7, 33, 7, 42, 40,106,109,120, 73,125, 11, 83, 41,125, 8, 27,
/* 0x0c30 */ 255, 0, 9,107,226, 16, 0, 84,234, 1, 8, 75, 8, 21,138, 11,
/* 0x0c40 */ 40,106, 45,120,112,222,255, 52, 74, 0, 38, 30, 8, 2, 28, 75,
/* 0x0c50 */ 12, 0, 38, 30, 95, 30, 0,113, 82,177,140, 26,138,104,104, 56,
/* 0x0c60 */ 138, 72, 48, 56, 16, 6, 0, 17,221,254,255, 23,248, 3, 10, 42,
/* 0x0c70 */ 28, 7, 0, 49,128,219,255, 84, 82, 30, 0, 17,200, 0, 38, 30,
/* 0x0c80 */ 159, 3, 16,107, 12, 9, 0, 17, 72,220,255, 84,232, 3, 16, 42,
/* 0x0c90 */ 2, 0, 0, 20, 76,218,255, 52, 10, 2, 28, 75, 16, 6, 0, 17,
/* 0x0ca0 */ 31, 2, 5,107,140, 5, 0, 81,138,104,106, 56,138, 72, 40, 56,
/* 0x0cb0 */ 232, 3, 16, 42, 3,255,255, 84,191, 0, 16,107, 8,207,255, 84,
/* 0x0cc0 */ 201,254,255, 23, 74, 1, 9, 75,173, 21, 77, 75, 95, 1, 14,107,
/* 0x0cd0 */ 141, 1, 0,121,231, 0, 9, 75,232, 0, 0, 84,127, 1, 2,235,
/* 0x0ce0 */ 128,217,255, 84,104, 1, 64, 57, 74, 93, 24, 83,107, 5, 0,145,
/* 0x0cf0 */ 7, 33, 7, 42,141, 5, 64,121, 73,125, 11, 83, 41,125, 13, 27,
/* 0x0d00 */ 255, 0, 9,107, 34, 7, 0, 84, 40,115, 29, 83, 19, 1,128, 82,
/* 0x0d10 */ 234, 1, 13, 75, 8,125, 64,147,100, 2, 39, 30, 8, 9, 2,145,
/* 0x0d20 */ 115, 0,128, 82,173, 21,138, 11,153, 5, 8,139,141, 5, 0,121,
/* 0x0d30 */ 102, 2, 39, 30,244,254,255, 23, 41, 1, 10, 75, 8, 21, 72, 75,
/* 0x0d40 */ 63, 1, 14,107, 40,106, 58,120,231, 0, 10, 75,154,193, 0,145,
/* 0x0d50 */ 232, 0, 0, 84,127, 1, 2,235,192,213,255, 84,104, 1, 64, 57,
/* 0x0d60 */ 41, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42, 45,106,122,120,
/* 0x0d70 */ 40,125, 11, 83, 10,125, 13, 27,255, 0, 10,107, 35, 5, 0, 84,
/* 0x0d80 */ 41, 1, 10, 75,173, 21, 77, 75, 63, 1, 14,107, 45,106, 58,120,
/* 0x0d90 */ 231, 0, 10, 75,140, 33, 1,145,232, 0, 0, 84,127, 1, 2,235,
/* 0x0da0 */ 128,211,255, 84,104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145,
/* 0x0db0 */ 7, 33, 7, 42, 45,106,108,120, 40,125, 11, 83, 10,125, 13, 27,
/* 0x0dc0 */ 255, 0, 10,107, 2, 8, 0, 84,232, 1, 13, 75,233, 3, 28, 42,
/* 0x0dd0 */ 60, 2, 38, 30,173, 21,136, 11, 45,106, 44,120,241, 2, 39, 30,
/* 0x0de0 */ 247, 3, 9, 42, 21, 0, 0, 20, 8, 2,128, 82,231, 0, 9, 75,
/* 0x0df0 */ 173, 21, 77, 75,153, 17, 8,145, 4, 1, 39, 30, 8, 1,128, 82,
/* 0x0e00 */ 141, 5, 0,121, 73, 1, 9, 75, 6, 1, 39, 30,190,254,255, 23,
/* 0x0e10 */ 191, 0, 16,107, 82, 26, 0, 81, 40,196,255, 84,114,254,255, 23,
/* 0x0e20 */ 232, 1, 13, 75,233, 3, 28, 42,252, 3, 23, 42,247, 3, 9, 42,
/* 0x0e30 */ 173, 21,136, 11, 45,106, 58,120,136, 2, 38, 30, 95, 30, 0,113,
/* 0x0e40 */ 9, 0, 38, 30, 44, 0,102,158, 18,177,137, 26,151,254,255, 23,
/* 0x0e50 */ 8, 21, 72, 75, 74, 1, 9, 75,231, 0, 9, 75, 40,106, 45,120,
/* 0x0e60 */ 246,255,255, 23,232, 3, 13, 42, 84,254,255, 23,170, 21, 0, 81,
/* 0x0e70 */ 63, 1, 14,107,140,121, 31, 83,232, 0, 0, 84,127, 1, 2,235,
/* 0x0e80 */ 41, 93, 24, 83, 96,204,255, 84,104, 1, 64, 57,107, 5, 0,145,
/* 0x0e90 */ 7, 33, 7, 42, 41,125, 1, 83,255, 0, 9,107, 99, 0, 0, 84,
/* 0x0ea0 */ 231, 0, 9, 75,140, 1, 0, 50, 74, 5, 0,113, 33,254,255, 84,
/* 0x0eb0 */ 8, 32, 25,145,152,109, 28, 83,155, 0,128, 82, 19, 1,103,158,
/* 0x0ec0 */ 240,254,255, 23,232, 3, 28, 42,231, 0, 10, 75,173, 21, 77, 75,
/* 0x0ed0 */ 252, 3, 21, 42, 45,106, 44,120, 42, 1, 10, 75, 53, 2, 38, 30,
/* 0x0ee0 */ 241, 2, 39, 30,247, 3, 8, 42,212,255,255, 23,240, 3, 5, 42,
/* 0x0ef0 */ 227, 19,189,169,229, 27, 1,169,254, 19, 0,249,232, 3, 1,170,
/* 0x0f00 */ 45, 64, 34,139,233, 3, 4,170,142, 64, 37,139, 11, 16, 0,145,
/* 0x0f10 */ 6, 0, 64, 57, 5, 4, 64, 57, 4, 8, 64, 57,174, 0, 6, 11,
/* 0x0f20 */ 7, 0,128, 18,229, 32,197, 26,229, 3, 37, 42,228, 32,196, 26,
/* 0x0f30 */ 228, 3, 36, 42, 35, 0,128, 82, 34, 0,128, 82, 33, 0,128, 82,
/* 0x0f40 */ 32, 0,128, 82, 6, 0,128, 82,230, 31, 0,185, 2, 96,128, 82,
/* 0x0f50 */ 192,230,128, 82, 66, 32,206, 26, 66, 0, 0, 11, 0,128,128,210,
/* 0x0f60 */ 225, 3, 11,170, 0, 64, 0,170, 0,128, 0,170, 32,132, 0,248,
/* 0x0f70 */ 66, 16, 0,113,204,255,255, 84, 0, 21, 0,145,232, 0, 0,148,
/* 0x0f80 */ 31, 0, 8,235,193,255,255, 84,227, 67, 66,248,226, 19, 64,185,
/* 0x0f90 */ 36, 1, 3,203,128, 0, 2, 10,224, 47, 0,185, 0, 16, 6, 11,
/* 0x0fa0 */ 97, 1, 0,145,226, 0, 0,148,161, 5, 0, 84,227, 23, 64,185,
/* 0x0fb0 */ 226, 27, 64,185, 99, 0, 4, 10,224,115, 64, 57, 99, 32,194, 26,
/* 0x0fc0 */ 226, 3, 2, 75, 66, 32, 0, 17, 2, 36,194, 26, 99, 0, 2, 11,
/* 0x0fd0 */ 106,177, 57,145, 99, 4, 3, 11,227, 3, 3, 42, 32, 0,128, 82,
/* 0x0fe0 */ 74, 37, 3,139,223, 28, 0,113, 35, 2, 0, 84,227,125, 64,147,
/* 0x0ff0 */ 227, 3, 3,203, 37,105, 99, 56,165,120, 31, 83, 65, 1, 8,145,
/* 0x1000 */ 164, 0, 24, 18,227, 3, 4, 42, 33, 4, 3,139,202, 0, 0,148,
/* 0x1010 */ 3, 0, 0, 18,130,124, 8, 83,127, 0, 2,107,193, 0, 0, 84,
/* 0x1020 */ 31, 0, 4,113,163,254,255, 84, 5, 0, 0, 20,225, 3, 10,170,
/* 0x1030 */ 193, 0, 0,148, 31, 0, 4,113,163,255,255, 84, 98, 0,128, 82,
/* 0x1040 */ 195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26,223, 16, 0,113,
/* 0x1050 */ 195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20, 97, 1, 6,145,
/* 0x1060 */ 178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185,226, 7, 64,185,
/* 0x1070 */ 227, 15, 0,185,226, 11, 0,185,239, 7, 0,185, 3, 0,128, 82,
/* 0x1080 */ 223, 28, 0,113,102, 0,128, 82,102, 48,134, 26,106,145, 25,145,
/* 0x1090 */ 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148, 97, 2, 0, 84,
/* 0x10a0 */ 227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11,160, 0, 0,148,
/* 0x10b0 */ 161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113,102, 1,128, 82,
/* 0x10c0 */ 102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203,159, 0, 15,107,
/* 0x10d0 */ 131, 17, 0, 84,227,125, 64,147,227, 3, 3,203, 32,105, 99, 56,
/* 0x10e0 */ 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145,143, 0, 0,148,
/* 0x10f0 */ 228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145,139, 0, 0,148,
/* 0x1100 */ 228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185,228, 15, 64,185,
/* 0x1110 */ 227, 15, 0,185,227, 7, 64,185,227, 11, 0,185,239, 7, 0,185,
/* 0x1120 */ 239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113,102, 1,128, 82,
/* 0x1130 */ 102, 48,134, 26,106,161, 41,145, 65, 1, 0,145,125, 0, 0,148,
/* 0x1140 */ 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145,227, 3, 3, 42,
/* 0x1150 */ 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82, 14, 0, 0, 20,
/* 0x1160 */ 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185,
/* 0x1170 */ 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82,165, 16, 3,139,
/* 0x1180 */ 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145, 2, 2,128, 82,
/* 0x1190 */ 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82,225, 3, 5,170,
/* 0x11a0 */ 101, 0, 0,148, 3, 0, 4,107,163,255,255, 84,229, 55, 64,185,
/* 0x11b0 */ 165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113,194, 6, 0, 84,
/* 0x11c0 */ 198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113,101, 32,133, 26,
/* 0x11d0 */ 227, 3, 5, 42,101, 29, 3,139,165,128, 13,145, 32, 0,128, 82,
/* 0x11e0 */ 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148, 3, 0, 4,107,
/* 0x11f0 */ 163,255,255, 84,227, 47, 0,185,127, 16, 0,113, 99, 4, 0, 84,
/* 0x1200 */ 100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18,239, 1, 31, 50,
/* 0x1210 */ 127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26,106,121, 21,145,
/* 0x1220 */ 227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139, 12, 0, 0, 20,
/* 0x1230 */ 132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83,131, 1, 7,107,
/* 0x1240 */ 108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113, 65,255,255, 84,
/* 0x1250 */ 106, 17, 25,145,239,109, 28, 83,132, 0,128, 82, 37, 0,128, 82,
/* 0x1260 */ 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148, 31, 0, 0,114,
/* 0x1270 */ 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83,132, 4, 0,113,
/* 0x1280 */ 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185,239, 5, 0, 49,
/* 0x1290 */ 229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17, 35, 1, 3,203,
/* 0x12a0 */ 255, 1, 3,107,232, 2, 0, 84,227,125, 64,147,227, 3, 3,203,
/* 0x12b0 */ 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235,194, 0, 0, 84,
/* 0x12c0 */ 165, 4, 0,113, 97,255,255, 84,224,115, 0, 57, 63, 1, 14,235,
/* 0x12d0 */ 195,229,255, 84, 13, 0, 0,148, 0, 0,128, 82,226, 19, 64,249,
/* 0x12e0 */ 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185,226, 67, 66,248,
/* 0x12f0 */ 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185,255,243, 0,145,
/* 0x1300 */ 32, 0,128, 82,246,255,255, 23,227,124, 24, 83,195, 0, 0, 53,
/* 0x1310 */ 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84, 3, 21, 64, 56,
/* 0x1320 */ 108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42, 33, 68, 32,139,
/* 0x1330 */ 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83,241, 3, 30,170,
/* 0x1340 */ 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121,226,124, 11, 83,
/* 0x1350 */ 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84,231, 3, 2, 42,
/* 0x1360 */ 2, 0,129, 82, 66, 0, 3, 75, 0, 0, 0, 58, 99, 20, 66, 11,
/* 0x1370 */ 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75,231, 0, 2, 75,
/* 0x1380 */ 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121, 32, 2, 95,214,
/* 0x1390 */ 194, 3,128, 82,225, 0, 0, 16, 64, 0,128, 82, 8, 8,128, 82,
/* 0x13a0 */ 1, 0, 0,212,224, 15,128, 82,168, 11,128, 82, 1, 0, 0,212,
/* 0x13b0 */ 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82, 79, 84, 95, 87,
/* 0x13c0 */ 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46, 10, 0, 0, 0,
/* 0x13d0 */ 5, 0,128,210, 98, 0,128, 82,200, 27,128, 82, 1, 0, 0,212,
/* 0x13e0 */ 192, 3, 95,214,244, 3, 30,170, 0, 3, 95,184, 25, 67, 0,209,
/* 0x13f0 */ 57, 3, 0,203,129, 6, 64,185, 4, 0,128, 18, 67, 4,128, 82,
/* 0x1400 */ 0, 0,128,210,243,255,255,151,224, 7,191,169,250,111,191,169,
/* 0x1410 */ 251, 3, 0,170,226, 3, 0,170,225, 15, 31,248,227, 3, 0,145,
/* 0x1420 */ 128, 66, 0,145,129, 10, 64,185,132, 50, 64, 57, 0, 3, 63,214,
/* 0x1430 */ 232, 7, 65,248,122, 3, 0,249,115, 19, 0,185,162, 0,128, 82,
/* 0x1440 */ 225, 27, 64,185,224, 3, 27,170, 72, 28,128, 82, 1, 0, 0,212,
/* 0x1450 */ 128, 2, 64,185, 29, 3, 95,184, 60, 3, 0,139, 96, 83, 0,145,
/* 0x1460 */ 0, 0, 31,214, 47,112,114,111, 99, 47,115,101,108,102, 47,101,
/* 0x1470 */ 120,101, 0, 0, 1,132, 64,248,225,255,255,181,192, 3, 95,214,
/* 0x1480 */ 248, 3, 30,170,224, 3, 0,145,251,255,255,151,250,255,255,151,
/* 0x1490 */ 246, 3, 0,170, 1, 8,193,168, 63, 24, 0,113, 96, 0, 0, 84,
/* 0x14a0 */ 161,255,255, 53, 34, 0,160,210,250, 3, 2,203, 96, 12,128, 18,
/* 0x14b0 */ 161,253,255, 16, 2, 0,128, 82, 8, 7,128, 82, 1, 0, 0,212,
/* 0x14c0 */ 251, 3, 0, 42,200,255,255,151, 0, 0, 0, 0,102,105,108,101,
/* 0x14d0 */ 32,102,111,114,109, 97,116, 32,101,108,102, 54, 52, 45,108,105,
/* 0x14e0 */ 116,116,108,101, 97, 97,114, 99,104, 54, 52, 10, 10, 83,101, 99,
/* 0x14f0 */ 116,105,111,110,115, 58, 10, 73,100,120, 32, 78, 97,109,101, 32,
/* 0x1500 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,101, 32, 32, 32,
/* 0x1510 */ 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1520 */ 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1530 */ 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,111,102,102, 32,
/* 0x1540 */ 32, 65,108,103,110, 32, 32, 70,108, 97,103,115, 10, 32, 32, 48,
/* 0x1550 */ 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32, 32, 32, 32, 48,
/* 0x1560 */ 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 48, 32, 32, 50, 42,
/* 0x1570 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 49,
/* 0x1580 */ 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32, 32, 32, 32, 32, 48,
/* 0x1590 */ 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 99, 32, 32, 50, 42, 42,
/* 0x15a0 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 50, 32,
/* 0x15b0 */ 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32, 32, 32, 32, 48, 32,
/* 0x15c0 */ 32, 48, 32, 32, 48, 32, 32, 48, 52, 99, 32, 32, 50, 42, 42, 48,
/* 0x15d0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 51, 32, 78,
/* 0x15e0 */ 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48, 49, 55,
/* 0x15f0 */ 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52, 99, 32, 32, 50, 42,
/* 0x1600 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 52,
/* 0x1610 */ 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32, 32, 32, 32, 32, 48,
/* 0x1620 */ 49, 55, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 99, 56, 32,
/* 0x1630 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
/* 0x1640 */ 32, 32, 53, 32, 78, 82, 86, 50, 66, 32, 32, 32, 32, 32, 32, 32,
/* 0x1650 */ 32, 32, 48, 49, 52, 52, 32, 32, 48, 32, 32, 48, 32, 32, 48, 51,
/* 0x1660 */ 51, 56, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x1670 */ 84, 83, 10, 32, 32, 54, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48,
/* 0x1680 */ 48, 32, 32, 32, 32, 48, 49, 48, 99, 32, 32, 48, 32, 32, 48, 32,
/* 0x1690 */ 32, 48, 52, 55, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78,
/* 0x16a0 */ 84, 69, 78, 84, 83, 10, 32, 32, 55, 32, 76, 90, 77, 65, 95, 68,
/* 0x16b0 */ 69, 67, 50, 48, 32, 32, 32, 32, 48, 57, 54, 56, 32, 32, 48, 32,
/* 0x16c0 */ 32, 48, 32, 32, 48, 53, 56, 56, 32, 32, 50, 42, 42, 48, 32, 32,
/* 0x16d0 */ 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 56, 32, 76, 90, 77,
/* 0x16e0 */ 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32, 48, 52, 97, 48, 32,
/* 0x16f0 */ 32, 48, 32, 32, 48, 32, 32, 48,101,102, 48, 32, 32, 50, 42, 42,
/* 0x1700 */ 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 57, 32,
/* 0x1710 */ 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 32, 32, 32, 48, 32,
/* 0x1720 */ 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 57, 48, 32, 32, 50, 42,
/* 0x1730 */ 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 49, 48,
/* 0x1740 */ 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32, 32, 32, 32, 32, 48,
/* 0x1750 */ 51,101, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 57, 48, 32,
/* 0x1760 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
/* 0x1770 */ 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78, 90, 32, 32, 32, 32,
/* 0x1780 */ 32, 32, 48,102, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51,
/* 0x1790 */ 100, 48, 32, 32, 50, 42, 42, 50, 32, 32, 67, 79, 78, 84, 69, 78,
/* 0x17a0 */ 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84, 65, 66, 76, 69, 58,
/* 0x17b0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x17c0 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68,
/* 0x17d0 */ 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51,
/* 0x17e0 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x17f0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65,
/* 0x1800 */ 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 90, 10, 48,
/* 0x1810 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1820 */ 108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x1830 */ 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 10, 48, 48, 48, 48,
/* 0x1840 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x1850 */ 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 48, 32,
/* 0x1860 */ 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1870 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x1880 */ 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 48, 32, 78, 82, 86,
/* 0x1890 */ 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18a0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78,
/* 0x18b0 */ 82, 86, 50, 69, 32, 48, 32, 78, 82, 86, 50, 69, 10, 48, 48, 48,
/* 0x18c0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x18d0 */ 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68, 32, 48, 32, 78, 82,
/* 0x18e0 */ 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18f0 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86,
/* 0x1900 */ 50, 66, 32, 48, 32, 78, 82, 86, 50, 66, 10, 48, 48, 48, 48, 48,
/* 0x1910 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x1920 */ 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 32, 48,
/* 0x1930 */ 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48, 10, 48, 48, 48, 48,
/* 0x1940 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32,
/* 0x1950 */ 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 32,
/* 0x1960 */ 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50, 48, 10, 48, 48, 48,
/* 0x1970 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32,
/* 0x1980 */ 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48,
/* 0x1990 */ 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 10, 48, 48,
/* 0x19a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x19b0 */ 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32,
/* 0x19c0 */ 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10, 48, 48, 48, 48, 48,
/* 0x19d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32,
/* 0x19e0 */ 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 77, 70, 76, 71,
/* 0x19f0 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a00 */ 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x1a10 */ 78, 88, 32, 48, 32, 95,115,116, 97,114,116, 10, 48, 48, 48, 48,
/* 0x1a20 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32,
/* 0x1a30 */ 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 32, 48, 49, 55, 99, 32,
/* 0x1a40 */ 117, 99,108, 95,110,114,118, 50,101, 95,100,101, 99,111,109,112,
/* 0x1a50 */ 114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a60 */ 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70,
/* 0x1a70 */ 32, 78, 82, 86, 50, 68, 32, 48, 49, 55, 48, 32,117, 99,108, 95,
/* 0x1a80 */ 110,114,118, 50,100, 95,100,101, 99,111,109,112,114,101,115,115,
/* 0x1a90 */ 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1aa0 */ 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86,
/* 0x1ab0 */ 50, 66, 32, 48, 49, 52, 52, 32,117, 99,108, 95,110,114,118, 50,
/* 0x1ac0 */ 98, 95,100,101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10,
/* 0x1ad0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ae0 */ 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90, 77, 65, 95, 68, 69,
/* 0x1af0 */ 67, 49, 48, 32, 48, 32, 76,122,109, 97, 68,101, 99,111,100,101,
/* 0x1b00 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b10 */ 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x1b20 */ 78, 89, 32, 48, 32,101,110,100, 95,100,101, 99,111,109,112,114,
/* 0x1b30 */ 101,115,115, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b40 */ 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78,
/* 0x1b50 */ 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, 70, 79, 10, 10, 82, 69,
/* 0x1b60 */ 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79, 82, 68, 83,
/* 0x1b70 */ 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78, 88, 93, 58,
/* 0x1b80 */ 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1b90 */ 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
/* 0x1ba0 */ 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48,
/* 0x1bb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 82, 95, 65, 65, 82,
/* 0x1bc0 */ 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32, 32, 32, 77, 70, 76,
/* 0x1bd0 */ 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1be0 */ 48, 56, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 65, 76,
/* 0x1bf0 */ 76, 50, 54, 32, 32, 69, 76, 70, 77, 65, 73, 78, 90, 43, 48,120,
/* 0x1c00 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 98, 48,
/* 0x1c10 */ 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67,
/* 0x1c20 */ 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76, 90, 77, 65, 95, 69,
/* 0x1c30 */ 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32,
/* 0x1c40 */ 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32,
/* 0x1c50 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10,
/* 0x1c60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 52,
/* 0x1c70 */ 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 67, 79, 78, 68, 66,
/* 0x1c80 */ 82, 49, 57, 32, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 10,
/* 0x1c90 */ 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69, 67, 79,
/* 0x1ca0 */ 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65, 73, 78,
/* 0x1cb0 */ 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32, 32, 32,
/* 0x1cc0 */ 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32, 32, 32,
/* 0x1cd0 */ 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48, 48, 48,
/* 0x1ce0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,102, 56, 32, 82, 95,
/* 0x1cf0 */ 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32, 32, 32,
/* 0x1d00 */ 79, 95, 66, 73, 78, 70, 79, 10
/* 0x0040 */ 0, 0, 0, 0,224, 7,191,169,211,255,255, 24, 0, 0, 0,148,
/* 0x0050 */ 254, 15, 31,248,226, 15,191,169, 7, 64, 33,139, 5, 0,128, 18,
/* 0x0060 */ 4, 0,176, 82, 45, 0, 0, 20,227, 19,193,168, 0, 0, 7,203,
/* 0x0070 */ 66, 0, 3,203,130, 0, 0,185,229, 3, 0,170,224, 3, 3,170,
/* 0x0080 */ 97, 0, 2,139, 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,
/* 0x0090 */ 100, 0,128,146,132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,
/* 0x00a0 */ 162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,
/* 0x00b0 */ 168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146,
/* 0x00c0 */ 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,
/* 0x00d0 */ 169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,
/* 0x00e0 */ 168,255,255, 84,159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,
/* 0x00f0 */ 254, 7, 65,248,192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,
/* 0x0100 */ 192, 3, 95,214, 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214,
/* 0x0110 */ 3, 20, 64, 56, 67, 20, 0, 56,248,255,255,151,162,255,255, 84,
/* 0x0120 */ 33, 0,128, 82, 4, 0, 0, 20, 33, 4, 0, 81,243,255,255,151,
/* 0x0130 */ 33, 0, 1, 26,241,255,255,151, 33, 0, 1, 26,239,255,255,151,
/* 0x0140 */ 67,255,255, 84, 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84,
/* 0x0150 */ 5, 20, 64, 56,165, 32, 3, 42,229, 3, 37, 42,101,248,255, 52,
/* 0x0160 */ 191, 0, 0,114,165,124, 1, 19,161, 1, 0, 84, 3, 0, 0, 20,
/* 0x0170 */ 226,255,255,151, 66, 1, 0, 84, 33, 0,128, 82,223,255,255,151,
/* 0x0180 */ 226, 0, 0, 84,221,255,255,151, 33, 0, 1, 26,219,255,255,151,
/* 0x0190 */ 163,255,255, 84, 33, 16, 0, 17, 4, 0, 0, 20,215,255,255,151,
/* 0x01a0 */ 33, 0, 1, 26, 33, 8, 0, 17,191, 0, 20, 49, 33, 36,129, 26,
/* 0x01b0 */ 67, 64, 33,139, 99,240, 95, 56, 67,200,101, 56, 67, 20, 0, 56,
/* 0x01c0 */ 33, 4, 0,113,161,255,255, 84,212,255,255, 23,226, 15,190,169,
/* 0x01d0 */ 254, 11, 0,249, 7, 64, 33,139, 5, 0,128, 18, 4, 0,176, 82,
/* 0x01e0 */ 45, 0, 0, 20,227, 19,193,168, 0, 0, 7,203, 66, 0, 3,203,
/* 0x01f0 */ 130, 0, 0,185,229, 3, 0,170,224, 3, 3,170, 97, 0, 2,139,
/* 0x0200 */ 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,100, 0,128,146,
/* 0x0210 */ 132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,162, 0, 0, 84,
/* 0x0220 */ 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,168,255,255, 84,
/* 0x0230 */ 159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146, 98, 0,128,146,
/* 0x0240 */ 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,169, 0, 0, 84,
/* 0x0250 */ 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,168,255,255, 84,
/* 0x0260 */ 159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,254, 7, 65,248,
/* 0x0270 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214,
/* 0x0280 */ 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, 3, 20, 64, 56,
/* 0x0290 */ 67, 20, 0, 56,248,255,255,151,162,255,255, 84, 33, 0,128, 82,
/* 0x02a0 */ 4, 0, 0, 20, 33, 4, 0, 81,243,255,255,151, 33, 0, 1, 58,
/* 0x02b0 */ 241,255,255,151, 33, 0, 1, 58,239,255,255,151, 67,255,255, 84,
/* 0x02c0 */ 35, 12, 0,113, 1, 0,128, 82, 35, 1, 0, 84, 5, 20, 64, 56,
/* 0x02d0 */ 165, 32, 3, 42,229, 3, 37, 42,101,248,255, 52,163, 0, 1, 83,
/* 0x02e0 */ 165,124, 1, 83, 99, 0, 3, 43, 2, 0, 0, 20,226,255,255,151,
/* 0x02f0 */ 33, 0, 1, 58,224,255,255,151, 33, 0, 1, 58,225, 0, 0, 84,
/* 0x0300 */ 33, 0,128, 82,220,255,255,151, 33, 0, 1, 58,218,255,255,151,
/* 0x0310 */ 163,255,255, 84, 33, 8, 0, 17, 33, 4, 0, 17,191, 0, 20, 49,
/* 0x0320 */ 33, 52,129, 26, 67, 0, 64, 57, 67,200,101, 56, 67, 20, 0, 56,
/* 0x0330 */ 33, 4, 0,113,161,255,255, 84,215,255,255, 23, 1, 64, 33,139,
/* 0x0340 */ 225, 11,190,169,227,123, 1,169, 5, 0,128, 18, 4, 0,176, 82,
/* 0x0350 */ 52, 0, 0, 20,228,123, 65,169,225, 15,194,168, 0, 0, 1,203,
/* 0x0360 */ 66, 0, 3,203,130, 0, 0,185,229, 3, 0,170,224, 3, 3,170,
/* 0x0370 */ 97, 0, 2,139, 35, 0, 59,213, 99, 1,224, 55, 98, 76, 80,211,
/* 0x0380 */ 100, 0,128,146,132, 32,194,154, 2, 0, 4,138, 95, 0, 1,235,
/* 0x0390 */ 162, 0, 0, 84, 34,123, 11,213, 66, 0, 4,203, 63, 0, 2,235,
/* 0x03a0 */ 168,255,255, 84,159, 59, 3,213, 99, 1,232, 55, 99, 12, 64,146,
/* 0x03b0 */ 98, 0,128,146, 66, 32,195,154, 0, 0, 2,138, 63, 0, 0,235,
/* 0x03c0 */ 169, 0, 0, 84, 32,117, 11,213, 0, 0, 2,203, 63, 0, 0,235,
/* 0x03d0 */ 168,255,255, 84,159, 59, 3,213,223, 63, 3,213,224, 3, 5,170,
/* 0x03e0 */ 192, 3, 95,214,132, 0, 4, 43, 68, 0, 0, 52,192, 3, 95,214,
/* 0x03f0 */ 4, 68, 64,184,132, 0, 4, 58,192, 3, 95,214, 33, 0,128, 82,
/* 0x0400 */ 240, 3, 30,170,248,255,255,151, 33, 0, 1, 58,246,255,255,151,
/* 0x0410 */ 163,255,255, 84, 0, 2, 31,214, 3, 20, 64, 56, 67, 20, 0, 56,
/* 0x0420 */ 241,255,255,151,162,255,255, 84,245,255,255,151, 35, 12, 0,113,
/* 0x0430 */ 1, 0,128, 82,163, 0, 0, 84, 5, 20, 64, 56,165, 32, 3, 42,
/* 0x0440 */ 229, 3, 37, 42,133,248,255, 52,231,255,255,151, 33, 0, 1, 58,
/* 0x0450 */ 229,255,255,151, 33, 0, 1, 58, 97, 0, 0, 84,232,255,255,151,
/* 0x0460 */ 33, 8, 0, 17,191, 0, 52, 49, 33, 36,129, 26, 67,200,101, 56,
/* 0x0470 */ 33, 4, 0,113, 67, 20, 0, 56,162,255,255, 84,233,255,255, 23,
/* 0x0480 */ 159, 56, 0,113, 1, 0, 0, 84,226, 15,190,169,253,123, 1,169,
/* 0x0490 */ 253, 3, 0,145, 8, 0, 64, 57, 7,192,128, 82, 8,125, 3, 83,
/* 0x04a0 */ 231, 32,200, 26,231,192, 57, 17,232, 3, 0,145,255, 67, 39,203,
/* 0x04b0 */ 228, 3, 0,145,159,124,129,168,159, 0, 8,235,195,255,255, 84,
/* 0x04c0 */ 255,127,191,169,230, 3, 3,170,197, 0, 64,185,228, 3, 2,170,
/* 0x04d0 */ 227, 35, 0,145, 34, 8, 0, 81,225, 3, 0,170,224, 3, 0,145,
/* 0x04e0 */ 39, 20, 64, 56,231, 8, 0, 18, 7, 8, 0, 57, 39, 20, 64, 56,
/* 0x04f0 */ 232,124, 4, 83, 8, 4, 0, 57,231, 12, 0, 18, 7, 0, 0, 57,
/* 0x0500 */ 35, 0, 0,148,191, 3, 0,145,229, 3, 0,170,253,123, 65,169,
/* 0x0510 */ 224, 7,194,168, 33, 0, 64,249, 33, 0, 0,139, 35, 0, 59,213,
/* 0x0520 */ 99, 1,224, 55, 98, 76, 80,211,100, 0,128,146,132, 32,194,154,
/* 0x0530 */ 2, 0, 4,138, 95, 0, 1,235,162, 0, 0, 84, 34,123, 11,213,
/* 0x0540 */ 66, 0, 4,203, 63, 0, 2,235,168,255,255, 84,159, 59, 3,213,
/* 0x0550 */ 99, 1,232, 55, 99, 12, 64,146, 98, 0,128,146, 66, 32,195,154,
/* 0x0560 */ 0, 0, 2,138, 63, 0, 0,235,169, 0, 0, 84, 32,117, 11,213,
/* 0x0570 */ 0, 0, 2,203, 63, 0, 0,235,168,255,255, 84,159, 59, 3,213,
/* 0x0580 */ 223, 63, 3,213,224, 3, 5,170,192, 3, 95,214,255, 67, 1,209,
/* 0x0590 */ 39, 0,128, 82, 17, 16, 0,145, 9,128,128, 82,243, 83, 0,169,
/* 0x05a0 */ 245, 91, 1,169,247, 99, 2,169,249,107, 3,169,251,115, 4,169,
/* 0x05b0 */ 20, 8, 64, 57, 19, 4, 64, 57, 22, 0, 64, 57,244, 32,212, 26,
/* 0x05c0 */ 127, 0, 0,185,243, 32,211, 26,223, 0, 0,185, 7, 0,128,210,
/* 0x05d0 */ 148, 6, 0, 81, 8, 4, 64, 57, 10, 1, 22, 11,104, 6, 0, 81,
/* 0x05e0 */ 18, 1, 39, 30, 8, 96,128, 82, 8, 33,202, 26, 8,217, 28, 49,
/* 0x05f0 */ 160, 0, 0, 84, 41,122, 39,120,231, 4, 0,145, 31, 1, 7,107,
/* 0x0600 */ 168,255,255, 84, 34, 64, 34,139, 63, 0, 2,235, 64, 16, 0, 84,
/* 0x0610 */ 235, 3, 1,170, 40, 4, 0,145,103, 85, 64, 56, 31, 1, 2,235,
/* 0x0620 */ 160, 15, 0, 84, 9, 21, 64, 56, 31, 1, 11,235, 39, 33, 7, 42,
/* 0x0630 */ 97,255,255, 84,229, 69, 0, 52, 8, 1,128, 82, 53, 0,128, 82,
/* 0x0640 */ 18, 0,128, 82, 9, 0,128, 18, 20, 1, 39, 30,104, 0,128, 82,
/* 0x0650 */ 177, 2, 39, 30,247, 3, 21, 42, 7, 1, 39, 30, 8, 86,128,210,
/* 0x0660 */ 165, 2, 39, 30,252, 3, 21, 42, 3, 1,103,158,104, 1,128, 82,
/* 0x0670 */ 234, 3, 18, 42,240, 3, 18, 42, 0, 1, 39, 30, 8,176, 41,145,
/* 0x0680 */ 14,224,191, 18, 15, 0,129, 82, 1, 1,103,158, 40, 1,128, 82,
/* 0x0690 */ 2, 1, 39, 30,136, 2, 38, 30, 8, 1, 22, 75, 16, 1, 39, 30,
/* 0x06a0 */ 72,110, 28, 83, 63, 1, 14,107, 25, 2, 20, 10, 13,125, 64,147,
/* 0x06b0 */ 173,193, 57,139,173,249,127,211,232, 0, 0, 84,127, 1, 2,235,
/* 0x06c0 */ 160, 10, 0, 84,104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145,
/* 0x06d0 */ 7, 33, 7, 42, 59,106,109,120, 40,125, 11, 83, 8,125, 27, 27,
/* 0x06e0 */ 255, 0, 8,107,130, 10, 0, 84, 73, 2, 38, 30, 19, 62, 1, 14,
/* 0x06f0 */ 95, 26, 0,113, 12, 2, 9, 10, 73, 41,211, 26,140, 33,214, 26,
/* 0x0700 */ 234, 1, 27, 75, 41, 1, 12, 11,106, 23,138, 11, 42,106, 45,120,
/* 0x0710 */ 41, 5, 9, 11, 41, 93,120,211, 41,217, 28,145, 58, 6, 9,139,
/* 0x0720 */ 109, 31, 0, 84, 10, 2, 28, 75, 41, 0,128, 82,153,104,106, 56,
/* 0x0730 */ 7, 0, 0, 20, 91,107, 42,120, 41,121, 31, 83,232, 3, 13, 42,
/* 0x0740 */ 83, 57, 0, 53, 63,253, 3,113,236, 3, 0, 84, 57,123, 31, 83,
/* 0x0750 */ 31, 1, 14,107, 51, 3, 24, 18, 56,121, 31, 83,106,126, 64,147,
/* 0x0760 */ 74, 1, 4,145, 74,193, 41,139, 74,249,127,211,232, 0, 0, 84,
/* 0x0770 */ 127, 1, 2,235, 8, 93, 24, 83,224, 4, 0, 84,108, 1, 64, 57,
/* 0x0780 */ 107, 5, 0,145,135, 33, 7, 42, 76,107,106,120, 13,125, 11, 83,
/* 0x0790 */ 251, 1, 12, 75,173,125, 12, 27,155, 21,155, 11,140, 21, 76, 75,
/* 0x07a0 */ 255, 0, 13,107, 8, 1, 13, 75, 99,252,255, 84, 76,107, 42,120,
/* 0x07b0 */ 9, 7, 0, 17,231, 0, 13, 75,115,252,255, 53, 63,253, 3,113,
/* 0x07c0 */ 77, 27, 0, 84, 42, 29, 0, 83,233, 3, 8, 42,138, 72, 48, 56,
/* 0x07d0 */ 16, 6, 0, 17, 95, 38, 0,113,236, 49, 0, 84, 82, 14, 0, 81,
/* 0x07e0 */ 191, 0, 16,107,232,245,255, 84, 0,224,191, 18, 63, 1, 0,107,
/* 0x07f0 */ 136, 0, 0, 84,127, 1, 2,235,224, 0, 0, 84,107, 5, 0,145,
/* 0x0800 */ 97, 1, 1,203, 97, 0, 0,185,208, 0, 0,185, 0, 0,128, 82,
/* 0x0810 */ 2, 0, 0, 20, 32, 0,128, 82,243, 83, 64,169,245, 91, 65,169,
/* 0x0820 */ 247, 99, 66,169,249,107, 67,169,251,115, 68,169,255, 67, 1,145,
/* 0x0830 */ 192, 3, 95,214, 58, 1, 8, 75, 74,126, 64,147,105, 23, 91, 75,
/* 0x0840 */ 95, 3, 14,107, 41,106, 45,120, 76, 1, 3,145,231, 0, 8, 75,
/* 0x0850 */ 140,249,127,211,232, 0, 0, 84,127, 1, 2,235,192,253,255, 84,
/* 0x0860 */ 104, 1, 64, 57, 90, 95, 24, 83,107, 5, 0,145, 7, 33, 7, 42,
/* 0x0870 */ 40,106,108,120, 74,127, 11, 83, 74,125, 8, 27,255, 0, 10,107,
/* 0x0880 */ 130, 25, 0, 84,237, 0, 38, 30,233, 1, 8, 75, 95, 30, 0,113,
/* 0x0890 */ 53, 2, 38, 30, 8, 21,137, 11,241, 2, 39, 30, 40,106, 44,120,
/* 0x08a0 */ 242,179,141, 26, 12,160, 25,145,247, 3, 28, 42, 95, 1, 14,107,
/* 0x08b0 */ 232, 0, 0, 84,127, 1, 2,235,224,250,255, 84,104, 1, 64, 57,
/* 0x08c0 */ 74, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,141, 1, 64,121,
/* 0x08d0 */ 73,125, 11, 83, 41,125, 13, 27,255, 0, 9,107, 98, 31, 0, 84,
/* 0x08e0 */ 40,115, 29, 83,115, 0,128, 82,234, 1, 13, 75, 8,125, 64,147,
/* 0x08f0 */ 8, 9, 0,145,173, 21,138, 11,228, 3, 39, 30,141, 1, 0,121,
/* 0x0900 */ 102, 2, 39, 30,153, 5, 8,139,218, 0, 38, 30, 44, 0,128, 82,
/* 0x0910 */ 6, 0, 0, 20, 13, 3, 0,121, 90, 7, 0,113,140,121, 31, 83,
/* 0x0920 */ 233, 3, 8, 42, 32, 3, 0, 84, 63, 1, 14,107,147,121, 31, 83,
/* 0x0930 */ 56,199, 44,139,232, 0, 0, 84,127, 1, 2,235, 41, 93, 24, 83,
/* 0x0940 */ 160,246,255, 84,104, 1, 64, 57,107, 5, 0,145, 7, 33, 7, 42,
/* 0x0950 */ 8, 3, 64,121, 42,125, 11, 83,237, 1, 8, 75, 27, 21, 72, 75,
/* 0x0960 */ 13, 21,141, 11, 72,125, 8, 27,255, 0, 8,107, 41, 1, 8, 75,
/* 0x0970 */ 35,253,255, 84, 27, 3, 0,121, 90, 7, 0,113,231, 0, 8, 75,
/* 0x0980 */ 108, 6, 0, 17, 33,253,255, 84,166, 68,166, 46,138, 0, 38, 30,
/* 0x0990 */ 95, 14, 0,113,200, 0, 38, 30, 72, 1, 8, 75, 8, 1, 12, 11,
/* 0x09a0 */ 6, 1, 39, 30,236, 22, 0, 84,234, 0, 38, 30, 31, 13, 0,113,
/* 0x09b0 */ 220, 0,128, 82, 10,209,138, 26, 40, 0,128, 82, 74,101, 26, 83,
/* 0x09c0 */ 74,125, 64,147, 74,193, 6,145, 91,249,127,211, 6, 0, 0, 20,
/* 0x09d0 */ 44,106, 57,120,156, 7, 0,113, 8,121, 31, 83,233, 3, 10, 42,
/* 0x09e0 */ 32, 3, 0, 84, 63, 1, 14,107, 19,121, 31, 83,121,199, 40,139,
/* 0x09f0 */ 232, 0, 0, 84,127, 1, 2,235, 41, 93, 24, 83,192,240,255, 84,
/* 0x0a00 */ 106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42, 42,106,121,120,
/* 0x0a10 */ 45,125, 11, 83,236, 1, 10, 75, 90, 21, 74, 75, 76, 21,140, 11,
/* 0x0a20 */ 170,125, 10, 27,255, 0, 10,107, 41, 1, 10, 75, 35,253,255, 84,
/* 0x0a30 */ 58,106, 57,120,156, 7, 0,113,231, 0, 10, 75,104, 6, 0, 17,
/* 0x0a40 */ 33,253,255, 84, 10, 1, 1, 81, 95, 13, 0,113, 45, 17, 0, 84,
/* 0x0a50 */ 95, 53, 0,113, 72, 1, 0, 18, 77,125, 1, 19, 12, 1, 31, 50,
/* 0x0a60 */ 140, 32, 0, 84,104, 0,102,158,187, 5, 0, 81,152, 33,219, 26,
/* 0x0a70 */ 8,193, 42,203, 8, 65, 56,139, 40, 6, 8,139, 8, 9, 0,209,
/* 0x0a80 */ 19, 1,103,158, 40, 0,128, 82,252, 3, 8, 42, 7, 0, 0, 20,
/* 0x0a90 */ 83, 3, 0,121, 8,121, 31, 83,233, 3, 10, 42,123, 7, 0,113,
/* 0x0aa0 */ 156,123, 31, 83,128, 14, 0, 84,106, 2,102,158, 63, 1, 14,107,
/* 0x0ab0 */ 25,121, 31, 83, 90,197, 40,139,232, 0, 0, 84,127, 1, 2,235,
/* 0x0ac0 */ 41, 93, 24, 83,128,234,255, 84,106, 1, 64, 57,107, 5, 0,145,
/* 0x0ad0 */ 71, 33, 7, 42, 74, 3, 64,121, 45,125, 11, 83,243, 1, 10, 75,
/* 0x0ae0 */ 76, 21, 74, 75, 83, 21,147, 11,170,125, 10, 27,255, 0, 10,107,
/* 0x0af0 */ 41, 1, 10, 75,227,252,255, 84, 76, 3, 0,121, 24, 3, 28, 42,
/* 0x0b00 */ 231, 0, 10, 75, 40, 7, 0, 17,229,255,255, 23, 41, 0,128, 82,
/* 0x0b10 */ 6, 0, 0, 20, 41,121, 31, 83, 74,107, 56,120, 63,253, 3,113,
/* 0x0b20 */ 232, 3, 12, 42, 44, 3, 0, 84, 31, 1, 14,107, 51,121, 31, 83,
/* 0x0b30 */ 56,125,127,147,232, 0, 0, 84,127, 1, 2,235, 8, 93, 24, 83,
/* 0x0b40 */ 160,230,255, 84,106, 1, 64, 57,107, 5, 0,145, 71, 33, 7, 42,
/* 0x0b50 */ 74,107,120,120, 12,125, 11, 83,237, 1, 10, 75,140,125, 10, 27,
/* 0x0b60 */ 89, 21, 74, 75, 74, 21,141, 11,255, 0, 12,107, 8, 1, 12, 75,
/* 0x0b70 */ 35,253,255, 84,105, 6, 0, 17, 89,107, 56,120, 63,253, 3,113,
/* 0x0b80 */ 231, 0, 12, 75, 45,253,255, 84, 42, 29, 0, 83, 95, 14, 0,113,
/* 0x0b90 */ 138, 72, 48, 56,233, 3, 8, 42, 16, 6, 0, 17,204,225,255, 84,
/* 0x0ba0 */ 191, 0, 16,107, 18, 0,128, 82,200,215,255, 84, 15,255,255, 23,
/* 0x0bb0 */ 73, 3, 10, 75, 8, 21, 72, 75, 63, 1, 14,107, 40,106, 44,120,
/* 0x0bc0 */ 231, 0, 10, 75,154, 97, 0,145,232, 0, 0, 84,127, 1, 2,235,
/* 0x0bd0 */ 32,226,255, 84,104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145,
/* 0x0be0 */ 7, 33, 7, 42, 40,106,122,120, 42,125, 11, 83, 74,125, 8, 27,
/* 0x0bf0 */ 255, 0, 10,107, 66, 10, 0, 84,233, 1, 8, 75, 95, 1, 14,107,
/* 0x0c00 */ 173,129, 7,145, 8, 21,137, 11, 40,106, 58,120,232, 0, 0, 84,
/* 0x0c10 */ 127, 1, 2,235, 0,224,255, 84,104, 1, 64, 57, 74, 93, 24, 83,
/* 0x0c20 */ 107, 5, 0,145, 7, 33, 7, 42, 40,106,109,120, 73,125, 11, 83,
/* 0x0c30 */ 41,125, 8, 27,255, 0, 9,107,226, 16, 0, 84,234, 1, 8, 75,
/* 0x0c40 */ 8, 21,138, 11, 40,106, 45,120,112,222,255, 52, 74, 0, 38, 30,
/* 0x0c50 */ 8, 2, 28, 75, 12, 0, 38, 30, 95, 30, 0,113, 82,177,140, 26,
/* 0x0c60 */ 138,104,104, 56,138, 72, 48, 56, 16, 6, 0, 17,221,254,255, 23,
/* 0x0c70 */ 248, 3, 10, 42, 28, 7, 0, 49,128,219,255, 84, 82, 30, 0, 17,
/* 0x0c80 */ 200, 0, 38, 30,159, 3, 16,107, 12, 9, 0, 17, 72,220,255, 84,
/* 0x0c90 */ 232, 3, 16, 42, 2, 0, 0, 20, 76,218,255, 52, 10, 2, 28, 75,
/* 0x0ca0 */ 16, 6, 0, 17, 31, 2, 5,107,140, 5, 0, 81,138,104,106, 56,
/* 0x0cb0 */ 138, 72, 40, 56,232, 3, 16, 42, 3,255,255, 84,191, 0, 16,107,
/* 0x0cc0 */ 8,207,255, 84,201,254,255, 23, 74, 1, 9, 75,173, 21, 77, 75,
/* 0x0cd0 */ 95, 1, 14,107,141, 1, 0,121,231, 0, 9, 75,232, 0, 0, 84,
/* 0x0ce0 */ 127, 1, 2,235,128,217,255, 84,104, 1, 64, 57, 74, 93, 24, 83,
/* 0x0cf0 */ 107, 5, 0,145, 7, 33, 7, 42,141, 5, 64,121, 73,125, 11, 83,
/* 0x0d00 */ 41,125, 13, 27,255, 0, 9,107, 34, 7, 0, 84, 40,115, 29, 83,
/* 0x0d10 */ 19, 1,128, 82,234, 1, 13, 75, 8,125, 64,147,100, 2, 39, 30,
/* 0x0d20 */ 8, 9, 2,145,115, 0,128, 82,173, 21,138, 11,153, 5, 8,139,
/* 0x0d30 */ 141, 5, 0,121,102, 2, 39, 30,244,254,255, 23, 41, 1, 10, 75,
/* 0x0d40 */ 8, 21, 72, 75, 63, 1, 14,107, 40,106, 58,120,231, 0, 10, 75,
/* 0x0d50 */ 154,193, 0,145,232, 0, 0, 84,127, 1, 2,235,192,213,255, 84,
/* 0x0d60 */ 104, 1, 64, 57, 41, 93, 24, 83,107, 5, 0,145, 7, 33, 7, 42,
/* 0x0d70 */ 45,106,122,120, 40,125, 11, 83, 10,125, 13, 27,255, 0, 10,107,
/* 0x0d80 */ 35, 5, 0, 84, 41, 1, 10, 75,173, 21, 77, 75, 63, 1, 14,107,
/* 0x0d90 */ 45,106, 58,120,231, 0, 10, 75,140, 33, 1,145,232, 0, 0, 84,
/* 0x0da0 */ 127, 1, 2,235,128,211,255, 84,104, 1, 64, 57, 41, 93, 24, 83,
/* 0x0db0 */ 107, 5, 0,145, 7, 33, 7, 42, 45,106,108,120, 40,125, 11, 83,
/* 0x0dc0 */ 10,125, 13, 27,255, 0, 10,107, 2, 8, 0, 84,232, 1, 13, 75,
/* 0x0dd0 */ 233, 3, 28, 42, 60, 2, 38, 30,173, 21,136, 11, 45,106, 44,120,
/* 0x0de0 */ 241, 2, 39, 30,247, 3, 9, 42, 21, 0, 0, 20, 8, 2,128, 82,
/* 0x0df0 */ 231, 0, 9, 75,173, 21, 77, 75,153, 17, 8,145, 4, 1, 39, 30,
/* 0x0e00 */ 8, 1,128, 82,141, 5, 0,121, 73, 1, 9, 75, 6, 1, 39, 30,
/* 0x0e10 */ 190,254,255, 23,191, 0, 16,107, 82, 26, 0, 81, 40,196,255, 84,
/* 0x0e20 */ 114,254,255, 23,232, 1, 13, 75,233, 3, 28, 42,252, 3, 23, 42,
/* 0x0e30 */ 247, 3, 9, 42,173, 21,136, 11, 45,106, 58,120,136, 2, 38, 30,
/* 0x0e40 */ 95, 30, 0,113, 9, 0, 38, 30, 44, 0,102,158, 18,177,137, 26,
/* 0x0e50 */ 151,254,255, 23, 8, 21, 72, 75, 74, 1, 9, 75,231, 0, 9, 75,
/* 0x0e60 */ 40,106, 45,120,246,255,255, 23,232, 3, 13, 42, 84,254,255, 23,
/* 0x0e70 */ 170, 21, 0, 81, 63, 1, 14,107,140,121, 31, 83,232, 0, 0, 84,
/* 0x0e80 */ 127, 1, 2,235, 41, 93, 24, 83, 96,204,255, 84,104, 1, 64, 57,
/* 0x0e90 */ 107, 5, 0,145, 7, 33, 7, 42, 41,125, 1, 83,255, 0, 9,107,
/* 0x0ea0 */ 99, 0, 0, 84,231, 0, 9, 75,140, 1, 0, 50, 74, 5, 0,113,
/* 0x0eb0 */ 33,254,255, 84, 8, 32, 25,145,152,109, 28, 83,155, 0,128, 82,
/* 0x0ec0 */ 19, 1,103,158,240,254,255, 23,232, 3, 28, 42,231, 0, 10, 75,
/* 0x0ed0 */ 173, 21, 77, 75,252, 3, 21, 42, 45,106, 44,120, 42, 1, 10, 75,
/* 0x0ee0 */ 53, 2, 38, 30,241, 2, 39, 30,247, 3, 8, 42,212,255,255, 23,
/* 0x0ef0 */ 240, 3, 5, 42,227, 19,189,169,229, 27, 1,169,254, 19, 0,249,
/* 0x0f00 */ 232, 3, 1,170, 45, 64, 34,139,233, 3, 4,170,142, 64, 37,139,
/* 0x0f10 */ 11, 16, 0,145, 6, 0, 64, 57, 5, 4, 64, 57, 4, 8, 64, 57,
/* 0x0f20 */ 174, 0, 6, 11, 7, 0,128, 18,229, 32,197, 26,229, 3, 37, 42,
/* 0x0f30 */ 228, 32,196, 26,228, 3, 36, 42, 35, 0,128, 82, 34, 0,128, 82,
/* 0x0f40 */ 33, 0,128, 82, 32, 0,128, 82, 6, 0,128, 82,230, 31, 0,185,
/* 0x0f50 */ 2, 96,128, 82,192,230,128, 82, 66, 32,206, 26, 66, 0, 0, 11,
/* 0x0f60 */ 0,128,128,210,225, 3, 11,170, 0, 64, 0,170, 0,128, 0,170,
/* 0x0f70 */ 32,132, 0,248, 66, 16, 0,113,204,255,255, 84, 0, 21, 0,145,
/* 0x0f80 */ 232, 0, 0,148, 31, 0, 8,235,193,255,255, 84,227, 67, 66,248,
/* 0x0f90 */ 226, 19, 64,185, 36, 1, 3,203,128, 0, 2, 10,224, 47, 0,185,
/* 0x0fa0 */ 0, 16, 6, 11, 97, 1, 0,145,226, 0, 0,148,161, 5, 0, 84,
/* 0x0fb0 */ 227, 23, 64,185,226, 27, 64,185, 99, 0, 4, 10,224,115, 64, 57,
/* 0x0fc0 */ 99, 32,194, 26,226, 3, 2, 75, 66, 32, 0, 17, 2, 36,194, 26,
/* 0x0fd0 */ 99, 0, 2, 11,106,177, 57,145, 99, 4, 3, 11,227, 3, 3, 42,
/* 0x0fe0 */ 32, 0,128, 82, 74, 37, 3,139,223, 28, 0,113, 35, 2, 0, 84,
/* 0x0ff0 */ 227,125, 64,147,227, 3, 3,203, 37,105, 99, 56,165,120, 31, 83,
/* 0x1000 */ 65, 1, 8,145,164, 0, 24, 18,227, 3, 4, 42, 33, 4, 3,139,
/* 0x1010 */ 202, 0, 0,148, 3, 0, 0, 18,130,124, 8, 83,127, 0, 2,107,
/* 0x1020 */ 193, 0, 0, 84, 31, 0, 4,113,163,254,255, 84, 5, 0, 0, 20,
/* 0x1030 */ 225, 3, 10,170,193, 0, 0,148, 31, 0, 4,113,163,255,255, 84,
/* 0x1040 */ 98, 0,128, 82,195, 0,128, 82,223, 40, 0,113, 67, 48,131, 26,
/* 0x1050 */ 223, 16, 0,113,195, 48,131, 26,198, 0, 3, 75, 34, 0, 0, 20,
/* 0x1060 */ 97, 1, 6,145,178, 0, 0,148,129, 1, 0, 84,227, 11, 64,185,
/* 0x1070 */ 226, 7, 64,185,227, 15, 0,185,226, 11, 0,185,239, 7, 0,185,
/* 0x1080 */ 3, 0,128, 82,223, 28, 0,113,102, 0,128, 82,102, 48,134, 26,
/* 0x1090 */ 106,145, 25,145, 42, 0, 0, 20, 97, 97, 6,145,164, 0, 0,148,
/* 0x10a0 */ 97, 2, 0, 84,227, 47, 64,185, 97,129, 7,145, 96, 16, 6, 11,
/* 0x10b0 */ 160, 0, 0,148,161, 3, 0, 84, 35, 1,128, 82,223, 28, 0,113,
/* 0x10c0 */ 102, 1,128, 82,102, 48,134, 26,227, 67, 66,248, 36, 1, 3,203,
/* 0x10d0 */ 159, 0, 15,107,131, 17, 0, 84,227,125, 64,147,227, 3, 3,203,
/* 0x10e0 */ 32,105, 99, 56, 32, 21, 0, 56,121, 0, 0, 20, 97,193, 6,145,
/* 0x10f0 */ 143, 0, 0,148,228, 7, 64,185, 64, 1, 0, 84, 97, 33, 7,145,
/* 0x1100 */ 139, 0, 0,148,228, 11, 64,185,128, 0, 0, 84,227, 11, 64,185,
/* 0x1110 */ 228, 15, 64,185,227, 15, 0,185,227, 7, 64,185,227, 11, 0,185,
/* 0x1120 */ 239, 7, 0,185,239, 3, 4, 42, 3, 1,128, 82,223, 28, 0,113,
/* 0x1130 */ 102, 1,128, 82,102, 48,134, 26,106,161, 41,145, 65, 1, 0,145,
/* 0x1140 */ 125, 0, 0,148, 1, 1, 0, 84,227, 47, 64,185, 69, 17, 0,145,
/* 0x1150 */ 227, 3, 3, 42, 2, 0,128, 82,165, 16, 3,139, 4, 1,128, 82,
/* 0x1160 */ 14, 0, 0, 20, 65, 9, 0,145,115, 0, 0,148, 1, 1, 0, 84,
/* 0x1170 */ 227, 47, 64,185, 69, 17, 4,145,227, 3, 3, 42, 2, 1,128, 82,
/* 0x1180 */ 165, 16, 3,139, 4, 1,128, 82, 4, 0, 0, 20, 69, 17, 8,145,
/* 0x1190 */ 2, 2,128, 82, 4, 32,128, 82,226, 55, 0,185, 32, 0,128, 82,
/* 0x11a0 */ 225, 3, 5,170,101, 0, 0,148, 3, 0, 4,107,163,255,255, 84,
/* 0x11b0 */ 229, 55, 64,185,165, 0, 3, 11,229, 55, 0,185,223, 16, 0,113,
/* 0x11c0 */ 194, 6, 0, 84,198, 28, 0, 17, 99, 0,128, 82,191, 16, 0,113,
/* 0x11d0 */ 101, 32,133, 26,227, 3, 5, 42,101, 29, 3,139,165,128, 13,145,
/* 0x11e0 */ 32, 0,128, 82, 4, 8,128, 82,225, 3, 5,170, 83, 0, 0,148,
/* 0x11f0 */ 3, 0, 4,107,163,255,255, 84,227, 47, 0,185,127, 16, 0,113,
/* 0x1200 */ 99, 4, 0, 84,100,124, 1, 83,132, 4, 0, 81,111, 0, 0, 18,
/* 0x1210 */ 239, 1, 31, 50,127, 56, 0,113,226, 0, 0, 84,239, 33,196, 26,
/* 0x1220 */ 106,121, 21,145,227, 1, 3, 75,227, 3, 3, 42, 74, 5, 3,139,
/* 0x1230 */ 12, 0, 0, 20,132, 16, 0, 81, 53, 0, 0,148,231,124, 1, 83,
/* 0x1240 */ 131, 1, 7,107,108, 32,140, 26,239, 1, 15, 26,132, 4, 0,113,
/* 0x1250 */ 65,255,255, 84,106, 17, 25,145,239,109, 28, 83,132, 0,128, 82,
/* 0x1260 */ 37, 0,128, 82, 32, 0,128, 82,225, 3, 10,170, 51, 0, 0,148,
/* 0x1270 */ 31, 0, 0,114, 64, 0, 0, 84,239, 1, 5, 42,165,120, 31, 83,
/* 0x1280 */ 132, 4, 0,113, 33,255,255, 84, 2, 0, 0, 20,239, 47, 64,185,
/* 0x1290 */ 239, 5, 0, 49,229, 55, 64,185,227, 67, 66,248,165, 8, 0, 17,
/* 0x12a0 */ 35, 1, 3,203,255, 1, 3,107,232, 2, 0, 84,227,125, 64,147,
/* 0x12b0 */ 227, 3, 3,203, 32,105, 99, 56, 32, 21, 0, 56, 63, 1, 14,235,
/* 0x12c0 */ 194, 0, 0, 84,165, 4, 0,113, 97,255,255, 84,224,115, 0, 57,
/* 0x12d0 */ 63, 1, 14,235,195,229,255, 84, 13, 0, 0,148, 0, 0,128, 82,
/* 0x12e0 */ 226, 19, 64,249, 3, 1, 2,203,226, 31, 64,249, 67, 0, 0,185,
/* 0x12f0 */ 226, 67, 66,248, 35, 1, 2,203,226, 55, 64,249, 67, 0, 0,185,
/* 0x1300 */ 255,243, 0,145, 32, 0,128, 82,246,255,255, 23,227,124, 24, 83,
/* 0x1310 */ 195, 0, 0, 53, 31, 1, 13,235,231, 92, 24, 83, 66,255,255, 84,
/* 0x1320 */ 3, 21, 64, 56,108, 32, 12, 42,192, 3, 95,214,224, 3, 6, 42,
/* 0x1330 */ 33, 68, 32,139, 0, 0,128, 82, 33, 68, 32,139,227,124, 24, 83,
/* 0x1340 */ 241, 3, 30,170, 94, 0, 0, 16, 99,254,255, 52, 35, 0, 64,121,
/* 0x1350 */ 226,124, 11, 83, 98,124, 2, 27,159, 1, 2,107, 2, 1, 0, 84,
/* 0x1360 */ 231, 3, 2, 42, 2, 0,129, 82, 66, 0, 3, 75, 0, 0, 0, 58,
/* 0x1370 */ 99, 20, 66, 11, 35, 0, 0,121, 32, 2, 95,214,140, 1, 2, 75,
/* 0x1380 */ 231, 0, 2, 75, 99, 20, 67, 75, 0, 0, 0, 58, 35, 0, 0,121,
/* 0x1390 */ 32, 2, 95,214,194, 3,128, 82,225, 0, 0, 16, 64, 0,128, 82,
/* 0x13a0 */ 8, 8,128, 82, 1, 0, 0,212,224, 15,128, 82,168, 11,128, 82,
/* 0x13b0 */ 1, 0, 0,212, 80, 82, 79, 84, 95, 69, 88, 69, 67,124, 80, 82,
/* 0x13c0 */ 79, 84, 95, 87, 82, 73, 84, 69, 32,102, 97,105,108,101,100, 46,
/* 0x13d0 */ 10, 0, 0, 0, 5, 0,128,210, 98, 0,128, 82,200, 27,128, 82,
/* 0x13e0 */ 1, 0, 0,212,192, 3, 95,214,244, 3, 30,170, 0,195, 94,184,
/* 0x13f0 */ 25, 83, 0,209, 57, 3, 0,203,129, 6, 64,185, 4, 0,128, 18,
/* 0x1400 */ 67, 4,128, 82, 0, 0,128,210,243,255,255,151,224, 7,191,169,
/* 0x1410 */ 250,111,191,169,251, 3, 0,170,226, 3, 0,170,225, 15, 31,248,
/* 0x1420 */ 227, 3, 0,145,128, 66, 0,145,129, 10, 64,185,132, 50, 64, 57,
/* 0x1430 */ 0, 3, 63,214,232, 7, 65,248,122, 3, 0,249,115, 19, 0,185,
/* 0x1440 */ 162, 0,128, 82,225, 27, 64,185,224, 3, 27,170, 72, 28,128, 82,
/* 0x1450 */ 1, 0, 0,212,128, 2, 64,185, 29,195, 94,184, 60, 3, 0,139,
/* 0x1460 */ 96, 83, 0,145, 0, 0, 31,214, 47,112,114,111, 99, 47,115,101,
/* 0x1470 */ 108,102, 47,101,120,101, 0, 0, 1,132, 64,248,225,255,255,181,
/* 0x1480 */ 192, 3, 95,214,248, 3, 30,170,224, 99, 0,145,251,255,255,151,
/* 0x1490 */ 250,255,255,151,246, 3, 0,170, 1, 8,193,168, 63, 24, 0,113,
/* 0x14a0 */ 96, 0, 0, 84,161,255,255, 53, 34, 0,160,210,250, 3, 2,203,
/* 0x14b0 */ 96, 12,128, 18,161,253,255, 16, 2, 0,128, 82, 8, 7,128, 82,
/* 0x14c0 */ 1, 0, 0,212,251, 3, 0, 42,200,255,255,151, 0, 0, 0, 0,
/* 0x14d0 */ 102,105,108,101, 32,102,111,114,109, 97,116, 32,101,108,102, 54,
/* 0x14e0 */ 52, 45,108,105,116,116,108,101, 97, 97,114, 99,104, 54, 52, 10,
/* 0x14f0 */ 10, 83,101, 99,116,105,111,110,115, 58, 10, 73,100,120, 32, 78,
/* 0x1500 */ 97,109,101, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 83,105,122,
/* 0x1510 */ 101, 32, 32, 32, 32, 32, 32, 86, 77, 65, 32, 32, 32, 32, 32, 32,
/* 0x1520 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 76, 77, 65, 32, 32, 32, 32,
/* 0x1530 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 70,105,108,101, 32,
/* 0x1540 */ 111,102,102, 32, 32, 65,108,103,110, 32, 32, 70,108, 97,103,115,
/* 0x1550 */ 10, 32, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88, 32, 32, 32,
/* 0x1560 */ 32, 32, 32, 48, 49, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 52,
/* 0x1570 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1580 */ 83, 10, 32, 32, 49, 32, 78, 82, 86, 95, 72, 69, 65, 68, 32, 32,
/* 0x1590 */ 32, 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 48,
/* 0x15a0 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x15b0 */ 10, 32, 32, 50, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32, 32, 32,
/* 0x15c0 */ 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 48, 32,
/* 0x15d0 */ 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10,
/* 0x15e0 */ 32, 32, 51, 32, 78, 82, 86, 50, 69, 32, 32, 32, 32, 32, 32, 32,
/* 0x15f0 */ 32, 32, 48, 49, 55, 99, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53,
/* 0x1600 */ 48, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1610 */ 83, 10, 32, 32, 52, 32, 78, 82, 86, 50, 68, 32, 32, 32, 32, 32,
/* 0x1620 */ 32, 32, 32, 32, 48, 49, 55, 48, 32, 32, 48, 32, 32, 48, 32, 32,
/* 0x1630 */ 48, 49, 99, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1640 */ 69, 78, 84, 83, 10, 32, 32, 53, 32, 78, 82, 86, 50, 66, 32, 32,
/* 0x1650 */ 32, 32, 32, 32, 32, 32, 32, 48, 49, 52, 52, 32, 32, 48, 32, 32,
/* 0x1660 */ 48, 32, 32, 48, 51, 51, 99, 32, 32, 50, 42, 42, 48, 32, 32, 67,
/* 0x1670 */ 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 54, 32, 76, 90, 77, 65,
/* 0x1680 */ 95, 69, 76, 70, 48, 48, 32, 32, 32, 32, 48, 49, 48, 99, 32, 32,
/* 0x1690 */ 48, 32, 32, 48, 32, 32, 48, 52, 56, 48, 32, 32, 50, 42, 42, 48,
/* 0x16a0 */ 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32, 55, 32, 76,
/* 0x16b0 */ 90, 77, 65, 95, 68, 69, 67, 50, 48, 32, 32, 32, 32, 48, 57, 54,
/* 0x16c0 */ 56, 32, 32, 48, 32, 32, 48, 32, 32, 48, 53, 56, 99, 32, 32, 50,
/* 0x16d0 */ 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83, 10, 32, 32,
/* 0x16e0 */ 56, 32, 76, 90, 77, 65, 95, 68, 69, 67, 49, 48, 32, 32, 32, 32,
/* 0x16f0 */ 48, 52, 97, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48,101,102, 52,
/* 0x1700 */ 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84, 83,
/* 0x1710 */ 10, 32, 32, 57, 32, 76, 90, 77, 65, 95, 68, 69, 67, 51, 48, 32,
/* 0x1720 */ 32, 32, 32, 48, 32, 32, 48, 32, 32, 48, 32, 32, 48, 49, 51, 57,
/* 0x1730 */ 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84, 69, 78, 84,
/* 0x1740 */ 83, 10, 32, 49, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 32, 32,
/* 0x1750 */ 32, 32, 32, 32, 48, 51,101, 32, 32, 48, 32, 32, 48, 32, 32, 48,
/* 0x1760 */ 49, 51, 57, 52, 32, 32, 50, 42, 42, 48, 32, 32, 67, 79, 78, 84,
/* 0x1770 */ 69, 78, 84, 83, 10, 32, 49, 49, 32, 69, 76, 70, 77, 65, 73, 78,
/* 0x1780 */ 90, 32, 32, 32, 32, 32, 32, 48,102, 99, 32, 32, 48, 32, 32, 48,
/* 0x1790 */ 32, 32, 48, 49, 51,100, 52, 32, 32, 50, 42, 42, 50, 32, 32, 67,
/* 0x17a0 */ 79, 78, 84, 69, 78, 84, 83, 10, 83, 89, 77, 66, 79, 76, 32, 84,
/* 0x17b0 */ 65, 66, 76, 69, 58, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x17c0 */ 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76,
/* 0x17d0 */ 90, 77, 65, 95, 68, 69, 67, 51, 48, 32, 48, 32, 76, 90, 77, 65,
/* 0x17e0 */ 95, 68, 69, 67, 51, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x17f0 */ 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32,
/* 0x1800 */ 69, 76, 70, 77, 65, 73, 78, 90, 32, 48, 32, 69, 76, 70, 77, 65,
/* 0x1810 */ 73, 78, 90, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1820 */ 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70,
/* 0x1830 */ 77, 65, 73, 78, 88, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 88,
/* 0x1840 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1850 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 72, 69,
/* 0x1860 */ 65, 68, 32, 48, 32, 78, 82, 86, 95, 72, 69, 65, 68, 10, 48, 48,
/* 0x1870 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108,
/* 0x1880 */ 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 95, 84, 65, 73, 76, 32,
/* 0x1890 */ 48, 32, 78, 82, 86, 95, 84, 65, 73, 76, 10, 48, 48, 48, 48, 48,
/* 0x18a0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32,
/* 0x18b0 */ 32,100, 32, 32, 78, 82, 86, 50, 69, 32, 48, 32, 78, 82, 86, 50,
/* 0x18c0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x18d0 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 78, 82, 86, 50, 68,
/* 0x18e0 */ 32, 48, 32, 78, 82, 86, 50, 68, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x18f0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,108, 32, 32, 32, 32,100,
/* 0x1900 */ 32, 32, 78, 82, 86, 50, 66, 32, 48, 32, 78, 82, 86, 50, 66, 10,
/* 0x1910 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1920 */ 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 69, 76,
/* 0x1930 */ 70, 48, 48, 32, 48, 32, 76, 90, 77, 65, 95, 69, 76, 70, 48, 48,
/* 0x1940 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1950 */ 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95, 68,
/* 0x1960 */ 69, 67, 50, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67, 50,
/* 0x1970 */ 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1980 */ 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 76, 90, 77, 65, 95,
/* 0x1990 */ 68, 69, 67, 49, 48, 32, 48, 32, 76, 90, 77, 65, 95, 68, 69, 67,
/* 0x19a0 */ 49, 48, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x19b0 */ 48, 48, 48, 32,108, 32, 32, 32, 32,100, 32, 32, 69, 76, 70, 77,
/* 0x19c0 */ 65, 73, 78, 89, 32, 48, 32, 69, 76, 70, 77, 65, 73, 78, 89, 10,
/* 0x19d0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x19e0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 42, 85, 78, 68, 42, 32, 48,
/* 0x19f0 */ 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a00 */ 48, 48, 48, 48, 48, 52, 32,103, 32, 32, 32, 32, 32, 32, 32, 69,
/* 0x1a10 */ 76, 70, 77, 65, 73, 78, 88, 32, 48, 32, 95,115,116, 97,114,116,
/* 0x1a20 */ 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1a30 */ 48, 32,103, 32, 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 69, 32,
/* 0x1a40 */ 48, 49, 55, 99, 32,117, 99,108, 95,110,114,118, 50,101, 95,100,
/* 0x1a50 */ 101, 99,111,109,112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48,
/* 0x1a60 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32,
/* 0x1a70 */ 32, 32, 32, 32, 70, 32, 78, 82, 86, 50, 68, 32, 48, 49, 55, 48,
/* 0x1a80 */ 32,117, 99,108, 95,110,114,118, 50,100, 95,100,101, 99,111,109,
/* 0x1a90 */ 112,114,101,115,115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1aa0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32,
/* 0x1ab0 */ 70, 32, 78, 82, 86, 50, 66, 32, 48, 49, 52, 52, 32,117, 99,108,
/* 0x1ac0 */ 95,110,114,118, 50, 98, 95,100,101, 99,111,109,112,114,101,115,
/* 0x1ad0 */ 115, 95, 51, 50, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1ae0 */ 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 76, 90,
/* 0x1af0 */ 77, 65, 95, 68, 69, 67, 49, 48, 32, 48, 32, 76,122,109, 97, 68,
/* 0x1b00 */ 101, 99,111,100,101, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b10 */ 48, 48, 48, 48, 48, 48, 32,103, 32, 32, 32, 32, 32, 32, 32, 69,
/* 0x1b20 */ 76, 70, 77, 65, 73, 78, 89, 32, 48, 32,101,110,100, 95,100,101,
/* 0x1b30 */ 99,111,109,112,114,101,115,115, 10, 48, 48, 48, 48, 48, 48, 48,
/* 0x1b40 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 32, 32, 32, 32, 32, 32, 32,
/* 0x1b50 */ 32, 32, 42, 85, 78, 68, 42, 32, 48, 32, 79, 95, 66, 73, 78, 70,
/* 0x1b60 */ 79, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78, 32, 82, 69,
/* 0x1b70 */ 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76, 70, 77, 65,
/* 0x1b80 */ 73, 78, 88, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32, 32, 32, 32,
/* 0x1b90 */ 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32, 32, 32, 32,
/* 0x1ba0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85, 69, 10, 48,
/* 0x1bb0 */ 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 32,
/* 0x1bc0 */ 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83, 51, 50, 32,
/* 0x1bd0 */ 32, 32, 77, 70, 76, 71, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1be0 */ 48, 48, 48, 48, 48, 48, 99, 32, 82, 95, 65, 65, 82, 67, 72, 54,
/* 0x1bf0 */ 52, 95, 67, 65, 76, 76, 50, 54, 32, 32, 69, 76, 70, 77, 65, 73,
/* 0x1c00 */ 78, 90, 43, 48,120, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c10 */ 48, 48, 48, 98, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79,
/* 0x1c20 */ 78, 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 76,
/* 0x1c30 */ 90, 77, 65, 95, 69, 76, 70, 48, 48, 93, 58, 10, 79, 70, 70, 83,
/* 0x1c40 */ 69, 84, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80,
/* 0x1c50 */ 69, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86,
/* 0x1c60 */ 65, 76, 85, 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1c70 */ 48, 48, 48, 48, 52, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95,
/* 0x1c80 */ 67, 79, 78, 68, 66, 82, 49, 57, 32, 32, 76, 90, 77, 65, 95, 68,
/* 0x1c90 */ 69, 67, 51, 48, 10, 10, 82, 69, 76, 79, 67, 65, 84, 73, 79, 78,
/* 0x1ca0 */ 32, 82, 69, 67, 79, 82, 68, 83, 32, 70, 79, 82, 32, 91, 69, 76,
/* 0x1cb0 */ 70, 77, 65, 73, 78, 90, 93, 58, 10, 79, 70, 70, 83, 69, 84, 32,
/* 0x1cc0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 84, 89, 80, 69, 32, 32,
/* 0x1cd0 */ 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 86, 65, 76, 85,
/* 0x1ce0 */ 69, 10, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
/* 0x1cf0 */ 102, 56, 32, 82, 95, 65, 65, 82, 67, 72, 54, 52, 95, 65, 66, 83,
/* 0x1d00 */ 51, 50, 32, 32, 32, 79, 95, 66, 73, 78, 70, 79, 10
};
+169 -166
View File
@@ -1,5 +1,5 @@
/* arm64-linux.elf-fold.h
created from arm64-linux.elf-fold.bin, 2852 (0xb24) bytes
created from arm64-linux.elf-fold.bin, 2912 (0xb60) bytes
This file is part of the UPX executable compressor.
@@ -32,20 +32,20 @@
/* clang-format off */
#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2852
#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0xf31ae492
#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0xf7b54986
#define STUB_ARM64_LINUX_ELF_FOLD_SIZE 2912
#define STUB_ARM64_LINUX_ELF_FOLD_ADLER32 0x145c002e
#define STUB_ARM64_LINUX_ELF_FOLD_CRC32 0xa4522f82
unsigned char stub_arm64_linux_elf_fold[2852] = {
unsigned char stub_arm64_linux_elf_fold[2912] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0,183, 0, 1, 0, 0, 0,188, 0, 16, 0, 0, 0, 0, 0,
/* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
/* 0x0060 */ 36, 11, 0, 0, 0, 0, 0, 0, 36, 11, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 96, 11, 0, 0, 0, 0, 0, 0, 96, 11, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 36, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 96, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0090 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,240,255,255,
@@ -55,165 +55,168 @@ unsigned char stub_arm64_linux_elf_fold[2852] = {
/* 0x00f0 */ 33, 0, 8,139,200, 27,128, 82, 1, 0, 0,212,192, 3, 95,214,
/* 0x0100 */ 232,253,255, 88, 8, 0, 40,138, 0, 0, 8,203, 33, 0, 8,139,
/* 0x0110 */ 72, 28,128, 82, 1, 0, 0,212,192, 3, 95,214,250,111, 65,169,
/* 0x0120 */ 244, 87,194,168,231, 3, 64,249,224, 3, 0,145,225, 3, 22,170,
/* 0x0120 */ 244, 87,194,168,231, 3, 0,145,224, 3, 0,145,225, 3, 22,170,
/* 0x0130 */ 34, 4, 65,248,226,255,255,181, 32, 4, 64,209, 6, 16, 0,209,
/* 0x0140 */ 33, 0, 6,203,192, 0, 1,203, 0, 32, 0,209, 0,236,124,146,
/* 0x0150 */ 225, 35, 0,145, 31, 0, 0,145, 7,132, 0,248, 34,132, 64,248,
/* 0x0160 */ 2,132, 0,248,194,255,255,181, 34,132, 64,248, 2,132, 0,248,
/* 0x0170 */ 194,255,255,181, 4, 32, 0,209, 31,132, 0,248,231, 3, 0,170,
/* 0x0180 */ 246, 3, 0,170, 34, 12,193,168, 2, 12,129,168,194,255,255,181,
/* 0x0190 */ 247, 3, 0,170,225, 3, 6,170,129, 0, 0,249,194, 6, 0, 24,
/* 0x01a0 */ 34, 68, 0,184,226,255,129, 82,128, 6, 0, 16, 97, 0, 0,148,
/* 0x01b0 */ 31, 4, 64,177, 66, 0, 0, 84, 95,104, 32, 56,231, 3, 20,170,
/* 0x01c0 */ 230, 3, 25,170,255, 3, 48,209, 5, 6, 0, 16,228, 3, 24,170,
/* 0x01d0 */ 227, 3, 22,170,226, 3, 0,145,225, 3, 29, 42,224, 3, 28,170,
/* 0x01e0 */ 247, 1, 0,148,255, 3, 48,145,248, 3, 0,170, 33, 83, 64,249,
/* 0x01f0 */ 224, 3, 25,170, 34, 67, 64, 57, 95, 8, 0,113, 65, 0, 0, 84,
/* 0x0200 */ 65, 0, 0,148,224, 3, 25,170, 66, 0, 0,148, 5, 0,128,210,
/* 0x0210 */ 228, 3, 21, 42,159, 0, 0,113, 11, 1, 0, 84, 67, 0,128, 82,
/* 0x0220 */ 34, 0,128, 82, 1, 0,130,210, 0, 0,128,210,174,255,255,151,
/* 0x0230 */ 224, 3, 21, 42, 46, 0, 0,148,254, 3, 24,170,224, 3, 26,170,
/* 0x0240 */ 225, 3, 27, 42,226,130, 95,248,255,127,191,169,240, 3, 31,170,
/* 0x0250 */ 227, 19, 64,169,230, 31, 64,169,232, 39, 64,169,244, 87, 64,169,
/* 0x0260 */ 246, 95, 64,169,248,103, 64,169,250,111, 64,169,252,119,193,168,
/* 0x0270 */ 192, 3, 95,214, 32, 32, 32, 61, 47,112,114,111, 99, 47,115,101,
/* 0x0280 */ 108,102, 47,101,120,101, 0, 0, 99, 28, 0, 18,127, 72, 1,113,
/* 0x0290 */ 129, 1, 0, 84, 33,252, 66,211, 65, 1, 0,180, 33, 4, 0,209,
/* 0x02a0 */ 2,120, 97,184, 67,120, 26, 83,127, 20, 0,113,129, 0, 0, 84,
/* 0x02b0 */ 67, 0, 1, 75, 98,100, 0, 51, 2,120, 33,184, 1,255,255,181,
/* 0x02c0 */ 192, 3, 95,214, 0, 0, 32,212,192, 3, 95,214,168, 11,128, 82,
/* 0x02d0 */ 1, 0, 0,212,232, 7,128, 82, 1, 0, 0,212,192, 3, 95,214,
/* 0x02e0 */ 8, 8,128, 82, 1, 0, 0,212,192, 3, 95,214, 40, 7,128, 82,
/* 0x02f0 */ 1, 0, 0,212,192, 3, 95,214,168, 21,128, 82, 1, 0, 0,212,
/* 0x0300 */ 192, 3, 95,214,200, 26,128, 82, 1, 0, 0,212,192, 3, 95,214,
/* 0x0310 */ 232, 26,128, 82, 1, 0, 0,212,192, 3, 95,214, 2, 0,128,210,
/* 0x0320 */ 225, 3, 0,170, 96, 12,128, 18,104, 4,128, 82, 4, 0, 0, 20,
/* 0x0330 */ 200, 9,128, 82, 2, 0, 0, 20, 8, 7,128, 82,227, 3, 2,170,
/* 0x0340 */ 226, 3, 1,170,225, 3, 0,170, 96, 12,128,146, 1, 0, 0,212,
/* 0x0350 */ 192, 3, 95,214, 0, 0, 64,212, 2, 0,128, 82, 8, 0,128, 82,
/* 0x0360 */ 1, 0, 0,212,192, 3, 95,214,253,123,191,169, 3, 0,128,210,
/* 0x0370 */ 253, 3, 0,145, 5, 0, 64,249, 4, 4, 64,249,191, 0, 2,235,
/* 0x0380 */ 98, 0, 0, 84,224, 15,128, 82,209,255,255,151,127, 0, 2,235,
/* 0x0390 */ 160, 0, 0, 84,133,104, 99, 56, 37,104, 35, 56, 99, 4, 0,145,
/* 0x03a0 */ 251,255,255, 23, 1, 4, 64,249, 33, 0, 3,139, 1, 4, 0,249,
/* 0x03b0 */ 1, 0, 64,249, 35, 0, 3,203, 3, 0, 0,249,253,123,193,168,
/* 0x03c0 */ 192, 3, 95,214,253,123,187,169,253, 3, 0,145,243, 83, 1,169,
/* 0x03d0 */ 245, 91, 2,169,244, 3, 0,170,243, 3, 1,170,246, 3, 2,170,
/* 0x03e0 */ 245, 3, 3,170, 96, 2, 64,249,160, 8, 0,180,224, 3, 20,170,
/* 0x03f0 */ 130, 1,128,210,161, 3, 1,145,220,255,255,151,160, 67, 64,185,
/* 0x0400 */ 162, 71, 64,185, 0, 1, 0, 53,160, 10,138, 82, 0, 43,164,114,
/* 0x0410 */ 95, 0, 0,107,225, 0, 0, 84,128, 2, 64,249, 0, 7, 0,180,
/* 0x0420 */ 4, 0, 0, 20, 98, 0, 0, 52, 95, 0, 0,107,105, 0, 0, 84,
/* 0x0430 */ 224, 15,128, 82,166,255,255,151, 99, 2, 64,249,225, 3, 0, 42,
/* 0x0440 */ 63, 0, 3,235,104,255,255, 84, 95, 0, 0,107, 2, 4, 0, 84,
/* 0x0450 */ 161, 31, 0,249,225, 3, 2, 42,128, 6, 64,249,163,227, 0,145,
/* 0x0460 */ 98, 6, 64,249,164, 35, 65, 57,192, 2, 63,214, 32,254,255, 53,
/* 0x0470 */ 161, 31, 64,249,160, 67, 64,185, 63, 0, 0,235,161,253,255, 84,
/* 0x0480 */ 163, 39, 65, 57, 85, 1, 0,180, 35, 1, 0, 52, 63, 0, 8,241,
/* 0x0490 */ 136, 0, 0, 84, 96, 2, 64,249, 31, 0, 1,235,129, 0, 0, 84,
/* 0x04a0 */ 96, 6, 64,249,162, 43, 65, 57,160, 2, 63,214,163, 71, 64,185,
/* 0x04b0 */ 129, 6, 64,249,128, 2, 64,249, 33, 0, 3,139,129, 6, 0,249,
/* 0x04c0 */ 0, 0, 3,203,128, 2, 0,249, 5, 0, 0, 20, 97, 6, 64,249,
/* 0x04d0 */ 224, 3, 20,170,226, 3, 2, 42,164,255,255,151,163, 67, 64,185,
/* 0x04e0 */ 97, 6, 64,249, 96, 2, 64,249, 33, 0, 3,139, 97, 6, 0,249,
/* 0x04f0 */ 0, 0, 3,203, 96, 2, 0,249,187,255,255, 23,243, 83, 65,169,
/* 0x0500 */ 245, 91, 66,169,253,123,197,168,192, 3, 95,214, 0, 2, 0,180,
/* 0x0510 */ 224, 1, 0, 55,228, 3, 1, 42, 3, 0, 64,249,127, 0, 4,235,
/* 0x0520 */ 129, 0, 0, 84, 4, 0, 0,249, 2, 4, 0,249, 8, 0, 0, 20,
/* 0x0530 */ 127, 4, 0,241, 97, 0, 0, 84, 97, 0, 0, 52,250,255,255, 23,
/* 0x0540 */ 99, 0, 0,180, 0, 64, 0,145,244,255,255, 23,192, 3, 95,214,
/* 0x0550 */ 253,123,181,169,253, 3, 0,145,232, 39, 6,109,201, 0,103,158,
/* 0x0560 */ 6, 16, 64,249,236, 55, 8,109,245, 91, 2,169,238, 63, 9,109,
/* 0x0570 */ 246, 3, 0,170,234, 47, 7,109,251,115, 5,169, 28, 0, 6,139,
/* 0x0580 */ 245, 3, 1,170, 32, 1,102,158,249,107, 4,169,243, 83, 1,169,
/* 0x0590 */ 247, 99, 3,169, 76, 0, 39, 30,250, 3, 3,170,141, 0,103,158,
/* 0x05a0 */ 249, 3, 7,170,174, 0,103,158, 2, 0, 64,249,195, 34, 64,121,
/* 0x05b0 */ 65, 2, 0,180, 65, 16, 64,249,127, 8, 0,113, 65, 0, 1,139,
/* 0x05c0 */ 32, 36, 64,249, 64, 0, 0,203, 65, 0, 0, 84, 32, 8, 64,249,
/* 0x05d0 */ 33, 20, 64,249, 2, 0,128, 82, 67, 6,128, 82, 4, 0,128, 18,
/* 0x05e0 */ 5, 0,128,210,192,254,255,151,193, 34, 64,121, 63, 8, 0,113,
/* 0x05f0 */ 19, 16,159,154, 42, 0, 0, 20,127, 12, 0,113, 3, 2,128, 82,
/* 0x0600 */ 99, 16,159, 26,199,114, 64,121,224, 3, 2,170, 99,136, 0, 17,
/* 0x0610 */ 228, 3, 28,170, 19, 0,128,146,231, 4, 0, 81,255, 4, 0, 49,
/* 0x0620 */ 160, 1, 0, 84,133, 0, 64,185,191, 4, 0,113, 1, 1, 0, 84,
/* 0x0630 */ 136, 8, 64,249,133, 20, 64,249,127, 2, 8,235, 5, 1, 5,139,
/* 0x0640 */ 115,146,136,154, 63, 0, 5,235, 33, 32,133,154,132,224, 0,145,
/* 0x0650 */ 242,255,255, 23,228, 3, 57,170,115, 2, 25,138,129, 0, 1,139,
/* 0x0660 */ 33, 0, 19,203, 33, 0, 25,138,163, 0, 32, 55, 83, 0, 0,181,
/* 0x0670 */ 162, 0, 0,181, 0, 0,128,210, 4, 0, 0, 20,224, 3, 19,170,
/* 0x0680 */ 2, 0, 0, 20, 67, 6,128, 82, 2, 0,128, 82, 4, 0,128, 18,
/* 0x0690 */ 5, 0,128,210,148,254,255,151, 19, 0, 19,203,224, 3, 57, 42,
/* 0x06a0 */ 232, 3, 39, 30, 10, 0, 39, 30,224, 3, 57,170, 15, 0,103,158,
/* 0x06b0 */ 1, 1, 38, 30,192,114, 64,121, 63, 0, 0,107,138, 21, 0, 84,
/* 0x06c0 */ 128, 3, 64,185, 53, 1, 0,180, 31, 24, 0,113,225, 0, 0, 84,
/* 0x06d0 */ 130, 11, 64,249,224, 3, 26,170, 97, 0,128, 82, 98, 2, 2,139,
/* 0x06e0 */ 139,255,255,151,157, 0, 0, 20, 31, 4, 0,113, 97, 19, 0, 84,
/* 0x06f0 */ 128, 23, 64,249, 32, 19, 0,180,155, 7, 64,185, 0, 72,140, 82,
/* 0x0700 */ 32,106,174,114,123, 11, 30, 83, 27, 36,219, 26,121, 11, 0, 18,
/* 0x0710 */ 85, 2, 0,180,128, 7, 64,249, 0, 2, 0,181,194, 18, 64,249,
/* 0x0720 */ 224, 3, 26,170,131, 11, 64,249, 97, 0,128, 82, 98, 2, 2,139,
/* 0x0730 */ 66, 0, 3,139,118,255,255,151,194,114, 64,121,224, 3, 26,170,
/* 0x0740 */ 161, 0,128, 82,114,255,255,151,194,110, 64,121,224, 3, 26,170,
/* 0x0750 */ 129, 0,128, 82,110,255,255,151,148, 11, 64,249,191, 2, 31,235,
/* 0x0760 */ 128, 23, 64,249,130, 0,128, 18,116, 2, 20,139,151, 19, 64,249,
/* 0x0770 */ 128, 2, 0,139,183, 83, 0,249,225, 1,102,158,180, 87, 0,249,
/* 0x0780 */ 11, 0,103,158,152, 2, 23,139, 64, 1, 38, 30,135, 7, 64,249,
/* 0x0790 */ 72, 6,128, 82, 5, 0, 20, 10,148, 2, 5,203,183, 0, 23,139,
/* 0x07a0 */ 128, 2, 23,139,229, 0, 5,203,224, 3, 0,203, 0, 0, 1,138,
/* 0x07b0 */ 23, 0, 23,139, 64, 0,128, 82, 3, 16,159, 26,191, 2, 31,235,
/* 0x07c0 */ 128, 1, 38, 30, 99, 0, 25, 42, 66, 16,159, 90,191, 2, 31,235,
/* 0x07d0 */ 66, 0, 3, 10, 67, 2,128, 82,225, 3, 23,170, 4, 0,159, 90,
/* 0x07e0 */ 191, 2, 31,235, 3, 17,131, 26,224, 3, 20,170, 62,254,255,151,
/* 0x07f0 */ 159, 2, 0,235, 96, 0, 0, 84,224, 15,128, 82,180,254,255,151,
/* 0x0800 */ 213, 0, 0,180,162, 1,102,158,224, 3, 21,170,195, 1,102,158,
/* 0x0810 */ 161,131, 2,145,236,254,255,151,187, 1, 8, 54, 64, 1, 38, 30,
/* 0x0820 */ 225, 3, 24, 75, 34, 0, 0, 10, 0, 0,128,210, 98, 0, 0, 53,
/* 0x0830 */ 24, 3, 2,139, 6, 0, 0, 20, 31,107, 32, 56, 0, 4, 0,145,
/* 0x0840 */ 31, 0, 2,235,161,255,255, 84,250,255,255, 23,213, 6, 0,180,
/* 0x0850 */ 128, 3, 64,249,225, 3, 0,178, 0,128, 64,146, 31, 0, 1,235,
/* 0x0860 */ 129, 5, 0, 84,128, 23, 64,249,130, 19, 64,249,129, 11, 64,249,
/* 0x0870 */ 31, 0, 2,235,129, 1, 0, 84,123, 14, 0,145,123, 3, 0,139,
/* 0x0880 */ 66, 1, 38, 30,123, 3, 1,139,123,247,126,146,224, 3, 27, 75,
/* 0x0890 */ 0, 0, 2, 10, 31, 28, 0,113,105, 0, 0, 84, 0, 0,128, 82,
/* 0x08a0 */ 13, 0, 0, 20,128, 7, 64,249,160, 6, 0,180, 0, 0,128,210,
/* 0x08b0 */ 1, 0,130,210, 98, 0,128, 82, 67, 4,128, 82, 4, 0,128, 18,
/* 0x08c0 */ 229, 3, 0,170, 8,254,255,151,251, 3, 0,170, 32, 2, 0,180,
/* 0x08d0 */ 32, 0,128, 82, 33, 0,128, 82, 1,128,186,114, 97, 3, 0,185,
/* 0x08e0 */ 1,120,128, 82,225,203,186,114, 97, 7, 0,185,160, 0, 0, 52,
/* 0x08f0 */ 224, 3, 27,170, 1, 1,128,210,162, 0,128, 82, 1,254,255,151,
/* 0x0900 */ 64,251,127,146, 1, 0,128, 82,226, 3, 27,170, 0,255,255,151,
/* 0x0910 */ 224, 3, 20,170,225, 3, 23,170,226, 3, 25, 42,249,253,255,151,
/* 0x0920 */ 192,246,255, 53, 96, 1,102,158, 31, 3, 0,235, 98, 1, 0, 84,
/* 0x0930 */ 97, 1,102,158,224, 3, 24,170,226, 3, 25, 42, 67, 6,128, 82,
/* 0x0940 */ 4, 0,128, 18, 5, 0,128,210, 33, 0, 24,203,230,253,255,151,
/* 0x0950 */ 31, 3, 0,235, 33,245,255, 84, 0, 1, 38, 30,156,227, 0,145,
/* 0x0960 */ 0, 4, 0, 17, 8, 0, 39, 30, 82,255,255, 23, 32, 1,102,158,
/* 0x0970 */ 192, 0, 0,180, 19, 0, 0,249, 4, 0, 0, 20, 59, 0, 19,139,
/* 0x0980 */ 123, 35, 0,145,212,255,255, 23,192, 14, 64,249,232, 39, 70,109,
/* 0x0990 */ 245, 91, 66,169,234, 47, 71,109, 96, 2, 0,139,236, 55, 72,109,
/* 0x09a0 */ 243, 83, 65,169,238, 63, 73,109,247, 99, 67,169,249,107, 68,169,
/* 0x09b0 */ 251,115, 69,169,253,123,203,168,192, 3, 95,214,253,123,182,169,
/* 0x09c0 */ 253, 3, 0,145,247, 99, 3,169,247, 3, 3,170, 3, 4, 64,185,
/* 0x09d0 */ 243, 83, 1,169,162, 63, 0,249,243, 3, 2,170, 99, 48, 0,145,
/* 0x09e0 */ 2, 0, 64,185,162, 59, 0,249,226, 3, 4,170,160, 79, 0,249,
/* 0x09f0 */ 116, 2, 1,145,163, 75, 0,249, 3, 0,128,210,160, 71, 0,249,
/* 0x0a00 */ 160, 67, 2,145,161, 67, 0,249,161,195, 1,145,245, 91, 2,169,
/* 0x0a10 */ 249, 35, 0,249,249, 3, 7,170,165, 47, 0,249, 22, 0,128, 82,
/* 0x0a20 */ 166, 55, 0,249,164, 51, 0,249,103,254,255,151,164, 51, 64,249,
/* 0x0a30 */ 161, 3, 2,145,165, 47, 64,249, 2, 0,128, 82,227, 3, 23,170,
/* 0x0a40 */ 166,163, 1,145,231, 3, 25,170,224, 3, 19,170,193,254,255,151,
/* 0x0a50 */ 245, 3, 0,170, 33, 1,128, 82,224, 3, 23,170,226, 3, 21,170,
/* 0x0a60 */ 171,254,255,151, 96,114, 64,121,223, 2, 0,107,226, 4, 0, 84,
/* 0x0a70 */ 128, 2, 64,185, 31, 12, 0,113, 33, 4, 0, 84,129, 10, 64,249,
/* 0x0a80 */ 160, 55, 64,249, 32, 0, 0,139, 1, 0,128, 82,226, 3, 1, 42,
/* 0x0a90 */ 42,254,255,151,248, 3, 0, 42, 96, 0,248, 54,224, 15,128, 82,
/* 0x0aa0 */ 11,254,255,151,225, 3, 19,170, 2,128,128,210, 10,254,255,151,
/* 0x0ab0 */ 31, 0, 16,241, 65,255,255, 84, 1, 0,128,210,226, 3, 24, 42,
/* 0x0ac0 */ 227, 3, 1,170,228, 3, 1,170,229, 3, 1,170,166,163, 1,145,
/* 0x0ad0 */ 231, 3, 25,170,224, 3, 19,170,191, 55, 0,249,157,254,255,151,
/* 0x0ae0 */ 245, 3, 0,170,162, 55, 64,249,224, 3, 23,170,225, 0,128, 82,
/* 0x0af0 */ 135,254,255,151,224, 3, 24, 42,253,253,255,151,148,226, 0,145,
/* 0x0b00 */ 214, 6, 0, 17,216,255,255, 23,224, 3, 21,170,249, 35, 64,249,
/* 0x0b10 */ 243, 83, 65,169,245, 91, 66,169,247, 99, 67,169,253,123,202,168,
/* 0x0b20 */ 192, 3, 95,214
/* 0x0150 */ 225, 99, 0,145, 31, 0, 0,145,226, 12, 64,169,226, 15, 0,169,
/* 0x0160 */ 226, 8, 64,249,226, 11, 0,249,224, 99, 0,145, 34,132, 64,248,
/* 0x0170 */ 2,132, 0,248,194,255,255,181, 34,132, 64,248, 2,132, 0,248,
/* 0x0180 */ 194,255,255,181, 4, 32, 0,209, 31,132, 0,248,231, 3, 0,170,
/* 0x0190 */ 246, 3, 0,170, 34, 12,193,168, 2, 12,129,168,194,255,255,181,
/* 0x01a0 */ 247, 3, 0,170,225, 3, 0,170,129, 0, 0,249,226, 6, 0, 24,
/* 0x01b0 */ 34, 68, 0,184,226,255,129, 82,160, 6, 0, 16, 98, 0, 0,148,
/* 0x01c0 */ 31, 4, 64,177, 66, 0, 0, 84, 95,104, 32, 56,231, 3, 20,170,
/* 0x01d0 */ 230, 3, 25,170,255, 3, 48,209, 37, 6, 0, 16,228, 3, 24,170,
/* 0x01e0 */ 227, 3, 22,170,226, 3, 0,145,225, 3, 29, 42,224, 3, 28,170,
/* 0x01f0 */ 2, 2, 0,148,255, 3, 48,145,248, 3, 0,170, 33, 83, 64,249,
/* 0x0200 */ 224, 3, 25,170, 34, 67, 64, 57, 95, 8, 0,113, 65, 0, 0, 84,
/* 0x0210 */ 66, 0, 0,148,224, 3, 25,170, 67, 0, 0,148, 5, 0,128,210,
/* 0x0220 */ 228, 3, 21, 42,159, 0, 0,113, 11, 1, 0, 84, 67, 0,128, 82,
/* 0x0230 */ 34, 0,128, 82, 1, 0,130,210, 0, 0,128,210,170,255,255,151,
/* 0x0240 */ 224, 3, 21, 42, 47, 0, 0,148,254, 3, 24,170,224, 3, 26,170,
/* 0x0250 */ 225, 3, 27, 42,226,130, 95,248,255,127,191,169,240, 3, 31,170,
/* 0x0260 */ 227, 19, 64,169,230, 31, 64,169,232, 39, 64,169,244, 87, 64,169,
/* 0x0270 */ 246, 95, 64,169,248,103, 64,169,250,111, 64,169,252,119,193,168,
/* 0x0280 */ 224, 7,193,168,192, 3, 95,214, 32, 32, 32, 61, 47,112,114,111,
/* 0x0290 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0, 99, 28, 0, 18,
/* 0x02a0 */ 127, 72, 1,113,129, 1, 0, 84, 33,252, 66,211, 65, 1, 0,180,
/* 0x02b0 */ 33, 4, 0,209, 2,120, 97,184, 67,120, 26, 83,127, 20, 0,113,
/* 0x02c0 */ 129, 0, 0, 84, 67, 0, 1, 75, 98,100, 0, 51, 2,120, 33,184,
/* 0x02d0 */ 1,255,255,181,192, 3, 95,214, 0, 0, 32,212,192, 3, 95,214,
/* 0x02e0 */ 168, 11,128, 82, 1, 0, 0,212,232, 7,128, 82, 1, 0, 0,212,
/* 0x02f0 */ 192, 3, 95,214, 8, 8,128, 82, 1, 0, 0,212,192, 3, 95,214,
/* 0x0300 */ 40, 7,128, 82, 1, 0, 0,212,192, 3, 95,214,168, 21,128, 82,
/* 0x0310 */ 1, 0, 0,212,192, 3, 95,214,200, 26,128, 82, 1, 0, 0,212,
/* 0x0320 */ 192, 3, 95,214,232, 26,128, 82, 1, 0, 0,212,192, 3, 95,214,
/* 0x0330 */ 2, 0,128,210,225, 3, 0,170, 96, 12,128, 18,104, 4,128, 82,
/* 0x0340 */ 4, 0, 0, 20,200, 9,128, 82, 2, 0, 0, 20, 8, 7,128, 82,
/* 0x0350 */ 227, 3, 2,170,226, 3, 1,170,225, 3, 0,170, 96, 12,128,146,
/* 0x0360 */ 1, 0, 0,212,192, 3, 95,214, 0, 0, 64,212, 2, 0,128, 82,
/* 0x0370 */ 8, 0,128, 82, 1, 0, 0,212,192, 3, 95,214,253,123,191,169,
/* 0x0380 */ 3, 0,128,210,253, 3, 0,145, 5, 0, 64,249, 4, 4, 64,249,
/* 0x0390 */ 191, 0, 2,235, 98, 0, 0, 84,224, 15,128, 82,209,255,255,151,
/* 0x03a0 */ 127, 0, 2,235,160, 0, 0, 84,133,104, 99, 56, 37,104, 35, 56,
/* 0x03b0 */ 99, 4, 0,145,251,255,255, 23, 1, 4, 64,249, 33, 0, 3,139,
/* 0x03c0 */ 1, 4, 0,249, 1, 0, 64,249, 35, 0, 3,203, 3, 0, 0,249,
/* 0x03d0 */ 253,123,193,168,192, 3, 95,214,253,123,187,169,253, 3, 0,145,
/* 0x03e0 */ 243, 83, 1,169,245, 91, 2,169,244, 3, 0,170,243, 3, 1,170,
/* 0x03f0 */ 246, 3, 2,170,245, 3, 3,170, 96, 2, 64,249,160, 8, 0,180,
/* 0x0400 */ 224, 3, 20,170,130, 1,128,210,161, 3, 1,145,220,255,255,151,
/* 0x0410 */ 160, 67, 64,185,162, 71, 64,185, 0, 1, 0, 53,160, 10,138, 82,
/* 0x0420 */ 0, 43,164,114, 95, 0, 0,107,225, 0, 0, 84,128, 2, 64,249,
/* 0x0430 */ 0, 7, 0,180, 4, 0, 0, 20, 98, 0, 0, 52, 95, 0, 0,107,
/* 0x0440 */ 105, 0, 0, 84,224, 15,128, 82,166,255,255,151, 99, 2, 64,249,
/* 0x0450 */ 225, 3, 0, 42, 63, 0, 3,235,104,255,255, 84, 95, 0, 0,107,
/* 0x0460 */ 2, 4, 0, 84,161, 31, 0,249,225, 3, 2, 42,128, 6, 64,249,
/* 0x0470 */ 163,227, 0,145, 98, 6, 64,249,164, 35, 65, 57,192, 2, 63,214,
/* 0x0480 */ 32,254,255, 53,161, 31, 64,249,160, 67, 64,185, 63, 0, 0,235,
/* 0x0490 */ 161,253,255, 84,163, 39, 65, 57, 85, 1, 0,180, 35, 1, 0, 52,
/* 0x04a0 */ 63, 0, 8,241,136, 0, 0, 84, 96, 2, 64,249, 31, 0, 1,235,
/* 0x04b0 */ 129, 0, 0, 84, 96, 6, 64,249,162, 43, 65, 57,160, 2, 63,214,
/* 0x04c0 */ 163, 71, 64,185,129, 6, 64,249,128, 2, 64,249, 33, 0, 3,139,
/* 0x04d0 */ 129, 6, 0,249, 0, 0, 3,203,128, 2, 0,249, 5, 0, 0, 20,
/* 0x04e0 */ 97, 6, 64,249,224, 3, 20,170,226, 3, 2, 42,164,255,255,151,
/* 0x04f0 */ 163, 67, 64,185, 97, 6, 64,249, 96, 2, 64,249, 33, 0, 3,139,
/* 0x0500 */ 97, 6, 0,249, 0, 0, 3,203, 96, 2, 0,249,187,255,255, 23,
/* 0x0510 */ 243, 83, 65,169,245, 91, 66,169,253,123,197,168,192, 3, 95,214,
/* 0x0520 */ 253,123,191,169,253, 3, 0,145, 0, 3, 0,180, 3, 0, 64,146,
/* 0x0530 */ 192, 2, 0, 55,228, 3, 3, 42,225, 3, 1, 42, 5, 0, 64,249,
/* 0x0540 */ 191, 0, 1,235,129, 0, 0, 84, 2, 4, 0,249,132, 4, 0, 17,
/* 0x0550 */ 3, 0, 0, 20,191, 4, 0,241, 32, 1, 0, 84, 37, 1, 0,181,
/* 0x0560 */ 68, 1, 0, 53,131, 0, 0,180, 97, 0, 0,249, 98, 4, 0,249,
/* 0x0570 */ 6, 0, 0, 20,224, 15,128, 82, 90,255,255,151,227, 3, 0,170,
/* 0x0580 */ 0, 64, 0,145,238,255,255, 23,253,123,193,168,192, 3, 95,214,
/* 0x0590 */ 253,123,181,169,253, 3, 0,145,232, 39, 6,109,201, 0,103,158,
/* 0x05a0 */ 6, 16, 64,249,236, 55, 8,109,245, 91, 2,169,238, 63, 9,109,
/* 0x05b0 */ 246, 3, 0,170,234, 47, 7,109,251,115, 5,169, 28, 0, 6,139,
/* 0x05c0 */ 245, 3, 1,170, 32, 1,102,158,249,107, 4,169,243, 83, 1,169,
/* 0x05d0 */ 247, 99, 3,169, 76, 0, 39, 30,250, 3, 3,170,141, 0,103,158,
/* 0x05e0 */ 249, 3, 7,170,174, 0,103,158, 2, 0, 64,249,195, 34, 64,121,
/* 0x05f0 */ 65, 2, 0,180, 65, 16, 64,249,127, 8, 0,113, 65, 0, 1,139,
/* 0x0600 */ 32, 36, 64,249, 64, 0, 0,203, 65, 0, 0, 84, 32, 8, 64,249,
/* 0x0610 */ 33, 20, 64,249, 2, 0,128, 82, 67, 6,128, 82, 4, 0,128, 18,
/* 0x0620 */ 5, 0,128,210,176,254,255,151,193, 34, 64,121, 63, 8, 0,113,
/* 0x0630 */ 19, 16,159,154, 42, 0, 0, 20,127, 12, 0,113, 3, 2,128, 82,
/* 0x0640 */ 99, 16,159, 26,199,114, 64,121,224, 3, 2,170, 99,136, 0, 17,
/* 0x0650 */ 228, 3, 28,170, 19, 0,128,146,231, 4, 0, 81,255, 4, 0, 49,
/* 0x0660 */ 160, 1, 0, 84,133, 0, 64,185,191, 4, 0,113, 1, 1, 0, 84,
/* 0x0670 */ 136, 8, 64,249,133, 20, 64,249,127, 2, 8,235, 5, 1, 5,139,
/* 0x0680 */ 115,146,136,154, 63, 0, 5,235, 33, 32,133,154,132,224, 0,145,
/* 0x0690 */ 242,255,255, 23,228, 3, 57,170,115, 2, 25,138,129, 0, 1,139,
/* 0x06a0 */ 33, 0, 19,203, 33, 0, 25,138,163, 0, 32, 55, 83, 0, 0,181,
/* 0x06b0 */ 162, 0, 0,181, 0, 0,128,210, 4, 0, 0, 20,224, 3, 19,170,
/* 0x06c0 */ 2, 0, 0, 20, 67, 6,128, 82, 2, 0,128, 82, 4, 0,128, 18,
/* 0x06d0 */ 5, 0,128,210,132,254,255,151, 19, 0, 19,203,224, 3, 57, 42,
/* 0x06e0 */ 232, 3, 39, 30, 10, 0, 39, 30,224, 3, 57,170, 15, 0,103,158,
/* 0x06f0 */ 1, 1, 38, 30,192,114, 64,121, 63, 0, 0,107, 42, 21, 0, 84,
/* 0x0700 */ 128, 3, 64,185, 53, 1, 0,180, 31, 24, 0,113,225, 0, 0, 84,
/* 0x0710 */ 130, 11, 64,249,224, 3, 26,170, 97, 0,128, 82, 98, 2, 2,139,
/* 0x0720 */ 128,255,255,151,154, 0, 0, 20, 31, 4, 0,113, 1, 19, 0, 84,
/* 0x0730 */ 128, 23, 64,249,192, 18, 0,180,155, 7, 64,185, 0, 72,140, 82,
/* 0x0740 */ 32,106,174,114,123, 11, 30, 83, 27, 36,219, 26,121, 11, 0, 18,
/* 0x0750 */ 85, 2, 0,180,128, 7, 64,249, 0, 2, 0,181,194, 18, 64,249,
/* 0x0760 */ 224, 3, 26,170,131, 11, 64,249, 97, 0,128, 82, 98, 2, 2,139,
/* 0x0770 */ 66, 0, 3,139,107,255,255,151,194,114, 64,121,224, 3, 26,170,
/* 0x0780 */ 161, 0,128, 82,103,255,255,151,194,110, 64,121,224, 3, 26,170,
/* 0x0790 */ 129, 0,128, 82, 99,255,255,151,148, 11, 64,249,191, 2, 31,235,
/* 0x07a0 */ 128, 23, 64,249,130, 0,128, 18,116, 2, 20,139,151, 19, 64,249,
/* 0x07b0 */ 128, 2, 0,139,183, 83, 0,249,225, 1,102,158,180, 87, 0,249,
/* 0x07c0 */ 11, 0,103,158,152, 2, 23,139, 64, 1, 38, 30,135, 7, 64,249,
/* 0x07d0 */ 67, 6,128, 82, 5, 0, 20, 10,148, 2, 5,203,183, 0, 23,139,
/* 0x07e0 */ 128, 2, 23,139,229, 0, 5,203,224, 3, 0,203, 0, 0, 1,138,
/* 0x07f0 */ 23, 0, 23,139, 64, 0,128, 82, 4, 16,159, 26,191, 2, 31,235,
/* 0x0800 */ 132, 0, 25, 42, 66, 16,159, 90, 66, 0, 4, 10,191, 2, 31,235,
/* 0x0810 */ 132, 1, 38, 30, 64, 2,128, 82, 3, 0,131, 26,191, 2, 31,235,
/* 0x0820 */ 224, 3, 20,170,225, 3, 23,170,132, 0,159, 90, 46,254,255,151,
/* 0x0830 */ 159, 2, 0,235, 96, 0, 0, 84,224, 15,128, 82,169,254,255,151,
/* 0x0840 */ 213, 0, 0,180,162, 1,102,158,224, 3, 21,170,195, 1,102,158,
/* 0x0850 */ 161,131, 2,145,225,254,255,151,187, 1, 8, 54, 64, 1, 38, 30,
/* 0x0860 */ 225, 3, 24, 75, 34, 0, 0, 10, 0, 0,128,210, 98, 0, 0, 53,
/* 0x0870 */ 24, 3, 2,139, 6, 0, 0, 20, 31,107, 32, 56, 0, 4, 0,145,
/* 0x0880 */ 31, 0, 2,235,161,255,255, 84,250,255,255, 23,117, 6, 0,180,
/* 0x0890 */ 128, 3, 64,249,225, 3, 0,178, 0,128, 64,146, 31, 0, 1,235,
/* 0x08a0 */ 33, 5, 0, 84,155, 23, 64,249,129, 19, 64,249,128, 11, 64,249,
/* 0x08b0 */ 127, 3, 1,235, 65, 3, 0, 84, 97, 14, 0,145, 59, 0, 27,139,
/* 0x08c0 */ 65, 1, 38, 30,123, 3, 0,139,123,247,126,146,224, 3, 27, 75,
/* 0x08d0 */ 0, 0, 1, 10, 31, 44, 0,113, 41, 2, 0, 84, 0, 0,128, 82,
/* 0x08e0 */ 33, 0,128, 82, 1,128,186,114, 97, 3, 0,185, 1,252,128, 82,
/* 0x08f0 */ 33, 24,181,114, 97, 7, 0,185, 1,120,128, 82,225,203,186,114,
/* 0x0900 */ 97, 11, 0,185, 96, 5, 0, 52,224, 3, 27,170,129, 1,128,210,
/* 0x0910 */ 162, 0,128, 82,251,253,255,151, 38, 0, 0, 20, 0, 0,128,210,
/* 0x0920 */ 1, 0,130,210, 98, 0,128, 82, 67, 4,128, 82, 4, 0,128, 18,
/* 0x0930 */ 229, 3, 0,170,236,253,255,151,251, 3, 0,170, 32, 0,128, 82,
/* 0x0940 */ 27,253,255,181,224, 3, 20,170,225, 3, 23,170,226, 3, 25, 42,
/* 0x0950 */ 236,253,255,151, 32,247,255, 53, 96, 1,102,158, 31, 3, 0,235,
/* 0x0960 */ 98, 1, 0, 84, 97, 1,102,158,224, 3, 24,170,226, 3, 25, 42,
/* 0x0970 */ 67, 6,128, 82, 4, 0,128, 18, 5, 0,128,210, 33, 0, 24,203,
/* 0x0980 */ 217,253,255,151, 31, 3, 0,235,129,245,255, 84, 0, 1, 38, 30,
/* 0x0990 */ 156,227, 0,145, 0, 4, 0, 17, 8, 0, 39, 30, 85,255,255, 23,
/* 0x09a0 */ 32, 1,102,158, 0, 1, 0,180, 19, 0, 0,249, 6, 0, 0, 20,
/* 0x09b0 */ 64,251,127,146, 1, 0,128, 82,226, 3, 27,170,217,254,255,151,
/* 0x09c0 */ 225,255,255, 23,192, 14, 64,249,232, 39, 70,109,245, 91, 66,169,
/* 0x09d0 */ 234, 47, 71,109, 96, 2, 0,139,236, 55, 72,109,243, 83, 65,169,
/* 0x09e0 */ 238, 63, 73,109,247, 99, 67,169,249,107, 68,169,251,115, 69,169,
/* 0x09f0 */ 253,123,203,168,192, 3, 95,214,253,123,182,169,253, 3, 0,145,
/* 0x0a00 */ 247, 99, 3,169,247, 3, 3,170, 3, 4, 64,185,243, 83, 1,169,
/* 0x0a10 */ 162, 63, 0,249,243, 3, 2,170, 99, 48, 0,145, 2, 0, 64,185,
/* 0x0a20 */ 162, 59, 0,249,226, 3, 4,170,160, 79, 0,249,116, 2, 1,145,
/* 0x0a30 */ 163, 75, 0,249, 3, 0,128,210,160, 71, 0,249,160, 67, 2,145,
/* 0x0a40 */ 161, 67, 0,249,161,195, 1,145,245, 91, 2,169,249, 35, 0,249,
/* 0x0a50 */ 249, 3, 7,170,165, 47, 0,249, 22, 0,128, 82,166, 55, 0,249,
/* 0x0a60 */ 164, 51, 0,249, 93,254,255,151,164, 51, 64,249,161, 3, 2,145,
/* 0x0a70 */ 165, 47, 64,249, 2, 0,128, 82,227, 3, 23,170,166,163, 1,145,
/* 0x0a80 */ 231, 3, 25,170,224, 3, 19,170,194,254,255,151,245, 3, 0,170,
/* 0x0a90 */ 33, 1,128, 82,224, 3, 23,170,226, 3, 21,170,161,254,255,151,
/* 0x0aa0 */ 96,114, 64,121,223, 2, 0,107,226, 4, 0, 84,128, 2, 64,185,
/* 0x0ab0 */ 31, 12, 0,113, 33, 4, 0, 84,129, 10, 64,249,160, 55, 64,249,
/* 0x0ac0 */ 32, 0, 0,139, 1, 0,128, 82,226, 3, 1, 42, 32,254,255,151,
/* 0x0ad0 */ 248, 3, 0, 42, 96, 0,248, 54,224, 15,128, 82, 1,254,255,151,
/* 0x0ae0 */ 225, 3, 19,170, 2,128,128,210, 0,254,255,151, 31, 0, 16,241,
/* 0x0af0 */ 65,255,255, 84, 1, 0,128,210,226, 3, 24, 42,227, 3, 1,170,
/* 0x0b00 */ 228, 3, 1,170,229, 3, 1,170,166,163, 1,145,231, 3, 25,170,
/* 0x0b10 */ 224, 3, 19,170,191, 55, 0,249,158,254,255,151,245, 3, 0,170,
/* 0x0b20 */ 162, 55, 64,249,224, 3, 23,170,225, 0,128, 82,125,254,255,151,
/* 0x0b30 */ 224, 3, 24, 42,243,253,255,151,148,226, 0,145,214, 6, 0, 17,
/* 0x0b40 */ 216,255,255, 23,224, 3, 21,170,249, 35, 64,249,243, 83, 65,169,
/* 0x0b50 */ 245, 91, 66,169,247, 99, 67,169,253,123,202,168,192, 3, 95,214
};
+867 -867
View File
File diff suppressed because it is too large Load Diff
+183 -178
View File
@@ -1,5 +1,5 @@
/* armeb.v4a-linux.elf-fold.h
created from armeb.v4a-linux.elf-fold.bin, 2864 (0xb30) bytes
created from armeb.v4a-linux.elf-fold.bin, 2940 (0xb7c) bytes
This file is part of the UPX executable compressor.
@@ -32,188 +32,193 @@
/* clang-format off */
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_SIZE 2864
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_ADLER32 0x19a89d2b
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_CRC32 0x16e9050c
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_SIZE 2940
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_ADLER32 0x7228b95c
#define STUB_ARMEB_V4A_LINUX_ELF_FOLD_CRC32 0xcb53dba5
unsigned char stub_armeb_v4a_linux_elf_fold[2864] = {
unsigned char stub_armeb_v4a_linux_elf_fold[2940] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 97, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 2, 0, 40, 0, 0, 0, 1, 0, 0,128,128, 0, 0, 0, 52,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 2, 0, 52, 0, 32, 0, 2, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0,128, 0,
/* 0x0040 */ 0, 0,128, 0, 0, 0, 11, 48, 0, 0, 11, 48, 0, 0, 0, 5,
/* 0x0050 */ 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 11, 48, 0, 0, 0, 0,
/* 0x0040 */ 0, 0,128, 0, 0, 0, 11,124, 0, 0, 11,124, 0, 0, 0, 5,
/* 0x0050 */ 0, 0,128, 0, 0, 0, 0, 1, 0, 0, 11,124, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0,128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 0, 0, 0, 34,232,189, 31,192,225,160, 16, 13,226, 77,218, 1,
/* 0x0090 */ 225,160, 0, 13,233, 45, 31,240,228,145, 48, 4,227, 83, 0, 0,
/* 0x00a0 */ 228,128, 48, 4, 26,255,255,251,225,160, 64, 0,228,128, 48, 4,
/* 0x00b0 */ 228,145, 48, 4,227, 83, 0, 0,228,128, 48, 4, 26,255,255,251,
/* 0x00c0 */ 225,160, 80, 1,232,177, 0, 12,227, 82, 0, 0,232,160, 0, 12,
/* 0x00d0 */ 26,255,255,251,225,160, 96, 1,225,160,144, 0,227,160, 42, 1,
/* 0x00e0 */ 225,160, 16, 0,225,160, 0, 14,226, 66, 32, 1,235, 0, 0,122,
/* 0x00f0 */ 227,112, 10, 1, 33,160, 16, 14, 35,160, 0, 14,224,129, 32, 0,
/* 0x0100 */ 225,160, 0, 6,227,160, 48, 0,229, 96, 48, 1,229,114, 48, 1,
/* 0x0110 */ 229, 96, 48, 1,225, 81, 0, 2, 26,255,255,251,227,160, 48, 61,
/* 0x0120 */ 229, 96, 48, 1,227,160, 48, 32,229, 96, 48, 1,229, 96, 48, 1,
/* 0x0130 */ 229, 96, 48, 1,229,132, 0, 0,225,160, 1, 32,225,160, 1, 0,
/* 0x0140 */ 224, 38, 48, 0,226, 3, 48, 4,226, 35, 48, 4,224, 64, 0, 3,
/* 0x0150 */ 224, 64, 48, 6,224,131, 48, 5,225,160, 16, 9,229,157, 80, 24,
/* 0x0160 */ 229,141, 0, 24,229, 49, 32, 4,225, 81, 0, 13,229, 32, 32, 4,
/* 0x0170 */ 26,255,255,251,225,160,208, 0,232,189, 12, 16,226, 77,220, 10,
/* 0x0180 */ 229,154,144, 4,225,160,128, 13,229,154,112, 0,226,143, 96,184,
/* 0x0190 */ 226,137,144, 12,233, 45, 15,248,232,189, 0, 15,235, 0, 2, 22,
/* 0x01a0 */ 226,141,208, 20,226,141,220, 10,229,141, 0, 16,229,155, 16,104,
/* 0x01b0 */ 225,160, 0, 11,235, 0, 0, 70,225,160, 0, 11,235, 0, 0, 72,
/* 0x01c0 */ 228,157, 64, 4,227, 84, 0, 0,186, 0, 0, 8,227,160, 80, 0,
/* 0x01d0 */ 233, 45, 0, 48,227,160, 48, 2,227,160, 32, 1,227,160, 26, 1,
/* 0x01e0 */ 227,160, 0, 0,235, 0, 0, 70,232,189, 0, 3,235, 0, 0, 50,
/* 0x01f0 */ 232,189, 64, 7,227,160, 48, 0,227,160, 64, 0,227,160, 80, 0,
/* 0x0200 */ 227,160, 96, 0,227,160,128, 0,227,160,144, 0,227,160,160, 0,
/* 0x0210 */ 227,160,176, 0,226, 77,199, 1,228, 29,112, 32,229,141,112, 0,
/* 0x0220 */ 229,157,112, 0,225, 92, 0, 13, 58,255,255,250,226,141,215, 1,
/* 0x0230 */ 227,160,112, 0,227,160,192, 0,225,160,240, 14, 47,112,114,111,
/* 0x0240 */ 99, 47,115,101,108,102, 47,101,120,101, 0, 0,226, 3, 48,255,
/* 0x0250 */ 227, 83, 0, 81, 17,160,240, 14,225,176, 17, 33, 19, 80, 0, 0,
/* 0x0260 */ 1,160,240, 14,226, 65, 16, 1,231,144, 33, 1,226, 2, 52, 15,
/* 0x0270 */ 227, 83, 4, 11, 26, 0, 0, 4,226, 2, 52,255,224, 66, 32, 1,
/* 0x0280 */ 227,194, 36,255,225,130, 32, 3,231,128, 33, 1,227, 81, 0, 0,
/* 0x0290 */ 26,255,255,243,225,160,240, 14,231,240, 1,240,225,160,240, 14,
/* 0x02a0 */ 239,144, 0, 1,239,144, 0, 3,225,160,240, 14,239,144, 0, 4,
/* 0x02b0 */ 225,160,240, 14,239,144, 0, 5,225,160,240, 14,239,144, 0, 6,
/* 0x02c0 */ 225,160,240, 14,239,144, 0, 10,225,160,240, 14,239,144, 0, 20,
/* 0x02d0 */ 225,160,240, 14,239,144, 0, 45,225,160,240, 14,239,144, 0, 85,
/* 0x02e0 */ 225,160,240, 14,239,144, 0, 91,225,160,240, 14,229,159,192, 56,
/* 0x02f0 */ 224, 12,192, 0,224, 64, 0, 12,224,129, 16, 12,239,144, 0,125,
/* 0x0300 */ 225,160,240, 14,233, 45, 64, 48,229,157, 80, 16,229,157, 64, 12,
/* 0x0310 */ 225,160, 86, 37,229,159,192, 16,224, 12,192, 0,224, 64, 0, 12,
/* 0x0320 */ 224,129, 16, 12,239,144, 0,192,232,189,128, 48, 0, 0, 15,255,
/* 0x0330 */ 239,144, 0,192,232,189,128, 48,227,160, 32, 0,239,159, 0, 2,
/* 0x0340 */ 225,160,240, 14,229, 31, 0,104,225,160,240, 14,233, 45, 64, 48,
/* 0x0350 */ 229, 31, 66,216,227,160, 80, 0,225,131, 48, 4,227,224, 64, 0,
/* 0x0360 */ 234,255,255,235,225,160,192, 0,224, 65, 16, 1,225,160, 32, 0,
/* 0x0370 */ 224,144, 1,128,224,161, 17,129,224,129, 30,162,225,160, 32, 0,
/* 0x0380 */ 224,144, 2, 0,224,161, 18, 1,224,129, 30, 34,225,160, 32, 0,
/* 0x0390 */ 224,144, 4, 0,224,161, 20, 1,224,129, 28, 34,225,160, 32, 0,
/* 0x03a0 */ 224,144, 8, 0,224,161, 24, 1,224,129, 24, 34,224, 80, 15,140,
/* 0x03b0 */ 224,193, 16,172,224,144, 0, 12,226,161, 0, 0,225,160,240, 14,
/* 0x03c0 */ 227, 80, 0, 0, 1, 47,255, 30,229,144, 48, 0,225, 83, 0, 1,
/* 0x03d0 */ 18,128, 0, 8, 26,255,255,251,229,128, 32, 4,225, 47,255, 30,
/* 0x03e0 */ 229,159, 0, 0,225, 47,255, 30,255,255,240, 0,229,144, 48, 0,
/* 0x03f0 */ 225, 83, 0, 2,229,144, 48, 4,229, 45,224, 4, 33,160,192, 3,
/* 0x0400 */ 225,160,224, 2, 33,160, 32, 2, 42, 0, 0, 3,227,160, 0,127,
/* 0x0410 */ 235,255,255,162,229, 92, 48, 1,229, 65, 48, 1,226, 66, 32, 1,
/* 0x0420 */ 227,114, 0, 1,226,140,192, 1,226,129, 16, 1, 26,255,255,248,
/* 0x0430 */ 229,144, 32, 4,229,144, 48, 0,224,130, 32, 14,224,110, 48, 3,
/* 0x0440 */ 229,128, 48, 0,229,128, 32, 4,228,157,240, 4,233, 45, 64,240,
/* 0x0450 */ 225,160, 80, 0,226, 77,208, 20,225,160, 64, 1,225,160,112, 2,
/* 0x0460 */ 225,160, 96, 3,234, 0, 0, 68,226,141, 16, 4,225,160, 0, 5,
/* 0x0470 */ 227,160, 32, 12,235,255,255,220,229,157,224, 4,227, 94, 0, 0,
/* 0x0480 */ 229,157, 16, 8, 26, 0, 0, 6,229,159, 49, 0,225, 81, 0, 3,
/* 0x0490 */ 26, 0, 0, 5,229,149, 48, 0,227, 83, 0, 0, 26, 0, 0, 2,
/* 0x04a0 */ 234, 0, 0, 56,227, 81, 0, 0, 26, 0, 0, 1,227,160, 0,127,
/* 0x04b0 */ 235,255,255,122,225, 81, 0, 14,138,255,255,251,229,148, 48, 0,
/* 0x04c0 */ 225, 94, 0, 3,138,255,255,248,225, 81, 0, 14, 42, 0, 0, 33,
/* 0x04d0 */ 229,221,192, 12,229,149, 0, 4,229,148, 32, 4,226,141, 48, 16,
/* 0x04e0 */ 229,141,224, 16,229,141,192, 0,225,160,224, 15,225, 47,255, 23,
/* 0x04f0 */ 227, 80, 0, 0, 26,255,255,236,229,157, 16, 16,229,157, 48, 4,
/* 0x0500 */ 225, 81, 0, 3, 26,255,255,232,229,221, 32, 13,227, 82, 0, 0,
/* 0x0510 */ 19, 86, 0, 0, 10, 0, 0, 9,227, 81, 12, 2,138, 0, 0, 2,
/* 0x0520 */ 229,148, 48, 0,225, 83, 0, 1, 26, 0, 0, 4,225,160, 48, 2,
/* 0x0530 */ 229,148, 0, 4,229,221, 32, 14,225,160,224, 15,225, 47,255, 22,
/* 0x0540 */ 229,157, 48, 8,232,149, 0, 6,224,130, 32, 3,224, 99, 16, 1,
/* 0x0550 */ 232,133, 0, 6,234, 0, 0, 3,225,160, 32, 1,225,160, 0, 5,
/* 0x0560 */ 229,148, 16, 4,235,255,255,160,229,157, 48, 4,232,148, 0, 6,
/* 0x0570 */ 224,130, 32, 3,224, 99, 16, 1,232,132, 0, 6,229,148, 48, 0,
/* 0x0580 */ 227, 83, 0, 0, 26,255,255,183,226,141,208, 20,232,189,128,240,
/* 0x0590 */ 33, 88, 80, 85,233, 45, 79,240,225,160,128, 1,229,145, 16, 28,
/* 0x05a0 */ 226, 77,208, 48,227, 82, 0, 0,229,141, 32, 12,229,141, 0, 16,
/* 0x05b0 */ 229,141, 48, 8,224,136, 80, 1, 10, 0, 0, 12,229,157, 32, 84,
/* 0x05c0 */ 229,146, 0, 0,225,208, 49,176,226,128, 16, 52,227, 83, 0, 2,
/* 0x05d0 */ 21,145, 48, 40, 16, 99,176, 0, 5,145, 0, 8, 17,160, 0, 11,
/* 0x05e0 */ 229,145, 16, 20, 3,160,176, 0,235,255,255, 61,234, 0, 0, 37,
/* 0x05f0 */ 225,216, 49,176,225,216, 34,188,227, 83, 0, 3,229,157, 16, 12,
/* 0x0600 */ 19,160,224, 16, 3,160,224, 0,226, 66,192, 1,225,160, 0, 5,
/* 0x0610 */ 227,224, 64, 0,234, 0, 0, 13,229,144, 48, 0,227, 83, 0, 1,
/* 0x0620 */ 26, 0, 0, 8,229,144, 48, 20,227, 83, 0, 0, 10, 0, 0, 5,
/* 0x0630 */ 229,144, 32, 8,224,131, 48, 2,225, 81, 0, 3, 49,160, 16, 3,
/* 0x0640 */ 225, 84, 0, 2, 33,160, 64, 2,226,128, 0, 32,226, 76,192, 1,
/* 0x0650 */ 227, 92, 0, 0,170,255,255,239,227,196, 78,255,227,196, 64, 15,
/* 0x0660 */ 224,100, 16, 1,226,129, 30,255,226,129, 16, 15,227,193, 30,255,
/* 0x0670 */ 227,193, 16, 15,225,160, 48, 14,225,160, 0, 4,227,160, 32, 0,
/* 0x0680 */ 235,255,255, 49,224,100,176, 0,227,160, 48, 52,224, 3, 3,155,
/* 0x0690 */ 226,133, 80, 32,229,141, 48, 32,227,160, 48, 0,229,141, 48, 24,
/* 0x06a0 */ 234, 0, 0,175,229,157,192, 12,227, 92, 0, 0, 10, 0, 0, 8,
/* 0x06b0 */ 229, 21, 48, 32,227, 83, 0, 6, 26, 0, 0, 5,229, 21, 32, 24,
/* 0x06c0 */ 229,157, 0, 8,224,139, 32, 2,227,160, 16, 3,235,255,255, 59,
/* 0x06d0 */ 234, 0, 0,159,229, 21, 48, 32,227, 83, 0, 1, 26, 0, 0,156,
/* 0x06e0 */ 229, 21, 48, 12,227, 83, 0, 0, 10, 0, 0,153,229,157, 0, 12,
/* 0x06f0 */ 227, 80, 0, 0, 10, 0, 0, 17,229, 21, 48, 28,227, 83, 0, 0,
/* 0x0700 */ 26, 0, 0, 14,229,152, 48, 28,229, 21, 32, 24,224,130, 32, 3,
/* 0x0710 */ 224,139, 32, 2,227,160, 16, 3,229,157, 0, 8,235,255,255, 39,
/* 0x0720 */ 229,157, 0, 8,227,160, 16, 5,225,216, 34,188,235,255,255, 35,
/* 0x0730 */ 229,157, 0, 8,227,160, 16, 4,225,216, 34,186,235,255,255, 31,
/* 0x0740 */ 229, 21, 16, 8,229,159, 34,168,226, 1, 48, 7,225,160, 49, 3,
/* 0x0750 */ 225,160, 67, 50,229, 21, 48, 24,224,139, 48, 3,229,141, 48, 20,
/* 0x0760 */ 229,157,192, 20,229, 21, 48, 16,225,160, 42, 12,225,160, 42, 34,
/* 0x0770 */ 229,157, 0, 12,229,141, 48, 40,224,131,160, 2,229, 21, 48, 12,
/* 0x0780 */ 227, 80, 0, 0,229,141,192, 44,226, 4,144, 7,229,141, 48, 36,
/* 0x0790 */ 224, 98, 96, 12, 10, 0, 0, 16,227, 17, 0, 1, 3,160, 32, 3,
/* 0x07a0 */ 19,160, 32, 7,225,160, 0, 6,225,160, 16, 10,227,160, 48, 16,
/* 0x07b0 */ 235,255,254,229,225, 86, 0, 0, 26, 0, 0, 84,229,157,192, 88,
/* 0x07c0 */ 226, 20, 48, 4, 17,160, 48, 12,229,157, 0, 12,226,141, 16, 40,
/* 0x07d0 */ 229,157, 32, 16,235,255,255, 28,234, 0, 0, 11,229, 21,192, 28,
/* 0x07e0 */ 224, 98,192, 12,229,141,192, 4,229,157,192, 16,225,160, 0, 6,
/* 0x07f0 */ 225,160, 16, 10,225,160, 32, 9,227,160, 48, 18,229,141,192, 0,
/* 0x0800 */ 235,255,254,191,225, 86, 0, 0, 26, 0, 0, 64,226,106, 48, 0,
/* 0x0810 */ 225,160,122, 3,227, 25, 0, 2,225,160,122, 39, 10, 0, 0, 7,
/* 0x0820 */ 227, 87, 0, 0, 10, 0, 0, 5,224,134, 16, 10,225,160, 32, 7,
/* 0x0830 */ 227,160, 48, 0,226, 82, 32, 1,228,193, 48, 1, 26,255,255,251,
/* 0x0840 */ 229,157, 0, 12,227, 80, 0, 0, 10, 0, 0, 50,235,255,254,188,
/* 0x0850 */ 229, 21, 48, 32,227, 83, 0, 1,229,141, 0, 28, 26, 0, 0, 37,
/* 0x0860 */ 229, 21, 48, 8,227, 19, 0, 1, 10, 0, 0, 34,229, 21, 32, 12,
/* 0x0870 */ 229, 21, 48, 16,225, 82, 0, 3,229, 21, 16, 24, 26, 0, 0, 67,
/* 0x0880 */ 224,130, 48, 1,226,131, 48, 3,224,139, 48, 3,227,195, 32, 3,
/* 0x0890 */ 226, 98, 48, 0,225,160, 58, 3,225,160, 58, 35,227, 83, 0, 7,
/* 0x08a0 */ 154, 0, 0, 58,234, 0, 0, 10,227,160,224, 0,227,224,192, 0,
/* 0x08b0 */ 225,160, 0, 14,227,160, 26, 1,227,160, 32, 7,227,160, 48, 34,
/* 0x08c0 */ 232,141, 80, 0,235,255,254,142,227, 80, 0, 0, 26, 0, 0, 54,
/* 0x08d0 */ 234, 0, 0, 8,226,130, 48, 3,227,195, 64, 3,229,157, 32, 28,
/* 0x08e0 */ 229,159, 49, 16,232,132, 0, 12,225,160, 0, 4,226,132, 16, 8,
/* 0x08f0 */ 235,255,254,144,234, 0, 0, 57,225,160, 0, 6,225,160, 16, 10,
/* 0x0900 */ 225,160, 32, 9,235,255,254,120,227, 80, 0, 0, 10, 0, 0, 1,
/* 0x0910 */ 227,160, 0,127,235,255,254, 97,229,157,192, 20,229,157, 0, 36,
/* 0x0920 */ 224,138, 48, 7,224,140, 16, 0,224,134, 64, 3,225, 84, 0, 1,
/* 0x0930 */ 42, 0, 0, 7,224,100, 16, 1,225,160, 32, 9,225,160, 0, 4,
/* 0x0940 */ 227,160, 48, 16,235,255,254,128,225, 84, 0, 0, 10, 0, 0, 0,
/* 0x0950 */ 234,255,255,254,229,157, 32, 24,226,130, 32, 1,229,141, 32, 24,
/* 0x0960 */ 226,133, 80, 32,225,216, 50,188,229,157,192, 24,225, 92, 0, 3,
/* 0x0970 */ 186,255,255, 75,229,157, 0, 84,227, 80, 0, 0, 21,128,176, 0,
/* 0x0980 */ 229,152, 0, 24,224,139, 0, 0,226,141,208, 48,232,189,143,240,
/* 0x0990 */ 229, 21, 48, 28,227, 83, 0, 0, 5,157, 32, 32, 0,129, 48, 2,
/* 0x09a0 */ 2,131, 32, 8, 10,255,255,202,234,255,255,190,226,128, 48, 3,
/* 0x09b0 */ 227,195, 64, 3,229,157, 48, 28,229,132, 48, 0,229,159, 48, 52,
/* 0x09c0 */ 226,132, 16, 8,225,160, 0, 4,229,132, 48, 4,235,255,254, 89,
/* 0x09d0 */ 225,160, 0, 4,227,160, 16, 8,227,160, 32, 5,235,255,254, 66,
/* 0x09e0 */ 225,160, 32, 4,229,157, 0, 8,227,160, 16, 0,235,255,254,115,
/* 0x09f0 */ 234,255,255,192,115, 81, 98, 64,225,160,240, 14,233, 45, 71,240,
/* 0x0a00 */ 226, 77,208, 12,226,141, 96, 52,225,160,144, 0,225,160,112, 1,
/* 0x0a10 */ 225,160,128, 3,225,160, 0, 6,226,141, 16, 44,227,160, 48, 0,
/* 0x0a20 */ 229,157,160, 48,225,160, 80, 2,229,157, 64, 52,235,255,254,134,
/* 0x0a30 */ 229,157, 48, 60,226,141,224, 12,229,157,192, 56,229, 46, 48, 4,
/* 0x0a40 */ 224,100,192, 12,225,160, 32, 6,225,160, 16, 10,225,160, 48, 9,
/* 0x0a50 */ 225,160, 0, 5,229,141,192, 56,229,141,224, 0,229,141,112, 52,
/* 0x0a60 */ 229,141,128, 4,235,255,254,202,225,160, 64, 0,227,160, 16, 9,
/* 0x0a70 */ 225,160, 0, 9,225,160, 32, 4,235,255,254, 80,225,218, 2,188,
/* 0x0a80 */ 226,138, 32, 52,227,160, 16, 0,234, 0, 0, 35,229,146, 48, 0,
/* 0x0a90 */ 227, 83, 0, 3, 26, 0, 0, 30,229,146, 48, 8,229,157, 0, 8,
/* 0x0aa0 */ 227,160, 16, 0,224,131, 0, 0,225,160, 32, 1,235,255,254, 0,
/* 0x0ab0 */ 226, 80, 80, 0,186, 0, 0, 4,225,160, 16, 10,227,160, 44, 2,
/* 0x0ac0 */ 235,255,253,247,227, 80, 12, 2, 10, 0, 0, 1,227,160, 0,127,
/* 0x0ad0 */ 235,255,253,242,227,160,224, 0,225,160, 32, 14,226,141,192, 8,
/* 0x0ae0 */ 225,160, 16, 10,225,160, 48, 9,225,160, 0, 5,232,141, 80, 0,
/* 0x0af0 */ 235,255,254,167,227,160, 16, 7,225,160, 64, 0,229,157, 32, 8,
/* 0x0b00 */ 225,160, 0, 9,235,255,254, 45,225,160, 0, 5,235,255,253,234,
/* 0x0b10 */ 234, 0, 0, 3,226,130, 32, 32,226,129, 16, 1,225, 81, 0, 0,
/* 0x0b20 */ 186,255,255,217,225,160, 0, 4,226,141,208, 12,232,189,135,240
/* 0x0080 */ 0, 0, 0, 34,225,160, 32, 4,225,160, 48, 5,232,189, 31,240,
/* 0x0090 */ 225,160, 16, 13,226, 77,218, 1,225,160, 0, 13,233, 45, 31,252,
/* 0x00a0 */ 228,145, 48, 4,227, 83, 0, 0,228,128, 48, 4, 26,255,255,251,
/* 0x00b0 */ 225,160, 64, 0,228,128, 48, 4,228,145, 48, 4,227, 83, 0, 0,
/* 0x00c0 */ 228,128, 48, 4, 26,255,255,251,225,160, 80, 1,232,177, 0, 12,
/* 0x00d0 */ 227, 82, 0, 0,232,160, 0, 12, 26,255,255,251,225,160, 96, 1,
/* 0x00e0 */ 225,160,144, 0,227,160, 42, 1,225,160, 16, 0,225,160, 0, 14,
/* 0x00f0 */ 226, 66, 32, 1,235, 0, 0,122,227,112, 10, 1, 33,160, 16, 14,
/* 0x0100 */ 35,160, 0, 14,224,129, 32, 0,225,160, 0, 6,227,160, 48, 0,
/* 0x0110 */ 229, 96, 48, 1,229,114, 48, 1,229, 96, 48, 1,225, 81, 0, 2,
/* 0x0120 */ 26,255,255,251,227,160, 48, 61,229, 96, 48, 1,227,160, 48, 32,
/* 0x0130 */ 229, 96, 48, 1,229, 96, 48, 1,229, 96, 48, 1,229,132, 0, 0,
/* 0x0140 */ 225,160, 1, 32,225,160, 1, 0,224, 38, 48, 0,226, 3, 48, 4,
/* 0x0150 */ 226, 35, 48, 4,224, 64, 0, 3,224, 64, 48, 6,224,131, 48, 5,
/* 0x0160 */ 225,160, 16, 9,229,157, 80, 24,229,141, 0, 24,229, 49, 32, 4,
/* 0x0170 */ 225, 81, 0, 13,229, 32, 32, 4, 26,255,255,251,225,160,208, 0,
/* 0x0180 */ 232,189, 12, 16,226, 77,220, 10,229,154,144, 4,225,160,128, 13,
/* 0x0190 */ 229,154,112, 0,226,143, 96,184,226,137,144, 12,233, 45, 15,248,
/* 0x01a0 */ 232,189, 0, 15,235, 0, 2, 39,226,141,208, 20,226,141,220, 10,
/* 0x01b0 */ 229,141, 0, 16,229,155, 16,104,225,160, 0, 11,235, 0, 0, 70,
/* 0x01c0 */ 225,160, 0, 11,235, 0, 0, 72,228,157, 64, 4,227, 84, 0, 0,
/* 0x01d0 */ 186, 0, 0, 8,227,160, 80, 0,233, 45, 0, 48,227,160, 48, 2,
/* 0x01e0 */ 227,160, 32, 1,227,160, 26, 1,227,160, 0, 0,235, 0, 0, 70,
/* 0x01f0 */ 232,189, 0, 3,235, 0, 0, 50,232,189, 64, 7,227,160, 48, 0,
/* 0x0200 */ 227,160, 64, 0,227,160, 80, 0,227,160, 96, 0,227,160,128, 0,
/* 0x0210 */ 227,160,144, 0,227,160,160, 0,227,160,176, 0,226, 77,199, 1,
/* 0x0220 */ 228, 29,112, 32,229,141,112, 0,229,157,112, 0,225, 92, 0, 13,
/* 0x0230 */ 58,255,255,250,226,141,215, 1,227,160,112, 0,227,160,192, 0,
/* 0x0240 */ 229, 18,240, 4, 47,112,114,111, 99, 47,115,101,108,102, 47,101,
/* 0x0250 */ 120,101, 0, 0,226, 3, 48,255,227, 83, 0, 81, 17,160,240, 14,
/* 0x0260 */ 225,176, 17, 33, 19, 80, 0, 0, 1,160,240, 14,226, 65, 16, 1,
/* 0x0270 */ 231,144, 33, 1,226, 2, 52, 15,227, 83, 4, 11, 26, 0, 0, 4,
/* 0x0280 */ 226, 2, 52,255,224, 66, 32, 1,227,194, 36,255,225,130, 32, 3,
/* 0x0290 */ 231,128, 33, 1,227, 81, 0, 0, 26,255,255,243,225,160,240, 14,
/* 0x02a0 */ 231,240, 1,240,225,160,240, 14,239,144, 0, 1,239,144, 0, 3,
/* 0x02b0 */ 225,160,240, 14,239,144, 0, 4,225,160,240, 14,239,144, 0, 5,
/* 0x02c0 */ 225,160,240, 14,239,144, 0, 6,225,160,240, 14,239,144, 0, 10,
/* 0x02d0 */ 225,160,240, 14,239,144, 0, 20,225,160,240, 14,239,144, 0, 45,
/* 0x02e0 */ 225,160,240, 14,239,144, 0, 85,225,160,240, 14,239,144, 0, 91,
/* 0x02f0 */ 225,160,240, 14,229,159,192, 56,224, 12,192, 0,224, 64, 0, 12,
/* 0x0300 */ 224,129, 16, 12,239,144, 0,125,225,160,240, 14,233, 45, 64, 48,
/* 0x0310 */ 229,157, 80, 16,229,157, 64, 12,225,160, 86, 37,229,159,192, 16,
/* 0x0320 */ 224, 12,192, 0,224, 64, 0, 12,224,129, 16, 12,239,144, 0,192,
/* 0x0330 */ 232,189,128, 48, 0, 0, 15,255,239,144, 0,192,232,189,128, 48,
/* 0x0340 */ 227,160, 32, 0,239,159, 0, 2,225,160,240, 14,229, 31, 0,104,
/* 0x0350 */ 225,160,240, 14,233, 45, 64, 48,229, 31, 66,224,227,160, 80, 0,
/* 0x0360 */ 225,131, 48, 4,227,224, 64, 0,234,255,255,235,225,160,192, 0,
/* 0x0370 */ 224, 65, 16, 1,225,160, 32, 0,224,144, 1,128,224,161, 17,129,
/* 0x0380 */ 224,129, 30,162,225,160, 32, 0,224,144, 2, 0,224,161, 18, 1,
/* 0x0390 */ 224,129, 30, 34,225,160, 32, 0,224,144, 4, 0,224,161, 20, 1,
/* 0x03a0 */ 224,129, 28, 34,225,160, 32, 0,224,144, 8, 0,224,161, 24, 1,
/* 0x03b0 */ 224,129, 24, 34,224, 80, 15,140,224,193, 16,172,224,144, 0, 12,
/* 0x03c0 */ 226,161, 0, 0,225,160,240, 14,229,159, 0, 0,225, 47,255, 30,
/* 0x03d0 */ 255,255,240, 0,227, 80, 0, 0,229, 45,224, 4, 4,157,240, 4,
/* 0x03e0 */ 226, 16, 48, 1, 20,157,240, 4,225,160,192, 3,225,160,224, 3,
/* 0x03f0 */ 229,144, 48, 0,225, 83, 0, 1, 2,142,224, 1, 5,128, 32, 4,
/* 0x0400 */ 10, 0, 0, 1,227, 83, 0, 1, 10, 0, 0, 10,229,144, 48, 0,
/* 0x0410 */ 227, 83, 0, 0, 26, 0, 0, 8,227, 94, 0, 0, 20,157,240, 4,
/* 0x0420 */ 227, 92, 0, 0, 21,140, 32, 4, 21,140, 16, 0, 20,157,240, 4,
/* 0x0430 */ 227,160, 0,127,235,255,255,155,225,160,192, 0,226,128, 0, 8,
/* 0x0440 */ 234,255,255,234,229,144, 48, 0,225, 83, 0, 2,229,144, 48, 4,
/* 0x0450 */ 229, 45,224, 4, 33,160,192, 3,225,160,224, 2, 33,160, 32, 2,
/* 0x0460 */ 42, 0, 0, 3,227,160, 0,127,235,255,255,142,229, 92, 48, 1,
/* 0x0470 */ 229, 65, 48, 1,226, 66, 32, 1,227,114, 0, 1,226,140,192, 1,
/* 0x0480 */ 226,129, 16, 1, 26,255,255,248,229,144, 32, 4,229,144, 48, 0,
/* 0x0490 */ 224,130, 32, 14,224,110, 48, 3,229,128, 48, 0,229,128, 32, 4,
/* 0x04a0 */ 228,157,240, 4,233, 45, 64,240,225,160, 80, 0,226, 77,208, 20,
/* 0x04b0 */ 225,160, 64, 1,225,160,112, 2,225,160, 96, 3,234, 0, 0, 68,
/* 0x04c0 */ 226,141, 16, 4,225,160, 0, 5,227,160, 32, 12,235,255,255,220,
/* 0x04d0 */ 229,157,224, 4,227, 94, 0, 0,229,157, 16, 8, 26, 0, 0, 6,
/* 0x04e0 */ 229,159, 49, 0,225, 81, 0, 3, 26, 0, 0, 5,229,149, 48, 0,
/* 0x04f0 */ 227, 83, 0, 0, 26, 0, 0, 2,234, 0, 0, 56,227, 81, 0, 0,
/* 0x0500 */ 26, 0, 0, 1,227,160, 0,127,235,255,255,102,225, 81, 0, 14,
/* 0x0510 */ 138,255,255,251,229,148, 48, 0,225, 94, 0, 3,138,255,255,248,
/* 0x0520 */ 225, 81, 0, 14, 42, 0, 0, 33,229,221,192, 12,229,149, 0, 4,
/* 0x0530 */ 229,148, 32, 4,226,141, 48, 16,229,141,224, 16,229,141,192, 0,
/* 0x0540 */ 225,160,224, 15,225, 47,255, 23,227, 80, 0, 0, 26,255,255,236,
/* 0x0550 */ 229,157, 16, 16,229,157, 48, 4,225, 81, 0, 3, 26,255,255,232,
/* 0x0560 */ 229,221, 32, 13,227, 82, 0, 0, 19, 86, 0, 0, 10, 0, 0, 9,
/* 0x0570 */ 227, 81, 12, 2,138, 0, 0, 2,229,148, 48, 0,225, 83, 0, 1,
/* 0x0580 */ 26, 0, 0, 4,225,160, 48, 2,229,148, 0, 4,229,221, 32, 14,
/* 0x0590 */ 225,160,224, 15,225, 47,255, 22,229,157, 48, 8,232,149, 0, 6,
/* 0x05a0 */ 224,130, 32, 3,224, 99, 16, 1,232,133, 0, 6,234, 0, 0, 3,
/* 0x05b0 */ 225,160, 32, 1,225,160, 0, 5,229,148, 16, 4,235,255,255,160,
/* 0x05c0 */ 229,157, 48, 4,232,148, 0, 6,224,130, 32, 3,224, 99, 16, 1,
/* 0x05d0 */ 232,132, 0, 6,229,148, 48, 0,227, 83, 0, 0, 26,255,255,183,
/* 0x05e0 */ 226,141,208, 20,232,189,128,240, 33, 88, 80, 85,233, 45, 79,240,
/* 0x05f0 */ 225,160,160, 1,229,145, 16, 28,226, 77,208, 44,227, 82, 0, 0,
/* 0x0600 */ 229,141, 32, 12,229,141, 0, 16,229,141, 48, 8,224,138, 80, 1,
/* 0x0610 */ 10, 0, 0, 13,229,157, 32, 80,229,146, 0, 0,225,208, 49,176,
/* 0x0620 */ 226,128, 16, 52,227, 83, 0, 2, 21,145, 48, 40, 5,145, 0, 8,
/* 0x0630 */ 3,160, 48, 0, 16, 99, 0, 0,229,145, 16, 20, 5,141, 48, 20,
/* 0x0640 */ 21,141, 0, 20,235,255,255, 40,234, 0, 0, 38,225,218, 49,176,
/* 0x0650 */ 225,218, 34,188,227, 83, 0, 3,229,157, 16, 12, 19,160,224, 16,
/* 0x0660 */ 3,160,224, 0,226, 66,192, 1,225,160, 0, 5,227,224, 64, 0,
/* 0x0670 */ 234, 0, 0, 13,229,144, 48, 0,227, 83, 0, 1, 26, 0, 0, 8,
/* 0x0680 */ 229,144, 48, 20,227, 83, 0, 0, 10, 0, 0, 5,229,144, 32, 8,
/* 0x0690 */ 224,131, 48, 2,225, 81, 0, 3, 49,160, 16, 3,225, 84, 0, 2,
/* 0x06a0 */ 33,160, 64, 2,226,128, 0, 32,226, 76,192, 1,227, 92, 0, 0,
/* 0x06b0 */ 170,255,255,239,227,196, 78,255,227,196, 64, 15,224,100, 16, 1,
/* 0x06c0 */ 226,129, 30,255,226,129, 16, 15,227,193, 30,255,227,193, 16, 15,
/* 0x06d0 */ 225,160, 48, 14,225,160, 0, 4,227,160, 32, 0,235,255,255, 28,
/* 0x06e0 */ 224,100, 0, 0,229,141, 0, 20,227,160,192, 0,226,133, 80, 32,
/* 0x06f0 */ 229,141,192, 24,234, 0, 0,165,229,157, 0, 12,227, 80, 0, 0,
/* 0x0700 */ 10, 0, 0, 9,229, 21, 48, 32,227, 83, 0, 6, 26, 0, 0, 6,
/* 0x0710 */ 229, 21, 32, 24,229,157, 48, 20,229,157, 0, 8,224,131, 32, 2,
/* 0x0720 */ 227,160, 16, 3,235,255,255, 42,234, 0, 0,148,229, 21, 48, 32,
/* 0x0730 */ 227, 83, 0, 1, 26, 0, 0,145,229, 21, 48, 12,227, 83, 0, 0,
/* 0x0740 */ 10, 0, 0,142,229,157,192, 12,227, 92, 0, 0, 10, 0, 0, 18,
/* 0x0750 */ 229, 21, 48, 28,227, 83, 0, 0, 26, 0, 0, 15,229,154, 48, 28,
/* 0x0760 */ 229, 21, 32, 24,229,157, 0, 20,224,130, 32, 3,224,128, 32, 2,
/* 0x0770 */ 227,160, 16, 3,229,157, 0, 8,235,255,255, 21,229,157, 0, 8,
/* 0x0780 */ 227,160, 16, 5,225,218, 34,188,235,255,255, 17,229,157, 0, 8,
/* 0x0790 */ 227,160, 16, 4,225,218, 34,186,235,255,255, 13,229, 21, 16, 8,
/* 0x07a0 */ 229,159, 34,148,226, 1, 48, 7,225,160, 49, 3,225,160, 67, 50,
/* 0x07b0 */ 229, 21, 48, 24,229,157, 32, 20,229,157,192, 12,224,130,176, 3,
/* 0x07c0 */ 225,160, 42, 11,229, 21, 48, 16,229, 21, 0, 12,225,160, 42, 34,
/* 0x07d0 */ 227, 92, 0, 0,229,141, 48, 36,229,141,176, 40,224,131,128, 2,
/* 0x07e0 */ 226, 4,144, 7,229,141, 0, 32,224, 98, 96, 11, 10, 0, 0, 16,
/* 0x07f0 */ 227, 17, 0, 1, 3,160, 32, 3, 19,160, 32, 7,225,160, 0, 6,
/* 0x0800 */ 225,160, 16, 8,227,160, 48, 16,235,255,254,209,225, 86, 0, 0,
/* 0x0810 */ 26, 0, 0, 74,229,157, 32, 84,226, 20, 48, 4, 17,160, 48, 2,
/* 0x0820 */ 229,157, 0, 12,226,141, 16, 36,229,157, 32, 16,235,255,255, 28,
/* 0x0830 */ 234, 0, 0, 11,229, 21,192, 28,224, 98,192, 12,229,141,192, 4,
/* 0x0840 */ 229,157,192, 16,225,160, 0, 6,225,160, 16, 8,225,160, 32, 9,
/* 0x0850 */ 227,160, 48, 18,229,141,192, 0,235,255,254,171,225, 86, 0, 0,
/* 0x0860 */ 26, 0, 0, 54,226,104, 48, 0,225,160,122, 3,227, 25, 0, 2,
/* 0x0870 */ 225,160,122, 39, 10, 0, 0, 7,227, 87, 0, 0, 10, 0, 0, 5,
/* 0x0880 */ 224,134, 16, 8,225,160, 32, 7,227,160, 48, 0,226, 82, 32, 1,
/* 0x0890 */ 228,193, 48, 1, 26,255,255,251,229,157, 0, 12,227, 80, 0, 0,
/* 0x08a0 */ 10, 0, 0, 40,235,255,254,168,229, 21, 48, 32,227, 83, 0, 1,
/* 0x08b0 */ 229,141, 0, 28, 26, 0, 0, 27,229, 21, 48, 8,227, 19, 0, 1,
/* 0x08c0 */ 10, 0, 0, 24,229, 21, 48, 16,229, 21, 32, 12,225, 82, 0, 3,
/* 0x08d0 */ 229, 21, 48, 24, 26, 0, 0, 58,224,130, 48, 3,229,157, 32, 20,
/* 0x08e0 */ 226,131, 48, 3,224,130, 48, 3,227,195, 0, 3,226, 96, 48, 0,
/* 0x08f0 */ 225,160, 58, 3,225,160, 58, 35,227, 83, 0, 11,154, 0, 0, 48,
/* 0x0900 */ 229,157, 48, 28,229,128, 48, 0,229,159, 49, 48,229,128, 48, 4,
/* 0x0910 */ 229,159, 49, 44,226,128, 16, 12,229,128, 48, 8,225,160, 64, 0,
/* 0x0920 */ 235,255,254,134,234, 0, 0, 63,225,160, 0, 6,225,160, 16, 8,
/* 0x0930 */ 225,160, 32, 9,235,255,254,110,227, 80, 0, 0, 10, 0, 0, 1,
/* 0x0940 */ 227,160, 0,127,235,255,254, 87,229,157,192, 32,224,136, 48, 7,
/* 0x0950 */ 224,139, 16, 12,224,134, 64, 3,225, 84, 0, 1, 42, 0, 0, 7,
/* 0x0960 */ 224,100, 16, 1,225,160, 32, 9,225,160, 0, 4,227,160, 48, 16,
/* 0x0970 */ 235,255,254,119,225, 84, 0, 0, 10, 0, 0, 0,234,255,255,254,
/* 0x0980 */ 229,157, 0, 24,226,128, 0, 1,229,141, 0, 24,226,133, 80, 32,
/* 0x0990 */ 225,218, 50,188,229,157, 32, 24,225, 82, 0, 3,186,255,255, 85,
/* 0x09a0 */ 229,157, 48, 80,227, 83, 0, 0, 21,157,192, 20, 21,131,192, 0,
/* 0x09b0 */ 229,157, 32, 20,229,154, 0, 24,224,130, 0, 0,226,141,208, 44,
/* 0x09c0 */ 232,189,143,240,227,160,224, 0,227,224,192, 0,225,160, 0, 14,
/* 0x09d0 */ 227,160, 26, 1,227,160, 32, 7,227,160, 48, 34,232,141, 80, 0,
/* 0x09e0 */ 235,255,254, 73,227, 80, 0, 0, 10,255,255,206,226,128, 48, 3,
/* 0x09f0 */ 227,195, 64, 3,229,159, 48, 68,229,157, 0, 28,229,132, 48, 4,
/* 0x0a00 */ 229,159, 48, 60,229,132, 0, 0,226,132, 16, 12,225,160, 0, 4,
/* 0x0a10 */ 229,132, 48, 8,235,255,254, 73,225,160, 0, 4,227,160, 16, 12,
/* 0x0a20 */ 227,160, 32, 5,235,255,254, 50,225,160, 32, 4,229,157, 0, 8,
/* 0x0a30 */ 227,160, 16, 0,235,255,254,102,234,255,255,186,115, 81, 98, 64,
/* 0x0a40 */ 232,189, 0, 3,225,160,240, 14,233, 45, 71,240,226, 77,208, 12,
/* 0x0a50 */ 226,141, 96, 52,225,160,144, 0,225,160,112, 1,225,160,128, 3,
/* 0x0a60 */ 225,160, 0, 6,226,141, 16, 44,227,160, 48, 0,229,157,160, 48,
/* 0x0a70 */ 225,160, 80, 2,229,157, 64, 52,235,255,254,137,229,157, 48, 60,
/* 0x0a80 */ 226,141,224, 12,229,157,192, 56,229, 46, 48, 4,224,100,192, 12,
/* 0x0a90 */ 225,160, 32, 6,225,160, 16, 10,225,160, 48, 9,225,160, 0, 5,
/* 0x0aa0 */ 229,141,192, 56,229,141,224, 0,229,141,112, 52,229,141,128, 4,
/* 0x0ab0 */ 235,255,254,205,225,160, 64, 0,227,160, 16, 9,225,160, 0, 9,
/* 0x0ac0 */ 225,160, 32, 4,235,255,254, 66,225,218, 2,188,226,138, 32, 52,
/* 0x0ad0 */ 227,160, 16, 0,234, 0, 0, 35,229,146, 48, 0,227, 83, 0, 3,
/* 0x0ae0 */ 26, 0, 0, 30,229,146, 48, 8,229,157, 0, 8,227,160, 16, 0,
/* 0x0af0 */ 224,131, 0, 0,225,160, 32, 1,235,255,253,239,226, 80, 80, 0,
/* 0x0b00 */ 186, 0, 0, 4,225,160, 16, 10,227,160, 44, 2,235,255,253,230,
/* 0x0b10 */ 227, 80, 12, 2, 10, 0, 0, 1,227,160, 0,127,235,255,253,225,
/* 0x0b20 */ 227,160,224, 0,225,160, 32, 14,226,141,192, 8,225,160, 16, 10,
/* 0x0b30 */ 225,160, 48, 9,225,160, 0, 5,232,141, 80, 0,235,255,254,170,
/* 0x0b40 */ 227,160, 16, 7,225,160, 64, 0,229,157, 32, 8,225,160, 0, 9,
/* 0x0b50 */ 235,255,254, 31,225,160, 0, 5,235,255,253,217,234, 0, 0, 3,
/* 0x0b60 */ 226,130, 32, 32,226,129, 16, 1,225, 81, 0, 0,186,255,255,217,
/* 0x0b70 */ 225,160, 0, 4,226,141,208, 12,232,189,135,240
};
+88 -85
View File
@@ -1,5 +1,5 @@
/* i386-linux.elf-fold.h
created from i386-linux.elf-fold.bin, 2021 (0x7e5) bytes
created from i386-linux.elf-fold.bin, 2072 (0x818) bytes
This file is part of the UPX executable compressor.
@@ -32,17 +32,17 @@
/* clang-format off */
#define STUB_I386_LINUX_ELF_FOLD_SIZE 2021
#define STUB_I386_LINUX_ELF_FOLD_ADLER32 0x7bc16ae5
#define STUB_I386_LINUX_ELF_FOLD_CRC32 0xff0ef725
#define STUB_I386_LINUX_ELF_FOLD_SIZE 2072
#define STUB_I386_LINUX_ELF_FOLD_ADLER32 0xde277fa3
#define STUB_I386_LINUX_ELF_FOLD_CRC32 0xce57936c
unsigned char stub_i386_linux_elf_fold[2021] = {
unsigned char stub_i386_linux_elf_fold[2072] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 3, 0, 1, 0, 0, 0,128, 16,192, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 16,192, 0,
/* 0x0040 */ 0, 16,192, 0,229, 7, 0, 0,232, 7, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,229, 7, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 16,192, 0, 24, 8, 0, 0, 24, 8, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 24, 8, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 87, 81, 80,137,230,129,236, 0, 16, 0, 0,137,231,106, 8, 89,
@@ -57,7 +57,7 @@ unsigned char stub_i386_linux_elf_fold[2021] = {
/* 0x0110 */ 49,248,131,224, 4, 41,199, 90, 1,250,175,173,193,233, 2, 73,
/* 0x0120 */ 243,165,252,141, 79, 4, 49,192, 41,225,137,231,193,233, 2,243,
/* 0x0130 */ 171,137,252,137,215, 88, 93, 88, 94, 89,129,236, 0, 10, 0, 0,
/* 0x0140 */ 137,226, 81,139, 24,139, 72, 4,131,193, 12, 96, 71,232,137, 5,
/* 0x0140 */ 137,226, 81,139, 24,139, 72, 4,131,193, 12, 96, 71,232,188, 5,
/* 0x0150 */ 0, 0, 79,137,198,139,108, 36, 32,139, 77,104,137,235,102,131,
/* 0x0160 */ 125, 16, 2,117, 5,106, 45, 88,205,128,106, 91, 88,205,128,137,
/* 0x0170 */ 250,137,231,185,137, 2, 0, 0, 49,192,243,171,137,252, 88, 89,
@@ -87,81 +87,84 @@ unsigned char stub_i386_linux_elf_fold[2021] = {
/* 0x02f0 */ 196, 16,139, 69,232, 1, 70, 4, 41, 6,235, 10,139, 83, 4,137,
/* 0x0300 */ 240,232, 14,255,255,255,139, 85,228,139, 3, 1, 83, 4, 41,208,
/* 0x0310 */ 133,192,137, 3,233, 65,255,255,255,141,101,244, 91, 94, 95,201,
/* 0x0320 */ 195,133,192,116, 13,168, 1,117, 9, 57, 16,116, 7,131,192, 8,
/* 0x0330 */ 235,247, 49,192,133,192,116, 3,137, 72, 4,195,184, 0,240,255,
/* 0x0340 */ 255,195, 85,137,229, 87, 86, 83,131,236, 76,137, 69,228,137, 85,
/* 0x0350 */ 224,139, 69, 8,139, 85, 12,139, 77, 16,137, 69,220,139,117, 20,
/* 0x0360 */ 137, 85,216,137, 77,212,137,117,208,232,206,255,255,255,139, 85,
/* 0x0370 */ 224,137,198,247,208, 3, 82, 28,137, 69,204,131,125,220, 0,137,
/* 0x0380 */ 85,200,116, 51,139, 77,212,139, 1,102,131,120, 16, 2,141, 80,
/* 0x0390 */ 52,117, 12,139, 90, 8,199, 69,196, 0, 0, 0, 0,235, 8,137,
/* 0x03a0 */ 195, 43, 90, 40,137, 93,196,139, 74, 20,141, 4, 25,137, 69,240,
/* 0x03b0 */ 106, 91, 88,205,128,235,127,139, 69,224,139, 85,224,102,131,120,
/* 0x03c0 */ 16, 3, 15,183, 82, 44,139, 93,200, 15,149,192, 15,182,248,137,
/* 0x03d0 */ 85,192,232,101,255,255,255,139, 77,192,193,231, 4,137,240, 49,
/* 0x03e0 */ 246, 73,199, 69,188,255,255,255,255,120, 33,139, 77,192,131, 59,
/* 0x03f0 */ 1,117, 20,139, 83, 8, 59, 85,188,115, 3,137, 85,188, 3, 83,
/* 0x0400 */ 20, 57,214,115, 2,137,214,131,195, 32,226,226,139, 93,188,106,
/* 0x0410 */ 0,106,255,131,207, 34, 33,195, 87, 41,222,106, 0, 41,198, 78,
/* 0x0420 */ 33,198, 86, 83,232,191,253,255,255,131,196, 24, 1,198, 41,216,
/* 0x0430 */ 137,117,240,137, 69,196,139,117,224,199, 69,184, 0, 0, 0, 0,
/* 0x0440 */ 102,131,126, 44, 0, 15,132,110, 2, 0, 0,131,125,220, 0,116,
/* 0x0450 */ 32,139, 69,200,131, 56, 6,117, 24,139, 77,196,186, 3, 0, 0,
/* 0x0460 */ 0, 3, 72, 8,139, 69,216,232,181,254,255,255,233, 49, 2, 0,
/* 0x0470 */ 0,139, 85,200,131, 58, 1, 15,133, 37, 2, 0, 0,131,122, 20,
/* 0x0480 */ 0, 15,132, 27, 2, 0, 0,131,125,220, 0,116, 65,131,122, 4,
/* 0x0490 */ 0,117, 59,139,117,224,139, 77,196, 3, 74, 8,186, 3, 0, 0,
/* 0x04a0 */ 0, 3, 78, 28,139, 69,216,232,117,254,255,255, 15,183, 78, 44,
/* 0x04b0 */ 139, 69,216,186, 5, 0, 0, 0,232,100,254,255,255, 15,183, 78,
/* 0x04c0 */ 42,139, 69,216,186, 4, 0, 0, 0,232, 83,254,255,255,139, 69,
/* 0x04d0 */ 200,187, 64, 98, 81,115,139, 72, 24,131,225, 7,193,225, 2,211,
/* 0x04e0 */ 235,139, 77,200,137,218,131,226, 7,139,113, 20,137, 85,180,139,
/* 0x04f0 */ 80, 16,139, 69,196, 3, 65, 8,137, 85,232,139, 77,204, 1,198,
/* 0x0500 */ 33,193,137,117,176,137,198, 41,206,131,125,220, 0,137, 69,236,
/* 0x0510 */ 141, 60, 10,116, 58,106, 0,106,255,106, 50,141, 71, 3,106, 3,
/* 0x0520 */ 80, 86,232,193,252,255,255,131,196, 24, 57,198, 15,133, 36, 1,
/* 0x0530 */ 0, 0,128,227, 4,139, 69,208,117, 2, 49,192, 80,139, 69,220,
/* 0x0540 */ 255,117,228,141, 85,232,232,246,252,255,255, 88, 90,235, 35,139,
/* 0x0550 */ 85,200,139, 66, 4, 41,200, 80,255,117,228,106, 18,255,117,180,
/* 0x0560 */ 87, 86,232,129,252,255,255,131,196, 24, 57,198, 15,133,228, 0,
/* 0x0570 */ 0, 0,137,249,139, 69,204,247,217, 33,193,246, 69,180, 2,137,
/* 0x0580 */ 77,168,116, 13,133,201,141, 4, 62,116, 6,198, 0, 0, 64,226,
/* 0x0590 */ 250,131,125,220, 0, 15,132,197, 0, 0, 0,139, 85,200,199, 69,
/* 0x05a0 */ 172, 0, 0, 0, 0,131, 58, 1, 15,133,151, 0, 0, 0,246, 66,
/* 0x05b0 */ 24, 1, 15,132,141, 0, 0, 0,137,209,139, 82, 20,137,200,139,
/* 0x05c0 */ 73, 8,141, 28, 10, 3, 93,196, 59, 80, 16,117, 14,137,216,247,
/* 0x05d0 */ 216, 37,255, 15, 0, 0,131,248, 3,119, 53,139, 85,200,107, 69,
/* 0x05e0 */ 196, 52,131,122, 4, 0,141, 92, 1, 12,116, 36,106, 0,106,255,
/* 0x05f0 */ 106, 34,106, 3,104, 0, 16, 0, 0,106, 0,199, 69,172, 1, 0,
/* 0x0600 */ 0, 0,232,225,251,255,255,131,196, 24,133,192,137,195,116, 53,
/* 0x0610 */ 139, 3, 61,205,128, 97,195,116, 6,199, 3,205,128, 97,195,131,
/* 0x0620 */ 125,172, 0,116, 13,106, 5,106, 4, 83,232,145,251,255,255,131,
/* 0x0630 */ 196, 12,133,219,116, 15,139, 69,216,137,217, 49,210,131,224,254,
/* 0x0640 */ 232,220,252,255,255,255,117,180, 87, 86,232,113,251,255,255,131,
/* 0x0650 */ 196, 12,133,192,116, 10,106,127, 91,106, 1, 88,205,128,235,254,
/* 0x0660 */ 139, 77,168,141, 4, 15,141, 28, 6, 59, 93,176,115, 30,106, 0,
/* 0x0670 */ 106,255,106, 50,255,117,180, 41, 93,176,255,117,176, 83,232,101,
/* 0x0680 */ 251,255,255,131,196, 24, 57,195,116, 24,235,254,131,125,220, 0,
/* 0x0690 */ 116, 16,141, 79, 3, 35, 77,204,131,249, 3,119, 5,106, 91, 88,
/* 0x06a0 */ 205,128,139,117,224,255, 69,184, 15,183, 70, 44,131, 69,200, 32,
/* 0x06b0 */ 57, 69,184, 15,140,146,253,255,255,131,125,212, 0,116, 8,139,
/* 0x06c0 */ 85,196,139, 69,212,137, 16,139, 77,224,139, 73, 24, 1, 77,196,
/* 0x06d0 */ 139, 69,196,141,101,244, 91, 94, 95,201,195, 85,137,229, 87, 86,
/* 0x06e0 */ 83,131,236, 32,199, 69,232, 0, 0, 0, 0,139, 69, 8,139,117,
/* 0x06f0 */ 16,137, 69,236,128, 62,235,117, 6,141, 86, 2,137, 85,232,106,
/* 0x0700 */ 0,139,125, 28,141, 85, 24,139, 93, 32,141, 69, 32, 86,232, 46,
/* 0x0710 */ 251,255,255,139, 69, 12, 41, 93, 36,137,250,141, 93,240,255,117,
/* 0x0720 */ 232,137, 69, 32,139, 69, 40, 83,255,117,236,137, 69,240,141, 69,
/* 0x0730 */ 32,141, 79, 52, 80,137,240,137, 77,228,232, 3,252,255,255,137,
/* 0x0740 */ 193,137, 69,224,139, 69,236,186, 9, 0, 0, 0,232,208,251,255,
/* 0x0750 */ 255,102,139, 79, 44,131,196, 24, 49,210,102,133,201,116,123,139,
/* 0x0760 */ 69,228,131, 56, 3,117,103,139, 93,240, 49,201, 3, 88, 8,137,
/* 0x0770 */ 202,106, 5, 88,205,128,133,192,137,198,120, 21,186, 0, 2, 0,
/* 0x0780 */ 0,137,195,137,249,106, 3, 88,205,128, 61, 0, 2, 0, 0,116,
/* 0x0790 */ 10,106,127, 91,106, 1, 88,205,128,235,254,141, 69,240,137,250,
/* 0x07a0 */ 106, 0,137,243, 80,137,240,255,117,236,106, 0,232,145,251,255,
/* 0x07b0 */ 255,139, 77,240,137, 69,224,139, 69,236,186, 7, 0, 0, 0,232,
/* 0x07c0 */ 93,251,255,255,131,196, 16,106, 6, 88,205,128,235, 12, 66, 15,
/* 0x07d0 */ 183,193,131, 69,228, 32, 57,194,124,133,139, 69,224,141,101,244,
/* 0x07e0 */ 91, 94, 95,201,195
/* 0x0320 */ 195, 87,133,192, 86,137,207, 83,137,214,116, 63,168, 1,117, 59,
/* 0x0330 */ 49,219, 49,201,139, 16, 57,242,117, 6, 65,137,120, 4,235, 9,
/* 0x0340 */ 131,250, 1,117, 4,137,195,235, 29,133,210,117, 25,133,201,117,
/* 0x0350 */ 26,133,219,116, 7,137, 51,137,123, 4,235, 15,106,127, 91,106,
/* 0x0360 */ 1, 88,205,128,235,254,131,192, 8,235,201, 91, 94, 95,195,184,
/* 0x0370 */ 0,240,255,255,195, 85,137,229, 87, 86, 83,131,236, 76,137, 69,
/* 0x0380 */ 228,137, 85,224,139, 69, 8,139, 85, 12,139, 77, 16,137, 69,220,
/* 0x0390 */ 139,117, 20,137, 85,216,137, 77,212,137,117,208,232,206,255,255,
/* 0x03a0 */ 255,139, 85,224,137,198,247,208, 3, 82, 28,137, 69,204,131,125,
/* 0x03b0 */ 220, 0,137, 85,200,116, 51,139, 77,212,139, 1,102,131,120, 16,
/* 0x03c0 */ 2,141, 80, 52,117, 12,139, 90, 8,199, 69,196, 0, 0, 0, 0,
/* 0x03d0 */ 235, 8,137,195, 43, 90, 40,137, 93,196,139, 74, 20,141, 4, 25,
/* 0x03e0 */ 137, 69,240,106, 91, 88,205,128,235,127,139, 69,224,139, 85,224,
/* 0x03f0 */ 102,131,120, 16, 3, 15,183, 82, 44,139, 93,200, 15,149,192, 15,
/* 0x0400 */ 182,248,137, 85,192,232,101,255,255,255,139, 77,192,193,231, 4,
/* 0x0410 */ 137,240, 49,246, 73,199, 69,188,255,255,255,255,120, 33,139, 77,
/* 0x0420 */ 192,131, 59, 1,117, 20,139, 83, 8, 59, 85,188,115, 3,137, 85,
/* 0x0430 */ 188, 3, 83, 20, 57,214,115, 2,137,214,131,195, 32,226,226,139,
/* 0x0440 */ 93,188,106, 0,106,255,131,207, 34, 33,195, 87, 41,222,106, 0,
/* 0x0450 */ 41,198, 78, 33,198, 86, 83,232,140,253,255,255,131,196, 24, 1,
/* 0x0460 */ 198, 41,216,137,117,240,137, 69,196,139,117,224,199, 69,184, 0,
/* 0x0470 */ 0, 0, 0,102,131,126, 44, 0, 15,132,110, 2, 0, 0,131,125,
/* 0x0480 */ 220, 0,116, 32,139, 69,200,131, 56, 6,117, 24,139, 77,196,186,
/* 0x0490 */ 3, 0, 0, 0, 3, 72, 8,139, 69,216,232,130,254,255,255,233,
/* 0x04a0 */ 49, 2, 0, 0,139, 85,200,131, 58, 1, 15,133, 37, 2, 0, 0,
/* 0x04b0 */ 131,122, 20, 0, 15,132, 27, 2, 0, 0,131,125,220, 0,116, 65,
/* 0x04c0 */ 131,122, 4, 0,117, 59,139,117,224,139, 77,196, 3, 74, 8,186,
/* 0x04d0 */ 3, 0, 0, 0, 3, 78, 28,139, 69,216,232, 66,254,255,255, 15,
/* 0x04e0 */ 183, 78, 44,139, 69,216,186, 5, 0, 0, 0,232, 49,254,255,255,
/* 0x04f0 */ 15,183, 78, 42,139, 69,216,186, 4, 0, 0, 0,232, 32,254,255,
/* 0x0500 */ 255,139, 69,200,187, 64, 98, 81,115,139, 72, 24,131,225, 7,193,
/* 0x0510 */ 225, 2,211,235,139, 77,200,137,218,131,226, 7,139,113, 20,137,
/* 0x0520 */ 85,180,139, 80, 16,139, 69,196, 3, 65, 8,137, 85,232,139, 77,
/* 0x0530 */ 204, 1,198, 33,193,137,117,176,137,198, 41,206,131,125,220, 0,
/* 0x0540 */ 137, 69,236,141, 60, 10,116, 58,106, 0,106,255,106, 50,141, 71,
/* 0x0550 */ 3,106, 3, 80, 86,232,142,252,255,255,131,196, 24, 57,198, 15,
/* 0x0560 */ 133, 36, 1, 0, 0,128,227, 4,139, 69,208,117, 2, 49,192, 80,
/* 0x0570 */ 139, 69,220,255,117,228,141, 85,232,232,195,252,255,255, 88, 90,
/* 0x0580 */ 235, 35,139, 85,200,139, 66, 4, 41,200, 80,255,117,228,106, 18,
/* 0x0590 */ 255,117,180, 87, 86,232, 78,252,255,255,131,196, 24, 57,198, 15,
/* 0x05a0 */ 133,228, 0, 0, 0,137,249,139, 69,204,247,217, 33,193,246, 69,
/* 0x05b0 */ 180, 2,137, 77,168,116, 13,133,201,141, 4, 62,116, 6,198, 0,
/* 0x05c0 */ 0, 64,226,250,131,125,220, 0, 15,132,197, 0, 0, 0,139, 85,
/* 0x05d0 */ 200,199, 69,172, 0, 0, 0, 0,131, 58, 1, 15,133,151, 0, 0,
/* 0x05e0 */ 0,246, 66, 24, 1, 15,132,141, 0, 0, 0,137,209,139, 82, 20,
/* 0x05f0 */ 137,200,139, 73, 8,141, 28, 10, 3, 93,196, 59, 80, 16,117, 14,
/* 0x0600 */ 137,216,247,216, 37,255, 15, 0, 0,131,248, 3,119, 53,139, 85,
/* 0x0610 */ 200,107, 69,196, 52,131,122, 4, 0,141, 92, 1, 12,116, 36,106,
/* 0x0620 */ 0,106,255,106, 34,106, 3,104, 0, 16, 0, 0,106, 0,199, 69,
/* 0x0630 */ 172, 1, 0, 0, 0,232,174,251,255,255,131,196, 24,133,192,137,
/* 0x0640 */ 195,116, 53,139, 3, 61,205,128, 97,195,116, 6,199, 3,205,128,
/* 0x0650 */ 97,195,131,125,172, 0,116, 13,106, 5,106, 4, 83,232, 94,251,
/* 0x0660 */ 255,255,131,196, 12,133,219,116, 15,139, 69,216,137,217, 49,210,
/* 0x0670 */ 131,224,254,232,169,252,255,255,255,117,180, 87, 86,232, 62,251,
/* 0x0680 */ 255,255,131,196, 12,133,192,116, 10,106,127, 91,106, 1, 88,205,
/* 0x0690 */ 128,235,254,139, 77,168,141, 4, 15,141, 28, 6, 59, 93,176,115,
/* 0x06a0 */ 30,106, 0,106,255,106, 50,255,117,180, 41, 93,176,255,117,176,
/* 0x06b0 */ 83,232, 50,251,255,255,131,196, 24, 57,195,116, 24,235,254,131,
/* 0x06c0 */ 125,220, 0,116, 16,141, 79, 3, 35, 77,204,131,249, 3,119, 5,
/* 0x06d0 */ 106, 91, 88,205,128,139,117,224,255, 69,184, 15,183, 70, 44,131,
/* 0x06e0 */ 69,200, 32, 57, 69,184, 15,140,146,253,255,255,131,125,212, 0,
/* 0x06f0 */ 116, 8,139, 85,196,139, 69,212,137, 16,139, 77,224,139, 73, 24,
/* 0x0700 */ 1, 77,196,139, 69,196,141,101,244, 91, 94, 95,201,195, 85,137,
/* 0x0710 */ 229, 87, 86, 83,131,236, 32,199, 69,232, 0, 0, 0, 0,139, 69,
/* 0x0720 */ 8,139,117, 16,137, 69,236,128, 62,235,117, 6,141, 86, 2,137,
/* 0x0730 */ 85,232,106, 0,139,125, 28,141, 85, 24,139, 93, 32,141, 69, 32,
/* 0x0740 */ 86,232,251,250,255,255,139, 69, 12, 41, 93, 36,137,250,141, 93,
/* 0x0750 */ 240,255,117,232,137, 69, 32,139, 69, 40, 83,255,117,236,137, 69,
/* 0x0760 */ 240,141, 69, 32,141, 79, 52, 80,137,240,137, 77,228,232, 3,252,
/* 0x0770 */ 255,255,137,193,137, 69,224,139, 69,236,186, 9, 0, 0, 0,232,
/* 0x0780 */ 157,251,255,255,102,139, 79, 44,131,196, 24, 49,210,102,133,201,
/* 0x0790 */ 116,123,139, 69,228,131, 56, 3,117,103,139, 93,240, 49,201, 3,
/* 0x07a0 */ 88, 8,137,202,106, 5, 88,205,128,133,192,137,198,120, 21,186,
/* 0x07b0 */ 0, 2, 0, 0,137,195,137,249,106, 3, 88,205,128, 61, 0, 2,
/* 0x07c0 */ 0, 0,116, 10,106,127, 91,106, 1, 88,205,128,235,254,141, 69,
/* 0x07d0 */ 240,137,250,106, 0,137,243, 80,137,240,255,117,236,106, 0,232,
/* 0x07e0 */ 145,251,255,255,139, 77,240,137, 69,224,139, 69,236,186, 7, 0,
/* 0x07f0 */ 0, 0,232, 42,251,255,255,131,196, 16,106, 6, 88,205,128,235,
/* 0x0800 */ 12, 66, 15,183,193,131, 69,228, 32, 57,194,124,133,139, 69,224,
/* 0x0810 */ 141,101,244, 91, 94, 95,201,195
};
+122 -115
View File
@@ -1,5 +1,5 @@
/* mips.r3000-linux.elf-fold.h
created from mips.r3000-linux.elf-fold.bin, 2888 (0xb48) bytes
created from mips.r3000-linux.elf-fold.bin, 3008 (0xbc0) bytes
This file is part of the UPX executable compressor.
@@ -32,17 +32,17 @@
/* clang-format off */
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_SIZE 2888
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_ADLER32 0xc8837a85
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_CRC32 0xfcd07cc3
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_SIZE 3008
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_ADLER32 0xac0e8efe
#define STUB_MIPS_R3000_LINUX_ELF_FOLD_CRC32 0x1aaa775a
unsigned char stub_mips_r3000_linux_elf_fold[2888] = {
unsigned char stub_mips_r3000_linux_elf_fold[3008] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 2, 0, 8, 0, 0, 0, 1, 0, 16, 0,128, 0, 0, 0, 52,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 48, 1, 0, 52, 0, 32, 0, 2, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 0, 0,
/* 0x0040 */ 0, 16, 0, 0, 0, 0, 11, 72, 0, 0, 11, 80, 0, 0, 0, 5,
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 11, 72, 0, 0, 0, 0,
/* 0x0040 */ 0, 16, 0, 0, 0, 0, 11,192, 0, 0, 11,192, 0, 0, 0, 5,
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 1, 0, 0, 11,192, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 36, 2, 0, 0, 3,224, 0, 8, 0, 2, 18, 64, 0, 0, 0, 0,
@@ -60,7 +60,7 @@ unsigned char stub_mips_r3000_linux_elf_fold[2888] = {
/* 0x0140 */ 4,224, 0, 2, 0,162, 8, 33,160, 32, 0, 0, 39,189,254, 0,
/* 0x0150 */ 3,128, 88, 33, 2,160, 80, 33, 0, 0, 72, 33, 3,192, 64, 33,
/* 0x0160 */ 2,192, 56, 33, 3,160, 48, 33, 2, 32, 40, 33, 4, 16, 0, 1,
/* 0x0170 */ 36, 2, 1,116, 3,226, 16, 35, 36, 66, 9,176, 0, 64,248, 9,
/* 0x0170 */ 36, 2, 1,116, 3,226, 16, 35, 36, 66, 10, 40, 0, 64,248, 9,
/* 0x0180 */ 2, 0, 32, 33, 39,189, 2, 0, 0, 64,240, 33,142,165, 0,104,
/* 0x0190 */ 2,160, 32, 33, 36, 2, 15,205, 0, 0, 0, 12, 36, 2, 15,251,
/* 0x01a0 */ 0, 0, 0, 12,143,168, 0, 20, 0, 0, 72, 33, 5, 0, 0, 11,
@@ -111,111 +111,118 @@ unsigned char stub_mips_r3000_linux_elf_fold[2888] = {
/* 0x0470 */ 0, 98, 24, 33, 0,130, 32, 35,174, 3, 0, 4,174, 4, 0, 0,
/* 0x0480 */ 142, 2, 0, 0, 0, 0, 0, 0, 20, 64,255,172, 36, 6, 0, 12,
/* 0x0490 */ 143,191, 0, 32,143,179, 0, 28,143,178, 0, 24,143,177, 0, 20,
/* 0x04a0 */ 143,176, 0, 16, 3,224, 0, 8, 39,189, 0, 40, 16,128, 0, 8,
/* 0x04b0 */ 0, 0, 0, 0,140,130, 0, 0, 0, 0, 0, 0, 16, 69, 0, 3,
/* 0x04c0 */ 0, 0, 0, 0, 16, 0,255,251, 36,132, 0, 8,172,134, 0, 4,
/* 0x04d0 */ 3,224, 0, 8, 0, 0, 0, 0, 39,189,255,176,175,180, 0, 56,
/* 0x04e0 */ 175,177, 0, 44,175,191, 0, 76,175,190, 0, 72,175,183, 0, 68,
/* 0x04f0 */ 175,182, 0, 64,175,181, 0, 60,175,179, 0, 52,175,178, 0, 48,
/* 0x0500 */ 175,176, 0, 40,140,162, 0, 28, 0,160,160, 33, 0,162,136, 33,
/* 0x0510 */ 0, 10, 16, 39,175,166, 0, 24,175,164, 0, 20,175,167, 0, 28,
/* 0x0520 */ 175,168, 0, 32,175,169, 0, 36, 16,192, 0, 19,175,162, 0, 16,
/* 0x0530 */ 141, 6, 0, 0, 36, 2, 0, 2,148,195, 0, 16, 0, 0, 0, 0,
/* 0x0540 */ 20, 98, 0, 4, 36,197, 0, 52,140,164, 0, 8, 16, 0, 0, 5,
/* 0x0550 */ 0, 0,240, 33,140,162, 0, 40, 0, 0, 0, 0, 0,194,240, 35,
/* 0x0560 */ 3,192, 32, 33,140,165, 0, 20, 4, 17,255, 60, 36, 2, 15,251,
/* 0x0570 */ 16, 0, 0,218,175,160, 0, 12,148,162, 0, 16,148,163, 0, 44,
/* 0x0580 */ 56, 66, 0, 3, 0, 2, 16, 43, 0, 2, 57, 0, 36, 99,255,255,
/* 0x0590 */ 2, 32, 48, 33, 36, 8,255,255, 0, 0, 40, 33, 16, 0, 0, 19,
/* 0x05a0 */ 36, 9, 0, 1,140,194, 0, 0, 0, 0, 0, 0, 20, 73, 0, 14,
/* 0x05b0 */ 36, 99,255,255,140,196, 0, 8, 0, 0, 0, 0, 0,136, 16, 43,
/* 0x05c0 */ 16, 64, 0, 2, 0, 0, 0, 0, 0,128, 64, 33,140,194, 0, 20,
/* 0x05d0 */ 0, 0, 0, 0, 0,130, 32, 33, 0,164, 16, 43, 16, 64, 0, 2,
/* 0x05e0 */ 0, 0, 0, 0, 0,128, 40, 33, 36,198, 0, 32, 4, 97,255,237,
/* 0x05f0 */ 1, 72,128, 36, 0,176, 40, 35, 0,170, 40, 35, 36,165,255,255,
/* 0x0600 */ 1, 69, 40, 36, 52,231, 8, 2, 2, 0, 32, 33, 0, 0, 48, 33,
/* 0x0610 */ 36, 8,255,255, 4, 17,255, 10, 0, 0, 72, 33, 0, 80,240, 35,
/* 0x0620 */ 16, 0, 0,174,175,160, 0, 12,143,163, 0, 24, 0, 0, 0, 0,
/* 0x0630 */ 16, 96, 0, 12, 36, 2, 0, 6,142, 35, 0, 0, 0, 0, 0, 0,
/* 0x0640 */ 20, 98, 0, 10, 36, 2, 0, 1,142, 38, 0, 8,143,164, 0, 28,
/* 0x0650 */ 3,198, 48, 33, 4, 17,255,149, 36, 5, 0, 3, 16, 0, 0,155,
/* 0x0660 */ 0, 0, 0, 0,142, 35, 0, 0, 36, 2, 0, 1, 20, 98, 0,151,
/* 0x0670 */ 0, 0, 0, 0,142, 34, 0, 20, 0, 0, 0, 0, 16, 64, 0,147,
/* 0x0680 */ 0, 0, 0, 0,143,164, 0, 24, 0, 0, 0, 0, 16,128, 0, 19,
/* 0x0690 */ 0, 0, 0, 0,142, 34, 0, 4, 0, 0, 0, 0, 20, 64, 0, 15,
/* 0x06a0 */ 36, 5, 0, 3,142,130, 0, 28,142, 38, 0, 8,143,164, 0, 28,
/* 0x06b0 */ 0,194, 48, 33, 4, 17,255,125, 3,198, 48, 33,143,164, 0, 28,
/* 0x06c0 */ 150,134, 0, 44, 4, 17,255,121, 36, 5, 0, 5,143,164, 0, 28,
/* 0x06d0 */ 150,134, 0, 42, 4, 17,255,117, 36, 5, 0, 4,142, 34, 0, 8,
/* 0x06e0 */ 142, 35, 0, 24, 3,194,184, 33, 60, 2,115, 81, 0, 3, 24,128,
/* 0x06f0 */ 52, 66, 98, 64, 0, 98,128, 6,143,163, 0, 16,142, 36, 0, 16,
/* 0x0700 */ 2,227, 16, 36,175,164, 0, 0, 0,130,152, 33,143,163, 0, 24,
/* 0x0710 */ 142, 36, 0, 20,175,183, 0, 4, 50, 22, 0, 7,175,164, 0, 8,
/* 0x0720 */ 16, 96, 0, 22, 2,226,144, 35, 2, 64, 32, 33, 2, 96, 40, 33,
/* 0x0730 */ 36, 6, 0, 3, 36, 7, 8, 18, 36, 8,255,255, 4, 17,254,192,
/* 0x0740 */ 0, 0, 72, 33, 22, 66, 0, 75, 50, 2, 0, 4, 16, 64, 0, 4,
/* 0x0750 */ 0, 0, 0, 0,143,167, 0, 36, 16, 0, 0, 2, 0, 0, 0, 0,
/* 0x0760 */ 0, 0, 56, 33,143,164, 0, 24,143,166, 0, 20, 4, 17,254,232,
/* 0x0770 */ 3,160, 40, 33, 16, 0, 0, 11, 0, 0, 0, 0,142, 41, 0, 4,
/* 0x0780 */ 143,168, 0, 20, 2, 64, 32, 33, 1, 34, 72, 35, 2, 96, 40, 33,
/* 0x0790 */ 2,192, 48, 33, 4, 17,254,170, 36, 7, 0, 18, 22, 66, 0, 54,
/* 0x07a0 */ 36, 4, 0,127,143,164, 0, 16, 0, 19, 16, 35, 50,195, 0, 2,
/* 0x07b0 */ 16, 96, 0, 8, 0, 68,168, 36, 18,160, 0, 6, 2, 83, 24, 33,
/* 0x07c0 */ 2,160, 16, 33, 36, 66,255,255,160, 96, 0, 0, 20, 64,255,253,
/* 0x07d0 */ 36, 99, 0, 1,143,162, 0, 24, 0, 0, 0, 0, 16, 64, 0, 42,
/* 0x07e0 */ 36, 2, 0, 1,142, 35, 0, 0, 0, 0, 0, 0, 20, 98, 0, 28,
/* 0x07f0 */ 2, 64, 32, 33,142, 34, 0, 24, 0, 0, 0, 0, 48, 66, 0, 1,
/* 0x0800 */ 16, 64, 0, 24, 2, 96, 40, 33,142, 36, 0, 20,142, 34, 0, 16,
/* 0x0810 */ 142, 35, 0, 8, 20,130, 0, 61, 0,131, 16, 33, 0, 94, 24, 33,
/* 0x0820 */ 143,164, 0, 16, 0, 3, 16, 35, 0,130, 16, 36, 44, 66, 0, 12,
/* 0x0830 */ 20, 64, 0, 54, 36, 2,255,252, 36, 99, 0, 3, 0, 98,128, 36,
/* 0x0840 */ 36, 2, 0, 12,174, 2, 0, 0, 60, 2, 3,192, 52, 66, 0, 8,
/* 0x0850 */ 174, 2, 0, 4, 16, 0, 0, 66,174, 0, 0, 8, 2, 64, 32, 33,
/* 0x0860 */ 2, 96, 40, 33, 4, 17,254,130, 2,192, 48, 33, 16, 64, 0, 6,
/* 0x0870 */ 0, 0, 0, 0, 36, 4, 0,127, 4, 17,254,120, 36, 2, 15,161,
/* 0x0880 */ 16, 0,255,255, 0, 0, 0, 0,143,163, 0, 8, 2,117, 16, 33,
/* 0x0890 */ 2,227, 40, 33, 2, 66,128, 33, 2, 5, 16, 43, 16, 64, 0, 11,
/* 0x08a0 */ 0,176, 40, 35, 2,192, 48, 33, 2, 0, 32, 33, 36, 7, 8, 18,
/* 0x08b0 */ 36, 8,255,255, 4, 17,254, 98, 0, 0, 72, 33, 18, 2, 0, 3,
/* 0x08c0 */ 0, 0, 0, 0, 16, 0,255,255, 0, 0, 0, 0,143,164, 0, 12,
/* 0x08d0 */ 38, 49, 0, 32, 36,132, 0, 1,175,164, 0, 12,150,130, 0, 44,
/* 0x08e0 */ 143,163, 0, 12, 0, 0, 0, 0, 0, 98, 16, 42, 20, 64,255, 78,
/* 0x08f0 */ 0, 0, 0, 0,143,164, 0, 32, 0, 0, 0, 0, 16,128, 0, 30,
/* 0x0900 */ 0, 0, 0, 0, 16, 0, 0, 28,172,158, 0, 0, 0, 0, 32, 33,
/* 0x0910 */ 60, 5, 0, 1, 36, 6, 0, 3, 36, 7, 8, 2, 36, 8,255,255,
/* 0x0920 */ 4, 17,254, 71, 0, 0, 72, 33, 16, 64,255,204, 36, 67, 0, 3,
/* 0x0930 */ 36, 2,255,252, 0, 98,128, 36, 36, 2, 0, 12,174, 2, 0, 0,
/* 0x0940 */ 60, 2, 3,192, 52, 66, 0, 8,174, 2, 0, 4,174, 0, 0, 8,
/* 0x0950 */ 2, 0, 32, 33, 36, 5, 0, 12, 4, 17,254, 69, 36, 6, 0, 5,
/* 0x0960 */ 143,164, 0, 28, 2, 0, 48, 33, 4, 17,254,208, 0, 0, 40, 33,
/* 0x0970 */ 16, 0,255,187, 2, 64, 32, 33,142,130, 0, 24,143,191, 0, 76,
/* 0x0980 */ 3,194, 16, 33,143,183, 0, 68,143,190, 0, 72,143,182, 0, 64,
/* 0x0990 */ 143,181, 0, 60,143,180, 0, 56,143,179, 0, 52,143,178, 0, 48,
/* 0x09a0 */ 143,177, 0, 44,143,176, 0, 40, 3,224, 0, 8, 39,189, 0, 80,
/* 0x09b0 */ 39,189,255,192,175,191, 0, 56,175,181, 0, 52,175,180, 0, 48,
/* 0x09c0 */ 175,179, 0, 44,175,178, 0, 40,175,177, 0, 36,175,176, 0, 32,
/* 0x09d0 */ 140,130, 0, 4, 1, 0,144, 33,140,136, 0, 0, 0,128, 24, 33,
/* 0x09e0 */ 0,192,152, 33, 1, 96,168, 33, 0,224,160, 33, 1, 32,136, 33,
/* 0x09f0 */ 36, 66, 0, 12,175,165, 0, 12, 39,164, 0, 20, 39,165, 0, 4,
/* 0x0a00 */ 2, 64, 48, 33, 0, 0, 56, 33, 1, 64,128, 33,175,163, 0, 16,
/* 0x0a10 */ 175,163, 0, 24,175,168, 0, 4,175,162, 0, 20, 4, 17,254, 60,
/* 0x0a20 */ 175,179, 0, 8, 2, 32, 72, 33, 2, 64, 32, 33, 2, 96, 40, 33,
/* 0x0a30 */ 39,166, 0, 12, 2,128, 56, 33, 3,160, 64, 33, 2,160, 80, 33,
/* 0x0a40 */ 4, 17,254,165,175,176, 0, 0, 0, 64, 48, 33, 2,128, 32, 33,
/* 0x0a50 */ 36, 5, 0, 9, 4, 17,254,149, 0, 64,136, 33,150,102, 0, 44,
/* 0x0a60 */ 38,100, 0, 52, 16, 0, 0, 43, 0, 0, 40, 33,140,131, 0, 0,
/* 0x0a70 */ 36, 2, 0, 3, 20, 98, 0, 39, 36,132, 0, 32, 36,132,255,224,
/* 0x0a80 */ 140,130, 0, 8,143,164, 0, 0, 0, 0, 40, 33, 0, 68, 32, 33,
/* 0x0a90 */ 0, 0, 48, 33, 4, 17,253,241, 36, 2, 15,165, 4, 64, 0, 9,
/* 0x0aa0 */ 0, 64,128, 33, 0, 64, 32, 33, 2, 96, 40, 33, 36, 6, 2, 0,
/* 0x0ab0 */ 4, 17,253,234, 36, 2, 15,163, 36, 3, 2, 0, 16, 67, 0, 6,
/* 0x0ac0 */ 2,160, 80, 33, 36, 4, 0,127, 4, 17,253,228, 36, 2, 15,161,
/* 0x0ad0 */ 16, 0,255,255, 0, 0, 0, 0, 2,128, 56, 33, 3,160, 64, 33,
/* 0x0ae0 */ 0, 0, 72, 33, 4, 17,254,124, 0, 0, 48, 33,143,166, 0, 0,
/* 0x0af0 */ 2,128, 32, 33, 36, 5, 0, 7, 4, 17,254,108, 0, 64,136, 33,
/* 0x0b00 */ 2, 0, 32, 33, 4, 17,253,213, 36, 2, 15,166, 16, 0, 0, 5,
/* 0x0b10 */ 2, 32, 16, 33, 0,166, 16, 42, 20, 64,255,212, 36,165, 0, 1,
/* 0x0b20 */ 2, 32, 16, 33,143,191, 0, 56,143,181, 0, 52,143,180, 0, 48,
/* 0x0b30 */ 143,179, 0, 44,143,178, 0, 40,143,177, 0, 36,143,176, 0, 32,
/* 0x0b40 */ 3,224, 0, 8, 39,189, 0, 64
/* 0x04a0 */ 143,176, 0, 16, 3,224, 0, 8, 39,189, 0, 40, 39,189,255,248,
/* 0x04b0 */ 16,128, 0, 35,175,191, 0, 0, 48,130, 0, 1, 20, 64, 0, 32,
/* 0x04c0 */ 0, 0, 56, 33, 0, 0, 64, 33, 36, 9, 0, 1, 36, 2, 15,161,
/* 0x04d0 */ 140,131, 0, 0, 0, 0, 0, 0, 20,101, 0, 4, 0, 0, 0, 0,
/* 0x04e0 */ 37, 8, 0, 1, 16, 0, 0, 3,172,134, 0, 4, 16,105, 0, 17,
/* 0x04f0 */ 0, 0, 0, 0,140,131, 0, 0, 0, 0, 0, 0, 20, 96, 0, 14,
/* 0x0500 */ 0, 0, 0, 0, 21, 0, 0, 14, 0, 0, 0, 0, 16,224, 0, 4,
/* 0x0510 */ 0, 0, 0, 0,172,230, 0, 4, 16, 0, 0, 9,172,229, 0, 0,
/* 0x0520 */ 36, 4, 0,127, 4, 17,255, 77, 0, 0, 0, 0, 16, 0,255,255,
/* 0x0530 */ 0, 0, 0, 0, 0,128, 56, 33, 16, 0,255,229, 36,132, 0, 8,
/* 0x0540 */ 143,191, 0, 0, 0, 0, 0, 0, 3,224, 0, 8, 39,189, 0, 8,
/* 0x0550 */ 39,189,255,176,175,180, 0, 56,175,177, 0, 44,175,191, 0, 76,
/* 0x0560 */ 175,190, 0, 72,175,183, 0, 68,175,182, 0, 64,175,181, 0, 60,
/* 0x0570 */ 175,179, 0, 52,175,178, 0, 48,175,176, 0, 40,140,162, 0, 28,
/* 0x0580 */ 0,160,160, 33, 0,162,136, 33, 0, 10, 16, 39,175,166, 0, 24,
/* 0x0590 */ 175,164, 0, 20,175,167, 0, 28,175,168, 0, 32,175,169, 0, 36,
/* 0x05a0 */ 16,192, 0, 19,175,162, 0, 16,141, 6, 0, 0, 36, 2, 0, 2,
/* 0x05b0 */ 148,195, 0, 16, 0, 0, 0, 0, 20, 98, 0, 4, 36,197, 0, 52,
/* 0x05c0 */ 140,164, 0, 8, 16, 0, 0, 5, 0, 0,240, 33,140,162, 0, 40,
/* 0x05d0 */ 0, 0, 0, 0, 0,194,240, 35, 3,192, 32, 33,140,165, 0, 20,
/* 0x05e0 */ 4, 17,255, 30, 36, 2, 15,251, 16, 0, 0,218,175,160, 0, 12,
/* 0x05f0 */ 148,162, 0, 16,148,163, 0, 44, 56, 66, 0, 3, 0, 2, 16, 43,
/* 0x0600 */ 0, 2, 57, 0, 36, 99,255,255, 2, 32, 48, 33, 36, 8,255,255,
/* 0x0610 */ 0, 0, 40, 33, 16, 0, 0, 19, 36, 9, 0, 1,140,194, 0, 0,
/* 0x0620 */ 0, 0, 0, 0, 20, 73, 0, 14, 36, 99,255,255,140,196, 0, 8,
/* 0x0630 */ 0, 0, 0, 0, 0,136, 16, 43, 16, 64, 0, 2, 0, 0, 0, 0,
/* 0x0640 */ 0,128, 64, 33,140,194, 0, 20, 0, 0, 0, 0, 0,130, 32, 33,
/* 0x0650 */ 0,164, 16, 43, 16, 64, 0, 2, 0, 0, 0, 0, 0,128, 40, 33,
/* 0x0660 */ 36,198, 0, 32, 4, 97,255,237, 1, 72,128, 36, 0,176, 40, 35,
/* 0x0670 */ 0,170, 40, 35, 36,165,255,255, 1, 69, 40, 36, 52,231, 8, 2,
/* 0x0680 */ 2, 0, 32, 33, 0, 0, 48, 33, 36, 8,255,255, 4, 17,254,236,
/* 0x0690 */ 0, 0, 72, 33, 0, 80,240, 35, 16, 0, 0,174,175,160, 0, 12,
/* 0x06a0 */ 143,163, 0, 24, 0, 0, 0, 0, 16, 96, 0, 12, 36, 2, 0, 6,
/* 0x06b0 */ 142, 35, 0, 0, 0, 0, 0, 0, 20, 98, 0, 10, 36, 2, 0, 1,
/* 0x06c0 */ 142, 38, 0, 8,143,164, 0, 28, 3,198, 48, 33, 4, 17,255,119,
/* 0x06d0 */ 36, 5, 0, 3, 16, 0, 0,155, 0, 0, 0, 0,142, 35, 0, 0,
/* 0x06e0 */ 36, 2, 0, 1, 20, 98, 0,151, 0, 0, 0, 0,142, 34, 0, 20,
/* 0x06f0 */ 0, 0, 0, 0, 16, 64, 0,147, 0, 0, 0, 0,143,164, 0, 24,
/* 0x0700 */ 0, 0, 0, 0, 16,128, 0, 19, 0, 0, 0, 0,142, 34, 0, 4,
/* 0x0710 */ 0, 0, 0, 0, 20, 64, 0, 15, 36, 5, 0, 3,142,130, 0, 28,
/* 0x0720 */ 142, 38, 0, 8,143,164, 0, 28, 0,194, 48, 33, 4, 17,255, 95,
/* 0x0730 */ 3,198, 48, 33,143,164, 0, 28,150,134, 0, 44, 4, 17,255, 91,
/* 0x0740 */ 36, 5, 0, 5,143,164, 0, 28,150,134, 0, 42, 4, 17,255, 87,
/* 0x0750 */ 36, 5, 0, 4,142, 34, 0, 8,142, 35, 0, 24, 3,194,184, 33,
/* 0x0760 */ 60, 2,115, 81, 0, 3, 24,128, 52, 66, 98, 64, 0, 98,128, 6,
/* 0x0770 */ 143,163, 0, 16,142, 36, 0, 16, 2,227, 16, 36,175,164, 0, 0,
/* 0x0780 */ 0,130,152, 33,143,163, 0, 24,142, 36, 0, 20,175,183, 0, 4,
/* 0x0790 */ 50, 22, 0, 7,175,164, 0, 8, 16, 96, 0, 22, 2,226,144, 35,
/* 0x07a0 */ 2, 64, 32, 33, 2, 96, 40, 33, 36, 6, 0, 3, 36, 7, 8, 18,
/* 0x07b0 */ 36, 8,255,255, 4, 17,254,162, 0, 0, 72, 33, 22, 66, 0, 75,
/* 0x07c0 */ 50, 2, 0, 4, 16, 64, 0, 4, 0, 0, 0, 0,143,167, 0, 36,
/* 0x07d0 */ 16, 0, 0, 2, 0, 0, 0, 0, 0, 0, 56, 33,143,164, 0, 24,
/* 0x07e0 */ 143,166, 0, 20, 4, 17,254,202, 3,160, 40, 33, 16, 0, 0, 11,
/* 0x07f0 */ 0, 0, 0, 0,142, 41, 0, 4,143,168, 0, 20, 2, 64, 32, 33,
/* 0x0800 */ 1, 34, 72, 35, 2, 96, 40, 33, 2,192, 48, 33, 4, 17,254,140,
/* 0x0810 */ 36, 7, 0, 18, 22, 66, 0, 54, 36, 4, 0,127,143,164, 0, 16,
/* 0x0820 */ 0, 19, 16, 35, 50,195, 0, 2, 16, 96, 0, 8, 0, 68,168, 36,
/* 0x0830 */ 18,160, 0, 6, 2, 83, 24, 33, 2,160, 16, 33, 36, 66,255,255,
/* 0x0840 */ 160, 96, 0, 0, 20, 64,255,253, 36, 99, 0, 1,143,162, 0, 24,
/* 0x0850 */ 0, 0, 0, 0, 16, 64, 0, 42, 36, 2, 0, 1,142, 35, 0, 0,
/* 0x0860 */ 0, 0, 0, 0, 20, 98, 0, 28, 2, 64, 32, 33,142, 34, 0, 24,
/* 0x0870 */ 0, 0, 0, 0, 48, 66, 0, 1, 16, 64, 0, 24, 2, 96, 40, 33,
/* 0x0880 */ 142, 36, 0, 20,142, 34, 0, 16,142, 35, 0, 8, 20,130, 0, 61,
/* 0x0890 */ 0,131, 16, 33, 0, 94, 24, 33,143,164, 0, 16, 0, 3, 16, 35,
/* 0x08a0 */ 0,130, 16, 36, 44, 66, 0, 12, 20, 64, 0, 54, 36, 2,255,252,
/* 0x08b0 */ 36, 99, 0, 3, 0, 98,128, 36, 36, 2, 0, 12,174, 2, 0, 0,
/* 0x08c0 */ 60, 2, 3,192, 52, 66, 0, 8,174, 2, 0, 4, 16, 0, 0, 66,
/* 0x08d0 */ 174, 0, 0, 8, 2, 64, 32, 33, 2, 96, 40, 33, 4, 17,254,100,
/* 0x08e0 */ 2,192, 48, 33, 16, 64, 0, 6, 0, 0, 0, 0, 36, 4, 0,127,
/* 0x08f0 */ 4, 17,254, 90, 36, 2, 15,161, 16, 0,255,255, 0, 0, 0, 0,
/* 0x0900 */ 143,163, 0, 8, 2,117, 16, 33, 2,227, 40, 33, 2, 66,128, 33,
/* 0x0910 */ 2, 5, 16, 43, 16, 64, 0, 11, 0,176, 40, 35, 2,192, 48, 33,
/* 0x0920 */ 2, 0, 32, 33, 36, 7, 8, 18, 36, 8,255,255, 4, 17,254, 68,
/* 0x0930 */ 0, 0, 72, 33, 18, 2, 0, 3, 0, 0, 0, 0, 16, 0,255,255,
/* 0x0940 */ 0, 0, 0, 0,143,164, 0, 12, 38, 49, 0, 32, 36,132, 0, 1,
/* 0x0950 */ 175,164, 0, 12,150,130, 0, 44,143,163, 0, 12, 0, 0, 0, 0,
/* 0x0960 */ 0, 98, 16, 42, 20, 64,255, 78, 0, 0, 0, 0,143,164, 0, 32,
/* 0x0970 */ 0, 0, 0, 0, 16,128, 0, 30, 0, 0, 0, 0, 16, 0, 0, 28,
/* 0x0980 */ 172,158, 0, 0, 0, 0, 32, 33, 60, 5, 0, 1, 36, 6, 0, 3,
/* 0x0990 */ 36, 7, 8, 2, 36, 8,255,255, 4, 17,254, 41, 0, 0, 72, 33,
/* 0x09a0 */ 16, 64,255,204, 36, 67, 0, 3, 36, 2,255,252, 0, 98,128, 36,
/* 0x09b0 */ 36, 2, 0, 12,174, 2, 0, 0, 60, 2, 3,192, 52, 66, 0, 8,
/* 0x09c0 */ 174, 2, 0, 4,174, 0, 0, 8, 2, 0, 32, 33, 36, 5, 0, 12,
/* 0x09d0 */ 4, 17,254, 39, 36, 6, 0, 5,143,164, 0, 28, 2, 0, 48, 33,
/* 0x09e0 */ 4, 17,254,178, 0, 0, 40, 33, 16, 0,255,187, 2, 64, 32, 33,
/* 0x09f0 */ 142,130, 0, 24,143,191, 0, 76, 3,194, 16, 33,143,183, 0, 68,
/* 0x0a00 */ 143,190, 0, 72,143,182, 0, 64,143,181, 0, 60,143,180, 0, 56,
/* 0x0a10 */ 143,179, 0, 52,143,178, 0, 48,143,177, 0, 44,143,176, 0, 40,
/* 0x0a20 */ 3,224, 0, 8, 39,189, 0, 80, 39,189,255,192,175,191, 0, 56,
/* 0x0a30 */ 175,181, 0, 52,175,180, 0, 48,175,179, 0, 44,175,178, 0, 40,
/* 0x0a40 */ 175,177, 0, 36,175,176, 0, 32,140,130, 0, 4, 1, 0,144, 33,
/* 0x0a50 */ 140,136, 0, 0, 0,128, 24, 33, 0,192,152, 33, 1, 96,168, 33,
/* 0x0a60 */ 0,224,160, 33, 1, 32,136, 33, 36, 66, 0, 12,175,165, 0, 12,
/* 0x0a70 */ 39,164, 0, 20, 39,165, 0, 4, 2, 64, 48, 33, 0, 0, 56, 33,
/* 0x0a80 */ 1, 64,128, 33,175,163, 0, 16,175,163, 0, 24,175,168, 0, 4,
/* 0x0a90 */ 175,162, 0, 20, 4, 17,254, 30,175,179, 0, 8, 2, 32, 72, 33,
/* 0x0aa0 */ 2, 64, 32, 33, 2, 96, 40, 33, 39,166, 0, 12, 2,128, 56, 33,
/* 0x0ab0 */ 3,160, 64, 33, 2,160, 80, 33, 4, 17,254,165,175,176, 0, 0,
/* 0x0ac0 */ 0, 64, 48, 33, 2,128, 32, 33, 36, 5, 0, 9, 4, 17,254,119,
/* 0x0ad0 */ 0, 64,136, 33,150,102, 0, 44, 38,100, 0, 52, 16, 0, 0, 43,
/* 0x0ae0 */ 0, 0, 40, 33,140,131, 0, 0, 36, 2, 0, 3, 20, 98, 0, 39,
/* 0x0af0 */ 36,132, 0, 32, 36,132,255,224,140,130, 0, 8,143,164, 0, 0,
/* 0x0b00 */ 0, 0, 40, 33, 0, 68, 32, 33, 0, 0, 48, 33, 4, 17,253,211,
/* 0x0b10 */ 36, 2, 15,165, 4, 64, 0, 9, 0, 64,128, 33, 0, 64, 32, 33,
/* 0x0b20 */ 2, 96, 40, 33, 36, 6, 2, 0, 4, 17,253,204, 36, 2, 15,163,
/* 0x0b30 */ 36, 3, 2, 0, 16, 67, 0, 6, 2,160, 80, 33, 36, 4, 0,127,
/* 0x0b40 */ 4, 17,253,198, 36, 2, 15,161, 16, 0,255,255, 0, 0, 0, 0,
/* 0x0b50 */ 2,128, 56, 33, 3,160, 64, 33, 0, 0, 72, 33, 4, 17,254,124,
/* 0x0b60 */ 0, 0, 48, 33,143,166, 0, 0, 2,128, 32, 33, 36, 5, 0, 7,
/* 0x0b70 */ 4, 17,254, 78, 0, 64,136, 33, 2, 0, 32, 33, 4, 17,253,183,
/* 0x0b80 */ 36, 2, 15,166, 16, 0, 0, 5, 2, 32, 16, 33, 0,166, 16, 42,
/* 0x0b90 */ 20, 64,255,212, 36,165, 0, 1, 2, 32, 16, 33,143,191, 0, 56,
/* 0x0ba0 */ 143,181, 0, 52,143,180, 0, 48,143,179, 0, 44,143,178, 0, 40,
/* 0x0bb0 */ 143,177, 0, 36,143,176, 0, 32, 3,224, 0, 8, 39,189, 0, 64
};
+122 -115
View File
@@ -1,5 +1,5 @@
/* mipsel.r3000-linux.elf-fold.h
created from mipsel.r3000-linux.elf-fold.bin, 2888 (0xb48) bytes
created from mipsel.r3000-linux.elf-fold.bin, 3008 (0xbc0) bytes
This file is part of the UPX executable compressor.
@@ -32,17 +32,17 @@
/* clang-format off */
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_SIZE 2888
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x26f97a84
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0x4fb9fe36
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_SIZE 3008
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_ADLER32 0x01738efd
#define STUB_MIPSEL_R3000_LINUX_ELF_FOLD_CRC32 0x93ef93d8
unsigned char stub_mipsel_r3000_linux_elf_fold[2888] = {
unsigned char stub_mipsel_r3000_linux_elf_fold[3008] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 8, 0, 1, 0, 0, 0,128, 0, 16, 0, 52, 0, 0, 0,
/* 0x0020 */ 0, 0, 0, 0, 1, 48, 0, 0, 52, 0, 32, 0, 2, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0,
/* 0x0040 */ 0, 0, 16, 0, 72, 11, 0, 0, 80, 11, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0, 72, 11, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 0, 16, 0,192, 11, 0, 0,192, 11, 0, 0, 5, 0, 0, 0,
/* 0x0050 */ 0, 16, 0, 0, 1, 0, 0, 0,192, 11, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 0, 0, 2, 36, 8, 0,224, 3, 64, 18, 2, 0, 0, 0, 0, 0,
@@ -60,7 +60,7 @@ unsigned char stub_mipsel_r3000_linux_elf_fold[2888] = {
/* 0x0140 */ 2, 0,224, 4, 33, 8,162, 0, 0, 0, 32,160, 0,254,189, 39,
/* 0x0150 */ 33, 88,128, 3, 33, 80,160, 2, 33, 72, 0, 0, 33, 64,192, 3,
/* 0x0160 */ 33, 56,192, 2, 33, 48,160, 3, 33, 40, 32, 2, 1, 0, 16, 4,
/* 0x0170 */ 116, 1, 2, 36, 35, 16,226, 3,176, 9, 66, 36, 9,248, 64, 0,
/* 0x0170 */ 116, 1, 2, 36, 35, 16,226, 3, 40, 10, 66, 36, 9,248, 64, 0,
/* 0x0180 */ 33, 32, 0, 2, 0, 2,189, 39, 33,240, 64, 0,104, 0,165,142,
/* 0x0190 */ 33, 32,160, 2,205, 15, 2, 36, 12, 0, 0, 0,251, 15, 2, 36,
/* 0x01a0 */ 12, 0, 0, 0, 20, 0,168,143, 33, 72, 0, 0, 11, 0, 0, 5,
@@ -111,111 +111,118 @@ unsigned char stub_mipsel_r3000_linux_elf_fold[2888] = {
/* 0x0470 */ 33, 24, 98, 0, 35, 32,130, 0, 4, 0, 3,174, 0, 0, 4,174,
/* 0x0480 */ 0, 0, 2,142, 0, 0, 0, 0,172,255, 64, 20, 12, 0, 6, 36,
/* 0x0490 */ 32, 0,191,143, 28, 0,179,143, 24, 0,178,143, 20, 0,177,143,
/* 0x04a0 */ 16, 0,176,143, 8, 0,224, 3, 40, 0,189, 39, 8, 0,128, 16,
/* 0x04b0 */ 0, 0, 0, 0, 0, 0,130,140, 0, 0, 0, 0, 3, 0, 69, 16,
/* 0x04c0 */ 0, 0, 0, 0,251,255, 0, 16, 8, 0,132, 36, 4, 0,134,172,
/* 0x04d0 */ 8, 0,224, 3, 0, 0, 0, 0,176,255,189, 39, 56, 0,180,175,
/* 0x04e0 */ 44, 0,177,175, 76, 0,191,175, 72, 0,190,175, 68, 0,183,175,
/* 0x04f0 */ 64, 0,182,175, 60, 0,181,175, 52, 0,179,175, 48, 0,178,175,
/* 0x0500 */ 40, 0,176,175, 28, 0,162,140, 33,160,160, 0, 33,136,162, 0,
/* 0x0510 */ 39, 16, 10, 0, 24, 0,166,175, 20, 0,164,175, 28, 0,167,175,
/* 0x0520 */ 32, 0,168,175, 36, 0,169,175, 19, 0,192, 16, 16, 0,162,175,
/* 0x0530 */ 0, 0, 6,141, 2, 0, 2, 36, 16, 0,195,148, 0, 0, 0, 0,
/* 0x0540 */ 4, 0, 98, 20, 52, 0,197, 36, 8, 0,164,140, 5, 0, 0, 16,
/* 0x0550 */ 33,240, 0, 0, 40, 0,162,140, 0, 0, 0, 0, 35,240,194, 0,
/* 0x0560 */ 33, 32,192, 3, 20, 0,165,140, 60,255, 17, 4,251, 15, 2, 36,
/* 0x0570 */ 218, 0, 0, 16, 12, 0,160,175, 16, 0,162,148, 44, 0,163,148,
/* 0x0580 */ 3, 0, 66, 56, 43, 16, 2, 0, 0, 57, 2, 0,255,255, 99, 36,
/* 0x0590 */ 33, 48, 32, 2,255,255, 8, 36, 33, 40, 0, 0, 19, 0, 0, 16,
/* 0x05a0 */ 1, 0, 9, 36, 0, 0,194,140, 0, 0, 0, 0, 14, 0, 73, 20,
/* 0x05b0 */ 255,255, 99, 36, 8, 0,196,140, 0, 0, 0, 0, 43, 16,136, 0,
/* 0x05c0 */ 2, 0, 64, 16, 0, 0, 0, 0, 33, 64,128, 0, 20, 0,194,140,
/* 0x05d0 */ 0, 0, 0, 0, 33, 32,130, 0, 43, 16,164, 0, 2, 0, 64, 16,
/* 0x05e0 */ 0, 0, 0, 0, 33, 40,128, 0, 32, 0,198, 36,237,255, 97, 4,
/* 0x05f0 */ 36,128, 72, 1, 35, 40,176, 0, 35, 40,170, 0,255,255,165, 36,
/* 0x0600 */ 36, 40, 69, 1, 2, 8,231, 52, 33, 32, 0, 2, 33, 48, 0, 0,
/* 0x0610 */ 255,255, 8, 36, 10,255, 17, 4, 33, 72, 0, 0, 35,240, 80, 0,
/* 0x0620 */ 174, 0, 0, 16, 12, 0,160,175, 24, 0,163,143, 0, 0, 0, 0,
/* 0x0630 */ 12, 0, 96, 16, 6, 0, 2, 36, 0, 0, 35,142, 0, 0, 0, 0,
/* 0x0640 */ 10, 0, 98, 20, 1, 0, 2, 36, 8, 0, 38,142, 28, 0,164,143,
/* 0x0650 */ 33, 48,198, 3,149,255, 17, 4, 3, 0, 5, 36,155, 0, 0, 16,
/* 0x0660 */ 0, 0, 0, 0, 0, 0, 35,142, 1, 0, 2, 36,151, 0, 98, 20,
/* 0x0670 */ 0, 0, 0, 0, 20, 0, 34,142, 0, 0, 0, 0,147, 0, 64, 16,
/* 0x0680 */ 0, 0, 0, 0, 24, 0,164,143, 0, 0, 0, 0, 19, 0,128, 16,
/* 0x0690 */ 0, 0, 0, 0, 4, 0, 34,142, 0, 0, 0, 0, 15, 0, 64, 20,
/* 0x06a0 */ 3, 0, 5, 36, 28, 0,130,142, 8, 0, 38,142, 28, 0,164,143,
/* 0x06b0 */ 33, 48,194, 0,125,255, 17, 4, 33, 48,198, 3, 28, 0,164,143,
/* 0x06c0 */ 44, 0,134,150,121,255, 17, 4, 5, 0, 5, 36, 28, 0,164,143,
/* 0x06d0 */ 42, 0,134,150,117,255, 17, 4, 4, 0, 5, 36, 8, 0, 34,142,
/* 0x06e0 */ 24, 0, 35,142, 33,184,194, 3, 81,115, 2, 60,128, 24, 3, 0,
/* 0x06f0 */ 64, 98, 66, 52, 6,128, 98, 0, 16, 0,163,143, 16, 0, 36,142,
/* 0x0700 */ 36, 16,227, 2, 0, 0,164,175, 33,152,130, 0, 24, 0,163,143,
/* 0x0710 */ 20, 0, 36,142, 4, 0,183,175, 7, 0, 22, 50, 8, 0,164,175,
/* 0x0720 */ 22, 0, 96, 16, 35,144,226, 2, 33, 32, 64, 2, 33, 40, 96, 2,
/* 0x0730 */ 3, 0, 6, 36, 18, 8, 7, 36,255,255, 8, 36,192,254, 17, 4,
/* 0x0740 */ 33, 72, 0, 0, 75, 0, 66, 22, 4, 0, 2, 50, 4, 0, 64, 16,
/* 0x0750 */ 0, 0, 0, 0, 36, 0,167,143, 2, 0, 0, 16, 0, 0, 0, 0,
/* 0x0760 */ 33, 56, 0, 0, 24, 0,164,143, 20, 0,166,143,232,254, 17, 4,
/* 0x0770 */ 33, 40,160, 3, 11, 0, 0, 16, 0, 0, 0, 0, 4, 0, 41,142,
/* 0x0780 */ 20, 0,168,143, 33, 32, 64, 2, 35, 72, 34, 1, 33, 40, 96, 2,
/* 0x0790 */ 33, 48,192, 2,170,254, 17, 4, 18, 0, 7, 36, 54, 0, 66, 22,
/* 0x07a0 */ 127, 0, 4, 36, 16, 0,164,143, 35, 16, 19, 0, 2, 0,195, 50,
/* 0x07b0 */ 8, 0, 96, 16, 36,168, 68, 0, 6, 0,160, 18, 33, 24, 83, 2,
/* 0x07c0 */ 33, 16,160, 2,255,255, 66, 36, 0, 0, 96,160,253,255, 64, 20,
/* 0x07d0 */ 1, 0, 99, 36, 24, 0,162,143, 0, 0, 0, 0, 42, 0, 64, 16,
/* 0x07e0 */ 1, 0, 2, 36, 0, 0, 35,142, 0, 0, 0, 0, 28, 0, 98, 20,
/* 0x07f0 */ 33, 32, 64, 2, 24, 0, 34,142, 0, 0, 0, 0, 1, 0, 66, 48,
/* 0x0800 */ 24, 0, 64, 16, 33, 40, 96, 2, 20, 0, 36,142, 16, 0, 34,142,
/* 0x0810 */ 8, 0, 35,142, 61, 0,130, 20, 33, 16,131, 0, 33, 24, 94, 0,
/* 0x0820 */ 16, 0,164,143, 35, 16, 3, 0, 36, 16,130, 0, 12, 0, 66, 44,
/* 0x0830 */ 54, 0, 64, 20,252,255, 2, 36, 3, 0, 99, 36, 36,128, 98, 0,
/* 0x0840 */ 12, 0, 2, 36, 0, 0, 2,174,192, 3, 2, 60, 8, 0, 66, 52,
/* 0x0850 */ 4, 0, 2,174, 66, 0, 0, 16, 8, 0, 0,174, 33, 32, 64, 2,
/* 0x0860 */ 33, 40, 96, 2,130,254, 17, 4, 33, 48,192, 2, 6, 0, 64, 16,
/* 0x0870 */ 0, 0, 0, 0,127, 0, 4, 36,120,254, 17, 4,161, 15, 2, 36,
/* 0x0880 */ 255,255, 0, 16, 0, 0, 0, 0, 8, 0,163,143, 33, 16,117, 2,
/* 0x0890 */ 33, 40,227, 2, 33,128, 66, 2, 43, 16, 5, 2, 11, 0, 64, 16,
/* 0x08a0 */ 35, 40,176, 0, 33, 48,192, 2, 33, 32, 0, 2, 18, 8, 7, 36,
/* 0x08b0 */ 255,255, 8, 36, 98,254, 17, 4, 33, 72, 0, 0, 3, 0, 2, 18,
/* 0x08c0 */ 0, 0, 0, 0,255,255, 0, 16, 0, 0, 0, 0, 12, 0,164,143,
/* 0x08d0 */ 32, 0, 49, 38, 1, 0,132, 36, 12, 0,164,175, 44, 0,130,150,
/* 0x08e0 */ 12, 0,163,143, 0, 0, 0, 0, 42, 16, 98, 0, 78,255, 64, 20,
/* 0x08f0 */ 0, 0, 0, 0, 32, 0,164,143, 0, 0, 0, 0, 30, 0,128, 16,
/* 0x0900 */ 0, 0, 0, 0, 28, 0, 0, 16, 0, 0,158,172, 33, 32, 0, 0,
/* 0x0910 */ 1, 0, 5, 60, 3, 0, 6, 36, 2, 8, 7, 36,255,255, 8, 36,
/* 0x0920 */ 71,254, 17, 4, 33, 72, 0, 0,204,255, 64, 16, 3, 0, 67, 36,
/* 0x0930 */ 252,255, 2, 36, 36,128, 98, 0, 12, 0, 2, 36, 0, 0, 2,174,
/* 0x0940 */ 192, 3, 2, 60, 8, 0, 66, 52, 4, 0, 2,174, 8, 0, 0,174,
/* 0x0950 */ 33, 32, 0, 2, 12, 0, 5, 36, 69,254, 17, 4, 5, 0, 6, 36,
/* 0x0960 */ 28, 0,164,143, 33, 48, 0, 2,208,254, 17, 4, 33, 40, 0, 0,
/* 0x0970 */ 187,255, 0, 16, 33, 32, 64, 2, 24, 0,130,142, 76, 0,191,143,
/* 0x0980 */ 33, 16,194, 3, 68, 0,183,143, 72, 0,190,143, 64, 0,182,143,
/* 0x0990 */ 60, 0,181,143, 56, 0,180,143, 52, 0,179,143, 48, 0,178,143,
/* 0x09a0 */ 44, 0,177,143, 40, 0,176,143, 8, 0,224, 3, 80, 0,189, 39,
/* 0x09b0 */ 192,255,189, 39, 56, 0,191,175, 52, 0,181,175, 48, 0,180,175,
/* 0x09c0 */ 44, 0,179,175, 40, 0,178,175, 36, 0,177,175, 32, 0,176,175,
/* 0x09d0 */ 4, 0,130,140, 33,144, 0, 1, 0, 0,136,140, 33, 24,128, 0,
/* 0x09e0 */ 33,152,192, 0, 33,168, 96, 1, 33,160,224, 0, 33,136, 32, 1,
/* 0x09f0 */ 12, 0, 66, 36, 12, 0,165,175, 20, 0,164, 39, 4, 0,165, 39,
/* 0x0a00 */ 33, 48, 64, 2, 33, 56, 0, 0, 33,128, 64, 1, 16, 0,163,175,
/* 0x0a10 */ 24, 0,163,175, 4, 0,168,175, 20, 0,162,175, 60,254, 17, 4,
/* 0x0a20 */ 8, 0,179,175, 33, 72, 32, 2, 33, 32, 64, 2, 33, 40, 96, 2,
/* 0x0a30 */ 12, 0,166, 39, 33, 56,128, 2, 33, 64,160, 3, 33, 80,160, 2,
/* 0x0a40 */ 165,254, 17, 4, 0, 0,176,175, 33, 48, 64, 0, 33, 32,128, 2,
/* 0x0a50 */ 9, 0, 5, 36,149,254, 17, 4, 33,136, 64, 0, 44, 0,102,150,
/* 0x0a60 */ 52, 0,100, 38, 43, 0, 0, 16, 33, 40, 0, 0, 0, 0,131,140,
/* 0x0a70 */ 3, 0, 2, 36, 39, 0, 98, 20, 32, 0,132, 36,224,255,132, 36,
/* 0x0a80 */ 8, 0,130,140, 0, 0,164,143, 33, 40, 0, 0, 33, 32, 68, 0,
/* 0x0a90 */ 33, 48, 0, 0,241,253, 17, 4,165, 15, 2, 36, 9, 0, 64, 4,
/* 0x0aa0 */ 33,128, 64, 0, 33, 32, 64, 0, 33, 40, 96, 2, 0, 2, 6, 36,
/* 0x0ab0 */ 234,253, 17, 4,163, 15, 2, 36, 0, 2, 3, 36, 6, 0, 67, 16,
/* 0x0ac0 */ 33, 80,160, 2,127, 0, 4, 36,228,253, 17, 4,161, 15, 2, 36,
/* 0x0ad0 */ 255,255, 0, 16, 0, 0, 0, 0, 33, 56,128, 2, 33, 64,160, 3,
/* 0x0ae0 */ 33, 72, 0, 0,124,254, 17, 4, 33, 48, 0, 0, 0, 0,166,143,
/* 0x0af0 */ 33, 32,128, 2, 7, 0, 5, 36,108,254, 17, 4, 33,136, 64, 0,
/* 0x0b00 */ 33, 32, 0, 2,213,253, 17, 4,166, 15, 2, 36, 5, 0, 0, 16,
/* 0x0b10 */ 33, 16, 32, 2, 42, 16,166, 0,212,255, 64, 20, 1, 0,165, 36,
/* 0x0b20 */ 33, 16, 32, 2, 56, 0,191,143, 52, 0,181,143, 48, 0,180,143,
/* 0x0b30 */ 44, 0,179,143, 40, 0,178,143, 36, 0,177,143, 32, 0,176,143,
/* 0x0b40 */ 8, 0,224, 3, 64, 0,189, 39
/* 0x04a0 */ 16, 0,176,143, 8, 0,224, 3, 40, 0,189, 39,248,255,189, 39,
/* 0x04b0 */ 35, 0,128, 16, 0, 0,191,175, 1, 0,130, 48, 32, 0, 64, 20,
/* 0x04c0 */ 33, 56, 0, 0, 33, 64, 0, 0, 1, 0, 9, 36,161, 15, 2, 36,
/* 0x04d0 */ 0, 0,131,140, 0, 0, 0, 0, 4, 0,101, 20, 0, 0, 0, 0,
/* 0x04e0 */ 1, 0, 8, 37, 3, 0, 0, 16, 4, 0,134,172, 17, 0,105, 16,
/* 0x04f0 */ 0, 0, 0, 0, 0, 0,131,140, 0, 0, 0, 0, 14, 0, 96, 20,
/* 0x0500 */ 0, 0, 0, 0, 14, 0, 0, 21, 0, 0, 0, 0, 4, 0,224, 16,
/* 0x0510 */ 0, 0, 0, 0, 4, 0,230,172, 9, 0, 0, 16, 0, 0,229,172,
/* 0x0520 */ 127, 0, 4, 36, 77,255, 17, 4, 0, 0, 0, 0,255,255, 0, 16,
/* 0x0530 */ 0, 0, 0, 0, 33, 56,128, 0,229,255, 0, 16, 8, 0,132, 36,
/* 0x0540 */ 0, 0,191,143, 0, 0, 0, 0, 8, 0,224, 3, 8, 0,189, 39,
/* 0x0550 */ 176,255,189, 39, 56, 0,180,175, 44, 0,177,175, 76, 0,191,175,
/* 0x0560 */ 72, 0,190,175, 68, 0,183,175, 64, 0,182,175, 60, 0,181,175,
/* 0x0570 */ 52, 0,179,175, 48, 0,178,175, 40, 0,176,175, 28, 0,162,140,
/* 0x0580 */ 33,160,160, 0, 33,136,162, 0, 39, 16, 10, 0, 24, 0,166,175,
/* 0x0590 */ 20, 0,164,175, 28, 0,167,175, 32, 0,168,175, 36, 0,169,175,
/* 0x05a0 */ 19, 0,192, 16, 16, 0,162,175, 0, 0, 6,141, 2, 0, 2, 36,
/* 0x05b0 */ 16, 0,195,148, 0, 0, 0, 0, 4, 0, 98, 20, 52, 0,197, 36,
/* 0x05c0 */ 8, 0,164,140, 5, 0, 0, 16, 33,240, 0, 0, 40, 0,162,140,
/* 0x05d0 */ 0, 0, 0, 0, 35,240,194, 0, 33, 32,192, 3, 20, 0,165,140,
/* 0x05e0 */ 30,255, 17, 4,251, 15, 2, 36,218, 0, 0, 16, 12, 0,160,175,
/* 0x05f0 */ 16, 0,162,148, 44, 0,163,148, 3, 0, 66, 56, 43, 16, 2, 0,
/* 0x0600 */ 0, 57, 2, 0,255,255, 99, 36, 33, 48, 32, 2,255,255, 8, 36,
/* 0x0610 */ 33, 40, 0, 0, 19, 0, 0, 16, 1, 0, 9, 36, 0, 0,194,140,
/* 0x0620 */ 0, 0, 0, 0, 14, 0, 73, 20,255,255, 99, 36, 8, 0,196,140,
/* 0x0630 */ 0, 0, 0, 0, 43, 16,136, 0, 2, 0, 64, 16, 0, 0, 0, 0,
/* 0x0640 */ 33, 64,128, 0, 20, 0,194,140, 0, 0, 0, 0, 33, 32,130, 0,
/* 0x0650 */ 43, 16,164, 0, 2, 0, 64, 16, 0, 0, 0, 0, 33, 40,128, 0,
/* 0x0660 */ 32, 0,198, 36,237,255, 97, 4, 36,128, 72, 1, 35, 40,176, 0,
/* 0x0670 */ 35, 40,170, 0,255,255,165, 36, 36, 40, 69, 1, 2, 8,231, 52,
/* 0x0680 */ 33, 32, 0, 2, 33, 48, 0, 0,255,255, 8, 36,236,254, 17, 4,
/* 0x0690 */ 33, 72, 0, 0, 35,240, 80, 0,174, 0, 0, 16, 12, 0,160,175,
/* 0x06a0 */ 24, 0,163,143, 0, 0, 0, 0, 12, 0, 96, 16, 6, 0, 2, 36,
/* 0x06b0 */ 0, 0, 35,142, 0, 0, 0, 0, 10, 0, 98, 20, 1, 0, 2, 36,
/* 0x06c0 */ 8, 0, 38,142, 28, 0,164,143, 33, 48,198, 3,119,255, 17, 4,
/* 0x06d0 */ 3, 0, 5, 36,155, 0, 0, 16, 0, 0, 0, 0, 0, 0, 35,142,
/* 0x06e0 */ 1, 0, 2, 36,151, 0, 98, 20, 0, 0, 0, 0, 20, 0, 34,142,
/* 0x06f0 */ 0, 0, 0, 0,147, 0, 64, 16, 0, 0, 0, 0, 24, 0,164,143,
/* 0x0700 */ 0, 0, 0, 0, 19, 0,128, 16, 0, 0, 0, 0, 4, 0, 34,142,
/* 0x0710 */ 0, 0, 0, 0, 15, 0, 64, 20, 3, 0, 5, 36, 28, 0,130,142,
/* 0x0720 */ 8, 0, 38,142, 28, 0,164,143, 33, 48,194, 0, 95,255, 17, 4,
/* 0x0730 */ 33, 48,198, 3, 28, 0,164,143, 44, 0,134,150, 91,255, 17, 4,
/* 0x0740 */ 5, 0, 5, 36, 28, 0,164,143, 42, 0,134,150, 87,255, 17, 4,
/* 0x0750 */ 4, 0, 5, 36, 8, 0, 34,142, 24, 0, 35,142, 33,184,194, 3,
/* 0x0760 */ 81,115, 2, 60,128, 24, 3, 0, 64, 98, 66, 52, 6,128, 98, 0,
/* 0x0770 */ 16, 0,163,143, 16, 0, 36,142, 36, 16,227, 2, 0, 0,164,175,
/* 0x0780 */ 33,152,130, 0, 24, 0,163,143, 20, 0, 36,142, 4, 0,183,175,
/* 0x0790 */ 7, 0, 22, 50, 8, 0,164,175, 22, 0, 96, 16, 35,144,226, 2,
/* 0x07a0 */ 33, 32, 64, 2, 33, 40, 96, 2, 3, 0, 6, 36, 18, 8, 7, 36,
/* 0x07b0 */ 255,255, 8, 36,162,254, 17, 4, 33, 72, 0, 0, 75, 0, 66, 22,
/* 0x07c0 */ 4, 0, 2, 50, 4, 0, 64, 16, 0, 0, 0, 0, 36, 0,167,143,
/* 0x07d0 */ 2, 0, 0, 16, 0, 0, 0, 0, 33, 56, 0, 0, 24, 0,164,143,
/* 0x07e0 */ 20, 0,166,143,202,254, 17, 4, 33, 40,160, 3, 11, 0, 0, 16,
/* 0x07f0 */ 0, 0, 0, 0, 4, 0, 41,142, 20, 0,168,143, 33, 32, 64, 2,
/* 0x0800 */ 35, 72, 34, 1, 33, 40, 96, 2, 33, 48,192, 2,140,254, 17, 4,
/* 0x0810 */ 18, 0, 7, 36, 54, 0, 66, 22,127, 0, 4, 36, 16, 0,164,143,
/* 0x0820 */ 35, 16, 19, 0, 2, 0,195, 50, 8, 0, 96, 16, 36,168, 68, 0,
/* 0x0830 */ 6, 0,160, 18, 33, 24, 83, 2, 33, 16,160, 2,255,255, 66, 36,
/* 0x0840 */ 0, 0, 96,160,253,255, 64, 20, 1, 0, 99, 36, 24, 0,162,143,
/* 0x0850 */ 0, 0, 0, 0, 42, 0, 64, 16, 1, 0, 2, 36, 0, 0, 35,142,
/* 0x0860 */ 0, 0, 0, 0, 28, 0, 98, 20, 33, 32, 64, 2, 24, 0, 34,142,
/* 0x0870 */ 0, 0, 0, 0, 1, 0, 66, 48, 24, 0, 64, 16, 33, 40, 96, 2,
/* 0x0880 */ 20, 0, 36,142, 16, 0, 34,142, 8, 0, 35,142, 61, 0,130, 20,
/* 0x0890 */ 33, 16,131, 0, 33, 24, 94, 0, 16, 0,164,143, 35, 16, 3, 0,
/* 0x08a0 */ 36, 16,130, 0, 12, 0, 66, 44, 54, 0, 64, 20,252,255, 2, 36,
/* 0x08b0 */ 3, 0, 99, 36, 36,128, 98, 0, 12, 0, 2, 36, 0, 0, 2,174,
/* 0x08c0 */ 192, 3, 2, 60, 8, 0, 66, 52, 4, 0, 2,174, 66, 0, 0, 16,
/* 0x08d0 */ 8, 0, 0,174, 33, 32, 64, 2, 33, 40, 96, 2,100,254, 17, 4,
/* 0x08e0 */ 33, 48,192, 2, 6, 0, 64, 16, 0, 0, 0, 0,127, 0, 4, 36,
/* 0x08f0 */ 90,254, 17, 4,161, 15, 2, 36,255,255, 0, 16, 0, 0, 0, 0,
/* 0x0900 */ 8, 0,163,143, 33, 16,117, 2, 33, 40,227, 2, 33,128, 66, 2,
/* 0x0910 */ 43, 16, 5, 2, 11, 0, 64, 16, 35, 40,176, 0, 33, 48,192, 2,
/* 0x0920 */ 33, 32, 0, 2, 18, 8, 7, 36,255,255, 8, 36, 68,254, 17, 4,
/* 0x0930 */ 33, 72, 0, 0, 3, 0, 2, 18, 0, 0, 0, 0,255,255, 0, 16,
/* 0x0940 */ 0, 0, 0, 0, 12, 0,164,143, 32, 0, 49, 38, 1, 0,132, 36,
/* 0x0950 */ 12, 0,164,175, 44, 0,130,150, 12, 0,163,143, 0, 0, 0, 0,
/* 0x0960 */ 42, 16, 98, 0, 78,255, 64, 20, 0, 0, 0, 0, 32, 0,164,143,
/* 0x0970 */ 0, 0, 0, 0, 30, 0,128, 16, 0, 0, 0, 0, 28, 0, 0, 16,
/* 0x0980 */ 0, 0,158,172, 33, 32, 0, 0, 1, 0, 5, 60, 3, 0, 6, 36,
/* 0x0990 */ 2, 8, 7, 36,255,255, 8, 36, 41,254, 17, 4, 33, 72, 0, 0,
/* 0x09a0 */ 204,255, 64, 16, 3, 0, 67, 36,252,255, 2, 36, 36,128, 98, 0,
/* 0x09b0 */ 12, 0, 2, 36, 0, 0, 2,174,192, 3, 2, 60, 8, 0, 66, 52,
/* 0x09c0 */ 4, 0, 2,174, 8, 0, 0,174, 33, 32, 0, 2, 12, 0, 5, 36,
/* 0x09d0 */ 39,254, 17, 4, 5, 0, 6, 36, 28, 0,164,143, 33, 48, 0, 2,
/* 0x09e0 */ 178,254, 17, 4, 33, 40, 0, 0,187,255, 0, 16, 33, 32, 64, 2,
/* 0x09f0 */ 24, 0,130,142, 76, 0,191,143, 33, 16,194, 3, 68, 0,183,143,
/* 0x0a00 */ 72, 0,190,143, 64, 0,182,143, 60, 0,181,143, 56, 0,180,143,
/* 0x0a10 */ 52, 0,179,143, 48, 0,178,143, 44, 0,177,143, 40, 0,176,143,
/* 0x0a20 */ 8, 0,224, 3, 80, 0,189, 39,192,255,189, 39, 56, 0,191,175,
/* 0x0a30 */ 52, 0,181,175, 48, 0,180,175, 44, 0,179,175, 40, 0,178,175,
/* 0x0a40 */ 36, 0,177,175, 32, 0,176,175, 4, 0,130,140, 33,144, 0, 1,
/* 0x0a50 */ 0, 0,136,140, 33, 24,128, 0, 33,152,192, 0, 33,168, 96, 1,
/* 0x0a60 */ 33,160,224, 0, 33,136, 32, 1, 12, 0, 66, 36, 12, 0,165,175,
/* 0x0a70 */ 20, 0,164, 39, 4, 0,165, 39, 33, 48, 64, 2, 33, 56, 0, 0,
/* 0x0a80 */ 33,128, 64, 1, 16, 0,163,175, 24, 0,163,175, 4, 0,168,175,
/* 0x0a90 */ 20, 0,162,175, 30,254, 17, 4, 8, 0,179,175, 33, 72, 32, 2,
/* 0x0aa0 */ 33, 32, 64, 2, 33, 40, 96, 2, 12, 0,166, 39, 33, 56,128, 2,
/* 0x0ab0 */ 33, 64,160, 3, 33, 80,160, 2,165,254, 17, 4, 0, 0,176,175,
/* 0x0ac0 */ 33, 48, 64, 0, 33, 32,128, 2, 9, 0, 5, 36,119,254, 17, 4,
/* 0x0ad0 */ 33,136, 64, 0, 44, 0,102,150, 52, 0,100, 38, 43, 0, 0, 16,
/* 0x0ae0 */ 33, 40, 0, 0, 0, 0,131,140, 3, 0, 2, 36, 39, 0, 98, 20,
/* 0x0af0 */ 32, 0,132, 36,224,255,132, 36, 8, 0,130,140, 0, 0,164,143,
/* 0x0b00 */ 33, 40, 0, 0, 33, 32, 68, 0, 33, 48, 0, 0,211,253, 17, 4,
/* 0x0b10 */ 165, 15, 2, 36, 9, 0, 64, 4, 33,128, 64, 0, 33, 32, 64, 0,
/* 0x0b20 */ 33, 40, 96, 2, 0, 2, 6, 36,204,253, 17, 4,163, 15, 2, 36,
/* 0x0b30 */ 0, 2, 3, 36, 6, 0, 67, 16, 33, 80,160, 2,127, 0, 4, 36,
/* 0x0b40 */ 198,253, 17, 4,161, 15, 2, 36,255,255, 0, 16, 0, 0, 0, 0,
/* 0x0b50 */ 33, 56,128, 2, 33, 64,160, 3, 33, 72, 0, 0,124,254, 17, 4,
/* 0x0b60 */ 33, 48, 0, 0, 0, 0,166,143, 33, 32,128, 2, 7, 0, 5, 36,
/* 0x0b70 */ 78,254, 17, 4, 33,136, 64, 0, 33, 32, 0, 2,183,253, 17, 4,
/* 0x0b80 */ 166, 15, 2, 36, 5, 0, 0, 16, 33, 16, 32, 2, 42, 16,166, 0,
/* 0x0b90 */ 212,255, 64, 20, 1, 0,165, 36, 33, 16, 32, 2, 56, 0,191,143,
/* 0x0ba0 */ 52, 0,181,143, 48, 0,180,143, 44, 0,179,143, 40, 0,178,143,
/* 0x0bb0 */ 36, 0,177,143, 32, 0,176,143, 8, 0,224, 3, 64, 0,189, 39
};
+159 -157
View File
@@ -1,5 +1,5 @@
/* powerpc-linux.elf-fold.h
created from powerpc-linux.elf-fold.bin, 4432 (0x1150) bytes
created from powerpc-linux.elf-fold.bin, 4460 (0x116c) bytes
This file is part of the UPX executable compressor.
@@ -32,17 +32,17 @@
/* clang-format off */
#define STUB_POWERPC_LINUX_ELF_FOLD_SIZE 4432
#define STUB_POWERPC_LINUX_ELF_FOLD_ADLER32 0x89648b8c
#define STUB_POWERPC_LINUX_ELF_FOLD_CRC32 0x4b5e47d4
#define STUB_POWERPC_LINUX_ELF_FOLD_SIZE 4460
#define STUB_POWERPC_LINUX_ELF_FOLD_ADLER32 0x746888bd
#define STUB_POWERPC_LINUX_ELF_FOLD_CRC32 0x75a30434
unsigned char stub_powerpc_linux_elf_fold[4432] = {
unsigned char stub_powerpc_linux_elf_fold[4460] = {
/* 0x0000 */ 127, 69, 76, 70, 1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 2, 0, 20, 0, 0, 0, 1, 0, 16, 0,128, 0, 0, 0, 52,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 52, 0, 32, 0, 2, 0, 0,
/* 0x0030 */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 0, 0,
/* 0x0040 */ 0, 16, 0, 0, 0, 0, 17, 80, 0, 0, 17, 80, 0, 0, 0, 5,
/* 0x0050 */ 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 17, 80, 0, 0, 0, 0,
/* 0x0040 */ 0, 16, 0, 0, 0, 0, 17,108, 0, 0, 17,108, 0, 0, 0, 5,
/* 0x0050 */ 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 17,108, 0, 0, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 56, 96,255,248, 84, 99, 72, 44, 78,128, 0, 32, 96, 0, 0, 0,
@@ -70,7 +70,7 @@ unsigned char stub_powerpc_linux_elf_fold[4432] = {
/* 0x01e0 */ 132, 4,255,252,127,132, 8, 64,148, 3,255,252, 65,157,255,244,
/* 0x01f0 */ 124, 97, 27,120,148, 33,247,240,127, 3,195,120,126,228,187,120,
/* 0x0200 */ 56,161, 0, 16,127, 70,211,120,127,231,251,120,126,200,179,120,
/* 0x0210 */ 127, 41,203,120, 72, 0, 13, 61, 56, 33, 8, 16,124,127, 27,120,
/* 0x0210 */ 127, 41,203,120, 72, 0, 13, 89, 56, 33, 8, 16,124,127, 27,120,
/* 0x0220 */ 128,153, 0,104,127, 35,203,120, 72, 0, 0,161,127, 35,203,120,
/* 0x0230 */ 72, 0, 0,209, 57, 0, 0, 0,127,103,219,120, 44, 7, 0, 0,
/* 0x0240 */ 65,128, 0, 32, 56,192, 0, 2, 56,160, 0, 1,124,158, 0,208,
@@ -165,153 +165,155 @@ unsigned char stub_powerpc_linux_elf_fold[4432] = {
/* 0x07d0 */ 56, 0, 0, 0,152, 11, 0, 0, 57, 41, 0, 1,145, 63, 0, 8,
/* 0x07e0 */ 129, 63, 0, 12, 56, 9,255,255,144, 31, 0, 12, 47,128, 0, 0,
/* 0x07f0 */ 65,158, 0, 8, 75,255,255,212,129, 97, 0, 0,131,235,255,252,
/* 0x0800 */ 125, 97, 91,120, 78,128, 0, 32,148, 33,255,224,147,225, 0, 28,
/* 0x0810 */ 124, 63, 11,120,144,127, 0, 8,144,159, 0, 12, 56, 0, 0, 0,
/* 0x0820 */ 144, 31, 0, 16,128, 31, 0, 8, 47,128, 0, 0, 65,158, 0, 76,
/* 0x0830 */ 129, 63, 0, 8,129, 41, 0, 0,128, 31, 0, 12,127,137, 0, 0,
/* 0x0840 */ 64,158, 0, 16,128, 31, 0, 8,144, 31, 0, 20, 72, 0, 0, 52,
/* 0x0850 */ 129, 63, 0, 8,128, 9, 0, 0, 47,128, 0, 1, 64,158, 0, 12,
/* 0x0860 */ 128, 31, 0, 8,144, 31, 0, 16,129, 63, 0, 8, 56, 9, 0, 8,
/* 0x0870 */ 144, 31, 0, 8, 75,255,255,188, 56, 0, 0, 0,144, 31, 0, 20,
/* 0x0880 */ 128,127, 0, 20,129, 97, 0, 0,131,235,255,252,125, 97, 91,120,
/* 0x0890 */ 78,128, 0, 32,148, 33,255,224,124, 8, 2,166,147,225, 0, 28,
/* 0x08a0 */ 144, 1, 0, 36,124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,
/* 0x08b0 */ 144,191, 0, 16,128,127, 0, 8,128,159, 0, 12, 75,255,255, 77,
/* 0x08c0 */ 124, 96, 27,120,144, 31, 0, 8,128, 31, 0, 8, 47,128, 0, 0,
/* 0x08d0 */ 65,158, 0, 16,129, 63, 0, 8,128, 31, 0, 16,144, 9, 0, 4,
/* 0x08e0 */ 129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,131,235,255,252,
/* 0x08f0 */ 125, 97, 91,120, 78,128, 0, 32,148, 33,255,208,124, 8, 2,166,
/* 0x0900 */ 147,225, 0, 44,144, 1, 0, 52,124, 63, 11,120,144,127, 0, 8,
/* 0x0910 */ 144,159, 0, 12,144,191, 0, 16,144,223, 0, 20, 75,255,247,101,
/* 0x0920 */ 124, 96, 27,120,144, 31, 0, 24, 56, 0,255,255,144, 31, 0, 28,
/* 0x0930 */ 56, 0, 0, 0,144, 31, 0, 32, 56, 0, 0, 0,144, 31, 0, 36,
/* 0x0940 */ 129, 63, 0, 16, 56, 9,255,255,144, 31, 0, 16, 47,128, 0, 0,
/* 0x0950 */ 65,156, 0,124,129, 63, 0, 12,128, 9, 0, 0, 47,128, 0, 1,
/* 0x0960 */ 64,158, 0, 92,129, 63, 0, 12,129, 41, 0, 8,128, 31, 0, 28,
/* 0x0970 */ 127,137, 0, 64, 64,156, 0, 16,129, 63, 0, 12,128, 9, 0, 8,
/* 0x0980 */ 144, 31, 0, 28,129, 63, 0, 12,129,127, 0, 12,129, 41, 0, 20,
/* 0x0990 */ 128, 11, 0, 8,125, 41, 2, 20,128, 31, 0, 32,127,137, 0, 64,
/* 0x09a0 */ 64,157, 0, 28,129, 63, 0, 12,129,127, 0, 12,129, 41, 0, 20,
/* 0x09b0 */ 128, 11, 0, 8,124, 9, 2, 20,144, 31, 0, 32,129, 63, 0, 12,
/* 0x09c0 */ 56, 9, 0, 32,144, 31, 0, 12, 75,255,255,120,129, 63, 0, 28,
/* 0x09d0 */ 128, 31, 0, 24,125, 32, 0, 56,144, 31, 0, 28,129, 63, 0, 32,
/* 0x09e0 */ 128, 31, 0, 28,125, 32, 72, 80,128, 31, 0, 24,125, 32, 72, 80,
/* 0x09f0 */ 57, 41,255,255,128, 31, 0, 24,125, 32, 0, 56,144, 31, 0, 32,
/* 0x0a00 */ 128, 31, 0, 8, 96, 0, 0, 34,128,127, 0, 28,128,159, 0, 32,
/* 0x0a10 */ 56,160, 0, 0,124, 6, 3,120, 56,224,255,255, 57, 0, 0, 0,
/* 0x0a20 */ 75,255,248,141,144,127, 0, 36,129,127, 0, 20,129, 63, 0, 32,
/* 0x0a30 */ 128, 31, 0, 36,124, 9, 2, 20,144, 11, 0, 0,129, 63, 0, 36,
/* 0x0a40 */ 128, 31, 0, 28,124, 0, 72, 80,124, 3, 3,120,129, 97, 0, 0,
/* 0x0a50 */ 128, 11, 0, 4,124, 8, 3,166,131,235,255,252,125, 97, 91,120,
/* 0x0a60 */ 78,128, 0, 32,148, 33,255,144,124, 8, 2,166,147,225, 0,108,
/* 0x0a70 */ 144, 1, 0,116,124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,
/* 0x0a80 */ 144,191, 0, 16,144,223, 0, 20,144,255, 0, 24,145, 31, 0, 28,
/* 0x0a90 */ 75,255,245,241,124, 96, 27,120,124, 0, 0,248,144, 31, 0, 32,
/* 0x0aa0 */ 129, 63, 0, 12,129, 41, 0, 28,128, 31, 0, 12,124, 9, 2, 20,
/* 0x0ab0 */ 144, 31, 0, 36,128, 31, 0, 16, 47,128, 0, 0, 65,158, 0,144,
/* 0x0ac0 */ 129, 63, 0, 24,128, 9, 0, 0,144, 31, 0, 48,129, 63, 0, 48,
/* 0x0ad0 */ 56, 9, 0, 52,144, 31, 0, 52,129, 63, 0, 48,160, 9, 0, 16,
/* 0x0ae0 */ 84, 0, 4, 62, 47,128, 0, 2, 64,158, 0, 28,129, 63, 0, 52,
/* 0x0af0 */ 128, 9, 0, 8,144, 31, 0, 48, 56, 0, 0, 0,144, 31, 0, 44,
/* 0x0b00 */ 72, 0, 0, 36,129, 63, 0, 52, 57, 41, 0, 32,129,127, 0, 48,
/* 0x0b10 */ 128, 9, 0, 8,124, 0, 88, 80,144, 31, 0, 48,128, 31, 0, 48,
/* 0x0b20 */ 144, 31, 0, 44,129, 63, 0, 52,129, 41, 0, 20,128, 31, 0, 48,
/* 0x0b30 */ 124, 9, 2, 20,144, 31, 0, 40,129, 63, 0, 52,128,127, 0, 48,
/* 0x0b40 */ 128,137, 0, 20, 75,255,247,189, 72, 0, 0, 84,129, 63, 0, 12,
/* 0x0b50 */ 160, 9, 0, 16, 84, 0, 4, 62, 47,128, 0, 3, 65,158, 0, 16,
/* 0x0b60 */ 56, 0, 0, 16,144, 31, 0, 84, 72, 0, 0, 12, 56, 0, 0, 0,
/* 0x0b70 */ 144, 31, 0, 84,129, 63, 0, 12,160, 9, 0, 44, 84, 0, 4, 62,
/* 0x0b80 */ 57, 63, 0, 40,128,127, 0, 84,128,159, 0, 36,124, 5, 3,120,
/* 0x0b90 */ 125, 38, 75,120, 75,255,253,101,144,127, 0, 44, 56, 0, 0, 0,
/* 0x0ba0 */ 144, 31, 0, 52,129, 63, 0, 12,160, 9, 0, 44, 84, 9, 4, 62,
/* 0x0bb0 */ 128, 31, 0, 52,127,137, 0, 0, 64,157, 3, 84,128, 31, 0, 16,
/* 0x0bc0 */ 47,128, 0, 0, 65,158, 0, 56,129, 63, 0, 36,128, 9, 0, 0,
/* 0x0bd0 */ 47,128, 0, 6, 64,158, 0, 40,129, 63, 0, 36,129, 41, 0, 8,
/* 0x0be0 */ 128, 31, 0, 44,124, 9, 2, 20,128,127, 0, 20, 56,128, 0, 3,
/* 0x0bf0 */ 124, 5, 3,120, 75,255,252,161, 72, 0, 2,248,129, 63, 0, 36,
/* 0x0c00 */ 128, 9, 0, 0, 47,128, 0, 1, 64,158, 2,232,129, 63, 0, 36,
/* 0x0c10 */ 128, 9, 0, 20, 47,128, 0, 0, 65,158, 2,216,128, 31, 0, 16,
/* 0x0c20 */ 47,128, 0, 0, 65,158, 0,120,129, 63, 0, 36,128, 9, 0, 4,
/* 0x0c30 */ 47,128, 0, 0, 64,158, 0,104,129, 63, 0, 36,129, 41, 0, 8,
/* 0x0c40 */ 128, 31, 0, 44,125,105, 2, 20,129, 63, 0, 12,128, 9, 0, 28,
/* 0x0c50 */ 124, 11, 2, 20,128,127, 0, 20, 56,128, 0, 3,124, 5, 3,120,
/* 0x0c60 */ 75,255,252, 53,129, 63, 0, 12,160, 9, 0, 44, 84, 0, 4, 62,
/* 0x0c70 */ 128,127, 0, 20, 56,128, 0, 5,124, 5, 3,120, 75,255,252, 25,
/* 0x0c80 */ 129, 63, 0, 12,160, 9, 0, 42, 84, 0, 4, 62,128,127, 0, 20,
/* 0x0c90 */ 56,128, 0, 4,124, 5, 3,120, 75,255,251,253,129, 63, 0, 36,
/* 0x0ca0 */ 128, 9, 0, 24, 84, 0, 7,126, 84, 9, 16, 58, 60, 0,115, 81,
/* 0x0cb0 */ 96, 0, 98, 64,124, 0, 76, 48, 84, 0, 7,126,144, 31, 0, 48,
/* 0x0cc0 */ 129, 63, 0, 36,128, 9, 0, 16,144, 31, 0, 56,144, 31, 0, 64,
/* 0x0cd0 */ 129, 63, 0, 36,129, 41, 0, 8,128, 31, 0, 44,124, 9, 2, 20,
/* 0x0ce0 */ 144, 31, 0, 60,144, 31, 0, 68,129, 63, 0, 36,129, 41, 0, 20,
/* 0x0cf0 */ 128, 31, 0, 68,124, 9, 2, 20,144, 31, 0, 72,129, 63, 0, 68,
/* 0x0d00 */ 128, 31, 0, 32,125, 32, 0, 56,144, 31, 0, 76,129, 63, 0, 64,
/* 0x0d10 */ 128, 31, 0, 76,124, 9, 2, 20,144, 31, 0, 64,129, 63, 0, 68,
/* 0x0d20 */ 128, 31, 0, 76,124, 0, 72, 80,144, 31, 0, 68,128, 31, 0, 16,
/* 0x0d30 */ 47,128, 0, 0, 65,158, 0,120,128,127, 0, 68,128,159, 0, 64,
/* 0x0d40 */ 56,160, 0, 3, 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0,
/* 0x0d50 */ 75,255,245, 93,124, 96, 27,120,129, 63, 0, 68,127,128, 72, 0,
/* 0x0d60 */ 65,158, 0, 8, 72, 0, 1, 32, 56, 31, 0, 56,144, 31, 0, 88,
/* 0x0d70 */ 128, 31, 0, 48, 84, 0, 7,122, 47,128, 0, 0, 65,158, 0, 16,
/* 0x0d80 */ 128, 31, 0, 28,144, 31, 0, 92, 72, 0, 0, 12, 56, 0, 0, 0,
/* 0x0d90 */ 144, 31, 0, 92,128,127, 0, 16,128,159, 0, 88,128,191, 0, 8,
/* 0x0da0 */ 128,223, 0, 92, 75,255,246, 85, 72, 0, 0, 68,129, 63, 0, 36,
/* 0x0db0 */ 129, 41, 0, 4,128, 31, 0, 76,124, 0, 72, 80,128,127, 0, 68,
/* 0x0dc0 */ 128,159, 0, 64,128,191, 0, 48, 56,192, 0, 18,128,255, 0, 8,
/* 0x0dd0 */ 124, 8, 3,120, 75,255,244,217,124,105, 27,120,128, 31, 0, 68,
/* 0x0de0 */ 127,137, 0, 0, 65,158, 0, 8, 72, 0, 0,156,128, 31, 0, 64,
/* 0x0df0 */ 125, 32, 0,208,128, 31, 0, 32,125, 32, 0, 56,144, 31, 0, 76,
/* 0x0e00 */ 128, 31, 0, 48, 84, 0, 7,188, 47,128, 0, 0, 65,158, 0, 28,
/* 0x0e10 */ 128, 31, 0, 68,129, 63, 0, 64,124, 0, 74, 20,124, 3, 3,120,
/* 0x0e20 */ 128,159, 0, 76, 75,255,249,133,128, 31, 0, 16, 47,128, 0, 0,
/* 0x0e30 */ 65,158, 0, 92,128,127, 0, 36,128,159, 0, 44,128,191, 0, 32,
/* 0x0e40 */ 75,255,247,229,124, 96, 27,120,144, 31, 0, 80,128, 31, 0, 80,
/* 0x0e50 */ 47,128, 0, 0, 65,158, 0, 20,128,127, 0, 20, 56,128, 0, 0,
/* 0x0e60 */ 128,191, 0, 80, 75,255,250, 49,128,127, 0, 68,128,159, 0, 64,
/* 0x0e70 */ 128,191, 0, 48, 75,255,244, 37,124, 96, 27,120, 47,128, 0, 0,
/* 0x0e80 */ 65,158, 0, 12, 56, 96, 0,127, 75,255,244, 57,129, 63, 0, 64,
/* 0x0e90 */ 128, 31, 0, 76,125, 41, 2, 20,128, 31, 0, 68,124, 0, 74, 20,
/* 0x0ea0 */ 144, 31, 0, 68,129, 63, 0, 68,128, 31, 0, 72,127,137, 0, 64,
/* 0x0eb0 */ 64,156, 0, 64,129, 63, 0, 72,128, 31, 0, 68,124, 0, 72, 80,
/* 0x0ec0 */ 128,127, 0, 68,124, 4, 3,120,128,191, 0, 48, 56,192, 0, 50,
/* 0x0ed0 */ 56,224,255,255, 57, 0, 0, 0, 75,255,243,213,124,105, 27,120,
/* 0x0ee0 */ 128, 31, 0, 68,127,137, 0, 0, 65,158, 0, 8, 72, 0, 0, 0,
/* 0x0ef0 */ 129, 63, 0, 36, 56, 9, 0, 32,144, 31, 0, 36,129, 63, 0, 52,
/* 0x0f00 */ 56, 9, 0, 1,144, 31, 0, 52, 75,255,252,156,128, 31, 0, 24,
/* 0x0f10 */ 47,128, 0, 0, 65,158, 0, 16,129, 63, 0, 24,128, 31, 0, 44,
/* 0x0f20 */ 144, 9, 0, 0,129, 63, 0, 12,129, 41, 0, 24,128, 31, 0, 44,
/* 0x0f30 */ 124, 9, 2, 20,124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,
/* 0x0f40 */ 124, 8, 3,166,131,235,255,252,125, 97, 91,120, 78,128, 0, 32,
/* 0x0f50 */ 148, 33,255,160,124, 8, 2,166,147,225, 0, 92,144, 1, 0,100,
/* 0x0f60 */ 124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,
/* 0x0f70 */ 144,223, 0, 20,144,255, 0, 24,145, 31, 0, 28,145, 63, 0, 32,
/* 0x0f80 */ 129, 63, 0, 8,129, 41, 0, 4, 56, 9, 0, 12,144, 31, 0, 36,
/* 0x0f90 */ 128, 31, 0, 16,144, 31, 0, 44,129, 63, 0, 8,128, 9, 0, 0,
/* 0x0fa0 */ 144, 31, 0, 40,128, 31, 0, 8,144, 31, 0, 52,128, 31, 0, 12,
/* 0x0fb0 */ 144, 31, 0, 48, 56, 31, 0, 48, 57, 63, 0, 40,124, 3, 3,120,
/* 0x0fc0 */ 125, 36, 75,120,128,191, 0, 24, 56,192, 0, 0, 75,255,244, 45,
/* 0x0fd0 */ 129, 63, 0, 52,128, 31, 0, 36,124, 0, 72, 80,144, 31, 0, 52,
/* 0x0fe0 */ 128, 31, 0, 12,144, 31, 0, 48,128, 31, 0, 32,144, 31, 0, 56,
/* 0x0ff0 */ 129, 63, 0, 16, 56, 9, 0, 52,144, 31, 0, 60, 56, 31, 0, 48,
/* 0x1000 */ 57, 63, 0, 56,128,127, 0, 24,128,159, 0, 16,124, 5, 3,120,
/* 0x1010 */ 128,223, 0, 20,125, 39, 75,120,129, 31, 0, 28, 75,255,250, 73,
/* 0x1020 */ 124, 96, 27,120,144, 31, 0, 64,128,127, 0, 20, 56,128, 0, 9,
/* 0x1030 */ 128,191, 0, 64, 75,255,248, 97, 56, 0, 0, 0,144, 31, 0, 68,
/* 0x1040 */ 129, 63, 0, 16, 56, 9, 0, 52,144, 31, 0, 60,129, 63, 0, 16,
/* 0x1050 */ 160, 9, 0, 44, 84, 9, 4, 62,128, 31, 0, 68,127,137, 0, 0,
/* 0x1060 */ 64,157, 0,208,129, 63, 0, 60,128, 9, 0, 0, 47,128, 0, 3,
/* 0x1070 */ 64,158, 0,164,129, 63, 0, 60,129, 41, 0, 8,128, 31, 0, 56,
/* 0x1080 */ 124, 9, 2, 20,124, 3, 3,120, 56,128, 0, 0, 56,160, 0, 0,
/* 0x1090 */ 75,255,242, 89,124, 96, 27,120,144, 31, 0, 72,128, 31, 0, 72,
/* 0x10a0 */ 47,128, 0, 0, 64,156, 0, 8, 72, 0, 0, 32,128,127, 0, 72,
/* 0x10b0 */ 128,159, 0, 16, 56,160, 2, 0, 75,255,242, 41,124, 96, 27,120,
/* 0x10c0 */ 47,128, 2, 0, 65,158, 0, 12, 56, 96, 0,127, 75,255,241,245,
/* 0x10d0 */ 56, 31, 0, 56,128,127, 0, 72,128,159, 0, 16, 56,160, 0, 0,
/* 0x10e0 */ 128,223, 0, 20,124, 7, 3,120, 57, 0, 0, 0, 75,255,249,121,
/* 0x10f0 */ 124, 96, 27,120,144, 31, 0, 64,128,127, 0, 20, 56,128, 0, 7,
/* 0x1100 */ 128,191, 0, 56, 75,255,247,145,128,127, 0, 72, 75,255,241,229,
/* 0x1110 */ 72, 0, 0, 32,129, 63, 0, 60, 56, 9, 0, 32,144, 31, 0, 60,
/* 0x1120 */ 129, 63, 0, 68, 56, 9, 0, 1,144, 31, 0, 68, 75,255,255, 32,
/* 0x1130 */ 128, 31, 0, 64,124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,
/* 0x1140 */ 124, 8, 3,166,131,235,255,252,125, 97, 91,120, 78,128, 0, 32
/* 0x0800 */ 125, 97, 91,120, 78,128, 0, 32,148, 33,255,208,124, 8, 2,166,
/* 0x0810 */ 147,225, 0, 44,144, 1, 0, 52,124, 63, 11,120,144,127, 0, 8,
/* 0x0820 */ 144,159, 0, 12,144,191, 0, 16,128, 31, 0, 8, 47,128, 0, 0,
/* 0x0830 */ 65,158, 0,204,128, 31, 0, 8, 84, 0, 7,254, 47,128, 0, 0,
/* 0x0840 */ 64,158, 0,188, 56, 0, 0, 0,144, 31, 0, 20, 56, 0, 0, 0,
/* 0x0850 */ 144, 31, 0, 24,129, 63, 0, 8,129, 41, 0, 0,128, 31, 0, 12,
/* 0x0860 */ 127,137, 0, 0, 64,158, 0, 32,129, 63, 0, 8,128, 31, 0, 16,
/* 0x0870 */ 144, 9, 0, 4,129, 63, 0, 24, 56, 9, 0, 1,144, 31, 0, 24,
/* 0x0880 */ 72, 0, 0, 28,129, 63, 0, 8,128, 9, 0, 0, 47,128, 0, 1,
/* 0x0890 */ 64,158, 0, 12,128, 31, 0, 8,144, 31, 0, 20,129, 63, 0, 8,
/* 0x08a0 */ 128, 9, 0, 0, 47,128, 0, 0, 64,158, 0, 68,128, 31, 0, 24,
/* 0x08b0 */ 47,128, 0, 0, 65,158, 0, 8, 72, 0, 0, 68,128, 31, 0, 20,
/* 0x08c0 */ 47,128, 0, 0, 65,158, 0, 32,129, 63, 0, 20,128, 31, 0, 12,
/* 0x08d0 */ 144, 9, 0, 0,129, 63, 0, 20,128, 31, 0, 16,144, 9, 0, 4,
/* 0x08e0 */ 72, 0, 0, 28, 56, 96, 0,127, 75,255,249,217,129, 63, 0, 8,
/* 0x08f0 */ 56, 9, 0, 8,144, 31, 0, 8, 75,255,255, 92,129, 97, 0, 0,
/* 0x0900 */ 128, 11, 0, 4,124, 8, 3,166,131,235,255,252,125, 97, 91,120,
/* 0x0910 */ 78,128, 0, 32,148, 33,255,208,124, 8, 2,166,147,225, 0, 44,
/* 0x0920 */ 144, 1, 0, 52,124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,
/* 0x0930 */ 144,191, 0, 16,144,223, 0, 20, 75,255,247, 73,124, 96, 27,120,
/* 0x0940 */ 144, 31, 0, 24, 56, 0,255,255,144, 31, 0, 28, 56, 0, 0, 0,
/* 0x0950 */ 144, 31, 0, 32, 56, 0, 0, 0,144, 31, 0, 36,129, 63, 0, 16,
/* 0x0960 */ 56, 9,255,255,144, 31, 0, 16, 47,128, 0, 0, 65,156, 0,124,
/* 0x0970 */ 129, 63, 0, 12,128, 9, 0, 0, 47,128, 0, 1, 64,158, 0, 92,
/* 0x0980 */ 129, 63, 0, 12,129, 41, 0, 8,128, 31, 0, 28,127,137, 0, 64,
/* 0x0990 */ 64,156, 0, 16,129, 63, 0, 12,128, 9, 0, 8,144, 31, 0, 28,
/* 0x09a0 */ 129, 63, 0, 12,129,127, 0, 12,129, 41, 0, 20,128, 11, 0, 8,
/* 0x09b0 */ 125, 41, 2, 20,128, 31, 0, 32,127,137, 0, 64, 64,157, 0, 28,
/* 0x09c0 */ 129, 63, 0, 12,129,127, 0, 12,129, 41, 0, 20,128, 11, 0, 8,
/* 0x09d0 */ 124, 9, 2, 20,144, 31, 0, 32,129, 63, 0, 12, 56, 9, 0, 32,
/* 0x09e0 */ 144, 31, 0, 12, 75,255,255,120,129, 63, 0, 28,128, 31, 0, 24,
/* 0x09f0 */ 125, 32, 0, 56,144, 31, 0, 28,129, 63, 0, 32,128, 31, 0, 28,
/* 0x0a00 */ 125, 32, 72, 80,128, 31, 0, 24,125, 32, 72, 80, 57, 41,255,255,
/* 0x0a10 */ 128, 31, 0, 24,125, 32, 0, 56,144, 31, 0, 32,128, 31, 0, 8,
/* 0x0a20 */ 96, 0, 0, 34,128,127, 0, 28,128,159, 0, 32, 56,160, 0, 0,
/* 0x0a30 */ 124, 6, 3,120, 56,224,255,255, 57, 0, 0, 0, 75,255,248,113,
/* 0x0a40 */ 144,127, 0, 36,129,127, 0, 20,129, 63, 0, 32,128, 31, 0, 36,
/* 0x0a50 */ 124, 9, 2, 20,144, 11, 0, 0,129, 63, 0, 36,128, 31, 0, 28,
/* 0x0a60 */ 124, 0, 72, 80,124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,
/* 0x0a70 */ 124, 8, 3,166,131,235,255,252,125, 97, 91,120, 78,128, 0, 32,
/* 0x0a80 */ 148, 33,255,144,124, 8, 2,166,147,225, 0,108,144, 1, 0,116,
/* 0x0a90 */ 124, 63, 11,120,144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,
/* 0x0aa0 */ 144,223, 0, 20,144,255, 0, 24,145, 31, 0, 28, 75,255,245,213,
/* 0x0ab0 */ 124, 96, 27,120,124, 0, 0,248,144, 31, 0, 32,129, 63, 0, 12,
/* 0x0ac0 */ 129, 41, 0, 28,128, 31, 0, 12,124, 9, 2, 20,144, 31, 0, 36,
/* 0x0ad0 */ 128, 31, 0, 16, 47,128, 0, 0, 65,158, 0,144,129, 63, 0, 24,
/* 0x0ae0 */ 128, 9, 0, 0,144, 31, 0, 48,129, 63, 0, 48, 56, 9, 0, 52,
/* 0x0af0 */ 144, 31, 0, 52,129, 63, 0, 48,160, 9, 0, 16, 84, 0, 4, 62,
/* 0x0b00 */ 47,128, 0, 2, 64,158, 0, 28,129, 63, 0, 52,128, 9, 0, 8,
/* 0x0b10 */ 144, 31, 0, 48, 56, 0, 0, 0,144, 31, 0, 44, 72, 0, 0, 36,
/* 0x0b20 */ 129, 63, 0, 52, 57, 41, 0, 32,129,127, 0, 48,128, 9, 0, 8,
/* 0x0b30 */ 124, 0, 88, 80,144, 31, 0, 48,128, 31, 0, 48,144, 31, 0, 44,
/* 0x0b40 */ 129, 63, 0, 52,129, 41, 0, 20,128, 31, 0, 48,124, 9, 2, 20,
/* 0x0b50 */ 144, 31, 0, 40,129, 63, 0, 52,128,127, 0, 48,128,137, 0, 20,
/* 0x0b60 */ 75,255,247,161, 72, 0, 0, 84,129, 63, 0, 12,160, 9, 0, 16,
/* 0x0b70 */ 84, 0, 4, 62, 47,128, 0, 3, 65,158, 0, 16, 56, 0, 0, 16,
/* 0x0b80 */ 144, 31, 0, 84, 72, 0, 0, 12, 56, 0, 0, 0,144, 31, 0, 84,
/* 0x0b90 */ 129, 63, 0, 12,160, 9, 0, 44, 84, 0, 4, 62, 57, 63, 0, 40,
/* 0x0ba0 */ 128,127, 0, 84,128,159, 0, 36,124, 5, 3,120,125, 38, 75,120,
/* 0x0bb0 */ 75,255,253,101,144,127, 0, 44, 56, 0, 0, 0,144, 31, 0, 52,
/* 0x0bc0 */ 129, 63, 0, 12,160, 9, 0, 44, 84, 9, 4, 62,128, 31, 0, 52,
/* 0x0bd0 */ 127,137, 0, 0, 64,157, 3, 84,128, 31, 0, 16, 47,128, 0, 0,
/* 0x0be0 */ 65,158, 0, 56,129, 63, 0, 36,128, 9, 0, 0, 47,128, 0, 6,
/* 0x0bf0 */ 64,158, 0, 40,129, 63, 0, 36,129, 41, 0, 8,128, 31, 0, 44,
/* 0x0c00 */ 124, 9, 2, 20,128,127, 0, 20, 56,128, 0, 3,124, 5, 3,120,
/* 0x0c10 */ 75,255,251,249, 72, 0, 2,248,129, 63, 0, 36,128, 9, 0, 0,
/* 0x0c20 */ 47,128, 0, 1, 64,158, 2,232,129, 63, 0, 36,128, 9, 0, 20,
/* 0x0c30 */ 47,128, 0, 0, 65,158, 2,216,128, 31, 0, 16, 47,128, 0, 0,
/* 0x0c40 */ 65,158, 0,120,129, 63, 0, 36,128, 9, 0, 4, 47,128, 0, 0,
/* 0x0c50 */ 64,158, 0,104,129, 63, 0, 36,129, 41, 0, 8,128, 31, 0, 44,
/* 0x0c60 */ 125,105, 2, 20,129, 63, 0, 12,128, 9, 0, 28,124, 11, 2, 20,
/* 0x0c70 */ 128,127, 0, 20, 56,128, 0, 3,124, 5, 3,120, 75,255,251,141,
/* 0x0c80 */ 129, 63, 0, 12,160, 9, 0, 44, 84, 0, 4, 62,128,127, 0, 20,
/* 0x0c90 */ 56,128, 0, 5,124, 5, 3,120, 75,255,251,113,129, 63, 0, 12,
/* 0x0ca0 */ 160, 9, 0, 42, 84, 0, 4, 62,128,127, 0, 20, 56,128, 0, 4,
/* 0x0cb0 */ 124, 5, 3,120, 75,255,251, 85,129, 63, 0, 36,128, 9, 0, 24,
/* 0x0cc0 */ 84, 0, 7,126, 84, 9, 16, 58, 60, 0,115, 81, 96, 0, 98, 64,
/* 0x0cd0 */ 124, 0, 76, 48, 84, 0, 7,126,144, 31, 0, 48,129, 63, 0, 36,
/* 0x0ce0 */ 128, 9, 0, 16,144, 31, 0, 56,144, 31, 0, 64,129, 63, 0, 36,
/* 0x0cf0 */ 129, 41, 0, 8,128, 31, 0, 44,124, 9, 2, 20,144, 31, 0, 60,
/* 0x0d00 */ 144, 31, 0, 68,129, 63, 0, 36,129, 41, 0, 20,128, 31, 0, 68,
/* 0x0d10 */ 124, 9, 2, 20,144, 31, 0, 72,129, 63, 0, 68,128, 31, 0, 32,
/* 0x0d20 */ 125, 32, 0, 56,144, 31, 0, 76,129, 63, 0, 64,128, 31, 0, 76,
/* 0x0d30 */ 124, 9, 2, 20,144, 31, 0, 64,129, 63, 0, 68,128, 31, 0, 76,
/* 0x0d40 */ 124, 0, 72, 80,144, 31, 0, 68,128, 31, 0, 16, 47,128, 0, 0,
/* 0x0d50 */ 65,158, 0,120,128,127, 0, 68,128,159, 0, 64, 56,160, 0, 3,
/* 0x0d60 */ 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0, 75,255,245, 65,
/* 0x0d70 */ 124, 96, 27,120,129, 63, 0, 68,127,128, 72, 0, 65,158, 0, 8,
/* 0x0d80 */ 72, 0, 1, 32, 56, 31, 0, 56,144, 31, 0, 88,128, 31, 0, 48,
/* 0x0d90 */ 84, 0, 7,122, 47,128, 0, 0, 65,158, 0, 16,128, 31, 0, 28,
/* 0x0da0 */ 144, 31, 0, 92, 72, 0, 0, 12, 56, 0, 0, 0,144, 31, 0, 92,
/* 0x0db0 */ 128,127, 0, 16,128,159, 0, 88,128,191, 0, 8,128,223, 0, 92,
/* 0x0dc0 */ 75,255,246, 57, 72, 0, 0, 68,129, 63, 0, 36,129, 41, 0, 4,
/* 0x0dd0 */ 128, 31, 0, 76,124, 0, 72, 80,128,127, 0, 68,128,159, 0, 64,
/* 0x0de0 */ 128,191, 0, 48, 56,192, 0, 18,128,255, 0, 8,124, 8, 3,120,
/* 0x0df0 */ 75,255,244,189,124,105, 27,120,128, 31, 0, 68,127,137, 0, 0,
/* 0x0e00 */ 65,158, 0, 8, 72, 0, 0,156,128, 31, 0, 64,125, 32, 0,208,
/* 0x0e10 */ 128, 31, 0, 32,125, 32, 0, 56,144, 31, 0, 76,128, 31, 0, 48,
/* 0x0e20 */ 84, 0, 7,188, 47,128, 0, 0, 65,158, 0, 28,128, 31, 0, 68,
/* 0x0e30 */ 129, 63, 0, 64,124, 0, 74, 20,124, 3, 3,120,128,159, 0, 76,
/* 0x0e40 */ 75,255,249,105,128, 31, 0, 16, 47,128, 0, 0, 65,158, 0, 92,
/* 0x0e50 */ 128,127, 0, 36,128,159, 0, 44,128,191, 0, 32, 75,255,247,201,
/* 0x0e60 */ 124, 96, 27,120,144, 31, 0, 80,128, 31, 0, 80, 47,128, 0, 0,
/* 0x0e70 */ 65,158, 0, 20,128,127, 0, 20, 56,128, 0, 0,128,191, 0, 80,
/* 0x0e80 */ 75,255,249,137,128,127, 0, 68,128,159, 0, 64,128,191, 0, 48,
/* 0x0e90 */ 75,255,244, 9,124, 96, 27,120, 47,128, 0, 0, 65,158, 0, 12,
/* 0x0ea0 */ 56, 96, 0,127, 75,255,244, 29,129, 63, 0, 64,128, 31, 0, 76,
/* 0x0eb0 */ 125, 41, 2, 20,128, 31, 0, 68,124, 0, 74, 20,144, 31, 0, 68,
/* 0x0ec0 */ 129, 63, 0, 68,128, 31, 0, 72,127,137, 0, 64, 64,156, 0, 64,
/* 0x0ed0 */ 129, 63, 0, 72,128, 31, 0, 68,124, 0, 72, 80,128,127, 0, 68,
/* 0x0ee0 */ 124, 4, 3,120,128,191, 0, 48, 56,192, 0, 50, 56,224,255,255,
/* 0x0ef0 */ 57, 0, 0, 0, 75,255,243,185,124,105, 27,120,128, 31, 0, 68,
/* 0x0f00 */ 127,137, 0, 0, 65,158, 0, 8, 72, 0, 0, 0,129, 63, 0, 36,
/* 0x0f10 */ 56, 9, 0, 32,144, 31, 0, 36,129, 63, 0, 52, 56, 9, 0, 1,
/* 0x0f20 */ 144, 31, 0, 52, 75,255,252,156,128, 31, 0, 24, 47,128, 0, 0,
/* 0x0f30 */ 65,158, 0, 16,129, 63, 0, 24,128, 31, 0, 44,144, 9, 0, 0,
/* 0x0f40 */ 129, 63, 0, 12,129, 41, 0, 24,128, 31, 0, 44,124, 9, 2, 20,
/* 0x0f50 */ 124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,
/* 0x0f60 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32,148, 33,255,160,
/* 0x0f70 */ 124, 8, 2,166,147,225, 0, 92,144, 1, 0,100,124, 63, 11,120,
/* 0x0f80 */ 144,127, 0, 8,144,159, 0, 12,144,191, 0, 16,144,223, 0, 20,
/* 0x0f90 */ 144,255, 0, 24,145, 31, 0, 28,145, 63, 0, 32,129, 63, 0, 8,
/* 0x0fa0 */ 129, 41, 0, 4, 56, 9, 0, 12,144, 31, 0, 36,128, 31, 0, 16,
/* 0x0fb0 */ 144, 31, 0, 44,129, 63, 0, 8,128, 9, 0, 0,144, 31, 0, 40,
/* 0x0fc0 */ 128, 31, 0, 8,144, 31, 0, 52,128, 31, 0, 12,144, 31, 0, 48,
/* 0x0fd0 */ 56, 31, 0, 48, 57, 63, 0, 40,124, 3, 3,120,125, 36, 75,120,
/* 0x0fe0 */ 128,191, 0, 24, 56,192, 0, 0, 75,255,244, 17,129, 63, 0, 52,
/* 0x0ff0 */ 128, 31, 0, 36,124, 0, 72, 80,144, 31, 0, 52,128, 31, 0, 12,
/* 0x1000 */ 144, 31, 0, 48,128, 31, 0, 32,144, 31, 0, 56,129, 63, 0, 16,
/* 0x1010 */ 56, 9, 0, 52,144, 31, 0, 60, 56, 31, 0, 48, 57, 63, 0, 56,
/* 0x1020 */ 128,127, 0, 24,128,159, 0, 16,124, 5, 3,120,128,223, 0, 20,
/* 0x1030 */ 125, 39, 75,120,129, 31, 0, 28, 75,255,250, 73,124, 96, 27,120,
/* 0x1040 */ 144, 31, 0, 64,128,127, 0, 20, 56,128, 0, 9,128,191, 0, 64,
/* 0x1050 */ 75,255,247,185, 56, 0, 0, 0,144, 31, 0, 68,129, 63, 0, 16,
/* 0x1060 */ 56, 9, 0, 52,144, 31, 0, 60,129, 63, 0, 16,160, 9, 0, 44,
/* 0x1070 */ 84, 9, 4, 62,128, 31, 0, 68,127,137, 0, 0, 64,157, 0,208,
/* 0x1080 */ 129, 63, 0, 60,128, 9, 0, 0, 47,128, 0, 3, 64,158, 0,164,
/* 0x1090 */ 129, 63, 0, 60,129, 41, 0, 8,128, 31, 0, 56,124, 9, 2, 20,
/* 0x10a0 */ 124, 3, 3,120, 56,128, 0, 0, 56,160, 0, 0, 75,255,242, 61,
/* 0x10b0 */ 124, 96, 27,120,144, 31, 0, 72,128, 31, 0, 72, 47,128, 0, 0,
/* 0x10c0 */ 64,156, 0, 8, 72, 0, 0, 32,128,127, 0, 72,128,159, 0, 16,
/* 0x10d0 */ 56,160, 2, 0, 75,255,242, 13,124, 96, 27,120, 47,128, 2, 0,
/* 0x10e0 */ 65,158, 0, 12, 56, 96, 0,127, 75,255,241,217, 56, 31, 0, 56,
/* 0x10f0 */ 128,127, 0, 72,128,159, 0, 16, 56,160, 0, 0,128,223, 0, 20,
/* 0x1100 */ 124, 7, 3,120, 57, 0, 0, 0, 75,255,249,121,124, 96, 27,120,
/* 0x1110 */ 144, 31, 0, 64,128,127, 0, 20, 56,128, 0, 7,128,191, 0, 56,
/* 0x1120 */ 75,255,246,233,128,127, 0, 72, 75,255,241,201, 72, 0, 0, 32,
/* 0x1130 */ 129, 63, 0, 60, 56, 9, 0, 32,144, 31, 0, 60,129, 63, 0, 68,
/* 0x1140 */ 56, 9, 0, 1,144, 31, 0, 68, 75,255,255, 32,128, 31, 0, 64,
/* 0x1150 */ 124, 3, 3,120,129, 97, 0, 0,128, 11, 0, 4,124, 8, 3,166,
/* 0x1160 */ 131,235,255,252,125, 97, 91,120, 78,128, 0, 32
};
+137 -134
View File
@@ -1,5 +1,5 @@
/* powerpc64-linux.elf-fold.h
created from powerpc64-linux.elf-fold.bin, 3512 (0xdb8) bytes
created from powerpc64-linux.elf-fold.bin, 3568 (0xdf0) bytes
This file is part of the UPX executable compressor.
@@ -32,21 +32,21 @@
/* clang-format off */
#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 3512
#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0x9e5bb7c9
#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x13fbb209
#define STUB_POWERPC64_LINUX_ELF_FOLD_SIZE 3568
#define STUB_POWERPC64_LINUX_ELF_FOLD_ADLER32 0x6a84c7fd
#define STUB_POWERPC64_LINUX_ELF_FOLD_CRC32 0x52b4e057
unsigned char stub_powerpc64_linux_elf_fold[3512] = {
unsigned char stub_powerpc64_linux_elf_fold[3568] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 13,104,
/* 0x0010 */ 0, 2, 0, 21, 0, 0, 0, 1, 0, 0, 0, 0, 0, 16, 13,160,
/* 0x0020 */ 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 0, 0, 0, 1, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 0, 0, 0, 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0050 */ 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 13,104, 0, 0, 0, 0, 0, 0, 13,104,
/* 0x0060 */ 0, 0, 0, 0, 0, 0, 13,160, 0, 0, 0, 0, 0, 0, 13,160,
/* 0x0070 */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6,
/* 0x0080 */ 0, 0, 0, 0, 0, 0, 13,104, 0, 0, 0, 0, 0, 16, 13,104,
/* 0x0090 */ 0, 0, 0, 0, 0, 16, 13,104, 0, 0, 0, 0, 0, 0, 0, 80,
/* 0x0080 */ 0, 0, 0, 0, 0, 0, 13,160, 0, 0, 0, 0, 0, 16, 13,160,
/* 0x0090 */ 0, 0, 0, 0, 0, 16, 13,160, 0, 0, 0, 0, 0, 0, 0, 80,
/* 0x00a0 */ 0, 0, 0, 0, 0, 0, 0, 88, 0, 0, 0, 0, 0, 1, 0, 0,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 56, 96,255,248,
/* 0x00c0 */ 120, 99, 77,164, 78,128, 0, 32, 96, 0, 0, 0, 72, 0, 0,125,
@@ -77,7 +77,7 @@ unsigned char stub_powerpc64_linux_elf_fold[3512] = {
/* 0x0250 */ 126,228,187,120, 56,161, 0,144,127, 70,211,120,127,231,251,120,
/* 0x0260 */ 126,200,179,120, 56, 0, 0, 0,248,225, 0,112, 56,225, 0,112,
/* 0x0270 */ 248, 1, 0,120,249, 1, 0,128, 57, 1, 0,128,248, 1, 0,136,
/* 0x0280 */ 127,202,243,120, 72, 0, 8,205, 56, 33, 8,144,126,162,171,120,
/* 0x0280 */ 127,202,243,120, 72, 0, 9, 5, 56, 33, 8,144,126,162,171,120,
/* 0x0290 */ 112, 96, 0, 7, 64,130, 0, 36,128, 3, 0, 0, 40, 0, 0, 0,
/* 0x02a0 */ 64,130, 0, 24,232, 1, 1,136,232, 67, 0, 8,124, 66, 2, 20,
/* 0x02b0 */ 232, 99, 0, 0,124, 99, 2, 20,248,117, 0, 0,124,127, 27,120,
@@ -109,7 +109,7 @@ unsigned char stub_powerpc64_linux_elf_fold[3512] = {
/* 0x0450 */ 125, 74, 74, 20,249, 67, 0, 8,233, 67, 0, 0,125, 41, 80, 80,
/* 0x0460 */ 249, 35, 0, 0, 78,128, 0, 32, 0, 0, 0, 0, 0, 0, 0, 1,
/* 0x0470 */ 128, 0, 0, 0,125,128, 0, 38,124, 8, 2,166,145,129, 0, 8,
/* 0x0480 */ 72, 0, 8,125,248, 33,255, 81,124,126, 27,120,124,159, 35,120,
/* 0x0480 */ 72, 0, 8,181,248, 33,255, 81,124,126, 27,120,124,159, 35,120,
/* 0x0490 */ 124,189, 43,120,124,220, 51,120, 46, 38, 0, 0,233, 63, 0, 0,
/* 0x04a0 */ 47,169, 0, 0, 65,158, 1, 84,127,195,243,120, 56,129, 0,112,
/* 0x04b0 */ 56,160, 0, 12, 75,255,255, 81,129, 65, 0,112,129, 33, 0,116,
@@ -133,128 +133,131 @@ unsigned char stub_powerpc64_linux_elf_fold[3512] = {
/* 0x05d0 */ 125, 37, 75,120, 75,255,254, 49,129, 1, 0,112,233, 95, 0, 8,
/* 0x05e0 */ 233, 63, 0, 0,125, 74, 66, 20,125, 40, 72, 80,249, 95, 0, 8,
/* 0x05f0 */ 249, 63, 0, 0, 75,255,254,168, 56, 33, 0,176,129,129, 0, 8,
/* 0x0600 */ 125,144,129, 32, 72, 0, 7, 72, 0, 0, 0, 0, 0, 0, 0, 3,
/* 0x0600 */ 125,144,129, 32, 72, 0, 7,128, 0, 0, 0, 0, 0, 0, 0, 3,
/* 0x0610 */ 128, 4, 0, 0, 44, 35, 0, 0, 77,130, 0, 32,120,105, 7,225,
/* 0x0620 */ 76,130, 0, 32, 47, 36, 0, 0,233, 67, 0, 0,127,170, 32, 64,
/* 0x0630 */ 64,158, 0, 16,248,131, 0, 0,248,163, 0, 8, 78,128, 0, 32,
/* 0x0640 */ 43,170, 0, 1, 64,158, 0, 12, 65,154, 0, 16, 75,255,255,232,
/* 0x0650 */ 47,170, 0, 0, 77,158, 0, 32, 56, 99, 0, 16, 75,255,255,204,
/* 0x0660 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,124, 8, 2,166,
/* 0x0670 */ 125,128, 0, 38, 72, 0, 6, 81,125, 53, 75,120,233, 35, 0, 32,
/* 0x0680 */ 125, 14, 67,120,161, 3, 0, 16,125, 94, 83,120,124,124, 27,120,
/* 0x0690 */ 145,129, 0, 8,248, 33,254,193, 46, 36, 0, 0,124,176, 43,120,
/* 0x06a0 */ 124,216, 51,120,233, 85, 0, 0,124,239, 59,120,126, 67, 74, 20,
/* 0x06b0 */ 124,145, 35,120, 65,146, 0, 88,232,234, 0, 32, 85, 8, 4, 62,
/* 0x06c0 */ 47,136, 0, 2,124,234, 58, 20,232,103, 0, 72,124, 99, 80, 80,
/* 0x06d0 */ 64,158, 0, 8,232,103, 0, 16,232,135, 0, 40, 56,160, 0, 0,
/* 0x06e0 */ 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0, 75,255,252,169,
/* 0x06f0 */ 96, 0, 0, 0,161, 92, 0, 16, 59,224, 0, 0, 47,138, 0, 2,
/* 0x0700 */ 65,158, 0,220,124,127, 27,120, 72, 0, 0,212, 85, 8, 4, 62,
/* 0x0710 */ 56,224, 0, 16, 47,136, 0, 3, 64,158, 0, 8, 56,224, 0, 0,
/* 0x0720 */ 160,188, 0, 56, 56,231, 0, 34,125, 67, 83,120,120,230, 0, 32,
/* 0x0730 */ 126, 68,147,120, 56,165, 0, 1, 57, 0, 0, 0,124,169, 3,166,
/* 0x0740 */ 59,224,255,255, 66, 64, 0, 60,128,164, 0, 0, 47,133, 0, 1,
/* 0x0750 */ 64,158, 0, 40,233,100, 0, 16,127,191, 88, 64, 64,157, 0, 8,
/* 0x0760 */ 125,127, 91,120,232,164, 0, 40,124,171, 42, 20,127,168, 40, 64,
/* 0x0770 */ 64,156, 0, 8,124,168, 43,120, 56,132, 0, 56, 75,255,255,200,
/* 0x0780 */ 127,196,240,248,127,255,240, 56,125, 4, 66, 20,120,233,231,227,
/* 0x0790 */ 125, 31, 64, 80,125, 4,240, 56, 64,130, 0, 28, 47,191, 0, 0,
/* 0x07a0 */ 64,158, 0, 28, 47,170, 0, 0, 65,158, 0, 24, 56,192, 0, 50,
/* 0x07b0 */ 72, 0, 0, 16,127,227,251,120, 72, 0, 0, 8, 56, 96, 0, 0,
/* 0x07c0 */ 56,160, 0, 0,124,198, 7,180, 56,224,255,255, 57, 0, 0, 0,
/* 0x07d0 */ 75,255,251,197, 96, 0, 0, 0,127,255, 24, 80, 57, 63, 0,120,
/* 0x07e0 */ 127,211,240,248,249, 33, 0,144,123, 9, 7,164,127,222,240,248,
/* 0x07f0 */ 249, 33, 0,152,251,193, 0,136, 57, 63, 0, 3, 62,224, 0, 1,
/* 0x0800 */ 249, 33, 0,160,122,247,131,228, 59, 32, 0, 0, 98,247, 0, 1,
/* 0x0810 */ 161, 92, 0, 56,127,138,200, 0, 64,157, 2,248,129, 82, 0, 0,
/* 0x0820 */ 65,146, 0, 36, 47,138, 0, 6, 64,158, 0, 28,232,178, 0, 16,
/* 0x0830 */ 127, 3,195,120, 56,128, 0, 3,124,191, 42, 20, 75,255,253,217,
/* 0x0840 */ 72, 0, 2,192, 47,138, 0, 1, 64,158, 2,184,233, 82, 0, 40,
/* 0x0850 */ 47,170, 0, 0, 65,158, 2,172,131, 82, 0, 4, 61, 32,115, 81,
/* 0x0860 */ 97, 41, 98, 64, 87, 90, 22,250,125, 58,212, 48, 87, 84, 7,126,
/* 0x0870 */ 122,137, 0, 32,249, 33, 0,128, 65,146, 0, 76,233, 82, 0, 8,
/* 0x0880 */ 47,170, 0, 0, 64,158, 0, 64,233, 92, 0, 32,232,178, 0, 16,
/* 0x0890 */ 127, 3,195,120, 56,128, 0, 3,125, 95, 82, 20,124,170, 42, 20,
/* 0x08a0 */ 75,255,253,117,160,188, 0, 56,127, 3,195,120, 56,128, 0, 5,
/* 0x08b0 */ 75,255,253,101,160,188, 0, 54,127, 3,195,120, 56,128, 0, 4,
/* 0x08c0 */ 75,255,253, 85,235,210, 0, 16,235,114, 0, 32,234,210, 0, 40,
/* 0x08d0 */ 233, 33, 0,136,127,223,242, 20,251, 97, 0,112,127,200,152, 56,
/* 0x08e0 */ 127,190,218, 20,251,193, 0,120,121, 8, 0, 32,126,222,178, 20,
/* 0x08f0 */ 127,104,218, 20,127,200,240, 80,125, 94,218, 20,125, 74, 0,208,
/* 0x0900 */ 125, 74, 72, 56,127,106,218, 20, 64,146, 0, 12, 56,160, 0, 0,
/* 0x0910 */ 72, 0, 0, 8, 56,160, 0, 2,124,165,163,120, 64,146, 0, 16,
/* 0x0920 */ 57, 64,255,255,121, 74, 0, 32, 72, 0, 0, 16, 61, 64,255,255,
/* 0x0930 */ 97, 74,255,251,121, 74, 0, 32,125, 69, 40, 56, 64,146, 0, 16,
/* 0x0940 */ 126, 7,131,120, 56,192, 0, 18, 72, 0, 0, 12, 56,192, 0, 50,
/* 0x0950 */ 56,224,255,255,233, 82, 0, 8,127,195,243,120,127,100,219,120,
/* 0x0960 */ 125, 8, 80, 80, 75,255,250, 49, 96, 0, 0, 0,127,190, 24, 0,
/* 0x0970 */ 65,254, 0, 16, 56, 96, 0,127, 75,255,250, 77, 96, 0, 0, 0,
/* 0x0980 */ 65,146, 0, 24,126, 35,139,120, 56,129, 0,112,125,229,123,120,
/* 0x0990 */ 125,198,115,120, 75,255,250,225,123, 73,255,227, 65,130, 0, 52,
/* 0x09a0 */ 125, 93, 0,208, 57, 29,255,255,125, 74,152, 56,121, 74, 0, 33,
/* 0x09b0 */ 64,130, 0, 12,127,189, 82, 20, 72, 0, 0, 24,125, 73, 3,166,
/* 0x09c0 */ 56,224, 0, 0,156,232, 0, 1, 66, 0,255,252, 75,255,255,232,
/* 0x09d0 */ 65,146, 1, 0,233, 82, 0, 0,121, 74, 7,194,121, 74, 0, 2,
/* 0x09e0 */ 127,170,184, 0, 64,158, 0,208,233, 82, 0, 40,232,242, 0, 32,
/* 0x09f0 */ 233, 18, 0, 16,127,170, 56, 0, 64,158, 0, 44,233, 33, 0,160,
/* 0x0a00 */ 127, 73, 82, 20,127, 90, 66, 20,123, 90, 7,100,125, 90, 0,208,
/* 0x0a10 */ 125, 74,152, 56, 43,138, 0, 15, 64,157, 0, 12, 57, 64, 0, 0,
/* 0x0a20 */ 72, 0, 0, 60,233, 82, 0, 8, 47,170, 0, 0, 65,158, 1, 8,
/* 0x0a30 */ 56, 96, 0, 0, 56,128, 16, 0, 56,160, 0, 3, 56,192, 0, 34,
/* 0x0a40 */ 56,224,255,255, 57, 0, 0, 0, 75,255,249, 77, 96, 0, 0, 0,
/* 0x0a50 */ 124,122, 27,121, 65,130, 0, 96, 57, 64, 0, 1, 61, 32, 68, 0,
/* 0x0a60 */ 61, 0, 56,128, 97, 41, 0, 2, 47,170, 0, 0,145, 26, 0, 8,
/* 0x0a70 */ 145, 58, 0, 0, 61, 32,127,236, 97, 41,251,120,145, 58, 0, 4,
/* 0x0a80 */ 61, 32, 78,128, 97, 41, 0, 32,145, 58, 0, 12, 65,158, 0, 24,
/* 0x0a90 */ 127, 67,211,120, 56,128, 0, 16, 56,160, 0, 5, 75,255,249, 17,
/* 0x0aa0 */ 96, 0, 0, 0,232, 97, 0,152, 56,128, 0, 0,127, 69,211,120,
/* 0x0ab0 */ 75,255,251,101,232,161, 0,128,127,195,243,120,127,100,219,120,
/* 0x0ac0 */ 75,255,248,237, 96, 0, 0, 0, 47,163, 0, 0, 64,222,254,168,
/* 0x0ad0 */ 127,189,176, 64, 64,156, 0, 44,127,163,235,120,124,157,176, 80,
/* 0x0ae0 */ 126,133, 7,180, 56,192, 0, 50, 56,224,255,255, 57, 0, 0, 0,
/* 0x0af0 */ 75,255,248,165, 96, 0, 0, 0,127,189, 24, 0, 64,222,254,120,
/* 0x0b00 */ 59, 57, 0, 1, 58, 82, 0, 56,127, 57, 7,180, 75,255,253, 4,
/* 0x0b10 */ 47,181, 0, 0, 65,158, 0, 8,251,245, 0, 0, 56, 33, 1, 64,
/* 0x0b20 */ 232,124, 0, 24,124,127, 26, 20,129,129, 0, 8,125,144,129, 32,
/* 0x0b30 */ 72, 0, 1,228,233, 33, 0,144,127, 73, 66, 20, 59, 90, 0, 24,
/* 0x0b40 */ 75,255,255, 28, 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,
/* 0x0b50 */ 124, 8, 2,166, 72, 0, 1,153,248, 33,255, 17,125, 61, 75,120,
/* 0x0b60 */ 129, 35, 0, 0,124,191, 43,120,124,218, 51,120, 56,192, 0, 0,
/* 0x0b70 */ 125, 88, 83,120,249, 33, 0,144,248,161, 0,152,124,229, 59,120,
/* 0x0b80 */ 59,159, 0, 64,129, 35, 0, 4,248, 97, 0,120, 59,192, 0, 0,
/* 0x0b90 */ 248, 97, 0,136,248,129, 0,128, 57, 41, 0, 12,248,225, 0,160,
/* 0x0ba0 */ 249, 1, 0,168,249, 33, 0,112, 56, 97, 0,112, 56,129, 0,144,
/* 0x0bb0 */ 75,255,248,197,232,225, 0,160,233, 1, 0,168, 56,129, 0,128,
/* 0x0bc0 */ 56,160, 0, 0,127, 70,211,120,127,169,235,120,127, 10,195,120,
/* 0x0bd0 */ 127,227,251,120, 75,255,250,153, 56,128, 0, 9,124,123, 27,120,
/* 0x0be0 */ 127, 67,211,120,127,101,219,120, 75,255,250, 45,161, 63, 0, 56,
/* 0x0bf0 */ 127,137,240, 64, 64,157, 0,184,129, 60, 0, 0, 47,137, 0, 3,
/* 0x0c00 */ 64,158, 0,156,232,124, 0, 16,233, 61, 0, 0, 56,128, 0, 0,
/* 0x0c10 */ 56,160, 0, 0,124, 99, 74, 20, 75,255,247,205, 96, 0, 0, 0,
/* 0x0c20 */ 47,131, 0, 0,124,121, 27,120, 64,252, 0, 16, 56, 96, 0,127,
/* 0x0c30 */ 75,255,247,149, 96, 0, 0, 0,127,228,251,120, 56,160, 4, 0,
/* 0x0c40 */ 75,255,247,157, 96, 0, 0, 0, 47,163, 4, 0, 64,222,255,224,
/* 0x0c50 */ 57, 32, 0, 0, 56,128, 0, 0,249, 61, 0, 0,127, 37,203,120,
/* 0x0c60 */ 56,192, 0, 0, 56,224, 0, 0, 57, 0, 0, 0,127,169,235,120,
/* 0x0c70 */ 127, 10,195,120,127,227,251,120, 75,255,249,245,232,189, 0, 0,
/* 0x0c80 */ 56,128, 0, 7,124,123, 27,120,127, 67,211,120, 75,255,249,137,
/* 0x0c90 */ 127, 35,203,120, 75,255,247, 89, 96, 0, 0, 0, 59,222, 0, 1,
/* 0x0ca0 */ 59,156, 0, 56,123,222, 0, 32, 75,255,255, 68, 56, 33, 0,240,
/* 0x0cb0 */ 127, 99,219,120, 72, 0, 0,136, 0, 0, 0, 0, 0, 0, 0, 1,
/* 0x0cc0 */ 128, 8, 0, 0,249,193,255,112,249,225,255,120,250, 1,255,128,
/* 0x0cd0 */ 250, 33,255,136,250, 65,255,144,250, 97,255,152,250,129,255,160,
/* 0x0ce0 */ 250,161,255,168,250,193,255,176,250,225,255,184,251, 1,255,192,
/* 0x0cf0 */ 251, 33,255,200,251, 65,255,208,251, 97,255,216,251,129,255,224,
/* 0x0d00 */ 251,161,255,232,251,193,255,240,251,225,255,248,248, 1, 0, 16,
/* 0x0d10 */ 78,128, 0, 32,233,193,255,112,233,225,255,120,234, 1,255,128,
/* 0x0d20 */ 234, 33,255,136,234, 65,255,144,234, 97,255,152,234,129,255,160,
/* 0x0d30 */ 234,161,255,168,234,193,255,176,234,225,255,184,235, 1,255,192,
/* 0x0d40 */ 235, 33,255,200,235, 65,255,208,235, 97,255,216,235,129,255,224,
/* 0x0d50 */ 232, 1, 0, 16,235,161,255,232,124, 8, 3,166,235,193,255,240,
/* 0x0d60 */ 235,225,255,248, 78,128, 0, 32, 0, 0, 0, 0, 0, 16, 4, 4,
/* 0x0d70 */ 0, 0, 0, 0, 0, 16,141,104, 0, 0, 0, 0, 0, 16, 4,116,
/* 0x0d80 */ 0, 0, 0, 0, 0, 16,141,104, 0, 0, 0, 0, 0, 16, 6, 20,
/* 0x0d90 */ 0, 0, 0, 0, 0, 16,141,104, 0, 0, 0, 0, 0, 16, 6,108,
/* 0x0da0 */ 0, 0, 0, 0, 0, 16,141,104, 0, 0, 0, 0, 0, 16, 11, 80,
/* 0x0db0 */ 0, 0, 0, 0, 0, 16,141,104
/* 0x0620 */ 76,130, 0, 32, 57, 32, 0, 0, 56,224, 0, 0,233, 3, 0, 0,
/* 0x0630 */ 127,168, 32, 64, 64,158, 0, 20, 57, 41, 0, 1,248,163, 0, 8,
/* 0x0640 */ 125, 41, 7,180, 72, 0, 0, 12, 43,168, 0, 1, 65,158, 0, 64,
/* 0x0650 */ 47,168, 0, 0, 64,158, 0, 60, 47,169, 0, 0, 76,158, 0, 32,
/* 0x0660 */ 47,167, 0, 0, 65,222, 0, 16,248,135, 0, 0,248,167, 0, 8,
/* 0x0670 */ 78,128, 0, 32,124, 8, 2,166, 56, 96, 0,127,248, 1, 0, 16,
/* 0x0680 */ 248, 33,255,145, 75,255,253, 65, 96, 0, 0, 0,124,103, 27,120,
/* 0x0690 */ 56, 99, 0, 16, 75,255,255,152, 0, 0, 0, 0, 0, 0, 0, 1,
/* 0x06a0 */ 128, 0, 0, 0,124, 8, 2,166,125,128, 0, 38, 72, 0, 6, 81,
/* 0x06b0 */ 125, 53, 75,120,233, 35, 0, 32,125, 14, 67,120,161, 3, 0, 16,
/* 0x06c0 */ 125, 94, 83,120,124,124, 27,120,145,129, 0, 8,248, 33,254,193,
/* 0x06d0 */ 46, 36, 0, 0,124,176, 43,120,124,216, 51,120,233, 85, 0, 0,
/* 0x06e0 */ 124,239, 59,120,126, 67, 74, 20,124,145, 35,120, 65,146, 0, 88,
/* 0x06f0 */ 232,234, 0, 32, 85, 8, 4, 62, 47,136, 0, 2,124,234, 58, 20,
/* 0x0700 */ 232,103, 0, 72,124, 99, 80, 80, 64,158, 0, 8,232,103, 0, 16,
/* 0x0710 */ 232,135, 0, 40, 56,160, 0, 0, 56,192, 0, 50, 56,224,255,255,
/* 0x0720 */ 57, 0, 0, 0, 75,255,252,113, 96, 0, 0, 0,161, 92, 0, 16,
/* 0x0730 */ 59,224, 0, 0, 47,138, 0, 2, 65,158, 0,220,124,127, 27,120,
/* 0x0740 */ 72, 0, 0,212, 85, 8, 4, 62, 56,224, 0, 16, 47,136, 0, 3,
/* 0x0750 */ 64,158, 0, 8, 56,224, 0, 0,160,188, 0, 56, 56,231, 0, 34,
/* 0x0760 */ 125, 67, 83,120,120,230, 0, 32,126, 68,147,120, 56,165, 0, 1,
/* 0x0770 */ 57, 0, 0, 0,124,169, 3,166, 59,224,255,255, 66, 64, 0, 60,
/* 0x0780 */ 128,164, 0, 0, 47,133, 0, 1, 64,158, 0, 40,233,100, 0, 16,
/* 0x0790 */ 127,191, 88, 64, 64,157, 0, 8,125,127, 91,120,232,164, 0, 40,
/* 0x07a0 */ 124,171, 42, 20,127,168, 40, 64, 64,156, 0, 8,124,168, 43,120,
/* 0x07b0 */ 56,132, 0, 56, 75,255,255,200,127,196,240,248,127,255,240, 56,
/* 0x07c0 */ 125, 4, 66, 20,120,233,231,227,125, 31, 64, 80,125, 4,240, 56,
/* 0x07d0 */ 64,130, 0, 28, 47,191, 0, 0, 64,158, 0, 28, 47,170, 0, 0,
/* 0x07e0 */ 65,158, 0, 24, 56,192, 0, 50, 72, 0, 0, 16,127,227,251,120,
/* 0x07f0 */ 72, 0, 0, 8, 56, 96, 0, 0, 56,160, 0, 0,124,198, 7,180,
/* 0x0800 */ 56,224,255,255, 57, 0, 0, 0, 75,255,251,141, 96, 0, 0, 0,
/* 0x0810 */ 127,255, 24, 80, 57, 63, 0,120,127,211,240,248,249, 33, 0,144,
/* 0x0820 */ 123, 9, 7,164,127,222,240,248,249, 33, 0,152,251,193, 0,136,
/* 0x0830 */ 57, 63, 0, 3, 62,224, 0, 1,249, 33, 0,160,122,247,131,228,
/* 0x0840 */ 59, 32, 0, 0, 98,247, 0, 1,161, 92, 0, 56,127,138,200, 0,
/* 0x0850 */ 64,157, 2,248,129, 82, 0, 0, 65,146, 0, 36, 47,138, 0, 6,
/* 0x0860 */ 64,158, 0, 28,232,178, 0, 16,127, 3,195,120, 56,128, 0, 3,
/* 0x0870 */ 124,191, 42, 20, 75,255,253,161, 72, 0, 2,192, 47,138, 0, 1,
/* 0x0880 */ 64,158, 2,184,233, 82, 0, 40, 47,170, 0, 0, 65,158, 2,172,
/* 0x0890 */ 131, 82, 0, 4, 61, 32,115, 81, 97, 41, 98, 64, 87, 90, 22,250,
/* 0x08a0 */ 125, 58,212, 48, 87, 84, 7,126,122,137, 0, 32,249, 33, 0,128,
/* 0x08b0 */ 65,146, 0, 76,233, 82, 0, 8, 47,170, 0, 0, 64,158, 0, 64,
/* 0x08c0 */ 233, 92, 0, 32,232,178, 0, 16,127, 3,195,120, 56,128, 0, 3,
/* 0x08d0 */ 125, 95, 82, 20,124,170, 42, 20, 75,255,253, 61,160,188, 0, 56,
/* 0x08e0 */ 127, 3,195,120, 56,128, 0, 5, 75,255,253, 45,160,188, 0, 54,
/* 0x08f0 */ 127, 3,195,120, 56,128, 0, 4, 75,255,253, 29,235,210, 0, 16,
/* 0x0900 */ 235,114, 0, 32,234,210, 0, 40,233, 33, 0,136,127,223,242, 20,
/* 0x0910 */ 251, 97, 0,112,127,200,152, 56,127,190,218, 20,251,193, 0,120,
/* 0x0920 */ 121, 8, 0, 32,126,222,178, 20,127,104,218, 20,127,200,240, 80,
/* 0x0930 */ 125, 94,218, 20,125, 74, 0,208,125, 74, 72, 56,127,106,218, 20,
/* 0x0940 */ 64,146, 0, 12, 56,160, 0, 0, 72, 0, 0, 8, 56,160, 0, 2,
/* 0x0950 */ 124,165,163,120, 64,146, 0, 16, 57, 64,255,255,121, 74, 0, 32,
/* 0x0960 */ 72, 0, 0, 16, 61, 64,255,255, 97, 74,255,251,121, 74, 0, 32,
/* 0x0970 */ 125, 69, 40, 56, 64,146, 0, 16,126, 7,131,120, 56,192, 0, 18,
/* 0x0980 */ 72, 0, 0, 12, 56,192, 0, 50, 56,224,255,255,233, 82, 0, 8,
/* 0x0990 */ 127,195,243,120,127,100,219,120,125, 8, 80, 80, 75,255,249,249,
/* 0x09a0 */ 96, 0, 0, 0,127,190, 24, 0, 65,254, 0, 16, 56, 96, 0,127,
/* 0x09b0 */ 75,255,250, 21, 96, 0, 0, 0, 65,146, 0, 24,126, 35,139,120,
/* 0x09c0 */ 56,129, 0,112,125,229,123,120,125,198,115,120, 75,255,250,169,
/* 0x09d0 */ 123, 73,255,227, 65,130, 0, 52,125, 93, 0,208, 57, 29,255,255,
/* 0x09e0 */ 125, 74,152, 56,121, 74, 0, 33, 64,130, 0, 12,127,189, 82, 20,
/* 0x09f0 */ 72, 0, 0, 24,125, 73, 3,166, 56,224, 0, 0,156,232, 0, 1,
/* 0x0a00 */ 66, 0,255,252, 75,255,255,232, 65,146, 1, 0,233, 82, 0, 0,
/* 0x0a10 */ 121, 74, 7,194,121, 74, 0, 2,127,170,184, 0, 64,158, 0,208,
/* 0x0a20 */ 233, 82, 0, 40,232,242, 0, 32,233, 18, 0, 16,127,170, 56, 0,
/* 0x0a30 */ 64,158, 0, 44,233, 33, 0,160,127, 73, 82, 20,127, 90, 66, 20,
/* 0x0a40 */ 123, 90, 7,100,125, 90, 0,208,125, 74,152, 56, 43,138, 0, 15,
/* 0x0a50 */ 64,157, 0, 12, 57, 64, 0, 0, 72, 0, 0, 60,233, 82, 0, 8,
/* 0x0a60 */ 47,170, 0, 0, 65,158, 1, 8, 56, 96, 0, 0, 56,128, 16, 0,
/* 0x0a70 */ 56,160, 0, 3, 56,192, 0, 34, 56,224,255,255, 57, 0, 0, 0,
/* 0x0a80 */ 75,255,249, 21, 96, 0, 0, 0,124,122, 27,121, 65,130, 0, 96,
/* 0x0a90 */ 57, 64, 0, 1, 61, 32, 68, 0, 61, 0, 56,128, 97, 41, 0, 2,
/* 0x0aa0 */ 47,170, 0, 0,145, 26, 0, 8,145, 58, 0, 0, 61, 32,127,236,
/* 0x0ab0 */ 97, 41,251,120,145, 58, 0, 4, 61, 32, 78,128, 97, 41, 0, 32,
/* 0x0ac0 */ 145, 58, 0, 12, 65,158, 0, 24,127, 67,211,120, 56,128, 0, 16,
/* 0x0ad0 */ 56,160, 0, 5, 75,255,248,217, 96, 0, 0, 0,232, 97, 0,152,
/* 0x0ae0 */ 56,128, 0, 0,127, 69,211,120, 75,255,251, 45,232,161, 0,128,
/* 0x0af0 */ 127,195,243,120,127,100,219,120, 75,255,248,181, 96, 0, 0, 0,
/* 0x0b00 */ 47,163, 0, 0, 64,222,254,168,127,189,176, 64, 64,156, 0, 44,
/* 0x0b10 */ 127,163,235,120,124,157,176, 80,126,133, 7,180, 56,192, 0, 50,
/* 0x0b20 */ 56,224,255,255, 57, 0, 0, 0, 75,255,248,109, 96, 0, 0, 0,
/* 0x0b30 */ 127,189, 24, 0, 64,222,254,120, 59, 57, 0, 1, 58, 82, 0, 56,
/* 0x0b40 */ 127, 57, 7,180, 75,255,253, 4, 47,181, 0, 0, 65,158, 0, 8,
/* 0x0b50 */ 251,245, 0, 0, 56, 33, 1, 64,232,124, 0, 24,124,127, 26, 20,
/* 0x0b60 */ 129,129, 0, 8,125,144,129, 32, 72, 0, 1,228,233, 33, 0,144,
/* 0x0b70 */ 127, 73, 66, 20, 59, 90, 0, 24, 75,255,255, 28, 0, 0, 0, 0,
/* 0x0b80 */ 0, 0, 0, 3,128, 18, 0, 0,124, 8, 2,166, 72, 0, 1,153,
/* 0x0b90 */ 248, 33,255, 17,125, 61, 75,120,129, 35, 0, 0,124,191, 43,120,
/* 0x0ba0 */ 124,218, 51,120, 56,192, 0, 0,125, 88, 83,120,249, 33, 0,144,
/* 0x0bb0 */ 248,161, 0,152,124,229, 59,120, 59,159, 0, 64,129, 35, 0, 4,
/* 0x0bc0 */ 248, 97, 0,120, 59,192, 0, 0,248, 97, 0,136,248,129, 0,128,
/* 0x0bd0 */ 57, 41, 0, 12,248,225, 0,160,249, 1, 0,168,249, 33, 0,112,
/* 0x0be0 */ 56, 97, 0,112, 56,129, 0,144, 75,255,248,141,232,225, 0,160,
/* 0x0bf0 */ 233, 1, 0,168, 56,129, 0,128, 56,160, 0, 0,127, 70,211,120,
/* 0x0c00 */ 127,169,235,120,127, 10,195,120,127,227,251,120, 75,255,250,153,
/* 0x0c10 */ 56,128, 0, 9,124,123, 27,120,127, 67,211,120,127,101,219,120,
/* 0x0c20 */ 75,255,249,245,161, 63, 0, 56,127,137,240, 64, 64,157, 0,184,
/* 0x0c30 */ 129, 60, 0, 0, 47,137, 0, 3, 64,158, 0,156,232,124, 0, 16,
/* 0x0c40 */ 233, 61, 0, 0, 56,128, 0, 0, 56,160, 0, 0,124, 99, 74, 20,
/* 0x0c50 */ 75,255,247,149, 96, 0, 0, 0, 47,131, 0, 0,124,121, 27,120,
/* 0x0c60 */ 64,252, 0, 16, 56, 96, 0,127, 75,255,247, 93, 96, 0, 0, 0,
/* 0x0c70 */ 127,228,251,120, 56,160, 4, 0, 75,255,247,101, 96, 0, 0, 0,
/* 0x0c80 */ 47,163, 4, 0, 64,222,255,224, 57, 32, 0, 0, 56,128, 0, 0,
/* 0x0c90 */ 249, 61, 0, 0,127, 37,203,120, 56,192, 0, 0, 56,224, 0, 0,
/* 0x0ca0 */ 57, 0, 0, 0,127,169,235,120,127, 10,195,120,127,227,251,120,
/* 0x0cb0 */ 75,255,249,245,232,189, 0, 0, 56,128, 0, 7,124,123, 27,120,
/* 0x0cc0 */ 127, 67,211,120, 75,255,249, 81,127, 35,203,120, 75,255,247, 33,
/* 0x0cd0 */ 96, 0, 0, 0, 59,222, 0, 1, 59,156, 0, 56,123,222, 0, 32,
/* 0x0ce0 */ 75,255,255, 68, 56, 33, 0,240,127, 99,219,120, 72, 0, 0,136,
/* 0x0cf0 */ 0, 0, 0, 0, 0, 0, 0, 1,128, 8, 0, 0,249,193,255,112,
/* 0x0d00 */ 249,225,255,120,250, 1,255,128,250, 33,255,136,250, 65,255,144,
/* 0x0d10 */ 250, 97,255,152,250,129,255,160,250,161,255,168,250,193,255,176,
/* 0x0d20 */ 250,225,255,184,251, 1,255,192,251, 33,255,200,251, 65,255,208,
/* 0x0d30 */ 251, 97,255,216,251,129,255,224,251,161,255,232,251,193,255,240,
/* 0x0d40 */ 251,225,255,248,248, 1, 0, 16, 78,128, 0, 32,233,193,255,112,
/* 0x0d50 */ 233,225,255,120,234, 1,255,128,234, 33,255,136,234, 65,255,144,
/* 0x0d60 */ 234, 97,255,152,234,129,255,160,234,161,255,168,234,193,255,176,
/* 0x0d70 */ 234,225,255,184,235, 1,255,192,235, 33,255,200,235, 65,255,208,
/* 0x0d80 */ 235, 97,255,216,235,129,255,224,232, 1, 0, 16,235,161,255,232,
/* 0x0d90 */ 124, 8, 3,166,235,193,255,240,235,225,255,248, 78,128, 0, 32,
/* 0x0da0 */ 0, 0, 0, 0, 0, 16, 4, 4, 0, 0, 0, 0, 0, 16,141,160,
/* 0x0db0 */ 0, 0, 0, 0, 0, 16, 4,116, 0, 0, 0, 0, 0, 16,141,160,
/* 0x0dc0 */ 0, 0, 0, 0, 0, 16, 6, 20, 0, 0, 0, 0, 0, 16,141,160,
/* 0x0dd0 */ 0, 0, 0, 0, 0, 16, 6,164, 0, 0, 0, 0, 0, 16,141,160,
/* 0x0de0 */ 0, 0, 0, 0, 0, 16, 11,136, 0, 0, 0, 0, 0, 16,141,160
};
+137 -134
View File
@@ -1,5 +1,5 @@
/* powerpc64le-linux.elf-fold.h
created from powerpc64le-linux.elf-fold.bin, 3507 (0xdb3) bytes
created from powerpc64le-linux.elf-fold.bin, 3563 (0xdeb) bytes
This file is part of the UPX executable compressor.
@@ -32,21 +32,21 @@
/* clang-format off */
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 3507
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0xfcd8b80f
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0x26b1a29e
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_SIZE 3563
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_ADLER32 0x6f24c843
#define STUB_POWERPC64LE_LINUX_ELF_FOLD_CRC32 0x0511f984
unsigned char stub_powerpc64le_linux_elf_fold[3507] = {
unsigned char stub_powerpc64le_linux_elf_fold[3563] = {
/* 0x0000 */ 127, 69, 76, 70, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0,104, 13, 16, 0, 0, 0, 0, 0,
/* 0x0010 */ 2, 0, 21, 0, 1, 0, 0, 0,160, 13, 16, 0, 0, 0, 0, 0,
/* 0x0020 */ 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0030 */ 1, 0, 0, 0, 64, 0, 56, 0, 2, 0, 0, 0, 0, 0, 0, 0,
/* 0x0040 */ 1, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
/* 0x0050 */ 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0,
/* 0x0060 */ 100, 13, 0, 0, 0, 0, 0, 0,100, 13, 0, 0, 0, 0, 0, 0,
/* 0x0060 */ 156, 13, 0, 0, 0, 0, 0, 0,156, 13, 0, 0, 0, 0, 0, 0,
/* 0x0070 */ 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 6, 0, 0, 0,
/* 0x0080 */ 104, 13, 0, 0, 0, 0, 0, 0,104, 13, 16, 0, 0, 0, 0, 0,
/* 0x0090 */ 104, 13, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0,
/* 0x0080 */ 160, 13, 0, 0, 0, 0, 0, 0,160, 13, 16, 0, 0, 0, 0, 0,
/* 0x0090 */ 160, 13, 16, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, 0,
/* 0x00a0 */ 88, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0,
/* 0x00b0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,248,255, 96, 56,
/* 0x00c0 */ 164, 77, 99,120, 32, 0,128, 78, 0, 0, 0, 96,125, 0, 0, 72,
@@ -77,7 +77,7 @@ unsigned char stub_powerpc64le_linux_elf_fold[3507] = {
/* 0x0250 */ 120,187,228,126,144, 0,161, 56,120,211, 70,127,120,251,231,127,
/* 0x0260 */ 120,179,200,126, 0, 0, 0, 56,112, 0,225,248,112, 0,225, 56,
/* 0x0270 */ 120, 0, 1,248,128, 0, 1,249,128, 0, 1, 57,136, 0, 1,248,
/* 0x0280 */ 120,243,202,127,201, 8, 0, 72,144, 8, 33, 56,120,171,162,126,
/* 0x0280 */ 120,243,202,127, 1, 9, 0, 72,144, 8, 33, 56,120,171,162,126,
/* 0x0290 */ 7, 0, 96,112, 36, 0,130, 64, 0, 0, 3,128, 0, 0, 0, 40,
/* 0x02a0 */ 24, 0,130, 64,136, 1, 1,232, 8, 0, 67,232, 20, 2, 66,124,
/* 0x02b0 */ 0, 0, 99,232, 20, 2, 99,124, 0, 0,117,248,120, 27,127,124,
@@ -109,7 +109,7 @@ unsigned char stub_powerpc64le_linux_elf_fold[3507] = {
/* 0x0450 */ 20, 74, 74,125, 8, 0, 67,249, 0, 0, 67,233, 80, 80, 41,125,
/* 0x0460 */ 0, 0, 35,249, 32, 0,128, 78, 0, 0, 0, 0, 0, 0, 0, 1,
/* 0x0470 */ 128, 0, 0, 0, 38, 0,128,125,166, 2, 8,124, 8, 0,129,145,
/* 0x0480 */ 121, 8, 0, 72, 81,255, 33,248,120, 27,126,124,120, 35,159,124,
/* 0x0480 */ 177, 8, 0, 72, 81,255, 33,248,120, 27,126,124,120, 35,159,124,
/* 0x0490 */ 120, 43,189,124,120, 51,220,124, 0, 0, 38, 46, 0, 0, 63,233,
/* 0x04a0 */ 0, 0,169, 47, 84, 1,158, 65,120,243,195,127,112, 0,129, 56,
/* 0x04b0 */ 12, 0,160, 56, 81,255,255, 75,112, 0, 65,129,116, 0, 33,129,
@@ -133,128 +133,131 @@ unsigned char stub_powerpc64le_linux_elf_fold[3507] = {
/* 0x05d0 */ 120, 75, 37,125, 49,254,255, 75,112, 0, 1,129, 8, 0, 95,233,
/* 0x05e0 */ 0, 0, 63,233, 20, 66, 74,125, 80, 72, 40,125, 8, 0, 95,249,
/* 0x05f0 */ 0, 0, 63,249,168,254,255, 75,176, 0, 33, 56, 8, 0,129,129,
/* 0x0600 */ 32,129,144,125, 68, 7, 0, 72, 0, 0, 0, 0, 0, 0, 0, 3,
/* 0x0600 */ 32,129,144,125,124, 7, 0, 72, 0, 0, 0, 0, 0, 0, 0, 3,
/* 0x0610 */ 128, 4, 0, 0, 0, 0, 35, 44, 32, 0,130, 77,225, 7,105,120,
/* 0x0620 */ 32, 0,130, 76, 0, 0, 36, 47, 0, 0, 67,233, 64, 32,170,127,
/* 0x0630 */ 16, 0,158, 64, 0, 0,131,248, 8, 0,163,248, 32, 0,128, 78,
/* 0x0640 */ 1, 0,170, 43, 12, 0,158, 64, 16, 0,154, 65,232,255,255, 75,
/* 0x0650 */ 0, 0,170, 47, 32, 0,158, 77, 16, 0, 99, 56,204,255,255, 75,
/* 0x0660 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,166, 2, 8,124,
/* 0x0670 */ 38, 0,128,125, 77, 6, 0, 72,120, 75, 53,125, 32, 0, 35,233,
/* 0x0680 */ 120, 67, 14,125, 16, 0, 3,161,120, 83, 94,125,120, 27,124,124,
/* 0x0690 */ 8, 0,129,145,193,254, 33,248, 0, 0, 36, 46,120, 43,176,124,
/* 0x06a0 */ 120, 51,216,124, 0, 0, 85,233,120, 59,239,124, 20, 74, 67,126,
/* 0x06b0 */ 120, 35,145,124, 88, 0,146, 65, 32, 0,234,232, 62, 4, 8, 85,
/* 0x06c0 */ 2, 0,136, 47, 20, 58,234,124, 72, 0,103,232, 80, 80, 99,124,
/* 0x06d0 */ 8, 0,158, 64, 16, 0,103,232, 40, 0,135,232, 0, 0,160, 56,
/* 0x06e0 */ 50, 0,192, 56,255,255,224, 56, 0, 0, 0, 57,169,252,255, 75,
/* 0x06f0 */ 0, 0, 0, 96, 16, 0, 92,161, 0, 0,224, 59, 2, 0,138, 47,
/* 0x0700 */ 220, 0,158, 65,120, 27,127,124,212, 0, 0, 72, 62, 4, 8, 85,
/* 0x0710 */ 16, 0,224, 56, 3, 0,136, 47, 8, 0,158, 64, 0, 0,224, 56,
/* 0x0720 */ 56, 0,188,160, 34, 0,231, 56,120, 83, 67,125, 32, 0,230,120,
/* 0x0730 */ 120,147, 68,126, 1, 0,165, 56, 0, 0, 0, 57,166, 3,169,124,
/* 0x0740 */ 255,255,224, 59, 60, 0, 64, 66, 0, 0,164,128, 1, 0,133, 47,
/* 0x0750 */ 40, 0,158, 64, 16, 0,100,233, 64, 88,191,127, 8, 0,157, 64,
/* 0x0760 */ 120, 91,127,125, 40, 0,164,232, 20, 42,171,124, 64, 40,168,127,
/* 0x0770 */ 8, 0,156, 64,120, 43,168,124, 56, 0,132, 56,200,255,255, 75,
/* 0x0780 */ 248,240,196,127, 56,240,255,127, 20, 66, 4,125,227,231,233,120,
/* 0x0790 */ 80, 64, 31,125, 56,240, 4,125, 28, 0,130, 64, 0, 0,191, 47,
/* 0x07a0 */ 28, 0,158, 64, 0, 0,170, 47, 24, 0,158, 65, 50, 0,192, 56,
/* 0x07b0 */ 16, 0, 0, 72,120,251,227,127, 8, 0, 0, 72, 0, 0, 96, 56,
/* 0x07c0 */ 0, 0,160, 56,180, 7,198,124,255,255,224, 56, 0, 0, 0, 57,
/* 0x07d0 */ 197,251,255, 75, 0, 0, 0, 96, 80, 24,255,127,120, 0, 63, 57,
/* 0x07e0 */ 248,240,211,127,144, 0, 33,249,164, 7, 9,123,248,240,222,127,
/* 0x07f0 */ 152, 0, 33,249,136, 0,193,251, 3, 0, 63, 57, 1, 0,224, 62,
/* 0x0800 */ 160, 0, 33,249,228,131,247,122, 0, 0, 32, 59, 1, 0,247, 98,
/* 0x0810 */ 56, 0, 92,161, 0,200,138,127,244, 2,157, 64, 0, 0, 82,129,
/* 0x0820 */ 36, 0,146, 65, 6, 0,138, 47, 28, 0,158, 64, 16, 0,178,232,
/* 0x0830 */ 120,195, 3,127, 3, 0,128, 56, 20, 42,191,124,217,253,255, 75,
/* 0x0840 */ 188, 2, 0, 72, 1, 0,138, 47,180, 2,158, 64, 40, 0, 82,233,
/* 0x0850 */ 0, 0,170, 47,168, 2,158, 65, 4, 0, 82,131, 81,115, 32, 61,
/* 0x0860 */ 64, 98, 41, 97,250, 22, 90, 87, 48,212, 58,125,126, 7, 84, 87,
/* 0x0870 */ 32, 0,137,122,128, 0, 33,249, 76, 0,146, 65, 8, 0, 82,233,
/* 0x0880 */ 0, 0,170, 47, 64, 0,158, 64, 32, 0, 92,233, 16, 0,178,232,
/* 0x0890 */ 120,195, 3,127, 3, 0,128, 56, 20, 82, 95,125, 20, 42,170,124,
/* 0x08a0 */ 117,253,255, 75, 56, 0,188,160,120,195, 3,127, 5, 0,128, 56,
/* 0x08b0 */ 101,253,255, 75, 54, 0,188,160,120,195, 3,127, 4, 0,128, 56,
/* 0x08c0 */ 85,253,255, 75, 16, 0,210,235, 32, 0,114,235, 40, 0,210,234,
/* 0x08d0 */ 136, 0, 33,233, 20,242,223,127,112, 0, 97,251, 56,152,200,127,
/* 0x08e0 */ 20,218,190,127,120, 0,193,251, 32, 0, 8,121, 20,178,222,126,
/* 0x08f0 */ 20,218,104,127, 80,240,200,127, 20,218, 94,125,208, 0, 74,125,
/* 0x0900 */ 56, 72, 74,125, 20,218,106,127, 12, 0,146, 64, 0, 0,160, 56,
/* 0x0910 */ 8, 0, 0, 72, 2, 0,160, 56,120,163,165,124, 16, 0,146, 64,
/* 0x0920 */ 255,255, 64, 57, 32, 0, 74,121, 16, 0, 0, 72,255,255, 64, 61,
/* 0x0930 */ 251,255, 74, 97, 32, 0, 74,121, 56, 40, 69,125, 16, 0,146, 64,
/* 0x0940 */ 120,131, 7,126, 18, 0,192, 56, 12, 0, 0, 72, 50, 0,192, 56,
/* 0x0950 */ 255,255,224, 56, 8, 0, 82,233,120,243,195,127,120,219,100,127,
/* 0x0960 */ 80, 80, 8,125, 49,250,255, 75, 0, 0, 0, 96, 0, 24,190,127,
/* 0x0970 */ 16, 0,254, 65,127, 0, 96, 56, 77,250,255, 75, 0, 0, 0, 96,
/* 0x0980 */ 24, 0,146, 65,120,139, 35,126,112, 0,129, 56,120,123,229,125,
/* 0x0990 */ 120,115,198,125,225,250,255, 75,227,255, 73,123, 52, 0,130, 65,
/* 0x09a0 */ 208, 0, 93,125,255,255, 29, 57, 56,152, 74,125, 33, 0, 74,121,
/* 0x09b0 */ 12, 0,130, 64, 20, 82,189,127, 24, 0, 0, 72,166, 3, 73,125,
/* 0x09c0 */ 0, 0,224, 56, 1, 0,232,156,252,255, 0, 66,232,255,255, 75,
/* 0x09d0 */ 252, 0,146, 65, 0, 0, 82,233,192, 7, 74,121, 0,184,170,127,
/* 0x09e0 */ 208, 0,158, 64, 40, 0, 82,233, 32, 0,242,232, 16, 0, 18,233,
/* 0x09f0 */ 0, 56,170,127, 44, 0,158, 64,160, 0, 33,233, 20, 82, 73,127,
/* 0x0a00 */ 20, 66, 90,127,100, 7, 90,123,208, 0, 90,125, 56,152, 74,125,
/* 0x0a10 */ 15, 0,138, 43, 12, 0,157, 64, 0, 0, 64, 57, 60, 0, 0, 72,
/* 0x0a20 */ 8, 0, 82,233, 0, 0,170, 47, 8, 1,158, 65, 0, 0, 96, 56,
/* 0x0a30 */ 0, 16,128, 56, 3, 0,160, 56, 34, 0,192, 56,255,255,224, 56,
/* 0x0a40 */ 0, 0, 0, 57, 81,249,255, 75, 0, 0, 0, 96,121, 27,122,124,
/* 0x0a50 */ 96, 0,130, 65, 1, 0, 64, 57, 0, 68, 32, 61,128, 56, 0, 61,
/* 0x0a60 */ 2, 0, 41, 97, 0, 0,170, 47, 8, 0, 26,145, 0, 0, 58,145,
/* 0x0a70 */ 236,127, 32, 61,120,251, 41, 97, 4, 0, 58,145,128, 78, 32, 61,
/* 0x0a80 */ 32, 0, 41, 97, 12, 0, 58,145, 24, 0,158, 65,120,211, 67,127,
/* 0x0a90 */ 16, 0,128, 56, 5, 0,160, 56, 21,249,255, 75, 0, 0, 0, 96,
/* 0x0aa0 */ 152, 0, 97,232, 0, 0,128, 56,120,211, 69,127,105,251,255, 75,
/* 0x0ab0 */ 128, 0,161,232,120,243,195,127,120,219,100,127,241,248,255, 75,
/* 0x0ac0 */ 0, 0, 0, 96, 0, 0,163, 47,172,254,222, 64, 64,176,189,127,
/* 0x0ad0 */ 44, 0,156, 64,120,235,163,127, 80,176,157,124,180, 7,133,126,
/* 0x0ae0 */ 50, 0,192, 56,255,255,224, 56, 0, 0, 0, 57,169,248,255, 75,
/* 0x0af0 */ 0, 0, 0, 96, 0, 24,189,127,124,254,222, 64, 1, 0, 57, 59,
/* 0x0b00 */ 56, 0, 82, 58,180, 7, 57,127, 8,253,255, 75, 0, 0,181, 47,
/* 0x0b10 */ 8, 0,158, 65, 0, 0,245,251, 64, 1, 33, 56, 24, 0,124,232,
/* 0x0b20 */ 20, 26,127,124, 8, 0,129,129, 32,129,144,125,228, 1, 0, 72,
/* 0x0b30 */ 144, 0, 33,233, 20, 66, 73,127, 24, 0, 90, 59, 28,255,255, 75,
/* 0x0b40 */ 0, 0, 0, 0, 0, 0, 0, 3,128, 18, 0, 0,166, 2, 8,124,
/* 0x0b50 */ 153, 1, 0, 72, 17,255, 33,248,120, 75, 61,125, 0, 0, 35,129,
/* 0x0b60 */ 120, 43,191,124,120, 51,218,124, 0, 0,192, 56,120, 83, 88,125,
/* 0x0b70 */ 144, 0, 33,249,152, 0,161,248,120, 59,229,124, 64, 0,159, 59,
/* 0x0b80 */ 4, 0, 35,129,120, 0, 97,248, 0, 0,192, 59,136, 0, 97,248,
/* 0x0b90 */ 128, 0,129,248, 12, 0, 41, 57,160, 0,225,248,168, 0, 1,249,
/* 0x0ba0 */ 112, 0, 33,249,112, 0, 97, 56,144, 0,129, 56,201,248,255, 75,
/* 0x0bb0 */ 160, 0,225,232,168, 0, 1,233,128, 0,129, 56, 0, 0,160, 56,
/* 0x0bc0 */ 120,211, 70,127,120,235,169,127,120,195, 10,127,120,251,227,127,
/* 0x0bd0 */ 157,250,255, 75, 9, 0,128, 56,120, 27,123,124,120,211, 67,127,
/* 0x0be0 */ 120,219,101,127, 49,250,255, 75, 56, 0, 63,161, 64,240,137,127,
/* 0x0bf0 */ 184, 0,157, 64, 0, 0, 60,129, 3, 0,137, 47,156, 0,158, 64,
/* 0x0c00 */ 16, 0,124,232, 0, 0, 61,233, 0, 0,128, 56, 0, 0,160, 56,
/* 0x0c10 */ 20, 74, 99,124,209,247,255, 75, 0, 0, 0, 96, 0, 0,131, 47,
/* 0x0c20 */ 120, 27,121,124, 16, 0,252, 64,127, 0, 96, 56,153,247,255, 75,
/* 0x0c30 */ 0, 0, 0, 96,120,251,228,127, 0, 4,160, 56,161,247,255, 75,
/* 0x0c40 */ 0, 0, 0, 96, 0, 4,163, 47,224,255,222, 64, 0, 0, 32, 57,
/* 0x0c50 */ 0, 0,128, 56, 0, 0, 61,249,120,203, 37,127, 0, 0,192, 56,
/* 0x0c60 */ 0, 0,224, 56, 0, 0, 0, 57,120,235,169,127,120,195, 10,127,
/* 0x0c70 */ 120,251,227,127,249,249,255, 75, 0, 0,189,232, 7, 0,128, 56,
/* 0x0c80 */ 120, 27,123,124,120,211, 67,127,141,249,255, 75,120,203, 35,127,
/* 0x0c90 */ 93,247,255, 75, 0, 0, 0, 96, 1, 0,222, 59, 56, 0,156, 59,
/* 0x0ca0 */ 32, 0,222,123, 68,255,255, 75,240, 0, 33, 56,120,219, 99,127,
/* 0x0cb0 */ 136, 0, 0, 72, 0, 0, 0, 0, 0, 0, 0, 1,128, 8, 0, 0,
/* 0x0cc0 */ 112,255,193,249,120,255,225,249,128,255, 1,250,136,255, 33,250,
/* 0x0cd0 */ 144,255, 65,250,152,255, 97,250,160,255,129,250,168,255,161,250,
/* 0x0ce0 */ 176,255,193,250,184,255,225,250,192,255, 1,251,200,255, 33,251,
/* 0x0cf0 */ 208,255, 65,251,216,255, 97,251,224,255,129,251,232,255,161,251,
/* 0x0d00 */ 240,255,193,251,248,255,225,251, 16, 0, 1,248, 32, 0,128, 78,
/* 0x0d10 */ 112,255,193,233,120,255,225,233,128,255, 1,234,136,255, 33,234,
/* 0x0d20 */ 144,255, 65,234,152,255, 97,234,160,255,129,234,168,255,161,234,
/* 0x0d30 */ 176,255,193,234,184,255,225,234,192,255, 1,235,200,255, 33,235,
/* 0x0d40 */ 208,255, 65,235,216,255, 97,235,224,255,129,235, 16, 0, 1,232,
/* 0x0d50 */ 232,255,161,235,166, 3, 8,124,240,255,193,235,248,255,225,235,
/* 0x0d60 */ 32, 0,128, 78, 0, 0, 0, 0, 4, 4, 16, 0, 0, 0, 0, 0,
/* 0x0d70 */ 104,141, 16, 0, 0, 0, 0, 0,116, 4, 16, 0, 0, 0, 0, 0,
/* 0x0d80 */ 104,141, 16, 0, 0, 0, 0, 0, 20, 6, 16, 0, 0, 0, 0, 0,
/* 0x0d90 */ 104,141, 16, 0, 0, 0, 0, 0,108, 6, 16, 0, 0, 0, 0, 0,
/* 0x0da0 */ 104,141, 16, 0, 0, 0, 0, 0, 76, 11, 16, 0, 0, 0, 0, 0,
/* 0x0db0 */ 104,141, 16
/* 0x0620 */ 32, 0,130, 76, 0, 0, 32, 57, 0, 0,224, 56, 0, 0, 3,233,
/* 0x0630 */ 64, 32,168,127, 20, 0,158, 64, 1, 0, 41, 57, 8, 0,163,248,
/* 0x0640 */ 180, 7, 41,125, 12, 0, 0, 72, 1, 0,168, 43, 64, 0,158, 65,
/* 0x0650 */ 0, 0,168, 47, 60, 0,158, 64, 0, 0,169, 47, 32, 0,158, 76,
/* 0x0660 */ 0, 0,167, 47, 16, 0,222, 65, 0, 0,135,248, 8, 0,167,248,
/* 0x0670 */ 32, 0,128, 78,166, 2, 8,124,127, 0, 96, 56, 16, 0, 1,248,
/* 0x0680 */ 145,255, 33,248, 65,253,255, 75, 0, 0, 0, 96,120, 27,103,124,
/* 0x0690 */ 16, 0, 99, 56,152,255,255, 75, 0, 0, 0, 0, 0, 0, 0, 1,
/* 0x06a0 */ 128, 0, 0, 0,166, 2, 8,124, 38, 0,128,125, 77, 6, 0, 72,
/* 0x06b0 */ 120, 75, 53,125, 32, 0, 35,233,120, 67, 14,125, 16, 0, 3,161,
/* 0x06c0 */ 120, 83, 94,125,120, 27,124,124, 8, 0,129,145,193,254, 33,248,
/* 0x06d0 */ 0, 0, 36, 46,120, 43,176,124,120, 51,216,124, 0, 0, 85,233,
/* 0x06e0 */ 120, 59,239,124, 20, 74, 67,126,120, 35,145,124, 88, 0,146, 65,
/* 0x06f0 */ 32, 0,234,232, 62, 4, 8, 85, 2, 0,136, 47, 20, 58,234,124,
/* 0x0700 */ 72, 0,103,232, 80, 80, 99,124, 8, 0,158, 64, 16, 0,103,232,
/* 0x0710 */ 40, 0,135,232, 0, 0,160, 56, 50, 0,192, 56,255,255,224, 56,
/* 0x0720 */ 0, 0, 0, 57,113,252,255, 75, 0, 0, 0, 96, 16, 0, 92,161,
/* 0x0730 */ 0, 0,224, 59, 2, 0,138, 47,220, 0,158, 65,120, 27,127,124,
/* 0x0740 */ 212, 0, 0, 72, 62, 4, 8, 85, 16, 0,224, 56, 3, 0,136, 47,
/* 0x0750 */ 8, 0,158, 64, 0, 0,224, 56, 56, 0,188,160, 34, 0,231, 56,
/* 0x0760 */ 120, 83, 67,125, 32, 0,230,120,120,147, 68,126, 1, 0,165, 56,
/* 0x0770 */ 0, 0, 0, 57,166, 3,169,124,255,255,224, 59, 60, 0, 64, 66,
/* 0x0780 */ 0, 0,164,128, 1, 0,133, 47, 40, 0,158, 64, 16, 0,100,233,
/* 0x0790 */ 64, 88,191,127, 8, 0,157, 64,120, 91,127,125, 40, 0,164,232,
/* 0x07a0 */ 20, 42,171,124, 64, 40,168,127, 8, 0,156, 64,120, 43,168,124,
/* 0x07b0 */ 56, 0,132, 56,200,255,255, 75,248,240,196,127, 56,240,255,127,
/* 0x07c0 */ 20, 66, 4,125,227,231,233,120, 80, 64, 31,125, 56,240, 4,125,
/* 0x07d0 */ 28, 0,130, 64, 0, 0,191, 47, 28, 0,158, 64, 0, 0,170, 47,
/* 0x07e0 */ 24, 0,158, 65, 50, 0,192, 56, 16, 0, 0, 72,120,251,227,127,
/* 0x07f0 */ 8, 0, 0, 72, 0, 0, 96, 56, 0, 0,160, 56,180, 7,198,124,
/* 0x0800 */ 255,255,224, 56, 0, 0, 0, 57,141,251,255, 75, 0, 0, 0, 96,
/* 0x0810 */ 80, 24,255,127,120, 0, 63, 57,248,240,211,127,144, 0, 33,249,
/* 0x0820 */ 164, 7, 9,123,248,240,222,127,152, 0, 33,249,136, 0,193,251,
/* 0x0830 */ 3, 0, 63, 57, 1, 0,224, 62,160, 0, 33,249,228,131,247,122,
/* 0x0840 */ 0, 0, 32, 59, 1, 0,247, 98, 56, 0, 92,161, 0,200,138,127,
/* 0x0850 */ 244, 2,157, 64, 0, 0, 82,129, 36, 0,146, 65, 6, 0,138, 47,
/* 0x0860 */ 28, 0,158, 64, 16, 0,178,232,120,195, 3,127, 3, 0,128, 56,
/* 0x0870 */ 20, 42,191,124,161,253,255, 75,188, 2, 0, 72, 1, 0,138, 47,
/* 0x0880 */ 180, 2,158, 64, 40, 0, 82,233, 0, 0,170, 47,168, 2,158, 65,
/* 0x0890 */ 4, 0, 82,131, 81,115, 32, 61, 64, 98, 41, 97,250, 22, 90, 87,
/* 0x08a0 */ 48,212, 58,125,126, 7, 84, 87, 32, 0,137,122,128, 0, 33,249,
/* 0x08b0 */ 76, 0,146, 65, 8, 0, 82,233, 0, 0,170, 47, 64, 0,158, 64,
/* 0x08c0 */ 32, 0, 92,233, 16, 0,178,232,120,195, 3,127, 3, 0,128, 56,
/* 0x08d0 */ 20, 82, 95,125, 20, 42,170,124, 61,253,255, 75, 56, 0,188,160,
/* 0x08e0 */ 120,195, 3,127, 5, 0,128, 56, 45,253,255, 75, 54, 0,188,160,
/* 0x08f0 */ 120,195, 3,127, 4, 0,128, 56, 29,253,255, 75, 16, 0,210,235,
/* 0x0900 */ 32, 0,114,235, 40, 0,210,234,136, 0, 33,233, 20,242,223,127,
/* 0x0910 */ 112, 0, 97,251, 56,152,200,127, 20,218,190,127,120, 0,193,251,
/* 0x0920 */ 32, 0, 8,121, 20,178,222,126, 20,218,104,127, 80,240,200,127,
/* 0x0930 */ 20,218, 94,125,208, 0, 74,125, 56, 72, 74,125, 20,218,106,127,
/* 0x0940 */ 12, 0,146, 64, 0, 0,160, 56, 8, 0, 0, 72, 2, 0,160, 56,
/* 0x0950 */ 120,163,165,124, 16, 0,146, 64,255,255, 64, 57, 32, 0, 74,121,
/* 0x0960 */ 16, 0, 0, 72,255,255, 64, 61,251,255, 74, 97, 32, 0, 74,121,
/* 0x0970 */ 56, 40, 69,125, 16, 0,146, 64,120,131, 7,126, 18, 0,192, 56,
/* 0x0980 */ 12, 0, 0, 72, 50, 0,192, 56,255,255,224, 56, 8, 0, 82,233,
/* 0x0990 */ 120,243,195,127,120,219,100,127, 80, 80, 8,125,249,249,255, 75,
/* 0x09a0 */ 0, 0, 0, 96, 0, 24,190,127, 16, 0,254, 65,127, 0, 96, 56,
/* 0x09b0 */ 21,250,255, 75, 0, 0, 0, 96, 24, 0,146, 65,120,139, 35,126,
/* 0x09c0 */ 112, 0,129, 56,120,123,229,125,120,115,198,125,169,250,255, 75,
/* 0x09d0 */ 227,255, 73,123, 52, 0,130, 65,208, 0, 93,125,255,255, 29, 57,
/* 0x09e0 */ 56,152, 74,125, 33, 0, 74,121, 12, 0,130, 64, 20, 82,189,127,
/* 0x09f0 */ 24, 0, 0, 72,166, 3, 73,125, 0, 0,224, 56, 1, 0,232,156,
/* 0x0a00 */ 252,255, 0, 66,232,255,255, 75,252, 0,146, 65, 0, 0, 82,233,
/* 0x0a10 */ 192, 7, 74,121, 0,184,170,127,208, 0,158, 64, 40, 0, 82,233,
/* 0x0a20 */ 32, 0,242,232, 16, 0, 18,233, 0, 56,170,127, 44, 0,158, 64,
/* 0x0a30 */ 160, 0, 33,233, 20, 82, 73,127, 20, 66, 90,127,100, 7, 90,123,
/* 0x0a40 */ 208, 0, 90,125, 56,152, 74,125, 15, 0,138, 43, 12, 0,157, 64,
/* 0x0a50 */ 0, 0, 64, 57, 60, 0, 0, 72, 8, 0, 82,233, 0, 0,170, 47,
/* 0x0a60 */ 8, 1,158, 65, 0, 0, 96, 56, 0, 16,128, 56, 3, 0,160, 56,
/* 0x0a70 */ 34, 0,192, 56,255,255,224, 56, 0, 0, 0, 57, 25,249,255, 75,
/* 0x0a80 */ 0, 0, 0, 96,121, 27,122,124, 96, 0,130, 65, 1, 0, 64, 57,
/* 0x0a90 */ 0, 68, 32, 61,128, 56, 0, 61, 2, 0, 41, 97, 0, 0,170, 47,
/* 0x0aa0 */ 8, 0, 26,145, 0, 0, 58,145,236,127, 32, 61,120,251, 41, 97,
/* 0x0ab0 */ 4, 0, 58,145,128, 78, 32, 61, 32, 0, 41, 97, 12, 0, 58,145,
/* 0x0ac0 */ 24, 0,158, 65,120,211, 67,127, 16, 0,128, 56, 5, 0,160, 56,
/* 0x0ad0 */ 221,248,255, 75, 0, 0, 0, 96,152, 0, 97,232, 0, 0,128, 56,
/* 0x0ae0 */ 120,211, 69,127, 49,251,255, 75,128, 0,161,232,120,243,195,127,
/* 0x0af0 */ 120,219,100,127,185,248,255, 75, 0, 0, 0, 96, 0, 0,163, 47,
/* 0x0b00 */ 172,254,222, 64, 64,176,189,127, 44, 0,156, 64,120,235,163,127,
/* 0x0b10 */ 80,176,157,124,180, 7,133,126, 50, 0,192, 56,255,255,224, 56,
/* 0x0b20 */ 0, 0, 0, 57,113,248,255, 75, 0, 0, 0, 96, 0, 24,189,127,
/* 0x0b30 */ 124,254,222, 64, 1, 0, 57, 59, 56, 0, 82, 58,180, 7, 57,127,
/* 0x0b40 */ 8,253,255, 75, 0, 0,181, 47, 8, 0,158, 65, 0, 0,245,251,
/* 0x0b50 */ 64, 1, 33, 56, 24, 0,124,232, 20, 26,127,124, 8, 0,129,129,
/* 0x0b60 */ 32,129,144,125,228, 1, 0, 72,144, 0, 33,233, 20, 66, 73,127,
/* 0x0b70 */ 24, 0, 90, 59, 28,255,255, 75, 0, 0, 0, 0, 0, 0, 0, 3,
/* 0x0b80 */ 128, 18, 0, 0,166, 2, 8,124,153, 1, 0, 72, 17,255, 33,248,
/* 0x0b90 */ 120, 75, 61,125, 0, 0, 35,129,120, 43,191,124,120, 51,218,124,
/* 0x0ba0 */ 0, 0,192, 56,120, 83, 88,125,144, 0, 33,249,152, 0,161,248,
/* 0x0bb0 */ 120, 59,229,124, 64, 0,159, 59, 4, 0, 35,129,120, 0, 97,248,
/* 0x0bc0 */ 0, 0,192, 59,136, 0, 97,248,128, 0,129,248, 12, 0, 41, 57,
/* 0x0bd0 */ 160, 0,225,248,168, 0, 1,249,112, 0, 33,249,112, 0, 97, 56,
/* 0x0be0 */ 144, 0,129, 56,145,248,255, 75,160, 0,225,232,168, 0, 1,233,
/* 0x0bf0 */ 128, 0,129, 56, 0, 0,160, 56,120,211, 70,127,120,235,169,127,
/* 0x0c00 */ 120,195, 10,127,120,251,227,127,157,250,255, 75, 9, 0,128, 56,
/* 0x0c10 */ 120, 27,123,124,120,211, 67,127,120,219,101,127,249,249,255, 75,
/* 0x0c20 */ 56, 0, 63,161, 64,240,137,127,184, 0,157, 64, 0, 0, 60,129,
/* 0x0c30 */ 3, 0,137, 47,156, 0,158, 64, 16, 0,124,232, 0, 0, 61,233,
/* 0x0c40 */ 0, 0,128, 56, 0, 0,160, 56, 20, 74, 99,124,153,247,255, 75,
/* 0x0c50 */ 0, 0, 0, 96, 0, 0,131, 47,120, 27,121,124, 16, 0,252, 64,
/* 0x0c60 */ 127, 0, 96, 56, 97,247,255, 75, 0, 0, 0, 96,120,251,228,127,
/* 0x0c70 */ 0, 4,160, 56,105,247,255, 75, 0, 0, 0, 96, 0, 4,163, 47,
/* 0x0c80 */ 224,255,222, 64, 0, 0, 32, 57, 0, 0,128, 56, 0, 0, 61,249,
/* 0x0c90 */ 120,203, 37,127, 0, 0,192, 56, 0, 0,224, 56, 0, 0, 0, 57,
/* 0x0ca0 */ 120,235,169,127,120,195, 10,127,120,251,227,127,249,249,255, 75,
/* 0x0cb0 */ 0, 0,189,232, 7, 0,128, 56,120, 27,123,124,120,211, 67,127,
/* 0x0cc0 */ 85,249,255, 75,120,203, 35,127, 37,247,255, 75, 0, 0, 0, 96,
/* 0x0cd0 */ 1, 0,222, 59, 56, 0,156, 59, 32, 0,222,123, 68,255,255, 75,
/* 0x0ce0 */ 240, 0, 33, 56,120,219, 99,127,136, 0, 0, 72, 0, 0, 0, 0,
/* 0x0cf0 */ 0, 0, 0, 1,128, 8, 0, 0,112,255,193,249,120,255,225,249,
/* 0x0d00 */ 128,255, 1,250,136,255, 33,250,144,255, 65,250,152,255, 97,250,
/* 0x0d10 */ 160,255,129,250,168,255,161,250,176,255,193,250,184,255,225,250,
/* 0x0d20 */ 192,255, 1,251,200,255, 33,251,208,255, 65,251,216,255, 97,251,
/* 0x0d30 */ 224,255,129,251,232,255,161,251,240,255,193,251,248,255,225,251,
/* 0x0d40 */ 16, 0, 1,248, 32, 0,128, 78,112,255,193,233,120,255,225,233,
/* 0x0d50 */ 128,255, 1,234,136,255, 33,234,144,255, 65,234,152,255, 97,234,
/* 0x0d60 */ 160,255,129,234,168,255,161,234,176,255,193,234,184,255,225,234,
/* 0x0d70 */ 192,255, 1,235,200,255, 33,235,208,255, 65,235,216,255, 97,235,
/* 0x0d80 */ 224,255,129,235, 16, 0, 1,232,232,255,161,235,166, 3, 8,124,
/* 0x0d90 */ 240,255,193,235,248,255,225,235, 32, 0,128, 78, 0, 0, 0, 0,
/* 0x0da0 */ 4, 4, 16, 0, 0, 0, 0, 0,160,141, 16, 0, 0, 0, 0, 0,
/* 0x0db0 */ 116, 4, 16, 0, 0, 0, 0, 0,160,141, 16, 0, 0, 0, 0, 0,
/* 0x0dc0 */ 20, 6, 16, 0, 0, 0, 0, 0,160,141, 16, 0, 0, 0, 0, 0,
/* 0x0dd0 */ 164, 6, 16, 0, 0, 0, 0, 0,160,141, 16, 0, 0, 0, 0, 0,
/* 0x0de0 */ 132, 11, 16, 0, 0, 0, 0, 0,160,141, 16
};
+1 -1
View File
@@ -217,7 +217,7 @@ read: .globl read
movb $ __NR_read,%al; 5: jmp sysgo
my_bkpt: .globl my_bkpt
int3
int3 // my_bkpt
ret
/* vim:set ts=8 sw=8 et: */
+32 -17
View File
@@ -76,11 +76,10 @@ unsigned Pprotect(void *, size_t, unsigned);
#endif //}
extern void my_bkpt(void *, ...);
static int dprintf(char const *fmt, ...); // forward
#endif /*}*/
extern void my_bkpt(void *, ...);
/*************************************************************************
// configuration section
@@ -125,7 +124,7 @@ xread(Extent *x, char *buf, size_t count)
// util
**************************************************************************/
#if 1 //{ save space
#if !DEBUG //{ save space
#define ERR_LAB error: exit(127);
#define err_exit(a) goto error
#else //}{ save debugging time
@@ -308,6 +307,8 @@ make_hatch_ppc64(
return hatch;
}
#elif defined(__aarch64__) //{
#define NBPI 4
#define NINSTR 3
static void *
make_hatch_arm64(
Elf64_Phdr const *const phdr,
@@ -331,19 +332,17 @@ make_hatch_arm64(
// Try page fragmentation just beyond .text .
( (hatch = (void *)(~3ul & (3+ phdr->p_memsz + phdr->p_vaddr + reloc))),
( phdr->p_memsz==phdr->p_filesz // don't pollute potential .bss
&& (2*4)<=(frag_mask & -(int)(uint64_t)hatch) ) ) // space left on page
// Try Elf64_Ehdr.e_ident[8..15] . warning: 'const' cast away
|| ( (hatch = (void *)(&((Elf64_Ehdr *)(phdr->p_vaddr + reloc))->e_ident[8])),
(phdr->p_offset==0) )
&& (NINSTR*NBPI)<=(frag_mask & -(int)(uint64_t)hatch) ) ) // space left on page
// Allocate and use a new page.
|| ( xprot = 1, hatch = mmap(0, 1<<12, PROT_WRITE|PROT_READ,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) )
)
{
hatch[0] = 0xd4000001; // svc #0
hatch[1] = 0xd65f03c0; // ret (jmp *lr)
hatch[0] = 0xd4000001; // svc #0; # {addr,len,__NR_munmap} already in {x0,x1,w8}
hatch[1] = 0xa8c107e0; // ldp x0,x1,[sp],#2*NBPI # ABI owns x0?
hatch[2] = 0xd65f03c0; // ret (jmp *lr)
if (xprot) {
Pprotect(hatch, 2*sizeof(unsigned), PROT_EXEC|PROT_READ);
Pprotect(hatch, NINSTR * NBPI, PROT_EXEC|PROT_READ);
}
}
else {
@@ -353,6 +352,8 @@ make_hatch_arm64(
DPRINTF("hatch=%%p\n", hatch);
return hatch;
}
#undef NBPI
#undef NINSTR
#endif //}
#if defined(__powerpc64__) || defined(__aarch64__) //{ bzero
@@ -370,22 +371,36 @@ upx_bzero(char *p, size_t len)
#endif //}
static void
auxv_up(Elf64_auxv_t *av, unsigned const type, uint64_t const value)
auxv_up(Elf64_auxv_t *av, unsigned const tag, uint64_t const value)
{
if (!av || (1& (size_t)av)) { // none, or inhibited for PT_INTERP
return;
}
DPRINTF("\\nauxv_up %%d %%p\\n", type, value);
DPRINTF("\\nauxv_up %%d %%p\\n", tag, value);
// Multiple slots can have 'tag' which wastes space but is legal.
// rtld (ld-linux) uses the last one, so we must scan the whole table.
Elf64_auxv_t *ignore_slot = 0;
int found = 0;
for (;; ++av) {
DPRINTF(" %%d %%p\\n", av->a_type, av->a_un.a_val);
if (av->a_type==type || (av->a_type==AT_IGNORE && type!=AT_NULL)) {
av->a_type = type;
if (av->a_type == tag) {
av->a_un.a_val = value;
++found;
}
else if (av->a_type == AT_IGNORE) {
ignore_slot = av;
}
if (av->a_type==AT_NULL) { // done scanning
if (found) {
return;
}
if (av->a_type==AT_NULL) {
// We can't do this as part of the for loop because we overwrite
// AT_NULL too.
if (ignore_slot) {
ignore_slot->a_type = tag;
ignore_slot->a_un.a_val = value;
return;
}
err_exit(20);
ERR_LAB
return;
}
}
+2 -2
View File
@@ -8,11 +8,11 @@ __dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../..
__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3)
top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND)
endif
include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local)
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
vpath %.c $(top_srcdir)/src/stub/src/c
STUBS =
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
include $(top_srcdir)/src/stub/src/c/Makevars-lzma.mk
ifneq ($(UPX_LZMA_VERSION),)
STUBS += lzma_d_cf.S lzma_d_cs.S lzma_d_cn.S
endif
+2 -2
View File
@@ -8,11 +8,11 @@ __dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../..
__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3)
top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND)
endif
include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local)
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
vpath %.c $(top_srcdir)/src/stub/src/c
STUBS =
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
include $(top_srcdir)/src/stub/src/c/Makevars-lzma.mk
ifneq ($(UPX_LZMA_VERSION),)
STUBS += lzma_d_cf.S lzma_d_cs.S
endif
+2 -2
View File
@@ -8,11 +8,11 @@ __dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../..
__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3)
top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND)
endif
include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local)
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
vpath %.c $(top_srcdir)/src/stub/src/c
STUBS =
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
include $(top_srcdir)/src/stub/src/c/Makevars-lzma.mk
ifneq ($(UPX_LZMA_VERSION),)
STUBS += lzma_d_cf.S lzma_d_cs.S
endif
+2 -2
View File
@@ -8,11 +8,11 @@ __dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../..
__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3)
top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND)
endif
include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local)
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
vpath %.c $(top_srcdir)/src/stub/src/c
STUBS =
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
include $(top_srcdir)/src/stub/src/c/Makevars-lzma.mk
ifneq ($(UPX_LZMA_VERSION),)
STUBS += lzma_d_cf.S lzma_d_cs.S
endif
+2 -2
View File
@@ -8,11 +8,11 @@ __dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../..
__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3)
top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND)
endif
include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local)
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
vpath %.c $(top_srcdir)/src/stub/src/c
STUBS =
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
include $(top_srcdir)/src/stub/src/c/Makevars-lzma.mk
ifneq ($(UPX_LZMA_VERSION),)
ifneq ($(wildcard $(WATCOM)/binl/wcl),)
STUBS += lzma_d_cf.S lzma_d_cs.S
+2 -2
View File
@@ -8,11 +8,11 @@ __dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../..
__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3)
top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND)
endif
include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local)
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
vpath %.c $(top_srcdir)/src/stub/src/c
STUBS =
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
include $(top_srcdir)/src/stub/src/c/Makevars-lzma.mk
ifneq ($(UPX_LZMA_VERSION),)
STUBS += lzma_d_cf.S lzma_d_cs.S
endif
+2 -2
View File
@@ -8,11 +8,11 @@ __dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../..
__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3)
top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND)
endif
include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local)
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
vpath %.c $(top_srcdir)/src/stub/src/c
STUBS =
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
include $(top_srcdir)/src/stub/src/c/Makevars-lzma.mk
ifneq ($(UPX_LZMA_VERSION),)
STUBS += lzma_d_cf.S lzma_d_cs.S
endif
+2 -2
View File
@@ -8,11 +8,11 @@ __dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../..
__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3)
top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND)
endif
include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local)
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
vpath %.c $(top_srcdir)/src/stub/src/c
STUBS =
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
include $(top_srcdir)/src/stub/src/c/Makevars-lzma.mk
ifneq ($(UPX_LZMA_VERSION),)
STUBS += lzma_d_cf.S lzma_d_cs.S
endif
+2 -2
View File
@@ -8,11 +8,11 @@ __dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../..
__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3)
top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND)
endif
include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local)
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
vpath %.c $(top_srcdir)/src/stub/src/c
STUBS =
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
include $(top_srcdir)/src/stub/src/c/Makevars-lzma.mk
ifneq ($(UPX_LZMA_VERSION),)
STUBS += lzma_d_cf.S lzma_d_cs.S
endif
+2 -2
View File
@@ -10,11 +10,11 @@ __dir_list += ../../../../../.. ../../../../../../.. ../../../../../../../..
__dir_search = $(firstword $(foreach v,$1,$(if $(wildcard $v/$2),$v)) $3)
top_srcdir := $(call __dir_search,$(__dir_list),src/bele.h,NOT_FOUND)
endif
include $(wildcard $(top_srcdir)/Makevars.global ./Makevars.local)
include $(wildcard $(top_srcdir)/Makevars-global.mk ./Makevars-local.mk)
vpath %.c $(top_srcdir)/src/stub/src/c
STUBS =
include $(top_srcdir)/src/stub/src/c/Makevars.lzma
include $(top_srcdir)/src/stub/src/c/Makevars-lzma.mk
ifneq ($(UPX_LZMA_VERSION),)
STUBS += lzma_d_cf.S lzma_d_cs.S
endif

Some files were not shown because too many files have changed in this diff Show More