CMM: decrease the size of apps, thanks lev for hints

+ some bugfixes

git-svn-id: svn://kolibrios.org@7984 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2020-05-26 00:17:12 +00:00
parent 65c332bd36
commit ddd90c73c8
18 changed files with 161 additions and 596 deletions

View File

@ -79,21 +79,21 @@ void main()
CheckKosMounted(); CheckKosMounted();
o_dialog.type = 2; o_dialog.type = 2;
#define NO_DLL_INIT
load_dll(Proc_lib, #OpenDialog_init,0); load_dll(Proc_lib, #OpenDialog_init,0);
OpenDialog_init stdcall (#o_dialog); OpenDialog_init stdcall (#o_dialog);
active_button_id = BTN_MANUAL_SEARCH; active_button_id = BTN_MANUAL_SEARCH;
loop() switch(WaitEvent()) loop() switch(@WaitEvent())
{ {
case evButton: case evButton:
EventButton(GetButtonID()); EventButton(GetButtonID());
break; break;
case evKey: case evKey:
GetKeys(); GetKeyScancode();
if (key_scancode == SCAN_CODE_ENTER) { if (AL == SCAN_CODE_ENTER) {
EventButton(active_button_id); EventButton(active_button_id);
} } else if (AL == SCAN_CODE_TAB) {
else if (key_scancode == SCAN_CODE_TAB) {
active_button_id = active_button_id-10^1 + 10; active_button_id = active_button_id-10^1 + 10;
DrawButtons(); DrawButtons();
} }
@ -107,11 +107,10 @@ void main()
void draw_window() void draw_window()
{ {
incn y; incn y;
y.n=0;
sc.get(); sc.get();
DefineAndDrawWindow(screen.width-570/2, 100, 570, 300+skin_height, 0x34, sc.work, WINDOW_TITLE_TEXT,0); DefineAndDrawWindow(screen.width-570/2, 100, 570, 300+skin_height, 0x34, sc.work, WINDOW_TITLE_TEXT,0);
GetProcessInfo(#Form, SelfInfo); GetProcessInfo(#Form, SelfInfo);
WriteTextB(CONX+2,y.inc(20)+2,0x81,MixColors(sc.work, 0xB92234,220),CONTENT_HEADER_TEXT); WriteTextB(CONX+2,y.set(20)+2,0x81,MixColors(sc.work, 0xB92234,220),CONTENT_HEADER_TEXT);
WriteTextB(CONX,y.n,0x81,0xB92234,CONTENT_HEADER_TEXT); WriteTextB(CONX,y.n,0x81,0xB92234,CONTENT_HEADER_TEXT);
PutPaletteImage(#scr,144,171,Form.cwidth-180,y.n,8,#scr_pal); PutPaletteImage(#scr,144,171,Form.cwidth-180,y.n,8,#scr_pal);

View File

@ -95,18 +95,18 @@ checkbox tbClnDeskButton;
void main() void main()
{ {
dword id, key; dword id;
load_dll(libini, #lib_init,1); load_dll(libini, #lib_init,1);
load_dll(boxlib, #box_lib_init,0); load_dll(boxlib, #box_lib_init,0);
LoadCfg(); LoadCfg();
loop() switch(WaitEvent()) loop() switch(@WaitEvent())
{ {
case evButton: case evButton:
id=GetButtonID(); id = @GetButtonID();
if (1==id) ExitProcess(); if (1==id) @ExitProcess();
if (taskbar_on.checked) EventTaskbarProcessButton(id); if (taskbar_on.checked) EventTaskbarProcessButton(id);
if (docky_on.checked) EventDockyProcessButton(id); if (docky_on.checked) EventDockyProcessButton(id);
@ -114,35 +114,17 @@ void main()
if (taskbar_on.click(id)) { if (taskbar_on.click(id)) {
IF (taskbar_on.checked == true) RunProgram("/sys/@taskbar", 0); IF (taskbar_on.checked == true) RunProgram("/sys/@taskbar", 0);
ELSE KillProcessByName("@TASKBAR", SINGLE); ELSE KillProcessByName("@TASKBAR", SINGLE);
EAX = taskbar_on.checked ^ 1;
tbSoftenUp.disabled = EAX;
tbSoftenDown.disabled = EAX;
tbMinLeftButton.disabled = EAX;
tbMinRightButton.disabled = EAX;
tbRunApplButton.disabled = EAX;
tbClnDeskButton.disabled = EAX;
tbClock.disabled = EAX;
tbCpuUsage.disabled = EAX;
tbChangeLang.disabled = EAX;
tbMenuButton.disabled = EAX;
tbPanelHeight.disabled = EAX;
tbSoftenHeight.disabled = EAX;
tbButtonOffset.disabled = EAX;
tbButtonOffset.disabled = EAX;
DrawWindowContent(); DrawWindowContent();
} }
if (docky_on.click(id)) { if (docky_on.click(id)) {
IF (docky_on.checked == true) RunProgram("/sys/@docky", 0); IF (docky_on.checked == true) RunProgram("/sys/@docky", 0);
ELSE KillProcessByName("@DOCKY", SINGLE); ELSE KillProcessByName("@DOCKY", SINGLE);
dkFsize.disabled = docky_on.checked ^ 1;
dkAshow.disabled = docky_on.checked ^ 1;
DrawWindowContent(); DrawWindowContent();
} }
break; break;
case evKey: case evKey:
GetKeys(); if (@GetKeyScancode() == SCAN_CODE_ESC) ExitProcess();
if (key_scancode == SCAN_CODE_ESC) ExitProcess();
break; break;
case evReDraw: case evReDraw:
@ -159,6 +141,28 @@ void DrawPanelsImage(dword y, n)
_PutImage(22, y, PIMG_W, PIMG_H, n * PIMG_W * PIMG_H * 3 + #panels_img_data); _PutImage(22, y, PIMG_W, PIMG_H, n * PIMG_W * PIMG_H * 3 + #panels_img_data);
} }
void SetDisabledMode()
{
EAX = taskbar_on.checked ^ 1;
tbSoftenUp.disabled =
tbSoftenDown.disabled =
tbMinLeftButton.disabled =
tbMinRightButton.disabled =
tbRunApplButton.disabled =
tbClnDeskButton.disabled =
tbClock.disabled =
tbCpuUsage.disabled =
tbChangeLang.disabled =
tbMenuButton.disabled =
tbPanelHeight.disabled =
tbSoftenHeight.disabled =
tbButtonOffset.disabled =
tbButtonOffset.disabled = EAX;
//
dkFsize.disabled =
dkAshow.disabled = docky_on.checked ^ 1;
}
void DrawWindowContent() void DrawWindowContent()
{ {
#define PD 10 #define PD 10
@ -166,6 +170,8 @@ void DrawWindowContent()
word win_center_x = Form.cwidth / 2 + 20; word win_center_x = Form.cwidth / 2 + 20;
incn y; incn y;
SetDisabledMode();
frame_y = 15; frame_y = 15;
y.n = frame_y; y.n = frame_y;
DefineButton(22, y.inc(18), PIMG_W-1, PIMG_H-1, 100 + BT_HIDE, 0); DefineButton(22, y.inc(18), PIMG_W-1, PIMG_H-1, 100 + BT_HIDE, 0);

View File

@ -19,7 +19,7 @@
// // // //
//===================================================// //===================================================//
?define WINDOW_HEADER "Clipboard Viewer v1.03" ?define WINDOW_HEADER "Clipboard Viewer"
?define T_DELETE_LAST_SLOT "Delete last slot" ?define T_DELETE_LAST_SLOT "Delete last slot"
?define T_DELETE_ALL_SLOTS "Delete all slots" ?define T_DELETE_ALL_SLOTS "Delete all slots"
?define T_RESET_BUFFER_LOCK "Reset the lock buffer" ?define T_RESET_BUFFER_LOCK "Reset the lock buffer"
@ -50,19 +50,17 @@ proc_info Form;
void main() void main()
{ {
int id; int id;
SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); @SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
#define NO_DLL_INIT
load_dll(boxlib, #box_lib_init,0); load_dll(boxlib, #box_lib_init,0);
loop() loop() switch(@WaitEventTimeout(10))
{ {
WaitEventTimeout(10);
switch(EAX & 0xFF)
{
case evMouse: case evMouse:
SelectList_ProcessMouse(); SelectList_ProcessMouse();
break; break;
case evButton: case evButton:
id = GetButtonID(); @GetButtonID();
if (id==1) ExitProcess(); if (id==1) ExitProcess();
if (id==BT_DELETE_LAST_SLOT) EventDeleteLastSlot(); if (id==BT_DELETE_LAST_SLOT) EventDeleteLastSlot();
if (id==BT_DELETE_ALL_SLOTS) EventDeleteAllSlots(); if (id==BT_DELETE_ALL_SLOTS) EventDeleteAllSlots();
@ -72,8 +70,9 @@ void main()
break; break;
case evKey: case evKey:
GetKeys(); if (select_list.ProcessKey(@GetKeyScancode())) {
if (select_list.ProcessKey(key_scancode)) ClipViewSelectListDraw(); ClipViewSelectListDraw();
}
break; break;
case evReDraw: case evReDraw:
@ -81,8 +80,8 @@ void main()
DefineAndDrawWindow(screen.width-700/2,80,700,454+skin_height,0x73,0xE4DFE1,WINDOW_HEADER,0); DefineAndDrawWindow(screen.width-700/2,80,700,454+skin_height,0x73,0xE4DFE1,WINDOW_HEADER,0);
GetProcessInfo(#Form, SelfInfo); GetProcessInfo(#Form, SelfInfo);
IF (Form.status_window>=2) break; IF (Form.status_window>=2) break;
if (Form.height < 200) { MoveSize(OLD,OLD,OLD,200); break; } IF (Form.height < 200) { MoveSize(OLD,OLD,OLD,200); break; }
if (Form.width < 570) { MoveSize(OLD,OLD,570,OLD); break; } IF (Form.width < 570) { MoveSize(OLD,OLD,570,OLD); break; }
SelectList_Init( SelectList_Init(
LIST_PADDING, LIST_PADDING,
LIST_PADDING+PANEL_TOP_H, LIST_PADDING+PANEL_TOP_H,
@ -96,7 +95,6 @@ void main()
default: default:
if (Clipboard__GetSlotCount() > select_list.count) ClipViewSelectListDraw(); if (Clipboard__GetSlotCount() > select_list.count) ClipViewSelectListDraw();
break; break;
}
} }
} }
@ -109,8 +107,8 @@ void DrawWindowContent()
button_x += DrawStandartCaptButton(button_x, select_list.y + select_list.h + 8, BT_DELETE_LAST_SLOT, T_DELETE_LAST_SLOT); button_x += DrawStandartCaptButton(button_x, select_list.y + select_list.h + 8, BT_DELETE_LAST_SLOT, T_DELETE_LAST_SLOT);
button_x += DrawStandartCaptButton(button_x, select_list.y + select_list.h + 8, BT_DELETE_ALL_SLOTS, T_DELETE_ALL_SLOTS); button_x += DrawStandartCaptButton(button_x, select_list.y + select_list.h + 8, BT_DELETE_ALL_SLOTS, T_DELETE_ALL_SLOTS);
button_x += DrawStandartCaptButton(button_x, select_list.y + select_list.h + 8, BT_UNLOCK, T_RESET_BUFFER_LOCK); button_x += DrawStandartCaptButton(button_x, select_list.y + select_list.h + 8, BT_UNLOCK, T_RESET_BUFFER_LOCK);
WriteText(select_list.x+12, select_list.y - 23, select_list.font_type, sc.work_text, T_COLUMNS_TITLE); WriteText(select_list.x+12, select_list.y - 23, 0x90, sc.work_text, T_COLUMNS_TITLE);
WriteText(select_list.x+select_list.w - 88-14, select_list.y - 23, select_list.font_type, sc.work_text, T_COLUMN_VIEW); WriteText(select_list.x+select_list.w - 88-14, select_list.y - 23, 0x90, sc.work_text, T_COLUMN_VIEW);
ClipViewSelectListDraw(); ClipViewSelectListDraw();
SelectList_DrawBorder(); SelectList_DrawBorder();
} }
@ -129,10 +127,6 @@ void SelectList_DrawLine(dword i)
{ {
int yyy, length, slot_data_type_number; int yyy, length, slot_data_type_number;
dword line_text[2048]; dword line_text[2048];
dword size_kb;
dword text_color = 0;
dword bgcol = 0xFFFfff;
if (i%2) bgcol = 0xF1F1F1;
slot_data = Clipboard__GetSlotData(select_list.first + i); slot_data = Clipboard__GetSlotData(select_list.first + i);
cdata.size = ESDWORD[slot_data]; cdata.size = ESDWORD[slot_data];
@ -144,30 +138,27 @@ void SelectList_DrawLine(dword i)
cdata.content = slot_data + cdata.content_offset; cdata.content = slot_data + cdata.content_offset;
yyy = i*select_list.item_h+select_list.y; yyy = i*select_list.item_h+select_list.y;
DrawBar(select_list.x+1, yyy, select_list.w-1, select_list.item_h, bgcol); DrawBar(select_list.x+1, yyy, select_list.w-1, select_list.item_h, -i%2 * 0x0E0E0E + 0xF1F1f1);
WriteText(select_list.x+12, yyy+select_list.text_y, select_list.font_type, text_color, itoa(select_list.first + i)); WriteText(select_list.x+12, yyy+select_list.text_y, 0x90, 0x000000, itoa(select_list.first + i));
size_kb = ConvertSizeToKb(cdata.size); EDX = ConvertSizeToKb(cdata.size);
WriteText(select_list.x+44, yyy+select_list.text_y, select_list.font_type, text_color, size_kb); WriteText(select_list.x+44, yyy+select_list.text_y, 0x90, 0x000000, EDX);
slot_data_type_number = cdata.type; slot_data_type_number = cdata.type;
WriteText(select_list.x+140, yyy+select_list.text_y, select_list.font_type, text_color, data_type[slot_data_type_number]); WriteText(select_list.x+140, yyy+select_list.text_y, 0x90, 0x000000, data_type[slot_data_type_number]);
WriteText(select_list.x+select_list.w - 88, yyy+select_list.text_y, select_list.font_type, 0x006597, T_VIEW_OPTIONS); WriteText(select_list.x+select_list.w - 88, yyy+select_list.text_y, 0x90, 0x006597, T_VIEW_OPTIONS);
DefineButton(select_list.x+select_list.w - 95, yyy, 50, select_list.item_h, 100+i+BT_HIDE, NULL); DefineButton(select_list.x+select_list.w - 95, yyy, 50, select_list.item_h, 100+i+BT_HIDE, NULL);
DefineButton(select_list.x+select_list.w - 95 + 51, yyy, 40, select_list.item_h, 300+i+BT_HIDE, NULL); DefineButton(select_list.x+select_list.w - 95 + 51, yyy, 40, select_list.item_h, 300+i+BT_HIDE, NULL);
length = select_list.w-236 - 95 / select_list.font_w - 2; length = select_list.w-236 - 95 / select_list.font_w - 2;
if (cdata.size - cdata.content_offset < length) length = cdata.size - cdata.content_offset; if (cdata.size - cdata.content_offset < length) length = cdata.size - cdata.content_offset;
memmov(#line_text, cdata.content, length); strlcpy(#line_text, cdata.content, length);
replace_char(#line_text, 0, 31, length); // 31 is a dot replace_char(#line_text, 0, 31, length); // 31 is a dot
WriteText(select_list.x+236, yyy+select_list.text_y, select_list.font_type, text_color, #line_text); WriteText(select_list.x+236, yyy+select_list.text_y, 0x90, 0x000000, #line_text);
} }
int SaveSlotContents(dword size, off) { int SaveSlotContents(dword size, off) {
EAX = CreateFile(size, off, DEFAULT_SAVE_PATH); if (! CreateFile(size, off, DEFAULT_SAVE_PATH)) {
if (!EAX)
{
return true; return true;
} } else {
else {
notify("'Can not create /tmp0/1/clipview.tmp\nPreview function is not available.' -E"); notify("'Can not create /tmp0/1/clipview.tmp\nPreview function is not available.' -E");
return false; return false;
} }

View File

@ -35,11 +35,10 @@ enum {
BID_GO BID_GO
}; };
#ifndef COPYING #define T_FIRST "First file:"
#define T_FIRST "First file:" #define T_SECOND "Second file:"
#define T_SECOND "Second file:" #define T_GO " Compare "
#define T_GO " Compare "
#endif
#define READY 0 #define READY 0
int state=READY; int state=READY;
@ -52,13 +51,13 @@ int state=READY;
void gui() void gui()
{ {
word btn; #define NO_DLL_INIT
load_dll(boxlib, #box_lib_init,0); load_dll(boxlib, #box_lib_init,0);
load_dll(Proc_lib, #OpenDialog_init,0); load_dll(Proc_lib, #OpenDialog_init,0);
OpenDialog_init stdcall (#o_dialog); OpenDialog_init stdcall (#o_dialog);
SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); @SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
loop() switch(WaitEvent()) loop() switch(@WaitEvent())
{ {
case evMouse: case evMouse:
if (READY == state) { if (READY == state) {
@ -68,23 +67,22 @@ void gui()
break; break;
case evButton: case evButton:
btn = @GetButtonID(); @GetButtonID();
if (btn == BID_EXIT_PRC) ExitProcess(); if (EAX == BID_EXIT_PRC) ExitProcess();
if (btn == BID_SRC_OPEN) EventOpenDialogFirst(); if (EAX == BID_SRC_OPEN) EventOpenDialogFirst();
if (btn == BID_DST_OPEN) EventOpenDialogSecond(); if (EAX == BID_DST_OPEN) EventOpenDialogSecond();
if (btn == BID_GO) EventGo(); if (EAX == BID_GO) EventGo();
break; break;
case evKey: case evKey:
GetKeys(); @GetKey();
if (key_scancode == SCAN_CODE_ESC) ExitProcess();
if (key_scancode == SCAN_CODE_TAB) EventTabClick();
if (key_scancode == SCAN_CODE_ENTER) EventGo();
if (key_scancode == SCAN_CODE_INS) EventInsert();
EAX = key_editbox;
edit_box_key stdcall (#src_box); edit_box_key stdcall (#src_box);
EAX = key_editbox;
edit_box_key stdcall (#dst_box); edit_box_key stdcall (#dst_box);
EAX >>= 16;
if (AL == SCAN_CODE_ESC) ExitProcess();
if (AL == SCAN_CODE_TAB) EventTabClick();
if (AL == SCAN_CODE_ENTER) EventGo();
if (AL == SCAN_CODE_INS) EventInsert();
break; break;
case evReDraw: case evReDraw:
@ -103,15 +101,6 @@ void draw_window()
DrawFileBox(#dst_box, T_SECOND, BID_DST_OPEN); DrawFileBox(#dst_box, T_SECOND, BID_DST_OPEN);
DrawStandartCaptButton(dst_box.left - 2, dst_box.top + 40, BID_GO, T_GO); DrawStandartCaptButton(dst_box.left - 2, dst_box.top + 40, BID_GO, T_GO);
} }
#ifdef COPYING
if (COPYING==state) {
pr.frame_color = sc.work_graph;
DrawRectangle3D(PR_LEFT-1, PR_TOP-1, PR_W+1, PR_H+1, sc.work_dark,
sc.work_light);
DrawProgress();
DrawStandartCaptButton(-19*8+WIN_W/2-15, dst_box.top + 35, B_STOP, " Stop ");
}
#endif
} }
void UpdateEditBoxes(dword f1, f2) void UpdateEditBoxes(dword f1, f2)
@ -128,14 +117,12 @@ void UpdateEditBoxes(dword f1, f2)
// // // //
//===================================================// //===================================================//
#ifndef COPYING
void EventGo() void EventGo()
{ {
char run_param[4096]; char run_param[4096];
wsprintf(#run_param, "\"%s\" \"%s\"", #src_path, #dst_path); wsprintf(#run_param, "\"%s\" \"%s\"", #src_path, #dst_path);
RunProgram(I_Path, #run_param); RunProgram(I_Path, #run_param);
} }
#endif
void EventTabClick() void EventTabClick()
{ {
@ -158,9 +145,6 @@ void EventOpenDialogFirst()
void EventOpenDialogSecond() void EventOpenDialogSecond()
{ {
#ifdef COPYING
o_dialog.type = 1; //0-file, 1-save, 2-select folder
#endif
OpenDialog_start stdcall (#o_dialog); OpenDialog_start stdcall (#o_dialog);
if (o_dialog.status) { if (o_dialog.status) {
strcpy(#dst_path, #openfile_path); strcpy(#dst_path, #openfile_path);

View File

@ -1,4 +1,4 @@
#define MEMSIZE 0x2EE80 #define MEMSIZE 1024*30
#include "../lib/kfont.h" #include "../lib/kfont.h"
#include "../lib/gui.h" #include "../lib/gui.h"
@ -7,7 +7,6 @@
#define WIN_W 490 #define WIN_W 490
#define WIN_H 315 #define WIN_H 315
#define BASE_TAB_BUTTON_ID 97 #define BASE_TAB_BUTTON_ID 97
proc_info Form;
_tabs tabs = { WIN_W-130, 0, NULL, BASE_TAB_BUTTON_ID }; _tabs tabs = { WIN_W-130, 0, NULL, BASE_TAB_BUTTON_ID };
@ -18,8 +17,10 @@ checkbox colored = { "Colored", true };
void main() void main()
{ {
proc_info Form;
char title[1024];
int btn; int btn;
char title[4196];
if (!param) strcpy(#param, DEFAULT_FONT); if (!param) strcpy(#param, DEFAULT_FONT);
kfont.init(#param); kfont.init(#param);
strcpy(#title, "Font preview: "); strcpy(#title, "Font preview: ");
@ -28,16 +29,17 @@ void main()
tabs.add("Phrase", #DrawPreviewPhrase); tabs.add("Phrase", #DrawPreviewPhrase);
tabs.add("Chars", #DrawPreviewChars); tabs.add("Chars", #DrawPreviewChars);
loop() switch(WaitEvent()) loop() switch(@WaitEvent())
{ {
case evButton: case evButton:
btn = GetButtonID(); btn = @GetButtonID();
if (btn==1) ExitProcess(); if (btn==1) @ExitProcess();
bold.click(btn); bold.click(btn);
smooth.click(btn); smooth.click(btn);
colored.click(btn); colored.click(btn);
tabs.click(btn); tabs.click(btn);
goto _DRAW_WINDOW_CONTENT; GOTO _DRAW_WINDOW_CONTENT;
case evReDraw: case evReDraw:
sc.get(); sc.get();
DefineAndDrawWindow(215,100,WIN_W+9,WIN_H+skin_height+5,0x74,0xFFFFFF,#title,0); DefineAndDrawWindow(215,100,WIN_W+9,WIN_H+skin_height+5,0x74,0xFFFFFF,#title,0);
@ -48,27 +50,24 @@ void main()
kfont.bold = bold.checked; kfont.bold = bold.checked;
kfont.smooth = smooth.checked; kfont.smooth = smooth.checked;
DrawBar(0, 0, Form.cwidth, PANELH-1, sc.work); DrawBar(0, 0, WIN_W, PANELH-1, sc.work);
DrawBar(0, PANELH-1,Form.cwidth,1,sc.work_graph); DrawBar(0, PANELH-1,WIN_W,1,sc.work_graph);
bold.draw(10, 8);
smooth.draw(83,8);
colored.draw(170,8);
tabs.draw(); if (!kfont.font) {
tabs.draw_active_tab();
if (!kfont.font)
{
DrawBar(preview.x, preview.y, preview.w, preview.h, 0xFFFfff); DrawBar(preview.x, preview.y, preview.w, preview.h, 0xFFFfff);
WriteText(10, 50, 0x82, 0xFF00FF, "Font is not loaded."); WriteText(10, 50, 0x82, 0xFF00FF, "Font is not loaded.");
break; } else {
bold.draw(10, 8);
smooth.draw(83,8);
colored.draw(170,8);
tabs.draw();
tabs.draw_active_tab();
} }
} }
} }
dword pal[] = { 0x4E4153, 0x57417C, 0x89633B, 0x819156, 0x00CCCC, 0x2AD266, dword pal[] = { 0x4E4153, 0x57417C, 0x89633B, 0x819156, 0x00CCCC, 0x2AD266,
0xE000CC, 0x0498F9, 0xC3A9F5, 0xFFC200, 0xFF5836, 0xA086BA, 0xE000CC, 0x0498F9, 0xC3A9F5, 0xFFC200, 0xFF5836, 0xA086BA, 0 };
0,0,0,0,0 };
void DrawPreviewPhrase() void DrawPreviewPhrase()
{ {
@ -79,10 +78,10 @@ void DrawPreviewPhrase()
for (i=10, y=12; i<22; i++, y+=kfont.height+3;) //not flexible, need to calculate font count and max line length for (i=10, y=12; i<22; i++, y+=kfont.height+3;) //not flexible, need to calculate font count and max line length
{ {
if (colored.checked) c = pal[i-10]; else c=0; if (colored.checked) c = pal[i-10]; else c=0;
strcpy(#line, "<EFBFBD> §¬¥à èà¨äâ /forn size is "); strcpy(#line, "<EFBFBD> §¬¥à èà¨äâ /font size is ");
strcat(#line, itoa(i)); strcat(#line, itoa(i));
strcat(#line, " ¯¨ªá¥«¥©/px."); strcat(#line, " ¯¨ªá¥«¥©/px.");
kfont.WriteIntoBuffer(14,y,Form.cwidth,Form.cheight-PANELH, 0xFFFFFF, c, i, #line); kfont.WriteIntoBuffer(14,y,WIN_W,WIN_H-PANELH, 0xFFFFFF, c, i, #line);
} }
if (kfont.smooth) kfont.ApplySmooth(); if (kfont.smooth) kfont.ApplySmooth();
kfont.ShowBuffer(preview.x, preview.y); kfont.ShowBuffer(preview.x, preview.y);
@ -91,13 +90,12 @@ void DrawPreviewPhrase()
void DrawPreviewChars() void DrawPreviewChars()
{ {
dword i, x=20, y=0; dword i, x=20, y=0;
char line[2]; char line[2]=0;
line[1]=NULL;
kfont.raw_size = free(kfont.raw); kfont.raw_size = free(kfont.raw);
for (i=0; i<255; i++) //not flexible, need to calculate font count and max line length for (i=0; i<255; i++) //not flexible, need to calculate font count and max line length
{ {
line[0]=i; line[0]=i;
kfont.WriteIntoBuffer(x,y,Form.cwidth,Form.cheight-PANELH, 0xFFFFFF, 0, 16, #line); kfont.WriteIntoBuffer(x,y,WIN_W,WIN_H-PANELH, 0xFFFFFF, 0, 16, #line);
x+= kfont.height+2; x+= kfont.height+2;
if (x>=preview.w-30) { if (x>=preview.w-30) {
x=20; x=20;

View File

@ -234,7 +234,9 @@ asm {
$jmp import_loop01 $jmp import_loop01
@import_done01: @import_done01:
#ifndef NO_DLL_INIT
IF (need_init) dll_Init (DSDWORD[EDX+4]); IF (need_init) dll_Init (DSDWORD[EDX+4]);
#endif
return 0; return 0;
@exit01: @exit01:
return -1; return -1;

View File

@ -141,12 +141,17 @@ inline fastcall byte GetKeyScancode()
return AL; return AL;
} }
inline fastcall GetKey()
{
$mov eax,2
$int 0x40
}
// ECX is a mode: 1 - scancodes, 0 - ascii // ECX is a mode: 1 - scancodes, 0 - ascii
inline fastcall SetKeyboardMode(ECX) inline fastcall SetKeyboardMode(ECX)
{ {
$mov eax,66 $mov eax,66
$mov ebx,1 $mov ebx,1
//$mov ecx,?
$int 0x40 $int 0x40
} }

View File

@ -29,9 +29,8 @@ void SelectList_Draw()
SelectList_DrawScroller(); SelectList_DrawScroller();
} }
void SelectList_ProcessMouse() signed SelectList_ProcessMouse()
{ {
int mouse_clicked;
mouse.get(); mouse.get();
scrollbar_v_mouse (#scroll1); scrollbar_v_mouse (#scroll1);
if (select_list.first != scroll1.position) if (select_list.first != scroll1.position)
@ -42,12 +41,10 @@ void SelectList_ProcessMouse()
if (mouse.vert) && (select_list.MouseScroll(mouse.vert)) SelectList_Draw(); if (mouse.vert) && (select_list.MouseScroll(mouse.vert)) SelectList_Draw();
if (mouse.up)&&(mouse_clicked) if (mouse.up) && (mouse.lkm)
{ if (select_list.ProcessMouse(mouse.x, mouse.y)) {
if (mouse.lkm) && (select_list.ProcessMouse(mouse.x, mouse.y)) SelectList_LineChanged(); SelectList_LineChanged();
mouse_clicked=false; }
}
else if (mouse.down)&&(mouse.lkm) && (select_list.MouseOver(mouse.x, mouse.y)) mouse_clicked=true;
} }
void SelectList_DrawBorder() { void SelectList_DrawBorder() {

View File

@ -104,7 +104,7 @@ void main()
{ {
proc_info Form; proc_info Form;
if (!param) die("'Menu component is for developers only' -I"); if (!param) RunProgram("/sys/network/WebView", "http://board.kolibrios.org/viewtopic.php?f=24&t=4233#p74599");
GetMenuItems(#param); GetMenuItems(#param);
GetMenuWidths(); GetMenuWidths();
@ -120,7 +120,7 @@ void main()
GetWindowPosition(); GetWindowPosition();
SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE); @SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE);
loop() switch(WaitEvent()) loop() switch(WaitEvent())
{ {
case evMouse: case evMouse:
@ -135,7 +135,6 @@ void main()
break; break;
case evKey: case evKey:
GetKeys();
ProcessKeys(); ProcessKeys();
break; break;
@ -154,8 +153,9 @@ void CorrectLastItem()
} }
} }
void ProcessKeys() inline ProcessKeys()
{ {
key_scancode = @GetKeyScancode();
switch(key_scancode) switch(key_scancode)
{ {
case SCAN_CODE_ESC: case SCAN_CODE_ESC:

View File

@ -90,15 +90,15 @@ void main()
strcpy(#save_path, "/tmp0/1"); strcpy(#save_path, "/tmp0/1");
EditBox_UpdateText(#edit_save, 0); EditBox_UpdateText(#edit_save, 0);
SetEventMask(EVM_REDRAW+EVM_KEY+EVM_BUTTON+EVM_MOUSE+EVM_MOUSE_FILTER); @SetEventMask(EVM_REDRAW+EVM_KEY+EVM_BUTTON+EVM_MOUSE+EVM_MOUSE_FILTER);
loop() switch(WaitEvent()) loop() switch(@WaitEvent())
{ {
case evMouse: case evMouse:
edit_box_mouse stdcall (#edit_save); edit_box_mouse stdcall (#edit_save);
break; break;
case evButton: case evButton:
id = GetButtonID(); id = @GetButtonID();
switch(id){ switch(id){
case CLOSE_BTN: ExitProcess(); case CLOSE_BTN: ExitProcess();
case BTN_MAKE_SCREENSHOT: EventTakeScreenshot(); break; case BTN_MAKE_SCREENSHOT: EventTakeScreenshot(); break;
@ -109,11 +109,11 @@ void main()
break; break;
case evKey: case evKey:
GetKeys(); GetKey();
if (SCAN_CODE_ENTER == key_scancode) EventTakeScreenshot();
if (SCAN_CODE_ESC == key_scancode) ExitProcess();
EAX = key_editbox;
edit_box_key stdcall (#edit_save); edit_box_key stdcall (#edit_save);
EAX >>= 16;
if (SCAN_CODE_ENTER == AL) EventTakeScreenshot();
if (SCAN_CODE_ESC == AL) ExitProcess();
break; break;
case evReDraw: case evReDraw:

View File

@ -30,7 +30,6 @@ char picked_color_string[7];
void main() void main()
{ {
bool pick_active = true; bool pick_active = true;
int btn;
proc_info Form; proc_info Form;
@SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE); @SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE);
@SetWindowLayerBehaviour(-1, ZPOS_ALWAYS_TOP); @SetWindowLayerBehaviour(-1, ZPOS_ALWAYS_TOP);
@ -48,23 +47,22 @@ void main()
break; break;
case evButton: case evButton:
btn = @GetButtonID(); @GetButtonID();
if (btn == BUTTON_CLOSE) ExitProcess(); if (EAX == BUTTON_CLOSE) ExitProcess();
if (btn == BUTTON_COPY) EventCopyHex(); if (EAX == BUTTON_COPY) EventCopyHex();
if (btn == BUTTON_PICK) pick_active = true; if (EAX == BUTTON_PICK) pick_active = true;
break; break;
case evKey: case evKey:
key_scancode = @GetKeyScancode(); @GetKeyScancode();
if (key_scancode == SCAN_CODE_ESC) @ExitProcess(); if (AL == SCAN_CODE_ESC) @ExitProcess();
if (key_scancode == SCAN_CODE_KEY_C) EventCopyHex(); if (AL == SCAN_CODE_KEY_C) EventCopyHex();
break; break;
case evReDraw: case evReDraw:
DefineUnDragableWindow(215, 100, FORM_W, FORM_H); DefineUnDragableWindow(215, 100, FORM_W, FORM_H);
GetProcessInfo(#Form, SelfInfo); GetProcessInfo(#Form, SelfInfo);
draw_window(); draw_window();
break;
} }
} }

View File

@ -44,9 +44,8 @@ proc_info Form;
#include "engine.h" #include "engine.h"
#include "ini.h" #include "ini.h"
dword ed_mouse;
edit_box notebox = {NULL,NULL,NULL,COL_BG_ACTIVE,0x94AECE,COL_BG_ACTIVE,0xffffff,0, edit_box notebox = {NULL,NULL,NULL,COL_BG_ACTIVE,0x94AECE,COL_BG_ACTIVE,0xffffff,0,
MAX_LINE_CHARS-1,NULL,#ed_mouse,ed_always_focus+ed_focus}; MAX_LINE_CHARS-1,NULL,0,ed_always_focus+ed_focus};
dword lists[] = { 0xEAEAEA, 0xCDCDCD, 0xF0F0F0, 0xD8D8D8, 0 }; dword lists[] = { 0xEAEAEA, 0xCDCDCD, 0xF0F0F0, 0xD8D8D8, 0 };
bool delete_active = false; bool delete_active = false;
@ -61,7 +60,6 @@ block delBtn;
void main() void main()
{ {
int btn;
bool first_redraw=true; bool first_redraw=true;
dword cur_line_offset; dword cur_line_offset;
load_dll(boxlib, #box_lib_init,0); load_dll(boxlib, #box_lib_init,0);
@ -70,10 +68,10 @@ void main()
if (param) notes.OpenTxt(#param); else notes.OpenTxt("/sys/notes.txt"); if (param) notes.OpenTxt(#param); else notes.OpenTxt("/sys/notes.txt");
SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); @SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER);
LoadIniSettings(); LoadIniSettings();
loop() switch(WaitEvent()) loop() switch(@WaitEvent())
{ {
case evMouse: case evMouse:
edit_box_mouse stdcall (#notebox); edit_box_mouse stdcall (#notebox);
@ -101,8 +99,8 @@ void main()
break; break;
case evButton: case evButton:
btn = GetButtonID(); @GetButtonID();
switch(btn) switch(EAX)
{ {
case CLOSE_BTN: case CLOSE_BTN:
EventExitApp(); EventExitApp();
@ -111,7 +109,7 @@ void main()
EventDeleteCurrentNode(); EventDeleteCurrentNode();
break; break;
default: default:
EventCheckBoxClick(btn-CHECKBOX_ID); EventCheckBoxClick(EAX-CHECKBOX_ID);
break; break;
} }
break; break;

View File

@ -1,13 +1,14 @@
//Leency 10.10.2011, JustClicks v2.0, GPL
#include "lib\kolibri.h" #include "lib\kolibri.h"
#include "lib\random.h" #include "lib\random.h"
#include "lib\boxes.txt"
unsigned char block[] = FROM "lib\\boxes.raw";
system_colors sc; system_colors sc;
//óðîâíè ñëîæíîñòè //óðîâíè ñëîæíîñòè
int DIFFICULTY_LEVEL=1; //ïî-óìîë÷àíèþ ñðåäíåå ïîëå int DIFFICULTY_LEVEL=1; //ïî-óìîë÷àíèþ ñðåäíåå ïîëå
char *BOARD_SIZES[]={ "S\0", "M\0", "L\0", 0 }; char *BOARD_SIZES[]={ "S", "M", "L", 0 };
int DIFFICULTY_LEV_PARAMS[]={ 9, 12, 16 }; int DIFFICULTY_LEV_PARAMS[]={ 9, 12, 16 };
int BLOCKS_NUM; //êîëè÷åñòâî êâàäðàòèêîâ ïî Õ è ïî Y int BLOCKS_NUM; //êîëè÷åñòâî êâàäðàòèêîâ ïî Õ è ïî Y
@ -25,20 +26,20 @@ int blocks_matrix[28*28]; //
#endif #endif
#ifdef LANG_RUS #ifdef LANG_RUS
char NEW_GAME_TEXT[]="‡ ­®¢® [F2]"; #define NEW_GAME_TEXT "‡ ­®¢® [F2]"
char REZULT_TEXT[]="<EFBFBD>¥§ã«ìâ â: "; #define RESULT_TEXT "<22>¥§ã«ìâ â: "
#elif LANG_EST #elif LANG_EST
char NEW_GAME_TEXT[]="Uus mäng [F2]"; #define NEW_GAME_TEXT "Uus mäng [F2]"
char REZULT_TEXT[]="Tulemus: "; #define RESULT_TEXT "Tulemus: "
#else #else
char NEW_GAME_TEXT[]="New Game [F2]"; #define NEW_GAME_TEXT "New Game [F2]"
char REZULT_TEXT[]="Result: "; #define RESULT_TEXT "Result: "
#endif #endif
void main() void main()
{ {
int key_scancode, id; int id;
BLOCKS_NUM=DIFFICULTY_LEV_PARAMS[DIFFICULTY_LEVEL]; BLOCKS_NUM=DIFFICULTY_LEV_PARAMS[DIFFICULTY_LEVEL];
@ -48,7 +49,7 @@ void main()
switch(WaitEvent()) switch(WaitEvent())
{ {
case evButton: case evButton:
id = GetButtonID(); id = @GetButtonID();
if (id==1) ExitProcess(); if (id==1) ExitProcess();
if (id==2) || (id==3) goto _NEW_GAME_MARK; if (id==2) || (id==3) goto _NEW_GAME_MARK;
if (id>=100) if (id>=100)
@ -70,15 +71,15 @@ void main()
new_game(); new_game();
MoveSize(-1, -1, BLOCK_SIZE*BLOCKS_NUM +9, BLOCK_SIZE*BLOCKS_NUM +GetSkinWidth()+4+USER_PANEL_HEIGHT); MoveSize(-1, -1, BLOCK_SIZE*BLOCKS_NUM +9, BLOCK_SIZE*BLOCKS_NUM +GetSkinHeight()+4+USER_PANEL_HEIGHT);
break; break;
} }
break; break;
case evKey: case evKey:
key_scancode = GetKeyScancode(); @GetKeyScancode();
if (key_scancode==001) //Escape if (AL==001) //Escape
ExitProcess(); ExitProcess();
if (key_scancode==060) //F2 if (AL==060) //F2
{ {
_NEW_GAME_MARK: _NEW_GAME_MARK:
new_game(); new_game();
@ -169,7 +170,7 @@ void draw_window()
proc_info Form; proc_info Form;
sc.get(); sc.get();
DefineAndDrawWindow(300,176, BLOCK_SIZE*BLOCKS_NUM +9, BLOCK_SIZE*BLOCKS_NUM +GetSkinWidth()+4+USER_PANEL_HEIGHT, DefineAndDrawWindow(300,176, BLOCK_SIZE*BLOCKS_NUM +9, BLOCK_SIZE*BLOCKS_NUM +GetSkinHeight()+4+USER_PANEL_HEIGHT,
0x74,sc.work,0,0,HEADER); 0x74,sc.work,0,0,HEADER);
//ïðîâåðÿåì íå ñõëîïíóòî ëè îêíî â çàãîëîâîê //ïðîâåðÿåì íå ñõëîïíóòî ëè îêíî â çàãîëîâîê
@ -181,7 +182,7 @@ void draw_window()
DrawBar(0,PANEL_Y, PANEL_Y, USER_PANEL_HEIGHT, sc.work); //ïàíåëü ñíèçó DrawBar(0,PANEL_Y, PANEL_Y, USER_PANEL_HEIGHT, sc.work); //ïàíåëü ñíèçó
DrawCaptButton(10, PANEL_Y+7, 90, 20, 2, sc.work_button, sc.work_button_text,#NEW_GAME_TEXT); DrawCaptButton(10, PANEL_Y+7, 90, 20, 2, sc.work_button, sc.work_button_text,NEW_GAME_TEXT);
DrawCaptButton(105,PANEL_Y+7, 20, 20, 10,sc.work_button, sc.work_button_text,BOARD_SIZES[DIFFICULTY_LEVEL]); DrawCaptButton(105,PANEL_Y+7, 20, 20, 10,sc.work_button, sc.work_button_text,BOARD_SIZES[DIFFICULTY_LEVEL]);
draw_field(); draw_field();
@ -229,7 +230,7 @@ void draw_clicks_num()
if (check_for_end()) if (check_for_end())
{ {
copystr(#REZULT_TEXT, #rezult); copystr(RESULT_TEXT, #rezult);
copystr(IntToStr(BLOCKS_LEFT), #rezult+strlen(#rezult)); copystr(IntToStr(BLOCKS_LEFT), #rezult+strlen(#rezult));
if (check_for_end()==1) copystr("Epic WIN!!1", #rezult); if (check_for_end()==1) copystr("Epic WIN!!1", #rezult);
DrawFlatButton(BLOCK_SIZE*BLOCKS_NUM/2-70, BLOCK_SIZE*BLOCKS_NUM/2-20, 140, 40, 3, #rezult); DrawFlatButton(BLOCK_SIZE*BLOCKS_NUM/2-70, BLOCK_SIZE*BLOCKS_NUM/2-20, 140, 40, 3, #rezult);
@ -243,8 +244,9 @@ void new_game()
//ïÿòü öâåòîâ èñïîëüçóåòñÿ â èãðå äëÿ êâàäðàòèêîâ, MARKED äëÿ òîãî, //ïÿòü öâåòîâ èñïîëüçóåòñÿ â èãðå äëÿ êâàäðàòèêîâ, MARKED äëÿ òîãî,
//÷òîáû îòìåòèòü êâàäðàòèêè â ïðîöåññå çàëèâêè è DELETED_BLOCK äëÿ èõ óäàëåíèÿ //÷òîáû îòìåòèòü êâàäðàòèêè â ïðîöåññå çàëèâêè è DELETED_BLOCK äëÿ èõ óäàëåíèÿ
for (i=0;i<BLOCKS_NUM*BLOCKS_NUM;i++) for (i=0;i<BLOCKS_NUM*BLOCKS_NUM;i++) {
blocks_matrix[i] = random(5); blocks_matrix[i] = random(5);
}
DeleteButton(3); DeleteButton(3);
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 915 B

File diff suppressed because one or more lines are too long

View File

@ -1,416 +0,0 @@
unsigned char block[6615] = {
0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2,
0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2,
0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C,
0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0xE2, 0xE2, 0x8C, 0x78, 0x77, 0x28, 0xE2,
0xE2, 0x8C, 0xD4, 0xD2, 0x3A, 0xD4, 0xD2, 0x3A, 0xD4, 0xD2, 0x3A, 0xD4, 0xD2, 0x3A, 0xD4, 0xD2,
0x3A, 0xD5, 0xD4, 0x3A, 0xD5, 0xD4, 0x3A, 0xD5, 0xD4, 0x3A, 0xD5, 0xD4, 0x3A, 0xD5, 0xD4, 0x3A,
0xD5, 0xD4, 0x3A, 0xD5, 0xD4, 0x3A, 0xD4, 0xD2, 0x3A, 0xD4, 0xD2, 0x3A, 0xD4, 0xD2, 0x3A, 0xD4,
0xD2, 0x3A, 0xD4, 0xD2, 0x3A, 0xD4, 0xD2, 0x3A, 0xD4, 0xD2, 0x3A, 0x78, 0x77, 0x28, 0xE2, 0xE2,
0x8C, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38,
0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x3A, 0xD5, 0xD4, 0x3A, 0xD5, 0xD4, 0x3A, 0xD5, 0xD4, 0x3A, 0xD5,
0xD4, 0x3A, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2,
0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0x78, 0x77, 0x28, 0xE2, 0xE2, 0x8C,
0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4,
0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2,
0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38,
0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x36, 0x78, 0x77, 0x28, 0xE2, 0xE2, 0x8C, 0xD3,
0xD2, 0x36, 0xD3, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD4, 0xD2,
0x36, 0xD4, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD4, 0xD2, 0x38, 0xD5, 0xD4, 0x37, 0xD5, 0xD4, 0x37,
0xD4, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD3,
0xD2, 0x36, 0xD3, 0xD2, 0x36, 0xD3, 0xD2, 0x36, 0x78, 0x77, 0x28, 0xE2, 0xE2, 0x8C, 0xD3, 0xD2,
0x36, 0xD3, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD5, 0xD4, 0x37,
0xD5, 0xD4, 0x37, 0xD5, 0xD4, 0x37, 0xD5, 0xD4, 0x37, 0xD5, 0xD4, 0x37, 0xD5, 0xD4, 0x37, 0xD5,
0xD4, 0x37, 0xD5, 0xD4, 0x37, 0xD4, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD3, 0xD2, 0x36, 0xD3, 0xD2,
0x36, 0xD2, 0xD0, 0x36, 0xD2, 0xD0, 0x35, 0x78, 0x77, 0x28, 0xE2, 0xE2, 0x8C, 0xD2, 0xD0, 0x36,
0xD3, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD4, 0xD2, 0x36, 0xD5, 0xD4, 0x38, 0xD5, 0xD4, 0x38, 0xD5,
0xD4, 0x38, 0xD5, 0xD4, 0x38, 0xD5, 0xD4, 0x38, 0xD5, 0xD4, 0x38, 0xD5, 0xD4, 0x38, 0xD5, 0xD4,
0x38, 0xD5, 0xD4, 0x38, 0xD4, 0xD2, 0x38, 0xD4, 0xD2, 0x38, 0xD3, 0xD1, 0x38, 0xD2, 0xD0, 0x36,
0xD2, 0xD0, 0x36, 0xD2, 0xD0, 0x35, 0x78, 0x77, 0x28, 0xE2, 0xE2, 0x8C, 0xD2, 0xD0, 0x36, 0xD4,
0xD1, 0x38, 0xD4, 0xD2, 0x38, 0xD5, 0xD4, 0x3A, 0xD5, 0xD4, 0x3A, 0xD6, 0xD5, 0x3A, 0xD6, 0xD5,
0x3A, 0xD6, 0xD5, 0x3A, 0xD6, 0xD5, 0x3A, 0xD6, 0xD5, 0x3A, 0xD6, 0xD5, 0x3A, 0xD6, 0xD5, 0x3A,
0xD5, 0xD4, 0x3A, 0xD5, 0xD4, 0x3A, 0xD4, 0xD2, 0x3A, 0xD4, 0xD1, 0x38, 0xD3, 0xD1, 0x38, 0xD2,
0xD0, 0x36, 0xD2, 0xD0, 0x36, 0x78, 0x77, 0x28, 0xE2, 0xE2, 0x8C, 0xD3, 0xD2, 0x3A, 0xD4, 0xD2,
0x3A, 0xD5, 0xD4, 0x3A, 0xD6, 0xD4, 0x3C, 0xD5, 0xD4, 0x3D, 0xD7, 0xD6, 0x3E, 0xD7, 0xD6, 0x3E,
0xD7, 0xD6, 0x3E, 0xD7, 0xD6, 0x40, 0xD7, 0xD6, 0x40, 0xD7, 0xD6, 0x3E, 0xD7, 0xD6, 0x3E, 0xD6,
0xD4, 0x3E, 0xD5, 0xD4, 0x3D, 0xD5, 0xD4, 0x3D, 0xD4, 0xD2, 0x3C, 0xD4, 0xD2, 0x3A, 0xD3, 0xD1,
0x3A, 0xD3, 0xD1, 0x38, 0x78, 0x77, 0x28, 0xE2, 0xE2, 0x8C, 0xD5, 0xD3, 0x3E, 0xD5, 0xD4, 0x3E,
0xD6, 0xD4, 0x3E, 0xD7, 0xD6, 0x40, 0xD8, 0xD7, 0x42, 0xD8, 0xD7, 0x44, 0xD8, 0xD7, 0x44, 0xD8,
0xD8, 0x45, 0xD8, 0xD8, 0x46, 0xD8, 0xD8, 0x45, 0xD8, 0xD8, 0x45, 0xD8, 0xD7, 0x44, 0xD8, 0xD7,
0x42, 0xD7, 0xD6, 0x42, 0xD7, 0xD6, 0x40, 0xD6, 0xD4, 0x40, 0xD5, 0xD3, 0x3E, 0xD5, 0xD3, 0x3E,
0xD4, 0xD2, 0x3C, 0x78, 0x77, 0x28, 0xE2, 0xE2, 0x8C, 0xD6, 0xD4, 0x42, 0xD7, 0xD6, 0x42, 0xD7,
0xD6, 0x45, 0xD8, 0xD6, 0x47, 0xD9, 0xD8, 0x49, 0xD9, 0xD8, 0x4A, 0xDA, 0xD9, 0x4B, 0xDA, 0xD9,
0x4C, 0xDA, 0xD9, 0x4C, 0xDA, 0xD9, 0x4C, 0xDA, 0xD9, 0x4C, 0xDA, 0xD9, 0x4B, 0xD9, 0xD8, 0x4A,
0xD8, 0xD6, 0x48, 0xD8, 0xD6, 0x47, 0xD7, 0xD6, 0x45, 0xD7, 0xD6, 0x42, 0xD6, 0xD4, 0x42, 0xD6,
0xD4, 0x40, 0x78, 0x77, 0x28, 0xE2, 0xE2, 0x8C, 0xD7, 0xD6, 0x47, 0xD8, 0xD6, 0x48, 0xD9, 0xD7,
0x4B, 0xDA, 0xD9, 0x4C, 0xDA, 0xD9, 0x4F, 0xDB, 0xDA, 0x51, 0xDB, 0xDA, 0x53, 0xDC, 0xDB, 0x54,
0xDC, 0xDB, 0x54, 0xDC, 0xDB, 0x54, 0xDC, 0xDB, 0x54, 0xDB, 0xDA, 0x53, 0xDB, 0xDA, 0x51, 0xDA,
0xD9, 0x4F, 0xD9, 0xD8, 0x4D, 0xD9, 0xD7, 0x4B, 0xD8, 0xD6, 0x48, 0xD8, 0xD6, 0x47, 0xD7, 0xD5,
0x46, 0x78, 0x77, 0x28, 0xE2, 0xE2, 0x8C, 0xD9, 0xD8, 0x4D, 0xD9, 0xD8, 0x4F, 0xDA, 0xD8, 0x50,
0xDB, 0xDA, 0x54, 0xDC, 0xDA, 0x56, 0xDD, 0xDC, 0x58, 0xDD, 0xDC, 0x5A, 0xDD, 0xDC, 0x5A, 0xDD,
0xDC, 0x5A, 0xDD, 0xDC, 0x5A, 0xDD, 0xDC, 0x5A, 0xDD, 0xDC, 0x5A, 0xDC, 0xDB, 0x58, 0xDC, 0xDA,
0x56, 0xDA, 0xD9, 0x54, 0xDA, 0xD8, 0x50, 0xD9, 0xD8, 0x4F, 0xD9, 0xD8, 0x4D, 0xD8, 0xD7, 0x4C,
0x78, 0x77, 0x28, 0xE2, 0xE2, 0x8C, 0xDA, 0xD8, 0x52, 0xDA, 0xD9, 0x54, 0xDB, 0xDA, 0x56, 0xDC,
0xDA, 0x5A, 0xDD, 0xDC, 0x5C, 0xDE, 0xDD, 0x5E, 0xDE, 0xDC, 0x60, 0xDE, 0xDE, 0x61, 0xDF, 0xDE,
0x62, 0xDF, 0xDE, 0x62, 0xDE, 0xDE, 0x61, 0xDE, 0xDC, 0x60, 0xDD, 0xDC, 0x5E, 0xDC, 0xDB, 0x5C,
0xDC, 0xDA, 0x5A, 0xDB, 0xDA, 0x56, 0xDA, 0xD9, 0x54, 0xDA, 0xD8, 0x52, 0xD9, 0xD8, 0x50, 0x78,
0x77, 0x28, 0xE2, 0xE2, 0x8C, 0xDA, 0xD9, 0x56, 0xDB, 0xDA, 0x58, 0xDC, 0xDB, 0x5C, 0xDD, 0xDC,
0x5E, 0xDE, 0xDE, 0x61, 0xDF, 0xDE, 0x62, 0xDF, 0xDE, 0x65, 0xE0, 0xDF, 0x66, 0xE0, 0xDF, 0x66,
0xE0, 0xDF, 0x66, 0xDF, 0xDE, 0x66, 0xDF, 0xDE, 0x65, 0xDE, 0xDD, 0x64, 0xDE, 0xDC, 0x60, 0xDD,
0xDB, 0x5E, 0xDC, 0xDA, 0x5A, 0xDB, 0xDA, 0x58, 0xDA, 0xD9, 0x56, 0xDA, 0xD9, 0x54, 0x78, 0x77,
0x28, 0xE2, 0xE2, 0x8C, 0xDB, 0xDA, 0x58, 0xDC, 0xDA, 0x5A, 0xDD, 0xDB, 0x5E, 0xDE, 0xDC, 0x60,
0xDE, 0xDD, 0x64, 0xDF, 0xDE, 0x66, 0xE0, 0xDF, 0x68, 0xE0, 0xDF, 0x68, 0xE0, 0xDF, 0x6A, 0xE0,
0xDF, 0x6A, 0xE0, 0xDF, 0x68, 0xE0, 0xDF, 0x68, 0xDF, 0xDE, 0x66, 0xDE, 0xDD, 0x64, 0xDE, 0xDC,
0x60, 0xDD, 0xDB, 0x5E, 0xDC, 0xDA, 0x5A, 0xDB, 0xDA, 0x58, 0xDB, 0xDA, 0x56, 0x78, 0x77, 0x28,
0xE2, 0xE2, 0x8C, 0xDB, 0xDA, 0x58, 0xDC, 0xDB, 0x5C, 0xDD, 0xDC, 0x5E, 0xDE, 0xDD, 0x64, 0xDF,
0xDE, 0x66, 0xDF, 0xDE, 0x68, 0xE0, 0xDF, 0x6A, 0xE0, 0xDF, 0x6A, 0xE0, 0xDF, 0x6C, 0xE0, 0xDF,
0x6C, 0xE0, 0xDF, 0x6A, 0xE0, 0xDF, 0x6A, 0xDF, 0xDE, 0x68, 0xDF, 0xDE, 0x65, 0xDE, 0xDC, 0x62,
0xDD, 0xDB, 0x5E, 0xDC, 0xDB, 0x5C, 0xDB, 0xDA, 0x58, 0xDB, 0xDA, 0x58, 0x78, 0x77, 0x28, 0xE2,
0xE2, 0x8C, 0xDC, 0xDA, 0x5A, 0xDC, 0xDB, 0x5C, 0xDD, 0xDC, 0x5E, 0xDE, 0xDD, 0x64, 0xDF, 0xDE,
0x66, 0xDF, 0xDE, 0x68, 0xE0, 0xDF, 0x6A, 0xE0, 0xDF, 0x6C, 0xE0, 0xDF, 0x6C, 0xE0, 0xDF, 0x6C,
0xE0, 0xDF, 0x6C, 0xE0, 0xDF, 0x6A, 0xDF, 0xDE, 0x68, 0xDE, 0xDD, 0x66, 0xDE, 0xDC, 0x62, 0xDD,
0xDB, 0x5E, 0xDC, 0xDB, 0x5C, 0xDB, 0xDA, 0x58, 0xDB, 0xDA, 0x58, 0x78, 0x77, 0x28, 0xE2, 0xE2,
0x8C, 0xDB, 0xDA, 0x5A, 0xDC, 0xDB, 0x5C, 0xDD, 0xDB, 0x5E, 0xDE, 0xDD, 0x64, 0xDF, 0xDE, 0x66,
0xDF, 0xDE, 0x68, 0xE0, 0xDF, 0x6A, 0xE0, 0xDF, 0x6C, 0xE0, 0xDF, 0x6C, 0xE0, 0xDF, 0x6C, 0xE0,
0xDF, 0x6C, 0xE0, 0xDF, 0x6A, 0xDF, 0xDE, 0x68, 0xDE, 0xDD, 0x66, 0xDE, 0xDC, 0x62, 0xDD, 0xDB,
0x5E, 0xDC, 0xDB, 0x5C, 0xDB, 0xDA, 0x58, 0xDB, 0xDA, 0x58, 0x78, 0x77, 0x28, 0xE2, 0xE2, 0x8C,
0xDB, 0xDA, 0x58, 0xDC, 0xDB, 0x5C, 0xDD, 0xDB, 0x5E, 0xDE, 0xDC, 0x62, 0xDE, 0xDD, 0x66, 0xDF,
0xDE, 0x68, 0xE0, 0xDF, 0x6A, 0xE0, 0xDF, 0x6A, 0xE0, 0xDF, 0x6C, 0xE0, 0xDF, 0x6C, 0xE0, 0xDF,
0x6A, 0xE0, 0xDF, 0x6A, 0xDF, 0xDE, 0x68, 0xDE, 0xDD, 0x66, 0xDE, 0xDC, 0x62, 0xDD, 0xDB, 0x5E,
0xDC, 0xDB, 0x5C, 0xDB, 0xDA, 0x58, 0xDB, 0xDA, 0x58, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0x78,
0x77, 0x28, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0x78, 0x77,
0x28, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28,
0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0x78,
0x77, 0x28, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0x78, 0x77, 0x28, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC,
0xEF, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC, 0xEF,
0xAC, 0xAC, 0xEF, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC, 0xEF, 0xAC,
0xAC, 0xEF, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC,
0xEF, 0xAC, 0xAC, 0xEF, 0xAC, 0xAC, 0xEF, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x51, 0x53, 0xE0,
0x51, 0x53, 0xE0, 0x54, 0x54, 0xDF, 0x54, 0x54, 0xDF, 0x54, 0x54, 0xDF, 0x54, 0x54, 0xDF, 0x54,
0x54, 0xDF, 0x54, 0x54, 0xDF, 0x54, 0x54, 0xDF, 0x54, 0x54, 0xDF, 0x54, 0x54, 0xDF, 0x54, 0x54,
0xDF, 0x54, 0x54, 0xDF, 0x54, 0x54, 0xDF, 0x54, 0x54, 0xDF, 0x51, 0x53, 0xE0, 0x51, 0x53, 0xE0,
0x51, 0x53, 0xE0, 0x51, 0x53, 0xE0, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x4F, 0x51, 0xDE, 0x50,
0x50, 0xDE, 0x50, 0x50, 0xDE, 0x50, 0x50, 0xDE, 0x50, 0x50, 0xDE, 0x50, 0x50, 0xDE, 0x52, 0x52,
0xDE, 0x52, 0x52, 0xDE, 0x52, 0x52, 0xDE, 0x52, 0x52, 0xDE, 0x52, 0x52, 0xDE, 0x50, 0x50, 0xDE,
0x50, 0x50, 0xDE, 0x50, 0x50, 0xDE, 0x50, 0x50, 0xDE, 0x50, 0x50, 0xDE, 0x50, 0x50, 0xDE, 0x4F,
0x51, 0xDE, 0x4F, 0x51, 0xDE, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C,
0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE,
0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E,
0x4E, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C,
0xDE, 0x4C, 0x4C, 0xDE, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE,
0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C,
0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C,
0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE,
0x4C, 0x4C, 0xDE, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x49, 0x4A, 0xDE, 0x49, 0x4A, 0xDE, 0x4C,
0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C,
0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE,
0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x49, 0x4A, 0xDE, 0x49, 0x4A, 0xDE, 0x49, 0x4A, 0xDE, 0x49,
0x4A, 0xDE, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x49, 0x49, 0xDC, 0x49, 0x4A, 0xDE, 0x49, 0x49,
0xDE, 0x4B, 0x4C, 0xDE, 0x4B, 0x4C, 0xDE, 0x4B, 0x4C, 0xDE, 0x4B, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE,
0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4B, 0x4C, 0xDE, 0x4B, 0x4C, 0xDE, 0x4B, 0x4C, 0xDE, 0x4B,
0x4C, 0xDE, 0x49, 0x49, 0xDE, 0x49, 0x4A, 0xDE, 0x49, 0x4A, 0xDE, 0x49, 0x49, 0xDC, 0x49, 0x49,
0xDC, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x49, 0x49, 0xDC, 0x49, 0x4A, 0xDE, 0x4A, 0x4A, 0xDE,
0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C,
0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C,
0xDE, 0x4A, 0x4A, 0xDE, 0x4A, 0x4A, 0xDE, 0x4A, 0x4A, 0xDE, 0x49, 0x49, 0xDC, 0x49, 0x49, 0xDC,
0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x4A, 0x4A, 0xDC, 0x4A, 0x4A, 0xDE, 0x4C, 0x4C, 0xDE, 0x4E,
0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4F, 0x52, 0xE0, 0x4F, 0x52,
0xE0, 0x4F, 0x52, 0xE0, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE,
0x4C, 0x4C, 0xDE, 0x4B, 0x4C, 0xDE, 0x4A, 0x4A, 0xDE, 0x4A, 0x4A, 0xDC, 0x4A, 0x4A, 0xDC, 0x2E,
0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x4B, 0x4C, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E,
0xDE, 0x4F, 0x52, 0xE0, 0x51, 0x53, 0xE0, 0x52, 0x54, 0xE1, 0x52, 0x54, 0xE1, 0x52, 0x54, 0xE1,
0x52, 0x54, 0xE1, 0x52, 0x54, 0xE1, 0x51, 0x53, 0xE0, 0x4F, 0x52, 0xE0, 0x4E, 0x4E, 0xDE, 0x4E,
0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4B, 0x4C, 0xDE, 0x4B, 0x4C, 0xDE, 0x2E, 0x30,
0x9E, 0xAC, 0xAC, 0xEF, 0x4C, 0x4C, 0xDE, 0x4E, 0x4E, 0xDE, 0x50, 0x50, 0xDE, 0x52, 0x54, 0xE1,
0x56, 0x57, 0xE1, 0x56, 0x57, 0xE1, 0x57, 0x58, 0xE1, 0x58, 0x5A, 0xE0, 0x58, 0x5A, 0xE0, 0x58,
0x5A, 0xE0, 0x57, 0x58, 0xE1, 0x57, 0x58, 0xE1, 0x57, 0x58, 0xE1, 0x52, 0x54, 0xE1, 0x52, 0x52,
0xDE, 0x4E, 0x4E, 0xDE, 0x4E, 0x4E, 0xDE, 0x4C, 0x4C, 0xDE, 0x4C, 0x4C, 0xDE, 0x2E, 0x30, 0x9E,
0xAC, 0xAC, 0xEF, 0x52, 0x54, 0xDE, 0x54, 0x56, 0xE0, 0x58, 0x5A, 0xE0, 0x59, 0x5A, 0xE2, 0x5A,
0x5B, 0xE1, 0x5C, 0x5F, 0xE4, 0x5C, 0x5F, 0xE4, 0x5E, 0x61, 0xE2, 0x5E, 0x61, 0xE2, 0x5E, 0x61,
0xE2, 0x5C, 0x5F, 0xE4, 0x5C, 0x5F, 0xE4, 0x5C, 0x5C, 0xE1, 0x5A, 0x5B, 0xE1, 0x58, 0x5A, 0xE0,
0x54, 0x56, 0xE0, 0x54, 0x56, 0xE0, 0x52, 0x54, 0xDE, 0x52, 0x54, 0xDE, 0x2E, 0x30, 0x9E, 0xAC,
0xAC, 0xEF, 0x58, 0x58, 0xDF, 0x59, 0x5A, 0xE2, 0x5C, 0x5C, 0xE1, 0x5E, 0x61, 0xE2, 0x63, 0x64,
0xE2, 0x64, 0x65, 0xE2, 0x64, 0x65, 0xE2, 0x65, 0x66, 0xE3, 0x66, 0x66, 0xE3, 0x65, 0x66, 0xE3,
0x65, 0x66, 0xE3, 0x65, 0x66, 0xE3, 0x63, 0x64, 0xE2, 0x5F, 0x62, 0xE2, 0x5C, 0x5C, 0xE1, 0x5A,
0x5B, 0xE2, 0x5A, 0x5B, 0xE2, 0x58, 0x58, 0xDF, 0x58, 0x58, 0xDF, 0x2E, 0x30, 0x9E, 0xAC, 0xAC,
0xEF, 0x5A, 0x5E, 0xE2, 0x5E, 0x61, 0xE2, 0x62, 0x63, 0xE2, 0x64, 0x65, 0xE2, 0x66, 0x66, 0xE3,
0x67, 0x68, 0xE3, 0x67, 0x68, 0xE3, 0x69, 0x6A, 0xE6, 0x6A, 0x6C, 0xE4, 0x69, 0x6A, 0xE6, 0x68,
0x69, 0xE4, 0x68, 0x69, 0xE4, 0x66, 0x66, 0xE3, 0x65, 0x66, 0xE3, 0x63, 0x64, 0xE2, 0x5F, 0x62,
0xE2, 0x5E, 0x61, 0xE2, 0x5A, 0x5E, 0xE2, 0x5A, 0x5E, 0xE2, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF,
0x5C, 0x5C, 0xE1, 0x62, 0x63, 0xE2, 0x64, 0x65, 0xE2, 0x67, 0x68, 0xE3, 0x67, 0x68, 0xE3, 0x6A,
0x6C, 0xE4, 0x6C, 0x6D, 0xE6, 0x6C, 0x6E, 0xE6, 0x6C, 0x6E, 0xE6, 0x6C, 0x6E, 0xE6, 0x6C, 0x6E,
0xE6, 0x6A, 0x6C, 0xE4, 0x68, 0x69, 0xE4, 0x68, 0x69, 0xE4, 0x66, 0x66, 0xE3, 0x63, 0x64, 0xE2,
0x63, 0x64, 0xE2, 0x5C, 0x5C, 0xE1, 0x5C, 0x5C, 0xE1, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x5F,
0x64, 0xE2, 0x64, 0x65, 0xE2, 0x67, 0x68, 0xE3, 0x6A, 0x6C, 0xE2, 0x6A, 0x6C, 0xE4, 0x6F, 0x6F,
0xE4, 0x6D, 0x70, 0xE6, 0x72, 0x73, 0xE7, 0x72, 0x73, 0xE7, 0x72, 0x73, 0xE7, 0x6D, 0x70, 0xE6,
0x70, 0x70, 0xE4, 0x6C, 0x6D, 0xE6, 0x6A, 0x6C, 0xE4, 0x68, 0x69, 0xE4, 0x65, 0x66, 0xE3, 0x65,
0x66, 0xE3, 0x60, 0x64, 0xE2, 0x5F, 0x64, 0xE2, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x63, 0x63,
0xE1, 0x64, 0x65, 0xE2, 0x68, 0x68, 0xE2, 0x6A, 0x6C, 0xE4, 0x6A, 0x6C, 0xE4, 0x71, 0x72, 0xE5,
0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71,
0x72, 0xE5, 0x6C, 0x6D, 0xE6, 0x6A, 0x6C, 0xE4, 0x6A, 0x6A, 0xE2, 0x67, 0x68, 0xE3, 0x66, 0x66,
0xE3, 0x64, 0x64, 0xE1, 0x63, 0x63, 0xE1, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x63, 0x63, 0xE1,
0x64, 0x65, 0xE2, 0x69, 0x6B, 0xE2, 0x6A, 0x6C, 0xE4, 0x6F, 0x70, 0xE4, 0x71, 0x72, 0xE5, 0x71,
0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72,
0xE5, 0x70, 0x70, 0xE4, 0x6A, 0x6C, 0xE4, 0x6A, 0x6C, 0xE2, 0x67, 0x68, 0xE3, 0x66, 0x66, 0xE3,
0x64, 0x64, 0xE1, 0x63, 0x63, 0xE1, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x63, 0x63, 0xE1, 0x64,
0x65, 0xE2, 0x69, 0x6B, 0xE2, 0x6A, 0x6C, 0xE2, 0x6F, 0x70, 0xE4, 0x70, 0x70, 0xE4, 0x71, 0x72,
0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5,
0x70, 0x70, 0xE4, 0x6A, 0x6C, 0xE4, 0x6A, 0x6C, 0xE2, 0x66, 0x66, 0xE3, 0x66, 0x66, 0xE3, 0x64,
0x64, 0xE1, 0x63, 0x63, 0xE1, 0x2E, 0x30, 0x9E, 0xAC, 0xAC, 0xEF, 0x63, 0x63, 0xE1, 0x64, 0x65,
0xE2, 0x68, 0x6A, 0xE1, 0x6A, 0x6C, 0xE2, 0x6F, 0x70, 0xE4, 0x70, 0x70, 0xE4, 0x71, 0x72, 0xE5,
0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x71, 0x72, 0xE5, 0x70,
0x70, 0xE4, 0x6A, 0x6C, 0xE4, 0x6A, 0x6C, 0xE2, 0x66, 0x66, 0xE3, 0x64, 0x65, 0xE2, 0x64, 0x64,
0xE1, 0x63, 0x63, 0xE1, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E,
0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E,
0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30,
0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E,
0x2E, 0x30, 0x9E, 0x2E, 0x30, 0x9E, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F,
0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB,
0xA7, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7,
0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F, 0xDB, 0xA7, 0x9F,
0xDB, 0xA7, 0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x4D, 0xC0, 0x58, 0x4D, 0xC0, 0x58, 0x4E, 0xC0,
0x58, 0x4E, 0xC0, 0x58, 0x4E, 0xC0, 0x58, 0x4E, 0xC0, 0x58, 0x4E, 0xC0, 0x58, 0x4E, 0xC0, 0x58,
0x4E, 0xC0, 0x58, 0x4E, 0xC0, 0x58, 0x4E, 0xC0, 0x58, 0x4E, 0xC0, 0x58, 0x4E, 0xC0, 0x58, 0x4E,
0xC0, 0x58, 0x4E, 0xC0, 0x58, 0x4D, 0xC0, 0x58, 0x4D, 0xC0, 0x58, 0x4D, 0xC0, 0x58, 0x4D, 0xC0,
0x58, 0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56,
0x4D, 0xC0, 0x58, 0x4D, 0xC0, 0x58, 0x4D, 0xC0, 0x58, 0x4E, 0xC0, 0x58, 0x4E, 0xC0, 0x58, 0x4E,
0xC0, 0x58, 0x4E, 0xC0, 0x58, 0x4E, 0xC0, 0x58, 0x4D, 0xC0, 0x58, 0x4D, 0xC0, 0x58, 0x4D, 0xC0,
0x58, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4A, 0xC0, 0x56, 0x4A, 0xC0, 0x56,
0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x4A, 0xC0, 0x55, 0x4A, 0xC0, 0x55, 0x4A, 0xC0, 0x56, 0x4A,
0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4C, 0xC0,
0x56, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4A, 0xC0, 0x56,
0x4A, 0xC0, 0x56, 0x4A, 0xC0, 0x55, 0x4A, 0xC0, 0x55, 0x4A, 0xC0, 0x55, 0x49, 0xBF, 0x54, 0x32,
0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x48, 0xC0, 0x53, 0x48, 0xC0, 0x53, 0x48, 0xC0, 0x54, 0x49, 0xBF,
0x54, 0x4A, 0xC0, 0x55, 0x4A, 0xC0, 0x55, 0x4A, 0xC0, 0x56, 0x4A, 0xC0, 0x56, 0x4A, 0xC0, 0x56,
0x4A, 0xC0, 0x56, 0x4A, 0xC0, 0x56, 0x4A, 0xC0, 0x55, 0x4A, 0xC0, 0x55, 0x49, 0xBF, 0x54, 0x48,
0xC0, 0x54, 0x48, 0xC0, 0x53, 0x48, 0xC0, 0x53, 0x48, 0xBE, 0x52, 0x48, 0xBE, 0x52, 0x32, 0x69,
0x37, 0x9F, 0xDB, 0xA7, 0x46, 0xBE, 0x50, 0x47, 0xBE, 0x52, 0x47, 0xBE, 0x52, 0x48, 0xC0, 0x53,
0x48, 0xC0, 0x54, 0x4A, 0xC0, 0x55, 0x4A, 0xC0, 0x55, 0x4A, 0xC0, 0x55, 0x4A, 0xC0, 0x55, 0x4A,
0xC0, 0x55, 0x4A, 0xC0, 0x55, 0x4A, 0xC0, 0x55, 0x48, 0xC0, 0x54, 0x48, 0xC0, 0x53, 0x47, 0xC0,
0x52, 0x46, 0xBE, 0x50, 0x46, 0xBE, 0x50, 0x46, 0xBE, 0x50, 0x46, 0xBE, 0x50, 0x32, 0x69, 0x37,
0x9F, 0xDB, 0xA7, 0x46, 0xBE, 0x50, 0x46, 0xBE, 0x50, 0x47, 0xBE, 0x52, 0x47, 0xBE, 0x52, 0x48,
0xC0, 0x54, 0x48, 0xC0, 0x54, 0x48, 0xC0, 0x54, 0x48, 0xC0, 0x54, 0x48, 0xC0, 0x54, 0x48, 0xC0,
0x54, 0x48, 0xC0, 0x54, 0x48, 0xC0, 0x54, 0x48, 0xC0, 0x54, 0x47, 0xBE, 0x52, 0x47, 0xBE, 0x52,
0x46, 0xBE, 0x50, 0x46, 0xBE, 0x50, 0x45, 0xBE, 0x50, 0x45, 0xBE, 0x50, 0x32, 0x69, 0x37, 0x9F,
0xDB, 0xA7, 0x45, 0xBE, 0x50, 0x46, 0xBE, 0x50, 0x48, 0xBE, 0x52, 0x48, 0xC0, 0x54, 0x4A, 0xC0,
0x55, 0x49, 0xC0, 0x56, 0x49, 0xC0, 0x56, 0x49, 0xC0, 0x56, 0x49, 0xC0, 0x56, 0x49, 0xC0, 0x56,
0x49, 0xC0, 0x56, 0x49, 0xC0, 0x56, 0x4A, 0xC0, 0x55, 0x48, 0xC0, 0x54, 0x48, 0xBE, 0x52, 0x47,
0xBE, 0x52, 0x46, 0xBE, 0x50, 0x45, 0xBE, 0x50, 0x45, 0xBD, 0x50, 0x32, 0x69, 0x37, 0x9F, 0xDB,
0xA7, 0x47, 0xBE, 0x52, 0x48, 0xBE, 0x52, 0x48, 0xC0, 0x53, 0x4A, 0xC0, 0x56, 0x4A, 0xC0, 0x56,
0x4A, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4C,
0xC0, 0x56, 0x4A, 0xC0, 0x56, 0x4A, 0xC0, 0x56, 0x4A, 0xC0, 0x56, 0x49, 0xBF, 0x54, 0x49, 0xBF,
0x54, 0x47, 0xBE, 0x52, 0x47, 0xBE, 0x52, 0x47, 0xBE, 0x52, 0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7,
0x4A, 0xBF, 0x54, 0x4A, 0xC0, 0x55, 0x4A, 0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4D, 0xC0, 0x58, 0x4D,
0xC2, 0x59, 0x4E, 0xC2, 0x59, 0x4E, 0xC2, 0x59, 0x4F, 0xC4, 0x5A, 0x4F, 0xC4, 0x5A, 0x4F, 0xC2,
0x5A, 0x4D, 0xC2, 0x59, 0x4D, 0xC0, 0x58, 0x4C, 0xC0, 0x56, 0x4A, 0xC0, 0x56, 0x4A, 0xC0, 0x55,
0x4A, 0xBF, 0x54, 0x49, 0xBF, 0x54, 0x48, 0xBE, 0x52, 0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x4C,
0xC0, 0x56, 0x4D, 0xC0, 0x58, 0x4E, 0xC2, 0x59, 0x50, 0xC2, 0x5B, 0x51, 0xC3, 0x5C, 0x51, 0xC4,
0x5C, 0x52, 0xC4, 0x5C, 0x54, 0xC5, 0x5D, 0x54, 0xC5, 0x5D, 0x54, 0xC5, 0x5D, 0x52, 0xC4, 0x5C,
0x52, 0xC4, 0x5C, 0x52, 0xC3, 0x5C, 0x50, 0xC2, 0x5B, 0x4F, 0xC2, 0x5A, 0x4E, 0xC2, 0x59, 0x4C,
0xC0, 0x56, 0x4C, 0xC0, 0x56, 0x4A, 0xC0, 0x56, 0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x50, 0xC2,
0x5B, 0x51, 0xC3, 0x5C, 0x52, 0xC3, 0x5C, 0x54, 0xC4, 0x5E, 0x55, 0xC4, 0x60, 0x56, 0xC6, 0x61,
0x56, 0xC6, 0x61, 0x57, 0xC6, 0x62, 0x57, 0xC6, 0x62, 0x57, 0xC6, 0x62, 0x56, 0xC6, 0x61, 0x56,
0xC6, 0x61, 0x55, 0xC4, 0x60, 0x54, 0xC4, 0x5E, 0x52, 0xC4, 0x5C, 0x52, 0xC3, 0x5C, 0x50, 0xC2,
0x5B, 0x4F, 0xC2, 0x5A, 0x4E, 0xC2, 0x59, 0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x54, 0xC4, 0x5E,
0x55, 0xC4, 0x60, 0x56, 0xC5, 0x60, 0x57, 0xC6, 0x62, 0x5A, 0xC7, 0x64, 0x5B, 0xC7, 0x66, 0x5B,
0xC8, 0x65, 0x5B, 0xC8, 0x66, 0x5C, 0xC8, 0x66, 0x5B, 0xC8, 0x66, 0x5B, 0xC8, 0x66, 0x5B, 0xC8,
0x66, 0x5A, 0xC7, 0x64, 0x58, 0xC6, 0x64, 0x57, 0xC5, 0x62, 0x55, 0xC4, 0x60, 0x54, 0xC4, 0x5E,
0x52, 0xC3, 0x5C, 0x52, 0xC3, 0x5C, 0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x56, 0xC5, 0x60, 0x57,
0xC6, 0x62, 0x5A, 0xC7, 0x64, 0x5C, 0xC7, 0x66, 0x5D, 0xC7, 0x69, 0x5E, 0xC8, 0x69, 0x5E, 0xC8,
0x69, 0x60, 0xC9, 0x6B, 0x60, 0xC9, 0x6B, 0x60, 0xC9, 0x6B, 0x60, 0xC9, 0x6B, 0x60, 0xC9, 0x6B,
0x5D, 0xC7, 0x69, 0x5C, 0xC8, 0x66, 0x5B, 0xC8, 0x65, 0x58, 0xC6, 0x64, 0x56, 0xC5, 0x60, 0x55,
0xC4, 0x60, 0x55, 0xC4, 0x60, 0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x58, 0xC6, 0x64, 0x5A, 0xC7,
0x64, 0x5C, 0xC8, 0x66, 0x5E, 0xC8, 0x69, 0x60, 0xC9, 0x6B, 0x62, 0xCC, 0x6D, 0x62, 0xCC, 0x6D,
0x62, 0xCC, 0x6D, 0x62, 0xCC, 0x6D, 0x62, 0xCC, 0x6D, 0x62, 0xCC, 0x6D, 0x62, 0xCC, 0x6D, 0x60,
0xC9, 0x6B, 0x60, 0xC9, 0x6B, 0x5D, 0xC7, 0x69, 0x5B, 0xC8, 0x66, 0x5A, 0xC7, 0x64, 0x57, 0xC6,
0x62, 0x57, 0xC6, 0x62, 0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x5A, 0xC7, 0x64, 0x5C, 0xC8, 0x66,
0x5E, 0xC8, 0x69, 0x60, 0xC9, 0x6B, 0x61, 0xC9, 0x6D, 0x62, 0xCC, 0x6D, 0x64, 0xCC, 0x6F, 0x65,
0xCC, 0x70, 0x65, 0xCC, 0x70, 0x65, 0xCC, 0x70, 0x64, 0xCC, 0x6F, 0x64, 0xCC, 0x6F, 0x64, 0xC9,
0x6E, 0x61, 0xC9, 0x6D, 0x60, 0xC9, 0x6B, 0x5D, 0xC7, 0x69, 0x5B, 0xC8, 0x66, 0x5A, 0xC7, 0x64,
0x58, 0xC7, 0x63, 0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x5B, 0xC7, 0x66, 0x5E, 0xC8, 0x69, 0x60,
0xC9, 0x6B, 0x64, 0xC9, 0x6E, 0x64, 0xC9, 0x6E, 0x65, 0xCC, 0x70, 0x65, 0xCC, 0x70, 0x68, 0xCC,
0x72, 0x68, 0xCC, 0x72, 0x68, 0xCC, 0x72, 0x68, 0xCC, 0x72, 0x65, 0xCC, 0x70, 0x64, 0xC9, 0x6E,
0x64, 0xC9, 0x6E, 0x61, 0xC9, 0x6D, 0x60, 0xC9, 0x6B, 0x5D, 0xC7, 0x69, 0x5B, 0xC7, 0x66, 0x5A,
0xC7, 0x64, 0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x5B, 0xC6, 0x68, 0x5E, 0xC8, 0x69, 0x60, 0xC9,
0x6B, 0x64, 0xC9, 0x6E, 0x66, 0xCA, 0x70, 0x66, 0xCA, 0x70, 0x68, 0xCB, 0x72, 0x68, 0xCC, 0x72,
0x68, 0xCC, 0x72, 0x68, 0xCC, 0x72, 0x68, 0xCB, 0x72, 0x66, 0xCA, 0x70, 0x66, 0xCA, 0x70, 0x64,
0xC9, 0x6E, 0x61, 0xC9, 0x6D, 0x60, 0xC9, 0x6B, 0x5D, 0xC7, 0x69, 0x5B, 0xC6, 0x68, 0x5B, 0xC7,
0x66, 0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x5D, 0xC7, 0x69, 0x5E, 0xC8, 0x69, 0x61, 0xC7, 0x6B,
0x64, 0xC9, 0x6E, 0x64, 0xC9, 0x6E, 0x66, 0xCA, 0x70, 0x68, 0xCB, 0x72, 0x68, 0xCC, 0x72, 0x68,
0xCC, 0x72, 0x68, 0xCC, 0x72, 0x68, 0xCB, 0x72, 0x66, 0xCA, 0x70, 0x66, 0xCA, 0x70, 0x64, 0xC9,
0x6E, 0x61, 0xC9, 0x6D, 0x60, 0xC9, 0x6B, 0x5E, 0xC8, 0x69, 0x5D, 0xC7, 0x69, 0x5B, 0xC6, 0x68,
0x32, 0x69, 0x37, 0x9F, 0xDB, 0xA7, 0x5D, 0xC7, 0x69, 0x5E, 0xC8, 0x69, 0x61, 0xC7, 0x6B, 0x64,
0xC9, 0x6E, 0x64, 0xC9, 0x6E, 0x66, 0xCA, 0x70, 0x68, 0xCB, 0x72, 0x68, 0xCC, 0x72, 0x68, 0xCC,
0x72, 0x68, 0xCC, 0x72, 0x68, 0xCB, 0x72, 0x66, 0xCA, 0x70, 0x66, 0xCA, 0x70, 0x64, 0xC9, 0x6E,
0x61, 0xC9, 0x6D, 0x60, 0xC9, 0x6B, 0x5D, 0xC7, 0x69, 0x5D, 0xC7, 0x69, 0x5B, 0xC6, 0x68, 0x32,
0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69,
0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37,
0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32,
0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69, 0x37, 0x32, 0x69,
0x37, 0x74, 0x86, 0xAD, 0x73, 0x86, 0xAF, 0x70, 0x85, 0xB2, 0x70, 0x85, 0xB2, 0x70, 0x85, 0xB2,
0x6F, 0x86, 0xB4, 0x6F, 0x86, 0xB4, 0x6F, 0x86, 0xB4, 0x6F, 0x86, 0xB4, 0x6F, 0x86, 0xB4, 0x6F,
0x86, 0xB4, 0x6F, 0x86, 0xB4, 0x6F, 0x86, 0xB4, 0x6F, 0x86, 0xB4, 0x70, 0x85, 0xB2, 0x70, 0x85,
0xB2, 0x70, 0x85, 0xB2, 0x70, 0x85, 0xB2, 0x73, 0x86, 0xAF, 0x73, 0x86, 0xAF, 0x2F, 0x38, 0x4D,
0x70, 0x83, 0xAE, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x41,
0x57, 0x84, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x41, 0x57,
0x84, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84,
0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x2F, 0x38, 0x4D, 0x70,
0x83, 0xAE, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55,
0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82,
0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40,
0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x2F, 0x38, 0x4D, 0x6C, 0x7F,
0xAF, 0x3F, 0x54, 0x80, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82,
0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40,
0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55,
0x82, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x2F, 0x38, 0x4D, 0x6E, 0x81, 0xAD,
0x3F, 0x54, 0x7F, 0x3F, 0x54, 0x7F, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F,
0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54,
0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x7F,
0x3F, 0x54, 0x7F, 0x3F, 0x54, 0x7F, 0x3F, 0x54, 0x7F, 0x2F, 0x38, 0x4D, 0x6E, 0x81, 0xAD, 0x3E,
0x52, 0x7D, 0x3E, 0x52, 0x7D, 0x3F, 0x54, 0x7F, 0x3F, 0x53, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54,
0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x53, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80,
0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x53, 0x80, 0x3F, 0x54, 0x7F, 0x3E, 0x52, 0x7D, 0x3E,
0x52, 0x7D, 0x3E, 0x52, 0x7D, 0x3E, 0x52, 0x7D, 0x2F, 0x38, 0x4D, 0x6E, 0x81, 0xAD, 0x3E, 0x52,
0x7D, 0x3E, 0x52, 0x7D, 0x3E, 0x52, 0x7D, 0x3F, 0x54, 0x7F, 0x3F, 0x53, 0x80, 0x3F, 0x54, 0x80,
0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F,
0x54, 0x80, 0x3F, 0x53, 0x80, 0x3F, 0x54, 0x7F, 0x3E, 0x52, 0x7D, 0x3E, 0x52, 0x7D, 0x3E, 0x51,
0x7B, 0x3E, 0x51, 0x7B, 0x3E, 0x51, 0x7B, 0x2F, 0x38, 0x4D, 0x6C, 0x7F, 0xAF, 0x3E, 0x51, 0x7B,
0x3E, 0x52, 0x7D, 0x3F, 0x54, 0x7F, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x40, 0x55, 0x82, 0x40,
0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x55,
0x82, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x80, 0x3F, 0x54, 0x7F, 0x3F, 0x54, 0x7F, 0x3E, 0x52, 0x7D,
0x3E, 0x51, 0x7B, 0x3E, 0x51, 0x7B, 0x2F, 0x38, 0x4D, 0x6C, 0x7F, 0xAF, 0x3F, 0x54, 0x7F, 0x3F,
0x54, 0x7F, 0x3F, 0x53, 0x80, 0x40, 0x55, 0x82, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84, 0x41, 0x57,
0x84, 0x42, 0x58, 0x85, 0x42, 0x58, 0x85, 0x42, 0x58, 0x85, 0x41, 0x57, 0x84, 0x41, 0x57, 0x84,
0x41, 0x57, 0x84, 0x40, 0x55, 0x82, 0x40, 0x54, 0x7F, 0x40, 0x54, 0x7F, 0x3F, 0x54, 0x7F, 0x3E,
0x52, 0x7D, 0x3E, 0x52, 0x7D, 0x2F, 0x38, 0x4D, 0x6E, 0x81, 0xAD, 0x40, 0x54, 0x7F, 0x40, 0x55,
0x82, 0x40, 0x55, 0x82, 0x41, 0x57, 0x84, 0x42, 0x58, 0x85, 0x42, 0x58, 0x85, 0x44, 0x59, 0x86,
0x44, 0x59, 0x86, 0x45, 0x5A, 0x89, 0x45, 0x5A, 0x89, 0x45, 0x5A, 0x89, 0x42, 0x58, 0x85, 0x42,
0x58, 0x85, 0x41, 0x57, 0x84, 0x40, 0x55, 0x82, 0x40, 0x55, 0x82, 0x40, 0x54, 0x7F, 0x40, 0x54,
0x7F, 0x40, 0x54, 0x7F, 0x2F, 0x38, 0x4D, 0x70, 0x83, 0xAE, 0x40, 0x55, 0x82, 0x41, 0x57, 0x84,
0x42, 0x58, 0x85, 0x45, 0x5A, 0x89, 0x45, 0x5A, 0x89, 0x45, 0x5A, 0x89, 0x46, 0x5C, 0x8B, 0x46,
0x5C, 0x8B, 0x46, 0x5C, 0x8B, 0x46, 0x5C, 0x8B, 0x46, 0x5C, 0x8B, 0x46, 0x5C, 0x8B, 0x45, 0x5A,
0x89, 0x45, 0x5A, 0x89, 0x44, 0x59, 0x86, 0x42, 0x58, 0x85, 0x41, 0x57, 0x84, 0x40, 0x55, 0x82,
0x40, 0x55, 0x82, 0x2F, 0x38, 0x4D, 0x6C, 0x82, 0xB2, 0x44, 0x59, 0x86, 0x45, 0x5A, 0x89, 0x45,
0x5A, 0x89, 0x46, 0x5C, 0x8B, 0x47, 0x5C, 0x8C, 0x48, 0x5E, 0x8E, 0x48, 0x5E, 0x8E, 0x49, 0x5F,
0x90, 0x49, 0x5F, 0x90, 0x49, 0x5F, 0x90, 0x48, 0x5E, 0x8E, 0x48, 0x5E, 0x8E, 0x48, 0x5E, 0x8E,
0x47, 0x5C, 0x8C, 0x46, 0x5C, 0x8B, 0x45, 0x5A, 0x89, 0x44, 0x59, 0x86, 0x44, 0x59, 0x86, 0x42,
0x58, 0x85, 0x2F, 0x38, 0x4D, 0x6F, 0x84, 0xB1, 0x46, 0x5C, 0x8B, 0x46, 0x5C, 0x8B, 0x48, 0x5E,
0x8E, 0x49, 0x5F, 0x90, 0x4A, 0x61, 0x91, 0x4A, 0x61, 0x91, 0x4B, 0x62, 0x94, 0x4B, 0x62, 0x94,
0x4B, 0x62, 0x94, 0x4B, 0x62, 0x94, 0x4B, 0x62, 0x94, 0x4A, 0x61, 0x91, 0x4A, 0x61, 0x91, 0x49,
0x60, 0x8F, 0x48, 0x5E, 0x8E, 0x47, 0x5C, 0x8C, 0x46, 0x5C, 0x8B, 0x45, 0x5A, 0x89, 0x45, 0x5A,
0x89, 0x2F, 0x38, 0x4D, 0x70, 0x85, 0xB2, 0x47, 0x5C, 0x8C, 0x49, 0x5F, 0x90, 0x4A, 0x61, 0x91,
0x4A, 0x61, 0x91, 0x4C, 0x63, 0x94, 0x4C, 0x63, 0x94, 0x4D, 0x65, 0x95, 0x4E, 0x66, 0x98, 0x4E,
0x66, 0x98, 0x4E, 0x66, 0x98, 0x4E, 0x66, 0x98, 0x4D, 0x65, 0x95, 0x4C, 0x63, 0x94, 0x4C, 0x62,
0x92, 0x4A, 0x61, 0x91, 0x49, 0x5F, 0x90, 0x48, 0x5E, 0x8E, 0x48, 0x5E, 0x8E, 0x46, 0x5C, 0x8B,
0x2F, 0x38, 0x4D, 0x6F, 0x86, 0xB4, 0x49, 0x5F, 0x90, 0x4A, 0x61, 0x91, 0x4B, 0x62, 0x94, 0x4D,
0x65, 0x95, 0x4D, 0x65, 0x95, 0x4F, 0x68, 0x9A, 0x4F, 0x68, 0x9A, 0x4F, 0x68, 0x9A, 0x4F, 0x68,
0x9A, 0x4F, 0x68, 0x9A, 0x4F, 0x68, 0x9A, 0x4F, 0x68, 0x9A, 0x4E, 0x66, 0x98, 0x4D, 0x65, 0x95,
0x4C, 0x64, 0x93, 0x4C, 0x62, 0x92, 0x4A, 0x61, 0x91, 0x49, 0x5F, 0x90, 0x48, 0x5E, 0x8E, 0x2F,
0x38, 0x4D, 0x70, 0x85, 0xB2, 0x4A, 0x61, 0x91, 0x4C, 0x64, 0x93, 0x4C, 0x64, 0x93, 0x4D, 0x65,
0x95, 0x4F, 0x68, 0x9A, 0x4F, 0x68, 0x9A, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D,
0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x4F, 0x68, 0x9A, 0x4F, 0x68, 0x9A, 0x4E, 0x66, 0x98, 0x4D,
0x65, 0x95, 0x4C, 0x64, 0x93, 0x4A, 0x61, 0x91, 0x4A, 0x61, 0x91, 0x49, 0x5F, 0x90, 0x2F, 0x38,
0x4D, 0x70, 0x85, 0xB2, 0x4A, 0x61, 0x91, 0x4C, 0x64, 0x93, 0x4D, 0x65, 0x95, 0x50, 0x67, 0x98,
0x50, 0x68, 0x9A, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50,
0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x68, 0x9A, 0x50, 0x67, 0x98, 0x4D, 0x65,
0x95, 0x4D, 0x65, 0x95, 0x4C, 0x62, 0x92, 0x4A, 0x61, 0x91, 0x49, 0x5F, 0x90, 0x2F, 0x38, 0x4D,
0x74, 0x87, 0xB0, 0x4C, 0x62, 0x92, 0x4C, 0x64, 0x93, 0x4D, 0x65, 0x95, 0x50, 0x67, 0x98, 0x50,
0x68, 0x9A, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69,
0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x68, 0x9A, 0x50, 0x67, 0x98, 0x4E, 0x66, 0x98,
0x4D, 0x65, 0x95, 0x4C, 0x62, 0x92, 0x4A, 0x61, 0x91, 0x4A, 0x61, 0x91, 0x2F, 0x38, 0x4D, 0x74,
0x87, 0xB0, 0x4C, 0x62, 0x92, 0x4C, 0x64, 0x93, 0x4D, 0x65, 0x95, 0x4E, 0x66, 0x98, 0x50, 0x68,
0x9A, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D,
0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x68, 0x9A, 0x50, 0x67, 0x98, 0x4E, 0x66, 0x98, 0x4C,
0x64, 0x93, 0x4C, 0x62, 0x92, 0x4A, 0x61, 0x91, 0x4A, 0x61, 0x91, 0x2F, 0x38, 0x4D, 0x74, 0x87,
0xB0, 0x4C, 0x62, 0x92, 0x4C, 0x64, 0x93, 0x4D, 0x65, 0x95, 0x4E, 0x66, 0x98, 0x50, 0x68, 0x9A,
0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50,
0x69, 0x9D, 0x50, 0x69, 0x9D, 0x50, 0x68, 0x9A, 0x50, 0x67, 0x98, 0x4E, 0x66, 0x98, 0x4C, 0x64,
0x93, 0x4C, 0x62, 0x92, 0x4A, 0x61, 0x91, 0x4A, 0x61, 0x91, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D,
0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F,
0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38,
0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D,
0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0x2F, 0x38, 0x4D, 0xE8, 0xD0, 0xA4, 0xE8,
0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0xE8, 0xD0,
0xA4, 0xE8, 0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0xE8, 0xD0, 0xA4,
0xE8, 0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0xE8,
0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0xE8, 0xD0, 0xA4, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD3, 0x9E,
0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD4, 0x9E, 0x40, 0xD4, 0x9E, 0x40,
0xD4, 0x9E, 0x40, 0xD4, 0x9E, 0x40, 0xD4, 0x9E, 0x40, 0xD4, 0x9E, 0x40, 0xD4, 0x9E, 0x40, 0xD4,
0x9E, 0x40, 0xD4, 0x9E, 0x40, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E,
0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD3, 0x9E, 0x3D,
0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3,
0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E,
0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D,
0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD3, 0x9C, 0x3A, 0xD3,
0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E,
0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D,
0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3,
0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD2, 0x9A, 0x38, 0xD4, 0x9B,
0x39, 0xD4, 0x9B, 0x39, 0xD4, 0x9B, 0x39, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A,
0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3,
0x9C, 0x3A, 0xD4, 0x9B, 0x39, 0xD4, 0x9B, 0x39, 0xD4, 0x9B, 0x39, 0xD2, 0x9A, 0x38, 0xD2, 0x9A,
0x38, 0xD2, 0x9A, 0x38, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38,
0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38, 0xD4, 0x9B, 0x39, 0xD4, 0x9C, 0x39, 0xD4,
0x9C, 0x39, 0xD3, 0x9C, 0x3A, 0xD4, 0x9C, 0x39, 0xD4, 0x9C, 0x39, 0xD4, 0x9B, 0x39, 0xD2, 0x9A,
0x38, 0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38,
0xD2, 0x9A, 0x38, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD2, 0x99, 0x36, 0xD2, 0x99, 0x36, 0xD2,
0x9A, 0x38, 0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38, 0xD4, 0x9B, 0x39, 0xD4, 0x9C, 0x39, 0xD4, 0x9C,
0x39, 0xD4, 0x9C, 0x39, 0xD4, 0x9C, 0x39, 0xD4, 0x9C, 0x39, 0xD4, 0x9B, 0x39, 0xD2, 0x9A, 0x38,
0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38, 0xD2, 0x99, 0x36, 0xD2, 0x99, 0x36, 0xD2, 0x99, 0x36, 0xD2,
0x99, 0x36, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD2, 0x99, 0x36, 0xD2, 0x99, 0x36, 0xD2, 0x9A,
0x38, 0xD2, 0x9A, 0x38, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A,
0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD2,
0x9A, 0x38, 0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38, 0xD2, 0x99, 0x36, 0xD2, 0x99, 0x36, 0xD2, 0x99,
0x36, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38,
0xD3, 0x9C, 0x3A, 0xD4, 0x9E, 0x3D, 0xD4, 0x9E, 0x3D, 0xD4, 0x9E, 0x3D, 0xD4, 0x9E, 0x3D, 0xD4,
0x9E, 0x3D, 0xD4, 0x9E, 0x3D, 0xD4, 0x9E, 0x3D, 0xD4, 0x9E, 0x3D, 0xD4, 0x9E, 0x3D, 0xD3, 0x9C,
0x3A, 0xD3, 0x9C, 0x3A, 0xD4, 0x9B, 0x39, 0xD2, 0x9A, 0x38, 0xD2, 0x99, 0x36, 0xD2, 0x99, 0x36,
0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD3, 0x9E, 0x3D, 0xD4,
0x9E, 0x3D, 0xD4, 0x9E, 0x40, 0xD4, 0x9E, 0x40, 0xD5, 0xA0, 0x41, 0xD5, 0xA0, 0x41, 0xD5, 0xA0,
0x41, 0xD5, 0xA0, 0x41, 0xD5, 0xA0, 0x41, 0xD4, 0x9E, 0x40, 0xD4, 0x9E, 0x40, 0xD4, 0x9E, 0x3D,
0xD3, 0x9E, 0x3D, 0xD3, 0x9C, 0x3A, 0xD3, 0x9C, 0x3A, 0xD2, 0x9A, 0x38, 0xD2, 0x9A, 0x38, 0x82,
0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD3, 0x9E, 0x3D, 0xD4, 0x9E, 0x3D, 0xD4, 0x9E, 0x40, 0xD5, 0xA0,
0x41, 0xD5, 0xA0, 0x41, 0xD5, 0xA2, 0x44, 0xD5, 0xA2, 0x44, 0xD6, 0xA4, 0x46, 0xD6, 0xA4, 0x46,
0xD6, 0xA4, 0x46, 0xD5, 0xA2, 0x44, 0xD5, 0xA2, 0x44, 0xD5, 0xA2, 0x44, 0xD5, 0xA0, 0x41, 0xD4,
0x9E, 0x40, 0xD4, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9E, 0x3D, 0xD3, 0x9C, 0x3A, 0x82, 0x63,
0x2C, 0xE8, 0xD0, 0xA4, 0xD4, 0x9E, 0x40, 0xD5, 0xA0, 0x41, 0xD5, 0xA2, 0x44, 0xD6, 0xA4, 0x46,
0xD6, 0xA4, 0x46, 0xD8, 0xA5, 0x49, 0xD8, 0xA5, 0x49, 0xD8, 0xA5, 0x49, 0xD8, 0xA5, 0x49, 0xD8,
0xA5, 0x49, 0xD8, 0xA5, 0x49, 0xD8, 0xA5, 0x49, 0xD8, 0xA5, 0x49, 0xD6, 0xA4, 0x46, 0xD5, 0xA2,
0x44, 0xD5, 0xA2, 0x44, 0xD5, 0xA0, 0x41, 0xD4, 0x9E, 0x40, 0xD4, 0x9E, 0x40, 0x82, 0x63, 0x2C,
0xE8, 0xD0, 0xA4, 0xD5, 0xA2, 0x44, 0xD6, 0xA4, 0x46, 0xD8, 0xA5, 0x49, 0xD8, 0xA5, 0x49, 0xD8,
0xA6, 0x4D, 0xD8, 0xA6, 0x4D, 0xD8, 0xA8, 0x4E, 0xD8, 0xA8, 0x4E, 0xD8, 0xA8, 0x4E, 0xD8, 0xA8,
0x4E, 0xD8, 0xA8, 0x4E, 0xD8, 0xA8, 0x4E, 0xD8, 0xA6, 0x4D, 0xD8, 0xA5, 0x49, 0xD8, 0xA5, 0x49,
0xD6, 0xA4, 0x49, 0xD6, 0xA4, 0x46, 0xD5, 0xA2, 0x44, 0xD5, 0xA2, 0x44, 0x82, 0x63, 0x2C, 0xE8,
0xD0, 0xA4, 0xD6, 0xA4, 0x49, 0xD8, 0xA6, 0x4D, 0xD8, 0xA6, 0x4D, 0xD8, 0xA8, 0x4E, 0xDA, 0xA9,
0x51, 0xDA, 0xA9, 0x51, 0xDA, 0xA9, 0x51, 0xDB, 0xAB, 0x55, 0xDB, 0xAB, 0x55, 0xDB, 0xAB, 0x55,
0xDA, 0xA9, 0x51, 0xDA, 0xA9, 0x51, 0xDA, 0xA9, 0x51, 0xD8, 0xA8, 0x4E, 0xD8, 0xA8, 0x4E, 0xD8,
0xA6, 0x4D, 0xD8, 0xA5, 0x49, 0xD6, 0xA4, 0x49, 0xD6, 0xA4, 0x49, 0x82, 0x63, 0x2C, 0xE8, 0xD0,
0xA4, 0xD8, 0xA6, 0x4D, 0xD8, 0xA6, 0x4D, 0xD8, 0xA8, 0x4E, 0xDA, 0xA9, 0x51, 0xDB, 0xAB, 0x55,
0xDB, 0xAB, 0x55, 0xDB, 0xAB, 0x55, 0xDB, 0xAC, 0x56, 0xDB, 0xAC, 0x56, 0xDB, 0xAC, 0x56, 0xDB,
0xAC, 0x56, 0xDB, 0xAB, 0x55, 0xDB, 0xAB, 0x55, 0xDA, 0xA9, 0x51, 0xDA, 0xA9, 0x51, 0xD8, 0xA8,
0x4E, 0xD8, 0xA6, 0x4D, 0xD8, 0xA5, 0x49, 0xD8, 0xA5, 0x49, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4,
0xD8, 0xA6, 0x4D, 0xD8, 0xA8, 0x4E, 0xDA, 0xA9, 0x51, 0xDB, 0xAB, 0x55, 0xDB, 0xAB, 0x55, 0xDB,
0xAC, 0x56, 0xDB, 0xAC, 0x58, 0xDC, 0xAD, 0x5A, 0xDC, 0xAD, 0x5A, 0xDC, 0xAD, 0x5A, 0xDB, 0xAC,
0x58, 0xDB, 0xAC, 0x58, 0xDB, 0xAC, 0x56, 0xDB, 0xAB, 0x55, 0xDA, 0xA9, 0x51, 0xDA, 0xA9, 0x51,
0xD8, 0xA8, 0x4E, 0xD8, 0xA6, 0x4D, 0xD8, 0xA6, 0x4D, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD8,
0xA6, 0x4D, 0xD8, 0xA8, 0x4E, 0xDA, 0xA9, 0x51, 0xDB, 0xAB, 0x55, 0xDB, 0xAC, 0x56, 0xDC, 0xAD,
0x5A, 0xDC, 0xAD, 0x5A, 0xDC, 0xAD, 0x5A, 0xDC, 0xAE, 0x5C, 0xDC, 0xAE, 0x5C, 0xDC, 0xAE, 0x5C,
0xDC, 0xAD, 0x5A, 0xDB, 0xAC, 0x58, 0xDB, 0xAB, 0x55, 0xDA, 0xA9, 0x51, 0xDA, 0xA9, 0x51, 0xD8,
0xA8, 0x4E, 0xD8, 0xA6, 0x4D, 0xD8, 0xA6, 0x4D, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD8, 0xA6,
0x4D, 0xDA, 0xA9, 0x51, 0xDA, 0xA9, 0x51, 0xDB, 0xAB, 0x55, 0xDB, 0xAC, 0x58, 0xDC, 0xAD, 0x5A,
0xDC, 0xAD, 0x5A, 0xDC, 0xAD, 0x5C, 0xDC, 0xAE, 0x5D, 0xDC, 0xAE, 0x5D, 0xDC, 0xAE, 0x5C, 0xDC,
0xAD, 0x5A, 0xDB, 0xAC, 0x58, 0xDB, 0xAC, 0x56, 0xDA, 0xA9, 0x51, 0xDA, 0xA9, 0x51, 0xD8, 0xA8,
0x4E, 0xD8, 0xA8, 0x4E, 0xD8, 0xA6, 0x4D, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD8, 0xA8, 0x4E,
0xDA, 0xA9, 0x51, 0xDA, 0xA9, 0x51, 0xDB, 0xAB, 0x55, 0xDB, 0xAC, 0x58, 0xDC, 0xAD, 0x5A, 0xDC,
0xAD, 0x5C, 0xDC, 0xAD, 0x5C, 0xDC, 0xAD, 0x5C, 0xDC, 0xAD, 0x5C, 0xDC, 0xAD, 0x5C, 0xDC, 0xAD,
0x5A, 0xDB, 0xAC, 0x58, 0xDB, 0xAB, 0x55, 0xDA, 0xA9, 0x51, 0xDA, 0xA9, 0x51, 0xD8, 0xA8, 0x4E,
0xD8, 0xA8, 0x4E, 0xD8, 0xA6, 0x4D, 0x82, 0x63, 0x2C, 0xE8, 0xD0, 0xA4, 0xD8, 0xA8, 0x4E, 0xDA,
0xA9, 0x51, 0xDA, 0xA9, 0x51, 0xDB, 0xAB, 0x55, 0xDB, 0xAC, 0x58, 0xDC, 0xAD, 0x5A, 0xDC, 0xAD,
0x5C, 0xDC, 0xAD, 0x5C, 0xDC, 0xAD, 0x5C, 0xDC, 0xAD, 0x5C, 0xDC, 0xAD, 0x5C, 0xDC, 0xAD, 0x5A,
0xDB, 0xAC, 0x58, 0xDB, 0xAB, 0x55, 0xDA, 0xA9, 0x51, 0xDA, 0xA9, 0x51, 0xD8, 0xA8, 0x4E, 0xD8,
0xA8, 0x4E, 0xD8, 0xA6, 0x4D, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63,
0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C,
0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82,
0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63,
0x2C, 0x82, 0x63, 0x2C, 0x82, 0x63, 0x2C
};

View File

@ -78,7 +78,7 @@ inline fastcall dword WaitEvent(){
$int 0x40 $int 0x40
} }
int GetKeyScancode() inline fastcall int GetKeyScancode()
{ {
$mov eax,2 $mov eax,2
$int 0x40 $int 0x40
@ -177,7 +177,7 @@ inline fastcall MoveSize(int EBX,ECX,EDX,ESI)
} }
inline fastcall dword GetSkinWidth() inline fastcall dword GetSkinHeight()
{ {
$push ebx $push ebx
$mov eax, 48 $mov eax, 48