PDA

Просмотр полной версии : уни-патч для линукса и для макоси



HPDX2300
13.04.2022, 06:57
UNI-patch для 64-bit линукса есть давно, называется 1C8_UP.exe (размер 30720 байт).
Но в случае с 64-bit бэкбейс.so после патча либа становится нерабочей.
объясню как внедрять UNI-patch в либу бэкбейс для 64-bit линукса и для макоси (она вроде только 64-bit) так, чтобы результат был рабочим.
рецепт проверялся на версиях от 8.3.8 до 8.3.20

HPDX2300
13.04.2022, 07:04
UNI-patch для 64-bit линукса есть давно, называется 1C8_UP.exe (размер 30720 байт).
Но в случае с 64-bit бэкбейс.so после патча либа становится нерабочей.
Далее я объясню как внедрять UNI-patch в либу бэкбейс для 64-bit линукса и для макоси (она вроде только 64-bit) так, чтобы результат был рабочим, ну или, по крайней мере, чтобы патченная либа была основой для будущих репаков - сейчас в коде линуксовой либы не наблюдается поиск наличия патчей, как это сейчас делается в изделии для винды, но в будущем это вскоре появится и в линуксовых и в макосных изделиях.

Кроме уни-патча ещё очень необходим "правильный" делик-патч (deLIC-patch), но в этой теме я для краткости изложения про него не буду писать, а то букафф будет оч.много.
Что нам понадобится? виндовый 1с8_UP.exe (размер 30720 байт) и железнодорожная кувалда весом около 3кг.


1) Виндовый 1C8_UP.exe можно применить к линуксовой либе бэкбейс и узнать адрес HASP-API-EP - начиная с этого адреса 1C8_UP запишет 64-битный уни-патч размером 0x2A00, последний полезно сохранить в отдельном файле, назовем его up64.bin (в нем, скорее всего, будет дамп ключика для 0x64=100 клиентских лицензий), из него можно легко получить заготовки уни-патчей up05.bin, up10.bin, up20.bin, up50.bin для 5,10,20,50 к.л..

найдем начало блока "уни-патч-х64":

$ hexdump -C 1c8_UP.exe | grep "51 53 52"
00002200 51 53 52 57 56 e8 88 13 00 00 00 00 00 00 00 00 |QSRWV...........|

сохраним блок "уни-патч-х64" в файл:

$ dd if=1c8_UP.exe of=up64.bin bs=1 skip=$((0x2200)) count=$((0x2A00)) conv=notrunc
10752+0 records in
10752+0 records out
10752 bytes (11 kB) copied, 0,0493868 s, 218 kB/s

сделаем заготовки уни-патчей up05.bin, up10.bin, up20.bin, up50.bin для 5,10,20,50 к.л..

$ cp up64.bin up05.bin
$ cp up64.bin up10.bin
$ cp up64.bin up20.bin
$ cp up64.bin up50.bin

$ printf '\x05' | dd of=up05.bin bs=1 seek=$((0x11F8)) count=1 conv=notrunc
$ printf '\x05' | dd of=up05.bin bs=1 seek=$((0x137E)) count=1 conv=notrunc

$ printf '\x0A' | dd of=up10.bin bs=1 seek=$((0x11F8)) count=1 conv=notrunc
$ printf '\x0A' | dd of=up10.bin bs=1 seek=$((0x137E)) count=1 conv=notrunc

$ printf '\x14' | dd of=up20.bin bs=1 seek=$((0x11F8)) count=1 conv=notrunc
$ printf '\x14' | dd of=up20.bin bs=1 seek=$((0x137E)) count=1 conv=notrunc

$ printf '\x32' | dd of=up50.bin bs=1 seek=$((0x11F8)) count=1 conv=notrunc
$ printf '\x32' | dd of=up50.bin bs=1 seek=$((0x137E)) count=1 conv=notrunc


2) найдем в файле backbas.so (или backbas.dylib) HASP_API64_EP поиском цепочки [41 81 78 08 6C 68 73 68]:
в MC (Midnight Commander) жмем кнопки на файле backbas.so (или backbas.dylib):
Shift+F3, F4, F7, искать "41 81 78 08 6C 68 73 68" (Hexadecimal)
смещение смотреть в правом верхнем углу (0x005B7DB5)
в backbas.so такая цепочка уникальна, в backbas.dylib их две, берите первую.

калькулятором вычисляем (в режиме Hexadecimal):
для Linux x64 вычитать 0х75: HASP_API64_EP = 5B7DB5 - 75 = 5B7D40 (значения для 20-1363.lnx64)
для MacOSX вычитать 0х4A: HASP_API64_EP = 58A23A - 4A = 58A1F0 (значения для 21-1140.macos)


3) запишем блок "уни-патч-х64" в файл либы бэкбейс:

место записи "уни-патч-х64" вычисляется на калькуляторе так: HASP_API64_EP - 0x2A00
т.е. надо записать уни-патч-х64 (его размер 0x2A00), сдвинув его к началу файла, так, чтобы не перезаписалась функция, которая начинается с точки HASP_API64_EP (её начало мы ниже подрихтуем)

для Linux x64 (пример для 20-1363.lnx64):
HASP_API64_EP - 2A00 = 5B7D40 - 2A00 = 5B5340

$ dd if=up64.bin of=backbas.so bs=1 seek=$((0x5B5340)) count=$((0x2A00)) conv=notrunc
10752+0 records in
10752+0 records out
10752 bytes (11 kB) copied, 0,0334565 s, 321 kB/s
https://www.upload.ee/image/14046708/backbas.so-8.3.20-1363.uni-patch.diff.2.png

для MacOSX (пример для 21-1140.macos):
HASP_API64_EP - 2A00 = 58A1F0 - 2A00 = 5877F0

$ dd if=up64.bin of=backbas.dylib.2 bs=1 seek=$((0x5877F0)) count=$((0x2A00)) conv=notrunc
10752+0 records in
10752+0 records out
10752 bytes (11 kB) copied, 0,0329808 s, 326 kB/s
https://www.upload.ee/image/14046715/backbas.dylib-8.3.21-1140.uni-patch.diff.2.png


4) СПОСОБЫ ПЕРЕДАЧИ АРГУМЕНТОВ ПРИ ВЫЗОВЕ ФУНКЦИЙ:
В Windows x64 метод передачи всех параметров немного похож на fastcall.
Первые 4 аргумента записываются в регистры RCX,RDX,R8,R9, а остальные — в стек.
Метод передачи аргументов в Linux x64 и в MacOSX почти такой же, как и в Windows, но используются 6 регистров (RDI,RSI,RDX,RCX,R8,R9) вместо 4.
Код уни-патча компилировался в Windows x64, а работать будет в Linux x64 и в MacOSX - 9 параметров для функции HASP_API64_EP оформляются в structure и передаются указателем на неё. Линуксовый и макосный код передает указатель в регистре RDI, а виндовый код уни-патча ожидает его в регистре RCX.
Вот так изменим начало фунции HASP_API64_EP (в Linux x64 и в MacOSX):

57 push rdi
59 pop rcx т.е. значение регистра rdi записывается в регистр rcx
E9 F9 D5 FF FF jmp в начало блока уни-патч-х64 т.е. jmp -10759

для Linux x64 (пример для 20-1363.lnx64) запись по адресу HASP_API64_EP:

$ printf '\x57\x59\xE9\xF9\xD5\xFF\xFF' | dd of=backbas.so bs=1 seek=$((0x5B7D40)) count=7 conv=notrunc
7+0 records in
7+0 records out
7 bytes (7 B) copied, 0,000178756 s, 39,2 kB/s
https://www.upload.ee/image/14046710/backbas.so-8.3.20-1363.uni-patch.diff.3.png

для MacOSX (пример для 21-1140.macos) запись по адресу HASP_API64_EP:

$ printf '\x57\x59\xE9\xF9\xD5\xFF\xFF' | dd of=backbas.dylib bs=1 seek=$((0x58A1F0)) count=7 conv=notrunc
7+0 records in
7+0 records out
7 bytes (7 B) copied, 0,000166049 s, 42,2 kB/s
https://www.upload.ee/image/14046716/backbas.dylib-8.3.21-1140.uni-patch.diff.3.png


5) Код уни-патча скомпилирован так, что он не теряет работоспособность при изменении адреса его загрузки в память. Именно поэтому его можно перемещать в секции .text
А ещё код уни-патча использует свои локальные переменные и будет писать данные прямо в памяти своего кода.
Если не изменить аттрибуты памяти, в которой расположен код уни-патча, с R-X (можно читать и исполнять) на RWX (можно читать, писать и исполнять), то при первом же выполнении кода уни-патча произойдет крах - ОС прихлопнет процесс при попытке произвести запись в память, в которой это не допускается.
Осталось совсем чуть-чуть - надо изменить в заголовке либы backbas аттрибуты секции .text с R-X на RWX.
Чтобы понять "что, где и как будем менять в заголовке файла либы?" применим 010editor т.к. он научен понимать либы линукса и макоси. Можно обойтись без 010editor, главное - решить задачу "изменить аттрибуты секции .text с R-X на RWX".

для Linux x64 (пример для 20-1363.lnx64) запись по адресу 0x7С:
https://www.upload.ee/image/14046711/backbas.so-8.3.20-1363.uni-patch.diff.4.png

$ printf '\x07' | dd of=backbas.so bs=1 seek=$((0x7С)) count=1 conv=notrunc
1+0 records in
1+0 records out
1 byte (1 B) copied, 0,00011292 s, 8,9 kB/s
https://www.upload.ee/image/14046707/backbas.so-8.3.20-1363.uni-patch.diff.1.png

для MacOSX (пример для 21-1140.macos) запись по адресу 0x5C:
https://www.upload.ee/image/14046717/backbas.dylib-8.3.21-1140.uni-patch.diff.4.png

$ printf '\x07' | dd of=backbas.dylib bs=1 seek=$((0x5C)) count=1 conv=notrunc
1+0 records in
1+0 records out
1 byte (1 B) copied, 0,000161868 s, 6,2 kB/s
https://www.upload.ee/image/14046713/backbas.dylib-8.3.21-1140.uni-patch.diff.1.png

HPDX2300
13.04.2022, 07:45
возможно, получится нерабочее изделие и будет падать (особенно в макоси). пишите - разберемся
для примера:
https://www.upload.ee/files/14046944/backbas.so-v20-1363.html

HPDX2300
13.04.2022, 17:06
тестовая версия 21-1197.linux-x64 "взлетела" с унипатчем:

$ dd if=up64.bin of=backbas.so bs=1 seek=$((0x5ED5F0)) count=$((0x2A00)) conv=notrunc
10752+0 records in
10752+0 records out
10752 bytes (11 kB) copied, 0,0313987 s, 342 kB/s

$ printf '\x57\x59\xE9\xF9\xD5\xFF\xFF' | dd of=backbas.so bs=1 seek=$((0x5EFFF0)) count=7 conv=notrunc
7+0 records in
7+0 records out
7 bytes (7 B) copied, 0,000137062 s, 51,1 kB/s

$ printf '\x07' | dd of=backbas.so bs=1 seek=$((0x7c)) count=1 conv=notrunc
1+0 records in
1+0 records out
1 byte (1 B) copied, 0,000142588 s, 7,0 kB/s
погоняем, понаблюдаем

HPDX2300
15.04.2022, 00:15
Если у кого нет 1с8_UP.exe, то берите любой репак для windows-х64 и в нём есть backbas.dll, содержащая унипатч.
унипатч начинается цепочкой байтов: 51 53 52 57 56 e8 88 13
если не установлен hexdump, то и не нужен - во 2) пункте объяснял как в MC (Midnight Commander) искать цепочку байтов

HPDX2300
20.04.2022, 19:46
В изделии для макоси ver.21-1140 исполняемые файлы имеют цифр.подпись (смотреть "man codesign"), поэтому после патча либы бэкбейс изделие не "взлетит" без дополнительных "ударов кувалдой".
Изделие версии 8-2137 не имеет цифр.подпись и потому "взлетает" после патча либы бэкбейс унипатчем.
Мне лениво выяснять ответ на вопрос "с какой версии и релиза началось подписывание исполняемых файлов?" - я не фанат макоси.

$ codesign -d -v /opt/1cv8/8.3.21.1140/backbas.dylib
Executable=/opt/1cv8/8.3.21.1140/backbas.dylib
Identifier=backbas
Format=Mach-O thin (x86_64)
CodeDirectory v=20500 size=86707 flags=0x10000(runtime) hashes=2701+5 location=embedded
Signature size=8924
Timestamp=Dec 28, 2021 at 2:56:58 PM
Info.plist=not bound
TeamIdentifier=XS78KJN5SE
Runtime Version=10.12.0
Sealed Resources=none
Internal requirements count=1 size=168


$ codesign -d -vvv /opt/1cv8/8.3.21.1140/backbas.dylib
Executable=/opt/1cv8/8.3.21.1140/backbas.dylib
Identifier=backbas
Format=Mach-O thin (x86_64)
CodeDirectory v=20500 size=86707 flags=0x10000(runtime) hashes=2701+5 location=embedded
Hash type=sha256 size=32
CandidateCDHash sha256=9d44b6d1c10d22018466d5b3dd66ae8d528c5c5e
Hash choices=sha256
CDHash=9d44b6d1c10d22018466d5b3dd66ae8d528c5c5e
Signature size=8924
Authority=Developer ID Application: 1C-SOFT, OOO (XS78KJN5SE)
Authority=Developer ID Certification Authority
Authority=Apple Root CA
Timestamp=Dec 28, 2021 at 2:56:58 PM
Info.plist=not bound
TeamIdentifier=XS78KJN5SE
Runtime Version=10.12.0
Sealed Resources=none
Internal requirements count=1 size=168
Если будет у меня время и настроение - найду способ отломить ц.п. и расскажу.

Кстати, уни-патч в либе для макоси можно сдвигать от точки HASP_API64_EP в направлении к концу файла на 2 байта (код HASP_API64 для макоси и код HASP_API64 для линукса различаются и по нумерации версии и по содержанию)
т.е. либу для макоси вот так мона патчить:

# значения для 21-1140.macos
HASP_API64_EP=0x58A1F0
dd if=up64.bin of=backbas.dylib bs=1 seek=$(($HASP_API64_EP + 2)) count=$((0x2A00)) conv=notrunc
printf '\x57\x59' | dd of=backbas.dylib bs=1 seek=$(($HASP_API64_EP)) count=2 conv=notrunc
printf '\x07' | dd of=backbas.dylib bs=1 seek=$((0x5C)) count=1 conv=notrunc

HPDX2300
21.04.2022, 15:13
...найду способ отломить ц.п. и расскажу...
удаление ц.п.: codesign --remove-signature


$ sudo chown -R UID:GID /opt/1cv8/8.3.21.1140
$ codesign --remove-signature /opt/1cv8/8.3.21.1140/1cv8
$ codesign --remove-signature /opt/1cv8/8.3.21.1140/1cv8c
$ codesign --remove-signature /opt/1cv8/8.3.21.1140/backbas.dylib
... так с каждым исполняемым файлом


сказанного достаточно, тему закрываю.

HPDX2300
17.05.2022, 15:45
"эндоскоп" (для заглядывания под "капот"), онже отладчик и дизасемблер IDA:
бесплатная IDA 7.7 для Linux на сервере upload.ee (https://www.upload.ee/files/14139542/idafree77_linux.run.html)

$ sha1sum -b idafree77_linux.run
42038657317ebea44954b484a236e7f8cbc7d2fa idafree77_linux.run

бесплатная IDA 7.7 для Windows-x64 на сервере upload.ee (https://www.upload.ee/files/14145304/idafree77_windows.exe.html)
для проверки SHA1-checksums:

$ sha1sum -b idafree77_windows.exe
1f815be20a119cc835e7678a32032ab130834d49 idafree77_windows.exe

бесплатная IDA 7.7 для MacOSX (macOS не старше 10.14) (https://www.upload.ee/files/14146648/idafree77_mac.app.zip.html)

$ sha1sum -b idafree77_mac.app.zip
195ced3615ea9975953271a68a4b58a8b754f67e idafree77_mac.app.zip

бесплатная IDA 7.6 для MacOSX, работает на HighSierra (macOS 10.13.6) (https://www.upload.ee/files/14147083/idafree76_mac.app.zip.html)

$ sha1sum -b idafree76_mac.app.zip
95cd7b918bb2aa47fb10d05c606609a0e91de285 *idafree76_mac.app.zip

HPDX2300
22.05.2022, 10:04
В посте #2 в пункте 5) была опечатка в коде команды dd - "seek=$((0x7С))" - вместо латинской написана русская буква "С".
Те, кто копи-пастят код команды и не анализируют её выхлоп, получают в результате нерабочую либу.
Всё надо делать осознанно, а не механически.

HPDX2300
22.05.2022, 16:01
патчер для линукса-x64.
код ниже сохранить в файл unipatch.py
запускать так (либа бэкбейс должна быть рядом - в том же каталоге):
python unipatch.py
проверялось на питоне 2.7.5


import os, glob, mmap

pattern_hex = '\x41\x81\x78\x08\x6C\x68\x73\x68'
unipatch_hex = '\
\x51\x53\x52\x57\x56\xe8\x88\x13\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x 00\x00\x00\x00\
\x00\x00\xa4\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x 00\x00\x00\x00\
\x00\x00\xac\x00\x00\x00\x00\x00\x00\x00\xb0\x00\x 00\x00\x00\x00\
\x00\x00\xb1\x00\x00\x00\x00\x00\x00\x00\xb2\x00\x 00\x00\x00\x00\
\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\xfa\x10\x 00\x00\x00\x00\
\x00\x00\x06\x11\x00\x00\x00\x00\x00\x00\xc4\x10\x 00\x00\x00\x00\
\x00\x00\xc8\x10\x00\x00\x00\x00\x00\x00\xcc\x10\x 00\x00\x00\x00\
\x00\x00\xd0\x10\x00\x00\x00\x00\x00\x00\xd4\x10\x 00\x00\x00\x00\
\x00\x00\xd5\x10\x00\x00\x00\x00\x00\x00\xd6\x10\x 00\x00\x00\x00\
\x00\x00\x1e\x11\x00\x00\x00\x00\x00\x00\x0e\x13\x 00\x00\x00\x00\
\x00\x00\x1a\x13\x00\x00\x00\x00\x00\x00\x7a\x23\x 25\x41\x71\xcf\
\x1d\x28\x01\x00\x00\x00\x01\x00\x00\x00\xfb\x13\x 15\xea\x8f\xea\
\x73\xea\xeb\xea\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\xd0\x bc\x08\x3f\x28\
\x30\x02\xe5\x6f\x3e\x39\xd4\x76\x9f\x6f\xd4\x76\x 21\x57\x02\x41\
\xc3\xcc\xd5\xa7\x4b\x4c\xc2\x81\x64\x84\x55\x76\x 41\xe1\x5e\x2c\
\x18\xa7\x6f\xf2\x08\xe1\x40\xa0\x4e\x94\xa7\x4a\x b5\x41\x53\x6d\
\x48\xc3\x6d\xe4\xa4\xec\xc8\x9c\x27\x7d\xe0\x79\x 51\xb1\x25\xc6\
\xa1\x69\x14\xfb\x03\x7b\xc5\x1b\xe3\xef\xa3\x1e\x 04\xb5\xa5\xe1\
\x4e\xc8\x5d\x28\x99\x30\x10\x39\x2f\x8d\xb3\xe0\x 95\xf0\x36\x91\
\x56\x46\xc4\x75\x01\x00\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\x57\x42\x50\x54\x01\x00\x00\x00\x 70\x00\x00\x00\
\x00\x00\x21\x11\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\xff\xff\
\x00\x01\x02\x4a\x1f\x01\x18\x02\x08\x01\x14\x2c\x 33\x00\xcb\x70\
\x6d\x3b\xd6\xc5\x93\x1b\x0a\x00\x00\x00\x04\x00\x 00\x00\xdb\x30\
\x9a\x21\x2c\x25\xde\x65\x6c\x65\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x 00\x00\x00\x08\
\x97\xf2\x84\xcf\xdc\x4e\x1e\xbb\x55\x6e\x19\x91\x 2d\x4a\x74\xa3\
\x33\x7d\x33\x69\x30\xe3\x5c\x64\xe5\xd7\x5b\x51\x c3\xc4\x9d\x0f\
\xf7\xd5\xf6\xa4\x34\x0e\xe5\xe5\x4b\x63\x44\x2e\x 80\x73\x06\xf8\
\x6a\xd1\x37\xba\x0f\x9a\xfd\x74\x7b\x5c\x89\xae\x 3b\xac\x18\xbb\
\x71\x8a\x9b\x85\x7c\x13\x1d\x9f\xbf\x55\x82\x70\x 6d\x87\xda\x18\
\x0a\xbd\xc4\x22\x05\xa5\x28\xd4\x54\xb2\xbc\x38\x f1\xf2\xe6\xf4\
\x54\x09\x42\x4c\xb2\xe1\x1d\xab\x64\x00\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x 00\x00\x64\x00\
\x00\x00\xfe\xff\x00\x01\x02\x4a\x1f\x01\x04\x07\x 08\x01\x10\x34\
\x07\x00\x5e\x48\x89\xc9\x48\x31\xc0\x48\x31\xd2\x 8a\x41\x16\x89\
\x06\x48\x89\xf3\x48\x83\xc6\x10\x48\x83\xf8\x01\x 75\x0d\xc6\x41\
\x28\x01\xc6\x41\x30\x00\xe9\x32\x02\x00\x00\x66\x 8b\x51\x20\xc1\
\xe2\x10\x66\x8b\x51\x24\x48\x8b\x3e\x3b\x14\x3e\x 75\x02\x74\x10\
\x48\x83\xc6\x50\x48\x8b\x3e\x3b\x14\x3e\x0f\x85\x 0d\x02\x00\x00\
\x89\x53\x04\x48\x89\x73\x08\x48\x83\xf8\x03\x74\x 06\x48\x83\xf8\
\x2c\x75\x21\x48\x03\x76\x38\x48\x31\xc0\x8b\x41\x 28\x48\xd1\xe0\
\x48\x0f\xb7\x04\x06\x89\x41\x2c\xc7\x41\x30\x00\x 00\x00\x00\xe9\
\xd9\x01\x00\x00\x48\x83\xf8\x04\x74\x06\x48\x83\x f8\x2d\x75\x21\
\x48\x03\x76\x38\x48\x31\xc0\x8b\x41\x28\x66\x8b\x 79\x2c\x48\xd1\
\xe0\x66\x89\x3c\x06\xc7\x41\x30\x00\x00\x00\x00\x e9\xac\x01\x00\
\x00\x48\x83\xf8\x05\x75\x2a\x48\x31\xc0\x48\x8b\x 56\x18\x8b\x04\
\x16\x89\x41\x28\x48\x8b\x56\x10\x8b\x04\x16\x89\x 41\x2c\xc7\x41\
\x30\x66\x00\x00\x00\xc7\x41\x34\x54\x64\x00\x00\x e9\x7c\x01\x00\
\x00\x48\x83\xf8\x06\x74\x05\x83\xf8\x2e\x75\x22\x 48\x03\x76\x08\
\x48\x31\xc0\x8b\x06\x48\x0f\xb7\xf8\xc1\xe8\x10\x 89\x79\x28\x89\
\x41\x2c\xc7\x41\x30\x00\x00\x00\x00\xe9\x4f\x01\x 00\x00\x48\x83\
\xf8\x28\x75\x1a\xc7\x41\x28\x00\x00\x00\x00\xc7\x 41\x2c\x00\x00\
\x00\x00\xc7\x41\x30\x00\x00\x00\x00\xe9\x2f\x01\x 00\x00\x48\x83\
\xf8\x2a\x75\x0c\xc7\x41\x30\x00\x00\x00\x00\xe9\x 1d\x01\x00\x00\
\x48\x83\xf8\x2b\x75\x0c\xc7\x41\x30\x00\x00\x00\x 00\xe9\x0b\x01\
\x00\x00\x48\x83\xf8\x30\x75\x05\xe9\x00\x01\x00\x 00\x48\x83\xf8\
\x32\x74\x06\x48\x83\xf8\x34\x75\x32\x48\x03\x76\x 38\x48\x31\xc0\
\x48\x8b\x79\x40\x8b\x41\x28\x48\xd1\xe0\x48\x01\x c6\x48\x89\xc8\
\x48\x31\xc9\x8b\x48\x2c\x9c\xfc\xf3\x66\xa5\x9d\x 48\x89\xc1\xc7\
\x41\x30\x00\x00\x00\x00\xe9\xc2\x00\x00\x00\x83\x f8\x33\x74\x06\
\x48\x83\xf8\x33\x75\x35\x48\x03\x76\x38\x48\x31\x c0\x48\x8b\x79\
\x40\x8b\x41\x28\x48\xd1\xe0\x48\x01\xc6\x48\x89\x c8\x48\x31\xc9\
\x8b\x48\x2c\x48\x87\xf7\x9c\xfc\xf3\x66\xa5\x9d\x 48\x89\xc1\xc7\
\x41\x30\x00\x00\x00\x00\xe9\x82\x00\x00\x00\x83\x f8\x3c\x74\x05\
\x83\xf8\x58\x75\x31\x83\x79\x2c\x08\x72\x72\x51\x 48\x81\xec\x00\
\x01\x00\x00\x49\x89\xe0\x48\x31\xd2\x8b\x51\x2c\x 48\x8b\x49\x40\
\xe8\x85\x0b\x00\x00\x48\x81\xc4\x00\x01\x00\x00\x 59\xc7\x41\x30\
\x00\x00\x00\x00\xeb\x47\x83\xf8\x3d\x74\x05\x83\x f8\x59\x75\x31\
\x83\x79\x2c\x08\x72\x37\x51\x48\x31\xd2\x8b\x51\x 2c\x48\x8b\x49\
\x40\x48\x81\xec\x00\x01\x00\x00\x49\x89\xe0\xe8\x 34\x10\x00\x00\
\x48\x81\xc4\x00\x01\x00\x00\x59\xc7\x41\x30\x00\x 00\x00\x00\xeb\
\x0c\x83\xf8\x55\x75\x02\xeb\x05\xb8\x78\x56\x34\x 12\x5e\x5f\x5a\
\x5b\x59\xc3\x56\x57\x48\x89\xd6\x48\x89\xcf\x31\x c9\x44\x89\xc1\
\xf3\xa4\x5f\x5e\xc3\x48\x89\x54\x24\x10\x89\x4c\x 24\x08\x48\x83\
\xec\x18\x8b\x44\x24\x20\x83\xe0\x1f\x89\x44\x24\x 20\x8b\x44\x24\
\x20\xc1\xe8\x02\x25\xfe\x00\x00\x00\x48\x8b\x4c\x 24\x28\x0f\xb6\
\x44\x01\x02\xb9\x1f\x00\x00\x00\x2b\x4c\x24\x20\x 83\xe1\x07\xd3\
\xf8\x83\xe0\x01\x88\x44\x24\x04\x0f\xb6\x44\x24\x 04\x83\xf0\x01\
\x8b\x4c\x24\x20\xc1\xe9\x03\x21\xc8\x8b\x4c\x24\x 20\x31\xc1\x89\
\xc8\x8b\x4c\x24\x20\xc1\xe9\x04\x31\xc8\x89\x04\x 24\x48\x8b\x44\
\x24\x28\x8b\x40\x0f\xc1\xe8\x0a\x8b\x0c\x24\x31\x c1\x89\xc8\x89\
\x04\x24\x48\x8b\x44\x24\x28\x8b\x40\x0f\xc1\xe8\x 07\x8b\x0c\x24\
\x31\xc1\x89\xc8\x89\x04\x24\x8b\x44\x24\x20\x83\x e0\x02\x85\xc0\
\x74\x15\x48\x8b\x44\x24\x28\x8b\x40\x0f\xc1\xe8\x 05\x8b\x0c\x24\
\x31\xc1\x89\xc8\x89\x04\x24\x8b\x44\x24\x20\x83\x e0\x04\x85\xc0\
\x74\x15\x48\x8b\x44\x24\x28\x8b\x40\x0f\xc1\xe8\x 08\x8b\x0c\x24\
\x31\xc1\x89\xc8\x89\x04\x24\x8b\x04\x24\x83\xe0\x 01\x89\x04\x24\
\x8b\x44\x24\x20\x83\xe0\x01\xc1\xe0\x02\x48\x8b\x 4c\x24\x28\x8b\
\x49\x0f\x31\xc1\x89\xc8\x48\x8b\x4c\x24\x28\x89\x 41\x0f\x48\x8b\
\x44\x24\x28\x8b\x40\x0f\xd1\xe0\x48\x8b\x4c\x24\x 28\x89\x41\x0f\
\x48\x8b\x44\x24\x28\x8b\x0c\x24\x8b\x40\x0f\x09\x c8\x48\x8b\x4c\
\x24\x28\x89\x41\x0f\x48\x8b\x44\x24\x28\x8b\x40\x 0f\xc1\xe8\x0b\
\x0f\xb6\x4c\x24\x04\x31\xc8\x83\xe0\x01\x48\x83\x c4\x18\xc3\x48\
\x89\x54\x24\x10\x48\x89\x4c\x24\x08\x48\x83\xec\x 48\xc7\x44\x24\
\x30\x1f\x00\x00\x00\x48\x8b\x44\x24\x58\x8b\x40\x 14\x89\x44\x24\
\x20\x8b\x44\x24\x20\x35\x89\x19\x08\x01\x89\x44\x 24\x20\x8b\x44\
\x24\x20\xc1\xe8\x0c\x89\x44\x24\x20\xc7\x44\x24\x 24\x0a\x00\x00\
\x00\xeb\x0a\x8b\x44\x24\x24\xff\xc8\x89\x44\x24\x 24\x83\x7c\x24\
\x24\x05\x76\x69\x0f\xb6\x44\x24\x20\x83\xe0\x0f\x 89\x44\x24\x2c\
\x83\x7c\x24\x2c\x00\x74\x0a\xc7\x44\x24\x38\x01\x 00\x00\x00\xeb\
\x08\xc7\x44\x24\x38\x00\x00\x00\x00\x83\x7c\x24\x 2c\x0b\x73\x0a\
\xc7\x44\x24\x3c\x01\x00\x00\x00\xeb\x08\xc7\x44\x 24\x3c\x00\x00\
\x00\x00\x8b\x44\x24\x3c\x8b\x4c\x24\x38\x21\xc1\x 89\xc8\x8b\x4c\
\x24\x24\xd3\xe0\x8b\x4c\x24\x30\x09\xc1\x89\xc8\x 89\x44\x24\x30\
\x8b\x44\x24\x20\xc1\xe8\x04\x89\x44\x24\x20\xeb\x 86\x8b\x44\x24\
\x30\xc1\xe8\x06\x48\x8b\x4c\x24\x58\x88\x41\x13\x 48\x8b\x44\x24\
\x58\x0f\xb6\x40\x13\xc1\xe0\x06\x83\xc8\x1f\x48\x 8b\x4c\x24\x58\
\x89\x41\x0f\xc7\x44\x24\x24\x01\x00\x00\x00\xc7\x 44\x24\x28\x00\
\x00\x00\x00\xeb\x0a\x8b\x44\x24\x24\xff\xc0\x89\x 44\x24\x24\x83\
\x7c\x24\x24\x27\x77\x6a\x8b\x44\x24\x28\x48\x8b\x 4c\x24\x50\x0f\
\xb6\x04\x01\x48\x8b\x54\x24\x58\x89\xc1\xe8\xa6\x fd\xff\xff\x89\
\x44\x24\x34\x48\x8b\x44\x24\x50\x8b\x00\x83\xe0\x 01\xd1\xe0\x0b\
\x44\x24\x34\x89\x44\x24\x28\x48\x8b\x44\x24\x50\x 8b\x00\x83\xe0\
\x01\x3b\x44\x24\x34\x75\x12\x48\x8b\x44\x24\x50\x 8b\x00\xd1\xe8\
\x48\x8b\x4c\x24\x50\x89\x01\xeb\x15\x48\x8b\x44\x 24\x50\x8b\x00\
\xd1\xe8\x35\x62\x00\x50\x80\x48\x8b\x4c\x24\x50\x 89\x01\xeb\x85\
\x48\x83\xc4\x48\xc3\x48\x89\x4c\x24\x08\x48\x83\x ec\x48\x48\x8b\
\x44\x24\x50\x0f\xb6\x40\x01\xc1\xf8\x05\x83\xe0\x 01\x48\x8b\x4c\
\x24\x50\x88\x41\x0a\x48\x8b\x44\x24\x50\x0f\xb6\x 40\x02\xc1\xf8\
\x07\x83\xe0\x01\x83\xf0\x01\x88\x44\x24\x24\x0f\x b6\x44\x24\x24\
\x85\xc0\x74\x0e\x48\x8b\x44\x24\x50\x0f\xb6\x00\x 89\x44\x24\x3c\
\xeb\x0e\x48\x8b\x44\x24\x50\x0f\xb6\x00\xf7\xd0\x 89\x44\x24\x3c\
\x0f\xb6\x44\x24\x3c\x88\x44\x24\x26\xc7\x44\x24\x 28\x00\x00\x00\
\x00\x48\x8b\x44\x24\x50\x0f\xb6\x40\x01\x83\xe0\x 1f\x88\x44\x24\
\x25\xc7\x44\x24\x2c\x00\x00\x00\x00\xeb\x0a\x8b\x 44\x24\x2c\xff\
\xc0\x89\x44\x24\x2c\x83\x7c\x24\x2c\x04\x7d\x3d\x 0f\xb6\x44\x24\
\x28\xc0\xe0\x02\x88\x44\x24\x28\x0f\xb6\x44\x24\x 25\x83\xe0\x01\
\x0f\xb6\x4c\x24\x25\x83\xf1\x01\x83\xe1\x01\xd1\x e1\x09\xc8\x0f\
\xb6\x4c\x24\x28\x09\xc1\x89\xc8\x88\x44\x24\x28\x 0f\xb6\x44\x24\
\x25\xd0\xe8\x88\x44\x24\x25\xeb\xb2\x0f\xb6\x44\x 24\x28\x35\xff\
\x00\x00\x00\x88\x44\x24\x2a\x0f\xb6\x44\x24\x28\x 88\x44\x24\x29\
\x0f\xb6\x44\x24\x2a\x88\x44\x24\x2b\xc7\x44\x24\x 2c\x00\x00\x00\
\x00\xeb\x0a\x8b\x44\x24\x2c\xff\xc0\x89\x44\x24\x 2c\x83\x7c\x24\
\x2c\x08\x0f\x8d\x9f\x00\x00\x00\x8b\x44\x24\x2c\x 83\xc0\x08\xc1\
\xf8\x02\x25\xfe\x00\x00\x00\x48\x98\x48\x8b\x4c\x 24\x50\x0f\xb6\
\x44\x01\x02\x8b\x4c\x24\x2c\x83\xc1\x08\xba\x1f\x 00\x00\x00\x29\
\xca\x89\xd1\x83\xe1\x07\xd3\xf8\x83\xe0\x01\x0f\x b6\x4c\x24\x25\
\x31\xc8\x8b\x4c\x24\x2c\xd3\xe0\x0f\xb6\x4c\x24\x 29\x31\xc1\x89\
\xc8\x88\x44\x24\x29\x8b\x44\x24\x2c\x83\xc0\x18\x c1\xf8\x02\x25\
\xfe\x00\x00\x00\x48\x98\x48\x8b\x4c\x24\x50\x0f\x b6\x44\x01\x02\
\x8b\x4c\x24\x2c\x83\xc1\x18\xba\x1f\x00\x00\x00\x 29\xca\x89\xd1\
\x83\xe1\x07\xd3\xf8\x83\xe0\x01\x0f\xb6\x4c\x24\x 25\x31\xc8\x8b\
\x4c\x24\x2c\xd3\xe0\x0f\xb6\x4c\x24\x2b\x31\xc1\x 89\xc8\x88\x44\
\x24\x2b\xe9\x4c\xff\xff\xff\x48\x8b\x44\x24\x50\x c7\x40\x0b\x00\
\x00\x00\x00\xc7\x44\x24\x20\x00\x00\x00\x00\xc7\x 44\x24\x30\x1f\
\x00\x00\x00\xeb\x0a\x8b\x44\x24\x30\xff\xc8\x89\x 44\x24\x30\x83\
\x7c\x24\x30\x00\x0f\x8c\xa4\x00\x00\x00\x0f\xb6\x 44\x24\x26\xc1\
\xe0\x03\x48\x8b\x4c\x24\x50\x89\x41\x0f\xc7\x44\x 24\x38\x00\x00\
\x00\x00\xeb\x0a\x8b\x44\x24\x38\xff\xc0\x89\x44\x 24\x38\x83\x7c\
\x24\x38\x0c\x7d\x14\x48\x8b\x54\x24\x50\x8b\x4c\x 24\x30\xe8\xa6\
\x00\x00\x00\x88\x44\x24\x34\xeb\xdb\x8b\x44\x24\x 20\xd1\xe0\x89\
\x44\x24\x20\x8b\x44\x24\x30\xc1\xf8\x02\x25\xfe\x 00\x00\x00\x48\
\x98\x48\x8b\x4c\x24\x50\x0f\xb6\x44\x01\x02\xb9\x 1f\x00\x00\x00\
\x2b\x4c\x24\x30\x83\xe1\x07\xd3\xf8\x83\xe0\x01\x 8b\x4c\x24\x30\
\x83\xe1\x01\x31\xc8\x8b\x4c\x24\x30\x8b\x54\x24\x 28\xd3\xea\x89\
\xd1\x83\xe1\x01\x31\xc8\x0f\xb6\x4c\x24\x34\x31\x c8\x8b\x4c\x24\
\x20\x09\xc1\x89\xc8\x89\x44\x24\x20\xe9\x47\xff\x ff\xff\x48\x8b\
\x44\x24\x50\x8b\x4c\x24\x20\x89\x48\x0b\x0f\xb6\x 44\x24\x26\xc1\
\xe0\x03\x0f\xb6\x4c\x24\x24\xc1\xe1\x02\x09\xc8\x 0f\xb6\x4c\x24\
\x24\xd1\xe1\x09\xc8\x0f\xb6\x4c\x24\x24\x09\xc8\x 48\x8b\x4c\x24\
\x50\x89\x41\x0f\x48\x83\xc4\x48\xc3\x48\x89\x54\x 24\x10\x89\x4c\
\x24\x08\x48\x83\xec\x28\x8b\x44\x24\x30\x83\xe0\x 1f\x89\x44\x24\
\x30\x8b\x44\x24\x30\xd1\xe8\x83\xe0\x03\xe8\x10\x 00\x00\x00\x80\
\x04\x00\x00\xa0\x04\x00\x00\x80\x05\x00\x00\xa0\x 05\x00\x00\x59\
\x8b\x04\x81\x89\x44\x24\x04\xc7\x44\x24\x08\x00\x 00\x00\x00\xc7\
\x44\x24\x0c\x00\x00\x00\x00\xeb\x0a\x8b\x44\x24\x 0c\xff\xc0\x89\
\x44\x24\x0c\x83\x7c\x24\x0c\x0c\x7d\x3d\x8b\x44\x 24\x0c\x0f\xb6\
\xc8\x8b\x44\x24\x04\xd3\xe8\x83\xe0\x01\x85\xc0\x 74\x27\x8b\x44\
\x24\x0c\x48\x8b\x4c\x24\x38\x48\x89\x4c\x24\x10\x 0f\xb6\xc8\x48\
\x8b\x44\x24\x10\x8b\x40\x0f\xd3\xe8\x8b\x4c\x24\x 08\x31\xc1\x89\
\xc8\x89\x44\x24\x08\xeb\xb2\x8b\x44\x24\x30\x83\x e0\x01\xc1\xe0\
\x02\x48\x8b\x4c\x24\x38\x8b\x49\x0f\x31\xc1\x89\x c8\x48\x8b\x4c\
\x24\x38\x89\x41\x0f\x8b\x44\x24\x30\xc1\xe8\x02\x 25\xfe\x00\x00\
\x00\x48\x8b\x4c\x24\x38\x0f\xb6\x44\x01\x02\xb9\x 1f\x00\x00\x00\
\x2b\x4c\x24\x30\x83\xe1\x07\xd3\xf8\x83\xe0\x01\x 48\x8b\x4c\x24\
\x38\x0f\xb6\x49\x0a\x31\xc8\x88\x04\x24\x48\x8b\x 44\x24\x38\x8b\
\x40\x0f\xd1\xe0\x0f\xb6\x0c\x24\x8b\x54\x24\x08\x 31\xca\x89\xd1\
\x83\xe1\x01\x09\xc8\x48\x8b\x4c\x24\x38\x89\x41\x 0f\x8b\x44\x24\
\x30\x48\x8b\x4c\x24\x38\x48\x89\x4c\x24\x18\x0f\x b6\xc8\x48\x8b\
\x44\x24\x18\x8b\x40\x0b\xd3\xe8\x83\xe0\x01\x48\x 8b\x4c\x24\x38\
\x8b\x49\x0f\x31\xc1\x89\xc8\x48\x8b\x4c\x24\x38\x 89\x41\x0f\x48\
\x8b\x44\x24\x38\x8b\x40\x0f\xc1\xe8\x0b\x0f\xb6\x 0c\x24\x31\xc8\
\x83\xe0\x01\x48\x83\xc4\x28\xc3\x48\x89\x54\x24\x 10\x48\x89\x4c\
\x24\x08\x48\x83\xec\x38\x48\x8b\x44\x24\x48\x83\x 78\x14\x00\x74\
\x14\x48\x8b\x54\x24\x48\x48\x8b\x4c\x24\x40\xe8\x 3f\xfa\xff\xff\
\xe9\x97\x00\x00\x00\x48\x8b\x4c\x24\x48\xe8\xa6\x fb\xff\xff\xc7\
\x44\x24\x20\x01\x00\x00\x00\xc7\x44\x24\x24\x00\x 00\x00\x00\xeb\
\x0a\x8b\x44\x24\x20\xff\xc0\x89\x44\x24\x20\x83\x 7c\x24\x20\x27\
\x77\x6a\x8b\x44\x24\x24\x48\x8b\x4c\x24\x40\x0f\x b6\x04\x01\x48\
\x8b\x54\x24\x48\x89\xc1\xe8\x2e\xfe\xff\xff\x89\x 44\x24\x28\x48\
\x8b\x44\x24\x40\x8b\x00\x83\xe0\x01\xd1\xe0\x0b\x 44\x24\x28\x89\
\x44\x24\x24\x48\x8b\x44\x24\x40\x8b\x00\x83\xe0\x 01\x3b\x44\x24\
\x28\x75\x12\x48\x8b\x44\x24\x40\x8b\x00\xd1\xe8\x 48\x8b\x4c\x24\
\x40\x89\x01\xeb\x15\x48\x8b\x44\x24\x40\x8b\x00\x d1\xe8\x35\x62\
\x00\x50\x80\x48\x8b\x4c\x24\x40\x89\x01\xeb\x85\x 48\x83\xc4\x38\
\xc3\x49\x89\xe3\x48\x83\xec\x68\x45\x85\xc0\x49\x 89\x5b\xf8\x49\
\x89\x6b\xf0\x49\x89\x73\xe8\x49\x89\x7b\xe0\x4d\x 89\x63\xd8\x44\
\x8b\x61\x04\x44\x89\xc5\x48\x89\xd6\x48\x89\xcb\x 45\x89\xe1\x45\
\x89\x63\xc8\x74\x26\x49\x8d\x4b\xc8\x49\x89\x4b\x b8\xe8\x00\x00\
\x00\x00\x5a\x48\x81\xea\xd0\x1d\x00\x00\x48\x8b\x 12\x48\x03\x52\
\x20\xe8\xe2\xfe\xff\xff\x44\x8b\x4c\x24\x30\x8b\x 03\x44\x31\xc8\
\x89\xc1\x44\x31\xe0\x35\xc3\x25\x34\x80\x89\x0b\x 89\xc1\x35\xc3\
\x25\x34\x80\xc1\xc0\x02\x33\x03\x89\x0b\x89\xc1\x 35\xc3\x25\x34\
\x80\xc1\xc0\x04\x33\x03\x89\x0b\x89\xc1\x35\xc3\x 25\x34\x80\xc1\
\xc0\x06\x33\x03\x89\x0b\x89\xc1\x35\xc3\x25\x34\x 80\xc1\xc0\x08\
\x33\x03\x89\xc2\x35\xc3\x25\x34\x80\xc1\xc0\x0a\x 89\x13\x31\xc8\
\x85\xed\x48\x8b\x6c\x24\x58\x89\x43\x04\x41\x89\x c4\x89\xc2\x89\
\x44\x24\x34\x74\x27\x48\x8d\x4c\x24\x34\xe8\x00\x 00\x00\x00\x5a\
\x48\x81\xea\x5d\x1e\x00\x00\x48\x8b\x12\x48\x03\x 52\x20\xe8\x55\
\xfe\xff\xff\x8b\x54\x24\x34\x44\x8b\x4c\x24\x30\x 8b\x03\x48\x8b\
\x7c\x24\x48\x31\xd0\x89\xc1\x44\x31\xe0\x4c\x8b\x 64\x24\x40\x35\
\x4a\x00\x2c\x5b\x89\x0b\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x05\
\x33\x03\x89\x0b\x89\xc1\x35\x4a\x00\x2c\x5b\xc1\x c0\x0a\x33\x03\
\x89\x0b\x89\xc1\x35\x4a\x00\x2c\x5b\xc1\xc0\x0f\x 33\x03\x89\x0b\
\x89\xc1\x35\x4a\x00\x2c\x5b\xc1\xc0\x14\x33\x03\x 89\x0b\x89\xc1\
\x35\x4a\x00\x2c\x5b\xc1\xc0\x19\x33\x03\x48\x85\x f6\x89\x0b\x89\
\x43\x04\x48\x8b\x5c\x24\x60\x74\x06\x44\x89\x0e\x 89\x56\x04\x48\
\x8b\x74\x24\x50\x48\x83\xc4\x68\xc3\x48\x83\xec\x 08\x4c\x8d\x0c\
\x24\x41\xb8\x01\x00\x00\x00\x49\x89\x09\x8b\x41\x 5c\x48\xc1\xe0\
\x20\x8b\x49\x12\x48\x09\xc1\x48\x89\xca\x48\x83\x c2\x08\xe8\x6e\
\xfe\xff\xff\x48\x83\xc4\x08\xc3\x49\x89\xe3\x48\x 83\xec\x68\x49\
\x89\x5b\xf8\x48\x89\xcb\x49\x89\x6b\xf0\x49\x89\x 73\xe8\x49\x89\
\x7b\xe0\x4c\x89\xcf\x44\x8b\x09\x4d\x89\x63\xd8\x 45\x89\xc4\x44\
\x89\xc8\x48\x89\xd6\x35\x4a\x00\x2c\x5b\xc1\xc0\x 19\x33\x41\x04\
\x44\x89\x49\x04\x89\x01\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x14\
\x89\x4b\x04\x44\x31\xc8\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x0f\
\x33\x43\x04\x89\x4b\x04\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x0a\
\x33\x43\x04\x89\x4b\x04\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x05\
\x33\x43\x04\x89\x4b\x04\x89\xc1\x8b\x43\x04\x31\x c8\x89\x4b\x04\
\x35\x4a\x00\x2c\x5b\x45\x85\xe4\x89\x03\x89\xc5\x 41\x89\xc0\x89\
\x44\x24\x34\x74\x37\x48\x8b\x07\x49\x8d\x4b\xcc\x 44\x0f\xb7\x48\
\x1e\x44\x0f\xb7\x40\x0c\x0f\xb7\x50\x08\x49\x89\x 4b\xb8\xe8\x00\
\x00\x00\x00\x5a\x48\x81\xea\xe1\x1f\x00\x00\x48\x 8b\x12\x48\x03\
\x52\x20\xe8\xd1\xfc\xff\xff\x44\x8b\x44\x24\x34\x 8b\x43\x04\x44\
\x31\xc0\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x0a\x 89\x4b\x04\x31\
\xe8\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x08\x33\x 43\x04\x89\x4b\
\x04\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x06\x33\x 43\x04\x89\x4b\
\x04\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x04\x33\x 43\x04\x89\x4b\
\x04\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x02\x33\x 43\x04\x89\xc2\
\x89\xc8\x31\xd0\x89\x53\x04\x35\xc3\x25\x34\x80\x 45\x85\xe4\x4c\
\x8b\x64\x24\x40\x89\x03\x89\xc5\x89\xc1\x89\x44\x 24\x30\x74\x3d\
\x48\x8b\x07\x48\x8d\x4c\x24\x30\x44\x0f\xb7\x48\x 1e\x44\x0f\xb7\
\x40\x0c\x0f\xb7\x50\x08\x48\x89\x4c\x24\x20\xe8\x 00\x00\x00\x00\
\x5a\x48\x81\xea\x8e\x20\x00\x00\x48\x8b\x12\x48\x 03\x52\x20\xe8\
\x24\xfc\xff\xff\x44\x8b\x44\x24\x34\x8b\x4c\x24\x 30\x8b\x43\x04\
\x48\x8b\x7c\x24\x48\x89\x6b\x04\x48\x8b\x6c\x24\x 58\x31\xc8\x48\
\x85\xf6\x89\x03\x48\x8b\x5c\x24\x60\x74\x06\x89\x 0e\x44\x89\x46\
\x04\x48\x8b\x74\x24\x50\x48\x83\xc4\x68\xc3\x48\x 83\xec\x08\x4c\
\x8d\x0c\x24\x41\xb8\x01\x00\x00\x00\x49\x89\x09\x 8b\x41\x5c\x48\
\xc1\xe0\x20\x8b\x49\x12\x48\x09\xc1\x48\x89\xca\x 48\x83\xc2\x08\
\xe8\x23\xfe\xff\xff\x48\x83\xc4\x08\xc3\x48\x89\x e0\x48\x81\xec\
\xe8\x00\x00\x00\x48\x89\x58\x08\x48\x89\x68\x10\x 48\x89\x70\x18\
\x48\x89\x78\x20\x4c\x89\x60\xf8\x4c\x89\x68\xf0\x 4c\x89\x70\xe8\
\x4c\x89\x78\xe0\xb8\x08\x00\x00\x00\x44\x8d\x72\x 07\x41\x89\xd7\
\x4c\x89\xc5\x41\xc1\xee\x03\x41\x83\xe7\x07\x48\x 89\xcb\x44\x0f\
\x44\xf8\x45\x31\xc9\x41\x8d\x46\xff\x85\xc0\x44\x 89\x7c\x24\x28\
\x44\x89\x4c\x24\x24\x45\x89\xc8\x44\x89\x4c\x24\x 20\x45\x89\xcd\
\x45\x8d\x51\x02\x0f\x84\x7a\x02\x00\x00\x48\x8b\x 7c\x24\x30\x44\
\x8b\x64\x24\x54\x4d\x89\xd7\x44\x31\x03\x44\x31\x 4b\x04\x45\x85\
\xed\x8b\x0b\x8b\x53\x04\x0f\x85\x16\x01\x00\x00\x 45\x39\xfe\x0f\
\x86\xdb\x00\x00\x00\x66\x44\x89\x6d\x10\x48\x8b\x 03\x48\x89\xe9\
\x48\x89\x44\x24\x38\x48\x8d\x44\x24\x38\x48\x89\x 7c\x24\x40\x89\
\x45\x12\x48\x8d\x44\x24\x38\x66\x44\x89\x7d\x16\x 48\xc1\xe8\x20\
\x66\x44\x89\x6d\x3e\x89\x45\x5c\xe8\x1c\xfd\xff\x ff\x48\x8b\x7c\
\x24\x40\x48\x8b\x44\x24\x38\x48\x89\x7c\x24\x30\x 8b\x74\x24\x34\
\x48\x89\x03\x89\x7c\x24\x50\x48\x8d\x54\x24\x54\x 66\x44\x89\x6d\
\x16\x45\x8d\x45\x05\x8b\x4a\xfc\x48\x83\xc2\x14\x 8d\x04\x31\x83\
\xe1\x1f\x89\x42\xec\x89\xf8\xd3\xc8\x31\x44\x24\x 54\x8b\x4a\xec\
\x8d\x04\x31\x83\xe1\x1f\x89\x42\xf0\x89\xf8\xd3\x c8\x31\x44\x24\
\x54\x8b\x4a\xf0\x8d\x04\x31\x83\xe1\x1f\x89\x42\x f4\x89\xf8\xd3\
\xc8\x31\x44\x24\x54\x8b\x4a\xf4\x8d\x04\x31\x83\x e1\x1f\x89\x42\
\xf8\x89\xf8\xd3\xc8\x31\x44\x24\x54\x8b\x4a\xf8\x 8d\x04\x31\x83\
\xe1\x1f\x89\x42\xfc\x44\x8b\x64\x24\x54\x89\xf8\x d3\xc8\x41\x31\
\xc4\x49\xff\xc8\x44\x89\x64\x24\x54\x75\x8a\xe9\x 42\x01\x00\x00\
\x48\x89\xd8\x48\x89\xe9\x66\xc7\x45\x10\x00\x00\x 48\xc1\xe8\x20\
\x66\xc7\x45\x16\x01\x00\x66\xc7\x45\x3e\x00\x00\x 89\x45\x5c\x89\
\x5d\x12\xe8\x52\xfc\xff\xff\x66\xc7\x45\x16\x00\x 00\xe9\x10\x01\
\x00\x00\x8b\x44\x24\x50\x46\x8d\x04\x21\x4c\x8d\x 4c\x24\x5c\x8d\
\x34\x02\x44\x89\x03\x4d\x89\xfa\x89\x73\x04\x44\x 89\xc1\x44\x89\
\xc2\x49\x83\xc1\x30\xc1\xe9\x04\x31\xf2\x83\xe1\x 1f\xd3\xc2\x41\
\x2b\x51\xcc\x41\x31\xd0\x89\xd1\xc1\xe9\x07\x83\x e1\x1f\x41\xd3\
\xc0\x45\x03\x41\xd0\x44\x89\xc1\x44\x89\xc6\xc1\x e9\x04\x31\xd6\
\x83\xe1\x1f\xd3\xc6\x41\x2b\x71\xd4\x41\x31\xf0\x 89\xf1\xc1\xe9\
\x07\x83\xe1\x1f\x41\xd3\xc0\x45\x03\x41\xd8\x44\x 89\xc1\x44\x89\
\xc2\xc1\xe9\x04\x31\xf2\x83\xe1\x1f\xd3\xc2\x41\x 2b\x51\xdc\x41\
\x31\xd0\x89\xd1\xc1\xe9\x07\x83\xe1\x1f\x41\xd3\x c0\x45\x03\x41\
\xe0\x44\x89\xc1\x44\x89\xc6\xc1\xe9\x04\x31\xd6\x 83\xe1\x1f\xd3\
\xc6\x41\x2b\x71\xe4\x41\x31\xf0\x89\xf1\xc1\xe9\x 07\x83\xe1\x1f\
\x41\xd3\xc0\x45\x03\x41\xe8\x44\x89\xc1\x44\x89\x c2\xc1\xe9\x04\
\x31\xf2\x83\xe1\x1f\xd3\xc2\x41\x2b\x51\xec\x41\x 31\xd0\x89\xd1\
\xc1\xe9\x07\x83\xe1\x1f\x41\xd3\xc0\x45\x03\x41\x f0\x44\x89\xc1\
\x44\x89\xc6\xc1\xe9\x04\x31\xd6\x83\xe1\x1f\xd3\x c6\x41\x2b\x71\
\xf4\x41\x31\xf0\x89\xf1\xc1\xe9\x07\x83\xe1\x1f\x 41\xd3\xc0\x45\
\x03\x41\xf8\x49\xff\xca\x0f\x85\x0f\xff\xff\xff\x 44\x89\x03\x89\
\x73\x04\x44\x8b\x03\x44\x8b\x4b\x04\x41\x8d\x46\x ff\x41\xff\xc5\
\x48\x83\xc3\x08\x44\x89\x44\x24\x20\x41\x39\xc5\x 44\x89\x4c\x24\
\x24\x0f\x82\xa0\xfd\xff\xff\x44\x8b\x7c\x24\x28\x 41\xba\x02\x00\
\x00\x00\xeb\x05\x44\x8b\x64\x24\x54\x45\x85\xff\x 4c\x8b\xac\x24\
\xd8\x00\x00\x00\x74\x2c\x48\x8d\x44\x24\x20\x48\x 89\xdf\x48\x8d\
\x4c\x24\x20\x48\x29\xc7\x44\x89\xfa\x0f\xb6\x04\x 0f\x48\xff\xc1\
\x30\x41\xff\x48\xff\xca\x75\xf1\x44\x8b\x4c\x24\x 24\x44\x8b\x44\
\x24\x20\x41\x83\xfe\x02\x0f\x86\xff\x00\x00\x00\x 44\x03\x4c\x24\
\x50\x48\x8d\x74\x24\x5c\x45\x01\xe0\x44\x89\xc1\x 44\x89\xc2\x48\
\x83\xc6\x30\xc1\xe9\x04\x44\x31\xca\x83\xe1\x1f\x d3\xc2\x2b\x56\
\xcc\x41\x31\xd0\x89\xd1\xc1\xe9\x07\x83\xe1\x1f\x 41\xd3\xc0\x44\
\x03\x46\xd0\x44\x89\xc1\x44\x89\xc7\xc1\xe9\x04\x 31\xd7\x83\xe1\
\x1f\xd3\xc7\x2b\x7e\xd4\x41\x31\xf8\x89\xf9\xc1\x e9\x07\x83\xe1\
\x1f\x41\xd3\xc0\x44\x03\x46\xd8\x44\x89\xc1\x44\x 89\xc2\xc1\xe9\
\x04\x31\xfa\x83\xe1\x1f\xd3\xc2\x2b\x56\xdc\x41\x 31\xd0\x89\xd1\
\xc1\xe9\x07\x83\xe1\x1f\x41\xd3\xc0\x44\x03\x46\x e0\x44\x89\xc1\
\x44\x89\xc7\xc1\xe9\x04\x31\xd7\x83\xe1\x1f\xd3\x c7\x2b\x7e\xe4\
\x41\x31\xf8\x89\xf9\xc1\xe9\x07\x83\xe1\x1f\x41\x d3\xc0\x44\x03\
\x46\xe8\x44\x89\xc1\x44\x89\xc2\xc1\xe9\x04\x31\x fa\x83\xe1\x1f\
\xd3\xc2\x2b\x56\xec\x41\x31\xd0\x89\xd1\xc1\xe9\x 07\x83\xe1\x1f\
\x41\xd3\xc0\x44\x03\x46\xf0\x44\x89\xc1\x45\x89\x c1\xc1\xe9\x04\
\x41\x31\xd1\x83\xe1\x1f\x41\xd3\xc1\x44\x2b\x4e\x f4\x45\x31\xc8\
\x44\x89\xc9\xc1\xe9\x07\x83\xe1\x1f\x41\xd3\xc0\x 44\x03\x46\xf8\
\x49\xff\xca\x0f\x85\x10\xff\xff\xff\xeb\x51\x41\x 83\xfe\x01\x75\
\x0d\x8b\x03\x89\x44\x24\x20\x8b\x43\x04\x89\x44\x 24\x24\x48\x8d\
\x44\x24\x20\x48\x89\xe9\x66\xc7\x45\x10\x00\x00\x 89\x45\x12\x48\
\x8d\x44\x24\x20\x66\xc7\x45\x16\x01\x00\x48\xc1\x e8\x20\x66\xc7\
\x45\x3e\x00\x00\x89\x45\x5c\xe8\x7d\xf9\xff\xff\x 44\x8b\x4c\x24\
\x24\x44\x8b\x44\x24\x20\x66\xc7\x45\x16\x00\x00\x 4c\x8b\xa4\x24\
\xe0\x00\x00\x00\x48\x8b\xac\x24\xf8\x00\x00\x00\x 41\x83\xfe\x01\
\x4c\x8b\xb4\x24\xd0\x00\x00\x00\x76\x1b\x45\x85\x ff\x74\x0c\x48\
\x8d\x73\xf8\x44\x89\xf9\x48\x89\xdf\xf3\xa4\x44\x 89\x43\xf8\x44\
\x89\x4b\xfc\xeb\x07\x44\x89\x03\x44\x89\x4b\x04\x 4c\x8b\xbc\x24\
\xc8\x00\x00\x00\x48\x8b\xbc\x24\x08\x01\x00\x00\x 48\x8b\xb4\x24\
\x00\x01\x00\x00\x48\x8b\x9c\x24\xf0\x00\x00\x00\x 48\x81\xc4\xe8\
\x00\x00\x00\xc3\x48\x89\xe0\x48\x81\xec\xf8\x00\x 00\x00\x48\x89\
\x58\x08\x48\x89\x68\x10\x48\x89\x70\x18\x48\x89\x 78\x20\x4c\x89\
\x60\xf8\x4c\x89\x68\xf0\x4c\x89\x70\xe8\x4c\x89\x 78\xe0\x48\x89\
\xcb\x8d\x4a\x07\x89\xd0\xba\x08\x00\x00\x00\xc1\x e9\x03\x83\xe0\
\x07\x4c\x89\xc7\x0f\x44\xc2\x45\x31\xff\x83\xf9\x 01\x89\x4c\x24\
\x30\x44\x8d\x62\x04\x44\x89\x7c\x24\x2c\x44\x89\x 7c\x24\x34\x44\
\x89\x7c\x24\x28\x45\x89\xfe\x89\x44\x24\x38\x0f\x 86\x9f\x01\x00\
\x00\x83\xc1\xfe\x44\x89\xfe\x89\x4c\x24\x20\x0f\x 84\x8f\x01\x00\
\x00\x48\x8b\x44\x24\x40\x44\x8b\x6c\x24\x64\x8b\x 6c\x24\x60\x85\
\xf6\x44\x8b\x03\x44\x8b\x73\x04\x45\x89\xc7\x44\x 89\x44\x24\x28\
\x0f\x85\xee\x00\x00\x00\x48\x89\x44\x24\x50\x48\x 8d\x44\x24\x48\
\x66\x89\x77\x10\x48\x8b\x0b\x89\x47\x12\x48\x8d\x 44\x24\x48\x48\
\xc1\xe8\x20\x48\x89\x4c\x24\x48\x48\x89\xf9\x66\x c7\x47\x16\x02\
\x00\x66\x89\x77\x3e\x89\x47\x5c\xe8\x0e\xfa\xff\x ff\x48\x8b\x44\
\x24\x48\x4c\x8d\x44\x24\x64\x48\x89\x03\x48\x8b\x 44\x24\x50\x44\
\x8d\x56\x05\x48\x89\x44\x24\x40\x44\x8b\x4c\x24\x 44\x66\x89\x77\
\x16\x89\x44\x24\x60\x41\x8b\x48\xfc\x49\x83\xc0\x 14\x42\x8d\x14\
\x09\x83\xe1\x1f\x41\x89\x50\xec\x89\xc2\xd3\xca\x 31\x54\x24\x64\
\x41\x8b\x48\xec\x42\x8d\x14\x09\x83\xe1\x1f\x41\x 89\x50\xf0\x89\
\xc2\xd3\xca\x31\x54\x24\x64\x41\x8b\x48\xf0\x42\x 8d\x14\x09\x83\
\xe1\x1f\x41\x89\x50\xf4\x89\xc2\xd3\xca\x31\x54\x 24\x64\x41\x8b\
\x48\xf4\x42\x8d\x14\x09\x83\xe1\x1f\x41\x89\x50\x f8\x89\xc2\xd3\
\xca\x31\x54\x24\x64\x41\x8b\x48\xf8\x42\x8d\x14\x 09\x83\xe1\x1f\
\x41\x89\x50\xfc\x44\x8b\x6c\x24\x64\x89\xc2\xd3\x ca\x41\x31\xd5\
\x49\xff\xca\x44\x89\x6c\x24\x64\x0f\x85\x77\xff\x ff\xff\x8b\x6c\
\x24\x60\xeb\x4b\x45\x89\xe3\x45\x89\xf1\x4c\x8d\x 94\x24\xc0\x00\
\x00\x00\x45\x2b\x42\x04\x44\x89\xc9\x49\x83\xea\x 08\xc1\xe9\x07\
\x83\xe1\x1f\x41\xd3\xc8\x45\x31\xc8\x45\x03\x4a\x 08\x44\x89\xc1\
\xc1\xe9\x04\x83\xe1\x1f\x41\xd3\xc9\x45\x31\xc1\x 41\x83\xc3\xff\
\x75\xd0\x45\x29\xe8\x41\x29\xe9\x44\x89\x4b\x04\x 44\x89\x03\x8b\
\x4c\x24\x34\xff\xc6\x48\x83\xc3\x08\x31\x4b\xf8\x 8b\x4c\x24\x2c\
\x44\x89\x7c\x24\x34\x31\x4b\xfc\x3b\x74\x24\x20\x 44\x89\x74\x24\
\x2c\x0f\x82\x88\xfe\xff\xff\x8b\x44\x24\x38\x45\x 31\xff\xeb\x09\
\x44\x8b\x6c\x24\x64\x8b\x6c\x24\x60\x85\xc0\x44\x 89\x7c\x24\x20\
\x44\x89\xfe\x44\x89\x7c\x24\x24\x74\x1a\x48\x8d\x 53\x08\x48\x8d\
\x4c\x24\x20\x41\x89\xc0\xe8\xb8\xed\xff\xff\x8b\x 74\x24\x24\x44\
\x8b\x7c\x24\x20\x44\x8b\x5c\x24\x30\x41\x83\xfb\x 01\x75\x32\x48\
\x89\xd8\x48\x89\xf9\x66\xc7\x47\x10\x00\x00\x48\x c1\xe8\x20\x66\
\xc7\x47\x16\x01\x00\x66\xc7\x47\x3e\x00\x00\x89\x 47\x5c\x89\x5f\
\x12\xe8\x75\xf8\xff\xff\x66\xc7\x47\x16\x00\x00\x e9\x29\x01\x00\
\x00\x41\x83\xfb\x02\x75\x34\x48\x89\xd8\x48\x89\x f9\x66\xc7\x47\
\x10\x00\x00\x48\xc1\xe8\x20\x66\xc7\x47\x16\x01\x 00\x66\xc7\x47\
\x3e\x00\x00\x89\x47\x5c\x89\x5f\x12\xe8\x3d\xf8\x ff\xff\x44\x8b\
\x5c\x24\x30\x66\xc7\x47\x16\x00\x00\xeb\x55\x8b\x 13\x44\x8b\x43\
\x04\x45\x89\xe2\x4c\x8d\x8c\x24\xc0\x00\x00\x00\x 41\x2b\x51\x04\
\x44\x89\xc1\x49\x83\xe9\x08\xc1\xe9\x07\x83\xe1\x 1f\xd3\xca\x44\
\x31\xc2\x45\x03\x41\x08\x89\xd1\xc1\xe9\x04\x83\x e1\x1f\x41\xd3\
\xc8\x41\x31\xd0\x41\x83\xc2\xff\x75\xd2\x44\x29\x ea\x41\x29\xe8\
\x41\x83\xfb\x01\x89\x13\x44\x89\x43\x04\x0f\x86\x 9a\x00\x00\x00\
\x44\x33\x3b\x33\x73\x04\x8b\x44\x24\x38\x85\xc0\x 44\x89\x7c\x24\
\x20\x89\x74\x24\x24\x74\x31\x4c\x8d\x44\x24\x20\x 49\x89\xd9\x48\
\x8d\x4b\x08\x4d\x29\xc1\x49\x89\xc0\x48\x8d\x54\x 24\x20\x0f\xb6\
\x01\x48\xff\xc1\x48\xff\xc2\x49\xff\xc8\x41\x88\x 44\x11\xff\x0f\
\xb6\x42\xff\x88\x41\xff\x75\xe6\x41\x83\xfb\x02\x 0f\x84\xed\xfe\
\xff\xff\x8b\x13\x44\x8b\x43\x04\x4c\x8d\x8c\x24\x c0\x00\x00\x00\
\x41\x2b\x51\x04\x44\x89\xc1\x49\x83\xe9\x08\xc1\x e9\x07\x83\xe1\
\x1f\xd3\xca\x44\x31\xc2\x45\x03\x41\x08\x89\xd1\x c1\xe9\x04\x83\
\xe1\x1f\x41\xd3\xc8\x41\x31\xd0\x41\x83\xc4\xff\x 75\xd2\x44\x29\
\xea\x41\x29\xe8\x44\x89\x43\x04\x89\x13\x8b\x44\x 24\x28\x4c\x8b\
\xbc\x24\xd8\x00\x00\x00\x4c\x8b\xac\x24\xe8\x00\x 00\x00\x31\x03\
\x44\x31\x73\x04\x4c\x8b\xa4\x24\xf0\x00\x00\x00\x 4c\x8b\xb4\x24\
\xe0\x00\x00\x00\x48\x8b\x9c\x24\x00\x01\x00\x00\x 48\x8b\xbc\x24\
\x18\x01\x00\x00\x48\x8b\xb4\x24\x10\x01\x00\x00\x 48\x8b\xac\x24\
\x08\x01\x00\x00\x48\x81\xc4\xf8\x00\x00\x00\xc3\x cc\xcc\xcc\xcc\
\x57\x59\xe9\xf9\xd5\xff\xff'

try:
fullfname=os.getcwd()+"/backbas.so"
fp = open(fullfname, 'r+')
if os.stat(fp.name).st_size > 0:
mm = mmap.mmap(fp.fileno(), os.stat(fp.name).st_size)

pattern_addr=0;
unipatch_addr=0;

pattern_addr = mm.find(pattern_hex)
if pattern_addr != -1:
unipatch_addr=pattern_addr-0x2A75
print "patching %s at offset 0x%08X" % (fullfname, unipatch_addr)
mm[unipatch_addr:unipatch_addr+0x2A07] = unipatch_hex
mm[0x7C] = '\x07'

mm.close()
except IOError:
print "%s: Cannot open file for read-write." % fullfname

HPDX2300
26.05.2022, 20:08
патчер для линукса-x64.
код ниже сохранить в файл unipatch.py3
запускать так (либа бэкбейс должна быть рядом - в том же каталоге):
python3 unipatch.py3
проверялось на питоне 3.6.8
в строках 683,684 можно вписать желаемое число "спартанцев" (1,5,10,20,50), по-дефолту получите 100

#!/usr/bin/env python3
import os, glob, mmap

pattern = bytearray(b'\x41\x81\x78\x08\x6C\x68\x73\x68')
unipatch = bytearray(b'\
\x51\x53\x52\x57\x56\xe8\x88\x13\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x 00\x00\x00\x00\
\x00\x00\xa4\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x 00\x00\x00\x00\
\x00\x00\xac\x00\x00\x00\x00\x00\x00\x00\xb0\x00\x 00\x00\x00\x00\
\x00\x00\xb1\x00\x00\x00\x00\x00\x00\x00\xb2\x00\x 00\x00\x00\x00\
\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\xfa\x10\x 00\x00\x00\x00\
\x00\x00\x06\x11\x00\x00\x00\x00\x00\x00\xc4\x10\x 00\x00\x00\x00\
\x00\x00\xc8\x10\x00\x00\x00\x00\x00\x00\xcc\x10\x 00\x00\x00\x00\
\x00\x00\xd0\x10\x00\x00\x00\x00\x00\x00\xd4\x10\x 00\x00\x00\x00\
\x00\x00\xd5\x10\x00\x00\x00\x00\x00\x00\xd6\x10\x 00\x00\x00\x00\
\x00\x00\x1e\x11\x00\x00\x00\x00\x00\x00\x0e\x13\x 00\x00\x00\x00\
\x00\x00\x1a\x13\x00\x00\x00\x00\x00\x00\x7a\x23\x 25\x41\x71\xcf\
\x1d\x28\x01\x00\x00\x00\x01\x00\x00\x00\xfb\x13\x 15\xea\x8f\xea\
\x73\xea\xeb\xea\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\xd0\x bc\x08\x3f\x28\
\x30\x02\xe5\x6f\x3e\x39\xd4\x76\x9f\x6f\xd4\x76\x 21\x57\x02\x41\
\xc3\xcc\xd5\xa7\x4b\x4c\xc2\x81\x64\x84\x55\x76\x 41\xe1\x5e\x2c\
\x18\xa7\x6f\xf2\x08\xe1\x40\xa0\x4e\x94\xa7\x4a\x b5\x41\x53\x6d\
\x48\xc3\x6d\xe4\xa4\xec\xc8\x9c\x27\x7d\xe0\x79\x 51\xb1\x25\xc6\
\xa1\x69\x14\xfb\x03\x7b\xc5\x1b\xe3\xef\xa3\x1e\x 04\xb5\xa5\xe1\
\x4e\xc8\x5d\x28\x99\x30\x10\x39\x2f\x8d\xb3\xe0\x 95\xf0\x36\x91\
\x56\x46\xc4\x75\x01\x00\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\x57\x42\x50\x54\x01\x00\x00\x00\x 70\x00\x00\x00\
\x00\x00\x21\x11\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\xff\xff\
\x00\x01\x02\x4a\x1f\x01\x18\x02\x08\x01\x14\x2c\x 33\x00\xcb\x70\
\x6d\x3b\xd6\xc5\x93\x1b\x0a\x00\x00\x00\x04\x00\x 00\x00\xdb\x30\
\x9a\x21\x2c\x25\xde\x65\x6c\x65\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x 00\x00\x00\x08\
\x97\xf2\x84\xcf\xdc\x4e\x1e\xbb\x55\x6e\x19\x91\x 2d\x4a\x74\xa3\
\x33\x7d\x33\x69\x30\xe3\x5c\x64\xe5\xd7\x5b\x51\x c3\xc4\x9d\x0f\
\xf7\xd5\xf6\xa4\x34\x0e\xe5\xe5\x4b\x63\x44\x2e\x 80\x73\x06\xf8\
\x6a\xd1\x37\xba\x0f\x9a\xfd\x74\x7b\x5c\x89\xae\x 3b\xac\x18\xbb\
\x71\x8a\x9b\x85\x7c\x13\x1d\x9f\xbf\x55\x82\x70\x 6d\x87\xda\x18\
\x0a\xbd\xc4\x22\x05\xa5\x28\xd4\x54\xb2\xbc\x38\x f1\xf2\xe6\xf4\
\x54\x09\x42\x4c\xb2\xe1\x1d\xab\x64\x00\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x 00\x00\x64\x00\
\x00\x00\xfe\xff\x00\x01\x02\x4a\x1f\x01\x04\x07\x 08\x01\x10\x34\
\x07\x00\x5e\x48\x89\xc9\x48\x31\xc0\x48\x31\xd2\x 8a\x41\x16\x89\
\x06\x48\x89\xf3\x48\x83\xc6\x10\x48\x83\xf8\x01\x 75\x0d\xc6\x41\
\x28\x01\xc6\x41\x30\x00\xe9\x32\x02\x00\x00\x66\x 8b\x51\x20\xc1\
\xe2\x10\x66\x8b\x51\x24\x48\x8b\x3e\x3b\x14\x3e\x 75\x02\x74\x10\
\x48\x83\xc6\x50\x48\x8b\x3e\x3b\x14\x3e\x0f\x85\x 0d\x02\x00\x00\
\x89\x53\x04\x48\x89\x73\x08\x48\x83\xf8\x03\x74\x 06\x48\x83\xf8\
\x2c\x75\x21\x48\x03\x76\x38\x48\x31\xc0\x8b\x41\x 28\x48\xd1\xe0\
\x48\x0f\xb7\x04\x06\x89\x41\x2c\xc7\x41\x30\x00\x 00\x00\x00\xe9\
\xd9\x01\x00\x00\x48\x83\xf8\x04\x74\x06\x48\x83\x f8\x2d\x75\x21\
\x48\x03\x76\x38\x48\x31\xc0\x8b\x41\x28\x66\x8b\x 79\x2c\x48\xd1\
\xe0\x66\x89\x3c\x06\xc7\x41\x30\x00\x00\x00\x00\x e9\xac\x01\x00\
\x00\x48\x83\xf8\x05\x75\x2a\x48\x31\xc0\x48\x8b\x 56\x18\x8b\x04\
\x16\x89\x41\x28\x48\x8b\x56\x10\x8b\x04\x16\x89\x 41\x2c\xc7\x41\
\x30\x66\x00\x00\x00\xc7\x41\x34\x54\x64\x00\x00\x e9\x7c\x01\x00\
\x00\x48\x83\xf8\x06\x74\x05\x83\xf8\x2e\x75\x22\x 48\x03\x76\x08\
\x48\x31\xc0\x8b\x06\x48\x0f\xb7\xf8\xc1\xe8\x10\x 89\x79\x28\x89\
\x41\x2c\xc7\x41\x30\x00\x00\x00\x00\xe9\x4f\x01\x 00\x00\x48\x83\
\xf8\x28\x75\x1a\xc7\x41\x28\x00\x00\x00\x00\xc7\x 41\x2c\x00\x00\
\x00\x00\xc7\x41\x30\x00\x00\x00\x00\xe9\x2f\x01\x 00\x00\x48\x83\
\xf8\x2a\x75\x0c\xc7\x41\x30\x00\x00\x00\x00\xe9\x 1d\x01\x00\x00\
\x48\x83\xf8\x2b\x75\x0c\xc7\x41\x30\x00\x00\x00\x 00\xe9\x0b\x01\
\x00\x00\x48\x83\xf8\x30\x75\x05\xe9\x00\x01\x00\x 00\x48\x83\xf8\
\x32\x74\x06\x48\x83\xf8\x34\x75\x32\x48\x03\x76\x 38\x48\x31\xc0\
\x48\x8b\x79\x40\x8b\x41\x28\x48\xd1\xe0\x48\x01\x c6\x48\x89\xc8\
\x48\x31\xc9\x8b\x48\x2c\x9c\xfc\xf3\x66\xa5\x9d\x 48\x89\xc1\xc7\
\x41\x30\x00\x00\x00\x00\xe9\xc2\x00\x00\x00\x83\x f8\x33\x74\x06\
\x48\x83\xf8\x33\x75\x35\x48\x03\x76\x38\x48\x31\x c0\x48\x8b\x79\
\x40\x8b\x41\x28\x48\xd1\xe0\x48\x01\xc6\x48\x89\x c8\x48\x31\xc9\
\x8b\x48\x2c\x48\x87\xf7\x9c\xfc\xf3\x66\xa5\x9d\x 48\x89\xc1\xc7\
\x41\x30\x00\x00\x00\x00\xe9\x82\x00\x00\x00\x83\x f8\x3c\x74\x05\
\x83\xf8\x58\x75\x31\x83\x79\x2c\x08\x72\x72\x51\x 48\x81\xec\x00\
\x01\x00\x00\x49\x89\xe0\x48\x31\xd2\x8b\x51\x2c\x 48\x8b\x49\x40\
\xe8\x85\x0b\x00\x00\x48\x81\xc4\x00\x01\x00\x00\x 59\xc7\x41\x30\
\x00\x00\x00\x00\xeb\x47\x83\xf8\x3d\x74\x05\x83\x f8\x59\x75\x31\
\x83\x79\x2c\x08\x72\x37\x51\x48\x31\xd2\x8b\x51\x 2c\x48\x8b\x49\
\x40\x48\x81\xec\x00\x01\x00\x00\x49\x89\xe0\xe8\x 34\x10\x00\x00\
\x48\x81\xc4\x00\x01\x00\x00\x59\xc7\x41\x30\x00\x 00\x00\x00\xeb\
\x0c\x83\xf8\x55\x75\x02\xeb\x05\xb8\x78\x56\x34\x 12\x5e\x5f\x5a\
\x5b\x59\xc3\x56\x57\x48\x89\xd6\x48\x89\xcf\x31\x c9\x44\x89\xc1\
\xf3\xa4\x5f\x5e\xc3\x48\x89\x54\x24\x10\x89\x4c\x 24\x08\x48\x83\
\xec\x18\x8b\x44\x24\x20\x83\xe0\x1f\x89\x44\x24\x 20\x8b\x44\x24\
\x20\xc1\xe8\x02\x25\xfe\x00\x00\x00\x48\x8b\x4c\x 24\x28\x0f\xb6\
\x44\x01\x02\xb9\x1f\x00\x00\x00\x2b\x4c\x24\x20\x 83\xe1\x07\xd3\
\xf8\x83\xe0\x01\x88\x44\x24\x04\x0f\xb6\x44\x24\x 04\x83\xf0\x01\
\x8b\x4c\x24\x20\xc1\xe9\x03\x21\xc8\x8b\x4c\x24\x 20\x31\xc1\x89\
\xc8\x8b\x4c\x24\x20\xc1\xe9\x04\x31\xc8\x89\x04\x 24\x48\x8b\x44\
\x24\x28\x8b\x40\x0f\xc1\xe8\x0a\x8b\x0c\x24\x31\x c1\x89\xc8\x89\
\x04\x24\x48\x8b\x44\x24\x28\x8b\x40\x0f\xc1\xe8\x 07\x8b\x0c\x24\
\x31\xc1\x89\xc8\x89\x04\x24\x8b\x44\x24\x20\x83\x e0\x02\x85\xc0\
\x74\x15\x48\x8b\x44\x24\x28\x8b\x40\x0f\xc1\xe8\x 05\x8b\x0c\x24\
\x31\xc1\x89\xc8\x89\x04\x24\x8b\x44\x24\x20\x83\x e0\x04\x85\xc0\
\x74\x15\x48\x8b\x44\x24\x28\x8b\x40\x0f\xc1\xe8\x 08\x8b\x0c\x24\
\x31\xc1\x89\xc8\x89\x04\x24\x8b\x04\x24\x83\xe0\x 01\x89\x04\x24\
\x8b\x44\x24\x20\x83\xe0\x01\xc1\xe0\x02\x48\x8b\x 4c\x24\x28\x8b\
\x49\x0f\x31\xc1\x89\xc8\x48\x8b\x4c\x24\x28\x89\x 41\x0f\x48\x8b\
\x44\x24\x28\x8b\x40\x0f\xd1\xe0\x48\x8b\x4c\x24\x 28\x89\x41\x0f\
\x48\x8b\x44\x24\x28\x8b\x0c\x24\x8b\x40\x0f\x09\x c8\x48\x8b\x4c\
\x24\x28\x89\x41\x0f\x48\x8b\x44\x24\x28\x8b\x40\x 0f\xc1\xe8\x0b\
\x0f\xb6\x4c\x24\x04\x31\xc8\x83\xe0\x01\x48\x83\x c4\x18\xc3\x48\
\x89\x54\x24\x10\x48\x89\x4c\x24\x08\x48\x83\xec\x 48\xc7\x44\x24\
\x30\x1f\x00\x00\x00\x48\x8b\x44\x24\x58\x8b\x40\x 14\x89\x44\x24\
\x20\x8b\x44\x24\x20\x35\x89\x19\x08\x01\x89\x44\x 24\x20\x8b\x44\
\x24\x20\xc1\xe8\x0c\x89\x44\x24\x20\xc7\x44\x24\x 24\x0a\x00\x00\
\x00\xeb\x0a\x8b\x44\x24\x24\xff\xc8\x89\x44\x24\x 24\x83\x7c\x24\
\x24\x05\x76\x69\x0f\xb6\x44\x24\x20\x83\xe0\x0f\x 89\x44\x24\x2c\
\x83\x7c\x24\x2c\x00\x74\x0a\xc7\x44\x24\x38\x01\x 00\x00\x00\xeb\
\x08\xc7\x44\x24\x38\x00\x00\x00\x00\x83\x7c\x24\x 2c\x0b\x73\x0a\
\xc7\x44\x24\x3c\x01\x00\x00\x00\xeb\x08\xc7\x44\x 24\x3c\x00\x00\
\x00\x00\x8b\x44\x24\x3c\x8b\x4c\x24\x38\x21\xc1\x 89\xc8\x8b\x4c\
\x24\x24\xd3\xe0\x8b\x4c\x24\x30\x09\xc1\x89\xc8\x 89\x44\x24\x30\
\x8b\x44\x24\x20\xc1\xe8\x04\x89\x44\x24\x20\xeb\x 86\x8b\x44\x24\
\x30\xc1\xe8\x06\x48\x8b\x4c\x24\x58\x88\x41\x13\x 48\x8b\x44\x24\
\x58\x0f\xb6\x40\x13\xc1\xe0\x06\x83\xc8\x1f\x48\x 8b\x4c\x24\x58\
\x89\x41\x0f\xc7\x44\x24\x24\x01\x00\x00\x00\xc7\x 44\x24\x28\x00\
\x00\x00\x00\xeb\x0a\x8b\x44\x24\x24\xff\xc0\x89\x 44\x24\x24\x83\
\x7c\x24\x24\x27\x77\x6a\x8b\x44\x24\x28\x48\x8b\x 4c\x24\x50\x0f\
\xb6\x04\x01\x48\x8b\x54\x24\x58\x89\xc1\xe8\xa6\x fd\xff\xff\x89\
\x44\x24\x34\x48\x8b\x44\x24\x50\x8b\x00\x83\xe0\x 01\xd1\xe0\x0b\
\x44\x24\x34\x89\x44\x24\x28\x48\x8b\x44\x24\x50\x 8b\x00\x83\xe0\
\x01\x3b\x44\x24\x34\x75\x12\x48\x8b\x44\x24\x50\x 8b\x00\xd1\xe8\
\x48\x8b\x4c\x24\x50\x89\x01\xeb\x15\x48\x8b\x44\x 24\x50\x8b\x00\
\xd1\xe8\x35\x62\x00\x50\x80\x48\x8b\x4c\x24\x50\x 89\x01\xeb\x85\
\x48\x83\xc4\x48\xc3\x48\x89\x4c\x24\x08\x48\x83\x ec\x48\x48\x8b\
\x44\x24\x50\x0f\xb6\x40\x01\xc1\xf8\x05\x83\xe0\x 01\x48\x8b\x4c\
\x24\x50\x88\x41\x0a\x48\x8b\x44\x24\x50\x0f\xb6\x 40\x02\xc1\xf8\
\x07\x83\xe0\x01\x83\xf0\x01\x88\x44\x24\x24\x0f\x b6\x44\x24\x24\
\x85\xc0\x74\x0e\x48\x8b\x44\x24\x50\x0f\xb6\x00\x 89\x44\x24\x3c\
\xeb\x0e\x48\x8b\x44\x24\x50\x0f\xb6\x00\xf7\xd0\x 89\x44\x24\x3c\
\x0f\xb6\x44\x24\x3c\x88\x44\x24\x26\xc7\x44\x24\x 28\x00\x00\x00\
\x00\x48\x8b\x44\x24\x50\x0f\xb6\x40\x01\x83\xe0\x 1f\x88\x44\x24\
\x25\xc7\x44\x24\x2c\x00\x00\x00\x00\xeb\x0a\x8b\x 44\x24\x2c\xff\
\xc0\x89\x44\x24\x2c\x83\x7c\x24\x2c\x04\x7d\x3d\x 0f\xb6\x44\x24\
\x28\xc0\xe0\x02\x88\x44\x24\x28\x0f\xb6\x44\x24\x 25\x83\xe0\x01\
\x0f\xb6\x4c\x24\x25\x83\xf1\x01\x83\xe1\x01\xd1\x e1\x09\xc8\x0f\
\xb6\x4c\x24\x28\x09\xc1\x89\xc8\x88\x44\x24\x28\x 0f\xb6\x44\x24\
\x25\xd0\xe8\x88\x44\x24\x25\xeb\xb2\x0f\xb6\x44\x 24\x28\x35\xff\
\x00\x00\x00\x88\x44\x24\x2a\x0f\xb6\x44\x24\x28\x 88\x44\x24\x29\
\x0f\xb6\x44\x24\x2a\x88\x44\x24\x2b\xc7\x44\x24\x 2c\x00\x00\x00\
\x00\xeb\x0a\x8b\x44\x24\x2c\xff\xc0\x89\x44\x24\x 2c\x83\x7c\x24\
\x2c\x08\x0f\x8d\x9f\x00\x00\x00\x8b\x44\x24\x2c\x 83\xc0\x08\xc1\
\xf8\x02\x25\xfe\x00\x00\x00\x48\x98\x48\x8b\x4c\x 24\x50\x0f\xb6\
\x44\x01\x02\x8b\x4c\x24\x2c\x83\xc1\x08\xba\x1f\x 00\x00\x00\x29\
\xca\x89\xd1\x83\xe1\x07\xd3\xf8\x83\xe0\x01\x0f\x b6\x4c\x24\x25\
\x31\xc8\x8b\x4c\x24\x2c\xd3\xe0\x0f\xb6\x4c\x24\x 29\x31\xc1\x89\
\xc8\x88\x44\x24\x29\x8b\x44\x24\x2c\x83\xc0\x18\x c1\xf8\x02\x25\
\xfe\x00\x00\x00\x48\x98\x48\x8b\x4c\x24\x50\x0f\x b6\x44\x01\x02\
\x8b\x4c\x24\x2c\x83\xc1\x18\xba\x1f\x00\x00\x00\x 29\xca\x89\xd1\
\x83\xe1\x07\xd3\xf8\x83\xe0\x01\x0f\xb6\x4c\x24\x 25\x31\xc8\x8b\
\x4c\x24\x2c\xd3\xe0\x0f\xb6\x4c\x24\x2b\x31\xc1\x 89\xc8\x88\x44\
\x24\x2b\xe9\x4c\xff\xff\xff\x48\x8b\x44\x24\x50\x c7\x40\x0b\x00\
\x00\x00\x00\xc7\x44\x24\x20\x00\x00\x00\x00\xc7\x 44\x24\x30\x1f\
\x00\x00\x00\xeb\x0a\x8b\x44\x24\x30\xff\xc8\x89\x 44\x24\x30\x83\
\x7c\x24\x30\x00\x0f\x8c\xa4\x00\x00\x00\x0f\xb6\x 44\x24\x26\xc1\
\xe0\x03\x48\x8b\x4c\x24\x50\x89\x41\x0f\xc7\x44\x 24\x38\x00\x00\
\x00\x00\xeb\x0a\x8b\x44\x24\x38\xff\xc0\x89\x44\x 24\x38\x83\x7c\
\x24\x38\x0c\x7d\x14\x48\x8b\x54\x24\x50\x8b\x4c\x 24\x30\xe8\xa6\
\x00\x00\x00\x88\x44\x24\x34\xeb\xdb\x8b\x44\x24\x 20\xd1\xe0\x89\
\x44\x24\x20\x8b\x44\x24\x30\xc1\xf8\x02\x25\xfe\x 00\x00\x00\x48\
\x98\x48\x8b\x4c\x24\x50\x0f\xb6\x44\x01\x02\xb9\x 1f\x00\x00\x00\
\x2b\x4c\x24\x30\x83\xe1\x07\xd3\xf8\x83\xe0\x01\x 8b\x4c\x24\x30\
\x83\xe1\x01\x31\xc8\x8b\x4c\x24\x30\x8b\x54\x24\x 28\xd3\xea\x89\
\xd1\x83\xe1\x01\x31\xc8\x0f\xb6\x4c\x24\x34\x31\x c8\x8b\x4c\x24\
\x20\x09\xc1\x89\xc8\x89\x44\x24\x20\xe9\x47\xff\x ff\xff\x48\x8b\
\x44\x24\x50\x8b\x4c\x24\x20\x89\x48\x0b\x0f\xb6\x 44\x24\x26\xc1\
\xe0\x03\x0f\xb6\x4c\x24\x24\xc1\xe1\x02\x09\xc8\x 0f\xb6\x4c\x24\
\x24\xd1\xe1\x09\xc8\x0f\xb6\x4c\x24\x24\x09\xc8\x 48\x8b\x4c\x24\
\x50\x89\x41\x0f\x48\x83\xc4\x48\xc3\x48\x89\x54\x 24\x10\x89\x4c\
\x24\x08\x48\x83\xec\x28\x8b\x44\x24\x30\x83\xe0\x 1f\x89\x44\x24\
\x30\x8b\x44\x24\x30\xd1\xe8\x83\xe0\x03\xe8\x10\x 00\x00\x00\x80\
\x04\x00\x00\xa0\x04\x00\x00\x80\x05\x00\x00\xa0\x 05\x00\x00\x59\
\x8b\x04\x81\x89\x44\x24\x04\xc7\x44\x24\x08\x00\x 00\x00\x00\xc7\
\x44\x24\x0c\x00\x00\x00\x00\xeb\x0a\x8b\x44\x24\x 0c\xff\xc0\x89\
\x44\x24\x0c\x83\x7c\x24\x0c\x0c\x7d\x3d\x8b\x44\x 24\x0c\x0f\xb6\
\xc8\x8b\x44\x24\x04\xd3\xe8\x83\xe0\x01\x85\xc0\x 74\x27\x8b\x44\
\x24\x0c\x48\x8b\x4c\x24\x38\x48\x89\x4c\x24\x10\x 0f\xb6\xc8\x48\
\x8b\x44\x24\x10\x8b\x40\x0f\xd3\xe8\x8b\x4c\x24\x 08\x31\xc1\x89\
\xc8\x89\x44\x24\x08\xeb\xb2\x8b\x44\x24\x30\x83\x e0\x01\xc1\xe0\
\x02\x48\x8b\x4c\x24\x38\x8b\x49\x0f\x31\xc1\x89\x c8\x48\x8b\x4c\
\x24\x38\x89\x41\x0f\x8b\x44\x24\x30\xc1\xe8\x02\x 25\xfe\x00\x00\
\x00\x48\x8b\x4c\x24\x38\x0f\xb6\x44\x01\x02\xb9\x 1f\x00\x00\x00\
\x2b\x4c\x24\x30\x83\xe1\x07\xd3\xf8\x83\xe0\x01\x 48\x8b\x4c\x24\
\x38\x0f\xb6\x49\x0a\x31\xc8\x88\x04\x24\x48\x8b\x 44\x24\x38\x8b\
\x40\x0f\xd1\xe0\x0f\xb6\x0c\x24\x8b\x54\x24\x08\x 31\xca\x89\xd1\
\x83\xe1\x01\x09\xc8\x48\x8b\x4c\x24\x38\x89\x41\x 0f\x8b\x44\x24\
\x30\x48\x8b\x4c\x24\x38\x48\x89\x4c\x24\x18\x0f\x b6\xc8\x48\x8b\
\x44\x24\x18\x8b\x40\x0b\xd3\xe8\x83\xe0\x01\x48\x 8b\x4c\x24\x38\
\x8b\x49\x0f\x31\xc1\x89\xc8\x48\x8b\x4c\x24\x38\x 89\x41\x0f\x48\
\x8b\x44\x24\x38\x8b\x40\x0f\xc1\xe8\x0b\x0f\xb6\x 0c\x24\x31\xc8\
\x83\xe0\x01\x48\x83\xc4\x28\xc3\x48\x89\x54\x24\x 10\x48\x89\x4c\
\x24\x08\x48\x83\xec\x38\x48\x8b\x44\x24\x48\x83\x 78\x14\x00\x74\
\x14\x48\x8b\x54\x24\x48\x48\x8b\x4c\x24\x40\xe8\x 3f\xfa\xff\xff\
\xe9\x97\x00\x00\x00\x48\x8b\x4c\x24\x48\xe8\xa6\x fb\xff\xff\xc7\
\x44\x24\x20\x01\x00\x00\x00\xc7\x44\x24\x24\x00\x 00\x00\x00\xeb\
\x0a\x8b\x44\x24\x20\xff\xc0\x89\x44\x24\x20\x83\x 7c\x24\x20\x27\
\x77\x6a\x8b\x44\x24\x24\x48\x8b\x4c\x24\x40\x0f\x b6\x04\x01\x48\
\x8b\x54\x24\x48\x89\xc1\xe8\x2e\xfe\xff\xff\x89\x 44\x24\x28\x48\
\x8b\x44\x24\x40\x8b\x00\x83\xe0\x01\xd1\xe0\x0b\x 44\x24\x28\x89\
\x44\x24\x24\x48\x8b\x44\x24\x40\x8b\x00\x83\xe0\x 01\x3b\x44\x24\
\x28\x75\x12\x48\x8b\x44\x24\x40\x8b\x00\xd1\xe8\x 48\x8b\x4c\x24\
\x40\x89\x01\xeb\x15\x48\x8b\x44\x24\x40\x8b\x00\x d1\xe8\x35\x62\
\x00\x50\x80\x48\x8b\x4c\x24\x40\x89\x01\xeb\x85\x 48\x83\xc4\x38\
\xc3\x49\x89\xe3\x48\x83\xec\x68\x45\x85\xc0\x49\x 89\x5b\xf8\x49\
\x89\x6b\xf0\x49\x89\x73\xe8\x49\x89\x7b\xe0\x4d\x 89\x63\xd8\x44\
\x8b\x61\x04\x44\x89\xc5\x48\x89\xd6\x48\x89\xcb\x 45\x89\xe1\x45\
\x89\x63\xc8\x74\x26\x49\x8d\x4b\xc8\x49\x89\x4b\x b8\xe8\x00\x00\
\x00\x00\x5a\x48\x81\xea\xd0\x1d\x00\x00\x48\x8b\x 12\x48\x03\x52\
\x20\xe8\xe2\xfe\xff\xff\x44\x8b\x4c\x24\x30\x8b\x 03\x44\x31\xc8\
\x89\xc1\x44\x31\xe0\x35\xc3\x25\x34\x80\x89\x0b\x 89\xc1\x35\xc3\
\x25\x34\x80\xc1\xc0\x02\x33\x03\x89\x0b\x89\xc1\x 35\xc3\x25\x34\
\x80\xc1\xc0\x04\x33\x03\x89\x0b\x89\xc1\x35\xc3\x 25\x34\x80\xc1\
\xc0\x06\x33\x03\x89\x0b\x89\xc1\x35\xc3\x25\x34\x 80\xc1\xc0\x08\
\x33\x03\x89\xc2\x35\xc3\x25\x34\x80\xc1\xc0\x0a\x 89\x13\x31\xc8\
\x85\xed\x48\x8b\x6c\x24\x58\x89\x43\x04\x41\x89\x c4\x89\xc2\x89\
\x44\x24\x34\x74\x27\x48\x8d\x4c\x24\x34\xe8\x00\x 00\x00\x00\x5a\
\x48\x81\xea\x5d\x1e\x00\x00\x48\x8b\x12\x48\x03\x 52\x20\xe8\x55\
\xfe\xff\xff\x8b\x54\x24\x34\x44\x8b\x4c\x24\x30\x 8b\x03\x48\x8b\
\x7c\x24\x48\x31\xd0\x89\xc1\x44\x31\xe0\x4c\x8b\x 64\x24\x40\x35\
\x4a\x00\x2c\x5b\x89\x0b\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x05\
\x33\x03\x89\x0b\x89\xc1\x35\x4a\x00\x2c\x5b\xc1\x c0\x0a\x33\x03\
\x89\x0b\x89\xc1\x35\x4a\x00\x2c\x5b\xc1\xc0\x0f\x 33\x03\x89\x0b\
\x89\xc1\x35\x4a\x00\x2c\x5b\xc1\xc0\x14\x33\x03\x 89\x0b\x89\xc1\
\x35\x4a\x00\x2c\x5b\xc1\xc0\x19\x33\x03\x48\x85\x f6\x89\x0b\x89\
\x43\x04\x48\x8b\x5c\x24\x60\x74\x06\x44\x89\x0e\x 89\x56\x04\x48\
\x8b\x74\x24\x50\x48\x83\xc4\x68\xc3\x48\x83\xec\x 08\x4c\x8d\x0c\
\x24\x41\xb8\x01\x00\x00\x00\x49\x89\x09\x8b\x41\x 5c\x48\xc1\xe0\
\x20\x8b\x49\x12\x48\x09\xc1\x48\x89\xca\x48\x83\x c2\x08\xe8\x6e\
\xfe\xff\xff\x48\x83\xc4\x08\xc3\x49\x89\xe3\x48\x 83\xec\x68\x49\
\x89\x5b\xf8\x48\x89\xcb\x49\x89\x6b\xf0\x49\x89\x 73\xe8\x49\x89\
\x7b\xe0\x4c\x89\xcf\x44\x8b\x09\x4d\x89\x63\xd8\x 45\x89\xc4\x44\
\x89\xc8\x48\x89\xd6\x35\x4a\x00\x2c\x5b\xc1\xc0\x 19\x33\x41\x04\
\x44\x89\x49\x04\x89\x01\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x14\
\x89\x4b\x04\x44\x31\xc8\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x0f\
\x33\x43\x04\x89\x4b\x04\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x0a\
\x33\x43\x04\x89\x4b\x04\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x05\
\x33\x43\x04\x89\x4b\x04\x89\xc1\x8b\x43\x04\x31\x c8\x89\x4b\x04\
\x35\x4a\x00\x2c\x5b\x45\x85\xe4\x89\x03\x89\xc5\x 41\x89\xc0\x89\
\x44\x24\x34\x74\x37\x48\x8b\x07\x49\x8d\x4b\xcc\x 44\x0f\xb7\x48\
\x1e\x44\x0f\xb7\x40\x0c\x0f\xb7\x50\x08\x49\x89\x 4b\xb8\xe8\x00\
\x00\x00\x00\x5a\x48\x81\xea\xe1\x1f\x00\x00\x48\x 8b\x12\x48\x03\
\x52\x20\xe8\xd1\xfc\xff\xff\x44\x8b\x44\x24\x34\x 8b\x43\x04\x44\
\x31\xc0\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x0a\x 89\x4b\x04\x31\
\xe8\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x08\x33\x 43\x04\x89\x4b\
\x04\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x06\x33\x 43\x04\x89\x4b\
\x04\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x04\x33\x 43\x04\x89\x4b\
\x04\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x02\x33\x 43\x04\x89\xc2\
\x89\xc8\x31\xd0\x89\x53\x04\x35\xc3\x25\x34\x80\x 45\x85\xe4\x4c\
\x8b\x64\x24\x40\x89\x03\x89\xc5\x89\xc1\x89\x44\x 24\x30\x74\x3d\
\x48\x8b\x07\x48\x8d\x4c\x24\x30\x44\x0f\xb7\x48\x 1e\x44\x0f\xb7\
\x40\x0c\x0f\xb7\x50\x08\x48\x89\x4c\x24\x20\xe8\x 00\x00\x00\x00\
\x5a\x48\x81\xea\x8e\x20\x00\x00\x48\x8b\x12\x48\x 03\x52\x20\xe8\
\x24\xfc\xff\xff\x44\x8b\x44\x24\x34\x8b\x4c\x24\x 30\x8b\x43\x04\
\x48\x8b\x7c\x24\x48\x89\x6b\x04\x48\x8b\x6c\x24\x 58\x31\xc8\x48\
\x85\xf6\x89\x03\x48\x8b\x5c\x24\x60\x74\x06\x89\x 0e\x44\x89\x46\
\x04\x48\x8b\x74\x24\x50\x48\x83\xc4\x68\xc3\x48\x 83\xec\x08\x4c\
\x8d\x0c\x24\x41\xb8\x01\x00\x00\x00\x49\x89\x09\x 8b\x41\x5c\x48\
\xc1\xe0\x20\x8b\x49\x12\x48\x09\xc1\x48\x89\xca\x 48\x83\xc2\x08\
\xe8\x23\xfe\xff\xff\x48\x83\xc4\x08\xc3\x48\x89\x e0\x48\x81\xec\
\xe8\x00\x00\x00\x48\x89\x58\x08\x48\x89\x68\x10\x 48\x89\x70\x18\
\x48\x89\x78\x20\x4c\x89\x60\xf8\x4c\x89\x68\xf0\x 4c\x89\x70\xe8\
\x4c\x89\x78\xe0\xb8\x08\x00\x00\x00\x44\x8d\x72\x 07\x41\x89\xd7\
\x4c\x89\xc5\x41\xc1\xee\x03\x41\x83\xe7\x07\x48\x 89\xcb\x44\x0f\
\x44\xf8\x45\x31\xc9\x41\x8d\x46\xff\x85\xc0\x44\x 89\x7c\x24\x28\
\x44\x89\x4c\x24\x24\x45\x89\xc8\x44\x89\x4c\x24\x 20\x45\x89\xcd\
\x45\x8d\x51\x02\x0f\x84\x7a\x02\x00\x00\x48\x8b\x 7c\x24\x30\x44\
\x8b\x64\x24\x54\x4d\x89\xd7\x44\x31\x03\x44\x31\x 4b\x04\x45\x85\
\xed\x8b\x0b\x8b\x53\x04\x0f\x85\x16\x01\x00\x00\x 45\x39\xfe\x0f\
\x86\xdb\x00\x00\x00\x66\x44\x89\x6d\x10\x48\x8b\x 03\x48\x89\xe9\
\x48\x89\x44\x24\x38\x48\x8d\x44\x24\x38\x48\x89\x 7c\x24\x40\x89\
\x45\x12\x48\x8d\x44\x24\x38\x66\x44\x89\x7d\x16\x 48\xc1\xe8\x20\
\x66\x44\x89\x6d\x3e\x89\x45\x5c\xe8\x1c\xfd\xff\x ff\x48\x8b\x7c\
\x24\x40\x48\x8b\x44\x24\x38\x48\x89\x7c\x24\x30\x 8b\x74\x24\x34\
\x48\x89\x03\x89\x7c\x24\x50\x48\x8d\x54\x24\x54\x 66\x44\x89\x6d\
\x16\x45\x8d\x45\x05\x8b\x4a\xfc\x48\x83\xc2\x14\x 8d\x04\x31\x83\
\xe1\x1f\x89\x42\xec\x89\xf8\xd3\xc8\x31\x44\x24\x 54\x8b\x4a\xec\
\x8d\x04\x31\x83\xe1\x1f\x89\x42\xf0\x89\xf8\xd3\x c8\x31\x44\x24\
\x54\x8b\x4a\xf0\x8d\x04\x31\x83\xe1\x1f\x89\x42\x f4\x89\xf8\xd3\
\xc8\x31\x44\x24\x54\x8b\x4a\xf4\x8d\x04\x31\x83\x e1\x1f\x89\x42\
\xf8\x89\xf8\xd3\xc8\x31\x44\x24\x54\x8b\x4a\xf8\x 8d\x04\x31\x83\
\xe1\x1f\x89\x42\xfc\x44\x8b\x64\x24\x54\x89\xf8\x d3\xc8\x41\x31\
\xc4\x49\xff\xc8\x44\x89\x64\x24\x54\x75\x8a\xe9\x 42\x01\x00\x00\
\x48\x89\xd8\x48\x89\xe9\x66\xc7\x45\x10\x00\x00\x 48\xc1\xe8\x20\
\x66\xc7\x45\x16\x01\x00\x66\xc7\x45\x3e\x00\x00\x 89\x45\x5c\x89\
\x5d\x12\xe8\x52\xfc\xff\xff\x66\xc7\x45\x16\x00\x 00\xe9\x10\x01\
\x00\x00\x8b\x44\x24\x50\x46\x8d\x04\x21\x4c\x8d\x 4c\x24\x5c\x8d\
\x34\x02\x44\x89\x03\x4d\x89\xfa\x89\x73\x04\x44\x 89\xc1\x44\x89\
\xc2\x49\x83\xc1\x30\xc1\xe9\x04\x31\xf2\x83\xe1\x 1f\xd3\xc2\x41\
\x2b\x51\xcc\x41\x31\xd0\x89\xd1\xc1\xe9\x07\x83\x e1\x1f\x41\xd3\
\xc0\x45\x03\x41\xd0\x44\x89\xc1\x44\x89\xc6\xc1\x e9\x04\x31\xd6\
\x83\xe1\x1f\xd3\xc6\x41\x2b\x71\xd4\x41\x31\xf0\x 89\xf1\xc1\xe9\
\x07\x83\xe1\x1f\x41\xd3\xc0\x45\x03\x41\xd8\x44\x 89\xc1\x44\x89\
\xc2\xc1\xe9\x04\x31\xf2\x83\xe1\x1f\xd3\xc2\x41\x 2b\x51\xdc\x41\
\x31\xd0\x89\xd1\xc1\xe9\x07\x83\xe1\x1f\x41\xd3\x c0\x45\x03\x41\
\xe0\x44\x89\xc1\x44\x89\xc6\xc1\xe9\x04\x31\xd6\x 83\xe1\x1f\xd3\
\xc6\x41\x2b\x71\xe4\x41\x31\xf0\x89\xf1\xc1\xe9\x 07\x83\xe1\x1f\
\x41\xd3\xc0\x45\x03\x41\xe8\x44\x89\xc1\x44\x89\x c2\xc1\xe9\x04\
\x31\xf2\x83\xe1\x1f\xd3\xc2\x41\x2b\x51\xec\x41\x 31\xd0\x89\xd1\
\xc1\xe9\x07\x83\xe1\x1f\x41\xd3\xc0\x45\x03\x41\x f0\x44\x89\xc1\
\x44\x89\xc6\xc1\xe9\x04\x31\xd6\x83\xe1\x1f\xd3\x c6\x41\x2b\x71\
\xf4\x41\x31\xf0\x89\xf1\xc1\xe9\x07\x83\xe1\x1f\x 41\xd3\xc0\x45\
\x03\x41\xf8\x49\xff\xca\x0f\x85\x0f\xff\xff\xff\x 44\x89\x03\x89\
\x73\x04\x44\x8b\x03\x44\x8b\x4b\x04\x41\x8d\x46\x ff\x41\xff\xc5\
\x48\x83\xc3\x08\x44\x89\x44\x24\x20\x41\x39\xc5\x 44\x89\x4c\x24\
\x24\x0f\x82\xa0\xfd\xff\xff\x44\x8b\x7c\x24\x28\x 41\xba\x02\x00\
\x00\x00\xeb\x05\x44\x8b\x64\x24\x54\x45\x85\xff\x 4c\x8b\xac\x24\
\xd8\x00\x00\x00\x74\x2c\x48\x8d\x44\x24\x20\x48\x 89\xdf\x48\x8d\
\x4c\x24\x20\x48\x29\xc7\x44\x89\xfa\x0f\xb6\x04\x 0f\x48\xff\xc1\
\x30\x41\xff\x48\xff\xca\x75\xf1\x44\x8b\x4c\x24\x 24\x44\x8b\x44\
\x24\x20\x41\x83\xfe\x02\x0f\x86\xff\x00\x00\x00\x 44\x03\x4c\x24\
\x50\x48\x8d\x74\x24\x5c\x45\x01\xe0\x44\x89\xc1\x 44\x89\xc2\x48\
\x83\xc6\x30\xc1\xe9\x04\x44\x31\xca\x83\xe1\x1f\x d3\xc2\x2b\x56\
\xcc\x41\x31\xd0\x89\xd1\xc1\xe9\x07\x83\xe1\x1f\x 41\xd3\xc0\x44\
\x03\x46\xd0\x44\x89\xc1\x44\x89\xc7\xc1\xe9\x04\x 31\xd7\x83\xe1\
\x1f\xd3\xc7\x2b\x7e\xd4\x41\x31\xf8\x89\xf9\xc1\x e9\x07\x83\xe1\
\x1f\x41\xd3\xc0\x44\x03\x46\xd8\x44\x89\xc1\x44\x 89\xc2\xc1\xe9\
\x04\x31\xfa\x83\xe1\x1f\xd3\xc2\x2b\x56\xdc\x41\x 31\xd0\x89\xd1\
\xc1\xe9\x07\x83\xe1\x1f\x41\xd3\xc0\x44\x03\x46\x e0\x44\x89\xc1\
\x44\x89\xc7\xc1\xe9\x04\x31\xd7\x83\xe1\x1f\xd3\x c7\x2b\x7e\xe4\
\x41\x31\xf8\x89\xf9\xc1\xe9\x07\x83\xe1\x1f\x41\x d3\xc0\x44\x03\
\x46\xe8\x44\x89\xc1\x44\x89\xc2\xc1\xe9\x04\x31\x fa\x83\xe1\x1f\
\xd3\xc2\x2b\x56\xec\x41\x31\xd0\x89\xd1\xc1\xe9\x 07\x83\xe1\x1f\
\x41\xd3\xc0\x44\x03\x46\xf0\x44\x89\xc1\x45\x89\x c1\xc1\xe9\x04\
\x41\x31\xd1\x83\xe1\x1f\x41\xd3\xc1\x44\x2b\x4e\x f4\x45\x31\xc8\
\x44\x89\xc9\xc1\xe9\x07\x83\xe1\x1f\x41\xd3\xc0\x 44\x03\x46\xf8\
\x49\xff\xca\x0f\x85\x10\xff\xff\xff\xeb\x51\x41\x 83\xfe\x01\x75\
\x0d\x8b\x03\x89\x44\x24\x20\x8b\x43\x04\x89\x44\x 24\x24\x48\x8d\
\x44\x24\x20\x48\x89\xe9\x66\xc7\x45\x10\x00\x00\x 89\x45\x12\x48\
\x8d\x44\x24\x20\x66\xc7\x45\x16\x01\x00\x48\xc1\x e8\x20\x66\xc7\
\x45\x3e\x00\x00\x89\x45\x5c\xe8\x7d\xf9\xff\xff\x 44\x8b\x4c\x24\
\x24\x44\x8b\x44\x24\x20\x66\xc7\x45\x16\x00\x00\x 4c\x8b\xa4\x24\
\xe0\x00\x00\x00\x48\x8b\xac\x24\xf8\x00\x00\x00\x 41\x83\xfe\x01\
\x4c\x8b\xb4\x24\xd0\x00\x00\x00\x76\x1b\x45\x85\x ff\x74\x0c\x48\
\x8d\x73\xf8\x44\x89\xf9\x48\x89\xdf\xf3\xa4\x44\x 89\x43\xf8\x44\
\x89\x4b\xfc\xeb\x07\x44\x89\x03\x44\x89\x4b\x04\x 4c\x8b\xbc\x24\
\xc8\x00\x00\x00\x48\x8b\xbc\x24\x08\x01\x00\x00\x 48\x8b\xb4\x24\
\x00\x01\x00\x00\x48\x8b\x9c\x24\xf0\x00\x00\x00\x 48\x81\xc4\xe8\
\x00\x00\x00\xc3\x48\x89\xe0\x48\x81\xec\xf8\x00\x 00\x00\x48\x89\
\x58\x08\x48\x89\x68\x10\x48\x89\x70\x18\x48\x89\x 78\x20\x4c\x89\
\x60\xf8\x4c\x89\x68\xf0\x4c\x89\x70\xe8\x4c\x89\x 78\xe0\x48\x89\
\xcb\x8d\x4a\x07\x89\xd0\xba\x08\x00\x00\x00\xc1\x e9\x03\x83\xe0\
\x07\x4c\x89\xc7\x0f\x44\xc2\x45\x31\xff\x83\xf9\x 01\x89\x4c\x24\
\x30\x44\x8d\x62\x04\x44\x89\x7c\x24\x2c\x44\x89\x 7c\x24\x34\x44\
\x89\x7c\x24\x28\x45\x89\xfe\x89\x44\x24\x38\x0f\x 86\x9f\x01\x00\
\x00\x83\xc1\xfe\x44\x89\xfe\x89\x4c\x24\x20\x0f\x 84\x8f\x01\x00\
\x00\x48\x8b\x44\x24\x40\x44\x8b\x6c\x24\x64\x8b\x 6c\x24\x60\x85\
\xf6\x44\x8b\x03\x44\x8b\x73\x04\x45\x89\xc7\x44\x 89\x44\x24\x28\
\x0f\x85\xee\x00\x00\x00\x48\x89\x44\x24\x50\x48\x 8d\x44\x24\x48\
\x66\x89\x77\x10\x48\x8b\x0b\x89\x47\x12\x48\x8d\x 44\x24\x48\x48\
\xc1\xe8\x20\x48\x89\x4c\x24\x48\x48\x89\xf9\x66\x c7\x47\x16\x02\
\x00\x66\x89\x77\x3e\x89\x47\x5c\xe8\x0e\xfa\xff\x ff\x48\x8b\x44\
\x24\x48\x4c\x8d\x44\x24\x64\x48\x89\x03\x48\x8b\x 44\x24\x50\x44\
\x8d\x56\x05\x48\x89\x44\x24\x40\x44\x8b\x4c\x24\x 44\x66\x89\x77\
\x16\x89\x44\x24\x60\x41\x8b\x48\xfc\x49\x83\xc0\x 14\x42\x8d\x14\
\x09\x83\xe1\x1f\x41\x89\x50\xec\x89\xc2\xd3\xca\x 31\x54\x24\x64\
\x41\x8b\x48\xec\x42\x8d\x14\x09\x83\xe1\x1f\x41\x 89\x50\xf0\x89\
\xc2\xd3\xca\x31\x54\x24\x64\x41\x8b\x48\xf0\x42\x 8d\x14\x09\x83\
\xe1\x1f\x41\x89\x50\xf4\x89\xc2\xd3\xca\x31\x54\x 24\x64\x41\x8b\
\x48\xf4\x42\x8d\x14\x09\x83\xe1\x1f\x41\x89\x50\x f8\x89\xc2\xd3\
\xca\x31\x54\x24\x64\x41\x8b\x48\xf8\x42\x8d\x14\x 09\x83\xe1\x1f\
\x41\x89\x50\xfc\x44\x8b\x6c\x24\x64\x89\xc2\xd3\x ca\x41\x31\xd5\
\x49\xff\xca\x44\x89\x6c\x24\x64\x0f\x85\x77\xff\x ff\xff\x8b\x6c\
\x24\x60\xeb\x4b\x45\x89\xe3\x45\x89\xf1\x4c\x8d\x 94\x24\xc0\x00\
\x00\x00\x45\x2b\x42\x04\x44\x89\xc9\x49\x83\xea\x 08\xc1\xe9\x07\
\x83\xe1\x1f\x41\xd3\xc8\x45\x31\xc8\x45\x03\x4a\x 08\x44\x89\xc1\
\xc1\xe9\x04\x83\xe1\x1f\x41\xd3\xc9\x45\x31\xc1\x 41\x83\xc3\xff\
\x75\xd0\x45\x29\xe8\x41\x29\xe9\x44\x89\x4b\x04\x 44\x89\x03\x8b\
\x4c\x24\x34\xff\xc6\x48\x83\xc3\x08\x31\x4b\xf8\x 8b\x4c\x24\x2c\
\x44\x89\x7c\x24\x34\x31\x4b\xfc\x3b\x74\x24\x20\x 44\x89\x74\x24\
\x2c\x0f\x82\x88\xfe\xff\xff\x8b\x44\x24\x38\x45\x 31\xff\xeb\x09\
\x44\x8b\x6c\x24\x64\x8b\x6c\x24\x60\x85\xc0\x44\x 89\x7c\x24\x20\
\x44\x89\xfe\x44\x89\x7c\x24\x24\x74\x1a\x48\x8d\x 53\x08\x48\x8d\
\x4c\x24\x20\x41\x89\xc0\xe8\xb8\xed\xff\xff\x8b\x 74\x24\x24\x44\
\x8b\x7c\x24\x20\x44\x8b\x5c\x24\x30\x41\x83\xfb\x 01\x75\x32\x48\
\x89\xd8\x48\x89\xf9\x66\xc7\x47\x10\x00\x00\x48\x c1\xe8\x20\x66\
\xc7\x47\x16\x01\x00\x66\xc7\x47\x3e\x00\x00\x89\x 47\x5c\x89\x5f\
\x12\xe8\x75\xf8\xff\xff\x66\xc7\x47\x16\x00\x00\x e9\x29\x01\x00\
\x00\x41\x83\xfb\x02\x75\x34\x48\x89\xd8\x48\x89\x f9\x66\xc7\x47\
\x10\x00\x00\x48\xc1\xe8\x20\x66\xc7\x47\x16\x01\x 00\x66\xc7\x47\
\x3e\x00\x00\x89\x47\x5c\x89\x5f\x12\xe8\x3d\xf8\x ff\xff\x44\x8b\
\x5c\x24\x30\x66\xc7\x47\x16\x00\x00\xeb\x55\x8b\x 13\x44\x8b\x43\
\x04\x45\x89\xe2\x4c\x8d\x8c\x24\xc0\x00\x00\x00\x 41\x2b\x51\x04\
\x44\x89\xc1\x49\x83\xe9\x08\xc1\xe9\x07\x83\xe1\x 1f\xd3\xca\x44\
\x31\xc2\x45\x03\x41\x08\x89\xd1\xc1\xe9\x04\x83\x e1\x1f\x41\xd3\
\xc8\x41\x31\xd0\x41\x83\xc2\xff\x75\xd2\x44\x29\x ea\x41\x29\xe8\
\x41\x83\xfb\x01\x89\x13\x44\x89\x43\x04\x0f\x86\x 9a\x00\x00\x00\
\x44\x33\x3b\x33\x73\x04\x8b\x44\x24\x38\x85\xc0\x 44\x89\x7c\x24\
\x20\x89\x74\x24\x24\x74\x31\x4c\x8d\x44\x24\x20\x 49\x89\xd9\x48\
\x8d\x4b\x08\x4d\x29\xc1\x49\x89\xc0\x48\x8d\x54\x 24\x20\x0f\xb6\
\x01\x48\xff\xc1\x48\xff\xc2\x49\xff\xc8\x41\x88\x 44\x11\xff\x0f\
\xb6\x42\xff\x88\x41\xff\x75\xe6\x41\x83\xfb\x02\x 0f\x84\xed\xfe\
\xff\xff\x8b\x13\x44\x8b\x43\x04\x4c\x8d\x8c\x24\x c0\x00\x00\x00\
\x41\x2b\x51\x04\x44\x89\xc1\x49\x83\xe9\x08\xc1\x e9\x07\x83\xe1\
\x1f\xd3\xca\x44\x31\xc2\x45\x03\x41\x08\x89\xd1\x c1\xe9\x04\x83\
\xe1\x1f\x41\xd3\xc8\x41\x31\xd0\x41\x83\xc4\xff\x 75\xd2\x44\x29\
\xea\x41\x29\xe8\x44\x89\x43\x04\x89\x13\x8b\x44\x 24\x28\x4c\x8b\
\xbc\x24\xd8\x00\x00\x00\x4c\x8b\xac\x24\xe8\x00\x 00\x00\x31\x03\
\x44\x31\x73\x04\x4c\x8b\xa4\x24\xf0\x00\x00\x00\x 4c\x8b\xb4\x24\
\xe0\x00\x00\x00\x48\x8b\x9c\x24\x00\x01\x00\x00\x 48\x8b\xbc\x24\
\x18\x01\x00\x00\x48\x8b\xb4\x24\x10\x01\x00\x00\x 48\x8b\xac\x24\
\x08\x01\x00\x00\x48\x81\xc4\xf8\x00\x00\x00\xc3\x cc\xcc\xcc\xcc\
\x57\x59\xe9\xf9\xd5\xff\xff')

fullfname=os.getcwd()+'/backbas.so'

# uncomment next 2 lines to get unipatch for 50 spartans
#unipatch[0x11F8]=50
#unipatch[0x137E]=50

try:
fp = open(fullfname, 'r+')
if os.stat(fp.name).st_size > 0:
mm = mmap.mmap(fp.fileno(), os.stat(fp.name).st_size)
pattern_addr = mm.find(pattern)
if pattern_addr != -1:
unipatch_addr=pattern_addr-0x2A75
print ('patching '+fullfname+' at offset 0x'+format(unipatch_addr,'08X'))
mm[unipatch_addr:unipatch_addr+0x2A07] = unipatch
mm[0x7C] = 7

mm.close()
except IOError:
print ('Cannot open file '+fullfname+' for read-write.')

HPDX2300
05.06.2022, 22:02
Посмотрел я в 010editor на сборку 16-1030-macos (первая продуктивная в линейке 8.3.16) - файлы не подписаны ц.п., а вот последняя из этой линейки 16-1973-macos уже подписана ц.п.
Применил я к 16-1030-macos унипатч, а она, дрянь такая, не "взлетает".
В отладчике посмотрел "где грабли лежат?" - системный загрузчик отказывается загрузить вылеченный модуль бэкбейс.dylib.
В коде 1cv8 сразу после загрузки либы бэкбейс идет вызов вирт.метода некоторого объекта либы бэкбейс - поскольку либа не загружена, то происходит обращение к памяти с адресом 0 - это "нарушение защиты памяти", процесс убивается с крахом SEGFAULT:11, в отчете о крахе примерно такое:


Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Termination Signal: Segmentation fault: 11


Открываю "капот" и начинаю изучать вращение шестерёнок - в модуле коре83 есть объект, один из вирт.методов которого выполняет динамическую загрузку большинства модулей изделия.
Этот метод в своих недрах вызывает в системном модуле /usr/lib/dyld функцию dlopen, которая выполняет динамическую загрузку либы в память процесса. Если dlopen почему-либо сбойнула, то надо сразу вызвать функцию dlerror, которая вернет указатель на текстовую строку с разъяснением "чё случилось плохого при выполнении dlopen?".
Я проделал в отладчике этот кульбит (сразу после выхода из dlopen выполнить dlerror) и dlerror вернула мне такое:

dlopen(/opt/1cv8/8.3.16.1030/backbas.dylib, 9): no suitable image found.
Did find:
/opt/1cv8/8.3.16.1030/backbas.dylib: malformed mach-o image: __TEXT segment maps start of file but is writable
/opt/1cv8/8.3.16.1030/backbas.dylib: stat() failed with errno=20
Казалось бы - всё, ППЦ, "оставь надежду навсегда".
Но тот же самый унипатч работает в изделии 8-2137-macos, это говорит о том, что есть в коде функции dlopen "фича" (читай - "бага"), своеобразный workaround для обхода ситуации "malformed mach-o image...ля-ля-ля-тополя".

При изучении системного модуля /usr/lib/dyld (Mac OS X 10.13.6 (17G65) - т.н. "High Sierra")
вижу строковую константу '@(#)PROGRAM:dyld PROJECT:dyld-551.4'
заглянем на страницу какбы-опен-сорц-огрызка-яблока (не пытайтесь компилировать - не получица) (https://opensource.apple.com/source/dyld/)
выбираем свой (dyld-551.4) и смотрим исходник ImageLoaderMachO.cpp (https://opensource.apple.com/source/dyld/dyld-551.4/src/ImageLoaderMachO.cpp.auto.html):
а в нём

int ImageLoaderMachO::crashIfInvalidCodeSignature()
{
// Now that segments are mapped in, try reading from first executable segment.
// If code signing is enabled the kernel will validate the code signature
// when paging in, and kill the process if invalid.
...ля-ля-ля-тополя...
}
Короче: если вы отредактировали какой-то макосный модуль, имеющий ц.п., то ядро ОС, обнаружив невалидную ц.п., сделает вам "серпом по молоту".

Если мне удастся понять, какие удачные стечения обстоятельств позволяют хакнутой либе бэкбейс работать и "не жужжать" в изделии 8-2137-macos, то, надеюсь, мне удастся заставить "взлетать" ВСЕ (и которые с ц.п.) сборки для macos после укола унипатчем.

HPDX2300
07.06.2022, 01:25
Сборка 16-1030-macos "сдалась" - для успешного "взлета" после укола унипатчем потребовалось поправить по 2 байта в заголовках либы бэкбейс и толстого клиента.
Теперь поковыряю свежие сборки с ц.п. - 20 и 21, как ожидается - должно взлетать даже без отламывания ц.п.
Патчер на питоне будет не сегодня - мне давно пора спать.

HPDX2300
07.06.2022, 19:43
...унипатч работает в изделии 8-2137-macos, это говорит о том, что есть в коде функции dlopen "фича" (читай - "бага"), своеобразный workaround для обхода ситуации "malformed mach-o image...ля-ля-ля-тополя".
Если мне удастся понять, какие удачные стечения обстоятельств позволяют хакнутой либе бэкбейс работать и "не жужжать" в изделии 8-2137-macos, то, надеюсь, мне удастся заставить "взлетать" ВСЕ (и которые с ц.п.) сборки для macos после укола унипатчем.
в коде /usr/bin/dyld есть такие строки:
// We need to ignore older code signatures because they will be bad.
и
// ...ignore code signatures in binaries built with pre-10.9 tools
т.е. если сборка и подписывание осуществлялось SDK 10.8 или более старым, то ц.п. игнорируется.
Последняя из линейки 16-1973-macos подписана ц.п. - меняем в заголовке файлов (толстый и тонкий клиенты, либа бэкбейс) поле sdkVersion на 10.8 и лечим либу бэкбейс унипатчем - и 16-1973-macos "взлетает" на High Sierra.
21-ая линейка ,похоже, имеет доп."шестерёнки" - с первого пинка не "полетела", ну так "ёж птица гордая - не пнёшь, не полетит".

HPDX2300
08.06.2022, 00:55
Последняя из линейки 18-1779-macos подписана ц.п. - полечил точно также как 16-1973-macos и 18-1779-macos "взлетает" на High Sierra.

HPDX2300
08.06.2022, 15:45
Последняя из линейки 20-1838-macos вылечена - поменял в заголовках файлов поле sdkVersion на 10.8 и полечил либу бэкбейс унипатчем - и она "взлетает" на High Sierra.
репак 20-1838-macos брать тут, незнаю как долго сервер будет его хранить (https://www.solidfiles.com/v/z3yM75q58AMWZ)
Сперва скачайте и установите оригинального клиента для макоси 8.3.20.1838 - у вас появятся иконки и ярлыки для запуска. Запускать пока не надо.
Скачайте repack-macos-20-1838.tar.gz
1) если хотите действовать под учеткой супер-пользователя root, то команда в терминале даст вам:
sudo -i
но лучше заранее стать владельцем папки /opt/1cv8, тогда в терминале можно действовать под своей учеткой.
2) файл архива передвинуть в папку /opt/1cv8 и распаковать командой:
tar -xvf repack-macos-20-1838.tar.gz
при распаковке будет создана папка 8.3.20.1838 (согласитесь на перезапись всех файлов), в ней 1cv8 - толстый клиент, 1cv8c - тонкий клиент

HPDX2300
09.06.2022, 12:39
репак 20-1838-macos брать тут, будет удален сервером 2022-08-08 (https://files.fm/u/nar3wcy7q)

HPDX2300
09.06.2022, 15:17
репак repack-macos-20-1838.tar.gz - это "облегченная" копия папки /opt/1cv8/8.3.20.1838 (удалены почти все res-файлы, кроме русского и eng, папки и текстовые файлы)
Его одного достаточно для работы - если не выполнять установку оригинального пакета, то просто у вас не будет желтых иконок и ярлыков для запуска.
Ярлыки для запуска можно сделать самому - в Finder выполнить поиск 1cv8 - вместе с файлами будет найдена папка /opt/1cv8, перейти в неё и далее в папку 8.3.20.1838, в ней на файлах 1cv8 и 1cv8с ПКМ и в меню выбрать "Создать псевдоним" ("Make alias")
Напоминаю, файл /opt/1cv8/8.3.20.1838/1cv8 - толстый клиент, /opt/1cv8/8.3.20.1838/1cv8c - тонкий клиент

HPDX2300
09.06.2022, 20:51
Уточнение:
2) файл архива не обязательно передвигать в папку /opt/1cv8, распаковать можно командой с указанием полного пути к файлу и текущий каталог должен быть /opt/1cv8.

первая команда - перейти в папку /opt/1cv8:
cd /opt/1cv8

и сразу вторая команда - распаковка:
tar -xvf /Users/user/Downloads/repack-macos-20-1838.tar.gz

при распаковке будет создана папка 8.3.20.1838 (если папка уже была - будет перезапись файлов в ней без запроса разрешения)

HPDX2300
12.06.2022, 01:40
репак 21-1302-macos брать тут, будет удален сервером 2022-08-11 (https://files.fm/u/nzkb99vde)
Должен работать на макоси 10.8.0 или более новой, я проверял на макоси 10.13.6
Если вам достаточно русского языка и english, то можно предварительно не устанавливать оригинального клиента для макоси 8.3.21.1302.
(удалены файлы справочной системы *.hbk и почти все языковые ресурсы *.res)
Установка - запускаем Терминал и вводим команды:
sudo -i
cd /
tar -xvf /Users/user/Downloads/repack-21-1302-macos.tar.gz

HPDX2300
21.06.2022, 12:44
патчер для линукса-x64 + python3
код ниже сохранить в файл unipatch.py
запускать так (либа бэкбейс должна быть рядом - в том же каталоге):
python3 unipatch.py
если предварительно выполнить:
chmod +x unipatch.py
, то запускать можно будеть так:
./unipatch.py
заголовок файла теперь анализируется - место укола может меняться
проверялось на питоне 3.6.8
в строках 683,684 можно вписать желаемое число "спартанцев" (1,5,10,20,50), по-дефолту получите 100

#!/usr/bin/env python3
import sys, os, glob, mmap

pattern = bytearray(b'\x41\x81\x78\x08\x6C\x68\x73\x68')
unipatch = bytearray(b'\
\x51\x53\x52\x57\x56\xe8\x88\x13\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0\x00\x 00\x00\x00\x00\
\x00\x00\xa4\x00\x00\x00\x00\x00\x00\x00\xa8\x00\x 00\x00\x00\x00\
\x00\x00\xac\x00\x00\x00\x00\x00\x00\x00\xb0\x00\x 00\x00\x00\x00\
\x00\x00\xb1\x00\x00\x00\x00\x00\x00\x00\xb2\x00\x 00\x00\x00\x00\
\x00\x00\xfa\x00\x00\x00\x00\x00\x00\x00\xfa\x10\x 00\x00\x00\x00\
\x00\x00\x06\x11\x00\x00\x00\x00\x00\x00\xc4\x10\x 00\x00\x00\x00\
\x00\x00\xc8\x10\x00\x00\x00\x00\x00\x00\xcc\x10\x 00\x00\x00\x00\
\x00\x00\xd0\x10\x00\x00\x00\x00\x00\x00\xd4\x10\x 00\x00\x00\x00\
\x00\x00\xd5\x10\x00\x00\x00\x00\x00\x00\xd6\x10\x 00\x00\x00\x00\
\x00\x00\x1e\x11\x00\x00\x00\x00\x00\x00\x0e\x13\x 00\x00\x00\x00\
\x00\x00\x1a\x13\x00\x00\x00\x00\x00\x00\x7a\x23\x 25\x41\x71\xcf\
\x1d\x28\x01\x00\x00\x00\x01\x00\x00\x00\xfb\x13\x 15\xea\x8f\xea\
\x73\xea\xeb\xea\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\xd0\x bc\x08\x3f\x28\
\x30\x02\xe5\x6f\x3e\x39\xd4\x76\x9f\x6f\xd4\x76\x 21\x57\x02\x41\
\xc3\xcc\xd5\xa7\x4b\x4c\xc2\x81\x64\x84\x55\x76\x 41\xe1\x5e\x2c\
\x18\xa7\x6f\xf2\x08\xe1\x40\xa0\x4e\x94\xa7\x4a\x b5\x41\x53\x6d\
\x48\xc3\x6d\xe4\xa4\xec\xc8\x9c\x27\x7d\xe0\x79\x 51\xb1\x25\xc6\
\xa1\x69\x14\xfb\x03\x7b\xc5\x1b\xe3\xef\xa3\x1e\x 04\xb5\xa5\xe1\
\x4e\xc8\x5d\x28\x99\x30\x10\x39\x2f\x8d\xb3\xe0\x 95\xf0\x36\x91\
\x56\x46\xc4\x75\x01\x00\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\x57\x42\x50\x54\x01\x00\x00\x00\x 70\x00\x00\x00\
\x00\x00\x21\x11\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\xff\xff\
\x00\x01\x02\x4a\x1f\x01\x18\x02\x08\x01\x14\x2c\x 33\x00\xcb\x70\
\x6d\x3b\xd6\xc5\x93\x1b\x0a\x00\x00\x00\x04\x00\x 00\x00\xdb\x30\
\x9a\x21\x2c\x25\xde\x65\x6c\x65\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\
\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x 00\x00\x00\x08\
\x97\xf2\x84\xcf\xdc\x4e\x1e\xbb\x55\x6e\x19\x91\x 2d\x4a\x74\xa3\
\x33\x7d\x33\x69\x30\xe3\x5c\x64\xe5\xd7\x5b\x51\x c3\xc4\x9d\x0f\
\xf7\xd5\xf6\xa4\x34\x0e\xe5\xe5\x4b\x63\x44\x2e\x 80\x73\x06\xf8\
\x6a\xd1\x37\xba\x0f\x9a\xfd\x74\x7b\x5c\x89\xae\x 3b\xac\x18\xbb\
\x71\x8a\x9b\x85\x7c\x13\x1d\x9f\xbf\x55\x82\x70\x 6d\x87\xda\x18\
\x0a\xbd\xc4\x22\x05\xa5\x28\xd4\x54\xb2\xbc\x38\x f1\xf2\xe6\xf4\
\x54\x09\x42\x4c\xb2\xe1\x1d\xab\x64\x00\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x ff\xff\xff\xff\
\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x 00\x00\x64\x00\
\x00\x00\xfe\xff\x00\x01\x02\x4a\x1f\x01\x04\x07\x 08\x01\x10\x34\
\x07\x00\x5e\x48\x89\xc9\x48\x31\xc0\x48\x31\xd2\x 8a\x41\x16\x89\
\x06\x48\x89\xf3\x48\x83\xc6\x10\x48\x83\xf8\x01\x 75\x0d\xc6\x41\
\x28\x01\xc6\x41\x30\x00\xe9\x32\x02\x00\x00\x66\x 8b\x51\x20\xc1\
\xe2\x10\x66\x8b\x51\x24\x48\x8b\x3e\x3b\x14\x3e\x 75\x02\x74\x10\
\x48\x83\xc6\x50\x48\x8b\x3e\x3b\x14\x3e\x0f\x85\x 0d\x02\x00\x00\
\x89\x53\x04\x48\x89\x73\x08\x48\x83\xf8\x03\x74\x 06\x48\x83\xf8\
\x2c\x75\x21\x48\x03\x76\x38\x48\x31\xc0\x8b\x41\x 28\x48\xd1\xe0\
\x48\x0f\xb7\x04\x06\x89\x41\x2c\xc7\x41\x30\x00\x 00\x00\x00\xe9\
\xd9\x01\x00\x00\x48\x83\xf8\x04\x74\x06\x48\x83\x f8\x2d\x75\x21\
\x48\x03\x76\x38\x48\x31\xc0\x8b\x41\x28\x66\x8b\x 79\x2c\x48\xd1\
\xe0\x66\x89\x3c\x06\xc7\x41\x30\x00\x00\x00\x00\x e9\xac\x01\x00\
\x00\x48\x83\xf8\x05\x75\x2a\x48\x31\xc0\x48\x8b\x 56\x18\x8b\x04\
\x16\x89\x41\x28\x48\x8b\x56\x10\x8b\x04\x16\x89\x 41\x2c\xc7\x41\
\x30\x66\x00\x00\x00\xc7\x41\x34\x54\x64\x00\x00\x e9\x7c\x01\x00\
\x00\x48\x83\xf8\x06\x74\x05\x83\xf8\x2e\x75\x22\x 48\x03\x76\x08\
\x48\x31\xc0\x8b\x06\x48\x0f\xb7\xf8\xc1\xe8\x10\x 89\x79\x28\x89\
\x41\x2c\xc7\x41\x30\x00\x00\x00\x00\xe9\x4f\x01\x 00\x00\x48\x83\
\xf8\x28\x75\x1a\xc7\x41\x28\x00\x00\x00\x00\xc7\x 41\x2c\x00\x00\
\x00\x00\xc7\x41\x30\x00\x00\x00\x00\xe9\x2f\x01\x 00\x00\x48\x83\
\xf8\x2a\x75\x0c\xc7\x41\x30\x00\x00\x00\x00\xe9\x 1d\x01\x00\x00\
\x48\x83\xf8\x2b\x75\x0c\xc7\x41\x30\x00\x00\x00\x 00\xe9\x0b\x01\
\x00\x00\x48\x83\xf8\x30\x75\x05\xe9\x00\x01\x00\x 00\x48\x83\xf8\
\x32\x74\x06\x48\x83\xf8\x34\x75\x32\x48\x03\x76\x 38\x48\x31\xc0\
\x48\x8b\x79\x40\x8b\x41\x28\x48\xd1\xe0\x48\x01\x c6\x48\x89\xc8\
\x48\x31\xc9\x8b\x48\x2c\x9c\xfc\xf3\x66\xa5\x9d\x 48\x89\xc1\xc7\
\x41\x30\x00\x00\x00\x00\xe9\xc2\x00\x00\x00\x83\x f8\x33\x74\x06\
\x48\x83\xf8\x33\x75\x35\x48\x03\x76\x38\x48\x31\x c0\x48\x8b\x79\
\x40\x8b\x41\x28\x48\xd1\xe0\x48\x01\xc6\x48\x89\x c8\x48\x31\xc9\
\x8b\x48\x2c\x48\x87\xf7\x9c\xfc\xf3\x66\xa5\x9d\x 48\x89\xc1\xc7\
\x41\x30\x00\x00\x00\x00\xe9\x82\x00\x00\x00\x83\x f8\x3c\x74\x05\
\x83\xf8\x58\x75\x31\x83\x79\x2c\x08\x72\x72\x51\x 48\x81\xec\x00\
\x01\x00\x00\x49\x89\xe0\x48\x31\xd2\x8b\x51\x2c\x 48\x8b\x49\x40\
\xe8\x85\x0b\x00\x00\x48\x81\xc4\x00\x01\x00\x00\x 59\xc7\x41\x30\
\x00\x00\x00\x00\xeb\x47\x83\xf8\x3d\x74\x05\x83\x f8\x59\x75\x31\
\x83\x79\x2c\x08\x72\x37\x51\x48\x31\xd2\x8b\x51\x 2c\x48\x8b\x49\
\x40\x48\x81\xec\x00\x01\x00\x00\x49\x89\xe0\xe8\x 34\x10\x00\x00\
\x48\x81\xc4\x00\x01\x00\x00\x59\xc7\x41\x30\x00\x 00\x00\x00\xeb\
\x0c\x83\xf8\x55\x75\x02\xeb\x05\xb8\x78\x56\x34\x 12\x5e\x5f\x5a\
\x5b\x59\xc3\x56\x57\x48\x89\xd6\x48\x89\xcf\x31\x c9\x44\x89\xc1\
\xf3\xa4\x5f\x5e\xc3\x48\x89\x54\x24\x10\x89\x4c\x 24\x08\x48\x83\
\xec\x18\x8b\x44\x24\x20\x83\xe0\x1f\x89\x44\x24\x 20\x8b\x44\x24\
\x20\xc1\xe8\x02\x25\xfe\x00\x00\x00\x48\x8b\x4c\x 24\x28\x0f\xb6\
\x44\x01\x02\xb9\x1f\x00\x00\x00\x2b\x4c\x24\x20\x 83\xe1\x07\xd3\
\xf8\x83\xe0\x01\x88\x44\x24\x04\x0f\xb6\x44\x24\x 04\x83\xf0\x01\
\x8b\x4c\x24\x20\xc1\xe9\x03\x21\xc8\x8b\x4c\x24\x 20\x31\xc1\x89\
\xc8\x8b\x4c\x24\x20\xc1\xe9\x04\x31\xc8\x89\x04\x 24\x48\x8b\x44\
\x24\x28\x8b\x40\x0f\xc1\xe8\x0a\x8b\x0c\x24\x31\x c1\x89\xc8\x89\
\x04\x24\x48\x8b\x44\x24\x28\x8b\x40\x0f\xc1\xe8\x 07\x8b\x0c\x24\
\x31\xc1\x89\xc8\x89\x04\x24\x8b\x44\x24\x20\x83\x e0\x02\x85\xc0\
\x74\x15\x48\x8b\x44\x24\x28\x8b\x40\x0f\xc1\xe8\x 05\x8b\x0c\x24\
\x31\xc1\x89\xc8\x89\x04\x24\x8b\x44\x24\x20\x83\x e0\x04\x85\xc0\
\x74\x15\x48\x8b\x44\x24\x28\x8b\x40\x0f\xc1\xe8\x 08\x8b\x0c\x24\
\x31\xc1\x89\xc8\x89\x04\x24\x8b\x04\x24\x83\xe0\x 01\x89\x04\x24\
\x8b\x44\x24\x20\x83\xe0\x01\xc1\xe0\x02\x48\x8b\x 4c\x24\x28\x8b\
\x49\x0f\x31\xc1\x89\xc8\x48\x8b\x4c\x24\x28\x89\x 41\x0f\x48\x8b\
\x44\x24\x28\x8b\x40\x0f\xd1\xe0\x48\x8b\x4c\x24\x 28\x89\x41\x0f\
\x48\x8b\x44\x24\x28\x8b\x0c\x24\x8b\x40\x0f\x09\x c8\x48\x8b\x4c\
\x24\x28\x89\x41\x0f\x48\x8b\x44\x24\x28\x8b\x40\x 0f\xc1\xe8\x0b\
\x0f\xb6\x4c\x24\x04\x31\xc8\x83\xe0\x01\x48\x83\x c4\x18\xc3\x48\
\x89\x54\x24\x10\x48\x89\x4c\x24\x08\x48\x83\xec\x 48\xc7\x44\x24\
\x30\x1f\x00\x00\x00\x48\x8b\x44\x24\x58\x8b\x40\x 14\x89\x44\x24\
\x20\x8b\x44\x24\x20\x35\x89\x19\x08\x01\x89\x44\x 24\x20\x8b\x44\
\x24\x20\xc1\xe8\x0c\x89\x44\x24\x20\xc7\x44\x24\x 24\x0a\x00\x00\
\x00\xeb\x0a\x8b\x44\x24\x24\xff\xc8\x89\x44\x24\x 24\x83\x7c\x24\
\x24\x05\x76\x69\x0f\xb6\x44\x24\x20\x83\xe0\x0f\x 89\x44\x24\x2c\
\x83\x7c\x24\x2c\x00\x74\x0a\xc7\x44\x24\x38\x01\x 00\x00\x00\xeb\
\x08\xc7\x44\x24\x38\x00\x00\x00\x00\x83\x7c\x24\x 2c\x0b\x73\x0a\
\xc7\x44\x24\x3c\x01\x00\x00\x00\xeb\x08\xc7\x44\x 24\x3c\x00\x00\
\x00\x00\x8b\x44\x24\x3c\x8b\x4c\x24\x38\x21\xc1\x 89\xc8\x8b\x4c\
\x24\x24\xd3\xe0\x8b\x4c\x24\x30\x09\xc1\x89\xc8\x 89\x44\x24\x30\
\x8b\x44\x24\x20\xc1\xe8\x04\x89\x44\x24\x20\xeb\x 86\x8b\x44\x24\
\x30\xc1\xe8\x06\x48\x8b\x4c\x24\x58\x88\x41\x13\x 48\x8b\x44\x24\
\x58\x0f\xb6\x40\x13\xc1\xe0\x06\x83\xc8\x1f\x48\x 8b\x4c\x24\x58\
\x89\x41\x0f\xc7\x44\x24\x24\x01\x00\x00\x00\xc7\x 44\x24\x28\x00\
\x00\x00\x00\xeb\x0a\x8b\x44\x24\x24\xff\xc0\x89\x 44\x24\x24\x83\
\x7c\x24\x24\x27\x77\x6a\x8b\x44\x24\x28\x48\x8b\x 4c\x24\x50\x0f\
\xb6\x04\x01\x48\x8b\x54\x24\x58\x89\xc1\xe8\xa6\x fd\xff\xff\x89\
\x44\x24\x34\x48\x8b\x44\x24\x50\x8b\x00\x83\xe0\x 01\xd1\xe0\x0b\
\x44\x24\x34\x89\x44\x24\x28\x48\x8b\x44\x24\x50\x 8b\x00\x83\xe0\
\x01\x3b\x44\x24\x34\x75\x12\x48\x8b\x44\x24\x50\x 8b\x00\xd1\xe8\
\x48\x8b\x4c\x24\x50\x89\x01\xeb\x15\x48\x8b\x44\x 24\x50\x8b\x00\
\xd1\xe8\x35\x62\x00\x50\x80\x48\x8b\x4c\x24\x50\x 89\x01\xeb\x85\
\x48\x83\xc4\x48\xc3\x48\x89\x4c\x24\x08\x48\x83\x ec\x48\x48\x8b\
\x44\x24\x50\x0f\xb6\x40\x01\xc1\xf8\x05\x83\xe0\x 01\x48\x8b\x4c\
\x24\x50\x88\x41\x0a\x48\x8b\x44\x24\x50\x0f\xb6\x 40\x02\xc1\xf8\
\x07\x83\xe0\x01\x83\xf0\x01\x88\x44\x24\x24\x0f\x b6\x44\x24\x24\
\x85\xc0\x74\x0e\x48\x8b\x44\x24\x50\x0f\xb6\x00\x 89\x44\x24\x3c\
\xeb\x0e\x48\x8b\x44\x24\x50\x0f\xb6\x00\xf7\xd0\x 89\x44\x24\x3c\
\x0f\xb6\x44\x24\x3c\x88\x44\x24\x26\xc7\x44\x24\x 28\x00\x00\x00\
\x00\x48\x8b\x44\x24\x50\x0f\xb6\x40\x01\x83\xe0\x 1f\x88\x44\x24\
\x25\xc7\x44\x24\x2c\x00\x00\x00\x00\xeb\x0a\x8b\x 44\x24\x2c\xff\
\xc0\x89\x44\x24\x2c\x83\x7c\x24\x2c\x04\x7d\x3d\x 0f\xb6\x44\x24\
\x28\xc0\xe0\x02\x88\x44\x24\x28\x0f\xb6\x44\x24\x 25\x83\xe0\x01\
\x0f\xb6\x4c\x24\x25\x83\xf1\x01\x83\xe1\x01\xd1\x e1\x09\xc8\x0f\
\xb6\x4c\x24\x28\x09\xc1\x89\xc8\x88\x44\x24\x28\x 0f\xb6\x44\x24\
\x25\xd0\xe8\x88\x44\x24\x25\xeb\xb2\x0f\xb6\x44\x 24\x28\x35\xff\
\x00\x00\x00\x88\x44\x24\x2a\x0f\xb6\x44\x24\x28\x 88\x44\x24\x29\
\x0f\xb6\x44\x24\x2a\x88\x44\x24\x2b\xc7\x44\x24\x 2c\x00\x00\x00\
\x00\xeb\x0a\x8b\x44\x24\x2c\xff\xc0\x89\x44\x24\x 2c\x83\x7c\x24\
\x2c\x08\x0f\x8d\x9f\x00\x00\x00\x8b\x44\x24\x2c\x 83\xc0\x08\xc1\
\xf8\x02\x25\xfe\x00\x00\x00\x48\x98\x48\x8b\x4c\x 24\x50\x0f\xb6\
\x44\x01\x02\x8b\x4c\x24\x2c\x83\xc1\x08\xba\x1f\x 00\x00\x00\x29\
\xca\x89\xd1\x83\xe1\x07\xd3\xf8\x83\xe0\x01\x0f\x b6\x4c\x24\x25\
\x31\xc8\x8b\x4c\x24\x2c\xd3\xe0\x0f\xb6\x4c\x24\x 29\x31\xc1\x89\
\xc8\x88\x44\x24\x29\x8b\x44\x24\x2c\x83\xc0\x18\x c1\xf8\x02\x25\
\xfe\x00\x00\x00\x48\x98\x48\x8b\x4c\x24\x50\x0f\x b6\x44\x01\x02\
\x8b\x4c\x24\x2c\x83\xc1\x18\xba\x1f\x00\x00\x00\x 29\xca\x89\xd1\
\x83\xe1\x07\xd3\xf8\x83\xe0\x01\x0f\xb6\x4c\x24\x 25\x31\xc8\x8b\
\x4c\x24\x2c\xd3\xe0\x0f\xb6\x4c\x24\x2b\x31\xc1\x 89\xc8\x88\x44\
\x24\x2b\xe9\x4c\xff\xff\xff\x48\x8b\x44\x24\x50\x c7\x40\x0b\x00\
\x00\x00\x00\xc7\x44\x24\x20\x00\x00\x00\x00\xc7\x 44\x24\x30\x1f\
\x00\x00\x00\xeb\x0a\x8b\x44\x24\x30\xff\xc8\x89\x 44\x24\x30\x83\
\x7c\x24\x30\x00\x0f\x8c\xa4\x00\x00\x00\x0f\xb6\x 44\x24\x26\xc1\
\xe0\x03\x48\x8b\x4c\x24\x50\x89\x41\x0f\xc7\x44\x 24\x38\x00\x00\
\x00\x00\xeb\x0a\x8b\x44\x24\x38\xff\xc0\x89\x44\x 24\x38\x83\x7c\
\x24\x38\x0c\x7d\x14\x48\x8b\x54\x24\x50\x8b\x4c\x 24\x30\xe8\xa6\
\x00\x00\x00\x88\x44\x24\x34\xeb\xdb\x8b\x44\x24\x 20\xd1\xe0\x89\
\x44\x24\x20\x8b\x44\x24\x30\xc1\xf8\x02\x25\xfe\x 00\x00\x00\x48\
\x98\x48\x8b\x4c\x24\x50\x0f\xb6\x44\x01\x02\xb9\x 1f\x00\x00\x00\
\x2b\x4c\x24\x30\x83\xe1\x07\xd3\xf8\x83\xe0\x01\x 8b\x4c\x24\x30\
\x83\xe1\x01\x31\xc8\x8b\x4c\x24\x30\x8b\x54\x24\x 28\xd3\xea\x89\
\xd1\x83\xe1\x01\x31\xc8\x0f\xb6\x4c\x24\x34\x31\x c8\x8b\x4c\x24\
\x20\x09\xc1\x89\xc8\x89\x44\x24\x20\xe9\x47\xff\x ff\xff\x48\x8b\
\x44\x24\x50\x8b\x4c\x24\x20\x89\x48\x0b\x0f\xb6\x 44\x24\x26\xc1\
\xe0\x03\x0f\xb6\x4c\x24\x24\xc1\xe1\x02\x09\xc8\x 0f\xb6\x4c\x24\
\x24\xd1\xe1\x09\xc8\x0f\xb6\x4c\x24\x24\x09\xc8\x 48\x8b\x4c\x24\
\x50\x89\x41\x0f\x48\x83\xc4\x48\xc3\x48\x89\x54\x 24\x10\x89\x4c\
\x24\x08\x48\x83\xec\x28\x8b\x44\x24\x30\x83\xe0\x 1f\x89\x44\x24\
\x30\x8b\x44\x24\x30\xd1\xe8\x83\xe0\x03\xe8\x10\x 00\x00\x00\x80\
\x04\x00\x00\xa0\x04\x00\x00\x80\x05\x00\x00\xa0\x 05\x00\x00\x59\
\x8b\x04\x81\x89\x44\x24\x04\xc7\x44\x24\x08\x00\x 00\x00\x00\xc7\
\x44\x24\x0c\x00\x00\x00\x00\xeb\x0a\x8b\x44\x24\x 0c\xff\xc0\x89\
\x44\x24\x0c\x83\x7c\x24\x0c\x0c\x7d\x3d\x8b\x44\x 24\x0c\x0f\xb6\
\xc8\x8b\x44\x24\x04\xd3\xe8\x83\xe0\x01\x85\xc0\x 74\x27\x8b\x44\
\x24\x0c\x48\x8b\x4c\x24\x38\x48\x89\x4c\x24\x10\x 0f\xb6\xc8\x48\
\x8b\x44\x24\x10\x8b\x40\x0f\xd3\xe8\x8b\x4c\x24\x 08\x31\xc1\x89\
\xc8\x89\x44\x24\x08\xeb\xb2\x8b\x44\x24\x30\x83\x e0\x01\xc1\xe0\
\x02\x48\x8b\x4c\x24\x38\x8b\x49\x0f\x31\xc1\x89\x c8\x48\x8b\x4c\
\x24\x38\x89\x41\x0f\x8b\x44\x24\x30\xc1\xe8\x02\x 25\xfe\x00\x00\
\x00\x48\x8b\x4c\x24\x38\x0f\xb6\x44\x01\x02\xb9\x 1f\x00\x00\x00\
\x2b\x4c\x24\x30\x83\xe1\x07\xd3\xf8\x83\xe0\x01\x 48\x8b\x4c\x24\
\x38\x0f\xb6\x49\x0a\x31\xc8\x88\x04\x24\x48\x8b\x 44\x24\x38\x8b\
\x40\x0f\xd1\xe0\x0f\xb6\x0c\x24\x8b\x54\x24\x08\x 31\xca\x89\xd1\
\x83\xe1\x01\x09\xc8\x48\x8b\x4c\x24\x38\x89\x41\x 0f\x8b\x44\x24\
\x30\x48\x8b\x4c\x24\x38\x48\x89\x4c\x24\x18\x0f\x b6\xc8\x48\x8b\
\x44\x24\x18\x8b\x40\x0b\xd3\xe8\x83\xe0\x01\x48\x 8b\x4c\x24\x38\
\x8b\x49\x0f\x31\xc1\x89\xc8\x48\x8b\x4c\x24\x38\x 89\x41\x0f\x48\
\x8b\x44\x24\x38\x8b\x40\x0f\xc1\xe8\x0b\x0f\xb6\x 0c\x24\x31\xc8\
\x83\xe0\x01\x48\x83\xc4\x28\xc3\x48\x89\x54\x24\x 10\x48\x89\x4c\
\x24\x08\x48\x83\xec\x38\x48\x8b\x44\x24\x48\x83\x 78\x14\x00\x74\
\x14\x48\x8b\x54\x24\x48\x48\x8b\x4c\x24\x40\xe8\x 3f\xfa\xff\xff\
\xe9\x97\x00\x00\x00\x48\x8b\x4c\x24\x48\xe8\xa6\x fb\xff\xff\xc7\
\x44\x24\x20\x01\x00\x00\x00\xc7\x44\x24\x24\x00\x 00\x00\x00\xeb\
\x0a\x8b\x44\x24\x20\xff\xc0\x89\x44\x24\x20\x83\x 7c\x24\x20\x27\
\x77\x6a\x8b\x44\x24\x24\x48\x8b\x4c\x24\x40\x0f\x b6\x04\x01\x48\
\x8b\x54\x24\x48\x89\xc1\xe8\x2e\xfe\xff\xff\x89\x 44\x24\x28\x48\
\x8b\x44\x24\x40\x8b\x00\x83\xe0\x01\xd1\xe0\x0b\x 44\x24\x28\x89\
\x44\x24\x24\x48\x8b\x44\x24\x40\x8b\x00\x83\xe0\x 01\x3b\x44\x24\
\x28\x75\x12\x48\x8b\x44\x24\x40\x8b\x00\xd1\xe8\x 48\x8b\x4c\x24\
\x40\x89\x01\xeb\x15\x48\x8b\x44\x24\x40\x8b\x00\x d1\xe8\x35\x62\
\x00\x50\x80\x48\x8b\x4c\x24\x40\x89\x01\xeb\x85\x 48\x83\xc4\x38\
\xc3\x49\x89\xe3\x48\x83\xec\x68\x45\x85\xc0\x49\x 89\x5b\xf8\x49\
\x89\x6b\xf0\x49\x89\x73\xe8\x49\x89\x7b\xe0\x4d\x 89\x63\xd8\x44\
\x8b\x61\x04\x44\x89\xc5\x48\x89\xd6\x48\x89\xcb\x 45\x89\xe1\x45\
\x89\x63\xc8\x74\x26\x49\x8d\x4b\xc8\x49\x89\x4b\x b8\xe8\x00\x00\
\x00\x00\x5a\x48\x81\xea\xd0\x1d\x00\x00\x48\x8b\x 12\x48\x03\x52\
\x20\xe8\xe2\xfe\xff\xff\x44\x8b\x4c\x24\x30\x8b\x 03\x44\x31\xc8\
\x89\xc1\x44\x31\xe0\x35\xc3\x25\x34\x80\x89\x0b\x 89\xc1\x35\xc3\
\x25\x34\x80\xc1\xc0\x02\x33\x03\x89\x0b\x89\xc1\x 35\xc3\x25\x34\
\x80\xc1\xc0\x04\x33\x03\x89\x0b\x89\xc1\x35\xc3\x 25\x34\x80\xc1\
\xc0\x06\x33\x03\x89\x0b\x89\xc1\x35\xc3\x25\x34\x 80\xc1\xc0\x08\
\x33\x03\x89\xc2\x35\xc3\x25\x34\x80\xc1\xc0\x0a\x 89\x13\x31\xc8\
\x85\xed\x48\x8b\x6c\x24\x58\x89\x43\x04\x41\x89\x c4\x89\xc2\x89\
\x44\x24\x34\x74\x27\x48\x8d\x4c\x24\x34\xe8\x00\x 00\x00\x00\x5a\
\x48\x81\xea\x5d\x1e\x00\x00\x48\x8b\x12\x48\x03\x 52\x20\xe8\x55\
\xfe\xff\xff\x8b\x54\x24\x34\x44\x8b\x4c\x24\x30\x 8b\x03\x48\x8b\
\x7c\x24\x48\x31\xd0\x89\xc1\x44\x31\xe0\x4c\x8b\x 64\x24\x40\x35\
\x4a\x00\x2c\x5b\x89\x0b\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x05\
\x33\x03\x89\x0b\x89\xc1\x35\x4a\x00\x2c\x5b\xc1\x c0\x0a\x33\x03\
\x89\x0b\x89\xc1\x35\x4a\x00\x2c\x5b\xc1\xc0\x0f\x 33\x03\x89\x0b\
\x89\xc1\x35\x4a\x00\x2c\x5b\xc1\xc0\x14\x33\x03\x 89\x0b\x89\xc1\
\x35\x4a\x00\x2c\x5b\xc1\xc0\x19\x33\x03\x48\x85\x f6\x89\x0b\x89\
\x43\x04\x48\x8b\x5c\x24\x60\x74\x06\x44\x89\x0e\x 89\x56\x04\x48\
\x8b\x74\x24\x50\x48\x83\xc4\x68\xc3\x48\x83\xec\x 08\x4c\x8d\x0c\
\x24\x41\xb8\x01\x00\x00\x00\x49\x89\x09\x8b\x41\x 5c\x48\xc1\xe0\
\x20\x8b\x49\x12\x48\x09\xc1\x48\x89\xca\x48\x83\x c2\x08\xe8\x6e\
\xfe\xff\xff\x48\x83\xc4\x08\xc3\x49\x89\xe3\x48\x 83\xec\x68\x49\
\x89\x5b\xf8\x48\x89\xcb\x49\x89\x6b\xf0\x49\x89\x 73\xe8\x49\x89\
\x7b\xe0\x4c\x89\xcf\x44\x8b\x09\x4d\x89\x63\xd8\x 45\x89\xc4\x44\
\x89\xc8\x48\x89\xd6\x35\x4a\x00\x2c\x5b\xc1\xc0\x 19\x33\x41\x04\
\x44\x89\x49\x04\x89\x01\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x14\
\x89\x4b\x04\x44\x31\xc8\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x0f\
\x33\x43\x04\x89\x4b\x04\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x0a\
\x33\x43\x04\x89\x4b\x04\x89\xc1\x35\x4a\x00\x2c\x 5b\xc1\xc0\x05\
\x33\x43\x04\x89\x4b\x04\x89\xc1\x8b\x43\x04\x31\x c8\x89\x4b\x04\
\x35\x4a\x00\x2c\x5b\x45\x85\xe4\x89\x03\x89\xc5\x 41\x89\xc0\x89\
\x44\x24\x34\x74\x37\x48\x8b\x07\x49\x8d\x4b\xcc\x 44\x0f\xb7\x48\
\x1e\x44\x0f\xb7\x40\x0c\x0f\xb7\x50\x08\x49\x89\x 4b\xb8\xe8\x00\
\x00\x00\x00\x5a\x48\x81\xea\xe1\x1f\x00\x00\x48\x 8b\x12\x48\x03\
\x52\x20\xe8\xd1\xfc\xff\xff\x44\x8b\x44\x24\x34\x 8b\x43\x04\x44\
\x31\xc0\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x0a\x 89\x4b\x04\x31\
\xe8\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x08\x33\x 43\x04\x89\x4b\
\x04\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x06\x33\x 43\x04\x89\x4b\
\x04\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x04\x33\x 43\x04\x89\x4b\
\x04\x89\xc1\x35\xc3\x25\x34\x80\xc1\xc0\x02\x33\x 43\x04\x89\xc2\
\x89\xc8\x31\xd0\x89\x53\x04\x35\xc3\x25\x34\x80\x 45\x85\xe4\x4c\
\x8b\x64\x24\x40\x89\x03\x89\xc5\x89\xc1\x89\x44\x 24\x30\x74\x3d\
\x48\x8b\x07\x48\x8d\x4c\x24\x30\x44\x0f\xb7\x48\x 1e\x44\x0f\xb7\
\x40\x0c\x0f\xb7\x50\x08\x48\x89\x4c\x24\x20\xe8\x 00\x00\x00\x00\
\x5a\x48\x81\xea\x8e\x20\x00\x00\x48\x8b\x12\x48\x 03\x52\x20\xe8\
\x24\xfc\xff\xff\x44\x8b\x44\x24\x34\x8b\x4c\x24\x 30\x8b\x43\x04\
\x48\x8b\x7c\x24\x48\x89\x6b\x04\x48\x8b\x6c\x24\x 58\x31\xc8\x48\
\x85\xf6\x89\x03\x48\x8b\x5c\x24\x60\x74\x06\x89\x 0e\x44\x89\x46\
\x04\x48\x8b\x74\x24\x50\x48\x83\xc4\x68\xc3\x48\x 83\xec\x08\x4c\
\x8d\x0c\x24\x41\xb8\x01\x00\x00\x00\x49\x89\x09\x 8b\x41\x5c\x48\
\xc1\xe0\x20\x8b\x49\x12\x48\x09\xc1\x48\x89\xca\x 48\x83\xc2\x08\
\xe8\x23\xfe\xff\xff\x48\x83\xc4\x08\xc3\x48\x89\x e0\x48\x81\xec\
\xe8\x00\x00\x00\x48\x89\x58\x08\x48\x89\x68\x10\x 48\x89\x70\x18\
\x48\x89\x78\x20\x4c\x89\x60\xf8\x4c\x89\x68\xf0\x 4c\x89\x70\xe8\
\x4c\x89\x78\xe0\xb8\x08\x00\x00\x00\x44\x8d\x72\x 07\x41\x89\xd7\
\x4c\x89\xc5\x41\xc1\xee\x03\x41\x83\xe7\x07\x48\x 89\xcb\x44\x0f\
\x44\xf8\x45\x31\xc9\x41\x8d\x46\xff\x85\xc0\x44\x 89\x7c\x24\x28\
\x44\x89\x4c\x24\x24\x45\x89\xc8\x44\x89\x4c\x24\x 20\x45\x89\xcd\
\x45\x8d\x51\x02\x0f\x84\x7a\x02\x00\x00\x48\x8b\x 7c\x24\x30\x44\
\x8b\x64\x24\x54\x4d\x89\xd7\x44\x31\x03\x44\x31\x 4b\x04\x45\x85\
\xed\x8b\x0b\x8b\x53\x04\x0f\x85\x16\x01\x00\x00\x 45\x39\xfe\x0f\
\x86\xdb\x00\x00\x00\x66\x44\x89\x6d\x10\x48\x8b\x 03\x48\x89\xe9\
\x48\x89\x44\x24\x38\x48\x8d\x44\x24\x38\x48\x89\x 7c\x24\x40\x89\
\x45\x12\x48\x8d\x44\x24\x38\x66\x44\x89\x7d\x16\x 48\xc1\xe8\x20\
\x66\x44\x89\x6d\x3e\x89\x45\x5c\xe8\x1c\xfd\xff\x ff\x48\x8b\x7c\
\x24\x40\x48\x8b\x44\x24\x38\x48\x89\x7c\x24\x30\x 8b\x74\x24\x34\
\x48\x89\x03\x89\x7c\x24\x50\x48\x8d\x54\x24\x54\x 66\x44\x89\x6d\
\x16\x45\x8d\x45\x05\x8b\x4a\xfc\x48\x83\xc2\x14\x 8d\x04\x31\x83\
\xe1\x1f\x89\x42\xec\x89\xf8\xd3\xc8\x31\x44\x24\x 54\x8b\x4a\xec\
\x8d\x04\x31\x83\xe1\x1f\x89\x42\xf0\x89\xf8\xd3\x c8\x31\x44\x24\
\x54\x8b\x4a\xf0\x8d\x04\x31\x83\xe1\x1f\x89\x42\x f4\x89\xf8\xd3\
\xc8\x31\x44\x24\x54\x8b\x4a\xf4\x8d\x04\x31\x83\x e1\x1f\x89\x42\
\xf8\x89\xf8\xd3\xc8\x31\x44\x24\x54\x8b\x4a\xf8\x 8d\x04\x31\x83\
\xe1\x1f\x89\x42\xfc\x44\x8b\x64\x24\x54\x89\xf8\x d3\xc8\x41\x31\
\xc4\x49\xff\xc8\x44\x89\x64\x24\x54\x75\x8a\xe9\x 42\x01\x00\x00\
\x48\x89\xd8\x48\x89\xe9\x66\xc7\x45\x10\x00\x00\x 48\xc1\xe8\x20\
\x66\xc7\x45\x16\x01\x00\x66\xc7\x45\x3e\x00\x00\x 89\x45\x5c\x89\
\x5d\x12\xe8\x52\xfc\xff\xff\x66\xc7\x45\x16\x00\x 00\xe9\x10\x01\
\x00\x00\x8b\x44\x24\x50\x46\x8d\x04\x21\x4c\x8d\x 4c\x24\x5c\x8d\
\x34\x02\x44\x89\x03\x4d\x89\xfa\x89\x73\x04\x44\x 89\xc1\x44\x89\
\xc2\x49\x83\xc1\x30\xc1\xe9\x04\x31\xf2\x83\xe1\x 1f\xd3\xc2\x41\
\x2b\x51\xcc\x41\x31\xd0\x89\xd1\xc1\xe9\x07\x83\x e1\x1f\x41\xd3\
\xc0\x45\x03\x41\xd0\x44\x89\xc1\x44\x89\xc6\xc1\x e9\x04\x31\xd6\
\x83\xe1\x1f\xd3\xc6\x41\x2b\x71\xd4\x41\x31\xf0\x 89\xf1\xc1\xe9\
\x07\x83\xe1\x1f\x41\xd3\xc0\x45\x03\x41\xd8\x44\x 89\xc1\x44\x89\
\xc2\xc1\xe9\x04\x31\xf2\x83\xe1\x1f\xd3\xc2\x41\x 2b\x51\xdc\x41\
\x31\xd0\x89\xd1\xc1\xe9\x07\x83\xe1\x1f\x41\xd3\x c0\x45\x03\x41\
\xe0\x44\x89\xc1\x44\x89\xc6\xc1\xe9\x04\x31\xd6\x 83\xe1\x1f\xd3\
\xc6\x41\x2b\x71\xe4\x41\x31\xf0\x89\xf1\xc1\xe9\x 07\x83\xe1\x1f\
\x41\xd3\xc0\x45\x03\x41\xe8\x44\x89\xc1\x44\x89\x c2\xc1\xe9\x04\
\x31\xf2\x83\xe1\x1f\xd3\xc2\x41\x2b\x51\xec\x41\x 31\xd0\x89\xd1\
\xc1\xe9\x07\x83\xe1\x1f\x41\xd3\xc0\x45\x03\x41\x f0\x44\x89\xc1\
\x44\x89\xc6\xc1\xe9\x04\x31\xd6\x83\xe1\x1f\xd3\x c6\x41\x2b\x71\
\xf4\x41\x31\xf0\x89\xf1\xc1\xe9\x07\x83\xe1\x1f\x 41\xd3\xc0\x45\
\x03\x41\xf8\x49\xff\xca\x0f\x85\x0f\xff\xff\xff\x 44\x89\x03\x89\
\x73\x04\x44\x8b\x03\x44\x8b\x4b\x04\x41\x8d\x46\x ff\x41\xff\xc5\
\x48\x83\xc3\x08\x44\x89\x44\x24\x20\x41\x39\xc5\x 44\x89\x4c\x24\
\x24\x0f\x82\xa0\xfd\xff\xff\x44\x8b\x7c\x24\x28\x 41\xba\x02\x00\
\x00\x00\xeb\x05\x44\x8b\x64\x24\x54\x45\x85\xff\x 4c\x8b\xac\x24\
\xd8\x00\x00\x00\x74\x2c\x48\x8d\x44\x24\x20\x48\x 89\xdf\x48\x8d\
\x4c\x24\x20\x48\x29\xc7\x44\x89\xfa\x0f\xb6\x04\x 0f\x48\xff\xc1\
\x30\x41\xff\x48\xff\xca\x75\xf1\x44\x8b\x4c\x24\x 24\x44\x8b\x44\
\x24\x20\x41\x83\xfe\x02\x0f\x86\xff\x00\x00\x00\x 44\x03\x4c\x24\
\x50\x48\x8d\x74\x24\x5c\x45\x01\xe0\x44\x89\xc1\x 44\x89\xc2\x48\
\x83\xc6\x30\xc1\xe9\x04\x44\x31\xca\x83\xe1\x1f\x d3\xc2\x2b\x56\
\xcc\x41\x31\xd0\x89\xd1\xc1\xe9\x07\x83\xe1\x1f\x 41\xd3\xc0\x44\
\x03\x46\xd0\x44\x89\xc1\x44\x89\xc7\xc1\xe9\x04\x 31\xd7\x83\xe1\
\x1f\xd3\xc7\x2b\x7e\xd4\x41\x31\xf8\x89\xf9\xc1\x e9\x07\x83\xe1\
\x1f\x41\xd3\xc0\x44\x03\x46\xd8\x44\x89\xc1\x44\x 89\xc2\xc1\xe9\
\x04\x31\xfa\x83\xe1\x1f\xd3\xc2\x2b\x56\xdc\x41\x 31\xd0\x89\xd1\
\xc1\xe9\x07\x83\xe1\x1f\x41\xd3\xc0\x44\x03\x46\x e0\x44\x89\xc1\
\x44\x89\xc7\xc1\xe9\x04\x31\xd7\x83\xe1\x1f\xd3\x c7\x2b\x7e\xe4\
\x41\x31\xf8\x89\xf9\xc1\xe9\x07\x83\xe1\x1f\x41\x d3\xc0\x44\x03\
\x46\xe8\x44\x89\xc1\x44\x89\xc2\xc1\xe9\x04\x31\x fa\x83\xe1\x1f\
\xd3\xc2\x2b\x56\xec\x41\x31\xd0\x89\xd1\xc1\xe9\x 07\x83\xe1\x1f\
\x41\xd3\xc0\x44\x03\x46\xf0\x44\x89\xc1\x45\x89\x c1\xc1\xe9\x04\
\x41\x31\xd1\x83\xe1\x1f\x41\xd3\xc1\x44\x2b\x4e\x f4\x45\x31\xc8\
\x44\x89\xc9\xc1\xe9\x07\x83\xe1\x1f\x41\xd3\xc0\x 44\x03\x46\xf8\
\x49\xff\xca\x0f\x85\x10\xff\xff\xff\xeb\x51\x41\x 83\xfe\x01\x75\
\x0d\x8b\x03\x89\x44\x24\x20\x8b\x43\x04\x89\x44\x 24\x24\x48\x8d\
\x44\x24\x20\x48\x89\xe9\x66\xc7\x45\x10\x00\x00\x 89\x45\x12\x48\
\x8d\x44\x24\x20\x66\xc7\x45\x16\x01\x00\x48\xc1\x e8\x20\x66\xc7\
\x45\x3e\x00\x00\x89\x45\x5c\xe8\x7d\xf9\xff\xff\x 44\x8b\x4c\x24\
\x24\x44\x8b\x44\x24\x20\x66\xc7\x45\x16\x00\x00\x 4c\x8b\xa4\x24\
\xe0\x00\x00\x00\x48\x8b\xac\x24\xf8\x00\x00\x00\x 41\x83\xfe\x01\
\x4c\x8b\xb4\x24\xd0\x00\x00\x00\x76\x1b\x45\x85\x ff\x74\x0c\x48\
\x8d\x73\xf8\x44\x89\xf9\x48\x89\xdf\xf3\xa4\x44\x 89\x43\xf8\x44\
\x89\x4b\xfc\xeb\x07\x44\x89\x03\x44\x89\x4b\x04\x 4c\x8b\xbc\x24\
\xc8\x00\x00\x00\x48\x8b\xbc\x24\x08\x01\x00\x00\x 48\x8b\xb4\x24\
\x00\x01\x00\x00\x48\x8b\x9c\x24\xf0\x00\x00\x00\x 48\x81\xc4\xe8\
\x00\x00\x00\xc3\x48\x89\xe0\x48\x81\xec\xf8\x00\x 00\x00\x48\x89\
\x58\x08\x48\x89\x68\x10\x48\x89\x70\x18\x48\x89\x 78\x20\x4c\x89\
\x60\xf8\x4c\x89\x68\xf0\x4c\x89\x70\xe8\x4c\x89\x 78\xe0\x48\x89\
\xcb\x8d\x4a\x07\x89\xd0\xba\x08\x00\x00\x00\xc1\x e9\x03\x83\xe0\
\x07\x4c\x89\xc7\x0f\x44\xc2\x45\x31\xff\x83\xf9\x 01\x89\x4c\x24\
\x30\x44\x8d\x62\x04\x44\x89\x7c\x24\x2c\x44\x89\x 7c\x24\x34\x44\
\x89\x7c\x24\x28\x45\x89\xfe\x89\x44\x24\x38\x0f\x 86\x9f\x01\x00\
\x00\x83\xc1\xfe\x44\x89\xfe\x89\x4c\x24\x20\x0f\x 84\x8f\x01\x00\
\x00\x48\x8b\x44\x24\x40\x44\x8b\x6c\x24\x64\x8b\x 6c\x24\x60\x85\
\xf6\x44\x8b\x03\x44\x8b\x73\x04\x45\x89\xc7\x44\x 89\x44\x24\x28\
\x0f\x85\xee\x00\x00\x00\x48\x89\x44\x24\x50\x48\x 8d\x44\x24\x48\
\x66\x89\x77\x10\x48\x8b\x0b\x89\x47\x12\x48\x8d\x 44\x24\x48\x48\
\xc1\xe8\x20\x48\x89\x4c\x24\x48\x48\x89\xf9\x66\x c7\x47\x16\x02\
\x00\x66\x89\x77\x3e\x89\x47\x5c\xe8\x0e\xfa\xff\x ff\x48\x8b\x44\
\x24\x48\x4c\x8d\x44\x24\x64\x48\x89\x03\x48\x8b\x 44\x24\x50\x44\
\x8d\x56\x05\x48\x89\x44\x24\x40\x44\x8b\x4c\x24\x 44\x66\x89\x77\
\x16\x89\x44\x24\x60\x41\x8b\x48\xfc\x49\x83\xc0\x 14\x42\x8d\x14\
\x09\x83\xe1\x1f\x41\x89\x50\xec\x89\xc2\xd3\xca\x 31\x54\x24\x64\
\x41\x8b\x48\xec\x42\x8d\x14\x09\x83\xe1\x1f\x41\x 89\x50\xf0\x89\
\xc2\xd3\xca\x31\x54\x24\x64\x41\x8b\x48\xf0\x42\x 8d\x14\x09\x83\
\xe1\x1f\x41\x89\x50\xf4\x89\xc2\xd3\xca\x31\x54\x 24\x64\x41\x8b\
\x48\xf4\x42\x8d\x14\x09\x83\xe1\x1f\x41\x89\x50\x f8\x89\xc2\xd3\
\xca\x31\x54\x24\x64\x41\x8b\x48\xf8\x42\x8d\x14\x 09\x83\xe1\x1f\
\x41\x89\x50\xfc\x44\x8b\x6c\x24\x64\x89\xc2\xd3\x ca\x41\x31\xd5\
\x49\xff\xca\x44\x89\x6c\x24\x64\x0f\x85\x77\xff\x ff\xff\x8b\x6c\
\x24\x60\xeb\x4b\x45\x89\xe3\x45\x89\xf1\x4c\x8d\x 94\x24\xc0\x00\
\x00\x00\x45\x2b\x42\x04\x44\x89\xc9\x49\x83\xea\x 08\xc1\xe9\x07\
\x83\xe1\x1f\x41\xd3\xc8\x45\x31\xc8\x45\x03\x4a\x 08\x44\x89\xc1\
\xc1\xe9\x04\x83\xe1\x1f\x41\xd3\xc9\x45\x31\xc1\x 41\x83\xc3\xff\
\x75\xd0\x45\x29\xe8\x41\x29\xe9\x44\x89\x4b\x04\x 44\x89\x03\x8b\
\x4c\x24\x34\xff\xc6\x48\x83\xc3\x08\x31\x4b\xf8\x 8b\x4c\x24\x2c\
\x44\x89\x7c\x24\x34\x31\x4b\xfc\x3b\x74\x24\x20\x 44\x89\x74\x24\
\x2c\x0f\x82\x88\xfe\xff\xff\x8b\x44\x24\x38\x45\x 31\xff\xeb\x09\
\x44\x8b\x6c\x24\x64\x8b\x6c\x24\x60\x85\xc0\x44\x 89\x7c\x24\x20\
\x44\x89\xfe\x44\x89\x7c\x24\x24\x74\x1a\x48\x8d\x 53\x08\x48\x8d\
\x4c\x24\x20\x41\x89\xc0\xe8\xb8\xed\xff\xff\x8b\x 74\x24\x24\x44\
\x8b\x7c\x24\x20\x44\x8b\x5c\x24\x30\x41\x83\xfb\x 01\x75\x32\x48\
\x89\xd8\x48\x89\xf9\x66\xc7\x47\x10\x00\x00\x48\x c1\xe8\x20\x66\
\xc7\x47\x16\x01\x00\x66\xc7\x47\x3e\x00\x00\x89\x 47\x5c\x89\x5f\
\x12\xe8\x75\xf8\xff\xff\x66\xc7\x47\x16\x00\x00\x e9\x29\x01\x00\
\x00\x41\x83\xfb\x02\x75\x34\x48\x89\xd8\x48\x89\x f9\x66\xc7\x47\
\x10\x00\x00\x48\xc1\xe8\x20\x66\xc7\x47\x16\x01\x 00\x66\xc7\x47\
\x3e\x00\x00\x89\x47\x5c\x89\x5f\x12\xe8\x3d\xf8\x ff\xff\x44\x8b\
\x5c\x24\x30\x66\xc7\x47\x16\x00\x00\xeb\x55\x8b\x 13\x44\x8b\x43\
\x04\x45\x89\xe2\x4c\x8d\x8c\x24\xc0\x00\x00\x00\x 41\x2b\x51\x04\
\x44\x89\xc1\x49\x83\xe9\x08\xc1\xe9\x07\x83\xe1\x 1f\xd3\xca\x44\
\x31\xc2\x45\x03\x41\x08\x89\xd1\xc1\xe9\x04\x83\x e1\x1f\x41\xd3\
\xc8\x41\x31\xd0\x41\x83\xc2\xff\x75\xd2\x44\x29\x ea\x41\x29\xe8\
\x41\x83\xfb\x01\x89\x13\x44\x89\x43\x04\x0f\x86\x 9a\x00\x00\x00\
\x44\x33\x3b\x33\x73\x04\x8b\x44\x24\x38\x85\xc0\x 44\x89\x7c\x24\
\x20\x89\x74\x24\x24\x74\x31\x4c\x8d\x44\x24\x20\x 49\x89\xd9\x48\
\x8d\x4b\x08\x4d\x29\xc1\x49\x89\xc0\x48\x8d\x54\x 24\x20\x0f\xb6\
\x01\x48\xff\xc1\x48\xff\xc2\x49\xff\xc8\x41\x88\x 44\x11\xff\x0f\
\xb6\x42\xff\x88\x41\xff\x75\xe6\x41\x83\xfb\x02\x 0f\x84\xed\xfe\
\xff\xff\x8b\x13\x44\x8b\x43\x04\x4c\x8d\x8c\x24\x c0\x00\x00\x00\
\x41\x2b\x51\x04\x44\x89\xc1\x49\x83\xe9\x08\xc1\x e9\x07\x83\xe1\
\x1f\xd3\xca\x44\x31\xc2\x45\x03\x41\x08\x89\xd1\x c1\xe9\x04\x83\
\xe1\x1f\x41\xd3\xc8\x41\x31\xd0\x41\x83\xc4\xff\x 75\xd2\x44\x29\
\xea\x41\x29\xe8\x44\x89\x43\x04\x89\x13\x8b\x44\x 24\x28\x4c\x8b\
\xbc\x24\xd8\x00\x00\x00\x4c\x8b\xac\x24\xe8\x00\x 00\x00\x31\x03\
\x44\x31\x73\x04\x4c\x8b\xa4\x24\xf0\x00\x00\x00\x 4c\x8b\xb4\x24\
\xe0\x00\x00\x00\x48\x8b\x9c\x24\x00\x01\x00\x00\x 48\x8b\xbc\x24\
\x18\x01\x00\x00\x48\x8b\xb4\x24\x10\x01\x00\x00\x 48\x8b\xac\x24\
\x08\x01\x00\x00\x48\x81\xc4\xf8\x00\x00\x00\xc3\x cc\xcc\xcc\xcc\
\x57\x59\xe9\xf9\xd5\xff\xff')

fullfname=os.getcwd()+'/backbas.so'

# uncomment next 2 lines to get unipatch for 5 spartans, or 1,5,10,20,50
#unipatch[0x11F8]=5
#unipatch[0x137E]=5


try:
fp = open(fullfname, 'r+')
if os.stat(fp.name).st_size > 0:
mm = mmap.mmap(fp.fileno(), 0)

# WTF? "to smoke": 'man 5 elf'
if mm[0]!=0x7f or mm[1]!=0x45 or mm[2]!=0x4C or mm[3]!=0x46 \
or mm[4]!=2 or mm[5]!=1 or mm[6]!=1 \
or mm[16]!=3 or mm[17]!=0 \
or mm[18]!=0x3E or mm[19]!=0:
print ("what a fuck are you giving me?")
exit(1)

e_phoff = mm[0x20]+256*(mm[0x21]+256*(mm[0x22]+256*mm[0x23]))
e_phentsize = mm[0x36]+256*mm[0x37]
e_phnum = mm[0x38]+256*mm[0x39]

for i in range(e_phnum):
p=e_phoff+i*e_phentsize
p_type=mm[p]+256*(mm[p+1]+256*(mm[p+2]+256*mm[p+3]))
p_flags=mm[p+4]+256*(mm[p+5]+256*(mm[p+6]+256*mm[p+7]))
if (p_type==1 and p_flags==5):
print(f"mm[{hex(p+4)}] += PF_W")
mm[p+4] = 7
break

pattern_addr = mm.find(pattern)
if pattern_addr != -1:
unipatch_addr=pattern_addr-0x2A75
print (f"patching {fullfname} at offset={hex(unipatch_addr)}")
mm[unipatch_addr:unipatch_addr+0x2A07] = unipatch

mm.close()
except IOError as e:
print (f"I/O error({e.errno}): {e.strerror}, filename={fullfname}")

HPDX2300
10.07.2022, 13:02
IDA_Help.zip на upload.ee (https://www.upload.ee/files/14311910/IDA_Help.zip.html)

HPDX2300
30.07.2022, 21:37
статья написана опытным инженером для тех кому страшно начинать смотреть листинг в IDA Pro:
IDA Pro и техники реверс-инжиниринга (https://habr.com/ru/company/inforion/blog/493416/)

С пользой для себя можно взять для исследования 32-битный виндовый HASPLM nhsrvw32.exe - это приложение можно запускать в отладчике IDA и изучать (можно найти виндовую 32-битную IDA-Pro 6.8).
Не беритесь сразу за второй вариант HASPLM - системный сервис nhsrvice.exe.
Они оба довольно "свежие" - внутри HASP API version 238Ch = 9100.
А вот линуксовый HASPLM v8.30 (32-битный) просто "шлак", внутри HASP API version 1F4Ah = 8010.

И ещё: иногда читайте блог, там много полезного:
Blog: Tips, tricks, and best practices for IDA users (https://hex-rays.com/blog/)
Tutorials: Free tutorials available for walkthroughs from general to specific area in IDA (https://hex-rays.com/tutorials/)

HPDX2300
11.10.2022, 19:07
К сведению желающих использовать репак на новых макосях.
На новых макосях есть какое-то новшество, которое препятствует такому ugly-хаку.
Мне сообщили, что на macOS 12.6 (21G115) с ядром Darwin 21.6.0 репак не "взлетает".
При запуске из консоли (программа "Терминал"):
/opt/1cv8/8.3.21.1302/1cv8
запуска в обычном понимании не происходит, в окне Терминала надпись:
killed 9
т.е. процесс был убит, вероятно самим ядром, но это догадки. В логах ничего нет.
Я сам это не исследовал и вряд ли буду - есть другие, более интересные задачки.

HPDX2300
21.10.2022, 11:03
...На новых макосях есть какое-то новшество, которое препятствует такому ugly-хаку.
... на macOS 12.6 (21G115) с ядром Darwin 21.6.0 репак не "взлетает".
При запуске из консоли (программа "Терминал"):
/opt/1cv8/8.3.21.1302/1cv8
запуска в обычном понимании не происходит, в окне Терминала надпись:
killed 9
т.е. процесс был убит, вероятно самим ядром
в такой ситуации можно пробовать выключить "System Integrity Protection":

идею подсмотрел тут: Disabling SIP on the debuggee (https://geosn0w.github.io/Debugging-macOS-Kernel-For-Fun/)
цитата:
"...For proper debugging, you may need to disable SIP (System Integrity Protection) on the machine whose kernel you wanna debug. To do that, reboot the machine in Recovery Mode. To do that, reboot the machine and when you hear the “BOONG!”, or when the screen turns on, press CMD + R. Wait a few seconds for it to boot into Recovery Mode user interface, and open “Terminal” from the top bar.

In the Recovery Terminal, write
csrutil disable. Then reboot the machine and boot it normally to macOS."

HPDX2300
23.11.2022, 18:20
патчер для линукса-x64 + python3
код ниже сохранить в файл unipatch.py
запускать так (либа бэкбейс должна быть рядом - в том же каталоге):
python3 unipatch.py
если предварительно выполнить:
chmod +x unipatch.py
, то запускать можно будеть так:
./unipatch.py

#!/usr/bin/env python3
import sys, os, glob, mmap
# changed after fuck-up 2022-11-15
pattern = bytearray(b'\x41\x81\x78\x08\x6C\x68\x73\x68')
unipatch = bytearray(b'\x51\x53\x52\x57\x56\xE8\x88\x13\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\xA0\x00\x00\x00\x00\x00\x00\x00\x A4\x00\x00\x00\x00\x00\x00\x00\xA8\x00\x00\x00\x00 \x00\x00\x00\xAC\x00\x00\x00\x00\x00\x00\x00\xB0\x 00\x00\x00\x00\x00\x00\x00\xB1\x00\x00\x00\x00\x00 \x00\x00\xB2\x00\x00\x00\x00\x00\x00\x00\xFA\x00\x 00\x00\x00\x00\x00\x00\xFA\x10\x00\x00\x00\x00\x00 \x00\x06\x11\x00\x00\x00\x00\x00\x00\xC4\x10\x00\x 00\x00\x00\x00\x00\xC8\x10\x00\x00\x00\x00\x00\x00 \xCC\x10\x00\x00\x00\x00\x00\x00\xD0\x10\x00\x00\x 00\x00\x00\x00\xD4\x10\x00\x00\x00\x00\x00\x00\xD5 \x10\x00\x00\x00\x00\x00\x00\xD6\x10\x00\x00\x00\x 00\x00\x00\x1E\x11\x00\x00\x00\x00\x00\x00\x0E\x13 \x00\x00\x00\x00\x00\x00\x1A\x13\x00\x00\x00\x00\x 00\x00\x7A\x23\x25\x41\x1F\x50\x7F\x73\x0A\x00\x00 \x00\x04\x00\x00\x00\xDB\x30\x9A\x21\x2C\x25\xDE\x 65\x6C\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x30\x CB\xD4\x61\x4D\x5C\x1F\xE0\xCD\x42\x2F\xFA\x8E\x1D \x63\x2B\xEA\x09\xD1\xED\xBF\xF4\x09\x00\xA6\x2D\x D1\xE9\x9E\x40\x6D\x0F\x45\xE2\x52\xEA\x10\x9D\xAB \xC3\x81\x47\x75\xF9\x9E\x97\x9B\x5C\xDA\x99\x44\x 0A\x16\xBB\x13\xBC\x4B\xB0\x6D\x50\x75\xEA\x8A\x44 \x66\x81\x82\xED\xFE\x90\x0C\x65\xFB\xB6\xFF\x73\x 24\x6A\xB4\x5D\x90\xBD\x65\xCC\xBF\xE5\xFC\x85\x46 \x58\x77\x04\x1C\x88\x97\x24\xFC\x57\xA4\x44\x53\x 22\x21\x85\x4E\x01\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x57\x 42\x50\x54\x01\x00\x00\x00\x70\x00\x00\x00\x00\x00 \x21\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\x 00\x01\x02\x4A\x1F\x01\x18\x02\x08\x01\x14\x2C\x33 \x00\xCB\x70\x6D\x3B\x1F\x50\x7F\x73\x0A\x00\x00\x 00\x04\x00\x00\x00\xDB\x30\x9A\x21\x2C\x25\xDE\x65 \x6C\x65\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x30\xCB \xD4\x61\x4D\x5C\x1F\xE0\xCD\x42\x2F\xFA\x8E\x1D\x 63\x2B\xEA\x09\xD1\xED\xBF\xF4\x09\x00\xA6\x2D\xD1 \xE9\x9E\x40\x6D\x0F\x45\xE2\x52\xEA\x10\x9D\xAB\x C3\x81\x47\x75\xF9\x9E\x97\x9B\x5C\xDA\x99\x44\x0A \x16\xBB\x13\xBC\x4B\xB0\x6D\x50\x75\xEA\x8A\x44\x 66\x81\x82\xED\xFE\x90\x0C\x65\xFB\xB6\xFF\x73\x24 \x6A\xB4\x5D\x90\xBD\x65\xCC\xBF\xE5\xFC\x85\x46\x 58\x77\x04\x1C\x88\x97\x24\xFC\x57\xA4\x44\x53\x22 \x21\x85\x4E\x64\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x 00\x00\x00\x00\x00\x00\x64\x00\x00\x00\xFE\xFF\x00 \x01\x02\x4A\x1F\x01\x04\x07\x08\x01\x10\x34\x07\x 00\x5E\x48\x89\xC9\x48\x31\xC0\x48\x31\xD2\x8A\x41 \x16\x89\x06\x48\x89\xF3\x48\x83\xC6\x10\x48\x83\x F8\x01\x75\x0D\xC6\x41\x28\x01\xC6\x41\x30\x00\xE9 \x32\x02\x00\x00\x66\x8B\x51\x20\xC1\xE2\x10\x66\x 8B\x51\x24\x48\x8B\x3E\x3B\x14\x3E\x75\x02\x74\x10 \x48\x83\xC6\x50\x48\x8B\x3E\x3B\x14\x3E\x0F\x85\x 0D\x02\x00\x00\x89\x53\x04\x48\x89\x73\x08\x48\x83 \xF8\x03\x74\x06\x48\x83\xF8\x2C\x75\x21\x48\x03\x 76\x38\x48\x31\xC0\x8B\x41\x28\x48\xD1\xE0\x48\x0F \xB7\x04\x06\x89\x41\x2C\xC7\x41\x30\x00\x00\x00\x 00\xE9\xD9\x01\x00\x00\x48\x83\xF8\x04\x74\x06\x48 \x83\xF8\x2D\x75\x21\x48\x03\x76\x38\x48\x31\xC0\x 8B\x41\x28\x66\x8B\x79\x2C\x48\xD1\xE0\x66\x89\x3C \x06\xC7\x41\x30\x00\x00\x00\x00\xE9\xAC\x01\x00\x 00\x48\x83\xF8\x05\x75\x2A\x48\x31\xC0\x48\x8B\x56 \x18\x8B\x04\x16\x89\x41\x28\x48\x8B\x56\x10\x8B\x 04\x16\x89\x41\x2C\xC7\x41\x30\x66\x00\x00\x00\xC7 \x41\x34\x54\x64\x00\x00\xE9\x7C\x01\x00\x00\x48\x 83\xF8\x06\x74\x05\x83\xF8\x2E\x75\x22\x48\x03\x76 \x08\x48\x31\xC0\x8B\x06\x48\x0F\xB7\xF8\xC1\xE8\x 10\x89\x79\x28\x89\x41\x2C\xC7\x41\x30\x00\x00\x00 \x00\xE9\x4F\x01\x00\x00\x48\x83\xF8\x28\x75\x1A\x C7\x41\x28\x00\x00\x00\x00\xC7\x41\x2C\x00\x00\x00 \x00\xC7\x41\x30\x00\x00\x00\x00\xE9\x2F\x01\x00\x 00\x48\x83\xF8\x2A\x75\x0C\xC7\x41\x30\x00\x00\x00 \x00\xE9\x1D\x01\x00\x00\x48\x83\xF8\x2B\x75\x0C\x C7\x41\x30\x00\x00\x00\x00\xE9\x0B\x01\x00\x00\x48 \x83\xF8\x30\x75\x05\xE9\x00\x01\x00\x00\x48\x83\x F8\x32\x74\x06\x48\x83\xF8\x34\x75\x32\x48\x03\x76 \x38\x48\x31\xC0\x48\x8B\x79\x40\x8B\x41\x28\x48\x D1\xE0\x48\x01\xC6\x48\x89\xC8\x48\x31\xC9\x8B\x48 \x2C\x9C\xFC\xF3\x66\xA5\x9D\x48\x89\xC1\xC7\x41\x 30\x00\x00\x00\x00\xE9\xC2\x00\x00\x00\x83\xF8\x33 \x74\x06\x48\x83\xF8\x33\x75\x35\x48\x03\x76\x38\x 48\x31\xC0\x48\x8B\x79\x40\x8B\x41\x28\x48\xD1\xE0 \x48\x01\xC6\x48\x89\xC8\x48\x31\xC9\x8B\x48\x2C\x 48\x87\xF7\x9C\xFC\xF3\x66\xA5\x9D\x48\x89\xC1\xC7 \x41\x30\x00\x00\x00\x00\xE9\x82\x00\x00\x00\x83\x F8\x3C\x74\x05\x83\xF8\x58\x75\x31\x83\x79\x2C\x08 \x72\x72\x51\x48\x81\xEC\x00\x01\x00\x00\x49\x89\x E0\x48\x31\xD2\x8B\x51\x2C\x48\x8B\x49\x40\xE8\x85 \x0B\x00\x00\x48\x81\xC4\x00\x01\x00\x00\x59\xC7\x 41\x30\x00\x00\x00\x00\xEB\x47\x83\xF8\x3D\x74\x05 \x83\xF8\x59\x75\x31\x83\x79\x2C\x08\x72\x37\x51\x 48\x31\xD2\x8B\x51\x2C\x48\x8B\x49\x40\x48\x81\xEC \x00\x01\x00\x00\x49\x89\xE0\xE8\x34\x10\x00\x00\x 48\x81\xC4\x00\x01\x00\x00\x59\xC7\x41\x30\x00\x00 \x00\x00\xEB\x0C\x83\xF8\x55\x75\x02\xEB\x05\xB8\x 78\x56\x34\x12\x5E\x5F\x5A\x5B\x59\xC3\x56\x57\x48 \x89\xD6\x48\x89\xCF\x31\xC9\x44\x89\xC1\xF3\xA4\x 5F\x5E\xC3\x48\x89\x54\x24\x10\x89\x4C\x24\x08\x48 \x83\xEC\x18\x8B\x44\x24\x20\x83\xE0\x1F\x89\x44\x 24\x20\x8B\x44\x24\x20\xC1\xE8\x02\x25\xFE\x00\x00 \x00\x48\x8B\x4C\x24\x28\x0F\xB6\x44\x01\x02\xB9\x 1F\x00\x00\x00\x2B\x4C\x24\x20\x83\xE1\x07\xD3\xF8 \x83\xE0\x01\x88\x44\x24\x04\x0F\xB6\x44\x24\x04\x 83\xF0\x01\x8B\x4C\x24\x20\xC1\xE9\x03\x21\xC8\x8B \x4C\x24\x20\x31\xC1\x89\xC8\x8B\x4C\x24\x20\xC1\x E9\x04\x31\xC8\x89\x04\x24\x48\x8B\x44\x24\x28\x8B \x40\x0F\xC1\xE8\x0A\x8B\x0C\x24\x31\xC1\x89\xC8\x 89\x04\x24\x48\x8B\x44\x24\x28\x8B\x40\x0F\xC1\xE8 \x07\x8B\x0C\x24\x31\xC1\x89\xC8\x89\x04\x24\x8B\x 44\x24\x20\x83\xE0\x02\x85\xC0\x74\x15\x48\x8B\x44 \x24\x28\x8B\x40\x0F\xC1\xE8\x05\x8B\x0C\x24\x31\x C1\x89\xC8\x89\x04\x24\x8B\x44\x24\x20\x83\xE0\x04 \x85\xC0\x74\x15\x48\x8B\x44\x24\x28\x8B\x40\x0F\x C1\xE8\x08\x8B\x0C\x24\x31\xC1\x89\xC8\x89\x04\x24 \x8B\x04\x24\x83\xE0\x01\x89\x04\x24\x8B\x44\x24\x 20\x83\xE0\x01\xC1\xE0\x02\x48\x8B\x4C\x24\x28\x8B \x49\x0F\x31\xC1\x89\xC8\x48\x8B\x4C\x24\x28\x89\x 41\x0F\x48\x8B\x44\x24\x28\x8B\x40\x0F\xD1\xE0\x48 \x8B\x4C\x24\x28\x89\x41\x0F\x48\x8B\x44\x24\x28\x 8B\x0C\x24\x8B\x40\x0F\x09\xC8\x48\x8B\x4C\x24\x28 \x89\x41\x0F\x48\x8B\x44\x24\x28\x8B\x40\x0F\xC1\x E8\x0B\x0F\xB6\x4C\x24\x04\x31\xC8\x83\xE0\x01\x48 \x83\xC4\x18\xC3\x48\x89\x54\x24\x10\x48\x89\x4C\x 24\x08\x48\x83\xEC\x48\xC7\x44\x24\x30\x1F\x00\x00 \x00\x48\x8B\x44\x24\x58\x8B\x40\x14\x89\x44\x24\x 20\x8B\x44\x24\x20\x35\x89\x19\x08\x01\x89\x44\x24 \x20\x8B\x44\x24\x20\xC1\xE8\x0C\x89\x44\x24\x20\x C7\x44\x24\x24\x0A\x00\x00\x00\xEB\x0A\x8B\x44\x24 \x24\xFF\xC8\x89\x44\x24\x24\x83\x7C\x24\x24\x05\x 76\x69\x0F\xB6\x44\x24\x20\x83\xE0\x0F\x89\x44\x24 \x2C\x83\x7C\x24\x2C\x00\x74\x0A\xC7\x44\x24\x38\x 01\x00\x00\x00\xEB\x08\xC7\x44\x24\x38\x00\x00\x00 \x00\x83\x7C\x24\x2C\x0B\x73\x0A\xC7\x44\x24\x3C\x 01\x00\x00\x00\xEB\x08\xC7\x44\x24\x3C\x00\x00\x00 \x00\x8B\x44\x24\x3C\x8B\x4C\x24\x38\x21\xC1\x89\x C8\x8B\x4C\x24\x24\xD3\xE0\x8B\x4C\x24\x30\x09\xC1 \x89\xC8\x89\x44\x24\x30\x8B\x44\x24\x20\xC1\xE8\x 04\x89\x44\x24\x20\xEB\x86\x8B\x44\x24\x30\xC1\xE8 \x06\x48\x8B\x4C\x24\x58\x88\x41\x13\x48\x8B\x44\x 24\x58\x0F\xB6\x40\x13\xC1\xE0\x06\x83\xC8\x1F\x48 \x8B\x4C\x24\x58\x89\x41\x0F\xC7\x44\x24\x24\x01\x 00\x00\x00\xC7\x44\x24\x28\x00\x00\x00\x00\xEB\x0A \x8B\x44\x24\x24\xFF\xC0\x89\x44\x24\x24\x83\x7C\x 24\x24\x27\x77\x6A\x8B\x44\x24\x28\x48\x8B\x4C\x24 \x50\x0F\xB6\x04\x01\x48\x8B\x54\x24\x58\x89\xC1\x E8\xA6\xFD\xFF\xFF\x89\x44\x24\x34\x48\x8B\x44\x24 \x50\x8B\x00\x83\xE0\x01\xD1\xE0\x0B\x44\x24\x34\x 89\x44\x24\x28\x48\x8B\x44\x24\x50\x8B\x00\x83\xE0 \x01\x3B\x44\x24\x34\x75\x12\x48\x8B\x44\x24\x50\x 8B\x00\xD1\xE8\x48\x8B\x4C\x24\x50\x89\x01\xEB\x15 \x48\x8B\x44\x24\x50\x8B\x00\xD1\xE8\x35\x62\x00\x 50\x80\x48\x8B\x4C\x24\x50\x89\x01\xEB\x85\x48\x83 \xC4\x48\xC3\x48\x89\x4C\x24\x08\x48\x83\xEC\x48\x 48\x8B\x44\x24\x50\x0F\xB6\x40\x01\xC1\xF8\x05\x83 \xE0\x01\x48\x8B\x4C\x24\x50\x88\x41\x0A\x48\x8B\x 44\x24\x50\x0F\xB6\x40\x02\xC1\xF8\x07\x83\xE0\x01 \x83\xF0\x01\x88\x44\x24\x24\x0F\xB6\x44\x24\x24\x 85\xC0\x74\x0E\x48\x8B\x44\x24\x50\x0F\xB6\x00\x89 \x44\x24\x3C\xEB\x0E\x48\x8B\x44\x24\x50\x0F\xB6\x 00\xF7\xD0\x89\x44\x24\x3C\x0F\xB6\x44\x24\x3C\x88 \x44\x24\x26\xC7\x44\x24\x28\x00\x00\x00\x00\x48\x 8B\x44\x24\x50\x0F\xB6\x40\x01\x83\xE0\x1F\x88\x44 \x24\x25\xC7\x44\x24\x2C\x00\x00\x00\x00\xEB\x0A\x 8B\x44\x24\x2C\xFF\xC0\x89\x44\x24\x2C\x83\x7C\x24 \x2C\x04\x7D\x3D\x0F\xB6\x44\x24\x28\xC0\xE0\x02\x 88\x44\x24\x28\x0F\xB6\x44\x24\x25\x83\xE0\x01\x0F \xB6\x4C\x24\x25\x83\xF1\x01\x83\xE1\x01\xD1\xE1\x 09\xC8\x0F\xB6\x4C\x24\x28\x09\xC1\x89\xC8\x88\x44 \x24\x28\x0F\xB6\x44\x24\x25\xD0\xE8\x88\x44\x24\x 25\xEB\xB2\x0F\xB6\x44\x24\x28\x35\xFF\x00\x00\x00 \x88\x44\x24\x2A\x0F\xB6\x44\x24\x28\x88\x44\x24\x 29\x0F\xB6\x44\x24\x2A\x88\x44\x24\x2B\xC7\x44\x24 \x2C\x00\x00\x00\x00\xEB\x0A\x8B\x44\x24\x2C\xFF\x C0\x89\x44\x24\x2C\x83\x7C\x24\x2C\x08\x0F\x8D\x9F \x00\x00\x00\x8B\x44\x24\x2C\x83\xC0\x08\xC1\xF8\x 02\x25\xFE\x00\x00\x00\x48\x98\x48\x8B\x4C\x24\x50 \x0F\xB6\x44\x01\x02\x8B\x4C\x24\x2C\x83\xC1\x08\x BA\x1F\x00\x00\x00\x29\xCA\x89\xD1\x83\xE1\x07\xD3 \xF8\x83\xE0\x01\x0F\xB6\x4C\x24\x25\x31\xC8\x8B\x 4C\x24\x2C\xD3\xE0\x0F\xB6\x4C\x24\x29\x31\xC1\x89 \xC8\x88\x44\x24\x29\x8B\x44\x24\x2C\x83\xC0\x18\x C1\xF8\x02\x25\xFE\x00\x00\x00\x48\x98\x48\x8B\x4C \x24\x50\x0F\xB6\x44\x01\x02\x8B\x4C\x24\x2C\x83\x C1\x18\xBA\x1F\x00\x00\x00\x29\xCA\x89\xD1\x83\xE1 \x07\xD3\xF8\x83\xE0\x01\x0F\xB6\x4C\x24\x25\x31\x C8\x8B\x4C\x24\x2C\xD3\xE0\x0F\xB6\x4C\x24\x2B\x31 \xC1\x89\xC8\x88\x44\x24\x2B\xE9\x4C\xFF\xFF\xFF\x 48\x8B\x44\x24\x50\xC7\x40\x0B\x00\x00\x00\x00\xC7 \x44\x24\x20\x00\x00\x00\x00\xC7\x44\x24\x30\x1F\x 00\x00\x00\xEB\x0A\x8B\x44\x24\x30\xFF\xC8\x89\x44 \x24\x30\x83\x7C\x24\x30\x00\x0F\x8C\xA4\x00\x00\x 00\x0F\xB6\x44\x24\x26\xC1\xE0\x03\x48\x8B\x4C\x24 \x50\x89\x41\x0F\xC7\x44\x24\x38\x00\x00\x00\x00\x EB\x0A\x8B\x44\x24\x38\xFF\xC0\x89\x44\x24\x38\x83 \x7C\x24\x38\x0C\x7D\x14\x48\x8B\x54\x24\x50\x8B\x 4C\x24\x30\xE8\xA6\x00\x00\x00\x88\x44\x24\x34\xEB \xDB\x8B\x44\x24\x20\xD1\xE0\x89\x44\x24\x20\x8B\x 44\x24\x30\xC1\xF8\x02\x25\xFE\x00\x00\x00\x48\x98 \x48\x8B\x4C\x24\x50\x0F\xB6\x44\x01\x02\xB9\x1F\x 00\x00\x00\x2B\x4C\x24\x30\x83\xE1\x07\xD3\xF8\x83 \xE0\x01\x8B\x4C\x24\x30\x83\xE1\x01\x31\xC8\x8B\x 4C\x24\x30\x8B\x54\x24\x28\xD3\xEA\x89\xD1\x83\xE1 \x01\x31\xC8\x0F\xB6\x4C\x24\x34\x31\xC8\x8B\x4C\x 24\x20\x09\xC1\x89\xC8\x89\x44\x24\x20\xE9\x47\xFF \xFF\xFF\x48\x8B\x44\x24\x50\x8B\x4C\x24\x20\x89\x 48\x0B\x0F\xB6\x44\x24\x26\xC1\xE0\x03\x0F\xB6\x4C \x24\x24\xC1\xE1\x02\x09\xC8\x0F\xB6\x4C\x24\x24\x D1\xE1\x09\xC8\x0F\xB6\x4C\x24\x24\x09\xC8\x48\x8B \x4C\x24\x50\x89\x41\x0F\x48\x83\xC4\x48\xC3\x48\x 89\x54\x24\x10\x89\x4C\x24\x08\x48\x83\xEC\x28\x8B \x44\x24\x30\x83\xE0\x1F\x89\x44\x24\x30\x8B\x44\x 24\x30\xD1\xE8\x83\xE0\x03\xE8\x10\x00\x00\x00\x80 \x04\x00\x00\xA0\x04\x00\x00\x80\x05\x00\x00\xA0\x 05\x00\x00\x59\x8B\x04\x81\x89\x44\x24\x04\xC7\x44 \x24\x08\x00\x00\x00\x00\xC7\x44\x24\x0C\x00\x00\x 00\x00\xEB\x0A\x8B\x44\x24\x0C\xFF\xC0\x89\x44\x24 \x0C\x83\x7C\x24\x0C\x0C\x7D\x3D\x8B\x44\x24\x0C\x 0F\xB6\xC8\x8B\x44\x24\x04\xD3\xE8\x83\xE0\x01\x85 \xC0\x74\x27\x8B\x44\x24\x0C\x48\x8B\x4C\x24\x38\x 48\x89\x4C\x24\x10\x0F\xB6\xC8\x48\x8B\x44\x24\x10 \x8B\x40\x0F\xD3\xE8\x8B\x4C\x24\x08\x31\xC1\x89\x C8\x89\x44\x24\x08\xEB\xB2\x8B\x44\x24\x30\x83\xE0 \x01\xC1\xE0\x02\x48\x8B\x4C\x24\x38\x8B\x49\x0F\x 31\xC1\x89\xC8\x48\x8B\x4C\x24\x38\x89\x41\x0F\x8B \x44\x24\x30\xC1\xE8\x02\x25\xFE\x00\x00\x00\x48\x 8B\x4C\x24\x38\x0F\xB6\x44\x01\x02\xB9\x1F\x00\x00 \x00\x2B\x4C\x24\x30\x83\xE1\x07\xD3\xF8\x83\xE0\x 01\x48\x8B\x4C\x24\x38\x0F\xB6\x49\x0A\x31\xC8\x88 \x04\x24\x48\x8B\x44\x24\x38\x8B\x40\x0F\xD1\xE0\x 0F\xB6\x0C\x24\x8B\x54\x24\x08\x31\xCA\x89\xD1\x83 \xE1\x01\x09\xC8\x48\x8B\x4C\x24\x38\x89\x41\x0F\x 8B\x44\x24\x30\x48\x8B\x4C\x24\x38\x48\x89\x4C\x24 \x18\x0F\xB6\xC8\x48\x8B\x44\x24\x18\x8B\x40\x0B\x D3\xE8\x83\xE0\x01\x48\x8B\x4C\x24\x38\x8B\x49\x0F \x31\xC1\x89\xC8\x48\x8B\x4C\x24\x38\x89\x41\x0F\x 48\x8B\x44\x24\x38\x8B\x40\x0F\xC1\xE8\x0B\x0F\xB6 \x0C\x24\x31\xC8\x83\xE0\x01\x48\x83\xC4\x28\xC3\x 48\x89\x54\x24\x10\x48\x89\x4C\x24\x08\x48\x83\xEC \x38\x48\x8B\x44\x24\x48\x83\x78\x14\x00\x74\x14\x 48\x8B\x54\x24\x48\x48\x8B\x4C\x24\x40\xE8\x3F\xFA \xFF\xFF\xE9\x97\x00\x00\x00\x48\x8B\x4C\x24\x48\x E8\xA6\xFB\xFF\xFF\xC7\x44\x24\x20\x01\x00\x00\x00 \xC7\x44\x24\x24\x00\x00\x00\x00\xEB\x0A\x8B\x44\x 24\x20\xFF\xC0\x89\x44\x24\x20\x83\x7C\x24\x20\x27 \x77\x6A\x8B\x44\x24\x24\x48\x8B\x4C\x24\x40\x0F\x B6\x04\x01\x48\x8B\x54\x24\x48\x89\xC1\xE8\x2E\xFE \xFF\xFF\x89\x44\x24\x28\x48\x8B\x44\x24\x40\x8B\x 00\x83\xE0\x01\xD1\xE0\x0B\x44\x24\x28\x89\x44\x24 \x24\x48\x8B\x44\x24\x40\x8B\x00\x83\xE0\x01\x3B\x 44\x24\x28\x75\x12\x48\x8B\x44\x24\x40\x8B\x00\xD1 \xE8\x48\x8B\x4C\x24\x40\x89\x01\xEB\x15\x48\x8B\x 44\x24\x40\x8B\x00\xD1\xE8\x35\x62\x00\x50\x80\x48 \x8B\x4C\x24\x40\x89\x01\xEB\x85\x48\x83\xC4\x38\x C3\x49\x89\xE3\x48\x83\xEC\x68\x45\x85\xC0\x49\x89 \x5B\xF8\x49\x89\x6B\xF0\x49\x89\x73\xE8\x49\x89\x 7B\xE0\x4D\x89\x63\xD8\x44\x8B\x61\x04\x44\x89\xC5 \x48\x89\xD6\x48\x89\xCB\x45\x89\xE1\x45\x89\x63\x C8\x74\x26\x49\x8D\x4B\xC8\x49\x89\x4B\xB8\xE8\x00 \x00\x00\x00\x5A\x48\x81\xEA\xD0\x1D\x00\x00\x48\x 8B\x12\x48\x03\x52\x20\xE8\xE2\xFE\xFF\xFF\x44\x8B \x4C\x24\x30\x8B\x03\x44\x31\xC8\x89\xC1\x44\x31\x E0\x35\xC3\x25\x34\x80\x89\x0B\x89\xC1\x35\xC3\x25 \x34\x80\xC1\xC0\x02\x33\x03\x89\x0B\x89\xC1\x35\x C3\x25\x34\x80\xC1\xC0\x04\x33\x03\x89\x0B\x89\xC1 \x35\xC3\x25\x34\x80\xC1\xC0\x06\x33\x03\x89\x0B\x 89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x08\x33\x03\x89 \xC2\x35\xC3\x25\x34\x80\xC1\xC0\x0A\x89\x13\x31\x C8\x85\xED\x48\x8B\x6C\x24\x58\x89\x43\x04\x41\x89 \xC4\x89\xC2\x89\x44\x24\x34\x74\x27\x48\x8D\x4C\x 24\x34\xE8\x00\x00\x00\x00\x5A\x48\x81\xEA\x5D\x1E \x00\x00\x48\x8B\x12\x48\x03\x52\x20\xE8\x55\xFE\x FF\xFF\x8B\x54\x24\x34\x44\x8B\x4C\x24\x30\x8B\x03 \x48\x8B\x7C\x24\x48\x31\xD0\x89\xC1\x44\x31\xE0\x 4C\x8B\x64\x24\x40\x35\x4A\x00\x2C\x5B\x89\x0B\x89 \xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x05\x33\x03\x89\x 0B\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0A\x33\x03 \x89\x0B\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0F\x 33\x03\x89\x0B\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0 \x14\x33\x03\x89\x0B\x89\xC1\x35\x4A\x00\x2C\x5B\x C1\xC0\x19\x33\x03\x48\x85\xF6\x89\x0B\x89\x43\x04 \x48\x8B\x5C\x24\x60\x74\x06\x44\x89\x0E\x89\x56\x 04\x48\x8B\x74\x24\x50\x48\x83\xC4\x68\xC3\x48\x83 \xEC\x08\x4C\x8D\x0C\x24\x41\xB8\x01\x00\x00\x00\x 49\x89\x09\x8B\x41\x5C\x48\xC1\xE0\x20\x8B\x49\x12 \x48\x09\xC1\x48\x89\xCA\x48\x83\xC2\x08\xE8\x6E\x FE\xFF\xFF\x48\x83\xC4\x08\xC3\x49\x89\xE3\x48\x83 \xEC\x68\x49\x89\x5B\xF8\x48\x89\xCB\x49\x89\x6B\x F0\x49\x89\x73\xE8\x49\x89\x7B\xE0\x4C\x89\xCF\x44 \x8B\x09\x4D\x89\x63\xD8\x45\x89\xC4\x44\x89\xC8\x 48\x89\xD6\x35\x4A\x00\x2C\x5B\xC1\xC0\x19\x33\x41 \x04\x44\x89\x49\x04\x89\x01\x89\xC1\x35\x4A\x00\x 2C\x5B\xC1\xC0\x14\x89\x4B\x04\x44\x31\xC8\x89\xC1 \x35\x4A\x00\x2C\x5B\xC1\xC0\x0F\x33\x43\x04\x89\x 4B\x04\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0A\x33 \x43\x04\x89\x4B\x04\x89\xC1\x35\x4A\x00\x2C\x5B\x C1\xC0\x05\x33\x43\x04\x89\x4B\x04\x89\xC1\x8B\x43 \x04\x31\xC8\x89\x4B\x04\x35\x4A\x00\x2C\x5B\x45\x 85\xE4\x89\x03\x89\xC5\x41\x89\xC0\x89\x44\x24\x34 \x74\x37\x48\x8B\x07\x49\x8D\x4B\xCC\x44\x0F\xB7\x 48\x1E\x44\x0F\xB7\x40\x0C\x0F\xB7\x50\x08\x49\x89 \x4B\xB8\xE8\x00\x00\x00\x00\x5A\x48\x81\xEA\xE1\x 1F\x00\x00\x48\x8B\x12\x48\x03\x52\x20\xE8\xD1\xFC \xFF\xFF\x44\x8B\x44\x24\x34\x8B\x43\x04\x44\x31\x C0\x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x0A\x89\x4B \x04\x31\xE8\x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x 08\x33\x43\x04\x89\x4B\x04\x89\xC1\x35\xC3\x25\x34 \x80\xC1\xC0\x06\x33\x43\x04\x89\x4B\x04\x89\xC1\x 35\xC3\x25\x34\x80\xC1\xC0\x04\x33\x43\x04\x89\x4B \x04\x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x02\x33\x 43\x04\x89\xC2\x89\xC8\x31\xD0\x89\x53\x04\x35\xC3 \x25\x34\x80\x45\x85\xE4\x4C\x8B\x64\x24\x40\x89\x 03\x89\xC5\x89\xC1\x89\x44\x24\x30\x74\x3D\x48\x8B \x07\x48\x8D\x4C\x24\x30\x44\x0F\xB7\x48\x1E\x44\x 0F\xB7\x40\x0C\x0F\xB7\x50\x08\x48\x89\x4C\x24\x20 \xE8\x00\x00\x00\x00\x5A\x48\x81\xEA\x8E\x20\x00\x 00\x48\x8B\x12\x48\x03\x52\x20\xE8\x24\xFC\xFF\xFF \x44\x8B\x44\x24\x34\x8B\x4C\x24\x30\x8B\x43\x04\x 48\x8B\x7C\x24\x48\x89\x6B\x04\x48\x8B\x6C\x24\x58 \x31\xC8\x48\x85\xF6\x89\x03\x48\x8B\x5C\x24\x60\x 74\x06\x89\x0E\x44\x89\x46\x04\x48\x8B\x74\x24\x50 \x48\x83\xC4\x68\xC3\x48\x83\xEC\x08\x4C\x8D\x0C\x 24\x41\xB8\x01\x00\x00\x00\x49\x89\x09\x8B\x41\x5C \x48\xC1\xE0\x20\x8B\x49\x12\x48\x09\xC1\x48\x89\x CA\x48\x83\xC2\x08\xE8\x23\xFE\xFF\xFF\x48\x83\xC4 \x08\xC3\x48\x89\xE0\x48\x81\xEC\xE8\x00\x00\x00\x 48\x89\x58\x08\x48\x89\x68\x10\x48\x89\x70\x18\x48 \x89\x78\x20\x4C\x89\x60\xF8\x4C\x89\x68\xF0\x4C\x 89\x70\xE8\x4C\x89\x78\xE0\xB8\x08\x00\x00\x00\x44 \x8D\x72\x07\x41\x89\xD7\x4C\x89\xC5\x41\xC1\xEE\x 03\x41\x83\xE7\x07\x48\x89\xCB\x44\x0F\x44\xF8\x45 \x31\xC9\x41\x8D\x46\xFF\x85\xC0\x44\x89\x7C\x24\x 28\x44\x89\x4C\x24\x24\x45\x89\xC8\x44\x89\x4C\x24 \x20\x45\x89\xCD\x45\x8D\x51\x02\x0F\x84\x7A\x02\x 00\x00\x48\x8B\x7C\x24\x30\x44\x8B\x64\x24\x54\x4D \x89\xD7\x44\x31\x03\x44\x31\x4B\x04\x45\x85\xED\x 8B\x0B\x8B\x53\x04\x0F\x85\x16\x01\x00\x00\x45\x39 \xFE\x0F\x86\xDB\x00\x00\x00\x66\x44\x89\x6D\x10\x 48\x8B\x03\x48\x89\xE9\x48\x89\x44\x24\x38\x48\x8D \x44\x24\x38\x48\x89\x7C\x24\x40\x89\x45\x12\x48\x 8D\x44\x24\x38\x66\x44\x89\x7D\x16\x48\xC1\xE8\x20 \x66\x44\x89\x6D\x3E\x89\x45\x5C\xE8\x1C\xFD\xFF\x FF\x48\x8B\x7C\x24\x40\x48\x8B\x44\x24\x38\x48\x89 \x7C\x24\x30\x8B\x74\x24\x34\x48\x89\x03\x89\x7C\x 24\x50\x48\x8D\x54\x24\x54\x66\x44\x89\x6D\x16\x45 \x8D\x45\x05\x8B\x4A\xFC\x48\x83\xC2\x14\x8D\x04\x 31\x83\xE1\x1F\x89\x42\xEC\x89\xF8\xD3\xC8\x31\x44 \x24\x54\x8B\x4A\xEC\x8D\x04\x31\x83\xE1\x1F\x89\x 42\xF0\x89\xF8\xD3\xC8\x31\x44\x24\x54\x8B\x4A\xF0 \x8D\x04\x31\x83\xE1\x1F\x89\x42\xF4\x89\xF8\xD3\x C8\x31\x44\x24\x54\x8B\x4A\xF4\x8D\x04\x31\x83\xE1 \x1F\x89\x42\xF8\x89\xF8\xD3\xC8\x31\x44\x24\x54\x 8B\x4A\xF8\x8D\x04\x31\x83\xE1\x1F\x89\x42\xFC\x44 \x8B\x64\x24\x54\x89\xF8\xD3\xC8\x41\x31\xC4\x49\x FF\xC8\x44\x89\x64\x24\x54\x75\x8A\xE9\x42\x01\x00 \x00\x48\x89\xD8\x48\x89\xE9\x66\xC7\x45\x10\x00\x 00\x48\xC1\xE8\x20\x66\xC7\x45\x16\x01\x00\x66\xC7 \x45\x3E\x00\x00\x89\x45\x5C\x89\x5D\x12\xE8\x52\x FC\xFF\xFF\x66\xC7\x45\x16\x00\x00\xE9\x10\x01\x00 \x00\x8B\x44\x24\x50\x46\x8D\x04\x21\x4C\x8D\x4C\x 24\x5C\x8D\x34\x02\x44\x89\x03\x4D\x89\xFA\x89\x73 \x04\x44\x89\xC1\x44\x89\xC2\x49\x83\xC1\x30\xC1\x E9\x04\x31\xF2\x83\xE1\x1F\xD3\xC2\x41\x2B\x51\xCC \x41\x31\xD0\x89\xD1\xC1\xE9\x07\x83\xE1\x1F\x41\x D3\xC0\x45\x03\x41\xD0\x44\x89\xC1\x44\x89\xC6\xC1 \xE9\x04\x31\xD6\x83\xE1\x1F\xD3\xC6\x41\x2B\x71\x D4\x41\x31\xF0\x89\xF1\xC1\xE9\x07\x83\xE1\x1F\x41 \xD3\xC0\x45\x03\x41\xD8\x44\x89\xC1\x44\x89\xC2\x C1\xE9\x04\x31\xF2\x83\xE1\x1F\xD3\xC2\x41\x2B\x51 \xDC\x41\x31\xD0\x89\xD1\xC1\xE9\x07\x83\xE1\x1F\x 41\xD3\xC0\x45\x03\x41\xE0\x44\x89\xC1\x44\x89\xC6 \xC1\xE9\x04\x31\xD6\x83\xE1\x1F\xD3\xC6\x41\x2B\x 71\xE4\x41\x31\xF0\x89\xF1\xC1\xE9\x07\x83\xE1\x1F \x41\xD3\xC0\x45\x03\x41\xE8\x44\x89\xC1\x44\x89\x C2\xC1\xE9\x04\x31\xF2\x83\xE1\x1F\xD3\xC2\x41\x2B \x51\xEC\x41\x31\xD0\x89\xD1\xC1\xE9\x07\x83\xE1\x 1F\x41\xD3\xC0\x45\x03\x41\xF0\x44\x89\xC1\x44\x89 \xC6\xC1\xE9\x04\x31\xD6\x83\xE1\x1F\xD3\xC6\x41\x 2B\x71\xF4\x41\x31\xF0\x89\xF1\xC1\xE9\x07\x83\xE1 \x1F\x41\xD3\xC0\x45\x03\x41\xF8\x49\xFF\xCA\x0F\x 85\x0F\xFF\xFF\xFF\x44\x89\x03\x89\x73\x04\x44\x8B \x03\x44\x8B\x4B\x04\x41\x8D\x46\xFF\x41\xFF\xC5\x 48\x83\xC3\x08\x44\x89\x44\x24\x20\x41\x39\xC5\x44 \x89\x4C\x24\x24\x0F\x82\xA0\xFD\xFF\xFF\x44\x8B\x 7C\x24\x28\x41\xBA\x02\x00\x00\x00\xEB\x05\x44\x8B \x64\x24\x54\x45\x85\xFF\x4C\x8B\xAC\x24\xD8\x00\x 00\x00\x74\x2C\x48\x8D\x44\x24\x20\x48\x89\xDF\x48 \x8D\x4C\x24\x20\x48\x29\xC7\x44\x89\xFA\x0F\xB6\x 04\x0F\x48\xFF\xC1\x30\x41\xFF\x48\xFF\xCA\x75\xF1 \x44\x8B\x4C\x24\x24\x44\x8B\x44\x24\x20\x41\x83\x FE\x02\x0F\x86\xFF\x00\x00\x00\x44\x03\x4C\x24\x50 \x48\x8D\x74\x24\x5C\x45\x01\xE0\x44\x89\xC1\x44\x 89\xC2\x48\x83\xC6\x30\xC1\xE9\x04\x44\x31\xCA\x83 \xE1\x1F\xD3\xC2\x2B\x56\xCC\x41\x31\xD0\x89\xD1\x C1\xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xD0 \x44\x89\xC1\x44\x89\xC7\xC1\xE9\x04\x31\xD7\x83\x E1\x1F\xD3\xC7\x2B\x7E\xD4\x41\x31\xF8\x89\xF9\xC1 \xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xD8\x 44\x89\xC1\x44\x89\xC2\xC1\xE9\x04\x31\xFA\x83\xE1 \x1F\xD3\xC2\x2B\x56\xDC\x41\x31\xD0\x89\xD1\xC1\x E9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xE0\x44 \x89\xC1\x44\x89\xC7\xC1\xE9\x04\x31\xD7\x83\xE1\x 1F\xD3\xC7\x2B\x7E\xE4\x41\x31\xF8\x89\xF9\xC1\xE9 \x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xE8\x44\x 89\xC1\x44\x89\xC2\xC1\xE9\x04\x31\xFA\x83\xE1\x1F \xD3\xC2\x2B\x56\xEC\x41\x31\xD0\x89\xD1\xC1\xE9\x 07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xF0\x44\x89 \xC1\x45\x89\xC1\xC1\xE9\x04\x41\x31\xD1\x83\xE1\x 1F\x41\xD3\xC1\x44\x2B\x4E\xF4\x45\x31\xC8\x44\x89 \xC9\xC1\xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x 46\xF8\x49\xFF\xCA\x0F\x85\x10\xFF\xFF\xFF\xEB\x51 \x41\x83\xFE\x01\x75\x0D\x8B\x03\x89\x44\x24\x20\x 8B\x43\x04\x89\x44\x24\x24\x48\x8D\x44\x24\x20\x48 \x89\xE9\x66\xC7\x45\x10\x00\x00\x89\x45\x12\x48\x 8D\x44\x24\x20\x66\xC7\x45\x16\x01\x00\x48\xC1\xE8 \x20\x66\xC7\x45\x3E\x00\x00\x89\x45\x5C\xE8\x7D\x F9\xFF\xFF\x44\x8B\x4C\x24\x24\x44\x8B\x44\x24\x20 \x66\xC7\x45\x16\x00\x00\x4C\x8B\xA4\x24\xE0\x00\x 00\x00\x48\x8B\xAC\x24\xF8\x00\x00\x00\x41\x83\xFE \x01\x4C\x8B\xB4\x24\xD0\x00\x00\x00\x76\x1B\x45\x 85\xFF\x74\x0C\x48\x8D\x73\xF8\x44\x89\xF9\x48\x89 \xDF\xF3\xA4\x44\x89\x43\xF8\x44\x89\x4B\xFC\xEB\x 07\x44\x89\x03\x44\x89\x4B\x04\x4C\x8B\xBC\x24\xC8 \x00\x00\x00\x48\x8B\xBC\x24\x08\x01\x00\x00\x48\x 8B\xB4\x24\x00\x01\x00\x00\x48\x8B\x9C\x24\xF0\x00 \x00\x00\x48\x81\xC4\xE8\x00\x00\x00\xC3\x48\x89\x E0\x48\x81\xEC\xF8\x00\x00\x00\x48\x89\x58\x08\x48 \x89\x68\x10\x48\x89\x70\x18\x48\x89\x78\x20\x4C\x 89\x60\xF8\x4C\x89\x68\xF0\x4C\x89\x70\xE8\x4C\x89 \x78\xE0\x48\x89\xCB\x8D\x4A\x07\x89\xD0\xBA\x08\x 00\x00\x00\xC1\xE9\x03\x83\xE0\x07\x4C\x89\xC7\x0F \x44\xC2\x45\x31\xFF\x83\xF9\x01\x89\x4C\x24\x30\x 44\x8D\x62\x04\x44\x89\x7C\x24\x2C\x44\x89\x7C\x24 \x34\x44\x89\x7C\x24\x28\x45\x89\xFE\x89\x44\x24\x 38\x0F\x86\x9F\x01\x00\x00\x83\xC1\xFE\x44\x89\xFE \x89\x4C\x24\x20\x0F\x84\x8F\x01\x00\x00\x48\x8B\x 44\x24\x40\x44\x8B\x6C\x24\x64\x8B\x6C\x24\x60\x85 \xF6\x44\x8B\x03\x44\x8B\x73\x04\x45\x89\xC7\x44\x 89\x44\x24\x28\x0F\x85\xEE\x00\x00\x00\x48\x89\x44 \x24\x50\x48\x8D\x44\x24\x48\x66\x89\x77\x10\x48\x 8B\x0B\x89\x47\x12\x48\x8D\x44\x24\x48\x48\xC1\xE8 \x20\x48\x89\x4C\x24\x48\x48\x89\xF9\x66\xC7\x47\x 16\x02\x00\x66\x89\x77\x3E\x89\x47\x5C\xE8\x0E\xFA \xFF\xFF\x48\x8B\x44\x24\x48\x4C\x8D\x44\x24\x64\x 48\x89\x03\x48\x8B\x44\x24\x50\x44\x8D\x56\x05\x48 \x89\x44\x24\x40\x44\x8B\x4C\x24\x44\x66\x89\x77\x 16\x89\x44\x24\x60\x41\x8B\x48\xFC\x49\x83\xC0\x14 \x42\x8D\x14\x09\x83\xE1\x1F\x41\x89\x50\xEC\x89\x C2\xD3\xCA\x31\x54\x24\x64\x41\x8B\x48\xEC\x42\x8D \x14\x09\x83\xE1\x1F\x41\x89\x50\xF0\x89\xC2\xD3\x CA\x31\x54\x24\x64\x41\x8B\x48\xF0\x42\x8D\x14\x09 \x83\xE1\x1F\x41\x89\x50\xF4\x89\xC2\xD3\xCA\x31\x 54\x24\x64\x41\x8B\x48\xF4\x42\x8D\x14\x09\x83\xE1 \x1F\x41\x89\x50\xF8\x89\xC2\xD3\xCA\x31\x54\x24\x 64\x41\x8B\x48\xF8\x42\x8D\x14\x09\x83\xE1\x1F\x41 \x89\x50\xFC\x44\x8B\x6C\x24\x64\x89\xC2\xD3\xCA\x 41\x31\xD5\x49\xFF\xCA\x44\x89\x6C\x24\x64\x0F\x85 \x77\xFF\xFF\xFF\x8B\x6C\x24\x60\xEB\x4B\x45\x89\x E3\x45\x89\xF1\x4C\x8D\x94\x24\xC0\x00\x00\x00\x45 \x2B\x42\x04\x44\x89\xC9\x49\x83\xEA\x08\xC1\xE9\x 07\x83\xE1\x1F\x41\xD3\xC8\x45\x31\xC8\x45\x03\x4A \x08\x44\x89\xC1\xC1\xE9\x04\x83\xE1\x1F\x41\xD3\x C9\x45\x31\xC1\x41\x83\xC3\xFF\x75\xD0\x45\x29\xE8 \x41\x29\xE9\x44\x89\x4B\x04\x44\x89\x03\x8B\x4C\x 24\x34\xFF\xC6\x48\x83\xC3\x08\x31\x4B\xF8\x8B\x4C \x24\x2C\x44\x89\x7C\x24\x34\x31\x4B\xFC\x3B\x74\x 24\x20\x44\x89\x74\x24\x2C\x0F\x82\x88\xFE\xFF\xFF \x8B\x44\x24\x38\x45\x31\xFF\xEB\x09\x44\x8B\x6C\x 24\x64\x8B\x6C\x24\x60\x85\xC0\x44\x89\x7C\x24\x20 \x44\x89\xFE\x44\x89\x7C\x24\x24\x74\x1A\x48\x8D\x 53\x08\x48\x8D\x4C\x24\x20\x41\x89\xC0\xE8\xB8\xED \xFF\xFF\x8B\x74\x24\x24\x44\x8B\x7C\x24\x20\x44\x 8B\x5C\x24\x30\x41\x83\xFB\x01\x75\x32\x48\x89\xD8 \x48\x89\xF9\x66\xC7\x47\x10\x00\x00\x48\xC1\xE8\x 20\x66\xC7\x47\x16\x01\x00\x66\xC7\x47\x3E\x00\x00 \x89\x47\x5C\x89\x5F\x12\xE8\x75\xF8\xFF\xFF\x66\x C7\x47\x16\x00\x00\xE9\x29\x01\x00\x00\x41\x83\xFB \x02\x75\x34\x48\x89\xD8\x48\x89\xF9\x66\xC7\x47\x 10\x00\x00\x48\xC1\xE8\x20\x66\xC7\x47\x16\x01\x00 \x66\xC7\x47\x3E\x00\x00\x89\x47\x5C\x89\x5F\x12\x E8\x3D\xF8\xFF\xFF\x44\x8B\x5C\x24\x30\x66\xC7\x47 \x16\x00\x00\xEB\x55\x8B\x13\x44\x8B\x43\x04\x45\x 89\xE2\x4C\x8D\x8C\x24\xC0\x00\x00\x00\x41\x2B\x51 \x04\x44\x89\xC1\x49\x83\xE9\x08\xC1\xE9\x07\x83\x E1\x1F\xD3\xCA\x44\x31\xC2\x45\x03\x41\x08\x89\xD1 \xC1\xE9\x04\x83\xE1\x1F\x41\xD3\xC8\x41\x31\xD0\x 41\x83\xC2\xFF\x75\xD2\x44\x29\xEA\x41\x29\xE8\x41 \x83\xFB\x01\x89\x13\x44\x89\x43\x04\x0F\x86\x9A\x 00\x00\x00\x44\x33\x3B\x33\x73\x04\x8B\x44\x24\x38 \x85\xC0\x44\x89\x7C\x24\x20\x89\x74\x24\x24\x74\x 31\x4C\x8D\x44\x24\x20\x49\x89\xD9\x48\x8D\x4B\x08 \x4D\x29\xC1\x49\x89\xC0\x48\x8D\x54\x24\x20\x0F\x B6\x01\x48\xFF\xC1\x48\xFF\xC2\x49\xFF\xC8\x41\x88 \x44\x11\xFF\x0F\xB6\x42\xFF\x88\x41\xFF\x75\xE6\x 41\x83\xFB\x02\x0F\x84\xED\xFE\xFF\xFF\x8B\x13\x44 \x8B\x43\x04\x4C\x8D\x8C\x24\xC0\x00\x00\x00\x41\x 2B\x51\x04\x44\x89\xC1\x49\x83\xE9\x08\xC1\xE9\x07 \x83\xE1\x1F\xD3\xCA\x44\x31\xC2\x45\x03\x41\x08\x 89\xD1\xC1\xE9\x04\x83\xE1\x1F\x41\xD3\xC8\x41\x31 \xD0\x41\x83\xC4\xFF\x75\xD2\x44\x29\xEA\x41\x29\x E8\x44\x89\x43\x04\x89\x13\x8B\x44\x24\x28\x4C\x8B \xBC\x24\xD8\x00\x00\x00\x4C\x8B\xAC\x24\xE8\x00\x 00\x00\x31\x03\x44\x31\x73\x04\x4C\x8B\xA4\x24\xF0 \x00\x00\x00\x4C\x8B\xB4\x24\xE0\x00\x00\x00\x48\x 8B\x9C\x24\x00\x01\x00\x00\x48\x8B\xBC\x24\x18\x01 \x00\x00\x48\x8B\xB4\x24\x10\x01\x00\x00\x48\x8B\x AC\x24\x08\x01\x00\x00\x48\x81\xC4\xF8\x00\x00\x00 \xC3\xCC\xCC\xCC\xCC\x57\x59\xE9\xF9\xD5\xFF\xFF')
fullfname=os.getcwd()+'/backbas.so'

# uncomment next 2 lines to get unipatch for 10 spartans
#unipatch[0x11F8]=10
#unipatch[0x137E]=10


try:
fp = open(fullfname, 'r+')
if os.stat(fp.name).st_size > 0:
mm = mmap.mmap(fp.fileno(), 0)

# WTF? "to smoke": man 5 elf
if mm[0]!=0x7f or mm[1]!=0x45 or mm[2]!=0x4C or mm[3]!=0x46 or mm[4]!=2 or mm[5]!=1 or mm[6]!=1 or mm[16]!=3 or mm[17]!=0 or mm[18]!=0x3E or mm[19]!=0:
print ("what's a fuck are you giving me?")
sys.exit()

e_phoff = mm[0x20]+(mm[0x21]+(mm[0x22]+(mm[0x23]<<8)<<8)<<8)
e_phentsize = mm[0x36]+(mm[0x37]<<8)
e_phnum = mm[0x38]+(mm[0x39]<<8)

for i in range(e_phnum):
p = e_phoff + i * e_phentsize
p_type = mm[p] +(mm[p+1]+(mm[p+2]+(mm[p+3]<<8)<<8)<<8)
p_flags = mm[p+4]+(mm[p+5]+(mm[p+6]+(mm[p+7]<<8)<<8)<<8)
if (p_type==1 and p_flags==5):
print(f"p_type={hex(p_type)}, p_flags={hex(p_flags)}")
print(f"mm[{hex(p+4)}] += PF_W")
mm[p+4] = 7
break

pattern_addr = mm.find(pattern)
if pattern_addr != -1:
unipatch_addr=pattern_addr-0x2A75
print (f"patching {fullfname} at offset={hex(unipatch_addr)}")
mm[unipatch_addr:unipatch_addr+0x2A07] = unipatch

mm.close()
except IOError as e:
print (f"I/O error({e.errno}): {e.strerror}, filename={fullfname}")

HPDX2300
26.11.2022, 22:23
для файловых баз необходимо ещё вот это:

# это годится только для 22-1709-linux64
printf '\xEB' | dd of=backbas.so bs=1 seek=$((0x003AB22C)) count=1 conv=notrunc
printf '\x90\x90' | dd of=backbas.so bs=1 seek=$((0x003AB29F)) count=2 conv=notrunc
printf '\xEB' | dd of=backbas.so bs=1 seek=$((0x003AB2A8)) count=1 conv=notrunc
printf '\x31\xC0\x90' | dd of=backbas.so bs=1 seek=$((0x003BA2CF)) count=3 conv=notrunc

HPDX2300
27.11.2022, 15:36
для файловых баз необходимо ещё вот это:
этот код надо выполнять в окне терминала, либа бэкбейс должна быть рядом.
код ниже сохранить в файл delic.sh
запускать так (либа бэкбейс должна быть рядом - в том же каталоге):
sh delic.sh
если предварительно выполнить:
chmod +x delic.sh
, то запускать можно будеть так:
./delic.sh

#!/bin/sh
# это годится только для 22-1709-linux64
printf '\xEB' | dd of=backbas.so bs=1 seek=$((0x003AB22C)) count=1 conv=notrunc
printf '\x90\x90' | dd of=backbas.so bs=1 seek=$((0x003AB29F)) count=2 conv=notrunc
printf '\xEB' | dd of=backbas.so bs=1 seek=$((0x003AB2A8)) count=1 conv=notrunc
printf '\x31\xC0\x90' | dd of=backbas.so bs=1 seek=$((0x003BA2CF)) count=3 conv=notrunc
для "чайников" расписал подробнее - "как это выполнять?"

HPDX2300
01.12.2022, 22:38
немного инфы для снятия нервного напряжения:
"SN" (SerialNumber) и первые 112 байт памяти ключа (в дампе это "Data") задействованы в проверке hasp-ключа изделием.

Хочу сказать разработчикам защитных механизмов изделия: "тщительнее тестировать надо, ребята", а то поставили всех причастных к саппорту вашего изделия в позу с опорой на четыре кости.
А если у последнего факапа будет продолжение, то набросал примерный план ответных действий:

1) уже в процессе разработки генератор "мутантов" с подбором "белого" значения "SN";
примерная схема работы:
(1) - берем какой-нибудь SN (из ранее известных);
(2) - отправляем на сервис вендора пакет так, как это делает платформа перед "наказанием"; (скриптик на питоне уже в процессе реализации)
(3) - если в ответе сервера нет "наказания", то вычисляем байтики для "Data" (уже реализовано). если в ответе сервера есть "наказание", то SN=SN+1 и переход к (2)

2) есть патч, ломающий проверку hasp-ключа изделием - так что изделие стартанет с любым значением SN ключа; если доступ к инет-сервису валидации будет открыт, то нужно ещё патчить механизм "наказания"

3) в некоторых случаях (на клиенте) требуется, чтобы ключик от унипатча был строго сетевой - легко делается в унипатче (убираем реализацию HASP-API-сервисов локального ключа и оставляем только сервисы сетевого хаспа)

P.S.
в виндовом унипатче, которым мы научились пользоваться под Linux, 99% кода - это реализация сервисов шифрования и дешифрования данных - огромное СПАСИБО создателям виндового унипатча за этот код.

HPDX2300
02.12.2022, 14:43
(2) - отправляем на сервис вендора пакет так, как это делает платформа перед "наказанием"; (скриптик на питоне уже в процессе реализации)
при реализации пункта (2) обнаружил в коде изделия захардкоденую проверку вот этих SN:
1B93C5D6
5CEE77A1
281DCF71
08ED1E32
так что не факт, что "наказание" связано с общением по адресу 185.12.152.33:443 (это может быть простой сбор статистики), вообчем дебагер всё покажет и расскажет :-)

HPDX2300
03.12.2022, 12:51
при реализации пункта (2) обнаружил в коде изделия захардкоденую проверку вот этих SN:
1B93C5D6
5CEE77A1
281DCF71
08ED1E32
так что не факт, что "наказание" связано с общением по адресу 185.12.152.33:443 (это может быть простой сбор статистики), вообчем дебагер всё покажет и расскажет :-)
Чтобы убить у "афторофф" факапа 15.11 идею составления "чёрного" списка ключей, покажем им один придуманный ключик, с которым изделие стартует и не жужжит про звездец:
в дампе ключа прописать эти данные

SN=12345678
Data=
01 00 00 00 00 00 00 80 D9 79 C5 23 3B E9 A2 53
15 21 84 C1 57 3C 48 31 D6 50 2E B0 44 24 84 58
23 B9 32 7A A1 33 26 41 30 09 70 30 C4 C1 28 38
99 2A 56 04 CF DB 20 77 3D 2A AC E6 40 4C 6B 12
D8 29 72 D6 E3 2C 82 DA B4 81 F2 6B AE 26 38 5A
5B E1 C2 44 2C 33 31 81 2C 92 41 57 EC 5D C3 6C
B5 C4 21 3D CB 50 C6 DE 27 42 81 C2 35 29 37 BB
и далее как обычно
0A 00 FF FF FF ................................

HPDX2300
03.12.2022, 18:30
И совсем уж приятный ключик:

SN=3D1BB1B7
Data=
01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

проверка хаспа скажет про него ОК.
И ,кстати, в алгоритме тока арифметика и никакой криптографии :-)

HPDX2300
05.12.2022, 13:36
прочитать SN и всю память ключа (в дампе она "Data") можно на любой ОС, где работает клиент изделия. Необходим тока дебагер:
1) SN ключа возвращается в ответе на вызов "Service 6: HaspID" для локального ключа, и "Service 46: HaspID" для сетевого ключа
2) память ключа изделие читает вызывая "Service 50: ReadBlock" для локального ключа, и "Service 52: ReadBlock" для сетевого ключа;
ждать (недолго - секунды) когда случится вызов соответствующего HASP Service (50 или 52) и поменять в стэке параметры на свои
скачать HASP4 Programmers Guide (https://sentineldiscussion.safenet-inc.com/viewFile.do?fileId=43161000000036014&forumGroupId=43161000000003001)

HPDX2300
07.12.2022, 07:53
Продолжаем флудить вычисленными дампами ключей

SN=DEADBEEF
DATA=
01 00 00 00 00 00 00 07 CA AE 95 DB D7 F7 A8 B7
D4 F7 BA 09 45 39 A8 E3 F2 BF EB D4 78 D4 39 57
DA 68 8B 24 A7 47 32 38 BD 75 30 71 B3 B5 BA 25
7D DC E5 00 F8 F4 35 E3 04 B0 55 27 EF 84 E6 C2
F1 B5 A0 6E B5 AC 42 52 97 AF F2 F8 D0 D5 80 ED
FA FD A2 C2 C9 F8 D5 B2 29 CF 12 57 71 04 0A D2
E1 A0 03 20 1E 4C C3 8B D1 22 40 FA 27 38 99 54
64 00 FF FF FF FF FF FF FF FF FF FF FF.........

HPDX2300
07.12.2022, 23:03
прочитать SN и всю память ключа (в дампе она "Data") можно на любой ОС, где работает клиент изделия. Необходим тока дебагер:
1) SN ключа возвращается в ответе на вызов "Service 6: HaspID" для локального ключа, и "Service 46: HaspID" для сетевого ключа
2) память ключа изделие читает вызывая "Service 50: ReadBlock" для локального ключа, и "Service 52: ReadBlock" для сетевого ключа;
ждать (недолго - секунды) когда случится вызов соответствующего HASP Service (50 или 52) и поменять в стэке параметры на свои
скачать HASP4 Programmers Guide (https://sentineldiscussion.safenet-inc.com/viewFile.do?fileId=43161000000036014&forumGroupId=43161000000003001)

маленький лик.без. на примере изделия 18-1563-win32:

версия платформы может быть любая (даже любая последняя) т.к. код HASP API не меняется (и не будет меняться - проект закрыт аж в 2006 году) - я уже ранее писал об этом в теме про унипатч.
про про функцию hasp( ): унипатч лечит либу в точке входа в функцию HASP_API_EP, у неё один входной параметр - ссылка на структуру, в которой уложены все параметры функции hasp( ). Если подняться по иерархии вызовов на 2 уровня, то увидим функцию wrap_HASP_API_Level_2, которая по своим входным 9-ти параметрам похожа на hasp( ) - вот её вызовы (не тело!) удобно дебажить, все её аргументы кладутся в стэк.
wrap_HASP_API_Level_2 вызывает wrap_HASP_API_Level_1, она вызывает HASP_API_EP.

в 32 битных версиях оригинальный код HASP API содержит много затруднений для неопытного кулхацкера (например, код HASP_API_EP начинается с команды EB FF т.е. JMP -1). Но если не заниматься его отладкой, а ограничиться отладкой вызовов wrap_HASP_API_Level_2, то всё будет в точности как в книжке "HASP4 Programmers Guide"

левый столбец - адреса в памяти (не изменяются от сессии к сессии т.к. ASLR ещё не используется в этой версии изделия)


1BFA816E: FF75 20 PUSH DWORD PTR SS:[EBP+20]
1BFA8171: FF75 1C PUSH DWORD PTR SS:[EBP+1C]
1BFA8174: FF75 18 PUSH DWORD PTR SS:[EBP+18]
1BFA8177: FF75 14 PUSH DWORD PTR SS:[EBP+14]
1BFA817A: FF75 10 PUSH DWORD PTR SS:[EBP+10]
1BFA817D: FF75 0C PUSH DWORD PTR SS:[EBP+C]
1BFA8180: FF75 08 PUSH DWORD PTR SS:[EBP+8]
1BFA8183: 56 PUSH ESI
1BFA8184: 57 PUSH EDI
1BFA8185: E8 F6960C00 CALL backbas.1C071880 ; это call wrap_HASP_API_Level_2 здесь точка останова

при остановке на точке останова смотрим в стэк:
0012F400 00000032 Service ID =0x32=50 Service 50: ReadBlock
0012F404 00000000 SeedCode
0012F408 00000066 PortNum
0012F40C 00003B6D Password1
0012F410 000070CB Password2
0012F414 0012F480 Param1 \
0012F418 0012F484 Param2 | они являются указателями, значение смотреть по адресам ниже
0012F41C 0012F48C Param3 |
0012F420 0012F488 Param4 /
0012F424 6BE0E632
0012F428 044B5138
0012F42C 00003B6D
0012F430 0012F4D8 Pointer to next SEH record
0012F434 1C354460 SE handler
0012F438 00000000
0012F43C /0012F4E4
0012F440 |1BFB6425 RETURN to backbas.1BFB6425 from backbas.1BFA8130
0012F444 |00000066
0012F448 |00003B6D
0012F44C |000070CB
0012F450 |0012F480
0012F454 |0012F484
0012F458 |0012F48C
0012F45C |0012F488
0012F460 |6BE0E6EA
0012F464 |0447E310
0012F468 |00000005
0012F46C |0440CB58
0012F470 |0012F50C
0012F474 |00000000
0012F478 |000070CB
0012F47C |00000066
0012F480 |00000038 значение Param1 (Start Address, in words - initial HASP memory address for reading the block)
0012F484 |00000002 значение Param2 (Block Length, in words - The block size)
0012F488 |04404F50 значение Param4 (Buffer Offset - address of a program buffer т.е. это указатель на buffer, куда будет прочитано 2 слова {38-e и 39-е} из памяти ключа)
0012F48C |00000000 значение Param3

HPDX2300
27.12.2022, 22:18
при реализации пункта (2) обнаружил в коде изделия захардкоденую проверку вот этих SN:
1B93C5D6
5CEE77A1
281DCF71
08ED1E32
годится тока для изделий под линукс-х64:
1) берём МС и находим в модулях четыре процитированных выше SN
2) в модулях изделия hex редактором забиваем эти SN нулями (00 00 00 00)
3) применяем унипатч со старыми дампами (см. пост #21 от 21.06.2022)
усё будет шуршать. А "придуманные" дампы нехороши тем, что примерно через 73мин будет крах (или segfault, или "ключ больше не доступен") - я пока занят изучением этих "шестерёнок", но изложенное выше тоже хорошая пилюля.

HPDX2300
17.01.2023, 20:49
Алгоритм вычисления Data=function(SN) "придуманных" дампов доработан.
Используйте ТГ-бота https://t.me/mimomutagen_bot на свой страх и риск (я не его автор).
Не следует ожидать совпадения поля Data с реальными данными из физических ключей с таким же SN - секта не давала посмотреть исходники.
Данные в поле Data созданы так, чтобы они прошли 2-х этапную проверку в коде изделия.

Унипатч доработан так, чтобы можно было легко изменять в текстовом редакторе используемые им дампы.
В первых строках скрипта меняете пары {SERVER_KEY_SN, SERVER_KEY_Data} и {CLIENT_KEY_SN, CLIENT_KEY_Data}.

Унипатч теперь правильно эмулирует сетевой HASP-API, в диалоге "About" отображается число спартанцев сетевого ключа.
Это на практике проявляется так: сперва вы запускали изделие с помощью парочки эмулятор+HASPLM, изделие запомнило в файле 1cv8conn.pfl последний успешный путь получения лицензии на запуск (от сетевого HASPLM), при следующем запуске читается файл 1cv8conn.pfl и выполняется попытка получить лицензию также как прошлый раз. Если теперь либа патчена унипатчем, то унипатч честно выполнит эмуляцию сетевого HASPLM, и в диалоге "О программе" --> "Лицензия:" будет написано "Текущая: Сетевой HASP4 ORGL8 100" (Сетевой, а не локальный)

Порядок байтов во всех полях, и, в частности, в CLIENT_KEY_SN - как в исполняемых модулях для процессора Intel - младший байт идет первым

Я подставил в скрипте данные из публичных дампов от мультика с непалёными SN.
Внимание: не все поля в дампе надо менять. Впрочем, делайте как хотите, ибо это допускается.
Выхлоп скрипта в stdout будет содержать инфу о дампах SERVER_KEY и CLIENT_KEY.

повторим для "чайников":
это патчер изделия для линукса-x64
код ниже сохранить в файл unipatch.py
запускать так (либа бэкбейс должна быть рядом - в том же каталоге):
python3 unipatch.py
если предварительно выполнить:
chmod +x unipatch.py
, то запускать можно будеть так:
./unipatch.py

#!/usr/bin/env python3
import sys, os, glob, mmap

SERVER_KEY_PASSWORD = bytearray(b'\x7A\x23\x25\x41')
SERVER_KEY_SN = bytearray(b'\x9E\xAE\xA3\x33')
SERVER_KEY_HASPTYPE = bytearray(b'\x01\x00\x00\x00')
SERVER_KEY_MEMORYSIZE=bytearray(b'\x01\x00\x00\x00 ')
SERVER_KEY_SecTable =bytearray(b'\x15\xea\x8f\xea\x73\xea\xeb\xea')
SERVER_KEY_Data=bytearray(b'\
\x01\x00\x00\x00\x00\x00\x00\xE0\x6E\xF3\x62\xF8\x 08\x0A\xEF\x77\
\xCB\x1E\xFD\xDD\xFA\x76\xFF\x43\xF9\x3E\xC9\xEF\x A5\x61\xA1\xC3\
\x72\x9F\x8C\xCA\x35\xD4\x3E\x66\x79\x1F\x3F\x32\x 51\x36\x5C\x00\
\x03\xCD\xBE\x20\x2E\x72\x54\xE9\xEC\x7E\x5C\xC3\x D6\x3F\xCA\x4B\
\x4B\x8D\xED\xEA\x13\xCA\xA5\xA8\x5E\x4C\xD6\x4D\x 60\xAF\xF1\xAD\
\xD7\x80\x15\xB8\xEE\xA9\x8B\x4A\xAB\xA7\x29\xA0\x 55\x9A\x55\xE0\
\x30\xD7\xDA\x1C\xD8\x83\xBB\xF6\x6A\x03\xB1\x05\x BF\x2B\x9A\x93')
SERVER_KEY_LicNum = bytearray(b'\x01\x00')

CLIENT_KEY_PASSWORD = bytearray(b'\xCB\x70\x6D\x3B')
CLIENT_KEY_SN = bytearray(b'\xD5\x77\xDD\x26')
CLIENT_KEY_HASPTYPE = bytearray(b'\x0A\x00\x00\x00')
CLIENT_KEY_MEMORYSIZE=bytearray(b'\x04\x00\x00\x00 ')
CLIENT_KEY_SecTable =bytearray(b'\x9A\x21\x2C\x25\xDE\x65\x6C\x65')
CLIENT_KEY_Data=bytearray(b'\
\x01\x00\x00\x00\x00\x00\x00\x40\xDF\xAF\x94\xAE\x 97\x17\x47\xD5\
\x08\x77\xC3\x10\xA2\x8E\xFE\xA6\xFF\x39\x40\x01\x 57\xA4\x9B\xBD\
\xFE\xBA\x1D\x82\xED\xFF\xA3\x50\xA7\x6F\x97\x74\x 38\x02\x78\xCA\
\x89\xCC\x65\x98\x61\x2C\x7D\x94\xB4\x5A\x52\xD4\x 93\xF7\x25\x5F\
\x50\xCB\xDB\xC3\x62\xAA\x4D\x44\x61\x66\x56\xAA\x 75\xA6\x07\x70\
\x0A\x35\x03\xB7\x65\x4F\x07\xB2\x84\x7B\xB6\xEF\x 4D\x65\x1B\x45\
\x12\x19\x0C\x96\xEE\xAF\x57\x91\x50\x21\x07\xD4\x AC\x20\x55\xCB')
CLIENT_KEY_LicNum = bytearray(b'\x64\x00')

pattern = bytearray(b'\x41\x81\x78\x08\x6C\x68\x73\x68')
unipatch = bytearray(b'\x51\x53\x52\x57\x56\xE8\x88\x13\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\xA0\x00\x00\x00\x00\x00\x00\x00\x A4\x00\x00\x00\x00\x00\x00\x00\xA8\x00\x00\x00\x00 \x00\x00\x00\xAC\x00\x00\x00\x00\x00\x00\x00\xB0\x 00\x00\x00\x00\x00\x00\x00\xB1\x00\x00\x00\x00\x00 \x00\x00\xB2\x00\x00\x00\x00\x00\x00\x00\xFA\x00\x 00\x00\x00\x00\x00\x00\xFA\x10\x00\x00\x00\x00\x00 \x00\x06\x11\x00\x00\x00\x00\x00\x00\xC4\x10\x00\x 00\x00\x00\x00\x00\xC8\x10\x00\x00\x00\x00\x00\x00 \xCC\x10\x00\x00\x00\x00\x00\x00\xD0\x10\x00\x00\x 00\x00\x00\x00\xD4\x10\x00\x00\x00\x00\x00\x00\xD5 \x10\x00\x00\x00\x00\x00\x00\xD6\x10\x00\x00\x00\x 00\x00\x00\x1E\x11\x00\x00\x00\x00\x00\x00\x0E\x13 \x00\x00\x00\x00\x00\x00\x1A\x13\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\xFB\x13\\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x01\x00\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x57\ x42\x50\x54\x01\x00\x00\x00\x70\x00\x00\x00\x00\x0 0\x21\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\ x00\x01\x02\x4A\x1F\x01\x18\x02\x08\x01\x14\x2C\x3 3\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\xDB\x30\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\ x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0 0\x00\x00\x00\x64\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xF F\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\ x00\x00\x00\x00\x00\x00\x64\x00\x00\x00\xFE\xFF\x0 0\x01\x02\x4A\x1F\x01\x04\x07\x08\x01\x10\x34\x07\ x00\x5E\x48\x89\xC9\x48\x31\xC0\x48\x31\xD2\x8A\x4 1\x16\x89\x06\x48\x89\xF3\x48\x83\xC6\x10\x48\x83\ xF8\x01\x75\x0D\xC6\x41\x28\x01\xC6\x41\x30\x00\xE 9\x32\x02\x00\x00\x66\x8B\x51\x20\xC1\xE2\x10\x66\ x8B\x51\x24\x48\x8B\x3E\x3B\x14\x3E\x75\x02\x74\x1 0\x48\x83\xC6\x50\x48\x8B\x3E\x3B\x14\x3E\x0F\x85\ x0D\x02\x00\x00\x89\x53\x04\x48\x89\x73\x08\x48\x8 3\xF8\x03\x74\x06\x48\x83\xF8\x2C\x75\x21\x48\x03\ x76\x38\x48\x31\xC0\x8B\x41\x28\x48\xD1\xE0\x48\x0 F\xB7\x04\x06\x89\x41\x2C\xC7\x41\x30\x00\x00\x00\ x00\xE9\xD9\x01\x00\x00\x48\x83\xF8\x68\x75\x27\x4 8\x03\x76\x38\xB8\x70\x00\x00\x00\x48\x0F\xB7\x04\ x06\xC7\x41\x28\x01\x00\x00\x00\x89\x41\x2C\x89\x4 1\x30\xC7\x41\x34\xFF\xFF\x00\x00\xE9\xAC\x01\x00\ x00\x48\x83\xF8\x05\x75\x2A\x48\x31\xC0\x48\x8B\x5 6\x18\x8B\x04\x16\x89\x41\x28\x48\x8B\x56\x10\x8B\ x04\x16\x89\x41\x2C\xC7\x41\x30\xDE\x00\x00\x00\xC 7\x41\x34\x3C\x23\x00\x00\xE9\x7C\x01\x00\x00\x48\ x83\xF8\x06\x74\x05\x83\xF8\x2E\x75\x22\x48\x03\x7 6\x08\x48\x31\xC0\x8B\x06\x48\x0F\xB7\xF8\xC1\xE8\ x10\x89\x79\x28\x89\x41\x2C\xC7\x41\x30\x00\x00\x0 0\x00\xE9\x4F\x01\x00\x00\x48\x83\xF8\x28\x75\x1A\ xC7\x41\x28\x00\x00\x00\x00\xC7\x41\x2C\x00\x00\x0 0\x00\xC7\x41\x30\x00\x00\x00\x00\xE9\x2F\x01\x00\ x00\x48\x83\xF8\x2A\x75\x0C\xC7\x41\x30\x00\x00\x0 0\x00\xE9\x1D\x01\x00\x00\x48\x83\xF8\x2B\x75\x0C\ xC7\x41\x30\x00\x00\x00\x00\xE9\x0B\x01\x00\x00\x4 8\x83\xF8\x30\x75\x05\xE9\x00\x01\x00\x00\x48\x83\ xF8\x32\x74\x06\x48\x83\xF8\x34\x75\x32\x48\x03\x7 6\x38\x48\x31\xC0\x48\x8B\x79\x40\x8B\x41\x28\x48\ xD1\xE0\x48\x01\xC6\x48\x89\xC8\x48\x31\xC9\x8B\x4 8\x2C\x9C\xFC\xF3\x66\xA5\x9D\x48\x89\xC1\xC7\x41\ x30\x00\x00\x00\x00\xE9\xC2\x00\x00\x00\x83\xF8\x3 3\x74\x06\x48\x83\xF8\x33\x75\x35\x48\x03\x76\x38\ x48\x31\xC0\x48\x8B\x79\x40\x8B\x41\x28\x48\xD1\xE 0\x48\x01\xC6\x48\x89\xC8\x48\x31\xC9\x8B\x48\x2C\ x48\x87\xF7\x9C\xFC\xF3\x66\xA5\x9D\x48\x89\xC1\xC 7\x41\x30\x00\x00\x00\x00\xE9\x82\x00\x00\x00\x83\ xF8\x3C\x74\x05\x83\xF8\x58\x75\x31\x83\x79\x2C\x0 8\x72\x72\x51\x48\x81\xEC\x00\x01\x00\x00\x49\x89\ xE0\x48\x31\xD2\x8B\x51\x2C\x48\x8B\x49\x40\xE8\x8 5\x0B\x00\x00\x48\x81\xC4\x00\x01\x00\x00\x59\xC7\ x41\x30\x00\x00\x00\x00\xEB\x47\x83\xF8\x3D\x74\x0 5\x83\xF8\x59\x75\x31\x83\x79\x2C\x08\x72\x37\x51\ x48\x31\xD2\x8B\x51\x2C\x48\x8B\x49\x40\x48\x81\xE C\x00\x01\x00\x00\x49\x89\xE0\xE8\x34\x10\x00\x00\ x48\x81\xC4\x00\x01\x00\x00\x59\xC7\x41\x30\x00\x0 0\x00\x00\xEB\x0C\x83\xF8\x55\x75\x02\xEB\x05\xB8\ x78\x56\x34\x12\x5E\x5F\x5A\x5B\x59\xC3\x56\x57\x4 8\x89\xD6\x48\x89\xCF\x31\xC9\x44\x89\xC1\xF3\xA4\ x5F\x5E\xC3\x48\x89\x54\x24\x10\x89\x4C\x24\x08\x4 8\x83\xEC\x18\x8B\x44\x24\x20\x83\xE0\x1F\x89\x44\ x24\x20\x8B\x44\x24\x20\xC1\xE8\x02\x25\xFE\x00\x0 0\x00\x48\x8B\x4C\x24\x28\x0F\xB6\x44\x01\x02\xB9\ x1F\x00\x00\x00\x2B\x4C\x24\x20\x83\xE1\x07\xD3\xF 8\x83\xE0\x01\x88\x44\x24\x04\x0F\xB6\x44\x24\x04\ x83\xF0\x01\x8B\x4C\x24\x20\xC1\xE9\x03\x21\xC8\x8 B\x4C\x24\x20\x31\xC1\x89\xC8\x8B\x4C\x24\x20\xC1\ xE9\x04\x31\xC8\x89\x04\x24\x48\x8B\x44\x24\x28\x8 B\x40\x0F\xC1\xE8\x0A\x8B\x0C\x24\x31\xC1\x89\xC8\ x89\x04\x24\x48\x8B\x44\x24\x28\x8B\x40\x0F\xC1\xE 8\x07\x8B\x0C\x24\x31\xC1\x89\xC8\x89\x04\x24\x8B\ x44\x24\x20\x83\xE0\x02\x85\xC0\x74\x15\x48\x8B\x4 4\x24\x28\x8B\x40\x0F\xC1\xE8\x05\x8B\x0C\x24\x31\ xC1\x89\xC8\x89\x04\x24\x8B\x44\x24\x20\x83\xE0\x0 4\x85\xC0\x74\x15\x48\x8B\x44\x24\x28\x8B\x40\x0F\ xC1\xE8\x08\x8B\x0C\x24\x31\xC1\x89\xC8\x89\x04\x2 4\x8B\x04\x24\x83\xE0\x01\x89\x04\x24\x8B\x44\x24\ x20\x83\xE0\x01\xC1\xE0\x02\x48\x8B\x4C\x24\x28\x8 B\x49\x0F\x31\xC1\x89\xC8\x48\x8B\x4C\x24\x28\x89\ x41\x0F\x48\x8B\x44\x24\x28\x8B\x40\x0F\xD1\xE0\x4 8\x8B\x4C\x24\x28\x89\x41\x0F\x48\x8B\x44\x24\x28\ x8B\x0C\x24\x8B\x40\x0F\x09\xC8\x48\x8B\x4C\x24\x2 8\x89\x41\x0F\x48\x8B\x44\x24\x28\x8B\x40\x0F\xC1\ xE8\x0B\x0F\xB6\x4C\x24\x04\x31\xC8\x83\xE0\x01\x4 8\x83\xC4\x18\xC3\x48\x89\x54\x24\x10\x48\x89\x4C\ x24\x08\x48\x83\xEC\x48\xC7\x44\x24\x30\x1F\x00\x0 0\x00\x48\x8B\x44\x24\x58\x8B\x40\x14\x89\x44\x24\ x20\x8B\x44\x24\x20\x35\x89\x19\x08\x01\x89\x44\x2 4\x20\x8B\x44\x24\x20\xC1\xE8\x0C\x89\x44\x24\x20\ xC7\x44\x24\x24\x0A\x00\x00\x00\xEB\x0A\x8B\x44\x2 4\x24\xFF\xC8\x89\x44\x24\x24\x83\x7C\x24\x24\x05\ x76\x69\x0F\xB6\x44\x24\x20\x83\xE0\x0F\x89\x44\x2 4\x2C\x83\x7C\x24\x2C\x00\x74\x0A\xC7\x44\x24\x38\ x01\x00\x00\x00\xEB\x08\xC7\x44\x24\x38\x00\x00\x0 0\x00\x83\x7C\x24\x2C\x0B\x73\x0A\xC7\x44\x24\x3C\ x01\x00\x00\x00\xEB\x08\xC7\x44\x24\x3C\x00\x00\x0 0\x00\x8B\x44\x24\x3C\x8B\x4C\x24\x38\x21\xC1\x89\ xC8\x8B\x4C\x24\x24\xD3\xE0\x8B\x4C\x24\x30\x09\xC 1\x89\xC8\x89\x44\x24\x30\x8B\x44\x24\x20\xC1\xE8\ x04\x89\x44\x24\x20\xEB\x86\x8B\x44\x24\x30\xC1\xE 8\x06\x48\x8B\x4C\x24\x58\x88\x41\x13\x48\x8B\x44\ x24\x58\x0F\xB6\x40\x13\xC1\xE0\x06\x83\xC8\x1F\x4 8\x8B\x4C\x24\x58\x89\x41\x0F\xC7\x44\x24\x24\x01\ x00\x00\x00\xC7\x44\x24\x28\x00\x00\x00\x00\xEB\x0 A\x8B\x44\x24\x24\xFF\xC0\x89\x44\x24\x24\x83\x7C\ x24\x24\x27\x77\x6A\x8B\x44\x24\x28\x48\x8B\x4C\x2 4\x50\x0F\xB6\x04\x01\x48\x8B\x54\x24\x58\x89\xC1\ xE8\xA6\xFD\xFF\xFF\x89\x44\x24\x34\x48\x8B\x44\x2 4\x50\x8B\x00\x83\xE0\x01\xD1\xE0\x0B\x44\x24\x34\ x89\x44\x24\x28\x48\x8B\x44\x24\x50\x8B\x00\x83\xE 0\x01\x3B\x44\x24\x34\x75\x12\x48\x8B\x44\x24\x50\ x8B\x00\xD1\xE8\x48\x8B\x4C\x24\x50\x89\x01\xEB\x1 5\x48\x8B\x44\x24\x50\x8B\x00\xD1\xE8\x35\x62\x00\ x50\x80\x48\x8B\x4C\x24\x50\x89\x01\xEB\x85\x48\x8 3\xC4\x48\xC3\x48\x89\x4C\x24\x08\x48\x83\xEC\x48\ x48\x8B\x44\x24\x50\x0F\xB6\x40\x01\xC1\xF8\x05\x8 3\xE0\x01\x48\x8B\x4C\x24\x50\x88\x41\x0A\x48\x8B\ x44\x24\x50\x0F\xB6\x40\x02\xC1\xF8\x07\x83\xE0\x0 1\x83\xF0\x01\x88\x44\x24\x24\x0F\xB6\x44\x24\x24\ x85\xC0\x74\x0E\x48\x8B\x44\x24\x50\x0F\xB6\x00\x8 9\x44\x24\x3C\xEB\x0E\x48\x8B\x44\x24\x50\x0F\xB6\ x00\xF7\xD0\x89\x44\x24\x3C\x0F\xB6\x44\x24\x3C\x8 8\x44\x24\x26\xC7\x44\x24\x28\x00\x00\x00\x00\x48\ x8B\x44\x24\x50\x0F\xB6\x40\x01\x83\xE0\x1F\x88\x4 4\x24\x25\xC7\x44\x24\x2C\x00\x00\x00\x00\xEB\x0A\ x8B\x44\x24\x2C\xFF\xC0\x89\x44\x24\x2C\x83\x7C\x2 4\x2C\x04\x7D\x3D\x0F\xB6\x44\x24\x28\xC0\xE0\x02\ x88\x44\x24\x28\x0F\xB6\x44\x24\x25\x83\xE0\x01\x0 F\xB6\x4C\x24\x25\x83\xF1\x01\x83\xE1\x01\xD1\xE1\ x09\xC8\x0F\xB6\x4C\x24\x28\x09\xC1\x89\xC8\x88\x4 4\x24\x28\x0F\xB6\x44\x24\x25\xD0\xE8\x88\x44\x24\ x25\xEB\xB2\x0F\xB6\x44\x24\x28\x35\xFF\x00\x00\x0 0\x88\x44\x24\x2A\x0F\xB6\x44\x24\x28\x88\x44\x24\ x29\x0F\xB6\x44\x24\x2A\x88\x44\x24\x2B\xC7\x44\x2 4\x2C\x00\x00\x00\x00\xEB\x0A\x8B\x44\x24\x2C\xFF\ xC0\x89\x44\x24\x2C\x83\x7C\x24\x2C\x08\x0F\x8D\x9 F\x00\x00\x00\x8B\x44\x24\x2C\x83\xC0\x08\xC1\xF8\ x02\x25\xFE\x00\x00\x00\x48\x98\x48\x8B\x4C\x24\x5 0\x0F\xB6\x44\x01\x02\x8B\x4C\x24\x2C\x83\xC1\x08\ xBA\x1F\x00\x00\x00\x29\xCA\x89\xD1\x83\xE1\x07\xD 3\xF8\x83\xE0\x01\x0F\xB6\x4C\x24\x25\x31\xC8\x8B\ x4C\x24\x2C\xD3\xE0\x0F\xB6\x4C\x24\x29\x31\xC1\x8 9\xC8\x88\x44\x24\x29\x8B\x44\x24\x2C\x83\xC0\x18\ xC1\xF8\x02\x25\xFE\x00\x00\x00\x48\x98\x48\x8B\x4 C\x24\x50\x0F\xB6\x44\x01\x02\x8B\x4C\x24\x2C\x83\ xC1\x18\xBA\x1F\x00\x00\x00\x29\xCA\x89\xD1\x83\xE 1\x07\xD3\xF8\x83\xE0\x01\x0F\xB6\x4C\x24\x25\x31\ xC8\x8B\x4C\x24\x2C\xD3\xE0\x0F\xB6\x4C\x24\x2B\x3 1\xC1\x89\xC8\x88\x44\x24\x2B\xE9\x4C\xFF\xFF\xFF\ x48\x8B\x44\x24\x50\xC7\x40\x0B\x00\x00\x00\x00\xC 7\x44\x24\x20\x00\x00\x00\x00\xC7\x44\x24\x30\x1F\ x00\x00\x00\xEB\x0A\x8B\x44\x24\x30\xFF\xC8\x89\x4 4\x24\x30\x83\x7C\x24\x30\x00\x0F\x8C\xA4\x00\x00\ x00\x0F\xB6\x44\x24\x26\xC1\xE0\x03\x48\x8B\x4C\x2 4\x50\x89\x41\x0F\xC7\x44\x24\x38\x00\x00\x00\x00\ xEB\x0A\x8B\x44\x24\x38\xFF\xC0\x89\x44\x24\x38\x8 3\x7C\x24\x38\x0C\x7D\x14\x48\x8B\x54\x24\x50\x8B\ x4C\x24\x30\xE8\xA6\x00\x00\x00\x88\x44\x24\x34\xE B\xDB\x8B\x44\x24\x20\xD1\xE0\x89\x44\x24\x20\x8B\ x44\x24\x30\xC1\xF8\x02\x25\xFE\x00\x00\x00\x48\x9 8\x48\x8B\x4C\x24\x50\x0F\xB6\x44\x01\x02\xB9\x1F\ x00\x00\x00\x2B\x4C\x24\x30\x83\xE1\x07\xD3\xF8\x8 3\xE0\x01\x8B\x4C\x24\x30\x83\xE1\x01\x31\xC8\x8B\ x4C\x24\x30\x8B\x54\x24\x28\xD3\xEA\x89\xD1\x83\xE 1\x01\x31\xC8\x0F\xB6\x4C\x24\x34\x31\xC8\x8B\x4C\ x24\x20\x09\xC1\x89\xC8\x89\x44\x24\x20\xE9\x47\xF F\xFF\xFF\x48\x8B\x44\x24\x50\x8B\x4C\x24\x20\x89\ x48\x0B\x0F\xB6\x44\x24\x26\xC1\xE0\x03\x0F\xB6\x4 C\x24\x24\xC1\xE1\x02\x09\xC8\x0F\xB6\x4C\x24\x24\ xD1\xE1\x09\xC8\x0F\xB6\x4C\x24\x24\x09\xC8\x48\x8 B\x4C\x24\x50\x89\x41\x0F\x48\x83\xC4\x48\xC3\x48\ x89\x54\x24\x10\x89\x4C\x24\x08\x48\x83\xEC\x28\x8 B\x44\x24\x30\x83\xE0\x1F\x89\x44\x24\x30\x8B\x44\ x24\x30\xD1\xE8\x83\xE0\x03\xE8\x10\x00\x00\x00\x8 0\x04\x00\x00\xA0\x04\x00\x00\x80\x05\x00\x00\xA0\ x05\x00\x00\x59\x8B\x04\x81\x89\x44\x24\x04\xC7\x4 4\x24\x08\x00\x00\x00\x00\xC7\x44\x24\x0C\x00\x00\ x00\x00\xEB\x0A\x8B\x44\x24\x0C\xFF\xC0\x89\x44\x2 4\x0C\x83\x7C\x24\x0C\x0C\x7D\x3D\x8B\x44\x24\x0C\ x0F\xB6\xC8\x8B\x44\x24\x04\xD3\xE8\x83\xE0\x01\x8 5\xC0\x74\x27\x8B\x44\x24\x0C\x48\x8B\x4C\x24\x38\ x48\x89\x4C\x24\x10\x0F\xB6\xC8\x48\x8B\x44\x24\x1 0\x8B\x40\x0F\xD3\xE8\x8B\x4C\x24\x08\x31\xC1\x89\ xC8\x89\x44\x24\x08\xEB\xB2\x8B\x44\x24\x30\x83\xE 0\x01\xC1\xE0\x02\x48\x8B\x4C\x24\x38\x8B\x49\x0F\ x31\xC1\x89\xC8\x48\x8B\x4C\x24\x38\x89\x41\x0F\x8 B\x44\x24\x30\xC1\xE8\x02\x25\xFE\x00\x00\x00\x48\ x8B\x4C\x24\x38\x0F\xB6\x44\x01\x02\xB9\x1F\x00\x0 0\x00\x2B\x4C\x24\x30\x83\xE1\x07\xD3\xF8\x83\xE0\ x01\x48\x8B\x4C\x24\x38\x0F\xB6\x49\x0A\x31\xC8\x8 8\x04\x24\x48\x8B\x44\x24\x38\x8B\x40\x0F\xD1\xE0\ x0F\xB6\x0C\x24\x8B\x54\x24\x08\x31\xCA\x89\xD1\x8 3\xE1\x01\x09\xC8\x48\x8B\x4C\x24\x38\x89\x41\x0F\ x8B\x44\x24\x30\x48\x8B\x4C\x24\x38\x48\x89\x4C\x2 4\x18\x0F\xB6\xC8\x48\x8B\x44\x24\x18\x8B\x40\x0B\ xD3\xE8\x83\xE0\x01\x48\x8B\x4C\x24\x38\x8B\x49\x0 F\x31\xC1\x89\xC8\x48\x8B\x4C\x24\x38\x89\x41\x0F\ x48\x8B\x44\x24\x38\x8B\x40\x0F\xC1\xE8\x0B\x0F\xB 6\x0C\x24\x31\xC8\x83\xE0\x01\x48\x83\xC4\x28\xC3\ x48\x89\x54\x24\x10\x48\x89\x4C\x24\x08\x48\x83\xE C\x38\x48\x8B\x44\x24\x48\x83\x78\x14\x00\x74\x14\ x48\x8B\x54\x24\x48\x48\x8B\x4C\x24\x40\xE8\x3F\xF A\xFF\xFF\xE9\x97\x00\x00\x00\x48\x8B\x4C\x24\x48\ xE8\xA6\xFB\xFF\xFF\xC7\x44\x24\x20\x01\x00\x00\x0 0\xC7\x44\x24\x24\x00\x00\x00\x00\xEB\x0A\x8B\x44\ x24\x20\xFF\xC0\x89\x44\x24\x20\x83\x7C\x24\x20\x2 7\x77\x6A\x8B\x44\x24\x24\x48\x8B\x4C\x24\x40\x0F\ xB6\x04\x01\x48\x8B\x54\x24\x48\x89\xC1\xE8\x2E\xF E\xFF\xFF\x89\x44\x24\x28\x48\x8B\x44\x24\x40\x8B\ x00\x83\xE0\x01\xD1\xE0\x0B\x44\x24\x28\x89\x44\x2 4\x24\x48\x8B\x44\x24\x40\x8B\x00\x83\xE0\x01\x3B\ x44\x24\x28\x75\x12\x48\x8B\x44\x24\x40\x8B\x00\xD 1\xE8\x48\x8B\x4C\x24\x40\x89\x01\xEB\x15\x48\x8B\ x44\x24\x40\x8B\x00\xD1\xE8\x35\x62\x00\x50\x80\x4 8\x8B\x4C\x24\x40\x89\x01\xEB\x85\x48\x83\xC4\x38\ xC3\x49\x89\xE3\x48\x83\xEC\x68\x45\x85\xC0\x49\x8 9\x5B\xF8\x49\x89\x6B\xF0\x49\x89\x73\xE8\x49\x89\ x7B\xE0\x4D\x89\x63\xD8\x44\x8B\x61\x04\x44\x89\xC 5\x48\x89\xD6\x48\x89\xCB\x45\x89\xE1\x45\x89\x63\ xC8\x74\x26\x49\x8D\x4B\xC8\x49\x89\x4B\xB8\xE8\x0 0\x00\x00\x00\x5A\x48\x81\xEA\xD0\x1D\x00\x00\x48\ x8B\x12\x48\x03\x52\x20\xE8\xE2\xFE\xFF\xFF\x44\x8 B\x4C\x24\x30\x8B\x03\x44\x31\xC8\x89\xC1\x44\x31\ xE0\x35\xC3\x25\x34\x80\x89\x0B\x89\xC1\x35\xC3\x2 5\x34\x80\xC1\xC0\x02\x33\x03\x89\x0B\x89\xC1\x35\ xC3\x25\x34\x80\xC1\xC0\x04\x33\x03\x89\x0B\x89\xC 1\x35\xC3\x25\x34\x80\xC1\xC0\x06\x33\x03\x89\x0B\ x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x08\x33\x03\x8 9\xC2\x35\xC3\x25\x34\x80\xC1\xC0\x0A\x89\x13\x31\ xC8\x85\xED\x48\x8B\x6C\x24\x58\x89\x43\x04\x41\x8 9\xC4\x89\xC2\x89\x44\x24\x34\x74\x27\x48\x8D\x4C\ x24\x34\xE8\x00\x00\x00\x00\x5A\x48\x81\xEA\x5D\x1 E\x00\x00\x48\x8B\x12\x48\x03\x52\x20\xE8\x55\xFE\ xFF\xFF\x8B\x54\x24\x34\x44\x8B\x4C\x24\x30\x8B\x0 3\x48\x8B\x7C\x24\x48\x31\xD0\x89\xC1\x44\x31\xE0\ x4C\x8B\x64\x24\x40\x35\x4A\x00\x2C\x5B\x89\x0B\x8 9\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x05\x33\x03\x89\ x0B\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0A\x33\x0 3\x89\x0B\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0F\ x33\x03\x89\x0B\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC 0\x14\x33\x03\x89\x0B\x89\xC1\x35\x4A\x00\x2C\x5B\ xC1\xC0\x19\x33\x03\x48\x85\xF6\x89\x0B\x89\x43\x0 4\x48\x8B\x5C\x24\x60\x74\x06\x44\x89\x0E\x89\x56\ x04\x48\x8B\x74\x24\x50\x48\x83\xC4\x68\xC3\x48\x8 3\xEC\x08\x4C\x8D\x0C\x24\x41\xB8\x01\x00\x00\x00\ x49\x89\x09\x8B\x41\x5C\x48\xC1\xE0\x20\x8B\x49\x1 2\x48\x09\xC1\x48\x89\xCA\x48\x83\xC2\x08\xE8\x6E\ xFE\xFF\xFF\x48\x83\xC4\x08\xC3\x49\x89\xE3\x48\x8 3\xEC\x68\x49\x89\x5B\xF8\x48\x89\xCB\x49\x89\x6B\ xF0\x49\x89\x73\xE8\x49\x89\x7B\xE0\x4C\x89\xCF\x4 4\x8B\x09\x4D\x89\x63\xD8\x45\x89\xC4\x44\x89\xC8\ x48\x89\xD6\x35\x4A\x00\x2C\x5B\xC1\xC0\x19\x33\x4 1\x04\x44\x89\x49\x04\x89\x01\x89\xC1\x35\x4A\x00\ x2C\x5B\xC1\xC0\x14\x89\x4B\x04\x44\x31\xC8\x89\xC 1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0F\x33\x43\x04\x89\ x4B\x04\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0A\x3 3\x43\x04\x89\x4B\x04\x89\xC1\x35\x4A\x00\x2C\x5B\ xC1\xC0\x05\x33\x43\x04\x89\x4B\x04\x89\xC1\x8B\x4 3\x04\x31\xC8\x89\x4B\x04\x35\x4A\x00\x2C\x5B\x45\ x85\xE4\x89\x03\x89\xC5\x41\x89\xC0\x89\x44\x24\x3 4\x74\x37\x48\x8B\x07\x49\x8D\x4B\xCC\x44\x0F\xB7\ x48\x1E\x44\x0F\xB7\x40\x0C\x0F\xB7\x50\x08\x49\x8 9\x4B\xB8\xE8\x00\x00\x00\x00\x5A\x48\x81\xEA\xE1\ x1F\x00\x00\x48\x8B\x12\x48\x03\x52\x20\xE8\xD1\xF C\xFF\xFF\x44\x8B\x44\x24\x34\x8B\x43\x04\x44\x31\ xC0\x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x0A\x89\x4 B\x04\x31\xE8\x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\ x08\x33\x43\x04\x89\x4B\x04\x89\xC1\x35\xC3\x25\x3 4\x80\xC1\xC0\x06\x33\x43\x04\x89\x4B\x04\x89\xC1\ x35\xC3\x25\x34\x80\xC1\xC0\x04\x33\x43\x04\x89\x4 B\x04\x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x02\x33\ x43\x04\x89\xC2\x89\xC8\x31\xD0\x89\x53\x04\x35\xC 3\x25\x34\x80\x45\x85\xE4\x4C\x8B\x64\x24\x40\x89\ x03\x89\xC5\x89\xC1\x89\x44\x24\x30\x74\x3D\x48\x8 B\x07\x48\x8D\x4C\x24\x30\x44\x0F\xB7\x48\x1E\x44\ x0F\xB7\x40\x0C\x0F\xB7\x50\x08\x48\x89\x4C\x24\x2 0\xE8\x00\x00\x00\x00\x5A\x48\x81\xEA\x8E\x20\x00\ x00\x48\x8B\x12\x48\x03\x52\x20\xE8\x24\xFC\xFF\xF F\x44\x8B\x44\x24\x34\x8B\x4C\x24\x30\x8B\x43\x04\ x48\x8B\x7C\x24\x48\x89\x6B\x04\x48\x8B\x6C\x24\x5 8\x31\xC8\x48\x85\xF6\x89\x03\x48\x8B\x5C\x24\x60\ x74\x06\x89\x0E\x44\x89\x46\x04\x48\x8B\x74\x24\x5 0\x48\x83\xC4\x68\xC3\x48\x83\xEC\x08\x4C\x8D\x0C\ x24\x41\xB8\x01\x00\x00\x00\x49\x89\x09\x8B\x41\x5 C\x48\xC1\xE0\x20\x8B\x49\x12\x48\x09\xC1\x48\x89\ xCA\x48\x83\xC2\x08\xE8\x23\xFE\xFF\xFF\x48\x83\xC 4\x08\xC3\x48\x89\xE0\x48\x81\xEC\xE8\x00\x00\x00\ x48\x89\x58\x08\x48\x89\x68\x10\x48\x89\x70\x18\x4 8\x89\x78\x20\x4C\x89\x60\xF8\x4C\x89\x68\xF0\x4C\ x89\x70\xE8\x4C\x89\x78\xE0\xB8\x08\x00\x00\x00\x4 4\x8D\x72\x07\x41\x89\xD7\x4C\x89\xC5\x41\xC1\xEE\ x03\x41\x83\xE7\x07\x48\x89\xCB\x44\x0F\x44\xF8\x4 5\x31\xC9\x41\x8D\x46\xFF\x85\xC0\x44\x89\x7C\x24\ x28\x44\x89\x4C\x24\x24\x45\x89\xC8\x44\x89\x4C\x2 4\x20\x45\x89\xCD\x45\x8D\x51\x02\x0F\x84\x7A\x02\ x00\x00\x48\x8B\x7C\x24\x30\x44\x8B\x64\x24\x54\x4 D\x89\xD7\x44\x31\x03\x44\x31\x4B\x04\x45\x85\xED\ x8B\x0B\x8B\x53\x04\x0F\x85\x16\x01\x00\x00\x45\x3 9\xFE\x0F\x86\xDB\x00\x00\x00\x66\x44\x89\x6D\x10\ x48\x8B\x03\x48\x89\xE9\x48\x89\x44\x24\x38\x48\x8 D\x44\x24\x38\x48\x89\x7C\x24\x40\x89\x45\x12\x48\ x8D\x44\x24\x38\x66\x44\x89\x7D\x16\x48\xC1\xE8\x2 0\x66\x44\x89\x6D\x3E\x89\x45\x5C\xE8\x1C\xFD\xFF\ xFF\x48\x8B\x7C\x24\x40\x48\x8B\x44\x24\x38\x48\x8 9\x7C\x24\x30\x8B\x74\x24\x34\x48\x89\x03\x89\x7C\ x24\x50\x48\x8D\x54\x24\x54\x66\x44\x89\x6D\x16\x4 5\x8D\x45\x05\x8B\x4A\xFC\x48\x83\xC2\x14\x8D\x04\ x31\x83\xE1\x1F\x89\x42\xEC\x89\xF8\xD3\xC8\x31\x4 4\x24\x54\x8B\x4A\xEC\x8D\x04\x31\x83\xE1\x1F\x89\ x42\xF0\x89\xF8\xD3\xC8\x31\x44\x24\x54\x8B\x4A\xF 0\x8D\x04\x31\x83\xE1\x1F\x89\x42\xF4\x89\xF8\xD3\ xC8\x31\x44\x24\x54\x8B\x4A\xF4\x8D\x04\x31\x83\xE 1\x1F\x89\x42\xF8\x89\xF8\xD3\xC8\x31\x44\x24\x54\ x8B\x4A\xF8\x8D\x04\x31\x83\xE1\x1F\x89\x42\xFC\x4 4\x8B\x64\x24\x54\x89\xF8\xD3\xC8\x41\x31\xC4\x49\ xFF\xC8\x44\x89\x64\x24\x54\x75\x8A\xE9\x42\x01\x0 0\x00\x48\x89\xD8\x48\x89\xE9\x66\xC7\x45\x10\x00\ x00\x48\xC1\xE8\x20\x66\xC7\x45\x16\x01\x00\x66\xC 7\x45\x3E\x00\x00\x89\x45\x5C\x89\x5D\x12\xE8\x52\ xFC\xFF\xFF\x66\xC7\x45\x16\x00\x00\xE9\x10\x01\x0 0\x00\x8B\x44\x24\x50\x46\x8D\x04\x21\x4C\x8D\x4C\ x24\x5C\x8D\x34\x02\x44\x89\x03\x4D\x89\xFA\x89\x7 3\x04\x44\x89\xC1\x44\x89\xC2\x49\x83\xC1\x30\xC1\ xE9\x04\x31\xF2\x83\xE1\x1F\xD3\xC2\x41\x2B\x51\xC C\x41\x31\xD0\x89\xD1\xC1\xE9\x07\x83\xE1\x1F\x41\ xD3\xC0\x45\x03\x41\xD0\x44\x89\xC1\x44\x89\xC6\xC 1\xE9\x04\x31\xD6\x83\xE1\x1F\xD3\xC6\x41\x2B\x71\ xD4\x41\x31\xF0\x89\xF1\xC1\xE9\x07\x83\xE1\x1F\x4 1\xD3\xC0\x45\x03\x41\xD8\x44\x89\xC1\x44\x89\xC2\ xC1\xE9\x04\x31\xF2\x83\xE1\x1F\xD3\xC2\x41\x2B\x5 1\xDC\x41\x31\xD0\x89\xD1\xC1\xE9\x07\x83\xE1\x1F\ x41\xD3\xC0\x45\x03\x41\xE0\x44\x89\xC1\x44\x89\xC 6\xC1\xE9\x04\x31\xD6\x83\xE1\x1F\xD3\xC6\x41\x2B\ x71\xE4\x41\x31\xF0\x89\xF1\xC1\xE9\x07\x83\xE1\x1 F\x41\xD3\xC0\x45\x03\x41\xE8\x44\x89\xC1\x44\x89\ xC2\xC1\xE9\x04\x31\xF2\x83\xE1\x1F\xD3\xC2\x41\x2 B\x51\xEC\x41\x31\xD0\x89\xD1\xC1\xE9\x07\x83\xE1\ x1F\x41\xD3\xC0\x45\x03\x41\xF0\x44\x89\xC1\x44\x8 9\xC6\xC1\xE9\x04\x31\xD6\x83\xE1\x1F\xD3\xC6\x41\ x2B\x71\xF4\x41\x31\xF0\x89\xF1\xC1\xE9\x07\x83\xE 1\x1F\x41\xD3\xC0\x45\x03\x41\xF8\x49\xFF\xCA\x0F\ x85\x0F\xFF\xFF\xFF\x44\x89\x03\x89\x73\x04\x44\x8 B\x03\x44\x8B\x4B\x04\x41\x8D\x46\xFF\x41\xFF\xC5\ x48\x83\xC3\x08\x44\x89\x44\x24\x20\x41\x39\xC5\x4 4\x89\x4C\x24\x24\x0F\x82\xA0\xFD\xFF\xFF\x44\x8B\ x7C\x24\x28\x41\xBA\x02\x00\x00\x00\xEB\x05\x44\x8 B\x64\x24\x54\x45\x85\xFF\x4C\x8B\xAC\x24\xD8\x00\ x00\x00\x74\x2C\x48\x8D\x44\x24\x20\x48\x89\xDF\x4 8\x8D\x4C\x24\x20\x48\x29\xC7\x44\x89\xFA\x0F\xB6\ x04\x0F\x48\xFF\xC1\x30\x41\xFF\x48\xFF\xCA\x75\xF 1\x44\x8B\x4C\x24\x24\x44\x8B\x44\x24\x20\x41\x83\ xFE\x02\x0F\x86\xFF\x00\x00\x00\x44\x03\x4C\x24\x5 0\x48\x8D\x74\x24\x5C\x45\x01\xE0\x44\x89\xC1\x44\ x89\xC2\x48\x83\xC6\x30\xC1\xE9\x04\x44\x31\xCA\x8 3\xE1\x1F\xD3\xC2\x2B\x56\xCC\x41\x31\xD0\x89\xD1\ xC1\xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xD 0\x44\x89\xC1\x44\x89\xC7\xC1\xE9\x04\x31\xD7\x83\ xE1\x1F\xD3\xC7\x2B\x7E\xD4\x41\x31\xF8\x89\xF9\xC 1\xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xD8\ x44\x89\xC1\x44\x89\xC2\xC1\xE9\x04\x31\xFA\x83\xE 1\x1F\xD3\xC2\x2B\x56\xDC\x41\x31\xD0\x89\xD1\xC1\ xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xE0\x4 4\x89\xC1\x44\x89\xC7\xC1\xE9\x04\x31\xD7\x83\xE1\ x1F\xD3\xC7\x2B\x7E\xE4\x41\x31\xF8\x89\xF9\xC1\xE 9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xE8\x44\ x89\xC1\x44\x89\xC2\xC1\xE9\x04\x31\xFA\x83\xE1\x1 F\xD3\xC2\x2B\x56\xEC\x41\x31\xD0\x89\xD1\xC1\xE9\ x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xF0\x44\x8 9\xC1\x45\x89\xC1\xC1\xE9\x04\x41\x31\xD1\x83\xE1\ x1F\x41\xD3\xC1\x44\x2B\x4E\xF4\x45\x31\xC8\x44\x8 9\xC9\xC1\xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\ x46\xF8\x49\xFF\xCA\x0F\x85\x10\xFF\xFF\xFF\xEB\x5 1\x41\x83\xFE\x01\x75\x0D\x8B\x03\x89\x44\x24\x20\ x8B\x43\x04\x89\x44\x24\x24\x48\x8D\x44\x24\x20\x4 8\x89\xE9\x66\xC7\x45\x10\x00\x00\x89\x45\x12\x48\ x8D\x44\x24\x20\x66\xC7\x45\x16\x01\x00\x48\xC1\xE 8\x20\x66\xC7\x45\x3E\x00\x00\x89\x45\x5C\xE8\x7D\ xF9\xFF\xFF\x44\x8B\x4C\x24\x24\x44\x8B\x44\x24\x2 0\x66\xC7\x45\x16\x00\x00\x4C\x8B\xA4\x24\xE0\x00\ x00\x00\x48\x8B\xAC\x24\xF8\x00\x00\x00\x41\x83\xF E\x01\x4C\x8B\xB4\x24\xD0\x00\x00\x00\x76\x1B\x45\ x85\xFF\x74\x0C\x48\x8D\x73\xF8\x44\x89\xF9\x48\x8 9\xDF\xF3\xA4\x44\x89\x43\xF8\x44\x89\x4B\xFC\xEB\ x07\x44\x89\x03\x44\x89\x4B\x04\x4C\x8B\xBC\x24\xC 8\x00\x00\x00\x48\x8B\xBC\x24\x08\x01\x00\x00\x48\ x8B\xB4\x24\x00\x01\x00\x00\x48\x8B\x9C\x24\xF0\x0 0\x00\x00\x48\x81\xC4\xE8\x00\x00\x00\xC3\x48\x89\ xE0\x48\x81\xEC\xF8\x00\x00\x00\x48\x89\x58\x08\x4 8\x89\x68\x10\x48\x89\x70\x18\x48\x89\x78\x20\x4C\ x89\x60\xF8\x4C\x89\x68\xF0\x4C\x89\x70\xE8\x4C\x8 9\x78\xE0\x48\x89\xCB\x8D\x4A\x07\x89\xD0\xBA\x08\ x00\x00\x00\xC1\xE9\x03\x83\xE0\x07\x4C\x89\xC7\x0 F\x44\xC2\x45\x31\xFF\x83\xF9\x01\x89\x4C\x24\x30\ x44\x8D\x62\x04\x44\x89\x7C\x24\x2C\x44\x89\x7C\x2 4\x34\x44\x89\x7C\x24\x28\x45\x89\xFE\x89\x44\x24\ x38\x0F\x86\x9F\x01\x00\x00\x83\xC1\xFE\x44\x89\xF E\x89\x4C\x24\x20\x0F\x84\x8F\x01\x00\x00\x48\x8B\ x44\x24\x40\x44\x8B\x6C\x24\x64\x8B\x6C\x24\x60\x8 5\xF6\x44\x8B\x03\x44\x8B\x73\x04\x45\x89\xC7\x44\ x89\x44\x24\x28\x0F\x85\xEE\x00\x00\x00\x48\x89\x4 4\x24\x50\x48\x8D\x44\x24\x48\x66\x89\x77\x10\x48\ x8B\x0B\x89\x47\x12\x48\x8D\x44\x24\x48\x48\xC1\xE 8\x20\x48\x89\x4C\x24\x48\x48\x89\xF9\x66\xC7\x47\ x16\x02\x00\x66\x89\x77\x3E\x89\x47\x5C\xE8\x0E\xF A\xFF\xFF\x48\x8B\x44\x24\x48\x4C\x8D\x44\x24\x64\ x48\x89\x03\x48\x8B\x44\x24\x50\x44\x8D\x56\x05\x4 8\x89\x44\x24\x40\x44\x8B\x4C\x24\x44\x66\x89\x77\ x16\x89\x44\x24\x60\x41\x8B\x48\xFC\x49\x83\xC0\x1 4\x42\x8D\x14\x09\x83\xE1\x1F\x41\x89\x50\xEC\x89\ xC2\xD3\xCA\x31\x54\x24\x64\x41\x8B\x48\xEC\x42\x8 D\x14\x09\x83\xE1\x1F\x41\x89\x50\xF0\x89\xC2\xD3\ xCA\x31\x54\x24\x64\x41\x8B\x48\xF0\x42\x8D\x14\x0 9\x83\xE1\x1F\x41\x89\x50\xF4\x89\xC2\xD3\xCA\x31\ x54\x24\x64\x41\x8B\x48\xF4\x42\x8D\x14\x09\x83\xE 1\x1F\x41\x89\x50\xF8\x89\xC2\xD3\xCA\x31\x54\x24\ x64\x41\x8B\x48\xF8\x42\x8D\x14\x09\x83\xE1\x1F\x4 1\x89\x50\xFC\x44\x8B\x6C\x24\x64\x89\xC2\xD3\xCA\ x41\x31\xD5\x49\xFF\xCA\x44\x89\x6C\x24\x64\x0F\x8 5\x77\xFF\xFF\xFF\x8B\x6C\x24\x60\xEB\x4B\x45\x89\ xE3\x45\x89\xF1\x4C\x8D\x94\x24\xC0\x00\x00\x00\x4 5\x2B\x42\x04\x44\x89\xC9\x49\x83\xEA\x08\xC1\xE9\ x07\x83\xE1\x1F\x41\xD3\xC8\x45\x31\xC8\x45\x03\x4 A\x08\x44\x89\xC1\xC1\xE9\x04\x83\xE1\x1F\x41\xD3\ xC9\x45\x31\xC1\x41\x83\xC3\xFF\x75\xD0\x45\x29\xE 8\x41\x29\xE9\x44\x89\x4B\x04\x44\x89\x03\x8B\x4C\ x24\x34\xFF\xC6\x48\x83\xC3\x08\x31\x4B\xF8\x8B\x4 C\x24\x2C\x44\x89\x7C\x24\x34\x31\x4B\xFC\x3B\x74\ x24\x20\x44\x89\x74\x24\x2C\x0F\x82\x88\xFE\xFF\xF F\x8B\x44\x24\x38\x45\x31\xFF\xEB\x09\x44\x8B\x6C\ x24\x64\x8B\x6C\x24\x60\x85\xC0\x44\x89\x7C\x24\x2 0\x44\x89\xFE\x44\x89\x7C\x24\x24\x74\x1A\x48\x8D\ x53\x08\x48\x8D\x4C\x24\x20\x41\x89\xC0\xE8\xB8\xE D\xFF\xFF\x8B\x74\x24\x24\x44\x8B\x7C\x24\x20\x44\ x8B\x5C\x24\x30\x41\x83\xFB\x01\x75\x32\x48\x89\xD 8\x48\x89\xF9\x66\xC7\x47\x10\x00\x00\x48\xC1\xE8\ x20\x66\xC7\x47\x16\x01\x00\x66\xC7\x47\x3E\x00\x0 0\x89\x47\x5C\x89\x5F\x12\xE8\x75\xF8\xFF\xFF\x66\ xC7\x47\x16\x00\x00\xE9\x29\x01\x00\x00\x41\x83\xF B\x02\x75\x34\x48\x89\xD8\x48\x89\xF9\x66\xC7\x47\ x10\x00\x00\x48\xC1\xE8\x20\x66\xC7\x47\x16\x01\x0 0\x66\xC7\x47\x3E\x00\x00\x89\x47\x5C\x89\x5F\x12\ xE8\x3D\xF8\xFF\xFF\x44\x8B\x5C\x24\x30\x66\xC7\x4 7\x16\x00\x00\xEB\x55\x8B\x13\x44\x8B\x43\x04\x45\ x89\xE2\x4C\x8D\x8C\x24\xC0\x00\x00\x00\x41\x2B\x5 1\x04\x44\x89\xC1\x49\x83\xE9\x08\xC1\xE9\x07\x83\ xE1\x1F\xD3\xCA\x44\x31\xC2\x45\x03\x41\x08\x89\xD 1\xC1\xE9\x04\x83\xE1\x1F\x41\xD3\xC8\x41\x31\xD0\ x41\x83\xC2\xFF\x75\xD2\x44\x29\xEA\x41\x29\xE8\x4 1\x83\xFB\x01\x89\x13\x44\x89\x43\x04\x0F\x86\x9A\ x00\x00\x00\x44\x33\x3B\x33\x73\x04\x8B\x44\x24\x3 8\x85\xC0\x44\x89\x7C\x24\x20\x89\x74\x24\x24\x74\ x31\x4C\x8D\x44\x24\x20\x49\x89\xD9\x48\x8D\x4B\x0 8\x4D\x29\xC1\x49\x89\xC0\x48\x8D\x54\x24\x20\x0F\ xB6\x01\x48\xFF\xC1\x48\xFF\xC2\x49\xFF\xC8\x41\x8 8\x44\x11\xFF\x0F\xB6\x42\xFF\x88\x41\xFF\x75\xE6\ x41\x83\xFB\x02\x0F\x84\xED\xFE\xFF\xFF\x8B\x13\x4 4\x8B\x43\x04\x4C\x8D\x8C\x24\xC0\x00\x00\x00\x41\ x2B\x51\x04\x44\x89\xC1\x49\x83\xE9\x08\xC1\xE9\x0 7\x83\xE1\x1F\xD3\xCA\x44\x31\xC2\x45\x03\x41\x08\ x89\xD1\xC1\xE9\x04\x83\xE1\x1F\x41\xD3\xC8\x41\x3 1\xD0\x41\x83\xC4\xFF\x75\xD2\x44\x29\xEA\x41\x29\ xE8\x44\x89\x43\x04\x89\x13\x8B\x44\x24\x28\x4C\x8 B\xBC\x24\xD8\x00\x00\x00\x4C\x8B\xAC\x24\xE8\x00\ x00\x00\x31\x03\x44\x31\x73\x04\x4C\x8B\xA4\x24\xF 0\x00\x00\x00\x4C\x8B\xB4\x24\xE0\x00\x00\x00\x48\ x8B\x9C\x24\x00\x01\x00\x00\x48\x8B\xBC\x24\x18\x0 1\x00\x00\x48\x8B\xB4\x24\x10\x01\x00\x00\x48\x8B\ xAC\x24\x08\x01\x00\x00\x48\x81\xC4\xF8\x00\x00\x0 0\xC3\xCC\xCC\xCC\xCC\x57\x59\xE9\xF9\xD5\xFF\xFF' )

fullfname=os.getcwd()+'/backbas.so'


a=0xBA
unipatch[a:a+4]=SERVER_KEY_PASSWORD
a=a+4
unipatch[a:a+4]=SERVER_KEY_SN
a=a+4
unipatch[a:a+4]=SERVER_KEY_HASPTYPE
a=a+4
unipatch[a:a+4]=SERVER_KEY_MEMORYSIZE
a=a+6
unipatch[a:a+8]=SERVER_KEY_SecTable
a=a+0x48
unipatch[a:a+0x70]=SERVER_KEY_Data
a=a+0x70
unipatch[a:a+2]=SERVER_KEY_LicNum


a=0x112E
unipatch[a:a+4]=CLIENT_KEY_PASSWORD
a=a+4
unipatch[a:a+4]=CLIENT_KEY_SN
a=a+4
unipatch[a:a+4]=CLIENT_KEY_HASPTYPE
a=a+4
unipatch[a:a+4]=CLIENT_KEY_MEMORYSIZE
a=a+6
unipatch[a:a+8]=CLIENT_KEY_SecTable
a=a+0x48
unipatch[a:a+0x70]=CLIENT_KEY_Data
a=a+0x70
unipatch[a:a+2]=CLIENT_KEY_LicNum


try:
fp = open(fullfname, 'r+')
if os.stat(fp.name).st_size > 0:
mm = mmap.mmap(fp.fileno(), 0)

# WTF? "to smoke": man 5 elf
if mm[0]!=0x7f or mm[1]!=0x45 or mm[2]!=0x4C or mm[3]!=0x46 or mm[4]!=2 or mm[5]!=1 or mm[6]!=1 or mm[16]!=3 or mm[17]!=0 or mm[18]!=0x3E or mm[19]!=0:
print ("what a fuck are you giving me?")
sys.exit()
e_phoff = mm[0x20]+(mm[0x21]+(mm[0x22]+(mm[0x23]<<8)<<8)<<8)
print (f"e_phoff = {hex(e_phoff)}")
e_phentsize = mm[0x36]+(mm[0x37]<<8)
print (f"e_phentsize = {hex(e_phentsize)}")
e_phnum = mm[0x38]+(mm[0x39]<<8)
print (f"e_phnum = {hex(e_phnum)}")
for i in range(e_phnum):
p = e_phoff + i * e_phentsize
p_type = mm[p]+(mm[p+1]+(mm[p+2]+(mm[p+3]<<8)<<8)<<8)
p_flags = mm[p+4]+(mm[p+5]+(mm[p+6]+(mm[p+7]<<8)<<8)<<8)
if (p_type==1 and p_flags==5):
print(f"p_type={hex(p_type)}, p_flags={hex(p_flags)}")
print(f"mm[{hex(p+4)}] += PF_W")
mm[p+4] = 7
break
else:
print(f"p_type={hex(p_type)}, p_flags={hex(p_flags)}")
pattern_addr = mm.find(pattern)
if pattern_addr != -1:
unipatch_addr=pattern_addr-0x2A75
print (f"patching {fullfname} at offset={hex(unipatch_addr)}")
mm[unipatch_addr:unipatch_addr+0x2A07] = unipatch

mm.close()
except IOError as e:
print (f"I/O error({e.errno}): {e.strerror}, filename={fullfname}")



print ('#############_SERVER_KEY_INFO_#################' , sep='', end='')
print ('')
a=0xBA
print ('SERVER_KEY_PASSWORD:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('SERVER_KEY_SN:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('SERVER_KEY_HASPTYPE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('SERVER_KEY_MEMORYSIZE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+6
print ('SERVER_KEY_SecTable:', sep='', end=' ')
for i in range(a,a+8):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+0x48
print ('SERVER_KEY_Data:', sep='', end='\n')
for i in range(a,a+0x70,16):
for k in range(0,16):
print (format(unipatch[i+k],'02X'), sep='', end=' ')
print ('')
a=a+0x70
print ('SERVER_KEY_LicNum:', sep='', end=' ')
for i in range(a,a+2):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')

print ('#############_CLIENT_KEY_INFO_#################' , sep='', end='')
print ('')
a=0x112E
print ('CLIENT_KEY_PASSWORD:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('CLIENT_KEY_SN:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('CLIENT_KEY_HASPTYPE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('CLIENT_KEY_MEMORYSIZE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+6
print ('CLIENT_KEY_SecTable:', sep='', end=' ')
for i in range(a,a+8):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+0x48
print ('CLIENT_KEY_Data:', sep='', end='\n')
for i in range(a,a+0x70,16):
for k in range(0,16):
print (format(unipatch[i+k],'02X'), sep='', end=' ')
print ('')

a=a+0x70
print ('CLIENT_KEY_LicNum:', sep='', end=' ')
for i in range(a,a+2):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')

HPDX2300
17.01.2023, 21:38
годится тока для изделий под линукс-х64:
1) берём МС и находим в модулях четыре процитированных выше SN
2) в модулях изделия hex редактором забиваем эти SN нулями (00 00 00 00)
3) применяем унипатч со старыми дампами (см. пост #21 от 21.06.2022)

речь шла о backbas.so и vrsbase.so

#!/usr/bin/env python3
import sys, os, glob, mmap

try:
fullfname=os.getcwd()+'/backbas.so'
fp = open(fullfname, 'r+')
mm = mmap.mmap(fp.fileno(), 0)

pattern_addr = mm.find(b'\x32\x1E\xED\x08')
if pattern_addr != -1:
print (f"patching SN=08ED1E32 in {fullfname} at offset={hex(pattern_addr)}")
mm[pattern_addr:pattern_addr+4] = b'\x00\x00\x00\x00'

pattern_addr = mm.find(b'\xD6\xC5\x93\x1B')
if pattern_addr != -1:
print (f"patching SN=1B93C5D6 in {fullfname} at offset={hex(pattern_addr)}")
mm[pattern_addr:pattern_addr+4] = b'\x00\x00\x00\x00'

pattern_addr = mm.find(b'\x71\xCF\x1D\x28')
if pattern_addr != -1:
print (f"patching SN=281DCF71 in {fullfname} at offset={hex(pattern_addr)}")
mm[pattern_addr:pattern_addr+4] = b'\x00\x00\x00\x00'

pattern_addr = mm.find(b'\xA1\x77\xEE\x5C')
if pattern_addr != -1:
print (f"patching SN=5CEE77A1 in {fullfname} at offset={hex(pattern_addr)}")
mm[pattern_addr:pattern_addr+4] = b'\x00\x00\x00\x00'

mm.close()




fullfname=os.getcwd()+'/vrsbase.so'
fp = open(fullfname, 'r+')
mm = mmap.mmap(fp.fileno(), 0)

pattern_addr = mm.find(b'\x32\x1E\xED\x08')
if pattern_addr != -1:
print (f"patching SN=08ED1E32 in {fullfname} at offset={hex(pattern_addr)}")
mm[pattern_addr:pattern_addr+4] = b'\x00\x00\x00\x00'

pattern_addr = mm.find(b'\xD6\xC5\x93\x1B')
if pattern_addr != -1:
print (f"patching SN=1B93C5D6 in {fullfname} at offset={hex(pattern_addr)}")
mm[pattern_addr:pattern_addr+4] = b'\x00\x00\x00\x00'

pattern_addr = mm.find(b'\x71\xCF\x1D\x28')
if pattern_addr != -1:
print (f"patching SN=281DCF71 in {fullfname} at offset={hex(pattern_addr)}")
mm[pattern_addr:pattern_addr+4] = b'\x00\x00\x00\x00'

pattern_addr = mm.find(b'\xA1\x77\xEE\x5C')
if pattern_addr != -1:
print (f"patching SN=5CEE77A1 in {fullfname} at offset={hex(pattern_addr)}")
mm[pattern_addr:pattern_addr+4] = b'\x00\x00\x00\x00'

mm.close()

except IOError as e:
print (f"I/O error({e.errno}): {e.strerror}, filename={fullfname}")

HPDX2300
18.01.2023, 12:03
в скрипте была опечатка (\\x вместо \x), редактировать уже не дает - повторим его

Алгоритм вычисления Data=function(SN) "придуманных" дампов доработан.
Используйте ТГ-бота https://t.me/mimomutagen_bot на свой страх и риск (я не его автор).
Не следует ожидать совпадения поля Data с реальными данными из физических ключей с таким же SN - секта не давала посмотреть исходники.
Данные в поле Data созданы так, чтобы они прошли 2-х этапную проверку в коде изделия.

Унипатч доработан так, чтобы можно было легко изменять в текстовом редакторе используемые им дампы.
В первых строках скрипта меняете пары {SERVER_KEY_SN, SERVER_KEY_Data} и {CLIENT_KEY_SN, CLIENT_KEY_Data}.

Унипатч теперь правильно эмулирует сетевой HASP-API, в диалоге "About" отображается число спартанцев сетевого ключа.
Это на практике проявляется так: сперва вы запускали изделие с помощью парочки эмулятор+HASPLM, изделие запомнило в файле 1cv8conn.pfl последний успешный путь получения лицензии на запуск (от сетевого HASPLM), при следующем запуске читается файл 1cv8conn.pfl и выполняется попытка получить лицензию также как прошлый раз. Если теперь либа патчена унипатчем, то унипатч честно выполнит эмуляцию сетевого HASPLM, и в диалоге "О программе" --> "Лицензия:" будет написано "Текущая: Сетевой HASP4 ORGL8 100" (Сетевой, а не локальный)

Порядок байтов во всех полях, и, в частности, в CLIENT_KEY_SN - как в исполняемых модулях для процессора Intel - младший байт идет первым

Я подставил в скрипте данные из публичных дампов от мультика с непалёными SN.
Внимание: не все поля в дампе надо менять. Впрочем, делайте как хотите, ибо это допускается.
Выхлоп скрипта в stdout будет содержать инфу о дампах SERVER_KEY и CLIENT_KEY.

повторим для "чайников":
это патчер изделия для линукса-x64
код ниже сохранить в файл unipatch.py
запускать так (либа бэкбейс должна быть рядом - в том же каталоге):
python3 unipatch.py
если предварительно выполнить:
chmod +x unipatch.py
, то запускать можно будеть так:
./unipatch.py


#!/usr/bin/env python3
import sys, os, glob, mmap

SERVER_KEY_PASSWORD = bytearray(b'\x7A\x23\x25\x41')
SERVER_KEY_SN = bytearray(b'\x9E\xAE\xA3\x33')
SERVER_KEY_HASPTYPE = bytearray(b'\x01\x00\x00\x00')
SERVER_KEY_MEMORYSIZE=bytearray(b'\x01\x00\x00\x00 ')
SERVER_KEY_SecTable =bytearray(b'\x15\xea\x8f\xea\x73\xea\xeb\xea')
SERVER_KEY_Data=bytearray(b'\
\x01\x00\x00\x00\x00\x00\x00\xE0\x6E\xF3\x62\xF8\x 08\x0A\xEF\x77\
\xCB\x1E\xFD\xDD\xFA\x76\xFF\x43\xF9\x3E\xC9\xEF\x A5\x61\xA1\xC3\
\x72\x9F\x8C\xCA\x35\xD4\x3E\x66\x79\x1F\x3F\x32\x 51\x36\x5C\x00\
\x03\xCD\xBE\x20\x2E\x72\x54\xE9\xEC\x7E\x5C\xC3\x D6\x3F\xCA\x4B\
\x4B\x8D\xED\xEA\x13\xCA\xA5\xA8\x5E\x4C\xD6\x4D\x 60\xAF\xF1\xAD\
\xD7\x80\x15\xB8\xEE\xA9\x8B\x4A\xAB\xA7\x29\xA0\x 55\x9A\x55\xE0\
\x30\xD7\xDA\x1C\xD8\x83\xBB\xF6\x6A\x03\xB1\x05\x BF\x2B\x9A\x93')
SERVER_KEY_LicNum = bytearray(b'\x01\x00')

CLIENT_KEY_PASSWORD = bytearray(b'\xCB\x70\x6D\x3B')
CLIENT_KEY_SN = bytearray(b'\xD5\x77\xDD\x26')
CLIENT_KEY_HASPTYPE = bytearray(b'\x0A\x00\x00\x00')
CLIENT_KEY_MEMORYSIZE=bytearray(b'\x04\x00\x00\x00 ')
CLIENT_KEY_SecTable =bytearray(b'\x9A\x21\x2C\x25\xDE\x65\x6C\x65')
CLIENT_KEY_Data=bytearray(b'\
\x01\x00\x00\x00\x00\x00\x00\x40\xDF\xAF\x94\xAE\x 97\x17\x47\xD5\
\x08\x77\xC3\x10\xA2\x8E\xFE\xA6\xFF\x39\x40\x01\x 57\xA4\x9B\xBD\
\xFE\xBA\x1D\x82\xED\xFF\xA3\x50\xA7\x6F\x97\x74\x 38\x02\x78\xCA\
\x89\xCC\x65\x98\x61\x2C\x7D\x94\xB4\x5A\x52\xD4\x 93\xF7\x25\x5F\
\x50\xCB\xDB\xC3\x62\xAA\x4D\x44\x61\x66\x56\xAA\x 75\xA6\x07\x70\
\x0A\x35\x03\xB7\x65\x4F\x07\xB2\x84\x7B\xB6\xEF\x 4D\x65\x1B\x45\
\x12\x19\x0C\x96\xEE\xAF\x57\x91\x50\x21\x07\xD4\x AC\x20\x55\xCB')
CLIENT_KEY_LicNum = bytearray(b'\x64\x00')

pattern = bytearray(b'\x41\x81\x78\x08\x6C\x68\x73\x68')
unipatch = bytearray(b'\x51\x53\x52\x57\x56\xE8\x88\x13\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\xA0\x00\x00\x00\x00\x00\x00\x00\x A4\x00\x00\x00\x00\x00\x00\x00\xA8\x00\x00\x00\x00 \x00\x00\x00\xAC\x00\x00\x00\x00\x00\x00\x00\xB0\x 00\x00\x00\x00\x00\x00\x00\xB1\x00\x00\x00\x00\x00 \x00\x00\xB2\x00\x00\x00\x00\x00\x00\x00\xFA\x00\x 00\x00\x00\x00\x00\x00\xFA\x10\x00\x00\x00\x00\x00 \x00\x06\x11\x00\x00\x00\x00\x00\x00\xC4\x10\x00\x 00\x00\x00\x00\x00\xC8\x10\x00\x00\x00\x00\x00\x00 \xCC\x10\x00\x00\x00\x00\x00\x00\xD0\x10\x00\x00\x 00\x00\x00\x00\xD4\x10\x00\x00\x00\x00\x00\x00\xD5 \x10\x00\x00\x00\x00\x00\x00\xD6\x10\x00\x00\x00\x 00\x00\x00\x1E\x11\x00\x00\x00\x00\x00\x00\x0E\x13 \x00\x00\x00\x00\x00\x00\x1A\x13\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\xFB\x13\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x01\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x57\x 42\x50\x54\x01\x00\x00\x00\x70\x00\x00\x00\x00\x00 \x21\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\x 00\x01\x02\x4A\x1F\x01\x18\x02\x08\x01\x14\x2C\x33 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\xDB\x30\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x64\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x 00\x00\x00\x00\x00\x00\x64\x00\x00\x00\xFE\xFF\x00 \x01\x02\x4A\x1F\x01\x04\x07\x08\x01\x10\x34\x07\x 00\x5E\x48\x89\xC9\x48\x31\xC0\x48\x31\xD2\x8A\x41 \x16\x89\x06\x48\x89\xF3\x48\x83\xC6\x10\x48\x83\x F8\x01\x75\x0D\xC6\x41\x28\x01\xC6\x41\x30\x00\xE9 \x32\x02\x00\x00\x66\x8B\x51\x20\xC1\xE2\x10\x66\x 8B\x51\x24\x48\x8B\x3E\x3B\x14\x3E\x75\x02\x74\x10 \x48\x83\xC6\x50\x48\x8B\x3E\x3B\x14\x3E\x0F\x85\x 0D\x02\x00\x00\x89\x53\x04\x48\x89\x73\x08\x48\x83 \xF8\x03\x74\x06\x48\x83\xF8\x2C\x75\x21\x48\x03\x 76\x38\x48\x31\xC0\x8B\x41\x28\x48\xD1\xE0\x48\x0F \xB7\x04\x06\x89\x41\x2C\xC7\x41\x30\x00\x00\x00\x 00\xE9\xD9\x01\x00\x00\x48\x83\xF8\x68\x75\x27\x48 \x03\x76\x38\xB8\x70\x00\x00\x00\x48\x0F\xB7\x04\x 06\xC7\x41\x28\x01\x00\x00\x00\x89\x41\x2C\x89\x41 \x30\xC7\x41\x34\xFF\xFF\x00\x00\xE9\xAC\x01\x00\x 00\x48\x83\xF8\x05\x75\x2A\x48\x31\xC0\x48\x8B\x56 \x18\x8B\x04\x16\x89\x41\x28\x48\x8B\x56\x10\x8B\x 04\x16\x89\x41\x2C\xC7\x41\x30\xDE\x00\x00\x00\xC7 \x41\x34\x3C\x23\x00\x00\xE9\x7C\x01\x00\x00\x48\x 83\xF8\x06\x74\x05\x83\xF8\x2E\x75\x22\x48\x03\x76 \x08\x48\x31\xC0\x8B\x06\x48\x0F\xB7\xF8\xC1\xE8\x 10\x89\x79\x28\x89\x41\x2C\xC7\x41\x30\x00\x00\x00 \x00\xE9\x4F\x01\x00\x00\x48\x83\xF8\x28\x75\x1A\x C7\x41\x28\x00\x00\x00\x00\xC7\x41\x2C\x00\x00\x00 \x00\xC7\x41\x30\x00\x00\x00\x00\xE9\x2F\x01\x00\x 00\x48\x83\xF8\x2A\x75\x0C\xC7\x41\x30\x00\x00\x00 \x00\xE9\x1D\x01\x00\x00\x48\x83\xF8\x2B\x75\x0C\x C7\x41\x30\x00\x00\x00\x00\xE9\x0B\x01\x00\x00\x48 \x83\xF8\x30\x75\x05\xE9\x00\x01\x00\x00\x48\x83\x F8\x32\x74\x06\x48\x83\xF8\x34\x75\x32\x48\x03\x76 \x38\x48\x31\xC0\x48\x8B\x79\x40\x8B\x41\x28\x48\x D1\xE0\x48\x01\xC6\x48\x89\xC8\x48\x31\xC9\x8B\x48 \x2C\x9C\xFC\xF3\x66\xA5\x9D\x48\x89\xC1\xC7\x41\x 30\x00\x00\x00\x00\xE9\xC2\x00\x00\x00\x83\xF8\x33 \x74\x06\x48\x83\xF8\x33\x75\x35\x48\x03\x76\x38\x 48\x31\xC0\x48\x8B\x79\x40\x8B\x41\x28\x48\xD1\xE0 \x48\x01\xC6\x48\x89\xC8\x48\x31\xC9\x8B\x48\x2C\x 48\x87\xF7\x9C\xFC\xF3\x66\xA5\x9D\x48\x89\xC1\xC7 \x41\x30\x00\x00\x00\x00\xE9\x82\x00\x00\x00\x83\x F8\x3C\x74\x05\x83\xF8\x58\x75\x31\x83\x79\x2C\x08 \x72\x72\x51\x48\x81\xEC\x00\x01\x00\x00\x49\x89\x E0\x48\x31\xD2\x8B\x51\x2C\x48\x8B\x49\x40\xE8\x85 \x0B\x00\x00\x48\x81\xC4\x00\x01\x00\x00\x59\xC7\x 41\x30\x00\x00\x00\x00\xEB\x47\x83\xF8\x3D\x74\x05 \x83\xF8\x59\x75\x31\x83\x79\x2C\x08\x72\x37\x51\x 48\x31\xD2\x8B\x51\x2C\x48\x8B\x49\x40\x48\x81\xEC \x00\x01\x00\x00\x49\x89\xE0\xE8\x34\x10\x00\x00\x 48\x81\xC4\x00\x01\x00\x00\x59\xC7\x41\x30\x00\x00 \x00\x00\xEB\x0C\x83\xF8\x55\x75\x02\xEB\x05\xB8\x 78\x56\x34\x12\x5E\x5F\x5A\x5B\x59\xC3\x56\x57\x48 \x89\xD6\x48\x89\xCF\x31\xC9\x44\x89\xC1\xF3\xA4\x 5F\x5E\xC3\x48\x89\x54\x24\x10\x89\x4C\x24\x08\x48 \x83\xEC\x18\x8B\x44\x24\x20\x83\xE0\x1F\x89\x44\x 24\x20\x8B\x44\x24\x20\xC1\xE8\x02\x25\xFE\x00\x00 \x00\x48\x8B\x4C\x24\x28\x0F\xB6\x44\x01\x02\xB9\x 1F\x00\x00\x00\x2B\x4C\x24\x20\x83\xE1\x07\xD3\xF8 \x83\xE0\x01\x88\x44\x24\x04\x0F\xB6\x44\x24\x04\x 83\xF0\x01\x8B\x4C\x24\x20\xC1\xE9\x03\x21\xC8\x8B \x4C\x24\x20\x31\xC1\x89\xC8\x8B\x4C\x24\x20\xC1\x E9\x04\x31\xC8\x89\x04\x24\x48\x8B\x44\x24\x28\x8B \x40\x0F\xC1\xE8\x0A\x8B\x0C\x24\x31\xC1\x89\xC8\x 89\x04\x24\x48\x8B\x44\x24\x28\x8B\x40\x0F\xC1\xE8 \x07\x8B\x0C\x24\x31\xC1\x89\xC8\x89\x04\x24\x8B\x 44\x24\x20\x83\xE0\x02\x85\xC0\x74\x15\x48\x8B\x44 \x24\x28\x8B\x40\x0F\xC1\xE8\x05\x8B\x0C\x24\x31\x C1\x89\xC8\x89\x04\x24\x8B\x44\x24\x20\x83\xE0\x04 \x85\xC0\x74\x15\x48\x8B\x44\x24\x28\x8B\x40\x0F\x C1\xE8\x08\x8B\x0C\x24\x31\xC1\x89\xC8\x89\x04\x24 \x8B\x04\x24\x83\xE0\x01\x89\x04\x24\x8B\x44\x24\x 20\x83\xE0\x01\xC1\xE0\x02\x48\x8B\x4C\x24\x28\x8B \x49\x0F\x31\xC1\x89\xC8\x48\x8B\x4C\x24\x28\x89\x 41\x0F\x48\x8B\x44\x24\x28\x8B\x40\x0F\xD1\xE0\x48 \x8B\x4C\x24\x28\x89\x41\x0F\x48\x8B\x44\x24\x28\x 8B\x0C\x24\x8B\x40\x0F\x09\xC8\x48\x8B\x4C\x24\x28 \x89\x41\x0F\x48\x8B\x44\x24\x28\x8B\x40\x0F\xC1\x E8\x0B\x0F\xB6\x4C\x24\x04\x31\xC8\x83\xE0\x01\x48 \x83\xC4\x18\xC3\x48\x89\x54\x24\x10\x48\x89\x4C\x 24\x08\x48\x83\xEC\x48\xC7\x44\x24\x30\x1F\x00\x00 \x00\x48\x8B\x44\x24\x58\x8B\x40\x14\x89\x44\x24\x 20\x8B\x44\x24\x20\x35\x89\x19\x08\x01\x89\x44\x24 \x20\x8B\x44\x24\x20\xC1\xE8\x0C\x89\x44\x24\x20\x C7\x44\x24\x24\x0A\x00\x00\x00\xEB\x0A\x8B\x44\x24 \x24\xFF\xC8\x89\x44\x24\x24\x83\x7C\x24\x24\x05\x 76\x69\x0F\xB6\x44\x24\x20\x83\xE0\x0F\x89\x44\x24 \x2C\x83\x7C\x24\x2C\x00\x74\x0A\xC7\x44\x24\x38\x 01\x00\x00\x00\xEB\x08\xC7\x44\x24\x38\x00\x00\x00 \x00\x83\x7C\x24\x2C\x0B\x73\x0A\xC7\x44\x24\x3C\x 01\x00\x00\x00\xEB\x08\xC7\x44\x24\x3C\x00\x00\x00 \x00\x8B\x44\x24\x3C\x8B\x4C\x24\x38\x21\xC1\x89\x C8\x8B\x4C\x24\x24\xD3\xE0\x8B\x4C\x24\x30\x09\xC1 \x89\xC8\x89\x44\x24\x30\x8B\x44\x24\x20\xC1\xE8\x 04\x89\x44\x24\x20\xEB\x86\x8B\x44\x24\x30\xC1\xE8 \x06\x48\x8B\x4C\x24\x58\x88\x41\x13\x48\x8B\x44\x 24\x58\x0F\xB6\x40\x13\xC1\xE0\x06\x83\xC8\x1F\x48 \x8B\x4C\x24\x58\x89\x41\x0F\xC7\x44\x24\x24\x01\x 00\x00\x00\xC7\x44\x24\x28\x00\x00\x00\x00\xEB\x0A \x8B\x44\x24\x24\xFF\xC0\x89\x44\x24\x24\x83\x7C\x 24\x24\x27\x77\x6A\x8B\x44\x24\x28\x48\x8B\x4C\x24 \x50\x0F\xB6\x04\x01\x48\x8B\x54\x24\x58\x89\xC1\x E8\xA6\xFD\xFF\xFF\x89\x44\x24\x34\x48\x8B\x44\x24 \x50\x8B\x00\x83\xE0\x01\xD1\xE0\x0B\x44\x24\x34\x 89\x44\x24\x28\x48\x8B\x44\x24\x50\x8B\x00\x83\xE0 \x01\x3B\x44\x24\x34\x75\x12\x48\x8B\x44\x24\x50\x 8B\x00\xD1\xE8\x48\x8B\x4C\x24\x50\x89\x01\xEB\x15 \x48\x8B\x44\x24\x50\x8B\x00\xD1\xE8\x35\x62\x00\x 50\x80\x48\x8B\x4C\x24\x50\x89\x01\xEB\x85\x48\x83 \xC4\x48\xC3\x48\x89\x4C\x24\x08\x48\x83\xEC\x48\x 48\x8B\x44\x24\x50\x0F\xB6\x40\x01\xC1\xF8\x05\x83 \xE0\x01\x48\x8B\x4C\x24\x50\x88\x41\x0A\x48\x8B\x 44\x24\x50\x0F\xB6\x40\x02\xC1\xF8\x07\x83\xE0\x01 \x83\xF0\x01\x88\x44\x24\x24\x0F\xB6\x44\x24\x24\x 85\xC0\x74\x0E\x48\x8B\x44\x24\x50\x0F\xB6\x00\x89 \x44\x24\x3C\xEB\x0E\x48\x8B\x44\x24\x50\x0F\xB6\x 00\xF7\xD0\x89\x44\x24\x3C\x0F\xB6\x44\x24\x3C\x88 \x44\x24\x26\xC7\x44\x24\x28\x00\x00\x00\x00\x48\x 8B\x44\x24\x50\x0F\xB6\x40\x01\x83\xE0\x1F\x88\x44 \x24\x25\xC7\x44\x24\x2C\x00\x00\x00\x00\xEB\x0A\x 8B\x44\x24\x2C\xFF\xC0\x89\x44\x24\x2C\x83\x7C\x24 \x2C\x04\x7D\x3D\x0F\xB6\x44\x24\x28\xC0\xE0\x02\x 88\x44\x24\x28\x0F\xB6\x44\x24\x25\x83\xE0\x01\x0F \xB6\x4C\x24\x25\x83\xF1\x01\x83\xE1\x01\xD1\xE1\x 09\xC8\x0F\xB6\x4C\x24\x28\x09\xC1\x89\xC8\x88\x44 \x24\x28\x0F\xB6\x44\x24\x25\xD0\xE8\x88\x44\x24\x 25\xEB\xB2\x0F\xB6\x44\x24\x28\x35\xFF\x00\x00\x00 \x88\x44\x24\x2A\x0F\xB6\x44\x24\x28\x88\x44\x24\x 29\x0F\xB6\x44\x24\x2A\x88\x44\x24\x2B\xC7\x44\x24 \x2C\x00\x00\x00\x00\xEB\x0A\x8B\x44\x24\x2C\xFF\x C0\x89\x44\x24\x2C\x83\x7C\x24\x2C\x08\x0F\x8D\x9F \x00\x00\x00\x8B\x44\x24\x2C\x83\xC0\x08\xC1\xF8\x 02\x25\xFE\x00\x00\x00\x48\x98\x48\x8B\x4C\x24\x50 \x0F\xB6\x44\x01\x02\x8B\x4C\x24\x2C\x83\xC1\x08\x BA\x1F\x00\x00\x00\x29\xCA\x89\xD1\x83\xE1\x07\xD3 \xF8\x83\xE0\x01\x0F\xB6\x4C\x24\x25\x31\xC8\x8B\x 4C\x24\x2C\xD3\xE0\x0F\xB6\x4C\x24\x29\x31\xC1\x89 \xC8\x88\x44\x24\x29\x8B\x44\x24\x2C\x83\xC0\x18\x C1\xF8\x02\x25\xFE\x00\x00\x00\x48\x98\x48\x8B\x4C \x24\x50\x0F\xB6\x44\x01\x02\x8B\x4C\x24\x2C\x83\x C1\x18\xBA\x1F\x00\x00\x00\x29\xCA\x89\xD1\x83\xE1 \x07\xD3\xF8\x83\xE0\x01\x0F\xB6\x4C\x24\x25\x31\x C8\x8B\x4C\x24\x2C\xD3\xE0\x0F\xB6\x4C\x24\x2B\x31 \xC1\x89\xC8\x88\x44\x24\x2B\xE9\x4C\xFF\xFF\xFF\x 48\x8B\x44\x24\x50\xC7\x40\x0B\x00\x00\x00\x00\xC7 \x44\x24\x20\x00\x00\x00\x00\xC7\x44\x24\x30\x1F\x 00\x00\x00\xEB\x0A\x8B\x44\x24\x30\xFF\xC8\x89\x44 \x24\x30\x83\x7C\x24\x30\x00\x0F\x8C\xA4\x00\x00\x 00\x0F\xB6\x44\x24\x26\xC1\xE0\x03\x48\x8B\x4C\x24 \x50\x89\x41\x0F\xC7\x44\x24\x38\x00\x00\x00\x00\x EB\x0A\x8B\x44\x24\x38\xFF\xC0\x89\x44\x24\x38\x83 \x7C\x24\x38\x0C\x7D\x14\x48\x8B\x54\x24\x50\x8B\x 4C\x24\x30\xE8\xA6\x00\x00\x00\x88\x44\x24\x34\xEB \xDB\x8B\x44\x24\x20\xD1\xE0\x89\x44\x24\x20\x8B\x 44\x24\x30\xC1\xF8\x02\x25\xFE\x00\x00\x00\x48\x98 \x48\x8B\x4C\x24\x50\x0F\xB6\x44\x01\x02\xB9\x1F\x 00\x00\x00\x2B\x4C\x24\x30\x83\xE1\x07\xD3\xF8\x83 \xE0\x01\x8B\x4C\x24\x30\x83\xE1\x01\x31\xC8\x8B\x 4C\x24\x30\x8B\x54\x24\x28\xD3\xEA\x89\xD1\x83\xE1 \x01\x31\xC8\x0F\xB6\x4C\x24\x34\x31\xC8\x8B\x4C\x 24\x20\x09\xC1\x89\xC8\x89\x44\x24\x20\xE9\x47\xFF \xFF\xFF\x48\x8B\x44\x24\x50\x8B\x4C\x24\x20\x89\x 48\x0B\x0F\xB6\x44\x24\x26\xC1\xE0\x03\x0F\xB6\x4C \x24\x24\xC1\xE1\x02\x09\xC8\x0F\xB6\x4C\x24\x24\x D1\xE1\x09\xC8\x0F\xB6\x4C\x24\x24\x09\xC8\x48\x8B \x4C\x24\x50\x89\x41\x0F\x48\x83\xC4\x48\xC3\x48\x 89\x54\x24\x10\x89\x4C\x24\x08\x48\x83\xEC\x28\x8B \x44\x24\x30\x83\xE0\x1F\x89\x44\x24\x30\x8B\x44\x 24\x30\xD1\xE8\x83\xE0\x03\xE8\x10\x00\x00\x00\x80 \x04\x00\x00\xA0\x04\x00\x00\x80\x05\x00\x00\xA0\x 05\x00\x00\x59\x8B\x04\x81\x89\x44\x24\x04\xC7\x44 \x24\x08\x00\x00\x00\x00\xC7\x44\x24\x0C\x00\x00\x 00\x00\xEB\x0A\x8B\x44\x24\x0C\xFF\xC0\x89\x44\x24 \x0C\x83\x7C\x24\x0C\x0C\x7D\x3D\x8B\x44\x24\x0C\x 0F\xB6\xC8\x8B\x44\x24\x04\xD3\xE8\x83\xE0\x01\x85 \xC0\x74\x27\x8B\x44\x24\x0C\x48\x8B\x4C\x24\x38\x 48\x89\x4C\x24\x10\x0F\xB6\xC8\x48\x8B\x44\x24\x10 \x8B\x40\x0F\xD3\xE8\x8B\x4C\x24\x08\x31\xC1\x89\x C8\x89\x44\x24\x08\xEB\xB2\x8B\x44\x24\x30\x83\xE0 \x01\xC1\xE0\x02\x48\x8B\x4C\x24\x38\x8B\x49\x0F\x 31\xC1\x89\xC8\x48\x8B\x4C\x24\x38\x89\x41\x0F\x8B \x44\x24\x30\xC1\xE8\x02\x25\xFE\x00\x00\x00\x48\x 8B\x4C\x24\x38\x0F\xB6\x44\x01\x02\xB9\x1F\x00\x00 \x00\x2B\x4C\x24\x30\x83\xE1\x07\xD3\xF8\x83\xE0\x 01\x48\x8B\x4C\x24\x38\x0F\xB6\x49\x0A\x31\xC8\x88 \x04\x24\x48\x8B\x44\x24\x38\x8B\x40\x0F\xD1\xE0\x 0F\xB6\x0C\x24\x8B\x54\x24\x08\x31\xCA\x89\xD1\x83 \xE1\x01\x09\xC8\x48\x8B\x4C\x24\x38\x89\x41\x0F\x 8B\x44\x24\x30\x48\x8B\x4C\x24\x38\x48\x89\x4C\x24 \x18\x0F\xB6\xC8\x48\x8B\x44\x24\x18\x8B\x40\x0B\x D3\xE8\x83\xE0\x01\x48\x8B\x4C\x24\x38\x8B\x49\x0F \x31\xC1\x89\xC8\x48\x8B\x4C\x24\x38\x89\x41\x0F\x 48\x8B\x44\x24\x38\x8B\x40\x0F\xC1\xE8\x0B\x0F\xB6 \x0C\x24\x31\xC8\x83\xE0\x01\x48\x83\xC4\x28\xC3\x 48\x89\x54\x24\x10\x48\x89\x4C\x24\x08\x48\x83\xEC \x38\x48\x8B\x44\x24\x48\x83\x78\x14\x00\x74\x14\x 48\x8B\x54\x24\x48\x48\x8B\x4C\x24\x40\xE8\x3F\xFA \xFF\xFF\xE9\x97\x00\x00\x00\x48\x8B\x4C\x24\x48\x E8\xA6\xFB\xFF\xFF\xC7\x44\x24\x20\x01\x00\x00\x00 \xC7\x44\x24\x24\x00\x00\x00\x00\xEB\x0A\x8B\x44\x 24\x20\xFF\xC0\x89\x44\x24\x20\x83\x7C\x24\x20\x27 \x77\x6A\x8B\x44\x24\x24\x48\x8B\x4C\x24\x40\x0F\x B6\x04\x01\x48\x8B\x54\x24\x48\x89\xC1\xE8\x2E\xFE \xFF\xFF\x89\x44\x24\x28\x48\x8B\x44\x24\x40\x8B\x 00\x83\xE0\x01\xD1\xE0\x0B\x44\x24\x28\x89\x44\x24 \x24\x48\x8B\x44\x24\x40\x8B\x00\x83\xE0\x01\x3B\x 44\x24\x28\x75\x12\x48\x8B\x44\x24\x40\x8B\x00\xD1 \xE8\x48\x8B\x4C\x24\x40\x89\x01\xEB\x15\x48\x8B\x 44\x24\x40\x8B\x00\xD1\xE8\x35\x62\x00\x50\x80\x48 \x8B\x4C\x24\x40\x89\x01\xEB\x85\x48\x83\xC4\x38\x C3\x49\x89\xE3\x48\x83\xEC\x68\x45\x85\xC0\x49\x89 \x5B\xF8\x49\x89\x6B\xF0\x49\x89\x73\xE8\x49\x89\x 7B\xE0\x4D\x89\x63\xD8\x44\x8B\x61\x04\x44\x89\xC5 \x48\x89\xD6\x48\x89\xCB\x45\x89\xE1\x45\x89\x63\x C8\x74\x26\x49\x8D\x4B\xC8\x49\x89\x4B\xB8\xE8\x00 \x00\x00\x00\x5A\x48\x81\xEA\xD0\x1D\x00\x00\x48\x 8B\x12\x48\x03\x52\x20\xE8\xE2\xFE\xFF\xFF\x44\x8B \x4C\x24\x30\x8B\x03\x44\x31\xC8\x89\xC1\x44\x31\x E0\x35\xC3\x25\x34\x80\x89\x0B\x89\xC1\x35\xC3\x25 \x34\x80\xC1\xC0\x02\x33\x03\x89\x0B\x89\xC1\x35\x C3\x25\x34\x80\xC1\xC0\x04\x33\x03\x89\x0B\x89\xC1 \x35\xC3\x25\x34\x80\xC1\xC0\x06\x33\x03\x89\x0B\x 89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x08\x33\x03\x89 \xC2\x35\xC3\x25\x34\x80\xC1\xC0\x0A\x89\x13\x31\x C8\x85\xED\x48\x8B\x6C\x24\x58\x89\x43\x04\x41\x89 \xC4\x89\xC2\x89\x44\x24\x34\x74\x27\x48\x8D\x4C\x 24\x34\xE8\x00\x00\x00\x00\x5A\x48\x81\xEA\x5D\x1E \x00\x00\x48\x8B\x12\x48\x03\x52\x20\xE8\x55\xFE\x FF\xFF\x8B\x54\x24\x34\x44\x8B\x4C\x24\x30\x8B\x03 \x48\x8B\x7C\x24\x48\x31\xD0\x89\xC1\x44\x31\xE0\x 4C\x8B\x64\x24\x40\x35\x4A\x00\x2C\x5B\x89\x0B\x89 \xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x05\x33\x03\x89\x 0B\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0A\x33\x03 \x89\x0B\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0F\x 33\x03\x89\x0B\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0 \x14\x33\x03\x89\x0B\x89\xC1\x35\x4A\x00\x2C\x5B\x C1\xC0\x19\x33\x03\x48\x85\xF6\x89\x0B\x89\x43\x04 \x48\x8B\x5C\x24\x60\x74\x06\x44\x89\x0E\x89\x56\x 04\x48\x8B\x74\x24\x50\x48\x83\xC4\x68\xC3\x48\x83 \xEC\x08\x4C\x8D\x0C\x24\x41\xB8\x01\x00\x00\x00\x 49\x89\x09\x8B\x41\x5C\x48\xC1\xE0\x20\x8B\x49\x12 \x48\x09\xC1\x48\x89\xCA\x48\x83\xC2\x08\xE8\x6E\x FE\xFF\xFF\x48\x83\xC4\x08\xC3\x49\x89\xE3\x48\x83 \xEC\x68\x49\x89\x5B\xF8\x48\x89\xCB\x49\x89\x6B\x F0\x49\x89\x73\xE8\x49\x89\x7B\xE0\x4C\x89\xCF\x44 \x8B\x09\x4D\x89\x63\xD8\x45\x89\xC4\x44\x89\xC8\x 48\x89\xD6\x35\x4A\x00\x2C\x5B\xC1\xC0\x19\x33\x41 \x04\x44\x89\x49\x04\x89\x01\x89\xC1\x35\x4A\x00\x 2C\x5B\xC1\xC0\x14\x89\x4B\x04\x44\x31\xC8\x89\xC1 \x35\x4A\x00\x2C\x5B\xC1\xC0\x0F\x33\x43\x04\x89\x 4B\x04\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0A\x33 \x43\x04\x89\x4B\x04\x89\xC1\x35\x4A\x00\x2C\x5B\x C1\xC0\x05\x33\x43\x04\x89\x4B\x04\x89\xC1\x8B\x43 \x04\x31\xC8\x89\x4B\x04\x35\x4A\x00\x2C\x5B\x45\x 85\xE4\x89\x03\x89\xC5\x41\x89\xC0\x89\x44\x24\x34 \x74\x37\x48\x8B\x07\x49\x8D\x4B\xCC\x44\x0F\xB7\x 48\x1E\x44\x0F\xB7\x40\x0C\x0F\xB7\x50\x08\x49\x89 \x4B\xB8\xE8\x00\x00\x00\x00\x5A\x48\x81\xEA\xE1\x 1F\x00\x00\x48\x8B\x12\x48\x03\x52\x20\xE8\xD1\xFC \xFF\xFF\x44\x8B\x44\x24\x34\x8B\x43\x04\x44\x31\x C0\x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x0A\x89\x4B \x04\x31\xE8\x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x 08\x33\x43\x04\x89\x4B\x04\x89\xC1\x35\xC3\x25\x34 \x80\xC1\xC0\x06\x33\x43\x04\x89\x4B\x04\x89\xC1\x 35\xC3\x25\x34\x80\xC1\xC0\x04\x33\x43\x04\x89\x4B \x04\x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x02\x33\x 43\x04\x89\xC2\x89\xC8\x31\xD0\x89\x53\x04\x35\xC3 \x25\x34\x80\x45\x85\xE4\x4C\x8B\x64\x24\x40\x89\x 03\x89\xC5\x89\xC1\x89\x44\x24\x30\x74\x3D\x48\x8B \x07\x48\x8D\x4C\x24\x30\x44\x0F\xB7\x48\x1E\x44\x 0F\xB7\x40\x0C\x0F\xB7\x50\x08\x48\x89\x4C\x24\x20 \xE8\x00\x00\x00\x00\x5A\x48\x81\xEA\x8E\x20\x00\x 00\x48\x8B\x12\x48\x03\x52\x20\xE8\x24\xFC\xFF\xFF \x44\x8B\x44\x24\x34\x8B\x4C\x24\x30\x8B\x43\x04\x 48\x8B\x7C\x24\x48\x89\x6B\x04\x48\x8B\x6C\x24\x58 \x31\xC8\x48\x85\xF6\x89\x03\x48\x8B\x5C\x24\x60\x 74\x06\x89\x0E\x44\x89\x46\x04\x48\x8B\x74\x24\x50 \x48\x83\xC4\x68\xC3\x48\x83\xEC\x08\x4C\x8D\x0C\x 24\x41\xB8\x01\x00\x00\x00\x49\x89\x09\x8B\x41\x5C \x48\xC1\xE0\x20\x8B\x49\x12\x48\x09\xC1\x48\x89\x CA\x48\x83\xC2\x08\xE8\x23\xFE\xFF\xFF\x48\x83\xC4 \x08\xC3\x48\x89\xE0\x48\x81\xEC\xE8\x00\x00\x00\x 48\x89\x58\x08\x48\x89\x68\x10\x48\x89\x70\x18\x48 \x89\x78\x20\x4C\x89\x60\xF8\x4C\x89\x68\xF0\x4C\x 89\x70\xE8\x4C\x89\x78\xE0\xB8\x08\x00\x00\x00\x44 \x8D\x72\x07\x41\x89\xD7\x4C\x89\xC5\x41\xC1\xEE\x 03\x41\x83\xE7\x07\x48\x89\xCB\x44\x0F\x44\xF8\x45 \x31\xC9\x41\x8D\x46\xFF\x85\xC0\x44\x89\x7C\x24\x 28\x44\x89\x4C\x24\x24\x45\x89\xC8\x44\x89\x4C\x24 \x20\x45\x89\xCD\x45\x8D\x51\x02\x0F\x84\x7A\x02\x 00\x00\x48\x8B\x7C\x24\x30\x44\x8B\x64\x24\x54\x4D \x89\xD7\x44\x31\x03\x44\x31\x4B\x04\x45\x85\xED\x 8B\x0B\x8B\x53\x04\x0F\x85\x16\x01\x00\x00\x45\x39 \xFE\x0F\x86\xDB\x00\x00\x00\x66\x44\x89\x6D\x10\x 48\x8B\x03\x48\x89\xE9\x48\x89\x44\x24\x38\x48\x8D \x44\x24\x38\x48\x89\x7C\x24\x40\x89\x45\x12\x48\x 8D\x44\x24\x38\x66\x44\x89\x7D\x16\x48\xC1\xE8\x20 \x66\x44\x89\x6D\x3E\x89\x45\x5C\xE8\x1C\xFD\xFF\x FF\x48\x8B\x7C\x24\x40\x48\x8B\x44\x24\x38\x48\x89 \x7C\x24\x30\x8B\x74\x24\x34\x48\x89\x03\x89\x7C\x 24\x50\x48\x8D\x54\x24\x54\x66\x44\x89\x6D\x16\x45 \x8D\x45\x05\x8B\x4A\xFC\x48\x83\xC2\x14\x8D\x04\x 31\x83\xE1\x1F\x89\x42\xEC\x89\xF8\xD3\xC8\x31\x44 \x24\x54\x8B\x4A\xEC\x8D\x04\x31\x83\xE1\x1F\x89\x 42\xF0\x89\xF8\xD3\xC8\x31\x44\x24\x54\x8B\x4A\xF0 \x8D\x04\x31\x83\xE1\x1F\x89\x42\xF4\x89\xF8\xD3\x C8\x31\x44\x24\x54\x8B\x4A\xF4\x8D\x04\x31\x83\xE1 \x1F\x89\x42\xF8\x89\xF8\xD3\xC8\x31\x44\x24\x54\x 8B\x4A\xF8\x8D\x04\x31\x83\xE1\x1F\x89\x42\xFC\x44 \x8B\x64\x24\x54\x89\xF8\xD3\xC8\x41\x31\xC4\x49\x FF\xC8\x44\x89\x64\x24\x54\x75\x8A\xE9\x42\x01\x00 \x00\x48\x89\xD8\x48\x89\xE9\x66\xC7\x45\x10\x00\x 00\x48\xC1\xE8\x20\x66\xC7\x45\x16\x01\x00\x66\xC7 \x45\x3E\x00\x00\x89\x45\x5C\x89\x5D\x12\xE8\x52\x FC\xFF\xFF\x66\xC7\x45\x16\x00\x00\xE9\x10\x01\x00 \x00\x8B\x44\x24\x50\x46\x8D\x04\x21\x4C\x8D\x4C\x 24\x5C\x8D\x34\x02\x44\x89\x03\x4D\x89\xFA\x89\x73 \x04\x44\x89\xC1\x44\x89\xC2\x49\x83\xC1\x30\xC1\x E9\x04\x31\xF2\x83\xE1\x1F\xD3\xC2\x41\x2B\x51\xCC \x41\x31\xD0\x89\xD1\xC1\xE9\x07\x83\xE1\x1F\x41\x D3\xC0\x45\x03\x41\xD0\x44\x89\xC1\x44\x89\xC6\xC1 \xE9\x04\x31\xD6\x83\xE1\x1F\xD3\xC6\x41\x2B\x71\x D4\x41\x31\xF0\x89\xF1\xC1\xE9\x07\x83\xE1\x1F\x41 \xD3\xC0\x45\x03\x41\xD8\x44\x89\xC1\x44\x89\xC2\x C1\xE9\x04\x31\xF2\x83\xE1\x1F\xD3\xC2\x41\x2B\x51 \xDC\x41\x31\xD0\x89\xD1\xC1\xE9\x07\x83\xE1\x1F\x 41\xD3\xC0\x45\x03\x41\xE0\x44\x89\xC1\x44\x89\xC6 \xC1\xE9\x04\x31\xD6\x83\xE1\x1F\xD3\xC6\x41\x2B\x 71\xE4\x41\x31\xF0\x89\xF1\xC1\xE9\x07\x83\xE1\x1F \x41\xD3\xC0\x45\x03\x41\xE8\x44\x89\xC1\x44\x89\x C2\xC1\xE9\x04\x31\xF2\x83\xE1\x1F\xD3\xC2\x41\x2B \x51\xEC\x41\x31\xD0\x89\xD1\xC1\xE9\x07\x83\xE1\x 1F\x41\xD3\xC0\x45\x03\x41\xF0\x44\x89\xC1\x44\x89 \xC6\xC1\xE9\x04\x31\xD6\x83\xE1\x1F\xD3\xC6\x41\x 2B\x71\xF4\x41\x31\xF0\x89\xF1\xC1\xE9\x07\x83\xE1 \x1F\x41\xD3\xC0\x45\x03\x41\xF8\x49\xFF\xCA\x0F\x 85\x0F\xFF\xFF\xFF\x44\x89\x03\x89\x73\x04\x44\x8B \x03\x44\x8B\x4B\x04\x41\x8D\x46\xFF\x41\xFF\xC5\x 48\x83\xC3\x08\x44\x89\x44\x24\x20\x41\x39\xC5\x44 \x89\x4C\x24\x24\x0F\x82\xA0\xFD\xFF\xFF\x44\x8B\x 7C\x24\x28\x41\xBA\x02\x00\x00\x00\xEB\x05\x44\x8B \x64\x24\x54\x45\x85\xFF\x4C\x8B\xAC\x24\xD8\x00\x 00\x00\x74\x2C\x48\x8D\x44\x24\x20\x48\x89\xDF\x48 \x8D\x4C\x24\x20\x48\x29\xC7\x44\x89\xFA\x0F\xB6\x 04\x0F\x48\xFF\xC1\x30\x41\xFF\x48\xFF\xCA\x75\xF1 \x44\x8B\x4C\x24\x24\x44\x8B\x44\x24\x20\x41\x83\x FE\x02\x0F\x86\xFF\x00\x00\x00\x44\x03\x4C\x24\x50 \x48\x8D\x74\x24\x5C\x45\x01\xE0\x44\x89\xC1\x44\x 89\xC2\x48\x83\xC6\x30\xC1\xE9\x04\x44\x31\xCA\x83 \xE1\x1F\xD3\xC2\x2B\x56\xCC\x41\x31\xD0\x89\xD1\x C1\xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xD0 \x44\x89\xC1\x44\x89\xC7\xC1\xE9\x04\x31\xD7\x83\x E1\x1F\xD3\xC7\x2B\x7E\xD4\x41\x31\xF8\x89\xF9\xC1 \xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xD8\x 44\x89\xC1\x44\x89\xC2\xC1\xE9\x04\x31\xFA\x83\xE1 \x1F\xD3\xC2\x2B\x56\xDC\x41\x31\xD0\x89\xD1\xC1\x E9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xE0\x44 \x89\xC1\x44\x89\xC7\xC1\xE9\x04\x31\xD7\x83\xE1\x 1F\xD3\xC7\x2B\x7E\xE4\x41\x31\xF8\x89\xF9\xC1\xE9 \x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xE8\x44\x 89\xC1\x44\x89\xC2\xC1\xE9\x04\x31\xFA\x83\xE1\x1F \xD3\xC2\x2B\x56\xEC\x41\x31\xD0\x89\xD1\xC1\xE9\x 07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xF0\x44\x89 \xC1\x45\x89\xC1\xC1\xE9\x04\x41\x31\xD1\x83\xE1\x 1F\x41\xD3\xC1\x44\x2B\x4E\xF4\x45\x31\xC8\x44\x89 \xC9\xC1\xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x 46\xF8\x49\xFF\xCA\x0F\x85\x10\xFF\xFF\xFF\xEB\x51 \x41\x83\xFE\x01\x75\x0D\x8B\x03\x89\x44\x24\x20\x 8B\x43\x04\x89\x44\x24\x24\x48\x8D\x44\x24\x20\x48 \x89\xE9\x66\xC7\x45\x10\x00\x00\x89\x45\x12\x48\x 8D\x44\x24\x20\x66\xC7\x45\x16\x01\x00\x48\xC1\xE8 \x20\x66\xC7\x45\x3E\x00\x00\x89\x45\x5C\xE8\x7D\x F9\xFF\xFF\x44\x8B\x4C\x24\x24\x44\x8B\x44\x24\x20 \x66\xC7\x45\x16\x00\x00\x4C\x8B\xA4\x24\xE0\x00\x 00\x00\x48\x8B\xAC\x24\xF8\x00\x00\x00\x41\x83\xFE \x01\x4C\x8B\xB4\x24\xD0\x00\x00\x00\x76\x1B\x45\x 85\xFF\x74\x0C\x48\x8D\x73\xF8\x44\x89\xF9\x48\x89 \xDF\xF3\xA4\x44\x89\x43\xF8\x44\x89\x4B\xFC\xEB\x 07\x44\x89\x03\x44\x89\x4B\x04\x4C\x8B\xBC\x24\xC8 \x00\x00\x00\x48\x8B\xBC\x24\x08\x01\x00\x00\x48\x 8B\xB4\x24\x00\x01\x00\x00\x48\x8B\x9C\x24\xF0\x00 \x00\x00\x48\x81\xC4\xE8\x00\x00\x00\xC3\x48\x89\x E0\x48\x81\xEC\xF8\x00\x00\x00\x48\x89\x58\x08\x48 \x89\x68\x10\x48\x89\x70\x18\x48\x89\x78\x20\x4C\x 89\x60\xF8\x4C\x89\x68\xF0\x4C\x89\x70\xE8\x4C\x89 \x78\xE0\x48\x89\xCB\x8D\x4A\x07\x89\xD0\xBA\x08\x 00\x00\x00\xC1\xE9\x03\x83\xE0\x07\x4C\x89\xC7\x0F \x44\xC2\x45\x31\xFF\x83\xF9\x01\x89\x4C\x24\x30\x 44\x8D\x62\x04\x44\x89\x7C\x24\x2C\x44\x89\x7C\x24 \x34\x44\x89\x7C\x24\x28\x45\x89\xFE\x89\x44\x24\x 38\x0F\x86\x9F\x01\x00\x00\x83\xC1\xFE\x44\x89\xFE \x89\x4C\x24\x20\x0F\x84\x8F\x01\x00\x00\x48\x8B\x 44\x24\x40\x44\x8B\x6C\x24\x64\x8B\x6C\x24\x60\x85 \xF6\x44\x8B\x03\x44\x8B\x73\x04\x45\x89\xC7\x44\x 89\x44\x24\x28\x0F\x85\xEE\x00\x00\x00\x48\x89\x44 \x24\x50\x48\x8D\x44\x24\x48\x66\x89\x77\x10\x48\x 8B\x0B\x89\x47\x12\x48\x8D\x44\x24\x48\x48\xC1\xE8 \x20\x48\x89\x4C\x24\x48\x48\x89\xF9\x66\xC7\x47\x 16\x02\x00\x66\x89\x77\x3E\x89\x47\x5C\xE8\x0E\xFA \xFF\xFF\x48\x8B\x44\x24\x48\x4C\x8D\x44\x24\x64\x 48\x89\x03\x48\x8B\x44\x24\x50\x44\x8D\x56\x05\x48 \x89\x44\x24\x40\x44\x8B\x4C\x24\x44\x66\x89\x77\x 16\x89\x44\x24\x60\x41\x8B\x48\xFC\x49\x83\xC0\x14 \x42\x8D\x14\x09\x83\xE1\x1F\x41\x89\x50\xEC\x89\x C2\xD3\xCA\x31\x54\x24\x64\x41\x8B\x48\xEC\x42\x8D \x14\x09\x83\xE1\x1F\x41\x89\x50\xF0\x89\xC2\xD3\x CA\x31\x54\x24\x64\x41\x8B\x48\xF0\x42\x8D\x14\x09 \x83\xE1\x1F\x41\x89\x50\xF4\x89\xC2\xD3\xCA\x31\x 54\x24\x64\x41\x8B\x48\xF4\x42\x8D\x14\x09\x83\xE1 \x1F\x41\x89\x50\xF8\x89\xC2\xD3\xCA\x31\x54\x24\x 64\x41\x8B\x48\xF8\x42\x8D\x14\x09\x83\xE1\x1F\x41 \x89\x50\xFC\x44\x8B\x6C\x24\x64\x89\xC2\xD3\xCA\x 41\x31\xD5\x49\xFF\xCA\x44\x89\x6C\x24\x64\x0F\x85 \x77\xFF\xFF\xFF\x8B\x6C\x24\x60\xEB\x4B\x45\x89\x E3\x45\x89\xF1\x4C\x8D\x94\x24\xC0\x00\x00\x00\x45 \x2B\x42\x04\x44\x89\xC9\x49\x83\xEA\x08\xC1\xE9\x 07\x83\xE1\x1F\x41\xD3\xC8\x45\x31\xC8\x45\x03\x4A \x08\x44\x89\xC1\xC1\xE9\x04\x83\xE1\x1F\x41\xD3\x C9\x45\x31\xC1\x41\x83\xC3\xFF\x75\xD0\x45\x29\xE8 \x41\x29\xE9\x44\x89\x4B\x04\x44\x89\x03\x8B\x4C\x 24\x34\xFF\xC6\x48\x83\xC3\x08\x31\x4B\xF8\x8B\x4C \x24\x2C\x44\x89\x7C\x24\x34\x31\x4B\xFC\x3B\x74\x 24\x20\x44\x89\x74\x24\x2C\x0F\x82\x88\xFE\xFF\xFF \x8B\x44\x24\x38\x45\x31\xFF\xEB\x09\x44\x8B\x6C\x 24\x64\x8B\x6C\x24\x60\x85\xC0\x44\x89\x7C\x24\x20 \x44\x89\xFE\x44\x89\x7C\x24\x24\x74\x1A\x48\x8D\x 53\x08\x48\x8D\x4C\x24\x20\x41\x89\xC0\xE8\xB8\xED \xFF\xFF\x8B\x74\x24\x24\x44\x8B\x7C\x24\x20\x44\x 8B\x5C\x24\x30\x41\x83\xFB\x01\x75\x32\x48\x89\xD8 \x48\x89\xF9\x66\xC7\x47\x10\x00\x00\x48\xC1\xE8\x 20\x66\xC7\x47\x16\x01\x00\x66\xC7\x47\x3E\x00\x00 \x89\x47\x5C\x89\x5F\x12\xE8\x75\xF8\xFF\xFF\x66\x C7\x47\x16\x00\x00\xE9\x29\x01\x00\x00\x41\x83\xFB \x02\x75\x34\x48\x89\xD8\x48\x89\xF9\x66\xC7\x47\x 10\x00\x00\x48\xC1\xE8\x20\x66\xC7\x47\x16\x01\x00 \x66\xC7\x47\x3E\x00\x00\x89\x47\x5C\x89\x5F\x12\x E8\x3D\xF8\xFF\xFF\x44\x8B\x5C\x24\x30\x66\xC7\x47 \x16\x00\x00\xEB\x55\x8B\x13\x44\x8B\x43\x04\x45\x 89\xE2\x4C\x8D\x8C\x24\xC0\x00\x00\x00\x41\x2B\x51 \x04\x44\x89\xC1\x49\x83\xE9\x08\xC1\xE9\x07\x83\x E1\x1F\xD3\xCA\x44\x31\xC2\x45\x03\x41\x08\x89\xD1 \xC1\xE9\x04\x83\xE1\x1F\x41\xD3\xC8\x41\x31\xD0\x 41\x83\xC2\xFF\x75\xD2\x44\x29\xEA\x41\x29\xE8\x41 \x83\xFB\x01\x89\x13\x44\x89\x43\x04\x0F\x86\x9A\x 00\x00\x00\x44\x33\x3B\x33\x73\x04\x8B\x44\x24\x38 \x85\xC0\x44\x89\x7C\x24\x20\x89\x74\x24\x24\x74\x 31\x4C\x8D\x44\x24\x20\x49\x89\xD9\x48\x8D\x4B\x08 \x4D\x29\xC1\x49\x89\xC0\x48\x8D\x54\x24\x20\x0F\x B6\x01\x48\xFF\xC1\x48\xFF\xC2\x49\xFF\xC8\x41\x88 \x44\x11\xFF\x0F\xB6\x42\xFF\x88\x41\xFF\x75\xE6\x 41\x83\xFB\x02\x0F\x84\xED\xFE\xFF\xFF\x8B\x13\x44 \x8B\x43\x04\x4C\x8D\x8C\x24\xC0\x00\x00\x00\x41\x 2B\x51\x04\x44\x89\xC1\x49\x83\xE9\x08\xC1\xE9\x07 \x83\xE1\x1F\xD3\xCA\x44\x31\xC2\x45\x03\x41\x08\x 89\xD1\xC1\xE9\x04\x83\xE1\x1F\x41\xD3\xC8\x41\x31 \xD0\x41\x83\xC4\xFF\x75\xD2\x44\x29\xEA\x41\x29\x E8\x44\x89\x43\x04\x89\x13\x8B\x44\x24\x28\x4C\x8B \xBC\x24\xD8\x00\x00\x00\x4C\x8B\xAC\x24\xE8\x00\x 00\x00\x31\x03\x44\x31\x73\x04\x4C\x8B\xA4\x24\xF0 \x00\x00\x00\x4C\x8B\xB4\x24\xE0\x00\x00\x00\x48\x 8B\x9C\x24\x00\x01\x00\x00\x48\x8B\xBC\x24\x18\x01 \x00\x00\x48\x8B\xB4\x24\x10\x01\x00\x00\x48\x8B\x AC\x24\x08\x01\x00\x00\x48\x81\xC4\xF8\x00\x00\x00 \xC3\xCC\xCC\xCC\xCC\x57\x59\xE9\xF9\xD5\xFF\xFF')

fullfname=os.getcwd()+'/backbas.so'


a=0xBA
unipatch[a:a+4]=SERVER_KEY_PASSWORD
a=a+4
unipatch[a:a+4]=SERVER_KEY_SN
a=a+4
unipatch[a:a+4]=SERVER_KEY_HASPTYPE
a=a+4
unipatch[a:a+4]=SERVER_KEY_MEMORYSIZE
a=a+6
unipatch[a:a+8]=SERVER_KEY_SecTable
a=a+0x48
unipatch[a:a+0x70]=SERVER_KEY_Data
a=a+0x70
unipatch[a:a+2]=SERVER_KEY_LicNum


a=0x112E
unipatch[a:a+4]=CLIENT_KEY_PASSWORD
a=a+4
unipatch[a:a+4]=CLIENT_KEY_SN
a=a+4
unipatch[a:a+4]=CLIENT_KEY_HASPTYPE
a=a+4
unipatch[a:a+4]=CLIENT_KEY_MEMORYSIZE
a=a+6
unipatch[a:a+8]=CLIENT_KEY_SecTable
a=a+0x48
unipatch[a:a+0x70]=CLIENT_KEY_Data
a=a+0x70
unipatch[a:a+2]=CLIENT_KEY_LicNum


try:
fp = open(fullfname, 'r+')
if os.stat(fp.name).st_size > 0:
mm = mmap.mmap(fp.fileno(), 0)

# WTF? "to smoke": man 5 elf
if mm[0]!=0x7f or mm[1]!=0x45 or mm[2]!=0x4C or mm[3]!=0x46 or mm[4]!=2 or mm[5]!=1 or mm[6]!=1 or mm[16]!=3 or mm[17]!=0 or mm[18]!=0x3E or mm[19]!=0:
print ("what a fuck are you giving me?")
sys.exit()
e_phoff = mm[0x20]+(mm[0x21]+(mm[0x22]+(mm[0x23]<<8)<<8)<<8)
print (f"e_phoff = {hex(e_phoff)}")
e_phentsize = mm[0x36]+(mm[0x37]<<8)
print (f"e_phentsize = {hex(e_phentsize)}")
e_phnum = mm[0x38]+(mm[0x39]<<8)
print (f"e_phnum = {hex(e_phnum)}")
for i in range(e_phnum):
p = e_phoff + i * e_phentsize
p_type = mm[p]+(mm[p+1]+(mm[p+2]+(mm[p+3]<<8)<<8)<<8)
p_flags = mm[p+4]+(mm[p+5]+(mm[p+6]+(mm[p+7]<<8)<<8)<<8)
if (p_type==1 and p_flags==5):
print(f"p_type={hex(p_type)}, p_flags={hex(p_flags)}")
print(f"mm[{hex(p+4)}] += PF_W")
mm[p+4] = 7
break
else:
print(f"p_type={hex(p_type)}, p_flags={hex(p_flags)}")
pattern_addr = mm.find(pattern)
if pattern_addr != -1:
unipatch_addr=pattern_addr-0x2A75
print (f"patching {fullfname} at offset={hex(unipatch_addr)}")
mm[unipatch_addr:unipatch_addr+0x2A07] = unipatch

mm.close()
except IOError as e:
print (f"I/O error({e.errno}): {e.strerror}, filename={fullfname}")



print ('#############_SERVER_KEY_INFO_#################' , sep='', end='')
print ('')
a=0xBA
print ('SERVER_KEY_PASSWORD:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('SERVER_KEY_SN:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('SERVER_KEY_HASPTYPE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('SERVER_KEY_MEMORYSIZE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+6
print ('SERVER_KEY_SecTable:', sep='', end=' ')
for i in range(a,a+8):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+0x48
print ('SERVER_KEY_Data:', sep='', end='\n')
for i in range(a,a+0x70,16):
for k in range(0,16):
print (format(unipatch[i+k],'02X'), sep='', end=' ')
print ('')
a=a+0x70
print ('SERVER_KEY_LicNum:', sep='', end=' ')
for i in range(a,a+2):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')

print ('#############_CLIENT_KEY_INFO_#################' , sep='', end='')
print ('')
a=0x112E
print ('CLIENT_KEY_PASSWORD:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('CLIENT_KEY_SN:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('CLIENT_KEY_HASPTYPE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('CLIENT_KEY_MEMORYSIZE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+6
print ('CLIENT_KEY_SecTable:', sep='', end=' ')
for i in range(a,a+8):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+0x48
print ('CLIENT_KEY_Data:', sep='', end='\n')
for i in range(a,a+0x70,16):
for k in range(0,16):
print (format(unipatch[i+k],'02X'), sep='', end=' ')
print ('')

a=a+0x70
print ('CLIENT_KEY_LicNum:', sep='', end=' ')
for i in range(a,a+2):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')

HPDX2300
19.01.2023, 00:04
Алгоритм вычисления Data=function(SN) "придуманных" дампов доработан.
Данные в поле Data созданы так, чтобы они прошли 2-х этапную проверку в коде изделия.
Рассказываю медленно и два раза:
Алгоритм вычисления Data=function(SN) "придуманных" дампов доработан. Это означает, что решена проблема падения толстого клиента через 73 мин при запуске с "придуманным" дампом.

Воспользовался последней версией унипатча и проверил дамп, полученный от бота, - прописал в унипатче в клиентский дамп SN=0x1C83DEAD (CLIENT_KEY_SN = bytearray(b'\xAD\xDE\x83\x1C')) и его Data, применил унипатч к хитро-патченной (отладочной) либе backbas.so, в которой я сделал исправления 8-ми машинных команд, в командах меняются только константы, они все суть время в мсек, отчего все рандомизированные интервалы по 60-90 сек "курения бамбука" сократились до 5мсек и вторая проверка памяти ключа выполняется через 5 сек после запуска толстого клиента. Т.е. на проверку дампа SN=0x1C83DEAD ушло 5 сек после запуска толстого клиента - с ним всё хорошо, падения не случилось.

HPDX2300
08.02.2023, 21:45
отвечал в ЛС, а потом решил опубликовать - описанная ситуация очень часто встречается.
Админы "редиски", грохнули тему "Пропатченая платформа 1С 8.3. Не работает", там много полезного было написано.

И еще вопрос, все УТ 10.3, 11.5 на разных пк вылетают с крахом "Ключ защиты программы больше недоступен". как правило в конфигураторе, когда накатываешь доработки, это от "качества DATA" зависит, можно как то побороть?

крах "Ключ защиты программы больше недоступен" может возникнуть:
1) в качестве мести за признаки взлома (проверка памяти ключа),
и
2) может появляться на слабых компах (у меня дома на ноуте HP550 с WinXP тест Гилёва не проходил (лиц-я от HASPLM) - как раз из-за "Ключ ... больше недоступен").

Замечу, что HASPLM раздает лицензии по сетевому протоколу UDP. У него есть серьёзный недостаток - никакой гарантии доставки пакета до получателя.

Предположим платформа (она всегда работает многопоточно) параллельно обновлению конфы отправила запрос к HASPLM выполнить какой-то запрос к ключу (прочитать из памяти ключа, или EncodeData/DecodeData с какой-то цепочкой байт), и HASPLM мгновенно прислала ответ, но высокая нагрузка на процессор создает такие обстоятельства, что драйвер сетевой карты похерит все приходящие сетевые пакеты, если его буфер входных данных заполнен, а он не успевает его разгребсти из-за нехватки времени ЦПУ из-за слабости процессора (мало физических ядер, мал размер буфера данных и буфера команд внутри ЦПУ, мала частота работы ядра ЦПУ, низкая скорость работы модулей памяти на мат.плате, и прочая и прочая)

Как проверить "качество DATA"? У меня есть патч для либы backbas, который выключает все "курения бамбука по 60-90 сек" при проверке памяти ключа (она же DATA в дампе), проверка происходит мгновенно - толстый клиент или взлетает, или сразу показывает крах "Ключ ... больше недоступен" (не надо ждать 70-80 минут, как в случае с непатченным изделием).

"курение бамбука по 60-90 сек" - это противодействие изучению работы изделия в отладчике.

Если "качество DATA" проверено и не вызывает мести в виде краха "потеря ключа", то что можно предпринять для борьбы с этим крахом?
1) пробовать поставить локальную ВМ (хоть с виндой+мультик+HASPLM, хоть с линуксом+эмулятор+HASPLM), раздающую лицензии через HASPLM. Сетевая карточка у ВМ виртуальная, авось это поможет не терять UDP-пакеты (сам это не проверял, извиняйте за авантюризм)
2) обновлять конфу под линуксом, изделие под линукс лечить унипатчем (унипатч - это эмулятор, внедрённый в код изделия; нет проблемы потери UDP-пакетов, летящих от HASPLM).
3) лицензию на взлёт должен выдавать сервер кластера - нет проблемы потери UDP-пакетов, летящих от HASPLM, т.к. общение идет по протоколу TCP (есть гарантия доставки пакета до получателя).

HPDX2300
13.06.2023, 20:38
бесплатная IDA 8.3 для Linux-x64

SHA256 checksums
F9912C333F8B98331F0EC41ACDE839089D0237ADE32A3CF32F 81A2B754232922 idafree83_linux.run
https://wdfiles.ru/be9b13e

бесплатная IDA 8.3 для Windows-x64

SHA256 checksums
10080A057704630578E697C6BB0B09968A54138075CACAB175 F62D60C71D0A1F idafree83_windows.exe
https://wdfiles.ru/87bd4bd

HPDX2300
12.07.2023, 12:20
в теме "Эмуляторы" пост №9964 01.03.2023,20:34 (https://forum.ruboard.ru/showthread.php/680-%D0%AD%D0%BC%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80%D 1%8B-%D0%B4%D0%BB%D1%8F-8-x?p=765972&viewfull=1#post765972)
Разобрал структуру дампов HASP-ключей. Рецепт: как сделать ключ с другим серийником из своего не изменяя поля Data, полученный дамп успешно пройдет 2-х этапную проверку изделием.
Предупреждение: нельзя менять серию ключа (ORGL8,ORG8A,ORG8B,EN8SA,ENSR8) т.к. результат не пройдет 2-ой этап проверки.
Итак.
SN = xxxXxxXX (число xxxXxxXX написано в 16-ричной системе)
Здесь маленькие x можно менять.
В поле Data 9 и 10 байт (NN,MM) - начало Data=01,00,00,00,00,00,00,yy,NN,MM - это несложная контрольная сумма (там чистая целочисленная арифметика).
Если всё сделать правильно, то можно получить огромную кучу ключей из одного: изменять в SN можно 20 битов, получаем число вариантов 2^20=(2^10 * 2^10)=1024*1024=1048576
Подсказка - можно из 4-x заблокированных SN (см. дампы для мультика) сделать много рабочих дампов
Попробовал этот рецепт на одном из рабочих дампов - обнулил все "х" т.е. SN=000X00XX, поправил в поле Data 9 и 10 байт (NN,MM) - получился рабочий дамп.
Потом испытал SN=FFFXFFXX (опять поправил Data[9],Data[10]) - получился рабочий дамп.

Четыре палёных дампа для мультика воскресли из пепла!

Генератор 9 и 10 байта (NN,MM) можно будет внедрить в код последнего унипатча, если сектанты продолжат хардкодить палёные SN.

HPDX2300
15.07.2023, 21:57
...Четыре палёных дампа для мультика воскресли из пепла!...

Унипатч доработан так, чтобы можно было легко изменять в текстовом редакторе используемые им дампы.
В первых строках скрипта меняете пары {SERVER_KEY_SN, SERVER_KEY_Data} и {CLIENT_KEY_SN, CLIENT_KEY_Data}.
Внимание: не все поля в дампе надо менять. Впрочем, делайте как хотите, ибо это допускается.
Выхлоп скрипта в stdout будет содержать инфу о дампах SERVER_KEY и CLIENT_KEY.

Унипатч теперь правильно эмулирует сетевой HASP-API, в диалоге "About" отображается число спартанцев сетевого ключа.
Это на практике проявляется так: сперва вы запускали изделие с помощью парочки эмулятор+HASPLM, изделие запомнило в файле 1cv8conn.pfl последний успешный путь получения лицензии на запуск (от сетевого HASPLM), при следующем запуске читается файл 1cv8conn.pfl и выполняется попытка получить лицензию также как прошлый раз. Если теперь либа патчена унипатчем, то унипатч честно выполнит эмуляцию сетевого HASPLM, и в диалоге "О программе" --> "Лицензия:" будет написано "Текущая: Сетевой HASP4 ORGL8 100" (Сетевой, а не Локальный!)

Порядок байтов во всех полях, и, в частности, в CLIENT_KEY_SN - как в исполняемых модулях для процессора Intel - младший байт идет первым

Недавно я написал: "Четыре палёных дампа для мультика воскресли из пепла!"
В подтверждение этих слов - я подставил в скрипте данные из дампов виндового унипатча с двумя палёными SN и чуть-чуть модифицировал SN и Data так, чтобы получились дампы, выдерживающие 2-х этапную проверку изделием памяти ключа.

Повторю для "чайников":
это патчер изделия для линукса-x64
код ниже сохранить в файл unipatch.py
запускать так (либа бэкбейс должна быть рядом - в том же каталоге):
python3 unipatch.py
если предварительно выполнить:
chmod +x unipatch.py
, то запускать можно будеть так:
./unipatch.py


#!/usr/bin/env python3
import sys, os, glob, mmap

SERVER_KEY_PASSWORD = bytearray(b'\x7A\x23\x25\x41')
#SERVER_KEY_SN=0x281DCF71 - blocked, so modify it a bit: 0x281DCE71 => Data[9-10]: BC 07
SERVER_KEY_SN = bytearray(b'\x71\xCE\x1D\x28')
SERVER_KEY_HASPTYPE = bytearray(b'\x01\x00\x00\x00')
SERVER_KEY_MEMORYSIZE=bytearray(b'\x01\x00\x00\x00 ')
SERVER_KEY_SecTable =bytearray(b'\x15\xEA\x8F\xEA\x73\xEA\xEB\xEA')
SERVER_KEY_Data=bytearray(b'\
\x01\x00\x00\x00\x00\x00\x00\xD0\xBC\x07\x3F\x28\x 30\x02\xE5\x6F\
\x3E\x39\xD4\x76\x9F\x6F\xD4\x76\x21\x57\x02\x41\x C3\xCC\xD5\xA7\
\x4B\x4C\xC2\x81\x64\x84\x55\x76\x41\xE1\x5E\x2C\x 18\xA7\x6F\xF2\
\x08\xE1\x40\xA0\x4E\x94\xA7\x4A\xB5\x41\x53\x6D\x 48\xC3\x6D\xE4\
\xA4\xEC\xC8\x9C\x27\x7D\xE0\x79\x51\xB1\x25\xC6\x A1\x69\x14\xFB\
\x03\x7B\xC5\x1B\xE3\xEF\xA3\x1E\x04\xB5\xA5\xE1\x 4E\xC8\x5D\x28\
\x99\x30\x10\x39\x2F\x8D\xB3\xE0\x95\xF0\x36\x91\x 56\x46\xC4\x75')
SERVER_KEY_LicNum = bytearray(b'\x01\x00')

CLIENT_KEY_PASSWORD = bytearray(b'\xCB\x70\x6D\x3B')
# CLIENT_KEY_SN=0x1B93C5D6 - blocked, so modify it a bit: 0x1B93C4D6 => Data[9-10]: 97 F1
CLIENT_KEY_SN = bytearray(b'\xD6\xC4\x93\x1B')
CLIENT_KEY_HASPTYPE = bytearray(b'\x0A\x00\x00\x00')
CLIENT_KEY_MEMORYSIZE=bytearray(b'\x04\x00\x00\x00 ')
CLIENT_KEY_SecTable =bytearray(b'\x9A\x21\x2C\x25\xDE\x65\x6C\x65')
CLIENT_KEY_Data=bytearray(b'\
\x01\x00\x00\x00\x00\x00\x00\x08\x97\xF1\x84\xCF\x DC\x4E\x1E\xBB\
\x55\x6E\x19\x91\x2D\x4A\x74\xA3\x33\x7D\x33\x69\x 30\xE3\x5C\x64\
\xE5\xD7\x5B\x51\xC3\xC4\x9D\x0F\xF7\xD5\xF6\xA4\x 34\x0E\xE5\xE5\
\x4B\x63\x44\x2E\x80\x73\x06\xF8\x6A\xD1\x37\xBA\x 0F\x9A\xFD\x74\
\x7B\x5C\x89\xAE\x3B\xAC\x18\xBB\x71\x8A\x9B\x85\x 7C\x13\x1D\x9F\
\xBF\x55\x82\x70\x6D\x87\xDA\x18\x0A\xBD\xC4\x22\x 05\xA5\x28\xD4\
\x54\xB2\xBC\x38\xF1\xF2\xE6\xF4\x54\x09\x42\x4C\x B2\xE1\x1D\xAB')
CLIENT_KEY_LicNum = bytearray(b'\x64\x00')

pattern = bytearray(b'\x41\x81\x78\x08\x6C\x68\x73\x68')
unipatch = bytearray(b'\x51\x53\x52\x57\x56\xE8\x88\x13\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\xA0\x00\x00\x00\x00\x00\x00\x00\x A4\x00\x00\x00\x00\x00\x00\x00\xA8\x00\x00\x00\x00 \x00\x00\x00\xAC\x00\x00\x00\x00\x00\x00\x00\xB0\x 00\x00\x00\x00\x00\x00\x00\xB1\x00\x00\x00\x00\x00 \x00\x00\xB2\x00\x00\x00\x00\x00\x00\x00\xFA\x00\x 00\x00\x00\x00\x00\x00\xFA\x10\x00\x00\x00\x00\x00 \x00\x06\x11\x00\x00\x00\x00\x00\x00\xC4\x10\x00\x 00\x00\x00\x00\x00\xC8\x10\x00\x00\x00\x00\x00\x00 \xCC\x10\x00\x00\x00\x00\x00\x00\xD0\x10\x00\x00\x 00\x00\x00\x00\xD4\x10\x00\x00\x00\x00\x00\x00\xD5 \x10\x00\x00\x00\x00\x00\x00\xD6\x10\x00\x00\x00\x 00\x00\x00\x1E\x11\x00\x00\x00\x00\x00\x00\x0E\x13 \x00\x00\x00\x00\x00\x00\x1A\x13\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\xFB\x13\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x01\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x57\x 42\x50\x54\x01\x00\x00\x00\x70\x00\x00\x00\x00\x00 \x21\x11\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xFF\xFF\x 00\x01\x02\x4A\x1F\x01\x18\x02\x08\x01\x14\x2C\x33 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\xDB\x30\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x 00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\x64\x00\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x FF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF \xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x 00\x00\x00\x00\x00\x00\x64\x00\x00\x00\xFE\xFF\x00 \x01\x02\x4A\x1F\x01\x04\x07\x08\x01\x10\x34\x07\x 00\x5E\x48\x89\xC9\x48\x31\xC0\x48\x31\xD2\x8A\x41 \x16\x89\x06\x48\x89\xF3\x48\x83\xC6\x10\x48\x83\x F8\x01\x75\x0D\xC6\x41\x28\x01\xC6\x41\x30\x00\xE9 \x32\x02\x00\x00\x66\x8B\x51\x20\xC1\xE2\x10\x66\x 8B\x51\x24\x48\x8B\x3E\x3B\x14\x3E\x75\x02\x74\x10 \x48\x83\xC6\x50\x48\x8B\x3E\x3B\x14\x3E\x0F\x85\x 0D\x02\x00\x00\x89\x53\x04\x48\x89\x73\x08\x48\x83 \xF8\x03\x74\x06\x48\x83\xF8\x2C\x75\x21\x48\x03\x 76\x38\x48\x31\xC0\x8B\x41\x28\x48\xD1\xE0\x48\x0F \xB7\x04\x06\x89\x41\x2C\xC7\x41\x30\x00\x00\x00\x 00\xE9\xD9\x01\x00\x00\x48\x83\xF8\x68\x75\x27\x48 \x03\x76\x38\xB8\x70\x00\x00\x00\x48\x0F\xB7\x04\x 06\xC7\x41\x28\x01\x00\x00\x00\x89\x41\x2C\x89\x41 \x30\xC7\x41\x34\xFF\xFF\x00\x00\xE9\xAC\x01\x00\x 00\x48\x83\xF8\x05\x75\x2A\x48\x31\xC0\x48\x8B\x56 \x18\x8B\x04\x16\x89\x41\x28\x48\x8B\x56\x10\x8B\x 04\x16\x89\x41\x2C\xC7\x41\x30\xDE\x00\x00\x00\xC7 \x41\x34\x3C\x23\x00\x00\xE9\x7C\x01\x00\x00\x48\x 83\xF8\x06\x74\x05\x83\xF8\x2E\x75\x22\x48\x03\x76 \x08\x48\x31\xC0\x8B\x06\x48\x0F\xB7\xF8\xC1\xE8\x 10\x89\x79\x28\x89\x41\x2C\xC7\x41\x30\x00\x00\x00 \x00\xE9\x4F\x01\x00\x00\x48\x83\xF8\x28\x75\x1A\x C7\x41\x28\x00\x00\x00\x00\xC7\x41\x2C\x00\x00\x00 \x00\xC7\x41\x30\x00\x00\x00\x00\xE9\x2F\x01\x00\x 00\x48\x83\xF8\x2A\x75\x0C\xC7\x41\x30\x00\x00\x00 \x00\xE9\x1D\x01\x00\x00\x48\x83\xF8\x2B\x75\x0C\x C7\x41\x30\x00\x00\x00\x00\xE9\x0B\x01\x00\x00\x48 \x83\xF8\x30\x75\x05\xE9\x00\x01\x00\x00\x48\x83\x F8\x32\x74\x06\x48\x83\xF8\x34\x75\x32\x48\x03\x76 \x38\x48\x31\xC0\x48\x8B\x79\x40\x8B\x41\x28\x48\x D1\xE0\x48\x01\xC6\x48\x89\xC8\x48\x31\xC9\x8B\x48 \x2C\x9C\xFC\xF3\x66\xA5\x9D\x48\x89\xC1\xC7\x41\x 30\x00\x00\x00\x00\xE9\xC2\x00\x00\x00\x83\xF8\x33 \x74\x06\x48\x83\xF8\x33\x75\x35\x48\x03\x76\x38\x 48\x31\xC0\x48\x8B\x79\x40\x8B\x41\x28\x48\xD1\xE0 \x48\x01\xC6\x48\x89\xC8\x48\x31\xC9\x8B\x48\x2C\x 48\x87\xF7\x9C\xFC\xF3\x66\xA5\x9D\x48\x89\xC1\xC7 \x41\x30\x00\x00\x00\x00\xE9\x82\x00\x00\x00\x83\x F8\x3C\x74\x05\x83\xF8\x58\x75\x31\x83\x79\x2C\x08 \x72\x72\x51\x48\x81\xEC\x00\x01\x00\x00\x49\x89\x E0\x48\x31\xD2\x8B\x51\x2C\x48\x8B\x49\x40\xE8\x85 \x0B\x00\x00\x48\x81\xC4\x00\x01\x00\x00\x59\xC7\x 41\x30\x00\x00\x00\x00\xEB\x47\x83\xF8\x3D\x74\x05 \x83\xF8\x59\x75\x31\x83\x79\x2C\x08\x72\x37\x51\x 48\x31\xD2\x8B\x51\x2C\x48\x8B\x49\x40\x48\x81\xEC \x00\x01\x00\x00\x49\x89\xE0\xE8\x34\x10\x00\x00\x 48\x81\xC4\x00\x01\x00\x00\x59\xC7\x41\x30\x00\x00 \x00\x00\xEB\x0C\x83\xF8\x55\x75\x02\xEB\x05\xB8\x 78\x56\x34\x12\x5E\x5F\x5A\x5B\x59\xC3\x56\x57\x48 \x89\xD6\x48\x89\xCF\x31\xC9\x44\x89\xC1\xF3\xA4\x 5F\x5E\xC3\x48\x89\x54\x24\x10\x89\x4C\x24\x08\x48 \x83\xEC\x18\x8B\x44\x24\x20\x83\xE0\x1F\x89\x44\x 24\x20\x8B\x44\x24\x20\xC1\xE8\x02\x25\xFE\x00\x00 \x00\x48\x8B\x4C\x24\x28\x0F\xB6\x44\x01\x02\xB9\x 1F\x00\x00\x00\x2B\x4C\x24\x20\x83\xE1\x07\xD3\xF8 \x83\xE0\x01\x88\x44\x24\x04\x0F\xB6\x44\x24\x04\x 83\xF0\x01\x8B\x4C\x24\x20\xC1\xE9\x03\x21\xC8\x8B \x4C\x24\x20\x31\xC1\x89\xC8\x8B\x4C\x24\x20\xC1\x E9\x04\x31\xC8\x89\x04\x24\x48\x8B\x44\x24\x28\x8B \x40\x0F\xC1\xE8\x0A\x8B\x0C\x24\x31\xC1\x89\xC8\x 89\x04\x24\x48\x8B\x44\x24\x28\x8B\x40\x0F\xC1\xE8 \x07\x8B\x0C\x24\x31\xC1\x89\xC8\x89\x04\x24\x8B\x 44\x24\x20\x83\xE0\x02\x85\xC0\x74\x15\x48\x8B\x44 \x24\x28\x8B\x40\x0F\xC1\xE8\x05\x8B\x0C\x24\x31\x C1\x89\xC8\x89\x04\x24\x8B\x44\x24\x20\x83\xE0\x04 \x85\xC0\x74\x15\x48\x8B\x44\x24\x28\x8B\x40\x0F\x C1\xE8\x08\x8B\x0C\x24\x31\xC1\x89\xC8\x89\x04\x24 \x8B\x04\x24\x83\xE0\x01\x89\x04\x24\x8B\x44\x24\x 20\x83\xE0\x01\xC1\xE0\x02\x48\x8B\x4C\x24\x28\x8B \x49\x0F\x31\xC1\x89\xC8\x48\x8B\x4C\x24\x28\x89\x 41\x0F\x48\x8B\x44\x24\x28\x8B\x40\x0F\xD1\xE0\x48 \x8B\x4C\x24\x28\x89\x41\x0F\x48\x8B\x44\x24\x28\x 8B\x0C\x24\x8B\x40\x0F\x09\xC8\x48\x8B\x4C\x24\x28 \x89\x41\x0F\x48\x8B\x44\x24\x28\x8B\x40\x0F\xC1\x E8\x0B\x0F\xB6\x4C\x24\x04\x31\xC8\x83\xE0\x01\x48 \x83\xC4\x18\xC3\x48\x89\x54\x24\x10\x48\x89\x4C\x 24\x08\x48\x83\xEC\x48\xC7\x44\x24\x30\x1F\x00\x00 \x00\x48\x8B\x44\x24\x58\x8B\x40\x14\x89\x44\x24\x 20\x8B\x44\x24\x20\x35\x89\x19\x08\x01\x89\x44\x24 \x20\x8B\x44\x24\x20\xC1\xE8\x0C\x89\x44\x24\x20\x C7\x44\x24\x24\x0A\x00\x00\x00\xEB\x0A\x8B\x44\x24 \x24\xFF\xC8\x89\x44\x24\x24\x83\x7C\x24\x24\x05\x 76\x69\x0F\xB6\x44\x24\x20\x83\xE0\x0F\x89\x44\x24 \x2C\x83\x7C\x24\x2C\x00\x74\x0A\xC7\x44\x24\x38\x 01\x00\x00\x00\xEB\x08\xC7\x44\x24\x38\x00\x00\x00 \x00\x83\x7C\x24\x2C\x0B\x73\x0A\xC7\x44\x24\x3C\x 01\x00\x00\x00\xEB\x08\xC7\x44\x24\x3C\x00\x00\x00 \x00\x8B\x44\x24\x3C\x8B\x4C\x24\x38\x21\xC1\x89\x C8\x8B\x4C\x24\x24\xD3\xE0\x8B\x4C\x24\x30\x09\xC1 \x89\xC8\x89\x44\x24\x30\x8B\x44\x24\x20\xC1\xE8\x 04\x89\x44\x24\x20\xEB\x86\x8B\x44\x24\x30\xC1\xE8 \x06\x48\x8B\x4C\x24\x58\x88\x41\x13\x48\x8B\x44\x 24\x58\x0F\xB6\x40\x13\xC1\xE0\x06\x83\xC8\x1F\x48 \x8B\x4C\x24\x58\x89\x41\x0F\xC7\x44\x24\x24\x01\x 00\x00\x00\xC7\x44\x24\x28\x00\x00\x00\x00\xEB\x0A \x8B\x44\x24\x24\xFF\xC0\x89\x44\x24\x24\x83\x7C\x 24\x24\x27\x77\x6A\x8B\x44\x24\x28\x48\x8B\x4C\x24 \x50\x0F\xB6\x04\x01\x48\x8B\x54\x24\x58\x89\xC1\x E8\xA6\xFD\xFF\xFF\x89\x44\x24\x34\x48\x8B\x44\x24 \x50\x8B\x00\x83\xE0\x01\xD1\xE0\x0B\x44\x24\x34\x 89\x44\x24\x28\x48\x8B\x44\x24\x50\x8B\x00\x83\xE0 \x01\x3B\x44\x24\x34\x75\x12\x48\x8B\x44\x24\x50\x 8B\x00\xD1\xE8\x48\x8B\x4C\x24\x50\x89\x01\xEB\x15 \x48\x8B\x44\x24\x50\x8B\x00\xD1\xE8\x35\x62\x00\x 50\x80\x48\x8B\x4C\x24\x50\x89\x01\xEB\x85\x48\x83 \xC4\x48\xC3\x48\x89\x4C\x24\x08\x48\x83\xEC\x48\x 48\x8B\x44\x24\x50\x0F\xB6\x40\x01\xC1\xF8\x05\x83 \xE0\x01\x48\x8B\x4C\x24\x50\x88\x41\x0A\x48\x8B\x 44\x24\x50\x0F\xB6\x40\x02\xC1\xF8\x07\x83\xE0\x01 \x83\xF0\x01\x88\x44\x24\x24\x0F\xB6\x44\x24\x24\x 85\xC0\x74\x0E\x48\x8B\x44\x24\x50\x0F\xB6\x00\x89 \x44\x24\x3C\xEB\x0E\x48\x8B\x44\x24\x50\x0F\xB6\x 00\xF7\xD0\x89\x44\x24\x3C\x0F\xB6\x44\x24\x3C\x88 \x44\x24\x26\xC7\x44\x24\x28\x00\x00\x00\x00\x48\x 8B\x44\x24\x50\x0F\xB6\x40\x01\x83\xE0\x1F\x88\x44 \x24\x25\xC7\x44\x24\x2C\x00\x00\x00\x00\xEB\x0A\x 8B\x44\x24\x2C\xFF\xC0\x89\x44\x24\x2C\x83\x7C\x24 \x2C\x04\x7D\x3D\x0F\xB6\x44\x24\x28\xC0\xE0\x02\x 88\x44\x24\x28\x0F\xB6\x44\x24\x25\x83\xE0\x01\x0F \xB6\x4C\x24\x25\x83\xF1\x01\x83\xE1\x01\xD1\xE1\x 09\xC8\x0F\xB6\x4C\x24\x28\x09\xC1\x89\xC8\x88\x44 \x24\x28\x0F\xB6\x44\x24\x25\xD0\xE8\x88\x44\x24\x 25\xEB\xB2\x0F\xB6\x44\x24\x28\x35\xFF\x00\x00\x00 \x88\x44\x24\x2A\x0F\xB6\x44\x24\x28\x88\x44\x24\x 29\x0F\xB6\x44\x24\x2A\x88\x44\x24\x2B\xC7\x44\x24 \x2C\x00\x00\x00\x00\xEB\x0A\x8B\x44\x24\x2C\xFF\x C0\x89\x44\x24\x2C\x83\x7C\x24\x2C\x08\x0F\x8D\x9F \x00\x00\x00\x8B\x44\x24\x2C\x83\xC0\x08\xC1\xF8\x 02\x25\xFE\x00\x00\x00\x48\x98\x48\x8B\x4C\x24\x50 \x0F\xB6\x44\x01\x02\x8B\x4C\x24\x2C\x83\xC1\x08\x BA\x1F\x00\x00\x00\x29\xCA\x89\xD1\x83\xE1\x07\xD3 \xF8\x83\xE0\x01\x0F\xB6\x4C\x24\x25\x31\xC8\x8B\x 4C\x24\x2C\xD3\xE0\x0F\xB6\x4C\x24\x29\x31\xC1\x89 \xC8\x88\x44\x24\x29\x8B\x44\x24\x2C\x83\xC0\x18\x C1\xF8\x02\x25\xFE\x00\x00\x00\x48\x98\x48\x8B\x4C \x24\x50\x0F\xB6\x44\x01\x02\x8B\x4C\x24\x2C\x83\x C1\x18\xBA\x1F\x00\x00\x00\x29\xCA\x89\xD1\x83\xE1 \x07\xD3\xF8\x83\xE0\x01\x0F\xB6\x4C\x24\x25\x31\x C8\x8B\x4C\x24\x2C\xD3\xE0\x0F\xB6\x4C\x24\x2B\x31 \xC1\x89\xC8\x88\x44\x24\x2B\xE9\x4C\xFF\xFF\xFF\x 48\x8B\x44\x24\x50\xC7\x40\x0B\x00\x00\x00\x00\xC7 \x44\x24\x20\x00\x00\x00\x00\xC7\x44\x24\x30\x1F\x 00\x00\x00\xEB\x0A\x8B\x44\x24\x30\xFF\xC8\x89\x44 \x24\x30\x83\x7C\x24\x30\x00\x0F\x8C\xA4\x00\x00\x 00\x0F\xB6\x44\x24\x26\xC1\xE0\x03\x48\x8B\x4C\x24 \x50\x89\x41\x0F\xC7\x44\x24\x38\x00\x00\x00\x00\x EB\x0A\x8B\x44\x24\x38\xFF\xC0\x89\x44\x24\x38\x83 \x7C\x24\x38\x0C\x7D\x14\x48\x8B\x54\x24\x50\x8B\x 4C\x24\x30\xE8\xA6\x00\x00\x00\x88\x44\x24\x34\xEB \xDB\x8B\x44\x24\x20\xD1\xE0\x89\x44\x24\x20\x8B\x 44\x24\x30\xC1\xF8\x02\x25\xFE\x00\x00\x00\x48\x98 \x48\x8B\x4C\x24\x50\x0F\xB6\x44\x01\x02\xB9\x1F\x 00\x00\x00\x2B\x4C\x24\x30\x83\xE1\x07\xD3\xF8\x83 \xE0\x01\x8B\x4C\x24\x30\x83\xE1\x01\x31\xC8\x8B\x 4C\x24\x30\x8B\x54\x24\x28\xD3\xEA\x89\xD1\x83\xE1 \x01\x31\xC8\x0F\xB6\x4C\x24\x34\x31\xC8\x8B\x4C\x 24\x20\x09\xC1\x89\xC8\x89\x44\x24\x20\xE9\x47\xFF \xFF\xFF\x48\x8B\x44\x24\x50\x8B\x4C\x24\x20\x89\x 48\x0B\x0F\xB6\x44\x24\x26\xC1\xE0\x03\x0F\xB6\x4C \x24\x24\xC1\xE1\x02\x09\xC8\x0F\xB6\x4C\x24\x24\x D1\xE1\x09\xC8\x0F\xB6\x4C\x24\x24\x09\xC8\x48\x8B \x4C\x24\x50\x89\x41\x0F\x48\x83\xC4\x48\xC3\x48\x 89\x54\x24\x10\x89\x4C\x24\x08\x48\x83\xEC\x28\x8B \x44\x24\x30\x83\xE0\x1F\x89\x44\x24\x30\x8B\x44\x 24\x30\xD1\xE8\x83\xE0\x03\xE8\x10\x00\x00\x00\x80 \x04\x00\x00\xA0\x04\x00\x00\x80\x05\x00\x00\xA0\x 05\x00\x00\x59\x8B\x04\x81\x89\x44\x24\x04\xC7\x44 \x24\x08\x00\x00\x00\x00\xC7\x44\x24\x0C\x00\x00\x 00\x00\xEB\x0A\x8B\x44\x24\x0C\xFF\xC0\x89\x44\x24 \x0C\x83\x7C\x24\x0C\x0C\x7D\x3D\x8B\x44\x24\x0C\x 0F\xB6\xC8\x8B\x44\x24\x04\xD3\xE8\x83\xE0\x01\x85 \xC0\x74\x27\x8B\x44\x24\x0C\x48\x8B\x4C\x24\x38\x 48\x89\x4C\x24\x10\x0F\xB6\xC8\x48\x8B\x44\x24\x10 \x8B\x40\x0F\xD3\xE8\x8B\x4C\x24\x08\x31\xC1\x89\x C8\x89\x44\x24\x08\xEB\xB2\x8B\x44\x24\x30\x83\xE0 \x01\xC1\xE0\x02\x48\x8B\x4C\x24\x38\x8B\x49\x0F\x 31\xC1\x89\xC8\x48\x8B\x4C\x24\x38\x89\x41\x0F\x8B \x44\x24\x30\xC1\xE8\x02\x25\xFE\x00\x00\x00\x48\x 8B\x4C\x24\x38\x0F\xB6\x44\x01\x02\xB9\x1F\x00\x00 \x00\x2B\x4C\x24\x30\x83\xE1\x07\xD3\xF8\x83\xE0\x 01\x48\x8B\x4C\x24\x38\x0F\xB6\x49\x0A\x31\xC8\x88 \x04\x24\x48\x8B\x44\x24\x38\x8B\x40\x0F\xD1\xE0\x 0F\xB6\x0C\x24\x8B\x54\x24\x08\x31\xCA\x89\xD1\x83 \xE1\x01\x09\xC8\x48\x8B\x4C\x24\x38\x89\x41\x0F\x 8B\x44\x24\x30\x48\x8B\x4C\x24\x38\x48\x89\x4C\x24 \x18\x0F\xB6\xC8\x48\x8B\x44\x24\x18\x8B\x40\x0B\x D3\xE8\x83\xE0\x01\x48\x8B\x4C\x24\x38\x8B\x49\x0F \x31\xC1\x89\xC8\x48\x8B\x4C\x24\x38\x89\x41\x0F\x 48\x8B\x44\x24\x38\x8B\x40\x0F\xC1\xE8\x0B\x0F\xB6 \x0C\x24\x31\xC8\x83\xE0\x01\x48\x83\xC4\x28\xC3\x 48\x89\x54\x24\x10\x48\x89\x4C\x24\x08\x48\x83\xEC \x38\x48\x8B\x44\x24\x48\x83\x78\x14\x00\x74\x14\x 48\x8B\x54\x24\x48\x48\x8B\x4C\x24\x40\xE8\x3F\xFA \xFF\xFF\xE9\x97\x00\x00\x00\x48\x8B\x4C\x24\x48\x E8\xA6\xFB\xFF\xFF\xC7\x44\x24\x20\x01\x00\x00\x00 \xC7\x44\x24\x24\x00\x00\x00\x00\xEB\x0A\x8B\x44\x 24\x20\xFF\xC0\x89\x44\x24\x20\x83\x7C\x24\x20\x27 \x77\x6A\x8B\x44\x24\x24\x48\x8B\x4C\x24\x40\x0F\x B6\x04\x01\x48\x8B\x54\x24\x48\x89\xC1\xE8\x2E\xFE \xFF\xFF\x89\x44\x24\x28\x48\x8B\x44\x24\x40\x8B\x 00\x83\xE0\x01\xD1\xE0\x0B\x44\x24\x28\x89\x44\x24 \x24\x48\x8B\x44\x24\x40\x8B\x00\x83\xE0\x01\x3B\x 44\x24\x28\x75\x12\x48\x8B\x44\x24\x40\x8B\x00\xD1 \xE8\x48\x8B\x4C\x24\x40\x89\x01\xEB\x15\x48\x8B\x 44\x24\x40\x8B\x00\xD1\xE8\x35\x62\x00\x50\x80\x48 \x8B\x4C\x24\x40\x89\x01\xEB\x85\x48\x83\xC4\x38\x C3\x49\x89\xE3\x48\x83\xEC\x68\x45\x85\xC0\x49\x89 \x5B\xF8\x49\x89\x6B\xF0\x49\x89\x73\xE8\x49\x89\x 7B\xE0\x4D\x89\x63\xD8\x44\x8B\x61\x04\x44\x89\xC5 \x48\x89\xD6\x48\x89\xCB\x45\x89\xE1\x45\x89\x63\x C8\x74\x26\x49\x8D\x4B\xC8\x49\x89\x4B\xB8\xE8\x00 \x00\x00\x00\x5A\x48\x81\xEA\xD0\x1D\x00\x00\x48\x 8B\x12\x48\x03\x52\x20\xE8\xE2\xFE\xFF\xFF\x44\x8B \x4C\x24\x30\x8B\x03\x44\x31\xC8\x89\xC1\x44\x31\x E0\x35\xC3\x25\x34\x80\x89\x0B\x89\xC1\x35\xC3\x25 \x34\x80\xC1\xC0\x02\x33\x03\x89\x0B\x89\xC1\x35\x C3\x25\x34\x80\xC1\xC0\x04\x33\x03\x89\x0B\x89\xC1 \x35\xC3\x25\x34\x80\xC1\xC0\x06\x33\x03\x89\x0B\x 89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x08\x33\x03\x89 \xC2\x35\xC3\x25\x34\x80\xC1\xC0\x0A\x89\x13\x31\x C8\x85\xED\x48\x8B\x6C\x24\x58\x89\x43\x04\x41\x89 \xC4\x89\xC2\x89\x44\x24\x34\x74\x27\x48\x8D\x4C\x 24\x34\xE8\x00\x00\x00\x00\x5A\x48\x81\xEA\x5D\x1E \x00\x00\x48\x8B\x12\x48\x03\x52\x20\xE8\x55\xFE\x FF\xFF\x8B\x54\x24\x34\x44\x8B\x4C\x24\x30\x8B\x03 \x48\x8B\x7C\x24\x48\x31\xD0\x89\xC1\x44\x31\xE0\x 4C\x8B\x64\x24\x40\x35\x4A\x00\x2C\x5B\x89\x0B\x89 \xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x05\x33\x03\x89\x 0B\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0A\x33\x03 \x89\x0B\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0F\x 33\x03\x89\x0B\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0 \x14\x33\x03\x89\x0B\x89\xC1\x35\x4A\x00\x2C\x5B\x C1\xC0\x19\x33\x03\x48\x85\xF6\x89\x0B\x89\x43\x04 \x48\x8B\x5C\x24\x60\x74\x06\x44\x89\x0E\x89\x56\x 04\x48\x8B\x74\x24\x50\x48\x83\xC4\x68\xC3\x48\x83 \xEC\x08\x4C\x8D\x0C\x24\x41\xB8\x01\x00\x00\x00\x 49\x89\x09\x8B\x41\x5C\x48\xC1\xE0\x20\x8B\x49\x12 \x48\x09\xC1\x48\x89\xCA\x48\x83\xC2\x08\xE8\x6E\x FE\xFF\xFF\x48\x83\xC4\x08\xC3\x49\x89\xE3\x48\x83 \xEC\x68\x49\x89\x5B\xF8\x48\x89\xCB\x49\x89\x6B\x F0\x49\x89\x73\xE8\x49\x89\x7B\xE0\x4C\x89\xCF\x44 \x8B\x09\x4D\x89\x63\xD8\x45\x89\xC4\x44\x89\xC8\x 48\x89\xD6\x35\x4A\x00\x2C\x5B\xC1\xC0\x19\x33\x41 \x04\x44\x89\x49\x04\x89\x01\x89\xC1\x35\x4A\x00\x 2C\x5B\xC1\xC0\x14\x89\x4B\x04\x44\x31\xC8\x89\xC1 \x35\x4A\x00\x2C\x5B\xC1\xC0\x0F\x33\x43\x04\x89\x 4B\x04\x89\xC1\x35\x4A\x00\x2C\x5B\xC1\xC0\x0A\x33 \x43\x04\x89\x4B\x04\x89\xC1\x35\x4A\x00\x2C\x5B\x C1\xC0\x05\x33\x43\x04\x89\x4B\x04\x89\xC1\x8B\x43 \x04\x31\xC8\x89\x4B\x04\x35\x4A\x00\x2C\x5B\x45\x 85\xE4\x89\x03\x89\xC5\x41\x89\xC0\x89\x44\x24\x34 \x74\x37\x48\x8B\x07\x49\x8D\x4B\xCC\x44\x0F\xB7\x 48\x1E\x44\x0F\xB7\x40\x0C\x0F\xB7\x50\x08\x49\x89 \x4B\xB8\xE8\x00\x00\x00\x00\x5A\x48\x81\xEA\xE1\x 1F\x00\x00\x48\x8B\x12\x48\x03\x52\x20\xE8\xD1\xFC \xFF\xFF\x44\x8B\x44\x24\x34\x8B\x43\x04\x44\x31\x C0\x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x0A\x89\x4B \x04\x31\xE8\x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x 08\x33\x43\x04\x89\x4B\x04\x89\xC1\x35\xC3\x25\x34 \x80\xC1\xC0\x06\x33\x43\x04\x89\x4B\x04\x89\xC1\x 35\xC3\x25\x34\x80\xC1\xC0\x04\x33\x43\x04\x89\x4B \x04\x89\xC1\x35\xC3\x25\x34\x80\xC1\xC0\x02\x33\x 43\x04\x89\xC2\x89\xC8\x31\xD0\x89\x53\x04\x35\xC3 \x25\x34\x80\x45\x85\xE4\x4C\x8B\x64\x24\x40\x89\x 03\x89\xC5\x89\xC1\x89\x44\x24\x30\x74\x3D\x48\x8B \x07\x48\x8D\x4C\x24\x30\x44\x0F\xB7\x48\x1E\x44\x 0F\xB7\x40\x0C\x0F\xB7\x50\x08\x48\x89\x4C\x24\x20 \xE8\x00\x00\x00\x00\x5A\x48\x81\xEA\x8E\x20\x00\x 00\x48\x8B\x12\x48\x03\x52\x20\xE8\x24\xFC\xFF\xFF \x44\x8B\x44\x24\x34\x8B\x4C\x24\x30\x8B\x43\x04\x 48\x8B\x7C\x24\x48\x89\x6B\x04\x48\x8B\x6C\x24\x58 \x31\xC8\x48\x85\xF6\x89\x03\x48\x8B\x5C\x24\x60\x 74\x06\x89\x0E\x44\x89\x46\x04\x48\x8B\x74\x24\x50 \x48\x83\xC4\x68\xC3\x48\x83\xEC\x08\x4C\x8D\x0C\x 24\x41\xB8\x01\x00\x00\x00\x49\x89\x09\x8B\x41\x5C \x48\xC1\xE0\x20\x8B\x49\x12\x48\x09\xC1\x48\x89\x CA\x48\x83\xC2\x08\xE8\x23\xFE\xFF\xFF\x48\x83\xC4 \x08\xC3\x48\x89\xE0\x48\x81\xEC\xE8\x00\x00\x00\x 48\x89\x58\x08\x48\x89\x68\x10\x48\x89\x70\x18\x48 \x89\x78\x20\x4C\x89\x60\xF8\x4C\x89\x68\xF0\x4C\x 89\x70\xE8\x4C\x89\x78\xE0\xB8\x08\x00\x00\x00\x44 \x8D\x72\x07\x41\x89\xD7\x4C\x89\xC5\x41\xC1\xEE\x 03\x41\x83\xE7\x07\x48\x89\xCB\x44\x0F\x44\xF8\x45 \x31\xC9\x41\x8D\x46\xFF\x85\xC0\x44\x89\x7C\x24\x 28\x44\x89\x4C\x24\x24\x45\x89\xC8\x44\x89\x4C\x24 \x20\x45\x89\xCD\x45\x8D\x51\x02\x0F\x84\x7A\x02\x 00\x00\x48\x8B\x7C\x24\x30\x44\x8B\x64\x24\x54\x4D \x89\xD7\x44\x31\x03\x44\x31\x4B\x04\x45\x85\xED\x 8B\x0B\x8B\x53\x04\x0F\x85\x16\x01\x00\x00\x45\x39 \xFE\x0F\x86\xDB\x00\x00\x00\x66\x44\x89\x6D\x10\x 48\x8B\x03\x48\x89\xE9\x48\x89\x44\x24\x38\x48\x8D \x44\x24\x38\x48\x89\x7C\x24\x40\x89\x45\x12\x48\x 8D\x44\x24\x38\x66\x44\x89\x7D\x16\x48\xC1\xE8\x20 \x66\x44\x89\x6D\x3E\x89\x45\x5C\xE8\x1C\xFD\xFF\x FF\x48\x8B\x7C\x24\x40\x48\x8B\x44\x24\x38\x48\x89 \x7C\x24\x30\x8B\x74\x24\x34\x48\x89\x03\x89\x7C\x 24\x50\x48\x8D\x54\x24\x54\x66\x44\x89\x6D\x16\x45 \x8D\x45\x05\x8B\x4A\xFC\x48\x83\xC2\x14\x8D\x04\x 31\x83\xE1\x1F\x89\x42\xEC\x89\xF8\xD3\xC8\x31\x44 \x24\x54\x8B\x4A\xEC\x8D\x04\x31\x83\xE1\x1F\x89\x 42\xF0\x89\xF8\xD3\xC8\x31\x44\x24\x54\x8B\x4A\xF0 \x8D\x04\x31\x83\xE1\x1F\x89\x42\xF4\x89\xF8\xD3\x C8\x31\x44\x24\x54\x8B\x4A\xF4\x8D\x04\x31\x83\xE1 \x1F\x89\x42\xF8\x89\xF8\xD3\xC8\x31\x44\x24\x54\x 8B\x4A\xF8\x8D\x04\x31\x83\xE1\x1F\x89\x42\xFC\x44 \x8B\x64\x24\x54\x89\xF8\xD3\xC8\x41\x31\xC4\x49\x FF\xC8\x44\x89\x64\x24\x54\x75\x8A\xE9\x42\x01\x00 \x00\x48\x89\xD8\x48\x89\xE9\x66\xC7\x45\x10\x00\x 00\x48\xC1\xE8\x20\x66\xC7\x45\x16\x01\x00\x66\xC7 \x45\x3E\x00\x00\x89\x45\x5C\x89\x5D\x12\xE8\x52\x FC\xFF\xFF\x66\xC7\x45\x16\x00\x00\xE9\x10\x01\x00 \x00\x8B\x44\x24\x50\x46\x8D\x04\x21\x4C\x8D\x4C\x 24\x5C\x8D\x34\x02\x44\x89\x03\x4D\x89\xFA\x89\x73 \x04\x44\x89\xC1\x44\x89\xC2\x49\x83\xC1\x30\xC1\x E9\x04\x31\xF2\x83\xE1\x1F\xD3\xC2\x41\x2B\x51\xCC \x41\x31\xD0\x89\xD1\xC1\xE9\x07\x83\xE1\x1F\x41\x D3\xC0\x45\x03\x41\xD0\x44\x89\xC1\x44\x89\xC6\xC1 \xE9\x04\x31\xD6\x83\xE1\x1F\xD3\xC6\x41\x2B\x71\x D4\x41\x31\xF0\x89\xF1\xC1\xE9\x07\x83\xE1\x1F\x41 \xD3\xC0\x45\x03\x41\xD8\x44\x89\xC1\x44\x89\xC2\x C1\xE9\x04\x31\xF2\x83\xE1\x1F\xD3\xC2\x41\x2B\x51 \xDC\x41\x31\xD0\x89\xD1\xC1\xE9\x07\x83\xE1\x1F\x 41\xD3\xC0\x45\x03\x41\xE0\x44\x89\xC1\x44\x89\xC6 \xC1\xE9\x04\x31\xD6\x83\xE1\x1F\xD3\xC6\x41\x2B\x 71\xE4\x41\x31\xF0\x89\xF1\xC1\xE9\x07\x83\xE1\x1F \x41\xD3\xC0\x45\x03\x41\xE8\x44\x89\xC1\x44\x89\x C2\xC1\xE9\x04\x31\xF2\x83\xE1\x1F\xD3\xC2\x41\x2B \x51\xEC\x41\x31\xD0\x89\xD1\xC1\xE9\x07\x83\xE1\x 1F\x41\xD3\xC0\x45\x03\x41\xF0\x44\x89\xC1\x44\x89 \xC6\xC1\xE9\x04\x31\xD6\x83\xE1\x1F\xD3\xC6\x41\x 2B\x71\xF4\x41\x31\xF0\x89\xF1\xC1\xE9\x07\x83\xE1 \x1F\x41\xD3\xC0\x45\x03\x41\xF8\x49\xFF\xCA\x0F\x 85\x0F\xFF\xFF\xFF\x44\x89\x03\x89\x73\x04\x44\x8B \x03\x44\x8B\x4B\x04\x41\x8D\x46\xFF\x41\xFF\xC5\x 48\x83\xC3\x08\x44\x89\x44\x24\x20\x41\x39\xC5\x44 \x89\x4C\x24\x24\x0F\x82\xA0\xFD\xFF\xFF\x44\x8B\x 7C\x24\x28\x41\xBA\x02\x00\x00\x00\xEB\x05\x44\x8B \x64\x24\x54\x45\x85\xFF\x4C\x8B\xAC\x24\xD8\x00\x 00\x00\x74\x2C\x48\x8D\x44\x24\x20\x48\x89\xDF\x48 \x8D\x4C\x24\x20\x48\x29\xC7\x44\x89\xFA\x0F\xB6\x 04\x0F\x48\xFF\xC1\x30\x41\xFF\x48\xFF\xCA\x75\xF1 \x44\x8B\x4C\x24\x24\x44\x8B\x44\x24\x20\x41\x83\x FE\x02\x0F\x86\xFF\x00\x00\x00\x44\x03\x4C\x24\x50 \x48\x8D\x74\x24\x5C\x45\x01\xE0\x44\x89\xC1\x44\x 89\xC2\x48\x83\xC6\x30\xC1\xE9\x04\x44\x31\xCA\x83 \xE1\x1F\xD3\xC2\x2B\x56\xCC\x41\x31\xD0\x89\xD1\x C1\xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xD0 \x44\x89\xC1\x44\x89\xC7\xC1\xE9\x04\x31\xD7\x83\x E1\x1F\xD3\xC7\x2B\x7E\xD4\x41\x31\xF8\x89\xF9\xC1 \xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xD8\x 44\x89\xC1\x44\x89\xC2\xC1\xE9\x04\x31\xFA\x83\xE1 \x1F\xD3\xC2\x2B\x56\xDC\x41\x31\xD0\x89\xD1\xC1\x E9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xE0\x44 \x89\xC1\x44\x89\xC7\xC1\xE9\x04\x31\xD7\x83\xE1\x 1F\xD3\xC7\x2B\x7E\xE4\x41\x31\xF8\x89\xF9\xC1\xE9 \x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xE8\x44\x 89\xC1\x44\x89\xC2\xC1\xE9\x04\x31\xFA\x83\xE1\x1F \xD3\xC2\x2B\x56\xEC\x41\x31\xD0\x89\xD1\xC1\xE9\x 07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x46\xF0\x44\x89 \xC1\x45\x89\xC1\xC1\xE9\x04\x41\x31\xD1\x83\xE1\x 1F\x41\xD3\xC1\x44\x2B\x4E\xF4\x45\x31\xC8\x44\x89 \xC9\xC1\xE9\x07\x83\xE1\x1F\x41\xD3\xC0\x44\x03\x 46\xF8\x49\xFF\xCA\x0F\x85\x10\xFF\xFF\xFF\xEB\x51 \x41\x83\xFE\x01\x75\x0D\x8B\x03\x89\x44\x24\x20\x 8B\x43\x04\x89\x44\x24\x24\x48\x8D\x44\x24\x20\x48 \x89\xE9\x66\xC7\x45\x10\x00\x00\x89\x45\x12\x48\x 8D\x44\x24\x20\x66\xC7\x45\x16\x01\x00\x48\xC1\xE8 \x20\x66\xC7\x45\x3E\x00\x00\x89\x45\x5C\xE8\x7D\x F9\xFF\xFF\x44\x8B\x4C\x24\x24\x44\x8B\x44\x24\x20 \x66\xC7\x45\x16\x00\x00\x4C\x8B\xA4\x24\xE0\x00\x 00\x00\x48\x8B\xAC\x24\xF8\x00\x00\x00\x41\x83\xFE \x01\x4C\x8B\xB4\x24\xD0\x00\x00\x00\x76\x1B\x45\x 85\xFF\x74\x0C\x48\x8D\x73\xF8\x44\x89\xF9\x48\x89 \xDF\xF3\xA4\x44\x89\x43\xF8\x44\x89\x4B\xFC\xEB\x 07\x44\x89\x03\x44\x89\x4B\x04\x4C\x8B\xBC\x24\xC8 \x00\x00\x00\x48\x8B\xBC\x24\x08\x01\x00\x00\x48\x 8B\xB4\x24\x00\x01\x00\x00\x48\x8B\x9C\x24\xF0\x00 \x00\x00\x48\x81\xC4\xE8\x00\x00\x00\xC3\x48\x89\x E0\x48\x81\xEC\xF8\x00\x00\x00\x48\x89\x58\x08\x48 \x89\x68\x10\x48\x89\x70\x18\x48\x89\x78\x20\x4C\x 89\x60\xF8\x4C\x89\x68\xF0\x4C\x89\x70\xE8\x4C\x89 \x78\xE0\x48\x89\xCB\x8D\x4A\x07\x89\xD0\xBA\x08\x 00\x00\x00\xC1\xE9\x03\x83\xE0\x07\x4C\x89\xC7\x0F \x44\xC2\x45\x31\xFF\x83\xF9\x01\x89\x4C\x24\x30\x 44\x8D\x62\x04\x44\x89\x7C\x24\x2C\x44\x89\x7C\x24 \x34\x44\x89\x7C\x24\x28\x45\x89\xFE\x89\x44\x24\x 38\x0F\x86\x9F\x01\x00\x00\x83\xC1\xFE\x44\x89\xFE \x89\x4C\x24\x20\x0F\x84\x8F\x01\x00\x00\x48\x8B\x 44\x24\x40\x44\x8B\x6C\x24\x64\x8B\x6C\x24\x60\x85 \xF6\x44\x8B\x03\x44\x8B\x73\x04\x45\x89\xC7\x44\x 89\x44\x24\x28\x0F\x85\xEE\x00\x00\x00\x48\x89\x44 \x24\x50\x48\x8D\x44\x24\x48\x66\x89\x77\x10\x48\x 8B\x0B\x89\x47\x12\x48\x8D\x44\x24\x48\x48\xC1\xE8 \x20\x48\x89\x4C\x24\x48\x48\x89\xF9\x66\xC7\x47\x 16\x02\x00\x66\x89\x77\x3E\x89\x47\x5C\xE8\x0E\xFA \xFF\xFF\x48\x8B\x44\x24\x48\x4C\x8D\x44\x24\x64\x 48\x89\x03\x48\x8B\x44\x24\x50\x44\x8D\x56\x05\x48 \x89\x44\x24\x40\x44\x8B\x4C\x24\x44\x66\x89\x77\x 16\x89\x44\x24\x60\x41\x8B\x48\xFC\x49\x83\xC0\x14 \x42\x8D\x14\x09\x83\xE1\x1F\x41\x89\x50\xEC\x89\x C2\xD3\xCA\x31\x54\x24\x64\x41\x8B\x48\xEC\x42\x8D \x14\x09\x83\xE1\x1F\x41\x89\x50\xF0\x89\xC2\xD3\x CA\x31\x54\x24\x64\x41\x8B\x48\xF0\x42\x8D\x14\x09 \x83\xE1\x1F\x41\x89\x50\xF4\x89\xC2\xD3\xCA\x31\x 54\x24\x64\x41\x8B\x48\xF4\x42\x8D\x14\x09\x83\xE1 \x1F\x41\x89\x50\xF8\x89\xC2\xD3\xCA\x31\x54\x24\x 64\x41\x8B\x48\xF8\x42\x8D\x14\x09\x83\xE1\x1F\x41 \x89\x50\xFC\x44\x8B\x6C\x24\x64\x89\xC2\xD3\xCA\x 41\x31\xD5\x49\xFF\xCA\x44\x89\x6C\x24\x64\x0F\x85 \x77\xFF\xFF\xFF\x8B\x6C\x24\x60\xEB\x4B\x45\x89\x E3\x45\x89\xF1\x4C\x8D\x94\x24\xC0\x00\x00\x00\x45 \x2B\x42\x04\x44\x89\xC9\x49\x83\xEA\x08\xC1\xE9\x 07\x83\xE1\x1F\x41\xD3\xC8\x45\x31\xC8\x45\x03\x4A \x08\x44\x89\xC1\xC1\xE9\x04\x83\xE1\x1F\x41\xD3\x C9\x45\x31\xC1\x41\x83\xC3\xFF\x75\xD0\x45\x29\xE8 \x41\x29\xE9\x44\x89\x4B\x04\x44\x89\x03\x8B\x4C\x 24\x34\xFF\xC6\x48\x83\xC3\x08\x31\x4B\xF8\x8B\x4C \x24\x2C\x44\x89\x7C\x24\x34\x31\x4B\xFC\x3B\x74\x 24\x20\x44\x89\x74\x24\x2C\x0F\x82\x88\xFE\xFF\xFF \x8B\x44\x24\x38\x45\x31\xFF\xEB\x09\x44\x8B\x6C\x 24\x64\x8B\x6C\x24\x60\x85\xC0\x44\x89\x7C\x24\x20 \x44\x89\xFE\x44\x89\x7C\x24\x24\x74\x1A\x48\x8D\x 53\x08\x48\x8D\x4C\x24\x20\x41\x89\xC0\xE8\xB8\xED \xFF\xFF\x8B\x74\x24\x24\x44\x8B\x7C\x24\x20\x44\x 8B\x5C\x24\x30\x41\x83\xFB\x01\x75\x32\x48\x89\xD8 \x48\x89\xF9\x66\xC7\x47\x10\x00\x00\x48\xC1\xE8\x 20\x66\xC7\x47\x16\x01\x00\x66\xC7\x47\x3E\x00\x00 \x89\x47\x5C\x89\x5F\x12\xE8\x75\xF8\xFF\xFF\x66\x C7\x47\x16\x00\x00\xE9\x29\x01\x00\x00\x41\x83\xFB \x02\x75\x34\x48\x89\xD8\x48\x89\xF9\x66\xC7\x47\x 10\x00\x00\x48\xC1\xE8\x20\x66\xC7\x47\x16\x01\x00 \x66\xC7\x47\x3E\x00\x00\x89\x47\x5C\x89\x5F\x12\x E8\x3D\xF8\xFF\xFF\x44\x8B\x5C\x24\x30\x66\xC7\x47 \x16\x00\x00\xEB\x55\x8B\x13\x44\x8B\x43\x04\x45\x 89\xE2\x4C\x8D\x8C\x24\xC0\x00\x00\x00\x41\x2B\x51 \x04\x44\x89\xC1\x49\x83\xE9\x08\xC1\xE9\x07\x83\x E1\x1F\xD3\xCA\x44\x31\xC2\x45\x03\x41\x08\x89\xD1 \xC1\xE9\x04\x83\xE1\x1F\x41\xD3\xC8\x41\x31\xD0\x 41\x83\xC2\xFF\x75\xD2\x44\x29\xEA\x41\x29\xE8\x41 \x83\xFB\x01\x89\x13\x44\x89\x43\x04\x0F\x86\x9A\x 00\x00\x00\x44\x33\x3B\x33\x73\x04\x8B\x44\x24\x38 \x85\xC0\x44\x89\x7C\x24\x20\x89\x74\x24\x24\x74\x 31\x4C\x8D\x44\x24\x20\x49\x89\xD9\x48\x8D\x4B\x08 \x4D\x29\xC1\x49\x89\xC0\x48\x8D\x54\x24\x20\x0F\x B6\x01\x48\xFF\xC1\x48\xFF\xC2\x49\xFF\xC8\x41\x88 \x44\x11\xFF\x0F\xB6\x42\xFF\x88\x41\xFF\x75\xE6\x 41\x83\xFB\x02\x0F\x84\xED\xFE\xFF\xFF\x8B\x13\x44 \x8B\x43\x04\x4C\x8D\x8C\x24\xC0\x00\x00\x00\x41\x 2B\x51\x04\x44\x89\xC1\x49\x83\xE9\x08\xC1\xE9\x07 \x83\xE1\x1F\xD3\xCA\x44\x31\xC2\x45\x03\x41\x08\x 89\xD1\xC1\xE9\x04\x83\xE1\x1F\x41\xD3\xC8\x41\x31 \xD0\x41\x83\xC4\xFF\x75\xD2\x44\x29\xEA\x41\x29\x E8\x44\x89\x43\x04\x89\x13\x8B\x44\x24\x28\x4C\x8B \xBC\x24\xD8\x00\x00\x00\x4C\x8B\xAC\x24\xE8\x00\x 00\x00\x31\x03\x44\x31\x73\x04\x4C\x8B\xA4\x24\xF0 \x00\x00\x00\x4C\x8B\xB4\x24\xE0\x00\x00\x00\x48\x 8B\x9C\x24\x00\x01\x00\x00\x48\x8B\xBC\x24\x18\x01 \x00\x00\x48\x8B\xB4\x24\x10\x01\x00\x00\x48\x8B\x AC\x24\x08\x01\x00\x00\x48\x81\xC4\xF8\x00\x00\x00 \xC3\xCC\xCC\xCC\xCC\x57\x59\xE9\xF9\xD5\xFF\xFF')

fullfname=os.getcwd()+'/backbas.so'


a=0xBA
unipatch[a:a+4]=SERVER_KEY_PASSWORD
a=a+4
unipatch[a:a+4]=SERVER_KEY_SN
a=a+4
unipatch[a:a+4]=SERVER_KEY_HASPTYPE
a=a+4
unipatch[a:a+4]=SERVER_KEY_MEMORYSIZE
a=a+6
unipatch[a:a+8]=SERVER_KEY_SecTable
a=a+0x48
unipatch[a:a+0x70]=SERVER_KEY_Data
a=a+0x70
unipatch[a:a+2]=SERVER_KEY_LicNum


a=0x112E
unipatch[a:a+4]=CLIENT_KEY_PASSWORD
a=a+4
unipatch[a:a+4]=CLIENT_KEY_SN
a=a+4
unipatch[a:a+4]=CLIENT_KEY_HASPTYPE
a=a+4
unipatch[a:a+4]=CLIENT_KEY_MEMORYSIZE
a=a+6
unipatch[a:a+8]=CLIENT_KEY_SecTable
a=a+0x48
unipatch[a:a+0x70]=CLIENT_KEY_Data
a=a+0x70
unipatch[a:a+2]=CLIENT_KEY_LicNum


try:
fp = open(fullfname, 'r+')
if os.stat(fp.name).st_size > 0:
mm = mmap.mmap(fp.fileno(), 0)

# WTF? "to smoke": man 5 elf
if mm[0]!=0x7f or mm[1]!=0x45 or mm[2]!=0x4C or mm[3]!=0x46 or mm[4]!=2 or mm[5]!=1 or mm[6]!=1 or mm[16]!=3 or mm[17]!=0 or mm[18]!=0x3E or mm[19]!=0:
print ("what a fuck are you giving me?")
sys.exit()
e_phoff = mm[0x20]+(mm[0x21]+(mm[0x22]+(mm[0x23]<<8)<<8)<<8)
print (f"e_phoff = {hex(e_phoff)}")
e_phentsize = mm[0x36]+(mm[0x37]<<8)
print (f"e_phentsize = {hex(e_phentsize)}")
e_phnum = mm[0x38]+(mm[0x39]<<8)
print (f"e_phnum = {hex(e_phnum)}")
for i in range(e_phnum):
p = e_phoff + i * e_phentsize
p_type = mm[p]+(mm[p+1]+(mm[p+2]+(mm[p+3]<<8)<<8)<<8)
p_flags = mm[p+4]+(mm[p+5]+(mm[p+6]+(mm[p+7]<<8)<<8)<<8)
if (p_type==1 and p_flags==5):
print(f"p_type={hex(p_type)}, p_flags={hex(p_flags)}")
print(f"mm[{hex(p+4)}] += PF_W")
mm[p+4] = 7
break
else:
print(f"p_type={hex(p_type)}, p_flags={hex(p_flags)}")
pattern_addr = mm.find(pattern)
if pattern_addr != -1:
unipatch_addr=pattern_addr-0x2A75
print (f"patching {fullfname} at offset={hex(unipatch_addr)}")
mm[unipatch_addr:unipatch_addr+0x2A07] = unipatch

mm.close()
except IOError as e:
print (f"I/O error({e.errno}): {e.strerror}, filename={fullfname}")



print ('#############_SERVER_KEY_INFO_#################' , sep='', end='')
print ('')
a=0xBA
print ('SERVER_KEY_PASSWORD:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('SERVER_KEY_SN:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('SERVER_KEY_HASPTYPE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('SERVER_KEY_MEMORYSIZE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+6
print ('SERVER_KEY_SecTable:', sep='', end=' ')
for i in range(a,a+8):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+0x48
print ('SERVER_KEY_Data:', sep='', end='\n')
for i in range(a,a+0x70,16):
for k in range(0,16):
print (format(unipatch[i+k],'02X'), sep='', end=' ')
print ('')
a=a+0x70
print ('SERVER_KEY_LicNum:', sep='', end=' ')
for i in range(a,a+2):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')

print ('#############_CLIENT_KEY_INFO_#################' , sep='', end='')
print ('')
a=0x112E
print ('CLIENT_KEY_PASSWORD:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('CLIENT_KEY_SN:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('CLIENT_KEY_HASPTYPE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+4
print ('CLIENT_KEY_MEMORYSIZE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+6
print ('CLIENT_KEY_SecTable:', sep='', end=' ')
for i in range(a,a+8):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+0x48
print ('CLIENT_KEY_Data:', sep='', end='\n')
for i in range(a,a+0x70,16):
for k in range(0,16):
print (format(unipatch[i+k],'02X'), sep='', end=' ')
print ('')

a=a+0x70
print ('CLIENT_KEY_LicNum:', sep='', end=' ')
for i in range(a,a+2):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')

HPDX2300
28.07.2023, 12:56
Объясняю как проверить "дамп ключа выдержит 2-х этапную проверку изделием?"

Берём публичный дамп (создан ТГ-ботом) с SN=HASPID=478404269=0x1C83DEAD и раздаем его каким-либо HASPLM

Включаем создание технологического журнала - создаем в папке conf файл logcfg.xml такого содержания:

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log location="/tmp/1C/tlogs" history="10">
<event>
<eq property="name" value="hasp"/>
</event>
<property name="all"/>
</log>
</config>

у меня папка для журналов задана в строке (измените на своё):

log location="/tmp/1C/tlogs"

содержание технологического журнала с коментариями:


//запуск 1cv8, главный поток (OSThread=2712) процесса
11:28.370,HASP,2,process=1cv8,OSThread=2712,Txt='N ETHASP_SET_CONFIG_FILENAME(,prog=17,ser=ORGL8,,siz e=41,,FName=~/.1cv8/1C/1cv8/conf/nethasp.ini)->,,,'
11:28.370,HASP,2,process=1cv8,OSThread=2712,Txt='N ETHASP_LASTSTATUS(,prog=17,ser=ORGL8,,,,)->NStat=0,SysErr=0,stat=0,'
// далее все вызовы NETHASP_LASTSTATUS() удалены т.к. не интересны

// поздоровкаемся с HASPLM (т.е.NETHASP_LOGIN):
11:32.379,HASP,2,process=1cv8,OSThread=2712,Txt='N ETHASP_LOGIN(,prog=17,ser=ORGL8,,,,)->,,,'

// поиск локальных ключей клиентских серий:
11:32.380,HASP,2,process=1cv8,OSThread=2712,Txt='L OCALHASP_ISHASP(,,ser=ORGL8,,,,)->found=0,port=0,stat=-100,'
11:32.380,HASP,2,process=1cv8,OSThread=2712,Txt='L OCALHASP_ISHASP(,,ser=ORG8A,,,,)->found=0,port=0,stat=-100,'
11:32.380,HASP,2,process=1cv8,OSThread=2712,Txt='L OCALHASP_ISHASP(,,ser=ORG8B,,,,)->found=0,port=0,stat=-100,'
11:32.380,HASP,2,process=1cv8,OSThread=2712,Txt='L OCALHASP_ISHASP(,,ser=Base,,,,)->found=0,port=0,stat=0,'

11:32.380,HASP,2,process=1cv8,OSThread=2712,Txt='N ETHASP_SET_CONFIG_FILENAME(,prog=17,ser=ORG8A,,siz e=41,,FName=~/.1cv8/1C/1cv8/conf/nethasp.ini)->,,,'
11:32.383,HASP,2,process=1cv8,OSThread=2712,Txt='N ETHASP_LOGIN(,prog=17,ser=ORG8A,,,,)->,,,'
11:32.384,HASP,2,process=1cv8,OSThread=2712,Txt='N ETHASP_SETIDLETIME(idle=8,prog=17,ser=ORG8A,,,,)->,,,'

// читает первые (pos=0) 5 слов (size=5) из памяти ключа, результат=buf=01000000000000085E0C
11:32.386,HASP,2,process=1cv8,OSThread=2712,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=0,size=5,, )->,,stat=0,buf=01000000000000085E0C'

// HASPID=478404269=0x1C83DEAD
11:32.387,HASP,2,process=1cv8,OSThread=2712,Txt='N ETHASP_HASPID(,prog=17,ser=ORG8A,,,,)->id=478404269,,stat=0,'

11:32.389,HASP,2,process=1cv8,OSThread=2712,Txt='N ETHASP_HASPQUERYLICENSE(,prog=17,ser=ORG8A,,,,)->CurUsr=1,UsrLim=300,type=65535,remain=65535'
11:32.390,HASP,2,process=1cv8,OSThread=2712,Txt='N ETHASP_HASPQUERYLICENSE(,prog=17,ser=ORG8A,,,,)->CurUsr=1,UsrLim=300,type=65535,remain=65535'

11:32.391,HASP,2,process=1cv8,OSThread=2712,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=58,size=5, ,)->,,stat=0,buf=FFFFFFFFFFFFFFFFFFFF'

11:33.834,HASP,1,process=1cv8,OSThread=2712,Txt='N ETHASP_ENCODEDATA(,prog=17,ser=ORG8A,,size=39,,buf =7C7B00F5616677FEFA1254DBF286F008E62034A56A5047D51 7BDAE22FD7B0C79F70C6E5873E556)->,,stat=0,buf=9D3A65A2B9DD315EA7F6FD105D1D6745F6A13 C3E6BB3B10F45ACD4646CC5CBEAF8585FDBFE13DC'

// HASPID=478404269=0x1C83DEAD
11:33.857,HASP,1,process=1cv8,OSThread=2712,Txt='N ETHASP_HASPID(,prog=17,ser=ORG8A,,,,)->id=478404269,,stat=0,'

// поток OSThread=2748 начинает чтение памяти ключа (102 байт=51 слов) по одному слову за раз (size=1), смещение (pos=33) рандомизировано, результат чтения: buf=CB56
11:34.386,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=33,size=1, ,)->,,stat=0,buf=CB56'

11:34.649,HASP,1,process=1cv8,OSThread=2712,Usr=А дминистратор,Txt='NETHASP_READBLOCK(,p rog=17,ser=ORG8A,pos=0,size=5,,)->,,stat=0,buf=01000000000000085E0C'

// HASPID=478404269=0x1C83DEAD
11:34.650,HASP,1,process=1cv8,OSThread=2712,Usr=А дминистратор,Txt='NETHASP_HASPID(,prog =17,ser=ORG8A,,,,)->id=478404269,,stat=0,'

// у меня вызовы NETHASP_READBLOCK идут каждую секунду т.к. сломано "курение бамбука по 60-90 сек", у вас будут интервалы по 60-90 сек (значение рандомизировано)
11:35.388,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=51,size=1, ,)->,,stat=0,buf=7F19'
11:36.389,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=25,size=1, ,)->,,stat=0,buf=5A37'
11:37.391,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=24,size=1, ,)->,,stat=0,buf=62C3'
11:38.392,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=40,size=1, ,)->,,stat=0,buf=8162'
11:39.394,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=12,size=1, ,)->,,stat=0,buf=3D28'
11:40.395,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=35,size=1, ,)->,,stat=0,buf=6CC3'
11:41.397,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=10,size=1, ,)->,,stat=0,buf=97B9'
11:42.398,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=1,size=1,, )->,,stat=0,buf=0000'
11:43.400,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=14,size=1, ,)->,,stat=0,buf=4C33'
11:44.401,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=5,size=1,, )->,,stat=0,buf=6D6F'
11:45.403,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_HASPID(,prog=17,ser=ORG8A,,,,)->id=478404269,,stat=0,'
11:46.404,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=55,size=1, ,)->,,stat=0,buf=9E62'
11:47.406,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=32,size=1, ,)->,,stat=0,buf=7D6C'
11:48.407,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=11,size=1, ,)->,,stat=0,buf=2E4F'
11:49.409,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=18,size=1, ,)->,,stat=0,buf=70B1'
11:50.410,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=54,size=1, ,)->,,stat=0,buf=F88E'
11:51.411,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=31,size=1, ,)->,,stat=0,buf=ED65'
11:52.413,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=52,size=1, ,)->,,stat=0,buf=16DF'
11:53.414,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=27,size=1, ,)->,,stat=0,buf=79E4'
11:54.416,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=47,size=1, ,)->,,stat=0,buf=E2CE'
11:55.417,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=16,size=1, ,)->,,stat=0,buf=8D75'
11:56.419,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=6,size=1,, )->,,stat=0,buf=44FB'
11:57.420,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=43,size=1, ,)->,,stat=0,buf=03CC'
11:58.422,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=29,size=1, ,)->,,stat=0,buf=1B6F'
11:59.423,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=19,size=1, ,)->,,stat=0,buf=17C9'
12:00.425,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=22,size=1, ,)->,,stat=0,buf=FAAC'
12:01.426,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=0,size=1,, )->,,stat=0,buf=0100'
12:02.428,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=30,size=1, ,)->,,stat=0,buf=AE50'
12:03.429,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=36,size=1, ,)->,,stat=0,buf=AED5'
12:04.431,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=37,size=1, ,)->,,stat=0,buf=F515'
12:05.432,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=50,size=1, ,)->,,stat=0,buf=8F01'
12:06.433,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=48,size=1, ,)->,,stat=0,buf=1264'
12:07.435,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=3,size=1,, )->,,stat=0,buf=0008'
12:08.436,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=44,size=1, ,)->,,stat=0,buf=5A30'
12:09.438,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=49,size=1, ,)->,,stat=0,buf=3B5C'
12:10.439,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=8,size=1,, )->,,stat=0,buf=82CB'
12:11.441,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=26,size=1, ,)->,,stat=0,buf=B16E'
12:12.442,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=23,size=1, ,)->,,stat=0,buf=DABA'
12:13.444,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=2,size=1,, )->,,stat=0,buf=0000'
12:14.445,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=17,size=1, ,)->,,stat=0,buf=8417'
12:15.447,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=9,size=1,, )->,,stat=0,buf=CD99'
12:16.448,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=21,size=1, ,)->,,stat=0,buf=E434'
12:17.450,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=39,size=1, ,)->,,stat=0,buf=D01A'
12:18.451,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=41,size=1, ,)->,,stat=0,buf=4CC6'
12:19.453,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=34,size=1, ,)->,,stat=0,buf=3CE7'
12:20.454,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=45,size=1, ,)->,,stat=0,buf=690F'
12:21.456,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=28,size=1, ,)->,,stat=0,buf=A97F'
12:22.457,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=13,size=1, ,)->,,stat=0,buf=F937'
12:23.459,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=53,size=1, ,)->,,stat=0,buf=03D0'
12:24.460,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=20,size=1, ,)->,,stat=0,buf=B2D4'
12:25.462,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=38,size=1, ,)->,,stat=0,buf=901C'
12:26.463,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=46,size=1, ,)->,,stat=0,buf=F624'
12:27.465,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=42,size=1, ,)->,,stat=0,buf=001B'
12:28.466,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=15,size=1, ,)->,,stat=0,buf=3F45'
12:29.468,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=7,size=1,, )->,,stat=0,buf=0764'
12:30.469,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORG8A,pos=4,size=1,, )->,,stat=0,buf=5E0C'

// поток OSThread=2748 начал второй этап проверки памяти ключа (признак - вызов NETHASP_DECODEDATA, входные данные в буфере size=102 байт - первые 10 байт уже проверены 1-м этапом проверки, который происходит сразу после запуска):
12:31.472,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_DECODEDATA(,prog=17,ser=ORG8A,,size=102,,bu f=6D6F44FB076482CBCD9997B92E4F3D28F9374C333F458D75 841770B117C9B2D4E434FAACDABA62C35A37B16E79E4A97F1B 6FAE50ED657D6CCB563CE76CC3AED5F515901CD01A81624CC6 001B03CC5A30690FF624E2CE12643B5C8F017F1916DF03D0F8 8E9E62)->,,stat=0,buf=62A7BFF000507269766574314321446F6E617 42435306B3A4254433A626331716B776E6A6B34796D6338703 7383365356D3763773066756E61733636336A6A6E397838797 4333A546F676461506572657374616E75536C6F766F4861636 B657261214D694D6F'

// а теперь забавное - копируем результат NETHASP_DECODEDATA в буфер обмена:
// 62A7BFF000507269766574314321446F6E61742435306B3A42 54433A626331716B776E6A6B34796D63387037383365356D37 63773066756E61733636336A6A6E3978387974333A546F6764 61506572657374616E75536C6F766F4861636B657261214D69 4D6F
// и вставляем в редакторе как HEX-text (в редакторе 010editor - меню "Edit"->"Paste From..."->"Paste from HEX Text"; в notepad++ вставить и преобразовать в текст командой меню "Plugins"->"Convert"->"HEX->ASCII")
// получаем строку:
// Privet1C!Donat$50k:BTC:bc1qkwnjk4ymc8p783e5m7cw0fu nas663jjn9x8yt3:TogdaPerestanuSlovoHackera!MiMo
//
// перефразирую слова Фрунзика Мкртчяна в к/ф "Мимино" - "так доната 50000$ хочется, што кущать не могу"


// дальше идут вызовы DECODEDATA/ENCODEDATA, полагаю - для проверки "доступен ли HASP-ключ?", покажем несколько:
12:34.475,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_DECODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =E3EDB7B7CAF90B0C0B4133764FC270FAFFBA596C)->,,stat=0,buf=566E830B8AED5C39F51C8A405EFDBA8966A1C 569'
12:35.477,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_ENCODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =7BBCD17E8D0F28E1336359BEADCF4DDB7F737D4A)->,,stat=0,buf=8251BD6F798B90CDC6839711CB7C43C1CF0B5 104'
12:36.480,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_ENCODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =81C7E5954FC544F7B034E8FC1C353BC44E070B32)->,,stat=0,buf=FB7F736B7140B5EE21943A312D030F4540A66 F3E'
12:37.482,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_ENCODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =566E830B8AED5C39F51C8A405EFDBA8966A1C569)->,,stat=0,buf=E3EDB7B7CAF90B0C0B4133764FC270FAFFBA5 96C'
12:38.485,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_DECODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =8251BD6F798B90CDC6839711CB7C43C1CF0B5104)->,,stat=0,buf=7BBCD17E8D0F28E1336359BEADCF4DDB7F737 D4A'
12:39.487,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_ENCODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =8B453A18A98318B0D92816DC01E0ADBAA6E1ADA7)->,,stat=0,buf=D702DC2A980721D80CEC56512D3ADB257ACB9 51F'
12:40.489,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_DECODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =D702DC2A980721D80CEC56512D3ADB257ACB951F)->,,stat=0,buf=8B453A18A98318B0D92816DC01E0ADBAA6E1A DA7'
12:41.491,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_ENCODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =979182FE85C65026A0249FBA13F9D193962A21CE)->,,stat=0,buf=5BFD94963C4F0D847E4D4F75B043D1E3A0609 4EC'
12:42.494,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_DECODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =5BFD94963C4F0D847E4D4F75B043D1E3A06094EC)->,,stat=0,buf=979182FE85C65026A0249FBA13F9D193962A2 1CE'
12:43.497,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_DECODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =B95CD2478CA5E63CE5B6A6F2BB77E04B90CA87BB)->,,stat=0,buf=913FC0EEC288534575D3398D0918F08F9CBA9 FB9'
12:44.499,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_DECODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =FB7F736B7140B5EE21943A312D030F4540A66F3E)->,,stat=0,buf=81C7E5954FC544F7B034E8FC1C353BC44E070 B32'
12:45.501,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_ENCODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =913FC0EEC288534575D3398D0918F08F9CBA9FB9)->,,stat=0,buf=B95CD2478CA5E63CE5B6A6F2BB77E04B90CA8 7BB'
12:46.504,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_ENCODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =FC98C1CBD94D6F68073E99BAECB9671050293A0E)->,,stat=0,buf=93CD69CB77AA59B4466E94C6165C72FB596BB 48F'
12:47.506,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_DECODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =93CD69CB77AA59B4466E94C6165C72FB596BB48F)->,,stat=0,buf=FC98C1CBD94D6F68073E99BAECB9671050293 A0E'
12:48.508,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_ENCODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =FC98C1CBD94D6F68073E99BAECB9671050293A0E)->,,stat=0,buf=93CD69CB77AA59B4466E94C6165C72FB596BB 48F'
12:49.511,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_ENCODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =4D950A92F3F094C4F30AE877C6D6E14C55ED0C80)->,,stat=0,buf=D1A4E623584471B0C4246C2258D1DD52CD807 8A3'
12:50.513,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_ENCODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =4D950A92F3F094C4F30AE877C6D6E14C55ED0C80)->,,stat=0,buf=D1A4E623584471B0C4246C2258D1DD52CD807 8A3'
12:51.515,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_DECODEDATA(,prog=17,ser=ORG8A,,size=20,,buf =D1A4E623584471B0C4246C2258D1DD52CD8078A3)->,,stat=0,buf=4D950A92F3F094C4F30AE877C6D6E14C55ED0 C80'

// нормальный выход из программы заканчивается NETHASP_LOGOUT
12:52.248,HASP,0,process=1cv8,OSThread=2748,Txt='N ETHASP_LOGOUT(,prog=17,ser=ORG8A,,,,)->,,,'


затем раздадим фейковый дамп, сделан был для целей отладки изделия в дебагере:

DATA=
01 00 00 00 00 00 00 08 00 00 0B 0C 0D 0E 0F 10
11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F 20
21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30
31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 40
41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50
51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F 60
61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70
содержание технологического журнала в случае, когда вторая проверка памяти ключа не прошла

53:03.198,HASP,2,process=1cv8,OSThread=5121,Txt='N ETHASP_SET_CONFIG_FILENAME(,prog=17,ser=ORGL8,,siz e=41,,FName=~/.1cv8/1C/1cv8/conf/nethasp.ini)->,,,'
53:03.200,HASP,2,process=1cv8,OSThread=5121,Txt='N ETHASP_LOGIN(,prog=17,ser=ORGL8,,,,)->,,,'
53:03.201,HASP,2,process=1cv8,OSThread=5121,Txt='N ETHASP_SETIDLETIME(idle=8,prog=17,ser=ORGL8,,,,)->,,,'
53:03.203,HASP,2,process=1cv8,OSThread=5121,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=0,size=5,, )->,,stat=0,buf=01000000000000080000'
53:03.204,HASP,2,process=1cv8,OSThread=5121,Txt='N ETHASP_HASPID(,prog=17,ser=ORGL8,,,,)->id=1025225143,,stat=0,'
53:03.205,HASP,2,process=1cv8,OSThread=5121,Txt='N ETHASP_HASPQUERYLICENSE(,prog=17,ser=ORGL8,,,,)->CurUsr=1,UsrLim=100,type=100,remain=65535'
53:03.207,HASP,2,process=1cv8,OSThread=5121,Txt='N ETHASP_HASPQUERYLICENSE(,prog=17,ser=ORGL8,,,,)->CurUsr=1,UsrLim=100,type=100,remain=65535'
53:03.208,HASP,2,process=1cv8,OSThread=5121,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=58,size=5, ,)->,,stat=0,buf=FFFFFFFFFFFFFFFFFFFF'
53:04.615,HASP,1,process=1cv8,OSThread=5121,Txt='N ETHASP_ENCODEDATA(,prog=17,ser=ORGL8,,size=39,,buf =7C7B00F5616677FEFA1254DBF286F008E62034A56A5047D51 7BDAE22FD7B0C79F70C6E5873E556)->,,stat=0,buf=EDDDD12019B9D025019894BBEB79452DF13FD 141C5DCE779A5598710C3ACBDF1AF703CD9C1EF8E'
53:04.639,HASP,1,process=1cv8,OSThread=5121,Txt='N ETHASP_HASPID(,prog=17,ser=ORGL8,,,,)->id=1025225143,,stat=0,'
53:05.203,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=41,size=1, ,)->,,stat=0,buf=5354'
53:06.206,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=35,size=1, ,)->,,stat=0,buf=4748'
53:07.207,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=32,size=1, ,)->,,stat=0,buf=4142'
53:07.725,HASP,1,process=1cv8,OSThread=5121,Usr=А дминистратор,Txt='NETHASP_READBLOCK(,p rog=17,ser=ORGL8,pos=0,size=5,,)->,,stat=0,buf=01000000000000080000'
53:07.726,HASP,1,process=1cv8,OSThread=5121,Usr=А дминистратор,Txt='NETHASP_HASPID(,prog =17,ser=ORGL8,,,,)->id=1025225143,,stat=0,'
53:08.209,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=38,size=1, ,)->,,stat=0,buf=4D4E'
53:09.211,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=49,size=1, ,)->,,stat=0,buf=6364'
53:10.212,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=45,size=1, ,)->,,stat=0,buf=5B5C'
53:11.213,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=5,size=1,, )->,,stat=0,buf=0B0C'
53:12.215,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=1,size=1,, )->,,stat=0,buf=0000'
53:13.217,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=28,size=1, ,)->,,stat=0,buf=393A'
53:14.218,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=43,size=1, ,)->,,stat=0,buf=5758'
53:15.220,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=47,size=1, ,)->,,stat=0,buf=5F60'
53:16.221,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=11,size=1, ,)->,,stat=0,buf=1718'
53:17.223,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=27,size=1, ,)->,,stat=0,buf=3738'
53:18.224,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=8,size=1,, )->,,stat=0,buf=1112'
53:19.226,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_HASPID(,prog=17,ser=ORGL8,,,,)->id=1025225143,,stat=0,'
53:20.227,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=30,size=1, ,)->,,stat=0,buf=3D3E'
53:21.229,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=19,size=1, ,)->,,stat=0,buf=2728'
53:22.230,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=46,size=1, ,)->,,stat=0,buf=5D5E'
53:23.232,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=15,size=1, ,)->,,stat=0,buf=1F20'
53:24.233,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=26,size=1, ,)->,,stat=0,buf=3536'
53:25.235,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=55,size=1, ,)->,,stat=0,buf=6F70'
53:26.236,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=54,size=1, ,)->,,stat=0,buf=6D6E'
53:27.238,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=36,size=1, ,)->,,stat=0,buf=494A'
53:28.239,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=6,size=1,, )->,,stat=0,buf=0D0E'
53:29.241,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=23,size=1, ,)->,,stat=0,buf=2F30'
53:30.243,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=44,size=1, ,)->,,stat=0,buf=595A'
53:31.245,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=10,size=1, ,)->,,stat=0,buf=1516'
53:32.246,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=21,size=1, ,)->,,stat=0,buf=2B2C'
53:33.248,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=37,size=1, ,)->,,stat=0,buf=4B4C'
53:34.249,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=16,size=1, ,)->,,stat=0,buf=2122'
53:35.251,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=51,size=1, ,)->,,stat=0,buf=6768'
53:36.252,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=18,size=1, ,)->,,stat=0,buf=2526'
53:37.254,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=9,size=1,, )->,,stat=0,buf=1314'
53:38.255,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=22,size=1, ,)->,,stat=0,buf=2D2E'
53:39.257,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=34,size=1, ,)->,,stat=0,buf=4546'
53:40.258,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=52,size=1, ,)->,,stat=0,buf=696A'
53:41.260,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=39,size=1, ,)->,,stat=0,buf=4F50'
53:42.261,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=13,size=1, ,)->,,stat=0,buf=1B1C'
53:43.263,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=4,size=1,, )->,,stat=0,buf=0000'
53:44.264,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=31,size=1, ,)->,,stat=0,buf=3F40'
53:45.265,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=17,size=1, ,)->,,stat=0,buf=2324'
53:46.267,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=48,size=1, ,)->,,stat=0,buf=6162'
53:47.268,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=53,size=1, ,)->,,stat=0,buf=6B6C'
53:48.270,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=42,size=1, ,)->,,stat=0,buf=5556'
53:49.271,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=3,size=1,, )->,,stat=0,buf=0008'
53:50.273,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=20,size=1, ,)->,,stat=0,buf=292A'
53:51.275,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=33,size=1, ,)->,,stat=0,buf=4344'
53:52.276,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=29,size=1, ,)->,,stat=0,buf=3B3C'
53:53.278,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=7,size=1,, )->,,stat=0,buf=0F10'
53:54.279,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=12,size=1, ,)->,,stat=0,buf=191A'
53:55.281,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=0,size=1,, )->,,stat=0,buf=0100'
53:56.282,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=25,size=1, ,)->,,stat=0,buf=3334'
53:57.284,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=40,size=1, ,)->,,stat=0,buf=5152'
53:58.286,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=2,size=1,, )->,,stat=0,buf=0000'
53:59.287,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=14,size=1, ,)->,,stat=0,buf=1D1E'
54:00.289,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=50,size=1, ,)->,,stat=0,buf=6566'
54:01.291,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_READBLOCK(,prog=17,ser=ORGL8,pos=24,size=1, ,)->,,stat=0,buf=3132'
54:02.294,HASP,0,process=1cv8,OSThread=5157,Txt='N ETHASP_DECODEDATA(,prog=17,ser=ORGL8,,size=102,,bu f=0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122 232425262728292A2B2C2D2E2F303132333435363738393A3B 3C3D3E3F404142434445464748494A4B4C4D4E4F5051525354 55565758595A5B5C5D5E5F606162636465666768696A6B6C6D 6E6F70)->,,stat=0,buf=0452E9A796AE919ACDC37C760464FB464E802 195CF3D009C134F8631B62949BD30B667E98ED60CF5354FD6A 6B8198DD20E024B5B5541AD51F0945576D5752E61468681AEA EE4719BC1DCD36128BAD937204A1C6F40AB1B297609F880B90 3B68C58CA41A70139'

// работа приложения молча завершилась. в окне терминала, где запускался 1cv8, надпись:
terminate called after throwing an instance of 'backbas::HaspLostException'
Aborted (core dumped)

HPDX2300
28.07.2023, 14:59
Преамбула для "чайников":
этот код вычисляет 9 и 10 байт в дампе HASP-ключа исходя из значения SN, он же HASPID.
Код ниже сохранить в файл DATA9-10.py
Запускать так:

python DATA9-10.py

Если предварительно выполнить:

chmod +x DATA9-10.py
, то запускать можно будеть так:

./DATA9-10.py

Python2 код DATA9-10.py

#!/usr/bin/env python
SN=0x281DCE71
DATA=( (SN+0xC2E44E49) + ((SN+0xC2E44E49)>>16) ) & 0x0000FFFF
print 'SN = 0x%08X , DATA[9-10] = %02X %02X' % (SN, (DATA & 0xFF), DATA>>8)

Python3 код DATA9-10.py

#!/usr/bin/env python3
SN=0x281DCE71
DATA=( (SN+0xC2E44E49) + ((SN+0xC2E44E49)>>16) ) & 0x0000FFFF
print (f"SN=0x{SN:08X} , DATA[9-10]={(DATA & 0xFF):02X} {(DATA>>8):02X}")

HPDX2300
07.11.2023, 20:21
Унипатч доработан так, чтобы можно было легко изменять в текстовом редакторе используемые им дампы.
В первых строках скрипта меняете SERVER_KEY_HASPID и CLIENT_KEY_HASPID, SERVER_KEY_Data и CLIENT_KEY_Data будут поправлены автомагичесчки так, чтобы получились дампы, выдерживающие 2-х этапную проверку изделием памяти ключа. "Четыре палёных дампа для мультика воскресли из пепла!"
Выхлоп скрипта в stdout будет содержать инфу о дампах SERVER_KEY и CLIENT_KEY.

Унипатч теперь правильно эмулирует сетевой HASP-API, в диалоге "About" отображается число спартанцев сетевого ключа.
Это на практике проявляется так: сперва вы запускали изделие с помощью парочки эмулятор+HASPLM, изделие запомнило в файле 1cv8conn.pfl последний успешный путь получения лицензии на запуск (от сетевого HASPLM), при следующем запуске читается файл 1cv8conn.pfl и выполняется попытка получить лицензию также как прошлый раз. Если теперь либа патчена унипатчем, то унипатч честно выполнит эмуляцию сетевого HASPLM, и в диалоге "О программе" --> "Лицензия:" будет написано "Текущая: Сетевой HASP4 ORGL8 100" (Сетевой, а не Локальный!)

Порядок байтов в hex-дампах как в исполняемых модулях для процессора Intel - младший байт идет первым
SERVER_KEY_HASPID и CLIENT_KEY_HASPID редактируются в тех местах, где подсказано подчёркиванием.

Повторю для "чайников":
это патчер изделия для линукса-x64
код ниже сохранить в файл unipatch.py
запускать так (либа бэкбейс должна быть рядом - в том же каталоге):
python3 unipatch.py
если предварительно выполнить:
chmod +x unipatch.py
, то запускать можно будеть так:
./unipatch.py


#!/usr/bin/env python3
import sys, os, mmap

SERVER_KEY_PASSWORD = bytearray.fromhex('7A 23 25 41')
# SERVER_KEY_SN=0x281DCF71=bytearray.fromhex('71 CF 1D 28') - it's been blocked, so modify it a bit (exactly 9-th bit): 0x281DCE71 => Data[9-10]: BC 07
SERVER_KEY_HASPID=0x281DCE71
# here ^^^ ^^ you can modify
#SERVER_KEY_SN=bytearray.fromhex('71 CE 1D 28')
SERVER_KEY_SN=SERVER_KEY_HASPID.to_bytes(4, byteorder='little', signed=False)
SERVER_KEY_HASPTYPE = bytearray.fromhex('01 00 00 00')
SERVER_KEY_MEMORYSIZE=bytearray.fromhex('01 00 00 00')
SERVER_KEY_SecTable =bytearray.fromhex('15 EA 8F EA 73 EA EB EA')
SERVER_KEY_Data=bytearray.fromhex('\
01 00 00 00 00 00 00 D0 BC 07 3F 28 30 02 E5 6F\
3E 39 D4 76 9F 6F D4 76 21 57 02 41 C3 CC D5 A7\
4B 4C C2 81 64 84 55 76 41 E1 5E 2C 18 A7 6F F2\
08 E1 40 A0 4E 94 A7 4A B5 41 53 6D 48 C3 6D E4\
A4 EC C8 9C 27 7D E0 79 51 B1 25 C6 A1 69 14 FB\
03 7B C5 1B E3 EF A3 1E 04 B5 A5 E1 4E C8 5D 28\
99 30 10 39 2F 8D B3 E0 95 F0 36 91 56 46 C4 75')
SERVER_KEY_LicNum = bytearray.fromhex('01 00')

DATA=( (SERVER_KEY_HASPID+0xC2E44E49) + ((SERVER_KEY_HASPID+0xC2E44E49)>>16) ) & 0x0000FFFF
DATA9=(DATA & 0xFF)
DATA10=(DATA>>8)
SERVER_KEY_Data[8]=DATA9.to_bytes(1, byteorder='little', signed=False)[0]
SERVER_KEY_Data[9]=DATA10.to_bytes(1, byteorder='little', signed=False)[0]

CLIENT_KEY_PASSWORD = bytearray.fromhex('CB 70 6D 3B')
# CLIENT_KEY_SN=0x1B93C5D6=bytearray.fromhex('D6 C5 93 1B') - it's been blocked, so modify it a bit (exactly 9-th bit): 0x1B93C4D6 => Data[9-10]: 97 F1
CLIENT_KEY_HASPID=0x1B93C4D6
# here ^^^ ^^ you can modify
#CLIENT_KEY_SN=bytearray.fromhex('D6 C4 93 1B')
CLIENT_KEY_SN=CLIENT_KEY_HASPID.to_bytes(4, byteorder='little', signed=False)
CLIENT_KEY_HASPTYPE = bytearray.fromhex('0A 00 00 00')
CLIENT_KEY_MEMORYSIZE=bytearray.fromhex('04 00 00 00')
CLIENT_KEY_SecTable =bytearray.fromhex('9A 21 2C 25 DE 65 6C 65')
CLIENT_KEY_Data=bytearray.fromhex('\
01 00 00 00 00 00 00 08 97 F1 84 CF DC 4E 1E BB\
55 6E 19 91 2D 4A 74 A3 33 7D 33 69 30 E3 5C 64\
E5 D7 5B 51 C3 C4 9D 0F F7 D5 F6 A4 34 0E E5 E5\
4B 63 44 2E 80 73 06 F8 6A D1 37 BA 0F 9A FD 74\
7B 5C 89 AE 3B AC 18 BB 71 8A 9B 85 7C 13 1D 9F\
BF 55 82 70 6D 87 DA 18 0A BD C4 22 05 A5 28 D4\
54 B2 BC 38 F1 F2 E6 F4 54 09 42 4C B2 E1 1D AB')
CLIENT_KEY_LicNum = bytearray.fromhex('64 00')

DATA=( (CLIENT_KEY_HASPID+0xC2E44E49) + ((CLIENT_KEY_HASPID+0xC2E44E49)>>16) ) & 0x0000FFFF
DATA9=(DATA & 0xFF)
DATA10=(DATA>>8)
CLIENT_KEY_Data[8]=DATA9.to_bytes(1, byteorder='little', signed=False)[0]
CLIENT_KEY_Data[9]=DATA10.to_bytes(1, byteorder='little', signed=False)[0]

pattern = bytearray.fromhex('41 81 78 08 6C 68 73 68')
unipatch = bytearray.fromhex('51 53 52 57 56 E8 88 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 A0 00 00 00 00 00 00 00 A4 00 00 00 00 00 00 00 A8 00 00 00 00 00 00 00 AC 00 00 00 00 00 00 00 B0 00 00 00 00 00 00 00 B1 00 00 00 00 00 00 00 B2 00 00 00 00 00 00 00 FA 00 00 00 00 00 00 00 FA 10 00 00 00 00 00 00 06 11 00 00 00 00 00 00 C4 10 00 00 00 00 00 00 C8 10 00 00 00 00 00 00 CC 10 00 00 00 00 00 00 D0 10 00 00 00 00 00 00 D4 10 00 00 00 00 00 00 D5 10 00 00 00 00 00 00 D6 10 00 00 00 00 00 00 1E 11 00 00 00 00 00 00 0E 13 00 00 00 00 00 00 1A 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FB 13 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 57 42 50 54 01 00 00 00 70 00 00 00 00 00 21 11 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 FF FF 00 01 02 4A 1F 01 18 02 08 01 14 2C 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 DB 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 64 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 00 00 00 00 00 00 64 00 00 00 FE FF 00 01 02 4A 1F 01 04 07 08 01 10 34 07 00 5E 48 89 C9 48 31 C0 48 31 D2 8A 41 16 89 06 48 89 F3 48 83 C6 10 48 83 F8 01 75 0D C6 41 28 01 C6 41 30 00 E9 32 02 00 00 66 8B 51 20 C1 E2 10 66 8B 51 24 48 8B 3E 3B 14 3E 75 02 74 10 48 83 C6 50 48 8B 3E 3B 14 3E 0F 85 0D 02 00 00 89 53 04 48 89 73 08 48 83 F8 03 74 06 48 83 F8 2C 75 21 48 03 76 38 48 31 C0 8B 41 28 48 D1 E0 48 0F B7 04 06 89 41 2C C7 41 30 00 00 00 00 E9 D9 01 00 00 48 83 F8 68 75 27 48 03 76 38 B8 70 00 00 00 48 0F B7 04 06 C7 41 28 01 00 00 00 89 41 2C 89 41 30 C7 41 34 FF FF 00 00 E9 AC 01 00 00 48 83 F8 05 75 2A 48 31 C0 48 8B 56 18 8B 04 16 89 41 28 48 8B 56 10 8B 04 16 89 41 2C C7 41 30 DE 00 00 00 C7 41 34 3C 23 00 00 E9 7C 01 00 00 48 83 F8 06 74 05 83 F8 2E 75 22 48 03 76 08 48 31 C0 8B 06 48 0F B7 F8 C1 E8 10 89 79 28 89 41 2C C7 41 30 00 00 00 00 E9 4F 01 00 00 48 83 F8 28 75 1A C7 41 28 00 00 00 00 C7 41 2C 00 00 00 00 C7 41 30 00 00 00 00 E9 2F 01 00 00 48 83 F8 2A 75 0C C7 41 30 00 00 00 00 E9 1D 01 00 00 48 83 F8 2B 75 0C C7 41 30 00 00 00 00 E9 0B 01 00 00 48 83 F8 30 75 05 E9 00 01 00 00 48 83 F8 32 74 06 48 83 F8 34 75 32 48 03 76 38 48 31 C0 48 8B 79 40 8B 41 28 48 D1 E0 48 01 C6 48 89 C8 48 31 C9 8B 48 2C 9C FC F3 66 A5 9D 48 89 C1 C7 41 30 00 00 00 00 E9 C2 00 00 00 83 F8 33 74 06 48 83 F8 33 75 35 48 03 76 38 48 31 C0 48 8B 79 40 8B 41 28 48 D1 E0 48 01 C6 48 89 C8 48 31 C9 8B 48 2C 48 87 F7 9C FC F3 66 A5 9D 48 89 C1 C7 41 30 00 00 00 00 E9 82 00 00 00 83 F8 3C 74 05 83 F8 58 75 31 83 79 2C 08 72 72 51 48 81 EC 00 01 00 00 49 89 E0 48 31 D2 8B 51 2C 48 8B 49 40 E8 85 0B 00 00 48 81 C4 00 01 00 00 59 C7 41 30 00 00 00 00 EB 47 83 F8 3D 74 05 83 F8 59 75 31 83 79 2C 08 72 37 51 48 31 D2 8B 51 2C 48 8B 49 40 48 81 EC 00 01 00 00 49 89 E0 E8 34 10 00 00 48 81 C4 00 01 00 00 59 C7 41 30 00 00 00 00 EB 0C 83 F8 55 75 02 EB 05 B8 78 56 34 12 5E 5F 5A 5B 59 C3 56 57 48 89 D6 48 89 CF 31 C9 44 89 C1 F3 A4 5F 5E C3 48 89 54 24 10 89 4C 24 08 48 83 EC 18 8B 44 24 20 83 E0 1F 89 44 24 20 8B 44 24 20 C1 E8 02 25 FE 00 00 00 48 8B 4C 24 28 0F B6 44 01 02 B9 1F 00 00 00 2B 4C 24 20 83 E1 07 D3 F8 83 E0 01 88 44 24 04 0F B6 44 24 04 83 F0 01 8B 4C 24 20 C1 E9 03 21 C8 8B 4C 24 20 31 C1 89 C8 8B 4C 24 20 C1 E9 04 31 C8 89 04 24 48 8B 44 24 28 8B 40 0F C1 E8 0A 8B 0C 24 31 C1 89 C8 89 04 24 48 8B 44 24 28 8B 40 0F C1 E8 07 8B 0C 24 31 C1 89 C8 89 04 24 8B 44 24 20 83 E0 02 85 C0 74 15 48 8B 44 24 28 8B 40 0F C1 E8 05 8B 0C 24 31 C1 89 C8 89 04 24 8B 44 24 20 83 E0 04 85 C0 74 15 48 8B 44 24 28 8B 40 0F C1 E8 08 8B 0C 24 31 C1 89 C8 89 04 24 8B 04 24 83 E0 01 89 04 24 8B 44 24 20 83 E0 01 C1 E0 02 48 8B 4C 24 28 8B 49 0F 31 C1 89 C8 48 8B 4C 24 28 89 41 0F 48 8B 44 24 28 8B 40 0F D1 E0 48 8B 4C 24 28 89 41 0F 48 8B 44 24 28 8B 0C 24 8B 40 0F 09 C8 48 8B 4C 24 28 89 41 0F 48 8B 44 24 28 8B 40 0F C1 E8 0B 0F B6 4C 24 04 31 C8 83 E0 01 48 83 C4 18 C3 48 89 54 24 10 48 89 4C 24 08 48 83 EC 48 C7 44 24 30 1F 00 00 00 48 8B 44 24 58 8B 40 14 89 44 24 20 8B 44 24 20 35 89 19 08 01 89 44 24 20 8B 44 24 20 C1 E8 0C 89 44 24 20 C7 44 24 24 0A 00 00 00 EB 0A 8B 44 24 24 FF C8 89 44 24 24 83 7C 24 24 05 76 69 0F B6 44 24 20 83 E0 0F 89 44 24 2C 83 7C 24 2C 00 74 0A C7 44 24 38 01 00 00 00 EB 08 C7 44 24 38 00 00 00 00 83 7C 24 2C 0B 73 0A C7 44 24 3C 01 00 00 00 EB 08 C7 44 24 3C 00 00 00 00 8B 44 24 3C 8B 4C 24 38 21 C1 89 C8 8B 4C 24 24 D3 E0 8B 4C 24 30 09 C1 89 C8 89 44 24 30 8B 44 24 20 C1 E8 04 89 44 24 20 EB 86 8B 44 24 30 C1 E8 06 48 8B 4C 24 58 88 41 13 48 8B 44 24 58 0F B6 40 13 C1 E0 06 83 C8 1F 48 8B 4C 24 58 89 41 0F C7 44 24 24 01 00 00 00 C7 44 24 28 00 00 00 00 EB 0A 8B 44 24 24 FF C0 89 44 24 24 83 7C 24 24 27 77 6A 8B 44 24 28 48 8B 4C 24 50 0F B6 04 01 48 8B 54 24 58 89 C1 E8 A6 FD FF FF 89 44 24 34 48 8B 44 24 50 8B 00 83 E0 01 D1 E0 0B 44 24 34 89 44 24 28 48 8B 44 24 50 8B 00 83 E0 01 3B 44 24 34 75 12 48 8B 44 24 50 8B 00 D1 E8 48 8B 4C 24 50 89 01 EB 15 48 8B 44 24 50 8B 00 D1 E8 35 62 00 50 80 48 8B 4C 24 50 89 01 EB 85 48 83 C4 48 C3 48 89 4C 24 08 48 83 EC 48 48 8B 44 24 50 0F B6 40 01 C1 F8 05 83 E0 01 48 8B 4C 24 50 88 41 0A 48 8B 44 24 50 0F B6 40 02 C1 F8 07 83 E0 01 83 F0 01 88 44 24 24 0F B6 44 24 24 85 C0 74 0E 48 8B 44 24 50 0F B6 00 89 44 24 3C EB 0E 48 8B 44 24 50 0F B6 00 F7 D0 89 44 24 3C 0F B6 44 24 3C 88 44 24 26 C7 44 24 28 00 00 00 00 48 8B 44 24 50 0F B6 40 01 83 E0 1F 88 44 24 25 C7 44 24 2C 00 00 00 00 EB 0A 8B 44 24 2C FF C0 89 44 24 2C 83 7C 24 2C 04 7D 3D 0F B6 44 24 28 C0 E0 02 88 44 24 28 0F B6 44 24 25 83 E0 01 0F B6 4C 24 25 83 F1 01 83 E1 01 D1 E1 09 C8 0F B6 4C 24 28 09 C1 89 C8 88 44 24 28 0F B6 44 24 25 D0 E8 88 44 24 25 EB B2 0F B6 44 24 28 35 FF 00 00 00 88 44 24 2A 0F B6 44 24 28 88 44 24 29 0F B6 44 24 2A 88 44 24 2B C7 44 24 2C 00 00 00 00 EB 0A 8B 44 24 2C FF C0 89 44 24 2C 83 7C 24 2C 08 0F 8D 9F 00 00 00 8B 44 24 2C 83 C0 08 C1 F8 02 25 FE 00 00 00 48 98 48 8B 4C 24 50 0F B6 44 01 02 8B 4C 24 2C 83 C1 08 BA 1F 00 00 00 29 CA 89 D1 83 E1 07 D3 F8 83 E0 01 0F B6 4C 24 25 31 C8 8B 4C 24 2C D3 E0 0F B6 4C 24 29 31 C1 89 C8 88 44 24 29 8B 44 24 2C 83 C0 18 C1 F8 02 25 FE 00 00 00 48 98 48 8B 4C 24 50 0F B6 44 01 02 8B 4C 24 2C 83 C1 18 BA 1F 00 00 00 29 CA 89 D1 83 E1 07 D3 F8 83 E0 01 0F B6 4C 24 25 31 C8 8B 4C 24 2C D3 E0 0F B6 4C 24 2B 31 C1 89 C8 88 44 24 2B E9 4C FF FF FF 48 8B 44 24 50 C7 40 0B 00 00 00 00 C7 44 24 20 00 00 00 00 C7 44 24 30 1F 00 00 00 EB 0A 8B 44 24 30 FF C8 89 44 24 30 83 7C 24 30 00 0F 8C A4 00 00 00 0F B6 44 24 26 C1 E0 03 48 8B 4C 24 50 89 41 0F C7 44 24 38 00 00 00 00 EB 0A 8B 44 24 38 FF C0 89 44 24 38 83 7C 24 38 0C 7D 14 48 8B 54 24 50 8B 4C 24 30 E8 A6 00 00 00 88 44 24 34 EB DB 8B 44 24 20 D1 E0 89 44 24 20 8B 44 24 30 C1 F8 02 25 FE 00 00 00 48 98 48 8B 4C 24 50 0F B6 44 01 02 B9 1F 00 00 00 2B 4C 24 30 83 E1 07 D3 F8 83 E0 01 8B 4C 24 30 83 E1 01 31 C8 8B 4C 24 30 8B 54 24 28 D3 EA 89 D1 83 E1 01 31 C8 0F B6 4C 24 34 31 C8 8B 4C 24 20 09 C1 89 C8 89 44 24 20 E9 47 FF FF FF 48 8B 44 24 50 8B 4C 24 20 89 48 0B 0F B6 44 24 26 C1 E0 03 0F B6 4C 24 24 C1 E1 02 09 C8 0F B6 4C 24 24 D1 E1 09 C8 0F B6 4C 24 24 09 C8 48 8B 4C 24 50 89 41 0F 48 83 C4 48 C3 48 89 54 24 10 89 4C 24 08 48 83 EC 28 8B 44 24 30 83 E0 1F 89 44 24 30 8B 44 24 30 D1 E8 83 E0 03 E8 10 00 00 00 80 04 00 00 A0 04 00 00 80 05 00 00 A0 05 00 00 59 8B 04 81 89 44 24 04 C7 44 24 08 00 00 00 00 C7 44 24 0C 00 00 00 00 EB 0A 8B 44 24 0C FF C0 89 44 24 0C 83 7C 24 0C 0C 7D 3D 8B 44 24 0C 0F B6 C8 8B 44 24 04 D3 E8 83 E0 01 85 C0 74 27 8B 44 24 0C 48 8B 4C 24 38 48 89 4C 24 10 0F B6 C8 48 8B 44 24 10 8B 40 0F D3 E8 8B 4C 24 08 31 C1 89 C8 89 44 24 08 EB B2 8B 44 24 30 83 E0 01 C1 E0 02 48 8B 4C 24 38 8B 49 0F 31 C1 89 C8 48 8B 4C 24 38 89 41 0F 8B 44 24 30 C1 E8 02 25 FE 00 00 00 48 8B 4C 24 38 0F B6 44 01 02 B9 1F 00 00 00 2B 4C 24 30 83 E1 07 D3 F8 83 E0 01 48 8B 4C 24 38 0F B6 49 0A 31 C8 88 04 24 48 8B 44 24 38 8B 40 0F D1 E0 0F B6 0C 24 8B 54 24 08 31 CA 89 D1 83 E1 01 09 C8 48 8B 4C 24 38 89 41 0F 8B 44 24 30 48 8B 4C 24 38 48 89 4C 24 18 0F B6 C8 48 8B 44 24 18 8B 40 0B D3 E8 83 E0 01 48 8B 4C 24 38 8B 49 0F 31 C1 89 C8 48 8B 4C 24 38 89 41 0F 48 8B 44 24 38 8B 40 0F C1 E8 0B 0F B6 0C 24 31 C8 83 E0 01 48 83 C4 28 C3 48 89 54 24 10 48 89 4C 24 08 48 83 EC 38 48 8B 44 24 48 83 78 14 00 74 14 48 8B 54 24 48 48 8B 4C 24 40 E8 3F FA FF FF E9 97 00 00 00 48 8B 4C 24 48 E8 A6 FB FF FF C7 44 24 20 01 00 00 00 C7 44 24 24 00 00 00 00 EB 0A 8B 44 24 20 FF C0 89 44 24 20 83 7C 24 20 27 77 6A 8B 44 24 24 48 8B 4C 24 40 0F B6 04 01 48 8B 54 24 48 89 C1 E8 2E FE FF FF 89 44 24 28 48 8B 44 24 40 8B 00 83 E0 01 D1 E0 0B 44 24 28 89 44 24 24 48 8B 44 24 40 8B 00 83 E0 01 3B 44 24 28 75 12 48 8B 44 24 40 8B 00 D1 E8 48 8B 4C 24 40 89 01 EB 15 48 8B 44 24 40 8B 00 D1 E8 35 62 00 50 80 48 8B 4C 24 40 89 01 EB 85 48 83 C4 38 C3 49 89 E3 48 83 EC 68 45 85 C0 49 89 5B F8 49 89 6B F0 49 89 73 E8 49 89 7B E0 4D 89 63 D8 44 8B 61 04 44 89 C5 48 89 D6 48 89 CB 45 89 E1 45 89 63 C8 74 26 49 8D 4B C8 49 89 4B B8 E8 00 00 00 00 5A 48 81 EA D0 1D 00 00 48 8B 12 48 03 52 20 E8 E2 FE FF FF 44 8B 4C 24 30 8B 03 44 31 C8 89 C1 44 31 E0 35 C3 25 34 80 89 0B 89 C1 35 C3 25 34 80 C1 C0 02 33 03 89 0B 89 C1 35 C3 25 34 80 C1 C0 04 33 03 89 0B 89 C1 35 C3 25 34 80 C1 C0 06 33 03 89 0B 89 C1 35 C3 25 34 80 C1 C0 08 33 03 89 C2 35 C3 25 34 80 C1 C0 0A 89 13 31 C8 85 ED 48 8B 6C 24 58 89 43 04 41 89 C4 89 C2 89 44 24 34 74 27 48 8D 4C 24 34 E8 00 00 00 00 5A 48 81 EA 5D 1E 00 00 48 8B 12 48 03 52 20 E8 55 FE FF FF 8B 54 24 34 44 8B 4C 24 30 8B 03 48 8B 7C 24 48 31 D0 89 C1 44 31 E0 4C 8B 64 24 40 35 4A 00 2C 5B 89 0B 89 C1 35 4A 00 2C 5B C1 C0 05 33 03 89 0B 89 C1 35 4A 00 2C 5B C1 C0 0A 33 03 89 0B 89 C1 35 4A 00 2C 5B C1 C0 0F 33 03 89 0B 89 C1 35 4A 00 2C 5B C1 C0 14 33 03 89 0B 89 C1 35 4A 00 2C 5B C1 C0 19 33 03 48 85 F6 89 0B 89 43 04 48 8B 5C 24 60 74 06 44 89 0E 89 56 04 48 8B 74 24 50 48 83 C4 68 C3 48 83 EC 08 4C 8D 0C 24 41 B8 01 00 00 00 49 89 09 8B 41 5C 48 C1 E0 20 8B 49 12 48 09 C1 48 89 CA 48 83 C2 08 E8 6E FE FF FF 48 83 C4 08 C3 49 89 E3 48 83 EC 68 49 89 5B F8 48 89 CB 49 89 6B F0 49 89 73 E8 49 89 7B E0 4C 89 CF 44 8B 09 4D 89 63 D8 45 89 C4 44 89 C8 48 89 D6 35 4A 00 2C 5B C1 C0 19 33 41 04 44 89 49 04 89 01 89 C1 35 4A 00 2C 5B C1 C0 14 89 4B 04 44 31 C8 89 C1 35 4A 00 2C 5B C1 C0 0F 33 43 04 89 4B 04 89 C1 35 4A 00 2C 5B C1 C0 0A 33 43 04 89 4B 04 89 C1 35 4A 00 2C 5B C1 C0 05 33 43 04 89 4B 04 89 C1 8B 43 04 31 C8 89 4B 04 35 4A 00 2C 5B 45 85 E4 89 03 89 C5 41 89 C0 89 44 24 34 74 37 48 8B 07 49 8D 4B CC 44 0F B7 48 1E 44 0F B7 40 0C 0F B7 50 08 49 89 4B B8 E8 00 00 00 00 5A 48 81 EA E1 1F 00 00 48 8B 12 48 03 52 20 E8 D1 FC FF FF 44 8B 44 24 34 8B 43 04 44 31 C0 89 C1 35 C3 25 34 80 C1 C0 0A 89 4B 04 31 E8 89 C1 35 C3 25 34 80 C1 C0 08 33 43 04 89 4B 04 89 C1 35 C3 25 34 80 C1 C0 06 33 43 04 89 4B 04 89 C1 35 C3 25 34 80 C1 C0 04 33 43 04 89 4B 04 89 C1 35 C3 25 34 80 C1 C0 02 33 43 04 89 C2 89 C8 31 D0 89 53 04 35 C3 25 34 80 45 85 E4 4C 8B 64 24 40 89 03 89 C5 89 C1 89 44 24 30 74 3D 48 8B 07 48 8D 4C 24 30 44 0F B7 48 1E 44 0F B7 40 0C 0F B7 50 08 48 89 4C 24 20 E8 00 00 00 00 5A 48 81 EA 8E 20 00 00 48 8B 12 48 03 52 20 E8 24 FC FF FF 44 8B 44 24 34 8B 4C 24 30 8B 43 04 48 8B 7C 24 48 89 6B 04 48 8B 6C 24 58 31 C8 48 85 F6 89 03 48 8B 5C 24 60 74 06 89 0E 44 89 46 04 48 8B 74 24 50 48 83 C4 68 C3 48 83 EC 08 4C 8D 0C 24 41 B8 01 00 00 00 49 89 09 8B 41 5C 48 C1 E0 20 8B 49 12 48 09 C1 48 89 CA 48 83 C2 08 E8 23 FE FF FF 48 83 C4 08 C3 48 89 E0 48 81 EC E8 00 00 00 48 89 58 08 48 89 68 10 48 89 70 18 48 89 78 20 4C 89 60 F8 4C 89 68 F0 4C 89 70 E8 4C 89 78 E0 B8 08 00 00 00 44 8D 72 07 41 89 D7 4C 89 C5 41 C1 EE 03 41 83 E7 07 48 89 CB 44 0F 44 F8 45 31 C9 41 8D 46 FF 85 C0 44 89 7C 24 28 44 89 4C 24 24 45 89 C8 44 89 4C 24 20 45 89 CD 45 8D 51 02 0F 84 7A 02 00 00 48 8B 7C 24 30 44 8B 64 24 54 4D 89 D7 44 31 03 44 31 4B 04 45 85 ED 8B 0B 8B 53 04 0F 85 16 01 00 00 45 39 FE 0F 86 DB 00 00 00 66 44 89 6D 10 48 8B 03 48 89 E9 48 89 44 24 38 48 8D 44 24 38 48 89 7C 24 40 89 45 12 48 8D 44 24 38 66 44 89 7D 16 48 C1 E8 20 66 44 89 6D 3E 89 45 5C E8 1C FD FF FF 48 8B 7C 24 40 48 8B 44 24 38 48 89 7C 24 30 8B 74 24 34 48 89 03 89 7C 24 50 48 8D 54 24 54 66 44 89 6D 16 45 8D 45 05 8B 4A FC 48 83 C2 14 8D 04 31 83 E1 1F 89 42 EC 89 F8 D3 C8 31 44 24 54 8B 4A EC 8D 04 31 83 E1 1F 89 42 F0 89 F8 D3 C8 31 44 24 54 8B 4A F0 8D 04 31 83 E1 1F 89 42 F4 89 F8 D3 C8 31 44 24 54 8B 4A F4 8D 04 31 83 E1 1F 89 42 F8 89 F8 D3 C8 31 44 24 54 8B 4A F8 8D 04 31 83 E1 1F 89 42 FC 44 8B 64 24 54 89 F8 D3 C8 41 31 C4 49 FF C8 44 89 64 24 54 75 8A E9 42 01 00 00 48 89 D8 48 89 E9 66 C7 45 10 00 00 48 C1 E8 20 66 C7 45 16 01 00 66 C7 45 3E 00 00 89 45 5C 89 5D 12 E8 52 FC FF FF 66 C7 45 16 00 00 E9 10 01 00 00 8B 44 24 50 46 8D 04 21 4C 8D 4C 24 5C 8D 34 02 44 89 03 4D 89 FA 89 73 04 44 89 C1 44 89 C2 49 83 C1 30 C1 E9 04 31 F2 83 E1 1F D3 C2 41 2B 51 CC 41 31 D0 89 D1 C1 E9 07 83 E1 1F 41 D3 C0 45 03 41 D0 44 89 C1 44 89 C6 C1 E9 04 31 D6 83 E1 1F D3 C6 41 2B 71 D4 41 31 F0 89 F1 C1 E9 07 83 E1 1F 41 D3 C0 45 03 41 D8 44 89 C1 44 89 C2 C1 E9 04 31 F2 83 E1 1F D3 C2 41 2B 51 DC 41 31 D0 89 D1 C1 E9 07 83 E1 1F 41 D3 C0 45 03 41 E0 44 89 C1 44 89 C6 C1 E9 04 31 D6 83 E1 1F D3 C6 41 2B 71 E4 41 31 F0 89 F1 C1 E9 07 83 E1 1F 41 D3 C0 45 03 41 E8 44 89 C1 44 89 C2 C1 E9 04 31 F2 83 E1 1F D3 C2 41 2B 51 EC 41 31 D0 89 D1 C1 E9 07 83 E1 1F 41 D3 C0 45 03 41 F0 44 89 C1 44 89 C6 C1 E9 04 31 D6 83 E1 1F D3 C6 41 2B 71 F4 41 31 F0 89 F1 C1 E9 07 83 E1 1F 41 D3 C0 45 03 41 F8 49 FF CA 0F 85 0F FF FF FF 44 89 03 89 73 04 44 8B 03 44 8B 4B 04 41 8D 46 FF 41 FF C5 48 83 C3 08 44 89 44 24 20 41 39 C5 44 89 4C 24 24 0F 82 A0 FD FF FF 44 8B 7C 24 28 41 BA 02 00 00 00 EB 05 44 8B 64 24 54 45 85 FF 4C 8B AC 24 D8 00 00 00 74 2C 48 8D 44 24 20 48 89 DF 48 8D 4C 24 20 48 29 C7 44 89 FA 0F B6 04 0F 48 FF C1 30 41 FF 48 FF CA 75 F1 44 8B 4C 24 24 44 8B 44 24 20 41 83 FE 02 0F 86 FF 00 00 00 44 03 4C 24 50 48 8D 74 24 5C 45 01 E0 44 89 C1 44 89 C2 48 83 C6 30 C1 E9 04 44 31 CA 83 E1 1F D3 C2 2B 56 CC 41 31 D0 89 D1 C1 E9 07 83 E1 1F 41 D3 C0 44 03 46 D0 44 89 C1 44 89 C7 C1 E9 04 31 D7 83 E1 1F D3 C7 2B 7E D4 41 31 F8 89 F9 C1 E9 07 83 E1 1F 41 D3 C0 44 03 46 D8 44 89 C1 44 89 C2 C1 E9 04 31 FA 83 E1 1F D3 C2 2B 56 DC 41 31 D0 89 D1 C1 E9 07 83 E1 1F 41 D3 C0 44 03 46 E0 44 89 C1 44 89 C7 C1 E9 04 31 D7 83 E1 1F D3 C7 2B 7E E4 41 31 F8 89 F9 C1 E9 07 83 E1 1F 41 D3 C0 44 03 46 E8 44 89 C1 44 89 C2 C1 E9 04 31 FA 83 E1 1F D3 C2 2B 56 EC 41 31 D0 89 D1 C1 E9 07 83 E1 1F 41 D3 C0 44 03 46 F0 44 89 C1 45 89 C1 C1 E9 04 41 31 D1 83 E1 1F 41 D3 C1 44 2B 4E F4 45 31 C8 44 89 C9 C1 E9 07 83 E1 1F 41 D3 C0 44 03 46 F8 49 FF CA 0F 85 10 FF FF FF EB 51 41 83 FE 01 75 0D 8B 03 89 44 24 20 8B 43 04 89 44 24 24 48 8D 44 24 20 48 89 E9 66 C7 45 10 00 00 89 45 12 48 8D 44 24 20 66 C7 45 16 01 00 48 C1 E8 20 66 C7 45 3E 00 00 89 45 5C E8 7D F9 FF FF 44 8B 4C 24 24 44 8B 44 24 20 66 C7 45 16 00 00 4C 8B A4 24 E0 00 00 00 48 8B AC 24 F8 00 00 00 41 83 FE 01 4C 8B B4 24 D0 00 00 00 76 1B 45 85 FF 74 0C 48 8D 73 F8 44 89 F9 48 89 DF F3 A4 44 89 43 F8 44 89 4B FC EB 07 44 89 03 44 89 4B 04 4C 8B BC 24 C8 00 00 00 48 8B BC 24 08 01 00 00 48 8B B4 24 00 01 00 00 48 8B 9C 24 F0 00 00 00 48 81 C4 E8 00 00 00 C3 48 89 E0 48 81 EC F8 00 00 00 48 89 58 08 48 89 68 10 48 89 70 18 48 89 78 20 4C 89 60 F8 4C 89 68 F0 4C 89 70 E8 4C 89 78 E0 48 89 CB 8D 4A 07 89 D0 BA 08 00 00 00 C1 E9 03 83 E0 07 4C 89 C7 0F 44 C2 45 31 FF 83 F9 01 89 4C 24 30 44 8D 62 04 44 89 7C 24 2C 44 89 7C 24 34 44 89 7C 24 28 45 89 FE 89 44 24 38 0F 86 9F 01 00 00 83 C1 FE 44 89 FE 89 4C 24 20 0F 84 8F 01 00 00 48 8B 44 24 40 44 8B 6C 24 64 8B 6C 24 60 85 F6 44 8B 03 44 8B 73 04 45 89 C7 44 89 44 24 28 0F 85 EE 00 00 00 48 89 44 24 50 48 8D 44 24 48 66 89 77 10 48 8B 0B 89 47 12 48 8D 44 24 48 48 C1 E8 20 48 89 4C 24 48 48 89 F9 66 C7 47 16 02 00 66 89 77 3E 89 47 5C E8 0E FA FF FF 48 8B 44 24 48 4C 8D 44 24 64 48 89 03 48 8B 44 24 50 44 8D 56 05 48 89 44 24 40 44 8B 4C 24 44 66 89 77 16 89 44 24 60 41 8B 48 FC 49 83 C0 14 42 8D 14 09 83 E1 1F 41 89 50 EC 89 C2 D3 CA 31 54 24 64 41 8B 48 EC 42 8D 14 09 83 E1 1F 41 89 50 F0 89 C2 D3 CA 31 54 24 64 41 8B 48 F0 42 8D 14 09 83 E1 1F 41 89 50 F4 89 C2 D3 CA 31 54 24 64 41 8B 48 F4 42 8D 14 09 83 E1 1F 41 89 50 F8 89 C2 D3 CA 31 54 24 64 41 8B 48 F8 42 8D 14 09 83 E1 1F 41 89 50 FC 44 8B 6C 24 64 89 C2 D3 CA 41 31 D5 49 FF CA 44 89 6C 24 64 0F 85 77 FF FF FF 8B 6C 24 60 EB 4B 45 89 E3 45 89 F1 4C 8D 94 24 C0 00 00 00 45 2B 42 04 44 89 C9 49 83 EA 08 C1 E9 07 83 E1 1F 41 D3 C8 45 31 C8 45 03 4A 08 44 89 C1 C1 E9 04 83 E1 1F 41 D3 C9 45 31 C1 41 83 C3 FF 75 D0 45 29 E8 41 29 E9 44 89 4B 04 44 89 03 8B 4C 24 34 FF C6 48 83 C3 08 31 4B F8 8B 4C 24 2C 44 89 7C 24 34 31 4B FC 3B 74 24 20 44 89 74 24 2C 0F 82 88 FE FF FF 8B 44 24 38 45 31 FF EB 09 44 8B 6C 24 64 8B 6C 24 60 85 C0 44 89 7C 24 20 44 89 FE 44 89 7C 24 24 74 1A 48 8D 53 08 48 8D 4C 24 20 41 89 C0 E8 B8 ED FF FF 8B 74 24 24 44 8B 7C 24 20 44 8B 5C 24 30 41 83 FB 01 75 32 48 89 D8 48 89 F9 66 C7 47 10 00 00 48 C1 E8 20 66 C7 47 16 01 00 66 C7 47 3E 00 00 89 47 5C 89 5F 12 E8 75 F8 FF FF 66 C7 47 16 00 00 E9 29 01 00 00 41 83 FB 02 75 34 48 89 D8 48 89 F9 66 C7 47 10 00 00 48 C1 E8 20 66 C7 47 16 01 00 66 C7 47 3E 00 00 89 47 5C 89 5F 12 E8 3D F8 FF FF 44 8B 5C 24 30 66 C7 47 16 00 00 EB 55 8B 13 44 8B 43 04 45 89 E2 4C 8D 8C 24 C0 00 00 00 41 2B 51 04 44 89 C1 49 83 E9 08 C1 E9 07 83 E1 1F D3 CA 44 31 C2 45 03 41 08 89 D1 C1 E9 04 83 E1 1F 41 D3 C8 41 31 D0 41 83 C2 FF 75 D2 44 29 EA 41 29 E8 41 83 FB 01 89 13 44 89 43 04 0F 86 9A 00 00 00 44 33 3B 33 73 04 8B 44 24 38 85 C0 44 89 7C 24 20 89 74 24 24 74 31 4C 8D 44 24 20 49 89 D9 48 8D 4B 08 4D 29 C1 49 89 C0 48 8D 54 24 20 0F B6 01 48 FF C1 48 FF C2 49 FF C8 41 88 44 11 FF 0F B6 42 FF 88 41 FF 75 E6 41 83 FB 02 0F 84 ED FE FF FF 8B 13 44 8B 43 04 4C 8D 8C 24 C0 00 00 00 41 2B 51 04 44 89 C1 49 83 E9 08 C1 E9 07 83 E1 1F D3 CA 44 31 C2 45 03 41 08 89 D1 C1 E9 04 83 E1 1F 41 D3 C8 41 31 D0 41 83 C4 FF 75 D2 44 29 EA 41 29 E8 44 89 43 04 89 13 8B 44 24 28 4C 8B BC 24 D8 00 00 00 4C 8B AC 24 E8 00 00 00 31 03 44 31 73 04 4C 8B A4 24 F0 00 00 00 4C 8B B4 24 E0 00 00 00 48 8B 9C 24 00 01 00 00 48 8B BC 24 18 01 00 00 48 8B B4 24 10 01 00 00 48 8B AC 24 08 01 00 00 48 81 C4 F8 00 00 00 C3 CC CC CC CC 57 59 E9 F9 D5 FF FF')

fullfname=os.getcwd()+'/backbas.so'


a=0xBA
unipatch[a:a+4]=SERVER_KEY_PASSWORD
a=a+4
unipatch[a:a+4]=SERVER_KEY_SN
a=a+4
unipatch[a:a+4]=SERVER_KEY_HASPTYPE
a=a+4
unipatch[a:a+4]=SERVER_KEY_MEMORYSIZE
a=a+6
unipatch[a:a+8]=SERVER_KEY_SecTable
a=a+0x48
unipatch[a:a+0x70]=SERVER_KEY_Data
a=a+0x70
unipatch[a:a+2]=SERVER_KEY_LicNum


a=0x112E
unipatch[a:a+4]=CLIENT_KEY_PASSWORD
a=a+4
unipatch[a:a+4]=CLIENT_KEY_SN
a=a+4
unipatch[a:a+4]=CLIENT_KEY_HASPTYPE
a=a+4
unipatch[a:a+4]=CLIENT_KEY_MEMORYSIZE
a=a+6
unipatch[a:a+8]=CLIENT_KEY_SecTable
a=a+0x48
unipatch[a:a+0x70]=CLIENT_KEY_Data
a=a+0x70
unipatch[a:a+2]=CLIENT_KEY_LicNum

try:
fp = open(fullfname, 'r+')
if os.stat(fp.name).st_size > 0:
mm = mmap.mmap(fp.fileno(), 0)

# WTF? "to smoke": man 5 elf
if mm[0]!=0x7f or mm[1]!=0x45 or mm[2]!=0x4C or mm[3]!=0x46 or mm[4]!=2 or mm[5]!=1 or mm[6]!=1 or mm[16]!=3 or mm[17]!=0 or mm[18]!=0x3E or mm[19]!=0:
print ("what a fuck are you giving me?")
sys.exit()
e_phoff = mm[0x20]+(mm[0x21]+(mm[0x22]+(mm[0x23]<<8)<<8)<<8)
# print (f"e_phoff = {hex(e_phoff)}")
e_phentsize = mm[0x36]+(mm[0x37]<<8)
# print (f"e_phentsize = {hex(e_phentsize)}")
e_phnum = mm[0x38]+(mm[0x39]<<8)
# print (f"e_phnum = {hex(e_phnum)}")
for i in range(e_phnum):
p = e_phoff + i * e_phentsize
p_type = mm[p]+(mm[p+1]+(mm[p+2]+(mm[p+3]<<8)<<8)<<8)
p_flags = mm[p+4]+(mm[p+5]+(mm[p+6]+(mm[p+7]<<8)<<8)<<8)
if (p_type==1 and p_flags==5):
# print(f"p_type={hex(p_type)}, p_flags={hex(p_flags)}")
# print(f"mm[{hex(p+4)}] += PF_W")
mm[p+4] = 7
break
# else:
# print(f"p_type={hex(p_type)}, p_flags={hex(p_flags)}")
pattern_addr = mm.find(pattern)
if pattern_addr != -1:
unipatch_addr=pattern_addr-0x2A75
print (f"patching {fullfname} at offset={hex(unipatch_addr)}")
mm[unipatch_addr:unipatch_addr+0x2A07] = unipatch

mm.close()
except IOError as e:
print (f"I/O error({e.errno}): {e.strerror}, filename={fullfname}")



print ('#############_SERVER_KEY_INFO_#################' , sep='', end='')
print ('')
a=0xBA
print ('SERVER_KEY_PASSWORD:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print (f"=0x{format(int.from_bytes(unipatch[a:a+4], byteorder='little', signed=False),'08X')}")
a=a+4
print ('SERVER_KEY_SN:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print (f"=0x{format(int.from_bytes(unipatch[a:a+4], byteorder='little', signed=False),'08X')}")
a=a+4
print ('SERVER_KEY_HASPTYPE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print (f"=0x{format(int.from_bytes(unipatch[a:a+4], byteorder='little', signed=False),'08X')}")
a=a+4
print ('SERVER_KEY_MEMORYSIZE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print (f"=0x{format(int.from_bytes(unipatch[a:a+4], byteorder='little', signed=False),'08X')}")
a=a+6
print ('SERVER_KEY_SecTable:', sep='', end=' ')
for i in range(a,a+8):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+0x48
print ('SERVER_KEY_Data:', sep='', end='\n')
for i in range(a,a+0x70,16):
for k in range(0,16):
print (format(unipatch[i+k],'02X'), sep='', end=' ')
print ('')
a=a+0x70
print ('SERVER_KEY_LicNum:', sep='', end=' ')
for i in range(a,a+2):
print (format(unipatch[i],'02X'), sep='', end=' ')
print (f"=0x{format(int.from_bytes(unipatch[a:a+2], byteorder='little', signed=False),'04X')}")

print ('#############_CLIENT_KEY_INFO_#################' , sep='', end='')
print ('')
a=0x112E
print ('CLIENT_KEY_PASSWORD:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print (f"=0x{format(int.from_bytes(unipatch[a:a+4], byteorder='little', signed=False),'08X')}")
a=a+4
print ('CLIENT_KEY_SN:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print (f"=0x{format(int.from_bytes(unipatch[a:a+4], byteorder='little', signed=False),'08X')}")
a=a+4
print ('CLIENT_KEY_HASPTYPE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print (f"=0x{format(int.from_bytes(unipatch[a:a+4], byteorder='little', signed=False),'08X')}")
a=a+4
print ('CLIENT_KEY_MEMORYSIZE:', sep='', end=' ')
for i in range(a,a+4):
print (format(unipatch[i],'02X'), sep='', end=' ')
print (f"=0x{format(int.from_bytes(unipatch[a:a+4], byteorder='little', signed=False),'08X')}")
a=a+6
print ('CLIENT_KEY_SecTable:', sep='', end=' ')
for i in range(a,a+8):
print (format(unipatch[i],'02X'), sep='', end=' ')
print ('')
a=a+0x48
print ('CLIENT_KEY_Data:', sep='', end='\n')
for i in range(a,a+0x70,16):
for k in range(0,16):
print (format(unipatch[i+k],'02X'), sep='', end=' ')
print ('')

a=a+0x70
print ('CLIENT_KEY_LicNum:', sep='', end=' ')
for i in range(a,a+2):
print (format(unipatch[i],'02X'), sep='', end=' ')
print (f"=0x{format(int.from_bytes(unipatch[a:a+2], byteorder='little', signed=False),'04X')}")

HPDX2300
14.11.2023, 15:11
Указанный в посте выше unipatch.py можно использовать как генератор рабочих дампов-мутантов.
SERVER_KEY_HASPID и CLIENT_KEY_HASPID редактируются в тех местах, где подсказано подчёркиванием.
Запускаем unipatch.py на выполнение (либа backbas.so в этом случае не нужна), выхлоп будет содержать пары HASPID-DATA, которые надо прописать в дамп-мутант.
пример выхлопа:

$ ./unipatch.py
#############_SERVER_KEY_INFO_#################
SERVER_KEY_PASSWORD: 7A 23 25 41 =0x4125237A
SERVER_KEY_SN: 71 CE 1D 28 =0x281DCE71
SERVER_KEY_HASPTYPE: 01 00 00 00 =0x00000001
SERVER_KEY_MEMORYSIZE: 01 00 00 00 =0x00000001
SERVER_KEY_SecTable: 15 EA 8F EA 73 EA EB EA
SERVER_KEY_Data:
01 00 00 00 00 00 00 D0 BC 07 3F 28 30 02 E5 6F
3E 39 D4 76 9F 6F D4 76 21 57 02 41 C3 CC D5 A7
4B 4C C2 81 64 84 55 76 41 E1 5E 2C 18 A7 6F F2
08 E1 40 A0 4E 94 A7 4A B5 41 53 6D 48 C3 6D E4
A4 EC C8 9C 27 7D E0 79 51 B1 25 C6 A1 69 14 FB
03 7B C5 1B E3 EF A3 1E 04 B5 A5 E1 4E C8 5D 28
99 30 10 39 2F 8D B3 E0 95 F0 36 91 56 46 C4 75
SERVER_KEY_LicNum: 01 00 =0x0001
#############_CLIENT_KEY_INFO_#################
CLIENT_KEY_PASSWORD: CB 70 6D 3B =0x3B6D70CB
CLIENT_KEY_SN: D6 C4 93 1B =0x1B93C4D6
CLIENT_KEY_HASPTYPE: 0A 00 00 00 =0x0000000A
CLIENT_KEY_MEMORYSIZE: 04 00 00 00 =0x00000004
CLIENT_KEY_SecTable: 9A 21 2C 25 DE 65 6C 65
CLIENT_KEY_Data:
01 00 00 00 00 00 00 08 97 F1 84 CF DC 4E 1E BB
55 6E 19 91 2D 4A 74 A3 33 7D 33 69 30 E3 5C 64
E5 D7 5B 51 C3 C4 9D 0F F7 D5 F6 A4 34 0E E5 E5
4B 63 44 2E 80 73 06 F8 6A D1 37 BA 0F 9A FD 74
7B 5C 89 AE 3B AC 18 BB 71 8A 9B 85 7C 13 1D 9F
BF 55 82 70 6D 87 DA 18 0A BD C4 22 05 A5 28 D4
54 B2 BC 38 F1 F2 E6 F4 54 09 42 4C B2 E1 1D AB
CLIENT_KEY_LicNum: 64 00 =0x0064