added sources of HTMLv with named colors and italic text support

git-svn-id: svn://kolibrios.org@1971 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
lev 2011-06-25 01:52:11 +00:00
parent 99ca1d651b
commit 91c643be8c
23 changed files with 3681 additions and 3 deletions

View File

@ -235,6 +235,7 @@ CMM_PROGRAMS:=\
games/clicks:GAMES/CLICKS:$(PROGS)/games/clicks/trunk/clicks.c-- \ games/clicks:GAMES/CLICKS:$(PROGS)/games/clicks/trunk/clicks.c-- \
games/FindNumbers:GAMES/FindNumbers:$(PROGS)/games/FindNumbers/trunk/FindNumbers.c-- \ games/FindNumbers:GAMES/FindNumbers:$(PROGS)/games/FindNumbers/trunk/FindNumbers.c-- \
games/mine:GAMES/MINE:$(PROGS)/games/mine/trunk/mine.c--:/MEOS \ games/mine:GAMES/MINE:$(PROGS)/games/mine/trunk/mine.c--:/MEOS \
# HTMLv:HTMLv:$(PROGS)/network/htmlv/browser/HTMLv.c-- \
#develop/c--:DEVELOP/C--:$(PROGS)/develop/c--/trunk/32.c-- \ #develop/c--:DEVELOP/C--:$(PROGS)/develop/c--/trunk/32.c-- \
# end of list # end of list

View File

@ -235,6 +235,7 @@ CMM_PROGRAMS:=\
games/clicks:GAMES/CLICKS:$(PROGS)/games/clicks/trunk/clicks.c-- \ games/clicks:GAMES/CLICKS:$(PROGS)/games/clicks/trunk/clicks.c-- \
games/FindNumbers:GAMES/FindNumbers:$(PROGS)/games/FindNumbers/trunk/FindNumbers.c-- \ games/FindNumbers:GAMES/FindNumbers:$(PROGS)/games/FindNumbers/trunk/FindNumbers.c-- \
games/mine:GAMES/MINE:$(PROGS)/games/mine/trunk/mine.c--:/MEOS \ games/mine:GAMES/MINE:$(PROGS)/games/mine/trunk/mine.c--:/MEOS \
# HTMLv:HTMLv:$(PROGS)/network/htmlv/browser/HTMLv.c-- \
# end of list # end of list
# List of other files to be included in the image file. # List of other files to be included in the image file.

View File

@ -42,7 +42,7 @@ set __CPU_type=p5 p6 k6
set BIN=bin set BIN=bin
echo Build KolibriOS apps echo Build KolibriOS apps
echo Enter valide language echo Enter valid language
echo [%languages%] echo [%languages%]
call :input_value res %languages% call :input_value res %languages%
echo lang fix %res% > lang.inc echo lang fix %res% > lang.inc
@ -255,7 +255,7 @@ echo *
kpack /nologo 2> nul kpack /nologo 2> nul
if "%errorlevel%"=="9009" ( if "%errorlevel%"=="9009" (
echo *** NOTICE *** echo *** NOTICE ***
echo If you want pack all applications you may echo If you want to pack all applications you may
echo place "kpack" in accessible directory. echo place "kpack" in accessible directory.
echo You can download that tool from http://diamondz.land.ru/ echo You can download that tool from http://diamondz.land.ru/
goto END goto END
@ -455,6 +455,6 @@ echo *
:END :END
echo * echo *
echo Done. Thanks for your choise ;) echo Done. Thanks for your choice ;)
echo * echo *
pause pause

View File

@ -0,0 +1,149 @@
//HTML Viewer in C--
//Copyright 2007-2009 by Veliant & Leency
//Asper, Lrz, Nable, lev.
#include "..\lib\kolibri.h--"
#include "..\lib\memory.h--"
#include "..\lib\file_system.h--"
#include "include\some_code.h--"
#include "img\toolbar_icons.c--"
#include "img\URLgoto.txt";
//Asper
#include "..\lib\mem.h--"
#include "..\lib\libio_lib.h--"
#include "..\lib\libimg_lib.h--"
#include "..\lib\edit_box_lib.h--"
#include "..\lib\dll.h--"
//ïåðåìåííûå
byte URL[4096]="/sys/html/index.htm",
editURL[4096],
page_links[12000],
header[512];
dword max_kolvo_strok,
max_kolvo_stolbcov,
kolichestvo;
int za_kadrom,
razm_scrl,
mouse_dd;
edit_box edit1= {250,207,16,0xffffff,0x94AECE,0xffffff,0xffffff,0,248,#editURL,#mouse_dd,2,19,19};
#include "TWB.h--"
proc_info Form;
void main()
{
mouse m; dword btn; byte key;
IF (param) copystr(#param,#URL);
BrowserHistory.AddUrl();
copystr(#URL,#editURL);
//Asper [
mem_Init();
$or eax, eax
$jnz loc00
return;
@loc00:
load_dll2(libio, #libio_init,1);
load_dll2(libimg, #libimg_init,1);
load_dll2(boxlib, #edit_box_draw,0);
//] Asper
SetEventMask(0x27);
loop()
{
switch(WaitEvent())
{
CASE evMouse:
m.get();
IF (m.vert==65535) //ïðîêðóòêà êîë¸ñèêîì
{
IF (za_kadrom==0) break;
IF (za_kadrom>3) za_kadrom-=2; ELSE za_kadrom=1;
WB1.Scan(ID1);
}
IF (m.vert==1)
{
IF(max_kolvo_strok+za_kadrom+3>=kolichestvo) WB1.Scan(181);
ELSE {
za_kadrom+=2;
WB1.Scan(ID2);
}
}
//IF (kolichestvo<max_kolvo_strok) break;
if (m.x>=WB1.width-14) && (m.x<=WB1.width+6) && (kolichestvo>max_kolvo_strok) while (m.lkm)
{
IF (razm_scrl/2+WB1.top>m.y) || (m.y<0) || (m.y>4000) m.y=razm_scrl/2+WB1.top; //åñëè êóðñîð íàä îêíîì
btn=za_kadrom; //ñîõðàíÿåì ñòàðîå êîëè÷åñòâî
j= razm_scrl/2;
za_kadrom = m.y -j -WB1.top * kolichestvo / WB1.height;
IF (max_kolvo_strok+za_kadrom>kolichestvo) za_kadrom=kolichestvo-max_kolvo_strok;
IF (btn<>za_kadrom) WB1.ParseHTML(buf, filesize); //÷òîá ëèøíèé ðàç íå ïåðåðèñîâûâàòü
m.get();
}
break;
case evButton:
btn=GetButtonID();
IF (btn==1) ExitProcess();
ELSE
{
WB1.Scan(btn);
//WB1.HttpLoad(#URL);
}
break;
case evKey:
key = GetKey();
WB1.Scan(key);
if (key<>0x0d) && (key<>183) && (key<>184) && (key<>173) {EAX=key<<8; edit_box_key stdcall(#edit1);} //àäðåñíàÿ ñòðîêà
break;
case evReDraw:
Draw_Window();
break;
}
edit_box_mouse stdcall (#edit1);
}
}
void Draw_Window()
{
WindowRedrawStatus(1);
DefineAndDrawWindow(215,100,640,480,0x73,0x00E4DFE1,0,0,0);
Form.GetInfo(SelfInfo);
IF (Form.height==GetSkinWidth()+3) //åñëè ñâåðíóòî â çàãîëîâîê, íè÷åãî íå ðèñóåì
{
DrawTitle(#header);
WindowRedrawStatus(2);
return;
}
IF (Form.height<120) MoveSize(OLD,OLD,OLD,120);
IF (Form.width<280) MoveSize(OLD,OLD,280,OLD);
//
PutPaletteImage(#toolbar,200,42,0,0,8,#toolbar_pal);
DrawBar(200,0,onLeft(200,9),43,0xE4DFE1); //çàêðàøèâàåì ôîí ïîä òóëáàðîì
DrawBar(0,42,onLeft(5,4),1,0xE2DBDC); //âûïóêëîñòü
DrawBar(0,43,onLeft(5,4),1,0xD2CED0); //âûïóêëîñòü
FOR (j=0; j<5; j++) DefineButton(j*37+11, 7, 29, 29, 300+j+BT_HIDE, 0x00E4DFE1);
PutImage(#URLgoto,40,19,onLeft(57,0),14);
DefineButton(onLeft(38,0),14, 20, 18, GOTOURL+BT_HIDE, 0xE4DFE1);
DefineButton(onLeft(57,0),14, 19, 18, SEARCHWEB+BT_HIDE, 0xE4DFE1);
DrawRegion_3D(205,14,onLeft(58,205),18,0x94AECE,0x94AECE); //îáîäîê ïîëîñû àäðåñà
DrawRegion_3D(206,15,onLeft(59,205),16,0xE4ECF3,0xE4ECF3);
edit1.width=Form.width-266;
WB1.top=44;
WB1.width=Form.width-11;
WB1.height=onTop(43,5);
WB1.Load(#URL);
//
WindowRedrawStatus(2);
}
int onLeft(dword right,left) {EAX=Form.width-right-left;}
int onTop(dword down,up) {EAX=Form.height-GetSkinWidth()-down-up;}
stop:

View File

@ -0,0 +1,278 @@
20.06.11 -- v0.63 -- 11.32 Кб
lev
- наклонный шрифт
- таблица именованных цветов
08.06.10 -- v0.62a -- 9.68 Кб
- в адресную строку нельзя было нормально ввести цифры 4 и 6 (спасибо Nasarus
за найденные баги)
- поддержка DOS-кодировки страниц (по просьбе Nasarus'a)
14.02.10 -- v0.62 -- 9.42 Кб
- поиск в Интернетах с помощью nigma.ru, поиск только по английским символам,
горячая комбинация клавиш Ctrl+Enter;
- улучшено и оптимизировано определение кодировки;
- небольшой фикс для работы с XHTML-тегами типа br/;
- исправлен баг: не работал просмотр (по f3) страниц из интернета;
- немного улучшено отображение изображений, но, всё равно, ещё очень плохо;
- поддержка тегов с кавычками ' (как на главной странице kolibrios.org);
- работа с историей вынесена в отдельный файл;
- исправлена поломанная в предыдущей версии работа в Интернетах.
31.01.10 -- v0.60 -- 8.94 Кб
- поддержка utf-8 реализованная Asper'ом ещё в ноябре, увы не попавшая в
дистр 0.7.7.0. От меня огромное спасибо Asper'у в помощи!
- исправлена ошибка при открытии страницы с /fd и /cd (спасибо Nasarus и IgorA,
которые сообщили мне об ошибке);
- поддержка шайтанской кодировки mht-страниц, то есть, сохранённых со всем
содержимым через ИЕ7 (спасибо за помощь IgorA);
- улучшено определение кодировки: например, теперь можно нормально читать хабр;
- небольшое исправление в парсинге параметров тега;
- увеличена длина URL до 4096 символов.
08.11.09 -- v0.57 -- 8.69 Кб
- Asper реализовал поддержку изображений, которую в HTMLv ещё надо пилить;
- поддержка .mht, скорее всего старых версий (страница Albom'a), в новых (я
сохранил в .mht через ИЕ7) вместо буковок какая-то ересь, очень похожая на
hex-коды;
- исправлено появление кнопки "остановить загрузку" когда не надо;
- оптимизации поиска и загрузки файла.
03.11.09 -- v0.53 -- 7.87 Кб
- восстановлена совместимость с библиотекой box_lib.obj;
- исправлена заглушка с адресами страниц, содержащими знак # ;
- программа больше не вылетает, если несколько раз нажать на локальную ссылку;
- серьёзное улучшение обработки разных ссылок;
- исправлено превышение максимальной длины истории ссылок;
- корректная обработка ссылок, содержащих знак = ;
- исправлено исчезание ссылок, если тег находится за границей видимой области;
- во время загрузки страницы, пишет "Loading...";
- небольшие обновления кода.
05.06.09 -- v0.5 -- 7.91 Кб
- barsuk прикрутил загрузку страниц из Интернета через downloader за что
ему огромнейший респект :)
- исправление падения программы в случае, если страница недокачана -
исправлен выход за границы памяти при парсинге тегаов и обработке <-- -->;
- исправлена передача параметров downloader'y: обрезается / в конце;
- корректная обработка некоторых символов;
- некоторые оптимизации.
28.01.08 -- v0.48.5 -- 6.95 Кб
- если присутствует только закрывающий тег </a>, без открывающего, ссылки
больше не "съезжают";
- корректная обработка параметров, не взятых в скобки, пример: href=1.htm ;
- исправлен баг с цветом ссылок и цветом текста после ссылок;
- многоуровневые списки;
- немного улучшен алгоритм парсинга тегов;
- клавиша BackSpace опять возвращает назад;
- подчёркивание цветных ссылок теперь цвета самих ссылок;
- исправлен баг в заглушке с переходом по ссылке внутри страницы #.
28.01.08 -- v0.48.2 -- 6.95 Кб
- устранён вылет программы при прокрутке страницы с большим кол-вом ссылок;
- устранено "синение" текста в некоторых случаях;
- исправлен баг в чтении тега с параметрами;
- автоопределение кодировки KOI8;
22.01.08 -- v0.48.1 -- 6,88 Кб
21.12.08 -- v0.48.0
- перенос по словам;
- координаты считаются от конца заголовка;
- исправлена перерисовка окна, когда страница маленькая;
- исправил баг в теге <pre>;
- исправлен баг перерисовки первой строки;
07.12.08 -- v0.47 -- 7,50 Кб
- добавлен символ "апостроф", украинские буквы для кодировки win1251;
- инфа внутри <!-- --> фильтруется;
- переписана процедура парсинга параметров тега;
- зачатки вывода изображений (спасибо Nable и Asper за помощь);
- исправлен баг, из-за которого страницы могли не отображаться;
- исправлен баг с тегом font, из-за которого весь текст могло плющить;
- исправлен недочёт в теге <pre> (нашёл diamond);
- немного увеличена скорость обработки страниц;
- немного улучшена полоса прокрутки, исправлен один мелкий баг;
02.12.08 -- v0.45 -- 6,79 Кб
- поддержка кодировки KOI8-R(U) - активируется нажатием Ctrl+R. Спасибо Velianty
за написаный код;
- вывод какой-то win кодировки, где все символы отображаются, как &#1040 и т.д.
(заработал файл, присланый Albom'ом);
- исправлен очень серьёзный баг из-за которого страницы с большим количеством
ссылок приводили к вылету программы;
- кодировка DOS'a (cp866) активируется нажатием Ctrl+D;
- улучшен скролл;
- исправлен баг кнопки "Обновить";
- иконки тулбара выводится одним изображением с палитрой, как результат меньше
перерисовка окна и размер программы.
20.10.08 -- v0.40 -- 7,36 Кб
- обработка нескольких параметров тега для ссылки и текста;
- перечёркивание и подчёркивание отображается тем же цветом что и текст
- правильная обработка табов;
- улучшение тега <li>;
- корректный переход на страницу, адрес которой содержит знак "#";
- исправлен баг из-за которого часть текста могла стать невидимой;
- исправлен тег <q>;
- некоторые спецсимволы заменены своими "аналогами": (с), (r), обычное тире
вместо типографического;
- поддержка тегов <ins> и <del>;
- прочие доработки и хитрожопые оптимизации отображения :)
19.10.08 -- v0.38.1 -- 6,85 Кб
- суровые оптимизации и как результат увеличилась скорость загрузки страниц на
7-10% (было проверено с использованием секундомера);
- правильное отображение файлов с расширением ".txt" в окне программы;
18.10.08 -- v0.38 -- 6,88 Кб
- для полосы адреса теперь используется отдельная переменная;
- хождение по относительным ссылкам, с косяками, но то фигня. Сделаю;
- улучшения в обработке тегов: корректно обрабатываются таб и переход на
следующую строку в теге.
- немного улучшена обработка тегов вообще, догадываюсь как сделать ваще зашибись;
- добавлена обработка цвета линий (hr).
17.10.08 -- v0.37 -- 6,82 Кб
- реализовано преобразование тегов вида &nbsp; в символы (пока только 5 основных);
- немного улучшен скролл, но, всё равно, это не дело;
- F3 - просмотр исходного кода страницы;
- обновлены кнопочки "Вперёд/Назад".
Правка багов:
- исправлена табота со ссылками;
- исправлен баг с тем, что иногда отображалось два пробела в тексте вместо одного;
- исправил баг из-за которого часть текста при прокрутке могла стать синей;
- исправлен баг, связаный с клавишей BackSpace;
Огромное спасибо diamond'y за тестирование.
16.10.08 -- v0.35.3 -- 6,74 Кб
- кнопки от ссылок не удалялись в случае, если страница не найдена, fixed;
- улучшены кнопочки тулбара;
- пофиксил последнюю страницу от Albom'a, со скриптом; оказалось просто надо было
обнулить переменную во время её объявления;
- при сворачивании окна в заголовок, его название не исчезает.
15.10.08 -- v0.35 -- 6,75 Кб
- исправлен баг - вылет проги из-за переполнения памяти во время создания ссылок
(спасибо Albom'у, который прислал страницу, на которой проявляется баг);
- при перемотке колёсиком теперь проматывается 3 строчки;
- исправлена перемотка PgUp/PgDn;
- исправлена работа программы в случае, если страница не найдена;
- новые фирменные изображения на кнопках;
- исправлен тег <title> для длинных названий;
- теперь переход Домой записывается в хистори;
- программа больше не должна вылетать :)
03.10.08 -- v0.30.2 -- 6,56 Кб
- обновление страницы не приводит к записи новой ссылки в историю посещений;
- оптимизация перебора символов;
- больше не появляются белые полосы на ободке нижней части окна;
- установлены минимальные размеры окна, убраны артефакты при сворачивании окна в заголовок.
02.08.08 -- v0.30.1 -- 6,48 Кб
- поправил баг с историей посещений страниц;
- устранён баг, когда под самой нижней строкой появлась прозрачная полоса;
- игнорируется текст между <style>;
- немного оптимизирован скролл.
29.07.08 -- v0.30 -- 6,46 Кб
- клавиша BackSpace, если полоса адреса не активна, возвращает на предыдущую страницу;
- игнорируется текст после тега <script>;
- сносно работает прокрутка;
- заглушка на PgUp\PgDown, работает End;
- исправлен баг с заголовком окна.
28.07.08 -- v0.27 -- 6,21 Кб
- вывод цвета текста, поддержка до 10 вложеных тегов цвета - за всё это спасибо Veliant'y;
- адаптирован код под новую версию библиотеки <Lrz>, отвечающей за строку адреса (box_lib);
- теперь корректно определяется конец файла при обработке (by Veliant);
- теперь текст декодируется win -> dos, исправлено отображение некоторых специальных символов;
- почищен код, оптимизована структура документа;
- опредение длины страницы, заглушки на прокрутку её вверх и вниз;
- сильно уменьшена перерисовка первых двух строк.
23.07.08 -- v0.24 -- 6,05 Кб
- полностью исправлена работа ссылок;
- Энтер теперь добавляется как пробел в тексте, в случае если до него не было пробела;
- обработка тега "hr" - рисование линий;
- исправлен баг при деактивации окна.
07.07.08 -- v0.23 alpha -- 5.68 Кб
- исправлен баг кнопки "Назад";
- некоторые ссылки работают :)
- PageUp, PageDown.
05.07.08 -- v0.22 -- 5.68 Кб
- исправлен баг, из-за которого строка в конце окна отображалась без "стиля";
- теперь программа умеет отделять теги от параметров - улучшена совместимость;
- поддержка параметров в режиме тестирования (пока недоступно).
04.07.08 -- v0.21 -- 5.58 Кб
- небольшие изминения в интерфейсе;
- рабочая клавиша "Назад".
29.06.08 -- v0.2 -- 5.48 Кб
- уменьшена перерисовка при открытии проги, во время перехода по страницам,
во время их прокрутки - текст выводится не побуквенно, а короткими строчками;
- изменения в структуре программы, она стала ещё чуть более гибкой;
- теперь заголовок не перерисовывается постоянно во время перемотки;
- теперь не выводится больше 1 пробела;
- запуск с параметром - открывается страница;
- немного подправлено положение строки адреса при разной высоте заголовков;
- если страница не существует, выводится предупреждение.
26.06.08 -- v0.1.3 -- 5.59 Кб
- при прокрутке не перерисовывается заголовок;
- теги обнуляются перед началом перерисовки;
- устранён глюк из-за которого внизу списка мог появляться левый текст;
- поддержка тегов ul, blockquote, q, некоторые другие частично;
- теперь вместе обрабатываются теги с / и без него.
24.06.08 -- v0.1.1 -- 5.37 Кб
- исправления и улучшения тега <li>;
- теперь можно прописывать путь к странице не добавляя в конце ".htm",
программа добавит расширение автоматически;
- немного уменьшена перерисовка окна;
- добавлен тег "strike", аналог "s";
- начальная поддержка некоторых других тегов;
- исправлен баг, из-за которого нельзя было перематывать текст вниз до конца.
22.06.08 -- v0.1 -- 5.11 Кб
- более или менее полная поддержка тегов: b, strong, i, u, s, br, pre, title,
li, p. Поддержка закрывающих тегов соответственно;
- поддержка вложеных тегов;
- игнорирование ненужных пробелов в теге (пример: < b >);
- увеличена скорость прокрутки и программы;
- полоса адреса (EditBox) от <Lrz>, спасибо ему огромное;
- остановка рисования после тега </html>.
20.02.08 -- v0.000001 -- 7.32 Кб
Типа начало. :)
Переписал браузер Veliant'a под новую библиотеку, немного доделан.

View File

@ -0,0 +1,35 @@
==О программе HTMLv==
HTMLv - это текстовый браузер, а так же просмотровщик веб-страниц. Пока что
поддерживает только форматирование текста с некоторыми вложеными параметрами.
Программа написана на языке... среднего уровня C--. Обсуждение программы здесь:
http://board.kolibrios.org/viewtopic.php?f=9&t=1075
Для поиска нужно в адресную строку ввести запрос, нажать Ctrl+Enter (или кнопку).
==Установка==
Сама программа может быть запущена откуда угодно.
==Интернет==
Если ваша сетевая карта не поддерживается Колибри нативно - не беда.
Она поддерживается в Qemu и VirtualBox :)
==Проблемы==
1. Связаны со строкой адреса.
box_lib.obj следует положить в /sys/lib/
2. Страницы из Интернета не хотят загружаться.
ZEROCONF.INI [настройки сети для Qemu и VBox] положить в /sys/network/
downloader положить в /sys/
==Авторы==
Leency - разработка, дизайн.
Asper - код работы с библиотеками Колибри, поддержка изображений, UTF-8.
Veliant - автор программы-предшественника, помощь, советы.
Barsuk - программа downloader, код работы с ней.
Lrz - компонент EditBox.
Nable - оптимизации.
lev - оптимизации, некоторые доработки.
Спасибо за использование :)

View File

@ -0,0 +1,692 @@
//http://jsbeautifier.org/
//Web-component, Leency & Veliant 2007-2009
//lev
//èäåÿ - ëåâûå ôàéëû îòêðûâàòü ñîîòâåòñòâóþùèìè ïðîãàìè
// wintodos(buf); -> â ïàðñå õòìë êàê è âñå êîäèðîâêè
//ol - öèôåðêè
//óñêîðåíà çàãðóçêà ñòðàíèöû, ñîäåðæàùåé èçîáðàæåíèÿ
//óìåíüøåíî êîëè÷åñòâî ïåðåðèñîâîê çàãîëîâêà îêíà ïðè çàãðóçêå ñòðàíèöû
dword j,
buf,
filesize,
blink = 400;
int i;
char download_path[]="/rd/1/.download";
//char search_path[]="http://nova.rambler.ru/search?words=";
char search_path[]="http://nigma.ru/index.php?s=";
struct TWebBrowser {
dword left,
top,
width,
height;
void DrawScroller();
void Load();
void ParseHTML(dword, dword);
void Scan(dword);
void WhatTextStyle(int left1, top1, width1);
};
TWebBrowser WB1;
#include "include\history.h--"
#include "include\colors.h--"
void TWebBrowser::Scan(dword id) {
int i=0;
if (id > 399) {
j = 0;
FOR(i = 0; i <= id - 401; i++) {
do j++;
while (page_links[j] <>'|');
}
page_links[j] = 0x00;
copystr(#page_links[find_symbol(#page_links, '|')], #URL);
Load(#URL);
Draw_Window();
return;
}
//edit1.flags=64;
IF(kolichestvo < max_kolvo_strok) SWITCH(id) {
CASE 183: CASE 184: CASE 180: CASE 181: return;
} //åñëè ìàëî ñòðîê èãíîðèðóåì íåêîòîðûå êíîïêè
switch (id) {
case 011:
case 004:
ReadHtml();
break;
case BACK:
BrowserHistory.GoBack();
return;
/*case FORWARD:
WriteDebug(#UrlHistory);
return;*/
case 054: //F5
IF(edit1.flags == 66) break;
case REFRESH:
copystr(#URL, #editURL);
Draw_Window();
return;
case HOME:
copystr("/sys/index.htm", #editURL);
case GOTOURL:
case 0x0D: //enter
copystr(#editURL, #URL);
Load(#URL);
return;
case 052: //Íàæàòà F3
IF(edit1.flags <> 66)
IF (strcmp(get_URL_part(5),"http:")<>0) RunProgram("tinypad", #URL); ELSE RunProgram("tinypad", #download_path);
break;
case 173: //ctrl+enter
case SEARCHWEB:
copystr(#search_path, #URL);
copystr(#editURL, #URL + strlen(#URL));
Load(#URL);
return;
case ID1: //ìîòàåì ââåðõ
IF(za_kadrom > 0) za_kadrom--;
ELSE return;
break;
case ID2: //ìîòàåì âíèç
IF(max_kolvo_strok + za_kadrom >= kolichestvo) return;
za_kadrom++;
break;
case 183: //PgDown
IF(za_kadrom == kolichestvo - max_kolvo_strok) return;
za_kadrom = za_kadrom + max_kolvo_strok + 2;
IF(max_kolvo_strok + za_kadrom > kolichestvo) za_kadrom = kolichestvo - max_kolvo_strok;
break;
case 184: //PgUp
IF(za_kadrom == 0) return;
za_kadrom = za_kadrom - max_kolvo_strok - 2;
IF(za_kadrom < 0) za_kadrom = 0;
break;
case 180: //home
IF (za_kadrom <>0) za_kadrom = 0;
ELSE return;
break;
case 181: //end
za_kadrom = kolichestvo - max_kolvo_strok;
break;
default:
return;
}
IF(id == 11) koitodos(buf);
ParseHTML(buf, filesize);
}
//ñêðîëë
void TWebBrowser::DrawScroller() {
dword on_y;
DrawBar(left + width - 15, top + 17, 1, height - 34, 0x94AECE); //ëèíèÿ ñëåâà îò ïðîêðóòêè
DrawFlatButton(left + width - 15, top + height - 17, 16, 16, ID2, 0xE4DFE1, "\x19");
DrawFlatButton(left + width - 15, top, 16, 16, ID1, 0xE4DFE1, "\x18");
IF(kolichestvo <= max_kolvo_strok) {
DrawBar(left + width - 14, top + 17, 16, height - 34, 0xCED0D0);
return;
}
razm_scrl = height - 16 * max_kolvo_strok / kolichestvo - 3;
IF(razm_scrl < 10) razm_scrl = 10;
IF(za_kadrom + max_kolvo_strok >= kolichestvo) on_y = height - razm_scrl + top - 17;
ELSE on_y = height - 32 * za_kadrom / kolichestvo + top + 16;
DrawFlatButton(left + width - 15, on_y, 16, razm_scrl, 0, 0xE4DFE1, ""); //ïîëçóíîê
IF(on_y > top + 17) DrawBar(left + width - 14, top + 17, 16, on_y - top - 17, 0xCED0D0); //ïîëå äî ïîëçóíêà
IF(height - razm_scrl + top - 17 > on_y)
DrawBar(left + width - 14, on_y + razm_scrl + 1, 16, height - razm_scrl - on_y + top - 18, 0xCED0D0); //ïîëå ïîñëå ïîëçóíêà
}
void GetNewUrl(){
IF (!strcmp(get_URL_part(2),"./")) copystr(#URL+1,#URL);
//IF (!strcmp(get_URL_part(3),"../"))
//{
// //DrawTitle(#URL+7);
//}
if (strcmp(get_URL_part(3),"/rd")<>0) && (strcmp(get_URL_part(5),"/sys/")<>0) && (strcmp(get_URL_part(3),"/hd")<>0)
&& (strcmp(get_URL_part(3),"/bd")<>0) && (strcmp(get_URL_part(3),"/fd")<>0) && (strcmp(get_URL_part(3),"/cd")<>0)
&& (strcmp(get_URL_part(5),"http:")<>0) && (strcmp(get_URL_part(5),"mailt")<>0) && (strcmp(get_URL_part(5),"ftp:/")<>0)
{
copystr(BrowserHistory.CurrentUrl(), #editURL); //äîñòà¸ì àäðåñ òåêóùåé ñòðàíèöû
IF (editURL[find_symbol(#editURL, '/')-2]<>'/') // åñëè íå http://test.ua
{
editURL[find_symbol(#editURL, '/')] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî /
IF (URL[0]=='/') copystr(#URL+1,#URL);
}
copystr(#URL, #editURL + strlen(#editURL)); //êëåèì íîâûé àäðåñ
copystr(#editURL, #URL);
}
}
void ReadHtml(byte DO_LOAD) {
IF(buf) free(buf);
buf = malloc(1048576);
if (!strcmp(get_URL_part(5),"http:")))
{
if (DO_LOAD) && (!WindowRePaint)
{
DeleteFile(#download_path);
IF (URL[strlen(#URL)-1]=='/') URL[strlen(#URL)-1]='';
RunProgram("/sys/downloader", #URL);
return;
}
ReadFile(0, 1048576, buf, #download_path);
}
ELSE ReadFile(0, 1048576, buf, #URL);
filesize = EBX;
}
void TWebBrowser::Load(dword adress) {
if (URL[0] == '#') { //ìû íå óìååì ïåðåõîäèòü ïî ññûëêå âíóòðè äîêóìåíòà. Ïîêà ÷òî...
copystr(#editURL, #URL);
return;
}
URL[find_symbol(#URL, '#')-1] = 0x00; //çàãëóøêà, ëó÷øå, ÷åì íè÷åãî (õàáð, íàïðèìåð, áóäåò ðàáîòàòü)
GetNewUrl();
max_kolvo_stolbcov = width - 30 / 6;
max_kolvo_strok = height - 3 / 10 - 2;
copystr(" HTML Viewer v0.63", #header);
if (!WindowRePaint) {
za_kadrom = 0;
copystr(#URL, #editURL);
BrowserHistory.AddUrl();
}
edit1.size = edit1.pos = strlen(#editURL);
edit_box_draw stdcall(#edit1); //ðèñóåì ñòðîêó àäðåñà
ReadHtml(LETS_LOAD);
wintodos(buf);
ParseHTML(buf, filesize);
IF(!strlen(buf)) {
IF (strcmp(get_URL_part(5),"http:")==0)
{
PutImage(#stop_btn, 24, 24, 88, 10);
WriteText(left + 10, top + 18, 0x80, 0, "Loading...", 0);
}
ELSE
WriteText(left + 10, top + 18, 0x80, 0, "Page not found. May be, URL contains some errors.", 0);
}
IF (!strcmp(" HTML Viewer v0.63", #header)) DrawTitle(#header);
}
byte rez, b_text, i_text, u_text, s_text, w_title, pre_text, blq_text, li_text, link, ignor_text, li_tab;
dword text_colors[10],
text_color_index = 0,
link_color;
int stroka,
stolbec;
byte line[330],
tag[100],
tagparam[10000],
parametr[1200],
options[1000];
byte ignor_param = 0;
byte rtf_text;
void TWebBrowser::ParseHTML(dword bword, fsize){
word bukva[1];
char temp[768];
stroka = -za_kadrom;
stolbec = 0;
FOR(j = 400; j < blink + 1; j++;) DeleteButton(j);
b_text = i_text = u_text = s_text = w_title = pre_text = blq_text =
li_text = link = ignor_text = text_color_index = text_colors[0] = li_tab = 0; //îáíóëÿåì òåãè
link_color = 0x0000FF;
blink = 400;
line = '';
copystr("|", #page_links);
IF(!strcmp(#URL + strlen(#URL) - 4, ".txt")) pre_text = 1; //çà÷¸òíîå îòîáðàæåíèå òåêñòà
IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) ignor_text = 1;
IF(za_kadrom == 0) || (WindowRePaint) DrawBar(left, top, width - 15, 15, 0xFFFFFF); //çàêðàøèâàåì ïåðâóþ ñòðîêó
for (; buf + fsize > bword; bword++;) {
bukva = ESBYTE[bword];
switch (bukva) {
case 0x0a:
IF(pre_text == 1) {
bukva = '';
temp = '';
goto NEXT_MARK;
}
case '\9':
case 0x0d:
//IF(pre_text == 1) {copystr(" ", #line + strlen(#line)); break;} ELSE
bukva = ' ';
goto DEFAULT_MARK;
case '<':
bword++; //ïðîìîòàåì ñèìâîë <
IF(ESBYTE[bword] == '!') //ôèëüòðàöèÿ âíóòðè <!-- -->, äåðçêî
{
bword++;
IF(ESBYTE[bword] == '-') {
HH_: do {
bword++;
IF(bword >= buf + fsize) break 1;
} while (ESBYTE[bword] <>'-');
bword++;
IF(ESBYTE[bword] <>'-') GOTO HH_;
}
}
while (ESBYTE[bword] <>'>') && (bword < buf + fsize) //ïîëó÷àåì òåã è åãî ïàðàìåòðû
{
bukva = ESBYTE[bword];
IF(bukva == '\9') || (bukva == '\x0a') || (bukva == '\x0d') bukva = ' ';
IF(!ignor_param) && (bukva <>' ') copystr(#bukva, #tag + strlen(#tag));
ELSE {
ignor_param = true;
copystr(#bukva, #tagparam + strlen(#tagparam));
}
bword++;
}
lowcase(#tag);
lowcase(#tagparam);
//WriteDebug(#tagparam);
//WriteDebug(#tag); Pause(50);
//
IF (tag[strlen(#tag)-1]=='/') tag[strlen(#tag)-1]=''; //íåáîëüøîé ôèêñ äëÿ ðàáîòû ñ XHTML-òåãàìè òèïà br/
IF(strlen(#tagparam) > 0) && (strlen(#tagparam) < 4000) GetNextParam();
WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //îáðàáîòêà òåãîâ
line = tag = parametr = tagparam = ignor_param = 0; //âñ¸ îáíóëÿåì
break;
case '=': //ïîääåðæêà øàéòàíñêîé êîäèðîâêè ñòðàíèö, ñîõðàí¸ííûõ ÷åðåç ÈÅ7
IF(strcmp(#URL + strlen(#URL) - 4, ".mht")<>0) goto DEFAULT_MARK;
bword++;
bukva=ESBYTE[bword];
copystr(#bukva, #temp);
bword++;
bukva=ESBYTE[bword];
copystr(#bukva, #temp + strlen(#temp));
bukva=Hex2Symb(#temp);
IF (bukva) goto DEFAULT_MARK;
break;
/*case '\\': //ïîääåðæêà RTF, http://dev.rembish.ru/rtf.phps
IF(strcmp(#URL + strlen(#URL) - 4, ".rtf")<>0) goto DEFAULT_MARK;
rtf_text='';
//
bword++;
j = 0;
IF (ESBYTE[bword]=='\'')
{
bword++;
bukva=ESBYTE[bword];
copystr(#bukva, #rtf_text);
bword++;
bukva=ESBYTE[bword];
copystr(#bukva, #rtf_text + strlen(#rtf_text));
bukva=Hex2Symb(#rtf_text);
IF (bukva) goto DEFAULT_MARK;
}
WHILE ((ESBYTE[bword] <>' ') && (j < 25) && (ESBYTE[bword] <>'\\') && (ESBYTE[bword] <>0x0d)) {
bukva = ESBYTE[bword];
copystr(#bukva, #rtf_text + strlen(#rtf_text));
bword++;
j++;
}
IF (strcmp(#rtf_text,"par")==0) goto NEXT_MARK;
break;*/
case '&':
IF(ignor_text) break;
bword++;
j = 0;
WHILE(ESBYTE[bword] <>';') && (j < 7) {
bukva = ESBYTE[bword];
copystr(#bukva, #tag + strlen(#tag));
bword++;
j++;
}
bukva = ''; //âñþ ýòó õðåíü íàäî çàëàáàòü ÷åðåç ìàñèâ
IF(!strcmp("nbsp", #tag)) copystr(" ", #line + strlen(#line));
IF(!strcmp("copy", #tag)) || (!strcmp("#169", #tag)) copystr("(c)", #line + strlen(#line));
IF(!strcmp("reg", #tag)) || (!strcmp("#174", #tag)) copystr("(r)", #line + strlen(#line));
rez = StrToInt(#tag + 1) - 1040;
IF(tag[1] == '1') && (strlen(#tag) == 5) bukva = utf100tmmv_mas[rez];
IF(!strcmp("bdquo", #tag)) copystr(",,", #line + strlen(#line));
IF(!strcmp("amp", #tag)) || (!strcmp("#38", #tag)) bukva = '&';
IF(!strcmp("lt", #tag)) || (!strcmp("#60", #tag)) bukva = '<';
IF(!strcmp("gt", #tag)) || (!strcmp("#62", #tag)) bukva = '>';
IF(!strcmp("minus", #tag)) || (!strcmp("#8722", #tag)) bukva = '-';
IF(!strcmp("#151", #tag)) || (!strcmp("#149", #tag)) || (!strcmp("ndash", #tag)) bukva = '-';
IF(!strcmp("#39", #tag)) || (!strcmp("#96", #tag)) bukva = '\'';
IF(!strcmp("quot", #tag)) || (!strcmp("#34", #tag)) || (!strcmp("ldquo", #tag)) || (!strcmp("rdquo", #tag)) bukva = '"';
tag = '';
//break;
default:
DEFAULT_MARK:
IF(ignor_text) break;
IF(pre_text == 0) && (bukva == ' ') && (strcmp(#line + strlen(#line) - 1, " ") == 0) continue;
//
if (stolbec + strlen(#line) > max_kolvo_stolbcov) && (w_title == 0) {
copystr(#line + find_symbol(#line, ' '), #temp); //ïåðåíîñ ïî ñëîâàì
line[find_symbol(#line, ' ')] = 0x00;
NEXT_MARK: IF(stroka - 1 > max_kolvo_strok) && (za_kadrom <>0) break 1; //óõîäèì...
WhatTextStyle(left + 5, stroka * 10 + top + 5, width - 20); //âûâîä ñòðîêè
TextGoDown(left + 5, stroka * 10 + top + 5, width - 20); //çàêðàøèâàåì ñòðîêó âêîíöå
copystr(#temp, #line);
}
IF(pre_text == 0) && (bukva == ' ') && (stolbec == 0) && (strlen(#line) == 0) continue;
copystr(#bukva, #line + strlen(#line));
}
}
IF(max_kolvo_strok * 10 + 25 <= height)
DrawBar(left, max_kolvo_strok * 10 + top + 25, width - 15, -max_kolvo_strok * 10 + height - 25, 0xFFFFFF);
IF(stroka * 10 + 15 <= height)
DrawBar(left, stroka * 10 + top + 15, width - 15, -stroka * 10 + height - 15, 0xFFFFFF); //çàêðàøèâàåì âñ¸ äî êîíöà
IF(za_kadrom == 0) kolichestvo = stroka;
DrawScroller(); //ðèñóåì ñêðîëë
}
void GetNextParam() {
dword kavichki = false,
i = strlen(#tagparam) - 1;
WHILE((i > 0) && (tagparam[i] == '"') || (tagparam[i] == ' ') || (tagparam[i] == '\'') || (tagparam[i] == '/'))
{
IF (tagparam[i] == '"') kavichki=1;
IF (tagparam[i] == '\'') kavichki=2;
tagparam[i] = 0x00;
i--;
}
if (kavichki==1) // "
{
i=find_symbol(#tagparam, '"');
copystr(#tagparam + i, #options);
}
else if (kavichki==2) // '
{
i=find_symbol(#tagparam, '\'');
copystr(#tagparam + i, #options);
}
else
{
//i=find_symbol(#tagparam, '=');
WHILE((i > 0) && (tagparam[i] <>'=')) i--;
i+=1;
copystr(#tagparam + i, #options); //êîïèðóåì îïöèþ
WHILE (options[0] == ' ') copystr(#options + 1, #options);
}
tagparam[i] = 0x00;
//
WHILE((tagparam[i] <>' ') && (i > 0)) {
IF(tagparam[i] == '=') //äåðçêàÿ çàãëóøêà
{
//copystr(#tagparam+i+2,#options);
tagparam[i + 1] = 0x00;
}
i--;
}
copystr(#tagparam + i + 1, #parametr); //êîïèðóåì ïàðàìåòð
tagparam[i] = 0x00;
}
char oldtag[100];
void TWebBrowser::WhatTextStyle(word left1, top1, width1) {
dword hr_color;
dword image=0;
char temp[1024];
int w, h;
IF(tag[0] == '/') {
rez = 0;
copystr(#tag + 1, #tag);
} ELSE rez = 1;
//
IF(!chTag("html")) {
IF(!strcmp(#URL + strlen(#URL) - 4, ".mht")) IF (rez==0) ignor_text = 1; ELSE ignor_text = 0;
return;
}
IF(!chTag("script")) || (!chTag("style")) ignor_text = rez;
IF (ignor_text == 1) return;
//
IF(!chTag("title")) IF(w_title == 0) {
copystr(" ", #line);
w_title = 1;
}
ELSE {
w_title = 0;
stolbec = 0;
copystr(#line, #header);
copystr(" - HTML Viewer v0.63", #header + strlen(#header));
IF(stroka == 0) || (WindowRePaint == 1) DrawTitle(#header);
//äà, çíàþ, 2 ðàçà âûõîäèò, íî, åñëè áîëüøàÿ ñòðàíèöà, òî òðóú
return;
}
//
IF(!chTag("q")) copystr("\"", #line + strlen(#line));
if (stroka > -1) && (stroka - 2 < max_kolvo_strok) && (line) {
WriteText(stolbec * 6 + left1, top1, 0x80, text_colors[text_color_index], #line, 0);
IF(b_text) WriteText(stolbec * 6 + left1 + 1, top1, 0x80, text_colors[text_color_index], #line, 0);
IF(i_text) Skew(stolbec * 6 + left1, top1, strlen(#line)+1*6, 10);
IF(s_text) DrawBar(stolbec * 6 + left1, top1 + 4, strlen(#line) * 6, 1, text_colors[text_color_index]); //çà÷¸ðêíóòûé
IF(u_text) DrawBar(stolbec * 6 + left1, top1 + 8, strlen(#line) * 6, 1, text_colors[text_color_index]); //ïîä÷¸ðêíóòûé
IF(link) {
DefineButton(stolbec * 6 + left1 - 2, top1, strlen(#line) * 6 + 3, 9, blink + BT_HIDE, 0xB5BFC9); //
DrawBar(stolbec * 6 + left1, top1 + 8, strlen(#line) * 6, 1, text_colors[text_color_index]);
}
}
//
IF(!tag) return;
stolbec += strlen(#line);
//////////////////////////
if (!chTag("a")) {
IF (stroka - 1 > max_kolvo_strok) || (stroka < -2) return;
if (rez) {
HREF: IF(strcmp(#parametr, "href=") == 0) {
IF(link == 1) text_color_index--; //åñëè êàêîé-òî äîëáî¸á íå çàêðûë òýã
link = 1;
blink++;
text_color_index++;
text_colors[text_color_index] = link_color;
copystr(#options, #page_links + strlen(#page_links));
copystr("|", #page_links + strlen(#page_links));
}
IF(tagparam) {
GetNextParam();
GOTO HREF;
}
}
ELSE {
link = 0;
IF(text_color_index > 0) text_color_index--;
}
return;
}
/////////////////////////
if (!chTag("font")) {
IF(stroka <= 0) && (stroka - 1 > max_kolvo_strok) return;
COL_MARK: IF(strcmp(#parametr, "color=") == 0) //&& (parametr[1] == '#')
{
text_color_index++;
IF (options[0] == '#'){
text_colors[text_color_index] = StrToCol(#options);
}
ELSE {
FOR (i=0;color_names[i]!=0;i++){
IF(!strcmp(#options, color_names[i])) {text_colors[text_color_index] = colors[i]; BREAK;}
}
}
}
IF(tagparam[0] <>'') {
GetNextParam();
GOTO COL_MARK;
}
IF(!rez) && (text_color_index > 0) text_color_index--;
return;
}
//////////////////////////
IF(!chTag("tr")) || (!chTag("br")) {
TextGoDown(left1, top1, width1);
return;
}
IF(!chTag("div")) {
IF(oldtag[0] <>'h') TextGoDown(left1, top1, width1);
return;
}
IF(!chTag("p")) {
IF(oldtag[0] == 'h') return;
TextGoDown(left1, top1, width1);
IF(rez) TextGoDown(left1, top1 + 10, width1);
return;
}
////////////////////////////
IF(!chTag("h1")) || (!chTag("h2")) || (!chTag("h3")) || (!chTag("h4")) {
TextGoDown(left1, top1, width1);
IF(rez) TextGoDown(left1, top1 + 10, width1);
b_text = rez;
copystr(#tag, #oldtag);
return;
} ELSE copystr("", #oldtag);
IF(!chTag("b")) || (!chTag("strong")) || (!chTag("big")) {
b_text = rez;
return;
}
////////////////////////////
IF(!chTag("i")) || (!chTag("em")) {
i_text = rez;
return;
}
////////////////////////////
if(!chTag("li")) || (!chTag("dt")) //íàäî ñäåëàòü âëîæåííûå ñïèñêè
{
li_text = rez;
IF(rez == 0) return;
TextGoDown(left1, top1, width1);
IF(stroka > -1) && (stroka - 2 < max_kolvo_strok) IF(!chTag("li")) DrawBar(li_tab * 5 * 6 + left1 - 5, top1 + 12, 2, 2, 0);
return;
}
////////////////////////////
IF(!chTag("u")) || (!chTag("ins")) u_text = rez;
IF(!chTag("s")) || (!chTag("strike")) || (!chTag("del")) s_text = rez;
IF(!chTag("ul")) || (!chTag("ol")) IF(!rez) {
li_text = rez;
li_tab--;
TextGoDown(left1, top1, width1);
} ELSE li_tab++;
IF(!chTag("dd")) stolbec += 5;
IF(!chTag("blockquote")) blq_text = rez;
IF(!chTag("body")) IF(strcmp(#parametr, "link=") == 0) link_color = StrToCol(#options);
IF(!chTag("pre")) pre_text = rez;
IF(!chTag("hr")) {
TextGoDown(left1, top1, width1);
TextGoDown(left1, top1 + 10, width1);
IF(strcmp(#parametr, "color=") == 0) hr_color = StrToCol(#options);
ELSE hr_color = 0x999999;
IF(stroka > 0) DrawBar(left1, top1 + 14, width1 - 8, 1, hr_color);
}
if (!chTag("img"))
{
//IF (GetFileInfo(#libimg)<>0) return; //åñëè áèáëèîòåêè íåò
IMG_TAG:
if (strcmp(#parametr,"src=")==0) //íàäî îáúåäèíèòü ñ GetNewUrl()
{
copystr(BrowserHistory.CurrentUrl(), #temp); //äîñòà¸ì àäðåñ òåêóùåé ñòðàíèöû
temp[find_symbol(#temp, '/')] = 0x00; //îáðåçàåì å¸ óðë äî ïîñëåäíåãî /
copystr(#options,#temp+strlen(#temp));
image=load_image(#temp);
w=DSWORD[image+4];
h=DSWORD[image+8];
}
IF(tagparam) {
GetNextParam();
GOTO IMG_TAG;
}
if (image)
{
if (width1<w) w=width1;
if (WB1.height<h) h=WB1.height;
IF (top1<WB1.top) {h=h-top1+WB1.top; top1=WB1.top;}
TextGoDown2(left1+w,top1,width1-w,h);
IF (stroka - 2 < max_kolvo_strok) img_draw stdcall (image,left1-5,top1+10,w,-stroka * 10 + WB1.height -15 + h,0,0);
}
//else WriteDebug(#options);
}
if (!chTag("meta")) {
META:
if (!strcmp(#parametr, "charset=")) || (!strcmp(#parametr, "content="))
{
copystr(#options[find_symbol(#options, '=')],#options); //ïîèñê â content=
IF (!strcmp(#options,"utf-8"))
{
ReadHtml(DONT_LOAD);
utf8rutodos(buf);
}
IF(!strcmp(#options, "koi8-r")) || (!strcmp(#options, "koi8-u"))
{
ReadHtml(DONT_LOAD);
koitodos(buf);
}
IF(!strcmp(#options, "dos")) || (!strcmp(#options, "cp-866"))
{
ReadHtml(DONT_LOAD);
}
}
IF(tagparam[0] <>'') {
GetNextParam();
goto META;
}
}
}
void TextGoDown(int left1, top1, width1) {
stroka++;
IF(blq_text == 1) stolbec = 8;
ELSE stolbec = 0;
IF(li_text == 1) stolbec = li_tab * 5;
IF(stroka >= 0) && (stroka - 2 < max_kolvo_strok) DrawBar(left1 - 5, top1 + 10, width1 + 5, 10, 0xFFFFFF);
}
void TextGoDown2(int left1,top1,width1,height1)//ASPER: Íàäî çàìåíèòü ýòó ôóíêöèþ áîëåå ïðàâèëüíîé.
{
stroka+=height1/10;
IF (blq_text==1) stolbec=8; ELSE stolbec=0;
IF (li_text==1) stolbec=5;
IF (stroka>=0) && (stroka-2<max_kolvo_strok) DrawBar(left1 - 5, top1 + 10, width1 + 5, height1, 0xFFFFFF);
}

View File

@ -0,0 +1,5 @@
..\C--\c-- HTMLv.c--
del HTMLv
rename HTMLv.com HTMLv
..\C--\kpack HTMLv
pause

Binary file not shown.

After

Width:  |  Height:  |  Size: 816 B

View File

@ -0,0 +1,256 @@
unsigned char URLgoto[2280] = {
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE,
0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE,
0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94,
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE,
0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE,
0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94,
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xD3,
0xB8, 0xA4, 0xDE, 0xD4, 0xD1, 0xE1, 0xDF, 0xE4, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1,
0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4,
0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2,
0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1,
0xF4, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4,
0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2,
0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1,
0xF4, 0xF2, 0xF1, 0xF4, 0xF2, 0xF1, 0xF4, 0xE5, 0xDA, 0xD5, 0xD1, 0xB3, 0x9C, 0xDE, 0xD4, 0xD1,
0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA,
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9,
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xDA, 0xD8, 0xDE, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA,
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9,
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA,
0xE9, 0xED, 0xE5, 0xDA, 0xD5, 0xD3, 0xB8, 0xA4, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, 0xE9,
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA,
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xDA, 0xD8,
0xDE, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA,
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9,
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xDA, 0xD8, 0xDE, 0xCE, 0xAE, 0x94,
0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA,
0xE9, 0xED, 0xA3, 0x9E, 0x98, 0x8C, 0x86, 0x7D, 0x81, 0x7A, 0x71, 0x8C, 0x86, 0x7D, 0xA3, 0x9E,
0x98, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xDA, 0xD8, 0xDE, 0xCE, 0xAE, 0x94, 0xF2, 0xF1, 0xF4, 0xEA,
0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0x32, 0xAD,
0x76, 0x32, 0xAD, 0x76, 0x32, 0xAD, 0x76, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA,
0xE9, 0xED, 0xDA, 0xD8, 0xDE, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xF1, 0xF0, 0xF2, 0xE9, 0xE8,
0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0x94, 0x8E, 0x87, 0xA6, 0x9F, 0x99, 0xD0, 0xCA, 0xBE,
0xEC, 0xE2, 0xC8, 0xCD, 0xC4, 0xB0, 0xA3, 0x9A, 0x8F, 0x94, 0x8E, 0x86, 0xE9, 0xE8, 0xEC, 0xE9,
0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xD9, 0xD7,
0xDD, 0xCE, 0xAE, 0x94, 0xF1, 0xF0, 0xF2, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC,
0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x6B, 0xD4, 0xA5, 0x32,
0xAD, 0x76, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8,
0xEC, 0xE9, 0xE8, 0xEC, 0xE9, 0xE8, 0xEC, 0xE8, 0xE6, 0xEA, 0xD9, 0xD7, 0xDD, 0xCE, 0xAE, 0x94,
0xCE, 0xAE, 0x94, 0xF0, 0xEF, 0xF1, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xA3, 0x9E, 0x98, 0xA4,
0x9D, 0x95, 0xFE, 0xFD, 0xFB, 0xF3, 0xE8, 0xD6, 0xEC, 0xDB, 0xBF, 0xEE, 0xE1, 0xC4, 0xF1, 0xEA,
0xCE, 0xA1, 0x9A, 0x8F, 0xA3, 0x9E, 0x98, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB,
0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xD9, 0xD6, 0xDD, 0xCE, 0xAE, 0x94, 0xF0, 0xEF, 0xF1, 0xE9,
0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0x32, 0xAD,
0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x6B, 0xD4, 0xA5, 0x32, 0xAD, 0x76, 0xE9, 0xE7, 0xEB,
0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE9, 0xE7, 0xEB, 0xE7,
0xE5, 0xE9, 0xD9, 0xD6, 0xDD, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xF0, 0xEF, 0xF1, 0xE8, 0xE6,
0xEA, 0xE8, 0xE6, 0xEA, 0x8C, 0x86, 0x7D, 0xCF, 0xCA, 0xB9, 0xF1, 0xE5, 0xCF, 0xEE, 0xE0, 0xC5,
0xF2, 0xEE, 0xD3, 0xF4, 0xF2, 0xD8, 0xF4, 0xF3, 0xD8, 0xCF, 0xC9, 0xB6, 0x8C, 0x86, 0x7D, 0xE8,
0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xD8, 0xD6,
0xDC, 0xCE, 0xAE, 0x94, 0xF0, 0xEF, 0xF1, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA,
0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52,
0xCD, 0x96, 0x6B, 0xD4, 0xA5, 0x32, 0xAD, 0x76, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6,
0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE6, 0xE4, 0xE8, 0xD8, 0xD6, 0xDC, 0xCE, 0xAE, 0x94,
0xCE, 0xAE, 0x94, 0xED, 0xED, 0xEF, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0x81, 0x7A, 0x71, 0xEC,
0xE5, 0xCC, 0xEB, 0xD9, 0xBC, 0xF1, 0xED, 0xD1, 0xF7, 0xF7, 0xE4, 0xF9, 0xF9, 0xEB, 0xF8, 0xF8,
0xE7, 0xF0, 0xEF, 0xD9, 0x81, 0x7A, 0x71, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9,
0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xD7, 0xD5, 0xDB, 0xCE, 0xAE, 0x94, 0xED, 0xED, 0xEF, 0xE7,
0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0x32, 0xAD,
0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x6B, 0xD4, 0xA5,
0x32, 0xAD, 0x76, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xE2,
0xE1, 0xE5, 0xD7, 0xD5, 0xDB, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xEC, 0xEA, 0xED, 0xE6, 0xE4,
0xE8, 0xE6, 0xE4, 0xE8, 0x8C, 0x86, 0x7D, 0xCB, 0xC3, 0xB2, 0xEE, 0xE3, 0xC6, 0xF3, 0xF1, 0xD6,
0xF9, 0xF9, 0xEB, 0xFD, 0xFD, 0xF9, 0xFD, 0xFD, 0xF8, 0xCF, 0xCB, 0xBE, 0x8C, 0x86, 0x7D, 0xE6,
0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xD6, 0xD3,
0xDA, 0xCE, 0xAE, 0x94, 0xEC, 0xEA, 0xED, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8,
0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52,
0xCD, 0x96, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x39, 0xC5, 0x86, 0x32, 0xAD, 0x76, 0xE6, 0xE4,
0xE8, 0xE6, 0xE4, 0xE8, 0xE6, 0xE4, 0xE8, 0xDF, 0xDD, 0xE2, 0xD6, 0xD3, 0xDA, 0xCE, 0xAE, 0x94,
0xCE, 0xAE, 0x94, 0xEB, 0xEA, 0xED, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xA3, 0x9E, 0x98, 0xA1,
0x9A, 0x91, 0xEF, 0xE7, 0xCD, 0xF4, 0xF3, 0xD8, 0xF8, 0xF8, 0xE6, 0xFC, 0xFC, 0xF5, 0xFB, 0xFA,
0xF9, 0xA2, 0x9C, 0x94, 0xA3, 0x9E, 0x98, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5,
0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xD6, 0xD3, 0xDA, 0xCE, 0xAE, 0x94, 0xEB, 0xEA, 0xED, 0xE2,
0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0x32, 0xAD,
0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x52, 0xCD, 0x96, 0x39, 0xC5, 0x86,
0x32, 0xAD, 0x76, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xDF,
0xDC, 0xE2, 0xD6, 0xD3, 0xDA, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xE9, 0xE9, 0xEC, 0xDF, 0xDD,
0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0x94, 0x8F, 0x87, 0xA2, 0x9B, 0x92, 0xCB, 0xC6, 0xB8,
0xF1, 0xF2, 0xE0, 0xCE, 0xCA, 0xBF, 0xA2, 0x9D, 0x95, 0x83, 0x7F, 0x7A, 0x80, 0xAD, 0xC8, 0xDF,
0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xD4, 0xD2,
0xD9, 0xCE, 0xAE, 0x94, 0xE9, 0xE9, 0xEC, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2,
0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x52,
0xCD, 0x96, 0x39, 0xC5, 0x86, 0x32, 0xAD, 0x76, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD,
0xE2, 0xDF, 0xDD, 0xE2, 0xDF, 0xDD, 0xE2, 0xDC, 0xDB, 0xE1, 0xD4, 0xD2, 0xD9, 0xCE, 0xAE, 0x94,
0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE,
0xDC, 0xE2, 0xA3, 0x9E, 0x98, 0x8C, 0x86, 0x7D, 0x81, 0x7A, 0x71, 0x8C, 0x86, 0x7D, 0xA3, 0x9E,
0x98, 0x6F, 0x77, 0x93, 0x6C, 0x77, 0x9A, 0x80, 0xB7, 0xD9, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2,
0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xD3, 0xD1, 0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDE,
0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0x32, 0xAD,
0x76, 0x6B, 0xD4, 0xA5, 0x52, 0xCD, 0x96, 0x39, 0xC5, 0x86, 0x32, 0xAD, 0x76, 0xDE, 0xDC, 0xE2,
0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xDE, 0xDC, 0xE2, 0xD9,
0xD7, 0xDB, 0xD3, 0xD1, 0xD7, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDC, 0xDB,
0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1,
0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0x6C, 0x77, 0x9A, 0x6C,
0x77, 0x9A, 0x80, 0xB7, 0xD9, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xD3, 0xD1,
0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1,
0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0x32, 0xAD, 0x76, 0x6B, 0xD4, 0xA5, 0x39, 0xC5, 0x86, 0x32,
0xAD, 0x76, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB,
0xE1, 0xDC, 0xDB, 0xE1, 0xDC, 0xDB, 0xE1, 0xD9, 0xD7, 0xDB, 0xD3, 0xD1, 0xD7, 0xCE, 0xAE, 0x94,
0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA,
0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9,
0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0x6C, 0x77, 0x9A, 0x6C, 0x77, 0x9A, 0x80, 0xB7, 0xD9,
0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xD3, 0xD0, 0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xDA,
0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0x32, 0xAD,
0x76, 0x32, 0xAD, 0x76, 0x32, 0xAD, 0x76, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF,
0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xDA, 0xD9, 0xDF, 0xD8,
0xD6, 0xDA, 0xD3, 0xD0, 0xD7, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD9, 0xD8,
0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD,
0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9,
0xD8, 0xDD, 0x6C, 0x77, 0x9A, 0x6C, 0x77, 0x9A, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD3, 0xD0,
0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD,
0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9,
0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8,
0xDD, 0xD9, 0xD8, 0xDD, 0xD9, 0xD8, 0xDD, 0xD8, 0xD6, 0xDA, 0xD2, 0xCF, 0xD6, 0xCE, 0xAE, 0x94,
0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8,
0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6,
0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA,
0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD3, 0xD0, 0xD7, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD8,
0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6,
0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA,
0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD8, 0xD6, 0xDA, 0xD6,
0xD4, 0xD8, 0xD8, 0xD2, 0xD5, 0xD3, 0xB8, 0xA4, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD3, 0xD0,
0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7,
0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3,
0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD1, 0xCE,
0xD5, 0xCE, 0xAE, 0x94, 0xE7, 0xE6, 0xE9, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7,
0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3,
0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0,
0xD7, 0xD3, 0xD0, 0xD7, 0xD3, 0xD0, 0xD7, 0xD8, 0xD2, 0xD5, 0xD0, 0xB8, 0xA7, 0xDE, 0xD4, 0xD1,
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE,
0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE,
0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94,
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE,
0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE,
0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94,
0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xCE, 0xAE, 0x94, 0xD2,
0xBC, 0xAE, 0xDE, 0xD4, 0xD1, 0xE1, 0xDF, 0xE4
};
unsigned char stop_btn[1728] = {
0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB,
0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9,
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
0xEA, 0xE9, 0xED, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB,
0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA,
0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xC2, 0xC5, 0xE5,
0xC2, 0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2,
0xC5, 0xE5, 0xC2, 0xC5, 0xE5, 0xC2, 0xC6, 0xE5, 0xE7, 0xE6, 0xED, 0xE8, 0xE7, 0xED, 0xEB, 0xEA,
0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE,
0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB,
0xEA, 0xEE, 0xB3, 0xB8, 0xE3, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19,
0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1, 0x00, 0x19, 0xC1,
0x8C, 0x95, 0xDB, 0xE3, 0xE3, 0xEC, 0xE7, 0xE6, 0xED, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB,
0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEB, 0xEA, 0xEE, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9,
0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xB2, 0xB8, 0xE2, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7,
0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74,
0x85, 0xE7, 0x74, 0x85, 0xE7, 0x74, 0x85, 0xE7, 0x00, 0x19, 0xC1, 0x87, 0x92, 0xDA, 0xE1, 0xE1,
0xEB, 0xE8, 0xE7, 0xEC, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED, 0xEA, 0xE9, 0xED,
0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xB1, 0xB5, 0xE0, 0x00,
0x19, 0xC1, 0x74, 0x85, 0xE7, 0x49, 0x5F, 0xDB, 0x49, 0x5F, 0xDB, 0x4C, 0x65, 0xDD, 0x4C, 0x64,
0xDD, 0x46, 0x5E, 0xDB, 0x3E, 0x55, 0xDA, 0x34, 0x4D, 0xDA, 0x29, 0x45, 0xD7, 0x2D, 0x47, 0xD8,
0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x86, 0x90, 0xD8, 0xDF, 0xDE, 0xE8, 0xE7, 0xE5, 0xE9, 0xE8,
0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6,
0xEA, 0xB1, 0xB5, 0xE0, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x49, 0x5F, 0xDB, 0x4A, 0x61, 0xDC,
0x50, 0x64, 0xDC, 0x52, 0x67, 0xDD, 0x4D, 0x64, 0xDC, 0x4B, 0x62, 0xDC, 0x46, 0x5E, 0xDB, 0x3C,
0x53, 0xD9, 0x30, 0x4A, 0xD8, 0x28, 0x44, 0xD6, 0x29, 0x45, 0xD7, 0x48, 0x5F, 0xDB, 0x00, 0x19,
0xC1, 0x86, 0x90, 0xD8, 0xE3, 0xE2, 0xE9, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA, 0xE8, 0xE6, 0xEA,
0xE7, 0xE5, 0xE9, 0xE7, 0xE5, 0xE9, 0xB0, 0xB5, 0xDF, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x49,
0x5F, 0xDB, 0x47, 0x5E, 0xDB, 0x51, 0x65, 0xDD, 0x6C, 0x80, 0xE2, 0x4C, 0x62, 0xDC, 0x47, 0x5F,
0xDC, 0x48, 0x60, 0xDC, 0x44, 0x5C, 0xDC, 0x3B, 0x55, 0xD9, 0x58, 0x6D, 0xDE, 0x2C, 0x45, 0xD7,
0x27, 0x43, 0xD2, 0x23, 0x3D, 0xCD, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x86, 0x8F, 0xD8, 0xE5,
0xE3, 0xE8, 0xE6, 0xE4, 0xE8, 0xE7, 0xE5, 0xE9, 0xE5, 0xE3, 0xE7, 0xBA, 0xBD, 0xDF, 0x00, 0x19,
0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x49, 0x5F, 0xDB, 0x45, 0x5D, 0xDB, 0x8D, 0x9D, 0xE7,
0xA8, 0xB6, 0xEF, 0xBC, 0xC9, 0xEE, 0x41, 0x59, 0xDB, 0x45, 0x5D, 0xDB, 0x44, 0x5C, 0xDC, 0x90,
0xA0, 0xE9, 0xA8, 0xB6, 0xEF, 0x6B, 0x7E, 0xE2, 0x27, 0x41, 0xCF, 0x1A, 0x35, 0xCA, 0x21, 0x3C,
0xCD, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x9B, 0xA2, 0xDA, 0xE5, 0xE3, 0xE7, 0xE4, 0xE2, 0xE7,
0xE2, 0xE1, 0xE5, 0xB8, 0xBC, 0xDD, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x46,
0x5F, 0xDB, 0x67, 0x7B, 0xE1, 0xA8, 0xB6, 0xEF, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xB6, 0xC6,
0xE9, 0x43, 0x5B, 0xDC, 0x80, 0x93, 0xE3, 0x91, 0xA1, 0xE8, 0xDE, 0xE7, 0xF5, 0xE1, 0xE8, 0xF9,
0x5C, 0x70, 0xE0, 0x26, 0x41, 0xD0, 0x17, 0x32, 0xC9, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x71,
0x7E, 0xD3, 0xDF, 0xDE, 0xE4, 0xE2, 0xE1, 0xE5, 0xE2, 0xE1, 0xE5, 0xB8, 0xBC, 0xDD, 0x00, 0x19,
0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x43, 0x5B, 0xDC, 0x3E, 0x57, 0xDD, 0xBC, 0xC9, 0xEE,
0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xB4, 0xC5, 0xE6, 0x86, 0x99, 0xE4, 0xDE,
0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xE7, 0xEE, 0xFB, 0x27, 0x43, 0xD5, 0x27, 0x41, 0xD2, 0x22, 0x3B,
0xCC, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x71, 0x7E, 0xD3, 0xDA, 0xDA, 0xE3, 0xE2, 0xE1, 0xE5,
0xE1, 0xE0, 0xE4, 0xB7, 0xBB, 0xDC, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x3F,
0x56, 0xDD, 0x3E, 0x57, 0xDD, 0x3E, 0x57, 0xDA, 0xB6, 0xC6, 0xE9, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7,
0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDD, 0xE7, 0xF5, 0x2D, 0x46, 0xD8,
0x28, 0x44, 0xD7, 0x28, 0x43, 0xD2, 0x23, 0x3D, 0xCD, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x70,
0x7D, 0xD2, 0xD4, 0xD5, 0xE2, 0xDC, 0xDC, 0xE3, 0xDF, 0xDE, 0xE3, 0xB5, 0xB9, 0xDC, 0x00, 0x19,
0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x57, 0xDD, 0x3F, 0x58, 0xDB, 0x40, 0x59, 0xDD, 0x3E, 0x57, 0xDC,
0x3E, 0x57, 0xDA, 0xB4, 0xC5, 0xE6, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE,
0xE7, 0xF5, 0x34, 0x4D, 0xD7, 0x30, 0x48, 0xD8, 0x29, 0x44, 0xD7, 0x28, 0x43, 0xD4, 0x22, 0x3D,
0xCC, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6F, 0x7C, 0xD2, 0xD2, 0xD3, 0xE1, 0xDA, 0xDA, 0xE2,
0xDC, 0xDB, 0xE1, 0xB3, 0xB7, 0xDA, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x3E, 0x55, 0xD9, 0x41,
0x5B, 0xDB, 0x41, 0x5B, 0xDD, 0x3F, 0x58, 0xDB, 0x80, 0x93, 0xE3, 0xA4, 0xB4, 0xE8, 0xDE, 0xE7,
0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xD7, 0xE2, 0xF3, 0x30, 0x49, 0xD8,
0x28, 0x43, 0xD8, 0x28, 0x43, 0xD4, 0x22, 0x3B, 0xCC, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6E,
0x7B, 0xD1, 0xCF, 0xD0, 0xDF, 0xD7, 0xD7, 0xE0, 0xDC, 0xDB, 0xE1, 0xB3, 0xB7, 0xDA, 0x00, 0x19,
0xC1, 0x74, 0x85, 0xE7, 0x34, 0x4F, 0xDA, 0x40, 0x57, 0xDA, 0x3E, 0x57, 0xDD, 0x90, 0xA0, 0xE9,
0x91, 0xA1, 0xE8, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDE,
0xE7, 0xF5, 0xD7, 0xE2, 0xF3, 0xE0, 0xE9, 0xF7, 0x27, 0x43, 0xD8, 0x29, 0x43, 0xD1, 0x21, 0x3B,
0xCB, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6E, 0x7B, 0xD1, 0xCF, 0xD0, 0xDF, 0xD7, 0xD7, 0xE0,
0xDB, 0xDA, 0xE0, 0xB2, 0xB6, 0xD9, 0x00, 0x19, 0xC1, 0x74, 0x85, 0xE7, 0x2B, 0x45, 0xD8, 0x3A,
0x52, 0xD8, 0x5E, 0x74, 0xE1, 0xA8, 0xB6, 0xEF, 0xDE, 0xE7, 0xF5, 0xDE, 0xE7, 0xF5, 0xDD, 0xE7,
0xF5, 0x3A, 0x52, 0xD9, 0xD7, 0xE2, 0xF3, 0xD7, 0xE2, 0xF3, 0xDE, 0xE7, 0xF5, 0xE6, 0xED, 0xFB,
0x5E, 0x71, 0xE1, 0x28, 0x43, 0xD0, 0x1D, 0x38, 0xCB, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6D,
0x7A, 0xD0, 0xCE, 0xCF, 0xDE, 0xD6, 0xD6, 0xDF, 0xD9, 0xD7, 0xDB, 0xB1, 0xB4, 0xD6, 0x00, 0x19,
0xC1, 0x74, 0x85, 0xE7, 0x2D, 0x47, 0xD8, 0x2F, 0x49, 0xD8, 0x30, 0x49, 0xD8, 0x73, 0x86, 0xE5,
0xE1, 0xE8, 0xF9, 0xE7, 0xEE, 0xFB, 0x34, 0x4F, 0xDB, 0x34, 0x4D, 0xDA, 0x34, 0x4D, 0xD9, 0xE0,
0xE9, 0xF7, 0xE6, 0xED, 0xFB, 0x77, 0x88, 0xE5, 0x27, 0x41, 0xD1, 0x25, 0x3F, 0xCF, 0x24, 0x3D,
0xCF, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6C, 0x79, 0xCE, 0xCD, 0xCD, 0xD9, 0xD5, 0xD4, 0xDA,
0xD9, 0xD7, 0xDB, 0xD6, 0xD4, 0xDA, 0x86, 0x8F, 0xD1, 0x00, 0x19, 0xC1, 0x48, 0x5F, 0xDB, 0x2B,
0x45, 0xD7, 0x28, 0x44, 0xD7, 0x2C, 0x46, 0xD8, 0x63, 0x78, 0xE2, 0x2D, 0x47, 0xD9, 0x31, 0x4B,
0xD9, 0x31, 0x4B, 0xD8, 0x30, 0x4A, 0xD8, 0x2D, 0x47, 0xD8, 0x62, 0x78, 0xE2, 0x27, 0x41, 0xD1,
0x25, 0x3F, 0xCF, 0x25, 0x3E, 0xD0, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6C, 0x79, 0xCE, 0xB1,
0xB4, 0xD6, 0xCF, 0xCE, 0xD9, 0xD6, 0xD4, 0xDA, 0xD9, 0xD7, 0xDB, 0xD7, 0xD5, 0xDA, 0xD3, 0xD1,
0xDA, 0x7E, 0x88, 0xD0, 0x00, 0x19, 0xC1, 0x48, 0x5F, 0xDB, 0x26, 0x43, 0xD6, 0x27, 0x43, 0xD2,
0x2C, 0x46, 0xD7, 0x2D, 0x47, 0xD7, 0x30, 0x49, 0xD8, 0x31, 0x4B, 0xD8, 0x2E, 0x48, 0xD8, 0x2C,
0x46, 0xD6, 0x28, 0x43, 0xD4, 0x26, 0x43, 0xD0, 0x25, 0x3F, 0xD1, 0x48, 0x5F, 0xDB, 0x00, 0x19,
0xC1, 0x6C, 0x78, 0xCD, 0xAD, 0xB1, 0xD6, 0xC4, 0xC5, 0xD8, 0xD3, 0xD1, 0xDA, 0xD7, 0xD5, 0xDA,
0xD9, 0xD7, 0xDB, 0xD8, 0xD6, 0xDA, 0xD5, 0xD4, 0xDA, 0xD1, 0xD0, 0xDA, 0x7D, 0x87, 0xD0, 0x00,
0x19, 0xC1, 0x48, 0x5F, 0xDB, 0x28, 0x44, 0xD7, 0x21, 0x3A, 0xCD, 0x25, 0x40, 0xCD, 0x27, 0x43,
0xD2, 0x28, 0x43, 0xD2, 0x27, 0x43, 0xD2, 0x26, 0x41, 0xD0, 0x25, 0x3E, 0xCE, 0x1A, 0x35, 0xCA,
0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6C, 0x78, 0xCD, 0xAC, 0xB0, 0xD6, 0xC2, 0xC3, 0xD8, 0xD1,
0xD0, 0xDA, 0xD5, 0xD4, 0xDA, 0xD8, 0xD6, 0xDA, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD8, 0xD6,
0xDA, 0xD5, 0xD4, 0xDA, 0xD1, 0xD0, 0xDA, 0x7D, 0x87, 0xD0, 0x00, 0x19, 0xC1, 0x48, 0x5F, 0xDB,
0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48,
0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x48, 0x5F, 0xDB, 0x00, 0x19, 0xC1, 0x6C, 0x78, 0xCD, 0xAC, 0xB0,
0xD6, 0xC2, 0xC3, 0xD8, 0xD1, 0xD0, 0xDA, 0xD5, 0xD4, 0xDA, 0xD8, 0xD6, 0xDA, 0xD9, 0xD7, 0xDB,
0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD8, 0xD6, 0xDA, 0xD5, 0xD4, 0xDA, 0xD1,
0xD0, 0xDA, 0x7D, 0x87, 0xD0, 0x00, 0x19, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A,
0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1, 0x00, 0x1A, 0xC1,
0x6C, 0x79, 0xCE, 0xAC, 0xB0, 0xD6, 0xC2, 0xC3, 0xD8, 0xD1, 0xD0, 0xDA, 0xD5, 0xD4, 0xDA, 0xD8,
0xD6, 0xDA, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7,
0xDB, 0xD9, 0xD7, 0xDB, 0xD8, 0xD6, 0xDA, 0xD5, 0xD4, 0xDA, 0xD1, 0xD0, 0xDA, 0x87, 0x8F, 0xD1,
0x78, 0x83, 0xCF, 0x77, 0x82, 0xCF, 0x77, 0x82, 0xCF, 0x77, 0x82, 0xCF, 0x77, 0x82, 0xCF, 0x77,
0x82, 0xCF, 0x77, 0x82, 0xCF, 0x77, 0x82, 0xCF, 0xAF, 0xB2, 0xD6, 0xC3, 0xC4, 0xD8, 0xD1, 0xD0,
0xDA, 0xD5, 0xD4, 0xDA, 0xD8, 0xD6, 0xDA, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB,
0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD8,
0xD6, 0xDA, 0xD5, 0xD4, 0xDA, 0xD2, 0xD1, 0xDA, 0xC6, 0xC6, 0xD8, 0xC3, 0xC4, 0xD8, 0xC2, 0xC3,
0xD8, 0xC2, 0xC3, 0xD8, 0xC2, 0xC3, 0xD8, 0xC2, 0xC3, 0xD8, 0xC2, 0xC3, 0xD8, 0xC3, 0xC4, 0xD8,
0xC6, 0xC6, 0xD8, 0xD2, 0xD1, 0xDA, 0xD5, 0xD4, 0xDA, 0xD8, 0xD6, 0xDA, 0xD9, 0xD7, 0xDB, 0xD9,
0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7,
0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD8, 0xD6, 0xDA,
0xD6, 0xD4, 0xDA, 0xD3, 0xD2, 0xDA, 0xD3, 0xD1, 0xDA, 0xD2, 0xD1, 0xDA, 0xCB, 0xCB, 0xD9, 0xD2,
0xD1, 0xDA, 0xD2, 0xD1, 0xDA, 0xD3, 0xD1, 0xDA, 0xD3, 0xD2, 0xDA, 0xD6, 0xD4, 0xDA, 0xD8, 0xD6,
0xDA, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB, 0xD9, 0xD7, 0xDB
};

View File

@ -0,0 +1,529 @@
dword toolbar_pal[218]= {0x00E4DFE1,0x00EDE9EA,0x00C3BEC0,0x00D7C7C4,0x00876845,0x00987745,0x00A4896C,0x00AC947A,0x00C5B5A5,0x00E5E1E2,0x00EAE6E8,0x00D4B9E8,0x00C29ADA,0x00B688D7,0x0094713E,0x00EDDA75,0x00F4E277,0x00DAC46A,0x00D5BB64,0x00BFA157,0x00B79952,0x00785733,0x00D7D8E2,0x008A9DC3,0x00D5D7E1,0x00DCC5EC,0x00B179D7,0x00C5A4DA,0x00C9A9E2,0x00C097E1,0x00A96AD4,0x00CEB1E5,0x00EEE07E,0x00F3D356,0x00EED263,0x00EDD15F,0x00F1DC71,0x006C553B,0x00D1CDD1,0x00C4C8D8,0x005376B5,0x006482BC,0x00BBC2D4,0x00E8E4E6,0x00E5D5F2,0x00EBE9F3,0x00E1CCF0,0x00DFD0E2,0x00F3E580,0x00F0CD4F,0x00EBC54A,0x00E6BC43,0x00EAC957,0x00E2CC6B,0x00906E42,0x009D9998,0x008D8581,0x008DA8D4,0x00E2DDE1,0x00A9B2C9,0x00E0CDEE,0x00D1B8DC,0x00A8874A,0x00F1CE50,0x00999089,0x00A8ABB5,0x0086807C,0x0076624C,0x00B3BCD2,0x005A7BB9,0x009BB2DC,0x00CFE0F2,0x00A1ADC8,0x00BB95D6,0x00998879,0x007F7062,0x00806C58,0x00A6B1C8,0x00A5BBE1,0x00C4D6ED,0x00D3E2F3,0x0092A2C4,0x00E1D4E3,0x008C7359,0x00B4B5BC,0x00BCBCC4,0x00AEB1BB,0x00786654,0x004B982C,0x00ACC2E4,0x00CDDEF1,0x00BCD1EB,0x00DBDBE2,0x00909FC0,0x00AC78D4,0x0089663A,0x00F1D969,0x00ABABAE,0x00B3B8C5,0x00B4C5D5,0x00BFD3E1,0x00CED0D6,0x00B2B6C2,0x00A49688,0x00DDD9DC,0x00AEE594,0x00A2ADC6,0x00A2B8DF,0x00B9CEE9,0x00B2C8E7,0x00AEB8CE,0x00D4D4DA,0x00CCB3D5,0x00D9CCDB,0x009E856B,0x00D1D8DE,0x005D9AC5,0x007BBDE7,0x00F1F0EF,0x00C2C2C8,0x00634C33,0x00C1B8B3,0x00BFC0C6,0x007BD34A,0x00607EB9,0x00B6CBE8,0x00B0C5E6,0x00CCD1DB,0x00E3E1DF,0x00909EBF,0x00DDC3F0,0x00727279,0x00ACA49E,0x00CBCACD,0x00DDE1EA,0x0065ABDA,0x0080C7F3,0x00D2D0D6,0x00BEC1CD,0x00C6C8D2,0x006D7384,0x008A94A7,0x00737D90,0x00428F25,0x00A4DD8E,0x0073CC45,0x0067C833,0x00A9BEE3,0x00D8C5DD,0x006E7991,0x008D919A,0x00E5E8EE,0x00CCCCD4,0x00928A84,0x00D9D3D4,0x00F7F6F6,0x00519D31,0x00B4EB9A,0x0083DA51,0x0073D33C,0x00B9BECE,0x00E1DBDC,0x00E3D2EF,0x0098A5B9,0x00868FA3,0x007F838B,0x00EBE9E5,0x0080D74F,0x005578B7,0x00A1B6DE,0x008798BE,0x00D5C4D8,0x00A7B9CD,0x008A9AB3,0x0082776F,0x008597BF,0x006B8AC2,0x0099AFDA,0x00C4C0C2,0x00738BBB,0x00D6CBD8,0x00C1D2E1,0x00BBCBDB,0x009AA9C3,0x008E9EBB,0x0055575C,0x00494A4E,0x00E3E5ED,0x00DAD6D8,0x008096C1,0x006887BE,0x005C5E65,0x0096ADD9,0x00D2C4D6,0x00AF85D2,0x00AEC0D1,0x00686C72,0x00CCCFDD,0x008499C3,0x00C8C3C5,0x007890BF,0x00CDD9E4,0x007591C6,0x007A8499,0x00CBD7E2,0x0063656D,0x007A7D85,0x007996C9,0x00B4BBCB,0x007A94C3,0x00838996,0x008DA1C6,0x00C4C5D1,0x006E717A,0x009BA0AE,0x009BA9C9,0x00979FB0,0x00979DAB};
unsigned char toolbar[8400] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x08, 0x09, 0x09, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x0A, 0x0B, 0x0C, 0x0D, 0x0B, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x0E, 0x0F, 0x10, 0x11, 0x12,
0x13, 0x14, 0x05, 0x05, 0x15, 0x03, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x16, 0x17, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x17,
0x18, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x19, 0x1A, 0x0D, 0x1B, 0x1C, 0x1D, 0x1E, 0x1F, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x03, 0x0E, 0x20, 0x10, 0x21, 0x22, 0x23, 0x22, 0x22, 0x24, 0x12, 0x04, 0x25, 0x26, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x27, 0x28,
0x29, 0x18, 0x0A, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x29, 0x28, 0x2A, 0x2B, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x1D, 0x1A, 0x1C, 0x2C, 0x2D, 0x2D, 0x2D, 0x2E, 0x1C,
0x0D, 0x2F, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x03, 0x0E, 0x20, 0x30, 0x21, 0x31, 0x32, 0x33,
0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x25, 0x0A, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01,
0x01, 0x01, 0x01, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x0A, 0x0A, 0x0A,
0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x2A, 0x28, 0x39, 0x29, 0x2A, 0x3A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A,
0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x29,
0x39, 0x28, 0x3B, 0x09, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0D, 0x0D,
0x0B, 0x2C, 0x2C, 0x2C, 0x3C, 0x0B, 0x1C, 0x1F, 0x1F, 0x0D, 0x3D, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A,
0x0A, 0x0A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x0A, 0x0A, 0x0A, 0x03,
0x3E, 0x30, 0x10, 0x21, 0x3F, 0x32, 0x32, 0x33, 0x34, 0x0F, 0x05, 0x40, 0x41, 0x41, 0x42, 0x43,
0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A,
0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x44, 0x45, 0x46, 0x47,
0x29, 0x44, 0x16, 0x2B, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A,
0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x2B, 0x29, 0x47, 0x46, 0x45, 0x48, 0x09, 0x0A, 0x0A, 0x0A,
0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x0A,
0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x1C, 0x1A, 0x1F, 0x3C, 0x2C, 0x3C, 0x1B, 0x49, 0x49, 0x49, 0x1B,
0x0C, 0x0D, 0x1A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x0A, 0x0A, 0x0A, 0x03, 0x3E, 0x30, 0x10, 0x21, 0x3F, 0x31, 0x32, 0x33, 0x32,
0x24, 0x3E, 0x4A, 0x41, 0x41, 0x41, 0x41, 0x4B, 0x4C, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A,
0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A, 0x0A,
0x0A, 0x0A, 0x0A, 0x0A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, 0x2B, 0x2B,
0x2B, 0x2B, 0x2B, 0x4D, 0x45, 0x4E, 0x4F, 0x50, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
0x29, 0x29, 0x29, 0x3A, 0x09, 0x2B, 0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x2B, 0x2B, 0x2B, 0x2B, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29,
0x50, 0x4F, 0x4E, 0x45, 0x51, 0x3A, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2F, 0x1E, 0x1B, 0x19,
0x2C, 0x3C, 0x49, 0x0D, 0x3D, 0x2F, 0x52, 0x3A, 0x2B, 0x2B, 0x3A, 0x2F, 0x2B, 0x2B, 0x2B, 0x2B,
0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, 0x03, 0x3E, 0x20,
0x24, 0x31, 0x31, 0x32, 0x32, 0x32, 0x32, 0x24, 0x13, 0x53, 0x41, 0x54, 0x55, 0x41, 0x41, 0x56,
0x57, 0x4A, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B,
0x2B, 0x2B, 0x2B, 0x58, 0x58, 0x58, 0x58, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x48, 0x45, 0x59, 0x4F, 0x4F, 0x5A,
0x50, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x5B, 0x29, 0x2A, 0x5C, 0x2B, 0x2B, 0x2B,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, 0x2B, 0x2B, 0x29, 0x5B, 0x47,
0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x47, 0x50, 0x5A, 0x4F, 0x4F, 0x59, 0x45, 0x5D, 0x5C, 0x2B,
0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B,
0x2B, 0x3D, 0x2F, 0x3A, 0x1E, 0x0D, 0x2E, 0x2E, 0x2E, 0x49, 0x5E, 0x3D, 0x2F, 0x2B, 0x2B, 0x2B,
0x2B, 0x2B, 0x2B, 0x0D, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x2B, 0x2B, 0x5F, 0x0F, 0x10, 0x32, 0x32, 0x32, 0x32, 0x33, 0x33, 0x60, 0x12,
0x53, 0x61, 0x62, 0x63, 0x64, 0x65, 0x56, 0x66, 0x56, 0x43, 0x67, 0x2B, 0x2B, 0x2B, 0x2B, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x2B, 0x2B, 0x2B, 0x2B, 0x68, 0x68, 0x68, 0x68,
0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x68, 0x58, 0x69, 0x69, 0x58, 0x68,
0x3A, 0x2B, 0x2B, 0x2B, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x09, 0x09, 0x09,
0x09, 0x6A, 0x45, 0x6B, 0x4F, 0x5B, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6D, 0x29, 0x6E, 0x6F, 0x09, 0x09, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x09, 0x09, 0x09, 0x09, 0x29, 0x6D, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C, 0x6C,
0x6C, 0x6C, 0x5B, 0x4F, 0x6B, 0x45, 0x5D, 0x68, 0x09, 0x09, 0x09, 0x09, 0x09, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x09, 0x09, 0x1A, 0x0D, 0x1C, 0x1E, 0x0B, 0x2C, 0x0B,
0x1F, 0x5E, 0x70, 0x71, 0x09, 0x09, 0x09, 0x09, 0x09, 0x3D, 0x1A, 0x0D, 0x1E, 0x09, 0x09, 0x09,
0x09, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x09, 0x72, 0x05, 0x35,
0x10, 0x23, 0x32, 0x33, 0x33, 0x60, 0x35, 0x36, 0x61, 0x54, 0x73, 0x74, 0x75, 0x76, 0x77, 0x55,
0x55, 0x54, 0x78, 0x79, 0x09, 0x09, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x09, 0x09, 0x09, 0x26, 0x77, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A, 0x7A,
0x7A, 0x58, 0x58, 0x58, 0x69, 0x7B, 0x58, 0x58, 0x58, 0x09, 0x09, 0x09, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x09, 0x09, 0x09, 0x09, 0x6A, 0x7C, 0x4E, 0x6C, 0x7D, 0x6D, 0x7D, 0x7D,
0x7D, 0x6C, 0x7D, 0x7D, 0x6C, 0x6C, 0x6C, 0x6C, 0x7E, 0x7D, 0x29, 0x3B, 0x7F, 0x09, 0x09, 0x09,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x09, 0x09, 0x80, 0x29, 0x7D, 0x7E,
0x6C, 0x6C, 0x6C, 0x6C, 0x7D, 0x7D, 0x6C, 0x7D, 0x7D, 0x7D, 0x7D, 0x7D, 0x6C, 0x4E, 0x7C, 0x81,
0x68, 0x09, 0x09, 0x09, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x09,
0x70, 0x1E, 0x49, 0x1A, 0x1B, 0x2C, 0x82, 0x0B, 0x1C, 0x1A, 0x71, 0x09, 0x09, 0x09, 0x09, 0x3D,
0x1A, 0x0D, 0x0C, 0x0B, 0x1A, 0x1C, 0x09, 0x09, 0x09, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x09, 0x09, 0x09, 0x83, 0x5F, 0x14, 0x24, 0x24, 0x34, 0x23, 0x0F, 0x05, 0x84,
0x55, 0x85, 0x86, 0x87, 0x88, 0x76, 0x80, 0x89, 0x8A, 0x8B, 0x8C, 0x78, 0x26, 0x09, 0x09, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x09, 0x09, 0x7A, 0x8D, 0x8E, 0x8E, 0x8E,
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8F, 0x90, 0x90, 0x91, 0x91, 0x91, 0x92,
0x58, 0x09, 0x09, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x09, 0x09, 0x6A,
0x29, 0x4E, 0x6C, 0x7E, 0x7E, 0x7E, 0x6D, 0x6D, 0x6D, 0x6D, 0x7E, 0x6D, 0x6D, 0x7D, 0x7D, 0x7D,
0x7E, 0x7D, 0x29, 0x3B, 0x65, 0x09, 0x09, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x09, 0x09, 0x09, 0x3A, 0x29, 0x7D, 0x7E, 0x7D, 0x7D, 0x7D, 0x7D, 0x6D, 0x7E, 0x6D, 0x6D,
0x6D, 0x6D, 0x7E, 0x7E, 0x7E, 0x6C, 0x93, 0x29, 0x81, 0x68, 0x09, 0x09, 0x09, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x09, 0x3D, 0x0D, 0x19, 0x19, 0x2C, 0x2E, 0x82, 0x19,
0x1D, 0x0D, 0x94, 0x09, 0x09, 0x94, 0x1A, 0x0D, 0x1B, 0x19, 0x2E, 0x2C, 0x1D, 0x5E, 0x80, 0x09,
0x09, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x09, 0x09, 0x09, 0x95, 0x96,
0x4B, 0x0E, 0x12, 0x24, 0x24, 0x3E, 0x67, 0x7A, 0x85, 0x80, 0x76, 0x97, 0x97, 0x76, 0x09, 0x76,
0x6F, 0x98, 0x95, 0x99, 0x9A, 0x09, 0x09, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x09, 0x09, 0x09, 0x55, 0x8E, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B, 0x9B,
0x9B, 0x9C, 0x9D, 0x9E, 0x9E, 0x9E, 0x9F, 0x92, 0x58, 0x09, 0x09, 0x09, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0x3A, 0x3A, 0xA0, 0x28, 0x59, 0x6C, 0x4E, 0x59, 0x59, 0x59, 0x59, 0x59,
0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x7E, 0x4E, 0x7D, 0x29, 0x3B, 0x98, 0x3A, 0x3A, 0x3A,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3A, 0x3A, 0x3A, 0xA1, 0x29, 0x7D, 0x4E,
0x7E, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x59, 0x4E, 0x6C, 0x59,
0x28, 0x48, 0x68, 0x3A, 0x3A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3A, 0x3A,
0x68, 0x1A, 0x1D, 0x19, 0xA2, 0x19, 0x0B, 0x19, 0x0D, 0x1A, 0x0D, 0x3A, 0x70, 0x1A, 0x49, 0x0B,
0x19, 0x19, 0x19, 0xA2, 0x19, 0x1A, 0x1B, 0x3A, 0x3A, 0x3A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0x3A, 0x3A, 0x3A, 0x95, 0xA3, 0xA4, 0xA5, 0x04, 0x3E, 0x14, 0x72, 0x77, 0x85,
0xA6, 0x09, 0x80, 0x09, 0x80, 0x2B, 0x76, 0x76, 0x76, 0x5C, 0x95, 0x3A, 0x3A, 0x3A, 0x3A, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3A, 0x3A, 0x3A, 0x55, 0x8E, 0x9B, 0x97, 0x97,
0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x9C, 0x9C, 0x9C, 0xA7, 0x9F, 0x9C, 0x8F,
0x58, 0x3A, 0x3A, 0x3A, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xA1, 0xA1, 0x6A, 0xA8,
0x7D, 0x7E, 0x6B, 0x46, 0x46, 0x6B, 0x93, 0x93, 0xA9, 0x4E, 0x46, 0x6B, 0x4E, 0x4E, 0x4E, 0x4E,
0x4E, 0x6C, 0x29, 0x4D, 0x98, 0xA1, 0xA1, 0xA1, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0xA1, 0xA1, 0xA1, 0x68, 0x29, 0x6C, 0x4E, 0x4E, 0x93, 0x4E, 0x4E, 0x6B, 0x46, 0x4E, 0xA9,
0x93, 0x93, 0x6B, 0x46, 0x46, 0x6B, 0x7E, 0x7D, 0xA8, 0xAA, 0x98, 0x68, 0xA1, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xA1, 0xA1, 0xA1, 0x70, 0x5E, 0x0B, 0x3C, 0x0B, 0x0B, 0x0B,
0x1C, 0x1A, 0x1E, 0x0C, 0xA1, 0x49, 0x0D, 0x1D, 0x19, 0x19, 0x3C, 0xA2, 0x19, 0x1D, 0x5E, 0xAB,
0xA1, 0xA1, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xA1, 0xA1, 0xA1, 0x95, 0x86,
0xAC, 0xAD, 0xAD, 0x42, 0xAE, 0x85, 0x85, 0x09, 0xA6, 0x76, 0x76, 0x76, 0x09, 0x26, 0x9B, 0x76,
0x76, 0x9B, 0x95, 0xA1, 0xA1, 0xA1, 0xA1, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0xA1, 0xA1, 0xA1, 0x55, 0x8E, 0x9B, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97, 0x97,
0x97, 0x97, 0x97, 0x9C, 0x9F, 0x9F, 0x9C, 0x8E, 0x55, 0xA1, 0xA1, 0xA1, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xA1, 0xA1, 0xA1, 0xAF, 0xB0, 0x7E, 0x7E, 0x4E, 0xB1, 0x4E, 0x93, 0x4E,
0x46, 0xA9, 0x46, 0x6B, 0xA9, 0x46, 0x46, 0xA9, 0x6B, 0x6C, 0x29, 0x4D, 0x98, 0xA1, 0xA1, 0xA1,
0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xA1, 0xA1, 0xA1, 0x68, 0x29, 0x6C, 0x6B,
0xA9, 0x46, 0x46, 0xA9, 0x6B, 0x46, 0xA9, 0x46, 0x4E, 0x93, 0x4E, 0xB1, 0x4E, 0x7E, 0x7E, 0xB0,
0xB3, 0x6E, 0x8B, 0x68, 0xA1, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xA1, 0xA1,
0xA1, 0xA1, 0x1A, 0x0D, 0x2E, 0x19, 0x1F, 0x0D, 0x5E, 0x1E, 0x1B, 0xB4, 0xA1, 0xA1, 0x0D, 0x1C,
0x3C, 0x82, 0x2E, 0x2C, 0x19, 0x19, 0x0D, 0x1B, 0xA1, 0xA1, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xA1, 0xA1, 0xA1, 0x95, 0x86, 0xB5, 0xB6, 0xB7, 0xB8, 0xAD, 0x18, 0x68, 0xA6,
0xA6, 0x01, 0x83, 0xB9, 0xBA, 0xBA, 0x9B, 0x76, 0x76, 0x9B, 0x95, 0xA1, 0xA1, 0xA1, 0xA1, 0xB2,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xA1, 0xA1, 0xA1, 0x55, 0x8E, 0x9B, 0xBB, 0xBB,
0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0xBB, 0x9C, 0x9C, 0x9C, 0x9C, 0x8E,
0x55, 0xA1, 0xA1, 0xA1, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xA1, 0xA1, 0xA1, 0xBC,
0xBD, 0xBE, 0x93, 0x7E, 0x4E, 0x59, 0x7E, 0x59, 0xA9, 0x6B, 0xA9, 0x4E, 0x4E, 0xA9, 0x46, 0xB1,
0xA9, 0x5B, 0x29, 0x4D, 0x98, 0xA1, 0xA1, 0xA1, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0xA1, 0xA1, 0xA1, 0x68, 0x29, 0x5B, 0xA9, 0xB1, 0x46, 0xA9, 0x4E, 0x4E, 0xA9, 0x6B, 0xA9,
0x59, 0x7E, 0x59, 0x4E, 0x7E, 0x93, 0xBE, 0xB3, 0x4D, 0x8A, 0x6F, 0xA1, 0xA1, 0xB2, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xA1, 0xA1, 0xA1, 0xA1, 0x3D, 0x1A, 0x1F, 0x0D, 0x5E, 0x1E,
0x0C, 0xAB, 0xAB, 0xA1, 0xA1, 0xA1, 0x0D, 0x1F, 0x19, 0x82, 0x2C, 0x49, 0x1A, 0x0D, 0x1E, 0x0C,
0xA1, 0xA1, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xA1, 0xA1, 0xA1, 0x95, 0x86,
0xB5, 0x64, 0xB6, 0xAC, 0x51, 0x09, 0xA6, 0xA6, 0x01, 0x01, 0xB9, 0xB9, 0xBF, 0xB9, 0x9B, 0x76,
0x76, 0x9B, 0x95, 0xA1, 0xA1, 0xA1, 0xA1, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0xA1, 0xA1, 0xA1, 0x54, 0x8E, 0x9B, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x86,
0x86, 0x86, 0x86, 0x86, 0x86, 0x86, 0x9B, 0x8E, 0x54, 0xA1, 0xA1, 0xA1, 0xB2, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0x89, 0xBD, 0xB0, 0x93, 0x7E, 0x59, 0x6D, 0x7E,
0x93, 0xA9, 0x46, 0x4E, 0x93, 0x4E, 0xA9, 0xC0, 0xC0, 0x5B, 0x29, 0x6A, 0x8B, 0xBC, 0xBC, 0xA1,
0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0x29, 0x5B, 0xC0,
0xC0, 0xA9, 0x4E, 0x93, 0x4E, 0x46, 0xA9, 0x93, 0x7E, 0x6D, 0x59, 0x7E, 0x93, 0xB0, 0xB3, 0x6A,
0xA0, 0x89, 0xBC, 0xBC, 0xA1, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0x1E, 0x5E, 0x1E, 0x49, 0x70, 0xC1, 0x9A, 0xBC, 0xBC, 0xBC, 0xC1, 0x0D, 0x0B,
0x19, 0xA2, 0x1F, 0x5E, 0x49, 0xC2, 0x1A, 0x70, 0x68, 0xA1, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0x95, 0x86, 0xB5, 0xB6, 0xB6, 0x63, 0xC3, 0x76, 0xA6, 0xA6,
0x01, 0x01, 0xB9, 0xC4, 0xC4, 0xB9, 0x9B, 0x76, 0x76, 0x9B, 0x95, 0x68, 0x68, 0x68, 0xA1, 0xB2,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0x54, 0x8E, 0x9B, 0xC5, 0xC5,
0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0xC5, 0x9B, 0x8E,
0x54, 0xBC, 0xBC, 0xA1, 0xB2, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0x89, 0xC6, 0xB0, 0x4E, 0x7E, 0x7E, 0x6C, 0x6C, 0x6C, 0x7D, 0x7D, 0x7D, 0x6D, 0x6D, 0x7E,
0x7E, 0x59, 0x29, 0x6A, 0x8B, 0xBC, 0xBC, 0xBC, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0x29, 0x59, 0x7E, 0x7E, 0x6D, 0x6D, 0x7D, 0x7D, 0x7D, 0x6C, 0x6C,
0x6C, 0x7E, 0x7E, 0x4E, 0xB0, 0xC8, 0x6A, 0xA0, 0x89, 0xBC, 0xBC, 0xBC, 0xBC, 0xC7, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x5E, 0x70, 0xC1, 0x9A,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x0D, 0x0C, 0xA2, 0x2E, 0x19, 0x49, 0x5E, 0x70, 0x70, 0x0C, 0xB4,
0xBC, 0xBC, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0x95, 0x7F,
0xC9, 0xB6, 0xB6, 0x63, 0x63, 0x76, 0xA6, 0xA6, 0x01, 0x01, 0xBF, 0x83, 0x83, 0xBF, 0x9B, 0x76,
0x76, 0x9B, 0x95, 0xBC, 0xBC, 0xBC, 0xBC, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0xBC, 0xBC, 0xBC, 0x54, 0x8E, 0x2D, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x2D, 0x8E, 0x54, 0xBC, 0xBC, 0xBC, 0xC7, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x89, 0x17, 0xCA, 0xA9, 0x7E, 0x6D,
0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x4D, 0x8B, 0xBC, 0xBC, 0xBC,
0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0x29, 0x29, 0x29,
0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x29, 0x6D, 0x7E, 0xA9, 0xCA, 0xC8, 0x6A, 0xA0, 0x89,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x9A, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xB4, 0x49, 0x1B, 0x2C, 0x2C,
0x19, 0x1B, 0xC2, 0x1B, 0xC1, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0x41, 0xCB, 0x7F, 0xCC, 0xB6, 0x63, 0x63, 0x76, 0xA6, 0x01,
0x01, 0x01, 0xCD, 0xCE, 0xCE, 0xCD, 0x9B, 0x76, 0x76, 0x9B, 0x95, 0xBC, 0xBC, 0xBC, 0xBC, 0xC7,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0x54, 0x8E, 0x97, 0x27, 0x27,
0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x97, 0x8E,
0x54, 0xBC, 0xBC, 0xBC, 0xC7, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0x89, 0x17, 0xCF, 0x46, 0x7E, 0x29, 0xB7, 0x6A, 0x4D, 0x3B, 0x3B, 0x3B, 0x3B,
0x3B, 0x3B, 0x3B, 0x6E, 0x89, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0x89, 0xD0, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x3B, 0x4D, 0x29,
0x7E, 0x46, 0xCF, 0xD1, 0x6A, 0xA0, 0x89, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x0D, 0x49, 0x1B,
0x70, 0x1B, 0x49, 0x0C, 0x1C, 0x2C, 0x2C, 0x19, 0x1C, 0xC2, 0x49, 0xC1, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0x56,
0xCB, 0xD0, 0xCC, 0x63, 0x63, 0x76, 0xA6, 0x01, 0x01, 0x76, 0xC4, 0xA5, 0xD2, 0xC4, 0x9B, 0x76,
0x76, 0x9B, 0x95, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0xBC, 0xBC, 0xBC, 0x54, 0x8E, 0x97, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27,
0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x97, 0x8E, 0x54, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x89, 0xD3, 0xCF, 0xB1,
0x29, 0x6A, 0xD4, 0x8B, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x65, 0x89, 0xBC, 0xBC, 0xBC, 0xBC,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x89, 0x65,
0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x98, 0x29, 0xB1, 0xCF, 0xBD, 0x6A, 0xA0, 0x89, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x0C, 0x0D, 0x0C, 0x1B, 0x1B, 0x0B, 0x19, 0xA2, 0x2C, 0x3C, 0x1F,
0x0D, 0xC2, 0xC1, 0x71, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x54, 0x8E, 0xD0, 0xC9, 0x63, 0x76, 0xA6, 0x01,
0x01, 0x76, 0xC4, 0xD2, 0x96, 0xC4, 0x9B, 0x9B, 0x5C, 0x65, 0x95, 0xBC, 0xBC, 0xBC, 0xBC, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0x77, 0x41, 0x8E, 0x27, 0x27, 0x27,
0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x27, 0x8E,
0x41, 0x77, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x89, 0xD3, 0xCF, 0x29, 0x3B, 0x98, 0x6F, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x6F, 0x29,
0xCF, 0xC6, 0x6A, 0xA0, 0x89, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x1B, 0x49,
0x1B, 0x0B, 0x3C, 0x2C, 0xA2, 0x19, 0x1B, 0x0D, 0x0D, 0xC1, 0xB4, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0x85, 0x8E, 0x41, 0xCC, 0x76, 0x01, 0x76, 0x76, 0x9B, 0xD5, 0xD2, 0xD2, 0x8C, 0x8D, 0x95,
0xCB, 0x8D, 0xD6, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0xBC, 0xBC, 0x41, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E,
0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x8E, 0x41, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x89, 0xD7,
0xBD, 0xD0, 0x89, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xD3, 0x51, 0x3B, 0x8A, 0x89, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xB4, 0x49, 0x49, 0x0C, 0x1B, 0x1B, 0x49, 0xC2, 0x1B,
0xC1, 0xB4, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x85, 0xCB, 0xD8, 0x09, 0x98, 0x66,
0xD8, 0xCB, 0x95, 0xA4, 0xD9, 0x56, 0x56, 0x77, 0x26, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0x9A, 0x9A, 0x9A, 0x9A,
0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A, 0x9A,
0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x89, 0xA0, 0xD4, 0x6F, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x8B,
0xD4, 0x8B, 0x89, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0x1B, 0x0D, 0x0D, 0x49, 0x49, 0x70, 0xC1, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xD2, 0x8E, 0xA4, 0xD6, 0x41, 0x77, 0x26, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0x6F, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x6F, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x71, 0xB4, 0xB4, 0x9A, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0x02,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC, 0xBC,
0xBC, 0xBC, 0xBC, 0xBC, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02,
0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x02, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};

View File

@ -0,0 +1,288 @@
//Íàäî áóäåò ïåðåäåëàòü íà "äåðåâî ïîèñêà" èëè, ÷òî-òî ïîäîáíîå
//áóäåò íå÷èòàáåëüíî, çàòî ìåíüøå è áûñòåå
//Èìåíà web öâåòîâ
char *color_names[]={
"aliceblue",
"antiquewhite",
"aqua",
"aquamarine",
"azure",
"beige",
"bisque",
"black",
"blanchedalmond",
"blue",
"blueviolet",
"brown",
"burlywood",
"cadetblue",
"chartreuse",
"chocolate",
"coral",
"cornflowerblue",
"cornsilk",
"crimson",
"cyan",
"darkblue",
"darkcyan",
"darkgoldenrod",
"darkgray",
"darkgreen",
"darkkhaki",
"darkmagenta",
"darkolivegreen",
"darkorange",
"darkorchid",
"darkred",
"darksalmon",
"darkseagreen",
"darkslateblue",
"darkslategray",
"darkturquoise",
"darkviolet",
"deeppink",
"deepskyblue",
"dimgray",
"dodgerblue",
"firebrick",
"floralwhite",
"forestgreen",
"fuchsia",
"gainsboro",
"ghostwhite",
"gold",
"goldenrod",
"gray",
"green",
"greenyellow",
"honeydew",
"hotpink",
"indianred",
"indigo",
"ivory",
"khaki",
"lavender",
"lavenderblush",
"lawngreen",
"lemonchiffon",
"lightblue",
"lightcoral",
"lightcyan",
"lightgoldenrodyellow",
"lightgray",
"lightgreen",
"lightpink",
"lightsalmon",
"lightseagreen",
"lightskyblue",
"lightslategray",
"lightsteelblue",
"lightyellow",
"lime",
"limegreen",
"linen",
"magenta",
"maroon",
"mediumaquamarine",
"mediumblue",
"mediumorchid",
"mediumpurple",
"mediumseagreen",
"mediumslateblue",
"mediumspringgreen",
"mediumturquoise",
"mediumvioletred",
"midnightblue",
"mintcream",
"mistyrose",
"moccasin",
"navajowhite",
"navy",
"navyblue",
"oldlace",
"olive",
"olivedrab",
"orange",
"orangered",
"orchid",
"palegoldenrod",
"paleturquoise",
"palevioletred",
"papayawhip",
"peachpuff",
"peru",
"pink",
"plum",
"powderblue",
"purple",
"red",
"rosybrown",
"royalblue",
"saddlebrown",
"salmon",
"sandybrown",
"seagreen",
"seashell",
"sienna",
"silver",
"skyblue",
"slateblue",
"slategray",
"snow",
"springgreen",
"steelblue",
"tan",
"teal",
"thistle",
"tomato",
"turquoise",
"violet",
"wheat",
"white",
"whitesmoke",
"yellow",
"yellowgreen"};
//ñîîòâåòñòâóþùèå èì çíà÷åíèÿ
dword *colors[]={
0xf0f8ff,
0xfaebd7,
0x00ffff,
0x7fffd4,
0xf0ffff,
0xf5f5dc,
0xffe4c4,
0x000000,
0xffebcd,
0x0000ff,
0x8a2be2,
0xa52a2a,
0xdeb887,
0x5f9ea0,
0x7fff00,
0xd2691e,
0xff7f50,
0x6495ed,
0xfff8dc,
0xdc143c,
0x00ffff,
0x00008b,
0x008b8b,
0xb8860b,
0xa9a9a9,
0x006400,
0xbdb76b,
0x8b008b,
0x556b2f,
0xff8c00,
0x9932cc,
0x8b0000,
0xe9967a,
0x8fbc8f,
0x483d8b,
0x2f4f4f,
0x00ced1,
0x9400d3,
0xff1493,
0x00bfff,
0x696969,
0x1e90ff,
0xb22222,
0xfffaf0,
0x228b22,
0xff00ff,
0xdcdcdc,
0xf8f8ff,
0xffd700,
0xdaa520,
0x808080,
0x008000,
0xadff2f,
0xf0fff0,
0xff69b4,
0xcd5c5c,
0x4b0082,
0xfffff0,
0xf0e68c,
0xe6e6fa,
0xfff0f5,
0x7cfc00,
0xfffacd,
0xadd8e6,
0xf08080,
0xe0ffff,
0xfafad2,
0xd3d3d3,
0x90ee90,
0xffb6c1,
0xffa07a,
0x20b2aa,
0x87cefa,
0x778899,
0xb0c4de,
0xffffe0,
0x00ff00,
0x32cd32,
0xfaf0e6,
0xff00ff,
0x800000,
0x66cdaa,
0x0000cd,
0xba55d3,
0x9370db,
0x3cb371,
0x7b68ee,
0x00fa9a,
0x48d1cc,
0xc71585,
0x191970,
0xf5fffa,
0xffe4e1,
0xffe4b5,
0xffdead,
0x000080,
0x9fafdf,
0xfdf5e6,
0x808000,
0x6b8e23,
0xffa500,
0xff4500,
0xda70d6,
0xeee8aa,
0xafeeee,
0xd87093,
0xffefd5,
0xffdab9,
0xcd853f,
0xffc0cb,
0xdda0dd,
0xb0e0e6,
0x800080,
0xff0000,
0xbc8f8f,
0x4169e1,
0x8b4513,
0xfa8072,
0xf4a460,
0x2e8b57,
0xfff5ee,
0xa0522d,
0xc0c0c0,
0x87ceeb,
0x6a5acd,
0x708090,
0xfffafa,
0x00ff7f,
0x4682b4,
0xd2b48c,
0x008080,
0xd8bfd8,
0xff6347,
0x40e0d0,
0xee82ee,
0xf5deb3,
0xffffff,
0xf5f5f5,
0xffff00,
0x9acd32};

View File

@ -0,0 +1,51 @@
int GetTime()
{
$mov eax, 26;
$mov ebx, 9;
$int 0x40;
return EAX;
}
/*******************************************************************************
ÔÓÍÊÖÈß ÎÏÐÅÄÅËÅÍÈß FPS
x,y - êîîðäèíàòû âûâîäà FPS íà îêíî
âîçâðàùàåò âðåìÿ â ñîòûõ äîëÿõ ñåêóíäû çàòðà÷èâàåìîå íà 1 öèêë
*/
int time1=0;
int time2=0;
int fps1=0;
int timerend=0;
int FPS()
{
int tr;
time1=GetTime();
if (timerend==0)
{
time2=time1;
timerend=time1;
}
tr = time1 - timerend;
if (time1 - time2 < 100) //åñëè ïðîøëî ìåíåå 1 ñåêóíäû
{ //óâåëè÷èâàåì ñ÷åò÷èê fps
fps1++;
}
else
{
//âûâîäèì ÷èñëî fps
DrawTitle(IntToStr(fps1));
fps1=0;
time2=time1;
}
timerend=time1;
return tr;
}
//******************************************************************************

View File

@ -0,0 +1,37 @@
struct UrlsHistory {
byte UrlHistory[6000];
void AddUrl();
void GoBack();
dword CurrentUrl();
};
UrlsHistory BrowserHistory;
void UrlsHistory::GoBack()
{
j = strlen(#UrlHistory);
WHILE(UrlHistory[j] <>'|') && (j > 0) j--;
IF (j > 0) UrlHistory[j] = 0x00;
WHILE(UrlHistory[j] <>'|') && (j > 0) {
copystr(#UrlHistory[j], #URL);
j--;
}
UrlHistory[j] = 0x00;
WB1.Load(#URL);
}
void UrlsHistory::AddUrl()
{
IF (strlen(#UrlHistory)>6000) copystr(#UrlHistory+5000,#UrlHistory);
copystr("|", #UrlHistory + strlen(#UrlHistory));
copystr(#URL, #UrlHistory + strlen(#UrlHistory));
}
dword UrlsHistory::CurrentUrl()
{
EAX=#UrlHistory + find_symbol(#UrlHistory, '|');
}

View File

@ -0,0 +1,62 @@
//ª­®¯ª¨
#define BACK 300
#define FORWARD 301
#define REFRESH 302
#define HOME 303
#define GOTOURL 305
#define SEARCHWEB 306
#define ID1 178
#define ID2 177
#define WINDOWS 0
#define DOS 1
#define KOI 2
#define UTF 3
#define DONT_LOAD 0
#define LETS_LOAD 1
byte utf100tmmv_mas[77] = "€<>ƒ„…†‡ˆ‰ŠŒ<E280B9>Ž<EFBFBD><C5BD>“”•˜™šœ<E280BA>žŸ ¡¢£¤¥¦§¨©ª«¬­®¯àáâãäåæçèéêëìíîïðñh£si\244j";
dword get_URL_part(byte len) {
char temp1[1000];
copystr(#URL, #temp1);
temp1[len] = 0x00;
return #temp1;
}
inline byte chTag(dword text) {return strcmp(#tag,text);}
//“ ­ á ­¥â ­ ª«®­­ëå èà¨ä⮢, ¯®í⮬㠤¥« ¥¬ ª®áâë«ì ¨§
//¯ «®ç¥ª ¤«ï ¬®à®¦¥­®£® ¨ ¦¥¢ â¥«ì­®© १¨­ª¨:
//‘­¨¬ ¥¬ ®¡« áâì íªà ­  ¨ ¢ë¢®¤¨¬ ¥ñ ®¡à â­® ¯®«®áª ¬¨ ᮠᬥ饭¨¥¬,
//çâ® ¤ ñâ ¯¥à¥ª®á ª à⨭ª¨
//<2F>ਠ­ «¨ç¨¨ ä®­  ¨ â.¯. ¯à®ï¢¨âáï ¢áï ª®áâë«ì­®áâì à¥è¥­¨ï :)
//ç áâì ¤ ­­ëå 㦥 ¯®«ã祭  ¢ TBW - skin_width, Form.top, ¯®¤ª«î祭¨¥ memory
inline void Skew(dword x,y,w,h)
{
dword italic_buf;
int tile_height=2,//¡ã¤¥¬ ¢ë¢®¤¨âì ¤¢ã寨ªá¥«ì­ë¬¨ ¯®«®áª ¬¨
i, skin_width,
shift=-2;
skin_width = GetSkinWidth();
Form.GetInfo(SelfInfo);
italic_buf = malloc(w*h*3);
//ebx = 㪠§ â¥«ì ­  ¯à¥¤¢ à¨â¥«ì­® ¢ë¤¥«¥­­ãî ®¡« áâì ¯ ¬ïâ¨, ªã¤  ¡ã¤¥â ¯®¬¥é¥­® ¨§®¡à ¦¥­¨¥ ¢ ä®à¬ â¥ BBGGRRBBGGRR...
EBX = italic_buf;
//ecx = [à §¬¥à ¯® ®á¨ x]*65536 + [à §¬¥à ¯® ®á¨ y]
ECX = w * 65536 + h;
//edx = [ª®®à¤¨­ â  ¯® ®á¨ x]*65536 + [ª®®à¤¨­ â  ¯® ®á¨ y]
EDX = x + Form.left * 65536 + y + Form.top + skin_width;
EAX = 36;
$int 0x40;
FOR (i=0;i*tile_height<h;i++){
PutImage(w*3*tile_height*i+italic_buf,w,tile_height,x+shift-i,i*tile_height+y);
}
free(italic_buf);
}

View File

@ -0,0 +1,173 @@
//Asper
char a_libdir[43] = "/sys/lib/\0";
//proc dll.Load, import_table:dword
int dll_Load(dword import_table)
{
$mov esi, import_table
@next_lib: $mov edx, DSDWORD[esi]
$or edx,edx
$jz exit_
$push esi
$mov esi,DSDWORD[esi+4]
$mov edi,#a_libdir
$push edi
$push esi
EAX=strlen(#a_libdir);
$pop esi
$pop edi
$add edi, eax //9
@loc01: $lodsb
$stosb
$or al,al
$jnz loc01
//IntToStr(EBX);
//$push edx
//WriteDebug(#a_libdir);
//$pop edx
//mcall 68,19,a_libdir
$mov eax, 68
$mov ebx, 19
$mov ecx,#a_libdir
$int 0x40
$or eax,eax
$jz fail
//stdcall dll.Link,eax,edx
dll_Link(EAX, EDX);
$push eax
$mov eax, DSDWORD [eax]
$cmp DSDWORD [eax], 'lib_'
$pop eax
//$jnz loc02
//IntToStr(EBX);
//$push eax
//WriteDebug(DSDWORD[EAX]);
//$pop eax
//stdcall dll.Init,[eax+4]
//dll_Init(DSDWORD[EAX]); //dll_Init(DSDWORD[EAX+4]);
@loc02:
$pop esi
$add esi,8
$jmp next_lib
@exit_: $xor eax,eax
return 0;
@fail: $add esp,4
$xor eax,eax
$inc eax
return -1;
}
//proc dll.Link, exp:dword,imp:dword
void dll_Link(dword exp, imp)
{
$push eax
$mov esi, imp
$test esi, esi
$jz done
@next: $lodsd
$test eax,eax
$jz done
//stdcall dll.GetProcAddress,[exp],eax
dll_GetProcAddress(exp,EAX);
$or eax,eax
$jz loc03
$mov DSDWORD[esi-4],eax
$jmp next
@loc03:
$mov DSDWORD[esp],0
@done: $pop eax
}
//proc dll.Init, dllentry:dword
void dll_Init(dword dllentry)
{
$pushad
EAX=#mem_Alloc;
EBX=#mem_Free;
ECX=#mem_ReAlloc;
EDX=#dll_Load;
DSDWORD [dllentry+4] stdcall ();
$popad
}
//proc dll.GetProcAddress, exp:dword,sz_name:dword
dword dll_GetProcAddress(dword exp, sz_name)
{
$push esi
$mov edx, exp
$xor eax,eax
@next: $or edx,edx
$jz end_
$cmp edx,0
$jz end_
strcmp(DSDWORD[EDX],sz_name);
$test eax,eax
$jz ok
$add edx,8
$jmp next
@ok:
$mov eax, DSDWORD[edx+4]
@end_:
$pop esi
return EAX;
}
int load_dll2(dword dllname, import_table, byte need_init)
{
//dword dllentry=0;
// load DLL
$mov eax, 68
$mov ebx, 19
ECX=dllname;
$int 0x40
$test eax, eax
$jz exit01
// initialize import
$mov edx,eax
ESI=import_table;
@import_loop01:
$lodsd
$test eax,eax
$jz import_done01
$push edx
@import_find01:
$mov ebx,DSDWORD[EDX]
$test ebx, ebx
$jz exit01
$push eax
@nex101:
$mov cl,DSBYTE[EAX];
$cmp cl,DSBYTE[EBX];
$jnz import_find_next01
$test cl,cl
$jz import_found01
$inc eax
$inc ebx
$jmp nex101
@import_find_next01:
$pop eax
$add edx, 8
$jmp import_find01
@import_found01:
$pop eax
$mov eax,DSDWORD[edx+4]
$mov DSDWORD[esi-4],eax
$pop edx
$jmp import_loop01
@import_done01:
IF (need_init) dll_Init(EDX);
return 0;
@exit01:
return -1;
}

View File

@ -0,0 +1,49 @@
//BOX_LIB
dword boxlib = #aEdit_box_lib; //Asper
char aEdit_box_lib[22]="/sys/lib/box_lib.obj\0"; //Asper
dword edit_box_draw = #aEdit_box_draw;
dword edit_box_key = #aEdit_box_key;
dword edit_box_mouse = #aEdit_box_mouse;
dword version_ed = #aVersion_ed;
dword am__ = 0x0;
dword bm__ = 0x0;
char aEdit_box_draw[9] = "edit_box\0";
char aEdit_box_key[13] = "edit_box_key\0";
char aEdit_box_mouse[15] = "edit_box_mouse\0";
char aVersion_ed[11] = "version_ed\0";
char aCheck_box_draw [15] = "check_box_draw\0";
char aCheck_box_mouse [16] = "check_box_mouse\0";
char aVersion_ch [11] = "version_ch\0";
char aOption_box_draw [16] = "option_box_draw\0";
char aOption_box_mouse[17] = "option_box_mouse\0";
char aVersion_op [11] = "version_op\0" ;
struct edit_box{
dword width, left, top, color, shift_color, focus_border_color, blur_border_color,
text_color, max, text, mouse_variable, flags, size, pos, offset, cl_curs_x, cl_curs_y, shift, shift_old;
};
//ed_width equ [edi] ;è¨à¨­  ª®¬¯®­¥­â 
//ed_left equ [edi+4] ;¯®«®¦¥­¨¥ ¯® ®á¨ å
//ed_top equ [edi+8] ;¯®«®¦¥­¨¥ ¯® ®á¨ ã
//ed_color equ [edi+12] ;梥â ä®­  ª®¬¯®­¥­â 
//shift_color equ [edi+16] ;=0x6a9480
//ed_focus_border_color equ [edi+20] ;梥â à ¬ª¨ ª®¬¯®­¥­â 
//ed_blur_border_color equ [edi+24] ;梥⠭¥  ªâ¨¢­®£® ª®¬¯®­¥­â 
//ed_text_color equ [edi+28] ;梥â ⥪áâ 
//ed_max equ [edi+32] ;ª®«-¢® ᨬ¢®«®¢ ª®â®àë¥ ¬®¦­® ¬ ªá¨¬ «ì­® ¢¢¥áâ¨
//ed_text equ [edi+36] ;㪠§ â¥«ì ­  ¡ãä¥à
//ed_flags equ [edi+40] ;ä« £¨
//ed_size equ [edi+42] ;ª®«-¢® ᨬ¢®«®¢
//ed_pos equ [edi+46] ;¯®§¨æ¨ï ªãàá®à 
//ed_offset equ [edi+50] ;ᬥ饭¨¥
//cl_curs_x equ [edi+54] ;¯à¥¤ë¤ãé ï ª®®à¤¨­ â  ªãàá®à  ¯® å
//cl_curs_y equ [edi+58] ;¯à¥¤ë¤ãé ï ª®®à¤¨­ â  ªãàá®à  ¯® ã
//ed_shift_pos equ [edi+62] ;¯®«®¦¥­¨¥ ªãàá®à 
//ed_shift_pos_old equ [edi+66] ;áâ à®¥ ¯®«®¦¥­¨¥ ªãàá®à 

View File

@ -0,0 +1,194 @@
struct f70{
dword func;
dword param1;
dword param2;
dword param3;
dword param4;
char rezerv;
dword name;
};
struct BDVK{
dword attr;
byte type_name;
byte rez1, rez2, rez3;
dword timecreate;
dword datecreate;
dword timelastaccess;
dword datelastaccess;
dword timelastedit;
dword datelastedit;
dword sizelo;
dword sizehi;
char name[518];
};
///////////////////////////
// Ïàğàìåòğû ôàéëà //
///////////////////////////
f70 getinfo_file_70;
BDVK getinfo_file_info;
dword GetFileInfo(dword file_name)
{
getinfo_file_70.func = 5;
getinfo_file_70.param1 =
getinfo_file_70.param2 =
getinfo_file_70.param3 =
getinfo_file_70.param4 = #getinfo_file_info;
getinfo_file_70.rezerv = 0;
getinfo_file_70.name = file_name;
$mov eax,70
$mov ebx,#getinfo_file_70.func
$int 0x40
IF (EAX == 0) {
EAX = #getinfo_file_info;
}
}
///////////////////////////
// Çàïóñê ïğîãğàììû //
///////////////////////////
f70 run_file_70;
void RunProgram(dword run_path, run_param)
{
run_file_70.func = 7;
run_file_70.param1 =
run_file_70.param3 =
run_file_70.param4 =
run_file_70.rezerv = 0;
run_file_70.param2 = run_param;
run_file_70.name = run_path;
$mov eax,70
$mov ebx,#run_file_70.func
$int 0x40
}
///////////////////////////
// Ñîçäàíèå ïàïêè //
///////////////////////////
f70 create_dir_70;
void CreateFolder(dword new_folder_path)
{
create_dir_70.func = 9;
create_dir_70.param1 =
create_dir_70.param2 =
create_dir_70.param3 =
create_dir_70.param4 =
create_dir_70.rezerv = 0;
create_dir_70.name = new_folder_path;
$mov eax,70
$mov ebx,#create_dir_70.func
$int 0x40
}
////////////////////////////
// Óäàëåíèå ôàéëà/ïàïêè //
////////////////////////////
f70 del_file_70;
void DeleteFile(dword del_file_path)
{
del_file_70.func = 8;
del_file_70.param1 =
del_file_70.param2 =
del_file_70.param3 =
del_file_70.param4 =
del_file_70.rezerv = 0;
del_file_70.name = del_file_path;
$mov eax,70
$mov ebx,#del_file_70.func
$int 0x40
}
////////////////////////////
// Ïğî÷èòàòü ôàéë //
////////////////////////////
f70 read_file_70;
void ReadFile(dword pos, file_size, read_buffer, file_path)
{
read_file_70.func = 0;
read_file_70.param1 = pos;
read_file_70.param2 = 0;
read_file_70.param3 = file_size;
read_file_70.param4 = read_buffer;
read_file_70.rezerv = 0;
read_file_70.name = file_path;
$mov eax,70
$mov ebx,#read_file_70.func
$int 0x40
}
///////////////////////////
// Ïğî÷èòàòü ïàïêó //
///////////////////////////
f70 read_dir_70;
void ReadDir(dword file_count, read_buffer, dir_path)
{
read_dir_70.func = 1;
read_dir_70.param1 =
read_dir_70.param2 =
read_dir_70.rezerv = 0;
read_dir_70.param3 = file_count;
read_dir_70.param4 = read_buffer;
read_dir_70.name = dir_path;
$mov eax,70
$mov ebx,#read_dir_70.func
$int 0x40
}
///////////////////////////
// Ñêîïèğîâàòü ôàéë //
///////////////////////////
f70 CopyFile_f;
inline fastcall dword CopyFile(dword EBX,ECX)
{
BDVK CopyFile_atr;
dword s=EBX, d=ECX, cBufer=0;
CopyFile_f.func = 5;
CopyFile_f.param1 = 0;
CopyFile_f.param2 = 0;
CopyFile_f.param3 = 0;
CopyFile_f.param4 = #CopyFile_atr;
CopyFile_f.rezerv = 0;
CopyFile_f.name = s;
$mov eax, 70
$mov ebx, #CopyFile_f
$int 0x40
if (!EAX)
{
cBufer = malloc(CopyFile_atr.sizelo);
ReadFile(dword 0, CopyFile_atr.sizelo, cBufer, s);
IF (!EAX)
{
CopyFile_f.func = 2;
CopyFile_f.param1 = 0;
CopyFile_f.param2 = 0;
CopyFile_f.param3 = CopyFile_atr.sizelo;
CopyFile_f.param4 = cBufer;
CopyFile_f.rezerv = 0;
CopyFile_f.name = d;
$mov eax, 70
$mov ebx, #CopyFile_f
$int 0x40
}
}
}
//Asper
void ReadAttributes(dword read_buffer, file_path)
{
read_file_70.func = 5;
read_file_70.param1 = 0;
read_file_70.param2 = 0;
read_file_70.param3 = 0;
read_file_70.param4 = read_buffer;
read_file_70.rezerv = 0;
read_file_70.name = file_path;
$mov eax,70
$mov ebx,#read_file_70.func
$int 0x40
}

View File

@ -0,0 +1,608 @@
//CODED by Veliant, Leency, Nable. GNU GPL licence.
#startaddress 0
#code32 TRUE
char os_name[8] = {'M','E','N','U','E','T','0','1'};
dword os_version = 0x00000001;
dword start_addr = #main;
dword final_addr = #stop+32;
dword alloc_mem = #0x00100000;
dword x86esp_reg = #0x00100000;
dword I_Param = #param;
dword I_Icon = 0x0;
char param[256]="";
//Events
#define evMouse 6
#define evButton 3
#define evKey 2
#define evReDraw 1
//Button options
#define BT_DEL 0x80000000
#define BT_HIDE 0x40000000
#define BT_NOFRAME 0x20000000
#define OLD -1
#define true 1
#define false 0
//-------------------------------------------------------------------------
struct mouse{
dword x,y,lkm,pkm,hor,vert;
void get();
};
void mouse::get()
{
EAX = 37;
EBX = 1;
$int 0x40
$mov ebx, eax
$shr eax, 16
$and ebx,0x0000FFFF
x = EAX;
y = EBX;
EAX = 37;
EBX = 2;
$int 0x40
$mov ebx, eax
$and eax, 0x00000001
$shr ebx, 1
$and ebx, 0x00000001
lkm = EAX;
pkm = EBX;
EAX = 37; //áªà®««
EBX = 7;
$int 0x40
$mov ebx, eax
$shr eax, 16
$and ebx,0x0000FFFF
//hor = EAX;
vert = EBX;
}
struct proc_info{
dword use_cpu;
word pos_in_stack,num_slot,rezerv1;
char name[11];
char rezerv2;
dword adress,use_memory,ID,left,top,width,height;
word status_slot,rezerv3;
dword work_left,work_top,work_width,work_height;
char status_window;
void GetInfo(dword ECX);
#define SelfInfo -1
};
void proc_info::GetInfo(dword ECX)
{
EAX = 9;
EBX = #use_cpu;
$int 0x40
}
struct system_colors{
dword frame,grab,grab_button,grab_button_text,grab_text,work,work_button,work_button_text,work_text,work_graph;
void get();
};
void system_colors::get()
{
EAX = 48;
EBX = 3;
ECX = #frame;
EDX = 40;
$int 0x40
}
//------------------------------------------------------------------------------
inline fastcall dword WaitEvent(){
EAX = 10;
$int 0x40
}
inline fastcall dword WaitEventTimeout(dword EBX){
EAX = 23;
$int 0x40
}
inline fastcall SetEventMask(dword EBX)
{
EAX = 40;
$int 0x40
}
inline fastcall ScancodesGeting(){
$mov eax,66;
$mov ebx,1;
$mov ecx,1; //᪠­ª®¤ë
$int 0x40
}
inline fastcall word GetKey(){
EAX = 2; // just read this key from buffer
$int 0x40
EAX = EAX >> 8;
}
inline fastcall word GetButtonID(){
EAX = 17;
$int 0x40
EAX = EAX >> 8;
}
inline fastcall ExitProcess(){
EAX = -1; // close this program
$int 0x40
}
inline fastcall Pause(dword EBX)
{ //<2F> ã§ , ¢ á®âëå ¤®«ïå ᥪ㭤ë EBX = value
$mov eax, 5
$int 0x40
}
//------------------------------------------------------------------------------
inline fastcall void DrawTitle(dword ECX)
{
EAX = 71;
EBX = 1;
$int 0x40;
}
inline fastcall dword GetSkinWidth()
{
EAX = 48;
EBX = 4;
$int 0x40
}
inline fastcall void ChangeSkin(ECX){
EAX = 48;
EBX = 8;
$int 0x40
}
inline fastcall dword GetScreenWidth()
{
EAX = 14;
EBX = 4;
$int 0x40
$shr eax, 16
$and eax,0x0000FFFF
}
inline fastcall MoveSize(dword EBX,ECX,EDX,ESI)
{
EAX = 67;
$int 0x40
}
inline fastcall dword LoadLibrary(dword ECX)
{
$mov eax, 68
$mov ebx, 19
$int 0x40
}
//------------------------------------------------------------------------------
inline fastcall dword strlen(dword EDI){
EAX=0;
ECX=-1;
$REPNE $SCASB
EAX-=2+ECX;
}
inline fastcall copystr(dword ESI,EDI)
{
$cld
l1:
$lodsb
$stosb
$test al,al
$jnz l1
}
byte fastcall TestBit(EAX, CL)
{
$shr eax,cl
$and eax,1
}
char buffer[11]="";
inline fastcall dword IntToStr(dword ESI)
{
$mov edi, #buffer
$mov ecx, 10
$test esi, esi
$jns f1
$mov al, '-'
$stosb
$neg esi
f1:
$mov eax, esi
$push -'0'
f2:
$xor edx, edx
$div ecx
$push edx
$test eax, eax
$jnz f2
f3:
$pop eax
$add al, '0'
$stosb
$jnz f3
$mov eax, #buffer
$ret
}
inline fastcall dword StrToInt()
{
ESI=EDI=EAX;
IF(DSBYTE[ESI]=='-')ESI++;
EAX=0;
BH=AL;
do{
BL=DSBYTE[ESI]-'0';
EAX=EAX*10+EBX;
ESI++;
}while(DSBYTE[ESI]>0);
IF(DSBYTE[EDI]=='-') -EAX;
}
/*int strcmp(char* string1, char* string2)
{
loop ()
{
IF (*string1<*string2) RETURN -1;
IF (*string1>*string2) RETURN 1;
IF (*string1=='\0') RETURN 0;
string1++;
string2++;
}
}*/
inline fastcall int strcmp(ESI, EDI)
{
loop()
{
IF (DSBYTE[ESI]<DSBYTE[EDI]) RETURN -1;
IF (DSBYTE[ESI]>DSBYTE[EDI]) RETURN 1;
IF (DSBYTE[ESI]=='\0') RETURN 0;
ESI++;
EDI++;
}
}
inline fastcall unsigned int find_symbol(ESI,BL)
{
int jj=0, last=-1;
do{
jj++;
$lodsb
IF(AL==BL) last=jj;
} while(AL!=0);
return last;
}
dword StrToCol(char* htmlcolor)
{
dword j=1, color=0; char ch=0x00;
IF (ESBYTE[htmlcolor]<>'#') RETURN;
FOR (;j<7;j++)
{
ch=ESBYTE[htmlcolor+j];
IF ((ch>='0') && (ch<='9')) ch -= '0';
IF ((ch>='A') && (ch<='F')) ch -= 'A'-10;
IF ((ch>='a') && (ch<='f')) ch -= 'a'-10;
color = color*0x10 + ch;
}
EAX=color;
}
inline fastcall dword upcase(dword ESI)
{
do{
AL=DSBYTE[ESI];
IF(AL>='a')IF(AL<='z')DSBYTE[ESI]=AL&0x5f;
ESI++;
}while(AL!=0);
}
/*inline fastcall void lowcase(ESI)
{
do{
$LODSB
IF(AL>='A')&&(AL<='Z'){
AL+=0x20;
DSBYTE[ESI-1]=AL;
CONTINUE;
}
}while(AL!=0);
}*/
inline fastcall lowcase(ESI)
{
do{
$LODSB
IF(AL>='A')&&(AL<='Z'){
AL+=0x20;
DSBYTE[ESI-1]=AL;
CONTINUE;
}
}while(AL!=0);
}
inline fastcall wintodos (dword ESI)
{
while (BL=ESBYTE[ESI])
{
IF (BL>=192)
{
IF (BL>=240) ESBYTE[ESI] = BL - 16;
ELSE ESBYTE[ESI] = BL - 64;
}
ELSE
{
IF (BL==178) ESBYTE[ESI] = 73; //I
IF (BL==179) ESBYTE[ESI] = 105; //i
IF (BL==175) ESBYTE[ESI] = 244; //J
IF (BL==191) ESBYTE[ESI] = 245; //j
IF (BL==170) ESBYTE[ESI] = 242; //E
IF (BL==186) ESBYTE[ESI] = 243; //e
IF (BL==168) ESBYTE[ESI] = 240; //ð
IF (BL==184) ESBYTE[ESI] = 'e'; //e
IF ((BL==147) || (BL==148) || (BL==171) || (BL==187)) ESBYTE[ESI] = 34;
IF ((BL==150) || (BL==151)) ESBYTE[ESI] = 45;
}
ESI++;
}
}
dword Hex2Symb(char* htmlcolor)
{
dword j=0, symbol=0;
char ch=0x00;
FOR (;j<2;j++)
{
ch=ESBYTE[htmlcolor+j];
IF (ch==0x0d) || (ch=='\9') return '';
IF ((ch>='0') && (ch<='9')) ch -= '0';
IF ((ch>='A') && (ch<='F')) ch -= 'A'-10;
IF ((ch>='a') && (ch<='f')) ch -= 'a'-10;
symbol = symbol*0x10 + ch;
}
wintodos(#symbol);
AL=symbol;
}
byte mas[66] = "椥ä£å¨©ª«¬­®¯ïàáâ㦢ìë§èíéçꞀ<C5BE>„…”ƒ•ˆ‰ŠŒ<E280B9>Ž<EFBFBD>Ÿ<EFBFBD>“†œ˜<E280A1>™—š";
inline fastcall void koitodos(dword EDI)
{
WHILE (BL=ESBYTE[EDI])
{
IF (BL >= 0xC0)
{
BL -= 0xC0;
ESBYTE[EDI] = mas[BL];
}
//IF (ESBYTE[EDI]=='\244') ESBYTE[EDI]='i';
EDI++;
}
}
//Asper
//uncomplete
inline fastcall int utf8rutodos(dword ESI) //-
{
EDI=ESI;
while (BL=ESBYTE[ESI])
{
IF (BL == 0xD0) || (BL == 0xD1) EDI--;
else IF (BL == 0x81) && (ESBYTE[ESI-1]==0xD0) ESBYTE[EDI] = 0xF0; //è
else IF (BL == 0x91) && (ESBYTE[ESI-1]==0xD1) ESBYTE[EDI] = 0xF1; //¬
else IF (BL == 0xE2) && (ESBYTE[ESI+1]==0x80) && (ESBYTE[ESI+2]==0x94) //long defis
{
ESBYTE[EDI] = '-';
ESI+=2;
}
else IF (BL == 0xE2) && (ESBYTE[ESI+1]==0x80) && (ESBYTE[ESI+2]==0xA2) //central point
{
ESBYTE[EDI] = '*';
ESI+=2;
}
else IF (BL == 0xC2) && (ESBYTE[ESI+1]==0xA9) // (c)
{
ESBYTE[EDI] = '(';
ESBYTE[EDI+1] = 'c';
ESBYTE[EDI+2] = ')';
EDI+=2;
ESI++;
}
else IF (BL == 0xC2) && ((ESBYTE[ESI+1]==0xAB) || (ESBYTE[ESI+1]==0xBB)) // "
{
ESBYTE[EDI] = '\"';
ESI++;
}
else IF (BL == 0xC2) && (ESBYTE[ESI+1]==0xB7) // _
{
ESBYTE[EDI] = '_';
ESI++;
}
else IF (BL >= 0x90) && (BL <= 0xAF)
{
BL -= 0x10;
ESBYTE[EDI] = BL;
}
else IF (BL >= 0x80) && (BL <= 0x8F)
{
BL += 0x60;
ESBYTE[EDI] = BL;
}
else IF (BL >= 0xB0) && (BL <= 0xBF)
{
BL -= 0x10;
ESBYTE[EDI] = BL;
}
else ESBYTE[EDI] = BL;
ESI++;
EDI++;
}
WHILE (EDI<ESI)
{
ESBYTE[EDI] = ' ';
EDI++;
}
}
//------------------------------------------------------------------------------
byte WindowRePaint=0;
inline fastcall void WindowRedrawStatus(dword EBX)
{
EAX = 12; // function 12:tell os about windowdraw
$int 0x40
IF (EBX==1) WindowRePaint=1; ELSE WindowRePaint=0;
}
void DefineAndDrawWindow(dword x,y,sizeX,sizeY,byte mainAreaType,dword mainAreaColour,byte headerType,dword headerColour,EDI)
{
EBX = x << 16 + sizeX;
ECX = y << 16 + sizeY;
EDX = mainAreaType << 24 | mainAreaColour;
ESI = headerType << 24 | headerColour;
$xor eax,eax
$int 0x40
}
inline fastcall dword CreateThread(dword ECX,EDX)
{
EAX = 51;
EBX = 1;
$int 0x40
}
void WriteText(dword x,y,byte fontType, dword color, EDX, ESI)
{
EAX = 4;
EBX = x<<16+y;
ECX = fontType<<24+color;
$int 0x40;
}
void PutImage(dword EBX,w,h,x,y)
{
EAX = 7;
ECX = w<<16+h;
EDX = x<<16+y;
$int 0x40
}
void PutPaletteImage(dword EBX,w,h,x,y,ESI,EDI)
{
EAX = 65;
ECX = w<<16+h;
EDX = x<<16+y;
EBP = 0;
$int 0x40
}
inline fastcall void PutPixel(dword EBX,ECX,EDX){
EAX=1;
$int 0x40
}
void DrawBar(dword x,y,w,h,EDX)
{
EAX = 13;
EBX = x<<16+w;
ECX = y<<16+h;
$int 0x40
}
void DefineButton(dword x,y,w,h,EDX,ESI)
{
EAX = 8;
EBX = x<<16+w;
ECX = y<<16+h;
$int 0x40
}
inline fastcall void DeleteButton(dword EDX)
{
EAX = 8;
EDX += BT_DEL;
$int 0x40;
}
void DrawRegion(dword x,y,width,height,color1)
{
DrawBar(x,y,width,1,color1); //¯®«®á  £®à ᢥàåã
DrawBar(x,y+height,width,1,color1); //¯®«®á  £®à á­¨§ã
DrawBar(x,y,1,height,color1); //¯®«®á  ¢¥àåã á«¥¢ 
DrawBar(x+width,y,1,height+1,color1); //¯®«®á  ¢¥àåã á¯à ¢ 
}
void DrawRegion_3D(dword x,y,width,height,color1,color2)
{
DrawBar(x,y,width+1,1,color1); //¯®«®á  £®à ᢥàåã
DrawBar(x,y+1,1,height-1,color1); //¯®«®á  á«¥¢ 
DrawBar(x+width,y+1,1,height,color2); //¯®«®á  á¯à ¢ 
DrawBar(x,y+height,width,1,color2); //¯®«®á  £®à á­¨§ã
}
void DrawFlatButton(dword x,y,width,height,id,color,text)
{
DrawRegion_3D(x,y,width,height,0x94AECE,0x94AECE);
DrawRegion_3D(x+1,y+1,width-2,height-2,0xFFFFFF,0xC7C7C7);
DrawBar(x+2,y+2,width-3,height-3,color); //§ «¨¢ª 
IF (id<>0) DefineButton(x,y,width,height,id+BT_HIDE,0xEFEBEF); //ª­®¯ª 
WriteText(-strlen(text)*6+width/2+x+1,height/2-3+y,0x80,0,text,0);
}
void DrawCircle(int x, y, r)
{
int i; float px=0, py=r, ii = r * 3.1415926 * 2;
for (i = 0; i < ii; i++)
{
PutPixel(px + x, y - py, 0);
px = py / r + px;
py = -px / r + py;
//Pause(1);
}
}
//------------------------------------------------------------------------------
inline fastcall dword WriteDebug(dword EDX)
{
$push ebx
$push ecx
$mov eax, 63
$mov ebx, 1
next_char:
$mov ecx, DSDWORD[edx]
$or cl, cl
$jz done
$int 0x40
$inc edx
$jmp next_char
done:
$mov cl, 13
$int 0x40
$mov cl, 10
$int 0x40
$pop ecx
$pop ebx
}

View File

@ -0,0 +1,104 @@
//Asper
//library
dword libimg = #alibimg;
char alibimg[21] = "/sys/lib/libimg.obj\0"; //"libimg.obj\0";
dword libimg_init = #alibimg_init;
dword img_is_img = #aimg_is_img;
dword img_to_rgb2 = #aimg_to_rgb2;
dword img_decode = #aimg_decode;
dword img_destroy = #aimg_destroy;
dword img_draw = #aimg_draw;
//dword img_flip = #aimg_flip;
//dword img_rotate = #aimg_rotate;
dword am1__ = 0x0;
dword bm1__ = 0x0;
//import libimg , \
char alibimg_init[9] = "lib_init\0";
char aimg_is_img[11] = "img_is_img\0";
char aimg_to_rgb2[12] = "img_to_rgb2\0";
char aimg_decode[11] = "img_decode\0";
char aimg_destroy[12] = "img_destroy\0";
char aimg_draw[9] = "img_draw\0";
//char aimg_flip[9] = "img_flip\0";
//char aimg_rotate[11] = "img_rotate\0 ";
dword load_image(dword filename)
{
//align 4
dword img_data=0;
dword img_data_len=0;
dword fh=0;
dword image=0;
byte tmp_buf[40];
$and img_data, 0
//$mov eax, filename
//$push eax
//invoke file.open, eax, O_READ
file_open stdcall (filename, O_READ);
$or eax, eax
$jnz loc05
$stc
return 0;
@loc05:
$mov fh, eax
//invoke file.size
file_size stdcall (filename);
$mov img_data_len, ebx
//stdcall mem.Alloc, ebx
mem_Alloc(EBX);
$test eax, eax
$jz error_close
$mov img_data, eax
//invoke file.read, [fh], eax, [img_data_len]
file_read stdcall (fh, EAX, img_data_len);
$cmp eax, -1
$jz error_close
$cmp eax, img_data_len
$jnz error_close
//invoke file.close, [fh]
file_close stdcall (fh);
$inc eax
$jz error_
//; img.decode checks for img.is_img
//; //invoke img.is_img, [img_data], [img_data_len]
//; $or eax, eax
//; $jz exit
//invoke img.decode, [img_data], [img_data_len], 0
EAX=img_data;
img_decode stdcall (EAX, img_data_len,0);
$or eax, eax
$jz error_
$cmp image, 0
$pushf
$mov image, eax
//call init_frame
$popf
//call update_image_sizes
mem_Free(img_data);//free_img_data(img_data);
$clc
return image;
@error_free:
//invoke img.destroy, [image]
img_destroy stdcall (image);
$jmp error_
@error_pop:
$pop eax
$jmp error_
@error_close:
//invoke file.close, [fh]
file_close stdcall (fh);
@error_:
mem_Free(img_data);
$stc
return 0;
}

View File

@ -0,0 +1,36 @@
//Asper
//library
dword libio = #alibio;
char alibio[21] = "/sys/lib/libio.obj\0"; //"libio.obj\0";
dword libio_init = #alibio_init;
dword file_size = #afile_size;
dword file_open = #afile_open;
dword file_read = #afile_read;
dword file_close = #afile_close;
dword am2__ = 0x0;
dword bm2__ = 0x0;
//import libio , \
char alibio_init[9] = "lib_init\0";
char afile_size[11] = "file_size\0";
char afile_open[12] = "file_open\0";
char afile_read[11] = "file_read\0";
char afile_close[12] = "file_close\0";
//align 4
//dword fh=0;
#define O_BINARY 0
#define O_READ 1
#define O_WRITE 2
#define O_CREATE 4
#define O_SHARE 8
#define O_TEXT 16
#define SEEK_SET 0
#define SEEK_CUR 1
#define SEEK_END 2

View File

@ -0,0 +1,64 @@
//mem.Init
dword mem_Init()
{
$push ebx
$mov eax, 68
$mov ebx, 11
$int 0x40
$pop ebx
return EAX;
}
//mem.Alloc
dword mem_Alloc(dword size)
{
$push ebx
$push ecx
$mov eax, 68
$mov ebx, 12
$mov ecx, size
$int 0x40
$pop ecx
$pop ebx
return EAX;
}
//mem.ReAlloc
stdcall dword mem_ReAlloc(dword mptr, size)
{
//$push ebx ecx edx
$push ebx
$push ecx
$push edx
$mov eax, 68
$mov ebx, 20
$mov ecx, size
$mov edx, mptr
$int 0x40
$pop edx
$pop ecx
$pop ebx
//$pop edx ecx ebx
return EAX;
}
//mem.Free
void mem_Free(dword mptr)
{
$push eax
$push ebx
$push ecx
$mov eax, 68
$mov ebx, 13
$mov ecx, mptr
$test ecx, ecx
$jz end0
$int 0x40
@end0:
$pop ecx
$pop ebx
$pop eax
}

View File

@ -0,0 +1,66 @@
#code32 TRUE
inline fastcall dword malloc(dword ECX){
dword size, heap;
#speed
size = ECX;
EAX = 68;
EBX = 11;
$int 0x40;
heap = EAX;
IF (size<=heap)
{
EAX = 68;
EBX = 12;
ECX = size;
$int 0x40;
}
ELSE EAX=-1;
#codesize
}
inline fastcall dword free(dword ECX){
#speed
EAX = 68;
EBX = 13;
$int 0x40;
#codesize
}
inline fastcall dword realloc(dword ECX, EDX){
#speed
EAX = 68;
EBX = 20;
$int 0x40;
#codesize
}
inline fastcall memmov( EDI, ESI, ECX)
{
asm {
MOV EAX, ECX
CMP EDI, ESI
JG L1
JE L2
SAR ECX, 2
JS L2
REP MOVSD
MOV ECX, EAX
AND ECX, 3
REP MOVSB
JMP SHORT L2
L1: LEA ESI, DSDWORD[ ESI+ECX-4]
LEA EDI, DSDWORD[ EDI+ECX-4]
SAR ECX, 2
JS L2
STD
REP MOVSD
MOV ECX, EAX
AND ECX, 3
ADD ESI, 3
ADD EDI, 3
REP MOVSB
CLD
L2:
}
}